JP2004153562A - Image processing method - Google Patents

Image processing method Download PDF

Info

Publication number
JP2004153562A
JP2004153562A JP2002316403A JP2002316403A JP2004153562A JP 2004153562 A JP2004153562 A JP 2004153562A JP 2002316403 A JP2002316403 A JP 2002316403A JP 2002316403 A JP2002316403 A JP 2002316403A JP 2004153562 A JP2004153562 A JP 2004153562A
Authority
JP
Japan
Prior art keywords
data
cache
area
deletion
deleted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002316403A
Other languages
Japanese (ja)
Other versions
JP2004153562A5 (en
JP4109963B2 (en
Inventor
Chie Ishikawa
智恵 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002316403A priority Critical patent/JP4109963B2/en
Priority to US10/353,026 priority patent/US7200272B2/en
Publication of JP2004153562A publication Critical patent/JP2004153562A/en
Publication of JP2004153562A5 publication Critical patent/JP2004153562A5/ja
Application granted granted Critical
Publication of JP4109963B2 publication Critical patent/JP4109963B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storing Facsimile Image Data (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To display an image according to the request from a user while preventing overflow of data in a cache by deleting the cache data which may produce less effect on the regenerated image from the encoded image data in the cache. <P>SOLUTION: An image processing method for regenerating the encoded image data fragmentarily input and cached is presented. When an image area of interest is specified, it is determined whether or not the cache data amount obtained by caching the image data exceeds an allowed amount, caused by modifying the area F of interest. If the cache data amount exceeds the allowed amount, the data amount Y to be deleted from the cache data stored in the cache memory is acquired (S11), and the distance from the area F of interest to a unit area to be deleted is measured. Based on the measured distance, a deletion area R of which data are to be deleted from the cache data is determined on a tile-by-tile basis (S14), and the cache data included in the above determined deletion area R are deleted (S16). <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、例えばサーバからの符号化データされた画像データをクライアントで断片的に受信してキャッシュして表示する技術に関するものである。
【0002】
【従来技術】
インターネット上でWWWサーバにWebブラウザからアクセスして、文書データや画像データ等を閲覧することが盛んに行われている。この仕組みは、インターネット上に情報を公開するWWWサーバと、その情報を閲覧する複数のクライアントがあり、各クライアントはWebブラウザを使用して、そのサーバの情報を閲覧するものである。このWWWサーバは、ホームページ(Home Page)といわれる公開したい情報をHTMLで記述した文書を有しており、それをクライアント側のWebブラウザが取り込んで、クライアントコンピュータに表示する。クライアント側のWebブラウザは、表示しているページ内のリンクを辿って行き、自分が必要な情報を得ることができる。
【0003】
更に、Webサーバが管理しているファイルをダウンロードする方法として、File Transfer Protocol (以下、FTPと略す)という方法がある。このFTPは、ネットワークを通して、サーバ上にあるファイルを1度にクライアントコンピュータに転送する仕組みである。
【0004】
また画像データファイルへ断片的にアクセスして表示するためのプロトコルとして、Flashpix/IIPがある。このIIPは、Flashpixという画像データファイルフォーマットに最適なプロトコルになっており、画像データの部分アクセスの単位はFlashpixのタイル単位に行うものである。
【0005】
一方、このIIPをそのままJPEG2000に適用した場合、JPEG2000の各スケーラビリティの符号化データは、そのスケーラビリティより1つ下のスケーラビリティのデータからの差分データであるため、クライアント側で受信した断片的な符号化データをキャッシュしておく必要がある。
【0006】
【発明が解決しようとする課題】
しかし、断片的な符号化データをクライアント側で全て保存すると、最終的にクライアントが最高解像度、最高SNRで画像全体をブラウズした場合に、サーバのJPEG2000ビットストリームの全データがクライアントにキャッシュされることになる。このことは、メモリ容量が小さい端末では、画像を閲覧している途中にメモリ容量をオーバーし、ユーザの要求に応じた表示が不可能になってしまうという問題がある。更に、JPEG2000は差分データであるので、メモリ容量が飽和し、新たに受信したデータが既にキャッシュされていたデータに上書きされるようなことが生じると、正確な画像表示(ユーザが望む表示)ができなることも起こり得る。
【0007】
本発明は上記従来例に鑑みてなされたもので、キャッシュしている符号化された画像データの内、再生画像に影響の少ないキャッシュデータを削除してキャッシュにおけるデータのオーバフローを防止しながらユーザの要求に応じた表示を行うことを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために本発明の画像処理方法は以下のような手段を備える。即ち、
符号化された画像データを断片的に入力しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する注目領域特定工程と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定工程と、
前記判定工程で越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定工程と、
前記注目領域特定工程で特定された注目領域から削除する単位領域までの距離を測定する距離測定工程と、
前記注目領域と前記距離測定工程で測定された前記距離に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定工程と、
前記削除領域決定工程で決定された前記削除領域に含まれるキャッシュデータを削除する削除工程と、
を有することを特徴とする画像処理方法。
【0009】
【発明の実施形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【0010】
図1は、本実施の形態に係るクライアントやサーバの構成を説明するブロック図で、この装置は例えばパーソナルコンピュータやワークステーション等で構成されていてもよい。
【0011】
CPU101は、システム全体の動作を制御しており、一次記憶102に格納されたプログラムに基づいて各種制御動作を実行する。一次記憶102は主にメモリ(RAM)であり、二次記憶103に記憶されたプログラムなどを読み込んで格納する。二次記憶103は、例えばハードディスクなどがこれに該当する。一般に一次記憶102の容量は二次記憶103の容量よりも小さく、一次記憶102に格納しきれないプログラムやデータなどは二次記憶103に格納される。また、長時間記憶しなければならないデータなども二次記憶103に格納される。本実施の形態では、プログラムを二次記憶103に格納しておき、そのプログラム実行時に一次記憶102に読み込んで格納し、その一次記憶102に記憶されているプログラムに従ってCPU101が処理を行う。入力デバイス104は、例えば、マウスやキーボードなどがこれに該当し、入力デバイス104が操作されることにより、プログラムなどに割り込み信号を発生して、所望のデータの入力を行うのに使用される。出力デバイス105は、例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので、それらの説明を省略する。
【0012】
図2は、本実施の形態に係るネットワークの概略を説明する図である。
【0013】
図において、201,202はそれぞれユーザ(クライアント)を示しており、図1で説明した装置構成を有する。ユーザ201或いは202は、有線、無線を問わず、ネットワーク203を介してサーバ204と通信することが可能である。サーバ204は、図1の構成を有し、二次記憶103に相当する画像ファイルを蓄積する大容量の記憶装置(ハードディスク)205を備えている。大容量の記憶装置205は、例えばハードディスクなどがこれに該当する。このハードディスクには、JPEG2000符号化方式により符号化された画像データが数多く格納されている。ユーザ201,202は、サーバ204が格納しているJPEG2000画像データから、断片化されたデータを受信して保存する。
【0014】
本実施の形態では、既に生成済みのJPEG2000ファイルのデータを断片的に受信し、それらをキャッシュしたクライアントが、それらキャッシュデータを削除する方法について説明する。
【0015】
各ユーザは、Windows(登録商標)マシンを使用してホームページを開いて、そこに書かれているJPEG2000の画像へのリンクをクリック(指示)することで、JPEG2000の画像をユーザの用途に適した画像サイズや解像度で表示するために必要な断片的なデータを取得し、それらのデータをキャッシュする。そして、ユーザのキャッシュ容量の制限値を越えると、キャッシュマネージャのような働きを持つプログラムが動き、ユーザのキャッシュデータを削除する場合を想定する。
【0016】
図3は、一般的なJPEG2000の符号化データを説明する図で、Layer−resolution level−component−position progression(以下、LRCPと記す)に沿って記録されたJPEG2000ファイルの構成を示している。このLRCPに準じた場合、layer / resolution / component / positionの順に記録される。このようなデータの並び方はprogression orderと呼ばれる。
【0017】
図4は、JPEG2000の符号化データにおける解像度(画像サイズ)とResolution番号との関係を示す図である。
【0018】
最も小さい解像度の画像のresolution番号を「0」とし、resolution番号が一つ増加するごとに画像の幅と高さが2倍になっていく。また、各layer内は、resolution番号の小さい順にデータが格納されている。Layer番号は復元する画像の原画に対するS/N比に対応し、layer番号が小さいほどS/N比が悪くなる。一つのJPEG2000ファイル内でのresolution番号とlayer番号、component番号の最大値は、エンコーダによって予め設定され、そのパラメータに従ってエンコードされており、その情報は符号化データの中に格納されている。各パケット(パケット)は、そのパケット内に格納されているコードブロック(code−block)の情報を管理しているパケットヘッダ部と、各code−blockの符号化データを含んでいる。
【0019】
このようなJPEG2000符号化データを使えば、各ユーザは、サーバ204にある全ての画像データを取得しなくても、必要な部分のデータのみをサーバ204から受信することが可能である。ユーザの受信データの単位としては、JPEG2000のパケット、或いはパケットよりも更に小さい符号化単位であるcode−block単位が考えられる。本実施の形態では、ユーザがサーバ204から受信するデータ単位としてパケット単位を想定する。
【0020】
図5は、パケット単位のリクエストおよびレスポンスの概念図を示す図である。
【0021】
ユーザ201は、サーバ204に画像のタイル番号とresolution levelとlayer,component,position番号を指定して、データを要求する。これによりサーバ204は、画像503のコードストリームを解析して、その指定されたタイル番号、resolution levelとlayer,component,position番号に相当するパケットデータを抜き出してユーザ201に送り返す。
【0022】
本実施の形態では、サーバ204にあるオリジナル画像は、最大解像度サイズ2048×2048[画素]、8×8からなる64枚のタイル(Tiles)に分割されており、component数が「3」で、resolution level 0 〜 3,即ち、4つの画像サイズ方向の階層を持っており、2つのlayerに分けられていると仮定する。
【0023】
図6は、オリジナル画像の各階層のデータ構造を説明する図である。
【0024】
図6に示すように、オリジナル画像を構成するそれぞれのタイルには、左上のタイルからシーケンスな番号が振ってある。従って、サーバ204には、図7の701で示すようなデータが保存されている。
【0025】
図7は、サーバ204で管理されているJPEG2000符号化データの構成を説明する図で、703はメインヘッダ、702はタイル0の符号化データを示している。
【0026】
[タイル単位でのデータの削除]
クライアント(ユーザ)201では、サーバ204から送られてきた断片的なJPEG2000ビットストリームをキャッシュする。そしてユーザ201では、データのキャッシュに利用できるメモリ容量を予め把握しておき、サーバ204から送られてきた断片的なJPEG2000ビットストリームのキャッシュデータが、キャッシュメモリ容量を溢れる前にビットストリームを消去する。
【0027】
図8は、本実施の形態に係るユーザ(クライアント)におけるキャッシュ制御処理を示すフローチャートである。
【0028】
まずステップS1で、今回サーバから送られてくる画像データが、画像のどの部分領域に相当するのかを把握し、その表示される画像領域を注目領域Fとして特定する。例えば、図6に示すような画像において、今回のデータの受信が、resolution 3の太枠で示す領域601を表示するためのものである場合、タイル33〜35,41〜43,49〜51の9枚のタイルが注目領域Fとして特定される。
【0029】
次にステップS2に進み、ユーザ201のキャッシュメモリの容量を取得し、キャッシュデータの削除が必要か否かを判断するスレッショルド値を決める。ここでは、受信したJPEG2000のパケットデータをキャッシュするために、利用可能なメモリ容量の100%を充てるのであれば、このスレッショルド値はメモリ容量と等しくなる。しかし、JPEG2000の断片的に受信したビットストリーム以外のデータ(例えば、画像のメタ情報など)も、同じメモリ容量の中に保存する場合には、利用可能なメモリ容量の一部がJPEG2000符号データのキャッシュに利用される。或いは、同じシステムで複数のJPEG2000符号データをキャッシュする場合には、ある画像に利用できるメモリ容量のスレッショルド値は、使用可能なメモリ容量よりも小さな値に設定される。例えば、メモリ容量が3M[バイト]に対して、この画像のキャッシュのスレッショルド値として2M[バイト]の値が設定される。このスレッショルド値を決める場合、ハードディスクなどの2次記憶媒体でも良いが、本実施の形態では、説明を簡単にするために、メモリサイズを基準としてスレッショルド値を決めるものとする。次にステップS3に進み、これらから受信する断片化されたJPEG2000符号データのバイト数を取得する。
【0030】
次にステップS4に進み、ステップS3で取得したバイト数分の受信データをキャッシュするとステップS2で決定されたスレッショルド値を越えてしまうか判断する。つまり、スレッショルドの値から現在キャッシュされているデータ量を引いた値よりも、ステップS3で得られた値が大きければスレッショルド値を越えると判断し、ステップS3で得られた値が小さければスレッショルド値を越えないと判断する。こうしてスレッショルド値を越える判断した場合はステップS5へ進み、越えないと判断した場合ステップS6へ進む。例えば、ステップS2で決定されたスレッショルド値が2M[バイト]、既にキャッシュされているJPEG2000のパケットデータ量が1.95M[バイト]の場合、ステップS3で取得した受信データのバイト数が120K[バイト]であれば、受信データをそのままキャッシュするとスレッショルド値を越えてしまうと判断し、ステップS5へ進むことになる。
【0031】
ステップS5では、ステップS3で取得したバイト数をキャッシュしても、キャッシュ容量がスレッショルド値以下になるように、キャッシュデータの中からタイル(Tile)単位で符号化データを削除する。例えば、ステップS3で取得したバイト数が120K[バイト],ステップS2で決定されたスレッショルド値が2M[バイト]の場合、ステップS5では、2M−120K=1.88M[バイト]以下になるまで、キャッシュデータの削除が行われる。そしてステップS6に進み、受信したデータをキャッシュする。次にステップS7で、この画像に対する要求が終了したか判断する。要求が終了していなければ、ステップS3へ戻り、要求が終了すればこのキャッシュ制御処理を終了する。
【0032】
次に、図8のステップS5のキャッシュデータの削除処理を図9のフローチャートを参照して説明する。図9は、このステップS5の処理を示すフローチャートである。
【0033】
まずステップS11で、キャッシュメモリから削除すべきデータ量Yを取得し、このキャッシュデータの削除処理で削除されたデータ量を計算する変数Delに初期値として「0」を代入する。本実施の形態では、ユーザが既に、画像全体をresolution level 1の最大SNRで表示しており、現在、図6の領域602を最大SNRで、即ち、タイル16〜21,56〜61で囲まれる36枚のタイルの領域をresolution level 2,最大SNRで表示していたとする。このとき、キャッシュメモリには、図7に示す、画像のヘッダ部分のデータ701、全タイルのresolution level 0,resolution level 1を構成するパケットデータ704,705と、領域602の36枚のタイルのresolution level 2を構成するパケットデータ706,708が格納されている。つまり、領域602の36枚のタイルに関しては、図10(B)の1002で示すように、各タイルのヘッダデータ707、各タイルのresolution level 0を構成するパケット群704、および各タイルのresolution level 1を構成するパケット群705と、resolution level 2を構成するパケット群706が、ユーザ201のキャッシュメモリに保存されている。そしてそれ以外のタイルに対しては、図10(A)の1001で示すように、図10(B)の1002で示すキャッシュデータからresolution level 2を構成するパケット群706を除いたのパケットデータがキャッシュされている。これらのデータを合わせたサイズが、1.95M[バイト]、スレッショルド値が2M[バイト]、受信したデータ量が120K[バイト]であった場合、削除すべきデータ量YはY=1.95+0.12−2.0=0.07M[バイト]=70K[バイト]として取得できる。つまり、70K[バイト]以上のデータを削除する必要がある。
【0034】
次にステップS12に進み、図8のステップS1で特定した注目領域Fを取得する。例えば、現在、図6の領域602で示される領域をresolution level 2で表示していたユーザが、タイル42を中心として拡大表示を要求し、領域601をresolution level 3で表示することを望んだ場合、注目領域Fとしてタイル33〜35,41〜43,49〜51の9枚のタイルが取得される。
【0035】
次にステップS13に進み、ステップS12で取得した注目領域Fから遠いタイル群を含む領域をデータ削除領域Rとして取得する。例えば、図6のタイル0〜7で構成される、破線で囲まれた領域603がデータ削除領域Rとして取得される。
【0036】
次にステップS14に進み、ステップS13で取得したデータ削除領域Rに含まれるタイルに対して、データを削除するタイルの順番を決定する。例えば、図6の領域603内部のタイルの場合、データ削除の順番として、右方向のタイルから順に番号を振る。つまりデータ削除順番が一番目のタイルT_del(1)がタイル7、データ削除順番が8番目のタイルT_del(8)がタイル0となる。
【0037】
次にステップS15に進み、データ削除順番をカウントする変数Xに初期値として「1」を代入する。次にステップS16に進み、削除順番がXであるタイルT_del(X)のキャッシュデータの中から、タイルヘッダ部分701とresolution level 0,layer 1のパケットデータを除いた、全てのキャッシュデータを削除する。例えば、X=1でT_del(1)がタイル7であれば、タイル7のキャッシュデータは、図10(A)の1001で示すデータであるので、resolution 1を構成するパケット群705と、resolution 0,layer 2を構成するパケット群1003を削除する。
【0038】
次にステップS17に進み、この削除処理で削除されたデータ量を累積する変数Delに、上述のステップS16で削除したデータ量を加算する。次にステップS18に進み、この削除処理で削除されたデータ量Delと、この削除処理で削除すべきデータ量Yとを比較し、実際に削除したデータ量Delが削除すべきデータ量Yを越えたかどうかを判定し、越えていればこの処理を終了する。一方、まだ越えていない場合にはステップS19に進み、最後にデータを削除したタイルの削除番号Xがデータ削除領域Rに含まれるタイル数Nより小さいかを判断する。タイル数Nよりも削除番号Xが小さければステップS20へ進み、そうでなければ、削除領域Rに含まれる全てのタイルのキャッシュデータを削除したものとみなして、新たな削除領域Rを取得するためにステップS13へ進む。ステップS20では、削除番号Xを一つインクリメントして次の削除番号とする。
【0039】
例えば、削除すべきデータ量Yが70K[バイト]、削除番号1のタイルT_del(1)で削除したデータサイズが50K[バイト]である場合、ステップS17において削除したデータ量Delの値が50K[バイト]になるため、ステップS18では、Y(=70K)>Del(=50K)となりステップS19へ進む。ステップS19では、X(=1)<N(=8)であるのでステップS20に進み、削除番号Xが+1されて「2」に変更され、次にステップS16に進み、T_del(2)であるタイル6のデータが削除されることとなる。
【0040】
[実施の形態1]
次に、図9のステップS13においてデータ削除領域Rを取得する処理について図11のフローチャートを参照して説明する。図11は、本発明の実施の形態1に係るステップS13の削除領域Rを取得する処理を示すフローチャートである。
【0041】
まずステップS31で、図8のステップS1で特定された注目領域Fの中心点を含むタイルT_cenを特定する。図6の領域601で示される注目領域Fに対して、タイル42が、このタイルT_cenとなる。画像の左上のタイルを0行、0列のタイルと定義し、この中心のタイルT_cenをCy行、Cx列で表す場合、タイル42の位置は、Cx=2,Cy=5で表される。次にステップS32に進み、ステップS31で特定された中心タイルT_cenから、キャッシュデータの存在する上下左右の端に位置するタイルまでのタイル数を計算する。つまり、画像の端に位置する行或いは列が、このキャッシュ制御処理で削除領域Rとして既に選ばれ、削除できるキャッシュデータが存在しない場合には、その行或いは列を除いて、タイル数を計算する。
【0042】
これを図12を参照して説明する。
【0043】
図12において、タイル42から上下左右の端までのタイル数をそれぞれN_up,N_down,N_left,N_rightとすると、まだ、一度も削除領域Rの選択がなされていない場合には、
N_up=Cy, N_down=画像の最大行番号−Cy
N_left=Cx,N_right=画像の最大列番号−Cx
として計算する。もし、画像の0行からX行が既にデータ削除領域Rとして選択されており、削除すべきデータがない場合には、N_upからXを引いて調整する。同様に、画像の最も下の位置にある行が削除されている場合にはN_downを、画像の左端及び右端の数列が削除されている場合には、それぞれN_left,N_rightから、既にデータ削除を行った列数を引いて調整する。従って、まだ一度も削除領域Rの指定が行われていない場合、注目領域601に対しては、N_up=5,N_down=2,N_left=2,N_right=5となる。
【0044】
次にステップS33に進み、N_maxとして、ステップS33で得られた4つの値、N_up,N_down,N_right,N_leftの中から最も大きい値を持つ変数を取得する。ここでは、注目領域601に対してN_upとN_rightが共に「5」であり最大値となっている。
【0045】
次にステップS34に進み、ステップS33で得られた最大値を持つ変数(N_up,N_right)から中心タイルT_cenから画像端までのタイル数が最も多い方向を決定する。いま最大値を持つ変数としてN_upが選ばれた場合は、この方向は、画像の上方向、即ち、行番号の小さくなる方向になる。またN_rightが選ばれた場合は、この方向は、画像の右方向、即ち列番号が大きくなる方向になる。それ以外に、例えば例として、N_downが選ばれた場合には、画像の下方向、即ち行番号の大きくなる方向になり、N_leftが選ばれた場合は、画像の左方向、即ち列番号が小さくなる方向になる。但し、上述のように、N_maxに該当する変数が2つある場合、次のような3つの条件を設ける。
【0046】
1.N_up,N_downは、N_right,N_leftに優先する。
【0047】
2.N_upは、N_downに優先する。
【0048】
3.N_leftは、N_rightに優先する。
【0049】
即ち、水平方向の値よりも垂直方向の値が優先し、列、行共に番号が小さくなる方向が優先する。従って、上述の注目領域601では、N_maxとしてN_upとN_rightが該当していたが、垂直方向のN_upが優先的に選ばれる。
【0050】
次にステップS35に進み、ステップS34で選ばれた方向を基に、キャッシュデータを削除する行又は列をデータ削除領域Rとして決定する。但し、ここではステップS34で、上述のようにして、N_upが選ばれた場合には、図12に示す領域1201で示される行が削除領域Rとして決定される。またN_downが選ばれた場合には、領域1202で示される行が削除領域Rとして決定される。更に、N_leftが選ばれた場合には、領域1203が削除領域Rとして決定され、N_rightが選ばれた場合は、領域1204が削除領域Rとして決定される。
【0051】
従って、このステップS35では、ステップS34でN_upが選ばれているので、注目領域601に対して、領域1201に該当する一番上の行が削除領域Rとして決定されることになる。
【0052】
こうして図9のステップS14に進み、データ削除領域Rの中でデータを削除する順番として、基本的に、注目領域Fからなるべく離れたタイルからデータを削除するように番号が付される。
【0053】
図13は、キャッシュデータを削除する順番を決定する方法(ステップS14:図9)を説明するフローチャートである。
【0054】
まずステップS41で、図11のステップS33において、N_maxに該当する値として、N_up,N_down,N_right,N_leftの中のどの値が選ばれたのかをみる。もしN_maxとして、N_up又はN_downのいずれかが選ばれた場合には、ステップS42へ進み、N_right又はN_leftのいずれかが選ばれた場合にはステップS45へ進む。つまり、削除領域Rとして、行方向のタイル群が選ばれた場合にはステップS42へ進み、列方向のタイル群が選ばれた場合にはステップS45へ進むことになる。本実施の形態1では、N_maxとしてN_upが選ばれているのでステップS42へ進む。
【0055】
ステップS42では、N_rightとN_leftの値を比較し、どちらの値が大きいのか判断する。N_rightの値が大きければステップS43へ、N_leftの値が大きければステップS44へ進む。つまり、右側のタイルの数が多ければステップS43へ、左側のタイル数が多ければステップS44へ進む。ステップS43に進んだ場合は、削除領域Rとして、横方向に並ぶタイルの行が選ばれており、かつ、注目領域Fが左側に寄っているため、削除領域Rの右端のタイルから左方向へ順にデータ削除番号を振る。一方、ステップS44に進んだ場合は、削除領域Rとして、横方向に並ぶタイルの行が選ばれており、かつ、注目領域が右側に寄っているため、削除領域Rの左端のタイルから右方向へ順にデータ削除番号を振る。
【0056】
本実施の形態1では、N_left=2,N_right=5であるので、ステップS42からステップS43に進み、削除領域Rである図12の領域1201において、タイル7から順に左方向へデータ削除の順番が振られることになる。つまり、タイル7が削除データ番号「1」、タイル6が削除データ番号「2」、以下同様に番号を振り、タイル0が削除データ番号「8」となる。
【0057】
またステップS41からステップS45に進んだ場合は、N_downとN_upの値を比較し、どちらの値が大きいのか判断する。N_downの方が大きい場合はステップS46へ、N_upの方が大きい場合にはステップS47へ進む。つまり、注目領域Fより下にあるタイルの行数が多ければステップS46へ、注目領域Fより上側にあるタイルの行数が大きければステップS47へ進む。ステップS46に進んだ場合は、削除領域Rとして縦方向に並ぶタイルの列が選ばれており、かつ、注目領域Fが上側に寄っているため、削除領域Rの下端のタイルから上方向へ順にデータ削除番号を振る。一方、ステップS47に進んだ場合は、削除領域Rとして縦方向に並ぶタイルの列が選ばれており、かつ、注目領域Fが下側に寄っているため、削除領域Rの上端のタイルから下方向へ順にデータ削除番号を振る。
【0058】
従って、本実施の形態1の場合、削除領域Rは、タイル0〜7が含まれている行であり、削除順番「1」がタイル7、削除順番「2」がタイル6、以下順に左方向に順に削除順番が付され、削除番号「8」がタイル0となっている。
【0059】
図14(A)(B)は、この削除領域Rのタイルデータがキャッシュされている状態を説明する図である。この図14(A)の1402で示すように各タイルがresolution level 2,layer 2までのデータでキャッシュされているとすると、120K[バイト]のデータを削除するためには、図14に示すタイル7,6,5のキャッシュデータの中で、1402で示す合計165K[バイト]のデータを削除することになる。従って、削除後のキャッシュデータは、図16(A)の1601に示すような状態になる。
【0060】
このようなデータ削除方法を取ることにより、現在の表示に重要な注目領域に相当する部分領域のタイルのデータは保持され、現在の表示に対して、比較的重要度の低いと考えられる、注目領域から遠いタイルからキャッシュデータが削除される。
【0061】
また、タイル毎に一番データ量の少ないresolution level 0,layer 1のデータ以外のパケットデータを削除するため、キャッシュメモリに大容量の空エリアを設けることが可能になり、削除データの計算による負荷が軽減される。
【0062】
また、各タイルのresolution level 0,layer 1のデータを削除せずに保持しておくことで、全くデータがキャッシュされていないタイルがなくなる。これにより、より高解像度の画像表示が要求されても、保持しているデータからデコードされた画像を一時的に拡大して表示することで、その画像表示の要求後、その領域の画像データを受信するまで、全く画像が表示されない事態が発生するのを防止できる。またいつでも、画像全体を把握できる画像を直ちに表示できるという効果もある。
【0063】
上述したキャッシュデータを削除の順番は、上記実施の形態で示したものに固定するものではなく、それ以外の順をつけても良いことは容易に推察できる。
【0064】
また、本実施の形態1では説明を簡単にするために、タイル単位で削除領域を特定したが、本発明はこれに限定されるものでなく、例えば、Precinctやcode−block単位としてもよい。Precinctの場合は、データの削除単位はタイルと同様にパケットとなり、code−blockの場合には、そのコードブロックのデータを構成するサブバンドからなる符号データが単位となる。
【0065】
[実施の形態2]
[特定したタイルのパケット単位でのデータ削除]
前述の実施の形態1では、注目領域から遠いタイルで構成される行又は列を削除領域Rとして指定し、その中のタイルに対して、削除順番を割り当て、その削除領域Rのタイルを、その削除順番に従って一枚ずつ、resolution level 0,layer 1のデータを除いた全てのパケットデータを削除した。
【0066】
しかし、削除対象として特定されたタイルのキャッシュデータに含まれるresolution level 0,layer 1を除く全てのパケットを単位としてではなく、領域内に含まれる全てのタイルに対して全体的なSNRや解像度を低くし、キャッシュデータ量を削減する方法も考えられる。この場合、前述の実施の形態1と異なるのは、図9のデータ削除処理におけるステップS16以下である。
【0067】
図15は、この実施の形態2に係る削除処理を説明するフローチャートで、前述の図9と同じ動作をするステップには図9と同じ番号を付して、その説明を省略する。
【0068】
また本実施の形態2では、ユーザが既に画像全体を、resolution level 2の最大SNRのデータとして既にキャッシュしているものとする。従って、キャッシュメモリには、画像のヘッダ部分のデータ701と全タイルに対して、図10(B)の1002で示すように、各タイルのヘッダデータ707、各タイルのresolution level 0を構成するパケット群704、及び各タイルのresolution level1を構成するパケット群705(図10(A))と、resolution level 2を構成するパケット群706が、ユーザ201のキャッシュメモリに保存されている。また、図6の領域602をresolution level 2で表示していたユーザが、タイル42を中心として拡大表示を要求し、領域601をresolution level 3で表示することを望み、注目領域Fとしてタイル33〜35,41〜43,49〜51の9枚のタイルが取得されているものとする。ステップS11からステップS14は、実施の形態1の図9と同様である。
【0069】
つまり、ステップS11では、キャッシュから削除すべきデータ量Yを取得し、今回のデータ削除処理で削除されるデータ量を累積する変数Delに「0」を代入する。ステップS12では、ステップS1で特定した注目領域Fを取得する。ステップS13では、ステップS12で取得した注目領域Fから遠いタイル群を含む領域をデータ削除領域Rとして取得する。本実施の形態2の場合、図6の領域603が削除領域Rとして取得される。そしてステップS14では、ステップS13で取得したデータ削除領域Rに含まれるタイルに対して、データの削除を行う順番を決定する。本実施の形態2の場合、削除順番「1」がタイル7、削除順番「2」がタイル6、以下、タイル5、タイル4…の順に削除順番が振られ、削除順番「8」がタイル0となっている。
【0070】
ステップS51では、データ削除領域Rの中で、キャッシュされている解像度が最も高いタイル群TRを特定する。本実施の形態2では、領域603で示される削除領域Rに含まれるタイルは全て同じresolution level 2までキャッシュされているので、タイル群TRと削除領域Rとは一致している。次にステップS52に進み、ステップS51で特定されたタイル群TRの中でデータの削除順番が小さいタイルTR_delを特定する。
【0071】
本実施の形態2では、削除領域Rとタイル群TRとが等しいので、データ削除順番の一番小さいタイル7がTR_delとして特定される。次にステップS53に進み、タイルTR_delの最高解像度のデータを削除する。ここでTR_delであるタイル7において、キャッシュされている最高解像度のデータはresolution level 2の706(図7)であるので、このデータ706がキャッシュから削除される。従って、タイル7のキャッシュデータは、図10(B)の1002の状態から図10(A)の1001で示す状態になる。
【0072】
次にステップS17に進み、この削除処理で削除されたデータ量を累積する変数Delに、ステップS53で削除したデータ量を加算する。次にステップS18に進み、削除されたデータ量Delと、削除すべきデータ量Yとを比較し、実際に削除したデータ量Delが削除すべき量Yを越えたかどうかを調べ、越えた時はこの処理を終了する。
【0073】
一方、まだ越えていない場合はステップS54に進み、ステップS51で特定されたタイル群TRから、ステップS53で最高解像度のキャッシュデータを削除したタイルTR_delを外す。つまり、タイル7はタイル群TRから外され、このタイル群TRには、タイル0からタイル6までの7枚のタイルが残ることになる。次にステップS55に進み、タイル群TRが空集合になったかどうかを判断する。まだ、タイル群TRに含まれるタイルが残っている場合はステップS52へ戻り、次のTR_delを特定して、前述した処理を実行する。
【0074】
一方、タイル群TRに含まれるタイルが一枚も無くなるステップS56に進み、削除領域Rに含まれる全てのタイルのキャッシュデータとして、resolution level 0,layer 1のみになっているかどうかを判断する。ここで全てのタイルのキャッシュデータがresolution level 0,layer 1である場合は、もはや、この削除領域Rの中に削除できるキャッシュデータがないと判断してステップS13へ戻り、次のデータ削除領域Rを取得する。一方、ステップS56で、削除領域Rの中のキャッシュデータがresolution level 0,layer 1のみではない場合はまだ削除できるキャッシュデータがあると判断してステップS51に戻り、前述した処理を実行する。
【0075】
上述の実施の形態2によれば、削除領域Rがタイル0〜7が含まれている行であり、削除順番「1」がタイル7、削除順番「2」がタイル6、以下順に左方向に順に削除順番「8」がタイル0となっている。そして、図14(A)の1402で示すように、各タイルがresolution level 2,layer 2までのデータをキャッシュしていたとすると、120K[バイト]のデータを削除するためには、タイル7,6,5,4のキャッシュデータのうち、resolution level 2のデータを削除する。即ち、30K[バイト]×4タイル=120K[バイト]のデータが削除され、キャッシュデータは、図16(B)の1602で示すような状態になる。
【0076】
従って、この実施の形態2によれば、削除領域Rに含まれる全てのタイルから解像度方向に少しずつデータを削除するため、削除領域Rに含まれる領域を閲覧しても、その領域に含まれる各タイルの符号化データがより多く残っている可能性が高くなり、新たに要求された画像に対応して要求されるパケットデータの数を減らすことも可能になる。
【0077】
また本実施の形態2では、削除領域Rのデータを解像度方向に削除する場合で説明したが、SNR方向に削除する方法でも本質的には同様に実現できる。その場合、ステップS51で特定されるタイル群TRは最もSNRが高い、即ち、キャッシュされているlayerが多いタイルの集合である。また、ステップS53では、タイルTR_delの中で最高SNRのデータが削除される。例えば、図10(B)の1002で示すようなキャッシュデータがある場合、タイルの中で最も高いSNRのデータが削除されるので、layer 2を構成するパケットデータ1006,1005,1004(図10(B))が消去されることになる。
【0078】
またresolution level のデータを削除する場合の削除データ量と、SNRのデータを削除する場合の削除データ量を比較し、削除データ量が大きい方を削除する場合も本質的には同様に実現できる。例えば、図10(B)の1002で示される18個のパケットが保存されている時、resolution level方向で削除する場合には、図7の706で示される6個のパケットを削除することになり、layer方向で削除する場合には、1004,1005,1006で示される9個のパケットを削除することになる。そこで、図7の706で示す6個のパケットのデータ量と、1004,1005,1006の9個のパケットのデータ量とを比較し、データ量が大きい方を削除することとなる。
【0079】
また、本実施の形態2では、説明を簡単にするために、タイル単位で削除領域を特定したが、本発明はこれに限定されるものでなく、例えばPrecinctやcode−blockの単位でも、同様の考え方に基づいたキャッシュデータの削除を行うことができる。例えば、Precinctを単位とした場合は、データの削除単位はタイルと同様にパケットとなり、code−blockの場合には、そのコードブロックのデータを構成するサブバンドからなる符号データが単位となる。
【0080】
[実施の形態3]
[表示に利用された最後の時間が最も古いタイルのデータから削除]
前述の実施の形態1,2では、純粋に、注目領域Fからの距離だけで、キャッシュデータを削除するタイルを選択していた。しかし、最後に表示に利用された時刻をタイル毎に保存しておき、最もアクセスされた時間が古いタイルを削除データ領域として定める様にしてもよい。このように表示された時刻によって削除するためには、タイル毎にその表示に使用された時刻を管理する時間管理テーブルが必要となる。
【0081】
図17は、本発明の実施の形態3に係る管理テーブルの作成処理を説明するフローチャートである。
【0082】
ステップS61で、サーバ204に対して閲覧したいJPEG2000画像のメインヘッダ(main header)701を要求し、それに応答してサーバ204から送られるメインヘッダを受信する。次にステップS62に進み、その受信したメインヘッダを解析し、閲覧したいJPEG2000画像を構成しているタイル数を計算する。これはメインヘッダ701のSIZマーカに記されている最高解像度の画像サイズを表すパラメータXsiz(1801),Ysiz(1802)及び最高解像度時のタイルサイズを表すパラメータXTsiz(1803),YTsiz(1804)により計算できる。
【0083】
本実施の形態3では、図6に示すように、2048×2048[画素]のオリジナル画像を256×256[画素]のタイルで分割しているので、横方向に(2048÷256=)8タイル、縦方向にも同様に(2048÷256=)8タイルが配列されているので、合計(8×8=)64枚のタイルと計算される。
【0084】
次にステップS63に進み、ステップS62で計算されたタイル数を基に、各タイルのアクセス管理テーブルを作成する。例えば、図19(A)の1901で示すようなアクセス管理テーブルが作成される。初期状態では、まだ画像の表示にどのタイルも利用されていないので、全てのタイルの「Last Access Time(最新アクセス時刻)」には、初期値、例えばNULLが入っている。
【0085】
次にステップS64に進み、ユーザの表示要求に応じて、パケットデータを要求する。例えば、全てのタイルに対して、resolution level 1,layer 2までのデータを要求する。次にステップS65に進み、ステップS64で要求されたタイルに関して、アクセス管理テーブルを更新する。例えば、全てのタイルに対して、resolution level 1,layer 1のデータを要求した場合、図19(B)の1902で示すように、全てのタイルに対して、テーブルの「Last Access Time」の項目が、そのアクセス要求がなされた時刻「10:22:34」に更新される。
【0086】
次にステップS66に進み、ステップS64で要求されたパケットデータに関して、サーバ204に要求を発行する必要があるかどうかを判断する。既に、キャッシュ済みのパケットデータでステップS64の要求に応えることができ、サーバ204にデータの要求を発行しないならステップS69へ進む。
【0087】
キャッシュされたデータだけではステップS64の要求に応えることができない場合はステップS67へ進む。例えば、最初の画像表示の段階では、まだ、どのタイルのパケットデータも受信されていないので、サーバ204にデータを要求する必要があるためステップS67へ進むことになる。このステップS67では、サーバ204にパケットデータを要求し、それに応答して送られてくるパケットデータを受信する。次にステップS68に進み、ステップS67で受信したデータをキャッシュする。次にステップS69に進み、そのキャッシュデータから作成されるJPEG2000ビットストリームをデコードして表示する。次にステップS70に進み、この画像に対する要求が終わったかどうかを判断し、要求がまだ続くならステップS64へ戻り、この画像への要求が終了したなら、この処理フローを終了する。
【0088】
図20は、図17のステップS68のキャッシュ制御処理を示すフローチャートである。このフローチャートにおいて、前述の実施の形態1の図8のフローチャートと異なるのは、アクセス管理テーブルの値を基に、削除するべきタイルを特定する点である。従って、図20のステップで図8と同様の動作をするものには図8と同じ番号を付している。
【0089】
まずステップS2は、ユーザ201のメモリ容量を取得し、キャッシュデータの削除が必要か否かを判断するスレッショルド値を決める。次にステップS3で、受信する断片化されたJPEG2000符号データのバイト数を取得する。次にステップS4に進み、ステップS3で取得した受信データのバイト数をキャッシュすると、ステップS2で決定されたスレッショルド値を越えてしまうか判断する。つまり、スレッショルドの値から現在キャッシュされているデータ量を引いた値よりも、ステップS3で得られた値が大きければ、スレッショルド値を越えると判断し、ステップS3で得られた値が小さければ、スレッショルド値を越えないと判断する。スレッショルド値を越える判断した場合はステップS71に進み、越えないと判断した場合ステップS6へ進む。
【0090】
ステップS71では、削除すべきデータ量Yを算出し、更に、実際に削除したデータ量を累積する変数Delに「0」を代入して初期化する。次にステップS72に進み、図19(C)に示すようなアクセス管理テーブルを参照し、それぞれのタイルについて、最後に利用された時刻を比較し、利用された時刻が現在の時刻から最も遠いもの、つまりアクセス時刻が最も古いタイル群Xを特定する。例えば、画像全体をresolution level 1で表示した後、図6の領域602をresolution level 2に拡大表示した場合、図19(C)の1903で示すように、アクセス管理テーブルにおけるタイル16〜21、タイル24〜29、タイル32〜37、タイル40〜45、タイル48〜53および、タイル56〜61の36枚のタイルに関しては、最後にアクセスされた時刻が更新される。そのため、残りの28枚のタイルはアクセス時刻が古いタイル群Xとして特定されることになる。
【0091】
次にステップS73に進み、ステップS72で特定されたタイル群Xの中から最もタイル番号の若いタイルAを特定し、そのタイルをキャッシュデータを削除する対象のタイル候補とする。例えば、図6の領域602を除く領域がタイル群Xとして特定されている場合には、その中でも最もタイル番号が若いタイル0がタイルAとして特定される。
【0092】
次にステップS5に進み、前述の実施の形態1と同様に、ステップS3で取得したバイト数をキャッシュしても、キャッシュ容量がスレッショルド値以下になるように、タイルAのキャッシュデータの中からresolution level 0,layer 1を形成するパケットを除いた全てのキャッシュデータを削除する。次にステップS74に進み、ステップS5で削除したデータ量を、実際に削除したデータ量を累積している変数Delに加算する。次にステップS75に進み、削除すべきデータ量Yと削除したデータ量Delとを比較し、削除すべきデータ量Yより削除したデータ量Delの方が大きければステップS6へ進んで、次に受信するデータをキャッシュする。
【0093】
一方、ステップS75で、削除したデータ量Delの方が小さければステップS76へ進み、ステップS5でキャッシュデータを削除したタイルAをタイル群Xから外し、次にステップS73に戻って、タイルAを特定し直す。
【0094】
尚、本実施の形態3では、アクセス管理テーブルとして、図19(A)乃至(C)に示すようなテーブルを用いたが、このテーブルに限るものではない。
【0095】
また、本実施の形態3では説明を簡単にするために、タイル単位で削除領域を特定したが、本発明はこれに限定されるものでなく、例えば、Precinctやcode−blockでも同様の考え方に基づいたキャッシュデータの削除を行うことができる。例えば、Precinctの場合は、データの削除単位はタイルと同様にパケットとなり、code−blockの場合には、そのコードブロックのデータを構成するサブバンドからなる符号データが単位となる。
【0096】
更に、本実施の形態3では、最後にアクセスされた時刻を保存し、その時刻に基づいてキャッシュデータを削除するタイルを特定したが、前述の実施の形態1乃至3のそれぞれと組み合わせて利用することも可能である。つまり、ステップS71で特定されたタイル群Xから、ステップS72において、キャッシュデータを削除するタイルAを選ぶときに、前述の実施の形態1で行ったように、注目領域Fから最も離れたタイルをタイルAと特定しても良い。
【0097】
また、キャッシュデータを削除する単位も、前述の実施の形態2のように、ステップS72で特定されたタイルAのキャッシュデータから、最も解像度の高いデータのみを削除する、或いは、最もSNRが高いデータのみを削除するということも可能である。
【0098】
また、実施の形態1乃至3におけるキャッシュ方法については、キャッシュされている各パケットデータを個別に削除できるような方法であれば、どのような方法でキャッシュされていても構わない。
【0099】
[実施の形態4]
まず最初に上述した実施の形態1〜3にも適用される全体の処理の流れについて、図23のフローチャートを参照して説明する。この処理は、前述のユーザ201(202)からサーバ204に対して表示要求を発行することにより実行される処理で、前述したキャッシュ処理の前提となるものである。
【0100】
まずステップS81で、ユーザからの表示要求を受け付ける。本実施の形態4の場合、図6に示す領域601を、最大SNR、resolution level 3で表示することがユーザによる表示要求とする。次にステップS82に進み、ステップS81で受け付けた要求とキャッシュデータを比較し、要求を満たすために充分なデータがキャッシュの中に保存されているかどうか判定する。キャッシュ内に必要なデータが全て含まれていればステップS87に進み、そのキャッシュされているデータを用いて画像を表示する。しかし、その表示要求に応じた画像を表示するために不足しているデータがあればステップS83に進んで、サーバ204に対して、その不足している分の画像データを要求する。
【0101】
本実施の形態4では、キャッシュメモリには、画像のヘッダ部分のデータ701、タイル16〜21、56〜61で囲まれる領域602の36枚のタイルからなり、resolution level 2を構成する図10(B)の1002で示されるデータ群、及びそれ以外のタイルに関しては、図10(A)の1001で示されるデータ群がキャッシュされている。従って、ステップS81で取得した表示要求を満たすためには、領域601に含まれるタイル33〜35,41〜43,49〜51からなる9枚のタイルのresolution level 3,layer 2のパケットデータ群708が不足しているのでステップS83に進むことになる。
【0102】
ステップS83では、これら不足しているデータをサーバ204に要求するためのリクエストを作成する。本実施の形態4では、領域601に含まれる9枚のタイルのresolution level 3,layer 2を形成するパケット群708を要求するためのリクエストが作成される。次にステップS84に進み、ステップS83で作成したリクエストをサーバ204に発行する。次にステップS85に進み、サーバ204からのレスポンスデータを受信する。次にステップS86に進み、ステップS85で受信したデータをキャッシュする。そしてステップS87に進み、そのキャッシュしたデータを使って画像の表示処理を行う。これにより、本実施の形態4では、領域601がresolution level 3,layer 2で表示されることになる。
【0103】
また上述の実施の形態におけるキャッシュ方法については、キャッシュされている各パケットデータを個別に削除できるような方法であれば、どのような方法でキャッシュされていても構わない。しかし、どのようなキャッシュ方法であっても、キャッシュ容量を制限以内に抑えることが目的であるため、物理的にデータをメモリ上から削除する必要がある。
【0104】
例えば、図21に示すように、タイル、パケット、コードブロックといったそれぞれのデータの削除単位毎に一つのファイルを形成し、更に、それらを管理する管理ファイルを作成し、キャッシュデータの削除の際には、該当するデータをキャッシュしているファイルを削除し、管理ファイルを更新するといった方法が考えられる。このようなキャッシュ作成方法の場合、物理的にキャッシュデータをキャッシュメモリから容易に削除することが可能である。
【0105】
また、図22(A)の2201で示すように、タイル、パケット、コードブロックといった削除単位を複数まとめて一つのファイルで保存する方法でもよい。その場合、一つのファイルでキャッシュデータを管理するため、データの管理が簡単になる反面、削除対象となるデータを消去するためには、図22(B)の2203で示すように、データを消去した後に物理的に残ってしまう空白部分を削除することが必要になる。従って、図22の例では、Tile N,Packet Kが保存されていた2203に該当するY[バイト]分だけ、それ以降のデータを前に移動させる必要がある。
【0106】
図24は、この場合のキャッシュデータ削除処理の流れを説明するフローチャートである。
【0107】
まずステップS91で、データを削除するキャッシュのファイル名を保存しておく。例えば、データを削除するキャッシュファイル名が「abc.iip2k」であれば、その名称を保存しておく。次にステップS92に進み、Tempファイルを作成する。このTempファイルが最終的にはキャッシュデータ削除後のファイルとなるのだが、同一の名称を避けるために、例えば「temp.iip2k」や「abc_tmp.iip2k」というような仮の名前を付けたファイルを作成する。ここでは、「temp.iip2k」とする。
【0108】
次にステップS93に進み、データを削除したいキャッシュファイルをオープンする。次にステップS94に進み、その削除対象のキャッシュデータまでのオフセット値Vと削除データの長さLを取得する。
【0109】
図22の例では、Tile N,Packet Kのデータを削除したいので、V=X[バイト],L=Y[バイト]となる。次にステップS95に進み、キャッシュファイルの先頭からV[バイト]のデータをTempファイルの先頭からコピーする。従って、キャッシュ管理データ2204を含めたデータをTempファイルにコピーすることになる。次にステップS96に進み、キャッシュファイルの先頭から(V+L)[バイト]目からキャッシュファイルの終わりまでを、ステップS95でコピーしたTempファイルの後ろにコピーする。次にステップS97に進み、Tempファイル、キャッシュファイル共にファイルをクローズする。そしてステップS98に進み、キャッシュファイルを削除する。従って、この時点で「abc.iip2k」が削除され、Tempファイルのファイル「temp.iip2k」にキャッシュデータが保存されていることになる。次にステップS99に進み、そのTempファイルの名前を、ステップS91で保存したファイル名、例えば、この例では「abc.iip2k」に変更する。
【0110】
これにより、物理的にファイルサイズを小さくすることが可能である。但し、この方法を取る場合には、ステップS97において、一時的にでもほぼ同じサイズのファイルが2つキャッシュメモリの中に存在することになる。従って、図8のステップS1でキャッシュ用メモリ容量からスレッショルド値を決定する際に、この点を考慮し、スレッショルド値として、使用可能なメモリ容量の約半分の値を設定する必要がある。この他にも様々なキャッシュ作成方法が考えられるが、本件の主願ではないので省略する。
【0111】
以上説明したように本実施の形態4によれば、キャッシュされた断片的な符号データを効率良く削除することができ、オリジナル画像を閲覧する際に、オリジナル画像の符号データ量と同じ大きさのメモリ容量を必要としない。
【0112】
キャッシュされたデータが削除された後、ユーザが再び、そのデータを必要とする表示要求を行った場合でも、少なくともresolution level 0, layer 1のデータが削除されずに保持されているので、データを要求している間に、一時的にキャッシュに保持されているデータをデコードして表示することができる。
【0113】
[他の実施の形態]
本発明の目的は前述したように、本実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM,CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0114】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【0115】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【0116】
上述した本実施の形態に係る画像処理装置及びその方法は、以下の実施態様で表わすことが出来る。
【0117】
[実施態様1] 符号化された画像データを断片的に入力しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する注目領域特定工程と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定工程と、
前記判定工程で越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定工程と、
前記注目領域特定工程で特定された注目領域から削除する単位領域までの距離を測定する距離測定工程と、
前記注目領域と前記距離測定工程で測定された前記距離に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定工程と、
前記削除領域決定工程で決定された前記削除領域に含まれるキャッシュデータを削除する削除工程と、
を有することを特徴とする画像処理方法。
【0118】
[実施態様2] 符号化された画像データを断片的に入力しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する注目領域特定工程と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定工程と、
前記判定工程で越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定工程と、
前記画像データを構成する単位領域の使用状況を管理するアクセス時間管理工程と、
前記注目領域と前記使用状況に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定工程と、
前記削除領域決定工程で決定された前記削除領域に含まれるキャッシュデータを削除する削除工程と、
を有することを特徴とする画像処理方法。
【0119】
[実施態様3] 前記判定工程では、前記画像データをキャッシュするキャッシュメモリの残量と、前記変更された注目領域を表示するためのデータ量とに基づいて前記キャッシュメモリの許容量を越えるかどうかを判定することを特徴とする実施態様1又は2に記載の画像処理装置。
【0120】
[実施態様4] 前記画像データはISO/IEC−15444に準拠したJPEG2000符号化データであることを特徴とする実施態様1乃至3のいずれか1項に記載の画像処理方法。
【0121】
[実施態様5] 前記画像データは、JPEG2000の断片化されたパケット単位に入力されることを特徴とする実施態様4に記載の画像処理方法。
【0122】
[実施態様6] 前記単位領域は、JPEG2000のタイルに相当することを特徴とする実施態様4に記載の画像処理方法。
【0123】
[実施態様7] 前記削除工程では、パケット単位で削除することを特徴とする実施態様4又は5に記載の画像処理方法。
【0124】
[実施態様8] 前記削除工程では、前記削除領域のresolution level 0,layer 1のパケットを除く全てのパケットのデータを削除することを特徴とする実施態様4又は5に記載の画像処理方法。
【0125】
[実施態様9] 前記単位領域は、resolution level 0,layer 1を除くパケットであり、パケット単位で選択し1回以上数回に分けて削除されることを特徴とする実施態様8に記載の画像処理方法。
【0126】
[実施態様10] 前記単位領域は、JPEG2000のプリシンクト(precinct)であることを特徴とする実施態様4又は5に記載の画像処理方法。
【0127】
[実施態様11] 前記プリシンクトは、前記削除工程でパケット単位に削除されることを特徴とする実施態様10に記載の画像処理方法。
【0128】
[実施態様12] 前記単位領域は、JPEG2000のコードブロック(code−block)であることを特徴とする実施態様4又は5に記載の画像処理方法。
【0129】
[実施態様13] 前記単位領域は、同じresolution、同じlayerを構成するために必要なサブバンドからLL成分を除いたデータから構成されるcode−blockのデータであることを特徴とする実施態様12に記載の画像処理方法。
【0130】
[実施態様14] 符号化された画像データを断片的に入力しキャッシュして再生する画像処理装置であって、
画像の注目領域を特定する注目領域特定手段と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定手段と、
前記判定手段により越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定手段と、
前記注目領域特定手段により特定された注目領域から削除する単位領域までの距離を測定する距離測定手段と、
前記注目領域と前記距離測定手段により測定された前記距離に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定手段と、
前記削除領域決定手段により決定された前記削除領域に含まれるキャッシュデータを削除する削除手段と、
を有することを特徴とする画像処理装置。
【0131】
[実施態様15] 符号化された画像データを断片的に入力しキャッシュして再生する画像処理装置であって、
画像の注目領域を特定する注目領域特定手段と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定手段と、
前記判定手段により越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定手段と、
前記画像データを構成する単位領域の使用状況を管理するアクセス時間管理手段と、
前記注目領域と前記使用状況に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定手段と、
前記削除領域決定手段により決定された前記削除領域に含まれるキャッシュデータを削除する削除手段と、
を有することを特徴とする画像処理装置。
【0132】
[実施態様16] 前記判定手段では、前記画像データをキャッシュするキャッシュメモリの残量と、前記変更された注目領域を表示するためのデータ量とに基づいて前記キャッシュメモリの許容量を越えるかどうかを判定することを特徴とする実施態様14又は15に記載の画像処理装置。
【0133】
[実施態様17] 前記画像データはISO/IEC−15444に準拠したJPEG2000符号化データであることを特徴とする実施態様14乃至16のいずれか1項に記載の画像処理装置。
【0134】
[実施態様18] 前記画像データは、JPEG2000の断片化されたパケット単位に入力されることを特徴とする実施態様17に記載の画像処理装置。
【0135】
[実施態様19] 前記単位領域は、JPEG2000のタイルに相当することを特徴とする実施態様17に記載の画像処理装置。
【0136】
[実施態様20] 前記削除手段は、パケット単位で削除することを特徴とする実施態様17又は18に記載の画像処理装置。
【0137】
[実施態様21] 前記削除手段は、前記削除領域のresolution level 0,layer 1のパケットを除く全てのパケットのデータを削除することを特徴とする実施態様17又は18に記載の画像処理装置。
【0138】
[実施態様22] 前記単位領域は、resolution level 0,layer 1を除くパケットであり、パケット単位で選択し1回以上数回に分けて削除されることを特徴とする実施態様20に記載の画像処理装置。
【0139】
[実施態様23] 前記単位領域は、JPEG2000のプリシンクト(precinct)であることを特徴とする実施態様17又は18に記載の画像処理装置。
【0140】
[実施態様24] 前記プリシンクトは、前記削除手段でパケット単位に削除されることを特徴とする実施態様23に記載の画像処理装置。
【0141】
[実施態様25] 前記単位領域はJPEG2000のコードブロック(code−block)であることを特徴とする実施態様17又は18に記載の画像処理装置。[実施態様26] 前記単位領域は、同じresolution、同じlayerを構成するために必要なサブバンドからLL成分を除いたデータから構成されるcode−blockのデータであることを特徴とする実施態様25に記載の画像処理装置。
【0142】
以上説明したように本実施の形態によれば、キャッシュされた断片的な符号データを効率よく削除することができ、サーバ側にあるオリジナル画像を閲覧する際に、オリジナル画像の符号データ量と同じ大きさのメモリ容量を必要としない。また、注目領域を特定し、そこからの空間的に遠いタイル、或いは、現在の時刻から表示された最後の時間が時間的に遠いタイルを削除対象とするため、複雑な計算を必要としない。
【0143】
更に、キャッシュデータ削除の際に、resolution level 0,layer 1のデータを必ず残しておくことにより、ユーザの要求がキャッシュされているデータよりも高解像度、高SNRであり、不足分のデータをサーバ側からダウンロードする場合にも、キャッシュされているデータを利用して、低解像度・低SNRの画像を一時的に表示することも可能であるという利点がある。
【0144】
【発明の効果】
以上説明したように本発明によれば、キャッシュしている符号化された画像データの内、再生画像に影響の少ないキャッシュデータを削除してキャッシュにおけるデータのオーバフローを防止しながらユーザの要求に応じた表示を行うことができるという効果がある。
【図面の簡単な説明】
【図1】本実施の形態に係るクライアントやサーバの構成を説明するブロック図である。
【図2】本実施の形態に係るネットワークの概略を説明する図である。
【図3】一般的なJPEG2000の符号化データを説明する図である。
【図4】JPEG2000の符号化データにおける解像度(画像サイズ)とResolution番号との関係を示す図である。
【図5】パケット単位のリクエストおよびレスポンスの概念図を示す図である。
【図6】オリジナル画像の各階層のデータ構造を説明する図である。
【図7】本実施の形態に係るサーバに保存されているJPEG2000符号化データを説明する図である。
【図8】本発明の実施の形態1に係る符号化データのキャッシュを説明するフローチャートである。
【図9】図8のステップS5のキャッシュデータの削除処理を示すフローチャートである。
【図10】本実施の形態に係るクライアントにおけるタイルのキャッシュデータの一例を示す図である。
【図11】図9のステップS13のキャッシュデータの削除領域Rの取得処理を示すフローチャートである。
【図12】実施の形態1に係るデータ削除領域Rの取得アルゴリズムを説明する図である。
【図13】本実施の形態に係る、キャッシュデータを削除する順番を決定する方法(ステップS14:図9)を説明するフローチャートである。
【図14】実施の形態に係る削除領域Rのタイルデータがキャッシュされている状態を説明する図である。
【図15】本発明の実施の形態2に係る削除処理を説明するフローチャートである。
【図16】実施の形態2に係る削除領域Rにおけるデータ削除後のキャッシュデータの一例を示す図である。
【図17】本発明の実施の形態3に係る管理テーブルの作成処理を説明するフローチャートである。
【図18】JPEG2000のメインヘッダ内のSIZマーカを説明する図である。
【図19】本発明の実施の形態3に係るアクセス管理テーブルの一例を説明する図である。
【図20】実施の形態3に係る図17のステップS68のキャッシュ制御処理を示すフローチャートである。
【図21】本発明の実施の形態4に係るキャッシュ管理用ファイルを説明する図である。
【図22】本発明の実施の形態4に係るキャッシュ管理データとキャッシュデータの削除を説明する図である。
【図23】本発明の実施の形態4に係るユーザからサーバへの表示要求に伴う処理の概要を説明するフローチャートである。
【図24】本発明の実施の形態4に係るキャッシュデータの削除処理を説明するフローチャートである。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technique for receiving, for example, fragmentary encoded data from a server at a client, and caching and displaying the fragmented image data.
[0002]
[Prior art]
2. Description of the Related Art Accessing a WWW server from a Web browser on the Internet to browse document data, image data, and the like has been actively performed. In this mechanism, there are a WWW server that publishes information on the Internet and a plurality of clients that browse the information, and each client browses the information of the server using a Web browser. This WWW server has a document in which information to be disclosed called a home page is described in HTML, and the Web browser on the client side fetches the document and displays it on the client computer. The Web browser on the client side can follow the link in the displayed page to obtain necessary information.
[0003]
Further, as a method of downloading a file managed by a Web server, there is a method called File Transfer Protocol (hereinafter abbreviated to FTP). The FTP is a mechanism that transfers a file on a server to a client computer at one time via a network.
[0004]
Also, there is Flashpix / IIP as a protocol for fragmentarily accessing and displaying an image data file. The IIP is a Flashpix, which is an optimal protocol for an image data file format, and a partial access unit of image data is performed in units of Flashpix tiles.
[0005]
On the other hand, if this IIP is applied to JPEG2000 as it is, the coded data of each scalability of JPEG2000 is difference data from the scalability data one level lower than the scalability, so the fragmentary coding received on the client side is performed. Data must be cached.
[0006]
[Problems to be solved by the invention]
However, if all of the fragmentary encoded data is saved on the client side, all data in the server's JPEG2000 bitstream will be cached on the client when the client eventually browses the entire image at the highest resolution and highest SNR. become. This causes a problem that a terminal having a small memory capacity exceeds the memory capacity while browsing an image, and it becomes impossible to perform display according to a user's request. Further, since JPEG2000 is differential data, when the memory capacity is saturated and new received data is overwritten with already cached data, an accurate image display (display desired by the user) occurs. It can happen.
[0007]
SUMMARY OF THE INVENTION The present invention has been made in view of the above-described conventional example, and deletes cache data having little effect on a reproduced image from cached encoded image data to prevent a data overflow in a cache while preventing a user from overflowing. The purpose is to provide a display as requested.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, the image processing method of the present invention includes the following means. That is,
An image processing method for inputting, caching, and reproducing encoded image data in a fragmentary manner,
An attention area specifying step of specifying an attention area of the image;
A determination step of determining whether or not the amount of cache data that caches the image data exceeds an allowable amount of a cache memory by changing the attention area;
A deletion data amount determination step of determining a data amount to be deleted from the cache data stored in the cache memory when it is determined that the data amount exceeds the determination step;
A distance measurement step of measuring a distance from the attention area specified in the attention area identification step to a unit area to be deleted;
A deletion area determination step of determining a deletion area for deleting data from cache data in units of the unit area based on the attention area and the distance measured in the distance measurement step;
A deletion step of deleting cache data included in the deletion area determined in the deletion area determination step,
An image processing method comprising:
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0010]
FIG. 1 is a block diagram illustrating a configuration of a client or a server according to the present embodiment. This device may be configured by, for example, a personal computer or a workstation.
[0011]
The CPU 101 controls the operation of the entire system, and executes various control operations based on a program stored in the primary storage 102. The primary storage 102 is mainly a memory (RAM), and reads and stores programs and the like stored in the secondary storage 103. The secondary storage 103 corresponds to, for example, a hard disk. In general, the capacity of the primary storage 102 is smaller than the capacity of the secondary storage 103, and programs and data that cannot be stored in the primary storage 102 are stored in the secondary storage 103. Data that must be stored for a long time is also stored in the secondary storage 103. In the present embodiment, a program is stored in the secondary storage 103, read and stored in the primary storage 102 when the program is executed, and the CPU 101 performs processing according to the program stored in the primary storage 102. The input device 104 corresponds to, for example, a mouse or a keyboard. The input device 104 is used to generate an interrupt signal in a program or the like and input desired data by operating the input device 104. The output device 105 is, for example, a monitor or a printer. Although various other forms are conceivable for the configuration method of this apparatus, they are not the main subject of the present invention, and thus description thereof will be omitted.
[0012]
FIG. 2 is a diagram illustrating an outline of a network according to the present embodiment.
[0013]
In the figure, reference numerals 201 and 202 denote users (clients), each having the device configuration described in FIG. The user 201 or 202 can communicate with the server 204 via the network 203 irrespective of wired or wireless. The server 204 has the configuration shown in FIG. 1 and includes a large-capacity storage device (hard disk) 205 for storing image files corresponding to the secondary storage 103. The large-capacity storage device 205 corresponds to, for example, a hard disk. This hard disk stores a lot of image data encoded by the JPEG2000 encoding method. The users 201 and 202 receive and store fragmented data from the JPEG2000 image data stored in the server 204.
[0014]
In the present embodiment, a method will be described in which a client that has already received data of a JPEG2000 file that has already been generated and that has cached them deletes the cached data.
[0015]
Each user opens a homepage using a Windows (registered trademark) machine, and clicks (instructs) a link to a JPEG2000 image written therein to convert the JPEG2000 image suitable for the user's use. Get the fragmentary data needed to display at image size and resolution and cache those data. Then, it is assumed that when the limit value of the cache capacity of the user is exceeded, a program having a function such as a cache manager runs and deletes the cache data of the user.
[0016]
FIG. 3 is a view for explaining general JPEG2000 encoded data, and shows a configuration of a JPEG2000 file recorded along a Layer-resolution level-component-position progression (hereinafter, referred to as LRCP). When this LRCP is followed, recording is performed in the order of layer / solution / component / position. Such a data arrangement is called a progression order.
[0017]
FIG. 4 is a diagram showing the relationship between the resolution (image size) in JPEG2000 encoded data and the Resolution number.
[0018]
The resolution number of the image with the smallest resolution is set to “0”, and the width and height of the image are doubled each time the resolution number increases by one. In each layer, data is stored in ascending order of the resolution number. The layer number corresponds to the S / N ratio of the image to be restored to the original image, and the smaller the layer number, the worse the S / N ratio. The maximum value of the resolution number, the layer number, and the component number in one JPEG2000 file is set in advance by an encoder and is encoded according to the parameters, and the information is stored in the encoded data. Each packet (packet) includes a packet header section that manages information on a code block (code-block) stored in the packet, and coded data of each code-block.
[0019]
By using such JPEG2000 encoded data, each user can receive only necessary data from the server 204 without acquiring all image data in the server 204. As a unit of the user's received data, a JPEG2000 packet or a code-block unit which is an encoding unit smaller than the packet can be considered. In the present embodiment, a packet unit is assumed as a data unit received by the user from the server 204.
[0020]
FIG. 5 is a diagram showing a conceptual diagram of a request and a response in a packet unit.
[0021]
The user 201 requests data from the server 204 by specifying a tile number of an image, a resolution level, a layer, a component, and a position number. Thus, the server 204 analyzes the code stream of the image 503, extracts packet data corresponding to the specified tile number, resolution level, layer, component, and position number, and sends the packet data to the user 201.
[0022]
In this embodiment, the original image in the server 204 is divided into 64 tiles (Tiles) each having a maximum resolution size of 2048 × 2048 [pixels] and 8 × 8, and the number of components is “3”. It is assumed that there are resolution levels 0 to 3, that is, four levels in the image size direction, which are divided into two layers.
[0023]
FIG. 6 is a diagram illustrating the data structure of each layer of the original image.
[0024]
As shown in FIG. 6, the tiles constituting the original image are numbered sequentially from the upper left tile. Therefore, the server 204 stores data as indicated by 701 in FIG.
[0025]
FIG. 7 is a diagram for explaining the configuration of JPEG2000 encoded data managed by the server 204. Reference numeral 703 denotes a main header, and reference numeral 702 denotes encoded data of tile 0.
[0026]
[Delete data in tile units]
The client (user) 201 caches the fragmentary JPEG2000 bit stream sent from the server 204. The user 201 knows in advance the memory capacity available for data caching, and erases the bit stream before the fragmentary JPEG2000 bit stream cache data sent from the server 204 overflows the cache memory capacity. .
[0027]
FIG. 8 is a flowchart showing a cache control process in a user (client) according to the present embodiment.
[0028]
First, in step S1, it is grasped which partial area of the image the image data sent from the server this time corresponds to, and the displayed image area is specified as the attention area F. For example, in the image as shown in FIG. 6, when the reception of the current data is for displaying the area 601 indicated by the thick frame of the resolution 3, the tiles 33 to 35, 41 to 43, 49 to 51 Nine tiles are specified as the attention area F.
[0029]
Next, the process proceeds to step S2, where the capacity of the cache memory of the user 201 is obtained, and a threshold value for determining whether or not the cache data needs to be deleted is determined. Here, if 100% of the available memory capacity is used to cache the received JPEG2000 packet data, the threshold value becomes equal to the memory capacity. However, when data other than the JPEG2000 fragmentally received bit stream (for example, meta information of an image) is also stored in the same memory capacity, a part of the available memory capacity is limited to the JPEG2000 code data. Used for caching. Alternatively, when caching a plurality of JPEG2000 encoded data in the same system, the threshold value of the memory capacity available for a certain image is set to a value smaller than the usable memory capacity. For example, for a memory capacity of 3 M [bytes], a value of 2 M [bytes] is set as a threshold value of the cache of this image. When the threshold value is determined, a secondary storage medium such as a hard disk may be used. However, in the present embodiment, the threshold value is determined based on the memory size for simplicity. Next, the process proceeds to step S3, and the number of bytes of the fragmented JPEG2000 code data received from these is acquired.
[0030]
Next, proceeding to step S4, it is determined whether or not the received data for the number of bytes acquired in step S3 exceeds the threshold value determined in step S2 when cached. That is, if the value obtained in step S3 is larger than the value obtained by subtracting the currently cached data amount from the threshold value, it is determined that the threshold value is exceeded. If the value obtained in step S3 is smaller, the threshold value is determined. Is determined not to exceed. When it is determined that the threshold value is exceeded, the process proceeds to step S5, and when it is determined that the threshold value is not exceeded, the process proceeds to step S6. For example, if the threshold value determined in step S2 is 2M [bytes] and the already cached JPEG2000 packet data amount is 1.95M [bytes], the number of bytes of the received data acquired in step S3 is 120K [bytes]. ], It is determined that if the received data is cached as it is, the threshold value will be exceeded, and the process proceeds to step S5.
[0031]
In step S5, even if the number of bytes acquired in step S3 is cached, the encoded data is deleted from the cache data in tile units so that the cache capacity is equal to or smaller than the threshold value. For example, if the number of bytes acquired in step S3 is 120K [bytes] and the threshold value determined in step S2 is 2M [bytes], in step S5, until 2M-120K = 1.88M [bytes] or less. The cache data is deleted. Then, the process proceeds to step S6 to cache the received data. Next, in step S7, it is determined whether the request for this image has been completed. If the request has not ended, the process returns to step S3, and if the request has ended, this cache control process ends.
[0032]
Next, the cache data deletion process in step S5 in FIG. 8 will be described with reference to the flowchart in FIG. FIG. 9 is a flowchart showing the processing in step S5.
[0033]
First, in step S11, the data amount Y to be deleted is acquired from the cache memory, and “0” is substituted as an initial value into a variable Del for calculating the data amount deleted in the cache data deletion processing. In the present embodiment, the user has already displayed the entire image at the maximum SNR of resolution level 1, and the area 602 in FIG. 6 is currently surrounded by the maximum SNR, that is, tiles 16 to 21, 56 to 61. It is assumed that an area of 36 tiles is displayed at resolution level 2, maximum SNR. At this time, in the cache memory, the data 701 of the header portion of the image, the packet data 704 and 705 constituting the resolution level 0 and the resolution level 1 of all the tiles, and the resolution of the 36 tiles in the area 602 shown in FIG. The packet data 706 and 708 forming level 2 are stored. That is, regarding the 36 tiles in the area 602, as indicated by 1002 in FIG. 10B, the header data 707 of each tile, the packet group 704 constituting the resolution level 0 of each tile, and the resolution level of each tile 1 and a packet group 706 forming a resolution level 2 are stored in the cache memory of the user 201. For the other tiles, as indicated by 1001 in FIG. 10A, packet data obtained by removing the packet group 706 constituting the resolution level 2 from the cache data indicated by 1002 in FIG. Cached. When the combined size of these data is 1.95 M [bytes], the threshold value is 2 M [bytes], and the amount of received data is 120 K [bytes], the data amount Y to be deleted is Y = 1.95 + 0. .12-2.0 = 0.07M [byte] = 70K [byte]. That is, it is necessary to delete data of 70K [bytes] or more.
[0034]
Next, the process proceeds to step S12, in which the attention area F specified in step S1 of FIG. 8 is obtained. For example, when the user who is currently displaying the area indicated by the area 602 in FIG. 6 with the resolution level 2 requests the enlarged display centering on the tile 42 and desires to display the area 601 with the resolution level 3 , Nine tiles of tiles 33 to 35, 41 to 43, and 49 to 51 are obtained as the attention area F.
[0035]
Next, the process proceeds to step S13, and an area including a tile group far from the attention area F obtained in step S12 is obtained as a data deletion area R. For example, a region 603 surrounded by a broken line and configured by tiles 0 to 7 in FIG.
[0036]
Next, the process proceeds to step S14, and the order of tiles from which data is to be deleted is determined for the tiles included in the data deletion region R acquired in step S13. For example, in the case of tiles inside the area 603 in FIG. 6, numbers are assigned in order from the right tile as the order of data deletion. That is, the tile T_del (1) having the first data deletion order is the tile 7, and the tile T_del (8) having the eighth data deletion order is the tile 0.
[0037]
Next, the process proceeds to step S15, in which "1" is substituted for a variable X for counting the data deletion order as an initial value. Next, the process proceeds to step S16, in which the cache data of the tile T_del (X) whose deletion order is X is deleted, except for the packet data of the tile header portion 701 and the resolution level 0, layer 1 except for the tile data. . For example, if X = 1 and T_del (1) is tile 7, the cache data of tile 7 is the data indicated by 1001 in FIG. 10A, so that a packet group 705 constituting resolution 1 and resolution 0 , Layer 2 are deleted.
[0038]
Next, the process proceeds to step S17, and the data amount deleted in step S16 is added to the variable Del that accumulates the data amount deleted in the deletion process. Next, the process proceeds to step S18, where the data amount Del deleted in this deletion processing is compared with the data amount Y to be deleted in this deletion processing, and the data amount Del actually deleted exceeds the data amount Y to be deleted. Is determined, and if it is exceeded, this process ends. On the other hand, if it has not exceeded, the process proceeds to step S19, and it is determined whether or not the deletion number X of the tile from which data was deleted last is smaller than the number N of tiles included in the data deletion region R. If the deletion number X is smaller than the tile number N, the process proceeds to step S20. Otherwise, the cache data of all the tiles included in the deletion region R is regarded as deleted, and a new deletion region R is obtained. The process proceeds to step S13. In step S20, the deletion number X is incremented by one to be the next deletion number.
[0039]
For example, when the data amount Y to be deleted is 70K [bytes] and the data size deleted in the tile T_del (1) of the deletion number 1 is 50K [bytes], the value of the data amount Del deleted in step S17 is 50K [bytes]. Byte], so that in step S18, Y (= 70K)> Del (= 50K), and the process proceeds to step S19. In step S19, since X (= 1) <N (= 8), the process proceeds to step S20, in which the deletion number X is incremented by 1 to be changed to "2", and then proceeds to step S16, where T_del (2). The data of tile 6 will be deleted.
[0040]
[Embodiment 1]
Next, the process of acquiring the data deletion area R in step S13 of FIG. 9 will be described with reference to the flowchart of FIG. FIG. 11 is a flowchart showing a process of acquiring the deletion region R in step S13 according to Embodiment 1 of the present invention.
[0041]
First, in step S31, the tile T_cen including the center point of the attention area F specified in step S1 of FIG. 8 is specified. For the attention area F indicated by the area 601 in FIG. 6, the tile 42 is the tile T_cen. When the upper left tile of the image is defined as a 0-row, 0-column tile, and the center tile T_cen is represented by a Cy row and a Cx column, the position of the tile 42 is represented by Cx = 2 and Cy = 5. Next, the process proceeds to step S32, in which the number of tiles from the center tile T_cen specified in step S31 to tiles located at the upper, lower, left, and right ends where the cache data exists is calculated. That is, the row or column located at the end of the image has already been selected as the deletion area R in this cache control process, and if there is no cache data that can be deleted, the number of tiles is calculated excluding the row or column. .
[0042]
This will be described with reference to FIG.
[0043]
In FIG. 12, assuming that the number of tiles from the tile 42 to the upper, lower, left, and right ends is N_up, N_down, N_left, and N_right, if the deletion region R has not been selected even once,
N_up = Cy, N_down = maximum line number of image-Cy
N_left = Cx, N_right = maximum column number of image−Cx
Is calculated as If rows X to X of the image have already been selected as the data deletion area R and there is no data to be deleted, X is subtracted from N_up for adjustment. Similarly, when the line at the bottom of the image is deleted, N_down is deleted, and when the sequence at the left end and right end of the image is deleted, N_left and N_right are already deleted. Adjust by subtracting the number of columns. Therefore, if the deletion region R has not been designated yet, N_up = 5, N_down = 2, N_left = 2, and N_right = 5 for the attention region 601.
[0044]
Next, proceeding to step S33, a variable having the largest value is obtained as N_max from the four values obtained in step S33, N_up, N_down, N_right, and N_left. Here, both N_up and N_right for the attention area 601 are “5”, which is the maximum value.
[0045]
Next, the process proceeds to step S34, and the direction in which the number of tiles from the center tile T_cen to the image edge is the largest is determined from the variable (N_up, N_right) having the maximum value obtained in step S33. If N_up is selected as the variable having the maximum value, this direction is the upward direction of the image, that is, the direction in which the row number decreases. When N_right is selected, this direction is the right direction of the image, that is, the direction in which the column number increases. In addition, as an example, for example, when N_down is selected, a downward direction of the image, that is, a row number is increased, and when N_left is selected, a left direction of the image, that is, a column number is small. Direction. However, as described above, when there are two variables corresponding to N_max, the following three conditions are provided.
[0046]
1. N_up and N_down have priority over N_right and N_left.
[0047]
2. N_up has priority over N_down.
[0048]
3. N_left has priority over N_right.
[0049]
That is, the value in the vertical direction has priority over the value in the horizontal direction, and the direction in which the number is reduced in both the column and the row has priority. Accordingly, in the above-mentioned attention area 601, N_up and N_right correspond to N_max, but N_up in the vertical direction is preferentially selected.
[0050]
Next, proceeding to step S35, the row or column from which cache data is to be deleted is determined as the data deletion area R based on the direction selected in step S34. However, in this case, when N_up is selected in step S34 as described above, the row indicated by the area 1201 shown in FIG. When N_down is selected, the row indicated by the area 1202 is determined as the deletion area R. Further, when N_left is selected, the area 1203 is determined as the deletion area R, and when N_right is selected, the area 1204 is determined as the deletion area R.
[0051]
Therefore, in this step S35, since N_up has been selected in step S34, the top row corresponding to the area 1201 is determined as the deletion area R for the attention area 601.
[0052]
In this way, the process proceeds to step S14 in FIG. 9, and a number is basically assigned to the data deletion region R so that data is deleted from a tile as far as possible from the attention region F as far as possible.
[0053]
FIG. 13 is a flowchart illustrating a method of determining the order of deleting cache data (step S14: FIG. 9).
[0054]
First, in step S41, it is checked which of N_up, N_down, N_right, and N_left has been selected as the value corresponding to N_max in step S33 of FIG. If one of N_up and N_down is selected as N_max, the process proceeds to step S42, and if one of N_right and N_left is selected, the process proceeds to step S45. That is, when a row-direction tile group is selected as the deletion region R, the process proceeds to step S42, and when a column-direction tile group is selected, the process proceeds to step S45. In the first embodiment, since N_up is selected as N_max, the process proceeds to step S42.
[0055]
In step S42, the values of N_right and N_left are compared to determine which value is larger. If the value of N_right is large, the process proceeds to step S43, and if the value of N_left is large, the process proceeds to step S44. That is, if the number of tiles on the right side is large, the process proceeds to step S43, and if the number of tiles on the left side is large, the process proceeds to step S44. When the process proceeds to step S43, a row of tiles arranged in the horizontal direction is selected as the deletion region R, and the attention region F is shifted to the left, so that the tile from the right end of the deletion region R moves leftward. Assign data deletion numbers in order. On the other hand, when the process proceeds to step S44, a row of tiles arranged in the horizontal direction is selected as the deletion region R, and the attention region is shifted to the right side. Assign a data deletion number in order to.
[0056]
In the first embodiment, since N_left = 2 and N_right = 5, the process proceeds from step S42 to step S43. In the region 1201 of FIG. Will be shaken. That is, the tile 7 is assigned a deleted data number “1”, the tile 6 is assigned a deleted data number “2”, and so on, and the tile 0 is assigned a deleted data number “8”.
[0057]
When the process proceeds from step S41 to step S45, the values of N_down and N_up are compared to determine which value is larger. If N_down is larger, the process proceeds to step S46. If N_up is larger, the process proceeds to step S47. That is, if the number of rows of tiles below the attention area F is large, the process proceeds to step S46. If the number of rows of tiles above the attention area F is large, the process proceeds to step S47. When the process proceeds to step S46, a row of tiles arranged in the vertical direction is selected as the deletion region R and the attention region F is shifted upward, so that the tiles at the lower end of the deletion region R are sequentially moved upward from the tiles. Assign a data deletion number. On the other hand, when the process proceeds to step S47, a row of tiles arranged in the vertical direction is selected as the deletion region R, and since the attention region F is shifted downward, the tile from the upper end tile of the deletion region R Data deletion numbers are sequentially assigned in the direction.
[0058]
Therefore, in the case of the first embodiment, the deletion area R is a row including the tiles 0 to 7, the deletion order “1” is the tile 7, the deletion order “2” is the tile 6, and so on. Are sequentially deleted, and the deletion number “8” is the tile 0.
[0059]
FIGS. 14A and 14B are diagrams illustrating a state in which the tile data of the deletion area R is cached. Assuming that each tile is cached with data up to resolution level 2 and layer 2 as indicated by 1402 in FIG. 14A, the tiles shown in FIG. Of the 7, 6, and 5 cache data, a total of 165 K [bytes] of data indicated by 1402 will be deleted. Therefore, the cache data after deletion is in a state as shown by 1601 in FIG.
[0060]
By adopting such a data deleting method, the tile data of the partial area corresponding to the attention area important for the current display is retained, and the attention is considered to be relatively less important for the current display. Cache data is deleted from tiles far from the area.
[0061]
Further, since packet data other than the data of the resolution level 0 and the layer 1 having the smallest data amount is deleted for each tile, a large-capacity empty area can be provided in the cache memory. Is reduced.
[0062]
In addition, by retaining the data of the resolution level 0 and the layer 1 of each tile without deleting them, there is no tile in which no data is cached at all. Thus, even if a higher-resolution image display is requested, the image decoded from the stored data is temporarily enlarged and displayed, and after the image display request, the image data of the area is displayed. Until reception, it is possible to prevent a situation where no image is displayed. In addition, there is an effect that an image which can grasp the entire image can be displayed immediately at any time.
[0063]
The order in which the cache data is deleted is not fixed to the order described in the above embodiment, and it can be easily inferred that another order may be added.
[0064]
Further, in the first embodiment, for simplicity of description, the deletion area is specified in tile units. However, the present invention is not limited to this, and may be in Precinct or code-block units, for example. In the case of Precinct, the unit of data deletion is a packet as in the case of a tile, and in the case of code-block, the unit is code data composed of subbands constituting the data of the code block.
[0065]
[Embodiment 2]
[Delete data of specified tile in packet unit]
In the first embodiment described above, a row or a column composed of tiles far from the attention area is designated as the deletion area R, and a deletion order is assigned to the tiles therein, and the tiles of the deletion area R are assigned All the packet data except the data of resolution level 0 and layer 1 were deleted one by one according to the deletion order.
[0066]
However, the overall SNR and resolution of all the tiles included in the area are not set as a unit but for all the packets except for the resolution level 0 and the resolution 1 included in the cache data of the tile specified as the deletion target. A method of lowering the cache data amount and reducing the cache data amount is also conceivable. In this case, the difference from the first embodiment is the step S16 and subsequent steps in the data deletion processing of FIG.
[0067]
FIG. 15 is a flowchart illustrating the deletion processing according to the second embodiment. Steps that perform the same operations as in FIG. 9 described above are given the same reference numerals as in FIG. 9, and description thereof will be omitted.
[0068]
In the second embodiment, it is assumed that the user has already cached the entire image as data of the maximum SNR of resolution level 2. Accordingly, in the cache memory, as shown by 1002 in FIG. 10B, the header data 707 of each tile and the packet constituting the resolution level 0 of each tile are stored for the data 701 of the header portion of the image and all tiles. A group 704, a packet group 705 (FIG. 10A) configuring a resolution level 1 of each tile, and a packet group 706 configuring a resolution level 2 are stored in the cache memory of the user 201. In addition, the user who has displayed the area 602 in FIG. 6 at the resolution level 2 requests an enlarged display centering on the tile 42, desires to display the area 601 at the resolution level 3, and sets the tiles 33 to It is assumed that nine tiles 35, 41 to 43, and 49 to 51 have been acquired. Steps S11 to S14 are the same as in FIG. 9 of the first embodiment.
[0069]
That is, in step S11, the data amount Y to be deleted from the cache is acquired, and “0” is substituted for the variable Del that accumulates the data amount deleted in the current data deletion process. In step S12, the attention area F specified in step S1 is obtained. In step S13, an area including a group of tiles far from the attention area F obtained in step S12 is obtained as a data deletion area R. In the case of the second embodiment, the area 603 in FIG. In step S14, the order in which data is deleted from the tiles included in the data deletion region R acquired in step S13 is determined. In the case of the second embodiment, the deletion order “1” is tile 7, the deletion order “2” is tile 6, the tiles 5, tile 4,... It has become.
[0070]
In step S51, a tile group TR having the highest cached resolution is specified in the data deletion area R. In the second embodiment, since all tiles included in the deletion area R indicated by the area 603 are cached up to the same resolution level 2, the tile group TR matches the deletion area R. Next, the process proceeds to step S52, in which the tile TR_del having the smaller data deletion order is specified in the tile group TR specified in step S51.
[0071]
In the second embodiment, since the deletion area R is equal to the tile group TR, the tile 7 with the smallest data deletion order is specified as TR_del. Next, the process proceeds to step S53, where data of the highest resolution of the tile TR_del is deleted. Here, in tile 7 which is TR_del, the highest resolution data cached is resolution level 2 706 (FIG. 7), so this data 706 is deleted from the cache. Therefore, the cache data of the tile 7 changes from the state of 1002 in FIG. 10B to the state indicated by 1001 in FIG.
[0072]
Next, the process proceeds to step S17, and the data amount deleted in step S53 is added to the variable Del that accumulates the data amount deleted in the deletion process. Next, the process proceeds to step S18, where the deleted data amount Del is compared with the data amount Y to be deleted, and it is checked whether the actually deleted data amount Del exceeds the amount Y to be deleted. This processing ends.
[0073]
On the other hand, if not exceeded, the process proceeds to step S54, and the tile TR_del from which the highest-resolution cache data has been deleted in step S53 is removed from the tile group TR specified in step S51. That is, the tile 7 is removed from the tile group TR, and seven tiles 0 to 6 remain in the tile group TR. Next, the process proceeds to step S55, and it is determined whether or not the tile group TR has become an empty set. If the tiles included in the tile group TR still remain, the process returns to step S52 to identify the next TR_del and execute the above-described processing.
[0074]
On the other hand, the process proceeds to step S56 where no tiles are included in the tile group TR, and it is determined whether or not only the resolution level 0 and the layer 1 are the cache data of all the tiles included in the deletion area R. Here, if the cache data of all tiles is resolution level 0, layer 1, it is determined that there is no longer any cache data that can be deleted in this deletion area R, and the process returns to step S13 to return to the next data deletion area R. To get. On the other hand, in step S56, if the cache data in the deletion area R is not only the resolution level 0 and the layer 1, it is determined that there is still cache data that can be deleted, and the process returns to step S51 to execute the above-described processing.
[0075]
According to the above-described second embodiment, the deletion region R is a row including tiles 0 to 7, the deletion order “1” is tile 7, the deletion order “2” is tile 6, and so on. The deletion order “8” is the tile 0 in order. Then, as shown by 1402 in FIG. 14A, assuming that each tile has cached data up to resolution level 2 and layer 2, in order to delete 120K [bytes] of data, tiles 7 and 6 are needed. , 5 and 4, the data of resolution level 2 is deleted. That is, data of 30K [bytes] × 4 tiles = 120K [bytes] is deleted, and the cache data is in a state as indicated by 1602 in FIG. 16B.
[0076]
Therefore, according to the second embodiment, data is deleted little by little in the resolution direction from all the tiles included in the deletion area R. Therefore, even if the area included in the deletion area R is browsed, it is included in that area. It is more likely that more encoded data remains for each tile, and it is also possible to reduce the number of packet data requested corresponding to a newly requested image.
[0077]
Further, in the second embodiment, the case where the data of the deletion region R is deleted in the resolution direction has been described. However, the method of deleting the data in the SNR direction can be essentially realized in the same manner. In this case, the tile group TR specified in step S51 is a set of tiles having the highest SNR, that is, the number of cached layers. In step S53, the data with the highest SNR in the tile TR_del is deleted. For example, when there is cache data as indicated by 1002 in FIG. 10B, since the data with the highest SNR in the tile is deleted, the packet data 1006, 1005, and 1004 constituting layer 2 (FIG. B)) will be erased.
[0078]
In addition, the amount of data to be deleted when the resolution level data is deleted is compared with the amount of data to be deleted when the SNR data is deleted. For example, when 18 packets indicated by 1002 in FIG. 10B are stored and when deleting in the resolution level direction, 6 packets indicated by 706 in FIG. 7 are deleted. , And in the layer direction, nine packets 1004, 1005, and 1006 are deleted. Therefore, the data amount of the six packets indicated by 706 in FIG. 7 is compared with the data amount of the nine packets 1004, 1005, and 1006, and the one with the larger data amount is deleted.
[0079]
Further, in the second embodiment, for simplicity of description, the deletion area is specified in tile units. However, the present invention is not limited to this. For example, the same applies to Precinct and code-block units. The cache data can be deleted based on the above concept. For example, when Precinct is used as a unit, the data deletion unit is a packet like a tile, and when code-block is used, code data consisting of subbands constituting data of the code block is used as a unit.
[0080]
[Embodiment 3]
[Delete last tile used for display from the oldest tile data]
In the first and second embodiments, the tile from which the cache data is to be deleted is selected purely based on the distance from the attention area F. However, the time last used for display may be stored for each tile, and the tile with the oldest access time may be determined as the deleted data area. In order to delete based on the displayed time, a time management table for managing the time used for the display is required for each tile.
[0081]
FIG. 17 is a flowchart illustrating a process of creating a management table according to Embodiment 3 of the present invention.
[0082]
In step S61, the main header (main header) 701 of the JPEG2000 image to be browsed is requested to the server 204, and the main header transmitted from the server 204 is received in response to the request. Next, in step S62, the received main header is analyzed, and the number of tiles constituting the JPEG2000 image to be viewed is calculated. This is based on the parameters Xsiz (1801) and Ysiz (1802) indicating the image size of the highest resolution described in the SIZ marker of the main header 701, and the parameters XTsiz (1803) and YTsiz (1804) indicating the tile size at the highest resolution. Can be calculated.
[0083]
In the third embodiment, as shown in FIG. 6, an original image of 2048 × 2048 [pixels] is divided into tiles of 256 × 256 [pixels], so that (2048 ÷ 256 =) 8 tiles are arranged in the horizontal direction. Since (204820256 =) 8 tiles are similarly arranged in the vertical direction, a total of (8 × 8 =) 64 tiles are calculated.
[0084]
Next, the process proceeds to step S63, and an access management table for each tile is created based on the number of tiles calculated in step S62. For example, an access management table as indicated by 1901 in FIG. 19A is created. In the initial state, no tile is used for displaying an image yet, so that “Last Access Time (latest access time)” of all tiles contains an initial value, for example, NULL.
[0085]
Next, the process proceeds to step S64, where packet data is requested according to the display request of the user. For example, for all tiles, data up to resolution level 1 and layer 2 is requested. Next, the process proceeds to step S65, and the access management table is updated for the tile requested in step S64. For example, when the data of the resolution level 1 and the layer 1 is requested for all the tiles, as shown by 1902 in FIG. 19B, the item of “Last Access Time” in the table is displayed for all the tiles. Is updated at the time “10:22:34” when the access request is made.
[0086]
Next, proceeding to step S66, it is determined whether it is necessary to issue a request to the server 204 for the packet data requested in step S64. The request in step S64 can be satisfied with the cached packet data. If the data request is not issued to the server 204, the process proceeds to step S69.
[0087]
If the request in step S64 cannot be satisfied with only the cached data, the process proceeds to step S67. For example, at the stage of the first image display, since packet data of any tile has not been received yet, it is necessary to request data from the server 204, so that the process proceeds to step S67. In this step S67, the packet data is requested from the server 204, and the packet data transmitted in response to the request is received. Next, the process proceeds to step S68, and the data received in step S67 is cached. Next, the process proceeds to step S69, where the JPEG2000 bit stream created from the cache data is decoded and displayed. Next, the process proceeds to step S70, in which it is determined whether or not the request for this image has been completed. If the request still continues, the process returns to step S64. If the request for this image has been completed, this processing flow ends.
[0088]
FIG. 20 is a flowchart showing the cache control process in step S68 of FIG. This flowchart differs from the flowchart of FIG. 8 of the first embodiment in that a tile to be deleted is specified based on the value of the access management table. Therefore, those performing the same operations as in FIG. 8 in the steps of FIG. 20 are given the same numbers as in FIG.
[0089]
First, in step S2, the memory capacity of the user 201 is obtained, and a threshold value for determining whether or not the cache data needs to be deleted is determined. Next, in step S3, the number of bytes of the received fragmented JPEG2000 code data is obtained. Next, proceeding to step S4, it is determined whether or not the byte count of the received data acquired in step S3 exceeds the threshold value determined in step S2. That is, if the value obtained in step S3 is larger than the value obtained by subtracting the currently cached data amount from the threshold value, it is determined that the threshold value is exceeded. If the value obtained in step S3 is smaller, Judge not to exceed the threshold value. When it is determined that the threshold value is exceeded, the process proceeds to step S71, and when it is determined that the threshold value is not exceeded, the process proceeds to step S6.
[0090]
In step S71, the data amount Y to be deleted is calculated, and further, "0" is substituted into a variable Del for accumulating the actually deleted data amount, and the initialization is performed. Next, proceeding to step S72, the last used time is compared for each tile with reference to the access management table as shown in FIG. 19 (C), and the tile used is the one farthest from the current time. That is, the tile group X with the oldest access time is specified. For example, if the entire image is displayed at resolution level 1 and then the area 602 of FIG. 6 is enlarged and displayed at resolution level 2, as shown by 1903 in FIG. 19C, tiles 16 to 21 and tiles in the access management table are displayed. The last accessed time is updated for 36 tiles 24 to 29, tiles 32 to 37, tiles 40 to 45, tiles 48 to 53, and tiles 56 to 61. Therefore, the remaining 28 tiles are specified as a tile group X having an old access time.
[0091]
Next, the process proceeds to step S73, in which the tile A having the smallest tile number is specified from the tile group X specified in step S72, and that tile is set as a tile candidate from which cache data is to be deleted. For example, when an area other than the area 602 in FIG. 6 is specified as the tile group X, the tile 0 having the smallest tile number among them is specified as the tile A.
[0092]
Next, proceeding to step S5, as in the first embodiment, even if the number of bytes acquired in step S3 is cached, the resolution is selected from the cache data of tile A so that the cache capacity is equal to or smaller than the threshold value. All cache data except for packets forming level 0 and layer 1 is deleted. Next, proceeding to step S74, the data amount deleted in step S5 is added to the variable Del that accumulates the actually deleted data amount. Next, the process proceeds to step S75, where the data amount Y to be deleted is compared with the deleted data amount Del. If the deleted data amount Del is larger than the data amount Y to be deleted, the process proceeds to step S6, and the next reception is performed. Cache the data you want.
[0093]
On the other hand, if the deleted data amount Del is smaller in step S75, the process proceeds to step S76, the tile A from which cache data has been deleted is removed from the tile group X in step S5, and the process returns to step S73 to specify the tile A. Do it again.
[0094]
In the third embodiment, tables such as those shown in FIGS. 19A to 19C are used as the access management table, but the present invention is not limited to this table.
[0095]
Further, in the third embodiment, for simplicity of description, the deletion area is specified in tile units. However, the present invention is not limited to this. For example, the same concept can be applied to Precinct and code-block. The cache data can be deleted based on the cache data. For example, in the case of Precinct, the data deletion unit is a packet as in the case of a tile, and in the case of code-block, the unit is code data composed of subbands constituting the data of the code block.
[0096]
Further, in the third embodiment, the last access time is stored, and the tile from which the cache data is to be deleted is specified based on the time. However, the tile is used in combination with each of the first to third embodiments. It is also possible. That is, when selecting the tile A from which the cache data is to be deleted in step S72 from the tile group X specified in step S71, the tile farthest from the attention area F is selected as in the first embodiment. It may be specified as tile A.
[0097]
Also, as for the unit for deleting the cache data, only the data with the highest resolution is deleted from the cache data of the tile A specified in step S72, or the data with the highest SNR, as in the second embodiment. It is also possible to delete only.
[0098]
As for the cache method in the first to third embodiments, any method may be used as long as the cached packet data can be individually deleted.
[0099]
[Embodiment 4]
First, the flow of the entire process applied to the first to third embodiments will be described with reference to the flowchart in FIG. This process is executed by issuing a display request from the user 201 (202) to the server 204, and is a prerequisite for the cache process described above.
[0100]
First, in step S81, a display request from a user is received. In the case of the fourth embodiment, displaying the area 601 shown in FIG. 6 at the maximum SNR and the resolution level 3 is a display request by the user. Next, proceeding to step S82, the request accepted in step S81 is compared with the cache data, and it is determined whether or not sufficient data to satisfy the request is stored in the cache. If the cache contains all necessary data, the process proceeds to step S87, and an image is displayed using the cached data. However, if there is insufficient data to display an image corresponding to the display request, the process advances to step S83 to request the server 204 for the missing image data.
[0101]
In the fourth embodiment, the cache memory includes data 701 of a header portion of an image, and 36 tiles 602 in an area 602 surrounded by tiles 16 to 21 and 56 to 61, and forms a resolution level 2 shown in FIG. As for the data group indicated by 1002 in B) and the other tiles, the data group indicated by 1001 in FIG. 10A is cached. Accordingly, in order to satisfy the display request acquired in step S81, the packet data group 708 of the resolution level 3, layer 2 of the nine tiles including the tiles 33 to 35, 41 to 43, and 49 to 51 included in the area 601 is set. Is insufficient, the process proceeds to step S83.
[0102]
In step S83, a request for requesting the server 204 for these missing data is created. In the fourth embodiment, a request for requesting a packet group 708 forming a resolution level 3 and a layer 2 of nine tiles included in the area 601 is created. Next, proceeding to step S84, the request created in step S83 is issued to the server 204. Next, the process proceeds to step S85, where response data from the server 204 is received. Next, the process proceeds to step S86, where the data received in step S85 is cached. Then, the process proceeds to a step S87, in which an image display process is performed using the cached data. As a result, in the fourth embodiment, the area 601 is displayed as the resolution level 3 and the layer 2.
[0103]
Further, as for the cache method in the above-described embodiment, any method may be used as long as it is a method that can individually delete each cached packet data. However, since the purpose of any cache method is to keep the cache capacity within the limit, it is necessary to physically delete the data from the memory.
[0104]
For example, as shown in FIG. 21, one file is formed for each data deletion unit such as a tile, a packet, and a code block, and a management file for managing them is created. For example, a method of deleting a file that caches the corresponding data and updating the management file can be considered. In the case of such a cache creation method, it is possible to easily delete the cache data physically from the cache memory.
[0105]
Alternatively, as indicated by reference numeral 2201 in FIG. 22A, a method may be used in which a plurality of deletion units such as tiles, packets, and code blocks are collectively stored in one file. In this case, since the cache data is managed by one file, the data management is simplified. On the other hand, in order to delete the data to be deleted, the data is deleted as shown by 2203 in FIG. It is necessary to delete the blank part that remains physically after the operation. Therefore, in the example of FIG. 22, it is necessary to move the subsequent data by Y [bytes] corresponding to 2203 in which Tile N and Packet K are stored.
[0106]
FIG. 24 is a flowchart illustrating the flow of the cache data deletion process in this case.
[0107]
First, in step S91, a file name of a cache from which data is to be deleted is stored. For example, if the name of the cache file from which data is to be deleted is “abc.ip2k”, the name is stored. Next, the process proceeds to step S92, where a Temp file is created. This Temp file is finally the file after the cache data is deleted, but in order to avoid the same name, a file given a temporary name such as “temp.ip2k” or “abc_tmp.iip2k” is used. create. Here, it is assumed that “temp.ip2k”.
[0108]
Then, the process proceeds to a step S93, wherein a cache file from which data is to be deleted is opened. Next, the process proceeds to step S94, where the offset value V to the cache data to be deleted and the length L of the deleted data are acquired.
[0109]
In the example of FIG. 22, since it is desired to delete the data of Tile N and Packet K, V = X [bytes] and L = Y [bytes]. Next, the process proceeds to step S95, where data of V [bytes] from the beginning of the cache file is copied from the beginning of the Temp file. Therefore, data including the cache management data 2204 is copied to the Temp file. Next, the process proceeds to step S96, in which a portion from the (V + L) [byte] from the beginning of the cache file to the end of the cache file is copied after the Temp file copied in step S95. Next, the process proceeds to step S97, where both the Temp file and the cache file are closed. Then, the process proceeds to a step S98, where the cache file is deleted. Therefore, at this point, “abc.ip2k” is deleted, and the cache data is stored in the file “temp.ip2k” of the Temp file. Next, the process proceeds to step S99, and the name of the Temp file is changed to the file name saved in step S91, for example, “abc.ip2k” in this example.
[0110]
This makes it possible to physically reduce the file size. However, if this method is adopted, two files of substantially the same size exist temporarily in the cache memory in step S97. Therefore, when determining the threshold value from the cache memory capacity in step S1 in FIG. 8, it is necessary to set the threshold value to about half of the usable memory capacity in consideration of this point. Various other cache creation methods are conceivable, but are omitted because they are not the main application of the present invention.
[0111]
As described above, according to Embodiment 4, cached fragmentary code data can be efficiently deleted, and when browsing the original image, the size of the code data of the same size as the original image is reduced. Does not require memory capacity.
[0112]
After the cached data is deleted, even if the user makes a display request that requires the data again, at least the resolution level 0 and the layer 1 data are retained without being deleted. During the request, data temporarily stored in the cache can be decoded and displayed.
[0113]
[Other embodiments]
As described above, an object of the present invention is to provide a storage medium storing a program code of software for realizing the functions of the present embodiment to a system or an apparatus, and to provide a computer (or CPU or MPU) of the system or the apparatus. Is also achieved by reading and executing the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the function of the above-described embodiment, and the storage medium storing the program code constitutes the present invention. As a storage medium for supplying such a program code, for example, a floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM Etc. can be used.
[0114]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. Performs some or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.
[0115]
Further, after the program code read from the storage medium is written into the memory provided on the function expansion board inserted into the computer or the function expansion unit connected to the computer, the function is executed based on the instruction of the program code. This also includes the case where the CPU provided in the expansion board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0116]
The above-described image processing apparatus and method according to the present embodiment can be represented by the following embodiments.
[0117]
[Embodiment 1] An image processing method for inputting, caching, and reproducing encoded image data in a fragmentary manner,
An attention area specifying step of specifying an attention area of the image;
A determination step of determining whether or not the amount of cache data that caches the image data exceeds an allowable amount of a cache memory by changing the attention area;
A deletion data amount determination step of determining a data amount to be deleted from the cache data stored in the cache memory when it is determined that the data amount exceeds the determination step;
A distance measurement step of measuring a distance from the attention area specified in the attention area identification step to a unit area to be deleted;
A deletion area determination step of determining a deletion area for deleting data from cache data in units of the unit area based on the attention area and the distance measured in the distance measurement step;
A deletion step of deleting cache data included in the deletion area determined in the deletion area determination step,
An image processing method comprising:
[0118]
[Embodiment 2] An image processing method for inputting, caching and reproducing encoded image data in a fragmentary manner,
An attention area specifying step of specifying an attention area of the image;
A determination step of determining whether or not the amount of cache data that caches the image data exceeds an allowable amount of a cache memory by changing the attention area;
A deletion data amount determination step of determining a data amount to be deleted from the cache data stored in the cache memory when it is determined that the data amount exceeds the determination step;
An access time management step of managing the use status of the unit area constituting the image data,
A deletion area determining step of determining a deletion area for deleting data from cache data in units of the unit area, based on the attention area and the use status;
A deletion step of deleting cache data included in the deletion area determined in the deletion area determination step,
An image processing method comprising:
[0119]
[Embodiment 3] In the determining step, based on a remaining amount of the cache memory for caching the image data and an amount of data for displaying the changed area of interest, whether the amount exceeds the allowable amount of the cache memory is determined. 3. The image processing apparatus according to claim 1, wherein
[0120]
[Embodiment 4] The image processing method according to any one of Embodiments 1 to 3, wherein the image data is JPEG2000 encoded data based on ISO / IEC-15444.
[0121]
[Embodiment 5] The image processing method according to Embodiment 4, wherein the image data is input in units of JPEG2000 fragmented packets.
[0122]
[Sixth Embodiment] The image processing method according to the fourth embodiment, wherein the unit area corresponds to a JPEG2000 tile.
[0123]
[Seventh Embodiment] The image processing method according to the fourth or fifth embodiment, wherein in the deleting step, the packet is deleted in packet units.
[0124]
[Eighth Embodiment] The image processing method according to the fourth embodiment or the fifth embodiment, wherein in the deleting step, data of all packets except for the packets of the resolution level 0 and the layer 1 in the deleted area is deleted.
[0125]
[Embodiment 9] The image according to Embodiment 8, wherein the unit area is a packet excluding the resolution level 0 and the layer 1 and is selected in packet units and is deleted at least once or several times. Processing method.
[0126]
[Embodiment 10] The image processing method according to Embodiment 4 or 5, wherein the unit area is a JPEG2000 precinct.
[0127]
[Embodiment 11] The image processing method according to embodiment 10, wherein the precinct is deleted in packet units in the deletion step.
[0128]
[Embodiment 12] The image processing method according to embodiment 4 or 5, wherein the unit area is a JPEG2000 code-block.
[0129]
[Thirteenth Embodiment] The twelfth embodiment is characterized in that the unit area is code-block data composed of data obtained by removing an LL component from subbands necessary to form the same resolution and the same layer. The image processing method according to 1.
[0130]
[Embodiment 14] An image processing apparatus for inputting, caching, and reproducing encoded image data fragmentarily,
Attention area specifying means for specifying an attention area of an image;
Determining means for determining whether or not the amount of cache data caching the image data exceeds an allowable amount of a cache memory by changing the attention area;
Deletion data amount determination means for determining the data amount to be deleted from the cache data stored in the cache memory when it is determined that the data exceeds the data,
Distance measurement means for measuring the distance from the attention area specified by the attention area identification means to the unit area to be deleted,
A deletion area determining unit that determines a deletion area for deleting data from cache data in units of the unit area based on the attention area and the distance measured by the distance measurement unit;
Deletion means for deleting cache data included in the deletion area determined by the deletion area determination means,
An image processing apparatus comprising:
[0131]
[Embodiment 15] An image processing apparatus for fragmentally inputting, caching, and reproducing encoded image data,
Attention area specifying means for specifying an attention area of an image;
Determining means for determining whether or not the amount of cache data caching the image data exceeds an allowable amount of a cache memory by changing the attention area;
Deletion data amount determination means for determining the data amount to be deleted from the cache data stored in the cache memory when it is determined that the data exceeds the data,
Access time management means for managing the use status of the unit area constituting the image data,
A deletion area determining unit that determines a deletion area for deleting data from cache data in units of the unit area based on the attention area and the usage state;
Deletion means for deleting cache data included in the deletion area determined by the deletion area determination means,
An image processing apparatus comprising:
[0132]
[Embodiment 16] The determination means determines whether or not the capacity of the cache memory is exceeded based on the remaining capacity of the cache memory for caching the image data and the data amount for displaying the changed area of interest. The image processing device according to embodiment 14 or 15, wherein
[0133]
[Embodiment 17] The image processing apparatus according to any one of Embodiments 14 to 16, wherein the image data is JPEG2000 encoded data based on ISO / IEC-15444.
[0134]
Embodiment 18 The image processing apparatus according to embodiment 17, wherein the image data is input in JPEG2000 fragmented packet units.
[0135]
[Embodiment 19] The image processing apparatus according to embodiment 17, wherein the unit area corresponds to a JPEG2000 tile.
[0136]
[Embodiment 20] The image processing apparatus according to embodiment 17 or 18, wherein the deletion unit deletes the packet.
[0137]
[Embodiment 21] The image processing apparatus according to embodiment 17 or 18, wherein the deletion unit deletes data of all packets except for the packets of resolution level 0 and layer 1 in the deletion area.
[0138]
[Embodiment 22] The image according to Embodiment 20, wherein the unit area is a packet excluding the resolution level 0 and the layer 1 and is selected in units of packets and deleted once or several times. Processing equipment.
[0139]
[Embodiment 23] The image processing apparatus according to embodiment 17 or 18, wherein the unit area is a JPEG2000 precinct.
[0140]
[Embodiment 24] The image processing apparatus according to embodiment 23, wherein the precinct is deleted in packet units by the deletion unit.
[0141]
[Embodiment 25] The image processing apparatus according to embodiment 17 or 18, wherein the unit area is a JPEG2000 code-block. [Twenty-sixth Embodiment] The twenty-fifth embodiment is characterized in that the unit area is code-block data composed of data obtained by removing an LL component from subbands necessary to form the same resolution and the same layer. An image processing apparatus according to claim 1.
[0142]
As described above, according to this embodiment, cached fragmentary code data can be efficiently deleted, and when browsing an original image on the server side, the amount of code data of the original image is the same as that of the original image. Does not require large memory capacity. Further, since a tile of interest is specified and a tile that is spatially distant therefrom or a tile whose last time displayed from the current time is temporally distant is to be deleted, no complicated calculation is required.
[0143]
Further, when the cache data is deleted, the data of the resolution level 0 and the layer 1 are always left, so that the user's request has higher resolution and higher SNR than the cached data. Also in the case of downloading from the side, there is an advantage that it is possible to temporarily display a low-resolution and low-SNR image using cached data.
[0144]
【The invention's effect】
As described above, according to the present invention, cached encoded image data is deleted in response to a user request while deleting cache data having little effect on a reproduced image to prevent data overflow in the cache. There is an effect that the display can be performed.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a client or a server according to an embodiment.
FIG. 2 is a diagram illustrating an outline of a network according to the present embodiment.
FIG. 3 is a diagram illustrating general JPEG2000 encoded data.
FIG. 4 is a diagram illustrating a relationship between a resolution (image size) and a Resolution number in JPEG2000 encoded data.
FIG. 5 is a diagram showing a conceptual diagram of a request and a response in a packet unit.
FIG. 6 is a diagram illustrating a data structure of each layer of an original image.
FIG. 7 is a diagram illustrating JPEG2000 encoded data stored in a server according to the present embodiment.
FIG. 8 is a flowchart illustrating cache of encoded data according to the first embodiment of the present invention.
FIG. 9 is a flowchart showing a process of deleting cache data in step S5 of FIG. 8;
FIG. 10 is a diagram showing an example of cache data of a tile in a client according to the present embodiment.
FIG. 11 is a flowchart showing a process of acquiring a deletion area R of cache data in step S13 in FIG. 9;
FIG. 12 is a diagram illustrating an algorithm for acquiring a data deletion area R according to the first embodiment.
FIG. 13 is a flowchart illustrating a method (step S14: FIG. 9) for determining an order in which cache data is deleted according to the present embodiment.
FIG. 14 is a diagram illustrating a state in which tile data of a deletion area R is cached according to the embodiment.
FIG. 15 is a flowchart illustrating a deletion process according to the second embodiment of the present invention.
FIG. 16 is a diagram showing an example of cache data after data deletion in a deletion area R according to the second embodiment.
FIG. 17 is a flowchart illustrating a management table creation process according to the third embodiment of the present invention.
FIG. 18 is a diagram illustrating an SIZ marker in a main header of JPEG2000.
FIG. 19 is a diagram illustrating an example of an access management table according to Embodiment 3 of the present invention.
FIG. 20 is a flowchart showing a cache control process in step S68 of FIG. 17 according to the third embodiment.
FIG. 21 is a diagram illustrating a cache management file according to Embodiment 4 of the present invention.
FIG. 22 is a diagram illustrating deletion of cache management data and cache data according to Embodiment 4 of the present invention.
FIG. 23 is a flowchart illustrating an outline of processing according to a display request from a user to a server according to Embodiment 4 of the present invention.
FIG. 24 is a flowchart illustrating a cache data deletion process according to Embodiment 4 of the present invention.

Claims (1)

符号化された画像データを断片的に入力しキャッシュして再生する画像処理方法であって、
画像の注目領域を特定する注目領域特定工程と、
前記注目領域が変更されることにより、前記画像データをキャッシュしているキャッシュデータ量がキャッシュメモリの許容量を越えるかどうかを判定する判定工程と、
前記判定工程で越えると判定されると前記キャッシュメモリに格納されているキャッシュデータから削除すべきデータ量を求める削除データ量決定工程と、
前記注目領域特定工程で特定された注目領域から削除する単位領域までの距離を測定する距離測定工程と、
前記注目領域と前記距離測定工程で測定された前記距離に基づいて、キャッシュデータからデータを削除する削除領域を前記単位領域を単位として決定する削除領域決定工程と、
前記削除領域決定工程で決定された前記削除領域に含まれるキャッシュデータを削除する削除工程と、
を有することを特徴とする画像処理方法。
An image processing method for inputting, caching, and reproducing encoded image data in a fragmentary manner,
An attention area specifying step of specifying an attention area of the image;
A determination step of determining whether or not the amount of cache data that caches the image data exceeds an allowable amount of a cache memory by changing the attention area;
A deletion data amount determination step of determining a data amount to be deleted from the cache data stored in the cache memory when it is determined that the data amount exceeds the determination step;
A distance measurement step of measuring a distance from the attention area specified in the attention area identification step to a unit area to be deleted;
A deletion area determination step of determining a deletion area for deleting data from cache data in units of the unit area based on the attention area and the distance measured in the distance measurement step;
A deletion step of deleting cache data included in the deletion area determined in the deletion area determination step,
An image processing method comprising:
JP2002316403A 2002-01-31 2002-10-30 Image processing method and apparatus Expired - Fee Related JP4109963B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002316403A JP4109963B2 (en) 2002-10-30 2002-10-30 Image processing method and apparatus
US10/353,026 US7200272B2 (en) 2002-01-31 2003-01-29 Image processing method storing input encoded data into a memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002316403A JP4109963B2 (en) 2002-10-30 2002-10-30 Image processing method and apparatus

Publications (3)

Publication Number Publication Date
JP2004153562A true JP2004153562A (en) 2004-05-27
JP2004153562A5 JP2004153562A5 (en) 2005-12-15
JP4109963B2 JP4109963B2 (en) 2008-07-02

Family

ID=32460123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002316403A Expired - Fee Related JP4109963B2 (en) 2002-01-31 2002-10-30 Image processing method and apparatus

Country Status (1)

Country Link
JP (1) JP4109963B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009017110A (en) * 2007-07-03 2009-01-22 Ricoh Co Ltd Image processor, image processing method, and image processing program
JP2009206884A (en) * 2008-02-28 2009-09-10 Ricoh Co Ltd Image processor, image processing method, program and recording medium
CN102290033A (en) * 2010-06-17 2011-12-21 无锡中星微电子有限公司 Method and device for refreshing image

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009017110A (en) * 2007-07-03 2009-01-22 Ricoh Co Ltd Image processor, image processing method, and image processing program
JP2009206884A (en) * 2008-02-28 2009-09-10 Ricoh Co Ltd Image processor, image processing method, program and recording medium
CN102290033A (en) * 2010-06-17 2011-12-21 无锡中星微电子有限公司 Method and device for refreshing image
CN102290033B (en) * 2010-06-17 2014-11-05 无锡中星微电子有限公司 Method and device for refreshing image

Also Published As

Publication number Publication date
JP4109963B2 (en) 2008-07-02

Similar Documents

Publication Publication Date Title
US7580577B2 (en) Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
US20030142871A1 (en) Image processing method and apparatus
JP4223729B2 (en) Storage system
JP3560758B2 (en) Data management method and data management device using the same
JP2007234027A (en) Method, server and computer program for access to partial document imagery
US7660476B2 (en) Image processing method and image processing apparatus
JP3445912B2 (en) Hypertext automatic acquisition device
US7146382B2 (en) Image processing apparatus and its method and server apparatus
JP4109963B2 (en) Image processing method and apparatus
JP4971717B2 (en) Directory distributed storage device and data processing request transfer program
US7809706B2 (en) Information display apparatus and meta-information display method
JP4250401B2 (en) Image processing apparatus and cache control method in the apparatus
JP3768866B2 (en) Method and apparatus for creating encoded data
JP3897691B2 (en) Scroll display method and apparatus
JP4713257B2 (en) Data storage device and version management program
JP2007287030A (en) Information retrieval system, information retrieving method, index information generating apparatus, information processing apparatus, index information generation program, information processing program, and computer readable storage medium storing program
JP4065535B2 (en) Code data creation method and apparatus
JP2009176085A (en) Content viewing apparats and content viewing program
JP2004145759A (en) Image processing method
EP4084491B1 (en) Dividing an astc texture to a set of sub-images
JP4116604B2 (en) Data recording device
JP4125087B2 (en) Image processing method
JP3768934B2 (en) Image processing apparatus and data cache method thereof
JP3958198B2 (en) Image processing method
JP3476805B2 (en) Image display system and method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051028

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080407

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110411

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4109963

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130411

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140411

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees