JP2005012685A - Image processing method and image processing apparatus - Google Patents

Image processing method and image processing apparatus Download PDF

Info

Publication number
JP2005012685A
JP2005012685A JP2003176929A JP2003176929A JP2005012685A JP 2005012685 A JP2005012685 A JP 2005012685A JP 2003176929 A JP2003176929 A JP 2003176929A JP 2003176929 A JP2003176929 A JP 2003176929A JP 2005012685 A JP2005012685 A JP 2005012685A
Authority
JP
Japan
Prior art keywords
data
image
tile
image processing
order
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.)
Pending
Application number
JP2003176929A
Other languages
Japanese (ja)
Inventor
Chie Ishikawa
智恵 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003176929A priority Critical patent/JP2005012685A/en
Priority to US10/867,696 priority patent/US7616823B2/en
Publication of JP2005012685A publication Critical patent/JP2005012685A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To shorten a time for decoding data by an apparatus requesting fragmentary data of encoded data of an image by supplying the data to this apparatus in an order suitable for a progression order used by this apparatus. <P>SOLUTION: Information relating to data transmitted to a client terminal device 201 (or 202) in the past is recorded as a history, and when a data transmission request of logical unit in a tile required for obtaining a desired image is received from the client terminal device 201, the history is referred to. In this way, the type of the progression order used in the client terminal device 201 is determined, an order of transmitting the data of logical unit is determined, according to the determination result, and the data of logical unit in the tile are transmitted to the client terminal device 201, according to the determined transmission order. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持し、外部装置からの要求に応じたタイル中の、当該要求に応じた論理単位のデータを前記外部装置に送信する技術に関するものである。
【0002】
【従来技術】
インターネット上では、クライアント端末装置上で動作するWebブラウザを用いてWWWサーバにアクセスし、Webブラウザを介してクライアント端末装置側で文書データや画像データ等を閲覧することが盛んに行われている。このWWWサーバは、ホームページといわれる公開したい情報をHTMLで記述した情報を保持しており、それをクライアント端末装置側のWebブラウザが解釈して、クライアント端末装置が有する表示装置の表示画面上に表示する。クライアント端末装置側のWebブラウザは、表示装置に表示されているホームページ中のリンク部分がユーザによって指示されると、このリンク部分が示すリンク先を辿って行き、必要な情報を得ることができる。
【0003】
さらに、サーバが管理しているファイルをダウンロードする方法として、File Transfer Protocol (以下FTPと略す)という方法がある。このFTPとは、ネットワークを通して、サーバ上にあるファイルを一度にクライアント端末装置に転送する仕組みである。
【0004】
あるいは、画像データファイルへ断片的にアクセスして表示するためのプロトコルとして、Flashpix/IIPがある。このIIP(Internet Imaging Protocol)は、Flashpixという画像データファイルフォーマットに最適なプロトコルになっており、画像データの部分アクセスの単位はFlashpixのタイル単位に行うものとなっている。このIIPプロトコルを使用する技術としては従来からいくつかが開示されている(例えば特許文献1を参照)。
【0005】
これらのいずれのプロトコルであっても、サーバから送信されるデータは、それぞれ独立した符号データである。そのため、サーバ側では、送信データの順番を考慮して返送する必要がなかった。
【0006】
また、JPEG2000に従って符号化されたファイルへ断片的にアクセスして表示するためのプロトコルとして、JPEG2000 image coding system − Part 9: Interactivity tools, APIs and protocols(以下、JPIPと記す)が検討されている。このようなプロトコルを使ってJPEG2000の画像データをクライアント端末装置に断片的に送信した場合、送信された画像データをクライアント端末装置がデコードするためには、受信した断片的な符号化データを1つのファイルにキャッシュする必要がある。これは、JPEG2000の各スケーラビリティの符号化データは、そのスケーラビリティより1つ下のスケーラビリティのデータからの差分データであるためである。
【0007】
このJPIPを利用してデータを要求するクライアントは、レスポンスデータの返送方法に関して、次の2種類の要求が可能になっている。
【0008】
1) fullwindow: レスポンスデータの送信順序はサーバに一任する変わりに、要求データを全て確実に返送することを要求
2) progressive: 要求データの一部を削減しても良いから、画質方向のスケーラビリティ(layer progression order)で返送することを要求
従って、クライアントは、要求したデータの全てを確実に受信したい場合には、上記のprogressiveでの要求をおこうため、サーバは、クライアント側の処理を考慮せずに、サーバの実装方針に従って、返送していた。
【0009】
【特許文献1】
特開2002−49514
【0010】
【発明が解決しようとする課題】
上述のように、従来ではサーバは送信データの順番を考慮しないでJPEG2000の断片的なデータを返送しているので、クライアント端末装置側における受信データの管理方法によっては、それらを並べ直す必要が生じる。
【0011】
クライアント端末装置側で使用している画像表示用アプリケーションが解像度方向のスケーラビリティを利用したものであり、且つデコードの際に受信データをJPEG2000のビットストリームシンタックスに即した順序で読み出す場合には、受信データを解像度スケーラビリティを使った表示に適したようにデータを並べ直して管理するか、データを読み出す際にデータを並べなおしながら読む必要がある。
【0012】
このように、受信データを管理する際に並べなおすことは、受信データを処理する際のクライアント端末装置側の負荷が大きくなり、サーバとの通信の度に大きな処理時間がかかるという問題がある。また、デコードのためにデータを読み出す際に、デコード順にデータを読み出す順に並べなおしながら読む場合には、通信が発生しない場合でも、既に保存してあるデータを使って画像の表示を行う度に、保存データへのランダムアクセスが頻繁に生じて、デコードまでの時間が大きくなるという問題が生じる。
【0013】
本発明は以上の問題に鑑みて成されたものであり、画像の符号化データの断片的なデータを要求する装置に、この装置が使用するプログレッションオーダに適した順序でデータを供給し、この装置がこのデータをデコードする時間を短くすることを目的とする。
【0014】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0015】
即ち、複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持し、外部装置からの要求に応じたタイル中の、当該要求に応じた論理単位のデータを前記外部装置に送信する画像処理装置が行う画像処理方法であって、
過去に前記外部装置に送信したデータに関する情報を履歴として記録し、所定のメモリに保持させる履歴保持工程と、
保持する画像の符号化データのうち所望の画像を得るために必要なタイル中の論理単位のデータの送信要求を前記外部装置から受信した場合、前記履歴保持工程で保持させておいた前記履歴を参照することで、前記外部装置側で利用しているプログレッションオーダの種類を判別し、判別結果に従って前記外部装置に送信する各タイル中の論理単位のデータの送信順を決定する送信順決定工程と、
前記送信順決定工程で決定した送信順に従って、前記送信要求に応じたタイル中の論理単位のデータを前記外部装置に送信する送信工程と
を備えることを特徴とする。
【0016】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0017】
即ち、画像処理装置が行う画像処理方法であって、
複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持する外部装置から、所望の画像を得るために必要な論理単位のデータ、及び当該論理データをデコードする際のプログレッションオーダを示す情報を含むヘッダのデータを受信する受信工程と、
前記ヘッダ中のプログレッションオーダを示す前記情報を、前記画像処理装置側で使用するプログレッションオーダを示す情報に更新する更新工程と、
前記画像処理装置側で使用するプログレッションオーダに従った順番で、前記受信工程で受信した論理単位のデータに関する情報を管理するための管理情報を作成する管理情報作成工程と
を備えることを特徴とする。
【0018】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【0019】
即ち、複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持し、外部装置からの要求に応じたタイル中の、当該要求に応じた論理単位のデータを前記外部装置に送信する画像処理装置であって、
過去に前記外部装置に送信したデータに関する情報を履歴として記録し、保持する履歴保持手段と、
保持する画像の符号化データのうち所望の画像を得るために必要なタイル中の論理単位のデータの送信要求を前記外部装置から受信した場合、前記履歴保持手段が保持する前記履歴を参照することで、前記外部装置側で利用しているプログレッションオーダの種類を判別し、判別結果に従って前記外部装置に送信する各タイル中の論理単位のデータの送信順を決定する送信順決定手段と、
前記送信順決定手段が決定した送信順に従って、前記送信要求に応じたタイル中の論理単位のデータを前記外部装置に送信する送信手段と
を備えることを特徴とする。
【0020】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【0021】
即ち、画像処理装置であって、
複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持する外部装置から、所望の画像を得るために必要な論理単位のデータ、及び当該論理データをデコードする際のプログレッションオーダを示す情報を含むヘッダのデータを受信する受信手段と、
前記ヘッダ中のプログレッションオーダを示す前記情報を、前記画像処理装置側で使用するプログレッションオーダを示す情報に更新する更新手段と、
前記画像処理装置側で使用するプログレッションオーダに従った順番で、前記受信手段が受信した論理単位のデータに関する情報を管理するための管理情報を作成する管理情報作成手段と
を備えることを特徴とする。
【0022】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0023】
[第1の実施形態]
図1はPC(パーソナルコンピュータ)やワークステーションなどにより構成される、本実施形態に係る画像処理装置の基本構成を示すブロック図である。
【0024】
CPU101は一次記憶メモリ102にロードされたプログラムやデータを用いて本装置全体の制御を行うと共に後述の各部の動作の制御を行う。
【0025】
一次記憶メモリ102はRAMに代表される主記憶装置であって、二次記憶メモリ103からロードされたプログラムやデータを一時的に記憶するエリアを備えると共に、CPU101が各種の処理を行うために使用するエリアを備える。
【0026】
二次記憶メモリ103は、ハードディスクドライブに代表される大記憶容量を有する情報記憶装置であって、ここにOS(オペレーティングシステム)や後述の各処理をCPU101が実行するためのプログラムやデータを保存させておくことができ、CPU101による制御によって、要求されたプログラムやデータを一次記憶メモリ102に出力(ロード)する。
【0027】
入力デバイス104は、例えばマウスやキーボードなどに代表される指示入力装置であって、この入力デバイス104により、本装置のユーザは各種の指示をCPU101に入力することができる。
【0028】
出力デバイス105は、例えばディスプレイやプリンタに代表される装置であって、本装置で処理した画像を表示やプリントアウト等、様々な形態で出力することのできる装置である。
【0029】
ネットワークインターフェース106は、外部の装置とデータ通信を行うためにI/Fとして機能するものである。107は上記各部を繋ぐバスである。本実施形態に係る画像処理装置の基本構成は以下の説明上図1に示した構成とするが、これ以外の構成を適用することも可能であり、図1に示した構成に限定されるものではない。
【0030】
図2は、上記画像処理装置を含むシステムの概要を示す図である。201,202は夫々クライアント端末装置であって、上記画像処理装置としてのサーバ装置204とネットワーク203を介して各種のデータ通信を行うことができる。
【0031】
203はネットワークで、インターネットやLANなどの有線のネットワーク、無線のネットワークを含むものである。
【0032】
204はサーバ装置で、上述の通りネットワーク203を介してクライアント端末装置201,202とデータ通信を行うことができ、例えばクライアント端末装置201やクライアント端末装置202から所望の画像の要求があった場合には、画像の符号化データを大量に保存する記憶装置205(上記二次記憶メモリ103に相当)から要求された分だけのデータをネットワーク203を介して返信するものである。この記憶装置205は例えばハードディスクドライブ装置や、CD−ROMやDVD−ROMなどの記憶媒体からプログラムやデータを読み取る装置がこれに該当する。
【0033】
本実施形態ではこの記憶装置205には、JPEG2000に従った符号化方式で符号化された画像のデータが複数保存されているものとする。従ってクライアント端末装置201,202はサーバ装置204に、記憶装置205が保存している画像の符号化データの中から、所望の符号化データについて、所望の画像を得るために必要な分だけを要求する。
【0034】
以下では、サーバ装置204がクライアント端末装置から要求された画像の符号化データを、このクライアント端末装置に送信する為に行う処理について説明する。クライアント端末装置が記憶装置205に保存されている画像をダウンロードするためには、Webブラウザを用いてサーバ装置204にアクセスする必要がある。サーバ装置204はこのアクセスを受け、記憶装置205に保存されている画像の一部もしくは全部の画像を例えばサムネイル形式でクライアント端末装置に提示する。これによりWebブラウザにはこれらの画像が表示されることになる。
【0035】
このWebブラウザに表示された画像群の中から、クライアント端末装置のユーザがマウスやキーボードといった入力デバイスを用いて所望の画像を指示すると、クライアント端末装置は条件(画面サイズや表示形態など)に応じた画像サイズや解像度に従って、所望の画像のデータ中の断片的なデータの送信要求をサーバ装置204に対して送信する。サーバ装置204はこの要求に応じた断片的なデータをクライアント端末装置に送信するので、クライアント端末装置はこれをJPIPの仕組みを使って受信し、バッファにキャッシュする。
【0036】
そして受信した画像を表示する際には、キャッシュしたデータからJPEG2000のシンタックスに準拠したビットストリームを作成し、その後、そのビットストリームをデコードして表示する。
【0037】
次に、一般的なJPEG2000に従ったビットストリームについて説明する。図3はLayer−resolution level−component−position progression(以下、LRCPと記す)に従ったJPEG2000のビットストリームの構成を示す図である。JPEG2000のビットストリームにはメインヘッダ(Main Header)、タイルヘッダ(Tile Header)、データ(Data)が含まれており、このデータの部分に画像符号化データが記録されることになる。またタイルヘッダは、圧縮符号化元の画像を所定のサイズの矩形(タイル)毎に分割し、夫々のタイルの圧縮符号化データを生成した場合に、夫々のタイルの圧縮符号化データに対して作成されるものである。メインヘッダ、タイルヘッダについては公知の技術によるものであるのでここでの説明は省略する。
【0038】
LRCPに準じた場合、画像の符号化データ(同図において”Data”で示された部分)は、Layer/Resolution/Component/Positionの順にデータが配置された構成を備える。このような構成はprogression order(プログレッションオーダ)と呼ばれる。また、ここで記されているpositionとは、JPEG2000符号化データにおけるprecinctのことである。
【0039】
JPEG2000の符号化データは大まかにはLayer毎のデータに分けることができる。各Layerのデータは公知のビットプレーン符号化による各ビットプレーンの符号化データで、MSB側のビットプレーン(Layer1)から順にLSBのビットプレーン(LayerL)までが配置される。Layer番号は復元する画像の原画に対するS/N比に対応し、Layer番号が小さいほどS/N比が悪く(低く)なる。すなわち、同図のJPEG2000のデータは、S/Nの悪い順に各Layerのデータが配置されていることになる。
【0040】
更に各Layerのデータは各Resolutionのデータにより構成されている。各Resolutionのデータは解像度(画像のサイズ)に応じたResolution番号に従った順序で配置されている。解像度とResolution番号との関係を図4に示す。最も小さい解像度の画像のResolution番号を0とし、Resolution番号が一つ増加するごとに画像の幅と高さが倍になっていく。各Layer内は、Resolution番号の小さい順にデータが格納されている。
【0041】
図3に戻って、各Resolutionのデータは各Componentのデータにより構成されている。各Componentのデータは画像の各色データに対応しており、例えば画像がRGBの各データにより構成されている場合には、Component0のデータはR成分のデータ、Component1のデータはG成分のデータ、Component2のデータはB成分のデータである、すなわち、Component数は画像の色空間の次元数に一致する。
【0042】
また各Componentデータには圧縮符号化元の画像における空間的な各位置のデータ(Positionデータ)が順番に記録されており、各Positionデータには、空間的な順番通りに番号(ポジション番号)が付けられている(例えば画像の左上隅を0として画像の右方向に1つずつ番号が増加し、右端に達したら1つ下、且つ左端からまた画像右方向に番号が増加する)。
【0043】
一つのJPEG2000ファイル内でのResolution番号とレイヤ番号、コンポーネント番号、position番号の最大値は、エンコーダによって予め設定されており、圧縮符号化元の画像はそのパラメータに従ってエンコードされており、その情報はメインヘッダに記録されている。また各パケット(packet)は、そのパケットに格納されているコードブロック(code−block)の情報を管理しているパケットヘッダ(packet header)部と、各コードブロックの符号化データから構成されている。同図では1つのPositionデータがパケットに相当する。この「パケット」なるものは、論理単位の一種である。
【0044】
このような構造を有するJPEG2000ファイルがサーバ装置に保持されていれば、サーバ装置は、クライアント端末装置が要求する解像度等に応じた符号化データのみをこのクライアント端末装置に供給することができる。本実施形態の場合には、JPIPによってデータの送受信を行うため、供給するデータの単位としては、JPEG2000のタイル単位、或いはJPEG2000のパケット(packet)単位が考えられる。本実施形態では、クライアント端末装置がサーバ装置から受信するデータ単位としてパケット単位を想定する。
【0045】
このパケット単位でのリクエスト及びレスポンスの概念図を図5に示す。同図ではサーバ装置503、クライアント端末装置501間のリクエスト、レスポンスについて示している。
【0046】
同図は、画像がタイル分割されており、各タイルの符号化データ(同図ではTile0〜TileNまでの各データ)がJPEG2000ビットストリーム504としてサーバ装置503に接続されている記憶装置502に格納されている状態で、クライアント端末装置501から所望のタイル、所望の解像度、所望のレイヤ、所望のコンポーネント、そして所望の空間的な位置の符号化データを要求する場合に、サーバ装置503とクライアント端末装置501との間で行われる通信を示すものである。
【0047】
ここで例えばクライアント端末装置501がタイル番号は「1」、解像度番号は「0」、レイヤ番号は「1」、コンポーネント番号は「0」、そしてポジション番号は「0」である符号化データをサーバ装置503に要求した場合、サーバ装置503は記憶装置502に保存しているJPEG2000ビットストリーム504を解析して、要求に相当する部分(要求されたタイル番号、解像度番号、レイヤ番号、コンポーネント番号、ポジション番号に相当する部分)、すなわち、タイル番号1のパケット0をレスポンスデータとして抜き出し、クライアント端末装置501に返信する。
【0048】
このように本実施形態ではサーバ装置とクライアント端末装置との間の画像データの送受信にはJPIPを用い、パケット単位で画像の符号化データをサーバ装置からクライアント端末装置に送信する。
【0049】
次に、JPIPを使ってデータを送受信する場合の、レスポンスデータの構成について説明する。図6(a)はprecinct data−binと呼ばれるJPEG2000のpacketデータの塊の構成を示す図である。JPIPでは601に示すように、precinct data−binと呼ばれるJPEG2000のpacketデータの塊を基本としてレスポンスデータを作成する。precinct data−binとは、Tile tnの中のprecinct pnのresolution level rn、 component番号cnを構成する全てのlayerのpacketを、layer番号が昇順になるように並べてつなげたデータの塊である。
【0050】
このprecinct data−binを使って、JPIP response dataが作成される。図6(b)は図6(a)に示すprecinctdata−binを用いて作成されたJPIP response dataの構成を示す図である。JPIP response dataは、message header608とmessage body609から構成される。message body609には、要求されたタイル、解像度に応じてprecinct data−bin 601から切り出された1つもしくは複数パケット(図6(a)に示すPacket(tn,rn,cn,pn,q))のデータがレスポンスデータとして入る。
【0051】
message header 608は、4つのパラメータを格納する領域から構成されている。最初の領域604に格納されるパラメータは、message body 609に入っているデータがprecinct data−binであることを示す識別子である。2番目の領域605に格納されるパラメータは、message body 609内のパケットのデータが属していたprecinct data−bin(ここでは図6(a)に示すprecinct data−bin)に対するprecinct data−bin ID(PrID)である。このPrIDは、タイル番号tn, resolution level番号rn, component番号cn, precinct番号 pnから一意に決まり、次式で求めることができる。
【0052】
PrID(tn,rn,cn,pn)=tn+(cn+s×(component数))×tile数
ただし、
s=pn+tn×(resolution level rnにおける1タイルあたりのprecinct数)+(resolution level 0から(rn−1)までのタイルtrのprecinct数の総和)
3番目の領域606に格納されるパラメータは、message body609中の各パケットのデータ(1つの場合はそれ自身のデータ)がprecinct data−binの先頭からどれだけオフセットされた位置にあったものかを示すオフセット値PrOffset(図6(a)を参照)である。4番目の領域607に格納されるパラメータは、response data、つまり、message body609のバイト長ResLen[byte](図6(b)を参照)である。
【0053】
次に、本実施形態に係る画像処理装置がサーバ装置として、送信要求のあった装置(以下、クライアント端末装置)に対してこのようなJPIP responsedata(以下、単にレスポンスデータと呼称する場合がある)を作成し、送信する処理について説明する。なお、以下、本実施形態に係る画像処理装置をその機能上、サーバ装置と呼称する。
【0054】
図7は、本実施形態に係る画像処理装置が、送信要求のあった装置(クライアント端末装置)に対してJPIP response dataを作成し、送信する為のメインの処理のフローチャートである。なお同図のフローチャートに従ったプログラムは二次記憶メモリ103に保存されており、CPU101による制御の下で一次記憶メモリ102にロードされ、CPU101がこれを実行することで、画像処理装置は以下説明する処理を行うことになる。
【0055】
まずサーバ装置はクライアント端末装置からの要求データ(どの画像のどの領域の画像符号化データを要求するかを示し、且つその画像符号化データをデコードしたときの画像の解像度などを示しているデータ)の受信を待つ(ステップS701)。要求データが受信されると処理をステップS702に進め、この要求データを一次記憶メモリ102に格納(保持)する(ステップS702)。次に一次記憶メモリ102に格納した要求データの解析を行い、クライアント端末装置に返信すべき画像の符号化データを特定する(ステップS703)。即ち、解析結果に従ったresolution level番号、layer番号、component番号、position番号を有すると共に、解析結果に従った画像中の領域に含まれるパケットのデータを二次記憶メモリ103に保持する画像の符号化データを構成する各パケットのデータから特定する。
【0056】
次に、上記特定したパケットのデータを二次記憶メモリ103に保持する画像の符号化データから取り出し、JPIPレスポンスシンタックスに即したデータに直し、レスポンスデータを作成する(ステップS704)。
【0057】
本実施形態では作成したレスポンスデータをクライアント端末装置に返信した場合に、クライアント端末装置がこのレスポンスデータに含まれる各パケットのデータをデコードしやすいように、このクライアント端末装置側で使用するプログレッションオーダに従って、予めこれら各パケットを並び替えておく。これによりクライアント端末装置はレスポンスデータに含められた各パケットを、使用するプログレッションオーダに従って並び替えることなく、そのままの順番でデコードすれば、要求した画像を生成することができ、このデコードに要する時間をより短くすることができると共に、画像表示を行うまでの時間をより短くすることができる。
【0058】
なお、クライアント端末装置側で使用するプログレッションオーダに従って、予めレスポンスデータに含められる各パケットを並び替えておく処理(ステップS704)の詳細については後述する。図7に戻って、レスポンスデータが作成されると、このレスポンスデータをクライアント端末装置に送信する(ステップS705)。
【0059】
次に、上記サーバ装置に所望の画像を得るために必要な画像の符号化データを要求するクライアント端末装置が行う処理について、同処理のフローチャートを示す図8を参照して説明する。なお同図のフローチャートに従ったプログラムはクライアント端末装置内の不図示のメモリに格納されており、これをクライアント端末装置の不図示のCPUが実行することで、このクライアント端末装置は図8に示したフローチャートに従った処理を行うことができる。
【0060】
まず、ユーザからの画像の表示要求を取得する(ステップS801)。つまり、最終的に表示したいのは画像全体の中のどの部分で、どのくらいの大きさに表示したいのか、などの情報を取得する。なお、画像の符号化データの要求については「表示」に限定されるものではなく、印刷など他の用途のために要求する場合についても、図8に示した処理が適用可能であることは明白である。
【0061】
そして次に、上記表示要求の内容を参照し、クライアント端末装置が予め保持している画像の符号化データ(キャッシュデータ)のみでこの表示要求が示す画像が得られるか否かを判断する(ステップS802)。これは例えば、本実施形態では画像の符号化データとしてJPEG2000に従った符号化データであるので、よりよい解像度の画像を得るためにはより多くのサブバンドの符号化データを必要とする。従って、予め保持しているサブバンドの数よりも少ない数のサブバンドで表現可能な画像の表示要求であれば、保持している符号化データのみで要求に応じることができる。
【0062】
従って、キャッシュデータのみで表示要求に応じることができるのであれば処理をステップS807に進め、このキャッシュデータのうち、表示要求に応じるために必要な部分だけをデコードし、デコード結果である画像を不図示の表示装置に表示させる(ステップS807)。
【0063】
一方、キャッシュデータのみで表示要求に応じることができない場合、すなわち、不足分の画像の符号化データをサーバ装置に要求すべき場合には処理をステップS803に進め、この不足分に相当する画像の符号化データをサーバ装置に要求するためのデータである要求データを作成する(ステップS803)。この「不足分に相当する画像の符号化データ」については上述の通り、ステップS801で取得した上記表示要求内容と、キャッシュデータから一意に求めることができる。そして、この要求データをサーバ装置に送信する(ステップS804)。
【0064】
次に、この要求データに応じたレスポンスデータとしての画像の符号化データがサーバ装置から送信されたことを検知した場合には(ステップS805)、処理をステップS806に進め、受信したレスポンスデータをキャッシュする(ステップS806)。このキャッシュする処理の詳細については後述する。そして先にキャッシュしておいたキャッシュデータと今回受信したキャッシュデータ共にデコードし、デコード結果である画像を不図示の表示装置に表示させる(ステップS807)。
【0065】
ここで本実施形態では、サーバ装置側で二次記憶メモリ103に保持している画像の符号化データのエンコード条件については以下に示すものとする。
【0066】
最大解像度時の画像サイズ:2048×2048[pixel]
Tile分割:8×8=64 tileに分割
Resolution level数: 4 (i.e. resolution level 0〜3)
Layer数:3 (i.e. layer 0〜2)
Position数:1 position / 1 tile
Component数:3 (i.e. component 0〜2)
プログレッションオーダ: Layer− Resolution−Component−Position
図9は、このような本実施形態に係るエンコード条件の符号化データの概略構成を示す図である。また図10は、各解像度レベル(Resolution Level)における画像の解像度、及び各画像におけるタイルの番号を示す図である。図9に示すように、符号化データは、メインヘッダと、それに続く各タイルの符号化データから成る。図10に示すように、各タイルに付けられる番号は画像の左上隅からシーケンシャルに付けられている。従って、図9に示す各タイルの符号化データは、このタイルの番号順に並べられている。
【0067】
ここで、クライアント端末装置側で使用している画像表示用アプリケーションは主に解像度方向のスケーラビリティを使用しているものとし、更に、このアプリケーションによって現在、resolution level 1、layer 2で画像全体を表示しており(この画像が初めてサーバ装置から送信された符号化データをデコードした結果の画像であるとする)、次に、図10に示す領域1001で示される画像の中央部をresolution level 2、layer 2で表示するために必要なデータをサーバ装置に要求していると仮定する。これによりサーバ装置がクライアント端末装置に返信すべきパケットのデータは、
Tile番号:18〜21、26〜29、34〜37、42〜45に属するパケットのデータで、
Resolution level番号:2
Layer番号:0〜2
Position番号:0
Component番号:0〜2
のパケットのデータである。
【0068】
さらに、説明を簡単にするために、受信データを保存するクライアント端末装置側のキャッシュファイルには、メインヘッダとパケット以外のデータは書き込まないものとする。
【0069】
以上の設定に基づき、上記ステップS806における処理、即ち、クライアント端末装置が受信したメインヘッダ、及び各パケットのデータをキャッシュデータとしてキャッシュする処理について、同処理のフローチャートである図11を参照して説明する。
【0070】
まず、受信したレスポンスデータを解析し、これから処理しようとするデータがメインヘッダであるか否かを判断する(ステップS1101)。処理しようとするデータがメインヘッダである場合には処理をステップS1102に進め、このメインヘッダに含められた情報である、「このレスポンスデータに含められる符号化データのプログレッションオーダ」を取得し、この情報を、クライアント端末装置側で扱うプログレッションオーダ(画像表示用アプリケーションが扱うプログレッションオーダ)に更新する(ステップS1102)
具体的には、メインヘッダに含まれるCODマーカ(図12参照)の6バイト目のフィールド1201の値を読むことで、プログレッションオーダを判定する。フィールド1201の値と各プログレッションオーダの対応は、

