(57)【要約】【課題】複数の解像度の画像を有する符号化データの受信形態を、目的に応じて切り替える技術を提供すること。【解決手段】サーバ装置が保持するスケーラビリティを有する画像符号化データを受信する場合、端末装置で入力された入力の種別に応じて、指示した画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するためにサーバ装置に送信する第１のコマンド、もしくは画像符号化データにおける部分画像符号化データを特定する情報を第１のコマンドよりも詳細に記述し、且つ部分画像符号化データをサーバ装置から所定の単位毎に受信するためにサーバ装置に送信する第２のコマンドの何れかを生成してサーバ装置に送信し、サーバ装置から送信される画像符号化データを受信してデコードして所定の出力装置に出力する。【選択図】  図８
2004193752.tif 000002
【特許請求の範囲】
【請求項１】
スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理方法であって、
ユーザからの各種の入力を受け付ける入力工程と、
当該入力工程で入力された入力の種別に応じて、当該入力工程で指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信工程と、
前記サーバ装置から送信される、当該送信工程で送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力工程と
を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された画像符号化データを受信し、受信した画像符号化データを１つの画像ファイルに作成する技術に関するものである。
【０００２】
【従来技術】
インターネット上では、ＷＷＷサーバにＷｅｂ（ウエブ）ブラウザを用いてアクセスして文書データや画像データ等を閲覧することが盛んに行われている。このシステムはインターネット上に情報を公開するＷＷＷサーバと、その情報を閲覧するクライアント装置（端末装置）とを含み、各端末装置上ではウェブブウザが実行されており、各端末装置のユーザはこのウエブブラウザを用いてＷＷＷサーバによって公開された情報を閲覧することができる。このＷＷＷサーバには、ホームページと呼ばれる公開対象の情報をＨＴＭＬで記述したファイルが保存されており、上述の通り端末装置のユーザはウェブブウザを用いてこれにアクセスすることで端末装置の表示装置の表示画面上に上記ファイルによって表現される内容を表示することができる。
【０００３】
また端末装置側のウエブブラウザを用いることで、表示装置の表示画面上に表示しているページ内のリンクを辿っていくことができ、これにより必要な情報を得ることができる。更に、ＷＷＷサーバが管理しているファイルを端末装置にダウンロードするためには、Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（以下、ＦＴＰと略す）を用いるのが一般的である。このＦＴＰとは、ネットワークを通してＷＷＷサーバが管理するファイルを一度に端末装置に転送する技術である。
【０００４】
また上記ファイルには画像ファイルも含まれており、端末装置からＷＷＷサーバが管理する画像ファイルへ複数回に分けてアクセスし、アクセスした画像ファイルの内容（画像）を表示装置に表示するために使用するプロトコルとしてＦｌａｓｈｐｉｘ／ＩＩＰがある。このＩＩＰはＦｌａｓｈｐｉｘと呼称される画像データファイルのフォーマットに最適なプロトコルになっており、画像データへ複数回に分けてアクセスする際において１回のアクセス単位は、このＦｌａｓｈｐｉｘのタイル単位に行うものである。
【０００５】
ここで、このＩＩＰをそのままＪＰＥＧ２０００に適用した場合を考える。ＪＰＥＧ２０００では、各スケイラビリティを有する符号化データにおいて、夫々の符号化データは、自身が有するスケーラビリティよりも１つ下のスケイラビリティのデータからの差分データで構成されている。ＷＷＷサーバがＪＰＥＧ２０００に従った符号化データを保持しており、端末装置からウェブブウザを用いてこの符号化データに対して複数回に分けてアクセスし、夫々のアクセスにおいて受信した各スケーラビリティの符号化データをデコードして表示装置にデコード結果を表示する場合、端末装置は受信した各スケーラビリティの符号化データをメモリにキャッシュしておき、全ての符号化データを受信するとこれらの全ての符号化データをデコーダに送り、デコードする方法や、各符号化データ毎にデコードし、新たに符号化データを受信すると、これを前回の続きからデコードする方法がある。
【０００６】
このような状況に鑑みて、マルチ解像度を有する画像符号化データの中から必要な部分のデータのみを取り出して別の符号化データに変換する方法として従来から様々な方法が提案されている（例えば特許文献１を参照）。この種の技術として従来では、ソースとなる画像データは、ウェーブレット変換等のようなマルチ解像度のデータを管理するための符号化方式を用いて符号化されている。そして、このソースとなる符号化データ（オリジナル符号化データ）の中から、クライアントが選択した空間的な領域に対応する符号化データ（部分符号化データ）を取り出し、１つの独立した符号化データに変換するものである。この時、ソオリジナル符号化データから取り出される部分符号化データはＪＰＥＧ２０００のコードブロックに対応しており、部分符号化データの全ての階層で、かつ全てのサブバンドから部分符号化データに該当する、もしくは関係する全ての符号化データを含むものである。
【０００７】
また他の従来技術としては、ソースとなる画像データは、マルチ解像度のデータを有する画像データであって、サーバと端末装置との間で画質とデータ量のトレードオフを決めるための調停を行う手段を有し、最終的にはサーバ側で転送するデータ量を決め、この調停で決められたデータ量で且つ論理的な符号データの単位まで、サーバが端末装置に対してデータを転送するものである（例えば特許文献２を参照）。
【０００８】
【特許文献１】
米国特許第６０４１１４３号（「ＭＵＬＴＩＲＥＳＯＬＵＴＩＯＮ  ＣＯＭＰＲＥＳＳＥＤ  ＩＭＡＧＥ  ＭＡＮＡＧＥＭＥＮＴ  ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ」）
【特許文献２】
米国特許第５７６４２３５号（「ＣＯＭＰＵＴＥＲ  ＩＭＰＬＥＭＥＮＴＥＤ  ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭＦＯＲ  ＴＲＡＮＳＭＩＴＴＩＮＧ  ＧＲＡＰＨＩＣＡＬ  ＩＭＡＧＥＳ  ＦＲＯＭ  ＳＥＲＶＥＲ  ＴＯ  ＣＬＩＥＮＴ  ＡＴ  ＵＳＥＲ  ＳＥＬＥＣＴＡＢＬＥ  ＲＥＳＯＬＵＴＩＯＮ」）
【０００９】
【発明が解決しようとする課題】
端末装置が受信した各スケーラビリティの符号化データをメモリにキャッシュしておき、全ての符号化データを受信するとこれらの全ての符号化データをデコーダに送り、デコードする場合、サーバ側から送られてくる各スケーラビリティの符号化データを、直接ＪＰＥＧ２０００準拠の１つの符号化データファイルに作り直すことは可能である。
【００１０】
しかし、サーバ側から送られてくる各符号化データは、端末装置側から要求する順に送られてくるため、端末装置が受信した符号化データをＪＰＥＧ２０００準拠の１本の符号化データに変換することは、端末装置側の処理が煩雑になり、コストがかかるという問題点がある。
【００１１】
又、サーバから送られてきた各符号化データを独自形式のキャッシュファイルとして構成し、端末装置側のＪＰＥＧ２０００デコーダが直接このキャッシュファイルをリードすることも可能であるが、この場合、ＪＰＥＧ２０００のデコーダは、この独自のキャッシュファイルをリードするための処理が必要となる。このため、処理が複雑になると共に、汎用のＪＰＥＧ２０００デコーダが使えないという問題点がある。
【００１２】
そこで、ＪＰＥＧ２０００の画像をパケット単位で受信し、それらパケットデータをキャッシュしておく。そして、デコーダへデータを渡す際に、まだ受信していないパケットデータ部分に、ｚｅｒｏ  ｌｅｎｇｔｈ  ｐａｃｋｅｔ（以下、ＺＬＰと略す）データを挿入し、既に受信したパケットデータと合せて、一つのファイルを作成することで、メインヘッダの書き換えなど煩雑な処理を行わずに、一般的なＪＰＥＧ２０００デコーダで処理できるＪＰＥＧ２０００ファイルを作成する方法もある。
【００１３】
また、端末装置からサーバに画像符号化データを送信する旨の要求を示すコマンドが、サーバが保持するファイルを構成する論理的な固まりの単位のみを示す場合には、サーバに対して要求を発行しなければ転送される画像符号化データのサイズを判断することはできない。それによって画像符号化データを端末装置に転送する時間が、端末装置側で予想される時間以上に要していまい、転送にリアルタイム性が要求される場合、例えば端末装置において画像サイズの大きい画像に対して高速にパンニングを行うなどの操作を行い、パンニングに応じた画像符号化データをサーバから受信する場合には不向きである。
【００１４】
更に、上述の従来技術には以下の問題がある。すなわち端末装置がある画像符号化データのうち、既にいくつかの部分画像符号化データを受信している場合であっても、端末装置からサーバに要求を送信する度に、サーバから端末装置に対して全ての階層の全コードブロックの符号化データが送られる。すなわち、サーバは端末装置が既に受信済みの符号化データまでも送信することになる。更に、送信する符号化データのヘッダ部分は、今回要求した画像データの情報（画像サイズ、階層情報など）に書き換えられており、元々サーバで管理している符号化データの情報を取ることができない。
【００１５】
また、上述の別の従来技術には以上の問題に加え、画質と量のトレードオフによって、ユーザが要求した画質を表示／印刷できない場合もある。また、サーバ、端末装置間での調停のため通信コストがかかる上、サーバの処理が多くなり、サーバの負荷が増大し、ひいてはユーザの要求から表示までの時間がかかるという問題点がある。
【００１６】
本発明は以上の問題に鑑みてなされたものであり、複数の解像度の画像を有する符号化データの受信形態を、目的に応じて切り替える技術を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００１８】
すなわち、スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理方法であって、
ユーザからの各種の入力を受け付ける入力工程と、
当該入力工程で入力された入力の種別に応じて、当該入力工程で指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信工程と、
前記サーバ装置から送信される、当該送信工程で送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力工程と
を備えることを特徴とする。
【００１９】
【発明の実施形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。なお、本発明は、端末装置がサーバ装置からネットワークを介して受信した断片的な画像データを、一つの画像ファイルに作成し直す方法に関するものである。特に、ＩＳＯ／ＩＥＣ−１５４４４に準拠したＪＰＥＧ２０００符号化データ（以下、単に画像符号化データと呼称する）をサーバ装置からインターネット・イメージング・プロトコル（ＩＩＰ）などで画像符号化データの断片的な領域、或いは、断片的な画像符号化データを受信し、それらの断片化された画像符号化データを独自の方式でキャッシュするクライアントの端末装置（以下、単に端末装置と呼称する）において本発明は実施可能である。
【００２０】
更には本発明は、端末装置において実行されるアプリケーションプログラムにより要求される表示要求に応じて、端末装置側で受信した断片化された画像符号化データのキャッシュデータから１つのＪＰＥＧ２０００準拠の符号化データファイルを生成するものである。
【００２１】
［第１の実施形態］
図１は、インターネットやＬＡＮに代表されるネットワーク上に複数のコンピュータが接続されている本実施形態におけるシステムの概略構成を示す図である。
【００２２】
図１において、１００はインターネットやＬＡＮに代表されるネットワークである。１０１，１０３はサーバ装置であり、それぞれ画像データを送信するためのＪＰＥＧ２０００用のＩＩＰサーバ機能、ＷＷＷサーバ機能に必要なソフトウェアを保持すると共に実行している。また、これらサーバ１０１，１０３はそれぞれ大容量のハードディスク１０１ａ，１０３ａを接続しており、そのハードディスクに大量の画像データも格納している。１０２ａ，１０２ｂはクライアント側の端末装置であり、ウェブ（Ｗｅｂ）ブラウザ、ＪＰＥＧ２０００デコーダなどのソフトウェアを保持していと共に、必要に応じてこれを実行することが出来る。同図にはサーバ装置、端末装置は夫々２台ずつ示しているが、本実施形態におけるシステムを構成するサーバ装置、端末装置の数はこれに限定されるものではない。
【００２３】
図２は、サーバ装置１０１，１０３、端末装置１０２ａ，１０２ｂの基本構成を示すブロック図である。なお、サーバ装置と端末装置とは基本的には同じ構成を備えるが、構成する各部が行う処理が異なる部分もある。
【００２４】
図２において、２０１はＣＰＵで、ＲＯＭ２０４やＲＡＭ２０５が保持するプログラムやデータを用いて装置全体の制御を行うと共に、後述の画像符号化データの送受信に係る処理を行う。なお同図の構成がサーバ装置のものである場合にはＣＰＵ２０１は画像符号化データの送信に係る処理、同図の構成が端末装置のものである場合にはＣＰＵ２０１は画像符号化データの受信に係る処理を行うことになる。また、キーボード２０２，マウス２０２ａから入力された指示に従った処理も行う。
【００２５】
２０２、２０２ａは夫々キーボード、マウスで、夫々ポインティングデバイスとして用いられ、各種の指示（各種のデータ、コマンド等）をＣＰＵ２０１に対して入力することが出来る。２０３は表示部で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの各種の情報を表示することが出来る。なお同図の構成がサーバ装置のものである場合には、例えばサーバ装置のシステム情報や、画像符号化データの要求の受信状況などを表示する。また同図の構成が端末装置ものである場合には、例えば要求する画像符号化データを選択するためのＧＵＩや受信した画像符号化データをデコードした結果などを表示する。
【００２６】
２０４はＲＯＭで、装置を制御するためのプログラムやデータなどを保持する。２０５はＲＡＭで、ハードディスク２０６や記憶媒体ドライブ２０７からロードされるプログラムやデータを一時的に保持するエリアを備えると共に、ＣＰＵ２０１が各種の処理を行うために必要なワークエリアも備える。２０６はハードディスクで、ＯＳ（オペレーティングシステム）や、後述の画像符号化データの送受信に係る処理プログラムやデータ等を格納する。
【００２７】
なおハードディスク２０６は、同図の構成がサーバ装置のものである場合には画像符号化データの送信に係る処理をＣＰＵ２０１が実行するためのプログラムやデータや、ＩＩＰサーバ機能、ＷＷＷサーバ機能をＣＰＵ２０１が実行するためのプログラムやデータ、例えば端末装置のユーザがウェブブウザを用いてアクセスすることにより閲覧できるホームページのデータ、閲覧する複数の画像の符号化データ等を保持する。なお、同図の構成がサーバ装置のものである場合にはハードディスク２０６は図１における１０１ａ、１０１ｂに対応するものである。
【００２８】
またハードディスク２０６は、同図の構成が端末装置のものである場合には画像符号化データの受信に係る処理をＣＰＵ２０１が実行するためのプログラムやデータ、ウェブブラウザのプログラムやデータ、ＪＰＥＧ２０００デコーダのプログラムやデータを保持する。
【００２９】
２０７は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記憶保持されているプログラムやデータを読み取り、ＲＡＭ２０５やハードディスク２０６に読み出したプログラムやデータを出力する。なお、ハードディスク２０６が記憶保持する上述の各プログラムやデータの一部、もしくは全部を記憶媒体に記憶保持させておき、必要に応じて読み出しても良い。２０８はプリンタである。２０９はネットワークインターフェースで、図１に示したネットワーク１００と本装置を接続するためのもので、ネットワークインターフェース２０９を介して各種のデータの送受信を行うことが出来る。
【００３０】
なお同図の構成がサーバ装置のものである場合にはネットワークインターフェース２０９を介して、端末装置からの画像符号化データの送信要求を受信したり、要求に応じた画像符号化データの一部、もしくは全部を送信する。また同図の構成が端末装置のものである場合には、ネットワークインターフェース２０９を介して、サーバ装置に対して画像符号化データの送信要求を送信したり、サーバ装置から要求に応じた画像符号化データの一部、もしくは全部を受信する。
【００３１】
本実施形態では、ＪＰＥＧ２０００に従って圧縮符号化された画像データがサーバ装置のハードディスク２０６、もしくは不図示の（サーバ装置の記憶媒体ドライブ２０７が読み取り可能な）記憶媒体に複数記憶保持されており、端末装置から１つの画像符号化データを送信する要求を受けると、ハードディスク２０６から対象の画像符号化データが読み出され、端末装置に対して送信することが出来る。
【００３２】
また端末装置は、画像表示／印刷アプリケーションを用いてサーバ装置に対してＪＰＥＧ２０００ファイル内の必要な部分のみをＪＰＥＧ２０００用のＩＩＰを用いて要求することができ、要求に応じてサーバ装置から断片的に送信されてくる画像符号化データタ受信する。そしてこの受信した断片的な画像符号化データは端末装置のＲＡＭ２０５やハードディスク２０６に格納（キャッシュ）される。そして端末装置はハードディスク２０６にキャッシュされた断片的な画像符号化データから、ＪＰＥＧ２０００のデコーダに渡すためのＪＰＥＧ２０００準拠の画像符号化データに変換する。
【００３３】
次に、上記構成を備えるシステムにおいて、端末装置からサーバ装置に対して所望の画像符号化データを要求した場合に、サーバ装置、端末装置の夫々が行う処理について説明する。
【００３４】
すなわち以下では、図１に示した端末装置１０２ａ，１０２ｂのユーザは、上述のウェブブウザを用いてサーバ装置１０１もしくは１０３の何れかにアクセスし、表示部２０３に画像を閲覧するためのホームページを表示させる。そしてユーザが画像を閲覧するためのホームページにおいて、１つの画像をキーボード２０２やマウス２０２を用いて指示することで、端末装置はサーバ装置から送信される指示された画像の符号化データ、すなわちＪＰＥＧ２０００に従って圧縮符号化された画像符号化データを断片的に（画像符号化データを複数回に分けて）ＲＡＭ２０５にキャッシュする。そして、これらキャッシュデータから一本のビットストリームを作り出してデコードし、表示するという処理においてサーバ装置、端末装置の夫々が行う処理について説明する。
【００３５】
次に図３を参照して一般的なＪＰＥＧ２０００ファイルについて説明する。図３は、Ｌａｙｅｒ−ｒｅｓｏｌｕｔｉｏｎ  ｌｅｖｅｌ−ｃｏｍｐｏｎｅｎｔ−ｐｏｓｉｔｉｏｎ  ｐｒｏｇｒｅｓｓｉｏｎ（以下、ＳＮＲ  Ｐｒｏｇｒｅｓｓｉｏｎと記す）に従って生成されたＪＰＥＧ２０００ファイルの概略構成を示す図である。
【００３６】
ＪＰＥＧ２０００ファイルはメインヘッダ（Ｍａｉｎ  Ｈｅａｄｅｒ）、タイルヘッダ（Ｔｉｌｅ  Ｈｅａｄｅｒ）、データ（Ｄａｔａ）が含まれており、このデータの部分に画像符号化データが記録されることになる。またタイルヘッダは、圧縮符号化元の画像を所定のサイズの矩形（タイル）毎に分割し、夫々のタイルの圧縮符号化データを生成した場合に、夫々のタイルの圧縮符号化データに対して作成されるものである。メインヘッダ、タイルヘッダについては公知の技術によるものであるのでここでの説明は省略する。
【００３７】
このＳＮＲ  Ｐｒｏｇｒｅｓｓｉｏｎに準じた場合、画像符号化データは、（レイヤ）Ｌａｙｅｒ／（解像度）Ｒｅｓｏｌｕｔｉｏｎ／（成分）Ｃｏｍｐｏｎｅｎｔ／（位置）Ｐｏｓｉｔｉｏｎの順に記録される。次に、解像度（画像サイズ）とＲｅｓｏｌｕｔｉｏｎ番号との関係を図４に示す。
【００３８】
図４において、最も小さい解像度の画像の解像度（ｒｅｓｏｌｕｔｉｏｎ）番号を「０」とし、ｒｅｓｏｌｕｔｉｏｎ番号が一つ増加するごとに画像の幅と高さが共に倍になっていく。この解像度毎の符号データは、解像度番号の小さいものから順に、プログレッション・オーダに従って格納されている。
【００３９】
一方、レイヤは、復元する画像の原画に対するＳ／Ｎ比に対応し、レイヤ番号が小さいほどＳ／Ｎ比が悪くなる。レイヤ毎の符号データも解像度毎の符号データと同様に、レイヤ番号の小さい順にプログレッション・オーダに従って格納されている。
【００４０】
また各Ｒｅｓｏｌｕｔｉｏｎには所定の順番で各色成分等のデータ（Ｃｏｍｐｏｎｅｎｔデータ）が記録されており、各Ｃｏｍｐｏｎｅｎｔデータには順番通りに番号（コンポーネント番号）が付けられている。また各Ｃｏｍｐｏｎｅｎｔデータには圧縮符号化元の画像において空間的な各位置におけるコードブロック（符号化対象の最小単位）のデータ（Ｐｏｓｉｔｉｏｎデータ）が順番に記録されており、各Ｐｏｓｉｔｉｏｎデータにはコードブロックの空間的な順番通りに番号（ポジション番号）が付けられている（例えば画像の左上隅を０として画像の右方向に１つずつ番号が増加し、右端に達したら１つ下、且つ左端からまた画像右方向に番号が増加する）。
【００４１】
一つのＪＰＥＧ２０００ファイル内でのＲｅｓｏｌｕｔｉｏｎ番号とレイヤ番号、コンポーネント番号の最大値は、エンコーダによって予め設定されており、圧縮符号化元の画像はそのパラメータに従ってエンコードされており、その情報はメインヘッダに記録されている。また各パケット（ｐａｃｋｅｔ）は、そのパケットに格納されているコードブロック（ｃｏｄｅ−ｂｌｏｃｋ）の情報を管理しているパケットヘッダ（ｐａｃｋｅｔ  ｈｅａｄｅｒ）部と、各コードブロックの符号化データから構成されている。同図では１つのＰｏｓｉｔｉｏｎデータがパケットに相当する。
【００４２】
このような構造を有するＪＰＥＧ２０００ファイルがサーバ装置に保持されていれば、端末装置は必要な解像度等、要求する部分の画像のみをサーバ装置から受信することができる。受信するデータの単位としては、ＪＰＥＧ２０００のパケット（ｐａｃｋｅｔ）、或はパケットよりも更に小さい符号化単位であるコードブロック単位が考えられる。本実施形態では、端末装置がサーバ装置から受信するデータ単位としてパケット単位を想定する。このパケット単位でのリクエスト及びレスポンスの概念図を図５に示す。同図ではサーバ装置１０１、端末装置１０２ａ間のリクエスト、レスポンスについて示しているが、サーバ装置１０３、端末装置１０２ｂを適用しても良いことはいうまでもない。
【００４３】
同図は、画像がタイル分割されており、各タイルの符号化データ（同図ではＴｉｌｅ０〜ＴｉｌｅＮまでの各データ）がＪＰＥＧ２０００ファイル５０３としてサーバ装置１０１に接続されているハードディスク１０１ａに格納されている状態で、端末装置１０２ａから所望のタイル、所望の解像度、所望のレイヤ、所望のコンポーネント、そして所望の空間的な位置の符号化データを要求する場合に、サーバ装置１０１と端末装置１０２ａとの間で行われる通信を示すものである。
【００４４】
ここで例えば端末装置１０２ａがタイル番号は「１」、解像度番号は「０」、レイヤ番号は「０」、コンポーネント番号は「０」、そしてポジション番号は「０」である符号化データをサーバ装置１０１に要求した場合、サーバ装置１０１はハードディスク１０１ａに保存しているＪＰＥＧ２０００ファイル５０３を解析して、要求に相当する部分（要求されたタイル番号、解像度番号、レイヤ番号、コンポーネント番号、ポジション番号に相当する部分）をパケットデータとして抜き出し、パケット０として端末装置１０２ａに返信する。
【００４５】
図６は、本実施形態におけるサーバ装置１０１（もしくは１０３）に接続されたハードディスクに保持されているＪＰＥＧ２０００ファイルの構成の一例を示す図である。図３に示すとおりＪＰＥＧ２０００ファイルはメインヘッダ、タイルヘッダ、そしてデータ（画像符号化データ）に大別される。同図では画像符号化データは２つのレイヤデータ「０」、「１」に大別される。夫々のレイヤデータは「０」〜「５」の６種類の解像度データに大別される。またコンポーネントデータ、ポジションデータは夫々「０」の１種類である。ここで説明を簡単にするために、サーバ装置１０１で管理しているＪＰＥＧ２０００の画像符号化データの最大解像度の画像サイズを４０９６×４０９６画素とする。よって６種類の解像度があると、各解像度での画像サイズは、４０９６ｘ４０９６，２０４８ｘ２０４８，１０２４×１０２４，５１２×５１２，２５６×２５６，１２８×１２８画素となる。また夫々の符号化データに対して括弧書きで示している数値は各画像符号化データのバイト数を示す。
【００４６】
図７は、端末装置１０２ａ（端末装置１０２ｂも同様）におけるウェブブウザが行う、サーバ装置１０１（サーバ装置１０３でも良い）に対してＪＰＥＧ２０００ファイルの送信を要求し、要求したＪＰＥＧ２０００ファイルをデコードして表示部２０３に表示する処理のフローチャートである。同処理はウェブブウザのプログラムをＣＰＵ２０１が実行することで行われるものである。なお同図のフローチャートでは、端末装置１０２ａにおいてユーザがキーボード２０２やマウス２０２ａを用いて予め送信を要求する画像を選択している。選択方法としては例えば、サーバ装置１０１が提供するホームページ上でサーバ装置１０１が保持する複数の画像のサムネイルが表示されており、ユーザはキーボード２０２やマウス２０２ａを用いてこれらのうち１つのサムネイルを指示する。よって同図に示したフローチャートに従った処理では、選択した画像のＪＰＥＧ２０００ファイルの送信要求を行う。
【００４７】
ステップＳ１では、ユーザからの操作入力を受け付ける。操作入力しては例えば選択している画像の拡大、縮小、パンニング等を行うための操作入力をキーボード２０２やマウス２０２ａを用いて入力する。
【００４８】
次にステップＳ２では、ステップＳ１で入力された操作入力から、必要なパケットを特定する。その後ステップＳ３において、ステップＳ１にてユーザが入力した操作の内容を判断し、予めウェブブウザが保持する複数のコマンドから判断した操作の内容に応じたコマンドを選択する。ステップＳ３における処理の詳細については後述する。次にステップＳ４では、ステップＳ３で選択されたコマンドをサーバ装置に対して送信する。ステップＳ４における処理の詳細については後述する。
【００４９】
ステップＳ５では、ステップＳ４におけるサーバ装置への送信に対するレスポンス、即ち要求に応じた画像符号化データを受信し、ＲＡＭ２０５にキャッシュする。ステップＳ６では、ステップＳ５でＲＡＭ２０５にキャッシュした画像符号化データからＪＰＥＧ２０００準拠のビットストリームを作成する。ステップＳ６における処理の詳細については後述する。その後ステップＳ７においてステップＳ６で作成したビットストリームを上記ＪＰＥＧ２０００デコーダソフトによりデコードし、表示部２０３上に表示する。ステップＳ８では、本アプリケーションにより処理の終了が入力されたか否かを判断し、終了しない場合には処理をステップＳ１に戻す。
【００５０】
次に、上記ステップＳ３における、処理の詳細について説明する。図８はステップＳ３における処理の詳細を示すフローチャートである。以下、同図のフローチャートを参照して、ステップＳ３における処理の詳細について説明する。
【００５１】
まずステップＳ８０は、ステップＳ１入力された操作の内容を解析する。具体的には、入力された操作に対して高速にレスポンスを返すべきであるか否かを判断する。例えば、連続的な拡大表示や、表示ウィンドウに画像全体を１度に表示できない場合の、画像のパンニングに対しては、高速にレスポンスを返すべきである。これらの操作は、ユーザが連続して行う可能性があり、各操作に対応した処理が高速に行われることが要求されるからである。
【００５２】
よってステップＳ８０では上記各操作が入力された場合には、高速にレスポンスを返すべきと判断て処理をステップＳ８２に進め、上記各操作以外が入力された場合には、高速にレスポンスを返す必要がないと判断して処理をステップＳ８１に進める。
【００５３】
ステップＳ８１では、ステップＳ２で特定したパケットの画像符号化データを全てサーバ装置から受信するためにサーバ装置に対して送信するコマンドを用意する。一方ステップＳ８２では、ステップＳ２で特定したパケットの画像符号化データの内、一部分のみを物理的なバイト数で指定してサーバ装置から受信するために、サーバ装置に対して送信するコマンドを用意する。
【００５４】
具体的にステップＳ８２で用いるコマンドの仕様は以下の通りである。
【００５５】
Ｔｉｌｅ／Ｒｅｓｏ／Ｌａｙｅｒ／Ｃｏｍｐｏ番号  先頭オフセット  最大要求バイト数
このコマンドの中で「Ｔｉｌｅ／Ｌａｙｅｒ／Ｃｏｍｐｏ番号」は、要求するパケットを特定するためのＴｉｌｅ番号、Ｒｅｓｏｌｕｔｉｏｎ番号，  Ｌａｙｅｒ番号，  Ｃｏｍｐｏｎｅｎｔ番号を示す。その次の「先頭オフセット」は、要求したパケットのＪＰＥＧ２０００ファイル内における記録位置の先頭からのオフセットであり、このパケットを最初に要求する場合は「０」である。最後の「最大要求バイト数」は今回の要求で転送するパケットデータの最大バイト数である。
【００５６】
本実施形態ではステップＳ１で入力する操作内容として高速レスポンスを要求する操作を入力するものとし、またこの操作として画像の拡大表示を行う操作を例に取り以下、説明する。
【００５７】
一般に、表示部２０３に表示された画像を拡大、縮小する手段として、マウスのホイールを使う場合がある。ホイールの場合、連続して上下に回転するため、短時間の間に、連続して拡大、縮小の倍率が入力され、これに応じて、連続して拡大画像や縮小画像をサーバ装置に対して要求することになる。
【００５８】
例えば複数の画像がサムネイル表示されており、これら複数のサムネイル画像の中から１枚を選択してその画像の詳細な画像を表示、すなわち拡大表示する場合には、上述の通りホイールを回転させて表示画像を拡大させる。本実施形態ではホイールの回転により連続的に２回の拡大表示が要求された場合を説明する。
【００５９】
この場合、サムネイル画像を指示すると、指示したサムネイル画像が所定の解像度の画像として表示部２０３に１枚表示される。この段階で表示される画像の解像度レベルを「０」とする。ここで、ホイールの回転により１回目の拡大操作が入力されたとすると、表示部２０３は１つ上の解像度レベル、即ち解像度レベル「１」の画像が表示されるよう、サーバ装置に対して解像度レベル「１」の画像を表示するための画像符号化データを送信する要求（コマンド）を送信する。更にホイールの回転により２回目の拡大操作が入力されたとすると、表示部２０３に更に１つ上の解像度レベル、即ち解像度レベル「２」の画像が表示されるよう、サーバ装置に対して解像度レベル「２」の画像を表示するための画像符号化データを送信する要求（コマンド）を送信する。
【００６０】
図９は、この場合にサーバ装置と端末装置との間でのコマンド送信、レスポンス返信のシーケンスを示す図である。本実施形態では例として、１度に要求するパケットのバイト数を１２８バイトとする。
【００６１】
図中９００はサーバ装置、９０１は端末装置を示す。まず端末装置９０１において解像度レベル「１」の画像を表示するために必要な画像符号化データ（パケット）を要求するためのコマンド９０２をパケット要求１としてサーバ装置９００に送信する。コマンド９０２の詳細を同図の下部に示す。
【００６２】
コマンド９０２は端末装置９０１の表示部に現在表示している画像（サムネイル画像を指示することで表示される解像度レベル「０」の画像）の解像度レベルより１つ上の解像度レベルの画像の画像符号化データをサーバ装置に要求するためのコマンドで、図６に示した各符号化データにおいて、レイヤ番号０、解像度番号１、コンポーネント番号０、ポジション番号０の符号データの先頭から最大１２８バイトを要求するコマンドである。サーバ装置９００は後者の画像符号化データをレスポンスとして端末装置９０１に返信する。このレスポンスが図９におけるレスポンス１として示されている。
【００６３】
レスポンス１、即ちパケットの詳細を同図の下部に示す。レイヤ番号０、解像度番号１、コンポーネント番号０の画像符号化データのデータサイズは図６に示すとおり９６バイトであり、最大で１２８バイトの要求であったため、今回の要求であるパケットデータは、最大バイト数よりも小さいため１回の要求で要求されたパケットデータを全て送信することができる。そのため、９６（今回送信したデータサイズ）／０（後送信すべきデータサイズ）を示す情報もレスポンス１として端末装置９０１に送信する。
【００６４】
端末装置９０１はこの画像符号化データを受信すると、ＣＰＵ２０１による制御の下でＲＡＭ２０５にキャッシュすると共に、ＪＰＥＧ２０００デコーダによりデコードし、デコード結果である解像度レベル１の画像を表示部２０３に表示する。また上記９６／０の情報をも受信しているので、ＣＰＵ２０１はこの情報を参照することで、今回受信したパケットは完全なパケット（要求に対する全てのパケット）であると判断することができ、解像度レベル「１」に画像を表示するための処理を終了することが出来る。
【００６５】
次にＣＰＵ２０１は解像度レベル「２」の画像を表示するために必要な画像符号化データをサーバ装置９００に要求するためのコマンド９０４をパケット要求２としてサーバ装置９００に送信する。コマンド９０４の詳細を同図の下部に示す。
【００６６】
コマンド９０４は端末装置９０１の表示部に現在表示している画像（解像度レベル「１」の画像）の解像度レベルより１つ上の解像度レベルの画像の画像符号化データをサーバ装置に要求するためのコマンドで、図６に示した各符号化データにおいて、レイヤ番号０、解像度番号２、コンポーネント番号０、ポジション番号０の符号データの先頭から最大１２８バイトを要求するコマンドである。
【００６７】
サーバ装置９００はこの要求に対応する画像符号化データをレスポンスとして端末装置９０１に返信する。このレスポンスが図９におけるレスポンス２として示されている。
【００６８】
レスポンス２、即ちパケットの詳細を同図の下部に示す。レイヤ番号０、解像度番号２、コンポーネント番号０の画像符号化データのデータサイズは図６に示すとおり３８４バイトであり、あとサーバ装置９００が端末装置９０１に送信すべき画像符号化データのサイズは２５６バイトとなる。そこでレスポンス２として１２８（今回送信したデータサイズ）／２５６（後送信すべきデータサイズ）を示す情報をもレスポンス２として端末装置９０１に送信する。よってこの情報を受信した端末装置９０１は、更に受信すべき画像符号化データがあると判断し、特に端末装置９０１のユーザからの入力がなければ、次の１２８バイトの画像符号化データを送信するよう、サーバ装置９００に対してコマンドを送信する（パケット要求３）。
【００６９】
また端末装置９０１は画像符号化データを受信すると、ＣＰＵ２０１による制御の下でＲＡＭ２０５にキャッシュすると共に、ＪＰＥＧ２０００デコーダによりデコードする。ここでまた受信していない部分のデータとしてはこの部分に相当するＤＷＴ（離散ウェーブレット変換）を０として公知のＪＰＥＧ２０００に従ったデコード処理を行い、デコード結果である解像度レベル２の画像を表示部２０３に表示する。
【００７０】
なお、上述のステップＳ８１で用いるコマンド仕様は以下の通りである。
【００７１】
ｐａｃｋｅｔ要求コマンド  Ｔｉｌｅ／Ｒｅｓｏ／Ｌａｙｅｒ／Ｃｏｍｐｏ番号
このコマンドの中で「Ｔｉｌｅ／Ｌａｙｅｒ／Ｃｏｍｐｏ番号」は、要求するパケットを特定するためのＴｉｌｅ番号、Ｒｅｓｏｌｕｔｉｏｎ番号、Ｌａｙｅｒ番号、Ｃｏｍｐｏｎｅｎｔ番号を示す。このコマンドは、指定したパケットのデータを１回でサーバ装置から端末装置に転送させるためのコマンドである。
【００７２】
なお、本実施形態ではレスポンスとしてサーバ装置から端末装置が受信する画像符号化データは指定されたもののみであったが、サーバ装置が端末装置に送信するパケットのデータサイズが、最大送信サイズ以下で事足りる場合には、その差分（最大送信データサイズ−送信したパケットのデータサイズ）として他のデータを送信しても良い。
【００７３】
例えば図９に示した通信を例に取ると、解像度レベル１の画像符号化データのサイズは９６バイトであるが、端末装置は最大１２８バイト受信可能であるので、この時点で後３２バイト分のデータをサーバ装置は端末装置に対して送信可能である。そこでサーバ装置は９６バイトの画像符号化データを端末装置に対して送信すると共に、残りの３２バイト分を次の解像度レベル（解像度レベル２）の画像符号化データを送信しても良い。このようにすることで、毎回の通信に無駄が無くデータを送信することが出来る。
【００７４】
また本実施形態では、パケットデータ要求コマンドは、通常のパケットデータ要求コマンドとは別の、「部分的なパケット要求コマンド」で説明したが、これに限るものではなく、コマンドとしては同一で、パラメータの数で判断することも可能である。
【００７５】
また上記説明では１度に転送するパケットのバイト数を１２８バイトとしたが、これに限るものではない。
【００７６】
次に、キャッシュ管理をするためのテーブルのデータ構造を図１０を用いて説明する。同図のテーブルは端末装置のＲＡＭ２０５上に形成されるものである。同図のテーブルはタイル毎に存在するものであるが、本実施形態では画像はタイル分割されていないので、同図のテーブルは１つのみ存在することになる。
【００７７】
同図に示すテーブルの中には、受信したパケットの数を格納する領域１００１や、各パケットのデータを格納する領域１００２が存在する。各パケットの個数（同図ではＮ）が領域１００１に格納されている。更に領域１００２において１つのパケット管理テーブルには領域１００３乃至１００５が存在する。領域１００３はパケットの全バイト数を管理するフィールドであり、まだ１度もこのパケットを要求していない場合は「−１」、１度でも要求すると、そのパケットの全バイト数が入る。よって領域１００３には「−１」（未要求）、「０」（元々Ｚｅｒｏ  ｌｅｎｇｔｈ  ｐａｃｋｅｔ）、「０以上の値」（パケットの全バイト数）の何れかの値が格納されていることになる。
【００７８】
よって、キャッシュした夫々のパケットからＪＰＥＧ２０００の画像符号化データを作成する場合には、この領域１００３には「−１」や、「０」の時、ｚｅｒｏｌｅｎｇｔｈ  ｐａｃｋｅｔのコードを入れる。次に領域１００４は、現在キャッシュしているパケットデータの実際のバイト数であり、通常のパケット要求コマンドで要求した場合は、領域１００３に記録されたバイト数と領域１００４に記録されたバイト数とは一致することになる。しかし部分的なパケット要求コマンドを発行した場合は、一致しないことがある。領域１００５は実際のパケットデータのＲＡＭ２０５におけるアドレスを格納する。１００６は対応するパケットデータである。
【００７９】
このような管理テーブルを用いて、ＣＰＵ２０１がユーザからの要求から必要なパケットを計算した時に、キャッシュ上にデータがあるか否かを判断し、コマンドを発行するかどうかを判断する処理のフローチャートを図１１に示す。
【００８０】
ステップＳ１１００では、図１０に示す領域１００３に格納されている値が「０」未満であるか否かをチェックする。「０」未満の場合は処理をステップＳ１１０４に進め、ユーザの要求から判断に基づいて「部分的なパケット要求コマンド」、「通常のパケット要求コマンド」の何れかのコマンドを発行、送信する。一方ステップＳ１１００で「０」以上である場合には処理をステップＳ１１０１に進め、領域１００３に記録されたバイト数と、領域１００４に記録されたバイト数とを比較し、同じであるか否かを判断する。同じである場合には、これ以上受信すべきパケットデータがないものと判断できるので（言い換えれば、必要なパケットデータは全てＲＡＭ２０５上に格納されているので）、コマンドを発行しないようにする。一方ステップＳ１１０１における判断処理において、同じでないと判断された場合には処理をステップＳ１１０３に進め、「部分的なパケット要求コマンド」をサーバ装置に対して送信する。
【００８１】
以上の説明により、「通常のパケット要求」のためのコマンドと「部分的なパケット要求」のためのコマンドとをユーザからの要求に応じて切り替えることにより、各ユーザの要求に最適な画像表示を行うことができる。
【００８２】
［第２の実施形態］
本実施形態では、端末装置において表示部２０３に表示された画像の拡大表示時に表示ウィンドウサイズより大きい画像をパンニングしながら表示する場合について説明する。この場合も第１の実施形態における拡大表示と同様に、ユーザは連続的に表示領域をパンニングし、希望する位置の画像を表示することになる。このときの動作の基本は、第１の実施形態と同じであるため、この説明は割愛する。
【００８３】
そして、ユーザの操作の連続性を判断して、「部分的なパケット要求コマンド」において１度に転送するバイト数を動的に決定する方法を説明する。この処理のフローチャートを図１２に示す。またこのフローチャートに従った処理はＣＰＵ２０１により行われるものとする。
【００８４】
ステップＳ１２０１では、まず１つ目のユーザからの操作入力（操作入力１）を検知し、検知した操作に対するＩＩＰのコマンドを決めると共に、そのときの時刻をＣＰＵ２０１内部の不図示のタイマにより求め、ＲＡＭ２０５に保存する。次にステップＳ１２０２では、２つ目のユーザからの操作入力（操作入力２）を検知し、検知した操作に対するＩＩＰのコマンドを決めると共に、そのときの時刻をＣＰＵ２０１内部の不図示のタイマにより求め、ＲＡＭ２０５に保存する。そしてステップＳ１２０３では、ステップＳ１２０１，Ｓ１２０２で求めた夫々の時刻の差分を求め、求めた差分時間が所定の時間内を示すものであるか否かを求める。これは操作入力１と操作入力２とが連続してなされたものであるかを判断する処理である。なお、連続して操作が行われたか否かを判断するための処理は第１の実施形態で説明した方法を本実施形態に適用しても良いし、同図に示した処理方法を第１の実施形態に適用しても良い。
【００８５】
そして所定の時間内に操作入力１と操作入力２とが連続してなされたものであると判断された場合には処理をステップＳ１２０４に進め、操作入力１と操作入力２とが同じ操作入力であるか否かを判断する。同じ操作入力である場合とは、例えばマウスのホイールを連続して回転させた場合であって、この場合には所定に時間内に同じ操作入力がなされる。よって同じ操作入力がなされた場合には処理をステップＳ１２０５に進め、ステップＳ１２０３で求めた差分時間に応じた、部分パケット要求コマンドを送信する際に要求するパケットのバイト数を決定する。これは例えば予め所定のバイト数を決めておき、差分時間が長ければ長いほど、そのバイト数を比例させて大きくするように決定しても良い。
【００８６】
そしてステップＳ１２０６では、決定したバイト数と共に、要求する画像符号化データを指定するコマンドを部分パケット要求コマンドとしてサーバ装置に対して送信する。
【００８７】
このような「部分的なパケット要求」は、画像のサムネイルを表示するときにも利用できる。例えば、１度に表示するサムネイル（すなわち画像）の枚数がいくら多くなろうとも、ある一定時間内で、全サムネイルを表示することを保証することが可能になる。これを実現する場合は、全サムネイル表示用に受信するバイト数を予め決めておき、このバイト数を枚数で割った値を各画像データを要求するコマンドの最大バイト数にすることで可能である。
【００８８】
あるいは、サーバ装置に格納されているＪＰＥＧ２０００の画像符号化データに対して、画像符号化データが格納されている外部記憶装置内における位置と読み出すバイト数を部分パケット要求コマンドとして指定しても良い。
【００８９】
また論理的な単位は、ＪＰＥＧ２０００のパケットで説明したが、その他の単位、例えばタイル、プリシンクトあるいは、ｃｏｄｅ−ｂｌｏｃｋなどでも良いことは容易に推察できる。
【００９０】
［第３の実施形態］
上記実施形態における端末装置からサーバ装置に対して要求する画像の解像度は例えばマウスのホイールを用いて表示部において拡大縮小などを行う場合に、マウスのホイールにより入力される指示に基づいたものであるが、他にも例えば、端末装置の外部記憶装置にプリンタ２０８のドライバをインストールしておき、ウェブブウザ上で表示される画像をプリンタ２０８を用いてプリントする場合、プリンタ２０８がプリント可能な解像度をプリンタドライバから取得し、取得した解像度の画像符号化データをサーバ装置に対して要求しても良い。
【００９１】
またプリント可能な解像度が複数種存在する場合には、表示部にその一覧を表示し、ユーザにより選択しても良い。
【００９２】
［第４の実施形態］
サーバ装置が保持する画像符号化データのうち端末装置から指示された画像符号化データにおいて、端末装置からの指示に応じた所望の解像度の画像を形成するために必要となるパケット群（部分画像符号化データ）を受信する場合、本実施形態では、指示された画像符号化データにおいて既に受信した部分画像符号化データのサイズ、受信対象外の部分画像符号化データのサイズ、そして今回受信する部分画像符号化データのサイズとを用いた比較結果に応じて、その受信形態を異ならせるよう制御するものである。以下、本実施形態における端末装置、サーバ装置が行う処理について説明する。
【００９３】
なお本実施形態におけるサーバ装置、端末装置により構成されるシステムの形態、及びそれらの装置の構成については第１の実施形態と同じであるのでその説明を省略する。また本実施形態においてもサーバ装置が保持する画像符号化データはＪＰＥＧ２０００に従ってエンコードされたものであるので、その構成については第１の実施形態で説明したような、図３、４、６に示した内容に従ったものである。また本実施形態におけるサーバ装置と端末装置とのパケット単位でのリクエスト及びレスポンスについても第１の実施形態と同様に図５に示すとおりである。
【００９４】
また本実施形態の端末装置１０２ａ（端末装置１０２ｂも同様）におけるウェブブウザは、第３の実施形態に様に、サーバ装置１０１（サーバ装置１０３でも良い）に対して要求したＪＰＥＧ２０００ファイルのデコード結果を表示部２０３だけでなく、プリンタ２０８にも出力する処理を行う。同処理はウェブブウザのプログラムをＣＰＵ２０１が実行することで行われるものである。よって本実施形態におけるＣＰＵ２０１が行うメインの処理のフローチャートは図７に示したものに加えて、デコード結果をプリンタ２０８に出力する指示をユーザが入力した場合には、第３の実施形態で説明したように、プリンタドライバからプリント可能な解像度を取得し、この解像度に従った画像符号化データの受信要求をサーバ装置に対して送信する。そして受信した画像符号化データをデコードし、デコード結果をプリンタ２０８に出力する。また本実施形態ではステップＳ４において部分画像符号化データを受信するので、ステップＳ５における処理は省く。
【００９５】
上述の通り、本実施形態では受信形態を、端末装置から指示した画像符号化データのサイズと今回受信するデータのサイズとの比較結果に応じて異ならせるよう、制御を行う。よってこの比較結果に応じて当然発行するコマンドも異なる。以下ではこの比較結果に応じたコマンドの発行処理について、同処理のフローチャートを示す図１３を用いて説明する。なお本実施形態では、端末装置が所望の解像度の画像を得るために、予め指示した画像符号化データにおいて、「Ｌａｙｅｒ０／Ｒｅｓｏ０／Ｃｏｍｐ０／Ｐｏｓ０」のパケットと、「Ｌａｙｅｒ０／Ｒｅｓｏ１／Ｃｏｍｐ０／Ｐｏｓ０」のパケットとによる部分画像符号化データをサーバ装置に対して要求する場合について説明する。
【００９６】
まずステップＳ１３１０で、サーバ装置１０１に対して行う要求が最初（１回目）のものであるかあるか否かを判断する。１回目であれば処理をステップＳ１３１１に進める。そしてステップＳ１３１１では上記指示した画像符号化データのサイズを送信するよう、サーバ装置１０１に対して要求を送信する。例えば図６に示した画像符号化データの場合、取得するサイズは「Ｌａｙｅｒ０／Ｒｅｓｏ０／Ｃｏｍｐ０／Ｐｏｓ０」から「Ｌａｙｅｒ１／Ｒｅｓｏ５／Ｃｏｍｐ０／Ｐｏｓ０」までの各パケットのサイズの総和で、その総和は６５５３６バイトとなる。
【００９７】
この総和サイズを取得する、もしくはステップＳ１３１０においてサーバ装置１０１に対して要求するのが最初ではないと判断された場合には、次にステップＳ１３１２においてＲＡＭ２０５に既にキャッシュされている部分画像符号化データのサイズの総和を求める。
【００９８】
次にステップＳ１３１３では、今回端末装置１０２ａがサーバ装置１０１に対して要求する部分画像符号化データ（「Ｌａｙｅｒ０／Ｒｅｓｏ０／Ｃｏｍｐ０／Ｐｏｓ０」のパケットと「Ｌａｙｅｒ０／Ｒｅｓｏ１／Ｃｏｍｐ０／Ｐｏｓ０」のパケット）のサイズの総和を送信するよう、サーバ装置１０１に対して要求を送信する。本実施形態ではいずれのパケットのサイズも３２バイトであるので、その総和は６４バイトとなる。そしてこの総和をサーバ装置１０１から受信すると、次にステップＳ１３１４において、発行するコマンドを決定する。その決定方法について説明する。
【００９９】
この決定方法としては本実施形態では、「既に受信した部分画像符号化データのサイズの総和＋受信していない部分画像符号化データのサイズ」と「今回要求する部分画像符号化データのサイズの総和」との比較を行い、前者≧後者（等号はなくても良い）の場合には、サーバ装置からパケット単位で部分画像符号化データを受信するためにサーバ装置に対して送信するコマンドを発行する。一方、前者＜後者（等号がついていても良い）の場合には、サーバ装置から１回で要求する全てのパケット（すなわち要求する部分画像符号化データ）を受信するためにサーバ装置に対して送信するコマンドを発行する（ステップＳ１３１６における処理）。
【０１００】
例えば今回が初めてのサーバ装置に対しての部分画像符号化データの要求である場合、今回要求する部分画像符号化データのサイズの総和は６４バイト、既に受信した部分画像符号化データのサイズの総和は０バイト、そして受信していない部分画像符号化データのサイズの総和は（指示した画像符号化データ全体のサイズ）−（既に受信した部分画像符号化データのサイズ＋今回要求する部分画像符号化データのサイズ）であるので６５５３６−（６４＋０）＝６５４７２となる。よって６５４７２＞６４となるので、ステップＳ１３１５ではパケット単位で部分画像符号化データを受信するためにサーバ装置に対して送信するコマンドを発行する。
【０１０１】
そしてステップＳ１３１５，Ｓ１３１６のいずれの場合においても、夫々の受信形態に従って要求した部分画像符号化データを受信する。
【０１０２】
以上の処理により、所望の解像度の画像を得るための画像符号化データ（部分画像符号化データ）を受信することが出来るので、以降は第１の実施形態と同様の処理を行うことで、所望の画質の画像を表示部２０３に表示させることが出来る。
【０１０３】
次に、第１の実施形態と同様の操作により、表示部２０３に表示された画像に対する拡大指示が入力された場合について説明する。なお拡大された画像を形成するためには上記ＪＰＥＧ２０００ファイルにおいて、「Ｒｅｓｏ２」までのレベルの部分画像符号化データが必要であるとする。すなわち、「Ｌａｙｅｒ０／Ｒｅｓｏ１／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ１／Ｒｅｓｏ１／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ０／Ｒｅｓｏ２／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ１／Ｒｅｓｏ２／Ｃｏｍｐ０／Ｐｏｓ０」の各パケットが必要となる。
【０１０４】
この場合も同様に図７に示すフローチャートに従った処理が行われるので、当然、図１３に示すフローチャートに従った処理も行われる。この場合、ステップＳ１３１０では端末装置１０２ａからサーバ装置１０１に対して部分画像符号化データの要求は１回目ではないので、処理は直接ステップＳ１３１２に進む。
【０１０５】
そしてステップＳ１３１２では上述の通り受信済みの部分画像符号化データの総和のサイズを取得するが、これは１回目に取得した部分画像符号化データの総和のサイズであるので、９６バイトとなる。次に、ステップＳ１３１３では要求するパケットの総和のサイズを取得するが、上記４パケットのサイズは夫々９６バイト，９６バイト，３８４バイト，３８４バイトであるので、その総和は９６０バイトとなる。次に、ステップＳ１３１４では上記の説明の通りの計算を行う。すると、
（６４＋６４５１２）＞９６０となり、「既に受信した部分画像符号化データのサイズの総和＋受信していない部分画像符号化データのサイズ」＞「今回要求する部分画像符号化データのサイズの総和」となるので、端末装置は、パケット単位で部分画像符号化データを受信するためにサーバ装置に対して送信するコマンドを発行する。
【０１０６】
以上の処理により、第１の実施形態と同様の操作により、表示部２０３に表示された画像に対する拡大指示が入力された場合であっても、その拡大画像を形成するための画像符号化データをサーバ装置から受信することができるので、受信した画像符号化データをデコードすることで得られる画像を表示部２０３に表示させることができる。
【０１０７】
この状態で更にユーザから表示部２０３に表示されている画像を所定のサイズ、例として４０９６画素×４０９６画素の画像としてプリンタ２０８を用いてプリントする指示が入力された場合について説明する。４０９６画素×４０９６画素のサイズの画像を形成するために必要となる部分画像符号化データは「Ｌａｙｅｒ０／Ｒｅｓｏ３／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ１／Ｒｅｓｏ３／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ０／Ｒｅｓｏ４／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ１／Ｒｅｓｏ４／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ０／Ｒｅｓｏ５／Ｃｏｍｐ０／Ｐｏｓ０」、「Ｌａｙｅｒ１／Ｒｅｓｏ５／Ｃｏｍｐ０／Ｐｏｓ０」の各パケットが必要となる。
【０１０８】
この場合も同様に図７に示すフローチャートに従った処理が行われるので、当然、図１３に示すフローチャートに従った処理も行われる。この場合、ステップＳ１３１０では端末装置１０２ａからサーバ装置１０１に対して部分画像符号化データの要求は１回目ではないので、処理は直接ステップＳ１３１２に進む。
【０１０９】
そしてステップＳ１３１２では上述の通り受信済みの部分画像符号化データの総和のサイズを取得するが、これは１回目、そして２回目に取得した部分画像符号化データの総和のサイズであるので、１０５６バイトとなる。次に、ステップＳ１３１３では要求するパケットの総和のサイズを取得する。その総和は６４５１２バイトとなる。次に、ステップＳ１３１４では上記の説明の通りの計算を行う。すると、
（１０５６＋０）＜６４５１２となり、「既に受信した部分画像符号化データのサイズの総和＋受信していない部分画像符号化データのサイズ」＜「今回要求する部分画像符号化データのサイズの総和」となるので、端末装置は、サーバ装置に管理されている符号化データ全部、言い換えるとファイル全体を送信するコマンドを発行する。
【０１１０】
以上の処理により、所定のサイズの画像をプリンタ２０８に出力したい場合であっても、所定のサイズの画像を形成するための画像符号化データをサーバ装置から受信することができるので、受信した画像符号化データをデコードし、プリンタドライバを介してプリンタ２０８に出力することで、所定サイズの画像をプリントすることができる。
【０１１１】
次に、本実施形態におけるステップＳ６の処理、すなわち、ＲＡＭ２０５にキャッシュした部分画像符号化データからＪＰＥＧ２０００準拠のビットストリーム（画像符号化データ）を作成する処理について、同処理のフローチャートである図１４を用いて以下説明する。
【０１１２】
まずステップＳ１４００では、以上説明した処理により発行されたコマンドが、部分画像符号化データをパケット単位で受信要求するものであるのか否かを判断する。この判断の結果、パケット単位で部分画像符号化データを要求するコマンドである場合には処理をステップＳ１４０２に進め、ＲＡＭ２０５にキャッシュしている各部分画像符号化データから１つのＪＰＥＧ２０００準拠のビットストリームを作成する。ステップＳ１４０２における処理の詳細については後述する。
【０１１３】
一方、ステップＳ１４００における判断の結果、パケット単位で部分画像符号化データを要求するコマンドではない場合には処理をステップＳ１４０１に進め、この時点でＲＡＭ２０５にキャッシュされている全ての部分画像符号化データを削除すると共に、新たにユーザから指示が入力されてもこの指示に従った処理を行わないようにする。例えば、ステップＳ１４００からステップＳ１４０２への処理の分岐を行わないようにする。
【０１１４】
次に、ステップＳ１４０２における処理の詳細について、同処理の詳細を示すフローチャートである図１５を用いて説明する。まずＲＡＭ２０５にキャッシュしている各部分画像符号化データを参照して、ステップＳ９００ではタイル数を、そしてステップＳ９０１ではパケット数をチェックし、夫々変数ｉＴＭａｘ，ｉＰＭａｘに代入する。次に、ステップＳ９０２でＪＰＥＧ２０００のＭａｉｎヘッダを出力する。次にステップＳ９０３では、後述の処理で用いる変数ｉＴを０に初期化する。次にステップＳ９０４では、Ｔｉｌｅヘッダ（ＳＯＴマーカコード）を生成し、仮出力する。次にステップＳ９０５では後述の処理で用いる変数ｉＰを、ステップＳ９０６では後述の処理に用いる変数ｉＬを夫々０に初期化する。
【０１１５】
上記変数ｉＰは各パケットを特定するためのインデックスとして用いる変数である。よって次にステップＳ９０７ではこの変数ｉＰで表されるパケットがＲＡＭ２０５にキャッシュされているかをチェックする。このチェックの結果、変数ｉＰで表されるパケットデータがＲＡＭ２０５にキャッシュ済み、すなわちサーバ装置から送信済みである場合には処理をステップＳ９０８に進め、変数ｉＰに対応するパケットデータを出力し、ステップＳ９０９ではステップＳ９０８で出力したパケットデータのサイズを変数ｉＬが保持する値に加算し、その結果を再度変数ｉＬに記憶保持させる。
【０１１６】
一方、ステップＳ９０７におけるチェックの結果、変数ｉＰで表されるパケットデータがＲＡＭ２０５にキャッシュ済みでない、すなわちサーバ装置から送信済みでない場合には処理をステップＳ９１０に進め、ＺＬＰ（Ｚｅｒｏ  Ｌｅｎｇｔｈ  Ｐａｃｋｅｔ）データを出力し、ステップＳ９１１では変数ｉＬが保持する値に１を加算し、その結果を再度変数ｉＬに記憶保持させる。そしてステップＳ９１２では変数ｉＰが保持する値に１を加算し、その結果を再度変数ｉＰに記憶保持させる。
【０１１７】
次にステップＳ９１３では上記変数ｉＰと変数ｉＰＭａｘとを比較する。本ステップにおける処理は１つのタイルに含まれる全てのパケットデータに対して処理を行ったか否かをチェックする処理である。
【０１１８】
そして変数ｉＰ＜変数ｉＰＭａｘの場合、すなわち１つのタイルに含まれる全てのパケットデータに対する処理が終了していない場合には処理をステップＳ９０６に戻し、以上の処理を行う。一方、変数ｉＰ≧変数ｉＰＭａｘの場合、即ち１つのタイルに含まれる全てのパケットデータに対する処理が終了した場合には処理をステップＳ９１４に進め、タイル全体のデータ数を管理しているフィールドの値を変数ｉＬから更新し、ステップＳ９０４で出力したＳＯＴマーカコード内のタイルに含まれるパケットデータの数を出力する。
【０１１９】
次にステップＳ９１５では変数ｉＴが保持する値に１を加算し、その結果を再度変数ｉＴに記憶保持させる。変数ｉＴは各タイルの数をカウントするための変数である。よってステップＳ９１６では、全てのタイルを処理したか否かをチェックする。全てのタイルを処理していなければ処理をステップＳ９０４に戻し、上記処理を行う。
【０１２０】
一方、全てのタイルを処理している場合には処理をステップＳ９１７に進め、ＪＰＥＧ２０００準拠の符号化データを完成させるための公知の処理を行う。
例えばＥＯＣマーカコードなどを出力する。
【０１２１】
以上の説明により、本実施形態によって、要求する部分画像符号化データのサイズが上記比較処理により比較的大きい場合には高速に受信することができ、円滑に部分画像符号化データを受信することが出来る。
【０１２２】
［第５の実施形態］
本実施形態では、ネットワークの使用状況に応じて、上記２つのコマンドのいずれを使用するのかを決定する。よって本実施形態における端末装置上で実行されるウェブブウザが行う、サーバ装置に対してＪＰＥＧ２０００ファイルの送信を要求し、要求したＪＰＥＧ２０００ファイルをデコードして表示部２０３に表示する処理は、ステップＳ４におけるコマンド発行処理のみが第４の実施形態とは異なる。
【０１２３】
図１６は本実施形態におけるコマンド発行処理のフローチャートである。図１３と同じステップには同じステップ番号を付けており、その説明を省略する。
【０１２４】
まずステップＳ１６００において、ネットワークの利用状況を検知する。これは例えば公知の”ｐｉｎｇ”コマンドを例えば以下のようにして用いる。
【０１２５】
ｐｉｎｇ  ホスト名（サーバ名）
これはこのコマンドを発行した装置からホスト名（サーバ名）で指定した装置までのネットワークを利用したタイムレスポンスを調べることができる。よって本実施形態では端末装置において、上記ホスト名にサーバ装置を指定した上記ｐｉｎｇコマンドを用いることで、端末装置とサーバ装置との間のネットワークを利用したタイムレスポンスを調べることができる。このタイムレスポンスが一定時間以上を要するものであればこのネットワークは非常に混んでいる（多くの装置によって使用されている）と判断することができ、タイムレスポンスが一定時間以上要さないものであればこのネットワークはそれほど混んでいない（あまり多くの装置は使用していない）と判断することができる。よって、端末装置とサーバ装置との間のネットワークの使用状況が分かる。
【０１２６】
次にステップＳ１６０１において、上記調査によりネットワークが混んでいないと判断する場合、処理をステップＳ１３１６に進め、上記ステップＳ１３１６と同じ処理、ファイル全体の転送要求コマンドを発行する。
【０１２７】
一方、ステップＳ１６０１において、ネットワークが混んでいると判断された場合には、処理をステップＳ１３１５に進め、上記ステップＳ１３１５と同じ処理、パケット単位で部分画像符号化データを受信するためにサーバ装置に対して送信するコマンドを発行する。
【０１２８】
以上の処理により、ネットワークの使用状況、言い換えると混み具合に応じて部分画像符号化データの受信形態を異ならせることができる。これはすなわち、ネットワークがそれほど混んでいない場合にはファイル全体をサーバから受信し、逆にネットワークが混んでいる場合にはより短い時間で部分画像符号化データを受信できるようにパケット単位のコマンドを発行する。これによりより円滑に部分画像符号化データを受信することができる。
【０１２９】
［第６の実施形態］
第４の実施形態では端末装置は、これからサーバ装置に対して要求しようとする部分画像符号化データのサイズは、サーバ装置から送信してもらうことで知ることができた。本実施形態では、これからサーバ装置に対して要求しようとする部分画像符号化データのサイズを端末装置において推定する。
【０１３０】
図１７はＪＰＥＧ２０００に従って符号化された画像符号化データにおける各解像度の符号化データを示す図である。一般に矩形１７００、矩形１７０１ａ、１７０１ｂ、１７０１ｃ、矩形１７０２ａ、１７０２ｂ、１７０２ｃ、矩形１７０３ａ、１７０３ｂ、１７０３ｃの４種類の矩形のそれぞれにはそれぞれ異なる解像度の画像の周波数成分を示すＤＷＴ係数が含まれている。
【０１３１】
例えば矩形１７００内に含まれるＤＷＴ係数のみを用いて復号すると、最も低い解像度（解像度レベル０）の画像が復元される。更にこれに加えて矩形１７０１ａ、１７０１ｂ、１７０１ｃ内に含まれるＤＷＴ係数を復号することで、より高い解像度（解像度レベル１）の画像が復元される。更にこれに加えて矩形１７０２ａ、１７０２ｂ、１７０２ｃ内に含まれるＤＷＴ係数を復号することで、より高い解像度（解像度レベル２）の画像が復元される。更にこれに加えて矩形１７０３ａ、１７０３ｂ、１７０３ｃ内に含まれるＤＷＴ係数を復号することで、より高い解像度（解像度レベル３）の画像が復元される。
【０１３２】
ここで、一般にＪＰＥＧ２０００においてロスレスモードで画像を符号化した場合、矩形の面積比はそのまま矩形に含まれるＤＷＴ係数のデータ量の比に正比例している。例えば矩形１７００、矩形１７０１ａ、矩形１７０１ｂ、矩形１７０１ｃのそれぞれはすべて同じ面積であるので、矩形１７００と矩形１７０１ａ、１７０１ｂ、１７０１ｃとの面積比は１：３であって、矩形１７００に含まれるＤＷＴ係数のデータ量と、矩形１７０１ａ、１７０１ｂ、１７０１ｃに含まれるＤＷＴ係数のデータ量との比はほぼ１：３となる。
【０１３３】
また矩形１７００と矩形１７０２ａ（１７０２ｂ、１７０２ｃ）との面積比は１：４となる。また矩形１７００と矩形１７０３ａ（１７０３ｂ、１７０３ｃ）との面積比は１：８となる。
【０１３４】
ＪＰＥＧ２０００に従った画像符号化データのパケットはＤＷＴ係数により構成されているので、各矩形に対応するパケットのサイズもまた、各矩形の面積比に正比例している。
【０１３５】
これを利用して、ロスレスモードで符号化された部分画像符号化データを要求する場合には、すでに受信している部分画像符号化データのデータ量から、これから要求する部分画像符号化データのデータ量や、ファイル全体のバイト数を推測することができる。例えばすでに解像度レベル０の部分画像符号化データを受信しているとする。すなわち図１７において、矩形１７７０に対応する部分画像符号化データを受信しているとする。
【０１３６】
この部分画像符号化データのデータサイズを６４バイトとすると、上記説明により、矩形１７０１ａ、１７０１ｂ、１７０１ｃに対応する部分画像符号化データのサイズは６４×３＝１９２バイトとなる。また、矩形１７０２ａ、１７０２ｂ、１７０２ｃに対応する画像符号化データのサイズは６４×４×３＝７６８バイトとなる。また、矩形１７０３ａ、１７０３ｂ、１７０３ｃに対応する画像符号化データのサイズは６４×４×４×３＝３０７２バイトとなる。このようにして、各面積比は予め把握しておくことができるので、すでに受信している部分画像符号化データのデータサイズから、これから受信しようとするデータのサイズを推測することができる。
【０１３７】
以下ではウェブブラウザに表示されている複数の画像から１つを指示した場合に、指示した画像において端末装置から要求する部分画像符号化データのサイズ、及び指示した画像の画像符号化データのサイズの推測結果に応じて端末装置がコマンドを発行する処理について、同処理のフローチャートを示す図１８を用いて説明する。同図のフローチャートに従った処理は上記ステップＳ４における処理のサブルーチンの処理を示すものである。なお図１８に示す処理は、上記第４の実施形態におけるコマンド発行処理において、指示した画像において端末装置から要求するパケット群（所望の解像度の画像を得るために必要な部分画像符号化データを構成するパケット群）のサイズ、指示した画像の画像符号化データのサイズをサーバ装置から受信せずに、端末装置側で推測する以外は同じである。よって同図において図１３と同じステップについては同じステップ番号を付けている。
【０１３８】
まず画像を１つ指示した時点で、指示した画像の解像度レベル０の部分画像符号化データはＲＡＭ２０５にすでにキャッシュされているので、ステップＳ１８００ではこの部分画像符号化データのサイズから、指示した画像に対応する画像符号化データ全体のサイズを推定する。推定する方法については上述の通りである。
【０１３９】
次に、キャッシュされている解像度レベル０の部分画像符号化データのサイズを用いて、これから要求しようとする部分画像符号化データのサイズを推定する。そして推定した画像符号化データのサイズ、これから要求しようとする部分画像符号化データのサイズを用いると、受信していない部分画像符号化データのサイズを求めることができるので、これら３つのサイズに従ってステップＳ１３１４以降の処理を行う。ステップＳ１３１４以降の処理については上述の通りであるので、ここでの説明は省略する。
【０１４０】
なお、上述の、これから要求する部分画像符号化データのサイズをサーバ装置に要求することなく、端末装置側で推定する処理は上述の実施形態に適用しても良い。
【０１４１】
［第７の実施形態］
上記実施形態では、部分画像符号化データを要求する場合に、パケット単位で要求するコマンドと、部分画像符号化データ全体を一度に要求するためのコマンドを様々な状態に応じて使い分けてきた。
【０１４２】
本実施形態では、タイルに分割された画像の符号化データがタイル毎にサーバ装置に保持されている場合に、タイル単位で、パケット要求コマンドと、タイル全体の符号化データを要求するコマンドとを使い分ける。
【０１４３】
図１９に、本実施形態におけるコマンド発行処理のフローチャートを示す。なお同図のフローチャートに従った処理は、上記ステップＳ４における処理のサブルーチンである。なお、図１３，図１８と同じステップについては同じステップ番号を付けており、その説明を省略する。
【０１４４】
まずステップＳ１９００では、変数ｉＴＭａｘにタイルの総数を代入すると共に、角田イルに対して付けられたインデックスを表す変数ｉＴを０に初期化する。次にステップＳ１９０１では、変数ｉＴをインデックスとするタイルが、ユーザから要求されたものであるか否かを判断する。要求されたタイルである場合には処理をステップＳ１９０４に進め、上記ステップＳ１８００と同じ処理行う。ただしサイズを求める対象は受信済みのパケットのデータサイズではなく、受信済みの１つのタイルのデータサイズである。
【０１４５】
次に、ステップＳ１８０１と同じ処理を行う。すなわち、今回要求するパケットのサイズを求める。そしてステップＳ１３１４以降の処理、すなわち、第４の実施形態で説明したようなコマンド決定処理を行う、ただし、決定するコマンドは、部分画像符号化データを１回の送信で要求するコマンドを、１つのタイルを１回の要求で受信するためのコマンドと読み替える必要がある。また、パケット単位で要求するコマンドは、１つのタイルをパケット単位で受信するためのコマンドと読み替える必要がある。
【０１４６】
次に、本実施形態におけるステップＳ６の処理、すなわち、ＲＡＭ２０５にキャッシュした符号化データからＪＰＥＧ２０００準拠のビットストリーム（画像符号化データ）を作成する処理について、同処理のフローチャートである図２０を用いて以下説明する。尚、図１４，図１９と同じステップについては同じステップ番号を付けており、その説明を省略する。
【０１４７】
ステップＳ１４００では、以上説明した処理により発行されたコマンドが、タイルをパケット単位で受信要求するものであるのか否かを判断する。この判断の結果、パケット単位で要求するコマンドである場合には処理をステップＳ２００１に進め、ＲＡＭ２０５にキャッシュしているタイルの符号化データから１つのＪＰＥＧ２０００準拠のビットストリームを作成する。ステップＳ２００１における処理の詳細については後述する。
【０１４８】
一方、ステップＳ１４００における判断の結果、パケット単位でタイルを要求するコマンドではない場合には処理をステップＳ１４０１に進め、この時点でＲＡＭ２０５にキャッシュされている全てのデータを削除すると共に、新たにユーザから指示が入力されてもこの指示に従った処理を行わないようにする。例えば、ステップＳ１４００からステップＳ１４０２への処理の分岐を行わないようにする。そして次に、ステップＳ２００２において、発行したコマンドに基づいてサーバ装置から受信したタイルのデータをそのまま作成すべきビットストリームとする。
【０１４９】
ステップＳ２００１における処理のフローチャートは図２１に示すとおりである。同図のフローチャートは、図１５において、ステップＳ９０４からステップＳ９１４までの処理を示すものであって、その説明は上述の通りであるのでここでの説明を省略する。
【０１５０】
［他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５２】
また上記記憶媒体には、インターネットやＬＡＮなどのネットワークに使用される通信ケーブルなどの通信媒体が含まれる。すなわち、前述した実施形態のプログラムコードがネットワーク上のサーバ装置に保持されている場合には、このサーバ装置から上記ネットワークを介してコンピュータにダウンロードすることで、コンピュータにプログラムを導入することができる。よって、導入されたプログラムはコンピュータ上のＣＰＵやＭＰＵなどの制御回路により実行され、その結果、コンピュータは前述した実施形態に機能が実現されるわけであるから、前述した記憶媒体に上記ネットワークに使用される通信ケーブルなどの通信媒体が含まれることはいうまでもない。
【０１５３】
本発明の実施様態の例を以下に列挙する。
【０１５４】
［実施態様１］  スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理装置であって、
ユーザからの各種の入力を受け付ける入力手段と、
当該入力手段から入力された入力の種別応じて、当該入力手段により指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から送信される、当該送信手段により送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力手段と
を備えることを特徴とする画像処理装置。
【０１５５】
［実施態様２］  前記入力手段は、ユーザからの連続した操作入力を受け付け可能であって、
前記送信手段は、前記入力手段から入力された夫々の操作入力が同じであって、且つ当該夫々の操作入力が所定の時間内になされたものである場合には、前記第２のコマンドを、それ以外の場合には前記第１のコマンドを生成して前記サーバ装置に対して送信することを特徴とする実施態様１に記載の画像処理装置。
【０１５６】
［実施態様３］  前記第２のコマンドには、前記指示された画像符号化データにおける前記部分画像符号化データの位置情報、且つ前記サーバ装置から一度に受信するデータのサイズが含まれていることを特徴とする実施態様１又は２に記載の画像処理装置。
【０１５７】
［実施態様４］  前記送信手段が前記第２のコマンドを前記サーバ装置に対して送信した場合、
前記出力手段は更に、受信すべき部分画像符号化データのうち、受信したデータのサイズと、まだ受信していないデータのサイズを示す情報とを受信することを特徴とする実施態様１に記載の画像処理装置。
【０１５８】
［実施態様５］  前記出力手段が前記情報を受信した場合、前記送信手段は前記部分画像符号化データのうちまだ受信していないデータを所定の単位毎に前記サーバ装置から受信するためのコマンドを前記第２のコマンドとして前記サーバ装置に対して送信することを特徴とする実施態様４に記載の画像処理装置。
【０１５９】
［実施態様６］  スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理装置であって、
前記指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを指示する指示手段と、
前記サーバ装置から受信した部分画像符号化データを記憶保持する記憶保持手段と、
前記画像符号化データにおいて前記記憶保持手段に記憶保持されているデータのサイズ、及び前記指示手段により指示した部分画像符号化データのサイズ、及び前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズを用いて、前記指示手段により指示された部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記指示手段により指示された部分画像符号化データを所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から送信される、当該送信手段により送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力手段と
を備えることを特徴とする画像処理装置。
【０１６０】
［実施態様７］  前記送信手段は、前記画像符号化データにおいて前記記憶保持手段に記憶保持されているデータのサイズと、前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズの総和である第１のサイズと、前記指示手段により指示した部分画像符号化データのサイズである第２のサイズとを比較し、前記第１のサイズが少なくとも前記第２のサイズ以上である場合には前記第２のコマンドを、前記第１のサイズが大きくとも前記第２のサイズ以下である場合には前記第１のコマンドを前記サーバ装置に対して送信することを特徴とする実施態様６に記載の画像処理装置。
【０１６１】
［実施態様８］  前記画像符号化データのサイズ、及び前記指示手段により指示した部分画像符号化データのサイズを推定する推定手段を備え、前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズは推定手段により求めたそれぞれのサイズを用いて求めることを特徴とする実施態様６に記載の画像処理装置。
【０１６２】
［実施態様９］  スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理方法であって、
ユーザからの各種の入力を受け付ける入力工程と、
当該入力工程で入力された入力の種別に応じて、当該入力工程で指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信工程と、
前記サーバ装置から送信される、当該送信工程で送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力工程と
を備えることを特徴とする画像処理方法。
【０１６３】
［実施態様１０］  コンピュータを実施態様１乃至８の何れか１項に記載の画像処理装置として機能させることを特徴とするプログラム。
【０１６４】
［実施態様１１］  コンピュータに実施態様９に記載の画像処理方法を実行させることを特徴とするプログラム。
【０１６５】
［実施態様１２］  実施態様１０又は１１に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【０１６６】
【発明の効果】
以上の説明により、本発明によって、複数の解像度の画像を有する符号化データの受信形態を、目的に応じて切り替える技術を提供することができ、これにより、より快適に画像符号化データの受信を行うことができる。
【図面の簡単な説明】
【図１】インターネットやＬＡＮに代表されるネットワーク上に複数のコンピュータが接続されている本発明の第１の実施形態におけるシステムの概略構成を示す図である。
【図２】サーバ装置１０１，１０３、端末装置１０２ａ，１０２ｂの基本構成を示すブロック図である。
【図３】Ｌａｙｅｒ−ｒｅｓｏｌｕｔｉｏｎ  ｌｅｖｅｌ−ｃｏｍｐｏｎｅｎｔ−ｐｏｓｉｔｉｏｎ  ｐｒｏｇｒｅｓｓｉｏｎに従って生成されたＪＰＥＧ２０００ファイルの概略構成を示す図である。
【図４】解像度（画像サイズ）とＲｅｓｏｌｕｔｉｏｎ番号との関係を示す図である。
【図５】パケット単位でのリクエスト及びレスポンスの概念図である。
【図６】本発明の第１の実施形態におけるサーバ装置１０１（もしくは１０３）に接続されたハードディスクに保持されているＪＰＥＧ２０００ファイルの構成の一例を示す図である。
【図７】端末装置１０２ａ（端末装置１０２ｂも同様）におけるウェブブウザが行う、サーバ装置１０１（サーバ装置１０３でも良い）に対してＪＰＥＧ２０００ファイルの送信を要求し、要求したＪＰＥＧ２０００ファイルをデコードして表示部２０３に表示する処理のフローチャートである。
【図８】ステップＳ３における処理の詳細を示すフローチャートである。
【図９】サーバ装置と端末装置との間でのコマンド送信、レスポンス返信のシーケンスを示す図である。
【図１０】キャッシュ管理をするためのテーブルのデータ構造を示す図である。
【図１１】ＣＰＵ２０１がユーザからの要求から必要なパケットを計算した時に、キャッシュ上にデータがあるか否かを判断し、コマンドを発行するかどうかを判断する処理のフローチャートである。
【図１２】ユーザの操作の連続性を判断して、「部分的なパケット要求コマンド」において１度に転送するバイト数を動的に決定する処理のフローチャートである。
【図１３】端末装置から指示した画像符号化データのサイズと今回受信するデータのサイズとの比較結果に応じて発行するコマンドの発行処理のフローチャートである。
【図１４】本発明の第４の実施形態におけるステップＳ６の処理のフローチャートである。
【図１５】ステップＳ１４０２における処理の詳細を示すフローチャートである。
【図１６】本発明の第５の実施形態におけるコマンド発行処理のフローチャートである。
【図１７】ＪＰＥＧ２０００に従って符号化された画像符号化データにおける各解像度の符号化データを示す図である。
【図１８】ウェブブラウザに表示されている複数の画像から１つを指示した場合に、指示した画像において端末装置から要求する部分画像符号化データのサイズ、及び指示した画像の画像符号化データのサイズの推測結果に応じて端末装置がコマンドを発行する処理のフローチャートである。
【図１９】本発明の第７の実施形態におけるコマンド発行処理のフローチャートである。
【図２０】本発明の第７の実施形態におけるステップＳ６の処理のフローチャートである。
【図２１】ステップＳ２００１における処理のフローチャートである。
【図１】
2004193752.tif 000003
【図２】
2004193752.tif 000004
【図３】
2004193752.tif 000005
【図４】
2004193752.tif 000006
【図５】
2004193752.tif 000007
【図６】
2004193752.tif 000008
【図７】
2004193752.tif 000009
【図８】
2004193752.tif 000010
【図９】
2004193752.tif 000011
【図１０】
2004193752.tif 000012
【図１１】
2004193752.tif 000013
【図１２】
2004193752.tif 000014
【図１３】
2004193752.tif 000015
【図１４】
2004193752.tif 000016
【図１５】
2004193752.tif 000017
【図１６】
2004193752.tif 000018
【図１７】
2004193752.tif 000019
【図１８】
2004193752.tif 000020
【図１９】
2004193752.tif 000021
【図２０】
2004193752.tif 000022
【図２１】
2004193752.tif 000023
【手続補正書】
【提出日】平成15年11月12日(2003.11.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理装置であって、
ユーザからの各種の入力を受け付ける入力手段と、
当該入力手段から入力された入力の種別に応じて、当該入力手段により指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から送信される、当該送信手段により送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記入力手段は、ユーザからの連続した操作入力を受け付け可能であって、
前記送信手段は、前記入力手段から入力された夫々の操作入力が同じであって、且つ当該夫々の操作入力が所定の時間内になされたものである場合には、前記第２のコマンドを、それ以外の場合には前記第１のコマンドを生成して前記サーバ装置に対して送信することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２のコマンドには、前記指示された画像符号化データにおける前記部分画像符号化データの位置情報、且つ前記サーバ装置から一度に受信するデータのサイズが含まれていることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記送信手段が前記第２のコマンドを前記サーバ装置に対して送信した場合、
前記出力手段は更に、受信すべき部分画像符号化データのうち、受信したデータのサイズと、まだ受信していないデータのサイズを示す情報とを受信することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記出力手段が前記情報を受信した場合、前記送信手段は前記部分画像符号化データのうちまだ受信していないデータを所定の単位毎に前記サーバ装置から受信するためのコマンドを前記第２のコマンドとして前記サーバ装置に対して送信することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理装置であって、
前記指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを指示する指示手段と、
前記サーバ装置から受信した部分画像符号化データを記憶保持する記憶保持手段と、
前記画像符号化データにおいて前記記憶保持手段に記憶保持されているデータのサイズ、及び前記指示手段により指示した部分画像符号化データのサイズ、及び前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズを用いて、前記指示手段により指示された部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記指示手段により指示された部分画像符号化データを所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から送信される、当該送信手段により送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項７】
前記送信手段は、前記画像符号化データにおいて前記記憶保持手段に記憶保持されているデータのサイズと、前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズの総和である第１のサイズと、前記指示手段により指示した部分画像符号化データのサイズである第２のサイズとを比較し、前記第１のサイズが少なくとも前記第２のサイズ以上である場合には前記第２のコマンドを、前記第１のサイズが大きくとも前記第２のサイズ以下である場合には前記第１のコマンドを前記サーバ装置に対して送信することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記画像符号化データのサイズ、及び前記指示手段により指示した部分画像符号化データのサイズを推定する推定手段を備え、前記画像符号化データにおいて前記記憶保持手段への記憶保持対象外のデータのサイズは推定手段により求めたそれぞれのサイズを用いて求めることを特徴とする請求項６に記載の画像処理装置。
【請求項９】
スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理方法であって、
ユーザからの各種の入力を受け付ける入力工程と、
当該入力工程で入力された入力の種別に応じて、当該入力工程で指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信工程と、
前記サーバ装置から送信される、当該送信工程で送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項１０】
スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理方法であって、
前記指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを指示する指示工程と、
前記サーバ装置から受信した部分画像符号化データを記憶保持する記憶保持工程と、
前記画像符号化データにおいて前記記憶保持工程で記憶保持されているデータのサイズ、及び前記指示工程で指示した部分画像符号化データのサイズ、及び前記画像符号化データにおいて前記記憶保持工程での記憶保持対象外のデータのサイズを用いて、前記指示工程で指示された部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記指示工程で指示された部分画像符号化データを所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを前記サーバ装置に対して送信する送信工程と、
前記サーバ装置から送信される、当該送信工程で送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項１１】
コンピュータを請求項１乃至８の何れか１項に記載の画像処理装置として機能させることを特徴とするプログラム。
【請求項１２】
コンピュータに請求項９又は１０に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１３】
請求項１１又は１２に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
すなわち、スケーラビリティを有する画像符号化データを保持するサーバ装置から、指示された当該画像符号化データを受信する画像処理装置であって、
ユーザからの各種の入力を受け付ける入力手段と、
当該入力手段から入力された入力の種別に応じて、当該入力手段により指示された画像符号化データのうち、デコードすることで所望のレベルの画像を形成するために必要な部分画像符号化データを１回の受信処理で受信するために前記サーバ装置に対して送信する第１のコマンド、もしくは前記画像符号化データにおける前記部分画像符号化データを特定する情報を当該第１のコマンドよりも詳細に記述し、且つ前記部分画像符号化データを前記サーバ装置から所定の単位毎に受信するために前記サーバ装置に対して送信する第２のコマンドの何れかを生成し、前記サーバ装置に対して送信する送信手段と、
前記サーバ装置から送信される、当該送信手段により送信されたコマンドに応じた画像符号化データを受信してデコードし、デコード結果を所定の出力装置に出力する出力手段と
を備えることを特徴とする。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１５３
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１５６
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１５７
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１５８
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１５９
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１６０
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１６１
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１６２
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１６３
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１６４
【補正方法】削除
【補正の内容】
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１６５
【補正方法】削除
【補正の内容】