JP2004199291A - Scroll display method and device - Google Patents

Scroll display method and device Download PDF

Info

Publication number
JP2004199291A
JP2004199291A JP2002365828A JP2002365828A JP2004199291A JP 2004199291 A JP2004199291 A JP 2004199291A JP 2002365828 A JP2002365828 A JP 2002365828A JP 2002365828 A JP2002365828 A JP 2002365828A JP 2004199291 A JP2004199291 A JP 2004199291A
Authority
JP
Japan
Prior art keywords
data
resolution
display
decoding
displayed
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
JP2002365828A
Other languages
Japanese (ja)
Other versions
JP3897691B2 (en
Inventor
Miyuki Enokida
幸 榎田
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 JP2002365828A priority Critical patent/JP3897691B2/en
Publication of JP2004199291A publication Critical patent/JP2004199291A/en
Application granted granted Critical
Publication of JP3897691B2 publication Critical patent/JP3897691B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Digital Computer Display Output (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a scroll display method with which a user response during the scroll display of image data can be improved by reducing communication traffic between a server and a client. <P>SOLUTION: A portion of coded data stored in a server is fragmentarily received through a network, and the fragmentary coded data are cached. Then, only the cached coded data are decoded during the scroll operation, and decoded image data are displayed so as to be enlarged. After the scroll operation of the cached coded data is ended, the coded data are decoded with higher resolution and higher layer than the previous time, and the decoded image data are displayed so as to be enlarged. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークを介して断片的なデータを受信しながらデコードされた画像をスクロール表示することに関する。
【0002】
【従来の技術】
インターネット上では、WWWサーバにWeb(ウエブ)ブラウザからアクセスして文書データや画像データ等を閲覧することが盛んに行われている。このように、インターネット上に情報を公開するWWWサーバと、その情報を閲覧するためのクライアントとを含むシステム環境において、各クライアントではウエブブラウザを使用して、WWWサーバによって公開された情報を閲覧することができる。
【0003】
WWWサーバには、通常、ホームページといわれる公開するための情報をHTMLで記述した文書が保存されており、それにクライアント側のウエブブラウザがアクセスしてクライアント側のコンピュータに表示する。また、クライアント側のウエブブラウザは、表示しているページ内のリンクを辿っていくことにより、自分が必要な情報を得ることができる。さらに、WWWサーバが管理しているファイルをダウンロードする方法として、File Transfer Protocol(以下、「FTP」と略す。)という方法がある。このFTPとは、ネットワークを通して、WWWサーバ上にあるファイルを一度にクライアント側のコンピュータに転送する仕組みのことである。
【0004】
また、画像ファイルへ断片的にアクセスして表示するためのプロトコルとしてFlashpix/IIPがある。このインターネット・イメージング・プロトコル(IIP)は、Flashpix画像データファイルのフォーマットに最適なプロトコルになっており、ネットワークを通して画像データの一部分を要求できるものである。この時のアクセスは、Flashpixのタイル単位に行われる。
【0005】
一方、このFlashpix/IIPをそのままJPEG2000に適用した場合を考えると、JPEG2000では、各スケーラビリティ(Scalability)の符号化データは、そのスケーラビリティより1つ下のスケーラビリティのデータとの差分データで構成されている。そこで、クライアント側で受信した断片的な符号化データをキャッシュしておき、全符号化データをデコーダに引き渡して最初から再デコードする方法と、デコーダを途中で止めておいて今回受信した符号化データをデコーダに渡し、前回の続きからデコードする方法とがある。
【0006】
このような方法のうち、マルチ解像度データを有する画像符号化データの中から必要な部分のデータのみの断片化されたデータをサーバに要求し、そのデータを受信して表示するシステムにおいて、クライアント側のコンピュータでの画像データの表示、特にスクロール表示方法として、従来から様々な方法が提案されている。
【0007】
例えば、下地画像から切り出した画像と下地画像を表示する画像編集装置に関する技術では、特に、上記2種類の画像を同期させて、拡大/縮小/スクロール処理を高速に行い、高速表示するような技術が提案されている(例えば、特許文献1参照)。
【0008】
また、画像メモリに対するリード/ライトや、画像処理のため画像処理プロセッサに対する制御信号等が、ローカルバス上でバス競合が起きないようにするようなハードウェア構成及び制御を行う静止画再生装置に関する技術も提案されている(例えば、特許文献2)。
【0009】
さらに、ランレングス符号データをデコードし、スクロール表示するための装置であって、画面1面分のメモリの代わりに、ラインメモリで処理を行う画像スクロール装置に関する技術も提案されている(例えば、特許文献3)。
【0010】
さらにまた、表示用のメモリから表示制御手段にデータを転送する時に、あらかじめ表示しない部分を設定しておき、表示しない部分のデータをメモリから読み出さないように制御する描画表示制御装置及び描画表示制御装置を備えた描画表示装置に関する技術も提案されている。
【0011】
【特許文献1】
特開平05−054111号公報
【0012】
【特許文献2】
特開平06−004067号公報
【0013】
【特許文献3】
特開平06−019452号公報
【0014】
【特許文献4】
特開平11−052942号公報
【0015】
【発明が解決しようとする課題】
しかしながら、ユーザの要求に従って、画面上で表示領域をスクロールする毎に、最終的に必要な解像度とSN比(SNR)で表示させようとして、新規に表示が必要になった部分の符号データをサーバに要求発行していると、符号データの通信時間が発生して、表示までの時間がかかるという問題点がある。このような場合、画像データのスクロール表示中のユーザレスポンスが悪くなる。
【0016】
一方、Flashpix/IIPの場合は、タイル単位で独立した符号データになっているため、1度受信したタイルのデータをクライアント側でキャッシュする必要はない。しかし、スクロール表示によって低解像度のデータを表示するためには、低解像度の符号データを新たにサーバに要求する必要があり、再度通信することによって、通信時間やトラフィックが増大するという問題点がある。また、1度表示した画像データをキャッシュしておくような場合には、画像データをキャッシュするためのメモリ容量がさらに必要になるという問題点がある。
【0017】
また、Flahspix/IIPで符号データをキャッシュしていた場合は、符号方式がJPEG方式であるため、画質を調整しながらデコードすることが不可能である。そのため、低解像度の符号データをデコードするために、タイルの数に比例したデコード時間が固定的に必要になるという問題点がある。
【0018】
さらに、クライアント上でキャッシュしている、既に受信済みのJPEG2000方式によって圧縮符号化された符号データのみを使って、新規に表示に必要になった部分をデコードして表示する場合、符号データが存在しない部分については、離散ウェーブレット変換(DWT)係数に0を仮定してデコードし、表示することも考えられるが、この場合はデコードに時間がかかるという問題点がある。
【0019】
さらにまた、未受信部分の符号データを補う方法として、zero length packetを使う方法もあるが、この場合も前述と同様に、最終的に必要な解像度とSNRで画像データをデコードするために時間がかかるという問題点がある。
【0020】
ここで、上述したように、特許文献1に記載の「画像編集装置」は、下地画像から切り出した画像と下地画像の2種類の画像を同期させて、拡大/縮小/スクロール処理を高速に行うものである。したがって、切り出した画像データ部分を管理するための情報を持ち制御するものであって、表示している領域全体をスクロールするものである。すなわち、JPEG2000をデコードしながら高速にスクロール表示するものであって、全画像データを保持してからスクロールするものではなく、上記問題点を解決することはできない。
【0021】
また、上述した特許文献2に記載の「静止画再生装置」は、画像メモリに対するリード/ライトや画像処理のため画像処理プロセッサに対する制御信号等が、ローカルバス上でバス競合が起きないようにするハードウェア構成及び制御を行うものである。すなわち、表示装置(ハードウェア)に関する技術ではなく、JPEG2000デコーダとIIP2k(画像通信)とを合わせた構成に関する技術であって、上記問題点を解決することはできない。
【0022】
さらに、上述した特許文献3に記載の「画像スクロール装置」は、ランレングス符号データをデコードし、スクロール表示するための技術であり、特に画面1面分のメモリの変わりに、ラインメモリで処理を行うものである。すなわち、表示領域より大きい画像データをデコードし、画面をスクロールする時に、現在表示している解像度の符号データを全てデコードしてからスクロール表示するのではなく、デコードしながらスクロール表示するものである。したがって、JPEG2000のデコードをどこまで行うかを制御してデコード時間を短縮するものであって、上記問題点を解決することはできない。
【0023】
さらにまた、上記特許文献4に記載の「描画表示制御装置及び該描画表示制御装置を備えた描画表示装置」は、上述したように、表示用のメモリから表示制御手段にデータを転送する時に、あらかじめ表示しない部分を設定しておき、この表示しない部分のデータはメモリから読み出しを行わないように制御するための技術である。しかし、以下に示す本発明の実施形態では、この表示しない部分に相当する領域は特に無く、表示領域全てに対して表示可能とするものであり、特許文献4に記載の発明のように2画面の画像データの重畳等の処理の必要はない。
【0024】
本発明は、このような事情を考慮してなされたものであり、サーバとクライアント間の通信トラフィックを少なくして、画像データのスクロール表示中のユーザレスポンスを向上させることができるスクロール表示方法を提供することを目的とする。
【0025】
【課題を解決するための手段】
上記課題を解決するために、本発明は、サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示方法であって、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ工程と、
スクロール操作中に、前記キャッシュ工程でキャッシュされた前記符号化データのみをデコードする第1のデコード工程と、
前記第1のデコード工程でデコードされた前記画像データを拡大表示する第1の表示工程と、
スクロール操作終了後に、前記キャッシュ工程でキャッシュされた前記符号化データを前記第1のデコード工程よりも高解像度かつ高Layerでデコードする第2のデコード工程と、
前記第2のデコード工程でデコードされた画像データを拡大表示する第2の表示工程と、
キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定工程と、
前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求工程と、
前記キャッシュ工程でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード工程と、
前記第3のデコード工程でデコードされた画像データを表示する第3の表示工程と
を有することを特徴とする。
【0026】
すなわち、以下の実施形態で説明するように、クライアントで画像データを表示する際に、画像データのある一部分を表示し、ユーザの要求により表示領域を変更する。ここで、画面をスクロール表示する場合は、クライアントにおいて既に受信済のJPEG2000符号データのみを使用し、本来表示されるべき解像度よりも低い解像度で符号化データの低いSNR部分のみを高速にデコードして表示する。
【0027】
そして、スクロール終了の時点で手元にある符号化データでデコードできる最終的に表示しなければならない解像度とSNRに最も近い符号データをデコードして表示する。これと同時に、この時点で表示された画像データが最終的に必要な全符号化データではない場合は、サーバに対して不足している部分の符号化データをさらに要求して、受信後最終的な画像データをデコードし、表示する。これによって、スクロール終了の段階でも一旦手元にある符号化データで最終的に表示しなければならない画像データに最も近い画像を表示しておき、全符号化データが送信された後に再表示させる。
【0028】
【発明の実施形態】
以下、図面を参照して、本発明の好適な実施形態について詳細に説明する。
【0029】
以下に示す本実施形態は、ネットワークを介して断片的な符号データを受信しながら、画像データをスクロール表示する方法に関するものである。そして、特にISO/IEC−15444に準拠したJPEG2000符号化データをインターネット・イメージング・プロトコル(IIP)等の通信プロトコルを使用することによって、クライアントはサーバから画像符号データの断片的な領域、或いは、断片的な符号化データを受信し、クライアントでのスクロール処理の体感スピードを向上させるものである。
【0030】
<第1の実施形態>
図1は、本発明の第1の実施形態に係るサーバ及びクライアントを含むネットワークシステムの構成を示す概念図である。すなわち、インターネットに代表されるネットワーク上にサーバ・コンピュータやクライアント・コンピュータを含む複数のコンピュータが接続されている様子を示す概念図である。
【0031】
図1において、100はインターネットに代表されるネットワークを示す。また、101、103はサーバ・コンピュータであり、それぞれ画像データを送信するためのJPEG2000用のIIPサーバをはじめ、WWWサーバ機能に必要なソフトウェアを備えている。また、サーバ101、103には、それぞれ大容量のハードディスク101a、103aが接続されており、それぞれのハードディスクに大量の画像データが格納されている。また、102a、102bはクライアント・コンピュータであり、それぞれ、ウエブ(Web)ブラウザ、JPEG2000デコーダ等のクライアント側で必要なソフトウェアを備えている。
【0032】
図2は、本発明の第1の実施形態に係るサーバ・コンピュータ101、103及びクライアント・コンピュータ102a、102b等の各コンピュータのハードウェア構成を示すブロック図である。
【0033】
図2において、201はCPUであり、それぞれのコンピュータ等の装置全体の制御を行う。202はキーボードであり、マウス202aとともに当該装置に各種データやコマンド等を入力するために使用される。203は表示部であり、例えばCRTや液晶ディスプレイ等を備えている。204はROM、205はRAMであって、当該装置における記憶部を構成するものであり、この装置が実行するプログラムや、この装置が利用するデータ等を記憶する。
【0034】
206はハードディスクであり、当該装置で使用される外部記憶装置を構成している。また、207はフレキシブルディスクであり、当該装置で使用される外部記憶装置として当該装置のインタフェースを介して着脱可能な構成をしている。さらに、208はプリンタである。さらにまた、209はネットワークを制御するネットワークインタフェース(I/F)であり、ここからインターネット等のネットワーク100に接続されているサーバ・コンピュータ等のネットワーク上の資源にアクセスしたり(クライアントの場合)、クライアントからの要求に応じて符号化された画像や文書データを送信する(サーバの場合)ことができる。
【0035】
本実施形態では、既に生成済みのJPEG2000符号ファイルがサーバ・コンピュータ101、103で管理されている。一方、クライアント・コンピュータ102a、102bは、画像表示/印刷アプリケーション等のJPEG2000符号ファイル内の必要な部分のみを、JPEG2000用のIIPを使用してサーバ・コンピュータ101、103に要求する。そして、それに応答して送られてくる符号化データを断片的に受信し、この受信した断片的な符号化データを、例えば、ハードディスク206等にキャッシュする。
【0036】
クライアント・コンピュータ102a、102bでは、このハードディスク206等にキャッシュされた断片的なJPEG2000符号データを直接JPEG2000のデコーダで処理しても良いし、あるいは一旦このキャッシュされた符号データをJPEG2000準拠のJPEG2000符号データに変換してJPEG2000デコーダに渡しても良い。以下に示す本実施形態では、説明を簡単にするために、直接キャッシュされているJPEG2000符号データをデコーダで処理するものとして説明する。
【0037】
クライアント・コンピュータ102a、102bのユーザは、例えばウィンドウズ(登録商標)マシンを使用してホームページを開き、そこに書かれているJPEG2000の画像へのリンクをクリックする。これにより、JPEG2000の画像が、クライアント102a、102bの用途に適した画像サイズや解像度で表示するために必要な断片的なデータとして取得され、キャッシュされて、必要な部分のデコードを行った後に表示される。
【0038】
以下では、その後ユーザの要求により、表示する部分をスクロールしながら変更するという場合を想定する。
【0039】
ここで、図3を参照して、一般的なJPEG2000の符号データを説明する。図3は、第1の実施形態におけるLayer-resolution level-component-position progression(SNR Progression)に沿って記録されたJPEG2000符号ファイルの構成を示す概念図である。このSNR Progressionに準じた場合、Layer(レイヤ)/Resolution(解像度)/Component(成分)/Position(位置)の順に記録される。
【0040】
図4は、第1の実施形態におけるJPEG2000の解像度スケーラビリティを説明する図である。すなわち、解像度(画像サイズ)とResolution番号との関係が示される。図4において、最も小さい解像度の画像の解像度番号(resolution level)を「0」とし、Resolution番号が1つ増加するごとにデコードされた画像の幅と高さが共に2倍になっていく。また、各レイヤ(Layer)は、各解像度毎に、Layer番号の小さい順に割り当てられている。Layer番号は、復元する画像の原画に対するS/N比に対応し、Layer番号が小さいほどS/N比が悪くなる。
【0041】
1つのJPEG2000符号ファイル内でのResolution番号、Layer番号及びComponent番号の最大値は、エンコーダによって予め設定され、そのパラメータに従ってエンコードされており、その情報は符号化データの中に格納されている。また、各パケット(packet)は、そのパケットに格納されているコードブロック(code-block)の情報を管理しているパケットヘッダ(packet header)部と、各コードブロックの符号化データから構成されている。
【0042】
このようなJPEG2000符号データを使えば、クライアント102a、102bは、サーバ101に格納されている全ての画像データを取得することなく、必要な部分のデータのみをサーバ101から受信することが可能である。尚、以下に示す実施形態では、一例としてサーバ101の場合で説明するが、サーバ103の場合も同様にして実行可能である。
【0043】
また、クライアントの受信データの単位としては、JPEG2000符号データのパケット(packet)、或いは、パケットよりもさらに小さい符号化単位であるコードブロック単位が考えられる。尚、本実施形態では、クライアントがサーバから受信するデータ単位としてパケット単位を想定するが、コードブロック単位においても本実施形態と同様にして実行可能である。
【0044】
すなわち、本実施形態に係るスクロール表示方法では、符号化データが、サーバからネットワークを介してパケット単位、或いは、コードブロック単位で送信されることを特徴とする。
【0045】
図5は、第1の実施形態におけるサーバ、クライアント間でのパケット単位でのデータのリクエスト及びレスポンスを説明するための概念図である。
【0046】
図5において、クライアント102aは、サーバ101に格納されている画像のタイル番号(Tile)と解像度番号(resolution level)とレイヤ(Layer)、component、position番号を指定してデータを要求する。図5に示す例では、タイル番号(Tile)は「1」、解像度「0」、レイヤ「0」、Component「0」、そしてPosition番号「0」である。これによりサーバ101は、画像503のコードストリームを解析して、その指定されたタイル番号、Resolution levelとLayer、component、position番号に相当するパケット(packet)データを抜き出し、パケット0としてクライアント102aに送り返す。
【0047】
図6は、第1の実施形態におけるタイル分割の概念図である。図6に示す例は、画像データをX方向、Y方向ともに8個分のタイル、すなわち画像全体で64個のタイルに分割した場合である。尚、図中の数字は、タイル番号を示す。また、本実施形態では、画像データの最大解像度の画像サイズを1024×1024画素とする。この場合、最大解像度での各タイルの画素数は128×128画素となる。
【0048】
図7は、第1の実施形態で使用されるサーバ101で管理(格納)されているJPEG2000符号ファイルの一例を示す図である。
【0049】
図7において、700は、SNR Progressionでエンコードされている例の符号データ全体の構成である。図7に示す符号ファイルは、図6に示した64個のタイルに分割された場合の符号を示している。図7において、701は、各タイルの符号データの例である。タイルの符号データを構成するものとして、タイルパートヘッダ702とパケットデータ703がある。
【0050】
図7に示す例では、Layerは「0」〜「2」の3種類、Resolution levelは「0」〜「5」の6種類、ComponentとPositionは各1種類である。また、説明を簡単にするために、サーバ101で管理しているJPEG2000の最大解像度の画像サイズを前述のとおり、1024×1024画素とする。すなわち、6種類のResolution levelがある場合、各解像度での画像サイズは、解像度番号5が1024×1024、以下順に512×512、256×256、128×128、64×64、となり最低解像度の解像度番号0が32×32画素となる。
【0051】
図8は、第1の実施形態に係るクライアント102aにおけるアプリケーションによる処理概要を説明するためのフローチャートである。このフローチャートでは、クライアント102aでJPEG2000アプリケーションが起動され、表示したいJPEG2000ファイルが別の手段で指定された後の画像データの表示処理手順が示されている。尚、他のクライアント(例えば、クライアント102b)においても同様の処理が行われる。
【0052】
まず、クライアント・アプリケーションにより、指定されたファイルのサムネイル画像が表示される(ステップS800)。その後、拡大表示され(ステップS801)、スクロール表示される(ステップS802)。
【0053】
具体的には、クライアント・アプリケーションでの画像表示領域のサイズを128×128画素とすると、ステップS800でのサムネイル画像の表示では、全タイルの解像度番号2の最大SNRの符号データまでをデコードして表示する。次に、ステップS801での拡大表示は、例えばステップS800で表示した画像よりも2段階拡大すると、解像度は解像度番号4になる。この場合、表示領域のサイズが128×128画素であるため、画像全体を表示することはできない。従って、例えばステップS800で表示している画像の中心を固定して拡大するとすると、図6の600で示されるタイル番号27、28、35、36の4タイルを表示することになる。
【0054】
図9は、図8のステップS800におけるサムネイル表示のための通信プロトコルと受信した符号データを説明するための図である。すなわち、図9では、ステップS800の処理を実行後のキャッシュ状態が示されている。図9において、図7と同じ内容の符号データには同一の番号を付している。また、ステップS800では、全タイルに対して同一の要求を発行しているため、同一のキャッシュの状態になっている。
【0055】
図9において、901は各タイルのキャッシュを示したものである。本実施形態では、解像度番号2までのすべての符号データを受信しているため、受信している符号データの部分には、「Layer数値/Reso数値/Comp数値/Pos数値」の表現で記述し、まだ受信していない部分は、「ZLP(Zero Length Packet)」の表現を使用している。
【0056】
また、図10は、図8のステップS800からステップS801に移った後の通信プロトコルと受信した符号データを説明するための図である。ステップS801では、図6におけるタイル番号27、28、35、36の4タイルのみ足りない部分「Layer[0-2]/Reso[3-4]/Comp0/Pos0」で示す6つの符号データをサーバに要求したため、この部分のデータが充填されている。上記以外のタイルについては、図9に示したものと同一の状態である。
【0057】
次に、ステップS802のスクロール表示の処理について説明する。本実施形態におけるスクロール表示では、タイル番号27、28、35、36の4つのタイルの解像度番号4、最大SNRが表示されていた状態から、図6の602で示す領域(タイル番号36、37、44、45の領域)を経て、601で示す領域(タイル番号45、46、53、54の領域)まで連続スクロールして表示した場合について説明する。図11は、第1の実施形態に係るスクロール処理(ステップS802)を詳細に説明するためのフローチャートである。
【0058】
まず、ユーザのマウスなどのポインティング・デバイスにより、スクロールの操作が開始され、その移動量に応じて該当する位置の画像データを表示する時の、マウスの移動量が計算される(ステップS802a)。次に、ステップS802aで求められた移動量に基づいて、表示する画像データの領域を特定する(ステップS802b)。ここでは、特に該当するタイル群を計算する。すなわち、本実施形態に係るスクロール表示方法では、デコードされた画像データが表示された表示画面中のポインタに移動量に基づいて、当該表示画面にスクロール表示させる画像データの領域を特定することを特徴とする。
【0059】
その後、ステップS802bで求めたタイル群を最低解像度かつ最低Layerでデコードする(ステップS802c)。そして、ステップS802cでデコードして得られた画像データを必要に応じて拡大処理を行って表示する(ステップS802d)。その後、ユーザからのスクロール要求が連続しているか否かを判断する(ステップS802e)。この判断方法は、例えばスクロールの指示方法がマウスの左ボタンを押しながら移動させるような方法の場合であれば、マウスのボタンの状態を判断して、ボタンが押し続けられている状態か否かを判断する。その結果、ボタンが押し続けられている場合は終了と判断されてステップS802aに戻る。一方、マウスのボタンが離されている場合はステップS802fに移動する。
【0060】
すなわち、本実施形態で説明するスクロール表示方法は、サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示方法である。そして、本スクロール表示方法は、まず、クライアントが受信した断片的な符号化データをキャッシュする(キャッシュ工程)。次いで、キャッシュ工程でキャッシュされた符号化データのみをスクロール操作中にデコードし(第1のデコード工程)、デコードされた画像データを拡大表示する(第1の表示工程)。そして、キャッシュ工程でキャッシュされた符号化データをスクロール操作終了後に、第1のデコード工程よりも高解像度かつ高Layerでデコードする(第2のデコード工程)。そして、第2のデコード工程でデコードされた画像データを拡大表示する(第2の表示工程)ことを特徴とする。
【0061】
また、本実施形態に係るスクロール表示方法は、上記第1の表示工程が、第1のデコード工程における符号化データの解像度及びLayerから画像データの拡大率を求め、当該画像データを拡大表示することを特徴とする。さらに、本実施形態に係るスクロール表示方法は、上記第2の表示工程が、第2のデコード工程における符号化データの解像度及びLayerから画像データの拡大率を求め、当該画像データを拡大表示することを特徴とする。
【0062】
ステップS802aからS802eまでの具体的な例について示す。例えば、ステップS802aでマウスが図6の602に移動したとする。この場合、ステップS802a、ステップS802bによって、今回表示する領域がタイル番号36、37、44、45で示される領域であることを判断する。そして、ステップS802cでタイル番号36、37、44、45の4つのタイル群の解像度番号0、Layerの番号0をデコードするようにJPEG2000のデコーダに指示を与える。
【0063】
その後、ステップS802dでは、ステップS802cでデコードして得られた粗い画像データを表示する。本実施形態の場合は、最低解像度のデコードを行っているため、最終的に表示しなければならない解像度まで拡大する必要があり、今回は16倍の拡大処理を行いながら表示するものとする。また、本実施形態の場合は、その後もスクロールするため、ステップS802eで終了していない場合はステップS802aに戻る。
【0064】
その後、ユーザの指定で更にスクロールされ、タイル番号45、46、53、54で示される領域を表示するようになる。この判断をステップS802bで行い、ステップS802cで上記4つのタイル(タイル番号45、46、53、54)を前述した手順と同様に解像度番号0、Layer番号0でデコードし、ステップS802dでタイル番号45、46、53、54の領域の画像データを拡大しながら表示する。その後、本実施形態では、ユーザがマウスの左ボタンを離すため、ステップS802eでは、終了したとしてステップS802fに移動する。すなわち、本実施形態では、上記第1のデコード工程が、符号化データを最低解像度かつ最低Layerでデコードすることを特徴とする。
【0065】
次に、ステップS802f以降のスクロール終了の場合の処理について詳述する。まず、手元にあるキャッシュされている符号データで再現することができる、最終的に表示しなければならない解像度とSNRに最も近いところまでのデコードを行う(ステップS802f)。そして、ステップS802fでデコードした結果の画像データを拡大しながら表示する(ステップS802g)。さらに、ステップS802fでデコードした画像データが、最終的に表示しなければならない解像度であってかつSNRであったか否かを判断する(ステップS802)。
【0066】
その結果、最終的な解像度であってSNRであった場合(すなわち、新規要求ではなかった場合)(No)は終了する。一方、異なった場合(すなわち、新規要求である場合)(Yes)は、現状手元にある既に受信済みの符号データと最終的に表示しなければならない解像度、SNRの画像を再現するために必要な符号データとの差分の符号データをサーバに要求する(ステップS802i)。そして、ステップS802iで要求した符号データを受信する(ステップS802j)。さらに、最終表示のためのデコードを行い(ステップS802k)、最終表示を行う(ステップS802l)。尚、この場合はデコードされた画像データの拡大処理は不要である。
【0067】
すなわち、本実施形態に係るスクロール表示方法は、上述した手順に加えて、さらに、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する(判定工程)。そして、サーバに対して、不足している符号化データの送信を新たに要求し(要求工程)、キャッシュ工程でキャッシュされた符号化データとサーバから新たに送信された符号化データとをデコードする(第3のデコード工程)。そして、第3のデコード工程でデコードされた画像データを表示する(第3の表示工程)ことを特徴とする。
【0068】
ここで、具体的な数値を用いて、ステップS802f以降の処理について説明する。まず、ステップS802fでは、タイル番号45、46、53、54の符号データがどこまで充填されているかを判断する。本実施形態の場合、スクロールする前に表示していた解像度とLayerは、それぞれ解像度番号4、Layer番号2であり、タイル番号45、46、53、54が現在持っている符号データは、解像度番号2、SNR番号2である。そのため、上記4つのタイルを解像度番号2、Layer番号2でデコードする。そして、ステップS802gでは、解像度番号2から解像度番号4までの拡大、すなわち4倍の拡大を行いながら表示を行う。これにより、ステップS802dで表示された画像データよりは、高解像度の画像データを表示することができる。
【0069】
次に、ステップS802h及びS802iでは、上記4つのタイル(タイル番号45、46、53、54)の「Layer[0-2]/Reso[3-4]/Comp0/Pos0」部分の符号データをサーバに要求する。そして、ステップS802jでは、要求した符号データを受信し、ステップS802kでは、上記4つのタイルを解像度番号4、Layer番号2までをデコードする。そして、ステップS802lでは、ステップS802kでデコードした結果の画像データをそのまま拡大しないで表示して、本スクロール表示処理を終了する。
【0070】
以上説明したように、第1の実施形態におけるサーバ・クライアントシステムにおけるスクロール表示方法によれば、スクロール処理の途中では、スクロール処理に入るまでに既に受信している符号データのみ(クライアントにキャッシュされている符号データのみ)を使用する。すなわち、スクロールの途中では、最低解像度及び最低SNRで表示を繰り返し、スクロール終了時に、手元にある符号データで再現でき得る限りの最高の解像度で画像データを表示し、最終的に表示する部分(最終表示領域)の符号データのみをさらにサーバに要求して表示する。従って、サーバとクライアント間の通信のトラフィックを最小限にすることが可能となる。
【0071】
また、スクロール終了時に、最終表示される画像データがない場合であっても、手元にある符号データで再現でき得る最終表示に最も近い画像データを一旦表示することにより、ユーザの体感スピードを向上させることができる。
【0072】
さらに、スクロール中に表示する画像の画質等をダイナミックに制御することにより、ユーザの感性にあった表示が可能になる。さらにまた、各ステップにおいては、画像データを小刻みに表示するため、ユーザはストレスを感じることなく、画像表示の操作を行うことができる。
【0073】
尚、本実施形態では、JPEG2000符号化データのデコードは、キャッシュされている符号データから直接デコードするようにしたが、本発明の適用はこれに限られるものではなく、キャッシュからJPEG2000準拠の符号化データファイルを作成し、これをデコードするような方法をとっても良い。
【0074】
<第2の実施形態>
上述した第1の実施形態では、スクロールの途中において最低解像度及び最低SNRでのデコードを行い、拡大表示が行われた。第2の実施形態では、解像度は最低解像度とは限らずに既に受信されている符号データ内で、最終的に表示しなければならない解像度に最も近い解像度で表示する場合について説明する。
【0075】
すなわち、この場合は、図11のステップS802cでの処理が第1の実施形態とは異なる。具体的には、一例として解像度番号0ではなく、解像度番号2をデコードするようにする。尚、SNRに関しては第1の実施形態と同じである。
【0076】
本実施形態では、ステップS802cでデコードする解像度が変わるため、次のステップS802dで表示する際の拡大率が第1の実施形態の場合は16倍であったが、本実施形態の場合には4倍となる。尚、その他の処理については、第1の実施形態と同じである。
【0077】
<第3の実施形態>
第1及び第2の実施形態では、図11内のステップS802cでデコードする際に、SNR方向のスケーラビリティはLayerで制御を行っていた。このような場合は、サーバにある符号データに依存することになる。すなわち、エンコード条件であらかじめLayerを指定していなければ使えない。
【0078】
そこで、本実施形態では、SNR方向の制御にcoding-pathを用いる。これを用いることにより、Layerを切っていない符号データであってもSNRを制御することができる。
【0079】
具体的には、図11のステップS802cでデコードする時に、JPEG2000のデコーダに対して、Layer番号の代わりにcoding-pathをどこまで処理するかのパラメータを与えるようにする。例えば、coding-pathを3まで指定すると、JPEG2000デコーダは、DWT係数を復元する時にMSB(最上位ビット)のみをデコードする。これにより、Layerよりも細かなSNRの制御を行うことができる。尚、これ以外の処理については、第1及び第2の実施形態と同様である。
【0080】
<その他の実施形態>
これまでの実施形態では、JPEG2000、IIPを用いたスクロール表示の基本的な処理手順について説明した。ここでは、その他の実施形態として、ユーザがスクロール表示を操作する時のマウスの動かすスピードに応じた表示方法について説明する。これは、例えば、早くマウスを移動させた場合には、SNRの低い画像を表示し、逆にゆっくり移動させている場合は、SNRの高い画像を表示することである。すなわち、本実施形態では、画像データが表示された表示画面中のポインタの移動速度に基づいて、当該表示画面にスクロール表示させる画像データのSNRを特定することを特徴とする。
【0081】
上記動作を行うためには、図11のステップS802bからS802dまでの処理(以下、ステップS802mとする。)を図12に示すように変更すればよい。
【0082】
すなわち、図12は、他の実施形態における処理手順の一例を説明するためのフローチャートである。尚、図中において、前述した実施形態と同じ動作をする部分については、同じ番号を付している。以下では、新たに追加されている部分について説明する。
【0083】
まず、今回表示している画像の各タイルの最大(Max)coding-pathを取得する(ステップS1200)。そして、ステップS802aで移動量を計算すると同時に、移動したスピード(移動速度)を計算する(ステップS1201)。これは、ある単位時当たりにどれだけ移動したか等タイマを使うことによって計算可能である。次に、今回表示するタイル郡を求め(ステップS802b)、ステップS1201で計算された移動スピードと、ステップS1200で求めたMax coding-pathからデコードすべきSNRをcoding-pathで計算する(ステップS1202)。
【0084】
さらに、ステップS1202で計算したcoding-pathと解像度を指定してデコードする(ステップS1203)。そして、ステップS1203でデコードした画像をデコードした解像度から計算した倍率に従って拡大しながら表示する(ステップS802d)。
【0085】
ここで、具体的な数値を用いて上述した動作フローを詳細に説明する。まず、ステップS1200で、今回の符号データの全タイルについて各タイル毎にMax coding-pathの値を符号データから取得する。これは、クライアントにキャッシュされている符号データからは取得できないので、サーバに対して要求することになる。
【0086】
その後、ユーザによるマウス等の操作によりスクロール表示が始まり、ステップS802aではマウスの移動量を計算する。次に、ステップS1201では、ステップS802aでの移動量と単位時間との関係で、例えば、図13(a)に示す表に示すように、「高速」「中速」「低速」の種類に分類する。図13は、マウススピードの判定とそれに対応したcoding-pathを示す図である。図13に示される分類方法は、今回の表示領域の画像サイズが128x128画素であるため、1秒間にマウスが移動した画素数から、「高速」は「128画素以上」、「中速」は「64〜128画素」、「低速」は「64画素以下」とすることによって判定している。従って、このステップで3種類のスピードに分類する。
【0087】
次に、ステップS802bでスクロールされ表示すべき領域に該当するタイル郡を特定する。その後各タイルに対してステップS1202を行う。このステップS1202では、ステップS1201で求めたスピードからSNRを決定するためのcoding-pathを計算する。ここで、例えば、図13(b)に示すように、3種類のスピードに対するデコードするcoding-pathを対応付ける。
【0088】
図13(b)の例は、ステップS1200で取得したMax coding-pathが「26」の場合、「高速」は「4」、「中速」は「10」、「低速」は「19」というように、高速になるほどSNRを下げて、デコード時間の短縮を図っている。そして、ステップS1203では、ステップS1202で求めたcoding-pathと解像度、例えば解像度番号2をデコードする。
【0089】
また、ステップS802dでは、ステップS1203でデコードした解像度と現在表示しなければならない解像度から拡大率を求める。尚、本実施形態の場合は4倍である。そして、この拡大率で拡大しながら表示を行う。次いで、ステップS802eでは、マウスのボタンが放されたか否かを判断し、放されていない場合(No)はステップS802aに戻り、放された場合(Yes)は次のステップに進む。また、以下のステップについては、前述した実施形態と同じである。
【0090】
本実施形態の場合は、ユーザのマウスを移動させるスピードによりも表示するSNRを変える。特に、高速にマウスを移動させるほど、表示される画像のSNRが下がるように制御する。すなわち、JPEG2000のデコーダは、SNRを下げてデコードするほど高速なデコードができるため、ユーザのマウスの移動に応じたスクロール表示を行うことができる。
【0091】
尚、マウス移動に関するスピードの分類方法及び分類する数、これに対するデコードするcoding-path数は上述したものだけに限られるものではない。また、デコードする解像度もこれに限られるものではない。
【0092】
さらに、スクロール中のデコード方法として、SNRや解像度を下げてデコードすることについて説明したが、これに限るものではなく、例えばフルカラーの場合は、色成分数を下げる、すなわち白黒でデコードするようにしてもよい。
【0093】
尚、本発明は、複数の機器(例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0094】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0095】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0096】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0097】
尚、本発明をプログラムで実行する場合は、上述した実施形態で説明した処理フローのみに限定されることはなく、マルチスレッド等を有効に使って、ユーザレスポンスをさらに向上させることも容易に推察することができる。
【0098】
【発明の効果】
以上説明したように、本発明によれば、サーバとクライアント間の通信トラフィックを短くして、画像データのスクロール表示中のユーザレスポンスを向上させることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るサーバ及びクライアントを含むネットワークシステムの構成を示す概念図である。
【図2】本発明の第1の実施形態に係るサーバ・コンピュータ101、103及びクライアント・コンピュータ102a、102b等の各コンピュータのハードウェア構成を示すブロック図である。
【図3】第1の実施形態におけるLayer-resolution level-component-position progression(SNR Progression)に沿って記録されたJPEG2000符号ファイルの構成を示す概念図である。
【図4】第1の実施形態におけるJPEG2000の解像度スケーラビリティを説明する図である。
【図5】第1の実施形態におけるサーバ、クライアント間でのパケット単位でのデータのリクエスト及びレスポンスを説明するための概念図である。
【図6】第1の実施形態におけるタイル分割の概念図である。
【図7】第1の実施形態で使用されるサーバ101で管理(格納)されているJPEG2000符号ファイルの一例を示す図である。
【図8】第1の実施形態に係るクライアント102aにおけるアプリケーションによる処理概要を説明するためのフローチャートである。
【図9】図8のステップS800におけるサムネイル表示のための通信プロトコルと受信した符号データを説明するための図である。
【図10】図8のステップS800からステップS801に移った後の通信プロトコルと受信した符号データを説明するための図である。
【図11】図11は、第1の実施形態に係るスクロール処理(ステップS802)を詳細に説明するためのフローチャートである。
【図12】他の実施形態における処理手順の一例を説明するためのフローチャートである。
【図13】マウススピードの判定とそれに対応したcoding-pathを示す図である。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to scrolling decoded images while receiving fragmented data over a network.
[0002]
[Prior art]
On the Internet, accessing a WWW server from a Web (Web) browser to browse document data, image data, and the like is actively performed. As described above, in a system environment including a WWW server that publishes information on the Internet and a client for browsing the information, each client uses a Web browser to browse information published by the WWW server. be able to.
[0003]
The WWW server stores a document, which is generally called a home page, in which information for disclosure is described in HTML, and the client-side web browser accesses the document and displays it on the client-side computer. Further, the web browser on the client side can obtain necessary information by following the link in the displayed page. Further, as a method of downloading a file managed by the WWW server, there is a method called File Transfer Protocol (hereinafter abbreviated as "FTP"). The FTP is a mechanism for simultaneously transferring a file on a WWW server to a client computer via a network.
[0004]
Also, there is Flashpix / IIP as a protocol for fragmentarily accessing and displaying an image file. The Internet Imaging Protocol (IIP) is an optimal protocol for the format of a Flashpix image data file, and can request a part of image data through a network. The access at this time is performed for each Flashpix tile.
[0005]
On the other hand, considering the case where this Flashpix / IIP is applied to JPEG2000 as it is, in JPEG2000, the coded data of each scalability (Scalability) is composed of difference data from the scalability data one level below the scalability. . Therefore, the fragmentary encoded data received on the client side is cached, and all the encoded data is transferred to the decoder and re-decoded from the beginning. Is passed to the decoder, and decoding is performed from the continuation of the previous time.
[0006]
Among such methods, in a system that requests a server for fragmented data of only necessary data from image encoded data having multi-resolution data and receives and displays the data, a client side Various methods have been conventionally proposed as a method of displaying image data on a computer, in particular, a scroll display method.
[0007]
For example, in a technique related to an image editing apparatus that displays an image cut out from a base image and a base image, in particular, a technique for synchronizing the above two types of images, performing enlargement / reduction / scroll processing at high speed, and performing high-speed display. Has been proposed (for example, see Patent Document 1).
[0008]
Also, a technique related to a still image reproducing apparatus that performs hardware configuration and control so that read / write to an image memory and control signals to an image processor for image processing do not cause bus contention on a local bus. Has also been proposed (for example, Patent Document 2).
[0009]
Further, there has been proposed a technology relating to an image scrolling device for decoding run-length encoded data and performing scroll display, wherein processing is performed using a line memory instead of a memory for one screen. Reference 3).
[0010]
Furthermore, when data is transferred from the display memory to the display control means, a portion not to be displayed is set in advance, and a drawing display control device and a drawing display control for controlling not to read the data of the portion not to be displayed from the memory. A technique relating to a drawing display device provided with the device has also been proposed.
[0011]
[Patent Document 1]
JP-A-05-055411
[0012]
[Patent Document 2]
JP-A-06-004067
[0013]
[Patent Document 3]
JP-A-06-019452
[0014]
[Patent Document 4]
JP-A-11-052942
[0015]
[Problems to be solved by the invention]
However, every time the display area is scrolled on the screen in accordance with the user's request, the code data of the portion that is newly required to be displayed is intended to be displayed at the finally required resolution and SNR (SNR). However, when the request is issued, the communication time of the code data occurs, and there is a problem that it takes time to display. In such a case, the user response during scroll display of the image data deteriorates.
[0016]
On the other hand, in the case of Flashpix / IIP, since the encoded data is independent for each tile, there is no need to cache the data of the tile received once on the client side. However, in order to display low-resolution data by scroll display, it is necessary to newly request low-resolution code data from the server, and there is a problem that communication time and traffic increase by performing communication again. . Further, in the case where the image data once displayed is cached, there is a problem that a memory capacity for caching the image data is further required.
[0017]
Further, when the encoded data is cached by Flahspix / IIP, it is impossible to decode while adjusting the image quality because the encoding method is the JPEG method. Therefore, there is a problem that a decoding time proportional to the number of tiles is fixedly required to decode low-resolution code data.
[0018]
Furthermore, when only the code data that has been cached on the client and that has already been received and compressed by the JPEG2000 method is used to decode and display the part newly required for display, the code data is present. It is conceivable to decode and display the portion that is not used, assuming that the discrete wavelet transform (DWT) coefficient is 0, but in this case, there is a problem that decoding takes time.
[0019]
Furthermore, there is a method of using a zero length packet as a method of supplementing the coded data of the unreceived portion. In this case, similarly to the above, it takes time to decode the image data with the finally required resolution and SNR. There is such a problem.
[0020]
Here, as described above, the “image editing device” described in Patent Literature 1 synchronizes two types of images, the image cut out from the background image and the background image, and performs the enlargement / reduction / scrolling processing at high speed. Things. Therefore, the control is carried out with information for managing the clipped image data portion, and the entire displayed area is scrolled. That is, scroll display is performed at high speed while decoding JPEG2000, and scrolling is not performed after holding all image data, and the above problem cannot be solved.
[0021]
Further, the “still image reproducing device” described in Patent Document 2 described above prevents read / write to / from an image memory and control signals to an image processor for image processing from causing bus contention on a local bus. It performs hardware configuration and control. That is, it is not a technology relating to a display device (hardware) but a technology relating to a configuration combining a JPEG2000 decoder and IIP2k (image communication), and cannot solve the above-mentioned problems.
[0022]
Further, the “image scrolling device” described in Patent Document 3 described above is a technology for decoding run-length encoded data and performing scroll display. In particular, processing is performed using a line memory instead of a memory for one screen. Is what you do. That is, when the image data larger than the display area is decoded and the screen is scrolled, the code data of the currently displayed resolution is not decoded and then scrolled, but is scrolled while decoding. Therefore, the decoding time is shortened by controlling how far the JPEG2000 decoding is performed, and the above problem cannot be solved.
[0023]
Furthermore, the “drawing display control device and the drawing display device including the drawing display control device” described in Patent Document 4 described above, when transferring data from the display memory to the display control means, as described above. This is a technique for setting a portion not to be displayed in advance, and controlling so that data of the portion not to be displayed is not read from the memory. However, in the embodiment of the present invention described below, there is no particular region corresponding to the non-displayed portion, and the entire display region can be displayed. It is not necessary to perform processing such as superimposition of the image data.
[0024]
The present invention has been made in view of such circumstances, and provides a scroll display method capable of reducing communication traffic between a server and a client and improving a user response during scroll display of image data. The purpose is to do.
[0025]
[Means for Solving the Problems]
In order to solve the above problems, the present invention is a scroll display method in a client that receives a part of encoded data stored in a server via a network in a fragmentary manner and scrolls and displays decoded image data. ,
Caching the fragmented encoded data received by the client;
A first decoding step of decoding only the encoded data cached in the cache step during a scroll operation;
A first display step of enlarging and displaying the image data decoded in the first decoding step;
After a scroll operation, a second decoding step of decoding the encoded data cached in the cache step with a higher resolution and a higher layer than the first decoding step;
A second display step of enlarging and displaying the image data decoded in the second decoding step;
A determination step of determining whether or not display of the encoded data is possible at the highest resolution and the highest Layer using the cached encoded data,
A requesting step of newly requesting the server to transmit the missing encoded data;
A third decoding step of decoding the encoded data cached in the cache step and the encoded data newly transmitted from the server;
A third display step of displaying the image data decoded in the third decoding step;
It is characterized by having.
[0026]
That is, as described in the following embodiments, when displaying image data on a client, a part of the image data is displayed, and the display area is changed according to a user's request. Here, when the screen is scroll-displayed, only the JPEG2000 coded data already received by the client is used, and only the SNR portion of the coded data having a lower resolution than the resolution to be originally displayed is decoded at high speed. indicate.
[0027]
Then, at the end of the scroll, the coded data closest to the resolution and SNR that must be finally displayed and can be decoded with the coded data at hand is decoded and displayed. At the same time, if the image data displayed at this time is not all the encoded data finally required, the server further requests the server for the encoded data of the missing part, Decodes and displays complex image data. In this way, even at the end of scrolling, an image closest to the image data that must be finally displayed with the encoded data at hand is displayed once, and is displayed again after all the encoded data has been transmitted.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.
[0029]
The present embodiment described below relates to a method of scrolling and displaying image data while receiving fragmentary code data via a network. In particular, by using a communication protocol such as the Internet Imaging Protocol (IIP) for JPEG2000 encoded data conforming to ISO / IEC-15444, the client can transmit a fragmented area or fragment of image code data from the server. This is to improve the perceived speed of scroll processing on the client by receiving coded data.
[0030]
<First embodiment>
FIG. 1 is a conceptual diagram showing a configuration of a network system including a server and a client according to the first embodiment of the present invention. That is, it is a conceptual diagram showing a state where a plurality of computers including a server computer and a client computer are connected on a network represented by the Internet.
[0031]
In FIG. 1, reference numeral 100 denotes a network represented by the Internet. Reference numerals 101 and 103 denote server computers, each of which includes software necessary for a WWW server function, such as a JPEG2000 IIP server for transmitting image data. Further, large-capacity hard disks 101a and 103a are connected to the servers 101 and 103, respectively, and a large amount of image data is stored in each of the hard disks. Reference numerals 102a and 102b denote client computers, each having software required on the client side, such as a Web browser and a JPEG2000 decoder.
[0032]
FIG. 2 is a block diagram illustrating a hardware configuration of each computer such as the server computers 101 and 103 and the client computers 102a and 102b according to the first embodiment of the present invention.
[0033]
In FIG. 2, reference numeral 201 denotes a CPU, which controls the entire apparatus such as a computer. Reference numeral 202 denotes a keyboard, which is used together with the mouse 202a to input various data and commands to the device. A display unit 203 includes, for example, a CRT and a liquid crystal display. Reference numeral 204 denotes a ROM, and 205 denotes a RAM, which constitutes a storage unit in the device, and stores a program executed by the device, data used by the device, and the like.
[0034]
Reference numeral 206 denotes a hard disk, which constitutes an external storage device used in the device. Reference numeral 207 denotes a flexible disk, which is detachable via an interface of the device as an external storage device used in the device. Reference numeral 208 denotes a printer. Further, reference numeral 209 denotes a network interface (I / F) for controlling a network, from which a resource on the network such as a server computer connected to the network 100 such as the Internet is accessed (in the case of a client); An encoded image or document data can be transmitted in response to a request from a client (in the case of a server).
[0035]
In the present embodiment, the already generated JPEG2000 code file is managed by the server computers 101 and 103. On the other hand, the client computers 102a and 102b request only the necessary portions in the JPEG2000 code file such as the image display / print application from the server computers 101 and 103 using the JPEG2000 IIP. Then, the coded data transmitted in response thereto is fragmentarily received, and the received fragmented coded data is cached, for example, on the hard disk 206 or the like.
[0036]
In the client computers 102a and 102b, the fragmented JPEG2000 code data cached on the hard disk 206 or the like may be directly processed by a JPEG2000 decoder, or the cached code data may be temporarily converted to JPEG2000 compliant JPEG2000 code data. And may be passed to a JPEG2000 decoder. In the present embodiment described below, for simplicity of description, it is assumed that JPEG2000 encoded data directly cached is processed by a decoder.
[0037]
The user of the client computer 102a, 102b opens a homepage using, for example, a Windows (registered trademark) machine, and clicks a link to a JPEG2000 image described therein. As a result, a JPEG2000 image is obtained as fragmentary data necessary for displaying at an image size and resolution suitable for the use of the clients 102a and 102b, cached, and displayed after a necessary portion is decoded. Is done.
[0038]
In the following, it is assumed that the displayed portion is changed while being scrolled in response to a request from the user.
[0039]
Here, the general JPEG2000 code data will be described with reference to FIG. FIG. 3 is a conceptual diagram showing a configuration of a JPEG2000 code file recorded along the layer-resolution level-component-position progression (SNR progression) in the first embodiment. When conforming to the SNR Progression, recording is performed in the order of Layer (layer) / Resolution (resolution) / Component (component) / Position (position).
[0040]
FIG. 4 is a view for explaining the resolution scalability of JPEG2000 in the first embodiment. That is, the relationship between the resolution (image size) and the Resolution number is shown. In FIG. 4, the resolution number (resolution level) of the image with the smallest resolution is set to “0”, and the width and height of the decoded image are both doubled each time the Resolution number increases by one. In addition, each layer (Layer) is assigned to each resolution in ascending order of the Layer number. The layer number corresponds to the S / N ratio of the restored image to the original image, and the smaller the layer number, the worse the S / N ratio.
[0041]
The maximum values of the Resolution number, the Layer number, and the Component number in one JPEG2000 code file are set in advance by the encoder and are encoded according to the parameters, and the information is stored in the encoded data. Each packet (packet) is composed of a packet header (packet header) section that manages information of a code block (code-block) stored in the packet, and encoded data of each code block. I have.
[0042]
By using such JPEG2000 code data, the clients 102a and 102b can receive only necessary data from the server 101 without acquiring all the image data stored in the server 101. . In the embodiment described below, the case of the server 101 will be described as an example. However, the server 103 can be similarly executed.
[0043]
As a unit of the data received by the client, a packet of JPEG2000 encoded data 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 client from the server. However, the present invention can be executed in a code block unit in the same manner as in the present embodiment.
[0044]
That is, the scroll display method according to the present embodiment is characterized in that encoded data is transmitted from the server in packet units or code block units via the network.
[0045]
FIG. 5 is a conceptual diagram for explaining a data request and response in a packet unit between the server and the client in the first embodiment.
[0046]
In FIG. 5, a client 102a requests data by designating a tile number (Tile), a resolution number (resolution level), a layer (Layer), a component, and a position number of an image stored in the server 101. In the example shown in FIG. 5, the tile number (Tile) is “1”, the resolution is “0”, the layer is “0”, the component is “0”, and the position number is “0”. As a result, the server 101 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 it back to the client 102a as packet 0. .
[0047]
FIG. 6 is a conceptual diagram of tile division in the first embodiment. The example shown in FIG. 6 is a case where the image data is divided into eight tiles in both the X and Y directions, that is, the entire image is divided into 64 tiles. The numbers in the figure indicate tile numbers. In the present embodiment, the image size of the maximum resolution of the image data is 1024 × 1024 pixels. In this case, the number of pixels of each tile at the maximum resolution is 128 × 128 pixels.
[0048]
FIG. 7 is a diagram illustrating an example of a JPEG2000 code file managed (stored) by the server 101 used in the first embodiment.
[0049]
In FIG. 7, reference numeral 700 denotes a configuration of the entire code data of an example encoded by SNR Progression. The code file shown in FIG. 7 shows codes in the case of being divided into 64 tiles shown in FIG. In FIG. 7, reference numeral 701 denotes an example of code data of each tile. Tile part headers 702 and packet data 703 constitute code data of tiles.
[0050]
In the example shown in FIG. 7, there are three types of layers, “0” to “2”, six types of Resolution levels, “0” to “5”, and one type of Component and Position. For the sake of simplicity, it is assumed that the maximum resolution image size of JPEG2000 managed by the server 101 is 1024 × 1024 pixels as described above. That is, when there are six types of Resolution levels, the image size at each resolution is 1024 × 1024 for resolution number 5, 512 × 512, 256 × 256, 128 × 128, and 64 × 64 in the following order. The number 0 is 32 × 32 pixels.
[0051]
FIG. 8 is a flowchart illustrating an outline of processing performed by an application in the client 102a according to the first embodiment. This flowchart shows a display processing procedure of image data after a JPEG2000 application is activated on the client 102a and a JPEG2000 file to be displayed is specified by another means. Note that a similar process is performed in another client (for example, the client 102b).
[0052]
First, a thumbnail image of a specified file is displayed by the client application (step S800). Thereafter, the display is enlarged (step S801) and scrolled (step S802).
[0053]
Specifically, assuming that the size of the image display area in the client application is 128 × 128 pixels, in the display of the thumbnail image in step S800, decoding is performed up to the maximum SNR code data of resolution number 2 of all tiles. indicate. Next, in the enlarged display in step S801, for example, when the image displayed in step S800 is enlarged by two steps, the resolution becomes resolution number 4. In this case, since the size of the display area is 128 × 128 pixels, the entire image cannot be displayed. Therefore, for example, if the center of the displayed image is fixed and enlarged in step S800, four tiles with tile numbers 27, 28, 35, and 36 indicated by 600 in FIG. 6 are displayed.
[0054]
FIG. 9 is a diagram for explaining the communication protocol for displaying thumbnails and the received code data in step S800 in FIG. That is, FIG. 9 shows the cache state after the processing of step S800 is executed. 9, the same numbers are assigned to code data having the same contents as in FIG. In step S800, since the same request has been issued to all tiles, they are in the same cache state.
[0055]
In FIG. 9, reference numeral 901 denotes a cache of each tile. In this embodiment, since all the code data up to the resolution number 2 are received, the received code data portion is described in the expression “Layer numerical value / Reso numerical value / Comp numerical value / Pos numerical value”. The parts not yet received use the expression "ZLP (Zero Length Packet)".
[0056]
FIG. 10 is a diagram for explaining the communication protocol and the received code data after the flow proceeds from step S800 to step S801 in FIG. In step S801, the server stores six code data indicated by a portion "Layer [0-2] / Reso [3-4] / Comp0 / Pos0" in which only four tiles of tile numbers 27, 28, 35, and 36 in FIG. , The data of this part is filled. Other tiles are in the same state as that shown in FIG.
[0057]
Next, the scroll display processing in step S802 will be described. In the scroll display according to the present embodiment, from the state in which the resolution number 4 and the maximum SNR of the four tiles of tile numbers 27, 28, 35, and 36 are displayed, the area indicated by 602 in FIG. A case will be described in which scrolling and display are performed continuously to the area indicated by 601 (the area of tile numbers 45, 46, 53, and 54) via the areas 44 and 45). FIG. 11 is a flowchart for explaining the scroll process (step S802) according to the first embodiment in detail.
[0058]
First, a scroll operation is started by a user's pointing device such as a mouse, and the amount of movement of the mouse when displaying image data at a corresponding position is calculated according to the amount of movement (step S802a). Next, an area of the image data to be displayed is specified based on the movement amount obtained in step S802a (step S802b). Here, a particularly applicable tile group is calculated. That is, the scroll display method according to the present embodiment specifies an area of image data to be scroll-displayed on the display screen based on the amount of movement of the pointer on the display screen on which the decoded image data is displayed. And
[0059]
Thereafter, the tile group obtained in step S802b is decoded with the lowest resolution and the lowest layer (step S802c). Then, the image data obtained by decoding in step S802c is subjected to enlargement processing as necessary and displayed (step S802d). Thereafter, it is determined whether or not the scroll request from the user is continuous (step S802e). This determination method is, for example, if the scroll instruction method is a method of moving while pressing the left mouse button, the state of the mouse button is determined, and whether the button is kept pressed or not is determined. Judge. As a result, if the button is kept depressed, it is determined that the operation is completed, and the process returns to step S802a. On the other hand, if the mouse button has been released, the process moves to step S802f.
[0060]
That is, the scroll display method described in the present embodiment is a scroll display method in a client that receives a part of encoded data stored in a server in a fragmentary manner via a network and scrolls and displays decoded image data. . In this scroll display method, first, the fragmentary encoded data received by the client is cached (cache step). Next, only the encoded data cached in the cache step is decoded during the scroll operation (first decoding step), and the decoded image data is enlarged and displayed (first display step). Then, after the scroll operation is completed, the encoded data cached in the cache step is decoded with a higher resolution and a higher layer than in the first decode step (second decode step). Then, the image data decoded in the second decoding step is enlarged and displayed (a second display step).
[0061]
Also, in the scroll display method according to the present embodiment, the first display step obtains an enlargement ratio of the image data from the resolution and the layer of the encoded data in the first decoding step, and enlarges and displays the image data. It is characterized by. Further, in the scroll display method according to the present embodiment, the second display step obtains an enlargement ratio of the image data from the resolution and the layer of the encoded data in the second decoding step, and enlarges and displays the image data. It is characterized by.
[0062]
A specific example from steps S802a to S802e will be described. For example, assume that the mouse has moved to 602 in FIG. 6 in step S802a. In this case, it is determined in steps S802a and S802b that the area to be displayed this time is the area indicated by the tile numbers 36, 37, 44, and 45. In step S802c, the JPEG2000 decoder is instructed to decode the resolution number 0 and the layer number 0 of the four tile groups of the tile numbers 36, 37, 44, and 45.
[0063]
Thereafter, in step S802d, coarse image data obtained by decoding in step S802c is displayed. In the case of the present embodiment, since the decoding of the lowest resolution is performed, it is necessary to enlarge the resolution to the final display, and this time, the display is performed while performing the enlargement processing of 16 times. Further, in the case of the present embodiment, since scrolling is performed thereafter, the process returns to step S802a if it is not completed in step S802e.
[0064]
Thereafter, scrolling is further performed according to the user's designation, and the areas indicated by the tile numbers 45, 46, 53, and 54 are displayed. This determination is made in step S802b. In step S802c, the four tiles (tile numbers 45, 46, 53, 54) are decoded with the resolution number 0 and the layer number 0 in the same manner as described above, and in step S802d, the tile number 45 is decoded. , 46, 53, and 54 are displayed while being enlarged. Then, in this embodiment, since the user releases the left mouse button, in step S802e, it is determined that the process has ended, and the process moves to step S802f. That is, the present embodiment is characterized in that the first decoding step decodes the encoded data with the lowest resolution and the lowest layer.
[0065]
Next, processing in the case of scroll end after step S802f will be described in detail. First, decoding is performed up to the closest resolution and SNR that can be reproduced with the cached code data at hand and must be finally displayed (step S802f). Then, the image data decoded in step S802f is displayed while being enlarged (step S802g). Further, it is determined whether or not the image data decoded in step S802f has the resolution that must be finally displayed and the SNR (step S802).
[0066]
As a result, if the final resolution is SNR (that is, if it is not a new request) (No), the process ends. On the other hand, if it is different (that is, if it is a new request) (Yes), it is necessary to reproduce the image of the already received code data currently at hand and the resolution and SNR that must be finally displayed. The server requests the server for code data that is different from the code data (step S802i). Then, the code data requested in step S802i is received (step S802j). Further, decoding for final display is performed (step S802k), and final display is performed (step S802l). In this case, it is unnecessary to perform the process of expanding the decoded image data.
[0067]
That is, in the scroll display method according to the present embodiment, in addition to the above-described procedure, it is further determined whether or not the encoded data can be displayed at the highest resolution and the highest layer using the cached encoded data. (Judgment step). Then, the server newly requests the server to transmit the missing encoded data (request step), and decodes the encoded data cached in the cache step and the encoded data newly transmitted from the server. (Third decoding step). Then, the image data decoded in the third decoding step is displayed (third display step).
[0068]
Here, the processing after step S802f will be described using specific numerical values. First, in step S802f, it is determined how much code data of tile numbers 45, 46, 53, and 54 has been filled. In the case of this embodiment, the resolution and the layer displayed before scrolling are respectively the resolution number 4 and the layer number 2, and the code data that the tile numbers 45, 46, 53, and 54 currently have are the resolution numbers. 2, SNR number 2. Therefore, the above four tiles are decoded with the resolution number 2 and the layer number 2. Then, in step S802g, display is performed while enlarging from resolution number 2 to resolution number 4, that is, quadrupling. As a result, image data having a higher resolution than the image data displayed in step S802d can be displayed.
[0069]
Next, in steps S802h and S802i, the code data of the “Layer [0-2] / Reso [3-4] / Comp0 / Pos0” portion of the above four tiles (tile numbers 45, 46, 53, 54) is sent to the server. Request to. Then, in step S802j, the requested code data is received, and in step S802k, the four tiles are decoded up to the resolution number 4 and the layer number 2. In step S802l, the image data decoded in step S802k is displayed without being enlarged, and the scroll display process ends.
[0070]
As described above, according to the scroll display method in the server / client system according to the first embodiment, during the scroll processing, only the code data already received before the scroll processing is started (the code data being cached in the client). Code data only). That is, during the scrolling, the display is repeated at the lowest resolution and the lowest SNR, and at the end of the scrolling, the image data is displayed at the highest resolution that can be reproduced by the code data at hand, and the part to be finally displayed (final display) Only the code data of the display area) is further requested from the server and displayed. Therefore, it is possible to minimize communication traffic between the server and the client.
[0071]
Also, at the end of scrolling, even if there is no image data to be finally displayed, the image data closest to the final display that can be reproduced with the code data at hand is once displayed, thereby improving the bodily sensation speed of the user. be able to.
[0072]
Furthermore, by dynamically controlling the image quality and the like of the image displayed during scrolling, display suitable for the user's sensitivity can be performed. Furthermore, in each step, since the image data is displayed in small increments, the user can operate the image display without feeling stress.
[0073]
In this embodiment, JPEG2000 encoded data is decoded directly from cached encoded data. However, application of the present invention is not limited to this. A method of creating a data file and decoding the data file may be used.
[0074]
<Second embodiment>
In the first embodiment described above, decoding is performed at the lowest resolution and the lowest SNR during scrolling, and enlarged display is performed. In the second embodiment, a case will be described in which the resolution is not limited to the lowest resolution but is displayed at the resolution closest to the resolution that must be finally displayed in the already received code data.
[0075]
That is, in this case, the processing in step S802c of FIG. 11 is different from that of the first embodiment. Specifically, for example, resolution number 2 is decoded instead of resolution number 0. The SNR is the same as in the first embodiment.
[0076]
In the present embodiment, since the resolution to be decoded in step S802c changes, the enlargement ratio at the time of display in the next step S802d is 16 times in the first embodiment, but is 4 times in the present embodiment. Double. The other processing is the same as in the first embodiment.
[0077]
<Third embodiment>
In the first and second embodiments, when decoding is performed in step S802c in FIG. 11, the scalability in the SNR direction is controlled by the layer. In such a case, it depends on the code data in the server. That is, if the layer is not specified in advance in the encoding condition, it cannot be used.
[0078]
Thus, in the present embodiment, coding-path is used for control in the SNR direction. By using this, it is possible to control the SNR even for coded data whose layers are not cut.
[0079]
Specifically, at the time of decoding in step S802c in FIG. 11, the JPEG2000 decoder is provided with a parameter indicating how far the coding-path should be processed instead of the layer number. For example, if coding-path is specified up to 3, the JPEG2000 decoder decodes only the MSB (most significant bit) when restoring DWT coefficients. As a result, it is possible to control the SNR more finely than the layer. The other processing is the same as in the first and second embodiments.
[0080]
<Other embodiments>
In the embodiments described above, the basic processing procedure of the scroll display using JPEG2000 and IIP has been described. Here, as another embodiment, a display method according to the moving speed of the mouse when the user operates the scroll display will be described. This means that, for example, when the mouse is moved quickly, an image with a low SNR is displayed, and when the mouse is slowly moved, an image with a high SNR is displayed. That is, in the present embodiment, the SNR of the image data to be scroll-displayed on the display screen is specified based on the moving speed of the pointer on the display screen on which the image data is displayed.
[0081]
In order to perform the above operation, the processing from step S802b to S802d in FIG. 11 (hereinafter, referred to as step S802m) may be changed as shown in FIG.
[0082]
That is, FIG. 12 is a flowchart illustrating an example of a processing procedure according to another embodiment. Note that, in the drawing, the same reference numerals are given to portions performing the same operation as the above-described embodiment. Hereinafter, a newly added portion will be described.
[0083]
First, the maximum (Max) coding-path of each tile of the currently displayed image is acquired (step S1200). Then, the moving amount is calculated in step S802a, and at the same time, the moving speed (moving speed) is calculated (step S1201). This can be calculated by using a timer, such as the amount of movement per unit time. Next, the tile group to be displayed this time is obtained (step S802b), and the SNR to be decoded is calculated from the moving speed calculated in step S1201 and the Max coding-path obtained in step S1200 using coding-path (step S1202). .
[0084]
Furthermore, decoding is performed by designating the coding-path and the resolution calculated in step S1202 (step S1203). Then, the image decoded in step S1203 is displayed while being enlarged according to the magnification calculated from the decoded resolution (step S802d).
[0085]
Here, the operation flow described above will be described in detail using specific numerical values. First, in step S1200, the value of the Max coding-path is obtained from the code data for each tile for all tiles of the current code data. Since this cannot be obtained from the code data cached in the client, a request is made to the server.
[0086]
Thereafter, scroll display is started by a user's operation of a mouse or the like, and the amount of mouse movement is calculated in step S802a. Next, in step S1201, the relationship between the amount of movement in step S802a and the unit time is classified into, for example, "high speed", "medium speed", and "low speed" as shown in the table of FIG. I do. FIG. 13 is a diagram showing the determination of the mouse speed and the coding-path corresponding thereto. In the classification method shown in FIG. 13, since the image size of the current display area is 128 × 128 pixels, “high speed” is “128 pixels or more” and “medium speed” is “ “64 to 128 pixels” and “low speed” are determined by “not more than 64 pixels”. Therefore, in this step, the speed is classified into three types.
[0087]
Next, in step S802b, a tile group corresponding to an area to be scrolled and displayed is specified. Thereafter, step S1202 is performed for each tile. In step S1202, a coding-path for determining the SNR is calculated from the speed obtained in step S1201. Here, for example, as shown in FIG. 13B, coding-paths to be decoded for three types of speeds are associated.
[0088]
In the example of FIG. 13B, when the Max coding-path acquired in step S1200 is “26”, “High” is “4”, “Medium” is “10”, and “Low” is “19”. As described above, the higher the speed, the lower the SNR, thereby shortening the decoding time. Then, in step S1203, the coding-path and resolution, for example, resolution number 2 obtained in step S1202 are decoded.
[0089]
In step S802d, an enlargement ratio is obtained from the resolution decoded in step S1203 and the resolution currently required to be displayed. Incidentally, in the case of the present embodiment, it is four times. Then, display is performed while enlarging at this enlargement ratio. Next, in step S802e, it is determined whether or not the mouse button has been released. If it has not been released (No), the process returns to step S802a, and if it has been released (Yes), the process proceeds to the next step. The following steps are the same as in the above-described embodiment.
[0090]
In the case of the present embodiment, the displayed SNR is changed depending on the speed at which the mouse of the user is moved. In particular, control is performed such that the faster the mouse is moved, the lower the SNR of the displayed image. That is, the JPEG2000 decoder can perform high-speed decoding as the SNR is lowered, so that it is possible to perform scroll display according to the movement of the mouse of the user.
[0091]
It should be noted that the method of classifying the speed related to the mouse movement, the number of classes to be classified, and the number of coding-paths to be decoded for the classification are not limited to those described above. The resolution for decoding is not limited to this.
[0092]
Furthermore, as the decoding method during scrolling, the description has been given of decoding with lowering of SNR and resolution. However, the present invention is not limited to this. For example, in the case of full color, the number of color components is reduced, that is, decoding is performed in black and white. Is also good.
[0093]
Note that the present invention is applied to a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), but a device including one device (for example, a copying machine, a facsimile machine, etc.). May be applied.
[0094]
Further, an object of the present invention is to supply a recording medium (or a storage medium) recording a program code of software for realizing the functions of the above-described embodiments to a system or an apparatus, and to provide a computer (or a CPU or a CPU) of the system or the apparatus. Needless to say, the present invention can also be achieved by the MPU) reading and executing the program code stored in the recording medium. In this case, the program code itself read from the recording medium implements the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention. When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0095]
Further, after the program code read from the recording medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the card or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0096]
When the present invention is applied to the recording medium, the recording medium stores program codes corresponding to the flowcharts described above.
[0097]
When the present invention is executed by a program, the present invention is not limited to only the processing flow described in the above-described embodiment, and it is easily inferred that the user response can be further improved by effectively using a multi-thread or the like. can do.
[0098]
【The invention's effect】
As described above, according to the present invention, it is possible to shorten the communication traffic between the server and the client and improve the user response during the scroll display of the image data.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram illustrating a configuration of a network system including a server and a client according to a first embodiment of the present invention.
FIG. 2 is a block diagram illustrating a hardware configuration of each computer such as server computers 101 and 103 and client computers 102a and 102b according to the first embodiment of the present invention.
FIG. 3 is a conceptual diagram showing a configuration of a JPEG2000 code file recorded along a layer-resolution level-component-position progression (SNR progression) in the first embodiment.
FIG. 4 is a diagram illustrating the resolution scalability of JPEG2000 in the first embodiment.
FIG. 5 is a conceptual diagram illustrating a data request and response in packet units between a server and a client according to the first embodiment.
FIG. 6 is a conceptual diagram of tile division in the first embodiment.
FIG. 7 is a diagram illustrating an example of a JPEG2000 code file managed (stored) by the server 101 used in the first embodiment.
FIG. 8 is a flowchart illustrating an outline of processing performed by an application in a client 102a according to the first embodiment.
FIG. 9 is a diagram for explaining a communication protocol for thumbnail display and received code data in step S800 in FIG. 8;
FIG. 10 is a diagram for explaining a communication protocol and received code data after moving from step S800 to step S801 in FIG. 8;
FIG. 11 is a flowchart for explaining a scroll process (step S802) according to the first embodiment in detail;
FIG. 12 is a flowchart illustrating an example of a processing procedure according to another embodiment.
FIG. 13 is a diagram illustrating determination of a mouse speed and a coding-path corresponding thereto.