Figure 2005012685
となっている。図12はCODマーカの構成を示す図である。サーバ装置から送信されたメインヘッダ中のCODマーカが同図に示したものであるとすると、フィールド1201における値は0x00、即ちこのメインヘッダに後続して受信するパケットのデータのプログレッションオーダはLRCPである。一方、上述の通りクライアント端末装置側で扱うプログレッションオーダ(画像表示用アプリケーションが扱うプログレッションオーダ)はRLCPであるので、このフィールド1201の値はRLCPに対応する0x01に書き換える。
【0071】
次に、ステップS1102で更新したプログレッションオーダの順番に、パケットのデータを管理するための情報を書き込むパケットデータ管理テーブルを用意する(ステップS1103)。このパケットデータ管理テーブルに書き込む情報としては、各パケットのデータがキャッシュ済みであるか否かを示すフラグ情報、各パケットのデータとメインヘッダ全てを含む符号化データにおける各パケットの位置情報、各パケットのデータ長等がある。
【0072】
次に、受信した上記メインヘッダのデータをキャッシュに書き込む(ステップS1104)。そしてレスポンスデータを受信する処理が終了、即ち、レスポンスデータを構成する全てのデータ(メインヘッダと各パケットのデータ)の受信が完了すれば同図に示した処理は終了する。一方、完了していない場合には処理をステップS1101に戻し、以降の処理を繰り返す。
【0073】
また、ステップS1101において、これから処理しようとするデータがメインヘッダではない場合、処理をステップS1105に進め、更にこれから処理しようとするデータがパケットのデータであるか否かを判断する(ステップS1105)。パケットのデータである場合には処理をステップS1106に進め、このパケットのデータをキャッシュに書き込む(ステップS1106)。そしてこのキャッシュしたこのパケットを管理するための情報を上記パケットデータ管理テーブルに登録し(ステップS1107)、処理をステップS1108に進める。
【0074】
次に、このクライアント端末装置側で使用するプログレッションオーダに従って、予め各パケットを並び替えてレスポンスデータを作成する処理(上記ステップS704)における処理の詳細について、この処理の詳細を示すフローチャートである図13を用いて説明する。
【0075】
サーバ装置は上述の通り、複数の画像の符号化データを二次記憶メモリ103に記憶しているが、クライアント端末装置からの要求データを受信すると、これを解析し、どの画像の符号化データを要求しているのかを先ず特定し、次に、特定した画像の符号化データのメインヘッダを解析し、プログレッションオーダを取得する(ステップS1301)。取得する方法については上記ステップS1102で行った処理と同様に、メインヘッダに含まれるCODマーカの6バイト目のフィールドの値を読むことで、プログレッションオーダを判定する。
【0076】
なおここで、サーバ装置は過去のデータ通信における、クライアント端末装置とのデータの送受信の内容(どのようなデータをどのクライアント端末装置といつ送受信したのかなど)を履歴情報として二次記憶メモリ103に管理している。本実施形態においても、クライアント端末装置はresolution level1の画像を最高画質であるlayer2で表示するためのデータを最初にこのサーバ装置に要求しているので、当然、このクライアント端末装置との過去のデータ通信内容は二次記憶メモリ103に管理されている。よって、この履歴を一次記憶メモリ102にロードし、取得する(ステップS1302)。このように、現在通信を行っている対象の装置との過去の通信の履歴を参照する技術については周知のものであるので、これに関する説明は省略する。
【0077】
そして今回要求された画像に対する最初の要求を、この履歴情報を解析することで特定し、最初にレイヤ0のデータを要求したか否かを調べる(ステップS1303)。レイヤ0のデータを最初に要求した場合には処理をステップS1304に進め、このクライアント端末装置は画質方向のスケーラビリティを利用すると判定し、このクライアント端末装置側で使用されているプログレッションオーダをLRCPと決定する(ステップS1304)。
【0078】
一方、レイヤ0のデータを最初に要求していない場合には処理をステップS1305に進め、このクライアント端末装置は画質方向のスケーラビリティを利用する頻度が少ないと判定し、このクライアント端末装置側で使用されているプログレッションオーダをRLCPと決定する(ステップS1305)。
【0079】
本実施形態の場合、クライアント端末装置が最初にサーバ装置に要求したデータはresolution level1の画像を最高画質であるlayer2で表示するためのデータであるので、このクライアント端末装置は画質方向のスケーラビリティを利用する頻度が少ないと判定し、このクライアント端末装置側で使用されているプログレッションオーダをRLCPと決定する。従ってこのような場合、サーバ装置はRLCPの順序で各パケットのデータを送信するように決定する。
【0080】
次に、上記ステップS702で格納した要求データを参照し、この要求に応じて返信すべき画像のタイル数TNを取得する(ステップS1306)。本実施形態では、図10に示した領域1001に含まれる16個のタイルを返信するので、TN=16となる。そしてこの16個のタイルのタイル番号を昇順に配列TAに格納する。本実施形態の場合は、以下のようになる。
【0081】
TA[0]=18,TA[1]=19,TA[2]=20,TA[3]=21TA[4]=26,TA[5]=27,TA[6]=28,TA[7]=29TA[8]=34,TA[9]=35,TA[10]=36,TA[11]=37
TA[12]=42,TA[13]=43,TA[14]=44,TA[15]=45
次に、以降では、要求された画像符号化データから返信すべき各タイルのデータを切り出し、レスポンスデータに含める処理を行うので、切り出す各タイルをカウントする為の変数が必要となる。従ってこの変数をXとし、0に初期化する(ステップS1308)。そしてステップS1309からステップS1311までの処理をX=TNとなるまで、即ち、返信すべき全てのタイルについて行う。
【0082】
まず、タイル番号がTA[X]であるタイルを構成するパケットのデータの管理情報を取得する(ステップS1309)。ステップS1309における処理の詳細、及びこの管理情報については後述するが、簡単に説明すれば、1つのタイルを構成する各パケットを特定するための情報である。従ってこの管理情報を用いれば、画像符号化データから必要なパケットのデータのみを切り出すことができる。
【0083】
従ってこの管理情報を用いて、要求データによって要求された条件(要求された画像のサイズや解像度など)を満たすように必要なパケットのデータを取りだし、取り出したパケットのデータをつなげてレスポンスデータを作成する(ステップS1310)。ステップS1310における処理の詳細については後述する。そして変数Xを一つインクリメントし(ステップS1311)、X<TNである場合(ステップS1312)にはステップS1309以降の処理を繰り返す。
【0084】
次に、上記ステップS1309における処理、即ち、タイル番号がTA[X]であるタイルを構成するパケットのデータの管理情報を取得する処理の詳細について、同処理の詳細を示すフローチャートである図14を参照して説明する。なお、本実施形態ではクライアント端末装置側で使用されているプログレッションオーダ、即ちデータの送信順序はRLCPであるので、図14に示したフローチャートもそれに応じたものとなっている。
【0085】
先ずステップS703による解析処理によって得られた、上記要求データが示す、サーバ装置に要求する符号化データの「position、component、layer、resolution level」の番号の最小値、最大値をそれぞれPmin,Pmax,Cmin,Cmax,Lmin,Lmax,Rmin,Rmaxに代入する(ステップS1401)。本実施形態では各変数の値は(Pmin,Pmax)=(0,0)、(Cmin,Cmax)=(0,2)、(Lmin,Lmax)=(0,2)、(Rmin,Rmax)=(2,2)となる。
【0086】
次に、クライアント端末装置に送信する各パケットのデータの管理情報を保存するためのテーブルB_mngを一次記憶メモリ102上に作成し、初期化する(ステップS1402)。テーブルB_mngに保存される管理情報は以下の4つにより構成されている。
【0087】
・ JPIP用のprecinct data−bin ID (B_mng[bx].id)
・ JPIP precinct data−binにおけるオフセット(B_mng[bx].offset)
・ packet sequence number(B_mng[bx].number)
・ 同じprecinct data−bin IDに属するlayer 0のpacketのsequence number(B_mng[bx].same)
これら4つの情報を1つのパケットについての管理情報として上記テーブルB_mngに登録するので、返信するパケットの数だけこのテーブルB_mngを一次記憶メモリ102上に設定する。また、このようにテーブルB_mngは返信すべき各パケットについて設定されるので、ステップS1402では更に、各テーブルB_mngをカウントする為の変数bxを0に初期化する。
【0088】
これら4つの情報を夫々4バイトのデータとして保存する場合には、テーブルB_mngのサイズは以下のようにして求めることができる。
【0089】
4×4×(1タイルあたりの返信パケット数数)=4×4×(Pmax−Pmin+1)×(Cmax−Cmin+1)×(Lmax−Lmin+1)×(Rmax−Rmin+1)[byte]
従って本実施形態の場合にはテーブルB_mngのサイズは、4×4×(0−0+1)×(2−0+1)×(2−0+1)×(2−2+1)=144[byte]である。
【0090】
また、ステップS1402におけるテーブルB_mngの初期化について、4つ全ての情報を0に初期化しても良いが、B_mng[bx].offsetに0を代入して初期化されていれば充分である。
【0091】
次に、resolution level用のカウント変数rにRminの値を代入して初期化し(ステップS1403)、layer用のカウント変数qにLminの値を代入して初期化し(ステップS1404)、component用のカウント変数cにCminを代入して初期化し(ステップS1405)、position用のカウント変数pにPminを代入して初期化する(ステップS1407)。従って本実施形態では各変数r、q、c、pは夫々、r=2,q=0,c=0,p=0と初期化される。ステップS1403からステップS1406までの処理の並びは送信データ順序に依存しており、本実施形態ではRLCPに従ったものとなっている。
【0092】
次に、上記初期化したr、c、pで特定されるprecinct data−binに対するIDである、precinct data−bin ID (PrID(TA[x], r, c, p)と表す)を求め、B_mng[bx].idに保存する(ステップS1407)。これは、次式で求めることができる。
【0093】
PrID(TA[X],r,c,p)=TA[X]+(c+s×(component数))×tile数
s=p+TA[X]×(resolution level rにおける1tileあたりのprecinct数)+(resolution level 0から(r−1)までのTA[X]のprecinct数の総和)
本実施形態の場合、次式にて求めることができる。
【0094】
PrID(TA[X],r,c,p)=TA[X]+(c+(p+TA[X]+r×1)×3)×64
例えば、TA[0]=18に関して、B_mng[0].idには、PrID(18,2,0,0)=18+(0+(0+18+2×1)×3×64=3858という値が保存される。
【0095】
次に、上記ステップS1301で取得したプログレッションオーダに基づいて、タイル内での各パケットの順番を示す番号packet sequence number(Packet(TA[X],r,c,p,q)と表す)を計算し、B_mng[bx].numberに保存する(ステップS1408)。本実施形態では、プログレッションオーダはLRCPであるので、次式で求めることができる。
【0096】
Figure 2005012685
ただし、
Pnum=1tileあたりのposition数
Cnum=component数
Rnum=resolutionlevel数
例えば、TA[0]=18に関して、B_mng[0].numberには、Packet(18,2,0,0,0)=0+0+2×3+0×4×3=6という値が保存される。次に、同じprecinct data−bin IDを有するパケットの中で、最も小さい番号のpacket sequence numberを計算し、B_mng[bx].sameに保存する(ステップS1409)。図6に示すprecinct data−bin601を例に取り、ステップS1409における処理について説明すると、上述のように、precinct data−bin IDとはlayer方向の複数のパケットをつなげたデータに対して付けられるものであって、このprecinct data−bin601に含まれるパケットのデータは夫々同じタイル番号、同じresolution level番号、同じcomponent番号、同じprecinct番号に対するものである。従ってその中でも先頭のパケットのpacket sequence numberをB_mng[bx].sameに保存する。
【0097】
従って、本実施形態の場合、B_mng[bx].sameは以下のようにして求めることができる。
【0098】
Figure 2005012685
例えば、TA[0]=18に関して、B_mng[0].same=Packet(18,2,0,0,0)であるので、B_mng[bx].sameにはB_mng[0].numberと同じ値6が保存されることになる。
【0099】
そして次のパケットについての管理情報を取得すべく、上記変数bxを一つインクリメントする(ステップS1410)。そして次に、position用のカウント変数pに1を加算し(ステップS1411)、加算後の変数pが示す値と、position番号の最大値Pmaxとを比較する(ステップS1412)。そしてp≦Pmaxである場合、処理をステップS1407に戻し、以降の処理を繰り返す。一方、p>Pmaxである場合、処理をステップS1413に進める。
【0100】
本実施形態の場合は、Pmax=Pmin=0なので、ステップS1407〜ステップS1410までの一連の処理を1回行うと、p=1>Pmax=0となるので、処理をステップS1407に戻すことなく、処理はステップS1413に進む。
【0101】
ステップS1413では、component用のカウント変数cに1を加算する(ステップS1413)。そして加算後の変数cが示す値と、component番号の最大値Cmaxとを比較する(ステップS1414)。そしてc≦Cmaxである場合、処理をステップS1406に戻し、以降の処理を繰り返す。一方、c>Cmaxである場合、処理をステップS1415に進める。
【0102】
本実施形態の場合は、Cmax=2なので、ステップS1407〜ステップS1410までの一連の処理を3回行うと、c=3>Cmax=2となり、処理をステップS1415に進める。
【0103】
ステップS1415では、layer用のカウント変数qに1を加算する(ステップS1415)。そして加算後の変数qが示す値と、layer番号の最大値Lmaxとを比較する(ステップS1416)。そしてq≦Lmaxである場合、処理をステップS1405に戻し、以降の処理を繰り返す。一方、q>Lmaxである場合、処理をステップS1417に進める。
【0104】
本実施形態の場合は、Lmax=1なので、ステップS1407〜ステップS1410までの一連の処理を2回行うと、q=2>Lmax=1となり、処理をステップS1417に進める。
【0105】
ステップS1417では、resolution level用の変数rに1を加算する(ステップS1417)。そして加算後の変数rが示す値と、resolution level番号の最大値Rmaxとを比較する(ステップS1418)。そしてr≦Rmaxである場合、処理をステップS1404に戻し、以降の処理を繰り返す。一方、r>Rmaxである場合、本処理を終了する。
【0106】
本実施形態の場合は、Rmin=Rmax=2なので、ステップS1407〜ステップS1410までの一連の処理を1回行うと、r=3>Rmax=2となり、本処理を終了することになる。
【0107】
以上、図14を用いて説明した処理が終了すると、タイル番号がTA[X]であるタイル中の、クライアント端末装置に送信するパケットについて、送信する順序でその管理情報をテーブルB_mngに格納することができる。
【0108】
次に、上記ステップS1310における処理、即ちクライアント端末装置に送信するレスポンスデータを作成する処理の詳細について、同処理の詳細を示すフローチャートである図15を用いて説明する。
【0109】
先ずタイル番号がTA[X]であるタイルを構成するパケットにおいて、先頭のパケット、即ちsequence numberが0であるパケットを以下の処理対象とすべく、ポインタにこのパケット(パケットのデータ、及びこのパケットに対するヘッダのデータを含む)の格納位置(アドレス)を代入する(ステップS1501)。
【0110】
次に、タイル番号がTA[X]であるタイル中の送信パケットの総数TaPnを求める(ステップS1502)。これは、ステップS1401で取得したPmin,Pmax,Cmin,Cmax,Rmin,Rmax,Lmin,Lmaxを用いて、TaPn=(Pmax−Pmin+1)×(Cmax−Cmin+1)×(Rmax−Rmin+1)×(Lmax−Lmin+1)として求めることができる。
【0111】
次に、図14を用いて説明した、各送信パケットについての管理情報を格納しているテーブルB_mngを取得する(ステップS1503)。このテーブルB_mngは求めた後で二次記憶メモリ103に保存しておき、本ステップで一次記憶メモリ102に読み出しても良いし、一次記憶メモリ102に記憶したままにしておき、本ステップで処理対象とするとしても良い。
【0112】
次に、夫々のパケットについてのテーブルB_mngをカウントするための変数bxを0に初期化すると共に、packet sequence numberをカウントするための変数pxを0に初期化する(ステップS1504)。ここでテーブルB_mngは各パケットについてのものであり、更に各パケットの送信順に並んでいるものである。従って上記変数bxはテーブルB_mngに対するカウンタであると共に、パケットの送信順番の番号に対応する変数でもある。
【0113】
次に、現在のポインタが示すパケット(換言すれば、packet sequence numberがpxであるパケット)のヘッダのデータを参照し、このパケットのデータ長plenを取得する(ステップS1505)。そしてこれから処理しようとするパケットの番号をpxとするので、各送信パケットのうち、このpxが示す値と同じ値のpacket sequence numberを有するパケットを探す必要がある。従って、B_mng[bx].numberの値と変数pxが示す値(packet sequence number)とが同じであるか否かを判定する(ステップS1506)。
【0114】
両者が同じ値を有するものである場合、現在のポインタが示すパケットが送信パケットであるので、二次記憶メモリ103に記憶されている符号化データから現在のポインタが示すパケットのデータを一次記憶メモリ102に読み出し(ステップS1507)、更に、B_mng[bx].idとB_mng[bx].offsetから送信データ用のmessage header(図6では608に相当)を作成する(ステップS1508)。そしてステップS1507で読み出したパケットのデータの先頭に、ステップS1508で作成したmessage headerのデータを付加し、レスポンスデータを作成する(ステップS1509)。そして上記変数bxを一つインクリメントする(ステップS1510)。
【0115】
次に、変数bxが示す値が、変数TaPnが示す「タイル番号がTA[X]中の送信パケット数」と同じであるか否かを判断し(ステップS1511)、同じである場合には、タイル番号がTA[X]中の送信パケット全てを含むレスポンスデータを作成したと判断し、本処理を終了する。
【0116】
一方、変数bxが示す値と変数TaPnが示す値とが異なる場合には、まだレスポンスデータに含めるべき送信パケットがあると判断して処理をステップS1515に進め、ポインタに次のパケット(パケットのデータ、及びこのパケットに対するヘッダのデータを含む)の格納位置(アドレス)を代入する(ステップS1515)。そして変数pxを一つインクリメントし、処理をステップS1505に戻し、以降の処理を繰り返す。
【0117】
一方、ステップS1506においてB_mng[bx].numberの値と変数pxが示す値(packet sequence number)とが同じではない場合、処理をステップS1512に進める。例えばあるパケットについてレスポンスデータに含めるための処理(ステップS1501からステップS1511の処理)を行った後で、ステップS1515で次のパケットの格納位置(アドレス)を代入する処理を行っても、次にレスポンスデータに含めるべきパケットのデータが、ポインタが示すパケットから複数個のパケット分離間している場合、B_mng[bx].numberが示す値と変数pxが示す値とは一致しないことになる。
【0118】
従ってこの場合、ステップS1512では、変数pxが示す値がB_mng[bx].sameが示す値と一致するか否かを判断する(ステップS1512)。即ち、レスポンスデータに含めるべきパケットが、このパケットが属するprecinct data−binの先頭のパケットであるか否かを判断する(ステップS1512)。先頭でない場合には、処理をステップS1515に進め、上述の通りの処理を行う。
【0119】
一方、先頭である場合には処理をステップS1513に進め、B_mng[bx].offsetが保持する値にステップS1505で取得した「packet sequence numberがpxであるパケットのデータ長plen」を加算し(ステップS1513)、更に、「B_mng[bx].sameを先頭とするprecinct data−binにおいて、B_mng[bx].sameのパケットの次に位置するパケット、即ちB_mng[bx].sameのパケットよりも一つ上のレイヤのパケットのpacket sequence number(本実施形態ではプログレッションオーダがLRCPであるので、B_mng[bx].sameが示す値にR_num×C_num×P_numを足せば求めることができる)」をB_mng[bx].sameに代入する(ステップS1514)。これにより、B_mng[bx].offsetには最終的にはbx番目の送信パケットのprecinct data−binの先頭からのオフセット値が格納されることになる。
【0120】
以上の説明により、本実施形態によってサーバ装置は、クライアント端末装置側で使用するプログレッションオーダを、このクライアント端末装置から要求されたデータの履歴を参照することで得、得たプログレッションオーダに従ってこのクライアント端末装置に送信するデータの並びを変更するので、これを受信したクライアント端末装置に与えるデコード時の負荷を軽減させることが出来、結果として画像表示などの画像出力処理における処理時間をより短くすることができる。
【0121】
また、サーバ装置側では、実際に送信データを切り出す前に、送信するデータのpacket sequence numberや同じprecinct data−binに属するpacketのsequence numberを計算しておくことで、送信データ順にpacketデータを切り出す際も、このタイルの先頭からパケットデータをサーチしながら、message headerに必要な情報を容易に得ることができ、無駄なポインタの移動を極力減らすことができる。これにより、サーバ装置のレスポンス時間短縮という効果が得られる。
【0122】
[第2の実施形態]
第1の実施形態ではクライアント端末装置側で使用するプログレッションオーダがLRCPに場合について説明したが、これがその他のプログレッションオーダであっても第1の実施形態をそれに応じて変更することで、基本的には同じ処理が適用可能である。以下、クライアント端末装置側で使用するプログレッションオーダがLRCP以外の場合について、第1の実施形態の処理と異なる部分のみについて説明する。
【0123】
先ず、クライアント端末装置側で使用するプログレッションオーダがRLCP、RPCL、PCRL、CPRL夫々の場合、異なる点は、packet sequence numberを求める式および、図15におけるステップS1514においてB_mng[bx].sameを更新する式であって、夫々は以下のようになる。
【0124】
・ RLCPのとき
Packet(t,r,c,p,q)=p+c×Pnum+q×Cnum×Pnum+r×Lnum×Cnum×Pnum
B_mng[bx].same←B_mng[bx].same+Cnum×Pnum
・ RPCLのとき
Packet(t,r,c,p,q)=q+c×Lnum+p×Cnum×Lnum+r×Pnum×Cnum×Lnum
B_mng[bx].same←B_mng[bx].same+Cnum×Lnum
・ PCRLのとき
Packet(t,r,c,p,q)=q+r×Lnum+c×Rnum×Lnum+p×Cnum×Rnum×Lnum
B_mng[bx].same←B_mng[bx].same+1
・ CPRLのとき
Packet(t,r,c,p,q)=q+r×Lnum+p×Rnum×Lnum+c×Pnum×Rnum×Lnum
B_mng[bx].same←B_mng[bx].same+1
ただし、
Pnum=1tileあたりのposition数
Cnum=component数
Rnum=resolution level数
Lnum=layer数
更に、第1の実施形態ではステップS1303で送信順番をRLCPとLRCPの何れかに決めていたが、その他のプログレッションオーダを選択するようにしても良い。例えば、YCbCrのコンポーネントを持つ画像に対して、クライアントがY成分のデータだけを最初に要求するような場合には、サーバ側でCPRLのプログレッションオーダで返送することを選択する。サーバの選択した返送プログレッションオーダが第1の実施形態と異なる場合、ループの回す順番が夫々異なる。
【0125】
送信順番がLRCPの場合には、図14においてlayerに関するループとresolution levelに関するループを入れ替えると良い。つまり、
変数r、Rmin、Rmaxをそれぞれ変数q、Lmin、Lmaxに
変数q、Lmin、Lmaxをそれぞれ変数r、Rmin、Rmaxに
変更すると良い。
【0126】
送信順番がRPCLの場合には、図14において、layerに関するループとpositionに関するループを入れ替えると良い。つまり、
変数q、Lmin、Lmaxをそれぞれ変数p、Pmin、Pmaxに
変数p、Pmin、Pmaxをそれぞれ変数q、Lmin、Lmaxに
変更すると良い。
【0127】
送信順番がPCRLの場合には、同様に、図14において
変数r、Rmin、Rmaxをそれぞれ変数p、Pmin、Pmaxに
変数q、Lmin、Lmaxをそれぞれ変数c、Cmin、Cmaxに
変数c、Cmin、Cmaxをそれぞれ変数r、Rmin、Rmaxに
変数p、Pmin、Pmaxをそれぞれ変数q、Lmin、Lmaxに
変更すればよい。
【0128】
送信順番がCPRLの場合には、
変数r、Rmin、Rmaxをそれぞれ変数c、Cmin、Cmaxに
変数q、Lmin、Lmaxをそれぞれ変数p、Pmin、Pmaxに
変数c、Cmin、Cmaxをそれぞれ変数r、Rmin、Rmaxに
変数p、Pmin、Pmaxをそれぞれ変数q、Lmin、Lmaxに
変更すればよい。
【0129】
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0130】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0131】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0132】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【0133】
【発明の効果】
以上の説明により、本発明によって、画像の符号化データの断片的なデータを要求する装置に、この装置が使用するプログレッションオーダに適した順序でデータを供給し、この装置がこのデータをデコードする時間を短くすることができる。
【図面の簡単な説明】
【図1】PC(パーソナルコンピュータ)やワークステーションなどにより構成される、本発明の第1の実施形態に係る画像処理装置の基本構成を示すブロック図である。
【図2】図1に示した画像処理装置を含むシステムの概要を示す図である。
【図3】Layer−resolution level−component−position progression(以下、LRCPと記す)に従ったJPEG2000のビットストリームの構成を示す図である。
【図4】解像度とResolution番号との関係を示す図である。
【図5】パケット単位でのリクエスト及びレスポンスの概念図である。
【図6】(a)はprecinct data−binと呼ばれるJPEG2000のパケットデータの塊の構成を示す図、(b)は(a)に示すprecinct data−binを用いて作成されたJPIP response dataの構成を示す図である。
【図7】本発明の第1の実施形態に係る画像処理装置が、送信要求のあった装置に対してJPIP response dataを作成し、送信する為のメインの処理のフローチャートである。
【図8】サーバ装置に所望の画像を得るために必要な画像の符号化データを要求するクライアント端末装置が行う処理のフローチャートである。
【図9】本発明の第1の実施形態に係るエンコード条件の符号化データの概略構成を示す図である。
【図10】各解像度レベル(Resolution Level)における画像の解像度、及び各画像におけるタイルの番号を示す図である。
【図11】ステップS806における処理、即ち、クライアント端末装置が受信したメインヘッダ、及び各パケットのデータをキャッシュデータとしてキャッシュする処理のフローチャートである。
【図12】CODマーカの構成を示す図である。
【図13】クライアント端末装置側で使用するプログレッションオーダに従って、予め各パケットを並び替えてレスポンスデータを作成する処理(上記ステップS704)における処理の詳細を示すフローチャートである。
【図14】ステップS1309における処理、即ち、タイル番号がTA[X]であるタイルを構成するパケットのデータの管理情報を取得する処理の詳細を示すフローチャートである。
【図15】ステップS1310における処理、即ちクライアント端末装置に送信するレスポンスデータを作成する処理の詳細を示すフローチャートである。[0001]
BACKGROUND OF THE INVENTION
The present invention retains encoded data of an image divided in tile units composed of a plurality of logical units, and the encoded data of an image in which the format of the encoded data can be set in a plurality of types of logical units. In addition, the present invention relates to a technique for transmitting data in a logical unit corresponding to the request in the tile according to the request from the external device to the external device.
[0002]
[Prior art]
On the Internet, a WWW server is accessed using a Web browser that operates on a client terminal device, and document data, image data, and the like are browsed on the client terminal device side through the Web browser. This WWW server holds information in HTML that describes information to be disclosed, which is called a home page, and the Web browser on the client terminal device side interprets it and displays it on the display screen of the display device of the client terminal device. To do. The Web browser on the client terminal device side can obtain necessary information by following the link destination indicated by the link portion when the link portion in the home page displayed on the display device is instructed by the user.
[0003]
Furthermore, as a method for downloading a file managed by the server, there is a method called File Transfer Protocol (hereinafter abbreviated as FTP). FTP is a mechanism for transferring files on a server to a client terminal device at once through a network.
[0004]
Alternatively, Flashpix / IIP is a protocol for accessing and displaying image data files in a fragmentary manner. This IIP (Internet Imaging Protocol) is an optimal protocol for an image data file format called Flashpix, and the unit of partial access of image data is performed in units of Flashpix tiles. Several techniques for using this IIP protocol have been disclosed (see, for example, Patent Document 1).
[0005]
In any of these protocols, data transmitted from the server is independent code data. Therefore, it is not necessary on the server side to return in consideration of the order of transmission data.
[0006]
As a protocol for fragmentally accessing and displaying a file encoded according to JPEG2000, JPEG2000 image coding system-Part 9: Interactivity tools, APIs and protocols (hereinafter referred to as JPIP) is being studied. When JPEG2000 image data is transmitted to the client terminal device using such a protocol, in order for the client terminal device to decode the transmitted image data, the received fragmented encoded data is stored in one piece. Need to cache to file. This is because the encoded data of each scalability of JPEG2000 is difference data from the scalability data one level lower than the scalability.
[0007]
A client requesting data using JPIP can make the following two types of requests for a response data return method.
[0008]
1) fullwindow: The order of sending the response data is left to the server.
2) Progressive: Since part of the requested data may be reduced, it is required to return it with scalability in the image quality direction (layer progression order).
Therefore, if the client wants to receive all of the requested data without fail, the server will send the request according to the server implementation policy without considering the processing on the client side in order to satisfy the above-mentioned progressive request. Was.
[0009]
[Patent Document 1]
JP2002-49514
[0010]
[Problems to be solved by the invention]
As described above, conventionally, the server returns JPEG2000 fragmentary data without considering the order of the transmission data. Therefore, depending on the received data management method on the client terminal side, it is necessary to rearrange them. .
[0011]
If the image display application used on the client terminal device uses scalability in the resolution direction, and if the received data is read out in the order in accordance with the JPEG2000 bitstream syntax at the time of decoding, it is received It is necessary to rearrange and manage the data so that it is suitable for display using resolution scalability, or to read the data while rearranging the data.
[0012]
In this way, rearranging when managing received data increases the load on the client terminal device side when processing the received data, and there is a problem that a long processing time is required for each communication with the server. In addition, when reading data for decoding, when reading while reordering the data in the decoding order, even when communication does not occur, every time an image is displayed using already stored data, There is a problem that random access to stored data frequently occurs and time until decoding becomes long.
[0013]
The present invention has been made in view of the above problems, and supplies data to an apparatus that requests fragmentary data of encoded data of an image in an order suitable for the progression order used by the apparatus. The purpose is to shorten the time for the device to decode this data.
[0014]
[Means for Solving the Problems]
In order to achieve the object of the present invention, for example, an image processing method of the present invention comprises the following arrangement.
[0015]
That is, the encoded data of the image divided in tile units composed of a plurality of logical units, and the encoded data of the image in which the format of the encoded data can be plural kinds of arrangement order of the logical units, An image processing method performed by an image processing apparatus that transmits data in a logical unit according to a request in a tile according to a request from an external apparatus to the external apparatus,
A history holding step of recording information about data transmitted to the external device in the past as a history and holding the history in a predetermined memory;
When a transmission request for logical unit data in a tile necessary for obtaining a desired image among encoded data of images to be stored is received from the external device, the history stored in the history storing step is stored. A transmission order determining step of determining the type of progression order used on the external device side by reference, and determining the transmission order of data in logical units in each tile to be transmitted to the external device according to the determination result; ,
A transmission step of transmitting logical unit data in the tile according to the transmission request to the external device according to the transmission order determined in the transmission order determination step;
It is characterized by providing.
[0016]
In order to achieve the object of the present invention, for example, an image processing method of the present invention comprises the following arrangement.
[0017]
That is, an image processing method performed by the image processing apparatus,
From an external device that holds encoded data of an image that is divided into tile units composed of a plurality of logical units and that can be used in a plurality of types in which the format of the encoded data is arranged in logical units. A receiving step of receiving data of a logical unit necessary for obtaining a desired image, and header data including information indicating a progression order at the time of decoding the logical data;
An update step of updating the information indicating the progression order in the header to information indicating the progression order used on the image processing apparatus side;
A management information creating step for creating management information for managing information related to logical unit data received in the receiving step in an order according to a progression order used on the image processing apparatus side;
It is characterized by providing.
[0018]
In order to achieve the object of the present invention, for example, an image processing apparatus of the present invention comprises the following arrangement.
[0019]
That is, the encoded data of the image divided in tile units composed of a plurality of logical units, and the encoded data of the image in which the format of the encoded data can be plural kinds of arrangement order of the logical units, An image processing apparatus that transmits data in logical units according to a request in a tile according to a request from an external apparatus to the external apparatus,
History holding means for recording and holding information about data transmitted to the external device in the past as history, and
Refers to the history held by the history holding means when a transmission request for logical unit data in a tile necessary for obtaining a desired image among the encoded data of the held image is received from the external device. The transmission order determining means for determining the type of progression order used on the external device side, and determining the transmission order of logical unit data in each tile to be transmitted to the external device according to the determination result;
Transmitting means for transmitting logical unit data in the tile corresponding to the transmission request to the external device in accordance with the transmission order determined by the transmission order determining means;
It is characterized by providing.
[0020]
In order to achieve the object of the present invention, for example, an image processing apparatus of the present invention comprises the following arrangement.
[0021]
That is, an image processing apparatus,
From an external device that holds encoded data of an image that is divided into tile units composed of a plurality of logical units and that can be used in a plurality of types in which the format of the encoded data is arranged in logical units. Receiving means for receiving data of a logical unit necessary for obtaining a desired image, and header data including information indicating a progression order when the logical data is decoded;
Updating means for updating the information indicating the progression order in the header to information indicating the progression order used on the image processing apparatus side;
Management information creating means for creating management information for managing information related to logical unit data received by the receiving means in an order according to a progression order used on the image processing apparatus side;
It is characterized by providing.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.
[0023]
[First Embodiment]
FIG. 1 is a block diagram illustrating a basic configuration of an image processing apparatus according to the present embodiment, which includes a PC (personal computer), a workstation, and the like.
[0024]
The CPU 101 controls the entire apparatus using programs and data loaded in the primary storage memory 102 and controls the operation of each unit described later.
[0025]
The primary storage memory 102 is a main storage device represented by a RAM, and includes an area for temporarily storing programs and data loaded from the secondary storage memory 103, and is used by the CPU 101 to perform various processes. An area is provided.
[0026]
The secondary storage memory 103 is an information storage device having a large storage capacity represented by a hard disk drive, and stores an OS (Operating System) and programs and data for the CPU 101 to execute each process described later. The requested program and data are output (loaded) to the primary storage memory 102 under the control of the CPU 101.
[0027]
The input device 104 is an instruction input device represented by, for example, a mouse or a keyboard. The input device 104 allows the user of this apparatus to input various instructions to the CPU 101.
[0028]
The output device 105 is an apparatus typified by a display or a printer, for example, and can output an image processed by the apparatus in various forms such as display and printout.
[0029]
The network interface 106 functions as an I / F in order to perform data communication with an external device. Reference numeral 107 denotes a bus connecting the above-described units. The basic configuration of the image processing apparatus according to the present embodiment is the configuration shown in FIG. 1 for the following description, but other configurations can be applied and are limited to the configuration shown in FIG. is not.
[0030]
FIG. 2 is a diagram showing an outline of a system including the image processing apparatus. Reference numerals 201 and 202 denote client terminal apparatuses, which can perform various data communications with the server apparatus 204 as the image processing apparatus via the network 203.
[0031]
A network 203 includes a wired network such as the Internet and a LAN, and a wireless network.
[0032]
A server device 204 can perform data communication with the client terminal devices 201 and 202 via the network 203 as described above. For example, when the client terminal device 201 or the client terminal device 202 requests a desired image. In this case, data corresponding to the amount requested from the storage device 205 (corresponding to the secondary storage memory 103) that stores a large amount of encoded image data is returned via the network 203. The storage device 205 corresponds to, for example, a hard disk drive device or a device that reads a program or data from a storage medium such as a CD-ROM or a DVD-ROM.
[0033]
In the present embodiment, it is assumed that the storage device 205 stores a plurality of pieces of image data encoded by an encoding method according to JPEG2000. Accordingly, the client terminal devices 201 and 202 request the server device 204 only for the necessary amount of encoded data necessary for obtaining the desired image from among the encoded data stored in the storage device 205. To do.
[0034]
Hereinafter, a process performed by the server apparatus 204 to transmit encoded data of an image requested from the client terminal apparatus to the client terminal apparatus will be described. In order for the client terminal device to download the image stored in the storage device 205, it is necessary to access the server device 204 using a Web browser. Upon receiving this access, the server device 204 presents some or all of the images stored in the storage device 205 to the client terminal device in, for example, a thumbnail format. As a result, these images are displayed on the Web browser.
[0035]
When the user of the client terminal device designates a desired image using an input device such as a mouse or a keyboard from the image group displayed on the Web browser, the client terminal device responds to conditions (screen size, display form, etc.). According to the image size and resolution, a request for transmitting fragmented data in the desired image data is transmitted to the server device 204. Since the server device 204 transmits fragmented data corresponding to this request to the client terminal device, the client terminal device receives this using the JPIP mechanism and caches it in the buffer.
[0036]
When the received image is displayed, a bit stream conforming to the JPEG 2000 syntax is created from the cached data, and then the bit stream is decoded and displayed.
[0037]
Next, a general bitstream according to JPEG2000 will be described. FIG. 3 is a diagram showing the configuration of a JPEG 2000 bit stream according to Layer-resolution level-component-position progression (hereinafter referred to as LRCP). The JPEG 2000 bit stream includes a main header (Main Header), a tile header (Tile Header), and data (Data), and image encoded data is recorded in this data portion. In addition, the tile header divides the compression encoding source image into rectangles (tiles) of a predetermined size, and generates compression encoded data of each tile. Is to be created. Since the main header and the tile header are based on a known technique, a description thereof is omitted here.
[0038]
In the case of conforming to LRCP, encoded image data (portion indicated by “Data” in the figure) has a configuration in which data is arranged in the order of Layer / Resolution / Component / Position. Such a configuration is called a progression order (progression order). Further, the position described here is a precinct in JPEG2000 encoded data.
[0039]
JPEG2000 encoded data can be roughly divided into data for each layer. Each Layer data is encoded data of each bit plane by publicly known bit plane encoding, and the MSB side bit plane (Layer 1) to the LSB bit plane (Layer L) are arranged in order. The Layer number corresponds to the S / N ratio of the restored image with respect to the original image. The smaller the Layer number, the worse (lower) the S / N ratio. That is, in the JPEG 2000 data shown in FIG. 3, the Layer data is arranged in the order of the poor S / N.
[0040]
Further, each Layer data is composed of each Resolution data. The data of each Resolution is arranged in the order according to the Resolution number corresponding to the resolution (image size). The relationship between resolution and Resolution number is shown in FIG. The Resolution number of the image with the smallest resolution is set to 0, and the width and height of the image double each time the Resolution number increases by one. In each Layer, data is stored in ascending order of the Resolution number.
[0041]
Returning to FIG. 3, each Resolution data is composed of each Component data. Each component data corresponds to each color data of an image. For example, when an image is composed of RGB data, component 0 data is R component data, component 1 data is G component data, and component 2 Is the data of the B component, that is, the number of components coincides with the number of dimensions of the color space of the image.
[0042]
In addition, each component data is recorded with data at each spatial position (Position data) in the compression encoding source image in order, and each Position data has a number (position number) in the spatial order. (For example, the upper left corner of the image is 0, and the number increases one by one in the right direction of the image. When the right end is reached, the number decreases by one, and from the left end, the number increases in the right direction of the image).
[0043]
The maximum values of Resolution number, Layer number, Component number, and Position number in one JPEG2000 file are set in advance by the encoder, and the compression encoding source image is encoded according to the parameters. It is recorded in the header. Each packet is composed of a packet header part that manages information of a code block (code-block) stored in the packet, and encoded data of each code block. . In the figure, one Position data corresponds to a packet. This “packet” is a kind of logical unit.
[0044]
If the JPEG2000 file having such a structure is held in the server device, the server device can supply only encoded data corresponding to the resolution requested by the client terminal device to the client terminal device. In this embodiment, since data is transmitted and received by JPIP, a unit of data to be supplied may be a unit of JPEG 2000 tile or a unit of JPEG 2000 packet. In the present embodiment, a packet unit is assumed as a data unit received by the client terminal device from the server device.
[0045]
FIG. 5 shows a conceptual diagram of requests and responses in units of packets. In the figure, a request and a response between the server device 503 and the client terminal device 501 are shown.
[0046]
In the figure, the image is divided into tiles, and the encoded data of each tile (each data from Tile 0 to Tile N in the figure) is stored in the storage device 502 connected to the server device 503 as a JPEG 2000 bit stream 504. When the client terminal device 501 requests encoded data of a desired tile, a desired resolution, a desired layer, a desired component, and a desired spatial position, the server device 503 and the client terminal device 501 shows communication performed with 501.
[0047]
Here, for example, the client terminal device 501 stores encoded data having a tile number “1”, a resolution number “0”, a layer number “1”, a component number “0”, and a position number “0”. When making a request to the device 503, the server device 503 analyzes the JPEG2000 bit stream 504 stored in the storage device 502 and analyzes the portion corresponding to the request (requested tile number, resolution number, layer number, component number, position). A portion corresponding to the number), that is, packet 0 of tile number 1 is extracted as response data and returned to client terminal device 501.
[0048]
As described above, in this embodiment, JPIP is used for transmission / reception of image data between the server device and the client terminal device, and encoded data of the image is transmitted from the server device to the client terminal device in packet units.
[0049]
Next, the structure of response data when transmitting and receiving data using JPIP will be described. FIG. 6A is a diagram illustrating a configuration of a JPEG2000 packet data block called precinct data-bin. In JPIP, as indicated by 601, response data is created based on a block of JPEG2000 packet data called precinct data-bin. The precinct data-bin is a data block in which the resolution level rn of the precinct pn in the tile tn and the packet of all the layers composing the component number cn are arranged in ascending order of the layer numbers.
[0050]
JPIP response data is created using this precinct data-bin. FIG. 6B is a diagram showing a configuration of JPIP response data created using the precinct data-bin shown in FIG. JPIP response data is composed of a message header 608 and a message body 609. In the message body 609, one or a plurality of packets (Packet (tn, rn, cn, pn, q) shown in FIG. 6A) extracted from the precinct data-bin 601 depending on the requested tile and resolution. Data is entered as response data.
[0051]
The message header 608 is composed of areas for storing four parameters. The parameter stored in the first area 604 is an identifier indicating that the data contained in the message body 609 is precinct data-bin. The parameter stored in the second area 605 is a precinct data-bin ID (the precinct data-bin shown in FIG. 6A) to which the data of the packet in the message body 609 belonged (here, precinct data-bin ID). PrID). This PrID is uniquely determined from the tile number tn, the resolution level number rn, the component number cn, and the precinct number pn, and can be obtained by the following equation.
[0052]
PrID (tn, rn, cn, pn) = tn + (cn + s × (number of components)) × tile number
However,
s = pn + tn × (number of precincts per tile in resolution level rn) + (total number of precincts of tile tr from resolution level 0 to (rn−1))
The parameter stored in the third area 606 indicates how much the data of each packet in the message body 609 (in the case of one, its own data) is offset from the head of the precinct data-bin. Is an offset value PrOffset (see FIG. 6A). The parameter stored in the fourth area 607 is response data, that is, the byte length ResLen [byte] of the message body 609 (see FIG. 6B).
[0053]
Next, as a server apparatus, the image processing apparatus according to the present embodiment is such a JPIP response data (hereinafter, simply referred to as response data) for an apparatus that has requested transmission (hereinafter referred to as a client terminal apparatus). A process of creating and transmitting a message will be described. Hereinafter, the image processing apparatus according to the present embodiment is referred to as a server apparatus because of its function.
[0054]
FIG. 7 is a flowchart of main processing for the image processing apparatus according to the present embodiment to create and send JPIP response data to a device (client terminal device) that has requested transmission. The program according to the flowchart of FIG. 3 is stored in the secondary storage memory 103 and is loaded into the primary storage memory 102 under the control of the CPU 101. The CPU 101 executes the program, and the image processing apparatus will be described below. Will be processed.
[0055]
First, the server apparatus requests data from the client terminal apparatus (data indicating which area of which image encoded data is requested and data indicating the resolution of the image when the encoded image data is decoded). Is received (step S701). When the request data is received, the process proceeds to step S702, and the request data is stored (held) in the primary storage memory 102 (step S702). Next, the request data stored in the primary storage memory 102 is analyzed, and the encoded data of the image to be returned to the client terminal device is specified (step S703). That is, the code of the image having the resolution level number, the layer number, the component number, and the position number according to the analysis result, and holding the data of the packet included in the area in the image according to the analysis result in the secondary storage memory 103 It is specified from the data of each packet constituting the digitized data.
[0056]
Next, the data of the specified packet is extracted from the encoded data of the image held in the secondary storage memory 103, converted to data conforming to the JPIP response syntax, and response data is created (step S704).
[0057]
In the present embodiment, when the created response data is returned to the client terminal device, the client terminal device follows the progression order used on the client terminal device side so that the data of each packet included in the response data can be easily decoded. These packets are rearranged in advance. As a result, the client terminal device can generate the requested image by decoding the packets included in the response data in the same order without rearranging the packets according to the progression order to be used. In addition to being able to shorten the time, it is possible to shorten the time until image display is performed.
[0058]
The details of the process of rearranging each packet included in the response data in advance according to the progression order used on the client terminal device side (step S704) will be described later. Returning to FIG. 7, when response data is created, this response data is transmitted to the client terminal device (step S705).
[0059]
Next, processing performed by the client terminal device that requests encoded data of an image necessary for obtaining a desired image from the server device will be described with reference to FIG. 8 showing a flowchart of the processing. The program according to the flowchart of FIG. 6 is stored in a memory (not shown) in the client terminal device, and this client terminal device is shown in FIG. 8 by being executed by a CPU (not shown) of the client terminal device. The processing according to the flowchart can be performed.
[0060]
First, an image display request from the user is acquired (step S801). That is, information such as what part of the entire image is desired to be displayed and what size is desired to be displayed is acquired. Note that the request for encoded image data is not limited to “display”, and it is obvious that the process shown in FIG. 8 can be applied to a case where the request is for other uses such as printing. It is.
[0061]
Then, referring to the contents of the display request, it is determined whether or not the image indicated by the display request can be obtained only with the encoded data (cache data) of the image held in advance by the client terminal device (step) S802). This is, for example, encoded data in accordance with JPEG 2000 as encoded image data in the present embodiment, so that more sub-band encoded data is required to obtain an image with better resolution. Therefore, if an image display request that can be expressed by a smaller number of subbands than the number of subbands held in advance is used, the request can be met using only the stored encoded data.
[0062]
Therefore, if it is possible to respond to the display request with only the cache data, the process proceeds to step S807, and only the portion of the cache data necessary for responding to the display request is decoded, and the image that is the decoding result is rejected. The image is displayed on the illustrated display device (step S807).
[0063]
On the other hand, if it is not possible to respond to the display request with only the cache data, that is, if the encoded data of the deficient image should be requested from the server device, the process proceeds to step S803, and the image corresponding to this deficient image is obtained. Request data, which is data for requesting the encoded data from the server device, is created (step S803). As described above, the “encoded data of the image corresponding to the shortage” can be uniquely obtained from the display request content acquired in step S801 and the cache data. Then, the request data is transmitted to the server device (step S804).
[0064]
Next, when it is detected that encoded image data as response data corresponding to the request data is transmitted from the server device (step S805), the process proceeds to step S806, and the received response data is cached. (Step S806). Details of the cache processing will be described later. Then, the cache data cached previously and the cache data received this time are decoded, and an image as a decoding result is displayed on a display device (not shown) (step S807).
[0065]
Here, in the present embodiment, the encoding conditions of the encoded data of the image held in the secondary storage memory 103 on the server device side are as follows.
[0066]
Image size at maximum resolution: 2048 x 2048 [pixel]
Tile division: Divide into 8 × 8 = 64 tiles
Number of resolution levels: 4 (ie resolution level 0-3)
Number of Layers: 3 (ie layer 0-2)
Number of Position: 1 position / 1 tile
Number of components: 3 (ie component 0-2)
Progression Order: Layer-Resolution-Component-Position
FIG. 9 is a diagram showing a schematic configuration of encoded data under such an encoding condition according to this embodiment. FIG. 10 is a diagram showing image resolution at each resolution level (Resolution Level) and tile numbers in each image. As shown in FIG. 9, the encoded data is composed of a main header followed by encoded data of each tile. As shown in FIG. 10, numbers assigned to the tiles are sequentially assigned from the upper left corner of the image. Therefore, the encoded data of the tiles shown in FIG. 9 are arranged in the order of the tile numbers.
[0067]
Here, it is assumed that the image display application used on the client terminal device side mainly uses scalability in the resolution direction, and further, the entire image is currently displayed with resolution level 1 and layer 2 by this application. (It is assumed that this image is an image obtained as a result of decoding the encoded data transmitted from the server device for the first time.) Next, the central portion of the image indicated by the area 1001 shown in FIG. 10 is set to resolution level 2, layer. Suppose that the server device is requested for data necessary for display in step 2. As a result, the packet data that the server device should return to the client terminal device is:
Data of packets belonging to Tile numbers: 18 to 21, 26 to 29, 34 to 37, 42 to 45,
Resolution level number: 2
Layer number: 0-2
Position number: 0
Component number: 0 to 2
Packet data.
[0068]
Furthermore, for the sake of simplicity, it is assumed that data other than the main header and the packet is not written in the cache file on the client terminal device side that stores the received data.
[0069]
Based on the above settings, the process in step S806, that is, the process of caching the main header received by the client terminal device and the data of each packet as cache data will be described with reference to FIG. 11 which is a flowchart of the process. To do.
[0070]
First, the received response data is analyzed, and it is determined whether or not the data to be processed is a main header (step S1101). If the data to be processed is the main header, the process proceeds to step S1102, and the information included in the main header, “Progression order of encoded data included in this response data” is acquired. The information is updated to a progression order handled by the client terminal device (a progression order handled by the image display application) (step S1102).
Specifically, the progression order is determined by reading the value of the field 1201 of the sixth byte of the COD marker (see FIG. 12) included in the main header. The correspondence between the value of field 1201 and each progression order is
Figure 2005012685
It has become. FIG. 12 is a diagram showing the configuration of the COD marker. Assuming that the COD marker in the main header transmitted from the server device is the one shown in the figure, the value in the field 1201 is 0x00, that is, the progression order of the data of the packet received following this main header is LRCP. is there. On the other hand, as described above, since the progression order handled by the client terminal device (progression order handled by the image display application) is RLCP, the value of this field 1201 is rewritten to 0x01 corresponding to RLCP.
[0071]
Next, a packet data management table for writing information for managing packet data is prepared in the order of the progression order updated in step S1102 (step S1103). Information to be written in the packet data management table includes flag information indicating whether or not the data of each packet has been cached, position information of each packet in the encoded data including all the packet data and the main header, and each packet. There are data lengths.
[0072]
Next, the received main header data is written into the cache (step S1104). Then, when the process of receiving the response data ends, that is, when the reception of all the data constituting the response data (main header and data of each packet) is completed, the process shown in FIG. On the other hand, if it has not been completed, the process returns to step S1101, and the subsequent processes are repeated.
[0073]
If the data to be processed is not the main header in step S1101, the process proceeds to step S1105, and it is further determined whether or not the data to be processed is packet data (step S1105). If it is packet data, the process proceeds to step S1106, and the packet data is written to the cache (step S1106). Information for managing the cached packet is registered in the packet data management table (step S1107), and the process proceeds to step S1108.
[0074]
FIG. 13 is a flowchart showing details of the process in the process of creating response data by rearranging each packet in advance (step S704) according to the progression order used on the client terminal device side. Will be described.
[0075]
As described above, the server device stores encoded data of a plurality of images in the secondary storage memory 103. When the request data from the client terminal device is received, the server device analyzes the encoded data and determines which image encoded data. First, it is identified whether the request is made, and then the main header of the coded data of the identified image is analyzed to obtain a progression order (step S1301). As to the acquisition method, the progression order is determined by reading the value of the 6th byte field of the COD marker included in the main header, as in the processing performed in step S1102.
[0076]
Here, the server device stores the contents of data transmission / reception with the client terminal device in the past data communication (what data was transmitted to / from which client terminal device, etc.) in the secondary storage memory 103 as history information. I manage. Also in this embodiment, since the client terminal device first requests the server device for data for displaying the resolution level 1 image in the layer 2 that has the highest image quality, naturally the past data with the client terminal device is also requested. The communication contents are managed in the secondary storage memory 103. Therefore, this history is loaded into the primary storage memory 102 and acquired (step S1302). As described above, since a technique for referring to a history of past communication with a target apparatus that is currently performing communication is well known, a description thereof will be omitted.
[0077]
The first request for the image requested this time is specified by analyzing the history information, and it is checked whether or not layer 0 data is requested first (step S1303). If layer 0 data is requested for the first time, the process advances to step S1304 to determine that this client terminal device uses scalability in the image quality direction, and the progression order used on the client terminal device side is determined as LRCP. (Step S1304).
[0078]
On the other hand, if layer 0 data is not initially requested, the process advances to step S1305 to determine that the client terminal device is less likely to use scalability in the image quality direction and is used on the client terminal device side. The progression order is determined as RLCP (step S1305).
[0079]
In the case of the present embodiment, since the data that the client terminal device first requested to the server device is data for displaying the resolution level 1 image in the layer 2 that is the highest image quality, the client terminal device uses scalability in the image quality direction. Therefore, the progression order used on the client terminal side is determined as RLCP. Therefore, in such a case, the server apparatus determines to transmit the data of each packet in the RLCP order.
[0080]
Next, the request data stored in step S702 is referred to, and the tile number TN of the image to be returned in response to this request is acquired (step S1306). In the present embodiment, since 16 tiles included in the area 1001 shown in FIG. 10 are returned, TN = 16. The tile numbers of the 16 tiles are stored in the array TA in ascending order. In the case of this embodiment, it is as follows.
[0081]
TA [0] = 18, TA [1] = 19, TA [2] = 20, TA [3] = 21 TA [4] = 26, TA [5] = 27, TA [6] = 28, TA [7 ] = 29 TA [8] = 34, TA [9] = 35, TA [10] = 36, TA [11] = 37
TA [12] = 42, TA [13] = 43, TA [14] = 44, TA [15] = 45
Next, since the process of cutting out the data of each tile to be returned from the requested encoded image data and including it in the response data is performed, a variable for counting each tile to be cut out is necessary. Therefore, this variable is set to X and initialized to 0 (step S1308). The processing from step S1309 to step S1311 is performed until X = TN, that is, all tiles to be returned.
[0082]
First, the management information of the data of the packet that forms the tile whose tile number is TA [X] is acquired (step S1309). The details of the processing in step S1309 and this management information will be described later, but in brief, it is information for specifying each packet constituting one tile. Therefore, using this management information, only necessary packet data can be extracted from the encoded image data.
[0083]
Therefore, using this management information, the packet data necessary to satisfy the conditions requested by the request data (requested image size, resolution, etc.) is extracted, and response data is created by connecting the extracted packet data. (Step S1310). Details of the processing in step S1310 will be described later. Then, the variable X is incremented by one (step S1311), and if X <TN (step S1312), the processing after step S1309 is repeated.
[0084]
Next, FIG. 14 is a flowchart showing the details of the processing in step S1309, that is, the details of the processing for acquiring the management information of the data of the packets constituting the tile whose tile number is TA [X]. The description will be given with reference. In this embodiment, since the progression order used on the client terminal device side, that is, the data transmission order is RLCP, the flowchart shown in FIG. 14 corresponds to that.
[0085]
First, the minimum value and the maximum value of the “position, component, layer, resolution level” numbers of the encoded data requested from the server device indicated by the request data obtained by the analysis processing in step S703 are respectively set to Pmin, Pmax, Substitute for Cmin, Cmax, Lmin, Lmax, Rmin, Rmax (step S1401). In this embodiment, the values of the variables are (Pmin, Pmax) = (0, 0), (Cmin, Cmax) = (0, 2), (Lmin, Lmax) = (0, 2), (Rmin, Rmax). = (2, 2).
[0086]
Next, a table B_mng for storing management information of data of each packet transmitted to the client terminal device is created on the primary storage memory 102 and initialized (step S1402). The management information stored in the table B_mng is composed of the following four items.
[0087]
JPIP precinct data-bin ID (B_mng [bx] .id)
-Offset in JPIP precinct data-bin (B_mng [bx] .offset)
Packet sequence number (B_mng [bx] .number)
-The sequence number of the packet of layer 0 belonging to the same precinct data-bin ID (B_mng [bx] .same)
Since these four pieces of information are registered in the table B_mng as management information for one packet, this table B_mng is set on the primary storage memory 102 by the number of packets to be returned. Since the table B_mng is set for each packet to be returned in this way, in step S1402, a variable bx for counting each table B_mng is further initialized to zero.
[0088]
When these four pieces of information are stored as 4-byte data, the size of the table B_mng can be obtained as follows.
[0089]
4 × 4 × (number of reply packets per tile) = 4 × 4 × (Pmax−Pmin + 1) × (Cmax−Cmin + 1) × (Lmax−Lmin + 1) × (Rmax−Rmin + 1) [bytes]
Therefore, in this embodiment, the size of the table B_mng is 4 × 4 × (0-0 + 1) × (2-0 + 1) × (2-0 + 1) × (2-2 + 1) = 144 [bytes].
[0090]
Also, regarding the initialization of the table B_mng in step S1402, all four pieces of information may be initialized to 0, but B_mng [bx]. It is sufficient if it is initialized by substituting 0 into offset.
[0091]
Next, initialization is performed by substituting the value Rmin for the resolution level count variable r (step S1403), initialization by substituting the value Lmin for the count variable q for layer (step S1404), and the component count. Initialization is performed by substituting Cmin for the variable c (step S1405), and initialization is performed by substituting Pmin for the count variable p for position (step S1407). Accordingly, in this embodiment, the variables r, q, c, and p are initialized as r = 2, q = 0, c = 0, and p = 0, respectively. The sequence of processing from step S1403 to step S1406 depends on the transmission data order, and is according to RLCP in this embodiment.
[0092]
Next, the precinct data-bin ID (represented as PrID (represented as TA [x], r, c, p)), which is an ID for the precinct data-bin specified by the initialized r, c, p, is obtained. B_mng [bx]. Save to id (step S1407). This can be obtained by the following equation.
[0093]
PrID (TA [X], r, c, p) = TA [X] + (c + s × (number of components)) × tile number
s = p + TA [X] × (number of precincts per tile in resolution level r) + (total number of precincts of TA [X] from resolution level 0 to (r−1))
In the case of this embodiment, it can obtain | require by following Formula.
[0094]
PrID (TA [X], r, c, p) = TA [X] + (c + (p + TA [X] + r × 1) × 3) × 64
For example, for TA [0] = 18, B_mng [0]. In id, a value of PrID (18, 2, 0, 0) = 18 + (0+ (0 + 18 + 2 × 1) × 3 × 64 = 3858 is stored.
[0095]
Next, based on the progression order acquired in step S1301, the number packet sequence number (represented as Packet (TA [X], r, c, p, q)) indicating the order of each packet within the tile is calculated. B_mng [bx]. It is stored in the number (step S1408). In this embodiment, since the progression order is LRCP, it can be obtained by the following equation.
[0096]
Figure 2005012685
However,
Pnum = number of positions per 1 tile
Cnum = number of components
Rnum = resolution level number
For example, for TA [0] = 18, B_mng [0]. In the number, a value of Packet (18, 2, 0, 0, 0) = 0 + 0 + 2 × 3 + 0 × 4 × 3 = 6 is stored. Next, the packet sequence number with the smallest number among the packets having the same precinct data-bin ID is calculated, and B_mng [bx]. Saved in the same (step S1409). Taking the precinct data-bin 601 shown in FIG. 6 as an example, the processing in step S1409 will be described. As described above, the precinct data-bin ID is attached to data obtained by connecting a plurality of packets in the layer direction. The packet data included in the precinct data-bin 601 is for the same tile number, the same resolution level number, the same component number, and the same precinct number. Therefore, among them, the packet sequence number of the first packet is set to B_mng [bx]. Save to same.
[0097]
Therefore, in this embodiment, B_mng [bx]. Same can be obtained as follows.
[0098]
Figure 2005012685
For example, for TA [0] = 18, B_mng [0]. Same = Packet (18,2,0,0,0), so B_mng [bx]. In the name, B_mng [0]. The same value 6 as the number is stored.
[0099]
Then, the variable bx is incremented by one to obtain management information for the next packet (step S1410). Next, 1 is added to the count variable p for position (step S1411), and the value indicated by the variable p after addition is compared with the maximum value Pmax of the position number (step S1412). If p ≦ Pmax, the process returns to step S1407 to repeat the subsequent processes. On the other hand, if p> Pmax, the process advances to step S1413.
[0100]
In this embodiment, since Pmax = Pmin = 0, if a series of processing from step S1407 to step S1410 is performed once, p = 1> Pmax = 0, so the processing does not return to step S1407. Processing proceeds to step S1413.
[0101]
In step S1413, 1 is added to the count variable c for component (step S1413). Then, the value indicated by the variable c after the addition is compared with the maximum value Cmax of the component number (step S1414). If c ≦ Cmax, the process returns to step S1406 to repeat the subsequent processes. On the other hand, if c> Cmax, the process advances to step S1415.
[0102]
In this embodiment, since Cmax = 2, if the series of processing from step S1407 to step S1410 is performed three times, c = 3> Cmax = 2, and the process proceeds to step S1415.
[0103]
In step S1415, 1 is added to the count variable q for layer (step S1415). Then, the value indicated by the variable q after the addition is compared with the maximum value Lmax of the layer number (step S1416). If q ≦ Lmax, the process returns to step S1405 to repeat the subsequent processes. On the other hand, if q> Lmax, the process advances to step S1417.
[0104]
In this embodiment, since Lmax = 1, if the series of processing from step S1407 to step S1410 is performed twice, q = 2> Lmax = 1, and the process proceeds to step S1417.
[0105]
In step S1417, 1 is added to the variable r for resolution level (step S1417). Then, the value indicated by the variable r after the addition is compared with the maximum value Rmax of the resolution level number (step S1418). If r ≦ Rmax, the process returns to step S1404 to repeat the subsequent processes. On the other hand, if r> Rmax, this process ends.
[0106]
In this embodiment, since Rmin = Rmax = 2, if a series of processing from step S1407 to step S1410 is performed once, r = 3> Rmax = 2, and this processing ends.
[0107]
As described above, when the processing described with reference to FIG. 14 is completed, the management information is stored in the table B_mng in the transmission order for the packets transmitted to the client terminal device in the tile having the tile number TA [X]. Can do.
[0108]
Next, details of the process in step S1310, that is, the process of creating response data to be transmitted to the client terminal device will be described with reference to FIG. 15 which is a flowchart showing details of the process.
[0109]
First, in the packet constituting the tile whose tile number is TA [X], this packet (packet data and this packet) is set as a pointer so that the first packet, that is, the packet whose sequence number is 0 is processed as follows. (Including the header data for) is substituted (address) (step S1501).
[0110]
Next, the total number TaPn of transmission packets in the tile whose tile number is TA [X] is obtained (step S1502). This is obtained by using TaPn = (Pmax−Pmin + 1) × (Cmax−Cmin + 1) × (Rmax−Rmin + 1) × (Lmax−) using Pmin, Pmax, Cmin, Cmax, Rmin, Rmax, Lmin, and Lmax acquired in step S1401. Lmin + 1).
[0111]
Next, the table B_mng storing the management information for each transmission packet described with reference to FIG. 14 is acquired (step S1503). After obtaining this table B_mng, it may be stored in the secondary storage memory 103 and read to the primary storage memory 102 in this step, or may be stored in the primary storage memory 102 and processed in this step. It's okay.
[0112]
Next, a variable bx for counting the table B_mng for each packet is initialized to 0, and a variable px for counting the packet sequence number is initialized to 0 (step S1504). Here, the table B_mng is for each packet, and is further arranged in the order of transmission of each packet. Therefore, the variable bx is a counter corresponding to the table B_mng and also a variable corresponding to the packet transmission order number.
[0113]
Next, the data of the header of the packet indicated by the current pointer (in other words, the packet whose packet sequence number is px) is referred to, and the data length plen of this packet is acquired (step S1505). Since the number of the packet to be processed from now on is set to px, it is necessary to search for a packet having a packet sequence number of the same value as the value indicated by px among the transmission packets. Therefore, B_mng [bx]. It is determined whether or not the number value is the same as the value (packet sequence number) indicated by the variable px (step S1506).
[0114]
If both have the same value, the packet indicated by the current pointer is a transmission packet. Therefore, the data of the packet indicated by the current pointer is encoded from the encoded data stored in the secondary storage memory 103. 102 (step S1507), and B_mng [bx]. id and B_mng [bx]. A message header for transmission data (corresponding to 608 in FIG. 6) is created from the offset (step S1508). Then, the message header data created in step S1508 is added to the head of the packet data read in step S1507 to create response data (step S1509). Then, the variable bx is incremented by one (step S1510).
[0115]
Next, it is determined whether or not the value indicated by the variable bx is the same as the “number of transmission packets in which the tile number is TA [X]” indicated by the variable TaPn (step S1511). It is determined that response data including all transmission packets with the tile number TA [X] has been created, and this process ends.
[0116]
On the other hand, if the value indicated by the variable bx is different from the value indicated by the variable TaPn, it is determined that there is still a transmission packet that should be included in the response data, and the process proceeds to step S1515. And the storage position (address) including the header data for this packet is substituted (step S1515). The variable px is incremented by one, the process returns to step S1505, and the subsequent processes are repeated.
[0117]
On the other hand, in step S1506, B_mng [bx]. If the value of number is not the same as the value indicated by variable px (packet sequence number), the process proceeds to step S1512. For example, after processing for including a packet in response data (processing from step S1501 to step S1511), and processing for substituting the storage position (address) of the next packet in step S1515, the next response When the data of the packet to be included in the data is between a plurality of packet separations from the packet indicated by the pointer, B_mng [bx]. The value indicated by the number does not match the value indicated by the variable px.
[0118]
Therefore, in this case, in step S1512, the value indicated by the variable px is B_mng [bx]. It is determined whether or not it matches the value indicated by “same” (step S1512). That is, it is determined whether or not the packet to be included in the response data is the head packet of the precinct data-bin to which this packet belongs (step S1512). If it is not the top, the process proceeds to step S1515, and the process as described above is performed.
[0119]
On the other hand, if it is at the top, the process proceeds to step S1513, and B_mng [bx]. The value stored in the offset is added to the data length plen of the packet whose packet number is px, which is acquired in step S1505 (step S1513), and “B_mng [bx] .same is used as a prefix data-bin. Packet packet number of the packet positioned next to the packet of B_mng [bx] .same, that is, the packet of the layer one layer higher than the packet of B_mng [bx] .same (in this embodiment, the progression order is LRCP) Therefore, it can be obtained by adding R_num × C_num × P_num to the value indicated by B_mng [bx] .same) ”. Substituted in the same (step S1514). Thereby, B_mng [bx]. In the offset, an offset value from the head of the precinct data-bin of the bx-th transmission packet is finally stored.
[0120]
As described above, according to the present embodiment, the server device obtains the progression order used on the client terminal device side by referring to the history of data requested from the client terminal device, and this client terminal according to the obtained progression order. Since the arrangement of data to be transmitted to the device is changed, it is possible to reduce the load at the time of decoding given to the client terminal device that has received this, and as a result, the processing time in image output processing such as image display can be shortened. it can.
[0121]
Further, on the server device side, before actually cutting out the transmission data, by calculating the packet sequence number of the data to be transmitted and the sequence number of the packet belonging to the same precinct data-bin, the packet data is cut out in the order of the transmission data. Even when searching for packet data from the head of this tile, information necessary for the message header can be easily obtained, and unnecessary pointer movement can be reduced as much as possible. Thereby, the effect of shortening the response time of the server device can be obtained.
[0122]
[Second Embodiment]
In the first embodiment, the case where the progression order used on the client terminal device side is LRCP has been described. However, even if this is another progression order, the first embodiment can be basically changed by changing it accordingly. The same processing can be applied. Hereinafter, in the case where the progression order used on the client terminal device side is other than LRCP, only portions different from the processing of the first embodiment will be described.
[0123]
First, when the progression order used on the client terminal side is RLCP, RPCL, PCRL, CPRL, the difference is that an equation for obtaining the packet sequence number and B_mng [bx] .bx in step S1514 in FIG. This is an expression for updating the same, which is as follows.
[0124]
・ For RLCP
Packet (t, r, c, p, q) = p + c × Pnum + q × Cnum × Pnum + r × Lnum × Cnum × Pnum
B_mng [bx]. same ← B_mng [bx]. same + Cnum × Pnum
・ For RPCL
Packet (t, r, c, p, q) = q + c × Lnum + p × Cnum × Lnum + r × Pnum × Cnum × Lnum
B_mng [bx]. same ← B_mng [bx]. same + Cnum × Lnum
・ For PCRL
Packet (t, r, c, p, q) = q + r * Lnum + c * Rnum * Lnum + p * Cnum * Rnum * Lnum
B_mng [bx]. same ← B_mng [bx]. same + 1
・ For CPRL
Packet (t, r, c, p, q) = q + r × Lnum + p × Rnum × Lnum + c × Pnum × Rnum × Lnum
B_mng [bx]. same ← B_mng [bx]. same + 1
However,
Pnum = number of positions per 1 tile
Cnum = number of components
Rnum = resolution level number
Lnum = layer number
Furthermore, in the first embodiment, the transmission order is determined to be either RLCP or LRCP in step S1303, but other progression orders may be selected. For example, when the client first requests only Y component data for an image having a YCbCr component, the server side selects to send back in a CPRL progression order. When the return progression order selected by the server is different from that of the first embodiment, the turn order of the loops is different.
[0125]
When the transmission order is LRCP, the loop related to layer and the loop related to resolution level in FIG. That means
Variables r, Rmin, and Rmax are changed to variables q, Lmin, and Lmax, respectively.
Variables q, Lmin, and Lmax are changed to variables r, Rmin, and Rmax, respectively.
It is good to change.
[0126]
When the transmission order is RPCL, the loop related to layer and the loop related to position may be interchanged in FIG. That means
Variables q, Lmin, and Lmax are changed to variables p, Pmin, and Pmax, respectively.
Variables p, Pmin, and Pmax are changed to variables q, Lmin, and Lmax, respectively.
It is good to change.
[0127]
Similarly, when the transmission order is PCRL, in FIG.
Variables r, Rmin, and Rmax are changed to variables p, Pmin, and Pmax, respectively.
Variables q, Lmin, and Lmax are changed to variables c, Cmin, and Cmax, respectively.
Variables c, Cmin, and Cmax are changed to variables r, Rmin, and Rmax, respectively.
Variables p, Pmin, and Pmax are changed to variables q, Lmin, and Lmax, respectively.
Change it.
[0128]
If the transmission order is CPRL,
Variables r, Rmin, and Rmax are changed to variables c, Cmin, and Cmax, respectively.
Variables q, Lmin, and Lmax are changed to variables p, Pmin, and Pmax, respectively.
Variables c, Cmin, and Cmax are changed to variables r, Rmin, and Rmax, respectively.
Variables p, Pmin, and Pmax are changed to variables q, Lmin, and Lmax, respectively.
Change it.
[0129]
[Other Embodiments]
An object of the present invention is to supply a recording medium (or storage medium) that records software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and the computer of the system or apparatus (or CPU or MPU). Needless to say, this can also be achieved by reading and executing 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.
[0130]
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.
[0131]
Furthermore, 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 is based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion 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.
[0132]
When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.
[0133]
【The invention's effect】
As described above, according to the present invention, data is supplied to an apparatus that requests fragmentary data of encoded data of an image in an order suitable for the progression order used by the apparatus, and the apparatus decodes the data. Time can be shortened.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a basic configuration of an image processing apparatus according to a first embodiment of the present invention, which includes a PC (personal computer), a workstation, and the like.
FIG. 2 is a diagram showing an overview of a system including the image processing apparatus shown in FIG.
FIG. 3 is a diagram illustrating a configuration of a JPEG2000 bit stream according to Layer-resolution level-component-position progression (hereinafter referred to as LRCP).
FIG. 4 is a diagram illustrating a relationship between resolution and Resolution number.
FIG. 5 is a conceptual diagram of requests and responses in units of packets.
6A is a diagram showing a configuration of JPEG2000 packet data called precinct data-bin, and FIG. 6B is a configuration of JPIP response data created using the precinct data-bin shown in FIG. FIG.
FIG. 7 is a flowchart of main processing for the image processing apparatus according to the first embodiment of the present invention to create and transmit JPIP response data to an apparatus that has requested transmission.
FIG. 8 is a flowchart of processing performed by a client terminal device that requests encoded data of an image necessary for obtaining a desired image from a server device.
FIG. 9 is a diagram showing a schematic configuration of encoded data under an encoding condition according to the first embodiment of the present invention.
FIG. 10 is a diagram illustrating the resolution of an image at each resolution level (Resolution Level) and the tile number in each image.
FIG. 11 is a flowchart of the process in step S806, that is, a process of caching the main header received by the client terminal device and the data of each packet as cache data.
FIG. 12 is a diagram illustrating a configuration of a COD marker.
FIG. 13 is a flowchart showing details of a process in the process of creating response data by rearranging each packet in advance according to the progression order used on the client terminal device side (step S704).
FIG. 14 is a flowchart showing details of the processing in step S1309, that is, processing for acquiring management information on data of packets constituting a tile whose tile number is TA [X].
FIG. 15 is a flowchart showing details of the processing in step S1310, that is, processing for creating response data to be transmitted to the client terminal device.

