説明

画像処理装置

【課題】ある容量の目標値に対して、符号化処理を繰り返すことなく高速に圧縮符号化を実現することができる画像処理装置を提供する。
【解決手段】この画像処理装置は、画像データを圧縮符号化して圧縮符号化データを生成するJPEG2000符号化前半処理部1と、圧縮符号化データを格納するメモリ7と、符号化パラメータをもとに圧縮符号化データの符号量および圧縮符号化データに付随する制御情報の符号量を含む合計符号量を計算し、合計符号量を目標値と比較し、合計符号量が目標値以下となるための基準値(有効な符号化パス数)を出力する符号量計算部8と、有効な符号化パス数に相当する分の圧縮符号化データをメモリ7から読み出し、読み出した圧縮符号化データおよび圧縮符号化データに付随する制御情報を含む出力データを形成する符号形成部10とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを圧縮符号化する画像処理装置に関するものである。
【背景技術】
【0002】
この種の圧縮符号化方法としては例えばJPEG2000が知られている。JPEG2000は、医療、セキュリティ、インターネットなどの分野に応用可能な、高精細画像を扱うのに適した圧縮符号化の方法である。
【0003】
JPEG2000形式で形成した符号データは、画像データから生成した符号データ全体にわたる制御情報としてのメインヘッダおよびタイルパートヘッダと、画像の面積をプレシンクトと呼ばれる単位に分割し、それぞれのプレシンクトの制御情報を含むパケットヘッダと符号データからなるパケット群と、JPEG2000形式データの終端であることを示す符号データ終端マーカーを含む。パケットは、画像の面積をコードブロックと呼ばれる単位に分割した領域から生成した符号データから構成され、プレシンクトに含まれる全てのコードブロックの符号データが連続して格納される。パケットヘッダには、プレシンクトに含まれる全てのコードブロックの制御情報が連続して格納される。
【0004】
JPEG2000の符号化は、まず、画像データをY成分、Cb成分、Cr成分の3つの色成分に変換する。次に、上記の各色成分に対して2次元離散ウェーブレット変換により、縦方向および横方向の周波数成分を分離することによって、サブバンドLL、サブバンドHL、サブバンドLH、サブバンドHHのウェーブレット係数が得られる。次に、各色成分の各サブバンドのウェーブレット係数を、各画素の強度をあらわすビットごとに、ビットプレーンと呼ばれる単位に分割する。次に、各色成分の各サブバンドのウェーブレット係数を、コードブロック単位に面積を分割し、それぞれのコードブロックに含まれる、上記の各ビットプレーンに対して算術符号化を行う。その結果、符号化パスごとのMQ符号が得られる。符号化パスとは符号化の方法であり、ビットプレーンごとに、“significant propagation pass”、“magnitude refinement pass”、及び“cleanup pass”と呼ばれる3つの方法で符号化する。次に、算術符号化によって得られた符号データを、JPEG2000形式に形成する。
【0005】
一般に、画像データをJPEG2000に準拠して符号化し、JPEG2000形式に形成する過程で、符号量が元の画像データの量を下回るので、全体の容量の圧縮を行うことができるが、さらに容量が小さくなるよう圧縮する場合は、符号データの破棄を行う。この種の技術は例えば特許文献1に記載されている。
【特許文献1】特開2005−130101号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
画像から生成した圧縮符号データの容量をさらに圧縮するためには、符号データの一部を破棄する処理を行う。符号データを格納する記録媒体の容量に制限があるなどの理由で、符号データ量をある一定の目標値に収める必要があり、かつ生成した符号データ量が目標値を上回った場合、上回った量に応じて符号データの破棄を行う。このとき破棄する符号量が少ないほど、後の復号結果が良好な画質となる傾向があることから、目標値以下でかつ目標値になるべく近い符号量になるように符号の破棄を行うのが望ましい。しかし、画像データから生成した符号データの特性上、例えばデータの末尾を削除するなどの単純な方法で符号データの破棄を行うと、復号に必須な情報が破壊されて復号不能になったり、画像の品質が局所的に劣化したりするなどの問題が生じる。JPEG2000の場合、コードブロック単位に分割した画像の部位ごとに符号化を行うという特徴があることから、符号の破棄を行いつつ復号後に画像全体に渡って均一な画質を得るためには、それぞれのコードブロックに対応する符号のブロックごとに均一に破棄を行わなければならない。一方、符号量は画像のパターンに左右され、コードブロックごとに符号量がばらばらであることから、ある見込みをもってコードブロックごとに符号の破棄を行っていったとしても、全てのコードブロックに対応する符号の破棄を終えたとき、最終的に全体の符号量が目標値を超えてしまう場合がある。また、JPEG2000形式では、全体の符号量は符号量とパケットヘッダ量の合計であるが、パケットヘッダ量は符号データに左右されるため、JPEG2000形式に形成する際に、全体の符号量は目標値を超えてしまう場合もある。いずれの場合も、全体の符号量が目標値内に収まるまで符号化処理を繰り返さなければならないので処理時間が増大する。
【0007】
そこで、本発明は、ある容量の目標値に対して、符号化処理を繰り返すことなく高速に圧縮符号化を実現することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的は、画像データを圧縮符号化して圧縮符号化データを生成する符号化処理部と、前記圧縮符号化データを格納する記憶装置と、符号化パラメータをもとに前記圧縮符号化データの符号量および前記圧縮符号化データに付随する制御情報の符号量を含む合計符号量を計算し、前記合計符号量を目標値と比較し、前記合計符号量が前記目標値以下となるための基準値を出力する符号量計算部と、前記基準値に相当する分の前記圧縮符号化データを前記記憶装置から読み出し、前記読み出した圧縮符号化データおよび前記圧縮符号化データに付随する制御情報を含む出力データを形成する符号形成部とを備えた画像処理装置により達成される。ここで、前記圧縮符号化データは、JPEG2000に準拠するデータとすることができる。また、前記圧縮符号化データに付随する制御情報の符号量は、推定値としてテーブルに格納しておくことができ、また固定値として与えることができ、さらに計算により求められたものとすることができる。また、前記圧縮符号化データに付随する制御情報の符号量は、所定値以下の計算量で算出できるときは計算により求められたものを用い、前記所定値より大きい計算量を必要とするときは推定値としてテーブルに格納されているものを用いることができる。
【0009】
本発明に係る画像処理方法は、画像データを圧縮符号化して圧縮符号化データを生成する工程と、前記圧縮符号化データを記憶装置に格納する工程と、符号化パラメータをもとに前記圧縮符号化データの符号量および前記圧縮符号化データに付随する制御情報の符号量を含む合計符号量を計算し、前記合計符号量を目標値と比較し、前記合計符号量が前記目標値以下となるための基準値を出力する工程と、前記基準値に相当する分の前記圧縮符号化データを前記記憶装置から読み出し、前記読み出した圧縮符号化データおよび前記圧縮符号化データに付随する制御情報を含む出力データを形成する工程とを備える。ここで、前記圧縮符号化データは、JPEG2000に準拠するデータとすることができる。また、前記圧縮符号化データに付随する制御情報の符号量は、推定値としてテーブルに格納しておくことができ、また固定値として与えることができ、さらに計算により求められたものとすることができる。また、前記圧縮符号化データに付随する制御情報の符号量は、所定値以下の計算量で算出できるときは計算により求められたものを用い、前記所定値より大きい計算量を必要とするときは推定値としてテーブルに格納されているものを用いることができる。
【発明の効果】
【0010】
本発明によれば、ある容量の目標値に対して、符号化処理を繰り返すことなく高速に圧縮符号化を実現することができる画像処理装置を得ることができる。本発明の画像処理装置は、ある容量の目標値に対して同じか下回る符号量を出力する必要のある画像データの圧縮符号化において、特に圧縮符号化データに付随する制御情報の符号量として、例えばパケットヘッダ量テーブルに格納した推定値、あるいは固定値や計算値等を用いることができ、符号化処理をより簡易に、繰り返すことなく実現できる。これにより符号化処理時間を短縮することができる。
【発明を実施するための最良の形態】
【0011】
図1は、本発明の実施の形態の一例として示す画像処理装置Aの構成図である。画像処理装置Aは、符号化処理部(JPEG2000符号化前半処理部)1、符号データ転送制御部6、記憶装置(メモリ)7、符号量計算部8、記憶装置(メモリ)9、符号形成部10、及び、記憶装置(メモリ)11を備える。JPEG2000符号化前半処理部1は、入力する画像データを、入力する符号化パラメータに従い、JPEG2000に準拠した方法で圧縮符号化し、圧縮符号化データ(符号データ)の本体を出力する。符号データ転送制御部6は、JPEG2000符号化前半処理部1が出力した符号データをメモリ7に書き込みながら、符号データの制御情報を符号量計算部8へ出力する。符号量計算部8は、符号データ転送制御部6が出力する符号データの制御情報を入力し、符号化パラメータをもとに、符号データ本体と付随する制御情報からなる形成後の符号量を計算し、計算結果をメモリ9に順次書き込み、符号データ転送制御部6による符号データのメモリ7への書き込みが終了した後でメモリ9の計算結果を読み出し、符号量目標値と比較し、符号量が目標値以下となるための基準値(有効な符号化パス数)を出力する。符号形成部10は、符号量計算部8が出力する、符号量が目標値以下となるための有効な符号化パス数に相当する分の符号データを、メモリ7から符号データ転送部6を経由して読み出し、JPEG2000に準拠した形式の形成符号データを生成して出力し、符号量が目標値以下となるための有効な符号化パス数に相当する分から外れた符号データは破棄する。メモリ11はJPEG2000に準拠した形式に形成した符号データを書き込む記録媒体である。
【0012】
JPEG2000符号化前半処理部1は、JPEG2000に準拠した方法で画像データを符号化する周知の処理を行うものであり、色変換部2、2次元離散ウェーブレット変換部3、量子化部4、及び、算術符号化処理部5を備える。
【0013】
色変換部2は、画像データをY成分、Cb成分、Cr成分の3つの色成分に変換する。2次元離散ウェーブレット変換部3は、上記の各色成分に対して2次元離散ウェーブレット変換を行い、その結果、色成分ごとに得られるサブバンドLL、サブバンドHL、サブバンドLH、サブバンドHHのウェーブレット係数を出力する。量子化部4は、各色成分の各サブバンドのウェーブレット係数を符号化パラメータに含まれる量子化パラメータに基づいて、各画素の強度をあらわすビットごとに、ビットプレーンと呼ばれる単位に分割する。算術符号化処理部5は、各色成分の各サブバンドのウェーブレット係数を、コードブロック単位に面積を分割し、それぞれのコードブロックに含まれる、上記の各ビットプレーンに対して算術符号化を行い、その結果得られる符号化パスごとのMQ符号を順次出力する。図2は、算術符号化処理部5が出力するY成分のMQ符号の一例を示す図である。符号化をコードブロック単位で行うことから、出力する符号はコードブロック単位で連続しており、それぞれのコードブロックの符号は、複数の符号化パスの出力によって構成されている。Cb成分、Cr成分に関しても、同様の出力が得られる。なお、算術符号化5までのJPEG2000に準拠して行う符号化の内容については、周知であるため詳細な説明は省く。
【0014】
図3は、符号形成部10が出力し、メモリ11に書き込む、JPEG2000に準拠した形成符号データの形式の一例を示す図である。画像データ全体にわたる制御情報としてメインヘッダとタイルパートヘッダを書き込んだ後、画像の面積をプレシンクト単位に分割し、それぞれのプレシンクトの制御情報を含むパケットヘッダと符号データからなるパケットを生成して順次書き込み、全てのパケットを書き込んだ後、符号データ終端マーカーを書き込む。パケットは、プレシンクトに含まれる全てのコードブロックの制御情報ならびに符号データ本体を含む。パケットヘッダには、プレシンクトに含まれる全てのコードブロックの制御情報を連続して書き込む。なお、JPEG2000に準拠した形成符号データの形式については、周知であるため詳細な説明は省く。
【0015】
図4は、符号量計算部8の一例を示すブロック図である。符号量計算部8は、サブバンドLL符号量計算部12、サブバンドHL符号量計算部13、サブバンドLH符号量計算部14、サブバンドHH符号量計算部15、第2カウンタ22、遅延回路23、加算器24、25、26、27、28、30、31、レジスタ29、及び、比較器32を備える。
【0016】
サブバンドLL符号量計算部12は、符号量カウンタ16、第1カウンタ17、遅延回路18、加算器19、マルチプレクサ20、及び、アドレス生成回路21を備える。サブバンドHL符号量計算部13、サブバンドLH符号量計算部14、及び、サブバンドHH符号量計算部15は、サブバンドLL符号量計算部12と同様の構成である。
【0017】
符号量カウンタ16は、コードブロックごとの無効な上位ビットプレーンの数を示す零ビットプレーン情報P1と、符号化パラメータとして入力するコードブロックサイズP2と、同じく符号化パラメータとして入力するプレシンクトサイズP3と、符号データ1バイトの転送が行われたときHighレベルとなる符号データ転送信号C1と、符号化パスの最終符号データの転送が行われたときHighレベルとなる符号化パス最終符号データ転送信号C2と、コードブロックのなかで何番目の符号化パスであるかを示す第1カウント値P4から、コードブロックごとに符号データ本体と、推測されるパケットヘッダの容量の合計をカウントし、符号量カウント値を出力する。入力する信号のうち、零ビットプレーン情報P1、符号データ転送信号C1、及び、符号化パス最終符号データ転送信号C2は、JPEG2000符号化前半処理部1が出力した信号を、符号データ転送制御部6を経由して入力する。符号量カウンタ16の構成および動作については後述する。
【0018】
第1カウンタ17は、符号化パス最終符号データ転送信号C2と、コードブロックの最終符号データの転送が行われたときHighレベルとなるコードブロック最終符号データ転送信号C3を入力し、符号化パス最終符号データ転送信号C2がHighとなるごとに1ずつカウントし、コードブロック最終符号データ転送信号C3がHighとなった場合にはカウントを初期状態すなわち0に戻し、コードブロックのなかで何番目の符号化パスであるかを示す第1カウント値P4を出力する。コードブロック最終符号データ転送信号C3は、JPEG2000符号化前半処理部1が出力した信号を、符号データ転送制御部6を経由して入力する。
【0019】
マルチプレクサ20は、アドレス制御信号の作用により、符号量カウント値をメモリ9に書き込む動作を行うときは、第1カウント値P4を出力し、有効符号化パス数を計算する動作を行うときは、第2カウント値を出力する。
【0020】
アドレス生成21は、マルチプレクサ20が出力する、第1カウント値P4、もしくは、第2カウント値を、サブバンドLLに割り当てられたメモリ9の物理的なアドレスに変換し、メモリ9アドレスを出力する。アドレス生成21がメモリ9アドレスを出力することによって、メモリ9の対応する領域に格納されているデータが、自動的に、メモリ9読み出しデータLLにあらわれる。
加算器19は、メモリ9読み出しデータLLと、符号量カウント値を加算し、メモリ9書き込みデータを出力する。
【0021】
画像データの符号化処理を開始したとき、コードブロックのなかで何番目の符号化パスであるかを示す第1カウント値P4の出力は初期状態の0を示している。符号量カウンタ16は、符号データ転送信号C1がHighレベルとなるごとに、符号量をカウントする。符号化パス最終符号データ転送信号C2がHighレベルになる直前、メモリ9書き込みデータは、メモリ9読み出しデータLLにあらわれているメモリ9の初期値0と、0番目の符号化パスの符号量カウント値を加算した値を出力している。
【0022】
符号化パス最終符号データ転送信号C2がHighレベルになると、遅延回路18の作用によりメモリ9書き込み命令がHighレベルとなり、0番目の符号化パスに対応するメモリ9の領域に、直前のメモリ9書き込みデータが書き込まれ、同時に、符号量カウンタ16が初期状態の0になり、さらに、第1カウンタ17が1カウントする。
【0023】
第1カウンタが1カウントしたことにより、1番目の符号化パスに対応するメモリ9の領域に格納されている初期値0が、メモリ9読み出しデータLLにあらわれる。符号量カウンタ16は、符号データ転送信号C1がHighレベルとなるごとに、符号量をカウントする。符号化パス最終符号データ転送信号C2がHighレベルになる直前、メモリ9書き込みデータは、メモリ9読み出しデータLLにあらわれているメモリ9の初期値0と、1番目の符号化パスの符号量カウント値を加算した値を出力している。
【0024】
符号化パス最終符号データ転送信号C2がHighレベルになると、遅延回路18の作用によりメモリ9書き込み命令がHighレベルとなり、1番目の符号化パスに対応するメモリ9の領域に、直前のメモリ9書き込みデータが書き込まれ、同時に、符号量カウンタ16が初期状態の0になり、さらに、第1カウンタ17が1カウントする。
【0025】
1回もしくは複数回の符号データ転送信号C1のHighレベル出力と、1回の符号化パス最終符号データ転送信号C2のHighレベル出力を交互に繰り返しながら、符号化パス最終符号データ転送信号C2がHighレベルとなるたびに第1カウンタ17が1カウントしていくと、N番目の符号化パスの符号データ転送が終了した時点で、0番目の符号化パスに対応するメモリ9の領域には0番目の符号化パスの符号量が、1番目の符号化パスに対応するメモリ9の領域には1番目の符号化パスの符号量が、N番目の符号化パスに対応するメモリ9の領域にはN番目の符号化パスの符号量が、それぞれ格納されている。
【0026】
0番目のコードブロックに含まれる符号化パスの数がNであるとすると、符号化パス最終符号データ転送信号C2がN回目にHighレベルとなるとき、同時にコードブロック最終符号データ転送信号C3がHighレベルとなり、第1カウンタ17は初期状態の0になる。次に符号データ転送信号C1がHighレベルになることは、1番目のコードブロックの、0番目の符号化パスに対応する符号データ転送が行われたことを示している。
【0027】
サブバンドLLに含まれるコードブロックの数がZであるとき、0番目からZ番目のそれぞれのコードブロックに含まれる符号化パスの数を比較し、その最大値をMとすると、Z番目のコードブロックの符号データ転送が終了した時点で、0番目の符号化パスに対応するメモリ9の領域には0番目からZ番目までのコードブロックの0番目の符号化パスの符号量の合計が、1番目の符号化パスに対応するメモリ9の領域には0番目からZ番目までのコードブロックの1番目の符号化パスの符号量の合計が、M番目の符号化パスに対応するメモリ9の領域には、0番目からZ番目までのコードブロックのM番目の符号化パスの符号量が、それぞれ格納されている。
【0028】
第2カウンタは、符号データ転送が全て終了した後、初期値0から1ずつカウントし、コードブロックのなかで何番目の符号化パスであるかを示す第2カウント値を出力する。
【0029】
全てのサブバンドの符号データ転送が全て終了した後、アドレス制御信号を切り替えることにより、マルチプレクサ20は第2カウント値を出力する。メモリ9読み出しデータLLには、サブバンドLLに含まれる全てのコードブロックの、各符号化パスの符号量の合計が、順にあらわれる。同様に、サブバンドHL符号量計算部13、サブバンドLH符号量計算部14、及び、サブバンドHH符号量計算部15から、各サブバンドに含まれる全てのコードブロックの、各符号化パスの符号量の合計を読み出す。サブバンドLL符号量計算部12、サブバンドHL符号量計算部13、サブバンドLH符号量計算部14、及び、サブバンドHH符号量計算部15から読み出した、4つのサブバンドの各符号化パスの符号量の合計は、さらに、加算器25、26、及び、27によって合計する。
【0030】
全てのサブバンドの符号データ転送が全て終了した時点で、各符号化パスの符号量の積算値を保持するレジスタ29の値は初期値の0である。第2カウンタ22と加算器25、26、及び、27の作用により、加算器27が4つのサブバンドの各符号化パスの符号量の合計を順に出力すると、加算器28の作用により、レジスタ29には、符号量の積算値が次々に書き込まれる。すなわち、第2カウンタ22の出力が0番目の符号化パスを示す0のとき、レジスタ29には0番目の符号化パスの符号量の合計が、第2カウンタ22の出力が1番目の符号化パスを示す1のとき、レジスタ29には0番目から1番目までの符号化パスの符号量の合計が、第2カウンタ22の出力がM番目の符号化パスを示すMのとき、レジスタ29には0番目からM番目までの符号化パスの符号量の合計が、それぞれ書き込まれる。
【0031】
レジスタ29の出力に、加算器30、及び、31の作用により、メインヘッダ符号量P5、および、タイルパートヘッダ符号量P6を加算した結果を、比較器32によって、符号量目標値P6と比較する。レジスタ29の出力と、メインヘッダ符号量P5、および、タイルパートヘッダ符号量P6の合計が、符号量目標値P6を上回ると、比較器32が出力する有効符号化パス数決定信号C4がHighレベルとなる。このとき、第2カウント値は、符号量の合計が符号量目標値P6をちょうど上回った符号化パスの番号を示しており、遅延回路23を経由したあと、加算器24でマイナス1を加算すると、有効符号化パス数決定信号C4がHighレベルになると同時に、符号量目標値P6とちょうど同じか下回ると推測される符号化パス数が、有効符号化パス数P7にあらわれる。
【0032】
図5は、符号量カウンタ16の一例を示すブロック図である。パケットヘッダ量テーブル16aは、コードブロックごとの無効な上位ビットプレーンの数を示す零ビットプレーン情報P1と、符号化パラメータとして入力するコードブロックサイズP2と、同じく符号化パラメータとして入力するプレシンクトサイズP3と、コードブロックのなかで何番目の符号化パスであるかを示す第1カウント値P4を入力し、4つの入力の組み合わせにより、パケットヘッダ量の推測値を選択して出力する。パケットヘッダ量テーブル16aにおいて、上記4つの入力の組み合わせに対して出力するパケットヘッダ量の推測値は任意に設定できるが、複数種類の画像を符号化し、上記4つの入力の組み合わせと符号化結果の関係の傾向を調査した上で設定することが望ましい。
【0033】
ANDゲート16bは、固定の論理値1と、符号データ1バイトの転送が行われたときHighレベルとなる符号データ転送信号C1を入力し、符号データ転送信号C1がHighレベルのとき符号データ1バイトの転送が行われたことを示す1を出力する。
【0034】
ANDゲート16cは、パケットヘッダ量テーブル16aが出力するパケットヘッダ量と、符号化パスの最終符号データの転送が行われたときHighレベルとなる符号化パス最終符号データ転送信号C2を入力し、符号化パス最終符号データ転送信号C2がHighレベルのときパケットヘッダ量を出力する。
【0035】
ORゲート16dは、上記ANDゲート16bの出力と、ANDゲート16dの出力を入力し、論理ORを出力する。すなわち、符号データ転送信号C1がHighレベルのときは、符号データ1バイトの転送が行われたことを示す1を出力し、符号化パス最終符号データ転送信号C2がHighレベルのときは、パケットヘッダ量を出力する。
【0036】
レジスタ16gは、ORゲート16iの作用により、符号データ転送信号C1と、符号化パス最終符号データ転送信号C2と、遅延回路16hの作用により遅延した符号化パス最終符号データ転送信号C2のうちいずれかがHighレベルのときは、マルチプレクサ16fの出力によって値を更新し、符号データ転送信号C1と、符号化パス最終符号データ転送信号C2と、遅延回路16hの作用により遅延した符号化パス最終符号データ転送信号C2のうちいずれもHighレベルでないときは、値を保持する。
【0037】
マルチプレクサ16fは、遅延回路16hの作用により遅延した符号化パス最終符号データ転送信号C2がHighレベルでないとき、レジスタ16gが保持し出力している値と、上記ORゲート16dの出力を、加算器16eで加算した結果を出力し、遅延回路16hの作用により遅延した符号化パス最終符号データ転送信号C2がHighレベルのときは、0を出力する。
【0038】
符号データ転送信号C1がHighレベルになるごとに、レジスタ16gの値は保持している値に1を加算した値で更新される。符号化パス最終符号データ転送信号C2がHighレベルになると、レジスタ16gの値は、まず、保持している値にパケットヘッダ量を加算した値で更新され、次に、遅延回路16hの作用により遅延した符号化パス最終符号データ転送信号C2により、初期値の0で更新される。レジスタ16gの値は、符号量カウント値として出力する。
【0039】
次に、パケットヘッダ量テーブル16aの求め方の一例を説明する。パケットヘッダは、零長パケット情報と、コードブロックの包含情報と、零ビットプレーン情報と、符号化パス数情報と、コードブロックの符号量情報から構成され、プレシンクトに含まれる全てのコードブロックについての情報が連続して格納される。これらの情報は、JPEG2000に準拠しており周知であるため、詳細な説明は省く。パケットヘッダ量を決定する上で支配的なのは、零ビットプレーン情報と、符号化パス数情報と、コードブロックの符号量情報である。零ビットプレーン情報のデータ長は、零ビットプレーン情報と、プレシンクトサイズとコードブロックサイズの関係から得られる、プレシンクトに含まれるコードブロックの数によって、推測値を求めることができる。符号化パス数情報のデータ長は、零ビットプレーン情報から、推測値を求めることができる。コードブロックの符号量情報のデータ長も、零ビットプレーン情報から推測値を求めることができる。零長パケット情報は、1ビットの固定データ長である。コードブロックの包含情報のデータ長は、変動がごく小さいため、推測値では、零長パケット情報との合計を8ビットの固定データ長として扱えば、精度としては十分である。したがって、1つのコードブロックに関してパケットヘッダに含まれる情報のデータ長の推測値は、零ビットプレーン情報と、プレシンクトに含まれるコードブロックの数によって得られる。
【0040】
パケットヘッダ量テーブルを求めるために、まず、複数の種類の画像を、図1のJPEG2000符号化前半処理部1に示すような装置によって符号化する。このとき、算術符号化処理部5は、コードブロックごとに、画素を構成する最上位ビットのビットプレーンから順に、最初に有意なビットがあらわれるビットプレーンを探索するので、この処理によって同時に、零ビットプレーン情報を得ることができる。こうして得られる零ビットプレーン情報を収集し、平均的な零ビットプレーン情報を求める。ここでは仮に、平均的な零ビットプレーン情報が8であったとする。さらに対象とする画像処理装置が扱える最大のビットプレーン数が12であったとすると、平均的な有意なビットプレーン数は12から8をひいた4である。これらの結果をもとに、図5に示すパケットヘッダ量テーブル16aを求める。
【0041】
例として、零ビットプレーン情報P1の値が8、コードブロックサイズP2が32画素、プレシンクトサイズP3が64画素、符号化パス番号を示す第1カウント値P4が0の場合の、パケットヘッダ長を求める。コードブロックサイズP2と、プレシンクトサイズP3は、いずれも正方形の一辺の長さを示した値であり、プレシンクトに含まれるコードブロック数は4と計算できる。零ビットプレーン情報のデータ長は、平均的な零ビットプレーン情報が8という前提から、プレシンクトに含まれる4つのコードブロックの中で最小の零ビットプレーン情報が0の場合に、最大の10ビットとなる。符号化パス数情報のデータ長は、JPEG2000の規格によって、零ビットプレーン情報P1と画像処理装置が扱える最大のビットプレーン数から一意に決定でき、零ビットプレーン情報P1の値が8で画像処理装置が扱える最大のビットプレーン数が12の場合は、9ビットと求められる。コードブロックの符号量情報は、同じくJPEG2000の規格によって、零ビットプレーン情報P1と画像処理装置が扱える最大のビットプレーン数から一意に決定でき、この場合は10ビットと求められる。零長パケット情報とコードブロックの包含情報のデータ長は、前述の通り8ビットの固定データ長として扱う。以上の合計が、該当する入力条件におけるパケットヘッダ量テーブルの出力であり、37である。
【0042】
パケットヘッダ量は、パケットに含まれるコードブロックの、符号化パス全てに対して一度だけ加算すればよい。したがって、符号化パス番号を示す第1カウント値P4が0以外の場合は、零ビットプレーン情報P1と、コードブロックサイズP2と、プレシンクトサイズP3がいずれの入力値であっても、パケットヘッダ量テーブルの出力は0である。以上と同様にして、零ビットプレーン情報P1と、コードブロックサイズP2と、プレシンクトサイズP3と、符号化パス番号を示す第1カウント値P4の組合せに応じた、パケットヘッダ量テーブルの出力を求める。
【0043】
別の方法として、パケットヘッダ量テーブルを用いることなく、パケットヘッダ量の推測値を固定値とすることができる。この場合、図5に示す符号量カウンタのパケットヘッダ量テーブル16aを削除し、パケットヘッダ量の推測値を固定値とする。パケットヘッダ量の推測値は、画像処理装置が扱える最大のビットプレーン数と、同じく最大のプレシンクトサイズと、同じく最小のコードブロックサイズから、上記と同様にして求める。もしくは、すでにパケットヘッダ量テーブルを求めてある場合は、パケットヘッダ量テーブルの出力として取り得る値の最大値を選択しても良い。
【0044】
パケットヘッダ量の推測値を固定値とすることの長所は、パケットヘッダ量テーブルを不要とし、装置構成を簡単かつ安価にできることである。短所は、最終的に出力する形成符号データの容量が、パケットヘッダ量テーブルを用いる場合に比べて、目標値を下回る量が大きくなることである。前述した通り、破棄する符号量が少ないほど、後の復号結果が良好な画質となる傾向があり、符号化の際にパケットヘッダ量テーブルを用いた方が、復号後の画質に期待できる。
【0045】
さらに別の方法として、パケットヘッダ量の推測値を計算回路によって求めることができる。この場合、図6に示すように、上述の図5に示す符号量カウンタのパケットヘッダ量テーブル16aを計算回路16jと置き換える。計算回路16jは、JPEG2000に準拠した方法でパケットヘッダを生成するのと同じ動作をしながら、実際のパケットヘッダ量と同じ値を出力する。
【0046】
パケットヘッダ量の推測に計算回路を用いることの長所は、最終的に出力する形成符号データの容量を、高い精度で目標値に近づけることができることである。短所は、計算回路によって装置全体の規模が大きくなることと、計算回路の出力の待ち時間によって符号化処理のパフォーマンスが悪化する可能性があることである。
【0047】
さらに別の方法として、パケットヘッダ量の推測値を計算回路とパケットヘッダ量テーブルの組合せによって求めることができる。JPEG2000に準拠した符号化の、画像処理装置による実現を現実的に考えると、装置の規模と、パフォーマンスと、符号データ量の目標値に対する精度との間で、トレードオフが発生することが予測される。このトレードオフを解決するために、パケットヘッダ量テーブルを用いる方法と、計算回路を用いる方法とを組み合わせることが有効になる場合が考えられる。例えば、プレシンクトに含まれるコードブロックの数が4以下の場合は計算回路を使い、それ以外の場合はパケットヘッダ量テーブルを用いる方法がある。計算回路の場合、零ビットプレーン情報のデータ長はタグツリーと呼ばれる方法で計算するが、プレシンクトに含まれるコードブロックの数が大きくなると計算量が増大し、回路規模、パフォーマンス共に悪化する。この問題を、パケットヘッダ量テーブルを併用することで回避することができる。
【0048】
図7は、メモリ9に格納した、各符号化パスの符号量の形式の一例を示す図である。符号化パスごとに符号量の合計を格納する領域を、サブバンドごとに設ける。各サブバンドで区切られた領域ごとに、独立して書き込みおよび読み出しができることが望ましい。
【0049】
以上の処理により、符号化処理を繰り返すことなく、圧縮符号化を実現することができる。
【図面の簡単な説明】
【0050】
【図1】本発明の実施の形態の一例として示す画像処理装置の構成図である。
【図2】算術符号化処理部が出力するY成分のMQ符号の一例を示す図である。
【図3】符号形成部が出力しメモリ11に書き込むJPEG2000に準拠した形成符号データの形式の一例を示す図である。
【図4】符号量計算部の一例を示すブロック図である。
【図5】符号量カウンタの一例を示すブロック図である。
【図6】符号量カウンタの他の例を示すブロック図である。
【図7】メモリ9に格納した各符号化パスの符号量の形式の一例を示す図である。
【符号の説明】
【0051】
1 JPEG2000符号化前半処理部
2 色変換部
3 2次元離散ウェーブレット変換部
4 量子化部
5 算術符号化処理部
6 符号データ転送制御部
7,9,11 メモリ
8 符号量計算部
10 符号形成部
12 サブバンドLL符号量計算部
13 サブバンドHL符号量計算部
14 サブバンドLH符号量計算部
15 サブバンドHH符号量計算部
16 符号量カウンタ
17 第1カウンタ
18,23 遅延回路
19,24,25,26,27,28,30,31 加算器
20 マルチプレクサ
21 アドレス生成回路
22 第2カウンタ
29 レジスタ
32 比較器
A 画像処理装置

