以下、図面を参照して本発明の実施形態を説明する。ただし、本発明の実施形態は以下の実施形態に限定されるものではない。
実施形態1、2に係る画像処理装置では、ウェーブレット符号化、復号化方式が採用され、帯域ごとに量子化パラメータが設定される。ただし、高域側のウェーブレット係数の量子化、逆量子化の際に、帯域ごとに設定された量子化パラメータがそのまま使用されるのではなく、対応する低域側のウェーブレット係数の大小に応じて量子化パラメータが調整される。これにより、同じ帯域内でも例えば画像の輪郭部分やエッジ部分の量子化ステップを他の部分よりも細かくすることができ、それらの部分の劣化を低減することができる。また、高域側の量子化パラメータの調整値は低域側のウェーブレット係数を所定の規則に基づき変換することで得られるので、別途調整用の情報を符号データに含める必要はなく、データ量の抑制にも資する。
[実施形態1]
以下、実施形態1に対応する画像処理装置を説明する。図1(a)は実施形態1における画像処理装置2の構成の一例を示す図である。画像処理装置2は、例えば取得部10、画像符号化部100、メモリ30を有する。図1の画像処理装置2において、各ブロックは、撮像素子や表示素子のような物理的デバイスを除き専用のデバイス、ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU(Central Processing Unit)等のコンピュータまたは素子が実行することにより、ソフトウェア的に構成されてもよい。画像処理装置2は例えばデジタルカメラとして実施することができるが、それ以外にも、例えばパーソナルコンピュータ、携帯電話、スマートフォン、PDA(Personal Digital Assistant)、タブレット端末、デジタルビデオカメラなどの任意の情報処理端末或いは撮像装置とすることができる。
図1(a)において、取得部10は画像データを取得する機能を有する。取得部10は、例えば、撮像センサを備える撮像部や、外部から伝送路を介して画像データを入力する構成を含む。或いは、取得部10は、記録媒体などから画像データを読み出す構成を含む。また、取得される画像データは、静止画データであってもよく、動画データであってもよい。取得部10が取得する画像データが動画データの場合、複数のフレームの動画データが連続的に取得されてもよい。
取得部10は、取得した画像データを画像符号化部100に供給する。画像符号化部100は、取得部10から供給される画像データを、離散ウェーブレット変換を用いた符号化方式に従って符号化し、情報量が圧縮された符号データを出力する。出力された符号データは、メモリ30に記憶される。メモリ30は、画像符号化部100から出力された符号データを記憶するために必要な記憶容量を有する。メモリ30に記憶された符号データには後段の処理部(不図示)において現像処理や更なる圧縮処理が実施される。
なお、図1(a)では、取得部10、画像符号化部100及びメモリ30を独立した構成として示しているが、画像処理装置2に実装するに当り、これらを一体に例えば1チップに統合してもよいし、あるいは別体として独立に構成しても良い。
図1(b)は、実施形態1における画像符号化部100の構成例を示すブロック図である。画像符号化部100は、取得部10から画像データを取得し、取得された画像データに変換、量子化、符号化等の処理を施すことで符号データを生成し、生成された符号データを出力する。画像符号化部100は、ウェーブレット変換部101と、量子化部103と、量子化制御部104と、エントロピー符号化部105と、画像データ入力端子106と、符号データ出力端子107と、を備える。画像符号化部100は、画像符号化装置として専用のデバイス、ロジック回路やメモリを用いてハードウェア的に一体的に構成されても良いし、或いは、複数のデバイス等で分散して構成されてもよい。或いは、メモリに記憶されている処理プログラムをCPU等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。
図1(c)は、実施形態1における画像復号化部700の構成例を示すブロック図である。画像復号化部700は図1(a)の場合と同様に画像処理装置の一部であってもよいし、それ自体が独立した装置であってもよい。画像復号化部700は、画像符号化部100によって出力された符号データを取得し、復号化、逆量子化、逆変換等の処理を施すことで画像データを再現する。画像復号化部700は、エントロピー復号化部702と、逆量子化部703と、ウェーブレット逆変換部704と、符号データ入力端子701と、出力端子705と、を備える。
画像符号化部100の動作の概要を説明する。図2は、画像符号化部100における一連の処理の一例を示すフローチャートである。該フローチャートに対応する処理は、例えば、画像符号化部100として機能する1以上のプロセッサが対応するプログラム(ROM等に格納)を実行することにより実現できる。
S52では、ウェーブレット変換部101は、取得された画像データに離散ウェーブレット変換を適用し、互いに対応する低域成分と高域成分とを含むウェーブレット係数を算出する。ステップS54では、量子化部103は、低域に属するウェーブレット係数に基づいて、対応する高域のウェーブレット係数の量子化パラメータを調整する。ステップS56では、量子化部103は、調整された量子化パラメータを使用して、ウェーブレット係数を量子化する。ステップS58では、エントロピー符号化部105は、量子化係数および対応する基準量子化パラメータをエントロピー符号化する。
以下、図2のS52における、ウェーブレット変換部101が実施する離散ウェーブレット変換処理の詳細を図1(a)に戻って説明する。外部からの画像データは画像データ入力端子106を介してウェーブレット変換部101に入力される。ウェーブレット変換部101は入力された画像データに対して離散ウェーブレット変換を施す。離散ウェーブレット変換では、画像の垂直方向と水平方向に順にローパスフィルタおよびハイパスフィルタをかけて、画像データを低域成分Lと高域成分Hとに帯域分割し、ウェーブレット係数を生成する。なお、フィルタをかける方向は垂直方向、水平方向のように直交する2つの方向に限られず、画像に対して定義される交差する2つの方向であればよい。
1回の帯域分割により水平・垂直の低域・高域の組み合わせでLL、LH、HL、HHの4つの帯域のウェーブレット係数に分割される。そして水平垂直ともに低域であるLLに対しては再帰的に帯域分割が施される。その結果、ウェーブレット係数は周波数領域で階層化される。LLに対して水平方向、垂直方向のそれぞれについて周波数による2分割が行われることにより、LLのなかにさらにLL、LH、HL、HHの4つの帯域が生成される。そのように生成されたLL、LH、HL、HHは元のLLが属していた階層とは異なる階層を形成する。仮に元の階層をA階層、A階層のLLの帯域分割により生成される階層をB階層と呼ぶと、A階層のLLは水平・垂直のいずれについても周波数の低い側の帯域であるから、そのLLから形成されるB階層はA階層よりも周波数の低い階層である。画像のウェーブレット変換では基本的にLLの帯域分割を繰り返すことで複数階層を構成するので、階層の違いは周波数の違いとして捉えることができる。
ここで、帯域分割した回数はウェーブレット変換における階層数を表し、本明細書では分解レベルと呼ぶ。本実施形態では帯域分割した回数が多いほど分解レベルが大きくなるものとして説明する。また、帯域分割により生じる帯域をnXYと表記する。nは分解レベルであり、Xは水平方向の低域成分Lまたは高域成分Hを表し、Yは垂直方向の低域成分Lまたは高域成分Hを表す。帯域nXYに属するウェーブレット係数をTnXYと表記する。なお、同じ階層に属するLL、LH、HL、HHの間の関係では、LHは垂直方向についてLLよりも周波数の高い帯域である。HLは水平方向についてLLよりも周波数の高い帯域である。HHは垂直方向、水平方向のいずれについてもLLよりも周波数の高い帯域である。
図3(a)に実施形態1における帯域分割されたウェーブレット係数T1HH〜T3LLの配列の一例を示す。実施形態1では同図に示すように3回の帯域分割を行って、分解レベル1から分解レベル3までが生成される。
ウェーブレット変換部101にて変換された分解レベル1〜3のウェーブレット係数T1HH〜T3LLは量子化部103に入力される。量子化部103はウェーブレット係数T1HH〜T3LLを量子化制御部104から設定される帯域毎の基準量子化パラメータに基づき量子化し、量子化係数TQ1HH〜TQ3LLとしてエントロピー符号化部105へ出力する。量子化制御部104が設定する基準量子化パラメータについて図3(b)を用いて説明する。図3(b)は帯域毎の基準量子化パラメータの一例を示す図である。同図に示すようにこの例では、基準量子化パラメータは、3LLは1、3LHは2、3HLは2、3HHは4、2LHは16、2HLは16、2HHは32、1LHは32、1HLは32、1HHは64、である。
この基準量子化パラメータは後述する量子化部103における量子化ステップの基準となる値であり、劣化が目立ちやすい低域成分は小さな値を設定し、量子化ステップを細かくして、劣化が目立ちにくい高域成分ほど、大きな値を設定し、量子化ステップを粗くすることで良好な画質が得られる。量子化部103の詳細は後述する。
以下、図2のS58における、エントロピー符号化部105が実施する量子化係数の符号化処理の詳細を説明する。
エントロピー符号化部105は量子化部103で量子化された量子化係数TQ1HH〜TQ3LLと、量子化制御部104からの帯域毎の基準量子化パラメータを入力データとして、エントロピー符号化を行う。エントロピー符号化部105は、所定のエントロピー符号化方式により、入力されたデータを冗長性を削除するように符号化し、符号データとして出力する。所定のエントロピー符号化方式はランレングス符号、ハフマン符号、算術符号などの可逆圧縮符号化方式であってもよい。エントロピー符号化部105から出力された符号データは符号データ出力端子107を介して出力され、メモリ30などの記録手段に記録される。または、図示しない伝送手段により画像復号化部700に伝送される。
図4は量子化部103の構成例を示すブロック図である。量子化部103は、3LL成分の量子化を行うLL量子化部310と、1LH、2LH、3LH成分の量子化を行うLH量子化部320と、1HL、2HL、3HL成分の量子化を行うHL量子化部330と、1HH、2HH、3HH成分の量子化を行うHH量子化部340と、を含む。量子化部103は、ウェーブレット係数の低域側成分に基づいてウェーブレット係数の高域側成分を量子化する。量子化部103でのウェーブレット係数の量子化における量子化ステップは、そのウェーブレット係数が属する階層よりも周波数の低い階層に属する別のウェーブレット係数に基づき設定される。特に、量子化ステップは、ウェーブレット係数が属する分解レベルよりも大きな分解レベルに属する別のウェーブレット係数に基づき設定される。
LL量子化部310は、3LL成分の量子化を以下のように行う。LL量子化部310にはウェーブレット変換部101からウェーブレット係数T3LLと、量子化制御部104から基準量子化パラメータQP3LLが入力されている。量子化器311は3LLのウェーブレット係数T3LLを、基準量子化パラメータQP3LLを用いて量子化する。量子化された量子化係数TQ3LLはエントロピー符号化部105に出力される。
以下、図2のS54、S56における、量子化部103が実施する量子化パラメータの調整処理、ウェーブレット係数の量子化処理の詳細を説明する。
LH量子化部320は、分解レベル1〜3のLH成分の量子化を以下のように行う。LH量子化部320にはウェーブレット変換部101からウェーブレット係数T1LH、T2LH、T3LHと、量子化制御部104から基準量子化パラメータQP1LH、QP2LH、QP3LHが入力されている。量子化器321は、3LHのウェーブレット係数T3LHを、基準量子化パラメータQP3LHを用いて量子化する。量子化された量子化係数TQ3LHはエントロピー符号化部105に出力されるとともに逆量子化器322に入力される。
逆量子化器322は、量子化係数TQ3LHを、量子化時と同じ基準量子化パラメータQP3LHを用いて逆量子化する。逆量子化により得られたウェーブレット係数TIQ3LHは第1変換テーブル326、第2変換テーブル323を参照する変換部(図では変換テーブルと表記)に入力される。なお、逆量子化器322を設ける代わりに、ウェーブレット変換部101から入力される3LHのウェーブレット係数T3LHが変換部に入力されてもよい。
第1変換テーブル326はウェーブレット係数TIQ3LHを、1LHのウェーブレット係数T1LHの量子化において適用する重みづけ係数に変換する規則を保持する。乗算器327は基準量子化パラメータQP1LHに第1変換テーブル326からの重みづけ係数を乗じて、ウェーブレット係数T1LHを量子化する際の適用量子化パラメータを出力する。量子化器328は1LHのウェーブレット係数T1LHを乗算器327からの適用量子化パラメータを用いて量子化する。量子化された量子化係数TQ1LHはエントロピー符号化部105に出力される。
第2変換テーブル323はウェーブレット係数TIQ3LHを、2LHのウェーブレット係数T2LHの量子化において適用する重みづけ係数に変換する規則を保持する。乗算器324は基準量子化パラメータQP2LHに第2変換テーブル323からの重みづけ係数を乗じて、ウェーブレット係数T2LHを量子化する際の適用量子化パラメータを出力する。量子化器325は2LHのウェーブレット係数T2LHを乗算器324からの適用量子化パラメータを用いて量子化する。量子化された量子化係数TQ2LHはエントロピー符号化部105に出力される。
第1変換テーブル326、第2変換テーブル323はそれぞれ、分解レベル3のウェーブレット係数を量子化し、逆量子化して得られたウェーブレット係数を、分解レベル1および分解レベル2のウェーブレット係数を量子化する際の重みづけ係数に変換する変換テーブルである。
重みづけ係数は、量子化制御部104で帯域毎に設定された基準量子化パラメータに乗じて、適用量子化パラメータを小さくしたり、大きくしたりするための係数である。基本的にはウェーブレット係数が小さいほど、重みづけ係数を大きく(例えば1以上)にして、ウェーブレット係数が大きいほど、重みづけ係数を小さく(例えば1以下)する。またウェーブレット係数は正負の値であるので、入力値の絶対値化が行われている。
図5に第1変換テーブル326、第2変換テーブル323の入出力特性の一例を示す。これはウェーブレット係数が9ビット(値:−256〜255)の場合の例であり、同図に示すように、入力範囲:−256→0→255に対して、出力範囲:0.5→1.5→0.5となるようになっている。例えば、入力値であるウェーブレット係数の絶対値が小さいときは1.5を出力し、大きいときは0.5を出力する特性となっている。これにより、例えば基準量子化パラメータが32と設定されていた場合、重みづけ係数(0.5〜1.5)が乗じられて、適用量子化パラメータが16〜48に変化することになる。
一般に、LH、HL、HHにおいてエッジ部分に対応するウェーブレット係数の絶対値は、他のウェーブレット係数と比べて大きくなる傾向にある。したがって、上記のようにウェーブレット係数の絶対値が大きいときは重みづけ係数を小さくして対応する上の階層のウェーブレット係数の量子化ステップを細かくすることにより、エッジ部分に対応する上の階層のウェーブレット係数の量子化誤差を低減できる。これは、エッジ部分の劣化の低減に資する。
また、絶対値が小さいときは重みづけ係数を大きくして量子化ステップを粗くすることにより、符号量を低減できる。特に、絶対値が大きいことに対応して量子化ステップを細かくすることによる符号量の増大を相殺することができる。
上記の重みづけ係数の値は一例であって、より小さい重みづけ係数やより大きな重みづけ係数を用いることもできる。
また、3LHのウェーブレット係数から生成される重みづけ係数を2LH、1LHのウェーブレット係数の量子化に適用する際、3LHにおけるウェーブレット係数の位置と2LH、1LHにおけるウェーブレット係数の位置とは対応する。
図3(c)を用いて、1LH、2LH、3LHのウェーブレット係数相互の位置関係について説明する。図3(c)は実施形態1における帯域分割されたウェーブレット係数1HH〜3LLの配列の一例を示す図である。矩形601、602、603はそれぞれ、3LH、2LH、1LHの1つのウェーブレット係数を表している。離散ウェーブレット変換における分解レベルが下がる度にウェーブレット係数の数は水平、垂直とも2倍になる。3LHの1個のウェーブレット係数601の3LHにおける座標と、2LHの2×2個のウェーブレット係数602の2LHにおける座標と、は対応する。3LHの1個のウェーブレット係数601の3LHにおける座標と、1LHの4×4個のウェーブレット係数603の1LHにおける座標と、は対応する。
例えば、3LHの1個のウェーブレット係数601から生成される重みづけ係数は2LHの2×2個のウェーブレット係数602と、1LHの4×4個のウェーブレット係数603の量子化に適用される。
これら一連の動作により、LH量子化部320は、3LHのウェーブレット係数から生成された重みづけ係数によって1LHと2LHの適用量子化パラメータを変化させて、1LHと2LHのウェーブレット係数を量子化する。3LHのウェーブレット係数の絶対値が大きいほど、1LHと2LHの適用量子化パラメータは小さくなり、小さな量子化ステップで量子化が行われる。
HL量子化部330およびHH量子化部340の動作はLH量子化部320と同様であり、説明は省略する。HL量子化部330およびHH量子化部340においてもLH量子化部320と同様に分解レベル3のウェーブレット係数から重みづけ係数を生成して、分解レベル2、1の適用量子化パラメータを調整するように量子化が行われる。例えば、HL量子化部330は、3HLのウェーブレット係数から生成された重みづけ係数によって1HLと2HLの適用量子化パラメータを変化させて、1HLと2HLのウェーブレット係数を量子化する。3HLのウェーブレット係数の絶対値が大きいほど、1HLと2HLの適用量子化パラメータは小さくなり、小さな量子化ステップで量子化が行われる。また、例えばHH量子化部340は、3HHのウェーブレット係数から生成された重みづけ係数によって1HHと2HHの適用量子化パラメータを変化させて、1HHと2HHのウェーブレット係数を量子化する。3HHのウェーブレット係数の絶対値が大きいほど、1HHと2HHの適用量子化パラメータは小さくなり、小さな量子化ステップで量子化が行われる。
図1(c)に戻り、画像復号化部700について説明する。画像符号化部100から出力された符号データは、図示しない伝送手段により画像復号化部700に入力される。その符号データは、符号データ入力端子701を介し、エントロピー復号化部702に入力される。
エントロピー復号化部702は所定のエントロピー復号化方式で、入力された符号データを復号し、上記の量子化係数TQ1HH〜TQ3LLと上記の基準量子化パラメータQP1HH〜QP3LLとを得る。エントロピー復号化部702は、得られた量子化係数TQ1HH〜TQ3LLおよび基準量子化パラメータQP1HH〜QP3LLを逆量子化部703に出力する。
逆量子化部703は基準量子化パラメータQP1HH〜QP3LLを用いて量子化係数TQ1HH〜TQ3LLを逆量子化し、ウェーブレット係数TIQ1HH〜TIQ3LLを得る。逆量子化部703は、得られたウェーブレット係数TIQ1HH〜TIQ3LLをウェーブレット逆変換部704へ出力する。逆量子化部703の詳細は後述する。
ウェーブレット逆変換部704は逆量子化部703からのウェーブレット係数TIQ1HH〜TIQ3LLを用いて、逆離散ウェーブレット変換を行い、復号画像データを生成し出力する。復号画像データは出力端子705を介して、図示しない外部の表示装置等に出力される。
図7は逆量子化部703の構成例を示すブロック図である。逆量子化部703は、3LL成分の逆量子化を行うLL逆量子化部810と、1LH、2LH、3LH成分の逆量子化を行うLH逆量子化部820と、1HL、2HL、3HL成分の逆量子化を行うHL逆量子化部830と、1HH、2HH、3HH成分の逆量子化を行うHH逆量子化部840と、を備える。
LL逆量子化部810は、3LL成分の逆量子化を以下のように行う。LL逆量子化部810にはエントロピー復号化部702から量子化係数TQ3LLと、基準量子化パラメータQP3LLが入力されている。逆量子化器811は量子化係数TQ3LLを、基準量子化パラメータQP3LLを用いて逆量子化する。逆量子化により得られたウェーブレット係数TIQ3LLはウェーブレット逆変換部704に出力される。
LH逆量子化部820は、分解レベル1〜3のLH成分の逆量子化を以下のように行う。LH逆量子化部820にはエントロピー復号化部702から量子化係数TQ1LH、TQ2LH、TQ3LHと、基準量子化パラメータQP1LH、QP2LH、QP3LHが入力されている。逆量子化器821は、3LHの量子化係数TQ3LHを、基準量子化パラメータQP3LHを用いて逆量子化する。逆量子化により得られたウェーブレット係数TIQ3LHはウェーブレット逆変換部704に出力されるとともに第3変換テーブル825、第4変換テーブル822を参照する変換部(図では変換テーブルと表記)に入力される。
第3変換テーブル825はウェーブレット係数TIQ3LHを、1LHの量子化係数TQ1LHを逆量子化する際の重みづけ係数に変換する規則を保持する。
乗算器826は基準量子化パラメータQP1LHに第3変換テーブル825からの重みづけ係数を乗じて、量子化係数TQ1LHを逆量子化する際の適用量子化パラメータを出力する。
逆量子化器827は1LHの量子化係数TQ1LHを乗算器826からの適用量子化パラメータを用いて逆量子化する。逆量子化により得られたウェーブレット係数TIQ1LHはウェーブレット逆変換部704に出力される。
第4変換テーブル822はウェーブレット係数TIQ3LHを、2LHの量子化係数TQ2LHを逆量子化する際の重みづけ係数に変換する規則を保持する。
乗算器823は基準量子化パラメータQP2LHに第4変換テーブル822からの重みづけ係数を乗じて、量子化係数TQ2LHを逆量子化する際の適用量子化パラメータを出力する。
逆量子化器824は2LHの量子化係数TQ2LHを乗算器823からの適用量子化パラメータを用いて逆量子化する。逆量子化により得られたウェーブレット係数TIQ2LHはウェーブレット逆変換部704に出力される。
第3変換テーブル825、第4変換テーブル822はそれぞれ、分解レベル3の量子化係数を逆量子化したウェーブレット係数を、分解レベル1および分解レベル2の量子化係数を逆量子化する際の重みづけ係数に変換する変換テーブルであり、入力値に対する出力値は、図4の第1変換テーブル326と第2変換テーブル323とそれぞれ同一とする。
また、3LHのウェーブレット係数から生成される重みづけ係数を2LH、1LHの量子化係数の逆量子化に適用する際、3LHにおけるウェーブレット係数の位置と2LH、1LHにおける量子化係数の位置とは対応する。特にそれらは同じである。
これら一連の動作により、LH逆量子化部820は、3LHのウェーブレット係数から生成された重みづけ係数によって1LHと2LHの適用量子化パラメータを変化させて、1LHと2LHの量子化係数を逆量子化する。重みづけ係数は3LHのウェーブレット係数から生成しているため、画像符号化部100における量子化部103の重みづけ係数と同じ値となり、量子化時と同じ適用量子化パラメータで逆量子化がなされることになる。
HL逆量子化部830およびHH逆量子化部840の動作はLH逆量子化部820と同様であり、説明は省略する。
以上説明したように量子化部103および逆量子化部703は低域側成分である分解レベル3のLH、HL、HHのウェーブレット係数を高域側成分の量子化時および逆量子化時の重みづけ係数に変換し、これを基準量子化パラメータに乗じることで最終的な適用量子化パラメータを生成する。
ウェーブレット係数の低域側の成分は画像中のオブジェクト(被写体)の大まかな輪郭(エッジ)である場合が多い。したがって、実施形態1に係る画像符号化部100または画像復号化部700によると、ウェーブレット係数の低域側成分に基づいて重みづけ係数を算出し、この重みづけ係数を対応する高域側成分の量子化、逆量子化に適用するので、エッジ部分の劣化を低減することができる。また、重みづけ係数はウェーブレット係数の低域側成分から生成されるため、別途、符号データ中に重みづけ係数を保存する必要がなく、符号量の増大を抑えることができる。
また、実施形態1に係る画像符号化部100または画像復号化部700によると、ウェーブレット変換による符号化、復号化方式において画像に応じて適応的に高域側の量子化ステップを調整できる。したがって、高域側の基準量子化パラメータをより大きく設定することで全体的な符号データの量を低減しつつ、エッジや輪郭に対応する部分は適応的、局所的に量子化ステップを細かくすることで画質劣化を抑えることができる。
[実施形態2]
実施形態2について説明する。実施形態2と実施形態1との相違点は量子化部および逆量子化部の構成にある。実施形態1では各帯域の量子化・逆量子化を並列に行っていたのに対し、実施形態2では時系列に、低域側の成分から高域側の成分に順に行う点である。その他のウェーブレット変換部・逆変換部、エントロピー符号化部・復号化部、量子化制御部は同様であるため説明は省略する。
図7(a)は、実施形態2における量子化部900の構成例を示すブロック図である。同図において量子化部900は実施形態1の量子化部103に相当する。量子化部900は、量子化器901、量子化パラメータ決定部902、逆量子化器903、メモリ904を備える。
量子化部900の動作の概要を説明する。図8は、量子化部900における一連の処理の一例を示すフローチャートである。図2のフローチャートと共通するステップには同じ符号を付し、説明を省略する。該フローチャートに対応する処理は、例えば、量子化部900として機能する1以上のプロセッサが対応するプログラム(ROM等に格納)を実行することにより実現できる。
ステップS862では、量子化器901は、最大分解レベルのLL、LH、HL、HH、上記の例では3LL、3LH、3HL、3HHに属するウェーブレット係数を基準量子化パラメータにより量子化する。ステップS864においてより低い分解レベルが存在する場合、ステップS866において量子化パラメータ決定部902は、より高い分解レベルのLH、HL、HHに属するウェーブレット係数を使用して、より低い分解レベルのLH、HL、HHに属するウェーブレット係数の量子化の際に適用すべき適用量子化パラメータをそれぞれ調整する。上記の例では、量子化パラメータ決定部902は、3LH、3HL、3HHに属するウェーブレット係数をメモリ904から読み出し、読み出されたウェーブレット係数を所定の規則にしたがい重みづけ係数に変換し、得られた重みづけ係数を基準量子化パラメータに作用させて適用量子化パラメータを得る。ステップS868では、量子化器901は、より低い分解レベルのLH、HL、HHに属するウェーブレット係数を、ステップS866で調整された適用量子化パラメータを使用して量子化する。その後、処理はステップS864に戻る。量子化部900は、ステップS864においてより低い分解レベルが存在しない場合、すべての分解レベルのすべての帯域を量子化したと判断し、処理をステップS58に進める。
図7(a)に戻り、量子化器901にはウェーブレット変換部101からのウェーブレット係数と、後述する量子化パラメータ決定部902からの適用量子化パラメータが入力されている。
量子化器901は帯域毎に時系列で入力されるウェーブレット係数を、量子化パラメータ決定部902からの適用量子化パラメータを用いて量子化する。量子化された量子化係数はエントロピー符号化部105に出力されるとともに逆量子化器903に入力される。
逆量子化器903は、量子化係数を、量子化時と同じ適用量子化パラメータを用いて逆量子化する。逆量子化により得られたウェーブレット係数はメモリ904に入力される。
量子化パラメータ決定部902は量子化制御部104からの基準量子化パラメータとメモリ904からのウェーブレット係数とを用いて、帯域毎に異なる方法で最終的な適用量子化パラメータを決定し、量子化器901と逆量子化器903とに出力する。
量子化部900の動作について説明する。量子化部900は低域側の成分から高域側の成分に順に時系列で量子化処理を行う。そのため、以下のように帯域毎に異なる処理で量子化が行われる。
以下、図8のS862における、量子化器901が実施する最大分解レベルの帯域に属するウェーブレット係数の量子化処理の詳細を説明する。量子化部900には低域成分である分解レベル3のLL、LH、HL、HH成分のウェーブレット係数T3LL〜T3HHと、分解レベル3のLL、LH、HL、HHの基準量子化パラメータQP3LL〜QP3HHが順次入力される。分解レベル3の量子化においては、量子化パラメータ決定部902は入力された基準量子化パラメータをそのまま量子化器901に出力する。量子化器901において量子化された量子化係数TQ3LL〜TQ3HHはエントロピー符号化部105に出力される。また、逆量子化器903において逆量子化された分解レベル3のLH、HL、HH成分のウェーブレット係数TIQ3LH〜TIQ3HHはメモリ904のそれぞれの領域に書き込まれて記憶される。
以下、図8のS866、S868における、量子化パラメータ決定部902が実施する量子化パラメータの調整処理、量子化器901が実施する調整された量子化パラメータでの量子化処理の詳細を説明する。量子化部900には中域成分である分解レベル2のLH、HL、HH成分のウェーブレット係数T2LH〜T2HHと、分解レベル2のLH、HL、HHの基準量子化パラメータQP2LH〜QP2HHが順次入力される。一方メモリ904からは上記で記憶された分解レベル3のウェーブレット係数が読み出されて、量子化パラメータ決定部902に入力される。量子化パラメータ決定部902はメモリ904から入力された分解レベル3のウェーブレット係数を重みづけ係数に変換する。当該変換は実施形態1で説明した変換テーブルに基づくことができ、ウェーブレット係数が大きいほど重みづけ係数は小さい値(例えば1以下)になり、ウェーブレット係数が小さいほど大きい値(例えば1以上)になる。量子化パラメータ決定部902は、該重みづけ係数を、量子化制御部104から入力された基準量子化パラメータに乗じて、最終的な適用量子化パラメータを得、得られた適用量子化パラメータを出力する。量子化器901において量子化された量子化係数TQ2LH〜TQ2HHはエントロピー符号化部105に出力される。分解レベル2の処理においては、逆量子化器903は動作させる必要がないので停止させておいてもよい。分解レベル3の帯域におけるウェーブレット係数の位置と分解レベル2の帯域におけるウェーブレット係数の位置とが対応することは、実施形態1と同様である。
次に、量子化部900には高域成分である分解レベル1のLH、HL、HH成分のウェーブレット係数T1LH〜T1HHと、分解レベル1のLH、HL、HHの基準量子化パラメータQP1LH〜QP1HHが順次入力される。一方メモリ904からは上記で記憶された分解レベル3のウェーブレット係数が読み出されて、量子化パラメータ決定部902に入力される。量子化パラメータ決定部902はメモリ904から入力された分解レベル3のウェーブレット係数を重みづけ係数に変換する。これは実施形態1で説明した変換テーブルの作用に相当し、ウェーブレット係数が大きいほど重みづけ係数は小さい値(例えば1以下)になり、ウェーブレット係数が小さいほど大きい値(例えば1以上)になる。量子化パラメータ決定部902は、該重みづけ係数を、量子化制御部104から入力された基準量子化パラメータに乗じて、最終的な適用量子化パラメータを得、得られた適用量子化パラメータを出力する。量子化器901において量子化された量子化係数TQ1LH〜TQ1HHはエントロピー符号化部105に出力される。また、分解レベル1の処理においては、逆量子化器903は動作させる必要がないので停止させておいてもよい。分解レベル3の帯域におけるウェーブレット係数の位置と分解レベル1の帯域におけるウェーブレット係数の位置とが対応することは、実施形態1と同様である。
図7(b)は、実施形態2における逆量子化部1000の構成例を示すブロック図である。同図において逆量子化部1000は実施形態1の逆量子化部703に相当し、逆量子化器1001、量子化パラメータ決定部1002、メモリ1003を備える。
逆量子化器1001にはエントロピー復号化部702からの量子化係数と、量子化パラメータ決定部1002からの適用量子化パラメータが入力されている。
逆量子化器1001は帯域毎に時系列で入力される量子化係数を、量子化パラメータ決定部1002からの適用量子化パラメータを用いて逆量子化する。逆量子化して得られたウェーブレット係数はウェーブレット逆変換部704に出力されるとともにメモリ1003に入力される。
量子化パラメータ決定部1002はエントロピー復号化部702からの基準量子化パラメータとメモリ1003からのウェーブレット係数を用いて、帯域毎に異なる方法で最終的な適用量子化パラメータを決定し、逆量子化器1001に出力する。
以下、逆量子化部1000の動作について説明する。逆量子化部1000は低域側の成分から高域側の成分に順に時系列で逆量子化処理を行う。そのため、以下のように帯域毎に異なる処理で逆量子化が行われる。
まず、逆量子化部1000には低域成分である分解レベル3のLL、LH、HL、HH成分の量子化係数TQ3LL〜TQ3HHと、分解レベル3のLL、LH、HL、HHの基準量子化パラメータQP3LL〜QP3HHが順次入力される。分解レベル3の逆量子化においては、量子化パラメータ決定部1002は入力された基準量子化パラメータをそのまま逆量子化器1001に出力する。逆量子化器1001において逆量子化して得られたウェーブレット係数TIQ3LL〜TIQ3HHはウェーブレット逆変換部704に出力される。分解レベル3のLH、HL、HH成分のウェーブレット係数TIQ3LH〜TIQ3HHはメモリ1004のそれぞれの領域に書き込まれて記憶される。
次に、逆量子化部1000には中域成分である分解レベル2のLH、HL、HH成分の量子化係数TQ2LH〜TQ2HHと、分解レベル2のLH、HL、HHの基準量子化パラメータQP2LH〜QP2HHが順次入力される。一方メモリ1003からは上記で記憶された分解レベル3のウェーブレット係数が読み出されて、量子化パラメータ決定部1002に入力される。量子化パラメータ決定部1002はメモリ1003から入力された分解レベル3のウェーブレット係数を重みづけ係数に変換する。量子化部900の量子化パラメータ決定部902と同様に、ウェーブレット係数が大きいほど重みづけ係数は小さい値(例えば1以下)になり、ウェーブレット係数が小さいほど大きい値(例えば1以上)になる。量子化パラメータ決定部1002は該重みづけ係数を、基準量子化パラメータに乗じて、最終的な適用量子化パラメータを得、得られた適用量子化パラメータを出力する。逆量子化器1001において逆量子化して得られたウェーブレット係数TIQ2LH〜TIQ2HHはウェーブレット逆変換部704に出力される。また、分解レベル2の処理においては、メモリ1003への書き込みは行わない。分解レベル3の帯域におけるウェーブレット係数の位置と分解レベル2の帯域における量子化係数の位置とが対応することは、実施形態1と同様である。
次に、逆量子化部1000には高域成分である分解レベル1のLH、HL、HH成分の量子化係数TQ1LH〜TQ1HHと、分解レベル1のLH、HL、HHの基準量子化パラメータQP1LH〜QP1HHが順次入力される。一方メモリ1003からは上記で記憶された分解レベル3のウェーブレット係数が読み出されて、量子化パラメータ決定部1002に入力される。量子化パラメータ決定部1002はメモリ1003から入力された分解レベル3のウェーブレット係数を重みづけ係数に変換する。量子化部900の量子化パラメータ決定部902と同様に、ウェーブレット係数が大きいほど重みづけ係数は小さい値(例えば1以下)になり、ウェーブレット係数が小さいほど大きい値(例えば1以上)になる。量子化パラメータ決定部1002は該重みづけ係数を、基準量子化パラメータに乗じて、最終的な適用量子化パラメータを得、得られた適用量子化パラメータを出力する。逆量子化器1001において逆量子化して得られたウェーブレット係数TIQ1LH〜TIQ1HHはウェーブレット逆変換部704に出力される。また、分解レベル2の処理においては、メモリ1003への書き込みは行わない。分解レベル3の帯域におけるウェーブレット係数の位置と分解レベル1の帯域における量子化係数の位置とが対応することは、実施形態1と同様である。
以上説明したように量子化部900および逆量子化部1000は時系列で、低域側成分から高域側成分の順に量子化・逆量子化を行う。低域側成分の逆量子化されたウェーブレット係数をメモリに記憶させ、これを読み出して高域側成分の量子化時および逆量子化時の重みづけ係数に変換し適用量子化パラメータを生成することで、実施形態1での並列動作による量子化処理、逆量子化処理と同様の作用効果を得ることができる。
また、実施形態2に係る画像処理装置によると、低域から高域へと量子化、逆量子化を進めるので、高域の処理において低域の処理結果を待つ必要がなくなり、演算リソースをより効率的に使用できる。
以上、実施形態に係る画像処理装置の構成と動作について説明した。これらの実施形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施形態1では重みづけ係数に変換するための変換テーブルの変換特性が線形特性である場合について説明したが、これに限られない。例えば、変換特性を非線形としてもよい。または、第1変換テーブルの特性と第2変換テーブルの特性とを異ならせてもよい。
図9(a)は、ウェーブレット係数の絶対値が大きくなるにつれて重みづけ係数が階段状に低下する例を示す。図9(b)は、ウェーブレット係数の絶対値が大きくなるにつれて重みづけ係数が下に凸の曲線にしたがって低下する例を示す。図9(c)は、ウェーブレット係数の絶対値が所定のしきい値よりも大きくなると重みづけ係数が小さくなる2値変化の例を示す。また、図9(b)に示す曲線を直線により置き換えても良い。さらに図9(c)で直線で示した部分を曲線により置き換えて略半円形状で入出力特性が変化しても良い。
実施形態1、2の量子化部では、分解レベル3のLH、HL、HHのウェーブレット係数を重みづけ係数に変換しているが、これに限られない。例えば、他の分解レベル(例えば分解レベル2)のウェーブレット係数が用いられてもよい。また、複数の分解レベルのウェーブレット係数や、複数の異なる方向(LH、HL、HH)のウェーブレット係数を合成し、その合成値が用いられてもよい。例えば平均値が用いられてもよい。これは、LH、HL、HHの帯域は共通して、エッジ部分に対応するウェーブレット係数の絶対値が大きくなるという特徴を有していることに基づく。
例えば、図4に示されるLH量子化部320、HL量子化部330、HH量子化部340や図7に示される量子化部900において、3LHに属するウェーブレット係数から求められる重みづけ係数を2HHや1HLに属する対応するウェーブレット係数の量子化ステップに適用してもよい。あるいはまた、3HHに属するウェーブレット係数から求められる重みづけ係数を2LH、2HL、2HHに属するウェーブレット係数の量子化ステップに適用してもよい。この場合、HL量子化部やLH量子化部において3HLや3LHについての逆量子化器が不要となり、回路の簡素化に寄与する。逆量子化についても同様である。
実施形態1および実施形態2では、重みづけ係数を量子化制御部から設定された基準量子化パラメータに乗じて最終的な適用量子化パラメータを生成しているが、これに限られない。例えば、重みづけ係数を量子化制御部から設定された基準量子化パラメータに加算して最終的な適用量子化パラメータを生成するようにしてもよい。または、各変換テーブルを、量子化部ではなく量子化制御部に設けてもよい。
実施形態1および実施形態2では適応量子化パラメータに制限はない場合を説明したが、これに限られない。例えば、最終的な適用量子化パラメータの算出において、下限、上限を設定して、適用量子化パラメータの範囲を制限するようにしてもよい。例えば1未満の量子化パラメータは量子化ステップが1未満となり、量子化係数のエントロピー符号化を行った際にデータ量が増加する恐れがあるため、適用量子化パラメータの下限を1に設定してもよい。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。