Claims (10)

複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持し、外部装置からの要求に応じたタイル中の、当該要求に応じた論理単位のデータを前記外部装置に送信する画像処理装置が行う画像処理方法であって、
過去に前記外部装置に送信したデータに関する情報を履歴として記録し、所定のメモリに保持させる履歴保持工程と、
保持する画像の符号化データのうち所望の画像を得るために必要なタイル中の論理単位のデータの送信要求を前記外部装置から受信した場合、前記履歴保持工程で保持させておいた前記履歴を参照することで、前記外部装置側で利用しているプログレッションオーダの種類を判別し、判別結果に従って前記外部装置に送信する各タイル中の論理単位のデータの送信順を決定する送信順決定工程と、
前記送信順決定工程で決定した送信順に従って、前記送信要求に応じたタイル中の論理単位のデータを前記外部装置に送信する送信工程と
を備えることを特徴とする画像処理方法。
The encoded data of the image divided in tile units composed of a plurality of logical units, and the encoded data of the images in which the format of the encoded data can be arranged in a plurality of types of logical units, An image processing method performed by an image processing apparatus that transmits data in a logical unit according to a request in a tile according to a request from the external apparatus,
A history holding step of recording information about data transmitted to the external device in the past as a history and holding the history in a predetermined memory;
When a transmission request for logical unit data in a tile necessary for obtaining a desired image among encoded data of images to be stored is received from the external device, the history stored in the history storing step is stored. A transmission order determining step of determining the type of progression order used on the external device side by reference, and determining the transmission order of data in logical units in each tile to be transmitted to the external device according to the determination result; ,
An image processing method comprising: a transmission step of transmitting logical unit data in a tile corresponding to the transmission request to the external device according to the transmission order determined in the transmission order determination step.
前記送信順決定工程では、前記外部装置側で利用しているプログレッションオーダの種類が、Layer−Resolution−Component−Position、Resolution−Layer−Component−Position、Resolution−Position−Component−Layer、Position−Component−Resolution−Layer、Component−Position−Resolution−Layerの何れであるかを判別することを特徴とする請求項1に記載の画像処理方法。In the transmission order determination step, the type of progression order used on the external device side is Layer-Resolution-Component-Position, Resolution-Layer-Component-Position, Resolution-Position-Component-Layer, Position-Component. The image processing method according to claim 1, wherein a determination is made as to which of Resolution-Layer and Component-Position-Resolution-Layer. 前記送信順決定工程では、過去に前記外部装置に送信したデータに関する情報の履歴を参照し、過去に前記外部装置にレイヤ0に関するデータを送信していると判別した場合、前記外部装置側で使用しているプログレッションオーダをLayer−Resolution−Component−Positionと判別し、前記外部装置に送信すべき各タイル中の論理単位のデータの送信順はLayer−Resolution−Component−Positionのプログレッションオーダに従うことを特徴とする請求項1に記載の画像処理方法。In the transmission order determination step, the history of information related to data transmitted to the external device in the past is referred to, and when it is determined that data related to layer 0 has been transmitted to the external device in the past, it is used on the external device side The progressive order being determined is determined as Layer-Resolution-Component-Position, and the transmission order of data in logical units in each tile to be transmitted to the external device follows the progression order of Layer-Resolution-Component-Position. The image processing method according to claim 1. 前記画像の符号化データは、画像をJPEG2000に従って符号化することで得られる符号化データであることを特徴とする請求項1に記載の画像処理方法。The image processing method according to claim 1, wherein the encoded data of the image is encoded data obtained by encoding the image according to JPEG2000. 画像処理装置が行う画像処理方法であって、
複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持する外部装置から、所望の画像を得るために必要な論理単位のデータ、及び当該論理データをデコードする際のプログレッションオーダを示す情報を含むヘッダのデータを受信する受信工程と、
前記ヘッダ中のプログレッションオーダを示す前記情報を、前記画像処理装置側で使用するプログレッションオーダを示す情報に更新する更新工程と、
前記画像処理装置側で使用するプログレッションオーダに従った順番で、前記受信工程で受信した論理単位のデータに関する情報を管理するための管理情報を作成する管理情報作成工程と
を備えることを特徴とする画像処理方法。
An image processing method performed by an image processing apparatus,
From an external device that holds encoded data of an image that is divided into tile units composed of a plurality of logical units and that can be used in a plurality of types in which the format of the encoded data is arranged in logical units. A receiving step of receiving data of a logical unit necessary for obtaining a desired image, and header data including information indicating a progression order at the time of decoding the logical data;
An update step of updating the information indicating the progression order in the header to information indicating the progression order used on the image processing apparatus side;
A management information creating step for creating management information for managing information related to logical unit data received in the receiving step in an order according to a progression order used on the image processing apparatus side. Image processing method.
複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持し、外部装置からの要求に応じたタイル中の、当該要求に応じた論理単位のデータを前記外部装置に送信する画像処理装置であって、
過去に前記外部装置に送信したデータに関する情報を履歴として記録し、保持する履歴保持手段と、
保持する画像の符号化データのうち所望の画像を得るために必要なタイル中の論理単位のデータの送信要求を前記外部装置から受信した場合、前記履歴保持手段が保持する前記履歴を参照することで、前記外部装置側で利用しているプログレッションオーダの種類を判別し、判別結果に従って前記外部装置に送信する各タイル中の論理単位のデータの送信順を決定する送信順決定手段と、
前記送信順決定手段が決定した送信順に従って、前記送信要求に応じたタイル中の論理単位のデータを前記外部装置に送信する送信手段と
を備えることを特徴とする画像処理装置。
The encoded data of the image divided in tile units composed of a plurality of logical units, and the encoded data of the images in which the format of the encoded data can be arranged in a plurality of types of logical units, An image processing apparatus that transmits data in a logical unit according to the request in the tile according to the request from the external device,
History holding means for recording and holding information about data transmitted to the external device in the past as history, and
Refers to the history held by the history holding means when a transmission request for logical unit data in a tile necessary for obtaining a desired image among the encoded data of the held image is received from the external device. The transmission order determining means for determining the type of progression order used on the external device side, and determining the transmission order of logical unit data in each tile to be transmitted to the external device according to the determination result;
An image processing apparatus comprising: a transmission unit configured to transmit data in a logical unit in a tile corresponding to the transmission request to the external device according to the transmission order determined by the transmission order determination unit.
画像処理装置であって、
複数の論理単位から成るタイル単位で分割された画像の符号化データで、かつ、当該符号化データのフォーマットが論理単位の並べる順番が複数種類可能である画像の符号化データを保持する外部装置から、所望の画像を得るために必要な論理単位のデータ、及び当該論理データをデコードする際のプログレッションオーダを示す情報を含むヘッダのデータを受信する受信手段と、
前記ヘッダ中のプログレッションオーダを示す前記情報を、前記画像処理装置側で使用するプログレッションオーダを示す情報に更新する更新手段と、
前記画像処理装置側で使用するプログレッションオーダに従った順番で、前記受信手段が受信した論理単位のデータに関する情報を管理するための管理情報を作成する管理情報作成手段と
を備えることを特徴とする画像処理装置。
An image processing apparatus,
From an external device that holds encoded data of an image that is divided into tile units composed of a plurality of logical units and that can be used in a plurality of types in which the format of the encoded data is arranged in logical units. Receiving means for receiving data of a logical unit necessary for obtaining a desired image, and header data including information indicating a progression order when the logical data is decoded;
Updating means for updating the information indicating the progression order in the header to information indicating the progression order used on the image processing apparatus side;
Management information creating means for creating management information for managing information relating to data in logical units received by the receiving means in an order according to a progression order used on the image processing apparatus side. Image processing device.
請求項6又は7に記載の画像処理装置を含むことを特徴とするシステム。A system comprising the image processing apparatus according to claim 6. コンピュータに請求項1乃至5の何れか1項に記載の画像処理方法を実行させるためのプログラム。A program for causing a computer to execute the image processing method according to any one of claims 1 to 5. 請求項9に記載のプログラムを格納するコンピュータ読み取り可能な記憶媒体。A computer-readable storage medium storing the program according to claim 9.
JP2003176929A 2003-06-20 2003-06-20 Image processing method and image processing apparatus Pending JP2005012685A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003176929A JP2005012685A (en) 2003-06-20 2003-06-20 Image processing method and image processing apparatus
US10/867,696 US7616823B2 (en) 2003-06-20 2004-06-16 Image processing method and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003176929A JP2005012685A (en) 2003-06-20 2003-06-20 Image processing method and image processing apparatus

