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

Image processing apparatus and image processing method Download PDF

Info

Publication number
JP5331432B2
JP5331432B2 JP2008255655A JP2008255655A JP5331432B2 JP 5331432 B2 JP5331432 B2 JP 5331432B2 JP 2008255655 A JP2008255655 A JP 2008255655A JP 2008255655 A JP2008255655 A JP 2008255655A JP 5331432 B2 JP5331432 B2 JP 5331432B2
Authority
JP
Japan
Prior art keywords
image
area
display
stored
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008255655A
Other languages
Japanese (ja)
Other versions
JP2010085779A (en
JP2010085779A5 (en
Inventor
徹悟 稲田
章男 大場
博之 勢川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2008255655A priority Critical patent/JP5331432B2/en
Application filed by Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to KR1020117009478A priority patent/KR101401336B1/en
Priority to EP09817381.8A priority patent/EP2330587B1/en
Priority to CN200980138067.9A priority patent/CN102165515B/en
Priority to PCT/JP2009/003043 priority patent/WO2010038337A1/en
Priority to US13/120,785 priority patent/US8878869B2/en
Publication of JP2010085779A publication Critical patent/JP2010085779A/en
Publication of JP2010085779A5 publication Critical patent/JP2010085779A5/ja
Application granted granted Critical
Publication of JP5331432B2 publication Critical patent/JP5331432B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To solve such a problem that sometimes an image for display is difficult to be displayed with a good responsiveness in accordance with an image change request from a user. <P>SOLUTION: Regions of absolute minimum including regions from x0 to x1 being not overlapped with an image 160 stored until now out of images 162 to be stored newly in a buffer memory are decoded, regions from x2 to x3 being unnecessary any longer out of images 160 already stored are overwritten (S70). Next, repeat images 166 in which intermediate images 164 made as the above are repeated in the horizontal direction are made temporarily (S72). When coordinates of boundaries of the intermediate images in the repeat images 166 are made 0, regions from -(x1 to x0) to (x2 to x1) are taken out, and they are stored newly in a buffer for decode (S74). <P>COPYRIGHT: (C)2010,JPO&amp;INPIT

Description

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

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

一方、高精細な写真などのディジタル画像から生成された複数の解像度のタイル画像を用いて、表示画像の拡大/縮小処理や、上下左右方向の移動処理を行う技術が提案されている。この画像処理技術では、原画像サイズを複数段階に縮小して異なる解像度の画像を生成し、各階層の画像を一又は複数のタイル画像に分割して、原画像を階層構造で表現する。通常、最も解像度の低い画像は1つのタイル画像で構成され、最も解像度の高い原画像は、最も多い数のタイル画像で構成される。画像処理装置は、表示画像の拡大処理または縮小処理時に、使用しているタイル画像を、異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行うようにしている。
米国特許第6563999号公報
On the other hand, a technique for enlarging / reducing a display image and moving up / down / left / right using a plurality of resolution tile images generated from a digital image such as a high-definition photograph has been proposed. In this image processing technique, an original image size is reduced in a plurality of stages to generate images with different resolutions, and images in each layer are divided into one or a plurality of tile images to represent the original image in a hierarchical structure. Usually, 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. The image processing apparatus quickly performs enlarged display or reduced display by switching the tile image being used to a tile image of a different hierarchy at the time of enlargement processing or reduction processing of the display image.
US Pat. No. 6,563,999

このような画像処理装置において、表示領域の移動や画像の拡大、縮小(以後、それらをまとめて「画像変更」と呼ぶ)をユーザが要求した場合、タイル画像のデータ読みだし、デコードなどの処理によって、新たな画像が出力されるまでに看過できない時間がかかる場合がある。   In such an image processing apparatus, when the user requests to move the display area or to enlarge or reduce the image (hereinafter collectively referred to as “image change”), processing such as reading of the tile image data and decoding is performed. Therefore, it may take time that cannot be overlooked before a new image is output.

本発明はこのような課題に鑑みてなされたものであり、その目的は、ユーザからの画像変更要求に対する応答性に優れた画像処理技術を提供することにある。   The present invention has been made in view of such a problem, and an object thereof is to provide an image processing technique excellent in responsiveness to an image change request from a user.

本発明のある態様は画像処理装置に関する。この画像処理装置は、ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理装置であって、要求に基づき必要な領域の圧縮画像データをメモリより読み出しデコードするデコード部と、デコード部がデコードした画像を格納するバッファメモリと、バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する表示画像処理部と、を備え、デコード部は、新たな画像をバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する重複領域取得部と、新たな画像のうち重複領域を除く部分領域を含む領域の圧縮画像データをデコードする部分領域デコード部と、それまで格納されていた画像のうち重複領域と、部分領域デコード部がデコードした部分領域とをつなげてバッファメモリに格納するデコード画像格納部と、を備えることを特徴とする。   One embodiment of the present invention relates to an image processing apparatus. This image processing apparatus is an image processing apparatus that displays an area in an image on a display in accordance with a user's request. The decoding section reads out and decodes compressed image data of a necessary area from a memory based on the request, and the decoding section decodes the image processing apparatus. And a display image processing unit that reads at least a part of the image stored in the buffer memory and draws a display area, and the decoding unit stores the new image in the buffer memory. In this case, an overlapping area acquisition unit that identifies an overlapping area between the previously stored image and the new image, and a partial area decoding that decodes compressed image data of the area including the partial area excluding the overlapping area of the new image Part and the overlapping area of the images stored so far and the partial area decoded by the partial area decoding unit Characterized in that it comprises a decoding image storage unit for storing in the buffer memory.

本発明の別の態様は画像処理方法に関する。この画像処理方法は、ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理方法であって、要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定するステップと、新たな画像のうち重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードするステップと、それまで格納されていた画像のうち重複領域と、新たにデコードした部分領域領域とをつなげてバッファメモリに格納するステップと、バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画するステップと、を含むことを特徴とする。   Another embodiment of the present invention relates to an image processing method. This image processing method is an image processing method for displaying an area in an image on a display in accordance with a user's request. When the compressed image data of a necessary area is newly decoded and stored in a buffer memory based on the request, A step of identifying an overlapping area between the image stored up to and the new image, a step of reading out the compressed image data of the area including the partial area excluding the overlapping area from the new image, and decoding the compressed image data, A step of connecting the overlapping area of the stored image and the newly decoded partial area area to store in the buffer memory, and a step of reading at least a part of the image stored in the buffer memory and drawing an area to be displayed It is characterized by including these.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   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 having excellent responsiveness to an image change request from a user.

図1は、本発明の実施の形態にかかる画像処理システム1の使用環境を示す。画像処理システム1は、画像処理ソフトウェアを実行する画像処理装置10と、画像処理装置10による処理結果を出力する表示装置12とを備える。表示装置12は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。表示装置12は、画像処理装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。画像処理システム1において、画像処理装置10は、ケーブル14を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。なお画像処理装置10は、無線通信により外部ネットワークに接続してもよい。   FIG. 1 shows a use environment of an image processing system 1 according to an embodiment of the present invention. The image processing system 1 includes an image processing device 10 that executes image processing software, and a display device 12 that outputs a processing result by the image processing device 10. The display device 12 may be a television having a display that outputs an image and a speaker that outputs sound. The display device 12 may be connected to the image processing device 10 by a wired cable, or may be wirelessly connected by a wireless local area network (LAN) or the like. In the image processing system 1, the image processing apparatus 10 may be connected to an external network such as the Internet via the cable 14 to download and acquire hierarchical compressed image data. The image processing apparatus 10 may be connected to an external network by wireless communication.

画像処理装置10は、たとえばゲーム装置であってよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。なお画像処理装置10は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。   The image processing device 10 may be a game device, for example, and may implement an image processing function by loading an application program for image processing. The image processing apparatus 10 may be a personal computer, and may implement an image processing function by loading an image processing application program.

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

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

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

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

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

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

画像処理装置10において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の画像処理装置10は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばS3TC形式、JPEG形式、JPEG2000形式の圧縮データをデコード可能とする。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層または複数の階層に含まれる複数のタイル画像単位に行われていてもよい。   In the image processing apparatus 10, the hierarchical data is held in the storage device in a compressed state in a predetermined compression format, and is read from the storage device and decoded before being displayed on the display. The image processing apparatus 10 according to the present embodiment has a decoding function corresponding to a plurality of types of compression formats, and can decode, for example, compressed data in the S3TC format, JPEG format, and JPEG2000 format. In the hierarchical data, the compression processing may be performed in units of tile images, or may be performed in units of a plurality of tile images included in the same layer or a plurality of layers.

階層データの階層構造は、図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 image processing device 10 derives the change amount of the display image from the image change request signal supplied from the input device 20, the image processing device 10 derives the coordinates (frame coordinates) of the four corners of the frame in the virtual space using the change amount. The frame coordinates in the virtual space are used for loading to a main memory and display image generation processing described later. Instead of the frame coordinates in the virtual space, the image processing apparatus 10 may derive information for specifying the hierarchy and texture coordinates (UV coordinates) in the hierarchy. Hereinafter, the combination of the hierarchy specifying information and the texture coordinates is also referred to as frame coordinates.

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

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

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

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

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

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

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

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

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

また、ロードする圧縮画像データはおよそ一定のサイズを有するブロック単位とする。そのためハードディスクドライブ50が保持する階層データは所定の規則でブロックに分割しておく。このようにすることでメインメモリ60におけるデータ管理が効率よく行える。すなわち、圧縮画像データが可変長圧縮されたものであっても、ブロック(以後、「画像ブロック」と呼ぶ)単位であればロードするデータサイズがほぼ等しいため、基本的にメインメモリ60にそれまで格納されていたブロックのいずれかを上書きすることによって新たなロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。   The compressed image data to be loaded is a block unit having a substantially constant size. Therefore, the hierarchical data held by the hard disk drive 50 is divided into blocks according to a predetermined rule. By doing so, data management in the main memory 60 can be performed efficiently. That is, even if the compressed image data is variable-length compressed, the data size to be loaded is almost equal in units of blocks (hereinafter referred to as “image blocks”). A new load is completed by overwriting any of the stored blocks. As a result, fragmentation is unlikely to occur, the memory can be used efficiently, and address management is facilitated.

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

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

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

本実施の形態ではさらに、デコード用バッファへ新たな領域の画像を格納すべきときに、それまで格納されていたデコード済みの画像と重複する領域が存在するときは、当該領域を利用することにより新たにデコードする領域を最小限にする。具体的な手法については後に詳述する。   Further, in the present embodiment, when an image of a new area is to be stored in the decoding buffer, if there is an area overlapping with the decoded image stored so far, the area is used. Minimize new decoding area. A specific method will be described in detail later.

図6は制御部100の構成を詳細に示している。制御部100は入力装置20からユーザが入力した情報を取得する入力情報取得部102、階層データを画像ブロックに分割する圧縮データ分割部104、新たにロードすべき画像ブロックを決定するロードブロック決定部106、必要な画像ブロックをハードディスクドライブ50からロードするロード部108を含む。制御部100はさらに、表示画像を描画する表示画像処理部114、先読み処理を行う先読み処理部110、および圧縮画像データをデコードするデコード部112を含む。   FIG. 6 shows the configuration of the control unit 100 in detail. The control unit 100 includes an input information acquisition unit 102 that acquires information input by the user from the input device 20, a compressed data division unit 104 that divides hierarchical data into image blocks, and a load block determination unit that determines an image block to be newly loaded. 106 includes a load unit 108 for loading necessary image blocks from the hard disk drive 50. The control unit 100 further includes a display image processing unit 114 that draws a display image, a prefetch processing unit 110 that performs prefetch processing, and a decoding unit 112 that decodes compressed image data.

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

入力情報取得部102は、ユーザが入力装置20に対して入力した、画像表示の開始/終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。   The input information acquisition unit 102 acquires instruction contents such as start / end of image display, movement of a display area, enlargement and reduction of a display image, which are input by the user to the input device 20.

圧縮データ分割部104は、ハードディスクドライブ50などから階層データを読み出し、後述する所定の規則により分割して画像ブロックを生成し、ハードディスクドライブ50に格納する。例えばユーザが入力装置20に対し、ハードディスクドライブ50に格納されている階層データのいずれかを選択すると、入力情報取得部102から当該情報を取得し、分割処理を開始する。   The compressed data dividing unit 104 reads the hierarchical data from the hard disk drive 50, etc., generates an image block by dividing it according to a predetermined rule described later, and stores the image block in the hard disk drive 50. For example, when the user selects any one of the hierarchical data stored in the hard disk drive 50 with respect to the input device 20, the information is acquired from the input information acquisition unit 102, and the division process is started.

一方、圧縮データ分割部104は制御部100の他の機能と同一の装置内になくてもよく、階層データを生成する段階で分割するようにしてもよい。具体的な分割手法は後に詳述するが、ハードディスクドライブ50の速度やメインメモリ60の容量などハードウェアの性能によって、圧縮データ分割部104が行うブロック分割の方法は異なっていていよい。そのため、圧縮データ分割部104にはあらかじめ、画像処理装置10が有するハードウェア性能に応じた最適なブロック分割を行うように設定しておく。   On the other hand, the compressed data dividing unit 104 may not be in the same device as other functions of the control unit 100, and may be divided at the stage of generating hierarchical data. Although a specific division method will be described in detail later, the block division method performed by the compressed data division unit 104 may be different depending on the hardware performance such as the speed of the hard disk drive 50 and the capacity of the main memory 60. Therefore, the compressed data dividing unit 104 is set in advance so as to perform optimal block division according to the hardware performance of the image processing apparatus 10.

ロードブロック決定部106は、ハードディスクドライブ50からメインメモリ60へ新たにロードすべき画像ブロックの有無の確認、および次にロードする画像ブロックの決定を行い、ロード部108にロード要求を発行する。ロードブロック決定部106は、ロード部108がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが画像の変更要求を行った際など、所定のタイミングで上記確認、決定の処理を行う。ロード部108は、ロードブロック決定部106からの要求に従い、実際のロード処理を行う。   The load block determination unit 106 checks whether there is an image block to be newly loaded from the hard disk drive 50 to the main memory 60 and determines the next image block to be loaded, and issues a load request to the load unit 108. The load block determination unit 106 performs the above confirmation and determination processing at a predetermined time interval, for example, when the load unit 108 is not performing the load process, for example, when a user makes an image change request. . The load unit 108 performs actual load processing in accordance with a request from the load block determination unit 106.

ユーザが表示画像の変更要求を行った際、もし変更先の画像領域を含む画像ブロックがメインメモリ60に格納されていなかったら、ハードディスクドライブ50からの画像ブロックのロード、必要領域のデコード、表示画像の描画、といった処理を一度に行う必要がある。この場合、ロード処理がボトルネックとなり、ユーザの要求に対する応答性が損なわれることが考えられる。本実施の形態では、(1)今後表示される可能性の高い領域を網羅するように画像ブロックをロードしておく、(2)ロード処理が一時期に集中しないように随時ロードしていく、というポリシーの元でロードを行う。これによりロード処理が表示画像の変更処理の妨げになることが少なくなる。ロードする画像ブロックの決定手順については後に詳述する。   When the user makes a display image change request, if the image block including the image area to be changed is not stored in the main memory 60, the image block is loaded from the hard disk drive 50, the necessary area is decoded, and the display image is displayed. It is necessary to perform processing such as drawing at once. In this case, it is conceivable that the load process becomes a bottleneck, and the responsiveness to the user request is impaired. In this embodiment, (1) image blocks are loaded so as to cover regions that are likely to be displayed in the future, and (2) loading is performed as needed so that the loading process is not concentrated at one time. Load under policy. As a result, the load process is less likely to interfere with the display image changing process. The procedure for determining the image block to be loaded will be described in detail later.

先読み処理部110は、現在の表示画像のフレーム座標とユーザが入力した表示画像変更要求の情報に従い、将来表示画像の描画に必要とされるであろう画像領域を予測し、その情報をデコード部112に供給する。ただし画像表示開始直後や、バッファメモリ70に格納済みの画像では変更先の画像が描画できない場合などは、予測をせずに、その時点の表示画像の描画に必要な画像を含む所定領域の情報をデコード部112に供給する。デコード部112は、先読み処理部110から取得した画像領域の情報に基づき、メインメモリ60から圧縮画像データの一部を読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。   The prefetch processing unit 110 predicts an image area that will be required for drawing a display image in the future in accordance with the frame coordinates of the current display image and the display image change request information input by the user, and decodes the information. 112. However, immediately after the start of image display, or when the image to be changed cannot be drawn with the image already stored in the buffer memory 70, information on a predetermined area including an image necessary for drawing the display image at that time is not predicted. Is supplied to the decoding unit 112. Based on the image area information acquired from the prefetch processing unit 110, the decoding unit 112 reads and decodes a part of the compressed image data from the main memory 60, and stores the decoded data in the decoding buffer or the display buffer.

表示画像処理部114は、ユーザが入力した表示画像変更要求に従い新たな表示画像のフレーム座標を決定し、バッファメモリ70の表示用バッファから対応する画像データを読み出し、表示処理部44のフレームメモリ90に描画する。   The display image processing unit 114 determines the frame coordinates of a new display image according to the display image change request input by the user, reads the corresponding image data from the display buffer of the buffer memory 70, and the frame memory 90 of the display processing unit 44. To draw.

次に、階層データを画像ブロックに分割する手法について説明する。図7は圧縮データ分割部104の構成を詳細に示している。圧縮データ分割部104は、識別番号付与部120、画像ブロック生成部122を含む。識別番号付与部120は、階層データを構成する各階層のタイル画像に所定の順序で0から順に識別番号を付与していく。画像ブロック生成部122は、データサイズの合計が所定のサイズを超える直前まで識別番号順にタイル画像をまとめていき、画像ブロックを生成する。   Next, a method for dividing hierarchical data into image blocks will be described. FIG. 7 shows the configuration of the compressed data dividing unit 104 in detail. The compressed data dividing unit 104 includes an identification number assigning unit 120 and an image block generating unit 122. The identification number assigning unit 120 assigns identification numbers in order from 0 to the tile images of each layer constituting the hierarchical data in a predetermined order. The image block generation unit 122 collects tile images in order of identification numbers until immediately before the total data size exceeds a predetermined size, and generates an image block.

図8は、階層データにおける各階層の画像を模式的に示している。階層データは図3と同様、第0階層30a、第1階層32a、第2階層34a、および第3階層36aの画像からなるとする。そして各階層の画像のうち実線で区切られた区画のひとつひとつがタイル画像である。識別番号付与部120は、同図に示すように、各タイル画像に識別番号を付与する。例えば第0階層30aの画像は、1つのタイル画像で構成され、識別番号を「0」とする。第1階層32a、第2階層34a、第3階層36aはそれぞれ、「1」と「2」、「3」から「8」、「9」から「44」の識別番号を各タイル画像に付与する。図8の例では、識別番号を付与する順序をラスタ順として示しているが、後述するようにそれ以外の順序でもよい。   FIG. 8 schematically shows an image of each hierarchy in the hierarchy data. Similarly to FIG. 3, the hierarchical data is composed of images of the 0th hierarchy 30a, the first hierarchy 32a, the second hierarchy 34a, and the third hierarchy 36a. A tile image is one of the sections separated by a solid line in the images of each layer. The identification number assigning unit 120 assigns an identification number to each tile image as shown in FIG. For example, the image of the 0th hierarchy 30a is composed of one tile image, and the identification number is “0”. The first hierarchy 32a, the second hierarchy 34a, and the third hierarchy 36a assign identification numbers “1” and “2”, “3” to “8”, and “9” to “44” to each tile image, respectively. . In the example of FIG. 8, the order of assigning the identification numbers is shown as a raster order, but other orders may be used as will be described later.

図9は画像ブロック生成部122が、図8の階層データを画像ブロックにまとめる様子を模式的に示している。上述のように画像ブロック生成部122は、所定のデータサイズを超えない最大数のタイル画像で画像ブロックが構成されるように、識別番号の小さい方からタイル画像を区切っていく。同図では、このときの「所定のデータサイズ」を「基本ブロックサイズ」として矢印の範囲で表している。   FIG. 9 schematically shows how the image block generator 122 combines the hierarchical data of FIG. 8 into image blocks. As described above, the image block generation unit 122 divides the tile image from the smaller identification number so that the image block is configured by the maximum number of tile images not exceeding a predetermined data size. In this figure, the “predetermined data size” at this time is represented by a “basic block size” in a range of arrows.

同図の例では、識別番号「0」から「5」のタイル画像が画像ブロック2、「6」から「8」のタイル画像が画像ブロック4、というようにそれぞれ画像ブロックにまとめられていき、「41」から「44」のタイル画像が最終の画像ブロック6となっている。各画像ブロックは、先頭のタイル画像の識別番号と含まれるタイル画像の数で識別する。したがって画像ブロック2は「(0,6)」、画像ブロック4は「(6,3)」、画像ブロック6は「(41,4)」なる識別情報を有する。このように識別情報を定義すると、あるタイル画像がある画像ブロックに含まれるか否かを容易に判定することができる。すなわち、ブロック分割方法に関わらず、識別番号の範囲を確認するのみで、画像ブロックに含まれるタイル画像を特定できる。   In the example in the figure, tile images with identification numbers “0” to “5” are grouped into image blocks 2, tile images with “6” to “8” are grouped into image blocks 4, and so on. The tile image from “41” to “44” is the final image block 6. Each image block is identified by the identification number of the leading tile image and the number of tile images included. Therefore, the image block 2 has identification information “(0, 6)”, the image block 4 has identification information “(6, 3)”, and the image block 6 has “(41, 4)”. When the identification information is defined in this way, it can be easily determined whether or not a certain tile image is included in a certain image block. That is, regardless of the block division method, it is possible to specify the tile image included in the image block only by confirming the range of the identification number.

画像ブロックの識別情報は、対応する圧縮画像データのハードディスクドライブ50における格納領域の情報と対応づけて、ハードディスクドライブ50に格納しておく。このように、圧縮画像データをおよそ同じサイズの画像ブロックに分割しておけば、上述のとおり、ロードした画像ブロックをメインメモリ60内の連続した領域に格納しても、一つの画像ブロックをその後にロードされた画像ブロックで上書きしていくことにより格納が可能であり、フラグメンテーションの発生を抑制できるとともに、メインメモリ60を効率的に使用できる。   The image block identification information is stored in the hard disk drive 50 in association with the storage area information of the corresponding compressed image data in the hard disk drive 50. In this way, if the compressed image data is divided into image blocks of approximately the same size, as described above, even if the loaded image block is stored in a continuous area in the main memory 60, one image block is thereafter stored. The image data can be stored by overwriting with the image block loaded in the memory block, the occurrence of fragmentation can be suppressed, and the main memory 60 can be used efficiently.

上記のように識別番号順に画像ブロックの区切りを設定していく場合、識別番号のタイル画像への付与順によって、原画像がどのように分割されるかが大きく異なる。以下、いくつかの例を説明する。図10は、本実施の形態におけるブロック分割の手法を説明するための原画像の例である。なお図10〜14はグレースケールを示しているが、実際にはフルカラーでよい。原画像200は例えば92323×34630画素を有しそれを361×136個のタイル画像に分割する。   When image block delimiters are set in the order of identification numbers as described above, how the original image is divided differs greatly depending on the order in which identification numbers are assigned to tile images. Several examples will be described below. FIG. 10 is an example of an original image for explaining the block division method in the present embodiment. Note that FIGS. 10 to 14 show gray scales, but they may actually be full color. The original image 200 has, for example, 92323 × 34630 pixels and is divided into 361 × 136 tile images.

図11〜14は、基礎ブロックサイズを1Mバイトとして様々な識別番号の付与順で図10の原画像200を分割した様子を示している。各画像は、画像ブロックの境界がわかりやすいように、画像ブロックごとにグレースケールの濃淡を異ならせている。図11は、図8のようにタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示している。ラスタ順分割画像202は、タイル画像を横方向にまとめた形の画像ブロックに分割されている。拡大画像204において示した幅206が画像ブロックの縦方向の長さとなる。横方向の長さは画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化し、一つの画像ブロックが複数行のタイル画像に渡る場合もある。   FIGS. 11 to 14 show a state in which the original image 200 of FIG. 10 is divided in the order in which various identification numbers are assigned with the basic block size being 1 Mbyte. Each image has different gray scales for each image block so that the boundaries of the image blocks can be easily understood. FIG. 11 shows a state of division when identification numbers are assigned to tile images in raster order as shown in FIG. The raster order divided image 202 is divided into image blocks in a form in which tile images are grouped in the horizontal direction. The width 206 shown in the enlarged image 204 is the length of the image block in the vertical direction. The length in the horizontal direction varies depending on the data size after compression of the tile image included in the image block, and one image block may span a plurality of tile images.

図11のような識別番号の付与順であれば付与そのものの処理が容易である。また、このようにブロック分割すると、一つの画像ブロックが保持する情報は横方向について多くなる。そのため画像の内容上、横方向に表示領域を移動させることが多いような場合には、少ない回数のロードによって、移動後の表示領域を網羅できる画像ブロックがメインメモリ60に格納できる。一方、表示領域の移動にそのような特性がない場合は、一つの表示画像を生成するために多数の画像ブロックをロードする必要があるうえ、表示画像から遠い箇所の無駄な情報を多く取り込むことになり、効率が悪い。   If the identification numbers are given in the order as shown in FIG. 11, the process of the assignment itself is easy. Further, when blocks are divided in this way, information held by one image block increases in the horizontal direction. Therefore, when the display area is often moved in the horizontal direction due to the contents of the image, an image block that can cover the moved display area can be stored in the main memory 60 with a small number of loads. On the other hand, if there is no such characteristic in the movement of the display area, it is necessary to load a large number of image blocks in order to generate one display image, and a lot of useless information at a location far from the display image is captured. Become inefficient.

図12は、「Z状」の順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「Z状」の順とは、同図の識別番号付与例212のスキャン順214に示すように、画像の横方向(X方向)と縦方向(Y方向)に交互にインクリメントしていく順序である。すると、同図に記載された数字のように識別番号が付与される。この順で画像ブロックにまとめていくと、Z状順分割画像208のような画像ブロックに分割される。拡大画像210において一つの画像ブロックは画像ブロック216のような形状を有する。   FIG. 12 shows a state of division when identification numbers are assigned to tile images in the order of “Z”. Here, the “Z-shaped” order is incremented alternately in the horizontal direction (X direction) and the vertical direction (Y direction) of the image as shown in the scanning order 214 of the identification number assignment example 212 in FIG. Is in order. Then, an identification number is given like the number described in the figure. When the image blocks are grouped in this order, they are divided into image blocks such as a Z-shaped forward divided image 208. In the enlarged image 210, one image block has a shape like an image block 216.

すなわちこの手法では、あるタイル画像を始点に横方向、縦方向に同量ずつ拡大していくように識別番号を付与しているため、この場合の画像ブロック216は正方形に近い形となる。詳細な形状および大きさは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズに依存する。図12のようにブロック分割すると、1つの画像ブロックが有する情報は空間局所性がよくなり、表示画像やその近傍の領域の画像を生成するのに必要な画像ブロックが図11の場合と比べて少なくなる。さらに無駄な領域の情報がロードされにくく、メインメモリ60の使用効率がよくなる。   That is, in this method, since an identification number is assigned so that a certain tile image is enlarged by the same amount in the horizontal direction and the vertical direction starting from a certain tile image, the image block 216 in this case has a shape close to a square. The detailed shape and size depend on the data size after compression of the tile image included in each image block. When the block is divided as shown in FIG. 12, the information possessed by one image block has better spatial locality, and the image block necessary for generating the display image and the image in the vicinity thereof is different from the case of FIG. Less. Furthermore, it is difficult to load useless area information, and the use efficiency of the main memory 60 is improved.

図13は、正方形のマクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「マクロタイル」とは、複数のタイル画像で構成される矩形のことであり、縦、横に含まれるタイル画像の数はあらかじめ設定しておく。なお図12の例は2×2個のタイル画像で構成されるマクロタイルを再帰的に形成していると考えることもできる。図13の場合は、マクロタイル222に示すように、8×8個のタイル画像で構成される正方形を1つのマクロタイルとしている。そしてマクロタイル222内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように、各タイル画像に識別番号が付与される。1つのマクロタイルに対し識別番号が付与し終わったら、同様の付与を全マクロタイルに対してラスタ順に行っていく。   FIG. 13 shows a state of division when identification numbers are assigned to tile images in the order of square macro tiles. Here, the “macro tile” is a rectangle composed of a plurality of tile images, and the number of tile images included vertically and horizontally is set in advance. Note that the example of FIG. 12 can be considered to recursively form macro tiles composed of 2 × 2 tile images. In the case of FIG. 13, as shown in the macro tile 222, a square composed of 8 × 8 tile images is defined as one macro tile. Then, identification numbers are assigned within the macro tile 222 in the direction of the arrow, that is, in raster order. As a result, an identification number is assigned to each tile image like the numbers described in the figure. When the identification number has been assigned to one macro tile, the same assignment is performed on all macro tiles in raster order.

この順で画像ブロックにまとめていくと、正方形マクロタイル順分割画像218のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、マクロブロックを横方向にまとめた形状を有する。拡大画像220においてマクロタイル222の一辺の長さ、あるいはその整数倍が画像ブロックの縦方向の長さとなる。横方向の長さは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化する。図13のようにブロック分割した場合も図12の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。   When the image blocks are grouped in this order, they are divided into image blocks such as a square macrotile order divided image 218. That is, the image block in this case has a shape in which macroblocks are grouped in the horizontal direction. In the enlarged image 220, the length of one side of the macro tile 222, or an integral multiple thereof, is the length of the image block in the vertical direction. The length in the horizontal direction varies depending on the data size after compression of the tile image included in each image block. When the blocks are divided as shown in FIG. 13, as in the case of FIG. 12, the number of image blocks necessary for generating a display image and an image in the vicinity of the display image is suppressed, and the load efficiency is improved.

図14は、短冊状マクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。短冊状マクロタイルは横方向に含まれるタイル画像の数のみを設定し、縦方向は無制限とするマクロタイルである。図14の場合はマクロタイル230に示すように、横方向が16個のタイル画像で構成されている。そしてマクロタイル230内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように各タイル画像に識別番号が付与される。識別番号の付与が原画像の下端までなされたら、その右に位置するマクロタイル、というように、同様の付与を全マクロタイルに対してラスタ順に行っていく。   FIG. 14 shows a state of division when identification numbers are assigned to tile images in the order of strip-like macro tiles. The strip-shaped macro tile is a macro tile in which only the number of tile images included in the horizontal direction is set and the vertical direction is unlimited. In the case of FIG. 14, as shown in the macro tile 230, the horizontal direction is composed of 16 tile images. Then, identification numbers are assigned within the macro tile 230 in the direction of the arrow, that is, in raster order. Thereby, an identification number is given to each tile image like the number described in FIG. When the identification number is assigned to the lower end of the original image, the same assignment is performed on all the macro tiles in raster order, such as the macro tile located to the right of the original image.

この順で画像ブロックにまとめていくと、短冊状マクロタイル順分割画像224のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、縦一列のマクロタイルを、タイル画像の圧縮後のデータサイズに応じて途中で区切った形状を有する。場合によっては複数列のマクロタイルに渡ることもある。拡大画像226においてマクロタイルの幅228、あるいはその整数倍が、画像ブロックの横方向の幅となる。画像ブロックの区切り部分における境界線の詳細な形状も、タイル画像の圧縮後のデータサイズに応じて変化する。図14のようにブロック分割した場合も図12、13の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。   When the image blocks are grouped in this order, they are divided into image blocks such as a strip-like macrotile order divided image 224. In other words, the image block in this case has a shape in which a vertical row of macro tiles is divided in the middle according to the compressed data size of the tile image. In some cases, it may span multiple rows of macro tiles. In the enlarged image 226, the width 228 of the macro tile or an integral multiple thereof is the width in the horizontal direction of the image block. The detailed shape of the boundary line at the image block delimiter also changes in accordance with the data size of the tile image after compression. When the blocks are divided as shown in FIG. 14, the number of image blocks necessary for generating the display image and the image in the vicinity thereof is suppressed as in the case of FIGS. 12 and 13, and the loading efficiency is improved.

上述のように識別番号を付与する順序や、基本ブロックサイズによって、画像ブロックの形状、大きさ、含まれる情報が大きく異なる。したがって、画像の内容やジャンル、例えば風景写真であるか新聞などの文字の画像であるか、などによって最も効率的にデータの取り込みが可能な条件を求めておき、実際の画像に応じて選択するようにしてもよい。また前述のようにハードウェアの構成によって最適な手法を選択するようにしてよい。   As described above, the shape, size, and contained information of the image block differ greatly depending on the order of assigning the identification numbers and the basic block size. Therefore, a condition that enables the most efficient data capture is determined according to the content and genre of the image, for example, whether it is a landscape photograph or a character image such as a newspaper, and is selected according to the actual image. You may do it. Further, as described above, an optimal method may be selected depending on the hardware configuration.

以上のように画像を分割した結果得られる画像ブロックは、ほぼ均一なデータサイズでタイル画像をまとめたものであるため、その面積は、上述のように構成するタイル画像の圧縮後のデータサイズに依存する。図10の原画像200において、画像の上半分は空の領域で色が比較的均一なため、高周波成分が少なく圧縮率が高い。一方、原画像200の中央付近は建造物などがあるため色の変化が大きく、高周波成分が多いため圧縮率が低い。したがって、原画像200のうち上半分のタイル画像の圧縮後のデータサイズは中央付近のデータサイズより小さい傾向を有する。   Since the image block obtained as a result of dividing the image as described above is a collection of tile images with a substantially uniform data size, the area is the data size after compression of the tile image configured as described above. Dependent. In the original image 200 of FIG. 10, the upper half of the image is an empty region and the color is relatively uniform, so that there are few high frequency components and the compression rate is high. On the other hand, the color change is large near the center of the original image 200 because there are buildings, and the compression rate is low because there are many high-frequency components. Accordingly, the compressed data size of the upper half tile image of the original image 200 tends to be smaller than the data size near the center.

これを踏まえて例えば図14の短冊状マクロタイル順分割画像124を見ると、上半分の画像ブロックの面積は、中央付近の画像ブロックより大きい傾向となっている。その他の分割画像でも同様である。すなわち本実施の形態では、画像の面積を単純に均等に分割するのではなく、データサイズによって分割している。このようにすることで、単位面積当たりのデータサイズが小さい領域は、一度のロードで広い面積の圧縮データをメインメモリ60に格納することができ、メモリ内で管理すべきブロック数が少なくなるため管理が容易になるうえ、ロードの効率がよくなる。   Taking this into consideration, for example, when viewing the strip-like macrotile ordered divided image 124 of FIG. 14, the area of the upper half image block tends to be larger than the image block near the center. The same applies to other divided images. That is, in the present embodiment, the area of the image is not simply divided evenly, but is divided according to the data size. By doing so, in a region where the data size per unit area is small, compressed data of a large area can be stored in the main memory 60 by one load, and the number of blocks to be managed in the memory is reduced. Management is easy and load efficiency is improved.

図12に示したZ状順分割画像208の例では、Z状に識別番号を付与することにより画像ブロックを正方形に近づけ、空間局所性を向上させた。同図の例では、識別番号を付与済みのタイル画像が所定の大きさの正方形まで到達したら、新たな始点から識別番号を付与していくようにしており、このときの始点を原画像200内でマトリクス状に配置していた。そのため、画像ブロックの境界線はおよそ互いに直交する格子状になっている。一方、画像ブロックの境界線が格子状にならないように工夫してもよい。   In the example of the Z-shaped forward-divided image 208 shown in FIG. 12, the image block is made closer to a square by assigning an identification number to the Z-shape, and the spatial locality is improved. In the example shown in the figure, when a tile image to which an identification number has been assigned reaches a square having a predetermined size, an identification number is assigned from a new starting point. And arranged in a matrix. For this reason, the boundary lines of the image blocks have a lattice shape that is approximately orthogonal to each other. On the other hand, you may devise so that the boundary line of an image block may not become a grid | lattice form.

図15は画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域132において、画像ブロック134aは横3つ、縦2つのマトリクス状になっており、その境界線は格子状となっている。このようにブロック分割を行うと、同図のように描画領域136aが格子の交点を含むような位置になると、描画に必要な画像ブロックが4つになる。   FIG. 15 schematically shows the relationship between the image block and the drawing area of the display image when the boundary lines of the image block are configured in a grid pattern. In one area 132 of the original image, the image block 134a is in a matrix form of three horizontal and two vertical, and the boundary line is a grid. When block division is performed in this way, when the drawing area 136a is located at a position including the intersection of the grid as shown in the figure, four image blocks are required for drawing.

図16は画像ブロックの境界線をT字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域238において、画像ブロック134bは縦方向の境界線が行によってずれるように配置され、結果として境界線がT字路形状になっている。このようにブロック分割を行うと、同図のように描画領域136bが境界線を跨いでも、描画に必要な画像ブロックは最大で3つとなり、図15の場合と比較してロードの効率がよくなる。このように画像ブロックが配置されるようにするには、例えば、上述の識別番号付与の始点をマトリクス状に配置するのではなく、行によってずらすようにすればよい。   FIG. 16 schematically shows the relationship between the image block and the drawing area of the display image when the boundary line of the image block has a T-junction shape. In one area 238 of the original image, the image block 134b is arranged so that the vertical boundary line is shifted by the row, and as a result, the boundary line has a T-shaped shape. When block division is performed in this way, even if the drawing area 136b crosses the boundary as shown in the figure, the maximum number of image blocks required for drawing is three, and the load efficiency is improved compared to the case of FIG. . In order to arrange the image blocks in this way, for example, the starting points for assigning the identification numbers are not arranged in a matrix but may be shifted by rows.

これまで述べたブロック分割の手法は全て、同一の階層にある画像に対するものであった。一方、複数の階層にまたがるように識別番号を付与していくことにより、一つの画像ブロックに複数の階層のタイル画像の情報が含まれるようにしてもよい。このようにすると、同一階層の画像上での表示領域の移動のみならず、表示画像の拡大、縮小に対しても、ロードの回数を軽減させることができる。   All the block division methods described so far are for images in the same hierarchy. On the other hand, by assigning identification numbers so as to extend over a plurality of hierarchies, information on tile images of a plurality of hierarchies may be included in one image block. In this way, it is possible to reduce the number of times of loading not only for the movement of the display area on the image of the same hierarchy but also for the enlargement and reduction of the display image.

このとき、複数の階層のタイル画像を単に同じように圧縮してから画像ブロックとしてまとめてもよいし、解像度の異なる同じ画像同士の冗長性を利用して、一方の画像を他方の画像を用いて復元するようにし、圧縮率を上げてもよい。本実施の形態では、一つの画像ブロックに含まれる情報は常にセットでロードされるため、このような手法が可能となる。例えば、低解像度画像を高解像度画像の倍率まで拡大した画像と、実際の高解像度画像との差分画像を圧縮して、低解像度画像の圧縮データとともに画像ブロックに含める。この場合、低解像度画像、差分画像の順で画像ブロックにまとめていき、基礎ブロックサイズを超えない最大のデータサイズとなったときに、次の画像ブロックを形成していくようにする。   At this time, the tile images of a plurality of layers may be simply compressed in the same manner and then combined as an image block, or one image is used as the other image by utilizing the redundancy of the same images having different resolutions. May be restored and the compression rate may be increased. In the present embodiment, since information included in one image block is always loaded as a set, such a method is possible. For example, a differential image between an image obtained by enlarging a low resolution image to a magnification of the high resolution image and an actual high resolution image is compressed and included in the image block together with the compressed data of the low resolution image. In this case, the image blocks are grouped in the order of the low resolution image and the difference image, and when the maximum data size does not exceed the basic block size, the next image block is formed.

図17は高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。本処理は圧縮データ分割部104が行うが、階層データを生成する段階で、画像表示に係るその他の処理とは別に行ってよい。まず階層データ139における第2階層34および第3階層36の原画像をそれぞれ読み出す(S20、S22)。この例では同図に示すように、第3階層画像36bは第2階層画像34bを縦および横に2倍した画像となっている。これらの画像のうち、第2階層画像34bのタイル画像のいくつかを、通常通り圧縮する(S24)。次に第3階層画像36bの対応するタイル画像を圧縮する代わりに、当該タイル画像と、第2階層画像34bのタイル画像を2×2倍に拡大した画像との差分画像を圧縮する(S26)。   FIG. 17 is a diagram for explaining a method of compressing a high-resolution image as a difference image from an enlarged image of a low-resolution image. This process is performed by the compressed data dividing unit 104, but may be performed separately from other processes related to image display at the stage of generating hierarchical data. First, the original images of the second hierarchy 34 and the third hierarchy 36 in the hierarchy data 139 are read out (S20, S22). In this example, as shown in the figure, the third layer image 36b is an image obtained by doubling the second layer image 34b vertically and horizontally. Among these images, some of the tile images of the second layer image 34b are compressed as usual (S24). Next, instead of compressing the corresponding tile image of the third hierarchical image 36b, a differential image between the tile image and an image obtained by enlarging the tile image of the second hierarchical image 34b by 2 × 2 is compressed (S26). .

このとき、第2階層画像34bにおける圧縮対象のタイル画像は、図11〜14で例示したのと同様に、およそ同じデータサイズとなるように原画像を分割してなる領域のタイル画像などとする。あるいは、あらかじめ定めた数のタイル画像とし、上述したように画像ブロックを形成する段階でデータサイズが均一になるように調整してもよい。   At this time, the tile image to be compressed in the second layer image 34b is a tile image of an area obtained by dividing the original image so as to have approximately the same data size, as illustrated in FIGS. . Alternatively, a predetermined number of tile images may be used, and the data size may be adjusted to be uniform at the stage of forming the image block as described above.

その結果、第2階層画像34bの圧縮データ140と差分画像の圧縮データ142が生成される。同図では理解を容易にするため圧縮データも画像で表現し、差分画像の圧縮データ142は差分であることを示すために網掛け画像としている。これらの圧縮データを一つの画像ブロック144に含ませる。なおこの例では第2階層画像34bと第3階層画像36bのひとつの組み合わせのみが画像ブロック144に入るように図示されているが、3つ以上の階層の画像を同様に含めてもよい。すなわち、最も低解像度の画像はそのまま圧縮し、高解像度の画像はひとつ上の階層の画像との差分画像によって表現する。また、そのような依存関係を有する圧縮データの組を複数、画像ブロック144に含めるようにしてもよい。   As a result, compressed data 140 of the second layer image 34b and compressed data 142 of the difference image are generated. In the figure, the compressed data is also represented by an image for easy understanding, and the compressed data 142 of the difference image is a shaded image to indicate that it is a difference. These compressed data are included in one image block 144. In this example, only one combination of the second layer image 34b and the third layer image 36b is shown in the image block 144, but images of three or more layers may be included in the same manner. That is, the lowest resolution image is compressed as it is, and the high resolution image is expressed by a difference image from the image in the upper layer. A plurality of sets of compressed data having such dependency relationships may be included in the image block 144.

このようにして生成した画像ブロック144は、ハードディスクドライブ50に格納しておく。そしてロード部108が必要に応じてメインメモリ60にロードする。その後、先読み処理部110などの判断によってデコード部112によってデコードされる。このとき、第2階層画像34bの圧縮データ140は通常通りの処理でデコードされ、第2階層画像34bとなる(S28)。一方、差分画像の圧縮データ142は、まず通常通りデコードした後(S30)、デコードした第2階層画像34bを2×2倍に拡大した画像と足し合わせることにより(S32、S34)、第3階層画像36bとなる。   The image block 144 generated in this way is stored in the hard disk drive 50. Then, the load unit 108 loads the main memory 60 as necessary. Thereafter, the data is decoded by the decoding unit 112 according to the determination of the prefetch processing unit 110 or the like. At this time, the compressed data 140 of the second layer image 34b is decoded by a normal process to become the second layer image 34b (S28). On the other hand, the compressed data 142 of the difference image is first decoded as usual (S30), and then the decoded second layer image 34b is added to the image enlarged by 2 × 2 (S32, S34), so that the third layer An image 36b is obtained.

上記の例では低解像度画像の拡大画像との差分画像を高解像度画像のデータとして圧縮したが、逆に高解像度画像を利用して低解像度画像を作成するようにしてもよい。例えば高解像度画像をウェーブレット圧縮してハードディスクドライブ50に格納しておき、必要に応じてメインメモリ60にロードした後、デコード部112は、当該高解像度画像の圧縮画像のローパス画像を生成することで低解像度画像としてもよい。同様に、高解像度画像をJPEG圧縮し、その高周波成分をカットして低解像度画像としてもよい。あるいはそのようにして生成した低解像度画像と元の低解像度画像との差分画像を圧縮して同一の画像ブロックに含めておき、上述と同様に差分画像を加算することで低解像度画像を復元してもよい。またはピラミッドフィルタにより2×2のピクセル群から1ピクセルを求めてもよい。これらの手法により、メインメモリ60へのロード時間の短縮、メインメモリ60の領域の有効利用が実現できる。   In the above example, the difference image from the enlarged image of the low resolution image is compressed as the data of the high resolution image, but conversely, the low resolution image may be created using the high resolution image. For example, after the high resolution image is wavelet compressed and stored in the hard disk drive 50 and loaded into the main memory 60 as necessary, the decoding unit 112 generates a low pass image of the compressed image of the high resolution image. A low-resolution image may be used. Similarly, a high-resolution image may be JPEG-compressed and the high-frequency component may be cut to form a low-resolution image. Alternatively, the differential image between the low-resolution image thus generated and the original low-resolution image is compressed and included in the same image block, and the low-resolution image is restored by adding the differential image in the same manner as described above. May be. Alternatively, one pixel may be obtained from a 2 × 2 pixel group using a pyramid filter. By these methods, it is possible to shorten the load time to the main memory 60 and to effectively use the area of the main memory 60.

次に、ハードディスクドライブ50に格納された画像ブロックからメインメモリ60へロードすべき画像ブロックを決定し、ロードする手法について説明する。図18は、ロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。この処理は、例えば所定の時間間隔で随時行う。まずロードブロック決定部106は、ロード部108が現在ロード中であるか否かを確認する(S40)。ロード中であれば処理を終了する(S40のY)。   Next, a method for determining and loading an image block to be loaded into the main memory 60 from the image block stored in the hard disk drive 50 will be described. FIG. 18 is a flowchart showing a processing procedure for determining an image block to be loaded and performing loading. This process is performed as needed at predetermined time intervals, for example. First, the load block determination unit 106 checks whether or not the load unit 108 is currently loading (S40). If it is being loaded, the process is terminated (Y in S40).

ロード中でなければ(S40のN)、後述する画像上の領域についてメインメモリ60に該当するデータがあるか否かを判定する(S42)。このためには例えば、メインメモリ60に格納されている画像ブロックの識別情報、すなわち先頭のタイル画像の識別番号とタイル画像の数からなる情報と、その先頭アドレスとを対応させたテーブルをメインメモリ60に格納しておく。そして必要なタイル画像の識別番号に基づき当該テーブルを検索することにより、データの有無を判定することができる。ここで判定対象の領域は1つのタイル画像でもよいし、複数のタイル画像を含んでもよい。このような領域を「必要領域」と呼ぶ。   If it is not being loaded (N in S40), it is determined whether or not there is data corresponding to the main memory 60 for an area on the image to be described later (S42). For this purpose, for example, a table in which the identification information of the image block stored in the main memory 60, that is, the information including the identification number of the leading tile image and the number of tile images, and the leading address thereof are associated with each other is stored in the main memory. 60. The presence or absence of data can be determined by searching the table based on the identification number of the necessary tile image. Here, the determination target region may be one tile image or may include a plurality of tile images. Such an area is called a “necessary area”.

もし必要領域のうちメインメモリ60にロードされていない領域が存在したら(S44のY)、当該領域を含む画像ブロックを、当該領域に含まれるタイル画像の識別番号と画像ブロックの識別情報とから特定し、それをロード対象として決定する(S46)。このとき複数の画像ブロックをロードする必要が生じた場合は、あらかじめ定めた規則に従い、優先度の高い画像ブロックをロード対象として決定する。すなわち1回のロード処理において、多くの画像ブロックを一度にロードしないようにする。   If there is an area that is not loaded in the main memory 60 among the necessary areas (Y in S44), the image block including the area is identified from the identification number of the tile image included in the area and the identification information of the image block. Then, it is determined as a load target (S46). If it is necessary to load a plurality of image blocks at this time, an image block having a high priority is determined as a load target according to a predetermined rule. That is, in one loading process, many image blocks are not loaded at once.

一度にロードする画像ブロックが多くなるほど、ロードに要する時間が増加するが、その間に表示画像の変更要求がユーザよりなされると、必要領域が変化してしまい、そのときのロード処理が無駄になる可能性がある。このような事態を回避するため、ロードブロック決定部106は随時、ロードすべき画像ブロックを決定していき、1度にロードする画像ブロックは1つ、あるいは所定の数以内、と制限する。   The more image blocks that are loaded at a time, the longer the time required for loading. However, if the user makes a display image change request during that time, the required area changes and the loading process at that time is wasted. there is a possibility. In order to avoid such a situation, the load block determination unit 106 determines image blocks to be loaded at any time, and limits the number of image blocks to be loaded at one time or within a predetermined number.

ロードブロック決定部106がロード対象を決定したら、ロード部108が、画像ブロックの識別情報と格納領域とを対応付けたテーブルに基づき、ロード対象である画像ブロックをハードディスクドライブ50から読み出して、メインメモリ60に格納する(S48)。S44において必要領域の全てがメインメモリ60に格納されていたら処理を終了する(S44のN)。   When the load block determination unit 106 determines the load target, the load unit 108 reads the image block to be loaded from the hard disk drive 50 based on the table in which the identification information of the image block and the storage area are associated with each other, and the main memory 60 (S48). If all the necessary areas are stored in the main memory 60 in S44, the process is terminated (N in S44).

図19はS42においてメインメモリ60に必要領域のデータが格納されているか否かを判定する対象である必要領域を決定するときの概念図である。メインメモリ60には、基本的には現在表示されている領域の周辺の画像の圧縮データがロードされていることが望ましい。ここで「周辺」とは、同一階層の画像における上下左右(X軸、Y軸)方向と、階層構造の深さ(Z軸)方向の周辺を含んでよい。Z軸方向の周辺とは、表示画像およびその近傍を含む拡大画像および縮小画像を意味する。   FIG. 19 is a conceptual diagram when determining a necessary area which is a target for determining whether or not data of a necessary area is stored in the main memory 60 in S42. It is desirable that the main memory 60 is basically loaded with compressed data of an image around the currently displayed area. Here, the “periphery” may include the periphery in the vertical and horizontal (X-axis, Y-axis) directions and the depth (Z-axis) direction of the hierarchical structure in an image of the same hierarchy. The periphery in the Z-axis direction means a display image and an enlarged image and a reduced image including the vicinity thereof.

図19は、上から第n−1階層、第n階層、第n+1階層の画像の一部を示しており、各画像内にタイル画像が示されている。各階層で示している画像は、中心線154において同一箇所を表示する。そして第n階層の画像の中央付近の領域150が現在表示されている領域であるとすると、必要領域は、例えば黒丸152a、152b、152cなどを含む領域とする。すなわち表示画像の階層である第n階層の画像においては、表示画像の領域150内の中心(中心線154の地点)および四隅の地点と、領域150を上下左右に伸張した矩形の各辺の中点と四隅の地点を含むタイル画像を必要領域とする。   FIG. 19 shows a part of images of the (n−1) -th layer, the n-th layer, and the (n + 1) -th layer from the top, and a tile image is shown in each image. The image shown in each layer displays the same part on the center line 154. If the region 150 near the center of the n-th layer image is the currently displayed region, the necessary region is, for example, a region including black circles 152a, 152b, and 152c. That is, in the image of the nth layer, which is the layer of the display image, the center (point of the center line 154) and the four corner points in the display image region 150, and the rectangular sides obtained by extending the region 150 vertically and horizontally A tile image including a point and four corner points is set as a necessary area.

一方、表示画像と隣接する階層である第n−1階層と第n+1階層の画像においては、中心線154の地点と、それを重心とする所定サイズの矩形の四隅の地点を含むタイル画像を必要領域とする。この場合の矩形は、表示画像の矩形の大きさに相当する大きさでもよい。表示領域が移動しても常にこのような地点を含む画像ブロックがメインメモリ60にロードされていれば、円滑にデコードおよび描画を行え、ユーザによる画像変更要求に対する応答性がよくなる。   On the other hand, in the images of the (n−1) -th layer and the (n + 1) -th layer that are adjacent to the display image, a tile image including the point of the center line 154 and the four corners of a rectangle of a predetermined size centering on the center line 154 is required. This is an area. The rectangle in this case may be a size corresponding to the size of the rectangle of the display image. If an image block including such a point is always loaded into the main memory 60 even if the display area moves, decoding and drawing can be performed smoothly, and the response to an image change request by the user is improved.

なお図19に示した地点はあくまで例示であり、画像の内容や画像処理装置10の処理性能、メインメモリ60の容量などにより、数を増減させたり配置形状を変化させたりしてもよい。さらに、画像の内容上重要な領域や、同一ユーザによる表示履歴から、過去に高頻度で表示された領域やユーザの嗜好に合致すると思われる領域は、表示画像の変化に関わらず優先的にロードするようにしてもよい。ここで「重要な領域」とは、例えば人物の画像であれば顔付近、電子チラシであれば目玉商品などの表示領域である。また、ユーザの嗜好とは、新聞紙面の画像であればユーザがよく閲覧する欄などである。このような領域は、図18のS46において複数の画像ブロックをロードする必要が生じた場合でも、高い優先度を与えてロードされるようにする。あるいは画像表示を開始した段階でロードしておくようにしてもよい。   The points shown in FIG. 19 are merely examples, and the number may be increased or decreased or the arrangement shape may be changed depending on the content of the image, the processing performance of the image processing apparatus 10, the capacity of the main memory 60, and the like. In addition, areas that are important in the content of the image, areas that have been displayed with high frequency in the past, and areas that seem to match the user's preferences from the display history of the same user are preferentially loaded regardless of changes in the displayed image. You may make it do. Here, the “important area” is, for example, a display area such as the vicinity of a face in the case of an image of a person and a feature product in the case of an electronic flyer. The user's preference is a column that the user often browses if the image is a newspaper page. Such a region is loaded with a high priority even when it is necessary to load a plurality of image blocks in S46 of FIG. Alternatively, it may be loaded when image display is started.

図18のS46における優先度については、そのほかに、例えば次のような規則を用意してもよい。まず、表示画像と同一階層内の画像ブロックより、別の階層、すなわち拡大画像および縮小画像の画像ブロックを優先させる。これは、同一階層内での表示領域の移動の場合、バッファメモリ70における2つのバッファ領域72および74に格納したデコード画像で賄える可能性が高いのに対し、階層間の移動ではバッファメモリ70のデコード画像をすべて更新しなければいけない可能性が高いためである。ただし2つの階層間を往復するような場合はバッファメモリ70で充足する場合もある。   In addition to the priorities in S46 of FIG. 18, for example, the following rules may be prepared. First, priority is given to image blocks in another layer, that is, an enlarged image and a reduced image, over image blocks in the same layer as the display image. This is because, in the case of movement of the display area in the same hierarchy, there is a high possibility of being covered by the decoded images stored in the two buffer areas 72 and 74 in the buffer memory 70, whereas in the movement between the hierarchy, the buffer memory 70 This is because there is a high possibility that all the decoded images must be updated. However, the buffer memory 70 may be sufficient in the case of reciprocating between two layers.

また、階層が深い、すなわち拡大画像の画像ブロックより、階層が浅い、すなわち縮小画像の画像ブロックを優先させる。拡大画像はロード、デコードが間に合わなかったとしても、縮小画像を拡大することにより暫定的な対応が容易であるが、その逆は困難なためである。   Further, priority is given to an image block of a reduced image, ie, a reduced image, over an image block of a deep image, ie, an enlarged image. This is because even if the enlarged image cannot be loaded or decoded in time, provisional correspondence is easy by enlarging the reduced image, but the reverse is difficult.

図20は先読み処理部110が行う先読み処理を説明するための図である。図20は、階層データの構造を示しており、各階層はL0(第0階層)、L1(第1階層)、L2(第2階層)、L3(第3階層)と表現されている。矢印80は、ユーザからの画像変更要求が、表示画像の縮小を要求しており、L2をまたいだ様子を示している。本実施の形態の画像処理装置10では、元の画像データが存在するL1、L2の深さ方向の位置を、深さ方向の先読み境界として設定し、入力装置20からの画像変更要求が先読み境界を超えたタイミングで先読み処理を開始する。   FIG. 20 is a diagram for explaining prefetch processing performed by the prefetch processing unit 110. FIG. 20 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). An arrow 80 indicates that an image change request from the user requests reduction of the display image and straddles L2. In the image processing apparatus 10 according to the present embodiment, the positions in the depth direction of L1 and L2 where the original image data exists are set as the prefetch boundary in the depth direction, and the image change request from the input device 20 is the prefetch boundary. The prefetching process is started at a timing exceeding.

表示画像の縮尺率がL2の近傍にある場合、L2(第2階層)の画像を用いて表示画像を作成する。具体的には、表示する画像の縮尺率が、L1の画像とL2の画像の切替境界82と、L2の画像とL3の画像の切替境界84の間にある場合に、L2の画像を縮小、拡大して表示画像を生成する。したがって、矢印80に示すように画像の縮小処理が要求されると、L2の拡大画像から、縮小画像に変換されて表示される。本実施の形態の画像処理装置10は、画像変更要求から予測される将来必要な画像を特定して、メインメモリ60から読み出し、デコードしておく。図20の例では、画像変更要求による要求縮尺率がL2をまたいだときに、縮小方向にあるL1の画像をメインメモリ60から先読みしてデコードし、バッファメモリ70に書き込む。   When the scale factor of the display image is in the vicinity of L2, a display image is created using an image of L2 (second layer). Specifically, when the scale of the image to be displayed is between the switching boundary 82 between the L1 image and the L2 image and the switching boundary 84 between the L2 image and the L3 image, the L2 image is reduced. Enlarge and generate a display image. Therefore, when image reduction processing is requested as indicated by the arrow 80, the L2 enlarged image is converted into a reduced image and displayed. The image processing apparatus 10 according to the present embodiment identifies a future necessary image predicted from the image change request, reads out the image from the main memory 60, and decodes it. In the example of FIG. 20, when the requested scale ratio due to the image change request crosses L2, the image of L1 in the reduction direction is pre-read from the main memory 60, decoded, and written to the buffer memory 70.

同一階層における上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ70に格納されている画像データに先読み境界を設定しておき、画像変更要求による表示位置が先読み境界をまたいだときに、先読み処理が開始されるようにする。   The same process is performed for prefetch processing in the vertical and horizontal directions in the same hierarchy. Specifically, a prefetch boundary is set for the image data stored in the buffer memory 70, and the prefetch process is started when the display position by the image change request crosses the prefetch boundary.

図21は先読み処理部110およびデコード部112が画像のデコードを行う際の処理手順を示すフローチャートである。まず入力装置20からの画像変更要求信号をもとに、要求される表示画像の変更量を導出する(S50)。表示画像の変更量は、上下左右方向の移動量および深さ方向の移動量である。次に、階層構造におけるそれまでの表示領域の四隅のフレーム座標から、導出された変更量により移動先の表示領域の四隅のフレーム座標を決定する(S52)。   FIG. 21 is a flowchart showing a processing procedure when the prefetch processing unit 110 and the decoding unit 112 decode an image. First, based on the image change request signal from the input device 20, a required display image change amount is derived (S50). The change amount of the display image is the amount of movement in the vertical and horizontal directions and the amount of movement in the depth direction. Next, the frame coordinates of the four corners of the display area of the movement destination are determined from the frame coordinates of the four corners of the display area in the hierarchical structure based on the derived change amount (S52).

そして決定した四隅のフレーム座標で特定される領域を表示するための画像領域が既にデコードされて、バッファメモリ70のバッファ領域72またはバッファ領域74のいずれかに格納されているか判定する(S54)。既にバッファ領域72またはバッファ領域74に必要な画像領域が存在している場合には(S54のY)、要求される縮尺率が先読み境界を超えているか判定する(S56)。先読み境界を超えていなければ、バッファメモリ70はそのままに処理を終了する。   Then, it is determined whether the image area for displaying the area specified by the determined frame coordinates of the four corners has already been decoded and stored in either the buffer area 72 or the buffer area 74 of the buffer memory 70 (S54). If the necessary image area already exists in the buffer area 72 or the buffer area 74 (Y in S54), it is determined whether the required scale ratio exceeds the prefetch boundary (S56). If the prefetch boundary is not exceeded, the buffer memory 70 ends the process as it is.

S52で決定した四隅のフレーム座標で特定される領域を表示するための画像領域がバッファメモリ70に存在しない場合(S54のN)、および要求される縮尺率が先読み境界を超えている場合に(S56のY)、先読み処理部110はデコード部112に対して、必要な画像領域のデコードを指示する。デコード部112は、指示された画像領域のデータをメインメモリ60から取得してデコードし、バッファ領域72またはバッファ領域74に格納する(S60)。これにより、表示画像処理部114による表示画像の生成前に、必要な画像領域をバッファメモリ70に展開することができる。   When the image area for displaying the area specified by the frame coordinates of the four corners determined in S52 does not exist in the buffer memory 70 (N in S54), and when the required scale ratio exceeds the prefetch boundary ( In S56, Y), the prefetch processing unit 110 instructs the decoding unit 112 to decode a necessary image area. The decoding unit 112 acquires the data of the designated image area from the main memory 60, decodes it, and stores it in the buffer area 72 or the buffer area 74 (S60). Accordingly, a necessary image area can be developed in the buffer memory 70 before the display image processing unit 114 generates the display image.

表示用バッファに格納された画像の一部が表示されているとき、デコード用バッファにおいて次に必要となる画像は、同一階層内での移動では、例えば、表示領域が先読み境界をまたいだ時、当該表示領域が移動方向の始点側の端に含まれるような画像である。この場合、バッファ領域72およびバッファ領域74に格納される画像は、少なくとも表示画像の大きさ分の重複領域を有し、さらに先読み境界の設定位置によって重複領域が増えることになる。先読み境界を超えたときに新たにデコードすべき画像の範囲は、あらかじめ処理速度などに応じて設定しておく。あるいは画像の内容によって変化させてもよい。   When a part of the image stored in the display buffer is displayed, the next required image in the decoding buffer is, for example, when the display area crosses the prefetch boundary when moving within the same hierarchy, It is an image in which the display area is included at the end on the start point side in the movement direction. In this case, the images stored in the buffer area 72 and the buffer area 74 have at least an overlap area corresponding to the size of the display image, and the overlap area further increases depending on the setting position of the prefetch boundary. The range of an image to be newly decoded when the prefetch boundary is exceeded is set in advance according to the processing speed or the like. Or you may change with the content of an image.

上記のようにデコード用バッファを用いると、新たに格納する画像と、それまでにデコード用バッファに格納されていた画像の一部が重複することがあり得る。このような性質を利用して、本実施の形態では次に述べるような処理により、新たにデコードする領域を減らし、デコード処理の負荷を軽減する。   When the decoding buffer is used as described above, a newly stored image and a part of the image stored in the decoding buffer may overlap. Utilizing such a property, in the present embodiment, the area to be newly decoded is reduced by the following process, thereby reducing the load of the decoding process.

図22はバッファメモリ70のデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部112の機能ブロックを示している。デコード部112は、重複部分の領域を特定する重複領域取得部170、重複していない領域を新たにデコードして、それまでに格納されていた画像の一部を上書きする部分領域デコード部172、上書きした画像を繰り返して並べた画像を生成するリピート画像生成部174、および並べた画像の一部を抜き出し最終的なデコード画像としてデコード用バッファに格納するデコード画像格納部176を含む。   FIG. 22 shows a functional block of the decoding unit 112 in the decoding buffer of the buffer memory 70 in a case where an image to be newly stored has an overlapping portion with an image stored so far. The decoding unit 112 includes an overlapping region acquisition unit 170 that identifies an overlapping region, a partial region decoding unit 172 that newly decodes a non-overlapping region and overwrites a part of the image that has been stored so far. A repeat image generation unit 174 that generates an image in which the overwritten images are repeatedly arranged, and a decoded image storage unit 176 that extracts a part of the arranged images and stores them as a final decoded image in a decoding buffer.

図23は、図22のデコード部112が画像をデコード用バッファに格納する手順を模式的に示している。上述のとおり、表示用バッファに格納された画像内で表示領域が先読み境界を超えるなどしたときに、デコード用バッファに新たな画像を格納する必要が生じる。この時点ですでにデコード用バッファに格納されている画像が、同図左上の画像160である。一方、新たに格納すべき画像は同図右上の画像162であるとする。すなわち同図は、表示領域が左に移動しており、元の「丸」や「三角」の図形から、その左にある「星」の図形を表示する見込みがある、という状況を示している。   FIG. 23 schematically shows a procedure in which the decoding unit 112 in FIG. 22 stores an image in the decoding buffer. As described above, when the display area exceeds the prefetch boundary in the image stored in the display buffer, a new image needs to be stored in the decoding buffer. The image already stored in the decoding buffer at this time is the image 160 in the upper left of the figure. On the other hand, it is assumed that the image to be newly stored is the image 162 in the upper right of the figure. In other words, the figure shows the situation where the display area has moved to the left, and the "star" figure on the left is expected to be displayed from the original "circle" or "triangle" figure. .

上述の理由から、画像160と画像162は重複領域を有する。同図の例では、横方向(X軸)がx0からx2までの領域で構成される画像162のうち、x1からx2までの領域が画像160と重複している。このような場合、格納済みの画像160のうち、重複しているx1からx2までの領域は新たに格納すべき画像の一部としてそのまま利用する。   For the reasons described above, the image 160 and the image 162 have overlapping areas. In the example shown in the drawing, the region from x1 to x2 overlaps with the image 160 in the image 162 composed of regions from x0 to x2 in the horizontal direction (X axis). In such a case, in the stored image 160, the overlapping area from x1 to x2 is used as it is as a part of the image to be newly stored.

具体的には、部分領域デコード部172が、新たに格納すべき画像162のうち、画像160と重複していないx0からx1までの領域のみをデコードし、格納済みの画像160のうちもはや必要のないx2からx3までの領域を上書きする(S70)。ただし、例えば圧縮をタイル画像単位で行っている場合など圧縮単位の配置によっては、重複していないx0からx1までの領域のみをデコードすることができない場合がある。この場合は、当該領域を含み、デコードが可能な最小の領域をデコードしたあと、x0からx1までの領域のみを抽出してx2からx3までの領域を上書きする。   Specifically, the partial region decoding unit 172 decodes only the region from x0 to x1 that does not overlap with the image 160 in the image 162 to be newly stored, and is no longer necessary in the stored image 160. The area from x2 to x3 that is not present is overwritten (S70). However, depending on the arrangement of the compression units, for example, when compression is performed in units of tile images, it may not be possible to decode only the non-overlapping regions from x0 to x1. In this case, after decoding the minimum area that can be decoded including the area, only the area from x0 to x1 is extracted and the area from x2 to x3 is overwritten.

S70の処理を行うため、バッファメモリ70のバッファ領域72、74には、現在格納されている画像の左下の座標を格納する領域を設ける。そして重複領域取得部170は、新たに格納すべき領域の左下の座標と比較することにより、重複領域を特定する。なおデコード前に重複領域を特定する処理に所定値以上の負荷がかかる場合は、新たに格納すべき画像162を全てデコードしたうえで重複していない領域のみを上書きするようにしてもよい。   In order to perform the process of S70, the buffer areas 72 and 74 of the buffer memory 70 are provided with areas for storing the lower left coordinates of the currently stored image. Then, the overlapping area acquisition unit 170 identifies the overlapping area by comparing with the lower left coordinates of the area to be newly stored. If a load of a predetermined value or more is applied to the process of specifying the overlapping area before decoding, only the non-overlapping area may be overwritten after decoding all the images 162 to be newly stored.

次にリピート画像生成部174が、そのようにしてできた中間画像164を横方向に繰り返したリピート画像166を仮に作成する(S72)。単位画像を縦方向、横方向に繰り返した画像は、画像処理において一般的に用いられる技術によって生成できる。そしてデコード画像格納部176が、リピート画像166において中間画像の境界の座標を0としたとき、−(x1−x0)からx2−x1までの領域を取り出し、デコード用バッファに新たに格納する(S74)。これにより、新たに格納すべき画像162がデコード用バッファに格納されたことになる。同図の例では横方向のみの移動に着目しているが、縦方向のみの移動や、縦方向、横方向の双方の移動でも同様に処理することにより重複領域以外の領域のみをデコードすればよくなる。ただし、縦方向、横方向の双方の移動の場合は、リピート画像166は縦横に2回ずつ中間画像164を繰り返した画像となる。   Next, the repeat image generation unit 174 temporarily creates a repeat image 166 obtained by repeating the intermediate image 164 thus formed in the horizontal direction (S72). An image obtained by repeating unit images in the vertical and horizontal directions can be generated by a technique generally used in image processing. When the decoded image storage unit 176 sets the coordinate of the boundary of the intermediate image to 0 in the repeat image 166, the area from − (x1−x0) to x2−x1 is extracted and newly stored in the decoding buffer (S74). ). As a result, the image 162 to be newly stored is stored in the decoding buffer. Although the example in the figure focuses on the movement only in the horizontal direction, if only the area other than the overlapping area is decoded by performing the same process for both the movement in the vertical direction and the movement in both the vertical direction and the horizontal direction, Get better. However, in the case of both vertical and horizontal movements, the repeat image 166 is an image obtained by repeating the intermediate image 164 twice in the vertical and horizontal directions.

このようにすることで、必要最低限のデコードのみで先読みした領域をデコード用画像に格納することができるため、デコード処理による画像表示のレイテンシーを抑えることができる。なおデコード用バッファに格納する画像は、中間画像164としてもよい。この場合、表示画像処理部114が、ユーザからの指示入力に従いデコード用バッファから当該中間画像164を読み出して上述のS72、S74の処理を行い、新たに格納すべき画像162を表示処理部44のフレームメモリ90に描画する。   In this way, since the pre-read area can be stored in the decoding image with only the minimum necessary decoding, the latency of the image display by the decoding process can be suppressed. The image stored in the decoding buffer may be the intermediate image 164. In this case, the display image processing unit 114 reads the intermediate image 164 from the decoding buffer in accordance with an instruction input from the user, performs the above-described processing of S72 and S74, and displays the image 162 to be newly stored in the display processing unit 44. Drawing in the frame memory 90.

以上は、同一階層における表示領域の移動に対する先読み処理におけるデコード手法である。一方、表示されている中心地点を変えずに拡大したり縮小したりする要求がなされる可能性も高い。拡大方向、縮小方向のどちらか一方向への変更であれば、前述の先読み境界を超えた時点でデコード用画像に順次新たな画像を格納していくことになるが、2つの先読み境界を超えずにもとの縮尺率に戻す要求がなされた場合は、デコード用画像に新たに画像を格納する必要がなく、格納済みの画像をそのまま利用することができる。   The above is the decoding method in the prefetch process for the movement of the display area in the same hierarchy. On the other hand, there is a high possibility that a request for enlargement or reduction without changing the displayed center point is made. If the change is in one of the enlargement direction and the reduction direction, a new image is sequentially stored in the decoding image when the prefetch boundary is exceeded, but the two prefetch boundaries are exceeded. When a request to return to the original scale ratio is made, it is not necessary to store a new image in the decoding image, and the stored image can be used as it is.

