JP5296656B2 - Image processing apparatus and image processing method - Google Patents
Image processing apparatus and image processing method Download PDFInfo
- 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
Links
Images
Landscapes
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
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
画像が高精細化しても、データサイズを小さく抑えること、高速に描画することは、画像を応答性良く表示するためには常に重要な課題である。また、画像の一部などを修正する必要が生じた場合、上述のテクスチャマッピングなどデータ構造を工夫する技術を適用したとしても、一度構築したデータ構造を全て更新し直す必要があるなど、更新処理が煩雑になりやすいという問題があった。 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
本実施の形態において処理対象とする画像のデータは、原画像を複数段階に縮小して生成した異なる解像度の画像からなる階層構造を有する。各階層の画像は一又は複数のタイル画像に分割する。たとえば最も解像度の低い画像は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
表示装置12は、情報処理装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。情報処理システム1において、情報処理装置10は、ケーブル14を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データを含むコンテンツなどをダウンロードして取得してもよい。なお情報処理装置10は、無線通信により外部ネットワークに接続してもよい。
The
情報処理装置10は、ユーザからの要求に応じて、表示装置12のディスプレイに表示する画像の拡大/縮小処理や、上下左右方向への移動処理など、表示領域を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、表示領域の変更要求信号を情報処理装置10に送信する。
In response to a request from the user, the
図2は、入力装置20の外観構成を示す。入力装置20は、ユーザが操作可能な操作手段として、十字キー21、アナログスティック27a、27bと、4種の操作ボタン26を備える。4種の操作ボタン26は、○ボタン22、×ボタン23、□ボタン24および△ボタン25から構成される。
FIG. 2 shows an external configuration of the
情報処理システム1において、入力装置20の操作手段には、表示画像の拡大/縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大/縮小要求の入力機能は、右側のアナログスティック27bに割り当てられる。ユーザはアナログスティック27bを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示領域の移動要求の入力機能は、十字キー21に割り当てられる。ユーザは十字キー21を押下することで、十字キー21を押下した方向への移動要求を入力できる。なお、画像変更要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック27aに、スクロール要求の入力機能が割り当てられてもよい。
In the
また後に述べる各種機能を実現するため、入力装置20にはさらに、画像に表示されたカーソルを移動させたり、ファイルやコマンドを選択したりする機能も割り当てる。あるいは入力装置20は、ポインティングデバイス、マウス、キーボード、タッチパネルなど一般的な入力装置で実現してもよい。上述したような機能の割り当ては、入力装置20の種類によって適宜決定してよい。
In addition, in order to realize various functions described later, the
入力装置20は、入力された表示領域変更要求信号などを情報処理装置10に伝送する機能をもち、本実施の形態では情報処理装置10との間で無線通信可能に構成される。入力装置20と情報処理装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置20は、情報処理装置10とケーブルを介して接続して、表示領域変更要求信号などを情報処理装置10に伝送してもよい。
The
図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
図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
情報処理装置10において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の情報処理装置10は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばS3TC形式、JPEG形式、JPEG2000形式の圧縮データをデコード可能とする。
In the
階層データの階層構造は、図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
図4は情報処理装置10の構成を示している。情報処理装置10は、無線インタフェース40、スイッチ42、表示処理部44、ハードディスクドライブ50、記録媒体装着部52、ディスクドライブ54、メインメモリ60、バッファメモリ70および制御部100を有して構成される。表示処理部44は、表示装置12のディスプレイに表示するデータをバッファするフレームメモリを有する。
FIG. 4 shows the configuration of the
スイッチ42は、イーサネットスイッチ(イーサネットは登録商標)であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ42は、ケーブル14を介して外部ネットワークに接続し、サーバからコンテンツのデータなどを受信できるように構成される。またスイッチ42は無線インタフェース40に接続し、無線インタフェース40は、所定の無線通信プロトコルで入力装置20と接続する。入力装置20においてユーザから入力された信号は、無線インタフェース40、スイッチ42を経由して、制御部100に供給される。
The
ハードディスクドライブ50は、データを記憶する記憶装置として機能する。スイッチ42を介して受信された階層データは、ハードディスクドライブ50に格納される。記録媒体装着部52は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ54は、読出専用のROMディスクが装着されると、ROMディスクを駆動して認識し、データを読み出す。ROMディスクは、光ディスクや光磁気ディスクなどであってよい。階層データはこれらの記録媒体に格納されていてもよい。
The
制御部100は、マルチコアCPUを備え、1つのCPUの中に1つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはPPU(PowerPC Processor Unit)と呼ばれ、残りのプロセッサコアはSPU(Synergistic Processor Unit)と呼ばれる。
The
制御部100は、メインメモリ60およびバッファメモリ70に接続するメモリコントローラを備える。PPUはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各SPUに効率的に割り当てる。なお、PPU自身がタスクを実行してもよい。SPUはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ70として使用されてもよい。
The
メインメモリ60およびバッファメモリ70は記憶装置であり、RAM(ランダムアクセスメモリ)として構成される。SPUは制御ユニットとして専用のDMA(Direct Memory Access)コントローラをもち、メインメモリ60とバッファメモリ70の間のデータ転送を高速に行うことができ、また表示処理部44におけるフレームメモリとバッファメモリ70の間で高速なデータ転送を実現できる。本実施の形態の制御部100は、複数のSPUを並列動作させることで、高速な画像処理機能を実現する。表示処理部44は、表示装置12に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
The
本実施の形態の情報処理装置10は、表示画像の拡大/縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、圧縮画像データの一部をハードディスクドライブ50からメインメモリ60にロードしておく。また、メインメモリ60にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ70に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。
The
図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
この階層データのうち、一部の画像データを圧縮した状態のままメインメモリ60にロードする(S10)。ここでロードする領域は、現在の表示画像の仮想空間における近傍や、画像の内容、ユーザの閲覧履歴等に基づいて、高頻度で表示要求がなされると予測される領域など、あらかじめ定めた規則によって決定する。ロードは、画像変更要求がなされたときのみならず、例えば所定の時間間隔で随時行う。これによりロード処理が一時期に集中しないようにする。
Among the hierarchical data, a part of the image data is loaded into the
次に、メインメモリ60に格納されている圧縮画像データのうち、表示に必要な領域のタイル画像、または必要と予測される領域のタイル画像のデータをデコードし、バッファメモリ70に格納する(S12)。バッファメモリ70は、少なくとも2つのバッファ領域72、74を含む。各バッファ領域72、74のサイズは、フレームメモリ90のサイズよりも大きく設定され、入力装置20から表示領域変更要求信号が入力された場合に、ある程度の量の変更要求に対しては、バッファ領域72、74に展開した画像データで表示画像を生成できるようにする。
Next, among the compressed image data stored in the
バッファ領域72、74の一方は、表示画像の生成に用いる画像を保持するための表示用バッファであり、他方は、以後、必要と予測される画像を準備するためのデコード用バッファである。図5の例では、バッファ領域72が表示用バッファ、バッファ領域74がデコード用バッファで、表示領域68が表示されているものとする。後述する先読み処理によってデコード用バッファに格納する画像は、表示用バッファに格納されている画像と同一階層の画像でもよいし、縮尺の異なる別階層の画像でもよい。
One of the
次に、表示用バッファであるバッファ領域72に格納された画像のうち表示領域68の画像を、フレームメモリ90に描画する(S14)。この間に、新たな領域の画像が必要に応じてデコードされ、バッファ領域74に格納される。格納が完了したタイミングや表示領域68の変更量などに応じて、表示用バッファとデコード用バッファを切り替える(S16)。これにより、表示領域の移動や縮尺率の変更などに対し表示画像をスムーズに切り替えることができる。
Next, the image in the
図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
表示画像の縮尺率が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
なお以上は深さ方向の先読み処理について説明したが、上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ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
図7は本実施の形態において、上述の階層データを表示する機能を有する制御部100aの構成を詳細に示している。制御部100aは、入力装置20からユーザが入力した情報を取得する入力情報取得部102、新たに表示すべき領域を含むタイル画像を特定するタイル画像特定部110、新たにロードすべき画像データを決定するロードブロック決定部106、必要な画像ブロックをハードディスクドライブ50からロードするロード部108を含む。制御部100aはさらに、圧縮画像データをデコードするデコード部112、および表示画像を描画する表示画像処理部114を含む。
FIG. 7 shows in detail the configuration of the
図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
入力情報取得部102は、ユーザが入力装置20に対して入力した、画像表示の開始/終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。タイル画像特定部110は、現在の表示領域のフレーム座標とユーザが入力した表示領域変更要求の情報に従い、新たに表示すべき領域を含むタイル画像を特定する。そして当該タイル画像が既にメインメモリ60にロードされていれば、デコード部112に、ロードされていなければロードブロック決定部106に、当該情報を供給する。タイル画像特定部110はその時点の表示画像の描画に必要な画像の他、以後必要と予測されるタイル画像も特定してよい。
The input
ロードブロック決定部106は、タイル画像特定部110からの情報に基づき、ハードディスクドライブ50からメインメモリ60へ新たにロードすべき、複数のタイル画像からなる画像ブロックを特定し、ロード部108にロード要求を発行する。ロードブロック決定部106は、ロード部108がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが表示領域変更要求を行った際など、所定のタイミングでロード要求を行ってもよい。ロード部108は、ロードブロック決定部106からの要求に従い、実際のロード処理を行う。
Based on the information from the tile
デコード部112は、タイル画像特定部110から取得したタイル画像の情報に基づき、メインメモリ60からタイル画像のデータを読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。表示画像処理部114は、新たな表示画像のフレーム座標に基づき、バッファメモリ70の表示用バッファから対応する画像データを読み出し、表示処理部44のフレームメモリに描画する。
The
次に、これまで述べた階層構造を有する画像データの表示技術において、画像データをより効率的に構築し出力するための実施の形態について説明する。図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
ヘッダ150は、図3に示したような、仮想空間におけるピラミッド状の階層構造体を分割してなる複数の領域を定義し、領域ごとにインデックスブロック160のいずれかへのポインタが設定されたデータである。図8に示すヘッダ150において三角形151は階層構造体を横から見た形状を示しており、水平な破線は各階層の画像154a、154b、154c、154d、154e、・・・を示している。このような階層構造体を、例えば実線で示すように領域分割し、領域152a、領域152b、領域152cなどの領域を定義する。ヘッダ150では原則として、各領域に対してインデックスブロック160のいずれかへのポインタが設定される。
The
図8の例は、領域152aに対しインデックスブロック160aへのポインタ(矢印A)、領域152bに対しインデックスブロック160bへのポインタ(矢印B)、領域152cに対しインデックスブロック160cへのポインタ(矢印C)が設定されている様子を示している。ただし後に述べるように、ヘッダで定義される領域の一部に対して特定のインデックスブロックを指さないヌルポインタを設定してもよい。
In the example of FIG. 8, the pointer to the
インデックスブロック160は、ヘッダ150で定義された構造体の領域ごとに生成され、各領域に属する複数階層の画像上の位置に対しタイル画像170のいずれかへのポインタが設定されるデータである。図8に示すように、ヘッダ150における一つの領域に対応する一つのインデックスブロックは、当該領域に属する、複数階層の画像の少なくとも一部の領域のデータを含む。同図の例では、領域152aに対応するインデックスブロック160aは、領域152aに属する2階層分の画像154a、154b全体のデータを保持する。領域152bに対応するインデックスブロック160bは、領域152bに属する3階層分の画像154c、154d、154e全体のデータを保持する。
The
領域152cに対応するインデックスブロック160cは、領域152cに属する3階層分の画像154f、154g、154hの一部の領域のデータを保持する。そして各階層の画像平面をタイル画像のサイズに分割して生成したタイル領域ごとに、当該タイル領域の実際の画像データであるタイル画像170のいずれかを指すポインタを保持する。ただし後述するように、一つのタイル領域の描画を複数の情報を用いて行うようにした場合は、一つのタイル領域が複数のタイル画像を指すポインタを保持してもよい。同図において各インデックスブロック160a、160b、160にそれぞれ示される3平面は、対応する領域に属する階層に対応し、各階層上の小さい矩形のそれぞれがタイル領域を示している。
The
図8の例は、インデックスブロック160bにおいて、タイル領域164aに対しタイル画像170aへのポインタ(矢印D)が設定され、タイル領域164bに対しタイル画像170bへのポインタ(矢印E)が設定されている様子を示している。ただし後に述べるように、インデックスブロックで定義されるタイル領域の一部は特定のタイル画像へのポインタを設定せずヌルポインタとしてもよい。タイル画像170は、圧縮されたタイル画像のデータである。このように階層データを構成することにより、タイル画像特定部110は、表示すべき画像フレームの仮想空間におけるフレーム座標から、ヘッダ150、インデックスブロック160、と辿り、当該画像フレームに含まれるタイル画像170を特定することができる。
In the example of FIG. 8, in the
図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,
したがって、ヘッダ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
したがって一つのインデックスブロック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
一方、ヘッダ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
ヘッダ150における領域152cは第5階層、第6階層、第7階層の3階層の画像154f、154g、154hを含むが、これらの画像は1つのインデックスブロック160で定義できるタイル領域の数より多いタイル画像からなるため、図8に示すように画像平面を分割することにより、各階層の一部の領域をインデックスブロック160cの第0階層、第1階層、第2階層にそれぞれ対応させる。各インデックスブロックに属する複数階層の画像は解像度の異なる同一の画像領域となるように領域分割する。
An
なお図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
制御部100bは、ハードディスクドライブ50に格納された画像データを読み出し階層化する画像階層生成部120、各階層の画像をタイル画像に分割する画像分割部122、各階層の画像を解析し冗長性を検出する冗長性検出部124、冗長性を考慮して、ヘッダ、インデックスブロックのデータを生成するヘッダ・インデックスブロック生成部126、および最終的に出力する、タイル画像、ヘッダ、インデックスブロックを含む画像ファイルを生成する画像ファイル生成部128を含む。
The
画像階層生成部120は、ハードディスクドライブ50から、ファイル作成対象の画像のデータを読み出す。この画像データはある解像度を有する一枚の画像のデータでよい。処理対象の画像データは、図に示すように入力装置20を介してユーザが指定してもよいし、原画像を取得した別の機能ブロック(図示せず)からの要求を受け付けてもよい。画像階層生成部は120はさらに、読み出した画像のデータを所定の解像度へ段階的に縮小した画像のデータを生成することにより、元の画像を含めた階層構造の画像データを生成する。
The image
画像分割部122は、各階層の画像を所定のサイズに分割してタイル画像のデータを生成する。生成したタイル画像はメインメモリ60に格納する。この際、各タイル画像が元の画像のどの位置の画像であるかを、識別番号を付与するなどして管理する。
The
冗長性検出部124は各階層の画像を解析することにより、同一階層内、および階層間で画像の冗長性を検出する。同一階層内での冗長性としては例えば、複数のタイル領域に渡って同じタイル画像のデータを用いることができる場合が考えられる。また階層間での冗長性としては、低解像度の階層の画像を拡大した画像と高解像度の階層の画像とで見た目の差が大きくない場合が考えられる。このように冗長性がある領域は、個々にタイル画像のデータを持たずとも、あるタイル画像のデータを流用することで表示が可能である。このようにすることで、画像データの圧縮を実現する。具体的な手法は後に述べる。
The
ヘッダ・インデックスブロック生成部126は、上述のヘッダおよびインデックスブロックのデータを作成する。冗長性が検出されない画像では上述のように、ヘッダで定義される全ての領域に対しインデックスブロックのいずれかへのポインタが設定され、さらにインデックスブロックで定義される全てのタイル領域に対し、タイル画像へのポインタが設定される。一方、冗長性を有する画像領域については、ヘッダあるいはインデックスブロックにヌルポインタを設定することでタイル画像のデータ共有を実現する。
The header / index
画像ファイル生成部128は、インデックスブロックにおいて設定されたポインタが指すタイル画像のデータを読み出し、順につなげることによって、最終的な画像データを生成する。そして画像データ、ヘッダ、インデックスブロックを含む画像ファイルを生成して、最終的な出力データとする。上述のように、画像の冗長性を検出して、複数の領域の描画に一つのタイル画像のデータを用いるようにすることにより、画像データのサイズを効率的に圧縮することができる。本実施の形態では、解像度の異なる同一の画像を画像データに含むため、異なる階層の画像であっても同じタイル画像のデータを利用することによってデータの高率圧縮が可能である。
The image
図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
同図において画像180aおよび画像180bには、楕円形と三角形の図形が描かれ、それ以外の領域は背景として単色に塗りつぶされているとする。そのような画像の各領域から切り出されたタイル画像170のデータは、本来の画像上の並びと独立してメインメモリ60などに保持しておく。ここで画像180aおける単色の塗りつぶし領域であるタイル領域「4」は、そこから切り出されたタイル画像「4」と対応する。このようなとき、インデックスブロック160において、タイル領域「4」に対しタイル画像「4」へのポインタを設定する。
In the figure, it is assumed that an
画像180bは、画像180aの高解像度画像であるから、2つの画像の各タイル領域の対応関係は拡大率によって容易に導出できる。同図では例えば、画像180aのタイル領域「4」と、画像180bのタイル領域「15」、「16」、「19」、「20」が対応する。したがって、画像180aのタイル領域「4」が単色の塗りつぶし領域であれば、画像180bのタイル領域「15」、「16」、「19」、「20」は全て塗りつぶし領域であることが特定できる。すなわちこれらの領域の表示にはタイル画像「4」があれば済むことになる。
Since the
同様に、画像180aを画像180bの解像度まで拡大したときに塗りつぶし領域となる領域を、画像180aを走査することによって判別すると、タイル領域「3」の下半分の領域、すなわち画像180bのタイル領域「17」、「18」が塗りつぶし領域であることがわかる。したがってこれらの領域もタイル画像「4」を用いることにより表示することが可能である。このようにタイル画像を共有することにより、タイル画像のデータ圧縮が可能となる。さらに後に述べるように、低解像度のタイル画像によって表示可能な高解像度の画像の領域は特定のポインタを持たないようにすることで、ヘッダやインデックスブロックのデータ圧縮も可能となる。
Similarly, when the area that becomes the filled area when the
本実施の形態で用いる画像データは、複数の解像度の同一の画像を処理対象とするため、上記の冗長性検出処理を最も小さい解像度の画像から順に繰り返すことにより、高解像度の大きなサイズの画像についても、計算負荷を抑えて冗長性を有する領域を特定することができる。なお上述の説明では単色の塗り潰し領域を検出して、同じ塗りつぶし領域でタイル画像のデータを共有する例を述べたが、同様の処理は、およそ単色の領域、ランダムな模様や繰り返しの模様のみの領域などでも有効である。これらの領域の検出は、領域ごとのカラーヒストグラムや周波数解析などによって低解像度の画像から実施していく。 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
しかし元の画像が写真などで、画像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
図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
このようなヘッダ150aを有する階層データにおいて画像領域156を表示する場合、当該画像を含む領域はヌルポインタとなっている。この場合、階層データの仮想空間を、画像が縮小される方向に辿っていき、同じ画像領域156の縮小画像を含み有効なポインタが設定されている領域を探索する(矢印F)。同図においては領域152dに有効なポインタが設定されているため、当該ポインタが指すインデックスブロック160dのデータを取得する(矢印G)。
When the
そしてインデックスブロック160dがデータを保持する階層のうち、最も解像度の大きい第2階層において画像領域156を含むタイル領域を特定し、それに対応づけられたポインタを取得する。画像領域156が領域152dの第2階層の画像平面上のどこに位置するかは、階層データにおける各階層の縮尺率によって容易に計算できるため、上記のタイル領域の特定はそれに基づき実施する。
The
そして取得したポインタが指すタイル画像170cのデータを取得し(矢印H)、それを用いて画像領域156の表示画像を生成する。ここで画像領域156がタイル画像のサイズを有するとすると、画像領域156を描画するには同図に示すように、縮小画像であるタイル画像170cの一部の領域172を拡大する。上述のとおり、画像領域156に対応する領域172の位置は、両者の縮尺率によって容易に計算できる。
Then, the data of the
このように、ヘッダ150aにおいてヌルポインタを定義可能とすることにより、ヘッダ150aが定義する全ての領域に対しインデックスブロックを用意する必要がなくなり、データの圧縮効率が向上する。なおヌルポインタを設定する領域は必ずしも高解像度側になくてもよく、図12に示すように、低解像度の領域と高解像度の領域に挟まれた領域152eに対し中抜けの状態でヌルポインタを設定することもできる。この場合、領域152eに含まれる画像を表示する際は、解像度の低い側の領域152fに属する階層の画像を拡大して表示し、表示画像の解像度が増加して領域152sに入ったら、当該領域に対して設定されたポインタが指すインデックスブロックを参照してタイル画像を取得する。
Thus, by making it possible to define a null pointer in the
このようにすることで、表示画像がある解像度を超えるとこれまでと異なる画像が表示されるようにすることができる。例えば解像度を上げると新聞紙面の漢字に対して振り仮名が出現したり、写真の背景に別の物が出現したり、といった表示上の演出が可能となる。なおこのように、ヘッダでは基本的に任意の領域に対してヌルポインタを設定することが可能であるが、階層構造体の頂点、すなわち解像度が最も小さい画像を含む領域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
図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
同図において画像領域158を表示する場合、まずヘッダ150bにおいて当該画像領域158を含む領域152hを特定し、当該領域152hに対して設定されたポインタが指すインデックスブロック160eを取得する(矢印I)。インデックスブロック160eがデータを保持する領域のうち、画像領域158に対応する、第2階層162gの画像中の領域に対しヌルポインタが設定されていた場合、同じインデックスブロック160eに属する階層を縮小方向に辿っていき、同じ画像領域158の縮小画像に対し有効なポインタが設定されている階層を探索する。
When displaying the
同図の例では、まず第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
このように、インデックスブロック160eにおいてヌルポインタを定義可能とすることにより、インデックスブロック160eで定義される全てのタイル領域に対しタイル画像へのポインタを定義せずに済み、タイル画像のデータ圧縮とともにインデックスブロック自体のデータ量を削減することができる。また、タイル画像が更新されても、インデックスブロック内での画像の拡大縮小関係は基本的には変化しないため、全てのタイル画像へのポインタを更新する必要がなくなり、更新処理を最小限に抑えることができる。
In this way, by making it possible to define a null pointer in the
ヘッダと同様、インデックスブロックにおいても、解像度が最も小さい第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
またヘッダと同様、インデックスブロックにおいても、ある画像領域について、高解像度の第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
このようにインデックスブロックでタイル画像の共有を定義する場合、ヘッダでインデックスブロックの共有を定義する場合に比べ、タイル画像単位で詳細な設定を行うことができる。なお図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
なお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
次に冗長性検出部124は、上述のように冗長性の有無を確認する(S58)。具体的には、N階層の画像を走査して、N+1階層の画像のタイル画像の大きさに対応する大きさの領域に単色で構成される領域があるか否かを確認する。これを解像度が高い階層の方向へ繰り返していく。冗長性検出部124はそのほか、N階層の画像をN+1階層の画像の大きさまで拡大した画像とN+1階層の画像との差分画像や、N+1階層の画像の周波数解析により、N+1階層の画像であってもN階層の画像と同程度の情報しか含まない領域があるか否かを確認する。確認手法は画像処理の分野で一般的に行われている手法を適宜適用してよい。
Next, the
次にヘッダ・インデックスブロック生成部126は、冗長性を加味してヘッダおよびインデックスブロックを作成する(S60)。具体的には、ヘッダで定義する領域ごと、低解像度側の領域に属する画像を拡大して表示できる場合は、当該領域に対してヌルポインタを設定し、その他の領域については対応するインデックスブロックを生成してそれぞれを指すポインタをヘッダに設定する。さらに各インデックスブロックにおいて、それに属する複数の階層の画像うち低解像度の画像を拡大して表示できる領域に対してはヌルポインタを設定し、それ以外の領域に対しては、当該領域から切り出したタイル画像へのポインタを設定する。
Next, the header / index
次に画像ファイル生成部128は、最終的に出力するための画像ファイルを作成する(S62)。ここで冗長性検出部124がS58で冗長性を検出しなかった場合は、S54で分割して生成されたタイル画像のデータを全てメインメモリ60より読み出し、S60で生成したヘッダおよびインデックスブロックとともに画像ファイルとする。冗長性が検出された場合は、S60で生成したインデックスブロックで設定されたポインタが指すタイル画像のデータのみをメインメモリ60より読み出し、S60で生成したヘッダおよびインデックスブロックとともに画像ファイルとする。
Next, the image
次に、このようにして生成した画像ファイルをもちいて画像を表示するときの動作を説明する。図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
まず表示装置12に画像の一部が表示された状態で、ユーザが入力装置20を介して表示領域の変更要求を入力すると、入力情報取得部102はそれを受け付ける(S70)。するとタイル画像特定部110は、要求される表示画像の変更量を導出し、それに基づき新たに表示すべきフレーム座標を決定する(S72)。表示画像の変更量は、仮想空間における上下左右方向の移動量および深さ方向の移動量であり、表示すべきフレーム座標は、それまでに表示されていた表示領域のフレーム座標と導出した変更量により決定できる。
First, when the user inputs a display area change request via the
次にタイル画像特定部110は、ヘッダを参照してフレーム座標が属する領域を特定し、当該領域に対しインデックスブロックへの有効なポインタ設定されているか否かを確認する(S74)。有効なポインタが設定されていたら(S74のY)、当該ポインタが指すインデックスブロックを取得する(S78)。ヌルポインタが設定されていたら(S74のN)、階層構造体を画像の縮小方向へ辿り、有効なポインタが設定されている領域を探索し、検出した領域に対して設定されているポインタが指すインデックスブロックを取得する(S76、S78)。
Next, the tile
さらにインデックスブロックにおいて、フレーム座標に対応する領域に対しタイル画像への有効なポインタが設定されているか否かを確認する(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
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
拡大が必要な場合(S92のY)、デコード部112はタイル画像特定部110から取得したフレーム座標に基づきタイル画像を拡大したうえ、必要な領域をバッファメモリ70に格納する(S94)。この処理は、該当タイル画像がデコード済み(S86のY)であっても同様に行う。そして拡大処理の有無に関わらず、表示画像処理部114は、当該タイル画像のうち新たに表示すべき領域をフレームメモリに描画する(S96)。描画処理には、要求される解像度に応じて、バッファメモリ70に格納されたデータを拡大、縮小する処理も含まれる。
When enlargement is necessary (Y in S92), the
次にヘッダおよびインデックスブロックにおけるポインタのデータ構造について説明する。例えば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
制御部100cは、修正対象の画像ファイルを取得する画像ファイル取得部318、修正によって更新される領域や更新部分の画像データなどからなる更新情報を取得する更新情報取得部320、更新後のタイル画像を生成するタイル画像生成部322、ヘッダおよびインデックスブロックを更新するヘッダ・インデックスブロック更新部324、修正中の画像を表示する表示画像制御部326、および修正後の画像ファイルを生成する画像ファイル生成部328を含む。
The
画像ファイル取得部318は、ユーザによる修正対象の画像の指定入力を受け付け、該当する画像ファイルをハードディスクドライブ50から読み出してメインメモリ60に格納する。この画像ファイルはこれまで説明したように、ヘッダ、インデックスブロック、タイル画像のデータを含む。更新情報取得部320は、ユーザが表示装置12に表示された修正対象の画像を見ながら、入力装置20を介して入力した更新情報を取得する。更新情報には上述のとおり、更新すべき領域とその領域における修正後の画像データなどが含まれる。具体例は後に述べる。
The image
タイル画像生成部322は、更新すべき領域に更新後の画像を当てはめた際に更新する必要が生じたタイル画像を特定し、新たなタイル画像を生成する。ここで、更新すべき領域があるタイル画像の一部にのみかかっている場合は、元のタイル画像をメインメモリ60から読み出し、更新すべき領域のみ上書きすることにより新たなタイル画像を生成する。あるタイル画像が全て更新すべき領域に含まれている場合は、修正後の画像を切り出すことによって新たなタイル画像を生成する。このとき、階層データを構成する全ての階層における更新すべき領域に対し新たなタイル画像を生成する。ただしユーザの指定によっては、特定の階層のみ更新するようにしてもよい。この場合、特定の解像度の範囲で異なる画像が表示される態様を実現できる。
The tile
生成したタイル画像はメインメモリ60に格納する。この際、画像ファイル取得部318がメインメモリ60に格納した元の画像データはそのままにしておき、新たに生成したタイル画像は別の記憶領域に格納する。次にヘッダ・インデックスブロック更新部324は、メインメモリ60に格納されたインデックスブロックにおいて、更新すべき領域に対して設定されたポインタを、新たに生成したタイル画像を指すように書き換える。また、当該領域に対応するインデックスブロックが存在しない場合は、新たにインデックスブロックを生成し、ヘッダにおけるヌルポインタの設定を、生成したインデックスブロックを指すポインタに書き換える。
The generated tile image is stored in the
表示画像制御部326は、図7で示した制御部100aに含まれる機能ブロックで構成してよいが、ここでは図示を省略している。表示画像制御部326は、図15で説明したのと同様の処理手順により修正対象の画像を表示するが、ユーザによる画像の修正に応じて上述のようにヘッダ、インデックスブロックが更新されていく。それに応じて、画像を描画する際に用いるタイル画像が新たなものに変化する。このようにすることで、表示画像を確認しながら画像を修正、改変することが可能になる。
The display
本実施の形態では、元のタイル画像のデータを更新せず別の記憶領域に新たに生成したタイル画像を追加し、インデックスブロックやヘッダによって参照先を変化させることにより画像を更新する。このようにすると、元のタイル画像のうち修正領域にあたるタイル画像のデータを検索して上書きする場合と比較して処理コストが低く、応答性よく修正途中の画像を表示させることができる。また、修正途中で元の画像に戻すことも容易にできる。 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
次に、上述の機構によって画像を修正、改変するときの各データに対する処理の具体例を説明する。図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
まず修正前において、ヘッダ150で定義される各領域は、インデックスブロック160のいずれかへのポインタ、あるいはヌルポインタが設定されている。そしてポインタが指すインデックスブロック160に属する複数の階層の各タイル領域に対し、破線の矢印によって示されるように、修正前に生成されていたタイル画像170eのいずれかへのポインタが設定されている。図17における修正前の画像190の右上の領域は単色の背景であるとすると、当該領域は一つのタイル画像を共有する。図18において多くの破線矢印が一つのタイル画像170fを指しているのはこれを表している。当然、その他の領域は個々のタイル画像へのポインタが設定されている。
First, before modification, each area defined by the
このような背景部分に、図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
次に、図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
このような画像に対し、図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
この例では高解像度画像による画像の修正は局所的なものであるため、更新対象の領域以外の領域を第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
タイル画像の共有には前述のとおり、ヘッダにおいて設定する手法とインデックスブロックにおいて設定する手法がある。一つのインデックスブロックでまとめられる階層数を固定とした場合、追加すべき第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
このような場合は、当該既存のインデックスブロックにおいて、第4階層154mの更新対象の領域に対して設定されているヌルポインタを、新たに生成したタイル画像へのポインタに更新する。更新対象の領域以外の領域は、ヌルポインタのままとする。低解像度の各階層についても同様に、インデックスブロックのポインタを更新する。
In such a case, in the existing index block, the null pointer set for the update target area of the
図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
ここで第4階層154mを追加する場合、まずヘッダ150において、当該階層を含む新たな領域を追加する。ただし図20に示すように、更新対象の領域を含む領域152jのみ有効なポインタを設定し、その他の領域はヌルポインタを設定する。さらに新たなインデックスブロック160gを生成し、領域152jに対して当該インデックスブロック160gへのポインタを設定する。追加する階層が第4階層154mのみであれば、新たに生成したインデックスブロック160gに属する3階層のうち、タイル画像へのポインタを設定するのは最も低解像度の一階層でよく、その他の階層は全領域に対しヌルポインタを設定する。
Here, when adding the
そして、新たに生成したインデックスブロック160gにおいて、更新対象の領域に含まれるタイル領域に対し、新たに生成したタイル画像170iのいずれかを指すようにポインタを設定する(一点鎖線矢印)。また既存のインデックスブロック160fも同様に、更新対象の領域に含まれるタイル領域に対し設定されたポインタが、新たに生成したタイル画像170iのいずれかを指すように更新する。なお最終的に画像ファイルを生成する際は、新たに生成したインデックスブロック160gは、元の画像ファイルの末尾に追加してもよいし、別のファイルとしてもよい。これにより更新前後の画像を表示することができる。
In the newly generated
次に、既存の画像に背景や描画領域など新たな領域を追加することにより画像のサイズを拡張する手順を説明する。図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
このような画像に対し新たな領域を追加する場合、各解像度に対応するサイズで各階層の画像に新たな領域を追加した階層データ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,
このように、画像に新たな領域を追加する場合、階層によっては元からあるタイル画像をそのまま利用できる。この性質を利用し、元からあるインデックスブロックはそのまま利用し、追加領域など必要な領域についてのみ新たなインデックスブロックを生成する。図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
破線は図21の第0階層154n、第1階層154o、第2階層154p、第3階層154q、第4階層154rを示しており、それぞれの階層において元のタイル画像を利用できる領域、および追加または追加によって更新すべき領域が決定され、図22に示すような構造となる。ヘッダで定義される領域は、階層構造体の頂点から順に生成されるため、このようにヘッダ150が変化すると領域の区切りに変化が生じる。
The broken lines indicate the
しかし後に述べるように領域の区切りを工夫することにより、図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
領域追加後は、追加する領域に対応する新たなインデックスブロック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
一方、ヘッダにおいて元から定義づけられていた領域は、領域の区切り方に変更がない場合は、設定されたポインタ、ひいてはそれが指し示すインデックスブロックをそのまま利用できる。そのためインデックスブロック内で設定される、タイル画像へのポインタを更新する必要がない。なお上述の例は画像の右および下の領域を追加する場合であるが、いずれの方向に画像を拡張する場合であっても、既存のインデックスブロックを拡張後も利用できるように領域分割を行うことにより、ヘッダ、インデックスブロックの変化を最小限に抑えることができる。 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
前述のとおりひとつのインデックスブロックが定義するタイル領域の数はインデックスブロックによらず等しく準備するが、第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
なお図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
ここで階層データ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
ここで階層データ232の頂点側にさらに1階層、追加した階層データ234に対しても、元から第1領域に属していた階層はそのままに、追加した階層を第1領域152pにさらに含める。この場合、第1領域152pのみ4階層となるが、それに対応するインデックスブロック160mで準備されているタイル領域は、第1領域152pのタイル画像の数より大きいため、4階層であってもタイル画像の情報はインデックスブロック160mで充足する。すると、それ以下の階層は最初の階層データ230のときに属していたのと同様の領域に属することができる。
Here, for the added
階層データ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
そしてそれ以下の階層は、最初の階層データ230のときに属していたのと同様の領域に属することができる。以上の変化を繰り返すことにより、階層データの頂点に階層を追加しても、可能な限りその他の領域に変化なく領域を定義することができ、ひいては既存のインデックスブロックをそのまま利用することができる。
The lower hierarchy can belong to the same area as that belonging to the
図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
この状態でユーザが表示装置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
次にヘッダ・インデックスブロック更新部324は、上述のように画像の更新内容によって適宜ヘッダ、インデックスブロックを更新する(S118)。すると表示画像制御部326は、新たに参照先となったタイル画像のデータを読み出し、デコードすることによって表示装置12の表示を更新する(S120)。S114からS120までの処理を、修正が終了し更新情報が得られなくなるまで繰り返す。
Next, the header / index
修正が終了したことをユーザからの入力などにより検知したら(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
修正中、ヘッダ、インデックスブロック、タイル画像は、既存のデータと別の記憶領域に格納しておく。そしてユーザが、直前の画像の更新を取り消す操作(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の構成をより詳細に示している。
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
制御部100はメインプロセッサ400とグラフィックプロセッサ402を含む。メインプロセッサは情報処理装置10において起動したアプリケーションプログラムを主に実行するとともに、情報処理装置10に含まれる他の機能ブロックの制御を行う。グラフィックプロセッサ402はメインプロセッサ400からの画像処理要求に従い画像処理を実行する。画像処理に必要なデータはメインメモリ60に格納され、グラフィックプロセッサ402はそれを読み出し適宜画像処理を行ったうえ、メインメモリ60などに結果を書き出すことにより画像処理を遂行する。
The
グラフィックプロセッサ402は、メインプロセッサ400からの画像処理要求に従い、メインメモリ60に格納されたモデルデータ418を用いてレンダリングを行い、同じくメインメモリ60に格納したカラーバッファ414およびZバッファ416を更新する。本実施の形態では図25に示すように、カラーバッファ414およびZバッファ416はいずれも階層データの構造とする。すなわち、描画対象の画像の画素ごとの色情報を保持するカラー値画素平面と、画素ごとの視点からの奥行き情報を保持するZ値画素平面とを、描画対象画像の複数の解像度に対応させて階層化した構造を有する。当該階層データは、実施の形態1で説明したように、ヘッダ、インデックスブロック、タイルデータによって構成してよい。ここでタイルデータは、各階層の画素平面を所定のサイズに分割したタイル領域ごとのデータである
The
グラフィックプロセッサ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
次に上記の構成を有する画像処理装置の、レンダリング時の動作を説明する。図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
するとグラフィックプロセッサ402のレンダリング部404は、モデルデータ418などに基づき、カラーバッファ414およびZバッファ416のうちレンダリング対象の階層および領域を特定する(S202)。次にレンダリング部404は、当該領域のデータをカラーバッファ414およびZバッファ416から読み出し、GPUカラーバッファ408およびGPUーZバッファ410からなるGPUバッファに敷き詰める(S204)。レンダリング対象の階層および領域からタイルデータを特定する手法は実施の形態1で述べたタイル画像の特定手法と同様に、ヘッダ、インデックスブロックの順で検索していく。したがって読み出しはタイルデータの単位で行う。
Then, the
このときレンダリング部404は、ダーティマスク412を初期化する(S206)。例えば各ピクセル値を「0」にセットする。そして、モデルデータ418を用いて一般的な手法でレンダリングを行い、GPUカラーバッファ408、GPUーZバッファ410を適宜更新するとともに、ダーティマスク412における更新対象のピクセル値を「1」に更新する(S208)。
At this time, the
そしてGPUカラーバッファ408、GPUーZバッファ410におけるレンダリング結果に基づき、メインメモリ60のカラーバッファ414およびZバッファ416の階層データを更新する(S210)。具体的にはまず、各階層データのうち、レンダリング対象の階層および領域において、更新対象のピクセルを含むタイル領域をダーティマスク412のピクセル値に基づき特定し、当該タイル領域のデータを、GPUカラーバッファ408、GPUーZバッファ410のレンダリング結果に基づき更新する。
Then, based on the rendering results in the
このとき実施の形態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
なお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
また複数のカラーバッファ間で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
アンチエイリアスの場合のみならず、階層データをレンダリングする場合は、レンダリング結果を各階層へ反映させるため、画像を拡大、縮小するスケーリング処理が頻繁に必要となる。スケーリング処理の都度、画像データをグラフィックプロセッサ、メインメモリ間で送受すると、両者間の転送バンド幅を圧迫する懸念がある。そこで本実施の形態では、図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
これにより、グラフィックプロセッサ520およびメインメモリ60は、レンダリング対象の解像度の画像のみをやりとりすればよく、メインメモリ60内の階層データにおける各階層へのレンダリング結果の反映は、スケーラ422がメインメモリ60内で行う。結果としてグラフィックプロセッサ520とメインメモリ60間の転送バンド幅の圧迫が防止でき、階層データのレンダリングが効率的に実施できる。なおスケーラ422はメインメモリ60に内蔵せず、グラフィックプロセッサ520とメインメモリ60間のバスとは別のバスでメインメモリ60に接続するようにしても同様の効果が得られる。
As a result, the graphic processor 520 and the
以上述べた本実施の形態は、一般的なグラフィックプロセッサを利用して実現することができる。ここで一般的なグラフィックプロセッサでは、内部のフレームバッファ、すなわち上述の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
このため、領域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
こうすることにより不連続なアドレスを割り振られた領域のレンダリングであっても、メインメモリ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
本実施の形態のように階層データのレンダリングを可能とすることにより、ヘッダ、インデックスブロックによるタイルデータへのランダムアクセス、ヘッダを分割して階層データごとのメモリコストを下げたことによる複数の階層データの同時処理、タイルデータの追加、削除、更新がレンダリングによって可能、といった特徴が得られる。これらの特徴は、ランダムアクセス、マルチテクスチャリング、レンダーターゲット、というテクスチャの要件と同等である。したがって、階層データをテクスチャと同等に扱うことが可能になり、階層データをコンピュータグラフィックスを用いた広範囲の用途に応用することができる。 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
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:
前記階層データ更新部は、描画対象領域を含むタイル領域ごとにタイルデータを各階層に対して新たに生成し、前記インデックスデータにおいて描画対象領域を含むタイル領域に対応づけられたタイルデータを、新たなタイルデータとすることにより、各階層のデータを更新することを特徴とする請求項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.
前記階層データ更新部は、前記画素更新用マスクを参照し、前記タイル領域のうち更新された画素を含むタイル領域を特定し、当該タイル領域のタイルデータを生成することを特徴とする請求項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.
前記階層データ更新部は、前記描画対象領域を含む描画対象の階層のタイル領域と当該タイル領域に対し新たに生成したタイルデータとを対応づけたデータを前記インデックスデータに追加することを特徴とする請求項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.
前記描画部は、描画対象の領域の情報に基づき前記ヘッダデータを検索し、当該描画対象の領域を含む、前記階層構造体を分割してなる領域を特定したうえ、それに対応づけられた前記インデックスブロックを参照することにより、前記階層カラーバッファおよび前記階層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値画素平面とを描画対象画像の複数の解像度に対応させて階層化した、階層カラーバッファおよび階層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.
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)
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)
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 |
-
2009
- 2009-10-26 JP JP2009245798A patent/JP5296656B2/en active Active
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 |