(57)【特許請求の範囲】
【請求項１】
入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化ステップと、
前記対象領域内の前記複数のブロック間で共通な周波数成分の係数を有する複数の係数列を前記係数毎に可変長符号化する第１可変長符号化ステップと、前記係数列を可変長の部分データ毎に符号化する第２可変長符号化ステップとを含む可変長符号化ステップと、
既に復号が完了した参照画像を用いて前記ブロックの予測画像を予測する予測ステップと
を有し、
前記変換・量子化ステップは、
前記予測画像と前記入力画像の前記ブロックとの予測誤差を直交変換および量子化して前記係数を求め、
前記可変長符号化ステップは、
前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記入力画像の信号成分とのうち少なくとも１に基づき、前記第１可変長符号化ステップの実行と第２可変長符号化ステップの実行とを前記係数列毎に切り替える
ことを特徴とする画像符号化方法。
【請求項２】
前記可変長符号化ステップは、
前記周波数成分を直流成分を含む低周波成分と高周波成分とに分けた場合の、低周波成分の係数列に対して前記第１可変長符号化ステップを実行し、高周波成分の係数列に対して前記第２可変長符号化ステップを実行するように、該第１可変長符号化ステップの実行と該第２可変長符号化ステップの実行とを切り替える
ことを特徴とする請求項１に記載の画像符号化方法。
【請求項３】
前記可変長符号化ステップは、
前記量子化幅が大きくなるにつれて前記低周波成分の範囲を縮小し、
前記量子化幅が小さくなるにつれて前記低周波成分の範囲を拡大する
ことを特徴とする請求項２に記載の画像符号化方法。
【請求項４】
前記第１可変長符号化ステップは、
ゴロム・ライス符号化を用いて前記係数の可変長符号化を行い、ゴロム・ライス符号の固定長部分の長さを示すパラメータを、前記対象領域内で前記係数列毎に切り替えて前記係数の可変長符号化を行う
ことを特徴とする請求項３に記載の画像符号化方法。
【請求項５】
圧縮率を設定する設定ステップと、
前記設定ステップで設定された前記圧縮率に従い、符号長を固定的として前記ブロックに対して符号化を行う固定長符号化ステップと、
前記ブロックに対して前記可変長符号化ステップで符号化を行った際の時間当たりの発生符号量が、前記設定ステップで設定された前記圧縮率に応じた符号量を超えるか否かを判定する判定ステップと、
前記判定ステップで、前記発生符号量が前記圧縮率に応じた符号量を超えると判定されたら、前記固定長符号化ステップにより前記ブロックに対する符号化を行い、前記判定ステップで、前記発生符号量が前記圧縮率に応じた符号量を超えないと判定されたら、前記可変長符号化ステップにより前記ブロックに対する符号化を行う符号化ステップと、
前記符号化ステップで前記可変長符号化ステップと前記固定長符号化ステップとのうち何れを用いて符号化を行ったかを示す圧縮情報を符号化する圧縮情報符号化ステップと
をさらに有する
ことを特徴とする請求項４に記載の画像符号化方法。
【請求項６】
前記可変長符号化ステップは、
前記圧縮率が小さくなるにつれて前記低周波成分の範囲を拡大し、
前記圧縮率が大きくなるにつれて前記低周波成分の範囲を縮小する
ことを特徴とする請求項５に記載の画像符号化方法。
【請求項７】
前記第１可変長符号化ステップは、
ハフマン符号化を用いて前記係数の可変長符号化を行い、前記ハフマン符号化に用いる符号表を決定する確率モデルを、前記対象領域内で前記係数列毎に切り替えて前記係数の可変長符号化を行う
ことを特徴とする請求項３に記載の画像符号化方法。
【請求項８】
前記第１可変長符号化ステップおよび前記第２可変長符号化ステップは、
算術符号化を用いて前記係数の可変長符号化を行い、前記算術符号化の遷移状態を示すコンテクストにおいて、前記第１可変長符号化ステップと前記第２可変長符号化ステップとで異なる前記コンテクストを用いて可変長符号化を行う
ことを特徴とする請求項３に記載の画像符号化方法。
【請求項９】
前記可変長符号化ステップは、
前記予測処理による予測の方向が水平予測の場合、垂直成分の範囲よりも水平成分の範囲が広くなるように前記低周波成分の範囲を設定し、
前記予測処理による予測の方向が垂直予測の場合、水平成分の範囲よりも垂直成分の範囲が広くなるように前記低周波成分の範囲を設定する
ことを特徴とする請求項２に記載の画像符号化方法。
【請求項１０】
復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの、前記画像に対して既に復号が完了した参照画像を用いて予測処理が行われた予測画像の該画像との誤差を前記ブロックを単位として直交変換および量子化して求めた係数を符号化して生成された符号化データを、前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記画像の信号成分とのうち少なくとも１に基づき、前記符号化データを前記係数毎に可変長復号する第１可変長復号ステップの実行と前記符号化データを可変長の部分データ毎に可変長復号する第２可変長復号ステップの実行とを前記係数列毎に切り替えて可変長復号して、前記複数の係数列を得る可変長復号ステップと、
前記複数の係数列のうち前記復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換ステップと
を有する
ことを特徴とする画像復号方法。
【請求項１１】
前記可変長復号ステップは、
前記周波数成分を直流成分を含む低周波成分と高周波成分とに分けた場合の、低周波成分の係数列に対して前記第１可変長復号ステップを実行し、高周波成分の係数列に対して前記第２可変長復号ステップを実行するように、該第１可変長復号ステップの実行と該第２可変長復号ステップの実行とを切り替える
ことを特徴とする請求項１０に記載の画像復号方法。
【請求項１２】
前記可変長復号ステップは、
前記量子化幅が大きくなるにつれて前記低周波成分の範囲を縮小し、
前記量子化幅が小さくなるにつれて前記低周波成分の範囲を拡大する
ことを特徴とする請求項１１に記載の画像復号方法。
【請求項１３】
前記第１可変長復号ステップは、
ゴロム・ライス符号の可変長復号を行って前記符号化データから前記係数の復号を行い、前記ゴロム・ライス符号の固定長部分の長さを示すパラメータを、前記復号対象領域内で前記係数列毎に切り替えて前記係数の可変長復号を行う
ことを特徴とする請求項１２に記載の画像復号方法。
【請求項１４】
前記符号化データは、単位時間当たりの発生符号量が所定の符号量を超えないように設定された圧縮率に従い、符号長を固定的として前記ブロックに対して符号化を行う固定長符号化と、可変長符号を用いて前記ブロックに対して符号化を行う可変長符号化とがブロック単位で切り替えられて前記画像に対して符号化を行って生成され、
前記固定長符号化により符号化が行われた前記符号化データに対して復号を行う第１の復号ステップと、
前記可変長符号化により符号化が行われた前記符号化データに対して、前記切替ステップで前記第１の可変長復号ステップの実行と前記第２の可変長復号ステップの実行とを切り替えて復号を行う第２の復号ステップと、
前記符号化データと共に供給される、該符号化データに対して前記固定長符号化と前記可変長符号化とのうち何れを用いて符号化が行われたかを示す符号化方法情報に対して復号を行う符号化方法情報復号ステップと、
前記符号化方法情報復号ステップで復号が行われた前記符号化方法情報に従い前記第１の復号ステップの実行と前記第２の復号ステップの実行とのうち一方を選択する選択ステップと
をさらに有する
ことを特徴とする請求項１３に記載の画像復号方法。
【請求項１５】
前記可変長復号ステップは、
前記圧縮率が小さくなるにつれて前記低周波成分の範囲を拡大し、
前記圧縮率が大きくなるにつれて前記低周波成分の範囲を縮小する
ことを特徴とする請求項１４に記載の画像復号方法。
【請求項１６】
前記第１可変長復号ステップは、
ハフマン符号の可変長復号を行って前記符号化データから前記係数の復号を行い、該ハフマン符号を生成する際に用いる符号表を決定する確率モデルを、前記復号対象領域内で前記係数列毎に切り替えて前記係数の可変長復号を行う
ことを特徴とする請求項１２に記載の画像復号方法。
【請求項１７】
前記第１可変長復号ステップおよび前記第２可変長復号ステップは、
算術符号の可変長復号を行って前記符号化データから前記係数の復号を行い、該算術符号を生成する算術符号化の遷移状態を示すコンテクストにおいて、前記第１可変長復号ステップと前記第２可変長復号ステップとで異なる前記コンテクストを用いて可変長復号を行う
ことを特徴とする請求項１２に記載の画像復号方法。
【請求項１８】
前記切替ステップは、
前記予測処理による予測の方向が水平予測の場合、垂直成分の範囲よりも水平成分の範囲が広くなるように前記低周波成分の範囲を設定し、
前記予測処理による予測の方向が垂直予測の場合、水平成分の範囲よりも垂直成分の範囲が広くなるように前記低周波成分の範囲を設定する
ことを特徴とする請求項１１に記載の画像復号方法。
【請求項１９】
入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化部と、
前記対象領域内の前記複数のブロック間で共通な周波数成分の係数を有する複数の係数列を、前記係数毎に可変長符号化する第１可変長符号化部と、前記係数列を可変長の部分データ毎に符号化する第２可変長符号化部とを含む可変長符号化部と、
既に復号が完了した参照画像を用いて前記ブロックの予測画像を予測する予測部と
を有し、
前記変換・量子化部は、
前記予測画像と前記入力画像の前記ブロックとの予測誤差を直交変換および量子化して前記係数を求め、
前記可変長符号化部は、
前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記入力画像の信号成分とのうち少なくとも１に基づき、前記第１可変長符号化部による符号化と第２可変長符号化部による符号化とを前記係数列毎に切り替える
ことを特徴とする画像符号化装置。
【請求項２０】
第１可変長復号部と第２可変長復号部とを含み、復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの、前記画像に対して既に復号が完了した参照画像を用いて予測処理が行われた予測画像の該画像との誤差を前記ブロックを単位として直交変換および量子化して求めた係数を符号化して生成された符号化データを、前記量子化の幅を示す量子化幅と、前記予測処理による予測の方向を示す予測方向と、前記画像の信号成分とのうち少なくとも１に基づき、前記符号化データを前記係数毎に可変長復号する前記第１可変長復号部による復号と前記符号化データを可変長の部分データ毎に可変長復号する前記第２可変長復号部による復号とを前記係数列毎に切り替えて可変長復号して、前記複数の係数列を得る可変長復号部と、
前記複数の係数列のうち前記復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換部と
を有する
ことを特徴とする画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化に関する。
【背景技術】
【０００２】
従来から、動画像データを圧縮符号化する圧縮符号化方法が知られている。このような圧縮符号化方法では、例えば８画素×８画素といった所定サイズの矩形ブロック単位で予測処理、変換処理およびエントロピー符号化処理を行うのが一般的である。例えばＡＶＣ／Ｈ．２６４では、符号化ブロックを予測、ＤＣＴおよび量子化の処理後の２次元変換係数をジグザグスキャンすることで１次元データ化し、さらに隣接ブロックにおけるＤＣＴ係数の個数に応じて可変長符号化テーブルを適応的に切り替えることで変換係数の符号化を行う。【０００３】
特許文献１では、変換および量子化後の２次元変換係数を走査し、量子化パラメータに応じて、ランとレベルの頻度数に対して最適化された複数の可変長符号化テーブルのうち１つを選択して係数の符号化を行うことで、符号化効率の改善を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許３３３７５８３号公報（米国特許第５６５０７８２号）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
装置内部で用いられる画像処理ＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などでは、回路レイアウトなど様々な制約からメモリバンド幅などが制限されるため、符号化ブロックを例えば２画素×２画素といった小さいサイズで構成する必要が生じる場合がある。しかしながら、ＡＶＣ／Ｈ．２６４および特許文献１では、符号化ブロック単位で変換係数の１次元化を行うため、符号化ブロックのサイズが小さい場合にはラン数が大きくならず、必ずしも符号化効率が改善しない。【０００６】
また、特許文献１では、可変長符号化テーブルをブロック単位で切り替えるため、変換係数と空間周波数との関係を利用した符号化を行うことができず、必ずしも符号化効率が改善しない。【０００７】
したがって、本発明の目的は、より高い符号化効率を実現可能な画像符号化方法および画像復号方法、ならびに、画像符号化装置および画像復号装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上述した課題を解決するために、入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化ステップと、対象領域内の複数のブロック間で共通な周波数成分の係数を有する複数の係数列を係数毎に可変長符号化する第１可変長符号化ステップと、係数列を可変長の部分データ毎に符号化する第２可変長符号化ステップとを含む可変長符号化ステップと、既に復号が完了した参照画像を用いてブロックの予測画像を予測する予測ステップとを有し、変換・量子化ステップは、予測画像と入力画像のブロックとの予測誤差を直交変換および量子化して係数を求め、可変長符号化ステップは、量子化の幅を示す量子化幅と、予測処理による予測の方向を示す予測方向と、入力画像の信号成分とのうち少なくとも１に基づき、第１可変長符号化ステップの実行と第２可変長符号化ステップの実行とを係数列毎に切り替えることを特徴とする。
【０００９】
また、本発明は、復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの、画像に対して既に復号が完了した参照画像を用いて予測処理が行われた予測画像の画像との誤差をブロックを単位として直交変換および量子化して求めた係数を符号化して生成された符号化データを、量子化の幅を示す量子化幅と、予測処理による予測の方向を示す予測方向と、画像の信号成分とのうち少なくとも１に基づき、符号化データを係数毎に可変長復号する第１可変長復号ステップの実行と符号化データを可変長の部分データ毎に可変長復号する第２可変長復号ステップの実行とを係数列毎に切り替えて可変長復号して、複数の係数列を得る可変長復号ステップと、複数の係数列のうち復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換ステップとを有することを特徴とする。
また、本発明は、入力画像の対象領域内の複数のブロックのそれぞれを単位として直交変換および量子化して係数を求める変換・量子化部と、対象領域内の複数のブロック間で共通な周波数成分の係数を有する複数の係数列を、係数毎に可変長符号化する第１可変長符号化部と、係数列を可変長の部分データ毎に符号化する第２可変長符号化部とを含む可変長符号化部と、既に復号が完了した参照画像を用いてブロックの予測画像を予測する予測部とを有し、変換・量子化部は、予測画像と入力画像のブロックとの予測誤差を直交変換および量子化して係数を求め、可変長符号化部は、量子化の幅を示す量子化幅と、予測処理による予測の方向を示す予測方向と、入力画像の信号成分とのうち少なくとも１に基づき、第１可変長符号化部による符号化と第２可変長符号化部による符号化とを係数列毎に切り替えることを特徴とする。
また、本発明は、第１可変長復号部と第２可変長復号部とを含み、復号対象画像の復号対象領域内の複数の復号対象ブロック間で共通な周波数成分の係数を有する複数の係数列のそれぞれの、画像に対して既に復号が完了した参照画像を用いて予測処理が行われた予測画像の画像との誤差をブロックを単位として直交変換および量子化して求めた係数を符号化して生成された符号化データを、量子化の幅を示す量子化幅と、予測処理による予測の方向を示す予測方向と、画像の信号成分とのうち少なくとも１に基づき、符号化データを係数毎に可変長復号する第１可変長復号部による復号と符号化データを可変長の部分データ毎に可変長復号する第２可変長復号部による復号とを係数列毎に切り替えて可変長復号して、複数の係数列を得る可変長復号部と、複数の係数列のうち復号対象ブロック毎の係数を逆量子化・逆変換する逆量子化・逆変換部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明は、より高い符号化効率が実現可能であるという効果がある。
【図面の簡単な説明】
【００１１】
【図１Ａ】第１の実施形態の画像符号化装置を示す図。
【図１Ｂ】第１の実施形態の他の画像符号化装置を示す図。
【図２Ａ】直交変換を説明する図。
【図２Ｂ】直交変換を説明する図。
【図２Ｃ】直交変換を説明する図。
【図３Ａ】イントラ予測を示す図。
【図３Ｂ】イントラ予測を示す図。
【図３Ｃ】イントラ予測を示す図。
【図３Ｄ】イントラ予測を示す図。
【図３Ｅ】イントラ予測を示す図。
【図４】第１の実施形態のエントロピー符号化部を示す図。
【図５】第１の実施形態の係数符号化部を示す図。
【図６Ａ】係数位置のグループ分けを示す図。
【図６Ｂ】係数位置のグループ分けを示す図。
【図７】ゴロム・ライス符号を示す図。
【図８】ランレングス符号化の処理を示すフローチャート。
【図９】ランレングス符号化の例を示す図。
【図１０】スキップ符号化の例を示す図。
【図１１Ａ】画像ブロックの図。
【図１１Ｂ】小画素ブロックの図。
【図１２Ａ】小画素ブロックを生成する他の方法の図。
【図１２Ｂ】小画素ブロックを生成する他の方法の図。
【図１３】画像ブロックと小画素ブロックとを係数位置で表現した図。
【図１４Ａ】変換係数を位置毎に纏めて並べ替えた図。
【図１４Ｂ】変換係数を位置毎に纏めて並べ替えた図。
【図１４Ｃ】変換係数を位置毎に纏めて並べ替えた図。
【図１４Ｄ】変換係数を位置毎に纏めて並べ替えた図。
【図１５】係数符号化部の処理を示すフローチャート。
【図１６】符号化パラメータｋを決定する処理を示すフローチャート。
【図１７Ａ】第１のシンタクスを示す図。
【図１７Ｂ】第１のシンタクスを示す図。
【図１７Ｃ】第１のシンタクスを示す図。
【図１８Ａ】第２のシンタクスを示す図。
【図１８Ｂ】第２のシンタクスを示す図。
【図１９】第２の実施形態の画像符号化装置を示す図。
【図２０】ＱＰnと量子化ステップサイズを示す図。
【図２１】第３の実施形態のエントロピー符号化部を示す図。
【図２２Ａ】ＱＰnに対する各係数位置のフラグCodingMethodFlagを示す図。
【図２２Ｂ】目標符号量に対する各係数位置のフラグCodingMethodFlagを示す図。
【図２２Ｃ】予測方向に対する各係数位置のフラグCodingMethodFlagを示す図。
【図２２Ｄ】画像信号成分に対する各係数位置のフラグCodingMethodFlagを示す図。
【図２３Ａ】第４の実施形態の画像復号装置を示す図。
【図２３Ｂ】第４の実施形態の他の画像復号装置を示す図。
【図２４】第４の実施形態の符号列復号部を示す図。
【図２５】第４の実施形態の係数復号部を示す図。
【図２６】ランレングス符号を復号する手順を示すフローチャート。
【図２７】第５の実施形態の画像復号装置を示す図。
【図２８】第６の実施形態の符号列復号部を示す図。
【図２９】第６の実施形態の画像復号装置を示す図。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
以下、第１の実施形態を図面を参照しながら説明する。図１Ａは、本発明の第１の実施形態に適用可能な画像符号化装置１の一例の構成を示すブロック図である。この画像符号化装置１は、画像符号化部１００、符号化制御部１３０およびバッファ１０９を有する。
【００１３】
画像符号化部１００に対して、動画像データが所定サイズに分割された画像ブロック１０が入力される。画像符号化部１００は、符号化制御部１３０の制御に従い、入力された画像ブロック１０を所定サイズの小画素ブロック１１に分割する。画像符号化部１００は、この小画素ブロック１１に基づき、変換処理および量子化処理、予測符号化処理、ならびに、エントロピー符号化処理を行い、符号化データ１４を生成する。
【００１４】
符号化データ１４は、バッファ１０９に一旦溜め込まれ、例えば１フレームを単位として画像符号化装置１から出力される。なお、この画像符号化部１００における各処理は、動画像データの各画像信号成分（例えば輝度成分Ｙ、色差成分Ｕ、Ｖ）に対してそれぞれ行われる。
【００１５】
画像符号化部１００の一例の構成について、より詳細に説明する。図１において、画像符号化部１００は、分割部１０１、減算器１０２、変換および量子化部１０３、エントロピー符号化部１０４、逆量子化および逆変換部１０５、加算器１０６、メモリ１０７、予測部１０８を有し、符号化制御部１３０によって制御される。
【００１６】
符号化制御部１３０は、画像符号化装置１による符号化処理全般を制御するための符号化制御情報４０を、画像符号化部１００に供給する。また、符号化制御部１３０は、画像符号化部１００における符号化処理の結果に基づき出力されるフィードバック情報４１を、適宜、受け取る。符号化制御情報４０は、モード情報３１および符号化方法情報３０などを含む。モード情報３１は、後述する予測モードを示す予測モード情報や、量子化パラメータ（ＱＰ）、量子化幅（量子化ステップサイズ）、量子化マトリクスなどの量子化処理に関するパラメータを含む量子化情報といった、変換係数以外の復号に必要な情報を含む。フィードバック情報４１は、画像符号化部１００での発生符号量を示す符号量情報が含まれる。
【００１７】
画像符号化部１００は、例えばＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）チップ上に構成された回路などのハードウェアにより実現される。この場合、符号化制御部１３０は、当該ＬＳＩに接続されるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）上でプログラムを実行させることで実現してもよいし、画像符号化部１００と同様にしてハードウェアで構成してもよい。画像符号化部１００は、符号化制御部１３０と共に、コンピュータなどでＣＰＵ上で画像符号化プログラムを実行させることでも実現可能である。
【００１８】
入力された画像ブロック１０は、分割部１０１において所定サイズのブロック単位に分割され、小画素ブロック１１とされる。ここで、画像ブロック１０は、１フレームの画像データまたは１フレームの画像データを分割した一領域である。例えば、画像ブロック１０は、ｎ画素×ｍ画素（ｎ，ｍはそれぞれ自然数）からなる画素ブロックであって、１ライン分の画素データからなる画素ラインや、複数ライン分の画素データからなる画素ブロックラインも画像ブロックの概念に含まれる。小画素ブロック１１は、例えばＮ画素×Ｍ画素からなる画素ブロック（Ｎ，Ｍはそれぞれ自然数、且つ、Ｎ≦ｎおよびＭ≦ｍ）である。画像符号化部１００では、この小画素ブロック１１を単位として予測符号化処理や変換処理などが行われる。
【００１９】
分割部１０１から出力された小画素ブロック１１は、減算器１０２に供給される。減算器１０２は、供給された小画素ブロック１１から、後述する予測部１０８より出力される予測画像信号１９を減算して、予測誤差信号１２を生成する。予測誤差信号１２は、変換および量子化部１０３に供給される。
【００２０】
変換および量子化部１０３は、先ず、供給された予測誤差信号１２に対して所定の変換処理を施し、変換係数を生成する。ここでは、変換処理として、アダマール変換やＤＣＴ（離散コサイン変換）といった直交変換を用いる。これに限らず、ウェーブレット変換や独立成分解析などの手法を用いて変換係数を生成してもよい。
【００２１】
直交変換の例について、図２Ａ、図２Ｂおよび図２Ｃを用いて説明する。図２Ａは４×１変換、図２Ｂは２×２変換、図２Ｃは４×４変換の例をそれぞれ示す。
【００２２】
４×１変換では、図２Ａに例示されるように、分割部１０１で４画素×１画素の小画素ブロック１１を生成し、４画素×１画素でブロック化された予測誤差信号１２に対して、水平１次元の直交変換を適用する。直交変換後の変換係数は、空間周波数成分に分解されている。図２Ａの例では、値「０」で示される位置が最も空間周波数が低いＤＣ成分を表し、値が大きくなる位置ほど高い空間周波数成分を表す。
【００２３】
２×２変換では、図２Ｂに例示されるように、分割部１０１で２画素×２画素の小画素ブロック１１を生成し、２画素×２画素でブロック化された予測誤差信号１２に対して、水平および垂直方向の２次元の直交変換を適用する。図中の値（ｘ，ｙ）は、値ｘが垂直方向の空間周波数成分の位置、値ｙが水平方向の空間周波数成分の位置を示し、それぞれ数値が大きいほど高い空間周波数成分を表す。図２Ｂの例では、左上の値（０，０）で示される位置が最も空間周波数が低いＤＣ成分を表し、右下の値（１，１）で示される位置が最も高い空間周波数成分を表す。
【００２４】
なお、以下では、２×２変換において位置を示す値「０」をＬｏｗを意味する「Ｌ」とし、値「１」をＨｉｇｈを示す「Ｈ」として、垂直方向、水平方向の順に各成分を表す。例えば、値（０，０）のＤＣ成分は、ＬＬ成分と表記し、各ＡＣ成分をそれぞれＨＬ成分、ＬＨ成分、ＨＨ成分として、適宜、各成分を表記する。
【００２５】
４×４変換では、図２Ｃに例示されるように、分割部１０１で４画素×４画素の小画素ブロック１１を生成し、４画素×４画素でブロック化された予測誤差信号１２に対して、水平および垂直方向の２次元の直交変換を適用する。図２Ｃの例では、値（ｘ，ｙ）は、値ｘおよび値ｙは、それぞれ垂直方向および水平方向の空間周波数成分の位置を示し、それぞれ数値が大きいほど高い空間周波数成分を表す。値（０，０）がＤＣ成分位置を示し、値（３，３）が最も空間周波数成分が高い位置となる。
【００２６】
変換および量子化部１０３では、上述のようにして生成された変換係数を、後述する符号化制御部１３０に設定されている量子化パラメータＱＰに基づき量子化し、量子化された変換係数である量子化変換係数１３を生成する。量子化変換係数１３は、エントロピー符号化部１０４に供給されると共に、逆量子化および逆変換部１０５に供給される。
【００２７】
逆量子化および逆変換部１０５は、量子化変換係数１３を符号化制御部１３０に設定されている量子化パラメータＱＰに従って逆量子化して量子化変換係数１３を復元する。そして、復元された量子化変換係数１３に対して変換および量子化部１０３で行った変換と逆の変換を行い、元の予測誤差信号１２を復元した復元予測誤差信号１６を生成する。復元予測誤差信号１６は、加算器１０６に供給される。加算器１０６は、この復元予測誤差信号１６と、予測部１０８から出力される予測画像信号１９とを加算して、元の小画素ブロック１１が復元された復元小画素ブロック信号１７を生成する。
【００２８】
復元小画素ブロック信号１７は、メモリ１０７に記憶され、参照画素信号１８として予測部１０８に供給され、後に符号化処理される小画素ブロック１１の予測に用いられる。
【００２９】
予測部１０８は、分割部１０１から出力された小画素ブロック１１に対して、イントラ予測を適用する。図３Ａ〜図３Ｅは、イントラ予測の具体的な例を示す。図３Ａ〜図３Ｅは、それぞれ予測方向の異なる５種類の予測モードが示されている。すなわち、イントラ予測においては、メモリ１０７に記憶される参照画素信号１８のうち、予測対象の画素ブロック（この例では、２画素×２画素からなる画素ブロック）に対して空間的に近接する画素信号を用いて、当該画素ブロックの画素値を予測する。
【００３０】
より具体的には、画像においては隣接画素同士の相関が高いことを利用して、予測方向に従って参照画素信号１８の輝度値を予測対象の画素ブロックに対してコピーすることで、予測画像信号１９を生成する。図３Ａ〜図３Ｅにおいて、文字「ａ」〜「ｄ」が記された升が予測対象となる画素（以下、予測対象画素）であり、影を付して示される、文字「Ａ」〜「Ｇ」が記された升が参照画素信号１８による画素（以下、参照画素）を示す。
【００３１】
図３Ａは水平方向に予測を行う例である。具体的には、参照画素「Ｅ」を水平方向に近接して並ぶ予測対象画素「ａ」および「ｂ」にコピーし、参照画素「Ｆ」を水平方向に近接して並ぶ予測対象画素「ｃ」および「ｄ」にコピーする。図３Ｂは垂直方向に予測を行う例である。具体的には、参照画素「Ａ」を垂直方向に近接して並ぶ予測対象画素「ａ」および「ｃ」にコピーし、参照画素「Ｂ」を垂直方向に近接して並ぶ予測対象画素「ｂ」および「ｄ」にコピーする。
【００３２】
また、図３Ｃは左上および右下を結ぶ斜め方向に予測を行う例である。具体的には、参照画素「Ｅ」を右斜め下の予測対象画素「ｃ」にコピーし、参照画素「Ｇ」を右斜め下の予測対象画素「ａ」および「ｄ」にコピーする。そして、参照画素「Ａ」を右斜め下の予測対象画素「ｂ」にコピーする。図３Ｄは右上および左下を結ぶ斜め方向に予測を行う例である。具体的には、参照画素「Ｂ」を左斜め下の予測対象画素「ａ」にコピーし、参照画素「Ｃ」を左斜め下の予測対象画素「ｂ」および「ｃ」にコピーする。そして、参照画素「Ｄ」を左斜め下の予測対象画素「ｄ」にコピーする。
【００３３】
さらに、図３Ｅは、予測対象となる画素ブロックに隣接する参照画素の平均値を用いて予測を行う例である。具体的には、参照画素「Ａ」、「Ｂ」、「Ｅ」および「Ｆ」の輝度値の平均値を求めて、予測対象画素「ａ」〜「ｄ」にそれぞれコピーする。
【００３４】
このようにして予測部１０８で予測された予測画像信号１９が上述した減算器１０２に供給される。
【００３５】
なお、予測部１０８における予測方法は、上述の例に限定されない。例えば、平面予測やＪＰＥＧ−ＬＳ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−ＬＳ）に採用されているＭＥＤ（Ｍｅｄｉａｎ  Ｅｄｇｅ  Ｄｅｔｅｃｔｉｏｎ）予測、ＣＡＬＩＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｌｏｓｓｌｅｓｓ  Ｉｍａｇｅ  Ｃｏｄｉｎｇ）方式に用いられている傾斜適応予測を用いてもよい。また、ピクチャの境界など、予測対象の画素ブロックに隣接する参照画素が存在しない場合には、予測値を「０」として予測無しとしたり、予測値として例えば値「１２８」などの固定値を用いて予測画像信号１９としてもよい。さらに、予測部１０８に対して、Ｈ．２６４／ＡＶＣに採用されているインター予測を適用してもよい。また、図１Ｂに画像符号化装置１’として例示するように、上述した画像符号化装置１から予測部１０８を取り除いた構成としてもよい。この場合、予測は行われず、画像ブロック１０が直接的に変換および量子化部１０３に入力される。予測部１０８を取り除いた場合、予測に関する他の構成、すなわち、減算器１０２、逆量子化および逆変換部１０５、加算器１０６、ならびに、メモリ１０７が不要となる。
【００３６】
一方、エントロピー符号化部１０４は、符号化制御部１３０などから取得した符号化パラメータに基づき、変換および量子化部１０３から供給された量子化変換係数１３をエントロピー符号化し、符号化データ１４として出力する。エントロピー符号化方式としては、等長符号化、ハフマン符号化、算術符号化などの方式を用いることができる。
【００３７】
また、エントロピー符号化部１０４が用いる符号化パラメータは、符号化制御情報４０に含まれる符号化方法情報３０、予測モード情報や量子化パラメータ情報などによるモード情報３１を含む。当該符号化パラメータは、変換および量子化部１０３における変換係数や量子化に関する情報といった、復号の際に必要となる様々なパラメータを含む。
【００３８】
エントロピー符号化部１０４により生成された符号化データ１４は、画像符号化部１００から出力され、図示されない多重化処理を経てバッファ１０９に一旦溜め込まれる。バッファ１０９に溜め込まれた符号化データ１４は、符号化制御部１３０が管理する出力タイミングに従って、例えば画像符号化装置１の外部に向けて符号化データ１４として出力される。画像符号化装置１から出力された符号化データ１４は、例えば、ハードディスクや半導体メモリといった記憶媒体に記憶されたり、通信回線などの伝送系により伝送される。
【００３９】
次に、画像符号化装置１におけるエントロピー符号化部１０４について、より詳細に説明する。図４は、本第１の実施形態に適用可能なエントロピー符号化部１０４の一例の構成を示すブロック図である。図４において、エントロピー符号化部１０４は、係数符号化部１１０、符号化方法符号化部１１１およびモード符号化部１１２を有する。
【００４０】
変換および量子化部１０３から出力された量子化変換係数１３が係数符号化部１１０に入力される。また、符号化方法情報３０が係数符号化部１１０および符号化方法符号化部１１１にそれぞれ供給される。また、モード情報３１がモード符号化部１１２に供給される。
【００４１】
符号化方法情報３０は、係数符号化部１１０における量子化変換係数１３の符号化方法を指定するための情報である。より具体的には、符号化方法情報３０は、画像の所定単位、例えば小画素ブロック単位、入力画像信号単位、フレーム単位またはシーケンス単位で、後述する係数位置毎の可変長符号化方法を示す。また、モード情報３１は、復号時に必要となる変換係数以外の情報からなる。例えば、モード情報３１には、変換および量子化部１０３において量子化の際に用いた量子化パラメータＱＰを示す量子化パラメータ情報や、直交変換後の変換係数の位置を示す位置情報が含まれる。
【００４２】
なお、変換係数の位置とは、空間周波数の成分の方向を座標軸とし、空間周波数を座標値として考えた場合の、直交変換により得られた変換係数の位置であるものとする。すなわち、係数位置は、直交変換における空間周波数成分に対応する。一例として、上述した図２Ｂの例では、水平方向および垂直方向による各座標軸が、それぞれ低周波成分（Ｌ）と高周波成分（Ｈ）とに２分割されて、各変換係数の位置が表される。すなわち、図２Ｂの例では、変換係数の位置は、座標（Ｌ，Ｌ）、座標（Ｈ，Ｌ）、座標（Ｌ，Ｈ）または座標（Ｈ，Ｈ）として表されることになる。
【００４３】
以下では、２×２変換の場合における座標（Ｌ，Ｌ）、座標（Ｈ，Ｌ）、座標（Ｌ，Ｈ）または座標（Ｈ，Ｈ）の各変換係数の係数位置を、それぞれ位置ＬＬ、位置ＨＬ、位置ＬＨおよび位置ＨＨのように表記する。
【００４４】
これら符号化方法情報３０およびモード情報３１は、それぞれ画像符号化部１００の外部から供給される。例えば、符号化方法情報３０およびモード情報３１は、それぞれ符号化制御部１３０で生成されて符号化制御情報４０に含めて画像符号化部１００に供給され、エントロピー符号化部１０４に入力される。
【００４５】
係数符号化部１１０は、量子化変換係数１３のエントロピー符号化を、符号化方法情報３０に従い、係数位置毎の符号化方法を画像の所定単位、例えば画像ブロック１０単位で切り替えながら行う。一方、符号化方法符号化部１１１が符号化方法情報３０を符号化すると共に、モード符号化部１１２がモード情報３１を符号化する。符号化方法符号化部１１１の符号化出力と、モード符号化部１１２の符号化出力とが、係数符号化部１１０による符号化出力に対して埋め込まれて、符号化データ１４とされ、エントロピー符号化部１０４から出力される。
【００４６】
次に、上述したエントロピー符号化部１０４における係数符号化部１１０について、より詳細に説明する。図５は、本第１の実施形態による係数符号化部１１０の一例の構成を示すブロック図である。係数符号化部１１０は、係数位置抽出部１２０、符号化方法判定部１２１、スイッチ部１２２、ならびに、第１可変長符号化部１２３および第２可変長符号化部１２４を有する。
【００４７】
量子化変換係数１３が係数符号化部１１０に入力され、係数位置抽出部１２０に供給される。係数位置抽出部１２０は、供給された量子化変換係数１３をスイッチ部１２２の入力端１２２Ａに供給すると共に、当該量子化変換係数１３から係数位置を抽出し、当該係数位置を示す係数位置情報２０を出力する。例えば、量子化変換係数１３を小画素ブロック１１毎に計数することで、当該小画素ブロック１１における量子化変換係数１３の係数位置を知ることができる。
【００４８】
スイッチ部１２２は、後述する符号化方法判定部１２１から出力される切替信号２１により、出力端１２２Ｂおよび１２２Ｃが切り替えられる。出力端１２２Ｂおよび１２２Ｃに対して、第１可変長符号化部１２３および第２可変長符号化部１２４がそれぞれ接続される。すなわち、入力端１２２Ａに供給された量子化変換係数１３は、切替信号２１に応じて第１可変長符号化部１２３および第２可変長符号化部１２４の何れか一方に、選択的に供給される。
【００４９】
係数位置情報２０は、係数位置単位で情報を示してもよいし、係数位置に応じてグループ分けしたグループ単位で情報を示してもよい。図６Ａおよび図６Ｂは、係数位置のグループ分けの例を示す。図６Ａおよび図６Ｂの例では、水平および垂直成分を統合した係数位置すなわち空間周波数に応じてグループ分けを行っている。
【００５０】
図６Ａは、２×２変換において、係数位置を３グループに分けている例である。図６Ａの例では、水平および垂直成分が何れも低周波数成分（Ｌ）であるグループ＃１と、水平および垂直成分のうち一方が低周波数成分であるグループ＃２と、水平および垂直成分が何れも高周波成分（Ｈ）であるグループ＃３とにグループ分けされている。
【００５１】
図６Ｂは、４×４変換において、係数位置を４グループに分けている例である。図６Ｂの例では、空間周波数を０〜３の４段階に分類したときに、水平および垂直成分の合計値がそれぞれ０であるグループ＃１と、当該合計値が１または２であるグループ＃２と、当該合計値が３または４であるグループ＃３と、当該合計値が５以上のグループ＃４との４グループにグループ分けされている。
【００５２】
係数位置情報２０は、符号化方法判定部１２１に供給される。符号化方法判定部１２１には、符号化方法情報３０も供給される。符号化方法判定部１２１は、係数位置情報２０と符号化方法情報３０とに基づき、係数位置単位または位置グループ単位に切替信号２１を出力し、スイッチ部１２２に供給する。これにより、スイッチ部１２２が符号化方法情報３０に基づき係数位置または位置グループ単位に切り替えられる。係数位置単位または位置グループ単位で適応的に、第１可変長符号化部１２３または第２可変長符号化部１２４に対して、量子化変換係数１３が供給される。
【００５３】
ここで、第１可変長符号化部１２３でなされる第１の可変長符号化と、第２可変長符号化部１２４でなされる第２の可変長符号化について説明する。第１可変長符号化部１２３では、第１の可変長符号化として、量子化変換係数１３に対して１シンボルずつ符号を割り当てる、１シンボル単位符号化を適用する。このような１シンボル単位符号化の典型的な例としては、ゴロム・ライス符号化、ハフマン符号化および固定長符号化が知られている。
【００５４】
図７は、ゴロム・ライス符号の例を示す。ゴロム・ライス符号は、可変長のunary符号の列prefixと、固定長の符号列suffixとを連結した符号である。図７において、符号列suffixの符号長ｋの値に応じた予測残差を符号化した際の符号化列が示されている。ゴロム・ライス符号を復号する際には、どの符号長ｋの値を用いて符号化したかという情報が必要となる。そのため、符号長ｋの値を、ゴロム・ライス符号の符号化パラメータとして、復号側に渡す。
【００５５】
なお、第１の可変長符号化としてハフマン符号化を用いる場合、予め与えられたハフマン符号化の符号表を決定する確率モデルを示す情報を、符号化パラメータｋとして復号側に渡す。
【００５６】
第２可変長符号化部１２４では、第２の可変長符号化として、供給された、量子化変換係数１３に対して、同一の係数位置の複数シンボルに対して纏めて符号を割り当てることが可能な複数シンボル一括符号化を適用する。このような複数シンボル一括符号化の典型的な例として、ランレングス符号およびスキップ符号化が知られている。
【００５７】
ランレングス符号化について、概略的に説明する。ランレングス符号化は、一連のシンボル群を、そのデータの値(value)と連続数(ラン数run)とで表現するようにした符号化方式である。ランレングス符号化は、同一のシンボルが連続している場合に、この連続したシンボルを纏めて符号化することが可能であるため、平坦な画像などにおいて高い符号化効率が期待できる。ランレングス符号化では、シンボルが、保持された状態(state)と等しい場合にラン数をカウント（インクリメント）し、保持された状態state以外のシンボルでは、そのシンボルの値(value)を符号化する。この、保持された状態state以外のシンボルを符号化する符号化方式としては、ゴロム・ライス符号化や固定長符号化などを用いることができる。また、ラン数runは、画像ブロック１０内の小画素ブロック１１の数に応じて、ゴロム・ライス符号化若しくはハフマン符号化あるいは固定長符号化を用いて符号化する。
【００５８】
図８は、ランレングス符号化の一例の処理手順を示すフローチャートである。この図８に例示されるフローチャートにおける各処理は、第２可変長符号化部１２４において実行される。先ず、ラン数runと、データの状態を表す状態stateとにそれぞれ０を代入して初期化する（ステップＳ３０１）。次に、ステップＳ３０３で、符号化対象のシンボルｘが状態stateと等しいか否かを判定する。若し、シンボルｘが状態stateと等しいと判定された場合（ステップＳ３０３の「ＹＥＳ」）、処理はステップＳ３０４に移行され、ラン数runの値を１だけインクリメントする。そして、処理がステップＳ３０７に移行される。
【００５９】
一方、ステップＳ３０３で、符号化対象のシンボルｘが状態stateと等しくないと判定された場合は（ステップＳ３０３の「ＮＯ」）、処理はステップＳ３０５に移行される。ステップＳ３０５では、ラン数runおよびシンボルｘを符号化する。その後、ラン数runに０を代入すると共に状態stateをシンボルｘで更新し（ステップＳ３０６）、処理がステップＳ３０７に移行される。
【００６０】
ステップＳ３０７では、全ての符号化対象のシンボルに対して、ステップＳ３０３〜ステップＳ３０６の処理を実行したか否かが判定される。若し、全ての符号化対象シンボルに対して処理が実行されていないと判定されたら、ステップＳ３０２で符号化対象を次のシンボルに移動させて、処理がステップＳ３０３に戻される。
【００６１】
一方、ステップＳ３０７で全ての符号化対象シンボルに対して処理が実行されたと判定されたら、処理はステップＳ３０８に移行される。ステップＳ３０８では、ラン数runが０より大きければ、ラン数runを符号化する。すなわち、上述のステップＳ３０４からステップＳ３０７を介してステップＳ３０８に移行された場合に、ラン数runの符号化を行う。この場合、符号化対象のシンボル総数MAX_NUMが既知の場合、ラン数runの値を１デクリメントした値を符号化してもよい。なお、ステップＳ３０８でラン数runが０であれば、そのまま一連の処理が終了される。
【００６２】
図９は、符号化対象シンボル総数MAX_NUM＝１６の場合のシンボル位置(num)毎のランレングス符号化の具体的な処理の例を示す。図９の例では、シンボル位置num＝０〜４において、値が０の符号化対象シンボルが連続している。そのため、これらのシンボルの処理時には、ステップＳ３０３の判定により処理がステップＳ３０４に移行されて、ラン数runが１ずつインクリメントされる。状態stateは更新されず、値０が維持される。
【００６３】
また、図９の例では、シンボル位置num＝５で符号化対象のシンボルの値が１となっている。この値は状態stateの値と異なるため、ステップＳ３０３の判定により処理がステップＳ３０５に移行され、ラン数runとシンボル位置num＝５におけるシンボルの値１が符号化される。そして、ラン数runに０が代入されると共に状態stateの値が当該シンボルの値１に更新される。
【００６４】
このように、ランレングス符号化においては、符号化対象のシンボル値において同一値が連続して現れる場合には、ラン数runを１ずつインクリメントする。異なるシンボル値が現れた場合に、ラン数runおよび当該異なるシンボル値を符号化する。図９の例では、シンボル位置num＝８〜１１においてシンボル位置毎に異なるシンボル値が現れているので、ラン数runおよびシンボル値の符号化が毎回行われている。
【００６５】
なお、上述した図８のフローチャートによる処理において、値が０となるシンボルの出現頻度が高い場合には、状態stateの値を０に固定的としてもよい。これにより、シンボル値が０の場合にラン数runを符号化する必要がなくなるため、符号化効率を向上できる。
【００６６】
次に、上述したスキップ符号化について、概略的に説明する。スキップ符号化は、一連のシンボル群を複数のグループに分割し、グループ内のシンボルが全てゼロであるか否かを判定し、この判定結果に基づいて符号化を行う符号化方式である。
【００６７】
スキップ符号化の具体的な例を、図１０に示す。図１０の例では、シンボル位置を４つのグループに分け、それぞれのグループ内でシンボルが全て０であるか否かを判定する。グループ内のシンボルが全て０である場合、スキップ情報を示すフラグskipflag＝TRUEであることを示す情報を符号化する。すなわち、グループ内のシンボルが全て０である場合には、フラグskipflag＝TRUEを示す情報のみを符号化するだけで、そのグループ内のシンボルが符号化される。一方、グループ内のシンボルの少なくとも１つが０ではない場合、フラグskipflag＝FALSEであることを示す情報を符号化し、さらにグループ内の個々のシンボルをゴロム・ライス符号、ランレングス符号などの可変長符号などを使用して符号化する。
【００６８】
上述したように、第１可変長符号化部１２３による符号化では、１シンボル当たり１ビット未満の符号割り当てが不可能である。これに対して、第２可変長符号化部１２４による符号化では、同一のシンボル（特に０）が連続するようなシンボル列を纏めて符号化し、１シンボル当たり１ビット未満の符号割り当てが可能となる。そのため、第２可変長符号化部１２４では、画像の平坦領域や、予測が有効な領域において、符号化効率を向上させることが可能となる。
【００６９】
一方、第２可変長符号化部１２４による符号化は、例えば上述した図９のシンボル位置num＝８〜１１に示すように同一のシンボルが連続しない場合には、シンボル毎にラン数runを符号化する必要がある。そのため、シンボル列において同一のシンボルが連続しないテクスチャ領域や、予測が有効でない領域においては、第２可変長符号化部１２４による符号化は、第１可変長符号化部１２３による符号化と比較して符号化性能が悪化する。すなわち、このような同一のシンボルが連続しないような領域では、第１可変長符号化部１２３による符号化が有効となる。
【００７０】
次に、本実施形態による画像符号化装置１において特徴的な処理である、エントロピー符号化部１０４内の係数符号化部１１０の処理について、より詳細に説明する。なお、以下では、画像符号化装置１に入力される画像ブロック１０は、２ラインからなるブロックであるものとする（図１１Ａ参照）。この画像ブロック１０が分割部１０１で、２画素×２画素のサイズを持つ小画素ブロック１１、１１、…に分割されるものとする（図１１Ｂ参照）。画像ブロック１０は、符号化対象フレーム中の符号化処理の対象領域である。画像ブロック１０内に存在する少画像ブロック１１のそれぞれは、符号化処理の対象ブロックである。
【００７１】
なお、小画素ブロック１１のサイズは、係数符号化部１１０において直交変換を適用するサイズと対応するものとする。小画素ブロック１１のサイズが２画素×２画素であるこの例では、直交変換は、図２Ｂを用いて説明した２×２変換により行われる。
【００７２】
小画素ブロック１１を生成するための他の方法として、画像ブロック１０のサイズを例えば８画素×８画素（図１２Ａ参照）、小画素ブロック１１のサイズを例えば２画素×２画素とする。そして、図１２Ｂに例示されるように、小画像ブロック１１のサイズで画像ブロック１０の内部をジグザグスキャンすることで、画像ブロック１０の画素データを小画素ブロック１１のサイズに従い並べ替えてもよい。
【００７３】
図１３は、上述した２ラインの画素データによる画像ブロック１０と、当該画像ブロック１０が２画素×２画素のブロックに分割された小画素ブロック１１、１１、…とを、係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨを用いて表現した例を示す。なお、図１３中の数字０、１、…は、小画素ブロック１１を区別するために便宜的に付した番号である。値BLKは、画像ブロック１０内の小画素ブロック１１の数を示す。また、以下では、係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨを、適宜、係数位置[pos]として記述する。この場合、値posは、値LL、HL、LHおよびHHの何れかとなる。
【００７４】
すなわち、２画素×２画素からなる小画素ブロック１１に対して２×２変換を施すと、水平および垂直成分がそれぞれ低周波成分からなる、位置ＬＬに対応する量子化変換係数１３と、水平および垂直成分の何れか一方が低周波成分からなる、位置ＨＬおよび位置ＬＨにそれぞれ対応する量子化変換係数１３と、水平および垂直成分がそれぞれ高周波成分からなる、位置ＨＨに対応する量子化変換係数１３とがそれぞれ生成される。
【００７５】
なお、変換係数を水平および垂直方向の係数位置、ならびに、小画素ブロック１１の画像ブロック１０上での位置に応じて並べてなる面を、係数面と呼ぶ。
【００７６】
図１４Ａ〜図１４Ｄは、図１３に例示した係数面上の各量子化変換係数１３、１３、…を、係数位置毎に、画像ブロック１０単位でそれぞれ纏めて並べ替えた例を示す。ここでは、２画素×２画素のサイズの小画素ブロック１１に対して２×２変換を適用するため、各小画素ブロック１１、１１、…は、それぞれ４の係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨで表現される。図１４Ａは、係数面における位置ＬＬの係数を纏めた例である。図１４Ｂは、係数面における位置ＨＬの係数を纏めた例である。図１４Ｃは、係数面における位置ＬＨの係数を纏めた例である。図１４Ｄは、係数面における位置ＨＨの係数を纏めた例である。すなわち、図１４Ａ〜図１４Ｄのそれぞれは、変換係数を周波数成分毎に並べた係数列を示す。なお、図１４Ａ〜図１４Ｄにおいて、同じ番号の係数は、同一の小画素ブロック１１に属することを示す。
【００７７】
本実施形態においては、係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨ、すなわち、変換係数を周波数成分毎に並べた係数列に対して、第１可変長符号化部１２３による第１の可変長符号化と、第２可変長符号化部１２４による第２の可変長符号化とがそれぞれ選択的に適用される。本実施形態の第１の可変長符号化は、係数列を係数毎に可変長符号化する方式である。本実施形態の第２の可変長符号化は、係数列内で１ビット以上の可変長の部分データ毎に符号化する方式である。係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨすなわち係数位置[pos]に対して、それぞれ第１可変長符号化および第２可変長符号化のうち何れを適用させるかは、フラグCodingMethodFlag[pos]により示す。値posは、係数位置ＬＬ、ＨＬ、ＬＨおよびＨＨをそれぞれ示す値LL、HL、LHおよびHHである。このフラグCodingMethodFlag[pos]は、上述した符号化方法情報３０に相当する。
【００７８】
より具体的な例として、フラグCodingMethodFlag[pos]が値TRUEを示す場合、値[pos]で示される周波数成分の量子化変換係数１３に対して、第１の可変長符号化を適用する。一方、フラグCodingMethodFlag[pos]が値FALSEを示す場合、値[pos]で示される周波数成分の量子化変換係数１３に対して、第２の可変長符号化を適用する。なお、第１の可変長符号化および第２の可変長符号化の何れかを示すフラグCodingMethodFlag[pos]の値は、上述のTRUEおよびFALSEに限られず、例えば０および１を用いてもよい。
【００７９】
すなわち、上述した図５に例示される構成において、符号化方法判定部１２１は、係数位置抽出部１２０から供給された係数位置情報２０と、符号化制御部１３０などから供給された符号化方法情報３０とに基づき、スイッチ部１２２を制御する。より具体的には、係数位置情報２０が示す係数位置[pos]に対応するフラグCodingMethodFlag[pos]が値TRUEを示していれば、出力端１２２Ｂを選択するように、スイッチ部１２２を制御する。一方、係数位置[pos]に対応するフラグCodingMethodFlag[pos]が値FALSEを示していれば、出力端１２２Ｃを選択するように、スイッチ部１２２を制御する。
【００８０】
第１の可変長符号化にゴロム・ライス符号化を、第２の可変長符号化にランレングス符号化を適用した場合には、上述したゴロム・ライス符号化による符号化パラメータkを画素ブロック１０毎に最適化する。符号化パラメータｋが最適化された最適化符号化パラメータbest_kは、量子化変換係数１３が符号化された符号化データと共に、復号側に伝送される。
【００８１】
図１５は、係数符号化部１１０における一例の処理を示すフローチャートである。この図１５に例示する処理は、第１の可変長符号化としてゴロム・ライス符号化を用い、ゴロム・ライス符号化における符号化長である符号化パラメータｋが予め決められている場合の例である。第２の可変長符号化としては、ランレングス符号化を用いるものとする。
【００８２】
なお、以下では、小画素ブロック１１が２画素×２画素からなるものとする。また、符号化パラメータｋは、例えばエントロピー符号化部１０４において固定的に決められているか、若しくは、後述する最適化処理により符号化パラメータｋが決定されているものとする。
【００８３】
先ず、エントロピー符号化部１０４に供給された量子化変換係数１３に対する小画素ブロック１１毎の処理が開始される（ステップＳ１０１）。次のステップＳ１０２で、処理対象の小画素ブロック１１における係数位置[pos]毎の処理が開始される。
【００８４】
ここで、例えば量子化変換係数１３は、係数位置[pos]の所定の順序、例えば、係数位置[LL]、係数位置[HL]、係数位置[LH]および係数位置[HH]の順に係数符号化部１１０に入力され、係数位置抽出部１２０に供給されるものとする。これに限らず、量子化変換係数１３、１３、…のそれぞれに対し、係数位置[pos]を示す情報を付加してもよい。係数位置抽出部１２０は、入力された量子化変換係数１３について、係数位置[pos]を示す係数位置情報２０を出力する。この係数位置情報２０は、符号化方法判定部１２１に供給される。
【００８５】
係数位置[pos]毎の処理が開始されると、処理がステップＳ１０３に移行される。ステップＳ１０３で、符号化方法判定部１２１は、係数位置抽出部１２０から供給された係数位置情報２０に基づき現在処理対象としている係数位置[pos]を取得する。そして、取得された係数位置[pos]に対応する符号化方法情報３０から得られるフラグCodingMethodFlag[pos]の値が、第１の可変長符号化を示す値（TRUE）であるか否かを判定する。
【００８６】
若し、フラグCodingMethodFlag[pos]の値が第１の可変長符号化を示す値であると判定されたら、処理はステップＳ１０４に移行される。ステップＳ１０４で、符号化方法判定部１２１は、フラグCodingMethodFlag[pos]の値（TRUE）に従い、スイッチ部１２２を出力端１２２Ｂが選択されるように制御する。係数位置[pos]の量子化変換係数１３は、スイッチ部１２２を介して第１可変長符号化部１２３に供給され、符号化パラメータｋに従いゴロム・ライス符号化される。係数位置[pos]の量子化変換係数１３がゴロム・ライス符号化された符号化データは、係数符号化部１１０から出力される。
【００８７】
一方、フラグCodingMethodFlag[pos]の値が第１の可変長符号化を示す値ではないと判定されたら、処理はステップＳ１０５に移行される。すなわち、この場合、フラグCodingMethodFlag[pos]の値が第２の可変長符号化を示す値（FALSE）となっている。ステップＳ１０５で、符号化方法判定部１２１は、フラグCodingMethodFlag[pos]の値（FALSE）に従い、スイッチ部１２２を出力端１２２Ｃが選択されるように制御する。係数位置[pos]の量子化変換係数１３は、スイッチ部１２２を介して第２可変長符号化部１２４に供給される。
【００８８】
なお、ここでは、ゴロム・ライス符号化による符号化パラメータｋを最適化する方法について説明したが、これはこの例に限定されない。すなわち、図１５のフローチャートによる処理は、符号化パラメータｋとして、ハフマン符号化における符号表を決定する確率モデルを示す情報を用いる際にも適用可能である。
【００８９】
第２可変長符号化部１２４は、供給された量子化変換係数１３に対して、図８のフローチャートを用いて説明したようにして、ランレングス符号化を施す。このとき、第２可変長符号化部１２４は、符号化対象シンボルが０でない場合、当該符号化対象シンボルの値（value）に対し、符号化パラメータｋに従ったゴロム・ライス符号化を施す。
【００９０】
一方、第２可変長符号化部１２４は、当該符号化対象シンボルの値が０である場合、係数位置[pos]におけるラン数runおよび状態stateを、当該係数位置[pos]に関連付けて、メモリに保持しておく。例えば、メモリ上に当該係数位置[pos]で状態stateが等しいラン数runが記憶されていれば、当該ラン数runを１だけインクリメントする。このように、係数位置[pos]におけるラン数runおよび状態stateをメモリに保持しておくことで、画像ブロック１０の全シンボルをメモリに保持することなく、小画素ブロック１１に対する処理を逐次的に行うことが可能である。
【００９１】
なお、ゴロム・ライス符号化で用いる符号化パラメータｋは、第１の可変長符号化と第２の可変長符号化とで異なる値を用いてもよい。
【００９２】
ステップＳ１０４またはステップＳ１０５の処理が終了すると、処理はステップＳ１０６に移行される。ステップＳ１０６では、ステップＳ１０１で処理対象とされた小画素ブロック１１内の全ての係数位置[pos]に対する処理が終了したか否かが判定される。若し、終了していないと判定されたら、処理はステップＳ１０２に戻され、当該小画素ブロック１１内の次の係数位置[pos]に対する処理が開始される。
【００９３】
一方、ステップＳ１０６で、処理対象とされた小画素ブロック１１内の全ての係数位置[pos]に対する処理が終了したと判定されたら、処理はステップＳ１０７に移行される。ステップＳ１０７では、ステップＳ１０１で処理対象とされた小画素ブロック１１が含まれる画像ブロック１０について、当該画像ブロック１０内の全ての小画素ブロック１１に対する処理が終了したか否かが判定される。若し、終了していないと判定されたら、処理はステップＳ１０１に戻され、当該画像ブロック１０内の次の小画素ブロック１１に対する処理が開始される。
【００９４】
ステップＳ１０７で、当該画像ブロック１０内の全ての小画素ブロック１１に対する処理が終了したと判定されたら、この図１５に示される一連の処理が終了される。そして、例えば次の画像ブロック１０に対する処理が同様にして開始される。
【００９５】
次に、符号化パラメータｋを決定するための一例の処理について、図１６のフローチャートを用いて説明する。先ず、係数位置[pos]毎の符号化パラメータｋ[pos]を求める処理が開始されると（ステップＳ１１０）、係数符号化部１１０は、上述した図１５のフローチャートにおけるステップＳ１０１〜ステップＳ１０７の処理を実行し、発生符号量Bitsを求める（ステップＳ１１１）。係数符号化部１１０は、このステップＳ１０１〜ステップＳ１０７の処理を、符号化パラメータｋ毎および係数位置[pos]毎に実行し（ステップＳ１１２）、符号化パラメータｋ毎および係数位置[pos]毎の発生符号量Bits[pos][k]を算出する。
【００９６】
なお、ステップＳ１１１において、実際に符号化データを出力する必要は無く、発生符号量のみを計算すればよい。例として、ゴロム・ライス符号を適用する場合、符号化シンボルｘにおける符号量Bits_xは、次式（１）に示される手順により計算できる。
【００９７】
なお、式（１）は、プログラム言語であるＣ言語の様式に従い、計算の手順を示したものである。式（１）の各行の先頭に「：（コロン）」で区切られて記述される数字は、各行を区別するための行番号である。１行目から６行目までの全体が、式（１）を示す。
【００９８】
１：  Ｂｉｔｓ＿ｘ＝０
２：  ａｂｓ＿ｘ＝ａｂｓ（Ｘ）
３：  ｑ＝ａｂｓ＿ｘ>>ｋ
４：  ｉｆ  （ｑ＜ＥＳＣ＿ＬＥＮ）  Ｂｉｔｓ＿ｘ＋＝ｑ＋ｋ＋１
５：  ｅｌｓｅ  Ｂｉｔｓ＿ｘ＋＝ＥＳＣ＿ＬＥＮ＋ＳＹＭＢＯＬ＿ＬＥＮ
６：  ｉｆ  （ａｂｓ＿ｘ！＝０）  Ｂｉｔｓ＿ｘ＋＝１      …（１）
【００９９】
式（１）において、オペレータabs(X)は、値Xの絶対値を返す。パラメータESC_LENは、エスケープコードとの境界を示す。また、値SYMBOL_LENは、符号化シンボルのビット幅を示す。本実施形態では、変数ｑがパラメータESC_LENの値を超える場合にはエスケープ符号を適用しているが、これはこの例に限定されない。例えば、エスケープ符号を適用せず、単に値(q＋k＋1)を符号化シンボルｘに対する符号量Bits_xとしてもよい。この符号量Bits_xを符号化シンボルｘ毎に順次加算することで、係数位置[pos]毎の符号量Bits[pos]の算出が可能である。
【０１００】
ステップＳ１１１で、ある符号化パラメータｋおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたら、処理はステップＳ１１２に移行される。ステップＳ１１２では、係数符号化部１１０は、全ての符号化パラメータｋおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたか否かを判定する。若し、求められていないと判定されたら、処理はステップＳ１１０に移行され、次の符号化パラメータｋまたは係数位置[pos]について、発生符号量Bits[pos][k]を求める。
【０１０１】
一方、ステップＳ１１２で、全ての符号化パラメータｋおよび係数位置[pos]について発生符号量Bits[pos][k]が求められたと判定されたら、処理はステップＳ１１３に移行される。ステップＳ１１３で、係数符号化部１１０は、係数位置[pos]毎に、発生符号量Bits[pos]が最小となる符号化パラメータｋを求める。係数位置[pos]において発生符号量Bits[pos]が最小となる符号化パラメータｋを、最適化符号化パラメータbest_k[pos]とする。
【０１０２】
係数位置[pos]毎の最適化符号化パラメータbest_k[pos]が求められたら、処理はステップＳ１１４に移行する。ステップＳ１１４で、係数符号化部１１０は、この最適化符号化パラメータbest_k[pos]をゴロム・ライス符号化における符号化パラメータｋとして用いて、上述した図１５のフローチャートによる処理を行い、量子化変換係数１３が符号化された符号化データを出力する。また、係数符号化部１１０は、最適化符号化パラメータbest_k[pos]のインデクス値を固定長符号化して、当該符号化データに埋め込む。
【０１０３】
このように、本実施形態では、量子化変換係数１３に対する可変長符号化方法として、１シンボル毎に符号を割り当てる１シンボル符号化による第１の可変長符号化と、複数のシンボルに纏めて符号を割り当てることが可能な複数シンボル一括符号化による第２の可変長符号化方式とを用意する。そして、量子化変換係数１３の係数位置すなわち空間周波数毎に、第１の可変長符号化と第２の可変長符号化とのうち何れを用いるかを選択可能としている。そのため、量子化変換係数１３に対して、空間周波数の性質に応じて適応的に可変長符号化を行うことができる。
【０１０４】
なお、上述では、画像ブロック１０のサイズを２ラインであるとして説明したが、これはこの例に限定されない。例えば、画像ブロック１０を、２ラインを垂直方向に区切った任意の領域としてもよいし、４ラインなど、２の倍数のライン数で以て画像ブロック１０を構成してもよい。また、画像ブロック１０のサイズが４ライン以上である場合には、当該画像ブロック１０内部を、２画素×２画素単位でジグザグスキャンして、小画素ブロック１１を構成してもよい（図１２Ｂ参照）。
【０１０５】
また、上述では、２種類の可変長符号化方法を係数位置毎に切り替えているが、これはこの例に限定されない。例えば、３種類以上の可変長符号化方法を切り替えるようにしてもよい。一例として、ゴロム・ライス符号化、ランレングス符号化およびスキップ符号化の３種類の可変長符号化方法を係数位置毎に切り替えてもよい。
【０１０６】
次に、本実施形態の画像符号化部１００から出力される符号化データ１４に適用可能なシンタクスの例について、図１７Ａ〜図１７Ｃ、ならびに、図１８Ａおよび図１８Ｂを用いて説明する。以下に説明するシンタクスに従い、符号化データ１４のデータが配列される。したがって、このシンタクスを示すシンタクステーブル符号化側および復号側でそれぞれ持つことで、復号側では、符号化データ１４を適切に復号することが可能となる。
【０１０７】
なお、図１７Ａ〜図１７Ｃ、ならびに、図１８Ａおよび図１８Ｂにおいては、本実施形態の主題に深く関わる部分を中心に示し、その他の部分については、煩雑さを避けるために表示を省略している。
【０１０８】
先ず、画像ブロック１０内の小画素ブロック１１を逐次的に処理する方式により生成される符号化データ１４の一例の構造を示す第１のシンタクスの例について、図１７Ａ、図１７Ｂおよび図１７Ｃを用いて説明する。なお、これら図１７Ａ、図１７Ｂおよび図１７Ｃにおいては、シンタクスを、プログラム言語の１つであるＣ言語の様式に従い記述している。
【０１０９】
第１のシンタクスによれば、符号化データ１４は、ヘッダ、ブロックおよびサブブロックから構成される。ヘッダは、符号化データ１４のヘッダ情報が記述される。ヘッダは、例えば、画像データの１フレームや、一連のフレームからなるシーケンスに対して適用される。ブロックは、符号化データ１４における画像ブロック１０を構成するデータを含む。サブブロックは、符号化データ１４における小画素ブロック１１を構成するデータを含む。したがって、ブロックは、サブブロックのシンタクスを含む。
【０１１０】
図１７Ａは、ヘッダの一例の構造を表すシンタクスを示す。ヘッダのシンタクスには、係数位置[pos]毎の符号化方法情報３０すなわちフラグCodingMethodFlag[pos]が記述される。係数位置[pos]の値NUM_POSは、係数位置[pos]または係数位置[pos]をグループ分けしたグループ数が記述される。
【０１１１】
図１７Ｂは、ブロックの一例の構造を表すシンタクスを示す。この図１７Ｂに例示されるシンタクスにおいては、画像ブロック１０が値NUM_SEGで示される個数のセグメントsegに分割されている。図１７Ｂのシンタクスにおいて、セグメントseg毎に、予測モードpred_modeが記述される。また、各セグメントsegにおいて、係数位置[pos]毎に符号化パラメータを示すインデクス値CodingParamIdx[pos]が記述される。このインデクス値CodingParamIdx[pos]では、例えばゴロム・ライス符号化における符号化パラメータｋが記述される。
【０１１２】
さらに、ブロックのシンタクスにおいて、各セグメントsegに含まれる各サブブロックsubblock()が記述される。値NUM_BLKは、セグメントsegに含まれるサブブロックの数を示す。さらにまた、係数位置[pos]において、フラグCodingMethodFlag[pos]が値FALSE、且つ、状態state[pos]が０、且つ、ラン数run[pos]が０より大きい場合に、ラン数run[pos]が記述される。
【０１１３】
なお、ランレングス符号化に用いられるラン数run[pos]および状態state[pos]は、係数位置[pos]毎に、画像ブロック単位またはセグメント単位で０に初期化される。
【０１１４】
図１７Ｃは、サブブロックの一例の構造を表すシンタクスを示す。サブブロックにおいては、係数位置[pos]毎に、フラグCodingMethodFlag[pos]の値に応じて記述内容が変わる。すなわち、フラグCodingMethodFlag[pos]が値TRUEであれば、ゴロム・ライス符号により符号化された量子化変換係数１３である、係数coef[blk][pos]が係数位置[pos]に対応して記述される。
【０１１５】
一方、サブブロックのシンタクスにおいて、フラグCodingMethodFlag[pos]が値TRUE以外、すなわち値FALSEの場合、状態state[pos]が係数coef[blk][pos]と異なるか否かでさらに記述が変わる。すなわち、状態state[pos]が係数coef[blk][pos]と異なる場合、ランレングス符号化によるラン数runおよび状態stateが、係数位置[pos]に対応して記述される。
【０１１６】
次に、量子化変換係数１３を係数位置[pos]毎に符号化する方式により生成される符号化データ１４の一例の構造を示す第２のシンタクスの例について、図１８Ａおよび図１８Ｂを用いて説明する。なお、これら図１８Ａおよび図１８Ｂにおいては、上述と同様にして、シンタクスを、プログラム言語の１つであるＣ言語の様式に従い記述している。
【０１１７】
第２のシンタクスによれば、符号化データ１４は、ヘッダおよびブロックから構成される。ヘッダは、符号化データ１４のヘッダ情報が記述される。ヘッダは、例えば、画像データの１フレームや、一連のフレームからなるシーケンスに対して適用される。ブロックは、符号化データ１４における画像ブロック１０を構成するデータを含む。
【０１１８】
図１８Ａは、ヘッダの一例の構造を表すシンタクスを示す。この第２のシンタクスによるヘッダ構造は、図１７Ａを用いて説明した第１のシンタクスによるヘッダ構造と同一なので、ここでの説明を省略する。
【０１１９】
図１８Ｂは、ブロックの一例の構造を表すシンタクスを示す。この第２のシンタクスによるブロックは、図１７Ｂに示した第１のシンタクスによるブロックと異なり、第１および第２の可変長符号化の結果が、小画素ブロック１１毎にブロック内に直接的に記述される。なお、ここでは、ブロックのシンタクスにより記述される画像ブロック１０に含まれる小画素ブロック１１、１１、…を、変数blkを用いて小画素ブロック[blk]として説明する。
【０１２０】
図１８Ｂのシンタクスにおいて、セグメントseg毎に、予測モードpred_modeが記述される。また、各セグメントsegにおいて、係数位置[pos]毎に符号化パラメータを示すインデクス値CodingParamIdx[pos]が記述される。このインデクス値CodingParamIdx[pos]では、例えばゴロム・ライス符号化における符号化パラメータｋが記述される。
【０１２１】
係数位置[pos]毎の記述は、フラグCodingMethodFlag[pos]の値に応じて変わる。すなわち、フラグCodingMethodFlag[pos]が値TRUEであれば、ゴロム・ライス符号により符号化された量子化変換係数１３である係数coef[blk][pos]が、小画素ブロック１１に対応する小画素ブロック[blk]毎に、当該小画素ブロック[blk]における係数位置[pos]に対応して記述される。
【０１２２】
一方、フラグCodingMethodFlag[pos]が値TRUE以外、すなわち値FALSEであれば、状態state[pos]が係数coef[blk][pos]と異なるか否かでさらに記述が変わる。すなわち、状態state[pos]が係数coef[blk][pos]と異なる場合、ランレングス符号化によるラン数runおよび状態stateが、係数位置[pos]に対応して記述される。
【０１２３】
また、係数位置[pos]について小画素ブロック[blk]の処理が全て終了した後に、状態stateが０、且つ、ラン数runが０より大きければ、当該係数位置[pos]の記述の後ろに、ラン数run[pos]が記述される。
【０１２４】
上述したシンタクスにおいては、可変長符号化方法を切り替えるための情報であるフラグCodingMethodFlagをヘッダに含めているが、これはこの例に限定されない。すなわち、フラグCodingMethodFlagをブロックやサブブロックに含めるようにしてもよい。フラグCodingMethodFlagをブロックに含める場合には、可変長符号化方法の切り替えをセグメント毎に行うことができる。また、フラグCodingMethodFlagをサブブロックに含める場合には、可変長符号化方法の切り替えを小画素ブロック１１、１１、…毎に行うことができる。同様に、予測モードpred_modeやインデクス値CodingParamIdxをヘッダやサブブロックに含め、シーケンスやフレーム毎、あるいは、小画素ブロック１１、１１、…毎に予測モードや符号化パラメータを指定するようにしてもよい。
【０１２５】
また、図１７Ａ〜図１７Ｃ、ならびに、図１８Ａおよび図１８Ｂに例示したシンタクスに対し、例えば行間に本実施形態で定義していないシンタクス要素を挿入してもよいし、条件分岐に関する記述をさらに含ませてもよい。例えば、モード情報３１がシンタクスに含められる。モード情報３１は、上述したように、予測モード情報や、量子化パラメータＱＰ、量子化ステップサイズ、量子化マトリクスなどの量子化処理に関するパラメータを含む量子化情報といった、変換係数以外の復号に必要な情報を含む。
【０１２６】
さらに、シンタクステーブルを複数のテーブルに分割したり、複数に分かれたシンタクステーブルを統合することも可能である。さらにまた、上述したシンタクスにおいて示した各用語は、これらに限定されるものではなく、利用する形態に応じて任意に変更してもよい。
【０１２７】
本実施形態では、第１可変長符号化部１２３および第２可変長符号化部１２４に、１シンボルに対して１ビット以上の符号を割り当てる可変長符号化を適用しているが、これはこの例に限定されない。すなわち、第１可変長符号化部１２３および第２可変長符号化部１２４のそれぞれに、１シンボルに対して１ビット未満の符号割り当てが可能な可変長符号化を適用させてもよい。このような可変長符号化の例として、コンテキストベースの適応算術符号化であるＣＡＢＡＣ（Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）がある。
【０１２８】
この場合、第１可変長符号化部１２３と第２可変長符号化部１２４とで、算術符号化に適用するコンテキスト（確率テーブル）およびその遷移を異ならせる。コンテキストの遷移が異なる第１可変長符号化部１２３および第２可変長符号化部１２４を、スイッチ部１２２により係数位置毎に切り替えて適用することで、算術符号化において符号化性能を向上させることができる。一例として、変換係数のエントロピーが小さい高周波成分と、当該エントロピーが大きい低周波成分とでコンテクストを異ならせることにより、適切な確率モデルを持つ算術符号化を実現できる。
【０１２９】
なお、上述では、量子化および変換部１０３は、直交変換して得られた変換係数を量子化するように説明したが、これはこの例に限定されない。すなわち、量子化処理を行わずに、直交変換して得られた変換係数をそのままエントロピー符号化部１０４と、逆量子化および逆変換部１０５とに供給してもよい。この場合、例えば逆量子化および逆変換部１０５における逆量子化処理など、量子化処理に対応する他の処理は、全て行わないことになる。
【０１３０】
＜第２の実施形態＞
次に、第２の実施形態について説明する。本第２の実施形態は、動画像データを圧縮符号化した際の、単位時間当たりの発生符号量を一定以下に制御する場合の例である。例えば、動画像データの１フレームで発生する発生符号量を一定以下に制御する。これに限らず、当該所定単位が１または複数のライン単位で発生符号量を制御してもよいし、１フレームを分割したブロック単位で派生符号量を制御してもよい。
【０１３１】
図１９は、本第２の実施形態を適用可能な画像符号化装置２の一例の構成を示すブロック図である。なお、図１９において、上述した図１と共通する部分には同一の符号を付し、詳細な説明を省略する。この画像符号化装置２は、上述の第１の実施形態で説明した画像符号化部１００を、２パス方式の画像符号化処理に適用した例である。
【０１３２】
画像符号化装置２は、画像符号化部２００、設定部２０１、符号化制御部１３０’およびバッファ１０９を有する。画像符号化装置２は、第１の実施形態による画像符号化部１００と同等の機能を有する算出部を複数有し、入力された動画像データ２２０に対し、各算出部で異なる量子化パラメータＱＰ1、ＱＰ2、…、ＱＰNを用いた符号化を試みて、それぞれの発生符号量を求める。その結果、それぞれの算出部で用いた量子化パラメータＱＰ1、ＱＰ2、…、ＱＰNのうち、設定部２０１により予め設定された圧縮率に対応する発生符号量を超えない量子化パラメータＱＰnを選択する。この選択された量子化パラメータＱＰnを、第１の実施形態による画像符号化部１００と同等の機能を有する符号化部に適用させて、再び当該動画像データ２２０に対する符号化を行い、符号化データ１４の出力を得る。符号化データ１４は、バッファ１０９に一旦溜め込まれ、例えば１フレームを単位として画像符号化装置２から出力される。
【０１３３】
画像符号化部２００の一例の構成について、より詳細に説明する。図１９において、画像符号化部２００は、バッファ２０２、仮圧縮部２０３、判定部２０５および本圧縮部２０６を有する。
【０１３４】
仮圧縮部２０３は、ある量子化パラメータＱＰnにおける発生符号量を算出する算出部２０４nを複数有する。算出部２０４nは、上述した第１の実施形態による画像符号化部１００と同等の機能を有する。すなわち、算出部２０４nは、それぞれ、分割部１０１、減算器１０２、変換および量子化部１０３、エントロピー符号化部１０４、逆量子化および逆変換部１０５、加算器１０６、メモリ１０７および予測部１０８を有する。
【０１３５】
算出部２０４nは、入力された画像ブロック１０を分割した小画素ブロック１１の予測画像信号１９に対する予測誤差信号１２を求め、予測誤差信号１２を直交変換し、得られた変換係数を所定の量子化パラメータＱＰnで量子化する。そして、算出部２０４nは、変換係数が量子化された量子化変換係数１３をエントロピー符号化部１０４により可変長符号化した際の発生符号量を求める。
【０１３６】
画像符号化部２００においては、複数の算出部２０４1、２０４2、…、２０４Nは、それぞれ、画像符号化部１００における変換および量子化部１０３、ならびに、逆量子化および逆変換部１０５に相当する部分に対して、異なる量子化パラメータＱＰ1、ＱＰ2、…、ＱＰNが適用される。
【０１３７】
本圧縮部２０６は、発生符号量が固定的とされた第１の符号化部２０７を有する。第１の符号化部２０７は、例えば各画素を固定的な符号長で符号化する。固定的な符号長で符号化を行う単位は、画素単位に限らず、所定数の画素単位、小画素ブロック１１単位、画像ブロック１０単位などでもよい。
【０１３８】
本圧縮部２０６は、さらに、上述した第１の実施形態による画像符号化部１００と同等の機能を有する第２の符号化部２０８を有する。すなわち、第２の符号化部２０８は、可変長符号を用いて符号化を行う。第２の符号化部２０８の構成および動作については、上述の画像符号化部１００と何ら変わるところがないので、ここでの説明を省略する。
【０１３９】
設定部２０１で設定された圧縮率を示す圧縮率情報２５が符号化制御部１３０’に供給される。符号化制御部１３０’は、上述した第１の実施形態による符号化制御部１３０と同様に、画像符号化装置２による符号化処理全般を制御するための符号化制御情報４０’を、画像符号化部２００に供給する。
【０１４０】
符号化制御情報４０’は、符号化方法情報３０や、予測モード情報や量子化に関するパラメータなどによるモード情報３１などを含むと共に、圧縮率情報２５を含む。符号化方法情報３０およびモード情報３１は、仮圧縮部２０３および本圧縮部２０６にそれぞれ供給される。また、圧縮率情報２５は、仮圧縮部２０３、本圧縮部２０６および判定部２０５に供給される。
【０１４１】
入力された動画像データ２２０は、バッファ２０２に一旦格納される。動画像データ２２０は、バッファ２０２から読み出される際に、所定サイズの画像ブロック１０に分割される。画像ブロック１０は、動画像データの１フレームを任意の方法で分割したもので、最小単位が画素、最大単位が１フレーム全体とする。
【０１４２】
ここで、入力される動画像データ２２０は、画像符号化装置２において所定の圧縮率を保証する単位とし、フレーム単位の画像データに限らず、１または複数のラインデータや、所定サイズの画像ブロックも含む概念である。また、上述の第１の実施形態では、画像ブロック１０は、符号化パラメータｋを切り替える単位であるとして説明したが、これはこの例に限定されず、例えば入力される動画像データ２２０と同一のサイズであってもよい。
【０１４３】
バッファ２０２から読み出された画像ブロック１０は、評価のために仮圧縮部２０３に入力され、仮圧縮部２０３内の複数の算出部２０４1、２０４2、…、２０４Nにそれぞれ供給される。
【０１４４】
ここで、これら複数の算出部２０４1、２０４2、…、２０４Nに対して、上述したように、それぞれ異なる量子化パラメータＱＰ1、ＱＰ2、…、ＱＰNが適用されている。算出部２０４n内の変換および量子化部（図示しない）は、図１を用いて説明した変換および量子化部１０３と同様に、入力された画像ブロック１０のデータと予測データとの差分による予測誤差を直交変換し、得られた変換係数を、量子化パラメータＱＰnに対応する量子化ステップサイズで除すことで量子化する。
【０１４５】
図２０は、量子化パラメータＱＰnと、量子化ステップサイズとの関係の例を示す。この例では、量子化ステップサイズは、量子化パラメータＱＰnの値が大きくなるに連れて間隔が粗くなるように値が設定される。この場合、小さい量子化パラメータＱＰnでは、より精密に量子化がなされ、大きい量子化パラメータＱＰnでは、より粗く量子化がなされることになる。
【０１４６】
複数の算出部２０４1、２０４2、…、２０４Nのそれぞれは、適用されている量子化パラメータＱＰnを用いて供給された画像ブロック１０の符号化を行い、符号量２０1、２０2、…、２０Nを算出する。なお、算出部２０４1、２０４2、…、２０４Nは、符号化データを出力する必要は、無い。
【０１４７】
算出部２０４1、２０４2、…、２０４Nで算出された符号量２０1、２０2、…、２０Nは、それぞれ判定部２０５に供給される。判定部２０５は、これら符号量２０1、２０2、…、２０Nを評価し、圧縮率情報２５に対応する目標符号量を超えない符号量２０mが存在するか否かを判定する。そして、判定結果に応じて、画像ブロック１０を固定長で符号化するか、可変長で符号化するかを選択するための圧縮方法情報２２１を生成する。ここで、目標符号量とは、例えば、入力された動画像データ２２０内の画像ブロック１０に対して均等に符号量を割り当てた場合の符号量（平均割り当て符号量）である。
【０１４８】
判定部２０５は、符号量２０1、２０2、…、２０Nが全て目標符号量を超えてしまうと判定した場合、画像ブロック１０を固定長で符号化する第１の符号化モードを選択する。判定部２０５は、第１の符号化モードを選択したことを示す圧縮方法情報２２１を出力する。この圧縮方法情報２２１は、本圧縮部２０６に供給される。
【０１４９】
本圧縮部２０６は、判定部２０５から出力された圧縮方法情報２２１に従い、評価に用いた画像ブロック１０をバッファ２０２から読み出して、第１の符号化部２０７に入力する。第１の符号化部２０７は、例えば、画像ブロック１０に対して下位ビット切捨てによる線形量子化や空間サンプリングを施すことで、当該画像ブロック１０を固定長で符号化する第１の符号化を行う。つまり、１フレームを構成する全ての画像ブロック１０、１０、…において第１の符号化モードが選択されれば、入力された動画像データ２２０の当該フレームは、所定のデータサイズ以下での圧縮が保証される。画像ブロック１０が第１の符号化部２０７で符号化された符号化データ１４は、本圧縮部２０６から出力され、バッファ１０９に一旦格納される。
【０１５０】
一方、符号量２０nが目標符号量を超えない量子化パラメータＱＰmが存在する場合、判定部２０５は、画像ブロック１０を可変長で符号化する第２の符号化モードを選択する。判定部２０５は、第２の符号化モードを選択したことを示す圧縮方法情報２２１を出力する。この圧縮方法情報２２１は、当該量子化パラメータＱＰmを示す情報と共に、本圧縮部２０６に入力される。
【０１５１】
本圧縮部２０６は、判定部２０５から出力された圧縮方法情報２２１に従い、評価に用いた画像ブロック１０をバッファ２０２から読み出し、第２の符号化部２０８に供給する。第２の符号化部２０８は、上述したように、図１に示した画像符号化部１００と同等の機能を有する。第２の符号化部２０８は、上述の第１の実施形態による方法により、画像ブロック１０の直交変換、量子化およびエントロピー符号化を行う。量子化の際には、判定部２０５から供給された量子化パラメータＱＰmが用いられる。画像ブロック１０が第２の符号化部２０８で符号化された符号化データ１４は、本圧縮部２０６から出力され、バッファ１０９に一旦格納される。
【０１５２】
なお、本第２の実施形態においては、画像ブロック１０毎に量子化パラメータＱＰnが異なる。画像ブロック１０毎の量子化パラメータＱＰnは、例えばモード情報３１に含められて復号側に伝送される。また、圧縮方法情報２２１も、例えばモード情報３１に含められて符号化データ１４に埋め込まれる。圧縮率情報２５を示す目標符号量情報をさらにモード情報３１に含めて符号化データ１４に埋め込むようにしてもよい。
【０１５３】
以上説明したように、上述の第１の実施形態による符号化方法を２パス方式の画像符号化処理にも適用することができる。したがって、２パス方式の画像符号化処理における符号化効率を向上させることができるので、単位時間の発生符号量を一定以下に抑える条件下での画質を向上させることが可能である。
【０１５４】
＜第３の実施形態＞
次に、第３の実施形態について説明する。上述した第１および第２の実施形態では、エントロピー符号化の際の量子化変換係数１３の変換係数位置毎の符号化方法を、符号化方法情報３０を用いて制御していた。これに対して、本実施形態では、エントロピー符号化の際の量子化変換係数１３の変換係数位置毎の符号化方法を、符号化を制御するための他のパラメータを用いて制御する。
【０１５５】
図２１は、本実施形態に適用可能なエントロピー符号化部１０４’の一例の構成を示すブロック図である。このエントロピー符号化部１０４’は、上述の第１および第２の実施形態におけるエントロピー符号化部１０４に対応するものである。なお、図２１において、上述した図４と共通する部分には同一の符号を付し、詳細な説明を省略する。
【０１５６】
図２１に示されるエントロピー符号化部１０４’は、係数符号化部１１０、モード情報変換部３０２およびモード符号化部１１２を有する。予測モード情報や量子化に関するパラメータを含むモード情報３１がモード情報変換部３０２およびモード符号化部１１２に供給される。上述した第２の実施形態による画像符号化部２００に対してこのエントロピー符号化部１０４’を適用する場合には、圧縮率情報２５がモード情報変換部３０２およびモード符号化部１１２に対してさらに供給される。
【０１５７】
モード情報変換部３０２は、供給されたＱＰ情報やモード情報３１、圧縮率情報２５に基づき、符号化方法情報３０を生成し、係数符号化部１１０に供給する。係数符号化部１１０は、上述した第１および第２の実施形態と同様にして、この符号化方法情報３０に基づき、可変長符号化方法を係数位置毎に切り替えて、量子化変換係数１３の符号化を行う。
【０１５８】
本実施形態におけるモード情報変換部３０２の動作について、より詳細に説明する。上述したように、係数符号化部１１０内の第１可変長符号化部１２３は、１シンボル毎の符号化を行い、第２可変長符号化部１２４は、複数シンボルを纏めて符号化することが可能である。したがって、第１可変長符号化部１２３は、低圧縮率または高画質が求められる領域やブロックのデータを符号化するのに適している。一方、第２可変長符号化部１２４は、高圧縮率または低画質乃至中画質が求められる領域やブロックのデータを符号化するのに適している。例えば、周波数成分を低周波成分と高周波成分とに分けて、低周波成分の係数に第１の可変長符号化を適用し、高周波成分に第２の可変長符号化を適用することが考えられる。「低周波成分」の範囲および「高周波成分」の範囲を変えることにより、第１の可変長符号化が適用される係数位置の範囲を変えることができる。
【０１５９】
本実施形態では、以下の４種類のパラメータにより、係数位置毎に可変長符号化方法を指定するためのフラグCodingMethodFlagを設定する。
（１）量子化パラメータＱＰ
（２）目標符号量
（３）予測方向
（４）画像信号成分
【０１６０】
なお、以下では、小画素ブロック１１を２画素×２画素とし、直交変換に２×２変換を用いるものとする。したがって、係数位置[pos]は、位置ＬＬ、ＨＬ、ＬＨおよびＨＨとして表される。
【０１６１】
先ず、（１）の、量子化パラメータＱＰを用いてフラグCodingMethodFlagを設定する方法について説明する。量子化パラメータＱＰや目標符号量は、画像データの圧縮率や復号後の画質に密接に関係するパラメータである。そのため、符号化対象領域の量子化パラメータＱＰや目標符号量の情報を用いることで、可変長符号化方法を指定するためのフラグCodingMethodFlagを設定することが可能である。
【０１６２】
図２２Ａは、量子化パラメータＱＰnに対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。ここで、量子化パラメータＱＰnは、図２０に例示したように、量子化パラメータＱＰnの値ＱＰが大きくなるに連れ、量子化ステップサイズの間隔が大きくなるように定義されているものとする。
【０１６３】
圧縮率が低く高画質である、量子化パラメータＱＰnの値が小さい範囲では、低い空間周波数からより高い空間周波数に対応する係数位置[pos]までフラグCodingMethodFlag[pos]を値TRUE、すなわち、第１可変長符号化部１２３を選択するように設定する。以降、量子化パラメータＱＰnの値が大きくなるに連れ、高い空間周波数に対応する係数位置[pos]からフラグCodingMethodFlag[pos]が値FALSEになる割合が増加するように、各係数位置[pos]のフラグCodingMethodFlagが設定される。このように、量子化パラメータＱＰnに応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
【０１６４】
図２２Ａの例では、より精密に量子化が行われ、圧縮率が低く高画質の量子化パラメータＱＰ＝０およびＱＰ＝１の場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値TRUEに設定し、第１可変長符号化部１２３を適用させる。量子化パラメータＱＰ＝２乃至ＱＰ＝４の場合には、高周波成分のみからなる係数位置[pos]である位置ＨＨにおいてフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用する。
【０１６５】
量子化パラメータＱＰ＝５乃至ＱＰ＝７では、低周波成分のみからなる係数位置[pos]である位置ＬＬにおいてフラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用する。また、より量子化ステップサイズの大きい量子化パラメータＱＰ＝８以上で、全ての係数位置[pos]においてフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用する。
【０１６６】
次に、（２）の、目標符号量を用いてフラグCodingMethodFlagを設定する方法について説明する。図２２Ｂは、目標符号量すなわち圧縮率に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。圧縮率が低いほど高画質が期待され、圧縮率が高くなるに連れ単位時間当たりの発生符号量が少なくなることが期待される。したがって、圧縮率が低い範囲では、低い空間周波数からより高い空間周波数に対応する係数位置[pos]までフラグCodingMethodFlag[pos]を値TRUEに設定する。以降、圧縮率が高くなるに連れ、高い空間周波数に対応する係数位置[pos]から、フラグCodingMethodFlag[pos]が値FALSEになる割合が増加するように、各係数位置[pos]のフラグCodingMethodFlag[pos]が設定される。このように、圧縮率に応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
【０１６７】
図２２Ｂの例では、圧縮率が最も低い（１〜１／２）場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値TRUEとし、第１可変長符号化部１２３を適用させる。圧縮率が１／２〜１／４では、高周波成分のみからなる係数位置[pos]である位置ＨＨにおいてフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用する。
【０１６８】
圧縮率がより高い１／４〜１／６では、低周波成分のみからなる係数位置[pos]である位置ＬＬにおいてフラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用させ、他の係数位置[pos]ではフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用する。また、圧縮率が１／６より高い場合には、全ての係数位置[pos]においてフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用する。
【０１６９】
例えば、上述した第２の実施形態において、設定部２０１で設定された圧縮率に応じて各係数位置毎のフラグCodingMethodFlagを設定することができる。第２の符号化部２０８において、係数の符号化を第１の可変長符号化および第２の可変長符号化の何れを用いて行うかが、この圧縮率に応じた各係数位置毎のフラグCodingMethodFlagにより切り替えられる。
【０１７０】
次に、(３）の、予測方向を用いてフラグCodingMethodFlagを設定する方法について説明する。すなわち、画像符号化部１００における予測部１０８、あるいは、画像符号化部２００内の算出部２０４1、２０４2、…における予測部１０８において、画像ブロック１０に適用する予測モードの予測方向に応じて、フラグCodingMethodFlagを設定する。
【０１７１】
例えば、上述の図３Ｂに例示されるように、予測方向が垂直方向である場合、画像ブロック１０における垂直方向の相関は除去される一方、水平方向の相関は、除去されない。したがって、予測方向を垂直方向として求めた予測誤差信号１２を直交変換した場合、垂直方向成分は変換係数が小さく、水平方向成分は変換係数が大きくなると考えられる。
【０１７２】
そこで、予測方向が垂直方向である予測モードの場合、係数位置ＬＨのフラグCodingMethodFlagを値TRUEに設定して第１可変長符号化部１２３を適用させ、係数位置ＨＬのフラグCodingMethodFlagを値FALSEに設定して第２可変長符号化部１２４を適用させる。
【０１７３】
また、予測方向が上述の図３Ａに示す水平方向である予測モードの場合、同様の考え方から、係数位置ＨＬのフラグCodingMethodFlagを値TRUEに設定して第１可変長符号化部１２３を適用させ、係数位置ＬＨのフラグCodingMethodFlagを値FALSEに設定して第２可変長符号化部１２４を適用させる。
【０１７４】
その他の予測方向の予測モードについては、例えば係数位置ＬＬのフラグCodingMethodFlagのみを値TRUEとし、他の係数位置のフラグCodingMethodFlagを値FALSEとする。このように、予測方向に応じて適切な可変長符号化方法を適用することで、符号化効率を向上させることができる。
【０１７５】
図２２Ｃは、このようにして設定された、予測方向に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。図２２Ｃの例では、予測方向に応じた設定が、圧縮率が１/４〜１/６の場合に限定的に適用されている。
【０１７６】
次に、（４）の、画像信号成分に応じてフラグCodingMethodFlag[pos]を設定する方法について説明する。すなわち、上述の(１)〜(３)では、各係数位置[pos]に対するフラグCodingMethodFlag[pos]の設定を、符号化を制御するための他のパラメータに基づき設定している。これはこの例に限定されず、画像信号成分に応じて、係数位置[pos]毎のフラグCodingMethodFlag[pos]を設定してもよい。
【０１７７】
画像信号が輝度成分Ｙと色差成分Ｕ、Ｖとで構成される場合、一般的に、輝度成分Ｙに情報量が集中し、色差成分Ｕ、Ｖは、輝度成分Ｙに対して情報量が少ない。そのため、色差成分Ｕ、Ｖは、輝度成分Ｙと比較して予測処理が容易で、予測誤差が小さい場合が多い。したがって、色差成分Ｕ、Ｖを直交変換した変換係数は、エントロピーが低くなりシンボルがゼロになる傾向が強くなる。そこで、色差成分Ｕ、Ｖに対して第２可変長符号化部１２４を適用させる割合を、輝度成分Ｙに対して適用させる割合よりも高く設定することで、符号化効率を向上させることができる。
【０１７８】
図２２Ｄは、画像信号成分に対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の一例の設定を示す。この図２２Ｄの例では、輝度成分Ｙおよび色差成分Ｕ、Ｖに対する各係数位置[pos]におけるフラグCodingMethodFlag[pos]の設定を、圧縮率に応じて変えている。
【０１７９】
すなわち、圧縮率が低い（１〜１／２）場合、色差成分Ｕ、Ｖに対して、高周波成分のみからなる係数位置[pos]である位置ＨＨにおいてフラグCodingMethodFlagを値FALSEとして第２可変長符号化部１２４を適用させる。また、他の係数位置[pos]では、色差成分Ｕ、Ｖに対して、フラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用する。以降、圧縮率が高くなるに連れ、色差成分Ｕ、Ｖに対するフラグCodingMethodFlagを値FALSEに設定する割合を増加させていく。図２２Ｃの例では、圧縮率が１／２〜１／４で、色差成分Ｕ、Ｖに対して低周波成分のみからなる係数位置[pos]である位置ＬＬのみをフラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用する。
【０１８０】
輝度成分Ｙについても同様である。輝度成分Ｙの場合、上述のように色差成分Ｕ、Ｖに比べて情報量が多い傾向があるので、フラグCodingMethodFlagを値TRUEとして第１可変長符号化部１２３を適用する割合を、色差成分Ｕ、Ｖの場合よりも多くする。
【０１８１】
本実施形態を適用し、量子化パラメータＱＰや予測モードを用いてフラグCodingMethodFlagを設定する場合、これら量子化パラメータＱＰや予測モードを示す情報は、復号時に必要な情報として、モード情報３１により復号側に伝送される。そのため、復号側では、フラグCodingMethodFlagを用いなくても、符号化時に量子化変換係数１３を第１および第２の可変長符号化のうち何れを用いて可変長符号化したかを知ることができる。したがって、本実施形態の構成では、フラグCodingMethodFlagを復号側に伝送する必要が無く、上述の第１および第２の実施形態における符号化方法符号化部１１１が不要となり、符号化効率を維持したまま付加情報を削減することが可能となる。これは、画像信号成分を用いてフラグCodingMethodFlagを設定する場合も同様である。
【０１８２】
なお、図２２Ｂおよび図２２Ｄの例のように、圧縮率を用いてフラグCodingMethodFlagを設定する場合には、目標符号量を示す情報を別途に復号側に伝送する必要がある。例えば、目標符号量を示す情報（圧縮率情報）を、モード情報３１に含めて符号化し、符号化データ１４に埋め込むことが考えられる。
【０１８３】
上述では、２×２変換を例に挙げて説明したが、４×４変換などより大きなサイズの直交変換に対しても、本第３の実施形態を適用可能であることはもちろんである。この場合、予測方向に応じてフラグCodingMethodFlagを設定する例では、予測方向として、水平および垂直方向以外に斜め方向をさらに用いてもよい。
【０１８４】
また、量子化パラメータＱＰ、目標符号量、予測方法および画像信号成分を適宜組み合わせてフラグCodingMethodFlagを設定することも可能である。さらに、係数位置の一部に対して本第３の実施形態によるフラグCodingMethodFlagの設定方法を適用し、係数位置の他の部分は、ＰＳＮＲ（Ｐｅａｋ  Ｓｉｇｎａｌ−ｔｏ−Ｎｏｉｓｅ  Ｒａｔｉｏ）や発生符号量、ＲＤＯ（Ｒａｔｅ  Ｄｉｓｔｏｒｔｉｏｎ  Ｏｐｔｉｍｉｓａｔｉｏｎ）を用いてフラグCodingMethodFlagを設定するようにしてもよい。
【０１８５】
さらにまた、上述したように、本実施形態によれば、符号化方法符号化部１１１が省略され、フラグCodingMethodFlagを必ずしも符号化する必要はない。したがって、シンタクス構造は、上述した図１７Ａおよび図１８Ａにおいて「CodingMethodFlag[pos]」の記述を省略したものとなる。この場合、図１７Ｂおよび図１７Ｃや、図１８ＢにおけるフラグCodingMethodFlag[pos]による条件判定は、図２２Ａ〜図２２Ｄを用いて説明した、フラグCodingMethodFlag[pos]を設定するための条件による判定に置き換わることになる。
【０１８６】
＜第４の実施形態＞
次に、第４の実施形態について説明する。本第４の実施形態は、上述した第１の実施形態による画像符号化装置１に対応する画像復号装置の例である。
【０１８７】
図２３Ａは、本第４の実施形態に適用可能な画像復号装置４の一例の構成を示すブロック図である。画像復号装置４は、画像復号部５００、復号制御部５３０およびバッファ５０６を有する。復号制御部５３０に対し、画像復号部５００から、供給された各種パラメータ情報や復号処理の結果に基づき出力されるフィードバック情報などによる復号情報８０が供給される。また、復号制御部５３０は、画像復号装置４による復号処理全般を制御するための復号制御情報８１を生成し、画像復号部５００に供給する。
【０１８８】
画像復号装置３は、図１７Ａ〜図１７Ｃ、あるいは、図１８Ａおよび図１８Ｂを用いて説明したシンタクスを示すシンタクステーブルを持ち、画像復号部５００により、画像符号化装置１から出力された符号化データ１４からシンタクステーブルに基づき各符号を取り出して復号し、復号画像データ５４を出力する。
【０１８９】
以下では、符号化は、画像符号化装置１を用い、図１７Ａ〜図１７Ｃに示すシンタクスを示すシンタクステーブルに従い、画像ブロック１０内の小画素ブロック１１を逐次的に処理することにより行われたものとする。
【０１９０】
画像復号部５００は、符号列復号部５０１、逆量子化および逆変換部５０２、加算器５０３、メモリ５０４および予測部５０５を有する。画像復号部５００に入力された符号化データ１４は、符号列復号部５０１に供給される。符号列復号部５０１は、シンタクステーブルに基づき符号化データ１４による符号列を解読する。これにより、符号列復号部５０１は、符号化データ１４から、フラグCodingMethodFlag[pos]（図１７Ａ参照）、予測モードpred_mode、インデクス値CodingParamIdx[pos]（それぞれ図１７Ｂ参照）といった符号化パラメータを取り出す。
【０１９１】
同様に、符号列復号部５０１は、符号化データ１４から、量子化パラメータＱＰおよび量子化マトリクスといった量子化に必要な情報を含む量子化パラメータ情報を取り出す。この量子化パラメータ情報は、例えばモード情報３１に含められて符号化データ１４に埋め込まれている。この量子化パラメータは、復号制御部５３０に供給され、復号制御部５３０内に保持される。
【０１９２】
また、符号列復号部５０１は、符号化データ１４から、量子化変換係数１３がエントロピー符号化された符号列を取り出す。符号列復号部５０１は、符号化データ１４から取り出した符号化パラメータに基づき、画像ブロック１０単位でこの符号列を復号して、各係数位置の量子化変換係数１３が復元された復元量子化変換係数５１を、小画素ブロック１１毎に得る。復元量子化変換係数５１は、逆量子化および逆変換部５０２に供給される。また、符号化データ１４から取り出された予測モードpred_modeは、予測モード情報５２として予測部５０５に供給される。
【０１９３】
逆量子化および逆変換部５０２は、復号制御部５３０から量子化パラメータをロードし、ロードされた量子化パラメータに基づき復元量子化変換係数５１に対して逆量子化処理を施して、直交変換の変換係数が復元された復元変換係数を得る。逆量子化および逆変換部５０２は、さらに、画像符号化装置１で行われた直交変換に対応する逆直交変換処理を、この復元変換係数に対して施し、予測誤差信号１２が復元された復元予測誤差信号５３を得る。
【０１９４】
復元予測誤差信号５３は、加算器５０３に供給され、予測部５０５から出力される予測画像信号５６と加算されて復号小画素ブロック５４が生成される。この復号小画素ブロック５４は、画像復号部５００から出力されバッファ５０６に溜め込まれると共に、メモリ５０４に記憶される。メモリ５０４に記憶された復号小画素ブロック５４は、参照画像信号５５として、後に復号処理される小画素ブロックの予測に用いられる。バッファ５０６に溜め込まれた復号小画素ブロック５４は、復号処理部５３０のタイミング制御に従い、例えば１フレーム単位で出力される。
【０１９５】
メモリ５０４に記憶された復号小画素ブロック５４は、参照画像信号５５として予測部５０５に供給される。予測部５０５は、予測モード情報５２に基づき、上述した予測部１０８と同様にして、参照画像信号５５から予測画像信号５６を生成する。この予測画像信号５６が加算器５０３に供給される。なお、上述した図１Ｂに示す画像符号化装置１’のように予測を行わないで生成された符号化データ１４を復号する場合には、図２３Ｂに画像復号装置４’として例示されるように、画像復号装置４から予測部５０５を取り除くことができる。この場合、予測は行われず、逆量子化および逆変換部５０２から出力される復元予測誤差信号５３がそのまま復号小画素ブロック５４となる。またこの場合、予測に関する他の構成、すなわち、加算器５０３およびメモリ５０４が不要となる。
【０１９６】
図２４は、符号列復号部５０１の一例の構成を示すブロック図である。符号列復号部５０１は、分離部５１０、符号化方法復号部５１１、係数復号部５１２およびモード復号部５１３を有する。符号化データ１４は、分離部５１０に供給される。分離部５１０は、シンタクステーブルに従い、供給された符号化データ１４から、符号化方法情報３０が符号化された符号部分とモード情報３１が符号化された符号部分とを分離し、それぞれ符号化方方法復号部５１１およびモード復号部５１３に供給する。
【０１９７】
また、分離部５１０は、符号化データ１４から量子化変換係数１３が符号化された符号部分を分離して係数復号部５１２に供給する。これに限らず、分離部５１０は、符号化データ１４を係数復号部５１２に供給するようにしてもよい。
【０１９８】
符号化方法復号部５１１は、供給された符号を復号して符号化方法情報３０（フラグCodingMethodFlag[pos]）を得る。この符号化方法情報３０は、符号化された量子化変換係数１３を復号する際の復号方法を示す復号方法情報５８として出力され、係数復号部５１２に供給される。
【０１９９】
係数復号部５１２は、分離部５１０から供給された符号化データ１４を、復号方法情報５８に基づき復号し、量子化変換係数１３が復号された復元量子化変換係数５１を出力する。また、モード復号部５１３は、分離部５１０から供給された符号を復号し、モード情報３１を得る。モード情報３１は、上述したように、量子化パラメータＱＰおよび量子化マトリクスなどの量子化に関するパラメータや、予測モード情報５２といった、変換係数以外の復号に必要な情報を含む。量子化に関するパラメータは、復号制御部５３０に供給される。また、予測モード情報５２は、上述のように予測部５０５に供給される。
【０２００】
図２５は、係数復号部５１２の一例の構成を示すブロック図である。係数復号部５１２は、係数位置抽出部５２０、復号方法判定部５２１およびスイッチ部５２２、ならびに、第１可変長復号部５２３および第２可変長復号部５２４を有する。
【０２０１】
係数位置抽出部５２０は、上述の第１の実施形態において図５を用いて説明した係数位置抽出部１２０と同様の機能を有する。すなわち、係数位置抽出部５２０は、供給された符号化データ１４をスイッチ部５２２の入力端５２２Ａに供給すると共に、当該符号化データ１４から、復号対象の符号の係数位置を示す係数位置情報６０を取得する。例えば、図１７Ｂに例示したブロックのシンタクスに従い、サブブロック（小画素ブロック）毎に、変換係数の復号処理を逐次計数することで、係数位置を知ることができる。なお、係数位置情報６０は、図６Ａおよび図６Ｂを用いて説明したように、小画素ブロック内でグループ分けした位置グループで表してもよい。
【０２０２】
スイッチ部５２２は、後述する復号方法判定部５２１から出力される切替信号６１により、出力端５２２Ｂおよび５２２Ｃが切り替えられる。出力端５２２Ｂおよび５２２Ｃに対して、第１可変長復号部５２３および第２可変長復号部５２４がそれぞれ接続される。すなわち、入力端５２２Ａに供給された符号化データ１４は、切替信号６１に応じて第１可変長復号部５２３および第２可変長復号部５２４の何れか一方に、選択的に供給される。
【０２０３】
係数位置情報６０は、復号方法判定部５２１に供給される。また、復号方法判定部５２１には、復号方法情報５８も供給される。復号方法判定部５２１は、係数位置情報６０と復号方法情報５８とに基づき、係数位置毎または位置グループ毎に切替信号６１を出力し、スイッチ部５２２に供給する。
【０２０４】
これにより、スイッチ部５２２が復号方法情報５８に基づき係数位置または位置グループ単位に切り替えられ、係数位置抽出部５２０から出力された符号化データ１４が、係数位置または位置グループ単位で第１可変長復号部５２３または第２可変長復号部５２４に対して適応的に供給される。
【０２０５】
第１可変長復号部５２３は、供給された符号化データ１４に対して、符号化の際に第１可変長符号化部１２３でなされた符号化に対応する復号処理（第１の可変長復号と呼ぶ）を行う。すなわち、第１可変長符号化部１２３は、１シンボルずつ符号化する１シンボル単位符号化を行うため、第１可変長復号部５２３は、１シンボルずつ復号する１シンボル単位復号方法により符号化データ１４に対する復号処理を行い、復元量子化変換係数５１を出力する。例えば、第１可変長符号化部１２３でゴロム・ライス符号化が用いられた場合には、符号化パラメータｋを復号し、当該符号化パラメータｋを用いてシンボルを復号する。
【０２０６】
第２可変長復号部５２４は、供給された符号化データ１４に対して、符号化の際に第２可変長符号化部１２４でなされた符号化に対応する復号処理（第２の可変長復号と呼ぶ）を行う。すなわち、第２可変長符号化部１２４は、複数のシンボルをまとめて符号化する複数シンボル一括符号化を行うため、第２可変長復号部５２４は、符号列を復号して複数シンボルを纏めて出力する複数シンボル一括復号を行い、復元量子化変換係数５１を出力する。例えば、第２可変長符号化部１２４でランレングス符号化が用いられた場合には、一連のシンボル群は、そのデータの値(value)とラン数(run)で表現されている。
【０２０７】
図２６は、ランレングス符号を復号する一例の処理手順を示すフローチャートである。この図２６に例示されるフローチャートにおける各処理は、第２可変長復号部５２４において実行される。なお、ここでは、復号対象シンボルの総数NUM_MAXが既知であるとする。
【０２０８】
先ず、符号化対象シンボル位置numと、状態stateとを０に設定して初期化する（ステップＳ４０１）。次に、ラン数runを復号し（ステップＳ４０２）、次のステップＳ４０３で、復号されたラン数runが０より大きいか否かを判定する。若し、ラン数runが０より大きいと判定された場合（ステップＳ４０３の「ＹＥＳ」）、処理はステップＳ４０４に移行される。
【０２０９】
ステップＳ４０４では、復号対象シンボルに対して状態stateの値を代入する。そして、次のステップＳ４０５でラン数runを１だけデクリメントし、さらに次のステップＳ４０６で符号化対象シンボル位置numを１だけインクリメントする。そして、次のステップＳ４０７で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたか否かが判定される。若し、超えていないと判定されたら（ステップＳ４０７の「ＮＯ」）、処理はステップＳ４０３に戻され、ラン数runが０より大きいか否かが判定される。
【０２１０】
一方、ステップＳ４０７で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたと判定されたら、全ての復号対象シンボルに対する処理が終了したとされ、一連の処理が終了される。
【０２１１】
上述のステップＳ４０３でラン数runが０であると判定されたら、処理はステップＳ４０８に移行される（ステップＳ４０３の「ＮＯ」）。ステップＳ４０８では、次の符号が、上述の第２可変長符号化部１２４で保持された以外のシンボルにおいてその値(value)を符号化するのに用いた符号化方法（例えばゴロム・ライス符号化）に対応する復号方法により復号され、復号された値ｙが復号対象シンボルに代入される。そして、次のステップＳ４０９で、値ｙが状態stateに代入され、さらに次のステップＳ４１０で符号化対象シンボル位置numを１だけインクリメントする。
【０２１２】
ステップＳ４１０で符号化対象シンボル位置numがインクリメントされたら、処理はステップＳ４１１に移行され、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたか否かが判定される。若し、超えていないと判定されたら（ステップＳ４１２の「ＮＯ」）、処理はステップＳ４０２に戻され、次のラン数runが復号される。
【０２１３】
一方、ステップＳ４１１で、符号化対象シンボル位置numを示す値が復号対象のシンボル総数NUM_MAXを示す値を超えたと判定されたら、全ての復号対象シンボルに対する処理が終了したとされ、一連の処理が終了される。
【０２１４】
なお、この図２６のフローチャートに示す処理において、上述した図８のフローチャートによる処理と同様に、状態stateの値を０に固定的としてもよい。
【０２１５】
次に、シンタクスに従った復号処理の例について、より具体的に説明する。先ず、上述した図１７Ａ〜図１７Ｃに示されるシンタクスに従い、画像ブロック１０内の小画素ブロック１１を逐次的に符号化した符号化データ１４を復号する処理について説明する。
【０２１６】
既に説明したように、この場合のシンタクスは、ヘッダ（図１７Ａ参照）と、ブロック（図１７Ｂ参照）と、サブブロック（図１７Ｃ参照）の各シンタクスから構成される。サブブロックのシンタクスは、ブロックのシンタクスに埋め込まれている。ヘッダのシンタクスは、ヘッダ情報が記述される。ブロックのシンタクスは、画像ブロック１０毎に必要とされるデータが記述される。また、サブブロックのシンタクスは、小画素ブロック１１毎に必要とされるデータが記述される。
【０２１７】
例えば、復号制御部５３０は、符号化データ１４に対する復号処理を、これらのシンタクスに従い制御することで、符号化データ１４を適切に復号することができる。
【０２１８】
図１７Ａに示すヘッダのシンタクスは、係数位置[pos]毎の可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]が記述される。図１７Ａにおいて、値NUM_POSは、係数位置の数、若しくは、係数位置グループの数である。
【０２１９】
図１７Ｂに示すブロックのシンタクスでは、画像ブロック毎の予測モードpred_modeや、係数位置[pos]毎の符号化パラメータ（ゴロム・ライス符号化における符号化パラメータｋなど）であるインデックス値CodingParamIdx[pos]が明記される。さらに、画像ブロック内の小画素ブロック[blk]単位に変換係数の復号を行うサブブロックsubblock()が埋め込まれる。値NUM_BLKは、画像ブロック内の小画素ブロックの数である。
【０２２０】
予測モードpred_modeやインデックス値CodingParamIdx[pos]は、小画素ブロックを複数纏めたセグメントseg毎に切り替えて記されていてもよい。図１７Ｂに示すシンタクスでは、画像ブロックをNUM_SEG個のセグメントsegに分割している。なお、ランレングス符号化を用いた復号に用いられるラン数runおよび状態stateは、画像ブロック単位およびセグメント単位で０に初期化される。
【０２２１】
図１７Ｃに示すサブブロックのシンタクスでは、小画素ブロック毎の変換係数が記述される。図１７Ｃに示す通り、係数位置[pos]毎に可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]を判定する。その結果、フラグCodingMethodFlag[pos]が値TRUEであると判定されたら、ゴロム・ライス符号化などの１シンボルずつ復号する復号方法である第１の可変長復号が適用される。この場合、インデックス値CodingParamIdx[pos]を用いて小画素ブロック[blk]の係数位置[pos]における係数coef[blk][pos]が復号される。
【０２２２】
一方、フラグCodingMethodFlag[pos]が値FALSEであると判定されたら、ランレングス符号化などの複数シンボルを纏めて復号可能な第２可変長復号が適用される。この場合、係数coef[blk][pos]が状態state[pos]と等しければ、ラン数run[pos]に１が加算され復号データは示されない。
【０２２３】
また、係数coef[blk][pos]が状態state[pos]と等しくなければ、ラン数run[pos]と状態state[pos]とがフラグCodingMethodFlag[pos]により切り替えられる可変長復号方法により復号される。そして、ラン数run[pos]に対して０が代入され、状態state[pos]に対して係数coef[blk][pos]が代入される。
【０２２４】
全ての小画素ブロックの処理が終わったら、第２可変長復号が適用される係数位置[pos]においてラン数run[pos]が０以上の値の場合のみ、ラン数run[pos]が記述される。
【０２２５】
次に、上述した図１８Ａおよび図１８Ｂに示されるシンタクスに従い、量子化変換係数１３を係数位置[pos]毎に符号化した符号化データ１４を復号する処理について説明する。
【０２２６】
既に説明したように、この場合のシンタクスは、ヘッダ（図１８Ａ参照）およぼブロック（図１８Ｂ参照）の各シンタクスから構成される。ヘッダのシンタクスは、図１７Ａと同様のヘッダ情報が記述される。ブロックは、符号化データ１４における画像ブロック１０を構成するデータを含む。
【０２２７】
図１８Ｂに示すブロックのシンタクスでは、図１７Ｂを用いて説明したブロックのシンタクスと異なり、係数位置[pos]毎に処理を行う。先ず、係数位置[pos]毎に可変長復号方法を切り替えるためのフラグCodingMethodFlag[pos]を判定する。その結果、フラグCodingMethodFlag[pos]が値TRUEであると判定されたら、係数位置[pos]の変換係数は全てゴロム・ライス符号化などの１シンボルずつ復号する復号方法である第１の可変長復号が適用される。この場合、インデックス値CodingParamIdx[pos]を用いて小画素ブロック[blk]の係数位置[pos]における係数coef[blk][pos]が復号される。
【０２２８】
一方、フラグCodingMethodFlag[pos]が値FALSEであると判定されたら、係数位置[pos]における変換係数は、全てランレングス符号化などの複数シンボルを纏めて復号可能な第２可変長復号が適用される。この場合、係数coef[blk][pos]が状態state[pos]と等しければ、ラン数run[pos]に１が加算され復号データは示されない。
【０２２９】
また、係数coef[blk][pos]が状態state[pos]と等しくなければ、ラン数run[pos]と状態state[pos]とがフラグCodingMethodFlag[pos]により切り替えられる可変長復号方法により復号される。そして、ラン数run[pos]に対して０が代入され、状態state[pos]に対して係数coef[blk][pos]が代入される。
【０２３０】
全ての小画素ブロックの処理が終わったら、第２可変長復号が適用される係数位置[pos]においてラン数run[pos]が０以上の値の場合のみ、ラン数run[pos]が記述される。
【０２３１】
なお、上述では、符号化を、第１可変長符号化部１２３および第２可変長符号化部１２４に対して、１シンボルに対して１ビット以上の符号を割り当てる可変長符号化により行った場合の復号処理について説明した。これはこの例に限定されず、符号化を、ＣＡＢＡＣといった、１シンボルに対して１ビット未満の符号割り当てが可能な可変長符号化を用いて行った場合にも、本第４の実施形態による復号処理を適用可能である。
【０２３２】
この場合、上述したように、符号化の際に、算術符号化に適用するコンテキストおよびその遷移が異なる第１可変長符号化部１２３および第２可変長符号化部１２４が、スイッチ部１２２により係数位置毎に切り替えて適用される。したがって、復号側でもこれに対応し、第１可変長復号部５２３と第２可変長復号部５２４とで、算術符号化に適用するコンテキストおよびその遷移を、第１可変長符号化部１２３および第２可変長符号化部１２４にそれぞれ対応させて異ならせる。そして、係数位置毎に、第１可変長復号部５２３と第２可変長復号部５２４とを切り替えて適用する。符号化の際に、係数位置毎に纏めた順序で符号化を行なうことで、コンテクスト切り替えの頻度が低下して、復号処理の複雑度を低減させることができる。
【０２３３】
＜第５の実施形態＞
次に、第５の実施形態について説明する。本第５の実施形態は、上述した第２の実施形態による画像符号化装置２に対応する画像復号装置の例である。
【０２３４】
図２７は、本第５の実施形態に適用可能な画像復号装置５の一例の構成を示すブロック図である。画像復号装置５は、画像復号部６００、設定部６０５および復号制御部６３０を有する。復号制御部６３０に対し、画像復号部６００から、供給された各種パラメータ情報や復号処理の結果に基づき出力されるフィードバック情報などによる復号情報９１が供給される。また、復号制御部６３０は、画像復号装置５による復号処理全般を制御するための復号制御情報９０を生成し、画像復号部６００に供給する。
【０２３５】
画像復号装置５は、図１７Ａ〜図１７Ｃ、あるいは、図１８Ａおよび図１８Ｂを用いて説明したシンタクスを示すシンタクステーブルを持ち、画像復号部６００により、画像符号化装置２から出力された符号化データ１４からシンタクステーブルに基づき各符号を取り出して復号し、復号画像データ６３を出力する。
【０２３６】
以下では、符号化は、画像符号化装置２を用い、図１７Ａ〜図１７Ｃに示すシンタクスを示すシンタクステーブルに従い行われたものとする。
【０２３７】
設定部６０５は、符号化データ１４の圧縮率を示す圧縮率情報６５を、復号制御部６３０に対して設定する。この圧縮率情報６５は、復号制御情報９０に含められて第１の復号部６０２および第２の復号部６０３にそれぞれ設定される。圧縮率情報６５は、設定部６０５を入力手段として予め第１の復号部６０２および第２の復号部６０３に対して設定しておくことができる。これに限らず、符号化データ１４に、例えばモード情報３１に含められて埋め込まれた目標符号量情報を圧縮率情報６５として、後述する圧縮方法情報復号部６０１で復号して設定してもよい。
【０２３８】
画像復号部６００は、圧縮方法情報復号部６０１、第１の復号部６０２、第２の復号部６０３、バッファ６０４を有する。画像復号部６００に入力された符号化データ１４が圧縮方法情報復号部６０１に供給される。圧縮方法情報復号部６０１は、供給された符号化データ１４から、シンタクスに従いモード情報３１を取り出し、モード情報３１に含められた圧縮方法情報２２１を取得する。取得された圧縮方法情報２２１は、復号方法切替情報６１として、符号化データ１４と共に第１の復号部６０２および第２の復号部６０３にそれぞれ供給される。復号方法切替情報６１は、符号化データ１４の復号を第１の復号部６０２および第２の復号部６０３の何れで行うかを、画像ブロック１０単位で示す。画像復号部６００は、この復号方法切替情報６１に従い、符号化データ１４の復号を第１の復号部６０２および第２の復号部６０３の何れで行うかを選択する。
【０２３９】
第１の復号部６０２は、上述の第２の実施形態における第１の符号化部２０７に対応する。すなわち、第１の復号部６０２は、第１の符号化部２０７による符号化処理と逆の処理を行い、符号化データ１４を復号する。より具体的な例として、第１の復号部６０２は、第１の符号化部２０７に対応し、符号化データ１４に対して、画像ブロック１０単位で下位ビット補填による逆量子化や、空間補間処理を施して復号処理を行い、復号画像ブロック６２を得る。この復号画像ブロック６２は、バッファ６０４に記憶される。
【０２４０】
第２の復号部６０３は、上述の第２の実施形態における第２の符号化部２０８に対応するもので、図２３に示した画像復号部６００と同等の機能を有する。すなわち、第２の復号部６０３は、第２の符号化部２０８による符号化処理と逆の処理を行って符号化データ１４を復号し、復号画像ブロック６２を得る。この復号画像ブロック６２は、バッファ６０４に記憶される。バッファ６０４に記憶された復号画像ブロック６２、６２、…は、復号制御部６３０に出力タイミングを制御されて、復号画像データ６３として出力される。
【０２４１】
第２の復号部６０３において、符号化データ１４の復号を第１の可変長復号および第２の可変長復号のうち何れを用いて行うかは、設定部６０５で設定された圧縮率情報６５に基づき、例えば、図２２Ｂを用いて説明した、目標符号量を用いてフラグCodingMethodFlagを設定する方法に従い決めることができる。
【０２４２】
＜第６の実施形態＞
次に、第６の実施形態について説明する。本第６の実施形態は、上述した第３の実施形態による画像符号化装置に対応する画像復号装置の例である。本第６の実施形態による画像復号装置は、図２３を用いて説明した第４の実施形態による画像復号装置４の構成に対して符号列復号部５０１の構成が異なるのみであるので、以下では、この点を中心に説明する。
【０２４３】
図２８は、本第６の実施形態による符号列復号部７００の一例の構成を示すブロック図である。なお、図２８において、上述した図２４と共通する部分には同一の符号を付し、詳細な説明を省略する。図２９に例示されるように、この符号列復号部７００を図２３に示す画像復号装置４における符号列復号部５０１と置き換えることで、本第６の実施形態による画像復号装置６とする。
【０２４４】
符号列復号部７００は、分離部５１４、係数復号部５１２、モード復号部５１３およびモード情報変換部５１５を有する。符号列復号部７００に入力された符号化データ１４は、分離部５１４に供給される。分離部５１４は、シンタクステーブルに従い、供給された符号化データ１４からモード情報３１が符号化された符号部分を分離し、モード復号部５１３に供給する。また、分離部５１４は、符号化データ１４から量子化変換係数１３が符号化された符号部分を分離して係数復号部５１２に供給する。これに限らず、分離部５１４は、供給された符号化データ１４を係数復号部５１２に供給するようにしてもよい。
【０２４５】
モード復号部５１３は、分離部５１４から供給された符号を復号してモード情報３１を得る。このモード情報３１は、上述したように、量子化パラメータＱＰおよび量子化マトリクスなどの量子化に関するパラメータや、予測モード情報５２といった、変換係数以外の復号に必要な情報を含む。モード情報３１は、モード情報変換部５１５に供給される。
【０２４６】
モード情報変換部５１５は、供給されたモード情報３１から復号方法情報５８を生成し、係数復号部５１２に供給する。係数復号部５１２は、分離部５１４から供給された符号化データ１４を、復号方法情報５８に基づき復号し、量子化変換係数１３が復号された復元量子化変換係数５１を出力する。すなわち、係数復号部５１２は、復号方法情報５８に従い、１シンボルずつの復号を行う第１の復号方法と、係数位置毎に纏めて復号を行う第２の復号方法とを、係数位置単位で切り替えて、符号化データ１４の復号を行う。
【０２４７】
モード情報変換部５１５の処理について、より詳細に説明する。モード情報変換部５１５は、モード復号部５１３から供給されたモード情報３１に、符号化データ１４の符号化の際に符号化方法情報３０として用いられたデータとして含まれる、量子化パラメータＱＰ、予測モード情報および／または目標符号量情報に基づき復号方法情報５８を生成する。
【０２４８】
具体的な例として、図２２Ａ〜図２２Ｄを用いて説明したような、モード情報３１に含まれる量子化パラメータＱＰ、圧縮率（目標符号量）および予測方向や、画像信号成分（輝度成分Ｙ、色差成分Ｕ、Ｖ）のうち、符号化の際に用いられた情報に基づき、第１の復号方法および第２の復号方法のうち何方を選択するかを示すフラグCodingMethodFlag[pos]を生成する。
【０２４９】
本第６の実施形態によれば、変換係数の復号方法を示す情報を符号化側から伝送する必要が無い。そのため、符号化効率を維持したまま付加情報を削減することが可能となる。また、復号方法を指定するためのフラグCodingMethodFlagを復号する必要が無いので、既に説明したように、シンタクスにおいて、フラグCodingMethodFlag[pos]の記述が省略できる。
【０２５０】
上述した各実施形態は、例えば１のＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）内に関連する他の画像処理回路と共に組み込む場合に、用いて好適である。勿論、これに限らず、上述の各実施形態による画像符号化装置および画像復号装置は、単独で構成されていてもよい。また、符号化データ１４は、有線または無線といった伝送路を介して画像符号化装置から画像復号装置に伝送されてもよいし、光ディスク、半導体メモリといった記憶媒体を介して画像符号化装置から画像復号装置に渡されてもよい。
【０２５１】
＜他の実施形態＞
さらに、上述した各実施形態による画像符号化装置または画像復号装置は、ハードウェアのみならず一部または全部をプログラムによりソフトウェア的に構成してもよい。ソフトウェアで構成する場合、画像符号化装置または画像復号装置の各機能をコンピュータに実行させるためのプログラムが、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置と、ＨＤＤ（ハードディスクドライブ）、光ディスクドライブ装置などの外部記憶装置と、ディスプレイ装置に表示信号を出力する表示制御装置と、キーボードやマウスなどを接続したり、他のディジタル信号の入出力を行う入出力Ｉ／Ｆを備えたコンピュータにインストールされる。このコンピュータは、通信ネットワークに接続するための通信Ｉ／Ｆをさらに備えてもよい。
【０２５２】
当該プログラムは、例えばインストール可能な形式または実行可能な形式のファイルでＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）、フレキシブルディスク（ＦＤ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などのコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０２５３】
また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。
【０２５４】
また、各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムを、ＲＯＭなどに予め組み込んで提供するように構成してもよい。
【０２５５】
各実施形態による画像符号化装置または画像復号装置をコンピュータ上で実現するためのプログラムは、画像符号化装置であれば、例えば上述した符号化制御部１３０および画像符号化部１００、画像復号装置であれば、例えば上述した復号制御部５３０および画像復号部５００を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ（プロセッサ）が上述の記憶媒体から当該プログラムを読み出して実行することにより、上述の各部が主記憶装置（ＲＡＭ）上にロードされ、画像符号化装置であれば例えば符号化制御部１３０および画像符号化部１００が、画像復号装置であれば例えば復号制御部５３０および画像復号部５００が、主記憶装置上に生成されるようになっている。
【０２５６】
＜各実施形態の他の対応＞
上述の各実施形態の他の対応によれば、画像符号化方法は、第１可変長符号化ステップおよび第２可変長符号化ステップのうち何れを用いて係数位置単位での可変長符号化を行ったかを示す情報を、符号化データに埋め込むステップをさらに有することを特徴とする。
【０２５７】
また、画像符号化方法において、第１可変長符号化ステップは、ゴロム・ライス符号化、ハフマン符号化および固定長符号化のうち、何れか１を用いて係数の可変長符号化を行うことを特徴とする。
【０２５８】
また、画像符号化方法において、第１可変長符号化ステップは、ランレングス符号化、ならびに、複数ブロックからなる領域内を分割した小領域において全ての係数が０であるか否かを表現するスキップ符号化のうち何れか１を用いて係数の可変長符号化を行うことを特徴とする。
【０２５９】
また、画像符号化方法は、圧縮率を示す情報を符号化して復号側に伝送するステップをさらに有することを特徴とする。
【０２６０】
また、画像復号方法において、第１可変長符号化および第２可変長符号化のうち何れを用いて係数位置単位での可変長符号化を行ったかを示す情報を符号化データから復号し、復号された情報に従い第１可変長復号および第２可変長復号を係数位置単位で切り替えることを特徴とする。
【０２６１】
また、画像復号方法において、第１可変長復号ステップは、ゴロム・ライス符号、ハフマン符号および固定長符号のうち、何れか１を復号して係数を復号すことを特徴とする。
【０２６２】
また、画像復号方法において、第２可変長復号ステップは、ランレングス符号、ならびに、複数ブロックからなる領域内を分割した小領域において全ての変換係数が０であるか否かを表現するスキップ符号のうち何れか１を復号して係数を復号することを特徴とする。
【０２６３】
また、画像復号方法は、符号化された、圧縮率を示す情報を復号するステップをさらに有することを特徴とする。
【０２６４】
＜各実施形態における変形例＞  
なお、本発明は上記実施形態そのままに限定されるものでは無く、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０２６５】
１０  画像ブロック
１１  小画素ブロック
１４  符号化データ
３０  符号化方法情報
３１  モード情報
１０１  分割部
１０３  変換および量子化部
１０４  エントロピー符号化部
１０８  予測部
１１０  係数符号化部
１１１  符号化方法符号化部
１１２  モード符号化部
１２０，５２０  係数位置抽出部
１２１  符号化方法判定部
１２２  スイッチ部
１２３  第１可変長符号化部
１２４  第２可変長符号化部
２０３  仮圧縮部
２０４1，２０４2，…，２０４n，…，２０４N  算出部
２０６  本圧縮部
２０７  第１の符号化部
２０８  第２の符号化部
３０２  モード情報変換部
５０１，７００  符号列復号部
５１０  分離部
５１１  符号化方法復号部
５１２  係数復号部
５１３  モード復号部
５２１  復号方法判定部
５２２  スイッチ部
５２３  第１可変長復号部
５２４  第２可変長復号部
６０２  第１の復号部
６０３  第２の復号部
【図１Ａ】
0005492206.tif 000002
【図１Ｂ】
0005492206.tif 000003
【図２Ａ】
0005492206.tif 000004
【図２Ｂ】
0005492206.tif 000005
【図２Ｃ】
0005492206.tif 000006
【図３Ａ】
0005492206.tif 000007
【図３Ｂ】
0005492206.tif 000008
【図３Ｃ】
0005492206.tif 000009
【図３Ｄ】
0005492206.tif 000010
【図３Ｅ】
0005492206.tif 000011
【図４】
0005492206.tif 000012
【図５】
0005492206.tif 000013
【図６Ａ】
0005492206.tif 000014
【図６Ｂ】
0005492206.tif 000015
【図７】
0005492206.tif 000016
【図８】
0005492206.tif 000017
【図９】
0005492206.tif 000018
【図１０】
0005492206.tif 000019
【図１１Ａ】
0005492206.tif 000020
【図１１Ｂ】
0005492206.tif 000021
【図１２Ａ】
0005492206.tif 000022
【図１２Ｂ】
0005492206.tif 000023
【図１３】
0005492206.tif 000024
【図１４Ａ】
0005492206.tif 000025
【図１４Ｂ】
0005492206.tif 000026
【図１４Ｃ】
0005492206.tif 000027
【図１４Ｄ】
0005492206.tif 000028
【図１５】
0005492206.tif 000029
【図１６】
0005492206.tif 000030
【図１７Ａ】
0005492206.tif 000031
【図１７Ｂ】
0005492206.tif 000032
【図１７Ｃ】
0005492206.tif 000033
【図１８Ａ】
0005492206.tif 000034
【図１８Ｂ】
0005492206.tif 000035
【図１９】
0005492206.tif 000036
【図２０】
0005492206.tif 000037
【図２１】
0005492206.tif 000038
【図２２Ａ】
0005492206.tif 000039
【図２２Ｂ】
0005492206.tif 000040
【図２２Ｃ】
0005492206.tif 000041
【図２２Ｄ】
0005492206.tif 000042
【図２３Ａ】
0005492206.tif 000043
【図２３Ｂ】
0005492206.tif 000044
【図２４】
0005492206.tif 000045
【図２５】
0005492206.tif 000046
【図２６】
0005492206.tif 000047
【図２７】
0005492206.tif 000048
【図２８】
0005492206.tif 000049
【図２９】
0005492206.tif 000050