本発明は、画像が重複しない矩形ブロック(本明細書では、このような矩形ブロックをタイルと総称する)に分割され、タイル毎にその各コンポーネントが階層的に周波数変換される符号化方式により生成された符号化データを復号する装置に係り、特に、周波数変換時のミラリングの影響によるタイル境界境界歪みを抑制するデタイル技術に関する。
本発明を適用可能な符号化方式の例としてJPEG2000がある。JPEG2000では、画像をタイル分割し、タイル単位で処理を実行することにより、少ないメモリ環境下でも圧縮伸長処理が可能となっている。しかし、圧縮率の高い条件で圧縮伸長処理を行った場合、伸張画像においてタイル境界の不連続(タイル境界歪み)が目立つという問題がある。
このようなタイル境界歪みの抑制(デタイル)の方法として、復号画像データのタイル境界部分の画素に対しタイル境界に直交する方向のローパスフィルタを適用してタイル境界を平滑化する方法が提案されている。このような実空間でのデタイルに関する先行技術文献としては、例えば特許文献1がある。
また、符号化データの復号過程において、隣接したタイルのローパス係数とハイパス係数を利用し、ウェーブレット変換時のミラリングの影響を受けたタイル境界部のハイパス係数を補正することによりタイル境界歪みを抑制する方法も提案されている。このようなウェーブレット係数空間でのデタイルに関する先行技術文献としては、例えば特許文献2がある。
本発明は、このようなウェーブレット係数空間での(より一般的には周波数変換係数空間での)係数補正によるデタイル技術に関するものである。
特開2004−064189号公報
特開2001−257596号公報
特許文献2に記載されているような周波数変換係数空間での係数補正によるデタイル手法は、圧縮率などの符号化条件によらず優れたデタイル効果を得られる利点を有する反面、処理量が大きいことが難点である。
よって、本発明の目的は、周波数変換係数空間でのデタイル処理をより効率的に実行することができるようにし、また、色差コンポーネントのサブサンプリングフォーマットや周波数変換の適用方法の違いに柔軟に対応したデタイル処理を実行できるようにすることにある。
請求項1記載の発明は、画像をタイル分割し、タイル毎にその各コンポーネントを階層的に周波数変換する符号化方式によって生成された符号化データを復号する画像処理装置であって、前記符号化データの復号の過程において、各コンポーネントの周波数変換係数に対し、その上位の階層から下位の階層へ向かって順に、前記周波数変換の際のミラリングの影響により生じたタイル境界歪みを抑制するためにタイル境界付近の特定のハイパス係数を補正するデタイル処理を施すデタイル処理手段を有し、前記デタイル処理手段はデタイル処理を施す最も低い階層(以下、デタイル最低階層と記す)をコンポーネント別に制御するデタイル処理制御手段を含むことを特徴とする画像処理装置である。
請求項2記載の発明は、請求項1記載の発明に係る画像処理装置であって、前記デタイル処理制御手段は色差コンポーネントについてのデタイル最低階層を輝度コンポーネントについてのデタイル最低階層より上位の階層とすることを特徴とする画像処理装置である。
請求項3記載の発明は、請求項1記載の発明に係る画像処理装置であって、前記デタイル処理制御手段は、少なくとも色差コンポーネントについて、水平方向に関するデタイル最低階層と垂直方向に関するデタイル最低階層とを別々に制御することを特徴とする画像処理装置である。
請求項4記載の発明は、請求項3記載の発明に係る画像処理装置であって、前記デタイル処理制御手段は水平方向又は垂直方向に間引かれている色差コンポーネントについて、間引かれている方向に関するデタイル最低階層を間引かれていない方向に関するデタイル最低階層より上位の階層とすることを特徴とする画像処理装置である。
請求項5記載の発明は、請求項3記載の発明に係る画像処理李装置であって、前記デタイル制御手段は最下位階層の水平方向又は垂直方向の周波数変換がなされていない色差コンポーネントについて、その周波数変換がなされていない方向に関するデタイル最低階層を最下位階層より上位の階層とすることを特徴とする画像処理装置である。
請求項6記載の発明は、請求項1乃至5のいずれか1項記載の発明に係る画像処理装置であって、前記符号化方式はJPEG2000に準拠した符号化方式であり、符号化データから、符号が破棄されたビットプレーン数(以下、トランケート数と記す)を取得する手段と、該手段により取得されたトランケート数に基づいてウェーブレット係数の量子化区間を決定する量子化区間決定手段とをさらに有し、前記デタイル処理における補正後のハイパス係数に対するクリッピング処理に、該ハイパス係数に関し前記量子化区間決定手段によって決定された量子化区間が用いられることを特徴する画像処理装置である。
請求項7記載の発明は、画像をタイル分割し、タイル毎にその各コンポーネントを階層的に周波数変換することによって生成された各コンポーネントの周波数変換係数に対し、その上位の階層から下位の階層へ向かって順に、前記周波数変換の際のミラリングの影響により生じたタイル境界歪みを抑制するためにタイル境界付近の特定のハイパス係数を補正するデタイル処理を施すデタイル方法において、デタイル処理を施す最も低い階層(以下、デタイル最低階層と記す)をコンポーネント別に制御することを特徴とするデタイル処理方法である。
請求項8記載の発明は、請求項7記載の発明に係るデタイル方法であって、色差コンポーネントについてのデタイル最低階層を輝度コンポーネントについてのデタイル最低階層より上位の階層とすることを特徴とするデタイル方法である。
請求項9記載の発明は、請求項7記載の発明に係るデタイル方法であって、少なくとも色差コンポーネントについて、水平方向に関するデタイル最低階層と垂直方向に関するデタイル最低階層とを別々に制御することを特徴とするデタイル方法である。
請求項10記載の発明は、請求項9記載の発明に係るデタイル方法であって、水平方向又は垂直方向に間引かれている色差コンポーネントについて、間引かれている方向に関するデタイル最低階層を間引かれていない方向に関するデタイル最低階層より上位の階層とすることを特徴とするデタイル方法である。
請求項11記載の発明は、請求項9記載の発明に係るデタイル方法であって、最下位階層の水平方向又は垂直方向の周波数変換がなされていない色差コンポーネントについて、その周波数変換がなされていない方向に関するデタイル最低階層を最下位階層より上位の階層とすることを特徴とするデタイル方法である。
請求項12記載の発明は、画像をタイル分割し、タイル毎にその各コンポーネントを階層的に周波数変換する符号化方式によって生成された符号化データを復号する画像処理装置としてコンピュータを動作させるためのプログラムであって、前記符号化データの復号の過程において、各コンポーネントの周波数変換係数に対し、その上位の階層から下位の階層へ向かって順に、前記周波数変換の際のミラリングの影響により生じたタイル境界歪みを抑制するためにタイル境界付近の特定のハイパス係数を補正するデタイル処理を施すデタイル処理手段、及び、前記デタイル処理手段によりデタイル処理を施す最も低い階層(以下、デタイル最低階層と記す)をコンポーネント別に制御する、前記デタイル処理手段に含まれるデタイル処理制御手段としてコンピュータを機能させることを特徴とするプログラムである。
請求項13記載の発明は、請求項12記載の発明に係るプログラムであって、前記デタイル処理制御手段は色差コンポーネントについてのデタイル最低階層を輝度コンポーネントについてのデタイル最低階層より上位の階層とすることを特徴とするプログラムである。
請求項14記載の発明は、請求項12記載の発明に係るプログラムであって、前記デタイル処理制御手段は、少なくとも色差コンポーネントについて、水平方向に関するデタイル最低階層と垂直方向に関するデタイル最低階層とを別々に制御することを特徴とするプログラムである。
請求項15記載の発明は、請求項14記載の発明に係るプログラムであって、前記デタイル制御手段は、水平方向又は垂直方向に間引かれている色差コンポーネントについて、間引かれている方向に関するデタイル最低階層を間引かれていない方向に関するデタイル最低階層より上位の階層とすることを特徴とするプログラムである。
請求項16記載の発明は、請求項14記載の発明に係るプログラムであって、前記デタイル制御手段は最下位階層の水平方向又は垂直方向の周波数変換がなされていない色差コンポーネントについて、その周波数変換がなされていない方向に関するデタイル最低階層を最下位階層より上位の階層とすることを特徴とするプログラムである。
請求項17記載の発明は、請求項12乃至16のいずれか1項記載の発明に係るプログラムが記録されたコンピュータが読み取り可能な情報記録媒体である。
本発明によれば次のような効果を得られる。まず、コンポーネント毎にデタイル最低階層を適切に制御することができ(請求項1,7)、したがって、例えば、輝度コンポーネントに比べデタイル処理による画質改善効果が小さい色差コンポーネントに対するデタイル処理を、輝度コンポーネントに対するデタイル処理より上位の階層で打ち切ることにより(請求項3,9)、デタイル効果を殆ど損なうことなく、デタイルのための処理量を削減することができる。また、少なくとも色差コンポーネントについて、水平方向に関するデタイル最低階層と垂直方向に関するデタイル最低階層とを別々に適切に制御することができ(請求項3,9)、したがって、色差コンポーネントのサブサンプリングフォーマットの違いや周波数変換の適用方法の違いに柔軟に対応し効率的にデタイル処理を行うことができる。例えば、タイル境界歪みがもともと発生しにくい間引かれた方向に関するデタイル処理を、間引かれなかった方向のデタイル処理より上位の階層で打ち切ることにより、デタイル効果を殆ど損なうことなく、デタイルのための処理量を削減することができ(請求項4,10)、また、後述するような色差コンポーネントに簡易ウェーブレット変換が適用された符号化データなどに対しても適切にデタイル処理を実行することができる(請求項5,11)。
後述の本発明の実施形態では、JPEG2000の符号化データの復号過程においてウェーブレット係数空間でのデタイル処理が実行される。このような実施形態の理解を容易にするため、JPEG2000の概要と、ウェーブレット係数空間でのデタイル方法の原理について説明する。
<JPEG2000の概要>
図21はJPEG2000の圧縮・伸長アルゴリズムを説明するためのブロック図である。
まず圧縮(符号化)処理について説明する。画像は重複しないタイルに分割され、タイル毎に処理される。各タイルの画像はDCレベルシフト・逆シフト部1によりDCレベルシフトを施され、次に色空間変換・逆変換部2により例えばRGB色空間からYCrCb(もしくはYUV)色空間へ変換される。この色空間変換後のタイルの各コンポーネント画像に対し、2次元ウェーブレット変換・逆変換部3により2次元ウェーブレット変換(順変換)処理が行われる。JPEG2000では、ウェーブレット変換として可逆の5×3変換又は非可逆の9×7変換が用いられる。9×7変換が用いられる場合には、ウェーブレット係数は量子化・逆量子化部4でサブバンド毎に線形量子化を施される。次に、エントロピー符号化・復号化部5で、ウェーブレット係数はサブバンド毎にビットプレーン単位でのエントロピー符号化が行われる(より正確には各ビットプレーンは3つのサブビットプレーンに分割されて符号化される)。この際、量子化・逆量子化部4で、符号化対象ビットの周辺ビットの並びからコンテキストが生成され、これがエントロピー符号化・復号化部5に与えられる。そして、符号形成・タグ処理部6において、必要なエントロピー符号をまとめてパケットが生成され、パケットが所要の順序に従って並べられとともに必要なタグ及びタグ情報が付加されることにより、1本のコードストリーム(JPEG2000の符号化データ)が形成される。
エントロピー符号化及び符号形成についてさらに説明する。サブバンドはプリシンクトと呼ばれる矩形領域に分割され、プリシンクトはさらにコードブロックと呼ばれる矩形領域に分割される。プリシンクトは、大まかには画像中の位置(Position)を表すものであり、インプリメンテーションでメモリを効率的に使うために導入されたものである。プリシンクトは、HL,LH,HHの3つのサブバンドにおいて空間的に一致している。つまり、プリシンクトは3つで1つのまとまりを成すものである。ただし、LLサブバンドを分割したプリシンクトは1つで1つのまとまりを成す。このようなプリシンクトは、サブバンドと同じサイズにすることも可能である。コードブロックはエントロピー符号化の基本単位となる。
プリシンクトに含まれる全てのコードブロックから、符号の一部を取り出して集めたもの(例えば、全てのコードブロックの最上位ビットから3枚目までのビットプレーンの符号を集めたもの)がパケットである。パケットは符号とヘッダ(パケットヘッダ)からなる。全てのプリシンクト(すなわち、全てのコードブロック、全てのサブバンド)のパケットを集めると、タイル画像全域の符号の一部(例えば、タイル画像全域のウェーブレット係数の最上位ビットから3枚目までのビットプレーンの符号)ができるが、これをレイヤとよぶ。レイヤは、大まかにはタイル画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がる。レイヤはいわば画質の単位である。
なお、JPEG2000には符号の破棄(トランケーション)を行うポスト量子化の機能がある。可逆の5×3ウェーブレット変換が用いられる場合には、ウェーブレット係数に対する線形量子化は行わないため、ポスト量子化のみが用いられる。ポスト量子化による符号破棄については後述する。
JPEG2000のコードストリームの伸長(復号)処理は圧縮処理と丁度逆の処理となる。すなわち、符号形成・タグ処理部6において、コードストリーム中のタグ情報を解釈することにより、コードストリームは各コンポーネントの各タイルのコードストリームに分解され、また、各コンポーネント内のタグ情報に基づいた順番で復号対象ビットの位置が定められる。量子化・逆量子化部4で、その対象ビット位置の周辺ビット(復号済み)の並びからコンテキストが生成される。このコンテキストとコードストリームからエントロピー符号化・復号化部5で確率推定によってエントロピー復号が行われて対象ビットが生成され、これが対象ビットの位置に書き込まれる。このようにして復号されたウェーブレット係数に対し(9×7ウェーブレット変換が用いられる場合には量子化・逆量子化部5で逆量子化を施された後)、2次元ウェーブレット変換・逆変換部3で2次元逆ウェーブレット変換処理が行われることにより、各タイルの各コンポーネントの画像データが生成され、これは色空間逆変換・逆変換部2で元の色空間へ戻され、さらにDCレベルシフト・逆シフト部1でDCレベル逆シフトを施される。
次に、JPEG2000における2次元ウェーブレット変換(順変換)について説明する。図22〜図26は、16×16画素のモノクロ画像に対して、5x3変換と呼ばれるウェーブレット変換を2次元に(垂直方向および水平方向の順)施す過程の説明図である。
まず垂直方向にウェーブレット変換を施す。図22の様にXY座標をとり、あるxについて、Y座標がyである画素の画素値をP(y)(0≦y≦15)と表す。JPEG2000では、まず垂直方向(Y座標方向)に、Y座標が奇数(y=2i+1)の画素を中心にハイパスフィルタを施して係数C(2i+1)を得た後、Y座標が偶数(y=2i)の画素を中心にローパスフィルタを施して係数C(2i)を得る(これを全てのxについて行う)。ここで、ハイパスフィルタは式(1)、ローパスフィルタは式(2)で表される。式中の記号|_x_|は、xのフロア関数(実数xを、xを越えず、かつ、xに最も近い整数に置換する関数)を示している。
式(1) C(2i+1)=P(2i+1)−|_(P(2i)+P(2i+2))/2_|
式(2) C(2i)=P(2i)+|_(C(2i-1)+C(2i+1)+2)/4_|
画像の端部又はタイルの境界部においては、中心となる画素に対して隣接画素群又は隣接係数群が存在しないことがある。この場合、図27に示した「ミラリング」と呼ばれる手法によって画素値又は係数値を補うことになる。ミラリングは、文字通り、画像の端又はタイル境界を中心として画素値又は係数値を線対称に折り返し、折り返した値を隣接画素群又は係数群の値とみなす処理である。
ここで、簡単のため、ハイパスフィルタで得られる係数をH、ローパスフィルタで得られる係数をLと表記すれば、前記垂直方向の変換によって図22の画像は図23のようなL係数とH係数の配列へと変換される。
続いて、図23の係数配列に対して、水平方向にウェーブレット変換を施す。すなわち、水平方向に、X座標が奇数(x=2i+1)の係数を中心にハイパスフィルタを施し、次にX座標が偶数(x=2i)の係数を中心にローパスフィルタを施す(これを全てのyについて行う。この場合、式(1),式(2)のP(2i)等は係数値を表すものと読み替える)。
簡単のため、
前記L係数を中心にローパスフィルタを施して得られる係数をLL、
前記L係数を中心にハイパスフィルタを施して得られる係数をHL、
前記H係数を中心にローパスフィルタを施して得られる係数をLH、
前記H係数を中心にハイパスフィルタを施して得られる係数をHH、
と表記すれば、図23の係数配列は図24の様な係数配列へと変換される。ここで、同一の記号を付した係数群はサブバンドと呼ばれる。図24の係数配列は4つのサブバンドの係数からなる。
以上で、1回の2次元ウェーブレット変換(1回のデコンポジション(分解))が終了し、LL係数だけを集めると(図8の様に係数をサブバンド毎に集め、LLサブバンドだけ取り出すと)、ちょうど原画像の1/2の解像度の“画像”が得られる(このように、サブバンド毎に係数を分類することをデインターリーブと呼び、これに対し図7のような状態に係数を配置することをインターリーブと呼ぶ)。
2回目のウェーブレット変換は、LLサブバンドを原画像と見なして、上に述べたと同様に行われる。そして得られたサブバンド係数をデインターリーブすると、図26に示す様な係数配列となる。これで2階層の2次元ウェーブレット変換が行われたことになる。
なお、図25、図26中の係数の接頭の1や2は、その係数が何回のウェーブレット変換で得られたかを示し、デコンポジションレベルと呼ばれる。図26の例では、デコンポジションレベル2の各サブバンド係数が最上位階層のウェーブレット係数である。
以上は順変換であるが、2次元逆ウェーブレット変換処理は順変換と丁度逆の処理となる。図24の様なインターリーブされた係数の配列に対して、まず順変換時とは逆に水平方向に逆ウェーブレット変換が施される。すなわち、水平方向に、X座標が偶数(x=2i)の係数を中心に逆ローパスフィルタを施し、次にX座標が奇数(x=2i+1)の係数を中心に逆ハイパスフィルタを施す(これを全てのyについて行う)。ここで、逆ローパスフィルタは式(3)で、逆ハイパスフィルタは式(4)で表される。この際も、画像の端部又はタイル境界部においては中心となる係数に対して隣接係数群が存在しないことがあり、この場合も図27のミラリングによって適宜係数値を補うことになる。
式(3) P(2i)=C(2i)−|_(C(2i-1)+C(2i+1)+2)/4_|
式(4) P(2i+1)=C(2i+1)+|_(P(2i)+P(2i+2))/2_|
このようにして図24の係数配列は図23のような係数配列に変換(逆変換)される。続いて、垂直方向に逆ウェーブレット変換が施される。すなわち、垂直方向に、Y座標が偶数(y=2i)の係数を中心に逆ローパスフィルタを施し、次にY座標が奇数(y=2i+1)の係数を中心に逆ハイパスフィルタを施せば(これを全てのxについて行う)、1回の2次元ウェーブレット逆変換が終了し、図22の画像に戻る(再構成される)ことになる。複数階層の2次元ウェーブレット変換が施されている場合は、図22をLLサブバンドとみなし、HL等の他のサブバンド係数を利用して同様の逆変換を繰り返すことになる。
<ウェーブレット係数空間でのデタイル処理の原理>
ウェーブレット係数空間でのデタイル処理では、水平方向及び垂直方向に隣接したタイルの境界部のハイパス係数に対しデタイルのための補正が施されることにより、図28に模式的に示すように隣接したタイルの境界部分の画素値が補正される。
前記特許文献2に記載の発明では、
(1)タイル境界歪みが生じるのは圧縮率が高い場合であり、タイリングの有無に関わらず、全てのハイパス係数は0に量子化される。
(2)タイリングした場合のローパス係数はタイリングしない場合のローパス係数に等しい。
という2つの近似を採用し、
「(0に量子化されたが)補正されたハイパス係数を用いて逆ウェーブレット変換をした場合の、タイル境界の画素値=ハイパス係数が0の場合の、タイリングをせずに逆ウェーブレット変換をした場合の同じ位置の画素値」
という式から、ハイパス係数の補正値を算出している(0に量子化されたハイパス係数に対し、0でない補正値を算出する過程は画像復元である)。
このような係数補正のための補正式を、5×3変換を例に説明する。前述のように、5x3変換と呼ばれるウェーブレット変換の逆変換の場合、L,H,L,Hの順にインターリーブした係数列に対し、
偶数位置中心に逆ローパスフィルタを、
奇数位置中心に逆ハイパスフィルタを、
をかける。
前記式(1)〜(4)のフロア関数を省略して展開すれば明らかなように、順変換と逆変換とではフィルタのタップ数は逆転し、またフィルタ係数もインターリーブされる。このため、順変換のフィルタ係数が
HIGH
-0.5,1,-0.5
LOW -0.125,0.25,0.75,0.25,-0.125
の場合、逆変換のフィルタ係数は
LOW -0.25,1,-0.25
HIGH -0.125,0.5,0.75,0.5,-0.125
となる(ここでは、フロア関数部分を考慮せずにフィルタ係数を表現している)。
「タイリングしない場合で、かつ、ハイパス係数が全て0のとき(近似1)」、インターリーブされた係数列
L1 H1 L2 H2 L3 H3
において、H2位置中心に逆ハイパスフィルタをかけた値は以下の通りである。
式(i) -0.125H1+0.5L2+0.75H2+0.5L3-0.125H3=0.5L2+0.5L3
一方、上記係数が、2つのタイルに分割されてから算出されたものであり、タイル境界はH2とL3の間にあるとする。この場合、L1,H1,L2,H2は左側(又は上側)のタイルの係数、L3,H3は右側(又は下側)のタイルの係数になる。ここで、H2は順変換(3タップのハイパスフィルタ)時にミラリングの影響を受けており、補正の対象となる係数である。タイリングは、各タイル内の画素だけを用いてウェーブレット変換を行う処理、あるいは各タイル内の係数だけを用いて逆ウェーブレット変換を行う処理であるため、上記ミラリングによって左タイル(又は上タイル)の係数
L1 H1 L2 H2
を右タイル(又は下タイル)に補った場合
L1 H1 L2 H2 L2 H1
となる。
よって、H2位置中心に逆ハイパスフィルタをかけた値は、
式(ii) -0.125H1+0.5L2+0.75H2+0.5L2-0.125H1=-0.25H1+L2+0.75H2
となる。
式(i)=式(ii)を狙うため、次式
式(iii) H2=1/3H1-2/3L2+2/3L3
を得る。これがタイル境界に隣接し、順変換時にミラリングの影響を受けたハイパス係数の補正式である。ただし、補正値の算出時にはタイリングした係数しか存在しないため、L2は左(上)タイルの係数、L3は右(下)タイルの係数を使用する(近似2)。
タイル境界に隣接するローパス係数(L3)に関しても同様な立式が可能であり、その結果、左側又は上側のタイル境界近傍のハイパス係数H3の補正式として
式(iv) H3=0
を得ることができる。ただし、デコンポジションレベル1の場合、H3はミラリングの誤差を含まないため補正不要である(デコンポジションレベル2以上の場合は、H3に隣接するL3自体がデコンポジションレベル1でミラリングの影響を受けているため補正が必要である)。
9×7ウェーブレット変換の場合も同様な考え方で補正式を算出できる。すなわち、インターリーブされた係数列
H0 L1 H1 L2 H2 L3 H3 L4 H4
において、H2とL3の間がタイル境界である場合、
式(v) H2=
(-0.0535H0+0.15644H1+0.09127L1-0.59127L2+0.59127L3-0.09127L4)/0.60295
式(vi) H3=(0.05754L2-0.05754L4+0.03372H4)/0.53372
が得られる。ただし、9×7変換の場合には、デコンポジションレベル1でもH3係数を補正してよい。
次に、2階層(デコンポジションレベル数=2)の2次元ウェーブレット変換が行われたウェーブレット係数の場合を例に、前記特許文献2の教えるウェーブレット係数空間でのデタイル処理をウェーブレット変換の手順を逆に辿りながら忠実に行うデタイル処理の手順について説明する。図29〜図36は処理説明のための係数配列図である(便宜、4タイルとしている)。
図29は最上位階層であるデコンポジションレベル2のインターリーブされた係数を示している。まず、水平方向のデタイルのための係数補正が行われる。補正の対象となる係数は、図30に示す列Aの係数(2HL,2HH)と列Bの係数(2HL,2HH)である。列Aの係数は上に論じたH2係数に対応し、列Bの係数は上に論じたH3係数に対応する。5×3変換の場合、列Aの係数に対する補正式として前記式(iii)が、列Bの係数に対する補正式として前記式(iv)が用いられる。9x7変換の場合には、列Aの係数は前記式(v)により補正され、列Bの係数は前記式(vi)により補正される。そして、係数の補正値に対するクリッピング処理が行われる。
図17はクリッピング処理の説明図である。図17に示すように、補正前の係数値が量子化区間(Q〜2Q)にあるときにデタイルのための係数補正により-1/2Qに補正されたとする。この場合、係数値は、その量子化区間の端Qに戻される。つまり、クリッピング処理は、係数の補正値が、補正前の係数値が属していた量子化区間をはみ出したきときに、元の量子化区間の端(補正値に近い側)の値(クリップ値)に修正する処理である。
係数の補正値が量子化区間からはみ出た場合、そのままにしておくと、タイル境界をまたぐエッジがタイル境界付近でなまるという副作用が生じる恐れがある。クリッピング処理を行う目的は、このような副作用を回避するためである。
次に、デコンポジションレベル2のウェーブレット係数に対し水平方向の逆ウェーブレット変換が行われ、図31に示すような係数配列となる。この係数配列に対し、垂直方向のデタイルのための係数補正が行われる。すなわち、図32に示す行Cの係数(2H)と行Dの係数(2H)を対象としての係数補正が行われる。行Cの係数は上に論じたH2係数に対応し、行Dの係数は上に論じたH3係数に対応する。5x3変換の場合、行Cの係数は前記式(iii)で補正され、行Dの係数は前記式(iv)で補正される。9x7変換の場合、行Cの係数は前記式(v)で補正され、行Dの係数は前記式(vi)で補正される。このように水平方向に逆ウェーブレット変換した後のハイパス係数とローパス係数を垂直方向のデタイルに用いる理由は、それら係数が符号化時の順ウェーブレット変換でミラーリングの影響を直接受けた係数だからである。
このような補正後に、水平方向のウェーブレット変換(順変換)が行われ、図29に示すような係数の状態に戻される。この順変換を行うのは、符号破棄は図29のような状態の係数の符号について行われたものであり、本来は、図32に示すような中間状態の係数に対しては量子化区間が定まらないからである。そして、行C(図32参照)に対応した係数(2LH,2HH)及び行D(図32参照)に対応した係数(2LH,2HH)の補正値に対するクリッピング処理が行われる。
次に、デコンポジションレベル2の係数に対し、水平方向の逆ウェーブレット変換と垂直方向の逆ウェーブレット変換が順に行われる。この逆変換により、図33に示すデコンポジションレベル1の係数が得られる。
次に、図34のようにインターリーブしたデコンポジションレベル1の係数に対し水平方向のデタイルのための係数補正が行われる。5×3変換の場合には、図35に示す列Eの係数(HL,HH)を前記式(iii)で補正する(デコンポジションレベル1では、列Fの係数はミラリングの誤差を含まないため補正は不要である)。9x7変換の場合には、列Eの係数を前記式(v)で補正し、また、列Fの係数(HL,HH)を前記式(vi)で補正する。そして、補正された係数値のクリッピング処理が行われる。
次に、水平方向の逆ウェーブレット変換が行われる。この逆ウェーブレット変換後の係数に対し、垂直方向のデタイルのための係数補正が行われる。すなわち、5x3変換の場合は図36に示す行Gの係数を前記式(iii)で補正する。9x7変換の場合、図36に示す行Gの係数を前記式(v)で補正し、行Hの係数を前記式(vi)で補正する。
この補正後の係数に対し、水平方向のウェーブレット変換(順変換)が行われ、図34に示す係数の状態に戻す。そして、行G,Hの係数(5×3変換の場合は行Gの係数のみ)に関しクリッピング処理が行われる。
最後に、水平方向の逆ウェーブレット変換、垂直方向の逆ウェーブレット変換が順に行われ、タイル境界歪みの除去された画像データが生成される。
<本発明の実施形態の説明>
図1は本発明の実施形態を説明するためのブロック図である。本実施形態に係る画像処理装置は、JPEG2000の符号化データを処理するもので、タグ処理部101、エントロピー復号部102、逆量子化部103、ウェーブレット逆変換部104、色空間逆変換部105及びDCレベル逆シフト部106を備える。これら各部はJPEG2000のデコーダが一般的に備える手段であり、その基本的な作用は図21に関連して説明した通りである。
この画像処理装置は、ウェーブレット係数空間でのデタイル処理を行うための手段としてのデタイル処理部111を備える。ウェーブレット係数空間でのデタイル処理は逆ウェーブレット変換と密接に関連するため、デタイル処理部111はウェーブレット逆変換部104に含まれる形で示されている。
デタイル処理部111は、タイル境界付近に位置する特定のハイパス係数を補正するための係数補正手段112と、この係数補正手段112による係数の補正値に対するクリッピング処理のためのクリッピング手段113と、デタイル処理の流れの制御のためのデタイル処理制御手段114とからなる。
この画像処理装置は、JPEG2000の符号化データがポスト量子化により符号の破棄が行われている場合にも適切なクリッピング処理を可能にするため、符号が破棄されたビットプレーン数(トランケート数)を取得するトランケート数取得手段116と、このトランケート数に基づいて量子化区間を決定する手段である量子化区間決定部115を備える。なお、トランケート数取得手段116に相当する手段は、JPEG2000のデコーダのエントロピー復号化部にもともと備わっているものであるので、本実施形態においてはトランケート数取得手段116はエントロピー復号部102の一部として表されている。
また、符号化の際に、色差コンポーネントが水平方向及び/又は垂直方向に予め間引かれることがある。また、色差コンポーネントが間引かれた場合に、全てのデコンポジションレベル(階層)で垂直・水平両方向のウェーブレット変換が行われる場合(これを通常ウェーブレット変換と呼ぶ)と、特定のデコンポジションレベルでの水平方向及び/又は垂直方向のウェーブレット変換が省かれる場合(これを簡易ウェーブレット変換と呼ぶ)とがある。本実施形態に係る画像処理装置は、入力される符号化データについて、色差コンポーネントの間引きの有無や通常/簡易ウェーブレット変換の別に関する情報を取得するための手段117を備える。ここでは、このような情報は符号化データ中のメインヘッダ(又はタイルパートヘッダ)に含めることが可能なCOM(コメント)マーカセグメントに記述されているものとして説明する。タグ処理部117にはもともとCOMマーカセグメントを解釈する機能が備わっているため、情報取得のための手段117はタグ処理部101の一部として表されている。ただし、色差コンポーネントの間引きの有無や通常/簡易ウェーブレットの別が予め分かっている場合には、それに関する情報を取得する手段117を省くことも可能であり、また、そのような情報をユーザが直接的に入力するような構成とすることも可能である。
この画像処理装置の処理の流れは次の通りである。入力されたJPEG2000の符号化データをタグ処理部101、エントロピー復号部102及び逆量子化部103により処理することにより、ウェーブレット係数が復号される。つまり、タグ処理部101から逆量子化部103までは全体として、符号化データからウェーブレット係数を復号する手段を構成していると言うことができる。タグ処理部101、エントロピー復号部102及び逆量子化部103の処理内容については図21に関連して説明した通りであるので、これ以上の説明は省略するが、エントロピー復号部102におけるエントロピー復号の際に、トランケート数取得手段116によりサブバンド毎のトランケート数が算出される。その詳細については後述する。また、情報取得手段117によりCOMマーカセグメントに記述されている色差コンポーネントの間引きの有無や通常/簡易ウェーブレット変換の別が解釈され、その情報がデタイル処理部111へ通知される。この情報は後述のようにデタイル処理制御手段114の制御に利用される。
ウェーブレット逆変換部104において、復号された各コンポーネントのウェーブレット係数に対し最上位階層(最高のデコンポジションレベル)から逆ウェーブレット変換処理が行われるが、この過程でデタイル処理111によるデタイル処理が実行される。このデタイル処理中の係数補正値に対するクリッピング処理に必要な量子化区間は、量子化区間決定部115より与えられる。なお、符号化時に線形量子化が適用された符号化データの場合でも、ウェーブレット逆変換部104に入力されるウェーブレット係数は逆量子化部103で逆線形量子化が施されたものであるので、クリッピング処理ではポスト量子化(符号破棄)についての量子化区間のみを考慮すればよい。
ウェーブレット逆変換部104からタイル境界歪みが抑制されたタイル画像の各コンポーネントデータが出力され、これは色空間逆変換部105により符号化時の色空間変換と逆の変換が施され、さらにDCレベル逆シフト部106でDCレベル逆シフトを施されることにより、元の表色系(例えばRGB表色系)のタイル画像データに戻される。
ここで、符号の破棄(トランケーション)とトランケート数の算出、及び、トランケート数と量子化区間の関係について説明する。
JPEG2000には符号の破棄(トランケーション)を行うポスト量子化の機能がある。ポスト量子化は量子化テーブルを用いて実行される。これについて図18により説明する。
図18において、(a)はポスト量子化前の符号を模式的に示している。本例では3つのコンポーネントC0,C1,C2があり、ここでは、その1つのコンポーネントC0を示している。また、階層数(デコンポジションレベル数)は3であり、3LL,3HL,3LH,3HH,2HL,2LH,2HH,1HL,1LH,1HHのサブバンドからなり、深さ方向に8つのビットプレーンで構成された符号の例である。
(b)はポスト量子化のための量子化テーブルの一例である。各コンポーネント、各サブバンド毎に符号が破棄されるビットプレーンの枚数(トランケート数)が記述されている。
(c)はコンポーネントC0のトランケーション例である。コンポーネントC0に関しては、3LLサブバンドはトランケート数は1であるので、8枚のビットプレーン中、最下位の1枚が破棄される。1HHサブバンドについては、トランケート数は7であるので、8枚のビットプレーンのうち下位の7枚が破棄される。このようにして、すべてのサブバンドについて、量子化テーブルの値に従って符号を破棄した後の符号が(d)に模式的に示されている。
図19は、このようなポスト量子化のトランケート数(符号が破棄されたビットプレーン数)と量子化区間の関係を示している。1枚のビットプレーンの破棄は、係数を2で除した(1ビット分シフトした)ことに相当する。図示のように、トランケート数mの場合のポスト量子化の量子化区間の大きさは2^m(2のm乗)、トランケート数nの場合の量子化区間の大きさは2^nであり、トランケート数が大きいほど量子化区間が広くなる。このように、トランケート数が分かれば量子化区間の大きさが分かる。このようなポスト量子化によるトランケート数から各サブバンド係数の量子化区間(の大きさ)を決定する手段が前記量子化区間決定部115である。
次に、トランケート数の算出方法について説明する。図20はその説明図である。図20の上段の図に示すように、トランケーションを行う前の総ビットプレーン数は、元データ(色空間変換前画像)のビットプレーン数(桁数)と、色変換で増えるビットプレーン数(桁数)と、ウェーブレット変換で増えるビットプレーン数(桁数)との和である。一方、下段の図に示すように、ゼロビットプレーン数(コーディングされなかったビットプレーン数)と、コーディングされたビットプレーン数と、トランケート(符号破棄)されたビットプレーン数の和が総ビットプレーン数である。
このことから、トランケート数は、総ビットプレーン数からゼロビットプレーン数とコーディングされたビットプレーン数を差し引くことにより求まることが分かる。そして、ゼロビットプレーン数は、JPEG2000の符号化データを構成するパケットのヘッダ(パケットヘッダ)に記述されている。また、パケットヘッダに記述されているコーディングパス数から、コーディングされたビットプレーン数を計算することができる。
次に、デタイル処理に関し、いくつかの実施例を挙げて詳細に説明する。
図2は、本実施例におけるデタイル処理の流れを説明するためのフローチャートである。ここでは輝度コンポーネント(コンポーネント番号0)と色差Cb,Crコンポーネント(コンポーネント番号1,2)の3コンポーネントからなる符号化データを想定している。符号化データのメインヘッダ(又はタイルパートヘッダ)にコンポーネント数が記述されており、タグ処理部101によってコンポーネント数がウェーブレット逆変換部104に通知される。ウェーブレット変換のデコンポジションレベル数(階層数)も同様である。これらは一般的なJPEG2000デコーダと同様である。
デタイル処理制御手段114は、輝度コンポーネントと色差コンポーネントのそれぞれについてデタイル処理を施す最低のデコンポジションレベル(デタイル最低階層)KY,KCを設定する(step200)。後述のように、処理は最上位デコンポジションレベルから下位のデコンポジションレベルへ向かって進行するが、輝度コンポーネントについてはデコンポジションレベルKYまでがデタイル処理の対象となり、それより下のデコンポジションレベルはデタイル処理の対象とならない。同様に、色差コンポーネントについては、デコンポジションレベルKCまでがデタイル処理の対象となり、それより下のデコンポジションレベルはデタイル処理の対象とならない。
この最低デコンポジションレベル(デタイル最低階層)KY,KCは、KY<KCの関係に選ばれる(例えば、KY=1、KC=2)。このように色差コンポーネントに対するデタイル処理を輝度コンポーネントより上のデコンポジションレベルで打ち切るように設定することにより、デタイル処理全体の処理量・処理時間を効果的に削減することができる。しかも、デタイル処理の効果は色差コンポーネントに比べ輝度コンポーネントの方が顕著であるため、色差コンポーネントのデタイル処理を輝度コンポーネントより上のデコンポジションレベルで打ち切っても画質に及ぼす影響はわずかである。
デタイル処理制御手段114は、コンポーネント番号を0(輝度分)に設定し(step201)、処理デコンポジションレベルを最高レベルに設定する(step202)。最初の処理コンポーネントは輝度コンポーネントで、デコンポジションレベルは最高レベル(≧KY)であるため(step203,No)、デタイル制御手段114は、輝度コンポーネントの最高デコンポジションレベルのウェーブレット係数に対する水平方向デタイル処理と垂直方向デタイル処理を係数補正手段112及びクリッピング手段113で実行させる(step204,205)。デタイル処理制御手段114は、水平・垂直デタイル処理後のウェーブレット係数に対する2次元逆ウェーブレット変換をウェーブレット逆変換部104で実行させ(step207)、処理デコンポジションレベルを1レベル下げる(step208)。このデコンポジションレベルがKY以上ならば(step207,No)、当該デコンポジションレベルのウェーブレット係数に対する水平方向デタイル処理及び垂直方向デタイル処理を実行させる(step204,205)。
デコンポジションレベルKYまで同様の処理を繰り返し、処理デコンポジションレベルがKYより低いレベルとなると(step203,Yes)、step204,205をスキップさせ、当該デコンポジションレベルについての2次元逆ウェーブレット変換を実行させ(step207)、処理デコンポジションレベルを1レベル下げる(step208)。デコンポジションレベル1のウェーブレット係数に対する2次元逆ウェーブレット変換が実行され、デコンポジションレベルが0となると(step209,Yes)、輝度コンポーネントに対する処理を終わる。
デタイル処理制御手段114は、コンポーネント番号を1にインクリメントする(step210)。コンポーネント番号が1のコンポーネントは色差(Cb)コンポーネントである。デタイル処理制御手段114は、処理デコンポジションレベルを最高レベルに設定し(step202)、当該色差コンポーネントのウェーブレット係数に対する水平方向及び垂直方向のデタイル処理を実行させ(step204,205)、次に2次元逆ウェーブレット変換を実行させ(step207)、処理デコンポジションレベルを1レベル下げる(step208)。デコンポジションレベルKCまで同様の処理が繰り返される。処理デコンポジションレベルがKCより低いレベルでは(step203,Yes)、step204,205をスキップし、step207,208を繰り返す。
デコンポジションレベル1に対する処理を終わり、デコンポジションレベルが0となると(step206,Yes)、色差(Cb)コンポーネントに対する処理を終わり、コンポーネント番号が2にインクリメントされ(step210)、色差(Cr)コンポーネントに対する同様の処理が実行される。その処理が終了すると(step206,Yes、step209,Yes)、デタイル処理及び逆ウェーブレット変換処理を処理を完了する。
図3は、水平方向デタイル処理(step203)及び垂直方向デタイル処理(step205)のフローチャートである。
水平方向デタイル処理の場合、step220で図14に示すタイル境界に隣接したハイパス係数に対するデタイルのための補正が係数補正手段112で実行され、step223で図14に示すタイル境界に隣接しない境界近傍のハイパス係数に対するデタイルのための補正が係数補正手段112で実行される。ただし、図14中のLはLL係数又はLH係数を意味し、HはHL係数又はHH係数を意味する。
垂直方向デタイル処理の場合、step220で図15に示すタイル境界に隣接したハイパス係数に対するデタイル処理のための補正が係数補正手段112で実行され、step223で図15に示すタイル境界に隣接しない境界近傍のハイパス係数に対するデタイル処理のための補正が係数補正手段112で実行される。ただし、図15中のLはLL係数又はHL係数を意味し、HはHH係数又はLH係数を意味する。
クリッピング手段113において、step220,225で、補正後の係数値が当該係数に関し量子化区間決定部115より与えられた量子化区間からはみ出たか否かをチェックし、量子化区間からはみ出た係数値を該量子化区間の近い側の端の値に補正するクリッピング処理を実行する。
5×3ウェーブレット変換が用いられている場合、step220での係数補正式として前記式(iii)が用いられ、step223での係数補正式として前記式(iv)が用いられる。9×7ウェーブレット変換が用いられている場合、step220での係数補正式として前記式(v)が用いられ、step223での係数補正式として前記式(vi)が用いられる。また、5×3ウェーブレット変換が用いられている場合、デコンポジションレベル1ではstep223〜225はスキップされる。
なお、垂直方向デタイル処理は、図29〜図34に関連して説明したウェーブレット変換手順に忠実に沿った手順で実行することも可能である。すなわち、垂直方向デタイル処理を図4に示すような手順で実行することも可能である。図4に示す手順では、水平方向の逆ウェーブレット変換処理(step230)、ハイパス係数補正処理(step231,232)、水平方向の順ウェーブレット変換処理(step223)、クリッピング処理(step235)が順に実行される。したがって、ウェーブレット逆変換部104は水平方向の順ウェーブレット変換の機能を備える必要がある。
図3と図4を比較すれば明らかなように、図3に示した垂直方向デタイル処理の手順は、図4に示した手順における水平方向の逆ウェーブレット変換と順逆ウェーブレット変換のステップが省かれているため、より高速な処理が可能である。
しかも、図3の手順によっても、図4に示した手順と同等のデタイル効果を達成できる。違いがあるとすれば、水平方向の逆ウェーブレット変換時又は順ウェーブレット変換時のフローティング誤差であり、問題となるような誤差を生じない。これについて図16により説明する。
図4に示す手順による垂直方向デタイル処理では、図16の上段に示すように、水平方向の逆ウェーブレット変換でLH係数はH係数に変換され、LL係数はL係数に変換される。垂直方向のタイル境界に隣接するH係数を近傍のH係数とL係数で補正してから水平方向の順ウェーブレット変換を行った後の、タイル境界に隣接する係数の補正値LH2は、5×3変換の場合、
LH2'=(2/3)*(LL3-LL2)+(1/3)LH1
となる。
一方、図3の手順では垂直方向のタイル境界に隣接するLH係数をそのまま補正するので、その補正値LH2"は、
LH2"=(2/3)*(LL3-LL2)+(1/3)LH1
となる。
このようにLH2'=LH2"となる。誤差が生じるとしても、水平方向の逆ウェーブレット変換時と水平方向の順ウェーブレット変換時のフロア−関数の中であるため、その誤差は概算でせいぜい1程度であるため実用上問題にならない。
図5及び図6は、本実施例におけるデタイル処理の流れを説明するためのフローチャートである。ここでは輝度コンポーネント(コンポーネント番号0)と色差Cb,Crコンポーネント(コンポーネント番号1,2)の3コンポーネントからなる符号化データを想定している。
本実施例では、色差コンポーネントが水平方向及び/又は垂直方向に間引かれた符号化データが入力される場合を考慮している。例えば、4:2:2と呼ばれる色差コンポーネントのサブサンプリングフォーマットでは、色差コンポーネントが水平方向に1/2サブサンプリングされる。4:1:1と呼ばれる色差コンポーネントのサブサンプリングフォーマットでは、色差コンポーネントが水平方向及び垂直方向に1/2サブサンプリングされている。なお、色差コンポーネントの間引きがなされないフォーマットは4:4:4と呼ばれる。
ただし、本実施例では、色差コンポーネントが間引かれている場合であっても、色差コンポーネントに対し前記通常ウェーブレット変換が適用されているものとする。
まず、デタイル処理制御手段114は、輝度コンポーネントに対する垂直方向及び水平方向のデタイル処理を施す最低のデコンポジションレベルKYを設定する(step240)。次に、デタイル制御手段114は、情報取得手段117より与えられた情報に基づき色差(Cb,Cr)コンポーネントが垂直方向に間引かれているか否かをチェックし(step241)、間引かれていないならば色差の垂直方向デタイル処理の最低デコンポジションレベルをKCに設定し(step242)、間引かれているならば該最低デコンポジションレベルをKVに設定する。次にデタイル制御手段は、情報取得手段117より与えられた情報に基づき色差コンポーネントが水平方向に間引かれているか否かをのチェックし(step244)、間引かれていないならば色差の水平方向デタイル処理の最低デコンポジションレベルをKCに設定し(step245)、間引かれているならば該最低デコンポジションレベルをKHに設定する。
KY,KC,KH,KVの関係であるが、KH=KV>KC>KYに選ばれる。色差コンポーネントの間引きが行われた場合、間引かれた方向の濃度勾配が間引きのないばあいに比べて急峻になり、その方向のタイル境界歪みがもともと発生しにくいため、KH=KV>KCの関係に設定し、間引き方向に対して、非間引き方向に比べ上のデコンポジションレベルでデタイル処理を打ち切ってもデタイル効果に殆ど差違がなく、かつ、デタイルのための処理量を削減できる。また、KC>KYの関係に選ばれるが、その理由は前記実施例1に関連して述べた通りである。ただし、色差コンポーネントに対するデタイル効果を特に高めたい場合には、KC=KYに選ぶことも可能である。
図6を参照する。デタイル処理制御手段114は、コンポーネント番号を0(輝度コンポーネント)に設定し(step247)、処理デコンポジションレベルを最高レベルに設定する(step248)。この最高デコンポジションレベルは、タグ処理部101によるヘッダ解析で得られることは前述した通りである。
最初は輝度コンポーネントであるので、デタイル処理制御手段114は、係数補正手段112及びクリッピング手段113により、輝度コンポーネントの処理デコンポジションレベルの係数に対する水平方向デタイル処理及び垂直方向デタイル処理を実行させ(step251,252)、次にウェーブレット逆変換部104で2次元逆ウェーブレット変換を実行させ(step254)、処理デコンポジションレベルを1レベル下げ(step255)、同様の処理を実行させる。デコンポジションレベルKYまで同様の処理が繰り返される。KYより下のデコンポジションレベルに対してはstep251,252をスキップさせ、2次元逆ウェーブレット変換だけを実行させる。
最下位階層のデコンポジションレベル1に対する処理が終わると(step253,Yes)、デタイル処理制御手段114はコンポーネント番号を1にインクリメントし(step257)、処理デコンポジションレベルを最高レベルに設定し(step249)、色差(Cb)コンポーネントに対する処理を開始させる。当該色差(Cb)コンポーネントの水平方向の間引きが無くかつ処理デコンポジションレベルがKC以上であるか、又は、水平方向の間引きが有りかつ処理デコンポジションレベルがKH以上であるならば(step258,No)、係数補正手段112及びクリッピング手段113によって処理デコンポジションレベルに対する水平方向のデタイル処理を実行させる(step259)。次に、当該色差(Cb)コンポーネントの垂直方向の間引きが無くかつ処理デコンポジションレベルがKC以上であるか、又は、垂直方向の間引きが有りかつ処理デコンポジションレベルがKV以上であるならば(step260,No)、係数補正手段112及びクリッピング手段113によって処理デコンポジションレベルに対する垂直方向のデタイル処理を実行させる(step261)。その後、ウェーブレット逆変換部104で2次元逆ウェーブレット変換を実行させ(step254)、処理デコンポジションレベルを1レベル下げ(step255)、次のデコンポジションレベルに対する処理を実行させる。
デコンポジションレベル1までの処理が終わると(step253,Yes)、コンポーネント番号を2にインクリメントさせ(step257)、色差(Cr)コンポーネントに対する処理を開始させる。色差(Cr)コンポーネントに対する処理は色差(Cb)コンポーネントと同様である。そして、この処理がデコンポジションレベル1まで終わると(step253,Yes)、ここでは3コンポーネントの符号化データを想定しているため、step256で終了と判定され、一連の処理が完了する。
なお、step251,252,259,261のデタイル処理は図3に示す手順で実行される。なお、処理量は増加するが、step252,261の垂直方向のデタイル処理を図4に示す手順で実行することも可能である。
図7は、本実施例におけるデタイル処理の全体的な流れを説明するためのフローチャートである。ここでも輝度コンポーネント(コンポーネント番号0)と色差Cb,Crコンポーネント(コンポーネント番号1,2)の3コンポーネントからなる符号化データを想定している。
デタイル処理制御手段114は、色差コンポーネントのサンプリングフォーマット(4:4:4、4:2:2又は4:1:1)に応じて処理フローを切り替える(step270)。すなわち、色差コンポーネントの間引きが行われていない4:4:4フォーマットならばstep271の処理に移行する。色差コンポーネントが水位方向にのみ間引かれている4:2:2フォーマットならば、通常ウェーブレット変換と簡易ウェーブレット変換のいずれが適用されているかによって処理の流れをstep273又はstep276へ進める(step272)。色差コンポーネントが水平方向及び垂直方向に間引かれている4:1:1フォーマットならば、通常ウェーブレット変換と簡易ウェーブレット変換のいずれが適用されているかによって、処理の流れをstep275又はstep276へ進める(step274)。このような色差のサンプリングフォーマットの種類及び通常/簡易ウェーブレット変換の別を判断するための情報は情報取得手段117より与えられることは前述の通りである。
step271では図2に示した手順に従ったデタイル処理が実行される。この処理内容は前記実施例1に関連して説明した通りである。
step276では図5及び図6に示した手順に従ったデタイル処理が実行される。この処理内容は前記実施例2の場合と同様であるが説明を補足する。4:2:2フォーマットで通常ウェーブレット変換の場合、step241の判定結果はNoとなるのでstep242で色差の垂直方向デタイル処理の最低デコンポジションレベルはKCに設定され、step244の判定結果はYesとなるのでstep246で色差の水平方向デタイル処理の最低デコンポジションレベルはKHに設定される。4:1:1フォーマットで通常ウェーブレット変換の場合、step241の判定結果はYesとなるのでstep243で色差の垂直方向デタイル処理の最低デコンポジションレベルはKHに設定され、step244の判定結果はYesとなるのでstep246で色差の水平方向デタイル処理の最低デコンポジションレベルはKHに設定される。
次にstep273の処理内容について説明する。まず、図10と図11を参照し説明する。
図10は4:2:2フォーマットにおける簡易ウェーブレット変換の説明図である。図10の上段に示すように、4:2:2フォーマットでは、色差(Cb,Cr)コンポーネントが水平方向に1/2サブサンプリングされる。符号化時において、デコンポジションレベル1の順ウェーブレット変換は、図10中段に示すように、輝度コンポーネントに対しては垂直方向及び水平方向に適用されるが、色差コンポーネントに対しては垂直方向にのみ適用される。すなわち、色差コンポーネントの間引き方向には順ウェーブレット変換は適用されない。デコンポジションレベル2以上の順ウェーブレット変換は、図10の下段に示すように輝度コンポーネント、色差コンポーネントともに垂直方向及び水平方向に適用される。
図11は、4:2:2フォーマット・簡易ウェーブレット変換の符号化データの復号時におけるデタイル処理の説明図である。デコンポジションレベル2以上では、輝度コンポーネント及び色差コンポーネントに対し、水平方向及び垂直方向のデタイル処理が適用される。デコンポジションレベル1では、図11の中段に示すように、輝度コンポーネントに対しては水平方向及び垂直方向のデタイル処理が施されるが、色差コンポーネントに対しては垂直方向のデタイル処理のみ施される。色差コンポーネントの場合、デコンポジションレベル1では水平方向の順ウェーブレット変換が適用されていないため、水平方向のミラリングによるタイル境界歪みは生じていないからである。なお、デコンポジションレベル1の色差コンポーネントの逆ウェーブレット変換は垂直方向についてのみ適用されることは当然である。
図8はstep273における処理手順を示すフローチャートである。デタイル処理制御手段114はコンポーネント番号を0(輝度コンポーネント)に設定し(step280)、処理デコンポジションレベルを最高レベルに設定する(step281)。そして、処理デコンポジションレベルの輝度コンポーネントのウェーブレット係数に対する水平方向及び垂直方向のデタイル処理を係数補正手段112及びクリッピング手段113により実行させ(step283,284)、次にウェーブレット逆変換部104に2次元逆ウェーブレット変換を実行させる(step286)。そして処理デコンポジションレベルを1レベル下げ(step287)、同様の処理を実行させる。
輝度コンポーネントのデコンポジションレベル1まで処理が終わると(step285,Yes)、デタイル処理制御手段114はコンポーネント番号を1(色差Cb)にインクリメントし(step289)、処理デコンポジションレベルを最高レベルに設定する(step281)。色差(Cb)コンポーネントの処理デコンポジションレベルのウェーブレット係数に対し水平方向及び垂直方向のデタイル処理を実行させ(step290,291)、2次元逆ウェーブレット変換を実行させ(step293)、処理デコンポジションレベルを1レベル下げ(step294)、処理デコンポジションレベルのウェーブレット係数に対し水平方向及び垂直方向のデタイル処理を実行させる(step290,291)。
このような処理が繰り返され、デコンポジションレベル2が処理デコンポジションとなり、そのウェーブレット係数に対する水平方向及び垂直方向のデタイル処理が終わると、デタイル処理制御手段114はstep292よりstep295へ処理の流れを変える。すなわち、2次元逆ウェーブレット変換を実行させ(step295)、処理デコンポジションレベルを1レベル下げ(step296)、処理デコンポジションレベルすなわちデコンポジションレベル1のウェーブレット係数に対し垂直方向のデタイル処理を実行させる(step297)。ただし、このデタイル処理ではタイル境界に隣接したハイパス係数(1H)のみ補正するだけでよい。最後に垂直方向の逆ウェーブレット変換を実行させ(step298)、色差(Cb)コンポーネントの画像データを復元する。
なお、step298の後で、必要ならば、色差(Cb)コンポーネントの画像データに対し水平方向に間引かれた画素を補間するためのアップサンプリングをウェーブレット逆変換部104あるいは色空間逆変換部105で実行させるようにしてもよい。
このようにして色差(Cb)コンポーネントに対する処理を終わると、コンポーネント番号を2にインクリメントし(step289)、色差(Cr)コンポーネントに対し色差(Cb)コンポーネントと同様のデタイル処理を実行させる。
なお、step283,284,290,291,297の水平方向又は垂直方向のデタイル処理の手順は図3に示す手順と同様である。ただし、step297では、上に述べたように、タイル境界に隣接したハイパス係数のみ補正する。処理量は増加するが、垂直方向デタイル処理に図4に示す手順と同様の手順を用いることも可能である。
次にstep275の処理内容について説明する。まず、図12と図13を参照し説明する。
図12は4:1:1フォーマットにおける簡易ウェーブレット変換の説明図である。図12の上段に示すように、4:1:1フォーマットでは、色差(Cb,Cr)コンポーネントが水平方向及び垂直方向にそれぞれ1/2サブサンプリングされる。符号化時において、デコンポジションレベル1の順ウェーブレット変換は、図12中段に示すように、輝度コンポーネントに対しては垂直方向及び水平方向に適用されるが、色差コンポーネントに対しては適用されない。デコンポジションレベル2以上の順ウェーブレット変換は、図12の下段に示すように輝度分、色差コンポーネントともに垂直方向及び水平方向に適用される。
図13は、4:1:1フォーマット・簡易ウェーブレット変換の符号化データの復号時におけるデタイル処理の説明図である。デコンポジションレベル2以上では、輝度コンポーネント及び色差コンポーネントに対し、水平方向及び垂直方向のデタイル処理が適用される。デコンポジションレベル1では、図13の中段に示すように、輝度コンポーネントに対してのみ水平方向及び垂直方向のデタイル処理が施される。色差コンポーネントの場合、デコンポジションレベル1では順ウェーブレット変換が適用されていないため、ミラリングによるタイル境界歪みは生じていないからである。なお、色差コンポーネントに対してはデコンポジションレベル1の逆ウェーブレット変換は適用されないことは当然である。
図9はstep275における処理手順を示すフローチャートである。デタイル処理制御手段114はコンポーネント番号を0(輝度コンポーネント)に設定し(step300)、処理デコンポジションレベルを最高レベルに設定する(step301)。そして、処理デコンポジションレベルの輝度コンポーネントのウェーブレット係数に対する水平方向及び垂直方向のデタイル処理を係数補正手段112及びクリッピング手段113により実行させ(step303,304)、次にウェーブレット逆変換部104に2次元逆ウェーブレット変換を実行させる(step306)。そして処理デコンポジションレベルを1レベル下げ(step307)、同様の処理を実行させる。
輝度コンポーネントのデコンポジションレベル1まで処理が終わると(step305,Yes)、デタイル処理制御手段114はコンポーネント番号を1(色差Cb)にインクリメントし(step309)、処理デコンポジションレベルを最高レベルに設定する(step301)。色差(Cb)コンポーネントの処理デコンポジションレベルのウェーブレット係数に対し水平方向及び垂直方向のデタイル処理を実行させ(step310,311)、2次元逆ウェーブレット変換を実行させ(step313)、処理デコンポジションレベルを1レベル下げ(step314)、処理デコンポジションレベルのウェーブレット係数に対し水平方向及び垂直方向のデタイル処理を実行させる(step310,311)。このような処理が繰り返され、デコンポジションレベル2が処理デコンポジションとなり、そのウェーブレット係数に対する水平方向及び垂直方向のデタイル処理が終わると、デタイル処理制御手段114はstep312よりstep315へ処理の流れを変え2次元逆ウェーブレット変換を実行させ、色差(Cb)コンポーネントの画像データを復元する。
なお、step315の後で、必要ならば、色差(Cb)コンポーネントの画像データに対し水平方向及び垂直方向に間引かれた画素を補間するためのアップサンプリングをウェーブレット逆変換部104あるいは色空間逆変換部105で実行させるようにしてもよい。
このようにして色差(Cb)コンポーネントに対する処理を終わると、コンポーネント番号を2にインクリメントし(step309)、色差(Cr)コンポーネントに対し色差(Cb)コンポーネントと同様のデタイル処理を実行させる。
step303,304,310,311の水平方向又は垂直方向のデタイル処理の手順は図3に示す手順と同様である。処理量は増加するが、垂直方向デタイル処理に図4に示す手順を用いることも可能である。
なお、以上の各実施例において、全てのコンポーネントについて最上位階層よりデタイル処理を開始したが、最上位階層より下位の階層よりデタイル処理を開始するようにすることも可能である。
また、トランケート数取得についてであるが、高圧縮率の符号化データなどでは、デタイルのために補正されるハイパス係数に関するトランケート数が取得できない場合があり得る。この場合、該ハイパス係数の量子化区間の決定に、他のハイパス係数(例えば同じサブバンドの隣接コードブロックのハイパス係数)に関し取得されたトランケート数を用いることができる。
以上に説明した本発明の画像処理装置におけるデタイル処理部111の処理手順は本発明のデタイル方法の処理手順でもあることは明らかである。よって、本発明のデタイル方法についての説明は繰り返さない。
図1に示したような本発明の画像処理装置は、パソコンなどの汎用のコンピュータや各種機器に内蔵されたマイクロコンピュータなどのコンピュータを利用して実現することも可能である。このような実現形態について図37により簡単に説明する。
図37において、401は中央演算処理ユニット(CPU)、402はメインメモリ、403はハードディスク装置、404はモニタ、405はバスである。このようなコンピュータを画像処理装置を構成する各手段として機能させるための1以上のプログラムは、例えばハードディスク装置403よりメインメモリ402にロードされ、CPU401により実行されることになる。
処理は例えば次のような流れで行われる。
(1)ハードディスク装置403に記憶されているJPEG2000の符号データが、CPU401からの命令によってメインメモリ402に読み込まれる。
(2)CPU401は、メインメモリ402上の符号データを読み込んで復号処理を行い、その処理過程で各コンポーネントのウェーブレット係数に対するデタイル処理(係数補正及びクリッピング処理)を行う。
(3)CPU401は、再生した画像データをメインメモリ302上の別の領域に書き込む。
(4)そして、例えば、CPU401からの命令によって、再生画像データがモニタ404に画像として表示される。
このようにコンピュータを本発明の画像処理装置の各手段として機能させるプログラム(アプリケーションプログラム、デバイスドライバなど)、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子など、コンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に包含される。
なお、コンピュータにハードウェアのJPEG2000デコーダが備えられている場合には、画像処理装置のデタイル処理部111及び量子化区間決定部115をプログラムによって実現し、それ以外の部分の機能はデコーダの機能を利用するような形態をとることも可能である。かかる実現形態も本発明に包含される。
以上に説明した本発明の実施形態ではJPEG2000の符号データが用いられたが、タイル単位の階層的ウェーブレット変換を利用するJPEG2000以外の符号化方式による符号化データを処理する画像処理装置に対しても、さらには、タイル単位でウェーブレット変換以外の階層的周波数変換を用いる符号化方式による符号化データを扱う画像処理装置に対しても、本発明を同様に適用し得るものである。また、以上の説明から明らかなように、タイル単位の階層的ウェーブレット変換処理により生成されたウェーブレット係数、さらには、タイル単位の他の階層的周波数変換処理により生成された周波数変換係数を入力され、それを処理する画像処理装置に対しても本発明を適用可能である。
本発明の実施形態に係る画像処理装置のブロック図である。
実施例1におけるデタイル処理を説明するためのフローチャートである。
水平方向及び垂直方向のデタイル処理の手順を示すフローチャートである。
垂直方向デタイル処理の別の手順を示すフローチャートである。
実施例2におけるデタイル処理を説明するためのフローチャートである。
実施例2におけるデタイル処理を説明するためのフローチャートである。
実施例3におけるデタイル処理を説明するためのフローチャートである。
図7中のstep273の処理を説明するためのフローチャートである。
図7中のstep275の処理を説明するためのフローチャートである。
4:2:2フォーマットの簡易ウェーブレット変換を説明するための図である。
4:2:2フォーマット・簡易ウェーブレット変換のウェーブレット係数に対する処理を説明するための図である。
4:1:1フォーマットの簡易ウェーブレット変換を説明するための図である。
4:1:1フォーマット・簡易ウェーブレット変換のウェーブレット係数に対する処理を説明するための図である。
水平方向デタイル処理で補正されるタイル境界付近のハイパス係数の説明図である。
垂直方向デタイル処理で補正されるタイル境界付近のハイパス係数の説明図である。
水平方向逆ウェーブレット変換を行わずに垂直方向デタイル処理を行う場合の誤差の説明図である。
クリッピング処理の説明図である。
JPEG2000における符号破棄(ポスト量子化)の説明図である。
トランケート数と量子化区間の大きさの関係の説明図である。
トランケート数の算出方法の説明図である。
JPEG2000の圧縮・伸長アルゴリズム説明するためのブロック図である。
タイル画像と座標系を示す図である。
図22のタイル画像に対し垂直方向のウェーブレット変換を行った後の係数配列を示す図である。
図23の係数配列に対し水平方向のウェーブレット変換を行った後の係数配列を示す図である。
図24の係数をデインターリーブした係数配列を示す図である。
2回目の2次元ウェーブレット変換後のデインターリーブした係数配列を示す図である。
ミラリングの説明図である。
デタイル処理により補正されるタイル境界付近の画素を模式的に示す図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
ウェーブレット係数空間上でウェーブレット変換処理を逆順に忠実に辿ったデタイル処理手順を説明するための係数配列図である。
本発明に係る画像処理装置をコンピュータを利用して実現する形態を説明するためのブロック図である。
符号の説明
101 タグ処理部
102 エントロピー復号部
103 逆量子化部
104 ウェーブレット逆変換部
105 色空間逆変換部
106 DCレベル逆シフト部
111 デタイル処理部
112 係数補正手段
113 クリッピング手段
114 デタイル処理制御手段
115 量子化区間決定部
116 トランケート数取得手段
117 情報取得手段