そのため、バッファメモリ70のバッファ領域72、74には、現在格納されている画像の階層の番号を格納する領域をさらに設けてもよい。そして階層の深さ方向に設定された先読み境界を越えたとき、デコード用バッファに格納されるべき階層と格納済みの階層が同一であれば、デコード処理を行わずに格納済みの画像をそのままの状態としておく。これにより表示画像の拡大、縮小においてもデコード処理を最低限の回数とすることができ、処理の負荷、レイテンシーを軽減できる。   Therefore, the buffer areas 72 and 74 of the buffer memory 70 may be further provided with areas for storing the layer numbers of the currently stored images. When the prefetch boundary set in the depth direction of the hierarchy is exceeded, if the hierarchy to be stored in the decoding buffer is the same as the stored hierarchy, the stored image is left as it is without performing the decoding process. Leave it in a state. As a result, even when the display image is enlarged or reduced, the number of decoding processes can be minimized, and the processing load and latency can be reduced.

以上述べた本実施の形態によれば、圧縮された画像の少なくとも一部をユーザからの要求に応じて表示するための画像処理装置において、圧縮データを格納するハードディスクドライブからメインメモリへ、データの一部をロードする。メインメモリにロードしたデータをデコードして表示することにより、ユーザから表示画像変更要求がなされた際に、ハードディスクドライブから必要なデータを読み出すために要する時間が節約でき、応答性が向上する。また、データの一部のみをロードする態様とすることで、メインメモリの容量以上のサイズの画像であっても表示対象とすることができ、対応できる画像に対する制約が少なくなる。   According to the embodiment described above, in the image processing apparatus for displaying at least a part of the compressed image in response to a request from the user, the data is transferred from the hard disk drive storing the compressed data to the main memory. Load part. By decoding and displaying the data loaded in the main memory, when a display image change request is made from the user, the time required to read out the necessary data from the hard disk drive can be saved and the responsiveness can be improved. Further, by adopting an aspect in which only a part of the data is loaded, even an image having a size larger than the capacity of the main memory can be set as a display target, and restrictions on an image that can be handled are reduced.

