(57)【特許請求の範囲】
【請求項１】
ＶＬＣ復号モジュールを備えるデバイスが、映像データのブロックを復号するための方法であって、
前記ＶＬＣ復号モジュールが、第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングすることと、ここで、前記第１の技法は、前記第１の変換係数と関連付けられたｒｕｎ値が、前記第１のコード番号の値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記ＶＬＣ復号モジュールが、前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングすることと、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
前記ＶＬＣ復号モジュールが、前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用することと；
を備える、映像データのブロックを復号するための方法。
【請求項２】
前記ＶＬＣ復号モジュールが、メモリに格納された前記マッピングテーブルを用いてマッピングすることは、前記ＶＬＣ復号モジュールが、前記ブロックの前記第２の変換係数の位置ｋに基づいて前記メモリに格納された複数のマッピングテーブルから前記マッピングテーブルを選択することを備える請求項１に記載の方法。
【請求項３】
前記複数のマッピングテーブルは、前記ブロックの潜在的な係数位置の数よりも少ないマッピングテーブルを備える請求項２に記載の方法。
【請求項４】
第３の変換係数の位置ｋと予め決定されたスレショルドとの比較に基づいて、映像データのブロックの前記第３の変換係数に関する第３のコード番号ｃｎから前記第３の変換係数と関連付けられた第３の少なくとも１つの値にマッピングするために、前記ＶＬＣ復号モジュールが、前記第１の技法又は前記第２の技法のいずれを使用するかを決定することをさらに備える請求項１に記載の方法。
【請求項５】
前記第１の変換係数と関連付けられた前記値及び前記第２の変換係数と関連付けられた前記値は、ｌｅｖｅｌＩＤ値を各々備える請求項１に記載の方法。
【請求項６】
前記第１の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示し、前記第２の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示す請求項５に記載の方法。
【請求項７】
前記第１の変換係数と関連付けられた前記第１の値及び前記第２の変換係数と関連付けられた前記第２の値は、ｒｕｎ値を各々備える請求項１に記載の方法。
【請求項８】
前記第１の係数に関する前記ｒｕｎ値は、前記ブロックの前記第１の係数と次のゼロでない係数との間のゼロ値係数の数を示し、前記第２の係数に関する前記ｒｕｎ値は、前記ブロックの前記第２の係数と次のゼロでない係数との間のゼロ値係数の数を示す請求項７に記載の方法。
【請求項９】
前記ＶＬＣ復号モジュールが、前記第１の変換係数に関する前記第１のコード番号ｃｎを表す第１のＶＬＣコードワードを決定することと、
前記ＶＬＣ復号モジュールが、前記決定された第１のＶＬＣコードワードに基づいて前記第１のコード番号ｃｎを決定するためにメモリに格納された第１のＶＬＣテーブルを使用することと、
前記ＶＬＣ復号モジュールが、前記第２の変換係数に関する前記第２のコード番号ｃｎを表す第２のＶＬＣコードワードを決定することと、
前記ＶＬＣ復号モジュールが、前記決定された第２のＶＬＣコードワードに基づいて前記第２のコード番号ｃｎを決定するためにメモリに格納された第２のＶＬＣテーブルを使用することと、をさらに備える請求項１に記載の方法。
【請求項１０】
映像データのブロックを復号するためのデバイスであって、
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングし、ここで、前記第１の技法は、前記第１の変換係数と関連付けられたｒｕｎ値が、前記第１のコード番号の値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングし、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；及び
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用する；
ように構成されたＶＬＣ復号モジュールを備える、デバイス。
【請求項１１】
映像データのブロックを復号するためのデバイスであって、
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングするための手段と、ここで、前記第１の技法は、前記第１の変換係数と関連付けられたｒｕｎ値が、前記第１のコード番号の値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングするための手段と、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用するための手段と；
を備える、映像データのブロックを復号するためのデバイス。
【請求項１２】
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングし、ここで、前記第１の技法は、前記第１の変換係数と関連付けられたｒｕｎ値が、前記第１のコード番号の値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングし、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；及び
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用する；
ことをコンピューティングデバイスに行わせるように構成された命令を格納するコンピュータによって読み取り可能な記憶媒体。
【請求項１３】
ＶＬＣ復号モジュールを備えるデバイスが、映像データのブロックを符号化するための方法であって、
前記ＶＬＣ復号モジュールが、第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングすることと、ここで、前記第１の技法は、前記第１のコード番号の値が、前記第１の係数と関連付けられたｒｕｎ値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記ＶＬＣ復号モジュールが、前記第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングすることと、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
前記ＶＬＣ復号モジュールが、第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用することと；
前記ＶＬＣ復号モジュールが、第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用することと；
前記ＶＬＣ復号モジュールが、前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力することと；
を備える、映像データのブロックを符号化するための方法。
【請求項１４】
前記ＶＬＣ復号モジュールが、メモリに格納された前記マッピングテーブルを用いてマッピングすることは、前記ＶＬＣ復号モジュールが、前記ブロックの前記第２の変換係数の位置ｋに基づいて前記メモリに格納された複数のマッピングテーブルから前記マッピングテーブルを選択することを備える請求項１３に記載の方法。
【請求項１５】
前記複数のマッピングテーブルは、前記ブロックの潜在的な係数位置の数よりも少ないマッピングテーブルを備える請求項１４に記載の方法。
【請求項１６】
第３の変換係数の位置ｋと予め決定されたスレショルドとの比較に基づいて、前記第３の変換係数と関連付けられた第３の少なくとも１つの値から第３のコード番号ｃｎにマッピングするために、前記ＶＬＣ復号モジュールが、前記第１の技法又は前記第２の技法のいずれを使用するかを決定することをさらに備える請求項１３に記載の方法。
【請求項１７】
前記第１の変換係数と関連付けられた前記値及び前記第２の変換係数と関連付けられた前記値は、ｌｅｖｅｌＩＤ値を各々備える請求項１３に記載の方法。
【請求項１８】
前記第１の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示し、前記第２の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示す請求項１７記載の方法。
【請求項１９】
前記第１の変換係数と関連付けられた前記第１の値及び前記第２の変換係数と関連付けられた前記第２の値は、ｒｕｎ値を各々備える請求項１３に記載の方法。
【請求項２０】
前記第１の係数に関する前記ｒｕｎ値は、前記ブロックの前記第１の係数と次のゼロでない係数との間のゼロ値係数の数を示し、前記第２の係数に関する前記ｒｕｎ値は、前記ブロックの前記第２の係数と次のゼロでない係数との間のゼロ値係数の数を示す請求項１９に記載の方法。
【請求項２１】
映像データのブロックを符号化するためのデバイスであって、
第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングし、ここで、前記第１の技法は、前記第１のコード番号の値が、前記第１の係数と関連付けられたｒｕｎ値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングし、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用し；
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用し；及び
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力する；
ように構成されたＶＬＣ符号化モジュールを備える、デバイス。
【請求項２２】
映像データのブロックを符号化するためのデバイスであって、
第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングするための手段と、ここで、前記第１の技法は、前記第１のコード番号の値が、前記第１の係数と関連付けられたｒｕｎ値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングするための手段と、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用するための手段と；
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用するための手段と；
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力するための手段と；
を備える、デバイス。
【請求項２３】
第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングし、ここで、前記第１の技法は、前記第１のコード番号の値が、前記第１の係数と関連付けられたｒｕｎ値の一次関数となるように、構造化されたマッピングを実施することを備える；
前記第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングし、ここで、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える；
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用し；
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用し；及び
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力する；
ことをコンピューティングデバイスに行わせるように構成された命令を格納するコンピュータによって読み取り可能な記憶媒体。
【請求項２４】
前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備える請求項２３に記載のコンピュータによって読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
３５Ｕ．Ｓ．Ｃ．§１１９に基づく優先権の主張
本特許出願は、米国仮特許出願第６１／４２９，４１５号（出願日：２０１１年１月３日）、第６１／４４９，６５０号（出願日：２０１１年３月５日）、及び第６１／５０５，５１４号（出願日：２０１１年７月７日）の利益を主張するものであり、それらの各々の内容全体が、引用によってここに組み入れられている
本開示は、映像のコーディング及び圧縮に関するものである。本開示は、より具体的には、可変長コーディング（ＶＬＣ）を用いて量子化された変換係数をコーディングするための技法を対象とするものである。
【背景技術】
【０００２】
映像コーディングでは、量子化された変換係数、及び、符号化されるブロックと基準ブロックとの間の相対的な動きを表した動きベクトルを“構文要素”と呼ぶことができる。構文要素は、その他の制御情報とともに、映像シーケンスのコーディングされた表現を形成することができる。幾つかの例では、符号器から復号器への送信前に、構文要素をエントロピーコーディングし、それによってそれらの表現のために必要なビット数をさらに減少させることができる。エントロピーコーディングは、分散性質を利用することによって送信された又は格納されたシンボル（例えば、構文要素）を表現するために要求されるビット数を最少化することを目指したロスレス（ｌｏｓｓｌｅｓｓ）動作であると説明することができる（例えば、幾つかのシンボルは、その他よりも頻繁に発生する）。
【０００３】
映像コーダ（ｖｉｄｅｏ  ｃｏｄｅｒ）によって採用される１つのエントロピーコーディング方法は、可変長コーディング（ＶＬＣ）である。ＶＬＣにより、ＶＬＣコードワード（ｃｏｄｅ  ｗｏｒｄ）（符号語）（ビット（０及び１）のシーケンス）を各シンボル（例えば、構文要素）に割り当てることができる。ＶＬＣコードワードは、コードワードの長さが、コードワードによって表されるシンボルがどの程度頻繁に生じるかに対応するように構築することができる。例えば、より頻繁に生じるシンボルは、より短いＶＬＣコードワードによって表すことができる。さらに、ＶＬＣコードワードは、それらのコードワードが一意で復号可能であるように構築することができる。例えば、復号器が有限長の有効なビットのシーケンスを受信した場合は、復号されたときに受信されたビットのシーケンスを生成することになることが可能な入力シンボルのシーケンスは１つだけ存在するだけであることができる。
【発明の概要】
【０００４】
本開示は、本開示の可変長コード（ＶＬＣ）技法を用いて映像データのブロックの変換係数をコーディングすることを対象とする。本開示の一態様により、映像データのブロックの第１の数の係数に関して構造化されたマッピング（例えば、数学的関係）に基づいて少なくとも１つの値とコード番号（ｃｏｄｅ  ｎｕｍｂｅｒ）ｃｎとの間でマッピングするための技法、及び、映像データのブロックの第２の数の係数に関して少なくとも１つと値とコード番号ｃｎとの間でマッピングするためにメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用するための技法について説明される。
【０００５】
少なくとも１つの値は、ｒｕｎ符号化モードによりシグナリングされたｒｕｎ構文要素の値及びｌｅｖｅｌ_ＩＤ構文要素の値のうちの１つ以上を含むことができる。コード番号ｃｎは、１つ以上のＶＬＣテーブルから選択されたＶＬＣテーブル内のインデックスを示すことができる。幾つかの例では、メモリに格納された複数のマッピングテーブルは、変換係数と関連付けられたコード番号ｃｎと少なくとも２つの構文要素（例えば、変換係数と関連付けられた両方又はｌｅｖｅｌ_ＩＤ及びｒｕｎ値）との間でマッピングするように各々構成することができる。例えば、複数のマッピングテーブルの各テーブルは、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を定義することができる。
【０００６】
本開示の他の態様により、変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素とコード番号ｃｎとの間でマッピングするために第１の技法又は第２の技法のうちの１つを選択的に使用することに基づいて変換係数をコーディングするための技法が説明される。これらの態様により、コーダは、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素と関連付けられた値に依存して、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルに異なる形でアクセスすることができる。本開示のこれらの態様により、メモリに格納されたマッピングテーブルは、本開示のその他の態様により上述されるようにコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の両方との間の関係を定義しない。その代わりに、メモリに格納されたマッピングテーブルは、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を定義することができるだけである。
【０００７】
幾つかの例では、第１又は第２の技法を選択的に使用することによってコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングするために、コーダは、変換係数に関する位置ｋを決定することができる。位置ｋに基づき、コーダは、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを選択することができる。コーダは、コード番号ｃｎと又はｌｅｖｅｌ_ＩＤ構文要素と関連付けられた値をさらに決定することができる。コーダは、決定された値に依存して、変換係数を復号するために第１の技法又は第２の技法により選択されたマッピングテーブルにアクセスすることができる。例えば、第１の技法により、コーダは、第１の数学的関係に基づいて選択されたマッピングテーブルにアクセスすることができる。第２の技法により、コーダは、第１の数学的関係と異なる第２の数学的関係に基づいて選択されたマッピングテーブルにアクセスすることができる。
【０００８】
幾つかの例では、ここにおいて説明される様々なマッピング技法は、映像データのブロックの変換係数をコーディングするために単独で又は組み合わせて使用することができる。例えば、コーダは、メモリに格納されたマッピングテーブルを使用せずに上述される構造化されたマッピングを使用して映像データのブロックの第１の数の係数をコーディングし、及び、コード番号ｃｎ及びｌｅｖｅｌ_ＩＤ構文要素のうちの１つと関連付けられた値に依存してメモリに格納されたマッピングテーブルにアクセスするために第１の技法又は第２の技法を選択的に使用することによって第２の数の係数をコーディングすることができる。他の例により、コーダは、上述されるように、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素との間の関係を各々定義するメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることによって第３の数の係数をコーディングすることができる。コーダは、映像データのブロックの異なる変換係数をコーディングするために、ここにおいて説明されるこれらの技法のうちいずれかを単独で又は組み合わせて使用することができる。
【０００９】
例えば、映像データのブロックを復号するための方法がここにおいて説明される。方法は、第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングすることを含む。方法は、第１の技法と異なる第２の技法に基づいて映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングすることをさらに含む。方法は、映像データのブロックを復号するために第１の変換係数と関連付けられた第１の少なくとも１つの値及び第２の変換係数と関連付けられた第２の少なくとも１つの値を使用することをさらに含む。
【００１０】
他の例により、映像データのブロックを復号するためのデバイスがここにおいて説明される。デバイスは、第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングするように構成されたＶＬＣ復号モジュールを含む。ＶＬＣ復号モジュールは、第１の技法と異なる第２の技法に基づいて映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングするようにさらに構成される。ＶＬＣ復号モジュールは、映像データのブロックを復号するために第１の変換係数と関連付けられた第１の少なくとも１つの値及び第２の変換係数と関連付けられた第２の少なくとも１つの値を使用するようにさらに構成される。
【００１１】
他の例により、映像データのブロックを復号するためのデバイスがここにおいて説明される。デバイスは、第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングするための手段を含む。デバイスは、第１の技法と異なる第２の技法に基づいて映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングするための手段をさらに含む。デバイスは、映像データのブロックを復号するために第１の変換係数と関連付けられた第１の少なくとも１つの値及び第２の変換係数と関連付けられた第２の少なくとも１つの値を使用するための手段をさらに含む。
【００１２】
他の例により、命令を格納するコンピュータによって読み取り可能な記憶媒体がここにおいて説明される。命令は、第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングすることをコンピューティングデバイスに行わせるように構成される。命令は、第１の技法と異なる第２の技法に基づいて映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングすることをコンピューティングデバイスに行わせるようにさらに構成される。命令は、映像データのブロックを復号するために第１の変換係数と関連付けられた第１の少なくとも１つの値及び第２の変換係数と関連付けられた第２の少なくとも１つの値を使用することをコンピューティングデバイスに行わせるようにさらに構成される。
【００１３】
他の例により、映像データのブロックを符号化するための方法がここにおいて説明される。方法は、第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングすることを含む。方法は、第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングすることをさらに含む。方法は、第１のＶＬＣコードワードを決定するために第１のコード番号ｃｎを使用することをさらに含む。方法は、第２のＶＬＣコードワードを決定するために第２のコード番号ｃｎを使用することをさらに含む。方法は、第１のＶＬＣコードワード及び第２のＶＬＣコードワードを出力することをさらに含む。
【００１４】
他の例により、映像データのブロックを符号化するためのデバイスがここにおいて説明される。デバイスは、第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングするように構成されたＶＬＣ符号化モジュールを含む。ＶＬＣ符号化モジュールは、第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングするようにさらに構成される。ＶＬＣ符号化モジュールは、第１のＶＬＣコードワードを決定するために第１のコード番号ｃｎを使用するようにさらに構成される。ＶＬＣ符号化モジュールは、第２のＶＬＣコードワードを決定するために第２のコード番号ｃｎを使用するようにさらに構成される。ＶＬＣ符号化モジュールは、第１のＶＬＣコードワード及び第２のＶＬＣコードワードを出力するようにさらに構成される。
【００１５】
他の例により、映像データのブロックを符号化するためのデバイスがここにおいて説明される。デバイスは、第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングするための手段を含む。デバイスは、第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングするための手段をさらに含む。デバイスは、第１のＶＬＣコードワードを決定するために第１のコード番号ｃｎを使用するための手段をさらに含む。デバイスは、第２のＶＬＣコードワードを決定するために第２のコード番号ｃｎを使用するための手段をさらに含む。デバイスは、第１のＶＬＣコードワード及び第２のＶＬＣコードワードを出力するための手段をさらに含む。
【００１６】
他の例により、第１の技法に基づいて第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングすることをコンピューティングデバイスに行わせるように構成された命令を格納するコンピュータによって読み取り可能な記憶媒体。命令は、第１の技法と異なる第２の技法に基づいて第２の変換係数と関連付けられた第２の少なくとも１つの値から映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングすることをコンピューティングデバイスに行わせるようにさらに構成される。命令は、第１のＶＬＣコードワードを決定するために第１のコード番号ｃｎを使用することをコンピューティングデバイスに行わせるようにさらに構成される。命令は、第２のＶＬＣコードワードを決定するために第２のコード番号ｃｎを使用することをコンピューティングデバイスに行わせるようにさらに構成される。命令は、第１のＶＬＣコードワード及び第２のＶＬＣコードワードを出力することをコンピューティングデバイスに行わせるようにさらに構成される。
【００１７】
他の例により、映像データのブロックを復号する方法がここにおいて説明される。方法は、映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定することを含む。方法は、コード番号ｃｎの値に基づいて第１の技法又は第２の技法を用いてコード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングすることをさらに含む。方法は、映像データのブロックを復号するためにｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を使用することをさらに含む。
【００１８】
他の例により、映像データの少なくとも１つのブロックを復号するように構成されたデバイスがここにおいて説明される。デバイスは、映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定するように構成されたＶＬＣ復号モジュールを含む。ＶＬＣ復号モジュールは、コード番号ｃｎの値に基づいて第１の技法又は第２の技法を用いてコード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングするようにさらに構成される。ＶＬＣ復号モジュールは、映像データのブロックを復号するためにｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を使用するようにさらに構成される。
【００１９】
他の例により、映像データの少なくとも１つのブロックを復号するように構成されたデバイスがここにおいて説明される。デバイスは、映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定するための手段を含む。デバイスは、コード番号ｃｎの値に基づいて第１の技法又は第２の技法を用いてコード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングするための手段をさらに含む。デバイスは、映像データのブロックを復号するためにｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を使用するための手段をさらに含む。
【００２０】
他の例により、命令を格納するコンピュータによって読み取り可能な記憶媒体がここにおいて説明される。命令は、映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定することをコンピューティングデバイスに行わせる。命令は、コード番号ｃｎの値に基づいて第１の技法又は第２の技法を用いてコード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングすることをコンピューティングデバイスにさらに行わせる。命令は、映像データのブロックを復号するためにｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を使用することをコンピューティングデバイスにさらに行わせる。
【００２１】
他の例により、映像データの少なくとも１つのブロックを符号化する方法がここにおいて説明される。方法は、映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定することを含む。方法は、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて決定されたｌｅｖｅｌ_ＩＤ値及び決定されたｒｕｎ値からコード番号ｃｎにマッピングすることをさらに含む。方法は、コード番号ｃｎに基づいてＶＬＣコードワードを決定することをさらに含む。方法は、決定されたＶＬＣコードワードを出力することをさらに含む。
【００２２】
他の例により、映像データの少なくとも１つのブロックを符号化するように構成されたデバイスがここにおいて説明される。デバイスは、映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定するように構成されたＶＣＬ符号化モジュールを含む。ＶＣＬ符号化モジュールは、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて決定されたｌｅｖｅｌ_ＩＤ値及び決定されたｒｕｎ値からコード番号ｃｎにマッピングするようにさらに構成される。ＶＣＬ符号化モジュールは、コード番号ｃｎに基づいてＶＬＣコードワードを決定するようにさらに構成される。ＶＣＬ符号化モジュールは、決定されたＶＬＣコードワードを出力するようにさらに構成される。
【００２３】
他の例により、映像データの少なくとも１つのブロックを符号化するように構成されたデバイスがここにおいて説明される。デバイスは、映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定するための手段を含む。デバイスは、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて決定されたｌｅｖｅｌ_ＩＤ値及び決定されたｒｕｎ値からコード番号ｃｎにマッピングするための手段をさらに含む。デバイスは、コード番号ｃｎに基づいてＶＬＣコードワードを決定するための手段をさらに含む。デバイスは、決定されたＶＬＣコードワードを出力するための手段をさらに含む。
【００２４】
他の例により、命令を格納するコンピュータによって読み取り可能な記憶媒体がここにおいて説明される。命令は、映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定することをコンピューティングデバイスに行わせる。命令は、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて決定されたｌｅｖｅｌ_ＩＤ値及び決定されたｒｕｎ値からコード番号ｃｎにマッピングすることをコンピューティングデバイスにさらに行わせる。命令は、コード番号ｃｎに基づいてＶＬＣコードワードを決定することをコンピューティングデバイスにさらに行わせる。命令は、決定されたＶＬＣコードワードを出力することをコンピューティングデバイスにさらに行わせる。
【００２５】
１つ以上の例の詳細が添付図及び以下の説明において記述される。その説明及び図面から、及び請求項から発明のその他の特徴、目的、及び利点が明らかになるであろう。
【図面の簡単な説明】
【００２６】
【図１】本開示の技法と一致する映像符号化及び復号システムの一例を示したブロック図である。
【図２】本開示の技法と一致する映像符号器の一例を示したブロック図である。
【図３】本開示の技法と一致する映像復号器の一例を示したブロック図である。
【図４】本開示の技法と一致する映像ブロックの変換係数の逆ジグザグ走査の一例を示した概念図である。
【図５】本開示の技法と一致する映像データのブロックの変換係数を符号化するためにメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用する一例を示した概念図である。
【図６】本開示の技法と一致する映像データのブロックの変換係数を復号するためにメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用する一例を示した概念図である。
【図７】本開示の技法と一致する、第１の技法を用いて映像データのブロックの第１の数の変換係数をコーディングし及び第２の技法を用いて映像データのブロックの第２の数の変換係数をコーディングする方法の一例を示した流れ図である。
【図８】本開示の技法と一致する、第１の技法を用いて映像データのブロックの第１の数の変換係数を符号化し及び第２の技法を用いて映像データのブロックの第２の数の変換係数を符号化する方法の一例を示した流れ図である。
【図９】本開示の技法と一致する、第１の技法を用いて映像データのブロックの第１の数の変換係数及び第２の技法を用いて映像データのブロックの第２の数の変換係数をコーディングする方法の一例を示した流れ図である。
【図１０】本開示の技法と一致する、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて映像データのブロックの変換係数を符号化する一例を示した概念図である。
【図１１】本開示の技法と一致する、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法又は第２の技法を用いて映像データのブロックの変換係数を符号化する一例を示した概念図である。
【図１２】本開示の技法と一致する映像データのブロックをコーディングするための方法の一例を示した流れ図である。
【発明を実施するための形態】
【００２７】
本開示は、可変長コード（ＶＬＣ）テーブルの１つ以上のＶＬＣコードワードを用いて映像データのブロックの構文要素（例えば、量子化された変換係数）をコーディング（例えば、符号化又は復号）するための映像コーディング技法について説明する。これらの技法により、符号器は、ブロックの変換係数と関連付けられた少なくとも１つの値を決定し、決定された少なくとも１つの値をコード番号ｃｎにマッピングし、及びコード番号ｃｎを用いてＶＬＣテーブルにアクセスすることができる。決定されたコード番号ｃｎに基づき、符号器は、決定された値を表すＶＬＣコードワードを出力することができる。
【００２８】
ＶＬＣテーブルのＶＬＣコードワードは、コードワードの長さが、コードワードによって表されるシンボルがどの程度頻繁に生じるかに対応するように構築することができる。例えば、より頻繁に生じるシンボルは、より短いＶＣＬコードワードによって表すことができる。さらに、ＶＣＬコードワードは、コードワードが一意で復号可能であるように構築することができる。例えば、復号器が有限長の有効なビットのシーケンスを受信した場合は、復号されたときに受信されたビットのシーケンスを生成することになることが可能な入力シンボルのシーケンスは１つだけ存在するだけであることができる。
【００２９】
復号器は、符号器からＶＬＣコードワードを受信し、変換係数を復号するために変換係数と関連付けられたシグナリングされた少なくとも１つの値を決定するためにそのＶＬＣコードワードを使用することができる。例えば、復号器は、ＶＣＬテーブル（例えば、上述されるように符号器によって使用されるのと同じＶＬＣテーブル）にアクセスし、ＶＬＣコードワードに関するコード番号を決定することができる。復号器は、決定されたコード番号ｃｎを変換係数と関連付けられた少なくとも１つの値にマッピングすることができる。映像データのブロックの変換係数と関連付けられた１つ以上の値を符号器から復号器にシグナリングするためにＶＬＣコードワードを使用することによって、映像データのブロックをコーディング（例えば、符号化又は復号）するために使用されるデータ量を低減させることができる。
【００３０】
幾つかの例では、映像フレームの所定のブロックの係数は、ジグザグ走査技法により順序を決める（走査する）ことができる。該技法は、係数の２次元ブロックを係数の１次元表現に変換するために使用することができ、それは、係数の１次元係数ベクトルと呼ぶことができる。ジグザグ走査技法は、ブロックの左上端の係数から開始し、ブロックの右下端までジグザグ方式で走査を進めることができる。
【００３１】
ジグザグ走査技法により、最大のエネルギー（例えば、最大の係数値）を有する変換係数は、低頻度の変換関数に対応し、ブロックの左最上部に向けて配置することができると推定することができる。従って、ジグザグ走査に基づいて生成された係数ベクトル（例えば、係数の１次元係数ベクトル）に関しては、より高い大きさの係数が１次元係数ベクトルの開始方向に向かって現れる可能性が最も高いと推定することができる。さらに、係数ベクトルが量子化された後は、ほとんどの低エネルギー係数は０に等しくなると推定することができる。幾つかの例では、係数走査は、係数コーディング中に好適化することができる。例えば、走査におけるより低い数字は、ゼロでない係数の確率が統計的により高い位置に割り当てることができる。本開示の技法の多くは、ジグザグ走査（及び／又は逆ジグザグ走査）の観点から説明されるが、その他の走査（例えば、水平走査、垂直走査、水平、垂直及び／又はジグザグ走査の組み合わせ、アダプティブ走査又はその他の走査）も使用可能である。
【００３２】
一例により、コーダ（すなわち、符号器又は復号器）は、逆ジグザグ走査を行うことができる。逆ジグザグ走査により、コーダは、最後のゼロでない係数（例えば、ブロックの左上位置から最も遠いゼロでない係数）に対応する位置においてコーディングを開始することができる。符号器は、上述されるようにジグザグパターンでコーディングすることができるが、ブロックの右最下部位置において開始し、ブロックの左上位置において終了する。
【００３３】
幾つかの例により、コーダは、変換係数の走査を実施するときには複数の異なるコーディングモードで動作するように構成することができる。１つの該例により、コーダは、１つ以上の既にコーディングされている係数の大きさ（ｍａｇｎｉｔｕｄｅ）に基づいてｒｕｎコーディングモードとレベルコーディングモードとの間で切り換わることができる。
【００３４】
レベルコーディングモードにより、符号器は、各係数の大きさ（｜ｌｅｖｅｌ｜）をシグナリングすることができる。例えば、符号器は、複数のＶＣＬテーブルのうちの１つのＶＬＣテーブルを用いて大きさ（｜ｌｅｖｅｌ｜）をシグナリングすることができ（例えば、テーブルＶＬＣ（ｘ）であり、ここで、ｘは、レベルモードでコーディング中の第１の係数に関してはゼロである）。レベルコーディングモードにより、各係数を復号後に、構文要素の｜ｌｅｖｅｌ｜が予め決定された値（例えば、ｖｌｃ_ｌｅｖｅｌ_ｔａｂｌｅ［ｘ］）よりも大きい大きさを有する場合は、値ｘは、１だけ増分させることができる。
【００３５】
ｒｕｎコーディングモードにより、コーダは、走査された係数と関連付けられたｌｅｖｅｌ_ＩＤ値及び／又はｒｕｎ値、及びその他の値をシグナリングすることができる。ｌｅｖｅｌ_ＩＤ構文要素は、ゼロでない係数が１の振幅又は１よりも大きい振幅を有するかどうかを示すことができる。走査順序（例えば、逆ジグザグ走査順序）で現在の（現在コーディングされた）係数と次のゼロでない係数との間でのゼロの振幅を有する量子化された係数の数を示すことができるｒｕｎ構文要素。現在の係数は、走査順序による次のゼロでない係数へのｒｕｎの第１の係数を指し示すことができる。一例により、ｒｕｎは、ゼロ乃至ｋ＋１の範囲の値を有することができ、ｋは、走査における現在の係数の位置インデックス値である。ｒｕｎコーディングモードにより、符号器は、ｒｕｎ及びｌｅｖｅｌ_ＩＤに関する値を決定し、ｒｕｎ及びｌｅｖｅｌ_ＩＤに関する値をＶＬＣコードワードとしてシグナリングすることができる。幾つかの例では、符号器は、ｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を単一の構文要素としてさらに結合（連結）することができる。該単一の構文要素は、ＩｓＬｅｖｅｌＯｎｅ_Ｒｕｎと呼ぶことができる。
【００３６】
ＶＬＣコードワードを決定するために、符号器は、値ｒｕｎ及びｌｅｖｅｌ_ＩＤとコード番号ｃｎとの間でのマッピングを定義する複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることができる。該マッピングテーブルは、走査順序における係数の位置ｋに基づいて符号器によって選択することができる。例えば、第１の該マッピングテーブルは、ゼロに等しい位置ｋのために使用することができ、１に等しい位置ｋに関しては第２の異なるマッピングテーブルを使用することができる。位置kは、走査順序における現在の係数と最後の係数との間の係数の数として記述することができる。繰り返すと、技法は、ジグザグ走査及び逆ジグザグ走査により説明されるが、同様の技法をあらゆる走査順序に適用することが可能である。
【００３７】
コード番号ｃｎは、複数のＶＬＣテーブルのうちの１つのＶＬＣテーブル内のインデックスを表すことができる。符号器は、走査順序における現在の係数の位置ｋに基づいて複数のＶＬＣテーブルからＶＬＣテーブルを選択することができる。コード番号ｃｎに基づき、符号器は、選択されたＶＬＣテーブルを用いてＶＬＣコードワードを決定することができる。符号器は、該決定されたＶＬＣコードワードを復号器にシグナリングすることができる。復号器は、受信されたＶＬＣコードワードに基づいてコード番号ｃｎを復号し、映像データのブロックの変換係数（例えば、ｒｕｎ及び／又はｌｅｖｅｌ_ＩＤ値）と関連付けられた少なくとも１つの値を決定するためにコード番号ｃｎを使用することができる。復号器は、映像データのブロックを復号するために決定された少なくとも１つの値を使用することができる。
【００３８】
幾つかの態様により、本開示は、映像データのブロックの異なる変換係数に関して、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素の値）とコード番号ｃｎとの間でマッピングするために異なる技法を使用することについて説明する。例えば、本開示は、映像データのブロックの第１の数の係数に関して、第１の技法を用いて少なくとも１つの値とコード番号ｃｎとの間でマッピングするように構成されたコーダについて説明する。ブロックの第２の数の係数に関しては、コーダは、第１の技法と異なる第２の技法を用いて少なくとも１つの値とコード番号ｃｎとの間でマッピングすることができる。例えば、第１の技法は、構造化されたマッピングに基づくマッピングを含むことができ、第２の技法は、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用してマッピングすることを含むことができる。幾つかの例では、該複数のマッピングテーブルは、コード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間の関係を各々定義することができる。幾つかの例では、映像データのブロックの異なる係数に関して異なるマッピング技法を使用することは、映像データのブロックをコーディングするためのメモリに格納されたマッピングテーブルの数及び／又はサイズを低減させる及び／又は不要にし、それによってコーディングの複雑さを低減させ及び／又は効率を向上させることができる。
【００３９】
本開示のその他の態様により、コーダは、変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素とコード番号ｃｎとの間でマッピングするために第１の技法（例えば、第１の数学的関係）又は第２の技法（第２の数学的関係）のうちの１つを使用することに基づいて変換係数をコーディングするように構成することができる。例えば、本開示のこれらの態様により、コーダは、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素のうちの１つと関連付けられた値を決定することができる。コーダは、決定された値に基づき、メモリに格納されたマッピングテーブルにアクセスするために第１の技法又は第２の技法のうちの１つを使用することができる。マッピングテーブルは、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を各々定義する複数のマッピングテーブルからコーダによって選択することができる。第１の技法は、第１の数学的関係を用いて選択されたマッピングテーブルにアクセスすることを含むことができ、第２の技法は、第１の数学的関係と異なる第２の数学的関係を用いて選択されたマッピングテーブルにアクセスすることを含む。
【００４０】
ここにおいて説明される技法は、符号器又は復号器によって実施することができる。例えば、符号器は、映像データのブロックの変換係数と関連付けられた決定されたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素に基づいてコード番号ｃｎを決定するために、ここにおいて説明される様々な技法を単独で又は組み合わせて使用することができる。他の例として、復号器は、決定されたコード番号ｃｎに基づいて変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を決定するために、ここにおいて説明される様々な技法を単独で又は組み合わせて使用することができる。
【００４１】
図１は、本開示の技法を実装することができる典型的な映像符号化及び復号システム１００を示したブロック図である。図１に示されるように、システム１００は、通信チャネル１１５を介して行先デバイス１０６に符号化された映像を送信するソースデバイス１０２を含む。ソースデバイス１０２及び行先デバイス１０６は、広範なデバイスのちのいずれかを備えることができる。幾つかの場合には、ソースデバイス１０２及び行先デバイス１０６は、無線通信デバイスハンドセット、例えば、いわゆるセルラー又は衛星無線電話、を備えることができる。しかしながら、映像データの変換係数の符号化及び復号に概して適用される本開示の技法は、無線用途又は設定には必ずしも限定されず、映像符号化及び／又は復号能力を含む非常に様々な非無線デバイスに対して適用することができる。
【００４２】
図１の例では、ソースデバイス１０２は、映像ソース１２０と、映像符号器１２２と、変調器／復調器（モデム）１２４と、送信機１２６と、を含むことができる。行先デバイス１０６は、受信機１２８と、モデム１３０と、映像復号器１３２と、ディスプレイ装置１３４と、を含むことができる。本開示により、ソースデバイス１０２の映像符号器１２２は、コード番号ｃｎを決定することに基づいて変換係数と関連付けられた少なくとも１つの値（例えば、ｒｕｎ値及び／又はｌｅｖｅｌ_ＩＤ値）を符号化するように構成することができる。例えば、映像符号器１２２は、変換係数と関連付けられた少なくとも１つの値を表すＶＬＣコードワードを決定するために決定されたコード番号ｃｎを使用することができる。
【００４３】
本開示の幾つかの態様により、映像符号器１２２は、映像データのブロックの異なる係数に関して異なる技法を用いてコード番号ｃｎを決定することができる。例えば、映像符号器１２２は、映像データのブロックの第１の数の係数に関するコード番号ｃｎを決定するために第１の技法を、及び、ブロックの第２の数の係数に関するコード番号ｃｎを決定するために第２の技法を使用することができる。第１の技法は、コード番号ｃｎを決定するために構造化されたマッピング（数学的関係）を使用することを含む。第２の技法は、コード番号ｃｎを決定するためにメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用することを含む。幾つかの例では、該複数のマッピングテーブルは、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素とコード番号ｃｎとの間の関係を各々定義することができる。幾つかの例では、映像符号器１２２は、変換係数の位置ｋに基づいて第１又は第２の技法のいずれを使用すべきかを決定するように構成することができる。例えば、映像符号器は、現在符号化されている変換係数の位置ｋを予め決定されたスレショルドＴ（例えば、メモリに格納された予め決定されたスレショルド）と比較し、その比較に基づいて変換係数と関連付けられた少なくとも１つの値（例えば、ｒｕｎ値及びｌｅｖｅｌ_ＩＤ値）を変換係数に関するコード番号ｃｎにマッピングするために上記の第１の技法又は第２の技法のうちの１つを使用することができる。
【００４４】
本開示のその他の態様により、映像符号器１２２は、映像データのブロックの変換係数に関して、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいてコード番号ｃｎを決定するために変換係数と関連付けられた決定されたｌｅｖｅｌ_ＩＤ構文要素及び決定されたｒｕｎ構文要素からマッピングするために第１の技法又は第２の技法を選択的に使用することができる。第１の技法により、映像符号器１２２は、第２の技法によるのと異なる形でメモリに格納された複数のマッピングテーブルのうちの選択されたマッピングテーブルにアクセスすることができる。
【００４５】
第１及び第２の技法の両方により、映像符号器１２２は、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の値を決定すること、及び、変換係数に関する位置ｋを決定することもできる。位置ｋに基づき、映像符号器１２２は、メモリに格納された複数のマッピングテーブルから１つのマッピングテーブルを選択することができる。
【００４６】
幾つかの例では、映像符号器１２２は、ｌｅｖｅｌ_ＩＤ構文要素の決定された値に基づいて、選択されたマッピングテーブルにアクセスするために第１の技法又は第２の技法を使用することができる。例えば、ｌｅｖｅｌ_ＩＤ値が第１の値（例えば、ｌｅｖｅｌ_ＩＤ＝０）を有する場合は、映像符号器１２２は、選択されたマッピングテーブルにアクセスするために第１の数学的関係を使用することを含む第１の技法を使用することができる。しかしながら、少なくとも１つの構文要素が第２の値（例えば、ｌｅｖｅｌ_ＩＤ＝１）を有する場合は、映像符号器１２２は、選択されたマッピングテーブルにアクセスするために第１の数学的関係と異なる第２の数学的関係を使用することを含む第２の技法を使用することができる。
【００４７】
幾つかの例では、複数のマッピングテーブルは、コード番号ｃｎとｒｕｎ構文要素との間の関係を各々定義することができる。コード番号ｃｎと少なくとも１つの構文要素との間のマッピングに関してここにおいて説明される様々な技法は、映像データのブロックの変換係数をコーディングするために映像符号器１２２によって独立して、又は共同で使用することができる。
【００４８】
映像データのブロックは、概して、変換係数の残差ブロックを備える。変換係数は、予測ブロックとコーディング中の原ブロックとの間の差分を示す残差ピクセル値を変換することによって生成することができる。変換は、整数変換、ＤＣＴ変換、ＤＣＴと概念的に類似するＤＣＴ類似変換、等であることができる。変換は、いわゆるバタフライ（ｂｕｔｔｅｒｆｌｙ）変換構造により実装することができ、又は、行列乗算として実装することができる。
【００４９】
行先デバイス１０６の映像復号器１３２によって逆数変換係数復号を行うこともできる。すなわち、映像復号器１３２は、変換係数と関連付けられたＶＣＬコードワードを受信し、変換係数のためのコード番号ｃｎを決定し、及び決定されたコード番号ｃｎと少なくとも１つの値との間でのマッピングに基づいて変換係数と関連付けられた少なくとも１つの値（例えば、ｒｕｎ値及び／又はｌｅｖｅｌ_ＩＤ値）を決定するように構成することができる。幾つかの例では、映像復号器１３２は、映像データのブロックの異なる係数に関して異なる技法を用いて少なくとも１つの値を決定することができる。例えば、本開示の幾つかの態様により、映像復号器１３２は、映像データのブロックの第１の係数（又は第１の複数の係数）と関連付けられた少なくとも１つの値を決定するために第１の技法を使用し、ブロックの第２の係数（又は第２の複数の係数）と関連付けられた少なくとも１つの値を決定するために第２の技法を使用することができる。第１の技法は、第１の係数と関連付けられた少なくとも１つの値（例えば、ｒｕｎ値及び／又はｌｅｖｅｌ_ＩＤ値）を決定するために構造化されたマッピング（例えば、数学的関係）を使用することを含むことができる。
【００５０】
第２の技法は、少なくとも１つの値を決定するためにメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを使用することを含むことができる。少なくとも１つの値は、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素のうちの１つ以上の値を含むことができる。本開示のこれらの態様により、該複数のマッピングテーブルは、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素との間の関係を各々定義することができる。
【００５１】
幾つかの例では、映像復号器１３２は、変換係数の位置ｋに基づいて第１の技法又は第２の技法のいずれを使用するかを決定するように構成することができる。例えば、映像復号器１３２は、現在復号されている変換係数の位置ｋを予め決定されたスレショルドＴ（例えば、メモリに格納された予め決定されたスレショルド）と比較し、その比較に基づいて上記の第１の技法又は第２の技法のうちの１つを使用して変換係数と関連付けられた少なくとも１つの値（例えば、ｒｕｎ値及び／又はｌｅｖｅｌ_ＩＤ値）を決定することができる。
【００５２】
本開示の他の態様により、映像復号器１３２は、映像データのブロックの変換係数に関して、コード番号ｃｎの決定された値に依存して、ｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定するために決定されたコード番号ｃｎからマッピングするために第１の技法（例えば、第１の数学的関係）又は第２の技法（例えば、第２の数学的関係）を使用することができる。第１の技法により、映像復号器１３２は、第２の技法によるのとは異なった形で、メモリに格納された複数のマッピングテーブルから（例えば、変換係数の位置ｋに基づいて）選択されたマッピングテーブルにアクセスすることができる。例えば、第１の技法は、第１の数学的関係に基づいて選択されたマッピングテーブルにアクセスすることを含むことができ、他方、第２の技法は、第１の数学的関係と異なる第２の数学的関係に基づいて選択されたマッピングテーブルにアクセスすることを含む。幾つかの例では、メモリに格納された複数のマッピングテーブルは、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を各々定義することができる。
【００５３】
映像復号器１３２は、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の値を決定するために決定されたコード番号ｃｎとｌｅｖｅｌ_ＩＤ値及びｒｕｎ値との間でマッピングするために、ここにおいて説明される様々な技法を単独で又は組み合わせて使用することができる。映像復号器１３２は、映像データのブロックを復号するためにｌｅｖｅｌ_ＩＤ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の決定された値を使用することができる。
【００５４】
図１の例示されたシステム１００は、単なる例であるにすぎない。本開示の変換係数符号化技法及び復号技法は、あらゆる符号化デバイス又は復号デバイスによって実施することができる。ソースデバイス１０２及び行先デバイス１０６は、該技法をサポートすることができるコーディングデバイスの単なる例であるにすぎない。
【００５５】
ソースデバイス１０２の映像符号器１２２は、映像ソース１２０から受信された映像データを符号化することができる。映像ソース１２０は、映像キャプチャデバイス、例えば、ビデオカメラ、以前にキャプチャされた映像が入っている映像アーカイブ、又は映像コンテンツプロバイダからの映像フィードを備えることができる。さらなる代替として、映像ソース１２０は、コンピュータグラフィックスに基づくデータを、ソース映像、又はライブ映像、アーカイブに保存された映像、及びコンピュータによって生成された映像の組み合わせ、として生成することができる。幾つかの場合において、映像ソース１２０がビデオカメラである場合は、ソースデバイス１０２及び行先デバイス１０６は、いわゆるカメラフォン又はビデオフォンを構成することができる。各場合において、キャプチャされた、予めキャプチャされた又はコンピュータによって生成された映像を映像符号器１２２によって符号化することができる。
【００５６】
システム１００において、映像データが映像符号器１２２によって符号化された時点で、符号化された映像情報は、通信規格、例えば、符号分割多元接続（ＣＤＭＡ）又はその他のいずれかの通信規格又は技法、によりモデム１２４によって変調し、送信機１２６を介して行先デバイス１０６に送信することができる。モデム１２４は、信号変調用に設計された様々なミキサ、フィルタ、増幅器又はその他のコンポーネントを含むことができる。送信機１２６は、データを送信するために設計された回路を含むことができ、増幅器と、フィルタと、１本以上のアンテナと、を含む。行先デバイス１０６の受信機１２８は、チャネル１１５を通じて情報を受信し、モデム１３０は、情報を復調する。繰り返しになるが、映像復号器１３２によって実施される映像復号プロセスは、映像符号器１２２によって実施される符号化技法に類似する（例えば、逆数）復号技法を含むことができる。
【００５７】
通信チャネル１１５は、あらゆる無線又は有線の通信媒体、例えば、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的送信ライン、又は無線媒体と有線媒体のあらゆる組み合わせ、を備えることができる。通信チャネル１１５は、パケットに基づくネットワーク、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク、例えばインターネット、の一部を形成することができる。通信チャネル１１５は、概して、ソースデバイス１０２から行先デバイス１０６に映像データを送信するためのあらゆる適切な通信媒体、又は異なる通信媒体の集合を表す。
【００５８】
図１には示されていないが、幾つかの態様では、映像符号器１２２及び映像復号器１３２は、音声符号器及び復号器と各々一体化することができ、及び、共通のデータストリーム又は別々のデータストリームにおいて音声及び映像の両方の符号化を取り扱うのに適するＭＵＸ−ＤＥＭＵＸユニット、又はその他のハードウェアとソフトウェア、を含むことができる。該当する場合は、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はその他のプロトコル、例えばユーザデータグラムプロトコル（ＵＤＰ）、に準拠することができる。
【００５９】
映像符号器１２２及び映像復号器１３２は、各々、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア又はそれらのあらゆる組み合わせとして実装することができる。映像符号器１２２及び映像復号器１３２の各々は、１つ以上の符号器又は復号器内に含めることができ、それらのいずれも、各々のモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、等の中の結合された符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。
【００６０】
幾つかの場合には、デバイス１０２、１０６は、実質的に対称的に動作することができる。例えば、デバイス１０２、１０６の各々は、映像符号化及び復号コンポーネントを含むことができる。従って、システム１００は、例えば、映像ストリーミング、映像再生、映像放送、又はビデオテレフォニーのために、ビデオデバイス１０２、１０６の間での１方向又は２方向の映像伝送をサポートすることができる。
【００６１】
映像符号器１２２は、符号化プロセス中には、幾つかのコーディング技法又は動作を実施することができる。概して、映像符号器１２２は、映像ブロックを符号化するために個々の映像フレーム（又はその他の独立してコーディングされたユニット、例えば、スライス）内の映像ブロックに対して動作する。フレーム、スライス、フレームの一部、ピクチャのグループ、又はその他のデータ構造は、複数の映像ブロックを含む独立したデータユニットであると定義することができ、構文要素は、該異なる独立したデータユニットにおいて含めることができる。独立したデータユニット内の映像ブロックは、固定された又は可変のサイズを有することができ、及び、規定されたコーディング規格によりサイズが異なることができる。幾つかの場合には、各映像フレームは、一連の独立して復号可能なスライスを含むことができ、各スライスは、１つ以上のマクロブロック又はＬＣＵを含むことができる。
【００６２】
マクロブロックは、ＩＴＵ−  Ｈ．２６４規格又はその他の規格によって定義された映像ブロックの１つのタイプである。マクロブロックは、典型的には、１６×１６のデータブロックを意味する。ＩＴＵ−ＴＨ．２６４規格は、様々なブロックサイズのイントラ予測（ｉｎｔｒａ  ｐｒｅｄｉｃｔｉｏｎ）をサポートし、例えば、ルマ（ｌｕｍａ）成分の場合は１６×１６、８×８、又は４×４、クロマ（ｃｈｒｏｍａ）成分の場合は８×８であり、さらに、様々なブロックサイズのインター予測（ｉｎｔｅｒ  ｐｒｅｄｉｃｔｉｏｎ）をサポートし、例えば、ルマ成分の場合は１６×１６、１６×８、８×１６、８×８、８×４、４×８、又は４×４、クロマ（ｃｈｒｏｍａ）成分の場合は対応するスケーリングされたサイズである。
【００６３】
新しく出現中のＨＥＶＣ規格は、映像ブロックに関して新しい用語を定義している。特に、ＨＥＶＣでは、映像ブロック（又はそのパーティション）は、“コーディングされたユニット”と呼ぶことができる。ＨＥＶＣ規格では、最大のコーディングされたユニット（ＬＣＵ）は、四分木パーティショニング方式によりより小さいコーディングされたユニット（ＣＵ）に分割することができ、その方式で定義される異なるＣＵは、いわゆる予測ユニット（ＰＵ）及び／又は変換ユニット（ＴＵ）にさらにパーティショニングすることができる。ＬＣＵ、ＣＵ、及びＰＵ、及びＴＵは、すべて、本開示の意味内の映像ブロックである。Ｈその他のタイプの映像ブロックも、ＥＶＣ規格又はその他の映像コーディング規格に一致した形で使用することができる。従って、用語“ブロック”は、あらゆるサイズの映像ブロックを意味する。さらに、映像ブロックは、ピクセル領域内の映像データのブロック、又は変換領域、例えば、離散コサイン変換（ＤＣＴ）領域、ＤＣＴに類似する領域、ウェーブレット領域、等、内の映像データのブロックを時々意味する。
【００６４】
図１を再度参照し、映像符号器１２２は、予測ブロックを識別するためにコーディング中の映像ブロックが他の映像データのブロックと比較される予測コーディングを行うことができる。この予測コーディングプロセスは、動き推定及び動き補償としばしば呼ばれる。動き推定は、１つ以上の予測フレーム（又はその他のコーディングされたユニット）の１つ以上の予測映像ブロックに対する映像ブロックの動きを推定する。動き補償は、１つ以上の予測フレーム又はその他のコーディングされたユニットから希望される予測映像ブロックを生成する。動き補償は、フラクショナルピクセル（ｆｒａｃｔｉｏｎａｌ  ｐｉｘｅｌ）の精度で予測データを生成するために補間フィルタリングが行われる補間プロセスを含むことができる。
【００６５】
予測ブロックを生成後は、コーディング中の現在の映像ブロックと予測ブロックとの間の差分が残差ブロックとしてコーディングされ、予測ブロックを識別するために予測構文（例えば、動きベクトル）が使用される。残差ブロックは、変換及び量子化することができる。変換技法は、ＤＣＴプロセス又は概念的に類似するプロセス、整数変換、ウェーブレット変換、又はその他のタイプの変換を備えることができる。一例として、ＤＣＴ又はＤＣＴに類似のプロセスでは、変換プロセスは、ピクセル値（例えば、残差値）の組を変換係数に変換し、それらは、周波数領域でのピクセル値のエネルギーを表すことができる。量子化は、典型的には、変換係数に対して適用され、概して、所定の変換係数と関連付けられたビット数を制限するプロセスを含む。
【００６６】
変換及び量子化に引き続き、変換及び量子化された残差映像ブロックに対してエントロピーコーディングを行うことができる。エントロピーコーディングされたビットストリームには、符号化中に定義された構文要素（例えば、ここにおいて説明されるｒｕｎ値及びｌｅｖｅｌ_ＩＤ値）、様々なフィルタ構文情報、及び予測ベクトルを含めることができる。概して、エントロピーコーディングは、量子化された変換係数及び／又はその他の構文情報のシーケンスをまとめて圧縮する１つ以上のプロセスを備える。２次元映像ブロックから１つ以上のシリアライズされた（ｓｅｒｉａｌｉｚｅｄ）１次元係数ベクトルを定義するために走査技法、例えば、ジグザグ走査（及び／又は逆ジグザグ走査）技法、が量子化された変換係数に対して実施される。繰り返すと、固定型又は適応型走査順序を含むその他の走査順序も本開示と一致する形で使用可能である。次に、走査された係数が、ここにおいて説明される方法であらゆる構文情報とともにエントロピーコーディングされる。
【００６７】
符号化プロセスの一部として、後続する映像ブロックの後続する予測に基づくコーディングのために使用される映像データを生成するために符号化された映像ブロックを復号することができる。この段階で、映像の品質を向上させる、例えば、ブロッキネス又はその他のアーティファクトを復号された映像から除去する、ためにフィルタリングを採用することができる。このフィルタリングは、ループ内又はループ後であることができる。ループ内フィルタリングでは、再構築された映像データのフィルタリングがコーディングループ内で行われ、それは、フィルタリングされたデータが後続する画像データの予測において後続して使用するために符号器又は復号器によって格納されることを意味する。対照的に、ループ後フィルタリングでは、再構築された映像データのフィルタリングがコーディングループ外で行われ、それは、データのフィルタリングされないバージョンが後続する画像データの予測において後続して使用するために符号器又は復号器によって格納されることを意味する。
【００６８】
図２は、本開示と一致する映像符号器例２５０を示したブロック図である。映像符号器２５０は、ソースデバイス１０２の映像符号器１２２、又は異なるデバイスの映像符号器に対応することができる。図２に示されるように、映像符号器２５０は、予測モジュール２４０と、加算器２４１及び２４６と、メモリ２４５と、を含む。映像符号器２５０は、変換モジュール２４２と量子化モジュール２４３、及び逆量子化モジュール２４８と逆変換モジュール２４７を含む。映像符号器２５０は、エントロピーコーディングモジュール２４４も含む。エントロピーコーディングモジュール２４４は、ＶＬＣ符号化モジュール２６０を含む。
【００６９】
本開示の幾つかの態様により、ＶＬＣ符号化モジュール２６０は、コード番号ｃｎを決定するために変換係数と関連付けられた決定された少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ構文要素の値）からマッピングすることができる。本開示の幾つかの態様により、ＶＬＣ符号化モジュール２６０は、第１の技法を用いてブロックの第１の数の係数と関連付けられた少なくとも１つの値を第１のコード番号ｃｎにマッピングし、第１の技法と異なる第２の技法を用いてブロックの第２の数の係数と関連付けられた少なくとも１つの値を第２のコード番号ｃｎにマッピングすることができる。第１の技法により、ＶＬＣ符号化モジュール２６０は、構造化されたマッピング（例えば、数学的関係）に基づいて少なくとも１つの値をコード番号ｃｎにマッピングすることができる。第２の技法により、ＶＬＣ符号化モジュール２６０は、（例えば、映像符号器２５０のメモリ２４５に格納された）１つ以上のマッピングテーブル２６２にアクセスすることに基づいて少なくとも１つの値をコード番号ｃｎにマッピングすることができる。第２の技法により、複数のマッピングテーブル２６２は、変換係数と関連付けられたコード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素との間の関係を各々定義することができる。
【００７０】
第１の技法により、エントロピーコーディングモジュール２４６は、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）とコード番号ｃｎとの間でのマッピングを定義する映像符号器２５０のメモリ２４５に以前に格納された１つ以上のマッピングテーブル２６２にアクセスすることができない。代わりに、ＶＬＣ符号化モジュール２６０は、コード番号ｃｎを決定するために数学的関係を使用することができる。幾つかの例では、ＶＬＣ符号化モジュール２６０は、現在の変換係数の位置ｋと予め決定されたスレショルドとの比較に基づいて現在の変換係数（例えば、現在符号化されている変換係数）に関して第１の技法又は第２の技法のいずれを使用するかを決定することができる。
【００７１】
本開示の他の態様により、変換係数を符号化するために、ＶＬＣ符号化モジュール２６０は、ｌｅｖｅｌ_ＩＤ構文要素の決定された値に基づき、コード番号ｃｎを決定するために決定されたｌｅｖｅｌ_ＩＤ構文要素及び決定されたｒｕｎ構文要素からマッピングするために第１の技法（例えば、第１の数学的関係）又は第２の技法（例えば、第２の数学的関係）を選択的に使用することができる。例えば、ＶＬＣ符号化モジュール２６０は、現在の変換係数の位置ｋ、及びｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の値を決定することができる。ＶＬＣ符号化モジュール２６０は、決定された位置ｋに基づき、メモリ２４５に格納された複数のマッピングテーブル２６２のうちの１つのマッピングテーブルを選択することができる。ｌｅｖｅｌ_ＩＤ構文要素の値に依存して、ＶＬＣ符号化モジュール２６０は、コード番号ｃｎを決定するために、選択されたマッピングテーブルにアクセスするために第１の技法又は第２の技法のうちの１つをさらに使用することができる。
【００７２】
本開示のこれらの態様により、該複数のマッピングテーブル２６２は、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を定義することができる。本開示のその他の態様により上述される複数のマッピングテーブル２６２とは対照的に、該複数のマッピングテーブル２６２は、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を定義することができない。
【００７３】
ＶＬＣ符号化モジュール２６０がここにおいて説明されるマッピング技法のうちの１つ以上を用いてコード番号ｃｎを決定した時点で、ＶＬＣ符号化モジュール２６０は、少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）を表すＶＬＣコードワードを決定するために１つ以上のＶＬＣテーブル２６４にアクセスすることができる。映像符号器２５０は、決定されたＶＬＣコードワードを出力することができる。例えば、映像符号器２５０は、エントロピー符号化された映像データのビットストリームの一部として、決定されたＶＬＣコードワードを復号器に出力することができる。
【００７４】
ＶＬＣテーブル２６４及びマッピングテーブル２６２は、ＶＬＣ符号化モジュール２６０が各々のテーブルを適用する限りにおいてエントロピーコーディングモジュール２４４の一部として例示される。しかしながら、ＶＬＣテーブル２６４及びマッピングテーブル２６２は、実際には、各々のテーブルを適用するためにＶＬＣモジュール２６０によってアクセス可能であるメモリ記憶場所、例えば、メモリ２４５、に格納することができる。
【００７５】
符号化プロセス中には、映像符号器２５０がコーディングされるべき映像ブロックを受信し、予測モジュール２４０が予測コーディング技法を実施する。インターコーディングに関しては、予測モジュール２４０は、予測ブロックを定義するために符号化されるべき映像ブロックを１つ以上の映像基準フレーム又はスライス内の様々なブロックと比較する。イントラコーディングに関しては、予測モジュール２４０は、同じフレーム、スライス、又はその他の映像データのユニット内の近隣データに基づいて予測ブロックを生成する。予測モジュール２４０は、予測ブロックを出力し、加算器２４１は、残差ブロックを生成するためにコーディング中の映像ブロックから予測ブロックを減じる。
【００７６】
インターコーディングに関しては、予測モジュール２４０は、予測ブロックを指し示す動きベクトルを識別する動き推定モジュール及び動き補償モジュール（図２に描かれていない）を備えることができ、動きベクトルに基づいて予測ブロックを生成する。典型的には、動き推定は、動きを推定する動きベクトルを生成するプロセスであるとみなされる。例えば、動きベクトルは、現在のフレーム内でコーディング中の現在のブロックに対する予測フレーム内の予測ブロックの変位を示すことができる。動き補償は、典型的には、動き推定によって決定された動きベクトルに基づいて予測ベクトルをフェッチ又は生成するプロセスであるとみなされる。イントラコーディングに関しては、予測モジュール２４０は、同じフレーム、スライス、又は映像データのその他の単位内の近隣データに基づいて予測ブロックを生成する。１つ以上のイントラ予測モードが、イントラ予測ブロックをどのように定義することができるかを定義することができる。
【００７７】
インターコーディングのための動き補償は、サブピクセル解像度への補間を含むことができる。例えば、予測モジュール２４０によって生成された補間された予測データは、ハーフピクセル解像度、クオーターピクセル解像度、さらにはそれよりも精細な解像度に補間することができる。これは、動き推定が該サブピクセル解像度まで映像ブロックの動きを推定することを可能にする。
【００７８】
予測モジュール２４０が予測ブロックを出力した後で、さらに、加算器２４１が、残差ブロックを生成するためにコーディング中の映像ブロックから予測ブロックを減じた後に、変換モジュール２４２は、残差ブロックに変換を適用する。変換は、離散コサイン変換（ＤＣＴ）、整数変換、又は概念的に類似する変換、例えば、ＩＴＵ  Ｈ．２６４規格、ＨＶＥＣ規格、等によって定義されるそれ、備えることができる。幾つかの例では、変換モジュール２４２は、異なるサイズの変換を行うことができ、及び、コーディング効率及び向上された圧縮のために異なるサイズの変換を選択することができる。ウェーブレット変換、整数変換、サブバンド変換又はその他のタイプの変換も使用することができる。いずれの場合も、変換モジュール２４２は、残差ピクセル値の残差ブロックに特定の変換を適用し、残差変換係数のブロックを生成する。変換は、残差ピクセル値情報をピクセル領域から周波数領域に変換することができる。
【００７９】
逆量子化モジュール２４８及び逆変換モジュール２４７は、ピクセル領域内の残差ブロックを再構築するために、逆量子化及び逆変換をそれぞれ適用する。加算器２４６は、予測モジュール２４０によって生成された予測ブロックに再構築された残差ブロックを加えてメモリ２４５内に格納するための再構築された映像ブロックを生成する。フィルタモジュール２４９は、再構築された映像ブロックに対してループ内又はループ後のフィルタリングを行うことができる。
【００８０】
メモリ２４５は、符号化されるその他のフレームのブロックに関する動き推定における使用のためにブロックのフレーム又はスライスを格納することができる。該格納前に、ループ内フィルタリングの場合は、フィルタモジュール２４９は、映像品質を向上させるために映像ブロックにフィルタリングを適用することができる。フィルタモジュール２４９による該フィルタリングは、ブロッキネス又はその他のアーティファクトを減少させることができる。さらに、フィルタリングは、コーディング中の映像ブロックに非常にマッチしたもの（ｃｌｏｓｅ  ｍａｔｃｈ）を備える予測映像ブロックを生成することによって圧縮を向上させることができる。フィルタリングは、ループ後にも行うことができ、このため、フィルタリングされたデータは復号されたデータとして出力されるが、フィルタリングされないデータは、予測モジュール２４０によって使用される。
【００８１】
量子化モジュール２４３は、ビットレートをさらに低減させるために（例えば、変換モジュール２４２からの）残差変換係数を量子化する。量子化モジュール２４３は、例えば、係数のうちの各々をコーディングするために使用されるビット数を制限することができる。量子化後は、エントロピー符号化モジュール２４４がデータを走査及びエントロピー符号化することができる。例えば、エントロピー符号化モジュール２４４は、量子化された係数ブロックを２次元表現から１つ以上のシリアライズされた１次元ベクトルまで走査することができる。走査順序は、定義された順序で生じるように予めプログラミングすること（例えば、ジグザグ走査、逆ジグザグ走査、水平走査、垂直走査、又は他の予め定義された順序）、又はおそらく以前のコーディング統計に基づいて好適に定義することができる。この走査プロセスに従い、エントロピー符号化モジュール２４４は、データをさらに圧縮するためにここにおいて説明されるエントロピーコーディング法により量子化された変換係数を（あらゆる構文要素とともに）符号化する。エントロピーコーディングされたビットストリームに含まれる構文情報は、予測モジュール２４０からの予測構文、例えば、インターコーディングに関する動きベクトル又はイントラコーディングに関する予測モード、を含むことができる。エントロピーコーディングされたビットストリームに含まれる構文情報は、フィルタ情報、例えば、予測モジュール２４０による補間のために適用されるそれ又はフィルタモジュール２４９によって適用されるフィルタ、を含むことができる。さらに、エントロピーコーディングされたビットストリームに含まれる構文情報は、映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ値及びｒｕｎ値（又はその他の値）を表す１つ以上のＶＬＣコードワードを含むこともでき、本開示の技法は、ｌｅｖｅｌ_ＩＤ値及びｒｕｎ値のＶＬＣコーディングを具体的に定義する。
【００８２】
本開示の技法は、ＣＡＶＬＣ技法の１つのタイプであるとみなすことができる。ＣＡＶＬＣ技法は、変換係数及び／又はその他の構文要素のシリアライズされた“ｒｕｎ”を有効に圧縮する方法でＶＬＣテーブルを使用する。その他のタイプのエントロピーコーディング、例えば、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、では同様の技法を適用することができるであろう。
【００８３】
幾つかの例では、映像コーダ（例えば、符号器又は復号器）は、変換係数をコーディングするためのＣＡＢＡＣに関するバイナリ化方式としてＶＬＣを使用するように構成することができる。例えば、ＣＡＢＡＣを使用するために動作する映像符号器は、変換係数を符号化してバイナリ値のストリームにするためにＶＬＣ技法、例えば、ここにおいて説明されるそれら、を使用するように構成することができる。これらの例により、該バイナリ値は、ＣＡＢＡＣを用いてコーディングすることができる。幾つかの例では、ＣＡＢＡＣに関するバイナリ化方式としてＶＬＣを使用することは、その他の技法と比較してＣＡＢＡＣコーダ（例えば、符号器、復号器）がコーディングするために生成するバイナリ値をより少なくすることができ（例えば、より少ないデータビット数）、それは、コーダによって実施されるＣＡＢＡＣコーディングのスループットを向上させることができる。幾つかの例では、ＣＡＢＡＣに関するバイナリ化方式としてＶＬＣを用いて生成されたバイナリ化された値は、ＣＡＢＡＣバイパスモードを用いてコーディングすることができ、ここで、各バイナリ値は、０又は１の値を有する可能性が同等にあると推定することができる。幾つかの例では、該ＣＡＢＡＣバイパスモードを使用するコーディングは、その他の標準的なＣＡＢＡＣコーディング技法よりも単純であることができる。
【００８４】
幾つかの例では、ここにおいて説明される映像コーダは、ＣＡＢＡＣに関するバイナリ化プロセスとしてＶＬＣを使用することとその他の技法を使用することとの間で移行するように構成することができる。例えば、映像コーダは、幾つかの変換係数をバイナリ化するためにＶＬＣを使用し、その他の係数をバイナリ化するために他の技法を使用することができる。幾つかの例では、該映像コーダは、コーディング中の映像データの１つ以上の特徴に基づいて、ＣＡＢＣのバイナリ化プロセスとしてＶＬＣを使用するか又は何らかのその他の技法を使用するかを動的に決定することができる。
【００８５】
本開示の１つ以上の態様により、ＶＬＣを用いて変換係数をコーディングするための技法が説明される。これらの技法のいずれも、映像データの１つ以上の変換係数をコーディングするために単独で、又は、映像データの変換係数をコーディングするための１つ以上のその他の技法、例えば、ＣＡＢＡＣ技法、と組み合わせて使用することができる。例えば、ここにおいて説明されるＶＬＣコーディング技法のいずれも、上述されるように、変換係数をコーディングするためにＣＡＢＡＣに関するバイナリ方式として使用することができる。
【００８６】
エントロピー符号化モジュール２４４によるエントロピーコーディングに引き続き、符号化された映像は、他のデバイスに送信すること又はのちの送信又は取り出しのためにアーカイブに保存することができる。繰り返すと、符号化された映像は、エントロピーコーディングされたベクトルと様々な構文とを備えることができ、それらは、復号プロセスを適切に構成するために復号器によって使用することができる。例えば、復号器は、変換係数と関連付けられたｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素を表す１つ以上のＶＬＣコードワードを使用すること、及び、符号化された映像を復号するためにＶＬＣコードワードを使用することができる。
【００８７】
図３は、ここにおいて説明される方法で符号化された映像シーケンスを復号する映像復号器３５０の例を示したブロック図である。受信された映像シーケンスは、符号化された画像フレームの組、フレームスライスの組、共通してコーディングされたピクチャのグループ（ＧＯＰ）、又は、符号化された映像ブロックと該映像ブロックの復号方法を定義するための構文情報とを含む非常に様々なコーディングされた映像ユニットを備えることができる。
【００８８】
映像復号器２５０は、エントロピー復号モジュール３４４を含み、それは、図２のエントロピー符号化モジュール２４４によって行われる符号化の逆数復号機能を実行する。特に、エントロピー復号モジュール３４４は、逆数エントロピーコーディングとしてここにおいて説明されるＣＡＶＬＣ技法を、図２のエントロピー符号化モジュール２４４によって適用されたそれに対して行うことができる。この方法により、エントロピー復号モジュール３４４は、１次元のシリアライズされたフォーマットのエントロピー復号された映像ブロックを係数の１つ以上の１次元ベクトルから２次元のブロックフォーマットに変換して戻すことができる。ベクトルの数及びサイズ、及び映像ブロックに関して定義された走査順序が、２次元ブロックの再構築方法を定義することができる。エントロピー復号された予測構文は、エントロピー復号モジュール３４４から予測モジュール３４０に送信することができる。
【００８９】
図３において同じく描かれるように、エントロピー復号モジュール３４４は、ＶＬＣ復号モジュール３７０を含む。ＶＬＣ復号モジュール３７０は、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素のうちの１つ以上の値）を表すＶＬＣコードワードを受信し、及び、コード番号ｃｎを決定するためにＶＬＣテーブル３７２にアクセスすることができる。ＶＬＣ復号モジュール３７０は、少なくとも１つの値と決定されたコード番号ｃｎとの間のマッピングに基づいて変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び構文要素のうちの１つ以上の値）をさらに決定することができる。
【００９０】
本開示の幾つかの態様により、ＶＬＣ復号モジュール３７０は、第１の技法を用いてブロックの第１の係数（又は係数の数）と関連付けられた少なくとも１つの値に第１のコード番号ｃｎをマッピングすること、及び、第２の異なる技法を用いてブロックの第２の係数（又は係数の第２の数）と関連付けられた少なくとも１つの値に第２のコード番号ｃｎをマッピングすることができる。第１の技法により、ＶＬＣ復号モジュール３７０は、構造化されたマッピング（例えば、数学的関係）に基づいてコード番号ｃｎを少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ値及び／又はｒｕｎ値）にマッピングすることができる。第２の技法により、ＶＬＣ復号モジュール３７０は、（例えば、映像復号器３５０のメモリ３４５に格納された）複数のマッピングテーブル３７２のうちの１つのマッピングテーブルにアクセスすることに基づいてコード番号ｃｎを少なくとも１つの値にマッピングすることができる。第１の技法によっては、ＶＬＣ復号モジュール３７０は、コード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ値及び／又はｒｕｎ値）との間のマッピングを定義する映像復号器３５０のメモリ３４５に以前に格納された１つ以上のマッピング３７２にはアクセスすることができない。幾つかの例では、第２の技法により使用される複数のマッピングテーブル３７２は、コード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間の関係を各々定義する。幾つかの例では、ＶＬＣ復号モジュール３７０は、変換係数の位置ｋと予め決定されたスレショルドとの比較に基づいて現在の変換係数（例えば、現在復号されている変換係数）に関して第１の技法又は第２の技法のいずれを使用するかを決定することができる。
【００９１】
本開示の他の態様により、変換係数を復号するために、ＶＬＣ復号モジュール３７０は、コード番号ｃｎに関する決定された値に基づき、コード番号ｃｎからｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素にマッピングするために第１の技法（例えば、第１の数学的関係）又は第２の技法（例えば、第２の数学的関係）を選択的に使用することができる。例えば、ＶＬＣ復号モジュール３７０は、コード番号ｃｎの値、及び変換係数に関する位置ｋを決定することができる。ＶＬＣ復号モジュール３７０は、位置ｋに基づき、メモリ３４５に格納された複数のマッピングテーブル３７２のうちの１つのマッピングテーブルを選択することができる。本開示のこれらの態様により、複数のマッピングテーブル３７２の各々は、コード番号ｃｎとｒｕｎ構文要素との間の関係を定義することができる。対照的に、本開示のその他の態様に関して上述される複数のマッピングテーブル３７２は、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方との間の関係を各々定義することができる。
【００９２】
コード番号ｃｎの決定された値に依存して、ＶＬＣ復号モジュール３７０は、第１の技法又は第２の技法を用いて選択されたマッピングテーブルにアクセスすることができる。例えば、コード番号ｃｎが（例えば、予め決定されたスレショルドよりも大きい）第１の値を有する場合は、ＶＬＣ復号モジュール３７０は、選択されたマッピングテーブルにアクセスするために第１の数学的関係を使用することを含む第１の技法を用いて選択されたマッピングテーブルにアクセスすることができる。しかしながら、コード番号ｃｎが（例えば、予め決定されたスレショルドよりも小さいか又は等しい）第１の値と異なる第２の値を有する場合は、ＶＬＣ復号モジュール３７０は、第２の数学的関係を使用することを含む第２の技法を用いて選択されたマッピングテーブルにアクセスすることができる。ＶＬＣ復号モジュール３７０が第１の技法又は第２の技法のうちの１つに基づいてｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素の値を決定した時点で、映像復号器３５０は、映像データのブロックを復号するために決定されたｌｅｖｅｌ_ＩＤ及びｒｕｎの値を使用することができる。
【００９３】
上述されるように、ＶＬＣ復号モジュール３７０は、ＶＬＣコードワード及び／又はコード番号ｃｎを（例えば、少なくとも１つの構文要素と関連付けられた）少なくとも１つの値にマッピングするためにＶＬＣテーブル３７４及び／又はマッピングテーブル３７２にアクセスすることができる。ＶＬＣテーブル３７４及びマッピングテーブル３７２は、ＶＬＣ復号モジュール３７０が各々のテーブルを適用する限りにおいてエントロピー復号モジュール３４４の一部として例示される。しかしながら、ＶＬＣテーブル３７２及びマッピングテーブル３７４は、実際には、テーブルを適用するためにＶＬＣ復号モジュール３７０によってアクセス可能であるメモリ記憶場所、例えば、メモリ３４５、に格納することができる。
【００９４】
図３において描かれるように、映像復号器は、フィルタモジュール３４９を含む。フィルタモジュール３４９は、再構築された映像ブロックに対してループ内又はループ後フィルタリングを行うことができる。映像復号器３５０は、予測モジュール３４０と、逆量子化ユニット３４３と、逆変換モジュール３４２と、メモリ３４５と、加算器３４６と、も含む。
【００９５】
非常に様々な映像圧縮技術及び規格が、入力された映像信号に内在する冗長性を低減又は除去するために空間的及び時間的予測を行う。上記において説明されるように、入力映像ブロックは、空間予測（すなわち、イントラ予測）及び／又は時間的予測（すなわち、インター予測又は動き推定）を用いて予測される。ここにおいて説明される予測モジュールは、所定の入力映像ブロックに関する望ましい予測モードを選択するためにモード決定モジュール（示されていない）を含むことができる。モード選択では、様々な要因、例えば、ブロックがイントラコーディング又はインターコーディングのいずれであるか、イントラコーディングが使用される場合の予測ブロックサイズ及び予測モード、及びインターコーディングが使用される場合は使用される動きパーティションサイズ及び動きベクトル、を考慮することができる。上述されるように、予測ブロックは、入力映像ブロックから減じられ、残差映像ブロックに対して変換及び量子化が適用される。
【００９６】
量子化された係数は、モード情報とともに、エントロピー符号化されて映像ビットストリームを形成することができる。量子化された係数は、再構築された残差ブロックを形成するために逆量子化及び逆変換もすることができ、それが予測映像ブロック（選択されたコーディングモードに依存してイントラ予測されたブロック又は動き補償されたブロック）に戻されて再構築された映像ブロックが形成される。再構築された映像信号内の可視のアーティファクトを低減させるためにループ内又はループ後フィルタを適用することができる。再構築された映像ブロックは、最終的には、将来の映像ブロックのコーディングの使用のために基準フレームバッファ（すなわち、メモリ）に格納される。
【００９７】
幾つかの例では、本開示において説明される変換係数符号化技法は、ＶＬＣテーブル２６４及び／又はマッピングテーブル２６２を使用することによって図２のＶＬＣ符号化モジュール２６０によって実施することができる。繰り返すと、ＶＬＣテーブル２６４及び／又はマッピングテーブル２６２はエントロピーコーディングモジュール２４４内において例示されているが、ＶＬＣテーブル２７４及び／又はマッピングテーブル２７２は、実際にはメモリの記憶場所（例えば、メモリ２４５）に格納し、コーディングプロセス中にＶＬＣ符号化モジュール２７２によってアクセスすることができる。本開示の逆数変換係数復号技法は、ＶＬＣテーブル３７４及び／又はマッピングテーブル３７２を適用することによって図３のＶＬＣ復号モジュール３７０によって実施することができる。ＶＬＣモジュール２６０と同様に、ＶＬＣモジュール３７０では、ＶＬＣテーブル３７４及びマッピングテーブル３７２はエントロピー復号モジュール３４４内において例示されている。しかしながら、この例示は、実証目的である。実際には、ＶＬＣテーブル３７４及び／又はマッピングテーブル３７２は、メモリの記憶場所（例えば、メモリ３４５）に格納し、復号プロセス中にＶＬＣ復号モジュール３７０によってアクセスすることができる。ここにおいて使用される場合の用語“コーディング”は、符号化、復号、又は符号化と復号の両方を含むプロセスを意味する。
【００９８】
図４は、本開示の技法と一致する逆ジグザグ走査の一例を示した概念図である。図４において描かれる例は、４×４の映像データのブロックである。この例は、本開示の技法を説明することを目的として提供され、非制限的であることが意図される。ここにおいて説明される技法は、あらゆるサイズの映像ブロックに適用可能である。例えば、ここにおいて説明される技法は、１６×１６、３２×３２、６４×６４、又はその他のあらゆるブロックサイズに適用可能である。さらに、本開示の技法は、映像データの配置により映像ブロックに適用することができ、四分木構造によって定義されたコーディングされたユニット、マクロブロック、又はその他の映像データのブロックを含む。それらの技法は、概して、変換領域におけるデータのブロック（すなわち、変換係数）に適用される。
【００９９】
図４において描かれるように、ブロック４０１は、１６の変換係数４１１乃至４２６を含む。この例により、変換係数４１１乃至４２６は、ブロック４０１の右下隅に配置された変換係数４１１から走査される。描かれている逆ジグザグ走査は、変換係数の１次元の順序が設定された係数ベクトルを生成するために使用され、それをエントロピー復号されたビットストリームに従って送信することができる。
【０１００】
図４の例により、ブロック４０１は、ゼロでない及びゼロの大きさの係数４１１乃至４２６の両方を含む。ゼロでない係数は、ゼロよりも大きい大きさを有する量子化された変換係数を意味することができ（例えば、｜ｌｅｖｅｌ｜は、ゼロよりも大きい）、ゼロ値係数は、ゼロに等しい量子化値を有する変換係数を意味することができる（例えば、｜ｌｅｖｅｌ｜は、ゼロに等しい）。例えば、図４に示されるように、（陰影によって示される）変換係数４１２、４１５、４１６、４２０、４２２、４２５、及び４２６は、ゼロでない係数であり、変換係数４１１、４１３、４１４、４１７乃至４１９、４２３、及び４２４は、ゼロ値の変換係数である。
【０１０１】
上述されるように、符号器は、変換係数４１１乃至４２６のうちの少なくとも幾つかに関するｌｅｖｅｌ_ＩＤ値をシグナリングすることができる。ｌｅｖｅｌ_ＩＤ値は、各々の変換係数の大きさを示すことができる。例えば、ｌｅｖｅｌ_ＩＤは、係数の大きさ（｜ｌｅｖｅｌ｜）が１に等しい場合はゼロ（０）の値を有することができる。この例により、ｌｅｖｅｌ_ＩＤは、係数の大きさが１よりも大きい場合は１の値を有することができる。幾つかの例では、符号器は、ゼロ値係数４１１、４１３、４１４、４１７乃至４１９、４２３、及び４２４に関するｌｅｖｅｌ_ＩＤ値をシグナリングすることができない。代わりに、各有意な（ゼロでない）係数と関連付けられたｒｕｎ値が以前に走査されたゼロ値係数の存在を定義することができる。
【０１０２】
同じく上述されるように、符号器は、変換係数４１１乃至４２６のうちの少なくとも一部に関するｒｕｎ値を決定することができる。ｒｕｎ値は、逆ジグザグ走査順序で現在の（現在コーディングされた）係数と次のゼロでない係数との間でゼロに等しい大きさを有する量子化され係数の数を示すことができる。一例により、ｒｕｎは、ゼロ乃至ｋ＋１の範囲内の値を有することができ、ここで、ｋは、走査における現在の係数の位置インデックス値である。位置ｋは、走査順序における現在の係数と最後の係数との間の係数の数であると説明することもできる。該最後の係数は、逆ジグザグ走査順序における最後の係数（例えば、図４の例における係数４２６）を備えることができる。幾つかの例では、符号器は、ブロック４０１の各々のゼロでない係数に関するｒｕｎ値を決定することができる。
【０１０３】
図４は、ゼロでない変換係数４１２、４１５、４１６、４２０、４２２、４２５、及び４２６の各々がコーディングされた後にシグナリングすることができるｒｕｎ値を描く。例えば、図４に示されるように、変換係数４１２がコーディングされた後は、符号器は、ｒｕｎ＝２のｒｕｎ値をシグナリングすることができ、変換係数４１２と次のゼロでない係数（係数４１５）との間には２つのゼロ値の変換係数（４１３、４１４）が存在することを意味する。同じく図４に示されるように、係数４１５がコーディングされた後は、符号器は、ｒｕｎ＝０のｒｕｎ値をシグナリングすることができ、走査順序で係数４１５と次のゼロでない係数（係数４１６）との間にはゼロ値の係数が存在しないことを示す。同じく図４に示されるように、係数４１６がコーディングされた後は、符号器は、ｒｕｎ＝３のｒｕｎ値をシグナリングすることができ、係数４１６と次のゼロでない係数（係数４２０）との間には３つのゼロ値の係数（４１７乃至４１９）が存在することを示す。同じく図４において描かれるように、係数４２０がコーディングされた後は、符号器は、ｒｕｎ＝１のｒｕｎ値をシグナリングすることができ、係数４２０と次のゼロでない係数（係数４２２）との間には１つのゼロ値の係数（係数４２１）が存在することを示す。同じく図４において描かれるように、係数４２２がコーディングされた後は、符号器は、ｒｕｎ＝２のｒｕｎ値をシグナリングすることができ、係数４２２と次のゼロでない係数（係数４２５）との間には２つのゼロ値の係数（係数４２３−４２４）が存在することを示す。同じく図４において描かれるように、係数４２５がコーディングされた後は、符号器は、ｒｕｎ＝０のｒｕｎ値をシグナリングすることができ、走査順序で係数４２５と係数４２６との間にはゼロ値の係数が存在しないことを示す。
【０１０４】
ｒｕｎコーディングモードにより、符号器（例えば、符号器２５０）は、映像データのブロック４０１の変換係数（例えば、１つ以上の変換係数４１１乃至４２６）と関連付けられたｒｕｎ及びｌｅｖｅｌ_ＩＤに関する値を決定し、決定されたｒｕｎ及びｌｅｖｅｌ_ＩＤ値をＶＬＣコードワードとしてシグナリングすることができる。復号器（例えば、復号器３５０）は、ＶＬＣコードワードを受信し、ＶＬＣコードワードを使用してｒｕｎ及びｌｅｖｅｌ_ＩＤに関するシグナリングされた値を決定することができる。復号器は、決定されたｒｕｎ及びｌｅｖｅｌ_ＩＤ値を使用して変換係数を復号することができる。
【０１０５】
図４の例により、係数４１２がコーディングされた後は、係数４１３が現在の係数になる。係数４１５に関するｒｕｎ＝２のｒｕｎ値及びｌｅｖｅｌ_ＩＤ値は、係数４１３  ｉに関する位置インデックス値ｋ（図４の例では１３に等しい）に基づいて、シグナリングする（例えば、連結された値を用いてまとめてコーディングする）ことができる。係数４１５がコーディングされた後は、係数４１６が現在の係数になる。係数４１６の０のｒｕｎ値及びｌｅｖｅｌ_ＩＤ値は、係数４１６の位置インデックス値ｋ（図４の例では１０に等しい）に基づいて、（例えば、まとめて）シグナリングすることができる。係数４１６がコーディングされた後は、係数４１７が現在の係数になり、係数４２０の３のｒｕｎ値及びｌｅｖｅｌ_ＩＤ値は、走査における係数４２０の位置インデックス値（図４の例では６に等しい）に基づいて、（例えば、まとめて）シグナリングすることができる。幾つかの例では、コーダは、係数４２６がコーディングされるまで、係数４１２乃至４２６に関するｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を決定及びシグナリングし続けることができる。
【０１０６】
決定されたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値をＶＣＬコードワードとしてシグナリングするために、符号器は、変換係数と関連付けられた決定されたｒｕｎ及びｌｅｖｅｌ_ＩＤをコード番号ｃｎにマッピングする。これで、コード番号ｃｎは、決定されたｒｕｎ及びｌｅｖｅｌ_ＩＤを表すＶＣＬコードワードを決定するために少なくとも１つのＶＣＬテーブルにアクセスするために使用することができる。
【０１０７】
変換係数と関連付けられたシグナリングされたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を決定するためにＶＬＣコードワードを使用するために、復号器は、受信されたＶＬＣコードワードに基づいてコード番号ｃｎを決定し、変換係数と関連付けられたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値にコード番号ｃｎをマッピングする。これで、復号器は、変換係数を復号するためにマッピングされたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を使用することができる。
【０１０８】
係数４２１乃至４２６を囲むダッシュ線によって示されるように、本開示の幾つかの態様により、コーダ（例えば、符号器又は復号器）は、異なる技法を用いて映像ブロック４０１の異なる変換係数に関してコード番号ｃｎとｒｕｎ値及びｌｅｖｅｌ_ＩＤ値との間でマッピングすることができる。図４において描かれる例により、コーダは、係数４１１乃至４２０をコーディングするために第１の技法（例えば、構造化されたマッピング）を利用し、係数４２１乃至４２６をコーディングするために第２の技法（例えば、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスする）を使用することができる。この例により、第１の技法は、構造化されたマッピング（例えば、数学的関係）を用いてマッピングすることを含む。第１の技法によると、コーダは、コーダによってアクセス可能なメモリに以前に格納されたいずれのマッピングテーブルも使用することができない。さらに、この例により、第２の技法は、コーダによってアクセス可能なメモリに格納された１つ以上のマッピングテーブルに基づいてマッピングすることを含む。ここにおいて説明される技法により、図４に描かれるよりも大きい映像データのブロックを含むあらゆるサイズの映像データのブロックに関してコーディング効率を向上させることができる。例えば、本開示の技法は、８×８、１６×１６、３２×３２、又は６４×６４のサイズの映像データのブロックに関するコーディング効率を向上させることができる。
【０１０９】
図４の例は、第１の数の係数（例えば、係数４２１乃至４２６）に関するコード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素）との間のマッピング、及び第２の数の係数に関するメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることに基づくマッピングを描く。上述されるように、本開示のその他の態様により、コーダは、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素のうちの１つの値に依存して、第１の技法又は第２の技法を用いてコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文との間でマッピングすることができる。
【０１１０】
幾つかの例では、ここにおいて説明される異なるマッピング技法のうちの１つ以上を、映像データのブロックをコーディングするために、ここにおいて説明されるその他のマッピング技法と組み合わせて使用することができる。例えば、コーダは、映像データのブロックの第１の数の係数に関する構造化されたマッピングに基づいてマッピングすること、及び、コード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素の両方との間の関係を各々定義するメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることに基づいてマッピングすることができる。他の例により、コーダは、映像データのブロックの第１の数の係数に関する構造化されたマッピングに基づいてマッピングすること、及び、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素のうちの１つの値に依存して第１の技法又は第２の技法を用いて選択されたマッピングテーブルにアクセスすることに基づいてマッピングすることができる。この例により、複数のマッピングテーブルは、コード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素の両方との間の関係を各々定義する複数のマッピングテーブルとは対照的に、コード番号ｃｎとｒｕｎ構文要素のみの間の関係を定義することができる。さらに他の例では、コーダは、映像データのブロックの第１の数の係数に関してコード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素の両方との間の関係を各々定義するメモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることに基づいてマッピングすること、及び、コード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素の値に依存して（例えば、コード番号ｃｎとｒｕｎ構文要素のみの間の関係を定義する）複数のマッピングテーブルのうちの選択されたマッピングテーブルにアクセスするために第１の技法又は第２の技法を選択的に使用することに基づいてマッピングすることができる。さらに他の例では、コーダは、映像データのブロックの異なる係数に関して、上述される技法のうちの３つの各々を使用することができる。
【０１１１】
上述されるように、ここにおいて説明される幾つかの技法により、変換係数と関連付けられたコード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）との間の（例えば、上述されるように符号器又は復号器による）マッピングは、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることを含むことができる。これらの例により、複数のマッピングテーブルは、変換係数の位置ｋの各々の潜在的な値に関するマッピングテーブルを含むことができる。例えば、図４において描かれるブロック４０１により、変換係数４１１乃至４２６の４×４ブロックは、１６の可能な位置ｋを含む。従って、図４の例により、複数のマッピングテーブルは、逆ジグザグ走査の第１の係数（例えば、位置ｋ＝１５の係数４１１）以外の、各々の位置ｋの各々に関するコード番号ｃｎと少なくとも１つの構文要素（例えば、ｒｕｎ構文要素、又はｒｕｎ構文要素とｌｅｖｅｌ_ＩＤ構文要素の両方）との間のマッピングを各々指定する１５のマッピングテーブルを含むことができる。
【０１１２】
幾つかの例では、ブロックに関する係数位置ｋの各々の潜在的な値に関する複数のマッピングテーブルを格納することは望ましくないことがある。例えば、より大きいブロックサイズ（例えば、１６×１６、３２×３２、６４×６４）に関しては、そのより大きいサイズのブロックの各係数位置ｋに関するマッピングテーブルを格納することは望ましくないことがある。例えば、１６×１６ブロックに関しては、コーダは、そのブロックの各位置ｋに関して２５６のマッピングテーブルへのアクセスを有することができる。３２×３２ブロックに関しては、コーダは、そのブロックの各位置ｋに関して１０２４のマッピングテーブルへのアクセスを有することができる。６４×６４ブロックに関しては、コーダは、そのブロックの各位置ｋに関して４０９６のマッピングテーブルへのアクセスを有することができる。ここにおいて説明されるようにブロックの異なる係数位置に関して異なる技法を使用することによって、コーダによってアクセス可能なメモリに格納されたマッピングテーブルの数を減少させることができ、それは、コーダのコーディング効率を向上させることができる。
【０１１３】
幾つかの例では、（例えば、上述される構造化されたマッピングにより）メモリに格納されたマッピングテーブルを使用しない代わりに、本開示のその他の態様により、メモリに格納されたマッピングテーブルのサイズをその他の技法と比較して小さくすることができる。例えば、上述されるように、本開示の幾つかの態様により、メモリに格納された複数のマッピングテーブルは、各々が、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方との間の関係を定義することができる。本開示のその他の態様により、コーダがコード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素のうちの１つの値に基づいて第１の技法又は第２の技法を選択的に使用するように構成される場合は、複数のマッピングテーブルの各々は、コード番号ｃｎと（例えば、ｌｅｖｅｌ_ＩＤ構文要素ではなく）ｒｕｎ構文要素のみとの間の関係を定義することができる。本開示のこれらの態様により、メモリにマッピングテーブルを格納するために消費されるメモリのサイズをその他の技法と比較して小さくすることができる。
【０１１４】
図５は、本開示の技法と一致する映像データのブロックの変換係数を符号化するための技法の一例を描いた概念図である。典型的な目的のために、図５の技法は、図２において描かれた符号器２５０を参照して説明されるが、図５において描かれる技法を実施するためにその他のデバイスを使用することができる。本開示の幾つかの態様により、符号器２５０は、映像データのブロックの第１の数の変換係数を符号化するために図５において描かれる複数のマッピングテーブル５１０のうちの少なくとも１つのマッピングテーブルを使用し、及び、映像データのブロックの第２の数の変換係数を符号化するために第２の異なる技法を使用することができる。幾つかの例では、第２の技法は、以下の例１に関して説明される構造化されたマッピングであることができる。その他の例により、第２の技法は、図１０において描かれるように、ｌｅｖｅｌ_ＩＤ構文要素の決定された値に基づいて複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスするために第１の技法又は第２の技法を選択的に使用することを含むことができる。これらの例により、メモリに格納された該複数のマッピングテーブルは、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を各々表す図５において描かれる複数のマッピングテーブルとは異なり、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を定義することができる。
【０１１５】
図５に示されるように、符号器２５０（例えば、エントロピー符号化モジュール２４４）は、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ値及び／又はｒｕｎ値）を決定することができる。幾つかの例では、符号器２５０は、映像データのブロックの複数の係数の走査の一部として変換係数と関連付けられたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を決定することができる。幾つかの例では、走査は、図４に関して描かれて説明される逆ジグザグ走査を備えることができる。さらに、幾つかの例では、符号器２５０は、同じく上述されるようにｌｅｖｅｌモード符号化とｒｕｎモード符号化との間で切り換わるように構成することができる。
【０１１６】
ｌｅｖｅｌ_ＩＤ値は、次のゼロでない係数が１又は１よりも大きい振幅を有するかどうかを示すことができる。例えば、ｌｅｖｅｌ_ＩＤ値を決定するために、符号器２５０は、ゼロでない変換係数の大きさを決定することができる。変換係数の決定された大きさが１に等しい場合は、符号器２５０は、変換係数に関してゼロ（０）のｌｅｖｅｌ_ＩＤ値を決定することができる。しかしながら、決定された大きさが１よりも大きい場合は、符号器２５０は、変換係数に関して１のｌｅｖｅｌ_ＩＤ値を決定することができる。
【０１１７】
符号器２５０は、変換係数と関連付けられたｒｕｎ値をさらに決定することができる。ｒｕｎ値は、走査順序（例えば、逆ジグザグ走査順序）において現在の（現在コーディングされた）係数と次のゼロでない係数との間でのゼロに等しい振幅を有する量子化された係数の数を示すことができる。一例により、ｒｕｎは、ゼロ乃至ｋ＋１の範囲内の値を有することができ、ここで、ｋは、走査における現在の係数の位置である。係数と関連付けられたｒｕｎ値を決定するために、符号器２５０は、映像ブロックのその他の係数（例えば、図４において描かれるブロック４０１のその他の係数）の各々の大きさを決定することができる。符号器２５０は、ブロックの次のゼロでない係数（例えば、量子化された係数のうちのいずれがゼロよりも大きい大きさを有するか）をさらに識別することができる。符号器２５０は、走査順序において現在の係数から識別された次のゼロでない係数までのゼロ値係数の数に基づいて変換係数と関連付けられたｒｕｎ値をさらに決定することができる。幾つかの例では、符号器２５０は、決定されたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値を結合（例えば、連結）して単一の値にすることができる。幾つかの例では、該単一の値は、ＩｓＬｅｖｅｌＯｎｅ_Ｒｕｎ値と呼ぶことができる。
【０１１８】
変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素と関連付けられた値）が決定された時点で、符号器２５０（例えば、ＶＬＣ符号化モジュール２６０）は、コード番号ｃｎを決定するために決定された値をコード番号ｃｎにマッピングすることができる。本開示の一態様により、図５において描かれるように、符号器２５０は、複数のマッピングテーブル５１０のうちの１つのマッピングテーブルに基づいて決定された値をコード番号ｃｎにマッピングすることができる。マッピングテーブル５１０は、符号器２５０によってアクセス可能なメモリ、例えば、図２において描かれるメモリ２４５、に格納することができる。図５の例により、図４において描かれるように、４×４の映像データのブロックに関しては、マッピングテーブル５１０は、ｋ＝０乃至ｋ＝１５の１６の潜在的な係数位置に関するマッピングテーブルを含む。
【０１１９】
幾つかの例により、上述されるように、符号器２５０は、走査における係数位置の各々の潜在的な値（例えば、逆ジグザグ走査の最初の係数位置以外の係数位置ｋの各値）専用のマッピングテーブルを格納することができる。例えば、４×４のブロックサイズに関しては、符号器２５０は、１５のマッピングテーブルを格納することができ、８×８のブロックサイズに関しては、符号器は、６３のマッピングテーブルを格納することができ、１６×１６のブロックサイズに関しては、符号器は、２５５のマッピングテーブルを格納することができる。
【０１２０】
本開示の幾つかの態様により、コーダは、映像データのブロックの異なる係数に関して異なる形で少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素）をコード番号ｃｎにマッピングするために異なる技法を使用することの間で移行するように構成することができる。本開示のこれらの態様により、符号器２５０は、符号化中の映像データのブロック内の潜在的なｋ位置の数よりも少ないマッピングテーブル５１０を格納することができる（例えば、図４の例で描かれる４×４ブロックに関しては１５未満のマッピングテーブル）。代わりに、コーダは、ブロックのより少ない数の係数に関してマッピングテーブルを格納するだけであることができる。例えば、ここにおいて説明される技法と一致する形で、符号器２５０は、１６よりも多い変換係数を有する映像データのブロック（例えば、８×８、１６×１６、３２×３２、又は６４×６４のサイズの映像データのブロック）の第１の数の係数に関するコード番号ｃｎに決定された値をマッピングするために構造化されたマッピングを使用することができる。ブロックの第２の数の係数（例えば、走査における最後の１６の係数）に関しては、符号器２５０は、決定された値をコード番号ｃｎにマッピングするために図５に描かれる１６のマッピングテーブル５１０を使用することができる。この例により、符号器２５０は、ブロックの第１の係数（又は第１の数の係数）に関して変換係数と関連付けられた少なくとも１つの値をコード番号ｃｎにマッピングするためにマッピングテーブル５１０を使用するのを回避することができる。
【０１２１】
例えば、６４の係数を含む８×８ブロックに関しては、符号器２５０は、８×８ブロックの第１の５２の係数位置に関して少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ値及び／又はｒｕｎ値）をコード番号ｃｎにマッピングするために構造化されたマッピング（例えば、数学的関係）を使用することができる。８×８ブロックの第２の数の係数位置（例えば、残りの１６の係数位置）に関しては、符号器２５０は、メモリ（例えば、図２に描かれるメモリ２４５）に格納されたマッピングテーブル５１０にアクセスすることができる。他の例として、１６×１６ブロックに関しては、符号器２５０は、１６×１６ブロックの最初の２４０の係数位置に関してｒｕｎ値及びｌｅｖｅｌ_ＩＤ値をコード番号ｃｎにマッピングするために構造化されたマッピング（例えば、数学的関係）を使用することができる。１６×１６ブロックの第２の数の係数位置（例えば、残りの１６の係数位置）に関しては、符号器２５０は、メモリ（例えば、図２において描かれるメモリ２４５）に格納されたマッピングテーブル５１０にアクセスすることができる。
【０１２２】
幾つかの例により、符号器２５０は、係数の位置ｋを予め決定されたスレショルドＴと比較することに基づいてｒｕｎ値及びｌｅｖｅｌ_ＩＤ値をコード番号ｃｎにマッピングするために第１の技法又は第２の技法を選択的に適用することができる。例えば、図５において描かれる例により、予め決定されたスレショルドは、１５の値を有することができる。この例により、符号器２５０は変換係数の走査を実施するときに、符号器２５０は、各変換係数の位置ｋをスレショルドＴと比較することができる。変換係数の位置ｋがスレショルドＴよりも大きい（例えば、図５の例において１５よりも大きい）場合は、符号器２５０は、上述される第１の技法を適用し、数学的関係に基づいて少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）をコード番号ｃｎにマッピングすることができる。しかしながら、位置ｋがスレショルドＴよりも小さいか又は等しい場合は、符号器２５０は、少なくとも１つの値をコード番号ｃｎにマッピングするためにメモリ２４５に格納されたマッピングテーブル５１０のうちの１つにアクセスすることができる。
【０１２３】
ここにおいて説明されるようにコード番号ｃｎに対する変換係数と関連付けられた値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）に関して第１の技法と第２の技法との間で切り換わることによって、符号器２５０は、符号器２５０によってアクセス可能なメモリ（例えば、メモリ２４５）に格納されたマッピングテーブル５１０の数を減らすことができる。これらの技法により、符号器２５０によって格納されるマッピングテーブル数は、走査の係数位置数よりも少なくすることができる。例えば、最大で２５６の位置ｋを含む１６×１６ブロックに関しては、（例えば、Ｔ＋１の）数のマッピングテーブルを格納するだけでよい。同様に、あらゆるサイズの映像データのブロックに関して、符号器２５０は、ブロック内の係数位置数よりも少ないマッピングテーブル数を格納し、それによりブロックを符号化するために用いられる格納データ量を低減させることができる。従って、本来であればマッピングテーブル５１０を格納するために用いられるメモリをその他の目的のために使用し、それによってコーディング効率を向上させることができる。
【０１２４】
幾つかの例では、（例えば、１つ以上のマッピングテーブルを用いて）第２の技法により変換係数と関連付けられた値をコード番号ｃｎにマッピングすることは、ここにおいて説明される第１の技法（例えば、構造化されたマッピング）によるよりも正確であることができる。しかしながら、第２の技法によるマッピングは、複数のマッピングテーブルを格納するためのより多くのメモリを要求することがある。ここにおいて説明される技法と一致する幾つかの例では、上述されるスレショルドＴは、精度（例えば、コーディング品質）とメモリの使用との間での希望されるバランスに基づいて選択することができる。例えば、スレショルドＴは、コーディング中のブロックのサイズ、コーディング中の映像コンテンツの品質及び／又は複雑さ、及び処理のために利用可能な量及び／又はコーディングを行うコーダの通信能力のうちの１つ以上に基づいて決定することができる。
【０１２５】
同じく図５において描かれるように、符号器２５０は、マッピングテーブル５１０と同様に符号器２５０によってアクセス可能なメモリに格納することができる複数のＶＬＣテーブル５２０へのアクセスを有することができる。図５において描かれるように、ＶＬＣテーブル５２０は、符号化中の映像ブロックのサイズを表す数字Ｎまでの走査の係数位置ｋの各々専用となる複数のＶＬＣテーブルを含む。例えば、図４において描かれる４×４映像ブロック４０１により、ＶＬＣテーブル５２０は、映像ブロック４０１内の１５の潜在的な係数位置（逆ジグザグ走査の最初の係数を除く）の各々専用となる１５のＶＬＣテーブルを含むことができる。幾つかの例では、ＶＬＣテーブル５２０の数は、映像データのブロックのサイズに依存することができる。例えば、８×８ブロックに関しては、ＶＬＣテーブル５２０は、６４のＶＬＣテーブルを含むことができる。他の例として、１６×１６映像ブロックに関しては、ＶＬＣテーブル５２０は、２５６のテーブルを含むことができる。その他の例では、映像符号器２５０は、映像データのブロック内の潜在的な係数位置よりも多い又は少ない数のＶＬＣテーブル５２０を含むことができる。
【０１２６】
図５において描かれるＶＬＣテーブルの各々は、４つのコードワード（ＶＬＣコードワード１、ＶＬＣコードワード２、ＶＬＣコードワード３、ＶＬＣコードワード４）を含む。その他の例では、ＶＬＣテーブルは、それよりも多い又は少ない数のＶＬＣコードワードを含むことができる。各々のコードワードは、テーブル間で異なることができる。例えば、位置ｋ＝１専用のＶＬＣテーブルのＶＣＬコードワード１は、位置ｋ＝２専用のＶＬＣテーブルのＶＣＬコードワード１と異なるＶＬＣコードワードであることができる。
【０１２７】
符号器２５０（例えば、ＶＬＣ符号化モジュール２６０）がコード番号ｃｎを決定した時点で、符号器２５０は、少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）の決定された値を表すＶＬＣコードワードを決定するためにＶＬＣテーブル５２０のうちの１つにアクセスするためにコード番号を使用することができる。例えば、図５の例により、コード番号ｃｎは、３の値を有することができる。３のコード番号値は、描かれるＶＬＣテーブルの各々に関して（ｋ＝１、ｋ＝２、ｋ＝３、ｋ＝４）、各々のテーブル内の第４の位置に対応するＶＬＣコードワードを示すことができる。符号器２５０は、現在の変換係数の位置ｋに基づいてＶＬＣテーブル５２０のうちの１つのＶＬＣテーブルを選択することができ、及び、決定されたコード番号ｃｎに基づいて、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ構文要素）を表すＶＬＣコードワードを決定することができる。符号器２５０は、決定されたＶＬＣコードワードを復号器、例えば、復号器３５０、にシグナリングすることができる。例えば、符号器２５０は、決定されたＶＬＣコードワードを映像データのエントロピー符号化されたビットストリームの一部としてシグナリングすることができる。
【０１２８】
図６は、本開示の技法と一致する映像データのブロックの変換係数を復号するための技法の一例を描く概念図である。典型的な目的のために、図６の技法は、図３において描かれる復号器３５０を参照して説明されるが、図６において描かれる技法を実施するためにあらゆる復号デバイスを使用することができる。本開示の幾つかの態様により、復号器３５０は、映像データのブロックの第１の数の変換係数を復号するために図６において描かれる複数のマッピングテーブル６１０のうちの少なくとも１つのマッピングテーブルを使用し、映像データのブロックの第２の数の係数を復号するために第２の異なる技法を使用することができる。幾つかの例では、第２の技法は、以下の例２に関して説明される構造化されたマッピングであることができる。その他の例により、第２の技法は、ｌｅｖｅｌ_ＩＤ構文要素の決定された値に基づいて複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスするために第１の数学的関係又は第２の数学的関係を選択的に使用することを含むことができる。これらの例により、メモリに格納された該複数のマッピングテーブルは、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方との間の関係を各々表す図６において描かれる複数のマッピングテーブル６１０とは異なり、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を定義することができる。
【０１２９】
図６の例により、復号器３５０（例えば、ＶＬＣ復号モジュール３７０）は、受信されたＶＬＣコードワードに基づいて少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）を決定する。図６において描かれるように、符号器２５０と同様に、復号器３５０は、複数のマッピングテーブル６１０と、複数のＶＬＣテーブル６２０と、を含む。幾つかの例では、復号器３５０のマッピングテーブル６１０及びＶＬＣテーブル６２０は、符号器２５０のマッピングテーブル５１０及びＶＬＣテーブル５２０のそれぞれと実質的に同じテーブルである。
【０１３０】
図６に示されるように、復号器３５０は、符号器２５０からＶＬＣコードワードを受信することができる。復号器３５０は、復号中の映像データのブロックのサイズに対応する数字Ｎまでの現在コーディングされている係数の特定位置ｋの各々専用となるＶＬＣテーブル６２０へのアクセスを有する。例えば、４×４ブロックに関しては、Ｎは１６に等しい。８×８ブロックに関しては、Ｎは６４に等しい。１６×１６ブロックに関しては、Ｎは２５６に等しい。現在の係数の位置ｋを決定することに基づき、復号器３５０は、ＶＬＣテーブルを選択し、受信されたＶＬＣコードワードと関連付けられたコード番号ｃｎを決定するためにＶＬＣテーブルを使用することができる。復号器３５０は、決定されたコード番号ｃｎを現在の係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）にマッピングすることができる。
【０１３１】
図６において描かれるように、復号器３５０は、マッピングテーブル６１０へのアクセスを有することができる。例えば、マッピングテーブル６１０は、復号器３５０によってアクセス可能なメモリ３４５に格納することができる。図５において描かれるマッピングテーブル５１０に関して上述されるように、マッピングテーブル６１０は、ブロックの潜在的な係数位置の数よりも少ない（例えば、ブロックの係数位置の数Ｎよりも少ない）マッピングテーブルを含むことができる。本開示の技法により、復号器３５０は、第１の技法を用いてブロックの第１の係数（又は第１の複数の係数）と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）にコード番号ｃｎをマッピングし、第１技法と異なる第２のものを用いてブロックの第２の係数（又は第２の複数の係数）と関連付けられた少なくとも１つの値にコード番号ｃｎをマッピングすることができる。例えば、第１の技法は、ブロックの第１の変換係数と関連付けられた少なくとも１つの値に第１のコード番号ｃｎをマッピングするために構造化されたマッピング（例えば、数学的関係）を使用することを含むことができる。第２の技法は、ブロックの第２の変換係数と関連付けられた少なくとも１つの値に第２のコード番号ｃｎをマッピングするために復号器３５０によってアクセス可能なメモリに格納されたマッピングテーブル６１０にアクセスすることを含むことができる。幾つかの例では、マッピングテーブル６１０は、コード番号ｃｎとｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方との間の関係を各々が定義することができる。例えば、図６に示されるように、復号器３５０のマッピングテーブル６１０の各々は、コード番号ｃｎを入力として受信し、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方を出力することができる。その他の例により、第２の技法は、図１１において描かれる第１の数学的関係又は第２の数学的関係を用いてマッピングテーブル１１１０のうちの１つのマッピングテーブルにアクセスすることを含むことができる。図１１に示されるように、マッピングテーブル１１１０は、コード番号ｃｎとｒｕｎ構文要素との間の関係を各々が定義することができる。
【０１３２】
幾つかの例により、復号器３５０は、係数の位置ｋを予め決定されたスレショルドＴと比較することに基づいて少なくとも１つの値にコード番号ｃｎをマッピングするために第１の技法又は第２の技法を選択的に適用することができる。例えば、図６において描かれる例により、予め決定されたスレショルドＴは、１５の値を有することができる。この例により、復号器２５０が変換係数の走査を行うときには、復号器３５０は、各変換係数の位置ｋをスレショルドＴと比較することができる。変換係数の位置ｋがスレショルドＴよりも大きい（例えば、図６の例において１６よりも大きい）場合は、復号器３５０は、上述される第１の技法を適用し、変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）にコード番号ｃｎをマッピングすることができる。しかしながら、位置ｋがスレショルドＴよりも小さいか又は等しい場合は、復号器３５０は、第２の技法を適用し、変換係数と関連付けられた少なくとも１つの値にコード番号ｃｎをマッピングするためにメモリに格納されたマッピングテーブル６１０のうちの１つにアクセスすることができる。その他の例では、位置ｋがスレショルドＴよりも小さいか又は等しい場合は、復号器３５０は、図１１において描かれるように、メモリに格納された少なくとも１つのマッピングテーブルにアクセスするために第１又は第２の数学的関係を選択的に使用することを含む第２の技法を適用する。
【０１３３】
ここにおいて説明されるように少なくとも１つの値にコード番号ｃｎをマッピングするために第１の技法と第２の技法との間で切り換わることによって、復号器３５０によってアクセス可能なメモリに格納された（例えば、メモリ３４５に格納された）マッピングテーブル６１０の数を減らすことができる。これらの技法により、最大で２５６の位置ｋを含む１６×１６ブロックに関しては、２５５よりも少ない（例えば、（Ｔ＋１）のテーブル）を格納することができる。同様に、あらゆるサイズの映像データのブロックに関して、復号器３５０は、ブロック内の係数位置の数よりも少ないマッピングテーブル数を格納し、それによってブロックを復号するために用いられる格納データ量を低減させることができる。従って、本来であればマッピングテーブル６１０を格納するために用いられるメモリをその他の目的のために使用し、それによってコーディング効率を向上させることができる。
【０１３４】
上述されるように、本開示は、映像データのブロックの異なる変換係数に関してコード番号ｃｎと少なくとも１つの値との間でマッピングするために第１の技法と第２の技法との間で切り換わることを含むコーディング技法について説明する。同じく上述されるように、本開示は、構造化されたマッピング（例えば、数学的関係）に基づいて該マッピングを行うことを含む第１の技法と、メモリに格納された１つ以上のマッピングテーブルに基づいて該マッピングを行うことを含む第２の技法との間で切り換わるための技法について説明される。幾つかの例では、コーダは、変換係数の位置ｋと予め決定されたスレショルドとの比較に基づいて第１の技法と第２の技法との間で切り換わることができる。
【０１３５】
以下の例１は、ここにおいて説明される第１の技法により構造化されたマッピングを実装するために符号器２５０によって使用することができる擬似コードの一例を示す。
【０１３６】
例１
if (level_ID==0){
cn=run;
}
else {
cn = k + run + 2;
}
例１のこの擬似コードは、符号器が必要時に構造化されたマッピングを行うことができるように符号器のメモリ（例えば、メモリ２４５）に格納することができる。
【０１３７】
例１の擬似コードは、位置ｋ、ｌｅｖｅｌ_ＩＤ、及びｒｕｎ値のうちの１つ以上の決定された値に基づいてコード番号ｃｎとｒｕｎ及びｌｅｖｅｌ_ＩＤとの間でマッピングするために動作することができる。例えば、上記の擬似コードにより、変換係数のｌｅｖｅｌ_ＩＤ値がゼロに等しい値を有する（例えば、次のゼロでない係数が１に等しい大きさを有することを示す）場合は、符号器（例えば、符号器２５０）は、ｒｕｎの値に等しい値をコード番号ｃｎに割り当てることができる。換言すると、コード番号ｃｎには、走査順序において（例えば、図４において描かれる逆ジグザグ走査順序において）現在の係数と次のゼロでない係数との間のゼロ係数の数に対応する値を割り当てることができる。
【０１３８】
同じく例１の擬似コードにより、変換係数のｌｅｖｅｌ_ＩＤ値の値がゼロに等しくない（例えば、１に等しい）場合は、符号器は、（ｋの値）＋（係数と関連付けられたｒｕｎの決定された値）＋２をコード番号ｃｎに割り当てることができる。
【０１３９】
擬似コードは、コード番号ｃｎへの変換係数と関連付けられたｒｕｎ値及びｌｅｖｅｌ_ＩＤ値の構造化されたマッピングを描く。上記の擬似コードの動作は、ｒｕｎ、ｌｅｖｅｌ_ＩＤ、及び位置ｋの既知の入力値に基づく、従って、符号器２５０は、ｒｕｎ及びｌｅｖｅｌ_ＩＤの値を決定し、コード番号ｃｎを直接決定するために上述される擬似コードを適用することができる。しかしながら、復号器にとっては、ｒｕｎ及びｌｅｖｅｌ_ＩＤの値は知られていない。代わりに、復号器は、ＶＬＣコードワードを受信し、コード番号を決定するためにＶＬＣテーブルを使用し、及び、ｒｕｎ及びｌｅｖｅｌ_ＩＤ値にコード番号をマッピングする。幾つかの例では、復号器は、決定されたコード番号ｃｎ及び／又は位置ｋからｒｕｎ及びｌｅｖｅｌ_ＩＤへのマッピングを定義する逆数擬似コードへのアクセスを有することができる。
【０１４０】
以下の例２は、ここにおいて説明される第１の技法により構造化されたマッピングを実装するために復号器３５０によって使用することができる擬似コードの一例を示す。
【０１４１】
例２
if (cn < k+2){
level_ＩＤ = 0;
run = cn;
}
else {
level_ID = 1;
run = cn - k - 2;
}
この擬似コードは、復号器が必要時に構造化されたマッピングを行うことができるように復号器のメモリ（例えば、メモリ３４５）に格納することができる。
【０１４２】
例２の擬似コードは、位置ｋ、及び決定されたコード番号ｃｎのうちの１つ以上の決定された値に基づいてコード番号ｃｎからｒｕｎ及びｌｅｖｅｌ_ＩＤにマッピングするために動作することができる。例えば、上記の擬似コードにより、コード番号ｃｎが位置ｋ＋２よりも小さい値を有する場合は、復号器（例えば、復号器３５０）は、ｌｅｖｅｌ_ＩＤにゼロの値、ｒｕｎにコード番号ｃｎの値を割り当てることができる。しかしながら、コード番号ｃｎが値ｋ＋２よりも大きいか又は等しい場合は、復号器は、ｌｅｖｅｌ_ＩＤに１に等しい値、ｒｕｎにコード番号ｃｎ−位置ｋ−２の値を割り当てことができる。
【０１４３】
上記の例１及び２において説明される擬似コード例は、本開示の技法に一致するコーダ（例えば、符号器２５０、復号器３５０）によって使用することができる構造化されたマッピングの単なる数例であるにすぎない。コーダが変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）とコード番号との間でマッピングするために第１の技法と第２の技法との間で移行するのを可能にするあらゆるその他の形態の構造化されたマッピングがここにおいて説明される技法と一致する。
【０１４４】
図７は、本開示の技法と一致する映像データのブロックの変換係数をコーディング（例えば、符号化又は復号）する方法の一例を示した流れ図である。図７において描かれるように、コーディングモジュール（例えば、図２において描かれる映像符号器２５０、図３において描かれる映像復号器３５０）は、第１の技法に基づいて映像データのブロックの第１の現在の変換係数と関連付けられた第１のコード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）との間でマッピングすることができる（７０１）。第１の技法は、構造化されたマッピングを実施することを含むことができる。同じく図７において描かれるように、コーディングモジュールは、第１の変換係数と関連付けられた第１のコード番号ｃｎ又は少なくとも１つの値のうちの１つを出力することができる（７０２）。例えば、コーディングモジュールが符号化モジュールを備える場合は、符号化モジュールは、第１のコード番号ｃｎを出力する（例えば、第１のコード番号をＶＬＣコードワードにマッピングし、ＶＬＣコードワードを出力する）ことができる。他の例として、コーディングモジュールが復号モジュールを備える場合は、復号モジュールは、第１の変換係数と関連付けられた少なくとも１つの値を出力する（例えば、映像データのブロックを復号するために少なくとも１つの値を使用する）ことができる。
【０１４５】
同じく図７において描かれるように、コーディングモジュールは、第１の技法と異なる第２の技法を用いて映像データのブロックの第２の変換係数と関連付けられた第２のコード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ構文要素）との間でマッピングすることができる（７０３）。第２の技法は、メモリに格納された少なくとも１つのマッピングテーブルを使用することを含むことができる。第１の変換係数と関連付けられた少なくとも１つの値及び第２の変換係数と関連付けられた少なくとも１つの値は、各々の第１及び第２の変換係数と関連付けられたｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ構文要素のうちの１つ以上を備えることができる。第１のコード番号ｃｎは、第２のコード番号ｃｎと同じであることができ又は同じでないことができる。一例では、第２の技法は、コード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素との間の関係を各々定義する複数のマッピングテーブル（例えば、図５及び６において描かれるマッピングテーブル５１０、６１０）のうちの少なくとも１つのマッピングテーブルを使用することを含む。他の例により、第２の技法は、コード番号ｃｎとｒｕｎ構文要素のみとの間の関係を各々定義する複数のマッピングテーブル（例えば、図１０及び１１において描かれるマッピングテーブル１０１０、１１１０）のうちの少なくとも１つのマッピングテーブルにアクセスするために第１又は第２の数学的関係を使用することを含む。
【０１４６】
同じく図７において描かれるように、コーディングモジュールは、第２の変換係数と関連付けられた第２のコード番号ｃｎ及び／又は少なくとも１つの値のうちの１つを出力することができる（７０４）。例えば、コーディングモジュールが符号化モジュールを備える場合は、符号化モジュールは、第２のコード番号ｃｎを出力する（例えば、第１のコード番号をＶＬＣコードワードにマッピングしてＶＬＣコードワードを出力する）ことができる。他の例として、コーディングモジュールが復号モジュールを備える場合は、復号モジュールは、第２の変換係数と関連付けられた少なくとも１つの値を出力する（例えば、映像データのブロックを復号するために少なくとも１つの値を使用する）ことができる。
【０１４７】
一例により、コーディングモジュールが符号化モジュール（例えば、映像符号器２５０）を備える場合は、符号化モジュールは、第１の変換係数と関連付けられた少なくとも１つの値を決定し、及び、第１の技法によるマッピングに基づいて第１のコード番号ｃｎを決定することができる。符号化モジュールは、第２の変換係数と関連付けられた少なくとも１つの値をさらに決定し、及び、第２の技法によるマッピングに基づいて第２のコード番号ｃｎを決定することができる。符号化モジュールは、第１の変換係数と関連付けられた少なくとも１つの値を表す第１のＶＬＣコードワード、及び／又は第２の変換係数と関連付けられた少なくとも１つの値を表す第２のＶＬＣコードワードを決定するために１つ以上のＶＬＣテーブルにアクセスするために決定された第１のコード番号ｃｎ及び／又は第２のコード番号ｃｎを使用することができる。符号化モジュールは、第１のＶＬＣコードワード及び／又は第２のＶＬＣコードワードを復号モジュール（例えば、図３において描かれる映像復号器３５０）に出力することができる。復号モジュールは、映像データのブロックを復号するために出力された第１及び／又は第２のＶＬＣコードワードを使用することができる。
【０１４８】
他の例により、コーディングモジュールが復号モジュール（例えば、映像復号器３５０）を備える場合は、復号モジュールは、第１の変換変数と関連付けられた第１のＶＬＣコードワード、及び／又は第２の変換係数と関連付けられた第２のＶＬＣコードワードを受信することができる。復号モジュールは、第１のコード番号ｃｎを決定するために受信された第１のＶＬＣコードワードを使用し、第２のコード番号ｃｎを決定するために第２のＶＬＣコードワードを使用することができる。
【０１４９】
復号モジュールは、構造化されたマッピングを含む第１の技法に基づいて第１の変換係数と関連付けられた少なくとも１つの値を決定するために決定された第１のコード番号ｃｎを使用することができる。復号器は、メモリに格納された少なくとも１つのマッピングテーブルにアクセスすることを含む第２の技法に基づいて第２の変換係数と関連付けられた少なくとも１つの値を決定するために決定された第２のコード番号ｃｎを使用することができる。復号器は、映像データのブロックを復号するために第１の変換係数と関連付けられた決定された少なくとも１つの値及び／又は第２の変換係数と関連付けられた決定された少なくとも１つの値を使用することができる。
【０１５０】
図８は、映像データのブロックの現在の変換係数を符号化する方法の一例を示した流れ図である。図８において描かれるように、エントロピー符号化モジュール２４４は、映像データのブロックの第１の変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ値）を決定する（８０１）。例えば、符号器は、映像データのブロックの現在の変換係数及び／又はその他の変換係数の各々の大きさを決定することに基づいて第１の変換係数と関連付けられたｌｅｖｅｌ_ＩＤ及びｒｕｎ値を決定することができる。
【０１５１】
同じく図８において描かれるように、エントロピー符号化モジュール２４４は、第１の技法により、第１の変換係数と関連付けられた決定された少なくとも１つの値に基づいて第１のコード番号ｃｎを決定することができる（８０２）。第１の技法は、構造化されたマッピング（例えば、数学的関係）により第１の変換係数と関連付けられた決定された少なくとも１つの値を第１のコード番号ｃｎにマッピングすることを含むことができる。一例により、該構造化されたマッピングは、例１において複製された擬似コードを使用することを含むことができる。
【０１５２】
同じく図８において描かれるように、エントロピー符号化モジュール２４４は、少なくとも１つの決定された値を表すために第１のコード番号ｃｎと関連付けられた第１のＶＬＣコードワードを決定することができる（８０３）。例えば、エントロピー符号化モジュール２４４は、第１のＶＬＣコードワードを決定するために複数のＶＬＣテーブル（例えば、図５において描かれるＶＬＣテーブル５１０）のうちの１つのＶＬＣテーブルにアクセスすることができる。エントロピー符号化モジュール２４４は、第１のＶＬＣコードワードを出力することができる（８０４）。例えば、符号器は、第１のＶＬＣコードワードを復号器に出力することができる。
【０１５３】
エントロピー符号化モジュール２４４は、映像データのブロックの第２の変換係数と関連付けられた少なくとも１つの値をさらに決定することができる（８０５）。例えば、エントロピー符号化モジュール２４４は、映像データのブロックの第２の変換係数及び／又はその他の変換係数の各々の大きさを決定することに基づいて第２の変換係数と関連付けられたｌｅｖｅｌ_ＩＤ及びｒｕｎ値を決定することができる。
【０１５４】
同じく図８において描かれるように、エントロピー符号化モジュール２４４は、第２の技法により第２の変換係数と関連付けられた決定された少なくとも１つの値に基づいて第２の変換係数に関する第２のコード番号ｃｎを決定することができる（８０６）。一例により、第２の技法は、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を各々定義するメモリに格納された複数のマッピングテーブル（例えば、図５において描かれるマッピングテーブル５１０）のうちの１つのマッピングテーブルを用いて第２の変換係数と関連付けられた決定された少なくとも１つの値を第２のコード番号ｃｎにマッピングすることを含むことができる。他の例により、第２の技法は、ｒｕｎ構文要素のみとコード番号ｃｎとの間の関係を各々定義する複数のマッピングテーブル（例えば、図１０において描かれるマッピングテーブル１０１０）のうちの１つのマッピングテーブルにアクセスするために第１の数学的関係又は第２の数学的関係を用いてマッピングすることを含むことができる。
【０１５５】
同じく図８において描かれるように、エントロピー符号化モジュール２４４は、少なくとも１つの決定された値を表すために第２のコード番号ｃｎと関連付けられた第２のＶＬＣコードワードを決定することができる（８０７）。同じく図８において描かれるように、エントロピー符号化モジュール２４４は、第２のＶＬＣコードワードを出力することができる（８０８）。例えば、エントロピー符号化モジュール２４４は、エントロピー符号化されたビットストリームの一部として第１のＶＬＣコードワード及び／又は第２のＶＣＬコードワードを復号器に出力することができる。
【０１５６】
図９は、本開示の技法に一致する映像データのブロックの変換係数を復号する方法の一例を示した流れ図である。図９において描かれるように、エントロピー復号モジュール３４４は、映像データのブロックの第１の変換係数と関連付けられた少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ及び／又はｒｕｎ構文要素）を表す第１のＶＬＣコードワードを受信することができる（９０１）。同じく図９において描かれるように、エントロピー復号モジュール３４４は、第１の変換係数と関連付けられた第１のコード番号ｃｎを決定するために第１のＶＬＣコードワードを使用することができる（９０２）。
【０１５７】
同じく図９において描かれるように、エントロピー復号モジュール３４４は、第１の技法により第１の変換係数と関連付けられた少なくとも１つの値を決定するために決定された第１のコード番号ｃｎを使用することができる（９０３）。第１の技法は、構造化されたマッピング（例えば、数学的関係）に基づいて第１の変換係数と関連付けられた少なくとも１つの値に第１のコード番号ｃｎをマッピングすることを含むことができる。
【０１５８】
同じく図９において描かれるように、エントロピー復号モジュール３４４は、映像データのブロックの第２の変換係数と関連付けられた少なくとも１つの値を表す第２のＶＬＣコードワードを受信することができる（９０４）。エントロピー復号モジュール３４４は、第２の変換係数と関連付けられた第２のコード番号ｃｎを決定するために第２のＶＬＣコードワードを使用することができる（９０５）。例えば、エントロピー復号モジュール３４４は、メモリに格納された１つ以上のＶＬＣテーブルにアクセスすることに基づいて第２のコード番号ｃｎを決定することができる。
【０１５９】
同じく図９において描かれるように、エントロピー復号モジュール３４４は、第２の技法により第２の変換係数と関連付けられた少なくとも１つの値を決定するために決定された第２のコード番号ｃｎを使用することができる（９０６）。一例により、第２の技法は、コード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素の両方との間の関係を各々定義するメモリ（例えば、メモリ３４５）に格納された複数のマッピングテーブル（例えば、図６において描かれるマッピングテーブル６１０）のうちの１つのマッピングテーブルにアクセスすることを含むことができる。他の例により、第２の技法は、コード番号ｃｎとｒｕｎ構文要素との間の関係を各々定義する複数のマッピングテーブル（例えば、図１１において描かれるマッピングテーブル１１１０）のうちの１つのマッピングテーブルにアクセスすることを含むことができる。
【０１６０】
同じく図９において描かれるように、エントロピー復号モジュール３４４は、映像データのブロックを復号するために第１の変換係数と関連付けられた少なくとも１つの値及び／又は第２の変換係数と関連付けられた少なくとも１つの値を使用することができる（９０７）。例えば、第１の変換係数と関連付けられた少なくとも１つの値及び／又は第２の変換係数と関連付けられた少なくとも１つの値は、各々の第１及び／又は第２の変換係数と関連付けられたｌｅｖｅｌ_ＩＤ値及びｒｕｎ値を含むことができる。この例により、エントロピー復号モジュール３４４は、ｒｕｎ復号モードにより映像データのブロックの複数の変換係数の走査を行うために各々の値を使用することができる。
【０１６１】
図１０及び１１は、本開示の技法と一致する映像データのブロックの変換係数と関連付けられたコード番号ｃｎとｌｅｖｅｌ_ＩＤ及びｒｕｎ構文要素との間でのマッピングの例を示す流れ図である。図５及び６において描かれる例により、本開示の幾つかの態様により、コーダは、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の両方とコード番号ｃｎとの間の関係を各々定義する複数のマッピングテーブル（例えば、マッピングテーブル５１０、６１０）のうちの１つのマッピングテーブルにアクセスすることに基づいて映像データのブロックの変換係数と関連付けられたコード番号ｃｎと少なくとも１つの値（例えば、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素のうちの１つ以上の関連付けられた値）との間でマッピングすることができる。例１及び例２に関して説明されるように、本開示の他の態様により、コーダは、構造化されたマッピング（例えば、数学的関係）に基づいてコード番号ｃｎとｌｅｖｅｌ_ＩＤ値及びｒｕｎ値との間でマッピングすることができる。例１及び例２に関して説明される構造化されたマッピングは、コード番号ｃｎとｌｅｖｅｌ_ＩＤ値及びｒｕｎ値との間でマッピングするために使用されるメモリに格納されたマッピングテーブルの数を減少させるか又はなくすことによって、コーディング効率を向上させることができる。図７乃至９は、図５及び６において例示される複数のマッピングテーブル５１０、６１０のうちの１つのマッピングテーブルに基づくマッピングのための技法と、上記の例１及び例２に関して説明される構造化されたマッピングとの間で移行することを含む方法例を示す。
【０１６２】
図１０及び１１は、本開示のその他の態様による他の技法を例示し、それは、コード番号ｃｎと少なくとも１つの構文要素（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素）との間でマッピングするために使用されるメモリに格納されたマッピングテーブルのサイズを小さくすることによってコーディング効率を向上させるために使用することができる。これらの態様により、図５及び６において描かれる複数のマッピングテーブル５１０、６１０のうちの１つのマッピングテーブルにアクセスする代わりに、コーダ（例えば、符号器、復号器）は、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を各々定義する複数のマッピングテーブル１１１０のうちの１つのマッピングテーブルにアクセスするために第１の技法又は第２の技法を使用することによってコード番号ｃｎと少なくとも１つの構文要素との間でマッピングすることができる。マッピングテーブル１０１０、１１１０は、ｒｕｎ構文要素とコード番号ｃｎとの間の関係のみを定義するため、マッピングテーブル１０１０、１１１０は、図５及び６において描かれるマッピングテーブル５１０、６１０よりも少ないメモリスペースを消費することができる。
【０１６３】
図１０及び１１の例により、コーダは、コード番号ｃｎ及びｌｅｖｅｌ_ＩＤ構文要素のうちの１つの決定された値に基づいて、第１の技法又は第２の技法を用いて映像データのブロックの変換係数と関連付けられたコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングすることができる。例えば、コーダは、変換係数と関連付けられたコード番号ｃｎの値又は少なくとも１つの値に依存して、メモリに格納された複数のマッピングテーブル１０１０、１１１０のうちの選択されたマッピングテーブルに異なる形でアクセスすることができる。
【０１６４】
図１０は、本開示の１つ以上の態様と一致する映像データのブロックの少なくとも１つの変換係数を符号化するためにコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングする一例を示した概念図である。図１０において描かれるマッピングは、図２において描かれる映像符号器２５０（例えば、図２において描かれるＶＬＣ符号化モジュール２６０）によって実施することができる。図１０の例により、映像符号器２５０は、決定されたｌｅｖｅｌ_ＩＤ構文要素の値に基づいて第１の技法（例えば、第１の数学的関係）又は第２の技法（第２の数学的関係）を用いて決定されたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素をコード番号ｃｎにマッピングすることができる。
【０１６５】
図１０の例により、映像符号器２５０は、変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値を決定することができる（１００１）。同じく図１０において示されるように、映像コーダ２５０は、変換係数と関連付けられた位置ｋを決定することができる（１００２）。
【０１６６】
映像符号器２５０は、ｌｅｖｅｌ_ＩＤ構文要素の値に基づいて、第１の技法又は第２の技法を用いて決定された値をコード番号ｃｎにマッピングすることができる。例えば、図１０において描かれるように、ｌｅｖｅｌ_ＩＤ構文要素が第１の値（例えば、ｌｅｖｅｌ_ＩＤ＝０）を有する場合は、映像符号器２５０は、コード番号ｃｎを決定するために第１の技法（例えば、第１の数学的関係）によりメモリに格納された複数のマッピングテーブル１０１０のうちのマッピングテーブルＴｋにアクセスすることができる（１００３）。しかしながら、決定されたｌｅｖｅｌ_ＩＤ構文要素が第２の値（例えば、ｌｅｖｅｌ_ＩＤ＝１）を有する場合は、映像符号器２５０は、コード番号ｃｎを決定するために第１の技法と異なる第２の技法（例えば、第２の数学的関係）によりメモリに格納された複数のマッピングテーブル１０１０のうちのマッピングテーブルＴｋにアクセスすることができる（１００４）。第１の技法及び第２の技法の両方により、映像符号器２５０は、変換係数に関する決定された係数位置ｋに基づいてメモリに格納された複数のマッピングテーブル１０１０からマッピングテーブルＴｋを選択することができる。
【０１６７】
図１０において描かれるように、マッピングテーブル１０１０は、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を各々定義することができる。例えば、図１０において示されるように、マッピングテーブル１０１０は、ｒｕｎ構文要素を入力として受信し、コード番号ｃｎを出力として出力するように構成される。図１０において示されるマッピング技法により、映像符号器２５０は、図５において描かれるように、変換係数に関するｌｅｖｅｌ_ＩＤ構文要素とｒｕｎ構文要素との間でマッピングし、その他の技法、例えば、ｒｕｎ値及びｌｅｖｅｌ_ＩＤ値の両方とコード番号ｃｎとの間の関係を各々定義する複数のマッピングテーブル５１０のうちの１つのマッピングテーブルを使用する、と比較してメモリに格納されたマッピングテーブル１０１０のサイズを小さくすることができる。
【０１６８】
同じく図１０において描かれるように、映像符号器２５０は、コード番号ｃｎを決定することができる。映像符号器２５０は、（例えば、メモリに格納された複数のＶＬＣテーブル２６２のうちの１つのＶＬＣテーブルに基づいて）ＶＬＣコードワードを決定するために決定されたコード番号ｃｎを使用することができる。符号器は、ＶＬＣコードワードを出力することができる。例えば、符号器は、エントロピー符号化されたビットストリームの一部としてコード番号ｃｎを復号器に出力することができる。
【０１６９】
以下の例３は、図１０において描かれる技法と一致する映像符号器２５０によって実行することができる擬似コードの一例を描く。例３において描かれる擬似コードは、映像符号器２５０が必要時に図１０において例示される技法を実施することができるようにその符号器のメモリ（例えば、メモリ２４５）に格納することができる。
【０１７０】
例３
If (level_ID == 0) {
cn = Tk(run);
}
else {
cn = k+Tk ( run )+1;
}
例３の擬似コードにより、関数Ｔｋは、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを示す。この例により、映像符号器２５０は、決定された係数位置ｋに基づいてマッピングテーブルＴｋを選択することができる。例３において描かれるように、映像符号器２５０は、ｌｅｖｅｌ_ＩＤ構文要素の値に依存して異なった形で選択されたマッピングテーブルＴｋにアクセスすることができる。例えば、上例３に示されるように、映像符号器２５０が、ｌｅｖｅｌ_ＩＤはゼロに等しい値を有すると決定した場合は、映像符号器２５０は、第１の技法（例えば、Ｔ（ｒｕｎ））によりマッピングテーブルＴｋにアクセスすることに基づいてコード番号ｃｎを決定することができる。この例により、コーダは、コード番号ｃｎを決定するために決定されたｒｕｎ値をマッピングテーブル（Ｔ）に入力することができる。同じく上例３において示されるように、映像符号器２５０が、ｌｅｖｅｌ_ＩＤはゼロに等しい値を有さない（例えば、ｌｅｖｅｌ_ＩＤが１に等しい）と決定した場合は、映像符号器２５０は、コード番号ｃｎを決定するために、第１の技法と異なる第２の技法に基づいてマッピングテーブルＴｋにアクセスすることができる（例えば、コード番号ｃｎは、位置ｋ＋マッピングテーブルＴ（ｒｕｎ）＋１に等しい）。
【０１７１】
例３の擬似コードにより、マッピングテーブルＴｋは、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を定義する。この方法により、マッピングテーブルＴｋは、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を各々定義する、図５において描かれる複数のマッピングテーブル５１０のうちの１つのマッピングテーブルと異なる。マッピングテーブルＴｋは、ｒｕｎ構文要素とコード番号ｃｎとの間の関係のみを定義するため、マッピングテーブル１０１０は、図５において描かれるマッピングテーブル５１０よりも少ないメモリを消費することができる。
【０１７２】
幾つかの例では、映像符号器２５０が上述される第１又は第２の数学的関係のうちの１つを用いてコード番号ｃｎを決定した時点で、映像符号器２５０は、コード番号ｃｎを表すＶＬＣコードワードを決定することができる。例えば、映像符号器２５０は、ＶＬＣコードワードを決定するためにメモリに格納された複数のＶＬＣテーブルのうちの１つのＶＬＣテーブルにアクセスするためにコード番号ｃｎを使用することができる。符号器は、決定されたＶＬＣコードワードを復号器（例えば、図３において描かれる映像復号器３５０）に出力することができ、ＶＬＣコードワードを用いて映像データのブロックを復号することができる。
【０１７３】
図１１は、本開示の１つ以上の態様と一致する、映像データのブロックの少なくとも１つの変換係数を復号するためにコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングする一例を示した概念図である。図１１において描かれる技法は、映像復号器３５０（例えば、図３において描かれるＶＬＣ復号モジュール３７０）によって実施することができる。図１１の例により、映像復号器３５０は、コード番号ｃｎを決定することができる（１１０１）。例えば、映像復号器３５０は、符号器（例えば、図２において描かれる映像符号器２５０）からＶＬＣコードワードを受信することができる。映像復号器３５０は、メモリ（例えば、図３において描かれるメモリ３４５）に格納された複数のＶＬＣテーブルのうちの１つのＶＬＣテーブルにアクセスすることに基づいてコード番号ｃｎを決定することができる。映像復号器３５０は、現在の変換係数の位置ｋを決定することもできる（１１０２）。
【０１７４】
コード番号ｃｎの値に依存して、映像復号器３５０は、コード番号ｃｎの値に基づいてｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を決定するために第１の技法又は第２の技法を使用することができる。例えば、図１１に示されるように、コード番号ｃｎが（例えば、位置ｋ＋２よりも小さい）第１の値を有する場合は、映像復号器３５０は、ｌｅｖｅｌ_ＩＤ構文要素にゼロの値を割り当てることができる（１１０３）。映像復号器３５０は、（例えば、変換係数の決定された位置ｋに基づいて）メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルを選択することもできる。コード番号ｃｎが第１の値を有する場合は、映像復号器３５０は、第１の数学的関係を用いて選択されたマッピングテーブルにアクセスすることができる（１１０４）。
【０１７５】
同じく図１１において示されるように、コード番号ｃｎが（例えば、位置ｋ＋２よりも大きいか又は等しい）第１の値と異なる第２の値を有する場合は、映像復号器３５０は、ｌｅｖｅｌ_ＩＤ構文要素に１の値を割り当てことができる（１１０５）。同じく図１１において示されるように、コード番号ｃｎが第２の値を有する場合は、映像復号器３５０は、第１の数学的関係と異なる第２の数学的関係を用いて選択されたマッピングテーブルにアクセスすることができる（１１０６）。
【０１７６】
図１１に示されるように、マッピングテーブル１１１０は、各々が、コード番号ｃｎとｒｕｎ値との間の関係を定義することができる。例えば、図１１に示されるように、マッピングテーブル１１１０は、各々が、コード番号ｃｎを入力として受信し、ｒｕｎ構文要素を出力する。この方法により、マッピングテーブル１１１０は、コード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の両方との間の関係を定義する図６において描かれるマッピングテーブル６１０と異なる。幾つかの例では、マッピングテーブル１１１０は、コード番号ｃｎとｒｕｎ構文要素との間の関係を定義するだけであるため、マッピングテーブル１１１０は、図６において描かれるマッピングテーブル６１０よりも少ないメモリを消費することができる。
【０１７７】
上述される第１及び第２の技法のうちの１つに基づき、映像復号器３５０は、ｒｕｎ構文要素の値及びｌｅｖｅｌ_ＩＤ構文要素の値を決定することができる。映像復号器３５０は、映像データのブロックを復号するために決定されたｌｅｖｅｌ_ＩＤ値及び決定されたｒｕｎ値を使用することができる。
【０１７８】
以下の例４は、図１１において描かれる方法と一致する、映像復号器３５０（例えば、図３において描かれるＶＬＣ復号モジュール３７０）によって実行することができる擬似コードの一例である。例４において描かれる擬似コードは、映像復号器３５０が必要時に図１１において例示される技法を実施することができるように映像復号器３５０のメモリ（例えば、メモリ３４５）に格納することができる。
【０１７９】
例４
if (cn < k+2){
level_ID = 0;
run = T-1(cn);
}
else {
level_ID = 1;
run = T-1(cn - k - 1);
}
例４の擬似コードにより、関数Ｔ’ｋは、メモリに格納された複数のマッピングテーブル（例えば、図１１において描かれるマッピングテーブル１１１０）のうちの１つのマッピングテーブルを示す。例４の関数Ｔ’ｋは、例３に関して上述されるマッピングテーブルＴｋに対する逆マッピングテーブルを示すことができる。例４の擬似コードにより、映像復号器３５０は、現在の変換係数の位置ｋに基づいてマッピングテーブルＴ’ｋを選択することができる。
【０１８０】
例４の技法により、映像復号器３５０は、コード番号ｃｎの値に依存して異なる形でマッピングテーブルＴ’ｋ（例えば、図１０において描かれるマッピングテーブル１１１０）にアクセスすることができる。例えば、例４において示されるように、映像復号器３５０が、コード番号ｃｎは位置ｋ＋２よりも小さい値を有すると決定した場合は、映像復号器３５０は、ゼロの値をｌｅｖｅｌ_ＩＤ構文要素に割り当てることができる。映像復号器３５０は、ｒｕｎ構文要素のための値を決定することもできる。例えば、コード番号ｃｎが位置ｋ＋２よりも小さい値を有する場合は、映像復号器３５０は、第１の数学的関係を用いて（例えば、コード番号ｃｎをマッピングテーブルＴ’ｋ，Ｔ’ｋ（ｃｎ）に適用することによって）ｒｕｎ構文要素を決定することができる。
【０１８１】
他方、映像復号器３５０が、コード番号ｃｎは位置ｋ＋２よりも大きいか又は等しい値を有すると決定した場合は、映像復号器３５０は、１の値をｌｅｖｅｌ_ＩＤ構文要素に割り当てることができる。映像復号器３５０は、ｒｕｎ構文要素のための値を決定することもできる。例えば、コード番号ｃｎが位置ｋ＋２よりも大きいか又は等しい値を有する場合は、映像復号器３５０は、第２の数学的関係を用いて（例えば、（コード番号ｃｎの値）−位置ｋ−１をマッピングテーブルＴ’ｋ，Ｔ’ｋに適用することによって（ｃｎ−ｋ−１））ｒｕｎ構文要素を決定することができる。幾つかの例では、映像復号器３５０が例４の擬似コードを用いてｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を決定した時点で、映像復号器３５０は、映像データのブロックをコーディングするために決定されたｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素を使用することができる。
【０１８２】
例４の擬似コードにより、マッピングテーブルＴ’ｋは、コード番号ｃｎとｒｕｎ構文要素との間の関係を定義する。この方法により、マッピングテーブルＴ’ｋは、ｒｕｎ構文要素及びｌｅｖｅｌ_ＩＤ構文要素の両方とコード番号ｃｎとの間の関係を各々定義する、図６において描かれる複数のマッピングテーブル６１０のうちの１つのマッピングテーブルと異なる。マッピングテーブルＴ’ｋは、コード番号ｃｎとｒｕｎ構文要素との間の関係を定義するだけであるため、図１１において描かれるマッピングテーブル１１１０は、図６において描かれるマッピングテーブル６１０のうちの１つよりも少ないメモリを消費することができる。
【０１８３】
図１２は、本開示の技法と一致する、映像データのブロックをコーディングするための方法の一例を示した流れ図である。図１２において描かれるように、コーダ（例えば、映像符号器２５０、映像復号器３５０）は、映像データのブロックの変換係数と関連付けられたコード番号ｃｎ及びｌｅｖｅｌ_ＩＤ構文要素のうちの１つの値を決定する（１２０１）。例えば、図１２の技法が符号器（例えば、映像符号器２５０）によって実行される場合は、符号器は、変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値を決定することができる。ｌｅｖｅｌ_ＩＤ構文要素は、変換係数の大きさが１よりも大きいか又は等しいかを示すことができる。他の例により、図１２の技法が復号器（例えば、映像復号器３５０）によって実行される場合は、復号器は、受信されたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定することができる。例えば、復号器は、受信されたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定するためにメモリに格納された複数のＶＬＣテーブルのうちの１つのＶＬＣテーブルにアクセスすることができる。
【０１８４】
同じく図１２において描かれるように、コーダは、決定された値に基づいて、第１の技法又は第２の技法を用いてコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングすることができる（１２０２）。幾つかの例では、第１の技法及び第２の技法は、現在の変換係数に関する位置ｋに基づいて選択された、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることを含む。例えば、コーダは、決定された値が第１の値である場合は、第１の数学的関係を用いて選択されたマッピングテーブルにアクセスすることを含む第１の技法を使用することができる。しかしながら、決定された値が第１の値と異なる第２の値である場合は、コーダは、第１の技法と異なる第２の技法を使用することができ、それは、第１の数学的関係と異なる第２の数学的関係を用いて選択されたマッピングテーブルにアクセスすることを含むことができる。
【０１８５】
同じく図１２において描かれるように、コーダは、マッピングに基づいてコード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素のうちの１つを決定することができる（１２０３）。例えば、コーダが符号器である場合は、符号器は、コード番号ｃｎを決定するためにコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングすることができる。他の例により、コーダが復号器である場合は、復号器は、ｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素のうちの１つ以上の値を決定するためにコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングすることができる。
【０１８６】
図１０乃至１２に関して上述される技法は、有利であることができ、その理由は、図５及び６に関して上述されるように、ｒｕｎ構文要素とコード番号ｃｎとの間の関係を各々定義するメモリに格納された複数のマッピングテーブルのうちの１つマッピングテーブルを使用することは、コード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の両方との間の関係を各々定義する複数のマッピングテーブル５１０、６１０の各々のよりも少ないメモリを消費することができるためである。
【０１８７】
上述されるように、図１０乃至１２及び例３及び例４に関して説明される技法は、独立して使用することができる。例えば、コーダは、ブロックの各係数に関するコード番号ｃｎ又はｌｅｖｅｌ_ＩＤ構文要素の値に基づいてコード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素との間でマッピングすることができる。その他の例により、コーダは、ブロックの第１の数の係数に関しては図１０乃至１２に関して説明される技法によりマッピングし、ブロックの第２の数の係数に関しては他の技法を用いてマッピングすることができる。一例により、該第２の技法は、例１及び例２に関して上述される構造化されたマッピングを含むことができる。他の例により、該第２の技法は、図５及び６に関して上述されるように、コード番号ｃｎとｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素の両方との間の関係を各々定義するメモリに格納された複数のマッピングテーブル５１０、６１０のうちの１つのマッピングテーブルを使用することを含むことができる。さらに他の例により、コーダは、映像データのブロックの異なる係数に関して、ここにおいて説明される３つの技法のうちの各々を使用するように構成することができる。
【０１８８】
上述されるように、コーダは、変換係数に関するコード番号ｃｎとｌｅｖｅｌ_ＩＤ値及びｒｕｎ値との間でマッピングするために異なる技法間で移行するように構成することができる。これらの例により、コーダは、位置ｋと１つ以上のスレショルドとの比較に基づいてここにおいて説明される異なるマッピング間で移行することができる。同じくこれらの例により、上述される異なる技法は、コーディングの１つ以上の希望される特徴に依存して異なる形で映像データのブロックの係数に適用することができる。例えば、該１つ以上のスレショルドは、映像データのブロックを復号するためにコーダの希望される精度、効率、及び／又はメモリ使用量に依存して調整し、それによってより高い映像コーディングの柔軟性を提供することができる。
【０１８９】
以下の例５は、映像データのブロックの異なる係数を符号化するために、図１０及び１２に関して説明されるマッピング技法と上例１に関して説明される構造化されたマッピングとの間で移行するために符号器（例えば、図２において描かれる映像符号器２５０）によって使用することができる擬似コードの一例を描く。例５において描かれる擬似コードは、符号器が必要時にこれらの技法を実施することができるように符号器のメモリ（例えば、メモリ２４５）に格納することができる。
【０１９０】
例５：
if k<T {
if (level_ID == 0) {
cn = T(run);
}
else {
cn = k+T( run ) + 1;
}
}
else if k>=T { 
if (level_ID == 0) {
cn = run; 
else {
cn = k + run + 2;
}
}
例５の擬似コードによって描かれるように、映像符号器２５０は、係数位置ｋとスレショルドＴとの比較に基づいて、例１に関して上述される構造化されたマッピング、又は図１０及び１２に関して上述される技法、のうちの１つを適用することができる。例えば、例５によって示されるように、現在の係数の位置ｋがスレショルドＴよりも小さい場合は、コーダは、ｌｅｖｅｌ_ＩＤの値に基づいて第１の技法又は第２の技法によりメモリに格納された複数のマッピングテーブル１０１０のうちの１つマッピングテーブルにアクセスすることができる。例えば、ｌｅｖｅｌ_ＩＤがゼロの値を有する場合は、第１の技法により、符号器は、コード番号ｃｎを決定するためにｒｕｎの値を選択されたマッピングテーブルＴｋ内に入力することができる。しかしながら、ｌｅｖｅｌ_ＩＤがゼロの値を有さない（例えば、ｌｅｖｅｌ_ＩＤが１の値を有する）場合は、第２の技法により、映像符号器２５０は、位置ｋの値＋Ｔｋ（ｒｕｎ）＋１をコード番号ｃｎに割り当てることができる。
【０１９１】
同じく例５において描かれるように、変換係数の位置ｋがスレショルドＴよりも大きいか又は等しい場合は、符号器は、例１に関して上述されるように構造化されたマッピングに基づいてコード番号ｃｎを決定することができる。例えば、ｌｅｖｅｌ_ＩＤの値がゼロに等しい場合は、符号器は、ｒｕｎの決定された値をコード番号ｃｎに割り当てることができる。しかしながら、ｌｅｖｅｌ_ＩＤの値がゼロに等しくない（例えば、１に等しい）場合は、符号器は、位置ｋの値＋ｒｕｎの値＋２の値をコード番号ｃｎに割り当てることができる。
【０１９２】
以下の例６は、映像データのブロックの異なる変換係数に関して、図１１及び１２に関して説明されるマッピング技法と上例２に関して説明される構造化されたマッピングとの間で移行するために復号器（例えば、図３において描かれる映像復号器３５０）によって使用することができる擬似コードの一例を描く。例６において描かれる擬似コードは、復号器が必要時にこれらの技法を実施することができるように復号器のメモリ（例えば、メモリ３４５）に格納することができる。
【０１９３】
例６：
if k < T {
if (cn < k +2) {
level_ID = 0;
run = T-1 (cn);
}
else {
level_ID = 1;
run = T-1 (cn-k-1);
}
else  {
if (cn < k + 2) {
level_ID = 0;
run = cn;
{
else {
level_ID = 1;
run = cn - k - 2; 
}
}
例６の擬似コードによって描かれるように、映像復号器３５０は、係数位置ｋとスレショルドＴとの比較に基づいて、例２に関して上述される構造化されたマッピング、又は図１１及び１２に関して上述される技法のうちの１つを適用することができる。例えば、例６によって示されるように、現在の係数の位置ｋがスレショルドＴよりも小さい場合は、コーダは、コード番号ｃｎの値に基づいて第１の技法又は第２の技法によりメモリに格納された複数のマッピングテーブル１１１０のうちの１つマッピングテーブルにアクセスすることができる。例えば、コード番号ｃｎが位置ｋ＋２よりも小さい値を有する場合は、映像復号器３５０は、ｌｅｖｅｌ_ＩＤにゼロの値を割り当てることができる。コード番号ｃｎが位置ｋ＋２よりも小さい値を有する場合は、映像復号器３５０は、第１の数学的関係によりメモリに格納されたマッピングテーブルＴ’ｋにアクセスする（例えば、ｒｕｎの値、Ｔ’ｋ（ｃｎ）を決定するためにコード番号ｃｎをマッピングテーブルＴ’ｋ内に入力する）ことができる。しかしながら、コード番号ｃｎが位置ｋ＋２よりも大きいか又は等しい場合は、復号器は、１の値をｌｅｖｅｌ_ＩＤに割り当てることができる。コード番号ｃｎが位置ｋ＋２よりも大きいか又は等しい場合は、映像復号器３５０は、第２の数学的関係によりメモリに格納されたマッピングテーブルＴ’ｋにアクセスする（例えば、ｒｕｎ構文要素の値を決定するためにコード番号ｃｎ−位置ｋ−１をマッピングテーブルＴ’ｋ（例えば、Ｔ’（ｃｎ−ｋ−１））内に入力する）こともできる。
【０１９４】
同じく例６において描かれるように、変換係数の位置ｋがスレショルドＴよりも大きいか又は等しい場合は、映像復号器３５０は、例２に関して上述されるように、構造化されたマッピングに基づいて少なくとも１つの構文要素（例えば、ｌｅｖｅｌ_ＩＤ構文要素及び／又はｒｕｎ構文要素）を決定することができる。例えば、コード番号ｃｎの値が位置ｋ＋２よりも小さい場合は、映像復号器３５０は、ゼロの値をｌｅｖｅｌ_ＩＤに、及びコード番号ｃｎの値をｒｕｎに割り当てることができる。しかしながら、コード番号ｃｎの値が位置ｋ＋２よりも大きいか又は等しい場合は、映像復号器３５０は、１の値をｌｅｖｅｌ_ＩＤに、及びコード番号ｃｎ−位置ｋ−２の値をｒｕｎに割り当てることができる。
【０１９５】
１つ以上の例では、ここにおいて説明される機能は、ハードウェア、例えば、特定のハードウェアコンポーネント又はプロセッサ、において少なくとも一部を実装することができる。より一般的には、技法は、ハードウェア、プロセッサ、ソフトウェア、ファームウェア、又はそれらの組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、それらの機能は、コンピュータによって読み取り可能な媒体において１つ以上の命令又はコードとして格納又は送信すること及びハードウェアに基づく処理ユニットによって実行することができる。コンピュータによって読み取り可能な媒体は、コンピュータによって読み取り可能な記憶媒体を含むことができ、それは、有形な媒体、例えば、データ記憶媒体、又は、例えば、通信プロトコルにより、１つの場所から他へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体、に対応する。このように、コンピュータによって読み取り可能な媒体は、概して、（１）非一時的である有形なコンピュータによって読み取り可能な記憶媒体又は（２）通信媒体、例えば、信号又は搬送波、に対応することができる。データ記憶媒体は、本開示において説明される技法の実装のために命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスすることができるあらゆる利用可能な媒体であることができる。コンピュータプログラム製品は、コンピュータによって読み取り可能な媒体を含むことができる。
【０１９６】
一例により、及び制限することなしに、該コンピュータによって読み取り可能な記憶媒体は、希望されるプログラムコードを命令又はデータ構造の形態で格納するために使用することができ及びコンピュータによってアクセス可能であるＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又はその他の光学ディスク記憶装置、磁気ディスク記憶装置、又はその他の磁気記憶デバイス、フラッシュメモリ、又はその他のいずれかの媒体を備えることができる。さらに、どのような接続も、コンピュータによって読み取り可能な媒体、すなわち、コンピュータによって読み取り可能な送信媒体、であると適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者ライン（ＤＳＬ）、又は無線技術、例えば、赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバ、又はその他の遠隔ソースから送信される場合は、該同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、又は無線技術、例えば赤外線、無線、及びマイクロ波、は、媒体の定義の中に含まれる。しかしながら、コンピュータによって読み取り可能な記憶媒体およびデータ記憶媒体は、コネクション、搬送波、信号、又はその他の遷移媒体は含まず、代わりに、非遷移的な、有形の記憶媒体を対象とすることが理解されるべきである。ここにおいて用いられるときのディスク（ｄｉｓｋ及びｄｉｓｃ）は、コンパクトディスク（ＣＤ）（ｄｉｓｃ）と、レーザディスク（ｄｉｓｃ）と、光ディスク（ｄｉｓｃ）と、デジタルバーサタイルディスク（ＤＶＤ）（ｄｉｓｃ）と、フロッピーディスク（ｄｉｓｋ）(登録商標）と、ｂｌｕ−ｒａｙディスク（ｄｉｓｃ）と、を含み、ここで、ｄｉｓｋは、通常は磁気的にデータを複製し、ｄｉｓｃは、レーザを用いて光学的にデータを複製する。上記の組み合わせも、コンピュータによって読み取り可能な媒体の適用範囲内に含められるべきである。
【０１９７】
命令は、１つ以上のプロセッサ、例えば、１つ以上の中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）又はその他の同等の集積又は個別の論理回路によって実行することができる。従って、ここにおいて用いられる場合の用語“プロセッサ”は、上記の構造又はここにおいて説明される技法の実装に適するあらゆるその他の構造のうちのいずれかを意味することができる。さらに、幾つかの態様では、ここにおいて説明される機能は、符号化および復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内において提供されること、又は組み合わされたコーデック内に組み入れることができる。さらに、技法は、１つ以上の回路又は論理素子内に完全に実装することが可能である。
【０１９８】
本開示の技法は、無線ハンドセット、集積回路（ＩＣ）又は一組のＩＣ（例えば、チップセット）を含む非常に様々なデバイス又は装置内に実装することができる。本開示では、開示される技法を実施するように構成されたデバイスの機能上の態様を強調するために様々なコンポーネント、モジュール、又はユニットが説明されるが、異なるハードウェアユニットによる実現は必ずしも要求しない。むしろ、上述されるように、様々なユニットは、適切なソフトウェア及び／又はファームウェアと関係させて、コーデックハードウェアユニット内において結合させること又は上述されるように１つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供することができる。
【０１９９】
様々な例が説明されている。これらの及びその他の例は、以下の請求項の適用範囲内である。
以下に本願出願当初の特許請求の範囲を付記する。
[Ｃ１]  映像データのブロックを復号するための方法であって、
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングすることと、
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングすることと、
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用することと、を備える、映像データのブロックを復号するための方法
[Ｃ２]  前記第１の技法に基づいてマッピングすることは、構造化されたマッピングを実施することを備え、前記第２の技法に基づいてマッピングすることは、メモリに格納されたマッピングテーブルを使用することを備えるＣ１に記載の方法。
[Ｃ３]  メモリに格納された前記マッピングテーブルを用いてマッピングすることは、
前記ブロックの前記第２の変換係数の位置ｋに基づいて前記メモリに格納された複数のマッピングテーブルから前記マッピングテーブルを選択することを備えるＣ２に記載の方法。
[Ｃ４]  前記複数のマッピングテーブルは、前記ブロックの潜在的な係数位置の数よりも少ないマッピングテーブルを備えるＣ３に記載の方法。
[Ｃ５]  前記第１の技法に基づいてマッピングすることは、第１の構造化されたマッピングを実施することを備え、前記第２の技法に基づいてマッピングすることは、前記第１の構造化されたマッピングと異なる第２の構造化されたマッピングを実施することを備えるＣ１に記載の方法。
[Ｃ６]  前記第１の変換係数の位置ｋを予め決定されたスレショルドと比較することに基づいて前記第１の技法又は前記第２の技法のいずれを使用するかを決定することをさらに備えるＣ１に記載の方法。
[Ｃ７]  前記第１の変換係数と関連付けられた前記値及び前記第２の変換係数と関連付けられた前記値は、ｌｅｖｅｌＩＤ値を各々備えるＣ１に記載の方法。
[Ｃ８]  前記第１の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示し、前記第２の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示すＣ７に記載の方法。
[Ｃ９]  前記第１の変換係数と関連付けられた前記第１の値及び前記第２の変換係数と関連付けられた前記第２の値は、ｒｕｎ値を各々備えるＣ１に記載の方法。
[Ｃ１０]  前記第１の係数に関する前記ｒｕｎ値は、前記ブロックの前記第１の係数と次のゼロでない係数との間のゼロ値係数の数を示し、前記第２の係数に関する前記ｒｕｎ値は、前記ブロックの前記第２の係数と次のゼロでない係数との間のゼロ値係数の数を示すＣ９に記載の方法。
[Ｃ１１]  前記第１の変換係数に関する前記第１のコード番号ｃｎを表す第１のＶＬＣコードワードを決定することと、
前記受信された第１のＶＬＣコードワードに基づいて前記第１のコード番号ｃｎを決定するためにメモリに格納された第１のＶＬＣテーブルを使用することと、
前記第２の変換係数に関する前記第２のコード番号ｃｎを表す第２のＶＬＣコードワードを決定することと、
前記決定された第２のＶＬＣコードワードに基づいて前記第２のコード番号ｃｎを決定するためにメモリに格納された第２のＶＬＣテーブルを使用することと、をさらに備えるＣ１に記載の方法。
[Ｃ１２]  映像データのブロックを復号するためのデバイスであって、
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングし、
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングし、及び
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用するように構成されたＶＬＣ復号モジュールを備える、デバイス。
[Ｃ１３]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ１２に記載のデバイス。
[Ｃ１４]  映像データのブロックを復号するためのデバイスであって、
第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングするための手段と、
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングするための手段と、
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用するための手段と、を備える、映像データのブロックを復号するためのデバイス
[Ｃ１５]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ１４に記載のデバイス。
[Ｃ１６]  第１の技法に基づいて映像データのブロックの第１の変換係数に関する第１のコード番号ｃｎから前記第１の変換係数と関連付けられた第１の少なくとも１つの値にマッピングし、
前記第１の技法と異なる第２の技法に基づいて前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎから前記第２の変換係数と関連付けられた第２の少なくとも１つの値にマッピングし、及び
前記映像データのブロックを復号するために前記第１の変換係数と関連付けられた前記第１の少なくとも１つの値及び前記第２の変換係数と関連付けられた前記第２の少なくとも１つの値を使用することをコンピューティングデバイスに行わせるように構成された命令を格納するコンピュータによって読み取り可能な記憶媒体。
[Ｃ１７]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ１６に記載のコンピュータによって読み取り可能な記憶媒体。
[Ｃ１８]  映像データのブロックを符号化するための方法であって、
第１の技法に基づいて前記第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングすることと、
前記第１の技法と異なる第２の技法に基づいて前記第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングすることと、
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用することと、
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用することと、
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力することと、を備える、映像データのブロックを符号化するための方法。
[Ｃ１９]  前記第１の技法に基づいてマッピングすることは、構造化されたマッピングを実施することを備え、前記第２の技法に基づいてマッピングすることは、メモリに格納されたマッピングテーブルを使用することを備えるＣ１８に記載の方法。
[Ｃ２０]  メモリに格納された前記マッピングテーブルを用いてマッピングすることは、
前記ブロックの前記第２の変換係数の位置ｋに基づいて前記メモリに格納された複数のマッピングテーブルから前記マッピングテーブルを選択することを備えるＣ１９に記載の方法。
[Ｃ２１]  前記複数のマッピングテーブルは、前記ブロックの潜在的な係数位置の数よりも少ないマッピングテーブルを備えるＣ２０に記載の方法。
[Ｃ２２]  前記第１の技法に基づいてマッピングすることは、第１の構造化されたマッピングを実施することを備え、前記第２の技法に基づいてマッピングすることは、前記第１の構造化されたマッピングと異なる第２の構造化されたマッピングを実施することを備えるＣ１８に記載の方法。
[Ｃ２３]  前記第１の変換係数の位置ｋを予め決定されたスレショルドと比較することに基づいて前記第１の技法又は前記第２の技法のいずれを使用するかを決定することをさらに備えるＣ１８に記載の方法。
[Ｃ２４]  前記第１の変換係数と関連付けられた前記値及び前記第２の変換係数と関連付けられた前記値は、ｌｅｖｅｌＩＤ値を各々備えるＣ１８に記載の方法。
[Ｃ２５]  前記第１の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示し、前記第２の係数に関する前記ｌｅｖｅｌＩＤ値は、前記映像データのブロックの次の係数が１又は１よりも大きい値を有するかどうかを示すＣ２４記載の方法。
[Ｃ２６]  前記第１の変換係数と関連付けられた前記第１の値及び前記第２の変換係数と関連付けられた前記第２の値は、ｒｕｎ値を各々備えるＣ１８に記載の方法。
[Ｃ２７]  前記第１の係数に関する前記ｒｕｎ値は、前記ブロックの前記第１の係数と次のゼロでない係数との間のゼロ値係数の数を示し、前記第２の係数に関する前記ｒｕｎ値は、前記ブロックの前記第２の係数と次のゼロでない係数との間のゼロ値係数の数を示すＣ２６に記載の方法。
[Ｃ２８]  映像データのブロックを符号化するためのデバイスであって、
第１の技法に基づいて前記第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングし、
前記第１の技法と異なる第２の技法に基づいて前記第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングし、
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用し、
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用し、及び
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力するように構成されたＶＬＣ符号化モジュールを備える、デバイス。
[Ｃ２９]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ２８に記載のデバイス。
[Ｃ３０]  映像データのブロックを符号化するためのデバイスであって、
第１の技法に基づいて前記第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングするための手段と、
前記第１の技法と異なる第２の技法に基づいて前記第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングするための手段と、
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用するための手段と、
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用するための手段と、
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力するための手段と、を備える、デバイス。
[Ｃ３１]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ３０に記載のデバイス。
[Ｃ３２]  第１の技法に基づいて前記第１の変換係数と関連付けられた第１の少なくとも１つの値から第１のコード番号ｃｎにマッピングし、
前記第１の技法と異なる第２の技法に基づいて前記第２の変換係数と関連付けられた第２の少なくとも１つの値から前記映像データのブロックの第２の変換係数に関する第２のコード番号ｃｎにマッピングし、
第１のＶＬＣコードワードを決定するために前記第１のコード番号ｃｎを使用し、
第２のＶＬＣコードワードを決定するために前記第２のコード番号ｃｎを使用し、及び
前記第１のＶＬＣコードワード及び前記第２のＶＬＣコードワードを出力することをコンピューティングデバイスに行わせるように構成された命令を格納するコンピュータによって読み取り可能な記憶媒体。
[Ｃ３３]  前記第１の技法は、構造化されたマッピングを実施することを備え、前記第２の技法は、メモリに格納されたマッピングテーブルを使用することを備えるＣ３２に記載のコンピュータによって読み取り可能な記憶媒体。
[Ｃ３４]  映像データのブロックを復号する方法であって、
映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定することと、
前記コード番号ｃｎの前記値に基づいて第１の技法又は第２の技法を用いて前記コード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングすることと、
前記映像データのブロックを復号するために前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要を使用することと、を備える、映像データのブロックを復号する方法。
[Ｃ３５]  前記ｌｅｖｅｌ_ＩＤ構文要素は、前記現在の変換係数の位置に関して、前記映像データのブロックの次のゼロではない変換係数が１又は１よりも大きい大きさを有するかどうかを示し、
前記ｒｕｎ構文要素は、前記映像データのブロックの前記現在の変換係数から前記次のゼロでない変換係数までの前記ブロックのゼロ値変換係数の数を示すＣ３４に記載の方法。
[Ｃ３６]  前記コード番号ｃｎは、１つ以上のＶＬＣテーブルから選択された１つのＶＬＣテーブルに関するコードワードインデックス値を備えるＣ３４に記載の方法。
[Ｃ３７]  前記第１の技法及び前記第２の技法は、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることを備えるＣ３４に記載の方法。
[Ｃ３８]  前記メモリに格納された前記複数のマッピングテーブルは、前記コード番号ｃｎと前記ｒｕｎ構文要素との間の関係を各々定義するＣ３７に記載の方法。
[Ｃ３９]  前記マッピングテーブルにアクセスすることは、前記変換係数の位置ｋに基づいて前記メモリに格納された前記複数のマッピングテーブルから前記マッピングテーブルを選択することを備えるＣ３８に記載の方法。
[Ｃ４０]  前記第１の技法は、第１の数学的関係により前記選択されたマッピングテーブルを使用することを備え、前記第２の技法は、前記第１の数学的関係と異なる第２の数学的関係により前記選択されたマッピングテーブルを使用することを備えるＣ３９に記載の方法。
[Ｃ４１]  前記第１の技法は、第１の構造化されたマッピングを実施することを備え、前記第２の技法は、前記第１の構造化されたマッピングと異なる第２の構造化されたマッピングを実施することを備えるＣ３４に記載の方法。
[Ｃ４２]  前記映像データのブロックは、複数の変換係数を備え、
前記複数の量子化された変換係数のうちの第１の数の変換係数に関して、前記第１の技法又は前記第２の技法のうちの少なくとも１つを用いてコード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素との間でマッピングすることと、
前記複数の変換係数のうちの第２の数の変換係数に関して、前記第１及び前記第２の技法と異なる第３の技法に基づいて前記コード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ値及び前記ｒｕｎ値との間でマッピングすることと、をさらに備えるＣ３４に記載の方法。
[Ｃ４３]  前記第３の技法は、構造化されたマッピングに基づいてマッピングすることを備えるＣ４２に記載の方法。
[Ｃ４４]  前記第３の技法は、前記コード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ値及び前記ｒｕｎ値との間の関係を各々定義する前記メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることに基づいてマッピングすることを備えるＣ４３に記載の方法。
[Ｃ４５]  前記メモリに格納された前記複数のマッピングテーブルは、各々が、前記映像データのブロック内の潜在的な係数位置専用であるＣ４４に記載の方法。
[Ｃ４６]  少なくとも１つの映像データのブロックを復号するように構成されたデバイスであって、
映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定し、
前記コード番号ｃｎの前記値に基づいて第１の技法又は第２の技法を用いて前記コード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングし、及び
前記映像データのブロックを復号するために前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素を使用するように構成されたＶＬＣ復号モジュールを備える、少なくとも１つの映像データのブロックを復号するように構成されたデバイス。
[Ｃ４７]  少なくとも１つの映像データのブロックを復号するように構成されたデバイスであって、
映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定するための手段と、
前記コード番号ｃｎの前記値に基づいて第１の技法又は第２の技法を用いて前記コード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングするための手段と、
前記映像データのブロックを復号するために前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素を使用するための手段と、を備える、少なくとも１つの映像データのブロックを復号するように構成されたデバイス。
[Ｃ４８]  映像データのブロックの変換係数と関連付けられたＶＬＣコードワードに基づいてコード番号ｃｎの値を決定し、
前記コード番号ｃｎの前記値に基づいて第１の技法又は第２の技法を用いて前記コード番号ｃｎからｌｅｖｅｌ_ＩＤ構文要素及びｒｕｎ構文要素にマッピングし、及び
前記映像データのブロックを復号するために前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素を使用することをコンピューティングデバイスに行わせる命令を格納するコンピュータによって読み取り可能な記憶媒体。
[Ｃ４９]  映像データのブロックを符号化する方法であって、
映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定することと、
前記ｌｅｖｅｌ_ＩＤ構文要素の前記値に基づいて第１の技法又は第２の技法を用いて前記決定されたｌｅｖｅｌ_ＩＤ値及び前記決定されたｒｕｎ値からコード番号ｃｎにマッピングすることと、
前記コード番号ｃｎに基づいてＶＬＣコードワードを決定することと、
前記決定されたＶＬＣコードワードを出力することと、を備える、映像データのブロックを符号化する方法。
[Ｃ５０]  前記ｌｅｖｅｌ_ＩＤ構文要素は、前記現在の変換係数の位置に関して、前記映像データのブロックの次のゼロではない変換係数が１又は１よりも大きい大きさを有するかどうかを示し、
前記ｒｕｎ構文要素は、前記映像データのブロックの前記現在の変換係数から前記次のゼロでない変換係数までの前記ブロックのゼロ値変換係数の数を示すＣ４９に記載の方法。
[Ｃ５１]  前記コード番号ｃｎは、１つ以上のＶＬＣテーブルから選択された１つのＶＬＣテーブルに関するコードワードインデックス値を備えるＣ４９に記載の方法。
[Ｃ５２]  前記第１の技法及び前記第２の技法は、メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることを備えるＣ４９に記載の方法。
[Ｃ５３]  前記メモリに格納された前記複数のマッピングテーブルは、前記コード番号ｃｎと前記ｒｕｎ構文要素との間の関係を各々定義するＣ５２に記載の方法。
[Ｃ５４]  前記マッピングテーブルにアクセスすることは、前記変換係数の位置ｋに基づいて前記メモリに格納された前記複数のマッピングテーブルから前記マッピングテーブルを選択することを備えるＣ５２に記載の方法。
[Ｃ５５]  前記第１の技法は、第１の数学的関係により前記選択されたマッピングテーブルを使用することを備え、前記第２の技法は、前記第１の数学的関係と異なる第２の数学的関係により前記選択されたマッピングテーブルを使用することを備えるＣ５４に記載の方法。
[Ｃ５６]  前記第１の技法は、第１の構造化されたマッピングを実施することを備え、前記第２の技法は、前記第１の構造化されたマッピングと異なる第２の構造化されたマッピングを実施することを備えるＣ４９に記載の方法。
[Ｃ５７]  前記映像データのブロックは、複数の変換係数を備え、
前記複数の量子化された変換係数のうちの第１の数の変換係数に関して、前記第１の技法又は前記第２の技法のうちの少なくとも１つを用いてコード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素との間でマッピングすることと、
前記複数の変換係数のうちの第２の数の変換係数に関して、前記第１及び前記第２の技法と異なる第３の技法に基づいて前記コード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ構文要素及び前記ｒｕｎ構文要素との間でマッピングすることと、をさらに備えるＣ４９に記載の方法。
[Ｃ５８]  前記第３の技法は、構造化されたマッピングに基づいてマッピングすることを備えるＣ５７に記載の方法。
[Ｃ５９]  前記第３の技法は、前記コード番号ｃｎと前記ｌｅｖｅｌ_ＩＤ値及び前記ｒｕｎ値との間の関係を各々定義する前記メモリに格納された複数のマッピングテーブルのうちの１つのマッピングテーブルにアクセスすることに基づいてマッピングすることを備えるＣ５７に記載の方法。
[Ｃ６０]  前記メモリに格納された前記複数のマッピングテーブルは、各々が、前記映像データのブロック内の潜在的な係数位置専用であるＣ５９に記載の方法。
[Ｃ６１]  少なくとも１つの映像データのブロックを符号化するように構成されたデバイスであって、
映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定し、
前記ｌｅｖｅｌ_ＩＤ構文要素の前記値に基づいて第１の技法又は第２の技法を用いて前記決定されたｌｅｖｅｌ_ＩＤ値及び前記決定されたｒｕｎ値からコード番号ｃｎにマッピングし、
前記コード番号ｃｎに基づいてＶＬＣコードワードを決定し、及び
前記決定されたＶＬＣコードワードを出力するように構成されたＶＬＣ符号化モジュールを備える、少なくとも１つの映像データのブロックを符号化するように構成されたデバイス。
[Ｃ６２]  少なくとも１つの映像データのブロックを符号化するように構成されたデバイスであって、
映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定するための手段と、
前記ｌｅｖｅｌ_ＩＤ構文要素の前記値に基づいて第１の技法又は第２の技法を用いて前記決定されたｌｅｖｅｌ_ＩＤ値及び前記決定されたｒｕｎ値からコード番号ｃｎにマッピングするための手段と、
前記コード番号ｃｎに基づいてＶＬＣコードワードを決定するための手段と、
前記決定されたＶＬＣコードワードを出力するための手段と、備える、少なくとも１つの映像データのブロックを符号化するように構成されたデバイス。
[Ｃ６３]  映像データのブロックの変換係数と関連付けられたｌｅｖｅｌ_ＩＤ構文要素の値及びｒｕｎ構文要素の値を決定し、
前記ｌｅｖｅｌ_ＩＤ構文要素の前記値に基づいて第１の技法又は第２の技法を用いて前記決定されたｌｅｖｅｌ_ＩＤ値及び前記決定されたｒｕｎ値からコード番号ｃｎにマッピングし、
前記コード番号ｃｎに基づいてＶＬＣコードワードを決定し、及び
前記決定されたＶＬＣコードワードを出力することをコンピューティングデバイスに行わせる命令を格納するコンピュータによって読み取り可能な記憶媒体。
【図１】
0005766817.tif 000002
【図２】
0005766817.tif 000003
【図３】
0005766817.tif 000004
【図４】
0005766817.tif 000005
【図５】
0005766817.tif 000006
【図６】
0005766817.tif 000007
【図７】
0005766817.tif 000008
【図８】
0005766817.tif 000009
【図９】
0005766817.tif 000010
【図１０】
0005766817.tif 000011
【図１１】
0005766817.tif 000012
【図１２】
0005766817.tif 000013