(57)【要約】【課題】符号が破棄されたビットプレーン数（トランケート数）の算出ができない場合においても、係数のクリッピング処理を可能にする。【解決手段】JPEG2000の符号データの復号過程において、ウェーブレッ係数に対するデタイルのための係数補正が係数補正部１１０で行われる。その補正値が、補正前の値が含まれていた量子化区間からはずれた場合には、クリッピング処理部１１で補正値のクリッピング処理が行われる。その量子化区間は量子化決定部１１２で決定されるが、その決定に必要なトランケート数がトランケート数取得部１１３で算出されない場合には、トランケート数が推定され、それを用いて量子化区間が決定される。【選択図】  図５
2005311785.tif 000002
【特許請求の範囲】
【請求項１】
画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理装置であって、
周波数変換係数の補正後の値が、その補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理手段と、
前記クリッピング処理に必要な、周波数変換係数の補正前の値が含まれる量子化区間を決定する量子化区間決定手段と、
前記量子化区間決定手段が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得手段とを有し、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、他の周波数変換係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理装置。
【請求項２】
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数の近傍の周波数変換周波数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
符号データは、画像の周波数変換係数が所定のブロック単位でビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数が属するブロックの近傍ブロックの周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
符号データは、画像の周波数変換係数が周波数帯域別にビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ周波数帯域の他の周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
符号データは、画像の周波数変換係数が周波数帯域別に所定のブロック単位でビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ周波数帯域の、当該周波数変換係数の属するブロックの近傍ブロックに属する周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
符号データは、画像の複数階層の周波数変換係数が階層別にビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ階層の、当該周波数変換係数の近傍の周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
符号データは、画像の複数階層の周波数変換係数が階層別及び周波数帯域別にビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数の属する階層の近傍階層の、当該周波数変換係数と同種の周波数帯域に属する周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項８】
符号データは、画像の周波数変換係数がコンポーネント別にビットプレーン符号化されたものであり、
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と別のコンポーネントの周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、複数の推定方法を所定の順番で順に試みることにより、当該周波数係数に関するトランケート数を推定することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
JPEG2000の符号データを復号し、復号過程でウェーブレット係数の補正を行う画像処理装置であって、
ウェーブレット係数の補正後の値が、その補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理手段と、
前記クリッピング処理に必要な、ウェーブレット係数の補正前の値が含まれる量子化区間を決定する量子化区間決定手段と、
前記量子化区間決定手段が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得手段とを有し、
前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、他のウェーブレット係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理装置。
【請求項１１】
復号過程でのウェーブレット係数の補正は、タイル境界歪みの抑制のためのタイル境界付近のハイパス係数に対する補正であることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数と同じサブバンド内の、当該ウェーブレット係数が属するコードブロックの近傍のコードブロックのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１３】
前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数の属するサブバンドの近傍サブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１４】
前記量子化区間決定手段は、ＨＨサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＬＨサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記量子化区間決定手段は、ＬＨサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＨＬサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１３に記載の画像処理装置。
【請求項１６】
前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数の属する階層の近傍階層の、当該ウェーブレット係数の属するサブバンドと同種のサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１７】
前記量子化区間決定手段は、ＨＬサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ＨＬサブバンドが属する階層の上の階層のＨＨサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１８】
前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数と別のコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１９】
前記量子化区間決定手段は、ＣｂもしくはＵコンポーネントのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＣｒもしくはＶコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用い、ＣｒもしくはＶコンポーネントのウェーブレット係数に関するトランケート数も算出されないならば、Ｙコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とする請求項１８に記載の画像処理装置。
【請求項２０】
画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理方法であって、
周波数変換係数の補正後の値が、当該周波数変換係数の補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理工程と、
前記クリッピング処理に必要な、周波数変換係数の補正前の値が含まれる量子化区間を決定する量子化区間決定工程と、
前記量子化区間決定工程が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得工程とを有し、
前記量子化区間決定工程は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得工程で算出されないときに、他の周波数変換係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理方法。
【請求項２１】
請求項１乃至１９のいずれか１項に記載の画像処理装置の少なくともクリッピング処理手段、量子化区間決定手段及びトランケート数取得手段としてコンピュータを機能させるプログラム。
【請求項２２】
請求項２１に記載のプログラムが記録されたコンピュータが読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号データを復号する画像処理装置及び方法に係り、特に、画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄（トランケーション）が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理装置及び方法に関する。
【背景技術】
【０００２】
近年、画像入出力技術の進歩により、画像に対する高精細化の流れはとどまるところを知らず、高精細画像を容易に圧縮・伸長できる技術への要求も強いものがある。
【０００３】
こうした要求を満たす圧縮・伸長方式の一つとして、高精細画像を小さい単位に分割して処理でき、高圧縮率でも高画質な画像を復号可能なJPEG2000がある。JPEG2000においては、画像を矩形のブロック(タイル)に分割することにより、少ないメモリ環境下で圧縮伸張処理を行うことが可能である。すなわち、個々のタイルが圧縮伸長プロセスを実行する際の基本単位となり、圧縮伸長動作はタイル毎に独立に行うことができる。
【０００４】
このような分割処理は、タイリングと呼ばれ、省メモリ化・高速化に有効な手法であるが、圧縮率の高い条件で圧縮伸長処理を行った場合、伸張後の画像においてタイルの境界が不連続となるという問題がある。
【０００５】
このタイル境界歪みは、見かけ上、離散コサイン変換（ＤＣＴ）におけるブロック歪みに類似したものである。このＤＣＴのブロック歪みの除去に関しては、従来、
（１）ブロック分割された画像のＤＣＴ成分からブロック境界を抽出し、ブロック境界に垂直な一次元ローパスフィルタをかける方法（特許文献１参照）、
（２）ブロック境界の方向とエッジの方向との関係からブロック歪みの有無を判定し、ブロック歪みがある画素に対してローパスフィルタをかける方法（特許文献２参照）、
（３）ブロック歪みを検出し、検出されたブロック歪みに対しローパスフィルタをかける方法（特許文献３参照）、などが知られている。
【０００６】
これらはいずれも、ブロック境界の方向とエッジ度に応じて画素値に適応的なローパスフィルタをかけることにより、ブロック境界の歪みは平滑化しつつブロック境界に位置する真のエッジへの平滑化は避けることを意図している。しかし、こうした手法は、それがいかに適応的であっても、「歪み自体の平滑化(予定した作用)」と「真のエッジの平滑化(予定しない副作用)」のトレードオフにさいなまれることになる。
【０００７】
これに鑑み、本出願人は、JPEG2000のようなウェーブレット変換を用いる圧縮伸長システムにおいて、例えば、隣接するタイルのローパス係数とハイパス係数を利用して、タイル境界に隣接するハイパス係数の補正処理（デタイリング）を行うことによって、タイル境界歪みを除去する方法を提案している（特許文献４参照）。これは、ウェーブレット係数空間での画像復元に類する手法である。
【０００８】
【特許文献１】特開平05-316361号公報
【特許文献２】特許第2839987号公報
【特許文献３】特開平09-307855号公報
【特許文献４】特開2001−257596号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前記特許文献４に記載の方法のようなウェーブレット係数空間（より一般的には周波数変換係数空間）でのデタイル処理は有効な手法であるが、係数の補正後の値が当該係数が本来含まれるべき量子化区間から外れることにより画質劣化を招くおそれがある。このことはデタイルのための補正に限られず、係数空間での各種補正を行う場合においても同様の問題が生じる可能性がある。
【００１０】
したがって、係数の補正を行い、その補正値が補正前の値が含まれていた量子化区間から外れた場合には、その補正値を量子化区間の端（補正値に近い側）に修正するクリッピング処理を行うことが望まれる。しかし、このようなクリッピング処理に関する記載は前記特許文献４にはみられない。
【００１１】
また、クリッピング処理を行うためには係数の補正前の値が含まれていた量子化区間を決定しなければならないが、量子化区間を決定するための情報を得られないことがある。これは、圧縮率が高い場合に起きやすい。これについて以下に説明する。
【００１２】
JPEG2000には符号の破棄（トランケーション）を行うポスト量子化の機能がある。ポスト量子化は量子化テーブルを用いて実行される。これについて図１により説明する。
【００１３】
図１において、（ａ）はポスト量子化前の符号を模式的に示している。本例では３つのコンポーネント（色成分）C0,C1,C2があり、ここでは、その１つのコンポーネントC0を示している。また、階層数(デコンポジションレベル数）は３であり、３ＬＬ，３ＨＬ，３ＬＨ，３ＨＨ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨのサブバンドからなり、深さ方向に８つのビットプレーンで構成された符号の例である。
【００１４】
（ｂ）はポスト量子化のための量子化テーブルの一例である。各コンポーネント、各サブバンド毎に符号が破棄されるビットプレーンの枚数（トランケート数）が記述されている。
【００１５】
（ｃ）はコンポーネントC0のトランケーション例である。コンポーネントC0に関しては、３ＬＬサブバンドはトランケート数は１であるので、８枚のビットプレーン中、最下位の１枚が破棄される。１ＨＨサブバンドについては、トランケート数は７であるので、８枚のビットプレーンのうち下位の７枚が破棄される。このようにして、すべてのサブバンドについて、量子化テーブルの値に従って符号を破棄した後の符号が（ｄ）に模式的に示されている。
【００１６】
図２は、このようなポスト量子化のトランケート数（符号が破棄されたビットプレーン数）と量子化区間の関係を示している。１枚のビットプレーンの破棄は、係数を２で除した（１ビット分シフトした）ことに相当する。図示のように、トランケート数ｍの場合のポスト量子化の量子化区間の大きさは２^m（２のｍ乗）、トランケート数ｎの場合の量子化区間の大きさは２^nであり、トランケート数が大きいほど量子化区間が広くなる。このように、トランケート数が分かれば量子化区間の大きさが分かるため、係数の値の含まれている量子化区間を決定することができる。
【００１７】
次に、トランケート数の算出方法について説明する。図３は、その説明図である。図３の上段の図に示すように、トランケーションを行う前の総ビットプレーン数は、元データのビットプレーン数（桁数）と、ウェーブレットで増えるビットプレーン数（桁数）と、色変換で増えるビットプレー数（桁数）の和である。一方、下段の図に示すように、ゼロビットプレーン数（コーディングされなかったビットプレーン数）と、コーディングされたビットプレーン数と、トランケート（符号破棄）されたビットプレーン数の和が総ビットプレーン数である。このことから、トランケート数は、総ビットプレーン数からゼロビットプレーン数とコーディングされたビットプレーン数を差し引くことにより求まることが分かる。そして、ゼロビットプレーン数は、JPEG2000の符号データを構成するパケットのヘッダ（パケットヘッダ）に記述されている。また、パケットヘッダに記述されているコーディングパス数から、コーディングされたビットプレーン数を計算することができる。したがって、通常は、JPEG2000のデコーダのエントロピー復号化部において、トランケート数を算出可能である。
【００１８】
ところが、高い圧縮率の場合には、パケットヘッダまでも破棄されることがあり、ゼロビットプレーン数、コーディングパス数を知ることができないばかりか、総ビットプレーン数も算出できないため、トランケート数の算出が不可能となる。
【００１９】
クリッピング処理は、図４に示すように、補正前の係数値が含まれていた量子化区間から、補正後の係数値が外れたた場合に、補正値を当該量子化区間の近い側の端（クリップ値）に修正する処理である。
【００２０】
図４の（ａ）と（ｂ）を比較すれば明らかなように、たとえ原信号と係数の補正値が同じ値であっても、量子化区間が狭い場合と広い場合とでクリップ値は異なる。したがって、量子化区間を決定するための情報（トランケート数）が得られず量子化区間を決定できないとすると、適正なクリッピング処理を行うことはできない。また、不適切な量子化区間を用いてクリッピング処理を行ったのでは、画像品質の悪化をもたらす。
【００２１】
本発明は、以上に鑑みなされたもので、JPEG2000の符号データのような、画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄（トランケーション）が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理装置又は方法において、周波数変換係数の補正前の値が含まれている量子化区間を決定するために必要な情報である、符号が破棄されたビットプレーン数（トランケート数）を算出できない場合にも、周波数変換係数の補正値に対するクリッピング処理を適切に行い得るようにすることを目的とする。
【課題を解決するための手段】
【００２２】
請求項１の発明は、画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理装置であって、周波数変換係数の補正後の値が、その補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理手段と、前記クリッピング処理に必要な、周波数変換係数の補正前の値が含まれる量子化区間を決定する量子化区間決定手段と、前記量子化区間決定手段が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得手段とを有し、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、他の周波数変換係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理装置である。
【００２３】
請求項２の発明は、請求項１の発明による画像処理装置において、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数の近傍の周波数変換周波数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２４】
請求項３の発明は、請求項１の発明による画像処理装置において、符号データは画像の周波数変換係数が所定のブロック単位でビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数が属するブロックの近傍ブロックの周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２５】
請求項４の発明は、請求項１の発明による画像処理装置において、符号データは画像の周波数変換係数が周波数帯域別にビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ周波数帯域の他の周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２６】
請求項５の発明は、請求項１の発明による画像処理装置において、符号データは画像の周波数変換係数が周波数帯域別に所定のブロック単位でビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ周波数帯域の、当該周波数変換係数の属するブロックの近傍ブロックに属する周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２７】
請求項６の発明は、請求項１の発明による画像処理装置において、符号データは画像の複数階層の周波数変換係数が階層別にビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と同じ階層の、当該周波数変換係数の近傍の周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２８】
請求項７の発明は、請求項１の発明による画像処理装置において、符号データは画像の複数階層の周波数変換係数が階層別及び周波数帯域別にビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数の属する階層の近傍階層の、当該周波数変換係数と同種の周波数帯域に属する周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００２９】
請求項８の発明は、請求項１の発明による画像処理装置において、符号データは画像の周波数変換係数がコンポーネント別にビットプレーン符号化されたものであり、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該周波数変換係数と別のコンポーネントの周波数変換係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３０】
請求項９の発明は、請求項１の発明による画像処理装置において、前記量子化区間決定手段は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、複数の推定方法を所定の順番で順に試みることにより、当該周波数係数に関するトランケート数を推定することを特徴とするものである。
【００３１】
請求項１０の発明は、JPEG2000の符号データを復号し、復号過程でウェーブレット係数の補正を行う画像処理装置であって、ウェーブレット係数の補正後の値が、その補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理手段と、前記クリッピング処理に必要な、ウェーブレット係数の補正前の値が含まれる量子化区間を決定する量子化区間決定手段と、前記量子化区間決定手段が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得手段とを有し、前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、他のウェーブレット係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理装置である。
【００３２】
請求項１１の発明は、請求項１０の発明による画像処理装置において、復号過程でのウェーブレット係数の補正は、タイル境界歪みの抑制のためのタイル境界付近のハイパス係数に対する補正であることを特徴とするものである。
【００３３】
請求項１２の発明は、請求項１０又は１１の発明による画像処理装置において、前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数と同じサブバンド内の、当該ウェーブレット係数が属するコードブロックの近傍のコードブロックのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３４】
請求項１３の発明は、請求項１０又は１１の発明による画像処理装置において、前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数の属するサブバンドの近傍サブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３５】
請求項１４の発明は、請求項１３の発明による画像処理装置において、前記量子化区間決定手段は、ＨＨサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＬＨサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３６】
請求項１５の発明は、請求項１３の発明による画像処理装置において、前記量子化区間決定手段は、ＬＨサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＨＬサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３７】
請求項１６の発明は、請求項１０又は１１の発明による画像処理装置において、前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数の属する階層の近傍階層の、当該ウェーブレット係数の属するサブバンドと同種のサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３８】
請求項１７の発明は、請求項１０又は１１の発明による画像処理装置において、前記量子化区間決定手段は、ＨＬサブバンドのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ＨＬサブバンドの属する階層の上の階層のＨＨサブバンドのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００３９】
請求項１８の発明は、請求項１０又は１１の発明による画像処理装置において、前記量子化区間決定手段は、ウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、当該ウェーブレット係数と別のコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００４０】
請求項１９の発明は、請求項１８の発明による画像処理装置において、前記量子化区間決定手段は、ＣｂもしくはＵコンポーネントのウェーブレット係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得手段で算出されないときに、ＣｒもしくはＶコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用い、ＣｒもしくはＶコンポーネントのウェーブレット係数に関するトランケート数も算出されないならば、Ｙコンポーネントのウェーブレット係数に関し算出されたトランケート数を推定トランケート数として用いることを特徴とするものである。
【００４１】
請求項２０の発明は、画像の周波数変換係数がビットプレーン符号化された符号データであって、符号破棄が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理方法であって、周波数変換係数の補正後の値が、当該周波数変換係数の補正前の値が含まれる量子化区間から外れたときに、当該補正後の値を当該量子化区間の端に修正するクリッピング処理を行うクリッピング処理工程と、周波数変換係数の補正前の値が含まれる量子化区間を決定する量子化区間決定工程と、前記量子化区間決定工程が量子化区間を決定するための情報として、符号が破棄されたビットプレーン数（以下、トランケート数）を符号データに基づいて算出するトランケート数取得工程とを有し、前記量子化区間決定工程は、周波数変換係数の補正前の値が含まれる量子化区間を決定するためのトランケート数が前記トランケート数取得工程で算出されないときに、他の周波数変換係数に関し算出されたトランケート数から推定したトランケート数を用いて当該量子化区間を決定することを特徴とする画像処理方法である。
【００４２】
請求項２１の発明は、請求項１乃至１９のいずれか１項の発明による画像処理装置の少なくともクリッピング処理手段、量子化区間決定手段及びトランケート数取得手段としてコンピュータを機能させるプログラムである。
【００４３】
請求項２２の発明は、請求項２１の発明によるプログラムが記録されたコンピュータが読み取り可能な情報記録媒体である。
【発明の効果】
【００４４】
請求項１乃至２０の発明によれば、JPEG2000の符号データなどを復号し、復号過程で周波数変換係数の補正を行う画像処理装置又は方法において、量子化区間の決定のために必要なトランケート数が算出できないような場合であっても、推定したトランケート数を用いて量子化区間を決定し、補正された係数に対するクリッピング処理を適切に行うことができるため、係数補正の副作用による画像品質の劣化を防止し、かつ、不適切なクリッピング処理による画像品質の劣化を回避することができる、等々の大きな効果を得られる。また、請求項２１，２２の発明によれば、コンピュータを利用して容易に請求項１乃至１９の発明を実施することができる。
【発明を実施するための最良の形態】
【００４５】
本発明に係る画像処理装置は、符号データの復号のための手段に加え、復号過程で周波数変換係数に対する補正を行う手段と、係数の補正値が、補正前の係数値が含まれていた量子化区間から外れた場合にクリッピング処理を行う手段と、クリッピング処理に必要な、係数の補正前の値が含まれていた量子化区間を決定するための手段と、量子化区間を決定するための情報であるトランケート数を符号データに基づいて算出する手段とを備えることを特徴とする。また、量子化区間を決定する手段は、必要なトランケート数が算出されない場合にはトランケート数の推定を行い、推定したトランケート数を用いて量子化区間を決定する。このトランケート数の推定の方法は一種類に限らず、複数種類の方法を所定の優先順に従って順に適用することができる。また、係数補正の内容は例えばタイル（ブロック）境界歪みを抑制するための補正であるが、これのみに限定されるものではなく、様々な画質補正などを目的としたものでもよい。
【００４６】
上に述べたような画像処理装置における処理の流れは、本発明に係る画像処理方法の処理の流れに相当する。上に述べた係数補正の手段、クリッピング処理の手段、量子化区間を決定する手段、トランケート数を取得する手段による処理は、本発明に係る画像処理方法に含まれる処理工程に対応する。
【００４７】
このような本発明に係る画像処理装置の各手段又は本発明に係る画像処理方法の各処理工程は、ハードウェア、ファームウェア、ソフトウェア又はそれらの組み合わせのいずれによっても実現し得るものである。
【００４８】
図５は、本発明の実施の形態を説明するためのブロック図である。この実施の形態に係る画像処理装置は、JPEG2000の符号データの復号を行うもので、タグ処理部１０１、エントロピー復号化部１０２、逆量子化部１０３、ウェーブレット変換部１０４、色空間逆変換部１０５、及び、ＤＣレベル逆シフト部１０６を備える。これら各部は、JPEG2000のデコーダが一般的に備える手段である。
【００４９】
この画像処理装置は、さらに前記係数補正手段である係数補正部１１０、前記クリッピング処理手段であるクリッピング処理部１１１、前記量子化区間決定手段である量子化区間決定部１１２、及び、前記トランケート数取得手段であるトランケート数取得部１１３を備える。なお、トランケート数取得部１１３に相当する手段は、JPEG2000のデコーダのエントロピー復号化部にもともと備わっているものである。この実施の形態においては、ウェーブレット変換部１０４は、クリッピング処理の関連で、逆変換機能のみならず順変換機能も有する。
【００５０】
このような画像処理装置は、例えばパソコンなどの汎用コンピュータや各種機器に組み込まれたマイクロコンピュータなどのコンピュータを利用して実現することも可能である。このような実現形態について図６により簡単に説明する。
【００５１】
図６において、２０１は中央演算処理ユニット（ＣＰＵ）、２０２はメインメモリ、２０３はハードディスク装置、２０４はモニタ、２０５はバスである。このようなコンピュータを画像処理装置を構成する各手段（１０１〜１１３）として機能させるための１以上のプログラムは、例えばハードディスク装置２０３よりメインメモリ２０２にロードされ、ＣＰＵ２０１により実行されることになる。
【００５２】
処理は例えば次のような流れで行われる。
（１）ハードディスク装置２０３に記憶されているJPEG2000の符号データが、ＣＰＵ２０１からの命令によってメインメモリ２０２に読み込まれる。
（２）ＣＰＵ２０１は、メインメモリ２０２上の符号データを読み込んで復号処理を行い、その処理過程で、トランケート数の算出、トランケート数に基づく量子化区間の決定（トランケート数が算出不可能な場合は、利用可能なトランケート数を利用した量子化区間の推定）、各コンポーネントの各サブバンド係数に対する補正処理、その補正値に対する必要なクリッピング処理を行う。
（３）ＣＰＵ２０１は、復号された画像データをメインメモリ２０２上の別の領域に書き込む。
（４）そして、例えば、ＣＰＵ２０１からの命令によって、復号画像データがモニタ２０４に画像として表示される。
【００５３】
このようにコンピュータを本発明の画像処理装置の各手段として機能させるプログラム（アプリケーションプログラム、デバイスドライバなど）、及び、同プログラムが記録された磁気ディスク、光ディスク、光磁気ディスク、半導体記憶素子など、コンピュータが読み取り可能な各種情報記録（記憶）媒体も本発明に包含されるものである。
【００５４】
なお、コンピュータにJPEG2000のハードウェアのコーデック（エンコーダ・デコーダ）が備えられている場合には、画像処理装置の係数補正部１１０、クリッピング処理部１１１及び量子化区間決定部１１２をプログラムによって実現し、それ以外の部分の機能はコーデックの機能を利用するような形態をとることも可能である。かかる実現形態も本発明に包含される。
【００５５】
ここで、JPEG2000のアルゴリズムの概要を説明する。JPEG2000の符号化（圧縮）処理の流れは次の通りである。画像はタイルと呼ばれる重複しない矩形のブロックに分割され、各タイル毎に処理が行われる。各タイルの画像はＤＣレベルシフトと色空間変換（コンポーネント変換）が施された後、周波数変換として２次元のウェーブレット変換（離散ウェーブレット変換）を施され、複数の周波数帯域（サブバンド）に分解される。JPEG2000では、ウェーブレット変換として可逆の５×３変換又は非可逆の９×７変換が用いられる。９×７変換が用いられる場合には、各サブバンド毎に係数の線形量子化が施される。次に、各サブバンドの係数がビットプレーンに分割され、ビットプレーン単位でのエントロピー符号化（ビットプレーン符号化）が行われる（より正確には書くビットプレーは３つのサブビットプレーンに分割されて符号化される）。次の符号形成の段階において、生成されたエントロピー符号のうちの必要な符号をまとめてパケットが生成され、パケットを所要の順序（プログレッション・オーダー）に従って並べるとともに必要なタグ及びタグ情報が付加することにより、１本のコードストリーム（HPEG2000の符号データ）が生成される。
【００５６】
エントロピー符号化及び符号形成について、図７〜図９によりさらに説明する。図７は、画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す説明図である。タイル分割数＝１の場合、画像とタイルは一致する。プリシンクトとは、サブバンドを（ユーザが指定可能なサイズの）矩形に分割した単位で、大まかには画像中の場所（Position）を表すものであり、インプリメンテーションでメモリを効率的に使うために導入されたものである。プリシンクトは、ＨＬ，ＬＨ，ＨＨの３つのサブバンドにおいて空間的に一致している。つまり、プリシンクトは３つで１つのまとまりを成すものである。ただし、ＬＬサブバンドを分割したプリシンクトは１つで１つのまとまりを成す。このようなプリシンクトは、サブバンドと同じサイズにすることも可能である。プリシンクトを分割した（ユーザが指定可能なサイズの）矩形がコードブロックであり、エントロピー符号化の基本単位となる。
【００５７】
プリシンクトに含まれる全てのコードブロックから、符号の一部を取り出して集めたもの（例えば、全てのコードブロックの最上位ビットから３枚目までのビットプレーンの符号を集めたもの）がパケットである。パケットは符号とヘッダ（パケットヘッダ）からなる。全てのプリシンクト（すなわち、全てのコードブロック、全てのサブバンド）のパケットを集めると、画像全域の符号の一部（例えば、画像全域のウェーブレット係数の最上位ビットから３枚目までのビットプレーンの符号）ができるが、これをレイヤとよぶ。レイヤは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がる。レイヤはいわば画質の単位である。
【００５８】
階層数（デコンポジションレベル数）＝２、プリシンクトサイズ＝サブバンドサイズ、としたときのレイヤの例を図８に、レイヤに含まれるパケットの例を図９に示す。図８に示したレイヤＮｏ．９に含まれるような下位ビットプレーンの符号は、破棄（トランケーション）されるのが通常である。
【００５９】
JPEG2000の復号化（伸長）処理は符号化処理と丁度逆の処理となる。すなわち、コードストリームに付加されたタグ情報を解釈することにより、コードストリームは各コンポーネントの各タイルのコードストリームに分解されて復号化処理が行われる。次に、コードストリーム内のタグ情報に基づく順番で復号化の対象ビットの位置が定められるとともに、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストが生成される。このコンテキストとコードストリームから確率推定によってエントロピー復号化が行われて対象ビットが生成され、これが対象ビットの位置に書き込まれる。このようにして復号化されたウェーブレット係数は（符号化時に線形量子化が行われた場合には逆量子化を施された後）、２次元ウェーブレット逆変換を適用されて各タイルの各コンポーネントの画像データに戻され、続いて色空間逆変換とＤＣレベル逆シフトが行われて元の表色系のデータとされる。
【００６０】
このような復号化処理と図５に示した画像処理装置とを対応させれば、上に述べたタグ情報の解釈とコードストリームの分解などはタグ処理部１０１で、エントロピー復号化はエントロピー復号化部１０２で、コンテキストの生成及び逆量子化は逆量子化部１０３で、２次元ウェーブレット逆変換はウェーブレット変換部１０４で、色空間逆変換は色空間逆変換部１０５で、また、ＤＣレベル逆シフトはＤＣレベル逆シフト部１１０でそれぞれ行われる。ただし、前述の通りウェーブレット変換部１０４は順変換と逆変換が可能である。
【００６１】
次に、JPEG2000における２次元ウェーブレット変換（順変換）について説明する。図１０〜図１３は、16×16画素のモノクロ画像に対して、５x３変換と呼ばれるウェーブレット変換を２次元(垂直方向および水平方向の順)に施す過程の説明図である。
【００６２】
図１０の様にＸＹ座標をとり、あるｘについて、Ｙ座標がｙである画素の画素値をP（y）（0≦ｙ≦15）と表す。JPEG2000では、まず垂直方向（Ｙ座標方向）に、Ｙ座標が奇数
（y=2i+1）の画素を中心にハイパスフィルタを施して係数C(2i+1)を得た後、Ｙ座標が偶数（y=2i）の画素を中心にローパスフィルタを施して係数C(2i)を得る(これを全てのｘについて行う)。ここで、ハイパスフィルタは式（１）、ローパスフィルタは式（２）で表される。式中の記号|_ｘ_|は、ｘのフロア関数（実数ｘを、ｘを越えず、かつ、ｘに最も近い整数に置換する関数）を示している。
【００６３】
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)
【００６４】
なお、画像の端部（又はタイルの境界部）においては、中心となる画素に対して隣接画素群（又は隣接係数群）が存在しないことがある。この場合、図１５に示した「ミラリング」と呼ばれる手法によって適宜画素値（又は係数値）を補うことになる。ミラリングは、文字通り、画像の端（又はタイル境界）を中心として画素値（又は係数値）を線対称に折り返し、折り返した値を隣接画素（係数）群の値とみなす処理である。
【００６５】
ここで、簡単のため、ハイパスフィルタで得られる係数をＨ、ローパスフィルタで得られる係数をＬと表記すれば、前記垂直方向の変換によって図１０の画像は図１１のようなＬ係数とＨ係数の配列へと変換される。
【００６６】
続いて、図１１の係数配列に対して、水平方向に、Ｘ座標が奇数（x=2i+1）の係数を中心にハイパスフィルタを施し、次にＸ座標が偶数（ｘ=2i）の係数を中心にローパスフィルタを施す(これを全てのｙについて行う。この場合、式（１），（２）のP(2i)等は係数値を表すものと読み替える）。
【００６７】
簡単のため、
前記Ｌ係数を中心にローパスフィルタを施して得られる係数をLL、
前記Ｌ係数を中心にハイパスフィルタを施して得られる係数をHL、
前記Ｈ係数を中心にローパスフィルタを施して得られる係数をLH、
前記Ｈ係数を中心にハイパスフィルタを施して得られる係数をHH、
と表記すれば、図１１の係数配列は図１２の様な係数配列へと変換される。ここで、同一の記号を付した係数群はサブバンドと呼ばれ、図１２の場合は４つのサブバンドの係数からなる。
【００６８】
以上で、１回の２次元ウェーブレット変換（１回のデコンポジション（分解））が終了し、LL係数だけを集めると（図１３の様に係数をサブバンド毎に集め、LLサブバンドだけ取り出すと）、ちょうど原画像の１/２の解像度の“画像”が得られる（このように、サブバンド毎に係数を分類することをデインターリーブと呼び、これに対し図１２のような状態に係数を配置することをインターリーブすると呼ぶ）。
【００６９】
２回目のウェーブレット変換は、LLサブバンドを原画像と見なして、上に述べたと同様に行われる。そして得られたサブバンド係数をデインターリーブすると、図１４に示す様な係数配列となる（図１３、図１４中の係数の接頭の１や２は、その係数が何回のウェーブレット変換で得られたかを示し、デコンポジションレベルと呼ばれる）。
【００７０】
以上は順変換であるが、２次元ウェーブレット逆変換は丁度逆の処理となる。すなわち、図１２の様なインターリーブされた係数の配列に対して、まず水平方向に、Ｘ座標が偶数（ｘ=2i）の係数を中心に逆ローパスフィルタを施し、次にＸ座標が奇数（ｘ=2i+1）の係数を中心に逆ハイパスフィルタを施す（これを全てのｙについて行う）。ここで、逆ローパスフィルタは式（３）、逆ハイパスフィルタは式（４）で表される。この際も、画像の端部（又はタイル境界部）においては中心となる係数に対して隣接係数群が存在しないことがあり、この場合も図１５のミラリングによって適宜係数値を補うことになる。
【００７１】
P(2i)=C(2i)−|_(C(2i-1)+C(2i+1)+2)/4_|              式(３)
P(2i+1)=C(2i+1)＋|_(P(2i)+P(2i+2))/2_|              式(４)
【００７２】
このようにして図１２の係数配列は１１Ｉのような係数配列に変換（逆変換）される。続いて、垂直方向に、Ｙ座標が偶数（y=2i）の係数を中心に逆ローパスフィルタを施し、次にＹ座標が奇数（y=2i+1）の係数を中心に逆ハイパスフィルタを施せば（これを全てのｘについて行う）、１回の２次元ウェーブレット逆変換が終了し、図１０の画像に戻る(再構成される)ことになる。ウェーブレット変換が複数回施されている場合は、図１０をLLサブバンドとみなし、HL等の他のサブバンド係数を利用して同様の逆変換を繰り返せばよい。
【００７３】
以上の説明から理解されるように、JPEG2000の符号データは、画像の周波数変換係数がビットプレーン符号化された、符号破棄が行われている可能性のある符号データの一種である。また、JPEG2000の符号データは、画像の周波数変換係数が所定のブロック（コードブロック）単位でビットプレーン符号化された符号データの一種でもある。また、JPEG2000の符号データは、画像の周波数変換係数が周波数帯域（サブバンド）別にビットプレーン符号化された符号データの一種でもある。また、JPEG2000の符号データは、画像の周波数変換係数が周波数帯域（サブバンド）別に所定のブロック（コードブロック）単位でビットプレーン符号化された符号データの一種でもある。また、JPEG2000の符号データは、画像の複数階層（デコンポジションレベル）の周波数変換係数が階層別にビットプレーン符号化された符号データの一種でもある。また、JPEG2000の符号データは、画像の複数階層の周波数変換係数が階層別及び周波数帯域別にビットプレーン符号化された符号データの一種でもある。また、JPEG2000の符号データは、画像の周波数変換係数がコンポーネント別にビットプレーン符号化された符号データの一種でもある。
【００７４】
以下、本発明の実施の形態について、より具体的に説明する。
【実施例１】
【００７５】
本発明の一実施例にあっては、係数補正部１１０において、前記特許文献４に記載されているようなデタイルのための係数補正が行われる。すなわち、図１６に網掛けして示すようなタイル境界部分のハイパス係数に対する補正を行う。
【００７６】
この係数補正のための補正式について説明する。前記特許文献４の方法では、
「タイル境界が生じるのは圧縮率が高い場合であり、タイリングの有無に関わらず、全てのハイパス係数は０に量子化される」（近似１）、
「タイリングした場合のローパス係数はタイリングしない場合のローパス係数に等しい」（近似２）
という２つの近似を採用し、
「(０に量子化されたが)補正されたハイパス係数を用いて逆ウェーブレット変換をした場合の、タイル境界の画素値＝ハイパス係数が０の場合の、タイリングをせずに逆ウェーブレット変換をした場合の同じ位置の画素値」」
という式から、ハイパス係数の補正値を算出している（０に量子化されたハイパス係数に対し、０でない補正値を算出する過程は画像復元である）。
【００７７】
このような係数補正のための補正式を、５×３変換を例に説明する。図１０〜図１３を参照して説明したように、５x３変換の逆変換は、
L,H,L,Hの順にインターリーブした係数列に対し、
偶数位置中心に逆ローパスフィルタを、
奇数位置中心に逆ハイパスフィルタを、
をかける。
【００７８】
前記式（１）〜（４）のフロア関数を省略して展開すれば明らかなように、順変換と逆変換とではフィルタのタップ数は逆転し、またフィルタ係数もインターリーブされる。このため、順変換のフィルタ係数が
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
となる（ここでは、フロア関数部分を考慮せずにフィルタ係数を表現している）。
【００７９】
「タイリングしない場合で、かつ、ハイパス係数が全て０のとき(近似１)」、インターリーブされた係数列
L1  H1  L2  H2  L3  H3
において、H2位置中心に逆ハイパスフィルタをかけた値は以下の通りである。
【００８０】
-0.125H1+0.5L2+0.75H2+0.5L3-0.125H3=0.5L2+0.5L3‥‥式(i)
一方、上記係数が、２つのタイルに分割されてから算出されたものであり、タイル境界はH2とL3の間にあるとする。この場合、L1,H1,L2,H2は左側（又は上側）のタイルの係数、L3,H3は右側（又は下側）のタイルの係数になる。ここで、H2は順変換（３タップのハイパスフィルタ）時にミラリングの影響を受けており、補正の対象となる係数である。タイリングは、各タイル内の画素だけを用いてウェーブレット変換を行う処理、あるいは各タイル内の係数だけを用いて逆ウェーブレット変換を行う処理であるため、上記ミラリングによって左タイル（又は上タイル）の係数
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は右（下）タイルの係数を使用する(近似２)。
【００８３】
タイル境界に隣接するローパス係数（L3）に関しても同様な立式が可能であり、その結果、H３の補正式として
H3＝０‥‥式（iv）
を得ることができる。ただし、デコンポジションレベル１の場合、H3はミラリングの誤差を含まないため補正不要である（デコンポジションレベル２以上の場合は、H3に隣接するL3自体がデコンポジションレベル１でミラリングの影響を受けているため補正が必要である）。
【００８４】
９×７ウェーブレット変換の場合も、同様な考え方で補正式を算出できる。すなわち、インターリーブされた係数列
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）
が得られる。ただし、９×７変換の場合には、デコンポジションレベル１でもH3係数を補正してよい。
【００８５】
図１７と図１８は以上の係数補正の説明図である。水平方向のデタイルのための補正では、図１７に示すタイル境界のハイパス係数H3(LH又はHH)と境界近傍のハイパス係数H3(LH又はHH)が前記補正式により補正される（ただし、５×３変換の場合、デコンポジションレベル１ではハイパス係数H3は補正されない）。垂直方向のデタイルのための補正では、水平方向に逆ウェーブレット変換された係数に対し、図１８に示すタイル境界のハイパス係数H2と境界近傍のハイパス係数H3が前記補正式により補正される（ただし、５×３変換の場合、デコンポジションレベル１ではハイパス係数H3は補正されない）。
【００８６】
次に、タイル数＝４、デコンポジションレベル数（階層数）＝２の、あるコンポーネントのウェーブレット係数を処理する場合を例にして、デタイルのための係数補正処理及びその補正値に対するクリッピング処理について説明する。図１９は処理の流れを示す概略フローチャートであり、図２０〜図２７は処理の説明のための係数配列図である。
【００８７】
図２０は、逆量子化部１０３よりウェーブレット変換部１０４に入力した４タイル分の係数の配列を示しており、デコンポジションレベル２（階層２）の係数はインターリーブされている。
【００８８】
まず、係数補正部１１０において、デコンポジションレベル２の係数に対する水平方向の補正が行われる（step1）。補正の対象となる係数は、図２１に示す列Ａの係数(2HL,2HH)と列Ｂの係数(2HL,2HH)である。５×３変換の場合は、列Ａの係数に対する補正式として式（iii）が、列Ｂの係数に対する補正式として式（iv）が用いられる。９ｘ７変換の場合は、列Ａの係数は式（v）により、列Ｂの係数は式（vi）により補正される。
【００８９】
クリッピング処理部１１１は、量子化区間決定部１１２により決定された当該サブバンド係数（2HL又は2HH)に関する量子化区間の大きさから、列Ａ，Ｂの係数の補正前の値が含まれていた量子化区間と、それら係数の補正値とを比較することによりクリッピング処理の要否を判断する（step2）。
【００９０】
クリッピング処理部１１１は、係数の補正値が補正前の係数値の含まれていた量子化区間から外れているときにはクリッピング処理を必要と判断し、その係数に対しクリッピング処理を行う（step3）。補正値が量子化区間内であり、クリッピングが不要と判断した係数に対してはクリッピング処理は行わない。
【００９１】
次に、ウェーブレット変換部１０４において、補正処理と必要なクリッピング処理が行われた後のデコンポジションレベル２のウェーブレット係数に対し水平方向の逆ウェーブレット変換が行われる（step4）。この水平方向の逆ウェーブレット変換後の係数配列を図２２に示す。
【００９２】
係数補正部１１０において、図２３に示す行Ｃの係数(2H)と行Ｄの係数(2H)に対する補正を行う（step5）。５ｘ３変換の場合は、行Ｃの係数は式（iii）で補正され、行Ｄの係数は式（iv）で補正される。９ｘ７変換の場合は、行Ｃの係数は式（v）で補正され、行Ｄの係数は式（vi）で補正される。
【００９３】
次に、ウェーブレット変換部１０４により、補正後の係数に対し水平方向のウェーブレット変換（順変換）が行われ、図２０に示すような係数の状態に戻される（step6）。この順変換を行うのは、図２３に示すような中間状態の係数に対する量子化区間は決定されないからである。
【００９４】
そして、クリッピング処理部１１１において、水平方向の順変換後の行Ｃ（図２３参照）に対応する係数（2LH,2HH）及び行Ｄ（図２３参照）に対応する係数（2LH,2HH）の補正値についてクリッピング処理の要否を判断し（step7）、必要と判断した係数の補正値に対するクリッピング処理を行う（step8）。
【００９５】
次に、ウェーブレット変換部１０４において、補正処理及び必要なクリッピング処理が行われたデコンポジションレベル２の係数に対し、水平方向の逆ウェーブレット変換と垂直方向の逆ウェーブレット変換が順に行われる（step9）。この逆変換により、図２４に示すデコンポジションレベル１の各サブバンド係数が得られる。
【００９６】
次に、係数補正部１１０において、図２５のようにインターリーブしたデコンポジションレベル１の係数に対し水平方向のデタイルのための補正を行う（step10）。５×３変換の場合には、図２６に示す列Ｅの係数（HL,HH）を式（iii）で補正する（デコンポジションレベル１では、列Ｆの係数はミラリングの誤差を含まないため補正は不要である）。一方、９ｘ７変換の場合には、列Ｅの係数を式（v）で補正し、また、列Ｆの係数(HL,HH)を式（vi）で補正する。
【００９７】
クリッピング処理部１１１は、係数の補正値と補正前の係数値が含まれていた量子化区間とを比較することによりクリッピング処理の要否を判断し（step11）、必要と判断した係数の補正値に対するクリッピング処理を行う（step12）。
【００９８】
次に、ウェーブレット変換部１０４で、補正後の係数に対し水平方向の逆ウェーブレット変換が行われる（step13）。
【００９９】
この逆ウェーブレット変換後の係数に対し、係数補正部１１０は、垂直方向のデタイルのための係数補正を行う（step14）。すなわち、５ｘ３変換の場合は、図２７に示す行Ｇの係数を式（iii）で補正する。９ｘ７変換の場合は、図２７に示す行Ｇの係数を式（v）で補正し、行Ｈの係数を式（vi）で補正する。
【０１００】
この補正後の係数に対し、ウェーブレット変換部１０４で水平方向のウェーブレット変換（順変換）を行い、図２５に示す係数の状態に戻す（step15）。そして、行Ｇ，Ｈの係数（５×３変換の場合は行Ｇの係数のみ）に関しクリッピング処理の要否を判断し（step16）、必要と判断した係数のみクリッピング処理を行う（step17）。
【０１０１】
最後に、ウェーブレット変換部１０４で水平方向の逆ウェーブレット変換、垂直方向の逆ウェーブレット変換が順に行われる（step18）。
【０１０２】
以上の処理によりタイル境界歪みの除去された画像データが生成され、これは色空間逆変換部１０５による色空間逆変換とＤＣレベル逆シフト部１０６によるＤＣレベル逆シフトを経て元の表色系の画像データに戻されて出力される。
【０１０３】
次に、量子化区間決定部１１２について説明する。量子化区間決定部１１２は、トランケート数取得部１１３によりトランケート数を算出できない係数に関しては、１つの推定方法又は予め優先順位を定めた複数の推定方法を用いてトランケート数の推定を行い、推定したトランケート数を用いて該係数に対する量子化区間の大きさ求める。そして、この量子化区間の大きさと、係数の補正前の値とから、該係数の補正前の値が含まれている量子化区間を決定する。以下、トランケート数の推定方法の例を説明する。
【０１０４】
図２８は推定方法Ａの説明図である。図中の１ＨＬ，１ＬＨ，１ＨＨサブバンドにおいて、各矩形はコードブロックを表すものとし、各コードブロックに記された数字は算出されたトランケート数を、？記号はトランケート数を算出できなかったことを表す。？記号が記されたコードブロック（タイルのサブブロックに相当）については、矢線を逆向きに辿って同じサブバンド内でトランケート数を算出できたコードブロックを探し、そのコードブロックのトランケート数を、？記号のコードブロックに対するトランケート数と推定する。ただし、同じコンポーネント内で推定する方法である。
【０１０５】
このように、この推定方法は、トランケート数を算出できない係数の推定トランケート数として、その係数が属するサブブロックと同じサブバンド内の近傍のサブブロックのトランケート数を用いる方法の一例であるが、これはトランケート数を算出できない係数の近傍係数のトランケート数を推定トランケート数として用いる方法の一例でもある。
【０１０６】
図２９はもう１つの推定方法Ｂの説明図である。この推定方法では、あるサブバンドの係数のトランケート数を算出できない場合、上のデコンポジションレベル（階層）へ向かってトランケート数を算出できた同じ位置（同じ係数位置又は同じコードブロック位置）の同種のサブバンドを探し、そのサブバンドのトランケーション数を推定トランケート数として用いる方法である。例えば、図中の？記号を記した１ＨＨサブバンドのトランケーション数を算出できない場合には、まず、２ＨＨサブバンドのトランケーション数が算出できたか調べ、図の例ではトランケーション数５が算出されているため、１ＨＨサブバンドのトランケーション数を５と推定する。もし２ＨＨサブバンドのトランケーション数も算出できないときには、３ＨＨサブバンドのトランケーション数を推定トランケート数として用いる。
【０１０７】
すなわち、この推定方法は、トランケート数を算出できない係数について、その係数の属する階層の近傍階層のトランケート数を推定トランケート数として用いる方法の一例である。ただし、同じコンポーネント内で推定する方法である。
【０１０８】
図３０はもう一つの推定方法Ｃの説明図である。この推定方法では、例えば図中の？記号を記した１ＨＨサブバンドの係数のトランケーション数を算出できない場合には、矢線を逆に辿って同じ位置（同じ係数位置又は同じコードブロック位置）のトランケート数を算出できたサブバンドを探し、そのサブバンドのトランケート数を推定トランケート数として用いる。この例では、１ＬＨサブバンドのトランケート数が６であるから、１ＨＨサブバンドのトランケート数を６と推定する。もし１ＬＨサブバンドのトランケート数も算出できないときには、１ＨＬサブバンドのトランケート数６と推定する。このように、この推定方法は、トランケート数を算出できないサブバンドについては、近傍サブバンドのトランケート数を推定トランケート数として用い方法の一例である。
【０１０９】
図３１はもう一つの推定方法Ｄの説明図である。コンポーネントＣ０，Ｃ１，Ｃ２は下側のものほど符号破棄が行われやすいコンポーネントである。具体的には、JPEG2000の場合、Ｃ０はＹコンポーネント、Ｃ１はＣｒ（もしくはＶ）コンポーネント、Ｃ２はＣｂ（もしくはＵ）コンポーネントである。トランケート数が算出されないサブバンドについては、矢線を逆に辿ってトランケート数が算出されたサブバンドを捜し、そのトランケート数を推定トランケート数として用いる。例えば、図中の？記号を記したコンポーネントＣ２の１ＨＨサブバンドのトランケート数を算出できない場合（コンポーネントＣ２ではトランケート数を算出できなくなるような符号破棄が行われる可能性が最も高い）、まずコンポーネントＣ１の１ＬＬサブバンドを調べ、そのトランケート数が算出されているならば、それを推定トランケート数とする。そのトランケート数も算出できなかったときには、コンポーネントＣ０の１ＨＨサブバンドのトランケート数を推定トランケート数とする。このトランケート数も算出されなかったときには、コンポーネントＣ２の１ＬＨサブバンドのトランケート数を推定トランケート数とする。
【０１１０】
このように、この推定方法は、トランケート数を算出できなかったサブバンドのトランケート数を近傍サブバンドのトランケート数を用いて推定するが、この推定を複数のコンポーネントにわたって行うことが他の推定方法と異なる。
【０１１１】
図３２はもう一つの推定方法Ｅの説明図である。図中、コンポーネントＣ０，Ｃ１，Ｃ３は図３１の場合と同様である。この推定方法では、例えば？記号を記したコンポーネントＣ２の１ＨＨサブバンドのトランケート数を算出できない場合、まず、同じコンポーネント内で、矢線を辿ってトランケート数を算出できたサブバンドを捜し、そのトランケート数を推定トランケート数とする。同じコンポーネント内では推定できないときには、コンポーネントＣ１について矢線を逆順に辿ってトランケート数が算出されたサブバンドを捜し、そのサブバンドのトランケート数を推定トランケート数として用いる。コンポーネントＣ１内でも推定できない場合には、コンポーネントＣ０についてトランケート数が算出されたサブバンドを探し、そのトランケート数を推定トランケート数とする。すなわち、この推定方法は、前記推定方法Ｃを複数のコンポーネントに拡張した方法の一例と言うことができる。
【０１１２】
上に述べたような推定方法の一つのみを用いることもできるが、前述のように、複数の推定方法を所定の優先順位に従い順に適用することもできる。一例を挙げれば、最初に前記推定方法Ａを用いてトランケート数の推定を試み、推定ができない場合に前記推定方法Ｂ又はＣを用いてトランケート数の推定を試みる。それでも推定できない場合には、前記推定方法Ｄ又はＥを用いて推定を試みる。
【０１１３】
以上に説明した実施例においては、タイル境界歪み抑制（デタイル）のための係数補正が行われた。この係数補正の基本的な考え方は、タイル境界近傍の係数を中心とした逆変換後の係数値が、タイリングを行わない場合の低周波係数（ローパス係数）のみを用いて逆変換された係数値とほぼ等しくなるように、タイル境界近傍の高周波係数（ハイパス係数）を補正するというものである。
【０１１４】
しかし、既に述べたように、デタイル以外の目的のための係数補正を行う画像処理装置においても本発明を適用可能である。そのような係数補正としては、例えば、画質向上の目的のために、ある階層の係数を、その近傍係数、同階層の他のサブバンドの同じ位置の係数もしくは上位階層の対応位置の係数を用いて補正するようなものがある。
【０１１５】
また、前記実施例はJPEG2000の符号データを処理するものであったが、より一般的には、請求項１〜９に記載の通り、画像の周波数変換係数をビットプレーン符号化した符号データであって、符号破棄（トランケーション）が行われている可能性のある符号データを復号し、復号過程で周波数変換係数の補正を行う画像処理装置に、本発明は広く適用し得ることは明らかである。
【０１１６】
以上、本発明に係る画像処理装置の構成と処理内容について説明したが、その処理内容の説明は、そのまま本発明に係る画像処理方法の処理の手順及び処理内容の説明でもあることは明らかである。よって、画像処理方法としての説明を繰り返さない。
【図面の簡単な説明】
【０１１７】
【図１】ポスト量子化テーブルの符号破棄の説明図である。
【図２】トランケート数と量子化区間の大きさの関係の説明図である。
【図３】トランケート数の算出方法の説明図である。
【図４】量子化区間とクリッピング処理の説明図である。
【図５】本発明の実施の形態に係る画像処理装置のブロック図である。
【図６】上記画像処理装置をコンピュータを利用して実現する形態を説明するためのブロック図である。
【図７】JPEG2000における画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す図である。
【図８】JPEG2000のレイヤ構造の例を示す図である。
【図９】レイヤに含まれるパケットの例を示す図である。
【図１０】原画像と座標系を示す図である。
【図１１】図１０の原画像に対し垂直方向のウェーブレット変換を行った後の係数配列を示す図である。
【図１２】図１１の係数配列に対し水平方向のウェーブレット変換を行った後の係数配列を示す図である。
【図１３】図１２の係数をデインターリーブした係数配列を示す図である。
【図１４】２回目の２次元ウェーブレット変換後のデインターリーブした係数配列を示す図である。
【図１５】ミラリングの説明図である。
【図１６】デタイルのために補正されるタイル境界付近の係数を示す図である。
【図１７】水平方向のデタイルのために補正される係数を示す図である。
【図１８】垂直方向のデタイルのために補正される係数を示す図である。
【図１９】デコンポジションレベル数２のウェーブレット係数に対する補正処理及びクリッピング処理の流れを示すフローチャートである。
【図２０】デコンポジションレベル２のインターリーブ状態の係数配列を示す図である。
【図２１】最初の水平方向のデタイル補正係数を示す図である。
【図２２】最初の水平方向デタイル補正後の係数を水平方向に逆ウェーブレット変換した後の係数配列を示す図である。
【図２３】最初の垂直方向のデタイル補正係数を示す図である。
【図２４】補正後のデコンポジションレベル１のデインターリーブ状態の係数配列を示す図である。
【図２５】補正後のデコンポジションレベル１のインターリーブ状態の係数配列を示す図である。
【図２６】２回目の水平方向のデタイル補正係数を示す図である。
【図２７】２回目の垂直方向のデタイル補正係数を示す図である。
【図２８】トランケート数の推定方法Ａの説明のための図である。
【図２９】トランケート数の推定方法Ｂの説明のための図である。
【図３０】トランケート数の推定方法Ｃの説明のための図である。
【図３１】トランケート数の推定方法Ｄの説明のための図である。
【図３２】トランケート数の推定方法Ｅの説明のための図である。
【符号の説明】
【０１１８】
１０１  タグ処理部
１０２  エントロピー復号化部
１０３  逆量子化部
１０４  ウェーブレット変換部
１０５  色空間逆変換部
１０６  ＤＣレベル逆シフト部
１１０  係数補正処理部
１１１  クリッピング処理部
１１２  量子化区間決定部
１１３  トランケート数取得部
【図１】
2005311785.tif 000003
【図２】
2005311785.tif 000004
【図３】
2005311785.tif 000005
【図４】
2005311785.tif 000006
【図５】
2005311785.tif 000007
【図６】
2005311785.tif 000008
【図７】
2005311785.tif 000009
【図８】
2005311785.tif 000010
【図９】
2005311785.tif 000011
【図１０】
2005311785.tif 000012
【図１１】
2005311785.tif 000013
【図１２】
2005311785.tif 000014
【図１３】
2005311785.tif 000015
【図１４】
2005311785.tif 000016
【図１５】
2005311785.tif 000017
【図１６】
2005311785.tif 000018
【図１７】
2005311785.tif 000019
【図１８】
2005311785.tif 000020
【図１９】
2005311785.tif 000021
【図２０】
2005311785.tif 000022
【図２１】
2005311785.tif 000023
【図２２】
2005311785.tif 000024
【図２３】
2005311785.tif 000025
【図２４】
2005311785.tif 000026
【図２５】
2005311785.tif 000027
【図２６】
2005311785.tif 000028
【図２７】
2005311785.tif 000029
【図２８】
2005311785.tif 000030
【図２９】
2005311785.tif 000031
【図３０】
2005311785.tif 000032
【図３１】
2005311785.tif 000033
【図３２】
2005311785.tif 000034