Claims (1)

サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示方法であって、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ工程と、
スクロール操作中に、前記キャッシュ工程でキャッシュされた前記符号化データのみをデコードする第1のデコード工程と、
前記第1のデコード工程でデコードされた前記画像データを拡大表示する第1の表示工程と、
スクロール操作終了後に、前記キャッシュ工程でキャッシュされた前記符号化データを前記第1のデコード工程よりも高解像度かつ高Layerでデコードする第2のデコード工程と、
前記第2のデコード工程でデコードされた画像データを拡大表示する第2の表示工程と、
キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定工程と、
前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求工程と、
前記キャッシュ工程でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード工程と、
前記第3のデコード工程でデコードされた画像データを表示する第3の表示工程と
を有することを特徴とするスクロール表示方法。
A scroll display method in a client that receives a part of encoded data stored in a server in a fragmentary manner via a network and scrolls and displays decoded image data.
Caching the fragmented encoded data received by the client;
A first decoding step of decoding only the encoded data cached in the cache step during a scroll operation;
A first display step of enlarging and displaying the image data decoded in the first decoding step;
After a scroll operation, a second decoding step of decoding the encoded data cached in the cache step with a higher resolution and a higher layer than the first decoding step;
A second display step of enlarging and displaying the image data decoded in the second decoding step;
A determination step of determining whether or not display of the encoded data is possible at the highest resolution and the highest Layer using the cached encoded data,
A requesting step of newly requesting the server to transmit the missing encoded data;
A third decoding step of decoding the encoded data cached in the cache step and the encoded data newly transmitted from the server;
A third display step of displaying the image data decoded in the third decoding step.
JP2002365828A 2002-12-17 2002-12-17 Scroll display method and apparatus Expired - Fee Related JP3897691B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002365828A JP3897691B2 (en) 2002-12-17 2002-12-17 Scroll display method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002365828A JP3897691B2 (en) 2002-12-17 2002-12-17 Scroll display method and apparatus

