JP4743613B2 - 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体 - Google Patents

符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体 Download PDF

Info

Publication number
JP4743613B2
JP4743613B2 JP2006067482A JP2006067482A JP4743613B2 JP 4743613 B2 JP4743613 B2 JP 4743613B2 JP 2006067482 A JP2006067482 A JP 2006067482A JP 2006067482 A JP2006067482 A JP 2006067482A JP 4743613 B2 JP4743613 B2 JP 4743613B2
Authority
JP
Japan
Prior art keywords
tile
code
bit group
tile part
boundary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006067482A
Other languages
English (en)
Other versions
JP2007243889A (ja
Inventor
宏幸 作山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006067482A priority Critical patent/JP4743613B2/ja
Publication of JP2007243889A publication Critical patent/JP2007243889A/ja
Application granted granted Critical
Publication of JP4743613B2 publication Critical patent/JP4743613B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、JPEG2000の符号の生成と処理、並びに、JPEG2000ファミリーフォーマットのファイルの生成と処理に関し、JPIPサーバ等に好適に応用できるものである。
近年、画像圧縮の分野において、JPEG(Joint Photographic Coding Experts Group)で採用されたDCT(離散コサイン変換)に代わる周波数変換として、ウェーブレット変換の採用が増加している。その代表例は、2001年に国際標準になったJPEG2000である。
JPEG2000の符号化処理は概ね図9のブロック図に示す流れで行われる。画像は矩形のタイルに分割され(分割数≧1)、タイル毎に処理される。
まず、各タイルは、輝度・色差等のコンポ−ネントへ色変換される(ブロック1)。RBGデータのような正数で表されるデータの場合、ダイナミックレンジの半分を減じるDCレベルシフトも施される。変換後のコンポ−ネント(タイルコンポ−ネントと呼ばれる)はウェーブレット変換を適用されてサブバンドに分割される(ブロック2)。1回のウェーブレット変換(デコンポジション)によってLL,HL,LH,HHと略称される4つのサブバンドに分割される。そして、LLサブバンドに対して再帰的にウェーブレット変換を繰返すと、最終的に1つのLLサブバンドと複数のHL,LH,HHサブバンドが生成される。
3回のウェーブレット変換(デコンポジション)を行った場合のサブバンドを図11に示す。図11中の各サブバンド名の接頭の数字(例えば”3LL”の”3”)は、デコンポジションレベル(施されたウェーブレット変換の回数)を示す。また、後の説明のため、デコンポジションレベルと解像度レベルの関係を図11に示した。
9×7変換と呼ばれる非可逆ウェーブレット変換が用いられる場合には、ウェーブレット係数は、サブバンド毎に線形量子化(正規化を含む)を施され(ブロック3)、次にエントロピー符号化される(ブロッ4)。このエントロピー符号化では、各サブバンドはプリシンクトとよばれる矩形に分割される。プリシンクトとは、サブバンドを矩形に分割したもので、HL,LH,HHの3つのサブバンドの対応したプリシンクトは3つで1まとまりとして扱われる。ただし、LLサブバンドを分割したプリシンクトは1つで1まとまりとして扱われる。プリシンクトは、大まかには画像中の場所(Position)を表すものである。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものがコードブロックである。図10にタイル、サブバンド、プリシンクト、コードブロックの関係を示す。よって、物理的な大きさの序列は、画像≧タイル>サブバンド≧プリシンクト≧コードブロックとなる。以上の分割の後、係数のエントロピー符号化(ビットプレーン符号化)が、コードブロック毎かつビットプレーン順に行われる。
次に必要なエントロピー符号をまとめてパケットを生成する(ブロック5)。パケットとは、プリシンクトに含まれる全てのコードブロックから、ビットプレーンの符号の一部(例えば全てのコードブロックのMSBから3枚目までのビットプレーンの符号)を集めたものにヘッダ(パケットヘッダ)をつけたものである。上記”一部”は”空”(から)でもよいので、パケットの中身が符号的には”空)”ということもある。パケットヘッダには、当該パケットに含まれる符号に関する情報が含まれる。各パケットは独立に扱うことができる。いわばパケットは符号の単位である。
そして、全てのプリシンクト(=全てのコードブロック=全てのサブバンド)のパケットを集めると、画像全域の符号の一部(例えば、画像全域のウェーブレット係数の、MSBから3枚目までのビットプレーンの符号)ができるが、これをレイヤーと呼ぶ。レイヤーは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤー数が増えれば画質は上がることになる。すなわち、レイヤーは画質の単位である。すべてのレイヤーを集めると、画像全域の全てのビットプレーンの符号になる。
デコンポジションレベル数=2、プリシンクトサイズ=サブバンドサイズ、としたときのレイヤーの例を図12の上段に示す。いくつかのレイヤーに含まれるパケットを図12の下段に太枠で囲んで示す。
以上のようにして生成されたパケットやレイヤーの区切りに従って、パケットを配列するとともに必要なタグやタグ情報を付加することにより、最終的なJPEG2000の符号(コードストリーム)が形成される(ブロック6)。
以上の説明から理解されるように、パケットは
・どのコンポ−ネント(記号C)に属するか、
・どの解像度レベル(記号R)に属するか、
・どのプリシンクト(“場所”,記号P)に属するか、
・どのレイヤー(記号L)に属するか、
という4つの属性を要する。ただし、このような属性自体はパケットヘッダには記述されていない。
パケットの配列とは、パケット(パケットヘッダおよびパケットデータ)を、どの属性の順に階層的に並べるかを意味する。この配列順をプログレッションオーダと呼び、図13に示す5通りが規定されている。
ここで、エンコーダがプログレッションオーダ順にパケットを並べる様子と、デコーダがプログレッションオーダ順にパケットの属性を解釈する様子を以下に示す。
例えば、LRCPプログレッションオーダの場合、次のようなforループ
for(レイヤ){
for(解像度){
for(コンポ−ネント){
for(プリシンクト){
エンコード時:パケットを配置
デコード時:パケットの属性を解釈




により、パケットの配列(エンコード時)又は解釈(デコード時)がなされる。
各パケットのパケットヘッダには、
・そのパケットが空かどうか、
・そのパケットにどのコードブロックが含まれるか、
・そのパケットに含まれる各コードブロックのゼロビットプレーン数、
・そのパケットに含まれる各コードブロック符号のコーディングパス数(ビットプレーン数)、
・そのパケットに含まれる各コードブロックの符号長、
が記載されている。しかし、レイヤー番号や解像度レベル等はパケットヘッダには一切記載されていない。デコード時に、そのパケットがどのレイヤーのどの解像度レベルのものかを判別するには、メインヘッダ中のCODマーカセグメント(図25)等に記載されたプログレッションオーダから上記のようなforループを形成し、そのパケットに含まれる各コードブロックの符号長の和からパケットの切れ目を判別し、各パケットがforループ内のどの位置でハンドリングされたかを見ればよい。これは、パケットヘッダ中の符号長さえ読み出せば、パケットデータ(エントロピー符号)をデコードしなくても、次のパケットを検出できること、すなわち任意のパケットにアクセス可能であることを意味する。
図14は、LRCPプログレッションオーダ符号の様な、レイヤーがforループの最も外側(以下、“最外殻”と呼ぶ)に位置するレイヤープログレッシブ符号の概念図である。ただし、タイルパート(後述)の数は1としている。
図15に、画像サイズ=100×100画素、タイル分割無し(1タイル)、2レイヤ、解像度レベル数=3(0〜2)、3コンポ−ネント(0〜2)、プリシンクトサイズ=32×32の場合のLRCPプログレッションオーダの符号における36個のパケットの配列例を示す。ただし、タイルパート(後述)の数は1としている。
図16は、RLCPプログレッションオーダ符号の様な、解像度レベルがforループの最外殻である解像度プログレッシブ符号の概念図である。ただし、タイルパート数は1としている。
図17に、画像サイズ=100×100画素、タイル分割無し(1タイル)、2レイヤ、解像度レベル数=3(0〜2)、3コンポ−ネント(0〜2)、プリシンクトサイズ=32×32の場合のRLCPプログレッションオーダ符号における36個のパケットの配列例を示す。ただし、タイルパート(後述)の数は1としている。
さて、各タイルを構成する符号を、パケットの切れ目でさらに複数の部分に分割することができ、分割した部分をタイルパートと呼ぶ。なお、先に言及したように、図15と図17はタイルパート数=1の場合である。
各タイルパートは、パケットのほかに、SOT(start of tile-part)マーカセグメントで始まりSOD(start of data)マーカで終わるヘッダを有し、このヘッダをタイルパートヘッダと呼ぶ(図14,図16参照)。
図18に、SOTマーカセグメントの構成を示す。なお、マーカ(この例ではSOTマーカ)とそれに関連したパラメータから構成されるものをマーカセグメントと呼ぶ。SOTマーカセグメントのパラメータの内容を図19に示す。図19から理解されるように、SOTマーカセグメント中のパラメータPsotの内容を読めば当該タイルパートの長さを知ることができる。したがって、SOTマーカセグメントを読み込めば、パケットヘッダをデコードすることなく、タイルパート単位で符号にアクセスすることができる。すなわち、何番目かのタイルパートを捜す場合、先頭のSOTマーカセグメントを探し、SOTマーカセグメントからタイルパート長を検出して符号中をシークして次のタイルパートにたどり着く、という手順を繰返すことにより所望のタイルパートに到達できる。
パケットヘッダのデコードを省略したい場合には、タイルパートヘッダ中のPLTマーカセグメントやメインヘッダ中のPLMマーカセグメントに、各パケットの長さを記録しておくこともできる。
さらに、何番目かのタイルパートを探す際にSOTマーカセグメントを逐次探すプロセスを省きたい場合には、メインヘッダ中のTLMマーカセグメントに各タイルパートの長さを記録しておくこともできる。TLMマーカセグメントは図20に示すような構成であり、そのパラメータの内容は図21に示す通りである。TLMマーカセグメント中のPtml(i)を読めば、i番目のタイルパートの長さを知ることができる。すなわち、TLMマーカセグメントからタイルパート長を検出して積算する手順を繰返し、所定個数のタイルパート数に達した時点で、所望のタイルパートへのシーク長(すなわち最初のタイルパートからのオフセット)が得られ、このシーク長をもとに所望のタイルパートに高速にアクセスすることが可能である。
さて、以上に説明したように、JPEG2000の符号は、パケット単位でのアクセスが可能であるとともに、より簡易には、タイルパート単位でのアクセスが可能である。これは、原符号から、それをデコードすることなく、必要なパケットやタイルパートだけを抜き出して新たな符号を生成できることを意味する。また、原符号の必要なパケット又はタイルパートだけを復号することができることをも意味する。
例えば、サーバに保存されている大きな画像をクライアント側で表示しようとする場合に、必要な画質だけの符号、必要な解像度だけの符号、見たい場所だけの符号、見たいコンポ−ネントだけの符号をサーバから受信して復号するような事が可能である。
この様に、サーバにあるJPEG2000の符号の必要な部分だけを受信するためのプロトコルをJPIP(JPEG2000 Interactive Protocol)と呼び、現在、標準化の途上にある。このような階層的な画像を部分的にアクセスするためのプロトコルは、古くは、画像の多重解像度表現であるFlashPixと、それにアクセスするためのプロトコルであるIIP(Internet Imaging Protocol)に見ることができる(例えば特許文献1参照)。なお、webサイトhttp://www.i3a.org/i_iip.htmlでIIPの標準書を提供している。また、JPIPに関連した先行技術文献としては、例えばJPIPのキャッシュモデル等に関する特許文献2がある。
特開平11−205786号公報 特開2003−23630号公報
さて、JPIPにおいては、クライアントからサーバへ、描画したい解像度と実際に描画するウィンドウサイズを指定することが提案されている。このような指定を受けた場合、サーバ側では当該解像度の当該領域をカバーするプリシンクトのパケットを送信するか、あるいは、より簡易に、当該領域をカバーするタイルパートを送信する。
以下に、後者のタイルパートを送信するJPIPシステム(これをJPTシステムという)を例に説明する。
JPTシステムの場合、画像全体を構成するタイルパート中から、当該領域をカバーするタイルパートを抽出する手順は以下の通りである。サーバは、自分が管理する符号が、どのようにタイルパートに分割されているかを知っていることが前提となる。
今、図17に示した1タイル、2レイヤのRLCPプログレッションオーダ符号のパケットを、解像度レベルの全ての境界位置(解像度レベルの切り替わり位置)でタイルパートに分割した場合、図22に示したような3つのタイルパート(0,1,2)ができる。また、同じRLCPプログレッションオーダ符号のパケットを、解像度レベルの全ての境界位置およびレイヤーの全ての境界位置でタイルパートに分割した場合、図23に示したような6つのタイルパート(0〜5)ができる。また、同じRLCPプログレッションオーダ符号のパケットを、解像度レベルの全ての境界位置、レイヤーの全ての境界位置及びコンポ−ネントの全ての境界位置でタイルパートに分割した場合、図24示したような18個のタイルパート(0〜17)ができる。
ここで、クライアントからサーバへ、「25×25画素に相当する解像度部分を、20×20のウィンドウサイズで表示したい」というリクエストが来たとする。図17の例では、25×25画素に相当する解像度とは解像度レベル0の部分を指し、20×20のウィンドウとは解像度レベル0の画素のうちの20×20の部分だけを表示するということを意味する。
したがって、サーバは、自分の持っている符号から、解像度レベル0をカバーするタイルパート(図22の例ならタイルパート0)を抽出し、それをメインヘッダの情報とともにクライアントへ送信すればよい。タイルパートの先頭には必ずSOTマーカセグメントがあり、タイルパートの長さもわかるため、タイルパートの境界自体は常に判別可能である。
しかし、図22、図23、図24の例を見れば明らかなように、(何番目から)何番目までのタイルパートを送信すればよいかは、符号のプログレッションオーダ及びタイルパートへの分割方法という2つのパラメータに依存するのである。
前者のプログレッションオーダは、メインヘッダやタイルパートヘッダのCODマーカセグメントに記述されているため直ち知ることができる。
しかし、後者のタイルパートへの分割方法は、JPEG2000符号やJPEG2000ファミリーフォーマットのファイルに記録されているわけではない。したがって、従来は、タイルパートへの分割方法が既知の符号でないかぎり、所望のタイルパートを選ぶには、符号のパケットを1つ1つ数えていかざるを得ず、効率が極めて悪いという問題があった。
本発明は、JPEG2000の符号やJPEG2000ファミリーフォーマットのファイルにおける上記問題点を解決し、JPTサーバなどにおいて、JPEG2000の符号の所要のタイルパートを効率的に選択可能にするものである。
JPEG2000においては、符号のタイルパートへの分割方法を入れるように最初から規定されているマーカセグメントはない。しかし、JPEG2000の符号フォーマットやファイルフォーマットには、ベンダー情報等の自由な情報を記述することが許されたマーカセグメントやBox情報がある。本発明はこのことに着目した。
すなわち、請求項1記載の発明は、JPEG2000の符号を生成する符号生成装置であって、生成する符号のタイルパートへの分割方法を示す所定形式の分割情報を生成する手段と、該手段により生成された分割情報を該符号中のCOMマーカセグメントに記録する手段とを有し、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号生成装置である。
COMマーカセグメントは図26に示すような構成であり、任意のコメントデータをバイト単位でCcom(i)に記録することができる。
なお、タイルパートへの分割方法とは、具体的には、パケットの属性中のどの属性のどの境界位置(切り替わり位置)でタイルパートへ分割されるかである。例えば、図22の例のように解像度レベルの全ての境界位置で分割したり、図23の例のように解像度レベル及びレイヤーの全ての境界位置で分割したりする、といったものである。
また、請求項2記載の発明は、JPEG2000ファミリーフォーマットのファイルを生成するファイル生成装置であって、生成するファイル内の符号のタイルパートへの分割方法を示す所定形式の分割情報を生成する手段と、該手段により生成された分割情報を該ファイルのUUIDBox又はXMLBox、あるいは該符号中のCOMマーカセグメントに記録する手段とを有し、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴するファイル生成装置である。
ここで、JPEG2000ファミリーフォーマットとは、JP2、JPX、JPMである。図27にJP2フォーマットのファイル構造を示す。図中のUUIDBoxとXMLBoxに任意の情報を記録可能である。JPXはJP2の拡張ファイルフォーマットであり、その構造は示さないが、UUIDBoxとXMLBoxに関してはJP2フォーマットと同様である。図28にBoxの構造を、図29にBox情報の内容を示す。UUIDBoxとXMLBoxのDBoxに任意の情報を記録できる。
また、図30にJPM(JPEG2000 Multi Layer)フォーマットのファイル構造を示す。図中の”C.2”で示されたMetadataBoxに、図28と同様なUUIDBox,XMLBoxが含まれており、任意の情報を記録可能である。
また、請求項3記載の発明は、JPEG2000の符号から所要のタイルパートを選択する符号処理装置であって、前記符号中のCOMマーカセグメントに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知手段と、前記分割方法検知手段により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別手段とを有し、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号処理装置である。
なお、符号のプログレッションオーダは、符号中のCODマーカセグメントから検知することができることは前述した。また、プログレッションオーダが既知(固定)の符号を前提とする場合は、CODマーカセグメントからプログレッションオーダを検知する必要はない。
また、請求項4記載の発明は、JPEG2000ファミリーフォーマットのファイル内の符号から所要のタイルパートを選択する符号処理装置であって、前記符号中のCOMマーカセグメント、あるいは、前記ファイルのUUIDBox又はXMLBoxに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知手段と、前記分割方法検知手段により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別手段とを有し、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号処理装置である。
請求項5記載の発明は、請求項3又は4記載の発明に係る符号処理装置であって、前記符号中のTLMマーカセグメントに記録されている各タイルパートの長さをもとに、前記タイルパート識別手段により識別されたタイルパートについて、各タイルパートから次のタイルパートへのシーク長を算出するシーク長算出手段を有することを特徴する符号処理装置である。
また、請求項6記載の発明は、コンピュータにJPEG2000の符号を生成する処理を行わせるためのプログラムであって、コンピュータに、生成する符号のタイルパートへの分割方法を示す所定形式の分割情報をメモリ上に生成する工程、該工程により生成された分割情報を、メモリ上のCOMマーカセグメントに記録する工程を実行させ、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなり、COMマーカセグメントに前記分割情報が記録されたJPEG2000の符号を生成することを特徴とするプログラムである。
また、請求項7記載の発明は、コンピュータにJPEG2000ファミリーフォーマットのファイルを生成する処理を行わせるためのプログラムであって、コンピュータに、生成するファイル内の符号のタイルパートへの分割方法を示す所定形式の分割情報をメモリ上に生成する工程、該工程により生成された分割情報をメモリ上のUUIDBox又はXMLBox、あるいはCOMマーカセグメントに記録する工程を実行させ、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなり、UUIDBox又はXMLBoxあるいは符号中のCOMマーカセグメントに前記分割情報が記録されたJPEG2000ファミリーフォーマットのファイルを生成することを特徴とするプログラム。
請求項8記載の発明は、コンピュータにJPEG2000の符号から所要のタイルパートを選択する処理を行わせるためのプログラムであって、コンピュータに、メモリ上の前記符号中のCOMマーカセグメントに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知工程、前記分割方法検知工程により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別工程を実行させ、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とするプログラムである。
請求項9記載の発明は、コンピュータにJPEG2000ファミリーフォーマットのファイル内の符号から所要のタイルパートを選択する処理を行わせるプログラムであって、コンピュータに、メモリ上の前記符号中のCOMマーカセグメント、あるいは、メモリ上の前記ファイルのUUIDBox又はXMLBoxに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知工程、前記分割方法検知工程により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別工程を実行させ、前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とするプログラムである。
請求項10記載の発明は、請求項8又は9記載の発明に係るプログラムであって、コンピュータに、メモリ上の前記符号中のTLMマーカセグメントに記録されている各タイルパートの長さをもとに、前記タイルパート識別工程により識別されたタイルパートについて、各タイルタイルパートから次のタイルパートへのシーク長を算出するシーク長算出工程を実行させることを特徴とするプログラムである。
また、請求項11記載の発明は、請求項6乃至10のいずれか1項記載の発明に係るプログラムが記録されたコンピュータが読み取り可能な情報記録媒体である。
(1)請求項1,2記載の発明によれば、タイルパートへの分割方法を示す分割情報がCOMマーカセグメント、あるいはUUIDBox又はXMLBoxに記録されたJPEG2000の符号又はJPEG2000ファミリーフォーマットのファイルを生成することができる。このような符号又はファイルを処理する場合、それに記録されている分割情報からタイルパートへの分割方法、すなわち、どの属性のどの境界位置でタイルパート分割されているかを検知することができるため、それを検知できない場合に比べ、効率的に所望のタイルパートへのアクセスが可能となる。
(2)請求項3,4記載の発明によれば、JPEG2000の符号又はJPEG2000ファミリーフォーマットのファイルの符号の選択しようとする所要のタイルパートが何番目のタイルパートであるかを容易に識別し、効率的に所要のタイルパートをアクセスして選択することができる。さらに、請求項5記載の発明によれば、TLMマーカセグメントに記録されている各タイルパートの長さから算出されたシーク長をもとに所望のタイルパートへ直接的にアクセスすることが可能であり、例えば所望のタイルパートが飛び飛びのものであっても、それを極めて効率的に選択することができる。したがって、元の符号から所要のタイルパートを選択し外部へ出力したり、所要のタイルパートのみからなる新たな符号を生成する等の処理を効率良く行うことが可能となる。
(3)請求項6〜11記載の発明によれば、コンピュータを利用し、請求項1〜5記載の発明に係る処理を実行させることができる。換言すれば、コンピュータを、請求項1〜5記載の発明に係る装置として動作させることができる、等々の効果を得られる。
以下、本発明の実施の形態について説明する。
本発明は、例えば図1に示すようなシステムで実施することができる。図1において、100と101はパーソナルコンピュータ(PC)であり、ネットワーク(LAN、イントラネット、インターネット等)102を経由して通信可能である。
PC100はCPU110、RAM111、ハードディスク装置112、表示装置113、キーボード、マウス等の入力装置114、ネットワーク・インターフェース115等がバス116に接続された一般的な構成である。PC101も同様の構成で構わない。
本発明は、各PC100,101がそれぞれ単独で実施する形態、あるいは、例えばPC101をクライアント、PC100をサーバとしたクライアント・サーバシステム上で実施する形態をとり得る。また、単独のPC100又は101上でクライアント・ソフトウェアとサーバ・ソフトウェアを走らせてクライアント・サーバシステムを構築することも可能であり、かかるシステム上で本発明を実施する形態もとり得る。なお、後述する各実施例を専用のハードウェアで実施することも可能であり、かかる実施形態も本発明に当然に包含される。
図2は、本発明の実施例1を説明するためのフローチャートである。このフローチャートに示す手順は、JPEG2000の符号化処理も含めて、図1に示したPC100(又は101)上でソフトウェアによって実行されるものとする。そのためのプログラムは、ハードディスク装置112に保存されており、RAM(メインメモリ)111へロードされてCPU110により実行されるものとする。ただし、JPEG2000のハードウェア・エンコーダをPC100が備えている場合には、JPEG2000の符号化処理そのものは同エンコーダにより実行させることも可能であり、そのような態様も本実施例に含まれる。以上は、下記の実施例2においても同様である。
処理の対象となる画像データはハードディスク装置112に蓄積されており、これがRAM111へ転送されて処理されものとする。その処理結果であるJPEG2000の符号(コードストリーム)を格納したJP2ファイルはRAM111上に生成され、これはハードディスク装置112に転送され保存されるものとして説明する。このことは下記の実施例2においても同様である。
図2を参照する。まず、ユーザによってタイルパートへの分割方法が入力され(step1)、PC100において入力された分割方法に対応した分割情報を生成する(step2)。
本実施例(及び下記の各実施例)では、図3に示すようなフォーマットの分割情報をRAM111上に生成するものとする。また、本実施例(及び下記の各実施例)においては、便宜上、すべてのタイルに関してタイルパートへの分割方法を同一とし、同じ分割情報を全てのタイルに共通に適用するものとする。また、解像度レベルの最大値を15、レイヤ数を最大で32、コンポ−ネント数を最大で16としているが、通常、これで実用上は充分である。
図3に示す分割情報は9バイトの固定長フォーマットであり、各ビット位置が分割の有無に関する情報を持つ。この分割情報の内容は次の通りである。
(1)最初の4ビット(”分割位置(R,L,C)”)は、パケットの属性である解像度レベルR,レイヤーL,コンポーネントCそれぞれの境界位置(切り替わり位置)でタイルパートを分割するか否かを示す。
(2)次の4ビット(”全位置か否か”)は、前の”分割位置(R,L,C)”によって、ある属性の境界位置で分割すると指定されている場合に、当該属性の全ての境界位置で分割するのか、そうでないのか(一部の境界位置でのみ分割するのか)」を示す。
(3)次の16ビット(”解像度位置”)は、”全位置か否か”により解像度レベルの全ての境界位置では分割しないと指定されている場合に、解像度レベルのどの境界位置で分割するかを示す
(4)次の32ビット(”レイヤ位置”)は、”全位置か否か”によりレイヤーの全ての境界位置では分割しないと指定されている場合に、レイヤーのどの境界位置で分割するかを示す。ただし、この32ビットについての説明例は16進数表示である。
(5)次の16ビット(”コンポーネント位置”)は、”全位置か否か”によりコンポーネントの全ての境界位置では分割しないと指定されている場合に、コンポーネントのどの境界位置で分割するかを示す
step1では、例えば図4に示すような分割方法入力画面が表示装置113の画面に表示され、該画面内のラジオボタン(丸印)を入力装置114のマウス等を用いてユーザが選択することによって、タイルパートへの分割方法が入力される。この入力情報はRAM111に記憶される。分割方法入力画面内のラジオボタンと分割情報との関連は次の通りである。最上段の3つのラジオボタンは、分割情報中の”分割位置(R,L,C)”の4ビットを指定するためのものである。2段目のラジオボタンは分割情報中の”全位置か否か”の4ビットを指定するためのものである。3段目のラジオボタンは分割情報中の”解像度位置”の16ビットを指定するためのものである。4段目のラジオボタンは分割情報中の”レイヤ位置”の32ビットを指定するためのものである。5段目のラジオボタンは分割情報中の”コンポーネント位置”の16ビットを指定するためのものである。
なお、図4の例では示されていないが、デフォルトの分割方法を入力するためのラジオボタンを設け、これを選択することによってデフォルトの分割方法に対応した分割情報を生成させ、あるいは、step1のスキップ操作によって、デフォルトの分割方法に対応した分割情報を生成させることも可能であり、かかる態様も本実施例に包含される。
次に、PC100はメインヘッダのCOMマーカセグメントにstep2で生成した分割情報を記述する(step3)。具体的には例えば、RAM111上に確保されたメインヘッダ領域に分割情報を記述したCOMマーカセグメントを書き込む。COMマーカセグメントは図26に示す構造であるが、分割情報はバイナリデータであるためRcom=0に設定され、9バイトの分割情報が1バイト単位の9個のコメントデータ(Ccom(0)〜Ccom(8))として書き込まれる。COMマーカ自体を除いたマーカセグメントの長さは13バイト(=2+2+9)であるので、Lcom=13に設定される。
次に、PC100は、ハードディスク装置112より画像データをRAM111に読み込み、この画像データに対しJPEG2000のパケット生成までの符号化処理(図9中のブロック1〜5の処理)を実行することにより、RAM111上にパケットを生成する(step4)。
次に、PC100は、指定された分割方法に従って分割されたタイルパート(タイルパートヘッダ及びパケット列)をRAM111上に生成する(step5)。
次に、PC100は、生成した各タイルパートにメインヘッダ等を付加した最終的なJPEG2000の符号(コードストリーム)をRAM111上に生成する(step6)。このstep6とstep5は図9中のブロック6の処理に相当する。
最後に、この符号を格納したJP2フォーマットのファイルを生成し(step7)、これをハードディスク装置112に保存する(step8)。なお、JPEG2000の符号をファイル化せず、そのまま例えばPC101へ送信するようなことも可能であり、かかる態様も本実施例に包含される。
なお、ここまでは、生成する符号のプログレッションオーダは既知として説明したが、これをユーザが任意に指定することも可能であり、この場合には指定されたプログレッションオーダに従ったタイルパートと符号の生成が行われることになる。かかる態様も当然に本実施例に包含される。
本実施例は、コンピュータを利用した請求項1又は2記載の発明の一実施例に相当するものであり、step2が分割情報を生成する手段に、step3が分割情報をCOMマーカセグメントに記録する手段にそれぞれ対応する。また、本実施例のためのプログラムは、請求項6又は7記載の発明の一実施例に相当するものである。このプログラムが記録されたコンピュータが読み取り可能な各種情報記録媒体は請求項11の一実施例に相当する
図5は、本発明の実施例2を説明するためのフローチャートである。図中のstep11,12,13,14,15はそれぞれ前記実施例1に係る図2におけるstep1,2,4,5,6と同じ処理を行うステップであるので、その説明は省略する。
次に、PC100は、step12で生成した9バイトの分割情報を、JP2ファイルフォーマットのUUIDBoxのDATAフィールドに記述し、又はXMLBoxのDBoxに所定のタグ形式で記述する(step16)。具体的には例えば、RAM111上に確保された当該Box情報領域に分割情報を書き込む。
次にPC100は、JPEG2000の符号を格納した最終的なJP2フォーマットのファイルを生成し(step17)、これをハードディスク装置112に保存する(step18)。
なお、本実施例においても、生成する符号のプログレッションオーダをユーザが任意に指定することも可能であり、この場合には指定されたプログレッションオーダに従ったタイルパートと符号の生成が行われることになる。かかる態様も当然に本実施例に包含される。
本実施例は、コンピュータを利用した請求項2記載の発明の一実施例に相当するものであり、step12が分割情報を生成する手段に、step16が分割情報をUUIDBox又はXMLBoxに記録する手段にそれぞれ対応する。
また、本実施例のためのプログラムは、請求項7記載の発明の一実施例に相当するものである。このプログラムが記録されたコンピュータが読み取り可能な各種情報記録媒体は請求項11の一実施例に相当する
図6は、本発明の実施例3を説明するためのフローチャートである。本実施例においては、PC100がJPTサーバとして動作し、PC101がJPTクライアントとして動作する場合を想定している。また、図6に示す手順はJPTサーバとしてのPC100側で実行されるものである。
処理の対象となるファイルは、前記実施例1又は2に係る処理によって生成されたJP2ファイルであり、これはPC100内のハードディスク装置112に保存されているものとする。ただし、そのJP2ファイルが、JPTサーバにより管理されている外部のハードディスク装置等に保存されている態様も本実施例に包含される。なお、分割情報がCOMマーカセグメント、UUIDBox、XMLBoxのいずれに記述されているかは既知とする。また、説明の便宜上、符号のタイル数=1であり、また、クライアントが要求する解像度レベル(の画像サイズ)と表示ウィンドウサイズとは一致しているものとする。以上は後記実施例4においても同様とする。
まず、JPTサーバであるPC100は、JPTクライアントであるPC101より、表示すべきファイル名と解像度レベルを指定される(step21)。なお、解像度レベル指定はfsizというパラメータによって指定される。また、表示ウィンドウ指定はrsizというパラメータによって指定される。例えば
fsiz="fsiz" "=" x方向のサイズ"," y方向のサイズ ["," "closest"]
rsiz="rsiz" "=" x方向のウィンドウ "," x方向のウィンドゥサイズ
の様に表現される。
PC100において、指定されたJP2ファイルを開き(step22)、同ファイル内の符号のメインヘッダ中のCOMマーカセグメント(あるいは同ファイルのUUIDBox又はXMLBox)に記述された分割情報(図3)から、タイルパートへの分割方法を検知する(step23)。
PC100は、符号のメインヘッダに関する情報を、メインヘッダデータビンとしてPC101へ送信する(step24)。
次にPC100は、符号のメインヘッダ中のCODマーカセグメントからプログレッションオーダを検知する(step25)。そして、指定された解像度レベルに基づいて決まる送信すべきタイルパートが符号の何番目のタイルパートであるかを、プログレッションオーダ及び検知した分割方法をもとに識別し、そのタイルパートの番号をRAM111上に例えばテーブルとして保持する(step26)。
次にPC100は、符号をシークして最初のSOTマーカセグメントを探し、このSOTマーカセグメントより読み出したタイルパート長をLとして保持し(step27)、このLをもとに符号の次のSOTマーカセグメントへシークし(該SOTマーカセグメントと直前のSOTマーカセグメントの間の区間が1つのタイルパートとして検出された)、そのSOTマーカセグメントより読み出したタイルパート長を改めてLとして保持する(step30)。そして、検出したタイルパートの番号とstep26で識別した番号とを比較することにより、送信すべきタイルパートであるか否かを判定し(step31)、送信すべきタイルパートならば、それをPC101へ送信する(step32)。
次にPC100は、保持しているLをもとに次のSOTマーカセグメントへシークし(すなわち次のタイルパートを検出し)、そのSOTマーカセグメントより読み出したタイルパート長を改めてLとして保持する(step30)。その検出したタイルパートが送信すべきものならば(step31,Yes)、そのタイルパートをPC101へ送信する(step32)。
PC100は、同様の処理を繰り返し、送信すべき最後のタイルパートまで送信されたと判定すると(step28,Yes)、当該ファイルを閉じ(step29)、一連の処理を終了する。
以上に説明したように、符号又はファイルにタイルパートへの分割方法を示す分割情報が含まれているため、符号から必要なタイルパートを効率的に選択してクライアントへ送信することができる。
なお、ここでは簡単のため、タイル数=1としたが、複数のタイルがある場合には、同様の処理をタイル数だけ繰り返せばよい。また、クライアントが要求する解像度レベルの画像サイズよりも表示ウィンドウサイズが小さい場合には、要求解像度レベルにおいて表示ウィンドウに含まれる位置に存在するタイル群だけに関してだけ、図6と同様な処理を繰り返せばよい。以上は次の実施例4においても同様である。
本実施例は、コンピュータを利用した請求項3又は4記載の発明の一実施例に相当するものであり、step23が分割方法検知手段に、step26がタイルパート識別手段にそれぞれ対応し、また、step27〜32が所要のタイルパートの選択処理に相当する。
また、本実施例のためのプログラムは、請求項8又は9記載の発明の一実施例に相当するものである。このプログラムが記録されたコンピュータが読み取り可能な各種情報記録媒体は請求項11の一実施例に相当する。
図7は、本発明の実施例4を説明するためのフローチャートである。本実施例においては、PC100がJPTサーバとして動作し、PC101がJPTクライアントとして動作する場合を想定している。また、図7に示す手順はJPTサーバとしてのPC100側で実行されるものである。
図7中のstep41,42,43,44,45,46はそれぞれ前記実施例3に係る図6中のstep21,22,23,24,25,26と同じ処理を行うステップであるので、その説明は省略する。
次にPC100は、メインヘッダのTLMマーカセグメントから各タイルパートの長さを読み出し、図8の様な、タイルパート0を送信すべきかどうかを示すフラグ200と、送信すべきタイルパートの番号と該タイルパートの次に送信すべきタイルパートへのシーク長を保持したテーブル201をRAM111上に生成する(step47)。あるタイルパートから次に送信すべきタイルパートへのシーク長は、その間の送信対象でないタイルパートの長さ(TLMマーカセグメントに記述されている)の積算をもとに求められる。なお、テーブル201の1行目に最初のタイルパートの番号=0が必ず記録される。ただし、最初のタイルパートが実際に送信されるか否かはフラグ200の状態によって決まる。
次にPC100は、符号をシークして最初のSOTマーカセグメントを探し(step47)、フラグ200が”送信”状態であるならば(step49,Yes)、そのSOTマーカセグメントに続く最初のタイルパートをJPTクライアントであるPC101へ送信する(step50)。
引き続いてPC100は、テーブル201の1行目に記録されているシーク長に基づいて次に送信すべきタイルパート(テーブル200の2行目に記録されている番号のタイルパート)の先頭位置へシークし、当該タイルパートをPC101へ送信する(step52)。次に、テーブル201の2行目に記録されているシーク長に基づいて、次に送信すべきタイルパート(テーブル200の3行目に記録されている番号のタイルパート)の先頭位置へシークし、当該タイルパートをPC101へ送信する(step52)。
同様の処理を繰り返し、送信すべき最後のタイルパートまで送信すると、すなわち、テーブル201に記録されている最後の番号のタイルパートを送信すると(step51,Yes)、PC100はファイルを閉じ(step53)、一連の処理を終了する。
以上に説明したように、符号又はファイルにタイルパートへの分割方法を示す分割情報が含まれているため、符号から必要なタイルパートを効率的に選択してクライアントへ送信することができる。本実施例では、TLMマーカセグメントに記述されている各タイルパートの長さに基づいて送信すべきタイルパートへのシーク長を予め計算して図8に示すようなテーブルに保持するため、飛び飛びのタイルパートを選択して送信するような場合でも極めて効率的に送信すべきタイルパートへシークし送信することができる。
本実施例は、コンピュータを利用した請求項5記載の発明の一実施例に相当するものであり、step47がシーク長算出手段に対応し、また、step48〜52が所要のタイルパートの選択処理に相当する。
また、本実施例のためのプログラムは、請求項10記載の発明の一実施例に相当するものである。このプログラムが記録されたコンピュータが読み取り可能な各種情報記録媒体は請求項11の一実施例に相当する。
なお、タイルパートへの分割方法もしくは分割位置を示す図3に示した分割情報を、符号のCOMマーカセグメントやファイルのUUIDBox又はXMLBoxに記録することが困難な場合には、符号又はそれを含むファイルに関連付けられた外部データベース等に同様の分割情報を記載してもよい。この場合、符号又はそれを含むファイルに関連付けられた外部データベースに記録された分割情報を参照することにより、符号のタイルパートへの分割方法もしくは分割位置を検知することができる。図31に、そのような外部データベースが持つ関連付けを示す表の例である。
本発明の実施形態に係るシステム構成例を示すブロック図である。 本発明の実施例1を説明するためのフローチャートである。 分割情報のフォーマット例を示す図である。 ユーザがタイルパートへの分割方法を指定するための画面例を示す模式図である。 本発明の実施例2を説明するためのフローチャートである。 本発明の実施例3を説明するためのフローチャートである。 本発明の実施例4を説明するためのフローチャートである。 実施例4において生成されるフラグとテーブルの説明図である。 JPEG2000の符号化アルゴリズムの説明のためのブロック図である。 画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す図である。 サブバンド分割の例と、デコンポジションレベルと解像度レベルの関係を示す図である。 レイヤー分割例を示す図である。 JPEG2000規定のプログレッションオーダを示す図である。 レイヤープログレッシブ符号の概要図である。 LRCPプログレッションオーダの符号におけるパケット配列例を示す図である。 解像度プログレッシブ符号の概要図である。 RLCPプログレッションオーダの符号におけるパケット配列例を示す図である。 SOTマーカセグメントの構成図である。 SOTマーカセグメントの内容説明図である。 TLMマーカセグメントの構成図である。 TLMマーカセグメントの内容説明図である。 全ての解像度レベルの境界位置でタイルパートへ分割した例を示す図である。 全ての解像度レベルの境界位置及び全てのレイヤーの境界位置でタイルパートへ分割した例を示す図である。 全ての解像度レベルの境界位置、全てのレイヤーの境界位置及び全てのコンポーネントの境界位置でタイルパートへ分割した例を示す図である。 CODマーカセグメントの構成図である。 COMマーカセグメントの構成図である。 JP2ファイルの構造を示す図である。 Boxの情報構造を示す図である。 Boxの情報内容の説明図である。 JPMファイルの構造を示す図である。 分割情報が記録された外部データベースの持つ関連付けを示す表の例を示す図である。
符号の説明
100 パーソナルコンピュータ(JPTサーバ)
101 パーソナルコンピュータ(JPTクライアント)
102 ネットワーク
110 CPU
111 RAM
112 ハードディスク装置
113 表示装置
114 入力装置
115 ネットワーク・インターフェース

Claims (11)

  1. JPEG2000の符号を生成する符号生成装置であって、
    生成する符号のタイルパートへの分割方法を示す所定形式の分割情報を生成する手段と、該手段により生成された分割情報を該符号中のCOMマーカセグメントに記録する手段とを有し、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号生成装置。
  2. JPEG2000ファミリーフォーマットのファイルを生成するファイル生成装置であって、
    生成するファイル内の符号のタイルパートへの分割方法を示す所定形式の分割情報を生成する手段と、該手段により生成された分割情報を該ファイルのUUIDBox又はXMLBox、あるいは該符号中のCOMマーカセグメントに記録する手段とを有し、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴するファイル生成装置。
  3. JPEG2000の符号から所要のタイルパートを選択する符号処理装置であって、
    前記符号中のCOMマーカセグメントに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知手段と、
    前記分割方法検知手段により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別手段と、
    を有し、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号処理装置。
  4. JPEG2000ファミリーフォーマットのファイル内の符号から所要のタイルパートを選択する符号処理装置であって、
    前記符号中のCOMマーカセグメント、あるいは、前記ファイルのUUIDBox又はXMLBoxに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知手段と、
    前記分割方法検知手段により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別手段と、
    を有し、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とする符号処理装置。
  5. 前記符号中のTLMマーカセグメントに記録されている各タイルパートの長さをもとに、前記タイルパート識別手段により識別されたタイルパートについて、各タイルパートから次のタイルパートへのシーク長を算出するシーク長算出手段を有することを特徴する請求項3又は4記載の符号処理装置。
  6. コンピュータにJPEG2000の符号を生成する処理を行わせるためのプログラムであって、コンピュータに、
    生成する符号のタイルパートへの分割方法を示す所定形式の分割情報をメモリ上に生成する工程、
    該工程により生成された分割情報をメモリ上のCOMマーカセグメントに記録する工程を実行させ、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなり、
    COMマーカセグメントに前記分割情報が記録されたJPEG2000の符号を生成することを特徴とするプログラム。
  7. コンピュータにJPEG2000ファミリーフォーマットのファイルを生成する処理を行わせるためのプログラムであって、コンピュータに、
    生成するファイル内の符号のタイルパートへの分割方法を示す所定形式の分割情報をメモリ上に生成する工程、
    該工程により生成された分割情報をメモリ上のUUIDBox又はXMLBox、あるいはCOMマーカセグメントに記録する工程、
    を実行させ、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなり、
    UUIDBox又はXMLBoxあるいは符号中のCOMマーカセグメントに前記分割情報が記録されたJPEG2000ファミリーフォーマットのファイルを生成することを特徴とするプログラム。
  8. コンピュータにJPEG2000の符号から所要のタイルパートを選択する処理を行わせるためのプログラムであって、コンピュータに、
    メモリ上の前記符号中のCOMマーカセグメントに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知工程、
    前記分割方法検知工程により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別工程、
    を実行させ、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とするプログラム。
  9. コンピュータにJPEG2000ファミリーフォーマットのファイル内の符号から所要のタイルパートを選択する処理を行わせるプログラムであって、
    コンピュータに、
    メモリ上の前記符号中のCOMマーカセグメント、あるいは、メモリ上の前記ファイルのUUIDBox又はXMLBoxに記録されているタイルパートへの分割方法を示す分割情報により前記符号のタイルパートへの分割方法を検知する分割方法検知工程、
    前記分割方法検知工程により検知されたタイルパートへの分割方法及び前記符号のプログレッションオーダをもとに、前記所要のタイルパートが前記符号の何番目のタイルパートであるか識別するタイルパート識別工程、
    を実行させ、
    前記分割情報は、符号を構成するパケットの属性である解像度レベル、レイヤー及びコンポーネントの境界位置でタイルパートを分割するか否かを指定する第1のビット群と、該第1のビット群でタイルパートを分割すると指定された属性の全ての境界位置でタイルパートを分割するのか一部の境界位置でのみ分割するのかを指定する第2のビット群と、タイルパートを分割する解像度レベルの境界位置を指定する第3のビット群と、タイルパートを分割するレイヤーの境界位置を指定する第4のビット群と、タイルパートを分割するコンポーネントの境界位置を指定する第5のビット群とからなることを特徴とするプログラム。
  10. コンピュータに、メモリ上の前記符号中のTLMマーカセグメントに記録されている各タイルパートの長さをもとに、前記タイルパート識別工程により識別されたタイルパートについて、各タイルタイルパートから次のタイルパートへのシーク長を算出するシーク長算出工程を実行させることを特徴とする請求項8又は9記載のプログラム。
  11. 請求項6乃至10のいずれか1項記載のプログラムが記録されたコンピュータが読み取り可能な情報記録媒体。
JP2006067482A 2006-03-13 2006-03-13 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体 Expired - Fee Related JP4743613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006067482A JP4743613B2 (ja) 2006-03-13 2006-03-13 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006067482A JP4743613B2 (ja) 2006-03-13 2006-03-13 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体

Publications (2)

Publication Number Publication Date
JP2007243889A JP2007243889A (ja) 2007-09-20
JP4743613B2 true JP4743613B2 (ja) 2011-08-10

Family

ID=38588912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006067482A Expired - Fee Related JP4743613B2 (ja) 2006-03-13 2006-03-13 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体

Country Status (1)

Country Link
JP (1) JP4743613B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5479225B2 (ja) * 2010-05-27 2014-04-23 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004228964A (ja) * 2003-01-23 2004-08-12 Ricoh Co Ltd 画像処理装置、画像形成装置、プログラムおよび記憶媒体
JP2004254131A (ja) * 2003-02-20 2004-09-09 Ricoh Co Ltd 画像圧縮装置、画像処理装置、画像伸張装置、画像圧縮方法、画像処理方法、画像伸張方法、プログラム、及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004228964A (ja) * 2003-01-23 2004-08-12 Ricoh Co Ltd 画像処理装置、画像形成装置、プログラムおよび記憶媒体
JP2004254131A (ja) * 2003-02-20 2004-09-09 Ricoh Co Ltd 画像圧縮装置、画像処理装置、画像伸張装置、画像圧縮方法、画像処理方法、画像伸張方法、プログラム、及び記録媒体

Also Published As

Publication number Publication date
JP2007243889A (ja) 2007-09-20

Similar Documents

Publication Publication Date Title
JP4538430B2 (ja) サーバクライアント環境におけるシステム及び方法
US7580577B2 (en) Methods, apparatus and computer products for generating JPEG2000 encoded data in a client
JP4709493B2 (ja) 圧縮されたディジタル画像を通信する方法及び製造物
US7646927B2 (en) Image processing and display scheme for rendering an image at high speed
US20080134070A1 (en) Image processing apparatus and image processing method
JP4789192B2 (ja) 符号処理装置、プログラム及び情報記録媒体
JP2009009334A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2004274758A (ja) Jpp−ストリームからjpeg2000符号ストリームへの変換方法及び変換装置
JP2006196968A (ja) 符号処理装置、符号処理方法、プログラム及び情報記録媒体
JP2004274759A (ja) 制限されたアクセスとサーバ/クライアント受け渡しを有する圧縮されたディジタル画像の通信方法及び装置
JP2008140361A (ja) 画像処理装置、または画像処理方法
CN103841424B (zh) 随机存取存储器中压缩数据的系统及方法
JP2007097147A (ja) 画像処理装置および画像処理方法
JP5167944B2 (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
JP4609918B2 (ja) 画像処理システム、画像処理方法、プログラム及び情報記録媒体
JP4743613B2 (ja) 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体
JP2006253920A (ja) サーバ装置、送信処理方法、プログラム及び情報記録媒体
JP4748672B2 (ja) 符号処理装置、プログラム及び情報記録媒体
JP4773770B2 (ja) 画像処理システム、画像処理方法、プログラムおよび記録媒体
JP4874170B2 (ja) 画像処理装置及び画像処理方法
JP4859014B2 (ja) 画像処理装置、画像処理方法、プログラム及び情報記録媒体
JP5081663B2 (ja) 符号化装置、符号変換装置、符号伸張装置、符号化方法、符号変換方法及び符号伸張方法
JP5146145B2 (ja) 画像処理装置、画像処理方法、コンピュータプログラム、及び、情報記録媒体
JP4789197B2 (ja) 符号処理装置、符号処理方法、プログラム及び情報記録媒体
JP2006086579A (ja) 画像処理装置、プログラム、及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110407

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110427

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110428

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees