(57)【要約】【課題】符号化効率向上、メモリ削減、オーバーヘッド削減などのＣＡＶＬＣにおける性能向上を図る。【解決手段】｛ｒｕｎ，ｌｅｖ｝を、符号化データに含まれるコード番号ｃｎを参照して復号する動画像復号装置１において、ｍａｘｒｕｎとコード番号ｃｎとの組み合わせをｒｕｎの値に対応付けるｒｕｎＴａｂｌｅ３４６であって、所定の上記組み合わせに対応するｒｕｎが間引かれているｒｕｎＴａｂｌｅ３４６を参照し、当該所定の組み合わせに対応するｒｕｎの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン値設定部３４３を備える。【選択図】図１
2013012947.tif 000002
【特許請求の範囲】
【請求項１】
コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、
コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、
当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、
上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする画像復号装置。
【請求項２】
上記差分近似値をカウントする２つの上記カウンタである第１のカウンタおよび第２のカウンタと、
上記第１のカウンタおよび上記第２のカウンタの上記差分近似値を更新する差分近似値更新手段と、を備え、
上記第１のカウンタは、復号された上記コード番号の発生回数と、該復号されたコード番号より１小さいコード番号の発生回数との差分近似値をカウントし、
上記第２のカウンタは、復号された上記コード番号の発生回数と、該復号されたコード番号より１大きいコード番号の発生回数との差分近似値をカウントし、
上記差分近似値更新手段は、コード番号が復号された際に、上記第１のカウンタの値が０とは異なる値である場合に、ａ）上記第１のカウンタの値を１減算するとともに、ｂ）上記第２のカウンタの値を１加算する、ことを特徴とする請求項１に記載の画像復号装置。
【請求項３】
上記差分近似値更新手段は、上記第２のカウンタの値を、該第２のカウンタの値に１加算した値と、既定のカウンタ最大値とのうちの小さい方の値に設定することを特徴とする請求項２に記載の画像復号装置。
【請求項４】
上記カウンタを、複数備えており、
ｎ（ｎは、１以上の整数）個目のカウンタは、第ｎ番目のコード番号の発生回数と、第ｎ＋１番目のコード番号の発生回数との差分値または差分近似値をカウントし、
上記入れ替え手段は、上記ｎ個目のカウンタにおいて値が０となったときに、上記テーブルにおいて、上記第ｎ番目のコード番号に対応付けられている上記特定情報と、上記第ｎ＋１番目のコード番号に対応付けられている上記特定情報とを入れ替えることを特徴とする請求項１に記載の画像復号装置。
【請求項５】
上記ｎ個目のカウンタの値と、上記入れ替えの発生有無とに基づいて、上記ｎ＋１個目のカウンタの値をカウントアップするか否かを制御するカウンタ制御手段を備えることを特徴とする請求項４に記載の画像復号装置。
【請求項６】
画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、符号化データに含まれるコード番号を参照して復号する画像復号装置において、
上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えていることを特徴とする画像復号装置。
【請求項７】
上記対応テーブルでは、それぞれの最大ランの値に応じて、より短いコード番号に対してより出現頻度の高いランが割り当てられており、
所定の最大ランについての上記組み合わせに対応するランが間引かれており、
上記ラン設定手段は、上記所定の最大ランに対応するランの値を、該所定の最大ランの値と近い最大ランの上記組み合わせに対応するランの値に設定することを特徴とする請求項６に記載の画像復号装置。
【請求項８】
上記対応テーブルでは、それぞれの最大ランの値に応じて、より短いコード番号に対してより出現頻度の高いランが割り当てられており、連続するコード番号に対応する連続するランの一部が間引かれており
上記ラン設定手段は、上記連続するコード番号に対応するランの値を、上記連続するランのうちの間引かれていないランの値に設定することを特徴とする請求項６または７に記載の画像復号装置。
【請求項９】
画像データの符号化データから復号したコード番号をシンタックスの種別に応じてシンタックス値に変換する画像復号装置において、
復号された上記コード番号を、画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報に対応付ける対応付け手段と、
１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、
上記割り当て指定設定手段は、復号された上記変換係数の値に応じて上記割り当て指定を変更することを特徴とする画像復号装置。
【請求項１０】
上記割り当て指定設定手段は、１より大きい非ゼロ変換係数の値をどの程度小さいコード番号に割り当てるかを示す下限値を、上記割り当て指定として設定し、
上記対応付け手段は、上記割り当て指定として設定されている下限値に基づいて上記対応付けを行うことを特徴とする請求項９に記載の画像復号装置。
【請求項１１】
上記対応付け手段は、１より大きい非ゼロ変換係数の値の確率分布に応じて複数種類の対応付けを行い、
上記複数種類の対応付けは、上記確率分布の順に割り当てられたインデックスにより指定可能であり、
上記割り当て指定設定手段は、上記複数種類の対応付けのうち、上記インデックスを上記割り当て指定として設定することを特徴とする請求項９に記載の画像復号装置。
【請求項１２】
画像データの符号化データから変換係数を復号する画像復号装置において、
ビット列からコード番号を復号するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、
上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、
上記最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、
上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて復号されたコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備えることを特徴とする画像復号装置。
【請求項１３】
上記リストでは、最大ランに応じた数の識別情報が含まれていることを特徴とする請求項１２に記載の画像復号装置。
【請求項１４】
上記リストでは、小さい最大ランについてのリストに対して、大きい最大ランについてのリストよりも多くの識別情報が含まれていることを特徴とする請求項１３に記載の画像復号装置。
【請求項１５】
コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、
コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、
上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、
上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、
上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする画像復号装置。
【請求項１６】
コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、
コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、
上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、
上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、
上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、
上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、
上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備えることを特徴とする画像復号装置。
【請求項１７】
シンタックス値をコード番号に変換して符号化データの生成を行う画像符号化装置において、
シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、
当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、
上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする画像符号化装置。
【請求項１８】
画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、コード番号に変換して符号化データを生成する画像符号化装置において、
上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えていることを特徴とする画像符号化装置。
【請求項１９】
シンタックス値を該シンタックスの種別に応じて、コード番号に変換することで画像データの符号化データを生成する画像符号化装置において、
画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報を上記コード番号に対応付ける対応付け手段と、
１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、
上記割り当て指定設定手段は、符号化する上記変換係数の値に応じて上記割り当て指定を変更することを特徴とする画像符号化装置。
【請求項２０】
画像データの周波数成分を表す周波数領域における変換係数をビット列に符号化する画像符号化装置において、
上記変換係数に対応付けられているコード番号をビット列に符号化するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、
上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、
上記最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、
上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて符号化するコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備えることを特徴とする画像符号化装置。
【請求項２１】
シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、
シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、
上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、
上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、
上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする画像符号化装置。
【請求項２２】
シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、
シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、
上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、
上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、
上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、
上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、
上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備えることを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を表す符号化データを復号する画像復号装置、および画像を符号化することによって符号化データを生成する画像符号化装置に関する。
【背景技術】
【０００２】
動画像を効率的に伝送または記録するために、動画像を符号化することによって符号化データを生成する動画像符号化装置、および、当該符号化データを復号することによって復号画像を生成する動画像復号装置が用いられている。
【０００３】
具体的な動画像符号化方式としては、例えば、Ｈ．２６４／ＭＰＥＧ−４．ＡＶＣ、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックであるＫＴＡソフトウェアに採用されている方式、ＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている方式（非特許文献１）や、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている方式（非特許文献２）などが挙げられる。
【０００４】
これらの動画像符号化方式においては、エンコーダからデコーダに伝送されることが規定されているシンタックス（syntax）の値をエントロピー符号化して符号化データを生成する。
【０００５】
シンタックスとしては、例えば、原画像から予測画像を差し引いた予測残差を周波数領域に変換し、さらに量子化した変換係数などがある。
【０００６】
エントロピー符号化方式としては、コンテキスト適応型可変長符号化（CALVC：Context-based Adaptive Variable Length Coding）、および、コンテキスト適応型２値算術符号化（CABAC：Context-based Adaptive Binary Arithmetic Coding）が知られている。
【０００７】
変換係数の符号化は以下の手順により行われる。まず、変換係数は、所定サイズの２次元行列の形式で表される。そして、この行列の各要素を所定の順序でスキャンして１次元配列に格納したうえで、変換係数の符号化を行う。
【０００８】
ＣＡＶＬＣによる変換係数符号化では、各変換係数をジグザグスキャンすることによって１次元のベクトルとした後、各変換係数の値を示すシンタックス、および、連続する０の長さ（ランとも呼ぶ）を表すシンタックス等が符号化される。
【０００９】
ＣＡＢＡＣによる変換係数符号化では、変換係数を表す各種のシンタックスに対して２値化処理が施され、この２値化処理によって得られた２値データが算術符号化される。ここで、上記各種のシンタックスとしては、変換係数が０であるか否かを示すフラグsig_flag、および、処理順で最後の変換係数であるか否かを示すフラグlast_flagなどが挙げられる。
【００１０】
以下、ＣＡＶＬＣによる変換係数符号化について、より詳しく説明する。ＣＡＶＬＣでは、各変換係数の絶対値（level）や正負（sign）、絶対値が０の係数（ゼロ係数とも称する）の連なりの長さ（０ラン；zero run）に基づいて可変長符号化を行う。さらにいえば、ＣＡＶＬＣでは、ランとレベルの符号化については、それぞれに対応したＶＬＣ（Variable Length Coding）方法を用いる。
【００１１】
ＶＬＣ（Variable Length Coding）方法による符号化では、シンタックス（syntax）値と、コード番号（codeNum）との対応付けを示すコード番号変換情報と、コード番号と、ビット列との対応付けを示すビット変換情報とが用いられる。これらの情報は、テーブルの形式で表現されている場合や、パラメータを導出するための算出式（例えば、シンタックス値からコード番号を求めるための計算式）により表現されている場合や、これらの組み合わせが用いられる場合がある。
【００１２】
ＶＬＣ方法による符号化は、次の手順により行われる。まず、コード番号変換情報を用いて、シンタックス値が、コード番号に変換される。そして、ビット変換情報を用いて、コード番号が、ビット列に変換される。
【００１３】
また、符号化の際には、コンテキストに応じて、複数のＶＬＣ方法のうちの１つが、適応的に選択されて符号化が行われる。
【００１４】
ここで、コンテキストとは、符号化／復号の状況（文脈）のことであり、関連シンタックスの過去の符号化／復号結果のことを指す。関連シンタックスとしては、例えば、イントラ予測、インター予測に関する各種シンタックス、輝度（Luma）、色差（Chroma）に関する各種シンタックス、およびＣＵ(Coding Unit 符号化単位)サイズに関する各種シンタックスなどがある。
【００１５】
従来、コード番号の分布（頻度偏り）に応じて、複数のＶＬＣ方法を準備し、コンテキストに応じて、ＶＬＣ方法を選択することが提案されている（非特許文献３）。
【００１６】
コード番号変換情報では、出現頻度の高いシンタックス値が小さいコード番号に変換されるようにシンタックス値と、コード番号との対応付けが定義されている。また、ビット変換情報では、小さいコード番号に短いビット列が対応付けられるように対応付けが定義されている。したがって、コード番号変換情報とビット変換情報を合わせて用い、出現頻度の高いシンタックスを短いビット列に対応付けることで、符号化効率の向上が図られている。
【００１７】
復号処理においては、上記の符号化の過程とは逆に、ビット列からコード番号が導出されて、さらにコード番号からシンタックス値が復元される。
【００１８】
また、テーブル利用によるコード番号変換の場合、固定テーブルを用いる方法と可変テーブルを用いる方法がある。
【００１９】
可変テーブルを用いる場合、コード番号からシンタックス値への変換する手順は以下（１）〜（３）に示すとおりである（非特許文献４）。
【００２０】
（１）まず、可変テーブルによりコード番号からテーブルインデックスを決定する。
【００２１】
（２）テーブルインデックスからシンタックス値を復元する。この復元は、変換式、または、固定テーブルによる１対１変換により行われる。
【００２２】
（３）状況に応じて、可変テーブルの要素をスワップする。
【００２３】
可変テーブルは、より発生確率が高いシンタックス値を、より小さいコード番号に割り当てるための技術である。
【先行技術文献】
【非特許文献】
【００２４】
【非特許文献１】「WD2: Working Draft 2 of High-Efficiency Video Coding (JCTVC-D503) 」, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting: Daegu, KR, 1/2011
【非特許文献２】「WD3: Working Draft 3 of High-Efficiency Video Coding (JCTVC-E603)」, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 3/2011
【非特許文献３】「Description of video coding technology proposal by TOSHIBA（JCTVC-A117）」Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG111st Meeting: Dresden, DE, 15-23 April, 2010
【非特許文献４】「CE5: Counter based adaption for LCEC（JCTVC-E143）」Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG115th Meeting: Geneva, CH, 16-23 March, 2011
【発明の概要】
【発明が解決しようとする課題】
【００２５】
しかしながら、従来のＣＡＶＬＣでは、次のような課題が存在した。まず、コンテキスト適応処理を行うため、多数の変換テーブル（方法）（例えば、ｒｕｎＴａｂｌｅについて）があり、符号化／復号処理の実行時に、大きなメモリが必要とされていた。また、ＣＡＢＡＣに比べて、復号結果に基づく適応ができておらず充分なコンテキスト適応が実現できていなかった。
【００２６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、符号化効率向上、メモリ削減、オーバーヘッド削減などのＣＡＶＬＣにおける性能向上を図ることができる画像復号装置等を実現することにある。
【課題を解決するための手段】
【００２７】
本発明に係る画像復号装置は、上記課題を解決するために、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする。
【００２８】
本発明に係る画像符号化装置は、上記課題を解決するために、シンタックス値をコード番号に変換して符号化データの生成を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする。
【００２９】
上記カウンタ構成では、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルを参照する。シンタックス値を特定するための特定情報は、シンタックス値そのものであってもよいし、シンタックス値を特定するためのインデックスなどの情報であってもよい。
【００３０】
上記構成によれば、第１のコード番号の発生回数と、該第１のコード番号より１小さい第２のコード番号の発生回数との差分値または差分近似値をカウントし、その値が０となったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える。なお、差分近似値とは、差分を近似する値のことを指す。
【００３１】
ここで、特定情報を交換することにより、発生の確率が高い特定情報を、より小さいコード番号に対応づけることができる。
【００３２】
そして、上記構成によれば、第１のコード番号の発生回数と第２のコード番号の発生回数とをそれぞれをカウンタ等により保持しなくても、特定情報の入れ替えを実現するので、メモリサイズを削減することができるという効果を奏する。
【００３３】
また、第１のコード番号の発生回数のカウンタと第２のコード番号の発生回数のカウンタとがある場合、これらのカウンタの値も交換しなくてはならないが、上記構成では、このような入れ替えを行わなくても済む。
【００３４】
さらに言えば、上記構成では、また、第１のコード番号の発生回数と第２のコード番号の発生回数との総計をカウントして一定カウントごとにリセットを行うといった動作も行わなくても済む。
【００３５】
本発明に係る画像復号装置では、上記差分近似値をカウントする２つの上記カウンタである第１のカウンタおよび第２のカウンタと、上記第１のカウンタおよび上記第２のカウンタの上記差分近似値を更新する差分近似値更新手段と、を備え、上記第１のカウンタは、復号された上記コード番号の発生回数と、該復号されたコード番号より１小さいコード番号の発生回数との差分近似値をカウントし、上記第２のカウンタは、復号された上記コード番号の発生回数と、該復号されたコード番号より１大きいコード番号の発生回数との差分近似値をカウントし、上記差分近似値更新手段は、コード番号が復号された際に、上記第１のカウンタの値が０とは異なる値である場合に、ａ）上記第１のカウンタの値を１減算するとともに、ｂ）上記第２のカウンタの値を１加算する、ことが好ましい。
【００３６】
上記構成によれば、２つのカウンタを備え、かつ差分近似値をカウントする場合において、２つのカウンタの値を適正な精度に保つことができる。
【００３７】
本発明に係る画像復号装置では、上記差分近似値更新手段は、上記第２のカウンタの値を、該第２のカウンタの値に１加算した値と、既定のカウンタ最大値とのうちの小さい方の値に設定することが好ましい。
【００３８】
上記構成によれば、第２のカウンタの値が、既定の範囲内に収まるようにすることができる。
【００３９】
本発明に係る画像復号装置では、上記カウンタを、複数備えており、ｎ（ｎは、１以上の整数）個目のカウンタは、第ｎ番目のコード番号の発生回数と、第ｎ＋１番目のコード番号の発生回数との差分値または差分近似値をカウントし、上記入れ替え手段は、上記ｎ個目のカウンタにおいて値が０となったときに、上記テーブルにおいて、上記第ｎ番目のコード番号に対応付けられている上記特定情報と、上記第ｎ＋１番目のコード番号に対応付けられている上記特定情報とを入れ替えることが好ましい。
【００４０】
上記のように構成すれば、カウンタを複数設ける構成により、３以上の複数のコード番号について、コード番号に対応する上記特定情報の入れ替えを好適に行うことができる。
【００４１】
本発明に係る画像復号装置では、上記ｎ個目のカウンタの値と、上記入れ替えの発生有無とに基づいて、上記ｎ＋１個目のカウンタの値をカウントアップするか否かを制御するカウンタ制御手段を備えることが好ましい。
【００４２】
上記構成によれば、上記ｎ個目のカウンタの値と、上記入れ替えの発生有無とに基づいて、上記ｎ＋１個目のカウンタの値をカウントアップするか否か制御する。
【００４３】
例えば、次のように制御を行うことができる。ここでは、第１番目のカウンタが、コード番号ｃｎ＝ｍ−１およびｍの発生回数の差分をカウントし、第２番目のカウンタがコード番号ｃｎ＝ｍおよびｍ＋１の発生回数の差分をカウントするものとする。
【００４４】
まず、復号したコード番号がｃｎ＝０である場合、第２番目のカウンタをカウントアップしないように制御を行ってもよい。
【００４５】
また、復号したコード番号がｃｎ＝０でない場合で、コード番号ｃｎ＝ｍが復号されたとき、第ｍ番目のカウンタの値が０であれば、第ｍ＋１番目のカウンタをカウントアップしないように制御してもよい。
【００４６】
また、このとき、第ｍ番目のカウンタの値が０でなければ、第ｍ＋１番目のカウンタをカウントアップするように制御してもよい。
【００４７】
上記構成によれば、特定情報の入れ替え時のカウンタ値の管理をより厳密に行うことができる。これにより、カウンタをコード番号ごとに設ける構成との互換性を高めることができるという効果を奏する。
【００４８】
本発明に係る画像復号装置は、上記課題を解決するために、画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、符号化データに含まれるコード番号を参照して復号する画像復号装置において、上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えていることを特徴とする。
【００４９】
本発明に係る画像符号化装置は、上記課題を解決するために、画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、コード番号に変換して符号化データを生成する画像符号化装置において、上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えていることを特徴とする。
【００５０】
上記構成によれば、まず、コード番号と、シンタックス値情報との対応付けを行う。コード番号とシンタックス値情報との対応付けに特に限定はなく、テーブルの形式であってもよいし、コード番号からシンタックス値情報を導出するための算出式であってもよい。
【００５１】
なお、ランの値を含むシンタックス値情報は、少なくともランの値を含んでいれば、他のシンタックス値を含んでいてもかまわない。すなわち、シンタックス値情報に含まれる値は、ランの値のみであってもよいし、ランの値と別のシンタックスの値との組み合わせであってもよい。例えば、ランと、変換係数の値の大きさを示すシンタックスとの組み合わせであってもよい。
【００５２】
また、上記構成では、ラン設定手段が対応テーブルを参照する。また、対応テーブルでは、復号する変換係数の上記周波数領域上の位置において取り得るランの最大値である最大ランと、コード番号との組み合わせを、上記ランの値に対応付ける。
【００５３】
そして、対応テーブルでは、すべての最大ランと、コード番号との組み合わせについてランが定義されているのではなく、所定の上記組み合わせについては、ランが間引かれている。間引き方に特に限定はなく、例えば、所定の最大ランや所定のコード番号について間引くことができる。
【００５４】
さらに、上記構成によれば、上記対応テーブルにおいて上記要素が間引かれている上記組み合わせを、上記要素が間引かれていない上記組み合わせに変換して、シンタックス値情報に含まれるランの値を設定することができる。
【００５５】
したがって、上記の構成によれば、対応情報の要素数が削減されるので、当該対応情報を格納しておくためのメモリサイズが削減される。
【００５６】
さらに、上記構成によれば、上記対応情報においてランが間引かれている上記所定の組み合わせに対応するランの値を、上記対応情報において間引かれていない何れかのランの値に設定するので、メモリサイズを削減しつつ、ランの復号を適切に行うことができる。
【００５７】
本発明に係る画像復号装置では、上記対応テーブルでは、それぞれの最大ランの値に応じて、より短いコード番号に対してより出現頻度の高いランが割り当てられており、所定の最大ランについての上記組み合わせに対応するランが間引かれており、上記ラン設定手段は、上記所定の最大ランに対応するランの値を、該所定の最大ランの値と近い最大ランの上記組み合わせに対応するランの値に設定することが好ましい。
【００５８】
上記構成によれば、上記対応テーブルでは、所定の最大ランについての上記組み合わせに対応するランが間引かれている。
【００５９】
ここで、具体例を示すと次のとおりである。例えば、上記ラン（ｒｕｎ）の値を含むシンタックス値情報を｛ｒｕｎ、ｌｅｖ｝であるとする。ここで、ｌｅｖとは、変換係数が１より大きいか否かを示すシンタックスである。また、コード番号をｃｎ、最大ランをｍａｘｒｕｎとする。
【００６０】
すると、上記構成によれば、ｃｎと、ｍａｘｒｕｎとの組み合わせに対してｒｕｎが対応付けられることになるが、上記構成では、所定のｍａｘｒｕｎについては、このｒｕｎへの対応付けが間引かれているということである。
【００６１】
さらに具体的には、例えば、ｍａｘｒｕｎ＝１２となる｛ｒｕｎ，ｌｅｖ｝の組み合わせに対応するラン（ｒｕｎ）が間引かれているということである。
【００６２】
２つの最大ランの値が近い場合、それぞれの最大ランについて、ｒｕｎの出現頻度は類似している。よって、複数の最大ランの値が互いに近い場合、当該複数の最大ランに対し同一のランの対応を適応して、コード番号とランとの間の変換を行っても符号化効率の低下は少ない。
【００６３】
本発明に係る画像復号装置では、上記対応テーブルでは、それぞれの最大ランの値に応じて、より短いコード番号に対してより出現頻度の高いランが割り当てられており、連続するコード番号に対応する連続するランの一部が間引かれており上記ラン設定手段は、上記連続するコード番号に対応するランの値を、上記連続するランのうちの間引かれていないランの値に設定することが好ましい。
【００６４】
上記構成によれば、上記対応テーブルでは、それぞれの最大ランの値に応じて、より短いコード番号に対してより出現頻度の高いランが割り当てられており、連続するコード番号に対応する連続するランの一部が間引かれている。
【００６５】
つまり、例えば、間引かれる前の対応テーブルにおいて、コード番号ｃｎ＝０、１に対して、それぞれ、ｒｕｎ＝０、１が割り当てられている場合、ｒｕｎ＝１に関するｒｕｎの対応、すなわちコード番号ｃｎ＝１に対応するランを間引くことができる。
【００６６】
そして、上記構成によれば、上記連続するコード番号に対応するランの値を、上記連続するランのうちの間引かれていないランの値に設定する。
【００６７】
つまり、上記例示において、コード番号ｃｎ＝１については、コード番号ｃｎ＝０に対応するｒｕｎ＝０をｒｕｎの値として設定することができる。
【００６８】
なお、ここで、「連続するコード番号に対応する連続するランが間引かれている」という上記構成の性質を利用して、設定したｒｕｎの値を調整してもよい。すなわち、ランの値は、連続しているので、間引かれた度合いに応じてｒｕｎの値を増減させてもよい。
【００６９】
例えば、上記例示において、間引かれる前は、コード番号ｃｎ＝０、１に対して、それぞれ、ｒｕｎ＝０、１が割り当てられていたという性質を利用して、コード番号ｃｎ＝１について設定したｒｕｎ＝０を１インクリメントしてもよい。
【００７０】
本発明に係る画像復号装置は、上記課題を解決するために、画像データの符号化データから復号したコード番号をシンタックスの種別に応じてシンタックス値に変換する画像復号装置において、
復号された上記コード番号を、画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報に対応付ける対応付け手段と、１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、上記割り当て指定設定手段は、復号された上記変換係数の値に応じて上記割り当て指定を変更する。
【００７１】
本発明に係る画像符号化装置は、上記課題を解決するために、シンタックス値を該シンタックスの種別に応じて、コード番号に変換することで画像データの符号化データを生成する画像符号化装置において、画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報を上記コード番号に対応付ける対応付け手段と、１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、上記割り当て指定設定手段は、符号化する上記変換係数の値に応じて上記割り当て指定を変更することを特徴とする。
【００７２】
上記構成において、変換係数の値を含むシンタックス値情報は、少なくとも変換係数の値を含んでいれば、他のシンタックスの値を含んでいてもかまわない。例えば、シンタックス値情報は、変換係数の値のみであってもよいし、変換係数の値と別のシンタックス値とを含んでいてもよい。
【００７３】
上記構成によれば、復号された変換係数の値に応じて、上記割り当て指定を修正することで、１より大きい非ゼロ変換係数に対応するコード番号を修正することができる。
【００７４】
変換係数の値が復号されると、復号された値に応じて、変換係数の値の発生確率が変動する。例えば、復号された非ゼロの変換係数の値が１であれば、次に復号される非ゼロの変換係数の値が、１である確率が高くなる。また、復号された非ゼロの変換係数の値が１より大きければ、次に復号される非ゼロの変換係数が、１より大きくなる確率が高くなる。
【００７５】
上記構成によれば、変換係数の値の発生確率に応じて上記割り当て指定を変更することができる。例えば、１より大きい非ゼロ変換係数の値の発生確率が高い場合には、上記下限値を小さくすることで、１より大きい非ゼロ変換係数の値により小さいコード番号を割り当てることができる。また、１より大きい非ゼロ変換係数の値の発生確率が高い場合には、上記下限値を大きくすることで、１より大きい非ゼロ変換係数の値に比較的大きなコード番号を割り当てることができる。
【００７６】
その結果、変換係数の値の発生確率に適したコード番号−シンタックス値情報の変換を行うことができ、符号化効率を向上させることができる。
【００７７】
本発明に係る画像復号装置では、上記割り当て指定設定手段は、１より大きい非ゼロ変換係数の値をどの程度小さいコード番号に割り当てるかを示す下限値を、上記割り当て指定として設定し、上記対応付け手段は、上記割り当て指定として設定されている下限値に基づいて上記対応付けを行うことが好ましい。
【００７８】
上記構成によれば、上記対応付けは、１より大きい非ゼロ変換係数に対応するコード番号の下限値に基づいて行われる。
【００７９】
上記対応付けでは、上記下限値より小さいあるいは以下コード番号については、１より大きい非ゼロ変換係数が対応付けられない。これは、例えば、上記下限値を設定することは、イントラ予測の場合の変換テーブルにおいてインターリーブの開始位置を指定することに相当する。
【００８０】
そして、上記構成によれば、復号された上記変換係数の値に応じて上記下限値を変更することができる。
【００８１】
これにより、例えば、下限値に基づいてインターリーブが行わるようなテーブルを、変換係数の発生確率に応じて参照することができる。
【００８２】
本発明に係る画像復号装置では、上記対応付け手段は、１より大きい非ゼロ変換係数の値の確率分布に応じて複数種類の対応付けを行い、上記複数種類の対応付けは、上記確率分布の順に割り当てられたインデックスにより指定可能であり、上記割り当て指定設定手段は、上記複数種類の対応付けのうち、上記インデックスを上記割り当て指定として設定することが好ましい。
【００８３】
上記構成によれば、１より大きい非ゼロ変換係数の値の確率分布に応じて複数種類の対応付けを行う。いずれの種類の対応付けを行うかは、上記インデックスにより特定される。
【００８４】
そして、上記構成によれば、復号された上記変換係数の値に応じて、確率分布の順に割り当てられた上記インデックスを変更することができる。
【００８５】
これにより、復号された上記変換係数の値に応じて、より符号化効率がよい対応付け手段を指定することができるという効果を奏する。
【００８６】
本発明に係る画像復号装置は、上記課題を解決するために、画像データの符号化データから変換係数を復号する画像復号装置において、ビット列からコード番号を復号するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、上記最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて復号されたコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備えることを特徴とする。
【００８７】
本発明に係る画像符号化装置は、上記課題を解決するために、画像データの周波数成分を表す周波数領域における変換係数をビット列に符号化する画像符号化装置において、上記変換係数に対応付けられているコード番号をビット列に符号化するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、上記最大値である最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて符号化するコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備えることを特徴とする。
【００８８】
上記構成によれば、最大ランに応じてリストを選択し、さらに最大ランに対して保持されているインデックスを用いて選択されたリストから可変長符号化手法を特定して復号を行う。
【００８９】
なお、可変長符号化手法とは、ビット列と、コード番号とを対応付ける手法のことである。可変長符号化手法は、例えば、ビット列と、コード番号との対応付けを示すテーブルや、ビット列から、コード番号を導出するための算出式により実現することができる。
【００９０】
上記インデックスは、最大ランに応じて定まる。また、例えば、小さいインデックスに、小さいコード番号の発生確率が高いときに符号化効率がよくなる可変長符号化手法が対応付けられていてもよい。
【００９１】
以下、小さいコード番号の発生確率が高いときに符号化効率がよくなる可変長符号化手法のことを、小さいコード番号の発生確率が高いとき向けの可変長符号化手法と称する。また、大きいコード番号の発生確率が高いときに符号化効率がよくなる可変長符号化手法のことを、大きいコード番号の発生確率が高いとき向けの可変長符号化手法と称する。
【００９２】
また、上記順序は、より、小さいコード番号の発生確率が高いとき向けである順であってもよい。
【００９３】
最大ランに応じて設けられているリストには、一部同じ可変長符号化手法が格納されていてもよい。例えば、小さいコード番号の発生確率が高いとき向けの可変長符号化手法を多く含むリストがあってもよいし、大きいコード番号の発生確率が高いとき向けの可変長符号化手法を多く含むリストがあってもよい。
【００９４】
また、リスト間で、格納される可変長符号化手法の組み合わせは異なっていることが好ましい。なお、一部のリスト間で、上記組み合わせが同じであってもかまわない。
【００９５】
また、上記構成によれば、復号結果に基づいて、上記最大ランに対応するインデックスを更新する。例えば、復号したコード番号が小さい場合、インデックスの値をより小さくする。また、復号したコード番号が大きい場合、インデックスの値をより大きくする。
【００９６】
これにより、コード番号の発生確率に応じてより適した可変長符号化方法を選択することができる。その結果、符号化効率が向上する。
【００９７】
本発明に係る画像復号装置では、上記リストでは、最大ランに応じた数の識別情報が含まれていることが好ましい。
【００９８】
最大ランごとにコード番号の発生確率は異なる。上記構成によれば、最大ランに応じて、リストにコード番号の発生確率に応じた数の識別情報を設定することができる。
【００９９】
その結果、最大ランに応じて、選択可能な可変長符号化手法の数を変更することができるという効果を奏する。
【０１００】
本発明に係る画像復号装置では、上記リストでは、小さい最大ランについてのリストに対して、大きい最大ランについてのリストよりも多くの識別情報が含まれていることが好ましい。
【０１０１】
上記構成によれば、復号処理において、最大ランが小さい場合のほうが、最大ランが大きい場合よりも、多くの可変長符号化手法の種類が選択可能となる。
【０１０２】
復号処理においては、最大ランが小さい場合が多く発生する。よって、このように最大ランが小さい場合、選択可能な可変長符号化手法を多くすることで、より符号化効率が高い可変長符号化手法を選択することができる。
【０１０３】
本発明に係る画像復号装置は、上記課題を解決するために、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする。
【０１０４】
本発明に係る画像符号化装置は、上記課題を解決するために、シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第２回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備えることを特徴とする。
【０１０５】
上記構成は、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルを備えている。シンタックス値を特定するための特定情報は、シンタックス値そのものであってもよいし、シンタックス値を特定するためのインデックスなどの情報であってもよい。
【０１０６】
上記構成によれば、２つの連続する第１のコード番号および第２のコード番号の発生回数を第１の回数カウンタおよび第２の回数カウンタによりカウントする。具体的に例示すると、第１のコード番号は、ｃｎ＝０であり、第２のコード番号は、ｃｎ＝１である。
【０１０７】
また、第２のコード番号の発生回数が、第１のコード番号の発生回数以上となることにより、上記第１の回数カウンタの値が、上記第２の回数カウンタの値以上なったことを条件として、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応づけられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える。
【０１０８】
上記の条件において、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応づけられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替えると次のことがいえる。
【０１０９】
まず、第２のコード番号の発生回数が、第１のコード番号の発生回数以上となっていることから、第２のコード番号に対応付けられている特定情報の発生確率が高い状態になっている。
【０１１０】
よって、第１のコード番号に対応付けられている特定情報と、第２のコード番号に対応付けられている特定情報とを入れ替えることにより、より発生確率が高い特定情報に、より小さいコード番号を割り当てることができる。
【０１１１】
また、上記の条件において、第１の回数カウンタの値および上記第２の回数カウンタの値の差は、０または１となっている。
【０１１２】
従って、特定情報の入れ替えにあわせて、第１の回数カウンタおよび第２の回数カウンタの値を入れ替えなくても、両方のカウンタの値が実際のコード番号の発生確率と大きく変わる可能性は低い。よって、カウンタの値の入れ替えを行わなくても符号化効率はほとんど低下しない。
【０１１３】
その結果、符号化効率をほとんど低下させずに、カウンタの値を入れ替えるためのオーバーヘッドを削減することができるという効果を奏する。
【０１１４】
本発明に係る画像復号装置は、上記課題を解決するために、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備えることを特徴とする。
【０１１５】
本発明に係る画像符号化装置は、上記課題を解決するために、シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備えることを特徴とする。
【０１１６】
上記構成は、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルを備えている。シンタックス値を特定するための特定情報は、シンタックス値そのものであってもよいし、シンタックス値を特定するためのインデックスなどの情報であってもよい。
【０１１７】
上記構成によれば、２つの連続する第１のコード番号および第２のコード番号の発生回数を第１の回数カウンタおよび第２の回数カウンタによりカウントする。具体的に例示すると、第１のコード番号は、ｃｎ＝０であり、第２のコード番号は、ｃｎ＝１である。
【０１１８】
また、総計カウンタが、上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする。
【０１１９】
上記構成では、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える。
【０１２０】
また、上記構成では、上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する。これは、カウンタの値が過度に大きくならないために行う処理である。以下、この処理のことを正規化（normalization）と称する。
【０１２１】
ここで、減算を行う場合、カウンタの値が０以下にならないように、クリップしてもよい。また、上記所定の値は、カウンタが設定されているコード番号のうち、最大のコード番号に対応するカウンタ値であってもよい。
【０１２２】
ここで、正規化において、カウンタの値に対して減算を行う場合と、シフト演算を行う場合とで比較すると次のとおりである。
【０１２３】
シフト演算を行う場合、過去の復号結果による影響が長い期間、残ってしまい符号化効率が低下するおそれがある。例えば、カウンタの値に対して右１ビットシフトを行う場合、ｃ＝８のカウンタ値がｃ＝０になるまでに、４回正規化を行う必要がある。
【０１２４】
これに対して、減算を行う場合、過去の復号結果による影響が残る期間を短くすることができる。また、減算する値を調整することで、カウンタをリセットするのに必要な正規化の回数を調整することができる。
【０１２５】
その結果、特定情報の入れ替えに用いるカウンタの値の正規化において、復号結果による影響が残る期間を短くすることができるという効果を奏する。
【０１２６】
なお、上記画像復号装置に対応する構成を備える画像符号化装置も本発明の範疇に入る。上記のように構成された画像符号化装置によれば、本発明に係る画像復号装置と同様の効果を奏することができる。
【発明の効果】
【０１２７】
本発明に係る画像復号装置は、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備える。
【０１２８】
本発明に係る画像符号化装置は、シンタックス値をコード番号に変換して符号化データの生成を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、当該テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数と、該第１のコード番号より１大きい第２のコード番号の発生回数との差分値または差分近似値をカウントするカウンタと、上記カウンタにおいて値が０となったときに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備える。
【０１２９】
本発明に係る画像復号装置は、画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、符号化データに含まれるコード番号を参照して復号する画像復号装置において、上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えている。
【０１３０】
本発明に係る画像符号化装置は、画像データの周波数成分を表す周波数領域における或る非ゼロ変換係数の位置から次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの値を含むシンタックス値情報を、コード番号に変換して符号化データを生成する画像符号化装置において、上記周波数領域上の対象変換係数の位置において取り得るランの最大値である最大ランと上記コード番号との組み合わせをランの値に対応付ける対応テーブルであって、所定の上記組み合わせに対応するランが間引かれている対応テーブルを参照し、当該所定の組み合わせに対応するランの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン設定手段を備えている。
【０１３１】
本発明に係る画像復号装置は、画像データの符号化データから復号したコード番号をシンタックスの種別に応じてシンタックス値に変換する画像復号装置において、復号された上記コード番号を、画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報に対応付ける対応付け手段と、１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、上記割り当て指定設定手段は、復号された上記変換係数の値に応じて上記割り当て指定を変更する。
【０１３２】
本発明に係る画像符号化装置は、シンタックス値を該シンタックスの種別に応じて、コード番号に変換することで画像データの符号化データを生成する画像符号化装置において、画像データの周波数成分を表す周波数領域における変換係数の値を含むシンタックス値情報を上記コード番号に対応付ける対応付け手段と、１より大きい非ゼロ変換係数の値をいずれのコード番号に割り当てるかを示す割り当て指定を設定する割り当て指定設定手段と、を備え、上記割り当て指定設定手段は、符号化する上記変換係数の値に応じて上記割り当て指定を変更する。
【０１３３】
本発明に係る画像復号装置は、画像データの符号化データから変換係数を復号する画像復号装置において、ビット列からコード番号を復号するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、上記最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて復号されたコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備える。
【０１３４】
本発明に係る画像符号化装置は、画像データの周波数成分を表す周波数領域における変換係数をビット列に符号化する画像符号化装置において、上記変換係数に対応付けられているコード番号をビット列に符号化するための可変長符号化手法を特定するための複数の識別情報が順序付けられており、次の非ゼロ変換係数の位置までのスキャン順に沿った長さであるランの最大値である最大ランごとに設けられているリストと、上記最大ランごとに、上記リストに含まれる上記識別情報を特定するためのインデックスを保持する保持手段と、上記最大値である最大ランごとに設けられているリストを、上記最大ランに従って選択するリスト選択手段と、上記選択されたリストにおいて上記インデックスにより特定された可変長符号化手法を用いて符号化するコード番号の値に基づいて、上記最大ランに対応する上記インデックスを更新する更新手段とを備える。
【０１３５】
本発明に係る画像復号装置は、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備える。
【０１３６】
本発明に係る画像符号化装置は、シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記第１の回数カウンタの値および上記第２の回数カウンタの値を維持するとともに、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段とを備える。
【０１３７】
本発明に係る画像復号装置は、コード番号をシンタックス値に変換して符号化データの復号を行う画像復号装置において、コード番号と、シンタックス値を特定するための特定情報とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備える。
【０１３８】
本発明に係る画像符号化装置は、シンタックス値をコード番号に変換して符号化データの符号化を行う画像符号化装置において、シンタックス値を特定するための特定情報と、コード番号とが対応付けられたテーブルと、上記テーブルにおいて定義されている上記コード番号のうちの一つである第１のコード番号の発生回数をカウントする第１の回数カウンタと、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第１の回数カウンタおよび上記第２の回数カウンタの値の総計をカウントする総計カウンタと、上記第２の回数カウンタの値が、上記第１の回数カウンタの値以上になったとき、上記テーブルにおいて、上記第１のコード番号に対応付けられている上記特定情報と、上記第２のコード番号に対応付けられている上記特定情報とを入れ替える入れ替え手段と、上記総計カウンタの値が、予め定められた閾値に達したとき、総計カウンタの値を初期化するとともに、上記第１の回数カウンタの値および上記第２の回数カウンタの値それぞれから所定の値を減算する正規化手段と、を備える。
【０１３９】
以上の構成により、符号化効率向上、メモリ削減、オーバーヘッド削減などのＣＡＶＬＣにおける性能向上を図ることができる。
【図面の簡単な説明】
【０１４０】
【図１】本発明の一実施形態に係る動画像復号装置が備える可変長復号部の構成例について示す機能ブロック図である。
【図２】上記動画像復号装置の概略的構成について示した機能ブロック図である。
【図３】本発明の一実施形態に係る動画像符号化装置によって生成され、上記動画像復号装置によって復号される符号化データのデータ構成を示す図であり、（ａ）〜（ｄ）は、それぞれ、ピクチャレイヤ、スライスレイヤ、ツリーブロックレイヤ、およびＣＵレイヤを示す図である。
【図４】上記動画像復号装置が備えるＴＵ情報復号部の構成例について示す機能ブロック図である。
【図５】上記可変長復号部が備えるコード番号変換設定部におけるコード番号変換設定処理について例示したフローチャートである。
【図６】コード番号変換設定処理に用いられるコード番号変換テーブルの具体的な構成の一例について示す図である。
【図７】コード番号変換設定処理に用いられるコード番号変換テーブルの具体的な構成の他の例について示す図である。
【図８】コード番号変換設定処理に用いられるコード番号変換テーブルの具体的な構成のさらに他の例について示す図である。
【図９】ｍａｘｒｕｎの値すべてについて、ｒｕｎ変換エントリを保持した場合のｒｕｎＴａｂｌｅを示している。
【図１０】ｍａｘｒｕｎについて、間引かれたｒｕｎ変換エントリを保持する場合のｒｕｎＴａｂｌｅを示している。
【図１１】ｒｕｎＴａｂｌｅの間引きによるメモリ削減効果を表す図である。
【図１２】上記コード番号変換設定部の好ましい変形例について説明する。
【図１３】上記変形例に係るコード番号変換設定部におけるコード番号変換設定処理について例示したフローチャートである。
【図１４】ｒｕｎＴａｂｌｅの間引きによるメモリ削減効果を表す図である。
【図１５】上記コード番号変換テーブルの別の例について示す図である。
【図１６】上記コード番号変換設定部が備えるパラメータ修正部においてパラメータを修正する処理の流れの一例について示すフローチャートである。
【図１７】上記パラメータ修正部の変形例について示す図である。
【図１８】ｌｒｇ１ｐｏｓと、ｒｕｎＴａｂｌｅとの組み合わせた形式のコード番号変換テーブルを示す図である。
【図１９】ｌｅｖ＝０において、ｒｕｎＴａｂｌｅを用いてｒｕｎを求めるように定義されたコード変換テーブルを示す図である。
【図２０】ｌｅｖ＝０と、ｌｅｖ＝１とで異なるｒｕｎＴａｂｌｅが定義されたコード番号変換テーブルを示す図である。
【図２１】ＶＬＣ選択用テーブルの一構成例であるＶＬＣリストを示す図である。
【図２２】頻度と、コード番号との関係について示し他グラフである。
【図２３】ＶＬＣリストを複数含むＶＬＣリストテーブルを示す図である。
【図２４】ＶＬＣ方法選択部３３０におけるＶＣＬ方法切替処理について例示したフローチャートである。
【図２５】本発明の一実施形態に係る動画像符号化装置の構成例について示す機能ブロック図である。
【図２６】上記動画像符号化装置が備えるＴＵ情報符号化部の構成例について示す機能ブロック図である。
【図２７】上記ＴＵ情報符号化部が備える可変長復号部の構成例について示す機能ブロック図である。
【図２８】本発明の一実施形態に係るコード番号変換設定部の構成例について示す機能ブロック図である。
【図２９】上記コード番号変換設定部が備える回数カウンタおよびｓｕｍカウンタ付き可変テーブルについて示す図である。
【図３０】各コード番号が発生した場合におけるカウンタ更新およびテーブル適応の動作条件について示す図である。
【図３１】回数カウンタおよびｓｕｍカウンタ付きの可変テーブルを用いた場合の可変テーブル適応処理の流れについて示すフローチャートである。
【図３２】差分値カウンタ付き可変テーブルについて示す図である。
【図３３】差分値カウンタ更新およびテーブル適応処理の動作条件について示す表である。
【図３４】可変テーブル適応部の具体的な動作例について示す図である。
【図３５】可変テーブル適応処理の流れの一例について示すフローチャートである。
【図３６】可変テーブル適応処理の流れの別の例について示すフローチャートである。
【図３７】可変テーブル適応部の具体的な動作の一例について示す図である。
【図３８】可変テーブル適応部の具体的な動作の他の例について示す図である。
【図３９】可変テーブル適応部の具体的な動作の別の例について示す図である。
【図４０】可変テーブル適応処理の流れのさらに別の例について示すフローチャートである。
【発明を実施するための形態】
【０１４１】
〔１〕実施形態１
本発明の一実施形態について図１〜図２７参照して説明する。まず、図２を参照しながら、動画像復号装置（画像復号装置）１および動画像符号化装置（画像符号化装置）２の概要について説明する。図２は、動画像復号装置１の概略的構成を示す機能ブロック図である。
【０１４２】
図２に示す動画像復号装置１および動画像符号化装置２は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ規格に採用されている技術、ＶＣＥＧ（Video Coding Expert Group）における共同開発用コーデックであるＫＴＡソフトウェアに採用されている技術、ＴＭｕＣ（Test Model under Consideration）ソフトウェアに採用されている技術、および、その後継コーデックであるＨＥＶＣ（High-Efficiency Video Coding）にて提案されている技術を実装している。
【０１４３】
動画像復号装置１には、動画像符号化装置２が動画像を符号化した符号化データ＃１が入力される。動画像復号装置１は、入力された符号化データ＃１を復号して動画像＃２を外部に出力する。動画像復号装置１の詳細な説明に先立ち、符号化データ＃１の構成を以下に説明する。
【０１４４】
〔符号化データの構成〕
図３を用いて、動画像符号化装置２によって生成され、動画像復号装置１によって復号される符号化データ＃１の構成例について説明する。符号化データ＃１は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
【０１４５】
符号化データ＃１におけるピクチャレイヤ以下の階層の構造を図３に示す。図３の（ａ）〜（ｄ）は、それぞれ、ピクチャＰＩＣＴを規定するピクチャレイヤ、スライスＳを規定するスライスレイヤ、ツリーブロック（Tree block）ＴＢＬＫを規定するツリーブロックレイヤ、ツリーブロックＴＢＬＫに含まれる符号化単位（Coding Unit；ＣＵ）を規定するＣＵレイヤを示す図である。
【０１４６】
（ピクチャレイヤ）
ピクチャレイヤでは、処理対象のピクチャＰＩＣＴ（以下、対象ピクチャとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。ピクチャＰＩＣＴは、図３の（ａ）に示すように、ピクチャヘッダＰＨ、及び、スライスＳ1〜ＳNSを含んでいる（ＮＳはピクチャＰＩＣＴに含まれるスライスの総数）。
【０１４７】
なお、以下、スライスＳ1〜ＳNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ＃１に含まれるデータであって、添え字を付している他のデータについても同様である。
【０１４８】
ピクチャヘッダＰＨには、対象ピクチャの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれている。例えば、動画像符号化装置２が符号化の際に用いた可変長符号化のモードを示す符号化モード情報（entropy_coding_mode_flag）は、ピクチャヘッダＰＨに含まれる符号化パラメータの一例である。
【０１４９】
entropy_coding_mode_flagが０の場合、当該ピクチャＰＩＣＴは、ＣＡＶＬＣ（Context-based Adaptive Variable Length Coding）によって符号化されている。また、entropy_coding_mode_flagが１である場合、当該ピクチャＰＩＣＴは、ＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）によって符号化されている。
【０１５０】
なお、ピクチャヘッダＰＨは、ピクチャー・パラメーター・セット（ＰＰＳ：Picture Parameter Set）とも称される。
【０１５１】
（スライスレイヤ）
スライスレイヤでは、処理対象のスライスＳ（対象スライスとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。スライスＳは、図３の（ｂ）に示すように、スライスヘッダＳＨ、及び、ツリーブロックＴＢＬＫ1〜ＴＢＬＫNC（ＮＣはスライスＳに含まれるツリーブロックの総数）を含んでいる。
【０１５２】
スライスヘッダＳＨには、対象スライスの復号方法を決定するために動画像復号装置１が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報（slice_type）は、スライスヘッダＳＨに含まれる符号化パラメータの一例である。
【０１５３】
スライスタイプ指定情報により指定可能なスライスタイプとしては、（１）符号化の際にイントラ予測のみを用いるＩスライス、（２）符号化の際に単方向予測、又は、イントラ予測を用いるＰスライス、（３）符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるＢスライスなどが挙げられる。
【０１５４】
また、スライスヘッダＳＨには、動画像復号装置１の備えるループフィルタ（不図示）によって参照されるフィルタパラメータが含まれていてもよい。
【０１５５】
（ツリーブロックレイヤ）
ツリーブロックレイヤでは、処理対象のツリーブロックＴＢＬＫ（以下、対象ツリーブロックとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。
【０１５６】
ツリーブロックＴＢＬＫは、ツリーブロックヘッダＴＢＬＫＨと、符号化単位情報ＣＵ１〜ＣＵＮＬ（ＮＬはツリーブロックＴＢＬＫに含まれる符号化単位情報の総数）とを含む。ここで、まず、ツリーブロックＴＢＬＫと、符号化単位情報ＣＵとの関係について説明すると次のとおりである。
【０１５７】
ツリーブロックＴＢＬＫは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのユニットに分割される。
【０１５８】
ツリーブロックＴＢＬＫの上記ユニットは、再帰的な４分木分割により分割されている。この再帰的な４分木分割により得られる木構造のことを以下、符号化ツリー（coding tree）と称する。
【０１５９】
以下、符号化ツリーの末端のノードであるリーフ（leaf）に対応するユニットを、符号化ノード（coding node）として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位（ＣＵ）とも称する。
【０１６０】
つまり、符号化単位情報（以下、ＣＵ情報と称する）ＣＵ１〜ＣＵＮＬは、ツリーブロックＴＢＬＫを再帰的に４分木分割して得られる各符号化ノード（符号化単位）に対応する情報である。
【０１６１】
また、符号化ツリーのルート（root）は、ツリーブロックＴＢＬＫに対応付けられる。換言すれば、ツリーブロックＴＢＬＫは、複数の符号化ノードを再帰的に含む４分木分割の木構造の最上位ノードに対応付けられる。
【０１６２】
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード（すなわち、当該符号化ノードの１階層上位のノードのユニット）のサイズの縦横とも半分である。
【０１６３】
また、各符号化ノードの取り得るサイズは、符号化データ＃１のシーケンスパラメータセットＳＰＳに含まれる、符号化ノードのサイズ指定情報および最大階層深度（maximum hierarchical depth）に依存する。例えば、ツリーブロックＴＢＬＫのサイズが６４×６４画素であって、最大階層深度が３である場合には、当該ツリーブロックＴＢＬＫ以下の階層における符号化ノードは、４種類のサイズ、すなわち、６４×６４画素、３２×３２画素、１６×１６画素、および８×８画素の何れかを取り得る。
【０１６４】
（ツリーブロックヘッダ）
ツリーブロックヘッダＴＢＬＫＨには、対象ツリーブロックの復号方法を決定するために動画像復号装置１が参照する符号化パラメータが含まれる。具体的には、図３の（ｃ）に示すように、対象ツリーブロックの各ＣＵへの分割パターンを指定するツリーブロック分割情報ＳＰ＿ＴＢＬＫ、および、量子化ステップの大きさを指定する量子化パラメータ差分Δｑｐ（qp_delta）が含まれる。
【０１６５】
ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各ＣＵの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
【０１６６】
なお、ツリーブロック分割情報ＳＰ＿ＴＢＬＫは、ＣＵの形状やサイズを明示的に含んでいなくてもよい。例えばツリーブロック分割情報ＳＰ＿ＴＢＬＫは、対象ツリーブロック全体またはツリーブロックの部分領域を四分割するか否かを示すフラグ(split_coding_unit_flag)の集合であってもよい。その場合、ツリーブロックの形状やサイズを併用することで各ＣＵの形状やサイズを特定できる。
【０１６７】
また、量子化パラメータ差分Δｑｐは、対象ツリーブロックにおける量子化パラメータｑｐと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータｑｐ’との差分ｑｐ−ｑｐ’である。
【０１６８】
（ＣＵレイヤ）
ＣＵレイヤでは、処理対象のＣＵ（以下、対象ＣＵとも称する）を復号するために動画像復号装置１が参照するデータの集合が規定されている。
【０１６９】
ここで、ＣＵ情報ＣＵに含まれるデータの具体的な内容の説明をする前に、ＣＵに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー（prediction tree；ＰＴ）および変換ツリー（transform tree；ＴＴ）のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
【０１７０】
予測ツリーにおいては、符号化ノードが１または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ノードを構成する１または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた１または複数の予測ブロックを含む。
【０１７１】
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位（prediction unit；ＰＵ）とも称する。
【０１７２】
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との２つがある。
【０１７３】
イントラ予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）と、Ｎ×Ｎとがある。
【０１７４】
また、インター予測の場合、分割方法は、２Ｎ×２Ｎ（符号化ノードと同一サイズ）、２Ｎ×Ｎ、Ｎ×２Ｎ、および、Ｎ×Ｎなどがある。
【０１７５】
また、変換ツリーにおいては、符号化ノードが１または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ノードを構成する１または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた１または複数の変換ブロックを含む。
【０１７６】
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位（transform unit；ＴＵ）とも称する。
【０１７７】
（ＣＵ情報のデータ構造）
続いて、図３の（ｄ）を参照しながらＣＵ情報ＣＵに含まれるデータの具体的な内容について説明する。図３の（ｄ）に示すように、ＣＵ情報ＣＵは、具体的には、スキップフラグＳＫＩＰ、ＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩを含む。
【０１７８】
スキップフラグＳＫＩＰは、対象のＰＵについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグＳＫＩＰの値が１の場合、すなわち、対象ＣＵにスキップモードが適用されている場合、そのＣＵ情報ＣＵにおけるＰＴ情報ＰＴＩ、および、ＴＴ情報ＴＴＩは省略される。なお、スキップフラグＳＫＩＰは、Ｉスライスでは省略される。
【０１７９】
ＰＴ情報ＰＴＩは、ＣＵに含まれるＰＴに関する情報である。言い換えれば、ＰＴ情報ＰＴＩは、ＰＴに含まれる１または複数のＰＵそれぞれに関する情報の集合であり、動画像復号装置１により予測画像を生成する際に参照される。ＰＴ情報ＰＴＩは、図３の（ｄ）に示すように、予測タイプ情報ＰＴｙｐｅ、および、予測情報ＰＩｎｆｏを含んでいる。
【０１８０】
予測タイプ情報ＰＴｙｐｅは、対象ＰＵについての予測画像生成方法として、イントラ予測を用いるのか、または、インター予測を用いるのかを指定する情報である。
【０１８１】
予測情報ＰＩｎｆｏは、予測タイプ情報ＰＴｙｐｅが何れの予測方法を指定するのかに応じて、イントラ予測情報、または、インター予測情報より構成される。以下では、イントラ予測が適用されるＰＵをイントラＰＵとも呼称し、インター予測が適用されるＰＵをインターＰＵとも呼称する。
【０１８２】
また、予測情報ＰＩｎｆｏは、対象ＰＵの形状、サイズ、および、位置を指定する情報が含まれる。上述のとおり予測画像の生成は、ＰＵを単位として行われる。予測情報ＰＩｎｆｏの詳細については後述する。
【０１８３】
ＴＴ情報ＴＴＩは、ＣＵに含まれるＴＴに関する情報である。言い換えれば、ＴＴ情報ＴＴＩは、ＴＴに含まれる１または複数のＴＵそれぞれに関する情報の集合であり、動画像復号装置１により残差データを復号する際に参照される。なお、以下、ＴＵのことをブロックと称することもある。
【０１８４】
ＴＴ情報ＴＴＩは、図３の（ｄ）に示すように、対象ＣＵの各変換ブロックへの分割パターンを指定するＴＴ分割情報ＳＰ＿ＴＵ、および、ＴＵ情報ＴＵＩ1〜ＴＵＩNT（ＮＴは、対象ＣＵに含まれるブロックの総数）を含んでいる。
【０１８５】
ＴＴ分割情報ＳＰ＿ＴＵは、具体的には、対象ＣＵに含まれる各ＴＵの形状、サイズ、および、対象ＣＵ内での位置を決定するための情報である。例えば、ＴＴ分割情報ＳＰ＿ＴＵは、対象となるノードの分割を行うのか否かを示す情報（split_transform_unit_flag）と、その分割の深度を示す情報（trafoDepth）とから実現することができる。
【０１８６】
また、例えば、ＣＵのサイズが、６４×６４の場合、分割により得られる各ＴＵは、３２×３２画素から４×４画素までのサイズを取り得る。
【０１８７】
ＴＵ情報ＴＵＩ1〜ＴＵＩNTは、ＴＴに含まれる１または複数のＴＵそれぞれに関する個別の情報である。例えば、ＴＵ情報ＴＵＩは、量子化予測残差を含んでいる。
【０１８８】
各量子化予測残差は、動画像符号化装置２が以下の処理１〜３を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
【０１８９】
処理１：符号化対象画像から予測画像を減算した予測残差をＤＣＴ変換（Discrete Cosine Transform）する；
処理２：処理１にて得られた変換係数を量子化する；
処理３：処理２にて量子化された変換係数を可変長符号化する；
なお、上述した量子化パラメータｑｐは、動画像符号化装置２が変換係数を量子化する際に用いた量子化ステップＱＰの大きさを表す（ＱＰ＝２qp/6）。
【０１９０】
（予測情報ＰＩｎｆｏ）
上述のとおり、予測情報ＰＩｎｆｏには、インター予測情報およびイントラ予測情報の２種類がある。
【０１９１】
インター予測情報には、動画像復号装置１が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、インター予測情報には、対象ＣＵの各インターＰＵへの分割パターンを指定するインターＰＵ分割情報、および、各インターＰＵについてのインター予測パラメータが含まれる。
【０１９２】
インター予測パラメータには、参照画像インデックスと、推定動きベクトルインデックスと、動きベクトル残差とが含まれる。
【０１９３】
一方、イントラ予測情報には、動画像復号装置１が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、イントラ予測情報には、対象ＣＵの各イントラＰＵへの分割パターンを指定するイントラＰＵ分割情報、および、各イントラＰＵについてのイントラ予測パラメータが含まれる。イントラ予測パラメータは、各イントラＰＵについてのイントラ予測方法（予測モード）を指定するためのパラメータである。
【０１９４】
〔動画像復号装置〕
以下では、本実施形態に係る動画像復号装置１の構成について、図１〜図２４を参照して説明する。
【０１９５】
（動画像復号装置の概要）
動画像復号装置１は、ＰＵ毎に予測画像を生成し、生成された予測画像と、符号化データ＃１から復号された予測残差とを加算することによって復号画像＃２を生成し、生成された復号画像＃２を外部に出力する。
【０１９６】
ここで、予測画像の生成は、符号化データ＃１を復号することによって得られる符号化パラメータを参照して行われる。符号化パラメータとは、予測画像を生成するために参照されるパラメータのことである。符号化パラメータには、画面間予測において参照される動きベクトルや画面内予測において参照される予測モードなどの予測パラメータに加えて、ＰＵのサイズや形状、ブロックのサイズや形状、および、原画像と予測画像との残差データなどが含まれる。以下では、符号化パラメータに含まれる情報のうち、上記残差データを除く全ての情報の集合を、サイド情報と呼ぶ。
【０１９７】
また、以下では、上記ＰＵおよびＴＵが、ＣＵと同じサイズである場合を例に挙げ説明を行う。しかしながら、これに限定されるものではなく、ＰＵおよびＴＵがＣＵよりも小さい単位である場合に対しても適用することができる。
【０１９８】
また、以下では、復号の対象となるピクチャ（フレーム）、スライス、ツリーブロック、ブロック、および、ＰＵをそれぞれ、対象ピクチャ、対象スライス、対象ツリーブロック、対象ブロック、および、対象ＰＵと呼ぶことにする。
【０１９９】
なお、ツリーブロックのサイズは、例えば６４×６４画素であり、ＰＵのサイズは、例えば、６４×６４画素、３２×３２画素、１６×１６画素、８×８画素や４×４画素などである。しかしながら、これらのサイズは、単なる例示であり、ツリーブロックおよびＰＵのサイズは以上に示したサイズ以外のサイズであってもよい。
【０２００】
（動画像復号装置の構成）
再び、図２を参照して、動画像復号装置１の概略的構成について説明すると次のとおりである。図２は、動画像復号装置１の概略的構成について示した機能ブロック図である。
【０２０１】
図２に示すように動画像復号装置１は、可変長符号逆多重化部１１、ＴＵ情報復号部１２、逆量子化・逆変換部１３、予測画像生成部１４、加算器１５およびフレームメモリ１６を備えている。
【０２０２】
［可変長符号逆多重化部］
可変長符号逆多重化部１１は、動画像復号装置１に入力された１フレーム分の符号化データ＃１を、逆多重化することで、図３に示した階層構造に含まれる各種情報に分離する。例えば、可変長符号逆多重化部１１は、各種ヘッダに含まれる情報を参照して、符号化データ＃１を、スライス、ツリーブロックに順次分離する。
【０２０３】
ここで、各種ヘッダには、（１）対象ピクチャのスライスへの分割方法についての情報、および（２）対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報が含まれる。
【０２０４】
そして、可変長符号逆多重化部１１は、ツリーブロックヘッダＴＢＬＫＨに含まれるツリーブロック分割情報ＳＰ＿ＴＢＬＫを参照して、対象ツリーブロックを、ＣＵに分割する。また、可変長符号逆多重化部１１は、対象ＣＵについてＴＴ情報ＴＴＩ、およびＰＴ情報ＰＴＩを取得する。
【０２０５】
可変長符号逆多重化部１１は、対象ＣＵについて得られたＴＴ情報ＴＴＩに含まれるＴＵ情報ＴＵＩを所定の順にＴＵ情報復号部１２に供給する。また、可変長符号逆多重化部１１は、対象ＣＵについて得られたＰＴ情報ＰＴＩを予測画像生成部１４に供給する。
【０２０６】
［ＴＵ情報復号部］
ＴＵ情報復号部１２は、可変長符号逆多重化部１１から供給されるＴＵ情報ＴＵＩの復号を行って、復号済みＴＵ情報ＴＵＩ’を生成する。
【０２０７】
例えば、ＴＵ情報復号部１２は、対象ブロックについて、ＴＵ情報ＴＵＩから量子化予測残差を復号する。ここで、対象ブロックについての量子化予測残差は、量子化された変換係数が２次元の行列に配列された形式で表現できる。以下、量子化された変換係数のことを単に係数と称し、量子化された変換係数の２次元の行列表現のことを係数行列と称する。
【０２０８】
ＴＵ情報復号部１２は、復号済みＴＵ情報ＴＵＩ’を逆量子化・逆変換部１３に供給する。なお、ＴＵ情報復号部１２の動作詳細については後述する。
【０２０９】
［逆量子化・逆変換部］
逆量子化・逆変換部１３は、ＴＵ情報復号部１２から供給される復号済みＴＵ情報ＴＵＩ’に基づいて対象ＣＵについて、ブロックごとに、量子化予測残差の逆量子化・逆変換を行う。逆量子化・逆変換部１３は、復号済みＴＵ情報ＴＵＩ’に含まれる量子化予測残差を逆量子化および逆ＤＣＴ変換（Inverse Discrete Cosine Transform）することによって、各対象ＰＵについて、画素毎の予測残差Ｄを復元する。逆量子化・逆変換部１３は、復元した予測残差Ｄを加算器１５に供給する。
【０２１０】
［予測画像生成部］
予測画像生成部１４は、対象ＣＵに含まれる各ＰＵについて、復号済み画像である局所復号画像Ｐ’を参照して、イントラ予測またはインター予測により予測画像Ｐｒｅｄを生成する。予測画像生成部１４は、対象ＣＵについて生成した予測画像Ｐｒｅｄを加算器１５に供給する。
【０２１１】
［加算器］
加算器１５は、予測画像生成部１４より供給される予測画像Ｐｒｅｄと、逆量子化・逆変換部１３より供給される予測残差Ｄとを加算することによって、対象ＣＵについての復号画像Ｐを生成する。
【０２１２】
［フレームメモリ］
フレームメモリ１６には、復号された復号画像Ｐが順次記録される。フレームメモリ１６には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック（例えば、ラスタスキャン順で先行する全てのツリーブロック）に対応する復号画像が記録されている。
【０２１３】
なお、動画像復号装置１において、画像内の全てのツリーブロックに対して、ツリーブロック単位の復号画像生成処理が終わった時点で、動画像復号装置１に入力された１フレーム分の符号化データ＃１に対応する復号画像＃２が外部に出力される。
【０２１４】
（係数のスキャンについて）
ここで、ＴＵ情報復号部１２の構成の詳細について説明する前に、係数のスキャンについて説明する。
【０２１５】
係数の符号化においては、動画像符号化装置２において、対象ブロックにおける係数の集合を表す係数行列が所定の順序によりスキャンされる。
【０２１６】
スキャンとは、係数行列における係数の座標を、１次元のスキャン順インデックスに変換する処理である。変換後の係数は、１次元配列に格納されて保持される。スキャンでは従来知られているジグザグスキャン順序等を用いることができる。
【０２１７】
符号化処理では、まず対象ブロックにおいて、左上の位置にあるＤＣ係数から、右下の位置にある最も高周波成分の係数までがジグザグスキャン順序に基づいてスキャンされる。
【０２１８】
なお、高周波成分の係数の値は、ゼロまたはゼロに近くなる傾向がある一方で、低周波成分の係数の値は、ゼロでないまたは値が大きい可能性が高いという特性がある。このためジグザグスキャンは、低周波成分の係数を早くスキャンするスキャン順序となっている。
【０２１９】
また、動画像符号化装置２では、スキャンの後、係数の符号化処理が行われる。係数の符号化処理は、スキャンとは逆の順序にて行われる。
【０２２０】
以下において、この処理順序のことを逆順のジグザグスキャンとも呼ぶ。つまり、符号化処理は、係数行列に対して逆順のジグザグスキャンで行われる。また、符号化処理順序について説明する場合は、便宜的に、係数行列をベースに説明する。
【０２２１】
高周波成分は、値が“０”であることが多いので、本実施形態の符号化処理においては、このようなゼロ係数の符号化を省略し、ＤＣ係数からみて最後の非ゼロの係数を基点に行うものとする。
【０２２２】
なお、以上では、説明の便宜上、８×８の係数行列のスキャン例を示したが、４×４の係数行列をスキャンする場合についても同様のことが言える。また、スキャン順序をジグザグスキャン以外の方法、例えばラスタスキャンと同様の順序などに適応的に変更してもよい。
【０２２３】
（係数の符号化について）
以下において、動画像符号化装置２において符号化され動画像復号装置１において参照される係数符号化データについて説明する。上述のとおり符号化処理においては、まず、最後の非ゼロ係数が符号化される。続いて、所定の条件下において、ランモードによる符号化が行われる。ランモード終了条件が満たされることにより、ランモードが終了すると、残りの係数について、レベルモードによる符号化が行われる。このようにして全ての係数が符号化される。
【０２２４】
以下、最後の非ゼロ係数、ランモード、および、レベルモードで符号化されるデータについて説明する。
【０２２５】
［最後の非ゼロ係数］
最後の非ゼロ係数は、最後の非ゼロ係数の位置およびレベルに関する情報の組｛ｌａｓｔｐｏｓ，ｌｅｖ｝によって表現され、これら情報の組｛ｌａｓｔｐｏｓ，ｌｅｖ｝が符号化される。ここで、ｌａｓｔｐｏｓは、最後の非ゼロ係数の位置（例えば、スキャン順上のインデックス値）を示している。また、ｌｅｖは、最後の非ゼロ係数のレベルが２以上かどうかを示す。
【０２２６】
ここで係数のレベル（ｌｅｖｅｌ）とは、係数の絶対値のことを指す。係数の値の正負符号に関する情報は別途符号化される。また、非ゼロ係数のレベルが２以上であるとき、ｌｅｖは、“１”であり、非ゼロ係数のレベルが１であるとき、ｌｅｖは、“０”である。また、ｌｅｖが１であるとき、動画像符号化装置２は、動画像復号装置１側でｌｅｖｅｌを復元できるように追加の情報を符号化する。
【０２２７】
［ランモード］
所定の条件下、ランモードを実行する場合、以下の符号化が行われる。ランモードとは、連続するゼロ係数の数（０ラン）を符号化するモードである。
【０２２８】
ランモードでは、０ランの長さおよび係数のレベルに関する情報の組である｛ｒｕｎ，ｌｅｖ｝が符号化される。
【０２２９】
ｒｕｎは、最後に処理した非ゼロ係数の位置から次の非ゼロ係数の位置までのスキャン順に沿った距離に相当する値である。例えば、ｒｕｎは、最後に処理した非ゼロ係数の位置から次の非ゼロ係数の位置までスキャン順に沿ってスキャンを行う際に走査されるゼロ係数の個数である。
【０２３０】
ｌｅｖは、上述のとおり、最後の非ゼロ係数のレベルが２以上かどうかを示す。
【０２３１】
なお、非特許文献１では、ｌｅｖｅｌが２以上の係数が出現した場合を、ランモードの終了条件のひとつとして用いている。
【０２３２】
［レベルモード］
レベルモードとは、ゼロ係数であっても、１つずつ符号化するモードである。レベルモードでは、係数ごとに、係数のレベルｌｅｖｅｌおよび正負の符号が符号化される。
【０２３３】
［備考］
なお、以上に示した符号化データは、単なる例示であり、シンタックス要素としては上記と異なる名称または定義により符号化されていてもよい。例えば、ランモードの係数のレベルｌｅｖｅｌは、ｉｓＬｅｖｅｌＯｎｅ（ｌｅｖｅｌは１）、および、ｌｅｖｅｌ＿ｍａｇｎｉｔｕｄｅ＿ｍｉｎｕｓ２（係数値が２以上の場合であり、符号化するのは２を引いたレベル）のシンタックス要素として符号化されていてもよい（非特許文献１の「ｌｅｖｅｌ＿ｍａｇｎｉｔｕｄｅ＿ｍｉｎｕｓ２」を参照）。
【０２３４】
なお、最後の非ゼロ係数については、ｌｅｖｅｌが、ｌａｓｔ＿ｐｏｓ＿ｌｅｖｅｌのシンタックス要素として符号化されていてもよい。
【０２３５】
また、非ランモードのｌｅｖｅｌは、ｌｅｖｅｌ＿ｍａｇｎｉｔｕｄｅのシンタックス要素として符号化されていてもよい。
【０２３６】
（ＴＵ情報復号部）
次に、図４を用いてＴＵ情報復号部１２の構成についてさらに詳しく説明する。図４は、ＴＵ情報復号部１２の構成例について示す機能ブロック図である。
【０２３７】
なお、以下では、ＴＵ情報復号部１２が、ＴＵ情報ＴＵＩに含まれる符号化データのうち、係数に関するデータを復号するための構成について説明する。言い換えれば、以下では、ＴＵ情報復号部１２が、符号化された量子化予測残差、すなわち係数符号化データを復号するための構成について説明する。
【０２３８】
しかしながら、これに限られずＴＵ情報復号部１２は、符号化データに含まれる係数符号化データ以外のデータ、例えば、サイド情報等を復号することができる。
【０２３９】
ＴＵ情報復号部１２は、可変長復号部３００と、最後の非ゼロ係数処理部１２１と、ランモード処理部１２２と、レベルモード処理部１２３と、逆スキャン部１２４と、を備える。
【０２４０】
可変長復号部３００は、符号化データおよびシンタックス種別を入力として、シンタックス種別にて指定されるシンタックスの値を符号化データから復号して出力するものである。
【０２４１】
可変長復号部３００は、具体的には、次のようにして、符号化データのビット列から、シンタックス値を復号する。まず、可変長復号部３００は、符号化データのビット列から、コード番号を復号する。続いて、可変長復号部３００は、復号したコード番号をシンタックス値に変換する。
【０２４２】
また、可変長復号部３００では、シンタックス種別に応じた復号方法が規定されている。
【０２４３】
なお、同図には示していないが、可変長復号部３００が出力するシンタックス値が、可変長復号部３００自身にフィードバックされるように構成されてもよい。また、シンタックス種別は、最後の非ゼロ係数（｛ｌａｓｔｐｏｓ，ｌｅｖ｝）、ランレベル（｛ｒｕｎ，ｌｅｖ｝）、レベル（ｌｅｖｅｌ）、イントラＤＣ係数（ｉｎｔｒａＤＣ ｃｏｅｆｆ）、輝度色差成分への非ゼロ係数存否情報（Ｃｂｐ ｙｕｖ ｒｏｏｔ）、ブロック内の非ゼロ係数存否フラグ（Ｂｌｏｃｋ Ｃｂｆ）等のシンタックスの種類を示す情報である。以下では、可変長復号部３００が係数に関するシンタックス値を復号する場合について説明する。また、可変長復号部３００のより詳細な構成については後述する。
【０２４４】
最後の非ゼロ係数処理部１２１は、可変長復号部３００に、復号の対象となる復号領域（以下、対象復号領域と称する）について最後の非ゼロ係数を復号させる。より具体的には、最後の非ゼロ係数処理部１２１は、対象復号領域に対応する係数符号化データおよび最後の非ゼロ係数を示すシンタックス種別を可変長復号部３００に供給し、可変長復号部３００から出力される｛ｌａｓｔｐｏｓ，ｌｅｖ｝を取得する。
【０２４５】
ランモード処理部１２２は、可変長復号部３００に、対象復号領域について、ランモードで符号化された係数を復号させる。すなわち、ランモード処理部１２２は、対象復号領域に対応する係数符号化データおよびランレベルを示すシンタックス種別を可変長復号部３００に供給し、可変長復号部３００から出力される｛ｒｕｎ，ｌｅｖ｝を取得する。
【０２４６】
以下、ランモード処理部１２２が行う上記の復号処理のことを、ランモード復号処理と称する。
【０２４７】
また、ランモード処理部１２２は、ランモード終了条件が満たされるまで、ランモード復号処理を繰り返して行う。ランモード終了条件の条件としては、例えば、復号した係数の値が閾値を超えている場合や、所定の数だけ係数を復号した場合などが挙げられる。
【０２４８】
そして、ランモード終了条件が満たされた場合、ランモード処理部１２２は、レベルモード処理部１２３にレベルモードによる復号を開始させる。
【０２４９】
レベルモード処理部１２３は、可変長復号部３００に、対象復号領域について、レベルモードで符号化された係数を復号させる。すなわち、レベルモード処理部１２３は、対象復号領域に対応する係数符号化データおよびレベルを示すシンタックス種別を可変長復号部３００に供給し、可変長復号部３００から出力されるｌｅｖｅｌを取得する。
【０２５０】
以下、レベルモード処理部１２３が行う上記の復号処理のことをレベルモード復号処理と称する。また、レベルモード処理部１２３は、直流成分の係数を復号するまで、レベルモード復号処理を繰り返して行う。
【０２５１】
逆スキャン部１２４は、最後の非ゼロ係数処理部１２１、ランモード処理部１２２、およびレベルモード処理部１２３による係数の復号処理によって復号された１次元配列に対して逆スキャンを行うことにより係数行列を再現する。逆スキャン部１２４の逆スキャンには、例えば、非特許文献１、２の技術を採用することができる。
【０２５２】
なお、逆スキャン部１２４は、対象ブロックの各対象復号領域について復号処理が完了すると、当該復号処理により得られた係数行列等の係数データを含む復号済みＴＵ情報ＴＵＩ’を出力する。
【０２５３】
（可変長復号部）
次に、図１を用いて可変長復号部３００の構成についてさらに詳しく説明する。図１は、可変長復号部３００の構成例について示す機能ブロック図である。
【０２５４】
図１に示すように、可変長復号部３００は、コード番号復号部３１０、コード番号変換部３２０、ＶＬＣ方法選択部３３０、およびコード番号変換設定部３４０を備える。
【０２５５】
コード番号復号部３１０は、ＶＬＣ方法選択部３３０に指定されたＶＬＣ方法を用いて、入力される符号化データから、コード番号を復号するものである。コード番号復号部３１０は、復号したコード番号をコード番号変換部およびコード番号変換設定部３４０に供給する。
【０２５６】
コード番号変換部３２０は、コード番号変換設定部３４０によって指定されたコード番号変換方法を用いて、コード番号を、シンタックス値に変換するものである。以下では、コード番号を｛ｒｕｎ，ｌｅｖ｝に変換する例について説明する。しかしながら、コード番号変換部３２０がコード番号から変換するシンタックス値の種類に制限はない。
【０２５７】
ＶＬＣ方法選択部３３０は、入力されるシンタックス種別に指定されたシンタックスに応じて、符号化データからコード番号を復号するのに用いるＶＬＣ方法を設定し、設定したＶＬＣ方法をコード番号復号部３１０に通知する。
【０２５８】
コード番号変換設定部３４０は、入力されるシンタックス種別に指定されたシンタックスに応じて、コード番号をシンタックス値に変換するのに用いるコード番号変換方法を設定し、設定したコード番号変換方法をコード番号変換部３２０に通知する。
【０２５９】
以下において、［Ａ］コード番号変換設定部３４０、［Ｂ］ＶＬＣ方法選択部３３０の順で、それぞれの詳細についてさらに説明する。
【０２６０】
［Ａ］コード番号変換設定部について
図１に示すように、コード番号変換設定部３４０は、中間コード番号算出部３４１と、中間最大ラン算出部３４２と、ラン値設定部３４３と、パラメータ修正部３４４と、コード番号変換テーブル３４５と、ｒｕｎＴａｂｌｅ３４６とを備える。
【０２６１】
中間コード番号算出部３４１は、コード番号復号部３１０から供給されるコード番号を、所定の計算式に適用することにより、コード番号変換方法を設定するための中間コード番号を算出する。中間コード番号算出部３４１は、算出した中間コード番号をラン値設定部３４３に供給する。
【０２６２】
中間最大ラン算出部３４２は、復号中の係数の位置におけるｒｕｎの最大値であるｍａｘｒｕｎを、所定の計算式に適用することにより、コード番号変換方法を設定するための中間最大ランを算出する。
【０２６３】
なお、ｍａｘｒｕｎは、周波数領域において、ＤＣ成分の位置から直近に処理された非ゼロ係数の位置までのスキャン順に沿った距離に対応するパラメータである。また、ｍａｘｒｕｎは、復号中の係数からＤＣ係数までの間にレベルが０の係数しか存在しない場合におけるｒｕｎの値と表現することもできる。中間最大ラン算出部３４２は、算出した中間最大ランをラン値設定部３４３に供給する。
【０２６４】
ラン値設定部３４３は、中間コード番号および中間最大ランに応じて、コード番号変換の変換に用いるコード番号変換方法を設定する。
【０２６５】
パラメータ修正部３４４は、コード番号変換方法を設定するためのパラメータを修正するものである。パラメータ修正部３４４は、例えば、イントラ予測の場合に用いられるコード番号変換テーブルにおけるインターリーブの開始位置を示すｌｒｇ１ｐｏｓをｌｅｖの復号結果に応じて修正する。インターリーブの開始位置が異なれば、コード番号変換テーブルの内容が異なるため、ｌｒｇ１ｐｏｓは、どのようなコード番号変換テーブル３４５を用いてコード番号変換を行うかを決定するパラメータであるといえる。
【０２６６】
コード番号変換テーブル３４５は、コード番号と、シンタックス値とを対応付けるためのテーブルである。以下では、例示的に、コード番号変換テーブル３４５においてコード番号に対応付けられているシンタックスが、｛ｒｕｎ，ｌｅｖ｝である場合について説明する。
【０２６７】
なお、コード番号変換テーブル３４５は、ｌｒｇ１ｐｏｓ等のパラメータに応じて複数用意されてもよい。また、コード番号変換テーブル３４５は、復号時においてｌｒｇ１ｐｏｓ等のパラメータに応じて異なる内容のテーブルが生成されるように構成されていてもよい。
【０２６８】
また、コード番号変換テーブル３４５は、コード番号変換部３２０がコード番号から、シンタックス値を導出するときに、コード番号変換方法に従って参照される。
【０２６９】
ｒｕｎＴａｂｌｅ３４６は、ｍａｘｒｕｎおよび中間コード番号の組と、ｒｕｎとを対応付けるテーブルである。
【０２７０】
［Ａ１］以下において、ｒｕｎＴａｂｌｅを用いた｛ｒｕｎ，ｌｅｖ｝の復号について説明する。
【０２７１】
（コード番号変換テーブルの具体例）
［Ａ１−１］  図６〜図８を用いて、コード番号と｛ｒｕｎ，ｌｅｖ｝とが対応付けられているコード番号変換テーブル３４５の具体的な構成について説明すると次のとおりである。
【０２７２】
図６〜図８は、コード番号変換テーブル３４５の具体的な構成について示す図である。図６は、予測方法がイントラ予測の場合に用いられるテーブルを示している。また、図７は、予測方法が、インター予測であり、直近に処理された非ゼロ変換係数の位置がスキャン順でＤＣ成分に近い場合、具体的には、“ｍａｘｒｕｎ＜２８”を満たす場合に用いられるテーブルを示している。そして、図８は、予測方法が、インター予測であり、“ｍａｘｒｕｎ＞＝２８”を満たす場合に用いられるテーブルを示している。
【０２７３】
［イントラ予測の場合］
まず、図６を用いて、予測方法がイントラ予測の場合に用いられるテーブルについて説明する。図６に示すように、コード番号変換テーブル３４５は、ｃｎ、ｌｅｖ、およびｒｕｎの３行からなるテーブルである。なお、テーブル内では、ｍａｘｒｕｎを“ｍ”と表記している。
【０２７４】
ここで、ｃｎには、「０」から「２ｍ＋２」までのコード番号が定義される。図示のように、ｃｎでは、最も左の“０”から、順番に、最も右“２ｍ＋２”まで定義されている。
【０２７５】
ｌｅｖおよびｒｕｎには、ｃｎに対応する｛ｒｕｎ，ｌｅｖ｝の値が定義されている。例えば、ｃｎ＝０のとき、｛ｒｕｎ，ｌｅｖ｝＝｛０，０｝である。
【０２７６】
図６に示すように、ｃｎがｌｒｇ１ｐｏｓより小さい場合、すなわち０≦ｃｎ＜ｌｒｇ１ｐｏｓの間では、ｃｎに対して、ｌｅｖ＝０となる｛ｒｕｎ，ｌｅｖ｝が定義される。ｌｒｇ１ｐｏｓは、ｌｅｖ＝１にどの程度小さいｃｎを対応付けるかを示すパラメータである。
【０２７７】
また、０≦ｃｎ＜ｌｒｇ１ｐｏｓを満たすｃｎに対して、ｒｕｎは、ｃｎが大きくなるにつれて、より大きくなるように定義される。
【０２７８】
そして、ｌｒｇ１ｐｏｓ≦ｃｎ＜２ｍ＋４−ｌｒｇ１ｐｏｓを満たすｃｎに対して、ｃｎに対して、ｌｅｖ＝１と、ｌｅｖ＝０とがｒｕｎの短い順にインターリーブされる。なお、インターリーブとは、ｃｎの昇順または降順で、ｌｅｖ＝１と、ｌｅｖ＝０とが交互に定義されることをさす。つまり、ｌｒｇ１ｐｏｓは、ｌｅｖ＝１を対応付ける最も小さなｃｎを示しており、ｌｒｇ１ｐｏｓが小さい程、より小さいｃｎをｌｅｖ＝１に対応付けることになる。
【０２７９】
さらに、２ｍ＋４−ｌｒｇ１ｐｏｓ≦ｃｎ≦２ｍ＋２を満たすｃｎに対しては、ｌｅｖ＝１となる｛ｒｕｎ，ｌｅｖ｝が定義されている。
【０２８０】
なお、イントラ予測の場合には、ｌｅｖ＝１の発生確率がインター予測に較べて高い状況が発生しやすいため、ｌｒｇ１ｐｏｓを用いることでｌｅｖ＝１に適応的に小さいｃｎを割り当てる処理を行う。
【０２８１】
［インター予測、ｍａｘｒｕｎ＜２８の場合］
次に、図７を用いて、予測方法が、インター予測であり、“ｍａｘｒｕｎ＜２８”を満たす場合に用いられるコード番号変換テーブルについて説明する。
【０２８２】
図７に示すように、コード番号変換では、ｃｎ＝０から、ｃｎ＝ｍ＋１までは、ｃｎに対して、ｌｅｖ＝０となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｃｎ＝ｍ＋２からｃｎ＝２ｍ＋２までは、ｃｎに対して、ｌｅｖ＝１となる｛ｒｕｎ，ｌｅｖ｝が定義される。
【０２８３】
また、各ｃｎにおけるｒｕｎには、ｒｕｎＴａｂｌｅ３４６から求めた値ｒ［ｃｎ’］が定義される。すなわち、ｃｎにおけるｒｕｎの値ｒ［ｃｎ’］は、次の式（１）から求められる。
【０２８４】
ｒ［ｃｎ’］  ＝  ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’］  ・・・  （１）
なお、式（１）において、ｃｎ’は、ｃｎから導出された中間コード番号を示している。また、ｒｕｎＴａｂｌｅでは、ｍａｘｒｕｎの値に応じた、ｒｕｎとｃｎ’との変換が規定されている。具体的には、ｒｕｎＴａｂｌｅでは、小さいｃｎ’に出現確率の高いｒｕｎが対応している。ｒｕｎＴａｂｌｅの具体的構成については後述する。
【０２８５】
なお、インター予測でｍａｘｒｕｎ＜２８の場合には、直近に処理された非ゼロ係数の位置を示すｍａｘｒｕｎの値に依存してｒｕｎの発生確率が変化する。そのため、ｒｕｎＴａｂｌｅを用いることで、発生確率の高いｒｕｎに小さいｃｎを割り当てる処理を行う。
【０２８６】
［インター予測、ｍａｘｒｕｎ≧２８の場合］
次に、図８を用いて、予測方法が、インター予測であり、“ｍａｘｒｕｎ＞＝２８”を満たす場合に用いられるコード番号変換テーブルについて説明する。
【０２８７】
図８に示すように、コード番号変換テーブルでは、ｃｎ＝０から、ｃｎ＝ｍ＋１までは、ｃｎに対して、ｌｅｖ＝０となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｃｎ＝０〜ｍ＋１それぞれに対して、ｒｕｎ＝０〜ｍ＋１が定義される。
【０２８８】
そして、図８に示すように、ｃｎ＝ｍ＋２から、ｃｎ＝２ｍ＋２までは、ｃｎに対して、ｌｅｖ＝１となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｃｎ＝ｍ＋２〜２ｍ＋２それぞれに対して、ｒｕｎ＝０〜ｍが定義される。
【０２８９】
なお、インター予測でｍａｘｒｕｎ≧２８の場合には、ｒｕｎの発生確率のｍａｘｒｕｎへの依存がｍａｘｒｕｎ＜２８の場合に較べて小さく、小さい値のｒｕｎが発生しやすい。そのため、ｒｕｎＴａｂｌｅを用いずに、発生確率の高い小さい値のｒｕｎにより小さいｃｎを割り当てる処理を行う。
【０２９０】
（ｒｕｎＴａｂｌｅの具体例）
図９および図１０を用いて、ｒｕｎＴａｂｌｅ３４６の構成例について示すと次のとおりである。図９および図１０は、ｒｕｎＴａｂｌｅ３４６の構成例について示す図である。図９および図１０では、ｒｕｎＴａｂｌｅ３４６を、ｒｕｎ変換エントリを格納する配列として表現している。
【０２９１】
図９は、ｍａｘｒｕｎの値すべてについて、ｒｕｎ変換エントリを保持した場合のｒｕｎＴａｂｌｅ３４６Ａを示している。また、図１０は、ｍａｘｒｕｎについて、間引かれたｒｕｎ変換エントリを保持する場合のｒｕｎＴａｂｌｅ３４６Ｂを示している。
【０２９２】
まず、図９を用いて、ｒｕｎＴａｂｌｅ３４６Ａの一構成例について説明する。なお、図９では、説明の便宜上、ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’］を囲む枠の左側に、行番号を付し、下側に、要素番号を付している。そして、行番号は、ｍａｘｒｕｎに対応しており、要素番号は、ｃｎ’に対応している。
【０２９３】
ｍａｘｒｕｎに応じてｒｕｎの確率分布は異なるので、ｒｕｎＴａｂｌｅ３４６Ａでは、ｍａｘｒｕｎごとにｒｕｎ変換エントリを保持している。
【０２９４】
ｍａｘｒｕｎ＝０のときは、行番号「０」におけるｒｕｎ変換エントリ｛１，０｝が取り出される。
【０２９５】
ここで、ｃｎ’＝０のときは、当該ｒｕｎ変換エントリの０番目の要素である“１”がｒｕｎとして特定される。また、ｃｎ’＝１のときは、１番目の要素である“０”がｒｕｎとして特定される。
【０２９６】
なお、ｒｕｎの値が、ｍａｘｒｕｎ＋１の場合、スキャン順で復号中の係数の次の位置からＤＣ成分の位置までの全ての係数のレベルが０であることを表す。つまり、ｍａｘｒｕｎ＝０、ｃｎ’＝０の場合、ｒｕｎ＝１（＝ｍａｘｒｕｎ＋１）であるので、ＤＣ成分のレベルは０である。
【０２９７】
また、ｍａｘｒｕｎ＝１１のときは、行番号「１１」におけるｒｕｎ変換エントリ｛１２，０，３，…，９｝が取り出される。
【０２９８】
このように、ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’］を用いれば、ｍａｘｒｕｎおよびｃｎ’の２つのパラメータから、ｒｕｎを特定することができる。
【０２９９】
次に、図１０を用いて、ｒｕｎＴａｂｌｅ３４６Ｂの一構成例について説明する。なお、図１０では、図９と同様に、ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ’］［ｃｎ’］を囲む枠の左側に、行番号を付し、下側に、要素番号を付している。そして、行番号は、ｍａｘｒｕｎ’に対応しており、要素番号は、ｃｎ’に対応している。
【０３００】
ｒｕｎＴａｂｌｅ３４６Ｂは、行番号「０」から「１０」までは、ｒｕｎＴａｂｌｅ３４６Ａと同様に構成されている。
【０３０１】
ｒｕｎｔａｂｌｅ３４６Ｂは、行番号「１１」から「１８」までは、ｒｕｎＴａｂｌｅ３４６Ａの行番号「１１」から「２７」の定義を間引いた構成になっている。
【０３０２】
なお、ｃｎ’およびｍａｘｒｕｎ’の算出手法については、後述する。
【０３０３】
（コード番号変換設定部における処理の流れ）
以下では、予測方式が、インター予測であり、ｍａｘｒｕｎ＜２８である場合のコード番号変換設定部３４０における処理について説明する。
【０３０４】
（ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’］を用いる場合）
まず、コード番号変換設定部３４０がｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’］を用いる場合における処理について説明する。コード番号変換設定部３４０では、次のようにして、コード番号変換設定が行われる。
【０３０５】
中間コード番号算出部３４１が、中間コード番号ｃｎ’を算出する。中間コード番号算出部３４１は、中間コード番号ｃｎ’を次の式（２）を用いて算出する。すなわち、
ｃｎ’＝（ｃｎ＞ｍａｘｒｕｎ＋１）？ｃｎ：ｃｎ−ｍａｘｒｕｎ−１  ・・・  （２）
なお、式（２）における、ｘ？ｙ：ｚ形式の表記は、以下のような論理演算を表している。
「ｘが“真”または“０でない”場合、ｙの値を評価し、さもなくばｚの値を評価する。」
つまり、式（２）では、（ｃｎ＞ｍａｘｒｕｎ＋１）が評価され、これが“真”または“０でない”場合、ｃｎの値が、ｃｎ’に代入され、さもなくばｃｎ−ｍａｘｒｕｎ−１の値が、ｃｎ’に代入される。
【０３０６】
続いて、ラン値設定部３４３が、ｍａｘｒｕｎと、ｃｎ’とを用いて、ｒｕｎＴａｂｌｅ３４６Ａを参照し、対応するｒｕｎを取得する。また、ラン値設定部３４３は、取得したｒｕｎに基づいて、コード番号変換テーブル３４５を設定する。
【０３０７】
（ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ’］［ｃｎ’］を用いる場合）
次に、図５を用いて、コード番号変換設定部３４０がｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ’］［ｃｎ’］を用いる場合における処理について説明する。図５は、コード番号変換設定部３４０におけるコード番号変換設定処理について例示したフローチャートである。
【０３０８】
図５に示すように、コード番号変換設定部３４０において、コード番号変換設定処理が開始されると、中間コード番号算出部３４１が、中間コード番号ｃｎ’を算出する（Ｓ１）。
【０３０９】
中間コード番号算出部３４１が、中間コード番号ｃｎ’を算出する手法については、既に説明したとおりである。
【０３１０】
続いて、中間最大ラン算出部３４２が、中間最大ランｍａｘｒｕｎ’を算出する（Ｓ１２）。
【０３１１】
より詳細には、中間最大ラン算出部３４２は、次の式（３）を用いて中間最大ランｍａｘｒｕｎ’を算出する。
【０３１２】
ｍａｘｒｕｎ’＝（ｍａｘｒｕｎ＜１０）？ｍａｘｒｕｎ：１０＋（ｍａｘｒｕｎ−１０）＞＞１  ・・・  （３）
例えば、ｍａｘｒｕｎ＝１０である場合、１０＋（ｍａｘｒｕｎ−１０）＞＞１が評価されて、１０＋（１０−１０）＞＞１により、ｍａｘｒｕｎ’＝１０が得られる。
【０３１３】
また、ｍａｘｒｕｎ＝１１である場合、１０＋（ｍａｘｒｕｎ−１０）＞＞１が評価されて、１０＋（１１−１０）＞＞１により、ｍａｘｒｕｎ’＝１０が得られる。
【０３１４】
このように、ｍａｘｒｕｎ＝１０と、ｍａｘｒｕｎ＝１１とで同じ値のｍａｘｒｕｎ’が得られる。
【０３１５】
続いて、ラン値設定部３４３が、中間コード番号ｃｎ’と、中間最大ランｍａｘｒｕｎ’とを用いて、ｒｕｎＴａｂｌｅ３４６Ｂを参照して、ｒｕｎを特定し、特定したｒｕｎをコード番号変換テーブル３４５に設定する（Ｓ１３）。
【０３１６】
ここで、図１０に示した例を再び参照して、ｒｕｎの特定について具体的に説明すると次のとおりである。例えば、ｍａｘｒｕｎ＝１０と、ｍａｘｒｕｎ＝１１との場合において、ラン値設定部３４３は、式（３）により、ｍａｘｒｕｎ’＝１０を得る。
【０３１７】
よって、ｍａｘｒｕｎ＝１０またはｍａｘｒｕｎ＝１１の場合、ラン値設定部３４３は、ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ’］［ｃｎ’］の行番号「１０」のｒｕｎ変換エントリ｛１１，１，０，…，１２｝を取り出す。
【０３１８】
ここで、例えば、ｃｎ’＝２である場合、ラン値設定部３４３は、当該ｒｕｎ変換エントリの３番目の要素である“０”をｒｕｎとして特定する。
【０３１９】
（中間コード番号に関する補足事項）
なお、ｃｎ’について補足しておくと次のとおりである。以上に示したように、｛ｒｕｎ，ｌｅｖ｝の復号において、ｃｎは、ｒｕｎとｌｅｖとの組に対応付けられる。一方、ｃｎ’は、ｒｕｎのみに対応付けられている。また、ｌｅｖの値が同一であれば、ｃｎ’が小さいほど、ｃｎの値も小さいという性質を有する。
【０３２０】
上述のとおり、ｒｕｎＴａｂｌｅは、ｍａｘｒｕｎの値に応じた、ｒｕｎとｃｎ’との変換を規定する。
【０３２１】
そこで、発生頻度の高いｒｕｎを小さいｃｎに対応付けるためには、ｃｎとｃｎ’との関係により、発生確率の高いｒｕｎを小さい値のｃｎ’に対応付けることになる。
【０３２２】
以上から、ｃｎおよびｃｎ’は、共に、発生確率の高いｓｙｎｔａｘ値に対応付けられるものほどより小さな値となるという性質を有する。
【０３２３】
［作用・効果］
以上に示したように、動画像復号装置１は、｛ｒｕｎ，ｌｅｖ｝を、符号化データに含まれるコード番号ｃｎを参照して復号する動画像復号装置１において、ｍａｘｒｕｎとコード番号ｃｎとの組み合わせをｒｕｎの値に対応付けるｒｕｎＴａｂｌｅ３４６であって、所定の上記組み合わせに対応するｒｕｎが間引かれているｒｕｎＴａｂｌｅ３４６を参照し、当該所定の組み合わせに対応するｒｕｎの値を、当該対応テーブルにおいて間引かれていない何れかのランの値に設定するラン値設定部３４３を備えている。上記構成による作用・効果について説明すると次のとおりである。
【０３２４】
図９に示したｒｕｎＴａｂｌｅ３４６Ａは、ｒｕｎ変換エントリの要素の数が、総計４３４（＝２＋３＋…＋２８＋２９）になる。
【０３２５】
これに対して、図１０に示したｒｕｎＴａｂｌｅ３４６Ｂは、ｒｕｎ変換エントリの要素の数が、総計２５４になる。よって、ｒｕｎＴａｂｌｅ３４６Ｂでは、ｒｕｎ変換エントリの要素の数が、ｒｕｎＴａｂｌｅ３４６Ａに比べて１８０個少ない。
【０３２６】
図１１に示すｒｕｎＴａｂｌｅ３４６Ａでは、ｒｕｎＴａｂｌｅ３４６Ｂにおいて間引かれている行（ｒｕｎ変換エントリ）を網掛けにて表現している。つまり、同図に示すｒｕｎＴａｂｌｅ３４６Ａにおいて網掛けをした部分が、ｒｕｎＴａｂｌｅ３４６Ｂによるメモリ削減効果を表している。
【０３２７】
なお、符号化効率への影響を検討すると次のとおりである。ｒｕｎＴａｂｌｅでは、ｍａｘｒｕｎの値に応じて短いコード番号を出現頻度の高いｒｕｎに割り当てる。このため、２つのｍａｘｒｕｎの値が近い場合、これらに割り当てられるｒｕｎの出現頻度は、類似したものになる。よって、互いに値が近い複数のｍａｘｒｕｎに対して同一のテーブルにおける同一の要素によりコード番号とｒｕｎとの間の変換を行っても、符号化効率の低下は少ない。
【０３２８】
また、コード番号変換設定において用いるｒｕｎＴａｂｌｅ３４６を、望まれる符号化効率の水準に応じて、ｒｕｎＴａｂｌｅ３４６Ａと、ｒｕｎＴａｂｌｅ３４６Ｂとの間で切り替えてもよい。
【０３２９】
また、ｒｕｎＴａｂｌｅ３４６Ａにおいて間引かれる対象となるｒｕｎ変換エントリは、ｍａｘｒｕｎの値が１０以上のものについてであったが、これに限られない。所定の値以上のｍａｘｒｕｎについて、ｒｕｎ変換エントリを間引いてもよい。
【０３３０】
また、上記の例ではｒｕｎ変換エントリを１個おきに間引いているが、これに限られない。例えば、Ｎ個の連続するｒｕｎ変換エントリのうちＮ−１個を間引いてもよい。さらに、間引く間隔は必ずしも一定である間隔である必要はない。特に、小さいｍａｘｒｕｎに対応するエントリほど間引きの間隔を小さくし、大きいｍａｘｒｕｎに対応するエントリほど間引きの間隔を大きくすることが好ましい。
【０３３１】
［変形例］
［１−１］連続するコード番号に同一のｒｕｎ’を割り当てる
［Ａ１−２］  以下において、図１２を用いて、コード番号変換設定部３４０の好ましい変形例について説明する。中間ランｒｕｎ’を算出し、連続するコード番号に同一の中間ｒｕｎ’が割り当てられる構成としてもよい。また、中間ランｒｕｎ’を調整してｒｕｎを算出し、連続するコード番号に連続するｒｕｎが割り当てられるようにしてもよい。
【０３３２】
この場合、中間コード番号算出部３４１、ラン値設定部３４３およびｒｕｎＴａｂｌｅ３４６を次のように構成変更すればよい。
【０３３３】
まず、中間コード番号算出部３４１は、中間コード番号ｃｎ’をさらに次の式（４）に適用して、中間コード番号ｃｎ’’を算出する。
【０３３４】
ｃｎ’’＝（ｃｎ’＜ｔｈ）？ｃｎ’：ｔｈ＋（（ｃｎ’−ｔｈ）＞＞１）  ・・・（４）
ここで、ｔｈは、要素を間引く度合いを示す閾値である。以下では、一例として、ｔｈ＝１として説明する。なお、式（４）は、閾値ｔｈ以上のｃｎ’を２つに１つ間引く処理を表す。すなわち、閾値ｔｈが小さければ、閾値ｔｈが大きい場合に較べてより多くのｃｎ’が間引かれる。
【０３３５】
また、ｒｕｎＴａｂｌｅ３４６は、図１２に示すように構成変更する。図１２は、ｒｕｎＴａｂｌｅ３４６の変形例を示している。なお、図１２では、図１０と同様に、ｒｕｎＴａｂｌｅ［ｍａｘｒｕｎ］［ｃｎ’’］を囲む枠の左側に、行番号を付し、下側に、要素番号を付している。そして、行番号は、最大ランｍａｘｒｕｎに対応しており、要素番号は、中間コード番号ｃｎ’’に対応している。
【０３３６】
図１０に示すｒｕｎＴａｂｌｅ３４６Ｂでは、ｒｕｎ変換エントリを単位として間引きが行われていた。これにより、複数の最大ランｍａｘｒｕｎに対して、同一のｒｕｎ変換エントリが用いられていた。これに対して図１２に示すｒｕｎＴａｂｌｅ３４６Ｃでは、ｒｕｎ変換エントリに含まれる要素を単位として間引きが行われている。これにより、複数の中間コード番号に対して、同一の要素が割り当てられる。またｒｕｎＴａｂｌｅ３４６Ｃでは、ランｒｕｎを算出するための中間ランｒｕｎ’が規定されている。
【０３３７】
また、ラン値設定部３４３は、中間コード番号ｃｎ’’と、最大ランｍａｘｒｕｎとを用いて、ｒｕｎＴａｂｌｅ３４６Ｃを参照して、中間ランｒｕｎ’を算出し、さらに算出した中間ランｒｕｎ’を次の式（５）に適用して、ランｒｕｎを算出する。
【０３３８】
ｒｕｎ＝（ｒｕｎ’＜ｔｈ）？ｒｕｎ’：（ｒｕｎ’＋（（ｃｎ’−ｔｈ）％２））  ・・・（５）
なお、式（５）における閾値ｔｈは、式（４）と同じ閾値を表す。
【０３３９】
ラン値設定部３４３は、このようにして算出したランｒｕｎをコード番号変換テーブル３４５に設定する。ラン値設定部３４３は、このように中間コード番号を入力として、中間ランｒｕｎ’を算出し、さらに中間ランｒｕｎ’からランｒｕｎを算出し、コード番号変換方法を設定することができる。
【０３４０】
（処理の流れ）
次に、図１３を用いて、本変形例に係るコード番号変換設定部３４０におけるコード番号変換設定処理について説明する。図１３は、本変形例に係るコード番号変換設定部３４０におけるコード番号変換設定処理について例示したフローチャートである。
【０３４１】
図１３に示すように、コード番号変換設定部３４０において、コード番号変換設定処理が開始されると、中間コード番号算出部３４１が、コード番号ｃｎから中間コード番号ｃｎ’を算出し、さらに中間コード番号ｃｎ’から中間コード番号ｃｎ’’を算出する（Ｓ２１）。
【０３４２】
続いて、ラン値設定部３４３は、ｒｕｎ’を算出する（Ｓ２２）。さらに、ラン値設定部３４３は、算出したｒｕｎ’からｒｕｎを特定し、特定したｒｕｎをコード番号変換テーブル３４５に設定する（Ｓ２３）。
【０３４３】
［作用・効果］
上記構成によれば、互いに近い値のランｒｕｎに互いに近い値のコード番号を対応付けることができる。これにより、ｒｕｎＴａｂｌｅのサイズを削減することができる。
【０３４４】
より具体的には、図１２に示したｒｕｎＴａｂｌｅ３４６Ｃは、ｒｕｎ変換エントリの要素の数が、総計２３８になる。よって、ｒｕｎＴａｂｌｅ３４６Ｃでは、ｒｕｎ変換エントリの要素の数が、ｒｕｎＴａｂｌｅ３４６Ａに比べて１９６個少ない。
【０３４５】
図１４に示すｒｕｎＴａｂｌｅ３４６Ａでは、ｒｕｎＴａｂｌｅ３４６Ｃにおいて間引かれている要素を網掛けにて表現している。つまり、同図に示すｒｕｎＴａｂｌｅ３４６Ａにおいて網掛けをした部分が、ｒｕｎＴａｂｌｅ３４６Ｃによるテーブルサイズの削減効果を表している。
【０３４６】
なお、符号化効率への影響を検討すると次のとおりである。ｒｕｎＴａｂｌｅ３４６Ａにおいて、特定のｒｕｎＴａｂｌｅのｒｕｎ変換エントリに注目すると、値の近いｒｕｎの発生確率は、類似している。
【０３４７】
よって、値の近い２つのｒｕｎは、ｒｕｎ変換エントリ内において格納される位置が近くなる。例えば、連続する値を持つ２つのｒｕｎ（ｒｕｎ＝１と、ｒｕｎ＝２）は、連続する要素としてｒｕｎ変換エントリに格納される可能性が高い。
【０３４８】
これは、ｒｕｎの値が近い（ｒｕｎの長さが近い）ということは、次の非ゼロ変換係数の位置が周波数領域上で近い距離にあることを意味するためである。
【０３４９】
このため、互いに近い値の２つのｒｕｎを互いに近い値のコード番号ｃｎに割り当てても、符号化効率の低下は少ない。
【０３５０】
なお、ｒｕｎＴａｂｌｅ３４６Ｃにおいて、ｒｕｎＴａｂｌｅ３４６Ｂのように所定の行番号を間引いてもよい。
【０３５１】
［１−２］コード番号変換テーブルの変形例
次に、図１５を用いて、コード番号変換テーブルの別の例について説明する。図１５は、コード番号と、｛ｒｕｎ，ｌｅｖ｝との間の変換を、図６に示したようなテーブルの形式でなく、ｃｎから、｛ｒｕｎ，ｌｅｖ｝を導出するための算出式の形式にて実現する場合について示している。
【０３５２】
すなわち、図１５に示すように、ｃｎの範囲が、０≦ｃｎ＜ｌｒｇ１ｐｏｓであるときは、ｌｅｖ＝０であり、ｒｕｎ＝ｃｎである。
【０３５３】
また、同図に示すように、ｃｎの範囲が、ｌｒｇ１ｐｏｓ≦ｃｎ＜２ｍ＋４−ｌｒｇ１ｐｏｓであるときは、次の追加条件に従って、コード番号と、｛ｒｕｎ，ｌｅｖ｝とが対応付けられる。
【０３５４】
まず、（ｃｎ＋ｌｒｇ１ｐｏｓ）％２＝＝０である場合、ｌｅｖ＝１であり、ｒｕｎ＝（ｃｎ−ｌｒｇ１ｐｏｓ）＞＞１である。なお、x％yは、xをyで除した余りを求める計算式である。
【０３５５】
また、（ｃｎ＋ｌｒｇ１ｐｏｓ）％２＝＝１である場合、ｌｅｖ＝１であり、ｒｕｎ＝（ｃｎ−ｌｒｇ１ｐｏｓ−１）＞＞１である。
【０３５６】
また、同図に示すように、ｃｎの範囲が、２ｍ＋４−ｌｒｇ１ｐｏｓ≦ｃｎであるときは、ｌｅｖ＝１であり、ｒｕｎ＝ｃｎ−ｍ−２である。
【０３５７】
［Ａ２］  以下では、パラメータ修正部３４４によるパラメータｌｒｇ１ｐｏｓの修正について説明する。
【０３５８】
（パラメータ修正部によるパラメータの修正）
上述のとおりパラメータ修正部３４４は、ｌｅｖの復号結果に応じて、ｌｒｇ１ｐｏｓを修正する。ここで、再び、図６を参照しながら説明すると以下のとおりである。
【０３５９】
まず、パラメータ修正部３４４は、可変長復号部３００が復号したｌｅｖが１の場合、次の復号に使用するｌｒｇ１ｐｏｓをｍａｘ（０，ｌｒｇ１ｐｏｓ−１）とする。ここで、ｍａｘ（ｘ，ｙ）は、xおよびyのうち大きい値を返す関数である。すなわち、図６を用いて説明すると、復号したｌｅｖが１の場合、パラメータ修正部３４４は、ｌｒｇ１ｐｏｓが０より大きければ、ｌｒｇ１ｐｏｓを１つ左にシフトさせる。
【０３６０】
また、パラメータ修正部３４４は、可変長復号部３００が復号したｌｅｖが０の場合、次の復号に使用するｌｒｇ１ｐｏｓをｍｉｎ（２８，ｌｒｇ１ｐｏｓ＋１）とする。ここで、ｍｉｎ（ｘ，ｙ）は、xおよびyのうち小さい値を返す関数である。すなわち、図６を用いて説明すると、復号したｌｅｖが０の場合、パラメータ修正部３４４は、ｌｒｇ１ｐｏｓが２８より小さければ、ｌｒｇ１ｐｏｓを１つ右にシフトさせる。
【０３６１】
［処理の流れ］
次に、図１６用いて、パラメータを修正する処理の流れについて説明する。図１６は、パラメータを修正する処理の流れの一例について示すフローチャートである。
【０３６２】
図１６示すように、パラメータを修正する処理が開始されると、まず、パラメータ修正部３４４が、復号されたｌｅｖの値を判定する（Ｓ３１）。
【０３６３】
ここで、ｌｅｖの値が１の場合、パラメータ修正部３４４は、ｌｒｇ１ｐｏｓの値を小さくする（Ｓ３２）。一方、ｌｅｖの値が０の場合、パラメータ修正部３４４は、ｌｒｇ１ｐｏｓの値を大きくする（Ｓ３３）。
【０３６４】
［作用・効果］
以上に示したように、動画像復号装置１は、画像データの符号化データから復号したコード番号ｃｎをシンタックスの種別に応じてシンタックス値に変換する動画像復号装置１において、復号された上記コード番号ｃｎを、｛ｒｕｎ，ｌｅｖ｝に対応付けるコード番号変換テーブル３４５と、１より大きい非ゼロ変換係数の値をどの程度小さいコード番号に割り当てるかを示す割り当て指定を設定するパラメータ修正部３４４と、を備え、パラメータ修正部３４４は、復号されたｌｅｖの値に応じて上記割り当て指定を変更する。
【０３６５】
以上の構成によれば、ｌｅｖ＝１が復号された場合にｌｒｇ１ｐｏｓの値を小さくし、ｌｅｖ＝０が復号された場合にｌｒｇ１ｐｏｓの値を大きくすることができる。
【０３６６】
上述のとおり、ｌｒｇ１ｐｏｓは、ｌｅｖ＝１にどの程度の小さいｃｎを対応付けるかを示すパラメータである。よって、ｌｒｇ１ｐｏｓが小さければ、ｌｅｖ＝１に比較的小さいｃｎを対応付ける。
【０３６７】
このため、ｌｒｇ１ｐｏｓが小さいほど、ｌｅｖ＝１の発生確率が高い状況に適したコード番号変換テーブルが選択される。
【０３６８】
一方、ｌｒｇ１ｐｏｓが大きいほど、ｌｅｖ＝０の発生確率が高い状況に適したコード番号変換テーブルが選択される。
【０３６９】
ｌｅｖ＝１が復号された場合、次の復号処理においてｌｅｖ＝１の発生確率が比較的高いといえる。上記構成によれば、このような場合において、ｌｒｇ１ｐｏｓを小さくして、ｌｅｖ＝１の発生確率が高い状況に適した変換テーブルを選択することができる。
【０３７０】
一方、ｌｅｖ＝０が復号された場合、次の復号処理においてｌｅｖ＝０の発生確率が比較的高いといえる。上記構成によれば、このような場合において、ｌｒｇ１ｐｏｓを大きくして、ｌｅｖ＝０の発生確率が高い状況に適した変換テーブルを選択することができる。
【０３７１】
その結果、ｌｅｖの発生確率に適した変換テーブルを選択して、コード番号と、｛ｒｕｎ，ｌｅｖ｝との間の変換を行うことができ、これにより符号化効率が向上する。
【０３７２】
［１−３］パラメータ修正部の変形例
図１７を用いて、パラメータ修正部３４４の変形例について説明する。上記の説明では、パラメータ修正部３４４が、ｌｒｇ１ｐｏｓを修正する例について説明した。しかしながら、これに限られず、パラメータ修正部３４４が修正するパラメータは、ｌｅｖの確率分布を反映する別のパラメータであってもかまわない。
【０３７３】
例えば、パラメータ修正部３４４が修正するパラメータは、異なるｌｅｖの確率分布に適した複数の規定のテーブルの中のいずれかのテーブルを指定するインデックスであってもよい。
【０３７４】
具体的には、図１７に示すように、パラメータ修正部３４４は、ｌｅｖの確率分布に応じて構成されている３つのコード番号変換テーブルＴ１１、Ｔ１２、およびＴ１３を切り換えるインデックスｃｎＴｂｌＩｄｘを修正してもよい。ｃｎＴｂｌＩｄｘと、コード番号変換テーブルＴ１１、Ｔ１２、およびＴ１３との対応関係について説明すると次のとおりである。
【０３７５】
まず、ｃｎＴｂｌＩｄｘ＝０の場合、コード番号変換テーブルＴ１１が選択される。コード番号変換テーブルＴ１１では、ｃｎ＝１から、ｃｎ＝ｍまでは、ｃｎに対して、ｌｅｖ＝１となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｃｎ＝０〜ｃｎ＝ｍに対して、それぞれ、ｒｕｎ＝０〜ｍが定義される。
【０３７６】
また、ｃｎ＝ｍ＋１から、ｃｎ＝２ｍ＋２までは、ｃｎに対して、ｌｅｖ＝０となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｃｎ＝ｍ＋１〜２ｍ＋２ｃｎ＝１に対して、それぞれ、ｒｕｎ＝０〜ｍ＋１が定義される。
【０３７７】
続いて、ｃｎＴｂｌＩｄｘ＝１の場合、コード番号変換テーブルＴ１２が選択される。コード番号変換テーブルＴ１２では、ｃｎ＝０に対して、｛ｒｕｎ，ｌｅｖ｝＝｛０，０｝が定義される。以後、ｃｎ＝１から、ｃｎ＝２ｍ＋２まで、ｌｅｖ＝１と、ｌｅｖ＝０とが交互に表れる。
【０３７８】
また、ｒｕｎは、ｃｎが２大きくなるごとに、１大きくなるよう定義される。すなわち、ｃｎ＝０，１のとき、ｒｕｎ＝０である。また、ｃｎ＝ｍ＋２，ｍ＋３のとき、ｒｕｎ＝ｍ／２＋１である。そして、ｃｎ＝２ｍ＋２のとき、ｒｕｎ＝ｍ＋１である。
【０３７９】
続いて、ｃｎＴｂｌＩｄｘ＝２の場合、コード番号変換テーブルＴ１３が選択される。コード番号変換テーブルＴ１３は、図８に示したテーブルと同様の定義である。
【０３８０】
コード番号変換テーブルＴ１１、Ｔ１２、およびＴ１３を比較すると、コード番号変換テーブルＴ１１、Ｔ１２、およびＴ１３の順で、ｌｅｖ＝１に、より小さいｃｎが割り当てられている。
【０３８１】
よって、コード番号変換テーブルＴ１１は、ｌｅｖ＝１の確率が大きいときに、符号化効率がよくなる。また、コード番号変換テーブルＴ１３は、ｌｅｖ＝１の確率が小さいときに、符号化効率がよくなる。コード番号変換テーブルＴ１２は、コード番号変換テーブルＴ１１およびＴ１３の中間である。
【０３８２】
パラメータ修正部３４４は、ｌｅｖ＝１が復号された場合、ｃｎＴｂｌＩｄｘを小さくする。また、パラメータ修正部３４４は、ｌｅｖ＝０が復号された場合、ｃｎＴｂｌＩｄｘを大きくする。
【０３８３】
これにより、より符号化効率がよくなるようなコード番号変換テーブルを選択が可能となる。
【０３８４】
（コード番号変換設定部の変形例）
次に、図１８〜図２０を用いて、コード番号変換設定部３４０の変形例について説明する。
【０３８５】
予測方式が、イントラ予測である場合、図１８に示すコード番号変換テーブルが選択可能となっていてもよい。図１８は、ｌｒｇ１ｐｏｓと、ｒｕｎＴａｂｌｅとの組み合わせた形式のコード番号テーブルである。
【０３８６】
図１８に示すように、０≦ｃｎ＜ｌｒｇ１ｐｏｓのとき、ｌｅｖ＝０となる｛ｒｕｎ，ｌｅｖ｝が定義される。また、ｒｕｎは、前述の式（１）から導出される。
【０３８７】
また、予測方式が、インター予測であり、“ｍａｘｒｕｎ＜２８”を満たす場合、図１９および図２０に示すコード変換テーブルのいずれかが選択可能となっていてもよい。
【０３８８】
まず、図１９に示すコード変換テーブルについて説明する。図１９に示すように、ｌｅｖ＝０およびｌｅｖ＝１のいずれか一方において、ｒｕｎＴａｂｌｅを用いてｒｕｎを求めるようにコード変換テーブルを構成してもよい。
【０３８９】
図１９は、ｌｅｖ＝０の場合に、ｒｕｎＴａｂｌｅを用いてｒｕｎを求める例を示している。なお、ｌｅｖ＝１の場合、ｒｕｎ＝０である。
【０３９０】
続いて、図２０に示すコード変換テーブルについて説明する。図２０に示すように、ｌｅｖ＝０と、ｌｅｖ＝１とで異なるｒｕｎＴａｂｌｅを用いてもかまわない。
【０３９１】
図２０は、ｌｅｖ＝０の場合にｒｕｎを導出するのに、第１のｒｕｎＴａｂｌｅ（ｒ［］）を用い、ｌｅｖ＝１の場合に、第１のｒｕｎＴａｂｌｅとは別の第２のｒｕｎＴａｂｌｅ（ｒ’［］）を用いる例について示している。
【０３９２】
例えば、第１のｒｕｎＴａｂｌｅは、上述のｒｕｎＴａｂｌｅ３４６Ａ、３４６Ｂ、および３４６Cのうちの１つであってもよい。また、第２のｒｕｎＴａｂｌｅは、上述のｒｕｎＴａｂｌｅ３４６Ａ、３４６Ｂ、および３４６Ｃのうちの１つであって、上記第１のｒｕｎＴａｂｌｅとは異なるものであってもよい。
【０３９３】
なお、これに限られず、第１のｒｕｎＴａｂｌｅおよび第２のｒｕｎＴａｂｌｅとして、ｒｕｎＴａｂｌｅ３４６Ａ、３４６Ｂ、および３４６Ｃ以外のｒｕｎＴａｂｌｅを用いることも可能である。
【０３９４】
［Ｂ］ＶＬＣ方法選択部について
図１に示すように、ＶＬＣ方法選択部３３０は、ＶＬＣ方法切替部３３１と、ＶＬＣ選択用テーブル３３２と、コード番号復号方法記憶部３３３とを備える。
【０３９５】
ＶＬＣ方法切替部３３１は、コード番号の復号結果に応じて、選択するＶＬＣ方法を切り換える。ＶＬＣ方法切替部３３１は、具体的には、ＶＬＣ選択用テーブルを参照しながら、ｍａｘｒｕｎに対応するＶＬＣ方法をコード番号復号方法記憶部３３３から選択する。ＶＬＣ方法切替部３３１は、選択したＶＬＣ方法をコード番号復号部３１０に通知する。
【０３９６】
ＶＬＣ選択用テーブル３３２は、コード番号復号方法記憶部３３３に記憶されているＶＬＣ方法のリストであるＶＬＣリストおよびＶＬＣリストテーブルを格納するテーブルである。
【０３９７】
コード番号復号方法記憶部３３３は、コード番号復号の方法であるＶＬＣ方法を記憶するものである。ＶＬＣ方法は、具体的には、ビット列とコード番号とが対応付けられたテーブルや、ビット列からコード番号を導出する算出式などにより実現する事ができる。
【０３９８】
（ＶＬＣ選択用テーブル）
図２１〜図２３を用いて、ＶＬＣ選択用テーブルの具体的構成例について説明する。図２１は、ＶＬＣ選択用テーブルの一構成例であるＶＬＣリストＬＳ１１を示している。また、図２３は、ＶＬＣ選択用テーブルの別の構成例であるＶＬＣリストテーブルＬＴ１１を示している。以下、ＶＬＣリストＬＳ１１、ＶＬＣリストテーブルＬＴ１１の順でそれぞれについて説明する。
【０３９９】
［ＶＬＣリスト］
図２１に示すように、ＶＬＣリストＬＳ１１は、ＶＬＣ方法の識別番号を格納したリストである。ＶＬＣリストＬＳ１１は、ＴＵサイズ、予測方法（イントラ予測／インター予測）に応じて規定される。ＶＬＣリストＬＳ１１には、ＶＬＣ０、ＶＬＣ１、ＶＬＣ２、ＶＬＣ３、およびＶＬＣ４の順に、５つのＶＬＣ方法の識別番号が格納されている。いずれのＶＬＣ方法を復号処理において用いるかは、何番目のＶＬＣ方法を次のコード番号の復号に用いるかを示すインデックスによって指定される。
【０４００】
また、ＶＬＣリストＬＳ１１では、一例として、コード番号の分布（頻度偏り）に応じてＶＬＣ方法を定義している。
【０４０１】
ここで、図２２を用いて、頻度と、コード番号との関係について説明する。図２２は、横軸にコード番号をとり、縦軸にその出現頻度を表したグラフである。
【０４０２】
図２２では、コード番号の出現頻度に偏りがあり、小さい値のコード番号が高確率で発生する場合のグラフを実線にて示している。ＶＣＬ方法では、小さい値のコード番号に短いビット列を対応付け、大きい値のコード番号には長いビット列を対応付ける。小さい値のコード番号が高確率で発生する場合、コード番号に割り当てる最小のビット列をより短くするほうが符号化効率を向上させるうえで有利である。
【０４０３】
また、図２２では、コード番号の出現頻度にあまり偏りが無く、大きい値のコード番号が比較的高確率で発生する場合のグラフを破線にて示している。この場合、大きい値のコード番号に極端に長いビット列が割り当てられないようにするほうが符号化効率を向上させる上で有利である。
【０４０４】
そこで、ＶＬＣ０〜ＶＬＣ４の定義は、例えば、次のように構成することができる。
【０４０５】
ＶＬＣ０では、最小のビット列を１ビットで構成する。なお、各ＶＬＣ方法において、“x”と表記しているのは、“０”または“１”の値をとることを示している。なお、ＶＬＣ４の場合について、さらに付言しておくと、コード番号０〜１５が、“１ｘｘｘｘ（１００００〜１１１１１）”に対応する。
【０４０６】
以下、ＶＬＣ１、ＶＬＣ２、ＶＬＣ３、およびＶＬＣ４は、それぞれ、コード番号に割り当てる最小のビット列を、２ビット、３ビット、４ビット、および５ビットで構成する。
【０４０７】
このように、頻度偏りに応じて、ＶＬＣ０〜ＶＬＣ４が定義されている。よって、例えば、ＶＬＣリストＬＳ１１では、頻度偏り大のとき、ＶＬＣ０が選択される。以下、偏りが少なくなるにつれて、ＶＬＣ１〜３が選択される。また、頻度偏りが小である場合、ＶＬＣ４が選択される。
【０４０８】
［ＶＬＣリストテーブル］
図２３に示すように、ＶＬＣリストテーブルＬＴ１１は、ＶＬＣリストを複数含むテーブルである。ＶＬＣリストテーブルＬＴ１１では、ｍａｘｒｕｎ毎にＶＬＣリストを設ける。ＶＬＣリストテーブルＬＴ１１では、一例として、ｍａｘｒｕｎ＝０〜２７に対して、ｖｌｃＬｉｓｔ［０］〜ｖｌｃＬｉｓｔ［２７］を設けている。
【０４０９】
また、各ｖｌｃＬｉｓｔ［］において、格納される順序がより小さいＶＬＣ方法は、より頻度偏りが大きときに用いられるＶＬＣ方法となっている。
【０４１０】
例えば、ｖｌｃＬｉｓｔ［０］では、ＶＬＣ０、ＶＬＣ０、ＶＬＣ０、ＶＬＣ１、およびＶＬＣ１の順でＶＬＣ方法が格納されている。このように、頻度偏りが大きい順にＶＬＣ方法を格納するのであれば、同じＶＬＣ方法を繰り返しｖｌｃＬｉｓｔ［０］に格納してもよい。
【０４１１】
（ＶＬＣ方法切替部）
以下において、ＶＬＣ方法切替部３３１の動作詳細について説明する。ＶＬＣ方法切替部３３１が、ＶＬＣリストを用いる場合、および、ＶＬＣリストテーブルを用いる場合についてそれぞれ説明する。
【０４１２】
［ＶＬＣリストを用いる場合］
ＶＬＣ方法切替部３３１は、次のようにしてＶＬＣリストから、ＶＬＣ方法を決定する。例えば、ＶＬＣ方法切替部３３１は、小さい値のコード番号が高確率で発生する場合、ＶＬＣリストＬＳ１１からＶＬＣ０をＶＬＣ方法として選択する。また、例えば、ＶＬＣ方法切替部３３１は、大きい値のコード番号が比較的高確率で発生する場合、ＶＬＣリストＬＳ１１からＶＬＣ４を選択する。
【０４１３】
上記の例では、ＶＬＣ方法切替部３３１は、頻度偏りの大きさに応じて、ＶＬＣリストＬＳ１１からＶＬＣ０〜ＶＬＣ４を選択する。ＶＬＣ方法切替部３３１は、具体的には、次の式（６）によりＶＬＣの識別番号ｖｌｃＩｄを決定する。
【０４１４】
ｖｌｃＩｄ＝ｖｌｃＬｉｓｔ［ｍｉｎ（ｍａｘｒｕｎ，２８）］  ・・・  （６）
上記のとおり、ＶＬＣ方法切替部３３１は、式（６）により、ｍａｘｒｕｎに応じて異なるＶＬＣ方法を決定する。これは、直近に処理された非ゼロ係数の発生位置に応じて、コード番号の発生確率の分布が異なるためである。なお、コード番号の発生確率とは、上述の頻度偏りのことである。
【０４１５】
ＶＬＣ方法切替部３３１は、ｍａｘｒｕｎを、式（６）に適用することより、ｖｌｃＩｄを決定し、決定したｖｌｃＩｄに従ってＶＬＣ０からＶＬＣ４のいずれかを選択する。
【０４１６】
［ＶＬＣリストテーブルを用いる場合］
ＶＬＣ方法切替部３３１は、例えば、次の式（７）を用いてＶＬＣリストテーブルから、ＶＬＣ方法を決定する。
【０４１７】
ｖｌｃＩｄ＝ｖｌｃＬｉｓｔ［ｍａｘｒｕｎ］［ｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］］  ・・・  （７）
式（７）について、より詳細に説明すれば、次のとおりである。まず、ＶＬＣ方法切替部３３１は、ｍａｘｒｕｎに応じて、ＶＬＣリストテーブルＬＴ１１からＶＬＣ方法を選択するＶＬＣリストｖｌｃＬｉｓｔ［ｍａｘｒｕｎ］を決定する。続いて、ＶＬＣ方法切替部３３１は、ｍａｘｒｕｎに応じて、決定したｖｌｃＬｉｓｔ［ｍａｘｒｕｎ］から、選択するＶＬＣ方法を、ｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］により特定する。
【０４１８】
なお、ｌｉｓｔＩｄｘは、ＶＬＣリストの何番目のＶＬＣ方法を次のコード番号復号に用いるかを示すインデックスである。また、ｌｉｓｔＩｄｘは、ｍａｘｒｕｎ毎に設けられているＶＬＣリスト毎に設定される。言い換えれば、ｖｌｃＬｉｓｔ［０］〜ｖｌｃＬｉｓｔ［２７］に対して、それぞれｌｉｓｔＩｄｘ［０］〜ｌｓｔｉｄｘ［２７］が対応している。
【０４１９】
また、ＶＬＣ方法切替部３３１は、ｖｌｃＩｄにより特定されたＶＬＣを用いてコード番号が復号されると、当該コード番号の復号結果に応じてｌｉｓｔＩｄｘを修正する。
【０４２０】
ここで再び、図２３を参照してさらに説明すると次のとおりである。例えば、ｍａｘｒｕｎ＝２であるとき、ＶＬＣ方法切替部３３１は、ＶＬＣ方法を選択するＶＬＣリストとして、ｖｌｃＬｉｓｔ［２］を決定する。続いて、ｌｉｓｔＩｄｘ［２］は、ＶＬＣリストに格納されている１番目のＶＬＣ方法を示しているのでｖｌｃＬｉｓｔ［２］の１番目に格納されているＶＬＣ０を選択する。
【０４２１】
なお、ｍａｘｒｕｎ＞２７の場合、ＶＬＣ方法切替部３３１は、上記式（６）に示したようにｍａｘｒｕｎをクリップする。
【０４２２】
ｌｉｓｔＩｄｘの設定例は次のとおりである。例えば、小さいｌｉｓｔＩｄｘに対して小さいコード番号の発生確率が高いＶＬＣ方法を対応付ける。
【０４２３】
また、ＶＬＣ方法切替部３３１は、次のようにして、コード番号の復号結果に応じてｌｉｓｔＩｄｘを修正する。復号したコード番号の値が、所定の閾値ａ（例えば、２）より小さければ、ｌｉｓｔＩｄｘ＝ｌｉｓｔＩｄｘ−１とし、別の閾値b（例えば、８）以上であれば、ｌｉｓｔＩｄｘ＋１とする。
【０４２４】
（処理の流れ）
次に、図２４を用いて、ＶＬＣ方法選択部３３０におけるＶＣＬ方法切替処理について説明する。図２４は、ＶＬＣ方法選択部３３０におけるＶＣＬ方法切替処理について例示したフローチャートである。
【０４２５】
図２４に示すように、ＶＬＣ方法選択部３３０においてＶＬＣ方法切替処理が開始されると、ＶＬＣ方法切替部３３１が、ｖｌｃＬｉｓｔ［ｍａｘｒｕｎ］により選択処理に用いるＶＬＣリストを決定する（Ｓ４１）。
【０４２６】
続いて、ＶＬＣ方法切替部３３１が、ｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］を用いて、決定したＶＬＣリストから選択するＶＬＣ方法を決定する（Ｓ４２）。
【０４２７】
続いて、ＶＬＣ方法切替部３３１は、決定したＶＬＣ方法に応じてＶＬＣ方法を切り替えて、切り替え後のＶＬＣ方法をコード番号復号部３１０に通知する（Ｓ４３）。なお、ここで、ＶＬＣ方法切替部３３１は、コード番号復号部３１０が復号したコード番号の値に応じて、ｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］を更新する。
【０４２８】
［作用・効果］
以上に示したように、画像データの符号化データから変換係数を復号する動画像復号装置１は、ｍａｘｒｕｎごとに設けられた、ビット列からコード番号を復号するためのＶＬＣ方法を特定するための複数の識別番号が順序付けられているＶＬＣリストと、ｍａｘｒｕｎごとに、ＶＬＣリストに含まれる上記識別番号を特定するためのｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］と、ｍａｘｒｕｎごとに設けられているＶＬＣリストを、ｖｌｃＬｉｓｔ［ｍａｘｒｕｎ］により選択するＶＬＣ切替部３３１と、を備え、ＶＬＣ切替部３３１が、上記選択されたＶＬＣリストにおいてｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］により特定されたＶＬＣ方法を用いて復号されたコード番号の値に基づいて、ｌｉｓｔＩｄｘ［ｍａｘｒｕｎ］を更新する更新手段とを備える。
【０４２９】
上記構成によりコード番号の発生確率に応じて、より適したＶＬＣ方法を選択することができ、これにより符号化効率が向上する。
【０４３０】
なお、全てのｍａｘｒｕｎについて、ＶＬＣリストに、同じ数のＶＬＣ方法が格納されていなくてもよい。すなわち、ｍａｘｒｕｎの数に応じて、ＶＬＣリストに格納されているＶＬＣ方法の数は、異なっていてもよい。
【０４３１】
例えば、ｍａｘｒｕｎ小さい場合が多く発生するため、小さいｍａｘｒｕｎに対応するＶＬＣリストでは、大きいｍａｘｒｕｎに対応するＶＬＣリストに比べて多くＶＬＣ方法を格納することが好ましい。
【０４３２】
〔動画像符号化装置〕
以下において、本実施形態に係る動画像符号化装置２について、図２５〜図２７を参照して説明する。
【０４３３】
（動画像符号化装置の概要）
動画像符号化装置２は、概略的に言えば、入力画像＃１０を符号化することによって符号化データ＃１を生成し、出力する装置である。
【０４３４】
（動画像符号化装置の構成）
まず、図２５を用いて、動画像符号化装置２の構成例について説明する。図２５は、動画像符号化装置２の構成について示す機能ブロック図である。図２５に示すように、動画像符号化装置２は、符号化設定部２１、逆量子化・逆変換部２２、予測画像生成部２３、加算器２４、フレームメモリ２５、減算器２６、変換・量子化部２７、ＴＵ情報符号化部２８、および符号化データ生成部２９を備えている。
【０４３５】
符号化設定部２１は、入力画像＃１０に基づいて、符号化に関する画像データおよび各種の設定情報を生成する。
【０４３６】
具体的には、符号化設定部２１は、次の画像データおよび設定情報を生成する。
【０４３７】
まず、符号化設定部２１は、入力画像＃１０を、スライス単位、ツリーブロック単位に順次分割することにより、対象ＣＵについてのＣＵ画像＃１００を生成する。
【０４３８】
また、符号化設定部２１は、分割処理の結果に基づいて、ヘッダ情報Ｈ’を生成する。ヘッダ情報Ｈ’は、（１）対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報、並びに、（２）各ツリーブロックに属するＣＵのサイズ、形状および対象ツリーブロック内での位置についてのＣＵ情報ＣＵ’を含んでいる。
【０４３９】
さらに、符号化設定部２１は、ＣＵ画像＃１００、および、ＣＵ情報ＣＵ’を参照して、ＰＴ設定情報ＰＴＩ’を生成する。ＰＴ設定情報ＰＴＩ’には、（１）対象ＣＵの各ＰＵへの可能な分割パターン、および、（２）各ＰＵに割り付ける可能な予測モード、の全ての組み合わせに関する情報が含まれる。
【０４４０】
符号化設定部２１は、ＣＵ画像＃１００を減算器２６に供給する。また、符号化設定部２１は、ヘッダ情報Ｈ’を符号化データ生成部２９に供給する。また、符号化設定部２１は、ＰＴ設定情報ＰＴＩ’を予測画像生成部２３に供給する。
【０４４１】
逆量子化・逆変換部２２は、変換・量子化部２７より供給される、ブロック毎の量子化予測残差を、逆量子化、および、逆ＤＣＴ変換（Inverse Discrete Cosine Transform）することによって、ブロック毎の予測残差を復元する。
【０４４２】
また、逆量子化・逆変換部２２は、ブロック毎の予測残差を、ＴＴ分割情報（後述）により指定される分割パターンに従って統合し、対象ＣＵについての予測残差Ｄを生成する。逆量子化・逆変換部２２は、生成した対象ＣＵについての予測残差Ｄを、加算器２４に供給する。
【０４４３】
予測画像生成部２３は、フレームメモリ２５に記録されている局所復号画像Ｐ’、および、ＰＴ設定情報ＰＴＩ’を参照して、対象ＣＵについての予測画像Ｐｒｅｄを生成する。予測画像生成部２３は、予測画像生成処理により得られた予測パラメータを、ＰＴ設定情報ＰＴＩ’に設定し、設定後のＰＴ設定情報ＰＴＩ’を符号化データ生成部２９に転送する。なお、予測画像生成部２３による予測画像生成処理は、動画像復号装置１の備える予測画像生成部１４と同様であるので、ここでは説明を省略する。
【０４４４】
加算器２４は、予測画像生成部２３より供給される予測画像Ｐｒｅｄと、逆量子化・逆変換部２２より供給される予測残差Ｄとを加算することによって、対象ＣＵについての復号画像Ｐを生成する。
【０４４５】
フレームメモリ２５には、復号された復号画像Ｐが順次記録される。フレームメモリ２５には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック（例えば、ラスタスキャン順で先行する全てのツリーブロック）に対応する復号画像が記録されている。
【０４４６】
減算器２６は、ＣＵ画像＃１００から予測画像Ｐｒｅｄを減算することによって、対象ＣＵについての予測残差Ｄを生成する。減算器２６は、生成した予測残差Ｄを、変換・量子化部２７に供給する。
【０４４７】
変換・量子化部２７は、予測残差Ｄに対して、ＤＣＴ変換（Discrete Cosine Transform）および量子化を行うことで量子化予測残差を生成する。
【０４４８】
具体的には、変換・量子化部２７は、ＣＵ画像＃１００、および、ＣＵ情報ＣＵ’を参照し、対象ＣＵの１または複数のブロックへの分割パターンを決定する。また、決定された分割パターンに従って、予測残差Ｄを、各ブロックについての予測残差に分割する。
【０４４９】
また、変換・量子化部２７は、各ブロックについての予測残差をＤＣＴ変換（Discrete Cosine Transform）することによって周波数領域における予測残差を生成した後、当該周波数領域における予測残差を量子化することによってブロック毎の量子化予測残差を生成する。
【０４５０】
また、変換・量子化部２７は、生成したブロック毎の量子化予測残差と、対象ＣＵの分割パターンを指定するＴＴ分割情報と、対象ＣＵの各ブロックへの可能な全分割パターンに関する情報とを含むＴＴ設定情報ＴＴＩ’を生成する。変換・量子化部２７は、生成したＴＴ設定情報ＴＴＩ’を逆量子化・逆変換部２２に供給する。
【０４５１】
また、変換・量子化部２７は、対象ブロックの量子化予測残差を含むＴＵ設定情報ＴＵＩ’を生成し、ＴＵ情報符号化部２８に供給する。
【０４５２】
ＴＵ情報符号化部２８は、変換・量子化部２７から供給されるＴＵ設定情報ＴＵＩ’を符号化して符号化済みＴＵ設定情報ＴＵＩを生成する。ＴＵ情報符号化部２８は、は、符号化済みＴＵ設定情報ＴＵＩを符号化データ生成部２９に供給する。なお、ＴＵ情報符号化部２８の詳細については後述する。
【０４５３】
符号化データ生成部２９は、符号化済みＴＵ設定情報ＴＵＩ、ＰＴ設定情報ＰＴＩ’を符号化したＰＴ設定情報ＰＴＩ、およびヘッダ情報Ｈ’を符号化したヘッダ情報Ｈを多重化して符号化データ＃１を生成し、出力する。
【０４５４】
（ＴＵ情報符号化部の詳細）
次に、図２６を用いて、ＴＵ情報符号化部２８の詳細について説明する。図２６は、ＴＵ情報符号化部２８の構成例について示す機能ブロック図である。
【０４５５】
なお、以下では、ＴＵ情報符号化部２８が、ＴＵ情報ＴＵＩ’に含まれるパラメータのうち、係数に関するパラメータを符号化するための構成について説明する。言い換えれば、以下では、ＴＵ情報符号化部２８が、量子化予測残差、すなわち変換係数を符号化するための構成について説明する。
【０４５６】
しかしながら、これに限られずＴＵ情報符号化部２８は、ＴＵ情報ＴＵＩ’に含まれる変換係数以外のデータ、例えば、サイド情報等を符号化することができる。
【０４５７】
図２６に示すように、ＴＵ情報符号化部２８は、可変長符号化部４００と、スキャン部２８１と、最後の非ゼロ係数処理部２８２と、ランモード処理部２８３と、レベルモード処理部２８４と、を備える。
【０４５８】
可変長符号化部４００は、シンタックス値およびシンタックス種別を入力として、シンタックス種別にて指定されるシンタックスの値を符号化して符号化データを生成し、生成した符号化データをＴＵＩ情報ＴＵＩに含めて出力するものである。
【０４５９】
可変長符号化部４００は、具体的には、次のようにして、シンタックス値から符号化データを生成する。まず、可変長符号化部４００は、シンタックス値をコード番号に変換する。すなわち、上述の可変長復号部３００が、コード番号をシンタックス値に変換する処理は、可変長符号化部４００が、シンタックス値からコード番号に変換する処理とは逆の変換処理を行っている。
【０４６０】
続いて、可変長符号化部４００は、変換したコード番号を符号化データのビット列に符号化する。なお、上述の可変長復号部３００の復号処理は、可変長符号化部４００の符号化処理とは逆の変換処理を行っている。
【０４６１】
また、可変長符号化部４００では、シンタックス種別に応じた符号化方法が規定されている。
【０４６２】
なお、シンタックス種別は、最後の非ゼロ係数（｛ｌａｓｔｐｏｓ，ｌｅｖ｝）、ランレベル（｛ｒｕｎ，ｌｅｖ｝）、レベル（ｌｅｖｅｌ）、ｉｎｔｒａＤＣ ｃｏｅｆｆ、Ｃｂｐ ｙｕｖ ｒｏｏｔ、Ｂｌｏｃｋ Ｃｂｆ等のシンタックスの種類を示す情報である。以下では、可変長符号化部４００が係数に関するシンタックス値を復号する場合について説明する。また、可変長符号化部４００のより詳細な構成については後述する。
【０４６３】
スキャン部２８１は、係数行列に対してスキャンを行って、１次元配列に係数を格納する。
【０４６４】
最後の非ゼロ係数処理部２８２は、可変長符号化部４００に、符号化の対象となる符号化領域（以下、対象符号化領域と称する）について最後の非ゼロ係数を符号化させる。より具体的には、最後の非ゼロ係数処理部２８２は、対象符号化領域の最後の非ゼロ係数のシンタックス値｛ｌａｓｔｐｏｓ，ｌｅｖ｝および最後の非ゼロ係数を示すシンタックス種別を可変長符号化部４００に供給し、可変長符号化部４００から出力される係数符号化データを取得する。
【０４６５】
ランモード処理部２８３は、可変長符号化部４００に、対象符号化領域について、ランモードによる符号化処理を実行させる。すなわち、ランモード処理部２８３は、対象符号化領域に対応するランレベルのシンタックス値（｛ｒｕｎ，ｌｅｖ｝）およびランレベルを示すシンタックス種別を可変長符号化部４００に供給し、可変長符号化部４００から出力される係数符号化データを取得する。以下、ランモード処理部２８３が行う上記の符号化処理のことを、ランモード符号化処理と称する。
【０４６６】
また、ランモード処理部２８３は、ランモード終了条件が満たされるまで、ランモード符号化処理を繰り返して行う。ランモード終了条件の条件としては、例えば、符号化した係数の値が閾値を超えている場合や、所定の数だけ係数を符号化した場合などが挙げられる。
【０４６７】
そして、ランモード終了条件が満たされた場合、ランモード処理部２８３は、レベルモード処理部２８４にレベルモードによる符号化を開始させる。
【０４６８】
レベルモード処理部２８４は、可変長符号化部４００に、対象符号化領域について、レベルモードによる符号化処理を実行させる。すなわち、レベルモード処理部２８４は、対象符号化領域に対応するシンタックス値（ｌｅｖｅｌ）およびレベルを示すシンタックス種別を可変長符号化部４００に供給し、可変長符号化部４００から出力される係数符号化データを取得する。
【０４６９】
以下、レベルモード処理部２８４が行う上記の符号化処理のことを、レベルモード符号化処理と称する。また、レベルモード処理部２８４は、直流成分の係数を符号化するまで、レベルモード符号化処理を繰り返して行う。
【０４７０】
（可変長符号化部）
次に、図２７を用いて、可変長符号化部４００の構成についてさらに詳しく説明する。図２７は、可変長符号化部４００の構成例について示す機能ブロック図である。
【０４７１】
図２７に示すように、可変長符号化部４００は、コード番号逆変換部４１０、コード番号符号化部４２０、コード番号変換設定部４３０、およびＶＬＣ方法選択部４４０を備える。
【０４７２】
コード番号逆変換部４１０は、コード番号変換設定部４３０によって指定されたコード番号変換方法を用いて、シンタックス値を、コード番号に変換するものである。以下では、｛ｒｕｎ，ｌｅｖ｝を、コード番号に変換する例について説明する。しかしながら、コード番号逆変換部４１０がコード番号に変換するシンタックス値の種類に制限はない。コード番号逆変換部４１０は、変換したコード番号をコード番号符号化部４２０に供給する。
【０４７３】
コード番号符号化部４２０は、ＶＬＣ方法選択部４４０に指定されたＶＬＣ方法を用いて、入力されるコード番号を、符号化して符号化データを生成するものである。
【０４７４】
コード番号変換設定部４３０は、入力されるシンタックス種別に指定されたシンタックスに応じて、シンタックス値をコード番号に変換するのに用いるコード番号変換方法を設定し、設定したコード番号変換方法をコード番号逆変換部４１０に通知する。
【０４７５】
ＶＬＣ方法選択部４４０は、入力されるシンタックス種別に指定されたシンタックスに応じて、コード番号を符号化して符号化データを生成するのに用いるＶＬＣ方法を設定し、設定したＶＬＣ方法をコード番号符号化部４２０に通知する。
【０４７６】
以下において、動画像符号化装置１が備えるコード番号変換設定部４３０およびＶＬＣ方法選択部４４０の詳細について説明する。また、以下では、コード番号変換設定部４３０およびＶＬＣ方法選択部４４０について、図１〜図２４を用いて説明したような可変長復号部３００の技術が適用可能であることについて説明する。
【０４７７】
（コード番号変換設定部の詳細について）
図２７に示すように、コード番号変換設定部４３０は、中間コード番号算出部４３１と、中間最大ラン算出部４３２と、ラン値設定部４３３と、パラメータ修正部４３４と、コード番号変換テーブル４３５と、ｒｕｎＴａｂｌｅ４３６とを備える。
【０４７８】
コード番号変換設定部４３０は、動画像復号装置１が備えるコード番号変換設定部３４０に対応している。
【０４７９】
すなわち、コード番号変換設定部４３０において、中間コード番号算出部４３１と、中間最大ラン算出部４３２と、ラン値設定部４３３と、パラメータ修正部４３４と、コード番号変換テーブル４３５と、ｒｕｎＴａｂｌｅ４３６とは、それぞれ、コード番号変換設定部３４０における、中間コード番号算出部３４１と、中間最大ラン算出部３４２と、ラン値設定部３４３と、パラメータ修正部３４４と、コード番号変換テーブル３４５と、ｒｕｎＴａｂｌｅ３４６とに対応する。
【０４８０】
このように、コード番号変換設定部４３０の各部については、既に説明したコード番号変換設定部３４０の各部と同様であるので、ここでは、その説明を省略する。
【０４８１】
なお、コード番号変換設定部４３０より出力されるコード番号変換方法は、コード番号をシンタックス値に変換する方法であり。コード番号逆変換部４１０では、シンタックス値からコード番号への変換を行う必要があるが、そのような変換は、コード番号とシンタックス値は１対１で対応付けられることから、コード番号変換設定部において導出されるコード番号変換方法から導出できる。
【０４８２】
（ＶＬＣ方法選択部の詳細について）
図２７に示すように、ＶＬＣ方法選択部４４０は、ＶＬＣ方法切替部４４１と、ＶＬＣ選択用テーブル４４２と、コード番号復号方法記憶部４４３とを備える。
【０４８３】
ＶＬＣ方法選択部４４０は、動画像復号装置１が備えるＶＬＣ方法選択部３３０と対応している。
【０４８４】
すなわち、ＶＬＣ方法選択部４４０において、ＶＬＣ方法切替部４４１と、ＶＬＣ選択用テーブル４４２と、コード番号復号方法記憶部４４３とは、それぞれ、ＶＬＣ方法選択部３３０における、ＶＬＣ方法切替部３３１と、ＶＬＣ選択用テーブル３３２と、コード番号復号方法記憶部３３３とに対応する。
【０４８５】
このように、ＶＬＣ方法選択部４４０の各部については、既に説明したＶＬＣ方法選択部３３０の各部と同様であるので、ここでは、その説明を省略する。
〔２〕実施形態２
〔動画像復号装置〕
［Ｃ］  本発明の動画像復号装置１に関する他の実施形態について、図２８〜図３９に基づいて説明すれば、以下のとおりである。
【０４８６】
本実施形態では、コード番号変換設定部３４０の他の実施形態であるコード番号変換設定部３４０Ａについて説明する。
【０４８７】
コード番号変換設定部３４０Ａは、コード番号から、シンタックス値への変換処理において、可変テーブルを用いる構成である。
【０４８８】
まず、図２８を用いて、コード番号変換設定部３４０Ａの構成について説明する。図２８は、コード番号変換設定部３４０Ａの構成例について示す機能ブロック図である。
【０４８９】
図２８に示すように、コード番号変換設定部３４０Ａは、可変テーブル選択部３５１、可変テーブル適応部３５２、可変テーブル記録部３５３、差分値カウンタ３５４、回数カウンタ３５５、およびｓｕｍカウンタ３５６を備える。
【０４９０】
可変テーブル選択部３５１は、入力されたシンタックス種別に応じたコード番号変換方法をコード番号変換部３２０に通知する。具体的には、可変テーブル選択部３５１は、入力されたシンタックスに対応する可変テーブルを可変テーブル記憶部３５３から選択する。そして、可変テーブル選択部３５１は、選択した可変テーブルを用いてコード番号の変換を行うことを示す情報、および、選択した可変テーブルを、コード番号変換方法として、コード番号変換部３２０に通知する。
【０４９１】
可変テーブル適応部３５２は、可変テーブル記録部３５３に記録されている可変テーブルを適応的に修正する。可変テーブル適応部３５２は、カウンタに記憶されている値に応じて可変テーブルの適応処理を行う。また、可変テーブル適応部３５２は、可変テーブルの適応処理において、カウンタセットＳＥＴ１およびＳＥＴ２のいずれかを用いることができる。
【０４９２】
可変テーブル記録部３５３は、コード番号とテーブルインデックスとを対応付ける可変テーブルを記録する。テーブルインデックスは、シンタックス値と１対１で対応付けられている。また、可変テーブル記録部３５３において、コード番号とテーブルインデックスとの対応関係を更新することも可能である。
【０４９３】
差分値カウンタ３５４は、コード番号の出現回数の差分または差分近似値をカウントするためのカウンタである。
【０４９４】
回数カウンタ３５５は、コード番号の出現回数をカウントするためのカウンタである。
【０４９５】
ｓｕｍカウンタ３５６は、各コード番号の出現回数の総計をカウントするためのカウンタである。
【０４９６】
なお、回数カウンタ３５５およびｓｕｍカウンタ３５６は、カウンタセットＳＥＴ１を構成し、差分値カウンタ３５４は、カウンタセットＳＥＴ２を構成する。
【０４９７】
（回数カウンタおよびｓｕｍカウンタ付きの可変テーブル）
図２９および図３０を用いて、可変テーブル適応部３５２が、回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルを用いた場合の例について説明する。すなわち、以下では、可変テーブル適応部３５２が、カウンタセットＳＥＴ１を用いて、可変テーブルの適応処理を行う例について説明する。
【０４９８】
まず、図２９を用いて、回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルＶＴ１００の構成について説明する。図２９は、回数カウンタ３５５およびｓｕｍカウンタ３５６付き可変テーブルについて示す図である。
【０４９９】
可変テーブルＶＴ１００は、コード番号ｃｎと、テーブルインデックスｓｘとが対応付けられたテーブルである。図２９では、ｃｎ＝０〜ｃｎ＝４に対して、テーブルインデックスｓ０〜ｓ４が対応付けられている。
【０５００】
回数カウンタ３５５は、コード番号ｃｎ＝０、１、および２の発生回数をカウントするためのカウンタテーブルである。図２９に示すように、回数カウンタ３５５では、コード番号ｃｎ＝０、１、および２について、それぞれカウンタｃ０、ｃ１、およびｃ２が設けられている。また、回数カウンタ３５５は、コード番号ｃｎ＝０、１、および２のように小さいコード番号にのみ設定されることが好ましい。
【０５０１】
ｓｕｍカウンタ３５６は、回数カウンタ３５５に含まれる各カウンタの値の合計を保持するカウンタである。図２９では、ｓｕｍカウンタ３５６が保持する値をｓｕｍと表記している。
【０５０２】
[動作条件]
このとき、可変テーブル適応部３５２は、図３０に示す動作条件に従って、各カウンタおよび可変テーブルＶＴ１００を更新する。図３０は、各コード番号が発生した場合におけるカウンタ更新およびテーブル適応の動作条件について示す図である。以下、図３０を参照しながら、各コード番号が発生した場合における差分値カウンタ更新およびテーブル適応の動作条件ＣＯＮＤ１００、ＣＯＮＤ１０１、ＣＯＮＤ１０２、ＣＯＮＤ１０３、ＣＯＮＤ１０４、およびＣＯＮＤ１０５について説明する。
【０５０３】
動作条件ＣＯＮＤ１００  ｃｎ＝０が復号されたとき（ｃｎ＝＝０）：可変テーブル適応部３５２は、カウンタｃ０およびｓｕｍを１インクリメントする（ｃ０＋＋，ｓｕｍ＋＋）。
【０５０４】
動作条件ＣＯＮＤ１０１  ｃｎ＝１が復号されたとき（ｃｎ＝＝１）であって、かつｃ１＜ｃ０であるとき：可変テーブル適応部３５２は、カウンタｃ１およびｓｕｍを１インクリメントする（ｃ１＋＋，ｓｕｍ＋＋）。
【０５０５】
動作条件ＣＯＮＤ１０２  ｃｎ＝１が復号されたとき（ｃｎ＝＝１）であって、かつｃ１≧ｃ０であるとき：可変テーブル適応部３５２は、カウンタｃ１およびｓｕｍを１インクリメントする（ｃ１＋＋，ｓｕｍ＋＋）とともに、カウンタｃ０およびｃ１のカウンタ値の入れ替え（ｓｗａｐ（ｃ０，ｃ１））と、テーブルインデックスｓ０およびｓ１の入れ替え（ｓｗａｐ（ｓ０，ｓ１）；以下、スワップと称する）とを行う。
【０５０６】
動作条件ＣＯＮＤ１０３  ｃｎ＝２が復号されたとき（ｃｎ＝＝２）であって、ｃ２＜ｃ１であるとき：可変テーブル適応部３５２は、カウンタｃ２およびｓｕｍを１インクリメントする（ｃ２＋＋，ｓｕｍ＋＋）。
【０５０７】
動作条件ＣＯＮＤ１０４  ｃｎ＝２が復号されたとき（ｃｎ＝＝２）であって、ｃ２≧ｃ１であるとき：可変テーブル適応部３５２は、カウンタｃ２およびｓｕｍを１インクリメントする（ｃ２＋＋，ｓｕｍ＋＋）とともに、カウンタｃ１およびｃ２のスワップ（ｓｗａｐ（ｃ１，ｃ２））と、テーブルインデックスｓ１およびｓ２のスワップ（ｓｗａｐ（ｓ１，ｓ２））とを行う。
【０５０８】
動作条件ＣＯＮＤ１０５  復号されたコード番号がｃｎ≧３であるとき：可変テーブル適応部３５２は、テーブルインデックスｓｃｎ−１およびｓｃｎのスワップ（ｓｗａｐ（ｓｃｎー１，ｓｃｎ））を行う。
【０５０９】
なお、ｓｕｍのインクリメントによってｓｕｍ＝＝１５となった場合、可変テーブル適応部３５２は、ｓｕｍをリセット（ｓｕｍ＝０）するとともに、カウンタｃ０〜ｃ２の値を１ビット右シフトする。
【０５１０】
この処理を正規化（Ｎｏｒｍａｌｉｚａｔｉｏｎ）という。正規化は、カウンタ値の過度な増加を抑制する目的で行う。
【０５１１】
このように回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルを用いた場合の可変テーブル適応処理では、可変テーブルに格納されるテーブルインデックスを所定の条件でスワップする。また、所定のカウントごとに、正規化を実行してカウンタ値の過度な増加を抑制する。
【０５１２】
［可変テーブル適応処理の流れ］
図３１を用いて、回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルを用いた場合の可変テーブル適応処理の具体的な流れについて説明すると次のとおりである。図３１は、回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルを用いた場合の可変テーブル適応処理の流れについて示すフローチャートである。なお、同図に示すｃｏｕｎｔｅｒＮｕｍは、コード番号に対して設定されているカウンタ数を示しており、ｎｏｒｍａｌｉｚａｔｉｏｎＦｌａｇは、正規化を実行するか否かを示す正規化フラグである。また、ｍａｘＳｕｍは、正規化を実行するときのｓｕｍの閾値を示している。
【０５１３】
まず、カウンタ数が０より大きい（ｃｏｕｎｔｅｒＮｕｍ＞０）かどうかを判定する（Ｓ１０１）。カウンタ数が０である場合（Ｓ１０１においてＮＯ）、無条件に可変テーブルをスワップする。以下、カウンタ数が０より大きい（Ｓ１０１においてＹＥＳ）ことを前提に説明する。ここで、正規化フラグを初期化（ｎｏｒｍａｌｉｚａｔｉｏｎＦｌａｇ＝０）しておく（Ｓ１０２）。
【０５１４】
続いて、復号したコード番号がカウンタ数よりも小さい（ｃｎ＜ｃｏｕｎｔｅｒＮｕｍ）か否かを判定する（Ｓ１０４）。ここでは、コード番号ｃｎに対応するカウンタが設定されているか否かを判定している。
【０５１５】
復号したコード番号がカウンタ数よりも小さい場合（Ｓ１０４においてＹＥＳ）、復号したコード番号に対応するカウンタをインクリメントする（Ｓ１０６）。
【０５１６】
続いて、ｓｕｍカウンタ３５６の値が、閾値に達しているか否かを判定する（Ｓ１０７）。ｓｕｍカウンタ３５６の値が、閾値に達している場合（Ｓ１０７においてＹＥＳ）、正規化フラグが設定される（ｎｏｒｍａｌｉｚａｔｉｏｎＦｌａｇ＝１）（Ｓ１０９）。一方、ｓｕｍカウンタ３５６の値が、閾値に達していない場合（Ｓ１０７においてＮＯ）、ｓｕｍカウンタ３５６がインクリメントされる（Ｓ１０８）。
【０５１７】
続いて、復号したコード番号が０より大きいか否かを判定する（Ｓ１１０）。復号したコード番号が０より大きくない場合（Ｓ１１０においてＮＯ）、正規化フラグの設定値に応じて正規化を行い（Ｓ１１４、Ｓ１１５）、処理は終了する。
【０５１８】
一方、復号したコード番号が０より大きい場合（Ｓ１１０においてＹＥＳ）、復号したコード番号ｃｎのカウンタの値が、コード番号ｃｎ−１のカウンタの値以上か否かを判定する（ｃｏｕｎｔｅｒ［ｃｎ］≧ｃｏｕｎｔｅｒ［ｃｎ−１］）（Ｓ１１１）。復号したコード番号ｃｎのカウンタの値が、コード番号ｃｎ−１のカウンタの値より小さければ（Ｓ１１１においてＮＯ）、正規化フラグの設定値に応じて正規化を行い（Ｓ１１４、Ｓ１１５）、処理は終了する。
【０５１９】
復号したコード番号ｃｎのカウンタの値が、コード番号ｃｎ−１のカウンタの値以上であれば（Ｓ１１１においてＹＥＳ）、可変テーブルをスワップするとともに（Ｓ１１２）、回数カウンタ３５５をスワップする（Ｓ１１３）。そして、正規化フラグの設定値に応じて正規化を行い（Ｓ１１４、Ｓ１１５）、処理は終了する。
【０５２０】
なお、Ｓ１０４において、復号したコード番号がカウンタ数以上である場合（Ｓ１０４においてＮＯ）、正規化フラグの設定値に応じて正規化を行い（Ｓ１１４、Ｓ１１５）、処理は終了する。
【０５２１】
（考察）
上述した回数カウンタ３５５およびｓｕｍカウンタ３５６付きの可変テーブルを用いた場合の可変テーブル適応処理について以下のことがいえる。
【０５２２】
（Ｐ１）テーブルインデックスｓ０、ｓ１、およびｓ２のスワップを実現するのに、３つのカウンタを用いている。また、ｓｕｍカウンタ３５６も設けている。
【０５２３】
（Ｐ２）カウンタ値が過度に増加するのを抑制するために、正規化を実施している。
【０５２４】
（Ｐ３）可変テーブルのテーブルインデックスのスワップに加えて、カウンタの値のスワップも行っている。
【０５２５】
［変形例］
［２−１−１］カウンタ値のスワップを省略する
上記では、動作条件ＣＯＮＤ１０２およびＣＯＮＤ１０４において、カウンタおよびテーブルインデックスのスワップを行う構成であった。しかしながら、これに限られず、動作条件ＣＯＮＤ１０２およびＣＯＮＤ１０４において、テーブルインデックスのみをスワップする構成としてもかまわない。
【０５２６】
［作用・効果］
以上に示したように、動画像復号装置１は、コード番号ｃｎをシンタックス値に変換して符号化データの復号を行う動画像復号装置１において、コード番号ｃｎと、シンタックス値を特定するためのテーブルインデックスｓｘとが対応付けられた可変テーブルＶＴ１００と、可変テーブルＶＴ１００において定義されている上記コード番号のうちの一つである第１のコード番号ｃｎ＝０の発生回数をカウントする第１の回数カウンタｃ０と、上記第１のコード番号より１大きい第２のコード番号ｃｎ＝１の発生回数をカウントする第２の回数カウンタｃ１と、上記第２の回数カウンタｃ１の値が、上記第１の回数カウンタｃ０の値以上になったとき、上記第１の回数カウンタｃ０の値および上記第２の回数カウンタｃ１の値を維持するとともに、可変テーブルＶＴ１００において、上記第１のコード番号ｃｎ＝０に対応づけられているテーブルインデックスｓ０と、上記第２のコード番号ｃｎ＝１に対応付けられているテーブルインデックスｓ０とを入れ替える可変テーブル適応部３５２とを備える。
【０５２７】
上記構成によれば、可変テーブル適応部３５２は、動作条件ＣＯＮＤ１０２およびＣＯＮＤ１０４において、カウンタｃ１およびｃ２のスワップ（ｓｗａｐ（ｃ１，ｃ２））せず、可変テーブルＶＴ１００のテーブルインデックスｓ１およびｓ２のスワップ（ｓｗａｐ（ｓ１，ｓ２））のみを行う。
【０５２８】
スワップを行う動作条件においては、スワップ対象となるカウンタの値の差は、０または１となっている。このため、カウンタ値のスワップを省略しても、カウンタ値が実際のコード番号の発生確率と大きく変わる可能性は少ない。よって、カウンタ値のスワップを省略しても、符号化効率はほとんど低下しない。つまり、上記（Ｐ３）のようにカウンタ値をスワップしなくても、符号化効率の観点から言えば、ほとんど問題がない。
【０５２９】
このため、上記構成によれば、符号化効率をほとんど低下させずに、カウンタ値のスワップのオーバーヘッドを削減することができる。
【０５３０】
［２−１−２］正規化の変形例
上記では、正規化は、ｓｕｍ＝＝１５となった場合、ｓｕｍをリセット（ｓｕｍ＝０）するとともに、カウンタｃ０〜ｃ２の値を１ビット右シフトすると説明した。しかしながら、これに限られず、可変テーブル適応部３５２は、正規化において、以下の式（７）に示すように、各カウンタｃｘ（ｘ＝０，１，…）の値に対して所定値の減算およびクリップを行ってもよい。
【０５３１】
ｃnormal ｘ＝ｍｉｎ（０，ｃｘ−８）  ・・・  （７）
なお、式（７）においてｃnormal ｘは、正規化後のカウンタの値である。
【０５３２】
また、可変テーブル適応部３５２は、正規化において、以下の式（８）に示すように各カウンタｃｘ（ｘ＝０，１，…）の値に対して、所定値の減算処理を行ってもよい。
【０５３３】
ｃnormal ｘ＝ｃｘ−ｃmax  ・・・  （８）
なお、式（８）においてｃｍａｘは、設定されたカウンタの中で最大のコード番号に対応するカウンタの値である。
【０５３４】
［作用・効果］
以上に示したように、動画像復号装置１は、コード番号ｃｎをシンタックス値に変換して符号化データの復号を行う動画像復号装置１において、コード番号ｃｎと、シンタックス値を特定するためのテーブルインデックスｓｘとが対応付けられた可変テーブルＶＴ１００と、可変テーブルＶＴ１００において定義されている上記コード番号のうちの一つである第１のコード番号ｃｎ＝０の発生回数をカウントする第１の回数カウンタｃ０と、上記第１のコード番号より１大きい第２のコード番号の発生回数をカウントする第２の回数カウンタと、上記第１の回数カウンタｃ０および上記第２の回数カウンタｃ１の値の総計をカウントするｓｕｍカウンタ３５６と、上記第２の回数カウンタｃ０の値が、上記第２の回数カウンタｃ１の値以上になったとき、可変テーブルＶＴ１００において、上記第１のコード番号に対応づけられているテーブルインデックスｓ０と、上記第２のコード番号に対応付けられているテーブルインデックスｓ１とを入れ替える可変テーブル適応部３５２と、を備え、可変テーブル適応部３５２が、ｓｕｍカウンタ３５６の値が、予め定められた閾値に達したとき、ｓｕｍカウンタ３５６の値を初期化するとともに、上記第１の回数カウンタｃ０の値および上記第２の回数カウンタｃ１の値それぞれから所定の値を減算する。
【０５３５】
正規化においてシフト演算を行うと、過去の復号結果による影響が長く残ってしまい符号化効率が低下する場合がある。
【０５３６】
例えば、右１ｂｉｔシフトによる正規化の場合、ｃ＝８のカウンタ値がｃ＝０になるまでに、４ｂｉｔシフトさせなければならない。つまり、この場合、４回正規化を行わなければならない。
【０５３７】
これに対して、正規化において減算を行えば、過去の復号結果が残る期間を短くすることができる。例えば、式（７）では、８を減算しているので、１回の正規化で、ｃ＝８をｃ＝０にリセットすることができる。
【０５３８】
上記構成によれば、減算により過去の復号結果が残る期間を短くすることができ、これにより符号化効率が向上するという効果を奏する。
【０５３９】
（差分値カウンタ付き可変テーブル）
以下では、図３２を用いて、可変テーブル適応部３５２が、差分値カウンタ３５４付き可変テーブルＶＴ１００を用いて可変テーブル適応処理を行う場合の例について説明する。すなわち、以下では、可変テーブル適応部３５２が、カウンタセットＳＥＴ２を用いて、可変テーブル適応処理を行う例について説明する。また、この場合、上記Ｐ１〜Ｐ３を実施しなくても済むことについて説明する。
【０５４０】
まず、図３２を用いて、差分値カウンタ３５４付き可変テーブルＶＴ１００の構成について説明する。図３２は、差分値カウンタ３５４付き可変テーブルＶＴ１００について示す図である。
【０５４１】
可変テーブルＶＴ１００は、既に説明したとおりであるので、ここでは、その説明を省略する。
【０５４２】
差分値カウンタ３５４は、あるコード番号ｃｎの発生回数と、当該あるコード番号よりも１小さいコード番号ｃｎ−１の発生回数との差分近似値を保持するカウンタである。
【０５４３】
図３２に示すように、差分値カウンタ３５４は、コード番号ｃｎ＝０の発生回数と、ｃｎ＝１の発生回数との差分近似値を保持する差分値カウンタｃ’１、および、コード番号ｃｎ＝１の発生回数と、ｃｎ＝２の発生回数との差分近似値を保持する差分値カウンタｃ’２を備える。なお、以下では、差分値カウンタｃ’１のことを、コード番号ｃｎ＝１に対応する差分値カウンタとも称する。差分値カウンタｃ’２のことを、コード番号ｃｎ＝２に対応する差分値カウンタとも称する。
【０５４４】
なお、差分値カウンタの値は、規定のタイミング（例えば、ピクチャの復号開始時やスライスの復号開始時）でリセットされる。差分値カウンタのリセットは、全ての差分値カウンタの値を０に設定する。差分値カウンタのリセットで、差分値カウンタの値を０以外の値に設定しても構わない。
【０５４５】
[動作条件]
可変テーブル適応部３５２は、図３３に示す動作条件により、差分値カウンタおよび可変テーブルＶＴ１１を更新する。以下、図３３を参照しながら、各コード番号が発生した場合における差分値カウンタ更新およびテーブル適応処理の動作条件ＣＯＮＤ１０、ＣＯＮＤ１１、ＣＯＮＤ１２、ＣＯＮＤ２１、ＣＯＮＤ２２、およびＣＯＮＤ３０について説明する。
【０５４６】
動作条件ＣＯＮＤ１０  ｃｎ＝０が復号されたとき（ｃｎ＝＝０）：可変テーブル適応部３５２は、差分値カウンタｃ’１を１インクリメントする（ｃ’１＋＋）。
【０５４７】
動作条件ＣＯＮＤ１１  ｃｎ＝１が復号されたとき（ｃｎ＝＝１）であって、かつｃ’１！＝０であるとき：可変テーブル適応部３５２は、差分値カウンタｃ’１を１デクリメントする（ｃ’１−−）とともに、差分値カウンタｃ’２を１インクリメントする（ｃ’２＋＋）。
【０５４８】
動作条件ＣＯＮＤ１２  ｃｎ＝１が復号されたとき（ｃｎ＝＝１）であって、かつｃ’１＝＝０であるとき：可変テーブル適応部３５２は、差分値カウンタｃ’２を１インクリメントする（ｃ’２＋＋）とともに、テーブルインデックスｓ０およびｓ１のスワップ（ｓｗａｐ（ｓ０，ｓ１））を行う。
【０５４９】
動作条件ＣＯＮＤ２１  ｃｎ＝２が復号されたとき（ｃｎ＝＝２）であって、かつｃ’２！＝０であるとき：可変テーブル適応部３５２は、差分値カウンタｃ’２を１デクリメントする（ｃ’２−−）。
【０５５０】
動作条件ＣＯＮＤ２２  ｃｎ＝２が復号されたとき（ｃｎ＝＝２）であって、かつｃ’２＝＝０であるとき：可変テーブル適応部３５２は、差分値カウンタｃ’２を１デクリメントする（ｃ’２−−）とともに、テーブルインデックスｓ１およびｓ２のスワップ（ｓｗａｐ（ｓ０，ｓ１））を行う。
【０５５１】
動作条件ＣＯＮＤ３０  復号されたコード番号がｃｎ≧３であるとき：可変テーブル適応部３５２は、テーブルインデックスｓｃｎ−１およびｓｃｎのスワップ（ｓｗａｐ（ｓｃｎー１，ｓｃｎ））を行う。
【０５５２】
［可変テーブル適応処理の具体的な動作例］
図３４を用いて、可変テーブル適応部３５２の具体的な動作例について説明すると次のとおりである。
【０５５３】
図３４に示す可変テーブルＶＴ１１および差分値カウンタ３５４の状態ＳＴ１１は、初期状態を示している。状態ＳＴ１１において、テーブルインデックスｓ０、ｓ１、ｓ２、ｓ３、およびｓ４の値は、それぞれ、１、２、３、０、および４である。また、差分値カウンタｃ’１およびｃ’２の値はともに０である。
【０５５４】
まず、ｃｎ＝０が復号されることにより、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ１１から状態ＳＴ１２に遷移する。
【０５５５】
ｃｎ＝０の発生回数が増加し、ｃｎ＝０と、ｃｎ＝１との発生回数の差が増加する。よって、可変テーブル適応部３５２は、差分値カウンタｃ’１を１インクリメントする。
【０５５６】
ここで、ｃｎ＝１が復号されると、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ１２から状態ＳＴ１３に遷移する。ｃｎ＝１の発生回数が増加するので、ｃｎ＝０と、ｃｎ＝１とのカウントの差が減少するとともに、ｃｎ＝１と、ｃｎ＝２とのカウントの差が増加する。可変テーブル適応部３５２は、差分値カウンタｃ’１を１デクリメントするとともに、差分値カウンタｃ’２を１インクリメントする。差分値カウンタｃ’１およびｃ’２の値は、それぞれ、０および１になる。
【０５５７】
さらに、ｃｎ＝１が復号されると、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ１３から状態ＳＴ１４に遷移する。差分値カウンタｃ’１が０であるので、可変テーブル適応部３５２は、テーブルインデックスｓ０およびｓ１のスワップを行う。これにより、ｓ０＝２、ｓ１＝１となる。状態ＳＴ１４ではスワップを行っているので、差分値カウンタｃ’１の更新は行わない。一方、ｃｎ＝１と、ｃｎ＝２とのカウントの差が増加するため、可変テーブル適応部３５２は、差分値カウンタｃ’２を１インクリメントする。差分値カウンタｃ’２の値は２になる。
【０５５８】
ここで、ｃｎ＝３が復号されると、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ１４から状態ＳＴ１５に遷移する。ｃｎ＝３に対応する差分値カウンタはないため、可変テーブル適応部３５２は、差分値カウンタｃ’１およびｃ’２は変更しない。一方、可変テーブル適応部３５２は、可変テーブルのｃｎ＝２とｃｎ＝３とのテーブルインデックスの値をスワップする。
【０５５９】
（処理の流れ）
次に、図３５を用いて、可変テーブル適応処理の流れについて説明する。図３５は、可変テーブル適応処理の流れの一例について示すフローチャートである。
【０５６０】
コード番号変換設定部３４０Ａにおいて可変テーブル適応処理が開始されると、可変テーブル適応部３５２は、カウンタ数が０より大きいか否か（Ｓ５１）を判定する。
【０５６１】
カウンタ数が０より大きくない場合（Ｓ５１においてＮＯ）、可変テーブル適応部３５２は、可変テーブルをスワップする（Ｓ５３）。なお、可変テーブルのスワップとは、可変テーブルにおいて、復号したコード番号（ｃｎ）の要素と、ｃｎ−１の要素をスワップすることを意味する。ただし、ｃｎ＝０の場合にはスワップは実行されない。
【０５６２】
一方、カウンタ数が０より大きい場合（Ｓ５１においてＹＥＳ）、可変テーブル適応部３５２は、復号したｃｎがカウンタ数よりも小さいか否かを判定する（Ｓ５２）。
【０５６３】
復号したｃｎがカウンタ数よりも小さくない場合（Ｓ５２においてＮＯ）、可変テーブル適応部３５２は、可変テーブルをスワップする（Ｓ５３）。
【０５６４】
一方、復号したｃｎがカウンタ数よりも小さい場合（Ｓ５２においてＹＥＳ）、可変テーブル適応部３５２は、復号したコード番号が、０より大きいか否かを判定する（Ｓ５４）。
【０５６５】
復号したコード番号が、０より大きくない場合（Ｓ５４においてＮＯ）、処理はＳ５８に進む。
【０５６６】
復号したコード番号が、０より大きい場合（Ｓ５４においてＹＥＳ）、可変テーブル適応部３５２は、さらに復号したコード番号に対応する差分値カウンタの値が０であるか否かを判定する（Ｓ５５）。可変テーブル適応部３５２は、差分値カウンタの値が０である場合、可変テーブルをスワップし（Ｓ５６）、差分値カウンタの値が０でない場合、復号したコード番号に対応する差分値カウンタを１デクリメントする（Ｓ５７）。その後、処理はＳ５８に進む。
【０５６７】
続いて、Ｓ５８において、可変テーブル適応部３５２は、復号したコード番号より１大きいコード番号（ｃｎ＋１）が、カウンタ数より小さいか否かを判定する。
【０５６８】
復号したコード番号より１大きいコード番号（ｃｎ＋１）が、カウンタ数より小さい場合（Ｓ５８においてＹＥＳ）、可変テーブル適応部３５２は、さらにコード番号ｃｎ＋１に対応する差分値カウンタが最大値（ｍａｘＣｏｕｎｔ）であるか否かを判定する（Ｓ５９）。
【０５６９】
コード番号ｃｎ＋１に対応する差分値カウンタが最大値（ｍａｘＣｏｕｎｔ）でない場合（Ｓ５９においてＹＥＳ）、可変テーブル適応部３５２は、コード番号ｃｎ＋１に対応する差分値カウンタを１インクリメントして、これにより処理が終了する。
【０５７０】
なお、Ｓ５８またはＳ５９においてＮＯであれば、すぐに処理は終了する。
【０５７１】
［作用・効果］
以上に示したように、動画像復号装置１は、コード番号ｃｎをシンタックス値に変換して符号化データの復号を行う動画像復号装置１において、コード番号ｃｎと、シンタックス値を特定するためのテーブルインデックスｓｘとが対応付けられた可変テーブルＶＴ１００と、可変テーブルＶＴ１００において定義されている上記コード番号ｃｎのうちの一つである第１のコード番号ｃｎ＝０の発生回数と、該第１のコード番号より１大きい第２のコード番号ｃｎ＝１の発生回数との差分をカウントするカウンタｃ’１と、上記カウンタｃ’１において差分が０となったときに、上記テーブルにおいて、上記第１のコード番号ｃｎ＝０に対応付けられているテーブルインデックスｓ０と、上記第２のコード番号ｃｎ＝１に対応付けられているテーブルインデックスｓ１とを入れ替える入れ替え手段とを備える。
【０５７２】
上記構成によれば、次の作用・効果が得られる。まず、上述の（Ｐ１）について、ｓｕｍカウンタ３５６を設けなくてもすみ、またカウンタの数も１つ削減することができる。また、上述の（Ｐ２）についていえば、差分値をカウンタで保持するので、正規化を実施しなくてもかまわない。さらにいえば、カウンタの値の範囲を狭くすることができ、カウンタのビット数を減らすことができる。また、上述の（Ｐ３）についていえば、カウンタの値のスワップを行わなくても済む。
【０５７３】
ここで、図３５で示す可変テーブル適応処理において、差分値カウンタに保持される値が厳密な差分値ではなく、差分近似値である点を補足する。厳密な差分値は、例えば後述の変形例（図３６で示す可変テーブル適応処理）において計算される。図３５で示す可変テーブル適応処理では、Ｓ５５において差分カウンタ値が０の場合に可変テーブルのスワップのみを実行し、カウンタ値の更新を省略することで差分値カウンタの更新処理を簡略化している。
【０５７４】
なお、可変テーブルＶＴ１００は、コード番号とシンタックス値との間の任意の変換において適用され得る。また、カウンタセットＳＥＴ１およびカウンタセットＳＥＴ２は、任意の種類の可変テーブルＶＴ１００に対して設定され得る。
【０５７５】
なお、カウンタセットＳＥＴ１およびカウンタセットＳＥＴ２は、特に以下のシンタックスに対応する可変テーブルＶＴ１００に対して設定することが好ましい。
【０５７６】
（１）非ゼロ変換係数の存在有無フラグ（Ｃｂｆ）
Ｃｂｆ(Coded block flag)は、変換ツリー(Transform Tree)の対象ノードに、非ゼロの変換係数が存在するか否かを示すフラグである。
【０５７７】
輝度/色差成分毎にＣｂｆが存在する。輝度成分のＣｂｆ（Ｙ  Ｃｂｆ）と色差成分のＣｂｆ（Ｕ  ＣｂｆおよびＶ  Ｃｂｆ）の集合であるシンタックスであるＣｂｐ（Coded Block Pattern）や、複数の子ノードのＣｂｆを集めたシンタックスも対象である。
【０５７８】
（２）変換分割フラグ（Transform split flag）
変換分割フラグは、変換単位のサイズを決めるシンタックスであり、変換ツリーの対象ノードを４分割するか否かを示す。Ｃｂｆとの組み合わせ（例えば、｛Y Cbf, U Cbf, V Cbf, Transfrom split flag｝）が用いられる場合もある。
【０５７９】
（３）インター予測方向と参照画像インデックス
インター予測方向は、インター予測に用いる参照画像リストを選択するパラメータであり、“Ｌ０の使用”、“Ｌ１の使用”、“Ｌ０とＬ１との両方を使用”の何れかの値を取り得る。
【０５８０】
また、参照画像インデックスは、参照画像リスト内の一つの画像を動き補償予測の参照画像として選択するパラメータである。インター予測方向と参照画像インデックスとの組み合わせ(MI)が用いられる場合もある。
【０５８１】
また、カウンタセットＳＥＴ１およびカウンタセットＳＥＴ２は、コード番号とシンタックス値との間の可変テーブルＶＴ１００以外にも適用にすることができる。
【０５８２】
例えば、ｒｕｎＴａｂｌｅを可変テーブルとした上で、カウンタセットＳＥＴ１およびカウンタセットＳＥＴ２を適用することができる。
【０５８３】
なお、本実施形態では、コード番号変換設定部３４０Ａが、カウンタセットＳＥＴ１とカウンタセットＳＥＴ２の両方を備えているものとして記載したが、いずれか一方だけ備えるようコード番号変換設定部を構成してもよい。
【０５８４】
例えば、全ての可変テーブル適応処理をカウンタセットＳＥＴ２、すなわち差分値カウンタのみを用いるようにコード番号変換設定部を構成することで、動画像復号装置２において正規化処理を実行する必要がなくなるため、当該処理に係る処理または回路を削減できる。
【０５８５】
［変形例］
［２−２−１］厳密な差分値を差分カウンタに保持する
以下において、図３６を用いて、可変テーブル適応処理の流れの別の例について説明する。図３６は、可変テーブル適応処理の流れの別の例について示すフローチャートである。
【０５８６】
図３６に示すフローチャートでは、コード番号ｃｎ＋１のインクリメントを行うか否かを、フラグにより制御する。さらに言えば、図３６に示す可変テーブル適応処理では、図３５で示した可変テーブル適応処理に較べて、厳密な差分値を差分カウンタに保持する。
【０５８７】
Ｓ７１〜Ｓ７５は、図３５を用いて示したＳ５１〜Ｓ５５と同様であるので、ここでは、その説明を省略する。
【０５８８】
Ｓ７４においてＮＯである場合、コード番号変換設定部３４０Ａは、コード番号ｃｎ−１をインクリメントするか否かを示すインクリメントフラグ（ＩｎｃＦｌａｇ）に１（インクリメントする）を設定する（Ｓ７６）。
【０５８９】
また、Ｓ７５において、ＹＥＳである場合、コード番号変換設定部３４０Ａは、コード番号ｃｎに対応する差分値カウンタに１をセットする（Ｓ７７）とともに、インクリメントフラグに０（インクリメントしない）を設定し（Ｓ７８）、さらに可変テーブルをスワップする（Ｓ７９）。このＳ７５、Ｓ７７、Ｓ７８、Ｓ７９の経路を通る処理は、ｃｎの発生数と、ｃｎ−１の発生数とが等しい状態ＳＴ２１で、ｃｎが復号されてスワップが発生するケースに対応する。
【０５９０】
また、Ｓ７５において、ＮＯである場合、コード番号変換設定部３４０Ａは、コード番号ｃｎに対応する差分値カウンタが、１であるか否かを判定する（Ｓ８０）。
【０５９１】
ここで、コード番号ｃｎに対応する差分値カウンタが、１である場合（Ｓ８０においてＹＥＳ）、コード番号変換設定部３４０Ａは、コード番号ｃｎに対応する差分値カウンタに０をセットする（Ｓ８１）とともに、インクリメントフラグに１（インクリメントする）を設定し（Ｓ８２）、さらに可変テーブルをスワップする（Ｓ７９）。
【０５９２】
一方、コード番号ｃｎに対応する差分値カウンタが、１でない場合（Ｓ８０においてＮＯ）、コード番号変換設定部３４０Ａは、コード番号ｃｎに対応する差分値カウンタを１デクリメントする（Ｓ８３）とともに、インクリメントフラグに１（インクリメントする）を設定する（Ｓ８４）。
【０５９３】
Ｓ７６、Ｓ７９またはＳ８４が終わると、処理は、Ｓ８５に進む。Ｓ８５およびＳ８６については、図３５を用いて説明したＳ５８およびＳ５９と同様であるので、ここでは、その説明を省略する。
【０５９４】
Ｓ８６において、ＹＥＳである場合、コード番号変換設定部３４０Ａは、インクリメントフラグが１（インクリメントする）か否かを判定する（Ｓ８７）。
【０５９５】
コード番号変換設定部３４０Ａは、インクリメントフラグが１（インクリメントする）の場合（Ｓ８７においてＹＥＳ）、コード番号ｃｎ＋１に対応する差分値カウンタを１インクリメント（Ｓ８８）して処理を終了し、そうでなければ（Ｓ８８においてＮＯ）、そのまま処理を終了する。
【０５９６】
（具体的動作例）
次に、図３７〜図３９を用いて、図３６を用いて示した可変テーブル適応処理の流れの別の例の具体的動作について説明する。
【０５９７】
図３７、図３８、および図３９は、それぞれ、コード番号に対応する差分値カウンタの値が“０である状態”、“１である状態”、および“１より大きい状態”から可変テーブル適応を行う場合の具体的動作について示している。
【０５９８】
なお、図３７、図３８、および図３９は、説明の便宜上、可変テーブルのエントリのうち、ｃｎ−１、ｃｎ、およびｃｎ＋１に対応する部分について示している。
【０５９９】
可変テーブルに格納されるテーブルインデックスの初期値は、ｃｎ−１、ｃｎ、およびｃｎ＋１について、それぞれ、０、２および１である。
【０６００】
また、差分値カウンタは、ｃｎおよびｃｎ＋１について設けられている。そして、差分値カウンタの右に示すブロックは、対応するコード番号の発生回数を示している。
【０６０１】
（ｃｏｕｎｔｅｒ［ｃｎ］＝＝０の場合）
図３７を用いて、コード番号に対応する差分値カウンタの値が０である状態からの可変テーブル適応処理について説明すると次のとおりである。なお、図３７に示す例では、初期状態ＳＴ２１において、ｃｎに対応する差分値カウンタには、０が設定されており、ｃｎ＋１に対応する差分値カウンタには、３が設定されている。また、ｃｎ−１、ｃｎ、およびｃｎ＋１の発生回数は、それぞれ、８、８、および５である。また、初期状態ＳＴ２１は、Ｓ７５においてＹＥＳの経路を通過する。
【０６０２】
ｃｎの復号により、差分値カウンタおよびテーブルインデックスの状態が、初期状態ＳＴ２１から状態ＳＴ２２に遷移する。ｃｎの発生回数が９となるので、ｃｎに対応する差分値カウンタは、−１に設定される。
【０６０３】
状態ＳＴ２２において、スワップが実行される（Ｓ７９に対応）と、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ２２からＳＴ２３に遷移する。ｃｎ−１に対応するテーブルインデックスの値“０”と、ｃｎに対応するテーブルインデックスの値“２”とがスワップされる。ここで、発生回数もｃｎ−１と、ｃｎと入れ替わるので、ｃｎに対応する差分値カウンタには、結果として１が設定されることになる（Ｓ７７に対応）。なお、ｃｎ＋１に対応する差分値カウンタには、変化がない（Ｓ７８に対応）。
【０６０４】
（ｃｏｕｎｔｅｒ［ｃｎ］＝＝１の場合）
次に、図３８を用いて、コード番号に対応する差分値カウンタの値が１である状態からの可変テーブル適応処理について説明すると次のとおりである。なお、図３８に示す例では、初期状態ＳＴ３１において、ｃｎに対応する差分値カウンタには、１が設定されており、ｃｎ＋１に対応する差分値カウンタには、３が設定されている。また、ｃｎ−１、ｃｎ、およびｃｎ＋１の発生回数は、それぞれ、９、８、および５である。また、初期状態ＳＴ３１は、Ｓ８０においてＹＥＳの経路を通過する。
【０６０５】
ｃｎが復号されることにより、差分値カウンタおよびテーブルインデックスの状態が、初期状態ＳＴ３１から状態ＳＴ３２に遷移する。
【０６０６】
ｃｎ−１およびｃｎの発生回数は等しくなるので、ｃｎに対応する差分値カウンタの値は、０になる（Ｓ８１に対応）。また、このときｃｎの発生回数と、ｃｎ＋１の発生回数との差は１大きく、ｃｎ＋１に対応する差分値カウンタの値を１インクリメントして４にする（Ｓ８２、Ｓ８８に対応）。
【０６０７】
状態ＳＴ３２において、スワップが実行される（Ｓ７９に対応）と、差分値カウンタおよびテーブルインデックスの状態が、状態ＳＴ２２からＳＴ２３に遷移する。ｃｎ−１に対応するテーブルインデックスの値“０”と、ｃｎに対応するテーブルインデックスの値“２”とがスワップされる。なお、発生回数もｃｎ−１と、ｃｎと入れ替えているが、ｃｎ−１およびｃｎの発生回数は等しいので、入れ替えの前後においてその値には変化がない。
【０６０８】
（ｃｏｕｎｔｅｒ［ｃｎ］＞１の場合）
次に、図３９を用いて、コード番号に対応する差分値カウンタの値が１より大きい状態からの可変テーブル適応処理について説明すると次のとおりである。なお、図３９に示す例では、初期状態ＳＴ４１において、ｃｎに対応する差分値カウンタには、２が設定されており、ｃｎ＋１に対応する差分値カウンタには、１が設定されている。また、ｃｎ−１、ｃｎ、およびｃｎ＋１の発生回数は、それぞれ、８、６、および５である。また、初期状態ＳＴ４１は、Ｓ８０においてＮＯの経路を通過する。
【０６０９】
ｃｎが復号されることにより、差分値カウンタおよびテーブルインデックスの状態が、初期状態ＳＴ４１から状態ＳＴ４２に遷移する。
【０６１０】
ｃｎの発生回数が１増加し、ｃｎ−１の発生回数と、ｃｎの発生回数との差が１減少するので、ｃｎに対応する差分値カウンタの値は、２から１デクリメントされて１になる（Ｓ８３に対応）。また、このときｃｎの発生回数と、ｃｎ＋１の発生回数との差が１大きくなるので、ｃｎ＋１に対応する差分値カウンタの値を１インクリメントして２にする（Ｓ８４、Ｓ８８に対応）。なお、この例では、スワップは実行されない。
【０６１１】
［２−２−２］  差分値カウンタ付き可変テーブル適応処理のさらに別の例
以下では、図４０を用いて、差分値カウンタ３５４付き可変テーブルＶＴ１００を用いて可変テーブル適応処理を行う場合のさらに別の例について説明する。
【０６１２】
（処理の流れ）
図４０は、可変テーブル適応処理の流れのさらに別の例について示すフローチャートである。
【０６１３】
コード番号変換設定部３４０Ａにおいて可変テーブル適応処理が開始されると、可変テーブル適応部３５２は、カウンタ数（cntNum）が０より大きいか否か、および、復号したｃｎがカウンタ数より小さいか否かを判定する（Ｓ９０）。カウンタ数が０以下、または、ｃｎがカウンタ数以上である場合（Ｓ９０においてＮＯ）、可変テーブル適応部３５２は、可変テーブルをスワップする（Ｓ９１）。
【０６１４】
一方、カウンタ数が０より大きく、かつ、ｃｎがカウンタ数より小さい場合（Ｓ９０においてＹＥＳ）、可変テーブル適応部３５２は、復号したコード番号に対応する差分値カウンタの値（dcnt[cn]）が０であるか否かを判定する（Ｓ９２）。
【０６１５】
可変テーブル適応部３５２は、差分値カウンタの値が０である場合（Ｓ９２においてＹＥＳ）、可変テーブルをスワップする一方で（Ｓ９３）、差分値カウンタの値が０でない場合（Ｓ９２においてＮＯ）、復号したコード番号に対応する差分値カウンタを１デクリメントする（Ｓ９４）。その後、処理はＳ９５に進む。
【０６１６】
続いて、Ｓ９５において、可変テーブル適応部３５２は、復号したコード番号より１大きいコード番号（ｃｎ＋１）が、カウンタ数より小さいか否かを判定する。
【０６１７】
復号したコード番号より１大きいコード番号（ｃｎ＋１）が、カウンタ数より小さい場合（Ｓ９５においてＹＥＳ）、可変テーブル適応部３５２は、ｃｎ＋１に対応する差分値カウンタ（ｄｃｎｔ［ｃｎ＋１］）を次の式（９）により更新して処理を終了する。
【０６１８】
ｄｃｎｔ［ｃｎ＋１］＝ｍｉｎ（ｄｃｎｔ［ｃｎ＋１］、３）・・・（９）
すなわち、差分値カウンタの値を１インクリメントした値と既定の値（式（９）においては“３”）のうち小さい方の値を更新後の差分値カウンタの値に設定する。ここで前記既定の値は差分値カウンタの最大値に対応する値である。換言すると、差分値カウンタの値を、差分値カウンタの値を１インクリメントした値を差分値カウンタの最大値でクリップした値により更新する。
【０６１９】
なお、Ｓ９５においてＮＯであれば、すぐに処理は終了する。また、上記の可変テーブルの適応処理において、可変テーブルのスワップとは、上述のとおり可変テーブルにおいて、復号したコード番号（ｃｎ）の要素と、ｃｎ−１の要素をスワップすることを意味する。ただし、ｃｎ＝０の場合にはスワップは実行されない。
【０６２０】
図４０を用いて示した可変テーブルの適応処理によれば、図３５や図３６を用いて説明した差分値カウンタ付き可変テーブルの適応処理と同様の効果が得られる。
【０６２１】
（処理の流れの別表現）
以上において、図４０を用いて説明した可変テーブルの適応処理は、復号されたコード番号を入力として、可変テーブルの各要素値と差分値カウンタの配列の各要素値とを更新する可変テーブル更新処理として、下記のとおり表すこともできる。
【０６２２】
［可変テーブル（Codeword index mapping）の更新処理］
この処理への入力は、コード番号（VLC codeword indexes）とsyntax値との間の対応関係を規定する可変テーブル（indexMappingTable）と、コード番号(codeNum)と、差分値カウンタの数を示すcounterNumとである。さらに、counterNumの値がゼロではない場合、差分値カウンタの値を保存する、０から（counterNum-1）の値にインデックス付けされた差分値カウンタの配列（diffCounterArray）が入力される。
【０６２３】
この処理の出力は、それぞれ更新された、可変テーブル、および、差分値カウンタの配列（counterNumの値がゼロではない場合）である。
【０６２４】
更新処理は以下の手順で実行される。
【０６２５】
・syntax値Valの値が、コード番号に対応する可変テーブルの要素（indexMappingTable[codeNum]）に設定される。
【０６２６】
・codeNumが1より小さくない場合（１以上の場合）、codeNumPreの値が(codeNum-1)に設定される。それ以外の場合（codeNumが０以下の場合）、codeNumPreの値がcodeNumに設定される。syntax値ValPreの値がcodeNumPreに対応する可変テーブルの要素（indexMappingTable[codeNumPre]）に設定される。
【０６２７】
・codeNumがcounterNum以上の場合、codeNumに対応する可変テーブルの要素とcodeNumPreに対応する可変テーブルの要素が交換されて処理を終了する。
【０６２８】
・それ以外の場合（codeNumがcounterNumより小さい場合）、以下の処理が実行される。
【０６２９】
・codeNumに対応する差分値カウンタの要素（diffCounterArray[codeNum]）の値が０に等しい場合、codeNumに対応する可変テーブルの要素とcodeNumPreに対応する可変テーブルの要素が交換される。
【０６３０】
・それ以外の場合（codeNumに対応する差分値カウンタの要素が０に等しくない場合）、codeNumに対応する差分カウンタの要素が１デクリメントされる。
【０６３１】
・codeNumが(counterNum-1)より小さい場合、codeNum+1に対応する差分値カウンタの値は、差分値カウンタの最大値を既定する値（例えば３）と、codeNum+1に対応する差分値カウンタの値を１インクリメントした値とのうち小さい方の値（Min(3,diffCoutnerArray[codeNum+1]+1)）に設定される。
〔動画像符号化装置〕
上述のコード番号変換設定部３４０Ａの構成は、動画像符号化装置２のコード番号変換設定部４３０にも適用可能である。
【０６３２】
すなわち、動画像符号化装置２の可変長符号化部４００は、上述したコード番号変換設定部３４０Ａの可変テーブル選択部３５１、可変テーブル適応部３５２、可変テーブル記録部３５３、差分値カウンタ３５４、回数カウンタ３５５、およびｓｕｍカウンタ３５６と同様の構成を備えていてもよい。
【０６３３】
なお、動画像復号装置１では、上述のように設定された可変テーブルを用いてコード番号からシンタックス値への変換を行うのに対して、動画像符号化装置２では、上述のように設定された可変テーブルを用いてシンタックス値からコード番号への変換を行う点で異なる。
【０６３４】
しかしながら、可変長符号化部４００が用いる可変テーブルは、上述した可変テーブル選択部３５１による可変テーブルの選択方法、および、可変テーブル適応部３５２による可変テーブル適応処理を用いることができる。これは、可変テーブルによるコード番号−シンタックス値の間の変換が、動画像復号装置１および動画像符号化装置２の間では、１対１で対応しているからである。
〔その他の変形例〕
また、上述した動画像復号装置１および動画像符号化装置２の各ブロックは、集積回路（ＩＣチップ）上に形成された論理回路によってハードウェア的に実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェア的に実現してもよい。
【０６３５】
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（Read Only Memory）、上記プログラムを展開するＲＡＭ（Random Access Memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０６３６】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ／ブルーレイディスク（登録商標）等の光ディスクを含むディスク類、ＩＣカード（メモリカードを含む）／光カード等のカード類、マスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ類、あるいはＰＬＤ（Programmable logic device）やＦＰＧＡ（Field Programmable Gate Array）等の論理回路類などを用いることができる。
【０６３７】
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（Virtual Private Network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１無線、ＨＤＲ（High Data Rate）、ＮＦＣ（Near Field Communication）、ＤＬＮＡ（Digital Living Network Alliance）、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０６３８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０６３９】
本発明は、画像データが符号化された符号化データを復号する画像復号装置、および、画像データが符号化された符号化データを生成する画像符号化装置に好適に適用することができる。また、画像符号化装置によって生成され、画像復号装置によって参照される符号化データのデータ構造に好適に適用することができる。
【符号の説明】
【０６４０】
１  動画像復号装置（画像復号装置）
２  動画像符号化装置（画像符号化装置）
３３０  ＶＬＣ方法選択部
３３１  ＶＬＣ方法切替部（リスト選択手段、更新手段、保持手段）
３３２  ＶＬＣ選択用テーブル（保持手段）
３３３  コード番号復号方法記憶部（可変長符号化手法）
３４０  コード番号変換設定部
３４１  中間コード番号算出部
３４２  中間最大ラン算出部
３４３  ラン値設定部（ラン値設定手段）
３４４  パラメータ修正部（割り当て指定設定手段）
３４５  コード番号変換テーブル（対応付け手段）
３４６、３４６Ａ、３４６Ｂ  ｒｕｎＴａｂｌｅ（対応テーブル）
３４０Ａ  コード番号変換設定部
３５２  可変テーブル適応部（入れ替え手段、正規化手段、カウンタ制御手段、差分近似値更新手段）
３５３  可変テーブル記録部３５３
３５４  差分値カウンタ（カウンタ）
３５５  ｓｕｍカウンタ（総計カウンタ）
３５６  回数カウンタ（カウンタ）
ＶＴ１００  可変テーブル（テーブル）
【図１】
2013012947.tif 000003
【図２】
2013012947.tif 000004
【図３】
2013012947.tif 000005
【図４】
2013012947.tif 000006
【図５】
2013012947.tif 000007
【図６】
2013012947.tif 000008
【図７】
2013012947.tif 000009
【図８】
2013012947.tif 000010
【図９】
2013012947.tif 000011
【図１０】
2013012947.tif 000012
【図１１】
2013012947.tif 000013
【図１２】
2013012947.tif 000014
【図１３】
2013012947.tif 000015
【図１４】
2013012947.tif 000016
【図１５】
2013012947.tif 000017
【図１６】
2013012947.tif 000018
【図１７】
2013012947.tif 000019
【図１８】
2013012947.tif 000020
【図１９】
2013012947.tif 000021
【図２０】
2013012947.tif 000022
【図２１】
2013012947.tif 000023
【図２２】
2013012947.tif 000024
【図２３】
2013012947.tif 000025
【図２４】
2013012947.tif 000026
【図２５】
2013012947.tif 000027
【図２６】
2013012947.tif 000028
【図２７】
2013012947.tif 000029
【図２８】
2013012947.tif 000030
【図２９】
2013012947.tif 000031
【図３０】
2013012947.tif 000032
【図３１】
2013012947.tif 000033
【図３２】
2013012947.tif 000034
【図３３】
2013012947.tif 000035
【図３４】
2013012947.tif 000036
【図３５】
2013012947.tif 000037
【図３６】
2013012947.tif 000038
【図３７】
2013012947.tif 000039
【図３８】
2013012947.tif 000040
【図３９】
2013012947.tif 000041
【図４０】
2013012947.tif 000042