[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5296656B2 - Image processing apparatus and image processing method - Google Patents

Image processing apparatus and image processing method Download PDF

Info

Publication number
JP5296656B2
JP5296656B2 JP2009245798A JP2009245798A JP5296656B2 JP 5296656 B2 JP5296656 B2 JP 5296656B2 JP 2009245798 A JP2009245798 A JP 2009245798A JP 2009245798 A JP2009245798 A JP 2009245798A JP 5296656 B2 JP5296656 B2 JP 5296656B2
Authority
JP
Japan
Prior art keywords
image
data
buffer
area
hierarchical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009245798A
Other languages
Japanese (ja)
Other versions
JP2011090648A (en
Inventor
徹悟 稲田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2009245798A priority Critical patent/JP5296656B2/en
Application filed by Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to AU2010313045A priority patent/AU2010313045B2/en
Priority to RU2012121208/08A priority patent/RU2519058C2/en
Priority to BR112012009893-4A priority patent/BR112012009893B1/en
Priority to CN201080045762.3A priority patent/CN102667864B/en
Priority to PCT/JP2010/004809 priority patent/WO2011052117A1/en
Priority to US13/502,409 priority patent/US8724914B2/en
Publication of JP2011090648A publication Critical patent/JP2011090648A/en
Application granted granted Critical
Publication of JP5296656B2 publication Critical patent/JP5296656B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem that a higher resolution image is large in data size and its update is not easy. <P>SOLUTION: A graphic processor 402 performs rendering by using model data 418 stored in a main memory 60 according to an image processing request from a main processor 400 and updates a color buffer 414 and Z buffer 416. Both the color buffer 414 and the Z buffer 416 have configurations of hierarchical data comprising a plurality of pixel planes corresponding to a plurality of resolutions of an image to be drawn. According to the request from the main processor 400, a rendering part 404 of the graphic processor 402 performs rendering and a hierarchical data update part 406 performs scaling processing of a rendering result and reflects it on each hierarchy of the color buffer 414 and the Z buffer 416. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、ディスプレイに表示する画像を拡大/縮小、または上下左右に移動させる画像処理技術に関する。   The present invention relates to an image processing technique for enlarging / reducing an image displayed on a display, or moving the image vertically and horizontally.

ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、GPUがポリゴンを用いた三次元画像を生成する(例えば特許文献1参照)。   Home entertainment systems have been proposed that not only execute game programs, but also play video. In this home entertainment system, the GPU generates a three-dimensional image using polygons (see, for example, Patent Document 1).

画像表示の目的に関わらず、画像をいかに効率よく表示するかは常に重要な問題となる。特に高精細な画像を高速に描画するためには様々な工夫が必要となり、例えばテクスチャデータを別に保持しマッピングを効率的に行う手法について提案がなされている(例えば非特許文献1および2参照)。   Regardless of the purpose of image display, how efficiently an image is displayed is always an important issue. In particular, various ideas are required to draw a high-definition image at high speed. For example, a technique for efficiently storing texture data and performing mapping efficiently has been proposed (see, for example, Non-Patent Documents 1 and 2). .

米国特許第6563999号公報US Pat. No. 6,563,999

Sylvain Fefebvre, et. al., Unified Texture Management for Arbitrary Meshes, Repport de recherche, N5210, May 2004, Institut National De Recherche En Informatique Et En AutomatiqueSylvain Fefebvre, et.al., Unified Texture Management for Arbitrary Meshes, Repport de recherche, N5210, May 2004, Institut National De Recherche En Informatique Et En Automatique Martin Kraus, et. al., Adaptive Texture Maps, Graphics Hardware (2002), pp1-10, The Eurographics AssociationMartin Kraus, et.al., Adaptive Texture Maps, Graphics Hardware (2002), pp1-10, The Eurographics Association

画像が高精細化しても、データサイズを小さく抑えること、高速に描画することは、画像を応答性良く表示するためには常に重要な課題である。また、画像の一部などを修正する必要が生じた場合、上述のテクスチャマッピングなどデータ構造を工夫する技術を適用したとしても、一度構築したデータ構造を全て更新し直す必要があるなど、更新処理が煩雑になりやすいという問題があった。   Even when an image has a high definition, keeping the data size small and drawing at high speed are always important issues for displaying the image with high responsiveness. In addition, when it becomes necessary to correct a part of an image, even if the technology for devising the data structure such as the texture mapping described above is applied, it is necessary to update all the data structures once constructed. There is a problem that is likely to become complicated.

本発明はこのような課題に鑑みてなされたものであり、その目的は、サイズの大きな画像であってもデータサイズを抑えるとともに、効率的に生成、表示、修正を行える画像処理技術を提供することにある。   The present invention has been made in view of such problems, and an object of the present invention is to provide an image processing technique that can efficiently generate, display, and correct data size even when the image size is large. There is.

本発明のある態様は画像処理装置に関する。この画像処理装置は、プログラムを実行し新たに表示すべき画像の描画のための情報を含む画像処理要求を発行する画像処理要求部と、描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した階層カラーバッファおよび階層Zバッファを記憶する階層データ記憶部と、画像処理要求を受け付け画像処理を実行し、階層カラーバッファおよび階層Zバッファを更新する画像処理部と、を備え、画像処理部は、階層カラーバッファおよび階層Zバッファから読み出た描画対象の階層および領域のデータをそれぞれ記録する描画用カラーバッファおよび描画用Zバッファと、画像処理要求に基づき描画対象の階層および領域を特定して描画用カラーバッファおよび描画用Zバッファにデータを読み出し、画像処理要求に基づき画像処理演算を行いデータを更新する描画部と、更新された描画用カラーバッファおよび描画用Zバッファのデータに対し、複数の解像度に対応させてスケーリング処理を施し、階層カラーバッファおよび階層Zバッファの各階層のデータを更新する階層データ更新部と、を備えたことを特徴とする。   One embodiment of the present invention relates to an image processing apparatus. The image processing apparatus includes an image processing request unit that issues an image processing request including information for drawing an image to be newly displayed by executing a program, and a color that holds color information for each pixel of an image to be drawn Hierarchical data storage that stores a hierarchical color buffer and a hierarchical Z buffer in which a value pixel plane and a Z value pixel plane that holds depth information from the viewpoint for each pixel are hierarchized in correspondence with a plurality of resolutions of the drawing target image And an image processing unit that accepts an image processing request, executes image processing, and updates the hierarchical color buffer and the hierarchical Z buffer. The image processing unit reads the drawing target read from the hierarchical color buffer and the hierarchical Z buffer. A drawing color buffer and a drawing Z buffer for recording data of each layer and area, and a drawing target hierarchy and A drawing unit that specifies an area, reads data into a drawing color buffer and a drawing Z buffer, performs image processing calculation based on an image processing request and updates the data, and the updated drawing color buffer and drawing Z buffer And a hierarchical data updating unit that performs scaling processing on data in accordance with a plurality of resolutions and updates data of each layer of the hierarchical color buffer and the hierarchical Z buffer.

本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、プログラムを実行し新たに表示すべき画像の描画のための情報を含む画像処理要求を発行するステップと、描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した階層カラーバッファおよび階層Zバッファをメモリに記憶するステップと、画像処理要求を受け付け画像処理を実行し、階層カラーバッファおよび階層Zバッファを更新するステップと、を含み、階層カラーバッファおよび階層Zバッファを更新するステップは、画像処理要求に基づき描画対象の階層および領域を特定し、階層カラーバッファおよび階層Zバッファからそれぞれデータを読み出して、描画用カラーバッファおよび描画用Zバッファに書き込むステップと、画像処理要求に基づき画像処理演算を行い描画用カラーバッファおよび描画用Zバッファのデータを更新するステップと、更新された描画用カラーバッファおよび描画用Zバッファのデータに対し、複数の解像度に対応させてスケーリング処理を施し、階層カラーバッファおよび階層Zバッファの各階層のデータを更新するステップと、を含むことを特徴とする。   Yet another embodiment of the present invention relates to an image processing method. This image processing method includes a step of issuing an image processing request including information for drawing an image to be newly displayed by executing a program, and a color value pixel plane that holds color information for each pixel of an image to be drawn Storing a hierarchical color buffer and a hierarchical Z buffer in which a Z-value pixel plane holding depth information from the viewpoint for each pixel is hierarchized in correspondence with a plurality of resolutions of the drawing target image in a memory; Receiving a processing request, executing image processing, and updating the hierarchical color buffer and the hierarchical Z buffer, wherein the step of updating the hierarchical color buffer and the hierarchical Z buffer includes: The data is read from the hierarchical color buffer and hierarchical Z buffer, and the drawing color buffer And writing to the drawing Z buffer, updating the drawing color buffer and drawing Z buffer data by performing image processing calculation based on the image processing request, and updating the drawing color buffer and drawing Z buffer. Performing a scaling process on the data in correspondence with a plurality of resolutions, and updating data of each layer of the layer color buffer and layer Z buffer.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a representation of the present invention converted between a method, an apparatus, a system, a computer program, etc. are also effective as an aspect of the present invention.

本発明によると、幅広い解像度で画像を表示するための画像データを効率的に構築できる画像処理装置を提供することができる。   According to the present invention, it is possible to provide an image processing apparatus capable of efficiently constructing image data for displaying an image with a wide range of resolutions.

実施の形態1の形態にかかる情報処理システムの使用環境を示す図である。It is a figure which shows the use environment of the information processing system concerning the form of Embodiment 1. 図1の画像処理システムに適用できる入力装置の外観構成を示す図である。It is a figure which shows the external appearance structure of the input device applicable to the image processing system of FIG. 実施の形態1において使用する画像データの階層構造の概念図である。3 is a conceptual diagram of a hierarchical structure of image data used in Embodiment 1. FIG. 実施の形態1における情報処理装置の構成を示す図である。1 is a diagram illustrating a configuration of an information processing device in Embodiment 1. FIG. 実施の形態1における画像データの流れを模式的に示すである。3 schematically shows a flow of image data in the first embodiment. 実施の形態1における画像データの先読み処理を説明するための図である。6 is a diagram for explaining prefetching processing of image data in the first embodiment. FIG. 実施の形態1において階層データを表示する機能を有する制御部の構成を詳細に示す図である。3 is a diagram illustrating in detail a configuration of a control unit having a function of displaying hierarchical data in the first embodiment. FIG. 実施の形態1で用いる階層データのデータ構造を模式的に示す図である。3 is a diagram schematically illustrating a data structure of hierarchical data used in Embodiment 1. FIG. 実施の形態1において表示対象の画像ファイルを生成する機能を有する制御部の構成を示す図である。3 is a diagram illustrating a configuration of a control unit having a function of generating a display target image file in Embodiment 1. FIG. 実施の形態1において画像に冗長性がある場合の元の画像とタイル画像との関係を説明する図である。6 is a diagram for explaining a relationship between an original image and a tile image when there is redundancy in the image in Embodiment 1. FIG. 実施の形態1において画像に冗長性がある場合の元の画像とタイル画像との関係の別の例を説明する図である。FIG. 10 is a diagram for explaining another example of the relationship between an original image and a tile image when there is redundancy in the image in the first embodiment. 実施の形態1において冗長性によるタイル画像の共有をヘッダによって定義する手法を説明する図である。FIG. 10 is a diagram for describing a technique for defining sharing of tile images based on redundancy by a header in the first embodiment. 実施の形態1において冗長性によるタイル画像の共有をインデックスブロックによって定義する手法を説明する図である。6 is a diagram for describing a technique for defining sharing of tile images based on redundancy by index blocks in Embodiment 1. FIG. 図9で示した制御部が画像ファイルを生成する処理手順を示すフローチャートである。It is a flowchart which shows the process sequence which the control part shown in FIG. 9 produces | generates an image file. 実施の形態1において制御部が画像ファイルを表示するための処理手順を示すフローチャートである。4 is a flowchart illustrating a processing procedure for the control unit to display an image file in the first embodiment. 実施の形態1において画像を修正する機能を有する制御部の構成を示す図である。FIG. 2 is a diagram illustrating a configuration of a control unit having a function of correcting an image in the first embodiment. 実施の形態1における画像の修正例を示す図である。6 is a diagram illustrating an example of correcting an image in the first embodiment. FIG. 図17のような修正におけるインデックスブロックのポインタの変化を模式的に示す図ある。It is a figure which shows typically the change of the pointer of the index block in the correction like FIG. 実施の形態1において高解像度側に階層を追加する場合の処理を説明するための図である。FIG. 10 is a diagram for describing processing when a hierarchy is added to the high resolution side in the first embodiment. 実施の形態1において追加すべき階層が属するインデックスブロックが存在しなかった場合のヘッダおよびインデックスブロックの変化を説明する図である。6 is a diagram for explaining changes in headers and index blocks when there is no index block to which a hierarchy to be added belongs in Embodiment 1. FIG. 実施の形態1において既存の画像に新たな領域を追加する処理を説明するための図である。FIG. 10 is a diagram for explaining processing for adding a new area to an existing image in the first embodiment. 実施の形態1において新たな領域を追加する場合のヘッダおよびインデックスブロックの変化を説明する図である。6 is a diagram for explaining changes in headers and index blocks when a new area is added in Embodiment 1. FIG. 実施の形態1において階層構造体の頂点側に階層を追加する際にヘッダにおいて定義される領域の分割手法を説明する図である。FIG. 10 is a diagram for describing a method of dividing an area defined in a header when a hierarchy is added to the vertex side of a hierarchical structure in the first embodiment. 実施の形態1の画像処理装置においてユーザが画像を修正、改変する際の処理手順を示すフローチャートである。4 is a flowchart illustrating a processing procedure when a user modifies and modifies an image in the image processing apparatus according to the first embodiment. 実施の形態2における情報処理装置のうち制御部およびメインメモリの構成をより詳細に示す図である。It is a figure which shows the structure of a control part and a main memory among the information processing apparatuses in Embodiment 2 in detail. 実施の形態2において階層データへのレンダリングの処理手順を示すフローチャートである。10 is a flowchart illustrating a processing procedure of rendering to hierarchical data in the second embodiment. 実施の形態2においてスケーリング処理を行うスケーラをメインメモリに内蔵した場合の装置構成を示す図である。FIG. 10 is a diagram illustrating a device configuration when a scaler that performs scaling processing is built in a main memory in the second embodiment. 実施の形態2におけるGPUバッファのアドレッシングの様子を示す図である。FIG. 10 is a diagram illustrating a state of addressing of a GPU buffer in the second embodiment. 実施の形態2におけるGPUバッファのアドレッシングの様子を示す図である。FIG. 10 is a diagram illustrating a state of addressing of a GPU buffer in the second embodiment.

実施の形態1
本実施の形態において処理対象とする画像のデータは、原画像を複数段階に縮小して生成した異なる解像度の画像からなる階層構造を有する。各階層の画像は一又は複数のタイル画像に分割する。たとえば最も解像度の低い画像は1つのタイル画像で構成し、最も解像度の高い原画像は、最も多い数のタイル画像で構成する。画像表示時は、描画に使用しているタイル画像を、表示画像が所定の解像度になったときに異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行う。
Embodiment 1
The image data to be processed in the present embodiment has a hierarchical structure composed of images with different resolutions generated by reducing the original image in a plurality of stages. Each layer image is divided into one or a plurality of tile images. For example, the image with the lowest resolution is composed of one tile image, and the original image with the highest resolution is composed of the largest number of tile images. At the time of image display, the tile image used for drawing is switched to a tile image of a different hierarchy when the display image has a predetermined resolution, so that enlarged display or reduced display is quickly performed.

まず、このような階層構造を有する画像の基本的な表示態様について説明する。図1は、本発明の実施の形態を適用できる情報処理システム1の使用環境を示す。情報処理システム1は、画像処理を含むアプリケーションプログラムを実行する情報処理装置10と、情報処理装置10による処理結果を出力する表示装置12とを備える。表示装置12は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。   First, a basic display mode of an image having such a hierarchical structure will be described. FIG. 1 shows a use environment of an information processing system 1 to which an embodiment of the present invention can be applied. The information processing system 1 includes an information processing device 10 that executes an application program including image processing, and a display device 12 that outputs a processing result by the information processing device 10. The display device 12 may be a television having a display that outputs an image and a speaker that outputs sound.

表示装置12は、情報処理装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。情報処理システム1において、情報処理装置10は、ケーブル14を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データを含むコンテンツなどをダウンロードして取得してもよい。なお情報処理装置10は、無線通信により外部ネットワークに接続してもよい。   The display device 12 may be connected to the information processing device 10 by a wired cable, or may be wirelessly connected by a wireless local area network (LAN) or the like. In the information processing system 1, the information processing apparatus 10 may be connected to an external network such as the Internet via the cable 14 to download and acquire content including hierarchical compressed image data. Note that the information processing apparatus 10 may be connected to an external network by wireless communication.

情報処理装置10は、ユーザからの要求に応じて、表示装置12のディスプレイに表示する画像の拡大/縮小処理や、上下左右方向への移動処理など、表示領域を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、表示領域の変更要求信号を情報処理装置10に送信する。   In response to a request from the user, the information processing apparatus 10 performs a process of changing the display area, such as an enlargement / reduction process of an image displayed on the display of the display device 12 or a movement process in the vertical and horizontal directions. When the user operates the input device while viewing the image displayed on the display, the input device transmits a display area change request signal to the information processing device 10.

図2は、入力装置20の外観構成を示す。入力装置20は、ユーザが操作可能な操作手段として、十字キー21、アナログスティック27a、27bと、4種の操作ボタン26を備える。4種の操作ボタン26は、○ボタン22、×ボタン23、□ボタン24および△ボタン25から構成される。   FIG. 2 shows an external configuration of the input device 20. The input device 20 includes a cross key 21, analog sticks 27a and 27b, and four types of operation buttons 26 as operation means that can be operated by the user. The four types of operation buttons 26 include a circle button 22, a x button 23, a square button 24, and a triangle button 25.

情報処理システム1において、入力装置20の操作手段には、表示画像の拡大/縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大/縮小要求の入力機能は、右側のアナログスティック27bに割り当てられる。ユーザはアナログスティック27bを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示領域の移動要求の入力機能は、十字キー21に割り当てられる。ユーザは十字キー21を押下することで、十字キー21を押下した方向への移動要求を入力できる。なお、画像変更要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック27aに、スクロール要求の入力機能が割り当てられてもよい。   In the information processing system 1, a function for inputting a display image enlargement / reduction request and a vertical / left / right scroll request is assigned to the operation unit of the input device 20. For example, the input function of the display image enlargement / reduction request is assigned to the right analog stick 27b. The user can input a display image reduction request by pulling the analog stick 27b forward, and can input a display image enlargement request by pressing the analog stick 27b from the front. The input function of the display area movement request is assigned to the cross key 21. The user can input a movement request in the direction in which the cross key 21 is pressed by pressing the cross key 21. Note that the image change request input function may be assigned to another operation means, for example, the scroll request input function may be assigned to the analog stick 27a.

また後に述べる各種機能を実現するため、入力装置20にはさらに、画像に表示されたカーソルを移動させたり、ファイルやコマンドを選択したりする機能も割り当てる。あるいは入力装置20は、ポインティングデバイス、マウス、キーボード、タッチパネルなど一般的な入力装置で実現してもよい。上述したような機能の割り当ては、入力装置20の種類によって適宜決定してよい。   In addition, in order to realize various functions described later, the input device 20 is also assigned a function of moving a cursor displayed on the image and selecting a file or a command. Alternatively, the input device 20 may be realized by a general input device such as a pointing device, a mouse, a keyboard, or a touch panel. The function assignment as described above may be appropriately determined according to the type of the input device 20.

入力装置20は、入力された表示領域変更要求信号などを情報処理装置10に伝送する機能をもち、本実施の形態では情報処理装置10との間で無線通信可能に構成される。入力装置20と情報処理装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置20は、情報処理装置10とケーブルを介して接続して、表示領域変更要求信号などを情報処理装置10に伝送してもよい。   The input device 20 has a function of transmitting an input display area change request signal or the like to the information processing device 10, and is configured to be capable of wireless communication with the information processing device 10 in the present embodiment. The input device 20 and the information processing device 10 may establish a wireless connection using a Bluetooth (registered trademark) protocol, an IEEE802.11 protocol, or the like. The input device 20 may be connected to the information processing apparatus 10 via a cable and transmit a display area change request signal or the like to the information processing apparatus 10.

図3は、本実施の形態において使用する画像データの階層構造の概念図を示す。画像データは、深さ(Z軸)方向に、第0階層30、第1階層32、第2階層34および第3階層36からなる階層構造を有する。なお同図においては4階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつ画像データを「階層データ」とよぶ。ただし同図の階層データは概念的なものであり、実際には後に述べるように複数のデータセットで階層データを表現する。   FIG. 3 is a conceptual diagram of a hierarchical structure of image data used in the present embodiment. The image data has a hierarchical structure including a 0th hierarchy 30, a first hierarchy 32, a second hierarchy 34, and a third hierarchy 36 in the depth (Z-axis) direction. Although only four layers are shown in the figure, the number of layers is not limited to this. Hereinafter, image data having such a hierarchical structure is referred to as “hierarchical data”. However, the hierarchical data in the figure is conceptual, and actually the hierarchical data is expressed by a plurality of data sets as described later.

図3に示す階層データは4分木の階層構造を有し、各階層は1以上のタイル画像38で構成される。すべてのタイル画像38は同じ画素数をもつ同一サイズに形成され、たとえば256×256画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第3階層36の原画像を複数段階に縮小して、第2階層34、第1階層32、第0階層30の画像データが生成される。たとえば第N階層の解像度(Nは0以上の整数)は、左右(X軸)方向、上下(Y軸)方向ともに、第(N+1)階層の解像度の1/2であってよい。   The hierarchical data shown in FIG. 3 has a hierarchical structure of a quadtree, and each hierarchy is composed of one or more tile images 38. All the tile images 38 are formed in the same size having the same number of pixels, and have, for example, 256 × 256 pixels. The image data of each layer expresses one image at different resolutions, and the original image of the third layer 36 having the highest resolution is reduced in a plurality of stages to obtain the second layer 34, the first layer 32, the 0th layer. Image data of the hierarchy 30 is generated. For example, the resolution of the Nth layer (N is an integer greater than or equal to 0) may be ½ of the resolution of the (N + 1) th layer in both the left and right (X axis) direction and the up and down (Y axis) direction.

情報処理装置10において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の情報処理装置10は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばS3TC形式、JPEG形式、JPEG2000形式の圧縮データをデコード可能とする。   In the information processing apparatus 10, the hierarchical data is stored in the storage device in a compressed state in a predetermined compression format, and is read from the storage device and decoded before being displayed on the display. The information processing apparatus 10 according to the present embodiment has a decoding function corresponding to a plurality of types of compression formats, and can decode compressed data in, for example, the S3TC format, JPEG format, and JPEG2000 format.

階層データの階層構造は、図3に示すように、左右方向をX軸、上下方向をY軸、深さ方向をZ軸として設定され、仮想的な3次元空間を構築する。情報処理装置10は、入力装置20から供給される表示領域変更要求信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレームの4隅の座標(フレーム座標)を導出する。仮想空間におけるフレーム座標は、後述するメインメモリへの圧縮データのロードおよび表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、情報処理装置10は、階層を特定する情報と、その階層におけるテクスチャ座標(UV座標)を導出してもよい。以下、階層特定情報およびテクスチャ座標の組み合わせも、フレーム座標と呼ぶ。   As shown in FIG. 3, the hierarchical structure of the hierarchical data is set with the horizontal direction as the X axis, the vertical direction as the Y axis, and the depth direction as the Z axis, thereby constructing a virtual three-dimensional space. When the information processing device 10 derives the change amount of the display image from the display area change request signal supplied from the input device 20, the information processing device 10 derives the coordinates (frame coordinates) of the four corners of the frame in the virtual space using the change amount. . The frame coordinates in the virtual space are used for loading compressed data into a main memory, which will be described later, and display image generation processing. Instead of the frame coordinates in the virtual space, the information processing apparatus 10 may derive information for specifying a hierarchy and texture coordinates (UV coordinates) in the hierarchy. Hereinafter, the combination of the hierarchy specifying information and the texture coordinates is also referred to as frame coordinates.

図4は情報処理装置10の構成を示している。情報処理装置10は、無線インタフェース40、スイッチ42、表示処理部44、ハードディスクドライブ50、記録媒体装着部52、ディスクドライブ54、メインメモリ60、バッファメモリ70および制御部100を有して構成される。表示処理部44は、表示装置12のディスプレイに表示するデータをバッファするフレームメモリを有する。   FIG. 4 shows the configuration of the information processing apparatus 10. The information processing apparatus 10 includes a wireless interface 40, a switch 42, a display processing unit 44, a hard disk drive 50, a recording medium mounting unit 52, a disk drive 54, a main memory 60, a buffer memory 70, and a control unit 100. . The display processing unit 44 has a frame memory that buffers data to be displayed on the display of the display device 12.

スイッチ42は、イーサネットスイッチ(イーサネットは登録商標)であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ42は、ケーブル14を介して外部ネットワークに接続し、サーバからコンテンツのデータなどを受信できるように構成される。またスイッチ42は無線インタフェース40に接続し、無線インタフェース40は、所定の無線通信プロトコルで入力装置20と接続する。入力装置20においてユーザから入力された信号は、無線インタフェース40、スイッチ42を経由して、制御部100に供給される。   The switch 42 is an Ethernet switch (Ethernet is a registered trademark), and is a device that transmits and receives data by connecting to an external device in a wired or wireless manner. The switch 42 is connected to an external network via the cable 14 and configured to receive content data and the like from the server. The switch 42 is connected to the wireless interface 40, and the wireless interface 40 is connected to the input device 20 using a predetermined wireless communication protocol. A signal input from the user in the input device 20 is supplied to the control unit 100 via the wireless interface 40 and the switch 42.

ハードディスクドライブ50は、データを記憶する記憶装置として機能する。スイッチ42を介して受信された階層データは、ハードディスクドライブ50に格納される。記録媒体装着部52は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ54は、読出専用のROMディスクが装着されると、ROMディスクを駆動して認識し、データを読み出す。ROMディスクは、光ディスクや光磁気ディスクなどであってよい。階層データはこれらの記録媒体に格納されていてもよい。   The hard disk drive 50 functions as a storage device that stores data. Hierarchical data received via the switch 42 is stored in the hard disk drive 50. When a removable recording medium such as a memory card is mounted, the recording medium mounting unit 52 reads data from the removable recording medium. When a read-only ROM disk is loaded, the disk drive 54 drives and recognizes the ROM disk to read data. The ROM disk may be an optical disk or a magneto-optical disk. Hierarchical data may be stored in these recording media.

制御部100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(PowerPC Processor Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic Processor Unit)と呼ばれる。   The control unit 100 includes a multi-core CPU, and includes one general-purpose processor core and a plurality of simple processor cores in one CPU. The general-purpose processor core is called PPU (PowerPC Processor Unit), and the remaining processor cores are called SPU (Synergistic Processor Unit).

制御部100は、メインメモリ60およびバッファメモリ70に接続するメモリコントローラを備える。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ70として使用されてもよい。   The control unit 100 includes a memory controller connected to the main memory 60 and the buffer memory 70. The PPU has a register, has a main processor as an operation execution subject, and efficiently assigns a task as a basic processing unit in an application to be executed to each SPU. Note that the PPU itself may execute the task. The SPU has a register, and includes a sub-processor as an operation execution subject and a local memory as a local storage area. The local memory may be used as the buffer memory 70.

メインメモリ60およびバッファメモリ70は記憶装置であり、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、メインメモリ60とバッファメモリ70の間のデータ転送を高速に行うことができ、また表示処理部44におけるフレームメモリとバッファメモリ70の間で高速なデータ転送を実現できる。本実施の形態の制御部100は、複数のSPUを並列動作させることで、高速な画像処理機能を実現する。表示処理部44は、表示装置12に接続されて、ユーザからの要求に応じた画像処理結果を出力する。   The main memory 60 and the buffer memory 70 are storage devices and are configured as a RAM (Random Access Memory). The SPU has a dedicated DMA (Direct Memory Access) controller as a control unit, can transfer data between the main memory 60 and the buffer memory 70 at high speed, and the frame memory and the buffer memory 70 in the display processing unit 44 can be transferred. High-speed data transfer can be realized. The control unit 100 according to the present embodiment realizes a high-speed image processing function by operating a plurality of SPUs in parallel. The display processing unit 44 is connected to the display device 12 and outputs an image processing result according to a request from the user.

本実施の形態の情報処理装置10は、表示画像の拡大/縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、圧縮画像データの一部をハードディスクドライブ50からメインメモリ60にロードしておく。また、メインメモリ60にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ70に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。   The information processing apparatus 10 according to the present embodiment uses a main part of the compressed image data from the hard disk drive 50 in order to smoothly change the display image when the display image enlargement / reduction process or the display area movement process is performed. It is loaded into the memory 60. Further, a part of the compressed image data loaded in the main memory 60 is decoded and stored in the buffer memory 70. This makes it possible to instantaneously switch an image used for generating a display image at a necessary later timing.

図5は本実施の形態における画像データの流れを模式的に示している。まず階層データはハードディスクドライブ50に格納されている。ハードディスクドライブ50に代わり、記録媒体装着部52やディスクドライブ54に装着された記録媒体が保持していてもよい。あるいは、情報処理装置10がネットワークを介して接続した画像サーバから階層データをダウンロードするようにしてもよい。ここでの階層データは上述のとおり、S3TC形式などによる固定長圧縮、あるいはJPEG形式などによる可変長圧縮がなされている。   FIG. 5 schematically shows the flow of image data in the present embodiment. First, the hierarchical data is stored in the hard disk drive 50. Instead of the hard disk drive 50, a recording medium mounted on the recording medium mounting unit 52 or the disk drive 54 may be held. Alternatively, the hierarchical data may be downloaded from an image server connected by the information processing apparatus 10 via a network. As described above, the hierarchical data here is subjected to fixed length compression in the S3TC format or the like, or variable length compression in the JPEG format or the like.

この階層データのうち、一部の画像データを圧縮した状態のままメインメモリ60にロードする(S10)。ここでロードする領域は、現在の表示画像の仮想空間における近傍や、画像の内容、ユーザの閲覧履歴等に基づいて、高頻度で表示要求がなされると予測される領域など、あらかじめ定めた規則によって決定する。ロードは、画像変更要求がなされたときのみならず、例えば所定の時間間隔で随時行う。これによりロード処理が一時期に集中しないようにする。   Among the hierarchical data, a part of the image data is loaded into the main memory 60 in a compressed state (S10). The area to be loaded here is a predetermined rule such as the vicinity of the current display image in the virtual space, the area of the image, the area where a display request is predicted to be frequently made based on the user's browsing history, etc. Determined by. The loading is performed not only when an image change request is made, but also at any given time interval, for example. This prevents the load process from being concentrated at one time.

次に、メインメモリ60に格納されている圧縮画像データのうち、表示に必要な領域のタイル画像、または必要と予測される領域のタイル画像のデータをデコードし、バッファメモリ70に格納する(S12)。バッファメモリ70は、少なくとも2つのバッファ領域72、74を含む。各バッファ領域72、74のサイズは、フレームメモリ90のサイズよりも大きく設定され、入力装置20から表示領域変更要求信号が入力された場合に、ある程度の量の変更要求に対しては、バッファ領域72、74に展開した画像データで表示画像を生成できるようにする。   Next, among the compressed image data stored in the main memory 60, the tile image data of the area necessary for display or the tile image data of the area predicted to be necessary is decoded and stored in the buffer memory 70 (S12). ). The buffer memory 70 includes at least two buffer areas 72 and 74. The size of each of the buffer areas 72 and 74 is set to be larger than the size of the frame memory 90. When a display area change request signal is input from the input device 20, the buffer area A display image can be generated with the image data expanded into 72 and 74.

バッファ領域72、74の一方は、表示画像の生成に用いる画像を保持するための表示用バッファであり、他方は、以後、必要と予測される画像を準備するためのデコード用バッファである。図5の例では、バッファ領域72が表示用バッファ、バッファ領域74がデコード用バッファで、表示領域68が表示されているものとする。後述する先読み処理によってデコード用バッファに格納する画像は、表示用バッファに格納されている画像と同一階層の画像でもよいし、縮尺の異なる別階層の画像でもよい。   One of the buffer areas 72 and 74 is a display buffer for holding an image used for generating a display image, and the other is a decoding buffer for preparing an image predicted to be necessary thereafter. In the example of FIG. 5, it is assumed that the buffer area 72 is a display buffer, the buffer area 74 is a decoding buffer, and the display area 68 is displayed. The image stored in the decoding buffer by the prefetching process to be described later may be an image in the same hierarchy as the image stored in the display buffer, or may be an image in a different hierarchy having a different scale.

次に、表示用バッファであるバッファ領域72に格納された画像のうち表示領域68の画像を、フレームメモリ90に描画する(S14)。この間に、新たな領域の画像が必要に応じてデコードされ、バッファ領域74に格納される。格納が完了したタイミングや表示領域68の変更量などに応じて、表示用バッファとデコード用バッファを切り替える(S16)。これにより、表示領域の移動や縮尺率の変更などに対し表示画像をスムーズに切り替えることができる。   Next, the image in the display area 68 among the images stored in the buffer area 72, which is a display buffer, is drawn in the frame memory 90 (S14). During this time, the image in the new area is decoded as necessary and stored in the buffer area 74. The display buffer and the decoding buffer are switched according to the timing of completion of storage, the change amount of the display area 68, and the like (S16). Thereby, a display image can be smoothly switched with respect to a movement of a display area, a change of a scale ratio, or the like.

図6は、先読み処理を説明するための図である。図6は、階層データの構造を示しており、各階層はL0(第0階層)、L1(第1階層)、L2(第2階層)、L3(第3階層)と表現されている。図6に示す階層データ構造において、深さ(Z軸)方向における位置は解像度を示し、L0に近い位置ほど解像度が低く、L3に近い位置ほど解像度は高い。なおディスプレイに表示される画像の大きさに注目すると、深さ方向における位置は、縮尺率に対応し、L3の表示画像の縮尺率を1とすると、L2における縮尺率は1/4、L1における縮尺率は1/16となり、L0における縮尺率は1/64となる。   FIG. 6 is a diagram for explaining the prefetching process. FIG. 6 shows the structure of hierarchical data, and each hierarchy is expressed as L0 (0th hierarchy), L1 (1st hierarchy), L2 (2nd hierarchy), and L3 (3rd hierarchy). In the hierarchical data structure shown in FIG. 6, the position in the depth (Z-axis) direction indicates the resolution. The position closer to L0 has a lower resolution, and the position closer to L3 has a higher resolution. When attention is paid to the size of the image displayed on the display, the position in the depth direction corresponds to the scale ratio, and when the scale ratio of the display image of L3 is 1, the scale ratio in L2 is 1/4, and in L1 The scale factor is 1/16, and the scale factor at L0 is 1/64.

したがって深さ方向において、表示画像がL0側からL3側へ向かう方向に変化する場合、表示画像は拡大していき、L3側からL0側へ向かう方向に変化する場合は、表示画像は縮小していく。矢印80は、ユーザからの表示領域変更要求信号が、表示画像の縮小を要求しており、縮尺率1/4(L2)をまたいだ様子を示している。情報処理装置10では、タイル画像38として用意しているL1、L2の深さ方向の位置を、深さ方向の先読み境界として設定し、画像変更要求信号が先読み境界をまたぐと、先読み処理を開始する。   Therefore, in the depth direction, when the display image changes from the L0 side to the L3 side, the display image enlarges. When the display image changes from the L3 side to the L0 side, the display image is reduced. Go. An arrow 80 indicates that the display area change request signal from the user requests reduction of the display image, and crosses the reduction ratio ¼ (L2). In the information processing apparatus 10, the position in the depth direction of L1 and L2 prepared as the tile image 38 is set as the prefetch boundary in the depth direction, and when the image change request signal crosses the prefetch boundary, the prefetch processing is started. To do.

表示画像の縮尺率がL2の近傍にある場合、表示画像は、L2(第2階層)のタイル画像を用いて作成される。具体的には、表示する画像の縮尺率が、L1タイル画像とL2タイル画像の切替境界82と、L2タイル画像とL3タイル画像の切替境界84の間にある場合に、L2タイル画像が利用される。したがって、矢印80に示すように画像の縮小処理が要求されると、L2のタイル画像が拡大された画像から、縮小された画像に変換されて表示される。一方、画像変更要求信号から予測される将来必要なタイル画像38を特定して、デコードしておく。図6の例では、表示領域変更要求信号による要求縮尺率がL2をまたいだときに、情報処理装置10は、縮小方向にあるL1の対応するタイル画像38をハードディスクドライブ50またはメインメモリ60から先読みしてデコードし、バッファメモリ70に書き込む。   When the scale factor of the display image is in the vicinity of L2, the display image is created using a tile image of L2 (second layer). Specifically, the L2 tile image is used when the scale ratio of the image to be displayed is between the switching boundary 82 between the L1 tile image and the L2 tile image and the switching boundary 84 between the L2 tile image and the L3 tile image. The Therefore, when the image reduction processing is requested as indicated by the arrow 80, the L2 tile image is converted from the enlarged image to the reduced image and displayed. On the other hand, a future tile image 38 predicted from the image change request signal is identified and decoded. In the example of FIG. 6, when the requested scale ratio due to the display area change request signal crosses L2, the information processing apparatus 10 prefetches the corresponding tile image 38 of L1 in the reduction direction from the hard disk drive 50 or the main memory 60. Are decoded and written into the buffer memory 70.

なお以上は深さ方向の先読み処理について説明したが、上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ70に展開されている画像データに先読み境界を設定しておき、画像変更要求信号による表示位置が先読み境界をまたいだときに、先読み処理が開始されるようにする。   Although the prefetch processing in the depth direction has been described above, the prefetch processing in the up, down, left, and right directions is similarly processed. Specifically, a prefetch boundary is set for the image data developed in the buffer memory 70, and the prefetch process is started when the display position by the image change request signal crosses the prefetch boundary.

図7は本実施の形態において、上述の階層データを表示する機能を有する制御部100aの構成を詳細に示している。制御部100aは、入力装置20からユーザが入力した情報を取得する入力情報取得部102、新たに表示すべき領域を含むタイル画像を特定するタイル画像特定部110、新たにロードすべき画像データを決定するロードブロック決定部106、必要な画像ブロックをハードディスクドライブ50からロードするロード部108を含む。制御部100aはさらに、圧縮画像データをデコードするデコード部112、および表示画像を描画する表示画像処理部114を含む。   FIG. 7 shows in detail the configuration of the control unit 100a having the function of displaying the hierarchical data described above in the present embodiment. The control unit 100a includes an input information acquisition unit 102 that acquires information input by the user from the input device 20, a tile image specification unit 110 that specifies a tile image including a region to be newly displayed, and image data to be newly loaded. A load block determining unit 106 for determining and a load unit 108 for loading necessary image blocks from the hard disk drive 50 are included. The control unit 100a further includes a decoding unit 112 that decodes the compressed image data and a display image processing unit 114 that draws a display image.

図7において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部100は1つのPPUと複数のSPUとを有し、PPUおよびSPUがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。   In FIG. 7, each element described as a functional block for performing various processes can be configured by a CPU (Central Processing Unit), a memory, and other LSIs in terms of hardware. This is realized by a program loaded on the computer. As described above, the control unit 100 includes one PPU and a plurality of SPUs, and each functional block can be configured by the PPU and the SPU individually or in cooperation. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.

入力情報取得部102は、ユーザが入力装置20に対して入力した、画像表示の開始/終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。タイル画像特定部110は、現在の表示領域のフレーム座標とユーザが入力した表示領域変更要求の情報に従い、新たに表示すべき領域を含むタイル画像を特定する。そして当該タイル画像が既にメインメモリ60にロードされていれば、デコード部112に、ロードされていなければロードブロック決定部106に、当該情報を供給する。タイル画像特定部110はその時点の表示画像の描画に必要な画像の他、以後必要と予測されるタイル画像も特定してよい。   The input information acquisition unit 102 acquires instruction contents such as start / end of image display, movement of a display area, enlargement and reduction of a display image, which are input by the user to the input device 20. The tile image specifying unit 110 specifies a tile image including an area to be newly displayed according to the frame coordinates of the current display area and the display area change request information input by the user. If the tile image is already loaded in the main memory 60, the information is supplied to the decoding unit 112, and if not loaded, the information is supplied to the load block determining unit 106. The tile image specifying unit 110 may specify not only an image necessary for drawing the display image at that time but also a tile image predicted to be necessary thereafter.

ロードブロック決定部106は、タイル画像特定部110からの情報に基づき、ハードディスクドライブ50からメインメモリ60へ新たにロードすべき、複数のタイル画像からなる画像ブロックを特定し、ロード部108にロード要求を発行する。ロードブロック決定部106は、ロード部108がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが表示領域変更要求を行った際など、所定のタイミングでロード要求を行ってもよい。ロード部108は、ロードブロック決定部106からの要求に従い、実際のロード処理を行う。   Based on the information from the tile image specifying unit 110, the load block determining unit 106 specifies an image block composed of a plurality of tile images to be newly loaded from the hard disk drive 50 to the main memory 60, and requests the load unit 108 to load it. Is issued. The load block determination unit 106 may make a load request at a predetermined timing in a state where the load unit 108 is not performing the load process, for example, at a predetermined time interval or when the user makes a display area change request. The load unit 108 performs actual load processing in accordance with a request from the load block determination unit 106.

デコード部112は、タイル画像特定部110から取得したタイル画像の情報に基づき、メインメモリ60からタイル画像のデータを読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。表示画像処理部114は、新たな表示画像のフレーム座標に基づき、バッファメモリ70の表示用バッファから対応する画像データを読み出し、表示処理部44のフレームメモリに描画する。   The decoding unit 112 reads out and decodes the tile image data from the main memory 60 based on the tile image information acquired from the tile image specifying unit 110, and stores the decoded data in the decoding buffer or the display buffer. The display image processing unit 114 reads the corresponding image data from the display buffer of the buffer memory 70 based on the frame coordinates of the new display image, and draws it in the frame memory of the display processing unit 44.

次に、これまで述べた階層構造を有する画像データの表示技術において、画像データをより効率的に構築し出力するための実施の形態について説明する。図8は本実施の形態における階層データのデータ構造を模式的に示している。 本実施の形態では階層データを、ヘッダ150、インデックスブロック160、タイル画像170、の3つのデータからなる構造とする。ヘッダ150およびインデックスブロック160は、階層データが形成する仮想空間内での位置に基づき、処理対象のタイル画像を特定するためのインデックスである。本実施の形態では、仮想空間における階層構造を領域分割し、領域ごとにタイル画像データへのインデックスをまとめることにより、タイル画像へのアクセスを効率化する。   Next, an embodiment for constructing and outputting image data more efficiently in the image data display technology having the hierarchical structure described so far will be described. FIG. 8 schematically shows the data structure of hierarchical data in the present embodiment. In the present embodiment, the hierarchical data has a structure including three data of a header 150, an index block 160, and a tile image 170. The header 150 and the index block 160 are indexes for specifying the tile image to be processed based on the position in the virtual space formed by the hierarchical data. In the present embodiment, the hierarchical structure in the virtual space is divided into regions, and the indexes to the tile image data are grouped for each region, thereby improving the access to the tile images.

ヘッダ150は、図3に示したような、仮想空間におけるピラミッド状の階層構造体を分割してなる複数の領域を定義し、領域ごとにインデックスブロック160のいずれかへのポインタが設定されたデータである。図8に示すヘッダ150において三角形151は階層構造体を横から見た形状を示しており、水平な破線は各階層の画像154a、154b、154c、154d、154e、・・・を示している。このような階層構造体を、例えば実線で示すように領域分割し、領域152a、領域152b、領域152cなどの領域を定義する。ヘッダ150では原則として、各領域に対してインデックスブロック160のいずれかへのポインタが設定される。   The header 150 defines a plurality of areas obtained by dividing a pyramid-like hierarchical structure in the virtual space as shown in FIG. 3, and data in which a pointer to one of the index blocks 160 is set for each area. It is. In the header 150 shown in FIG. 8, a triangle 151 indicates the shape of the hierarchical structure viewed from the side, and horizontal broken lines indicate images 154a, 154b, 154c, 154d, 154e,. Such a hierarchical structure is divided into regions as indicated by solid lines, for example, and regions such as region 152a, region 152b, and region 152c are defined. In the header 150, in principle, a pointer to one of the index blocks 160 is set for each area.

図8の例は、領域152aに対しインデックスブロック160aへのポインタ(矢印A)、領域152bに対しインデックスブロック160bへのポインタ(矢印B)、領域152cに対しインデックスブロック160cへのポインタ(矢印C)が設定されている様子を示している。ただし後に述べるように、ヘッダで定義される領域の一部に対して特定のインデックスブロックを指さないヌルポインタを設定してもよい。   In the example of FIG. 8, the pointer to the index block 160a (arrow A) for the area 152a, the pointer to the index block 160b (arrow B) for the area 152b, and the pointer (arrow C) to the index block 160c for the area 152c. Shows a state where is set. However, as described later, a null pointer that does not point to a specific index block may be set for a part of the area defined by the header.

インデックスブロック160は、ヘッダ150で定義された構造体の領域ごとに生成され、各領域に属する複数階層の画像上の位置に対しタイル画像170のいずれかへのポインタが設定されるデータである。図8に示すように、ヘッダ150における一つの領域に対応する一つのインデックスブロックは、当該領域に属する、複数階層の画像の少なくとも一部の領域のデータを含む。同図の例では、領域152aに対応するインデックスブロック160aは、領域152aに属する2階層分の画像154a、154b全体のデータを保持する。領域152bに対応するインデックスブロック160bは、領域152bに属する3階層分の画像154c、154d、154e全体のデータを保持する。   The index block 160 is data that is generated for each region of the structure defined by the header 150, and a pointer to one of the tile images 170 is set to the position on the image of a plurality of layers belonging to each region. As shown in FIG. 8, one index block corresponding to one area in the header 150 includes data of at least a partial area of an image of a plurality of layers belonging to the area. In the example in the figure, the index block 160a corresponding to the area 152a holds the data of the entire two-layered images 154a and 154b belonging to the area 152a. The index block 160b corresponding to the area 152b holds the entire data of the three layers of images 154c, 154d, and 154e belonging to the area 152b.

領域152cに対応するインデックスブロック160cは、領域152cに属する3階層分の画像154f、154g、154hの一部の領域のデータを保持する。そして各階層の画像平面をタイル画像のサイズに分割して生成したタイル領域ごとに、当該タイル領域の実際の画像データであるタイル画像170のいずれかを指すポインタを保持する。ただし後述するように、一つのタイル領域の描画を複数の情報を用いて行うようにした場合は、一つのタイル領域が複数のタイル画像を指すポインタを保持してもよい。同図において各インデックスブロック160a、160b、160にそれぞれ示される3平面は、対応する領域に属する階層に対応し、各階層上の小さい矩形のそれぞれがタイル領域を示している。   The index block 160c corresponding to the area 152c holds data of partial areas of the images 154f, 154g, and 154h for three layers belonging to the area 152c. For each tile area generated by dividing the image plane of each hierarchy into tile image sizes, a pointer indicating one of the tile images 170 that are actual image data of the tile area is held. However, as described later, when one tile area is drawn using a plurality of pieces of information, one tile area may hold pointers pointing to a plurality of tile images. In the figure, three planes respectively shown in the index blocks 160a, 160b, and 160 correspond to hierarchies belonging to the corresponding areas, and small rectangles on the respective hierarchies indicate tile areas.

図8の例は、インデックスブロック160bにおいて、タイル領域164aに対しタイル画像170aへのポインタ(矢印D)が設定され、タイル領域164bに対しタイル画像170bへのポインタ(矢印E)が設定されている様子を示している。ただし後に述べるように、インデックスブロックで定義されるタイル領域の一部は特定のタイル画像へのポインタを設定せずヌルポインタとしてもよい。タイル画像170は、圧縮されたタイル画像のデータである。このように階層データを構成することにより、タイル画像特定部110は、表示すべき画像フレームの仮想空間におけるフレーム座標から、ヘッダ150、インデックスブロック160、と辿り、当該画像フレームに含まれるタイル画像170を特定することができる。   In the example of FIG. 8, in the index block 160b, a pointer (arrow D) to the tile image 170a is set for the tile area 164a, and a pointer (arrow E) to the tile image 170b is set for the tile area 164b. It shows a state. However, as described later, a part of the tile area defined by the index block may be a null pointer without setting a pointer to a specific tile image. The tile image 170 is compressed tile image data. By configuring the hierarchical data in this way, the tile image specifying unit 110 traces the header 150 and the index block 160 from the frame coordinates in the virtual space of the image frame to be displayed, and the tile image 170 included in the image frame. Can be specified.

図8では、インデックスブロック160a、160b、160cはそれぞれ、4×4、8×8、16×16のタイル領域で構成される3階層の画像領域分のインデックスデータ、すなわちタイル画像170へのポインタを設定できるように示されている。このように、一つのインデックスブロック160で定義できるタイル領域の数を統一すると、例えばハードディスクドライブ50からメインメモリ60へインデックスブロック160のいずれかを読み出す際、どのインデックスブロックであっても必要となる記憶領域のサイズが変化せず、記憶領域の管理が容易になる。   In FIG. 8, the index blocks 160a, 160b, and 160c are respectively provided with pointers to the index data for three layers of image areas composed of 4 × 4, 8 × 8, and 16 × 16 tile areas, that is, tile images 170. Shown to be configurable. As described above, when the number of tile areas that can be defined by one index block 160 is unified, for example, when any of the index blocks 160 is read from the hard disk drive 50 to the main memory 60, any index block is required. The size of the area does not change, and the storage area can be easily managed.

したがって、ヘッダ150において定義される領域は、インデックスブロック160が同じサイズとなるように生成されることが望ましい。階層データが図3で示すように、第0階層が1つのタイル画像である4分木の階層構造を有するとき、図8の領域152bに属する3階層の画像、すなわち第2階層の画像154c、第3階層の画像154d、第4階層の画像154eはそれぞれ、4×4、8×8、16×16のタイル領域からなる。   Therefore, it is desirable that the area defined in the header 150 be generated so that the index block 160 has the same size. When the hierarchical data has a quadtree hierarchical structure in which the 0th hierarchy is one tile image as shown in FIG. 3, the 3rd hierarchy image belonging to the area 152b in FIG. 8, that is, the 2nd hierarchy image 154c, The third layer image 154d and the fourth layer image 154e are composed of tile areas of 4 × 4, 8 × 8, and 16 × 16, respectively.

したがって一つのインデックスブロック160で定義できる領域を上述のとおり4×4、8×8、16×16のタイル領域からなる画像領域とした場合、当該3階層の画像全体のデータを、そのまま1つのインデックスブロック160bに納めることができる。すなわち、階層データにおける第2階層の画像154c、第3階層の画像154d、第4階層の画像154eの全領域を、インデックスブロック160bの第0階層162d、第1階層162e、第2階層162fの全領域にそれぞれ対応させて、タイル画像へのポインタを設定することができる。   Therefore, when an area that can be defined by one index block 160 is an image area composed of 4 × 4, 8 × 8, and 16 × 16 tile areas as described above, the data of the entire three-layer image is directly used as one index. It can be stored in block 160b. That is, all the regions of the second layer image 154c, the third layer image 154d, and the fourth layer image 154e in the layer data are all of the 0th layer 162d, the first layer 162e, and the second layer 162f of the index block 160b. A pointer to the tile image can be set in correspondence with each region.

一方、ヘッダ150における領域152aは第0階層および第1階層の2階層の画像154a、154bを含み、第0階層の画像154aは1つのタイル領域、第1階層の画像154bは2×2のタイル領域からなるため、1つのインデックスブロック160aで定義できる領域と比較し、階層数およびタイル領域の数が少ない。このような場合、階層データにおける第0階層の画像154aをインデックスブロック160aの第0階層162aの一部、例えば左上の1つのタイル領域に対応させ、タイル画像へのポインタを設定する。第1階層の画像154bも同様に、インデックスブロック160aの第1階層162bの一部、例えば左上の2×2のタイル画像に対応させ、タイル画像へのポインタを設定する。そして、インデックスブロック160aにおけるその他のタイル領域はヌルポインタを設定する。   On the other hand, the area 152a in the header 150 includes the second hierarchy images 154a and 154b of the 0th hierarchy and the 1st hierarchy, the 0th hierarchy image 154a is one tile area, and the 1st hierarchy image 154b is a 2 × 2 tile. Since it consists of areas, the number of layers and the number of tile areas are small compared to areas that can be defined by one index block 160a. In such a case, the 0th layer image 154a in the layer data is made to correspond to a part of the 0th layer 162a of the index block 160a, for example, one tile area at the upper left, and a pointer to the tile image is set. Similarly, the first layer image 154b is set to correspond to a part of the first layer 162b of the index block 160a, for example, the 2 × 2 tile image in the upper left, and a pointer to the tile image is set. A null pointer is set for the other tile areas in the index block 160a.

ヘッダ150における領域152cは第5階層、第6階層、第7階層の3階層の画像154f、154g、154hを含むが、これらの画像は1つのインデックスブロック160で定義できるタイル領域の数より多いタイル画像からなるため、図8に示すように画像平面を分割することにより、各階層の一部の領域をインデックスブロック160cの第0階層、第1階層、第2階層にそれぞれ対応させる。各インデックスブロックに属する複数階層の画像は解像度の異なる同一の画像領域となるように領域分割する。   An area 152c in the header 150 includes images 154f, 154g, and 154h of the third hierarchy of the fifth hierarchy, the sixth hierarchy, and the seventh hierarchy, but these images have more tiles than the number of tile areas that can be defined by one index block 160. Since it consists of images, as shown in FIG. 8, the image plane is divided so that a part of each layer corresponds to the 0th layer, the 1st layer, and the 2nd layer of the index block 160c. A plurality of layers of images belonging to each index block are divided into regions having the same resolution and different resolution.

なお図8で示した階層構造体の領域分割の態様はあくまで例示であり、元の階層データの構造や望ましいインデックスブロックのデータサイズなどによって適宜決定してよい。また後述するように、元の画像の更新に応じて、階層データの分割態様を変化させてもよい。   Note that the area division mode of the hierarchical structure shown in FIG. 8 is merely an example, and may be determined as appropriate depending on the structure of the original hierarchical data, the data size of a desired index block, and the like. As will be described later, the division mode of the hierarchical data may be changed according to the update of the original image.

次に、これまで述べたデータ構造を有する階層データを含む画像ファイルを生成する態様について説明する。この態様も図1で示した情報処理システム、図4で示した情報処理装置10と同様の装置構成で実現できる。図9は、本実施の形態において表示対象の画像ファイルを生成する機能を有する制御部100bの構成を示している。なお制御部100bは図7の制御部100aに示した、画像表示を行うための機能を備えていてもよいが、ここでは図示を省略している。一方、図9に示した機能のみを有する制御部100bを備えた情報処理装置10を、表示機能を発揮する情報処理装置とは別に設けてもよい。   Next, an aspect of generating an image file including hierarchical data having the data structure described so far will be described. This aspect can also be realized by the same apparatus configuration as the information processing system shown in FIG. 1 and the information processing apparatus 10 shown in FIG. FIG. 9 shows a configuration of the control unit 100b having a function of generating an image file to be displayed in the present embodiment. The control unit 100b may have a function for displaying an image as shown in the control unit 100a of FIG. 7, but the illustration is omitted here. On the other hand, you may provide the information processing apparatus 10 provided with the control part 100b which has only the function shown in FIG. 9 separately from the information processing apparatus which exhibits a display function.

制御部100bは、ハードディスクドライブ50に格納された画像データを読み出し階層化する画像階層生成部120、各階層の画像をタイル画像に分割する画像分割部122、各階層の画像を解析し冗長性を検出する冗長性検出部124、冗長性を考慮して、ヘッダ、インデックスブロックのデータを生成するヘッダ・インデックスブロック生成部126、および最終的に出力する、タイル画像、ヘッダ、インデックスブロックを含む画像ファイルを生成する画像ファイル生成部128を含む。   The control unit 100b reads out the image data stored in the hard disk drive 50 and hierarchizes the image layer generation unit 120, the image division unit 122 that divides each layer image into tile images, and analyzes the images in each layer for redundancy. Redundancy detection unit 124 to detect, header / index block generation unit 126 to generate header and index block data in consideration of redundancy, and finally output image file including tile image, header, and index block Includes an image file generation unit 128 for generating.

画像階層生成部120は、ハードディスクドライブ50から、ファイル作成対象の画像のデータを読み出す。この画像データはある解像度を有する一枚の画像のデータでよい。処理対象の画像データは、図に示すように入力装置20を介してユーザが指定してもよいし、原画像を取得した別の機能ブロック(図示せず)からの要求を受け付けてもよい。画像階層生成部は120はさらに、読み出した画像のデータを所定の解像度へ段階的に縮小した画像のデータを生成することにより、元の画像を含めた階層構造の画像データを生成する。   The image hierarchy generation unit 120 reads data of an image to be created from the hard disk drive 50. This image data may be data of one image having a certain resolution. The image data to be processed may be specified by the user via the input device 20 as shown in the figure, or a request from another functional block (not shown) that acquired the original image may be accepted. The image hierarchy generation unit 120 further generates image data having a hierarchical structure including the original image by generating image data obtained by stepwise reducing the read image data to a predetermined resolution.

画像分割部122は、各階層の画像を所定のサイズに分割してタイル画像のデータを生成する。生成したタイル画像はメインメモリ60に格納する。この際、各タイル画像が元の画像のどの位置の画像であるかを、識別番号を付与するなどして管理する。   The image dividing unit 122 generates tile image data by dividing each layer image into a predetermined size. The generated tile image is stored in the main memory 60. At this time, the position of each tile image in the original image is managed by assigning an identification number or the like.

冗長性検出部124は各階層の画像を解析することにより、同一階層内、および階層間で画像の冗長性を検出する。同一階層内での冗長性としては例えば、複数のタイル領域に渡って同じタイル画像のデータを用いることができる場合が考えられる。また階層間での冗長性としては、低解像度の階層の画像を拡大した画像と高解像度の階層の画像とで見た目の差が大きくない場合が考えられる。このように冗長性がある領域は、個々にタイル画像のデータを持たずとも、あるタイル画像のデータを流用することで表示が可能である。このようにすることで、画像データの圧縮を実現する。具体的な手法は後に述べる。   The redundancy detecting unit 124 detects the image redundancy within the same hierarchy and between the hierarchies by analyzing the image of each hierarchy. As the redundancy within the same hierarchy, for example, a case where data of the same tile image can be used across a plurality of tile areas is conceivable. Further, as redundancy between layers, there may be a case where the difference in appearance between an image obtained by enlarging an image of a low resolution layer and an image of a high resolution layer is not large. Such a redundant region can be displayed by diverting the data of a certain tile image without having the tile image data individually. In this way, image data compression is realized. Specific methods will be described later.

ヘッダ・インデックスブロック生成部126は、上述のヘッダおよびインデックスブロックのデータを作成する。冗長性が検出されない画像では上述のように、ヘッダで定義される全ての領域に対しインデックスブロックのいずれかへのポインタが設定され、さらにインデックスブロックで定義される全てのタイル領域に対し、タイル画像へのポインタが設定される。一方、冗長性を有する画像領域については、ヘッダあるいはインデックスブロックにヌルポインタを設定することでタイル画像のデータ共有を実現する。   The header / index block generation unit 126 creates the above-described header and index block data. As described above, in an image in which redundancy is not detected, a pointer to one of index blocks is set for all areas defined in the header, and tile images are defined for all tile areas defined in the index block. A pointer to is set. On the other hand, for image areas having redundancy, tile image data sharing is realized by setting a null pointer in the header or index block.

画像ファイル生成部128は、インデックスブロックにおいて設定されたポインタが指すタイル画像のデータを読み出し、順につなげることによって、最終的な画像データを生成する。そして画像データ、ヘッダ、インデックスブロックを含む画像ファイルを生成して、最終的な出力データとする。上述のように、画像の冗長性を検出して、複数の領域の描画に一つのタイル画像のデータを用いるようにすることにより、画像データのサイズを効率的に圧縮することができる。本実施の形態では、解像度の異なる同一の画像を画像データに含むため、異なる階層の画像であっても同じタイル画像のデータを利用することによってデータの高率圧縮が可能である。   The image file generation unit 128 reads the tile image data pointed to by the pointer set in the index block and connects them in order to generate final image data. Then, an image file including image data, a header, and an index block is generated and used as final output data. As described above, the size of the image data can be efficiently compressed by detecting the redundancy of the image and using the data of one tile image for drawing a plurality of regions. In the present embodiment, since the same image with different resolution is included in the image data, even if the images are in different layers, the data of the same tile image can be used to compress the data at a high rate.

図10は画像に冗長性がある場合の元の画像とタイル画像との関係を説明する図である。同図において画像180aおよび画像180bは、同じ領域を表す2つの階層の画像である。すなわち画像180aは画像180bを縮小して得られる。画像180aおよび画像180b上に示した格子はタイル画像に分割する際の境界線である。同図では説明のために画像180a、180bのタイル領域およびタイル画像170のそれぞれに識別番号を付与している。   FIG. 10 is a diagram for explaining the relationship between an original image and a tile image when the image has redundancy. In the figure, an image 180a and an image 180b are two layers of images representing the same region. That is, the image 180a is obtained by reducing the image 180b. The grids shown on the image 180a and the image 180b are boundary lines when dividing into tile images. In the figure, for the purpose of explanation, identification numbers are assigned to the tile regions of the images 180a and 180b and the tile image 170, respectively.

同図において画像180aおよび画像180bには、楕円形と三角形の図形が描かれ、それ以外の領域は背景として単色に塗りつぶされているとする。そのような画像の各領域から切り出されたタイル画像170のデータは、本来の画像上の並びと独立してメインメモリ60などに保持しておく。ここで画像180aおける単色の塗りつぶし領域であるタイル領域「4」は、そこから切り出されたタイル画像「4」と対応する。このようなとき、インデックスブロック160において、タイル領域「4」に対しタイル画像「4」へのポインタを設定する。   In the figure, it is assumed that an image 180a and an image 180b are drawn with an ellipse and a triangle, and the other areas are filled with a single color as a background. The data of the tile image 170 cut out from each area of such an image is stored in the main memory 60 or the like independently of the original image arrangement. Here, the tile area “4”, which is a single color fill area in the image 180a, corresponds to the tile image “4” cut out from the tile area “4”. In such a case, in the index block 160, a pointer to the tile image “4” is set for the tile area “4”.

画像180bは、画像180aの高解像度画像であるから、2つの画像の各タイル領域の対応関係は拡大率によって容易に導出できる。同図では例えば、画像180aのタイル領域「4」と、画像180bのタイル領域「15」、「16」、「19」、「20」が対応する。したがって、画像180aのタイル領域「4」が単色の塗りつぶし領域であれば、画像180bのタイル領域「15」、「16」、「19」、「20」は全て塗りつぶし領域であることが特定できる。すなわちこれらの領域の表示にはタイル画像「4」があれば済むことになる。   Since the image 180b is a high-resolution image of the image 180a, the correspondence between the tile regions of the two images can be easily derived by the enlargement ratio. In the figure, for example, the tile area “4” of the image 180a corresponds to the tile areas “15”, “16”, “19”, and “20” of the image 180b. Therefore, if the tile area “4” of the image 180a is a single-color filled area, it can be specified that all the tile areas “15”, “16”, “19”, and “20” of the image 180b are filled areas. That is, the tile image “4” is sufficient to display these areas.

同様に、画像180aを画像180bの解像度まで拡大したときに塗りつぶし領域となる領域を、画像180aを走査することによって判別すると、タイル領域「3」の下半分の領域、すなわち画像180bのタイル領域「17」、「18」が塗りつぶし領域であることがわかる。したがってこれらの領域もタイル画像「4」を用いることにより表示することが可能である。このようにタイル画像を共有することにより、タイル画像のデータ圧縮が可能となる。さらに後に述べるように、低解像度のタイル画像によって表示可能な高解像度の画像の領域は特定のポインタを持たないようにすることで、ヘッダやインデックスブロックのデータ圧縮も可能となる。   Similarly, when the area that becomes the filled area when the image 180a is enlarged to the resolution of the image 180b is determined by scanning the image 180a, the lower half area of the tile area “3”, that is, the tile area “ It can be seen that “17” and “18” are filled areas. Therefore, these areas can also be displayed by using the tile image “4”. By sharing the tile image in this way, data compression of the tile image becomes possible. As will be described later, the header and index block data can be compressed by preventing the high-resolution image area that can be displayed by the low-resolution tile image from having a specific pointer.

本実施の形態で用いる画像データは、複数の解像度の同一の画像を処理対象とするため、上記の冗長性検出処理を最も小さい解像度の画像から順に繰り返すことにより、高解像度の大きなサイズの画像についても、計算負荷を抑えて冗長性を有する領域を特定することができる。なお上述の説明では単色の塗り潰し領域を検出して、同じ塗りつぶし領域でタイル画像のデータを共有する例を述べたが、同様の処理は、およそ単色の領域、ランダムな模様や繰り返しの模様のみの領域などでも有効である。これらの領域の検出は、領域ごとのカラーヒストグラムや周波数解析などによって低解像度の画像から実施していく。   Since the image data used in the present embodiment targets the same image having a plurality of resolutions, the above-described redundancy detection process is repeated in order from the smallest resolution image to obtain a high resolution large size image. However, it is possible to specify a region having redundancy while suppressing the calculation load. In the above description, an example in which a single-color filled area is detected and tile image data is shared by the same filled area has been described. It is also effective in areas. These areas are detected from a low resolution image by color histogram or frequency analysis for each area.

図11は冗長性がある場合の元の画像とタイル画像との関係の別の例を説明する図である。画像180aおよび画像180bは図10で示したのと同様である。同図において画像180aのタイル領域「2」は、画像180bのタイル領域「7」、」「8」、「11」、「12」に対応する。画像180bは画像180aより高解像度の画像であるため、これらの領域の4つのタイル画像は領域「2」から切り出したタイル画像「2」を単に拡大した画像より多くの情報を含むのが一般的である。   FIG. 11 is a diagram illustrating another example of the relationship between the original image and the tile image when there is redundancy. The image 180a and the image 180b are the same as those shown in FIG. In the figure, the tile area “2” of the image 180a corresponds to the tile areas “7”, “8”, “11”, and “12” of the image 180b. Since the image 180b is a higher-resolution image than the image 180a, the four tile images in these regions generally include more information than an image obtained by simply enlarging the tile image “2” cut out from the region “2”. It is.

しかし元の画像が写真などで、画像180bの領域「7」、「8」、「11」、「12」にピントが合っていない場合など、タイル画像「2」を拡大した画像と大きな差がない場合がある。このような場合、上述の塗りつぶし領域と同様、領域「7」、」「8」、「11」、「12」を表示する際、そこから切り出したタイル画像ではなくタイル画像「2」を用い、それを拡大して表示しても、元の画像と大差ない画像を表示させることができる。このような冗長性は、低解像度画像を拡大した画像と高解像度の画像との差分がしきい値以下である場合や、高解像度の画像を周波数解析したとき、しきい値以下の周波数帯のみ含む場合などに検出できる。   However, when the original image is a photograph or the like and the areas “7”, “8”, “11”, and “12” of the image 180b are not in focus, there is a large difference from the enlarged image of the tile image “2”. There may not be. In such a case, when displaying the areas “7”, “8”, “11”, “12”, the tile image “2” is used instead of the tile image cut out from the area “7”, “8”, “11”, “12”. Even if it is enlarged and displayed, an image that is not significantly different from the original image can be displayed. Such redundancy is possible only when the difference between the enlarged image of the low-resolution image and the high-resolution image is less than the threshold value, or when the frequency analysis of the high-resolution image is performed, only in the frequency band below the threshold value. It can be detected when it is included.

図12は、上述のような冗長性によるタイル画像の共有をヘッダによって定義する手法を説明する図である。このときヘッダ150aで定義される階層構造体の領域中、別の領域に含まれる階層の画像を用いて表示が可能な領域は、特定のインデックスブロックへのポインタを設定せずヌルポインタとする。図12では、ヘッダ150aの構造体において、網掛けで示した領域には特定のインデックスブロックへのポインタ、すなわち有効なポインタが設定され、白抜きの領域にはヌルポインタを設定するとする。   FIG. 12 is a diagram for explaining a technique for defining sharing of tile images based on redundancy as described above using a header. At this time, an area that can be displayed using an image of a hierarchy included in another area in the area of the hierarchical structure defined by the header 150a is set as a null pointer without setting a pointer to a specific index block. In FIG. 12, in the structure of the header 150a, a pointer to a specific index block, that is, a valid pointer is set in the shaded area, and a null pointer is set in the white area.

このようなヘッダ150aを有する階層データにおいて画像領域156を表示する場合、当該画像を含む領域はヌルポインタとなっている。この場合、階層データの仮想空間を、画像が縮小される方向に辿っていき、同じ画像領域156の縮小画像を含み有効なポインタが設定されている領域を探索する(矢印F)。同図においては領域152dに有効なポインタが設定されているため、当該ポインタが指すインデックスブロック160dのデータを取得する(矢印G)。   When the image area 156 is displayed in the hierarchical data having such a header 150a, the area including the image is a null pointer. In this case, the virtual space of the hierarchical data is traced in the direction in which the image is reduced, and an area including a reduced image of the same image area 156 and set with a valid pointer is searched (arrow F). In the figure, since a valid pointer is set in the area 152d, the data of the index block 160d pointed to by the pointer is acquired (arrow G).

そしてインデックスブロック160dがデータを保持する階層のうち、最も解像度の大きい第2階層において画像領域156を含むタイル領域を特定し、それに対応づけられたポインタを取得する。画像領域156が領域152dの第2階層の画像平面上のどこに位置するかは、階層データにおける各階層の縮尺率によって容易に計算できるため、上記のタイル領域の特定はそれに基づき実施する。   The index block 160d specifies a tile area including the image area 156 in the second hierarchy having the highest resolution among the layers in which the data is stored, and obtains a pointer associated therewith. Where the image area 156 is located on the image plane of the second hierarchy of the area 152d can be easily calculated based on the scale ratio of each hierarchy in the hierarchy data, the above tile area is specified based on it.

そして取得したポインタが指すタイル画像170cのデータを取得し(矢印H)、それを用いて画像領域156の表示画像を生成する。ここで画像領域156がタイル画像のサイズを有するとすると、画像領域156を描画するには同図に示すように、縮小画像であるタイル画像170cの一部の領域172を拡大する。上述のとおり、画像領域156に対応する領域172の位置は、両者の縮尺率によって容易に計算できる。   Then, the data of the tile image 170c pointed to by the acquired pointer is acquired (arrow H), and a display image of the image area 156 is generated using the acquired data. Here, assuming that the image area 156 has the size of the tile image, to draw the image area 156, as shown in the figure, a partial area 172 of the tile image 170c, which is a reduced image, is enlarged. As described above, the position of the region 172 corresponding to the image region 156 can be easily calculated based on the scale ratio of both.

このように、ヘッダ150aにおいてヌルポインタを定義可能とすることにより、ヘッダ150aが定義する全ての領域に対しインデックスブロックを用意する必要がなくなり、データの圧縮効率が向上する。なおヌルポインタを設定する領域は必ずしも高解像度側になくてもよく、図12に示すように、低解像度の領域と高解像度の領域に挟まれた領域152eに対し中抜けの状態でヌルポインタを設定することもできる。この場合、領域152eに含まれる画像を表示する際は、解像度の低い側の領域152fに属する階層の画像を拡大して表示し、表示画像の解像度が増加して領域152sに入ったら、当該領域に対して設定されたポインタが指すインデックスブロックを参照してタイル画像を取得する。   Thus, by making it possible to define a null pointer in the header 150a, it is not necessary to prepare index blocks for all the areas defined by the header 150a, and the data compression efficiency is improved. Note that the area where the null pointer is set does not necessarily have to be on the high resolution side, and as shown in FIG. 12, the null pointer is set in a state where the area 152e is sandwiched between the low resolution area and the high resolution area. It can also be set. In this case, when displaying an image included in the region 152e, an image of a layer belonging to the lower-resolution region 152f is enlarged and displayed, and when the resolution of the display image increases and enters the region 152s, the region The tile image is acquired with reference to the index block indicated by the pointer set for.

このようにすることで、表示画像がある解像度を超えるとこれまでと異なる画像が表示されるようにすることができる。例えば解像度を上げると新聞紙面の漢字に対して振り仮名が出現したり、写真の背景に別の物が出現したり、といった表示上の演出が可能となる。なおこのように、ヘッダでは基本的に任意の領域に対してヌルポインタを設定することが可能であるが、階層構造体の頂点、すなわち解像度が最も小さい画像を含む領域152gに対しては必ず有効なポインタを設定する。これにより、その他のいかなる領域に対してヌルポインタを設定しても、階層構造体を辿ることにより、少なくとも領域152gには到達し、表示画像を生成できる。   In this way, when the display image exceeds a certain resolution, a different image can be displayed. For example, when the resolution is increased, display effects such as the appearance of a kana for a kanji on a newspaper or the appearance of another object in the background of a photograph can be achieved. As described above, in the header, it is possible to set a null pointer for an arbitrary area basically, but it is always effective for the vertex of the hierarchical structure, that is, the area 152g including the image with the smallest resolution. Set the correct pointer. Thereby, even if a null pointer is set for any other region, at least the region 152g can be reached and a display image can be generated by following the hierarchical structure.

図13は、上述のような冗長性によるタイル画像の共有をインデックスブロックによって定義する手法を説明する図である。ここでインデックスブロック160eに属する画像領域中、同じインデックスブロック160eに含まれる別の階層の画像を用いて表示が可能が領域は、特定のタイル画像へのポインタを設定せずにヌルポインタとする。図13では、インデックスブロック160eにおいて網掛けで示したタイル領域には特定のタイル画像へのポインタ、すなわち有効なポインタが設定され、白抜きの領域にはヌルポインタを設定するとする。   FIG. 13 is a diagram for explaining a technique for defining sharing of tile images based on redundancy as described above by using index blocks. Here, among the image areas belonging to the index block 160e, an area that can be displayed using an image of another layer included in the same index block 160e is a null pointer without setting a pointer to a specific tile image. In FIG. 13, it is assumed that a pointer to a specific tile image, that is, a valid pointer is set in the tile area indicated by shading in the index block 160e, and a null pointer is set in the white area.

同図において画像領域158を表示する場合、まずヘッダ150bにおいて当該画像領域158を含む領域152hを特定し、当該領域152hに対して設定されたポインタが指すインデックスブロック160eを取得する(矢印I)。インデックスブロック160eがデータを保持する領域のうち、画像領域158に対応する、第2階層162gの画像中の領域に対しヌルポインタが設定されていた場合、同じインデックスブロック160eに属する階層を縮小方向に辿っていき、同じ画像領域158の縮小画像に対し有効なポインタが設定されている階層を探索する。   When displaying the image area 158 in the figure, first, the area 152h including the image area 158 is specified in the header 150b, and the index block 160e indicated by the pointer set for the area 152h is acquired (arrow I). When a null pointer is set for an area in the image of the second hierarchy 162g corresponding to the image area 158 among areas where the index block 160e holds data, the hierarchy belonging to the same index block 160e is reduced in the reduction direction. Tracing is performed, and a hierarchy in which a valid pointer is set for the reduced image in the same image area 158 is searched.

同図の例では、まず第1階層162hの画像に到達するが(矢印J)、画像領域158に対応する領域に対してはやはりヌルポインタが設定されている。そこでさらに解像度の低い第0階層162iの画像に到達する(矢印K)。第0階層162iの画像では、画像領域158に対応する領域に有効なポインタが設定されているため、当該ポインタが指すタイル画像170dのデータを取得し(矢印L)、それを用いて画像領域158の表示画像を生成することができる。ここで画像領域158がタイル画像のサイズを有するとすると、画像領域158を描画するには同図に示すように、縮小画像であるタイル画像170dの一部の領域174を拡大する。上述と同様、画像領域158に対応する領域174の位置は、両者の縮尺率によって容易に計算できる。   In the example of the figure, the image of the first hierarchy 162h is first reached (arrow J), but a null pointer is set for the area corresponding to the image area 158. Therefore, the image of the 0th layer 162i having a lower resolution is reached (arrow K). In the image of the 0th hierarchy 162i, since a valid pointer is set in the area corresponding to the image area 158, the data of the tile image 170d pointed to by the pointer is acquired (arrow L), and is used for the image area 158. Display images can be generated. Assuming that the image area 158 has the size of the tile image, to draw the image area 158, as shown in the figure, a partial area 174 of the tile image 170d which is a reduced image is enlarged. As described above, the position of the region 174 corresponding to the image region 158 can be easily calculated based on the scale ratio of both.

このように、インデックスブロック160eにおいてヌルポインタを定義可能とすることにより、インデックスブロック160eで定義される全てのタイル領域に対しタイル画像へのポインタを定義せずに済み、タイル画像のデータ圧縮とともにインデックスブロック自体のデータ量を削減することができる。また、タイル画像が更新されても、インデックスブロック内での画像の拡大縮小関係は基本的には変化しないため、全てのタイル画像へのポインタを更新する必要がなくなり、更新処理を最小限に抑えることができる。   In this way, by making it possible to define a null pointer in the index block 160e, it is not necessary to define pointers to tile images for all tile areas defined in the index block 160e. The amount of data in the block itself can be reduced. In addition, even if tile images are updated, the relationship between image enlargement and reduction in the index block does not basically change, so it is not necessary to update pointers to all tile images, and update processing is minimized. be able to.

ヘッダと同様、インデックスブロックにおいても、解像度が最も小さい第0階層162iの画像では全タイル領域に対し有効なポインタを設定するようにする。このようにすることでその他の任意の領域でヌルポインタを設定しても、縮小方向へ階層を辿ることにより少なくとも第0階層162iの画像には到達し、表示画像を生成できる。ただしヘッダで定義される領域のうち、階層構造体の頂点、すなわち解像度が最も小さい階層を含む領域は上述のとおり、タイル画像の数が元々少ない場合があり、このような場合は対応するインデックスブロックの全ての階層にヌルポインタが設定された領域が含まれていてよい。   Similar to the header, in the index block, an effective pointer is set for all tile areas in the image of the 0th layer 162i having the smallest resolution. In this way, even if a null pointer is set in another arbitrary area, the image of at least the 0th hierarchy 162i is reached by following the hierarchy in the reduction direction, and a display image can be generated. However, among the areas defined in the header, the vertex of the hierarchical structure, that is, the area including the hierarchy with the lowest resolution may have a small number of tile images as described above. In such a case, the corresponding index block An area in which a null pointer is set may be included in all the layers.

またヘッダと同様、インデックスブロックにおいても、ある画像領域について、高解像度の第2階層162gと低解像度の第0階層162iには特定のポインタを設定し、その中間の解像度の第1階層162hのみヌルポインタを設定するようにできる。例えば図13において中間の第1階層162hの左下の領域を表示する際は、解像度の低い第0階層162iの同領域に対して設定されたポインタが指すタイル画像を拡大して表示し、第2階層162gを用いるまで表示画像の解像度が上がったら、当該第2階層162gの同じ領域に対して設定されたポインタが指すタイル画像を用いて表示画像を生成する。このようにすることで、ヘッダと同様、同じ領域でも拡大すると別の画像が表示されるような態様を実現できる。   Similarly to the header, in the index block, a specific pointer is set in the high resolution second layer 162g and the low resolution zero layer 162i, and only the first layer 162h having an intermediate resolution is null. You can set the pointer. For example, when displaying the lower left area of the intermediate first hierarchy 162h in FIG. 13, the tile image pointed to by the pointer set for the same area of the low resolution 0th hierarchy 162i is enlarged and displayed. When the resolution of the display image increases until the layer 162g is used, a display image is generated using the tile image pointed to by the pointer set for the same region of the second layer 162g. By doing in this way, like a header, the mode that another image will be displayed if it expands also in the same field is realizable.

このようにインデックスブロックでタイル画像の共有を定義する場合、ヘッダでインデックスブロックの共有を定義する場合に比べ、タイル画像単位で詳細な設定を行うことができる。なお図12および図13の例では、ヘッダまたはインデックスブロックのいずれかにヌルポインタが設定されている場合を示しているが、双方にヌルポインタが設定されていても同様の処理により、インデックスブロックおよびタイル画像の共有を定義できる。また上述の例では、ヘッダまたはインデックスブロックにヌルポインタを設定することにより、異なる階層同士でタイル画像を共有する態様を実現した。一方、同一階層でタイル画像を共有する場合は、階層構造体の領域のうち、同一階層を含む複数の領域に対し同一のインデックスブロックへのポインタを設定するか、インデックスブロックにおいて複数のタイル領域に対し同一のタイル画像へのポインタを設定すればよい。   As described above, when the sharing of the tile image is defined by the index block, detailed setting can be performed in units of tile images, compared to the case where the sharing of the index block is defined by the header. 12 and 13 show a case where a null pointer is set in either the header or the index block, but even if a null pointer is set in both, the index block and the index block and You can define sharing of tile images. Moreover, in the above-mentioned example, the aspect which shares a tile image between different hierarchies was implement | achieved by setting a null pointer to a header or an index block. On the other hand, when sharing tile images in the same hierarchy, a pointer to the same index block is set for a plurality of areas including the same hierarchy in the area of the hierarchical structure, or multiple tile areas in the index block are set. A pointer to the same tile image may be set.

次に、画像ファイルを生成する機能を有する制御部100bの動作を説明する。図14は図9で示した制御部100bが画像ファイルを生成する処理手順を示すフローチャートである。まずユーザまたは別の処理モジュールによって画像データを指定する入力がなされたら、画像階層生成部120は、ハードディスクドライブ50から指定された画像データを読み出す(S50)。そして一般的な縮小処理を施すことによって所定の解像度を有する画像データを生成して、複数の解像度の画像データからなる階層データを生成する(S52)。次に画像分割部122は、各階層の画像をタイル画像に分割したうえメインメモリ60に格納する(S54)。このとき、各タイル画像の画像上の位置とメインメモリ60の記憶領域を示すアドレスとを対応づけて記録しておくことにより、インデックスブロックの生成に利用する。   Next, the operation of the control unit 100b having a function for generating an image file will be described. FIG. 14 is a flowchart illustrating a processing procedure in which the control unit 100b illustrated in FIG. 9 generates an image file. First, when an input for designating image data is made by the user or another processing module, the image hierarchy generation unit 120 reads the designated image data from the hard disk drive 50 (S50). Then, image data having a predetermined resolution is generated by performing a general reduction process, and hierarchical data composed of image data of a plurality of resolutions is generated (S52). Next, the image dividing unit 122 divides each layer image into tile images and stores them in the main memory 60 (S54). At this time, the position on the image of each tile image and the address indicating the storage area of the main memory 60 are recorded in association with each other, which is used for generating an index block.

なおS50において、あらかじめタイル画像を記録したファイルを読み出すようにしてもよい。この場合、S52の階層データ生成処理、S54の画像分割処理は省略できる。ファイルの先頭アドレスからの各タイル画像のアドレスのオフセット値と画像上の位置を当該ファイルに含めておけば、S50で読み出した際の当該ファイルのメインメモリ60における先頭アドレスをS54で記録しておくことにより、各タイル画像のアドレスと画像上の位置との関係を取得できる。   In S50, a file in which tile images are recorded in advance may be read out. In this case, the hierarchical data generation process in S52 and the image division process in S54 can be omitted. If the offset value of the address of each tile image from the head address of the file and the position on the image are included in the file, the head address in the main memory 60 of the file read in S50 is recorded in S54. Thus, the relationship between the address of each tile image and the position on the image can be acquired.

次に冗長性検出部124は、上述のように冗長性の有無を確認する(S58)。具体的には、N階層の画像を走査して、N+1階層の画像のタイル画像の大きさに対応する大きさの領域に単色で構成される領域があるか否かを確認する。これを解像度が高い階層の方向へ繰り返していく。冗長性検出部124はそのほか、N階層の画像をN+1階層の画像の大きさまで拡大した画像とN+1階層の画像との差分画像や、N+1階層の画像の周波数解析により、N+1階層の画像であってもN階層の画像と同程度の情報しか含まない領域があるか否かを確認する。確認手法は画像処理の分野で一般的に行われている手法を適宜適用してよい。   Next, the redundancy detecting unit 124 confirms the presence or absence of redundancy as described above (S58). Specifically, the image of the Nth layer is scanned to check whether or not there is a region composed of a single color in the region corresponding to the size of the tile image of the N + 1th layer image. This is repeated in the direction of higher resolution. In addition, the redundancy detection unit 124 is an N + 1 layer image obtained by performing a difference image between an image obtained by enlarging an image of the N layer up to the size of the image of the N + 1 layer and an image of the N + 1 layer and frequency analysis of the image of the N + 1 layer. Also, it is confirmed whether or not there is an area containing only the same level of information as the N-layer image. As a confirmation method, a method generally used in the field of image processing may be appropriately applied.

次にヘッダ・インデックスブロック生成部126は、冗長性を加味してヘッダおよびインデックスブロックを作成する(S60)。具体的には、ヘッダで定義する領域ごと、低解像度側の領域に属する画像を拡大して表示できる場合は、当該領域に対してヌルポインタを設定し、その他の領域については対応するインデックスブロックを生成してそれぞれを指すポインタをヘッダに設定する。さらに各インデックスブロックにおいて、それに属する複数の階層の画像うち低解像度の画像を拡大して表示できる領域に対してはヌルポインタを設定し、それ以外の領域に対しては、当該領域から切り出したタイル画像へのポインタを設定する。   Next, the header / index block generation unit 126 creates a header and an index block in consideration of redundancy (S60). Specifically, if an image belonging to the low resolution area can be enlarged and displayed for each area defined in the header, a null pointer is set for the area, and the corresponding index block is set for the other area. Generate and set a pointer to each in the header. Further, in each index block, a null pointer is set for an area in which a low resolution image can be enlarged and displayed among the images of a plurality of layers belonging thereto, and tiles cut out from the area for other areas Set a pointer to the image.

次に画像ファイル生成部128は、最終的に出力するための画像ファイルを作成する(S62)。ここで冗長性検出部124がS58で冗長性を検出しなかった場合は、S54で分割して生成されたタイル画像のデータを全てメインメモリ60より読み出し、S60で生成したヘッダおよびインデックスブロックとともに画像ファイルとする。冗長性が検出された場合は、S60で生成したインデックスブロックで設定されたポインタが指すタイル画像のデータのみをメインメモリ60より読み出し、S60で生成したヘッダおよびインデックスブロックとともに画像ファイルとする。   Next, the image file generation unit 128 creates an image file for final output (S62). Here, when the redundancy detection unit 124 does not detect redundancy in S58, all the tile image data generated by dividing in S54 is read from the main memory 60, and the image is displayed together with the header and index block generated in S60. A file. When redundancy is detected, only the data of the tile image pointed to by the pointer set in the index block generated in S60 is read from the main memory 60, and is set as an image file together with the header and index block generated in S60.

次に、このようにして生成した画像ファイルをもちいて画像を表示するときの動作を説明する。図15は、本実施の形態における画像ファイルを用いて画像を表示するための処理手順を示すフローチャートである。本処理手順は、図7に示した制御部100aによって実現できる。同図のフローチャートは、表示領域変更要求によって画像ファイルから必要なデータを読み出しデコードして表示する処理を主に記載しているが、ハードディスクからのロード、必要なデータの先読み処理、バッファメモリへの書き出しなど基本的な流れは図5で示したのと同様である。   Next, an operation when an image is displayed using the image file generated in this way will be described. FIG. 15 is a flowchart showing a processing procedure for displaying an image using an image file in the present embodiment. This processing procedure can be realized by the control unit 100a shown in FIG. The flowchart in the figure mainly describes the process of reading out the necessary data from the image file in response to a display area change request, decoding and displaying it, but loading from the hard disk, prefetching of the necessary data, The basic flow such as writing is the same as that shown in FIG.

まず表示装置12に画像の一部が表示された状態で、ユーザが入力装置20を介して表示領域の変更要求を入力すると、入力情報取得部102はそれを受け付ける(S70)。するとタイル画像特定部110は、要求される表示画像の変更量を導出し、それに基づき新たに表示すべきフレーム座標を決定する(S72)。表示画像の変更量は、仮想空間における上下左右方向の移動量および深さ方向の移動量であり、表示すべきフレーム座標は、それまでに表示されていた表示領域のフレーム座標と導出した変更量により決定できる。   First, when the user inputs a display area change request via the input device 20 while a part of the image is displayed on the display device 12, the input information acquisition unit 102 receives the request (S70). Then, the tile image specifying unit 110 derives a requested change amount of the display image and determines frame coordinates to be newly displayed based on the derived change amount (S72). The amount of change in the display image is the amount of movement in the vertical and horizontal directions and the amount of movement in the depth direction in the virtual space, and the frame coordinates to be displayed are the frame coordinates of the display area displayed so far and the amount of change derived Can be determined.

次にタイル画像特定部110は、ヘッダを参照してフレーム座標が属する領域を特定し、当該領域に対しインデックスブロックへの有効なポインタ設定されているか否かを確認する(S74)。有効なポインタが設定されていたら(S74のY)、当該ポインタが指すインデックスブロックを取得する(S78)。ヌルポインタが設定されていたら(S74のN)、階層構造体を画像の縮小方向へ辿り、有効なポインタが設定されている領域を探索し、検出した領域に対して設定されているポインタが指すインデックスブロックを取得する(S76、S78)。   Next, the tile image specifying unit 110 specifies the area to which the frame coordinates belong by referring to the header, and checks whether a valid pointer to the index block is set for the area (S74). If a valid pointer is set (Y in S74), the index block pointed to by the pointer is acquired (S78). If a null pointer is set (N in S74), the hierarchical structure is traced in the image reduction direction to search for an area where a valid pointer is set, and the pointer set for the detected area points to An index block is acquired (S76, S78).

さらにインデックスブロックにおいて、フレーム座標に対応する領域に対しタイル画像への有効なポインタが設定されているか否かを確認する(S80)。有効なポインタが設定されていたら(S80のY)、当該ポインタが指すタイル画像のアドレスや識別番号などタイル画像を一意に定める情報を特定する(S84)。ヌルポインタが設定されていたら(S80のN)、当該インデックスブロックにおける階層を画像の縮小方向へ辿り、有効なポインタが設定されている階層を探索し、検出した階層の該当領域に対して設定されているポインタが指すタイル画像を特定する(S82、S84)。   Further, in the index block, it is confirmed whether a valid pointer to the tile image is set for the area corresponding to the frame coordinates (S80). If a valid pointer is set (Y in S80), information that uniquely defines the tile image such as the address and identification number of the tile image pointed to by the pointer is specified (S84). If a null pointer is set (N in S80), the hierarchy in the index block is traced in the image reduction direction, the hierarchy in which a valid pointer is set is searched, and the hierarchy is set for the corresponding area of the detected hierarchy. The tile image pointed to by the pointer is identified (S82, S84).

バッファメモリ70に、当該タイル画像のデコードされたデータが格納されていない場合は(S86のN)、デコード部112がタイル画像のデータをメインメモリ60から読み出し、デコードする(S88、S90)。   When the decoded data of the tile image is not stored in the buffer memory 70 (N in S86), the decoding unit 112 reads the tile image data from the main memory 60 and decodes it (S88, S90).

S76でヘッダにおいて有効なポインタが設定されている領域を探索した場合、または、S82でインデックスブロック内で有効なポインタが設定されている階層を探索した場合は、特定したタイル画像を拡大して描画する必要がある。このため、そのような経緯を辿ってタイル画像を特定した場合、タイル画像特定部110はその旨の情報をデコード部112に与えておく。デコード部112は、その情報に基づきタイル画像の拡大が必要か否かを判定する(S92)。   When searching for an area where a valid pointer is set in the header in S76, or when searching for a hierarchy where a valid pointer is set in the index block in S82, the specified tile image is enlarged and drawn. There is a need to. For this reason, when a tile image is specified by following such a process, the tile image specifying unit 110 gives information to that effect to the decoding unit 112. The decoding unit 112 determines whether the tile image needs to be enlarged based on the information (S92).

拡大が必要な場合(S92のY)、デコード部112はタイル画像特定部110から取得したフレーム座標に基づきタイル画像を拡大したうえ、必要な領域をバッファメモリ70に格納する(S94)。この処理は、該当タイル画像がデコード済み(S86のY)であっても同様に行う。そして拡大処理の有無に関わらず、表示画像処理部114は、当該タイル画像のうち新たに表示すべき領域をフレームメモリに描画する(S96)。描画処理には、要求される解像度に応じて、バッファメモリ70に格納されたデータを拡大、縮小する処理も含まれる。   When enlargement is necessary (Y in S92), the decoding unit 112 enlarges the tile image based on the frame coordinates acquired from the tile image specifying unit 110, and stores the necessary area in the buffer memory 70 (S94). This process is similarly performed even if the corresponding tile image has been decoded (Y in S86). Regardless of the presence or absence of the enlargement process, the display image processing unit 114 draws a new area to be displayed in the tile image in the frame memory (S96). The drawing process includes a process for enlarging or reducing the data stored in the buffer memory 70 in accordance with the required resolution.

次にヘッダおよびインデックスブロックにおけるポインタのデータ構造について説明する。例えば11階層で構成される階層データを図8で示したように4×4、8×8、16×16の3階層の領域ずつインデックスブロックにまとめた場合、ヘッダで定義される領域は4162個になる。また一つのインデックスブロックには最大336のタイル領域が定義される。これらの要素のそれぞれにポインタを設定するため、ポインタの検索を効率的に行えるデータ構造とすることが望ましい。ポインタのデータ構造としては、固定長配列、連想配列、ツリー構造が考えられる。   Next, the data structure of pointers in the header and index block will be described. For example, when hierarchical data composed of 11 hierarchies is grouped into index blocks of 4 × 4, 8 × 8, and 16 × 16 areas as shown in FIG. 8, 4162 areas are defined in the header. become. A maximum of 336 tile areas are defined in one index block. Since a pointer is set for each of these elements, it is desirable to have a data structure that enables efficient retrieval of the pointer. The pointer data structure may be a fixed-length array, an associative array, or a tree structure.

ヘッダのポインタを固定長配列とした場合は、領域ごとに識別番号を付与し、それをインデックスとして固定長のポインタ配列にアクセスする。この場合、領域を特定できればすぐにポインタが取得できるため、編集や検索処理が速く行える。連想配列とした場合は、領域ごとに識別番号を付与し、それをキーとしてポインタの連想配列にアクセスする。この場合、有効なポインタのみを保持すればよいため、ヘッダのデータサイズを抑えることができる。   When the header pointer is a fixed-length array, an identification number is assigned to each area, and the fixed-length pointer array is accessed using this as an index. In this case, since the pointer can be acquired as soon as the area can be specified, editing and search processing can be performed quickly. In the case of an associative array, an identification number is assigned to each area, and the pointer associative array is accessed using the identification number as a key. In this case, since only a valid pointer needs to be held, the data size of the header can be suppressed.

ツリー構造とした場合は、領域間をつなぐポインタをさらに定義し、画像の階層構造体の頂点から領域間ポインタをたどって所望の領域を検索する。この場合、後述するように頂点に階層を追加した際、頂点付近のポインタを更新するのみでよくなる。このようにポインタのデータ構造によって有効性が異なるため、メモリコストや処理コストなど重視すべき点によって適宜選択する。さらにBツリー構造などデータ探索で一般的に用いられる手法を適宜導入してもよい。インデックスブロックのポインタも同様の態様となるため、処理速度などを考慮して最適な手法を選択してよい。   In the case of a tree structure, pointers that connect the regions are further defined, and a desired region is searched by following the pointers between the regions from the vertices of the hierarchical structure of the image. In this case, as described later, when a hierarchy is added to the vertex, it is only necessary to update the pointer near the vertex. Since the effectiveness varies depending on the data structure of the pointer as described above, the selection is appropriately made according to points to be emphasized such as memory cost and processing cost. Further, a method generally used in data search such as a B-tree structure may be introduced as appropriate. Since the pointer of the index block has the same mode, an optimal method may be selected in consideration of the processing speed.

またインデックスブロックへのポインタ、およびタイル画像へのポインタは、目的とするインデックスブロックやタイル画像が記録されたファイル名やネットワークに接続したサーバのロケーション情報などを含めてもよい。これにより、1つの階層データに複数のファイルやサイトからの画像を含めたり、1つのファイルを複数の階層データで共有したりすることができる。   The pointer to the index block and the pointer to the tile image may include the name of the file in which the target index block and tile image are recorded, location information of a server connected to the network, and the like. Thereby, it is possible to include a plurality of files and images from a site in one hierarchical data, or to share one file with a plurality of hierarchical data.

次に、上述のようにヘッダ、インデックスブロック、タイル画像で構成される画像ファイルを修正、改変する場合について説明する。この態様も図1で示した情報処理システム、図4で示した情報処理装置10と同様の装置構成で実現できる。図16は、本実施の形態において画像を修正する機能を有する制御部100cの構成を示している。なお制御部100cは図7の制御部100aに示した、画像表示を行うための機能や、図9の制御部100bに示した、画像ファイルを生成する機能を備えていてもよいが、ここでは図示を省略している。一方、図16に示した機能のみを有する制御部100cを備えた情報処理装置10を、表示機能や画像ファイル生成機能を発揮する画像処理装置とは別に設けてもよい。   Next, a description will be given of a case where an image file composed of a header, an index block, and a tile image as described above is modified or altered. This aspect can also be realized by the same apparatus configuration as the information processing system shown in FIG. 1 and the information processing apparatus 10 shown in FIG. FIG. 16 shows a configuration of the control unit 100c having a function of correcting an image in the present embodiment. The control unit 100c may have the function for displaying an image shown in the control unit 100a in FIG. 7 and the function for generating an image file shown in the control unit 100b in FIG. The illustration is omitted. On the other hand, the information processing apparatus 10 including the control unit 100c having only the function illustrated in FIG. 16 may be provided separately from the image processing apparatus that exhibits the display function and the image file generation function.

制御部100cは、修正対象の画像ファイルを取得する画像ファイル取得部318、修正によって更新される領域や更新部分の画像データなどからなる更新情報を取得する更新情報取得部320、更新後のタイル画像を生成するタイル画像生成部322、ヘッダおよびインデックスブロックを更新するヘッダ・インデックスブロック更新部324、修正中の画像を表示する表示画像制御部326、および修正後の画像ファイルを生成する画像ファイル生成部328を含む。   The control unit 100c includes an image file acquisition unit 318 that acquires an image file to be corrected, an update information acquisition unit 320 that acquires update information including an area updated by correction and image data of an update portion, and an updated tile image. A tile image generation unit 322 for generating a header, an index block update unit 324 for updating a header and an index block, a display image control unit 326 for displaying an image being corrected, and an image file generation unit for generating a corrected image file 328.

画像ファイル取得部318は、ユーザによる修正対象の画像の指定入力を受け付け、該当する画像ファイルをハードディスクドライブ50から読み出してメインメモリ60に格納する。この画像ファイルはこれまで説明したように、ヘッダ、インデックスブロック、タイル画像のデータを含む。更新情報取得部320は、ユーザが表示装置12に表示された修正対象の画像を見ながら、入力装置20を介して入力した更新情報を取得する。更新情報には上述のとおり、更新すべき領域とその領域における修正後の画像データなどが含まれる。具体例は後に述べる。   The image file acquisition unit 318 receives designation input of the image to be corrected by the user, reads the corresponding image file from the hard disk drive 50, and stores it in the main memory 60. As described above, the image file includes header, index block, and tile image data. The update information acquisition unit 320 acquires update information input via the input device 20 while viewing the correction target image displayed on the display device 12 by the user. As described above, the update information includes an area to be updated and image data after correction in the area. Specific examples will be described later.

タイル画像生成部322は、更新すべき領域に更新後の画像を当てはめた際に更新する必要が生じたタイル画像を特定し、新たなタイル画像を生成する。ここで、更新すべき領域があるタイル画像の一部にのみかかっている場合は、元のタイル画像をメインメモリ60から読み出し、更新すべき領域のみ上書きすることにより新たなタイル画像を生成する。あるタイル画像が全て更新すべき領域に含まれている場合は、修正後の画像を切り出すことによって新たなタイル画像を生成する。このとき、階層データを構成する全ての階層における更新すべき領域に対し新たなタイル画像を生成する。ただしユーザの指定によっては、特定の階層のみ更新するようにしてもよい。この場合、特定の解像度の範囲で異なる画像が表示される態様を実現できる。   The tile image generation unit 322 identifies a tile image that needs to be updated when the updated image is applied to the region to be updated, and generates a new tile image. Here, when the area to be updated only covers a part of the tile image, the original tile image is read from the main memory 60, and a new tile image is generated by overwriting only the area to be updated. When all the tile images are included in the region to be updated, a new tile image is generated by cutting out the corrected image. At this time, a new tile image is generated for the areas to be updated in all hierarchies constituting the hierarchy data. However, only a specific hierarchy may be updated depending on the designation of the user. In this case, it is possible to realize a mode in which different images are displayed within a specific resolution range.

生成したタイル画像はメインメモリ60に格納する。この際、画像ファイル取得部318がメインメモリ60に格納した元の画像データはそのままにしておき、新たに生成したタイル画像は別の記憶領域に格納する。次にヘッダ・インデックスブロック更新部324は、メインメモリ60に格納されたインデックスブロックにおいて、更新すべき領域に対して設定されたポインタを、新たに生成したタイル画像を指すように書き換える。また、当該領域に対応するインデックスブロックが存在しない場合は、新たにインデックスブロックを生成し、ヘッダにおけるヌルポインタの設定を、生成したインデックスブロックを指すポインタに書き換える。   The generated tile image is stored in the main memory 60. At this time, the original image data stored in the main memory 60 by the image file acquisition unit 318 is left as it is, and the newly generated tile image is stored in another storage area. Next, the header / index block update unit 324 rewrites the pointer set for the area to be updated in the index block stored in the main memory 60 to point to the newly generated tile image. If there is no index block corresponding to the area, a new index block is generated, and the null pointer setting in the header is rewritten with a pointer indicating the generated index block.

表示画像制御部326は、図7で示した制御部100aに含まれる機能ブロックで構成してよいが、ここでは図示を省略している。表示画像制御部326は、図15で説明したのと同様の処理手順により修正対象の画像を表示するが、ユーザによる画像の修正に応じて上述のようにヘッダ、インデックスブロックが更新されていく。それに応じて、画像を描画する際に用いるタイル画像が新たなものに変化する。このようにすることで、表示画像を確認しながら画像を修正、改変することが可能になる。   The display image control unit 326 may be configured by functional blocks included in the control unit 100a illustrated in FIG. 7, but is not illustrated here. The display image control unit 326 displays the image to be corrected by the same processing procedure as described in FIG. 15, but the header and the index block are updated as described above according to the correction of the image by the user. Accordingly, the tile image used when drawing the image changes to a new one. In this way, it is possible to correct or change the image while confirming the display image.

本実施の形態では、元のタイル画像のデータを更新せず別の記憶領域に新たに生成したタイル画像を追加し、インデックスブロックやヘッダによって参照先を変化させることにより画像を更新する。このようにすると、元のタイル画像のうち修正領域にあたるタイル画像のデータを検索して上書きする場合と比較して処理コストが低く、応答性よく修正途中の画像を表示させることができる。また、修正途中で元の画像に戻すことも容易にできる。   In this embodiment, the newly generated tile image is added to another storage area without updating the original tile image data, and the image is updated by changing the reference destination by the index block or the header. In this way, it is possible to display an image in the middle of correction with high responsiveness and lower processing cost compared to the case of searching and overwriting the tile image data corresponding to the correction area in the original tile image. Also, it is possible to easily return to the original image during the correction.

画像ファイル生成部328は、ユーザが修正を終えたときなどに、新たに生成したタイル画像のデータで元のタイル画像のデータを上書きする。あるいは新たに生成したタイル画像のデータを、元のタイル画像のデータとは別のファイルとして保存する。そして更新されたインデックスブロックやヘッダを付加して画像ファイルとする。   The image file generation unit 328 overwrites the original tile image data with the newly generated tile image data, for example, when the user finishes the correction. Alternatively, the newly generated tile image data is stored as a separate file from the original tile image data. Then, an updated index block and header are added to form an image file.

次に、上述の機構によって画像を修正、改変するときの各データに対する処理の具体例を説明する。図17は説明の前提とする画像の修正例を示している。同図において修正前の画像190には、楕円と三角形が描かれている。これを修正し、修正後の画像192に示されるように、画像の右上に星の図形194を追加する場合を考える。図18はこのような修正におけるインデックスブロックのポインタの変化を模式的に示している。同図においてポインタは矢印で示しているが、図が煩雑になるのを避けるため、代表的な矢印のみを表している。   Next, a specific example of processing for each data when an image is corrected or altered by the above-described mechanism will be described. FIG. 17 shows an example of correcting an image as a premise for explanation. In the figure, an ellipse and a triangle are drawn in the image 190 before correction. Consider a case where this is corrected and a star figure 194 is added to the upper right of the image as shown in the corrected image 192. FIG. 18 schematically shows changes in the pointers of the index block in such correction. In the figure, the pointer is indicated by an arrow, but only representative arrows are shown in order to avoid complication of the figure.

まず修正前において、ヘッダ150で定義される各領域は、インデックスブロック160のいずれかへのポインタ、あるいはヌルポインタが設定されている。そしてポインタが指すインデックスブロック160に属する複数の階層の各タイル領域に対し、破線の矢印によって示されるように、修正前に生成されていたタイル画像170eのいずれかへのポインタが設定されている。図17における修正前の画像190の右上の領域は単色の背景であるとすると、当該領域は一つのタイル画像を共有する。図18において多くの破線矢印が一つのタイル画像170fを指しているのはこれを表している。当然、その他の領域は個々のタイル画像へのポインタが設定されている。   First, before modification, each area defined by the header 150 is set with a pointer to one of the index blocks 160 or a null pointer. A pointer to one of the tile images 170e generated before the correction is set for each tile area of a plurality of layers belonging to the index block 160 pointed to by the pointer, as indicated by a dashed arrow. If the upper right region of the image 190 before correction in FIG. 17 is a monochrome background, the region shares one tile image. In FIG. 18, many broken arrows indicate one tile image 170f. Of course, pointers to individual tile images are set in the other areas.

このような背景部分に、図17における修正後の画像192のように星の図形194を追加すると、各階層の該当領域におけるタイル画像として、各解像度の星の図形が追加された新たなタイル画像170gが生成され、元のタイル画像170eとは別の記憶領域に格納される。するとインデックスブロック160において、更新すべき領域にかかるタイル領域に対するポインタは全て、新たなタイル画像170gのいずれかのタイル画像を指すように更新される。図18では、更新後のポインタを一点鎖線の矢印で表している。更新後、更新対象の領域は背景でなくなったため、図に示すように、各タイル領域に対しそれぞれのタイル画像へのポインタが設定される。また、修正対象の領域以外の領域は、元のタイル画像170eを指したままでよい。   When a star graphic 194 is added to such a background portion as in the corrected image 192 in FIG. 17, a new tile image in which a star graphic of each resolution is added as a tile image in the corresponding region of each layer. 170g is generated and stored in a storage area different from the original tile image 170e. Then, in the index block 160, all pointers to the tile areas related to the area to be updated are updated to point to any tile image of the new tile image 170g. In FIG. 18, the updated pointer is indicated by a one-dot chain line arrow. Since the area to be updated is no longer the background after the update, as shown in the figure, pointers to the respective tile images are set for the respective tile areas. Further, the area other than the area to be corrected may remain pointing to the original tile image 170e.

次に、図17の星の図形194のように更新によって追加された画像が、それまでの階層データの最高解像度の画像よりさらに高い解像度を有する場合に、高解像度側に階層を追加する手順を説明する。図19は、高解像度側に階層を追加する場合の処理を説明するための図である。同図において、修正前の画像は第0階層154i、第1階層154j、第2階層154k、第3階層154lからなる階層データ200であったとする。ここでヘッダにおいては全ての領域に対しインデックスブロックへの有効なポインタが設定されているものとし、同図ではそれを網掛けで示している。   Next, when the image added by updating like the star graphic 194 in FIG. 17 has a higher resolution than the highest resolution image of the hierarchical data so far, a procedure for adding a hierarchy to the high resolution side is performed. explain. FIG. 19 is a diagram for explaining processing when a hierarchy is added to the high resolution side. In the figure, it is assumed that the image before correction is hierarchical data 200 including a 0th hierarchy 154i, a first hierarchy 154j, a second hierarchy 154k, and a third hierarchy 154l. Here, in the header, it is assumed that valid pointers to the index block are set for all areas, and in FIG.

このような画像に対し、図17で示すように右上の領域に高解像度の画像を追加する修正を行った場合、上述のように更新対象の領域のタイル画像を各階層について新たに生成する。ここで、追加した画像は元の階層データで最高解像度を有する第3階層154lより高解像度であるため、新たな階層を追加する必要がある。同図では追加する階層を第4階層154mとしている。また新たにタイル画像を生成すべき領域は、同図において黒く示されている。   When such an image is corrected by adding a high-resolution image to the upper right area as shown in FIG. 17, a tile image of the update target area is newly generated for each layer as described above. Here, since the added image has a higher resolution than the third hierarchy 154l having the highest resolution in the original hierarchy data, it is necessary to add a new hierarchy. In the figure, the layer to be added is the fourth layer 154m. A region where a new tile image is to be generated is shown in black in the figure.

この例では高解像度画像による画像の修正は局所的なものであるため、更新対象の領域以外の領域を第4階層154mの解像度で表示する場合は、元からある階層データのうち最高解像度を有する第3階層154lの画像を拡大して表示することになる。そのため、第4階層154mのうち更新対象の領域以外に対しては、ヌルポインタを設定し、第3階層154lのタイル画像を流用する。ヌルポインタを設定する領域は、同図では白抜きで表されている。   In this example, since the correction of the image with the high resolution image is local, when the region other than the region to be updated is displayed at the resolution of the fourth layer 154m, it has the highest resolution among the original layer data. The image of the third hierarchy 154l is enlarged and displayed. Therefore, a null pointer is set for a region other than the update target region in the fourth layer 154m, and the tile image of the third layer 154l is used. The area where the null pointer is set is shown in white in the figure.

タイル画像の共有には前述のとおり、ヘッダにおいて設定する手法とインデックスブロックにおいて設定する手法がある。一つのインデックスブロックでまとめられる階層数を固定とした場合、追加すべき第4階層154mに対応する階層が、既存のインデックスブロックに既に定義づけられている場合がある。第4階層154mは元の階層データでは存在していないため、インデックスブロックの同階層に対してはヌルポインタが設定されている。   As described above, there are a method of setting in the header and a method of setting in the index block in sharing the tile image. When the number of hierarchies combined in one index block is fixed, a hierarchy corresponding to the fourth hierarchy 154m to be added may already be defined in the existing index block. Since the fourth layer 154m does not exist in the original layer data, a null pointer is set for the same layer of the index block.

このような場合は、当該既存のインデックスブロックにおいて、第4階層154mの更新対象の領域に対して設定されているヌルポインタを、新たに生成したタイル画像へのポインタに更新する。更新対象の領域以外の領域は、ヌルポインタのままとする。低解像度の各階層についても同様に、インデックスブロックのポインタを更新する。   In such a case, in the existing index block, the null pointer set for the update target area of the fourth hierarchy 154m is updated with a pointer to the newly generated tile image. The area other than the area to be updated remains a null pointer. Similarly, the index block pointer is updated for each layer of low resolution.

図20は、追加すべき第4階層154mに対応する階層が属するインデックスブロックが存在しなかった場合のヘッダおよびインデックスブロックの変化を説明する図である。同図のヘッダ150において、領域152iは修正前の階層データに対し定義づけられている領域を示している。ヘッダ150で定義される領域は当然複数でよいが、同図ではそれらをまとめて一つの領域152iで示している。領域152iには、修正前に存在した第0階層154i、第1階層154j、第2階層154k、第3階層154lが属している。そして各領域に対し、インデックスブロック160fへのポインタが設定されている。そしてインデックスブロック160fで定義づけられる各タイル領域に対し、既存のタイル画像170hへのポインタが設定されている(破線矢印)。   FIG. 20 is a diagram for explaining changes in the header and the index block when there is no index block to which a layer corresponding to the fourth layer 154m to be added belongs. In the header 150 in the figure, an area 152i indicates an area defined for the hierarchical data before correction. Of course, there may be a plurality of areas defined by the header 150, but in the figure, they are collectively shown as one area 152i. The 0th hierarchy 154i, the 1st hierarchy 154j, the 2nd hierarchy 154k, and the 3rd hierarchy 154l which existed before correction belong to the area | region 152i. A pointer to the index block 160f is set for each area. A pointer to the existing tile image 170h is set for each tile area defined by the index block 160f (dashed arrow).

ここで第4階層154mを追加する場合、まずヘッダ150において、当該階層を含む新たな領域を追加する。ただし図20に示すように、更新対象の領域を含む領域152jのみ有効なポインタを設定し、その他の領域はヌルポインタを設定する。さらに新たなインデックスブロック160gを生成し、領域152jに対して当該インデックスブロック160gへのポインタを設定する。追加する階層が第4階層154mのみであれば、新たに生成したインデックスブロック160gに属する3階層のうち、タイル画像へのポインタを設定するのは最も低解像度の一階層でよく、その他の階層は全領域に対しヌルポインタを設定する。   Here, when adding the fourth layer 154m, first, in the header 150, a new area including the layer is added. However, as shown in FIG. 20, a valid pointer is set only for the region 152j including the region to be updated, and a null pointer is set for the other regions. Further, a new index block 160g is generated, and a pointer to the index block 160g is set for the area 152j. If the hierarchy to be added is only the fourth hierarchy 154m, out of the three hierarchies belonging to the newly generated index block 160g, the pointer to the tile image may be set at the lowest hierarchy, and the other hierarchies are Set a null pointer for all areas.

そして、新たに生成したインデックスブロック160gにおいて、更新対象の領域に含まれるタイル領域に対し、新たに生成したタイル画像170iのいずれかを指すようにポインタを設定する(一点鎖線矢印)。また既存のインデックスブロック160fも同様に、更新対象の領域に含まれるタイル領域に対し設定されたポインタが、新たに生成したタイル画像170iのいずれかを指すように更新する。なお最終的に画像ファイルを生成する際は、新たに生成したインデックスブロック160gは、元の画像ファイルの末尾に追加してもよいし、別のファイルとしてもよい。これにより更新前後の画像を表示することができる。   In the newly generated index block 160g, a pointer is set so as to point to one of the newly generated tile images 170i with respect to the tile area included in the area to be updated (dashed line arrow). Similarly, the existing index block 160f is updated so that the pointer set for the tile area included in the area to be updated points to one of the newly generated tile images 170i. When the image file is finally generated, the newly generated index block 160g may be added to the end of the original image file or may be another file. Thereby, the images before and after the update can be displayed.

次に、既存の画像に背景や描画領域など新たな領域を追加することにより画像のサイズを拡張する手順を説明する。図21は、既存の画像に新たな領域を追加する処理を説明するための図である。同図において、追加前の画像は第0階層154i、第1階層154j、第2階層154k、第3階層154lからなる階層データ204であったとする。各階層が属する領域は、ヘッダにおいてインデックスブロックへの有効なポインタが設定されている。   Next, a procedure for extending the size of an image by adding a new area such as a background or a drawing area to an existing image will be described. FIG. 21 is a diagram for explaining processing for adding a new area to an existing image. In the figure, it is assumed that the image before addition is hierarchical data 204 including a 0th hierarchy 154i, a first hierarchy 154j, a second hierarchy 154k, and a third hierarchy 154l. In the area to which each hierarchy belongs, a valid pointer to the index block is set in the header.

このような画像に対し新たな領域を追加する場合、各解像度に対応するサイズで各階層の画像に新たな領域を追加した階層データ206を生成する。図21の例で階層データ206は、第0階層154n、第1階層154o、第2階層154p、第3階層154q、第4階層154rからなる。第4階層154rおよび第3階層154qは、白抜きで示した元の画像のタイル画像に、網掛けで示した追加領域のタイル画像を加えることによって生成できる。第2階層154pはそのサイズによって、元のタイル画像がそのまま利用できる白抜きで示した領域に、追加領域と元の画像が混在する網掛けで示したタイル画像を加える。第1階層154oおよび第0階層154nは、それを構成する全てのタイル画像において、元の画像と追加領域が混在するため全て網掛けで示している。   When a new area is added to such an image, hierarchical data 206 is generated by adding a new area to the image of each hierarchy at a size corresponding to each resolution. In the example of FIG. 21, the hierarchy data 206 includes a 0th hierarchy 154n, a first hierarchy 154o, a second hierarchy 154p, a third hierarchy 154q, and a fourth hierarchy 154r. The fourth layer 154r and the third layer 154q can be generated by adding the tile image of the additional area shown by shading to the tile image of the original image shown by white. Depending on the size of the second layer 154p, a tile image indicated by shading in which the additional area and the original image are mixed is added to the area indicated by white where the original tile image can be used as it is. The first hierarchy 154o and the 0th hierarchy 154n are all shaded because the original image and the additional area are mixed in all the tile images constituting the first hierarchy 154o and the 0th hierarchy 154n.

このように、画像に新たな領域を追加する場合、階層によっては元からあるタイル画像をそのまま利用できる。この性質を利用し、元からあるインデックスブロックはそのまま利用し、追加領域など必要な領域についてのみ新たなインデックスブロックを生成する。図22は、新たな領域を追加する場合のヘッダおよびインデックスブロックの変化を説明する図である。同図のヘッダ150において、白抜きの三角形は元のタイル画像を利用できる領域208を示し、網掛けの部分は追加または追加によって変化する領域210を示している。   Thus, when a new area is added to an image, the original tile image can be used as it is depending on the hierarchy. Using this property, the original index block is used as it is, and a new index block is generated only for a necessary area such as an additional area. FIG. 22 is a diagram for explaining changes in the header and the index block when a new area is added. In the header 150 of the figure, a white triangle indicates a region 208 where the original tile image can be used, and a shaded portion indicates a region 210 that is changed by addition or addition.

破線は図21の第0階層154n、第1階層154o、第2階層154p、第3階層154q、第4階層154rを示しており、それぞれの階層において元のタイル画像を利用できる領域、および追加または追加によって更新すべき領域が決定され、図22に示すような構造となる。ヘッダで定義される領域は、階層構造体の頂点から順に生成されるため、このようにヘッダ150が変化すると領域の区切りに変化が生じる。   The broken lines indicate the 0th hierarchy 154n, the 1st hierarchy 154o, the 2nd hierarchy 154p, the 3rd hierarchy 154q, and the 4th hierarchy 154r in FIG. 21, and the area where the original tile image can be used in each hierarchy, and additional or The area to be updated is determined by the addition, resulting in a structure as shown in FIG. Since the area defined by the header is generated sequentially from the top of the hierarchical structure, when the header 150 changes in this way, the area delimiter changes.

しかし後に述べるように領域の区切りを工夫することにより、図22のように階層データの頂点で階層が増加するような変化が生じても、変化前に定義されていた領域は可能な限り保存し、ひいては既存のインデックスブロックをそのまま利用できるようにする。図22で領域追加前は、領域208の各領域(図示せず)に対し、インデックスブロック160hへのポインタが設定されている。そしてインデックスブロック160hで定義づけられる各タイル領域は既存のタイル画像170hへのポインタが設定されている(破線矢印)。   However, by devising the area demarcation as will be described later, even if there is a change that increases the hierarchy at the top of the hierarchy data as shown in FIG. 22, the area defined before the change is saved as much as possible. As a result, the existing index block can be used as it is. In FIG. 22, before adding the area, a pointer to the index block 160h is set for each area (not shown) of the area 208. In each tile area defined by the index block 160h, a pointer to an existing tile image 170h is set (broken arrow).

領域追加後は、追加する領域に対応する新たなインデックスブロック160iを生成し、ヘッダ150における新たな領域210に対し当該インデックスブロック160iへのポインタを設定する。ここで領域210はヘッダ150においては複数の領域が定義されていてよいが図示を省略している。生成したインデックスブロック160iには、タイル領域ごとに、領域追加によって必要となった新たなタイル画像170kのいずれかへのポインタが設定される(一点鎖線矢印)。ここで新たなタイル画像170kは、図21で網掛けで示した、追加する領域自体のタイル画像や、追加する領域と元の画像が混在するタイル画像である。この際、追加する領域が単色の背景である場合などは、一つのタイル画像を共有できる。   After the area is added, a new index block 160 i corresponding to the area to be added is generated, and a pointer to the index block 160 i is set for the new area 210 in the header 150. Here, the area 210 may have a plurality of areas defined in the header 150, but is not shown. In the generated index block 160i, a pointer to one of the new tile images 170k required by adding the area is set for each tile area (dashed line arrow). Here, the new tile image 170k is a tile image of the region to be added itself, or a tile image in which the region to be added and the original image are mixed, which are indicated by shading in FIG. At this time, if the area to be added is a monochrome background, one tile image can be shared.

一方、ヘッダにおいて元から定義づけられていた領域は、領域の区切り方に変更がない場合は、設定されたポインタ、ひいてはそれが指し示すインデックスブロックをそのまま利用できる。そのためインデックスブロック内で設定される、タイル画像へのポインタを更新する必要がない。なお上述の例は画像の右および下の領域を追加する場合であるが、いずれの方向に画像を拡張する場合であっても、既存のインデックスブロックを拡張後も利用できるように領域分割を行うことにより、ヘッダ、インデックスブロックの変化を最小限に抑えることができる。   On the other hand, if the area defined originally in the header is not changed in how the area is divided, the set pointer and the index block pointed to by it can be used as they are. Therefore, there is no need to update the pointer to the tile image set in the index block. In the above example, the right and lower regions of the image are added, but the region is divided so that the existing index block can be used even after the image is expanded in any direction. As a result, changes in the header and index block can be minimized.

図23は、図21および図22で説明したように、画像サイズを拡張する場合など階層構造体の頂点側に階層を追加する際にヘッダにおいて定義される領域の分割手法を説明する図である。まず最初の階層データ230では、第0〜1階層の全体を第1領域152k、第2〜4階層の全体を第2領域152l、第5〜7階層を画像上の領域で分割した領域を順に第3領域152m、第4領域152n、・・・、というように領域分割される。この領域の構成は図8で示したのと同様である。   FIG. 23 is a diagram illustrating a method of dividing an area defined in a header when adding a hierarchy to the vertex side of a hierarchical structure such as when expanding the image size as described in FIGS. 21 and 22. . First, in the first hierarchical data 230, an area obtained by dividing the entire 0th to 1st hierarchies by the first area 152k, the entire 2nd to 4th hierarchies by the second area 152l, and the 5th to 7th hierarchies by areas on the image in order. The area is divided into a third area 152m, a fourth area 152n,. The configuration of this area is the same as that shown in FIG.

前述のとおりひとつのインデックスブロックが定義するタイル領域の数はインデックスブロックによらず等しく準備するが、第1領域152kは、1つのタイル画像で構成される第0階層、2×2のタイル画像で構成される第1階層のみからなるため、当該領域に対応するインデックスブロック160jにおいてはその数のタイル領域のみを使用し、それ以外のタイル領域にはヌルポインタを設定して無効とする。   As described above, the number of tile areas defined by one index block is prepared equally regardless of the index block, but the first area 152k is a 0th layer 2 × 2 tile image composed of one tile image. Since the index block 160j corresponding to the area is composed of only the first layer configured, only that number of tile areas is used, and null pointers are set to the other tile areas and invalidated.

なお図23に示すインデックスブロックでは、有効なタイル領域の横方向の数を階層別に矩形で示している。従って第1領域152kに対応するインデックスブロック160jは1つおよび2つの矩形が示されている。第2領域152l、第3領域152mなどその他の領域に対応するインデックスブロック160k、160lなどは、4×4個、8×8個、16×16個のタイル領域を全て有効にできるため、4個、8個、16個の矩形が示されている。   In the index block shown in FIG. 23, the number of effective tile areas in the horizontal direction is indicated by a rectangle for each layer. Accordingly, the index block 160j corresponding to the first region 152k is shown as one and two rectangles. Since the index blocks 160k, 160l, etc. corresponding to other areas such as the second area 152l and the third area 152m can make all 4 × 4, 8 × 8, and 16 × 16 tile areas effective, there are four. 8 and 16 rectangles are shown.

ここで階層データ230の頂点側に1階層、追加した階層データ232に対しては、元から第1領域に属していた階層はそのままに、追加した階層を第1領域152oにさらに含める。元の第1領域152kに対応するインデックスブロック160jは、データ領域として準備された3階層のうち2階層分のみ用いていたため、無効としていた階層を利用することにより階層の追加を第1領域152oのみで吸収することができる。したがって、元の階層データ230において第2領域152lに含まれていた第2〜4階層(階層追加後の第3〜5階層)は、そのまま同じ領域に属することができる。ただし各階層の画像は拡張されているため、拡張部分に対し新たな領域を定義しインデックスブロックを生成する。さらに下の階層も同様である。   Here, with respect to the added hierarchy data 232 on the top side of the hierarchy data 230, the added hierarchy is further included in the first area 152o without changing the hierarchy that originally belonged to the first area. Since the index block 160j corresponding to the original first area 152k is used for only two hierarchies out of the three hierarchies prepared as the data area, the hierarchies are added only by using the hierarchies that have been invalidated only in the first area 152o. Can be absorbed. Therefore, the second to fourth hierarchies (third to fifth hierarchies after the addition of the hierarchy) included in the second area 152l in the original hierarchy data 230 can belong to the same area as they are. However, since the image of each layer is expanded, a new area is defined for the expanded portion and an index block is generated. The same applies to the lower layers.

ここで階層データ232の頂点側にさらに1階層、追加した階層データ234に対しても、元から第1領域に属していた階層はそのままに、追加した階層を第1領域152pにさらに含める。この場合、第1領域152pのみ4階層となるが、それに対応するインデックスブロック160mで準備されているタイル領域は、第1領域152pのタイル画像の数より大きいため、4階層であってもタイル画像の情報はインデックスブロック160mで充足する。すると、それ以下の階層は最初の階層データ230のときに属していたのと同様の領域に属することができる。   Here, for the added hierarchy data 234, one more hierarchy is added to the apex side of the hierarchy data 232, and the added hierarchy is further included in the first area 152p without changing the hierarchy that originally belonged to the first area. In this case, only the first area 152p has four layers, but the tile area prepared in the corresponding index block 160m is larger than the number of tile images in the first area 152p. This information is satisfied by the index block 160m. Then, the hierarchy below that can belong to the same area as that belonging to the first hierarchy data 230.

階層データ234にさらに1階層、追加した階層データ236では、階層データ234で第1領域152pに属していた4階層に、追加した階層を加えた5階層を2つの領域に分割して第1領域152q、第2領域152rとする。このとき第1領域152qを第0〜1階層、第2領域152rを第2〜4階層とすることにより、第1領域152qに対応するインデックスブロック160nは、最初の階層データ230の第1領域152kに対応するインデックスブロック160jと同様、1つのタイル画像の階層、2×2個のタイル画像の階層のみからなる。また第2領域152rも階層データ230の第2領域152lと同様となる。   In the hierarchy data 236 that is further added to the hierarchy data 234, the added hierarchy is divided into four areas that belong to the first area 152p in the hierarchy data 234, and the first area is divided into two areas. 152q and the second region 152r. At this time, by setting the first area 152q to the 0th to 1st hierarchies and the second area 152r to the 2nd to 4th hierarchies, the index block 160n corresponding to the first area 152q becomes the first area 152k of the first hierarchy data 230. Like the index block 160j corresponding to, it consists of only one tile image layer and 2 × 2 tile image layers. The second area 152r is the same as the second area 152l of the hierarchical data 230.

そしてそれ以下の階層は、最初の階層データ230のときに属していたのと同様の領域に属することができる。以上の変化を繰り返すことにより、階層データの頂点に階層を追加しても、可能な限りその他の領域に変化なく領域を定義することができ、ひいては既存のインデックスブロックをそのまま利用することができる。   The lower hierarchy can belong to the same area as that belonging to the first hierarchy data 230. By repeating the above changes, even if a hierarchy is added to the vertex of the hierarchy data, the area can be defined as much as possible without changing to other areas, and the existing index block can be used as it is.

図21で示したように画像の領域を拡張した場合、画像処理で一般的に用いられるようなラスタ方向の順番に基づくタイル画像の管理では、追加した領域のタイル画像が既存のタイル画像の間に挿入されてしまうため、タイル画像の並び替えや識別番号のふり直しが必要となる。タイル画像の数が増加するほど、この処理にかかる負荷は多大なものになる。本実施の形態では上述のとおり、局所的なデータの変化のみで画像の領域の拡張が可能になるため、処理コストが低く、更新中のデータ表示や最終的な画像ファイル生成を応答性よく実現できる。   When the image area is expanded as shown in FIG. 21, in the tile image management based on the order of the raster direction, which is generally used in image processing, the tile image of the added area is between the existing tile images. Therefore, it is necessary to rearrange the tile images and reassign the identification numbers. As the number of tile images increases, the load on this process increases. In the present embodiment, as described above, the image area can be expanded only by local data change, so the processing cost is low, and the data display being updated and the final image file generation are realized with high responsiveness. it can.

次に上記の構成によって実現できる動作を説明する。図24は画像処理装置においてユーザが画像を修正、改変する際の処理手順を示すフローチャートである。まずユーザが修正対象の画像ファイルを指定すると、画像ファイル取得部318はハードディスクドライブ50から該当する画像ファイルを読み出しメインメモリ60に格納する(S110)。すると表示画像制御部326は当該画像ファイルの画像を表示装置12に表示する(S112)。   Next, operations that can be realized by the above configuration will be described. FIG. 24 is a flowchart showing a processing procedure when the user corrects or modifies an image in the image processing apparatus. First, when the user designates an image file to be corrected, the image file acquisition unit 318 reads the corresponding image file from the hard disk drive 50 and stores it in the main memory 60 (S110). Then, the display image control unit 326 displays the image of the image file on the display device 12 (S112).

この状態でユーザが表示装置12に表示された画像を見ながら更新情報を入力すると(S114のY)、更新情報取得部320はそれを受け付け、タイル画像生成部322が更新部分の新たなタイル画像を生成してメインメモリ60に格納する(S116)。ユーザが行う更新情報の入力は、例えば表示装置12に表示した画像の近傍に、新たに貼り付けたい画像をさらに表示し、ユーザがポインティングデバイスで所望の領域までドラッグさせるなどの操作によってなされる。あるいはポインティングデバイスによって文字や絵を直接描き込んだり、領域を追加するコマンドを入力するなどでもよい。   In this state, when the user inputs update information while viewing the image displayed on the display device 12 (Y in S114), the update information acquisition unit 320 accepts the update information, and the tile image generation unit 322 receives a new tile image of the update part. Is stored in the main memory 60 (S116). The input of update information performed by the user is performed, for example, by displaying an image to be newly pasted in the vicinity of the image displayed on the display device 12 and allowing the user to drag it to a desired area with a pointing device. Alternatively, a character or picture may be directly drawn with a pointing device, or a command for adding an area may be input.

次にヘッダ・インデックスブロック更新部324は、上述のように画像の更新内容によって適宜ヘッダ、インデックスブロックを更新する(S118)。すると表示画像制御部326は、新たに参照先となったタイル画像のデータを読み出し、デコードすることによって表示装置12の表示を更新する(S120)。S114からS120までの処理を、修正が終了し更新情報が得られなくなるまで繰り返す。   Next, the header / index block update unit 324 appropriately updates the header and index block according to the update content of the image as described above (S118). Then, the display image control unit 326 updates the display of the display device 12 by reading and decoding the tile image data that is newly referred to (S120). The processes from S114 to S120 are repeated until the correction is completed and update information cannot be obtained.

修正が終了したことをユーザからの入力などにより検知したら(S114のN)、画像ファイル生成部328は、メインメモリ60に格納しておいた、新たに作成したタイル画像を、元の画像ファイルの画像データに組み込んで、画像データを再構築する(S122)。あるいは新たに作成したタイル画像のみを別のファイルに保存する。そしてS118で更新した最終的なヘッダおよびインデックスブロックのデータとともに画像ファイルとして出力する(S124)。   When it is detected that the correction has been completed by an input from the user or the like (N in S114), the image file generation unit 328 uses the newly created tile image stored in the main memory 60 as the original image file. The image data is reconstructed by being incorporated in the image data (S122). Alternatively, only the newly created tile image is stored in a separate file. Then, it is output as an image file together with the final header and index block data updated in S118 (S124).

修正中、ヘッダ、インデックスブロック、タイル画像は、既存のデータと別の記憶領域に格納しておく。そしてユーザが、直前の画像の更新を取り消す操作(Undo)を行った場合はそれらのデータの参照先を元に戻すことにより、画像を前の状態に戻すことが容易にできる。操作の再履行(Redo)でも同様に、参照先を変更するのみで遂行される。   During correction, the header, index block, and tile image are stored in a storage area different from existing data. When the user performs an operation (Undo) to cancel the update of the immediately preceding image, the image can be easily returned to the previous state by returning the reference destination of the data. Similarly, the operation re-execution (Redo) is performed only by changing the reference destination.

以上述べた本実施の形態によれば、階層データをヘッダ、インデックスブロック、タイル画像、の3つのデータセットで構成する。これにより、タイル画像を本来の画像上の位置から独立させることができ、画像を修正した際などに管理が容易になるほか、画像の冗長性を考慮してタイル画像を複数の領域で共有することができるため、タイル画像のデータサイズを効率よく削減することができる。   According to the present embodiment described above, hierarchical data is composed of three data sets of a header, an index block, and a tile image. As a result, the tile image can be made independent from the position on the original image, management becomes easier when the image is modified, etc., and the tile image is shared by multiple areas in consideration of image redundancy. Therefore, the data size of the tile image can be efficiently reduced.

また、タイル画像を複数の領域で共有する際、ヘッダもしくはインデックスブロックで設定するポインタを無効とし、無効となっている領域では、階層を低解像度側へ辿って有効なポインタが設定されている領域を探索する。これにより、全ての領域に対しいずれかのタイル画像へのポインタを設定する場合と比較し、インデックスに用いるデータ自体のサイズを削減できる。   When a tile image is shared by multiple areas, the pointer set in the header or index block is invalidated, and in the invalid area, the hierarchy is traced to the lower resolution side and the valid pointer is set Explore. Thereby, the size of the data itself used for the index can be reduced as compared with the case where the pointer to any tile image is set for all the regions.

さらに、ヘッダによって階層構造体を領域分割し、領域ごとにインデックスブロックを対応づける。この際、一つの領域には複数の階層を含める。これにより、一時に表示や修正の対象となりやすいデータをまとめて扱うことができ、不必要なデータをメインメモリにロードするなど、記憶領域や処理の面で非効率な状況を回避しやすくなる。また、インデックスブロックで定義できるタイル領域の数を固定とすることで、データキャッシュ時のフラグメンテーションが発生せず、記憶領域の管理が容易である。また画像が巨大化してデータサイズが大きくなっても、階層データの領域分割により表示や修正対象のデータへのアクセスが効率的に行える。   Further, the hierarchical structure is divided into regions by the header, and an index block is associated with each region. At this time, a plurality of hierarchies are included in one area. As a result, data that is likely to be displayed or modified at a time can be handled collectively, and it is easy to avoid an inefficient situation in terms of storage area and processing, such as loading unnecessary data into the main memory. In addition, by fixing the number of tile areas that can be defined in the index block, fragmentation during data caching does not occur, and storage area management is easy. Even if the image is enlarged and the data size is increased, the data to be displayed and corrected can be efficiently accessed by dividing the area of the hierarchical data.

例えば80000個のタイル画像で構成される階層データの場合、インデックスブロックで定義するタイル領域の数を400とすると、インデックスブロックは200個生成される。ここで1つのタイル画像にアクセスしたいとき、単なる80000個のタイル画像の羅列であれば、それを順に検索していく必要があるが、本実施の形態のように領域分割されていれば、1つの領域を検索することは400個のタイル画像を検索することと同等となり、効率の良いアクセスが可能となる。   For example, in the case of hierarchical data composed of 80000 tile images, if the number of tile areas defined by the index block is 400, 200 index blocks are generated. Here, when it is desired to access one tile image, if it is just a list of 80000 tile images, it is necessary to search for them in order, but if the area is divided as in the present embodiment, 1 Searching for one area is equivalent to searching for 400 tile images, and efficient access is possible.

同様に、一般的な画像表示装置で表示を行う場合、一度に表示する画像に必要なインデックスブロックは、平均的には1〜2個であり、4個以上のインデックスブロックが必要となることは稀である。そのため、領域を分割せずにタイル画像へのインデックスを保持する場合と比較し、一度に必要なインデックスデータサイズが少なくて済み、メインメモリを節約できる。結果的に、複数の階層データを同時に処理するような態様も、メインメモリを圧迫せずに実現できる可能性が高くなる。   Similarly, when displaying on a general image display device, the average number of index blocks required for an image to be displayed at one time is one to two, and four or more index blocks are required. It is rare. Therefore, compared with the case where the index to the tile image is held without dividing the area, the index data size required at one time can be reduced, and the main memory can be saved. As a result, there is a high possibility that an aspect in which a plurality of hierarchical data is processed simultaneously can be realized without squeezing the main memory.

さらに、ヘッダおよびインデックスブロックで設定するポインタには、インデックスブロックおよびタイル画像を記録したファイルの設定もできるようにする。このようにすることで、一つの階層データであっても複数のインデックスブロックファイルやタイル画像ファイルから読み出したデータを利用することができ、階層データをより柔軟に生成、更新することができる。またファイルが異なれば同一の記憶媒体に格納しておく必要がなくなるため、例えば4GBを超える巨大な画像データを生成することができる。これにより非圧縮画像、HDR(High Dynamic Range)画像、アトリビュート情報などを処理対象とすることも可能となる。   Furthermore, the pointer set in the header and the index block can also set a file in which the index block and the tile image are recorded. By doing so, data read from a plurality of index block files and tile image files can be used even with one hierarchical data, and hierarchical data can be generated and updated more flexibly. Also, if the files are different, it is not necessary to store them in the same storage medium, so that huge image data exceeding 4 GB, for example, can be generated. This makes it possible to process uncompressed images, HDR (High Dynamic Range) images, attribute information, and the like.

同時に、複数の階層データで、用いるデータのファイルを共有することも可能となる。例えば雑誌のヘッダ、フッタなどテンプレートとして再利用が可能な画像は、個々に保持せず共有することで、階層データ個別のデータサイズを小さくできる。タイル画像ばかりでなくインデックスブロックのデータを共有してもよい。   At the same time, a file of data to be used can be shared by a plurality of hierarchical data. For example, images that can be reused as templates, such as magazine headers and footers, can be shared without being retained individually, thereby reducing the data size of each hierarchical data. Not only tile images but also index block data may be shared.

これを応用すると、階層データを用いたコンテンツのアップグレードが容易に実現できる。例えば通常版のコンテンツとしてヘッダ、インデックスブロック、タイル画像のデータを含むファイルを配布する。そして追加用として、さらに高解像度な階層のタイル画像のファイルを別に用意する。通常版のヘッダやインデックスブロックには、追加用のタイル画像へのポインタも記述しておくが、当該タイル画像を入手しない限り、そのポインタは無効となるため表示はされない。ユーザがコンテンツのアップグレードをすると、追加用のファイルがダウンロードされ、それに記録されたタイル画像へのポインタが有効となるため、追加用の画像が表示される。このようにすると、通常版のコンテンツファイルを変化させることなくアップグレードが容易に可能となる。アップグレードには課金を義務づけてもよい。   By applying this, content upgrade using hierarchical data can be easily realized. For example, a file including header, index block, and tile image data is distributed as normal version content. A separate tile image file with a higher resolution is prepared for addition. In the normal version header and index block, a pointer to the tile image for addition is also described. However, unless the tile image is obtained, the pointer is invalid and is not displayed. When the user upgrades the content, an additional file is downloaded, and the pointer to the tile image recorded in the file is valid, so that the additional image is displayed. In this way, the upgrade can be easily performed without changing the normal content file. You may be charged for the upgrade.

実施の形態2
実施の形態1では、主にユーザが入力した情報に基づき画像ファイルを生成、修正した。本実施の形態では、グラフィックプロセッサによって階層データへレンダリングする態様について述べる。レンダリングに階層データを導入することにより、実施の形態1で述べたのと同様、必要とされる解像度に見合った処理のみを行えばよくなり、高精細の巨大な画像であっても効率的な処理が可能となる。本実施の形態は実施の形態1の図4で示した情報処理装置10によって実現できる。図25は本実施の形態における情報処理装置10のうち制御部100およびメインメモリ60の構成をより詳細に示している。
Embodiment 2
In the first embodiment, the image file is generated and corrected mainly based on information input by the user. In the present embodiment, an aspect of rendering into hierarchical data by a graphic processor will be described. By introducing hierarchical data into rendering, as described in the first embodiment, it is only necessary to perform processing corresponding to the required resolution, and even a high-definition huge image is efficient. Processing is possible. The present embodiment can be realized by the information processing apparatus 10 shown in FIG. 4 of the first embodiment. FIG. 25 shows in more detail the configuration of the control unit 100 and the main memory 60 in the information processing apparatus 10 according to the present embodiment.

制御部100はメインプロセッサ400とグラフィックプロセッサ402を含む。メインプロセッサは情報処理装置10において起動したアプリケーションプログラムを主に実行するとともに、情報処理装置10に含まれる他の機能ブロックの制御を行う。グラフィックプロセッサ402はメインプロセッサ400からの画像処理要求に従い画像処理を実行する。画像処理に必要なデータはメインメモリ60に格納され、グラフィックプロセッサ402はそれを読み出し適宜画像処理を行ったうえ、メインメモリ60などに結果を書き出すことにより画像処理を遂行する。   The control unit 100 includes a main processor 400 and a graphic processor 402. The main processor mainly executes an application program started in the information processing apparatus 10 and controls other functional blocks included in the information processing apparatus 10. The graphic processor 402 executes image processing in accordance with an image processing request from the main processor 400. Data necessary for image processing is stored in the main memory 60. The graphic processor 402 reads out the data and appropriately performs image processing, and then writes the result in the main memory 60 to perform image processing.

グラフィックプロセッサ402は、メインプロセッサ400からの画像処理要求に従い、メインメモリ60に格納されたモデルデータ418を用いてレンダリングを行い、同じくメインメモリ60に格納したカラーバッファ414およびZバッファ416を更新する。本実施の形態では図25に示すように、カラーバッファ414およびZバッファ416はいずれも階層データの構造とする。すなわち、描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した構造を有する。当該階層データは、実施の形態1で説明したように、ヘッダ、インデックスブロック、タイルデータによって構成してよい。ここでタイルデータは、各階層の画素平面を所定のサイズに分割したタイル領域ごとのデータである   The graphic processor 402 performs rendering using the model data 418 stored in the main memory 60 in accordance with an image processing request from the main processor 400, and updates the color buffer 414 and the Z buffer 416 that are also stored in the main memory 60. In this embodiment, as shown in FIG. 25, each of the color buffer 414 and the Z buffer 416 has a hierarchical data structure. That is, the color value pixel plane that holds color information for each pixel of the drawing target image and the Z value pixel plane that holds depth information from the viewpoint for each pixel are associated with the plurality of resolutions of the drawing target image. It has a hierarchical structure. As described in the first embodiment, the hierarchical data may be composed of headers, index blocks, and tile data. Here, the tile data is data for each tile area obtained by dividing the pixel plane of each layer into a predetermined size.

グラフィックプロセッサ402は、メインプロセッサ400からの要求に従いレンダリングを行うレンダリング部404、レンダリング部404によるレンダリングの結果をメインメモリ60に格納されたカラーバッファ414およびZバッファ416の各階層に反映させる階層データ更新部406を含む。グラフィックプロセッサ402はさらに、レンダリング時に一時的に用いる記憶領域として、GPUカラーバッファ408、GPUーZバッファ410、およびダーティマスク412を含む。ダーティマスク412はGPUカラーバッファ408、GPUーZバッファ410と同じサイズの領域を有し各ピクセルが1ビットの情報を保持する。レンダリングによってGPUカラーバッファ408、GPUーZバッファ410が更新されたら、更新対象のピクセルの値を変化させることにより、当該ピクセルの領域を検出する。   The graphic processor 402 performs rendering in accordance with a request from the main processor 400, and updates the hierarchical data to reflect the rendering result of the rendering unit 404 in each layer of the color buffer 414 and the Z buffer 416 stored in the main memory 60. Part 406. The graphic processor 402 further includes a GPU color buffer 408, a GPU-Z buffer 410, and a dirty mask 412 as storage areas temporarily used during rendering. The dirty mask 412 has an area of the same size as the GPU color buffer 408 and the GPU-Z buffer 410, and each pixel holds 1-bit information. When the GPU color buffer 408 and the GPU-Z buffer 410 are updated by rendering, the pixel area is detected by changing the value of the pixel to be updated.

次に上記の構成を有する画像処理装置の、レンダリング時の動作を説明する。図26は階層データへのレンダリングの処理手順を示すフローチャートである。まずメインプロセッサ400はグラフィックプロセッサ402に対しレンダリング要求を行う(S200)。レンダリングに必要なデータは上述の通りメインメモリ60に格納される。モデルデータ418の他、上述の通り階層構造を有するカラーバッファ414およびZバッファ416もこれに含まれる。   Next, the operation during rendering of the image processing apparatus having the above configuration will be described. FIG. 26 is a flowchart showing a processing procedure of rendering to hierarchical data. First, the main processor 400 makes a rendering request to the graphic processor 402 (S200). Data necessary for rendering is stored in the main memory 60 as described above. In addition to the model data 418, the color buffer 414 and the Z buffer 416 having a hierarchical structure as described above are also included.

するとグラフィックプロセッサ402のレンダリング部404は、モデルデータ418などに基づき、カラーバッファ414およびZバッファ416のうちレンダリング対象の階層および領域を特定する(S202)。次にレンダリング部404は、当該領域のデータをカラーバッファ414およびZバッファ416から読み出し、GPUカラーバッファ408およびGPUーZバッファ410からなるGPUバッファに敷き詰める(S204)。レンダリング対象の階層および領域からタイルデータを特定する手法は実施の形態1で述べたタイル画像の特定手法と同様に、ヘッダ、インデックスブロックの順で検索していく。したがって読み出しはタイルデータの単位で行う。   Then, the rendering unit 404 of the graphic processor 402 identifies the layer and area to be rendered in the color buffer 414 and the Z buffer 416 based on the model data 418 and the like (S202). Next, the rendering unit 404 reads the data of the area from the color buffer 414 and the Z buffer 416 and spreads the data in the GPU buffer including the GPU color buffer 408 and the GPU-Z buffer 410 (S204). Similar to the tile image specifying method described in the first embodiment, the method of specifying tile data from the hierarchy and area to be rendered is searched in the order of header and index block. Therefore, reading is performed in units of tile data.

このときレンダリング部404は、ダーティマスク412を初期化する(S206)。例えば各ピクセル値を「0」にセットする。そして、モデルデータ418を用いて一般的な手法でレンダリングを行い、GPUカラーバッファ408、GPUーZバッファ410を適宜更新するとともに、ダーティマスク412における更新対象のピクセル値を「1」に更新する(S208)。   At this time, the rendering unit 404 initializes the dirty mask 412 (S206). For example, each pixel value is set to “0”. Then, rendering is performed by a general method using the model data 418, the GPU color buffer 408 and the GPU-Z buffer 410 are appropriately updated, and the pixel value to be updated in the dirty mask 412 is updated to “1” ( S208).

そしてGPUカラーバッファ408、GPUーZバッファ410におけるレンダリング結果に基づき、メインメモリ60のカラーバッファ414およびZバッファ416の階層データを更新する(S210)。具体的にはまず、各階層データのうち、レンダリング対象の階層および領域において、更新対象のピクセルを含むタイル領域をダーティマスク412のピクセル値に基づき特定し、当該タイル領域のデータを、GPUカラーバッファ408、GPUーZバッファ410のレンダリング結果に基づき更新する。   Then, based on the rendering results in the GPU color buffer 408 and the GPU-Z buffer 410, the hierarchical data of the color buffer 414 and the Z buffer 416 in the main memory 60 is updated (S210). Specifically, first, among the hierarchical data, the tile area including the pixel to be updated is specified based on the pixel value of the dirty mask 412 in the hierarchy and area to be rendered, and the data of the tile area is stored in the GPU color buffer. 408, updated based on the rendering result of the GPU-Z buffer 410.

このとき実施の形態1で述べたように、新たなタイルデータを生成し、インデックスブロックに設定されているポインタを新たなタイルデータへのポインタに更新する。なお、頻繁に更新されることが予想される場合は、タイルデータの生成を省略してポインタの更新のみを行い、画像が確定してからタイルデータを生成してもよい。次にレンダリング対象の階層以外の階層に対しても、更新された領域に対応する領域のタイルデータを新たに生成し、インデックスブロックに設定されているポインタを新たなタイルデータへのポインタに更新する。この際、階層によって解像度が異なるため、レンダリング結果は拡大または縮小して新たなタイルデータに反映させる。   At this time, as described in the first embodiment, new tile data is generated, and the pointer set in the index block is updated to a pointer to the new tile data. If frequent updating is expected, the generation of tile data may be omitted and only the pointer may be updated, and the tile data may be generated after the image is confirmed. Next, for the layers other than the layer to be rendered, tile data of a region corresponding to the updated region is newly generated, and the pointer set in the index block is updated with a pointer to the new tile data. . At this time, since the resolution varies depending on the hierarchy, the rendering result is enlarged or reduced and reflected in new tile data.

既存の階層データより高解像度の画像をレンダリングするときなど、レンダリング対象の領域のタイルデータがカラーバッファ414およびZバッファ416に元々存在しない場合は、その上の階層の対応する領域を拡大してGPUカラーバッファ408、GPUーZバッファ410に敷き詰める。そしてレンダリング後、更新されたタイルデータのみをカラーバッファ414およびZバッファ416に反映させ、ヘッダあるいはインデックスブロックのポインタを更新する。その後、レンダリング対象の階層以外の階層に対しても、タイルデータを生成、ポインタを更新する点は上記と同様である。この処理は、実施の形態1において図19を用いて説明したのと同様の処理となる。   When tile data of the rendering target area originally does not exist in the color buffer 414 and the Z buffer 416, such as when rendering an image with a resolution higher than that of the existing hierarchical data, the corresponding area of the upper hierarchical level is enlarged and the GPU is expanded. Cover the color buffer 408 and the GPU-Z buffer 410. Then, after rendering, only the updated tile data is reflected in the color buffer 414 and the Z buffer 416, and the header or index block pointer is updated. Thereafter, tile data is generated and pointers are updated for layers other than the layer to be rendered, as described above. This process is the same as that described with reference to FIG. 19 in the first embodiment.

なおS210においてレンダリングの結果を階層データに反映させる際、レンダリング対象の階層より下の階層へ反映させるためにレンダリング結果を拡大した領域が、当該階層のタイル領域のいずれかを占めていたらそのタイルデータは削除し、それへのポインタを無効とする。これによりタイルデータのサイズを削減できる。表示時は実施の形態1で述べたのと同様、ポインタが有効な階層を探索し、上の階層の画像を拡大すればよい。   Note that when the rendering result is reflected in the hierarchical data in S210, if the area in which the rendering result is expanded to reflect in the hierarchy below the rendering target hierarchy occupies one of the tile areas in the hierarchy, the tile data. Deletes and invalidates the pointer to it. Thereby, the size of tile data can be reduced. At the time of display, as described in the first embodiment, a hierarchy in which the pointer is valid may be searched and an image in the upper hierarchy may be enlarged.

なおカラーバッファ414およびZバッファ416は、ヘッダおよびインデックスブロックを個別に保持してもよいし、共有してもよい。共有とする場合、インデックスブロックは一つのタイル領域に対し複数のポインタ、すなわちカラーバッファのタイルデータおよびZバッファのタイルデータへのポインタを設定する。これにより、個別に保持するよりヘッダおよびインデックスブロックのデータを圧縮することができる。レンダリング後、画像を確定する場合は、インデックスブロックのうち不要となったZバッファのタイルデータへのポインタを削除してもよい。インデックスブロックにおいて一つのタイル領域に設定する複数のポインタが指す対象は、画像の内容によっては、カラーバッファやZバッファに限られない。   The color buffer 414 and the Z buffer 416 may hold the header and the index block individually or may share them. In the case of sharing, the index block sets a plurality of pointers for one tile area, that is, pointers to color buffer tile data and Z buffer tile data. Thereby, the data of the header and the index block can be compressed rather than being held individually. When an image is determined after rendering, a pointer to tile data in the Z buffer that is no longer necessary in the index block may be deleted. A target pointed to by a plurality of pointers set in one tile area in the index block is not limited to a color buffer or a Z buffer depending on the contents of the image.

また複数のカラーバッファ間でZバッファを共有してもよい。例えばカラーバッファのデータを2つ、Zバッファのデータを1つ用意し、一方のカラーバッファとZバッファでレンダリングを行い、他方のカラーバッファとZバッファでレンダリングを行ってもよい。この場合はそれぞれ個別にヘッダおよびインデックスブロックを保持する方が制御の面で有効である。   A Z buffer may be shared among a plurality of color buffers. For example, two color buffer data and one Z buffer data may be prepared, rendering may be performed with one color buffer and Z buffer, and rendering may be performed with the other color buffer and Z buffer. In this case, it is more effective in terms of control to hold the header and the index block individually.

カラーバッファおよびZバッファを階層データとしてレンダリングする本実施の態様は、アンチエイリアスに応用することができる。すなわち高解像度の階層とそれより解像度が低い表示用の画像の階層とからなる階層データを生成する。一般的なスーパーサンプリングでは、単色の背景などオブジェクトが存在しない領域についても、高解像度画像用の記憶領域を用意する必要がある。一方、これらのバッファを上述のような階層データとすることにより、低解像度の階層を拡大すれば得られる領域は高解像度画像のレンダリング対象から外すことができる。   This embodiment of rendering a color buffer and a Z buffer as hierarchical data can be applied to anti-aliasing. That is, hierarchical data composed of a high resolution hierarchy and a display image hierarchy having a lower resolution is generated. In general supersampling, it is necessary to prepare a storage area for a high-resolution image even for an area where no object exists, such as a monochrome background. On the other hand, by making these buffers hierarchical data as described above, an area obtained by enlarging the low-resolution hierarchy can be excluded from the rendering target of the high-resolution image.

例えば領域ごとに必要な解像度をユーザが指定することにより、各階層において必要最低限の領域のみのレンダリングで済みメモリの使用効率が向上する。頻繁なタイルデータ更新と画像表示を応答性良く行うためには、生成したタイルデータは圧縮しなくても良い。なお画像の全体にわたりアンチエイリアスが必要な場合はスーパーサンプリングを行うなど、対象領域の割合によってアンチエイリアスの手法を切り替えてもよい。   For example, when the user designates a necessary resolution for each area, only the minimum necessary area can be rendered in each layer, and the use efficiency of the memory is improved. In order to perform frequent tile data update and image display with high responsiveness, the generated tile data need not be compressed. If anti-aliasing is required for the entire image, super-sampling may be performed, and the anti-aliasing method may be switched depending on the ratio of the target area.

アンチエイリアスを階層データを用いて行う場合、常に最下層の画像のみをレンダリングし、画像確定後にその縮小画像を生成する場合と、ユーザが指定した階層にレンダリングし、そのたびに全ての階層の対応する領域も更新する場合とが考えられる。前者は縮小処理の頻度が低く抑えられ、後者はラスタライズ、シェーダー処理、ROP(Rendering Output Pipeline)、ピクセル転送などのピクセル生成処理のコストを予測しやすい。ただし後者は、グラフィックプロセッサ402とメインメモリ60間で元の画像、拡大画像、縮小画像などのデータが頻繁に転送されるため、転送バンド幅への負荷がかかり易くなる。   When anti-aliasing is performed using hierarchical data, only the lowest layer image is always rendered, and the reduced image is generated after the image is confirmed, and the rendering is performed at the level specified by the user, and each level corresponds to each level. It is conceivable that the area is also updated. In the former, the frequency of reduction processing is kept low, and in the latter, it is easy to predict the cost of pixel generation processing such as rasterization, shader processing, ROP (Rendering Output Pipeline), and pixel transfer. However, in the latter case, data such as an original image, an enlarged image, and a reduced image are frequently transferred between the graphic processor 402 and the main memory 60, so that a load on the transfer bandwidth is easily applied.

アンチエイリアスの場合のみならず、階層データをレンダリングする場合は、レンダリング結果を各階層へ反映させるため、画像を拡大、縮小するスケーリング処理が頻繁に必要となる。スケーリング処理の都度、画像データをグラフィックプロセッサ、メインメモリ間で送受すると、両者間の転送バンド幅を圧迫する懸念がある。そこで本実施の形態では、図27で示すようにスケーリング処理を行うスケーラ422をメインメモリ60に内蔵するようにしてもよい。   When rendering hierarchical data as well as in the case of anti-aliasing, a scaling process for enlarging or reducing an image is frequently required in order to reflect the rendering result in each hierarchy. When image data is sent and received between the graphic processor and main memory each time scaling processing is performed, there is a concern that the transfer bandwidth between the two may be compressed. Therefore, in the present embodiment, as shown in FIG. 27, a scaler 422 that performs scaling processing may be built in the main memory 60.

これにより、グラフィックプロセッサ520およびメインメモリ60は、レンダリング対象の解像度の画像のみをやりとりすればよく、メインメモリ60内の階層データにおける各階層へのレンダリング結果の反映は、スケーラ422がメインメモリ60内で行う。結果としてグラフィックプロセッサ520とメインメモリ60間の転送バンド幅の圧迫が防止でき、階層データのレンダリングが効率的に実施できる。なおスケーラ422はメインメモリ60に内蔵せず、グラフィックプロセッサ520とメインメモリ60間のバスとは別のバスでメインメモリ60に接続するようにしても同様の効果が得られる。   As a result, the graphic processor 520 and the main memory 60 need only exchange images with the resolution to be rendered, and the scaler 422 reflects the rendering result in each layer in the layer data in the main memory 60. To do. As a result, compression of the transfer bandwidth between the graphic processor 520 and the main memory 60 can be prevented, and hierarchical data can be rendered efficiently. The scaler 422 is not built in the main memory 60, and the same effect can be obtained by connecting to the main memory 60 by a bus different from the bus between the graphic processor 520 and the main memory 60.

以上述べた本実施の形態は、一般的なグラフィックプロセッサを利用して実現することができる。ここで一般的なグラフィックプロセッサでは、内部のフレームバッファ、すなわち上述のGPUバッファのアドレッシング時、メインメモリからの読み出しおよび書き込みの回数を抑えるため、画面上でまとまった領域に対し近いメモリアドレスを割り当てる、という手法をとる。しかしGPUバッファに用いられる領域は連続したアドレス空間でなくてはならない、という制約がある。すなわちアドレスが不連続な領域を敷き詰めることができない。図28、29はその際の処理の様子を示している。   The above-described embodiment can be realized using a general graphic processor. Here, in a general graphic processor, when addressing an internal frame buffer, that is, the above-described GPU buffer, in order to suppress the number of reading and writing from the main memory, a memory address close to a grouped area on the screen is assigned. Take the technique. However, there is a restriction that the area used for the GPU buffer must be a continuous address space. That is, it is not possible to cover areas with discontinuous addresses. 28 and 29 show the state of processing at that time.

まず図28において、階層データの第3階層の画像の一部の領域430をレンダリング対象としたとき、「11」〜「18」のアドレスが割り振られるとする。この場合、グラフィックプロセッサ402はGPUバッファに当該領域430を敷き詰めることができる。その後、図29に示すように、同じ第3階層の一部の領域432をレンダリング対象としたとする。領域432は、図28においてアドレス「11」および「12」を割り当て済みの領域を含む。この場合、領域432のその他の領域に、「19」〜「24」のアドレスを割り振る。このようにアドレス割り当てを行うと、領域432はアドレスが不連続な領域を含んでしまい、グラフィックプロセッサ402がGPUバッファに当該領域を敷き詰めることができなくなる。   First, in FIG. 28, it is assumed that addresses “11” to “18” are assigned when a partial region 430 of the third layer image of the layer data is to be rendered. In this case, the graphic processor 402 can lay out the area 430 in the GPU buffer. Then, as shown in FIG. 29, it is assumed that a part of the region 432 in the same third hierarchy is to be rendered. The area 432 includes areas to which the addresses “11” and “12” have been assigned in FIG. In this case, addresses “19” to “24” are allocated to other areas of the area 432. When address assignment is performed in this way, the area 432 includes areas where the addresses are discontinuous, and the graphic processor 402 cannot spread the area in the GPU buffer.

このため、領域432を別の記憶領域に一旦コピーし、新たな連続したアドレス(図29ではアドレス「50」〜「57」)を割り当てることによりGPUバッファへの敷き詰めを行う必要がある。このような処理コストを軽減するため本実施の形態では、メインメモリ60のメモリコントローラ(図示せず)に、領域の位置と割り振るアドレスとを対応づけるテーブルを設けてもよい。図29の領域432の場合、ラスタ順に「0」〜「7」で領域の位置を表現し、「0」=「19」、「1」=「20」、「2」=「21」、「3」=「22」、「4」=「23」、「5」=「24」、「6」=「11」、「7」=「12」、と対応づける。   For this reason, it is necessary to copy the area 432 once to another storage area and assign new continuous addresses (addresses “50” to “57” in FIG. 29) to spread the GPU buffer. In the present embodiment, in order to reduce such processing costs, a memory controller (not shown) of the main memory 60 may be provided with a table that associates the position of the area with the address to be allocated. In the case of the area 432 in FIG. 29, the position of the area is expressed by “0” to “7” in raster order, and “0” = “19”, “1” = “20”, “2” = “21”, “ 3 ”=“ 22 ”,“ 4 ”=“ 23 ”,“ 5 ”=“ 24 ”,“ 6 ”=“ 11 ”,“ 7 ”=“ 12 ”.

こうすることにより不連続なアドレスを割り振られた領域のレンダリングであっても、メインメモリ60においてアドレス変換がなされるため、図29で示したような敷き詰めのためのコピーが必要なくなる。さらに図27のようにメインメモリ60がスケーラ422を内蔵していたとすると、拡大、縮小した画像の生成も含め、階層データを生成、更新するための多くの処理をメインメモリ60内で閉じることができる。   In this way, even when rendering an area to which discontinuous addresses are allocated, address conversion is performed in the main memory 60, so that a copy for spreading as shown in FIG. 29 is not necessary. Further, as shown in FIG. 27, if the main memory 60 has a built-in scaler 422, many processes for generating and updating hierarchical data, including generation of enlarged and reduced images, can be closed in the main memory 60. it can.

本実施の形態のように階層データのレンダリングを可能とすることにより、ヘッダ、インデックスブロックによるタイルデータへのランダムアクセス、ヘッダを分割して階層データごとのメモリコストを下げたことによる複数の階層データの同時処理、タイルデータの追加、削除、更新がレンダリングによって可能、といった特徴が得られる。これらの特徴は、ランダムアクセス、マルチテクスチャリング、レンダーターゲット、というテクスチャの要件と同等である。したがって、階層データをテクスチャと同等に扱うことが可能になり、階層データをコンピュータグラフィックスを用いた広範囲の用途に応用することができる。   By enabling rendering of hierarchical data as in the present embodiment, random access to tile data by header and index block, multiple hierarchical data by dividing the header to reduce the memory cost for each hierarchical data Thus, it is possible to obtain features such as simultaneous processing, addition, deletion and updating of tile data by rendering. These features are equivalent to the texture requirements of random access, multi-texturing, render target. Therefore, hierarchical data can be handled in the same way as texture, and the hierarchical data can be applied to a wide range of uses using computer graphics.

以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   The present invention has been described based on the embodiments. Those skilled in the art will understand that the above-described embodiment is an exemplification, and that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. is there.

1 情報処理システム、 10 情報処理装置、 12 表示装置、 20 入力装置、 38 タイル画像、 50 ハードディスクドライブ、 60 メインメモリ、 100 制御部、 102 入力情報取得部、 106 ロードブロック決定部、 108 ロード部、 110 タイル画像特定部、 112 デコード部、 114 表示画像処理部、 120 画像階層生成部、 122 画像分割部、 124 冗長性検出部、 126 ヘッダ・インデックスブロック生成部、 150 ヘッダ、 160 インデックスブロック、 170 タイル画像、 318 画像ファイル取得部、 320 更新情報取得部、322 タイル画像生成部、 324 ヘッダ・インデックスブロック更新部、 326 表示画像制御部、 328 画像ファイル生成部、 400 メインプロセッサ、 402 グラフィックプロセッサ、 404 レンダリング部、 406 階層データ更新部、 408 GPUカラーバッファ、 410 GPUーZバッファ、 412 ダーティマスク、 414 カラーバッファ、 416 Zバッファ、 418 モデルデータ、 422 スケーラ、 520 グラフィックプロセッサ。 DESCRIPTION OF SYMBOLS 1 Information processing system, 10 Information processing apparatus, 12 Display apparatus, 20 Input apparatus, 38 Tile image, 50 Hard disk drive, 60 Main memory, 100 Control part, 102 Input information acquisition part, 106 Load block determination part, 108 Load part, 110 tile image specifying unit, 112 decoding unit, 114 display image processing unit, 120 image layer generating unit, 122 image dividing unit, 124 redundancy detecting unit, 126 header / index block generating unit, 150 header, 160 index block, 170 tile Image, 318 image file acquisition unit, 320 update information acquisition unit, 322 tile image generation unit, 324 header / index block update unit, 326 display image control unit, 328 image file generation unit, 40 Main processor, 402 graphics processor, 404 rendering unit, 406 hierarchical data update unit, 408 GPU color buffer, 410 GPU-Z buffer, 412 dirty mask, 414 color buffer, 416 Z buffer, 418 model data, 422 scaler, 520 graphic processor .

Claims (13)

プログラムを実行し新たに表示すべき画像の描画のための情報を含む画像処理要求を発行する画像処理要求部と、
描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した階層カラーバッファおよび階層Zバッファを記憶する階層データ記憶部と、
前記画像処理要求を受け付け画像処理を実行し、前記階層カラーバッファおよび前記階層Zバッファを更新する画像処理部と、を備え、
前記画像処理部は、
前記階層カラーバッファおよび前記階層Zバッファから読み出した描画対象の階層および領域のデータをそれぞれ記録する描画用カラーバッファおよび描画用Zバッファと、
前記画像処理要求に基づき、前記階層カラーバッファおよび前記階層Zバッファのうち、前記新たに表示すべき画像の解像度および領域に対応する階層およびそのうちの領域を、描画対象の階層および領域としてそれぞれ特定し前記描画用カラーバッファおよび前記描画用Zバッファにそのデータを読み出し、前記画像処理要求に基づき画像処理演算を行い、読み出したデータを更新する描画部と、
前記描画用カラーバッファおよび前記描画用Zバッファにおける更新後のデータによって前記階層カラーバッファおよび前記階層Zバッファにおける元の階層および領域のデータを更新するとともに、前記更新後のデータにスケーリング処理を施すことにより、その他の階層の対応する領域のデータも更新する階層データ更新部と、
を備えたことを特徴とする画像処理装置。
An image processing request unit that issues an image processing request including information for drawing an image to be newly displayed by executing a program;
A color value pixel plane that holds color information for each pixel of an image to be drawn and a Z value pixel plane that holds depth information from the viewpoint for each pixel are layered according to the multiple resolutions of the drawing target image A hierarchical data storage unit for storing the hierarchical color buffer and the hierarchical Z buffer,
An image processing unit that receives the image processing request, executes image processing, and updates the hierarchical color buffer and the hierarchical Z buffer;
The image processing unit
A drawing color buffer and a drawing Z buffer for recording data of a drawing target hierarchy and area read from the hierarchy color buffer and the hierarchy Z buffer, respectively;
Based on the image processing request, the hierarchy corresponding to the resolution and area of the image to be newly displayed and the area of the hierarchy color buffer and the hierarchy Z buffer are specified as the drawing target hierarchy and area , respectively. reads the data to the drawing color buffer and the drawing Z buffer, performs image processing operations on the basis of the image processing request, a drawing unit that updates the read data,
The data of the original hierarchy and area in the hierarchical color buffer and the hierarchical Z buffer are updated with the updated data in the drawing color buffer and the drawing Z buffer, and the updated data is subjected to scaling processing. A hierarchical data update unit that updates the data in the corresponding area of the other hierarchy ,
An image processing apparatus comprising:
前記階層カラーバッファおよび前記階層Zバッファは、各階層の画素平面を所定のサイズに分割してなるタイルデータと、各階層の分割後の個々の領域であるタイル領域と当該タイル領域が描画対象となったときに用いる前記タイルデータとを対応づけたインデックスデータと、で構成され、
前記階層データ更新部は、描画対象領域を含むタイル領域ごとにタイルデータを各階層に対して新たに生成し、前記インデックスデータにおいて描画対象領域を含むタイル領域に対応づけられたタイルデータを、新たなタイルデータとすることにより、各階層のデータを更新することを特徴とする請求項1に記載の画像処理装置。
The hierarchical color buffer and the hierarchical Z buffer include tile data obtained by dividing a pixel plane of each hierarchy into a predetermined size, a tile area that is an individual area after division of each hierarchy, and the tile area as a drawing target. Index data that associates the tile data to be used when
The layer data update unit newly generates tile data for each layer including a drawing target region for each layer, and newly adds tile data associated with the tile region including the drawing target region in the index data. The image processing apparatus according to claim 1, wherein the data of each layer is updated by using the tile data.
前記画像処理部は、前記描画部による画像処理演算に際し、前記描画用カラーバッファおよび前記描画用Zバッファの画素値が更新されたか否かの情報を画素ごとに保持する画素更新用マスクをさらに備え、
前記階層データ更新部は、前記画素更新用マスクを参照し、前記タイル領域のうち更新された画素を含むタイル領域を特定し、当該タイル領域のタイルデータを生成することを特徴とする請求項2に記載の画像処理装置。
The image processing unit further includes a pixel update mask that holds, for each pixel, information on whether or not the pixel values of the drawing color buffer and the drawing Z buffer have been updated in the image processing calculation by the drawing unit. ,
The hierarchical data update unit refers to the pixel update mask, specifies a tile area including an updated pixel in the tile area, and generates tile data of the tile area. An image processing apparatus according to 1.
前記描画部は、前記階層カラーバッファおよび前記階層Zバッファにおいて描画対象の階層に描画対象領域に対応するタイルデータが存在しないとき、当該階層より解像度の小さい別の階層の対応する領域を拡大して前記描画用カラーバッファおよび前記描画用Zバッファに読み出して更新し、
前記階層データ更新部は、前記描画対象領域を含む描画対象の階層のタイル領域と当該タイル領域に対し新たに生成したタイルデータとを対応づけたデータを前記インデックスデータに追加することを特徴とする請求項2または3に記載の画像処理装置。
When there is no tile data corresponding to the drawing target area in the drawing target hierarchy in the hierarchical color buffer and the hierarchical Z buffer, the drawing unit enlarges a corresponding area of another hierarchy having a resolution lower than that of the hierarchy. Read and update the drawing color buffer and the drawing Z buffer,
The hierarchical data update unit adds data that associates a tile area of a drawing target hierarchy including the drawing target area with tile data newly generated for the tile area to the index data. The image processing apparatus according to claim 2.
前記階層データ更新部は、描画対象の階層より高い解像度の階層における描画対象の領域に一つのタイル領域全体が含まれていたら、前記インデックスデータにおいて当該タイル領域に対応づけられたタイルデータを削除することを特徴とする請求項4に記載の画像処理装置。   The hierarchical data update unit deletes tile data associated with the tile area in the index data when the entire area to be rendered is included in the area to be rendered in a hierarchy having a higher resolution than the hierarchy to be rendered. The image processing apparatus according to claim 4. 前記インデックスデータは、前記階層カラーバッファおよび前記階層Zバッファの画素平面とそれに垂直な解像度の軸によって定義される仮想空間において前記階層カラーバッファおよび前記階層Zバッファで構成される階層構造体を分割してなる領域ごとに、前記タイル領域ごとのインデックスデータをまとめたインデックスブロックの形式を有することを特徴とする請求項2から5のいずれかに記載の画像処理装置。   The index data is obtained by dividing a hierarchical structure including the hierarchical color buffer and the hierarchical Z buffer in a virtual space defined by a pixel plane of the hierarchical color buffer and the hierarchical Z buffer and a resolution axis perpendicular thereto. 6. The image processing apparatus according to claim 2, wherein each area has an index block format in which index data for each tile area is collected. 前記インデックスデータは、前記階層構造体を分割してなる領域と、それに対応する前記インデックスブロックとを対応づけたヘッダデータを含み、
前記描画部は、描画対象の領域の情報に基づき前記ヘッダデータを検索し、当該描画対象の領域を含む、前記階層構造体を分割してなる領域を特定したうえ、それに対応づけられた前記インデックスブロックを参照することにより、前記階層カラーバッファおよび前記階層Zバッファから前記タイルデータの単位でデータを読み出すことを特徴とする請求項6に記載の画像処理装置。
The index data includes header data in which an area formed by dividing the hierarchical structure is associated with the index block corresponding to the area.
The drawing unit searches the header data based on information on a drawing target area, specifies an area obtained by dividing the hierarchical structure including the drawing target area, and the index associated with the area. The image processing apparatus according to claim 6, wherein data is read in units of the tile data from the hierarchical color buffer and the hierarchical Z buffer by referring to a block.
前記階層カラーバッファおよび前記階層Zバッファは、前記タイル領域と、双方のタイルデータとを対応づけた一つのインデックスデータを共有することを特徴とする請求項2から7のいずれかに記載の画像処理装置。   The image processing according to claim 2, wherein the hierarchical color buffer and the hierarchical Z buffer share one index data in which the tile area is associated with both tile data. apparatus. 前記階層データ更新部は、前記描画部とは独立に前記階層データ記憶部に接続されていることを特徴とする請求項1から8のいずれかに記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the hierarchical data update unit is connected to the hierarchical data storage unit independently of the drawing unit. 一度に読み出すタイルデータに対し与えられる連続したアドレスと、前記描画部が前記階層カラーバッファおよび前記階層Zバッファからタイルデータ読み出す際に各タイルデータに対し割り当てたアドレスとを対応づけたアドレス変換テーブルを参照し、前記描画部が前記階層カラーバッファおよび前記階層Zバッファからデータを読み出す際に指定したアドレスを、前記連続したアドレスに変換するメモリコントローラをさらに備えたことを特徴とする請求項2から9のいずれかに記載の画像処理装置。   An address conversion table in which consecutive addresses given to tile data read at one time are associated with addresses assigned to each tile data when the drawing unit reads tile data from the hierarchical color buffer and the hierarchical Z buffer. 10. The memory device according to claim 2, further comprising: a memory controller configured to convert addresses designated when the drawing unit reads data from the hierarchical color buffer and the hierarchical Z buffer into the continuous addresses. An image processing apparatus according to any one of the above. 画像処理装置のメインプロセッサがプログラムを実行し、表示装置に新たに表示すべき画像の描画のための情報を含む画像処理要求を発行するステップと、
前記画像処理装置のグラフィックプロセッサが前記画像処理要求を受け付け画像処理を実行し、メモリに格納され、前記表示装置における表示に用いる、描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と画素ごとの視点からの奥行き情報を保持するZ値画素平面とを描画対象画像の複数の解像度に対応させて階層化した、階層カラーバッファおよび階層Zバッファを更新するステップと、を含み、
前記階層カラーバッファおよび前記階層Zバッファを更新するステップは、前記グラフィックプロセッサが、
前記画像処理要求に基づき、前記階層カラーバッファおよび前記階層Zバッファのうち、前記新たに表示すべき画像の解像度および領域に対応する階層およびそのうちの領域のデータを、描画対象の階層および領域としてそれぞれ特定してそのデータを前記メモリから読み出し、内部の描画用カラーバッファおよび描画用Zバッファに書き込むステップと、
前記画像処理要求に基づき画像処理演算を行い前記描画用カラーバッファおよび前記描画用Zバッファのデータを更新するステップと、
前記描画用カラーバッファおよび前記描画用Zバッファにおける更新後のデータによって前記メモリに格納された、前記階層カラーバッファおよび前記階層Zバッファにおける元の階層および領域のデータを更新するとともに、前記更新後のデータにスケーリング処理を施すことにより、その他の階層の対応する領域のデータも更新するステップと、
を含むことを特徴とする画像処理方法。
A step in which a main processor of the image processing device executes a program and issues an image processing request including information for drawing an image to be newly displayed on the display device ;
The graphic processor of the image processing device receives the image processing request, executes image processing, is stored in a memory, and is used for display in the display device, and holds color information for each pixel of the image to be drawn, and is a color value pixel plane And updating a hierarchical color buffer and a hierarchical Z buffer in which a Z-value pixel plane that holds depth information from the viewpoint for each pixel is hierarchized in correspondence with a plurality of resolutions of the drawing target image , and
The step of updating the hierarchical color buffer and the hierarchical Z buffer comprises:
Based on the image processing request, in the hierarchical color buffer and the hierarchical Z buffer, the hierarchy corresponding to the resolution and area of the image to be newly displayed and the data in the area are respectively set as the drawing target hierarchy and area. read from the specific to the memory the data, and writing the interior of the drawing color buffer and rendering Z buffer,
Performing an image processing operation based on the image processing request and updating data of the drawing color buffer and the drawing Z buffer;
Update the data of the original hierarchy and area in the hierarchical color buffer and the hierarchical Z buffer stored in the memory with the updated data in the drawing color buffer and the drawing Z buffer, and after the update Updating the data in the corresponding area of the other hierarchy by scaling the data of
An image processing method comprising:
プログラムを実行し新たに表示すべき画像の描画のための情報を含む画像処理要求を発行する機能と、
描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した階層カラーバッファおよび階層Zバッファをメモリに記憶する機能と、
前記画像処理要求を受け付け画像処理を実行し、前記階層カラーバッファおよび前記階層Zバッファを更新する機能と、をコンピュータに実現させることを特徴とするコンピュータプログラムであって、
前記階層カラーバッファおよび前記階層Zバッファを更新する機能は、
前記画像処理要求に基づき、前記階層カラーバッファおよび前記階層Zバッファのうち、前記新たに表示すべき画像の解像度および領域に対応する階層およびそのうちの領域のデータを、描画対象の階層および領域としてそれぞれ特定してそのデータを読み出し、描画用カラーバッファおよび描画用Zバッファに書き込む機能と、
前記画像処理要求に基づき画像処理演算を行い前記描画用カラーバッファおよび前記描画用Zバッファのデータを更新する機能と、
前記描画用カラーバッファおよび前記描画用Zバッファにおける更新後のデータによって、前記階層カラーバッファおよび前記階層Zバッファにおける元の階層および領域のデータを更新するとともに、前記更新後のデータにスケーリング処理を施すことにより、その他の階層の対応する領域のデータも更新する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
A function for executing an image processing request including information for drawing a new image to be displayed;
A color value pixel plane that holds color information for each pixel of an image to be drawn and a Z value pixel plane that holds depth information from the viewpoint for each pixel are layered according to the multiple resolutions of the drawing target image A function of storing the hierarchical color buffer and hierarchical Z buffer in a memory;
A computer program that accepts the image processing request, executes image processing, and causes the computer to realize the function of updating the hierarchical color buffer and the hierarchical Z buffer,
The function of updating the hierarchical color buffer and the hierarchical Z buffer is:
Based on the image processing request, in the hierarchical color buffer and the hierarchical Z buffer, the hierarchy corresponding to the resolution and area of the image to be newly displayed and the data in the area are respectively set as the drawing target hierarchy and area. It reads the data specified by a function of writing the drawing color buffer and rendering Z buffer,
A function of performing image processing calculation based on the image processing request and updating data of the drawing color buffer and the drawing Z buffer;
The data of the original hierarchy and area in the hierarchical color buffer and the hierarchical Z buffer are updated with the updated data in the drawing color buffer and the drawing Z buffer, and the updated data is subjected to scaling processing. And the function to update the data in the corresponding area of other layers ,
A computer program for causing a computer to realize the above.
プログラムを実行し新たに表示すべき画像の描画のための情報を含む画像処理要求を発行する機能と、
描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した階層カラーバッファおよび階層Zバッファをメモリに記憶する機能と、
前記画像処理要求を受け付け画像処理を実行し、前記階層カラーバッファおよび前記階層Zバッファを更新する機能と、をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体であって、
前記階層カラーバッファおよび前記階層Zバッファを更新する機能は、
前記画像処理要求に基づき、前記階層カラーバッファおよび前記階層Zバッファのうち、前記新たに表示すべき画像の解像度および領域に対応する階層およびそのうちの領域のデータを、描画対象の階層および領域としてそれぞれ特定してそのデータを読み出し、描画用カラーバッファおよび描画用Zバッファに書き込む機能と、
前記画像処理要求に基づき画像処理演算を行い前記描画用カラーバッファおよび前記描画用Zバッファのデータを更新する機能と、
前記描画用カラーバッファおよび前記描画用Zバッファにおける更新後のデータによって、前記階層カラーバッファおよび前記階層Zバッファにおける元の階層および領域のデータを更新するとともに、前記更新後のデータにスケーリング処理を施すことにより、その他の階層の対応する領域のデータも更新する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
A function for executing an image processing request including information for drawing a new image to be displayed;
A color value pixel plane that holds color information for each pixel of an image to be drawn and a Z value pixel plane that holds depth information from the viewpoint for each pixel are layered according to the multiple resolutions of the drawing target image A function of storing the hierarchical color buffer and hierarchical Z buffer in a memory;
A recording medium storing a computer program, wherein the computer implements a function of accepting the image processing request, executing image processing, and updating the hierarchical color buffer and the hierarchical Z buffer,
The function of updating the hierarchical color buffer and the hierarchical Z buffer is:
Based on the image processing request, in the hierarchical color buffer and the hierarchical Z buffer, the hierarchy corresponding to the resolution and area of the image to be newly displayed and the data in the area are respectively set as the drawing target hierarchy and area. It reads the data specified by a function of writing the drawing color buffer and rendering Z buffer,
A function of performing image processing calculation based on the image processing request and updating data of the drawing color buffer and the drawing Z buffer;
The data of the original hierarchy and area in the hierarchical color buffer and the hierarchical Z buffer are updated with the updated data in the drawing color buffer and the drawing Z buffer, and the updated data is subjected to scaling processing. And the function to update the data in the corresponding area of other layers ,
The recording medium which recorded the computer program characterized by making a computer implement | achieve.
JP2009245798A 2009-10-26 2009-10-26 Image processing apparatus and image processing method Active JP5296656B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2009245798A JP5296656B2 (en) 2009-10-26 2009-10-26 Image processing apparatus and image processing method
RU2012121208/08A RU2519058C2 (en) 2009-10-26 2010-07-29 Device for creating image files, image processing device, method of creating image files, image processing method and image file data structure
BR112012009893-4A BR112012009893B1 (en) 2009-10-26 2010-07-29 devices and methods of image file generation and image processing, non-transient computer-readable recording media, and data structure of an image file
CN201080045762.3A CN102667864B (en) 2009-10-26 2010-07-29 Image file generation device, image processing device, image file generation method, image processing method
AU2010313045A AU2010313045B2 (en) 2009-10-26 2010-07-29 Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
PCT/JP2010/004809 WO2011052117A1 (en) 2009-10-26 2010-07-29 Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
US13/502,409 US8724914B2 (en) 2009-10-26 2010-07-29 Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009245798A JP5296656B2 (en) 2009-10-26 2009-10-26 Image processing apparatus and image processing method

Publications (2)

Publication Number Publication Date
JP2011090648A JP2011090648A (en) 2011-05-06
JP5296656B2 true JP5296656B2 (en) 2013-09-25

Family

ID=44108816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009245798A Active JP5296656B2 (en) 2009-10-26 2009-10-26 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP5296656B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164452B (en) * 2011-12-15 2016-04-13 深圳市腾讯计算机系统有限公司 The method of picture-storage and reading, Apparatus and system
JP5864474B2 (en) * 2013-05-01 2016-02-17 株式会社ディジタルメディアプロフェッショナル Image processing apparatus and image processing method for processing graphics by dividing space
KR102651126B1 (en) * 2016-11-28 2024-03-26 삼성전자주식회사 Graphic processing apparatus and method for processing texture in graphics pipeline
US10453241B2 (en) * 2017-04-01 2019-10-22 Intel Corporation Multi-resolution image plane rendering within an improved graphics processor microarchitecture
CN111681294B (en) * 2020-05-07 2023-06-13 天津市测绘院有限公司 Network tile map high-performance rendering method and system based on edge calculation
JPWO2022113246A1 (en) * 2020-11-26 2022-06-02
CN118626302A (en) * 2024-08-12 2024-09-10 智马达(浙江)软件科技有限公司 Positioning method, system, equipment and medium for display errors of application layer of vehicle-mounted device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081698A (en) * 1989-02-14 1992-01-14 Intel Corporation Method and apparatus for graphics display data manipulation
JPH07131658A (en) * 1993-10-29 1995-05-19 Canon Inc Image communication equipment
US6331856B1 (en) * 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US6535644B1 (en) * 1999-07-01 2003-03-18 Koninklijke Philips Electronics N.V. Hierarchical foveation based on wavelets
JP4467267B2 (en) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント Image processing method, image processing apparatus, and image processing system

Also Published As

Publication number Publication date
JP2011090648A (en) 2011-05-06

Similar Documents

Publication Publication Date Title
WO2011052117A1 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
JP5368254B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure of image file
JP5037574B2 (en) Image file generation device, image processing device, image file generation method, and image processing method
JP5419822B2 (en) Image processing apparatus, image display apparatus, image processing method, and data structure of image file
JP5296656B2 (en) Image processing apparatus and image processing method
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
JP4076502B2 (en) Efficient graphics state management for zone rendering
US8878869B2 (en) Image processing device and image processing method
US9047680B2 (en) Information processing apparatus, information processing method, and data structure of content files
US20120026179A1 (en) Image processing division
JP5331432B2 (en) Image processing apparatus and image processing method
JP4809412B2 (en) Image processing apparatus and image processing method
JP5520890B2 (en) Image processing apparatus, image data generation apparatus, image processing method, image data generation method, and data structure of image file
JP5467083B2 (en) Image processing apparatus, image processing method, and data structure of image
JPH0488572A (en) Picture processor
JP2010134841A (en) Method and apparatus for processing structured document and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130613

R150 Certificate of patent or registration of utility model

Ref document number: 5296656

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250