(57)【要約】【課題】メモリ容量が小さい端末では、画像を閲覧している途中にメモリ容量をオーバーし、ユーザの要求に応じた表示が不可能になってしまう。【解決手段】符号化された画像データを断片的に受信しキャッシュして再生する画像処理方法であって、画像の注目領域Ｆが特定されると（Ｓ１３）、その特定された注目領域Ｆと、その直前に表示していた画像領域との間における当該領域の移動方向Ｚを特定し（Ｓ１４）、その注目領域と移動方向Ｚに基づいて、キャッシュされている画像データを削除する領域を削除単位領域を単位として決定し、その削除単位領域の単位で、キャッシュされている画像データを削除する（Ｓ１７）。【選択図】　図１１
2004145760.tif 000002
【特許請求の範囲】
【請求項１】
符号化された画像データを断片的に受信しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する特定工程と、
前記特定工程で特定された注目領域と、その直前に表示していた画像領域との間における当該領域の移動方向を特定する移動方向特定工程と、
前記注目領域と前記移動方向に基づいて、キャッシュされている画像データを削除する領域を削除単位領域を単位として決定する削除領域決定工程と、
前記削除単位領域の単位で、前記キャッシュされている画像データを削除する削除工程と、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばサーバからの符号化データされた画像データをクライアントで断片的に受信してキャッシュして表示する技術に関するものである。
【０００２】
【従来技術】
インターネット上でＷＷＷサーバにＷｅｂブラウザからアクセスして、文書データや画像データ等を閲覧することが盛んに行われている。この仕組みは、インターネット上に情報を公開するＷＷＷサーバと、その情報を閲覧する複数のクライアントがあり、各クライアントはＷｅｂブラウザを使用して、そのサーバの情報を閲覧するものである。このＷＷＷサーバは、ホームページ（Ｈｏｍｅ　Ｐａｇｅ）といわれる公開したい情報をＨＴＭＬで記述した文書を有しており、それをクライアント側のＷｅｂブラウザが取り込んで、クライアントコンピュータに表示する。クライアント側のＷｅｂブラウザは、表示しているページ内のリンクを辿って行き、自分が必要な情報を得ることができる。
【０００３】
更に、Ｗｅｂサーバが管理しているファイルをダウンロードする方法として、Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ　（以下、ＦＴＰと略す）という方法がある。このＦＴＰは、ネットワークを通して、サーバ上にあるファイルを１度にクライアントコンピュータに転送する仕組みである。
【０００４】
また画像データファイルへ断片的にアクセスして表示するためのプロトコルとして、Ｆｌａｓｈｐｉｘ／ＩＩＰがある。このＩＩＰは、Ｆｌａｓｈｐｉｘという画像データファイルフォーマットに最適なプロトコルになっており、画像データの部分アクセスの単位はＦｌａｓｈｐｉｘのタイル単位に行うものである。
【０００５】
一方、このＩＩＰをそのままＪＰＥＧ２０００に適用した場合、ＪＰＥＧ２０００の各スケーラビリティの符号化データは、そのスケーラビリティより１つ下のスケーラビリティのデータからの差分データであるため、クライアント側で受信した断片的な符号化データをキャッシュしておく必要がある。
【０００６】
【発明が解決しようとする課題】
しかし、断片的な符号化データをクライアント側で全て保存すると、最終的にクライアントが最高解像度、最高ＳＮＲで画像全体をブラウズした場合に、サーバのＪＰＥＧ２０００ビットストリームの全データがクライアントにキャッシュされることになる。このことは、メモリ容量が小さい端末では、画像を閲覧している途中にメモリ容量をオーバーし、ユーザの要求に応じた表示が不可能になってしまうという問題がある。更に、ＪＰＥＧ２０００は差分データであるので、メモリ容量が飽和し、新たに受信したデータが既にキャッシュされていたデータに上書きされるようなことが生じると、正確な画像表示（ユーザが望む表示）ができなることも起こり得る。
【０００７】
本発明は上記従来例に鑑みてなされたもので、キャッシュしている符号化された画像データの内、再生画像に影響の少ないキャッシュデータを削除してキャッシュにおけるデータのオーバフローを防止しながらユーザの要求に応じた表示を行うようにすることを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明の画像処理方法は以下のような工程を備える。即ち、
符号化された画像データを断片的に受信しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する特定工程と、
前記特定工程で特定された注目領域と、その直前に表示していた画像領域との間における当該領域の移動方向を特定する移動方向特定工程と、
前記注目領域と前記移動方向に基づいて、キャッシュされている画像データを削除する領域を削除単位領域を単位として決定する削除領域決定工程と、
前記削除単位領域の単位で、前記キャッシュされている画像データを削除する削除工程と、を有することを特徴とする。
【０００９】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１０】
［実施の形態１］
図１は、本実施の形態に係るクライアントやサーバの構成を説明するブロック図で、この装置は例えばパーソナルコンピュータやワークステーション等で構成されていてもよい。
【００１１】
ＣＰＵ１０１は、システム全体の動作を制御しており、一次記憶１０２に格納されたプログラムに基づいて各種制御動作を実行する。一次記憶１０２は主にメモリ（ＲＡＭ）であり、二次記憶１０３に記憶されたプログラムなどを読み込んで格納する。二次記憶１０３は、例えばハードディスクなどがこれに該当する。一般に一次記憶１０２の容量は二次記憶１０３の容量よりも小さく、一次記憶１０２に格納しきれないプログラムやデータなどは二次記憶１０３に格納される。また、長時間記憶しなければならないデータなども二次記憶１０３に格納される。本実施の形態では、プログラムを二次記憶１０３に格納しておき、そのプログラム実行時に一次記憶１０２に読み込んで格納し、その一次記憶１０２に記憶されているプログラムに従ってＣＰＵ１０１が処理を行う。入力デバイス１０４は、例えば、マウスやキーボードなどがこれに該当し、入力デバイス１０４が操作されることにより、プログラムなどに割り込み信号を発生して、所望のデータの入力を行うのに使用される。出力デバイス１０５は、例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので、それらの説明を省略する。
【００１２】
図２は、本実施の形態に係るネットワークの概略を説明する図である。
【００１３】
図において、２０１，２０２はそれぞれユーザ（クライアント）を示しており、図１で説明した装置構成を有する。ユーザ２０１或いは２０２は、有線、無線を問わず、ネットワーク２０３を介してサーバ２０４と通信することが可能である。サーバ２０４は、図１の構成を有し、二次記憶１０３に相当する画像ファイルを蓄積する大容量の記憶装置（ハードディスク）２０５を備えている。大容量の記憶装置２０５は、例えばハードディスクなどがこれに該当する。このハードディスクには、ＪＰＥＧ２０００符号化方式により符号化された画像データが数多く格納されている。ユーザ２０１，２０２は、サーバ２０４が格納しているＪＰＥＧ２０００画像データから、断片化されたデータを受信して保存する。
【００１４】
本実施の形態では、既に生成済みのＪＰＥＧ２０００ファイルのデータを断片的に受信し、それらをキャッシュしたクライアントが、それらキャッシュデータを削除する方法について説明する。
【００１５】
各ユーザは、Ｗｉｎｄｏｗｓ（登録商標）マシンを使用してホームページを開いて、そこに書かれているＪＰＥＧ２０００の画像へのリンクをクリックすることで、ＪＰＥＧ２０００の画像をユーザの用途に適した画像サイズや解像度で表示するために必要な断片的なデータを取得し、それらのデータをキャッシュする。そして、ユーザのキャッシュ容量の制限値を越えると、キャッシュマネージャのような働きを持つプログラムが動き、ユーザのキャッシュデータを削除する場合を想定する。
【００１６】
図３は、一般的なＪＰＥＧ２０００の符号化データを説明する図で、Ｌａｙｅｒ−ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ−ｃｏｍｐｏｎｅｎｔ−ｐｏｓｉｔｉｏｎ　ｐｒｏｇｒｅｓｓｉｏｎ（以下、ＬＲＣＰと記す）に沿って記録されたＪＰＥＧ２０００ファイルの構成を示している。このＬＲＣＰに準じた場合、ｌａｙｅｒ　／　ｒｅｓｏｌｕｔｉｏｎ　／　ｃｏｍｐｏｎｅｎｔ　／　ｐｏｓｉｔｉｏｎの順に記録される。このようなデータの並び方はｐｒｏｇｒｅｓｓｉｏｎ　ｏｒｄｅｒと呼ばれる。
【００１７】
図４は、ＪＰＥＧ２０００の符号化データにおける解像度（画像サイズ）とＲｅｓｏｌｕｔｉｏｎ番号との関係を示す図である。
【００１８】
最も小さい解像度の画像のｒｅｓｏｌｕｔｉｏｎ番号を「０」とし、ｒｅｓｏｌｕｔｉｏｎ番号が一つ増加するごとに画像の幅と高さが２倍になっていく。また、各ｌａｙｅｒ内は、ｒｅｓｏｌｕｔｉｏｎ番号の小さい順にデータが格納されている。Ｌａｙｅｒ番号は復元する画像の原画に対するＳ／Ｎ比に対応し、ｌａｙｅｒ番号が小さいほどＳ／Ｎ比が悪くなる。一つのＪＰＥＧ２０００ファイル内でのｒｅｓｏｌｕｔｉｏｎ番号とｌａｙｅｒ番号、ｃｏｍｐｏｎｅｎｔ番号の最大値は、エンコーダによって予め設定され、そのパラメータに従ってエンコードされており、その情報は符号化データの中に格納されている。各パケット（ｐａｃｋｅｔ）は、そのパケット内に格納されているコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）の情報を管理しているｐａｃｋｅｔ　ｈｅａｄｅｒ部と、各ｃｏｄｅ−ｂｌｏｃｋの符号化データを含んでいる。
【００１９】
このようなＪＰＥＧ２０００符号化データを使えば、各ユーザは、サーバ２０４にある全ての画像データを取得しなくても、必要な部分のデータのみをサーバ２０４から受信することが可能である。ユーザの受信データの単位としては、ＪＰＥＧ２０００のパケット、或いはパケットよりも更に小さい符号化単位であるｃｏｄｅ−ｂｌｏｃｋ単位が考えられる。本実施の形態では、ユーザがサーバ２０４から受信するデータ単位としてパケット単位を想定する。
【００２０】
図５は、パケット単位のリクエストおよびレスポンスの概念図を示す図である。
【００２１】
ユーザ２０１は、サーバ２０４に画像のタイル番号とｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌとｌａｙｅｒ，ｃｏｍｐｏｎｅｎｔ，ｐｏｓｉｔｉｏｎ番号を指定して、データを要求する。これによりサーバ２０４は、画像５０３のコードストリームを解析して、その指定されたタイル番号、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌとｌａｙｅｒ，ｃｏｍｐｏｎｅｎｔ，ｐｏｓｉｔｉｏｎ番号に相当するパケットデータを抜き出してユーザ２０１に送り返す。
【００２２】
本実施の形態では、サーバ２０４にあるオリジナル画像は、最大解像度サイズ３８４０×３８４０［画素］、１５×１５からなる２２５枚のタイル（Ｔｉｌｅｓ）に分割されており、ｃｏｍｐｏｎｅｎｔ数が「３」で、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０　〜　３、即ち、４つの画像サイズ方向の階層を持っており、二つのｌａｙｅｒに分けられていると仮定する。
【００２３】
図６は、オリジナル画像の各階層のデータ構造を説明する図である。
【００２４】
図６に示すように、オリジナル画像を構成するそれぞれのタイルには、左上のタイルからシーケンスな番号が振ってある。従って、サーバ２０４には、図７の７０１で示すようなデータが保存されている。
【００２５】
ユーザは１番目の表示要求で、画像全体をｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１、最大ＳＮＲで表示した後、２番目の表示要求で画像の一部を拡大し、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２、最大ＳＮＲで図６の領域６０１を表示し、これらのデータは全てキャッシュされているものとする。
【００２６】
図８は、図６のｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２の部分を抜き出して示す図である。
【００２７】
ユーザのキャッシュの中には、画像のヘッダ部分のデータ７０１、全タイルのｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０を構成するパケット群７０４、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１を構成するパケット群７０５、及び領域６０１に含まれる１６枚のタイル１５２〜１５５，１６７〜１７０，１８２〜１８５，１９７〜２００のｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２を構成するパケット群７０６が既に保存されている。つまり、領域６０１に含まれる１６枚のタイルに対しては、図９（Ｂ）の９０２で示すデータがキャッシュされており、その他のタイルに対しては、図９の９０１に示すデータがキャッシュされている。このような状態で、現在、３番目の表示要求によって、領域６０１からスクロールして領域６０２を表示するように要求しているものとする。つまり、ユーザは、領域６０２をｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２、最大ＳＮＲ、つまりｌａｙｅｒ　２での表示を要求しているものとする。
【００２８】
図１０は、本実施の形態に係るネットワーク・システム全体の処理の流れを説明するフローチャートである。
【００２９】
まずステップＳ１で、ユーザ２０１（２０２）からのの表示要求を受け付ける。本実施の形態の場合、図６に示す領域６０２を、最大ＳＮＲ、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２で表示するための要求がユーザからの表示要求となる。次にステップＳ２に進み、ステップＳ１で受け付けた表示要求と、その時点でキャッシュされているデータとを比較し、その表示要求を満たすために充分なデータがキャッシュされているかどうかを判定する。既にキャッシュ内に必要なデータが全て含まれていればステップＳ７に進んで、その表示要求に応じた画像表示を行う。
【００３０】
しかしステップＳ２で、キャッシュデータだけでは、その表示要求に応えられない場合はステップＳ３に進む。本実施の形態では、それまでは図６の領域６０１が最大ＳＮＲ、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２で表示されていたので、キャッシュには、画像のヘッダ部分のデータ７０１と、領域６０１に含まれる１６枚のタイル１５２〜１５５，１６７〜１７０，１８２〜１８５，１９７〜２００に対しては、図９（Ｂ）の９０２で示されるデータ群と、その他のタイルに関しては図９（Ａ）の９０１に示されるデータ群とがキャッシュされている。従って、ステップＳ１で取得した表示要求を満たすためには、領域６０２に含まれる１６枚のタイル６８〜７１，８３〜８６，９８〜１０１，１１３〜１１６のｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２を構成するパケット群７０６が不足していることになる。そのためステップＳ３では、その不足しているデータをサーバ２０４に要求するためのリクエストを作成する。本実施の形態では、このステップＳ３で、領域６０２に含まれる１６枚のタイルのｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２、ｌａｙｅｒ　２を形成するパケット群７０６を要求するためのリクエストが作成される。次にステップＳ４に進み、ステップＳ３で作成されたリクエストをサーバ２０４に発行する。このステップＳ５では、サーバ２０４からのレスポンスデータ（要求したパケットデータ群）を受信する。次にステップＳ６に進み、ステップＳ５で受信したデータをキャッシュする。そしてステップＳ７に進み、こうしてキャッシュされたデータを使って画像の表示処理を行い、ステップＳ１で要求された画像表示を行う。従って、このフローで示された処理が終了すると本実施の形態の場合、領域６０２がｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２、ｌａｙｅｒ　２で表示されることになる。
【００３１】
［タイル単位でのデータの削除］
次に、図１０のステップＳ６で示されたキャッシュ制御処理について図１１のフローチャートを参照して説明する。図１１は、図１０のステップＳ６のキャッシュ制御処理を示すフローチャートである。
【００３２】
まずステップＳ１１で、ユーザ２０１（２０２）のメモリ容量を取得し、キャッシュデータの削除が必要か否かを判断するためのスレッショルド値を決める。ユーザ（クライアント）において、受信したＪＰＥＧ２０００の断片的な符号データのキャッシュ用メモリとして、利用可能なメモリ容量の１００％を充てるのであれば、そのスレッショルド値はメモリ容量と等しくなる。しかし、ＪＰＥＧ２０００の断片的に受信した符号データ以外のデータ（例えば、画像のメタ情報等）も同じメモリ容量の中に保存する場合には、スレッショルド値は利用可能なメモリ容量よりも少なくなる。また或いは、同じシステムで複数のＪＰＥＧ２０００符号データをキャッシュする場合には、一枚の画像に利用できるメモリ容量のスレッショルド値は使用可能なメモリ容量よりも小さな値に設定される。例えば、キャッシュ用メモリに割り当てられたメモリ容量３Ｍ［バイト］に対して、キャッシュのスレッショルド値として、例えば２Ｍ［バイト］が設定される。
【００３３】
このキャッシュのスレッショルド値を決める場合、ハードディスクなどの２次記憶媒体でも良いが、本実施の形態では、説明を簡単にするためにメモリサイズを基準としてスレッショルドを決めるものとする。
【００３４】
次にステップＳ１２に進み、今回のデータ受信の前に表示されていた領域Ｆｐｒｅを保存する。本実施の形態の場合、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２の領域６０１を表示していたユーザが、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌを変えずに画面をスクロールして領域６０２を表示するように要求しているので、領域Ｆｐｒｅには領域６０１が該当する。
【００３５】
次にステップＳ１３に進み、今回のデータ受信によって表示する領域を注目領域Ｆとして特定する。本実施の形態では、スクロール後に表示される領域６０２が、この注目領域Ｆに該当する。次にステップＳ１４に進み、直前に表示されていた領域Ｆｐｒｅと注目領域Ｆとから、画面の移動方向Ｚを検出する。この移動方向Ｚの検出方法については、直前に表示されていた領域Ｆｐｒｅと注目領域Ｆのそれぞれ４隅のタイルについて移動方向を調べたり、或いは、ユーザがマウスなどを使って移動させた方向の情報をアプリケーションから取得したり、方法はいろいろ考えられるが、本件の主たる目的には本質的に関わらないので、その説明を省略する。
【００３６】
次にステップＳ１５に進み、受信する断片化されたＪＰＥＧ２０００符号データのバイト数ＲＤ［バイト］を取得する。本実施の形態においては、注目領域Ｆのタイル６８，７１，１１３，１１６で囲まれる１６枚のタイル（図８）のｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２を構成するパケット群７０６（図７）の総データ量が、このバイト数ＲＤに該当する。次にステップＳ１６に進み、ステップＳ１５で取得したバイト数ＲＤの受信データをキャッシュするとステップＳ１１で決定されたスレッショルド値を超えてしまうか判断する。スレッショルド値を越えると判断した場合にはステップＳ１７へ進み、スレッショルド値を越えないと判断した場合にはステップＳ１８へ進む。これは、ステップＳ１１で得られたスレッショルド値から既にキャッシュされているデータ量を引いた値と、ステップＳ１５で取得したバイト数とを比較することで判断できる。
【００３７】
例えば、ステップＳ１１で決定されたスレッショルド値が２Ｍ［バイト］、既にキャッシュされているＪＰＥＧ２０００のパケットデータ量が１．９５Ｍ［バイト］である場合、キャッシュ可能なデータ量は、（２−１．９５）Ｍ＝５０Ｋ［バイト］である。このとき、ステップＳ１５で取得した受信データのバイト数ＲＤが１２０Ｋ［バイト］であれば、５０Ｋ＜１２０Ｋであるので、新たに受信するデータをそのままキャッシュするとスレッショルド値を越えてしまうと判断してステップＳ１７に進むことになる。ステップＳ１７では、ステップＳ１５で取得したバイト数をキャッシュしても、キャッシュ容量がスレッショルド値以下になるように、キャッシュデータの中からタイル（Ｔｉｌｅ）単位でデータを削除する。例えば、ステップＳ１５で取得したバイト数ＲＤが、１２０Ｋ［バイト］であり、ステップＳ１１で決定されたスレッショルド値が２Ｍ［バイト］である場合、ステップＳ１７では、キャッシュしているデータ量が（２Ｍ−１２０Ｋ＝）１．８８Ｍ［バイト］以下になるまでキャッシュデータの削除が行われる。そしてステップＳ１８に進み、受信したデータをキャッシュし、このキャッシュ制御処理を終了する。
【００３８】
次に、図１１のステップＳ１７におけるキャッシュデータの削除処理について図１２のフローチャートを参照して説明する。
【００３９】
まずステップＳ２１で、キャッシュから削除すべきデータ量Ｙｄを取得し、今回のデータ削除処理で削除されたデータ量をカウントする変数Ｄｅｌに「０」を代入する。本実施の形態では、領域６０１を表示したところまでのデータは全てキャッシュされているので、キャッシュの中には、画像のヘッダデータ７０１、領域６０１に含まれる１６枚のタイルのｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２、ｌａｙｅｒ　２を構成するデータ９０２及び領域６０１以外の全タイルのｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１、ｌａｙｅｒ　２を構成するデータ９０１（図９（Ａ））が保存されている。これらのデータの総量が、１．９５Ｍ［バイト］であり、スレッショルド値を２Ｍ［バイト］、受信したデータ量を１２０Ｋ［バイト］とした場合、削除すべきデータ量Ｙｄは、Ｙｄ＝１．９５＋０．１２−２．００＝０．０７Ｍ［バイト］＝７０Ｋ［バイト］として取得できる。つまり、７０Ｋ［バイト］以上のキャッシュデータを削除する必要がある。
【００４０】
次にステップＳ２２に進み、ステップＳ１４で取得した画面の移動方向Ｚからデータ削除領域Ｒを取得する。この詳しい方法については、後で詳しく述べる。本実施の形態では、図８に示すようにタイル０，９，１３５を含む三角形の領域８０３と、タイル１１９，２１７，２２４を含む三角形の領域８０４がデータ削除領域Ｒとして特定されたものとする。
【００４１】
次にステップＳ２３に進み、ステップＳ２２で取得したデータ削除領域Ｒに含まれる各タイルに対して、データを削除していく順番を決定する。このデータ削除の順番は、削除領域Ｒ内で直前に表示されていた領域Ｆｐｒｅに最も近いタイルから順に番号を付けていく方法、削除領域Ｒ内で現在の注目領域から最も遠いタイルから番号を振る方法、画像の端からステップＳ１４で取得した画面の移動方向Ｚと平行になるように番号を振る方法などが考えられる。本実施の形態では、以下の３つのルールに基づいて番号を振る。
（１）削除領域Ｒが２つの連続領域（例えば、領域８０３、領域８０４）に分割される場合、これら２つの削除領域のうち、面積が大きい領域に含まれるタイルの方に、もう片方の領域に含まれるタイルよりも小さい番号を振る。
（２）連続領域の中では、含まれるタイル数が多い行の方に小さい番号を振る。（３）各行の中では、画像の右端、又は左端のタイルの方から順に画像の内側へ番号を振る。つまり領域８０３の場合は、左端のタイルから右方向へ、領域８０４では、右端のタイルから左方向へ、順に番号を付す。
【００４２】
従って、図８の領域８０３，８０４を比較すると、領域８０３はタイルを５５枚含んでおり、タイルを３６枚含んでいる領域８０４よりも面積が広いので、領域８０３のタイルから順に番号を振ることになる。次に領域８０３の中では、最も上の行に含まれるタイル数が１０枚で最多であり、以降、順に下の行に進むに連れて、９枚、８枚、…と１枚ずつ減少していくことから、領域８０３の中では上の行から順に番号を振ることになる。逆に領域８０４では、画像の下端の行に含まれるタイルから順に番号を振ることになる。更に、各行では、画像の右端或いは左端の列に含まれるタイルから番号を振るので、領域８０３では左端のタイルから右方向に、領域８０４では右端のタイルから左方向に番号を振る。つまり、本実施の形態のような番号の振り方を採用すると、領域８０３の左上から右方向へ進むように番号を振り、その後、領域８０４の右下から左方向へ進むように番号を振ることになる。
【００４３】
具体的には、データ削除順番が「１」のタイルＴ＿ｄｅｌ（１）がタイル０、データ削除順番が「２」のタイルＴ＿ｄｅｌ（２）がタイル１、以下、同様に、Ｔ＿ｄｅｌ（１０）がタイル９，Ｔ＿ｄｅｌ（１１）がタイル１５，…，Ｔ＿ｄｅｌ（１９）がタイル２３，Ｔ＿ｄｅｌ（２０）がタイル３０，…，Ｔ＿ｄｅｌ（２８）がタイル４５，…，Ｔ＿ｄｅｌ（３５）がタイル６０，…，Ｔ＿ｄｅｌ（４１）がタイル７５，…，Ｔ＿ｄｅｌ（４６）がタイル９０，…，Ｔ＿ｄｅｌ（５０）がタイル１０５，…，Ｔ＿ｄｅｌ（５３）がタイル１２０，…，Ｔ＿ｄｅｌ（５４）がタイル１２１，Ｔ＿ｄｅｌ（５５）がタイル１３５，Ｔ＿ｄｅｌ（５６）がタイル２２４，…，Ｔ＿ｄｅｌ（６３）がタイル２１７，Ｔ＿ｄｅｌ（６４）がタイル２０９，…，Ｔ＿ｄｅｌ（７１）がタイル１９４，…，Ｔ＿ｄｅｌ（７７）がタイル１７９，…，Ｔ＿ｄｅｌ（８２）がタイル１６４，…，Ｔ＿ｄｅｌ（８６）がタイル１４９，…，Ｔ＿ｄｅｌ（８９）がタイル１３４，Ｔ＿ｄｅｌ（９０）がタイル１３３，Ｔ＿ｄｅｌ（９１）がタイル１１９となる。
【００４４】
次にステップＳ２４に進み、データの削除順番をカウントする変数Ｘｏに「１」を代入して初期化する。次にステップＳ２５に進み、削除順番ＸｏのタイルＴ＿ｄｅｌ（Ｘｏ）のキャッシュデータの中から、タイルヘッダ部分とｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のパケットデータを除く全てのキャッシュデータを削除する。もし、このとき、Ｔ＿ｄｅｌ（Ｘｏ）のキャッシュデータにタイルヘッダ部分とｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のパケットデータしか残っていない場合には、削除できるデータはない。本実施の形態では、Ｘｏ＝１でＴ＿ｄｅｌ１（１）＝タイル０であれば、タイル０のキャッシュデータは、図９（Ａ）の９０１で示されるデータであるので、ｒｅｓｏｌｕｔｉｏｎ　１を構成するパケット群７０５とｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　２を構成するパケット群９０３を削除する。次にステップＳ２６に進み、このデータ削除処理で削除されたデータ量の合計を格納する変数Ｄｅｌに、ステップＳ２５で削除したデータ量を足す。次にステップＳ２７に進み、この削除処理で削除されたデータ量Ｄｅｌと、このデータ削除処理で削除すべきデータ量Ｙｄとを比較し、実際に削除したデータ量が、削除すべきデータ量Ｙｄを越えたらこのフローを終了する。一方、まだ越えていない場合にはステップＳ２８に進み、削除番号Ｘｏを一つインクリメントして次の削除番号とする。ここでは例えば、削除すべきデータ量Ｙｄが７０Ｋ［バイト］、削除番号１のタイルＴ＿ｄｅｌ（１）で削除したデータサイズが５０Ｋ［バイト］である場合は、ステップＳ２６で、削除したデータ量Ｄｅｌの値が５０Ｋ［バイト］になるため、ステップＳ２７では、Ｙｄ＝７０Ｋ＞Ｄｅｌ＝５０ＫとなってステップＳ２８へ進み、削除順番Ｘｏが＋１されて「２」となる。次にステップＳ２５に進み、Ｔ＿ｄｅｌ（２）＝タイル１が削除処理されることとなる。
【００４５】
図１３は、図１２のステップＳ２２のデータ削除領域Ｒを取得する処理を説明するフローチャートである。
【００４６】
まずステップＳ３１で、図１１のステップＳ１４で取得した画面の移動方向Ｚから、タイルを基準として移動方向の傾きｄｅｌｔａを算出する。本実施の形態では、タイルを基準とした座標として、図８のように画像の左上を原点とし、右方向に行くに連れてＸ方向の値が増加し、下方向に行くに連れＹ方向の値が増加するように、タイルを基準とした座標を取るものとする。このステップＳ１４で取得した移動方向Ｚがタイルを単位とした値であれば、Ｙ方向への移動タイル数をＸ方向への移動タイル数で割ることでｄｅｌｔａが求められる。また、ステップＳ１４で取得した移動方向Ｚが画素単位の座標である場合には、タイルにそれらの値を換算してｄｅｌｔａを求めることになる。本実施の形態の場合には、領域Ｆｐｒｅ６０１から領域Ｆ６０２への移動であるので、ｄｅｌｔａ＝−１と求められる。
【００４７】
次にステップＳ３２に進み、削除領域Ｒが１つの連続領域からなるのか、２つの連続領域からなるのかを取得する。表示領域が画像の四辺に沿って移動するような場合には、連続領域数Ｒ＿Ｎｕｍは「１」となる。それ以外の表示領域の移動では、必ず画像が２つに分割されるため、Ｒ＿Ｎｕｍの値は「２」となる。本実施の形態の場合は、Ｒ＿Ｎｕｍ＝２である。
【００４８】
次にステップＳ３３に進み、注目領域Ｆの外側で、削除領域Ｒの境界線を求める際に基準となるタイルＴｂａｓｅを選ぶ。本実施の形態では、注目領域Ｆからタイル１枚分を拡張した領域に接するように削除領域Ｒを定めるために、図１４（Ａ）（Ｂ）に示すように、注目領域Ｆからタイル１枚分広げた矩形領域の角に当たるタイルから、Ｘ方向に１枚外側のタイルを基準のタイルＴｂａｓｅとする。このとき、選択されるタイルは、図１４に示すようにステップＳ３１で求めたｄｅｌｔａの傾きと次のような関係がある。
・ｄｅｌｔａの値が負の時、注目領域Ｆを拡張した領域の左上のタイルと右下のタイルを基準にＴｂａｓｅを設定
・ｄｅｌｔａの値が「０」又は正の時、注目領域Ｆを確証した領域の右上のタイルと左下のタイルを基準にＴｂａｓｅを設定
本実施の形態の場合には、ｄｅｌｔａ＝−１＜０であるので、図８に示す、タイル５１（Ｘ＝６，Ｙ＝３）とタイル１３３（Ｘ＝１３，Ｙ＝８）がＴｂａｓｅとして選ばれる。次にステップＳ３４に進み、ステップＳ３１で求めたｄｅｌｔａとステップＳ３３で得られたＴｂａｓｅとを用いて、削除領域Ｒの境界線の式Ｅｑを算出する。この境界線の式の算出は、直線の式を求める場合と同様であるので、Ｔｂａｓｅの座標を（Ｘｂａｓｅ，Ｙｂａｓｅ）とすると、次式で求められる。
【００４９】
Ｙ＝ｄｅｌｔａ×Ｘ＋（Ｙｂａｓｅ−ｄｅｌｔａ×Ｘｂａｓｅ）
また、ステップＳ３２で得られた削除領域Ｒの連続領域数Ｒ＿Ｎｕｍの数だけ、境界式Ｅｑが求められるので、それぞれの式に「１」又は「２」の番号を付けておく。
【００５０】
本実施の形態の場合、ｄｅｌｔａ＝−１，Ｔｂａｓｅ＝（６，３），（１３，８）であるので、次の２式Ｅｑ（１），Ｅｑ（２）が求められる。
【００５１】
Ｅｑ（１）：Ｙ＝−Ｘ＋９…Ｔｂａｓｅがタイル５１（Ｘ＝６，Ｙ＝３）の場合
Ｅｑ（２）：Ｙ＝−Ｘ＋２１…Ｔｂａｓｅがタイル１３３（Ｘ＝１３，Ｙ＝８）の場合
次にステップＳ３５に進み、画像の垂直方向のタイル数Ｖｎｕｍを取得する。
【００５２】
本実施の形態では、縦に１５枚のタイルが並んでいるので、Ｖｎｕｍ＝１５である。次にステップＳ３６に進み、値を算出する行番号をカウントする変数Ｎｖに「０」を代入して初期化し、更に、ステップＳ３４で算出した境界式Ｅｑの中からＲ＿Ｎｕｍ番目の式Ｅｑ（Ｒ＿Ｎｕｍ）を取得する。次にステップＳ３７に進み、Ｎｖ行目で削除領域Ｒに含まれるタイル数を算出する。つまり、削除領域Ｒの境界線を表わすＥｑ（Ｒ＿Ｎｕｍ）と、画像全体の境界線で囲まれるタイル数を計算することで、各行に含まれる削除領域Ｒ内のタイル数が求められる。
【００５３】
本実施の形態では、ステップＳ３４で求めた式Ｅｑ（２）と、Ｘ＝０，Ｘ＝１４，Ｙ＝０，Ｙ＝１４を境界として、各Ｎｖ行のタイル数が計算できる。次にステップＳ３８に進み、変数Ｎｖに「１」を足した後に、変数ＮｖがステップＳ３５で取得したタイル数Ｖｎｕｍと同じ値になったかどうか調べることにより、全ての行に関して、削除領域Ｒに含まれるタイルを求め終わったかどうかを判断する。同じであれば、この削除領域Ｒの一つの連続領域に含まれるタイルを全て求めたものとしてステップＳ３９に進む。ステップＳ３９で、Ｎｖに「１」を足した値がＶｎｕｍ以下であれば、まだ調べていない行があるものとみなしてステップＳ３７へ戻る。ステップＳ３９では、削除領域Ｒの連続領域数Ｒ＿Ｎｕｍから「１」を引き、次にステップＳ４０に進み、連続領域数Ｒ＿Ｎｕｍが「０」かどうかをみる。変数Ｒ＿Ｎｕｍが「０」であればステップＳ３４で算出された全ての境界線の式Ｅｑに対して評価を行ったものとみなしてこのフローを終了する。
【００５４】
一方、ステップＳ４０で、連続領域数Ｒ＿Ｎｕｍが「０」ではない場合には、まだ境界式Ｅｑで評価していないものがあるものとみなしてステップＳ３６へ戻る。本実施の形態では、連続領域数Ｒ＿Ｎｕｍは「２」であるので、一番初めにステップＳ３６からステップＳ３８までの評価を行うと、境界式Ｅｑ（２）で形成される領域８０４が削除領域Ｒの一部として求められる。その後、ステップＳ３９に進んで連続領域数Ｒ＿Ｎｕｍ＝１となり、次にステップＳ３６へ処理が戻る。そして境界線Ｅｑ（１）で形成される領域８０３がさらに、削除領域Ｒの一部として求められる。次にステップＳ３９で、連続領域数Ｒ＿Ｎｕｍ＝０となり、ステップＳ４０により、この処理が終了したと判断される。
【００５５】
従って、タイル０〜７の各パケットのデータサイズが
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１，ｌａｙｅｒ　２　　…　２０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１，ｌａｙｅｒ　１　　…　２０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　２　　…　１０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１　　…　１０Ｋ［バイト］
であるとすると、本実施の形態の場合、タイル０〜７におけるキャッシュデータ削除前のキャッシュデータの状態は図１５（Ａ）（Ｂ）に示すような状態である。つまり、タイル１枚当たり５０Ｋ［バイト］のデータが一度に削除される（ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１と、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　２のデータの合計）。ここで、１２０Ｋ［バイト］のキャッシュデータを削除したい場合には、タイルの削除順番１がタイル０、削除順番２がタイル１、削除順番３がタイル２、…となっているので、タイル０，１，２のパケットデータ５０×３＝１５０Ｋ［バイト］のデータが削除されることとなり、キャッシュデータ削除の後は、図１６（Ａ）の１５０１に示すような状態になる。
【００５６】
このようなデータ削除方法を取ることにより、以下の効果が得られる。
（ａ）現在の表示に重要な注目領域に相当する部分領域のタイルのデータは保持される。
（ｂ）ユーザがその直前に表示していた領域とスクロールすることで新たに表示領域としてユーザが指定した領域を結ぶ方向のデータが保持されるため、現在移動した方向と同じ方向にユーザの興味の対象が広がっている場合でも、新たに取得するデータ量を少なくすることができる。
（ｃ）直前に表示されていた領域を再度表示させる場合も、データが保存されているので高速に表示可能である。
（ｄ）タイル毎に一番データ量の少ないｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のデータ以外のパケットデータを一度に削除するため、一回の削除で大きな容量を空けることが可能になり、削除データの計算による負荷が軽減される。
（ｅ）各タイルのｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のデータを削除せずに保持しておくことで、一度表示されたタイルに関しては、全くデータのないタイルが無くなり、より高解像度の画像を要求されても、保持しているデータからデコードされた画像を一時的に拡大表示することで、その部分の画像表示の要求後、しばらく、その領域のタイルの画像が全く表示されないということを避けることができる。
（ｆ）またいつでも、画像全体を把握できる画像をすぐに表示できる。
【００５７】
データ削除の順番は、上記実施の形態で示したものに固定するものではなく、それ以外の順番をつけても良いことは容易に推察できる。
【００５８】
また、削除領域の境界線を求めるために基準としたタイルの位置も、上記実施の形態で示したものに固定するものではなく、それ以外のタイルを基準としても良いことは容易に推察できる。
【００５９】
また、本実施の形態では、説明を簡単にするために、タイル単位で削除領域を特定したが、Ｐｒｅｃｉｎｃｔやｃｏｄｅ−ｂｌｏｃｋでも同様の考え方に基づいてキャッシュデータの削除を行うことができる。Ｐｒｅｃｉｎｃｔの場合は、データの削除単位はタイルと同様にパケットとなり、ｃｏｄｅ−ｂｌｏｃｋの場合には、そのｃｏｄｅ−ｂｌｏｃｋのデータを構成するｓｕｂｂａｎｄからなる符号データが単位となる。
【００６０】
この実施の形態に係る画像処理装置（クライアント）は、画像データを一つ以上のタイルに分割し、各タイルの符号データを一つ以上の論理的な単位で管理している符号化方式の符号化データを受信してキャッシュし、このキャッシュデータに基づいて画像を再生する装置であって、
受信した断片化された符号化データを格納する第１格納手段と、
前記第１格納手段における格納データ量の上限値を取得する最大キャッシュ容量取得手段と、
前記第１格納手段に格納されているデータ量を取得するデータ量取得手段と、前記最大キャッシュ容量取得手段で取得された上限値と前記データ量取得手段で取得されたデータ量とから格納可能なデータ量を算出する空き容量算出手段と、
次に受信するデータ量と、前記空き容量算出手段で算出された格納可能なデータ量とから前記第１格納手段に格納されているデータの内、削除すべきデータ量を算出する削除データ量算出手段と、
ユーザによる注目領域と、その移動方向に基づいて、前記第１格納手段に格納されているキャッシュデータから削除するデータ領域を削除単位領域を単位として決定する削除領域決定手段と、
前記削除領域決定手段により決定されたデータ領域に含まれるデータを削除するキャッシュデータ削除手段とを備えることで実現される。
【００６１】
［実施の形態２］
上述の実施の形態１では、ユーザがその直前に表示していた領域と、スクロールすることで新たに表示領域としてユーザが指定した領域を結ぶ方向から外れた領域を削除領域Ｒと指定し、その中のタイルに対して、削除順番を振り、この削除順番に従って一枚ずつ選び出されたタイルのキャッシュデータからｒｅｓｏｌｕｔｉｏｎｌｅｖｅｌ　０，ｌａｙｅｒ　１のデータを除く全てのパケットデータを削除した。しかし、削除対象として特定されたタイルのキャッシュデータに含まれるｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１を除く全てのパケットデータを単位としてではなく、領域内に含まれる全てのタイルに対して全体的なＳＮＲや解像度を低くし、データ量を削減する方法も考えられる。この場合、実施の形態１と異なるのは、図１２のデータ削除フローにおけるステップＳ２５以下の処理である。
【００６２】
図１７は、本発明の実施の形態２に係るキャッシュデータの削除処理を示すフローチャートで、前述の実施の形態１に係る図１２のフローチャートと同じ動作をするステップには同じ番号を付している。ステップＳ２１からステップＳ２４までは、実施の形態１と同様の動作であるので、説明を省略する。
【００６３】
ステップＳ５１では、データ削除の対象となるｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌを保持する変数ｔａｒｇｅｔＲにオリジナル画像の最高ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌを代入する。このオリジナル画像の最高ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌは、既に受信し、キャッシュされている画像のヘッダデータ７０１を解析することで容易に得られる。本実施の形態２の場合は、オリジナル画像はｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０〜３で構成されているので、ｔａｒｇｅｔＲには「３」が代入される。次にステップＳ５２に進み、削除対象タイルＴ＿ｄｅｌ（Ｘｏ）に関してキャッシュされているデータの最高ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌとｔａｒｇｅｔＲの値とを比較する。この比較した結果、削除対象タイルＴ＿ｄｅｌ（Ｘｏ）に関してキャッシュされている最高ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌとｔａｒｇｅｔＲの値とが等しければステップＳ５３に進み、等しくなければステップＳ２８へ進む。
【００６４】
本実施の形態２において、Ｘｏ＝１，Ｔ＿ｄｅｌ（１）＝タイル０である時には、タイル０のキャッシュデータ９０１を調べ、その最高ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１とｔａｒｇｅｔＲとを比較する。現時点では、ｔａｒｇｅｔＲ＝３であるのでステップＳ２８へ進むことになる。ステップＳ２８では、削除順番Ｘｏに「１」を足して、次のデータ削除順番を取得する。次にステップＳ５４に進み、Ｘｏの値と削除領域に含まれるタイル数Ｎ、即ち、データ削除順番の最後の番号Ｎと比較し、Ｘｏの方が大きければステップＳ５５へ進み、Ｘｏの方がまだ小さい値であればステップＳ５２へ戻る。ステップＳ５５でｔａｒｇｅｔＲから「１」を引き、更に、削除順番をカウントする変数Ｘｏに「１」を代入して初期化する。
【００６５】
本実施の形態２では、上記のルーチンを数回繰り返し、ステップＳ５２にＸｏ＝１，Ｔ＿ｄｅｌ（１）＝タイル０，ｔａｒｇｅｔＲ＝１が入ってきたものとする。タイル０のキャッシュデータは図９（Ａ）の９０１に示すように、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１である。そのため、ｔａｒｇｅｔＲ＝１であればステップＳ５３に進み、キャッシュデータ削除タイルＴ＿ｄｅｌ（Ｘｏ）から、ｔａｒｇｅｔＲのパケットデータを削除する。但し、ｔａｒｇｅｔＲ＝０である場合には、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０を構成する全てのパケットデータを削除するのではなく、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　１を構成するパケット群を残し、それ以外のｌａｙｅｒを構成するパケットデータを削除する。
【００６６】
本実施の形態２において、ｔａｒｇｅｔＲ＝１，Ｔ＿ｄｅｌ（１）＝タイル０であれば、タイル０のキャッシュデータ９０１から、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１を構成するパケット群７０５を削除することになる。そしてステップＳ２６では、このデータ削除フローで削除されたデータ量をカウントする変数Ｄｅｌに、ステップＳ５３で削除したデータ量を足す。そしてステップＳ２７では、この削除フローで削除されたデータ量Ｄｅｌと、このデータ削除フローで削除すべきデータ量Ｙｄとを比較し、実際に削除したデータ量が削除すべきデータ量Ｙｄを越えたら、このフローの処理を終了する。まだ、越えていない場合にはステップＳ２８へ進む。
【００６７】
従って、タイル０〜７の各パケットのデータサイズが
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１，ｌａｙｅｒ　２　　…　２０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１，ｌａｙｅｒ　１　　…　２０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　２　　…　１０Ｋ［バイト］
ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１　　…　１０Ｋ［バイト］
であるとすると、本実施の形態２の場合、タイル０〜７におけるキャッシュデータ削除前のキャッシュデータの状態は図１５（Ａ）（Ｂ）に示すような状態である。つまり、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　１のデータから削除していくため、タイル１枚あたり４０Ｋ［バイト］のデータが一度に削除される。ここで、１２０Ｋ［バイト］のキャッシュデータを削除したい場合には、タイルの削除順番１がタイル０、削除順番２がタイル１、削除順番３がタイル２、…となっているので、タイル０，１，２のパケットデータ４０×３＝１２０Ｋ［バイト］のデータが削除されることとなり、キャッシュデータ削除後は図１６（Ｂ）の１５０２に示すような状態になる。
【００６８】
本実施の形態２に係る削除方法では、削除領域に含まれる全てのタイルから、解像度方向に少しずつデータを削除する。従って、削除領域に含まれる領域を閲覧しても、その領域に含まれるタイルのデータがより多く残っている可能性が高くなり、要求するパケットデータを削減することも可能である。
【００６９】
また、本実施の形態２では、削除領域内のデータを解像度方向に削除する方法を示したが、ＳＮＲ方向に削除する方法でも本質的には同様である。その場合、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌを利用していた部分をｌａｙｅｒに変更する必要がある。つまり、ステップＳ５１では、削除対象ｌａｙｅｒを示す変数ｔａｒｇｅｔＬには、画像の最高ｌａｙｅｒの値が代入される。この値もまた、キャッシュされている画像のヘッダデータ７０１を解析することにより容易に得られる値である。更に、ステップＳ５２では、キャッシュ済みの最高ｌａｙｅｒとｔａｒｇｅｔＬの値を比較することになる。ステップＳ２６では、タイルＴＲ＿ｄｅｌの最高ｌａｙｅｒのデータが削除される。図９（Ａ）の９０１のようなデータから削除する場合には、ｌａｙｅｒ　２を構成するパケット群９０３と９０４が削除される。
【００７０】
或いは、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌのデータを削除する場合の削除データ量と、ｌａｙｅｒのデータを削除する場合の削除データ量を比較し、削除データ量が大きい方を削除する方法でも、本質的には同様である。例えば、図９（Ａ）の９０１に示される１２個のパケットがキャッシュされている時、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ方向で削除する場合には、図７の７０５で示す６個のパケットを削除することになり、ｌａｙｅｒ方向で削除する場合には、図９（Ａ）の９０３，９０４で示される６個のパケットを削除することになる。そこで、図７の７０５で示す６個のパケットのデータ量と、図９（Ａ）の９０３，９０４を合わせた６個のパケットのデータ量を比較し、データ量の大きい方を削除する。
【００７１】
また、本実施の形態２では、説明を簡単にするために、タイル単位で削除領域を特定したが、Ｐｒｅｃｉｎｃｔやｃｏｄｅ−ｂｌｏｃｋでも同様の考え方に基づいたキャッシュデータの削除を行うことができる。Ｐｒｅｃｉｎｃｔの場合は、データの削除単位はタイルと同様にパケットとなり、ｃｏｄｅ−ｂｌｏｃｋの場合には、そのｃｏｄｅ−ｂｌｏｃｋのデータを構成するｓｕｂｂａｎｄからなる符号データが単位となる。
【００７２】
また、上述の実施の形態１及び２におけるキャッシュ方法については、キャッシュされている各パケットデータを個別に削除できるような方法であれば、どのような方法でキャッシュされていても構わない。しかし、どのようなキャッシュ方法であっても、キャッシュ容量を制限以内に抑えることが目的であるため、物理的にデータをメモリ上から削除する必要がある。
【００７３】
例えば、図１８に示すように、タイル、パケット、ｃｏｄｅ−ｂｌｏｃｋと言ったそれぞれのデータの削除単位毎に一つのファイルを形成し、更に、それらを管理する管理ファイルを作成し、データの削除の際には、該当する削除データをキャッシュしているファイルを削除し、管理ファイルを更新するといった方法が考えられる。このようなキャッシュ作成方法の場合、物理的にデータをメモリ上から削除することが容易に可能である。
【００７４】
また、図１９（Ａ）の２２０１に示すように、タイル、パケット、ｃｏｄｅ−ｂｌｏｃｋと言った削除単位を複数まとめて一つのファイルに保存する方法でもよい。その場合は、一つのファイルでキャッシュデータを管理するため、データの管理が簡単になる反面、削除対象となるデータを消去するためには、図１９（Ｂ）の２２０２における２２０３で示すように、データを消去した後に物理的に残ってしまう穴を消す工夫が必要になる。従って、図１９の例では、Ｔｉｌｅ　Ｎ，Ｐａｃｋｅｔ　Ｋが保存されていた２２０３に該当するＬ＿ｎｋ［バイト］分だけ、それ以降のデータを前に移動させる必要があるために、コピーする必要がある。
【００７５】
図２０は、このときのデータ削除の流れを説明するフローチャートである。
【００７６】
まずステップＳ６１で、データを削除するキャッシュのファイル名を保存しておく。例えば、データを削除するキャッシュファイル名が「ａｂｃ．ｉｉｐ２ｋ」であれば、その名を保存しておく。次にステップＳ６２に進み、Ｔｅｍｐファイルを作成する。このＴｅｍｐファイルが最終的には、キャッシュデータを削除した後のファイルとなるのだが、同一の名前を避けるために「ｔｅｍｐ．ｉｉｐ２ｋ」や「ａｂｃ＿ｔｍｐ．ｉｉｐ２ｋ」というような仮の名前を付けたファイルを作成する。ここでは「ｔｅｍｐ．ｉｉｐ２ｋ」とする。次にステップＳ６３に進み、データを削除したいキャッシュファイルをオープンする。そしてステップＳ６４に進み、削除データまでのオフセット値Ｖと削除データの長さＬとを取得する。図１９の例では、Ｔｉｌｅ　Ｎ，Ｐａｃｋｅｔ　Ｋのデータを削除したいので、Ｖ＝Ｖ＿ｎｋ［バイト］，Ｌ＝Ｌ＿ｎｋ［バイト］となる。
【００７７】
次にステップＳ６５に進み、キャッシュファイルの先頭からＶ［バイト］のデータをＴｅｍｐファイルの先頭からコピーする。従って、キャッシュ管理データ２２０４を含めたデータをＴｅｍｐファイルにコピーすることになる。次にステップＳ６６に進み、キャッシュファイルの先頭から（Ｖ＋Ｌ）［バイト］目から、キャッシュファイルの終わりまでをＴｅｍｐファイルの後ろにコピーする。次にステップＳ６７に進み、Ｔｅｍｐファイル、キャッシュファイル共にファイルをクローズする。次にステップＳ６８に進み、キャッシュファイルを削除する。これにより、「ａｂｃ．ｉｉｐ２ｋ」が削除され、「ｔｅｍｐ．ｉｉｐ２ｋ」が保存されている。次にステップＳ６９に進み、Ｔｅｍｐファイルの名前を、ステップＳ６１で保存したファイル名に変更する。本実施の形態では、「ｔｅｍｐ．ｉｉｐ２ｋ」が「ａｂｃ．ｉｉｐ２ｋ」となる。これにより、物理的にファイルサイズを小さくすることが可能である。但し、この方法を取る場合には、ステップＳ６７において、一時的にでもほぼ同じサイズのファイルが２つキャッシュメモリの中に存在することになる。従って、図１０のステップＳ１１で、キャッシュメモリのメモリ容量からスレッショルド値を決定する際に、この点を考慮し、スレッショルド値として、使用可能なメモリ容量の約半分の値を設定する必要がある。この他にも様々なキャッシュ作成方法が考えられるが、本願の主願ではないので省略する。
【００７８】
［他の実施の形態］
本発明の目的は前述したように、本実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【００８０】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【００８１】
尚、本実施の形態では、ネットワーク・システムにおいて、クライアントがサーバからの符号化画像データを受信してキャッシュし、その画像を再生する場合で説明したが本発明はこれに限定されるものではなく、例えば記憶媒体に記憶されている符号化された画像データを入力して、それをキャッシュして再生する場合や、ＬＡＮや他のインターフェースを介して機能的に接続されている撮像装置やコンピュータ機器等からの符号化データを受信して再生する場合にも適用できる。
【００８２】
以上説明したように本実施の形態に係るキャッシュ削除方法を用いれば、キャッシュされた断片的な符号データを効率よく削除することができ、オリジナル画像を閲覧する際に、オリジナル画像の符号データ量と同じ大きさのメモリ容量を必要としない。
【００８３】
また、ユーザがその直前に表示していた領域と、スクロールすることで新たに表示領域としてユーザが指定した領域を結ぶ方向から外れた領域を、削除領域Ｒと指定し、キャッシュデータを削除するため、同じ方向にユーザの興味の対象がある場合には、データの損失を最小限に抑えることができる。
【００８４】
また、直前に表示されていた領域を再度表示させる場合も、データが保存されているので高速に表示することができる。
【００８５】
更に、キャッシュデータの削除の際に、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のデータを必ず残しておくことにより、ユーザの要求が、キャッシュされているデータよりも高解像度、高ＳＮＲであり、不足分のデータをダウンロードする場合にも、キャッシュされているデータを利用して、低解像度、低ＳＮＲの画像を一時的に表示することも可能になるという利点がある。
【００８６】
更に、一度キャッシュされたデータが削除された後、ユーザが再び、そのデータを必要とする表示要求を行った場合でも、少なくともｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０，ｌａｙｅｒ　１のデータが削除されずに保持されているので、再度、削除されたデータを要求している間に、一時的にキャッシュ内に保持されているデータをデコードし表示することができる。
【００８７】
また、再要求により受信したデータは、キャッシュに再書き込みすることが可能である。
【００８８】
以上説明した本実施の形態に係る画像処理方法及び装置は以下のような実施態様で表わすことが出来る。
【００８９】
［実施態様１］　符号化された画像データを断片的に受信しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する特定工程と、
前記特定工程で特定された注目領域と、その直前に表示していた画像領域との間における当該領域の移動方向を特定する移動方向特定工程と、
前記注目領域と前記移動方向に基づいて、キャッシュされている画像データを削除する領域を削除単位領域を単位として決定する削除領域決定工程と、
前記削除単位領域の単位で、前記キャッシュされている画像データを削除する削除工程と、
を有することを特徴とする画像処理方法。
【００９０】
［実施態様２］　前記削除領域決定工程では、前記画像データを断片的に受信しキャッシュするメモリの残量と、前記特定工程で特定された前記注目領域を表示するためのデータ量とに基づいて、前記キャッシュされている画像データを削除する領域を削除単位領域を単位として決定することを特徴とする実施態様１に記載の画像処理装置。
【００９１】
［実施態様３］　前記画像データはＩＳＯ／ＩＥＣ−１５４４４に準拠したＪＰＥＧ２０００符号化データであることを特徴とする実施態様１又は２に記載の画像処理方法。
【００９２】
［実施態様４］　前記画像データは、ＪＰＥＧ２０００の断片化されたパケット単位であることを特徴とする実施態様３に記載の画像処理方法。
【００９３】
［実施態様５］　前記削除単位領域は、ＪＰＥＧ２０００のタイルに相当することを特徴とする実施態様３又は４に記載の画像処理方法。
【００９４】
［実施態様６］　前記削除工程では、パケット単位で削除することを特徴とする実施態様５に記載の画像処理方法。
【００９５】
［実施態様７］　前記削除工程では、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　１のパケットを除く全てのパケットのデータを一度に削除することを特徴とする実施態様６に記載の画像処理方法。
【００９６】
［実施態様８］　前記削除単位領域は、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　１を除くパケットであり、パケット単位で選択し１回以上数回に分けて削除されることを特徴とする実施態様５に記載の画像処理方法。
【００９７】
［実施態様９］　前記削除単位領域は、ＪＰＥＧ２０００のプリシンクト（ｐｒｅｃｉｎｃｔ）であることを特徴とする実施態様３又は４に記載の画像処理方法。
【００９８】
［実施態様１０］　前記プリシンクトは、パケット単位に削除されることを特徴とする実施態様９に記載の画像処理方法。
【００９９】
［実施態様１１］　前記削除単位領域は、ＪＰＥＧ２０００のコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）であることを特徴とする実施態様３又は４に記載の画像処理方法。
【０１００】
［実施態様１２］　前記削除単位領域は、同じｒｅｓｏｌｕｔｉｏｎ、同じｌａｙｅｒを構成するために必要なサブバンドからＬＬ成分を除いたデータから構成されるｃｏｄｅ−ｂｌｏｃｋのデータであることを特徴とする実施態様１１に記載の画像処理方法。
【０１０１】
［実施態様１３］　符号化された画像データを断片的に受信しキャッシュして再生する画像処理装置であって、
画像の注目領域を特定する特定手段と、
前記特定手段で特定された注目領域と、その直前に表示していた画像領域との間における当該領域の移動方向を特定する移動方向特定手段と、
前記注目領域と前記移動方向に基づいて、キャッシュされている画像データを削除する領域を削除単位領域を単位として決定する削除領域決定手段と、
前記削除単位領域の単位で、前記キャッシュされている画像データを削除する削除手段と、
を有することを特徴とする画像処理装置。
【０１０２】
［実施態様１４］　前記削除領域決定手段では、前記画像データを断片的に受信しキャッシュするメモリの残量と、前記特定手段で特定された前記注目領域を表示するためのデータ量とに基づいて、前記キャッシュされている画像データを削除する領域を削除単位領域を単位として決定することを特徴とする実施態様１３に記載の画像処理装置。
【０１０３】
［実施態様１５］　前記画像データはＩＳＯ／ＩＥＣ−１５４４４に準拠したＪＰＥＧ２０００符号化データであることを特徴とする実施態様１３又は１４に記載の画像処理装置。
【０１０４】
［実施態様１６］　前記画像データは、ＪＰＥＧ２０００の断片化されたパケット単位であることを特徴とする実施態様１５に記載の画像処理装置。
【０１０５】
［実施態様１７］　前記削除単位領域は、ＪＰＥＧ２０００のタイルに相当することを特徴とする実施態様１５又は１６に記載の画像処理装置。
【０１０６】
［実施態様１８］　前記削除手段では、パケット単位で削除することを特徴とする実施態様１７に記載の画像処理装置。
【０１０７】
［実施態様１９］　前記削除手段では、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　１のパケットを除く全てのパケットのデータを一度に削除することを特徴とする実施態様１８に記載の画像処理装置。
【０１０８】
［実施態様２０］　前記削除単位領域は、ｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　０、ｌａｙｅｒ　１を除くパケットであり、パケット単位で選択し１回以上数回に分けて削除されることを特徴とする実施態様１７に記載の画像処理装置。
【０１０９】
［実施態様２１］　前記削除単位領域は、ＪＰＥＧ２０００のプリシンクト（ｐｒｅｃｉｎｃｔ）であることを特徴とする実施態様１５又は１６に記載の画像処理装置。
【０１１０】
［実施態様２２］　前記プリシンクトは、パケット単位に削除されることを特徴とする実施態様２１に記載の画像処理装置。
【０１１１】
［実施態様２３］　前記削除単位領域は、ＪＰＥＧ２０００のコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）であることを特徴とする実施態様１５又は１６に記載の画像処理装置。
【０１１２】
［実施態様２４］　前記削除単位領域は、同じｒｅｓｏｌｕｔｉｏｎ、同じｌａｙｅｒを構成するために必要なサブバンドからＬＬ成分を除いたデータから構成されるｃｏｄｅ−ｂｌｏｃｋのデータであることを特徴とする実施態様２３に記載の画像処理装置。
【０１１３】
【発明の効果】
以上説明したように本発明によれば、キャッシュしている符号化された画像データの内、再生画像に影響の少ないキャッシュデータを削除してキャッシュにおけるデータのオーバフローを防止しながらユーザの要求に応じた表示を行うことができる。
【図面の簡単な説明】
【図１】本実施の形態に係るクライアントやサーバの構成を説明するブロック図である。
【図２】本実施の形態に係るネットワークの概略を説明する図である。
【図３】一般的なＪＰＥＧ２０００の符号化データを説明する図である。
【図４】ＪＰＥＧ２０００の符号化データにおける解像度（画像サイズ）とＲｅｓｏｌｕｔｉｏｎ番号との関係を示す図である。
【図５】パケット単位のリクエストおよびレスポンスの概念図を示す図である。
【図６】オリジナル画像の各階層のデータ構造を説明する図である。
【図７】本実施の形態に係るサーバに保存されているＪＰＥＧ２０００符号化データを説明する図である。
【図８】図６のｒｅｓｏｌｕｔｉｏｎ　ｌｅｖｅｌ　２の部分を抜き出して示す図である。
【図９】本実施の形態に係るクライアントにおけるタイルのキャッシュデータの例を説明する図である。
【図１０】本実施の形態に係るネットワーク・システム全体の処理の流れを説明するフローチャートである。
【図１１】本発明の実施の形態１に係る、図１０のステップＳ６で示されたキャッシュ制御処理を示すフローチャートである。
【図１２】図１１のステップＳ１７のデータ削除処理を示すフローチャートである。
【図１３】図１２のステップＳ２２の削除領域Ｒに含まれるタイルを特定する処理を示すフローチャートである。
【図１４】本発明の実施の形態１における注目領域Ｆと移動方向Ｚ及び削除領域の境界線の基準となるタイルＴｂａｓｅの関係を示す図である。
【図１５】削除領域Ｒにおけるデータ削除前のキャッシュデータの一例を示す図である。
【図１６】削除領域Ｒにおけるデータ削除後のキャッシュデータの一例を示す図である。
【図１７】本発明の実施の形態２におけるキャッシュデータの削除処理を示すフローチャートである。
【図１８】削除単位毎にキャッシュデータファイルを作成した場合の一例を示す図である。
【図１９】一つのキャッシュファイル内に複数の削除単位データをキャッシュした場合の一例を示す図である。
【図２０】複数の削除単位のキャッシュデータを保存しているキャッシュファイルから物理的にデータを削除する処理を示すフローチャートである。
【図１】
2004145760.tif 000003
【図２】
2004145760.tif 000004
【図３】
2004145760.tif 000005
【図４】
2004145760.tif 000006
【図５】
2004145760.tif 000007
【図６】
2004145760.tif 000008
【図７】
2004145760.tif 000009
【図８】
2004145760.tif 000010
【図９】
2004145760.tif 000011
【図１０】
2004145760.tif 000012
【図１１】
2004145760.tif 000013
【図１２】
2004145760.tif 000014
【図１３】
2004145760.tif 000015
【図１４】
2004145760.tif 000016
【図１５】
2004145760.tif 000017
【図１６】
2004145760.tif 000018
【図１７】
2004145760.tif 000019
【図１８】
2004145760.tif 000020
【図１９】
2004145760.tif 000021
【図２０】
2004145760.tif 000022