【特許請求の範囲】
【請求項1】
画像データを圧縮符号化して圧縮符号化データを生成する符号化処理部と、前記圧縮符号化データを格納する記憶装置と、符号化パラメータをもとに前記圧縮符号化データの符号量および前記圧縮符号化データに付随する制御情報の符号量を含む合計符号量を計算し、前記合計符号量を目標値と比較し、前記合計符号量が前記目標値以下となるための基準値を出力する符号量計算部と、前記基準値に相当する分の前記圧縮符号化データを前記記憶装置から読み出し、前記読み出した圧縮符号化データおよび前記圧縮符号化データに付随する制御情報を含む出力データを形成する符号形成部とを備えたことを特徴とする画像処理装置。
【請求項2】
前記圧縮符号化データが、JPEG2000に準拠するデータであることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記圧縮符号化データに付随する制御情報の符号量が、推定値としてテーブルに格納されていることを特徴とする請求項1または2記載の画像処理装置。
【請求項4】
前記圧縮符号化データに付随する制御情報の符号量が、固定値として与えられていることを特徴とする請求項1または2記載の画像処理装置。
【請求項5】
前記圧縮符号化データに付随する制御情報の符号量が、計算により求められたものであることを特徴とする請求項1または2記載の画像処理装置。
【請求項6】
前記圧縮符号化データに付随する制御情報の符号量が、所定値以下の計算量で算出できるときは計算により求められたものを用い、前記所定値より大きい計算量を必要とするときは推定値としてテーブルに格納されているものを用いることを特徴とする請求項1または2記載の画像処理装置。
【請求項7】
画像データを圧縮符号化して圧縮符号化データを生成する工程と、前記圧縮符号化データを記憶装置に格納する工程と、符号化パラメータをもとに前記圧縮符号化データの符号量および前記圧縮符号化データに付随する制御情報の符号量を含む合計符号量を計算し、前記合計符号量を目標値と比較し、前記合計符号量が前記目標値以下となるための基準値を出力する工程と、前記基準値に相当する分の前記圧縮符号化データを前記記憶装置から読み出し、前記読み出した圧縮符号化データおよび前記圧縮符号化データに付随する制御情報を含む出力データを形成する工程とを備えたことを特徴とする画像処理方法。
【請求項8】
前記圧縮符号化データが、JPEG2000に準拠するデータであることを特徴とする請求項7記載の画像処理方法。
【請求項9】
前記圧縮符号化データに付随する制御情報の符号量が、推定値としてテーブルに格納されていることを特徴とする請求項7または8記載の画像処理方法。
【請求項10】
前記圧縮符号化データに付随する制御情報の符号量が、固定値として与えられていることを特徴とする請求項7または8記載の画像処理方法。
【請求項11】
前記圧縮符号化データに付随する制御情報の符号量が、計算により求められたものであることを特徴とする請求項7または8記載の画像処理方法。
【請求項12】
前記圧縮符号化データに付随する制御情報の符号量が、所定値以下の計算量で算出できるときは計算により求められたものを用い、前記所定値より大きい計算量を必要とするときは推定値としてテーブルに格納されているものを用いることを特徴とする請求項7または8記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−301211(P2008−301211A)
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願番号】特願2007−145439(P2007−145439)
【出願日】平成19年5月31日(2007.5.31)
【出願人】(000233295)日立情報通信エンジニアリング株式会社 (195)
【Fターム(参考)】