(57)【要約】【課題】高精細化画像はデータサイズが大きく、更新も容易でない。【解決手段】制御部１００ｂの画像階層生成部１２０は、ハードディスクドライブ５０に格納された画像データを読み出し複数の解像度の画像を生成して階層化する。画像分割部１２２は各階層の画像をタイル画像に分割する。冗長性検出部１２４は、各階層の画像を解析し、同一階層内および異なる階層間における画像の冗長性を検出する。タイル画像参照テーブル作成部１２６は、冗長性を考慮して、領域番号とタイル番号とを対応づけたタイル画像参照テーブルを作成する。画像ファイル生成部１２８は、最終的に出力する、画像データおよびタイル画像参照テーブルを含む画像ファイルを生成する。【選択図】図１０
2011028653.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データから、異なる解像度の複数の画像データを生成し、解像度順に階層化して構成される階層データを生成する画像階層生成部と、
前記階層データを構成する各階層の画像データを所定サイズのタイル画像に分割する画像分割部と、
前記階層データを構成する各階層の画像データの分割後の各領域と、当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを作成するタイル画像参照テーブル作成部と、
前記タイル画像のデータと前記タイル画像参照テーブルとを含む画像ファイルを生成する画像ファイル生成部と、を備えたことを特徴とする画像ファイル生成装置。
【請求項２】
前記タイル画像参照テーブルは、一のタイル画像のデータを複数の領域に対応づけ、前記画像ファイルは、前記タイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする請求項１に記載の画像ファイル生成装置。
【請求項３】
ある解像度の階層の画像を解析することによって、当該解像度の画像に含まれるタイル画像のデータを流用して描画できる、当該解像度より高解像度の階層の画像の領域を特定する冗長性検出部をさらに備え、
前記タイル画像参照テーブル作成部は、前記冗長性検出部が特定した領域を、流用するタイル画像のデータに対応づけることを特徴とする請求項１または２に記載の画像ファイル生成装置。
【請求項４】
前記冗長性検出部は、解析対象の画像を構成するタイル画像のうち、単色で構成されるタイル画像を特定し、前記高解像度の階層の画像のうち、特定したタイル画像の領域に対応する領域を、当該タイル画像のデータを流用して描画できる領域として特定することを特徴とする請求項３に記載の画像ファイル生成装置。
【請求項５】
前記冗長性検出部は、解析対象の画像を、前記高解像度の階層の画像サイズまで拡大した画像と、前記高解像度の階層の画像とを比較し、その差分がしきい値以下である前記高解像度の階層の画像内の領域を、解析対象の画像のタイル画像のデータを流用して描画できる領域として特定することを特徴とする請求項３または４に記載の画像ファイル生成装置。
【請求項６】
前記タイル画像参照テーブル作成部は、前記分割後の各領域を、異なる階層の画像にまたがるようにグループに分け、当該グループごとに、各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたデータを圧縮することを特徴とする請求項１から５のいずれかに記載の画像ファイル生成装置。
【請求項７】
一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、前記画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを含む画像ファイルを保持する記憶装置と、
画像平面上の移動および解像度の変更を含む表示領域変更要求をユーザから受け付ける入力情報取得部と、
前記表示領域変更要求に応じて新たに表示すべき領域を描画するのに必要なタイル画像のデータを、前記タイル画像参照テーブルを参照することによって特定するタイル画像特定部と、
特定したタイル画像のデータを前記記憶装置より読み出し、新たに表示すべき領域を描画する表示画像処理部と、
を備えたことを特徴とする画像処理装置。
【請求項８】
前記画像ファイルは、前記タイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記タイル画像参照テーブルは、ある解像度の画像の一領域と、当該領域を描画する際に流用できる、当該解像度より低解像度の画像に含まれるタイル画像のデータとを対応づけることを特徴とする請求項７または８に記載の画像処理装置。
【請求項１０】
前記タイル画像参照テーブルは、ある解像度の領域の一領域と、前記低解像度の画像に含まれるタイル画像のデータとを対応づけるとともに、前記タイル画像を用いて前記領域を描画する際の拡大率をさらに記載し、
前記表示画像処理部は、前記タイル画像を前記拡大率で拡大することにより前記領域を描画することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記入力情報取得部は、表示対象の画像の一部を更新する要求をユーザより受け付け、
更新すべき領域の前記タイル画像のデータを新たに生成し、前記記憶装置のうち、前記画像ファイルに含まれる更新前のタイル画像のデータと異なる記憶領域に格納するタイル画像生成部と、
前記タイル画像参照テーブルのうち、更新すべき領域に対応づけられているタイル画像のデータを、新たに生成したタイル画像のデータに更新するタイル画像参照テーブル更新部と、をさらに備え、
前記表示画像処理部は、タイル画像参照テーブルの更新に応じて、新たに生成したタイル画像のデータを読み出し、表示画像を描画し直すことを特徴とする請求項７から１０のいずれかに記載の画像処理装置。
【請求項１２】
画像データをメモリより読み出して異なる解像度の複数の画像データを生成し、解像度順に階層化して構成される階層データを生成するステップと、
前記階層データを構成する各階層の画像データを所定サイズのタイル画像に分割するステップと、
前記階層データを構成する各階層の画像データの分割後の各領域と、当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを作成するステップと、
前記タイル画像のデータと前記タイル画像参照テーブルとを含む画像ファイルを生成してメモリに出力するステップと、を含むことを特徴とする画像ファイル生成方法。
【請求項１３】
前記タイル画像参照テーブルは、一のタイル画像のデータを複数の領域に対応づけ、前記画像ファイルは、前記タイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする請求項１２に記載の画像ファイル生成方法。
【請求項１４】
一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、前記画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを含む画像ファイルをメモリより読み出すステップと、
画像平面上の移動および解像度の変更を含む表示領域変更要求をユーザから受け付けるステップと、
前記表示領域変更要求に応じて新たに表示すべき領域を描画するのに必要なタイル画像のデータを、前記タイル画像参照テーブルを参照することによって特定するステップと、
特定したタイル画像のデータに基づき、新たに表示すべき領域を描画するステップと、を含むことを特徴とする画像処理方法。
【請求項１５】
前記画像ファイルは、前記タイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする請求項１４に記載の画像処理方法。
【請求項１６】
表示対象の画像の一部を更新する要求をユーザより受け付けるステップと、
更新すべき領域の前記タイル画像のデータを新たに生成し、前記メモリのうち前記画像ファイルに含まれる更新前のタイル画像のデータと異なる記憶領域に格納するステップと、
前記タイル画像参照テーブルのうち、更新すべき領域に対応づけられているタイル画像のデータを、新たに生成したタイル画像のデータに更新するステップと、
タイル画像参照テーブルの更新に応じて、新たに生成したタイル画像のデータをメモリより読み出し、表示画像を描画し直すステップと、
をさらに含むことを特徴とする請求項１４または１５に記載の画像処理方法。
【請求項１７】
画像データをメモリより読み出して異なる解像度の複数の画像データを生成し、解像度順に階層化して構成される階層データを生成する機能と、
前記階層データを構成する各階層の画像データを所定サイズのタイル画像に分割する機能と、
前記階層データを構成する各階層の画像データの分割後の各領域と、当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを作成する機能と、
前記タイル画像のデータと前記タイル画像参照テーブルとを含む画像ファイルを生成してメモリに出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１８】
一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、前記画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルを含む画像ファイルをメモリより読み出す機能と、
画像平面上の移動および解像度の変更を含む表示領域変更要求をユーザから受け付ける機能と、
前記表示領域変更要求に応じて新たに表示すべき領域を描画するのに必要なタイル画像のデータを、前記タイル画像参照テーブルを参照することによって特定する機能と、
特定したタイル画像のデータに基づき、新たに表示すべき領域を描画する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１９】
画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像ファイルのデータ構造であって、
一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、
前記画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルと、を対応づけ、
前記タイル画像参照テーブルは、一のタイル画像のデータを複数の領域に対応づけ、前記画像ファイルは前記タイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする画像ファイルのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイに表示する画像を拡大／縮小、または上下左右に移動させる画像処理技術に関する。
【背景技術】
【０００２】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、ＧＰＵがポリゴンを用いた三次元画像を生成する（例えば特許文献１参照）。
【０００３】
画像表示の目的に関わらず、画像をいかに効率よく表示するかは常に重要な問題となる。特に高精細な画像を高速に描画するためには様々な工夫が必要となり、例えばテクスチャデータを別に保持しマッピングを効率的に行う手法について提案がなされている（例えば非特許文献１および２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６５６３９９９号公報
【非特許文献】
【０００５】
【非特許文献１】Sylvain Fefebvre, et. al., Unified Texture Management for Arbitrary Meshes, Repport de recherche, N5210, May 2004, Institut National De Recherche En Informatique Et En Automatique
【非特許文献２】Martin Kraus, et. al., Adaptive Texture Maps, Graphics Hardware (2002), pp1-10, The Eurographics Association
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像が高精細化しても、データサイズを小さく抑えること、高速に描画することは、画像を応答性良く表示するためには常に重要な課題である。また、上述のテクスチャマッピングなどデータ構造を工夫する技術を適用した場合、表示画像のデータを一度構築してしまうと、画像の一部などを更新する必要が生じた場合に処理が煩雑になりやすいという問題があった。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は、圧縮効率が高い画像データの生成、表示を行う画像処理技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様は画像ファイル生成装置に関する。この画像ファイル生成装置は、入力された画像データから、異なる解像度の複数の画像データを生成し、解像度順に階層化して構成される階層データを生成する画像階層生成部と、階層データを構成する各階層の画像データを所定サイズのタイル画像に分割する画像分割部と、階層データを構成する各階層の画像データの分割後の各領域と、当該領域を描画する際に用いるタイル画像のデータとを対応づけたタイル画像参照テーブルを作成するタイル画像参照テーブル作成部と、タイル画像のデータとタイル画像参照テーブルとを含む画像ファイルを生成する画像ファイル生成部と、を備えたことを特徴とする。
【０００９】
本発明の別の態様は画像処理装置に関する。この画像処理装置は、一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いるタイル画像のデータとを対応づけたタイル画像参照テーブルを含む画像ファイルを保持する記憶装置と、画像平面上の移動および解像度の変更を含む表示領域変更要求をユーザから受け付ける入力情報取得部と、表示領域変更要求に応じて新たに表示すべき領域を描画するのに必要なタイル画像のデータを、タイル画像参照テーブルを参照することによって特定するタイル画像特定部と、特定したタイル画像のデータを記憶装置より読み出し、新たに表示すべき領域を描画する表示画像処理部と、を備えたことを特徴とする。
【００１０】
本発明のさらに別の態様は画像ファイル生成方法に関する。この画像ファイル生成方法は、画像データをメモリより読み出して異なる解像度の複数の画像データを生成し、解像度順に階層化して構成される階層データを生成するステップと、階層データを構成する各階層の画像データを所定サイズのタイル画像に分割するステップと、階層データを構成する各階層の画像データの分割後の各領域と、当該領域を描画する際に用いるタイル画像のデータとを対応づけたタイル画像参照テーブルを作成するステップと、タイル画像のデータとタイル画像参照テーブルとを含む画像ファイルを生成してメモリに出力するステップと、を含むことを特徴とする。
【００１１】
本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いるタイル画像のデータとを対応づけたタイル画像参照テーブルを含む画像ファイルをメモリより読み出すステップと、画像平面上の移動および解像度の変更を含む表示領域変更要求をユーザから受け付けるステップと、表示領域変更要求に応じて新たに表示すべき領域を描画するのに必要なタイル画像のデータを、タイル画像参照テーブルを参照することによって特定するステップと、特定したタイル画像のデータに基づき、新たに表示すべき領域を描画するステップと、を含むことを特徴とする。
【００１２】
本発明のさらに別の態様は画像ファイルのデータ構造に関する。このデータ構造は、画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像ファイルのデータ構造であって、一の画像で異なる解像度の画像データを所定サイズに分割してなるタイル画像のデータと、画像データを解像度順に階層化した階層構造における各画像データの分割後の各領域と当該領域を描画する際に用いる前記タイル画像のデータとを対応づけたタイル画像参照テーブルと、を対応づけ、タイル画像参照テーブルは、一のタイル画像のデータを複数の領域に対応づけ、画像ファイルはタイル画像参照テーブルにおいて対応づけられていないタイル画像のデータを含まないことを特徴とする。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によると、幅広い解像度で画像を表示するための画像データを効率的に構築できる画像処理装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１の形態にかかる画像処理システムの使用環境を示す図である。
【図２】図１の画像処理システムに適用できる入力装置の外観構成を示す図である。
【図３】実施の形態１において使用する画像データの階層構造を示す図である。
【図４】実施の形態１における画像処理装置の構成を示す図である。
【図５】実施の形態１における画像データの流れを模式的に示すである。
【図６】実施の形態１における画像データの先読み処理を説明するための図である。
【図７】実施の形態１において階層データを表示する機能を有する制御部の構成を詳細に示す図である。
【図８】実施の形態１で用いる階層データにおける各階層の画像を模式的に示す図である。
【図９】図８の階層データから生成される画像ブロックを模式的に示す図である。
【図１０】実施の形態１において表示対象の画像ファイルを生成する機能を有する制御部の構成を示す図である。
【図１１】実施の形態１において画像に冗長性がある場合に構築する、領域番号とタイル画像のデータの対応関係の例を模式的に示す図である。
【図１２】実施の形態１において画像に冗長性がある場合に構築する、領域番号とタイル画像のデータの対応関係の別の例を模式的に示す図である。
【図１３】図１１および図１２で説明した領域番号とタイル番号の対応関係を記載したタイル画像参照テーブルの例を示す図である。
【図１４】実施の形態１において制御部が画像ファイルを生成する処理手順を示すフローチャートである。
【図１５】実施の形態１において制御部が画像ファイルを表示するための処理手順を示すフローチャートである。
【図１６】実施の形態１におけるタイル画像参照テーブルの冗長性について説明する図である。
【図１７】実施の形態２において画像を修正する機能を有する制御部の構成を示図である。
【図１８】本実施の形態２においてユーザが画像を修正する際の処理手順を示すフローチャートである。
【図１９】本実施の形態３において画像作成作業前後の、表示画像、階層データ、タイル画像データの変化を模式的に示す図である。
【発明を実施するための形態】
【００１６】
実施の形態１
本実施の形態において処理対象とする画像のデータは、原画像を複数段階に縮小して生成した異なる解像度の画像からなる階層構造を有する。各階層の画像は一又は複数のタイル画像に分割する。たとえば最も解像度の低い画像は１つのタイル画像で構成し、最も解像度の高い原画像は、最も多い数のタイル画像で構成する。画像表示時は、描画に使用しているタイル画像を、表示画像が所定の解像度になったときに、異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行う。
【００１７】
まず、このような階層構造を有する画像の基本的な表示態様について説明する。図１は、本発明の実施の形態を適用できる画像処理システム１の使用環境を示す。画像処理システム１は、画像処理ソフトウェアを実行する画像処理装置１０と、画像処理装置１０による処理結果を出力する表示装置１２とを備える。表示装置１２は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。表示装置１２は、画像処理装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。画像処理システム１において、画像処理装置１０は、ケーブル１４を介してインターネットなどの外部ネットワークに接続し、階層化された圧縮画像データをダウンロードして取得してもよい。なお画像処理装置１０は、無線通信により外部ネットワークに接続してもよい。
【００１８】
画像処理装置１０は、たとえばゲーム装置であってよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。なお画像処理装置１０は、パーソナルコンピュータであってもよく、画像処理用のアプリケーションプログラムをロードすることで画像処理機能を実現してもよい。
【００１９】
画像処理装置１０は、ユーザからの要求に応じて、表示装置１２のディスプレイに表示する画像の拡大／縮小処理や、上下左右方向への移動処理など、表示領域を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、表示領域の変更要求信号を画像処理装置１０に送信する。
【００２０】
図２は、入力装置２０の外観構成を示す。入力装置２０は、ユーザが操作可能な操作手段として、十字キー２１、アナログスティック２７ａ、２７ｂと、４種の操作ボタン２６を備える。４種の操作ボタン２６は、○ボタン２２、×ボタン２３、□ボタン２４および△ボタン２５から構成される。
【００２１】
画像処理システム１において、入力装置２０の操作手段には、表示画像の拡大／縮小要求、および上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大／縮小要求の入力機能は、右側のアナログスティック２７ｂに割り当てられる。ユーザはアナログスティック２７ｂを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。また、表示領域の移動要求の入力機能は、十字キー２１に割り当てられる。ユーザは十字キー２１を押下することで、十字キー２１を押下した方向への移動要求を入力できる。なお、画像変更要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック２７ａに、スクロール要求の入力機能が割り当てられてもよい。
【００２２】
入力装置２０は、入力された表示領域変更要求信号を画像処理装置１０に伝送する機能をもち、本実施の形態では画像処理装置１０との間で無線通信可能に構成される。入力装置２０と画像処理装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立してもよい。なお入力装置２０は、画像処理装置１０とケーブルを介して接続して、表示領域変更要求信号を画像処理装置１０に伝送してもよい。
【００２３】
図３は、本実施の形態において使用する画像データの階層構造を示す。画像データは、深さ（Ｚ軸）方向に、第０階層３０、第１階層３２、第２階層３４および第３階層３６からなる階層構造を有する。なお同図においては４階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつ画像データを「階層データ」とよぶ。
【００２４】
図３に示す階層データは４分木の階層構造を有し、各階層は、１以上のタイル画像３８で構成される。すべてのタイル画像３８は同じ画素数をもつ同一サイズに形成され、たとえば２５６×２５６画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第３階層３６の原画像を複数段階に縮小して、第２階層３４、第１階層３２、第０階層３０の画像データが生成される。たとえば第Ｎ階層の解像度（Ｎは０以上の整数）は、左右（Ｘ軸）方向、上下（Ｙ軸）方向ともに、第（Ｎ＋１）階層の解像度の１／２であってよい。
【００２５】
画像処理装置１０において、階層データは、所定の圧縮形式で圧縮された状態で記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の画像処理装置１０は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばＳ３ＴＣ形式、ＪＰＥＧ形式、ＪＰＥＧ２０００形式の圧縮データをデコード可能とする。階層データにおいて、圧縮処理は、タイル画像単位に行われていてもよく、また同一階層または複数の階層に含まれる複数のタイル画像単位に行われていてもよい。
【００２６】
階層データの階層構造は、図３に示すように、左右方向をＸ軸、上下方向をＹ軸、深さ方向をＺ軸として設定され、仮想的な３次元空間を構築する。画像処理装置１０は、入力装置２０から供給される表示領域変更要求信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレームの４隅の座標（フレーム座標）を導出する。仮想空間におけるフレーム座標は、後述するメインメモリへの圧縮データのロードおよび表示画像の生成処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置１０は、階層を特定する情報と、その階層におけるテクスチャ座標（ＵＶ座標）を導出してもよい。以下、階層特定情報およびテクスチャ座標の組み合わせも、フレーム座標と呼ぶ。
【００２７】
図４は画像処理装置１０の構成を示している。画像処理装置１０は、無線インタフェース４０、スイッチ４２、表示処理部４４、ハードディスクドライブ５０、記録媒体装着部５２、ディスクドライブ５４、メインメモリ６０、バッファメモリ７０および制御部１００を有して構成される。表示処理部４４は、表示装置１２のディスプレイに表示するデータをバッファするフレームメモリを有する。
【００２８】
スイッチ４２は、イーサネットスイッチ（イーサネットは登録商標）であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ４２は、ケーブル１４を介して外部ネットワークに接続し、画像サーバから階層化された圧縮画像データを受信できるように構成される。またスイッチ４２は無線インタフェース４０に接続し、無線インタフェース４０は、所定の無線通信プロトコルで入力装置２０と接続する。入力装置２０においてユーザから入力された表示領域変更要求信号は、無線インタフェース４０、スイッチ４２を経由して、制御部１００に供給される。
【００２９】
ハードディスクドライブ５０は、データを記憶する記憶装置として機能する。スイッチ４２を介して受信された圧縮画像データは、ハードディスクドライブ５０に格納される。記録媒体装着部５２は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ５４は、読出専用のＲＯＭディスクが装着されると、ＲＯＭディスクを駆動して認識し、データを読み出す。ＲＯＭディスクは、光ディスクや光磁気ディスクなどであってよい。圧縮画像データはこれらの記録媒体に格納されていてもよい。
【００３０】
制御部１００は、マルチコアＣＰＵを備え、１つのＣＰＵの中に１つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはＰＰＵ（Power Processing Unit）と呼ばれ、残りのプロセッサコアはＳＰＵ（Synergistic-Processing Unit）と呼ばれる。
【００３１】
制御部１００は、メインメモリ６０およびバッファメモリ７０に接続するメモリコントローラを備える。ＰＰＵはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各ＳＰＵに効率的に割り当てる。なお、ＰＰＵ自身がタスクを実行してもよい。ＳＰＵはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ７０として使用されてもよい。
【００３２】
メインメモリ６０およびバッファメモリ７０は記憶装置であり、ＲＡＭ（ランダムアクセスメモリ）として構成される。ＳＰＵは制御ユニットとして専用のＤＭＡ（Direct Memory Access）コントローラをもち、メインメモリ６０とバッファメモリ７０の間のデータ転送を高速に行うことができ、また表示処理部４４におけるフレームメモリとバッファメモリ７０の間で高速なデータ転送を実現できる。本実施の形態の制御部１００は、複数のＳＰＵを並列動作させることで、高速な画像処理機能を実現する。表示処理部４４は、表示装置１２に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
【００３３】
本実施の形態の画像処理装置１０は、表示画像の拡大／縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、圧縮画像データの一部をハードディスクドライブ５０からメインメモリ６０にロードしておく。また、メインメモリ６０にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ７０に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。
【００３４】
図５は本実施の形態における画像データの流れを模式的に示している。まず階層データはハードディスクドライブ５０に格納されている。ハードディスクドライブ５０に代わり、記録媒体装着部５２やディスクドライブ５４に装着された記録媒体が保持していてもよい。あるいは、画像処理装置１０がネットワークを介して接続した画像サーバから階層データをダウンロードするようにしてもよい。ここでの階層データは上述のとおり、Ｓ３ＴＣ形式などによる固定長圧縮、あるいはＪＰＥＧ形式などによる可変長圧縮がなされている。
【００３５】
この階層データのうち、一部の画像データを圧縮した状態のままメインメモリ６０にロードする（Ｓ１０）。ここでロードする領域は、現在の表示画像の仮想空間における近傍や、画像の内容、ユーザの閲覧履歴等に基づいて、高頻度で表示要求がなされると予測される領域など、あらかじめ定めた規則によって決定する。ロードは、画像変更要求がなされたときのみならず、例えば所定の時間間隔で随時行う。これによりロード処理が一時期に集中しないようにする。
【００３６】
また、ロードする圧縮画像データはおよそ一定のサイズを有するブロック単位とする。そのためハードディスクドライブ５０が保持する階層データは所定の規則でブロックに分割しておく。このようにすることでメインメモリ６０におけるデータ管理が効率よく行える。すなわち、圧縮画像データが可変長圧縮されたものであっても、ブロック（以後、「画像ブロック」と呼ぶ）単位であればロードするデータサイズがほぼ等しいため、基本的にメインメモリ６０にそれまで格納されていたブロックのいずれかを上書きすることによって新たなロードが完了する。そのためフラグメンテーションが発生しにくく、メモリを効率的に使用できるうえ、アドレス管理も容易になる。
【００３７】
次に、メインメモリ６０に格納されている圧縮画像データのうち、表示に必要な領域のタイル画像、または必要と予測される領域のタイル画像のデータをデコードし、バッファメモリ７０に格納する（Ｓ１２）。バッファメモリ７０は、少なくとも２つのバッファ領域７２、７４を含む。各バッファ領域７２、７４のサイズは、フレームメモリ９０のサイズよりも大きく設定され、入力装置２０から表示領域変更要求信号が入力された場合に、ある程度の量の変更要求に対しては、バッファ領域７２、７４に展開した画像データで表示画像を生成できるようにする。
【００３８】
バッファ領域７２、７４の一方は、表示画像の生成に用いる画像を保持するために利用され、他方は、以後、必要と予測される画像を準備するために利用される。以後、前者を「表示用バッファ」、後者を「デコード用バッファ」と呼ぶ。図５の例では、バッファ領域７２が表示用バッファ、バッファ領域７４がデコード用バッファで、表示領域６８が表示されているものとする。後述する先読み処理によってデコード用バッファに格納する画像は、表示用バッファに格納されている画像と同一階層の画像でもよいし、縮尺の異なる別階層の画像でもよい。
【００３９】
次に、表示用バッファであるバッファ領域７２に格納された画像のうち表示領域６８の画像を、フレームメモリ９０に描画する（Ｓ１４）。この間に、新たな領域の画像が必要に応じてデコードされ、バッファ領域７４に格納される。格納が完了したタイミングや表示領域６８の変更量などに応じて、表示用バッファとデコード用バッファを切り替える（Ｓ１６）。これにより、表示領域の移動や縮尺率の変更などに対し表示画像をスムーズに切り替えることができる。
【００４０】
図６は、先読み処理を説明するための図である。図６は、階層データの構造を示しており、各階層はＬ０（第０階層）、Ｌ１（第１階層）、Ｌ２（第２階層）、Ｌ３（第３階層）と表現されている。図６に示す階層データ構造において、深さ（Ｚ軸）方向における位置は、解像度を示し、Ｌ０に近い位置ほど解像度が低く、Ｌ３に近い位置ほど解像度は高い。なおディスプレイに表示される画像の大きさに注目すると、深さ方向における位置は、縮尺率に対応し、Ｌ３の表示画像の縮尺率を１とすると、Ｌ２における縮尺率は１／４、Ｌ１における縮尺率は１／１６となり、Ｌ０における縮尺率は１／６４となる。
【００４１】
したがって深さ方向において、表示画像がＬ０側からＬ３側へ向かう方向に変化する場合、表示画像は拡大していき、Ｌ３側からＬ０側へ向かう方向に変化する場合は、表示画像は縮小していく。矢印８０は、ユーザからの表示領域変更要求信号が、表示画像の縮小を要求しており、縮尺率１／４（Ｌ２）をまたいだ様子を示している。画像処理装置１０では、タイル画像３８として用意しているＬ１、Ｌ２の深さ方向の位置を、深さ方向の先読み境界として設定し、画像変更要求信号が先読み境界をまたぐと、先読み処理を開始する。
【００４２】
表示画像の縮尺率がＬ２の近傍にある場合、表示画像は、Ｌ２（第２階層）のタイル画像を用いて作成される。具体的には、表示する画像の縮尺率が、Ｌ１タイル画像とＬ２タイル画像の切替境界８２と、Ｌ２タイル画像とＬ３タイル画像の切替境界８４の間にある場合に、Ｌ２タイル画像が利用される。したがって、矢印８０に示すように画像の縮小処理が要求されると、Ｌ２のタイル画像が拡大された画像から、縮小された画像に変換されて表示される。一方、画像変更要求信号から予測される将来必要なタイル画像３８を特定して、デコードしておく。図６の例では、表示領域変更要求信号による要求縮尺率がＬ２をまたいだときに、画像処理装置１０は、縮小方向にあるＬ１の対応するタイル画像３８をハードディスクドライブ５０またはメインメモリ６０から先読みしてデコードし、バッファメモリ７０に書き込む。
【００４３】
なお以上は深さ方向の先読み処理について説明したが、上下左右方向の先読み処理についても同様に処理される。具体的には、バッファメモリ７０に展開されている画像データに先読み境界を設定しておき、画像変更要求信号による表示位置が先読み境界をまたいだときに、先読み処理が開始されるようにする。
【００４４】
図７は本実施の形態において、上述の階層データを表示する機能を有する制御部１００ａの構成を詳細に示している。制御部１００ａは、入力装置２０からユーザが入力した情報を取得する入力情報取得部１０２、新たに表示すべき領域を含むタイル画像を特定するタイル画像特定部１１０、新たにロードすべき画像ブロックを決定するロードブロック決定部１０６、必要な画像ブロックをハードディスクドライブ５０からロードするロード部１０８を含む。制御部１００ａはさらに、圧縮画像データをデコードするデコード部１１２、および表示画像を描画する表示画像処理部１１４を含む。
【００４５】
図７において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部１００は１つのＰＰＵと複数のＳＰＵとを有し、ＰＰＵおよびＳＰＵがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４６】
入力情報取得部１０２は、ユーザが入力装置２０に対して入力した、画像表示の開始／終了、表示領域の移動、表示画像の拡大、縮小などの指示内容を取得する。タイル画像特定部１１０は、現在の表示領域のフレーム座標とユーザが入力した表示領域変更要求の情報に従い、新たに表示すべき領域を含むタイル画像を特定する。そして当該タイル画像が既にメインメモリ６０にロードされていれば、デコード部１１２に、ロードされていなければロードブロック決定部１０６に、当該情報を供給する。タイル画像特定部１１０はその時点の表示画像の描画に必要な画像の他、以後必要と予測されるタイル画像も特定してよい。
【００４７】
ロードブロック決定部１０６は、タイル画像特定部１１０からの情報に基づき、ハードディスクドライブ５０からメインメモリ６０へ新たにロードすべき画像ブロックを特定し、ロード部１０８にロード要求を発行する。ロードブロック決定部１０６は、ロード部１０８がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが表示領域変更要求を行った際など、所定のタイミングでロード要求を行ってもよい。ロード部１０８は、ロードブロック決定部１０６からの要求に従い、実際のロード処理を行う。
【００４８】
デコード部１１２は、タイル画像特定部１１０から取得したタイル画像の情報に基づき、メインメモリ６０からタイル画像のデータを読み出しデコードし、デコード用バッファまたは表示用バッファにデコード後のデータを格納する。表示画像処理部１１４は、新たな表示画像のフレーム座標に基づき、バッファメモリ７０の表示用バッファから対応する画像データを読み出し、表示処理部４４のフレームメモリに描画する。
【００４９】
次に、階層データにおけるタイル画像および画像ブロックの構成について説明する。図８は、階層データにおける各階層の画像を模式的に示している。同図におてい階層データは、第０階層３０ａ、第１階層３２ａ、第２階層３４ａの画像からなるとする。そして各階層の画像のうち実線で区切られた区画のひとつひとつがタイル画像である。同図に示すように、各タイル画像にはタイル画像への分割時に識別番号（以後、「タイル番号」と呼ぶ）を付与しておく。例えば第０階層３０ａの画像は、１つのタイル画像で構成され、タイル番号を「０」とする。第１階層３２ａ、第２階層３４ａのタイル画像はそれぞれ、「１」〜「４」、「５」〜「２０」のタイル番号を付与する。
【００５０】
図９は図８の階層データから生成される画像ブロックを模式的に示している。画像ブロックは、所定のデータサイズを超えない最大数のタイル画像で構成されるように、タイル番号の小さい方からタイル画像を区切っていくことにより生成する。同図では、このときの「所定のデータサイズ」を「基本ブロックサイズ」として矢印の範囲で表している。
【００５１】
同図の例では、タイル番号「０」から「５」のタイル画像が画像ブロック２、「６」から「８」のタイル画像が画像ブロック４、というようにそれぞれ画像ブロックにまとめられていき、「１７」から「２０」のタイル画像が最終の画像ブロック６となっている。各画像ブロックは、先頭のタイル画像のタイル番号と含まれるタイル画像の数で識別する。したがって画像ブロック２は「（０，６）」、画像ブロック４は「（６，３）」、画像ブロック６は「（１７，４）」なる識別情報を有する。このように識別情報を定義すると、あるタイル画像のデータがある画像ブロックに含まれるか否かを容易に判定することができる。なお画像データは実際には、全ての画像ブロックが連なった状態で画像ファイルとして形成される。
【００５２】
画像ブロックの識別情報は、対応する圧縮画像データのハードディスクドライブ５０における格納領域の情報と対応づけて、ハードディスクドライブ５０に格納しておく。このように、圧縮画像データをおよそ同じサイズの画像ブロックに分割しておけば、上述のとおり、ロードした画像ブロックをメインメモリ６０内の連続した領域に格納しても、一つの画像ブロックをその後にロードされた画像ブロックで上書きしていくことにより格納が可能であり、フラグメンテーションの発生を抑制できるとともに、メインメモリ６０を効率的に使用できる。
【００５３】
次に、これまで述べた階層構造を有する画像データの表示技術において、画像データをより効率的に構築し出力するための実施の形態について説明する。上述の基本的な画像表示の手法では、表示領域変更要求に従って得られる変更後のフレーム座標から、表示に必要なタイル画像のタイル番号が一意に決定される。この手順においてタイル番号は、図８に示すように、各階層の画像上の位置を示すパラメータと等価であるため、フレーム座標から直接、タイル画像のデータを識別する。
【００５４】
一方、本実施の形態では、画像上の位置を示すパラメータとタイル画像のデータとを分離することにより、タイル画像のデータ指定に自由度を持たせ、それによってデータ構造そのものや画像更新の効率化を実現する。そのために、画像上の位置とタイル画像のデータとの対応関係を記述したテーブルを画像データに付加する。このように構築した画像データを表示する際は、表示領域変更後のフレーム座標から画像上の位置を示すパラメータを取得し、それに基づき上述のテーブルを参照することにより、タイル画像のデータの識別番号、すなわちタイル番号を取得する。ここで「画像上の位置を示すパラメータ」は、図８のように、画像をタイル画像に分割した際にそれぞれの領域に割り振られる識別番号であるが、本実施の形態ではタイル番号とは必ずしも一致しなくてよい。以後、このように領域に対して割り振った識別番号を、タイル番号と区別するために「領域番号」と呼ぶ。
【００５５】
図１０は、本実施の形態において表示対象の画像ファイルを生成する機能を有する制御部１００ｂの構成を示している。なお制御部１００ｂは図７の制御部１００ａに示した、画像表示を行うための機能を備えていてもよいが、ここでは図示を省略している。一方、図１０に示した機能のみを有する制御部１００ｂを備えた画像処理装置１０を、表示機能を発揮する画像処理装置とは別に設けてもよい。
【００５６】
制御部１００ｂは、ハードディスクドライブ５０に格納された画像データを読み出し階層化する画像階層生成部１２０、各階層の画像をタイル画像に分割する画像分割部１２２、各階層の画像を解析し冗長性を検出する冗長性検出部１２４、冗長性を考慮して、領域番号とタイル番号とを対応づけたタイル画像参照テーブルを作成するタイル画像参照テーブル作成部１２６、および最終的に出力する、画像データおよびタイル画像参照テーブルを含む画像ファイルを生成する画像ファイル生成部１２８を含む。
【００５７】
画像階層生成部１２０は、ハードディスクドライブ５０から、ファイル作成対象の画像のデータを読み出す。この画像データはある解像度を有する一枚の画像のデータでよい。処理対象の画像データは、図に示すように入力装置２０を介してユーザが指定してもよいし、原画像を取得した別の機能ブロック（図示せず）からの要求を受け付けてもよい。画像階層生成部は１２０はさらに、読み出した画像のデータを所定の解像度へ段階的に縮小した画像のデータを生成することにより、元の画像を含めた階層構造の画像データを生成する。
【００５８】
画像分割部１２２は、各階層の画像を所定のサイズに分割してタイル画像のデータを生成する。生成したタイル画像のデータにはそれぞれタイル番号を付与し、いったんメインメモリ６０に保存したうえ、各格納領域を当該タイル番号で管理する。ここで付与するタイル番号は、図８に示すように画像上の位置を反映させた順であってもよく、例えば領域番号と一致していてもよい。
【００５９】
冗長性検出部１２４は各階層のタイル画像を解析することにより、同一階層内、および異なる階層間で画像の冗長性を検出する。同一階層内での冗長性としては例えば、複数のタイル画像に渡って同じ画像データを用いることができる場合が考えられる。また、異なる階層間での冗長性としては、低解像度の階層の画像を拡大した画像と高解像度の階層の画像とで見た目の差が大きくない場合が考えられる。このように冗長性がある領域は、個々にタイル画像のデータを持たずとも、あるタイル画像のデータを流用することで表示が可能である。このようにすることで、画像データの圧縮を実現する。具体的な手法は後に述べる。
【００６０】
タイル画像参照テーブル作成部１２６は、階層データにおける各階層の画像の領域番号と、各領域を表示する際に用いるタイル画像のタイル番号とを対応づけたタイル画像参照テーブルを作成する。冗長性が検出されない画像では、領域番号とタイル画像の識別番号は一対一に対応し、例えば同じ数値同士を対応させる。一方、冗長性を有する画像領域については、タイル画像のデータを共有するように、複数の領域番号に対し一つのタイル番号を対応づける。
【００６１】
画像ファイル生成部１２８は、タイル画像参照テーブルにおいて参照先となっているタイル画像のデータを読み出し、順につなげることによって、最終的な画像データを生成する。この際、上述のように、所定のサイズごとにタイル画像をまとめていくことにより画像ブロックを形成し、画像ブロックの識別情報と画像データの先頭アドレスからのオフセット値とを対応付けることによって画像ブロックごとにデータを管理する。そして画像データ、タイル画像参照テーブルを含む画像ファイルを生成して、最終的な出力データとする。
【００６２】
このように、画像の冗長性を検出して、複数の領域の描画に一つのタイル画像のデータを用いるようにすることにより、画像データのサイズを効率的に圧縮することができる。本実施の形態では、解像度の異なる同一の画像を画像データに含むため、異なる階層の画像であっても同じタイル画像のデータを利用することによってデータの高率圧縮が可能である。
【００６３】
図１１は画像に冗長性がある場合に構築する、領域番号とタイル画像のデータの対応関係の例を模式的に示している。同図において画像３２ｂおよび画像３４ｂは、ある階層データに含まれる第１階層、第２階層の２つの階層の画像である。すなわち画像３２ｂは画像３４ｂを縮小して得られる。画像３２ｂおよび画像３４ｂ上に示した格子はタイル画像に分割する際の境界線であり、境界線で区切られた各領域にはあらかじめ図に示すように領域番号が付与されている。この領域番号は画像によらず固定値としてよい。また番号の付与順は図に示したものに限らない。
【００６４】
同図において画像３２ｂおよび画像３４ｂには、楕円形１３６と三角形１３８の図形が描かれ、それ以外の領域は背景として単色に塗りつぶされているとする。そのような画像の各領域から切り出されたタイル画像のデータ２４０は、本来の画像上の並びと独立してメインメモリ６０などに保持しておく。タイル画像のデータ２４０にもそれぞれタイル番号を付与する。タイル画像参照テーブルは、画像３２ｂ、３４ｂ上の領域番号とタイル番号とを対応づけたテーブルであり、図中、矢印で表す対応関係を記載する。
【００６５】
ここで、画像３２ｂにおいて単色の塗りつぶし領域である領域番号「４」は、そこから切り出されたタイル画像のデータ、すなわちタイル番号「４」に対応づけられている。画像３４ｂは、画像３２ｂの拡大画像であるから、２つの画像の領域番号の対応関係は拡大率によって容易に導出できる。同図では、画像３２ｂの領域番号「４」と、画像３４ｂの領域番号「１５」、「１６」、「１９」、「２０」が対応する。したがって、画像３４ｂの当該領域番号の領域は、自ずと単色の塗りつぶし領域であることが判明する。このとき、これらの画像領域を、領域番号「４」に対応づけられているタイル番号「４」に対応づけることにより、本来の領域から切り出したタイル画像のデータ（例えばタイル番号「１５」、「１６」、「１９」、「２０」のデータ）を、最終的な画像データから除外することができる。
【００６６】
同様に、画像３４ｂまで拡大したときに塗りつぶし領域となる領域を、画像３２ｂを走査することによって判別すると、領域番号「３」の下半分の領域、すなわち画像３４ｂの領域番号「１７」、「１８」が塗りつぶし領域であることがわかる。したがってこれらの領域もタイル番号「４」のタイル画像に対応づけることにより、本来の領域から切り出したタイル画像のデータ（例えばタイル番号「１７」、「１８」のデータ）を、最終的な画像データから除外することができる。
【００６７】
本実施の形態で用いる画像データは、複数の解像度の同一の画像を処理対象とするため、上記の原理を最も小さい解像度の画像から順に繰り返すことにより、高解像度の大きなサイズの画像についても、計算負荷を抑えて冗長性を有する領域を特定することができる。さらに上述のように、低解像度の画像データを流用することにより、多くの領域において、元の画像データを破棄できる可能性があるため、高圧縮率が見込める。なお上述の説明では単色の塗り潰し領域を検出して、同じ塗りつぶし領域で構成されるタイル画像のデータを共有することとしたが、同様の処理は、およそ単色の領域、ランダムな模様や繰り返しの模様のみの領域などでも有効である。これらの領域の検出は、領域ごとのカラーヒストグラムや周波数解析などによって低解像度の画像から実施していく。
【００６８】
図１２は画像に冗長性がある場合に構築する、領域番号とタイル画像のデータの対応関係の別の例を模式的に示している。画像３２ｂおよび画像３４ｂは図１１で示したのと同様である。同図において画像３２ｂの領域番号「２」の領域は、画像３４ｂの領域番号「７」、」「８」、「１１」、「１２」の領域に対応する。画像３４ｂは画像３２ｂより高解像度の画像であるため、これらの領域の４つのタイル画像は領域番号「２」の領域から切り出したタイル画像（タイル番号「２」）を単に拡大した画像より多くの情報を含むのが一般的である。
【００６９】
しかし元の画像が写真などで、画像３４ｂの領域番号「７」、」「８」、「１１」、「１２」の領域にピントが合っていない場合など、タイル番号「２」のタイル画像を拡大した画像と大きな差がない場合がある。このような場合には、タイル画像参照テーブルにおいて、高解像度の画像３４ｂの４つの領域の領域番号を、低解像度の画像３２ｂの対応する領域から切り出したタイル番号「２」に、まとめて対応づける。このとき、画像３４ｂから表示画像を生成する際に、タイル番号「２」のタイル画像のデータをそのまま用いるのでなく、当該データを拡大したうえ一部の領域のみを用いるように、拡大率および領域の対応関係を、タイル画像参照テーブルに付記しておく。このような階層間の冗長性は、低解像度画像を拡大した画像と高解像度の画像との差分がしきい値以下である場合や、高解像度の画像を周波数解析したとき、しきい値以下の周波数帯のみ含む場合などに検出される。
【００７０】
図１３は、図１１および図１２で説明した領域番号とタイル番号の対応関係を記載したタイル画像参照テーブルの例を示している。タイル画像参照テーブル２００は、領域番号欄２０２、タイル番号欄２０４、および拡大情報欄２０６を含む。領域番号欄２０２には、階層データにおける画像の領域番号を記載する。なお同図は図１１および図１２で示した２階層の画像に付与された、領域番号「１」から「２０」までの値を記載しているが、実際には階層データを構成する全階層の領域番号を記載する。そしてタイル番号欄２０４には、各領域の表示画像を生成する際に参照するタイル画像のタイル番号を記載する。拡大情報欄２０６には、参照先のタイル画像のデータを拡大する必要がある場合に、その拡大率と、該当領域が拡大後の画像のどの位置に対応するかを示す情報を記載する。
【００７１】
図１１で説明した例では、画像３４ｂに含まれる、領域番号「１５」〜「２０」の領域は、タイル番号「４」のタイル画像のデータを利用して描画することができるため、これらの領域番号に対して、タイル番号欄２０４にはタイル番号「４」が記載されている。また図１２で説明した例では、画像３４ｂに含まれる領域番号「７」、「８」、「１１」、「１２」の領域は、タイル番号「２」のタイル画像を拡大することによって描画できるため、これらの領域番号に対して、タイル番号欄２０４にはタイル番号「２」が記載されている。さらにそれらの領域は、タイル番号「２」の画像を４倍に拡大した画像から得られることと、拡大後の画像を４分割した際の左上、右上、左下、右下の領域を表す識別番号を「０」、「１」、「２」、「３」としたときの領域の対応関係が「４倍：０」といった表現で記載されている。
【００７２】
図１１、１２の例では、参照先のタイル画像は、画像３２ｂから切り出したタイル画像であったが、参照先は元の階層データの画像から切り出したものに限らない。例えば元の画像によらず単色のタイル画像を用意しておいてもよい。そして画像上で単色の領域がある場合に、用意しておいたタイル画像を参照するようにしてもよい。また図１２の態様を応用し、複数の色を寄せ集めたタイル画像を用意しておき、画像上で単色の領域がある場合に、当該色を寄せ集めたタイル画像のうちの該当する色の領域を拡大して描画に用いるようにしてもよい。例えば２５６×２５６画素のタイル画像の場合、全画素が異なる色のタイル画像を用意しておけば、２５６×２５６＝６５５３６色の塗りつぶし領域を一つのタイル画像の画素を拡大することによって表現することができる。
【００７３】
次に、画像ファイルを生成する機能を有する制御部１００ｂの動作を説明する。図１４は図１０で示した制御部１００ｂが画像ファイルを生成する処理手順を示すフローチャートである。まずユーザまたは別の処理モジュールによって画像データを指定する入力がなされたら、画像階層生成部１２０は、ハードディスクドライブ５０から指定された画像データを読み出す（Ｓ５０）。そして一般的な縮小処理を施すことによって所定の解像度を有する画像データを生成して、複数の解像度の画像データからなる階層データを生成する（Ｓ５２）。次に画像分割部１２２は、各階層の画像をタイル画像に分割したうえ、タイル画像の識別番号であるタイル番号と、タイル画像のデータとの対応づけを行う（Ｓ５４）。実際にはタイル画像のデータはメインメモリ６０に格納し、タイル番号とメモリ上のアドレスとを対応づけておく。
【００７４】
タイル番号は、それを切り出した画像上の領域番号と同一の番号でもよいが、本実施の形態のタイル画像のデータは位置の情報から独立しているため、タイル番号も独立して付与してもよい。図１０〜図１２は前者の例を示している。するとタイル画像参照テーブル作成部１２６は、その段階におけるタイル画像参照テーブルを作成する（Ｓ５６）。この段階でのタイル画像参照テーブルは、画像上の領域番号と、そこから切り出したタイル画像のデータとが対応するように作成される。
【００７５】
次に冗長性検出部１２４は、上述のように、同一の階層画像内での冗長性、および異なる階層間での冗長性について確認する（Ｓ５８）。具体的には、Ｎ階層の画像を走査して、Ｎ＋１階層の画像のタイル画像の大きさに対応する大きさの領域に単色で構成される領域があるか否かを確認する。これを解像度が高い階層の方向へ繰り返していく。冗長性検出部１２４はそのほか、Ｎ階層の画像をＮ＋１階層の画像の大きさまで拡大した画像とＮ＋１階層の画像との差分画像や、Ｎ＋１階層の画像の周波数解析により、Ｎ＋１階層の画像であってもＮ階層の画像と同程度の情報しか含まない領域があるか否かを確認する。確認手法は画像処理の分野で一般的に行われている手法を適宜適用してよい。
【００７６】
冗長性検出部１２４によって冗長性を有する領域が検出されたら（Ｓ５８のＹ）、タイル画像参照テーブル作成部１２６は、図１０、１１に示すように、一つのタイル画像、またはタイル画像の一部のデータを、複数の画像上の領域表示に用いることができるよう、タイル画像参照テーブルを更新する（Ｓ６０）。このとき、低階層の画像を拡大することによって高階層の画像を表示する場合は、上述のような拡大情報をも記載する。
【００７７】
次に画像ファイル生成部１２８は、最終的に出力するための画像ファイルを作成する（Ｓ６２）。ここで冗長性検出部１２４がＳ５８で冗長性を検出しなかった場合は（Ｓ５８のＮ）、Ｓ５４で分割して生成されたタイル画像のデータを全てメインメモリ６０より読み出してタイル番号順に並べ、先頭から画像ブロックに分割していき、各画像ブロックに識別情報を与える。そしてＳ５６で生成したタイル画像参照テーブルとともに画像ファイルとする。
【００７８】
冗長性が検出された場合は（Ｓ５８のＹ）、Ｓ６０で更新した最終的なタイル画像参照テーブルにおいてタイル番号欄２０４に記載されているタイル番号のタイル画像のデータのみをメインメモリ６０より読み出し、タイル番号順に並べ、やはり先頭から画像ブロックに分割して各画像ブロックに識別情報を与える。そしてＳ６０で生成したタイル画像参照テーブルとともに画像ファイルとする。
【００７９】
次に、このようにして生成した画像ファイルに基づき、画像を表示するときの動作を説明する。図１５は、本実施の形態における画像ファイルを表示するための処理手順を示すフローチャートである。本処理手順は、図７に示した制御部１００ａによって実現できる。同フローチャートは、表示領域変更要求によって画像ファイルから必要なデータを読み出しデコードして表示する処理を主に記載しているが、ハードディスクからのロード、必要なデータの先読み処理、バッファメモリへの書き出しなど基本的な流れは図５で示したのと同様である。
【００８０】
まず表示装置１２に画像の一部が表示された状態で、ユーザが入力装置２０を介して表示領域の変更要求を入力すると、入力情報取得部１０２はそれを受け付ける（Ｓ７０）。するとタイル画像特定部１１０は、要求される表示画像の変更量を導出し、それに基づき新たに表示すべきフレーム座標を決定する（Ｓ７２）。表示画像の変更量は、仮想空間における上下左右方向の移動量および深さ方向の移動量であり、表示すべきフレーム座標は、それまでに表示されていた表示領域のフレーム座標と導出した変更量により決定できる。
【００８１】
次にタイル画像特定部１１０は、フレーム座標が示す変更後の表示画像を含む領域の領域番号を取得する（Ｓ７４）。そしてタイル画像参照テーブルを参照して、取得した領域番号に対応づけられたタイル番号を取得する（Ｓ７６）。バッファメモリ７０に、当該タイル画像のデコードされたデータが格納されていない場合は（Ｓ７８のＮ）、デコード部１１２がタイル番号に基づきタイル画像のデータをメインメモリ６０から読み出し、デコードする（Ｓ８０、Ｓ８２）。
【００８２】
ここで図１１に示すように、表示すべき画像を低解像度のタイル画像を拡大して描画するよう、タイル画像参照テーブルに記載してある場合、デコード部１１２はタイル画像特定部１１０からの指示に従い、該当タイル画像を拡大したうえ、必要な領域をバッファメモリ７０に格納する（Ｓ８４のＹ、Ｓ８６）。この処理は、該当タイル画像がデコード済み（Ｓ７８のＹ）であっても同様に行う。そして拡大処理の有無に関わらず（Ｓ８４のＹ、Ｓ８４のＮ）、表示画像処理部１１４は、当該タイル画像のうち新たに表示すべき領域をフレームメモリに描画する（Ｓ８８）。描画処理には、要求される解像度に応じて、バッファメモリ７０に格納されたデータを拡大、縮小する処理も含まれる。
【００８３】
これまで述べたように本実施の形態では、同一階層内のみならず別階層の画像間でも冗長性を確認し、タイル画像のデータを共有することによりデータを効率的に圧縮した。この手法は、一つの画像から作成された解像度の異なる画像データを処理対象としている、という本実施の形態の特徴を活かしている。この特徴をさらに利用すると、タイル画像参照テーブルもまた効率的に圧縮できる可能性が高くなる。
【００８４】
図１６はタイル画像参照テーブルの冗長性について説明する図である。同図に示した３つの画像３２ｃ、３４ｃ、３６ｃはある階層データを構成する画像のうち、第１階層、第２階層、第３階層の画像である。第１階層の画像３２ｃにおける領域２５０ａは、第２階層の画像３４ｃにおける領域２５２ａ、第３階層の画像３６ｃにおける領域２５４ａにそれぞれ対応する。ここで例えば領域２５０ａのタイル画像が単色の塗り潰し領域であった場合、原則として、領域２５２ａの４つのタイル画像および領域２５４ａの１６個のタイル画像も全て塗りつぶし領域となる。
【００８５】
このような階層データにおいて冗長性を考慮してタイル画像参照テーブルを作成した場合、領域２５０ａ、領域２５２ａ、領域２５４ａに含まれる全ての領域の領域番号が、同一のタイル番号に対応づけられることになる。図１２で例示したタイル画像参照テーブル２００においても、同一のタイル番号「４」を参照先とする領域が続いている（領域番号「１５」〜｛２０」）。そこで、タイル画像参照テーブルにおいて、領域番号をグルーピングし、グループごとにタイル画像参照テーブルのデータ自体を圧縮する。圧縮手法は一般的に用いられる技術を適用することができる。
【００８６】
領域のグルーピングに当たっては、番号順に並べた領域番号を適当な箇所で区切るより、異なる階層の複数の画像内の対応する領域が一つのグループに含まれるようにすることが望ましい。これは上述の理由により、このような領域はタイル画像を共有できる可能性が高いためである。
【００８７】
図１６の例で、各階層の画像データのうち領域２５０ａ、２５２ａ、２５４ａを、階層データの側面図２６０の線２５０ｂ、２５２ｂ、２５４ｂで表すと、例えば網掛けで示した領域２６２をグルーピングすれば、当該グループに含まれる領域は全て一つのタイル画像で描画できる、ということになるため、グループの識別番号および参照先のタイル画像の識別番号、という対応づけのデータで十分となり、圧縮効率が高くなる。このように、階層をまたがる領域でグルーピングしてタイル画像参照テーブルを構築することにより、さらにデータの圧縮率を向上させることができる。グルーピングする際の境界は、画像の内容や種類などに鑑み、高い圧縮率が見込める位置をあらかじめ決定しておく。
【００８８】
なおこれまでの説明では、塗りつぶし領域などを低解像度側から特定していくことにより、高解像度の画像は低解像度のタイル画像を参照して描画するようにした。一方、低解像度画像では青空などほぼ塗りつぶし領域であったものが、高解像度画像では小さい鳥が写っていたなど、高解像度の画像が低解像度の画像を継承していない場合がある。
【００８９】
そのため図１１で説明したように、参照先の候補となる低解像度のタイル画像を拡大して高解像度の対応する領域と比較することにより、高解像度画像でのみ表れている物の有無を確認するようにしてもよい。そしてもしそのような物が認められたら、その解像度以上の画像は、最も解像度の高いタイル画像を縮小することによって描画するようにしてもよい。この場合もタイル画像参照テーブルは図１２で示したのと同様であるが、一の領域番号に対し、高解像度画像の対応領域である複数のタイル画像の識別番号が対応づけられる。
【００９０】
また上述の例では、画像に冗長性がある場合に、複数の領域を一つのタイル画像のデータで表すようにしたが、冗長性がなくとも、ユーザが指定する領域について、一つのタイル画像のデータを参照するようにしてもよい。例えば上述のように、高解像度の画像において写っていた物を、故意に表示しないようにするため、低解像度のタイル画像で代用すべき領域をユーザから受け付け、当該領域の表示には常に低解像度のタイル画像を用いるようにする。あるいは画像の背景など、拡大して表示する必要のない領域は、高解像度の表示であっても低解像度のタイル画像を利用して描画することにより、データサイズをさらに小さくする。いずれの場合も、タイル画像参照データは図１２に示したのと同様である。
【００９１】
以上述べた本実施の形態によれば、同一の画像で解像度の異なる画像データで構成される階層データから画像ファイルを生成する際、画像データの本体であるタイル画像のデータを、画像上の位置の情報から独立させる。そのために、画像上の位置を表す領域番号とタイル画像のデータを識別するタイル番号とを対応づけたタイル画像参照テーブルを用意する。このようにすることで、一つの画像データを複数の領域の描画に流用することができるため、元の画像データの一部を破棄し、画像データを圧縮することができる。
【００９２】
元の階層データは、解像度が異なるのみで同一の画像であるため、タイル画像を流用できる場合が多く、高い圧縮効率が見込める。さらに塗りつぶし領域など、タイル画像を流用できる領域は、低解像度画像から容易に特定できるため、それぞれの画像を独立して走査する場合に比べ処理の負荷が抑えられる。
【００９３】
さらに、一つのタイル画像を流用できる領域は空間局所性がある場合が多いため、領域をグルーピングしてタイル画像参照テーブルそのものをデータ圧縮することによりさらにデータサイズを抑えることができる。このとき、画像平面および解像度の軸で構成する仮想空間において領域をグルーピングすることにより、解像度の異なる画像をまたいだ効率のよい圧縮が可能である。
【００９４】
実施の形態２
実施の形態１では、一の画像を入力データとし、タイル画像参照テーブルを含む画像ファイルを生成する機能、および当該画像ファイルを持ちいて画像を表示する機能について説明した。本実施の形態では、実施の形態１で生成した、タイル画像参照テーブルを含む画像ファイルを修正、改変する機能について説明する。本実施の形態は図１で示した画像処理システム１および図４で示した画像処理装置１０によって実現することができる。ここでは実施の形態１と異なる点に着目して説明する。
【００９５】
図１７は、本実施の形態において画像を修正する機能を有する制御部１００ｃの構成を示している。制御部１００ｃは、修正対象の画像ファイルを取得する画像ファイル取得部３１８、修正によって更新される領域と更新部分の画像データからなる更新情報を取得する更新情報取得部３２０、更新後のタイル画像を生成するタイル画像生成部３２２、タイル画像参照テーブルにおいて参照先を新たなタイル画像のデータとするタイル画像参照テーブル更新部３２４、修正中の画像を表示する表示画像制御部３２６、および修正後の画像ファイルを生成する画像ファイル生成部３２８を含む。
【００９６】
画像ファイル取得部３１８は、ユーザによる修正対象の画像の指定入力を受け付け、該当する画像ファイルをハードディスクドライブ５０から読み出してメインメモリ６０に格納する。この画像ファイルは実施の形態１で説明したように画像データとタイル画像参照テーブルを含む。更新情報取得部３２０は、ユーザが表示装置１２に表示された修正対象の画像を見ながら、入力装置２０を介して入力した更新情報を取得する。更新情報には上述のとおり、更新すべき領域とその領域における更新後の画像データが含まれる。
【００９７】
タイル画像生成部３２２は、更新すべき領域に更新後の画像を当てはめた際に更新する必要が生じたタイル画像を特定し、新たなタイル画像を生成する。ここで、更新すべき領域があるタイル画像の一部にのみかかっている場合は、元のタイル画像をメインメモリ６０から読み出し、更新すべき領域のみ上書きすることにより新たなタイル画像を生成する。あるタイル画像が全て更新すべき領域に含まれている場合は、更新後の画像を切り出すことによって新たなタイル画像を生成する。生成したタイル画像にはタイル番号を付与する。このときのタイル番号は、元の画像のタイル画像に対して付与済みの番号以外の番号を用いる。
【００９８】
そしてタイル画像生成部３２２は、生成したタイル画像のデータをメインメモリ６０に格納する。この際、画像ファイル取得部３１８がメインメモリ６０に格納した元の画像データはそのままにしておき、新たに生成したタイル画像は別の記憶領域に格納する。このように追加で格納したタイル画像のデータは、追加分のみで画像ブロックを形成する。次にタイル画像参照テーブル更新部３２４は、メインメモリ６０に格納されたタイル画像参照テーブルにおいて、更新すべき領域に含まれる領域番号に対応づけられたタイル番号を、新たに生成したタイル画像のタイル番号に書き換える。
【００９９】
表示画像制御部３２６は、実施の形態１の図７で示した制御部１００ａに含まれる機能ブロックで構成してよいが、ここでは図示を省略している。表示画像制御部３２６は、実施の形態１の図１５で説明したのと同様の処理手順により修正対象の画像を表示するが、本実施の形態ではユーザの入力によってタイル画像参照テーブルが更新されていく。それに応じて、画像を描画する際に用いるタイル画像が新たなものに変化する。このようにすることで、表示画像を確認しながら画像を修正、改変することが可能になる。
【０１００】
画像ファイルに含まれる画像データは上述のように、タイル画像のデータをつなげたものである。そして表示時にハードディスクドライブ５０から効率よくロードするために、当該一連のデータを区切って画像ブロックとしている。通常、このような画像データに対し画像の一部を更新する場合、既存の画像ブロックの該当タイル画像を上書きすることが考えられる。しかし、更新前後のタイル画像のサイズが等しいとは限らないため、タイル画像の更新には次のような処理が必要となる。
【０１０１】
例えば図９の画像ブロックにおいてタイル番号「４」のタイル画像を更新する場合、まずタイル番号「５」以後のタイル画像のデータを別の記憶領域に退避させる。そしてタイル番号「４」のタイル画像を更新した後、退避させたタイル番号「５」以後のタイル画像のデータを更新後のタイル画像「４」のデータの後につなげる。さらに各画像ブロックが基本ブロックサイズを超えないように、タイル番号「０」のタイル画像から再び画像ブロックを形成していく。このような処理を、ユーザが更新情報を入力するたびに行っていては、更新後の画像表示の応答性が悪くなり、修正作業が滞ってしまう可能性が高い。
【０１０２】
一方、本実施の形態では、元の画像データを更新せず別の記憶領域に新たに生成したタイル画像を追加するとともにタイル画像参照テーブルを更新する。これにより、上述の更新処理より格段に少ない手順で表示画像を更新することができるため、修正をスムーズに行うことができる。
【０１０３】
画像ファイル生成部３２８は、ユーザが修正を終えたときなどに、新たに生成したタイル画像のデータで元のタイル画像のデータを上書きする。このときは上述のように、後に続くタイル画像の退避、更新するタイル画像の上書き、退避させたタイル画像の復元、といった、データの再構築を行うことにより、無駄な領域がない一連の画像データを生成する。そして更新されたタイル画像参照テーブルを付加して画像ファイルとする。
【０１０４】
次に上記の構成によって実現できる動作を説明する。図１８は画像処理装置においてユーザが画像を修正、改変する際の処理手順を示すフローチャートである。まずユーザが修正対象の画像ファイルを指定すると、画像ファイル取得部３１８はハードディスクドライブ５０から該当する画像ファイルを読み出しメインメモリ６０に格納する（Ｓ１１０）。すると表示画像制御部３２６は当該画像ファイルの画像を表示装置１２に表示する（Ｓ１１２）。なお実施の形態１で説明したのと同様、画像データを全てメインメモリ６０に読み出さず、表示に必要な画像ブロックのみを読み出して表示画像の生成に用いるようにしてもよい。
【０１０５】
この状態でユーザが表示装置１２に表示された画像を見ながら更新情報を入力すると（Ｓ１１４のＹ）、更新情報取得部３２０はそれを受け付け、タイル画像生成部３２２が更新部分の新たなタイル画像を生成してタイル番号を付与したうえメインメモリ６０に格納する（Ｓ１１６）。ユーザが行う更新情報の入力は、例えば表示装置１２に表示した画像の近傍に、新たに貼り付けたい画像をさらに表示し、ユーザがポインティングデバイスで所望の領域までドラッグさせるなどの操作によってなされる。あるいはポインティングデバイスによって文字や絵を直接描き込む等でもよい。
【０１０６】
次にタイル画像参照テーブル更新部３２４は、タイル画像参照テーブルのうち新たに作成したタイル画像に対応する領域の参照先を、新たなタイル番号に変更する（Ｓ１１８）。すると表示画像制御部３２６は、新たな参照先となったタイル画像のデータを読み出し、デコードすることによって表示装置１２の表示を更新する（Ｓ１２０）。Ｓ１１４からＳ１２０までの処理を、修正が終了し更新情報が得られなくなるまで繰り返す。
【０１０７】
ここで、Ｓ１１６において前にメインメモリ６０に格納したタイル画像のデータと同じ領域のタイル画像を再度更新する場合は、前に作成して格納したタイル画像を上書きするようにして、一時的にメインメモリ６０が圧迫されるのを防止する。そのため、前に格納したタイル画像のデータより上書きするデータのサイズが大きいときに備え、新たに作成した異なる領域のタイル画像をメインメモリ６０に格納する場合は、格納済みのタイル画像のデータの格納領域から所定の間隔を空けたアドレスに格納するようにする。
【０１０８】
修正が終了したことをユーザからの入力などにより検知したら（Ｓ１１４のＮ）、画像ファイル生成部３２８は、メインメモリ６０に格納しておいた、新たに作成したタイル画像を、元の画像ファイルの画像データに組み込んで、画像データを再構築する（Ｓ１２２）。具体的には上述のとおり、更新前のタイル画像のデータを破棄して同じ位置に新たなタイル画像のデータを挿入したうえで全てのタイル画像のデータをつなげていく。そして、そのように再構築された画像データと、Ｓ１１８で更新された最終的なタイル画像参照テーブルを、画像ファイルとして生成する（Ｓ１２４）。
【０１０９】
Ｓ１２２では、新たなタイル画像データを組み入れた後の画像データに対し、実施の形態１で説明したのと同様の手法により冗長性の確認、およびタイル画像参照テーブルのさらなる更新を行うことにより、データを圧縮するようにしてもよい。またタイル画像参照テーブルも実施の形態１と同様に圧縮してよい。
【０１１０】
修正中、ユーザが、直前の画像の更新を取り消す操作（Ｕｎｄｏ）を行った場合は、タイル画像参照テーブル更新部３２４がタイル画像参照テーブルにおいて、当該領域に対応づけた参照先を更新前のタイル番号に戻す。タイル画像のデータそのものは更新していないため、画像を前の状態に戻すことが容易にできる。操作の再履行（Ｒｅｄｏ）でも同様に、タイル画像参照テーブルの参照先を変更する。
【０１１１】
なお同じタイル画像の領域が複数回修正された場合、前述のように前に生成してメインメモリ６０に格納されたタイル画像を上書きせずに、新たに生成したデータは別のメモリ領域に格納するようにしてもよい。このようにすることで、同じタイル画像の領域を複数回修正した場合に、タイル画像参照テーブルの参照先を変更するのみで、修正順を踏襲してＵｎｄｏ、Ｒｅｄｏを多段階で行うことができる。
【０１１２】
なお、修正操作において画像に別の画像を拡大して貼り付ける場合、拡大した画像データを生成せず、貼り付ける画像の元のデータを参照するようにタイル画像参照テーブルを更新してもよい。すなわち、実施の形態１の図１１で説明したように、貼り付ける画像を拡大したタイル画像のデータの情報量は元の画像のそれと差がないため、画像データとして元から用意せずとも、表示時に拡大することで同じ表示画像が得られる。このようにしてデータサイズの増大を防止できる。
【０１１３】
実施の形態３
本実施の形態では、実施の形態２で示した画像の修正機能を応用した画像作成機能について説明する。本実施の形態は図１で示した画像処理システム１、図４で示した画像処理装置１０、図１７で示した制御部１００ｃと同様の構成によって実現することができる。ここでは実施の形態２と異なる点に着目して説明する。
【０１１４】
実施の形態２では、元から階層データが存在する画像ファイルを修正したが、本実施の形態では初めから画像作成を行うため、階層データは存在しない。ユーザは白い表示画面をキャンバスとしてポインティングデバイスによって絵を描くなどして画像を作成する。あらかじめ用意した写真や絵のデータを貼り付けるなどでもよい。
【０１１５】
図１９は画像作成作業前後の、表示画像、階層データ、タイル画像データの変化を模式的に示している。画像作成作業前、すなわち初期の状態では、表示画像３５０はキャンバスを表すため、白い塗りつぶし画像となる。このときは拡大、縮小の概念が存在しないため、階層データは画像３５２一層のみでよい。その領域は、タイル画像参照テーブルにおいて、一つの白い塗りつぶし画像からなるタイル画像データ３５４に対応づけておく。
【０１１６】
ユーザが表示画像３５０のキャンバスに何らかの描画を行い、表示画像が表示画像３５６のようになると、その時点で拡大、縮小の概念が発生し、階層データとして最下層の画像３５８に解像度の高い階層の画像３６０を追加する。追加する階層は２つ以上でもよく、許容される最高解像度などに応じてあらかじめ定めておいてもよいし、ユーザが行った描画の内容によって適応的に決定してもよい。
【０１１７】
このように描画によって階層データにおける階層を増加させても、手が加えられていない領域については白い塗りつぶしのままである。そのため、描画された部分のみ、新たにタイル画像のデータを生成して追加する。図１９では、最低階層の画像３５８のタイル画像データ３６４、および、新たに追加した階層の画像３６０のうち描画された領域のタイル画像データ３６６のみを生成する。そして、当該画像３６０のうち描画されていない領域は、キャンバスとして元から準備した白い塗りつぶしのタイル画像データ３５４を参照して描画を行う。階層データにおける領域とタイル画像データの対応づけは、タイル画像参照テーブルで設定する。
【０１１８】
本実施の形態の画像作成機能を有する制御部１００の動作は、実施の形態２において図１８を用いて示したのと同様である。ただし上述のように、描画されていない領域は常に最初に用意した白い塗りつぶしのタイル画像を参照し、描画が進むにつれ階層やタイル画像のデータを追加していく点が特徴的である。本実施の形態では、タイル画像参照テーブルによってタイル画像のデータを階層データ上の位置から独立させているため、このように、最低限のデータの変更で、拡大、縮小しながらユーザ自身が画像を作成していく機能を実現することができる。
【０１１９】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１２０】
例えば、実施の形態１では基本的に、領域番号からタイル番号のデータが一つに決まるように、タイル画像参照テーブルを構成し、そのタイル画像のデータを用いて得られる一つの画像を必要な領域に当てはめた。一方、タイル画像参照テーブルにおいて一の領域番号を複数のタイル画像のデータに対応させ、当該領域を表示する際は対応する複数のタイル画像を順に表示することによりアニメーションを表示できるようにしてもよい。この態様を画像上の一部の領域のみに適用すれば、例えば画像内で新たに更新された箇所や重要な箇所のマークが点滅するように表示することにより、ユーザに当該箇所を注目させることができる。
【０１２１】
また複数の画像の階層データを用意し、全ての領域番号に、当該複数の画像を構成するタイル画像のうち、同じ領域を表す複数のタイル画像のデータを対応づけることにより、画像全体に渡って表示される画像が切り替わるようにしてもよい。例えば、屋上にある固定カメラで撮影した朝、昼、夜の３つの風景画像の階層データを用意し、上述のような対応をタイル画像参照テーブルに設定する。表示を切り替える際はクロスフェードさせるなどして滑らかにつなぐことにより、拡大、縮小を可能とした状態で一日の風景の変化を表示することができる。
【０１２２】
一般的に、ゲーム装置などで表示されるポリゴンモデルでは、一つのモデルに対して複数のテクスチャを用意し、それをシェーダーで処理して最終画像を生成する。このように複数のテクスチャデータによって一つの画像を生成する場合に、これらの複数のテクスチャデータを各領域番号に対応づけることにより、容易に最終画像を生成することができる。例えば、油絵の画像ファイルを生成する場合、平面的な絵のタイル画像と、凹凸情報を表すバンプマップのタイル画像とを各領域番号に対応づける。ここで絵のタイル画像とバンプマップのタイル画像はそれぞれ階層構造をなしている。このような対応づけに基づき領域ごとにシェーダーによって画像を生成していけば、拡大、縮小が可能な画像においてバンプマッピングを容易に実現できる。また階層データをテクスチャとしてポリゴンモデルに適用することが容易になる。
【０１２３】
さらに、各領域番号に対応づけた複数のタイル画像を、画像の奥行き方向の変化を表現する画像とすることで、ボクセルデータを形成することができる。ボクセルデータでは一般的に、ボックスの端の領域などで情報量が少なく、表示時は実施の形態１のようにタイル画像を共有できることが多いため、データ圧縮効果が顕著になる。さらに、各領域番号に対応づけた奥行き方向を表現する複数のタイル画像のそれぞれを、さらに複数のタイル画像とすることにより、ボクセル表示におけるアニメーションやＣＧエフェクトが可能となる。
【０１２４】
また、画像を表示中、ネットワークなどを介してデータを取得したら、リアルタイムでタイル画像参照テーブルにおける参照先を変更するようにしてもよい。例えば、ニュース画像やスポーツの点数画像などをネットワークを介して取得するたびに、画像の一部の領域に対応づけるタイル画像を、当該新たに取得したデータに更新する。すると画像を表示中にリアルタイムな情報を追加で表示することが容易にできる。
【符号の説明】
【０１２５】
１  画像処理システム、  １０  画像処理装置、  １２  表示装置、  ２０  入力装置、  ３０  第０階層、  ３２  第１階層、  ３４  第２階層、  ３６  第３階層、  ３８  タイル画像、  ４４  表示処理部、  ５０  ハードディスクドライブ、  ６０  メインメモリ、  ７０  バッファメモリ、  ７２  バッファ領域、  ７４  バッファ領域、  ９０  フレームメモリ、  １００  制御部、  １０２  入力情報取得部、  １０６  ロードブロック決定部、  １０８  ロード部、  １１０  タイル画像特定部、  １１２  デコード部、  １１４  表示画像処理部、  １２０  画像階層生成部、  １２２  画像分割部、  １２４  冗長性検出部、  １２６  タイル画像参照テーブル作成部、  １２８  画像ファイル生成部、  ２００  タイル画像参照テーブル、  ３１８  画像ファイル取得部、  ３２０  更新情報取得部、  ３２２  タイル画像生成部、  ３２４  タイル画像参照テーブル更新部、  ３２６  表示画像制御部、  ３２８  画像ファイル生成部。
【図１】
2011028653.tif 000003
【図２】
2011028653.tif 000004
【図３】
2011028653.tif 000005
【図４】
2011028653.tif 000006
【図５】
2011028653.tif 000007
【図６】
2011028653.tif 000008
【図７】
2011028653.tif 000009
【図８】
2011028653.tif 000010
【図９】
2011028653.tif 000011
【図１０】
2011028653.tif 000012
【図１１】
2011028653.tif 000013
【図１２】
2011028653.tif 000014
【図１３】
2011028653.tif 000015
【図１４】
2011028653.tif 000016
【図１５】
2011028653.tif 000017
【図１６】
2011028653.tif 000018
【図１７】
2011028653.tif 000019
【図１８】
2011028653.tif 000020
【図１９】
2011028653.tif 000021