さらに、画像データはおよそ同一のデータサイズでブロックに分割してハードディスクドライブに格納しておき、メインメモリへのロードはブロック単位で行う。これにより、メインメモリの連続した領域にロードしたブロックを順次格納しても、新たにブロックをロードする際にフラグメンテーションを起こすことがなくなり、メインメモリを有効に使用できるうえ、アドレス管理が容易になる。   Further, the image data is divided into blocks with approximately the same data size and stored in the hard disk drive, and loading to the main memory is performed in units of blocks. As a result, even if the loaded blocks are sequentially stored in a continuous area of the main memory, fragmentation does not occur when a new block is loaded, the main memory can be used effectively, and address management becomes easy. .

また、画像データをブロックに分割する際は、各ブロックが有する情報に空間局所性を持たせる。具体的には、始点のタイル画像から横方向、縦方向に同様に拡張していくように、一ブロックに含まれるタイル画像を加えていき、所定のデータサイズに達する直前で一ブロックの領域を決定することにより、ブロックを正方形に近い形状とする。あるいは、あらかじめ設定した正方形や短冊状の区画の中で、ラスタ順にタイル画像を加えていくことにより、所定の幅を有する長方形に近い形状とする。このようにすることで、表示に必要なブロック数を抑えることができ、ロードの回数を減らせるとともに、デコードに必要なデータのメインメモリからの読み出しが容易に行える。同様の理由から、ブロック同士の境界がT字路になるように分割してもよい。   Further, when the image data is divided into blocks, information included in each block is given spatial locality. Specifically, the tile image included in one block is added so that the tile image of the starting point is expanded in the horizontal and vertical directions in the same manner, and the area of one block is immediately before reaching a predetermined data size. By determining, the block is shaped like a square. Alternatively, in a square or strip-shaped section set in advance, a tile image is added in the raster order to obtain a shape close to a rectangle having a predetermined width. In this way, the number of blocks necessary for display can be suppressed, the number of loads can be reduced, and data necessary for decoding can be easily read from the main memory. For the same reason, the blocks may be divided so that the boundary between the blocks becomes a T-junction.

