JP3897691B2 - Scroll display method and apparatus - Google Patents

Scroll display method and apparatus Download PDF

Info

Publication number
JP3897691B2
JP3897691B2 JP2002365828A JP2002365828A JP3897691B2 JP 3897691 B2 JP3897691 B2 JP 3897691B2 JP 2002365828 A JP2002365828 A JP 2002365828A JP 2002365828 A JP2002365828 A JP 2002365828A JP 3897691 B2 JP3897691 B2 JP 3897691B2
Authority
JP
Japan
Prior art keywords
decoding
encoded data
display
image data
resolution
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.)
Expired - Fee Related
Application number
JP2002365828A
Other languages
Japanese (ja)
Other versions
JP2004199291A (en
Inventor
幸 榎田
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)

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の表示工程と、
前記第2の表示工程の後、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定工程と、
前記判定の結果、最高解像度かつ最高 Layer で前記符号化データの表示が可能でない場合には、前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求工程と、
前記キャッシュ工程でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード工程と、
前記第3のデコード工程でデコードされた画像データを表示する第3の表示工程と
を有することを特徴とする。
また、本発明は、サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示装置であって、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ手段と、
スクロール操作中に、前記キャッシュ手段でキャッシュされた前記符号化データのみをデコードする第1のデコード手段と、
前記第1のデコード手段でデコードされた前記画像データを拡大表示する第1の表示手段と、
スクロール操作終了後に、前記キャッシュ手段でキャッシュされた前記符号化データを前記第1のデコード手段よりも高解像度かつ高Layerでデコードする第2のデコード手段と、
前記第2のデコード手段でデコードされた画像データを拡大表示する第2の表示手段と
前記第2の表示手段による表示の後、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定手段と、
前記判定の結果、最高解像度かつ最高 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]
BACKGROUND OF THE INVENTION
The present invention relates to scrolling display of decoded images while receiving fragmentary data via a network.
[0002]
[Prior art]
On the Internet, browsing a document data or image data by accessing a WWW server from a Web (web) browser is actively performed. As described above, in a system environment including a WWW server for publishing information on the Internet and a client for browsing the information, each client uses a web browser to browse the information published by the WWW server. be able to.
[0003]
The WWW server normally stores a document describing information to be disclosed, which is called a home page, in HTML, which is accessed by a client-side web browser and displayed on a client-side computer. Also, the client-side web browser can obtain necessary information by following the links in the displayed page. Furthermore, as a method for downloading a file managed by the WWW server, there is a method called File Transfer Protocol (hereinafter abbreviated as “FTP”). FTP is a mechanism for transferring files on a WWW server to a client computer at once through a network.
[0004]
Further, there is Flashpix / IIP as a protocol for accessing and displaying an image file in pieces. 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. Access at this time is performed in units of Flashpix tiles.
[0005]
On the other hand, considering the case where this Flashpix / IIP is applied to JPEG2000 as it is, in JPEG2000, the encoded data of each scalability is composed of differential data with the data of scalability one level lower than the scalability. . Therefore, a method of caching the fragmented encoded data received on the client side, delivering all the encoded data to the decoder and re-decoding from the beginning, and the encoded data received this time while stopping the decoder halfway. To the decoder and decode from the previous continuation.
[0006]
Among such methods, in the system that requests the server for fragmented data of only the necessary data from the encoded image data having multi-resolution data, and receives and displays the data, the client side Conventionally, various methods have been proposed for displaying image data on such computers, particularly as a scroll display method.
[0007]
For example, in a technique related to an image editing apparatus that displays an image cut out from a background image and the background image, in particular, a technique for performing high-speed display by performing high-speed enlargement / reduction / scroll processing by synchronizing the two types of images. Has been proposed (see, for example, Patent Document 1).
[0008]
In addition, a technology related to a still image reproducing apparatus that performs hardware configuration and control so that read / write to an image memory, a control signal to an image processor for image processing, and the like does not cause bus contention on a local bus. Has also been proposed (for example, Patent Document 2).
[0009]
In addition, a technique related to an image scrolling apparatus that decodes run-length code data and performs scroll display and performs processing using a line memory instead of a memory for one screen (for example, patents) has been proposed. Reference 3).
[0010]
Further, when data is transferred from the display memory to the display control means, a drawing display control device and drawing display control for setting a portion not to be displayed in advance and controlling the data not to be displayed to be read from the memory. A technique related to a drawing display device including the device has also been proposed.
[0011]
[Patent Document 1]
Japanese Patent Laid-Open No. 05-054111
[0012]
[Patent Document 2]
Japanese Patent Laid-Open No. 06-004067
[0013]
[Patent Document 3]
Japanese Patent Laid-Open No. 06-019452
[0014]
[Patent Document 4]
JP 11-052942 A
[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 part that is newly required to be displayed is finally stored in the server in order to display at the necessary resolution and SN ratio (SNR). If the request is issued, the communication time of the code data occurs, and there is a problem that it takes time until display. In such a case, the user response during scroll display of image data becomes poor.
[0016]
On the other hand, in the case of Flashpix / IIP, since the code data is independent for each tile, it is not necessary to cache the tile data received once on the client side. However, in order to display low-resolution data by scroll display, it is necessary to newly request the server for low-resolution code data, and there is a problem that communication time and traffic increase due to communication again. . Further, when the image data displayed once is cached, there is a problem that a memory capacity for caching the image data is further required.
[0017]
In addition, when code data is cached by Flahspix / IIP, since the encoding method is the JPEG method, it is impossible to decode while adjusting the image quality. For this reason, in order to decode low-resolution code data, there is a problem that a decoding time proportional to the number of tiles is fixedly required.
[0018]
Furthermore, if only the code data that has already been received and is compressed and encoded by the JPEG2000 method that is cached on the client is used, the part that is newly required for display is decoded and displayed. It is conceivable that the portion not to be decoded is displayed assuming that the discrete wavelet transform (DWT) coefficient is 0, but in this case, there is a problem that it takes time to decode.
[0019]
Furthermore, as a method of supplementing the code data of the unreceived part, there is a method of using zero length packet. In this case as well, in the same way as described above, it takes time to finally decode the image data with the necessary resolution and SNR. There is a problem that it takes.
[0020]
Here, as described above, the “image editing apparatus” described in Patent Document 1 performs high-speed enlargement / reduction / scroll processing by synchronizing two types of images, an image cut out from a base image and a base image. Is. Therefore, information for managing the cut-out image data portion is held and controlled, and the entire displayed area is scrolled. That is, the display is scrolled at high speed while decoding JPEG2000, and is not performed after scrolling after holding all the image data, and the above problem cannot be solved.
[0021]
In addition, the “still image reproducing device” described in Patent Document 2 described above prevents the bus contention on the local bus for the control signal for the image processor for read / write to the image memory and for image processing. It performs hardware configuration and control. That is, it is not a technology related to a display device (hardware), but a technology related to a configuration combining a JPEG2000 decoder and IIP2k (image communication), and the above-described problems cannot be solved.
[0022]
Further, the “image scroll device” described in Patent Document 3 described above is a technique for decoding run-length code data and scroll-displaying it, and in particular, processing is performed with a line memory instead of the 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, not all the code data of the resolution currently displayed is decoded and then scrolled but displayed while being decoded. Therefore, the decoding time of the JPEG2000 is controlled to reduce the decoding time, and the above problem cannot be solved.
[0023]
Furthermore, as described above, the “drawing display control device and the drawing display device including the drawing display control device” described in Patent Document 4 can transfer data from the display memory to the display control unit. This is a technique for setting a portion not to be displayed in advance and controlling the data not to be displayed to be read from the memory. However, in the embodiment of the present invention described below, there is no particular area corresponding to the non-displayed portion, and it is possible to display over the entire display area. As in the invention described in Patent Document 4, two screens are provided. There is no need for processing such as superimposing the image data.
[0024]
The present invention has been made in view of such circumstances, and provides a scroll display method that can reduce communication traffic between a server and a client and improve 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-described problems, the present invention provides a scroll display method in a client that receives a part of encoded data stored in a server via a network and displays the decoded image data in a scrolling manner. ,
  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;
  A second decoding step of decoding the encoded data cached in the cache step at a higher resolution and a higher layer than the first decoding step after the scroll operation is completed;
  A second display step for enlarging and displaying the image data decoded in the second decoding step;
  After the second display step,A determination step of determining whether or not the encoded data can be displayed at the highest resolution and highest layer using the cached encoded data;
  As a result of the judgment, the highest resolution and the highest Layer If the display of the encoded data is not possible,A request step for newly requesting the server to transmit the encoded data that is insufficient;
  A third decoding step for decoding the encoded data cached in the cache step and the encoded data newly transmitted from the server;
  A third display step for displaying the image data decoded in the third decoding step;
  It is characterized by having.
  Further, the present invention is a scroll display device in a client that receives a part of encoded data stored in a server in a fragmented manner via a network and scrolls and displays decoded image data.
  Caching means for caching the fragmented encoded data received by the client;
  First decoding means for decoding only the encoded data cached by the cache means during a scroll operation;
  First display means for enlarging and displaying the image data decoded by the first decoding means;
  A second decoding means for decoding the encoded data cached by the cache means at a higher resolution and higher layer than the first decoding means after the scroll operation is completed;
  Second display means for enlarging and displaying the image data decoded by the second decoding means;
  After display by the second display means,A determination means for determining whether the encoded data can be displayed at the highest resolution and highest layer using the cached encoded data;
  As a result of the judgment, the highest resolution and the highest Layer If the display of the encoded data is not possible,Request means for newly requesting the server to transmit the encoded data that is insufficient;
  Third decoding means for decoding the encoded data cached by the cache means and the encoded data newly transmitted from the server;
  Third display means for displaying the image data decoded by the third decoding means;
  It is characterized by providing.
[0026]
That is, as will be described in the following embodiment, when displaying image data on the client, a certain part of the image data is displayed, and the display area is changed according to a user's request. Here, when scrolling the screen, only the JPEG2000 code data already received at the client is used, and only the SNR portion of the encoded data with a resolution lower than the resolution to be originally displayed is decoded at high speed. indicate.
[0027]
Then, the code data closest to the resolution and SNR that must be finally displayed that can be decoded with the encoded data at hand at the end of scrolling is decoded and displayed. At the same time, if the image data displayed at this time is not all the necessary encoded data finally, the server further requests the encoded data for the missing part and finally receives it after reception. Decodes and displays the correct image data. As a result, even at the end of scrolling, the image closest to the image data that should be finally displayed is once displayed with the encoded data at hand, and is displayed again after all the encoded data is 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 following embodiment relates to a method of scrolling and displaying image data while receiving fragmented code data via a network. In particular, by using a communication protocol such as the Internet Imaging Protocol (IIP) for JPEG2000 encoded data compliant with ISO / IEC-15444, the client can obtain a fragmented area or fragment of image encoded data from the server. The encoded data is received, and the experience speed of scroll processing at the client is improved.
[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 in which a plurality of computers including a server computer and a client computer are connected to 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 the WWW server function, including an IIP server for JPEG2000 for transmitting image data. The servers 101 and 103 are connected to large-capacity hard disks 101a and 103a, respectively, and a large amount of image data is stored in the respective hard disks. Reference numerals 102a and 102b denote client computers, each of which includes software necessary on the client side, such as a web (Web) browser and a JPEG2000 decoder.
[0032]
FIG. 2 is a block diagram showing 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 each computer. A keyboard 202 is used to input various data, commands, and the like to the device together with the mouse 202a. A display unit 203 includes, for example, a CRT, a liquid crystal display, and the like. Reference numeral 204 denotes a ROM, and 205 denotes a RAM, which constitutes a storage unit in the apparatus, and stores programs executed by the apparatus, data used by the apparatus, and the like.
[0034]
A hard disk 206 constitutes an external storage device used in the apparatus. Reference numeral 207 denotes a flexible disk, which is configured to be detachable via an interface of the device as an external storage device used in the device. Reference numeral 208 denotes a printer. Furthermore, reference numeral 209 denotes a network interface (I / F) for controlling the network, from which access to resources on a network such as a server computer connected to the network 100 such as the Internet (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, already generated JPEG2000 code files are managed by the server computers 101 and 103. On the other hand, the client computers 102a and 102b request only necessary portions in the JPEG2000 code file such as an image display / print application from the server computers 101 and 103 using the IIP for JPEG2000. Then, the encoded data sent in response thereto is received in fragments, and the received fragmented encoded data is cached in the hard disk 206, for example.
[0036]
In the client computers 102a and 102b, the fragmented JPEG2000 code data cached in the hard disk 206 or the like may be directly processed by a JPEG2000 decoder, or the cached code data is temporarily processed according to JPEG2000-compliant JPEG2000 code data. May be transferred to a JPEG2000 decoder. In the present embodiment described below, in order to simplify the description, it is assumed that JPEG 2000 code data that is directly cached is processed by a decoder.
[0037]
The user of the client computer 102a, 102b opens a home page using, for example, a Windows (registered trademark) machine, and clicks a link to a JPEG 2000 image written therein. As a result, JPEG2000 images are acquired as fragmented data necessary for display at an image size and resolution suitable for the use of the clients 102a and 102b, cached, and displayed after decoding necessary portions. Is done.
[0038]
In the following, it is assumed that the displayed part is changed while scrolling in response to a user request.
[0039]
Here, with reference to FIG. 3, general JPEG2000 code data will be described. 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 this SNR Progression, recording is performed in the order of Layer / Resolution (resolution) / Component (component) / Position (position).
[0040]
FIG. 4 is a diagram for explaining the resolution scalability of JPEG 2000 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 of the image with the smallest resolution is set to “0”, and the width and height of the decoded image are both doubled as the Resolution number increases by one. Each layer (Layer) is assigned to each resolution in ascending order of Layer number. The layer number corresponds to the S / N ratio with respect to the original image of the image to be restored. The smaller the layer number, the worse the S / N ratio.
[0041]
The maximum values of the Resolution number, Layer number, and Component number in one JPEG2000 code file are preset by the encoder, encoded according to the parameters, and the information is stored in the encoded data. Each packet is composed of a packet header section that manages information of a code block (code-block) stored in the packet, and encoded data of each code block. Yes.
[0042]
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, but the case of the server 103 can be similarly executed.
[0043]
As a unit of data received by the client, a JPEG2000 code data packet or a code block unit which is an encoding unit smaller than the packet can be considered. In this embodiment, a packet unit is assumed as a data unit received by the client from the server. However, the data unit can be executed in the same manner as in this embodiment in the code block unit.
[0044]
That is, the scroll display method according to the present embodiment is characterized in that the encoded data is transmitted from the server via the network in units of packets or code blocks.
[0045]
FIG. 5 is a conceptual diagram for explaining a data request and a response in a packet unit between the server and the client in the first embodiment.
[0046]
In FIG. 5, the client 102 a requests data by specifying 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 illustrated in FIG. 5, the tile number (Tile) is “1”, resolution “0”, layer “0”, Component “0”, and Position number “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 and layer, component, and position number, and sends the packet 0 back to the client 102a. .
[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 the X direction and the Y direction, that is, the entire image is divided into 64 tiles. In addition, the number in a figure shows a tile number. In the present embodiment, the maximum resolution image size 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 the code when divided into the 64 tiles shown in FIG. In FIG. 7, reference numeral 701 denotes an example of code data of each tile. A tile part header 702 and packet data 703 are included in the tile code data.
[0050]
In the example illustrated 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. In order to simplify the description, the image size of the maximum resolution of JPEG 2000 managed by the server 101 is assumed to be 1024 × 1024 pixels as described above. That is, when there are six types of resolution levels, the resolution size 5 is 1024 × 1024, and the image size is 512 × 512, 256 × 256, 128 × 128, and 64 × 64 in the following order. Number 0 is 32 × 32 pixels.
[0051]
FIG. 8 is a flowchart for explaining an outline of processing by an application in the client 102a according to the first embodiment. This flowchart shows a display processing procedure for image data after a JPEG2000 application is activated on the client 102a and a JPEG2000 file to be displayed is designated by another means. Note that the same processing is performed in other clients (for example, the client 102b).
[0052]
First, the thumbnail image of the designated file is displayed by the client application (step S800). Thereafter, the display is enlarged (step S801) and scrolled (step S802).
[0053]
Specifically, if the size of the image display area in the client application is 128 × 128 pixels, the display of thumbnail images in step S800 decodes 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, if the image displayed in step S800 is enlarged by two stages, 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 image displayed in step S800 is fixed and enlarged, four tiles of tile numbers 27, 28, 35, and 36 indicated by 600 in FIG. 6 are displayed.
[0054]
FIG. 9 is a diagram for explaining a communication protocol for thumbnail display and received code data in step S800 of FIG. That is, FIG. 9 shows the cache state after execution of the process of step S800. In FIG. 9, the same number is attached | subjected to the code data of the same content as FIG. In step S800, since the same request is issued for all tiles, the cache is in the same state.
[0055]
In FIG. 9, reference numeral 901 denotes a cache for each tile. In this embodiment, since all the code data up to resolution number 2 is received, the received code data portion is described by the expression “Layer numerical value / Reso numerical value / Comp numerical value / Pos numerical value”. The portion that has not yet been received uses the expression “ZLP (Zero Length Packet)”.
[0056]
FIG. 10 is a diagram for explaining the communication protocol and the received code data after moving from step S800 of FIG. 8 to step S801. In step S801, six code data indicated by a part “Layer [0-2] / Reso [3-4] / Comp0 / Pos0” in which only four tiles of tile numbers 27, 28, 35, and 36 in FIG. This part is filled with data. The tiles other than the above are in the same state as that shown in FIG.
[0057]
Next, the scroll display process in step S802 will be described. In the scroll display in this embodiment, the resolution number 4 and the maximum SNR of the four tiles of tile numbers 27, 28, 35, and 36 are displayed, and the area indicated by 602 in FIG. A case will be described in which the image is continuously scrolled to the area indicated by 601 (the areas of tile numbers 45, 46, 53, and 54) via the areas 44 and 45). FIG. 11 is a flowchart for explaining in detail the scroll process (step S802) according to the first embodiment.
[0058]
First, a scrolling operation is started by a pointing device such as a user's mouse, and the amount of movement of the mouse when image data at a corresponding position is displayed according to the amount of movement is calculated (step S802a). Next, an area of image data to be displayed is specified based on the movement amount obtained in step S802a (step S802b). Here, the corresponding tile group is calculated. That is, in the scroll display method according to the present embodiment, the area of the image data to be scroll-displayed on the display screen is specified based on the amount of movement of the pointer in 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 enlarged and displayed as necessary (step S802d). Thereafter, it is determined whether scroll requests from the user are continuous (step S802e). This determination method is, for example, when the scroll instruction method is a method of moving while pressing the left button of the mouse, determining the state of the button of the mouse and whether or not the button is kept pressed. Judging. As a result, when the button is kept pressed, it is determined that the process is finished and the process returns to step S802a. On the other hand, if the mouse button is released, the process moves to step S802f.
[0060]
In other words, 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 fragmented manner via a network and scrolls and displays decoded image data. . In this scroll display method, first, fragmented encoded data received by the client is cached (cache process). Next, only the encoded data cached in the cache process is decoded during the scroll operation (first decoding process), and the decoded image data is enlarged and displayed (first display process). Then, the encoded data cached in the cache process is decoded at a higher resolution and higher layer than the first decode process after the scroll operation is finished (second decode process). The image data decoded in the second decoding step is enlarged and displayed (second display step).
[0061]
In the scroll display method according to the present embodiment, the first display step obtains the 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. Furthermore, in the scroll display method according to the present embodiment, the second display step obtains the enlargement ratio of the image data from the resolution and 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 moves 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 an area indicated by tile numbers 36, 37, 44, and 45. In step S802c, the JPEG2000 decoder is instructed to decode resolution number 0 and layer number 0 of the four tile groups of tile numbers 36, 37, 44, and 45.
[0063]
Thereafter, in step S802d, the coarse image data obtained by decoding in step S802c is displayed. In the case of the present embodiment, since the resolution of the lowest resolution is being performed, it is necessary to enlarge to the resolution that should be finally displayed, and this time, the display is performed while performing the 16-times enlargement process. In the case of the present embodiment, since scrolling is continued thereafter, the process returns to step S802a if the process is not ended in step S802e.
[0064]
Thereafter, it is further scrolled by the user's designation, and the areas indicated by tile numbers 45, 46, 53, and 54 are displayed. This determination is made in step S802b. In step S802c, the above four tiles (tile numbers 45, 46, 53, 54) are decoded with resolution number 0 and layer number 0 in the same manner as described above, and tile number 45 is determined in step S802d. , 46, 53, and 54, the image data is displayed while being enlarged. Thereafter, in this embodiment, since the user releases the left button of the mouse, in step S802e, the process moves to step S802f because it is finished. That is, this embodiment is characterized in that the first decoding step decodes encoded data with the lowest resolution and the lowest layer.
[0065]
Next, the process in the case of the scroll end after step S802f will be described in detail. First, decoding is performed up to the point closest to the resolution and SNR that must be displayed, which can be reproduced with the cached code data at hand (step S802f). Then, the image data obtained as a result of decoding 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 a resolution and SNR that should be finally displayed (step S802).
[0066]
As a result, when the resolution is final and SNR (that is, when it is not a new request) (No), the processing ends. On the other hand, if it is different (ie, if it is a new request) (Yes), it is necessary to reproduce the already received code data currently in hand and the image of the resolution and SNR that must be finally displayed. The server is requested for code data of a difference 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 not necessary to enlarge the decoded image data.
[0067]
That is, in addition to the above-described procedure, the scroll display method according to the present embodiment further determines whether the encoded data can be displayed at the highest resolution and the highest layer using the cached encoded data. (Determination step). Then, the server is newly requested to transmit the encoded data that is insufficient (request process), and the encoded data cached in the cache process and the encoded data newly transmitted from the server are decoded. (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 to what extent code data of tile numbers 45, 46, 53, and 54 are filled. In the case of the present embodiment, the resolution and layer displayed before scrolling are resolution number 4 and layer number 2, respectively, and the code data currently owned by tile numbers 45, 46, 53, and 54 are resolution numbers. 2 and SNR number 2. Therefore, the above four tiles are decoded with resolution number 2 and layer number 2. In step S802g, display is performed while enlarging from the resolution number 2 to the resolution number 4, that is, by 4 times. As a result, it is possible to display higher-resolution image data than the image data displayed in step S802d.
[0069]
Next, in steps S802h and S802i, the encoded data of the “Layer [0-2] / Reso [3-4] / Comp0 / Pos0” portion of the four tiles (tile numbers 45, 46, 53, and 54) is stored in the server. To request. In step S802j, the requested code data is received. In step S802k, the four tiles are decoded up to resolution number 4 and layer number 2. In step S802l, the image data obtained as a result of decoding in step S802k is displayed without being enlarged as it is, and the scroll display process is terminated.
[0070]
As described above, according to the scroll display method in the server / client system in the first embodiment, during the scroll process, only the code data that has already been received before entering the scroll process (cached in the client). Code data only). That is, during scrolling, display is repeated at the lowest resolution and lowest SNR, and at the end of scrolling, the image data is displayed at the highest resolution that can be reproduced with the code data at hand, and the final display portion (final display) Only the code data in the display area) is further requested from the server and displayed. Accordingly, it is possible to minimize communication traffic between the server and the client.
[0071]
In addition, even when there is no image data to be finally displayed at the end of scrolling, the image speed closest to the final display that can be reproduced with the code data at hand is temporarily displayed, thereby improving the user's sensation speed. be able to.
[0072]
Furthermore, by dynamically controlling the image quality and the like of the image displayed during scrolling, it is possible to display according to the sensitivity of the user. Furthermore, in each step, since the image data is displayed in small increments, the user can perform an image display operation without feeling stress.
[0073]
In this embodiment, JPEG2000 encoded data is decoded directly from cached code data. However, the application of the present invention is not limited to this, and JPEG2000-compliant encoding is performed from a cache. A method may be used in which a data file is created and decoded.
[0074]
<Second Embodiment>
In the first embodiment described above, decoding is performed with the lowest resolution and the lowest SNR in the middle of scrolling, and enlarged display is performed. In the second embodiment, a case will be described in which the resolution is not limited to the minimum resolution, but is displayed at the resolution closest to the resolution that should be finally displayed in the already received code data.
[0075]
That is, in this case, the process in step S802c in FIG. 11 is different from that in the first embodiment. Specifically, as an example, resolution number 2 is decoded instead of resolution number 0. The SNR is the same as that in the first embodiment.
[0076]
In this embodiment, since the resolution to be decoded in step S802c changes, the enlargement ratio at the time of display in the next step S802d was 16 times in the first embodiment, but in the case of this embodiment, it is 4 times. Doubled. Other processes are the same as those 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 layer. In such a case, it depends on the code data in the server. That is, it cannot be used unless Layer is specified in advance in the encoding condition.
[0078]
Therefore, in this embodiment, coding-path is used for control in the SNR direction. By using this, it is possible to control the SNR even for code data that is not cut into layers.
[0079]
Specifically, when decoding in step S802c of FIG. 11, a parameter indicating how far the coding-path is processed instead of the layer number is given to the JPEG2000 decoder. For example, if coding-path is specified up to 3, the JPEG2000 decoder decodes only the MSB (most significant bit) when restoring the DWT coefficient. As a result, the SNR can be controlled more finely than the Layer. Other processes are the same as those in the first and second embodiments.
[0080]
<Other embodiments>
In the embodiments so far, the basic processing procedure of scroll display using JPEG2000 and IIP has been described. Here, as another embodiment, a display method according to the speed at which the user moves the mouse when operating the scroll display will be described. For example, when the mouse is moved quickly, an image with a low SNR is displayed. Conversely, when the mouse is moved slowly, an image with a high SNR is displayed. That is, the present embodiment is characterized in that the SNR of the image data to be scroll-displayed on the display screen is specified based on the moving speed of the pointer in 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 for explaining an example of a processing procedure in another embodiment. In the figure, the same reference numerals are given to portions that perform the same operations as those of the above-described embodiment. Below, the newly added part is demonstrated.
[0083]
First, the maximum (Max) coding-path of each tile of the image currently displayed is acquired (step S1200). In step S802a, the moving amount is calculated, and at the same time, the moving speed (moving speed) is calculated (step S1201). This can be calculated by using a timer such as how much has moved per unit time. Next, the tile group to be displayed this time is obtained (step S802b), and the SNR to be decoded from the moving speed calculated in step S1201 and the Max coding-path obtained in step S1200 is calculated with the coding-path (step S1202). .
[0084]
Further, the coding-path and resolution calculated in step S1202 are designated and decoded (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 above-described operation flow will be described in detail using specific numerical values. First, in step S1200, the value of Max coding-path is acquired from the code data for each tile of all the tiles of the current code data. Since this cannot be obtained from the code data cached in the client, it is requested from the server.
[0086]
Thereafter, scroll display starts by the user's operation of the mouse or the like, and the amount of movement of the mouse is calculated in step S802a. Next, in step S1201, the relationship between the movement amount in step S802a and unit time is classified into the types of “high speed”, “medium speed”, and “low speed” as shown in the table of FIG. 13A, for example. To do. FIG. 13 is a diagram showing determination of mouse speed and coding-path corresponding to it. 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 “64 pixels or less”. Therefore, in this step, the speed is classified into three types.
[0087]
Next, the tile group corresponding to the area to be scrolled and displayed in step S802b 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 speed” is “4”, “medium speed” is “10”, and “low speed” is “19”. As described above, the SNR is lowered as the speed increases, and the decoding time is shortened. In step S1203, the coding-path and resolution obtained in step S1202 are decoded, for example, resolution number 2.
[0089]
In step S802d, the enlargement ratio is obtained from the resolution decoded in step S1203 and the resolution that should be displayed at present. In the case of this embodiment, it is four times. Then, display is performed while enlarging at this enlargement rate. Next, in step S802e, it is determined whether or not the mouse button has been released. If not released (No), the process returns to step S802a, and if released (Yes), the process proceeds to the next step. The following steps are the same as those in the above-described embodiment.
[0090]
In the present embodiment, the SNR to be displayed is changed depending on the speed at which the user's mouse is moved. In particular, control is performed so that the SNR of the displayed image decreases as the mouse is moved faster. In other words, the JPEG2000 decoder can perform a higher-speed decoding as the SNR is lowered and can perform a scroll display according to the movement of the user's mouse.
[0091]
Note that the speed classification method and the number of classifications relating to mouse movement and the number of coding-paths to be decoded are not limited to those described above. Further, the resolution for decoding is not limited to this.
[0092]
Furthermore, although the description has been made with respect to the decoding method in which the SNR and the resolution are lowered as the decoding method during scrolling, the present invention is not limited to this. Also good.
[0093]
Note that the present invention can be applied to a system composed of a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), but a device (for example, a copier, a facsimile machine, etc.) composed of a single device. You may apply to.
[0094]
Also, an object of the present invention is to supply a recording medium (or storage medium) in which a program code of software that realizes the functions of the above-described embodiments is recorded to a system or apparatus, and the computer (or CPU or Needless to say, this can also be achieved when the MPU) reads and executes the program code stored in the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention. Further, by executing the program code read by the computer, 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 case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.
[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 functions of the above-described embodiments are realized by the processing.
[0096]
When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.
[0097]
When the present invention is executed by a program, it is not limited to the processing flow described in the above-described embodiment, and it is easily guessed that user response can be further improved by effectively using multi-threading 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 showing 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 showing 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 for explaining resolution scalability of JPEG2000 in the first embodiment.
FIG. 5 is a conceptual diagram for explaining a data request and a response in a packet unit between a server and a client in the first embodiment.
FIG. 6 is a conceptual diagram of tile division in the first embodiment.
FIG. 7 is a diagram showing an example of a JPEG2000 code file managed (stored) by the server 101 used in the first embodiment.
FIG. 8 is a flowchart for explaining an outline of processing by an application in the client 102a according to the first embodiment.
9 is a diagram for explaining a communication protocol for displaying thumbnails and received code data in step S800 of 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 in detail scroll processing (step S802) according to the first embodiment;
FIG. 12 is a flowchart for explaining an example of a processing procedure in another embodiment.
FIG. 13 is a diagram showing determination of mouse speed and coding-path corresponding to the determination.

Claims (11)

サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示方法であって、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ工程と、
スクロール操作中に、前記キャッシュ工程でキャッシュされた前記符号化データのみをデコードする第1のデコード工程と、
前記第1のデコード工程でデコードされた前記画像データを拡大表示する第1の表示工程と、
スクロール操作終了後に、前記キャッシュ工程でキャッシュされた前記符号化データを前記第1のデコード工程よりも高解像度かつ高Layerでデコードする第2のデコード工程と、
前記第2のデコード工程でデコードされた画像データを拡大表示する第2の表示工程と、
前記第2の表示工程の後、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定工程と、
前記判定の結果、最高解像度かつ最高 Layer で前記符号化データの表示が可能でない場合には、前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求工程と、
前記キャッシュ工程でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード工程と、
前記第3のデコード工程でデコードされた画像データを表示する第3の表示工程と
を有することを特徴とするスクロール表示方法。
A scroll display method in a client that receives a part of encoded data stored in a server in a fragmented 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;
A second decoding step of decoding the encoded data cached in the cache step at a higher resolution and a higher layer than the first decoding step after the scroll operation is completed;
A second display step for enlarging and displaying the image data decoded in the second decoding step;
After the second display step , a determination step of determining whether the encoded data can be displayed at the highest resolution and highest layer using the cached encoded data;
As a result of the determination, if the encoded data cannot be displayed at the highest resolution and highest layer , a request step for newly requesting the server to transmit the encoded data that is insufficient,
A third decoding step for decoding the encoded data cached in the cache step and the encoded data newly transmitted from the server;
And a third display step for displaying the image data decoded in the third decoding step.
前記画像データが表示された表示画面中のポインタ移動量に基づいて、該表示画面にスクロール表示させる画像データの領域を特定する領域特定工程をさらに備えることを特徴とする請求項1に記載のスクロール表示方法。The area specifying step of specifying an area of image data to be scroll-displayed on the display screen based on a movement amount of a pointer in the display screen on which the image data is displayed. Scroll display method. 前記符号化データが、前記サーバから前記ネットワークを介してパケット単位で送信されることを特徴とする請求項1又は2に記載のスクロール表示方法。  The scroll display method according to claim 1 or 2, wherein the encoded data is transmitted from the server in packet units via the network. 前記符号化データが、前記サーバから前記ネットワークを介してコードブロック単位で送信されることを特徴とする請求項1から3までのいずれか1項に記載のスクロール表示方法。  The scroll display method according to any one of claims 1 to 3, wherein the encoded data is transmitted from the server in units of code blocks via the network. 前記第1のデコード工程が、前記符号化データを最低解像度かつ最低Layerでデコードすることを特徴とする請求項1から4までのいずれか1項に記載のスクロール表示方法。  5. The scroll display method according to claim 1, wherein the first decoding step decodes the encoded data with a minimum resolution and a minimum layer. 6. 前記第1の表示工程が、前記第1のデコード工程における前記符号化データの解像度及びLayerから前記画像データの拡大率を求め、該画像データを拡大表示することを特徴とする請求項1から5までのいずれか1項に記載のスクロール表示方法。  6. The first display step obtains an enlargement ratio of the image data from a resolution and a layer of the encoded data in the first decoding step, and displays the image data in an enlarged manner. The scroll display method according to any one of the above. 前記第2の表示工程が、前記第2のデコード工程における前記符号化データの解像度及びLayerから前記画像データの拡大率を求め、該画像データを拡大表示することを特徴とする請求項1から6までのいずれか1項に記載のスクロール表示方法。  The second display step obtains an enlargement ratio of the image data from the resolution and Layer of the encoded data in the second decoding step, and enlarges and displays the image data. The scroll display method according to any one of the above. 前記画像データが表示された表示画面中のポインタの移動速度に基づいて、該表示画面にスクロール表示させる画像データのSNRを特定するSNR特定工程をさらに備えることを特徴とする請求項1から7までのいずれか1項に記載のスクロール表示方法。  8. An SNR specifying step of specifying an SNR of image data to be scroll-displayed on the display screen based on a moving speed of a pointer in the display screen on which the image data is displayed. The scroll display method according to any one of the above. サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するクライアントにおけるスクロール表示装置であって、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ手段と、
スクロール操作中に、前記キャッシュ手段でキャッシュされた前記符号化データのみをデコードする第1のデコード手段と、
前記第1のデコード手段でデコードされた前記画像データを拡大表示する第1の表示手段と、
スクロール操作終了後に、前記キャッシュ手段でキャッシュされた前記符号化データを前記第1のデコード手段よりも高解像度かつ高Layerでデコードする第2のデコード手段と、
前記第2のデコード手段でデコードされた画像データを拡大表示する第2の表示手段と
前記第2の表示手段による表示の後、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定手段と、
前記判定の結果、最高解像度かつ最高 Layer で前記符号化データの表示が可能でない場合には、前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求手段と、
前記キャッシュ手段でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード手段と、
前記第3のデコード手段でデコードされた画像データを表示する第3の表示手段と
を備えることを特徴とするスクロール表示装置。
A scroll display device in a client that receives a part of encoded data stored in a server in a fragmented manner via a network and scrolls and displays decoded image data.
Caching means for caching the fragmented encoded data received by the client;
First decoding means for decoding only the encoded data cached by the cache means during a scroll operation;
First display means for enlarging and displaying the image data decoded by the first decoding means;
A second decoding means for decoding the encoded data cached by the cache means at a higher resolution and higher layer than the first decoding means after the scroll operation is completed;
Second display means for enlarging and displaying the image data decoded by the second decoding means;
Determination means for determining whether or not the encoded data can be displayed at the highest resolution and highest layer using the cached encoded data after the display by the second display means ;
As a result of the determination, when the encoded data cannot be displayed at the highest resolution and highest layer , request means for newly requesting the server to transmit the encoded data that is insufficient;
Third decoding means for decoding the encoded data cached by the cache means and the encoded data newly transmitted from the server;
And a third display unit for displaying the image data decoded by the third decoding unit.
サーバに格納されている符号化データの一部分をネットワークを介して断片的に受信し、デコードした画像データをスクロール表示するコンピュータに、
前記クライアントが受信した断片的な前記符号化データをキャッシュするキャッシュ手順と、
スクロール操作中に、前記キャッシュ手順でキャッシュされた前記符号化データのみをデコードする第1のデコード手順と、
前記第1のデコード手順でデコードされた前記画像データを拡大表示する第1の表示手順と、
スクロール操作終了後に、前記キャッシュ手順でキャッシュされた前記符号化データを前記第1のデコード手順よりも高解像度かつ高Layerでデコードする第2のデコード手順と、
前記第2のデコード手順でデコードされた画像データを拡大表示する第2の表示手順と
前記第2の表示手順の後、キャッシュされた符号化データを用いて最高解像度かつ最高Layerで該符号化データの表示が可能か否かを判定する判定手順と、
前記判定の結果、最高解像度かつ最高Layerで前記符号化データの表示が可能でない場合には、前記サーバに対して、不足している前記符号化データの送信を新たに要求する要求手順と、
前記キャッシュ手順でキャッシュされた前記符号化データと前記サーバから新たに送信された符号化データとをデコードする第3のデコード手順と、
前記第3のデコード手順でデコードされた画像データを表示する第3の表示手順と
を実行させるためのプログラム。
A computer that receives a part of the encoded data stored in the server in a fragmented manner via a network and scrolls and displays the decoded image data.
A caching procedure for caching the fragmented encoded data received by the client;
A first decoding procedure for decoding only the encoded data cached in the cache procedure during a scroll operation;
A first display procedure for enlarging and displaying the image data decoded in the first decoding procedure;
A second decoding procedure for decoding the encoded data cached in the cache procedure at a higher resolution and higher layer than the first decoding procedure after the scroll operation is completed;
A second display procedure for enlarging and displaying the image data decoded in the second decoding procedure; and the encoded data at the highest resolution and highest layer using the cached encoded data after the second display procedure. A determination procedure for determining whether or not display is possible,
As a result of the determination, if the encoded data cannot be displayed at the highest resolution and the highest layer, a request procedure for newly requesting the server to transmit the encoded data that is insufficient;
A third decoding procedure for decoding the encoded data cached in the cache procedure and the encoded data newly transmitted from the server;
And a third display procedure for displaying the image data decoded by the third decoding procedure.
請求項10記載のプログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。  A computer-readable recording medium storing the program according to claim 10.
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 JP2004199291A (en) 2004-07-15
JP3897691B2 true 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)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2006332488A1 (en) * 2005-12-30 2007-07-12 Apple Inc. Portable electronic device with 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
JP5141886B2 (en) * 2008-02-28 2013-02-13 株式会社リコー Image processing apparatus, image processing method, program, and recording medium
JP5188209B2 (en) * 2008-03-03 2013-04-24 キヤノン株式会社 Display control apparatus, method, and program
JP5315862B2 (en) * 2008-08-29 2013-10-16 カシオ計算機株式会社 Server device, client device, and program
CN102387091B (en) * 2010-08-31 2014-12-10 腾讯科技(深圳)有限公司 Data transmission method and device based on sliding detection
JP6526051B2 (en) 2014-12-12 2019-06-05 キヤノン株式会社 Image processing apparatus, image processing method and program

Also Published As

Publication number Publication date
JP2004199291A (en) 2004-07-15

Similar Documents

Publication Publication Date Title
US5764235A (en) Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US8176428B2 (en) Portable internet access device back page cache
JP4377103B2 (en) Image processing for JPEG2000 in a server client environment
US7660476B2 (en) Image processing method and image processing apparatus
US6874131B2 (en) Method and system for client-less viewing of scalable documents
US7191211B2 (en) Portable high speed internet access device priority protocol
US7529755B2 (en) Method for document viewing
US6182127B1 (en) Network image view server using efficent client-server tilting and caching architecture
US5838927A (en) Method and apparatus for compressing a continuous, indistinct data stream
US7580577B2 (en) Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
KR100405060B1 (en) Enlarged Digital Image Providing Method and Apparatus Using Data Communication Networks
JP4934462B2 (en) Method, server and computer program for accessing partial document images
US7558430B2 (en) Apparatus method and computer-readable medium for processing hierarchical encoded image data
EP1531393A2 (en) Apparatus and method for remote controlling of Windows in Client-Server environment
WO1998037487A1 (en) Method and system for accessing and rendering an image for transmission over a network
JP3897691B2 (en) Scroll display method and apparatus
US20040036912A1 (en) Method and system for accessing documents in environments with limited connection speed, storage, and screen space
JP3958198B2 (en) Image processing method
JP2002503900A (en) Network image view server using a highly efficient client server, tiling and caching architecture
JP4065535B2 (en) Code data creation method and apparatus
JP4250401B2 (en) Image processing apparatus and cache control method in the apparatus
JP4109963B2 (en) Image processing method and apparatus
JP2006339972A (en) Image processing apparatus and its control method, computer program, and storage medium
JP4125087B2 (en) Image processing method
JP2001306214A (en) Image display device and system and method for the same

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