(57)【特許請求の範囲】
【請求項１】
入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化方法において、
符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出するステップと、
該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出するステップと、
前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成するステップと、
該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索するステップと、
前記ツリー内のある量子化後変換係数を符号化するに当たり、該量子化後変換係数の直接の子供係数について、各該子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出するステップと、
該ゼロツリーパターンに対応するインデックスを算出するステップと、
量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力するステップとを有する
ことを特徴とする画像符号化方法。
【請求項２】
請求項１記載の画像符号化方法において、
子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
の４つのパターンと、４つの子供係数のうちの２つがゼロツリーの幹である場合、その２つのゼロツリーの位置関係により
・２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の３つのパターンを用いることを特徴とする画像符号化方法。
【請求項３】
請求項１または２記載の画像符号化方法において、
ツリーの幹以外の量子化後変換係数を符号化するに当たり、該量子化後変換係数の親係数の子供の係数を示す兄弟係数を検査し、該兄弟係数それぞれに対応する前記二次元可変長符号を符号化データに出力する前に、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力することを特徴とする画像符号化方法。
【請求項４】
請求項３記載の画像符号化方法において、
兄弟係数の順列符号を出力するに当たり、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスを参照し、該インデックスが、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないゼロツリーパターンを示している場合には前記順列符号を符号化データに出力せず、それ以外の場合には前記順列符号を符号化データに出力することを特徴とする画像符号化方法。
【請求項５】
入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化装置において、
符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出する手段と、
該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出する手段と、
前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成する手段と、
該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索する手段と、
前記ツリー内のある量子化後変換係数及び該量子化後変換係数の親係数の子供の係数を示す兄弟係数を符号化するに当たり、該兄弟係数のうちのいくつかはゼロツリーの幹であり、いくつかはゼロツリーの幹でないことを示している値である場合には、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力し、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないことを示している値である場合には前記順列符号を符号化データに出力せず、該兄弟係数内の各量子化後変換係数毎に、該量子化後変換係数の直接の子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出し、子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の７つのパターンを用い、該ゼロツリーパターンに対応するインデックスを算出する手段と、
該量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力する手段とを有する
ことを特徴とする画像符号化装置。
【請求項６】
入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化プログラムを記憶した媒体であって、
前記プログラムはコンピュータに読み取られた際、該コンピュータに、
符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出するステップと、
該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出するステップと、
前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成するステップと、
該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索するステップと、
前記ツリー内のある量子化後変換係数を符号化するに当たり、該量子化後変換係数の直接の子供係数について、各該子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出するステップと、
該ゼロツリーパターンに対応するインデックスを算出するステップと、
量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力するステップとを実行させることを特徴とする画像符号化プログラムを記憶した媒体。
【請求項７】
請求項６記載の画像符号化プログラムを記憶した媒体において、
子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
の４つのパターンと、４つの子供係数のうちの２つがゼロツリーの幹である場合、その２つのゼロツリーの位置関係により
・２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の３つのパターンを用いることを特徴とする画像符号化プログラムを記憶した媒体。
【請求項８】
請求項６または７記載の画像符号化プログラムを記憶した媒体において、
ツリーの幹以外の量子化後変換係数を符号化するに当たり、該量子化後変換係数の親係数の子供の係数を示す兄弟係数を検査し、該兄弟係数それぞれに対応する前記二次元可変長符号を符号化データに出力する前に、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力することを特徴とする画像符号化プログラムを記憶した媒体。
【請求項９】
請求項８記載の画像符号化プログラムを記憶した媒体において、
兄弟係数の順列符号を出力するに当たり、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスを参照し、該インデックスが、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないゼロツリーパターンを示している場合には前記順列符号を符号化データに出力せず、それ以外の場合には前記順列符号を符号化データに出力することを特徴とする画像符号化プログラムを記憶した媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像符号化方法、画像符号化装置及び画像符号化プログラムを記憶した媒体に関するものである。
【０００２】
【従来の技術】
従来、静止画像又は動画像の圧縮符号化にはＤＣＴ（離散コサイン変換）が広く用いられてきた。しかしながら、ＤＣＴによる画像符号化は、ある程度以上の圧縮率では、変換処理の単位であるブロックの境界が不連続になるブロック歪みや、急峻なエッジ部周辺に発生するモスキートノイズ等の特有の画質劣化が主観画質上問題となっていた。これらの問題点を回避する符号化方法として、離散ウェーブレット変換（Ｉ．Ｄａｕｂｅｃｈｉｅｓ，”Ｏｒｔｈｏｎｏｒｍａｌ  ｂａｓｅｓ  ｏｆ  ｃｏｍｐａｃｔｌｙ  ｓｕｐｐｏｒｔｅｄ  ｗａｖｅｌｅｔｓ”，Ｃｏｍｍ．Ｐｕｒｅ  Ａｐｐｌ．Ｍａｔｈ，ｖｏｌ．４１，ｐｐ．９０９−９９６，１９８８）を利用した符号化方法が種々検討されている。
【０００３】
離散ウェーブレット変換は、階層的なサブバンド分割と同様に、画像を解像度の異なる周波数帯域成分に分解する。分解された変換係数の総数は原画像の画素数と同じであるが、一般的に、より低い周波数成分に信号エネルギーが集中したものになる。
【０００４】
ウェーブレット変換係数は、１次元のフィルタバンクとサブサンプリング処理によって求められる。
【０００５】
図１（ａ）に示すように、画像Ｘ（ｚ）の水平方向について低域フィルタＨl（ｚ）及び高域フィルタＨh（ｚ）出力を求め、その出力を１／２（↓２）に間引く。さらに、同様の処理を垂直方向に適用することにより、４成分ＬＬ1，ＬＨ1，ＨＬ1，ＨＨ1に分解される。このうち、最も低い周波数成分ＬＬ1をＬＬ2，ＬＨ2，ＨＬ2，ＨＨ2に再分解する。この処理を必要な階層数繰り返すことにより、図２に示すような画像のオクターブ分割を求めることができる。
【０００６】
再生過程においては、図１（ｂ）に示すように、帯域成分ＬＬi+1、ＬＨi+1の垂直方向の各係数間にゼロ値を挿入（↑２）し、その垂直方向にそれぞれ合成フィルタＦl（ｚ），Ｆh（ｚ）をかけ、それらの出力の和を求める。同様の処理を水平方向にＨＬi+1，ＨＨi+1成分に行う。即ち、得られた２成分に、水平方向に同様のフィルタ処理を行うことによりＬＬi成分が合成される。この合成処理を必要な階層数だけ繰り返すことにより、画像の再生値が得られる。
【０００７】
画像が完全再構成されるためには、分解・合成フィルタは
Ｈl（ｚ）Ｈh（−ｚ）＋Ｈl（−ｚ）Ｈh（ｚ）＝ｃ        ……（１）
Ｆl（ｚ）＝（２／ｃ）Ｈh（−ｚ）                      ……（２）
Ｆh（ｚ）＝（２／ｃ）Ｈl（−ｚ）                      ……（３）
という条件を満たしていなければならない。ここで、分解・合成フィルタのタップ長は奇数であり、ｃは任意の定数である。また、分解及び合成フィルタ係数の相互関係を図３に示す。
【０００８】
入力画像信号に水平・垂直ウェーブレット変換を施して得られたウェーブレット変換係数は量子化され、符号化される。一般に、同階層の高周波数帯域（ＨＬm，ＬＨm，ＨＨm，ｍ∈自然数）内の変換係数を同じ量子化ステップで量子化を行い、量子化後のウェーブレット変換係数をＲｕｎ−Ｌｅｎｇｔｈ符号化、Ｒｕｎ−Ｌｅｖｅｌ符号化等を用いて可変長符号化し、発生符号量を低減する。
【０００９】
この時、最低周波数帯域ＬＬを除く他の高周波数帯域内のウェーブレット変換係数値は、ゼロ近傍に集中するラプラス分布で近似可能なため、後述のゼロツリー符号化の効率改善を考慮し、一般的にセンターデッドゾーン付きスカラー量子化が用いられる。なお、ＬＬ帯域は粗く、量子化すると復号画像に視覚的に妨害な歪みが目立つため、量子化を行わずにＤＰＣＭを用いて可逆符号化する手法が一般的である。
【００１０】
また、ウェーブレット変換係数の符号化方法に関しては、各周波数帯域の相似な位置の係数間で相関を持つことを利用した符号化方法も提案されている。ウェーブレットを用いた二次元オクターブ分割では、１階層の分解によりＬＬ，ＬＨ，ＨＬ，ＨＨの４成分に分解され、Ｍ階層の分割を行うと、最低周波数帯域であるＬＬM成分から、ＬＨ1，ＨＬ1，ＨＨ1成分までの（３Ｍ＋１）個の成分に分解される。図４はＭ＝３の時の周波数帯域分割例である。
【００１１】
分割された周波数帯域信号には、図４に示すようにＬＬ，ＬＨ，ＨＬ，ＨＨの各周波数帯域がある。
【００１２】
ＬＬ帯域は水平・垂直方向に低域側の信号であり、画像に２次元の低域フィルタ（ＬＰＦ）をかけた信号である（以下、「低域成分」あるいは「最低周波数帯域」と呼ぶことがある。）。ＨＬ帯域は水平方向に高域フィルタ（ＨＰＦ）、垂直方向に低域フィルタをかけた信号であり、垂直方向のエッジ成分が現れる（以下、「水平成分」と呼ぶことがある。）。ＬＨ帯域は水平方向に低域フィルタ、垂直方向に高域フィルタをかけた信号であり、水平方向のエッジ成分が現れる（以下、「垂直成分」と呼ぶことがある。）。ＨＨ帯域は水平、垂直方向ともに高域フィルタをかけた信号で、斜め方向のエッジ成分が現れる（以下、「対角成分」と呼ぶことがある。）。
【００１３】
先に述べた自己相似性によるデータの冗長性を除くため、ｉ階層の分割で得られたＬＨi，ＨＬi，ＨＨiの３つの高周波成分内の各変換係数と、（ｉ−１）階層のＬＨi-1，ＨＬi-1，ＨＨi-1帯域内において、前記各変換係数とそれぞれ空間的に相似な位置の変換係数間で親子関係を定義する。この高周波成分間の前記親子関係は、一つの係数（親，親係数）に対し４つの係数（子供，子供係数）が対応する。また、最低周波数帯域ＬＬM帯域内の変換係数に対しては、例外的にＬＨM，ＨＬM，ＨＨM帯域内において該変換係数と同位置の３つの変換係数が３つの子として対応する。従って、この親子関係は最低周波数帯域ＬＬ内の各変換係数を幹（以下、「ルート」又は「ｒｏｏｔ」と呼ぶことがある。）とし、解像度の粗い低周波側から解像度の密な高周波側に向かって、相似な位置の変換係数に対して枝（以下、「ノード」又は「ｎｏｄｅ」と呼ぶことがある。）が生成され、図４に示すような木構造（以下、「ツリー」又は「ｔｒｅｅ」と呼ぶことがある。）が生成される。
【００１４】
先に、各変換係数の逆方向、即ちルート方向へのノードに対応する変換係数のことを親あるいは親係数と呼び、各変換係数の順方向のノードに対応する変換係数のことを子あるいは子供あるいは子供係数と呼ぶと定義したが、ここで、親子関係に基づくツリー構造に関し、以下、いくつかの言葉について定義を行う。
【００１５】
各変換係数の親係数の子供係数のことを兄弟あるいは兄弟係数と呼ぶ。例えば、図４中のＨＨ2帯域内にハッチングで示した４係数のうち、任意の１係数から見て該４係数は兄弟係数である。各変換係数の子供及び該子供の子供等、各変換係数から順方向に最後のノードまでの各変換係数を子孫と呼ぶ。例えば、ＨＨ3帯域内にハッチングで示した係数から見て、ＨＨ2帯域内のハッチングで示した４係数及びＨＨ1帯域内のハッチングで示した１６係数は子孫である。また、あるツリー中の任意の変換係数及び該変換係数以下の全ての変換係数によって構成される係数群をサブツリーと定義する。サブツリーとは、即ち”変換係数＋該変換係数の子孫”である。
【００１６】
以上定義した周波数帯域間の係数ツリーを用いて、ウェーブレット変換係数に対しエントロピー符号化を行う方式として、ゼロツリー符号化が提案されている。
【００１７】
ゼロツリー符号化では、あるサブツリー中の各変換係数を量子化した結果、量子化後の係数が全てゼロとなる場合、該サブツリーをゼロツリーと呼び、該サブツリーを１つのゼロツリールート（Ｚｅｒｏ  Ｔｒｅｅ  Ｒｏｏｔ：ＺＴＲ）符号に置き換えて符号化することでデータ圧縮を行う。
【００１８】
ＺＴＲ符号で置換されたサブツリーはこの時点で既に符号化済みであり、該ＺＴＲ符号の子孫を後に符号化する必要はない。また、ＺＴＲ符号とは逆に、ある変換係数自体の量子化後の値はゼロであるものの、該変換係数の子孫の係数に一つでも有意係数がある場合は、該変換係数を孤立ゼロ（Ｉｓｏｌａｔｅｄ  Ｚｅｒｏ：ＩＺ）符号として符号化データに出力する。また、符号化対象の変換係数が有意係数である場合は、ＺＴＲ符号・ＩＺ符号のいずれの条件にも合わない。この場合は、該有意係数の量子化番号（以下、「レベル」または「ＬＥＶＥＬ」と呼ぶことがある。）の絶対値を直接、可変長符号化する。
【００１９】
図５に、ゼロツリー符号化を用いて、ＬＬ3帯域内のある変換係数をルートとするツリーを符号化する例を示す。図中の各変換係数はウェーブレット変換係数のレベルであり、それぞれサブツリー（ａ）はＬＨ帯域、サブツリー（ｂ）はＨＬ帯域、サブツリー（ｃ）はＨＨ帯域内でのサブツリーである。
【００２０】
サブツリー（ａ）はＬＨ2帯域内の右下の係数がゼロツリールートであるため、その子孫係数である４係数を符号化する必要はない。同様に、サブツリー（ｂ）は、ＨＬ2帯域内の上の２係数がゼロツリールートであるため、その子孫係数である８係数を符号化する必要はない。サブツリー（ｃ）は、ＨＨ3帯域内の係数がゼロツリールートであるため、そのサブツリー自体を一つのゼロツリールート符号に置換して符号化することができる。
【００２１】
以上説明したゼロツリー符号化は有効な符号化方式であるが、ゼロツリー符号化の符号体系には幾つかの冗長性がある。
【００２２】
（ａ）ＩＺ符号とその子供の係数
ＩＺ符号は、（１）符号化対象量子化後係数がゼロであり、（２）符号化対象量子化後係数以下のサブツリー中の係数の中に一つ以上有意係数が存在することを示す符号である。従って、ＩＺ符号の４つの子供が全てＺＴＲである可能性はない。しかし、実際にはＩＺ符号の４つの子供が全てＺＴＲとなっている符号化データを復号器で復号することが可能である。符号化器から出力されることのあり得ない符号を復号器が復号可能と言うことは、符号体系に冗長性があることとなる。
【００２３】
（ｂ）親係数の絶対値の大きさに関係なく４つの子供の係数を符号化する
ゼロツリー符号化では、ある符号化対象の量子化後係数がゼロである場合、該量子化後係数以下のサブツリー中の量子化後係数が全てゼロである可能性が高くなる性質を利用して、これを一つのＺＴＲ符号に置き換えることで圧縮を行う。
【００２４】
しかし、実際にはゼロの場合だけではなく、量子化後係数のレベルの絶対値が小さければ小さい程、該量子化後係数の４つの子供を幹とするサブツリーがそれぞれＺＴＲである可能性が高くなり、逆に量子化後係数の絶対値が大きい程、該量子化後係数の４つの子供がそれぞれＺＴＲである可能性が低くなる。しかし、従来のゼロツリー符号化ではこの性質を利用することが困難である。
【００２５】
（ｃ）符号化対象のシンボル数が少ない
ゼロツリー符号化において、実際に可変長符号化を行う対象のシンボルは、ＺＴＲ符号・ＩＺ符号・各レベルの絶対値である。しかし、実際には、符号化ビットレートが低い程、ゼロツリールートの出現確率が増加し、一般的に５０％以上となる。このため、可変長符号化を行う入力シンボルの出現確率をそれぞれ１／２n（ｎは任意の自然数）で近似することができず、可変長符号の平均符号長が、そのエントロピーと比較して著しく増大する。即ち、一番出現頻度の高いシンボルの出現確率が５０％（１／２）以上ある時点で、エントロピーと比較して、可変長符号の平均符号長が長くなってしまい、可変長符号化の効率が悪くなる。
【００２６】
以上の３つの問題点を改善するため、最低周波数帯域の係数をルートに持つ階層的なツリー内のある量子化後変換係数を符号化するに当たり、該量子化後変換係数の直接の子供係数のうち、該子供係数を幹とする部分木がゼロツリーである個数（以下、Ｚカウントと呼ぶ。）及び該量子化後変換係数のレベルの絶対値からなる二次元可変長符号を用いてエントロピー符号化する方法が提案されている（特願２０００−２３８９０号）。
【００２７】
この符号化方法では、さらに問題点（ａ）を解決するため、ツリーのルート以外の量子化後変換係数を符号化するに当たり、該変換係数の兄弟係数を一単位として走査し、該兄弟係数それぞれに対応する前記二次元可変長符号を符号化データに出力する前に、該兄弟係数のうちのどの係数がゼロツリールートであるかを示す符号（以下、マップ符号と呼ぶ。）を符号化データに出力する。復号器では、該兄弟係数内のＺＴＲである係数は、親係数を符号化した際に出力済みの該兄弟係数のＺカウント及び該マップ符号によりどの係数がＺＴＲであるかが一意に定まる。
【００２８】
この符号化方法による符号化例を図６に示す。符号化対象の係数及びその兄弟係数は
１．左上がＺＴＲ
２．右上のレベルの絶対値が１で子供係数のＺカウントが２つ
３．左下のレベルの絶対値が３で子供係数のＺカウントが０
４．右下のレベルの絶対値が０で子供係数のＺカウントが２つ
の４係数である。
【００２９】
該兄弟係数を符号化するに当たり、左上の係数はＺＴＲなので、親係数とともに既に符号済みであり、符号化不要である。右上・左下の係数は、それぞれレベル＝１，Ｚカウント＝２とレベル＝３，Ｚ力ウント＝０の該二次元可変長符号を出力した後に、前者はマイナスを示すＮＥＧ、後者はプラスを示すＰＯＳの１ビット符号を出力する。右下の係数は、同様にレベル＝０，Ｚカウント＝２の二次元可変長符号を出力するが、レベルがゼロであるため、符号の１ビットは必要ない。この兄弟係数の符号化データを多重化すると、図６の下部に示す多重化された符号を出力することとなる。
【００３０】
通常、４係数がＺＴＲであるかのＯＮ／ＯＦＦを表すためには４ビット必要である。特願２０００−２３８９０号におけるゼロツリーマップの符号化では、兄弟係数のＺカウントが１，２，３の場合に対応する可変長符号化テーブルを切り替えて符号化する。これにより、符号量はＺカウントが２以外の時で２ビット、Ｚカウントが２の時は２あるいは３ビットの符号量で済む。復号器では、該兄弟係数の親係数を符号化した時に符号化データに出力済みである該兄弟係数のＺカウントを元に、符号化器・復号器の間で共有される対応する可変長符号化テーブルを用いて復号する。該兄弟係数のＺカウントが０あるいは４の場合は、マップ符号を出力する必要はない。０の場合は該兄弟係数内の全係数がＺＴＲでないこと、４の場合は全係数がＺＴＲであることを一意に示すためである。
【００３１】
マップ符号の符号化テーブルの一例を表１に示す。表中、兄弟係数内のＺＴＲの位置とは、係数のスキャン順に、第一係数、第二係数、第三係数、第四係数、がゼロツリールート（ＺＴＲ）であるか、非ＺＴＲ（―）であるかを示している。
【００３２】
【表１】
0003660558.tif 000002
【００３３】
【発明が解決しようとする課題】
ウェーブレット変換係数をエントロピー符号化する際に、ゼロツリールート符号、孤立ゼロ符号、レベルの絶対値を用いてゼロツリー符号化を行う方法が一般に利用されている。この符号化方法は符号化効率の点で幾つかの冗長性が既に指摘されており、この問題点を改善するため、係数の絶対値及びＺカウントからなる二次元可変長符号とマップ符号を用いて符号化効率を改善する方法も提案されている。
【００３４】
マップ符号は兄弟係数内のゼロツリールートの場所を短い平均符号長で符号化し得る有効な手段であり、親係数を符号化した際に符号化データに出力済みの符号化対象係数の兄弟係数のＺカウントを元に、符号化テーブルを切り替えて符号化することによりその平均符号長を短くする。しかし、Ｚカウントが２、即ち兄弟係数のうちの２つの係数がＺＴＲである場合、表１あるいは図７に示すように4Ｃ2＝６通りの組み合わせがあるが、これらのゼロツリー／非ゼロツリー係数の組み合わせの出現確率を、各々１／２nで近似することは現実的にはできず、そのエントロピーと比較して平均符号長が増大し、符号化効率が低減する。
【００３５】
本発明の目的は、入力画像信号を、サブバンド分割あるいはウェーブレット変換を用いて周波数帯域に分割し、算出された変換係数をエントロピー符号化する際に、上記問題点を解決し、符号化効率を改善できる画像符号化方法、画像符号化装置及び画像符号化プログラムを記憶した媒体を提案することにある。
【００３６】
【課題を解決するための手段】
上記の問題点を解決するため、本発明の請求項１では、入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化方法において、符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出するステップと、該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出するステップと、前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成するステップと、該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索するステップと、前記ツリー内のある量子化後変換係数を符号化するに当たり、該量子化後変換係数の直接の子供係数について、各該子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出するステップと、該ゼロツリーパターンに対応するインデックスを算出するステップと、量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力するステップとを有する画像符号化方法を提案する。
【００３７】
また、本発明の請求項２では、請求項１記載の画像符号化方法において、子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
の４つのパターンと、４つの子供係数のうちの２つがゼロツリーの幹である場合、その２つのゼロツリーの位置関係により
・２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の３つのパターンを用いる画像符号化方法を提案する。
【００３８】
また、本発明の請求項３では、請求項１または２記載の画像符号化方法において、ツリーの幹以外の量子化後変換係数を符号化するに当たり、該量子化後変換係数の親係数の子供の係数を示す兄弟係数を検査し、該兄弟係数それぞれに対応する前記二次元可変長符号を符号化データに出力する前に、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力する画像符号化方法を提案する。
【００３９】
また、本発明の請求項４では、請求項３記載の画像符号化方法において、兄弟係数の順列符号を出力するに当たり、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスを参照し、該インデックスが、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないゼロツリーパターンを示している場合には前記順列符号を符号化データに出力せず、それ以外の場合には前記順列符号を符号化データに出力する画像符号化方法を提案する。
【００４０】
また、本発明の請求項５では、入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化装置において、符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出する手段と、該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出する手段と、前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成する手段と、該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索する手段と、前記ツリー内のある量子化後変換係数及び該量子化後変換係数の親係数の子供の係数を示す兄弟係数を符号化するに当たり、該兄弟係数のうちのいくつかはゼロツリーの幹であり、いくつかはゼロツリーの幹でないことを示している値である場合には、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力し、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないことを示している値である場合には前記順列符号を符号化データに出力せず、該兄弟係数内の各量子化後変換係数毎に、該量子化後変換係数の直接の子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出し、子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・４つの子供係数のうちの２つがゼロツリーの幹であり、その２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の７つのパターンを用い、該ゼロツリーパターンに対応するインデックスを算出する手段と、該量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力する手段とを有する画像符号化装置を提案する。
【００４１】
また、本発明の請求項６では、入力画像あるいは動き補償予測差分画像を符号化対象信号として符号化する画像符号化プログラムを記憶した媒体であって、前記プログラムはコンピュータに読み取られた際、該コンピュータに、符号化対象信号を、水平及び垂直の両方向について高域と低域に周波数帯域分割し、水平及び垂直の両方向に対しての低域成分を同様に再分割し、該再分割処理を再帰的にそれぞれ指定された回数繰り返すことで符号化対象信号変換係数を算出するステップと、該符号化対象信号変換係数をそれぞれ量子化して量子化後変換係数を算出するステップと、前記各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、最低周波数帯域の係数を幹に持つ階層的な４分木構造であるツリーを形成するステップと、該ツリー中の各量子化後変換係数について、該量子化後変換係数及び該量子化後変換係数の全ての子孫が有意係数を持たない部分木であるゼロツリーを探索するステップと、前記ツリー内のある量子化後変換係数を符号化するに当たり、該量子化後変換係数の直接の子供係数について、各該子供係数がゼロツリーの幹であるかどうかを判定し、該子供係数内の各係数がゼロツリーの幹であるか、そうでないかを示すゼロツリーパターンを検出するステップと、該ゼロツリーパターンに対応するインデックスを算出するステップと、量子化後変換係数の量子化番号の絶対値及びゼロツリーパターンのインデックスからなる二次元可変長符号を符号化データに出力するステップとを実行させる画像符号化プログラムを記憶した媒体を提案する。
【００４２】
また、本発明の請求項７では、請求項６記載の画像符号化プログラムを記憶した媒体において、子供係数のゼロツリーパターンとして、
・全てゼロツリーの幹でないパターン
・４つの子供係数のうちの１つがゼロツリーの幹であるパターン
・４つの子供係数のうちの３つがゼロツリーの幹であるパターン
・全てゼロツリーの幹であるパターン
の４つのパターンと、４つの子供係数のうちの２つがゼロツリーの幹である場合、その２つのゼロツリーの位置関係により
・２つのゼロツリーの幹が子供係数内で横方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で縦方向に並んでいるパターン
・２つのゼロツリーの幹が子供係数内で対角方向に並んでいるパターン
の３つのパターンを用いる画像符号化プログラムを記憶した媒体を提案する。
【００４３】
また、本発明の請求項８では、請求項６または７記載の画像符号化プログラムを記憶した媒体において、ツリーの幹以外の量子化後変換係数を符号化するに当たり、該量子化後変換係数の親係数の子供の係数を示す兄弟係数を検査し、該兄弟係数それぞれに対応する前記二次元可変長符号を符号化データに出力する前に、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のパターンのインデックスに応じて、該兄弟係数のうちのどの係数がゼロツリーの幹であるかを示す固定長符号である順列符号を符号化データに出力する画像符号化プログラムを記憶した媒体を提案する。
【００４４】
また、本発明の請求項９では、請求項８記載の画像符号化プログラムを記憶した媒体において、兄弟係数の順列符号を出力するに当たり、該兄弟係数の親係数を符号化した際に符号化データに出力済みの該兄弟係数のゼロツリーパターンのインデックスを参照し、該インデックスが、該兄弟係数が全てゼロツリーの幹である、あるいは全てゼロツリーの幹ではないゼロツリーパターンを示している場合には前記順列符号を符号化データに出力せず、それ以外の場合には前記順列符号を符号化データに出力する画像符号化プログラムを記憶した媒体を提案する。
【００４５】
本発明によれば、符号化対象係数の絶対値と、該符号化対象係数の子供係数を幹とするゼロツリーのパターンを用いた二次元可変長符号化を用いて、ウェーブレット変換係数をエントロピー符号化することにより、符号体系に冗長性がない状態で符号化することができる。
【００４６】
さらに、符号化対象係数の兄弟係数内のゼロツリーの位置を符号化する際に、従来の方法ではエントロピーと比較して非効率的な可変長符号を用いていたが、本方式では、効率的なゼロツリーパターンを用いることにより、前記ゼロツリーの位置を固定長符号である順列符号で符号化することができ、その符号長をエントロピーとほぼ同値まで短くすることが可能となる。
【００４７】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
【００４８】
図８は本発明に関わる画像符号化方法及び装置の全体を示すもので、図中、１はウェーブレット変換部、２は量子化部、３は係数符号化部である。
【００４９】
入力画像あるいは動き補償予測差分画像等の符号化対象信号４は、ウェーブレット変換部１にて、水平及び垂直の両方向について高域と低域に周波数帯域分割され、水平及び垂直の両方向に対しての低域成分が同様に再分割され、該再分割処理が再帰的にそれぞれ指定された回数繰り返されることで符号化対象信号変換係数５として出力される。符号化対象信号変換係数５は、量子化部２にて量子化され、量子化後変換係数６として係数符号化部３に出力される。
【００５０】
係数符号化部３では、入力された量子化後変換係数６を、予め符号化器・復号器間で決められた変換係数のスキャン順にスキャンしながら符号化し、符号化データ７として出力する。
【００５１】
本発明は、係数符号化処理を行う係数符号化部３に関わるものであり、ウェーブレット変換部１及び量子化部２は、従来と同様の手法で良い。従って、以下、係数符号化部３について説明する。
【００５２】
図９は本発明による係数符号化処理及び係数符号化部の実施の形態の一例を示すもので、図中、１１はゼロツリー生成部、１２はゼロツリーメモリ、１３はスキャン部、１４は絶対値・符号分離部、１５は二次元可変長符号化部、１６は多重化部、１７は子供係数位置算出部、１８は子供係数パターン検査部、１９は順列符号生成部、２０は遅延器である。
【００５３】
前述した量子化後変換係数６は、ゼロツリー生成部１１に入力される。ゼロツリー生成部１１では、まず、各周波数帯域間で空間的に相似な位置として対応する量子化後変換係数間で、垂直成分・水平成分・対角成分の各成分毎に、図４に示したような最低周波数帯域の係数をルートに持つ階層的なツリーをそれぞれ形成する。そして、該ツリー中の任意の変換係数について、該変換係数をルートとするサブツリーが全てゼロであるサブツリーを探索する。この探索処理を最低周波数帯域の係数をルートに持つ全てのツリー中の全変換係数に関して行い、どの変換係数がゼロツリーのルート係数（ゼロツリールート）であるか、あるいは既にゼロツリーにより打ち切られている係数であるかを示す情報をゼロツリー情報２１として、ゼロツリーメモリ１２に出力する。
【００５４】
同時に、量子化後変換係数６及びスキャン部１３より与えられる符号化対象係数位置２２が、絶対値・符号分離部１４に入力される。絶対値・符号分離部１４では、量子化後変換係数６のうちの符号化対象係数位置２２の位置にある変換係数が取り出され、これを符号化対象係数として符号化するに当たり、該符号化対象係数のレベルの絶対値が絶対値２３として二次元可変長符号化部１５に、該符号化対象係数の正負の符号が符号２４として多重化部１６に出力される。
【００５５】
符号化対象係数位置２２は、子供係数位置算出部１７にも入力され、ここで該符号化対象係数の子供係数の位置が算出され、子供係数位置２５は子供係数パターン検査部１８に出力される。該符号化対象係数の属する周波数帯域毎に異なるが、一つの親に対し子供係数位置２５としては４つの係数位置が示される。
【００５６】
同様に、子供係数パターン検査部１８には、ゼロツリーメモリ１２より、量子化後変換係数６のゼロツリーの情報であるゼロツリー情報２６が入力され、該ゼロツリー情報２６のうち、該子供係数位置２５により示される位置にあるゼロツリー情報を子供係数ゼロツリー情報として取り出す。そして、４つの子供係数内におけるゼロツリールートの位置関係より、ゼロツリーパターンを検出する。ゼロツリーパターンとしては、図１０に示す７種類のパターンを用いる。
【００５７】
図１０において、
パターンＡは、兄弟係数が全てゼロツリールートではないパターン、
パターンＢは、兄弟係数のうちの１つがゼロツリールートのパターン、
パターンＣは、兄弟係数のうちの２つがゼロツリールートで２つのゼロツリールートが子供係数内で横方向に並ぶパターン、
パターンＤは、兄弟係数のうちの２つがゼロツリールートで２つのゼロツリールートが子供係数内で縦方向に並ぶパターン、
パターンＥは、兄弟係数のうちの２つがゼロツリールートで２つのゼロツリールートが子供係数内で対角方向に並ぶパターン、
パターンＦは、兄弟係数のうちの３つがゼロツリールートのパターン、
パターンＧは、兄弟係数が全てゼロツリールートのパターン、
である。そして、パターンＡ〜Ｇの符号を、ゼロツリーパターンのインデックス２７として二次元可変長符号化部１５に出力する。
【００５８】
また、各ゼロツリーパターンは、図１０に示したように各々転置体を有している。パターンＡ，Ｇは１種類のみ、パターンＢ，Ｆは４種類、パターンＣ，Ｄ，Ｅは２種類ある。転置１〜４の符号を、その転置体インデックス２８として順列符号生成部１９に出力する。
【００５９】
順列符号生成部１９では、入力された転置体インデックス２８を元に、符号化テーブル２９を用いて、子供係数の符号化の際に出力する順列符号３０を生成する。各ゼロツリーパターンに対応する転置体は１あるいは２あるいは４通りあり、また、各転置体は出現確率がほぼ等しくなるため、固定長符号で効率的に符号化することが可能である。
【００６０】
具体的には、パターンＣ，Ｄ，Ｅは転置体が２種類あるため、転置体インデックスをそのまま１ｂｉｔの固定長符号で順列符号を符号化する。パターンＢ，Ｆは転置体が４種類あるため、転置体インデックスを２進化し、これを２ｂｉｔの固定長符号で順列符号を符号化する。パターンＡ、即ち兄弟係数の全てがゼロツリールートではない場合、あるいはパターンＧ、即ち兄弟係数の全てがゼロツリールートである場合は、順列符号を出力する必要はなく、順列符号３０として空の符号を出力する。
【００６１】
順列符号の符号化テーブルの一例を表２に示す。表２中、兄弟係数内のＺＴＲの位置とは、兄弟係数内の４係数がゼロツリールート（ＺＴＲ）であるか、非ＺＴＲ（―）であるかを示している。
【００６２】
【表２】
0003660558.tif 000003
【００６３】
符号化テーブル２９を用いて算出された順列符号３０は、該符号化対象係数の子供係数を符号化する時に多重化して符号化データに出力するため、遅延器２０に出力しておく。
【００６４】
二次元可変長符号化部１５では、絶対値・符号分離部１４より入力された絶対値２３及び子供係数パターン検査部１８より入力されたゼロツリーパターンのインデックス２７を二次元可変長符号化データ３１として符号化し、多重化部１６に出力する。
【００６５】
多重化部１６では、遅延器２０より入力される順列符号３２と、二次元可変長符号化データ３１と、正負符号データ２４とを多重化して符号化データ７として出力する。遅延器２０を介して入力される順列符号３２には該符号化係数を含む兄弟係数のゼロツリー情報が含まれており、二次元可変長符号化データ３１及び正負符号データ２４は該符号化係数を含む兄弟係数毎の符号化データである。
【００６６】
以下の４係数、即ち
１．左上がＺＴＲ
２．右上のレベルの絶対値が１で子供係数のゼロツリーパターンのインデックスがＣ
３．左下のレベルの絶対値が３で子供係数のゼロツリーパターンのインデックスがＡ
４．右下のレベルの絶対値が０で子供係数のゼロツリーパターンのインデックスがＥ
からなる、垂直方向の周波数帯域内のある兄弟係数を多重化部１６にて符号化すると、図１１に示す多重化された符号を符号化データとして出力することとなる。図１１において、ＺＰはゼロツリーパターンのインデックス、ａｂｓはレベルの絶対値をそれぞれ示す。
【００６７】
なお、本発明は、コンピュータ読み取り可能な媒体であって、コンピュータに読み取られた時、該コンピュータに、前記説明した処理を実行させるプログラム（ソフトウェア）を記憶した媒体によっても実現可能である。
【００６８】
【発明の効果】
Ｊ．Ｍ．Ｓｈａｐｉｒｏらによる従来のゼロツリー符号化にはその符号体系に冗長性があり、親の係数のレベルの大きさに応じて、子供のＺＴＲ符号の発生確率を動的に変更することは、極めて困難である。
【００６９】
これに対して、本発明によれば、その存在自体が冗長である孤立ゼロ符号を用いる必要がなく、また、親係数の絶対値に応じて子供係数にゼロツリールートが発生する確率が変動する特性を効率的に利用して符号化を行えるため、符号化効率を改善することが可能となる。
【００７０】
さらに、符号化対象係数の兄弟係数内のゼロツリーの位置を符号化する際に、従来の方法ではエントロピーと比較して非効率的な可変長符号を用いていたが、本方式では、効率的なゼロツリーパターンを用いることにより、前記ゼロツリーの位置を固定長符号である順列符号で符号化することができ、その符号長をエントロピーとほぼ同値まで短くすることが可能となる。
【図面の簡単な説明】
【図１】離散ウェーブレット変換の概要を示す説明図
【図２】画像のオクターブ分割のようすを示す説明図
【図３】分解フィルタ及び合成フィルタの係数の相互関係を示す説明図
【図４】画像の二次元オクターブ分割のようすを示す説明図
【図５】ゼロツリー符号化を用いた符号化の一例を示す説明図
【図６】マップ符号を用いた符号化データ出力の一例を示す説明図
【図７】兄弟係数における２つのゼロツリールートを含む組み合わせを示す説明図
【図８】本発明に関わる画像符号化方法及び装置全体の実施の形態の一例を示す構成図
【図９】本発明の係数符号化部の実施の形態の一例を示す構成図
【図１０】ゼロツリーパターンの一例を示す説明図
【図１１】符号化データ出力の一例を示す説明図
【符号の説明】
１：ウェーブレット変換部、２：量子化部、３：係数符号化部、１１：ゼロツリー生成部、１２：ゼロツリーメモリ、１３：スキャン部、１４：絶対値・符号分離部、１５：二次元可変長符号化部、１６：多重化部、１７：子供係数位置算出部、１８：子供係数パターン検査部、１９：順列符号生成部、２０：遅延器。
【図１】
0003660558.tif 000004
【図２】
0003660558.tif 000005
【図３】
0003660558.tif 000006
【図４】
0003660558.tif 000007
【図５】
0003660558.tif 000008
【図６】
0003660558.tif 000009
【図７】
0003660558.tif 000010
【図８】
0003660558.tif 000011
【図９】
0003660558.tif 000012
【図１０】
0003660558.tif 000013
【図１１】
0003660558.tif 000014