また、ブロックのメインメモリへのロードは、表示画像の変更時以外のタイミングでも、所定の時間間隔などで随時行う。この際、現在の表示画像を起点に、位置的および階層的に周辺領域となる地点を所定の規則により決定し、当該地点を含むブロックのうちロードされていないものを随時ロードしていく。さらに画像の内容上、重要な領域や、表示履歴に基づきユーザごとに予測できる表示確率が、所定のしきい値より高い領域は、優先してロードしておく。これにより、ユーザからの表示画像変更要求後に急遽、データをハードディスクドライブからロードしたり、ネットワークを介してダウンロードしなければならない事態が起こる可能性を低くできるとともに、一度に多数のブロックをロードする必要がなくなり、ロード処理によるレイテンシーの発生を抑制できる。   Also, loading of the block into the main memory is performed as needed at predetermined time intervals, etc. even at timings other than when the display image is changed. At this time, starting from the current display image, a point that is a peripheral region in terms of position and hierarchy is determined according to a predetermined rule, and an unloaded block including the point is loaded as needed. Furthermore, areas that are important in image content and areas that have a display probability that can be predicted for each user based on the display history are higher than a predetermined threshold value are preferentially loaded. This makes it possible to reduce the possibility of a situation in which data must be loaded from the hard disk drive or downloaded over the network immediately after a display image change request from the user, and a large number of blocks need to be loaded at one time. And the occurrence of latency due to the load process can be suppressed.

