本発明は、各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置及び方法に係り、特に、動画像の各フレームの符号データの復号処理過程において、周波数係数空間上でタイル境界歪みの抑制のための補正処理を行う画像処理装置及び方法に関する。
近年、画像入出力技術の進歩により、画像に対する高精細化の流れはとどまるところを知らず、高精細画像を容易に圧縮・伸長できる技術への要求も強いものがある。
こうした要求を満たす符号化方式の一つとして、周波数変換としてウェーブレット変換を用い、高圧縮率でも高画質な画像を復号可能なJPEG2000がある。JPEG2000においては、画像を重複しない矩形領域(タイル)に分割し、個々のタイルが圧縮伸長プロセスを実行する際の基本単位となる。
このように画像を重複しないタイルに分割し、タイル毎に処理を行う方法は、省メモリ化・高速化に有効な手法であるが、圧縮率の高い符号データ(コードストリーム)を伸長した画像において、タイルの境界が不連続となるという問題がある。
このタイル境界歪みは、見かけ上、離散コサイン変換(DCT)におけるブロック歪みに類似したものである。このDCTのブロック歪みの除去に関しては、ブロック境界の方向とエッジ度に応じて画素値に適応的なローパスフィルタをかける方法が知られている(例えば特許文献1〜3参照)。JPEG2000に関しても、伸長画像上のタイル境界近傍の画素値にローパスフィルタをかけることによりタイル境界歪みを抑制する方法が知られている(例えば特許文献4〜6参照)。また、各フレームがJPEG2000により符号化された動画像に関して、タイル境界歪み抑制のためにタイル境界近傍の画素値にかけるローパスフィルタの強度をフレームレートなどに応じて制御する方法が知られている(特許文献7参照)。
しかし、こうしたローパスフィルタ的手法は、それがいかに適応的であっても、「歪み自体の平滑化(予定した作用)と、真のエッジの平滑化(予定しない副作用)」のトレードオフに悩まされることになる。
一方、本出願人は、ウェーブレット変換を用いる圧縮伸長システムにおいて、ウェーブレット係数空間上でタイル境界歪みを抑制する方法を提案している(特許文献8参照)。これは、ウェーブレット係数空間上での画像復元に類する手法である。
特開平05-316361号公報
特許第2839987号公報
特開平09-307855号公報
特開2004-40252号公報
特開2004-40670号公報
特開2004-46583号公報
特開2004-64190号公報
特開2001−257596号公報
特許文献8に記載されているようなウェーブレット係数空間(広くは周波数係数空間)上でタイル境界歪み抑制を行う手法は、画像空間上でローパスフィルタをかける手法に比べ優れた効果を期待できるが、その反面、処理に時間がかかる傾向がある。JPEG2000の符号データのような階層的な周波数変換が行われた符号データの場合、複数の階層についてタイル境界歪み抑制のための処理を繰り返すことになるため、処理時間の増加を招きやすい。動画像の場合には、フレーム周期内でフレームの復号処理を完了させなければならないため、タイル境界歪みの抑制に係る処理時間の短縮は重要な課題である。
よって、本発明の目的は、各フレームがJPEG2000により符号化されたmotion-JPEG2000の動画像のような、各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像に関し、各フレームの符号データの復号処理過程において、周波数係数空間上でタイル境界歪み抑制を効率的に行う新規な画像処理装置及び方法を提供することにある。
請求項1の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正手段と、
各フレームの動き量を推定する動き量推定手段とを有し、
前記係数補正手段に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が閾値th1以下のときに補正の対象から除外し、前記動き量推定手段により推定された動き量に応じて前記閾値th1を変化させる制御を行う補正制御手段が含まれることを特徴とする画像処理装置である。
請求項2の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正手段と、
各フレームの動き量を推定する動き量推定手段とを有し、
前記係数補正手段に、前記動き量推定手段により推定された動き量が所定値を越える場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正の対象から除外し、前記動き量推定手段により推定された動き量が前記所定値以下の場合に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が所定値以下のときに補正の対象から除外する制御を行う補正制御手段が含まれることを特徴とする画像処理装置である。
請求項3の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正手段と、
各フレームの動き量を推定する動き量推定手段とを有し、
前記係数補正手段に、前記動き量推定手段により推定された動き量が所定値を越える場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正対象から除外し、前記動き量推定手段により推定された動き量が前記所定値以下の場合に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その値が0のときに補正対象から除外する制御を行う補正制御手段が含まれることを特徴とする画像処理装置である。
請求項4の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正手段と、
各フレームの動き量を推定する動き量推定手段とを有し、
前記係数補正手段に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が閾値th1以下であるとき、及び、当該高周波係数の値が0であるときに補正の対象から除外し、前記動き量推定手段により推定された動き量に応じて前記閾値th1を変化させる制御を行う補正制御手段が含まれることを特徴とする画像処理装置である。
請求項5の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理装置であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正手段と、
各フレームの動き量を推定する動き量推定手段とを有し、
前記係数補正手段に、前記動き量推定手段により推定された動き量が所定値以上の場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正対象から除外し、前記動き量推定手段により推定された動き量が前記所定値未満の場合には、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が所定値以下であるとき、及び、当該高周波係数の値が0であるときに補正の対象から除外する制御を行う補正制御手段が含まれることを特徴とする画像処理装置である。
請求項6の発明は、請求項1乃至5のいずれか1項の発明の画像処理装置であって、
動画像の各フレームの符号化におけるタイル単位の周波数変換が階層的な周波数変換であり、
前記係数補正手段によるタイル境界歪み抑制のための補正が、少なくとも1の階層のタイル境界に隣接する高周波係数及びタイル境界に隣接しないタイル境界近傍の高周波係数に対し施されることを特徴とする画像処理装置である。
請求項7の発明は、請求項1乃至6のいずれか1項の発明の画像処理装置であって、
動画像の各フレームの符号化における周波数変換がウェーブレット変換であることを特徴とする画像処理装置である。
請求項8の発明は、請求項1乃至5のいずれか1項の発明の画像処理装置であって、
動画像の各フレームがJPEG2000により符号化されたものであることを特徴とする画像処理装置である。
請求項9の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理方法であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正工程と、
各フレームの動き量を推定する動き量推定工程とを有し、
前記係数補正工程に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が閾値th1以下のときに補正の対象から除外し、前記動き量推定工程により推定された動き量に応じて前記閾値th1を変化させる制御を行う補正制御工程が含まれることを特徴とする画像処理方法である。
請求項10の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理方法であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正工程と、
各フレームの動き量を推定する動き量推定工程とを有し、
前記係数補正工程に、前記動き量推定工程により推定された動き量が所定値を越える場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正の対象から除外し、前記動き量推定工程により推定された動き量が前記所定値以下の場合には、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が所定値以下のときに補正の対象から除外する制御を行う補正制御工程が含まれることを特徴とする画像処理方法である。
請求項11の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理方法であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正工程と、
各フレームの動き量を推定する動き量推定工程とを有し、
前記係数補正工程に、前記動き量推定工程により推定された動き量が所定値を越える場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正対象から除外し、前記動き量推定工程により推定された動き量が前記所定値以下の場合には、タイル境界に隣接しないタイル境界近傍の高周波係数を、その値が0のときに補正対象から除外する制御を行う補正制御工程が含まれることを特徴とする画像処理方法である。
請求項12の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理方法であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正工程と、
各フレームの動き量を推定する動き量推定工程とを有し、
前記係数補正工程に、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が閾値th1以下であるとき、及び、当該高周波係数の値が0であるときに補正の対象から除外し、前記動き量推定工程により推定された動き量に応じて前記閾値th1を変化させる制御を行う補正制御工程が含まれることを特徴とする画像処理方法である。
請求項13の発明は、
各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像を復号する画像処理方法であって、
各フレームの符号データの復号処理過程において、タイル境界に隣接する高周波係数、及び、タイル境界に隣接しないタイル境界近傍の高周波係数に対しタイル境界歪み抑制のための補正を施す係数補正工程と、
各フレームの動き量を推定する動き量推定工程とを有し、
前記係数補正工程に、前記動き量推定工程により推定された動き量が所定値以上の場合にタイル境界に隣接しないタイル境界近傍の高周波係数を補正対象から除外し、前記動き量推定工程により推定された動き量が前記所定値未満の場合には、タイル境界に隣接しないタイル境界近傍の高周波係数を、その量子化ステップ数が所定値以下であるとき、及び、当該高周波係数の値が0であるときに補正の対象から除外する制御を行う補正制御工程が含まれることを特徴とする画像処理方法である。
請求項14の発明は、請求項9乃至13のいずれか1項の発明の画像処理方法であって、
動画像の各フレームの符号化におけるタイル単位の周波数変換が階層的な周波数変換であり、
前記係数補正工程によるタイル境界歪み抑制のための補正が、少なくとも1の階層のタイル境界に隣接する高周波係数及びタイル境界に隣接しないタイル境界近傍の高周波係数に対し施されることを特徴とする画像処理方法である。
請求項15の発明は、請求項1乃至8のいずれか1項に記載の画像処理装置の係数補正手段、補正制御手段及び動き量推定手段としてコンピュータを機能させるプログラムである。
請求項16の発明は、請求項1乃至8のいずれか1項に記載の画像処理装置の係数補正手段、補正制御手段及び動き量推定手段としてコンピュータを機能させるプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
実施の形態に関連して詳細に説明するように、本発明の画像処理装置及び方法によれば、motion-JPEG2000の動画像のような、各フレームが独立して符号化され、かつ、各フレームの符号化において画像が重複しないタイルに分割されタイル単位で周波数変換された動画像に関し、タイル境界歪み抑制の目的を達成しつつ、周波数係数空間上でのタイル境界歪み抑制のための補正処理時間を大幅に短縮することができる。また、本発明に係るプログラム及び情報記録媒体によれば、本発明に係る画像処理装置をコンピュータを利用し容易に実現することができる。
以下に説明する本発明の実施の形態においては、Motion-JPEG2000の動画像を復号化するものとする。Motion-JPEG2000では、時間的に連続した複数の静止画それぞれを動画像のフレームとして、各フレームを独立してJPEG2000のアルゴリズムにより符号化する。Motion-JPEG2000の動画像では、各フレームの画像は、インターレース画像である場合とノンインターレース画像である場合とがあるが、ここでは、各フレームの画像は、奇数ラインのみ飛び越し走査された奇数フィールドと偶数ラインのみ飛び越し走査された偶数フィールドとからなるインターレース画像であるものとする。Motion-JPEG2000では、各フレームがインターレース画像の場合に、フィールド単位で符号化するフィールドベース符号化と、2フィールドを合成したフレーム画像を符号化するフレームベース符号化のいずれも可能であるが、ここではフレームベース符号化であるものとする。
図1は、本発明の実施の形態を説明するためのブロック図である。ここに示す画像処理装置は、Motion-JPEG2000の動画像の各フレームの符号データをJPEG2000のアルゴリズムにより復号して各フレームの画像データを生成する復号化機能と、符号化されていない動画像の各フレームの画像データをJPEG2000のアルゴリズムにより符号化してコードストリームを生成する符号化機能の両方を有するが、符号化機能は必ずしも備えなくともよい。この画像処理装置の特徴は、Motion-JPEG2000の動画像の各フレームの復号処理過程で、ウェーブレット係数空間上でタイル境界歪み抑制を行う機能を備えることである。
図1において、色変換・逆変換部101、2次元ウェーブレット変換・逆変換部102、量子化・逆量子化部103、エントロピー符号化・復号化部104、符号形成・タグ処理部105は、JPEG2000のアルゴリズムによる符号化機能及び復号化機能のための基本的構成要素である。すなわち、これらの要素は、符号化処理手段及び復号化処理手段を構成するものである。
係数補正部110は、各フレームの復号処理過程で、復号化処理手段に含まれる、ウェーブレット順変換及び逆変換の手段である2次元ウェーブレット変換・逆変換部102と協働して、ウェーブレット係数空間上でタイル境界歪み抑制のための補正処理を行う手段である。この係数補正部110は、タイル境界に隣接しない(タイル境界に直接接しない)タイル境界近傍の高周波係数を補正の対象から除外するか否かを、フレームの動き量と、係数値、量子化ステップ数、又は、係数値及び量子化ステップ数とに応じて適応的に制御するための補正制御手段111を含む。
この画像処理装置は、動画像の各フレームの動き量(被写体もしはくシーンの動き量)を推定する動き量推定部120を備える。この実施の形態においては、後に詳述するように、動き量推定部120はインターレース画像上の被写体の動き量と「櫛型」の横方向エッジ量との関係を利用してフレームの動き量を推定する。
この画像処理装置は、補正モード指定部130を含むことができる。この補正モード指定部130は、係数補正部110に対し係数補正処理に関する動作モード(補正モード)をユーザが指定するための手段である。この補正モード指定部130は、ユーザにより補正モードを指定可能な実施の形態においてのみ必要なものであり、その指定を行わない実施の形態では省くことができる。
この画像処理装置における符号化処理動作は次の通りである。動画像の各フレームの画像が例えばR,G,Bの3コンポーネントからなるカラー画像の場合、各コンポーネントのデータは重複しない矩形のタイルに分割される(これをタイリングと呼ぶ)。分割されたタイルを単位として符号化処理が実行される。
各タイルの各コンポーネントのデータは、まず、色変換・逆変換部101によりY,Cb,Cr(又はY,U,V)のコンポーネントへの色空間変換を施される。次に、各コンポーネントはタイル単位で2次元ウェーブレット変換・逆変換部102により2次元ウェーブレット変換(順変換)が適用されて周波数帯域(サブバンド)に空間分割される。
ウェーブレット係数は、サブバンド毎に、必要に応じて量子化・逆量子化部103によって線形量子化された後、エントロピー符号化・復号化部104でエントロピー符号化される。ウェーブレット変換係数をそのまま符号化することも可能であるが、JPEG2000では符号化効率を上げるため、通常、係数値を「ビットプレーン」単位に分解して符号化する(より詳細にはビットプレーンは3つのサブビットプレーンに分割されて符号化される)。この符号化では、指定された符号化の順番に従って符号化の対象となるビットが定められ、量子化・逆量子化部103で対象ビット周辺のビットからコンテキストが生成され、このコンテキストと対象ビットから確率推定によって符号が決定される。そして、符号形成・タグ処理部105で、不要な符号を破棄し、必要な符号をまとめてパケットを生成し、パケットを所定の順序に並べるとともに必要なタグ又はタグ情報を挿入することにより、所定のフォーマットのコードストリーム(符号データ)を形成し出力する。
ここまでの説明から理解されるように、JPEG2000により符号化された各フレームのコードストリームは、画像を重複しないタイルを単位として周波数変換(2次元ウェーブレット変換)した符号データの一種である。
次にMotion-JPEG2000による動画像の各フレームの復号化処理動作の流れについて説明する。符号形成・タグ処理部105で、外部より入力したコードストリームに付加されたタグ情報が解釈され、コードストリームは各コンポーネントの各タイルのコードストリームに分解される。そして、分解された各コンポーネントの各タイルのコードストリーム毎に復号化の処理が行われる。
コードストリーム内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部103で、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストが生成される。エントロピー符号化・復号化部104で、このコンテキストとコードストリームとから確率推定によって対象ビットが生成され、それが対象ビットの位置に書き込まれる。
このようにして復号されたウェーブレット変換係数は、量子化・逆量子化部103で必要な逆量子化を施された後、2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット逆変換が適用されることにより、各タイルの各コンポーネントの画像データが復元される。この2次元ウェーブレット逆変換の段階で係数補正部110によりタイル境界歪み抑制のための係数補正が行われるが、これについては後述する。復元された各フレームの画像データは色変換・逆変換部101によって元の表色系のデータに戻される。
図1に示したような本発明に係る画像処理装置は、独立した装置として実現される形態と、パソコンなどの汎用コンピュータ、デジタルカメラ、携帯電話機、携帯情報端末、医療用画像処理装置、インターネット上のウェブサーバやLAN上のファイルサーバのようなネットワーク機器、画像データ又はその符号データを扱う各種機器の組み込み装置として実現される形態のいずれもとり得るものであり、また、ハードウェア、ファームウェア、ソフトウェア又はそれらの組み合わせにより実現し得るものである。
パソコンなどの汎用コンピュータやマイクロコンピュータなどのコンピュータ上でプログラムにより本発明の動画像処理装置を実現する場合について、図2により簡単に説明する。
図2において、201は中央演算処理ユニット(CPU)、202は実行プログラムやデータなどを一時的に記憶するためのメインメモリ、203はプログラムやデータを蓄積するためのハードディスク装置などの補助記憶装置、204は画像等の表示のためのモニタ装置、205はPEG2000準拠のコーデック(エンコーダ・デコーダ)であり、以上の各部はバス206に接続されている。ただし、コーデック205は必須ではない。
このようなコンピュータを、図1に示す画像処理装置の各要素101〜105,110,120,130として機能させるためのプログラムは、例えば補助記憶装置203よりメインメモリ202にロードされ、CPU201でその命令の解釈・実行を行うことより各要素101〜105,110,120,130の機能が実現される。なお、コーデック205が備えられているコンピュータでは、係数補正部110、動き量推定部120及び補正モード指定部130以外の要素101〜105としてコーデック205の持つ対応機能を利用し、補正モード指定部120、動き量推定部120及び係数補正部110の機能並びに係数補正に関連したウェーブレット順変換及び逆変換の制御を行う機能だけをプログラムにより実現することもできる。
処理の流れは次の通りである。処理対象となる画像データ又は符号データは、例えば補助記憶装置203からメインメモリ202に読み込まれて符号化処理又は復号化処理を施される。復号化処理の場合には、その処理過程でタイル境界歪み抑制のための係数補正処理と、そのための動き量推定処理が行われる。メインメモリ202上に復元された画像データは例えばモニタ装置204に画面表示される。符号化処理の場合には、メインメモリ202上に符号データが生成され、これは例えば補助記憶装置203に保存される。
このような本発明に係る画像処理装置の構成要素(少なくとも係数補正部110及び動き量推定部120)をコンピュータ上で実現するためのプログラム(アプリケーションプログラム、デバイスドライバなど)、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子などのコンピュータが読み取り可能な各種情報記録(記憶)媒体も本発明に含まれる。
次に、係数補正部110によるウェーブレット係数空間上でのタイル境界歪み抑制処理の原理について説明するが、その説明にはウェーブレット変換の理解が必要である。
図3〜図8は、16×16画素のモノクロ画像に対して、5×3変換と呼ばれるウェーブレット変換を2次元に(垂直方向および水平方向の順)施す過程の説明図である。
図3の様に画像のXY座標をとり、X座標のある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に最も近い整数に置換する関数)を示している。
C(2i+1)=P(2i+1)−|_(P(2i)+P(2i+2))/2_| 式(1)
C(2i)=P(2i)+|_(C(2i-1)+C(2i+1)+2)/4_| 式(2)
画像の端部(又はタイルの境界部)では、中心となる画素に対して隣接画素群(又は隣接係数群)が存在しないことがある。この場合、図8に示した「ミラリング」と呼ばれる手法によって適宜画素値(又は係数値)が補われる。ミラリングは、文字通り、画像の端(又はタイル境界)を中心として画素値(又は係数値)を線対称に折り返し、折り返した値を隣接画素(係数)群の値とみなす処理である。このミラリングが、タイル境界歪みの主因である。
ここで、簡単のため、ハイパスフィルタで得られる係数をH、ローパスフィルタで得られる係数をLと表記すれば、前記垂直方向の変換によって図3の画像は図4のようなL係数とH係数の配列へと変換される。
続いて、図4の係数配列に対して、水平方向に、X座標が奇数(x=2i+1)の係数を中心にハイパスフィルタを施し、次にX座標が偶数(x=2i)の係数を中心にローパスフィルタを施す(これを全てのyについて行う)。この場合、式(1),式(2)のP(2i)等は係数値を表すものと読み替える。
簡単のため、
前記L係数を中心にローパスフィルタを施して得られる係数をLL、
前記L係数を中心にハイパスフィルタを施して得られる係数をHL、
前記H係数を中心にローパスフィルタを施して得られる係数をLH、
前記H係数を中心にハイパスフィルタを施して得られる係数をHH、
と表記すれば、図4の係数配列は図5の様な係数配列へと変換される。ここで、同一の記号を付した係数群はサブバンドと呼ばれる。図5の場合は4つのサブバンドの係数からなる。
以上で、1回の2次元ウェーブレット変換(1回のデコンポジション(分解))が終了し、LL係数だけを集めると(図6の様に係数をサブバンド毎に集め、LLサブバンドだけ取り出すと)、ちょうど原画像の1/2の解像度の“画像”が得られる(このように、サブバンド毎に係数を分類することをデインターリーブと呼び、これに対し図5のような状態に係数を配置することをインターリーブすると呼ぶ)。
2回目のウェーブレット変換は、LLサブバンドを原画像と見なして、上に述べたと同様に行われる。そして得られたサブバンド係数をデインターリーブすると、図7に示す様な係数配列となる(図6、図7中の係数の接頭の1や2は、その係数が何回のウェーブレット変換で得られたかを示し、デコンポジションレベルと呼ばれる)。
このようにウェーブレット変換は、低周波係数に対し変換を再帰的に繰り返す階層的な周波数変換の一種である。そして、LLサブバンド係数は低周波係数であり、LH,HL,HHサブバンドの係数が高周波係数である。また、デコンポジションレベルは階層レベルに相当する。
以上は順変換であるが、2次元ウェーブレット逆変換は丁度逆の処理となる。すなわち、図5の様なインターリーブされた係数の配列に対して、まず水平方向に、X座標が偶数(x=2i)の係数を中心に逆ローパスフィルタを施し、次にX座標が奇数(x=2i+1)の係数を中心に逆ハイパスフィルタを施す(これを全てのyについて行う)。ここで、逆ローパスフィルタは式(3)、逆ハイパスフィルタは式(4)で表される。この際も、画像の端部(又はタイル境界部)においては中心となる係数に対して隣接係数群が存在しないことがあり、この場合も図8のミラリングによって適宜係数値を補うことになる。
P(2i)=C(2i)−|_(C(2i-1)+C(2i+1)+2)/4_| 式(3)
P(2i+1)=C(2i+1)+|_(P(2i)+P(2i+2))/2_| 式(4)
このようにして図5の係数配列は図4のような係数配列に変換(逆変換)される。続いて、垂直方向に、Y座標が偶数(y=2i)の係数を中心に逆ローパスフィルタを施し、次にY座標が奇数(y=2i+1)の係数を中心に逆ハイパスフィルタを施せば(これを全てのxについて行う)、1回の2次元ウェーブレット逆変換が終了し、図3の画像に戻る(再構成される)ことになる。ウェーブレット変換が複数回施されている場合は、図3をLLサブバンドとみなし、HL等の他のサブバンド係数を利用して同様の逆変換を繰り返せばよい。
このような5×3変換が用いられたJPEG2000の符号データを例に、その復号処理過程における周波数係数空間(ウェーブレット係数空間)でのタイル境界歪み抑制処理の原理について説明する。以下の説明中、ハイパス係数は高周波係数に、ローパス係数は低周波係数に相当する。
画像復元では、失われた情報を復元するために、ある経験的な拘束条件を採用し、その条件に基づいて復元すべき解を算出する。前記特許文献8の方法では、
「タイル境界が生じるのは圧縮率が高い場合であり、タイリングの有無に関わらず、全てのハイパス係数は0に量子化される」(近似1)、
「タイリングした場合のローパス係数はタイリングしない場合のローパス係数に等しい」(近似2)
という2つの近似を採用し、
「(0に量子化されたが)補正されたハイパス係数を用いて逆ウェーブレット変換をした場合の、タイル境界の画素値=ハイパス係数が0の場合の、タイリングをせずに逆ウェーブレット変換をした場合の同じ位置の画素値」
という式から、ハイパス係数の補正値を算出している(0に量子化されたハイパス係数に対し、0でない補正値を算出する過程は画像復元である)。
5×3変換の場合について、このような係数補正のための補正式を導出する。図3〜図8を参照して説明したように、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位置中心に逆ハイパスフィルタをかけた値は、
-0.125H1+0.5L2+0.75H2+0.5L3-0.125H3=0.5L2+0.5L3‥‥式(i)
となる。
一方、上記係数が、2つのタイルに分割されてから算出されたものであり、タイル境界はH2とL3の間にあるとする。この場合、L1,H1,L2,H2は左側(又は上側)のタイルの係数、L3,H3は右側(又は下側)のタイルの係数になる。ここで、H2は順変換(3タップのハイパスフィルタ)時にミラリングの影響を受けており、補正の対象となる係数である。タイリングは、各タイル内の画素だけを用いてウェーブレット変換を行う処理、あるいは各タイル内の係数だけを用いて逆ウェーブレット変換を行う処理であるため、上記ミラリングによって左タイル(又は上タイル)の係数
L1 H1 L2 H2
を右タイル(又は下タイル)に補った場合
L1 H1 L2 H2 L2 H1
となる。
よって、H2位置中心に逆ハイパスフィルタをかけた値は、
-0.125H1+0.5L2+0.75H2+0.5L2-0.125H1=-0.25H1+L2+0.75H2‥‥式(ii)
となる。
補正では式(i)=式(ii)を狙うため、次式
H2=1/3H1-2/3L2+2/3L3‥‥式(iii)
を得る。これがタイル境界に隣接し、正変換時にミラリングの影響を受けたハイパス係数の補正式である。ただし、補正値の算出時にはタイリングした係数しか存在しないため、L2は左(上)タイルの係数、L3は右(下)タイルの係数を使用する(近似2)。
タイル境界に隣接するローパス係数(L3)に関しても同様な立式が可能であり、その結果、タイル境界に隣接しない境界近傍のハイパス係数H3の補正式として
H3=0‥‥式(iv)
を得ることができる。ただし、デコンポジションレベル1の場合、H3はミラリングの誤差を含まないため補正不要である(デコンポジションレベル2以上の場合は、H3に隣接するL3自体がデコンポジションレベル1でミラリングの影響を受けているため補正が必要である)。
以上は5×3ウェーブレット変換の場合である。JPEG2000では9×7変換と呼ばれるウェーブレット変換も規定されている。この9×7ウェーブレット変換の場合も、同様な考え方で補正式を導出できる。すなわち、インターリーブされた係数列
H0 L1 H1 L2 H2 L3 H3 L4 H4
において、H2とL3の間がタイル境界である場合、
H2=(-0.0535H0+0.15644H1+0.09127L1-0.59127L2+0.59127L3-0.09127L4)/0.60295
‥‥式(v)
H3=(0.05754L2-0.05754L4+0.03372H4)/0.53372‥‥式(vi)
が得られる。9×7変換の場合には、デコンポジションレベル1でもH3係数は補正対象である。
ここまでの説明から理解されるように、タイル境界に隣接するハイパス係数H2を、5×3変換の場合には式(iii)により、9×7変換の場合には式(v)によりそれぞれ補正し、タイル境界に隣接しないタイル境界近傍のハイパス係数H3を、5×3変換の場合には式(iv)により、9×7変換の場合には式(vi)によりそれぞれ補正することにより、タイル境界歪みを抑制することができる。このようなタイル境界に隣接するハイパス係数、及び、タイル境界に隣接しないタイル境界近傍のハイパス係数に対する補正は、要するに、タイル境界に隣接する係数を中心としたウェーブレット逆変換により得られる係数の値を、タイリングしない場合のローパス係数のみを用いたウェーブレット逆変換により得られる係数の値に近づけようとするものである。
図9に、3×3にタイリングした場合において、以上に述べた補正の対象となるハイパス係数(H2,H3)の位置関係を模式的に示す。JPEG2000では符号化時に垂直方向にウェーブレット順変換が、次に水平方向にウェーブレット順変換が適用されるため、タイル境界歪み抑制のための係数補正は、まず水平方向のタイル境界に関して行い、次に水平方向のウェーブレット逆変換を行ってから垂直方向のタイル境界に関して行うが、この様子をやや詳しく示した図が図10及び図11である。図10において、LはサブバンドLL又はLHの係数、HはサブバンドHL又はHHの係数である。図11において、LはサブバンドLHの水平方向にウェーブレット逆変換した後の係数、HはサブバンドHHの水平方向にウェーブレット逆変換した後の係数である。
以上、ウェーブレット係数空間上でのタイル境界歪み抑制処理の原理について説明した。しかし、本発明に係る画像処理装置において、係数補正部110は、タイル境界に隣接しない境界近傍のハイパス係数(H3)に関しては、処理効率の向上を図るため、必ずしも原理通りの補正を行うわけではない。すなわち、図10及び図11に付記したように、タイル境界に隣接するハイパス係数(H2)は、タイル境界歪みの発生に大きな影響を与えるため常に係数補正部110で補正されるが、係数補正処理の効率化のため、タイル境界歪みの発生にさほど大きな影響を与えないタイル境界に隣接しないタイル境界近傍のハイパス係数(H3)は、適応的に補正対象から除外する制御が行われる。より具体的には、ハイパス係数(H3)は、「その係数値及びフレームの動き量」に応じて、「その量子化ステップ数及びフレームの動き量」に応じて、又は、「その係数値、その量子化ステップ数及びフレームの動き量」に応じて、適応的に補正の対象から除外される。
ここで、フレームの動き量推定に関連する、インターレース画像の「櫛型」について図12及び図13により説明する。
ビデオカメラなどで各フレームをインターレース画像として撮像する場合、各フレームは、図12の(a)に示すような奇数ラインのみを飛び越し走査した奇数フィールドが撮像され、続いて1/60秒後に、図12の(b)に示すような偶数ラインのみを飛び越し走査した偶数フィールドが撮像される。図12の(c)は、これら2フィールドの画像を合成したフレームの画像(インターレース画像)である。前述のように、フレームベース符号化では(c)に示すように2フィールドを合成したフレーム画像を符号化する。
さて、2イールド間で被写体が図示のように右方向へ移動した場合、2フィールドを合成したフレーム画像上で1走査ライン毎に被写体の縦方向エッジ部が横方向へずれる。
(d)は、このような櫛形のエッジ部分を拡大して示しており、この横方向エッジの長さ(エッジ量)Lは、奇数,偶数フィールド間での被写体の動き量に相当する。図13に、このような被写体の動き量(移動速度)と櫛型の横方向エッジ量との関係を示す。
このように、被写体の動きが大きいほど、フレーム画像の櫛型の横方向エッジ量が増加する。ビデオカメラで撮影するような場合、被写体の移動としては、このような横方向の移動が圧倒的に多いため、櫛形のエッジ部に見られる横方向エッジ量をフレームの動き量の指標として用いることは合理的である。
一方、被写体の横方向移動により生じる櫛形のエッジ部分の縦方向エッジ量は、被写体の移動量に拘わらず略一定である。したがって、櫛型の横方向エッジ量と縦方向エッジ量の比(=横方向エッジ量/縦方向エッジ量)をフレームの動き量の指標として用いることも合理的である。
そして、櫛型の横方向エッジ量及び縦方向エッジ量は、ウェーブレット変換の特定のサブバンドの係数値の絶対値の総和にそれぞれ反映され、したがって、コードストリームの特定のサブバンドの符号量に反映される。この実施の形態に係る動き量推定部120は、このような「櫛型」に関する知識を利用して各フレームの動き量の推定を行う。
ただし、画像空間又はウェーブレット係数空間で、前後のフレームの比較を行うことによって動き量を推定する方法を用いることも可能である。特に、フレーム画像がノンインターレース画像の場合には「櫛型」を利用できないので、そのようなフレーム間比較の方法を利用することになる。
つぎに、動き量推定部120の具体例を説明する。図14は、動き量推定部120の内部構成の一例を示すブロック図である。ここに示す例では、動き量推定部120は、フレームの符号データから特定のサブバンドの符号量を算出する符号量算出部121と、算出された符号量から動き量を算出する動き量計算部122からなる。かかる構成の動き量推定部120における動き量推定アルゴリズムの例を、図15〜図17のフローチャートにより説明する。
図15に示す推定アルゴリズムにおいては、符号量算出部121により1LHサブバンドの符号量sum1LHと1HLサブバンドの符号量sum1HLが計算される(step201,202)。これら符号量は、フレームの符号データ中のタグ情報を基に計算することができる。なお、いずれの符号量もYコンポーネントの符号量であり、このことは他の推定アルゴリズムにおいても同様である。
動き量計算部122において、それら符号量の比
speed=sum1LH/sum1HL
が算出される(step203)。sum1LHは櫛型の横方向エッジ量の増加に比例して増加するのに対し、1HLサブバンド係数は縦方向エッジ成分であるので、sum1HLは被写体の左右の動きによっては殆ど変化しない。したがって、speedの値は動き量の推定値として用いることができる。
図16に示す推定アルゴリズムにおいては、符号量算出部121により1LHサブバンドの符号量sum1LHと2LHサブバンドの符号量sum2LHが計算される(step211,212)。これら符号量は、符号データのタグ情報を基に計算することができる。そして、動き量計算部122で、それら符号量の比
speed=sum1LH/sum2LH
が求められる(step213)。sum1LHは櫛型の横方向エッジ量の増加に比例して増加する。これに対し、2LHサブバンドは横方向エッジ成分であるが、1LHサブバンドより解像度が1レベル低いため1画素単位の櫛型の横方向エッジの影響はほとんどないため、その符号量sum2LHは櫛型の横方向エッジ量が増加しても変化しない。したがって、speedの値はフレームの動き量の推定値として用いることができる。
図17に示す推定アルゴリズムにおいては、符号量算出部121により1LHサブバンドの符号量sum1LH、1HLサブバンドの符号量sum1HL、2LHサブバンドの符号量sum2LH及び2HLサブバンドの符号量sum2HLが計算される(step221〜224)。これら符号量は、符号データのタグ情報を基に容易に計算することができる。
そして、動き量計算部122で、符号量比
speed=(sum1LH/sum1HL)/(sum2LH/sum2HL)
が求められる(step225)。
1LH,1HLサブバンドの符号量は櫛型の横方向,縦方向のエッジ量を反映するが、櫛型以外の横方向,縦方向のエッジ量も反映する。したがって、画像中に櫛型以外の長い横エッジが存在する場合には、櫛型の横エッジ量が小さいときにもsum1LH/sum1HLが大きな値をとる。一方、1LH,1HLサブバンドより解像度が1レベル低い2LH,2HLサブバンドの符号量は、櫛型のエッジのような1画素単位のエッジには殆ど影響を受けないが、それ以外の横方向,縦方向のエッジ量を反映するため、画像中に櫛型以外の長い横エッジが存在するとsum1LH/sum2HLは大きな値をとる。したがって、前者の符号量比を後者の符号量比で除したspeedの値は、櫛型以外の長い横エッジの影響を受けにくく、より精度の高い動き量推定値として用いることができる。
なお、動き量推定のための符号量計算を、フレームの一部のタイル(例えば中心部分の1又は複数タイル)のみを対象として行うことも可能である。このようにすれば、フレーム全体を処理対象とした場合に比べ動き量推定のための処理時間を短縮できる。
図18は動き量推定部120の別の内部構成例を示すブロック図である。この例では、動き量推定部120は、量子化・逆量子化部103よりウェーブレット係数を取り込み、特定のサブバンドの係数値の絶対値の総和を計算する係数値和算出部123と、係数値和算出部123により算出された値を用いて動き量を計算する動き量計算部124とから構成される。このような構成の動き量推定部120における動き量推定アルゴリズムの例を次に説明する。
1つの推定アルゴリズムを図15を援用して説明すると、係数値和算出部123により1LHサブバンド係数の絶対値の総和sum1LHと1HLサブバンド係数の絶対値の総和sum1HLが計算される(step201,202)。なお、いずれの係数値総和もYコンポーネントに関するものであり、このことは次に述べる他の推定アルゴリズムにおいても同様である。
動き量計算部124において、それら係数値総和の比
speed=sum1LH/sum1HL
が算出される(step203)。sum1LHは櫛型の横方向エッジ量の増加に比例して増加するのに対し、sum1HLは被写体の左右の動きによっては殆ど変化しない。したがって、speedの値は動き量の推定値として用いることができる。
もう1つの推定アルゴリズムを図16を援用して説明する。係数値和算出部123により、1LHサブバンド係数の絶対値の総和sum1LHと2LHサブバンド係数の絶対値の総和sum2LHが計算される(step211,212)。そして、動き量計算部124で、それら係数値総和の比
speed=sum1LH/sum2LH
が求められる(step213)。sum1LHは櫛型の横方向エッジ量の増加に比例して増加する。これに対し、2LHサブバンドは横方向エッジ成分であるが、1LHサブバンドより解像度が1レベル低いため1画素単位の櫛型の横方向エッジの影響はほとんどないため、sum2LHは櫛型の横方向エッジ量が増加しても変化しない。したがって、speedの値はフレームの動き量の推定値として用いることができる。
もう1つの推定アルゴリズムを図17を援用して説明する。係数値和算出部123により、1LHサブバンド係数の絶対値の総和sum1LH、1HLサブバンド係数の絶対値の総和sum1HL、2LHサブバンド係数の絶対値の総和sum2LH及び2HLサブバンド係数の絶対値の総和sum2HLが計算される(step221〜224)。
そして、動き量計算部124で、係数値和の比
speed=(sum1LH/sum1HL)/(sum2LH/sum2HL)
が求められる(step225)。
1LH,1HLサブバンド係数値和は櫛型の横方向,縦方向のエッジ量を反映するが、櫛型以外の横方向,縦方向のエッジ量も反映する。したがって、画像中に櫛型以外の長い横エッジが存在する場合には、櫛型の横エッジ量が小さいときにもsum1LH/sum1HLが大きな値をとる。一方、1LH,1HLサブバンドより解像度が1レベル低い2LH,2HLサブバンドの係数値和は、櫛型のエッジのような1画素単位のエッジには殆ど影響を受けないが、それ以外の横方向,縦方向のエッジ量を反映するため、画像中に櫛型以外の長い横エッジが存在するとsum1LH/sum2HLは大きな値をとる。したがって、前者の比を後者の比で除したspeedは、櫛型以外の長い横エッジの影響を受けにくく、より高精度な動き量推定値として用いることができる。
なお、動き量推定のための係数値和計算を、フレームの一部のタイル(例えば中心部分の1又は複数タイル)のみを対象として行うことも可能である。このようにすれば、フレーム全体を処理対象とした場合に比べ動き量推定のための処理時間を短縮できる。
以下、係数補正部110によるタイル境界歪み抑制のための係数補正処理に関して詳細に説明する。
ここに示す実施例においては、係数補正部110は、タイル境界歪みの発生に大きく影響するタイル境界に隣接するハイパス係数(H2)については、常に補正の対象として係数補正処理を行う。しかし、タイル境界に隣接しないタイル境界近傍のハイパス係数(H3)については、タイル境界に隣接するハイパス係数(H2)に比べるとタイル境界歪みの発生に及ぼす影響が小さいため、タイル境界歪み抑制のための係数補正処理に要する時間を削減すべく、量子化ステップ数及びフレームの動き量に応じて適応的に補正の対象から除外する制御を補正制御手段111で行う。
5×3変換の場合、ハイパス係数(H3)の補正は一律に値を0にするだけであるから、この補正自体は比較的短時間で行うことができる。しかし、係数を補正したときには必ずクリッピング処理も行う必要がある。つまり、係数補正の処理にはクリッピング処理も含まれる。このクリッピング処理の時間を含めると、ハイパス係数(H3)の補正のための処理時間はタイル境界に隣接するハイパス係数(H2)の補正処理時間と大きな差はない。したがって、ハイパス係数(H3)を補正対象から除外することによる処理時間の減少は、タイル境界歪み抑制のための係数補正処理を含めた復号処理全体の高速化に大きく寄与する。
図19は、量子化ステップ数(Q)が小さい場合のハイパス係数(H3)の補正前の値、補正後の値及びクリップ値との関係の説明図である。一般に圧縮率が小さいときには量子化ステップ数が小さい。よって、図12は圧縮率が小さい場合の説明図でもある。
図示のように、符号化時の量子化前の係数(H3)の値(図中の原信号)が2Qと3Qの間にあるとき、この係数の復号化時に逆量子化された値(補正前の係数値)は、2Q+(3/8)Qとなる(JPEG2000に規定されたリコンストラクションパラメータを3/8とした場合)。5×3ウェーブレット変換の場合、この係数を補正したとすると、その補正値は一律に0になる。この補正値は、クリッピング処理により、元の係数値が含まれていた量子化区間[2Q〜3Q]の近い側の端に対応するクリップ値に戻される。9×7ウェーブレット変換の場合においても、補正値は0又は0に近い値となるため同様に考えることが可能である。
符号データの圧縮率が小さく、量子化ステップ数Qが十分に小さい場合には、係数(H3)の補正前の値とクリップ値との差[(3/8)Q]は十分に小さい。すなわち、係数(H3)の補正を行った場合との差違はわずかであり、したがって、係数(H3)の補正を行わないことによる影響は小さい。
一方、タイル境界歪みが目立つのはフレームの動き量が小さい場合であり、一般に、フレームの動き量が大きいほどタイル境界歪みは目立ちにくくなる。このことに鑑み、本実施例においては、量子化ステップ数が小さいか否かを判断するための閾値th1を、フレームの動き量が大きいほど増加させるように制御する。例えば、
th1=k×speed
(kは定数、speedはフレームの動き量)
により閾値th1を決定する。そして、ハイパス係数(H3)の量子化ステップ数がth1以下ならばハイパス係数(H3)を補正対象から除外する。したがって、動き量の大きいフレームほど、ハイパス係数(H3)が補正対象から除外される割合は一般に増加する。
なお、フレームの動き量speedを「大」「小」の2段階に判別し、あるいは「大」「中」「小」のような3段階又は4段階以上に判別し、その判別結果を応じて閾値th1を段階的に切り替えるようにしてもよい。かかる態様も本実施例に含まれる。
図22は、本実施例における2次元ウェーブレット変換・逆変換部102及び係数補正部110による処理を説明するためのフローチャートである。この処理は、量子化・逆量子化部103による逆量子化が終わった後に、最も上位のデコンポジションレベル(階層)から実行される。
まず、補正制御手段111において、動き量推定部120により推定されたフレームの動き量speedに基づいて、現在のデコンポジションレベルのHL,LH,HHサブバンド(高周波帯域)のそれぞれについて、量子化ステップ数の判定の閾値th1を決定する(step120)。次に、補正制御手段111において、現在のデコンポジションレベルのHL,LH,HHサブバンドのそれぞれについて、量子化ステップ数と前ステップで決定した閾値th1との比較判定を行い、その結果により各サブバンドに対応したフラグを設定する(step121)。ここでは、量子化ステップ数が閾値th1を超えたサブバンドのフラグのみオン状態に設定するものとする。
係数補正部110において、水平方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界に隣接しないタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含む)が行われる(step122)。この際、補正制御手段111は、step121で設定されたフラグを参照し、ハイパス係数(H3)の属するサブバンドのフラグがオン状態ならば同係数を補正対象から除外しないが(同係数は補正される)。そのフラグがオフ状態ならば同係数を補正対象から除外する(同係数は補正されない)。なお、タイル境界に隣接するハイパス係数(h2)の補正式としては、5×3変換の場合は式(iii)が、9×7変換の場合は式(v)が用いられ、タイル境界近傍のハイパス係数(H3)の補正式として、5×3変換の場合は式(iv)が、9×7変換の場合は式(vi)が用いられることは前述した通りである。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向のウェーブレット逆変換が行われる(step123)。
この水平方向逆変換後の係数に対し、係数補正部110において垂直方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含まない)が行われる(step124)。この際、補正制御手段111は、step121で設定されたフラグを参照し、ハイパス係数(H3)の属するサブバンドのフラグがオン状態ならば同係数を補正対象から除外しないが、そのフラグがオフ状態ならば同係数を補正対象から除外する。
この中間的な係数に対する量子化ステップ数は分からないためクリッピング処理を行うことができない。したがって、2次元ウェーブレット変換・逆変換部102で水平方向のウェーブレット順変換が行われ(step125)、しかる後に係数補正部110でstep124で補正された係数(H2,H3)に対するクリッピング処理が行われる(step126)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向及び垂直方向のウェーブレット逆変換が順に行われ(step127)、1つ下のデコンポジションレベルのLLサブバンド係数が生成される。そして、このデコンポジションレベルの係数について、step120〜step127の処理が繰り返される。デコンポジションレベル1まで同様の処理が行われて画像データが復元されると(step128,NO)、処理は終了する。
なお、5×3変換が用いられた符号データの場合、図22には明示されていないが、デコンポジションレベル1では、step120,121はスキップされ、step122の直前で全てのサブバンドのフラグがオフ状態に設定される。したがって、step122及びstep124において全てのハイパス係数(H3)が補正対象から除外される。
図23〜図30を参照し、2×2にタイリングされた符号データを例に、デコンポジションレベル2,1の係数に対する係数補正処理の内容を具体的に説明する。
図23は、デコンポジションレベル2のインターリーブされた係数配列を示す。まず、水平方向のタイル境界に隣接するハイパス係数(H2)すなわち図24の列Aの係数(2HL,2HH)と、水平方向のタイル境界近傍のハイパス係数(H3)すなわち図24の列Bの係数(2HL,2HH)の補正(クリッピング処理を含む)を行う。ただし、ハイパス係数(H3)については、その量子化ステップ数が閾値th1を越えるときには補正対象から除外される。
次に、デコンポジションレベル2のウェーブレット係数に対し水平方向のウェーブレット逆変換が行われる。図25は、この水平方向の逆変換後の係数配列を示す。
次に、垂直方向のタイル境界に隣接するハイパス係数(H2)すなわち図26の行Cの係数(2H)と、タイル境界近傍のハイパス係数(H3)すなわち図26の行Dの係数(2H)の補正(クリッピング処理を含まない)が行われる。タイル境界近傍係数(H3)については前述のように適応的に補正対象から除外される。
次に、水平方向のウェーブレット順変換を行い、図23に示す係数状態に戻して直前で補正された行C,D(図26参照)の係数(2LH,2HH)のクリッピング処理を行う。
次に、水平方向のウェーブレット逆変換と垂直方向のウェーブレット逆変換を順に行い、図27に示すデコンポジションレベル1の係数を得る。
次に、図28のようにインターリーブした係数に対し、図29に示す列E,Fの係数(HL,HH)の補正とクリッピング処理を行う。列Fの係数については前述のように適応的に補正対象から除外される。ただし、5×3変換の場合は、列Fの係数は常に補正対象から除外される。
水平方向のウェーブレット逆変換を行う。この逆変換後の図30に示す係数配列中の行G,Hの係数を補正する。ただし、行Hの係数は、適応的に補正対象から除外され、また、5×3変換の場合は常に補正対象から除外される。
水平方向のウェーブレット順変換を行い、図28に示す係数状態に戻し、直前で補正された行G,H(図30参照)に対応する係数のクリッピング処理を行う。最後に、水平方向及び垂直方向のウェーブレット逆変換が順に行われ、画像データが生成される。
ここに示す実施例においては、前記実施例1の場合と同様に、タイル境界に隣接するハイパス係数(H2)については常に補正の対象として係数補正処理を行い、タイル境界に隣接しないタイル境界近傍のハイパス係数(H3)については、量子化ステップ数及びフレームの動き量に応じて適応的に補正の対象から除外する制御を行うが、その制御の方法が前記実施例1と異なる。
すなわち、本実施例においては、フレームの動き量が所定の閾値th2を越える場合には、タイル境界近傍のハイパス係数(H3)を常に補正対象から除外する。動き量が閾値th2以下の場合には、ハイパス係数(H3)について、その量子化ステップ数と予めHL,LH,HHサブバンド毎に設定した閾値th1とを比較し、量子化ステップ数が閾値th1以下のときに補正対象から除外する。つまり、タイル境界近傍のハイパス係数(H3)が補正されるのは、その量子化ステップ数が閾値th1を越え、かつ、フレームの動き量が閾値th2以下の場合のみである。
図31は、本実施例における2次元ウェーブレット変換・逆変換部102及び係数補正部110による処理を説明するためのフローチャートである。この処理は、量子化・逆量子化部103による逆量子化が終わった後に、最も上位のデコンポジションレベル(階層)から実行される。
まず、補正制御手段111において、動き量推定部120により推定されたフレームの動き量speedが閾値th2以下のときには(step130,NO)、現在のデコンポジションレベルのHL,LH,HHサブバンド(高周波帯域)のそれぞれについて予め設定された閾値th1と、これらHL,LH,HHサブバンドの量子化ステップ数との比較判定を行い、その結果により各サブバンドに対応したフラグを設定する(step131)。ここでは、量子化ステップ数が閾値th1を超えたサブバンドのフラグのみオン状態に設定するものとする。動き量speedが閾値th2を越えているときには(step130,YES)、それらフラグは全てオフ状態に設定する(step132)。
係数補正部110において、水平方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界に隣接しないタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含む)が行われる(step133)。この際、補正制御手段111は、step131又は132で設定されたフラグを参照し、ハイパス係数(H3)が属するサブバンドのフラグがオン状態ならば同係数を補正対象から除外しないが(同係数は補正される)、そのフラグがオフ状態ならば同係数を補正対象から除外する(同係数は補正されない)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向のウェーブレット逆変換が行われる(step134)。
この水平方向逆変換後の係数に対し、係数補正部110において垂直方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含まない)が行われる(step135)。この際、補正制御手段111は、ハイパス係数(H3)に対応するフラグがオン状態ならば同係数を補正対象から除外しないが、そのフラグがオフ状態ならば補正対象から除外する。
この中間的な係数に対する量子化ステップ数は分からないためクリッピング処理を行うことができないので、2次元ウェーブレット変換・逆変換部102で水平方向のウェーブレット順変換が行われ(step136)、しかる後に係数補正部110でstep135で補正された係数(H2,H3)に対するクリッピング処理が行われる(step137)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向及び垂直方向のウェーブレット逆変換が順に行われ(step138)、1つ下のデコンポジションレベルのLLサブバンド係数が生成される。そして、このデコンポジションレベルの係数について、step130〜step138の処理が繰り返される。デコンポジションレベル1まで同様の処理が行われて画像データが復元されると(step139,NO)、処理は終了する。
なお、5×3変換が用いられた符号データの場合、図31には明示されていないが、デコンポジションレベル1では、step130〜132はスキップされ、step133の直前で全てのサブバンドのフラグはオフ状態に設定される。したがって、step133及びstep135において全てのハイパス係数(H3)が補正対象から除外される。
図20に示すように、符号化時の量子化前の係数(原信号)が0とQの間にあるとき(Qは量子化ステップ数)、この係数は復号化時に0に逆量子化される。圧縮率が大きく量子化ステップ数が大きい場合には、このように0に逆量子化される係数がほとんどである。5×3ウェーブレット変換の場合、タイル境界近傍のハイパス係数(H3)の逆量子化された値つまり補正前の値が0であると、それを補正した値も0となり、そのクリップ値も0となる。つまり、補正を行っても行わなくとも結果は同じとなる。9×7ウェーブレット変換の場合においても、このような係数の値及びその補正値は0又は0に近い値をとり、そのクリップ値は0となることが多い。
このように、タイル境界近傍のハイパス係数(H3)の補正前の値が0の場合は、補正を行いクリッピングした値と補正前の値との差は0であるか、0に近い小さな値になるため、補正を行う必要性がない。これに鑑み、ここに示す実施例においては、係数補正部110の補正制御手段111は、フレームの動き量speedが所定の閾値th2以下の場合に、タイル境界近傍のハイパス係数(H3)について、その補正前の値が0であるか否かを調べ、0であるらばその係数を補正対象から除外する制御を行う。すなわち、ハイパス係数(H3)を、その係数値に応じて適応的に補正対象から除外する制御を行うことにより、タイル境界歪みの抑制効果の低下を避けつつ係数補正処理の効率を向上させるわけである。ただし、フレームの動き量speedが閾値th2を越える場合には、タイル境界歪みは目立ちにくいため、ハイパス係数(H3)はその値にかかわらず全て補正対象から除外する。
図32は、本実施例における2次元ウェーブレット変換・逆変換部102及び係数補正部110の処理例を説明するためのフローチャートである。この処理は、量子化・逆量子化部103による逆量子化が終わった後に、最も上位のデコンポジションレベル(階層)から開始する。
まず、補正制御手段111において、動き量推定部120により推定されたフレームの動き量speedが閾値th2以下のときには(step140,NO)、現在のデコンポジションレベルの水平方向及び垂直方向のタイル境界近傍のハイパス係数(H3)それぞれについて0判定を行い、係数対応のフラグを設定する(step141)。ここでは、係数値(補正前の値)が0でない係数のフラグのみオン状態に設定するものとする。動き量speedが閾値th2を越えているときには(step140,YES)、それらフラグは全てオフ状態に設定する(step142)。
係数補正部110において、水平方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含む)が行われる(step143)。この際、補正制御手段111は、step141又は142で設定されたフラグを参照し、フラグがオン状態のハイパス係数(H3)は補正対象から除外しないが、フラグがオフ状態のハイパス係数(H3)は補正対象から除外する制御を行う。
2次元ウェーブレット変換・逆変換部102により、水平方向のウェーブレット逆変換が行われる(step144)。この水平方向逆変換後に、係数補正部110において垂直方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正が行われる(step145)。この際、補正制御手段111により、ハイパス係数(H3)に関しstep143と同様の制御が行われる。
次に、2次元ウェーブレット変換・逆変換部102で水平方向のウェーブレット順変換が行われ(step146)、係数補正部110でstep145で補正されたハイパス係数(H2,H3)に対するクリッピング処理が行われる(step146)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向及び垂直方向のウェーブレット逆変換が順に行われ(step148)、1つ下のデコンポジションレベルのLLサブバンド係数が生成される。そして、このデコンポジションレベルについて、step140〜step148の処理が繰り返される。デコンポジションレベル1まで同様の処理が行われて画像データが復元されると(step149,NO)、処理は終了する。
5×3ウェーブレット変換が用いられた符号データの場合、図32に明示されていないが、デコンポジションレベル1では、step140〜142はスキップされ、step143の直前で全てのタイル境界近傍のハイパス係数(H3)のフラグはオフ状態に設定される。したがって、step143及びstep145において全てのタイル境界近傍ハイパス係数(H3)が補正対象から除外される。
なお、step143の処理前の係数を保存しておき、step143及びstep145において、動き量speedが閾値th2以下の場合に、補正制御手段111で保存されているハイパス係数(H3)の0判定を行い、その結果によってハイパス係数(H3)を補正対象から除外するか否かの制御を行うようにしてもよい。かかる態様も本実施例に含まれる。
図19に関連して説明したように、タイル境界近傍のハイパス係数(H3)に対する量子化ステップ数が小さい場合には、その補正を省略することが可能である。また、図20に関連して説明したように、ハイパス係数(H3)の補正前の値が0の場合にも、その補正を省略することが可能である。
しかし、ハイパス係数(H3)の補正前の値が0でなく、かつ、その量子化ステップ数が大きい場合には、補正の必要性が高い。例えば、図21に示すように、タイル境界近傍のハイパス係数(H3)の符号化時の量子化前の値(図の原信号)がQと2Qの間にあると、このハイパス係数(H3)は、復号化時にQ+(3/8)Q
の位置に逆量子化される(リコンストラクションパラメータが3/8の場合)。5×3ウェーブレット変換の場合、この係数は0に補正され、次にクリッピングによりQの位置に戻される。量子化ステップ数Qが小さいときには、係数の補正前の値とクリップ値の差(3/8)Qは小さいので、係数の補正を省略し得る。しかし、符号データの圧縮率が大きく、その量子化ステップ数Qが大きいと、補正前の値とクリップ値の差(3/8)Qはかなり大きな値となるため、補正を行わないとタイル境界歪みが目立ってしまう。以上は5×3ウェーブレット変換の場合として説明したが、9×7ウェーブレット変換の場合にも同様のことが言える。
以上に鑑み、ここに述べる実施例に係る係数補正部110においては、係数補正部110は、タイル境界に隣接するハイパス係数(H2)については常に補正の対象とするが、タイル境界に隣接しないタイル境界近傍のハイパス係数(H3)については、その係数値、その量子化ステップ数及びフレームの動き量に応じて適応的に補正対象から除外する。
具体的には、タイル境界近傍のハイパス係数(H3)について、その量子化ステップ数が閾値th1より大きく、かつ、補正前の係数値(逆量子化後の値)が0でないときにのみ補正の対象とし、量子化ステップ数が閾値th1以下であるか、係数値が0のときには補正対象から除外する。そして、フレームの動き量speedが大きいほどタイル境界歪みは目立ちにくいため、動き量speedが大きいほど量子化ステップ数の閾値th1を大きな値に設定する。例えば、前記実施例1と同様に
th1=k×speed
(kは定数、speedはフレームの動き量)
により閾値th1を決定する。なお、動き量speedを2段階又は3段階以上に判別し、その判別結果を応じて閾値th1を段階的に切り替えるようにしてもよい。
図33は、本実施例における2次元ウェーブレット変換・逆変換部102及び係数補正部110による処理を説明するためのフローチャートである。この処理は、量子化・逆量子化部103による逆量子化が終わった後に、最も上位のデコンポジションレベル(階層)から実行される。
まず、補正制御手段111において、動き量推定部120により推定されたフレームの動き量speedに基づいて、現在のデコンポジションレベルのHL,LH,HHサブバンド(高周波帯域)のそれぞれについて、量子化ステップ数の判定の閾値th1を決定する(step150)。
次に、補正制御手段111において、現在のデコンポジションレベルのHL,LH,HHサブバンドのそれぞれについて、量子化ステップ数と前ステップで決定した閾値th1との比較判定を行い、その結果によりタイル境界近傍のハイパス係数(H3)に対応したフラグを設定する(step151)。ここでは、量子化ステップ数が閾値th1以下のサブバンドに属するハイパス係数(H3)のフラグをオン状態に設定するものとする。
次に、補正制御手段111において、現在のデコンポジションレベルの水平方向及び垂直方向のタイル境界近傍のハイパス係数(H3)それぞれについて0判定を行い、値(補正前の値)が0の係数のフラグをオン状態に設定するものとする(step152)。この段階で、量子化ステップ数が閾値th1以下であるハイパス係数(H3)のフラグ、及び、値が0のハイパス係数(H3)のフラグはオン状態となる。量子化ステップ数が閾値th1を越え、かつ、値が0でないハイパス係数(H3)のフラグのみオフ状態となる。
次に係数補正部110において、水平方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含む)が行われる(step153)。この際、補正制御手段111は、各ハイパス係数(H3)のフラグを参照し、フラグがオン状態のハイパス係数(H3)を補正対象から除外する制御を行う。
2次元ウェーブレット変換・逆変換部102により、水平方向のウェーブレット逆変換が行われる(step154)。この水平方向逆変換後に、係数補正部110において垂直方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含まない)が行われる(step155)。この際、補正制御手段111によりハイパス係数(H3)に関しstep153と同様の制御が行われる。
次に、2次元ウェーブレット変換・逆変換部102で水平方向のウェーブレット順変換が行われ(step156)、係数補正部110でstep155で補正されたハイパス係数(H2,H3)に対するクリッピング処理が行われる(step157)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向及び垂直方向のウェーブレット逆変換が順に行われ(step158)、1つ下のデコンポジションレベルのLLサブバンド係数が生成される。そして、このデコンポジションレベルについて、step150〜step158の処理が繰り返される。デコンポジションレベル1まで同様の処理が行われて画像データが復元されると(step159,NO)、処理は終了する。
5×3ウェーブレット変換が用いられた符号データの場合、図33には明示されていないが、デコンポジションレベル1では、step150〜152はスキップされ、step153の直前で、無条件に全てのタイル境界近傍のハイパス係数(H3)のフラグはオン状態に設定される。したがって、step153及びstep155において全てのタイル境界近傍ハイパス係数(H3)が補正対象から除外される。
ここに示す実施例においては、前記実施例4の場合と同様に、タイル境界に隣接するハイパス係数(H2)については常に補正の対象として係数補正処理を行い、タイル境界に隣接しないタイル境界近傍のハイパス係数(H3)については、その値、量子化ステップ数及びフレームの動き量に応じて適応的に補正の対象から除外する制御を行うが、その制御の方法が前記実施例4と異なる。
すなわち、本実施例においては、フレームの動き量が所定の閾値th2以上の場合には、タイル境界近傍のハイパス係数(H3)を常に補正対象から除外する。動き量が閾値th2より小さい場合には、値が0のハイパス係数(H3)を補正対象から除外し、また、量子化ステップ数が所定の閾値th1以下のハイパス係数(H3)を補正対象から除外する。つまり、タイル境界近傍のハイパス係数(H3)が補正されるのは、その値が0でなく、かつ、その量子化ステップ数が閾値th1を越え、かつ、フレームの動き量が閾値th2より小さい場合のみである。
図34は、本実施例における2次元ウェーブレット変換・逆変換部102及び係数補正部110による処理を説明するためのフローチャートである。この処理は、量子化・逆量子化部103による逆量子化が終わった後に、最も上位のデコンポジションレベル(階層)から実行される。
まず、補正制御手段111において、動き量推定部120により推定されたフレームの動き量speedが閾値th2以上ならば(step160,NO)、現在のデコンポジションレベルにおける水平方向及び垂直方向のタイル境界に隣接しないタイル境界近傍のハイパス係数(H3)それぞれに対応したフラグを全てオン状態に設定する(step161)。この場合にはstep162,163はスキップされる。
フレームの動き量speedが閾値th2より小さいときには(step160,YES)、補正制御手段111おいて、現在のデコンポジションレベルのHL,LH,HHサブバンドそれぞれについて、その量子化ステップ数と予め設定された閾値th1との比較を行い、量子化ステップ数が閾値th1以下のサブバンドに属するハイパス係数(H3)のフラグをオン状態に設定する(step162)。次に、補正制御手段111において、現在のデコンポジションレベルの水平方向及び垂直方向のタイル境界近傍のハイパス係数(H3)それぞれについて0判定を行い、値(補正前の値)が0の係数のフラグをオン状態に設定する(step163)。以上のstep162,163により、量子化ステップ数が閾値th1以下であるハイパス係数(H3)のフラグ、及び、値が0のハイパス係数(H3)のフラグはオン状態となる。
step161又はstep163に続いてstep164に進む。このステップで、係数補正部110において、水平方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含む)が行われる。この際、補正制御手段111は、各ハイパス係数(H3)のフラグを参照し、フラグがオン状態のハイパス係数(H3)を補正対象から除外する制御を行う。すなわち、フレームの動き量speedが閾値th2以上の場合には水平方向のタイル境界近傍のハイパス係数(H3)は全て補正対象から除外され、動き量speedが閾値th2より小さい場合には、値が0のハイパス係数(H3)及び量子化ステップ数が閾値th1以下のハイパス係数(H3)が補正対象から除外される。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向のウェーブレット逆変換が行われる(step165)。この水平方向逆変換後に、係数補正部110において垂直方向のタイル境界に隣接するハイパス係数(H2)及びタイル境界近傍のハイパス係数(H3)の補正(クリッピング処理を含まない)が行われる(step166)。この際、補正制御手段111によりハイパス係数(H3)に関しstep164と同様の制御が行われる。
次に、2次元ウェーブレット変換・逆変換部102で水平方向のウェーブレット順変換が行われ(step167)、係数補正部110によりstep166で補正されたハイパス係数(H2,H3)に対するクリッピング処理が行われる(step168)。
次に、2次元ウェーブレット変換・逆変換部102により、水平方向及び垂直方向のウェーブレット逆変換が順に行われ(step169)、1つ下のデコンポジションレベルのLLサブバンド係数が生成される。そして、このデコンポジションレベルについて、step160〜step169の処理が繰り返される。デコンポジションレベル1まで同様の処理が行われて画像データが復元されると(step170,NO)、処理は終了する。
なお、5×3ウェーブレット変換が用いられた符号データの場合、図34には明示されていないが、デコンポジションレベル1では、step160〜163はスキップされ、step164の直前で無条件に全てのタイル境界近傍のハイパス係数(H3)のフラグはオン状態に設定される。したがって、step164及びstep166において全てのタイル境界近傍ハイパス係数(H3)が補正対象から除外される。
ここに示す実施例に係る画像処理装置は、図1に示す補正モード指定部130を備える。係数補正部110は、タイル境界歪み抑制のための補正モードを複数持ち、補正モード指定部130により指定された補正モードを実行する。
補正モード指定部130は、ハードウェア、ファームウェア、ソフトウェア又はその組み合わせとして実現可能である。例えば、本実施例に係る画像処理装置がパソコンや携帯情報端末などのプログラム制御の機器にハードウェアもしくはファームウェア又はプログラムとして組み込まれた場合には、補正モード指定部130はアプリケーションプログラム又はオペレーティングシステムの一部として実現されるのが典型的な形態であろう。そして、ユーザは、モニタ装置の画面を介して対話的に補正モードを指定するのが実際的であろう。そのような例について図35により説明する。
図35に示す例においては、例えばマウスなどのポインティングデバイスを利用して、画面上に表示されているメニュー項目の一つである「ファイル」201を選択すると、そのプルダウンメニュー202が表示される。このプルダウンメニュー202中の「開く」206を選択することによりmotion-JPEG2000の圧縮ファイルを開くことができるが、その前に「プロパティ」203を選択することにより、どのような画質でファイルの内容を表示するか指定することができる。
すなわち、「プロパティ」203を選択すると、そのメニュー204が表示される。このメニュー204の1つの項目として「タイル境界歪み抑制機能」205がある。この「タイル境界歪み抑制機能」205の「無し」ボタンを選択すると、タイル境界歪み抑制のための係数補正を行わない「非補正モード」を指定したことになる。つまり、最も低い画質で表示したいときには「無し」を選択し、その後に「開く」206を選択すればよい。この場合は、指定された圧縮ファイルは、タイル境界歪み抑制のための係数補正処理を行うことなく復号され、その画像が表示されることになる。
一方、タイル境界歪みの目立たない画像として表示したい場合、ユーザは、図示のように「タイル境界歪み抑制機能」205の「有り」ボタンを選択する。この選択によりメニュー204内の、それまで非アクティブな状態であった「高品質モード」ボタンと「高速モード」ボタンがアクティブになり、ユーザはそのどちらかのモードを指定することができる。このような補正モード指定を行った後に、プルダウンメニュー202中の「開く」206を選択し、JPEG2000の圧縮ファイルを指定すると、その指定されたファイルが復号されるが、その際に指定された補正モードによりタイル境界歪み抑制のための係数補正処理が行われる。
すなわち、「高速モード」が指定された場合は、タイル境界に隣接するハイパス係数(H2)のみを対象として係数補正が行われる。この補正モードの処理フローは、図22のstep120,121を省き、step122,124でタイル境界に隣接するハイパス係数(H2)のみ補正する処理フローとなる。
一方、「高品質モード」が指定された場合は、タイル境界に隣接するハイパス係数(H2)及びタイル境界に隣接しない境界近傍のハイパス係数(H3)に対しタイル境界歪み抑制のための補正が行われる。例えば、ハイパス係数(H2)のみならずハイパス係数(H3)も常に補正される(この場合、図22中のstep120,121を省き、step122,124で無条件にハイパス係数(H3)の補正も行うような処理フローとなる)。
なお、「高品質モード」が指定された場合に、図22、図31、図32、図33又は図34のフローチャートに示すように、タイル境界に隣接しない境界近傍のハイパス係数(H3)に関し、量子化ステップ数、補正前の係数値、又は、量子化ステップ数及び係数値とフレームの動き量に応じて適応的に補正対象から除外する制御を行うような処理とすることも可能であり、かかる態様も本実施例に含まれる。
これと逆に、「高速モード」が指定された場合に、図22,図31、図32、図33又は図34のフローチャートに示すような係数補正処理を行い、「高品質モード」が指定された場合に、タイル境界に隣接しない境界近傍のハイパス係数(H3)を常に補正する係数補正処理を行うようにすることも可能であり、かかる態様も本実施例に含まれる。
また、「高品質モード」「高速モード」に加えて「中品質モード」を指定できるようにし、「高品質モード」が指定された場合にタイル境界のハイパス係数(H2)及び境界近傍のハイパス係数(H3)の補正を行い、「中品質モード」が指定された場合に図22,図31、図32、図33又は図34のフローチャートに示すような係数補正を行い、「高速モード」が指定された場合にタイル境界に隣接したハイパス係数(H2)のみを対象とした係数補正処理を行うことも可能である。かかる態様も本実施例に含まれる。
なお、図35に示す例では、ファイルを開く際のタイル境界歪み抑制機能をプルダウンメニューの形で指定するようにしているが、タイル境界歪み抑制機能を、復号する階層数、コンポーネント、位置(タイル、プレシンクト)などの、ファイルを開く際の各種パラメータの一つとしてタブ形式で表示し、タブを選択することでタイル境界歪み抑制のための補正モードの指定を行うようにすることも可能である。かかる態様も本実施例に含まれる。
以上の説明においては、符号データの全階層について復号処理を行うものとしたが、モニタ画面の解像度などの関係から、例えばデコンポジションレベル数が5の場合にデコンポジションレベル2まで復号する、というように最下位の階層より上の階層まで復号することも可能であり、例えば、メニュー204などで「復号する階層数(デコンポジションレベル数)」を指定できるようにしてもよい。そして、階層数を指定した場合には、最上位の階層から指定階層数だけ復号処理を行い、その復号階層に対してのみ必要な係数補正を行うことになる。この場合、図22のstep128、図31のstep139、図32のstep149、図33のstep159、又は、図34のstep170において、指定された最も下の階層まで処理が終わったか判断することになる。図示しないが、前記各実施例において、このような復号階層数を指定可能とした態様も本発明に包含されることは明らかである。
また、復号される階層中の一部階層に対してのみ、タイル境界歪み抑制のための係数補正を行わせることも可能である。この場合、図示しないが、前記各実施例のフローチャートの処理ループ内で、係数補正の必要な階層であるか否かを判定し、係数補正の必要な階層に対してのみ係数補正を実行し、それ以外の階層では2次元ウェーブレット逆変換のみを行わせればよいことは明らかである。このような一部の階層に対してのみ係数補正を行う態様も本発明に含まれる。
また、前記実施例6のように補正モードを指定できる場合に、指定された補正モードに応じて、復号される全ての階層に対し、あるいは、復号される一部の階層のみに対し、タイル境界歪み抑制のための係数補正を行わせることも可能である。復号される一部の階層のみに対し係数補正を行うならば、復号される全階層に対し係数補正を行う場合に比べ処理時間を短縮できる。かかる態様も本発明に含まれる。
以上、本発明に係る画像処理装置について説明したが、その処理内容の説明は、そのまま本発明に係る画像処理方法の処理の手順及び内容の説明でもあることは明らかである。よって、画像処理方法としての説明は繰り返さない。
また、以上においてはmotion-JPEG2000の動画像を扱う場合を例にして本発明を説明した。しかし、フレーム画像を重複しないタイル(ブロック)に分割し、タイル単位でウェーブレット変換その他の周波数変換を行い、その際にタイル境界部の不足する画素値又は係数値を、隣接タイルから補うのではなく、同じタイル内からミラリング等の手法で補うような、JPEG2000以外の符号化方式により符号化した動画像を扱う場合にも、本発明を適用し得ることは明らかである。
本発明の実施の形態を説明するためのブロック図である。
本発明に係る画像処理装置をコンピュータを利用して実現する形態を説明するためのブロック図である。
原画像と座標系を示す図である。
図3の原画像に対し垂直方向のウェーブレット変換を行った後の係数配列を示す図である。
図4の係数に対し水平方向のウェーブレット変換を行った後の係数配列を示す図である。
図5の係数をデインターリーブした係数配列を示す図である。
2回目の2次元ウェーブレット変換を行った後のデインターリーブした係数配列を示す図である。
ミラリングの説明図である。
タイル境界歪み抑制のために補正される係数の位置関係を模式的に示す図である。
タイル境界歪み抑制のために補正される水平方向のタイル境界隣接係数及びタイル境界近傍係数を示す図である。
タイル境界歪み抑制のために補正される垂直方向のタイル境界隣接係数及びタイル境界近傍係数を示す図である。
インターレース画像における被写体の動きによる櫛型の説明図である。
動き量と櫛型の横方向エッジ量の関係を示す図である。
動き量推定部の一例を示すブロック図である。
動き量推定アルゴリズムの一例を示すフローチャートである。
動き量推定アルゴリズムの別の例を示すフローチャートである。
動き量推定アルゴリズムの別の例を示すフローチャートである。
動き量推定部の別の例を示すブロック図である。
タイル境界近傍係数の補正の要否の説明のための図である。
タイル境界近傍係数の補正の要否の説明のための図である。
タイル境界近傍係数の補正の要否の説明のための図である。
実施例1における係数補正に関連した処理内容を説明するためのフローチャートである。
デコンポジションレベル2のインターリーブ状態の係数配列を示す図である。
デコンポジションレベル2における水平方向の係数補正に係る係数を示す図である。
上記係数補正後の係数を水平方向にウェーブレット逆変換した後の係数配列を示す図である。
図25の係数に対する垂直方向の係数補正に係る係数を示す図である。
デコンポジションレベル1のデインターリーブ状態の係数配列を示す図である。
デコンポジションレベル1のインターリーブ状態の係数配列を示す図である。
デコンポジションレベル1における水平方向の係数補正に係る係数を示す図である。
上記水平方向の係数補正後の係数を水平方向にウェーブレット逆変換した後の係数に対する係数補正に係る係数を示す図である。
実施例2における係数補正に関連した処理内容を説明するためのフローチャートである。
実施例3における係数補正に関連した処理内容を説明するためのフローチャートである。
実施例4における係数補正に関連した処理内容を説明するためのフローチャートである。
実施例5における係数補正に関連した処理内容を説明するためのフローチャートである。
実施例6において画面上で補正モードを指定する方法の一例を説明するための図である。
符号の説明
101 色変換・逆変換部
102 2次元ウェーブレット変換・逆変換部
103 量子化・逆量子化部
104 エントロピー符号化・復号化部
105 符号形成・タグ処理部
110 係数補正部
111 補正制御手段
120 動き量推定部
130 補正モード指定部