(57)【特許請求の範囲】
【請求項１】
画像データを符号化する画像データ符号化方法であって、
入力画像データを周波数変換して、前記変換されたデータの最大ダイナミックレンジに従って所定のデータ精度を有する変換行列を用いて、行列乗算処理により周波数変換入力画像係数の配列を生成し、
前記入力画像データのビットデプスに従って、前記変換行列のデータ精度を選択し、
前記選択は、
前記変換行列のデータ精度を前記入力画像データの前記ビットデプスよりも２小さい第１のビットオフセット数に設定することを含む
画像データ符号化方法。
【請求項２】
請求項１に記載の画像データ符号化方法であって、
前記選択は、異なるビットデプスの画像要素を有する入力画像データについて、全ての画像要素で使用するための１組の前記変換行列のデータ精度を選択することを含む
画像データ符号化方法。
【請求項３】
請求項２に記載の画像データ符号化方法であって、
前記選択は、前記１組の変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択することを含む
画像データ符号化方法。
【請求項４】
請求項１に記載の画像データ符号化方法であって、前記画像データ符号化方法は、上記周波数変換入力画像係数の配列によって決まる入力データ値のシーケンスに関して動作可能であり、さらに、
前記周波数変換入力画像係数の値を、最上位データ部分及び最下位データ部分にそれぞれ分割し、前記最上位データ部分は、前記値の複数の最上位ビットを表し、前記最下位データ部分は、前記値の残りの最下位ビットによって決まり、
所定の大きさの範囲の最上位データ部分の値の配列に関連する位置を示す１つ又は複数のデータセットを生成し、
バイナリ符号化により、出力データストリームに対して前記データセットを符号化し、
前記出力データストリームに前記最下位データ部分を定義するデータを含める
画像データ符号化方法。
【請求項５】
請求項４に記載の画像データ符号化方法であって、
前記データセットの１つは、データ値の配列に関連する非ゼロである最上位データ部分の位置を示す重要性マップである
画像データ符号化方法。
【請求項６】
請求項５に記載の画像データ符号化方法であって、
前記重要性マップは、上記データ値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位データ部分の位置を示すデータフラグを含む
画像データ符号化方法。
【請求項７】
請求項５に記載の画像データ符号化方法であって、
前記データセットは、
２以上の最上位データ部分のデータ値の配列に関連する位置を示す２以上マップと、
３以上の最上位データ部分のデータ値の配列に関連する位置を示す３以上マップと
を含む
画像データ符号化方法。
【請求項８】
請求項４に記載の画像データ符号化方法であって、
前記データセットは、
２以上の最上位データ部分の値の配列に関連する位置を示す２以上マップと、
３以上の最上位データ部分の値の配列に関連する位置を示す３以上マップと
を含む
画像データ符号化方法。
【請求項９】
請求項８に記載の画像データ符号化方法であって、
入力値の配列に関連する非ゼロ入力値の位置を示す重要性マップである他のデータセットを生成し、
各入力値から１を減算して各データ値を生成する
ことによって、各入力値からデータ値を生成する
画像データ符号化方法。
【請求項１０】
請求項９に記載の画像データ符号化方法であって、
前記重要性マップは、前記入力値の配列の所定の順番に従って、非ゼロ値を有する最後の入力値の位置を示すデータフラグを含む
画像データ符号化方法。
【請求項１１】
請求項４に記載の画像データ符号化方法であって、
前記出力データストリームに前記最下位データ部分を定義するデータを含めることは、前記最下位データ部分を表すシンボルがコード値範囲の比率に従って符号化される算術符号化により、前記最下位データ部分を符号化することを含み、
前記最下位データ部分を表す各シンボルに対する前記コード値範囲の比率はそれぞれ等しいサイズである
画像データ符号化方法。
【請求項１２】
請求項４に記載の画像データ符号化方法であって、
前記出力データストリームに前記最下位データ部分を定義するデータを含めることは、前記出力データストリーム内に前記最下位データ部分をＲＡＷデータとして直接含めることを含む
画像データ符号化方法。
【請求項１３】
請求項４に記載の画像データ符号化方法であって、
前記データ値のシーケンスは、画像データビットデプスを有する画像データを表し、
前記画像データ符号化方法は、さらに、各最上位データ部分における前記複数の最上位ビットとして使用するビットの数を前記画像データビットデプスと等しくなるように設定することを含む
画像データ符号化方法。
【請求項１４】
請求項４に記載の画像データ符号化方法であって、
前記データ値のシーケンスは、周波数変換入力画像係数のシーケンスを表す
画像データ符号化方法。
【請求項１５】
請求項１４に記載の画像データ符号化方法であって、
前記周波数変換入力画像係数は、利用可能な様々な量子化パラメータから選択された変数量子化パラメータに従って量子化された周波数変換入力画像係数であり、
前記データ符号化方法は、さらに、
前記利用可能な様々な量子化パラメータの第１の所定のサブレンジにおける量子化パラメータを用いて生成された係数について、前記最上位データ部分及び前記最下位データ部分に従って前記周波数変換入力画像係数の配列を符号化し、
前記利用可能な様々な量子化パラメータの前記第１の所定のサブレンジにない量子化パラメータを用いて生成された係数について、各最上位データ部分におけるビットの数が当該係数のビットの数と等しくなり、各最下位データ部分がビットを含まないように前記周波数変換入力画像係数の配列を符号化することを含む
画像データ符号化方法。
【請求項１６】
請求項１に記載の画像データ符号化方法であって、
前記第２のビットオフセット数は前記変換行列の行列サイズに依存する
画像データ符号化方法。
【請求項１７】
請求項１に記載の画像データ符号化方法であって、
各ソース変換行列からそれぞれ異なる必要なデータ精度で変換行列を得る
画像データ符号化方法。
【請求項１８】
請求項４に記載の画像データ符号化方法であって、
前記符号化は、
範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの１つを符号化のためのデータセットの現在の入力データ値に従って選択することと、
前記現在の入力データ値を前記選択されたサブレンジ内のコード値に割り当てることと、
前記割り当てられたコード値及び前記選択されたサブレンジのサイズに基づいて前記一連のコード値を修正することと、
前記一連のコード値を定義する前記範囲変数が、所定の最小サイズより小さいか否かを検出し、小さい場合、前記一連のコード値が少なくとも前記所定の最小サイズとなるまで前記範囲変数を連続的に増加させ、そのようなサイズ増加動作に応答して符号化データビットを出力することと、
１群の入力データ値を符号化した後、ゼロに等しい少なくとも１つの最下位ビットを含む利用可能な範囲変数値の所定のサブセットから選択された値に前記範囲変数を設定することと
を含む
画像データ符号化方法。
【請求項１９】
請求項１８に記載の画像データ符号化方法であって、
前記一連のコード値に関連する前記サブレンジの比率は、前記入力データ値に関連付けられたコンテキスト変数によって定義される
画像データ符号化方法。
【請求項２０】
請求項１９に記載の画像データ符号化方法であって、
データ値の符号化に続いて、前記現在のデータ値のために選択された前記サブレンジにおける前記一連のコード値の比率を増加させるように、次の入力データ値に関して使用するために前記コンテキスト変数を修正する
画像データ符号化方法。
【請求項２１】
請求項１８に記載の画像データ符号化方法であって、
前記一連のコード値は、０から上限値までの範囲にある値を含み、前記上限値は、前記範囲変数で定義され２５６から５１０までの範囲にある
画像データ符号化方法。
【請求項２２】
請求項２１に記載の画像データ符号化方法であって、
前記範囲変数の利用可能な値のサブセットは、２５６の値を有する
画像データ符号化方法。
【請求項２３】
請求項２２に記載の画像データ符号化方法であって、
前記利用可能な値のサブセットは、２５６と３８４の組を含み、
前記範囲変数の設定は、前記サブセットから前記範囲変数の現在の値に従って値を選択し、前記範囲変数の現在の値が２５６から３８３までの範囲にある場合、前記範囲変数を２５６に設定し、前記範囲変数の現在の値が３８４から５１０までの範囲にある場合、前記範囲変数を３８４に設定することを含む
画像データ符号化方法。
【請求項２４】
請求項２１に記載の画像データ符号化方法であって、
前記利用できる値のサブセットは、２５６，３２０，３８４、及び４４８の組を含み、
前記範囲変数の設定は、前記範囲変数の現在の値に従って前記サブセットから値を選択し、前記範囲変数の現在の値が２５６から３１９までの範囲にある場合、前記範囲変数を２５６に設定し、前記範囲変数の現在の値が３２０から３８３までの範囲にある場合、前記範囲変数を３２０に設定し、前記範囲変数の現在の値が３８４から４４７までの範囲にある場合、前記範囲変数を３８４に設定し、前記範囲変数の現在の値が４４８から５１０までの範囲にある場合、前記範囲変数を４４８に設定することを含む
画像データ符号化方法。
【請求項２５】
請求項１８に記載の画像データ符号化方法であって、さらに、
データセットにおいてバイパスデータとして表されない値を示すデータを符号化し、
現在の配列と関連付けられたバイパスデータの量を検出し、
前記バイパスデータの量が閾値を超える場合、前記選択された値に前記範囲変数を設定する処理を行い、それ以外の場合、前記選択された値に前記範囲変数を設定する処理を行わない
画像データ符号化方法。
【請求項２６】
請求項１８に記載の画像データ符号化方法であって、
前記データは、データ値の複数の配列を含む変換ユニットとして符号化され、
前記データ符号化方法はさらに、変換ユニットの符号化の終了時に、前記設定を適用することを含む
画像データ符号化方法。
【請求項２７】
画像データ復号化方法であって、
入力された周波数変換画像データを逆変換して、逆変換されたデータの最大ダイナミックレンジに従って所定のデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成し、
前記出力画像データのビットデプスに従って、前記変換行列のデータ精度を選択し、
前記選択は、
前記変換行列のデータ精度を前記出力画像データの前記ビットデプスよりも２小さい第１のビットオフセット数に設定することを含む
画像データ復号化方法。
【請求項２８】
請求項２７に記載の画像データ復号化方法であって、
前記選択は、異なるビットデプスの画像要素を有する入力画像データに対して、全ての画像要素で使用するための１組の前記変換行列のデータ精度を選択することを含む
画像データ復号化方法。
【請求項２９】
請求項２８に記載の画像データ復号化方法であって、
前記選択は、前記１組の変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択することを含む
画像データ復号化方法。
【請求項３０】
コンピュータによって実行される際に、前記コンピュータに請求項１に記載の方法を実行させるコンピュータプログラム。
【請求項３１】
請求項３０に記載のコンピュータプログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【請求項３２】
画像データを符号化する画像データ符号化装置であって、
入力画像データを周波数変換して、変換されたデータの最大ダイナミックレンジに従って所定のデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成するように構成された周波数変換部と、
前記入力画像データのビットデプスに従って、前記変換行列のデータ精度を選択するように構成された選択部と
を具備し、
前記選択部は、
前記変換行列のデータ精度を前記入力画像データの前記ビットデプスよりも２小さい第１のビットオフセット数に設定するように構成される
画像データ符号化装置。
【請求項３３】
請求項３２に記載の画像データ符号化装置であって、
前記選択部は、異なるビットデプスの画像要素を有する入力画像データについて、全ての画像要素で使用するための１組の前記変換行列のデータ精度を選択するように構成される
画像データ符号化装置。
【請求項３４】
請求項３３に記載の画像データ符号化装置であって、
前記選択部は、前記１組の前記変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択するように構成される
画像データ符号化装置。
【請求項３５】
画像データ復号化装置であって、
入力された周波数変換画像データを逆変換して、逆変換されたデータの最大ダイナミックレンジに従って所定のデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成するように構成された周波数変換部と、
前記出力画像データのビットデプスに従って、前記変換行列の前記データ精度を選択するように構成された選択部と
を具備し、
前記選択部は、
前記変換行列のデータ精度を前記出力画像データの前記ビットデプスよりも２小さい第１のビットオフセット数に設定するように構成される
画像データ復号化装置。
【請求項３６】
請求項３５に記載の画像データ復号化装置であって、
前記選択部は、異なるビットデプスの画像要素を有する出力画像データについて、全ての画像要素で使用するための１組の前記変換行列のデータ精度を選択するように構成される
画像データ復号化装置。
【請求項３７】
請求項３６に記載の画像データ復号化装置であって、
前記選択部は、前記１組の変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択する
画像データ復号化装置。
【請求項３８】
請求項３５に記載の画像データ復号化装置を具備するビデオデータキャプチャ装置、ビデオデータ送信装置、ビデオデータ表示装置、又はビデオデータ記憶装置。
【請求項３９】
請求項３２に記載の画像データ符号化装置と、請求項３５に記載の画像データ復号化装置と、前記画像データ復号化装置により復号化された画像データが表示される表示部とを具備するビデオデータキャプチャ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ符号化及び復号化に関する。
【背景技術】
【０００２】
本明細書の「背景技術」の記載は、本出願における背景を一般的に説明するためのものである。本発明者らの技術は、この背景技術の欄で説明される範囲において、本出願の出願時点で従来技術でないのであれば従来技術と見なしてはならない説明の側面と同様に、明示又は黙示を問わず、本出願に対する従来技術として認められるものではない。
【０００３】
ビデオデータを周波数領域表現に変換し、得られた周波数領域係数を量子化し、その後、当該量子化された係数にある種のエントロピー符号化を適用するビデオデータ圧縮システム及びビデオデータ解凍システムが存在する。
【０００４】
これに関して、エントロピーは１つのデータシンボル又は一連のシンボルの情報量を表していると考えられる。エントロピー符号化の目的は、（理想的には）一連のデータシンボルの情報量を表すのに必要な最小数の符号化データビットを用いた無損失な方法で、当該一連のデータシンボルを符号化することである。実際には、エントロピー符号化は、符号化されたデータのサイズが元の量子化係数のデータサイズよりも（ビット数に関して）小さくなるように実行される。より効率的なエントロピー符号化処理を行うことができれば、入力データサイズが同じ場合でも、出力データサイズを小さくすることができる。
【０００５】
ビデオデータをエントロピー符号化する技術の１つとして、いわゆるコンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ：context adaptive binary arithmetic coding）と呼ばれる技術がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、効率的なエントロピー符号化処理を行うことができるデータ符号化装置及びデータ符号化方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明によれば、請求項１に記載のデータ符号化装置、すなわち、符号化のためのデータセットの入力データ値を符号化するデータ符号化装置であって、現在の入力データ値の値に従って、範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの１つを選択し、前記現在の入力データ値を前記選択されたサブレンジ内のコード値に割り当てるように構成された選択部と、前記割り当てられたコード値及び前記選択されたサブレンジのサイズに基づいて前記一連のコード値を修正するように構成された修正部と、前記一連のコード値を定義する前記範囲変数が所定の最小サイズより小さいか否かを検出し、小さい場合、前記一連のコード値のサイズが少なくとも前記所定の最小サイズになるまで前記範囲変数を連続的に増加させるように構成され、このようなサイズ増加動作に応答して、符号化されたデータビットを出力する検出部と、１群の入力データ値を符号化した後、前記範囲変数をゼロに等しい少なくとも１つの最下位ビットを有する利用可能な範囲変数値の所定のサブセットから選択された値に設定するように構成された範囲変数設定部とを具備するデータ符号化装置が提供される。
【０００８】
本発明の各側面及び特徴は、添付の特許請求の範囲において定義される。
【０００９】
なお、上述の一般的な説明及び以降の詳細な説明は、本発明の一例であり、本発明を限定するものではないことが理解されるべきである。
【図面の簡単な説明】
【００１０】
【図１】ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ／ビデオ（Ａ／Ｖ）データ送受信システムを示す概略図である。
【図２】ビデオデータ解凍を行うビデオ表示システムを示す概略図である。
【図３】ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ／ビデオ記憶システムを示す概略図である。
【図４】ビデオデータ圧縮を行うビデオカメラを示す概略図である。
【図５】ビデオデータ圧縮・解凍装置を示す概略図である。
【図６】予測画像の生成を示す概略図である。
【図７】最大符号化ユニット（ＬＣＵ：Largest Coding Unit）を示す概略図である。
【図８】４つの符号化ユニット（ＣＵ：Coding Unit）の組を示す概略図である。
【図９】小さな符号化ユニットに細分された図８の符号化ユニットを示す概略図である。
【図１０】小さな符号化ユニットに細分された図８の符号化ユニットを示す概略図である。
【図１１】予測ユニット（ＰＵ：Prediction Unit）の配列を示す概略図である。
【図１２】変換部（ＴＵ：Transform Unit）の配列を示す概略図である。
【図１３】部分的に符号化された画像を示す概略図である。
【図１４】考えられる一連の予測方向を示す概略図である。
【図１５】一連の予測モードを示す概略図である。
【図１６】ジグザグスキャンを示す概略図である。
【図１７】ＣＡＢＡＣエントロピーエンコーダを示す概略図である。
【図１８】図１８Ａ〜図１８Ｄは、ＣＡＢＡＣ符号化及び復号化動作を示す概略図である。
【図１９】ＣＡＢＡＣエンコーダを示す概略図である。
【図２０】ＣＡＢＡＣデコーダを示す概略図である。
【図２１】符号化システムの概要を示す概略図である。
【図２２】量子化パラメータ（ＱＰ）に対するビットレートのグラフである。
【図２３】変換スキップモードを有効にした６つのテストビットデプスについてのグリーンチャネルＰＳＮＲについてのビットレートのグラフである。
【図２４】変換スキップモードを無効にした６つのテストビットデプスについてのグリーンチャネルＰＳＮＲに対するビットレートのグラフである。
【図２５】１４ビット変換行列による６つのテストビットデプスについてのグリーンチャネルＰＳＮＲに対するビットレートのグラフである。
【図２６】様々な精度ＤＣＴ行列を比較する１つのテストシーケンスについてのビットレートに対するＰＳＮＲのグラフである。
【図２７】バイパス固定ビット符号化の使用を示す１つのテストシーケンスについてのビットレートに対するＰＳＮＲのグラフである。
【図２８】符号化プロファイルの例を提供する表である。
【図２９】ＣＡＢＡＣ処理の一部のバージョンを概略的に示すフローチャートである。
【図３０】ＣＡＢＡＣ処理の一部のバージョンを概略的に示すフローチャートである。
【図３１】ＣＡＢＡＣ処理の一部のバージョンを概略的に示すフローチャートである。
【図３２】図３２Ａ〜図３２Ｆは、異なるＣＡＢＡＣ配列スキームを示す概略図である。
【図３３】ＣＡＢＡＣ処理の終了ステージのバージョンを概略的に示すフローチャートである。
【図３４】ＣＡＢＡＣ処理の終了ステージのバージョンを概略的に示すフローチャートである。
【図３５】ＣＡＢＡＣ処理の終了ステージのバージョンを概略的に示すフローチャートである。
【図３６】符号化技術を概略的に示すフローチャートである。
【図３７】適用技術を概略的に示すフローチャートである。
【図３８】変換ダイナミックレンジ及びデータ精度パラメータを選択する処理を概略的に示すフローチャートである。
【図３９】変換ダイナミックレンジ及びデータ精度パラメータを選択する処理を概略的に示すフローチャートである。
【発明を実施するための形態】
【００１１】
添付図面と共に以降の詳細な説明を参照することによって、本発明の完全な理解及びその優位性の多くが容易に理解される。
【００１２】
次に各図面を参照すると、図１〜図４には、以下に説明する各実施形態に係る圧縮装置及び／又は解凍装置を利用する装置又はシステムが概略的に示されている。
【００１３】
以下に説明する全てのデータ圧縮装置及び／又はデータ解凍装置は、ハードウェアで実現されてもよいし、例えば、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）、あるいはこれらの組み合わせ等のようなプログラム可能なハードウェアとして、汎用コンピュータ等の汎用データ処理装置上で動作するソフトウェアで実現されてもよい。ソフトウェア及び／又はファームウェアで実現される実施形態の場合、このようなソフトウェア及び／又はファームフェア、並びに、このようなソフトウェア及び／又はファームウェアが記憶又は提供される非一時的な機械可読データ記録媒体が、本発明の実施形態であると考えられることが理解されよう。
【００１４】
図１は、ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ／ビデオデータ送受信システムを示す概略図である。
【００１５】
入力オーディオ／ビデオ信号１０は、少なくともオーディオ／ビデオ信号１０のビデオ要素を圧縮するビデオデータ圧縮装置２０に供給され、例えば、ケーブル、光ファイバ、無線リンク等の送信ルート３０に沿って送信される。圧縮された信号は、解凍装置４０によって処理され、これにより、出力オーディオ／ビデオ信号５０が提供される。リターンパスでは、圧縮装置６０がオーディオ／ビデオ信号を圧縮し、当該オーディオ／ビデオ信号は送信ルート３０に沿って解凍装置７０に送信される。
【００１６】
したがって、圧縮装置２０及び解凍装置７０は、送信リンクにおける１つのノードを構成することができる。また、解凍装置４０及び圧縮装置６０は、送信リンクにおける他の１つのノードを構成することができる。もちろん、送信リンクが単方向である場合は、一方のノードのみが圧縮装置を要求し、他方のノードのみが解凍装置を要求することになる。
【００１７】
図２は、ビデオデータ解凍を行うビデオ表示システムを示す概略図である。具体的には、圧縮されたオーディオ／ビデオ信号１００は解凍装置１１０によって処理され、これにより、表示装置１２０上で表示することができる解凍信号が提供される。解凍装置１１０は、例えば、表示装置１２０と同じケーシング内に設けることにより、表示装置１２０と一体的に形成してもよい。あるいは、解凍装置１１０は、（例えば、）いわゆるセットトップボックス（ＳＴＢ：Set Top Box）として提供されてもよい。なお、「セットトップ」という表現は、当該ボックスを表示装置１２０に対して特定の方向又は位置に配置する必要があることを意味するわけではない。この用語は、単に、周辺機器として表示部に接続可能なデバイスを示すために当該技術分野において使用しているにすぎない。
【００１８】
図３は、ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ／ビデオ記憶システムを示す概略図である。入力オーディオ／ビデオ信号１３０は、圧縮信号を生成する圧縮装置１４０に供給され、例えば、磁気ディスク装置、光ディスク装置、磁気テープ装置、又は半導体メモリやその他の記憶装置等の固体記憶装置等の記憶装置１５０に記憶される。再生時においては、圧縮データが記憶装置１５０から読み出され、解凍装置１６０に渡されて解凍される。これにより、出力オーディオ／ビデオ信号１７０が提供される。
【００１９】
圧縮信号又は符号化信号、及び当該信号を記憶する記憶媒体又はデータキャリアは、本発明の実施形態であると考えられることが理解されよう。
【００２０】
図４は、ビデオデータ圧縮を行うビデオカメラを示す概略図である。図４において、ＣＣＤ（Charge Coupled Device）イメージセンサ及びそれに付随する制御・読出電子機器等の画像キャプチャ装置１８０は、圧縮装置１９０に渡されるビデオ信号を生成する。１つのマイクロフォン（あるいは複数のマイクロフォン）２００は、圧縮装置１９０に渡されるオーディオ信号を生成する。圧縮装置１９０は、記憶及び／又は送信される（図４においては、ステージ２２０として包括的に表されている）圧縮オーディオ／ビデオ信号２１０を生成する。
【００２１】
以下に説明する技術は、主に、ビデオデータ圧縮に関する。オーディオデータ圧縮を行うために、以降に説明するビデオデータ圧縮技術とともに多くの既存の技術を用いて圧縮オーディオ／ビデオ信号を生成してもよいことが理解されよう。したがって、オーディオデータ圧縮について別途説明は行わない。また、特に、放送品質ビデオデータにおいて、ビデオデータに関連するデータレートは、（圧縮及び非圧縮を問わず）一般的に、オーディオデータに関連するデータレートよりもはるかに高いことも理解されよう。したがって、非圧縮オーディオデータは、圧縮ビデオデータに追加することができ、これにより、圧縮オーディオ／ビデオ信号を形成できることが理解されよう。さらに、本発明の実施形態（図１〜図４参照）はオーディオ／ビデオデータに関するものであるが、以下に説明する技術は、単にビデオデータを扱う（すなわち、圧縮、解凍、記憶、表示、及び／又は送信する）システムに使用してもよいことが理解されよう。すなわち、これら実施形態は、必ずしもオーディオデータ処理と関連している必要はなく、ビデオデータ圧縮に適用することができる。
【００２２】
図５は、ビデオデータ圧縮・解凍装置を示す概略図である。
【００２３】
連続画像の入力ビデオ信号３００は、加算部３１０及び画像予測部３２０に供給される。画像予測部３２０については、図６を参照して後で詳述する。加算部３１０は、「＋」入力上で入力ビデオ信号３００を受信し、「−」入力上で画像予測部３２０の出力を受信する事実上の減算（負の加算）動作を実行する。これにより、入力画像から予測画像が減算される。この結果、実画像と予測画像との差を表すいわゆる残差画像信号３３０が生成される。
【００２４】
残差画像信号を生成する理由の１つは以下のとおりである。説明を行うデータ符号化技術、すなわち、残差画像信号に適用される技術は、符号化される画像において「エネルギー」が少ない場合に、より効率的に作用する傾向がある。ここで、「効率的」という用語は、生成した符号化データの量が少ないことを指す。特定の画像品質レベルにおいては、生成するデータができるだけ少ないことが望ましい（かつ、「効率的」と考えられる）。残差画像における「エネルギー」は、残差画像に含まれる情報量に関連する。仮に、予測画像と実画像とが同一だとすると、これら２つの画像の差（すなわち、残差画像）は、ゼロの情報（ゼロエネルギー）を含み、非常に容易に少量の符号化データに符号化できる。一般的に、予測処理をある程度良好に実行できる場合、残差画像データは、入力画像よりも情報が小さく（エネルギーが少ない）、容易に少量の符号化データに符号化することができると予想される。
【００２５】
残差画像データ３３０は、残差画像データの離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）表現を生成する変換部３４０に供給される。このＤＣＴ技術自体は広く知られており、ここでの詳細な説明は行わない。しかしながら、特に、ＤＣＴ動作が適用されるデータの様々なブロックの選択に関して、以降で詳細に説明する装置で用いられる技術の側面が存在する。これらについては、図７〜図１２を参照して以降で説明する。
【００２６】
なお、いくつかの実施形態では、ＤＣＴの代わりに、離散サイン変換（ＤＳＴ：discrete sine transform）を用いる。他の実施形態においては、変換を実行しなくてもよい。この変換は選択的に行うことができ、例えば、「変換スキップ」コマンド／モードの制御により、変換ステージが事実上バイパスされる。
【００２７】
変換部３４０の出力、すなわち、画像データにおける各変換ブロックに対する一連の変換係数は、量子化部３５０に供給される。量子化スケーリング要素による単純な乗算から、量子化パラメータの制御下における複雑なルックアップテーブルの応用に至るまで、様々な量子化技術がビデオデータ圧縮の分野において広く知られている。その目的として一般的なものには２つある。１つ目は、変換データが取り得る値を量子化処理により減少させることである。２つ目は、変換データの値がゼロである可能性を量子化処理により増加させることである。これらにより、少量の圧縮ビデオデータの生成において、以下に説明するエントロピー符号化処理をより効率的に行うことができる。
【００２８】
スキャン部３６０により、データスキャン処理が適用される。スキャン処理の目的は、非ゼロの量子化変換係数をできるだけひとまとめにするため、また、もちろん、これにより、ゼロ値の係数をできるだけひとまとめにするために、量子化変換データを再整理することである。これらの機能により、いわゆるランレングス符号化、又は同様の技術を効率的に適用することができる。したがって、スキャン処理は、（ａ）スキャンの一部として全ての係数が一度は選択されるように、かつ、（ｂ）スキャンにより所望の再整理を行うことができるように、「スキャン順」にしたがって、量子化変換データ、及び、特に、変換及び量子化された画像データのブロックに対応する係数のブロックから係数を選択することを含む。スキャン順を選択する技術について以下に説明する。有効な結果をもたらすスキャン順の１つの例は、いわゆるジグザグスキャン順である。
【００２９】
スキャンされた係数は、その後、エントロピーエンコーダ（ＥＥ）３７０に渡される。この場合もやはり、各種のタイプのエントロピー符号化を実行してもよい。以下に説明する２つの例は、いわゆるＣＡＢＡＣ（Context Adaptive Binary Coding）システムの変形、及び、いわゆるＣＡＶＬＣ（Context Adaptive Variable-Length Coding）システムの変形である。一般的に、ＣＡＢＡＣは効率がよいと考えられている。ある研究では、ＣＡＢＡＣにおける符号化出力データの量は、同等の画像品質に対して、ＣＡＶＬＣよりも１０〜２０％少ないことが示されている。しかしながら、ＣＡＶＬＣが示す（実行する上での）複雑性のレベルは、ＣＡＢＡＣの複雑性のレベルよりもはるかに低いと考えられている。ＣＡＢＡＣ技術については、図１７を参照して以降に説明し、ＣＡＶＬＣ技術については、図１８及び図１９を参照して以降に説明する。
【００３０】
なお、スキャン処理及びエントロピー符号化処理は、別々の処理として示されているが、実際には、組み合わせるか、又は、一緒に扱うことができる。すなわち、エントロピーエンコーダへのデータの読み出しは、スキャン順で行うことができる。これと同様の事は、以下に説明する各逆処理にも当てはまる。
【００３１】
エントロピーエンコーダ３７０の出力により、例えば、予測部３２０が予測画像を生成する方法を定義する（上述及び／又は後述の）追加データと共に、圧縮出力ビデオ信号３８０が提供される。
【００３２】
一方、予測部３２０自身の動作は解凍された圧縮出力データに依存するため、リターンパスも提供される。
【００３３】
この機能の理由は以下の通りである。解凍処理（後述）における適切なステージで、解凍された残差データが生成される。この解凍残差データは、出力画像を生成するために、予測画像に追加する必要がある（なぜなら、元の残差データは、入力画像と予測画像との差であったため）。圧縮側と解凍側との間でこの処理が同等となるように、予測部３２０によって生成される予測画像は、圧縮処理中及び解凍処理中において、同一であるべきである。もちろん、装置は、解凍時において元の入力画像にアクセスすることができない。装置がアクセスできるのは、解凍画像のみである。したがって、圧縮時において、予測部３２０は、解凍された圧縮画像に基づいて（少なくとも、インター画像符号化について）その予測を行う。
【００３４】
エントロピーエンコーダ３７０により実行されるエントロピー符号化処理は、「無損失（lossless）」であると考えられる。すなわち、エントロピーエンコーダ３７０に最初に供給されたデータと全く同じデータに置き換えることができる。したがって、リターンパスは、エントロピー符号化ステージよりも前に実装することができる。実際、スキャン部３６０によって実行されるスキャン処理も無損失であると考えられるが、本実施形態では、リターンパス３９０は、量子化部３５０の出力から、補足逆量子化部４２０の入力までとされている。
【００３５】
一般的には、エントロピーデコーダ（ＥＤ）４１０、逆スキャン部４００、逆量子化部４２０、逆変換部４３０は、それぞれ、エントロピーエンコーダ３７０、スキャン部３６０、量子化部３５０、及び変換部３４０の逆機能を提供する。ここでは、圧縮処理について説明を続け、入力圧縮ビデオ信号を解凍するための処理については、これとは別に後述する。
【００３６】
圧縮処理において、量子化された係数は、リターンパス３９０により量子化部３５０から、スキャン部３６０の逆動作を実行する逆量子化部４２０に渡される。逆量子化処理及び逆変換処理がユニット４２０、４３０により実行され、圧縮−解凍残差画像信号４４０が生成される。
【００３７】
画像信号４４０は、加算部４５０で予測部３２０の出力に追加され、再構築出力画像４６０が生成される。これにより、以下に説明するように、画像予測部３２０への１つの入力が構成される。
【００３８】
受信した圧縮ビデオ信号４７０に適用される処理について説明する。圧縮ビデオ信号４７０は、まず、エントロピーデコーダ４１０に供給され、そこから逆スキャン部４００、逆量子化部４２０、及び逆変換部４３０の順に供給される。その後、加算部４５０により画像予測部３２０の出力に追加される。単刀直入に言うと、加算部４５０の出力４６０は、出力解凍ビデオ信号４８０を形成する。実際には、信号の出力の前に、さらにフィルタリングを施してもよい。
【００３９】
図６は、予測画像の生成を示す概略図であり、特に、画像予測部３２０の動作を示している。
【００４０】
いわゆるイントラ画像予測、及びいわゆるインター画像予測又は動き補償（ＭＣ：Motion-Compensated）予測という２つの基本的な予測モードが存在する。
【００４１】
イントラ画像予測は、同一画像内から得られるデータにおける画像ブロックの内容の予測を基礎としている。これは、他のビデオ圧縮技術における、いわゆるＩフレーム符号化に対応する。画像全体がイントラ符号化されるＩフレーム符号化とは対照的に、本実施形態では、イントラ符号化及びインター符号化の選択を、ブロック毎に行うことができる。他の実施形態では、当該選択が依然として画像毎に行われる。
【００４２】
動き補償予測においては、他の隣接画像又は近接画像において、現在の画像において符号化される画像詳細のソースを定義しようとする動き情報が用いられる。したがって、理想的な例では、予測画像における画像データのブロックの内容は、隣接画像における同じ位置もしくはわずかに異なる位置にある対応ブロックを示す参照（動きベクトル）として、非常に容易に符号化することができる。
【００４３】
図６に戻る。図６には（イントラ画像予測及びインター画像予測に対応する）２つの画像予測構成が示されており、その予測結果が、加算部３１０及び４５０に供給するための予測画像のブロックを提供するように、モード信号５１０の制御下において乗算部５００によって選択される。当該選択は、どちらを選択すれば最小の「エネルギー」（上述のように、符号化を要求する情報量と考えてもよい）となるかに基づいて行われ、また、当該選択は、符号化出力データストリーム内でエンコーダに通知される。これに関して、例えば、入力画像から、２つのバージョンの予測画像の領域を試行減算し、差分画像の各ピクセル値を２乗し、乗算値を合計し、当該２つのバージョンのうち、その画像領域に関連する差分画像の平均乗算値が低いのはどちらのバージョンかを特定することによって、画像エネルギーを検出することができる。
【００４４】
イントラ予測システムにおいて、実際の予測は、信号４６０の一部として受信された画像ブロックに基づいて行われる。すなわち、予測は、解凍装置において全く同じ予測を行うことができるように、符号化−復号化画像ブロックに基づいて行われる。しかしながら、データを入力ビデオ信号３００から抽出して、イントラモード選択部５２０により、イントラ画像予測部５３０の動作を制御することもできる。
【００４５】
インター画像予測では、動き補償（ＭＣ）予測部５４０は、例えば、動き推定部５５０によって入力ビデオ信号３００から抽出された動きベクトル等の動き情報を用いる。これら動きベクトルは、インター画像予測のブロックを生成する動き補償予測部５４０によって、処理された再構築画像４６０に適用される。
【００４６】
ここで、信号４６０に適用される処理について説明する。まず、信号４６０は、フィルタ部５６０によってフィルタリングされる。この処理では、変換部３４０により実行されるブロックに基づく処理及び後続の動作に対する影響を除去するか、少なくとも低減させるために「非ブロック化（ｄｅｂｌｏｃｋｉｎｇ）」フィルタが適用される。また、再構築信号４６０及び入力ビデオ信号３００を処理することによって得られた係数を使用して、適応ループフィルタが適用される。この適応ループフィルタは、公知の技術を使用して、フィルタリング対象のデータに対して適応フィルタ係数を適用するフィルタの一種である。すなわち、フィルタ係数は、各種要素に基づいて変化し得る。どのフィルタ係数を用いるかを定義するデータは、符号化出力データストリームの一部に含められる。
【００４７】
フィルタ部５６０からのフィルタリングされた出力は、実際には、出力ビデオ信号４８０を形成する。この信号は、１つ又は複数の画像記憶部５７０に記憶される。連続画像の記憶は、動き補償予測処理、特に、動きベクトルの生成において要求される。必要メモリを確保するため、画像記憶部５７０内の記憶画像は、圧縮形式で保持され、その後、動きベクトルの生成に用いるために解凍されてもよい。この特定の目的のために、公知のいかなる圧縮／解凍システムを用いてもよい。記憶画像は、より高い解像度の記憶画像を生成する補間フィルタ５８０に渡される。この例では、補間フィルタ５８０によって出力される補間画像の解像度が、画像記憶部５７０に記憶された画像の８倍（各寸法）となるように、中間サンプル（サブサンプル）が生成される。補間画像は、動き推定部５５０及び動き補間予測部５４０への入力として渡される。
【００４８】
諸実施形態では、乗算部６００を使用して、入力ビデオ信号のデータ値に因数４を乗算し（効率的には、単にデータ値を２ビット左にシフトさせる）、除算部又は右シフト部６１０を使用して、装置の出力で、対応する除算動作（２ビット右にシフト）を適用する任意のステージがさらに提供される。したがって、左へのシフト及び右へのシフトにより、単に装置の内部動作に対して、データが変更される。この方法により、あらゆるデータ丸め誤差の影響も低減されるので、装置内における高い計算精度を提供することができる。
【００４９】
ここで、圧縮処理のために画像を分割する方法について説明する。基本的なレベルでは、圧縮される画像はサンプルブロックの配列として考えることができる。検討されているこのようなブロックの中で最大のものは、便宜的に、６４×６４サンプルの正方形配列を表すいわゆる最大符号化ユニット（ＬＣＵ：largest coding unit）７００とする（図７参照）。ここで、輝度サンプルについて説明する。４：４：４、４：２：２、４：２：０、又は４：４：４：４（ＧＢＲ＋キーデータ）等のクロミナンスモードによって、輝度ブロックに対応する、対応クロミナンスサンプルの数が異なる。
【００５０】
符号化ユニット、予測ユニット、及び変換ユニットという基本的な３つの種類のブロックについて説明する。一般的には、ＬＣＵの再帰的な分割により、例えば、ブロックサイズ及びブロック符号化パラメータ（予測又は残差符号化モード等）が、符号化される画像の特定の特徴に応じて設定されるといった方法で、入力画像が分割される。
【００５１】
ＬＣＵは、いわゆる符号化ユニット（ＣＵ）に分割されてもよい。符号化ユニットは、常に正方形であり、また、８×８サンプルから最大サイズのＬＣＵ７００までのサイズを有している。符号化ユニットは、ある種のツリー構造として配置されてもよい。その結果、例えば、第１の分割が図８に示すように行われて、３２×３２サンプルの符号化ユニット７１０が与えられる。続いて行われる分割は、１６×１６サンプルの符号化ユニット７２０（図９）及び潜在的な８×８サンプルの符号化ユニット７３０（図１０）が与えられるように、選択的な基準に基づいて行われてもよい。全体としては、この処理により、ＬＣＵと同じ大きさ、あるいは、８×８サンプルと同じ大きさを有するＣＵブロックの容量適応符号化ツリー構造を提供することができる。出力ビデオデータの符号化は、符号化ユニット構造に基づいて行われる。
【００５２】
図１１は、予測ユニット（ＰＵ）の配列を示す概略図である。予測ユニットは、画像予測処理に関連する情報を伝達するための基本的なユニットであり、換言すると、図５の装置からの出力ビデオ信号を形成するためのエントロピー符号化された残差画像データに追加される追加データである。一般的に、予測ユニットの形状は、正方形に限られない。これらは、最小（８×８）サイズより大きい限り、特に、１つの正方形符号化ユニットの半分を形成する長方形等、他の形状を採ることができる。その目的は、隣接する予測ユニットの境界が画像内の実オブジェクトの境界に（できるだけ近くに）合わせられるようにすることであり、その結果、様々な予測パラメータを異なる実オブジェクトに適用することができる。各符号化ユニットは、１つ又は複数の予測ユニットを含んでいてもよい。
【００５３】
図１２は、変換ユニット（ＴＵ）の配列を示す概略図である。変換ユニットは、変換・量子化処理における基本的なユニットである。変換ユニットは、常に正方形であり、４×４サンプルから３２×３２サンプルまでのサイズを採ることができる。各符号化ユニットは１つ又は複数の変換ユニットを含むことができる。図１２における頭字語ＳＤＩＰ−Ｐは、いわゆる短距離イントラ予測分割を示している。この配列では、１次元の変換のみが行われる。したがって、４×ＮブロックがＮ回の変換により渡され、変換における入力データは、現在のＳＤＩＰ−Ｐ内の既に復号化されている隣接ブロック及び既に符号化されている隣接線に基づく。
【００５４】
ここで、イントラ予測処理について説明する。一般的に、イントラ予測には、同一画像内における既に符号化及び復号化されたサンプルから、サンプルの現在のブロック（予測ユニット）を予測することが含まれる。図１３は、部分的に符号化された画像８００を示す概略図である。ここで、画像８００は、ＬＣＵ基準で、左上から右下へと符号化されている。画像全体の処理により部分的に符号化されたＬＣＵの一例がブロック８１０として示されている。ブロック８１０の上部及び左側の陰影領域８２０は既に符号化されている。ブロック８１０の内容のイントラ画像予測においては、いずれの陰影領域８２０も利用することができるが、その下部の陰影が付されていない領域を利用することはできない。
【００５５】
ブロック８１０は、上述のように、イントラ画像予測処理を行うためのＬＣＵを表しており、より小さな一連の予測ユニットに分割されてもよい。予測ユニット８３０の一例がＬＣＵ８１０内に示されている。
【００５６】
イントラ画像予測においては、現在のＬＣＵ８１０の上部及び／又は左側に位置するサンプルが考慮される。要求されるサンプルは、ソースサンプルから予測される。当該ソースサンプルは、ＬＣＵ８１０内の現在の予測ユニットに対して異なる位置又は方向に位置していてもよい。現在の予測ユニットに対してどの方向が適切であるかを決定するために、候補とされる各方向に基づく試行予測の結果を比較して、どの方向が入力画像の対応ブロックに最も近い結果をもたらすかを確認する。
【００５７】
画像は、「スライス」基準で符号化されてもよい。１つの例では、スライスは、水平隣接グループのＬＣＵである。しかしながら、より一般的には、残差画像全体でスライスを構成することができ、あるいは、スライスを単一のＬＣＵ又はＬＣＵの行等とすることもできる。スライスは、独立ユニットとして符号化されるので、誤差に復元性をもたらすことができる。エンコーダ及びデコーダの状態は、スライス境界で完全にリセットされる。例えば、イントラ予測はスライス境界をまたいで実行されない。このため、スライス境界は、画像境界として扱われる。
【００５８】
図１４は、考えられる（候補となる）一連の予測方向を示す概略図である。８×８、１６×１６、又は３２×３２サンプルの予測ユニットに対して、全部で３４の方向候補を利用可能である。予測ユニットサイズが、４×４サンプル又は６４×６４サンプルである特殊なケースでは、数を減らした一連の方向候補（それぞれ、１７つの方向候補及び５つの方向候補）を使用することができる。方向は、現在のブロック位置に対する水平及び垂直移動により決定されるが、予測「モード」として符号化される。当該一連の方向を図１５に示す。なお、いわゆるＤＣモードは、周囲にある上部及び左側のサンプルの単純算術平均を表す。
【００５９】
図１６は、スキャンパターンであるジグザグスキャンを示す概略図である。当該スキャンパターンは、スキャン部３６０により適用されてもよい。図１６においては、ＤＣ係数がブロックの左上の位置８４０に位置し、増加する水平及び垂直空間周波数が左上の位置８４０の下側及び右側への距離を増加させる係数により表される、８×８変換係数のブロックの例についてのパターンが示されている。
【００６０】
なお、いくつかの実施形態では、当該係数を逆順（図１６の順番表記を利用すると右下から左上）にスキャンしてもよい。また、いくつかの実施形態では、最上段からいくつか（例えば、１から３）の水平行をまたいで左から右にスキャンを実行して、その後、残りの係数のジグザグスキャンを実行してもよい。
【００６１】
図１７は、ＣＡＢＡＣエントロピーエンコーダの動作を示す概略図である。
【００６２】
諸実施形態に係る本機能のコンテキスト適応符号化において、データビットが１又は０である可能性の期待値又は予測値を表す確率モデル、すなわち、コンテキストに関してわずかなデータを符号化することがある。このため、入力データビットには、様々なコード値の２つ（又は、より一般的には、複数）の補足サブレンジのうち選択した１つのサブレンジ内のコード値が割り当てられ、サブレンジのそれぞれのサイズ（諸実施形態では、一連のコード値に対するサブレンジそれぞれの比率）は、コンテキスト（入力値に関連付けられ、そうでなければ関連のあるコンテキスト変数により順に定義される）により定義される。次のステップで、選択されたサブレンジの割り当てコード値及び現在のサイズに応答して、全範囲、すなわち、（次の入力データビット又は値に関して使用される）一連のコード値が修正される。その後、修正した範囲が所定の最小サイズ（例えば、元の範囲サイズの半分）を表す閾値よりも小さい場合、例えば修正した範囲を２倍（左にシフト）することによりサイズを増加させる。この倍増処理は、必要があれば、当該範囲が少なくとも当該所定の最小サイズになるまで連続して（２回以上）行うことができる。この時点で、出力符号化データビットが生成され、これにより、（複数の場合、それぞれの）倍増動作、すなわち、サイズ増加動作が行われたことが示される。別のステップにおいて、次の入力データビット又は値と共に使用するために、又は当該入力データビット又は値に関して（いくつかの実施形態では、符号化されるデータビット又は値の次のグループに関して）、当該コンテキストが修正される（すなわち、諸実施形態では、コンテキスト変数が修正される）。これは、現在のコンテキスト及び現在の「最も可能性の高いシンボル」の識別子（コンテキストによりどちらが現在０．５より大きな確率を有するかが示されていたとしても、１又は０）を新しいコンテキスト値のルックアップテーブルへの指数又は新しいコンテキスト変数を得られる適切な数式への入力として用いて実行してもよい。諸実施形態においては、コンテキスト変数の修正により、現在のデータ値のために選択されたサブレンジにおける一連のコード値の比率が増加する。
【００６３】
ＣＡＢＡＣエンコーダは、バイナリデータ、すなわち、０及び１の２つのシンボルのみで表されるデータに関して動作する。当該エンコーダは、既に符号化されたデータに基づいて、次のデータに対する「コンテキスト」、すなわち、確率モデルを選択するいわゆるコンテキストモデリング処理を実行する。コンテキストの選択は、既に復号化されたデータに基づいて、デコーダに渡される符号化データストリームに追加される（コンテキストを特定する）別のデータを必要とすることなく、デコーダにおいて同じ決定が行われるように決定論的な方法で実行される。
【００６４】
図１７を参照して、符号化される入力データは、既にバイナリ形式でない限りバイナリコンバータ９００に渡してもよい。データが既にバイナリ形式である場合、コンバータ９００は（図のスイッチ９１０により）バイパスされる。本実施形態では、バイナリ形式への変換は、実際には、量子化変換係数データを一連のバイナリ「マップ」として表現することにより行う。バイナリマップについては後述する。
【００６５】
バイナリデータは、その後、（別々の経路として概略的に示されているが、後述する諸実施形態では、わずかに異なるパラメータを用いるだけで同じ処理ステージで実際に実行することができる）「正規」経路及び「バイパス」経路の２つの処理経路のうちの１つにより処理してもよい。バイパス経路では、必ずしも正規経路と同じ形式のコンテキストモデリングを利用しないいわゆるバイパスコーダ９２０が用いられる。ＣＡＢＡＣ符号化のいくつかの例では、一連のデータを特に急速に処理する必要がある場合、当該バイパス経路を選択することができる。しかしながら、本実施形態では、いわゆる「バイパス」データの２つの特徴について言及する。１つ目の特徴は、バイパスデータは、５０％の確率を表す固定コンテキストモデルを利用するだけでＣＡＢＡＣエンコーダ（９５０，９６０）により処理されることである。２つ目の特徴は、バイパスデータは、一定のカテゴリーのデータに関するということである。当該データの特定例は、係数符号データである。バイパス経路を選択しない場合、図に示すスイッチ９３０，９４０により正規パスが選択される。これには、コンテキストモデラ９５０によって処理され、続いて符号化エンジン９６０によって処理されるデータが含まれる。
【００６６】
図１７に示すエントロピーエンコーダは、ブロック全体が０値のデータから構成される場合、データのブロック（すなわち、例えば、残差画像のブロックに関する係数のブロックに対応するデータ）を単一値として符号化する。このカテゴリーに含まれない各ブロック、すなわち、少なくともいくつかの非ゼロのデータを含むブロックに対しては、「重要性マップ」を作成する。重要性マップは、符号化されるデータのブロックにおける各位置に対して、ブロック内の対応する係数が非ゼロであるか否かを示す。バイナリ形式である重要性マップデータ自体は、ＣＡＢＡＣ符号化される。重要性マップを利用することは、重要性マップによってゼロであると示される大きさの係数に対してデータを符号化する必要はないため、圧縮に役立つ。また、重要性マップには、ブロックにおける最後の非ゼロ係数を示す特別なコードを含めることもできる。これにより、最後の高周波数／後置ゼロ（トレーリングゼロ）係数の全てを符号化から省略することができる。符号化ビットストリームにおいて、重要性マップの後には、重要性マップにより規定される非ゼロ係数の値を定義するデータが続く。
【００６７】
また、別のレベルのマップデータも作成され、ＣＡＢＡＣ符号化される。その一例としては、重要性マップによって「非ゼロ」であると示されたマップ位置における係数データが実際には「１」の値を有するか否かをバイナリ値（１＝ｙｅｓ，０＝ｎｏ）として定義するマップがある。他のマップは、重要性マップによって「非ゼロ」であると示されたマップ位置における係数データが実際には「２」の値を有するか否かを規定する。さらに別のマップは、重要性マップによって当該係数データが「非ゼロ」であると示されたこれらマップ位置に対し、当該データが「３以上の」値を有するか否かを示す。また、さらに別のマップは、「非ゼロ」として特定されたデータに対して、（＋に対して１、−に対して０、あるいはその逆、等の所定のバイナリ表記を用いて）データ値の符号を示す。
【００６８】
諸実施形態では、重要性マップ及びその他のマップは、例えば、スキャン部３６０により量子化変形係数から生成され、ジグザグスキャン処理（又はイントラ予測モードに係るジグザグ、水平ラスター、及び垂直ラスタースキャンから選択されたスキャン処理）を受け、その後、ＣＡＢＡＣ符号化される。
【００６９】
いくつかの実施形態では、ＨＥＶＣ  ＣＡＢＡＣエントロピーコーダは、以下の処理によりシンタックス要素を符号化する。
【００７０】
ＴＵ内において（スキャン順に）最後の重要係数の位置を符号化する。
【００７１】
各４×４係数グループ（これらグループは逆スキャン順に処理される）に対して、当該グループが非ゼロ係数を含むか否かを示す重要係数グループフラグを符号化する。このフラグは、最後の重要係数を含むグループには必要なく、（ＤＣ係数を含む）左上のグループに対して１であると仮定される。当該フラグが１である場合、そのグループに関する以下のシンタックス要素をそれに続いて直ちに符号化する。
【００７２】
重要性マップ：
グループにおける各係数に対して、当該係数が重要である（非ゼロ値を有する）か否かを示すフラグを符号化する。最後の重要位置で示される係数に対して、フラグは必要ない。
【００７３】
２以上マップ：
重要性マップの値が１である（グループの終端から逆に数えて）８つまでの係数に対して、その大きさが２以上であるか否かを示す。
【００７４】
３以上マップ：
２以上マップの値が１である（グループの終端に最も近い）１つの係数に対して、その大きさが３以上であるか否かを示す。
【００７５】
符号ビット：
全ての非ゼロ係数に対して、確率が等しいＣＡＢＡＣビンとして符号ビットを符号化する。（逆スキャン順における）最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。
【００７６】
エスケープコード：
初期のシンタックス要素により大きさが完全には表せない係数に対して、残りの係数をエスケープコードとして符号化する。
【００７７】
一般的に、ＣＡＢＡＣ符号化は、既に符号化されている他のデータに基づいて、符号化対象の次のビットに対して、コンテキスト、すなわち、確率モデルを予測することを含む。次のビットが、確率モデルにより「最も確率が高い」と特定されたビットと同じである場合、「次のビットは確率モデルと一致する」という情報は、非常に効率よく符号化することができる。それと比較して、「次のビットは確率モデルと一致しない」という情報を符号化するのは効率的ではない。したがって、エンコーダの良好な動作のために、コンテキストデータの由来は重要である。「適用可能（ａｄａｐｔｉｖｅ）」という用語は、（まだ符号化されていない）次のデータに良好に適合させようとして、そのコンテキスト、すなわち、確率モデルを適用、又は符号化の間に変更することを意味する。
【００７８】
簡単な例示として、書き言葉の英語において、「Ｕ」という文字は比較的珍しい。しかしながら、「Ｑ」という文字の直後に位置する文字では、「Ｕ」は実際、一般的に用いられる。したがって、確率モデルは「Ｕ」の確率を非常に低い値に設定する可能性があるが、現在の文字が「Ｑ」であれば、次の文字としての「Ｕ」に対する確率モデルは、非常に高い確率値に設定することができる。
【００７９】
本構成では、少なくとも重要性マップ及び非ゼロ値が１又は２であるか否かを示すマップに対してＣＡＢＡＣ符号化を行う。これら実施形態においてバイパス処理はＣＡＢＡＣ符号化と同一であるが、確率モデルは１及び０の等しい（０．５：０．５）確率分布で固定されるという事実に対しては、少なくとも符号データ及び値が２を超えるか否かを示すマップに対して用いられる。２を超える値として特定されたこれらデータ位置に対して、いわゆるエスケープデータ符号化を個別に実行して、そのデータの実際の値を符号化することができる。この符号化は、ゴロムライス符号化技術を含んでもよい。
【００８０】
ＣＡＢＡＣコンテキストモデリング及び符号化処理は、WD4:Working Draft 4 of High-Efficiency Video Coding, JCTVC-F803_d5, Draft ISO/IEC 23008-HEVC; 201x(E) 2011-10-28に詳細に記載されている。
【００８１】
ここで、ＣＡＢＡＣ処理についてより詳細に説明する。
【００８２】
少なくとも提案されているＨＥＶＣシステムで使用される限り、ＣＡＢＡＣは、符号化対象の次のビットに関する「コンテキスト」、すなわち確率モデルを得ることを含む。コンテキスト変数（ＣＶ：context variable）で定義されるコンテキストは、当該ビットを符号化する方法に影響を与える。一般的に、ＣＶによって高確率予測値と定義される値と次のビットとが同一である場合、そのデータビットを定義するのに必要な出力ビットの数を低減する観点で利点がある。
【００８３】
符号化処理には、符号化対象のビットをコード値の範囲にある位置にマッピングすることが含まれる。コード値の範囲は、図１８Ａに、下限のｍ＿Ｌｏｗから上限のｍ＿ｈｉｇｈまでの一連の隣接整数として概略的に示されている。これら上限値と下限値との差はｍ＿ｒａｎｇｅであり、ｍ＿ｒａｎｇｅ＝ｍ＿ｈｉｇｈ−ｍ＿Ｌｏｗである。以下に説明する様々な技術により、基本的なＣＡＢＡＣシステムにおいて、ｍ＿ｒａｎｇｅは１２８から２５４の間に制限される。より大きなビット数でｍ＿ｒａｎｇｅを表す別の実施形態では、ｍ＿ｒａｎｇｅは２５６から５１０の間に制限されてもよい。ｍ＿Ｌｏｗはいかなる値も取り得る。（例えば、）ゼロからスタートすることもできるが、後述の符号化処理の一部として変化し得る。
【００８４】
コード値ｍ＿ｒａｎｇｅの範囲は、コンテキスト変数に関して定義される境界１１００により２つのサブレンジに分割される。当該境界の定義は以下のとおりである。
境界＝ｍ＿Ｌｏｗ＋（ＣＶ＊ｍ＿ｒａｎｇｅ）。
【００８５】
したがって、コンテキスト変数により、全範囲は２つの補足サブレンジ、すなわち、一連のコード値のサブ位置に分割される。各サブレンジに割り当てられた一連のコード値の比率は、変数ＣＶによって決定され、１つのサブレンジは、ゼロの（次のデータビットの）値と関連付けられ、他のサブレンジは、１の（次のデータビットの）値と関連付けられる。範囲の分割は、符号化対象の次のビットに対する２つのビット値のＣＶの生成により仮定される確率を表す。したがって、ゼロの値に関連するサブレンジが全範囲の半分より小さい場合、これは、次のシンボルとしてのゼロの可能性が１の可能性よりも少ないと考えられることを示す。
【００８６】
考えられるデータビット値にサブレンジがどの方法を適用するかを定義するために、様々な確率が存在する。１つの例では、範囲の下側の領域（すなわち、ｍ＿Ｌｏｗから境界まで）が、従来、ゼロのデータビット値に関連があるとして定義される。
【００８７】
２以上のビットが単一の動作で符号化される場合、符号化対象の入力データの考えられる各値に対応するサブレンジをもたらすように３以上のサブレンジを提供することができる。
【００８８】
エンコーダ及びデコーダは、どのデータビット値の確率が少ないか（多くの場合、「最小確率シンボル（ＬＰＳ：least probable symbol）と称される）についての記録を維持する。ＣＶはＬＰＳを指す。したがって、ＣＶは常に０から０．５の値を表す。
【００８９】
ここで、次のビットは、境界により分割される時に、範囲ｍ＿ｒａｎｇｅにマッピングされる。これは、以下に詳細に説明する技術を用いてエンコーダ及びデコーダにおいて確定的に行われる。次のビットが０である場合、ｍ＿Ｌｏｗから境界までのサブレンジ内の位置を表す特定のコード値がそのビットに割り当てられる。次のビットが１である場合、境界１１００からｍ＿ｈｉｇｈまでのサブレンジにおける特定のコード値がそのビットに割り当てられる。これは、諸実施形態において現在の入力データビットの値に係る一連のコード値の複数のサブレンジの１つを選択する技術の一例、及び諸実施形態において現在の入力データ値を選択されたサブレンジの範囲内のコード値に割り当てる技術の一例を表している。
【００９０】
下限ｍ＿Ｌｏｗ及び範囲ｍ＿ｒａｎｇｅは、その後、割り当てられたコード値（例えば、割り当てられたコード値がどのサブレンジに入るか）及び選択されたサブレンジのサイズに基づいて、一連のコード値を修正するように再定義される。符号化されたばかりのビットがゼロである場合、ｍ＿Ｌｏｗは変化しないが、ｍ＿ｒａｎｇｅはｍ＿ｒａｎｇｅ＊ＣＶと等しくなるように再定義される。符号化されたばかりのビットが１である場合、ｍ＿Ｌｏｗは、境界位置に移動させられ（ｍ＿Ｌｏｗ＋（ＣＶ＊ｍ＿ｒａｎｇｅ））、ｍ＿ｒａｎｇｅは、境界とｍ＿ｈｉｇｈとの差分（すなわち、（１−ＣＶ）＊ｍ＿ｒａｎｇｅ）として再定義される。
【００９１】
このような修正を行った後、一連のコード値が所定の最小サイズより小さい（例えば、ｍ＿ｒａｎｇｅが少なくとも１２８）か否かを検出する。
【００９２】
これら変形例は、図１８Ｂ及び図１８Ｃに概略的に示されている。
【００９３】
図１８Ｂにおいて、データビットは１であり、そのため、ｍ＿Ｌｏｗは以前の境界の位置に移動している。これにより、次のビット符号化配列で使用するための修正した一連のコード値が提供される。なお、いくつかの実施形態では、ＣＶの値は、符号化されたばかりのビットの値に関して次のビット符号化のために少なくとも部分的に変えられる。これが、本技術が「適用可能」コンテキストを指す理由である。ＣＶの修正値を利用して、新しい境界１１００'を生成する。
【００９４】
図１８Ｃにおいて、０の値が符号化される。したがって、ｍ＿Ｌｏｗは変化しないが、ｍ＿ｈｉｇｈは、以前の境界の位置に移動させられる。値ｍ＿ｒａｎｇｅは、ｍ＿ｈｉｇｈ−ｍ＿Ｌｏｗの新しい値として再定義又は修正される。
【００９５】
これにより、本例において、ｍ＿ｒａｎｇｅが（１２８等の）最小可能値を下回ることになる。この結果が検出されたとき、値ｍ＿ｒａｎｇｅは再正規化又はサイズ増加される。これは、本実施形態において、１２８から２５６の必要な範囲にｍ＿ｒａｎｇｅを修復するのに必要な限り何度でも倍増、すなわち、左に１ビットシフトされたｍ＿ｒａｎｇｅで表される。この一例を、図１８Ｄに示す。図１８Ｄは、必要な制限に準拠するように倍増した図１８Ｃの範囲を表す。新しい境界１１００''は、ＣＶの次の値及び修正したｍ＿ｒａｎｇｅに由来する。なお、ｍ＿ｒａｎｇｅが再正規化される場合、ｍ＿Ｌｏｗも同様に再正規化又はサイズ増加される。これは、ｍ＿Ｌｏｗとｍ＿ｒａｎｇｅとの比率を同一に維持するために行われる。
【００９６】
このようにして範囲を倍増する必要があるときはいつでも、出力符号化データビットを各再正規化ステージに対して１つずつ生成する。
【００９７】
このようにして、間隔ｍ＿ｒａｎｇｅ及び下限ｍ＿Ｌｏｗは（デコーダで再生できる）ＣＶ値及び符号化ビットストリームの適応に基づいて、連続して修正され、再正規化される。一連のビットが符号化された後、得られた間隔及び再正規化ステージの数により、符号化ビットストリームは一意に定義される。このような最後の間隔を識別しているデコーダは、原理上、符号化データを再構築することができる。しかしながら、基本的な計算により、実際には、デコーダに間隔を定義する必要はないが、その間隔内にある１つの位置を定義する必要があることが実証されている。これが、エンコーダで維持されデータ符号化の終了時にデコーダに渡される、割り当てコード値の目的である。
【００９８】
簡単な例を示すために、１００の間隔に分割された確率空間について考える。この場合、ｍ＿Ｌｏｗは確率空間の下部を表し、０及びｍ＿Ｒａｎｇｅは、そのサイズ（１００）を表す。便宜的に、コンテキスト変数が（バイパス経路に関して）０．５に設定されると仮定すると、確率空間は５０％の固定確率でバイナリビットを符号化するために用いられることになる。しかしながら、コンテキスト変数の適用可能値を用いる場合、エンコーダ及びデコーダにおいて同じ適応処理が行われるように、同じ原理が適用される。
【００９９】
第１のビットに対して、各シンボル（０又は１）は５０のシンボル範囲を有する。入力符号０は（例えば、）０から４９（４９を含む）までの値を割り当てられ、入力シンボル１は（例えば、）５０から９９（９９を含む）までの値を割り当てられる。１が符号化対象の第１のビットである場合、ストリームの最後の値は５０から９９までの範囲に入る必要がある。したがって、ｍ＿Ｌｏｗは５０となり、ｍ＿Ｒａｎｇｅも５０となる。
【０１００】
第２のビットを符号化するために、当該範囲は２５のシンボル範囲にさらに分割される。０の入力シンボルは５０から７４の値を取り、１の入力シンボルは７５から９９の値を取る。以上のように、第２のビットとしてどのシンボルが符号化されても、最後の値は５０から９９までの範囲の値であり、第１のビットが保存される。しかしながら、第２のビットは同一の数字に符号化されている。同様に、第２のビットが第１のビットと異なる確率モデルを用いた場合でも、分割される範囲は５０から９９であるので、第１のビットの符号化に影響を及ぼさない。
【０１０１】
この処理は、各入力ビットに対して、エンコーダ側で続行され、必要なときはいつでも、例えば、ｍ＿Ｒａｎｇｅが５０を下回ったことに応答して、ｍ＿Ｒａｎｇｅ及びｍ＿Ｌｏｗを再正規化（例えば、倍増）する。符号化処理の終了時（ストリームが終了するとき）までに、最後の値がストリームに書き込まれる。
【０１０２】
デコーダ側では、最後の値がストリームから読み出される（したがって、ｍ＿Ｖａｌｕｅと呼ぶ）。例えば、その値は６８である。デコーダは、最初の確率空間に分割された同一のシンボル範囲を適用し、どのシンボル範囲にあるか確認するため、その値を比較する。６８は５０から９９までの範囲にあるため、１を第１のビットに対するシンボルとして復号化する。エンコーダと同一の方法により分割された第２の範囲を適用し、６８は５０から７４までの範囲にあるので、例えば、０を第２のビットとして復号化する。
【０１０３】
実際の処理においては、エンコーダがｍ＿Ｖａｌｕｅから各復号化シンボルの範囲の最小値を減算する（この場合、ｍ＿Ｖａｌｕｅから５０が減算され、差が１８となる）ことによりｍ＿Ｌｏｗを維持するので、デコーダはｍ＿Ｌｏｗを維持しなくてもよい。このシンボル範囲は、その後、常に０から（ｍ＿ｒａｎｇｅ−１）範囲の細分区分となる（したがって、５０から７４までの範囲は０から２４となる）。
【０１０４】
このように、たとえ２ビットのみが符号化されたとしても、エンコーダは５０から７４までの範囲のあらゆる最終値を取ることができ、当該２ビットは同じ２ビットの「１０」（１の後に０）に復号化されることが重要である。別のビットを符号化する場合にのみ、より高い精度が求められ、実際には、ＨＥＶＣエンコーダは常に当該範囲の最小値の５０を取る。本願において説明される実施形態は、残りのビットの値が何であるかに関わらず、適切に設定されたときに最終値が正確に復号化されることを保証する一定のビットを発見し、他の情報を伝達するために当該残りのビットを解放することにより未使用の範囲を利用しようとする。例えば、上述のサンプル符号化において、第１の数字が６（又は５）に設定された場合、第２の数字に関わらず、最終値は常に５０から７４までの範囲にある。したがって、第２の数字を使用して、他の情報を伝達することができる。
【０１０５】
以上のように、終わりのないビットのストリームを、同じ確率範囲（所与の無限精度比）を用いて繰り返し分割することにより符号化することができる。しかしながら、実際には無限精度は不可能であり、非整数は避けられる。このため、再正規化を行う。５０から７４までの範囲で第３のビットを復号化する場合、当該シンボル範囲は、通常、それぞれ１２．５間隔を有する必要がある。しかしながら、その代わりに、ｍ＿Ｒａｎｇｅ及びｍ＿Ｌｏｗを倍増（そうでなければ、公約数で乗算）して、それぞれ、５０及び１００とすることができ、当該シンボル範囲は、１００から１４９までの範囲の細分区分、すなわち、それぞれ２５間隔となる。この動作は、最初の確率空間のサイズを遡及的に１００から２００に倍増することと等しい。デコーダは同一のｍ＿Ｒａｎｇｅを維持するので、エンコーダと同時に再正規化を適用することができる。
【０１０６】
コンテキスト変数ＣＶは、ＣＶ＝６３における（１％等の）下限値からＣＶ＝０における５０％の確率まで、様々な確率を連続的に示す（一実施形態では）６４通りの考えられる状態を有するものとして定義される。
【０１０７】
適用可能システムにおいて、ＣＶは、符号化対象のデータのブロックサイズによって異なる様々な周知の因子にしたがって、１ビットから次のビットに変更又は修正される。いくつかの例では、近隣及び以前の画像ブロックの状態を考慮してもよい。したがって、本明細書に記載の技術は、現在のデータ値に対して選択されたサブレンジにおける一連のコード値の比率を増加させるように、次の入力データ値に関して使用するためのコンテキスト変数を修正する例を示す。
【０１０８】
サブレンジを選択し、コード値に現在のビットを割り当て、一連のコード値を修正し、当該一連のコード値が最小サイズより小さいか否かを検出し、コンテキスト変数を修正する機能は、全て、一緒に動作するコンテキストモデラ９５０及び符号化エンジン９６０により実行されてもよい。したがって、それらは図１７において説明を容易にするために別々の要素として記載されているが、協働してコンテキストモデリング及び符号化機能を提供してもよい。しかしながら、さらに明確にするため、これらの動作及び機能をより詳細に示す図１９を参照する。
【０１０９】
割り当てコード値は、考えられるＣＶの値並びにｍ＿ｒａｎｇｅのビット６及びビット７の考えられる値それぞれに対して（なお、ｍ＿ｒａｎｇｅのビット８は、ｍ＿ｒａｎｇｅのサイズが限られるため、常に１である）、新しく符号化されたビットが関連するサブレンジにおけるコード値を割り当てられるべき位置又は位置のグループを定義するテーブルから生成される。
【０１１０】
図１９は、上述の技術を用いたＣＡＢＡＣエンコーダを示す概略図である。
【０１１１】
ＣＶは、ＣＶ抽出部１１２０により、（第１のＣＶの場合）開始又は（それ以後のＣＶの場合）修正される。コード生成部１１３０は、ＣＶにしたがって現在のｍ＿ｒａｎｇｅを分割し、サブレンジを選択し、例えば、上述のテーブルを用いて、適切なサブレンジの割り当てデータコードを生成する。範囲リセット部１１４０は、上述のように一連のコード値を修正するように、選択されたサブレンジのｍ＿ｒａｎｇｅにｍ＿ｒａｎｇｅをリセットする。正規化部１１５０は、得られたｍ＿ｒａｎｇｅの値が最小許容値を下回っているか否かを検出し、必要に応じて、ｍ＿ｒａｎｇｅを１回又は２回以上、再正規化する。このような再正規化動作に対して、各出力符号化データビットが出力される。上述のように、処理の終了時に、割り当てコード値も出力される。
【０１１２】
図２０に概略的に示すデコーダでは、ＣＶは、エンコーダにおけるＣＶ抽出部１１２０と同様に動作するＣＶ抽出部１２２０により、（第１のＣＶの場合）開始又は（それ以後のＣＶの場合）修正される。コード適用部１２３０は、ＣＶにしたがって、現在のｍ＿ｒａｎｇｅを分割し、当該データコードがどのサブレンジにあるかを検出する。範囲リセット部１２４０は、割り当てコード値及び選択されたサブレンジのサイズに基づいて一連のコード値を修正するように、選択されたサブレンジのｍ＿ｒａｎｇｅにｍ＿ｒａｎｇｅをリセットする。必要に応じて、正規化部１２５０は、受信したデータビットに応答して、ｍ＿ｒａｎｇｅを正規化する。
【０１１３】
諸実施形態では、ＣＡＢＡＣストリームを終了させる技術が提供される。これら実施形態については、コード値の範囲が（上述の１２８ではなく）最大値である５１２を有し、そのため、当該範囲の上半分、すなわち、２５６から５１０に制限される１つ例のシステムに関連して説明する。
【０１１４】
当該技術により引き起こされる損失は、平均１．５ビットである（すなわち、従来のストリーム終了技術が引き起こす損失よりもはるかに少ない）。平均損失が１ビットである第２の変形例に係る方法も提案される。これら技術の適用には、ＩＰＣＭ（非周波数分離）データの送信前のＣＡＢＡＣストリームの終了、及びスライス毎の行のためのストリームの終了が含まれることが示唆されている。当該技術は、ストリームの終了の際にＣＡＢＡＣ変数を正確な範囲のあらゆる値に設定できるという認識に基づいている。したがって、ＣＡＢＡＣ変数は、多くの後置（最下位ビット）ゼロを有する値に設定される。その結果、当該値がデータストリームに流れていく際、ゼロは無視できるので効率的である。
【０１１５】
現在の技術では、ＣＡＢＡＣストリームを終了させると、８ビットがデータ・ストリームに流れる（すなわち、当該８ビットが損失又は無駄になる）。この技術は、各ＬＣＵ又は画像スライスの後（すなわち、特定の各画像サブ領域に関する１群のデータ値を符号化した後）で、イントラフレームを終了し、係数バイパスデータ（符号ビット／エスケープコード）がＲＡＷ形式でビットストリームに配置される例として示される。
【０１１６】
ＣＡＢＡＣストリームを終了させる処理は、各スライスの終端においてＩＰＣＭデータに先立ち適用される。諸実施形態では、（便宜的に）この処理は、当該ストリームが終了される確率が平均０．５４％で固定されると仮定する（データ値（１又は０）を符号化する場合、現在のｍ＿ｒａｎｇｅは、１又は０の確率をそれぞれ示す２つのシンボル範囲に分割される。特別な「終端ストリームフラグ」値について、１に対するシンボル範囲は常に２である。したがって、１であるデータ値の確率は、現在のｍ＿ｒａｎｇｅの値に依存する。いくつかの実施形態では、上述のように、ｍ＿ｒａｎｇｅは２５６から５１０までの範囲で変化してもよいので、終了確率は、２／５１０＝０．３９２２％及び２／２５６＝０．７８１３％の範囲で変化する）。
【０１１７】
エンコーダに対して、この処理は、以下のように行われる。
【０１１８】
ストリームが終了されない場合、ＣＡＢＡＣ範囲ｍ＿ｒａｎｇｅは２ずつ減らされ、ＣＡＢＡＣエンジンは、必要に応じて、１つの場所で再正規化され（すなわち、ｍ＿Ｌｏｗ及びｍ＿ｒａｎｇｅが再正規化される）、現在のＣＡＢＡＣストリームにおける処理が続行される。
【０１１９】
ストリームが終了される場合、ＣＡＢＡＣ「ｍ＿Ｌｏｗ」は、「範囲−２」ずつ増やされ、当該範囲は２に設定され、ＣＡＢＡＣエンジンは、７カ所で再正規化され、それに続いて、バイナリ「１」を出力する。この処理は、８カ所の再正規化と等しく、再正規化された値は奇数にさせられる。
【０１２０】
上記処理が理想的でない、すなわち、ストリームの確率が変化し、又はより高い確率で固定され、又は確実（１の確率）である場合もある。
【０１２１】
諸実施形態によれば、たった２回の再正規化で、ＣＡＢＡＣストリームを速やかに終了できる方法が提供される。この方法における損失は（平均で）１．５ビットであり、デコーダ及びエンコーダの複雑性への影響は無視できるほど小さい。ＣＡＢＡＣデコーダの複雑性は増加するものの、オーバーヘッドをたった１ビットに減らすことができる変形例の方法も示されている。当該２つの方法は、終了の変数確率がある場合、一般的な適用可能コンテキスト変数とともに用いることができる。また、当該２つの方法は、（非適用可能コンテキスト変数と類似した）固定確率メカニズムとともに用いることもできる。
【０１２２】
なお、上述のように、ｍ＿Ｌｏｗ及びｍ＿Ｒａｎｇｅは一緒に再正規化される。
【０１２３】
１  アルゴリズム
１．１  方法
エンコーダのステップは以下のとおりである。
【０１２４】
ｍ＿Ｌｏｗ＝（ｍ＿Ｌｏｗ＋１２８）＆〜１２７｛又はｍ＿Ｌｏｗ＝（ｍ＿Ｌｏｗ＋１２７）＆〜１２７｝
ｍ＿Ｌｏｗの再正規化を２ステージ強制的に行い、ｔｅｓｔ＿ｗｒｉｔｅ＿ｏｕｔ（）を呼び出す［その値をストリームに書き込む］。
次のＣＡＢＡＣストリームの符号化に先立ち、ｍ＿Ｒａｎｇｅを５１０，ｍ＿Ｌｏｗを０に設定する。
【０１２５】
注記：＆はＡＮＤ操作であり、〜はバイナリ反転を示す（したがって、〜１２７は１０進法の１２７に対応するバイナリ値をバイナリ反転させたものである。その結果、（最下位ビット又は１に等しいＬＳＢを複数有する）１０進法における１２７等の数字のバイナリ反転を伴うＡＮＤ操作は、得られる値のＬＳＢの数をゼロに設定することと等しくなる）。ｔｅｓｔ＿ｗｒｉｔｅ＿ｏｕｔ（）関数は、ｍ＿Ｌｏｗの先端（ＭＳＢ終端）の任意のビットが出力ストリームに送信されるのに適しているか否かを確認し、適している場合、それらを書き込む。上述の擬似コードに関連して、「強制再正規化」により作成された新しいビットが、この操作により書き込まれる。
【０１２６】
デコーダのステップは以下のとおりである。
【０１２７】
入力ストリームを７ビット戻す（すなわち、読み込み位置を７ビット移動させる）。
次のＣＡＢＡＣストリームの復号化に先立ち、ｍ＿Ｒａｎｇｅを０に設定し、ビットストリームからｍ＿Ｖａｌｕｅを読み込む。
【０１２８】
この方法は、デコーダ及びエンコーダに対する処理の影響が少ない。
【０１２９】
なお、ｍ＿Ｌｏｗに関して、繰り返しｍ＿Ｌｏｗに追加することで、エンコーダはストリームを生成する。デコーダは、エンコーダの最終結果で開始し、それから繰り返し減算することで、当該ストリームを読み出す。デコーダは、ｍ＿Ｌｏｗではなくストリーム「ｍ＿ｕｉＶａｌｕｅ」（又は、本明細書の注記にあるｍ＿Ｖａｌｕｅ）から読み出したビットを呼び出す。当該ビットは、ビットストリームから読み込むべきものである。これは、諸実施形態において、デコーダがｍ＿ｕｉＶａｌｕｅと同様にｍ＿Ｌｏｗを保持する必要があり、エンコーダの動作を把握している場合に関連する。この場合、エンコーダのｍ＿Ｌｏｗと全く同じ方法で、ｍ＿Ｌｏｗはデコーダで生成される。
【０１３０】
変形例に係る方法
この方法では、デコーダがｍ＿Ｌｏｗを保持する必要があるので、現在のデコーダの複雑性が増加する。ｍ＿Ｌｏｗの維持が他の提案で必要になる場合、複雑性の増加量は最小になる。
【０１３１】
エンコーダのステップは以下のとおりである。
【０１３２】
ｔｅｓｔ２５６を（ｍ＿Ｌｏｗ＋２５５）＆〜２５５にする。
（ｔｅｓｔ２５６＋２５６＜ｍ＿Ｌｏｗ＋ｍ＿Ｒａｎｇｅ）の場合、
ｍ＿Ｌｏｗ＝ｍ＿ｔｅｓｔ２５６
ｍ＿Ｌｏｗの再正規化を１ステージ強制的に行い、ｔｅｓｔ＿ｗｒｉｔｅ＿ｏｕｔ（）を呼び出す。
それ以外の場合（上述のように）
ｍ＿Ｌｏｗ＝（ｍ＿Ｌｏｗ＋１２８）＆〜１２７｛又はｍ＿Ｌｏｗ＝（ｍ＿Ｌｏｗ＋１２７）＆〜１２７｝
ｍ＿Ｌｏｗの再正規化を２ステージ強制的に行い、ｔｅｓｔ＿ｗｒｉｔｅ＿ｏｕｔ（）を呼び出す。
次のＣＡＢＡＣストリームの符号化に先立ち、ｍ＿Ｒａｎｇｅを５１０，ｍ＿Ｌｏｗを０に設定する。
【０１３３】
デコーダのステップは以下のとおりである。
【０１３４】
ｔｅｓｔ２５６を（ｍ＿Ｌｏｗ＋２５５）＆〜２５５にする。
（ｔｅｓｔ２５６＋２５６＜ｍ＿Ｌｏｗ＋ｍ＿Ｒａｎｇｅ）の場合、
ストリームを８ビット戻す
それ以外の場合（上述のように）
ストリームを７ビット戻す
次のＣＡＢＡＣストリームの復号化に先立ち、ｍ＿Ｒａｎｇｅを０，ｍ＿Ｌｏｗを０に設定し、ビットストリームからｍ＿Ｖａｌｕｅを読み出す。
【０１３５】
理論
ＣＡＢＡＣエンコーダについて、ｍ＿Ｌｏｗに連結されるストリームに書き込まれ（又は記憶され）るデータは、最終出力が取ることができる最小値を示すｎビット値のｌｏｗである。最大値ｈｉｇｈは、ｌｏｗ及びｍ＿Ｒａｎｇｅの合計であり、エンコーダによって２５６（２５６を含む）から５１１（５１１を除く）までの範囲に維持される変数である。ストリームの終端において、ｌｏｗ（ｌｏｗを含む）からｈｉｇｈ（ｈｉｇｈを除く）のあらゆる値を、復号化に影響することなく、最終出力値として選択することができる。復号化がｎ個のＬＳＢの値に依存することなく行われる場合、当該ｎ個のＬＳＢは、ビットストリームの次のセクションから得られるデータで置き換えることができる。
【０１３６】
ｖをｌｏｗからｈｉｇｈの値とすると、ｎ個のＬＳＢは０であり、最後のｎ個のＬＳＢが１の場合、得られる値Ｖは、依然としてｈｉｇｈより小さい。「ｈｉｇｈ−ｌｏｗ」は少なくとも２５６なので、値ｖは、常に、０である少なくとも７個のＬＳＢを有するｌｏｗからｈｉｇｈまでの範囲にある。すなわち、値ｖは、１２８で割り切れるｌｏｗからｈｉｇｈまでの範囲にある第１の値である。
【０１３７】
これを実現する最も単純な方法は、一般的な２の累乗配列ルーチンである。例えば、ｖ＝（ｌｏｗ＋１２７）＆〜１２７である。しかしながら、範囲は少なくとも２５６なので、ｖ＝（ｌｏｗ＋１２８）＆〜１２７でも十分である（その結果、エンコーダは、わずかに小さくなる）。
【０１３８】
ビットストリームの現在の部分について、エンコーダは、下位７ビットを除いて、値「ｖ」を出力する。これは、ｍ＿Ｌｏｗを２箇所で再正規化することで実現される。ビットストリームの終端において、デコーダは、ビットストリームの次のセクションから７ビット読み込み、したがって、当該ビットストリームを７ビット「戻す」必要がある。
【０１３９】
ストリームを完全に復号化するために、下位８ビットが必要ない場合もある。最も簡単な実例は、「ｍ＿Ｌｏｗ＝０」であり、これらは代替アルゴリズムにより調査される。当該代替アルゴリズムにおいて、０のＬＳＢを８個有するｌｏｗからｈｉｇｈまでの範囲にある値ｖが計算され、対応する値Ｖが存在するか否かを確認するためにｔｅｓｔが適用される。この決定処理には、ｌｏｗ及びｈｉｇｈにおけるテストが必要である。また、デコーダも同じ決定をしなければならないので、当該デコーダはｍ＿Ｌｏｗを追跡する必要がある。
【０１４０】
エンコーダアルゴリズムの両方のバージョンにおいて、７ビットパスに対して異なるビットストリームをもたらす選択があるが、当該選択は同じデコーダで復号化することができる。
【０１４１】
上述の図１９を参照して、ユニット１１２０及び１１３０は、一連のコード値の複数の補足サブレンジの１つを選択する諸実施形態のセレクタ及び現在の入力値をコード値に割り当てるデータ割り当て部を指す。ユニット１１４０は、一実施形態のデータ修正部を表す。ユニット１１５０は、一連のコード値が最小サイズより小さいか否かを検出する一実施形態の検出部を表し、これにより当該検出部の他の機能を実行する。また、ユニット１１５０は、上述及び下記のデータ終了機能を実行し、特に、いつストリームを終了するかに関する決定を行うことで、一実施形態のデータ終了部を表す。
【０１４２】
上述の図２０を参照して、ユニット１２２０，１２３０，１２４０、及び１２５０は、これらのユニットに関して上述の機能を実行するよう動作可能である点で、まとめて諸実施形態のポインタコントローラ及び設定部を表す。
【０１４３】
適用例
上記構成について考えられる適用例は、以下のものを含む。
【０１４４】
１．特に、確率が０．５４％よりも著しく高いことがある「スライス毎の行（ｒｏｗ−ｐｅｒ−ｓｌｉｃｅ）」スタイルの構成におけるスライスに対する最後の符号化ＬＣＵの終了。
この構成において、諸実施形態では、ビデオデータを表す連続入力データ値を符号化するデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード値の複数の補足サブレンジの１つを選択し（当該一連のコード値に関連するサブレンジの比率は、当該入力データ値と関連するコンテキスト変数によって定義される）、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコード値及び選択されたサブレンジのサイズに基づいて一連のコード値を修正し、一連のコード値が所定の最小サイズより小さいか否かを検出し、小さい場合、少なくとも当該所定の最小サイズとなるまで一連のコード値のサイズを連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力し、現在のデータ値について選択されたサブレンジ内の一連のコード値の比率を増加させるように次の入力データビット又は値に関して使用するためにコンテキスト変数を修正し、他のビデオデータを参照することなく符号化されたビデオデータのスライス内にあるビデオデータの一連のブロックに対応する１群の入力データ値を符号化した後、一連のコード値の終端を定義する値をゼロに等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、一連のコード値の終端を定義する値を出力データに書き込むことで、出力データを終了することを含む。
【０１４５】
２．考えられる最後のスライスのＬＣＵが確実になった後の、スライスに対する考えられる最後のＬＣＵの終了。
この構成において、諸実施形態では、ビデオデータを表す連続入力データ値を符号化するデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード値の複数の補足サブレンジの１つを選択し（一連のコード値に関連するサブレンジの比率は、入力データ値に関連するコンテキスト変数で定義される）、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てコード値及び選択されたサブレンジのサイズに基づいて一連のコード値を修正し、一連のコード値が所定の最小サイズより小さいか否かを検出し、小さい場合、少なくとも当該所定の最小サイズまで一連のコード値のサイズを連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力し、現在のデータ値について選択されたサブレンジにおける一連のコード値の比率を増加するように、次の入力データビット又は値に関して使用できるようにコンテキスト変数を修正し、他のビデオデータを参照することなく符号化されるビデオデータのスライス全体を表す１群の入力データ値を符号化した後、一連のコード値の終端を定義する値をゼロに等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、一連のコード値の終端を定義する値を出力データに書き込むことにより、出力データを終了させることを含む。
【０１４６】
３．可能であればコンテキスト変数とともに行うＩＰＣＭデータに先立つ終了。
この構成において、諸実施形態では、周波数分離ビデオデータを表す連続入力データ値を符号化するデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード値の複数の補足サブレンジの１つを選択し（一連のコード値に関連するサブレンジの比率は、当該入力データ値と関連するコンテキスト変数によって定義される）、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコード値及び選択されたサブレンジのサイズに基づいて、一連のコード値を修正し、一連のコード値が所定の最小サイズより小さいか否かを検出し、小さい場合、当該一連のコード値のサイズが少なくとも当該所定の最小サイズとなるまで連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力し、現在のデータ値について選択されたサブレンジ内の一連のコード値の比率を増加させるように、次の入力データビット又は値に関して使用するために、コンテキスト変数を修正し、符号化対象の次のグループのデータ値が非周波数分離ビデオデータを表すように１群の入力データ値を符号化した後、一連のコード値の終端を定義する値をゼロに等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、一連のコード値の終端を定義する値を出力データに書き込むことによって、出力データを終了することを含む。
【０１４７】
４．「未処理ビット」メカニズムが長くなるのを防ぐためのストリームの終了。
この構成において、諸実施形態では、連続入力データ値を符号化するデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード値の複数の補足サブレンジから１つを選択し（一連のコード値に関連するサブレンジの比率は、当該入力データ値と関連するコンテキスト変数によって定義される）、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコード値及び選択されたサブレンジのサイズに基づいて、一連のコード値を修正し、一連のコード値が所定の最小サイズより小さいか否かを検出し、小さい場合、一連のコード値のサイズを少なくとも当該所定の最小サイズとなるまで連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力し、現在のデータ値について選択されたサブレンジにおける一連のコード値の比率を増加させるように、次の入力データビット又は値に関して使用するためにコンテキスト変数を修正し、異なる符号化技術により符号化される一連のデータ値が所定のサイズを超えているか否かを検出し、超えている場合、一連のコード値の終端を定義する値をゼロに等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、一連のコード値の終端を定義する値を出力データに書き込むことにより、出力データを終了することを含む。
【０１４８】
本明細書の以降の説明は、上述したエンコーダ及びデコーダ等の動作を、よりビデオ解像度が高く、それに応じて（負のＱＰを含む）ＱＰが低い動作に発展させることに関する。コーデックが高いビット深さを正確にサポートする場合、動作ＱＰは、場合により、低い必要がある。ＨＥＶＣにより定義されるエンコーダ及びデコーダ等に存在する内部の精度制限により引き起こされる可能性がある、考えられる誤差源について説明する。これら精度に変化を与えることで、誤差を緩和することができ、これにより、ＨＥＶＣの動作範囲が拡張される。また、エントロピー符号化における変化も提示される。
【０１４９】
本願の出願時点において、ＨＥＶＣバージョン１は、８ビット及び１０ビットのコーデックを表す。バージョン２は、１２ビット及び１４ビットの動作を含むことになっている。入力データビット深さを１４まで可能にするために試験ソフトウェア又は実証ソフトウェアが書き込まれているが、１４ビットを符号化するコーデックの能力は、コーデックが８ビット又は１０ビット解像度データを処理する方法に対応するとは限らない。いくつかの例では、内部処理により、解像度の事実上の損失を招くノイズが発生することがある。例えば、１４ビットの入力データに対するピーク信号対雑音比（ＰＳＮＲ：peak signal to noise ratio）が非常に低ければ、最下位２ビットはノイズに対して事実上低減され、コーデックは１２ビットの解像度でのみ事実上動作する。したがって、出力データの事実上の（有効な）解像度を著しく減少させることに関して多くのノイズ、誤差、又は他の副作用を発生させることなしに、高解像度入力データ（例えば、１２ビット又は１４ビット解像度入力データ）を使用できるようにする内部動作機能をシステムに持たせようとすることは適切である。
【０１５０】
「ビットデプス」という用語及び変数ｂｉｔＤｅｐｔｈは、ここでは、入力データ及び／又はコーデック内で実行されるデータ処理の（文字に係る）解像度を示すために使用される（後者は、ＨＥＶＣソフトウェア実証モデル用語を用いた「内部ビットデプス」としても知られている）。例えば、１４ビットのデータ処理に対して、ｂｉｔＤｅｐｔｈは１４である。
【０１５１】
８ビット及び１０ビットのコーデックに関連して、正の範囲（０より大きい）の量子化パラメータ（ＱＰ）について説明する。しかしながら、入力データの解像度における（８を超える）各追加ビットに対して、最小可能ＱＰ（ｍｉｎＱＰ）は、０よりも６小さくてもよい。すなわち、ｍｉｎＱＰ＝−６＊（ｂｉｔＤｅｐｔｈ−８）である。
【０１５２】
変数「ＰＳＮＲ」又はピークＳＮＲは、平均２乗誤差（ＭＳＥ）及びビットデプスの関数として以下のように定義される。
ＰＳＮＲ＝１０＊ｌｏｇ１０（（（２ｂｉｔＤｅｐｔｈ）−１）２／ＭＳＥ）
【０１５３】
以下に説明する図２３から分かるように、コーデック実行例の内部処理ビットデプスがどのような値を取っても、一般的な傾向として、ＰＳＮＲ曲線は９０ｄＢ付近でピークを迎える。（ＰＳＮＲ曲線のピークに対応するＱＰよりも）負のＱＰに対しては、実際、ＰＳＮＲパフォーマンスが低下する。
【０１５４】
ＰＳＮＲの式を用いて、以下のような、所与のビットデプス及びＭＳＥに対するＰＳＮＲの表が得られる。
【０１５５】
【表１】
0006636909.tif 000002
【０１５６】
１４ビットのコーデックが、７２．２ｄＢのＰＳＮＲを実現できるのみである場合、各出力値は、対応する元の値の±４の範囲でのみ正確となる。したがって、２つの最下位ビットは、事実上のノイズであり、コーデックは、出力に２つの追加ランダムビットを追加した１２ビットのコーデックと同等のものとなる（なお、この分析は、平均に基づくものであり、実際には、画像のいくつかの部分において、平均よりも良好又は低質のものが得られることがある）。
【０１５７】
この議論を拡張して、純粋に数字上の方法でＰＳＮＲを比較すると、最善のシステムは、実際には、無損失な符号化を実行でき、無限のＰＳＮＲ（ＭＳＥ＝０）を実現する８ビットシステムであると考えられる。しかしながら、これは最初にｎビット（ｎはもともと、８ビットより大きい）から８ビットにビデオを丸める損失、あるいは切り取る損失を考慮していない。この手法は、以下の例によって一般化できる。
【０１５８】
無損失な（ｎ−１）ビットシステムをｎビットのデータを符号化するのに利用できる場合、出力において、観察されるｎビットのＭＳＥは（０＋１２）／２＝０．５となる。
【０１５９】
無損失な（ｎ−２）ビットシステムをｎビットのデータを符号化するのに利用できる場合、出力において、観察されるｎビットのＭＳＥは（０＋１２＋２２＋１２）／４＝１．５となる。
【０１６０】
無損失な（ｎ−３）ビットシステムをｎビットのデータを符号化するのに利用できる場合、出力において、観察されるｎビットのＭＳＥは（０＋１２＋２２＋３２＋４２＋３２＋２２＋１２）／８＝５．５となる。
【０１６１】
無損失な（ｎ−４）ビットシステムをｎビットのデータを符号化するのに利用できる場合、出力において、観察されるｎビットのＭＳＥは（０＋１２＋２２＋３２＋４２＋５２＋６２＋７２＋８２＋７２＋６２＋５２＋４２＋３２＋２２＋１２）／１６＝２１．５となる。
【０１６２】
したがって、前述の例に戻ると、１４ビットシステムが２１．５又はそれより少ない（７１．０ｄＢに等しい）ＭＳＥを実現しない場合、及び無損失な１０ビットシステムのビットレートが類似している場合、数字的に言って、１０ビットのみが事実上符号化される。
【０１６３】
「ｍ」のＭＳＥを有する損失の多い、低いビットデプスの（ｎ−ｒ）ビットシステムを考慮する。このシステムを用いてより高いビットデプスのｎビットのデータを符号化する場合、（２ｒ）２ｍのＭＳＥが与えられる。
【０１６４】
例えば、損失の多い（ｎ−１）ビットシステムに対して、ｎビットシステムにおけるＭＳＥは４ｍ。損失の多い（ｎ−２）ビットシステムに対して、ｎビットシステムにおけるＭＳＥは１６ｍ。損失の多い（ｎ−３）ビットシステムに対して、ｎビットシステムにおけるＭＳＥは６４ｍ。損失の多い（ｎ−４）ビットシステムに対して、ｎビットシステムにおけるＭＳＥは２５６ｍ。
【０１６５】
したがって、損失の多い低いビットデプスのシステムがより高い（ｎ−ビット）ビットデプスのデータを符号化する場合について、一般的にｎビットドメインにおいて観察されるＭＳＥに影響を与えるのは、主にその損失である。したがって、単純なＰＳＮＲ図を用いて、確実に品質を比較することができる。
【０１６６】
（本願の出願時における）ＨＥＶＣエンコーダの実行は、（図２３に示すように）９０ｄＢでピークを迎える。これは、１１ビットデータの符号化には適切であると考えられる。この動作点において、これ以上の改善が得られるか否かについての問題については、以下に説明する。
【０１６７】
最初に、誤差の原因について説明する。
【０１６８】
コアＨＥＶＣシステム（バージョン１）は、８ビット及び１０ビット動作に対して設計されている。ビット数が増えるにつれ、システムの部分の内部精度が、誤差、ノイズ、又は全解像度の事実上の損失につながる副作用の誤差の原因に関連性を有することがある。
【０１６９】
図２１は、ＨＥＶＣエンコーダ等の上述のタイプのエンコーダを通過するデータのフローを簡単に示す概略図である。図２１に示す形式で、この処理を要約する目的は、システムにおける動作解像度の制限の可能性を示すことである。なお、このため、全てのエンコーダの機能性を図２１に示しているわけではない。なお、図２１もデータセットの入力データ値（ビデオデータ値でもよい）を符号化する装置の例を示す。さらに、（上述のように）図２１に示したもの等の転送符号化経路で使用される技術をエンコーダの補足逆復号化経路及びデコーダの転送復号化パスに用いてもよい。
【０１７０】
一定のビットデプスの入力データ１３００は、イントラ予測又はインター予測を実行して実際の入力画像から予測画像を減算する予測ステージ１３１０に供給され、これにより、一定のビットデプスの残差データ１３２０が生成される。したがって、ステージ１３００は、一般的に、図５に示すユニット３２０及び３１０に対応する。
【０１７１】
残差データ１３２０は、２Ｄ変換式における左右の行列乗算に対応する（ステージ１及びステージ２として表される）変換処理の複数のステージを含み、一定の解像度を有する１つ又は複数の組の変換行列１３４０にしたがって動作する変換ステージ１３３０により周波数変換される（変換は行列乗算処理により実行される）。ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥと称される変換処理の最大ダイナミックレンジ１３５０は、本処理において実行される計算に適用される。変換ステージの出力は、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥに係る一連の変換係数１３６０である。変換ステージ１３３０は、一般的に、図５に示す変換部３４０に対応する。
【０１７２】
係数１３６０は、その後、一般的に図５に示す量子化部３５０に対応する量子化ステージ１３７０に渡される。当該量子化ステージは、（諸実施形態では、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥと同じ）最大ダイナミックレンジＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥのクリッピングを含む量子化係数・スケーリングリスト１３８０の制御のもと、乗算シフトメカニズムを用いてもよい。当該量子化ステージの出力は、（図示しないフルエンコーダにおいて）図５に示すスキャンユニット３６０及びエントロピーエンコーダ３７０によって表されたもの等のエントロピー符号化ステージに渡されるＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥに係る一連の量子化係数１３９０である。
【０１７３】
図２１に関して記載された表記を用いて、様々な予測及びＲＱＴ（残差四分木）によって引き起こされるノイズ形成及びレート歪み最適化による量子化（ＲＤＯＱ：rate distortion optimized quantisation）決定処理を（便宜的に）無視して、ＨＥＶＣにおける計算ノイズの主な原因について以下に説明する。
【０１７４】
・変換行列係数値
理想的には、変換係数に適用される逆変換により、元の入力値を再生する。しかしながら、これは計算上の整数の機能により制限される。ＨＥＶＣにおいて、変換行列係数は６つの分数ビットを有する（すなわち、これらは既に６の左シフトを有する）。
【０１７５】
・各変換ステージ後のＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥへのシフト結果
先の変換により、ｂｉｔＤｅｐｔｈ＋ｌｏｇ２（ｓｉｚｅ）ビットのサイズの値が得られる。第１ステージの変換後、ビットにおける係数の幅は、（追加ビットにより精度をより高く維持できるものの）少なくともｂｉｔＤｅｐｔｈ＋ｌｏｇ２（ｓｉｚｅ）である。しかしながら、ＨＥＶＣにおいて、これら中間物は、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥを超えないように先の（エンコーダのみ）変換においてシフトされる。第２ステージにおいても同様である。逆変換において、各ステージの出力における値は、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥにクリップされる。
【０１７６】
ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥがｂｉｔＤｅｐｔｈ＋ｌｏｇ２（ｓｉｚｅ）より小さい場合、先の変換により得られる値は、実際には、量子化ステージにおいて（右ではなく）左にシフトされ、１５ビット（ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ）にクリップされる。実際には、ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥがｂｉｔＤｅｐｔｈ＋ｌｏｇ２（ｓｉｚｅ）＋１より小さい場合、クリッピングはＱＰが（４−（６＊（ｂｉｔＤｅｐｔｈ−８）））より小さい場合に実行される。
【０１７７】
ＨＥＶＣにおいて、３２ｘ３２ブロックの係数はＱＰ＜−８のためにクリップされることもあるが、１５のＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ（及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿Ｒａｎｇｅ）が１０ビットまでの動作に用いられる。また、内部精度のための上部空間が欠乏していると、低いＱＰに対して誤差が発生することもある。
【０１７８】
・量子化の際に追加されるノイズ
エンコーダ及びデコーダの量子化部及び逆量子化部は、量子化の際にノイズを追加させるものの、追加ノイズはスケーリングリストが適用される際に気付かずに追加されることがあり、また、アレイ「ｑｕａｎｔＳｃａｌｅｓ」及び「ｉｎｖＱｕａｎｔＳｃａｌｅｓ」において定義される量子化係数は必ずしも完全な逆数ではないので、気付かずに追加されることもある。
【０１７９】
変換行列の精度及びＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥの効果について以下に説明する。
【０１８０】
経験的データは、いわゆるＳＶＴテストセット（４Ｋビデオからスケールダウンした１６ビットで１９２０ｘ１０８０  ５０ｐ）からの５つのビデオシーケンスの符号化の（いわゆるイントラ符号化プロファイルにしたがった）分析により得られた。これらのシーケンスの中で、最初の１５０フレームのみが試験において使用された。Ｔｒａｆｆｉｃ＿ＲＧＢ（１２ビットにおいて２５６０ｘ１６００  ３０ｐ）と称される６番目の配列は、本願の出願時点でＨＥＶＣに適用可能な、一般的な範囲拡張（Ｒａｎｇｅ  ｅｘｔｅｎｓｉｏｎｓ）試験の条件によって定義される。
【０１８１】
経験的テストにおいて、ファイル（入力データ）ビットデプスが試験中の内部ビットデプス（コーデックの入力ビットデプス）よりも小さかった場合、サンプルにパディングをした（ＬＳＢを０に設定した）。ファイルビットデプスが内部ビットデプスより大きい場合、サンプルを縮小し、丸めた。
【０１８２】
以下の説明では、ｂｉｔＤｅｐｔｈを用いて入力データのビットデプスではなく内部ビットデプスについて記載している。１６までの内部ビットデプス（ｂｉｔＤｅｐｔｈ）を有するシステムについて考える。
【０１８３】
図２２は、図２１に示すエンコーダシステムの経験的性能を内部ビットデプスの数で概略的に示す量子化パラメータ（ＱＰ）に対するビットレートのグラフである。図２３は、ＱＰに対する（１つのチャンネルに対する経験的データを取得するのはより簡単であること、及びグリーンは出力ビデオの視聴者の認識に最も貢献するチャンネルであることに基づく）グリーンチャンネルについてのＰＳＮＲのグラフである。図２２のグラフは、１６ビット（ＱＰは−４８〜−２６）、１４ビット（ＱＰは−２４〜−１４）、１２ビット（ＱＰは−１２〜−２）、１０ビット（ＱＰは０〜１０）及び８ビット（ＱＰは１２〜２２）の処理に対するデータの合成により形成される。垂直ライン１４００は、ビットデプスが変化する点を概略的に示す。図２２における複数の曲線は、異なるテストシーケンスで得られる結果に対応する。
【０１８４】
図２２は、ビットレートが一般的にＱＰに対して単調に変化することを示している。
【０１８５】
図２３を参照して、ｂｉｔＤｅｐｔｈ＝８及びｂｉｔＤｅｐｔｈ＝１０に対するＰＳＮＲは、４以下（各曲線における１番右から３つのデータ点）のＱＰで明確に増加する。ＱＰ４において、８ビットに対する量子化約数は１（１０ビットに対してＱＰは−８）であり、考えられる唯一の誤差源としてＤＣＴ及びＩＤＣＴ並びに量子化及び逆量子化係数の間の不整合をもたらす。システムが無損失処理に向かうと、ＭＳＥはゼロに接近し、ＳＮＲは急上昇する。図２４は、一連の異なる内部ビットデプス（８，１０，１２，１４，１６）における１つのテストシーケンスについてのビットレートに対するＰＳＮＲのグラフである。５つの曲線は、そのほとんどの範囲において相互にほぼ正確に重なっており、そのため、容易に区別することができない。
【０１８６】
同様の動作点における１０ビットシステムは、主に２つの最下位ビットにおいて誤差を有し、８ビットの精度のみを考慮すると無損失な処理に近づいていることを示す。しかしながら、本明細書において示すように、１０ビットビデオを８ビットビデオに変換する動作についても考慮しなければならない。これは、低い精度を考慮すると隠れている（すなわち、経験テストにおける結果として明確に示されていないが、依然としてより高い全ＳＮＲをもたらす）１．５のＭＳＥを追加することになる。
【０１８７】
ピークＳＮＲに対する内部精度に制限されないシステムにおいて、無損失処理に向かう増加は、ＱＰが（４−（６＊（ｂｉｔＤｅｐｔｈ−８）））未満に減少する際の各ｂｉｔＤｅｐｔｈについて確認することができる。これは、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ＝２１，ＥＮＴＲＯＩＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ＝２１ビット及び１４ビット変換行列，ＲＤＯＱ無効、及び変換スキップ無効のビットデプス（８，１０，１２，１４，１６）の範囲のビットレートに対するグリーンチャネルＰＳＮＲのグラフである図２５に示されている。５つのカーブは、（８ビット曲線の）部分１４２０、（１０ビット曲線の）部分１４３０、（１２ビット曲線の）部分１４４０、（１４ビット曲線の）部分１４５０、及び（１６ビット曲線の）部分１４６０を除いて相互に重なっている。同じ数のビットについて、図２４に示すものよりも著しく高いＳＮＲが得られることが分かる。
【０１８８】
経験的結果により、本発明の諸実施形態では、変換行列の精度は、少なくともｂｉｔＤｅｐｔｈ−２であることが示された。図２６は、様々な精度ＤＣＴ行列と比較する、ｂｉｔＤｅｐｔｈ＝１０及びＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ＝１７の１つのテストシーケンスのグリーンチャネルのビットレートに対するＰＳＮＲのグラフである。
【０１８９】
諸実施形態では、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは、ｂｉｔＤｅｐｔｈよりも少なくとも（ｌｏｇ２（ｓｉｚｅ）の最小値である）５大きくすべきである。符号化効率をさらに改善するための追加精度について示した。
【０１９０】
諸実施形態では、ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは、少なくともｂｉｔＤｅｐｔｈ（ｌｏｇ２（ｓｉｚｅ）の最大値に対して（４−（６＊（ｂｉｔＤｅｐｔｈ−８）））＋５より小さいＱＰによって適用された「量子化因子」について１）よりも６大きくすべきである。最小ＱＰ値に対するクリッピングと関係ない他の実施形態では、ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは、少なくともｂｉｔＤｅｐｔｈよりも５（ｌｏｇ２（ｓｉｚｅ）の最小値）大きくすべきである。
【０１９１】
１６ビットシステムに対して、変換行列精度は、１４に設定すべきであり、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは２１に設定すべきであり、ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは２２に設定すべきである。より高い内部精度を有することが有害とは考えにくいので、これらパラメータについても異なるｂｉｔＤｅｐｔｈｓで試験し、同じ数のビットについては著しく高いＳＮＲが得られ、精度を上昇させたシステムは１６までのｂｉｔＤｅｐｔｈｓに適したＰＳＮＲ／ＭＳＥ動作点を有することを実証する結果を得た。
【０１９２】
範囲拡張（Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎｓ）が全てのビットデプスに対する単一の新しいプロファイルの生成を意図している場合、上述のシステムは適切である。しかしながら、異なるプロファイルを異なる最大ｂｉｔＤｅｐｔｈｓについて記載しようとする場合、異なるパラメータ値を有することは、最も高いプロファイルを必要としないシステムにおけるハードウェアの複雑性を低減するのに有用である可能性がある。いくつかの実施形態では、異なるプロファイルが変換行列精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥについて異なる値を定義することがある。
【０１９３】
他の実施形態では、プロファイルは、いくつか又は全ての変換行列精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥの値を（選択基準となる実行コストを有する）エンコーダ、又はｂｉｔＤｅｐｔｈ等のサイド情報の機能によって可能値のリストから選択することを可能にする。しかしながら、変換行列精度が変化し、そのため別の実施形態においてたった１つの変換行列精度がプロファイルに対して定義される場合、これは、複数組の変換行列を必要とすることがある。その変換行列精度は、プロファイルが設計される最大ビットデプスに対する最大ビットデプスの推奨値に対応する。考えられる一連のプロファイルを図２８を参照して以下に示す。
【０１９４】
変換行列精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ，ＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ、及びｂｉｔＤｅｐｔｈの値の例を以下の表に示す。
【０１９５】
【表２】
0006636909.tif 000003
【０１９６】
このテーブルにおいて、「＊」が付された値は、現在のＨＥＶＣの記述に一致して、１５の最小値にクリップされる。「†」及び「‡」が付された値は、現在のＨＥＶＣの記述について規定されたものより大きく、それぞれ１５及び６である。
【０１９７】
異なるプロファイルを用いようとする場合、本発明の諸実施形態では、これら仕様を最小値として用いることができる（なお、ＨＥＶＣバージョン１の１０ビットシステムは、これら標的に全く適合しない）。より高いビットレート（低いＱＰ）についてＰＳＮＲを劣化させるものの、これら表示された最小値よりも低い値を用いることもできる。
【０１９８】
したがって、上記の表により、精度及び／又は１つ又は複数の符号化（及び補足復号化）ステージのダイナミックレンジがビデオデータのビットデプスに従って設定される構成の例が提供される。
【０１９９】
しかしながら、いくつかの実施形態では、ルマ及びクロマのデータは、異なるビットデプスを有することがある。
【０２００】
したがって、このような場合、精度及び又はダイナミックレンジの値を（ルマデ−タとクロマデータの間で）異なるように設定することができ、１組の値をルマ等に適用し、異なる組の値をクロマデータに適用することができるものの、本発明の実施形態では、この問題を違う方法で処理する。
【０２０１】
いくつかの実施形態では、ビットデプスに従って値を変える能力を維持しながら、ルマデータ及びクロマデータに対して同一の精度及び／又はダイナミックレンジの値を使用するのが実行効率の点で有利であると認識される。ルマデータ及びクロマデータの間で同一のパラメータを使用することで、２つの異なるプログラム可能な又は制御可能な経路を（ソフトウェア又はハードウェアの実行において）配置する必要なしに、ルマデータ及びクロマデータに対して単一の符号化経路を構築することができる。
【０２０２】
どの組のパラメータを使用するかの選択は、所定のルールに従って実行してもよい。例えば、ルマデータに関連するパラメータを選択することができる。あるいは、動作の柔軟性が改善すれば、ビットデプスが最も大きいビデオ要素に係るパラメータ（例えば、ルマ、クロマ）を選択することができる。したがって、例えば、上述の表を用いて、ルマビットデプスが（例えば）１６でクロマビットデプスが（例えば）１４であった場合、１６のビットデプスに関連するパラメータの列がルマ処理及びクロマ処理に用いられるであろう。
【０２０３】
ビットデプス及び／又は上述のパラメータ及び／又は上述の表等のパラメータの表の指数に対するビットデプスの関係は、１つ又は複数のビデオデータの「パラメータセット」により定義することができる。最高レベルはビデオパラメータセット（ＶＰＳ）であり、（精度に対応して、減少するレベルで）、シーケンスが１つ又は複数のピクチャを含むシーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、ピクチャが１つ又は複数のスライスを含むスライスパラメータセットが続く。この関係、ビットデプス、精度、及び／又はダイナミックレンジの値は、これらのどれにより定義してもよい。しかしながら、いくつかの実施形態では、ＳＰＳにより定義される。
【０２０４】
したがって、上述の実施形態では、１つ又は複数の符号化ステージに対する精度及び／又はダイナミックレンジの値は、ビデオ要素（例えば、ルマデータとクロマデータ）でビットデプスが異なる場合、所定のルールを用いてビデオ要素の全てと共に使用するために単一の組の精度及び／又はダイナミックレンジの値を選択できるように、ビデオビットデプスに従って変化するように構成される。これと同様の事が、（ビデオデータではなく）画像データに関して、適用される。同様の原理は、エンコーダ及びデコーダに適用される。したがって、これら構成により、異なるビットデプスの画像要素を含む画像データの入力又は出力に対して、全ての画像要素のと共に用いるために変換行列の最大ダイナミックレンジ及び／又はデータ精度の単一の組が選択される構成の例が提供される。
【０２０５】
いくつかの実施形態では、変換行列の最大ダイナミックレンジ及び／又はデータ精度の単一の組は、最大ビットデプスを有する画像要素の１つに関連する値として選択される。
【０２０６】
なお、いくつかの実施形態では、デコーダ側及びエンコーダの逆経路において、同一の変換行列の最大ダイナミックレンジ及び／又は同一のデータ精度をエンコーダ側で用いられるものとして用いてもよい。他の実施形態では、逆（デコーダ側）変換行列のデータ精度が６等の所定の値に設定される。
【０２０７】
これら構成の例について、図３８及び図３９を参照して以下に説明する。
【０２０８】
ＣＡＢＡＣシステムの説明に戻る。上述のように、ＣＡＢＡＣシステムは、現在の入力データ値に従って範囲変数により定義される一連のコード値の複数の補足サブレンジのうちの１つを選択し、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコード値及び選択されたサブレンジのサイズに基づいて一連のコード値を修正し、一連のコード値を定義する範囲変数が所定の最小サイズより小さいか否かを検出し、小さい場合、一連のコード値のサイズが少なくとも所定の最小サイズになるまで範囲変数を連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力することに関わる符号化技術の例を提供する。諸実施形態では、一連のコード値い関連するサブレンジの比率は、入力データ値に関連付けられたコンテキスト変数により定義される。諸実施形態におけるＣＡＢＡＣ構成は、入力データ値を符号化した後、現在の入力データ値に対して選択されたサブレンジ内の一連のコード値の比率を増加させるように次の入力データ値に関して使用するためにコンテキスト変数を修正し、
ことを含む。
【０２０９】
上述のＣＡＢＡＣシステムの説明に戻り、いくつかの実施形態では、ＨＥＶＣ  ＣＡＢＡＣエントロピーコーダは、以下の処理によりシンタックス要素を符号化する。
【０２１０】
ＴＵ内の（スキャン順において）最後の重要係数の位置が符号化される。
【０２１１】
各４ｘ４係数グループ（グループは逆スキャン順で処理される）に対して、当該グループが非ゼロ係数を含むか否かを示す重要係数グループフラグが符号化される。このフラグは、最後の重要な係数を含むグループについては必要とされず、（ＤＣ係数を含む）左上のグループについては１であると仮定される。フラグが１である場合、当該グループに関する重要性マップ、２以上マップ、３以上マップ、シンボルビット、及びエスケープコードのシンタックス要素は、それに続いて即座に符号化される。
【０２１２】
この構成は、図２９に概略的に示されている。ステップ１５００では、現在のグループが最後の重要係数を含むか否かをＣＡＢＡＣエンコーダが確認する。現在のグループが最後の重要係数を含む場合、処理は終了する。現在のグループが最後の重要係数を含まない場合、処理はステップ１５１０に進み、エンコーダは、現在のグループがＤＣ係数を含む左上のグループか否かを確認する。現在のグループがＤＣ係数を含む左上のグループである場合、処理はステップ１５３０に進む。現在のグループがＤＣ係数を含む左上のグループでない場合、ステップ１５２０において、エンコーダは、現在のグループが非ゼロ係数を含むか否かを検出する。現在のグループが非ゼロ係数を含まない場合、処理は終了する。現在のグループが非ゼロ係数を含む場合、ステップ１５３０で、重要性マップが生成される。ステップ１５４０において、重要性マップの値が１である、当該グループの終端から逆に数えて８までの係数について、その大きさが１より大きいか否かを示す２以上マップが生成される。ステップ１５５０において３以上マップが生成される。（グループの終端に最も近い）２以上マップの値が１である１つの係数に対して、これは、大きさが２より大きいか否かを示す。ステップ１５６０において、符号ビットが生成され、ステップ１５７０において、初期のシンタックス要素により大きさが完全には記載されなかったあらゆる係数（すなわち、ステップ１５３０−１５６０のいずれかにおいて生成されたデータ）に対するエスケープコードが生成される。
【０２１３】
ＭＳＥが１より小さい動作点における１６ビット、１４ビット、又は１２ビットシステム（ＱＰは、典型的には、−３４，−２２、及び−１０）に対して、当該システムでは、典型的には、ほとんど圧縮が行われない（１６ビットに対して、実際には、ソースデータを膨張させる）。係数は、一般的に大きな数字であり、したがって、ほぼエスケープ符号化される。このため、各係数に対してビットストリーム内に固定数のＬＳＢ，ＢＦを配置することでより高いビットデプスを可能にするために、エントロピーコーダに対して２つの変更が提案されている。基本的に、当該スキームにより、８ビット及び１０ビット動作のために開発された現在のＨＥＶＣ  ＣＡＢＡＣエントロピーコーダは、１６ビット等のより高いビットシステムを追加精度に対する代替パスを用いて１０ビット等の低いビットシステムに事実上変換することにより、そのために設計された元のｂｉｔＤｅｐｔｈで動作することができる。低いビットシステムの値は容易に予測でき、より複雑な符号化スキームを用いた符号化に適しているので、採用する分割方法の有効性が改善される。一方、より高いビットシステムに必要とされる追加精度は予測が難しく、したがって、圧縮が難しく、複雑な符号化スキームは有効でない。例えば、１６ビットシステムは、ＢＦが８となるような構成を有することができる。
【０２１４】
固定ビットスキームを用いることは、ビットストリーム内においてエンコーダにより示される。固定ビットの数の判定方法は、スキームを用いる場合、デコーダに対するエンコーダにより示される。これらの方法は、その数を直接符号化すること、又は、ビットストリームにおいて既に符号化された（ＱＰ、ビットデプス、及び／又はプロファイルを含む）ビットストリームに存在するパラメータから値ＢＦを得る方法を示すこと、又はそれらの組み合わせを示す。エンコーダは、同じ方法を用いて、又はシーケンス、画像、スライス、又は先行のＣＵについて得られるＢＦ値に対するΔ値を示すことにより、異なる画像、スライス、及びＣｕに対して異なるＢＦ値を示す選択肢も有する。ＢＦの値は、異なる変換部ブロックサイズ、異なる予測タイプ（インター／イントラ）、及び異なる色チャネル毎に異なるように構成することもできる。そこでは、ソースビデオの機能により、異なるパラメータの選択においてエンコーダが操作される。
【０２１５】
ＱＰに基づくＢＦの取得例は、以下のとおりである。
ＢＦ＝ｍａｘ（０，ｉｎｔ（ＱＰ／−６））
【０２１６】
ビットデプスに基づくＢＦの取得例は、以下のとおりである。
ＢＦ＝ｂｉｔＤｅｐｔｈ−８
【０２１７】
変換部ブロックサイズ及びＱＰに基づくＢＦの取得例は、以下のとおりである。
ＢＦ＝ｍａｘ（０，ｉｎｔ（ＱＰ／−６）＋２−ｌｏｇ２（ｓｉｚｅ））
【０２１８】
様々な値のＢＦを、エンコーダにおいてプリコーダ（試行）構成を用いて決定、又は予め決まったルールに従うよう構成することができる。
【０２１９】
［エントロピー符号化の実施形態１］
より高いビットデプスでの処理を可能にするために、ｂｉｔＤｅｐｔｈより少ない数の固定ビットＢＦに対するＨＥＶＣエントロピーコーダの処理を以下のように変更した。
【０２２０】
ＴＵにおける（スキャン順で）最後の重要係数の位置を符号化する。
【０２２１】
各４ｘ４係数グループ（グループは逆スキャン順で処理される）に対して、各係数Ｃを最高重要部分ＣＭＳＢ及び最下位部分ＣＬＳＢに分割する。なお、ＣＭＳＢ＝ａｂｓ（Ｃ）＞＞ＢＦ、ＣＬＳＢ＝ａｂｓ（Ｃ）−（ＣＭＳＢ＜＜ＢＦ）であり、ＢＦは、ビットストリームから決定される、使用する固定ビットの数である。
【０２２２】
上述のCMSB及びCLSBの生成により、値の最上位データ部分が当該値の複数の最上位ビットを表し、値の最下位データ部分が当該値の残りの最下位ビットを表すように、入力データ値から各補足の最上位データ部分及び最下位データ部分を生成する（データ値のシーケンスを符号化する技術に関する）例が提供される。
【０２２３】
グループがＣＭＳＢの非ゼロ値を含有するか否かを示す重要係数グループフラグを符号化する。このフラグは、最後の重要係数を含むグループに必要であり、（ＤＣ係数を含む）左上のグループに対して１であると仮定される。フラグが１である場合、当該グループに関連する以下のシンタックス要素は、それに続いて即座に符号化される。
【０２２４】
重要性マップ：
当該グループにおける各係数に対して、ＣＭＳＢの値が重要か否か（非ゼロ値を有するか否か）を示すフラグを符号化する。このフラグは、最後の重要位置によって示される係数に対して符号化される。
【０２２５】
２以上マップ：
重要性マップの値が１である（グループの終端から後ろにカウントして）８までの係数に対して、このマップはＣＭＳＢが１より大きいか否かを示す。
【０２２６】
３以上マップ：
２以上マップの値が１である（グループの終端に最も近い）１つの係数に対して、このマップはＣＭＳＢが２より大きいか否かを示す。
【０２２７】
固定ビット：
グループにおける各係数に対して、等確率のＣＡＢＡＣビンを用いて、ＣＬＳＢの値をバイパスデータとして符号化する。
【０２２８】
符号ビット：
全ての非ゼロ係数に対して、確率が等しいＣＡＢＡＣビンとして符号ビットを符号化する。（逆スキャン順における）最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。
【０２２９】
エスケープコード：
初期のシンタックス要素によってその大きさが完全には記載されないあらゆる係数に対して、残りのビットをエスケープコードとして符号化する。
【０２３０】
しかしながら、重要係数グループフラグが０である場合、当該グループに関連する固定ビット、符号ビットのシンタックス要素が、それに続いて即座に符号化される。
【０２３１】
固定ビット：
グループにおける各係数に対して、ＣＬＳＢの値は等確率ＣＡＢＡＣビンとして符号化される。
【０２３２】
符号ビット：
全ての非ゼロ係数に対して、符号ビットが等確率ＣＡＢＡＣビンとして符号化される。（逆スキャン順で）最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。
【０２３３】
１つ又は複数のマップ及びフラグの生成により、所定の重要度の最上位データ部分の値の配列に関連する位置を示す１つ又は複数のデータセットを生成する例が提供される。ＣＡＢＡＣを用いて１つ又は複数のマップを符号化することにより、バイナリ符号化により出力データストリームに対してデータセットを符号化する例が提供される。等確率ＣＡＢＡＣビンを用いて他のデータを符号化することにより、出力データストリームにおける低重要部分を定義するデータを含める例が提供され、また、（他の用語を用いて）出力データストリームにおける下位データ部分を定義するデータを含める例は、コード値範囲の比率に従って最下位データ部分を表すシンボルを符号化する算術符号化により最下位データ部分を符号化することを含む。最下位データ部分を表す各シンボルに対するコード値範囲の比率は同等のサイズである。しかしながら、等確率ＣＡＢＡＣ符号化の変形例として、出力データストリームに低重要部分を定義するデータを含めることは、出力データストリームに最下位データ部分をＲＡＷデータとして直接含めることを含むことができる。
【０２３４】
本発明の実施形態によれば、係数が非ゼロ（単にＣＭＳＢと同等ではない）であるか否かを示すために、重要係数グループフラグの解釈を変えることができる。この場合、逆スキャン順で最後の係数を含む係数グループは、（１となるから）示される必要はない。重要係数グループフラグが０である場合、追加シンタックス要素があったとしても符号化する必要はない。これにより、値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位データ部分の位置を示すデータフラグを含む重要性マップの例が提供される。
【０２３５】
図３０に後者の構成を概略的に示す。図３０は多くの点で図２９に対応する。２つの図面を比較すると、図３０には図２９のステップ１５００に該当するものが記載されていないことが分かり、当該処理が最後の重要係数を含むグループに対しても実行されるという事実と一致する。ステップ１６１０及び１６２０は、一般的に、図２９のステップ１５１０及び１５２０と対応する。新しく導入されたステップ１６２５において、係数は上述のようにＭＳＢ及びＬＳＢ部分に分割される。ステップ１６３０，１６４０、及び１６５０は、分割された係数のＭＳＢ部分でのみ作用する点を除いて、一般的に、図２９のステップ１５３０，１５４０、及び１５５０にそれぞれ対応する。新たに導入したステップ１６５５は、分割された係数の上述の固定ビットとしてのＬＳＢ部分を符号化することに関与する。ステップ１６６０及び１６７０は、図２９のステップ１５６０及び１５７０に対応する。
【０２３６】
この修正により、ＣＡＢＡＣエントロピーコーダがそのために設計された元のｂｉｔＤｅｐｔｈで動作するシステムを、バイパス符号化されたより高いビットデプスのＬＳＢ（最も予測できないので、最も圧縮が難しい）を用いて、エンコーダの設計ビットデプスに等しい多くのＭＳＢをＣＡＢＡＣ符号化を通して渡せるようにＢＦを選択することにより効果的に生成することができる。例えば、エンコーダが８ビット又は１０ビットデプスエンコーダである場合、ＢＦは８又は１０と等しい。これにより、データ値のシーケンスが画像データビットデプスを有する画像データを表すシステムの例が提供され、当該方法は、画像データビットデプスと等しい各最上位データ部分において使用するビット数を複数の最上位ビットとして設定することを含む。
【０２３７】
上述のように、（いくつかの実施形態では）データ値のシーケンスが周波数変換画像係数のシーケンスを含む構成に当該技術を適用してもよい。しかしながら、（音声データ又は単に数字データ等の）他の種類のデータを用いることもできる。この提案の結果は、図２７で確認することができる。図２７は、バイパス固定ビット符号化を行う場合（曲線１６８０）と行わない場合（曲線１６９０）で同等の動作を示す、ビットデプスに係るＤＣＴ行列精度及びＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥの組を用いた１つのテストシーケンスについてのＱＰに対するＰＳＮＲのグラフである。（固定ビットを有しないシステムと関連する）固定ビットを有するシステムに対するビットレートの節約量は、ＱＰが０における５％からＱＰが−４８における３７％まで変化する。ＢＦの最良値は、シーケンス依存する。ＢＦの１つの例は、上述のように８又は１０である。
【０２３８】
［エントロピー符号化実施形態２］
他の実施形態において、同様のスキームが同様の処理ステップの多くに適用される。しかしながら、当該スキームは、重要性マップの元の機能を保持し、０のフラグ値は（エントロピー符号化実施形態１のように、係数のＭＳＢ部分に対する０の値ではなく）０の係数値を示す。これは、（典型的にはスムーズ）コンピュータにより生成されたビデオ（ゼロはより頻度が高いと予測される）を考慮する際に、より有用である。本実施形態は、ｂｉｔＤｅｐｔｈより小さい多くの固定ビットＢＦに対する以下の処理ステップを含む。
【０２３９】
ＴＵにおける（スキャン順において）最後の重要係数の位置が符号化される。
【０２４０】
各４ｘ４係数グループ（グループは逆スキャン順で処理される）に対して、グループが非ゼロ係数か否かを示す重要係数グループフラグが符号化される。このフラグは、最後の重要係数を含むグループには必要なく、（ＤＣ係数を含む）左上のグループに対しては１であると仮定される。フラグが１である場合、各係数Ｃは、最上位部分ＣＭＳＢ及び最下位部分ＣＬＳＢに分割される。なお、ＣＭＳＢ＝（ａｂｓ（Ｃ）−１）＞＞ＢＦ、ＣＬＳＢ＝（ａｂｓ（Ｃ）−１）−（ＣＭＳＢ＜＜ＢＦ）である。
【０２４１】
上述のCMSB及びCLSBの生成により、値の最上位データ部分が当該値の複数の最上位ビットを表し、各最下位データ部分が当該値の残りの最下位ビットを表す用に、入力データ値から各補足の最上位データ部分及び最下位データ部分を生成する（データ値のシーケンスを符号化する技術に関する）例が提供される。
【０２４２】
当該グループに関連する以下のシンタックス要素が、それに続いて即座に符号化される。
【０２４３】
重要性マップ：
グループの各係数に対して、係数Ｃが重要である（非ゼロ値を有する）か否かを示すフラグが符号化される。最後の重要位置によって示される係数については、フラグは必要ない。
【０２４４】
２以上マップ：
重要性マップの値が１である（グループの終端から後ろにカウントして）８までの係数に対して、ＣＭＳＢが１以上か否かを示す。
【０２４５】
３以上マップ：
２以上マップの値が１である（グループの終端に最も近い）１つの係数に対して、ＣＭＳＢが２以上か否かを示す。
【０２４６】
符号ビット：
全ての非ゼロ係数に対して、確率が等しいＣＡＢＡＣビンとして符号ビットを符号化する。（逆スキャン順における）最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。
【０２４７】
固定ビット：
グループにおける各非ゼロ係数に対して、ＣＬＳＢの値が符号化される。
【０２４８】
エスケープコード：
初期のシンタックス要素によってその大きさが完全には記載されないあらゆる係数に対して、残りのビットがエスケープコードとして符号化される。
【０２４９】
１つ又は複数のマップ及びフラグを生成することにより、値の配列に関連する所定の重要度の最上位データ部分の位置を示す１つ又は複数のデータセットを提供する例が提供される。ＣＡＢＡＣを用いて１つ又は複数のマップを符号化することで、バイナリ符号化により出力データストリームに対してデータセットを符号化する例が提供される。等確率ＣＡＢＡＣビンを用いて他のデータを符号化することにより、出力データストリームにおける下位部分を定義するデータを含める例が提供される。
【０２５０】
なお、出力ストリームにおけるデータの様々な要素の順番については様々な選択肢がある。例えば、符号ビット、固定ビット、及びエスケープコードを参照して、１群の（例えば）ｎ（ｎは例えば１６である）個の係数についての順番は、n x 符号ビット、n x 固定ビットの組、それからn x エスケープコード、又はn x 符号ビット、それからn x （１つの係数に対してエスケープコード及び固定ビット）である。
【０２５１】
この構成を図３１のフローチャートに概略的に示す。ここで、ステップ１７００−１７７０は、違いが特定されない限り、以下のように図３１及び図３２の各ステップに対応する。なお、ステップ１７５５は、図３１のステップ１７６０（同様のステップ１６５５は、図３０のステップ１６６０に先行する）に続く。
【０２５２】
ステップ１７００は、一般的に、図２９のステップ１５００に対応する。これが最後の重要係数を含むグループでない場合、処理はステップ１７１０に移行する。ステップ１７１０及び１７２０は、図３０のステップ１６１０及び１６２０にそれぞれ対応する。係数は、図３０のステップ１６２５に対応するステップ１７２５で分割される。しかしながら、ステップ１７３０において、上述のステップ１６３０の構成とは対照的に、重要性マップの抽出に係数全体（ステップ１７２５で実行される分割は当面の間無視する）が用いられる。ステップ１７４０及び１７５０は、分割係数のＭＳＢ部分でのみ作用し、その機能はステップ１６４０及び１６５０に対応する。ステップの順番は図３２と図３３でわずかに異なるように（一例として）示されているという事実以外は、ステップ１７５５，１７６０、及び１７７０は、ステップ１６５５，１６６０、及び１６７０の機能に対応する。
【０２５３】
これら２つのエントロピー符号化実施形態を比較した結果を、図２８に示す。図２８は、６つのテストシーケンスについて、エントロピー符号化実施形態１で得られる結果に対して（同一のパラメータにも関わらず）エントロピー符号化実施形態２で得られるビットレート％の改善を示すグラフである。
【０２５４】
エントロピー符号化実施形態２は、負のＱＰに対して、エントロピー符号化実施形態１よりもいくつかの原因物質に対する効果が平均で１％低いことが示されている。正のＱＰに対しては約３％上昇する。しかしながら、いくつかの軟らかい原因物質に対して、係数におけるゼロの数が増えることにより、その逆の現象が観察される。一実施形態では、エンコーダは、エントロピー符号化方法を選択し、当該選択をデコーダに通知することができる。
【０２５５】
正のＱＰに対する節約量は負のＱＰに対する節約量と比較して小さいので、エントロピー符号化の修正は、ＱＰが負であるときにのみ有効とする。エントロピー符号化実施形態１が負のＱＰに対して３７％までのビットの節約量を示すことを考慮して、エントロピー符号化変形を有しないシステムと比較すると、これら動作点において２つのエントロピー符号化実施形態にほとんど違いはない。
【０２５６】
したがって、周波数変換入力画像係数が利用可能な様々な量子化パラメータから選択された変数量子化パラメータに従って量子化された周波数変換入力画像係数である実施形態において、当該技術は、利用可能な量子化パラメータの第１の所定のサブレンジにおける量子化パラメータを用いて生産された係数、及び利用可能な量子化パラメータの第１の所定のサブレンジ内にない量子化パラメータを用いて生産された係数について、最上位データ部分及び最下位データ部分に従って周波数変換入力画像係数を符号化すること、並びに各最上位データ部分のビット数が当該係数のビット数と等しくなり、各最下位データ部分がビットを含まないように周波数変換入力画像係数の配列を符号化することを含むことができる。
【０２５７】
符号化されるデータの量は一般的なＨＥＶＣバージョン１の動作点について観察されるものよりやや高いので、提案された両システムに適用可能な追加ステージ及び実際には既に提案されたシステムを有効にできない又は有効でないシステムについて、本発明の別の実施形態に関連して説明する。
【０２５８】
当該追加ステージは、各係数グループに対してバイパスデータを符号化するに先立ち、ＣＡＢＡＣストリームをビット配列させる。これにより、値をストリームから直接読むことができるので、バイパスデータの復号化をより早く（並列して）実行することができ、バイパスビンを復号化する際の長い除算の必要性がなくなる。
【０２５９】
これを実現する１つのメカニズムは、上述のＣＡＢＡＣ終了方法を適用することである。
【０２６０】
しかしながら、本実施形態では、ビットストリームを終了する代わりに、ＣＡＢＡＣ状態をビット境界に配列する。
【０２６１】
諸実施形態において、一連のＣＡＢＡＣコード値は、０から範囲変数により定義される上限値までの範囲の値を含む。当該上限値は、所定の最小サイズ（例えば、２５６）から第２の所定の値（例えば、５１０）までの範囲にある。
【０２６２】
ストリームをビット配列するために、エンコーダ及びデコーダにおいて、ｍ＿Ｒａｎｇｅは単純に２５６に設定される。これにより、符号化及び復号化処理は著しく容易になり、バイナリデータをＲＡＷ形式のｍ＿Ｖａｌｕｅから直接読むことが可能となる。したがって、デコーダにより、多くのビットを同時に処理することができる。いくつかの例において、値２５６は範囲変数ｍ＿Ｒａｎｇｅの所定の最小値の一例と考えてもよい。
【０２６３】
なお、ｍ＿Ｒａｎｇｅを２５６に設定する動作は、平均で、０．５ビットの損失を招く（ｍ＿Ｒａｎｇｅが既に２５６であれば、損失はない。ｍ＿Ｒａｎｇｅが５１０であれば、約１ビットの損失がある。したがってｍ＿Ｒａｎｇｅの有効値全ての平均は０．５ビットである）。
【０２６４】
多くの方法を用いて、これら技術により引き起こされる損失又は考えられるコストを緩和することができる。図３３−図３５は、ＣＡＢＡＣエンコーダにより実行されるＣＡＢＡ処理の終了ステージのバージョンを概略的に示すフローチャートである。
【０２６５】
図３３によれば、バイパス符号化データの予測量の推定値（例えば、２以上フラグの数が１に等しいこと）に応じて、ビット配列するか否かを選択することができる。予測されるバイパス符号化データがほとんどない場合、ビット配列するには（配列につき平均０．５ビット無駄にするので）コストがかかり、ビットレートが低くなる可能性が高いので不必要である。したがって、図３３において、ステップ１８００は、設定された２以上フラグの数を検出することでバイパス符号化データの推定量を検出し、並びにその数を閾値Ｔｈｒと比較することに関する。推定値が閾値Ｔｈｒを超えた場合、処理はステップ１８１０に移行する。ステップ１８１０では、ビット配列モードが選択される。推定値が閾値Ｔｈｒ以下である場合、処理はステップ１８２０に移る。ステップ１８２０において、非ビット配列モードが選択される。図３４に示すステップは、例えば、各ＴＵにおける各サブグループにおいて繰り返すことができる。
【０２６６】
図３４を参照して、各係数グループの終端におけるコードバイパスデータではなく、ＴＵに対するＣＡＢＡＣビンデータの後にＴＵに対する全てのバイパスデータを合わせて符号化することができる。したがって、損失は、係数グループにつき０．５ビットではなく符号化ＴＵにつき０．５ビットである。したがって、図３４におけるステップ１８３０において、現在のグループがＴＵ符号化の終端にあるか否かを検出するためにテストを適用する。現在のグループがＴＵ符号化の終端になければ、ビット配列は適用されず（ステップ１８４０で概略的に示されている）、処理はステップ１８３０に戻る。しかしながら、現在のグループがＴＵ符号化の終端にある場合、ビット配列はステップ１８５０で適用される。これにより、入力データ値が画像データを表し、当該画像データが係数の複数の配列を含む変換ユニットとして符号化される構成の例が提供され、当該方法は、上記設定を変換ユニットの符号化の終了時に適用することを含む。
【０２６７】
この配列メカニズムは、効率性を減少させる可能性があるがストリームの符号化を単純化することもある等確率のメカニズムで符号化されるストリーム内の他のデータ又は全てのデータに先立って用いてもよい。
【０２６８】
図３５を参照し、変形例としての配列として、ｍ＿Ｒａｎｇｅを単に２５６とするのではなく所定の値の数Ｎの１つに設定することができる（例えば、３８４は半ビットに配列する）。配列値は（再正規化を除いて範囲は増加することができないので）ｍ＿Ｒａｎｇｅの元の値以下である必要があるので、配列毎損失は定期的に間隔をあけた値に対して（０．５／Ｎ）である。この方法は、依然として２５６以外の値に対して除算を必要とする。しかしながら、分母は予め知られており、したがって、当該除算はルックアップテーブルを用いて評価することができる。したがって、（ビット配列状態で適用される）ステップ１８６０において、ｍ＿ｒａｎｇｅの値が検出され、ステップ１８７０において、ビット配列処理において使用するために、ｍ＿ｒａｎｇｅにしたがって配列値が選択される。
【０２６９】
この変形例の配列方法に対するさらなる改良として、配列の直後の（１つ又は複数の）ビンを２の累乗の（同等でない）シンボル範囲を用いて符号化することができる。このようにして、次のビンに対する除算の全ての必要性を、ビット効率において（０．５／Ｎ）を超えるさらなる損失を招くことなく除去することができる。
【０２７０】
例えば、３８４に配列する際、次のビンに対する［０，１］のシンボル範囲は［２５６，１２８］とすることができる。
【０２７１】
０を符号化する場合、ｍ＿Ｒａｎｇｅは２５６に設定され、ビンを符号化するコストを０．５ビットとなる。
【０２７２】
１を符号化する場合、ｍ＿Ｒａｎｇｅは１２８に設定され（さらに、２５６がｍ＿Ｖａｌｕｅに追加され）、システムは再正規化され（ｍ＿Ｒａｎｇｅは再び２５６となる）、ビンを符号化するコストは１．５ビットとなる。
【０２７３】
０及び１は等しい確率で予測されるので、配列直後のビンを符号化する平均コストは、依然として１ビットである。Ｎ＝２であり、２つの配列点が２５６及び３８４である場合に対して、当該方法を用いれば、現在のｍ＿Ｒａｎｇｅ以下の最大配列点を取得できる。配列点が２５６の場合、ＣＡＢＡＣエンジンを配列するために、ｍ＿Ｒａｎｇｅはちょうど２５６に設定される。配列点が３８４の場合、上記処理が必要となり、１つのシンボルの符号化が必要となる。
【０２７４】
これは、図３２Ａ及び３２Ｂに示され、Ｎ＝４の別の例は、図３２Ｃ−３２Ｆに示されている。
【０２７５】
ＣＡＢＡＣエンジンを配列する利点を示すために、当該配列ステージなしに等確率（ＥＰ：equiprobable）ビンを復号化する方法を以下のように表すことができる。
【０２７６】
（ｍ＿Ｖａｌｕｅ＞＝ｍ＿Ｒａｎｇｅ／２）の場合、
復号化ＥＰ値は１である。ｍ＿Ｒａｎｇｅ／２ずつｍ＿Ｖａｌｕｅを減少させる。
それ以外の場合
復号化  ＥＰ値は０である。
ビットストリームから次のビットを読み込む。
ｍ＿Ｖａｌｕｅ＝（ｍ＿Ｖａｌｕｅ＊２）＋ストリーム内の次のビット
【０２７７】
この変形例は以下のとおりである。
【０２７８】
ｍ＿Ｒａｎｇｅ＝４５８、ｍ＿Ｖａｌｕｅ＝３０３とし、ビットストリームにおける次のビットは１である。
サイクル１
ｍ＿Ｖａｌｕｅ＞＝２２９。したがって、次の符号化ＥＰ値は１である。ｍ＿Ｖａｌｕｅ＝７４
ビットストリームから次のビットを読み込む。ｍ＿Ｖａｌｕｅ＝７４＊２＋１＝１４９
サイクル２
ｍ＿Ｖａｌｕｅ＜２２９。したがって、ＥＰ値は０である（ｍ＿Ｖａｌｕｅ変化なし）。
ビットストリームから次のビットを読み込む。ｍ＿Ｖａｌｕｅ＝１４９＊２＋１＝２９９
【０２７９】
復号化等確率ビンは、長い除算の１つのステージに等しく、不等をテストするには計算が必要。２つのビンを復号化するために、本例の処理は２回実行され、２段階の長い除算処理が実行される。
【０２８０】
しかしながら、ｍ＿Ｒａｎｇｅを２の最大有効累乗（９ビットＨＥＶＣ  ＣＡＢＡＣに対して２５６等）とする配列ステージを適用する場合、上記処理が簡略化される。
符号化ＥＰ値は、ｍ＿Ｖａｌｕｅの最も重要なビットである。
シフトレジスタとして処理することにより、ストリーム内の次のビットを最下位位置にシフトして、ｍ＿Ｖａｌｕｅを更新する。
【０２８１】
したがって、ｍ＿Ｖａｌｕｅは基本的にシフトレジスタとなり、ＥＰビンは最上位位置から読み込まれる。一方、ビットストリームは最下位位置にシフトされる。したがって、単にｍ＿Ｖａｌｕｅの上端からさらに複数ビットシフトすることで、複数のＥＰビットを読み込むことができる。
【０２８２】
この配列例の変形例は以下のように示される。
【０２８３】
ｍ＿Ｒａｎｇｅ＝２５６、ｍ＿Ｖａｌｕｅ＝１８９とし、ビットストリームの次の２ビットは１である。
サイクル１
次の符号化ＥＰ値は、ｍ＿Ｖａｌｕｅのビット７であり、１である。
ビット７をシフトし、ビットストリームから最下位位置に１をシフトすることでｍ＿Ｖａｌｕｅを更新する。ｍ＿Ｖａｌｕｅは１２３となる。
サイクル２
次の符号化ＥＰ値は、０であるｍ＿Ｖａｌｕｅのビット７である。
ビット７をシフトし、ビットストリームから最下位位置に１をシフトすることでｍ＿Ｖａｌｕｅを更新する。ｍ＿Ｖａｌｕｅは２４７となる。
【０２８４】
選択された配列点の数Ｎは、実行の複雑性と配列のビットコストとのトレードオフとして確認することができる。配列点毎に多くのＥＰビンが存在する動作点については、損失はそれほど重要でなく、動作点が少ない配列システムでも十分である。逆に、配列点毎のＥＰビンが少ない動作点については、損失がより重要になり、動作点の多い配列システムが好ましい可能性がある。いくつかの動作点に対しては、配列アルゴリズムを完全に無効にするのが好ましいことがある。エンコーダ及びビットストリームは、データストリームのセクションの動作点に従って選択可能な、デコーダに使用される配列点の数を示すことができる。あるいは、当該示された数は、プロファイル及びレベル等のビットストリームに存在する他の情報から推測されてもよい。
【０２８５】
配列位置がちょうど２５６及び３８４である単純なケースでは、複数の配列位置を用いて、以下のように配列する。
【０２８６】
ｍ＿Ｒａｎｇｅ＜３８４の場合、ｍ＿Ｒａｎｇｅを２５６に設定し、復号化のために上述の変更例を参照する。
それ以外の場合、ｍ＿Ｒａｎｇｅ＝３８４に設定し、以下の処理を次のＥＰビンを符号化するために実行する。
ｍ＿Ｒａｎｇｅ＝３８４＝２５６＋１２８
２５６のシンボル範囲を０の値に割り当て、１２８のシンボル範囲を次の符号化対象のＥＰビンに対して１の値に割り当てる。
ｍ＿Ｖａｌｕｅ＞＝２５６の場合、（ＭＳＢビットテスト動作）
次のＥＰ値は１である。
ｍ＿Ｖａｌｕｅ−＝２５６（実際には、ビットクリア動作）
ｍ＿Ｒａｎｇｅ＝１２８
再正規化（ｍ＿Ｒａｎｇｅ＜２５６なので）
ｍ＿Ｒａｎｇｅ＝２５６
ｍ＿Ｖａｌｕｅ＝（ｍ＿Ｖａｌｕｅ＊２）＋ストリーム内の次のビット
それ以外の場合、
次のＥＰ値は０である。
ｍ＿Ｒａｎｇｅ＝２５６．
ｍ＿Ｒａｎｇｅ＝２５６であり、上記単純な処理を次のＥＰビンの全てに対して実行することができる。
【０２８７】
上述のＣＡＢＡＣビット配列メカニズムを有するエントロピー符号化実施形態１の結果を、図２７に示す。図２７は、Ｎ＝１に対するビット配列メカニズムを有する又は有しない６つのシーケンスについてのＱＰに対するビットレートの違いを表すグラフである。正のビットレートの違い（垂直軸）は、ビット配列を有するシステムにより、ビット配列メカニズムを有しないスキームより高いビットレートが生成されることを示している。各シーケンスに対するビットレートの違いは、１秒につき１０００の係数グループの数の約０．５倍である（トラフィックは、２５６０ｘ１６００  ３０ｐ＝１１５２０、その他は１９２０ｘ１０８０  ５０ｐ＝９７２０）。
【０２８８】
上述の配列技術は、１群の入力データ値を符号化した後、ゼロに等しい少なくとも１つの最下位ビットを含む利用可能な範囲変数値の所定のサブセットから選択された値に範囲変数を設定する例である。サブセットは、最小サイズ（例えば、２５６）を含んでもよい。サブセットは、所定の最小サイズ（２５６等）から第２の所定値（５１０等）の範囲にある２つ以上の値を含んでもよい。範囲変数の現在の値に従って値を選択してもよい。実施形態は、（例えば、図３２Ａ〜３２Ｆに示すように）範囲変数の現在の値が当該特定の値からサブセットにおける次に高い値より１少ない値までの範囲にある場合、サブセットから特定の値を選択することを含む。特別な例では、利用可能な値のサブセットは、２５６、３２０、３８４、及び４４８の組を含む。範囲変数を設定することには、範囲変数の現在の値が２５６から３１９までの範囲にある場合、範囲変数が２５６に設定されるように、範囲変数の現在の値が３８４から４４７までの範囲にある場合、範囲変数が３８４に設定されるように、範囲変数の現在の値が４４８から５１０までの範囲にある場合、範囲変数が４４８に設定されるように、範囲変数の現在の値に従ってサブセットから値を選択することが含まれる。他の例では、範囲変数を設定することには、範囲変数の現在の値が２５６から３８３までの範囲にある場合、範囲変数が２５６に設定されるように、範囲変数の現在の値が３８４から５１０までの範囲にある場合、範囲変数が３８４に設定されるように、範囲変数の現在の値に従ってサブセットから値を選択することが含まれる。
【０２８９】
図３０で設定される選択肢はプロファイルとして提案される。
【０２９０】
（１つ又は複数の）高いプロファイルが１４までのｂｉｔＤｅｐｔｈｓをサポートする必要がある場合、変換行列係数精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥが１２、１９、及び２０にそれぞれ設定されるよう提案される。
【０２９１】
これらプロファイルに加えて、イントラのみメイン（Ｍａｉｎ）／拡張（Ｅｘｔｅｎｄｅｄ）プロファイルを定義することができるが、イントラのみデコーダはイントラ・インターデコーダより著しく複雑性が少ないので、高いイントラプロファイルのみをここでは説明する。
【０２９２】
同様に、静止画を符号化するためのＥｘｔｅｎｄｅｄ／Ｈｉｇｈプロファイルは、依然として様々なクロマ形式で定義できる。
【０２９３】
低いプロファイルは、高いプロファイルで使用されるのと同様に、同じ行列精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥを使用する必要がある。そうでなければ、２つのプロファイルで生産されたビットストリームは適合しない。
【０２９４】
ここで、様々な選択肢について説明する。
【０２９５】
選択肢１
【０２９６】
【表３】
0006636909.tif 000004
【０２９７】
この選択肢では、ビットデプスが変換行列精度、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥに影響する。これは、１６までのビットデプスを支持する必要があるデコーダが異なる組の行列で１３ビットのデータを処理する必要があり、当該デコーダは２１までサポートすることができるものの、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥに対して内部精度が１８ビットに限定されることを意味する。しかしながら、高いプロファイルを用いて符号化された１２ビットデータは、低いプロファイルに準拠したデコーダにより復号化することができる。
【０２９８】
選択肢２
【０２９９】
【表４】
0006636909.tif 000005
【０３００】
この選択肢では、オーバーラップビットデプスに対するビットパラメータが、低いプロファイルにより決定され、これにより、拡張プロファイルに準拠したデコーダを用いて復号可能な高いプロファイルを用いて符号化された１２ビットデータを復号化する。また、１３ビットデータの内部精度は、１６ビットデータに対するものと同じである。また、行列精度は、選択肢１よりもサポートされる必要はない。
【０３０１】
この場合、１組の変換行列値を保存することができ、他の値は全てこれから得られる。
【０３０２】
なお、変換行列が１４ビットの最初の精度を有する場合、一般的に、２で除算されるか丸められることにより低い精度が得られる。
【０３０３】
高い精度行列から低い精度行列を得るためにこの一般側を用いると、以下の例が与えられる。
【０３０４】
例１
選択肢１：Ｈｉｇｈ４：４：４    変換行列精度＝１４を定義する。
１４から変換行列精度＝１３を得る。
Ｅｘｔ４：４：４      変換行列精度＝１４を定義する。
１４から変換行列精度＝１０を定義する。
すなわち、「高い（Ｈｉｇｈ）」精度で記憶する。
【０３０５】
例２
選択肢１：Ｈｉｇｈ４：４：４    変換行列精度＝１０を定義する。
１０から変換行列精度＝１４を得る。
Ｅｘｔ４：４：４      変換行列精度＝１０を定義する。
１４から変換行列精度＝１０を得る。
すなわち、「拡張された（Ｅｘｔｅｎｄｅｄ）」精度で記憶する。
【０３０６】
よりよい品質のためには、「例１」が好ましい。しかしながら、例２は記憶必要メモリが少なくて済む。
【０３０７】
なお、変形例として、もちろん、各精度について変換行列の組を記憶することもできる。「例１」及び「例２」のルールは、「選択肢２」にも用いることができる。
【０３０８】
目的の１つは、品質を増加し、プロファイルに除算することであるので、１つの精度において１つの組から各変換行列の組が得られる場合、スケーリングエラーが生じる。
【０３０９】
「例１」の場合、システムは変換行列を１４ビットからダウンスケールし、「例２」の場合、システムは、変換行列を１０ビットからアップスケール若しくはダウンスケールする。
【０３１０】
選択肢３
【０３１１】
【表５】
0006636909.tif 000006
【０３１２】
すなわち、１２ビットビデオのビットデプスは、ｈｉｇｈ４：４：４デコーダのみがｈｉｇｈ４：４：４スキームを用いて符号化されたストリームを復号化できるものの、「Ｈｉｇｈ４：４：４」又は「Ｅｘｔ４：４：４」として符号化することができる。
【０３１３】
選択肢４
【０３１４】
【表６】
0006636909.tif 000007
【０３１５】
すなわち、「Ｈｉｇｈ４：４：４プロファイル」は、低い「Ｅｘｔ４：４：４プロファイル」をサポートする必要がある。この選択肢では、１２ビットビデオを符号化するための選択肢は１つしかない。
【０３１６】
選択肢５
【０３１７】
【表７】
0006636909.tif 000008
【０３１８】
この選択肢において、行列精度はプロファイルごとの１の値に限られ、エンコーダに対するオーバーヘッドを低減させる。また、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥはビットデプスにより決定されるので、１３ビットデータを符号化する必要があるエンコーダは、追加の内部計算精度を用いることの実行オーバーヘッドを含むことを必要としない。
【０３１９】
選択肢６
【０３２０】
【表８】
0006636909.tif 000009
【０３２１】
選択肢６は、選択肢５と同様であるが、拡張プロファイルのみが１２ビットデータの符号化に対して定義される。
【０３２２】
まとめると、本発明の諸実施形態に係る提案された変化は、以下のとおりである。
【０３２３】
高い精度に対して設定された少なくとも１つの追加変換行列を用いる。
【０３２４】
マルチプロファイルエンコーダ・デコーダを簡略化するために、全ての高い精度のために、単一の組を有するのが好ましい。
【０３２５】
提案された変換行列は、変換行列精度７〜１４のために提供される。以下の説明を参照する。
【０３２６】
１４ビット精度変換行列はソフトウェアに対する１６ビットデータタイプに適合し、１６ビットビデオへの拡張を可能にするのに十分な精度をもたらすので、これらを使用することが示唆される。
【０３２７】
変換行列精度の選択は、入力データのビットデプス及びプロファイルにより構成され、あるいは、シーケンス、画像、又はスライスレベルで規定されるパラメータで交互に決定される。
【０３２８】
ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥは、高い精度に対して変更できる。（すなわち、これらのうち少なくとも１つ）。
【０３２９】
ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥの複数の値は、マルチプロファイルエンコーダ・デコーダに対する問題を提起するべきではない。
【０３３０】
ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ＝ｂｉｔＤｅｐｔｈ＋５及びＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ＝ｂｉｔＤｅｐｔｈ＋６を得ることが示唆されている。
【０３３１】
MAX_TR_DYNAMIC_RANGE = bitDepth + 5 を用いることは、多くの場合及び多くの種類のビデオ素材に対して適切である。しかしながら、これを変更することに関する考えられる必要性について説明する。
【０３３２】
経験的なテストにより、いくつかの例において、ビデオシーケンスのサブセット、特に、低ノイズな内容のいくつかのビデオシーケンスに対して、MAX_TR_DYNAMIC_RANGE = bitDepth + 5を用いることにより、単調でない（出力ビットレートと量子化パラメータの関係を与える）反応曲線を生じることが分かった。
【０３３３】
通常、このような反応曲線は、量子化のレベルが高いほど出力ビットレートが低く、量子化のレベルが低いほど出力ビットレートが高いように、出力ビットレートと量子化パラメータの間で単調である。この単調な関係により、レート制御システムにより量子化パラメータを調整して出力ビットレートを所望の範囲又は所望の閾値に維持するレート制御アルゴリズムの基礎が形成される。
【０３３４】
しかし、MAX_TR_DYNAMIC_RANGE = bitDepth + 5を用いるいくつかの例では、例えば、量子化のレベルを低くする変更により実際に低い出力ビットレートがもたらされ、この単調な関係が崩れることが発見された。また、特定の出力ビットレートに対して、２つの考えられるピクチャＳＮＲの値が存在することも発見された。このような例外により、レート制御アルゴリズムが所望のビットレートに達するのに苦労し、又は達することができないことがある。
【０３３５】
経験的なテストにより、このような問題はMAX_TR_DYNAMIC_RANGE = bitDepth + 6を用いることにより解決できることが発見された。したがって、いくつかの実施形態では、このMAX_TR_DYNAMIC_RANGEとbitDepthの関係が用いられる。
【０３３６】
３２ｘ３２ＤＣＴ行列の特別な例において、ＤＣＴ処理を実行するには、bitDepth + 5の値が得られる方法であるbitDepthを超えるlog2(32)ビットの精度を必要とする傾向がある。しかしながら、量子化プロセスにより、他のビットの精度の同等物を追加することがある。この追加ビットをＤＣＴ処理における追加の精度として提供すれば、少なくともいくつかのビデオ素材に対して、著しく良好な結果を得ることができる。
【０３３７】
しかしながら、経験的なテストにより、この問題及びMAX_TR_DYNAMIC_RANGE = bitDepth + 6を用いることの解決法は、より大きいＤＣＴ行列サイズにのみ関連することも発見されている。MAX_TR_DYNAMIC_RANGEとbitDepthの異なる関係を可能にすることの利点は、追加精度が必要ない例において不必要な処理のオーバーヘッドを避けられることである。
【０３３８】
特に、本例において、上記問題及び提案された解決法は、特に３２ｘ３２ＤＣＴ行列サイズと関連する。より小さな行列に対しては、MAX_TR_DYNAMIC_RANGE = bitDepth + 5の関係を用いることができる。
【０３３９】
より一般的には、オフセット（MAX_TR_DYNAMIC_RANGEを生成するためにbitDepthに追加された値）を行列サイズに従って変更できるように、MAX_TR_DYNAMIC_RANGEとdbitDepthの関係の適用可能な変更を用いることができる。したがって、MAX_TR_DYNAMIC_RANGE = bitDepth + offsetであり、offsetは行列サイズの関数である。１つの例では、オフセット値は以下のように選択することができる。
【０３４０】
【表９】
0006636909.tif 000010
【０３４１】
他の例では、低い精度を小さい行列サイズに用いることができる一方、高い精度には大きな行列サイズを用いる必要性を認識できるように、累進的な関係を用いることができる。
【０３４２】
【表１０】
0006636909.tif 000011
【０３４３】
オフセットと行列サイズの関係は、エンコーダの逆（復号化）経路とデコーダの復号化経路とで同一とすべきである。したがって、当該技術のこれら３つの領域で、この関係を構築し、又は明らかにする必要がある。
【０３４４】
１つの例では、この関係をエンコーダ及びデコーダで所定のハードコードされた関係として構築することができる。
【０３４５】
他の例においては、ビデオデータの一部として（又はこれに関連して）、この関係を明確にすることができる。
【０３４６】
他の例では、エンコーダ及びエンコーダにおいて、この関係を符号化ビデオデータに関連付けられた「プロファイル」の識別子から推測することができる。ここで、この説明の他の場所で説明したように、プロファイルはビデオデータを符号化又は復号化するために使用される一連のパラメータの識別子である。プロファイル識別子と当該プロファイル識別子により設定される実際のパラメータのマッピングは、エンコーダ及びデコーダに予め記憶される。このプロファイル識別子は、例えば、符号化データの一部として伝達することができる。
【０３４７】
しかしながら、一般的に、（いくつかの例では、第２のオフセットと称される）オフセットの値は、変換行列の行列サイズに依存する。
【０３４８】
変換行列精度と同様に、ＭＡＸ＿ＴＲ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥ及び／又はＥＮＴＲＯＰＹ＿ＣＯＤＩＮＧ＿ＤＹＮＡＭＩＣ＿ＲＡＮＧＥの選択は、入力データのビットデプス及びプロファイルで構成され、あるいは、シーケンス、画像、又はスライスレベルで規定されるパラメータ（場合により、ＤＣＴ行列を選択したのと同一のパラメータ）により交互に決定される。
【０３４９】
これら構成により、変換データの最大ダイナミックレンジに従って、データ精度を有する変換行列を用いて、並びに入力画像データのビットデプスに従って最大ダイナミックレンジ及び／又は変換行列のデータ精度を選択して、行列乗算処理により周波数変換入力画像係数の配列を生成するための周波数変換入力画像データの例が提供される。
【０３５０】
諸実施形態では、変換行列のデータ精度を入力画像データのビットデプスより小さい（２等の）第１のオフセット数のビットに設定することができ、変換データの最大ダイナミックレンジを入力画像データのビットデプスより大きい（５等の）第２のオフセット数のビットに設定することができる
【０３５１】
エントロピー符号化は、低いＱＰでの圧縮を増加させるためにいくつかの固定ビット処理（エントロピー符号化実施形態１及び２を参照）を含むように変更することができる。
【０３５２】
固定ビットの有無は、シーケンスレベルで構成することができる。
【０３５３】
固定ビットＢＦの数は、シーケンス、（画像パラメータセットは、シーケンスレベル設定を知らないので難しいものの）画像、スライス、又はＣＵレベルで（場合により、以前のシーケンス・画像・スライス・ＣＵ，ペアレントエンティティ、又はプロファイル定義に対する固定ビットの数からデルタを伝達することにより）構成することができる。
【０３５４】
エントロピー符号化は、長い除算を使用することなくバイパスビットをストリームから抽出できるようにＣＡＢＡＣビット配列を含むように変更することができる（１つ又は複数の上述のビット損失緩和方法を適用するのも好ましい）。
【０３５５】
したがって、本発明の諸実施形態によれば、ＨＥＶＣを通してより高いビットデプスのための範囲拡張（Ｒａｎｇｅ  Ｅｘｔｅｎｓｉｏｎｓ）権限に必要性を適応させるために、内部精度を上昇させることができる。様々なソースの誤差が研究され、推奨がなされている。また、符号化効率を改善するための変化が提供され、スループットを改善する変化も提供されている。
正確変換行列の増加
【０３５６】
以下においては、変換行列を様々なレベルの精度で説明する。
【０３５７】
４ｘ４  ＤＳＴ
組み合わせ行列は、以下の形式である。
【０３５８】
【数１】
0006636909.tif 000012
【０３５９】
格子内の値は、以下のテーブルに係る行列係数精度（比較のために含まれる６ビットＨＥＶＣバージョン１行列値）により定義される。
【０３６０】
【表１１】
0006636909.tif 000013
【０３６１】
組み合わせＤＣＴ行列
実行を容易にするために、単一の３２ｘ３２ＤＣＴ行列Ｍ３２を記載することができる。それからは、（各ソース変換行列からそれぞれ異なる必要なデータ精度で変換行列を得る例として）以下のサブサンプリングを通して各小さいＮｘＮ  ＤＣＴ行列ＭＮを得ることができる。
ｘ，ｙ＝０．．（Ｎ−１）に対して、ＭＮ［ｘ］［ｙ］＝Ｍ３２［ｘ］［（２（５  −  ｌｏｇ２（Ｎ）））ｙ］．
【０３６２】
組み合わせ行列Ｍ３２は、以下の形式である。
【０３６３】
【数２】
0006636909.tif 000014
【０３６４】
以下のテーブルに係る行列係数精度で定義される格子の値（比較のために含まれる６ビットＨＥＶＣバージョン１行列値）
【０３６５】
【表１２】
0006636909.tif 000015
【０３６６】
情報に対して、３２ｘ３２行列由来のより小さいＤＣＴ行列をここに示す。各格子の値は、上記テーブルに係る行列係数精度で定義される。
【０３６７】
４ｘ４ＤＣＴ
行列Ｍ４は、組み合わせ行列Ｍ３２の８番目の行ごとの第１の４係数として定義される。
【０３６８】
【数３】
0006636909.tif 000016
【０３６９】
８ｘ８ＤＣＴ
行列Ｍ８は、組み合わせ行列Ｍ３２の全ての４番目の行の第１の８係数として定義される。
【０３７０】
【数４】
0006636909.tif 000017
【０３７１】
１６ｘ１６ＤＣＴ
行列Ｍ１６は、組み合わせ行列Ｍ３２の全ての偶数行の第１の１６係数として定義される。
【０３７２】
【数５】
0006636909.tif 000018
【０３７３】
固定ビット符号化の実施形態に関する別の技術又は関連技術について、図３６及び図３７を参照して説明する。
【０３７４】
しかしながら、最初に、エスケープコードを符号化するために使用される技術について説明する。
【０３７５】
いわゆるゴロムライス符号化は、値ｖをその後にｋビットのサフィックスが続くα符号化プレフィックス（１つの０に続く可変数の１、逆の場合も同様である）として符号化する。
【０３７６】
プレフィックス長をα符号化プレフィックス内の１の総数にする。Ｋを最下位ｋビットの値にする。
ｖ＝（プレフィックス長＜＜ｋ）＋Ｋ（ただし、＜＜ｎは、ｎビットの左シフトを表し、同様の表記である＞＞ｎは、ｎビットの右シフトを表す）
【０３７７】
ビットの総数は、プレフィックス長＋１＋ｋと等しい。
【０３７８】
次に、いわゆるｋ次の指数ゴロム符号について説明する。当該符号では、符号化対象の数字が変数長α符号化プレフィックスと変数長サフィックスとに分割される。サフィックスビットの数＝プレフィックス長＋ｋである。ここで、プレフィックス長は、またしてもα符号における１の数である。
【０３７９】
符号におけるビットの総数＝プレフィックス長＋１＋プレフィックス長＋ｋである。
【０３８０】
Ｋを最後のｋビットの値とする。
【０３８１】
プレフィックス長が０の場合、ｖはＫと等しくなる。
【０３８２】
プレフィックス長が１の場合、ｖは（１＜＜ｋ）＋Ｋから（３＜＜ｋ）＋Ｋまでの範囲にある（（３＜＜ｋ）＋Ｋを含まない）。
【０３８３】
プレフィックス長が２の場合、ｖは（３＜＜ｋ）＋Ｋから（７＜＜ｋ）＋Ｋまでの範囲にある（（７＜＜ｋ）＋Ｋを含まない）。
【０３８４】
プレフィックス長が３の場合、ｖは（７＜＜ｋ）＋Ｋから（１５＜＜ｋ）＋Ｋまでの範囲にある（（１５＜＜ｋ）＋Ｋを含まない）。
【０３８５】
したがって、ｖ＝（（２＾プレフィックス長）−１）＜＜ｋ）＋サフィックスとなる。
【０３８６】
ＨＥＶＣにおいて、ゴロムライス符号及び指数ゴロム符号の両方が使用される。プレフィックス長が３より小さい場合、符号はゴロムライス符号として解釈される。しかしながら、プレフィックス長が３以上の場合、符号はｋ次の指数ゴロム符号として解釈される。
【０３８７】
（どちらかのシステムにおける）プレフィックスは、α符号の例である。サフィックスは、非α符号の例である。当該２つのシステムは、２部変数長符号の例である。
【０３８８】
この場合、指数ゴロム符号を復号化するために使用されるプレフィックス長の値は３減らされ、復号化動作から得られる値は(3<<k)増加される。なぜなら、これはゴロムライス符号を用いて表すことができない最小の値だからである。
【０３８９】
ＨＥＶＣ  ＥｓｃａｐｅとＥｓｃａｐｅ−Ｅｓｃａｐｅで使用される「ｋ」の値は異なる。１６係数の各グループのために、値ｋは０で始まり、係数値の重要度が３＜＜ｋより大きい時はいつでも増加される。この状態に応答して（すなわち、現在のデータ値の重要度に応答して）、ｋは最大値の４までインクリメントされる。なお、係数の符号を表す符号ビットは別途伝達されるので、この説明は係数の重要度に関するものである。
【０３９０】
図３６は、上述のエスケープコードを生成する処理を示す概略フローチャートである。当該フローチャートのステップのいくつかは、上述のものと同様であるため、詳細な説明は省略する。
【０３９１】
この方法は、（例えば）周波数変換画像係数のシーケンス又は各データ値の重要度が１減らされた（この場合、重要性マップは１の値から構成されるため、さらなる処理の前に各係数が１減らされるように重要性マップを最初に生成してもよい）当該シーケンスの非ゼロ要素を含む１群のデータ値に関して動作可能である。
【０３９２】
ステップ２０００において、ｋの初期値を設定する。通常のＨＥＶＣシステムにおいて、ｋは最初に０に設定される。ステップ２０１０、２０２０、２０３０、２０４０、２０５０、及び２０６０は図２９〜図３１のフローチャートにおける同様のステップに対応するため、ここでは説明を行わない。なお、図２９〜３１及び図３６において、ＨＥＶＣのいくつかの実行例では、各係数に対してマップの全てを生成する必要はない。例えば、１群の（例えば）１６係数内において、マップが生成されない１つ又は複数の係数が存在してもよい。
【０３９３】
ステップ２０７０において、エスケープコードが必要な場合、上述の技術を用いてｋの現在の値に基づいて生成される。特に、エスケープコードを用いる必要がある係数は、重要性マップ及び任意に１つ又は複数の他のマップを用いて最初に処理される。なお、エスケープ符号化が必要な係数の場合、使用する重要性マップ、２以上マップ、３以上マップのいずれかが「１」としてフラグ化される。これは、エスケープ符号化する必要がある係数は、その係数に関して利用できるどのマップを用いたとしても、当該マップにより符号化できる値より定義上大きいからである。
【０３９４】
現在のデータ値が完全に符号化されなかった場合、エスケープコードが必要となる。ここで、「完全に」符号化された、という言葉は、（当該マップ、又は例えばマップ及び固定ビットによって）既に符号化された値より小さいデータ値がゼロであることを意味する。すなわち、既に生成された要素を考慮して、データ値の残りの量がゼロである場合、データ値は当該要素により完全に符号化される。
【０３９５】
したがって、例の係数に対して、重要性マップ、２以上マップ、３以上マップを利用できると仮定すると、各マップは当該係数に関して「重要」、「２以上」、及び「３以上」としてフラグ化される。
【０３９６】
これは、（本例において）当該係数が少なくとも３でなければならないことを示す。
【０３９７】
したがって、エスケープ符号化の前に、情報を喪失することなく、３の値を係数から減算することができる。３の値（又は、より一般的には、当該係数に適用されるマップによって定義される数字範囲を示す可変基準レベル）は、復号化において元に戻すことができる。
【０３９８】
１０進法における１５（２進法の１１１１）の係数値を例にすると、重要性マップは「１」であり、２以上マップは「１」であり、３以上マップは「１」である。基準レベルの値は３である。基準レベルは係数値から減算され、エスケープ符号化に渡される１０進法の１２（２進法の１１００）の値が提供される。
【０３９９】
ここで、値ｋ（上記参照）は、サフィックスビットの数を定義する。サフィックスビットは、基準レベルの減算後、係数値の最下位ビットから得られる。（例えば）ｋ＝２の場合、残りの値１１００の２つの最下位ビットがサフィックスビットとして処理される。すなわち、本例のサフィックスビットは００である。残りのビット（本例では１１）は、プレフィックスとして処理される。
【０４００】
したがって、まとめると、エスケープコードに関連する処理は、（エスケープコードが必要な場合）係数が少なくとも基準レベルの値を有しなければならないように、当該係数の１つ又は複数の最下位ビットを定義する１つ又は複数のマップを生成することと、当該係数から基準レベルを減算することと、当該係数の残りの部分の最下位ｋビットをサフィックスビットとして符号化することと、当該係数の残りの部分の最上位ビットをプレフィックスとして符号化することとを含む。
【０４０１】
そして、ｋの値を変更する必要がある場合、この変更は、上述のテストにより、ステップ２０８０で実行され、ステップ２０７０の次の動作のためにｋの新たな値が提供される。
【０４０２】
これと同等の効果を固定ビットのユーザ（図３０及び図３１）にもたらすことができるエスケープ符号化技術の変形例は、エスケープコードに用いられるサフィックスビットの数を定義する値ｋにオフセットを適用することである。
【０４０３】
例えば、ＨＥＶＣシステムにおける値ｋは０から４の範囲を有し、出発点の０から最大値４まで（１群の係数に関する）推移する。諸実施形態では、ｋの値にオフセットが追加される。例えば、１群の係数の符号化の過程でｋを変更する従来技術により、ｋを０から４に変更するのではなく、ｋをｐａｒａｍ＿ｏｆｆｓｅｔから４＋ｐａｒａｍ＿ｏｆｆｓｅｔに変更するように、オフセットを３等の値ｐａｒａｍ＿ｏｆｆｓｅｔとして予め定めてもよい。
【０４０４】
値param_offsetは、エンコーダ及びデコーダの間で予め定めることができる。
【０４０５】
あるいは、値param_offsetは、エンコーダ及びデコーダから、例えばストリーム、ピクチャ、スライス、又はブロック（ＴＵ等）ヘッダとして伝達することができる。
【０４０６】
あるいは、値ｐａｒａｍ＿ｏｆｆｓｅｔは、エンコーダ及びデコーダから、（例えば）ビットデプス?１０に対してｐａｒａｍ＿ｏｆｆｓｅｔ＝０、ビットデプス＞１０に対してｐａｒａｍ＿ｏｆｆｓｅｔ＝ビットデプス−１０等、ビデオデータのビットデプスの所定の関数として得ることができる。
【０４０７】
あるいは、値param_offsetはエンコーダ及びデコーダで、係数のブロック又はグループに適用可能な量子化の程度（Ｑｐ）の所定の関数として得ることができる。
【０４０８】
あるいは、値param_offsetは（例えば、所定の方法で）１つ又は複数のどのビデオ要素が符号化されるか、ブロックサイズ、モード（例えば、無損失又は損失の多い）、ピクチャタイプ等によって決めることができる。
【０４０９】
あるいは、値param_offsetはエンコーダ及びデコーダで、所定の出発点、ヘッダ内で伝達できる出発点、又は（例えば）ビットデプスから得られる出発点をとって、所定の適用基準で得ることができる。このような適用処理の例について、図３７を参照して以下に説明する。
【０４１０】
あるいは、複数の基準を適用してもよい。特に、値param_offsetが（ブロックサイズ）他のパラメータに依存し、図３７に示すように適用可能に変更される場合、適用可能な変更は、param_offsetの各可能値に対して個別に（すなわち、各ブロックサイズに対して個別に）適用することができる。
【０４１１】
なお、これら依存関係のいずれか又は全てを図３０及び図３１の構成において用いられる固定ビットの数に関して適用することができる。
【０４１２】
この変更例の技術と上述の固定ビットの技術を図３０及び図３１に関して比較すると、（ａ）図３０及び図３１の固定ビット技術において、いずれかのマップの生成前に、係数がより上位の部分とより下位の部分に分割され、その後、より上位の部分から１つ又は複数のマップが生成され、より下位の部分は直接符号化される（そうでなければ、上述のように処理される）が、（ｂ）param_offsetを用いたエスケープ符号の生成において、１つ又は複数のマップが最初に生成され、その後、残りの部分の係数値（基準レベルを減算した値）がサフィックス又はプリフィックスのどちらかとして処理されることがわかる。サフィックスとプレフィックスとの境界は k + param_offsetによって決まり、サフィックスは残りの部分の最下位ビットを表す。
【０４１３】
いずれかの例において、固定ビット符号化に関連するパラメータ、又は値param_offsetは、適用可能な方法により変更することができる。ここで、これを実現する方法の例について、図３７を参照して説明する。上述の説明から、図３７において、（図３７において「ＮＦＢ」と称され、図３０及び図３１のステップ１６２５及び１７２５で得られる最下位部分のビットの数を指す）固定ビットの数又は（図３７では「オフセット」と省略して表される）値param_offsetのどちらかに対して同様の技術を適用することができる。
【０４１４】
以下に説明する構成例において、オフセット又はＮＦＢ値の適用は、スライス毎に行われると仮定される。なお、スライスはシステムのＨＥＶＣファミリー内において１つのＬＣＵからピクチャ全体までのあらゆるものとして定義することができる。しかしながら、スライスの基本的な特徴は、個々のスライスを他のスライスを参照することなく復号化できるように、符号化が他のスライスに適用される符号化と無関係であることである。しかしながら、この適用をブロック毎又はピクチャ毎に実施できるのは勿論である。
【０４１５】
なお、図３７の処理はエンコーダで実行され、また、オフセット／ＮＦＢ変数の値がエンコーダとデコーダの間で等しく追跡できるように、補足復号化方式によりデコーダで実行される。
【０４１６】
ステップ２１００において、スライスの処理が開始される。
【０４１７】
ステップ２１１０において、オフセット／ＮＦＢ値がリセットされる。この処理には、当該値を０等の固定値にリセットすることが含まれる。変形例の構成において、当該値は１つ又は複数の前のスライスに関するオフセット／ＮＦＢ変数の最終値から得られる初期値にリセットすることができる。この場合、各スライスを独立して復号化する能力を維持するために、本発明の諸実施形態によれば、スライスヘッダにおけるオフセット／ＮＦＢ変数の初期値の通知が提供される。なお、このような初期値を取得するための様々な技術を利用することができる。例えば、オフセット／ＮＦＢ変数の初期値は、前のスライスに対する変数の最終値が２を超えなかった場合、０に設定することができ、その他の場合、１に設定することができる。同様の構成を先行のピクチャに関するすべてのスライスから得られた変数の最終値の平均に適用することができる。当業者であれば、他の様々な可能性を利用できることを理解するであろう。勿論、所定の初期値を用いる場合、エンコーダ及びデコーダに適用可能な一般定義によって予めどちらかに同意しておくこともできる。あるいは、所定の初期値をストリーム又はピクチャヘッダに規定することもできる。
【０４１８】
ヘッダデータに関して、図３７の適用処理がストリーム、ピクチャ、又はスライスに関して実行されるか否かを示すために、当該ストリーム、ピクチャ、又はスライスヘッダ内にフラグを含めてもよい。
【０４１９】
ステップ２１２０において、第１の変換ユニット（ＴＵ）の処理を開始する。スライスの処理は、上述のように、ＴＵ上でＴＵ毎に実行される。
【０４２０】
ステップ２１３０において、さらに３つの変数を今回は０にリセットする。これら変数はアンダー、オーバー、及びトータルと称される。これら変数の目的について以下に説明する。
【０４２１】
ＴＵ内において、各係数を順々に符号化する。ステップ２１４０において、次の係数を符号化する。係数の符号化は、図３０／３１のフローチャート又は図３６のフローチャートに続いて実施してもよい。各例において、当該処理のステージで利用できるオフセット又はＮＦＢ値を利用する。勿論、符号化される最初の係数に対して、オフセット／ＮＦＢ値はステップ２１１０で設定されたものと等しい。後ろの係数に対しては、オフセット／ＮＦＢの現在の値を用いる。
【０４２２】
ステップ２１４０の符号化の結果に関して、テストを適用する。テストの結果によって、処理はステップ２１５０、２１６０、又は２１７０に進み、あるいは、直接ステップ２１８０に進む。まず、当該テストについて説明する。なお、当該テストは図３０／３１の固定ビットシステム又は図３７及び付随して説明したparam_offsetシステムが用いられるか否かによってわずかに異なる。
【０４２３】
固定ビットテスト
固定ビットストリームの場合、一連の固定ビットが符号化される時はいつでも（ステップ１６５５又はステップ１７５５を実行するときはいつでも）変数「トータル」がインクリメントされる。これにより、変数が最後にリセットされ、固定ビットが符号化された時から、変数「トータル」は機会の数を指す。
【０４２４】
このテストにより、ｒｅｍａｉｎｉｎｇ＿ｍａｇｎｉｔｕｄｅ＝（ｍａｇｎｉｔｕｄｅ−１）＞＞ＮＦＢとなるように、固定ビットとして符号化されない変数の重要度の一部として定義される変数ｒｅｍａｉｎｉｎｇ＿ｍａｇｎｉｔｕｄｅが得られる。
【０４２５】
他の値である基準レベルが（上述のように）エスケープコートを用いずに表現できる最大の重要度として定義される。ここで、特定の係数は、１つ、２つ、若しくは３つのフラグ、又は当該係数に関して符号化されたマップエントリを有してもよい。したがって、係数が３以上フラグを有していた場合、基準レベルは３であり、係数が２以上フラグを有していた場合、基準レベルは２であり、その他の場合、基準レベルは１である。
【０４２６】
その後、値ｒｅｍａｉｎｉｎｇ＿ｍａｇｎｉｔｕｄｅを基準レベルに対してテストする。
【０４２７】
（（ｒｅｍａｉｎｉｎｇ＿ｍａｇｎｉｔｕｄｅ＞＞１）?基準レベル）の場合、変数「アンダー」をインクリメントする。図３７において、これはステップ２１５０に該当する。このステップの基礎にある意味は、固定ビット（ＮＦＢ）の数が現在の係数を符号化するのに十分でないようないわゆるアンダーシュートが検出されたことである。テストにおける右シフト（＞＞１）の重要性は、変数ＮＦＢが２ビット以上不十分である場合、当該アンダーシュートが注目すべきアンダーシュートしてのみフラグ化されることである。
【０４２８】
同様に、（（ＮＦＢ＞０）ＡＮＤ（（ｒｅｍａｉｎｉｎｇ＿ｍａｇｎｉｔｕｄｅ＜＜１）?０））である場合、変数「オーバー」をインクリメントする。図３７において、これはステップ２１６０に該当する。このステップの基礎にある意味は、たとえ１ビット少ない固定ビット（上記の式における<<1シフトで検出される）で固定ビット要素が当該係数の全体の重要度を符号化できたとしても、オーバーシュートが検出されることである。言い換えれば、固定ビットの数は当該係数を符号化するのに必要な数を著しく超えている。
【０４２９】
これらテストで使用される様々なパラメータ、特に適用されるビットシフトの数は、当業者の設計技能に従って変更できることが理解されよう。
【０４３０】
アンダーシュートテストもオーバーシュートテストも実行されないが固定ビットが符号化される場合、処理はステップ２１７０に移り、変数トータルのみがインクリメントされる。
【０４３１】
完全を期すために、処理は直接、固定ビット動作が可能でない図３７のステップ２１８０に移り、変数アンダー、オーバー、及びトータルのいずれも変化しない。
【０４３２】
Ｐａｒａｍ＿Ｏｆｆｓｅｔテスト
param_offsetに基づくシステムの場合、基本的な原理は同様であるが、詳細が上述のものとわずかに異なる。
【０４３３】
エスケープ値を符号化するときはいつでも、変数「トータル」をインクリメントする。
【０４３４】
上述のようにオフセットparam_offsetの効果を考慮するように定義されるパラメータｋに対して係数値をテストする。
【０４３５】
(係数>(3<<k))の場合、変数「アンダー」をインクリメントする。これは、図３７のステップ２１５０に該当し、上述のアンダーシュート状態を示す。言い換えれば、param_offsetを考慮して、変数ｋはエスケープコードをサフィックスとして符号化するのに不十分であった。
【０４３６】
そうでなければ、((係数*3)< (1<<k))の場合、変数「オーバー」をインクリメントする。これは、図３７のステップ２１６０に該当する。これは、param_offsetを考慮して、変数ｋがエスケープコードを符号化するのに必要なサフィックスビットをさらに提供したオーバーシュート状態を表す。
【０４３７】
アンダーシュートテストもオーバーシュートテストも実行されないがエスケープコードを符号化する場合、処理はステップ２１７０に移り、変数トータルのみがインクリメントされる。
【０４３８】
なお、処理は直接、エスケープコードが符号化されない図３７のステップ２１８０に移り、変数アンダー、オーバー、及びトータルのいずれも変化しない
【０４３９】
なお、いずれかの一連のテストにおいて、ＮＦＢ又はｐａｒａｍ＿ｏｆｆｓｅｔがより高い又は低い場合、アンダーシュート又はオーバーシュートが発生するか否かを確認することにより、アンダーシュート又はオーバーシュートが重要であるか否かを確認する。しかしながら、この追加マージンは必要ない。これらテストは、単に「アンダー（オーバー）シュートが発生した？」とすることができる。
【０４４０】
ステップ２１８０において、ＴＵ内で符号化のために利用できる他の係数がある場合、処理はステップ２１４０に戻る。そうでなければ、処理は各ＴＵの末端であるが、次のＴＵが符号化される前に実行されるステップ２１９０に移る。このステップ２１９０において、変数オフセット／ＮＦＢを、変数アンダー、オーバー、及びトータルに従って適用可能に変更する可能性がある。ここで、同様の適用が、（（アンダー＊４）＞トータルの場合、オフセット／ＮＦＢ値を（１）インクリメントし、（（オーバー＊２）＞トータルの場合、オフセット／ＮＦＢ値を最小値を０として（１）デクリメントするように、オフセット値及びＮＦＢ値のどちらかに適用される。
【０４４１】
なお、両テストが単一のＴＵに関して実行される場合、ＮＦＢ又はｐａｒａｍ＿ｏｆｆｓｅｔの値は同じままである。
【０４４２】
なお、スライス及びＴＵによる分割は必須ではない。値のどのグループ（ビデオデータ値でなくてもよい）も同様に処理することができ、本明細書におけるＴＵ分割の代わりに、サブセットに再分割することができる。
【０４４３】
これは、２５％を超えるアンダーシュートを経験する場合、オフセット／ＮＦＢのインクリメントに、５０％を超えるオーバーシューｔ−の場合オフセット／ＮＦＢ値のデクリメントに等しい。したがって、アンダーシュートのテストに用いられる比率は、オーバーシュートのテストに用いられる比率よりも低い。この非対称性の理由は、アンダーシュートの場合に用いられるエスケープ符号化法の機能により、アンダーシュートがオーバーシュートよりも非効率なことである。しかしながら、同一の閾値を使用でき、あるいは、異なる値を使用できることが理解されよう。
【０４４４】
最後に、ステップ２２００において、スライスにおいて他のＴＵがある場合、処理はステップ２１２０に戻る。スライス内に他のＴＵがない場合、処理はステップ２１００に戻る。なお、上述のように、オフセット／ＮＦＢにたいする出発点は、終了したばかりの符号化処理の間に得られた結果に基づいて、（次のスライス又はその後のスライスのために、ステップ２１２０の次の過程で使用するために）任意に設定することができる。
【０４４５】
デコーダ側（又はエンコーダの復号化経路）で補足ステップを実行する。例えば、復号化方法には、所定の重要度の範囲の第１の部分を示し、バイナリ符号化により入力データストリームに符号化される１つ又は複数のデータセットから各データ値の第１の部分を復号化し、少なくともデータセットにより完全には符号化されなかったこれらデータ値の、ビット数が整数である値nに依存する第２の部分、及び入力データストリームに含まれる第２の部分を定義するデータを復号化し、データ値が各第１及び第２の部分により完全には復号化されなかった場合、入力データストリームからデータ値の残りの第３の部分を復号化し、２以上のデータ値のサブセットに対して、(i)第３の部分が符号化され、高い値のnが使用された場合に依然として必要とされるデータ値のインスタンスの数及び(ii)第２の部分が符号化されるがnの値はデータ値が低い値のnを用いて第１及び第２の部分によって完全に符号化される値であるデータ値のインスタンスの数を検出し、データ値のサブセットを復号化した後、当該検出の結果に従って次のデータ値に関して使用するためにnを変化させることが含まれる。
【０４４６】
上述のステップは、（符号化処理の場合）エントロピーエンコーダ３７０及びエントロピーデコーダ４１０により、又は（復号化処理の場合）エントロピーピーデコーダ４１０のみにより実行することができる。この処理は、ハードウェア、ソフトウェア、プログラム可能なハードウェア等により実行されてもよい。なお、エントロピーエンコーダ３７０はエンコーダ、生成部、検出部、及び符号化技術を実行するためのプロセッサとして動作することができる。エントロピーデコーダ４１０は、１つ又は複数のデコーダ、及び上述の復号化技術を実行するためのプロセッサとして動作することができる。
【０４４７】
したがって、上述の構成は、１群（例えば、スライス）のデータ値（例えば、画像データ）を復号化するデータ復号化方法の例を表す。当該方法は、所定の重要度の範囲の第１の部分を示し、バイナリ符号化により入力データストリームに符号化される１つ又は複数のデータセット（例えば、マップ）から各データ値の第１の部分を復号化し、少なくともデータセットにより完全には符号化されなかったこれらデータ値の、ビット数が整数である値nに依存する第２の部分、及び入力データストリームに含まれる第２の部分を定義するデータを復号化し、データ値が各第１及び第２の部分により完全には復号化されなかった場合、入力データストリームからデータ値の残りの第３の部分を復号化し（ここで、例えば、第２の部分は固定ビット又はサフィックス部分表してもよく、値nは（ゴロムライス符号化におけるお）固定ビットの数若しくはサフィックス長、又は上述の指数ゴロム符号化の次数を表すことができ、第３の部分は、ゴロムライス又は指数ゴロムシステムにおけるプレフィックス又は固定ビットの例におけるエスケープコードを表すことができる）、２以上のデータ値のサブセットに対して、(i)第３の部分が符号化され、高い値のnが使用された場合に依然として必要とされるデータ値のインスタンスの数（例えば、変数「アンダー」）及び(ii)第２の部分が符号化されるがnの値はデータ値が低い値のnを用いて第１及び第２の部分によって完全に符号化される値であるデータ値のインスタンスの数（例えば、変数「アンダー」）を検出し、データ値のサブセットを復号化した後、当該検出の結果に従って次のデータ値に関して使用するためにnを変化（例えば、インクリメント又はデクリメント）させることを含む。
【０４４８】
変数「トータル」は、第２の部分が符号化されたデータ値のサブセットに関して検出されたインスタンスの総数の例を表す。
【０４４９】
上記実施形態は、データ値の配列をデータセット及びデータセットにより符号化されない値に対するα符号化部分と非α符号化部分とを含むエスケープコードとして符号化するデータ符号化方法の例も表す。当該データ符号化方法は、（ゴロムライス又は指数ゴロムにおける；ｋは最小サフィックス長又は次数を示す）非α符号化部分のビットの最小数を定義する０から所定の上限値までの範囲の符号化パラメータ（例えば、param_offset）を設定し、最下位データ部分サイズの最小値を定義するように１以上のオフセット値（本例ではparam_offset）を符号化パラメータに追加し、各データ値の少なくとも１つの最下位ビットの値を符号化するようにデータ値の配列に関する所定の重要度の範囲のデータ値の位置を示す１つ又は複数のデータセット（例えば、重要性マップ、２以上マップ、３以上マップ）を生成し、値の最上位データ部分がゼロ又は当該部分の最上位部分を表し、各最下位データ部分が最小の最下位データ部分サイズ以上の当該部分の最下位ビットの数によって決まるように、少なくとも１つ又は複数のデータセットで符号化されない各データ値の部分から、補足の最上位データ部分及び最下位データ部分をそれぞれ生成し、データセットを出力データストリームに（例えば、バイナリ符号化データとして）符号化し、最上位データ部分を出力データストリームに（例えば、プレフィックスとして）符号化し、最下位部分を出力データストリームに（例えば、サフィックスとして）符号化することを含む。
【０４５０】
なお、（いくつかの実施形態において）上記処理は、（処理を行う）データ値が各入力値から、入力値の配列に関連する非ゼロ入力値の位置を示す重要性マップである別のデータセットを生成し、各入力値から１を減算して各データ値を生成することで生成されるように、重要性マップの生成後に実行することができる。
【０４５１】
図３８及び図３９は、変換ダイナミックレンジ及びデータ精度パラメータを選択する処理を概略的に示すフローチャートである。
【０４５２】
図３８を参照して、上述のように、ステップ２４００で最大ダイナミックレンジ及び／又は変換行列のデータ精度等のパラメータが各画像又はビデオ要素のビットデプスに従って選択される。ステップ２４１０において、異なるビットデプスの画像又はビデオ要素を有する入力画像又は出力画像に対して、全ての画像又はビデオ要素で使用するための１組の最大ダイナミックレンジ及び／又は変換行列のデータ精度が選択される。
【０４５３】
図３９を参照して、ステップ２４２０はステップ２４１０と同様であるが、１組の最大ダイナミックレンジ及び／又は変換行列のデータ精度が最大ビットデプスを有する画像又はビデオ要素の１つに関する値として選択されるという特徴をさらに有する。
【０４５４】
本発明の実施形態は、周波数変換入力画像係数の配列に依存する入力データ値のシーケンスに関して動作してもよい。
【０４５５】
上述の実施形態は、以下の番号付けされた項によって定義される。
【０４５６】
１．データ値のシーケンスを符号化する方法であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残りの最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力データ値からそれぞれ生成し、
所定の重要度の最上位データ部分の上記値の配列に関連する位置を示す１つ又は複数のデータセットを生成し、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに低重要位置を定義するデータを含める
符号化方法。
２．上記１に記載の符号化方法であって、
上記データセットの１つは、非ゼロである最上位データ部分のデータ値に関連する位置を示す重要性マップである
符号化方法。
３．上記２に記載の符号化方法であって、
上記重要性マップは、値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位データ部分の位置を示すデータフラグを含む
符号化方法。
４．上記２又は３に記載の符号化方法であって、
上記データセットは、２以上の最上位データ部分の値の配列に関連する位置を示す２以上マップと、３以上の最上位データ部分の値の配列に関連する位置を示す３以上マップとを含む
符号化方法。
５．上記１に記載の符号化方法であって、
上記データセットは、１以上の最上位データ部分の値の配列に関連する位置を示す２以上マップと、２以上の最上位データ部分の値の配列に関連する位置を示す３以上マップとを含む
符号化方法。
６．上記５に記載の符号化方法であって、
非ゼロ値の値に関連する位置を示す重要性マップである他のデータセットを生成することをさらに含む
符号化方法。
７．上記６に記載の符号化方法であって、
上記重要性マップは、値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位データ部分の位置を示すデータフラグを含む
符号化方法。
８．上記１〜７のいずれか１つに記載の符号化方法であって、
上記出力データストリームに低重要位置を定義するデータを含めることは、上記最下位データ部分を表すシンボルがコード値範囲の比率に従って符号化される算術符号化により、上記最下位データ部分を符号化することを含み、
上記最下位データ部分を表す上記各シンボルに対する上記コード値範囲の上記比率はそれぞれ等しいサイズである
符号化方法。
９．上記１〜７のいずれか１つに記載の符号化方法であって、
上記出力データストリームに低重要位置を定義するデータを含めることは、上記出力データストリーム内に上記最下位データ部分をＲＡＷデータとして直接含めることを含む
符号化方法。
１０．上記１〜９のいずれか１つに記載の符号化方法であって、
上記データ値のシーケンスは、画像データビットデプスを有する画像データを表し、
上記符号化方法は、さらに、各最上位データ部分における上記複数の最上位ビットとして使用するビットの数を上記画像データビットデプスと等しくなるように設定することを含む
符号化方法。
１１．上記１〜１０のいずれか１つに記載の符号化方法であって、
上記データ値のシーケンスは、周波数変換画像係数のシーケンスを含む
符号化方法。
１２．上記１１に記載の符号化方法であって、
上記周波数変換入力画像係数は、利用可能な様々な量子化パラメータから選択された変数量子化パラメータに従って量子化された周波数変換入力画像係数であり、
上記符号化方法は、さらに、上記利用可能な量子化パラメータの範囲の第１の所定のサブレンジにおける量子化パラメータを用いて生成された係数に対して、上記最上位データ部分及び上記最下位データ部分に従って上記周波数変換入力画像係数の配列を符号化し、
上記利用可能な量子化パラメータの範囲の上記第１の所定のサブレンジにない量子化パラメータを用いて生成された係数に対して、各最上位データ部分におけるビットの数が当該係数のビットの数と等しくなり、各最下位データ部分がビットを含まないように上記周波数変換入力画像係数の配列を符号化することを含む
符号化方法。
１３．上記１２に記載の符号化方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択する
符号化方法。
１４．上記１３に記載の符号化方法であって、
上記選択は、
上記変換行列の上記データ精度を上記入力画像データの上記ビットデプスよりも小さい第１のビットオフセット数に設定することと、
上記変換データの上記最大ダイナミックレンジを上記入力画像データの上記ビットデプスよりも大きい第２のビットオフセット数に設定することとを含む
符号化方法。
１５．上記１４に記載の符号化方法であって、
上記第１のビットオフセット数は２に等しく、上記第２のビットオフセット数は５に等しい
符号化方法。
１６．上記１３〜１５のいずれか１つに記載の符号化方法であって、
ソース変換行列から、それぞれ異なる必要とされるデータ精度で変換行列を得ることをさらに含む
符号化方法。
１７．上記１〜１６のいずれか１つに記載の符号化方法であって、
上記符号化は、
範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの１つを符号化のためのデータセットの現在の入力データ値に従って選択することと、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当てることと、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記一連のコード値を修正することと、
上記一連のコード値を定義する上記範囲変数が、所定の最小サイズより小さいか否かを検出し、小さい場合、上記一連のコード値が少なくとも上記所定の最小サイズとなるまで上記範囲変数を連続的に増加させ、そのようなサイズ増加動作に応答して符号化データビットを出力することと、
１群の入力データ値を符号化した後、ゼロに等しい少なくとも１つの最下位ビットを含む利用可能な範囲変数値の所定のサブセットから選択された値に上記範囲変数を設定することと
を含む
符号化方法。
１８．上記１７に記載の符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付けられたコンテキスト変数によって定義される
符号化方法。
１９．上記１８に記載の符号化方法であって、
データ値の符号化に続いて、上記現在のデータ値のために選択された上記サブレンジにおける上記一連のコード値の比率を増加させるように、次の入力データ値に関して使用するために上記コンテキスト変数を修正することを含む
符号化方法。
２０．上記１７〜１９のいずれか１つに記載の符号化方法であって、
上記一連のコード値は、０から上限値までの範囲にある値を含み、上記上限値は、上記範囲変数で定義され２５６から５１０までの範囲にある
符号化方法。
２１．上記２０に記載の符号化方法であって、
上記範囲変数の利用可能な値のサブセットは、２５６の値を有する
符号化方法。
２２．上記２０に記載の符号化方法であって、
上記利用可能な値のサブセットは、２５６と３８４の組を含み、
上記範囲変数の設定は、上記サブセットから上記範囲変数の現在の値に従って値を選択し、上記範囲変数の現在の値が２５６から３８３までの範囲にある場合、上記範囲変数を２５６に設定し、上記範囲変数の現在の値が３８４から５１０までの範囲にある場合、上記範囲変数を３８４に設定することを含む。
符号化方法。
２３．上記２０に記載の符号化方法であって、
上記利用できる値のサブセットは、２５６，３２０，３８４、及び４４８の組を含み、
上記範囲変数の設定は、上記範囲変数の現在の値に従って上記サブセットから値を選択し、上記範囲変数の現在の値が２５６から３１９までの範囲にある場合、上記範囲変数を２５６に設定し、上記範囲変数の現在の値が３２０から３８３までの範囲にある場合、上記範囲変数を３２０に設定し、上記範囲変数の現在の値が３８４から４４７までの範囲にある場合、上記範囲変数を３８４に設定し、上記範囲変数の現在の値が４４８から５１０までの範囲にある場合、上記範囲変数を４４８に設定することを含む
符号化方法。
２４．上記１７〜２３のいずれか１つに記載の符号化方法であって、
データセットにおいてバイパスデータとして表されない値を示すデータを符号化し、
現在の配列と関連付けられたバイパスデータの量を検出し、
上記バイパスデータの量が閾値を超える場合、上記設定を適用し、それ以外の場合、上記設定を適用しない
符号化方法。
２５．上記１７〜２４のいずれか１つに記載の符号化方法であって、
上記データは、データ値の複数の配列を含む変換ユニットとして符号化され、
上記符号化方法はさらに、変換ユニットの符号化の終了時に、上記設定を適用することを含む
符号化方法。
２６．画像データを符号化する方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択する
符号化方法。
２７．上記１〜２６のいずれか１つに記載の符号化方法により符号化された画像データ。
２８．上記２７に記載のビデオデータを記憶するデータキャリア。
２９．データ値の配列を提供するためのデータを復号化するデータ復号化方法であって、
入力データストリームから上記データ値の最下位データ部分及び１つ又は複数の符号化データセットを分離し、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分を生成し、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が当該データの残りの最下位ビットを表すように、上記データ値を生成する
データ復号化方法。
３０．画像データ復号化方法であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成し、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択する
３１．コンピュータによって実行される際に、上記コンピュータに上記１〜３０のいずれか１つに記載の方法を実行させるコンピュータソフトウェア。
３２．上記３１に記載のコンピュータソフトウェアが記憶された非一時的な機械可読記憶媒体。
３３．データ値のシーケンスを符号化するデータ符号化装置であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残りの最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力データ値からそれぞれ生成し、所定の重要度の最上位データ部分の上記値の配列に関連する位置を示す１つ又は複数のデータセットを生成するように構成された生成部と、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、上記出力データストリームに低重要位置を定義するデータを含めるエンコーダと
を具備するデータ符号化装置。
３４．画像データを符号化するデータ符号化装置であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成するように構成された周波数変換部と、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択するように構成された選択部と
を具備するデータ符号化装置。
３５．データを復号化してデータ値の配列を提供するデータ復号化装置であって、
入力データストリームから、データ値の最下位データ部分及び１つ又は複数の符号化データセットを分離するように構成されたデータ分離部と、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分を生成するように構成されたデコーダと、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が当該データの残りの最下位ビットを表すように、上記データ値を生成するように構成された結合部と
を具備するデータ復号化装置。
３６．画像データ復号化装置であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成するように構成された周波数変換部と、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択するように構成された選択部と
を具備する画像データ復号化装置。
３７．上記３３〜３６のいずれか１つに記載の装置を具備するビデオデータキャプチャ・送信・表示及び／又は記憶装置。
【０４５７】
他の実施形態は、以下の番号付けされた項によって定義される。
【０４５８】
１．  符号化のためのデータセットの入力データ値のデータ符号化方法であって、
現在の入力データ値に従って、範囲変数により定義される一連のコード値の複数の補足サブレンジのうちの１つを選択し、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当て、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記一連のコード値を修正し、
上記一連のコード値を定義する上記範囲変数が所定の最小サイズより小さいか否かを検出し、上記範囲変数が上記所定の最小サイズより小さい場合、上記一連のコード値が少なくとも上記所定の最小サイズになるまで上記範囲変数を連続的に増加させ、当該サイズ増加動作に応じて、符号化データビットを出力し、
１群の入力データ値を符号化した後、上記範囲変数をゼロに等しい少なくとも１つの最下位ビットを有する所定の利用可能な範囲変数値のサブセットから選択された値に設定する
データ符号化方法。
２．上記１に記載のデータ符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付けられたコンテキスト変数により定義される
データ符号化方法。
３．上記２に記載のデータ符号化方法であって、
入力データ値を符号化した後、次の入力データ値に関して使用するために、上記現在の入力データ値のために選択された上記サブレンジ内の上記一連のコード値の比率を増加させるように上記コンテキスト変数を修正する
データ符号化方法。
４．上記１〜３のいずれか１つに記載のデータ符号化方法であって、
上記一連のコード値は、０から上限値までの範囲の値を含み、
上記上限値は、上記範囲変数で定義され、上記所定の最小サイズから第２の所定値までの範囲にある
データ符号化方法。
５．上記４に記載のデータ符号化方法であって、
上記所定の最小サイズは２５６であり、上記第２の所定値は５１０である
データ符号化方法。
６．上記１〜５のいずれか１つに記載のデータ符号化方法であって、
上記利用可能な範囲変数値のサブセットは、上記所定の最小サイズを含む
データ符号化方法。
７．上記１〜５のいずれか１つに記載のデータ符号化方法であって、
上記サブセットは、上記所定の最小サイズから上記第２の所定値までの範囲にある２つ以上の値を含む
データ符号化方法。
８．上記７に記載のデータ符号化方法であって、
上記設定は、上記範囲変数の現在の値に従って、上記サブセットから１つの値を選択することを含む
データ符号化方法。
９．上記７に記載のデータ符号化方法であって、
上記設定は、上記範囲変数の上記現在の値が特定の値から上記サブセット内の次に高い値より１低い値までの範囲にある場合、上記サブセットから上記特定の値を選択することを含む
データ符号化方法。
１０．上記１〜９のいずれか１つに記載のデータ符号化方法であって、
データセット内で表されない係数を表すデータをバイパスデータとして符号化し、
現在の配列と関連付けられた上記バイパスデータの量を検出し、
上記バイパスデータの量が閾値を超えた場合、上記設定を適用するが、上記バイパスデータの量が上記閾値以下である場合、上記設定を適用しない
データ符号化方法。
１１．上記１〜１０のいずれか１つに記載のデータ符号化方法であって、
上記入力データ値は、画像データを表し、
上記画像データは、係数の複数の配列を含む変換ユニットとして符号化され、
上記変換ユニットの符号化の終了時に、上記設定を適用する
データ符号化方法。
１２．上記１〜１１のいずれか１つに記載のデータ符号化方法によって符号化されるデータ。
１３．上記１２に記載のビデオデータを記憶するデータキャリア。
１４．符号化のためのデータセットの入力データ値を符号化するデータ符号化装置であって、
現在の入力データ値に従って範囲変数で定義される一連のコード値の複数の補足サブレンジのうちの１つを選択し、上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当てるように構成された選択部と、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて、上記一連のコード値を修正するように構成された修正部と、
上記一連のコード値を定義する上記範囲変数が所定の最小サイズより小さいか否かを検出し、小さい場合、上記一連のコード値のサイズが少なくとも当該所定の最小サイズとなるまで上記範囲変数を連続的に増加させるように構成され、各サイズ増加動作に応答して符号化データビットを出力する検出部と、
１群の入力データ値を符号化した後、上記範囲変数をゼロに等しい少なくとも１つの最下位ビットを有する利用可能な範囲変数値の所定のサブセットから選択された値に設定するように構成された範囲変数設定部と
を具備するデータ符号化装置。
１５．上記１４に記載のデータ符号化装置を含む、ビデオデータキャプチャ・送信及び又は記憶装置。
【０４５９】
他の実施形態は、以下の番号付けされた項によって定義される。
【０４６０】
データ値の配列を符号化するデータ符号化方法であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が当該値の残りの最下位ビットによって決まるように、補足の最上位データ部分及び最下位データ部分を上記入力データ値からそれぞれ生成し、
所定の重要度範囲の最上位データ部分の上記値の配列に関連する位置を示す１つ又は複数のデータセットを生成し、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに上記最下位データ部分を定義するデータを含める
データ符号化方法。
２．上記１に記載のデータ符号化方法であって、
上記データセットの１つは、データ値の配列に関連する非ゼロである最上位データ部分の位置を示す重要性マップである
データ符号化方法。
３．上記２に記載のデータ符号化方法であって、
上記重要性マップは、データ値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位データ部分の位置を示すデータフラグを含む
データ符号化方法。
４．上記２又は３に記載のデータ符号化方法であって、
上記データセットは、
２以上の最上位データ部分のデータ値の配列に関連する位置を示す２以上マップと、
３以上の最上位データ部分のデータ値の配列に関連する位置を示す３以上マップと
を含む
データ符号化方法。
５．上記１に記載のデータ符号化方法であって、
上記データセットは、
１以上の最上位データ部分の値の配列に関連する位置を示す２以上マップと、
２以上の最上位データ部分の値の配列に関連する位置を示す３以上マップとを含む
データ符号化方法。
６．上記５に記載のデータ符号化方法であって、
入力値の配列に関連する非ゼロ入力値の位置を示す重要性マップである他のデータセットを生成し、
各入力値から１を減算して各データ値を生成する
ことによって、各入力値からデータ値を生成する
データ符号化方法。
７．上記５又は６に記載のデータ符号化方法であって、
上記重要性マップは、上記入力値の配列の所定の順番に従って、非ゼロ値を有する最後の入力値の位置を示すデータフラグを含む
データ符号化方法。
８．上記１〜７のいずれか１つに記載のデータ符号化方法であって、
上記出力データストリームに上記最下位データ部分を定義するデータを含めることは、上記最下位データ部分を表すシンボルがコード値範囲の比率に従って符号化される算術符号化により、上記最下位データ部分を符号化することを含み、
上記最下位データ部分を表す各シンボルに対する上記コード値範囲の比率はそれぞれ等しいサイズである
データ符号化方法。
９．上記１〜８のいずれか１つに記載のデータ符号化方法であって、
上記出力データストリームに上記最下位データ部分を定義するデータを含めることは、上記出力データストリーム内に上記最下位データ部分をＲＡＷデータとして直接含めることを含む
データ符号化方法。
１０．上記１〜９のいずれか１つに記載のデータ符号化方法であって、
上記データ値のシーケンスは、画像データビットデプスを有する画像データを表し、
上記データ符号化方法は、さらに、各最上位データ部分における上記複数の最上位ビットとして使用するビットの数を上記画像データビットデプスと等しくなるように設定することを含む
データ符号化方法。
１１．上記１〜１０のいずれか１つに記載のデータ符号化方法であって、
上記データ値のシーケンスは、周波数変換画像係数のシーケンスを表す
データ符号化方法。
１２．上記１１に記載のデータ符号化方法であって、
上記周波数変換入力画像係数は、利用可能な様々な量子化パラメータから選択された変数量子化パラメータに従って量子化された周波数変換入力画像係数であり、
上記データ符号化方法は、さらに、上記利用可能な様々な量子化パラメータの第１の所定のサブレンジにおける量子化パラメータを用いて生成された係数に対して、上記最上位データ部分及び上記最下位データ部分に従って上記周波数変換入力画像係数の配列を符号化し、上記利用可能な様々な量子化パラメータの上記第１の所定のサブレンジにない量子化パラメータを用いて生成された係数に対して、各最上位データ部分におけるビットの数が当該係数のビットの数と等しくなり、各最下位データ部分がビットを含まないように上記周波数変換入力画像係数の配列を符号化することを含む
データ符号化方法。
１３．上記１１に記載のデータ符号化方法であって、
入力画像データを周波数変換して、上記変換されたデータの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて、行列乗算処理により周波数変換入力画像係数の配列を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択する
データ符号化方法。
１４．上記１３に記載のデータ符号化方法であって、
上記選択は、
上記変換行列のデータ精度を上記入力画像データの上記ビットデプスよりも小さい第１のビットオフセット数に設定することと、
上記変換されたデータの最大ダイナミックレンジを上記入力画像データの上記ビットデプスよりも大きい第２のビットオフセット数に設定することとを含む
データ符号化方法。
１５．上記１４に記載のデータ符号化方法であって、
上記第１のビットオフセット数は２に等しく、上記第２のビットオフセット数は５に等しい
データ符号化方法。
１６．上記１４に記載のデータ符号化方法であって、
上記第１のビットオフセット数は２に等しく、上記第２のビットオフセット数は６に等しい
データ符号化方法。
１７．上記１４に記載のデータ符号化方法であって、
上記第２のビットオフセット数は上記変換行列の行列サイズに依存する
データ符号化方法。
１８．上記１３〜１７のいずれか１つに記載のデータ符号化方法であって、
各ソース変換行列からそれぞれ異なる必要なデータ精度で変換行列を得る
データ符号化方法。
１９．データ値の配列をデータセット及び上記データセットで符号化されない値に対するα符号化部分と非α符号化部分とを含むエスケープコードとして符号化するデータ符号化方法であって、
非α符号化部分のビットの最小数を定義する、０から所定の上限値までの範囲にある符号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、上記符号化パラメータに１以上のオフセット値を追加し、
各データ値の少なくとも１つの最下位ビットの値を符号化するように、データ値の配列に関連する所定の重要度範囲のデータ値の位置を示す１つ又は複数のデータセットを生成し、
少なくとも上記１つ又は複数のデータセットによって符号化されない各データ値の部分から、値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、最下位データ部分が上記最下位データ部分サイズ以上の当該部分の最下位ビットの数を表すように、補足の最上位データ部分及び最下位データ部分を生成し、
上記データセットを出力データストリームに符号化し、
上記最上位データ部分を上記出力データストリームに符号化し、
上記最下位データ部分を上記出力データストリームに符号化する
データ符号化方法。
２０．  上記１９に記載のデータ符号化方法であって、
上記最上位データ部分の上記出力データストリームにおける符号化は、上記最上位データ部分をα符号により上記出力データストリームに符号化することを含み、
上記最下位データ部分の上記出力データストリームにおける符号化は、上記最下位データ部分を非α符号により上記出力データストリームに符号化することを含む
データ符号化方法。
２１．上記１９又は２０に記載のデータ符号化方法であって、
上記データセットの上記出力データストリームにおける符号化は、上記データセットをバイナリコードにより上記出力データストリームに符号化することを含む
データ符号化方法。
２２．上記１９〜２１のいずれか１つに記載のデータ符号化方法であって、
上記設定は、上記配列における現在のデータ値の重要度に基づいて上記符号化パラメータをインクリメントすることを含む
データ符号化方法。
２３．上記２０〜２２のいずれか１つに記載のデータ符号化方法であって、
上記最上位データ部分及び上記最下位データ部分の符号化は、上記最上位データ部分及び上記最下位データ部分をゴロムライス符号又は指数ゴロム符号により符号化することを含む
データ符号化方法。
２４．上記２３に記載のデータ符号化方法であって
上記ゴロムライス符号のサフィックス長は、上記最小の最下位データ部分サイズに等しく、
上記指数ゴロム符号は、上記最小の最下位データ部分サイズに等しい次数を有する
データ符号化方法。
２５．上記１９〜２４のいずれか１つに記載のデータ符号化方法であって、
上記データ値の配列のパラメータに基づいて上記オフセット値を生成する
データ符号化方法。
２６．上記２５に記載のデータ符号化方法であって、
上記データ値の配列のパラメータは、
上記配列におけるデータ値の数と、
上記データ値によって表されるデータの種類と、
上記データ値の配列に適用可能な量子化パラメータと、
符号化モードと
からなる群から選択された１つ又は複数のパラメータを含む
データ符号化方法。
２７．上記１９〜２６のいずれか１つに記載のデータ符号化方法であって、
上記オフセット値を定義するデータヘッダにデータを含める
データ符号化方法。
２８．上記１に記載のデータ符号化方法であって、
上記符号化は、
範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの１つを符号化のためのデータセットの現在の入力データ値に従って選択することと、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当てることと、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記一連のコード値を修正することと、
上記一連のコード値を定義する上記範囲変数が、所定の最小サイズより小さいか否かを検出し、小さい場合、上記一連のコード値が少なくとも上記所定の最小サイズとなるまで上記範囲変数を連続的に増加させ、そのようなサイズ増加動作に応答して符号化データビットを出力することと、
１群の入力データ値を符号化した後、ゼロに等しい少なくとも１つの最下位ビットを含む利用可能な範囲変数値の所定のサブセットから選択された値に上記範囲変数を設定することと
を含む
データ符号化方法。
２９．上記２８に記載のデータ符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付けられたコンテキスト変数によって定義される
データ符号化方法。
３０．上記２９に記載のデータ符号化方法であって、
データ値の符号化に続いて、上記現在のデータ値のために選択された上記サブレンジにおける上記一連のコード値の比率を増加させるように、次の入力データ値に関して使用するために上記コンテキスト変数を修正する
データ符号化方法。
３１．上記２８〜３０のいずれか１つに記載のデータ符号化方法であって、
上記一連のコード値は、０から上限値までの範囲にある値を含み、上記上限値は、上記範囲変数で定義され２５６から５１０までの範囲にある
データ符号化方法。
３２．上記３１に記載のデータ符号化方法であって、
上記範囲変数の利用可能な値のサブセットは、２５６の値を有する
データ符号化方法。
３３．上記３１に記載のデータ符号化方法であって、
上記利用可能な値のサブセットは、２５６と３８４の組を含み、
上記範囲変数の設定は、上記サブセットから上記範囲変数の現在の値に従って値を選択し、上記範囲変数の現在の値が２５６から３８３までの範囲にある場合、上記範囲変数を２５６に設定し、上記範囲変数の現在の値が３８４から５１０までの範囲にある場合、上記範囲変数を３８４に設定することを含む
データ符号化方法。
３４．上記３１に記載のデータ符号化方法であって、
上記利用できる値のサブセットは、２５６，３２０，３８４、及び４４８の組を含み、
上記範囲変数の設定は、上記範囲変数の現在の値に従って上記サブセットから値を選択し、上記範囲変数の現在の値が２５６から３１９までの範囲にある場合、上記範囲変数を２５６に設定し、上記範囲変数の現在の値が３２０から３８３までの範囲にある場合、上記範囲変数を３２０に設定し、上記範囲変数の現在の値が３８４から４４７までの範囲にある場合、上記範囲変数を３８４に設定し、上記範囲変数の現在の値が４４８から５１０までの範囲にある場合、上記範囲変数を４４８に設定することを含む
データ符号化方法。
３５．上記２８〜３４のいずれか１つに記載のデータ符号化方法であって、
データセットにおいてバイパスデータとして表されない値を示すデータを符号化し、
現在の配列と関連付けられたバイパスデータの量を検出し、
上記バイパスデータの量が閾値を超える場合、上記設定を適用し、それ以外の場合、上記設定を適用しない
データ符号化方法。
３６．上記２８〜３５のいずれか１つに記載のデータ符号化方法であって、
上記データは、データ値の複数の配列を含む変換ユニットとして符号化され、
上記データ符号化方法はさらに、変換ユニットの符号化の終了時に、上記設定を適用することを含む
データ符号化方法。
３７．画像データを符号化するデータ符号化方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択する
データ符号化方法。
３８．上記３７に記載のデータ符号化方法であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択は、全ての画像要素で使用するための１組の上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択することを含む
データ符号化方法。
３９．上記３８に記載のデータ符号化方法であって、
上記選択は、上記１組の最大ダイナミックレンジ及び／又は変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択することを含む
データ符号化方法。
４０．上記１〜３９のいずれか１つに記載のデータ符号化方法により符号化された画像データ。
４１．上記４０に記載の画像データを記憶するデータキャリア。
４２．データ値の配列を提供するためのデータを復号化するデータ復号化方法であって、
入力データストリームから上記データ値の最下位データ部分及び１つ又は複数の符号化データセットを分離し、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分を生成し、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が当該データの残りの最下位ビットを表すように、上記データ値を生成する
データ復号化方法。
４３．データセット及び上記データセットで符号化されない値に対するα符号化部分及び非α符号化部分を含むエスケープコードとして符号化される入力データを復号化してデータ値の配列を提供するデータ復号化方法であって、
非α符号化部分のビットの最小数を定義する０から所定の上限値までの範囲にある符号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、１以上のオフセット値を上記符号化パラメータに追加し、
各データ値の少なくとも１つの最下位ビットの値を復号化するように、上記データ値の配列に関する所定の重要度範囲のデータ値の位置を示す１つ又は複数のデータセットを復号化し、
値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、上記最下位データ部分が当該部分の上記最小の最下位データ部分サイズ以上の最下位ビットの数を表すように、上記α符号化部分及び上記非α符号化部分並びに補足の最上位データ部分及び最下位データ部分から、少なくとも上記１つ又は複数のデータセットによって符号化されない各データ値の部分を復号化する
データ復号化方法。
４４．画像データ復号化方法であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成し、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択する
画像データ復号化方法。
４５．上記４４に記載の画像データ復号化方法であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択は、全ての画像要素で使用するための１組の上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択することを含む
画像データ復号化方法。
４６．上記４５に記載の画像データ復号化方法であって、
上記選択は、上記１組の最大ダイナミックレンジ及び／又は変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択することを含む
画像データ復号化方法。
４７．コンピュータによって実行される際に、上記コンピュータに上記１〜３９及び４２〜４６のいずれか１つに記載の方法を実行させるコンピュータソフトウェア。
４８．上記４７に記載のコンピュータソフトウェアが記憶された非一時的な機械可読記憶媒体。
４９．データ値のシーケンスを符号化するデータ符号化装置であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残りの最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力データ値からそれぞれ生成し、所定の重要度範囲の最上位データ部分の上記値の配列に関連する位置を示す１つ又は複数のデータセットを生成するように構成された生成部と、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、上記出力データストリームに最下位位置を定義するデータを含めるエンコーダと
を具備するデータ符号化装置。
５０．データ値の配列をデータセット及び上記データセットで符号化されない値に対するα符号化部分と非α符号化部分とを含むエスケープコードとして符号化するデータ符号化装置であって、
非α符号化部分のビットの最小数を定義する、０から所定の上限値までの範囲にある符号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、上記符号化パラメータに１以上のオフセット値を追加し、
各データ値の少なくとも１つの最下位ビットの値を符号化するように、データ値の配列に関連する所定の重要度範囲のデータ値の位置を示す１つ又は複数のデータセットを生成し、
少なくとも上記１つ又は複数のデータセットによって符号化されない各データ値の部分から、値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、最下位データ部分が上記最下位データ部分サイズ以上の当該部分の最下位ビットの数を表すように、補足の最上位データ部分及び最下位データ部分を生成する
ように構成されたプロセッサと、
上記データセットを出力データストリームに符号化し、
上記最上位データ部分を上記出力データストリームに符号化し、
上記最下位データ部分を上記出力データストリームに符号化する
ように構成されたエンコーダと
を具備するデータ符号化装置。
５１．画像データを符号化するデータ符号化装置であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列を生成するように構成された周波数変換部と、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択するように構成された選択部と
を具備するデータ符号化装置。
５２．上記５１に記載のデータ符号化装置であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択部は、全ての画像要素で使用するための１組の上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択するように構成される
データ符号化装置。
５３．上記５２に記載のデータ符号化装置であって、
上記選択部は、上記１組の最大ダイナミックレンジ及び／又は上記変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択するように構成される
データ符号化装置。
５４．データを復号化してデータ値の配列を提供するデータ復号化装置であって、
入力データストリームから、データ値の最下位データ部分及び１つ又は複数の符号化データセットを分離するように構成されたデータ分離部と、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分を生成するように構成されたデコーダと、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が当該データの残りの最下位ビットを表すように、上記データ値を生成するように構成された結合部と
を具備するデータ復号化装置。
５５．データセット及び上記データセットで符号化されない値に対するα符号化部分及び非α符号化部分を含むエスケープコードとして符号化される入力データを復号化してデータ値の配列を提供するデータ復号化装置であって、
非α符号化部分のビットの最小数を定義する０から所定の上限値までの範囲にある符号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、１以上のオフセット値を上記符号化パラメータに追加し、
各データ値の少なくとも１つの最下位ビットの値を復号化するように、上記データ値の配列に関する所定の重要度範囲のデータ値の位置を示す１つ又は複数のデータセットを復号化し、
値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、上記最下位データ部分が当該部分の上記最小の最下位データ部分サイズ以上の最下位ビットの数を表すように、上記α符号化部分及び上記非α符号化部分並びに補足の最上位データ部分及び最下位データ部分から、少なくとも上記１つ又は複数のデータセットによって符号化されない各データ値の部分を復号化する
ように構成されたプロセッサ
を具備するデータ復号化装置。
５６．画像データ復号化装置であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配列を生成するように構成された周波数変換部と、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び／又は上記変換行列の上記データ精度を選択するように構成された選択部と
を具備する画像データ復号化装置。
５７．上記５６に記載の画像データ復号化装置であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択部は、全ての画像要素で使用するための１組の上記最大ダイナミックレンジ及び／又は上記変換行列のデータ精度を選択するように構成される
画像データ復号化装置。
５８．上記５７に記載の画像データ復号化装置であって、
上記選択部は、上記１組の最大ダイナミックレンジ及び／又は変換行列のデータ精度として、最大ビットデプスを有する画像要素の１つに関する値を選択する
画像データ復号化装置。
５９．上記４９〜５８のいずれか１つに記載の装置を具備するビデオデータキャプチャ・送信・表示及び／又は記憶装置。
【０４６１】
上述のように、上記の項の装置機能は、上述のエンコーダ又はデコーダの機能により実行されてもよいことが理解されよう。
【図１】
0006636909.tif 000019
【図２】
0006636909.tif 000020
【図３】
0006636909.tif 000021
【図４】
0006636909.tif 000022
【図５】
0006636909.tif 000023
【図６】
0006636909.tif 000024
【図７】
0006636909.tif 000025
【図８】
0006636909.tif 000026
【図９】
0006636909.tif 000027
【図１０】
0006636909.tif 000028
【図１１】
0006636909.tif 000029
【図１２】
0006636909.tif 000030
【図１３】
0006636909.tif 000031
【図１４】
0006636909.tif 000032
【図１５】
0006636909.tif 000033
【図１６】
0006636909.tif 000034
【図１７】
0006636909.tif 000035
【図１８】
0006636909.tif 000036
【図１９】
0006636909.tif 000037
【図２０】
0006636909.tif 000038
【図２１】
0006636909.tif 000039
【図２２】
0006636909.tif 000040
【図２３】
0006636909.tif 000041
【図２４】
0006636909.tif 000042
【図２５】
0006636909.tif 000043
【図２６】
0006636909.tif 000044
【図２７】
0006636909.tif 000045
【図２８】
0006636909.tif 000046
【図２９】
0006636909.tif 000047
【図３０】
0006636909.tif 000048
【図３１】
0006636909.tif 000049
【図３２】
0006636909.tif 000050
【図３３】
0006636909.tif 000051
【図３４】
0006636909.tif 000052
【図３５】
0006636909.tif 000053
【図３６】
0006636909.tif 000054
【図３７】
0006636909.tif 000055
【図３８】
0006636909.tif 000056
【図３９】
0006636909.tif 000057