またブロック分割時に、異なる階層の画像の同一領域部分を一つのブロックに含ませるようにする。このとき、これらの画像が有する冗長性を利用し、一方の画像を復元するのに必要な情報のうち他方の画像が保持する情報については、ブロック内に2重に保持しないようにする。例えば低解像度の画像と、それを拡大して得られる拡大画像と高解像度の画像との差分画像を一つのブロックに含めて圧縮すれば、高解像度の画像は復元可能である。本実施の形態では上記のようにブロック単位でメインメモリへロードするため、このように画像同士の冗長性を利用できる。このようにすることでデータの圧縮率が上がり、メインメモリを有効に使用することができる。   Further, at the time of block division, the same area portion of images in different layers is included in one block. At this time, by using the redundancy of these images, the information held by the other image among the information necessary for restoring one image is not held twice in the block. For example, if a difference image between a low resolution image and an enlarged image obtained by enlarging the low resolution image and a high resolution image is included in one block and compressed, the high resolution image can be restored. In this embodiment, as described above, since the data is loaded into the main memory in units of blocks, the redundancy between images can be used in this way. By doing so, the data compression rate is increased and the main memory can be used effectively.

さらに、デコードした画像を格納するバッファ領域として、表示用バッファとデコード用バッファの2つのバッファを用意することで、将来表示されると予測できる領域をあらかじめデコードしてデコード用バッファに格納しておく。この場合、新たな画像をデコード用バッファに格納すべきときは、それまで格納されていた画像と重複する領域をそのまま利用する。具体的には、格納済みの画像のうち重複しない領域を新しい画像の領域で上書きした中間画像を生成し、それを繰り返して構成されるリピート画像のうち必要な部分を抜き出すことにより、デコード処理を最小限に、容易に新たな画像を格納することができる。   Further, by preparing two buffers, a display buffer and a decoding buffer, as buffer areas for storing decoded images, an area that can be predicted to be displayed in the future is decoded in advance and stored in the decoding buffer. . In this case, when a new image is to be stored in the decoding buffer, an area overlapping with the previously stored image is used as it is. Specifically, an intermediate image is generated by overwriting a non-overlapping area of a stored image with a new image area, and a decoding process is performed by extracting a necessary portion from a repeat image formed by repeating the intermediate image. A new image can be easily stored at a minimum.

また、バッファ領域を上記のような構成とすることにより、同一階層内での表示領域の移動は処理の負荷が少なくなるため、ユーザの表示画像変更要求に対する応答性を一定以上保持することが容易である。そのため、表示画像と異なる階層のデータを優先的にメインメモリへロードしておくことにより、バッファメモリとの組み合わせで、全体として応答性がよくなる。これらの形態は、装置の構成を複雑にしたり大規模にしたりすることなく実現できる。   In addition, by configuring the buffer area as described above, moving the display area within the same hierarchy reduces the processing load, so it is easy to maintain a certain level of responsiveness to the user's display image change request. It is. Therefore, by preferentially loading data of a layer different from that of the display image into the main memory, the overall response is improved in combination with the buffer memory. These forms can be realized without making the configuration of the apparatus complicated or large-scale.

以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   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.

本発明の実施の形態にかかる画像処理システムの使用環境を示す図である。It is a figure which shows the use environment of the image processing system concerning embodiment of this invention. 図1の画像処理システムに適用できる入力装置の外観構成を示す図である。It is a figure which shows the external appearance structure of the input device applicable to the image processing system of FIG. 本実施の形態において使用する画像データの階層構造を示す図である。It is a figure which shows the hierarchical structure of the image data used in this Embodiment. 本実施の形態における画像処理装置の構成を示す図である。It is a figure which shows the structure of the image processing apparatus in this Embodiment. 本実施の形態における画像データの流れを模式的に示すである。3 schematically shows the flow of image data in the present embodiment. 本実施の形態における制御部の構成を詳細に示す図である。It is a figure which shows the structure of the control part in this Embodiment in detail. 本実施の形態における圧縮データ分割部の構成を詳細に示す図である。It is a figure which shows the structure of the compression data division part in this Embodiment in detail. 本実施の形態の階層データにおける各階層の画像を模式的に示す図である。It is a figure which shows typically the image of each hierarchy in the hierarchy data of this Embodiment. 本実施の形態における画像ブロック生成部が、図8の階層データを画像ブロックにまとめる様子を模式的に示す図である。It is a figure which shows typically a mode that the image block production | generation part in this Embodiment puts the hierarchical data of FIG. 8 into an image block. 本実施の形態におけるブロック分割の手法を説明するための原画像の例を示す図である。It is a figure which shows the example of the original image for demonstrating the block division | segmentation method in this Embodiment. 本実施の形態においてタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示す図である。It is a figure which shows the mode of a division | segmentation when an identification number is provided with respect to the tile image in the raster order in this Embodiment. 本実施の形態において「Z状」の順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。It is a figure which shows the mode of a division | segmentation at the time of giving an identification number to a tile image in order of "Z form" in this Embodiment. 本実施の形態において正方形のマクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。It is a figure which shows the mode of a division | segmentation at the time of giving an identification number to a tile image in order of a square macro tile in this Embodiment. 本実施の形態において短冊状マクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。It is a figure which shows the mode of a division | segmentation when an identification number is provided to the tile image in the strip-like macro tile order in this Embodiment. 画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。It is a figure which shows typically the relationship between the drawing area of an image block and a display image when the boundary line of an image block is comprised by the grid | lattice form. 本実施の形態において画像ブロックの境界線をT字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。It is a figure which shows typically the relationship between the drawing area of an image block and a display image when the boundary line of an image block is made into a T-junction shape in this Embodiment. 本実施の形態において高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。It is a figure for demonstrating the method to compress a high resolution image as a difference image with the enlarged image of a low resolution image in this Embodiment. 本実施の形態においてロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。It is a flowchart which shows the process sequence which determines the image block which should be loaded in this Embodiment, and implements loading. 図18のS42においてメインメモリ格納されているか否かを判定する対象である必要領域を決定するときの概念図である。It is a conceptual diagram when determining the required area | region which is the object which determines whether it is stored in main memory in S42 of FIG. 本実施の形態において先読み処理部が行う先読み処理を説明するための図である。It is a figure for demonstrating the prefetch process which a prefetch process part performs in this Embodiment. 本実施の形態において先読み処理部およびデコード部が画像のデコードを行う際の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence at the time of a prefetch process part and a decoding part decoding an image in this Embodiment. 本実施の形態のバッファメモリのデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部の機能ブロックを示す図である。It is a figure which shows the functional block of a decoding part when the image which should be newly stored in the decoding buffer of the buffer memory of this Embodiment has an overlap part with the image stored so far. 図22のデコード部が画像をデコード用バッファに格納する手順を模式的に示す図である。It is a figure which shows typically the procedure in which the decoding part of FIG. 22 stores an image in the decoding buffer.