Publications (1)

Publication Number Publication Date
JP2005012685A true JP2005012685A (en) 2005-01-13

Family

ID=34074271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003176929A Pending JP2005012685A (en) 2003-06-20 2003-06-20 Image processing method and image processing apparatus

Country Status (2)

Country Link
US (1) US7616823B2 (en)
JP (1) JP2005012685A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319482A (en) * 2005-05-10 2006-11-24 Canon Inc Image processor and its control method, computer program, and computer-readable storage medium
JP2007053593A (en) * 2005-08-18 2007-03-01 Ricoh Co Ltd Image processing system, method and program, and recording medium
JP2007097147A (en) * 2005-09-02 2007-04-12 Ricoh Co Ltd Image processing apparatus and image processing method
JP2007142614A (en) * 2005-11-16 2007-06-07 Ricoh Co Ltd Image processing apparatus and method, program, and information recording medium
JP2007329747A (en) * 2006-06-08 2007-12-20 Ikegami Tsushinki Co Ltd Image processor and image processing method, and monitor system using the same
US7721971B2 (en) 2005-03-16 2010-05-25 Ricoh Company, Ltd. Image processing system, image processing method and computer readable information recording medium
US7734208B2 (en) 2005-09-09 2010-06-08 Ricoh Company, Ltd. Image fixing apparatus and image forming apparatus capable of effectively controlling an image fixing temperature
US8135223B2 (en) 2007-03-16 2012-03-13 Ricoh Company, Ltd. Image processing apparatus and method of image processing

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095228A1 (en) * 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
JP5328505B2 (en) * 2009-06-18 2013-10-30 キヤノン株式会社 Image processing apparatus and image processing method
JP5813024B2 (en) * 2013-01-29 2015-11-17 京セラドキュメントソリューションズ株式会社 Image processing device
GB2516116B (en) * 2013-07-12 2017-10-25 Canon Kk Adaptive data streaming method with push messages control
JP6478840B2 (en) 2015-07-01 2019-03-06 キヤノン株式会社 Image processing apparatus and image processing method
JP6666046B2 (en) 2016-04-25 2020-03-13 キヤノン株式会社 Image processing apparatus and image processing method
EP3239929B1 (en) 2016-04-27 2019-06-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000354058A (en) 1999-06-11 2000-12-19 Ricoh Co Ltd Network facsimile equipment and control method therefor
JP2002049514A (en) 2000-08-07 2002-02-15 Canon Inc Method and device for image processing and storage medium
US7206804B1 (en) * 2000-11-10 2007-04-17 Sharp Laboratories Of America, Inc. Methods and systems for transmitting digital images
US6898323B2 (en) * 2001-02-15 2005-05-24 Ricoh Company, Ltd. Memory usage scheme for performing wavelet processing
US20030067627A1 (en) * 2001-08-30 2003-04-10 Tomoe Ishikawa Image processing method and its data cache method
JP3768866B2 (en) 2001-11-29 2006-04-19 キヤノン株式会社 Method and apparatus for creating encoded data
JP2003152544A (en) * 2001-11-12 2003-05-23 Sony Corp Data communication system, data transmitter, data receiver, data-receiving method and computer program

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721971B2 (en) 2005-03-16 2010-05-25 Ricoh Company, Ltd. Image processing system, image processing method and computer readable information recording medium
JP2006319482A (en) * 2005-05-10 2006-11-24 Canon Inc Image processor and its control method, computer program, and computer-readable storage medium
JP2007053593A (en) * 2005-08-18 2007-03-01 Ricoh Co Ltd Image processing system, method and program, and recording medium
JP2007097147A (en) * 2005-09-02 2007-04-12 Ricoh Co Ltd Image processing apparatus and image processing method
JP4716949B2 (en) * 2005-09-02 2011-07-06 株式会社リコー Image processing apparatus and image processing method
US7734208B2 (en) 2005-09-09 2010-06-08 Ricoh Company, Ltd. Image fixing apparatus and image forming apparatus capable of effectively controlling an image fixing temperature
JP2007142614A (en) * 2005-11-16 2007-06-07 Ricoh Co Ltd Image processing apparatus and method, program, and information recording medium
JP2007329747A (en) * 2006-06-08 2007-12-20 Ikegami Tsushinki Co Ltd Image processor and image processing method, and monitor system using the same
JP4740800B2 (en) * 2006-06-08 2011-08-03 池上通信機株式会社 Image processing apparatus, image processing method, and monitoring system using the same
US8135223B2 (en) 2007-03-16 2012-03-13 Ricoh Company, Ltd. Image processing apparatus and method of image processing

