(57)【要約】【課題】マクロブロック単位での量子化に当たり、量子化コードテーブルを参照してマクロブロックより細かいブロックの単位で量子化する動画像符号化方法を提供する。【解決手段】各符号化モードに従って予測信号と符号化モード情報とを生成し、マクロブロック毎に対応する量子化コードテーブルを選択し、符号化モード毎に予測誤差信号を生成し、直交変換し、量子化コードテーブルを用いて、量子化パラメータをマクロブロック内の小画素ブロック毎に切り替えて直交変換予測誤差信号を量子化して量子化変換係数を生成し、符号化し、符号化歪みと符号量を計測して符号化コストを計算し、符号化コストに基づいて、符号化モードの中から１つの符号化モードを選択し、量子化コードテーブルの中から１つの量子化コードテーブルを選択し、選択量子化コードテーブルを示すインデックスの情報を符号化フレーム毎又は符号化フレーム内の領域毎に符号化する。【選択図】    図２
2006262004.tif 000002
【特許請求の範囲】
【請求項１】
入力画像信号を分割して生成されるマクロブロック毎に選択された符号化モードによって前記マクロブロックを符号化する動画像符号化方法において、
マクロブロックに対応する入力画像信号に基づいて複数の符号化モードの各々に従って予測信号と符号化モード情報とを生成する予測信号生成ステップと、
前記マクロブロック毎に対応する量子化コードテーブルを選択するステップと、
前記符号化モード毎に前記入力画像信号と前記予測信号とに基づいて予測誤差信号を生成するステップと、
前記予測誤差信号を直交変換するステップと、
前記対応する量子化コードテーブルを用いて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて前記直交変換予測誤差信号を量子化し、量子化変換係数を生成する変換量子化ステップと、
前記量子化変換係数を符号化し、符号化歪みと符号量を計測して符号化コストを計算する符号化コスト計測ステップと、
前記計測された符号化コストに基づいて、前記符号化モードの中から１つの符号化モードを選択する符号化モード選択ステップと、
前記計測された符号化コストに基づいて、前記量子化コードテーブルの中から１つの量子化コードテーブルを選択する量子化コードテーブル選択ステップと、
選択された前記量子化コードテーブルを示すインデックスの情報を、符号化フレーム毎又は符号化フレーム内の領域毎に符号化するステップと、
を具備することを特徴とする動画像符号化方法。
【請求項２】
前記マクロブロック毎に対応する量子化マトリクスを選択するステップと、
前記対応する量子化マトリクスを用いて前記直交変換予測誤差信号を量子化し、量子化された変換係数を生成する変換量子化ステップと、
この変換係数を用いて計算された符号化コストに基づいて、前記量子化マトリクスの中から１つの量子化マトリクスを選択する量子化マトリクス選択ステップとを具備することを特徴とする請求項１記載の動画像符号化方法。
【請求項３】
フレーム内符号化およびフレーム間符号化において、前記量子化コードテーブルを用いた量子化・逆量子化を行うか、行わないかを切り替えるステップを含むことを特徴とする、請求項１又は２記載の動画像符号化方法。
【請求項４】
前記量子化コードテーブルを、当該マクロブロックの量子化パラメータの値が大きいか、或いは小さいかに応じて切り替えるステップを含むことを特徴とする、請求項１又は２記載の動画像符号化方法。
【請求項５】
マクロブロック毎に受信された符号化モードによって前記マクロブロックを復号化する動画像復号化方法において、
マクロブロック毎に、量子化コードテーブルのインデックスを受信するステップと、
前記インデックスに対応する前記量子化コードテーブルに応じて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて逆量子化を行うステップと、
符号化フレーム毎又は符号化フレーム内の領域毎に前記量子化コードテーブルを切り替えるステップを含むことを特徴とする、動画像復号化方法。
【請求項６】
前記マクロブロック毎に量子化マトリクスのインデックスを受信するステップと、受信した前記量子化マトリクスのインデックステーブルから、前記マクロブロックで使用する量子化マトリクスを呼び出して逆量子化を行うステップと、符号化フレーム毎又は符号化フレーム内の領域毎に前記量子化マトリクスのテーブルを切り替えるステップとを含むことを特徴とする、請求項５記載の動画像復号化方法。
【請求項７】
前記量子化コードテーブルもしくは量子化マトリクスのテーブルを示すインデックスを、フレーム内符号化およびフレーム間符号化の符号化処理毎に受信するステップと、前記量子化コードテーブルもしくは前記量子化マトリクスのテーブルを用いた逆量子化を行うか、行わないかを切り替えて復号化するステップとを含むことを特徴とする、請求項５又は６記載の動画像符号化方法。
【請求項８】
前記量子化コードテーブルもしくは量子化マトリクスのテーブルを示すインデックスの情報を、符号化フレーム毎又は符号化フレーム内の領域毎に受信するステップと、前記受信した量子化コードテーブルもしくは量子化マトリクスのテーブルに応じて、前記量子化コードテーブルもしくは量子化マトリクスを復号化するステップを含むことを特徴とする、請求項５又は６記載の動画像復号化方法。
【請求項９】
前記量子化コードテーブルもしくは前記量子化マトリクスのテーブルを、当該マクロブロックの量子化パラメータの値が大きいか、或いは小さいかに応じて切り替えるステップを含むことを特徴とする、請求項５又は６記載の動画像復号化方法。
【請求項１０】
入力画像信号を分割して得られるマクロブロック毎に選択された符号化モードによって前記マクロブロックを符号化する動画像符号化装置において、
マクロブロックに対応する入力画像信号に基づいて複数の符号化モードの各々に従って予測信号と符号化モード情報とを生成する予測信号生成手段と、
前記マクロブロック毎に対応する量子化コードテーブルを選択する選択手段と、
前記符号化モード毎に前記入力画像信号と前記予測信号とに基づいて予測誤差信号を生成する誤差信号生成手段と、
前記予測誤差信号を直交変換する直交変換手段と、
前記対応する量子化コードテーブルを用いて、前記マクロブロックの量子化パラメータを当該マクロブロック内の複数の小画素ブロック毎に切り替えて前記直交変換予測誤差信号を量子化し、量子化変換係数を生成する変換量子化手段と、
前記量子化変換係数を符号化し、符号化歪みと符号量を計測して符号化コストを計算する符号化コスト計測手段と、
前記計測された符号化コストに基づいて、前記符号化モードの中から１つの符号化モードを選択する符号化モード選択手段と、
前記計測された符号化コストに基づいて、前記量子化コードテーブルの中から１つの量子化コードテーブルを選択する量子化コードテーブル選択手段と、
選択された前記量子化コードテーブルを示すインデックスの情報を、符号化フレーム毎又は符号化フレーム内の領域毎に符号化する符号化手段と、
を具備することを特徴とする動画像符号化装置。
【請求項１１】
マクロブロック毎に受信された符号化モードによって前記マクロブロックを復号化する動画像復号化装置において、
マクロブロック毎に、量子化コードテーブルのインデックスを受信する受信手段と、
前記インデックスに対応する前記量子化コードテーブルに応じて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて逆量子化を行う逆量子化手段と、
符号化フレーム毎又は符号化フレーム内の領域毎に前記量子化コードテーブルを切り替える切替手段とを含むことを特徴とする、動画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像または静止画像のための画像符号化／復号化方法及び装置に関する。
【背景技術】
【０００２】
近年、従来よりも大幅に符号化効率を向上させた動画像符号化方法が、ＩＴＵ−ＴとＩＳＯ／ＩＥＣとの共同で、ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４及びＩＳＯ／ＩＥＣ  １４４９６−１０として勧告されている（非特許文献１）（以下、「Ｈ．２６４」という）。ＩＳＯ／ＩＥＣ  ＭＰＥＧ−１，２，４、ＩＴＵ−Ｔ  Ｈ．２６１、Ｈ．２６３といった従来の符号化方式は８×８ブロックの2次元ＤＣＴを用いた圧縮を用いるのに対して、Ｈ．２６４では４×４ブロックの2次元整数直交変換を用いているため、ＩＤＣＴミスマッチを考慮する必要が無く、１６ビットレジスタによる演算が可能な方式となっている。また、直交変換処理及び量子化処理が加算及びビットシフトにより実現することが可能な方式となっている。逆量子化処理及び逆整数直交変換処理も、直交変換及び量子化処理と同様、加算及びビットシフトによって実現することが可能な方式となっている。さらにＨ．２６４ではハイビジョン画像などの高解像度画像に対して符号化効率の向上や主観画質の向上を実現するために、新しい符号化ツールを盛り込んだプロファイルの策定が行われつつある。例えば、Ｈ．２６４のＨｉｇｈプロファイル（非特許文献２）では、８×８ブロックの２次元整数直交変換や、ＭＰＥＧ−２などで見られた量子化マトリクス技術（非特許文献３）が導入される見込みとなっており、高解像度画像や主観画質に主眼を置いたプロファイルとなっている。
【０００３】
画像符号化における一般的な量子化処理は次式（１）に基づいて行われる。
【数１】
2006262004.tif 000003
【０００４】
ここでＸｉｊは量子化された変換係数行列、Ｑｓｔｅｐは量子化ステップ、Ｙｉｊは量子化前の変換係数行列を示している。一方、一般的な逆量子化処理は次式（２）に基づいて行われる。
【数２】
2006262004.tif 000004
【０００５】
Ｈ．２６４では、少ない演算で１６ビットでの演算精度を実現するために、次式のような逆量子化を行う。例としてＨ．２６４ Ｈｉｇｈプロファイルの逆量子化処理（誤差信号４×４画素ブロック）を式（３）に示す。
【数３】
2006262004.tif 000005
【０００６】
ここで、レベルスケールＬＳ（ｍ，ｉ，ｊ）は、式（４）で定義される値で、ＱＰは、０から５１までの値をとる量子化パラメータである。
【数４】
2006262004.tif 000006
【０００７】
Norm(m,i,j)は数式（５）で表されるスケール調整パラメータで各要素は式（６）で表されている。またWS(i,j)は量子化マトリクスを表し、例えば式（７）のようなマトリクスを選択できる。
【数５】
2006262004.tif 000007
【０００８】
【数６】
2006262004.tif 000008
【０００９】
【数７】
2006262004.tif 000009
【００１０】
Ｈ．２６４では、式（３）のＱＰ値（量子化パラメータ）はマクロブロック内で同じ値を取るように規定されている。また、Ｈｉｇｈプロファイルで４×４ブロックと８×８ブロックの２種類が変換ブロックサイズとして取りうる。同時に量子化処理も４×４ブロックと８×８ブロックの２種類が量子化ブロックサイズとされている。
【００１１】
例えばＨ．２６４のイントラ予測（フレーム内予測）は、４×４ブロックと８×８ブロックでそれぞれ９モード、１６×１６ブロックで４モードが規定されており、取りうる予測モードやブロックサイズに応じて生成される予測誤差を直交変換した変換係数の分布は、各ブロックによって異なる。同様にインター予測（フレーム間予測）では、７種類の動き補償ブロックサイズの中から任意のブロックを選択可能であり、複数の参照画像から得られる動きベクトルによる予測の組み合わせは多数存在する。よってマクロブロック内で予測ブロックサイズ及び参照画像が異なるために、予測誤差を直交変換した変換係数の分布の傾向は、ブロック毎に異なる場合がある。
【００１２】
また、Ｈ．２６４では、シークエンス毎、あるいはピクチャ毎に量子化マトリクスを切り替えることが可能である。量子化マトリクスは、特に主観画質の向上に大きく貢献するため、符号化する画像に応じて最適なマトリクスを設計することが重要である。しかし、本来、マトリクスは周波数面の係数分布に重みを加えるものであるため、係数分布が異なると画素領域毎に最適なマトリクスは異なってくる。
【非特許文献１】ISO/IEC 14496-10:2003 Information technology -- Coding of audio-visual objects -- Part 10: Advanced Video Coding
【非特許文献２】Joint Video Team (JVT) of ISO/IEC MPEG & ITU−T VCEG, 12th Meeting: Redmond, WA, USA 17-23 July, 2004, “JVT-L047d8”
【非特許文献３】ISO/IEC 13818-2:2000 Information technology -- Generic coding of moving pictures and associated audio information: Video
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上説明したように、Ｈ．２６４ではマクロブロック内の予測ブロック形状及び予測モードに応じて逆量子化器を変更できないため、マクロブロック内の小画素ブロックで変換係数の細かい制御ができないという問題がある。
【００１４】
また、Ｈ．２６４ Ｈｉｇｈプロファイルに規定されている方法で、与えられた量子化マトリクスを用い、マクロブロック毎に量子化パラメータを決定して逆量子化を行った場合、マクロブロック内の予測ブロック形状及び予測の方法に応じて適応的に、変換係数を制御することが不可能であるという問題があった。
【００１５】
本発明は、予測誤差信号をマクロブロック単位で量子化するに当たり、量子化コードテーブルを参照してマクロブロックより細かいブロックの単位で量子化する動画像符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１局面は、入力画像信号を分割して生成されるマクロブロック毎に選択された符号化モードによって前記マクロブロックを符号化する動画像符号化方法において、マクロブロックに対応する入力画像信号に基づいて複数の符号化モードの各々に従って予測信号と符号化モード情報とを生成する予測信号生成ステップと、前記マクロブロック毎に対応する量子化コードテーブルを選択するステップと、前記符号化モード毎に前記入力画像信号と前記予測信号とに基づいて予測誤差信号を生成するステップと、前記予測誤差信号を直交変換するステップと、前記対応する量子化コードテーブルを用いて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて前記直交変換予測誤差信号を量子化し、量子化変換係数を生成する変換量子化ステップと、前記量子化変換係数を符号化し、符号化歪みと符号量を計測して符号化コストを計算する符号化コスト計測ステップと、前記計測された符号化コストに基づいて、前記符号化モードの中から１つの符号化モードを選択する符号化モード選択ステップと、前記計測された符号化コストに基づいて、前記量子化コードテーブルの中から１つの量子化コードテーブルを選択する量子化コードテーブル選択ステップと、選択された前記量子化コードテーブルを示すインデックスの情報を、符号化フレーム毎又は符号化フレーム内の領域毎に符号化するステップとを具備することを特徴とする動画像符号化方法を提供する。
【００１７】
本発明の第２局面は、マクロブロック毎に受信された符号化モードによって前記マクロブロックを復号化する動画像復号化方法において、マクロブロック毎に、量子化コードテーブルのインデックスを受信するステップと、前記インデックスに対応する前記量子化コードテーブルに応じて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて逆量子化を行うステップと、符号化フレーム毎又は符号化フレーム内の領域毎に前記量子化コードテーブルを切り替えるステップを含むことを特徴とする、動画像復号化方法動画像復号化方法を提供する。
【００１８】
本発明の第３局面は、入力画像信号を分割して得られるマクロブロック毎に選択された符号化モードによって前記マクロブロックを符号化する動画像符号化装置において、マクロブロックに対応する入力画像信号に基づいて複数の符号化モードの各々に従って予測信号と符号化モード情報とを生成する予測信号生成手段と、前記マクロブロック毎に対応する量子化コードテーブルを選択する選択手段と、前記符号化モード毎に前記入力画像信号と前記予測信号とに基づいて予測誤差信号を生成する誤差信号生成手段と、前記予測誤差信号を直交変換する直交変換手段と、前記対応する量子化コードテーブルを用いて、前記マクロブロックの量子化パラメータを当該マクロブロック内の複数の小画素ブロック毎に切り替えて前記直交変換予測誤差信号を量子化し、量子化変換係数を生成する変換量子化手段と、前記量子化変換係数を符号化し、符号化歪みと符号量を計測して符号化コストを計算する符号化コスト計測手段と、前記計測された符号化コストに基づいて、前記符号化モードの中から１つの符号化モードを選択する符号化モード選択手段と、前記計測された符号化コストに基づいて、前記量子化コードテーブルの中から１つの量子化コードテーブルを選択する量子化コードテーブル選択手段と、選択された前記量子化コードテーブルを示すインデックスの情報を、符号化フレーム毎又は符号化フレーム内の領域毎に符号化する符号化手段とを具備することを特徴とする動画像符号化装置を提供する。
【００１９】
本発明の第４局面は、マクロブロック毎に受信された符号化モードによって前記マクロブロックを復号化する動画像復号化装置において、マクロブロック毎に、量子化コードテーブルのインデックスを受信する受信手段と、前記インデックスに対応する前記量子化コードテーブルに応じて、量子化パラメータを前記マクロブロック内の複数の小画素ブロック毎に切り替えて逆量子化を行う逆量子化手段と、符号化フレーム毎又は符号化フレーム内の領域毎に前記量子化コードテーブルを切り替える切替手段とを含むことを特徴とする動画像復号化装置を提供する。
【発明の効果】
【００２０】
本発明によると、マクロブロック内で量子化パラメータを変更するための量子化コードテーブルを用いて、小画素ブロックごとに量子化パラメータの値を調整し、さらに領域毎に量子化マトリクスを変更して量子化及び逆量子化することで、従来の逆量子化器よりも高い符号化効率を維持しつつ、十分に視覚特性等も考慮した量子化器及び逆量子化器が期待できる。
【００２１】
本発明によれば、符号化効率を向上させつつ、且つ十分に視覚特性等も考慮した量子化器及び逆量子化器を実現できる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明に係る動画像符号化方法及び動画像符号化装置、動画像復号化方法及び動画像復号化装置の最良な実施の形態を詳細に説明する。
【００２３】
図１は、本発明の第１の実施の形態に係わる動画像符号化装置の構成を示すブロック図である。この実施の形態では、予測誤差信号をマクロブロック単位で量子化するに当たり、量子化コードテーブルを参照してマクロブロックより細かいブロックの単位で量子化して動画像の符号化を行う。
【００２４】
図１によると、動画像信号はマクロブロック毎或いはマクロブロックペア毎に分割され、動画像符号化装置１００に入力される。動画像符号化装置１００では、予測信号生成部１２０が行うフレーム内予測及びフレーム間予測モードとして、ブロックサイズや予測信号の生成方法の異なる複数の予測モードが用意されている。予測信号生成部１２０は、参照画像メモリ１１１に一時保存された参照画像を用いて、当該マクロブロックで選択可能な全てのモードで予測画像の生成を行い、また入力画像信号から予測信号を差し引いた予測誤差信号の生成を行う。指示されたモードが動き補償フレーム間予測の場合は、予測信号生成部１２０は動きベクトルの検出と参照画像の選択も併せて行う。即ち、予測信号生成部１２０は、図示しないが参照画像メモリ１１１の参照画像を用いて動きベクトルを検出し、動き補償予測信号を生成する動き補償予測回路とこの動き補償予測回路から出力される予測信号を入力画像信号から減算して予測誤差信号を生成する減算器とを有する。
【００２５】
ここで、Ｈ．２６４のフレーム内予測（４×４予測）のようにマクロブロック内でローカルデコード画像を作成しないと次の予測が行えないような場合に関しては、後述する直交変換部１０２でフレーム内予測を行っても良い。予測信号生成は予測信号生成部１２０と直交変換部１０２のみで行われる。
【００２６】
予測信号生成部１２０で生成された予測誤差信号は、量子化セット選択部１０１へと入力される。量子化セット選択部１０１は、量子化器及び逆量子化器で用いられる量子化コードテーブルの中からいずれかのテーブルを選択し、符号化制御部１２１にセットする。
【００２７】
予測信号生成部１２０で生成された予測誤差信号は量子化セット選択部１０１を介して直交変換部１０２へと送られる。直交変換部１０２は、直交変換（例えば離散コサイン変換）を行い、変換された係数を量子化部１０３へと出力する。
【００２８】
量子化部１０３では、符号化制御部１２１で設定されている量子化コードテーブルを参照し、当該量子化コードテーブルに従って当該変換係数を量子化するとともに、量子化した直交変換係数及び予測モード情報（或いは動きベクトル情報、参照画像情報など）をスイッチ１０４及び逆直交変換部１０８に出力する。本実施の形態において、マクロブロック内の量子化部１０３は、設定された量子化コードテーブルに従った方式の動画像符号化処理を行う信号生成手段として機能している。
【００２９】
量子化された変換係数は、モード情報、量子化係数、量子化コードテーブル等の予測方法に関する情報とともに、可変長符号化部１１２により可変長符号化される。これらの符号化データは多重化部１２２により多重化され、出力バッファ１２３を通して符号化データとして出力される。
【００３０】
一方、逆直交変換部１０８は、上記量子化部１０３によって量子化された変換係数を、符号化制御部１２１にて設定されている量子化コードテーブルに従って逆量子化し、得られた変換係数を逆直交変換部１０９へと出力する。逆直交変換部１０９は、復元した変換係数に対して逆直交変換処理（例えば逆離散コサイン変換）を行い、予測誤差信号等を復元し、かかる信号を予測復号化部１１０に出力する。
【００３１】
予測復号化部１１０は、予測信号生成部１２０によって行われた処理に対応する処理を行い、画像を復元し、参照画像メモリ１１１に出力する。参照画像メモリ１１１は復元された画像を蓄積する。このように参照画像メモリ１１１に蓄積された画像が、予測信号生成部１２０による予測誤差信号等の生成の際に参照される。尚、当該動画像符号化部では、予測復号化部１１０で、予測画像の生成は行なわず、予測信号生成部１２０の動き補償予測回路で生成された予測信号を保持しておき、利用することが望ましい。
【００３２】
スイッチ１０４は、量子化部１０３から供給された直交変換係数及び予測モード情報等を、仮符号化及び符号量計測部１０５あるいは、可変長符号化部１１２のいずれかに出力する。
【００３３】
仮符号化及び符号量計測部１０５は、スイッチ１０４経由で入力される直交変換係数等を示す信号に対し仮符号化を行って符号量を計測する。仮符号化とは、符号量を計測するために、一時的に符号化を行うことを指しており、仮符号化及び符号量計測部１０５は、エントロピー符号化データの出力は行わず、符号量の計測のみを行う。本実施の形態における仮符号化及び符号量計測部１０５では、ハフマン符号化、もしくは算術符号化に基づくエントロピー符号化がなされた場合の符号量を計測する。
【００３４】
仮符号化及び符号量計測部１０５で計測された符号量は、符号化歪み測定部１０６に入力される。符号化歪み測定部１０６では、予測復号化部１１０から得られるローカルデコード画像と入力画像信号との２乗誤差を計測し、これを符号化歪み（量子化歪み）として符号化モード制御・判定部１０７へと出力する。符号化モード制御・判定部１０７は、入力された符号化歪み（量子化歪み）と符号量から符号化コストを計測する。ここで得られた符号化コストを指標として当該マクロブロックのモードを決定する。より具体的に説明すると本実施の形態では次式（８）のようなコストを用いる。
【数８】
2006262004.tif 000010
【００３５】
ここでＤは符号化歪みを表し、Ｒは符号量を表している。このようにして得られた符号化コストに基づいて複数の符号化モードの中から１つの符号化モードを選択する。つまり、符号化対象の画素ブロックに対して、１つ以上の符号化モードの各々で実際に予測符号化、発生符号量の計測及び符号化歪みの計測を行わせ、それぞれの符号化モードごとに得られた符号化コストを比較し、いずれか１つの符号化モードを選択する。本実施の形態では、符号化モード制御・判定部１０７は、最も符号化コストの小さい符号化モードを選択する。即ち、図１における量子化セット選択部１０１→直交変換部１０２→量子化部１０３→スイッチ１０４→仮符号化及び符号量計測部１０５→符号化歪み測定部１０６→符号化モード制御・判定部１０７といった順序で処理を行い最適符号化モードを選択する。
【００３６】
符号化モードが決定されると、スイッチ１０４の出力端は可変長符号化部１１２へと直接接続され、選択された符号化モード及び量子化コードテーブルで再符号化を行い、選択された符号化モードで、量子化変換係数、量子化コードテーブル、符号化コスト等の符号化情報を出力する。ここで、予め仮符号化時に最適な符号化モード及び量子化コードテーブルで符号化したときの諸々の情報（量子化された変換係数や選択された量子化コードテーブルのインデックスなど）を保持しておき、可変長符号化部１１２にて再符号化処理を行わずに、保持したデータを出力しても良い。
【００３７】
尚、仮符号化ループ（図１における量子化セット選択部１０１→直交変換部１０２→量子化部１０３→スイッチ１０４→仮符号化及び符号量計測部１０５→符号化歪み測定部１０６→符号化モード制御・判定部１０７といった順序で流れる処理）は、そのマクロブロックで選択可能な全てのモードに対して処理を行った場合に１回のループとなる。つまり、最初の仮符号化ループが終わった瞬間に、モード判定は完了しており、以後の仮符号化ループで再度モード判定を行う必要は無い。最初のループで選択された符号化モードは、符号化制御部１２１にセットされ、以後のループでは、量子化コードテーブルを変更して仮符号化を行うときに符号化制御部１２１に設定されている符号化モードで計算された予測誤差信号を利用する。
【００３８】
さらに、最初のループでは量子化コードテーブルによる符号化モード判定の影響を極力無くすために、本実施の形態では、マクロブロック内で量子化を変えない（従来のＨ．２６４の逆量子化と等しい）方式で量子化及び逆量子化を行う。
【００３９】
Ｈ．２６４のフレーム内予測では、予測画像の生成時に現ブロックのローカルデコード画像を参照画像として、隣のブロックの予測画像を生成する。そのため、小画素ブロック毎に直交変換、量子化及び逆量子化、逆直交変換を行う必要がある。そこで、仮符号化ループで量子化コードテーブルを決定するとき（二回目以降の仮符号化ループ）、直交変換部１０２にて、フレーム内予測をやり直して予測信号の再生成を行っても良いし、行わなくても良い。
【００４０】
符号化制御部１２１は発生符号量のフィードバック制御及び量子化特性制御、モード制御などを行い、発生符号量の制御を行うレート制御や、予測部の制御、符号化全体の制御を行う。
【００４１】
これら各部の機能は、コンピュータに記憶されたプログラムによって実現される。
【００４２】
以上が本実施の形態にかかる動画像符号化装置１００の構成である。以下、本発明にかかる第１の実施の形態の動画像符号化方法について、動画像符号化装置１００が実施する場合を例にあげ、図２を参照しながら説明する。
【００４３】
動画像符号化装置１００に、１フレーム毎に動画像信号が入力されると、入力された画像はマクロブロック毎、或いはマクロブロックペア毎に符号化が開始される(ステップＳ２０１)。
【００４４】
入力された動画像信号を用いて、予測信号生成部１２０にて、当該ブロックで選択可能な全ての符号化モードにおける予測画像信号生成及び予測誤差信号の計算が行われる（ステップＳ２０２）。ここで得られた当該予測誤差信号を直交変換・量子化することで符号化モードの判定及び最適量子化コードテーブルの選択を行う。
【００４５】
次に、量子化コードテーブルを示すインデックスQ_idxを０に初期化する（ステップＳ２０３）。このインデックスは例えば図１０で表されるようなコードテーブルの番号を表している。
【００４６】
さらに、符号化モードを示すindexを０に初期化、最終的に選択されるベスト符号化モードのインデックスBest_Modeを最大値に初期化、符号化コストの最小値を与えるMin_Costを最大値で初期化する（ステップＳ２０４）。
【００４７】
符号化モードＩ（＝index）、量子化コードテーブルインデックスQC（＝Q_idx）にて仮符号化を行う。つまり、仮符号化時には、スイッチ１０４の出力端は仮符号化及び符号量測定部１０５へと接続され、図１で示される仮符号化ループ（図１における量子化セット選択部１０１→直交変換部１０２→量子化部１０３→スイッチ１０４→仮符号化及び符号量計測部１０５→符号化歪み測定部１０６→符号化モード制御・判定部１０７といった順序で流れる処理）に従って仮符号化処理が実行される。量子化部１０３では、量子化コードテーブルインデックスQCに示されるコードテーブルの値に従って量子化或いは逆量子化処理がなされる。
【００４８】
量子化パラメータは、量子化コードテーブルインデックスQCから次式（９）のように求められる。
【数９】
2006262004.tif 000011
【００４９】
ＱＰblkは量子化コードテーブルインデックスＱＣから導出された小画素ブロック量子化パラメータを表しており、ＱＰはマクロブロックの量子化パラメータを示す。ＱＶ（ＱＣ，blk）は量子化コードテーブルインデックスＱＣ、ブロックナンバーblkで示される量子化コードテーブルを示している。これらの処理は、８×８ブロック単位で行っても良いし４×４ブロック単位で行っても良い。例えば、８×８ブロック単位の量子化コードテーブルは次式（１０）のように定義される。
【数１０】
2006262004.tif 000012
【００５０】
マクロブロック内には４つの８×８ブロックが存在する。よってblkは０から３までの値を取る。最初に仮符号化ループを通るときには、QC=０となり従来のマクロブロック内固定量子化パラメータで仮符号化処理が行われる。
【数１１】
2006262004.tif 000013
【００５１】
それぞれの位置に対応するパラメータ変化度を用いて量子化パラメータを変更する。８×８画素単位で量子化パラメータを変える場合、４×４画素ブロック量子化器では、図３左側に示すように４つのブロックで同じ量子化パラメータで量子化が行われる。一方、８×８画素ブロック量子化器の場合は図３右側に示すようにブロック毎に量子化パラメータを変更する。
【００５２】
一般的に仮符号化に用いられる符号化コストは、マクロブロックでの量子化パラメータが変動しないことに基づいて定義されている。そのため、式（１０）に以下の条件式（１１）を加えるべきである。
【数１２】
2006262004.tif 000014
【００５３】
これはマクロブロック内で、量子化パラメータの変動は定性的に一定であることを示しており、符号化コスト計算でのコスト評価のために必要な拘束条件である。
【００５４】
仮符号化及び符号量測定部１０５にて、発生した符号量の累積加算が行われ、符号化歪み測定部１０６では、入力画像とローカルデコード画像から符号化歪みの計算が行われる（Ｓ２０６）。ここで、量子化部１０３で量子化された変換係数は、逆量子化器１０８にて逆量子化され、逆直交変換部１０９にて逆直交変換されることによって予測誤差信号の復号が行われ、さらに予測信号と加算されることによってローカルデコード画像となる。
【００５５】
得られた発生符号量と符号化歪みから式（８）を用いて符号化コストの計算が行われる（Ｓ２０７）。ただし、例えば符号化歪みを用いず、発生符号量そのものを符号化コストとしても良い。この場合、モードの判定に符号化歪みが必要としなくなるため仮符号化ループに、逆量子化・逆直交変換といった処理負担の高い処理部を行う必要がなくなる。或いは、符号化歪みに代わる入力画像の統計量（例えば入力画像のDC値やアクティビティ（DC値からの各画素の差分を合計した値））などを用いても良い。仮符号化では符号化データの書き出しを行わない。
【００５６】
符号化モード制御・判定部１０７は、計算された符号化コストcostが、最小符号化コストmin_costより小さいか否かを判別し（ステップＳ２０８）、小さい場合にはその符号化コストで最小符号化コストを更新するとともに、その際の仮符号化の符号化モードをbest_modeインデックスとして、量子化コードテーブルインデックスをbest_Q_idxとして保持する。さらにｉｎｄｅｘ値のインクリメントを行う。ここで、再符号化処理を避けるために、ベスト符号化モードで符号化されたときの様々の符号化データを保持しておく（Ｓ２０９）。
【００５７】
次に、符号化モード制御・判定部１０７は、更新したindexがMAX_INDEXより大きいか否かを判断する（ステップＳ２１０）。ここで、indexが大きい場合、つまり、当該ステップＳ２０９で選択されたマクロブロック内で選択可能な符号化モード全ての処理が終わっている場合は、かかる判別が「ＹＥＳ」となり、すべての符号化モードについて上記ステップＳ２０５〜ステップＳ２１０までの処理が終了したことを意味する。
【００５８】
ここで、かかる判別が「ＮＯ」の場合、更新されたindexで示されるモードで、ステップＳ２０５〜ステップＳ２１０までの処理を行う。
【００５９】
このようにして、ステップＳ２１０の判別が「ＹＥＳ」となったとき、そのマクロブロックで選択可能な符号化モードの中で符号化コストの最も小さい符号化モードが決定したことを意味する。ステップＳ２１０の判別が「ＹＥＳ」のときは、量子化コードテーブルインデックスQ_idxをインクリメントし、ＱＣを更新する（Ｓ２１１）。
【００６０】
次に、符号化モード制御・判定部１０７は、更新したQ_idxがMAX_Q_IDXより大きいか否かを判断する（ステップＳ２１２）。ここでQ_idxが大きい場合、選択可能な量子化コードテーブルインデックスの全てに関して仮符号化処理が終わったことを意味する。また、かかる判別がＮＯの場合、符号化モード制御・判定部１０７から量子化セット選択部１０１へと処理は移行し、新しいQ_idxで仮符号化ループを繰り返すことになる。ここで符号化モードI=best_modeにより、モード判定は再度繰り返すことなく最初のループで確定したbest_modeで、量子化コードテーブルインデックスのループ（ステップＳ２０５からステップＳ２１２まで）を回ることになる。
【００６１】
ステップＳ２１２でかかる判別がＹＥＳの場合、仮符号化ループを終了し、best_mode及びbest_Q_idxを用いて、再量子化及び可変長符号化部１１２にて再符号化が行われる（ステップＳ２１４）。ここで、このときのデータを保持している場合は再符号化の必要は無いため、そのまま符号化データは多重化部１２２へと出力され、各々の方式に従って多重化された後に出力バッファ１２３へと出力され、ビットストリームデータとして出力される（Ｓ２１５）。
【００６２】
ここで、画素ブロック毎に選択された量子化コードテーブルは、複数の量子化コードテーブルから適切な量子化コードテーブルが選択され、選択されたコードテーブルに従って、量子化コードテーブルインデックスに変換されて符号化される。量子化コードテーブルは、フレーム内の複数画素ブロックから構成される領域（以下、スライスと呼ぶ）単位に変更可能であり、量子化セット選択部１０１により、スライス毎に符号化効率の高い量子化コードテーブルの選択が行われる。選択された量子化コードテーブルの情報は、量子化コードテーブルのインデックスとして、符号化データに多重化される。また、他の実施の形態として、量子化パラメータや目標ビットレートに応じて、量子化コードテーブルが自動的に一意に決定される構成としてもよい。例えば量子化パラメータが小さい場合は、量子化コードテーブルインデックスが小さい値が選択され、大きい場合はインデックスが大きな値が選択される。或いはビットレートが高い場合は、量子化コードテーブルインデックスが大きな値が選択され、低い場合はインデックスが小さな値が選択されるなどである。いずれの場合でも、符号化データの復号化時においても、同一の量子化コードテーブルが選択されて、対応する量子化コードテーブルに変換され、逆量子化が行われる。
【００６３】
次に、量子化コードテーブルインデックス情報の符号化方法について説明する。図４に本実施の形態で用いられるシンタクスの構造の概略を示す。シンタクスは主に３つのパートからなり、High Level Syntax（４０１）はスライス以上の上位レイヤのシンタクス情報が詰め込まれている。Slice Level Syntax（４０４）では、スライス毎に必要な情報が明記されており、Macroblock Level Syntax（４０７）では、マクロブロック毎に必要とされる可変長符号化された誤差信号やモード情報などが明記されている。
【００６４】
それぞれは、さらに詳細なシンタクスで構成されており、High Level Syntax（４０１）では、Sequence parameter set syntax（４０２）とPicture parameter set syntax（４０３）などのシーケンス、ピクチャレベルのシンタクスから構成されている。Slice Level Syntax（４０４）では、Slice header syntax（４０５）、Slice data syntax（４０６）などから成る。さらに、Macroblock Level Syntax（４０７）は、macroblock layer syntax（４０８）、macroblock prediction syntax（４０９）などから構成されている。
【００６５】
本実施の形態で、必要となるシンタクス情報はシーケンスヘッダ（４０２）、スライスヘッダ（４０５）、マクロブロックヘッダ（４０８）であり、それぞれのシンタクスを以下で説明する。
【００６６】
図５のシーケンスヘッダ内に示されるex_quant_code_in_slice_flagは、量子化コードテーブルインデックスをスライス毎に符号化するかどうかを示すフラグであり、このフラグが１の場合、量子化コードテーブルインデックス量子化コードテーブルインデックスはスライス毎に変更することができる。一方、ex_quant_code_in_mb_flagは、量子化コードテーブルインデックスをマクロブロック毎に符号化するかどうかを示すフラグであり、このフラグが１の場合、エンコーダはマクロブロック毎に量子化コードテーブルインデックスを変更することができる。
【００６７】
図５で示されるex_quant_code_in_slice_flagが１の場合、図６のスライスヘッダ内でslice_ex_code_zero_flagが符号化される。このフラグは選択された量子化コードテーブルインデックスが０であることを示しており、このフラグが１のとき、現在のスライスでは従来の量子化が選択されていることを示す。つまり、マクロブロック内で量子化パラメータが等しいことを示す。このとき、rem_slice_ex_code_numは符号化されない。一方、slice_ex_code_zero_flagが１であるとき、現在選択された量子化コードテーブルインデックスQCは以下の式（１２）の値として符号化される。
【数１３】
2006262004.tif 000015
【００６８】
同様に、図５で示されるex_quant_code_in_mb_flagが１の場合、図７のマクロブロックヘッダ内でmb_ex_code_zero_flagが符号化される。このフラグは選択された量子化コードテーブルインデックスが０であることを示しており、このフラグが１のとき、現在のマクロブロックでは従来の量子化が選択されていることを示す。つまり、マクロブロック内で量子化パラメータが等しいことを示す。このとき、rem_mb_ex_code_numは符号化されない。一方、mb_ex_code_zero_flagが１であるとき、現在選択された量子化コードテーブルインデックスQCは以下の式（１３）の値として符号化される。
【数１４】
2006262004.tif 000016
【００６９】
このようなシンタクスの目的は低ビットレートで、量子化コードテーブルインデックスによる効果が低いときにできるだけ符号量を削減するためである。
【００７０】
一方、シンタクスに関する別の実施の形態として、次のシンタクスが考えられる。図８にスライスヘッダのデータ構造の一部、及び図９にマクロブロックレイヤーのデータ構造の一部を示す。先ほどとは異なり、どちらも量子化コードテーブルインデックスをそのまま可変長符号化、あるいは固定長符号化し、多重化する。
【００７１】
特にフレーム内予測は、入力画像の空間相関を用いて予測を行うため、マクロブロック内の細かい領域で係数の分布が大きく異なる傾向が強い。このような場合、フラットな量子化器（マクロブロックで量子化パラメータを変更しない）はあまり選択されず、様々な量子化コードテーブルインデックスを用いて量子化された方が発生符号量を削減できる場合が存在する。つまり、量子化コードテーブルインデックスの発生頻度が予測できないため、効率の良いシンタクスを構成し難い。よって図８，９のようなシンタクスが有効になる場合が存在する。
【００７２】
以上説明したように本実施の形態では、複数の選択可能な符号化モードの各々について、実際に仮符号化処理がなされ、符号化モードごとの符号化データの符号量と符号化歪みから得られた符号化コストの最も小さいモードが選択され、選択されたモードに基づいて、量子化コードテーブルループとして再度仮符号化処理を行い、符号化コストが最も小さい量子化コードテーブルインデックスで符号化された符号化データが出力される。このように量子化コードテーブルを用いてマクロブロック内の量子化パラメータを小ブロック毎に制御して符号化モード選択を行っているので、予測ブロック形状及び予測方法に応じて符号化効率の高い符号化を行うことができる量子化パラメータを選択できる、つまり画素ブロックの内容等に応じて好適な量子化をなすことができる。一方、マクロブロック内の量子化パラメータの平均変動値を抑えることで、従来のモード判定方式をそのまま利用することができる。
【００７３】
このように、各符号化モードすべてについて負担の大きい符号化処理を行う必要がなく、選択された符号化モードでの符号化のみ行うようにすればよいので、演算負担の増加も抑制することができる。すなわち、本実施の形態では、高速かつ好適な符号化モード選択と、高速で圧縮効率の高い動画像符号化を実現することが可能となる。
【００７４】
なお、上述したように選択されたモードでの符号化の際、予測誤差信号の量子化された直交変換係数は、逆直交変換及び逆量子化部２０６にも入力されて、逆量子化及び逆直交変換が施されて予測誤差信号を再生し、予測復号部２０７によりローカルデコード画像が生成され、参照画像メモリ２０８に参照画像として一時保存される。これらのローカルデコード画像生成処理は、選択されたモードについてのみ行えばよく、予測モード判定のためのループ内では、必ずしも実行しなくてもよい。
【００７５】
次に、他の例に係る動画像符号化方法を説明する。  
量子化コードテーブルインデックスの最大値Q_MAX_IDXが大きい値の場合、特に低ビットレートでは、符号化するシンタクスの符号量が無視できなくなる。そのため、実用的な範囲としてはマクロブロック毎にシンタクスを送る場合で、８通り（３ビット）程度が妥当である。一方、高ビットレートでは、効果の高い量子化コードテーブルインデックスを用いて符号化効率を向上させるべきである。そこで、ベースとなる量子化パラメータに応じて量子化コードテーブルを切り替える。
【００７６】
量子化パラメータQPの値は、符号化制御部１２１が制御するレートコントロールに従って制御されている。符号化対象マクロブロックを符号化する際には、量子化パラメータの値は既に決まっており、一般的にエンコーダでは量子化パラメータの差分値を符号化する。よって、仮符号化ループでは、与えられた量子化パラメータQPの値によって、使用する量子化コードテーブルを変更する。
【００７７】
より具体的には、量子化パラメータＱＰがある値ＱＰＬｏｗより小さいときにはQ_MAX_IDXが大きいなテーブルを使用し、ＱＰがＱＰＨｉｇｈより大きいときはQ_MAX_IDXが小さいテーブルを使用する。ビットレートに応じて選択されやすい量子化コードテーブルが存在するため、量子化パラメータの値によって使用するテーブルを適応的に変更する。
【００７８】
また別の例としては、Q_MAX_IDXのテーブルを用意しておき、量子化パラメータの値に応じて先頭から指定したビットの許す範囲で、仮符号化ループを行うといった方式を用いても良い。
【００７９】
図１０に８×８画素ブロック量子化コードテーブルインデックスの一例を示す。レート制御から与えられるマクロブロックの量子化パラメータQPの値に応じて利用できるインデックスが変更される。例えばQPが３２よりも大きい場合には量子化コードテーブルインデックスは８まで（rem_mb_ex_code_zero_flagが３ビット）選択できる。一方、QPが２０−３２までの範囲にある場合は、量子化コードテーブルインデックスは１６まで（rem_mb_ex_code_zero_flagが４ビット）選択できる。
【００８０】
即ち、マクロブロック毎に使うビットの量をQPの有効範囲に応じて使えるビット長を変える。量子化パラメータが大きいときには荒く量子化するので、符号化データが小さくなる。小さくなるときにマクロブロック毎に大きなビット数を使ってしまうと、全体的に符号量を小さくできなくなるので、量子化パラメータの範囲に応じて何ビット使うかを決める。この決めをエンコーダ、デコーダに入れておくと、使うビットレートに応じて実際に送るシンタックスのビット量が調整できる。
【００８１】
このようにして、量子化パラメータQPに応じて選択できるテーブルを切り替えることで、シンタクスのオーバーヘッドを抑えて符号化効率を向上させることが可能である。
【００８２】
次に、第２の実施の形態にかかる動画像符号化方法を説明する。
【００８３】
本実施の形態では、第１の実施の形態に加えて、画素ブロック毎に対応する量子化マトリクスを選択するステップが加わっている。即ち、本実施の形態では、量子化コードテーブルの量子化パラメータを表すインデックスを決めるだけではなくて、複数の量子化マトリクスを選択的に切り替えることも含む。動画像符号化装置の構成は図１と同様である。第２の実施の形態において、第１の実施の形態と共通する構成要素にはその説明を省略する。
【００８４】
図１１に本実施の形態における動画像符号化の処理の流れを示す。ステップＳ１００１、ステップＳ１００２はそれぞれステップＳ２０１、Ｓ２０２と等しい。
【００８５】
符号化制御部１２１は、量子化マトリクスのテーブル番号を示すインデックスWM_idxを０に初期化する（ステップＳ１００３）。さらに各変数の初期化を行う（ステップＳ１００４、ステップＳ１００５）。
【００８６】
第１の実施の形態と同様に、仮符号化ループ（図１における量子化セット選択部１０１→直交変換部１０２→量子化部１０３→スイッチ１０４→仮符号化及び符号量計測部１０５→符号化歪み測定部１０６→符号化モード制御・判定部１０７の順序で流れる処理）を繰り返して、それぞれ符号化モードＩ、量子化コードテーブルインデックスＱＣを決定する（ステップＳ１００５〜ステップＳ１０１３）。
【００８７】
ここで、符号化モードと量子化コードテーブルインデックスを決定するまでの仮符号化ループでは量子化マトリクスを用いないフラットな量子化及び逆量子化を行う。フラットな量子化とは、式（７）で示される量子化マトリクスの全成分が１６であるような量子化である。Ｈ．２６４では、量子化マトリクスを利用しない場合、フラットな量子化が行われる。
【００８８】
ステップＳ１０１３の判定でＹＥＳが選択されると、量子化セット選択部１０１は、WM_idxをインクリメントして符号化制御部１２１にセットする。ここで、WM_idxが２に等しいかどうかを判別する。かかる判別がＮＯである場合、符号化モードを更新し（ステップＳ１０１４）、更新された量子化マトリクスインデックスで、さらに仮符号化が行われる。ここで、仮符号化によって得られた符号化コストcostが、min_costよりも小さい場合は、best_WM_idxを更新し、仮符号化結果を保存する（ステップＳ１０１０）。
【００８９】
かかる判別がＹＥＳの場合、仮符号化ループを終了し、仮符号化ループにて決定された諸々のパラメータで再符号化を行う（ステップＳ１０１６）。ここで、仮符号化時のデータを保持している場合は再符号化の必要は無いため、そのまま符号化データは多重化部１２２へと出力され、各々の方式に従って多重化された後に出力バッファ１２３へと出力され、ビットストリームデータとして出力される（Ｓ２１５）。
【００９０】
本実施の形態では、WM_idxは次のようなインデックスの値とする。WM_idxが０のときはフラットな量子化を行う。一方、WM_idxが１のときは、対象とするマクロブロックに対してＨ．２６４で規定されている量子化マトリクスを適用する。例えば、デフォルトマトリクスを用いた場合には、本方式によるとマクロブロック毎に、デフォルトマトリクスとフラットなマトリクスを任意に選択できるようになる。Ｈ．２６４の４×４画素ブロックにおけるデフォルトマトリクスとフラットなマトリクス（量子化マトリクスを用いない場合に対応）を式（１４）に示す。
【数１５】
2006262004.tif 000017
【００９１】
次に量子化マトリクスのインデックスの符号化方法について説明する。図１２にシーケンスヘッダのデータ構造の一部、図１３にスライスヘッダのデータ構造の一部、図１４にマクロブロックヘッダのデータ構造の一部を示す。これらは、図４のシンタクス構造と同様に定義されている。
【００９２】
図１２で示されるex_quant_matrix_in_slice_flagはスライス毎に量子化マトリクスのインデックスを符号化するかどうかを示すフラグであり、ex_quant_matrix_in_mb_flagはマクロブロック毎に量子化マトリクスのインデックスを符号化するかどうかを示すフラグである。
【００９３】
slice_ex_matrix_flagは、そのスライスで量子化マトリクスを使うかどうかを示すフラグであり、slice_ex_matrix_flagが１のときは対応する量子化マトリクスを使用する。この場合、量子化マトリクスを送っても良いし、Ｈ．２６４ Ｈｉｇｈプロファイルにあるようなデフォルトマトリクスを使用してもよい。０のときは、そのスライス内では、量子化マトリクスを使用しないことを意味する。同様に、mb_ex_matrix_flagは対応するマクロブロックで量子化マトリクスを使用するかどうかを示すフラグであり、１のときは量子化マトリクスを用いて量子化する。
【００９４】
尚、図１２、１３で示されるような１ビットで示されるフラグではなく、対応する量子化マトリクスのインデックスをそのまま送って、複数の量子化マトリクスを用いて量子化・逆量子化してもよい。このとき、符号化器ならびに復号化器では、それぞれの量子化マトリクスのインデックスに対応する量子化マトリクステーブルを所持している（または量子化マトリクスを符号化データに多重化して送る）必要がある。
【００９５】
フレーム間符号化に比べて、フレーム内符号化は量子化に関係するパラメータ（量子化パラメータ、量子化コードテーブル、量子化マトリクス、量子化オフセットなど）を細かく制御することで、符号化効率の改善が期待できる。そこで、上述した符号化方式をフレーム内符号化領域にだけ適用することも可能である。この場合、図１において、フレーム間符号化情報を符号化制御部１２１から得たときには、量子化セット選択部１０１は、量子化コードテーブルインデックス及び量子化マトリクスインデックスをそれぞれ０にセットする。さらに、ステップＳ２１２では常にＹＥＳを選択する。同様にステップＳ１０１５も常にＹＥＳを選択する。
【００９６】
つまり、フレーム間符号化ブロックでは、量子化コードテーブルインデックスループ及び量子化マトリクスインデックスループを実行しない。また、それぞれインデックス０しか選択しえないので、シンタクスも送る必要は無い。このようにして、効果の高いフレーム内符号化領域のみにそれぞれの量子化に関するパラメータを用いて符号化を行い、フレーム間符号化領域には適用しないことで、処理負担の改善ができ、符号化効率を向上することが可能である。
【００９７】
以上説明したように本実施の形態では、複数の選択可能な符号化モードの各々について、実際に仮符号化処理がなされ、モードごとの符号化データの符号量と符号化歪みから得られた符号化コストの最も小さいモードが選択される。選択されたモードに基づいて、量子化コードテーブルループとして再度仮符号化処理を行い、符号化コストが最も小さい量子化コードテーブルが選択される。選択された符号化モードと量子化コードテーブルに基づいて、量子化マトリクスループとして再度仮符号化処理を行い、符号化コストがもっとも小さい量子化マトリクスインデックスが決定される。これらの量子化に関するパラメータを用いて、再符号化が行われ、符号化データが出力される。このように量子化コードテーブルを用いてマクロブロック内の量子化パラメータを小ブロック毎に制御してモード選択を行い、さらに量子化マトリクスをマクロブロック毎に適応的に切り替えて符号化を行っているので、予測ブロック形状及び予測方法に応じて符号化効率の高い符号化を行うことができる、つまり画素ブロックの内容等に応じて好適な量子化をなすことができる。
【００９８】
図１５に、本実施の形態に係る動画像復号化装置３００の構成を示す。動画像符号化装置１００から送出され、伝送系または蓄積系を経て送られてきた符号化データは、入力バッファ３０１に一度蓄えられ、多重化分離器３０２により１フレーム毎にシンタクスに基づいて分離された後、可変長復号化器３０３に入力される。可変長復号化器３０３では、符号化データの各シンタクスの可変長符号が復号され、量子化変換係数、量子化マトリクス、量子化パラメータ、量子化コードテーブル情報、モード情報、動きベクトル情報などが再生される。
【００９９】
量子化変換係数は、再生された各情報のうち、量子化マトリクス、量子化パラメータ、量子化コードテーブル情報を用いて、逆量子化器３０４で逆量子化され、逆直交変換器３０５で逆直交変換される。ここでモード情報がイントラ符号化モードを示している場合には、逆直交変換器３０５から再生画像信号が出力され、加算器３０６を介して最終的な再生画像信号３１０として出力される。
【０１００】
モード情報がインター符号化モードを示している場合には、逆直交変換器３０５から予測誤差信号が出力され、さらにモード選択スイッチ３０９がオンとされる。予測誤差信号とフレームメモリ／予測画像生成器３０８から出力される予測画像信号２１２が加算器１０６で加算されることにより、再生画像信号３１０が出力される。再生画像信号３１０は、フレームメモリ／予測画像作成器３０８に参照画像信号として蓄積される。
【０１０１】
モード情報、動きベクトル情報は、フレームメモリ／予測画像作成器３０８に入力される。モード情報はモード選択スイッチ３０９にも入力され、該スイッチ３０９をイントラ符号化モードの場合にはオフ、インター符号化モードの場合にはオンとする。
【０１０２】
可変長復号化部３０３は、多重化分離されたデータから各々の方式に従って可変長復号を行い、それぞれ復号化に必要な情報をセットする。本実施の形態で送られてくるシンタクスの概要は図４で示されている。
【０１０３】
シンタクスは主に３つのパートからなり、High Level Syntax（４０１）はスライス以上の上位レイヤのシンタクス情報が詰め込まれている。Slice Level Syntax（４０４）では、スライス毎に必要な情報が明記されており、Macroblock Level Syntax（４０７）では、マクロブロック毎に必要とされる誤差信号やモード情報などが明記されている。
【０１０４】
それぞれは、さらに詳細なシンタクスで構成されており、High Level Syntax（４０１）では、Sequence parameter set syntax（４０２）とPicture parameter set syntax（４０３）などのシーケンス、ピクチャレベルのシンタクスから構成されている。Slice Level Syntax（４０４）では、Slice header syntax（４０５）、Slice data syntax（４０６）などから成る。さらに、Macroblock Level Syntax（４０７）は、macroblock layer syntax（４０８）、macroblock prediction syntax（４０９）などから構成されている。
【０１０５】
本実施の形態で、必要となるシンタクス情報はシーケンスヘッダ（４０２）、スライスヘッダ（４０５）、マクロブロックヘッダ（４０８）であり、それぞれのシンタクスを以下で説明する。
【０１０６】
図５のシーケンスヘッダ内に示されるex_quant_code_in_slice_flagは、量子化コードテーブルインデックスをスライス毎に復号化するかどうかを示すフラグであり、このフラグが１の場合、量子化コードテーブルインデックスはスライス毎に変更されて復号化される。一方、ex_quant_code_in_mb_flagは、量子化コードテーブルインデックス量子化コードテーブルインデックスをマクロブロック毎に復号化するかどうかを示すフラグであり、このフラグが１の場合、エンコーダはマクロブロック毎に量子化コードテーブルインデックス量子化コードテーブルインデックスを変更して復号化される。
【０１０７】
図５で示されるex_quant_code_in_slice_flagが１の場合、図６のスライスヘッダ内でslice_ex_code_zero_flagが復号化される。このフラグは選択された量子化コードテーブルインデックスが０であることを示しており、このフラグが１のとき、現在のスライスでは従来の逆量子化が選択されていることを示す。つまり、マクロブロック内で量子化パラメータが等しいことを示す。このとき、rem_slice_ex_code_numは符号化されない。一方、slice_ex_code_zero_flagが１であるとき、現在選択された量子化コードテーブルインデックスQCは次式（１５）の値として復号化される。
【数１６】
2006262004.tif 000018
【０１０８】
同様に、図５で示されるex_quant_code_in_mb_flagが１の場合、図７のマクロブロックヘッダ内でmb_ex_code_zero_flagが復号化される。このフラグは選択された量子化コードテーブルインデックスが０であることを示しており、このフラグが１のとき、現在のマクロブロックでは従来の逆量子化が選択されていることを示す。つまり、マクロブロック内で量子化パラメータが等しいことを示す。このとき、rem_mb_ex_code_numは符号化されない。一方、mb_ex_code_zero_flagが１であるとき、現在選択された量子化コードテーブルインデックスQCは次式（１６）の値として復号化される。
【数１７】
2006262004.tif 000019
【０１０９】
シーケンスヘッダ、スライスヘッダ、マクロブロックヘッダなどから得られた情報は、復号化制御部３１０に設定され、以後の信号処理部で利用される。
【０１１０】
一方、シンタクスに関する別の実施の形態として、次のシンタクスが考えられる。図８にスライスヘッダのデータ構造の一部、及び図９にマクロブロックレイヤーのデータ構造の一部を示す。先ほどとは異なり、どちらも多重化分離部３０２で分離された量子化コードテーブルインデックスをそのまま可変長復号化、あるいは固定長復号化する。
【０１１１】
逆量子化部３０４では、可変長復号された量子化コードテーブル情報を用いて現在のマクロブロックの量子化コードテーブルを量子化コードテーブルインデックスから呼び出し、対応する画素ブロック毎に小画素ブロックの量子化パラメータを設定して、式（３）で示されるような逆量子化が行われる。
【０１１２】
この逆量子化の詳細な説明は以下のようになる。可変長復号化部３０３で復号化された量子化コードテーブルを示すインデックスＱＣを用いて、式（９）と同じ次式（１７）により量子化パラメータが算出される。
【数１８】
2006262004.tif 000020
【０１１３】
ＱＰblkは量子化コードテーブルインデックスＱＣから導出された小画素ブロック量子化パラメータを表しており、ＱＰはマクロブロックの量子化パラメータを示す。ＱＰの値は、マクロブロックヘッダから可変長復号されて得ることができる。ＱＶ（ＱＣ，blk）は量子化コードテーブルインデックスＱＣ、ブロックナンバーblkで示される量子化コードを示している。これらの処理は、８×８ブロック単位で行っても良いし４×４ブロック単位で行っても良い。例えば、８×８ブロック単位の量子化コードテーブルは式（１０）と同じ次式（１８）により定義される。
【数１９】
2006262004.tif 000021
【０１１４】
例えば−１はマクロブロックの量子化パラメータを−1して、対象とする８×８ブロックの逆量子化を行うことを示している。
【０１１５】
マクロブロック内には４つの８×８ブロックが存在する。よってblkは０から３までの値を取る。
【数２０】
2006262004.tif 000022
【０１１６】
それぞれの位置に対応するパラメータ変化度を用いて量子化パラメータを変更する。８×８画素単位で量子化パラメータを変える場合、４×４画素ブロック量子化器では、図３左側に示すように４つのブロックで同じ量子化パラメータで逆量子化が行われる。一方、８×８画素ブロック量子化器の場合は図３右側に示すようにブロック毎に量子化パラメータを変更する。
【０１１７】
次に量子化マトリクスのインデックスの復号化方法について説明する。図１２にシーケンスヘッダのデータ構造の一部、図１３にスライスヘッダのデータ構造の一部、図１４にマクロブロックヘッダのデータ構造の一部を示す。これらは、図４のシンタクス構造と同様に定義されている。
【０１１８】
図１２で示されるex_quant_matrix_in_slice_flagはスライス毎に量子化マトリクスのインデックスを復号化するかどうかを示すフラグであり、ex_quant_matrix_in_mb_flagはマクロブロック毎に量子化マトリクスのインデックスを復号化するかどうかを示すフラグである。
【０１１９】
slice_ex_matrix_flagは、そのスライスで量子化マトリクスを使うかどうかを示すフラグであり、slice_ex_matrix_flagが１のときは対応する量子化マトリクスを使用する。この場合、量子化マトリクスを受け取っても良いし、Ｈ．２６４ Ｈｉｇｈプロファイルにあるようなデフォルトマトリクスを使用するように取り決めておいても良い。slice_ex_matrix_flagが０のときは、そのスライス内では、逆量子化時に量子化マトリクスを使用しないことを意味する。同様に、mb_ex_matrix_flagは対応するマクロブロックで量子化マトリクスを使用するかどうかを示すフラグであり、１のときは量子化マトリクスを用いて逆量子化する。
【０１２０】
尚、図１２、１３で示されるような１ビットで示されるフラグではなく、対応する量子化マトリクスのインデックスをそのまま受け取って、複数の量子化マトリクスを用いて逆量子化してもよい。このとき、復号化器では、それぞれの量子化マトリクスのインデックスに対応する量子化マトリクステーブルを所持している（または量子化マトリクスを符号化データから復号化する）必要がある。
【０１２１】
実際に逆量子化時にどのように量子化マトリクスを切り替えるのかについて以下に詳細に説明する。スライスヘッダのslice_ex_matrix_flag或いはマクロブロックヘッダのmb_ex_matrix_flagが０であるとき、対応するスライス或いはマクロブロックでは、量子化マトリクスを使用しない（つまり、フラットな逆量子化が行われる）。一方、スライスヘッダのslice_ex_matrix_flag或いはマクロブロックヘッダのmb_ex_matrix_flagが１であるとき、対応するスライス或いはマクロブロックでは、送られてきた量子化マトリクス、或いはデフォルトマトリクスを用いて逆量子化が行われる。例えば、デフォルトマトリクスを用いた場合には、本方式によるとスライス又はマクロブロック毎に、デフォルトマトリクスとフラットなマトリクスを選択する。Ｈ．２６４の４×４画素ブロックにおけるデフォルトマトリクスとフラットなマトリクス（量子化マトリクスを用いない場合に対応）を式（１９）に示す。
【数２１】
2006262004.tif 000023
【０１２２】
このように本方式を用いると、式（３）の逆量子化を行なう場合に、式（４）の量子化マトリクスが、スライス毎或いはマクロブロック毎に変更できるため、主観画質を考慮した逆量子化が可能となる。このように、逆量子化部３０４では、動画像符号化装置で行われる量子化と同様の方式を用いて逆量子化が行われる。
【０１２３】
上記実施の形態においては動画像符号化を例にとり説明したが、静止画像符号化にも本発明を適用することができる。
【図面の簡単な説明】
【０１２４】
【図１】本発明の第１の実施の形態に従う画像符号化装置の構成を示すブロック図。
【図２】同画像符号化装置による動画像符号化方法の処理フローチャート。
【図３】同実施の形態に係わる量子化・逆量子化の方法を示す図。
【図４】同実施の形態に係わるシンタクス構造の概略を示す図。
【図５】同実施の形態に係わるシーケンスヘッダのデータ構造を示す図。
【図６】同実施の形態に係わるスライスヘッダのデータ構造を示す図。
【図７】同実施の形態に係わるマクロブロックレイヤーのデータ構造を示す図。
【図８】同実施の形態に係わるスライスヘッダのデータ構造を示す図。
【図９】同実施の形態に係わるマクロブロックレイヤーのデータ構造を示す図。
【図１０】同実施の形態に係わる量子化コードテーブルインデックス量子化コードテーブルインデックスを示す図。
【図１１】第２の実施の形態に従う画像符号化方法の処理フローチャート。
【図１２】同実施の形態に従うシーケンスヘッダのデータ構造を示す図。
【図１３】同実施の形態に従うスライスヘッダのデータ構造を示す図。
【図１４】同実施の形態に従うマクロブロックヘッダのデータ構造を示す図。
【図１５】本発明の実施の形態に従う画像復号化装置の構成を示すブロック図。
【符号の説明】
【０１２５】
１００・・・動画像符号化装置、１０１・・・量子化セット選択部、１０２・・・直交変換部、１０３・・・量子化部、１０４・・・スイッチ、１０５・・・仮符号化及び符号量測定部、１０６・・・符号化歪み測定部、１０７・・・符号化モード制御・判定部、１０８・・・逆量子化部、１０９・・・逆直交変換部。１１０・・・予測復号化部、１１１・・・参照画像メモリ、１１２・・・可変長符号化部、１２０・・・予測信号生成部、１２１・・・符号化制御部、１２２・・・多重化部、１２３・・・出力バッファ
【図１】
2006262004.tif 000024
【図２】
2006262004.tif 000025
【図３】
2006262004.tif 000026
【図４】
2006262004.tif 000027
【図５】
2006262004.tif 000028
【図６】
2006262004.tif 000029
【図７】
2006262004.tif 000030
【図８】
2006262004.tif 000031
【図９】
2006262004.tif 000032
【図１０】
2006262004.tif 000033
【図１１】
2006262004.tif 000034
【図１２】
2006262004.tif 000035
【図１３】
2006262004.tif 000036
【図１４】
2006262004.tif 000037
【図１５】
2006262004.tif 000038