(57)【要約】【課題】ユーザからの画像変更要求に応じて、表示画像を応答性よく表示することは困難な場合がある。【解決手段】ハードディスクドライブ５０に格納されている異なる解像度の圧縮画像データは、およそ一定のデータサイズのブロックに分割しておく。そして所定の時間間隔で、必要なブロックがメインメモリ６０に格納されているか確認し、格納されていなければメインメモリ６０にロードする（Ｓ１０）。次に、ロードした圧縮画像データのうち、表示に必要な領域の画像、または必要と予測される領域の画像のデータをデコードし、バッファメモリ７０に格納する（Ｓ１２）。表示用バッファであるバッファ領域７２に格納された画像のうち表示領域６８の画像を、フレームメモリ９０に描画する（Ｓ１４）。デコードが完了したタイミングや表示領域６８の変更量などに応じて、表示用バッファとデコード用バッファを切り替える（Ｓ１６）。【選択図】図５
2010087904.tif 000002
【特許請求の範囲】
【請求項１】
画像の少なくとも一部をディスプレイに表示する画像処理装置であって、
処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを保持する記憶装置と、
表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを、前記記憶装置からメモリにロードするロード部と、
ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、前記ロード部がロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する表示画像処理部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記記憶装置は、処理対象の画像の、複数の解像度の画像のそれぞれの圧縮データを分割してなる画像ブロックを保持することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
処理対象の画像の圧縮データを分割して前記画像ブロックを生成し、前記記憶装置に格納する圧縮データ分割部をさらに備え、
前記圧縮データ分割部は、画像を圧縮する最小単位であるタイル画像の圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめて、一の画像ブロックとすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記圧縮データ分割部は、
画像を構成する前記タイル画像に対し、ラスタ順に識別番号を付与する識別番号付与部と、
前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
を備えることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記圧縮データ分割部は、
画像を構成する前記タイル画像に対し、横方向および縦方向に交互にインクリメントしていくように識別番号を付与する識別番号付与部と、
前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
を備えることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記圧縮データ分割部は、
画像を構成するタイル画像を所定の間隔で区切ったマクロタイルに対しラスタ順に、かつ、各マクロタイルを構成するタイル画像に対しラスタ順に識別番号を付与する識別番号付与部と、
前記識別番号付与部が付与した識別番号順にタイル画像の圧縮データをまとめて一の画像ブロックとする画像ブロック生成部と、
を備えることを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記圧縮データ分割部は、
前記画像ブロックの画像上の境界線の少なくとも一部がＴ字形状となるように画像ブロックを生成することを特徴とする請求項３に記載の画像処理装置。
【請求項８】
前記ロード部は、表示中の領域から所定の範囲内の領域、および表示中の画像を所定の縮尺率で拡大、または縮小した画像のうち表示中の領域を含む所定の領域、の少なくともいずれかを前記必要領域とすることを特徴とする請求項２に記載の画像処理装置。
【請求項９】
前記必要領域のデータを含む画像ブロックがメモリに全て格納されているか否かを所定の時間間隔で判定し、格納されていない画像ブロックのロードを前記ロード部に要求するロードブロック決定部をさらに備え、
前記ロード部は、前記ロードブロック決定部の要求に従い、前記画像ブロックをロードすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項１０】
前記ロード部は、前記必要領域の他に、あらかじめ設定された画像内の領域、および、ユーザの表示履歴から推測される表示確率が所定のしきい値より高い領域のデータを含む画像ブロックをさらにロードすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項１１】
前記記憶装置は、処理対象の画像のうち、共通領域を表す複数の解像度の画像の圧縮データを一の画像ブロックに含めて保持することを特徴とする請求項１または２に記載の画像処理装置。
【請求項１２】
前記記憶装置は、共通領域を表す２つの解像度の画像のうち、低解像度の画像と、当該低解像度の画像を拡大した画像と高解像度の画像との差分画像と、をそれぞれ圧縮したデータを一の画像ブロックに含めて保持し、
前記表示画像処理部は、前記低解像度の画像と前記差分画像をそれぞれデコードして足し合わせることにより、前記高解像度の画像をデコードすることを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
画像の少なくとも一部をディスプレイに表示する画像処理方法であって、
処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納するステップと、
表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを前記記憶装置からメモリにロードするステップと、
ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成するステップと、
を含むことを特徴とする画像処理方法。
【請求項１４】
前記格納するステップは、画像を圧縮する最小単位であるタイル画像の圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめて、一の画像ブロックとすることを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記格納するステップは、同一の領域を表す異なる解像度の画像の圧縮データを一の画像ブロックに含めることを特徴とする請求項１３または１４に記載の画像処理方法。
【請求項１６】
コンピュータに、画像の少なくとも一部をディスプレイに表示する機能を実現させるコンピュータプログラムであって、
処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納する機能と、
表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを前記記憶装置からメモリにロードする機能と、
ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした前記画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１７】
画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像のデータ構造であって、
画像を圧縮する最小単位であるタイル画像ごとの圧縮データを、所定のデータサイズを超えない最大データサイズとなるようにまとめた画像ブロックのデータと、各画像ブロックの識別情報とを対応付けた画像のデータ構造。
【請求項１８】
画像を構成する前記タイル画像に対し、ラスタ順に識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項１７に記載の画像のデータ構造。
【請求項１９】
画像を構成する前記タイル画像に対し、横方向および縦方向に交互にインクリメントしていくように識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項１７に記載の画像のデータ構造。
【請求項２０】
画像を構成するタイル画像を所定の間隔で区切ったマクロタイルに対しラスタ順に、かつ、各マクロタイルを構成するタイル画像に対しラスタ順に識別番号を付与し、当該識別番号順に前記タイル画像の圧縮データをまとめて一の画像ブロックとしたことを特徴とする請求項１７に記載の画像のデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイに表示する画像を拡大／縮小、または上下左右に移動させる画像処理技術に関する。
【背景技術】
【０００２】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメント
システムが提案されている。この家庭用エンタテインメントシステムでは、ＧＰＵがポリ
ゴンを用いた三次元画像を生成する（例えば特許文献１参照）。
【０００３】
一方、高精細な写真などのディジタル画像から生成された複数の解像度のタイル画像を用いて、表示画像の拡大／縮小処理や、上下左右方向の移動処理を行う技術が提案されている。この画像処理技術では、原画像サイズを複数段階に縮小して異なる解像度の画像を生成し、各階層の画像を一又は複数のタイル画像に分割して、原画像を階層構造で表現する。通常、最も解像度の低い画像は１つのタイル画像で構成され、最も解像度の高い原画像は、最も多い数のタイル画像で構成される。画像処理装置は、表示画像の拡大処理または縮小処理時に、使用しているタイル画像を、異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行うようにしている。
【特許文献１】米国特許第６５６３９９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような画像処理装置において、表示領域の移動や画像の拡大、縮小（以後、それらをまとめて「画像変更」と呼ぶ）をユーザが要求した場合、タイル画像のデータ読みだし、デコードなどの処理によって、新たな画像が出力されるまでに看過できない時間がかかる場合がある。また応答性をよくするためにアクセス速度の速いメモリに全画像データを格納しようとすると、高精細、高解像度の画像の場合は特に大容量メモリが必要となり、対応できる画像をデータサイズで制限しなければならない事態も発生する。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、ユーザからの画像変更要求に対する応答性に優れた画像処理技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は画像処理装置に関する。この画像処理装置は、画像の少なくとも一部をディスプレイに表示する画像処理装置であって、処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを保持する記憶装置と、表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを、記憶装置からメモリにロードするロード部と、ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロード部がロードした画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成する表示画像処理部と、を備えることを特徴とする。
【０００７】
本発明の別の態様は画像処理方法に関する。この画像処理方法は、画像の少なくとも一部をディスプレイに表示する画像処理方法であって、処理対象の画像の圧縮データを所定の規則で分割してなる複数の画像ブロックを生成し、記憶装置に格納するステップと、表示中の画像の領域に応じて所定の規則で決定した必要領域のデータを含む画像ブロックを記憶装置からメモリにロードするステップと、ユーザからの表示領域の移動、拡大、縮小のいずれかの要求に応じて、ロードした画像ブロックの少なくとも一部をメモリから読み出しデコードし、新たな表示画像を生成するステップと、を含むことを特徴とする。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、ユーザからの画像変更要求に対して優れた応答性を有する画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の実施の形態にかかる画像処理システム１の使用環境を示す。画像処理システム１は、画像処理ソフトウェアを実行する画像処理装置１０と、画像処理装置１０による処理結果を出力する表示装置１２とを備える。表示装置１２は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。表示装置１２は、画像処理装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。画像処理システム１において、画像処理装置１０は、ケーブル１４を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。なお画像処理装置１０は、無線通信により外部ネットワークに接続してもよい。
【００１１】
画像処理装置１０は、たとえばゲーム装置であってよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。なお画像処理装置１０は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。
【００１２】
画像処理装置１０は、ユーザからの要求に応じて、表示装置１２のディスプレイに表示する画像の拡大／縮小処理や、上下左右方向への移動処理など、表示画像を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、表示画像の変更要求信号を画像処理装置１０に送信する。
【００１３】
図２は、入力装置２０の外観構成を示す。入力装置２０は、ユーザが操作可能な操作手段として、十字キー２１、アナログスティック２７ａ、２７ｂと、４種の操作ボタン２６を備える。４種の操作ボタン２６は、○ボタン２２、×ボタン２３、□ボタン２４および△ボタン２５から構成される。
【００１４】
画像処理システム１において、入力装置２０の操作手段には、表示画像の拡大／縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大／縮小要求の入力機能は、右側のアナログスティック２７ｂに割り当てられる。ユーザはアナログスティック２７ｂを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示領域の移動要求の入力機能は、十字キー２１に割り当てられる。ユーザは十字キー２１を押下することで、十字キー２１を押下した方向への移動要求を入力できる。なお、画像変更要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック２７ａに、スクロール要求の入力機能が割り当てられてもよい。
【００１５】
入力装置２０は、入力された画像変更要求信号を画像処理装置１０に伝送する機能をもち、本実施の形態では画像処理装置１０との間で無線通信可能に構成される。入力装置２０と画像処理装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置２０は、画像処理装置１０とケーブルを介して接続して、画像変更要求信号を画像処理装置１０に伝送してもよい。
【００１６】
図３は、本実施の形態において使用する画像データの階層構造を示す。画像データは、深さ（Ｚ軸）方向に、第０階層３０、第１階層３２、第２階層３４および第３階層３６からなる階層構造を有する。なお同図においては４階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつ画像データを「階層データ」とよぶ。
【００１７】
図３に示す階層データは４分木の階層構造を有し、各階層は、１以上のタイル画像３８で構成される。すべてのタイル画像３８は同じ画素数をもつ同一サイズに形成され、たとえば２５６×２５６画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第３階層３６の原画像を複数段階に縮小して、第２階層３４、第１階層３２、第０階層３０の画像データが生成される。たとえば第Ｎ階層の解像度（Ｎは０以上の整数）は、左右（Ｘ軸）方向、上下（Ｙ軸）方向ともに、第（Ｎ＋１）階層の解像度の１／２であってよい。
【００１８】
画像処理装置１０において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の画像処理装置１０は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばＳ３ＴＣ形式、ＪＰＥＧ形式、ＪＰＥＧ２０００形式の圧縮データをデコード可能とする。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層または複数の階層に含まれる複数のタイル画像単位に行われていてもよい。
【００１９】
階層データの階層構造は、図３に示すように、左右方向をＸ軸、上下方向をＹ軸、深さ方向をＺ軸として設定され、仮想的な３次元空間を構築する。画像処理装置１０は、入力装置２０から供給される画像変更要求信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレームの４隅の座標（フレーム座標）を導出する。仮想空間におけるフレーム座標は、後述するメインメモリへのロードおよび表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置１０は、階層を特定する情報と、その階層におけるテクスチャ座標（ＵＶ座標）を導出してもよい。以下、階層特定情報およびテクスチャ座標の組み合わせも、フレーム座標と呼ぶ。
【００２０】
図４は画像処理装置１０の構成を示している。画像処理装置１０は、無線インタフェース４０、スイッチ４２、表示処理部４４、ハードディスクドライブ５０、記録媒体装着部５２、ディスクドライブ５４、メインメモリ６０、バッファメモリ７０および制御部１００を有して構成される。表示処理部４４は、表示装置１２のディスプレイに表示するデータをバッファするフレームメモリを有する。
【００２１】
スイッチ４２は、イーサネットスイッチ（イーサネットは登録商標）であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ４２は、ケーブル１４を介して外部ネットワークに接続し、画像サーバから階層化された圧縮画像データを受信してもよい。またスイッチ４２は無線インタフェース４０に接続し、無線インタフェース４０は、所定の無線通信プロトコルで入力装置２０と接続する。入力装置２０においてユーザから入力された画像変更要求信号は、無線インタフェース４０、スイッチ４２を経由して、制御部１００に供給される。
【００２２】
ハードディスクドライブ５０は、データを記憶する記憶装置として機能する。スイッチ４２を介して受信された圧縮画像データは、ハードディスクドライブ５０に格納される。記録媒体装着部５２は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ５４は、読出専用のＲＯＭディスクが装着されると、ＲＯＭディスクを駆動して認識し、データを読み出す。ＲＯＭディスクは、光ディスクや光磁気ディスクなどであってよい。圧縮画像データはこれらの記録媒体に格納されていてもよい。
【００２３】
制御部１００は、マルチコアＣＰＵを備え、１つのＣＰＵの中に１つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはＰＰＵ（Power Processing Unit）と呼ばれ、残りのプロセッサコアはＳＰＵ（Synergistic-Processing Unit）と呼ばれる。
【００２４】
制御部１００は、メインメモリ６０およびバッファメモリ７０に接続するメモリコントローラを備える。ＰＰＵはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各ＳＰＵに効率的に割り当てる。なお、ＰＰＵ自身がタスクを実行してもよい。ＳＰＵはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ７０として使用されてもよい。
【００２５】
メインメモリ６０およびバッファメモリ７０は記憶装置であり、ＲＡＭ（ランダムアクセスメモリ）として構成される。ＳＰＵは制御ユニットとして専用のＤＭＡ（Direct Memory Access）コントローラをもち、メインメモリ６０とバッファメモリ７０の間のデータ転送を高速に行うことができ、また表示処理部４４におけるフレームメモリとバッファメモリ７０の間で高速なデータ転送を実現できる。本実施の形態の制御部１００は、複数のＳＰＵを並列動作させることで、高速な画像処理機能を実現する。表示処理部４４は、表示装置１２に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
【００２６】
本実施の形態の画像処理装置１０は、表示画像の拡大／縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、後述する規則によって決定した圧縮画像データの一部をハードディスクドライブ５０からメインメモリ６０にロードしておく。また、メインメモリ６０にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ７０に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。
【００２７】
図５は本実施の形態における画像データの流れを模式的に示している。まず階層データはハードディスクドライブ５０に格納されている。ハードディスクドライブ５０に代わり、記録媒体装着部５２やディスクドライブ５４に装着された記録媒体が保持していてもよい。あるいは、画像処理装置１０がネットワークを介して接続した画像サーバから階層データをダウンロードするようにしてもよい。ここでの階層データは上述のとおり、Ｓ３ＴＣ形式などによる固定長圧縮、あるいはＪＰＥＧ形式などによる可変長圧縮がなされている。
【００２８】
この階層データのうち、一部の画像データを圧縮した状態のままメインメモリ６０にロードする（Ｓ１０）。ここでロードする領域は、現在の表示画像の仮想空間における近傍や、画像の内容、ユーザの閲覧履歴等に基づいて、高頻度で表示要求がなされると予測される領域など、あらかじめ定めた規則によって決定する。ロードは、画像変更要求がなされたときのみならず、例えば所定の時間間隔で随時行う。これによりロード処理が一時期に集中しないようにする。
【００２９】
また、ロードする圧縮画像データはおよそ一定のサイズを有するブロック単位とする。そのためハードディスクドライブ５０が保持する階層データは所定の規則でブロックに分割しておく。このようにすることでメインメモリ６０におけるデータ管理が効率よく行える。すなわち、圧縮画像データが可変長圧縮されたものであっても、ブロック（以後、「画像ブロック」と呼ぶ）単位であればロードするデータサイズがほぼ等しいため、基本的にメインメモリ６０にそれまで格納されていたブロックのいずれかを上書きすることによって新たなロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。
【００３０】
次に、メインメモリ６０に格納されている圧縮画像データのうち、表示に必要な領域の画像、または必要と予測される領域の画像のデータをデコードし、バッファメモリ７０に格納する（Ｓ１２）。バッファメモリ７０は、少なくとも２つのバッファ領域７２、７４を含む。各バッファ領域７２、７４のサイズは、フレームメモリ９０のサイズよりも大きく設定され、入力装置２０から画像変更要求信号が入力された場合に、ある程度の量の変更要求に対しては、バッファ領域７２、７４に展開した画像データで表示画像を生成できるようにする。
【００３１】
バッファ領域７２、７４の一方は、表示画像の生成に用いる画像を保持するために利用され、他方は、以後、必要と予測される画像を準備するために利用される。以後、前者を「表示用バッファ」、後者を「デコード用バッファ」と呼ぶ。図５の例では、バッファ領域７２が表示用バッファ、バッファ領域７４がデコード用バッファで、表示領域６８が表示されているものとする。先読み処理によってデコード用バッファに格納する画像は、表示用バッファに格納されている画像と同一階層の画像でもよいし、縮尺の異なる別階層の画像でもよい。
【００３２】
次に、表示用バッファであるバッファ領域７２に格納された画像のうち表示領域６８の画像を、フレームメモリ９０に描画する（Ｓ１４）。この間に、新たな領域の画像が必要に応じてデコードされ、バッファ領域７４に格納される。格納が完了したタイミングや表示領域６８の変更量などに応じて、表示用バッファとデコード用バッファを切り替える（Ｓ１６）。これにより、表示領域の移動や縮尺率の変更などに対し表示画像をスムーズに切り替えることができる。
【００３３】
本実施の形態ではさらに、デコード用バッファへ新たな領域の画像を格納すべきときに、それまで格納されていたデコード済みの画像と重複する領域が存在するときは、当該領域を利用することにより新たにデコードする領域を最小限にする。具体的な手法については後に詳述する。
【００３４】
図６は制御部１００の構成を詳細に示している。制御部１００は入力装置２０からユーザが入力した情報を取得する入力情報取得部１０２、階層データを画像ブロックに分割する圧縮データ分割部１０４、新たにロードすべき画像ブロックを決定するロードブロック決定部１０６、必要な画像ブロックをハードディスクドライブ５０からロードするロード部１０８を含む。制御部１００はさらに、表示画像を描画する表示画像処理部１１４、先読み処理を行う先読み処理部１１０、および圧縮画像データをデコードするデコード部１１２を含む。
【００３５】
図６において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部１００は１つのＰＰＵと複数のＳＰＵとを有し、ＰＰＵおよびＳＰＵがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３６】
入力情報取得部１０２は、ユーザが入力装置２０に対して入力した、画像表示の開始／終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。
【００３７】
圧縮データ分割部１０４は、ハードディスクドライブ５０などから階層データを読み出し、後述する所定の規則により分割して画像ブロックを生成し、ハードディスクドライブ５０に格納する。例えばユーザが入力装置２０に対し、ハードディスクドライブ５０に格納されている階層データのいずれかを選択すると、入力情報取得部１０２から当該情報を取得し、分割処理を開始する。
【００３８】
一方、圧縮データ分割部１０４は制御部１００の他の機能と同一の装置内になくてもよく、階層データを生成する段階で分割するようにしてもよい。具体的な分割手法は後に詳述するが、ハードディスクドライブ５０の速度やメインメモリ６０の容量などハードウェアの性能によって、圧縮データ分割部１０４が行うブロック分割の方法は異なっていていよい。そのため、圧縮データ分割部１０４にはあらかじめ、画像処理装置１０が有するハードウェア性能に応じた最適なブロック分割を行うように設定しておく。
【００３９】
ロードブロック決定部１０６は、ハードディスクドライブ５０からメインメモリ６０へ新たにロードすべき画像ブロックの有無の確認、および次にロードする画像ブロックの決定を行い、ロード部１０８にロード要求を発行する。ロードブロック決定部１０６は、ロード部１０８がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが画像の変更要求を行った際など、所定のタイミングで上記確認、決定の処理を行う。ロード部１０８は、ロードブロック決定部１０６からの要求に従い、実際のロード処理を行う。
【００４０】
ユーザが表示画像の変更要求を行った際、もし変更先の画像領域を含む画像ブロックがメインメモリ６０に格納されていなかったら、ハードディスクドライブ５０からの画像ブロックのロード、必要領域のデコード、表示画像の描画、といった処理を一度に行う必要がある。この場合、ロード処理がボトルネックとなり、ユーザの要求に対する応答性が損なわれることが考えられる。本実施の形態では、（１）今後表示される可能性の高い領域を網羅するように画像ブロックをロードしておく、（２）ロード処理が一時期に集中しないように随時ロードしていく、というポリシーの元でロードを行う。これによりロード処理が表示画像の変更処理の妨げになることが少なくなる。ロードする画像ブロックの決定手順については後に詳述する。
【００４１】
先読み処理部１１０は、現在の表示画像のフレーム座標とユーザが入力した表示画像変更要求の情報に従い、将来表示画像の描画に必要とされるであろう画像領域を予測し、その情報をデコード部１１２に供給する。ただし画像表示開始直後や、バッファメモリ７０に格納済みの画像では変更先の画像が描画できない場合などは、予測をせずに、その時点の表示画像の描画に必要な画像を含む所定領域の情報をデコード部１１２に供給する。デコード部１１２は、先読み処理部１１０から取得した画像領域の情報に基づき、メインメモリ６０から圧縮画像データの一部を読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。
【００４２】
表示画像処理部１１４は、ユーザが入力した表示画像変更要求に従い新たな表示画像のフレーム座標を決定し、バッファメモリ７０の表示用バッファから対応する画像データを読み出し、表示処理部４４のフレームメモリ９０に描画する。
【００４３】
次に、階層データを画像ブロックに分割する手法について説明する。図７は圧縮データ分割部１０４の構成を詳細に示している。圧縮データ分割部１０４は、識別番号付与部１２０、画像ブロック生成部１２２を含む。識別番号付与部１２０は、階層データを構成する各階層のタイル画像に所定の順序で０から順に識別番号を付与していく。画像ブロック生成部１２２は、データサイズの合計が所定のサイズを超える直前まで識別番号順にタイル画像をまとめていき、画像ブロックを生成する。
【００４４】
図８は、階層データにおける各階層の画像を模式的に示している。階層データは図３と同様、第０階層３０ａ、第１階層３２ａ、第２階層３４ａ、および第３階層３６ａの画像からなるとする。そして各階層の画像のうち実線で区切られた区画のひとつひとつがタイル画像である。識別番号付与部１２０は、同図に示すように、各タイル画像に識別番号を付与する。例えば第０階層３０ａの画像は、１つのタイル画像で構成され、識別番号を「０」とする。第１階層３２ａ、第２階層３４ａ、第３階層３６ａはそれぞれ、「１」と「２」、「３」から「８」、「９」から「４４」の識別番号を各タイル画像に付与する。図８の例では、識別番号を付与する順序をラスタ順として示しているが、後述するようにそれ以外の順序でもよい。
【００４５】
図９は画像ブロック生成部１２２が、図８の階層データを画像ブロックにまとめる様子を模式的に示している。上述のように画像ブロック生成部１２２は、所定のデータサイズを超えない最大数のタイル画像で画像ブロックが構成されるように、識別番号の小さい方からタイル画像を区切っていく。同図では、このときの「所定のデータサイズ」を「基本ブロックサイズ」として矢印の範囲で表している。
【００４６】
同図の例では、識別番号「０」から「５」のタイル画像が画像ブロック２、「６」から「８」のタイル画像が画像ブロック４、というようにそれぞれ画像ブロックにまとめられていき、「４１」から「４４」のタイル画像が最終の画像ブロック６となっている。各画像ブロックは、先頭のタイル画像の識別番号と含まれるタイル画像の数で識別する。したがって画像ブロック２は「（０，６）」、画像ブロック４は「（６，３）」、画像ブロック６は「（４１，４）」なる識別情報を有する。このように識別情報を定義すると、あるタイル画像がある画像ブロックに含まれるか否かを容易に判定することができる。すなわち、ブロック分割方法に関わらず、識別番号の範囲を確認するのみで、画像ブロックに含まれるタイル画像を特定できる。
【００４７】
画像ブロックの識別情報は、対応する圧縮画像データのハードディスクドライブ５０における格納領域の情報と対応づけて、ハードディスクドライブ５０に格納しておく。このように、圧縮画像データをおよそ同じサイズの画像ブロックに分割しておけば、上述のとおり、ロードした画像ブロックをメインメモリ６０内の連続した領域に格納しても、一つの画像ブロックをその後にロードされた画像ブロックで上書きしていくことにより格納が可能であり、フラグメンテーションの発生を抑制できるとともに、メインメモリ６０を効率的に使用できる。
【００４８】
上記のように識別番号順に画像ブロックの区切りを設定していく場合、識別番号のタイル画像への付与順によって、原画像がどのように分割されるかが大きく異なる。以下、いくつかの例を説明する。図１０は、本実施の形態におけるブロック分割の手法を説明するための原画像の例である。なお図１０〜１４はグレースケールを示しているが、実際にはフルカラーでよい。原画像２００は例えば９２３２３×３４６３０画素を有しそれを３６１×１３６個のタイル画像に分割する。
【００４９】
図１１〜１４は、基礎ブロックサイズを１Ｍバイトとして様々な識別番号の付与順で図１０の原画像２００を分割した様子を示している。各画像は、画像ブロックの境界がわかりやすいように、画像ブロックごとにグレースケールの濃淡を異ならせている。図１１は、図８のようにタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示している。ラスタ順分割画像２０２は、タイル画像を横方向にまとめた形の画像ブロックに分割されている。拡大画像２０４において示した幅２０６が画像ブロックの縦方向の長さとなる。横方向の長さは画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化し、一つの画像ブロックが複数行のタイル画像に渡る場合もある。
【００５０】
図１１のような識別番号の付与順であれば付与そのものの処理が容易である。また、このようにブロック分割すると、一つの画像ブロックが保持する情報は横方向について多くなる。そのため画像の内容上、横方向に表示領域を移動させることが多いような場合には、少ない回数のロードによって、移動後の表示領域を網羅できる画像ブロックがメインメモリ６０に格納できる。一方、表示領域の移動にそのような特性がない場合は、一つの表示画像を生成するために多数の画像ブロックをロードする必要があるうえ、表示画像から遠い箇所の無駄な情報を多く取り込むことになり、効率が悪い。
【００５１】
図１２は、「Ｚ状」の順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「Ｚ状」の順とは、同図の識別番号付与例２１２のスキャン順２１４に示すように、画像の横方向（Ｘ方向）と縦方向（Ｙ方向）に交互にインクリメントしていく順序である。すると、同図に記載された数字のように識別番号が付与される。この順で画像ブロックにまとめていくと、Ｚ状順分割画像２０８のような画像ブロックに分割される。拡大画像２１０において一つの画像ブロックは画像ブロック２１６のような形状を有する。
【００５２】
すなわちこの手法では、あるタイル画像を始点に横方向、縦方向に同量ずつ拡大していくように識別番号を付与しているため、この場合の画像ブロック２１６は正方形に近い形となる。詳細な形状および大きさは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズに依存する。図１２のようにブロック分割すると、１つの画像ブロックが有する情報は空間局所性がよくなり、表示画像やその近傍の領域の画像を生成するのに必要な画像ブロックが図１１の場合と比べて少なくなる。さらに無駄な領域の情報がロードされにくく、メインメモリ６０の使用効率がよくなる。
【００５３】
図１３は、正方形のマクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。ここで「マクロタイル」とは、複数のタイル画像で構成される矩形のことであり、縦、横に含まれるタイル画像の数はあらかじめ設定しておく。なお図１２の例は２×２個のタイル画像で構成されるマクロタイルを再帰的に形成していると考えることもできる。図１３の場合は、マクロタイル２２２に示すように、８×８個のタイル画像で構成される正方形を１つのマクロタイルとしている。そしてマクロタイル２２２内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように、各タイル画像に識別番号が付与される。１つのマクロタイルに対し識別番号が付与し終わったら、同様の付与を全マクロタイルに対してラスタ順に行っていく。
【００５４】
この順で画像ブロックにまとめていくと、正方形マクロタイル順分割画像２１８のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、マクロブロックを横方向にまとめた形状を有する。拡大画像２２０においてマクロタイル２２２の一辺の長さ、あるいはその整数倍が画像ブロックの縦方向の長さとなる。横方向の長さは、各画像ブロックに含まれるタイル画像の圧縮後のデータサイズによって変化する。図１３のようにブロック分割した場合も図１２の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。
【００５５】
図１４は、短冊状マクロタイル順でタイル画像に識別番号を付与した場合の分割の様子を示している。短冊状マクロタイルは横方向に含まれるタイル画像の数のみを設定し、縦方向は無制限とするマクロタイルである。図１４の場合はマクロタイル２３０に示すように、横方向が１６個のタイル画像で構成されている。そしてマクロタイル２３０内で矢印の方向、すなわちラスタ順に識別番号を付与する。これにより、同図に記載された数字のように各タイル画像に識別番号が付与される。識別番号の付与が原画像の下端までなされたら、その右に位置するマクロタイル、というように、同様の付与を全マクロタイルに対してラスタ順に行っていく。
【００５６】
この順で画像ブロックにまとめていくと、短冊状マクロタイル順分割画像２２４のような画像ブロックに分割される。すなわちこの場合の画像ブロックは、縦一列のマクロタイルを、タイル画像の圧縮後のデータサイズに応じて途中で区切った形状を有する。場合によっては複数列のマクロタイルに渡ることもある。拡大画像２２６においてマクロタイルの幅２２８、あるいはその整数倍が、画像ブロックの横方向の幅となる。画像ブロックの区切り部分における境界線の詳細な形状も、タイル画像の圧縮後のデータサイズに応じて変化する。図１４のようにブロック分割した場合も図１２、１３の場合と同様に、表示画像やその近傍の領域の画像を生成するために必要な画像ブロック数が抑えられ、ロードの効率がよくなる。
【００５７】
上述のように識別番号を付与する順序や、基本ブロックサイズによって、画像ブロックの形状、大きさ、含まれる情報が大きく異なる。したがって、画像の内容やジャンル、例えば風景写真であるか新聞などの文字の画像であるか、などによって最も効率的にデータの取り込みが可能な条件を求めておき、実際の画像に応じて選択するようにしてもよい。また前述のようにハードウェアの構成によって最適な手法を選択するようにしてよい。
【００５８】
以上のように画像を分割した結果得られる画像ブロックは、ほぼ均一なデータサイズでタイル画像をまとめたものであるため、その面積は、上述のように構成するタイル画像の圧縮後のデータサイズに依存する。図１０の原画像２００において、画像の上半分は空の領域で色が比較的均一なため、高周波成分が少なく圧縮率が高い。一方、原画像２００の中央付近は建造物などがあるため色の変化が大きく、高周波成分が多いため圧縮率が低い。したがって、原画像２００のうち上半分のタイル画像の圧縮後のデータサイズは中央付近のデータサイズより小さい傾向を有する。
【００５９】
これを踏まえて例えば図１４の短冊状マクロタイル順分割画像１２４を見ると、上半分の画像ブロックの面積は、中央付近の画像ブロックより大きい傾向となっている。その他の分割画像でも同様である。すなわち本実施の形態では、画像の面積を単純に均等に分割するのではなく、データサイズによって分割している。このようにすることで、単位面積当たりのデータサイズが小さい領域は、一度のロードで広い面積の圧縮データをメインメモリ６０に格納することができ、メモリ内で管理すべきブロック数が少なくなるため管理が容易になるうえ、ロードの効率がよくなる。
【００６０】
図１２に示したＺ状順分割画像２０８の例では、Ｚ状に識別番号を付与することにより画像ブロックを正方形に近づけ、空間局所性を向上させた。同図の例では、識別番号を付与済みのタイル画像が所定の大きさの正方形まで到達したら、新たな始点から識別番号を付与していくようにしており、このときの始点を原画像２００内でマトリクス状に配置していた。そのため、画像ブロックの境界線はおよそ互いに直交する格子状になっている。一方、画像ブロックの境界線が格子状にならないように工夫してもよい。
【００６１】
図１５は画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域１３２において、画像ブロック１３４ａは横３つ、縦２つのマトリクス状になっており、その境界線は格子状となっている。このようにブロック分割を行うと、同図のように描画領域１３６ａが格子の交点を含むような位置になると、描画に必要な画像ブロックが４つになる。
【００６２】
図１６は画像ブロックの境界線をＴ字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示している。原画像の一領域２３８において、画像ブロック１３４ｂは縦方向の境界線が行によってずれるように配置され、結果として境界線がＴ字路形状になっている。このようにブロック分割を行うと、同図のように描画領域１３６ｂが境界線を跨いでも、描画に必要な画像ブロックは最大で３つとなり、図１５の場合と比較してロードの効率がよくなる。このように画像ブロックが配置されるようにするには、例えば、上述の識別番号付与の始点をマトリクス状に配置するのではなく、行によってずらすようにすればよい。
【００６３】
これまで述べたブロック分割の手法は全て、同一の階層にある画像に対するものであった。一方、複数の階層にまたがるように識別番号を付与していくことにより、一つの画像ブロックに複数の階層のタイル画像の情報が含まれるようにしてもよい。このようにすると、同一階層の画像上での表示領域の移動のみならず、表示画像の拡大、縮小に対しても、ロードの回数を軽減させることができる。
【００６４】
このとき、複数の階層のタイル画像を単に同じように圧縮してから画像ブロックとしてまとめてもよいし、解像度の異なる同じ画像同士の冗長性を利用して、一方の画像を他方の画像を用いて復元するようにし、圧縮率を上げてもよい。本実施の形態では、一つの画像ブロックに含まれる情報は常にセットでロードされるため、このような手法が可能となる。例えば、低解像度画像を高解像度画像の倍率まで拡大した画像と、実際の高解像度画像との差分画像を圧縮して、低解像度画像の圧縮データとともに画像ブロックに含める。この場合、低解像度画像、差分画像の順で画像ブロックにまとめていき、基礎ブロックサイズを超えない最大のデータサイズとなったときに、次の画像ブロックを形成していくようにする。
【００６５】
図１７は高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。本処理は圧縮データ分割部１０４が行うが、階層データを生成する段階で、画像表示に係るその他の処理とは別に行ってよい。まず階層データ１３９における第２階層３４および第３階層３６の原画像をそれぞれ読み出す（Ｓ２０、Ｓ２２）。この例では同図に示すように、第３階層画像３６ｂは第２階層画像３４ｂを縦および横に２倍した画像となっている。これらの画像のうち、第２階層画像３４ｂのタイル画像のいくつかを、通常通り圧縮する（Ｓ２４）。次に第３階層画像３６ｂの対応するタイル画像を圧縮する代わりに、当該タイル画像と、第２階層画像３４ｂのタイル画像を２×２倍に拡大した画像との差分画像を圧縮する（Ｓ２６）。
【００６６】
このとき、第２階層画像３４ｂにおける圧縮対象のタイル画像は、図１１〜１４で例示したのと同様に、およそ同じデータサイズとなるように原画像を分割してなる領域のタイル画像などとする。あるいは、あらかじめ定めた数のタイル画像とし、上述したように画像ブロックを形成する段階でデータサイズが均一になるように調整してもよい。
【００６７】
その結果、第２階層画像３４ｂの圧縮データ１４０と差分画像の圧縮データ１４２が生成される。同図では理解を容易にするため圧縮データも画像で表現し、差分画像の圧縮データ１４２は差分であることを示すために網掛け画像としている。これらの圧縮データを一つの画像ブロック１４４に含ませる。なおこの例では第２階層画像３４ｂと第３階層画像３６ｂのひとつの組み合わせのみが画像ブロック１４４に入るように図示されているが、３つ以上の階層の画像を同様に含めてもよい。すなわち、最も低解像度の画像はそのまま圧縮し、高解像度の画像はひとつ上の階層の画像との差分画像によって表現する。また、そのような依存関係を有する圧縮データの組を複数、画像ブロック１４４に含めるようにしてもよい。
【００６８】
このようにして生成した画像ブロック１４４は、ハードディスクドライブ５０に格納しておく。そしてロード部１０８が必要に応じてメインメモリ６０にロードする。その後、先読み処理部１１０などの判断によってデコード部１１２によってデコードされる。このとき、第２階層画像３４ｂの圧縮データ１４０は通常通りの処理でデコードされ、第２階層画像３４ｂとなる（Ｓ２８）。一方、差分画像の圧縮データ１４２は、まず通常通りデコードした後（Ｓ３０）、デコードした第２階層画像３４ｂを２×２倍に拡大した画像と足し合わせることにより（Ｓ３２、Ｓ３４）、第３階層画像３６ｂとなる。
【００６９】
上記の例では低解像度画像の拡大画像との差分画像を高解像度画像のデータとして圧縮したが、逆に高解像度画像を利用して低解像度画像を作成するようにしてもよい。例えば高解像度画像をウェーブレット圧縮してハードディスクドライブ５０に格納しておき、必要に応じてメインメモリ６０にロードした後、デコード部１１２は、当該高解像度画像の圧縮画像のローパス画像を生成することで低解像度画像としてもよい。同様に、高解像度画像をＪＰＥＧ圧縮し、その高周波成分をカットして低解像度画像としてもよい。あるいはそのようにして生成した低解像度画像と元の低解像度画像との差分画像を圧縮して同一の画像ブロックに含めておき、上述と同様に差分画像を加算することで低解像度画像を復元してもよい。またはピラミッドフィルタにより２×２のピクセル群から１ピクセルを求めてもよい。これらの手法により、メインメモリ６０へのロード時間の短縮、メインメモリ６０の領域の有効利用が実現できる。
【００７０】
次に、ハードディスクドライブ５０に格納された画像ブロックからメインメモリ６０へロードすべき画像ブロックを決定し、ロードする手法について説明する。図１８は、ロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。この処理は、例えば所定の時間間隔で随時行う。まずロードブロック決定部１０６は、ロード部１０８が現在ロード中であるか否かを確認する（Ｓ４０）。ロード中であれば処理を終了する（Ｓ４０のＹ）。
【００７１】
ロード中でなければ（Ｓ４０のＮ）、後述する画像上の領域についてメインメモリ６０に該当するデータがあるか否かを判定する（Ｓ４２）。このためには例えば、メインメモリ６０に格納されている画像ブロックの識別情報、すなわち先頭のタイル画像の識別番号とタイル画像の数からなる情報と、その先頭アドレスとを対応させたテーブルをメインメモリ６０に格納しておく。そして必要なタイル画像の識別番号に基づき当該テーブルを検索することにより、データの有無を判定することができる。ここで判定対象の領域は１つのタイル画像でもよいし、複数のタイル画像を含んでもよい。このような領域を「必要領域」と呼ぶ。
【００７２】
もし必要領域のうちメインメモリ６０にロードされていない領域が存在したら（Ｓ４４のＹ）、当該領域を含む画像ブロックを、当該領域に含まれるタイル画像の識別番号と画像ブロックの識別情報とから特定し、それをロード対象として決定する（Ｓ４６）。このとき複数の画像ブロックをロードする必要が生じた場合は、あらかじめ定めた規則に従い、優先度の高い画像ブロックをロード対象として決定する。すなわち１回のロード処理において、多くの画像ブロックを一度にロードしないようにする。
【００７３】
一度にロードする画像ブロックが多くなるほど、ロードに要する時間が増加するが、その間に表示画像の変更要求がユーザよりなされると、必要領域が変化してしまい、そのときのロード処理が無駄になる可能性がある。このような事態を回避するため、ロードブロック決定部１０６は随時、ロードすべき画像ブロックを決定していき、１度にロードする画像ブロックは１つ、あるいは所定の数以内、と制限する。
【００７４】
ロードブロック決定部１０６がロード対象を決定したら、ロード部１０８が、画像ブロックの識別情報と格納領域とを対応付けたテーブルに基づき、ロード対象である画像ブロックをハードディスクドライブ５０から読み出して、メインメモリ６０に格納する（Ｓ４８）。Ｓ４４において必要領域の全てがメインメモリ６０に格納されていたら処理を終了する（Ｓ４４のＮ）。
【００７５】
図１９はＳ４２においてメインメモリ６０に必要領域のデータが格納されているか否かを判定する対象である必要領域を決定するときの概念図である。メインメモリ６０には、基本的には現在表示されている領域の周辺の画像の圧縮データがロードされていることが望ましい。ここで「周辺」とは、同一階層の画像における上下左右（Ｘ軸、Ｙ軸）方向と、階層構造の深さ（Ｚ軸）方向の周辺を含んでよい。Ｚ軸方向の周辺とは、表示画像およびその近傍を含む拡大画像および縮小画像を意味する。
【００７６】
図１９は、上から第ｎ−１階層、第ｎ階層、第ｎ＋１階層の画像の一部を示しており、各画像内にタイル画像が示されている。各階層で示している画像は、中心線１５４において同一箇所を表示する。そして第ｎ階層の画像の中央付近の領域１５０が現在表示されている領域であるとすると、必要領域は、例えば黒丸１５２ａ、１５２ｂ、１５２ｃなどを含む領域とする。すなわち表示画像の階層である第ｎ階層の画像においては、表示画像の領域１５０内の中心（中心線１５４の地点）および四隅の地点と、領域１５０を上下左右に伸張した矩形の各辺の中点と四隅の地点を含むタイル画像を必要領域とする。
【００７７】
一方、表示画像と隣接する階層である第ｎ−１階層と第ｎ＋１階層の画像においては、中心線１５４の地点と、それを重心とする所定サイズの矩形の四隅の地点を含むタイル画像を必要領域とする。この場合の矩形は、表示画像の矩形の大きさに相当する大きさでもよい。表示領域が移動しても常にこのような地点を含む画像ブロックがメインメモリ６０にロードされていれば、円滑にデコードおよび描画を行え、ユーザによる画像変更要求に対する応答性がよくなる。
【００７８】
なお図１９に示した地点はあくまで例示であり、画像の内容や画像処理装置１０の処理性能、メインメモリ６０の容量などにより、数を増減させたり配置形状を変化させたりしてもよい。さらに、画像の内容上重要な領域や、同一ユーザによる表示履歴から、過去に高頻度で表示された領域やユーザの嗜好に合致すると思われる領域は、表示画像の変化に関わらず優先的にロードするようにしてもよい。ここで「重要な領域」とは、例えば人物の画像であれば顔付近、電子チラシであれば目玉商品などの表示領域である。また、ユーザの嗜好とは、新聞紙面の画像であればユーザがよく閲覧する欄などである。このような領域は、図１８のＳ４６において複数の画像ブロックをロードする必要が生じた場合でも、高い優先度を与えてロードされるようにする。あるいは画像表示を開始した段階でロードしておくようにしてもよい。
【００７９】
図１８のＳ４６における優先度については、そのほかに、例えば次のような規則を用意してもよい。まず、表示画像と同一階層内の画像ブロックより、別の階層、すなわち拡大画像および縮小画像の画像ブロックを優先させる。これは、同一階層内での表示領域の移動の場合、バッファメモリ７０における２つのバッファ領域７２および７４に格納したデコード画像で賄える可能性が高いのに対し、階層間の移動ではバッファメモリ７０のデコード画像をすべて更新しなければいけない可能性が高いためである。ただし２つの階層間を往復するような場合はバッファメモリ７０で充足する場合もある。
【００８０】
また、階層が深い、すなわち拡大画像の画像ブロックより、階層が浅い、すなわち縮小画像の画像ブロックを優先させる。拡大画像はロード、デコードが間に合わなかったとしても、縮小画像を拡大することにより暫定的な対応が容易であるが、その逆は困難なためである。
【００８１】
図２０は先読み処理部１１０が行う先読み処理を説明するための図である。図２０は、階層データの構造を示しており、各階層はＬ０（第０階層）、Ｌ１（第１階層）、Ｌ２（第２階層）、Ｌ３（第３階層）と表現されている。矢印８０は、ユーザからの画像変更要求が、表示画像の縮小を要求しており、Ｌ２をまたいだ様子を示している。本実施の形態の画像処理装置１０では、元の画像データが存在するＬ１、Ｌ２の深さ方向の位置を、深さ方向の先読み境界として設定し、入力装置２０からの画像変更要求が先読み境界を超えたタイミングで先読み処理を開始する。
【００８２】
表示画像の縮尺率がＬ２の近傍にある場合、Ｌ２（第２階層）の画像を用いて表示画像を作成する。具体的には、表示する画像の縮尺率が、Ｌ１の画像とＬ２の画像の切替境界８２と、Ｌ２の画像とＬ３の画像の切替境界８４の間にある場合に、Ｌ２の画像を縮小、拡大して表示画像を生成する。したがって、矢印８０に示すように画像の縮小処理が要求されると、Ｌ２の拡大画像から、縮小画像に変換されて表示される。本実施の形態の画像処理装置１０は、画像変更要求から予測される将来必要な画像を特定して、メインメモリ６０から読み出し、デコードしておく。図２０の例では、画像変更要求による要求縮尺率がＬ２をまたいだときに、縮小方向にあるＬ１の画像をメインメモリ６０から先読みしてデコードし、バッファメモリ７０に書き込む。
【００８３】
同一階層における上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ７０に格納されている画像データに先読み境界を設定しておき、画像変更要求による表示位置が先読み境界をまたいだときに、先読み処理が開始されるようにする。
【００８４】
図２１は先読み処理部１１０およびデコード部１１２が画像のデコードを行う際の処理手順を示すフローチャートである。まず入力装置２０からの画像変更要求信号をもとに、要求される表示画像の変更量を導出する（Ｓ５０）。表示画像の変更量は、上下左右方向の移動量および深さ方向の移動量である。次に、階層構造におけるそれまでの表示領域の四隅のフレーム座標から、導出された変更量により移動先の表示領域の四隅のフレーム座標を決定する（Ｓ５２）。
【００８５】
そして決定した四隅のフレーム座標で特定される領域を表示するための画像領域が既にデコードされて、バッファメモリ７０のバッファ領域７２またはバッファ領域７４のいずれかに格納されているか判定する（Ｓ５４）。既にバッファ領域７２またはバッファ領域７４に必要な画像領域が存在している場合には（Ｓ５４のＹ）、要求される縮尺率が先読み境界を超えているか判定する（Ｓ５６）。先読み境界を超えていなければ、バッファメモリ７０はそのままに処理を終了する。
【００８６】
Ｓ５２で決定した四隅のフレーム座標で特定される領域を表示するための画像領域がバッファメモリ７０に存在しない場合（Ｓ５４のＮ）、および要求される縮尺率が先読み境界を超えている場合に（Ｓ５６のＹ）、先読み処理部１１０はデコード部１１２に対して、必要な画像領域のデコードを指示する。デコード部１１２は、指示された画像領域のデータをメインメモリ６０から取得してデコードし、バッファ領域７２またはバッファ領域７４に格納する（Ｓ６０）。これにより、表示画像処理部１１４による表示画像の生成前に、必要な画像領域をバッファメモリ７０に展開することができる。
【００８７】
表示用バッファに格納された画像の一部が表示されているとき、デコード用バッファにおいて次に必要となる画像は、同一階層内での移動では、例えば、表示領域が先読み境界をまたいだ時、当該表示領域が移動方向の始点側の端に含まれるような画像である。この場合、バッファ領域７２およびバッファ領域７４に格納される画像は、少なくとも表示画像の大きさ分の重複領域を有し、さらに先読み境界の設定位置によって重複領域が増えることになる。先読み境界を超えたときに新たにデコードすべき画像の範囲は、あらかじめ処理速度などに応じて設定しておく。あるいは画像の内容によって変化させてもよい。
【００８８】
上記のようにデコード用バッファを用いると、新たに格納する画像と、それまでにデコード用バッファに格納されていた画像の一部が重複することがあり得る。このような性質を利用して、本実施の形態では次に述べるような処理により、新たにデコードする領域を減らし、デコード処理の負荷を軽減する。
【００８９】
図２２はバッファメモリ７０のデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部１１２の機能ブロックを示している。デコード部１１２は、重複部分の領域を特定する重複領域取得部１７０、重複していない領域を新たにデコードして、それまでに格納されていた画像の一部を上書きする部分領域デコード部１７２、上書きした画像を繰り返して並べた画像を生成するリピート画像生成部１７４、および並べた画像の一部を抜き出し最終的なデコード画像としてデコード用バッファに格納するデコード画像格納部１７６を含む。
【００９０】
図２３は、図２２のデコード部１１２が画像をデコード用バッファに格納する手順を模式的に示している。上述のとおり、表示用バッファに格納された画像内で表示領域が先読み境界を超えるなどしたときに、デコード用バッファに新たな画像を格納する必要が生じる。この時点ですでにデコード用バッファに格納されている画像が、同図左上の画像１６０である。一方、新たに格納すべき画像は同図右上の画像１６２であるとする。すなわち同図は、表示領域が左に移動しており、元の「丸」や「三角」の図形から、その左にある「星」の図形を表示する見込みがある、という状況を示している。
【００９１】
上述の理由から、画像１６０と画像１６２は重複領域を有する。同図の例では、横方向（Ｘ軸）がｘ０からｘ２までの領域で構成される画像１６２のうち、ｘ１からｘ２までの領域が画像１６０と重複している。このような場合、格納済みの画像１６０のうち、重複しているｘ１からｘ２までの領域は新たに格納すべき画像の一部としてそのまま利用する。
【００９２】
具体的には、部分領域デコード部１７２が、新たに格納すべき画像１６２のうち、画像１６０と重複していないｘ０からｘ１までの領域のみをデコードし、格納済みの画像１６０のうちもはや必要のないｘ２からｘ３までの領域を上書きする（Ｓ７０）。ただし、例えば圧縮をタイル画像単位で行っている場合など圧縮単位の配置によっては、重複していないｘ０からｘ１までの領域のみをデコードすることができない場合がある。この場合は、当該領域を含み、デコードが可能な最小の領域をデコードしたあと、ｘ０からｘ１までの領域のみを抽出してｘ２からｘ３までの領域を上書きする。
【００９３】
Ｓ７０の処理を行うため、バッファメモリ７０のバッファ領域７２、７４には、現在格納されている画像の左下の座標を格納する領域を設ける。そして重複領域取得部１７０は、新たに格納すべき領域の左下の座標と比較することにより、重複領域を特定する。なおデコード前に重複領域を特定する処理に所定値以上の負荷がかかる場合は、新たに格納すべき画像１６２を全てデコードしたうえで重複していない領域のみを上書きするようにしてもよい。
【００９４】
次にリピート画像生成部１７４が、そのようにしてできた中間画像１６４を横方向に繰り返したリピート画像１６６を仮に作成する（Ｓ７２）。単位画像を縦方向、横方向に繰り返した画像は、画像処理において一般的に用いられる技術によって生成できる。そしてデコード画像格納部１７６が、リピート画像１６６において中間画像の境界の座標を０としたとき、−（ｘ１−ｘ０）からｘ２−ｘ１までの領域を取り出し、デコード用バッファに新たに格納する（Ｓ７４）。これにより、新たに格納すべき画像１６２がデコード用バッファに格納されたことになる。同図の例では横方向のみの移動に着目しているが、縦方向のみの移動や、縦方向、横方向の双方の移動でも同様に処理することにより重複領域以外の領域のみをデコードすればよくなる。ただし、縦方向、横方向の双方の移動の場合は、リピート画像１６６は縦横に２回ずつ中間画像１６４を繰り返した画像となる。
【００９５】
このようにすることで、必要最低限のデコードのみで先読みした領域をデコード用画像に格納することができるため、デコード処理による画像表示のレイテンシーを抑えることができる。なおデコード用バッファに格納する画像は、中間画像１６４としてもよい。この場合、表示画像処理部１１４が、ユーザからの指示入力に従いデコード用バッファから当該中間画像１６４を読み出して上述のＳ７２、Ｓ７４の処理を行い、新たに格納すべき画像１６２を表示処理部４４のフレームメモリ９０に描画する。
【００９６】
以上は、同一階層における表示領域の移動に対する先読み処理におけるデコード手法である。一方、表示されている中心地点を変えずに拡大したり縮小したりする要求がなされる可能性も高い。拡大方向、縮小方向のどちらか一方向への変更であれば、前述の先読み境界を超えた時点でデコード用画像に順次新たな画像を格納していくことになるが、２つの先読み境界を超えずにもとの縮尺率に戻す要求がなされた場合は、デコード用画像に新たに画像を格納する必要がなく、格納済みの画像をそのまま利用することができる。
【００９７】
そのため、バッファメモリ７０のバッファ領域７２、７４には、現在格納されている画像の階層の番号を格納する領域をさらに設けてもよい。そして階層の深さ方向に設定された先読み境界を越えたとき、デコード用バッファに格納されるべき階層と格納済みの階層が同一であれば、デコード処理を行わずに格納済みの画像をそのままの状態としておく。これにより表示画像の拡大、縮小においてもデコード処理を最低限の回数とすることができ、処理の負荷、レイテンシーを軽減できる。
【００９８】
以上述べた本実施の形態によれば、圧縮された画像の少なくとも一部をユーザからの要求に応じて表示するための画像処理装置において、圧縮データを格納するハードディスクドライブからメインメモリへ、データの一部をロードする。メインメモリにロードしたデータをデコードして表示することにより、ユーザから表示画像変更要求がなされた際に、ハードディスクドライブから必要なデータを読み出すために要する時間が節約でき、応答性が向上する。また、データの一部のみをロードする態様とすることで、メインメモリの容量以上のサイズの画像であっても表示対象とすることができ、対応できる画像に対する制約が少なくなる。
【００９９】
さらに、画像データはおよそ同一のデータサイズでブロックに分割してハードディスクドライブに格納しておき、メインメモリへのロードはブロック単位で行う。これにより、メインメモリの連続した領域にロードしたブロックを順次格納しても、新たにブロックをロードする際にフラグメンテーションを起こすことがなくなり、メインメモリを有効に使用できるうえ、アドレス管理が容易になる。
【０１００】
また、画像データをブロックに分割する際は、各ブロックが有する情報に空間局所性を持たせる。具体的には、始点のタイル画像から横方向、縦方向に同様に拡張していくように、一ブロックに含まれるタイル画像を加えていき、所定のデータサイズに達する直前で一ブロックの領域を決定することにより、ブロックを正方形に近い形状とする。あるいは、あらかじめ設定した正方形や短冊状の区画の中で、ラスタ順にタイル画像を加えていくことにより、所定の幅を有する長方形に近い形状とする。このようにすることで、表示に必要なブロック数を抑えることができ、ロードの回数を減らせるとともに、デコードに必要なデータのメインメモリからの読み出しが容易に行える。同様の理由から、ブロック同士の境界がＴ字路になるように分割してもよい。
【０１０１】
また、ブロックのメインメモリへのロードは、表示画像の変更時以外のタイミングでも、所定の時間間隔などで随時行う。この際、現在の表示画像を起点に、位置的および階層的に周辺領域となる地点を所定の規則により決定し、当該地点を含むブロックのうちロードされていないものを随時ロードしていく。さらに画像の内容上、重要な領域や、表示履歴に基づきユーザごとに予測できる表示確率が、所定のしきい値より高い領域は、優先してロードしておく。これにより、ユーザからの表示画像変更要求後に急遽、データをハードディスクドライブからロードしたり、ネットワークを介してダウンロードしなければならない事態が起こる可能性を低くできるとともに、一度に多数のブロックをロードする必要がなくなり、ロード処理によるレイテンシーの発生を抑制できる。
【０１０２】
またブロック分割時に、異なる階層の画像の同一領域部分を一つのブロックに含ませるようにする。このとき、これらの画像が有する冗長性を利用し、一方の画像を復元するのに必要な情報のうち他方の画像が保持する情報については、ブロック内に２重に保持しないようにする。例えば低解像度の画像と、それを拡大して得られる拡大画像と高解像度の画像との差分画像を一つのブロックに含めて圧縮すれば、高解像度の画像は復元可能である。本実施の形態では上記のようにブロック単位でメインメモリへロードするため、このように画像同士の冗長性を利用できる。このようにすることでデータの圧縮率が上がり、メインメモリを有効に使用することができる。
【０１０３】
さらに、デコードした画像を格納するバッファ領域として、表示用バッファとデコード用バッファの２つのバッファを用意することで、将来表示されると予測できる領域をあらかじめデコードしてデコード用バッファに格納しておく。この場合、新たな画像をデコード用バッファに格納すべきときは、それまで格納されていた画像と重複する領域をそのまま利用する。具体的には、格納済みの画像のうち重複しない領域を新しい画像の領域で上書きした中間画像を生成し、それを繰り返して構成されるリピート画像のうち必要な部分を抜き出すことにより、デコード処理を最小限に、容易に新たな画像を格納することができる。
【０１０４】
また、バッファ領域を上記のような構成とすることにより、同一階層内での表示領域の移動は処理の負荷が少なくなるため、ユーザの表示画像変更要求に対する応答性を一定以上保持することが容易である。そのため、表示画像と異なる階層のデータを優先的にメインメモリへロードしておくことにより、バッファメモリとの組み合わせで、全体として応答性がよくなる。これらの形態は、装置の構成を複雑にしたり大規模にしたりすることなく実現できる。
【０１０５】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施の形態にかかる画像処理システムの使用環境を示す図である。
【図２】図１の画像処理システムに適用できる入力装置の外観構成を示す図である。
【図３】本実施の形態において使用する画像データの階層構造を示す図である。
【図４】本実施の形態における画像処理装置の構成を示す図である。
【図５】本実施の形態における画像データの流れを模式的に示すである。
【図６】本実施の形態における制御部の構成を詳細に示す図である。
【図７】本実施の形態における圧縮データ分割部の構成を詳細に示す図である。
【図８】本実施の形態の階層データにおける各階層の画像を模式的に示す図である。
【図９】本実施の形態における画像ブロック生成部が、図８の階層データを画像ブロックにまとめる様子を模式的に示す図である。
【図１０】本実施の形態におけるブロック分割の手法を説明するための原画像の例を示す図である。
【図１１】本実施の形態においてタイル画像に対しラスタ順に識別番号を付与した場合の、分割の様子を示す図である。
【図１２】本実施の形態において「Ｚ状」の順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。
【図１３】本実施の形態において正方形のマクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。
【図１４】本実施の形態において短冊状マクロタイル順でタイル画像に識別番号を付与した場合の、分割の様子を示す図である。
【図１５】画像ブロックの境界線が格子状に構成されているときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。
【図１６】本実施の形態において画像ブロックの境界線をＴ字路形状としたときの、画像ブロックと表示画像の描画領域の関係を模式的に示す図である。
【図１７】本実施の形態において高解像度画像を、低解像度画像の拡大画像との差分画像として圧縮する手法を説明するための図である。
【図１８】本実施の形態においてロードすべき画像ブロックを決定してロードを実施する処理手順を示すフローチャートである。
【図１９】図１８のＳ４２においてメインメモリ格納されているか否かを判定する対象である必要領域を決定するときの概念図である。
【図２０】本実施の形態において先読み処理部が行う先読み処理を説明するための図である。
【図２１】本実施の形態において先読み処理部およびデコード部が画像のデコードを行う際の処理手順を示すフローチャートである。
【図２２】本実施の形態のバッファメモリのデコード用バッファにおいて、新たに格納すべき画像がそれまでに格納されていた画像と重複部分を有する場合の、デコード部の機能ブロックを示す図である。
【図２３】図２２のデコード部が画像をデコード用バッファに格納する手順を模式的に示す図である。
【符号の説明】
【０１０７】
１  画像処理システム、  １０  画像処理装置、  １２  表示装置、  ２０  入力装置、  ３０  第０階層、  ３２  第１階層、  ３４  第２階層、  ３６  第３階層、  ３８  タイル画像、  ４４  表示処理部、  ５０  ハードディスクドライブ、  ６０  メインメモリ、  ７０  バッファメモリ、  ７２  バッファ領域、  ７４  バッファ領域、  ９０  フレームメモリ、  １００  制御部、  １０２  入力情報取得部、  １０４  圧縮データ分割部、  １０６  ロードブロック決定部、  １０８  ロード部、  １１０  先読み処理部、  １１２  デコード部、  １１４  表示画像処理部、  １２０  識別番号付与部、  １２２  画像ブロック生成部、  １７０  重複領域取得部、  １７２  部分領域デコード部、  １７４  リピート画像生成部、  １７６  デコード画像格納部。  
【図１】
2010087904.tif 000003
【図２】
2010087904.tif 000004
【図３】
2010087904.tif 000005
【図４】
2010087904.tif 000006
【図５】
2010087904.tif 000007
【図６】
2010087904.tif 000008
【図７】
2010087904.tif 000009
【図８】
2010087904.tif 000010
【図９】
2010087904.tif 000011
【図１５】
2010087904.tif 000012
【図１６】
2010087904.tif 000013
【図１７】
2010087904.tif 000014
【図１８】
2010087904.tif 000015
【図１９】
2010087904.tif 000016
【図２０】
2010087904.tif 000017
【図２１】
2010087904.tif 000018
【図２２】
2010087904.tif 000019
【図２３】
2010087904.tif 000020
【図１０】
2010087904.tif 000021
【図１１】
2010087904.tif 000022
【図１２】
2010087904.tif 000023
【図１３】
2010087904.tif 000024
【図１４】
2010087904.tif 000025