(57)【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を符号化し、前記第２のＲＱＴ深度において前記クロマ情報を符号化することとを備え、
前記ルーマ情報を符号化することが、ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において残差ルーマサンプルに前記第１の変換を適用することを含み、前記クロマ情報を符号化することが、クロマ変換係数を生成するために、前記第２のＲＱＴ深度において残差クロマサンプルに前記第２の変換を適用することを含むように、前記ルーマ情報は、前記残差ルーマサンプルを含み、前記クロマ情報は、前記残差クロマサンプルを含む、方法。
【請求項２】
前記ルーマ情報と前記クロマ情報とを符号化することが、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとをさらに含む、請求項１に記載の方法。
【請求項３】
ビデオデータを復号する方法であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を復号し、前記第２のＲＱＴ深度において前記クロマ情報を復号することとを備え、
前記ルーマ情報を復号することが、残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度においてルーマ変換係数に前記第１の変換を適用することを含み、前記クロマ情報を復号することが、残差クロマサンプルを生成するために、前記第２のＲＱＴ深度においてクロマ変換係数に前記第２の変換を適用することを含むように、前記ルーマ情報は、前記ルーマ変換係数を含み、前記クロマ情報は、前記クロマ変換係数を含む、方法。
【請求項４】
前記第１の変換が前記第２の変換よりも小さい、請求項１または請求項３に記載の方法。
【請求項５】
前記第２のＲＱＴ深度を決定することが、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定することを含む、請求項１または請求項３に記載の方法。
【請求項６】
前記差を決定することが、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、前記差のインジケーションを含んでいるスライスヘッダとのうちの１つを復号することを含む、請求項５に記載の方法。
【請求項７】
前記第２のＲＱＴ深度を決定することが、所定のＲＱＴ深度を決定することを含む、請求項１または請求項３に記載の方法。
【請求項８】
前記所定のＲＱＴ深度を決定することが、０のＲＱＴ深度を決定することと、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することとを含む、請求項７に記載の方法。
【請求項９】
前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションを符号化または復号することをさらに含む、請求項１または請求項３に記載の方法。
【請求項１０】
前記インジケーションを符号化または復号することが、ルーマ情報とは異なるＲＱＴ深度においてクロマ情報がシグナリングされることを示すフラグを符号化または復号することを含む、請求項９に記載の方法。
【請求項１１】
ビデオデータを符号化するための装置であって、
ビデオデータのブロックを記憶するように構成されたメモリと、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を符号化し、前記第２のＲＱＴ深度において前記クロマ情報を符号化することと
を行うように構成された１つまたは複数のプロセッサと、を備え、
前記ルーマ情報を符号化することが、ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において残差ルーマサンプルに前記第１の変換を適用することを含み、前記クロマ情報を符号化することが、クロマ変換係数を生成するために、前記第２のＲＱＴ深度において残差クロマサンプルに前記第２の変換を適用することを含むように、前記ルーマ情報は、前記残差ルーマサンプルを含み、前記クロマ情報は、前記残差クロマサンプルを含む、
装置。
【請求項１２】
前記ルーマ情報と前記クロマ情報とを符号化するために、ビデオエンコーダの前記１つまたは複数のプロセッサが、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとを行うように構成された、請求項１１に記載の装置。
【請求項１３】
ビデオデータを復号するための装置であって、
ビデオデータのブロックを記憶するように構成されたメモリと、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を復号し、前記第２のＲＱＴ深度において前記クロマ情報を復号することと
を行うように構成された１つまたは複数のプロセッサと、を備え、
前記ルーマ情報を復号することが、残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度においてルーマ変換係数に前記第１の変換を適用することを含み、前記クロマ情報を復号することが、残差クロマサンプルを生成するために、前記第２のＲＱＴ深度においてクロマ変換係数に前記第２の変換を適用することを含むように、前記ルーマ情報は、前記ルーマ変換係数を含み、前記クロマ情報は、前記クロマ変換係数を含む、
装置。
【請求項１４】
前記第１の変換が前記第２の変換よりも小さい、請求項１１または１３に記載の装置。
【請求項１５】
前記第２のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定するように構成された、請求項１１または請求項１３に記載の装置。
【請求項１６】
前記差を決定するために、前記１つまたは複数のプロセッサが、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、前記差のインジケーションを含んでいるスライスヘッダとのうちの１つを復号するように構成された、請求項１５に記載の装置。
【請求項１７】
前記第２のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、所定のＲＱＴ深度を決定するように構成された、請求項１１または請求項１３に記載の装置。
【請求項１８】
前記所定のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、０のＲＱＴ深度を決定することと、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することとを行うように構成された、請求項１７に記載の装置。
【請求項１９】
前記１つまたは複数のプロセッサが、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションを符号化または復号するようにさらに構成された、請求項１１または請求項１３に記載の装置。
【請求項２０】
前記インジケーションを符号化または復号するために、前記１つまたは複数のプロセッサが、ルーマ情報とは異なるＲＱＴ深度においてクロマ情報がシグナリングされることを示すフラグを符号化または復号するように構成された、請求項１９に記載の装置。
【請求項２１】
前記装置がビデオエンコーダを備える、請求項１１に記載の装置。
【請求項２２】
前記装置がビデオデコーダを備える、請求項１３に記載の装置。
【請求項２３】
ビデオデータを符号化するための装置であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定するための手段であって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定するための手段と、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定するための手段であって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定するための手段と、
前記第１のＲＱＴ深度において前記ルーマ情報を符号化し、前記第２のＲＱＴ深度において前記クロマ情報を符号化するための手段とを備え、
前記ルーマ情報を符号化することが、ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において残差ルーマサンプルに前記第１の変換を適用することを含み、前記クロマ情報を符号化することが、クロマ変換係数を生成するために、前記第２のＲＱＴ深度において残差クロマサンプルに前記第２の変換を適用することを含むように、前記ルーマ情報は、前記残差ルーマサンプルを含み、前記クロマ情報は、前記残差クロマサンプルを含む、
装置。
【請求項２４】
前記ルーマ情報と前記クロマ情報とを符号化するための前記手段が、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとを行うようにさらに構成された、請求項２３に記載の装置。
【請求項２５】
ビデオデータを復号するための装置であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定するための手段であって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定するための手段と、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定するための手段であって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定するための手段と、
前記第１のＲＱＴ深度において前記ルーマ情報を復号し、前記第２のＲＱＴ深度において前記クロマ情報を復号するための手段とを備え、
前記ルーマ情報を復号することが、残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度においてルーマ変換係数に前記第１の変換を適用することを含み、前記クロマ情報を復号することが、残差クロマサンプルを生成するために、前記第２のＲＱＴ深度においてクロマ変換係数に前記第２の変換を適用することを含むように、前記ルーマ情報は、前記ルーマ変換係数を含み、前記クロマ情報は、前記クロマ変換係数を含む、
装置。
【請求項２６】
前記第２のＲＱＴ深度は、前記第１の変換が前記第２の変換よりも小さくなるように前記第１のＲＱＴ深度よりも高い、請求項２３または請求項２５に記載の装置。
【請求項２７】
前記第２のＲＱＴ深度を決定するための前記手段が、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定するための手段を備える、請求項２３または請求項２５に記載の装置。
【請求項２８】
前記第２のＲＱＴ深度を決定するための前記手段が、所定のＲＱＴ深度を決定するための手段を備える、請求項２３または請求項２５に記載の装置。
【請求項２９】
前記所定のＲＱＴ深度を決定するための前記手段が、０のＲＱＴ深度を決定するための手段と、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用するための手段とを備える、請求項２８に記載の装置。
【請求項３０】
前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションを符号化するための手段または復号するための手段をさらに備える、請求項２３または請求項２５に記載の装置。
【請求項３１】
コンピュータプログラムであって、実行されたときに、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を符号化し、前記第２のＲＱＴ深度において前記クロマ情報を符号化することとを、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに行わせる命令を備え、
前記ルーマ情報を符号化することが、ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において残差ルーマサンプルに前記第１の変換を適用することを含み、前記クロマ情報を符号化することが、クロマ変換係数を生成するために、前記第２のＲＱＴ深度において残差クロマサンプルに前記第２の変換を適用することを含むように、前記ルーマ情報は、前記残差ルーマサンプルを含み、前記クロマ情報は、前記残差クロマサンプルを含む、
コンピュータプログラム。
【請求項３２】
コンピュータプログラムであって、実行されたときに、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき、ビデオデータの前記ブロックに関する残差４分木（ＲＱＴ）の第１のＲＱＴ深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき、ビデオデータの前記ブロックに関する前記ＲＱＴの第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記ＲＱＴにおいて前記第１のＲＱＴ深度よりも浅い、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報を復号し、前記第２のＲＱＴ深度において前記クロマ情報を復号することとを、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに行わせる命令を備え、
前記ルーマ情報を復号することが、残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度においてルーマ変換係数に前記第１の変換を適用することを含み、前記クロマ情報を復号することが、残差クロマサンプルを生成するために、前記第２のＲＱＴ深度においてクロマ変換係数に前記第２の変換を適用することとを含むように、前記ルーマ情報は、前記ルーマ変換係数を含み、前記クロマ情報は、前記クロマ変換係数を含む、
コンピュータプログラム。
【請求項３３】
前記第１の変換が前記第２の変換よりも小さい、請求項３１または請求項３２に記載のコンピュータプログラム。
【請求項３４】
前記命令が、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定することによって前記第２のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、請求項３１または請求項３２に記載のコンピュータプログラム。
【請求項３５】
前記命令が、所定のＲＱＴ深度を決定することによって前記第２のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、請求項３１または請求項３２に記載のコンピュータプログラム。
【請求項３６】
前記命令が、０のＲＱＴ深度を決定し、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することによって、前記所定のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、請求項３５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、いずれもその内容全体が参照により本明細書に組み込まれる、２０１１年３月１０日に出願された米国仮特許出願第６１／４５１，５８１号、および２０１１年１１月４日に出願された米国仮特許出願第６１／５５５，９８６号の優先権を主張する。
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングにおける変換の使用に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているような、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の近隣ブロックにおける参照サンプルに関する空間的予測、または他の参照ピクチャ中の参照サンプルに関する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックをポイントする動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数を生じ得、残差変換係数は、次いで量子化され得る。最初に２次元アレイに配置された量子化変換係数は、変換係数の１次元ベクトルを生成するために走査されることができ、エントロピーコーディングが、一層の圧縮を達成するために適用され得る。
【発明の概要】
【０００６】
本開示の技法は、概して、ビデオコーディングにおいて変換を適用することに関する。たとえば、本開示の技法は、ビデオデータのブロックに関連するルーマ情報とクロマ情報とに別様にサイズ決定された変換を適用することを含む。すなわち、ビデオコーディング中に、ビデオコーダは、階層４分木区分構造に従って、ビデオデータのブロックを分割し得る。さらに、ブロックごとに、ビデオコーダは、符号化されていないピクチャのピクセル間のピクセル差分に対応する残差値と予測ピクセル値とを計算し得る。ビデオコーダは、次いで、残差変換係数を生成するために、残差ビデオデータに変換（たとえば、離散コサイン変換（ＤＣＴ：discrete cosine transform）、整数変換、ウェーブレット変換、または概念的に同様の変換）を適用し得る。
【０００７】
本開示の技法は、クロマ情報とは異なる４分木深度においてルーマ情報に変換を適用することを含む。たとえば、本開示の態様は、ルーマ情報とクロマ情報とに変換が適用される方法を分離することに関する。したがって、いくつかの事例では、ある特定の変換は、（たとえば、ビデオデータのブロックが分割された回数を表す）第１の４分木深度においてルーマ情報に適用され得るが、別の変換は、ルーマ情報とは異なる第２の４分木深度においてクロマ情報に適用され得る。他の例では、変換は、同じ４分木深度において適用され得る。
【０００８】
一例では、本開示の態様は、ビデオデータをコーディングする方法に関する。該方法は、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定することと、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングすることとを含む。
【０００９】
別の例では、本開示の態様は、ビデオデータをコーディングするための装置に関する。該装置は、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定することと、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングすることとを行うように構成された１つまたは複数のプロセッサを含む。
【００１０】
別の例では、本開示の態様は、ビデオデータをコーディングするための装置に関する。本装置は、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定するための手段であって、ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定するための手段と、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定するための手段であって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定するための手段と、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングするための手段とを含む。
【００１１】
別の例では、本開示の態様は、実行されたとき、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定することと、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングすることとを、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品に関する。
【００１２】
本開示の１つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本開示で説明する技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示で説明する技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】本開示で説明する技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図４】ビデオデータのブロックに関連するルーマサンプルとクロマサンプルとを含むビデオデータの例示的なブロックを示す図。
【図５Ａ】本開示の態様による、例示的な階層４分木構造を示す図。
【図５Ｂ】図５Ａに示した階層４分木構造による、変換ユニットの例示的な分割を示す図。
【図６】本開示の態様による、残差ルーマおよびクロマ情報に変換を適用する例示的な方法を示す流れ図。
【図７】本開示の態様による、変換情報を符号化する例示的な方法を示す流れ図。
【図８】本開示の態様による、変換情報を復号する例示的な方法を示す流れ図。
【詳細な説明】
【００１４】
ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスの進化モデルに基づく。概して、提案されたＨＥＶＣ規格によれば、ビデオフレームまたはピクチャは、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ：largest coding unit）に分割され得る。たとえば、ツリーブロックは、概して、３つのサンプルアレイを有するピクチャのクロマサンプル（Ｃｂ、Ｃｒ）の２つの対応するブロックとともに、ルーマサンプル（Ｙ）のＮ×Ｎブロックを含む。いくつかの例では、クロマ情報は、ルーマ情報に関してサブサンプリングされ得る。すなわち、ビデオデータの所与のブロックについて、ルーマ成分は、クロマ成分の２倍のレートでサンプリングされ得る。
【００１５】
ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大のコーディングユニットであるＬＣＵのサイズを定義し得る。スライスは、いくつかの連続的なツリーブロックをコーディング順に含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ：coding unit）に分割され得る。たとえば、４分木のルートノード（たとえば、ＬＣＵ）としてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。最終的な、分割されていない子ノードは、４分木のリーフノードとして、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、（たとえば、最大ＣＵ深度と呼ばれることがある）ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００１６】
４分木データ構造の各ノードは、対応するＣＵについてのシンタックスデータを与え得る。たとえば、４分木中のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵについてのシンタックス要素は、再帰的に定義され得、そのＣＵがサブＣＵに分割されるかどうかに依存し得る。ＣＵがさらに分割されない場合、そのＣＵはリーフＣＵと呼ばれる。本開示では、元のリーフＣＵの明示的分割が存在しない場合でも、リーフＣＵの４つのサブＣＵをリーフＣＵとも呼ぶことにする。たとえば、１６×１６サイズのＣＵがさらに分割されない場合、この１６×１６ＣＵが決して分割されなくても、４つの８×８サブＣＵをリーフＣＵとも呼ぶことにする。
【００１７】
ＣＵは、ＣＵがサイズの差異を有さないことを除いて、Ｈ．２６４規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、（サブＣＵとも呼ばれる）４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードと呼ばれる、最終的な、分割されていない子ノードは、リーフＣＵとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大ＣＵ深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。本開示では、ＨＥＶＣのコンテキストではＣＵ、ＰＵ、またはＴＵのいずれか、または他の規格のコンテキストでは同様のデータ構造（たとえば、Ｈ．２６４／ＡＶＣにおけるマクロブロックおよびそれらのサブブロック）を指すために、「ブロック」という用語を使用する。
【００１８】
ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ：prediction unit）および変換ユニット（ＴＵ：transform unit）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセルまたはそれ以上のツリーブロックのサイズまで及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。ＰＵは、非正方形に区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、正方形または非正方形（たとえば、矩形）であり得る。
【００１９】
ＨＥＶＣ規格によって、ＣＵごとに異なり得るＴＵに従う変換が可能になる。ＴＵは、一般に、区分されたＬＣＵに対して定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用して、より小さいユニットに再分割され得る。ＲＱＴは、ＣＵのルーマ成分とクロマ成分の両方に適用され得る。したがって、概して、ＲＱＴは、ＣＵをＴＵに区分することの再帰的表現である。ＴＵは、ルーマサンプルとクロマサンプルとに変換が適用される方法を定義する。すなわち、たとえば、ＴＵに関連するピクセル差分値は変換されて、変換係数を生成し得、それは量子化され得る。
【００２０】
リーフＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分に対応する空間領域を表し、そのＰＵの参照サンプルを取り出すためのデータを含み得る。さらに、ＰＵは、予測に関係するデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵに対応するＴＵのためのイントラ予測モードを記述するデータを含み得る、ＰＵについてのデータが残差４分木（ＲＱＴ）中に含まれ得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの１つまたは複数の動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度または１／８ピクセル精度）、動きベクトルがポイントする参照ピクチャ、および／あるいは動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、またはリストＣ）を記述し得る。
【００２１】
１つまたは複数のＰＵを有するリーフＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。変換ユニットは、上記で説明したように、（ＴＵ４分木構造とも呼ばれる）ＲＱＴを使用して指定され得る。たとえば、分割フラグは、リーフＣＵが４つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、４つのサブＴＵに分割され得る。ＴＵがさらに分割されないとき、そのＴＵはリーフＴＵと呼ばれ得る。概して、イントラコーディングの場合、リーフＣＵに属するすべてのリーフＴＵは、同じイントラ予測モードを共有する。すなわち、概して、リーフＣＵのすべてのＴＵの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフＴＵの残差値を、ＴＵに対応するＣＵの一部分と元のブロックとの間の差として計算し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵはＰＵよりも大きいことも小さいこともあり得る。イントラコーディングの場合、ＰＵは、同じＣＵの対応するリーフＴＵとコロケートされ得る。いくつかの例では、リーフＴＵの最大サイズは、対応するリーフＣＵのサイズに対応し得る。
【００２２】
その上、リーフＣＵのＴＵも、残差４分木（ＲＱＴ）と呼ばれる、それぞれの４分木データ構造に関連付けられ得る。すなわち、リーフＣＵは、リーフＣＵがどのようにＴＵに区分されるかを示す４分木を含み得る。ＴＵ４分木のルートノードは、概して、リーフＣＵに対応し、一方、ＣＵ４分木のルートノードは、概して、ツリーブロック（またはＬＣＵ）に対応する。分割されないＲＱＴのＴＵはリーフＴＵと呼ばれる。概して、本開示では、特に明記しない限り、リーフＣＵおよびリーフＴＵに言及するためにそれぞれＣＵおよびＴＵという用語を使用する。
【００２３】
コーディング効率は、所与のＴＵに関連する残差値の大きい変動を回避することによって改善され得る。すなわち、全体的に一様な残差値に変換を適用することにより、比較的少数の変換係数にエネルギーを集中することになり、それにより、（たとえば、図２に関して以下でより詳細に説明するように）エントロピーコーディング効率が改善され得る。所与のフレーム（またはスライス）のルーマサンプルは、一般に、クロマサンプルよりも幅広いおよび／または劇的な変動を受け得る。一方、クロマサンプルは、所与のブロックについて比較的一様であり得る。したがって、大きいルーマ残差変動を回避するために比較的小さい変換サイズが必要とされ得るが、コーディング効率に影響を及ぼすことなしに、クロマ残差について、より大きい変換が使用され得る。
【００２４】
一般に、ビデオコーダは、同じＲＱＴ深度においてルーマサンプルとクロマサンプルの両方に変換を適用する。しかしながら、ルーマ情報は、クロマ情報よりも高いレートでサンプリングされ得るので、ルーマサンプルとクロマサンプルとに適用される変換のサイズは異なり得る。説明のための一例では、３２×３２ＴＵは、ＲＱＴ構造に従って２回分割され得る。この例では、（ルーマ情報がクロマ情報の２倍のレートでサンプリングされると仮定すると）８×８変換サイズがリーフＴＵのルーマサンプルに適用され得、一方、４×４変換サイズがリーフＴＵのクロマサンプルに適用され得る。
【００２５】
本開示の技法は、ブロック残差ビデオデータのルーマサンプルとクロマサンプルとに異なるサイズの変換を適用することに関する。より詳細には、本開示の技法は、ＴＵの（たとえば、ＲＱＴ構造に従う）異なる深度においてＴＵに関連するルーマ成分とクロマ成分とに変換を適用することを含む。すなわち、たとえば、ＴＵのリーフノードにおいてＴＵのルーマサンプルに変換が適用され得、一方、ＴＵのより高い深度においてクロマ成分に変換が適用され得る（ここで、たとえば、「より高い」は、ＲＱＴ構造においてより浅い位置に関連付けられる）。
【００２６】
説明のための一例では、６４×６４ＴＵ（たとえば、ルーマがクロマの２倍のレートでサンプリングされると仮定すると、６４×６４残差ルーマサンプルと３２×３２残差クロマサンプルと）は、ＲＱＴに従って３回分割され得る。この例では、ＴＵは、深度３において８×８リーフＴＵを含む。ビデオコーダは、深度３においてルーマサンプルに（たとえば、リーフＴＵの８×８ルーマサンプルに）変換を適用し、一方、深度１においてクロマサンプルに（たとえば、１６×１６クロマサンプルに）変換を適用し得る。
【００２７】
明確にするために、本開示のいくつかの態様は、所与のブロックのルーマサンプルとクロマサンプルとに別様にサイズ決定された変換を適用することだけでなく、ＲＱＴ構造の異なる深度においてルーマサンプルとクロマサンプルとに変換を適用することにも関する。すなわち、いくつかのビデオコーディングシステムでは、上記のように、クロマ成分よりも高いレートでルーマ成分をサンプリングすることが一般的であり、したがって、概して、（より多数のルーマサンプルゆえに）所与のブロックのクロマサンプルよりもルーマサンプルにより大きい変換が適用されることになる。本開示の態様は、第１の深度においてルーマサンプルに変換が適用され得、一方、ルーマサンプルとは異なる第２の深度においてクロマサンプルに変換が適用され得るように、変換が適用される方法を分離することに関する。
【００２８】
このようにして、ビデオデータの所与のブロックについて、クロマサンプルに、ルーマサンプルよりも相対的に粗いグラニュラリティ（granularity）で変換が適用され得る。このようにして変換を適用することは、コーディング複雑さの低減をもたらし得る。たとえば、本開示の技法によって、より高い特異性（specificity）が必要とされ得るルーマサンプルよりも、より低い特異性が必要とされ得るクロマサンプルのより大きいブロックに変換を適用することが可能になる。
【００２９】
図１は、残差データのブロックのクロマサンプルとは異なるＲＱＴ深度においてルーマサンプルに変換を適用するための、本開示で説明する技法を利用し得る、例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号されるべき、符号化されたビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンやいわゆる「スマート」パッドもしくはタブレットなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングまたは再生デバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信が可能であり得る。
【００３０】
宛先デバイス１４は、リンク１６を介して復号されるべき符号化されたビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするために、通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００３１】
代替的に、符号化されたデータは、出力インターフェース２２からストレージデバイス２４に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス２４からアクセスされ得る。ストレージデバイス２４は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散型またはローカルアクセス型データ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス２４は、ソースデバイス１２によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介してストレージデバイス２４から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブが含まれる。宛先デバイス１４は、インターネット接続を含む、任意の標準的データ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス２４からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３２】
本開示の技法は、必ずしもワイヤレスアプリケーションまたはセッティングだけに限定されるとは限らない。該技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他のアプリケーションなど、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどのアプリケーションをサポートするために、１方向または２方向のビデオ送信をサポートするように構成され得る。
【００３３】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはコンピュータグラフィックスデータをソースビデオとして生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概して、ビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。
【００３４】
キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、ソースデバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化されたビデオデータはまた（または代替的に）、復号および／または再生のために、宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス２４上に記憶され得る。
【００３５】
宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は、受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通じて、符号化されたビデオデータを受信する。リンク１６を通じて通信される、またはストレージデバイス２４に与えられる符号化されたビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０などのビデオデコーダが使用するためにビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されたか、記憶媒体に記憶されたか、またはファイルサーバに記憶された符号化されたビデオデータとともに含まれ得る。
【００３６】
ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたは宛先デバイス１４の外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３７】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）とも呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、またはそのような規格の拡張など、他のプロプライエタリまたは業界標準に従って動作し得る。ただし、本開示の技法は特定のコーディング規格だけに限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３が含まれる。
【００３８】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと一体化され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３９】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサなどのプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、専用プロセッサまたは処理回路、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、固定論理回路、個別論理、ソフトウェア、ハードウェア、ファームウェアを含む様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。したがって、ビデオエンコーダ２０およびビデオデコーダ３０内の様々なユニットは、同様に、様々なそのような構造要素のいずれかまたはそれらの組合せによって実装され得る。本技法が部分的にソフトウェアで実装されるときには、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４０】
本開示では、概して、ビデオエンコーダ２０が、ある特定の情報をビデオデコーダ３０などの別のデバイスに「シグナリング」することに言及し得る。ただし、ビデオエンコーダ２０は、ある特定のシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ２０は、ある特定のシンタックス要素を、ビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され、復号されるより前に、符号化され、記憶され得る（たとえば、ストレージデバイス２４に記憶され得る）。したがって、「シグナリング」という用語は、通信がリアルタイムまたはほぼリアルタイムで行われるか、あるいは、符号化時に媒体にシンタックス要素を記憶し、次いで、この媒体に記憶された後の任意の時間にそのシンタックス要素が復号デバイスによって取り出され得るときなどに行われ得るように、ある時間期間にわたって行われるかにかかわらず、概して、圧縮ビデオデータを復号するためのシンタックスまたは他のデータの通信を指し得る。
【００４１】
上記のように、ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発に取り組んでいる。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの進化モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の機能を仮定する。本開示では、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。特定の場合において、本開示ではまた、コーディングノードとＰＵとＴＵとを含むツリーブロック、すなわち、ＬＣＵまたはＣＵを指すために「ビデオブロック」という用語を使用し得る。
【００４２】
ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。グループオブピクチャ（ＧＯＰ：group of pictures）は、概して、一連の１つまたは複数のビデオピクチャを備える。ＧＯＰは、ＧＯＰ中に含まれるピクチャの数を記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【００４３】
一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」というインジケーションとによって示される。したがって、たとえば「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００４４】
本開示では、「Ｎ×Ｎ」および「ＮかけるＮ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６ピクセルまたは１６かける１６ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、Ｎは、非負整数値を表す。ブロック中のピクセルは行と列に配置され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、Ｎ×Ｍピクセルを備え得、Ｍは必ずしもＮに等しいとは限らない。
【００４５】
ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ２０は、ＣＵのＴＵについての残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の残差ビデオデータに対する適用後の、変換領域における係数を備え得る。残差データは、符号化されていない元のピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵについての残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵに関する変換係数を生成し得る。
【００４６】
いくつかの例では、ＴＵは、残差４分木（ＲＱＴ）に従って定義され得る。たとえば、ＲＱＴは、ビデオデータのブロックに関連する残差ルーマサンプルと残差クロマサンプルとに変換（たとえば、ＤＣＴ、整数変換、ウェーブレット変換、または１つまたは複数の他の変換）が適用される方法を表し得る。すなわち、上記のように、ＣＵに対応する残差サンプルは、ＲＱＴを使用してより小さいユニットに再分割され得る。概して、ＲＱＴは、ＣＵをＴＵに区分することの再帰的表現である。
【００４７】
ビデオエンコーダ２０は、一般に、ＲＱＴの同じ深度においてルーマサンプルとクロマサンプルとに変換を適用し得る。たとえば、概して、ビデオエンコーダ２０は、相対的に最も低いＲＱＴ深度に変換を適用し得、ここで、より低いＲＱＴ深度は、より少ない関連する残差データを有するより小さいＴＵ（たとえば、リーフＴＵ）と言い換えられる。しかしながら、いくつかの事例では、ビデオデータの所与のブロックについて、クロマ情報は、ルーマ情報ほど大幅におよび／または劇的に変動しないことがある。むしろ、ＣＵに関連するクロマ情報は、ルーマ情報よりも滑らかであり得る。したがって、できるだけ多くのデータ（「エネルギー」とも呼ばれる）をできるだけ少ない変換係数に圧縮するクロマ変換を達成するために、ルーマ情報と同じＲＱＴ深度においてクロマ情報に変換を適用する必要がないことがある。すなわち、（たとえば、より高いＲＱＴ深度において）クロマサンプルに相対的に大きい変換を適用することは、依然として、クロマデータを比較的少ない係数へと圧縮し得る。
【００４８】
本開示の態様によれば、ビデオエンコーダ２０は、ルーマサンプルとクロマサンプルとに変換が適用される方法を分離し得る。たとえば、ビデオエンコーダ２０は、残差ルーマサンプルに変換を適用すべき第１のＲＱＴ深度と、残差クロマサンプルに第２の変換を適用すべき第２のＲＱＴ深度とを決定し得、第１のＲＱＴ深度と第２のＲＱＴ深度とは互いに異なり得る。いくつかの事例では、（クロマサンプルに関連する）第２のＲＱＴ深度は第１のＲＱＴ深度とは異なり得る。ビデオエンコーダ２０は、次いで、ルーマ変換係数を生成するために第１のＲＱＴ深度において残差ルーマサンプルに第１の変換を適用し、クロマ変換係数を生成するために第２のＲＱＴ深度において残差クロマサンプルに第２の変換を適用し得る。
【００４９】
したがって、ビデオエンコーダ２０は、ビデオデータの所与のブロックについて、ルーマサンプルよりも相対的に粗いグラニュラリティでクロマサンプルに変換を適用し得る。このようにして、ビデオエンコーダ２０は、全体的なコーディング複雑さを低減し得る。たとえば、データの所与のブロックのクロマサンプルに比較的大きい変換が適用され、それによって、複数の、比較的小さい変換をクロマサンプルに適用することに関連する複雑さが低減され得る。
【００５０】
変換係数を生成するために残差データに任意の変換を適用した後、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化して、さらなる圧縮をもたらすプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ここで、ｎはｍよりも大きい。
【００５１】
いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ２０は、適応型走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後、ビデオエンコーダ２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型２値算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間分割エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピー符号化方法に従って、１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するために、符号化されたビデオデータに関連するシンタックス要素をエントロピー符号化し得る。現行バージョンのＨＥＶＣは、エントロピーコーディングのためにＣＡＢＡＣを使用するように設計されている。
【００５２】
ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非ゼロか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、シンボルが送信されるための可変長コードを選択し得る。ＶＬＣにおけるコードワードは、比較的短いコードがより確率の高いシンボルに対応し、一方、より長いコードがより確率の低いシンボルに対応するように構成され得る。このように、ＶＬＣを使用すると、たとえば、送信されるべきシンボルごとに等長コードワードを使用する場合よりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられるコンテキストに基づき得る。
【００５３】
ビデオデコーダ３０は、ビデオエンコーダ２０からコード化されたビデオデータを受信すると、ビデオエンコーダ２０に関して説明した符号化パスとは概して反対の復号パスを実行し得る。本開示の態様によれば、たとえば、ビデオデコーダ３０は、コード化されたビデオデータを受信し、ビデオデータのブロックに関連する残差ルーマサンプルと残差クロマサンプルとについてのＲＱＴを決定し得る。ビデオデコーダ３０はまた、残差ルーマサンプルに逆変換を適用すべき第１のＲＱＴ深度と、残差クロマサンプルに第２の逆変換を適用すべき第２のＲＱＴ深度とを決定し得る。いくつかの事例では、（クロマサンプルに関連する）第２のＲＱＴ深度は第１のＲＱＴ深度とは異なり得る。ビデオデコーダ３０は、次いで、ルーマ変換係数を生成するために、第１のＲＱＴ深度において残差ルーマサンプルに第１の逆変換を適用し、クロマ変換係数を生成するために、第２のＲＱＴ深度において残差クロマサンプルに第２の逆変換を適用し得る。
【００５４】
図２は、残差データのブロックのクロマサンプルとは異なるＲＱＴ深度においてルーマサンプルに変換を適用するために本開示で説明する技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード（登録商標））は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００５５】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオデータを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６と、参照ピクチャメモリ６４とを含む。モード選択ユニット４０は、次に、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６と、区分ユニット４８とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２には図示せず）も含まれ得る。望まれる場合、デブロッキングフィルタは、通常、加算器６２の出力をフィルタ処理する。デブロッキングフィルタに加えて、追加のループフィルタ（ループ内またはループ後）も使用され得る。そのようなフィルタは、簡潔のために図示していないが、望まれる場合、（ループ内フィルタとして）加算器５０の出力をフィルタ処理し得る。
【００５６】
符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、代替的に、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ２０は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【００５７】
さらに、区分ユニット４８は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット４８は、最初にフレームまたはスライスをＬＣＵに区分し、レートひずみ分析（たとえば、レートひずみ最適化）に基づいて、ＬＣＵの各々をサブＣＵに区分し得る。モード選択ユニット４０は、さらに、ＬＣＵをサブＣＵに区分することを示す４分木データ構造を生成し得る。４分木のリーフノードＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。
【００５８】
モード選択ユニット４０は、たとえば、誤差結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラコーディングまたはインターコーディングを選択し得、得られたイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、参照フレームとして使用するために符号化ブロックを再構成するために加算器６２に与える。モード選択ユニット４０はまた、エントロピーコーディングユニット５６に、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素を与える。
【００５９】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム（または他のコード化ユニット）内でコーディングされている現在のブロックに対する参照フレーム（または他のコード化ユニット）内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ２０は、参照フレームメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００６０】
動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵに関する動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、その各々は、参照フレームメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００６１】
動き補償ユニット４４によって実行される動き補償は、動き推定ユニット４２によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。現在のビデオブロックのＰＵに関する動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルがポイントする予測ブロックの位置を特定し得る。加算器５０は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、残差データとも呼ばれるピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット４２は、ルーマ成分に対する動き推定を実行し、動き補償ユニット４４は、クロマ成分とルーマ成分の両方のために、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット４０はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するための、ビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
【００６２】
イントラ予測ユニット４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット４６は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用すべき適切なイントラ予測モードを選択し得る。
【００６３】
たとえば、イントラ予測ユニット４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化ブロックを生成するために使用されるビットレート（すなわち、ビットの数）を決定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すかを決定するために、様々な符号化ブロックに関して、ひずみおよびレートから比を計算し得る。
【００６４】
あるブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット４６は、エントロピーコーディングユニット５６にブロックのための選択されたイントラ予測モードを示す情報を与え得る。エントロピーコーディングユニット５６は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ２０は、送信されるビットストリーム中に構成データ（configuration data）を含み得、その構成データは、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックに関する符号化コンテキストの定義と、最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々について使用すべき変更されたイントラ予測モードインデックステーブルのインジケーションとを含み得る。
【００６５】
ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、モード選択ユニット４０からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換処理ユニット５２は、残差ブロックに、離散コサイン変換（ＤＣＴ）または概念的に類似の変換などの変換を適用して、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット５２は、概念的にＤＣＴに類似の他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット５２は、残差ブロックに変換を適用して、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。
【００６６】
本開示の態様によれば、変換処理ユニット５２は、ビデオデータのブロックに関連する残差ルーマサンプルと残差クロマサンプルとに変換（たとえば、ＤＣＴ、整数変換、ウェーブレット変換、または１つまたは複数の他の変換）が適用される方法を表すＲＱＴを決定し得る。本開示の態様によれば、変換処理ユニット５２は、ルーマサンプルとクロマサンプルとに変換が適用される方法を分離し得る。たとえば、変換処理ユニット５２はまた、残差ルーマサンプルに変換を適用すべき第１のＲＱＴ深度と、残差クロマサンプルに第２の変換を適用すべき第２のＲＱＴ深度とを決定し得る。いくつかの事例では、（クロマサンプルに関連する）第２のＲＱＴ深度は第１のＲＱＴ深度とは異なり得る。変換処理ユニット５２は、次いで、ルーマ変換係数を生成するために、第１のＲＱＴ深度において残差ルーマサンプルに第１の変換を適用し、クロマ変換係数を生成するために、第２のＲＱＴ深度において残差クロマサンプルに第２の変換を適用し得る。
【００６７】
説明のための一例では、３２×３２ブロックの残差ビデオデータが、（たとえば、４：２：０のサブサンプリング方式で起こるように）３２×３２ブロックが３２×３２残差ルーマサンプルと１６×１６残差クロマサンプルとを含むように、ルーマサンプルに関してサブサンプリングされたクロマサンプルを有すると仮定する。変換処理ユニット５２（またはモード選択ユニット４０などの別のユニット）は、残差値のブロックに変換を適用すべき方法を決定するためにレートひずみ分析を実行し得る。この例では、変換処理ユニット５２が変換の目的で残差値のブロックを２回分割すると考える。すなわち、変換処理ユニット５２は、ルーマサンプルの各８×８ブロックに変換を適用する。本開示の態様によれば、（たとえば、同じ深度において）クロマサンプルの対応する４×４ブロックに変換を適用するのではなく、変換処理ユニット５２は、クロマサンプルの相対的に大きいブロックに変換を適用し得る。たとえば、変換処理ユニット５２は、（たとえば、未分割の）クロマサンプルの１６×１６ブロックまたはクロマサンプルの８×８ブロックに変換を適用し得る。
【００６８】
変換処理ユニット５２は、量子化ユニット５４に得られた変換係数を送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００６９】
量子化の後、エントロピーコーディングユニット５６が量子化変換係数をエントロピーコーディングする。たとえば、エントロピーコーディングユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型２値算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率区間分割エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピーコーディングユニット５６によるエントロピーコーディングの後、符号化ビットストリームは、別のデバイス（たとえば、ビデオデコーダ３０）に送信され得るか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００７０】
逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームメモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００７１】
このようにして、ビデオエンコーダ２０は、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、ＲＱＴはルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定することと、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングすることとを含む方法を実行し得るビデオエンコーダの一例である。
【００７２】
図３は、残差データのブロックのクロマサンプルとは異なるＲＱＴ深度においてルーマサンプルに変換を適用するために本開示で説明する技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測ユニット８１と、逆量子化ユニット８６と、逆変換ユニット８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。
【００７３】
復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測ユニット８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【００７４】
たとえば、バックグラウンドとして、ビデオデコーダ３０は、ネットワークを通じた送信のためにいわゆる「ネットワークアブストラクションレイヤユニット（network abstraction layer unit）」またはＮＡＬユニットへと圧縮された、圧縮ビデオデータを受信し得る。各ＮＡＬユニットは、ＮＡＬユニットに記憶されるデータのタイプを識別するヘッダを含み得る。一般にＮＡＬユニットに記憶される２つのタイプのデータがある。ＮＡＬユニットに記憶されるデータの第１のタイプはビデオコーディングレイヤ（ＶＣＬ：video coding layer）データであり、これは圧縮ビデオデータを含む。ＮＡＬユニットに記憶されるデータの第２のタイプは非ＶＣＬデータと呼ばれ、これは、多数のＮＡＬユニットに共通のヘッダデータを定義するパラメータセットなどの追加情報と補足エンハンスメント情報（ＳＥＩ：supplemental enhancement information）とを含む。たとえば、パラメータセットは、（たとえば、シーケンスパラメータセット（ＳＰＳ：sequence parameter set）中の）シーケンスレベルヘッダ情報と、（たとえば、ピクチャパラメータセット（ＰＰＳ）中の）変化頻度の低い（infrequently changing）ピクチャレベルヘッダ情報とを含み得る。パラメータセット中に含まれている、変化頻度の低い情報は、シーケンスまたはピクチャごとに繰り返される必要がなく、それにより、コーディング効率が改善される。さらに、パラメータセットの使用はヘッダ情報の帯域外送信を可能にし、それにより誤り耐性のための冗長送信の必要を回避する。
【００７５】
ビデオスライスがイントラコード化（Ｉ）スライスとしてコード化されるときには、予測ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと現在のフレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコード化されるときには、予測ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信した動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用して、参照フレームリスト、リスト０、およびリスト１を構成し得る。
【００７６】
動き補償ユニット８２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、予測情報を使用して、復号されている現在のビデオブロックに関する予測ブロックを生成する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）、スライスのための参照ピクチャリストのうちの１つまたは複数についての構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測状況、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信したシンタックス要素のうちのいくつかを使用する。
【００７７】
動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルに関する補間値を計算し得る。この場合、動き補償ユニット８２は、受信したシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成し得る。
【００７８】
逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を、逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。
【００７９】
逆変換ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆ＤＣＴ、逆整数変換、または概念的に類似の逆変換プロセスを変換係数に適用する。本開示の態様によれば、逆変換ユニット８８は、残差データに変換が適用された方法を決定し得る。すなわち、たとえば、逆変換ユニット８８は、受信したビデオデータのブロックに関連する残差ルーマサンプルと残差クロマサンプルとに変換（たとえば、ＤＣＴ、整数変換、ウェーブレット変換、または１つまたは複数の他の変換）が適用された方法を表すＲＱＴを決定し得る。
【００８０】
本開示の態様によれば、ルーマサンプルとクロマサンプルとに変換が適用される方法は分離され得る。したがって、逆変換ユニット８８はまた、残差ルーマサンプルに逆変換を適用すべき第１のＲＱＴ深度と、残差クロマサンプルに第２の逆変換を適用すべき第２のＲＱＴ深度とを決定し得る。いくつかの事例では、逆変換が適用される（クロマサンプルに関連する）第２のＲＱＴ深度は、逆変換が適用される第１のＲＱＴ深度とは異なり得る。逆変換ユニット８８は、次いで、ルーマ変換係数を生成するために、第１のＲＱＴ深度において残差ルーマサンプルに第１の逆変換を適用し、クロマ変換係数を生成するために、第２のＲＱＴ深度において残差クロマサンプルに第２の逆変換を適用し得る。
【００８１】
動き補償ユニット８２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つまたは複数の構成要素を表す。望まれる場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、あるいはビデオ品質を改善するために、（コーディングループ中に、またはコーディングループの後に）他のループフィルタも使用され得る。次いで、所与のフレームまたはピクチャ中の復号されたビデオブロックは、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス３２などのディスプレイデバイス上に後で表示するために、復号されたビデオを記憶する。
【００８２】
このようにして、ビデオデコーダ３０は、ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、ＲＱＴはルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、ビデオデータのブロックに関連するクロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、第２のＲＱＴ深度が第１のＲＱＴ深度とは異なる、決定することと、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングすることとを含む方法を実行し得るビデオデコーダの一例である。
【００８３】
図４に、ルーマサンプル１０６Ａ〜Ｄ（ルーマサンプル１０６）とクロマサンプル１０８（Ｃｂ）および１１０（Ｃｒ）とを含むビデオデータの例示的なブロック１００を示す。図４に示す例は、概して、４：２：０のサンプリング方式に従ってサンプリングされたルーマサンプル１０６とクロマサンプル１０８、１１０との公称垂直および水平ロケーションを示している。たとえば、図４に示すように、ルーマサンプル１０６は、水平方向と垂直方向の両方において、クロマサンプル１０８、１１０の２倍のレートでサンプリングされ、クロマサンプル１０８、１１０は、同じレートでサンプリングされる。
【００８４】
図４に示す例は、説明のために与えられる１つの可能なサンプリング方式にすぎない。すなわち、他の例では、異なるフォーマットが、ルーマ成分とクロマ成分との間で異なる水平および垂直サンプリングレート比を指定し得る。たとえば、４：２：２のフォーマットをもつビデオデータのブロックの場合、ルーマ成分の幅は、クロマ成分の幅の２倍であり得る。しかしながら、ルーマ成分の高さは、クロマ成分の高さと同じであり得る。４：４：４のフォーマットをもつビデオデータのブロックの場合、ルーマ成分とクロマとは、同じレートでサンプリングされ得る。ルーマアレイおよびクロマアレイに関するシンタックスは、３つの色成分すべてについてのデータが存在するとき、別段に指定されていない限り、ルーマアレイに関するデータが最初のデータであり、その後にＣｂアレイに関するデータが続き、その後にＣｒアレイに関するデータが続くように順序付けされ得る。
【００８５】
図４に示す例は、ルーマ成分がクロマ成分よりも高いレートでサンプリングされていることを示している。いくつかの事例では、人間の眼が一般にクロマの変動よりもルーマの変動に感度が高いので、ルーマは、クロマよりも高いレートでサンプリングされ得る。さらに、概して、ルーマサンプルは、クロマサンプルよりも、所与のフレーム内でより幅広い、より劇的な変動を生じ得る。
【００８６】
上記のように、本開示の技法は、ビデオデータのブロックのルーマ成分とクロマ成分とに異なるサイズの変換を適用することを含む。しかしながら、図４の例に示すように、一部のビデオコーディング方式では、ルーマ成分は、クロマ成分よりも高いレートでサンプリングされ得る。そのような場合、概して、（サンプル数がより多いので）図４に示すビデオデータのブロックなどの所与のブロックのクロマサンプルよりもルーマサンプルにより大きな変換が適用される。
【００８７】
したがって、本開示の技法は、ブロックのルーマサンプルとクロマサンプルとに異なるサイズの変換を適用することを含むだけでなく、ルーマ成分とクロマ成分とに変換が適用され得る方法を分離することをも含む。すなわち、変換の目的でビデオデータのブロックが分割される事例では、本開示の技法は、４分木構造の異なる深度においてビデオデータのブロックに関連するルーマ成分とクロマ成分とに変換を適用することを含む。たとえば、現在開発されているＨＥＶＣ規格に準拠する一例では、ＴＵのリーフノードにおいてＴＵのルーマ成分に変換が適用され得、一方、ＴＵのより高い深度においてクロマ成分に変換が適用され得る。
【００８８】
図５Ａおよび図５Ｂは、それぞれ、本開示の技法に一致する、例示的な残差４分木（ＲＱＴ）１３０（図５Ａ）と、対応する変換ユニット１５０（図３Ｂ）とを示す概念図である。ＲＱＴ１３０は、階層的に構成されたノードを含む。各ノードは、子どものないリーフノードであり得るか、または４つの子ノードを有し、したがって「４分木」という名前があり得る。図５Ａの例では、残差４分木１３０はルートノード１３２を含む。ルートノード１３２は、リーフノード１３４Ａおよび１３４Ｂ（リーフノード１３４）とノード１３６Ａおよび１３６Ｂ（ノード１３６）とを含む、４つの子ノードを有する。ノード１３６はリーフノードではないので、ノード１３６は、それぞれ４つの子ノードを含む。すなわち、図５Ａに示す例では、ノード１３６Ａは４つの子リーフノード１３８Ａ〜１３８Ｄを有し、一方、ノード１３６Ｂは３つのリーフノード１４０Ａ〜１４０Ｃ（リーフノード１４０）とノード１４２とを有する。さらに、ノード１４２は４つのリーフノード１４４Ａ〜１４４Ｄ（リーフノード１４４）を有する。
【００８９】
ＲＱＴ１３０は、この例ではＴＵ１５０など、対応する変換ユニット（ＴＵ）の特性を記述するデータを含み得る。たとえば、ＲＱＴ１３０は、その構造により、サブＴＵへの図５ＢのＴＵ１５０の分割を記述し得る。ＴＵ１５０が２Ｎ×２Ｎのサイズを有すると仮定する。この例では、ＴＵ１５０は、サイズＮ×Ｎの２つのサブＴＵ１５２Ａおよび１５２Ｂ（サブＴＵ１５２）をもつ、４つのサブＴＵを有する。ＴＵ１５０の残りの２つのサブＴＵは、さらに、より小さいサブＣＵに分割される。すなわち、図５Ｂに示す例では、ＴＵ１５０のサブＴＵのうちの一方は、サイズＮ／２×Ｎ／２のサブＴＵ１５４Ａ〜１５４Ｄに分割されるが、ＴＵ１５０の他方のサブＴＵは、サイズＮ／２×Ｎ／２のサブＴＵ１５６Ａ〜１５６Ｃ（サブＴＵ１５６）と、サイズＮ／４×Ｎ／４のサブＴＵ１５８Ａ〜１５８８Ｄ（サブＴＵ１５８）として識別される、さらに分割されたサブＴＵとに分割される。
【００９０】
図５Ａおよび図５Ｂに示す例では、ＲＱＴ１３０の構造はＴＵ１５０の分割に対応する。すなわち、ルートノード１３２はＴＵ１５０に対応し、リーフノード１３４はサブＴＵ１５２に対応する。さらに、リーフノード１３８（ノード１３６Ａの子ノードであり、これは一般に、ノード１３６Ａがポインタ参照リーフノード１３８を含むことを意味する）はサブＴＵ１５４に対応し、（たとえば、ノード１３６Ｂに属する）リーフノード１４０はサブＴＵ１５６に対応し、（たとえば、ノード１４２に属する）リーフノード１４４はサブＴＵ１５８に対応する。
【００９１】
ＲＱＴ１３０のノードについてのデータは、ノードに対応するＴＵが分割されるかどうかを記述し得る。ＴＵが分割される場合、ＲＱＴ１３０中に４つの追加のノードが存在し得る。いくつかの例では、４分木のノードは以下の擬似コードによって表されるプロセスによって定義され得る。  
【数１】
0005869008.tif 000002
【００９２】
split_flag値は、現在のノードに対応するＴＵが分割されるかどうかを表す１ビット値であり得る。ＴＵが分割されない場合、split_flag値は「０」であり得るが、ＴＵが分割される場合、split_flag値は「１」であり得る。残差４分木１３０の例に関して、分割フラグ値のアレイは１００１１０００００１００００００であり得、そのアレイは、ルートノード１３２から最も小さいリーフノード（１４４Ａ〜１４４Ｄ）までの分割構造を定義する。
【００９３】
ビデオエンコーダ２０および／またはビデオデコーダ３０などのビデオコーダは、一般に、同じＲＱＴ深度においてルーマサンプルとクロマサンプルの両方に変換を適用する。ＲＱＴ深度は、概して、ＴＵが分割された回数に関係する（たとえば、図５Ｂに示すように、ＲＱＴ深度１は、ＴＵの１の分割に対応する）。いくつかの例では、ビデオコーダは、（図５Ｂに示すリーフＴＵ１５２、１５４、１５６、および１５８に対応する）図５Ａに示したリーフノード１３４、１３８、１４０、および１４４などのリーフノードのルーマサンプルとクロマサンプルとに変換を適用し得る。
【００９４】
本開示の技法は、異なる深度、たとえば、図５Ａに示すＲＱＴ１３０などのＲＱＴの異なる深度においてＴＵに関連するルーマ成分とクロマ成分とに変換を適用することを含む。すなわち、たとえば、ビデオコーダは、リーフノード１３４、１３８、１４０、および１４４のルーマ成分に変換を適用し、一方、他の非リーフノードにおいてはクロマ成分に変換を適用し得る。図５Ａおよび図５Ｂのいくつかの態様について、ビデオエンコーダ２０（図１および図２）によって行われるものとして以下で説明するが、本技法はまた、ビデオデコーダ３０（図１および図３）などの別のビデオコーダによっても行われ得ることを理解されたい。たとえば、ビデオデコーダ３０は、本開示の態様によれば、逆変換を決定し、それをコード化ビデオデータに適用し得る。
【００９５】
説明のための一例では、（ルートノード１３２に対応する）ＴＵ１５０は、６４×６４ＴＵ（たとえば、４：２：０のクロマフォーマットに従ってルーマがクロマのレートの２倍でサンプリングされると仮定すると、６４×６４ルーマサンプルおよび３２×３２クロマサンプル）であり得る。ビデオエンコーダ２０は、概して、リーフノード１３４、１３８、１４０、および１４４などのリーフノードのＴＵに変換を適用し得る。すなわち、ビデオエンコーダ２０は、リーフノード１３４についてはＲＱＴ深度１において、リーフノード１３８および１４０についてはＲＱＴ深度２において、リーフノード１４４についてはＲＱＴ深度３においてルーマサンプルとクロマサンプルとに変換を適用し得る。したがって、この例では、ビデオエンコーダ２０は、サブＴＵ１５２のルーマサンプルには３２×３２変換を、クロマサンプルには１６×１６変換を適用し、サブＴＵ１５４および１５６のルーマサンプルには１６×１６変換を、クロマサンプルには８×８変換を適用し、サブＴＵ１５８のルーマサンプルには８×８変換を、クロマサンプルには４×４変換を適用することができる。
【００９６】
本開示の態様は、４分木構造の異なる深度においてルーマサンプルとクロマサンプルとに変換を適用することに関する。上記の例では、ビデオエンコーダ２０は、リーフノード１３４（ＲＱＴ深度１）、１３８（ＲＱＴ深度２）、１４０（ＲＱＴ深度２）、および１４４（ＲＱＴ深度３）においてルーマサンプルに変換を適用し、一方、より高いＲＱＴ深度においてクロマサンプルに単一の変換を適用し得る。一例では、ビデオエンコーダ２０は、ＲＱＴ深度０においてクロマサンプルに変換を適用し得る。この例では、ビデオエンコーダ２０は、ＴＵ１５０のクロマサンプルに３２×３２変換を適用し、一方、より微細なグラニュラリティを用いてルーマサンプルに変換を適用し得る。
【００９７】
別の例では、ビデオエンコーダ２０は、他のＲＱＴ深度においてクロマサンプルに変換を適用し得る。たとえば、ビデオエンコーダ２０は、リーフノード１４４においてルーマサンプルに変換を適用し、一方、ノード１４２においてクロマサンプルに変換を適用し得る。図５Ｂを参照すると、ビデオエンコーダ２０は、サブＴＵ１５８の各々のルーマサンプルに８×８変換を適用し、一方、すべてのサブＴＵ１５８のクロマサンプルに８×８変換を適用し得る。このようにして、ビデオエンコーダ２０は、ビデオデータの所与のブロックについて、ＲＱＴに関してルーマサンプルよりも相対的に粗いグラニュラリティでクロマサンプルに変換を適用し得る。
【００９８】
いくつかの例では、ビデオエンコーダ２０は、ＴＵに関連するクロマサンプルを分割する能力を制限し得る。たとえば、ビデオエンコーダ２０は、ＲＱＴ１３０に従ってＴＵ１５０のルーマサンプルを分割し得る。しかしながら、ビデオエンコーダ２０は、ＲＱＴ１３０に従ってＴＵ１５０のクロマサンプルを分割しないことがある。むしろ、本開示の態様によれば、ビデオエンコーダ２０は、ＲＱＴ深度０において（ルートノード１３２において）クロマサンプルに変換を適用し得る。ビデオエンコーダ２０は、一例では、依然として、ＲＱＴ１３０に従ってルーマサンプルを分割し、ＲＱＴ１３０のリーフノードに適切な変換を適用し得る。
【００９９】
他の例では、ビデオエンコーダ２０は、クロマサンプルに変換が適用されるＲＱＴ深度がルーマサンプルに変換が適用されるＲＱＴ深度とは異なるかどうかを識別するためのフラグを実装し得る。たとえば、ＴＵ４分木のノードが４つのノードに分割されるときには、ビデオエンコーダ２０は、ルーマサンプルとクロマサンプルの両方が分割されるかどうかを示すためのフラグを設定し得る。すなわち、ビデオエンコーダ２０は、分割することなしにクロマサンプルに変換が適用されるかどうかを示すためのフラグを設定し得る。一例では、ビデオエンコーダ２０は、ルーマサンプルとクロマサンプルの両方がＲＱＴに従って分割される場合はフラグ値を「０」に設定し、ルーマサンプルはＲＱＴに従って分割されるがクロマサンプルは分割されない場合はフラグ値を「１」に設定し得る。この例では、ビデオエンコーダ２０は、ルーマサンプルに、クロマサンプルとは異なるサイズの変換を適用し得る。すなわち、たとえば、ビデオエンコーダ２０は、ルーマサンプルに、クロマサンプルに適用するよりも小さい変換を適用し得る。
【０１００】
説明のための一例では、ビデオエンコーダ２０がＲＱＴ深度１においてクロマサンプルに変換を適用すると仮定する。この例では、ビデオエンコーダ２０は、フラグを使用して、ノード１３６Ａおよび１３６Ｂにおいてクロマサンプルが分割されないことをシグナリングし得る。さらに、ビデオエンコーダ２０は、ノード１３４および１３６に関連するクロマサンプルに変換を適用し、ノード１３４および１３６に関連するクロマサンプルをシグナリングし得る。本開示の態様によれば、ビデオエンコーダ２０は、ルーマサンプルとクロマサンプルとに変換が適用される方法を分離し、ＲＱＴ１３０に従ってルーマサンプルを分割し得る。
【０１０１】
いくつかの例では、ビデオエンコーダ２０は、ＴＵ１５０のクロマサンプルに関する最小変換サイズまたはＲＱＴ深度をシグナリングし得る。たとえば、ビデオエンコーダ２０は、ＴＵ１５０のクロマサンプルが分割され得る最小変換サイズをシグナリングし得る。代替的にまたは追加的に、ビデオエンコーダ２０は、クロマサンプルが分割され得る最低ＲＱＴ深度をシグナリングし得る。ビデオエンコーダ２０は、そのようなシグナリングを、シーケンスパラメータセット（ＳＰＳ：sequence parameter set）、ピクチャパラメータセット（ＰＰＳ：picture parameter set）などのパラメータセット中で、またはスライスヘッダ中で与え得る。この例では、ビデオエンコーダ２０は、ルーマサンプルがＲＱＴに従ってさらに分割されるかどうかにかかわらず、最小変換サイズまたは最低ＲＱＴ深度（以下「クロマ分割フロア（chroma division floor）」と呼ぶ）においてクロマサンプルに変換を適用し得る。
【０１０２】
ビデオエンコーダ２０がクロマ分割フロアを実装する例では、ビデオエンコーダ２０は、様々な方法でクロマ分割フロアをシグナリングし得る。一例では、ビデオエンコーダ２０は、ルーマサンプルが分割され得る最小ＲＱＴ深度とクロマサンプルが分割され得る最小ＲＱＴ深度との間の差をシグナリングし得る。すなわち、図５Ａに示した例では、ルーマサンプルは、ＲＱＴ深度３に、ＲＱＴ１３０に従って分割され得る。ビデオエンコーダ２０は、３からクロマ分割フロアを減算し、得られた値をシグナリングすることによって、クロマ分割フロアをシグナリングし得る。
【０１０３】
いくつかの例では、クロマ分割フロアをシグナリングするために、シーケンスパラメータセット（ＳＰＳ）が使用され得る。たとえば、ＳＰＳは、以下の表１に従って形成され得る。  
【表１】
0005869008.tif 000003
【０１０４】
表１に示した例では、delta_transform_hierarchy_depth_chroma_interとして識別されるシンタックス要素は、インターピクチャについて、ルーマサンプルの最小変換サイズとクロマサンプルの最小変換サイズとの間の差を示し得る。シンタックス要素は、以下の式に従って形成され得る。  
【数２】
0005869008.tif 000004
【０１０５】
この例では、delta_transform_hierarchy_depth_chroma_interシンタックス要素の値は、正、０、または負であり得る。たとえば、クロマ変換深度がルーマ変換深度（たとえば、変換が適用されるＲＱＴ深度）よりも小さいときには、delta_transform_hierarchy_depth_chroma_interシンタックス要素は０よりも小さくなり得る。
【０１０６】
さらに、表１に示した例によれば、delta_transform_hierarchy_depth_chroma_intraとして識別されるシンタックス要素は、イントラピクチャについて、ルーマサンプルの最小変換サイズとクロマサンプルの最小変換サイズとの間の差を示し得る。シンタックス要素は、以下の式に従って形成され得る。  
【数３】
0005869008.tif 000005
【０１０７】
上記のように、この例では、delta_transform_hierarchy_depth_chroma_interシンタックス要素の値は、正、０、または負であり得る。たとえば、クロマ変換深度がルーマ変換深度（たとえば、変換が適用されるＲＱＴ深度）よりも小さいとき、delta_transform_hierarchy_depth_chroma_interシンタックス要素は０よりも小さくなり得る。
【０１０８】
別の例では、ビデオエンコーダ２０は、ＴＵ１５０が対応するリーフＣＵとクロマサンプルが分割され得る最小深度との間の差をシグナリングし得る。たとえば、ビデオエンコーダ２０は、ＴＵが対応するリーフＣＵにサイズが等しい未分割ＴＵに対応する、ルートノード１３２のＲＱＴ深度（ＲＱＴ深度０）と、ＴＵ１５０のクロマサンプルが分割され得る最小深度との間の差をシグナリングし得る。いくつかの例では、デフォルト値が設定され得る。たとえば、デフォルト値は、クロマサンプルに関する最小変換サイズがＣＵのサイズに等しくなるように設定され得る。
【０１０９】
いくつかの例では、クロマ分割フロアをシグナリングするために、シーケンスパラメータセット（ＳＰＳ）が使用され得る。たとえば、ＳＰＳは、以下の表２に従って形成され得る。  
【表２】
0005869008.tif 000006
【０１１０】
表２に示した例では、chroma_transform_depth_delta_CU_interは、インター予測ピクチャについて、コーディングユニットの深度と最小クロマ変換サイズの深度との間の深度差を示し得る。シンタックス要素は、インター予測ピクチャについて、以下の式に従って形成され得る。この値範囲は、少なくとも１に等しくなり得る。  
【数４】
0005869008.tif 000007
【０１１１】
さらに、表２に示した例によれば、chroma_transform_depth_delta_CU_intraとして識別されるシンタックス要素は、イントラ予測ピクチャについて、コーディングユニットの深度と最小クロマ変換サイズの深度との間の深度差を示し得る。シンタックス要素は、イントラ予測ピクチャについて、以下の式に従って形成され得る。この値範囲は、少なくとも１に等しくなり得る。  
【数５】
0005869008.tif 000008
【０１１２】
別の例では、chroma_transform_depth_delta_CU_interおよびchroma_transform_depth_delta_CU_intraのデフォルト値は、デフォルトで値１に設定され、したがって、シグナリングされる必要がない。
【０１１３】
クロマ分割フロアが上記の表２に従ってシグナリングされる事例では、変換ツリーは、以下の表３に従ってシグナリングされ得る。
【表３−１】
0005869008.tif 000009
【表３−２】
0005869008.tif 000010
【０１１４】
表３の例では、クロマ成分は、ＲＱＴ構造を依然として使用し得る。たとえば、firstChromaCbf_flagは、以下の式に従って定義される。
【数６】
0005869008.tif 000011
【０１１５】
他の例では、クロマ成分は、ＲＱＴ構造を使用しないことがある。すなわち、たとえば、クロマ成分は、ＣＵレベル（ＲＱＴの深度０）においてシグナリングされ得る。そのような例では、変換ツリーシンタックスは、以下の表４に従って生成され得る。
【表４−１】
0005869008.tif 000012
【表４−２】
0005869008.tif 000013
【０１１６】
さらに、クロマ成分がＲＱＴ構造を使用しないときには、変換係数シンタックスは、以下の表５に従って生成され得る。
【表５−１】
0005869008.tif 000014
【表５−２】
0005869008.tif 000015
【０１１７】
表５の例では、cbp_cb[trafoDepth]は、各ビットが細分割レベルtrafoDepthにおける４つのクロマ変換ブロックのうちの１つ（Ｃｂ）のcbf_cbに等しい、４ビット値であり得る。アレイインデックスtrafoDepthは、変換コーディングのためにブロックへとコーディングユニットの現在の細分割レベルを指定し得る。さらに、trafoDepthは、コーディングユニットに対応するブロックの場合０に等しくなり得る。本開示の態様によれば、cbp_cb[trafoDepth]が存在しないときには、cbf_cb[trafoDepth]の値は、０に等しくなると推測され得る。
【０１１８】
さらに、cbp_cr[trafoDepth]は、各ビットが細分割レベルtrafoDepthにおける４つのクロマ変換ブロックのうちの１つ（Ｃｒ）のcbf_crに等しい、４ビット値であり得る。アレイインデックスtrafoDepthは、変換コーディングのためにブロックへとコーディングユニットの現在の細分割レベルを指定し得る。さらに、trafoDepthは、コーディングユニットに対応するブロックの場合０に等しくなり得る。本開示の態様によれば、cbp_cr[trafoDepth]が存在しないときには、cbf_cb[trafoDepth]の値は、０に等しくなると推測され得る。
【０１１９】
表５に示す例によれば、else if(cIdx==1&&log2MinTrafoSizeChroma>=log2TrafoSize-1)という条件が満たされないときには、親ノードにおいてクロマサンプルの変換が実行される。同様に、else if(cIdx==2&&log2MinTrafoSizeChroma>=log2TrafoSize-1)という条件が満たされないときには、親ノードにおいてクロマサンプルの変換が実行される。同様に、if(split_transform_flag[x0][y0][trafoDepth]&&(cIdx==0||log2MinTrafoSizeChroma<log2TrafoSize-1))という条件が満たされないときには、親ノードにおいてクロマサンプルの変換が実行される。
【０１２０】
さらに、クロマ成分がＲＱＴ構造を使用しないときには、変換係数シンタックスは、以下の表６に従って生成され得る。
【表６−１】
0005869008.tif 000016
【表６−２】
0005869008.tif 000017
【０１２１】
説明のために、図５Ａおよび図５Ｂのいくつかの態様についてビデオエンコーダ２０およびビデオデコーダ３０に関して説明したが、他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）を含むハードウェアベースのコーディングユニットなど、他のビデオコーディングユニットも、図５Ａおよび図５Ｂに関して説明した例および技法を実行するように構成され得ることを理解されたい。
【０１２２】
図６は、本開示に一致する、ビデオデータをコーディングする技法を示す流れ図である。図６に示す例は、概して、ビデオコーダによって実行されるものとして説明する。いくつかの例では、図６の方法は、上記で説明したビデオエンコーダ２０（図１および図２）またはビデオデコーダ３０（図１および図３）によって行われ得ることを理解されたい。他の例では、図６の方法は、様々な他のプロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなどによって実行され得る。
【０１２３】
本開示の態様によれば、ビデオコーダは、ビデオデータのブロックに関連するルーマ情報に変換を適用すべき第１のＲＱＴ深度を決定し得る（１８２）。ルーマ情報は、概して、ルーマ情報の特定の領域にかかわらず、ビデオデータのルーマ成分に関連するデータを含み得る。すなわち、ルーマ情報は、残差ルーマサンプル（たとえば、空間／ピクセル領域）を含み得、ビデオエンコーダ（ビデオエンコーダ２０）は、変換係数（たとえば、変換領域）を生成するためにそれに変換を適用し得る。反対に、ルーマ情報は、ルーマ変換係数（たとえば、変換領域）を含み得、ビデオデコーダ（デコーダ３０）は、残差ルーマサンプル（たとえば、空間／ピクセル領域）を生成するためにそれに逆変換を適用し得る。
【０１２４】
さらに、ＲＱＴ深度に関して、いくつかの例では、ビデオコーダは、ＬＣＵのリーフＣＵごとにＲＱＴを決定し得る。すなわち、所与のＣＵについて、ビデオコーダは、変換のためにＣＵを分割する方法（たとえば、ＲＱＴに従ってＣＵを１つまたは複数のＴＵに分割すること）を決定し得る。ビデオコーダは、決定されたＲＱＴの最低深度（たとえば、ＲＱＴのリーフノード）においてルーマ情報に変換を適用し得る。
【０１２５】
ビデオコーダはまた、ビデオデータのブロックのクロマ情報に変換を適用すべき第２のＲＱＴ深度を決定し得る（１８４）。ルーマ情報と同様に、クロマ情報は、概して、クロマ情報の特定の領域にかかわらず、（たとえば、Ｃｒ成分とＣｂ成分とを含む）ビデオデータのクロマ成分に関連するデータを含み得る。すなわち、クロマ情報は、残差クロマサンプル（たとえば、空間／ピクセル領域）を含み得、ビデオエンコーダ（ビデオエンコーダ２０）は、変換係数（たとえば、変換領域）を生成するためにそれに変換を適用し得る。反対に、クロマ情報は、クロマ変換係数（たとえば、変換領域）を含み得、ビデオデコーダ（デコーダ３０）は、残差クロマサンプル（たとえば、空間／ピクセル領域）を生成するためにそれに逆変換を適用し得る。
【０１２６】
本開示の態様によれば、ビデオコーダは、ルーマ情報に変換を適用すべきＲＱＴ深度とは無関係に、クロマ情報に変換を適用すべきＲＱＴ深度を決定し得る。いくつかの例では、ビデオコーダは、ルーマサンプルよりも相対的に高いＲＱＴ深度においてクロマ情報に変換を適用し得る。たとえば、ビデオコーダは、ＲＱＴのリーフノードに関連するクロマ情報に変換を適用しないことがある。むしろ、ビデオコーダは、より高いＲＱＴ深度においてクロマ情報に変換を適用し得る（たとえば、それによって、リーフノードにおいて変換を適用することと比較して、より大きい変換を適用し得る）。
【０１２７】
ビデオコーダは、次いで、第１のＲＱＴ深度においてルーマ情報をコーディングし、第２のＲＱＴ深度においてクロマ情報をコーディングし得る（１８６）。たとえば、ビデオコーダがビデオエンコーダ（たとえば、ビデオエンコーダ２０）である例では、ビデオコーダは、残差ルーマサンプルおよび残差クロマサンプルに適切な変換を適用することによって、ルーマ情報とクロマ情報とを符号化し、それによって、変換領域における変換係数を生成し得る。代替的に、ビデオコーダがビデオデコーダ（たとえば、ビデオデコーダ３０）である例では、ビデオコーダは、変換係数に適切な逆変換を適用することによって、ルーマ情報とクロマ情報とを復号し、それによって、ピクセル領域における残差ルーマおよびクロマサンプルを生成し得る。
【０１２８】
また、図６に関して図示し説明したステップは一例として与えたものにすぎないことを理解されたい。すなわち、図６の方法のステップは必ずしも図６に示す順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。
【０１２９】
図７は、本開示に一致する、ビデオデータを符号化する技法を示す流れ図である。説明のためにビデオエンコーダ２０（図１および図２）の構成要素によって実行されるものとして一般的に説明するが、他のビデオコーディングユニット、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなども図７の方法を実行するように構成され得ることを理解されたい。
【０１３０】
図７に示す例示的な方法によれば、ビデオエンコーダ２０は、残差クロマサンプルとは異なるＲＱＴ深度において残差ルーマサンプルに変換を適用すべきかどうかを決定する（２００）。ビデオエンコーダ２０は、たとえば、レートひずみまたは他のコーディング分析に基づいて決定を行い得る。ビデオエンコーダ２０が、残差クロマサンプルとは異なるＲＱＴ深度において残差ルーマサンプルに変換を適用する場合（ステップ２００の「ＹＥＳ」分岐）、ビデオエンコーダ２０は、異なるＲＱＴ深度において変換が適用されるというインジケーションを生成する（２０２）。たとえば、ビデオエンコーダ２０は、異なるＲＱＴ深度において変換が適用されることを示すフラグを設定し得る。
【０１３１】
いくつかの例では、ビデオエンコーダ２０はまた、ＲＱＴ深度差のインジケーションを生成する（２０４）。すなわち、ビデオエンコーダ２０は、ルーマサンプルに変換が適用されるＲＱＴ深度と、クロマサンプルに変換が適用されるＲＱＴ深度との間の差のインジケーションを生成する。他の例では、そのようなインジケーションは必要とされないことがある。たとえば、ビデオエンコーダ２０は、クロマサンプルに変換を適用すべきデフォルトＲＱＴ深度を実装し得る。そのような例では、ビデオエンコーダ２０は、ＲＱＴ深度差のインジケーションを生成しないことがある。
【０１３２】
ビデオエンコーダ２０はまた、ルーマサンプルとクロマサンプルとに変換を適用する（２０６）。したがって、ビデオエンコーダ２０は、ビデオデータについてルーマ変換係数とクロマ変換係数とを生成する。ビデオエンコーダ２０は、（たとえば、いくつかの例では、量子化の後に）ルーマ変換係数とクロマ変換係数とを含んでいるビットストリームを生成する（２０８）。ビデオエンコーダ２０はまた、異なる深度において変換が適用されるというインジケーションおよび／またはビットストリームにおけるＲＱＴ深度差のインジケーションを含み得る。ビデオエンコーダ２０は、ルーマ変換係数よりも高いＲＱＴ深度においてクロマ変換係数をシグナリングし得るので、いくつかの事例では、ビデオエンコーダ２０は、ルーマ係数より前にクロマ変換係数をシグナリングし得る。すなわち、ビデオエンコーダ２０は、ビデオエンコーダ２０がルーマ変換係数をシグナリングする、リーフノードよりも高い深度において、ノードに関連するクロマ変換係数をシグナリングし得る。
【０１３３】
また、図７に関して図示し説明したステップは一例として与えたものにすぎないことを理解されたい。すなわち、図７の方法のステップは必ずしも図７に示す順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。たとえば、いくつかの事例では、ビデオエンコーダ２０は、異なるＲＱＴ深度において変換が適用されるというインジケーションを与えないことがあり（２０２）、および／またはＲＱＴ深度差のインジケーションを与えないことがある（２０４）。
【０１３４】
図８は、本開示に一致する、ビデオデータを復号する技法を示す流れ図である。説明のためにビデオデコーダ３０（図１および図３）の構成要素によって実行されるものとして一般的に説明するが、他のビデオコーディングユニット、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなども図８の方法を実行するように構成され得ることを理解されたい。
【０１３５】
ビデオデコーダ３０は、符号化されたビットストリームを受信する（２２０）。ビデオデコーダ３０は、次いで、クロマ変換係数とは異なるＲＱＴ深度において、受信したルーマ変換係数に逆変換を適用すべきかどうかを決定する（２２２）。いくつかの事例では、ビデオデコーダ３０は、受信したビットストリーム中に含まれるインジケーションに基づいてそのような決定を行い得る。たとえば、図７に関して上記で説明したように、ビデオデコーダ３０は、クロマサンプルとは異なる深度においてルーマサンプルに変換が適用されたことを示す、受信したビットストリーム中に含まれるフラグに基づいてそのような決定を行い得る。他の例では、ビデオデコーダ３０は、そのようなシグナリングなしに、デフォルトでルーマ係数とクロマ係数とについて異なるＲＱＴ深度において逆変換を適用すべきかどうかを決定し得る。
【０１３６】
変換が異なる深度において適用される場合（ステップ２２２の「はい」分岐）、ビデオデコーダ３０は、ルーマ変換係数に逆変換を適用すべきＲＱＴ深度を決定する（２２４）。いくつかの例では、ビデオデコーダ３０は、ＲＱＴのリーフノードにおいてルーマ変換係数に逆変換を適用するようにプリプログラムされ得る。
【０１３７】
さらに、ビデオデコーダ３０は、クロマ係数に逆変換を適用すべきＲＱＴ深度を決定し得る（２２６）。いくつかの例では、ビデオデコーダ３０は、ある特定のデフォルトＲＱＴ深度においてクロマ変換係数に逆変換を適用するようにプリプログラムされ得る。たとえば、ビデオデコーダ３０は、０のＲＱＴ深度または１のＲＱＴ深度においてクロマ変換係数に逆変換を適用するようにプリプログラムされ得る。
【０１３８】
別の例では、ビデオデコーダ３０は、ビットストリーム中で受信したインジケーションに基づいて逆変換を適用すべきＲＱＴ深度を決定し得る。たとえば、ビデオデコーダ３０は、ルーマ変換係数に逆変換を適用すべきＲＱＴ深度とクロマ変換係数に逆変換を適用すべきＲＱＴ深度との間の差のインジケーションを受信し得る。他の例では、ビデオデコーダ３０は、クロマ変換係数に逆変換を適用すべきＲＱＴ深度を表す代替的なインジケーションを受信し得る。たとえば、ビデオデコーダ３０は、受信したブロックのサイズまたは他の基準に基づいて逆変換を適用すべきＲＱＴ深度を推測し得る。逆変換を適用すべきＲＱＴ深度を決定した後に、ビデオデコーダ３０は、ルーマ変換係数とクロマ変換係数とに逆変換を適用し得る（２２８）。いくつかの例では、クロマ変換係数は、ルーマ変換係数より前にビットストリーム中に含まれ得る。したがって、ビデオデコーダ３０は、ルーマ係数に逆変換を適用するより前にクロマ変換係数に逆変換を適用し得る。ルーマ変換係数とクロマ変換係数とに逆変換を適用することによって、ビデオデコーダ３０は、残差ルーマサンプルおよび残差クロマサンプルを生成し得る。
【０１３９】
また、図８に関して図示し説明したステップは一例として与えたものにすぎないことを理解されたい。すなわち、図８の方法のステップは、必ずしも図８に示す順序で実行される必要はなく、より少数の、追加の、または代替のステップが実行され得る。
【０１４０】
例に応じて、本明細書で説明する方法のいずれかの特定の行為または事象は、異なる順序で実行され得、追加され得、マージされ得、またはすべてまとめて省略され得る（たとえば、説明した行為または事象の必ずしもすべてが、本方法の実施に必要であるとは限らない）ことを理解されたい。さらに、いくつかの例では、行為または事象は、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。さらに、本開示のいくつかの態様は、明快のために、単一のモジュールまたはユニットによって実行されるものとして説明したが、本開示の技法は、ビデオコーダに関連するユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
【０１４１】
また、本開示のいくつかの態様について新生のＨＥＶＣ規格に関して、たとえば、ＣＵ、ＰＵ、およびＴＵに関して説明したが、本開示の技法はこのように限定されないことを理解されたい。すなわち、本開示の技法は、ビデオデータのブロックに関連するルーマサンプルとクロマサンプルとに変換を適用することに広く適用され、いかなる特定のコーディング規格にも限定されない。
【０１４２】
１つまたは複数の例では、本開示において説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。
【０１４３】
このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１４４】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０１４５】
ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１４６】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１４７】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１４８】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータをコーディングする方法であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なる、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報をコーディングし、前記第２のＲＱＴ深度において前記クロマ情報をコーディングすることとを備える、方法。
［Ｃ２］
前記ルーマ情報と前記クロマ情報とをコーディングすることが、前記ルーマ情報と前記クロマ情報とを符号化することを含み、前記ルーマ情報が残差ルーマサンプルを備え、前記クロマ情報が残差クロマサンプルを備え、符号化することが、
ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において前記残差ルーマサンプルに前記第１の変換を適用することと、
クロマ変換係数を生成するために、前記第２のＲＱＴ深度において前記残差クロマサンプルに前記第２の変換を適用することとを含む、Ｃ１に記載の方法。
［Ｃ３］
前記ルーマ情報と前記クロマ情報とを符号化することが、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとをさらに含む、Ｃ２に記載の方法。
［Ｃ４］
前記ルーマ情報と前記クロマ情報とをコーディングすることが、前記ルーマ情報と前記クロマ情報とを復号することを含み、前記ルーマ情報がルーマ変換係数を備え、前記クロマ情報がクロマ変換係数を備え、復号することが、
残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度において前記ルーマ変換係数に前記第１の変換を適用することと、
残差クロマサンプルを生成するために、前記第２のＲＱＴ深度において前記クロマ変換係数に前記第２の変換を適用することとを含む、Ｃ１に記載の方法。
［Ｃ５］
前記第２のＲＱＴ深度は、前記第１の変換が前記第２の変換よりも小さくなるように前記第１のＲＱＴ深度よりも高い、Ｃ１に記載の方法。
［Ｃ６］
前記第２のＲＱＴ深度を決定することが、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定することを含む、Ｃ１に記載の方法。
［Ｃ７］
前記差を決定することが、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、前記差のインジケーションを含んでいるスライスヘッダとのうちの１つを復号することを含む、Ｃ６に記載の方法。
［Ｃ８］
前記第２のＲＱＴ深度を決定することが、所定のＲＱＴ深度を決定することを含む、Ｃ１に記載の方法。
［Ｃ９］
前記所定のＲＱＴ深度を決定することが、０のＲＱＴ深度を決定することと、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することとを含む、Ｃ１に記載の方法。
［Ｃ１０］
前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションをコーディングすることをさらに含む、Ｃ１に記載の方法。
［Ｃ１１］
前記インジケーションをコーディングすることが、ルーマ情報とは異なるＲＱＴ深度においてクロマ情報がシグナリングされることを示すフラグをコーディングすることを含む、Ｃ１０に記載の方法。
［Ｃ１２］
ビデオデータをコーディングするための装置であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なる、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報をコーディングし、前記第２のＲＱＴ深度において前記クロマ情報をコーディングすることとを行うように構成された１つまたは複数のプロセッサを備える、装置。
［Ｃ１３］
前記装置が、前記ルーマ情報と前記クロマ情報とを符号化するための前記１つまたは複数のプロセッサを備えるビデオエンコーダを備え、前記ルーマ情報が残差ルーマサンプルを備え、前記クロマ情報が残差クロマサンプルを備え、前記ビデオエンコーダの前記１つまたは複数のプロセッサが、
ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において前記残差ルーマサンプルに前記第１の変換を適用することと、
クロマ変換係数を生成するために、前記第２のＲＱＴ深度において前記残差クロマサンプルに前記第２の変換を適用することとを行うように構成された、Ｃ１２に記載の装置。
［Ｃ１４］
前記ルーマ情報と前記クロマ情報とを符号化するために、前記ビデオエンコーダの前記１つまたは複数のプロセッサが、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとを行うように構成された、Ｃ１３に記載の装置。
［Ｃ１５］
前記装置が、前記ルーマ情報と前記クロマ情報とを復号するための前記１つまたは複数のプロセッサを備えるビデオデコーダを備え、前記ルーマ情報がルーマ変換係数を備え、前記クロマ情報がクロマ変換係数を備え、前記ビデオデコーダの前記１つまたは複数のプロセッサが、
残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度において前記ルーマ変換係数に前記第１の変換を適用することと、
残差クロマサンプルを生成するために、前記第２のＲＱＴ深度において前記クロマ変換係数に前記第２の変換を適用することとを行うように構成された、Ｃ１２に記載の装置。
［Ｃ１６］
前記第２のＲＱＴ深度は、前記第１の変換が前記第２の変換よりも小さくなるように前記第１のＲＱＴ深度よりも高い、Ｃ１２に記載の装置。
［Ｃ１７］
前記第２のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定するように構成された、Ｃ１２に記載の装置。
［Ｃ１８］
前記差を決定するために、前記１つまたは複数のプロセッサが、シーケンスパラメータセット（ＳＰＳ）と、ピクチャパラメータセット（ＰＰＳ）と、前記差のインジケーションを含んでいるスライスヘッダとのうちの１つを復号するように構成された、Ｃ１７に記載の装置。
［Ｃ１９］
前記第２のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、所定のＲＱＴ深度を決定するように構成された、Ｃ１２に記載の装置。
［Ｃ２０］
前記所定のＲＱＴ深度を決定するために、前記１つまたは複数のプロセッサが、０のＲＱＴ深度を決定することと、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することとを行うように構成された、Ｃ１２に記載の装置。
［Ｃ２１］
前記１つまたは複数のプロセッサが、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションをコーディングするようにさらに構成された、Ｃ１２に記載の装置。
［Ｃ２２］
前記インジケーションをコーディングするために、前記１つまたは複数のプロセッサが、ルーマ情報とは異なるＲＱＴ深度においてクロマ情報がシグナリングされることを示すフラグをコーディングするように構成された、Ｃ２１に記載の装置。
［Ｃ２３］
前記装置がビデオエンコーダを備える、Ｃ１２に記載の装置。
［Ｃ２４］
前記装置がビデオデコーダを備える、Ｃ１２に記載の装置。
［Ｃ２５］
ビデオデータをコーディングするための装置であって、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定するための手段であって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定するための手段と、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定するための手段であって、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なる、決定するための手段と、
前記第１のＲＱＴ深度において前記ルーマ情報をコーディングし、前記第２のＲＱＴ深度において前記クロマ情報をコーディングするための手段とを備える、装置。
［Ｃ２６］
前記ルーマ情報と前記クロマ情報とをコーディングするための前記手段が、前記ルーマ情報と前記クロマ情報とを符号化するための手段を備え、前記ルーマ情報が残差ルーマサンプルを備え、前記クロマ情報が残差クロマサンプルを備え、符号化するための前記手段が、
ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において前記残差ルーマサンプルに前記第１の変換を適用することと、
クロマ変換係数を生成するために、前記第２のＲＱＴ深度において前記残差クロマサンプルに前記第２の変換を適用することとを行うように構成された、Ｃ２５に記載の装置。
［Ｃ２７］
前記ルーマ情報と前記クロマ情報とを符号化するための前記手段が、
前記第１のＲＱＴ深度における前記ルーマ変換係数のインジケーションを備えるビットストリームを生成することと、
前記第２のＲＱＴ深度における前記クロマ変換係数のインジケーションを備えるビットストリームを生成することとを行うようにさらに構成された、Ｃ２６に記載の装置。
［Ｃ２８］
前記ルーマ情報と前記クロマ情報とをコーディングするための前記手段が、前記ルーマ情報と前記クロマ情報とを復号するための手段を備え、前記ルーマ情報がルーマ変換係数を備え、前記クロマ情報がクロマ変換係数を備え、復号するための前記手段が、
残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度において前記ルーマ変換係数に前記第１の変換を適用することと、
残差クロマサンプルを生成するために、前記第２のＲＱＴ深度において前記クロマ変換係数に前記第２の変換を適用することとを行うように構成された、Ｃ２５に記載の装置。
［Ｃ２９］
前記第２のＲＱＴ深度は、前記第１の変換が前記第２の変換よりも小さくなるように前記第１のＲＱＴ深度よりも高い、Ｃ２５に記載の装置。
［Ｃ３０］
前記第２のＲＱＴ深度を決定するための前記手段が、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定するための手段を備える、Ｃ２５に記載の装置。
［Ｃ３１］
前記第２のＲＱＴ深度を決定するための前記手段が、所定のＲＱＴ深度を決定するための手段を備える、Ｃ２５に記載の装置。
［Ｃ３２］
前記所定のＲＱＴ深度を決定するための前記手段が、０のＲＱＴ深度を決定するための手段と、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用するための手段とを備える、Ｃ２５に記載の装置。
［Ｃ３３］
前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なるというインジケーションをコーディングするための手段をさらに備える、Ｃ２５に記載の装置。
［Ｃ３４］
コンピュータプログラム製品であって、実行されたときに、
ビデオデータのブロックに関連するルーマ情報に第１の変換を適用すべき第１の残差４分木（ＲＱＴ）深度を決定することであって、前記ＲＱＴは、ルーマ情報とクロマ情報とに変換が適用される方法を表す、決定することと、
ビデオデータの前記ブロックに関連する前記クロマ情報に第２の変換を適用すべき第２のＲＱＴ深度を決定することであって、前記第２のＲＱＴ深度が前記第１のＲＱＴ深度とは異なる、決定することと、
前記第１のＲＱＴ深度において前記ルーマ情報をコーディングし、前記第２のＲＱＴ深度において前記クロマ情報をコーディングすることとを、ビデオデータをコーディングするためのデバイスの１つまたは複数のプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備える、コンピュータプログラム製品。
［Ｃ３５］
前記命令が、前記ルーマ情報と前記クロマ情報とを符号化することを前記１つまたは複数のプロセッサに行わせ、前記ルーマ情報が残差ルーマサンプルを備え、前記クロマ情報が残差クロマサンプルを備え、符号化することが、
ルーマ変換係数を生成するために、前記第１のＲＱＴ深度において前記残差ルーマサンプルに前記第１の変換を適用することと、
クロマ変換係数を生成するために、前記第２のＲＱＴ深度において前記残差クロマサンプルに前記第２の変換を適用することとを含む、Ｃ３４に記載のコンピュータプログラム製品。
［Ｃ３６］
前記命令が、前記ルーマ情報と前記クロマ情報とを復号することを前記１つまたは複数のプロセッサに行わせ、前記ルーマ情報がルーマ変換係数を備え、前記クロマ情報がクロマ変換係数を備え、復号することが、
残差ルーマサンプルを生成するために、前記第１のＲＱＴ深度において前記ルーマ変換係数に前記第１の変換を適用することと、
残差クロマサンプルを生成するために、前記第２のＲＱＴ深度において前記クロマ変換係数に前記第２の変換を適用することとを含む、Ｃ３４に記載のコンピュータプログラム製品。
［Ｃ３７］
前記第２のＲＱＴ深度は、前記第１の変換が前記第２の変換よりも小さくなるように、前記第１のＲＱＴ深度よりも高い、Ｃ３４に記載のコンピュータプログラム製品。
［Ｃ３８］
前記命令が、前記第１のＲＱＴ深度と前記第２のＲＱＴ深度との間の差を決定することによって前記第２のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、Ｃ３４に記載のコンピュータプログラム製品。
［Ｃ３９］
前記命令が、所定のＲＱＴ深度を決定することによって前記第２のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、Ｃ３４に記載のコンピュータプログラム製品。
［Ｃ４０］
前記命令が、０のＲＱＴ深度を決定し、ビデオデータの前記ブロックに関連するコーディングユニットレベルにおいて前記クロマ情報に変換を適用することによって、前記所定のＲＱＴ深度を決定することを前記１つまたは複数のプロセッサに行わせる、Ｃ３４に記載のコンピュータプログラム製品。
【図１】
0005869008.tif 000018
【図２】
0005869008.tif 000019
【図３】
0005869008.tif 000020
【図４】
0005869008.tif 000021
【図５Ａ】
0005869008.tif 000022
【図５Ｂ】
0005869008.tif 000023
【図６】
0005869008.tif 000024
【図７】
0005869008.tif 000025
【図８】
0005869008.tif 000026