Also Published As

Publication number Publication date
US7616823B2 (en) 2009-11-10
US20050021816A1 (en) 2005-01-27

Similar Documents

Publication Publication Date Title
US7580577B2 (en) Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
JP2005012685A (en) Image processing method and image processing apparatus
US7324695B2 (en) Prioritized image visualization from scalable compressed data
RU2683595C1 (en) Method of adaptive flow transfer of data with management of active delivery communications
US7298909B2 (en) Image processing method and image processing apparatus
US7206804B1 (en) Methods and systems for transmitting digital images
US7284069B2 (en) Method for document viewing
US8095633B2 (en) Cache on demand
JP4709493B2 (en) Method and product for communicating compressed digital images
US20030067627A1 (en) Image processing method and its data cache method
US20030072299A1 (en) Method and system for transmitting graphical images
US7260614B2 (en) Methods and systems for scalable streaming of images with client-side control
EP1826681A1 (en) Standardized network access to partial document imagery
US20040078491A1 (en) Transport of reversible and unreversible embedded wavelets
US7558430B2 (en) Apparatus method and computer-readable medium for processing hierarchical encoded image data
EP1496667B1 (en) Network access to partial document images
US7721971B2 (en) Image processing system, image processing method and computer readable information recording medium
US6473526B1 (en) Image processing system and control method of the same, image processing apparatus and control method of the same, and computer readable memory
JP4125186B2 (en) Image processing method and image processing apparatus
JP4086728B2 (en) Image communication method and system
JP4065535B2 (en) Code data creation method and apparatus
JP3768866B2 (en) Method and apparatus for creating encoded data
US20050012957A1 (en) Network scanning method and apparatus, and packet format therefor
JP2003224704A (en) Image processing method and image processor
JP2004193752A (en) Image processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080205