(57)【要約】【課題】部分伸長のためのＣＰＵの処理コストを抑え、部分伸長処理を行って画面表示を行う際に、ユーザ操作に迅速に応答して、高画質の画面表示を可能にすること。【解決手段】マクロブロック単位で圧縮画像を解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面サイズに合わせた縮小画像を生成し、生成したマップデータと縮小画像とを圧縮画像に関連付けて保存しておく。画像操作要求に基づいて、圧縮画像に関連付けられた縮小画像を表示装置へ出力し、縮小画像の表示範囲から解凍すべきマクロブロックを特定して、特定されたマクロブロックについてマップデータを用いて圧縮画像を部分解凍し、部分解凍された画像のうち表示範囲の画像を表示装置へ出力する。【選択図】図１
2011188041.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を部分伸長する方法であって、
圧縮画像をコンピュータの記憶装置へ保存するステップと、
前記圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを記憶装置に保存するステップと、
入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた前記縮小画像を前記表示装置へ出力するステップと、
前記縮小画像の表示範囲から解凍すべき一または二以上のマクロブロックを特定するステップと、
特定されたマクロブロックについて、前記マップデータを用いて前記圧縮画像を部分解凍するステップと、
部分解凍された画像のうち前記表示範囲の画像を前記表示装置へ出力するステップと、
を含むことを特徴とする部分伸長方法。
【請求項２】
圧縮単位であるマクロブロックごとに圧縮された圧縮画像を保存する手段と、
前記圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを生成するキャッシュファイル生成手段と、
入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた前記縮小画像を前記表示装置へ出力する縮小画像出力手段と、
前記縮小画像の表示範囲から前記マップデータのうち使用する一または二以上のマクロブロックを特定する使用ブロック判定手段と、
前記使用ブロック判定手段によって特定されたマクロブロックについて、前記マップデータを用いて前記圧縮画像を部分解凍する部分解凍手段と、
前記部分解凍手段によって、部分解凍された画像のうち前記表示範囲の画像を前記表示装置へ出力する部分解凍画像出力手段と、
を備えたことを特徴とする画像処理装置
【請求項３】
前記使用ブロック判定手段は、さらに前記表示範囲および前記画像操作要求の内容に基づいて、前記部分解凍手段によって部分解凍すべきマクロブロックを追加することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記部分解凍画像出力手段は、前記表示装置へ出力するための部分解凍画像が存在するか否かを判定し、存在する場合は前記縮小画像出力手段の動作を停止することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記表示範囲および前記画像操作要求の内容に基づいて、前記部分解凍手段によって部分解凍された画像を削除する部分解凍画像画像マクロブロック単位で削除する部分解凍画像削除手段を備えたことを特徴とする請求項２または３に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮された画像データのうち一部のみを伸長する技術に係り、特にユーザの表示範囲や拡大・縮小およびスクロールの指示によりＪＰＥＧ形式等の圧縮画像データの一部をデコード（解凍）して伸長し、表示装置へ出力する圧縮画像の部分伸長方法および画像処理装置に技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラやカメラ機能付き携帯電話の高解像度化によって、大容量の画像データを扱うようになってきた。一方、表示デバイスの解像度は表示するデータの解像度ほど高くないのが一般的である。
【０００３】
例えば、画像データを閲覧する表示デバイスは通常０.５Ｍ(ＶＧＡ)〜２Ｍピクセル(ハイビジョンテレビ)程度しか解像度はなく、この場合、この表示デバイスに１０Ｍピクセルのデータを全て出力して一度に見ることは不可能である。そこで閲覧の方法としては、「画像を縮小して全体を見る」または「画像を縮小せず(またはあまり縮小させずに)一部を見る」といういずれかの方法で閲覧することになる。この画像処理や画像データの保存には相当のメモリ容量が必要になるが、商品の低コスト化やハードウェアの制限から、メモリ容量に制約がある場合が多い。
【０００４】
このため、従来、画像処理や画像データの保存に使用されるメモリ容量を節約するための技術が提案されている。
【０００５】
例えば、特許文献１では、ＪＰＥＧ圧縮データに挿入されているＲＳＴの位置を保持するＲＳＴテーブルに基づいて、伸長開始位置を示すＲＳＴの位置と、伸長終了位置を示すＲＳＴの位置とを指定し、伸長開始位置より前の読み出し開始セクタから、伸長終了位置より後の読み出し終了セクタまでのデータを記録媒体から読み出し、このデータのうち、伸長開始位置から前記伸長終了位置までのデータを伸長する部分伸長装置が提案されている。
【０００６】
特許文献２では、少ないメモリ容量で大きなサイズの画像圧縮データを支障なく展開し、部分伸長画像の速やかな表示・スクロールを行うため、画像圧縮データストリームの先頭からのビット位置を、画像データの圧縮時または画像圧縮データの展開時等に、所定間隔毎に設定して圧縮データオフセット値として記憶しておき、原画像内の部分領域が指定されたとき、適切な圧縮データオフセット値を読み出して、圧縮データストリームの途中から画像圧縮データを部分展開してスクロール処理を行うという技術が開示されている。
【０００７】
また、特許文献３には、原画像を効率的に部分伸長するための走査テーブルを用いて、ＪＰＥＧ画像の部分伸長を行うための具体的な手法が記載されている。
【０００８】
一方、画像データを部分伸長して表示するには、ある程度処理時間が必要になる。このため、特許文献４では、撮影で得た原画像データから画素数を減少させたプレビュー画像データ及びこれよりさらに減少させ、規定の画素数としたサムネイル画像データを作成させ、原画像データと、対応するプレビュー画像データ及びサムネイル画像データとを一纏めにしてメモリカードに記録しておき、再生モード時にメモリカードに記録された画像データ中から一つを選択して、その画像データにプレビュー画像データが含まれていない場合には、対応する本画像データまたはサムネイル画像データを表示部に表示させるという技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第３１０８２８３号公報
【特許文献２】特許第３３９９７４３号公報
【特許文献３】特開２０００−２７８６８５号公報
【特許文献４】特許第３７４７９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、画像を部分伸長するための制御データを生成したり、その制御データを用いて部分伸長するには、少なからずメモリ容量やＣＰＵ負荷などの処理コストがかかる。例えば、制御データ生成中に画像の表示やスクロール・拡大縮小などユーザからの操作要求が有った場合、制御データ生成のためにその操作要求が待たされたり、圧縮画像全体を解凍するのに比べて部分解凍する方が早いといっても、少なからず部分展開のためにスクロール処理等のスピードが制限されたりするという問題がある。
【００１１】
本発明は、上述のかかる事情に鑑みてなされたものであり、部分伸長のためのＣＰＵの処理コストを抑え、部分伸長処理を行って画面表示を行う際に、ユーザ操作に迅速に応答して、高画質の画面表示を可能にする圧縮画像の部分伸長方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明による圧縮画像の部分伸長方法の概要は、圧縮画像をブロックごとに解凍するために必要な制御データ（以下、この制御データを「マップデータ」という。）を生成するときに、同時に全画面表示用の画像（以下、「高精細縮小画像」という）と、複数の画像を一覧表示するためのサムネイル画像（以下、「低精細縮小画像」）を生成して２次メモリ（ストレージ）にファイル形式で保存しておき、これら生成したデータのうち必要なデータのみをユーザからの操作要求があったときに主メモリに記憶させ、その操作要求の内容に応じて、高精細縮小画像または低精細縮小画像、およびマップデータを用いて部分解凍した画像を効果的に表示デバイスに出力することによって圧縮画像の高速な表示を可能にするものである。
【００１３】
以下、このマップデータ、高精細縮小画像、低精細縮小画像からなるデータを「キャッシュデータ」という。また、フラッシュメモリなどの大容量の２次メモリにファイル形式で保存されたキャッシュデータを「キャッシュファイル」という。
【００１４】
キャッシュデータの生成タイミングは、ＣＰＵの空時間（アイドリング時間）を利用した任意のタイミングであっても良いし、圧縮画像の最初のデコード（解凍）処理時、あるいは、非圧縮画像（元画像）データとして入力した場合はそのエンコード（圧縮）処理時であっても良い。
【００１５】
通常、画像表示のモードには、大きく分けて２つのモードがある。１つの画像を拡大/縮小/スクロールして見るための「詳細表示モード」と、複数の画像を一覧表示して目的の画像を探すための「サムネイル一覧モード」である。本発明では、詳細表示モードでは高精細縮小画像とキャッシュデータの両方を用い、サムネイル一覧モードでは低精細縮小画像のみを用いて高速表示を行う。
【００１６】
この低精細縮小画像を予め保存しておくことにより、ユーザから表示要求があったときに元画像を読み込む必要がなくなるので高速閲覧が可能になるが、低精細縮小画像は、圧縮画像の形式によっては、予め準備されている場合がある。例えば、ＪＰＥＧデータ内には１６０×１２０ピクセルのサイズで埋め込まれるExifサムネイルと呼ばれるサムネイル画像があり、一般的にデジタルカメラや携帯電話の撮影時に付加される
【００１７】
このExifサムネイルはデジタルカメラの液晶画面の解像度が小さかった当時は十分であったが、最近のデジタルカメラやハイビジョンテレビに表示することを考えるとそのサイズは十分ではない場合がある。どの程度のサイズに縮小させるかについては表示デバイスに依存するので、Exifサムネイルのようにあらかじめ埋め込まれた低精細縮小画像を用いるのではなく、閲覧時に高精細縮小画像から動的に生成し、そのデータをキャッシングして再利用しても良い。
【００１８】
詳細表示モードに関しては、圧縮画像を左上から右下に展開していく過程で、不必要な部分を捨てることで少ないメモリ消費量で処理できる。しかし画像の一部を見る際には、画像をスクロールさせて表示させることが多く、その場合にスクロールの都度都度で画像全体を展開する必要があり、これはパフォーマンスを劣化させユーザ操作に対するレスポンスが悪くなる。本発明では、画像データのファイルストリーム上の位置が、画像内のどの位置に対応するかをあらかじめ走査して記録しておき、それに基づいて画像を部分的に解凍すれば高速に解凍できる。
【００１９】
＜マップデータの構造＞
次に、ＪＰＥＧを例にとって本発明に係るマップデータの構造を説明する。ＪＰＥＧデータは画像圧縮の標準的フォーマットで元画像をマクロブロックと呼ばれる単位に分割して圧縮を行って生成された画像データである。
ＪＰＥＧは、マクロブロックごとに周波数変換、量子化、エントロピー圧縮を行い、画像の左上から右下のマクロブロックの順番に圧縮を行う。例えば図２では画像全体を８×６＝４８個のマクロブロックに分割し、ＭＢ００,ＭＢ０１,…,ＭＢ４７の順番で圧縮を行う。
【００２０】
圧縮後の各マクロブロックのデータは、画面左上から右下の順番でビットストリーム状に並んでおり、さらにそのＤＣ成分値は自身の前のマクロブロックとの相対的な差異により値を保持しているため、あるマクロブロックをデコードするためには先頭のマクロブロックから順次走査する必要がある。そのため、画像の一部分を解凍する際には、都度画像全体を展開する必要があり、処理パフォーマンスの低下の原因となっていた。
【００２１】
このため、本実施の形態では、画像データのファイルストリーム上の位置が、画像内のどの位置に対応するか、さらに、そのマクロブロックにおけるＤＣ成分値(ＹＵＶそれぞれについて)をあらかじめ走査してマップデータとして記録し、処理の高速化を図る。
図３にマップデータの構成を示す。
ここで、マップデータは、マクロブロックＩＤごとに、ファイルストリーム位置、ＤＣ成分値Ｙ、ＤＣ成分値Ｕ、ＤＣ成分値Ｖが関連付けられている。
【００２２】
ＪＰＥＧはエントロピー圧縮においてビット単位で圧縮されるため、ファイルストリーム位置はビット単位で指定される。
【００２３】
ＪＰＥＧ画像の部分解凍を行う際は、マップデータを参照しながら、表示する部分のマクロブロックのファイルストリーム位置を抽出して、その位置から解凍処理を行うことによって高速に解凍することが可能となる。たとえば、図４の太枠実線部分を表示デバイスの画面への表示範囲であるとすれば、その範囲を含む斜線マクロブロックのみを抽出して解凍処理を行う。
【００２４】
なお、マップデータは全てのマクロブロックについて夫々生成するとデータ量が多くなるので、マクロブロックを間引いてある一定の個数ごとに記録しておくのが好ましい。図５にマクロブロック５個ごとにファイルストリーム位置を記録したマップデータの構造の一例を示す。
【００２５】
マクロブロックを間引いてマップデータを生成した場合、マップデータに保存されていないマクロブロックは、マップデータに記録されたマクロブロックを基準として走査することにより解凍されることになる。
【００２６】
例えば、図６の太枠部分を表示させるための解凍処理をする場合、対象となるマクロブロックの周囲も解凍することとなるが、マップデータのデータ量を削減ができ、さらに、全てのマクロブロックを解凍するよりははるかに高速な解凍が可能となる。
【００２７】
＜プログレッシブＪＰＥＧのマップデータの場合＞
一般的にＪＰＥＧにはプログレッシブＪＰＥＧというものが存在する。これはファイルストリーム上で先頭の方は低周波数のデータを保存し、ストリームの後方にいくにつれて高周波数のデータとなるようにする。こうすることでネットワークを通じてファイル転送を行うときに、ファイルの先頭を転送した時点で粗い画像が表示され、ファイル転送が進むにつれて詳細データが表示させることができる。プログレッシブＪＰＥＧでは各周波数帯ごとのデータの集まりをスキャンと呼び、そのデータ構造は図７のようになっている。ここで、スキャン０は最低周波数帯（ＹＵＶのＤＣ成分）であり、スキャンＩＤが大きくなるより高い周波数帯のデータが保存される。
【００２８】
各々のスキャンはヘッダデータを持つことができ、そのスキャンごとのハフマンテーブルなどを持つことができる。このハフマンテーブルは、ハフマン符号化されたデータを解凍する際に必要になるものである。
【００２９】
プログレッシブＪＰＥＧについてのマップデータは図８のようにスキャンＩＤごとにスキャンヘッダのファイルストリーム上の位置を保存し、各マクロブロックのスキャンＩＤごとにファイルストリーム上の位置を保存する。ここで、プログレッシブＪＰＥＧは、スキャン０（ＤＣ成分）については、前ＭＣＵ（Minimum Code Unit）からの差分値になっているため、プログレッシブＪＰＥＧのマップデータについては、各マクロブロックごとに、ファイルストリーム上のそれまでのＭＣＵのＤＣ成分の累積値を計算して保存する。このＹＵＶそれぞれのＤＣ成分値はスキャンごとには存在せず、スキャン０にのみ存在する値である。
【００３０】
図８の例では、スキャンの個数は８個、マクロブロックの個数は８×６＝４８個で、マクロブロック５つごとに間引いてデータを保持している。
【００３１】
図５のマップデータとの差異は、スキャンヘッダのファイルストリーム位置が追加されたことと、マクロブロックのファイルストリーム位置は全てのスキャンについてその位置を保持することである。これにより、ファイル内の複数位置参照にも迅速に対応することができる。
【００３２】
プログレッシブＪＰＥＧについてのマップデータは複数のスキャンのファイルストリーム位置を保持しなくてはならないので、そのデータ量は多くなる。主メモリの容量によってはマップデータのデータサイズをある一定のデータ量以内にしたいケースもあり、その場合にはマクロブロックの間引きの間隔を調整すれば良い。例えばマップデータのデータ量の上限を Smap バイト、スキャンの個数をNscan、スキャンのファイルストリーム位置を保持するのにスキャン１つごとに Sscan バイト、マクロブロックの個数をNmb個、マクロブロックのファイルストリーム位置を保持するのにマクロブロック１つごとにSmb バイト、ＤＣ成分値ＹＵＶそれぞれについて保持するのにSdcバイトとすれば、マクロブロック間引き間隔 X は以下の式で求められる。
【００３３】
X = [ Nmb・(Smb・Nscan + ３・Sdc) ／ (Smap − Nscan・Sscan) ]  ・・・（１）
ここで[ v ] はv以上の最小の整数を表すものとする。
【００３４】
具体的には、本発明に係る圧縮画像ファイルの部分伸長方法は、コンピュータを用いて、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を部分伸長する方法であって、圧縮画像をコンピュータの記憶装置へ保存するステップと、圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを記憶装置に保存するステップと、入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた縮小画像を表示装置へ出力するステップと、縮小画像の表示範囲から解凍すべき一または二以上のマクロブロックを特定するステップと、特定されたマクロブロックについて、マップデータを用いて圧縮画像を部分解凍するステップと、部分解凍された画像のうち表示範囲の画像を表示装置へ出力するステップと、を含むことを特徴とする。
【００３５】
また、本発明に係る画像処理装置は、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を保存する手段と、圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを生成するキャッシュファイル生成手段と、入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた縮小画像を表示装置へ出力する縮小画像出力手段と、縮小画像の表示範囲からマップデータのうち使用する一または二以上のマクロブロックを特定する使用ブロック判定手段と、使用ブロック判定手段によって特定されたマクロブロックについて、マップデータを用いて圧縮画像を部分解凍する部分解凍手段と、部分解凍手段によって、部分解凍された画像のうち表示範囲の画像を表示装置へ出力する部分解凍画像出力手段と、を備えたことを特徴とする。
【００３６】
本発明では、マップデータを生成する処理と、表示装置の画面サイズに合わせた縮小画像を生成する処理とを共通化させることによってＣＰＵの処理コストを抑える。そして、ユーザの画像操作要求に基づいて、まず縮小画像をもとに画面表示用のデータを生成して出力し、その後マップデータを用いて部分解凍された画像データを用いて画面表示用のデータを生成して表示装置へ出力する。
【００３７】
また、本発明に係る画像処理装置では、使用ブロック判定手段は、さらに表示範囲および画像操作要求の内容に基づいて、部分解凍手段によって部分解凍すべきマクロブロックを追加することを特徴とする。
【００３８】
本発明では、単に縮小画像の現在の表示範囲から解凍すべきマクロブロックを特定するのみならず、拡大、縮小、移動方向などの画像操作要求の内容に基づいて解凍すべきマクロブロックを予測する。
【００３９】
また、本発明に係る画像処理装置では、部分解凍画像出力手段は、表示装置へ出力するための部分解凍画像が存在するか否かを判定し、存在する場合は縮小画像出力手段の動作を停止することを特徴とする。
【００４０】
本発明では、部分解凍した画像データ（以下、「部分解凍画像データ」という。）が存在する場合は、縮小画像の出力を禁止して、部分解凍した画像データを直ちに表示出力するので、操作要求時の画質のばらつきを低減して、高画質の表示画像を滑らかに移動等させることができる。
【００４１】
また、本発明に係る画像処理装置は、表示範囲および画像操作要求の内容に基づいて、部分解凍画像データをマクロブロック単位で削除する部分解凍画像削除手段を備えたことを特徴とする。
【００４２】
本発明では、表示範囲および画像操作要求の内容に基づいて、利用可能性の低くなった部分解凍画像データを判定してメモリから削除するので、効率的なメモリ利用が可能となる。
【発明の効果】
【００４３】
本発明によれば、マップデータを生成する際に表示画面のサイズに合わせて縮小画像を生成し、主メモリ上のマップデータや部分解凍画像を効率よく整理するので、ＣＰＵの処理コストを抑えることができる。また、ユーザの操作要求時に、部分解凍画像を用いて画面表示を行う前に、まず縮小画像を用いて画面表示を行うので、ユーザ操作に迅速に応答して、高画質の画面表示が可能になる。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施の形態による画像処理装置の機能ブロック図である。
【図２】ＪＰＥＧデータの圧縮時の分割単位であるマクロブロックの説明図である。
【図３】いわゆる基本ＤＣＴ方式のＪＰＥＧに対するマップデータの構成の一例である。
【図４】解凍すべきマクロブロックと表示範囲の関係の説明図である。
【図５】マップデータの構成の他の例であり、マクロブロックを５個ごとに保存するようにした場合の説明図である。
【図６】図５のマップデータの場合の解凍すべきマクロブロックと表示範囲の関係の説明図である。
【図７】プログレッシブＪＰＥＧのデータ構造の説明図である。
【図８】プログレッシブＪＰＥＧに対するマップデータの構成例である。
【図９】図１のキャッシュファイル生成手段２６の動作概要の説明図である。
【図１０】一般的なＪＰＥＧデータの解凍手順の説明図である。
【図１１】図１のキャッシュファイル生成手段２６において、高精細縮小画像とマップデータを同時に生成する手順の説明図である。
【図１２】図１のキャッシュファイル生成制御手段２５おけるキャッシュデータ生成タイミングを説明するためのフローチャートである。
【図１３】図１のキャッシュファイル削除手段３２によるキャッシュデータ削除処理の優先度の一例である。
【図１４】高精細画像と元画像の表示範囲の対応関係の説明図である。
【図１５】本発明の第２の実施の形態による画像処理装置の機能ブロック図である。
【図１６】図１５の使用ブロック判定手段２８のマクロブロック追加ルーチンの処理手順を示すフローチャートである。
【図１７】図１５の部分解凍画像削除手段３３の処理手順を示すフローチャートである。
【図１８】操作情報に基づく部分解凍画像データ中の表示範囲の移動状況の説明図である。
【図１９】図１５の使用ブロック判定手段２８の他の実施例による処理手順を示すフローチャートである（その１）。
【図２０】図１５の使用ブロック判定手段２８の他の実施例による処理手順を示すフローチャートである（その２）。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態を説明する。図１は、第１の実施の形態による画像部分伸長方法を実現する画像処理装置の機能ブロック図である。画像処理装置１は、画像データやユーザの操作要求を入力する入力装置１１、ＣＰＵを有し入力されたデータを用いて演算処理を実行する演算処理部２０、画像等の演算結果を表示する表示装置１２、ＣＰＵから直接読書き可能な主メモリ４０、フラッシュメモリなどの大容量の２次メモリ６０から構成されている。なお、入力装置１１は、カメラ等の撮像手段を備え、撮像手段によって撮像された画像を演算処理部２０へ渡すようにしても良い。
【００４６】
この画像処理装置１は、上記の各機能を有していれば足りるので、パーソナルコンピュータなどの汎用の計算機で実現することもできるし、カメラ機能を備えた携帯電話などによって実現することもできる。
【００４７】
演算処理部２０は、入力装置１１から渡されたデータの入力処理を実行する入力処理手段２１、２次メモリ６０への書き込み処理および２次メモリ６０からの読み出し処理を実行するメモリインタフェース手段（以下、「メモリＩ／Ｆ手段」という。）２２、画像データをメモリＩ／Ｆ手段２２を介してメモリ２次メモリ６０へ格納する画像データ登録手段２３、ユーザからの画像の表示やスクロールなどの操作要求を受け付ける操作要求入力手段２４、キャッシュファイルの生成のタイミングを制御するキャッシュファイル生成制御手段２５、キャッシュファイルを生成するキャッシュファイル生成手段２６、ユーザからの操作要求により低精細縮小画像５３または高精細縮小画像５２を選択して表示出力する縮小画像出力手段２７、圧縮画像のうち解凍すべきマクロブロックを判定する使用ブロック判定手段２８、解凍すべきと判定されたマクロブロックについて解凍処理を実行する部分解凍手段２９、部分解凍された画像を表示出力する部分解凍画像出力手段３０、および、表示装置１２への表示処理を実行する表示処理手段３１を有している。各手段２１から３１は、ＣＰＵの機能としてプログラムによって実現可能である。なお、図１中、圧縮画像データの流れを破線矢印で示し、それ以外のデータの流れを実線矢印で示している。
【００４８】
次に、上記の構成を有する画像処理装置１の動作を説明する。
＜圧縮画像データ入力処理＞
画像処理装置１の演算処理部２０は、入力処理手段２１を介して入力装置１１から送られてきた圧縮画像データを受け取ると、画像データ登録手段２３に渡す。画像データ登録手段は、メモリＩ／Ｆ手段２２を介して２次メモリ６０の圧縮画像ＤＢ６１へファイル形式で保存する。この画像ファイルには、入力順序を示すＩＤ（以下、「画像ＩＤ」という。）と入力時の時刻が付されている。
【００４９】
なお、図１には、非圧縮画像から圧縮画像を生成する機能については記載していないが、必要により、この機能を持たせるようにしても良い。本実施の形態では、非圧縮画像を直接入力することを前提に説明する。
【００５０】
＜キャッシュファイル生成処理＞
次に、キャッシュファイル生成制御手段２５とキャッシュファイル生成手段２６によるキャッシュファイル生成処理の手順について説明する。
キャッシュファイル生成制御手段２５は、ユーザが閲覧ソフトウェアの操作を行っていない操作アイドル時にキャッシュファイル生成手段２６を起動する。キャッシュファイル生成制御手段２５は、また、操作要求入力手段２４を通してユーザからの操作要求（画像の表示や拡大・縮小・移動などの要求）の通知を受けたときに、表示すべき画像のキャッシュファイルが２次メモリ６０に存在するか否かを調べ、キャッシュファイルが存在しない場合は、ユーザ操作中であってもキャッシュファイル生成手段２６を起動する。
【００５１】
キャッシュファイル生成手段２６は起動されると、画像を快適に閲覧するために縮小画像とマップデータ５１を生成する。縮小画像としては、ある特定の画像を全画面表示させるときに必要となる比較的大きな高精細縮小画像５２と、複数の画像を一覧表示で見るときに必要となる低精細縮小画像（いわゆるサムネイル画像）５３の２種類を生成する。高精細縮小画像５２のサイズは、表示装置１２の表示サイズ（即ち、表示装置の画面解像度）に依存する。すなわち、画像処理装置１の表示装置のパラメータとして設定される画面解像度情報(例えばＸＧＡモード)を入力して、その解像度のサイズ（1024×768）の高精細縮小画像を生成する。
【００５２】
高精細縮小画像５２と低精細縮小画像５３の両方を、元の画像から直接生成するよりも、元の画像から高精細縮小画像５２を生成した後に、高精細縮小画像５２から低精細縮小画像５３を生成したほうが高速に作成でき、好ましい実装方法である。
【００５３】
マップデータ５１の生成には、スキャン位置の抽出やＤＣ成分の累積計算など圧縮画像全体を走査する必要がある。一方、高精細縮小画像を生成するためにも圧縮画像全体を走査する必要がある。高精細縮小画像生成とマップデータ生成はそれなりの処理コストがかかり、このプロセスを短縮するために高精細縮小画像５２を生成すると同時にマップデータ５１自体も生成するようにするのが好ましい。
【００５４】
キャッシュファイル生成手段２６は、マップデータ５１、高精細縮小画像５２、および低精細縮小画像５３の各データを生成し、このキャッシュデータを、対応する画像ファイルの画像ＩＤに関連付けて２次メモリ６０にファイル形式で保存する。
【００５５】
なお、キャッシュデータ未生成の画像を表示出力する際には、キャッシュファイル生成手段２６は、キャッシュデータ５０の生成後、そのキャッシュデータを利用して画像表示を行ったのちに、そのキャッシュデータ５０を２次メモリ６０のキャッシュファイル６２へ出力する。これにより、いち早く画像を表示することができ、操作性が向上する。キャッシュデータ５０およびキャッシュファイル６２の生成処理の流れを図９に示す。
【００５６】
図９において、キャッシュファイル生成手段２６は、元画像（圧縮画像）６１から高精細縮小画像／マップデータ生成処理（Ｓ１０１）によって、高精細縮小画像５２とマップデータ５１を同時に（すなわち一つの解凍処理の中で）生成する。そして、低精細縮小画像生成処理（Ｓ１０２）によって高精細縮小画像から低精細縮小画像５３を生成する。このマップデータ５１、高精細縮小画像５２、低精細縮小画像５３について、ユーザからの画像６１の表示要求が有った場合は、表示出力に利用した後に、キャッシュファイル６２へ出力する。
【００５７】
（キャッシュファイル生成の実施例）
次に、ＪＰＥＧ形式の画像を例にして、キャッシュファイル生成の手順を説明する。
ＪＰＥＧに特化した高精細縮小画像生成の工夫として、全ての周波数帯域を解凍せずに、ある周波数以下の低周波帯域のデータのみを使用することでその処理速度を向上させる。
一般的にＪＰＥＧデータの解凍は図１０に示すステップで行われる。
【００５８】
この図において、エントロピー符号の複合（Ｓ２０１）は、圧縮されたビットストリームからデータを復元する工程である。ＪＰＥＧの場合はエントロピー圧縮にハフマン符号を用いており、この工程はハフマン符号化データを解凍する工程となる。その後逆量子化を行い（Ｓ２０２）、周波数データを復元する。周波数データは逆周波数変換(ＪＰＥＧの場合は逆ＤＣＴ)でＹＵＶ色空間のデータとなる（Ｓ２０３）。その後、表示装置１２の色空間(例えばＲＧＢ)に合わせて色変換を行い（Ｓ２０４）、解凍処理が完了する。
【００５９】
生成した高精細縮小画像は再度ＪＰＥＧで保存する。これによって、データ量を削減することができる。このとき、全ての周波数帯を逆周波数変換する必要はない。そのため、縮小画像のサイズに応じて必要となる低周波数帯のみを逆周波数変換を行うことにより、処理速度を向上させる。また、マップデータ５１はエントロピー符号の複合の時点で生成する。
【００６０】
図１１に、高精細縮小画像とマップデータ生成の手順を示す。
キャッシュファイル生成手段は２６は、圧縮画像すなわち圧縮されたビットストリームからエントロピー符号の復号（Ｓ２０１）の時点でマップデータ５１を生成する。ステップＳ２０１の後、逆量子化（Ｓ２０２）を行い、次に、低周波数帯のみ逆周波数変換を行う（Ｓ２０３ａ）。なお、ステップＳ２０３ａでは、画面サイズと逆周波数変換を実行する周波数帯（スキャンＮｏ．）との関係を予め定めたテーブルを備えておき、そのテーブルを参照して画面サイズに対応する周波数帯を抽出して逆周波数変換を行うのが良い。
【００６１】
ステップＳ２０３ａの後、縮小処理（Ｓ３０１）、周波数変換（Ｓ３０２）、量子化（Ｓ３０３）、エントロピー符号化（Ｓ３０４）を実行して、ＪＰＥＧ形式の高精細縮小画像５２を生成する。
【００６２】
（キャッシュファイル生成のタイミング）
キャッシュファイル６２の生成処理は、上述したようにユーザ操作のアイドル時等の所定のタイミングで行うが、このとき、より快適な画像閲覧を実現するために、どの画像のキャッシュファイルを生成するか、すなわちキャッシュファイル生成の順番が重要になる。
【００６３】
本実施の形態では、ユーザ操作のモードとして、ある特定の画像を表示する詳細表示モードと、複数の画像を表示するサムネイル一覧モードで、異なる順番でキャッシュファイル６２を生成するようにする。
【００６４】
以下、図１２を用いて、キャッシュファイル生成制御手段２５の動作を説明する。
キャッシュファイル生成制御手段２５は、定周期または操作要求入力手段２４からの起動要求によって起動すると、まず現在の操作モードが詳細表示モードか否かを判定する（Ｓ４０１）。
【００６５】
この判定の結果、詳細表示モードならば（Ｓ４０１で「ＹＥＳ」）、キャッシュファイル生成制御手段２５は、まず閲覧中の画像についてキャッシュファイル６２が存在するか否かを判定する（Ｓ４０２）。もし閲覧中の画像のキャッシュファイル６２が無ければ、キャッシュファイル生成手段２６を起動して、まず、まずその画像についてキャッシュデータ５０を生成する（Ｓ４０３）。このときキャッシュファイル生成手段２６は、前述のように生成したキャッシュデータ５０を、まず表示装置１２へ出力した後に、このキャッシュデータ５０を２次メモリ６０のキャッシュファイル６２に書き出す。
【００６６】
次に、キャッシュファイル生成制御手段２５は、ユーザが入力装置１１のＧＵＩで操作中か否かを判定する（Ｓ４０４）。なお、操作要求の入力を検知してから、その操作要求に関する処理を完了していない期間を操作中とする。
【００６７】
操作中にキャッシュデータ５０を生成すると操作に対するレスポンスが遅くなり、快適な閲覧動作の妨げになるので、操作中はキャッシュデータを生成せずに終了する（Ｓ４０４で「ＹＥＳ」）。一方、ユーザが操作をしていない場合には、キャッシュファイル生成制御手段２５は、画像ＩＤから閲覧中の画像の直前直後の画像についてキャッシュファイル６２が存在するか否かを判定し（Ｓ４０６）、もし存在しなければ、キャッシュファイル生成手段２６を起動して、キャッシュデータ５０を生成し、生成したキャッシュデータ５０を２次メモリ６０のキャッシュファイル６２へ書き出す（Ｓ４０７）。
【００６８】
次に、キャッシュファイル生成制御手段２５は、ユーザ操作が無ければ（Ｓ４０８で「ＮＯ」）、さらにもう一つ前後（隣接するブロック）の画像についても同様の処理（Ｓ４０６〜Ｓ４０９）を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップＳ４０６〜Ｓ４０９の処理を繰り返してキャッシュファイル６２を生成する（Ｓ４１０）。
【００６９】
サムネイル一覧モード時は、キャッシュファイル生成の順番は詳細表示モード時と異なる。これは低精細縮小画像を持っている場合は、その画像をひとまず表示すれば良く、生成の優先度を下げても良いからである。以下、サムネイル一覧モード時のキャッシュファイル生成制御手段２５の処理手順を説明する。
【００７０】
キャッシュファイル生成制御手段２５は、サムネイル一覧モードでは、まずユーザが操作中かどうかを判定し（Ｓ４１１）、操作中であればキャッシュデータ生成は行わない。一方、ユーザが操作をしていない場合は（Ｓ４１１で「ＮＯ」）、キャッシュファイル生成制御手段２５は、現在の画像データがキャッシュファイルと低精細縮小画像のいずれかを持っているかどうかを判定する（Ｓ４１２，Ｓ４１３）。もしキャッシュファイルか低精細縮小画像のいずれかを持っていれば（Ｓ４１３で「ＹＥＳ」）、この段階ではキャッシュファイルは生成しない。もしキャッシュファイルもなく低精細縮小画像も持っていなければ（Ｓ４１３で「ＮＯ」）、キャッシュファイル生成制御手段２５は、キャッシュファイル生成手段２６を起動してキャッシュデータ５０を生成して、これをキャッシュファイル６２へ書き出す（Ｓ４１４）。次に、キャッシュファイル生成制御手段２５は、ユーザ操作が無ければ（Ｓ４１５で「ＮＯ」）、さらにもう一つ前後（隣接するブロック）の画像についても同様の処理（Ｓ４１３，Ｓ４１４）を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップＳ４１３〜Ｓ４１６の処理を繰り返してキャッシュファイル６２を生成する（Ｓ４１７）。
【００７１】
ステップＳ４１７の後、キャッシュファイル生成制御手段２６は、現在の画像がキャッシュファイルを持っているかどうかを判定し、もし無ければキャッシュファイル生成手段２６を起動してキャッシュファイルを生成する（Ｓ４１８〜Ｓ４２０）。この段階では低精細縮小画像があったとしても、キャッシュファイルが無ければキャッシュファイル生成を行う。次に、キャッシュファイル生成制御手段２５は、ユーザ操作が無ければ（Ｓ４２１で「ＮＯ」）、さらにもう一つ前後（隣接するブロック）の画像についても同様の処理（Ｓ４１９〜Ｓ４２０）を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップＳ４１９〜Ｓ４２２の処理を繰り返してキャッシュファイル６２を生成する（Ｓ４２３）。
【００７２】
＜キャッシュファイル削除処理＞
キャッシュファイル６２の生成の順序は上述の通りであるが、キャッシュファイル６２を全ての画像について生成して、２次メモリ６０に保存するとそれだけでメモリの多くを消費する。
【００７３】
このため、キャッシュファイル削除手段３２は、キャッシュファイルの個数/あるいはキャッシュファイルのデータ量の総和が予め定めたある一定の閾値Scを越えた場合に、不要なキャッシュファイルを削除する処理を行う。この判定はキャッシュファイル生成ごとにその生成直後にキャッシュファイル生成手段２６からの起動要求によって実行される。キャッシュファイルが増加するのは、キャッシュデータを生成したときのみだからである。キャッシュファイル削除手段３２は、一旦キャッシュファイルを削除すると判定すると、キャッシュファイルの個数/あるいはキャッシュファイルの総量が予め定めたある一定の閾値Sc'(<Sc)未満になるまで削除を行う。ここでキャッシュファイルを削除する順番については後述するが、このキャッシュファイル削除の直前に生成されたキャッシュファイルが次に削除しようとするキャッシュファイルになる場合がある。この場合にはキャッシュファイルの削除は行わず、キャッシュファイル生成についてこれ以上行わない状態にする。ただしこの場合に、現在の画像から前後の画像に移動した場合には、再びキャッシュファイルの生成を行う状態にリセットする。
【００７４】
キャッシュファイル削除手段３２は、削除するキャッシュファイルの順番として、まずは現在の画像からある一定の範囲の外側にある画像について削除を行っていく。一定の範囲は任意に定めることができるが、例えば、圧縮画像の登録時に連番を付すようにして、予め設定した一定の番号以上離れている場合は範囲外、そうでない場合は範囲内する決め方やファイルの圧縮画像をカテゴリ付けするようにして、現在表示中の画像のカテゴリと同じ場合は範囲内、カテゴリが異なる場合は範囲外とする決め方等がある。
【００７５】
キャッシュファイル削除手段３２は、範囲外のものは生成日時が古いものから優先的に削除し、範囲外のものが全て削除された後に、範囲内のものを順次削除していく。キャッシュファイル削除手段３２は、範囲内のものについては現在の画像から離れている画像から優先的に削除する。すなわち、キャッシュファイルを削除する順番は図１３に示すような優先度となる。例えば、現在表示中の画像から一定範囲外でキャッシュファイル生成日時が古いものは、他に比べて削除の優先度を高く設定している。
【００７６】
＜圧縮画像表示処理＞
次に、圧縮画像を解凍して表示装置１２へ表示出力するときの手順を説明する。
ユーザからの画面操作要求があると、操作要求入力手段２４は、キャッシュファイル生成制御手段２５に、操作要求が有ったことを伝える。キャッシュファイル生成制御手段２５は、この通知により、操作要求に対する処理が終了するまでキャッシュファイル生成手段２６の起動を停止状態にする。
【００７７】
また、操作要求入力手段２４は、縮小画像出力手段２７と部分解凍画像出力手段３０を起動すると共に、両手段２７，３０に、操作モード（詳細表示モード，サムネイル一覧モード）の他、表示対象の画像ＩＤ、スクロール方向、スクロール量、拡大・縮小等の操作情報を渡す。  
【００７８】
縮小画像出力手段２７は、操作要求入力手段２４から起動されると、表示対象画像の画像ＩＤに対応するキャッシュファイル６２からキャッシュデータ５０を読み込む。読み込まれたキャッシュデータは、主メモリ４０上に記憶される。
【００７９】
縮小画像出力手段２７は、次に操作モードを判定し、サムネイル一覧モードのときは、キャッシュデータ５０の低精細縮小画像を表示出力する。
【００８０】
一方、詳細表示モードのときは、縮小画像出力手段２７は、操作情報から高精細縮小画像の表示範囲を決定し、表示処理手段３１を介して表示範囲の画像データを表示装置１２へ出力する。なお、表示範囲の指定のしかたは、従前の技術によるが、たとえば、高精細縮小画像の画像左上頂点を座標原点（0,0）としたときの矩形表示範囲の対角関係にある頂点座標（以下、「対角座標」という。）（x1,y1）（x2,y2）で指定し、この指定した範囲のデータを表示装置１２へ渡すようにする。
【００８１】
縮小画像出力手段２７は、次に、使用ブロック判定手段２８を起動する。使用ブロック判定手段２８は起動されると、表示範囲からその表示範囲を含むマクロブロックのＩＤを演算する。
【００８２】
この演算のしかたの一例を図１４を用いて説明する。図１４（ａ）に高精細縮小画像と表示範囲、図１４（ｂ）にマクロブロックに分割された元画像と表示範囲をそれぞれ示している。例えば、高精細縮小画像のサイズがａ×ｂであり、元画像のブロック分割数がｍ×ｎ個であったとすると、高精細縮小画像の座標（ｘ，ｙ）に対応する元画像上の座標の属するマクロブロックのＩＤは、次の式で表すことができる。
マクロブロックＩＤ＝＜ｍ・ｘ／ａ＞＋ｍ・＜ｎ・ｙ／ｂ＞    ・・・（２）
ここで、＜ｖ＞は、ｖ以下となる最大の整数を表す。
【００８３】
なお、上記（２）式は、ＩＤの初期値を「０」とし、図２のように左上から右下にかけて連番とした場合の演算式である。
【００８４】
例えば、高精細縮小画像のサイズが１０２４×７６８であり、矩形表示範囲の対角座標が（x1,y1）=（500,200）、（x2,y2）=（750,500）とすると、上記（２）式から、（x1,y1）のマクロブロックＩＤは「11」、（x2,y2）のマクロブロックＩＤは「29」になる。同様に他の頂点のマクロブロックＩＤを求め、また、マクロブロックＩＤは、水平方向については１ずつ、垂直方向についてはｍずつ増加するので、矩形表示範囲の属するマクロブロックＩＤを全て特定することができる。使用ブロック判定手段２８は、求めた矩形表示範囲の属するマクロブロックＩＤを主メモリ４０のバッファ２（４２）へ保存する。その後、使用ブロック判定手段２８は、部分解凍手段２９を起動する。
【００８５】
部分解凍手段２９は起動されると、圧縮画像のマップデータ５１のうち、バッファ２にそのＩＤが記録されているマクロブロックのマップデータを用いて圧縮画像６１を部分解凍する。部分解凍された画像データ（以下、「部分解凍画像データ」という。）は、主メモリ４０のバッファ１（４１）に保存される。部分解凍手段２９は、バッファ２（４２）に保存されている全マクロブロックＩＤについて当該ＩＤのマクロブロックの解凍処理が完了すると部分解凍画像出力手段３０を起動する。
【００８６】
次に部分解凍画像出力手段３０は起動されると、バッファ１（４１）に保存されている部分解凍画像データのうち、表示範囲の画像を表示装置１２へ出力する。
【００８７】
このときの座標変換のしかたの一例を図１４を用いて説明する。画像サイズＡ×Ｂの元画像の左上頂点を座標原点としたときの座標（Ｘ，Ｙ）と、上記の高精細縮小画像の座標（ｘ，ｙ）との関係は、次の式によって求めることができる。
Ｘ＝（Ａ／ａ）・ｘ
Ｙ＝（Ｂ／ｂ）・ｙ
【００８８】
したがって、部分解凍画像の左上頂点の座標を（α、β）とすると、部分解凍画像の左上頂点を座標原点とした座標系では、
（Ｘ’，Ｙ’）＝（（Ａ／ａ）・ｘ―α，（Ｂ／ｂ）・ｙ―β）  ・・・（３）
となる。
【００８９】
また、（α、β）は、マクロブロックＩＤをＣとすると次の式で求めることができる。
α＝（Ａ／ｍ）・（Ｃ−ｍ・＜Ｃ／ｍ＞）
β＝（Ｂ／ｎ）・＜Ｃ／ｍ＞
ここで、＜ｖ＞は、ｖ以下となる最大の整数を表す。
【００９０】
上記（３）式によって、高解像度縮小画像の座標系を矩形展開された部分解凍画像の座標系に変換することができ、これによって高解像度縮小画像の表示範囲に対応する部分解凍画像を表示出力することができる。
【００９１】
上記の処理により、縮小画像出力手段２７または部分解凍画像出力手段３０から出力された画像データは、表示処理手段３１を介して表示装置１２へ出力される。
【００９２】
以上、本実施の形態によれば、ユーザから詳細表示モードの操作入力があったときに、まず高精細縮小画像が表示出力され、その後、圧縮画像が部分解凍されて表示装置１２へ表示出力されるので、ユーザにストレスを与えることなく部分解凍処理を行うことができる。また、ユーザからの操作要求時に圧縮画像を全て解凍する必要はないので、メモリ資源を節約することができる。
【００９３】
なお、上記の（２）、（３）式を用いた座標変換のしかたは一例であり、本発明はこれに限定されるものではない。
【００９４】
次に、第２の実施の形態を説明する。本実施の形態は、主メモリ上にある部分解凍された画像を有効に利用して、より迅速にユーザの操作要求に応答させるものである。図１５は、第２の実施の形態による画像部分伸長方法を実現する画像処理装置の機能ブロック図である。図１の画像処理装置１との主な違いは、主メモリ上の部分解凍画像を削除する部分解凍画像削除手段３３を追加し、使用ブロック判定手段２８と部分解凍手段２９の処理内容を後述するように変更したこと、および、縮小画像出力手段２７は高精細縮小画像の出力処理については部分解凍手段２９から処理停止要求を受けることによって表示出力処理を停止するようにしたことである。
【００９５】
また、本実施の形態では、主メモリ４０上に、現在使用中のマクロブロックＩＤとその部分解凍画像データを保存するバッファ１、現在の高精細縮小画像の表示範囲に対応するマクロブロックＩＤを保存するバッファ２に加えて、表示範囲外ではあるがバッファ２のマクロブロックＩＤに隣接するマクロブロックＩＤを保存するバッファ３を設ける。
その他の機能は、図１と同様であり、同一機能には同一符号を付して説明を省略する。
【００９６】
次に、上記の構成を有する画像処理装置１の動作を説明する。
操作要求入力があると、縮小画像出力手段２７によって起動された使用ブロック判定手段２８は、現在の表示範囲に対応するマクロブロックＩＤを主メモリ４０上のバッファ２に保存して、部分解凍手段２９を起動する。そして、部分解凍処理の後、後述するマクロブロック追加ルーチンを実行する。
【００９７】
部分解凍手段２９は起動されると、バッファ２に保存されているマクロブロックＩＤを抽出する。そして、バッファ１内にバッファ２の全てのマクロブロックＩＤが存在するか否かを判定し、全てのマクロブロックＩＤが存在する場合は、縮小画像出力手段２７に対して、高精細縮小画像の表示出力処理の停止指令を出力する。これにより、縮小画像出力手段２７は、高精細縮小画像の表示出力処理を停止する。
【００９８】
一方、一つでもマクロブロックＩＤが存在しない場合は、部分解凍手段２９は、縮小画像出力手段２７に対して停止指令を出力せず、存在しないマクロブロックＩＤのブロックを部分解凍して、バッファ１に追加する。存在しない全てのマクロブロックの解凍が終了すると、部分解凍画像出力手段３０を起動する。部分解凍画像出力手段３０の動作は、第１の実施の形態と同様である。
【００９９】
次に、図１６を用いて、使用ブロック判定手段２８の実行するマクロブロック追加ルーチンについて説明する。
【０１００】
マクロブロック追加ルーチンは起動されると、バッファ２に保存されているマクロブロックＩＤに隣接するマクロブロックＩＤを求め（Ｓ５０１）、バッファ２に保存されていないマクロブロックＩＤについてのみバッファ３に保存する（Ｓ５０２）。
【０１０１】
そして、バッファ３に保存されているマクロブロックＩＤを抽出して、抽出したマクロブロックＩＤがバッファ１に存在するか否かを判定し（Ｓ５０３）、存在しない場合は、部分解凍手段２９によって、そのマクロブロックＩＤのブロックを部分解凍してバッファ１に追加する（Ｓ５０４）。バッファ３の全てのマクロブロックＩＤについてステップＳ５０４の処理が終了すると、部分解凍画像削除手段３３を起動する。
【０１０２】
部分解凍画像削除手段３３は、起動されると、まず、バッファ１から最初のマクロブロックＩＤを抽出して（Ｓ６０１）、抽出したマクロブロックＩＤがバッファ２に存在するか否かを判定し（Ｓ６０３）、存在しない場合は次にバッファ３に存在するか否かを判定する（Ｓ６０４）、存在しない場合は、そのマクロブロックＩＤおよび当該ＩＤの部分解凍画像データを削除する（Ｓ６０５）。上記のステップＳ６０３〜Ｓ６０５の処理をステップＳ６０１で抽出した全てのマクロブロックＩＤについて繰り返す（Ｓ６０２ａ，Ｓ６０２ｂ）。
【０１０３】
なお、タスク処理の場合、部分解凍画像削除手段３３は、使用ブロック判定手段２８，部分解凍手段２９，部分解凍画像出力手段３０など他の手段よりも優先順位を下げておくようにする。これにより、部分解凍画像削除手段３３の動作中に、新たな操作要求が発生した場合でも、その操作要求を優先させることができる。
【０１０４】
本実施の形態によれば、主メモリ上には、常に、現在表示中の部分解凍画像データが保存され、その隣接ブロックについても予め準備されるので、スクロール等の操作要求に対して、より高精細の部分解凍画像で迅速に表示させることができる。また、処理が間に合わないような場合についてのみ、高精細縮小画像を表示することにより、第１の実施の形態に比べてより効果的な画像表示が可能となる。さらに、隣接しているマクロブロックよりも離れた位置のマクロブロックの部分解凍画像データは逐次削除していくので、主メモリを有効に使用することができる。
【０１０５】
なお、隣接する画像を解凍する場合、ユーザの操作指示が画像の縮小（ズームアウト）操作のときは、全ての隣接画像を解凍し、スクロール操作の時はスクロールの方向に隣接する画像のみを解凍するようにしても良い。これにより、主メモリを有効に利用して、効果的な予測解凍処理が可能となる。
【０１０６】
使用ブロック判定手段２８の実行する予測解凍手順の一例を図１９、図２０に示す。この手順例は、図１８に示すように、表示範囲の各頂点の移動方向と、各頂点とマクロブロックの画像境界との距離が所定の条件を満たした場合には、その隣のマクロブロックについても解凍するものである。
【０１０７】
左上の頂点（X1,Y1）を例にさらに詳しく説明する。使用ブロック判定手段２８は、上記の式（２）によって、（X1,Y1）の属するマクロブロックＩＤを算出して変数Ｉに代入する（Ｓ７０１）。そして、操作要求入力手段２４から渡される操作情報により、この頂点がｘ軸の負の方向へ移動している場合は（Ｓ７０２で「ＹＥＳ」）、現在の表示範囲の頂点座標（X1,Y1）とその頂点が属するマクロブロックのX負方向の境界との距離が一定値以下か否かを判定する（Ｓ７０３）。一定値以下の場合は（Ｓ７０３で「ＹＥＳ」）、X負方向に「I-1」のマクロブロックが存在するか否かを判定する（Ｓ７０４）。すなわち、現在（X1,Y1）が属するマクロブロックが左端にないか否かを判定するものである。これは、マクロブロックの分割条件（ｍ×ｎ）と現在のマクロブロックＩＤから求めることができるし、図２に示すように、幾何学的な配列情報を記憶することによっても求めることもできる。この判定の結果、X負方向にＩ-1のマクロブロックが存在する場合は（Ｓ７０４で「ＹＥＳ」）、部分解凍手段２９を起動して、マクロブロックＩＤ「Ｉ-1」の解凍をする（Ｓ７０５）。
【０１０８】
続いて、使用ブロック判定手段２８は、上記と同様にＹ軸上の負方向へ移動しているか否かを判定し（Ｓ７０６）、この頂点がY軸の負の方向へ移動している場合は（Ｓ７０６で「ＹＥＳ」）、現在の表示範囲の頂点座標（X1,Y1）とその頂点が属するマクロブロックのY負方向の境界との距離が一定値以下か否かを判定する（Ｓ７０７）。一定値以下の場合は、Y負方向に「I-m」のマクロブロックが存在するか否かを判定する（Ｓ７０８）。すなわち、現在（X1,Y1）が属するマクロブロックが上端にないか否かを判定するものである。この判定の結果、Y負方向にＩ-mのマクロブロックが存在する場合は（Ｓ７０８で「ＹＥＳ」）、部分解凍手段２９を起動して、マクロブロックＩＤ「Ｉ-m」の解凍をする（Ｓ７０９）。さらに、部分解凍手段２９によって、マクロブロックＩＤ「Ｉ-m-1」の解凍をする（Ｓ７１０）。これは、頂点（X1,Y1）が斜め左上方向に移動しており、斜め方向のマクロブロックに近づいているからである。
【０１０９】
一方、ステップＳ７０２，ステップＳ７０３，ステップＳ７０４の判定で「ＮＯ」の場合は、ステップＳ７１１へ移行して、ステップＳ７０６〜Ｓ７０９と同様の処理を実行する。
【０１１０】
以上が表示範囲の画面左上の頂点の動きによるマクロブロックの予測解凍処理であるが、右上（X3,Y3）、左下（X4,Y4）、右下（X2,Y2）の頂点についても、図１９、図２０に示した手順によって同様に予測解凍処理をすることができる。
【０１１１】
この予測解凍処理により、表示範囲外であっても表示可能性の高いマクロブロックを事前に解凍するので、上記実施形態の効果に加えて、さらに応答性能を向上させることができる。
【０１１２】
本発明は、上述の実施の形態に限定されることなく、その要旨を逸脱しない範囲で種々変形して実現することができる。また、各実施の形態で説明した各機能（手段）は、実施の形態を跨って単独でまた組み合わせて実現することが可能である。
【符号の説明】
【０１１３】
１    画像処理装置
１１    入力装置（入力デバイス）
１２    表示装置（表示デバイス）
２０    演算処理部
２１    入力処理手段
２２    メモリインタフェース手段
２３    画像データ登録手段
２４    操作要求入力手段
２５    キャッシュファイル生成制御手段
２６    キャッシュファイル生成手段
２７    縮小画像出力手段
２８    使用ブロック判定手段
２９    部分解凍手段
３０    部分解凍画像出力手段
３１    表示処理手段
３２    キャッシュファイル削除手段
３３    部分解凍画像削除手段
４０    主メモリ
５０    キャッシュデータ
５１    マップデータ
５２    高精細縮小画像
５３    低精細縮小画像
６０    ２次メモリ
６１    圧縮画像
６２    キャッシュファイル
【図１】
2011188041.tif 000003
【図２】
2011188041.tif 000004
【図７】
2011188041.tif 000005
【図９】
2011188041.tif 000006
【図１０】
2011188041.tif 000007
【図１１】
2011188041.tif 000008
【図１２】
2011188041.tif 000009
【図１３】
2011188041.tif 000010
【図１５】
2011188041.tif 000011
【図１６】
2011188041.tif 000012
【図１７】
2011188041.tif 000013
【図１９】
2011188041.tif 000014
【図２０】
2011188041.tif 000015
【図３】
2011188041.tif 000016
【図４】
2011188041.tif 000017
【図５】
2011188041.tif 000018
【図６】
2011188041.tif 000019
【図８】
2011188041.tif 000020
【図１４】
2011188041.tif 000021
【図１８】
2011188041.tif 000022