(57)【要約】【課題】エントロピー符号化においてインデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制すること。【解決手段】復号される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするカウント部と、上記カウント部によりカウントされた上記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするソート部と、を備える画像処理装置を提供する。【選択図】図１８
2012124878.tif 000002
【特許請求の範囲】
【請求項１】
復号される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするカウント部と、
前記カウント部によりカウントされた前記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするソート部と、
を備える画像処理装置。
【請求項２】
前記ソート部は、複数のシンタックス要素、１つ以上の符号化単位又は１つ以上のマクロブロックにわたる第１の間隔で、前記符号番号テーブルをソートする、請求項１に記載の画像処理装置。
【請求項３】
前記第１の間隔は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第１のパラメータに基づいて決定される、請求項２に記載の画像処理装置。
【請求項４】
前記第１の間隔は、前記画像のサイズに応じて決定される、請求項２に記載の画像処理装置。
【請求項５】
前記カウント部は、前記第１の間隔と等しく又は前記第１の間隔よりも大きい第２の間隔で、発生頻度のカウント結果をリセットする、請求項２に記載の画像処理装置。
【請求項６】
前記カウント部は、前記第１の間隔と等しく又は前記第１の間隔よりも大きい第２の間隔で、発生頻度のカウント結果を正規化する、請求項２に記載の画像処理装置。
【請求項７】
前記第２の間隔は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第２のパラメータに基づいて決定される、請求項５又は請求項６に記載の画像処理装置。
【請求項８】
前記カウント結果の正規化のための代表値は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第３のパラメータに基づいて決定される、請求項６に記載の画像処理装置。
【請求項９】
前記画像処理装置は、
発生したシンタックス要素のインデックス値と前記符号番号テーブル内で当該インデックス値よりも小さい符号番号を有する他のインデックス値とを、前記符号番号テーブル内でスワップするスワップ部と、
前記ソート部によるソート及び前記スワップ部によるスワップの間で処理を切替える制御部と、
をさらに備える、請求項１に記載の画像処理装置。
【請求項１０】
前記制御部は、複数のシンタックス要素にわたる前記インデックス値の発生頻度への追従により前記画像の符号化効率が向上される場合に、前記ソート部に前記ソートを実行させる、請求項９に記載の画像処理装置。
【請求項１１】
前記画像処理装置は、前記符号番号テーブルを記憶する記憶部、をさらに備える、請求項１に記載の画像処理装置。
【請求項１２】
前記ソート部は、発生したインデックス値に対応する範囲内の前記符号番号テーブルのエントリのみを部分的にソートする、請求項１に記載の画像処理装置。
【請求項１３】
前記画像処理装置は、前記ソート部によりソートされるエントリの範囲を制御する制御部、をさらに備える、請求項１２に記載の画像処理装置。
【請求項１４】
前記制御部は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第４のパラメータに基づいて、前記ソート部によりソートされるエントリの範囲を決定する、請求項１３に記載の画像処理装置。
【請求項１５】
復号される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするステップと、
カウントされた前記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするステップと、
を含む画像処理方法。
【請求項１６】
符号化される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするカウント部と、
前記カウント部によりカウントされた前記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするソート部と、
を備える画像処理装置。
【請求項１７】
符号化される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするステップと、
カウントされた前記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするステップと、
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣに続く次世代の映像符号化方式として、ＨＥＶＣ（High  Efficiency  Video  Coding）の標準化が進められている。ＨＥＶＣが使用する基本的な符号化技術は、ＡＶＣ（Advanced  Video  Coding）と同様である。但し、ＪＣＴＶＣ−Ａ１１９において、エントロピー符号化の手法として、ＡＶＣのエントロピー符号化のＣＡＢＡＣ（Context-based  Adaptive  Binary  Arithmetic  Coding）及びＣＡＶＬＣ（Context-based  Adaptive  VLC）とは異なる手法が提案されている（下記非特許文献１参照）。
【０００３】
ＣＡＢＡＣは、ＣＡＶＬＣと比較して、符号化効率が高い一方で算術符号化のための複雑な演算を要する。そのため、ＡＶＣのベースラインプロファイルでは、ＣＡＢＡＣではなくＣＡＶＬＣが使用されている。これに対し、ＪＣＴＶＣ−Ａ１１９において提案されているエントロピー符号化の手法は、ＣＡＶＬＣと同様のＶＬＣ（Variable  Length  Coding：可変長符号化）でありながらＣＡＢＡＣに近い性能を示し得るため、携帯電話などのモバイル機器に代表される演算能力の低い機器での利用が期待されている。
【０００４】
ＪＣＴＶＣ−Ａ１１９において提案されているエントロピー符号化の手法では、エンコーダ及びデコーダは、ＶＬＣテーブル内で各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルを記憶する。そして、符号化又は復号の際、あるインデックス値が発生すると、上記符号番号テーブル内で、発生したインデックス値とそのすぐ上のインデックス値（即ち、符号番号が１つ小さいインデックス値）とがスワップされる。このようなスワップが繰り返されることにより、相対的に発生頻度の高いインデックス値が、より小さい符号番号に関連付けられるようになる。その結果、エントロピー符号化の利点である符号量の圧縮が達成される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】K.Ugur  (Nokia),  K.R.Andersson  (LM  Ericsson),  A.Fuldseth  (Tandberg  Telecom),  “JCTVC-A119:Video  coding  technology  proposal  by  Tandberg,  Nokia,  and  Ericsson”,  Documents  of  the  first  meeting  of  the  Joint  Collaborative  Team  on  Video  Coding  (JCT-VC),  Dresden,  Germany,  15-23  April,  2010.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したＪＣＴＶＣ−Ａ１１９のエントロピー符号化におけるスワップ方式では、例えば２通りのインデックス値が交互に発生した場合に、局所的なスワップのみが繰り返され、インデックス値の発生頻度と符号番号テーブルの内容とが乖離する状況が生じ得る。このような状況下では、より高い頻度で発生しているインデックス値についてより短い符号語を使用することができず、結果的に符号量の圧縮が妨げられる。例えば３通り以上のインデックス値が同じ順序で繰り返し発生するような場合にも、同様の状況は生じ得る。
【０００７】
そこで、本発明は、このようなエントロピー符号化におけるインデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することのできる、画像処理装置及び画像処理方法を提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明のある実施形態によれば、復号される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするカウント部と、上記カウント部によりカウントされた上記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするソート部と、を備える画像処理装置が提供される。
【０００９】
上記画像処理装置は、典型的には、画像を復号する画像復号装置として実現され得る。
【００１０】
また、上記ソート部は、複数のシンタックス要素、１つ以上の符号化単位又は１つ以上のマクロブロックにわたる第１の間隔で、上記符号番号テーブルをソートしてもよい。
【００１１】
また、上記第１の間隔は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第１のパラメータに基づいて決定されてもよい。
【００１２】
また、上記第１の間隔は、上記画像のサイズに応じて決定されてもよい。
【００１３】
また、上記カウント部は、上記第１の間隔と等しく又は上記第１の間隔よりも大きい第２の間隔で、発生頻度のカウント結果をリセットしてもよい。
【００１４】
また、上記カウント部は、上記第１の間隔と等しく又は上記第１の間隔よりも大きい第２の間隔で、発生頻度のカウント結果を正規化してもよい。
【００１５】
また、上記第２の間隔は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第２のパラメータに基づいて決定されてもよい。
【００１６】
また、上記カウント結果の正規化のための代表値は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第３のパラメータに基づいて決定されてもよい。
【００１７】
また、上記画像処理装置は、発生したシンタックス要素のインデックス値と上記符号番号テーブル内で当該インデックス値よりも小さい符号番号を有する他のインデックス値とを、上記符号番号テーブル内でスワップするスワップ部と、上記ソート部によるソート及び上記スワップ部によるスワップの間で処理を切替える制御部と、をさらに備えてもよい。
【００１８】
また、上記制御部は、複数のシンタックス要素にわたる上記インデックス値の発生頻度への追従により上記画像の符号化効率が向上される場合に、上記ソート部に上記ソートを実行させてもよい。
【００１９】
また、上記画像処理装置は、上記符号番号テーブルを記憶する記憶部、をさらに備えてもよい。
【００２０】
また、上記ソート部は、発生したインデックス値に対応する範囲内の上記符号番号テーブルのエントリのみを部分的にソートしてもよい。
【００２１】
また、上記画像処理装置は、上記ソート部によりソートされるエントリの範囲を制御する制御部、をさらに備えてもよい。
【００２２】
また、上記制御部は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得される第４のパラメータに基づいて、上記ソート部によりソートされるエントリの範囲を決定してもよい。
【００２３】
また、本発明の別の実施形態によれば、復号される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするステップと、カウントされた上記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするステップと、を含む画像処理方法が提供される。
【００２４】
また、本発明の別の実施形態によれば、符号化される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするカウント部と、上記カウント部によりカウントされた上記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするソート部と、を備える画像処理装置が提供される。
【００２５】
上記画像処理装置は、典型的には、画像を符号化する画像符号化装置として実現され得る。
【００２６】
また、本発明の別の実施形態によれば、符号化される画像内のシンタックス要素のインデックス値ごとの発生頻度をカウントするステップと、カウントされた上記発生頻度のより高いインデックス値がより短い符号語に対応するように、エントロピー符号化において使用される各符号語に関連付けられる符号番号とシンタックス要素のインデックス値との組を保持する符号番号テーブルをソートするステップと、を含む画像処理方法が提供される。
【発明の効果】
【００２７】
本発明に係る画像処理装置及び画像処理方法によれば、エントロピー符号化においてインデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することができる。
【図面の簡単な説明】
【００２８】
【図１】一実施形態に係る画像符号化装置の構成の一例を示すブロック図である。
【図２】一実施形態に係る画像符号化装置の可逆符号化部の詳細な構成の一例を示すブロック図である。
【図３】符号番号テーブルの一例について説明するための説明図である。
【図４】ＶＬＣテーブルの一例について説明するための説明図である。
【図５】スワップ方式に関連する課題の具体的な例について説明するための説明図である。
【図６】一実施形態に係るカウント部による発生頻度のカウントについて説明するための説明図である。
【図７】一実施形態に係るソート部による符号番号テーブルのソートについて説明するための説明図である。
【図８】一実施形態に係るカウント部によるカウンタのリセットの一例について説明するための説明図である。
【図９】一実施形態に係るカウント部によるカウンタの正規化の一例について説明するための説明図である。
【図１０】一実施形態に係るテーブル更新処理の流れの一例を示すフローチャートである。
【図１１】一実施形態に係るソートタイミング判定処理の詳細な流れの一例を示すフローチャートである。
【図１２】一実施形態に係るリセット／正規化タイミング判定処理の詳細な流れの一例を示すフローチャートである。
【図１３】第１の変形例に係る可逆符号化部の詳細な構成の一例を示すブロック図である。
【図１４】第２の変形例に係る可逆符号化部の詳細な構成の一例を示すブロック図である。
【図１５】第２の変形例に係るソート部による符号番号テーブルの部分ソートについて説明するための説明図である。
【図１６】第２の変形例に係るテーブル更新処理の流れの一例を示すフローチャートである。
【図１７】一実施形態に係る画像復号装置の構成の一例を示すブロック図である。
【図１８】一実施形態に係る画像復号装置の可逆復号部の詳細な構成の一例を示すブロック図である。
【図１９】テレビジョン装置の概略的な構成の一例を示すブロック図である。
【図２０】携帯電話機の概略的な構成の一例を示すブロック図である。
【図２１】記録再生装置の概略的な構成の一例を示すブロック図である。
【図２２】撮像装置の概略的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００３０】
また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
１．一実施形態に係る画像符号化装置の構成例
１−１．全体的な構成例
１−２．可逆符号化部の構成例
２．一実施形態に係るテーブル更新処理の流れ
３．変形例の説明
３−１．第１の変形例
３−２．第２の変形例
４．一実施形態に係る画像復号装置の構成例
４−１．全体的な構成例
４−２．可逆復号部の構成例
５．応用例
６．まとめ
【００３１】
＜１．一実施形態に係る画像符号化装置の構成例＞
［１−１．全体的な構成例］
図１は、本発明の一実施形態に係る画像符号化装置１０の構成の一例を示すブロック図である。図１を参照すると、画像符号化装置１０は、Ａ／Ｄ（Analogue  to  Digital）変換部１１、並べ替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８、逆量子化部２１、逆直交変換部２２、加算部２３、デブロックフィルタ２４、フレームメモリ２５、セレクタ２６、イントラ予測部３０、動き探索部４０、及びモード選択部５０を備える。
【００３２】
Ａ／Ｄ変換部１１は、アナログ形式で入力される画像信号をデジタル形式の画像データに変換し、一連のデジタル画像データを並べ替えバッファ１２へ出力する。
【００３３】
並べ替えバッファ１２は、Ａ／Ｄ変換部１１から入力される一連の画像データに含まれる画像を並べ替える。並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group  of  Pictures）構造に応じて画像を並べ替えた後、並べ替え後の画像データを減算部１３、イントラ予測部３０及び動き探索部４０へ出力する。
【００３４】
減算部１３には、並べ替えバッファ１２から入力される画像データ、及び後に説明するモード選択部５０により選択される予測画像データが供給される。減算部１３は、並べ替えバッファ１２から入力される画像データとモード選択部５０から入力される予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部１４へ出力する。
【００３５】
直交変換部１４は、減算部１３から入力される予測誤差データについて直交変換を行う。直交変換部１４により実行される直交変換は、例えば、離散コサイン変換（Discrete  Cosine  Transform：ＤＣＴ）又はカルーネン・レーベ変換などであってよい。直交変換部１４は、直交変換処理により取得される変換係数データを量子化部１５へ出力する。
【００３６】
量子化部１５には、直交変換部１４から入力される変換係数データ、及び後に説明するレート制御部１８からのレート制御信号が供給される。量子化部１５は、変換係数データを量子化し、量子化後の変換係数データ（以下、量子化データという）を可逆符号化部１６及び逆量子化部２１へ出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づいて量子化パラメータ（量子化スケール）を切替えることにより、可逆符号化部１６に入力される量子化データのビットレートを変化させる。
【００３７】
可逆符号化部１６には、量子化部１５から入力される量子化データ、及び、後に説明するイントラ予測部３０又は動き探索部４０により生成されモード選択部５０により選択されるイントラ予測又はインター予測に関する情報が供給される。イントラ予測に関する情報は、例えば、ブロックごとの最適なイントラ予測モードを示す予測モード情報を含み得る。また、インター予測に関する情報は、例えば、ブロックごとの動きベクトルの予測のための予測モード情報、差分動きベクトル情報、及び参照画像情報などを含み得る。
【００３８】
可逆符号化部１６は、入力される符号化対象のデータをシンタックス要素（syntax  element）ごとに取得し、各シンタックス要素のインデックス値をエントロピー符号化方式で符号語（codeword）に変換することにより、符号化ストリームを生成する。また、可逆符号化部１６は、後に説明する符号番号テーブルの更新の制御のために利用されるパラメータを、符号化ストリームのヘッダ（例えば、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ）内に多重化してもよい。そして、可逆符号化部１６は、生成した符号化ストリームを蓄積バッファ１７へ出力する。
【００３９】
蓄積バッファ１７は、可逆符号化部１６から入力される符号化ストリームを半導体メモリなどの記憶媒体を用いて一時的に蓄積する。そして、蓄積バッファ１７は、蓄積した符号化ストリームを、伝送路（又は画像符号化装置１０からの出力線）の帯域に応じたレートで出力する。
【００４０】
レート制御部１８は、蓄積バッファ１７の空き容量を監視する。そして、レート制御部１８は、蓄積バッファ１７の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部１５へ出力する。例えば、レート制御部１８は、蓄積バッファ１７の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部１８は、蓄積バッファ１７の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
【００４１】
逆量子化部２１は、量子化部１５から入力される量子化データについて逆量子化処理を行う。そして、逆量子化部２１は、逆量子化処理により取得される変換係数データを、逆直交変換部２２へ出力する。
【００４２】
逆直交変換部２２は、逆量子化部２１から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。そして、逆直交変換部２２は、復元した予測誤差データを加算部２３へ出力する。
【００４３】
加算部２３は、逆直交変換部２２から入力される復元された予測誤差データとモード選択部５０から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部２３は、生成した復号画像データをデブロックフィルタ２４及びフレームメモリ２５へ出力する。
【００４４】
デブロックフィルタ２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタリング処理を行う。デブロックフィルタ２４は、加算部２３から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データをフレームメモリ２５へ出力する。
【００４５】
フレームメモリ２５は、加算部２３から入力される復号画像データ、及びデブロックフィルタ２４から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【００４６】
セレクタ２６は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部３０に供給する。また、セレクタ２６は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ２５から読み出し、読み出した復号画像データを参照画像データとして動き探索部４０に供給する。
【００４７】
イントラ予測部３０は、並べ替えバッファ１２から入力される符号化対象の画像データ、及びセレクタ２６を介して供給される復号画像データに基づいて、各イントラ予測モードのイントラ予測処理を行う。例えば、イントラ予測部３０は、各イントラ予測モードによる予測結果を所定のコスト関数を用いて評価する。そして、イントラ予測部３０は、コスト関数値が最小となるイントラ予測モード、即ち圧縮率が最も高くなるイントラ予測モードを、最適なイントラ予測モードとして選択する。さらに、イントラ予測部３０は、当該最適なイントラ予測モードを示す予測モード情報、予測画像データ、及びコスト関数値などのイントラ予測に関する情報を、モード選択部５０へ出力する。
【００４８】
動き探索部４０は、並べ替えバッファ１２から入力される符号化対象の画像データ、及びセレクタ２６を介して供給される復号画像データに基づいて、インター予測処理（フレーム間予測処理）を行う。例えば、動き探索部４０は、各予測モードによる予測結果を所定のコスト関数を用いて評価する。次に、動き探索部４０は、コスト関数値が最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、動き探索部４０は、当該最適な予測モードに従って予測画像データを生成する。そして、動き探索部４０は、選択した最適な予測モードを表す予測モード情報を含むインター予測に関する情報、予測画像データ、及びコスト関数値などのインター予測に関する情報を、モード選択部５０へ出力する。
【００４９】
モード選択部５０は、イントラ予測部３０から入力されるイントラ予測に関するコスト関数値と動き探索部４０から入力されるインター予測に関するコスト関数値とを比較する。そして、モード選択部５０は、イントラ予測及びインター予測のうちコスト関数値がより少ない予測手法を選択する。モード選択部５０は、イントラ予測を選択した場合には、イントラ予測に関する情報を可逆符号化部１６へ出力すると共に、予測画像データを減算部１３及び加算部２３へ出力する。また、モード選択部５０は、インター予測を選択した場合には、インター予測に関する上述した情報を可逆符号化部１６へ出力すると共に、予測画像データを減算部１３及び加算部２３へ出力する。
【００５０】
［１−２．可逆符号化部の構成例］
図２は、図１に示した画像符号化装置１０の可逆符号化部１６の詳細な構成の一例を示すブロック図である。図２を参照すると、可逆符号化部１６は、記憶部１０２、インデックス値取得部１０８、変換部１１０、カウント部１２０、ソート部１２２、及び制御部１２４を有する。
【００５１】
記憶部１０２は、半導体メモリなどの記憶媒体により構成される。本実施形態において、記憶部１０２は、符号番号テーブル１０４及びＶＬＣ（Variable  Length  Code）テーブル１０６を記憶する。以下、図３及び図４を参照しながら、これら２つのテーブルについて説明する。
【００５２】
（１）符号番号テーブル
図３には、一例としての符号番号テーブル１０４が示されている。符号番号テーブル１０４は、符号番号（CodeNum）及びシンタックス要素（SyntaxElement）という２つのデータ項目を有する。符号番号は、エントロピー符号化において使用される各符号語に関連付けられる番号である。例えば、符号番号は、ゼロから符号語の候補の数（マイナス１）までの整数であってよい。符号番号テーブル１０４のシンタックス要素の値は、各シンタックス要素のイベント内容に対応するインデックス値である。シンタックス要素のインデックス値は、テーブルインデックスとも呼ばれ、例えば、マクロブロックタイプ、サブブロックタイプ又は予測モードなど、様々な種類のシンタックス要素のインデックス値を表し得る。
【００５３】
このような符号番号テーブル１０４を参照することにより、例えば、画像の符号化の際には、シンタックス要素ごとに、発生したインデックス値に対応する符号番号が取得される。図３の例では、符号番号テーブル１０４は、符号番号とシンタックス要素のインデックス値との組として、（０，４）、（１，５）、（２，２）、（３，１）、（４，７）、…を含んでいる。従って、例えば、発生したインデックス値が“４”であれば、符号番号“０”が取得される。発生したインデックス値が“５”であれば、符号番号“１”が取得される。また、画像の復号の際には、出現した符号番号に対応するインデックス値が、シンタックス要素ごとに取得される。例えば、出現した符号番号が“０”であれば、インデックス値“４”が取得される。出現した符号番号が“１”であれば、インデックス値“５”が取得される。
【００５４】
（２）ＶＬＣテーブル
図４には、一例としてのＶＬＣテーブル１０６が示されている。ＶＬＣテーブル１０６は、符号番号（CodeNum）及び符号語（CodeWord）という２つのデータ項目を有する。符号語は、符号番号と関連付けて定義される可変長のビット列である。典型的には、ＶＬＣテーブル１０６において、より小さい符号番号により短いビット列が関連付けられる。このようなＶＬＣテーブル１０６を参照することにより、例えば、画像の符号化の際には、発生したインデックス値に対応する符号番号と関連付けられている符号語がＶＬＣテーブル１０６から取得され、取得された符号語が符号化ストリームの一部として出力される。また、画像の復号の際には、符号化ストリームに含まれる符号語に関連付けられている符号番号がＶＬＣテーブル１０６から取得され、取得された符号番号が符号番号テーブル１０４の参照のために使用される。
【００５５】
例えばＨ．２６４／ＡＶＣ及びＨＥＶＣでは、符号語のパターンの異なる複数のＶＬＣテーブルが予め用意される。そして、インデックス値の発生確率の分散に応じて、符号化／復号の際に使用すべきＶＬＣテーブルが切替えられる。しかしながら、ＶＬＣテーブル内の符号語のパターンの相違は本実施形態の特徴に関連しないため、ここではＶＬＣテーブルの切替えについての詳細な説明を省略する。
【００５６】
（３）基本的な符号化処理
上述したような符号番号テーブル１０４及びＶＬＣテーブル１０６を用いて、可逆符号化部１６は、入力されるデータをシンタックス要素ごとに符号語に変換する。より具体的には、まず、インデックス値取得部１０８は、入力されるデータからイベントを認識し、認識したイベントに対応するシンタックス要素ごとのインデックス値を取得する（このような処理を“enumeration”ともいう）。いくつかのシンタックス要素については、入力されるデータが既にインデックス値の形式をとっているため、“enumeration”は省略され得る。次に、変換部１１０は、各インデックス値に対応する符号番号を、符号番号テーブル１０４から取得する。次に、変換部１１０は、取得した符号番号と関連付けられている符号語をＶＬＣテーブル１０６から取得する。そして、変換部１１０は、取得した符号語を符号化ストリームの一部として順次出力する。
【００５７】
（４）課題の具体的な例
上述したように、ＶＬＣテーブル１０６は、より短い符号語をより小さい符号番号に関連付けるために使用される。そして、発生頻度のより高いインデックス値がより小さい符号番号と対応付けられるように符号番号テーブル１０４を構成することで、発生頻度のより高いインデックス値についてより短い符号語が使用されるようになる。その結果、エントロピー符号化による符号量の圧縮が達成される。しかし、インデックス値の発生頻度は、時間を追って変化し得る。そこで、ＪＣＴＶＣ−Ａ１１９において提案されているエントロピー符号化の手法では、あるインデックス値が発生するごとに、発生したインデックス値とそのすぐ上のインデックス値（即ち、符号番号が１つ小さいインデックス値）とを符号番号テーブル内でスワップすることで、インデックス値の発生頻度の変化への追従を図っている。このスワップ方式には、次に説明するような課題がある。
【００５８】
図５は、スワップ方式に関連する課題の具体的な例について説明するための説明図である。図５を参照すると、スワップにより順次更新される符号番号テーブル１０４ａ〜１０４ｅが示されている。
【００５９】
まず、最初に発生したインデックス値（index_1）は、“１”である。符号番号テーブル１０４ａにおいて、このインデックス値は、符号番号“３”に対応する。従って、符号番号“３”及びその上の符号番号“２”に対応するインデックス値“１”及び“２”がスワップされる。次に発生したインデックス値（index_2）は、“２”である。符号番号テーブル１０４ｂにおいて、このインデックス値は、符号番号“３”に対応する。従って、符号番号“３”及びその上の符号番号“２”に対応するインデックス値“２”及び“１”がスワップされる。次に発生したインデックス値（index_3）は、“１”である。符号番号テーブル１０４ｃにおいて、このインデックス値は、符号番号“３”に対応する。従って、符号番号“３”及びその上の符号番号“２”に対応するインデックス値“１”及び“２”がスワップされる。次に発生したインデックス値（index_4）は、“２”である。符号番号テーブル１０４ｄにおいて、このインデックス値は、符号番号“３”に対応する。従って、符号番号“３”及びその上の符号番号“２”に対応するインデックス値“２”及び“１”がスワップされる。
【００６０】
このような４つのシンタックス要素にわたるインデックス値の発生頻度をカウントすると、インデックス値“１”及び“２”の発生頻度は共に２回であり、他のインデックス値よりも高い。しかしながら、４度のスワップ後の符号番号テーブル１０４ｅの内容は、符号番号テーブル１０４ａの内容から変化していない。即ち、インデックス値の発生のパターンに依存して、スワップ方式では、符号番号テーブルの内容をインデックス値の発生頻度の変化に適切に追従させることができない場合があることが理解され得る。
【００６１】
そこで、本実施形態に係る画像符号化装置１０の可逆符号化部１６は、以下に説明するソートの仕組み備えることにより、インデックス値の発生頻度の変化への適切な追従を実現する。
【００６２】
（５）カウント処理
本実施形態において、画像内のシンタックス要素ごとのインデックス値は、変換部１１０へ入力されると共に、カウント部１２０へ並列的に入力される。そして、カウント部１２０は、入力されるインデックス値ごとの発生頻度をカウントする。
【００６３】
図６は、カウント部１２０による発生頻度のカウントについて説明するための説明図である。図６を参照すると、符号番号テーブル１０４により保持されるシンタックス要素のインデックス値ごとに、カウンタ値が示されている。カウント部１２０は、ある１つのインデックス値が入力されると、入力されたインデックス値のカウンタ値をカウントアップする。図６の例では、インデックス値“１”が入力されることにより、インデックス値“１”のカウンタ値が“８”から“９”へカウントアップされている。
【００６４】
図６に例示したように、カウンタ値は、符号番号テーブル１０４に追加される拡張カラムに格納されてもよい。その代わりに、インデックス値ごとのカウンタ値を格納するための別個の追加的なテーブルが記憶部１０２により記憶されてもよい。
【００６５】
このようなシンタックス要素ごとのインデックス値の発生頻度のカウントは、画像の符号化又は復号の開始と共に開始される。そして、カウンタ値は、後に説明するタイミングでリセットされ又は正規化され得る。
【００６６】
（６）ソート処理
ソート部１２２は、カウント部１２０によりカウントされた発生頻度のより高いインデックス値がより短い符号語に対応するように、符号番号テーブル１０４内のインデックス値をソートする。
【００６７】
図７は、ソート部１２２による符号番号テーブル１０４のソートについて説明するための説明図である。図７の左にはソート前の符号番号テーブル１０４、右にはソート後の符号番号テーブル１０４の内容の一例が示されている。図７の例において、最もカウンタ値の大きい（即ち、最も発生頻度の高い）インデックス値は、“１”である。ソート前のインデックス値“１”は、符号番号“３”に対応している。これに対し、ソート後のインデックス値“１”は、最小の符号番号“０”に対応している。従って、ソート後のインデックス値“１”には、ＶＬＣテーブル１０６内の最も短い符号語（例えば、図４の“１”）が関連付けられる。また、２番目にカウンタ値の大きいインデックス値“２”は、２番目に小さい符号番号“１”に対応している。従って、ソート後のインデックス値“２”には、ＶＬＣテーブル１０６内で２番目に短い符号語（例えば、図４の“０１１”）が関連付けられる。図７を参照すると、他のインデックス値もまた、符号番号テーブル１０４内でカウンタ値の大きい（即ち、発生頻度の高い）順に並び替えられていることが理解され得る。
【００６８】
ソート部１２２は、例えば、クイックソート又はバブルソートなどの任意のソートアルゴリズムを使用して、符号番号テーブル１０４内のインデックス値をソートしてよい。但し、一般的に、ソート処理は、図５に例示したようなスワップ処理と比較して多くの処理コストを要する。そこで、ソート部１２２は、１つ１つのインデックス値が入力されるごとにソートを実行するのではなく、制御部１２４からの指示の下、複数のシンタックス要素、１つ以上の符号化単位又は１つ以上のマクロブロックにわたるソート間隔で、周期的にソートを実行する。
【００６９】
ソート間隔は、例えば、画像サイズ又は利用可能なリソースの制約などに応じて決定され得る。そして、ソート間隔を指定するソート制御パラメータが、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダに挿入され得る。例えば、ソート制御パラメータは、次のようなパラメータであってよい。
【００７０】
・update_syntax_element_count：シンタックス要素の数でソート間隔を指定する。
・update_cu_count：符号化単位（ＣＵ：Coding  Unit）の数でソート間隔を指定する。
・update_mb_count：マクロブロックの数でソート間隔を指定する。
・update_picture_unit_count：１ピクチャ内でのソート回数を指定する。
【００７１】
「update_picture_unit_count」が指定される場合には、デコーダ側では、例えば、１ピクチャ内の符号化単位の総数を「update_picture_unit_count」の値で除算して得られる符号化単位数が、ソート間隔となる。この場合、ピクチャサイズが大きいほどソート間隔は長くなる。符号化単位のサイズが一定でない場合には、符号化単位の最大のサイズに基づいて、１ピクチャ内の符号化単位の総数が算出されてもよい。
【００７２】
なお、エンコーダ及びデコーダの双方にとって既知の（例えば、予め仕様として定義される）ソート制御パラメータが使用されてもよい。その場合、ソート制御パラメータは上述したヘッダ内には挿入されず、その代わりに、例えば、画像サイズに応じたソート間隔の定義が予めエンコーダ及びデコーダの記憶媒体に格納され得る。そして、画像サイズに応じてソート間隔が決定され得る。この場合には、ヘッダ内にパラメータが挿入されないため、符号量を削減することができる。
【００７３】
（７）リセット処理
上述した符号番号テーブル１０４のソートにより、例えばソート間隔の整数倍に相当するタイムスパンでのインデックス値の発生頻度に、符号番号テーブルの内容を適切に追従させることができる。但し、インデックス値ごとのカウンタ値が時間の経過と共に増大していくことから、カウント部１２０は、制御部１２４からの指示の下、ソート間隔と等しく又はソート間隔よりも大きいリセット間隔で、発生頻度のカウント結果をリセットする。
【００７４】
図８は、カウント部１２０によるカウンタのリセットの一例について説明するための説明図である。図８の左にはリセット前の符号番号テーブル１０４のカウンタ、右にはリセット後のカウンタの内容の一例が示されている。図８の例において、リセット後の全てのインデックス値についてのカウンタの内容はゼロになっている。
【００７５】
リセット間隔は、例えば、利用可能なメモリサイズ又は画像の性質などに応じて決定され得る。そして、リセット間隔を指定するリセット制御パラメータが、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダに挿入され得る。例えば、リセット制御パラメータは、次のようなパラメータであってよい。
【００７６】
・reset_syntax_element_count：シンタックス要素の数でリセット間隔を指定する。
・reset_cu_count：符号化単位の数でリセット間隔を指定する。
・reset_mb_count：マクロブロックの数でリセット間隔を指定する。
・reset_picture_unit_count：１ピクチャ内でのリセット回数を指定する。
【００７７】
また、上述したソート制御パラメータと同様、エンコーダ及びデコーダの双方にとって既知の予め定義されるリセット制御パラメータが使用されてもよい。
【００７８】
（８）正規化処理
上述した符号番号テーブル１０４のリセットにより、不必要に長いタイムスパンでシンタックス要素のインデックス値の発生頻度がカウントされることがなくなり、メモリリソースの浪費が防がれる共に、ソート処理の処理コストも低減される。但し、リセットによってインデックス値の発生頻度のデータが完全に失われるよりも、インデックス値の発生頻度の傾向をある程度残してその後の符号化に利用することが望ましい場合もある。その場合、カウント部１２０は、リセットの代わりにカウンタの正規化を実行し得る。
【００７９】
図９は、カウント部１２０によるカウンタの正規化の一例について説明するための説明図である。図９の左には正規化前の符号番号テーブル１０４のカウンタ、右には正規化後のカウンタの内容の一例が示されている。図９の例において、正規化のための代表値は、４である。例えば、インデックス値“４”に対応するカウンタ値は、正規化前には“３２”であり、正規化後は、代表値“４”での除算（又は２ビット分のビットシフト）によって“８”に減少している。同様に、例えば、インデックス値“５”に対応するカウンタ値は、正規化前には“３０”であり、正規化後は“７”に減少している。
【００８０】
例えば、上述したリセット制御パラメータと同様、正規化間隔を指定するための正規化制御パラメータが、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダに挿入され得る。さらに、正規化制御パラメータは、正規化のための代表値を指定するパラメータ（シフトされるビット数などであってもよい）を含み得る。正規化のための代表値を指定するパラメータは、例えば、次のようなパラメータであってよい。
【００８１】
・normalize_parameter：正の値であればシフトされるビット数、ゼロであれば「正規化を実行しない」、負の値（例えば−１）であれば「正規化ではなくリセットを実行」、をそれぞれ表す。このようなパラメータを用いることで、１つのパラメータで正規化の代表値の指定とリセット及び正規化の間の切替えとが可能になる。
【００８２】
このようにカウンタが正規化されることで、カウンタ値の増大によるメモリリソースの浪費及びソート処理の処理コストの増大が防がれると共に、インデックス値の発生頻度のある程度の傾向を引続きカウンタ値により表すことができる。
【００８３】
＜２．一実施形態に係るテーブル更新処理の流れ＞
次に、図１０〜図１２を用いて、本実施形態に係る可逆符号化部１６によるテーブル更新処理の流れを説明する。
【００８４】
（１）テーブル更新処理
図１０は、可逆符号化部１６によるテーブル更新処理の流れの一例を示すフローチャートである。
【００８５】
図１０を参照すると、まず、制御部１２４は、例えばシンタックス要素の数、符号化単位の数、又はマクロブロックの数によって表され得る、ソート間隔、並びにリセット間隔及び／又は正規化間隔を決定する（ステップＳ１１０）。これらソート間隔、並びにリセット間隔及び／又は正規化間隔を指定するパラメータは、例えば、符号化ストリームのヘッダ内に挿入され得る。その後、ステップＳ１２０からステップＳ１７０までの処理が、シンタックス要素ごとに繰り返される。
【００８６】
まず、カウント部１２０は、変換部１１０へ入力される１つのシンタックス要素のインデックス値を並列的に取得する（ステップＳ１２０）。次に、カウント部１２０は、取得したインデックス値に対応する発生頻度集計用のカウンタを加算する（ステップＳ１３０）。次に、制御部１２４は、ソート処理を実行すべきタイミングが到来したか否かを、ソート間隔に基づいて判定する（ステップＳ１４０）。ここで、ソート処理を実行すべきタイミングが到来したと判定された場合には、ソート部１２２は、カウンタ値に従って、符号番号テーブル１０４内のインデックス値をソートする（ステップＳ１５０）。一方。ソート処理を実行すべきタイミングが到来したと判定されなかった場合には、ステップＳ１５０におけるソートはスキップされる。
【００８７】
次に、制御部１２４は、リセット処理又は正規化処理を実行すべきタイミングが到来したか否かを、リセット間隔又は正規化間隔に基づいて判定する（ステップＳ１６０）。ここで、リセット処理又は正規化処理を実行すべきタイミングが到来したと判定された場合には、カウント部１２０は、カウンタ値をリセット又は正規化する（ステップＳ１７０）。一方、リセット処理又は正規化処理を実行すべきタイミングが到来したと判定されなかった場合には、ステップＳ１７０におけるリセット又は正規化はスキップされ、処理はステップＳ１２０へ戻る。
【００８８】
（２）ソートタイミング判定処理
図１１は、図１０のステップＳ１４０に関連するソートタイミング判定処理の詳細な流れの一例を示すフローチャートである。
【００８９】
図１１の例において、制御部１２４は、例えば、シンタックス要素ごと（又は符号化単位若しくはマクロブロックごと）に、内部に有するソートカウンタを加算する（ステップＳ１４２）。次に、制御部１２４は、ソートカウンタの値が図１０のステップＳ１１０において決定したソート間隔に達したか否かを判定する（ステップＳ１４４）。ここでのステップＳ１４４は、図１０のステップＳ１４０に相当する。そして、制御部１２４は、ソートカウンタの値がソート間隔に達した場合には、ソート部１２２に符号番号テーブル１０４のソートを指示する（ステップＳ１４６）。ソートの指示は、ソート部１２２により参照されるフラグを制御部１２４が更新することにより行われてもよい。そして、制御部１２４は、ソートを指示した後、ソートカウンタをゼロにリセットする（ステップ（ステップＳ１４８）。
【００９０】
（３）リセット／正規化タイミング判定処理
図１２は、図１０のステップＳ１６０に関連するリセット／正規化タイミング判定処理の詳細な流れの一例を示すフローチャートである。
【００９１】
図１２の例において、制御部１２４は、例えば、シンタックス要素ごと（又は符号化単位若しくはマクロブロックごと）に、内部に有するリセットカウンタ及び／又は正規化カウンタを加算する（ステップＳ１６２）。次に、制御部１２４は、上記カウンタの値が図１０のステップＳ１１０において決定したリセット間隔又は正規化間隔に達したか否かを判定する（ステップＳ１６４）。ここでのステップＳ１６４は、図１０のステップＳ１６０に相当する。そして、制御部１２４は、上記カウンタの値がリセット間隔又は正規化間隔に達した場合には、カウント部１２０にインデックス値のカウンタのリセット又は正規化を指示する（ステップＳ１６６）。リセット又は正規化の指示は、カウント部１２０により参照されるフラグを制御部１２４が更新することにより行われてもよい。そして、制御部１２４は、リセット又は正規化を指示した後、リセットカウンタ及び／又は正規化カウンタをゼロにリセットする（ステップＳ１６８）。
【００９２】
＜３．変形例の説明＞
［３−１．第１の変形例］
上述したような符号番号テーブル１０４のソートは、可変長符号の符号語とインデックス値との関連付けを、ソート間隔に応じたタイムスパンでのインデックス値の発生頻度に適切に追従させることができる点で、符号量の圧縮に貢献する。これに対し、上述したスワップ方式では、ソートタイミングの到来を待つことなく、発生したインデックス値の符号番号テーブル内での順位が上昇する。従って、例えば、局所的に同じインデックス値が連続して発生するような状況下では、スワップ方式の方が、追従の速さの観点では有利であり得る（表１参照）。
【００９３】
【表１】
2012124878.tif 000003
【００９４】
表１をより具体的に説明すると、スワップ方式は、追従の正確性の観点で、インデックス値の発生のパターンに依存して、符号番号テーブルの内容をインデックス値の発生頻度の変化に適切に追従させることができないという欠点を有する。一方、局所的な追従の速さの観点では、スワップ方式の方がソート方式よりも優れている。ソート方式は、追従の正確性の観点でスワップ方式の欠点を改善する一方、局所的な追従の速さの観点でソート方式に及ばない部分がある。そこで、例えば、表１に示したように、これら２つの方式の双方を適応的に切替えながら符号化及び復号を行うことで、２つの方式の利点を共に享受することができる。
【００９５】
図１３は、そのような第１の変形例に係る可逆符号化部１６の詳細な構成の一例を示すブロック図である。図１３を参照すると、可逆符号化部１６は、記憶部１０２、インデックス値取得部１０８、変換部１１０、カウント部１２０、ソート部１２２、制御部１２４、及びスワップ部１３０を有する。
【００９６】
本実施形態において、画像内のシンタックス要素ごとのインデックス値は、変換部１１０へ入力されると共に、スワップ部１３０へも並列的に入力される。スワップ部１３０は、制御部１２４からの指示の下、入力されたインデックス値と入力されたインデックス値よりも１つ小さい符号番号を有するインデックス値とを、符号番号テーブル１０４内でスワップする。
【００９７】
制御部１２４は、ソート部１２２によるソート及びスワップ部１３０によるスワップの間で、テーブル更新処理を切替える。例えば、制御部１２４は、複数のシンタックス要素にわたるインデックス値の発生頻度への追従により画像の符号化効率が向上される場合に、ソート部１２２に符号番号テーブル１０４のソートを実行させてもよい。例えば、図５を参照して説明したようなインデックス値の発生パターンが検出された場合には、スワップ方式の代わりにソート方式を用いることで、画像の符号化効率が向上される。その場合、制御部１２４は、テーブル更新処理をソート部１２２によるソートに切替えてもよい。また、例えば、制御部１２４は、局所的に同じインデックス値が連続して発生していることが検出された場合に、テーブル更新処理をスワップ部１３０によるスワップに切替えてもよい。制御部１２４は、これらソート方式とスワップ方式との切替えのタイミングを指定するパラメータを、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内に挿入してもよい。スワップ部１３０によるスワップが行われている間、カウント部１２０は、インデックス値の発生頻度のカウントを並列的に実行してもよく、カウントを中断してもよい。
【００９８】
このようなスワップ方式とソート方式との併用によって、インデックス値の発生頻度への追従の正確性を向上させながら、局所的な追従の速さを維持することが可能となる。
【００９９】
［３−２．第２の変形例］
一般的に、ソート処理の処理コストはソートされるテーブルのエントリ数が多いほど大きくなる。そこで、以下に説明する第２の変形例では、符号番号テーブルをソートする際のソートの対象とするエントリの範囲を、テーブル全体ではなくテーブルの一部に制限する。
【０１００】
図１４は、第２の変形例に係る可逆符号化部１６の詳細な構成の一例を示すブロック図である。図１４を参照すると、可逆符号化部１６は、記憶部１０２、インデックス値取得部１０８、変換部１１０、カウント部１２０、ソート部１２３及び制御部１２５を有する。
【０１０１】
ソート部１２３は、発生したインデックス値に対応する範囲内の符号番号テーブル１０４のエントリのみを対象として、発生頻度のより高いインデックス値がより短い符号語に対応するように、符号番号テーブル１０４内のインデックス値を部分的にソートする。発生したインデックス値に対応する範囲とは、例えば、直前に発生したインデックス値（又は前回のソートの後に発生した複数のインデックス値）に対応する符号番号と近い符号番号を有するエントリの範囲であってよい。
【０１０２】
図１５は、ソート部１２３による符号番号テーブル１０４の部分ソートについて説明するための説明図である。
【０１０３】
図１５の左上には、あるソートタイミングにおける符号番号テーブル１０４ｆの内容の一例が示されている。ここでのソートタイミングの前に、インデックス値取得部１０８によりインデックス値“７”が取得されたものとする。符号番号テーブル１０４ｆにおいて、インデックス値“７”に対応する符号番号は“４”である。従って、ソート部１２３は、符号番号“４”を含むソート範囲内のエントリを、部分ソートの対象とする。図１５の例では、ソート範囲は、発生したインデックス値に対応する符号番号の前後２つ（±２）のエントリを含む範囲である。この場合、ソート範囲内のエントリ数は５つである。図１５の右上には、符号番号“４”の前後２つのエントリを含むソート範囲内（符号番号“２”〜“６”）で部分的にソートされた符号番号テーブル１０４ｇが示されている。
【０１０４】
さらに、次のソートタイミングの前に、インデックス値取得部１０８によりインデックス値“２”が取得されたものとする（図１５の左下参照）。符号番号テーブル１０４ｈにおいて、インデックス値“２”に対応する符号番号は“３”である。従って、ソート部１２３は、符号番号“３”を含むソート範囲内（符号番号“１”〜“５”）のエントリを、部分ソートの対象とする。図１５の右下には、上記ソート範囲内で部分的にソートされた符号番号テーブル１０４ｉが示されている。
【０１０５】
ソート部１２３による部分ソートのソート範囲のエントリ数は、予め固定的に定義されてもよい。その代わりに、ソート範囲のエントリ数は、次に説明する制御部１２５により制御されてもよい。
【０１０６】
制御部１２５は、上述した制御部１２４と同様に、可逆符号化部１６における符号番号テーブルのソートを制御する。さらに、本変形例において、制御部１２５は、ソート部１２３による部分ソートのソート範囲を制御する。
【０１０７】
例えば、制御部１２５は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダに挿入されるソート範囲パラメータに基づいて、ソートされるエントリの範囲（即ち、ソート範囲）を決定してもよい。例えば、制御部１２５は、ソート範囲パラメータが“２”を示している場合には、図１５の例のように、発生したインデックス値に対応する符号番号の前後２つのエントリを含む範囲をソート範囲と決定し得る。
【０１０８】
その代わりに、制御部１２５は、ソートされる符号番号テーブル１０４の総エントリ数、対応するシンタックス要素の種類、又はソート間隔の長さなどの他のパラメータに基づいて、ソート範囲を決定してもよい。
【０１０９】
図１６は、本変形例に係る可逆符号化部１６によるテーブル更新処理の流れの一例を示すフローチャートである。
【０１１０】
図１６を参照すると、まず、制御部１２５は、例えばシンタックス要素の数、符号化単位の数、又はマクロブロックの数によって表され得る、ソート間隔、並びにリセット間隔及び／又は正規化間隔を決定する（ステップＳ１１０）。その後、ステップＳ１２０からステップＳ１７０までの処理が、シンタックス要素ごとに繰り返される。
【０１１１】
まず、カウント部１２０は、変換部１１０へ入力される１つのシンタックス要素のインデックス値を取得する（ステップＳ１２０）。次に、カウント部１２０は、取得したインデックス値に対応するカウンタを加算する（ステップＳ１３０）。次に、制御部１２５は、ソート処理を実行すべきタイミングが到来したか否かを、ソート間隔に基づいて判定する（ステップＳ１４０）。ここで、ソート処理を実行すべきタイミングが到来したと判定された場合には、制御部１２５は、上述したいずれかのパラメータに基づいて、ソート範囲を決定する（ステップＳ１５２）。次に、ソート部１２３は、制御部１２５により決定されたソート範囲内の符号番号テーブル１０４のエントリを対象とし、カウンタ値に従ってインデックス値を部分的にソートする（ステップＳ１５４）。
【０１１２】
次に、制御部１２５は、リセット処理又は正規化処理を実行すべきタイミングが到来したか否かを、リセット間隔又は正規化間隔に基づいて判定する（ステップＳ１６０）。ここで、リセット処理又は正規化処理を実行すべきタイミングが到来したと判定された場合には、カウント部１２０は、カウンタ値をリセット又は正規化する（ステップＳ１７０）。一方、リセット処理又は正規化処理を実行すべきタイミングが到来したと判定されなかった場合には、ステップＳ１７０におけるリセット又は正規化はスキップされ、処理はステップＳ１２０へ戻る。
【０１１３】
本変形例によれば、符号番号テーブルをソートする際のソートの対象とするエントリの範囲がテーブルの一部に制限されるため、ソート処理の処理コストを低減することができる。また、処理リソースを過剰に費やすことなく、より短いソート間隔でソート処理を実行することもできる。その結果、インデックス値の発生頻度への符号番号テーブルの追従の速さも向上され得る。
【０１１４】
また、ソートの対象とするエントリの範囲をパラメータで指定可能とすることで、符号化効率と処理コストとのバランスを考慮して最適な装置を設計することが可能となる。
【０１１５】
なお、上述した第１の変形例と第２の変形例とが組合せられてもよい。その場合には、制御部１２５は、スワップ方式及びソート方式のうちソート方式を選択した場合に、ソート部１２３に符号番号テーブル１０４を部分的にソートさせる。
【０１１６】
＜４．一実施形態に係る画像復号装置の構成例＞
本節では、図１７及び図１８を用いて、本発明の一実施形態に係る画像復号装置の構成例について説明する。
【０１１７】
［４−１．全体的な構成例］
図１７は、本発明の一実施形態に係る画像復号装置６０の構成の一例を示すブロック図である。図１７を参照すると、画像復号装置６０は、蓄積バッファ６１、可逆復号部６２、逆量子化部６３、逆直交変換部６４、加算部６５、デブロックフィルタ６６、並べ替えバッファ６７、Ｄ／Ａ（Digital  to  Analogue）変換部６８、フレームメモリ６９、セレクタ７０及び７１、イントラ予測部８０、並びに動き補償部９０を備える。
【０１１８】
蓄積バッファ６１は、伝送路を介して入力される符号化ストリームを記憶媒体を用いて一時的に蓄積する。
【０１１９】
可逆復号部６２は、蓄積バッファ６１から入力される符号化ストリームを、エントロピー符号化方式に従って復号する。そして、可逆復号部６２は、復号した量子化データを逆量子化部６３へ出力する。また、可逆復号部６２は、復号後のイントラ予測に関する情報をイントラ予測部８０へ、インター予測に関する情報を動き補償部９０へ出力する。可逆復号部６２が有する符号番号テーブルは、上述した画像符号化装置１０の可逆符号化部１６によるテーブル更新処理と同様に更新される。
【０１２０】
逆量子化部６３は、可逆復号部６２による復号後の量子化データを逆量子化する。逆直交変換部６４は、符号化の際に使用された直交変換方式に従い、逆量子化部６３から入力される変換係数データについて逆直交変換を行うことにより、予測誤差データを生成する。そして、逆直交変換部６４は、生成した予測誤差データを加算部６５へ出力する。
【０１２１】
加算部６５は、逆直交変換部６４から入力される予測誤差データと、セレクタ７１から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部６５は、生成した復号画像データをデブロックフィルタ６６及びフレームメモリ６９へ出力する。
【０１２２】
デブロックフィルタ６６は、加算部６５から入力される復号画像データをフィルタリングすることによりブロック歪みを除去し、フィルタリング後の復号画像データを並べ替えバッファ６７及びフレームメモリ６９へ出力する。
【０１２３】
並べ替えバッファ６７は、デブロックフィルタ６６から入力される画像を並べ替えることにより、時系列の一連の画像データを生成する。そして、並べ替えバッファ６７は、生成した画像データをＤ／Ａ変換部６８へ出力する。
【０１２４】
Ｄ／Ａ変換部６８は、並べ替えバッファ６７から入力されるデジタル形式の画像データをアナログ形式の画像信号に変換する。そして、Ｄ／Ａ変換部６８は、例えば、画像復号装置６０と接続されるディスプレイ（図示せず）にアナログ画像信号を出力することにより、画像を表示させる。
【０１２５】
フレームメモリ６９は、加算部６５から入力されるフィルタリング前の復号画像データ、及びデブロックフィルタ６６から入力されるフィルタリング後の復号画像データを記憶媒体を用いて記憶する。
【０１２６】
セレクタ７０は、可逆復号部６２により取得されるモード情報に応じて、画像内のブロックごとに、フレームメモリ７０からの画像データの出力先をイントラ予測部８０と動き補償部９０との間で切り替える。例えば、セレクタ７０は、イントラ予測モードが指定された場合には、フレームメモリ７０から供給されるフィルタリング前の復号画像データを参照画像データとしてイントラ予測部８０へ出力する。また、セレクタ７０は、インター予測モードが指定された場合には、フレームメモリ７０から供給されるフィルタリング後の復号画像データを参照画像データとして動き補償部９０へ出力する。
【０１２７】
セレクタ７１は、可逆復号部６２により取得されるモード情報に応じて、画像内のブロックごとに、加算部６５へ供給すべき予測画像データの出力元をイントラ予測部８０と動き補償部９０との間で切り替える。例えば、セレクタ７１は、イントラ予測モードが指定された場合には、イントラ予測部８０から出力される予測画像データを加算部６５へ供給する。セレクタ７１は、インター予測モードが指定された場合には、動き補償部９０から出力される予測画像データを加算部６５へ供給する。
【０１２８】
イントラ予測部８０は、可逆復号部６２から入力されるイントラ予測に関する情報とフレームメモリ６９からの参照画像データとに基づいて画素値の画面内予測を行い、予測画像データを生成する。そして、イントラ予測部８０は、生成した予測画像データをセレクタ７１へ出力する。
【０１２９】
動き補償部９０は、可逆復号部６２から入力されるインター予測に関する情報とフレームメモリ６９からの参照画像データとに基づいて動き補償処理を行い、予測画像データを生成する。そして、動き補償部９０は、生成した予測画像データをセレクタ７１へ出力する。
【０１３０】
［４−２．可逆復号部の構成例］
図１８は、図１７に示した画像復号装置６０の可逆復号部６２の詳細な構成の一例を示すブロック図である。図１８を参照すると、可逆復号部６２は、記憶部２０２、変換部２０８、インデックス値解釈部２１０、カウント部２２０、ソート部２２２、及び制御部２２４を有する。
【０１３１】
記憶部２０２は、半導体メモリなどの記憶媒体により構成され、符号番号テーブル２０４及び逆ＶＬＣテーブル２０６を記憶する。符号番号テーブル２０４は、画像符号化装置１０の記憶部１０２により記憶される符号番号テーブル１０４と同等の構成を有するテーブルである。逆ＶＬＣテーブル２０６は、画像符号化装置１０の記憶部１０２により記憶されるＶＬＣテーブル１０６と同等の構成を有するテーブルである。
【０１３２】
変換部２０８は、順次入力される符号化ストリーム内の各符号語と関連付けられている符号番号を、逆ＶＬＣテーブル２０６から取得する。また、変換部２０８は、取得した各符号番号に対応するインデックス値を、符号番号テーブル２０４から取得する。
【０１３３】
インデックス値解釈部２１０は、入力されるインデックス値をシンタックス要素ごとに解釈し、対応するイベントを表すデータを出力する（このような処理を“inverse  enumeration”ともいう）。いくつかのシンタックス要素については、“inverse  enumeration”が省略され、入力されるインデックス値がそのまま出力されてもよい。
【０１３４】
変換部２０８から出力されるシンタックス要素ごとのインデックス値は、カウント部２２０及び制御部２２４へも並列的に入力される。そして、カウント部２２０は、入力されるインデックス値ごとの発生頻度をカウントする。カウンタ値は、符号番号テーブル２０４に追加される拡張カラムに格納されてもよい。その代わりに、インデックス値ごとのカウンタ値を格納するための別個の追加的なテーブルが記憶部２０２により記憶されてもよい。また、カウンタ値は、制御部２２４からの指示の下、符号化の際に決定されたリセット間隔又は正規化間隔に等しい間隔でリセットされ又は正規化され得る。
【０１３５】
ソート部２２２は、カウント部２２０によりカウントされた発生頻度のより高いインデックス値がより短い符号語に対応するように、符号番号テーブル２０４内のインデックス値をソートする。ソート部２２２によるソートは、制御部２２４からの指示の下、符号化の際に決定されたソート間隔に等しい間隔で実行され得る。
【０１３６】
制御部２２４は、例えば、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダから取得されるパラメータに基づいて、ソート間隔、並びにリセット間隔及び／又は正規化間隔を決定する。その代わりに、制御部２２４は、例えば、予め記憶される定義に従って、画像サイズからこれら間隔を決定してもよい。そして、制御部２２４は、例えば、図１０〜図１２に示したテーブル更新処理と同様に、カウント部２２０及びソート部２２２による符号番号テーブル２０４の更新を制御する。
【０１３７】
なお、可逆復号部６２は、図１３を用いて説明した第１の変形例のように、スワップを実行するスワップ部を追加的に備え、スワップ方式とソート方式とを切替えながら符号番号テーブル２０４を更新してもよい。
【０１３８】
また、ソート部２２２は、図１４〜図１６を用いて説明した第２の変形例のように、発生したインデックス値に対応する範囲内の符号番号テーブル２０４のエントリのみを部分的にソートしてもよい。その場合、制御部２２４は、ソート部２２２によりソートされるエントリの範囲を、シーケンスパラメータセット、ピクチャパラメータセット若しくはスライスヘッダから取得されるパラメータ、又はその他のパラメータに基づいて決定してもよい。
【０１３９】
＜５．応用例＞
上述した実施形態に係る画像符号化装置１０及び画像復号装置６０は、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、４つの応用例について説明する。
【０１４０】
［５−１．第１の応用例］
図１９は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置９００は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース９０９、制御部９１０、ユーザインタフェース９１１、及びバス９１２を備える。
【０１４１】
チューナ９０２は、アンテナ９０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９０２は、復調により得られた符号化ビットストリームをデマルチプレクサ９０３へ出力する。即ち、チューナ９０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送手段としての役割を有する。
【０１４２】
デマルチプレクサ９０３は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ９０４へ出力する。また、デマルチプレクサ９０３は、符号化ビットストリームからＥＰＧ（Electronic  Program  Guide）などの補助的なデータを抽出し、抽出したデータを制御部９１０に供給する。なお、デマルチプレクサ９０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０１４３】
デコーダ９０４は、デマルチプレクサ９０３から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ９０４は、復号処理により生成される映像データを映像信号処理部９０５へ出力する。また、デコーダ９０４は、復号処理により生成される音声データを音声信号処理部９０７へ出力する。
【０１４４】
映像信号処理部９０５は、デコーダ９０４から入力される映像データを再生し、表示部９０６に映像を表示させる。また、映像信号処理部９０５は、ネットワークを介して供給されるアプリケーション画面を表示部９０６に表示させてもよい。また、映像信号処理部９０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部９０５は、例えばメニュー、ボタン又はカーソルなどのＧＵＩ（Graphical  User  Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０１４５】
表示部９０６は、映像信号処理部９０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイ又はＯＬＥＤなど）の映像面上に映像又は画像を表示する。
【０１４６】
音声信号処理部９０７は、デコーダ９０４から入力される音声データについてＤ／Ａ変換及び増幅などの再生処理を行い、スピーカ９０８から音声を出力させる。また、音声信号処理部９０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【０１４７】
外部インタフェース９０９は、テレビジョン装置９００と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース９０９を介して受信される映像ストリーム又は音声ストリームが、デコーダ９０４により復号されてもよい。即ち、外部インタフェース９０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送手段としての役割を有する。
【０１４８】
制御部９１０は、ＣＰＵ（Central  Processing  Unit）などのプロセッサ、並びにＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）などのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、プログラムデータ、ＥＰＧデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置９００の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９１１から入力される操作信号に応じて、テレビジョン装置９００の動作を制御する。
【０１４９】
ユーザインタフェース９１１は、制御部９１０と接続される。ユーザインタフェース９１１は、例えば、ユーザがテレビジョン装置９００を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９１０へ出力する。
【０１５０】
バス９１２は、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース９０９及び制御部９１０を相互に接続する。
【０１５１】
このように構成されたテレビジョン装置９００において、デコーダ９０４は、上述した実施形態に係る画像復号装置６０の機能を有する。それにより、テレビジョン装置９００でのエントロピー符号化方式に従った復号に際して、インデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することができる。
【０１５２】
［５−２．第２の応用例］
図２０は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２０は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、及びバス９３３を備える。
【０１５３】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４及びマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３３は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、及び制御部９３１を相互に接続する。
【０１５４】
携帯電話機９２０は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【０１５５】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをＡ／Ｄ変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１５６】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０１５７】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、ＲＡＭ又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【０１５８】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記憶再生部９２９の記憶媒体に記憶させる。
【０１５９】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張し及びＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０１６０】
このように構成された携帯電話機９２０において、画像処理部９２７は、上述した実施形態に係る画像符号化装置１０及び画像復号装置６０の機能を有する。それにより、携帯電話機９２０でのエントロピー符号化方式に従った符号化及び復号に際して、インデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することができる。
【０１６１】
［５−３．第３の応用例］
図２１は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４０は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置９４０は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４０は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置９４０は、音声データ及び映像データを復号する。
【０１６２】
記録再生装置９４０は、チューナ９４１、外部インタフェース９４２、エンコーダ９４３、ＨＤＤ（Hard  Disk  Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen  Display）９４８、制御部９４９、及びユーザインタフェース９５０を備える。
【０１６３】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。即ち、チューナ９４１は、記録再生装置９４０における伝送手段としての役割を有する。
【０１６４】
外部インタフェース９４２は、記録再生装置９４０と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース９４２は、例えば、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース、ＵＳＢインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース９４２を介して受信される映像データ及び音声データは、エンコーダ９４３へ入力される。即ち、外部インタフェース９４２は、記録再生装置９４０における伝送手段としての役割を有する。
【０１６５】
エンコーダ９４３は、外部インタフェース９４２から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０１６６】
ＨＤＤ９４４は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、ＨＤＤ９４４は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
【０１６７】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）又はＢｌｕ−ｒａｙ（登録商標）ディスクなどであってよい。
【０１６８】
セレクタ９４６は、映像及び音声の記録時には、チューナ９４１又はエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをＨＤＤ９４４又はディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像及び音声の再生時には、ＨＤＤ９４４又はディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０１６９】
デコーダ９４７は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ９４７は、生成した映像データをＯＳＤ９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
【０１７０】
ＯＳＤ９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、ＯＳＤ９４８は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を重畳してもよい。
【０１７１】
制御部９４９は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９５０から入力される操作信号に応じて、記録再生装置９４０の動作を制御する。
【０１７２】
ユーザインタフェース９５０は、制御部９４９と接続される。ユーザインタフェース９５０は、例えば、ユーザが記録再生装置９４０を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０１７３】
このように構成された記録再生装置９４０において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置１０の機能を有する。また、デコーダ９４７は、上述した実施形態に係る画像復号装置６０の機能を有する。それにより、記録再生装置９４０でのエントロピー符号化方式に従った符号化及び復号に際して、インデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することができる。
【０１７４】
［５−４．第４の応用例］
図２２は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６０は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０１７５】
撮像装置９６０は、光学ブロック９６１、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、制御部９７０、ユーザインタフェース９７１、及びバス９７２を備える。
【０１７６】
光学ブロック９６１は、撮像部９６２に接続される。撮像部９６２は、信号処理部９６３に接続される。表示部９６５は、画像処理部９６４に接続される。ユーザインタフェース９７１は、制御部９７０に接続される。バス９７２は、画像処理部９６４、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ９６９、及び制御部９７０を相互に接続する。
【０１７７】
光学ブロック９６１は、フォーカスレンズ及び絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤ又はＣＭＯＳなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号を信号処理部９６３へ出力する。
【０１７８】
信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０１７９】
画像処理部９６４は、信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース９６６又はメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース９６６又はメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、ＯＳＤ９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０１８０】
ＯＳＤ９６９は、例えばメニュー、ボタン又はカーソルなどのＧＵＩの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０１８１】
外部インタフェース９６６は、例えばＵＳＢ入出力端子として構成される。外部インタフェース９６６は、例えば、画像の印刷時に、撮像装置９６０とプリンタとを接続する。また、外部インタフェース９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６０にインストールされ得る。さらに、外部インタフェース９６６は、ＬＡＮ又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース９６６は、撮像装置９６０における伝送手段としての役割を有する。
【０１８２】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はＳＳＤ（Solid  State  Drive）のような非可搬性の記憶部が構成されてもよい。
【０１８３】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭ及びＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース９７１から入力される操作信号に応じて、撮像装置９６０の動作を制御する。
【０１８４】
ユーザインタフェース９７１は、制御部９７０と接続される。ユーザインタフェース９７１は、例えば、ユーザが撮像装置９６０を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０１８５】
このように構成された撮像装置９６０において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０及び画像復号装置６０の機能を有する。それにより、撮像装置９６０でのエントロピー符号化方式に従った符号化及び復号に際して、インデックス値の発生頻度と符号番号テーブルの内容との乖離を抑制することができる。
【０１８６】
＜６．まとめ＞
ここまで、図１〜図２２を用いて、本発明の一実施形態に係る画像符号化装置１０及び画像復号装置６０について説明した。本実施形態によれば、エントロピー符号化方式において参照される符号番号テーブル内のインデックス値が、シンタックス要素のインデックス値ごとにカウントされる発生頻度に従って、発生頻度のより高いインデックス値がより短い符号語に対応するようにソートされる。それにより、インデックス値の発生頻度と符号番号テーブルの内容との乖離が抑制され、エントロピー符号化方式を使用する場合の符号化効率を高めることができる。
【０１８７】
また、本実施形態によれば、符号番号テーブルのソートは、複数のシンタックス要素、１つ以上の符号化単位又は１つ以上のマクロブロックにわたるソート間隔で実行され得る。従って、ソート処理の負荷の増大を回避しながら、上述したソート方式での符号番号テーブルの更新処理を実装することができる。
【０１８８】
また、本実施形態によれば、ソート間隔と等しく又はソート間隔よりも大きい間隔で、発生頻度のカウント結果がリセットされ又は正規化され得る。従って、インデックス値の発生頻度のカウントに伴うメモリリソースの浪費が防がれる共に、ソート処理の処理コストを低減することができる。
【０１８９】
また、本実施形態によれば、ソート間隔を決定するためのパラメータ、並びにリセット間隔及び／又は正規化間隔を決定するためのパラメータは、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内に挿入され得る。それにより、装置が有するリソースの制約などの条件を考慮して、ソート処理、リセット処理及び正規化処理のタイミングを柔軟に設定することが可能である。
【０１９０】
また、本実施形態によれば、ソート間隔を決定するためのパラメータは、画像のサイズに応じて決定されてもよい。例えば、画像のサイズが大きい場合にはソート処理以外の符号化及び復号に伴う処理コストが大きくなるため、相対的にソート間隔を大きくすることで、リソースに制限がある場合にもソート処理を確実に実行することができる。
【０１９１】
また、本実施形態の第１の変形例によれば、ソート方式とスワップ方式との間で、符号番号テーブルの更新処理が切替えられる。それにより、ある局面ではインデックス値の発生頻度への追従の正確性を向上させながら、他の局面では局所的な追従の速さを維持することが可能となる。
【０１９２】
また、本実施形態の第２の変形例によれば、発生したインデックス値に対応する範囲内の符号番号テーブルのエントリのみが、部分的にソートされる。それにより、ソート処理の処理コストを低減することができる。また、より短いソート間隔でソート処理を実行して、インデックス値の発生頻度への追従の速さを向上させることもできる。
【０１９３】
なお、本明細書では、エントロピー符号化方式に従った符号化及び復号のために使用されるパラメータが、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像（スライス若しくはブロックなど、画像の一部であってもよい）と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像（又はビットストリーム）とは別の伝送路上で伝送されてもよい。また、情報は、画像（又はビットストリーム）とは別の記録媒体（又は同一の記録媒体の別の記録エリア）に記録されてもよい。さらに、情報と画像（又はビットストリーム）とは、例えば、複数フレーム、１フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
【０１９４】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１９５】
１０，  ６０            画像処理装置
１０４，２０４            符号番号テーブル
１２０，２２０            カウント部
１２２，１２３，２２２    ソート部
１２４，１２５，２２４    制御部
１３０                    スワップ部
【図１】
2012124878.tif 000004
【図２】
2012124878.tif 000005
【図３】
2012124878.tif 000006
【図４】
2012124878.tif 000007
【図５】
2012124878.tif 000008
【図６】
2012124878.tif 000009
【図７】
2012124878.tif 000010
【図８】
2012124878.tif 000011
【図９】
2012124878.tif 000012
【図１０】
2012124878.tif 000013
【図１１】
2012124878.tif 000014
【図１２】
2012124878.tif 000015
【図１３】
2012124878.tif 000016
【図１４】
2012124878.tif 000017
【図１５】
2012124878.tif 000018
【図１６】
2012124878.tif 000019
【図１７】
2012124878.tif 000020
【図１８】
2012124878.tif 000021
【図１９】
2012124878.tif 000022
【図２０】
2012124878.tif 000023
【図２１】
2012124878.tif 000024
【図２２】
2012124878.tif 000025