近年、高精細画像を取り扱うのに適した圧縮符号化方法としてJEPG2000が知られている。JPEG2000の符号化処理では、画像データをY,Cb,Crの各色成分のデータに変換した後、それぞれのデータに対して周波数解析として2次元離散ウェーブレット変換を行う。
JPEG2000は、画像データの圧縮伸長に関する形式である。図9は、JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。この機能ブロック図は、JPEG2000形式の画像圧縮伸長用の画像処理用コンピュータプログラムに従いコンピュータが実行することになる各種の機能に対応するアルゴリズムをブロック化して示している。
図9に示すように、JPEG2000アルゴリズムは、色空間変換・逆変換部111、2次元ウェーブレット変換・逆変換部112、量子化・逆量子化部113、エントロピー符号化・復号化部114、タグ処理部115によって構成されている(例えば、非特許文献1参照。)。
ウェーブレット変換により得られたウェーブレット係数のデータ(例えば16ビットデータ)を、サブバンド(例えば、レベル3のウェーブレット変換の場合、3LL,3HL,3LH,3HH,2HL,2LH,2HH,lHL,1LH,1HH)を処理単位としてビットプレーンに分割し、サブバンド毎に各ビットプレーンのデータを上位から順に3通りの方法によりスキャンして算術符号化を行う。上記3通りの方法は、「シグニフィカント・プロパゲーション・パス(significant propagation pass)」、「マグニチュード・リファインメント・パス(magnitude refinement pass)」、「クリーンアップ・パス(cleanup pass)」と呼ばれている。
符号データの圧縮は、上記3通りの方法によるスキャンで得られる各サブバンドの全コードブロックのコーディングパスの符号データを最下位のビットプレーン側から順に均一に削除(トランケーション)することにより行う。ここで、符号データの削除とは、削除するビットデータの値を0(無効データ)に置きかえることをいう。JPEG2000の符号化処理の詳細については非特許文献1を参照されたい。
また、画像圧縮技術に関する従来文献としては、例えば上述した特許文献1の他に、特許文献2、特許文献3などがある。以下、これら従来文献の概要を簡単に説明する。
特許文献1に開示されたものは、JPEG2000形式での画像の圧縮処理を実行する圧縮手段と、JPEG2000以外の形式で圧縮された画像の伸長処理を実行する伸長手段とを備え、記憶領域に記憶された画像ファイルについての関心領域の指定を許容し、画像ファイルが非圧縮ファイル又はJPEG2000以外の形式で圧縮された圧縮ファイルであることを判定し、画像ファイルが非圧縮ファイルであると判定され場合には圧縮手段で圧縮し、JPEG2000以外の形式で圧縮された圧縮ファイルであると判定された場合には伸長手段で伸長してから圧縮手段で圧縮し、圧縮画像から、指定された関心領域に対応するブロックを抽出し出力するものである。
特許文献2に開示されたものは、画像データを周波数解析して得られる係数データを処理単位毎に符号化して符号データを生成する符号化部と、上記符号化部において処理単位毎に生成される符号データを削除することにより符号データの量を削減するデータ削減部と、各処理単位の係数データを更に第2処理単位の係数データに分割し、第2処理単位の係数データの値の大きさに応じて、上記データ削減部における符号データの削減量を上記第2処理単位で増やすデータ処理部を備えることを特徴とするものである。
また、特許文献3に開示されたものは、画像データを周波数解析して得られる係数データを処理単位で符号化して符号データを生成する符号化部と、符号データのうち、各処理単位の係数データの下位ビット側のデータに対応する符号データから削除する内容を決めるデータを、データNo.の増加に伴い符号データの削減量が次第に増加又は減少し、かつ、再生画像の質が次第に劣化又は向上するように並べたテーブルと、テーブルより読み出したデータに従い符号データを削除した場合の符号データの変量を算出し、算出した符号データの変量が目標値であるとみなせる1つのデータのデータNo.を特定するレートコントロール部とを備えることを特徴とするものである。
図10は、特許文献2,3に開示された画像圧縮装置の構成を示す図である。図10に示すように、画像圧縮装置100は、ウェーブレット変換部10、算術符号化部20、パケットヘッダ生成処理部30、メモリコントローラ40及びDRAM(Dynamic Random Access)50で構成される。メモリコントローラ40は、いわゆるアービタ回路であり、上記ウェーブレット変換部10、算術符号処理部20及びパケットヘッダ生成処理部30が備える各DMA(Direct Memory Access)13、21、25、31、33、35及び37のDRAM50に対するデータアクセス権の調停を行う。
ウェーブレット変換部10は、画像データを16ビットのウェーブレット係数に変換する。色変換回路11は、入力される画像データをY、Cb及びCrの各色成分に変換して出力する。ウェーブレット変換回路12は、色変換後の各成分のデータに対して2次元離散ウェーブレット変換を実行する。DMA13は、生成されたウェーブレット係数をDRAM50の所定のアドレスに格納する。
算術符号化部20は、上記ウェーブレット変換部10においてDRAM50に格納されたウェーブレット係数に対して算術符号化処理を施し、各サブバンドのコーディングパス毎の符号データをDRAM50に書き込むと共に、各サブバンドのコードブロック毎のマスク量(コーディングパス枚数)を特定し、特定したマスク量をメモリA又はメモリBに書き込む。
更に、上記特定したマスク量及び各コードブロックのコーディングパス毎の符号量から、トランケーションデータに基づいて各サブバンドのコーディングパスを1枚ずつ削除する場合に減少する符号量を特定し、メモリC又はメモリDに書き込む。
DMA21は、DRAM50の所定のアドレスに格納されているウェーブレット係数をサブバンド単位で読み出す。読み出された16ビットのウェーブレット係数は、量子化回路22においてエントロピー量子化された後、ビットプレーン分割回路23に入力され16枚のビットプレーンに分割される。
算術符号化回路24は、サブバンド毎に各ビットプレーンのデータを上位ビットから順に3通りの方法(コーディングパスという)によりスキャンして算術符号化を行う。上記3通りの方法は、「シグニフィカント・プロパゲーション・パス(significant propagation pass)」、「マグニチュード・リファインメント・パス(magnitude refinement pass)」、「クリーンアップ・パス(cleanup pass)」と呼ばれる。算術符号化部24から出力される符号データは、15×3+1=46枚のコーディングパスの符号データで成り、DMA25を介してDRAM50に書き込まれる。
DMA21によってDRAM50から読み出されたウェーブレット係数は、量子化回路22だけでなく平均値算出回路26にも入力される。平均値算出回路26では、各コードブロックの有効画素のウェーブレット係数の平均値を算出して出力する。マスキング係数計算回路27は、平均値算出回路26から順に出力される各コードブロック毎のウェーブレット係数の平均値の値に応じて0枚、1枚、2枚の追加のマスキング係数、即ち、マスク量(符号データを削除するコーディングパスの枚数)を特定して出力する。メモリA及びメモリBは、処理するフレーム画像単位で交互にイネーブルに切り換えられるメモリであり、マスキング係数計算回路27から出力される各サブバンドのコードブロック毎のマスク量を記録する。
算術符号化回路24の出力する符号データは、符号量算出回路28にも出力される。符号量算出回路28では、各コードブロックのビットプレーンに対応するコーディングパス毎の符号量を計数し、係数値をデータ処理回路29に出力する。データ処理回路29には、更に、上記メモリA又はメモリBに書き込まれた各コードブロックのマスク量(コーディングパス枚数)が入力される。データ処理回路29は、各サブバンドのコーディングパスの符号データを最下位のビットプレーン側から1枚ずつ削除する場合において、更に、マスク量を考慮した符号データの削減量を求め、求めた符号データの削減量を表すデータをメモリC又はメモリDに書き込む。
パケットヘッダ生成処理部30は、上記算術符号化部20において求めた、各サブバンドのコーディングパスの符号データを最下位ビットプレーン側から1枚ずつ削除する場合であって、更に、コードブロック毎のマスク量を考慮に入れた場合の符号データの削減量に基づいて、符号データを所望量だけ削除するために適当なトランケーションデータのデータNo.を特定し、特定したデータNo.のトランケーションデータに基づいて得られる符号データのパケットヘッダを生成し、ビットストリームを形成して出力する。レートコントロール回路32は、まず、データNo.128のトランケーションデータをDMA31を介してDRAM50より読み出し、読み出したトランケーションデータのうち容に従い、全てのサブバンドについてコードブロック毎に特定される符号データの削減量の合計を算出し、目標削減量との比較を行う。
ここで、目標削減量に満たない場合には、より大きな値のデータNo.のトランケーションデータを読み出し、当該データのうち容に従い全てのサブバンドにおけるデータ削減量の合計を求める。逆の場合、即ち、符号データの削減量の合計値が目標削減量よりも多い場合、より小さな値のデータNo.のトランケーションデータを読み出し、符号データの削減量を再度算出する。上記符号データの削減量が目標削減量であるとみなせる値になる1のデータNo.を特定し、このデータNo.を表すデータを後段のパケット情報生成回路34に出力する。
レートコントロール回路32は、大きく分けてアドレス生成回路、符号量演算回路及びデータNo.切換回路とで構成される。アドレス生成回路及び符号量演算回路は、指定されたデータNo.のトランケーションデータを上記トランケーションテーブルから読出し、読み出したトランケーションデータのうち容に従い各処理単位の符号データの下位ビット側のデータを削除する場合の符号データの変量を算出する演算部として機能する。アドレス生成回路は、DMA31を介して入力されるトランケーションデータのうち容に基づいて加算又は減算させるビットプレーンの符号量のデータを読み出すアドレスを生成し、メモリC及びメモリDに出力する。
メモリC及びメモリDのうち、処理しているフレーム画像のデータが格納されており、イネーブル状態にあるメモリは、指定されたアドレスに格納している符号データの削減量を表すデータを符号量演算回路に出力する。符号量演算回路は、メモリC又はメモリDより送られてくるデータ削減量の全サブバンドについての合計を求め、求めた合計値と目標削減量との比較を行い、比較結果を表す信号を次段のデータNo.切換回路に出力する。データNo.切換回路は、上記符号量演算回路から出力される比較結果信号に基づいて異なるデータNo.のトランケーションデータをDMA33を介してDRAM50に要求する。また、符号データ削減量が目標削減量であるとみなせる最終の1のデータNo.を表す信号をパケット情報生成回路34に出力する。
パケットヘッダ生成回路36は、パケット情報生成回路34より出力される上記算出した各サブバンドのコードブロックのコーディングパス数及び符号量のデータ、ゼロビットプレーン数、並びに、DMA37よりDRAM5から読み込んだ符号データ等のデータよりパケットヘッダを生成し、符号形成回路38に出力する。符号形成回路38は、パケットヘッダ生成回路36より出力されるデータよりビットストリームを形成し、目標削減量だけ符号データの削減を行った符号データとして外部に出力する。以上が特許文献1,2における画像圧縮装置の概要である。
JPEG2000では、ROI(Region of Interest)と呼ばれる「画像の選択された部分」のみ画質を向上させることができる機能を持っている。ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。JPEG2000の基本方式では、注目領域の係数に対して重み付けを行う方式(具体的にはビットシフトにより2のべき乗の重みを付ける)を採用している。
図11は、従来技術に係るJPEG2000の符号化処理の流れを示す図である。図11に示すように、画像をウェーブレット変換し(ステップS501)、量子化し(ステップS502)、MQ(算術)符号化し(ステップS503)、符号形成して(ステップS504)、圧縮画像データを得ていた(ステップS505)。通常、ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。
図12は、符号化時に行うROI処理を含んだ流れを示す図である。図12に示すように、画像をウェーブレット変換し(ステップS601)、ビットシフトし(ステップS602)、量子化し(ステップS603)、MQ(算術)符号化し(ステップS604)、符号形成して(ステップS605)、圧縮画像データを得ていた(ステップS606)。通常、ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。処理として考えられるのは、注目領域を他の部分に比べて細かい量子化ステップで量子化を行って符号化する方法と、注目領域の係数に対して重み付けを行う方法(具体的にはビットシフトにより2のべき乗の重みを付ける)がある(図12のステップS602参照)。
図12に示したJPEG2000の基本方式では後者の方式を採用している。ビットシフトのシフト量はROI部分ではない係数の最大ビット数分であり、その点からMaxshift方式と呼ばれている。ROI領域の係数はこのビットシフト処理によってシフトアップされた状態で、復号時、その他の領域(バックグランド領域)の係数と同じレンジに戻す必要がある。
図13は、復号化時のROI処理の流れを示す図であり、基本的には図12の逆順序で処理される。すなわち、圧縮データを符号解析し(ステップS701)、MQ復号化し(ステップS702)、逆量子化し(ステップS703)、ビットシフトを行った後(ステップS704)、逆ウェーブレット変換し(ステップS705)、画像を復元する(ステップS706)ものである。ビットシフト方式は、このように、符号化及び復号化時にROIマスク情報の作成、ウェーブレット係数のビットシフト処理を行う回路や、シフト量を計算する回路をそれぞれ設ける必要がある。また、カラー画像のような複数成分画像の場合、サブサンプル処理が使用される場合が多い。サブサンプルが使用された場合には、それに伴ってROIマスクもサブサンプルする必要がある。
このように、上記従来技術では、目標の符号量になるように符号量を調整しながら、注目領域の画質向上を提供し、ROI機能に類似する効果を実現するために、係数重み付け方式によるビットシフトやシフト量の計算などを行う必要があり、回路構成が複雑となるという問題点があった。
以上の問題点を解決するために、例えば特許文献5では、簡単な仕組みでROIと類似の画像効果を実現することが可能な画像圧縮装置及び画像圧縮方法並びにそのためのプログラムが提案されている。当該画像圧縮装置等においては、トランケーションテーブルを1つ選択し、1個のコードブロック情報をメモリ上より読み出し、指定領域内のコードブロックであればトランケーション量を0とし、全体符号量に当該コードブロックの符号量を加算し、指定領域外であればトランケーションを行った時のコードブロックの符号量を計算し全体符号量に加算する。全コードブロックに対して行う。次に1個のコードブロック情報を読み出し、指定領域内であればトランケーション量を0としコードブロック情報をそのままとし、指定領域外であればトランケーションを行い、それを反映したコードブロックの情報を求めメモリに書き込む。
また、特許文献6では、絞り機能を用いずにフォーカス効果を実現でき、しかもデータ処理量及び処理時間を大幅に軽減できるデジタル絞りシステムを提供するために、画像G1に関心領域ROI1〜ROI5を設定し、画像G1の関心領域ROI1〜ROI5に対しては符号量を相対的に多く割り当ててピントを相対的に合わせ、画像G1の非関心領域(非ROI)21に対しては符号量を相対的に少なく割り当ててピントを相対的にぼかし、且つ関心領域ROI1〜ROI5のうち優先度の低い関心領域ほど符号量を相対的に少なく割り当ててピントを相対的に強くぼかす様にして画像圧縮することにより、画像G1にデジタル絞り処理を施す。
さらに、特許文献7では、画像を比較する上で、システム規模の縮小及び処理時間の短縮を実現することができる画像処理装置を得るために、画像データを処理する画像処理装置である複合機において、各々複数の領域に分割され圧縮された第1の画像と第2の画像とから各々複数の領域毎に特徴量を抽出し、それらの画像から各々複数の領域毎に抽出した特徴量に基づいて第1の画像と第2の画像とを比較するようにした。これにより、画像を複数の領域に分割する処理等が必要とされず、簡単な処理で精度良く画像比較を実行することが可能となり、その結果として、システム規模の縮小及び処理時間の短縮を実現することができる。
特開2004−304238号公報。
特開2004−297712号公報。
特開2004−214828号公報。
特開2007−251476号公報。
特開2007−251476号公報。
特開2006−295299号公報。
特開2004−227406号公報。
上野幾朗ほか,「静止画像符号化の新国際標準方式(JPEG200)の概要」,映像情報メディア学会誌,Vol.54,No.2,pp.164−171,2000年2月。
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
実施形態の概要.
JPEG2000符号化処理の時に、上述した特許文献1,2に開示されているように、予め設定された目標の符号量に対し、算術符号化処理された符号データを下位から破棄し目標の符号量になるように調整する「レートコントロール」と呼ばれる方法がある(図13のレートコントロール回路32参照)。本発明の実施形態は、ビットシフト方式の替わりに、レートコントロールを行うときに、指定領域内と指定領域外において破棄するデータの量を調整することで、ROIと類似の効果を実現するものであり、特に、ROI注目領域があるレートコントロールテーブルの選択時(図3のステップS103)、コードブロック単位の符号量情報だけでなくサブバンド単位の符号量情報をも用いて符号量計算効率を向上させるための手段を提供することを特徴としている。具体的には、JPEG2000方式の符号化に際して、MQ符号化器にて生成されたサブバンド毎のコーディングパス数とそれに対する符号量情報やコードブロック毎のコーディングパス数とそれに対する符号量情報を入力とし、注目領域があるサブバンドの符号量を制御する画像圧縮装置において、サブバンド毎の使用基準に基づいて、上記2つの符号量情報のうちのどの符号量情報を用いるか、もしくは両方の符号量情報を用いるかを決定してトランケーションしたときの符号量を計算することを特徴としている。
実施形態.
図1は、ROI処理に類似したレートコントロール処理を含む本発明の実施形態に係る処理の流れを示す図である。本発明の実施形態では、図1に示すように、画像をウェーブレット変換し(ステップS1)、量子化し(ステップS2)、MQ(算術)符号化し(ステップS3)、ROI類似機能を有するレートコントロールを行い(ステップS4)、符号形成して(ステップS5)、圧縮画像データを得る(ステップS6)。
次に、本発明の実施形態に係るレートコントロールの手順について簡単に説明する。
図2は、コードブロック情報を読出しの実施例を示すブロック図である。JPEG2000符号化時、算術符号化処理後のデータは、各コードブロックの情報(ゼロビットプレーン数、コーディングパス数、コードブロック符号量、コーディングパス毎の符号量等)はパケットポインターと呼ばれる内部メモリ64領域に記録される。1個のコードブロックの情報は1個のパケットポインターを成す。各コードブロックのパケットポインターのメモリアドレスは、図2の61に示すコードブロックが所在するコンポーネント、解像度レベル、サブバンド情報、及び、62で示すサブバンド内コードブロックの位置情報によって一意に決定される(63)。また、サブバンド単位でコーディングパス毎に符号量がまとめられ内部メモリ64に記録される。これらの情報はレートコントロール時に読み出される。
あるコンポーネント、解像度レベルに属するサブバンドのメモリスタートアドレスをSA(SUB)、サブバンド内コードブロックの垂直・水平方向の位置を(Y、X)とすると、コードブロック情報が格納されているメモリ上の先頭アドレスSA(CB)は以下のようになる。
[数1]
[SA(CB)=SA(SUB)+Y×Xh+X]
ここで、Xhはサブバンドの水平方向のコードブロック数とする。図2の加算器の記号は上記式に相当する。以下に説明するレートコントロールの処理では、コードブロックの位置からパケットポインターのアドレスを算出し(63)、内部メモリ64からそのパケットポインターを読み出し、コードブロック情報(コーディングパス数、バイト数等)を抽出する(65)。
図3は、一般的なレートコントロール処理の流れを示す図である。レートコントロールは大きく分けて2つの過程からなる。
1つ目はレートコントロールテーブルを選択する過程(A)である。これは、複数用意されたレートコントロールテーブルから使用すべきテーブルを1つ決定する過程(A)である。
2つ目はトランケーション過程(B)である。これは、選択したトランケーションテーブルを使用して各コードブロックのコーディングパスをトランケーションし、符号量情報を変更してゆく過程である。
トランケーションテーブルにはサブバンド毎にそのサブバンド内のコードブロックのコーディングパスのトランケーション量が記述されている。解像度レベル5のトランケーションテーブルの例を次に示す。
[表1]
―――――――――――――――――――――――――――
i194 c0: 1, 1 1 1, 1 1 1, 1 1 1, 2 2 2, 6 6 11
i194 c1: 1, 2 2 2, 2 2 3, 4 4 5, 6 7 9, 11 11 16
i194 c2: 1, 1 1 2, 2 2 3, 3 3 4, 5 5 7, 9 9 12
―――――――――――――――――――――――――――
ここで、それぞれの数字は以下のことを示す。
C0:コンポーネント0。具体的にはY成分を示す。
C1:コンポーネント1。具体的にはCb成分を示す。
C2:コンポーネント2。具体的にはCr成分を示す。
各列の数字は(C0:5LL,5HL−LH−HH,4HL−LH−HH,3HL−LH−HH,2HL−LH−HH,1HL−LH−HH)のように、
(a)5LL:レベル5LL成分のサブバンドのコーディングパス単位のトランケーション量
(b)5HL−LH−HH:レベル5のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
(c)4HL−LH−HH:レベル4のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
(d)3HL−LH−HH:レベル3のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
(e)2HL−LH−HH:レベル2のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
(f)1HL−LH−HH:レベル1のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
をそれぞれ表す。
このようなテーブルデータはメモリ上、スタートアドレスから小さい順で配置される。
まず、レートコントロールテーブルを選択する過程(A)を説明する。レートコントロールがスタートしたら、トランケーションテーブルを1つ選択し(ステップS101)、サブバンドのコーディングパス毎の符号量情報をメモリ上より読み出し(ステップS102)、選択したトランケーションテーブルに従ってトランケーションを行った場合のサブバンドの符号量を計算し(ステップS103)、ステップS103の処理を全てのサブバンドに対して行い、算出した符号量が目標符号量に達した場合は、それを最終的なトランケーションテーブルとしステップS105に進み、算出した符号量が目標符号量に達しない場合は目標値との差に従って次のテーブルを選択するためステップS101に戻る。これにより目標の符号量になるためのトランケーション量が決定される。
次に、トランケーション(B)の流れについて説明する。トランケーションをスタートし(ステップS105)、1個のコードブロックの情報をメモリ上より読出し(ステップS106)、選択したトランケーションテーブルに従ってコードブロックのコーディングパスのトランケーションを行い(ステップS107)、それを反映したコードブロックの情報を求め、新しいコードブロック情報としてメモリ上に書き込む(ステップS108)。全てのコードブロックに対しての処理が終わったら(ステップS109:Y)、レートコントロールを終了する。このように、上記レートコントロールの処理では、サブバンド単位でトランケーションされるコーディングパス数が同じになる。
次に、本発明の実施形態を、符号化時レートコントロールの際に空間的座標位置で判定される指定領域内でトランケーションを実施せず全体の符号量を調整する実施例を用いて説明する。
なお、本発明の実施形態では、コードブロック単位でのトランケーション量を調整することでROI類似効果を実現しているので、復号化時に特別な処理を必要としない。
図4は、指定領域があるときのレートコントロール処理の流れを示す図である。以下、トランケーションテーブル選択の流れについて説明する。まず、ステップS201で、トランケーションテーブルを1つ選択し、ステップS202で、1個のコードブロック情報をメモリ上より読み出す。次に、当該コードブロックが指定領域内のコードブロックであれば(ステップS203:Y)、トランケーション量を0とし、全体符号量に当該コードブロックの符号量を加算する(ステップS205)。当該コードブロックが指定領域外のコードブロックであれば(ステップS203:N)、選択したトランケーションテーブルに従ってコーディングパスのトランケーションを行った時の、コードブロックの符号量を計算し(ステップS204)、全体符号量に加算する(ステップS205)。
以上の処理(ステップS201〜205)を全てのコードブロックに対して行い、全体符号量が目標符号量に達した場合あるいは最後のトランケーションテーブルに達した場合は(ステップS206:Y)、それを最終的なトランケーションテーブルとする。その他の場合は(ステップS207:N)、目標値との差に従って次のテーブルを選択するためステップS201に戻る。
次に、トランケーションの流れについて説明する。ステップS208でトランケーションを開始し、1個のコードブロック情報をメモリ上より読み出す(ステップS209)。読み出した当該コードブロックが指定領域内のコードブロックであれば(ステップS210:Y)、トランケーション量を0とし、コードブロック情報をそのままとする(ステップS211)。当該コードブロックが指定領域外のコードブロックであれば(ステップS210:N)、選択したトランケーションテーブルに従ってコーディングパスのトランケーションを行い(ステップS212)、それを反映したコードブロックの情報を求める。次のステップS213で、求めた情報を新しいコードブロック情報としてメモリ上に書き込む。上記ステップS210〜S213を全てのコードブロックに関して行ったら(ステップS214:Y)、レートコントロールを終了する。指定領域のないレートコントロール処理と比べ、主な異同はコードブロックが指定領域内にあるか否かによって異なる処理を行う点である。
次に、指定空間領域に属するコードブロックの計算について説明する。図5は、指定領域に属するコードブロックの例を示す図である。ROI領域を長方形とし、その空間的情報は左上の頂点Aと右下の頂点Bで決定される。もとの画像が解像度レベル0とすると、解像度レベルが1つ上がると、対するサブバンドのサイズが二分の一になる。したがって元画像の指定領域は、解像度レベルが1つ上がると、図5に示すように、対するサブバンドの中でのサイズが二分の一になる。つまり、大きさが2のべき乗のコードブロックについて、ROI領域の頂点AとBの上位ビットを見ればそのコードブロックが指定領域に属するかどうかの判定ができる。
図6は、指定領域内のコードブロックの計算の例を示す図である。画像サイズが「8192×8192」以下の場合、X方向座標は14ビットのレジスターでまかなえる。解像度レベル1の時、対するサブバンドのサイズが1/2になるから、レジスターの最上位ビット(13ビット目)から最下位ビット(0ビット目)より1つ上のビット(1ビット目)まではサブバンド内のX方向座標を表す。一方、コードブロックサイズが32(2の5乗)のとき、下位5ビット(1〜5)はコードブロック内のX座標を表し、上位8ビット(6〜13)はコードブロックのX方向座標を表す。Y方向はX方向と同じで、レベル1以上は類推する。このようにしてコードブロックの位置やコードブロック内の位置を算出できる。
図7は、指定領域があるときのトランケーションテーブル選択の実施例を示す図である。トランケーションテーブルを選択するとき、メモリからのテーブルスタートアドレスTA(ST)にテーブルアドレスオフセット(TAO)を加えた値をテーブルアドレス(TA)とする[すなわち、TA=TA(ST)+TAO](ステップS301)。テーブルアドレスオフセット(TAO)は、個々のテーブルがテーブルスタートアドレスTA(ST)からのオフセット値を表す。テーブルスタートアドレスTAに基づいてメモリからテーブル(TBL)を一枚読み出し、レジスターに記録する(ステップS302)。
次に、コードブロック(CB)のパケットポインターアドレスに基づいてメモリから当該コードブロックのパケットポインターを読み出し、パケットポインターのコードブロック情報(コーディングパス数CP、符号量BYTE、コーディングパス毎の符号量CP_BYTE(N))を抽出する(ステップS303)。当該コードブロックが指定領域外であれば(ステップS304:N)、コーディングパス数(CP)にトランケーションテーブルの値(TBL)で減算し、得た結果をレートコントロール後のコーディングパスとする[CP=CP−TBL](ステップS305)。また、コーディングパス毎の符号量情報(CP_BYTE(N))に基づいて、上位のコーディングパスから減算後のコーディングパスまでの符号量を計算し、得た結果をレートコントロール後の符号量とする[TB=TB+CP_BYTE(N)](ステップS305)。
一方、当該コードブロックが指定領域内であれば(ステップS304:Y)、減算処理せずに、符号量(BYTE)をそのままレートコントロール後の符号量とする[TB=TB+BYTE](ステップS306)。このようにして全てのコンポーネント及び解像度レベル、サブバンドのコードブロックに対し計算し、結果符号量(TB)を目標符号量と比較し、上まっていればより大きいトランケーションテーブルを、下回っていればより小さいトランケーションテーブルを選択する。
トランケーションテーブルは小さい順で配置されるので、アドレスオフセット(TAO)が大きければテーブルの値も大きくなる。最初はアドレスオフセット増加の方向(幅は一定)でテーブルを選択してゆき、符号量が設定量より小さくなった時点で幅を半分にし、アドレスオフセット減少の方向でテーブルを選択する。このようにしてアドレスオフセットを更新してゆき(TAO更新)、徐々に捜査範囲を狭めてゆき、目標のテーブルに辿り付く。一番大きいトランケーションテーブルを選択しても目標の符号量に達しない場合、そこで処理を終了し、そのときのトランケーションテーブルを目標のテーブルとし、そのときの符号量を目標の符号量とする(ステップS307〜S308)。
図8は、指定領域があるときのトランケーションの実施例を示す図である。まず、各コードブロックのパケットポインターを読み出し、コーディングパス数や符号量(バイト数)など必要な情報を取り出す(ステップS401)。指定領域内のコードブロックは(ステップS402:Y)、トランケーション量が0でコードブロック情報に変更がないため、書込みを行う必要がなく次のコードブロックの処理に進む(ステップS408)。指定領域外のコードブロックは(ステップS402:N)、トランケーションテーブル値でコーディングパスをトランケーションした後、結果のコーディングパス数の符号量を計算し(ステップS403〜S406)、コードブロックの情報を更新するためパケットポインターのメモリへの書込みを行う(ステップS407)。全てのコードブロックに対し作業を終えたら、トランケーションを終了する。
このようにして、指定領域内のコードブロックは、データのトランケーションを避けることで、指定領域外のコードブロックに比べより多くのデータ(情報)を保持することとなり、結果的に指定領域外より指定領域内の画質が良く、視覚上ビットシフト方式によるROI機能に近い効果を得ることができ、つまりROIと類似する機能の実現である。
また、複数のフレームを連続して処理するような場合、特定のフレームに対しては、レートコントロール(第2の符号制御量基準を用いるコードブロックを予め指定された空間的座標位置によって決定)を実施し、それ以外のフレームに対しては従来技術に係るレートコントロールを実施する。これにより、特定フレームの特定位置の高画質化を計ることができる。
なお、JPEG2000は画像データの圧縮伸長に関する形式であり、この形式に従い画像データを圧縮あるいは伸長するには、ハードウェア資源を必要とする。ハードウェア資源としてのコンピュータによって画像処理用のコンピュータプログラムを実行することにより実現される。つまり、コンピュータの記憶装置、例えばハードディスクドライブ(HDD)にJPEG2000形式の画像データ圧縮伸長用の画像処理用コンピュータプログラムをインストールしておき、コンピュータがCPU及びメモリから構築される基本アーキテクチャによってそのような画像処理用のコンピュータプログラムを解釈し、入力画像に対するJPEG2000形式の画像圧縮処理を実行したり、あるいは、JPEG2000形式で圧縮された画像データを伸長したりする。
画像処理用のコンピュータプログラムは、ハードディスクドライブ(HDD)、光学的又は磁気的に情報を記録する各種の光ディスクやフレキシブルディスク等の可搬性を有する各種の記録メディア、あるいはインターネットなどのネットワークを介して市場に流通させることができる。
次いで、本発明の実施形態に係るレートコントロールしたときの符号量計算方法について以下に検討する。
JPEG2000符号化処理の時に、予め設定された目標の符号量に対し、算術符号化処理された符号データを下位から破棄し目標の符号量になるように調整する、レートコントロールと呼ばれる方法がある。またレートコントロールを行うときに、指定領域内と指定領域外において破棄するデータの量を調整することで、ROIの相似効果を実現することができる。
ROI領域がないときのレートコントロールは、MQ符号化器からのサブバンド毎符号量情報を使用して符号量計算するために対して、ROI領域があるときのレートコントロールはコードブロック毎に符号量の調整が必要なので、MQ符号化器からのコードブロック毎符号量情報を使用して符号量計算する。この際、個々のコードブロックの符号量情報を外部メモリからリードし下位から破棄する符号データ量を計算してゆくので、サブバンド毎符号量情報を使用した場合と比べて計算時間及び外部メモリへのアクセス回数の増大が考えられる。
本発明の実施形態は、レートコントロール時ROI類似効果を実現する際、コードブロック毎の符号量情報だけでなくサブバンド毎の符号量情報も使用してサブバンドで破棄する符号データ量を効率よく計算する手段を提供するものである。
以上の説明からトランケーションテーブル選択の過程(図3のステップS103及び図4のステップS204,S210−S212)においてROI指定領域がないとき、サブバンドのコーディングパス毎の符号量情報が使用されるのに対して、ROI指定領域があるときはコードブロックのコーディングパス毎の符号量情報が使用されることがわかる。以下、ROI指定領域が有ると無しの場合についてそれぞれの符号量計算及びメモリアクセス回数について説明する。
図14は本発明の実施形態に係るサブバンドのコーディングパス毎の符号量情報の一例(Y成分、1HL)を示すブロック図である。また、図15は本発明の実施形態に係るコードブロックのコーディングパス毎の符号量情報の一例を示すブロック図である。
図4及び図5において、画像サイズが1024×1024で解像度レベルが3、コードブロックサイズが32、トランケーションテーブルの値は5であるとし、Y成分レベル1HLサブバンドの処理例について説明する。また簡単なためサブバンド内コードブロックのコーディングパス数を一律30とする。
まず、ケース1で注目領域がない場合、レートコントロールはサブバンドのコーディングパス毎の符号量情報をメモリから1回読み出す。
図16は本発明の実施形態に係る注目領域が無いときの符号量の計算例(ケース1)を示すブロック図である。図16において、トランケーションテーブルの値が5なので、MQ後の総符号量から、サブバンドコーディングパス毎符号量情報の下位5個のコーディングパスの対応する符号量を差し引いた値がトランケーション後の当該サブバンドの符号量となる。サブバンド最下位のコーディングパが30で、下位からの5個のコーディングパスがそれぞれ30、29,28,27,26である。この際、1個のコーディングパスの符号量を計算するために1サイクルであるとすると、合計で5サイクルの計算が必要になる。
次に、注目領域がある場合、レートコントロールはサブバンド内各コードブロックのコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、総アクセス回数はサブバンド内のコードブロック数×1コードブロックのメモリアクセス数=32×32×1=1024回となる。
ここで、以下3つのケースについて計算を行う。
まず、ケース2.1で注目領域の数は1、注目領域内のコードブロック数は1、注目領域内のコーディングパス数の調整量はトランケーションテーブルの値−3であるとする。
図17は、本発明の実施形態に係る注目領域が有るときのコードブロック情報のみによる符号量の計算例(ケース2.1)を示すブロック図である。なお、図17乃至図22において、各1つのブロックが1個のROIに対応したコードブロックであり、水平面が2次元画像に対応するコードブロックであり、最上部のコードブロックがMSB(最上位)に対応し、最下部のコードブロックがMLB(最下位)に対応する。
図17において、トランケーションテーブルの値が5なので、当該サブバンドのトランケーション後の符号量は注目領域内において各コードブロックのコーディングパス数を下位から5−3=2パスを破棄したとき残りのコーディングパスに対する符号量の合計である。それ以外のコードブロックで各コードブロックのコーディングパス数を下位から5パスを破棄したとき残りのコーディングパスに対する符号量の合計となる。
例えば、注目領域内のコードブロックにおいて下位の2個のコーディングパス30,29を破棄し、28から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。注目領域外のコードブロックにおいて下位の30、29、28、27,26のコーディングパスを破棄し、25から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。この際、1コードブロックの1個のコーディングパスの符号量を計算するために1サイクルであるとすると、注目領域内の各コードブロックでトランケーション後の符号量を計算するために30−2=28サイクル、それ以外のコードブロックのトランケーション後の符号量を計算するために30−5=25サイクルの計算が必要になる。サブバンド内全コードブロックのトランケーション後の符号量を計算するために合計で1×28+(32×32−1)×25=25603サイクルが必要である。
次に、ケース2.2で注目領域の数は2、注目領域Aのコードブロック数は200、注目領域A内のコーディングパス数の調整量はトランケーションテーブルの値−4とする。注目領域Bのコードブロック数は300、注目領域B内のコーディングパス数の調整量はトランケーションテーブルの値+2であるとする。
図18は本発明の実施形態に係る注目領域が有るときのコードブロック情報のみによる符号量の計算例(ケース2.2)を示すブロック図である。図18において、注目領域Aにおいてはトランケーションテーブルの値が5で、当該サブバンドのトランケーション後の符号量は注目領域内のコードブロックでコーディングパス数を下位から5―4=1パスを破棄したとき残りのコーディングパスに対する符号量の合計である。
注目領域Bにおいてはトランケーションテーブルの値が5で、当該サブバンドのトランケーション後の符号量は注目領域内のコードブロックでコーディングパス数を下位から5+2=7個のパスを破棄したとき残りのコーディングパスに対する符号量の合計である。それ以外のコードブロックで各コードブロックのコーディングパス数を下位から5個のコーディングパスを破棄したとき残りのコーディングパスに対する符号量の合計となる。例えば、注目領域A内のコードブロックにおいて下位の1個のコーディングパス30を破棄し、29から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。注目領域B内のコードブロックにおいて下位の7個のコーディングパス30から24を破棄し、23から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。
注目領域外のコードブロックにおいて下位の5個のコーディングパス30から26のコーディングパスを破棄し、25から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。この際、1コードブロックの1個のコーディングパスの符号量を計算するために1サイクルであるとすると、注目領域A内1個のコードブロックでトランケーション後の符号量を計算するために合計で30−1=29サイクル、注目領域B内1個のコードブロックでトランケーション後の符号量を計算するために合計で30−7=23サイクル、注目領域外1個のコードブロックのトランケーション後の符号量を計算するために合計25サイクルの計算が必要になる。サブバンド内全コードブロックのトランケーション後の符号量を計算するために合計200×29+300×23+(32×32−500)×25=25800サイクルが必要である。
次にケース2.3でトランケーションテーブ値は26、注目領域の数は2、注目領域Aのコードブロック数は200、注目領域A内のコーディングパス数の調整量はトランケーションテーブルの値−4とする。注目領域Bのコードブロック数は800、注目領域B内のコーディングパス数の調整量はトランケーションテーブルの値+2であるとする。
図19は本発明の実施形態に係る注目領域が有るときのコードブロック情報のみによる符号量の計算例(ケース2.3)を示すブロック図である。図19において、注目領域Aにおいてはトランケーションテーブルの値が26で、当該サブバンドのトランケーション後の符号量は注目領域内のコードブロックでコーディングパス数を下位から26―4=22パスを破棄したとき残りのコーディングパスに対する符号量の合計である。
注目領域Bにおいては、トランケーションテーブルの値が26で、当該サブバンドのトランケーション後の符号量は注目領域内のコードブロックでコーディングパス数を下位から26+2=28パスを破棄したとき残りのコーディングパスに対する符号量の合計である。それ以外のコードブロックで各コードブロックのコーディングパス数を下位から26個のコーディングパスを破棄したとき残りのコーディングパスに対する符号量の合計となる。例えば、注目領域A内のコードブロックにおいて下位の22個のコーディングパス30〜9を破棄し、8から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。
注目領域B内のコードブロックにおいて下位の28個のコーディングパス30から3を破棄し、2から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。注目領域外のコードブロックにおいて下位の26個のコーディングパス30から5個のコーディングパスを破棄し、4から1までの各コーディングパスに対する符号量の合計が当該コードブロックのトランケーション後の符号量となる。この際、1コードブロックの1個のコーディングパスの符号量を計算するために1サイクルであるとすると、注目領域A内1個のコードブロックでトランケーション後の符号量を計算するために合計で30−22=8サイクル、注目領域B内1個のコードブロックでトランケーション後の符号量を計算するために合計で30−28=2サイクル、注目領域外1個のコードブロックのトランケーション後の符号量を計算するために合計30−26=4サイクルの計算が必要になる。サブバンド内全コードブロックのトランケーション後の符号量を計算するために合計200×8+800×2+(32×32−1000)×4=3296サイクルが必要である。
図23は本発明の実施形態に係る注目領域無しの場合と有りの場合との符号量計算方法、メモリアクセス回数及び符号量計算サイクル数の比較結果を示す図である。図23の比較結果から明らかなように、注目領域がある場合で注目領域内外の画質を調整するために、コードブロック単位のコーディングパス数と符号量を調整する必要があるので、注目領域がない場合のサブバンド単位の処理と比べると、メモリアクセス回数及び符号量計算サイクル数はどちらも増大方向にあることが見受けられ、システム処理のスループットの低下が顕著である。
本発明の実施形態では、注目領域がある場合でサブバンド内各コードブロックのコーディングパス毎の符号量情報に加え、サブバンドコーディングパス毎の符号量情報をも用いて、上記メモリアクセス回数及び符号量計算サイクル数を少なくするようにサブバンド毎に2つの手段の使用を選択切り替えられるようにするものである。以下その仕組みについて説明する。
まず、ケース2.1の場合(注目領域の数は1、注目領域内のコードブロック数は1、注目領域内のコーディングパス数の調整量はトランケーションテーブルの値−3)について考えてみる。
図20は本発明の実施形態に係る注目領域が有るときのサブバンドとコードブロック情報による符号量の計算例(ケース2.1)を示すブロック図である。
トランケーションテーブルの選択時、サブバンドのコーディングパス毎の符号量情報をメモリから1回読み出す必要がある。サブバンド注目領域内のコードブロックコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、計1×1=1回のメモリアクセスが必要である。したがって、当該サブバンドのトランケーションテーブルの選択時において計1+1=2回のメモリアクセスが必要である。一方、必要な計算サイクル数はまず当該サブバンドの符号量からトランケーションテーブルの値でトランケーションしたときの符号量を計算するので、トランケーションテーブルの値が5なので必要な計算サイクル数は1×5=5回である。次に注目領域内個々のコードブロックコーディングパスに対する調整量(−3)を加味したトランケーション値でトランケーションしたときのコーディングパス数に対する符号量を加算するので、必要な計算サイクル数は1×(5−3)=2回となる。合計必要な計算サイクル数は5+2=7回となる。
次に、ケース2.2の場合(注目領域の数は2、注目領域Aのコードブロック数は200、注目領域A内のコーディングパス数の調整量はトランケーションテーブルの値−4。注目領域Bのコードブロック数は300、注目領域B内のコーディングパス数の調整量はトランケーションテーブルの値+2)について考えてみる。
図21は本発明の実施形態に係る注目領域が有るときのサブバンドとコードブロック情報による符号量の計算例(ケース2.2)を示すブロック図である。
トランケーションテーブルの選択時、サブバンドのコーディングパス毎の符号量情報をメモリから1回読み出す必要がある。サブバンド注目領域A内のコードブロックコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、合計1×200=200回のメモリアクセスが必要である。サブバンド注目領域B内のコードブロックコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、合計1×300=300回のメモリアクセスが必要である。したがって、当該サブバンドのトランケーションテーブルの選択時において計200+300+1=501回のメモリアクセスが必要である。一方、必要な計算サイクル数はまず当該サブバンドの符号量からトランケーションテーブルの値でトランケーションしたときの符号量を計算するので、必要な計算サイクル数は1×5=5回である。
次に、注目領域Aはコードブロックコーディングパスに対する調整量(−4)を加味したトランケーション値でトランケーションしたときのコーディングパス数に対する符号量を加算するので、1個のコードブロック計算サイクル数は(5−4)=1回である。注目領域A内全コードブロック合計必要な計算サイクル数は200×1=200回となる。注目領域Bは個々のコードブロックコーディングパスに対する調整量(+2)を加味したトランケーション値でトランケーションしたときのコーディングパス数に対する符号量を減算するので、1個のコードブロック計算サイクル数は(5+2)=7回である。注目領域B内全コードブロック合計必要な計算サイクル数は300×(5+2)=2100回となる。したがって、当該サブバンドのトランケーションテーブルの選択時において計5+200+2100=2305回の計算サイクルが必要である。
次に、ケース2.3の場合(トランケーションテーブルの値は26、注目領域の数は2、注目領域Aのコードブロック数は200、注目領域A内のコーディングパス数の調整量はトランケーションテーブルの値−4。注目領域Bのコードブロック数は800、注目領域B内のコーディングパス数の調整量はトランケーションテーブルの値+2)について考えてみる。
図22は本発明の実施形態に係る注目領域が有るときのサブバンドとコードブロック情報による符号量の計算例(ケース2.3)を示すブロック図である。
トランケーションテーブルの選択時、サブバンドのコーディングパス毎の符号量情報をメモリから1回読み出す必要がある。サブバンド注目領域A内のコードブロックコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、合計1×200=200回のメモリアクセスが必要である。サブバンド注目領域B内のコードブロックコーディングパス毎の符号量情報をそれぞれメモリから1回読み出すので、合計1×800=800回のメモリアクセスが必要である。したがって、当該サブバンドのトランケーションテーブルの選択時において合計200+800+1=1001回のメモリアクセスが必要である。一方、必要な計算サイクル数はまず、当該サブバンドの符号量からトランケーションテーブルの値でトランケーションしたときの符号量を計算するので、必要な計算サイクル数は1×26=26回である。
次に、注目領域Aはコードブロックコーディングパスに対する調整量(−4)を加味したトランケーション値でトランケーションしたときのコーディングパス数に対する符号量を加算するので、1個のコードブロック計算サイクル数は(26−4)=22回である。注目領域A内全コードブロック合計必要な計算サイクル数は200×22=4400回となる。注目領域Bは個々のコードブロックコーディングパスに対する調整量(+2)を加味したトランケーション値でトランケーションしたときのコーディングパス数に対する符号量を減算するので、1個のコードブロック計算サイクル数は(26+2)=28回である。注目領域B内全コードブロック合計必要な計算サイクル数は800×28=22400回となる。したがって、当該サブバンドのトランケーションテーブルの選択時において計26+4400+22400=26826回の計算サイクルが必要である。
図24は図23の比較結果において(サブバンド+コードブロック)の符号量計算方法を加えたときの符号量計算方法、メモリアクセス回数及び符号量計算サイクル数の比較結果を示す図である。
図24から明らかなように、本発明の実施形態では、注目領域ありでレートコントロールトランケーションテーブルを選択するとき、メモリアクセス回数はサブバンド注目領域内のコードブロック総数に依存しているので、サブバンド注目領域内のコードブロックの数が少ないときは、サブバンドのコーディングパス毎の符号量情報に基づいてコードブロックコーディングパス毎の符号量情報を調整量として用いることで符号量算出を行う場合メモリアクセス回数の減少が顕著である。サブバンド内注目領域数が多いとき、又はサブバンド注目領域内のコードブロックの数が多いとき、この方法による符号量算出とコードブロックコーディングパス毎の符号量情報だけを使用する符号量算出と比べて、メモリアクセス回数の減少効果が薄れる。
一方、必要計算サイクル数はトランケーションテーブルの値、注目領域数、注目領域内のコードブロック数、注目領域内コードブロックコーディングパスの調整量に依存しているので、トランケーションテーブルの値及び注目領域数、注目領域内のコードブロック数とコードブロックコーディングパス調整量(両者の積)が小さいとき、サブバンドコーディングパス毎の符号量情報に基づいて、コードブロックコーディングパス毎の符号量情報を調整量として用いることで符号量算出を行う場合メモリアクセス回数の減少が顕著である。トランケーションテーブルの値が大きいとき、又は注目領域数及び注目領域内のコードブロック数と調整量(両者の積)が大きいとき、この方法による符号量算出とコードブロックコーディングパス毎の符号量情報だけを使用する符号量算出と比べて、メモリアクセス回数の減少効果が薄れる。
このように注目領域ありでかつレートコントロールトランケーションテーブル選択の時は、サブバンド毎にメモリアクセス回数及び必要計算サイクル数を予め算出し、それがある基準(例えばコードブロックコーディングパス毎符号量情報による符号量計算結果)と比べて一定値以上を満たす場合にはサブバンドコーディングパス毎の符号量情報に基づいてコードブロックコーディングパス毎の符号量情報を調整量(増加量又は減少量)として符号量を計算できる。
本実施形態では、PEG2000方式の符号化に際して、MQ符号化器にて生成されたサブバンド毎のコーディングパス数とそれに対する符号量情報やコードブロック毎のコーディングパス数とそれに対する符号量情報を入力とし、注目領域があるサブバンドの符号量を制御するときに、図24から明らかなように、サブバンド毎の使用基準に基づいて、上記2つの符号量情報のうちのどの符号量情報を用いるか、もしくは両方の符号量情報を用いるかを決定してトランケーションしたときの符号量を計算する。ここで、上記サブバンド毎の使用基準として、好ましくは、特定コードブロックの数やサイズを用い、もしくは外部記憶手段へのアクセス回数を用いることができる。これにより、注目領域があるレートコントロールでは符号量制御手段をサブバンド毎に選択適用することができ、ROI注目領域があるレートコントロールテーブルの選択時において符号量の計算効率を向上させることができる。
また、上記サブバンドの符号量を制御するときに、上記2つの符号量情報を使用する際、サブバンド毎のコーディングパス数とそれに対する符号量情報に基づいて、全注目領域内の画質を注目領域外の画質より高くするために注目領域内個々コードブロック毎のコーディングパス数とそれに対する符号量情報を加算して注目領域内コードブロックの符号量を注目領域外コードブロックの符号量より増加させることで、従来技術に比較して効率的に符号量を計算することができる。
さらに、上記サブバンドの符号量を制御するときに、2つの情報を使用する際、サブバンド毎のコーディングパス数とそれに対する符号量情報に基づいて、全注目領域内の画質を注目領域外の画質より低くするために注目領域内個々コードブロック毎のコーディングパス数とそれに対する符号量情報を減算して注目領域内コードブロックの符号量を注目領域外コードブロックの符号量より減少させることで、効率的に符号量を計算することができる。
またさらに、上記サブバンドの符号量を制御するときに、上記2つの符号量情報を使用する際、サブバンド毎コーディングパス数とそれに対する符号量情報に基づいて、一部の注目領域内の画質を注目領域外の画質より高くするために注目領域内個々コードブロック毎のコーディングパス数とそれに対する符号量情報を加算して注目領域内コードブロックの符号量を注目領域外コードブロックの符号量より増加させ、その他の注目領域内の画質を注目領域外の画質より低くするために注目領域内個々コードブロック毎のコーディングパス数とそれに対する符号量情報を減算して注目領域内コードブロックの符号量を注目領域外コードブロックの符号量より減少させることで効率的に符号量を計算することができる。
以上説明したように、本発明の実施形態に係る画像圧縮装置及び方法によれば、注目領域があるレートコントロールでは符号量制御手段をサブバンド毎に選択適用することができ、ROI注目領域があるレートコントロールテーブルの選択時において符号量の計算効率を向上させることができる。
また、注目領域内外の符号量調整において符号量計算サイクル数を減らすことができ、これにより、ROI注目領域があるレートコントロールテーブルの選択時において符号量の計算効率を向上させることができる。
さらに、注目領域内外の符号量調整において外部記憶装置へのアクセス回数を減らすことができ、これにより、ROI注目領域があるレートコントロールテーブルの選択時において符号量の計算効率を向上させることができる。
また、サブバンド内注目領域の符号量が注目領域外の符号量より多くするときに効率的に符号量を計算することができる。
さらに、サブバンド内注目領域の符号量が注目領域外の符号量より少なくするときに効率的に符号量を計算することができる。
またさらに、サブバンド内注目領域によって注目領域内の符号量を多くするあるいは少なくするときに効率的に符号量を計算することができる。
以上の実施形態においては、画像圧縮方法のための符号量制御方法について説明しているが、これらの方法のステップをコンピュータにより実行可能なプログラムを構成し、当該プログラムをCD−ROM、DVDなどのコンピュータにより読み出し可能な記録媒体に記録してもよい。