(57)【特許請求の範囲】
【請求項１】
画像を分割したタイル単位でＪＰＥＧ２０００符号化されて断片化された符号化データであって、各タイルの前記符号化データが解像度とレイヤの階層とを有する前記符号化データを断片的に入力する入力工程と、
前記符号化データを格納するためのメモリに格納するデータ量の上限値、及び前記メモリに格納されているデータ量、及び前記入力工程で入力した前記符号化データのデータ量を基に、前記入力工程で入力した前記符号化データを前記メモリに格納可能かどうかを判定する判定工程と、
前記タイル単位に予め割り当てられた削除の優先度及び前記画像の注目領域に基づいて、当該注目領域が削除対象から除外されるように削除対象となるタイルを決定する領域決定工程と、
前記判定工程で格納不能と判定された場合、前記メモリに格納されているデータの内、前記領域決定工程で決定された前記削除対象となるタイルの符号化データに含まれる、解像度レベル０、レイヤ１を除くＪＰＥＧ２０００の符号化データを前記タイル単位で削除する削除工程と、
前記判定工程で前記メモリに格納可能と判定された場合、或は前記削除工程で符号化データが削除された後、前記入力工程により入力された前記符号化データを前記メモリに格納させる制御工程と、
を有することを特徴とする画像処理方法。
【請求項２】
前記メモリはキャッシュメモリであることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記入力工程は、サーバより送信される前記ＪＰＥＧ２０００の断片化された符号化データを受信して入力することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記削除工程では、前記上限値、及び前記メモリに既に記憶されているデータ量、及び前記入力工程で入力した前記符号化データのデータ量を基に、削除すべきデータ量を算出する工程を備えることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
前記領域特定工程では、前記入力工程により入力される前記符号化データの示す画像の種類を取得し、前記画像の種類に応じて前記注目領域を特定することを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記領域特定工程では、前記入力工程により入力される前記符号化データに基づいて前記注目領域を特定することを特徴とする請求項１に記載の画像処理方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力した符号化データを復号して表示する技術に関し、例えばISO/IEC-15444に準拠しタイル分割されたＪＰＥＧ２０００符号化データを入力して処理することに関する。
【０００２】
【従来技術】
インターネット上では、ＷＷＷサーバにＷｅｂブラウザからアクセスして、文書データや画像データ等を閲覧することが盛んに行われている。この仕組みは、インターネット上に情報を公開するＷＷＷサーバと、その情報を閲覧するクライアントがインターネットを介して接続されており、クライアントはＷｅｂブラウザを使用してサーバ上の情報を閲覧することにより実現されている。このＷＷＷサーバには、ホームページといわれる公開したい情報をＨＴＭＬで記述した文書があり、クライアント側のＷｅｂブラウザがそれにアクセスしてクライアントコンピュータに表示する。クライアント側のＷｅｂブラウザは、表示しているページ内のリンクを辿ってゆき自分が必要な情報を得ることができる。
【０００３】
更に、サーバが管理しているファイルをダウンロードする方法として、File Transfer Protocol（以下、ＦＴＰと略す）という方法がある。このＦＴＰとは、ネットワークを通して、サーバ上にあるファイルを一度にクライアントコンピュータに転送する仕組みである。また画像データファイルへ断片的にアクセスして表示するためのプロトコルとして、Flashpix/IIPがある。このＩＩＰは、Flashpixという画像データファイルのフォーマットに最適なプロトコルになっており、画像データの部分アクセスの単位はFlashpixのタイル単位に行うものである。
【０００４】
一方、このＩＩＰをそのままＪＰＥＧ２０００に適用した場合、ＪＰＥＧ２０００の各スケーラビリティの符号化データは、そのスケーラビリティより１つ下のスケーラビリティのデータからの差分データであるため、クライアント側で受信した断片的な符号化データをキャッシュしておく必要がある。
【０００５】
【発明が解決しようとする課題】
しかし、これら断片的な符号化データをクライアント側で全て保存しておくと、最終的にクライアントが最高解像度、最高ＳＮＲで画像全体をブラウズした場合に、サーバ上のＪＰＥＧ２０００ビットストリームの全データがクライアント側にキャッシュされることとなる。このことは、メモリ容量が小さいクライアントの端末では、画像を閲覧している途中にメモリ容量が溢れ、ユーザの要求に応じた画像表示が不可能になってしまうという問題がある。
【０００６】
更に、ＪＰＥＧ２０００は差分データであるので、メモリ容量が飽和し、新たに受信したデータが既にキャッシュされていたデータの上に上書きされるような事態が生じると、正確な画像表示（ユーザが望む表示）ができなくなることも起こり得る。
【０００７】
本発明は上記従来例に鑑みてなされたもので、断片的に入力される符号化データを効率良くメモリに格納して処理することを目的とする。
【０００８】
また本発明の目的は、入力した符号化データをメモリに格納できないと判断すると、既にメモリに格納されている符号化データの内画像表示の点で削除可能な領域の符号化データを優先的に削除することにより、画像表示への影響を少なくして、入力した符号化データをメモリに格納することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために本発明の画像処理方法は以下のような工程を備える。即ち、
画像を分割したタイル単位でＪＰＥＧ２０００符号化されて断片化された符号化データであって、各タイルの前記符号化データが解像度とレイヤの階層とを有する前記符号化データを断片的に入力する入力工程と、
前記符号化データを格納するためのメモリに格納するデータ量の上限値、及び前記メモリに格納されているデータ量、及び前記入力工程で入力した前記符号化データのデータ量を基に、前記入力工程で入力した前記符号化データを前記メモリに格納可能かどうかを判定する判定工程と、
前記タイル単位に予め割り当てられた削除の優先度及び前記画像の注目領域に基づいて、当該注目領域が削除対象から除外されるように削除対象となるタイルを決定する領域決定工程と、
前記判定工程で格納不能と判定された場合、前記メモリに格納されているデータの内、前記領域決定工程で決定された前記削除対象となるタイルの符号化データに含まれる、解像度レベル０、レイヤ１を除くＪＰＥＧ２０００の符号化データを前記タイル単位で削除する削除工程と、
前記判定工程で前記メモリに格納可能と判定された場合、或は前記削除工程で符号化データが削除された後、前記入力工程により入力された前記符号化データを前記メモリに格納させる制御工程と、を有することを特徴とする。
【００１０】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【００１１】
［実施の形態１］
図１は、本実施の形態を実現するシステムの概略を示した図である。
【００１２】
図において、ＣＰＵ１０１は、システム全体の動作を制御し、一次記憶１０２に格納されたプログラムの実行などを行う。一次記憶１０２は、主にメモリ（ＲＡＭ）であり、二次記憶１０３に記憶されたプログラムなどを読み込んで格納する。二次記憶１０３は例えば、ハードディスクなどがこれに該当する。一般に一次記憶１０２の容量は二次記憶１０３の記憶容量よりも小さく、一次記憶１０２に格納しきれないプログラムやデータなどは二次記憶１０３に格納される。また、長時間記憶しなければならないデータなども二次記憶１０３に格納される。本実施の形態では、プログラムを二次記憶１０３に格納し、そのプログラムの実行時に一次記憶１０２に読み込んでＣＰＵ１０１が実行して処理を行う。
【００１３】
１０４は入力デバイスで、例えば、ポインティングデバイスであるマウスやキーボードなどがこれに該当する。この入力デバイス１０４は、プログラムなどに割り込み信号を送ったりするのに用いられる。出力デバイス１０５は例えば、モニタ（表示部）やプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、これらは本実施の形態における主眼ではないので、ここではそれらの説明を省略する。
【００１４】
図２は、本実施の形態を実現するネットワークシステムの概略を説明する概念図である。
【００１５】
ユーザ２０１、ユーザ２０２はそれぞれ各ユーザの端末を表わしており、それぞれ図１で説明した構成を備えている。ユーザ２０１又は２０２のような複数のユーザが、有線、無線を問わず、ネットワーク２０３を介してサーバ２０４と通信することが可能である。サーバ２０４は画像ファイルを蓄積する大容量の記憶装置２０５を持っている。この大容量の記憶装置２０５は、例えばハードディスクや磁気ディスク、磁気テープなどがこれに該当する。この記憶装置２０５には、ＪＰＥＧ２０００符号化方式により符号化された画像データが数多く格納されている。この様な構成において、ユーザ２０１，２０２（クライアント）は、サーバ２０４が格納しているＪＰＥＧ２０００の符号化データから断片化されたデータを受信し、保存することができる。
【００１６】
本実施の形態では、クライアントが、既に生成済みのＪＰＥＧ２０００符号化データファイルのデータを断片的に受信してそれをキャッシュし、それらキャッシュした符号化データを削除する方法について説明する。
【００１７】
ユーザ（クライアント）は、ウインドウズ（Windows：登録商標）マシンを使用してホームページを開き、そこに書かれているＪＰＥＧ２０００の画像へのリンクをクリックする。これにより、ＪＰＥＧ２０００の画像を、ユーザの用途に適した画像サイズや解像度で表示するために必要な断片的なデータを取得し、それらのデータをキャッシュする。そして、キャッシュしたデータ量が、ユーザのキャッシュ容量に応じて設定されたある制限値を越えると、キャッシュマネージャのような働きを持つプログラムが動作して、ユーザのキャッシュデータを削除する場合で説明する。
【００１８】
まず、図３を用いて一般的なＪＰＥＧ２０００の符号化データを説明する。
【００１９】
図３は、Layer-resolution level-component-position progression（以下、ＬＲＣＰと記す）に沿って記録されたＪＰＥＧ２０００ファイルの構成を示す図である。
【００２０】
ＬＲＣＰに準じた場合、layer（レイヤ）／resolution（解像度）／component（コンポーネント）／position（位置）の順に記録される。このようなデータの並び方はプログレッションオーダ（progression order）と呼ばれる。解像度（画像サイズ）とResolution番号との関係を図４に示す。
【００２１】
図４に示すように、最も小さい解像度の画像のresolution番号を「０」とし、resolution番号が一つ増加するごとに画像の幅と高さが倍になっている。また、各レイヤ（layer）内は、resolution番号の小さい順にデータが格納されている。レイヤ番号は復元する画像の原画に対するＳ／Ｎ比に対応し、レイヤ番号が小さいほどＳ／Ｎ比が悪くなる。一つのＪＰＥＧ２０００ファイル内でのresolution番号とレイヤ番号、コンポーネント番号の最大値は、エンコーダによって予め設定され、そのパラメータに従ってエンコードされており、その情報は符号化データの中に格納されている。
【００２２】
各パケット（packet）は、そのパケットに格納されているコードブロック（code-block）の情報を管理しているパケットヘッダ（packet header）部と、各コードブロックの符号化データから構成されている。
【００２３】
このようなＪＰＥＧ２０００符号化データを使えば、ユーザはサーバにある全ての画像データを取得せずに、必要な部分の画像データのみをサーバから受信することが可能である。ここで、ユーザが受信できるデータの単位としては、ＪＰＥＧ２０００のパケット、或はパケットよりも更に小さい符号化単位であるコードブロック単位が考えられる。本実施の形態では、ユーザがサーバから受信するデータ単位として、パケットを想定する。
【００２４】
図５は、ユーザとサーバ間における、パケット単位でのリクエストおよびレスポンスを説明する概念図である。
【００２５】
ユーザ５０１は、サーバ５０２に画像のタイル番号と解像度番号（resolution level）とレイヤ、コンポーネント、ポジションの番号を指定して、データを要求する。図５の例では、この要求は、タイル番号「１」、解像度番号「０」、レイヤ「１」、コンポーネント「０」、そしてポジション「０」を含んでいる。
【００２６】
これに対しサーバ５０２は、その指示された画像５０３のコードストリームを解析して、指定されたタイル番号、resolution levelとレイヤ、コンポーネント、ポジション番号に相当するパケットデータ（タイル１のパケット０のデータ）を抜き出してユーザ５０１に送り返す。
【００２７】
本実施の形態では、サーバ５０２にあるオリジナル画像は、最大解像度サイズ２０４８×２０４８［画素］で、８×８からなる６４個のタイルに分割されており、コンポーネント数が「３」で、解像度レベル３（resolution level 3）、即ち、４つの画像サイズ方向の階層を持っており、二つのレイヤに分けられていると仮定する（図７参照）。それぞれのタイルには図６（Ａ）に示すように、左上のタイルからシーケンスな番号が振ってある。従って、サーバ５０２側には、図７の７０１で示すようなデータが保存されている。
【００２８】
図６（Ａ）〜（Ｄ）は、各解像度レベル（０〜３）に対応したタイルの分割例を示す図、図７は、サーバ５０２におけるＪＰＥＧ２０００符号化データの構成を説明する図である。
【００２９】
［タイル単位でのデータの削除］
クライアント５０１では、受信した符号化データのキャッシュに利用できるキャッシュメモリのメモリ容量を予め把握しておき、サーバ５０２から送られてきた断片的なＪＰＥＧ２０００ビットストリームのキャッシュデータのデータ量が、キャッシュメモリの容量を越える前にビットストリームを消去する。
【００３０】
この動作を図８のフローチャートを用いて説明する。図８は、クライアント５０１における受信データのキャッシュ処理を示すフローチャートである。
【００３１】
まずステップＳ８０１で、画像の種類を特定し、その画像の内の優先的にデータを消去する領域Ｒをタイルを単位で決定する。例えば、カタログなどの画像である場合は、その画像の中心部に商品が配されていることが多い。従って、そのような画像の場合には、その画像の中心部の領域を優先的にキャッシュして保存する領域とし、例えば図９（Ａ）の斜線部分９０１で示すような周辺領域を、優先的にデータを消去する領域として設定する。
【００３２】
図９（Ａ）乃至（Ｃ）は、画像内において優先的にデータを消去する領域の一例を示す図である。
【００３３】
画像の種類によっては、図９（Ｂ）の両サイド９０２や、或は図９（Ｃ）の上下サイド９０３に示すように、画像の両脇部分、或は上部及び下部が優先的なデータ削除領域として設定されることもあり得る。尚、画像の種類を特定する方法としては、サイトの情報やサーバ５０２からの通知など様々考えられるが、本件の趣旨ではないので省略する。
【００３４】
次にステップＳ８０２に進み、クライアント５０１の端末のメモリ容量を取得し、キャッシュデータの削除を行うか否かを判断するためのスレッショルド値（容量）を決める。つまり、受信したＪＰＥＧ２０００のパケットデータのキャッシュに利用するメモリ容量を決定する。キャッシュ可能なメモリ容量の１００％を利用する場合には、スレッショルド値とキャッシュメモリの容量が等しくなる。しかし、そのメモリ内に、ＪＰＥＧ２０００の断片的な符号データ以外も保存する場合や、同じシステムで複数のＪＰＥＧ２０００の符号データを扱う場合には、使用できるメモリ容量よりも小さな値に設定するのが望ましい。例えば、３Ｍバイトのメモリ容量に対して、この画像に対するキャッシュ容量のスレッショルド値として２Ｍバイトの値を設定する。このキャッシュ容量のスレッショルド値を決める場合、ハードディスクなどの２次記憶媒体でもよいが、本実施の形態では、説明を簡単にするために、一次記憶１０２のメモリサイズを基準としてスレッショルドを決めるものとする。
【００３５】
次にステップＳ８０３に進み、受信した断片化されたＪＰＥＧ２０００符号化データのバイト数を取得する。次にステップＳ８０４に進み、ステップＳ８０３で取得した、受信したバイト数をキャッシュすると、ステップＳ８０２で設定されたスレッショルド値を越えるかどうかを判断する。つまり、スレッショルド値から現在のキャッシュされているデータ量を引いた値よりも、ステップＳ８０３で取得したデータ量の方が大きければスレッショルド値を越えると判断し、そうでなければスレッショルド値を越えないと判断する。スレッショルド値を越えるようであればステップＳ８０５に進み、越えないようであればステップＳ８０６へ進む。
【００３６】
ここでは例えば、既にキャッシュされているＪＰＥＧ２０００のパケットデータのデータ量が１.９５Ｍバイトで、ステップＳ８０３において今回受信した符号化データの量が１２０ｋバイトであれば、その合計値がスレッショルド値（２Ｍバイト）を越えるのでステップＳ８０５へ進む。ステップＳ８０５では、キャッシュデータの中から、ＪＰＥＧ２０００のタイル（Tile）単位でデータを削除し、ステップＳ８０３で受信した符号化データを全てキャッシュしても、キャッシュデータの容量をスレッショルド値以下に抑えるようにしている。
【００３７】
例えば、ステップＳ８０３で受信した符号化データの量が１２０ｋバイトで、スレッショルド値が２Ｍバイトであれば、ステップＳ８０５では、キャッシュデータの量が２−０.１２＝１.８８［ｋバイト］以下になるまで、キャッシュしている符号化データをタイル単位で削除する。尚、ここでは、優先的にデータを消去するタイルから消去していく。次にステップＳ８０６に進み、ステップＳ８０３で受信した符号化データをキャッシュする。そしてステップＳ８０７に進み、この画像に対する要求が終了したか否かを判断する。終了していなければステップＳ８０３へ戻り、次の符号化データの受信を待つ。要求が終了していればこのキャッシュルーチンを終了する。
【００３８】
図１０は、図８のステップＳ８０５のキャッシュデータの削除処理を示すフローチャートである。以下、この処理を説明する。
【００３９】
まずステップＳ１００１で、削除すべきデータ量Ｙを取得する。例えば、ユーザが既に、画像全体をresolution level 1の最大ＳＮＲで表示していたとすると、全タイルのresolution level 0，resolution level 1を構成するパケットデータがキャッシュの中に入っていることになる。つまり、図７に示すヘッダ部分７０１、各タイルのヘッダデータ７０７、resolution level 0を構成するパケット群７０４、及びresolution level 1を構成するパケット群７０５が、クライアント側のキャッシュメモリには保存されていることになる。今、これらのデータを合わせた合計のデータ量が１.９５Ｍバイトであり、スレッショルド値が２Ｍバイトで、受信した符号化データ量が１２０ｋバイトであった場合、削除すべきデータ量Ｙは、Ｙ＝１.９５＋０.１２−２.０＝０.０７［Ｍバイト］＝７０［ｋバイト］として求められる。つまり、７０ｋバイト以上のキャッシュデータを削除する必要があることになる。
【００４０】
そこで次にステップＳ１００２に進み、図８のステップＳ８０１で得られた画像情報より、データ削除領域Ｒを取得する。ここでは例えば、ステップＳ８０１で得られた情報により、図９（Ａ）の９０１で示すように、画像の最も外側のタイル部分をデータ削除領域Ｒとして指定する。
【００４１】
次にステップＳ１０１１に進み、現在の注目領域Ｆを取得する。つまり、現在出力デバイス１０５の表示部に表示されている領域を注目している領域として、取得する。次にステップＳ１００３に進み、ステップＳ１００２で求めたデータ削除領域Ｒに含まれるタイルに対して、そのタイルデータを削除する順番を決定する。但し、注目領域Ｆとデータ削除領域Ｒが重なっている場合には、その重なっている部分のタイルは削除対象領域から外す。この決定方法は、本実施の形態の場合、ステップＳ８０１により得られた画像の種類に基づいて決定される。
【００４２】
いま、図６（Ａ）に示す四隅のタイル番号が「１８」，「２１」，「４２」，「４５」のタイルで囲まれる１６個のタイルで構成される領域６０１が現在の注目領域Ｆであり、その外側の各タイルが、図９（Ａ）の９０１で示す矢印の方向に時計回りで削除されると決定されたとする。図６（Ａ）において、タイル番号「０」〜「７」，「１５」，「２３」，「３１」，「３９」，「４７」，「５５」，「６３」〜「５６」，「４８」，「４０」，「３２」，「２４」，「１６」，「８」というタイルの順番に、Ｘ＝１，２，…，２８という番号を付す。ここでもし、注目領域Ｆが図６（Ａ）に示す四隅のタイル番号が「２」，「５」，「２６」，「２９」で囲まれる領域６０４であれば、タイルデータを削除する順番は、タイル「２」〜「５」を除いて、タイル番号「０」，「１」，「６」，「７」，「１５」，「２３」，「３１」，「３９」，「４７」，「５５」，「６３」〜「５６」，「４８」，「４０」，「３２」，「２４」，「１６」，「８」という順番に、Ｘ＝１，２，…，２４という番号を付すことになる。
【００４３】
次にステップＳ１００４に進み、データの削除順を示す変数Ｘに「１」を代入し、更に、削除されたデータサイズを計算する変数Ｄｅｌに「０」を入れて初期化する。次にステップＳ１００５に進み、Ｘの番号が振られているタイルのデータをresolution level 0，レイヤ１の各コンポーネントに対応するパケットデータを除いて全て削除する。例えば、番号「０」のタイル（タイル０）のキャッシュデータが図１１の１１０１で表されるとき、Ｘ＝１であれば、タイル０のキャッシュデータの中からresolution level 0，レイヤ１を構成する３つのパケット１１０２を除く、１１０３と１１０４で示す９個のパケットを削除することになる。次にステップＳ１００６に進み、ステップＳ１００５で削除したパケットのデータ容量を変数Ｄｅｌに足す。例えば、図１１に示すような、タイル０を削除した９個のパケットデータのデータ量が５５ｋバイトであれば、変数Ｄｅｌの値は、Ｄｅｌ＝０＋５５＝５５ｋバイトに更新される。
【００４４】
次にステップＳ１００７に進み、削除すべきデータ量Ｙと、削除されたデータ量である変数Ｄｅｌの値とを比較し、データ量Ｙよりも削除されたデータ量Ｄｅｌの値が大きければ、このデータ削除処理を終了する。
【００４５】
一方、ステップＳ１００７で、削除すべきデータ量Ｙに対して削除したデータ量Ｄｅｌの値が小さければステップＳ１００８へ進む。即ち、例えば、削除すべきデータ量Ｙが７０ｋバイトで、削除されたデータ量（Ｄｅｌ）が５５ｋバイトである場合には、まだ、削除しなくてはならないのでステップＳ１００８へ進むことになる。ここでは例えば、次の削除対象タイル１に対して上記の処理を行い、その結果、削除したデータ量が５０ｋバイトであった場合は、変数Ｄｅｌの値が、Ｄｅｌ＝５５＋５０＝１０５ｋバイトとなる。これによりＹ＝７０ｋバイト以上の値になり、このデータ削除の処理を終了することになる。
【００４６】
ステップＳ１００８では、削除番号を示す変数Ｘと削除領域Ｒのタイル数Ｎとを比較し、タイル数Ｎよりも変数Ｘの方が小さければステップＳ１００９に進んで変数Ｘを＋１し、そうでなければステップＳ１０１０へ進む。つまり、ステップＳ１００８では、設定されたデータ削除領域Ｒのタイルの符号化データが全てresolution level 0，レイヤ１のデータのみになってしまったかを判断し、まだデータ削除の順番が来ていないタイルがあればステップＳ１００９へ進み、ステップＳ１００８で、領域Ｒ内の全てのタイルデータを削除していたらステップＳ１０１０へ進む。ステップＳ１００９では、変数Ｘに１を加えて削除領域Ｒ内の次のデータ削除対象のタイルを特定する。一方、ステップＳ１０１０では、新たな削除領域Ｒを設定し直す。例えば、最初に設定された削除領域Ｒが図９（Ａ）の９０１で示されたように一番外側のタイルで構成されていた場合は、その内側のタイル、つまり、図６（Ａ）の枠６０１と枠６０３で囲まれるタイルで構成される領域を新たな削除領域Ｒとして設定する。
【００４７】
このようなキャッシュデータの削除方法を採用することにより、画像の種類に基づいて、予め分かっている重要なデータ領域のタイルデータが保持され、必要の度合いが低いタイルデータだけを削除できる。また、タイル毎に一番データ量の少ないresolution level 0，レイヤ１のデータ以外のパケットデータを一度に削除するため、一度で大きなキャッシュ容量を空けることが可能になり、削除データ量の計算による負荷が軽減される。
【００４８】
また、各タイルのresolution level 0，レイヤ１のデータを削除せずに保持しておくことで、全くデータが存在しないタイルがなくなる。これにより、より高解像度の画像が要求されても、保持している符号化データからデコードされた画像を一時的に拡大して表示でき、その部分の画像表示の要求後、しばらく、そのタイルの部分の画像が全く表示されないということがない。またいつでも、画像全体を把握できる画像をすぐに表示できる。例えば、削除領域Ｒに、番号が「０」〜「５」のタイルが含まれており、図１３（Ａ），（Ｂ）に示すように各タイルデータのresolution level 2までのデータを保存していたとする。
【００４９】
図１３（Ａ）は、各タイル番号に対応した符号化データのデータ量を、解像度レベルとレイヤに分けて示した図であり、図１３（Ｂ）は、各解像度レベル、レイヤに対応する、１つのタイルデータのキャッシュデータ量と、削除したいデータ量を説明する図である。
【００５０】
番号「０」〜「５」のタイルに関しては、この順番にキャッシュデータが削除されるとき、１２０Ｋバイトのデータを削減するためには、図１４（Ａ）に示すように、番号が「０」〜「２」の３個のタイルのデータ１４０１を削除するため、１６５ｋバイト（＝５５×３）を削除することになる。
【００５１】
尚、タイルデータを削除する順番は、上記実施の形態で示したものに限るものではなく、それ以外の順番で行ってもよいことはもちろんである。
【００５２】
この構成は、入力した符号化データを復号して表示する画像処理装置であって、画像データを構成する断片化された符号化データを入力する入力手段と、符号化データを格納するためのメモリに格納するデータ量の上限値を設定する上限値設定手段と、前記メモリに格納されているデータ量と前記上限値及び前記入力手段で入力した符号化データのデータ量を基に、前記入力手段により入力した符号化データを前記メモリに格納可能かどうかを判定する判定手段と、前記画像データにおける削除対象領域を決定する領域決定手段と、前記判定手段により格納不能と判定されると、前記メモリに格納されているデータの内、前記領域決定手段により決定された前記削除対象領域に含まれるデータを前記断片化されたデータの単位で削除する削除手段と、前記判定手段により前記メモリに格納可能と判定された場合、或は前記削除手段により前記データが削除された後、前記入力手段により入力された前記符号化データを前記メモリに格納するように制御する制御手段とを有する画像処理装置により特徴付けられる。
【００５３】
またメモリは、キャッシュメモリである。
【００５４】
また入力手段は、サーバより送信される断片化された符号化データを受信して入力する。
【００５５】
［実施の形態２］
［特定したタイルのパケット単位でのデータ削除］
前述の実施の形態１では、予め取得した画像の種類の情報から、必要の度合いが低い領域を予測し、その領域内からタイルを１枚ずつ選び出し、その選んだタイルの中のresolution level 0，レイヤ１のデータを除いた全てのパケットデータを削除した。しかし、特定のタイルに含まれるresolution level 0，レイヤ１を除く全てのパケット単位ではなく、領域内に含まれる全てのタイルに対して全体的なＳＮＲや解像度を低くし、データ量を削減する方法も考えられる。この場合に前述の実施の形態１と異なるのは、図１０で示したキャッシュデータの削除処理におけるステップＳ１００３以下である。
【００５６】
以下、本実施の形態２に係るキャッシュデータの削除処理について図１２を参照して説明する。尚、この図１２において、図１０と同じ動作をするステップには図１０と同じ番号を付して、その説明を省略する。
【００５７】
ステップＳ１００１、ステップＳ１００２は、前述の実施の形態１と同様の動作をする。ステップＳ１２０１において、削除されたデータサイズを計算する変数Ｄｅｌに「０」を入れて初期化する。次にステップＳ１００３では、前述の実施の形態１と同様に、データ削除領域Ｒ内の各タイルにデータを削除する順番を付ける。
【００５８】
次にステップＳ１２０２に進み、削除領域Ｒで最も解像度の高いタイル群ＴＲを特定する。例えば、ユーザが既に、画像全体をresolution level 1の最大ＳＮＲで表示していたとすると、全タイルのresolution level 0，resolution level 1を構成するパケットデータがキャッシュの中に入っている。つまり、図７に示すヘッダ部分７０１、各タイルのヘッダデータ７０７、resolution level 0を構成するパケット群７０４、及びresolution level 1を構成するパケット群７０５がクライアント５０１のキャッシュメモリには保存されていることになる。尚、ここでも、データ削除領域Ｒとして、図９（Ａ）の９０１に示すように、画像の最も外側のタイル部分が指定されているとする。データ削除領域Ｒに含まれるタイルは全て同じresolution level 1の解像度までのデータがキャッシュされているので、ステップＳ１２０２で特定されるタイル群ＴＲと領域Ｒは同じになり、タイル群ＴＲは、番号「０」〜「８」，「１５」，「１６」，「２３」，「２４」，「３１」，「３２」，「３９」，「４０」，「４７」，「４８」，「５５」〜「６３」の２８枚のタイルで構成される。
【００５９】
次にステップＳ１２０３に進み、タイル群ＴＲの中で、最初に削除されるタイル番号ＴＸを特定する。例えば、図６（Ａ）に示す番号「１８」，「２１」，「４２」，「４５」のタイルで囲まれる領域６０１が現在の注目領域であり、図９（Ａ）の９０１で示す矢印の方向でデータの削除を行う順番をつけた場合を説明する。
【００６０】
図６（Ａ）では、タイル番号「０」〜「７」，「１５」，「２３」，「３１」，「３９」，「４７」，「５５」，「６３」〜「５６」，「４８」，「４０」，「３２」，「２４」，「１６」，「８」という順番にデータを削除すると、最初に削除するタイル番号ＴＸとして番号「０」が特定される。もし反対に、タイルデータを削除する順番が、タイル番号「８」，「１６」，「２４」，…というように反時計回りであれば、タイル番号ＴＸとして「８」が特定される。
【００６１】
次にステップＳ１２０４に進み、ステップＳ１２０３で特定されたタイル番号ＴＸで指示されるタイルの最高解像度のデータを削除する。例えば、タイル番号ＴＸが「０」であり、この番号「０」のタイルデータとして、図１１の１１０１で示すように、resolution level 0及びresolution level 1を構成するデータが保存されている場合には、その中の１１０３で示されるresolution level 1を構成する６個のパケットを削除する。もし、タイル番号ＴＸに対応するタイルに含まれるデータがresolution level 0を構成するデータのみであれば、resolution level 0，レイヤ１を構成する３個のパケット、つまり、パケット１１０２を除いたパケットデータを削除する。
【００６２】
次にステップＳ１００６に進み、前述の実施の形態１と同様に、削除したデータ容量を変数Ｄｅｌに足す。そしてステップＳ１００７では、実施の形態１と同様に、削除すべきデータ量Ｙ以上のデータを削除したかどうかを判断する。Ｙ＜Ｄｅｌで、十分なデータ量を削除したと判断すると処理を終了し、まだデータを削除する必要があればステップＳ１２０５へ進む。ステップＳ１２０５では、ステップＳ１２０３で特定されたタイル群ＴＲから、ステップＳ１２０４で特定された番号ＴＸのタイルを除き、直前にキャッシュデータを削除したＴＸに対応するタイルを優先的なデータ削除候補のタイル群ＴＲから除外する。例えば、上述した２８枚のタイルから構成されるタイル群ＴＲの中から、番号「０」のタイルデータがステップＳ１２０４で削除された場合、そのタイル群ＴＲから番号「０」のタイルが外されてタイル群ＴＲに含まれるタイル数は２７枚に減少する。
【００６３】
次にステップＳ１２０６に進み、優先的なデータ削除候補のタイル群ＴＲに、削除候補のタイルがまだ残っているかどうか判断する。まだ、タイル群ＴＲに優先的に削除する候補のタイルが残っていればステップＳ１２０３へ戻り、残っていなければステップＳ１２０７へ進む。
【００６４】
この処理を具体的に説明すると、例えば、最初に優先的にデータを削除する候補のタイル群ＴＲが、上述したように２８枚のタイルで構成されていれば、そのタイル群ＴＲに対して、ステップＳ１２０５を２８回実行すると、タイル群ＴＲにの残存するタイル数が「０」となり、削除領域Ｒの最高resolution level数が一つ低下することになる。
【００６５】
次にステップＳ１２０７では、削除領域Ｒに含まれる全てのタイルのキャッシュデータがresolution level 0，レイヤ１を構成するパケットデータのみになったのかどうかを判断する。全てのタイルがresolution level 0，レイヤ１となっている場合は、もうその領域Ｒでは、削除できるタイルデータが存在しないので新たな削除領域Ｒを設定する必要がある。そこで、このステップＳ１２０７で新たな削除領域Ｒの設定が必要な場合はステップＳ１０１０へ進む。一方、ステップＳ１２０７で、まだ削除できるデータが削除領域Ｒに残っていればステップＳ１２０２へ戻る。
【００６６】
この処理を具体的に説明すると、例えば、削除領域Ｒに番号「０」〜「５」のタイルが含まれており、図１３（Ａ），（Ｂ）に示すように、各タイルデータとして、resolution level 2までのデータを保存していたとする。
【００６７】
番号「０」〜「５」のタイルに関しては、このタイル番号の順番にキャッシュデータが削除されるとき、１２０ｋバイトのデータを削減するためには、番号「０」〜「３」までのタイルのresolution level 2のデータ１４０２（図１４（Ｂ））の１２０ｋバイトを削除することになる。
【００６８】
本実施の形態２では、削除領域Ｒに含まれる全てのタイルから、解像度の高いほうから少しずつデータを削除する。従って、削除領域Ｒに含まれる領域を閲覧しても、その領域に含まれるタイルのデータが多く残っている可能性が高くなり、サーバ５０２に要求するパケットデータの数を削減することも可能になる。
【００６９】
また、本実施の形態２では、削除領域Ｒ内のデータを解像度の高いほうから削減する場合で説明したが、ＳＮＲ方向に削減する方法でも本質的には同様である。その場合、ステップＳ１２０２において特定されるタイル群ＴＲは、最もＳＮＲが高い、即ち、キャッシュされているレイヤが多いタイルの集合である。またステップＳ１２０４で削除されるデータは、ＴＸの中で最高ＳＮＲのタイルデータが削除される。例えば、番号ＴＸのタイルのキャッシュデータとして、図１１の１１０１で示すような１２個のパケットが保存されているとすると、キャッシュデータの中で最も高いＳＮＲのデータが削除されるので、１１０５で示すresolution level 1，レイヤ２を構成する３個のパケットと、１１０４で示すresolution level 0，レイヤ２を構成する３個のパケットの合せて６個のパケットが削除されることになる。
【００７０】
また或は、解像度の高いほうからタイルデータを削除する場合の削除するデータ量と、ＳＮＲの高いほうからデータを削除する場合における削除するデータ量とを比較し、削除するデータ量がより多い方の方法により削除する方法でも本質的には同様である。例えば、図１１の１１０１で示すような１２個のパケットが保存されているとすると、解像度の高いほうからタイルデータを削除する場合には、１１０３で表される６個のパケットデータを削除し、ＳＮＲの高いほうからデータを削除する場合には、１１０４で表される３個のパケットと、１１０５で表される３個のパケットとを合わせた６個のパケットを削除することになる。そこで、この場合には、解像度に応じた場合に削除される１１０３で示す６個のパケットのデータ量と、ＳＮＲに応じた場合に削除される１１０４と１１０５とを合わせた６個のパケットのデータ量とを比較し、削除されるデータ量が多い方の方式でパケットを削除することとなる。
【００７１】
これにより、前述の削除手段は、メモリに既に記憶されているデータ量と、上限値及び前記入力手段により入力した符号化データのデータ量を基に、削除すべきデータ量を算出することを特徴とするものである。
【００７２】
［実施の形態３］
［ＪＰＥＧ２０００画像のＲＯＩを考慮した削除方法］
前述の実施の形態１及び２では、画像の種類を取得し、その種類に基づいて、画像データの削除領域Ｒを決定していた。この方法は、特別な計算も必要とせず、自動的に削除領域Ｒの決定が行える利点がある。しかし、画像の種類だけから自動的に削除領域Ｒを決めることができる画像は、カタログ用の画像など非常に限定されてしまい、一般の画像に当て嵌めることは難しい。それに対して、予めＪＰＥＧ２０００ビットストリームにおいて、領域ＲＯＩが指定されている領域を重要な領域と位置付け、それ以外の領域を削除領域Ｒと決めることも可能である。この場合のクライアントにおける処理の流れを図１５のフローチャートを用いて説明する。
【００７３】
本実施の形態３では、前述の実施の形態１、２と同様に、サーバ５０２にあるオリジナル画像は、最大解像度サイズ２０４８×２０４８［画素］、８×８の６４タイルに分割されており、コンポーネント数が「３」で、resolution level 0〜resolution level 3、即ち、４つの解像度レベル（画像サイズ）に対応する階層を持っており、２つのレイヤに分けられていると仮定する。それぞれのタイルには図６（Ａ）に示すように、左上のタイルからシーケンスな番号が振ってある。従って、サーバ５０２には、図７の７０１で示すようなデータが保存されている。
【００７４】
この実施の形態３が前述の実施の形態１或は２と異なるのは、削除領域Ｒを決定するために、デコーダからＲＯＩ領域を取得する部分のみである。従って、本実施の形態３のクライアント５０１の動作を示す図１５のフローチャートにおいて、前述の図８のフローチャートと同様の処理を行う部分には同じ番号を付して、その説明を省略する。
【００７５】
まずステップＳ１５０１で、実施の形態１及び２のステップＳ８０２と同様に、クライアント５０１のメモリ容量を取得し、キャッシュデータの削除を行うか否かを判断するスレッショルド値を決める。つまり、今回のＪＰＥＧ２０００の受信したパケットデータのキャッシュに利用するメモリ容量を決定する。例えば、メモリ容量が３Ｍバイトの場合に、この画像に対するキャッシュのスレッショルド値として２Ｍバイトを設定する。ステップＳ１５０２では、クライアント５０１の画像の表示領域の大きさを取得する。ステップＳ１５０３では、表示領域に納まる画像サイズをもつ解像度の画像を構成するデータを、サーバ５０２に要求する。例えば、ステップ１５０２で取得した画像の表示領域が５１２×５１２［画素］であれば、図６（Ｃ）のresolution level 1の画像６０５がちょうど納まるので、resolution level 1を構成するデータを要求する。次にステップＳ１５０４に進み、ステップＳ１５０３の要求に応答して、サーバ５０２から送られた画像データを受信して保存する。従って、resolution level 1の最大ＳＮＲであるレイヤ２の画像を要求した場合には、図７に示す画像のヘッダ部分７０３と各タイルのタイルヘッダ７０７と各タイルのresolution level 0、レイヤ２の画像データ、及びresolution level 1、レイヤ２の画像データがキャッシュされる。
【００７６】
次にステップＳ１５０５に進み、ステップＳ１５０３の要求により得られたデータから画像をデコードして表示すると共に、ＲＯＩ領域がどこであるかを特定する。これは、ＲＯＩの領域情報は符号化データの中に独立した情報として格納されていないため、実際にＪＰＥＧ２０００のデコーダ使って復号してみないと判断できないためである。このような復号処理をタイル単位で実行することにより、このタイル内にＲＯＩ領域があったかどうかを判断できる。ちょうどステップＳ１５０３では、画像全体が表示領域に表示されるような解像度データを要求しているので、画像全体を一度デコードすることになり、ＲＯＩ領域がどこであるか、その時点で特定できる。
【００７７】
例えば、図１６（Ａ）に示すように、ＲＯＩ領域として、番号「２７」、「２９」、「４３」、「４５」で囲まれる９枚のタイルで構成される領域１６０３が特定される。ステップＳ１５０６では、キャッシュデータの削除領域Ｒを設定する。本実施の形態３では、ＲＯＩ領域のキャッシュデータを残し、それ以外のデータを削除するので、ステップＳ１５０５で得られたＲＯＩ領域を含むタイル以外のタイル部分が削除領域Ｒとして設定される。但し、ＲＯＩ領域以外の部分が、ユーザの注目領域である場合には、その領域は削除領域Ｒから外される。例えば、図１６（Ａ）のresolution level 3の画像の左上の４個のタイル１６０４で示される部分をユーザが拡大して見ている場合には、番号「０」，「１」，「８」，「９」の４個のタイルは、削除領域Ｒから除外される。
【００７８】
更に、ユーザのスクロール操作を考慮した場合、注目領域１６０４、或はＲＯＩ領域１６０３の外側のタイル部分を含む１６０５、或は１６０６の領域までをキャッシュデータに保存する領域とし、それら領域を除いたタイル部分を削除領域Ｒとして設定する。次にステップＳ１５０７では、この画像に対する閲覧をクライアント５０１が終えたかどうかを判断する。この画像に対する閲覧が終わったなら、このフローを終了する。ここでまだ閲覧要求がある場合にはステップＳ８０３へ進む。ステップＳ８０３以降は実施の形態１と同様の動作をする。
【００７９】
また、ＲＯＩ領域を取得する方法は、このフローに限るものではない。例えば本実施の形態３では、ステップＳ１５０３において、クライアント５０１の表示部に画像全体を表示するように要求しているので、結果的にステップＳ１５０５において、画像全体を一度デコードすることで、ＲＯＩ領域が画像全体のどのタイルの部分に存在するのか判断している。しかし、最初に表示するのは画像の部分領域でも良い。この場合、部分領域をタイル単位でデコードすることで、表示する部分領域の各タイルにＲＯＩ領域が含まれているか判断することができ、この情報を利用してキャッシュデータを削除することも可能である。
【００８０】
またデータの削除単位としては、前述の実施の形態１のように、タイル単位でresolution level 0，レイヤ１を構成するパケットデータ以外のデータを削除していく方法と、前述の実施の形態２のように、削除領域Ｒのデータを解像度の高いほうから、又はＳＮＲの高いほうから少しずつデータを落していく方法のどちらも実現できる。
【００８１】
また、前述の実施の形態１、２及び３におけるキャッシュ方法については、キャッシュされている各パケットデータを個別に削除できるような方法であれば、どのような方法でキャッシュされていても構わない。しかし、どのようなキャッシュ方法であっても、キャッシュ容量を制限以内に抑えることが目的であるため、物理的にデータをメモリ上から削除する必要がある。
【００８２】
このような構成により、領域決定手段は、画像データに基づいて表される画像の注目領域を特定する注目領域特定手段を有し、画像の前記注目領域以外の領域を前記削除対象領域とすることを特徴とする。
【００８３】
又上記各実施の形態において、符号化データはＪＰＥＧ２０００の断片化された符号化データであることを特徴とする。
【００８４】
更には、注目領域特定手段は、入力手段により入力される符号化データの示す画像の種類を取得する種類取得手段を有し、前記画像の種類に応じて前記注目領域を特定することを特徴とする。
【００８５】
更には、注目領域特定手段は、入力手段により入力される符号化データに基づいて注目領域を特定することを特徴とする。
【００８６】
また、削除手段は、符号化データをJPEG2000のパケット単位に削除することを特徴とする。
【００８７】
更には、削除手段は、タイル単位でデータを削除し、削除するJPEG2000のパケットは、解像度レベル０、レイヤ１のパケットを除くパケットデータであることを特徴とする。
【００８８】
尚、このような構成は手段だけでなく、方法を構成する工程においても同様にして実現される。
【００８９】
図１７は、削除単位毎にキャッシュデータファイルを作成した場合の例を説明する図である。
【００９０】
ここで、例えば図１７に示すように、タイル、パケット、コードブックといった、それぞれのデータの削除単位毎に一つのファイルを作成し、更に、それらを管理する管理ファイル１７００を作成する。そして、データを削除する際には、削除対象のデータをキャッシュしているファイルを削除し、更に管理ファイル１７００を更新するといった方法が考えられる。このようなキャッシュ方法の場合、物理的にデータをメモリから容易に削除することが可能になる。
【００９１】
図１８（Ａ）（Ｂ）は、一つのキャッシュファイル内に複数の削除単位データをキャッシュした場合の例を説明する図で、図１８（Ａ）は「Tile N」，「Packet K」のデータの削除前、（Ｂ）は削除後の状態を示している。
【００９２】
図において、２２０１，２２０２はそれぞれキャッシュファイルを示し、２２０４は、キャッシュファイル２２０１のキャッシュ管理データ、２２０５はそのキャッシュデータを示している。ここでは、タイル、パケット、コードブックといった、削除するデータ単位を複数まとめて一つのキャッシュファイルとして保存している。この場合は、一つのキャッシュファイルでキャッシュデータを管理するため、データの管理が簡単になる反面、削除対象となるデータを消去するために、例えば図１８（Ｂ）の２２０２の２２０３で示すように、キャッシュデータを消去した後に物理的に残ってしまうスペースを埋める工夫が必要になる。即ち、図１８（Ｂ）の例では、タイルＮ(Tile N), パケットＫ（Packet K）が保存されていたスペース２２０３に該当するＹバイト分だけ、それ以降のデータを前方に移動させる必要がある。
【００９３】
図１９は、図１８のようなキャッシュファイルにおけるキャッシュデータの削除処理を説明するフローチャートである。
【００９４】
まずステップＳ１９０１で、データを削除するキャッシュのファイル名を保存する。ここでは例えば、データを削除するキャッシュファイル名が「abc.iip2k」であれば、その名称を保存しておく。次にステップＳ１９０２に進み、Tempファイルを作成する。このファイルが最終的には、キャッシュデータ削除後のファイルとなるのだが、同一の名前を避けるために、「temp.iip2k」や「abc_tmp.iip2k」といった仮の名前を付けたファイルを作成する。ここでは「temp.iip2k」とする。次にステップＳ１９０３に進み、データを削除したいキャッシュファイルをオープンする。次にステップＳ１９０４に進み、削除データまでのオフセット値Ｖと削除データの長さＬを取得する。これは図１８の例では、「Tile N」，「Packet K」のデータを削除したいので、ＶはＸ（バイト）、ＬはＹ（バイト）となる。次にステップＳ１９０５に進み、キャッシュファイルの先頭からＶバイトのデータを、Tempファイルの先頭からTempファイルにコピーする。従って、キャッシュ管理データ２２０４を含めたデータがTempファイルにコピーされることになる。次にステップＳ１９０６に進み、キャッシュファイルの先頭から（Ｖ＋Ｌ）バイト目のデータからキャッシュファイルの終わりまでのデータをTempファイルの後ろにコピーする。そしてステップＳ１９０７に進み、Tempファイル、キャッシュファイル共にファイルをクローズする。そしてステップＳ１９０８に進み、キャッシュファイルを削除する。従って、この時点ではファイル「abc.iip2k」が削除され、「temp.iip2k」が保存されている。ッそしてステップＳ１９０９に進み、Tempファイルの名前をステップＳ１９０１で保存したキャッシュファイル名に変更する。本実施の形態では、これにより「temp.iip2k」が「abc.iip2k」に変更される。これにより、物理的にファイルサイズを小さくすることが可能である。
【００９５】
但し、この方法を採る場合には、ステップＳ１９０７において、一時的にでもほぼ同じサイズのファイルが２つキャッシュメモリの中に存在することになる。従って、図８のステップＳ８０２で、キャッシュ用メモリ容量からスレッショルド値を決定する際に、この点を考慮し、スレッショルド値として、使用可能なメモリ容量の約半分の値を設定する必要がある。この他にも様々なキャッシュ作成方法が考えられるが、本件の主願ではないので省略する。
【００９６】
（その他の実施の形態）
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【００９８】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【００９９】
以上説明したように本実施の形態によれば、キャッシュされた断片的な符号データを効率よく削除することができ、サーバにあるオリジナル画像を閲覧する際に、クライアントにおいてオリジナル画像と同じ大きさのメモリ容量を必要としない。
【０１００】
また、画像の種類や注目領域ＲＯＩに応じて、画像のどの領域に重要なデータが配されているかを判断することにより、複雑な計算をすることなくタイル単位でデータを削除できる領域を特定できる。
【０１０１】
さらに、画像データのデータ削除の際に、resolution level 0、レイヤ１のデータを残しておくことにより、クライアントの要求がキャッシュされているデータよりも高解像度、高ＳＮＲであり、不足分のデータをサーバからダウンロードする場合にも、キャッシュされているデータを利用して低解像度、低ＳＮＲの画像を一時的に表示することも可能になる。
【０１０２】
さらに、一度キャッシュされたデータが削除された後、ユーザが再び、そのデータを必要とする表示要求を行った場合でも、少なくてもresolution level 0, layer 1のデータが削除されずに保持されているので、再度、削除されたデータを要求している間に、一時的にキャッシュ内に保持されているデータをデコードし表示することができる。
【０１０３】
また、再要求により受信したデータは、キャッシュに再書き込みすることが可能である。
【０１０４】
以上の説明した構成を画像処理方法を実現する工程で表わすと以下のようになる。
【０１０５】
［実施態様１］  入力した符号化データを復号して表示する画像処理方法であって、画像データを構成する断片化された符号化データを入力する入力工程と、符号化データを格納するためのメモリに格納するデータ量の上限値を設定する上限値設定工程と、前記メモリに格納されているデータ量と前記上限値及び前記入力工程で入力した符号化データのデータ量を基に、前記入力工程で入力した符号化データを前記メモリに格納可能かどうかを判定する判定工程と、前記画像データにおける削除対象領域を決定する領域決定工程と、前記判定工程で格納不能と判定されると、前記メモリに格納されているデータの内、前記領域決定工程で決定された前記削除対象領域に含まれるデータを前記断片化されたデータの単位で削除する削除工程と、前記判定工程で前記メモリに格納可能と判定された場合、或は前記削除工程で前記データが削除された後、前記入力工程により入力された前記符号化データを前記メモリに格納するように制御する制御工程と、を有することを特徴とする画像処理方法。
【０１０６】
［実施態様２］  前記メモリはキャッシュメモリであることを特徴とする実施形態１に記載の画像処理方法。
【０１０７】
［実施形態３］  前記入力工程はサーバより送信される断片化された符号化データを受信して入力することを特徴とする実施形態１又は２に記載の画像処理方法。
【０１０８】
［実施形態４］  前記削除工程では、前記メモリに既に記憶されているデータ量と、前記上限値及び前記前記入力工程で入力した符号化データのデータ量を基に、削除すべきデータ量を算出する工程を備えることを特徴とする実施形態１乃至３のいずれかに記載の画像処理方法。
【０１０９】
［実施形態５］  前記領域決定工程では、前記画像データに基づいて表される画像の注目領域を特定し、前記画像の前記注目領域以外の領域を前記削除対象領域とすることを特徴とする実施形態１に記載の画像処理方法。
【０１１０】
［実施形態６］  前記符号化データはＪＰＥＧ２０００の断片化された符号化データであることを特徴とする実施形態１乃至５のいずれかに記載の画像処理方法。
【０１１１】
［実施形態７］  前記注目領域特定工程では、前記入力工程により入力される符号化データの示す画像の種類を取得し、前記画像の種類に応じて前記注目領域を特定することを特徴とする実施形態５に記載の画像処理方法。
【０１１２】
［実施形態８］  前記注目領域特定工程では、前記入力工程により入力される符号化データに基づいて前記注目領域を特定することを特徴とする実施形態５に記載の画像処理方法。
【０１１３】
［実施形態９］  前記削除工程では、前記符号化データをJPEG2000のパケット単位に削除することを特徴とする実施形態６に記載の画像処理方法。
【０１１４】
［実施形態１０］  前記削除工程では、タイル単位でデータを削除し、削除するJPEG2000のパケットは、解像度レベル０、レイヤ１のパケットを除くパケットデータであることを特徴とする実施形態６又は１９に記載の画像処理方法。
【０１１５】
［実施形態１１］  実施形態１乃至１０のいずれか１項に記載の画像処理方法を実行することを特徴とするプログラム。
【０１１６】
［実施形態１２］  実施形態１２に記載のプログラムを記憶したことを特徴とする、コンピュータにより読み取り可能な記憶媒体。
【０１１７】
【発明の効果】
以上説明したように本発明によれば、断片的に入力される符号化データを効率良くメモリに格納して処理できる。
【０１１８】
また本発明によれば、入力した符号化データをメモリに格納できないと判断すると、既にメモリに格納されている符号化データの内画像表示の点で削除可能な領域の符号化データを優先的に削除することにより、画像表示への影響を少なくして、入力した符号化データをメモリに格納できるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るクライアント及びサーバの概略構成を示すブロック図である。
【図２】本実施の形態に係るサーバ及びクライアントのネットワークとの接続形態を説明する図である。
【図３】ＪＰＥＧ２０００符号化データの構成を示す図である。
【図４】ＪＰＥＧ２０００の解像度スケーラビリティを説明する図である。
【図５】本実施の形態に係るサーバ・クライアント間での通信プロトコル例を説明する図である。
【図６】ＪＰＥＧ２０００の解像度スケーラビリティとタイル分割の一例を示す図である。
【図７】サーバにおけるＪＰＥＧ２０００符号化データの構成を説明する図である。
【図８】本発明の実施の形態１に係るクライアントにおけるキャッシュ処理を示すフローチャートである。
【図９】画像の削除領域Ｒの設定方法を説明する図である。
【図１０】図８のステップＳ８０５におけるキャッシュデータの削除処理を示すフローチャートである。
【図１１】本実施の形態のクライアントにおけるタイルＴのキャッシュデータの一例を示す図である。
【図１２】本発明の実施の形態２に係るキャッシュデータの削除処理を示すフローチャートである。
【図１３】本実施の形態における削除領域Ｒにおけるキャッシュデータの削除前のキャッシュデータの一例を示す図である。
【図１４】削除領域Ｒにおけるキャッシュデータの削除例を説明する図である。
【図１５】本発明の実施の形態３に係るクライアントにおける処理を説明するフローチャートである。
【図１６】実施の形態に係るＪＰＥＧ２０００の解像度スケーラビリティと注目領域と削除領域の一例を示す図である。
【図１７】本実施の形態において、削除するキャッシュデータ単位毎にキャッシュデータファイルを作成した場合の例を説明する図である。
【図１８】一つのキャッシュファイル内に複数の削除単位データをキャッシュした場合の例を説明する図である。
【図１９】複数の削除単位データを保存しているキャッシュファイルからキャッシュデータを削除する処理を説明するフローチャートである。
【図１】
0004125087.tif 000002
【図２】
0004125087.tif 000003
【図３】
0004125087.tif 000004
【図４】
0004125087.tif 000005
【図５】
0004125087.tif 000006
【図６】
0004125087.tif 000007
【図７】
0004125087.tif 000008
【図８】
0004125087.tif 000009
【図９】
0004125087.tif 000010
【図１０】
0004125087.tif 000011
【図１１】
0004125087.tif 000012
【図１２】
0004125087.tif 000013
【図１３】
0004125087.tif 000014
【図１４】
0004125087.tif 000015
【図１５】
0004125087.tif 000016
【図１６】
0004125087.tif 000017
【図１７】
0004125087.tif 000018
【図１８】
0004125087.tif 000019
【図１９】
0004125087.tif 000020