(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号する方法であって、
符号化ビットストリームから、ビット深度に基づく値の範囲を示す第1のシンタックス要素を受信するステップであって、前記値の範囲は、前記ビデオデータのコーディングユニットの変換係数の絶対値を表すために使用され、前記値の範囲は最小値と最大値とを含み、前記ビット深度は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用されるビット数を表し、前記ビデオデータの前記コーディングユニットは、前記ビデオデータの領域である、ステップと、
前記符号化ビットストリームから、前記ビデオデータの前記コーディングユニットの前記変換係数のうちの第1の変換係数の絶対値を示す第2のシンタックス要素を受信するステップであって、前記第2のシンタックス要素は、プレフィックスコードワードと、前記プレフィックスコードワードに連結されたサフィックスコードワードとによって表される、ステップと、
前記第2のシンタックス要素の前記サフィックスコードワードを復号するときに使用されるべきサフィックスビットの最大数を決定するステップであって、前記サフィックスビットの最大数は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用される前記ビット数を表す前記ビット深度に基づいた、前記第1のシンタックス要素によって示された前記範囲の前記最大値に基づく、ステップと、
前記第2のシンタックス要素の前記プレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数を決定するステップであって、前記プレフィックスビットの最大数は、前記決定されたサフィックスビットの最大数と、前記ビデオデータの前記コーディングユニットの前記変換係数を表すために使用されるビットの最大数を表す値との間の差に基づく、ステップと、
前記決定されたプレフィックスビットの最大数に基づいて、前記第2のシンタックス要素の前記プレフィックスコードワードを復号するステップであって、前記プレフィックスコードワードは、前記決定されたプレフィックスビットの最大数以下であるビット数を有する、ステップと、
前記決定されたサフィックスビットの最大数に基づいて、前記第2のシンタックス要素の前記サフィックスコードワードを復号するステップであって、前記サフィックスコードワードは、前記決定されたサフィックスビットの最大数以下であるビット数を有する、ステップと、
前記復号されたプレフィックスコードワードと前記復号されたサフィックスコードワードとに基づいて、前記第1の変換係数の前記絶対値を決定するステップと、
前記第1の変換係数の前記決定された絶対値に基づいて、前記コーディングユニットを復号するステップと
を含み、
前記プレフィックスの最大値が、前記プレフィックスビットの最大数を有する最大の短縮単項表現を備える、方法。
【請求項２】
前記プレフィックスコードワードが、短縮単項表現を備える、請求項1に記載の方法。
【請求項３】
前記第2のシンタックス要素が、coeff_abs_level_remainingである、請求項1に記載の方法。
【請求項４】
前記サフィックスビットの最大数が、前記コーディングユニットのビデオ成分のためのLog2TransformRange変数の値に等しく、前記Log2TransformRange変数の前記値が、前記変換係数の前記絶対値を表すために必要とされるビットの最大数を示す、請求項1に記載の方法。
【請求項５】
前記コーディングユニットのコーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とを調整するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記コーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とが等しいと決定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記コーディングユニットのコーディングモードに基づいて、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とを調整するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記第1のシンタックス要素がLog2TransformRangeであり、前記第2のシンタックス要素がcoeff_abs_level_remainingである、請求項1に記載の方法。
【請求項９】
ビデオデータを符号化する方法であって、
前記ビデオデータのコーディングユニットのための変換係数を生成するステップであって、前記ビデオデータの前記コーディングユニットは、前記ビデオデータの領域である、ステップと、
ビット深度に基づく値の範囲を示す第1のシンタックス要素を生成するステップであって、前記値の範囲は、前記ビデオデータの前記コーディングユニットの前記変換係数の絶対値を表すために使用され、前記値の範囲は最小値と最大値とを含み、前記ビット深度は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用されるビット数を表す、ステップと、
前記ビデオデータの前記コーディングユニットの前記変換係数のうちの第1の変換係数の絶対値を示す第2のシンタックス要素を生成するステップと、
前記第2のシンタックス要素に対応するサフィックスコードワードを符号化するときに使用されるべきサフィックスビットの最大数を決定するステップであって、前記サフィックスビットの最大数は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用される前記ビット数を表す前記ビット深度に基づいた、前記第1のシンタックス要素によって示された前記範囲の前記最大値に基づく、ステップと、
前記第2のシンタックス要素に対応するプレフィックスコードワードを符号化するときに使用されるべきプレフィックスビットの最大数を決定するステップであって、前記プレフィックスビットの最大数は、前記決定されたサフィックスビットの最大数と、前記ビデオデータの前記コーディングユニットの前記変換係数を表すために使用されるビットの最大数を表す値との間の差に基づく、ステップと、
前記決定されたプレフィックスビットの最大数に基づいて、前記第2のシンタックス要素に対応する前記プレフィックスコードワードを符号化するステップであって、前記プレフィックスコードワードは、前記決定されたプレフィックスビットの最大数以下であるビット数を有する、ステップと、
前記決定されたサフィックスビットの最大数に基づいて、前記第2のシンタックス要素に対応する前記サフィックスコードワードを符号化するステップであって、前記サフィックスコードワードは、前記決定されたサフィックスビットの最大数以下であるビット数を有し、前記サフィックスコードワードは、前記プレフィックスコードワードに連結される、ステップと、
前記第2のシンタックス要素を一緒に表す前記プレフィックスコードワードと前記サフィックスコードワードとを含む、符号化ビットストリームを生成するステップと
を含み、
前記プレフィックスの最大値が、前記プレフィックスビットの最大数を有する最大の短縮単項表現を備える、方法。
【請求項１０】
前記プレフィックスコードワードが、短縮単項表現を備える、請求項9に記載の方法。
【請求項１１】
前記第2のシンタックス要素が、coeff_abs_level_remainingである、請求項9に記載の方法。
【請求項１２】
前記サフィックスビットの最大数が、前記コーディングユニットのビデオ成分のためのLog2TransformRange変数の値に等しく、前記Log2TransformRange変数の前記値が、前記変換係数の前記絶対値を表すために必要とされるビットの最大数を示す、請求項9に記載の方法。
【請求項１３】
前記コーディングユニットのコーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とを調整するステップをさらに含む、請求項9に記載の方法。
【請求項１４】
前記コーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とが等しいと決定するステップをさらに含む、請求項13に記載の方法。
【請求項１５】
前記コーディングユニットのコーディングモードに基づいて、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とを調整するステップをさらに含む、請求項9に記載の方法。
【請求項１６】
前記第1のシンタックス要素がLog2TransformRangeであり、前記第2のシンタックス要素がcoeff_abs_level_remainingである、請求項9に記載の方法。
【請求項１７】
ビデオデータを復号するように構成される装置であって、
ビデオデータを記憶するように構成されるメモリと、
少なくとも1つのプロセッサであって、
符号化ビットストリームから、ビット深度に基づく値の範囲を示す第1のシンタックス要素を受信することであって、前記値の範囲は、前記ビデオデータのコーディングユニットの変換係数の絶対値を表すために使用され、前記値の範囲は最小値と最大値とを含み、前記ビット深度は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用されるビット数を表し、前記ビデオデータの前記コーディングユニットは、前記ビデオデータの領域である、受信することと、
前記符号化ビットストリームから、前記ビデオデータの前記コーディングユニットの前記変換係数のうちの第1の変換係数の絶対値を示す第2のシンタックス要素を受信することであって、前記第2のシンタックス要素は、プレフィックスコードワードと、前記プレフィックスコードワードに連結されたサフィックスコードワードとによって表される、受信することと、
前記第2のシンタックス要素の前記サフィックスコードワードを復号するときに使用されるべきサフィックスビットの最大数を決定することであって、前記サフィックスビットの最大数は、前記ビデオデータの前記コーディングユニットのルーマビデオ成分またはクロマビデオ成分を表すために使用される前記ビット数を表す前記ビット深度に基づいた、前記第1のシンタックス要素によって示された前記範囲の前記最大値に基づく、決定することと、
前記第2のシンタックス要素の前記プレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数を決定することあって、前記プレフィックスビットの最大数は、前記決定されたサフィックスビットの最大数と、前記ビデオデータの前記コーディングユニットの前記変換係数を表すために使用されるビットの最大数を表す値との間の差に基づく、決定することと、
前記決定されたプレフィックスビットの最大数に基づいて、前記第2のシンタックス要素の前記プレフィックスコードワードを復号することであって、前記プレフィックスコードワードは、前記決定されたプレフィックスビットの最大数以下であるビット数を有する、復号することと、
前記決定されたサフィックスビットの最大数に基づいて、前記第2のシンタックス要素の前記サフィックスコードワードを復号することであって、前記サフィックスコードワードは、前記決定されたサフィックスビットの最大数以下であるビット数を有する、復号することと、
前記復号されたプレフィックスコードワードと前記復号されたサフィックスコードワードとに基づいて、前記第1の変換係数の前記絶対値を決定することと、
前記第1の変換係数の前記決定された絶対値に基づいて、前記コーディングユニットを復号することと
を行うように構成される、少なくとも1つのプロセッサと
を備え、
前記プレフィックスの最大値が、前記プレフィックスビットの最大数を有する最大の短縮単項表現を備える、装置。
【請求項１８】
前記少なくとも1つのプロセッサが、前記コーディングユニットのコーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、前記プレフィックスビットの最大数と前記サフィックスビットの最大数とを調整するようにさらに構成される、請求項17に記載の装置。
【請求項１９】
前記プレフィックスコードワードが、短縮単項表現を備える、請求項17に記載の装置。
【請求項２０】
前記第2のシンタックス要素が、coeff_abs_level_remainingである、請求項17に記載の装置。
【請求項２１】
前記第1のシンタックス要素がLog2TransformRangeであり、前記第2のシンタックス要素がcoeff_abs_level_remainingである、請求項17に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その両方の全体が参照により本明細書に組み込まれる、2014年3月14日に出願された米国仮出願第61/953,659号、および2014年3月17日に出願された米国仮出願第61/954,404号の優先権を主張する。
【０００２】
本開示はビデオコーディングに関し、より詳細には、変換係数をコーディングするための技法に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、ビデオ会議デバイスなどを含む、幅広いデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4, Part 10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格、およびそのような規格の拡張によって定義される規格に記載されているような、ビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信、受信、および記憶する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的予測および/または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがブロックに区分され得る。ビデオフレームは、代替的にピクチャと呼ばれることがある。各ブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに関する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のブロックは、同じフレームもしくはスライス中の隣接ブロック中の参照サンプルに関する空間的予測、または他の参照フレーム中の参照サンプルに関する時間的予測を使用し得る。空間的または時間的予測は、コーディングされるべきブロックのための予測ブロックをもたらす。残差データは、コーディングされるべき元のブロック、すなわちコード化ブロックと、予測ブロックとの間のピクセル差分を表す。
【０００５】
インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されてもよく、次いで量子化されてもよい残差変換係数をもたらす。最初に2次元アレイに配置される量子化変換係数は、エントロピーコーディングのための変換係数の1次元ベクトルを生成するために、特定の順序で走査され得る。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「Advanced video coding for generic audiovisual services」、ITU-T勧告H.264、2010年3月
【非特許文献２】JCTVC-L1003v34、Bross他、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、第12回会議、スイス、ジュネーブ、2013年1月14〜23日、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip
【非特許文献３】http://en.wikipedia.org/wiki/Exponential-Golomb_coding
【非特許文献４】JCTVC-P1005v4、Flynn他、「High efficiency video coding (HEVC) Range Extensions text specification draft 6」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、第16回会議、米国、サンノゼ、2014年1月9〜17日、http://phenix.int-evry.fr/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1005-v4.zip
【非特許文献５】ITU-T H.265, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of Audiovisual Services-Coding of Moving Video、「High Efficiency Video Coding」、2013年4月
【発明の概要】
【課題を解決するための手段】
【０００７】
概して、本開示は、ビデオデータをコーディングするための技法について説明する。特に、本開示は、ビデオコーディングプロセスにおいて変換係数に関する情報をコーディングするための技法について説明する。
【０００８】
ビデオデータのブロックをコーディングするとき、ビデオコーダ(たとえば、ビデオエンコーダまたはデコーダ)は、予測ブロックと、予測ブロックとコーディングされるべきビデオデータの元のブロックとの間のピクセルごとの差分を示す残差ブロックとを決定する。各残差ブロックが変換(および、場合によっては量子化)されて、変換係数が作成され得る。変換係数のうちの各係数は、ビデオコーダによって、変換係数の絶対値をコーディングするシンタックス要素(「coeff_abs_level_remaining」)を含む、1つまたは複数のシンタックス要素においてコーディングされ得る。
【０００９】
変換係数を10進表現から2進にコーディング(2値化と呼ばれる)するために、HEVC(高効率ビデオコーディング)ビデオコーダは、ゴロムライス/指数ゴロムコーディングを使用して、いくつかのシンタックス要素をコーディングし得る。本開示の技法は、使用される既存のHEVC技法を改良し、coeff_abs_level_remainingシンタックス要素をコーディングするために必要とされる最悪(すなわち、最大)ビット長を改善する。
【００１０】
本開示の一例では、ビデオを復号するための方法は、ビデオデータのコーディングユニットの変換係数の絶対値を示す符号化シンタックス要素を復号するときに使用されるべきビットの最大数を決定するステップと、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを復号するときに使用されるべきサフィックスビットの最大数を決定するステップであって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づくステップとを含む。この方法は、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数を決定するステップであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくステップと、符号化ビデオビットストリームから、ビデオデータのコーディングユニットのための変換係数の絶対値を示すシンタックス要素を受信するステップと、係数の絶対値のうちの1つのためのプレフィックスコードワードを復号するステップであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有するステップと、係数のうちの1つのためのサフィックスコードワードを復号するステップであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されるステップとをさらに含む。この方法はまた、復号プレフィックスと復号サフィックスとに基づいて、変換係数のうちの1つのための絶対値を決定するステップと、変換係数の決定された絶対値に基づいて、コーディングユニットを復号するステップとをさらに含む。
【００１１】
別の例では、ビデオを符号化するための方法は、ビデオデータのコーディングユニットのための変換係数を生成するステップと、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素を符号化するときに使用されるべきビットの最大数を決定するステップと、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを符号化するときに使用されるべきサフィックスビットの最大数を決定するステップであって、サフィックスビットの最大数は、変換係数の絶対値の各々を符号化するときに使用されるべきビットの最大数に基づくステップとを含む。この方法は、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを符号化するときに使用されるべきプレフィックスビットの最大数を決定するステップであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくステップと、変換係数の絶対値のうちの1つのためのプレフィックスコードワードを符号化するステップであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有するステップと、変換係数の絶対値のうちの1つのためのサフィックスコードワードを符号化するステップであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されるステップとをさらに含む。この方法は、シンタックス要素を符号化ビットストリームへと生成するステップと、符号化プレフィックスコードワードと符号化サフィックスコードワードとに基づいて、コーディングユニットを符号化するステップとをさらに含む。
【００１２】
別の例では、ビデオデータをコーディングするためのデバイスは、ビデオデータを記憶するように構成されたメモリと、少なくとも1つのプロセッサであって、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素をコーディングするときに使用されるべきビットの最大数を決定すること、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードをコーディングするときに使用されるべきサフィックスビットの最大数を決定することであって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づくこと、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードをコーディングするときに使用されるべきプレフィックスビットの最大数を決定することであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくこと、および、コーディングユニットのための変換係数の絶対値を決定することを行うように構成された、少なくとも1つのプロセッサとを含む。少なくとも1つのプロセッサは、変換係数の絶対値のうちの1つのためのプレフィックスコードワードをコーディングすることであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること、および、係数の絶対値のうちの1つのためのサフィックスコードワードをコーディングすることであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されること、および、プレフィックスコードワードとサフィックスコードワードとに基づいて、コーディングユニットをコーディングすることを行うようにさらに構成される。
【００１３】
別の例では、デバイスは、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素をコーディングするときに使用されるべきビットの最大数を決定するための手段と、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードをコーディングするときに使用されるべきサフィックスビットの最大数を決定するための手段であって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づく手段と、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数を決定するための手段であって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づく手段とを含む。このデバイスは、コーディングユニットのための変換係数の絶対値を決定するための手段と、係数の絶対値のうちの1つのためのプレフィックスコードワードをコーディングするための手段であって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有する手段と、係数のうちの1つのためのサフィックスコードワードをコーディングするための手段であって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結される手段と、プレフィックスコードワードとサフィックスコードワードとに基づいて、コーディングユニットをコーディングするための手段とをさらに含む。
【００１４】
本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されたとき、少なくとも1つのプロセッサに、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素をコーディングするときに使用されるべきビットの最大数を決定すること、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードをコーディングするときに使用されるべきサフィックスビットの最大数を決定することであって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づくこと、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードをコーディングするときに使用されるべきプレフィックスビットの最大数を決定することであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくこと、および、コーディングユニットのための変換係数の絶対値を決定することを行わせる命令を含む。非一時的コンピュータ可読記憶媒体は、実行されたとき、少なくとも1つのプロセッサに、変換係数の絶対値のうちの1つのためのプレフィックスコードワードをコーディングすることであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること、および、係数の絶対値のうちの1つのためのサフィックスコードワードをコーディングすることであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されること、および、プレフィックスコードワードとサフィックスコードワードとに基づいて、コーディングユニットをコーディングすることを行わせる命令をさらに含む。
【００１５】
1つまたは複数の例の詳細は、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】本開示で説明する1つまたは複数の技法を実装またはさもなければ利用するように構成され、またはさもなければ動作可能であり得る、例示的なビデオ符号化および復号システムを示すブロック図である。
【図２】本開示で説明する1つまたは複数の技法を実装またはさもなければ利用するように構成され、またはさもなければ動作可能であり得る、ビデオエンコーダの一例を示すブロック図である。
【図３】本開示で説明する1つまたは複数の技法を実装またはさもなければ利用するように構成され、またはさもなければ動作可能であり得る、ビデオデコーダの一例を示すブロック図である。
【図４】本開示の技法による例示的な2値化復号方法を示すフローチャートである。
【図５】本開示の技法による例示的な2値化符号化方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
ビデオデータをコーディングするように構成されたビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、変換関数を使用して、ビデオデータのブロックのサンプルを、変換された係数レベルに変換または逆変換し得る。ビデオコーダは、2値化と呼ばれるプロセスを使用して、変換された係数レベルをさらにコーディングし得る。
【００１８】
高効率ビデオコーディング(HEVC)規格に従って構成されたビデオコーダは、ライスゴロム/指数ゴロムコーディングを使用して、係数レベルをコーディングし得る。しかしながら、HEVC基本規格に対するいわゆる拡張精度を有するサンプルでは、最悪の2値化された変換レベルは、プロセッサの単一のレジスタワードに適合しないことがあるコード長を有し得る。本開示の技法は、ビットの最大数と、プレフィックスビットの最大数と、サフィックスビットの最大数とを有し得る、2値化を使用することによって、2値化され変換された係数レベルの長さを32ビットまで低減する。いくつかの例では、最大サフィックス長は、サンプル成分のビット深度に基づき得る。
【００１９】
ビデオコーディング規格には、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、および、そのスケーラブルビデオコーディング(SVC)拡張とマルチビュービデオコーディング(MVC)拡張とを含むITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)が含まれる。H.264/MVCの最新のジョイントドラフトは、「Advanced video coding for generic audiovisual services」、ITU-T勧告H.264、2010年3月に記載されている。
【００２０】
追加として、HEVC規格は、ITU-Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のビデオコーディング共同研究部会(JCT-VC)によって最近開発された。「HEVC Working Draft 10」または「WD10」と呼ばれるHEVCの最近のドラフトは、文書JCTVC-L1003v34、Bross他、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、第12回会議、スイス、ジュネーブ、2013年1月14〜23日に記載されており、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。
【００２１】
概して、本開示は、ビデオデータをコーディングするための技法について説明する。特に、本開示は、ビデオ符号化および/または復号プロセスにおける残差変換係数のバイナリ算術コーディングのための技法について説明する。ビデオデータのブロックをコーディングするとき、ビデオコーダは、予測ブロックと、予測ブロックとコーディングされるべきビデオデータの元のブロックとの間のピクセルごとの差分を示す残差ブロックとを決定する。各残差ブロックは、変換係数に変換され得る。次いで、これらの変換係数は、コンテキスト適応型バイナリ算術コーディング(CABAC)エントロピーコーダ、または、確率間隔区分エントロピーコーディング(PIPE)もしくは関連コーダなどの他のエントロピーコーダを使用して、エントロピーコーディングされ得る。算術コーディングは、高いコーディング効率を有する多数の圧縮アルゴリズムにおいて使用されるエントロピーコーディングの形態であり、その理由は、シンボルを非整数長コードワードにマッピングすることが可能であるからである。算術コーディングアルゴリズムの一例は、H.264/AVCにおいて、ならびに高効率ビデオコーディング(HEVC)ビデオ規格において使用される、コンテキスト適応型バイナリ算術コーディング(CABAC)である。
【００２２】
HEVC規格に従って動作するビデオコーダは、ビデオのフレームまたはピクチャを、1つまたは複数のコーディングユニット(CU)からなるコーディングツリーユニット(CTU)に区分するように構成され得る。CUは、1つまたは複数の予測ユニット(PU)と、1つまたは複数の変換ユニット(TU)とをさらに備え得る。TUは、変換された残差係数の1つまたは複数のブロックを備え得る。本開示では、変換係数は、様々な異なる値を記述し得る。たとえば、変換係数は、変換ブロックの変換されたサンプル、変換スキップモードコード化ブロックのサンプル、トランスクワント(transquant)(変換および量子化)バイパスコード化ブロックのサンプル、残差差分パルスコード変調(RDPCM)コード化ブロックのサンプル、またはトランスクワントバイパスを使用してコーディングされたRDPCMコード化ブロックのサンプルを備え得る。ブロックのコーディングモードに応じて、ビデオコーダは、変換された係数のブロックを量子化し、量子化変換係数を生成して、コーディング効率をさらに向上させ得る。ビデオコーダは、量子化変換係数のブロックをエントロピーコーディングし得る。
【００２３】
量子化変換係数のブロックをエントロピーコーディングするために、ビデオコーダは、通常、ブロック中の量子化変換係数の2次元(2D)アレイが、特定の走査順序に従って、変換係数の、順序付きの1次元(1D)アレイ、すなわち、ベクトルに再配置されるように、走査プロセスを実行する。次いで、ビデオコーダは、エントロピーコーディングを変換係数のベクトルに適用する。変換ユニット中の量子化変換係数の走査は、エントロピーコーダのための変換係数の2Dアレイをシリアル化する。ビデオコーダはまた、有意(すなわち、非ゼロ)係数の位置を示すために、有意性マップを生成し得る。走査は、有意(すなわち、非ゼロ)係数のレベルを走査するため、および/または有意係数の符号をコーディングするために適用され得る。
【００２４】
HEVC規格では、有意変換の位置情報(たとえば、有意性マップ)が、走査順序における最後の非ゼロ係数のロケーションを示すために、TUについて最初にコーディングされる。有意性マップおよびレベル情報(係数の絶対値および符号)は、逆方向走査順序で各係数についてコーディングされる。
【００２５】
HEVC規格では、ビデオコーダは、係数をチャンクにグループ化し得る。変換係数の有意性マップおよびレベル情報(絶対値および符号)は、各チャンクについてコーディングされる。一例では、チャンクは、4×4TUおよび8×8TUでは、走査順序(たとえば、順方向または逆方向の対角、水平、または垂直走査順序)に沿った16個の連続した係数からなる。16×16TUおよび32×32TUでは、より大きいTU内の変換係数の4×4サブブロックがチャンクとして扱われる。以下のシンボル(シンタックス要素)が、チャンク内の係数の有意性と係数レベル情報とを表すために、コーディングおよびシグナリングされる。一例では、すべてのシンボルが逆方向走査順序で符号化される。
【００２６】
significant_coeff_flag(略語sigMapFlag):このフラグは、チャンク内の各係数の有意性を示す。1以上の絶対値をもつ係数が有意であると見なされる。一例として、0のsigMapFlag値は、係数が有意ではないことを示し、1の値は、係数が有意であることを示す。このフラグは、一般に有意性フラグと呼ばれることがある。
coeff_abs_level_greater1_flag(略語gr1Flag):このフラグは、任意の非ゼロ係数(すなわち、1としてのsigMapFlagをもつ係数)について、係数の絶対値が1よりも大きいか否かを示す。一例として、0のgr1Flag値は、係数が1よりも大きい絶対値を有していないことを示し、gr1Flagについての1の値は、係数が1よりも大きい絶対値を有することを示す。このフラグは、一般に大なり1(greater-than-one)フラグと呼ばれることがある。
coeff_abs_level_greater2_flag(略語gr2Flag):このフラグは、1よりも大きい絶対値をもつ任意の係数(すなわち、gr1Flagが1である係数)について、係数の絶対値が2よりも大きいか否かを示す。一例として、0のgr2Flag値は、係数が2よりも大きい絶対値を有していないことを示し、gr2Flagについての1の値は、係数が2よりも大きい絶対値を有することを示す。このフラグは、一般に大なり2(greater-than-two)フラグと呼ばれることがある。
coeff_sign_flag(略語signFlag):このフラグは、任意の非ゼロ係数(すなわち、sigMapFlagが1である係数)についての符号情報を示す。たとえば、このフラグについての0は正符号を示し、1は負符号を示す。
coeff_abs_level_remaining(略語levelRem):このシンタックス要素は、残りの係数の絶対レベル値を示す。このフラグでは、2よりも大きい絶対値をもつ各係数(すなわち、gr2Flagが1である係数)について、係数の絶対値-3がコーディングされる(abs(level)-3)。1ビットフラグであるのではなく、levelRemシンタックス要素は、2よりも大きい変換係数の総絶対値を示す。
【００２７】
変換係数のためのいくつかのシンタックス要素(coeff_abs_level_remainingシンタックス要素を含む)を2値にコーディング(2値化と呼ばれる)するために、HEVC対応コーダは、ゴロムライス/指数ゴロムコーディングとして知られる技法を使用する。指数ゴロムコーディングについては、http://en.wikipedia.org/wiki/Exponential-Golomb_codingでより詳細に説明されている。本開示の技法は、使用される既存のHEVC技法を改良し、coeff_abs_level_remainingシンタックス要素をコーディングするために必要とされる最悪(すなわち、最大)のビット数を改善する。
【００２８】
HEVC範囲拡張(HEVC RExt:HEVC Range Extension)と呼ばれるHEVCの拡張は、対応ビデオコーダがコード化ビデオデータのダイナミックレンジと忠実度とを増すことを可能にする。「HEVC RExt WD 6」と呼ばれるHEVC範囲拡張の最近のドラフトは、文書JCTVC-P1005v4、Flynn他、「High efficiency video coding (HEVC) Range Extensions text specification draft 6」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同研究部会(JCT-VC)、第16回会議、米国、サンノゼ、2014年1月9〜17日に記載されており、http://phenix.int-evry.fr/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1005-v4.zipから入手可能である。たとえば、HEVC範囲拡張対応ビデオコーダは、HEVC基本規格と比較して増したビット数、たとえば、16ビットを有するクロマサンプルまたはルーマサンプルをコーディングすることができ、それによって、HEVC基本規格と比較してビデオの忠実度または品質を改善することができる。
【００２９】
HEVCでは、coeff_abs_level_remainingシンタックス要素の長さは、最悪で32ビットに制限される。このことは、ハードウェアならびにソフトウェアにおける実装のために望ましいと見なされる。HEVCでは、ビデオ成分のビット深度にかかわらず、変換係数は、16ビット範囲(両端値を含む-215から(215-1)まで)内に制限される。ここで、「変換係数」という用語はまた、変換がスキップまたはバイパスされるとき(無損失モード)、予測残差にも適用される。有意性マップを考慮に入れると、coeff_abs_level_remainingシンタックス要素のための最大可能な値は、(215-1)である。ここで、大なり1フラグおよび大なり2フラグは、場合によってはシグナリングされないことがあるので、考慮に入れられない。代わりに、coeff_abs_level_remainingが、有意性フラグの直後にシグナリングされる。
【００３０】
しかしながら、現在のHEVC範囲拡張仕様では、拡張精度を使用するときの変換係数の範囲は、両端値を含む-2(B+6)から2(B+6)-1であり、ただし、Bはビデオ成分のビット深度である。たとえば、拡張精度を使用するとき、16ビットのビデオ成分では、変換係数の範囲は、両端値を含む-222から222-1である。この場合、現在のHEVC範囲拡張仕様(およびHEVC)によって使用されるゴロムライス/指数ゴロム方法は、cRiceParamが0であるときに発生する、46ビットの最悪の長さを生じる。
【００３１】
チャネルのためのビット数に関して、HEVC RExt WD 6は、コーディングユニットのビデオ成分のための新しいシンタックス要素log2TransformRangeを、
Log2TransformRange=Max(15,B+6)
として定義しており、ただし、Bはビデオ成分のビット深度である。Log2TransformRangeは、サンプルについて拡張精度(すなわち、基本HEVC規格よりも多数のビット)を使用するとき、係数を表すために使用され得る値の範囲に対応し得る。たとえば、拡張精度を使用するとき、16ビットのビデオ成分では、変換係数のための値の範囲は、両端値を含む-222から222-1である。
【００３２】
変換係数の絶対値をコーディングするために、HEVC対応ビデオコーダは、coeff_abs_level_remaining[n]シンタックス要素をコーディングし、ただし、「n」は、現在のブロックの走査位置のインデックスを示す。HEVC規格によれば、ビデオコーダは、サフィックスを含み得る、指数ゴロムコードと連結されたゴロムライスコーディングプレフィックスの組合せを使用して、coeff_abs_level_remaining[n]シンタックス要素をコーディングする。本開示は、この組合せを「ゴロムライス/指数ゴロムコーディング」と呼ぶ。
【００３３】
coeff_abs_level_remaining[n]をコーディングするために、ビデオコーダは、変数「cRiceParam」と呼ばれるライスパラメータを決定する。ライスパラメータは、値「k」とも呼ばれる指数値である。ライスパラメータは、ブロックのためのライスパラメータが以前に定義されている場合、そのような以前に決定されたライスパラメータに基づいて決定される。
【００３４】
ビデオコーダはまた、変数値prefixValによって表されるプレフィックスビットと、変数suffixValによって表されるサフィックスビットとを決定する。プレフィックス値とサフィックス値との連結は、coeff_abs_level_remaining[n]の2値化を定義する。
【００３５】
HEVC規格は、セクション9.3.3.2において、プレフィックスのゴロムライスコーディング部分を決定するためのプロセスを定義している。HEVC規格によれば、セクション9.3.3.3において、プレフィックスおよびサフィックスの残りのビットは、k次の指数ゴロム(EGk)2値化プロセスに従って決定され、そのための擬似コードが以下で再生される。
absV=Abs(synVal)
stopLoop=0
do {
if(absV>=(1<<k)) {
put(1)
absV=absV-(1<<k)
k++
} else {
put(0)
while(k- -)
put((absV>>k)&1)
stopLoop=1
}
} while(!stopLoop)。
本開示の技法は、いくつかの場合において、coeff_abs_level_remaining[n]シンタックス要素のゴロムライス/指数ゴロム2値化のコーディング効率を改善し得る。
【００３６】
HEVC RExt WD 6は、ビデオエンコーダが、1に等しいextended_precision_processing_flagシンタックス要素をシグナリングして、ビデオがHEVC基本規格と比較してより大きいビット深度を使用して符号化されることをシグナリングすることを可能にする。現在のHEVC範囲拡張仕様によって使用されるHEVC RExt WD 6、ゴロムライス/指数ゴロムコーディング方法は、拡張精度を有する変換レベルについて、場合によっては(たとえば、ライスパラメータcRiceParamを示すシンタックス値が0であるとき)、46ビットという最大の、最悪の長さを必要とすることがある。
【００３７】
32ビットよりも長い長さは、32ビットプロセッサのレジスタに適合しないことがあり、non-instruction-word-lengthシンタックス要素のパディングビットに関する他の問題を引き起こすことがある。本明細書で説明する技法は、coeff_abs_level_remainingシンタックス要素のための最悪の長さを32ビットに限定することができ、これによって、coeff_abs_level_remaining[n]の2値化が単一のプロセッサ命令ワードに適合することが可能になる。
【００３８】
coeff_abs_level_remaining[n]の最悪の長さを低減するために、本開示は、max_suffix_lengthパラメータを導入する。様々な例では、max_suffix_lengthは、Log2TransformRange変数の値に等しくなり得る。HEVC RExt WD6によれば、Log2TransformRangeはmax(15,B+6)に等しくなり得、ただし、Bはビデオ成分のビット深度である。したがって、Log2TransformRangeの値はまた、準拠するビットストリーム中に存在し得るcoeff_abs_level_remainingシンタックス要素の値を表すために必要とされるビットの最大数にも等しくなり得る。様々な例では、max_suffix_lengthパラメータをLog2TransformRangeの値に等しく設定することは、係数のための有意性値ならびに大なり1フラグおよび大なり2フラグが別個に送られるという事実を考慮に入れる。
【００３９】
本開示はまた、max_prefix_lengthと呼ばれる別のパラメータを導入する。様々な例では、max_prefix_lengthは以下のように定義され得る。
max_prefix_length=32-max_suffix_length (2)
したがって、16ビットのビデオ成分では、max_suffix_lengthは22に等しく、max_prefix_lengthは10に等しい。以下のTable 1(表1)は、HEVC RExt WD 6によるプレフィックスおよびサフィックスコーディングを使用するcoeff_abs_level_remainingシンタックス要素の既存の2値化の一例を示す。
【００４０】
【表１】
0006527877.tif 000002
【００４１】
上記で説明したように、現在、コードワードプレフィックスは単項表現である。本開示は、max_prefix_bitsの最大プレフィックス長を有する短縮単項表現(truncated unary representation)を使用して、プレフィックスをコーディングする。最後の間隔(1111...max_prefix_bits回によって表される)では、サフィックス長はmax_suffix_bitsの値に設定される。対照的に、最後の間隔は、HEVC規格によれば、追加の「0」とともに終了する。max_suffix_bitsは、ビットストリーム中の変換係数の最大絶対値を表すために十分であるので、Table 1(表1)の最後の行における最後の間隔は、当該のすべての値をカバーする。
【００４２】
Table 2(表2)は、16の成分ビット深度とcRiceParam=0とを有するビデオのための別の例を示す。Table 2(表2)の例では、max_suffix_bitsは22に等しく、max_prefix_bits=10である。coeff_abs_level_remainingシンタックス要素のための最大値(有意性マップを考慮に入れる)は、(222-1)すなわち4194303であり、最後の行によって記述されている。
【００４３】
【表２】
0006527877.tif 000003
【００４４】
Table 3(表3)は、本開示の技法による別の例を示す。Table 4(表4)は、12に等しいビット深度とcRiceParam=0とを有するビデオ成分のためのcoeff_abs_level_remainingのための2値化の一例を示す。この例では、max_suffix_bitsは18に等しく、max_prefix_bitsは14に等しい。coeff_abs_level_remainingシンタックス要素のための最大値(有意性マップを考慮に入れる)は、(218-1)すなわち262143であり、Table 3(表3)の最後の行によって記述されている。Table 3(表3)では、最後のプレフィックス値111...14回が、単項表現ではなく、短縮単項表現であることに留意されたい。
【００４５】
【表３】
0006527877.tif 000004
【００４６】
以下のTable 4(表4)は、16のビット深度および2に等しいcRiceParamの場合の本開示の提案された2値化技法のまた別の例を示す。
【００４７】
【表４】
0006527877.tif 000005
【００４８】
2値化のための本開示の技法の特徴の1つは、coeff_abs_level_remainingシンタックス要素の2値化が、ビデオ成分のビット深度、または代替的に変換係数の動的範囲に依存することである。
【００４９】
また、cRiceParamの高い値の場合でも、提案される2値化が最悪のコードワード長を32ビットに制限することにも留意されたい。別の例として、16に等しいビット深度とcRiceParam=20とを考えられたい。この場合、提案される2値化を以下でTable 5(表5)において示す。32ビット長を超えていることが明白であり得る。しかしながら、Table 5(表5)に示すように、最初の4行が、(222-1)すなわち4194303であるcoeff_abs_level_remainingシンタックス要素のための最大値(有意性マップを考慮に入れる)を表すために十分である。したがって、行の残りは決して使用されない。
【００５０】
【表５】
0006527877.tif 000006
【００５１】
いくつかの代替2値化例について、次に説明する。いくつかの例では、プレフィックスのために短縮単項表現を使用する代わりに、本開示の技法に従って構成されたビデオコーダは、プレフィックスのために単項表現を使用することが可能であり得る。この場合、Table 2〜5(表2〜5)の最後の2行が単一の行にマージされる。Table 3(表3)の例を、以下でTable 6(表6)において非短縮単項表現(non-truncated unary representation)を使用して示す。
【００５２】
【表６】
0006527877.tif 000007
【００５３】
Table 6(表6)の例における2値化は、Table 2(表2)において提案されたものよりも多数のビットが必要とされることになる。これは、両端値を含む範囲66から129における入力値では、6個ではなく22個のサフィックスビットが使用されるからである。しかしながら、HEVCおよびHEVC RExt WD 6はサフィックスのための単項表現を使用するので、そのような2値化は、既存の2値化に等しい、より低ビット深度のための2値化を保つために望ましくなり得る。
【００５４】
HEVCおよびHEVC RExt WD 6仕様では、変換スキップブロックおよび変換バイパスブロック、すなわち、無損失モードコード化ブロックにおける変換係数の動的範囲に対する別個の制限がない。変換バイパスブロックでは、TUのブロックを変換した結果は予測残差係数であるので、係数のレベルのための最大絶対値は、コーディングされているビデオ成分のビット深度に制限されるようになる。
【００５５】
本開示の技法によるいくつかの例では、ビデオコーダが、さらに変換スキップおよび変換バイパス(無損失モード)ブロックについて、変換係数の動的範囲を制限する場合、ビデオコーダは、ブロックが通常の変換モードを使用するか、変換スキップモードを使用するか、変換バイパスモードを使用するかに応じて、ブロックの変換係数をコーディングするために使用される2値化を変更し得る。たとえば、ブロックが無損失モードを使用してコーディングされる場合、16ビットのビット深度、および0に等しいcRiceParamでは、ビデオコーダは、max_suffix_bitsを16に等しく、max_prefix_bitsを16に等しく設定し得る。この例による無損失モードの場合の可能な2値化を、以下のTable 7(表7)に示す。この例におけるcoeff_abs_level_remainingシンタックス要素のための最大値(有意性マップを考慮に入れる)は、(216-1)すなわち65535であり、Table 7(表7)の最後の行によってカバーされている。したがって、本開示の技法は、無損失モードコード化ブロックのためのcoeff_abs_level_remaining[n]のコーディング効率を改善し得る。
【００５６】
【表７】
0006527877.tif 000008
【００５７】
図1は、本開示で説明する技法を利用し得る、例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、宛先デバイス14によって後の時間に復号されるべき符号化ビデオデータを生成する、ソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【００５８】
宛先デバイス14は、リンク16を介して、復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に直接符号化ビデオデータを送信することを可能にするために、通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルなどの任意のワイヤレスもしくはワイヤード通信媒体、または、1つもしくは複数の物理的伝送線を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、または、ソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００５９】
代替的に、符号化データは、出力インターフェース22から記憶デバイス31に出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイス31からアクセスされ得る。記憶デバイス31は、ハードドライブ、Blu-ray（登録商標）ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルでアクセスされるデータ記憶媒体のうちのいずれかを含み得る。さらなる例では、記憶デバイス31は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス31からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14へ送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通して、符号化ビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。記憶デバイス31からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００６０】
本開示の技法は、必ずしもワイヤレス用途または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介するストリーミングビデオ送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途など、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの用途をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【００６１】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくは、ソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、本開示で説明する技法は、一般にビデオコーディングに適用可能であり得、ワイヤレス用途および/またはワイヤード用途に適用され得る。
【００６２】
キャプチャされた、プリキャプチャされた、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータはまた(または代替的に)、復号および/または再生するために、宛先デバイス14または他のデバイスによって後にアクセスするために、記憶デバイス31上に記憶され得る。
【００６３】
宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して、符号化ビデオデータを受信する。リンク16を介して通信された、または記憶デバイス31上に提供された符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された符号化ビデオデータとともに含まれ得る。
【００６４】
ディスプレイデバイス32は、宛先デバイス14と一体化されるか、または宛先デバイス14の外部にあり得る。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備え得る。
【００６５】
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4, Part 10と呼ばれるITU-T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張などの、他のプロプライエタリまたは業界規格に従って動作し得る。しかしながら、本開示の技法は、任意の特定のコーディング規格に限定されない。ビデオ圧縮規格の他の例には、MPEG-2およびITU-T H.263が含まれる。
【００６６】
図1には示していないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと一体化されてよく、共通データストリームまたは別々のデータストリームにおけるオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み得る。該当する場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００６７】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダ回路のうちのいずれかとして実装され得る。本技法が部分的にソフトウェアにおいて実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェアのための命令を記憶してよく、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、そのいずれかは、それぞれのデバイス内に、組み合わされたエンコーダ/デコーダ(CODEC)の一部として組み込まれてよい。
【００６８】
ビデオエンコーダ20およびビデオデコーダ30は、最近規格化された高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠し得る。文書ITU-T H.265, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of Audiovisual Services-Coding of Moving Video、「High Efficiency Video Coding」、2013年4月は、HEVC規格を記載しており、その全体が参照により本明細書に組み込まれる。追加として、ビデオエンコーダ20およびビデオデコーダ30は、追加の視覚的ダイナミックレンジ、品質改善、コーディングモードなどを追加し得る、HEVC範囲拡張などのHEVC規格の拡張に従って動作し得る。
【００６９】
代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4, Part 10と呼ばれるITU-T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張などの、他のプロプライエタリまたは業界規格に従って動作し得る。しかしながら、本開示の技法は、任意の特定のコーディング規格に限定されない。ビデオ圧縮規格の他の例には、MPEG-2およびITU-T H.263が含まれる。
【００７０】
図1には示していないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと一体化されてよく、共通データストリームまたは別々のデータストリームにおけるオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み得る。該当する場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００７１】
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な適切なエンコーダ回路のうちのいずれかとして実装され得る。本技法が部分的にソフトウェアにおいて実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体内にソフトウェアのための命令を記憶してよく、本開示の技法を実行するために、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ内に含まれてよく、そのいずれかは、それぞれのデバイス内に、組み合わされたエンコーダ/デコーダ(CODEC)の一部として組み込まれてよい。
【００７２】
ビデオエンコーダ20は、ビデオコーディングプロセスにおいて変換係数をコーディングするための本開示の技法のいずれかまたはすべてを実施し得る。同様に、ビデオデコーダ30は、ビデオコーディングプロセスにおいて変換係数をコーディングするためのこれらの技法のいずれかまたはすべてを実施し得る。ビデオコーダは、本開示で説明するように、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同じく、ビデオコーディングは、ビデオ符号化またはビデオ復号を指すことがある。
【００７３】
本開示の一例では、ビデオエンコーダ20またはビデオデコーダ30は、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素をコーディングするときに使用されるべきビットの最大数を決定すること、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードをコーディングするときに使用されるべきサフィックスビットの最大数を決定することであって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づくこと、および、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードをコーディングするときに使用されるべきプレフィックスビットの最大数を決定することであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくことを行うように構成され得る。
【００７４】
ビデオエンコーダ20またはビデオデコーダ30は、コーディングユニットのための変換係数の絶対値を決定すること、変換係数の絶対値のうちの1つのためのプレフィックスコードワードをコーディングすることであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること、および、係数の絶対値のうちの1つのためのサフィックスコードワードをコーディングすることであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されること、および、プレフィックスコードワードとサフィックスコードワードとに基づいて、コーディングユニットをコーディングすることを行うようにさらに構成され得る。
【００７５】
デジタルビデオデバイスは、ビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に符号化および復号する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的(フレーム内)予測技法および/または時間的(フレーム間)予測技法を適用し得る。
【００７６】
HEVC規格によるビデオコーディングでは、ビデオフレームはコーディングユニットに区分され得る。コーディングユニット(CU)は、一般に、様々なコーディングツールがビデオ圧縮のために適用される基本ユニットとして働く画像領域を指す。CUは、通常、Yと示されるルミナンス成分と、UおよびVと示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、U成分およびV成分のサイズは、サンプルの数に関して、Y成分のサイズと同じであっても異なってもよい。
【００７７】
CUは、典型的に方形であり、たとえば、ITU-T H.264などの他のビデオコーディング規格の下で、いわゆるマクロブロックと同様であると見なされ得る。開発中のHEVC規格の現在提案されている態様のいくつかによるコーディングについて、例示のために本出願において説明する。しかしながら、本開示で説明する技法は、H.264または他の規格もしくはプロプライエタリなビデオコーディングプロセスに従って定義されたものなど、他のビデオコーディングプロセスのために有用であり得る。
【００７８】
HMによれば、CUは、1つもしくは複数の予測ユニット(PU)、および/または、1つもしくは複数の変換ユニット(TU)を含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大のCUである、最大コーディングユニット(LCU)を定義し得る。概して、CUは、CUがサイズの差異を有していないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、CUはサブCUに分割され得る。概して、本開示におけるCUへの言及は、ピクチャの最大コーディングユニット、またはLCUのサブCUを指すことがある。LCUはサブCUに分割され得、各サブCUは、さらにサブCUに分割され得る。ビットストリームのためのシンタックスデータは、CU深度と呼ばれる、LCUが分割され得る最大回数を定義し得る。したがって、ビットストリームはまた、最小コーディングユニット(SCU)を定義し得る。本開示はまた、「ブロック」または「部分」という用語を使用して、CU、PU、またはTUのいずれかを指す。概して、「部分」は、ビデオフレームの任意のサブセットを指すことがある。
【００７９】
LCUは、4分木データ構造に関連付けられ得る。概して、4分木データ構造は、CUごとに1つのノードを含み、ただし、ルートノードはLCUに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、その各々がサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを提供し得る。たとえば、4分木におけるノードは、ノードに対応するCUがサブCUに分割されるか否かを示す分割フラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるか否かに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、リーフCUの4つのサブCUもまたリーフCUと呼ばれることになるが、元のリーフCUの明示的な分割はない。たとえば、16×16サイズのCUがさらに分割されない場合、16×16CUが決して分割されなかったにもかかわらず、4つの8×8サブCUもまたリーフCUと呼ばれることになる。
【００８０】
リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分を表し、PUのための参照サンプルを取り出すためのデータを含み得る。たとえば、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルのための解像度(たとえば、4分の1ピクセル精度もしくは8分の1ピクセル精度)、動きベクトルが指す参照フレーム、および/または動きベクトルのための参照リスト(たとえば、リスト0もしくはリスト1)を記述し得る。PUを定義するリーフCUのためのデータはまた、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがコーディングされないか、イントラ予測モード符号化されるか、インター予測モード符号化されるかに応じて異なり得る。イントラコーディングでは、PUは、以下で説明するリーフ変換ユニットと同じに扱われ得る。
【００８１】
新たなHEVC規格は、CUによって異なり得る、変換ユニット(TU)による変換を可能にする。TUは、典型的には、区分されたLCUのために定義された所与のCU内のPUのサイズに基づいてサイズが決められるが、これは、必ずしもそうとは限らないことがある。TUは、典型的には、PUと同じサイズであり、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに細分され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
【００８２】
一般に、PUは、予測プロセスに関連するデータを指す。たとえば、PUがイントラモード符号化されるとき、PUは、PUのためのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。
【００８３】
一般に、TUは、変換および量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。予測に従って、ビデオエンコーダ20は、PUに従ってコーディングノードによって識別されたビデオブロックから残差値を計算し得る。次いで、コーディングノードは、元のビデオブロックではなく残差値を参照するように更新される。残差値は、ピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアル化された変換係数を生成するために、TUにおいて指定された変換と他の変換情報とを使用して、変換係数に変換され、量子化され、走査され得る。コーディングノードは、これらのシリアル化された変換係数を参照するために、もう一度更新され得る。本開示は、典型的には、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示はまた、コーディングノードとPUおよびTUとを含むツリーブロック、すなわち、LCUまたはCUを指すために「ビデオブロック」という用語を使用することがある。
【００８４】
ビデオシーケンスは、典型的には、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPのヘッダ、ピクチャのうちの1つまたは複数のヘッダ、または他の場所において、GOP内に含まれるピクチャの数を記述するシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、典型的には、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは変動するサイズを有してよく、指定されたコーディング規格に従ってサイズが異なり得る。
【００８５】
ブロック(たとえば、ビデオデータの予測ユニット)をコーディングするために、ブロックのための予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラ(I)予測(すなわち、空間的予測)またはインター(PもしくはB)予測(すなわち、時間的予測)のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム(またはスライス)中の隣接参照ブロック中の参照サンプルに関する空間的予測を使用してイントラコード化(I)され得、他の予測ユニットは、他の以前にコーディングされたフレーム(またはスライス)中の参照サンプルのブロックに関して単方向にインターコード化(P)されるか、または双方向にインターコード化(B)され得る。各場合において、参照サンプルは、コーディングされるべきブロックのための予測ブロックを形成するために使用され得る。
【００８６】
予測ブロックを識別すると、元のビデオデータブロック中のピクセルと、その予測ブロック中のピクセルとの間の差分が決定される。この差分は、予測残差データと呼ばれることがあり、コーディングされるべきブロック中のピクセル値と、コード化ブロックを表すために選択された予測ブロック中のピクセル値との間のピクセル差分を示す。よりよい圧縮を達成するために、予測残差データは、変換係数を生成するために、たとえば、離散コサイン変換(DCT)、整数変換、カルーネンレーベ(K-L)変換、または別の変換を使用して変換され得る。
【００８７】
TUなどの変換ブロック中の残差データは、空間的なピクセル領域において存在するピクセル差分値の2次元(2D)アレイにおいて配置され得る。変換は、残差ピクセル値を、周波数領域などの変換領域における変換係数の2次元アレイに変換する。
【００８８】
さらなる圧縮のために、変換係数は、エントロピーコーディングより前に量子化され得る。次いで、エントロピーコーダは、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、確率間隔区分エントロピーコーディング(PIPE)などのエントロピーコーディングを、量子化変換係数に適用する。
【００８９】
本開示の技法は、HEVC規格のエントロピーコーディングおよび2値化技法を改良する。詳細には、本開示の技法は、指数ゴロムライスコーディングのためのプレフィックスビットおよびサフィックスビットの数を限定することによって、残差変換係数を確定する効率を改善し、ならびに上記で説明した他の技法を改善する。
【００９０】
いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成し得る。他の例では、ビデオエンコーダ20は、適応型走査を実行し得る。量子化変換係数を走査して、1次元ベクトルを形成した後、ビデオエンコーダ20は、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【００９１】
図2は、本開示の1つまたは複数の態様による、ビデオデータを符号化するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間的冗長性を低減または除去するために、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの近接フレームまたはピクチャ内のビデオにおける時間的冗長性を低減または除去するために、時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのうちのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのうちのいずれかを指し得る。
【００９２】
図2に示すように、ビデオデータメモリ39は、ビデオフレーム内の現在のビデオブロックを符号化するために使用されるビデオデータを受信する。ビデオデータメモリ39は、(たとえば、ビデオデータを記憶するように構成された)ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ39内に記憶されたビデオデータは、たとえば、ビデオソース18から取得され得る。参照フレームバッファ64(参照ピクチャバッファ64とも呼ばれる)は、(たとえば、イントラ予測コーディングモードまたはインター予測コーディングモードとも呼ばれる、イントラコーディングモードまたはインターコーディングモードにおいて)ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する復号ピクチャバッファ(DPB)の一例である。ビデオデータメモリ39および参照フレームバッファ64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM（登録商標）)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ39および参照フレームバッファ64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ39は、ビデオエンコーダ20の他の構成要素とともにオンチップであっても、それらの構成要素に対してオフチップであってもよい。
【００９３】
図2に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、予測処理ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。デブロッキングフィルタ(図2に図示せず)もまた、再構成されたビデオからブロッキネスアーティファクトを除去するために、ブロック境界をフィルタ処理するために含まれ得る。所望される場合、デブロッキングフィルタは、典型的には、加算器62の出力をフィルタ処理することになる。追加のフィルタ(ループ内またはループ後)もまた、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために図示しないが、所望される場合、(ループ内フィルタとして)加算器62の出力をフィルタ処理し得る。
【００９４】
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、予測処理ユニット40によって複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を提供するために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は代替的に、空間的予測を提供するために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する、受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、複数のコーディングパスを実行して、たとえば、ビデオデータの各ブロックのための適切なコーディングモードを選択し得る。
【００９５】
その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、LCUの各々をサブCUに区分し得る。予測処理ユニット40は、サブCUへのLCUの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
【００９６】
予測処理ユニット40は、たとえば、誤差結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターを選択することができ、残差ブロックデータを生成するために加算器50に、および、参照フレームとして使用するための符号化ブロックを再構成するために加算器62に、得られたイントラまたはインターコード化ブロックを提供する。予測処理ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に提供する。予測処理ユニット40は、レートひずみ分析を使用して、1つまたは複数のインターモードを選択し得る。
【００９７】
動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する、参照フレーム(または他のコード化ユニット)内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得る、ピクセル差分の観点で、コーディングされるべきブロックと厳密に一致することが見出されるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64内に記憶された参照ピクチャのサブ整数ピクセル位置のための値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置の値、8分の1ピクセル位置の値、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００９８】
動き推定ユニット42は、参照ピクチャの予測ブロックの位置とPUの位置とを比較することによって、インターコード化スライス内のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、その各々が参照ピクチャメモリ64内に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、エントロピー符号化ユニット56および動き補償ユニット44に計算された動きベクトルを送る。
【００９９】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。この場合も、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42は、ルーマコーディングブロックに対して動き推定を実行し、動き補償ユニット44は、クロマコーディングブロックとルーマコーディングブロックの両方のために、ルーマコーディングブロックに基づいて計算された動きベクトルを使用する。予測処理ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成し得る。
【０１００】
イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するために使用するためのイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パスの間、様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測ユニット46(または、いくつかの例では、予測処理ユニット40)は、テストされたモードから、使用するための適切なイントラ予測モードを選択し得る。
【０１０１】
たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用して、レートひずみ値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の非符号化ブロックとの間のひずみ(または誤差)の量、ならびに、符号化ブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックのための最良のレートひずみ値を示すかを決定するために、様々な符号化ブロックに関するひずみおよびレートから比を計算し得る。
【０１０２】
ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る、送信されるビットストリーム構成データ内に、様々なブロックのための符号化コンテキストの定義と、コンテキストの各々について使用するための、最もあり得るイントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含め得る。
【０１０３】
ビデオエンコーダ20は、コーディングされている元のビデオブロックから、予測処理ユニット40からの予測データを減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を、残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換もまた使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送り得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【０１０４】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合には、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)へ送信されるか、または、後の送信もしくは取出しのためにアーカイブされ得る。エントロピー符号化ユニット56は、エントロピーコーディングの効率と、変換係数の絶対値、たとえば、coeff_abs_level_remaining[n]の2値化とを改善することに関する、本開示の技法を実行するように構成され得る。
【０１０５】
逆量子化ユニット58および逆変換ユニット60は、たとえば、参照ブロックとして後に使用するための、ピクセル領域における残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数ピクセル値を計算し得る。加算器62は、動き補償ユニット44によって生成された動き補償された予測ブロックに再構成された残差ブロックを加算して、参照ピクチャメモリ64内に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために、参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【０１０６】
TUのサンプル値を変換した後、変換処理ユニット52は、変換された係数を変換係数の符号値と絶対値とに分離し得、変換処理ユニット52は、変換された係数を量子化ユニット54にシグナリングし得る。量子化ユニット54は、ブロックが無損失モードを使用してコーディングされない場合、ブロックの変換係数を量子化し得、量子化された、または量子化されていない変換係数をエントロピー符号化ユニット56にシグナリングし得る。
【０１０７】
エントロピー符号化ユニット56は、変換係数を、significant_coeff_flagによってシグナリングされ得る有意性マップと、任意の非ゼロ係数の符号を示すcoeff_sign_flagとを含む、説明したシンタックス要素に符号化し得る。
【０１０８】
エントロピー符号化ユニット56は、上記で説明したように、ゴロムライス/指数ゴロムコーディングを使用する、プレフィックスとオプションのサフィックスとを有する2値化を使用して、coeff_abs_level_remainingシンタックス要素をさらに符号化し得る。プレフィックスの最後の間隔は、様々な例では、短縮単項表現を使用してコーディングされ得る。追加として、エントロピー符号化ユニット56は、ビデオデータのブロックのビット深度に基づき得る、最大プレフィックス長と最大サフィックス長とに従って、プレフィックスとサフィックスとを符号化し得る。
【０１０９】
本開示の技法によれば、ビデオエンコーダ20、および特にエントロピー符号化ユニット56は、ビデオデータのコーディングユニットのための変換係数を生成すること、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素を符号化するときに使用されるべきビットの最大数を決定すること、および、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを符号化するときに使用されるべきサフィックスビットの最大数を決定することであって、サフィックスビットの最大数は、変換係数の絶対値の各々を符号化するときに使用されるべきビットの最大数に基づくことを行うように構成され得る。
【０１１０】
エントロピー符号化ユニット56は、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを符号化するときに使用されるべきプレフィックスビットの最大数を決定することであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくこと、変換係数の絶対値のうちの1つのためのプレフィックスコードワードを符号化することであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること、および、変換係数の絶対値のうちの1つのためのサフィックスコードワードを符号化することであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されることを行うようにさらに構成され得る。エントロピー符号化ユニット56は、シンタックス要素を符号化ビットストリームへと生成し、符号化プレフィックスコードワードと符号化サフィックスコードワードとに基づいて、コーディングユニットを符号化し得る。
【０１１１】
図3は、本開示の1つまたは複数の態様による、ビデオデータを復号するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデータメモリ69は、符号化ビデオを受信する。ビデオデータメモリ69は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し(たとえば、ビデオデータを記憶するように構成され)得る。ビデオデータメモリ69内に記憶されたビデオデータは、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理的なデータ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ69は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。
【０１１２】
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、加算器80と、参照ピクチャメモリ82とを含む。図3の例では、ビデオデコーダ30は予測ユニット71を含み、予測ユニット71は、動き補償ユニット72とイントラ予測ユニット74とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関連して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得るが、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
【０１１３】
復号プロセスの間、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
【０１１４】
エントロピー復号ユニット70は、significant_coeff_flagシンタックス要素、およびcoeff_sign_flagシンタックス要素、およびcoeff_abs_level_remainingシンタックス要素など、様々なシンタックス要素の2値化表現を受信するように構成され得る。エントロピー復号ユニット70は、本開示の技法による、ゴロムライス/指数ゴロムコーディングを使用する、プレフィックスとオプションのサフィックスとを有する2値化を使用して、coeff_abs_level_remaining[n]シンタックス要素を復号し得る。プレフィックスの最後の間隔は、様々な例によれば、短縮単項表現を使用して復号され得る。追加として、エントロピー復号ユニット70は、最大プレフィックス長とサフィックス長とに従って、プレフィックスとサフィックスとを復号し得る。最大プレフィックス長は、ビデオデータのブロックのビット深度に基づき得る。
【０１１５】
本開示の技法によれば、エントロピー復号ユニット70は、ビデオデータのコーディングユニットの変換係数の絶対値を示す符号化シンタックス要素を復号するときに使用されるべきビットの最大数を決定すること、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを復号するときに使用されるべきサフィックスビットの最大数を決定することであって、サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づくことを行うように構成され得る。エントロピー復号ユニット70は、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数を決定することであって、プレフィックスビットの最大数は、サフィックスビットの最大数に基づくこと、符号化ビットストリームから、ビデオデータのコーディングユニットのための変換係数の絶対値を示すシンタックス要素を受信すること、係数の絶対値のうちの1つのためのプレフィックスコードワードを復号することであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること、および、係数のうちの1つのためのサフィックスコードワードを復号することであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されることを行うようにさらに構成され得る。エントロピー復号ユニット70はまた、復号プレフィックスと復号サフィックスとに基づいて、変換係数のうちの1つのための絶対値を決定すること、および、変換係数の決定された絶対値に基づいて、コーディングユニットを復号することを行うようにさらに構成され得る。
【０１１６】
TUのサンプル値を変換した後、変換処理ユニット52は、変換された係数を変換係数の符号値と絶対値とに分離し得、変換処理ユニット52は、変換された係数を量子化ユニット54にシグナリングし得る。量子化ユニット54は、ブロックが無損失モードを使用してコーディングされない場合、ブロックの変換係数を量子化し得、量子化された、または量子化されていない変換係数をエントロピー符号化ユニット56にシグナリングし得る。
【０１１７】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82内に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、リスト0およびリスト1を構成し得る。
【０１１８】
動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって、現在のビデオスライスのビデオブロックのための予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、受信したシンタックス要素の一部を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測状態と、現在のビデオスライス内のビデオブロックを復号するための他の情報とを決定する。
【０１１９】
動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化の間にビデオエンコーダ20によって使用されるように補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、補間フィルタを使用して、予測ブロックを生成し得る。
【０１２０】
逆量子化ユニット76は、ビットストリーム中で提供され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち逆量子化(de quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックのための、ビデオデコーダ30によって計算された量子化パラメータQPYの使用を含み得る。
【０１２１】
逆変換ユニット78は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを適用する。
【０１２２】
動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、デブロッキングフィルタもまた、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するために適用され得る。(コーディングループ内またはコーディングループ後のいずれかの)他のループフィルタもまた、ピクセル遷移を平滑化するため、またはさもなければビデオ品質を改善するために使用され得る。次いで、所与のフレームまたはピクチャ中の復号ビデオブロックは、参照ピクチャメモリ82内に記憶され、参照ピクチャメモリ82は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後に提示するための復号ビデオを記憶する。
【０１２３】
図4は、本開示の技法による例示的な方法を示すフローチャートである。図4の方法は、ビデオデコーダによって(たとえば、図3のビデオデコーダ30によって)実行され得る。ビデオデコーダ30は、ビデオコーディングプロセスにおいてビデオデータのコーディングユニットの変換係数をコーディングする方法を実行するように構成され得る。
【０１２４】
ビデオデコーダ30は、ビデオデータのコーディングユニットの変換係数の絶対値を復号するときに使用されるべきビットの最大数を決定するように構成され得る(120)。ビデオデコーダ30は、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを復号するときに使用されるべきサフィックスビットの最大数をさらに決定し得る(122)。サフィックスビットの最大数は、変換係数の絶対値の各々をコーディングするときに使用されるべきビットの最大数に基づく。
【０１２５】
ビデオデコーダ30は、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを復号するときに使用されるべきプレフィックスビットの最大数をさらに決定し得る(124)。プレフィックスビットの最大数は、サフィックスビットの最大数に基づく。ビデオデコーダ30は、符号化ビットストリームから、ビデオデータのコーディングユニットのための変換係数の絶対値を示すシンタックス要素を受信する(126)。
【０１２６】
ビデオデコーダ30は、係数の絶対値のうちの1つのためのプレフィックスコードワードを復号することであって、プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有すること(128)、および、係数のうちの1つのためのサフィックスコードワードを復号することであって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有し、サフィックスコードワードは、プレフィックスコードワードに連結されること(130)を行うようにさらに構成され得る。
【０１２７】
最後に、ビデオデコーダ30は、復号プレフィックスと復号サフィックスとに基づいて、変換係数のうちの1つのための絶対値を決定すること(132)、および、変換係数の復号された絶対値に基づいて、コーディングユニットを復号すること(134)を行い得る。
【０１２８】
様々な例では、ビデオデコーダ30は、短縮単項表現を使用して、プレフィックスコードワードを復号するように構成され得る。また、プレフィックスコードワードとサフィックスコードワードとを復号するために、ビデオデコーダ30は、coeff_abs_level_remainingシンタックス要素の値を復号し得る。
【０１２９】
様々な例では、プレフィックスビットの最大数とサフィックスビットの最大数とを決定するために、ビデオデコーダ30は、変換係数の絶対値のサンプルのビット深度に基づいて、プレフィックスビットの最大数とサフィックスビットの最大数とを決定し得る。サフィックスビットの最大数は、コーディングユニットのビデオ成分のためのLog2TransformRange変数の値に等しくなり得、Log2TransformRange変数の値は、変換係数の絶対値を表すために必要とされるビットの最大数を示し得る。
【０１３０】
ビデオデコーダ30は、コーディングユニットのコーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、プレフィックスビットの最大数とサフィックスビットの最大数とを調整するようにさらに構成され得る。ビデオデコーダ30はまた、コーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、プレフィックスビットの最大数とサフィックスビットの最大数とが等しいと決定するようにも構成され得る。
【０１３１】
いくつかの例では、サフィックスビットの最大数を決定するために、ビデオデコーダ30は、サフィックスビットの最大数が、変換係数の絶対値をコーディングするときに使用されるべきビットの最大数と、プレフィックスビットの最大数との間の差に等しいと決定し得る。
【０１３２】
プレフィックスの最大値は、プレフィックスビットの最大数を有する最大の短縮単項表現を備え得る。サフィックスビットの最大数を決定するために、ビデオデコーダ30は、サフィックスビットの最大数が、係数のいずれかを表すために必要とされるビットの最大数に等しいと決定するように構成され得る。様々な例では、ビデオデコーダ30は、コーディングユニットのコーディングモードに基づいて、プレフィックスビットの最大数とサフィックスビットの最大数とを調整するようにさらに構成され得る。
【０１３３】
図5は、本開示の技法による例示的な方法を示すフローチャートである。図5の方法は、ビデオエンコーダによって(たとえば、図2のビデオエンコーダ20によって)実行され得る。ビデオエンコーダ20は、ビデオコーディングプロセスにおいてビデオデータのコーディングユニットの変換係数をコーディングする方法を実行するように構成され得る。
【０１３４】
ビデオエンコーダ20は、ビデオデータのコーディングユニットのための変換係数を生成すること(160)、ビデオデータのコーディングユニットの変換係数の絶対値を示すシンタックス要素を符号化するときに使用されるべきビットの最大数を決定すること(162)、係数の絶対値を示すシンタックス要素のゴロムライス/指数ゴロムコーディングサフィックスコードワードを符号化するときに使用されるべきサフィックスビットの最大数を決定すること(164)を行うように構成され得る。サフィックスビットの最大数は、変換係数の絶対値の各々を符号化するときに使用されるべきビットの最大数に基づく。
【０１３５】
ビデオエンコーダ20はまた、係数の絶対値を示すシンタックス要素の単項ゴロムライス/指数ゴロムコーディングプレフィックスコードワードを符号化するときに使用されるべきプレフィックスビットの最大数を決定し得る(166)。プレフィックスビットの最大数は、サフィックスビットの最大数に基づく。
【０１３６】
ビデオエンコーダ20は、変換係数の絶対値のうちの1つのためのプレフィックスコードワードを符号化するようにさらに構成され得る(168)。プレフィックスコードワードは、プレフィックスビットの最大数以下であるビット数を有する。ビデオエンコーダ20は、変換係数の絶対値のうちの1つのためのサフィックスコードワードを符号化すること(170)であって、サフィックスコードワードは、サフィックスビットの最大数以下であるビット数を有することを行うようにさらに構成され得る。サフィックスコードワードは、プレフィックスコードワードに連結される。ビデオエンコーダ20は、シンタックス要素を符号化ビットストリームへと生成すること(172)、および、プレフィックスコードワードとサフィックスコードワードとに基づいて、コーディングユニットを符号化すること(174)を行うようにさらに構成され得る。
【０１３７】
様々な例では、プレフィックスコードワードは、短縮単項表現を備え得る。サフィックスビットの最大数はまた、コーディングユニットのビデオ成分のためのLog2TransformRange変数の値に等しくなり得、Log2TransformRange変数の値は、いくつかの例では、変換係数の絶対値を表すために必要とされるビットの最大数を示す。プレフィックスの最大値はまた、様々な例では、プレフィックスビットの最大数を有する最大の短縮単項表現を備え得る。
【０１３８】
追加として、プレフィックスコードワードを符号化するために、ビデオエンコーダ20は、coeff_abs_level_remainingシンタックス要素の値を符号化するように構成され得る。プレフィックスビットの最大数とサフィックスビットの最大数とを決定するために、ビデオエンコーダ20は、変換係数の絶対値のサンプルのビット深度に基づいて、プレフィックスビットの最大数とサフィックスビットの最大数とを決定するように構成され得る。
【０１３９】
いくつかの例では、ビデオエンコーダ20は、コーディングユニットのコーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、プレフィックスビットの最大数とサフィックスビットの最大数とを調整するようにさらに構成され得る。ビデオエンコーダ20はまた、コーディングモードがバイパスモード、無損失モード、またはスキップモードであるとき、プレフィックスビットの最大数とサフィックスビットの最大数とが等しいと決定するようにさらに構成され得る。
【０１４０】
サフィックスビットの最大数を決定するために、ビデオエンコーダ20は、サフィックスビットの最大数が、変換係数の絶対値をコーディングするときに使用されるべきビットの最大数と、プレフィックスビットの最大数との間の差に等しいと決定するように構成され得る。
【０１４１】
いくつかの例では、サフィックスビットの最大数を決定するために、ビデオエンコーダ20は、サフィックスビットの最大数が、係数のいずれかを表すために必要とされるビットの最大数に等しいと決定するように構成され得る。ビデオエンコーダ20はまた、いくつかの例では、コーディングユニットのコーディングモードに基づいて、プレフィックスビットの最大数とサフィックスビットの最大数とを調整するようにさらに構成され得る。
【０１４２】
1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアにおいて実装された場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示で説明した技法を実装するための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１４３】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-ray（登録商標）ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１４４】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積論理回路もしくは離散論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられてよく、あるいは複合コーデックに組み込まれてよい。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【０１４５】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて結合されてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１４６】
様々な例について説明した。これらの例および他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１４７】
10  ビデオ符号化および復号システム、システム
12  ソースデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
31  記憶デバイス
32  ディスプレイデバイス
39、69  ビデオデータメモリ
40  予測処理ユニット
42  動き推定ユニット
44、72  動き補償ユニット
46、74  イントラ予測ユニット
48  区分ユニット
50、62、80  加算器
52  変換処理ユニット
54  量子化ユニット
56  エントロピー符号化ユニット
58、76  逆量子化ユニット
60、78  逆変換ユニット
64  参照フレームバッファ、参照ピクチャバッファ、参照ピクチャメモリ
70  エントロピー復号ユニット
71  予測ユニット
82  参照ピクチャメモリ
【図１】
0006527877.tif 000009
【図２】
0006527877.tif 000010
【図３】
0006527877.tif 000011
【図４】
0006527877.tif 000012
【図５】
0006527877.tif 000013