符号の説明Explanation of symbols

1 画像処理システム、 10 画像処理装置、 12 表示装置、 20 入力装置、 30 第0階層、 32 第1階層、 34 第2階層、 36 第3階層、 38 タイル画像、 44 表示処理部、 50 ハードディスクドライブ、 60 メインメモリ、 70 バッファメモリ、 72 バッファ領域、 74 バッファ領域、 90 フレームメモリ、 100 制御部、 102 入力情報取得部、 104 圧縮データ分割部、 106 ロードブロック決定部、 108 ロード部、 110 先読み処理部、 112 デコード部、 114 表示画像処理部、 120 識別番号付与部、 122 画像ブロック生成部、 170 重複領域取得部、 172 部分領域デコード部、 174 リピート画像生成部、 176 デコード画像格納部。   DESCRIPTION OF SYMBOLS 1 Image processing system, 10 Image processing apparatus, 12 Display apparatus, 20 Input apparatus, 30 0th hierarchy, 32 1st hierarchy, 34 2nd hierarchy, 36 3rd hierarchy, 38 tile image, 44 Display processing part, 50 Hard disk drive , 60 main memory, 70 buffer memory, 72 buffer area, 74 buffer area, 90 frame memory, 100 control unit, 102 input information acquisition unit, 104 compressed data division unit, 106 load block determination unit, 108 load unit, 110 prefetch processing , 112 decoding unit, 114 display image processing unit, 120 identification number assigning unit, 122 image block generation unit, 170 overlapping region acquisition unit, 172 partial region decoding unit, 174 repeat image generation unit, 176 decoded image storage unit.

Claims (4)

ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理装置であって、
前記要求に基づき必要な領域の圧縮画像データをメモリより読み出しデコードするデコード部と、
前記デコード部がデコードした画像を格納するバッファメモリと、
前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する表示画像処理部と、
を備え、
前記デコード部は、新たな画像を前記バッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する重複領域取得部と、
前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをデコードし、それまで前記バッファメモリに格納されていた画像のうち前記重複領域以外の領域を、新たにデコードした前記部分領域で上書きした中間画像を生成する部分領域デコード部と、
前記部分領域デコード部が生成した中間画像を繰り返して並べたリピート画像を生成するリピート画像生成部と、
前記リピート画像生成部が生成したリピート画像のうち、前記重複領域と前記部分領域とからなる領域を抽出することにより、前記重複領域と前記部分領域とをつなげて前記バッファメモリに格納するデコード画像格納部と、
を備えることを特徴とする画像処理装置。
An image processing apparatus for displaying an area in an image on a display according to a user request,
A decoding unit that reads and decodes compressed image data of a necessary area from a memory based on the request;
A buffer memory for storing an image decoded by the decoding unit;
A display image processing unit that reads at least a part of the image stored in the buffer memory and draws a display area;
With
The decoding unit, when storing a new image in the buffer memory, an overlapping region acquisition unit for specifying an overlapping region between the image stored until then and the new image;
The compressed image data of the area including the partial area excluding the overlapping area in the new image is decoded, and the area other than the overlapping area among the images stored in the buffer memory is newly decoded. A partial area decoding unit for generating an intermediate image overwritten with the partial area;
A repeat image generating unit that generates a repeat image in which the intermediate images generated by the partial region decoding unit are repeatedly arranged;
Decoded image storage that connects the overlapping area and the partial area and stores them in the buffer memory by extracting an area composed of the overlapping area and the partial area from among the repeat images generated by the repeat image generation unit And
An image processing apparatus comprising:
前記バッファメモリは、現在表示されている領域を描画するための画像を格納する表示用バッファ領域と、前記要求に基づき予測される、前記表示用バッファ領域に格納された画像の次に必要となる画像を新たにデコードして格納するためのデコード用バッファ領域を含み、
前記デコード画像格納部は、前記デコード用バッファ領域に格納されていた画像のうち前記重複領域と、新たにデコードした前記部分領域とをつなげて、前記デコード用バッファ領域に格納することを特徴とする請求項1に記載の画像処理装置。
The buffer memory is required next to a display buffer area for storing an image for rendering a currently displayed area and an image stored in the display buffer area predicted based on the request. Includes a decoding buffer area for newly decoding and storing images,
The decoded image storage unit connects the overlapped area of the image stored in the decoding buffer area and the newly decoded partial area, and stores them in the decoding buffer area. The image processing apparatus according to claim 1.
ユーザの要求に従い画像内の領域をディスプレイに表示する画像処理方法であって、
前記要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定するステップと、
前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードするステップと、
それまで前記バッファメモリに格納されていた画像のうち前記重複領域以外の領域を、新たにデコードした前記部分領域で上書きした中間画像を生成するステップと、
前記中間画像を繰り返して並べたリピート画像を生成するステップと、
前記リピート画像のうち、前記重複領域と前記部分領域とからなる領域を抽出することにより、前記重複領域と前記部分領域とをつなげて前記バッファメモリに格納するステップと、
前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画するステップと、
を含むことを特徴とする画像処理方法。
An image processing method for displaying an area in an image on a display according to a user request,
When newly decoding compressed image data of a necessary area based on the request and storing it in the buffer memory, identifying an overlapping area between the image stored so far and the new image;
Reading and decoding compressed image data of a region including a partial region excluding the overlapping region of the new image from a main memory; and
A step of generating an intermediate image in which an area other than the overlapping area of the image previously stored in the buffer memory is overwritten with the newly decoded partial area;
Generating a repeat image in which the intermediate images are repeatedly arranged;
Extracting the region composed of the overlap region and the partial region from the repeat image, connecting the overlap region and the partial region, and storing them in the buffer memory;
Reading at least a portion of the image stored in the buffer memory and rendering a region to be displayed;
An image processing method comprising:
コンピュータに、ユーザの要求に従い画像内の領域をディスプレイに表示させる機能を実現させるコンピュータプログラムであって、
前記要求に基づき必要な領域の圧縮画像データを新たにデコードしてバッファメモリに格納する際、それまで格納されていた画像と新たな画像との重複領域を特定する機能と、
前記新たな画像のうち前記重複領域を除く部分領域を含む領域の圧縮画像データをメインメモリより読み出しデコードする機能と、
それまで前記バッファメモリに格納されていた画像のうち前記重複領域以外の領域を、新たにデコードした前記部分領域で上書きした中間画像を生成する機能と、
前記中間画像を繰り返して並べたリピート画像を生成する機能と、
前記リピート画像のうち、前記重複領域と前記部分領域とからなる領域を抽出することにより、前記重複領域と前記部分領域とをつなげて前記バッファメモリに格納する機能と、
前記バッファメモリに格納した画像の少なくとも一部を読み出し、表示する領域を描画する機能と、
をコンピュータに実現させるコンピュータプログラム。
A computer program for realizing a function of causing a computer to display a region in an image on a display according to a user request,
A function to specify an overlapping area between the image stored so far and the new image when newly decoding the compressed image data of the necessary area based on the request and storing it in the buffer memory;
A function of reading and decoding compressed image data of a region including a partial region excluding the overlapping region of the new image from a main memory;
A function for generating an intermediate image in which an area other than the overlapping area of the image stored in the buffer memory is overwritten with the newly decoded partial area;
A function of generating a repeat image in which the intermediate images are repeatedly arranged;
A function of connecting the overlapping area and the partial area by extracting the area composed of the overlapping area and the partial area from the repeat image, and storing it in the buffer memory;
A function of reading at least a part of an image stored in the buffer memory and drawing an area to be displayed;
A computer program that causes a computer to realize
JP2008255655A 2008-09-30 2008-09-30 Image processing apparatus and image processing method Active JP5331432B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2008255655A JP5331432B2 (en) 2008-09-30 2008-09-30 Image processing apparatus and image processing method
EP09817381.8A EP2330587B1 (en) 2008-09-30 2009-06-30 Image processing device and image processing method
CN200980138067.9A CN102165515B (en) 2008-09-30 2009-06-30 Image processing device and image processing method
PCT/JP2009/003043 WO2010038337A1 (en) 2008-09-30 2009-06-30 Image processing device and image processing method
KR1020117009478A KR101401336B1 (en) 2008-09-30 2009-06-30 Image processing device and image processing method
US13/120,785 US8878869B2 (en) 2008-09-30 2009-06-30 Image processing device and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008255655A JP5331432B2 (en) 2008-09-30 2008-09-30 Image processing apparatus and image processing method

Publications (3)

Publication Number Publication Date
JP2010085779A JP2010085779A (en) 2010-04-15
JP2010085779A5 JP2010085779A5 (en) 2011-07-28
JP5331432B2 true JP5331432B2 (en) 2013-10-30

Family

ID=42249786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008255655A Active JP5331432B2 (en) 2008-09-30 2008-09-30 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP5331432B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5419822B2 (en) 2010-07-23 2014-02-19 株式会社ソニー・コンピュータエンタテインメント Image processing apparatus, image display apparatus, image processing method, and data structure of image file
JP5792607B2 (en) * 2011-12-09 2015-10-14 株式会社ソニー・コンピュータエンタテインメント Image processing apparatus and image processing method
JP2014186196A (en) 2013-03-25 2014-10-02 Toshiba Corp Video picture processing device and video picture display system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114431A (en) * 1995-10-18 1997-05-02 Sapiensu:Kk Still picture reproducing and displaying method and device therefor
JPH1188866A (en) * 1997-07-18 1999-03-30 Pfu Ltd High-definition image display device and program storage medium therefor
JP4609918B2 (en) * 2003-09-19 2011-01-12 株式会社リコー Image processing system, image processing method, program, and information recording medium
JP2005181853A (en) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd Image supply device
JP4743820B2 (en) * 2004-01-19 2011-08-10 キヤノン株式会社 Image display apparatus and program
JP2006113801A (en) * 2004-10-14 2006-04-27 Canon Inc Apparatus and method for displaying image processing result, and program

Also Published As

Publication number Publication date
JP2010085779A (en) 2010-04-15

Similar Documents

Publication Publication Date Title
WO2010038337A1 (en) Image processing device and image processing method
CN103119543B (en) The data structure of image processing apparatus, content production device, image processing method and content file
JP5792607B2 (en) Image processing apparatus and image processing method
JP5037574B2 (en) Image file generation device, image processing device, image file generation method, and image processing method
AU2010313045B2 (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
JP5474887B2 (en) Moving image data generation device, moving image display device, moving image data generation method, moving image display method, and data structure of moving image file
US8928694B2 (en) Image Processing apparatus receiving editing operation, image display device, and image processing method thereof
JP5296656B2 (en) Image processing apparatus and image processing method
US9047680B2 (en) Information processing apparatus, information processing method, and data structure of content files
JP5331432B2 (en) Image processing apparatus and image processing method
JP4809412B2 (en) Image processing apparatus and image processing method
JP2010109700A (en) Image processor
JP5467123B2 (en) Information processing apparatus and information processing method
JP5467083B2 (en) Image processing apparatus, image processing method, and data structure of image
US8972877B2 (en) Information processing device for displaying control panel image and information image on a display
JP5520890B2 (en) Image processing apparatus, image data generation apparatus, image processing method, image data generation method, and data structure of image file

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130624

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: 20130716

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130729

R150 Certificate of patent or registration of utility model

Ref document number: 5331432

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