Publications (2)

Publication Number Publication Date
JP2004199291A true JP2004199291A (en) 2004-07-15
JP3897691B2 JP3897691B2 (en) 2007-03-28

Family

ID=32763265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002365828A Expired - Fee Related JP3897691B2 (en) 2002-12-17 2002-12-17 Scroll display method and apparatus

Country Status (1)

Country Link
JP (1) JP3897691B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304247A (en) * 2006-05-10 2007-11-22 Sharp Corp Image processing apparatus, image processing method, image processing program, and computer readable recording medium
JP2009206884A (en) * 2008-02-28 2009-09-10 Ricoh Co Ltd Image processor, image processing method, program and recording medium
JP2009212678A (en) * 2008-03-03 2009-09-17 Canon Inc Display control device and method, and program
JP2010055493A (en) * 2008-08-29 2010-03-11 Casio Comput Co Ltd Server device, server based computing system and server control program
JP2012048725A (en) * 2005-12-30 2012-03-08 Apple Inc Portable electronic device having multi-touch input
RU2515506C1 (en) * 2010-08-31 2014-05-10 Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед Data transmission method and device based on slide detection
WO2016092698A1 (en) * 2014-12-12 2016-06-16 キヤノン株式会社 Image processing device, image processing method, and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048725A (en) * 2005-12-30 2012-03-08 Apple Inc Portable electronic device having multi-touch input
JP2007304247A (en) * 2006-05-10 2007-11-22 Sharp Corp Image processing apparatus, image processing method, image processing program, and computer readable recording medium
JP2009206884A (en) * 2008-02-28 2009-09-10 Ricoh Co Ltd Image processor, image processing method, program and recording medium
JP2009212678A (en) * 2008-03-03 2009-09-17 Canon Inc Display control device and method, and program
JP2010055493A (en) * 2008-08-29 2010-03-11 Casio Comput Co Ltd Server device, server based computing system and server control program
RU2515506C1 (en) * 2010-08-31 2014-05-10 Тенсент Текнолоджи (Шэньчжэнь) Компани Лимитед Data transmission method and device based on slide detection
WO2016092698A1 (en) * 2014-12-12 2016-06-16 キヤノン株式会社 Image processing device, image processing method, and program
US9965830B2 (en) 2014-12-12 2018-05-08 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and program

Also Published As

Publication number Publication date
JP3897691B2 (en) 2007-03-28

Similar Documents

Publication Publication Date Title
US6874131B2 (en) Method and system for client-less viewing of scalable documents
JP4716645B2 (en) Document viewing method
JP4603947B2 (en) Image communication system, server apparatus and control method therefor, and computer program
US6950101B2 (en) Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US7580577B2 (en) Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
US6167442A (en) Method and system for accessing and of rendering an image for transmission over a network
US6182127B1 (en) Network image view server using efficent client-server tilting and caching architecture
US8176428B2 (en) Portable internet access device back page cache
JP4934462B2 (en) Method, server and computer program for accessing partial document images
JP3811914B2 (en) Digital enlarged image providing method and digital enlarged image providing apparatus via data communication network
US7558430B2 (en) Apparatus method and computer-readable medium for processing hierarchical encoded image data
US7660476B2 (en) Image processing method and image processing apparatus
JP2007020196A (en) System and method in server/client environment
JP3897691B2 (en) Scroll display method and apparatus
JP2006237705A (en) Document browsing and printing system
JP3958198B2 (en) Image processing method
JP4065535B2 (en) Code data creation method and apparatus
JP2002503900A (en) Network image view server using a highly efficient client server, tiling and caching architecture
JP3768866B2 (en) Method and apparatus for creating encoded data
JP4250401B2 (en) Image processing apparatus and cache control method in the apparatus
JP2001306214A (en) Image display device and system and method for the same
JP2006339972A (en) Image processing apparatus and its control method, computer program, and storage medium
JP2004145759A (en) Image processing method
JP2003298847A (en) Image processing method
JP2003224704A (en) Image processing method and image processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061020

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: 20061205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061219

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3897691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140105

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees