[0025]ビデオコーダ(すなわちビデオエンコーダまたはデコーダ)は、ピクチャのシーケンスとして概して表されるビデオシーケンスをコーディングするように概して構成される。典型的に、ビデオコーダは、ピクチャのシーケンスの各々をコーディングするためにブロックベースのコーディング技法を使用する。ブロックベースのビデオコーディングの一部として、ビデオコーダは、ビデオシーケンスの各ピクチャをデータのブロックに分割する。ビデオコーダは、ブロックの各々を個々にコーディング(すなわち符号化または復号)する。ビデオデータのブロックを符号化することは、元のブロックのための1つまたは複数の予測ブロックと、元のブロックと1つまたは複数の予測ブロックとの間の差分に対応する残差ブロックとを生成することによって、データの元のブロックを符号化することを概して伴う。特に、ビデオデータの元のブロックは、「サンプル」の1つまたは複数のチャネルからなるピクセル値の行列を含み、予測ブロックは、その各々が予測サンプルから同じく作られる予測ピクセル値の行列を含む。残差ブロックの各サンプルは、予測ブロックのサンプルと、元のブロックの対応するサンプルとの間の差分を示す。
[0026]ビデオデータのブロックのための予測技法は、概して、イントラ予測およびインター予測としてカテゴリー分類される。イントラ予測(すなわち、空間的予測)は、隣接する、前にコーディングされたブロックのピクセル値からブロックを予測することを概して伴う。インター予測は、前にコーディングされたピクチャのピクセル値からブロックを予測することを概して伴う。
[0027]ビデオデータの各ブロックのピクセルは、「色空間」と呼ばれる、特定のフォーマットでの色をそれぞれ表す。言い換えれば、ブロックは特定の色空間を「有する」。色空間は「カラー空間」と呼ばれることもある。色空間は、色が数のタプルとして表され得る方法を記述する数学的モデルである。異なるビデオコーディング規格は、ビデオデータを表すために異なる色空間を使用し得る。一例として、ジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)によって開発された高効率ビデオコーディング(HEVC)ビデオ規格のメインプロファイルは、ビデオデータのブロックのピクセルを表すためにYCbCr色空間を使用する。
[0028]YCbCr色空間は、ビデオデータの各ピクセルが色情報の3つのサンプル成分またはチャネル、「Y」、「Cb」、および「Cr」によって表される色空間を概して指す。Yチャネルは、特定のサンプルのためのルミナンス(すなわち輝度)データを含んでいる。Cb成分およびCr成分は、それぞれ、青色差クロミナンス成分および赤色差クロミナンス成分である。Y成分とCb成分とCr成分との各々の間に強い無相関があり、これは、YチャネルとCbチャネルとCrチャネルの各々の間で重複しているかまたは冗長であるデータがほとんどないことを意味するので、YCbCrはしばしば、圧縮されたビデオデータで色を表すために使用される。したがって、YCbCr色空間を使用してビデオデータをコーディングすると、多くの場合、良好な圧縮性能が提供される。
[0029]さらに、多くのビデオコーディング技法は、色データの圧縮をさらに改善するために「クロマサブサンプリング」と呼ばれる技法を利用する。クロマサブサンプリングは、ブロックのためにルーマ情報よりも少ないクロマ情報を使用して、すなわち、同じブロック中でルーマサンプルの数に対してより少ない数のクロマサンプルを使用してビデオデータのブロックをコーディングすることを指す。YCbCr色空間を有するビデオデータのクロマサブサンプリングは、パターンに従ってクロマ成分を選択的に省略することによって、コード化ビデオビットストリーム中でシグナリングされるクロマ値の数を低減する。クロマサブサンプリングされたビデオデータのブロックでは、概して、ブロックのピクセルごとにルーマサンプルがある。しかしながら、ビデオコーダは、ブロックのピクセルのうちのいくつかについてCbおよびCrサンプルをシグナリングすることのみができ得る。
[0030]クロマサブサンプリングのために構成されたビデオコーダは、ピクセルについてCb成分とCr成分とを補間し、ここで、Cb値とCr値とは、ピクセルのクロマサブサンプリングされたブロックについて明示的にシグナリングされない。クロマサブサンプリングは、より均一であるピクセルのブロック中に多くのひずみをもたらすことなしにクロミナンスデータの量を低減するためにうまく動作する。クロマサブサンプリングは、大幅に異なるクロマ値を有するビデオデータを表すためにあまりうまく動作せず、それらの場合、大量のひずみをもたらし得る。
[0031]HEVC規格への拡張であるHEVCレンジ拡張は、追加の色空間およびクロマサブサンプリングフォーマットについて、ならびに増加した色ビット深度についてHEVCへのサポートを追加する。色ビット深度は、色空間の成分を表すために使用されるビット数である。他の色空間のためのサポートは、ビデオデータのRGBソースを符号化および復号するためのサポート、ならびに他の色空間を有するビデオデータをコーディングするためのサポートを含み得る。
[0032]ビデオ前処理アプリケーションなど、アプリケーションによっては、HEVCビデオにおいてYCbCr以外の色空間を使用することが有用であり得る。高忠実度ビデオソース、たとえばビデオカメラは、RGB色空間を使用して、赤色チャネルと緑色チャネルと青色チャネルとの各々に対応し得る個別の電荷結合デバイス(CCD)を使用してビデオデータをキャプチャし得る。RGB色空間(特にRGB4:4:4色空間)は、各ピクセルを赤色サンプルと緑色サンプルと青色サンプルとの組合せとして表す。
[0033]ビデオ処理ソフトウェアおよび前処理アプリケーションは、YCbCr色空間の成分などの色成分ではなく、RGB色空間でより良く動作するか、またはRGB色空間のみと互換性があり得る。さらに、いくつかのRGB色空間は、ピクセルごとにRサンプルとGサンプルとBサンプルとの各々を含み得、すなわちビデオコーダはクロマサブサンプリングを実施しなくてよい。クロマサブサンプリングなしのビデオブロックは、クロマサブサンプリングフォーマットを使用するビデオブロックと比較して、より良い主観的視覚的品質を有し得る。
[0034]しかしながら、RGBは、赤色成分と緑色成分と青色成分との各々の間に有意な相関があるという欠点がある。RGB色空間における比較的より高い色相関のために、RGB色空間を有するビデオデータのブロックを表すために必要とされるデータの量は、他の色空間を使用して表されるビデオデータのブロックよりもはるかに大きくなり得る。
[0035]圧縮性能を改善するために、本開示の技法のうちの1つまたは複数に従って構成されたビデオコーダは、RGB色空間などの第1の色空間を有するビデオデータのブロックを、YCbCrまたは別の色空間などの異なる色空間を有するビデオのブロックに、およびその逆に変換し得る。しかしながら、RGBへのおよびRGBから別の色空間への変換は、ビデオ品質に悪影響を及ぼし得るひずみをもたらし得る。ひずみは、第1の色空間と第2の色空間との間の異なるビット深度の結果であり得る。また、本開示の技法のうちのより多くのものの1つに従って構成されたビデオコーダは、いかなるひずみももたらすことなしにRGBにおよびRGBから異なる色空間にビデオデータを変換することが可能である。本開示の技法のうちの1つまたは複数は、過大なひずみをもたらすことなしにRGBビデオデータを圧縮するために色変換を使用してRGB色空間を有するビデオデータを第2の色空間に変換するための技法を対象とする。
[0036]本開示の技法のうちの1つまたは複数は、色変換を使用して第1の色空間を有するビデオデータのブロックを第2の色空間を有するビデオデータのブロックに変換する。いくつかの例では、色変換は行列であり、この行列は、色空間のサンプルの行列で乗算されたとき、色変換行列に関連付けられた色空間を有するピクセルを生成する。いくつかの例では、色変換は1つまたは複数の式を備え得る。本開示の技法のうちの1つまたは複数は、第2の色空間を有するビデオデータのブロックを生成するためにRGB色空間を有するビデオデータのブロックを適応的に変換するように構成され得るビデオコーダをさらに対象とする。第2の色空間は、色空間の間でサンプルを変換するときにビデオコーダが選択し得る複数の色空間のうちの1つであり得る。
[0037]RGB色空間を有するビデオデータを変換するために1つまたは複数の色空間のうちのどれかを決定するために、ビデオコーダは、たとえばいくつかのメトリックに基づいて、適応的に変換を選択し得る。いくつかの例では、ビデオコーダは、色変換の各々に関連するコスト値を決定し得、最も低いコストを生成する色変換を決定し得る。別の例では、コストは、RGBビデオデータのブロックの色成分の各々と、第2の色空間の色成分との間の相関に基づき得る。最も低い関連するコストを有する色変換は、ソースビデオのRGB色成分と最も密接に相関する色成分を有する色変換であり得る。いくつかの例では、ビデオデコーダは、ビデオエンコーダから受信されたシンタックスデータに基づいて逆色変換を選択し得る。シンタックスデータは、ビデオデータのコード化ユニットの1つまたは複数のブロックに適用すべき1つまたは複数の色変換の逆色変換を示し得る。
[0038]HEVCビデオコーディング規格は、ビデオデータのブロックを定義するツリー様の構造を定義している。本開示の技法は、HEVCのツリー様の構造の様々な異なる構成要素に適用され得る。HEVCでは、ビデオコーダは、ツリー構造に基づいて、(「フレーム」とも呼ばれる)コード化ピクチャをブロックに分解する。そのようなブロックはツリーブロックと呼ばれることがある。いくつかの事例では、ツリーブロックは最大コーディングユニット(LCU)と呼ばれることもある。HEVCのツリーブロックは、H.264/AVCなど、以前のビデオコーディング規格のマクロブロックにほぼ類似し得る。ただし、いくつかのビデオコーディング規格のマクロブロックとは異なり、ツリーブロックは一定のサイズ(たとえば一定数のピクセル)に限定されない。ツリーブロックは1つまたは複数のコーディングユニット(CU)を含み得、CUはサブコーディングユニット(サブCU)に再帰的に分割され得る。
[0039]各CUは、1つまたは複数の変換ユニット(TU)を含み得る。各TUは、変換された残差データを含み得る。さらに、各CUは1つまたは複数の予測ユニット(PU)を含み得る。PUは、CUの予測モードに関係する情報を含む。本開示の技法は、ビデオデータのLCU、CU、サブCU、PU、TU、マクロブロック、マクロブロックパーティション、サブマクロブロック、または他のタイプのブロックのうちの1つまたは複数など、ブロックに色変換を適用し得る。
[0040]ビデオコーダは、ビデオコーディングプロセスの様々な段階において本開示の技法を実施するように構成され得る。一例では、ビデオエンコーダは、入力ビデオ信号、たとえばRGB色空間を有するビデオブロックに色変換を適用し得る。ビデオエンコーダは、次いで、第2の色空間を有する変換されたブロックに作用し得る。たとえば、ビデオエンコーダは、変換されたブロックを符号化し得る。復号中に、ビデオデコーダは、第2の色空間を有するブロックを再構成するために概して逆のプロセスを実施し得、再構成されたピクチャを出力する直前に逆色変換を適用し得る。
[0041]別の例では、本開示の技法に従って構成されたビデオエンコーダは、複数の色変換のうちの選択された色変換を使用してRGB色空間を有する残差ビデオデータのブロックを第2の色空間を有するビデオデータの第2のブロックに変換し得る。同様の様式で構成されたビデオデコーダは、ブロックをRGB色空間を有する残差データのブロックに変換するために、複数の色変換のうちの選択された逆色変換を第2の色空間を有する残差データのブロックに適用し得る。
[0042]ビデオコーダは、ビデオデータのブロックに特定の色変換が適用されていることを、いくつかの異なる方法でシグナリングまたは決定し得る。一例では、ビデオコーダは、ブロックごとに、そのブロックを変換するために複数の色変換のうちの選択された変換が使用されたことを示すデータ(たとえば、インデックス値)と、ビデオデータのそのブロックに関連する色空間をコーディング(すなわち、符号化または復号)し得る。インデックス値はまた、ビデオデコーダがブロックを逆変換するために適用すべきである、選択された逆色変換を示し得る。
[0043]第2の例では、ビデオエンコーダは、ピクチャの各ブロックを変換するために単一の色変換が使用されるべきであることを決定し得る。この例では、ビデオコーダは、たとえば、他の場所で本開示の他の場所で説明するコストベースの基準のうちの1つまたは複数を使用して、ピクチャのブロックの各々に色変換を適用すべきか否かを個々に決定し得る。ビデオコーダは、次いで、CVSのブロックの各々に単一の変換が適用されているか否か示すデータをコーディングし得る。エンコーダは、単一の色変換が1つのブロックまたは複数のブロックに適用されていることこと、あるいは単一の色変換がそのブロックまたは複数のブロックに適用されていないこと(すなわち、いかなる変換もブロックに適用されていないこと)を示す、フラグシンタックス要素などのデータを符号化する。ビデオデコーダは、単一の色変換がそのブロックまたは複数のブロックに適用されていることこと、あるいは単一の色変換がそのブロックまたはそれらの複数のブロックに適用されていないことを示すデータを復号し、ブロックに逆色変換を適用する。これらの例では、第1のフラグ値は、変換が適用されていることを示し得、一方、フラグシンタックス要素の第2の異なる値は、変換が適用されていないことを示し得る。
[0044]いくつかの例では、ビデオエンコーダは、CVSのピクチャのブロックの各々に単一の色変換が適用されるべきであることを決定する。言い換えれば、ビデオエンコーダは、CVSのすべてのピクチャのすべてのブロックに適用するために単一の色変換を選択する。ビデオエンコーダは、決定された単一の色変換を使用してCVSのブロックの各々を変換する。CVSのピクチャのすべてのブロックは単一の色変換を使用して変換され、どんなブロックも変換されないままにならない。すべてのブロックは決定された色変換を使用して変換されるので、ビデオコーダは、決定された色変換を使用して特定のブロックが変換されていることを示すデータをコーディングすることが不要であり得る。
[0045]本開示の色変換は、必ずしも限定されるとは限らないが、恒等変換、差分変換、重み付き差分変換、離散コサイン変換(DCT)、YCbCr変換、YCgCo変換、YCgCo−R変換、および/または本明細書で特に説明しない変換を含み得る。恒等変換を適用することは、変換をまったく適用しないことと同じであり得る。
[0046]RGB色空間を有するビデオデータのブロックに色変換を適用するために、ビデオエンコーダは、3×1行列に色変換行列を乗算し得る。3×1行列は、赤色成分と、緑色成分と、青色成分とを備え得る。行列乗算の結果は、第2の色空間を有するピクセルまたはピクセルのセットである。ビデオコーダは、ビデオブロックの各ピクセルに色変換行列を適用し得る。ビデオコーダは、本開示の他の場所で説明するように、コスト基準に基づいて適切な行列を選択し得る。
[0047]復号中に、本開示の技法のうち1つまたは複数に従って構成されたビデオデコーダは、コード化ビデオビットストリーム中でシグナリングされるデータに基づいて逆変換行列を選択し得る。さらに、ビデオコーダは、3×1行列に逆変換行列を乗算し得る。3×1行列は第2の色空間のためのピクセルデータを備え得る。乗算の結果はRGB色空間中のピクセルである。
[0048]図1は、本開示の1つまたは複数の態様による、色変換を使用して第1の表現を有するビデオデータを第2の色空間を有するビデオデータに変換するための技法を実装し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
[0049]図1は、本開示の1つまたは複数の態様による、色変換を使用して第2の色空間を有するデータを有するビデオの第2のブロックを生成するために第1の空間を有するビデオデータのブロックを変換するための技法を実装し得る例示的なビデオ符号化および復号システムを示すブロック図である。図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。本開示によれば、ソースデバイス12のビデオエンコーダ20は、複数の色変換のうちの色変換を使用して第1の色空間を有するデータの第1のブロックを第2の色空間を有するビデオデータの第2のブロックに変換する技法を適用することと、第2の色空間を有する第2のビデオブロックをコーディングすることとを行うように構成され得る。
[0050]具体的には、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
[0051]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0052]符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を促進するために有用であり得る任意の他の機器を含み得る。
[0053]いくつかの例では、出力インターフェース22は、記憶デバイスに符号化データを出力し得る。同様に、入力インターフェース28は、記憶デバイスからの符号化データにアクセスし得る。記憶デバイスは、ハードドライブ、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、(たとえば、ストリーミングまたはダウンロードを介して)記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバとしては、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ハイパーテキスト転送プロトコル(HTTP)ストリーミングサーバ、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0054]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
[0055]図1のシステム10は一例にすぎない。第1の色空間を有するデータのブロックをビデオデータの第2のブロックに変換するための技法は、複数の色変換のうちの色変換を使用する第2の色空間を有し、どんなデジタルビデオ符号化および/または復号デバイスによっても実施され得る。概して、本開示の技法は、ビデオ符号化デバイスによって実施されるが、本技法は、通常「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実施され得る。その上、本開示の技法はビデオプリプロセッサによっても実施され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0056]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。いくつかの例では、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成する。場合によっては、ビデオソース18はビデオカメラであり得る。いくつかの例では、ビデオソース18はビデオカメラであり得る。いくつかの例では、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンであり得る。様々な例では、ビデオソース18は、RGB色空間を有する入力信号を出力し得る。しかしながら、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。出力インターフェース22は、コンピュータ可読媒体16上にhe符号化ビデオ情報を出力し得る。
[0057]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
[0058]図1の例において、宛先デバイス14の入力インターフェース28は、情報をコンピュータ可読媒体16から受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20により定義された、ブロックおよび他のコーディングユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含むシンタックス情報を含み得る。ディスプレイデバイス32は復号ビデオデータをユーザに表示する。ディスプレイデバイス32は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0059]ビデオエンコーダ20およびビデオデコーダ30は、ジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)によって開発された、最近確定された高効率ビデオコーディング(HEVC)、ならびにHEVCレンジ拡張など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263がある。
[0060]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0061]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアあるいはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本開示の技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実施するための1つまたは複数のプロセッサを使用して、ハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0062]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。
[0063]HEVCは、ビデオフレームまたはピクチャがツリーブロック(すなわち、最大コーディングユニット(LCU)または「コーディングツリーユニット」(CTU))のシーケンスに分割され得ることを記載している。ツリーブロックはルーマおよび/またはクロマサンプルを含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。いくつかの例では、CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。スライスは、いくつかの連続するツリーブロックをコーディング順序(たとえば、ラスタ走査順序)で含む。
[0064]各ツリーブロックは、4分木に従って1つまたは複数のコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0065]4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供し得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、CUは、リーフCUと呼ばれる。
[0066]ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実施して、コーディングツリーブロックをコーディングブロックに分割し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのN×Nのブロックであり得る。いくつかの例では、CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
[0067]CUは、CUがサイズの差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、次に親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU)をも定義し得る。本開示では、HEVCのコンテキストにおける1つまたは複数の予測ユニット(PU)または変換ユニット(TU)を、あるいは他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)をさらに含み得る、CUのいずれかを指すために、「ブロック」という用語を使用する。
[0068]CUは、1つまたは複数の予測ユニット(PU)と、1つまたは複数の変換ユニット(TU)とを含む。CU対応のサイズは、形状が正方形または矩形であり得る。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまで及び得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。CUは、CUのPUの形状が非正方形になり得るように区分され得る。CUに関連するシンタックスデータはまた、たとえば、4分木に従ってCUを1つまたは複数のTUに区分することを記述し得る。
[0069]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUのPUは、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。
[0070]変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとを有し得る。TUのルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。TUは、形状が正方形または非正方形(たとえば、矩形)であり得る。言い換えれば、TUに対応する変換ブロックは、形状が正方形または非正方形であり得る。
[0071]HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0072]概して、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。いくつかの例では、PUは、イントラモードまたはインターモードを使用して符号化され得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0073]上記のように、1つまたは複数のPUを有するリーフCUはまた、1つまたは複数のTUを含み得る。TUは、上記で説明したように、RQT(TU4分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各TUユニットは、さらなるサブTUにさらに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、概して、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、PUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0074]その上、リーフCUのTUはまた、RQTと呼ばれるそれぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロックに対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に記載されていない限り、リーフCUおよびリーフTUを指すためにそれぞれCUおよびTUという用語を使用する。
[0075]PUとTUの両方は、当該ブロックに関連する色空間のチャネルの各々に対応するサンプルの1つまたは複数のブロックを含んでいる(すなわち、対応する)ことがある。PUのブロックは予測ブロックのサンプルを含み得、TUのブロックは、元のブロックと予測ブロックとの間の差分に対応する残差サンプルを含むブロック得る。YCbCr色空間に関連するブロックの場合、ルーマサンプルのブロックは「Y」チャネルに対応し得、クロマブロックの2つの異なるチャネルは、それぞれCbチャネルおよびCrチャネルに対応し得る。
[0076]一例として、HEVCは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズでのイントラ予測、および2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズでのインター予測をサポートする。HEVCはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測について、非対称な区分をサポートする。非対称な区分では、CUの一方向は区分されないが、他の方向は25%および75%に区分される。25%のパーティションに対応するCUの部分は、「n」と、それに続く「Up」、「Down」、「Left」、または「Right」という指示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5NのPUと、下部の2N×1.5NのPUとによって水平に区分される2N×2NのCUを指す。
[0077]本開示では、「N×N」および「N by N」は、垂直および水平の寸法の観点からビデオブロックのピクセル寸法を指すために、たとえば、16×16ピクセルまたは16by16ピクセルのように、互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここで、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ここで、Mは、必ずしもNに等しいとは限らない。
[0078]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20またはビデオデコーダ30は、CUのTUのための残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20またはビデオデコーダ30は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。言い換えれば、ビデオエンコーダ20は、TUのための変換係数ブロックを生成するために、TUの変換ブロックに変換を適用し得る。ビデオデコーダ30は、TUのための変換ブロックを再構成するために、TUの変換係数ブロックに逆変換を適用し得る。
[0079]変換係数を生成するための(もしあれば)変換の適用の後に、ビデオエンコーダ20またはビデオデコーダ30は、変換係数の量子化を実施し得る。言い換えれば、ビデオエンコーダ20は、変換係数ブロックの変換係数を量子化し得る。ビデオデコーダ30は、変換係数ブロックの変換係数を逆量子化し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ここで、nはmよりも大きい。逆量子化(inverse quantization)(すなわち、逆量子化(dequantization))は、係数の一部または全部のビット深度を増加させ得る。
[0080]量子化の後に、ビデオエンコーダ20は、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20またはビデオデコーダ30は適応走査を実施し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20またはビデオデコーダ30は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディングまたは別のエントロピーコーディング方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデコーダ30によるビデオデータの復号での使用のために、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0081]CABACを実施するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。可変長コーディング(VLC)におけるコードワードは、比較的短いコードが優勢シンボルに対応する一方で、より長いコードが劣勢シンボルに対応するように構成され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに対して等長のコードワードを使用するよりもビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0082]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中で、ビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOPの中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用された符号化/予測モードを示し得る。
[0083]本開示の技法のうちの1つまたは複数は、第1の色空間から第2の色空間にビデオデータを変換するための技法を対象とする。したがって、ビデオエンコーダ20は、コーディングユニットに関連する複数の色変換に関連するコストを決定することと、最も低い関連するコストを有する複数の色変換のうちの色変換を選択することと、複数の色変換のうちの選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1のブロックを変換することと、第2の色空間を有する第2のビデオブロックを符号化することとを行うように構成されたビデオコーダの一例を表す。
[0084]ビデオデコーダ30は、ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、シンタックスデータが複数の逆色変換のうちの1つを示す、受信されたシンタックスデータに基づいて複数の逆色変換のうちの逆色変換を選択することと、複数の逆色変換のうちの選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換することと、第2のRGB色空間を有する第2のビデオブロックを復号することとを行うように構成されたビデオコーダの一例を表す。
[0085]図2は、本開示の1つまたは複数の態様による、色変換を使用して第1のRGB色空間を有するビデオデータのブロックを第2の色空間を有するビデオデータに変換するための技法を実装し得る例示的なビデオエンコーダ20Aを示すブロック図である。図2の例において、ビデオエンコーダ20Aは、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施し得る。いくつかの例では、ビデオエンコーダ20Aは図1のビデオエンコーダ20の一例であり得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレーム内またはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを参照し得る。
[0086]図2の例では、ビデオエンコーダ20Aは、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーエンコーディングユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20Aはまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。ブロック境界をフィルタして、再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ(図2に示さず)も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、(ループ内またはループ後の)追加のフィルタも使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0087]符号化プロセス中に、ビデオエンコーダ20Aは、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。このようにして、ビデオエンコーダ20Aは、符号化されるべきビデオフレーム内の現在ビデオブロックを受信し得る。様々な例では、ビデオフレームまたはスライスはRGB色空間を有し得る。いくつかの例では、ビデオエンコーダ20Aは、以下でより詳細に説明するように、色空間変換を使用して、「元の信号」と呼ばれるRGBビデオデータを第2の色空間のブロックに変換するように構成され得る。この例では、ビデオエンコーダ20Aは、動きインター予測またはイントラ予測より前に変換を実施する。
[0088]動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実施する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実施し得る。イントラ予測ユニット46および/または動き補償ユニット44は、変換を使用してRGBビデオデータの予測および/または残差ブロックを(すなわちイントラ予測またはインター予測が実施された後に)第2の色空間に変換するように構成され得る。予測ブロックと残差ブロックは両方とも「残差信号」と呼ばれることがある。ビデオエンコーダ20Aは、たとえば、ビデオデータの各ブロックについて適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
[0089]加算器50は、コーディングされている現在ビデオブロックのピクセル値からの予測ブロックのピクセル値の間の差分を決定することによって残差ビデオブロックを形成し得る。いくつかの例では、加算器50は、残差ブロックを決定すること、決定しないこと、または符号化することを行い得る。
[0090]パーティションユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、最初にフレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUのサブCUへの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
[0091]モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモード、イントラまたはインターのうちの1つを選択し得、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え得る。加算器50は残差ブロックデータを生成し得る。たとえば、加算器50は、残差ブロックデータの各サンプルが、現在CUのコーディングブロック中のサンプルと、現在CUのPUの予測ブロックの対応するサンプルとの間の差分に等しくなるように、現在CUの残差ブロックデータを生成し得る。加算器62は、参照フレームとして使用するために符号化ブロック(すなわち、コーディングブロック)を再構成し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
[0092]本開示の技法のうちの1つまたは複数による様々な例では、モード選択ユニット40は、選択された色変換がラグランジュコスト関数などのレートひずみコスト関数を最適化するように、2つ以上の色変換の中から第2の色空間への1つの変換を選択するように構成され得る。モード選択ユニット、またはエントロピーコーディングユニット56などのビデオエンコーダ20Aの別のユニットは、コード化ビデオビットストリーム中でインデックス値などのシンタックス要素を符号化し得る。符号化されたインデックス値は、ラグランジュコスト関数を最適化する選択された色変換を示し得る。
[0093]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム内でコーディングされている現在ブロック(または、他のコーディングユニット)に対する、参照フレーム内の予測ブロック(または、他のコード化ユニット)に対する、現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。言い換えれば、動きベクトルは、PUの予測ブロックと、参照ピクチャ中の対応する予測ブロックとの間の変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロック(すなわち、予測ブロック)にぴったり一致することがわかるブロックである。
[0094]いくつかの例では、ビデオエンコーダ20Aは、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。言い換えれば、ビデオエンコーダ20Aは、PUの予測ブロック中のサンプルを生成するために、1つまたは複数の参照ピクチャのサンプルに1つまたは複数の補間フィルタを使用適用し得る。いくつかの例では、ビデオエンコーダ20Aは、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全ピクセル位置と分数ピクセル位置とに関して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
[0095]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算し得る。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42が動きベクトルを計算した場合、動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送り得る。
[0096]動き補償ユニット44は動き補償を実施することができる。動き補償は、動き推定ユニット42によってPUについて決定された1つまたは複数の動きベクトルに基づいて、PUのための1つまたは複数の予測ブロックを生成またはフェッチすることを伴い得る。この場合も、動き推定ユニット42と動き補償ユニット44は、いくつかの例では機能的に統合され得る。現在ビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、その動きベクトルに基づいて参照ピクチャリストのうちの1つのピクチャから予測ブロックの位置を特定し得る。概して、動き推定ユニット42はルーマ成分に対して動き推定を実施し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0097]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するのに適切なイントラ予測モードを、テストされたモードから選択し得る。
[0098]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードについて、レートひずみ分析を使用してレートひずみ値を計算し、テストされたイントラ予測モード間で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
[0099]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックについて選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20Aは、複数のイントラ予測モードインデックステーブルと複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)とを含み得る送信されるビットストリーム構成データ中に、様々なブロックの符号化コンテキストの定義と、コンテキストの各々に使用すべき最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る。
[0100]ビデオエンコーダ20Aは、モード選択ユニット40からの予測データ(たとえば、予測ブロック)と、コーディングされている元のビデオブロック(たとえば、コーディングブロック)からのデータとの間の差分を決定することによって、残差ビデオブロックを形成し得る。加算器50は、この差分演算を実施する1つまたは複数の構成要素を表す。変換処理ユニット52は、残差ブロックに変換を適用して、残差変換係数値を備えるビデオブロック(すなわち、変換係数ブロック)を生成し得る。たとえば、変換処理ユニット52は、残差係数値を生成するために離散コサイン変換(DCT)または概念的に同様の変換を適用し得る。変換処理ユニット52は、DCTと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
[0101]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。言い換えれば、エントロピー符号化ユニット56は、量子化変換係数を表すシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型バイナリ算術コーディング(CABAC)、コンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実施し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
[0102]逆量子化ユニット58および逆変換ユニット60は、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。たとえば、逆量子化ユニット58は変換係数ブロックを逆量子化し得る。逆変換ユニット60は、逆量子化された変換係数ブロックに逆変換を適用することによってTUの変換ブロックを再構成し得る。加算器62は、再構築された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ64に記憶するための再構築されたビデオブロックを生成する。動き推定ユニット42および動き補償ユニット44は、後続のビデオフレーム中のブロックをインターコーディング(すなわち、インター予測)するために、再構築されたビデオブロックを参照ブロックとして使用し得る。動き補償ユニット44はまた、動き推定での使用のためにサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構築された残差ブロックに適用し得る。
[0103]動き推定ユニット42は、インター予測されるPUについて1つまたは複数のピクセル値を予測するためにビデオエンコーダ20Aが使用し得る1つまたは複数の参照ピクチャを決定し得る。動き推定ユニット42は、各参照ピクチャをLTRPまたは短期参照ピクチャとしてシグナリングし得る。動き推定ユニット42は、ピクチャが参照のために使用されないとマークされるまで、参照ピクチャを復号ピクチャバッファ(DPB)(たとえば、参照ピクチャメモリ64)に記憶し得る。ビデオエンコーダ20Aのモード選択ユニット40は、1つまたは複数の参照ピクチャについての識別情報を含む様々なシンタックス要素を符号化し得る。
[0104]図2に示された様々なユニットに加えて、ビデオエンコーダ20Aは、色変換または逆色変換を実施し得る、1つまたは複数の色空間変換器ユニットおよび/または適応色空間変換器ユニットをさらに含み得る。適応色空間変換器ユニットは、図2に示された様々なユニットの中間に、たとえばモード選択ユニット40の前に、および/または量子化ユニット54の後に配置され得る。ビデオエンコーダ20A中の適応色空間変換器ユニットのロケーションについては、図4の例に関して以下でより詳細に説明する。
[0105]このように、図2のビデオエンコーダ20Aは、コーディングユニットに関連する複数の色変換に関連するコストを決定するように構成されたビデオエンコーダの一例を表している。ビデオエンコーダ20Aは、最も低い関連するコストを有する複数の色変換のうちの色変換を選択することと、複数の色変換のうちの選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1のブロックを変換することと、第2の色空間を有する第2のビデオブロックを符号化することとを行うようにさらに構成され得る。
[0106]図3は、本開示の1つまたは複数の態様による、色変換を使用して第1の色空間を有するビデオデータを第2のRGB色空間を有するビデオデータに変換するための技法を実装し得るビデオデコーダの一例を示すブロック図である。図3の例では、ビデオデコーダ30Aは、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30Aは図1のビデオデコーダ30の一例であり得る。いくつかの例では、ビデオデコーダ30Aは、ビデオエンコーダ20A(図2)に関して説明した符号化パスとは概して逆の復号パスを実施し得る。
[0107]復号プロセス中に、ビデオデコーダ30Aは、ビデオエンコーダ20Aから符号化ビデオスライスのビデオブロックならびに関連するシンタックス要素および/またはシンタックスデータを表す符号化ビデオビットストリームを受信するビデオデコーダ30Aのエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送し得る。
[0108]エントロピー復号ユニット70は、複数の逆色変換のうちの1つを示すCUについてのシンタックスデータを受信し得る。ビデオデコーダ30Aは、そのシンタックスデータに基づいてブロックまたはコード化ユニットのための逆変換を選択し得る。いくつかの例では、シンタックスデータはインデックス値シンタックス要素を備え得る。インデックス値は、選択された色変換が、上記で説明したラグランジュコスト関数を最小限に抑える1つまたは複数の色変換のうちの色変換であることを示し得る。いくつかの例では、インデックス値は、最も低い関連するひずみコストを有する複数の逆色変換のうちの選択された逆色変換を示し得る。
[0109]いくつかの例では、インデックスシンタックス要素は、RGB色空間の色成分と、複数の色変換の各々に関連する複数の色成分の各々との間に最も高い関連する相関を有する色空間に関連付けられた複数の逆色変換のうちの選択された逆色変換を示し得る。いくつかの例では、シンタックスデータは、(たとえば、当該ブロックに適用される逆変換を示す)現在CUまたは現在ブロックに対して1つまたは複数の隣接する再構成されたブロックのシンタックスデータであり得る。ビデオデコーダ30Aは、いくつかの例では、第1のブロックと第2のブロックとのうちの少なくとも1つに対して再構成された隣接するブロックのシンタックス要素に基づいて最も高い相関を決定し得る。ビデオデコーダ30Aは、ビデオスライスレベルおよび/またはビデオブロックレベルにおいて、ならびに他のレベルにおいてシンタックス要素を受信し得る。
[0110]ビデオデコーダ30Aは、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、(たとえば、デフォルトの構成技法を使用して)参照ピクチャリスト、リスト0およびリスト1を構成し得る。ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、現在ビデオスライスのビデオブロックについての予測データを生成し得る。イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて予測データを生成し得る。ビデオデコーダ30Aがビデオフレームのスライスをインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングするとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成し得る。動き補償ユニット72は、参照ピクチャリストのうちの1つ内の参照ピクチャのうち1つから予測ブロックを生じ得る。
[0111]動き補償ユニット72は、現在ビデオスライスのビデオブロックについての予測情報を予測決定するために動きベクトルおよび/またはシンタックス要素を使用し得る。いくつかの例では、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測情報を生成し得る。動き補償ユニット72は、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成し得る。たとえば、動き補償ユニット72は、現在ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、現在ビデオスライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0112]PUの動きベクトルがサブピクセル精度を有するとき、動き補償ユニット72は、PUの予測ブロックを生成するために参照ピクチャのサンプルに1つまたは複数の補間フィルタを適用し得る。言い換えれば、動き補償ユニット72は、補間フィルタに基づいて補間を実施することもでき得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20が使用したのと同じ補間フィルタを使用して参照ブロックのサブ整数ピクセルのための補間値を計算し得る。このようにして、いくつかの例では、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し得、その補間フィルタを使用して予測ブロックを生成し得る。
[0113]逆量子化ユニット76は、ビットストリーム内で供給され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、量子化パラメータQPYの使用を含み得る。ビデオデコーダ30Aは、ビデオスライス中の各ビデオブロックについて量子化パラメータQPYを計算し得る。
[0114]逆変換ユニット78は、逆量子化された変換係数ブロックを受信し得る。現在ブロックについて変換がスキップされる場合、逆変換ユニット78は、逆量子化された残差ブロックを受信し得る。逆変換ユニット78は、逆変換を使用して、受信されたブロックを変換し得る。いくつかの例では、ピクセル領域中に残差ブロック(たとえば、変換ブロック)を生成するための、変換係数への逆変換(たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセス)。逆変換ユニット78は、「再構成された残差信号」と呼ばれる信号を出力し得る。いくつかの例では、(図5の例においてより詳細に示されている)逆変換ユニット78または逆適応色変換器が、本開示の技法に従って逆色変換を使用して第1の色空間からの変換係数および/または残差ブロックを第2の空間のブロックに逆変換し得る。
[0115]ビデオデコーダ30Aはまた、シンタックス要素または他の情報に基づいて現在ブロックがイントラ予測されていることを決定し得る。現在ビデオブロックがイントラ予測されている場合、イントラ予測ユニット74は現在ブロックを復号し得る。イントラ予測ユニット74は、現在ブロックと同じピクチャから隣接する予測ブロックを決定し得る。イントラ予測ユニット74は、予測ブロックに基づいて変換係数ブロックおよび/または残差ブロックを生成し得る。
[0116]動き補償ユニット72またはイントラ予測ユニット74が、動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための変換係数ブロックおよび/または残差ブロックを生成した後に、ビデオデコーダ30Aは、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと合成することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号ブロックをフィルタ処理するデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、(コーディングループ内またはコーディングループ後のいずれかの)他のループフィルタも使用され得る。参照ピクチャメモリ82は、復号ビデオブロックを所与のフレームまたはピクチャに記憶し、ビデオデコーダ30は、それを後続の動き補償のために使用し得る。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上に後で提示するために復号ビデオを記憶し得る。
[0117]ビデオデコーダ30が、再構成されたビデオを生成すると、ビデオデコーダ30は、いくつかの例では、再構成されたビデオブロックを(たとえば、表示または記憶のために)復号ビデオとして出力し得る。他の例では、ビデオデコーダ30は、逆色変換を使用して、第1の色空間からの「再構成された信号」と呼ばれる再構成されたビデオデータのブロックを第2のRGB色空間に変換するようにさらに構成され得る。
[0118]上記で説明したように、インター予測中に、動き補償ユニット72は、復号されている現在ブロックのための予測ビデオブロックを形成するためにビデオデコーダ30Aが使用し得る1つまたは複数の参照ピクチャを決定し得る。動き補償ユニット72は、参照ピクチャが長期参照のためにマークされたかまたは短期参照のためにマークされたかを示すコード化ビデオビットストリームのシンタックス要素に基づいて、参照ピクチャが長期参照ピクチャであるのか、または短期参照ピクチャであるのかを決定し得る。動き補償ユニット72は、参照ピクチャが参照のために使用されないとマークされるまで、参照ピクチャを復号ピクチャバッファ(DPB)(たとえば、参照ピクチャメモリ82)に記憶し得る。
[0119]ビデオデコーダ30Aの動き補償ユニット72は、現在復号されているブロックのための予測ブロックを形成するために使用される1つまたは複数の参照ピクチャについての識別情報を含む様々なシンタックス要素を復号し得る。インター予測PUの復号中に、動き補償ユニット72は、アクティブシーケンスパラメータセット中でシグナリングされる現在ピクチャについての1つまたは複数のLTRPの識別情報を復号し得る。動き補償ユニット72はまた、現在ピクチャのスライスヘッダ中または現在ピクチャのためのピクチャパラメータセット中の現在ピクチャを予測するために使用される1つまたは複数の短期参照ピクチャについての識別情報を復号し得る。
[0120]図3に示された様々なユニットに加えて、ビデオデコーダ30Aは、色変換または逆色変換を実施し得る、1つまたは複数の色変換器ユニットおよび/または適応色変換器ユニットをさらに含み得る。適応色変換ユニットは、図3に示された様々なユニットの中間に、たとえばエントロピー復号ユニット70の前に、および/または逆変換ユニット78の後に配置され得る。ビデオデコーダ30A中の適応色変換器ユニットのロケーションについては、図5の例に関して以下でより詳細に説明する。
[0121]このように、図3のビデオデコーダ30Aは、1つまたは複数の逆色変換のうちの逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを赤、緑、青(RGB)色空間を有するビデオデータの第2のブロックに変換することと、RGB色空間を有する第2のビデオブロックを復号することとを行うように構成されたビデオデコーダの一例を表している。
[0122]別の例では、ビデオデコーダ30Aは、1つまたは複数の逆色変換のうちの逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の色空間を有するビデオデータの第2のブロックに適応的に変換することと、ここにおいて、第2の色空間がRGB色空間である、RGB色空間を有する第2のビデオブロックを復号することとを行うように構成されたビデオデコーダの一例を表し得る。
[0123]図4は、本開示の1つまたは複数の態様による、色変換を使用してRGB色空間を有するビデオデータを第2の色空間を有するビデオデータのブロックに変換するための技法を利用し得る別の例示的なビデオエンコーダ20Bを示すブロック図である。
[0124]図4は、ビデオエンコーダ20Aのより詳細なバージョンを示す。ビデオエンコーダ20Bは、ビデオエンコーダ20A(図2)またはビデオエンコーダ20(図1)の一例であり得る。図4の例は、本開示の技法を実装するための2つの可能な例を示している。第1の実装形態では、ビデオエンコーダ20Bは、1つまたは複数の色変換のうちの色変換を使用して第1の色空間を有する入力ビデオ信号の第1のブロックを第2の色空間を有する第2のブロックに適応的に変換する。第2の図示された例は、同じ技法を実施するが、入力信号上ではなく、残差ビデオデータのブロック上で色変換を実施する。
[0125]図4の例では、ビデオエンコーダ20Bは、スイッチ101、105、113、121が現在切り替えられる方法のために、ビデオデータ(すなわち、元の信号)の予測および残差ブロック上で色変換を実施するものとして示されている。スイッチ101、105、113、および121が代替位置切り替えられた場合、ビデオエンコーダ20Bは、予測および/または残差ビデオデータのブロックを変換するのではなく、動き推定と、動き予測とを実施する前に、RGB色空間を有する元の信号のビデオデータのブロック上で第2の色空間を有するビデオデータのブロックへの色変換を実施するように構成される。
[0126]次に、図4に示されているように残差ビデオデータのブロック上で色変換を実施するプロセスについてより詳細に説明する。図4の例において、元の信号100は、(スイッチ101の経路に従って)予測処理ユニット104に受け渡される。予測処理ユニット104は、参照ピクチャメモリ122から1つまたは複数の参照ピクチャからのデータを受信し得る。予測処理ユニット104は、ビデオデータの予測ブロックを生成し、元の信号100からのビデオデータの予測ブロックを合成して、残差信号124を生成する。この例では、適応色変換器106は、RGB色空間からのビデオデータの予測ブロックと残差ブロックとを、第2の色空間を有するビデオの第2の予測ブロックと第2の残差ブロックとに変換する。いくつかの例では、ビデオエンコーダ20Bは、コスト関数に基づいて第2の色空間および色変換を選択し得る。
[0127]変換/量子化ユニット108は、第2の色空間を有する第2のビデオブロック上で変換(たとえば、離散コサイン変換)を実施し得る。さらに、変換/量子化ユニット108は、第2のビデオブロック(すなわち、変換された残差ビデオブロック)を量子化し得る。エントロピー符号器110は、量子化された残差ビデオブロックをエントロピー符号化し得る。エントロピーエンコーダは、ビデオデコーダ、たとえばビデオデコーダ30による復号のために、量子化された残差ビデオブロックを含むビットストリームを出力し得る。
[0128]また、逆量子化/逆変換ユニット112は、量子化され変換された係数および/または残差ビデオブロックを受信し得、変換された係数および残差ビデオブロックを逆変換し逆量子化し得る。逆量子化され逆変換されたビデオブロックは、この時点において第2の色空間をまだ有し得る。逆量子化/逆変換の結果は、再構成された残差信号126である。逆適応色変換器114は、適応色変換器106によって実施される変換に関連する逆色変換に基づいて、再構成された残差信号を逆色変換し得る。得られた逆適応色変換された係数および/または残差ビデオブロックは、この時点においてRGB色空間を有し得る。
[0129]残差ビデオブロックへの逆色変換の適用の後に、予測補償器116は、残差ビデオブロックに予測ブロックにおいて再加算し得る。デブロックフィルタ118は、得られたブロックをデブロックし得る。SAOフィルタ120はSAOフィルタ処理を実施し得る。参照ピクチャメモリ122は、次いで、得られた再構成された信号128を将来の使用のために記憶し得る。
[0130]残差ビデオデータのブロックではなく、入力信号(すなわち、符号化されていないビデオデータ)のビデオブロックを色変換するために、スイッチ101は代替位置に反転され、適応変換器102は、1つまたは複数の色変換のうちの色変換を使用して、RGB色空間を有するビデオブロックからの入力ビデオブロックを第2の色空間に色変換する。予測処理ユニット104を用いた予測は、上記で説明したように進むが、その結果は、スイッチ105が(図4に示された位置と比較して)代替位置にあるので、適応色変換器106によって色変換されるのではなく、変換/量子化ユニット108に直接供給され得る。
[0131]変換/量子化ユニット108、エントロピーコーダ110、および逆量子化/逆変換ユニット112は、残差ビデオブロックを色変換することに関して上記で説明したようにそれぞれ動作し得、再構成された信号126が生成され、また第2の色空間にある。再構成された信号126は、スイッチ113を介して予測補償器116に供給される。スイッチ113は、図4に示された位置に対して代替位置にあり、逆適応色変換器114はバイパスされる。予測補償器116、デブロックフィルタ118、およびSAOフィルタ120は、再構成された信号128を生成するために残差ビデオブロックを色変換することに関して上記で説明したように動作し得る。しかしながら、上記で説明した、再構成された信号128とは異なり、この例では、再構成された信号128のブロックは、RGB色空間ではなく、第2の色空間をまだ有し得る。
[0132]再構成された信号128は、図4に示された位置に対して代替位置にあるスイッチ121を介して逆適応色変換器130に供給され得る。逆適応色変換器130は、再構成された信号128のブロックをRGB色空間を有するブロックに逆色変換し得、参照ピクチャメモリ122は、それらのブロックを将来の参照のために参照ピクチャのブロックとして記憶し得る。
[0133]上記で説明したように、ビデオエンコーダ20Bは、RGB色空間を有するビデオデータの第1のブロックを、第2の色空間に変換するために、1つまたは複数の色空間の変換を選択し得る。いくつかの例では、ビデオエンコーダ20Bは、色変換の各々に関連するレートひずみコストを計算することによって適応的に色変換を選択する。たとえば、ビデオエンコーダ20Bは、CUのCUまたはブロックについて最も低い関連するひずみコストを有する複数の色変換のうちの色変換を選択し得る。ビデオエンコーダ20Bは、最も低い関連するひずみコストを有する選択された色変換を示すインデックスシンタックス要素または他のシンタックスデータをシグナリングし得る。
[0134]いくつかの例では、ビデオエンコーダ20Bは、色変換によるビットレート(たとえば達成される圧縮)、ならびに色変換に関連するひずみの間のトレードオフを考慮するラグランジュコスト関数を利用し得る。いくつかの例では、ラグランジュコストはL=D+λRに対応し、ここで、Lはラグランジュコストであり、Dはひずみであり、λはラグランジュ乗数であり、Rはビットレートである。いくつかの例では、ビデオエンコーダ20Bは、ラグランジュコストを最小限に抑える複数の色変換のうちの色変換を示すインデックスシンタックス要素をシグナリングし得る。
[0135]いくつかの高性能または高忠実度ビデオコーディング適用例または構成では、ひずみは、最小限ビットレートを上回って最小限に抑えられなければならない。そのような場合、RGB色空間からのビデオデータを第2の色空間に変換するとき、ビデオエンコーダ20Bは、最小のひずみを生じる色変換と色空間とを選択し得る。ビデオエンコーダ20Bは、最小のひずみを生じる選択された色変換または色空間を示すインデックスシンタックス要素をシグナリングし得る。
[0136]いくつかの他の場合では、ビデオエンコーダ20Bは、RGBビデオデータのブロックの色成分の各々と、第2の色空間のブロックの色成分との間の相関に基づいて、RGB色空間のブロックを第2の色空間に変換するコストを計算し得る。最も低い関連するコストを有する色変換は、入力信号のRGB色成分と最も密接に相関する色成分を有する色変換であり得る。ビデオエンコーダ20Bは、当該の色成分とRGB色成分との間に最も高い相関を有する選択された色変換を示すインデックスシンタックス要素をシグナリングし得る。
[0137]場合によっては、ビデオエンコーダ20Bは、異なるCU、LCU、CTUなどのために異なる色変換を選択し得ることを認識されたい。すなわち、単一のピクチャについて、ビデオエンコーダ20Bは、異なる色空間に関連する異なる色変換を選択し得る。複数の異なる色変換を選択することにより、より良好にコーディング効率が最適化され、レートひずみが低減され得る。ビデオエンコーダ20Bが複数の変換のうちのどの変換を現在ブロックのために選択しているかを示すために、ビデオエンコーダ20Bは、選択された色変換に対応するインデックス値をシグナリングし得る。ビデオエンコーダ20Bは、ビデオの第1のブロックと、CTUと、CUと、PUと、TUとのうちの1つまたは複数においてインデックス値をシグナリングし得る。
[0138]しかしながら、場合によっては、ビデオエンコーダ20Bは、1つまたは複数のブロック、あるいはCVSと呼ばれるコード化ピクチャのシーケンスに適用されるべきである単一の色変換を決定し得る。各ブロックについて、ただ1つの色変換が選択される場合、ビデオエンコーダ20Bはフラグシンタックス要素をシグナリングし得る。フラグシンタックス要素の1つの値は、ビデオエンコーダ20Bが、現在ブロックにまたはCVS中のピクチャのすべてに単一の変換を適用していることを示し得る。フラグシンタックス要素の他の値は、現在ブロックに変換が適用されていないことを示す。ビデオエンコーダ20Bは、たとえば、上記で説明したコストベースの基準を使用して、ピクチャのブロックの各々に色変換を適用すべきか否かを個々に決定し得る。
[0139]いくつかの例では、ビデオエンコーダ20Bは、複数のブロックの各々に複数の逆色変換のうちのあらかじめ定義された色変換を適用すべきかどうかを決定する。たとえば、ビデオエンコーダ20Bおよびビデオデコーダ30Bは、デフォルトのあらかじめ定義された色変換/逆色変換を利用し得る。複数のブロックの各々にあらかじめ定義された色変換を適用することを決定することに応答して、ビデオエンコーダ20Bは、あらかじめ定義された色変換がビデオデータの複数ブロックの各々に適用されていることを示すデータを復号することなしに、あらかじめ定義された色変換を使用して複数のブロックの各々を変換し得る。
[0140]逆の様式で、ビデオデコーダ30Bは、複数のブロックの各々に複数の逆色変換のうちのあらかじめ定義された逆色変換を適用すべきかどうかを決定するように構成され得る。複数のブロックの各々にあらかじめ定義された逆色変換を適用することを決定することに応答して、ビデオデコーダ30Bは、あらかじめ定義された色変換がビデオデータの複数ブロックの各々に適用されていることを示すデータを復号することなしに、あらかじめ定義された色変換を使用して複数のブロックの各々を逆変換し得る
[0141]本開示の色変換は、必ずしも限定されるとは限らないが、ビデオデータのブロックへの恒等変換、差分変換、重み付き差分変換、DCT、YCbCr変換、YCgCo変換、およびYCgCo−R変換を含み得る。ビデオエンコーダ20Bなど、本開示の技法に従って構成されたビデオコーダは、これらの変換および/またはそれらの逆、ならびに、アドビRGB、sRGB、scRGB、Rec.709、Rec.2020、アドビワイドガマットRGB、ProPhoto RGB、CMYK、パントン、YIQ、YDbDr、YPbPr、xvYCC、ITU BT.601、ITU BT.709、HSV、および本明細書で特に説明しない他の色空間、カラー空間、および/またはクロマサブサンプリングフォーマットへ/からの変換など、他の変換のうちの1つまたは複数を適用し得る。
[0142]RGB色空間を有するビデオデータのブロックに色変換を適用するために、ビデオエンコーダ20Bは、RGBピクセルの赤色成分と緑色成分と青色成分とを備える3×1行列に色変換行列を乗算し得る。乗算の結果は、第2の色空間を有するピクセルである。ビデオコーダは、第2の色空間中にピクセルの第2のブロックを生成するために、ビデオブロックの各ピクセルに色変換行列を適用し得る。次に、様々な色変換についてより詳細に説明する。
[0143]いくつかの例では、ビデオエンコーダ20Bは、恒等変換行列または逆恒等変換行列を適用し得る。恒等変換行列は、
を備え、ビデオデコーダ30Aが適用し得る逆変換行列は、
を備える。ビデオコーダが恒等変換を適用するとき、得られるピクセル値は入力ピクセル値に等しく、すなわち、恒等変換を適用することは、まったく色変換を適用しないことと等価である。ビデオエンコーダ20Bは、ビデオブロックのRGB色空間を維持することが必要とされるとき、恒等変換を選択し得る。
[0144]別の例では、ビデオエンコーダ20Bは、差分変換行列を適用し得る。差分変換行列は、
を備える。ビデオデコーダ30Aは、相反する逆差分行列を適用し得、この行列は、
を備える。
[0145]別の例では、ビデオエンコーダ20Bは、重み付き差分変換または逆重み付き差分変換を適用する構成され得る。重み付き差分変換行列は、
を備え、ビデオデコーダ30Bが適用し得る逆重み付き差分行列は、
を備える。
[0146]重み付き差分変換では、α1およびα2は、ビデオコーダが調整し得るパラメータである。いくつかの例では、ビデオエンコーダ20Aは、以下の式に従ってパラメータα1およびα2を計算し得る。
ビデオエンコーダ20Bは、様々な例ではα1とα2との値をコード化ビデオビットストリーム中でシグナリングし得る。
[0147]これらの式において、RはRGB色空間の赤色チャネルに対応し、Gは縁色チャネルに対応し、Bは青色チャネルに対応する。差分変換式において、「cov()」は共分散関数であり、「var()」は分散関数である。
[0148]R、G、およびBの値を決定するために、エンコーダまたはデコーダは、共分散関数と分散関数が、エンコーダによってまたはデコーダによって計算されるときに同じ結果または重みを有することを保証するために、参照ピクセルのセットを利用し得る。いくつかの例では、特定の参照ピクセルは、コード化ビデオビットストリーム中で(たとえば、コード化ビデオビットストリーム中のシンタックス要素として)シグナリングされ得る。他の例では、エンコーダおよびデコーダは、いくつかの参照ピクセルを使用するようにプリプログラムされ得る。
[0149]いくつかの例では、ビデオエンコーダ20Bは、差分変換を使用してブロックを変換するとき、α1とα2との値を制限または束縛し得る。ビデオコーダは、α1とα2との値を整数または2進数のセット、たとえば1/2、1/4、1/8など...に束縛し得る。他の例では、ビデオコーダは、α1およびα2を、2進数を有する分数の値、たとえば1/8、2/8、3/8、...、8/8に制限し得る。2進数または2進分数は、2のべき乗である分母を有し、分子が整数である、有理数である。α1とα2との値を制限することにより、α1とα2とをコーディングするビットストリーム効率が改善され得る。
[0150]他の例では、ビデオエンコーダ20Bは、DCT変換を使用して、第2のブロックを生成するためにRGB色空間を有するブロックを変換するように構成され得る。DCTは、様々な周波数および振幅のシヌソイドの和としてサンプルを表すためにブロックのサンプルを変換する。DCT変換または逆変換は、余弦関数の和に関してデータポイントの有限シーケンスにおよびそれからピクセルを変換し得る。DCT変換行列は以下に対応する。
逆の様式で、ビデオデコーダ30Bは、DCTを使用して変換されたブロックに逆変換を適用し、ブロックを元のサンプルに戻すように構成され得る。逆DCT変換行列は以下に対応する。
[0151]ビデオエンコーダ20Bはまた、RGB色空間を有するブロックにYCbCr変換を適用して、YCbCr色空間を有するブロックを生成し得る。上記で説明したように、YCbCr色空間は、ルーマ(Y)成分、ならびに青クロミナンス(Cb)成分および赤クロミナンス(Cr)成分を含む。YCbCr変換行列は以下に対応し得る。
ビデオデコーダ30Bは、YCbCbr色空間を有するブロックをRGB色空間を有するブロックに変換するために逆YCbCr変換を適用するように構成され得る。逆YCbCr変換行列は以下に対応し得る。
[0152]ビデオエンコーダ20Bはまた、RGB色空間を有するブロックにYCgCo変換を適用して、YCgCo色空間を有するブロックを生成し得る。YCgCo色空間は、ルーマ(Y)成分、ならびに緑クロミナンス(Cg)成分および橙クロミナンス(Co)成分を含む。YCgCo変換行列は以下に対応し得る。
ビデオデコーダ30Bは、YCgCo色空間を有するブロックをRGB色空間を有するブロックに変換するために逆YCgCo変換を適用するように構成され得る。逆YCgCo変換行列は以下に対応し得る。
[0153]ビデオエンコーダ20Bはまた、RGB色空間を有するブロックにYCgCo−R変換を適用して、YCgCo−R色空間を有するブロックを生成するように構成され得る。YCgCo−R色空間は、ルーマ(Y)成分、ならびに緑クロミナンス(Cg)成分および橙クロミナンス(Co)成分を含む。ただし、上記で説明したYCgCo変換とは異なり、YCgCg−R変換は可逆的であり、たとえば、YCgCo−R変換は、たとえば丸め誤差に起因する、どんなひずみをも生じないことがある。
[0154]YCbCr変換行列は以下に対応し得る。
ビデオデコーダ30Bは、逆YCgCo−R変換を適用するように構成され得る。YCgCo−R逆変換は、YCgCo−R色空間を有するブロックをRGB色空間を有するブロックに逆変換する。逆YCgCo−R変換行列は以下に対応し得る。
[0155]本明細書で説明する色変換のいずれかを適用するために、ビデオエンコーダ20Bは、フレキシブルなパラメータを有するリフティング方式を実装し得る。リフティング方式は、離散ウェーブレット変換を、リフティングステップまたはラダー構造と呼ばれる単純なフィルタ処理ステップの有限シーケンスに分解する技法である。ビデオエンコーダ20Bは、コード化ビデオビットストリーム中でパラメータをシグナリングし得るか、またはビデオエンコーダ20Bは、同様の方法でパラメータを導出し得、パラメータを導出であり得る。リフティング方式の一例は以下の通りである。
ここで、a、b、c、およびdは、上記で説明したパラメータである。このリフティング方式では、R、G、およびBは、それぞれ赤色、緑色、および青色チャネルまたはサンプルである。重み付き差分変換に関して上記で説明したαパラメータの場合と同様に、a、b、c、およびdの値は、たとえば符号が正または負でのみあり得るように、制限または限定され得る。場合によっては、
など、リフティング方式において追加のステップがあり得、ここで、f、g、h、i、およびjはパラメータである。リフティング方式を使用しているとき、ならびに他の例では、ビデオエンコーダ20Aおよびビデオデコーダ30Aは、これらの3つの成分の出力深度を正規化することができ、R’’’、B’’、およびG’’は所定のビット深度内に正規化され得、その所定のビット深度は、必ずしも各成分について同じであるとは限らない。
[0156]このように、図4のビデオエンコーダ20Bは、コーディングユニットに関連する複数の色変換に関連するコストを決定することと、最も低い関連するコストを有する複数の色変換のうちの色変換を選択することと、複数の色変換のうちの選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1のブロックを変換することと、第2の色空間を有する第2のビデオブロックを符号化することとを行うように構成されたビデオエンコーダを表している。
[0157]図5は、本開示の1つまたは複数の態様による、逆色変換を使用して第1の色空間を有するビデオデータを第2のRGB色空間を有するビデオデータに逆変換するための技法を利用し得る別の例示的なビデオデコーダ30Bを示すブロック図である。
[0158]図5は、ビデオデコーダ30Bのより詳細なバージョンを示す。いくつかの例では、ビデオデコーダ30Bは、ビデオデコーダ30A(図2)および/またはビデオデコーダ30(図1)の一例であり得る。図5の例は、本開示の技法を実装するための2つの可能な例を示している。第1の実装形態では、ビデオデコーダ30Bは、複数の逆色変換のうちの逆色変換を使用して、第1の色空間(たとえば、非RGB色空間)からの入力ビデオ信号のブロックを第2のRGB色空間を有する第2のブロックに適応的に逆変換する。第2の図示された例は、同じ技法を実施するが、入力信号上ではなく、残差ビデオデータのブロック上で逆色変換を実施する。
[0159]図5の例では、ビデオデコーダ30Bは、スイッチ145、および156が現在切り替えられる方法のために、残差ビデオデータ例のブロック上で逆色変換を実施するものとして示されている。スイッチ145および156が代替位置切り替えられた場合、ビデオデコーダ30Bは、残差ビデオデータのブロックを逆変換するのではなく、第1の表現を有する入力ビデオデータのブロックを第2のRGB色空間を有するビデオデータのブロックに逆色変換するように構成される。
[0160]次に、図5に示されているように残差ビデオデータのブロック上で逆色変換を実施するプロセスについて詳細に説明する。図5の例において、(入力信号とも呼ばれる)符号化された入力ビットストリーム140は、エントロピー復号ユニット142に受け渡される。エントロピー復号ユニット142は、第1の色空間を有する残差ビデオデータの量子化ブロックを生成するためにビットストリーム140をエントロピー復号し得る。たとえば、エントロピー復号ユニット142は、ビットストリーム140中に含まれる特定のシンタックス要素をエントロピー復号し得る。逆量子化/逆変換ユニット144は変換係数ブロックを逆量子化し得る。さらに、逆量子化/逆変換ユニット144は、残差ビデオデータを備える変換ブロックを決定するために、変換係数ブロックに逆変換を適用し得る。このようにして、逆量子化/逆変換ユニット144は、ビットストリーム140のエントロピー復号されたビデオデータのブロックを逆量子化し、逆変換し得る。ビデオデコーダ30Bが残差データのブロックを逆色変換するように構成されたとき、スイッチ148は、第1の色空間を有する残差ビデオデータのブロックを逆適応色変換器150に供給する。このようにして、逆適応色変換器150はTUの変換ブロックを受信し得る。
[0161]逆適応色変換器150は、第1の色空間を有するビデオデータのブロックを第2のRGB色空間を有するビデオデータの第2のブロックに適応的に逆変換し得る。たとえば、逆適応色変換器150は、TUの変換ブロックに適用すべき逆変換を選択し得る。この例では、逆適応色変換器150は、変換ブロックを第1の色空間からRGB色空間に変換するために、選択された逆変換を変換ブロックに適用し得る。予測補償ユニット152は、メモリ154からの参照ピクチャを合成し得る。たとえば、予測補償ユニット152は、CUのTUの変換ブロックを受信し得る。この例では、予測補償ユニット152はCUのためのコーディングブロックを決定し得る。この例では、CUのコーディングブロックの各サンプルは、変換ブロック中のサンプルと、CUのPUのための予測ブロック中の対応するサンプルとの和に等しくなり得る。デブロックフィルタ156は、合成された、再構成された画像をデブロックし得る。SAOフィルタユニット158は、適用可能な場合、追加のSAOフィルタ処理を実施し得る。
[0162]SAOフィルタ158の出力は、再構成された信号160である。ビデオデコーダ30Bが、残差ビデオデータのブロックを逆色変換するように構成された場合、スイッチ162は、再構成された信号160を将来の使用のために参照ピクチャとして参照ピクチャメモリ154に供給する。ビデオデコーダ30Bはまた、再構成された信号160を画像/ビデオ164として出力し得る。
[0163]ビデオデコーダ30Bが、残差ビデオデータのブロックとは対照的に元の入力信号のブロックを逆色変換するように構成された例では、エントロピー復号ユニット142および逆量子化/逆変換ユニット144は、前に説明した様式で動作する。スイッチ148は代替位置にあり、再構成された残差信号を予測補償ユニット152に直接供給する。この時点で、予測補償ユニット152に与えられる残差ブロックは、RGB色空間にはなく、まだ第1の色空間にある。
[0164]予測補償ユニット152は、元の画像のブロックを再構成し得、残差ブロックを参照ピクチャメモリ154からのピクチャの1つまたは複数のブロックと合成し得る。デブロックフィルタ156およびSAOフィルタ158は、ビデオデータの残差ブロックを逆変換することに関して上記で説明したように動作し得る。SAOフィルタ158の出力は、再構成された信号160であり、この信号のブロックは、まだ第1の色空間にあり、RGB色空間を有することでないことがある(たとえば、恒等変換が使用された場合、ブロックは依然としてRGB色空間を有し得る)。
[0165]再構成された信号160は、図5に示された位置と比較して代替位置にあるスイッチ162を介して逆適応色変換器166に供給され得る。逆適応色変換器166は、1つまたは複数の逆色変換のうちの逆色変換を使用して、第1の色空間を有する再構成された信号のブロックを第2のRGB色空間を有するビデオデータの第2のブロックに逆色変換し得る。いくつかの例では、デコーダ30Bが使用する特定の逆変換は、ビットストリーム140中でシグナリングされ得る。逆適応色変換器166は、第2の色空間を有する第2のブロックを画像/ビデオ164としての出力のために供給し、ならびに将来の記憶および使用のために参照ピクチャとして参照ピクチャメモリ154に供給し得る。
[0166]このように、ビデオデコーダ30Bは、複数の逆色変換に関連するコストを決定することと、最も低い関連するコストを有する複数の逆色変換のうちの逆色変換を選択することとを行うように構成されたビデオコーダデバイスの一例を表している。ビデオデコーダ30Bは、複数の逆色変換のうちの選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに適応的に逆変換することと、第2のRGB色空間を有する第2のビデオブロックを復号することとを行うようにさらに構成され得る。
[0167]図6は、本開示の1つまたは複数の態様による、色変換を使用してRGB色空間を有するビデオデータを第2の色空間を有するビデオデータに変換するためのプロセスを示すフローチャートである。単に説明の目的で、図6の方法は、図1、図2、および図4のビデオエンコーダ20、20A、および/または20Bに対応するビデオエンコーダなど、ビデオエンコーダによって実施され得る。
[0168]図6の方法において、ビデオエンコーダ20は、コーディングユニットに関連する複数の色変換に関連するコストを決定し(180)、最も低い関連するコストを有する複数の色変換からの色変換を選択し得る(182)。ビデオエンコーダ20は、複数の色変換のうちの選択された色変換を使用して第1のRGB色空間を有するビデオデータの第1のブロックを第2の色空間を有するビデオの第2のブロックに変換するようにさらに構成され得る(184)。さらに、ビデオエンコーダ20は、第2の色空間を有する第2のビデオブロックを符号化し得る(186)。いくつかの例では、ビデオの第2のブロックを符号化することは、元のブロックを符号化することを備え得る。いくつかの例では、符号化することは、残差ブロックを符号化することを備え得る。
[0169]いくつかの例では、1つまたは複数の色変換は、恒等変換と、差分変換と、重み付き差分変換と、離散コサイン変換(DCT)と、YCbCr変換と、YCgCo変換と、YCgCo−R変換とからなるグループのうちの1つまたは複数を備え得る。次に、色変換についてより詳細に説明する。
[0170]いくつかの例では、恒等変換は、
を備える。
[0171]いくつかの例では、差分変換は、
を備える。
[0172]いくつかの例では、DCT変換は、
を備える。
[0173]いくつかの例では、YCbCr変換は、
を備える。
[0174]いくつかの例では、
YCgCo変換は、
を備える。
[0175]いくつかの例では、YCgCo−R変換は、
を備える。様々な例では、ビデオエンコーダ20、20A、または20Bは、リフティング方式を使用して選択される色変換を含む、本明細書で説明した色変換のいずれかを導出し得る。リフティング方式は、
に対応し得、ここにおいて、a、b、c、およびdはパラメータである。ビデオエンコーダ20、20A、または20Bは、
に従うリフティング方式の変形形態をさらに利用し得、ここにおいて、e、f、g、h、I、およびjはパラメータである。これらのリフティング方式の例では、R、B、およびGは、赤、緑、および青サンプルに対応し得る。リフティング方式を使用して1つまたは複数の色変換を導出することの一部として、ビデオエンコーダ20は、リフティング方式の各色チャネルのビット深度を正規化し得る。
[0176]いくつかの例では、重み付き差分変換は、
を備える。差分変換のいくつかの例では、α1=cov(G,B)/var(G)、α2=cov(G,R)/var(G)、RはRGB色空間の赤色チャネルに対応し、GはRGB色空間の縁色チャネルに対応し、BはRGB色空間の青色チャネルに対応し、「cov()」は共分散関数であり、「var()」は分散関数である。いくつかの例では、共分散関数と分散関数とは、参照ピクセルのセットを使用して計算される。
[0177]様々な例では、ビデオエンコーダ20は、α1とα2との値を符号化し得る。α1とα2との値はまた、整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備える値のセットに制約され得る。
[0178]いくつかの例では、図6の方法において、ビデオエンコーダ20はさらに、1つまたは複数の色空間のうちの色変換が、第2の色空間を有する第2のビデオブロックに適用されていることを示すデータをシグナリングし得る。
[0179]いくつかの例では、図6の方法において、第1のブロックは、ビデオデータのピクチャ中の複数のブロックのうちのブロックを備え得、ビデオエンコーダ20は、複数のブロックに1つまたは複数の色変換のうちの単一の変換を適用すべきかどうかを決定するようにさらに構成され得る。複数のブロックに単一の変換を適用することを決定することに応答して、ビデオエンコーダ20は、複数のブロックの各々について、フラグシンタックス要素をシグナリングし得る。フラグの第1の値は、単一の変換が適用されていることを示し、フラグの第2の値は、単一の変換が適用されていないことを示す。
[0180]様々な例では、ビデオデータの第1のブロックは、CTUと、CUと、PUと、TUとのうちの少なくとも1つを備え得る。
[0181]他の例では、第1のブロックは、ビデオデータのピクチャ中の複数のブロックのうちの単一のブロックを備え、ビデオエンコーダ20は、ブロックの各々に単一の色変換を適用することを決定することに応答して、ビデオデータのブロックの各々に色変換のうちの1つまたは複数の単一の色変換を適用すべきかどうかを決定することと、単一の色変換がビデオデータのブロックの各々に適用されていることを示すデータをシグナリングすることなしに単一の色変換を使用してブロックの各々を変換することとを行うようにさらに構成される。
[0182]別の例では、ビデオエンコーダ20Aは、L=D+λRに対応するラグランジュコストを最小限に抑える複数の色変換の複数の色変換のうちの色変換を選択するように構成され得、ここにおいて、Lはラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値である。ビデオエンコーダ20Aは、コード化ビデオビットストリーム中で、選択された色変換を示すシンタックス要素をシグナリングするようにさらに構成され得る。シグナリングされるシンタックス要素は、選択された色変換に対応するインデックス値を備え得る。
[0183]いくつかの例では、ビデオエンコーダ20は、1つまたは複数の色変換の各々に関連するひずみコストを決定するようにさらに構成され得る。ビデオエンコーダ20は、次いで、最も低い関連するひずみコストを有する色変換を選択し、選択された色変換を使用してRGB色空間を有する第1のビデオブロックを第2のビデオブロックに変換し得る。ビデオエンコーダ20は、コード化ビデオビットストリーム中で、選択された色変換、すなわち、最も低い関連するひずみコストを有する変換を示すシンタックス要素をシグナリングするようにさらに構成され得る。シグナリングされるシンタックス要素は、選択された色変換に対応するインデックス値を備え得る。
[0184]様々な例では、ビデオエンコーダ20は、第1のビデオブロックのRGB色空間の色成分と、1つまたは複数の色変換の各々に関連する各色空間の色成分との間の相関を決定するようにさらに構成され得、ここにおいて、RGB色空間を有する第1のビデオブロックを第2の色空間を有する第2のビデオブロックに変換するために使用される色変換は、最も高い関連する相関を有する色空間に関連付けられた複数の色変換のうちの色変換である。
[0185]いくつかの例では、データの第1のブロックは、残差データのブロックを備え得るか、またはビデオデータの第1のブロックは、元の信号のビデオデータのブロックを備え得る。
[0186]図7は、本開示の1つまたは複数の態様による、逆色変換を使用して第1の色空間を有するビデオデータを第2のRGB色空間を有するビデオデータに変換するためのプロセスを示すフローチャートである。単に説明の目的で、図7の方法は、図1、図3、および図5に示されたビデオデコーダ30、30A、および/または30Bに対応するビデオエンコーダなど、ビデオデコーダによって実施され得る。
[0187]図7の方法において、ビデオデコーダ30は、ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信し、シンタックスデータが複数の逆色変換のうちの1つを示し(200)、受信されたシンタックスデータに基づいて複数の逆色変換のうちの逆色変換を選択し得る(202)。ビデオデコーダ30は、複数の逆色変換のうちの選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換し得る(204)。さらに、ビデオデコーダ30は、第2のRGB色空間を有する第2のビデオブロックを復号し得る(206)。いくつかの例では、復号されたブロックは、変換係数の元のブロックを備え得る。いくつかの例では、復号されたブロックは、変換係数の残差ブロックを備え得る。
[0188]様々な例では、1つまたは複数の逆色変換は、逆恒等変換と、逆差分変換と、逆重み付き差分変換と、逆離散コサイン変換(DCT)と、逆YCbCr変換と、逆YCgCo変換と、逆YCgCo−R変換とのうちの1つまたは複数からなるグループのうちの少なくとも1つを備え得る。次に、1つまたは複数の逆色変換について説明する。
[0189]様々な例では、恒等変換は、
を備える。
[0190]いくつかの例では、逆重み付き差分変換は、
を備える。
[0191]いくつかの例では、逆DCT変換は、
を備える。
[0192]いくつかの例では、ここにおいて、逆YCbCr変換は、
を備える。
[0193]いくつかの例では、逆YCgCo変換は、
を備える。
[0194]いくつかの例では、逆YCgCo−R変換は、
を備える。様々な例では、ビデオデコーダ30は、
に対応するリフティング方式を使用して選択された逆色変換など、逆色変換のうちの1つまたは複数を導出し得、ここにおいて、a、b、c、およびdはパラメータである。様々な例では、ビデオデコーダ30は、
に従ってリフティング方式のさらなる変形形態を使用するように構成され得、ここにおいて、e、f、g、h、i、およびjはパラメータである。ビデオデコーダ30は、いくつかの例では、リフティング方式の各色チャネルのビット深度をさらに正規化し得る。
[0195]様々な例では、逆重み付き差分変換は、
を備える。逆重み付き差分変換の様々な例では、α1=cov(G,B)/var(G)、α2=cov(G,R)/var(G)、RはRGB色空間の赤色チャネルに対応し、GはRGB空間の縁色チャネルに対応し、BはRGB色空間の青色チャネルに対応し、「cov()」は共分散関数であり、「var()」は分散関数である。様々な例では、ビデオデコーダ30は、参照ピクセルのセットを使用して共分散関数と分散関数とを計算し得る。いくつかの例では、ビデオデコーダ30は、たとえば、コード化ビデオビットストリーム中のシンタックス要素に基づいて、α1とα2との値を復号するようにさらに構成され得る。
[0196]いくつかの例では、ビデオデコーダ30は、α1とα2との値を、整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備える値のセットに制約し得る。
[0197]様々な例では、ビデオデコーダ30は、
に対応するリフティング方式を使用して、本開示で説明する色変換のいずれかを実装し得、ここにおいて、a、b、c、およびdはパラメータである。
[0198]いくつかの例では、ビデオデコーダ30は、上記で説明したリフティング方式のさらなる変形形態を使用して、本開示で説明する色変換のいずれかを実装し得る。リフティング方式のこの変形形態では、
ここにおいて、e、f、g、h、i、およびjはパラメータである。
[0199]様々な例では、図7の方法において、ビデオデコーダ30は、リフティング方式を使用して逆色変換のうちの1つまたは複数を導出することと、リフティング方式の各色チャネルのビット深度を正規化することとを行うようにさらに構成され得る。
[0200]様々な例では、ビデオデコーダは、1つまたは複数の色空間のうちの色変換が、第1の色空間を有する第1のビデオブロックに適用されていることを示すデータを復号するようにさらに構成され得る。
[0201]ビデオデコーダ30は、複数のブロックに1つまたは複数の逆色変換のうちの単一の逆変換を適用すべきかどうかを示すフラグシンタックス要素の値を復号するようにさらに構成され得る。フラグの第1の値(たとえば、「0」の値または「1」の値)は、単一の変換が適用されていることを示し得、フラグの第2の値は、単一の変換が適用されていないことを示す。さらに、第1のフラグ値は、複数のブロックを逆変換することを示し得、第2のフラグ値は、複数のブロックに逆変換を適用しないことを示し得る。ビデオデコーダ30は、フラグシンタックス要素の値に基づいて複数のブロックに単一の逆色変換を適用することを決定し得、ビデオデコーダ30は、シンタックス要素の値に基づいて複数のブロックのうちの各ブロックを逆変換し得る。
[0202]様々な例では、ビデオデータの第1のブロックは、CTUと、CUと、PUと、TUとからなるグループのうちの少なくとも1つを備え得る。
[0203]さらに別の例では、ビデオデコーダ30は、コード化ユニットについてフラグシンタックス要素を復号し得る。ビデオデコーダ30は、シンタックス要素の値に基づいて1つまたは複数の色変換のうちの単一の色変換が第1のブロックに適用されているか否かを決定するようにさらに構成され得る。これらの例では、フラグの第1の値は、単一の逆変換を適用することを示し得、フラグの第2の値は、単一の逆変換を適用しないことを示す。
[0204]いくつかの例では、ビデオデコーダ30は、L=D+λRに対応するラグランジュコストを最適化する複数の複数の逆色変換のうちの逆色変換を示すシンタックス要素を復号し得る。この例では、Lはラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値である。
[0205]様々な例では、データの第1のブロックは、再構成された信号のブロックを備え得る。代替的に、第1のブロックは、再構成された残差信号のブロックを備え得る。第1のブロックは、残差ブロックと予測ブロックとからなるグループのうちの少なくとも1つであり得る。
[0206]いくつかの例では、第1の色空間を有する第1のビデオブロックを第2のRGB色空間を有する第2のビデオブロックに逆変換するために使用される逆色変換は、最も低い関連するひずみコストを有する1つまたは複数の逆色変換のうちの逆色変換である。
[0207]いくつかの例では、第1の色空間を有する第1のビデオブロックを第2のRGB色空間を有する第2のビデオブロックに変換するために使用される色変換は、RGB色空間の色成分と、1つまたは複数の逆色変換の各々に関連する複数の色成分の各々との間に最も高い関連する相関を有する色空間に関連付けられた1つまたは複数の逆色変換のうちの逆色変換である。
[0208]様々な他の例では、データの第1のブロックは、残差データのブロックを備える。別の例では、ビデオデータの第1のブロックは、元の信号のビデオデータのブロックを備える。
[0209]例に応じて、本明細書で説明する技法のいずれかのいくつかの動作または事象は、異なるシーケンスで実施され得、追加、結合、または完全に除外され得ることが、認識されるべきである(たとえば、説明するすべての動作または事象が、本技法の実施のために必要であるとは限らない)。その上、いくつかの例では、動作または事象は、たとえば、マルチスレッド処理、割込み処理、または多数のプロセッサを介して、連続的ではなく同時に実施され得る。
[0210]図8は、第1の色空間を有するビデオデータのブロックを第2のRGB色空間を有するビデオデータのブロックに変換するためのプロセスを示すフローチャートである。ビデオデコーダ30Bは、図9に示されたプロセスを実施するように構成され得る。ビデオデコーダ30Bは、ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、シンタックスデータが複数の逆色変換のうちの1つを示す(260)、受信されたシンタックスデータに基づいて複数の逆色変換のうちの逆色変換を選択することと(262)、を行うように構成され得る。ビデオデコーダ30Aは、最も低い関連するコストを有する選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1の元のブロックを変換することと(264)、第2の色空間を有する第2のビデオブロックを復号することと(266)、を行うようにさらに構成され得る。
[0211]図9は、第1の色空間を有するビデオデータのブロックを第2のRGB色空間を有するビデオデータのブロックに変換するためのプロセスを示すフローチャートである。ビデオデコーダ30Bは、図9に示されたプロセスを実施するように構成され得る。ビデオデコーダ30Bは、ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、シンタックスデータが複数の逆色変換のうちの1つを示す(280)、受信されたシンタックスデータに基づいて複数の逆色変換のうちの逆色変換を選択することと(282)、を行うように構成され得る。ビデオデコーダ30Bは、最も低い関連するコストを有する選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1の残差ブロックを逆変換することと(284)、第2の色空間を有する第2のビデオブロックを復号することと(286)、を行うようにさらに構成され得る。
[0212]図10は、第1の色空間を有するビデオデータの元のブロックを第2のRGB色空間を有するビデオデータのブロックに変換するためのプロセスを示すフローチャートである。ビデオエンコーダ20Aは、図9に示されたプロセスを実施するように構成され得る。ビデオエンコーダ20Aは、複数の色変換に関連するコストを決定することと(300)、最も低い関連するコストを有する複数の色変換のうちの色変換を選択することと(302)、を行うように構成され得る。ビデオエンコーダ20Aは、最も低い関連するコストを有する選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1の元のブロックを変換することと(304)、第2の色空間を有する第2のビデオブロックを符号化することと(306)、を行うようにさらに構成され得る。
[0213]図11は、第1の色空間を有するビデオデータの残差ブロックを第2のRGB色空間を有するビデオデータのブロックに変換するためのプロセスを示すフローチャートである。ビデオエンコーダ20Aは、図9に示されたプロセスを実施するように構成され得る。ビデオエンコーダ20Aは、複数の色変換に関連するコストを決定することと(320)、最も低い関連するコストを有する複数の色変換のうちの色変換を選択することと(322)、を行うように構成され得る。ビデオエンコーダ20Aは、最も低い関連するコストを有する選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1の残差ブロックを変換することと(324)、第2の色空間を有する第2のビデオブロックを符号化することと(326)、を行うようにさらに構成され得る。
[0214]1つまたは複数の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、それらの機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技術の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0215]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0216]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
[0217]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットについて、開示する技術を実施するように構成されたデバイスの機能的態様を強調するために本開示で説明したが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作ハードウェアユニットの集合によって提供され得る。
[0218]様々な例について説明した。これらおよび他の例、ならびにそのような例の特定の組合せは、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオデータを符号化する方法であって、前記方法は、
コーディングユニットに関連する複数の色変換に関連するコストを決定することと、
最も低い関連するコストを有する前記複数の色変換のうちの色変換を選択することと、
前記複数の色変換のうちの前記選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1のブロックを変換することと、
前記第2の色空間を有する前記第2のビデオブロックを符号化することとを備える、方法。
[C2] 前記複数の色変換は、恒等変換と、差分変換と、重み付き差分変換と、離散コサイン変換(DCT)と、YCbCr変換と、YCgCo変換と、YCgCo−R変換とからなるグループのうちの複数の変換を備える、C1に記載の方法。
[C3] 前記恒等変換は、
を備える、C2に記載の方法。
[C4] 前記差分変換は、
を備える、C2に記載の方法。
[C5] 前記DCT変換は、
を備える、C2に記載の方法。
[C6] 前記YCbCr変換は、
を備える、C2に記載の方法。
[C7] 前記YCgCo変換は、
を備える、C2に記載の方法。
[C8] 前記選択された色変換は、
を備えるYCgCo−R変換を備える、C1に記載の方法。
[C9] 前記選択された色変換は、
に対応するリフティング方式を使用して導出され、
ここにおいて、a、b、c、およびdはパラメータである、C1に記載の方法。
[C10] 前記リフティング方式は、
をさらに備え、
ここにおいて、e、f、g、h、i、およびjはパラメータである、C9に記載の方法。
[C11] 前記リフティング方式の各色チャネルのビット深度を正規化することをさらに備える、C9に記載の方法。
[C12] 前記選択された色変換は、
を備える重み付き差分変換を備え、
ここにおいて、α 1 =cov(G,B)/var(G)、
ここにおいて、α 2 =cov(G,R)/var(G)、
ここにおいて、Rは前記RGB色空間の赤色チャネルに対応し、
ここにおいて、Gは前記RGB色空間の縁色チャネルに対応し、
ここにおいて、Bは前記RGB色空間の青色チャネルに対応し、
ここにおいて、cov()は共分散関数であり、
ここにおいて、var()は分散関数である、C1に記載の方法。
[C13] 前記共分散関数と前記分散関数とは、参照ピクセルのセットを使用して計算される、C12に記載の方法。
[C14] α 1 とα 2 との値を符号化することをさらに備える、C12に記載の方法。
[C15] α 1 とα 2 との前記値は、
整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備える値のセットに制約される、C12に記載の方法。
[C16] 前記複数の色変換のうちの前記選択された第2の色変換が、前記第2の色空間を有する前記第2のビデオブロックに適用されていることを示すデータをシグナリングすることをさらに備える、C1に記載の方法。
[C17] 前記方法は、
前記第1のブロックに前記複数の色変換のうちの単一の変換を適用すべきかどうかを決定することと、
前記複数のブロックに前記単一の変換を適用することを決定することに応答して、前記コード化ユニットについて、フラグシンタックス要素をシグナリングすることと、ここにおいて、前記フラグの第1の値は、前記単一の変換が適用されていることを示し、およびここにおいて、前記フラグの第2の値は、前記単一の変換が適用されていないことを示す、をさらに備える、C1に記載の方法。
[C18] 前記第1のブロックは、
コーディングツリーユニット(CTU)と、コーディングユニット(CU)と、予測ユニット(PU)と、変換ユニット(TU)とからなるグループのうちの少なくとも1つを備える、C1に記載の方法。
[C19] 前記第1のブロックは複数のブロックを備え、前記方法は、
前記複数のブロックの各々に前記複数の色変換のうちのあらかじめ定義された色変換を適用すべきかどうかを決定することと、
前記複数のブロックの各々に前記あらかじめ定義された色変換を適用することを決定することに応答して、前記あらかじめ定義された色変換がビデオデータの前記複数ブロックの各々に適用されていることを示すデータをシグナリングすることなしに前記あらかじめ定義された色変換を使用して前記複数のブロックの各々を変換することとをさらに備える、C1に記載の方法。
[C20] 前記複数の色変換のうちの前記選択された色変換は、L=D+λRに対応するラグランジュコストを最小限に抑える前記複数の色変換のうちの前記色変換を備え、
ここにおいて、Lは前記ラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値であり、
前記選択された色変換を示すインデックスシンタックス要素を符号化することC1に記載の方法。
[C21] 前記選択された色変換は、最も低い関連するひずみコストを有する前記複数の色変換のうちの色変換であり、前記方法は、
前記選択された色変換を示すインデックスシンタックス要素を符号化することをさらに備える、C1に記載の方法。
[C22] 前記方法は、
前記第1のビデオブロックの前記RGB色空間の色成分と、前記複数の色変換の各々に関連する各色空間の色成分との間の相関を決定することと、
前記選択された色変換を示すインデックスシンタックス要素をシグナリングすることとをさらに備え、
ここにおいて、前記選択されたものは、前記色成分の間に最も高い関連する相関を有する前記色空間に関連付けられた前記複数の色変換のうちの色変換である、C1に記載の方法。
[C23] 前記第1のブロックと前記第2のブロックとのうちの少なくとも1つに対して再構成された隣接するブロックに基づいて前記最も高い関連する相関を決定することをさらに備える、C22に記載の方法。
[C24] データの前記第1のブロックは、元の信号のブロックを備える、C1に記載の方法。
[C25] 前記第1のブロックは残差信号のブロックを備え、
前記第1のブロックは、予測ブロックと残差ブロックとからなるグループのうちの少なくとも1つを備える、C1に記載の方法。
[C26] ビデオデータを復号する方法であって、前記方法は、
ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、前記シンタックスデータが複数の逆色変換のうちの1つを示す、
前記受信されたシンタックスデータに基づいて前記複数の逆色変換のうちの逆色変換を選択することと、
前記複数の逆色変換のうちの前記選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換することと、
前記第2のRGB色空間を有する前記第2のビデオブロックを復号することとを備える、方法。
[C27] 前記複数の逆色変換は、恒等変換と、逆差分変換と、逆重み付き差分変換と、逆離散コサイン変換(DCT)と、逆YCbCr変換と、逆YCgCo変換と、逆YCgCo−R変換とからなるグループのうちの複数の逆色変換を備える、C26に記載の方法。
[C28] 前記恒等変換は、
を備える、C27に記載の方法。
[C29] 前記逆差分変換は、
を備える、C27に記載の方法。
[C30] 前記逆DCT変換は、
を備える、C27に記載の方法。
[C31] 前記逆YCbCr変換は、
を備える、C27に記載の方法。
[C32] 前記逆YCgCo変換は、
を備える、C27に記載の方法。
[C33] 前記選択された逆色変換は、
を備えるYCgCo−R変換を備える、C26に記載の方法。
[C34] 前記選択された逆色変換は、
に対応するリフティング方式を使用して導出され、
ここにおいて、a、b、c、およびdはパラメータである、C26に記載の方法。
[C35] 前記リフティング方式は、
をさらに備え、
ここにおいて、e、f、g、h、i、およびjはパラメータである、C34に記載の方法。
[C36] 前記リフティング方式の各色チャネルのビット深度を正規化することをさらに備える、C34に記載の方法。
[C37] 前記選択された逆色変換は、
を備える重み付き差分変換を備え、
ここにおいて、α 1 =cov(G,B)/var(G)、
ここにおいて、α 2 =cov(G,R)/var(G)、
ここにおいて、Rは前記RGB色空間の赤色チャネルに対応し、
ここにおいて、Gは前記RGB空間の縁色チャネルに対応し、
ここにおいて、Bは前記RGB色空間の青色チャネルに対応し、
ここにおいて、cov()は共分散関数であり、
ここにおいて、var()は分散関数である、C26に記載の方法。
[C38] 前記共分散関数と前記分散関数とは、参照ピクセルのセットを使用して計算される、C37に記載の方法。
[C39] α 1 とα 2 との値を復号することをさらに備える、C37に記載の方法。
[C40] α 1 とα 2 との前記値は、
整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備えるセット値に制約される、C37に記載の方法。
[C41] 前記第1の色空間を有する前記第1のビデオブロックに適用すべき前記複数の色逆変換のうちの前記選択された逆色変換を示すデータを復号することをさらに備える、C26に記載の方法。
[C42] 前記方法は、
前記コード化ユニットについてフラグシンタックス要素の値を復号することと、
前記フラグシンタックス要素の前記値に基づいて前記第1のブロックに前記複数の逆色変換のうちの単一の逆変換を適用すべきかどうかを決定することとをさらに備え、
ここにおいて、前記フラグの第1の値は、前記単一の逆変換を適用することを示し、および
ここにおいて、前記フラグの第2の値は、前記単一の逆変換を適用しないことを示す、C26に記載の方法。
[C43] ビデオデータの前記第1のブロックは、
コーディングツリーユニット(CTU)と、コーディングユニット(CU)と、予測ユニット(PU)と、変換ユニット(TU)とからなるグループのうちの少なくとも1つを備える、C26に記載の方法。
[C44] 前記第1のブロックは複数のブロックを備え、前記方法は、
前記複数のブロックの各々に前記複数の逆色変換のうちのあらかじめ定義された逆色変換を適用すべきかどうかを決定することと、
前記複数のブロックの各々に前記あらかじめ定義された逆色変換を適用することを決定することに応答して、前記あらかじめ定義された色変換がビデオデータの前記複数ブロックの各々に適用されていることを示すデータを復号することなしに前記あらかじめ定義された色変換を使用して前記複数のブロックの各々を逆変換することとをさらに備える、C26に記載の方法。
[C45] 前記選択された逆色変換を示すインデックスシンタックス要素を復号することをさらに備え、
ここにおいて、前記複数の色変換のうちの前記選択された逆色変換は、L=D+λRに対応するラグランジュコストを最小限に抑える前記複数の色変換のうちの前記逆色変換を備え、
ここにおいて、Lは前記ラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値である、C26に記載の方法。
[C46] 前記選択された逆色変換を示すインデックスシンタックス要素を復号することをさらに備え、
ここにおいて、前記選択された逆色変換は、最も低い関連するひずみコストを有する前記複数の色変換のうちの前記逆色変換である、C26に記載の方法。
[C47] 前記選択された逆色変換は、前記RGB色空間の色成分と、前記複数の色変換の各々に関連する複数の色成分の各々との間に最も高い関連する相関を有する色空間に関連付けられた前記複数の色変換のうちの逆色変換である、C26に記載の方法。
[C48] 前記受信されたシンタックスデータは、前記第1のブロックと前記第2のブロックとのうちの少なくとも1つに対して再構成された隣接するブロックのシンタックスデータを備え、
前記方法は、前記再構成された隣接するブロックの前記シンタックスデータに基づいて前記最も高い関連する相関を決定することをさらに備える、C46に記載の方法。
[C49] 前記最も高い関連する相関を有する前記選択された逆色変換を示すインデックスシンタックス要素を復号することをさらに備える、C46に記載の方法。
[C50] データの前記第1のブロックは、再構成された信号のブロックを備える、C26に記載の方法。
[C51] ビデオデータの前記第1のブロックは、再構成された残差信号のブロックを備え、
ここにおいて、前記第1のブロックは、予測ブロックと残差ブロックとからなるグループのうちの少なくとも1つを備える、C26に記載の方法。
[C52] ビデオデータを符号化するためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
コーディングユニットに関連する複数の色変換に関連するコストを決定することと、
最も低い関連するコストを有する前記複数の色変換のうちの色変換を選択することと、
前記複数の色変換のうちの前記選択された色変換を使用して第2の色空間を有するビデオデータの第2のブロックを生成するために第1の赤、緑、青(RGB)色空間を有するビデオデータの第1のブロックを変換することと、
前記第2の色空間を有する前記第2のビデオブロックを符号化することと
を行うように構成された少なくとも1つのプロセッサとを備える、デバイス。
[C53] 前記デバイスは、
集積回路と、
マイクロプロセッサと、
ワイヤレス通信デバイスとのうちの少なくとも1つを備える、C52に記載のデバイス。
[C54] 前記複数の色変換は、恒等変換と、差分変換と、重み付き差分変換と、離散コサイン変換(DCT)と、YCbCr変換と、YCgCo変換と、YCgCo−R変換とからなるグループのうちの複数を備える、C52に記載のデバイス。
[C55] 前記恒等変換は、
を備える、C52に記載のデバイス。
[C56] 前記差分変換は、
を備える、C52に記載のデバイス。
[C57] 前記DCT変換は、
を備える、C52に記載のデバイス。
[C58] 前記YCbCr変換は、
を備える、C52に記載のデバイス。
[C59] 前記YCgCo変換は、
を備える、C52に記載のデバイス。
[C60] 前記選択された色変換は、
を備えるYCgCo−R変換を備える、C52に記載のデバイス。
[C61] 前記選択された色変換は、
に対応するリフティング方式を使用して導出され、
ここにおいて、a、b、c、およびdはパラメータである、C52に記載のデバイス。
[C62] 前記リフティング方式は、
をさらに備え、
ここにおいて、e、f、g、h、i、およびjはパラメータである、C61に記載のデバイス。
[C63] 前記少なくとも1つのプロセッサは、
前記リフティング方式の各色チャネルのビット深度を正規化するようにさらに構成された、C61に記載のデバイス。
[C64] 前記選択された色変換は、
を備える重み付き差分変換を備え、
ここにおいて、α 1 =cov(G,B)/var(G)、
ここにおいて、α 2 =cov(G,R)/var(G)、
ここにおいて、Rは前記RGB色空間の赤色チャネルに対応し、
ここにおいて、Gは前記RGB色空間の縁色チャネルに対応し、
ここにおいて、Bは前記RGB色空間の青色チャネルに対応し、
ここにおいて、cov()は共分散関数であり、
ここにおいて、var()は分散関数である、C52に記載のデバイス。
[C65] 前記共分散関数と前記分散関数とは、参照ピクセルのセットを使用して計算される、C64に記載のデバイス。
[C66] α 1 とα 2 との値を符号化することをさらに備える、C64に記載のデバイス。
[C67] α 1 とα 2 との前記値は、
整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備える値のセットに制約される、C64に記載のデバイス。
[C68] 前記少なくとも1つのプロセッサは、
前記複数の色変換のうちの前記選択された第2の色変換が、前記第2の色空間を有する前記第2のビデオブロックに適用されていることを示すデータをシグナリングするようにさらに構成された、C52に記載のデバイス。
[C69] 前記少なくとも1つのプロセッサは、
前記第1のブロックに前記複数の色変換のうちの単一の変換を適用すべきかどうかを決定することと、
前記複数のブロックに前記単一の変換を適用することを決定することに応答して、前記コード化ユニットについて、フラグシンタックス要素をシグナリングすることと、ここにおいて、前記フラグの第1の値は、前記単一の変換が適用されていることを示し、およびここにおいて、前記フラグの第2の値は、前記単一の変換が適用されていないことを示す、を行うようにさらに構成された、C52に記載のデバイス。
[C70] 前記第1のブロックは、
コーディングツリーユニット(CTU)と、コーディングユニット(CU)と、予測ユニット(PU)と、変換ユニット(TU)とからなるグループのうちの少なくとも1つを備える、C52に記載のデバイス。
[C71] 前記第1のブロックは複数のブロックを備え、前記少なくとも1つのプロセッサは、
前記複数のブロックの各々に前記複数の色変換のうちのあらかじめ定義された色変換を適用すべきかどうかを決定することと、
前記複数のブロックの各々に前記あらかじめ定義された色変換を適用することを決定することに応答して、前記あらかじめ定義された色変換がビデオデータの前記複数ブロックの各々に適用されていることを示すデータをシグナリングすることなしに前記あらかじめ定義された色変換を使用して前記複数のブロックの各々を変換することとを行うようにさらに構成された、C52に記載のデバイス。
[C72] 前記複数の色変換のうちの前記選択された色変換は、L=D+λRに対応するラグランジュコストを最小限に抑える前記複数の色変換のうちの前記色変換を備え、
ここにおいて、Lは前記ラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値であり、
前記選択された色変換を示すインデックスシンタックス要素を符号化することC52に記載のデバイス。
[C73] 前記選択された色変換は、最も低い関連するひずみコストを有する前記複数の色変換のうちの色変換であり、前記少なくとも1つのプロセッサは、
前記選択された色変換を示すインデックスシンタックス要素を符号化するようにさらに構成された、C52に記載のデバイス。
[C74] 前記少なくとも1つのプロセッサは、
前記第1のビデオブロックの前記RGB色空間の色成分と、前記複数の色変換の各々に関連する各色空間の色成分との間の相関を決定することと、
前記選択された色変換を示すインデックスシンタックス要素をシグナリングすることとを行うようにさらに構成され、
ここにおいて、前記選択されたものは、前記色成分の間に最も高い関連する相関を有する前記色空間に関連付けられた前記複数の色変換のうちの色変換である、C52に記載のデバイス。
[C75] 前記少なくとも1つのプロセッサは、
前記第1のブロックと前記第2のブロックとのうちの少なくとも1つに対して再構成された隣接するブロックに基づいて前記最も高い関連する相関を決定するようにさらに構成された、C74に記載のデバイス。
[C76] データの前記第1のブロックは、元の信号のブロックを備える、C52に記載のデバイス。
[C77] 前記第1のブロックは残差信号のブロックを備え、
ここにおいて、前記第1のブロックは、予測ブロックと残差ブロックとからなるグループのうちの少なくとも1つを備える、C52に記載のデバイス。
[C78] ビデオデータを復号するためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、前記シンタックスデータが複数の逆色変換のうちの1つを示す、
前記受信されたシンタックスデータに基づいて前記複数の逆色変換のうちの逆色変換を選択することと、
前記複数の逆色変換のうちの前記選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換することと、
前記第2のRGB色空間を有する前記第2のビデオブロックを復号することと
を行うように構成された少なくとも1つのプロセッサとを備える、デバイス。
[C79] 前記デバイスは、
集積回路と、
マイクロプロセッサと、
ワイヤレス通信デバイスとのうちの少なくとも1つを備える、C78に記載のデバイス。
[C80] 前記複数の逆色変換は、恒等変換と、逆差分変換と、逆重み付き差分変換と、逆離散コサイン変換(DCT)と、逆YCbCr変換と、逆YCgCo変換と、逆YCgCo−R変換とからなるグループのうちの複数の逆色変換を備える、C78に記載のデバイス。
[C81] 前記恒等変換は、
を備える、C80に記載のデバイス。
[C82] 前記逆差分変換は、
を備える、C80に記載のデバイス。
[C83] 前記逆DCT変換は、
を備える、C80に記載のデバイス。
[C84] 前記逆YCbCr変換は、
を備える、C80に記載のデバイス。
[C85] 前記逆YCgCo変換は、
を備える、C80に記載のデバイス。
[C86] 前記選択された逆色変換は、
を備えるYCgCo−R変換を備える、C80に記載のデバイス。
[C87] 前記選択された逆色変換は、
に対応するリフティング方式を使用して導出され、
ここにおいて、a、b、c、およびdはパラメータである、C78に記載のデバイス。
[C88] 前記リフティング方式は、
をさらに備え、
ここにおいて、e、f、g、h、i、およびjはパラメータである、C87に記載のデバイス。
[C89] 前記少なくとも1つのプロセッサは、前記リフティング方式の各色チャネルのビット深度を正規化するようにさらに構成された、C87に記載のデバイス。
[C90] 前記選択された逆色変換は、
を備える重み付き差分変換を備え、
ここにおいて、α 1 =cov(G,B)/var(G)、
ここにおいて、α 2 =cov(G,R)/var(G)、
ここにおいて、Rは前記RGB色空間の赤色チャネルに対応し、
ここにおいて、Gは前記RGB空間の縁色チャネルに対応し、
ここにおいて、Bは前記RGB色空間の青色チャネルに対応し、
ここにおいて、cov()は共分散関数であり、
ここにおいて、var()は分散関数である、C78に記載のデバイス。
[C91] 前記共分散関数と前記分散関数とは、参照ピクセルのセットを使用して計算される、C90に記載のデバイス。
[C92] α 1 とα 2 との値を復号することをさらに備える、C90に記載のデバイス。
[C93] α 1 とα 2 との前記値は、
整数のセットと、2進数のセットと、2進数をもつ分数のセットとからなるグループのうちの少なくとも1つを備えるセット値に制約される、C90に記載のデバイス。
[C94] 前記少なくとも1つのプロセッサは、
前記第1の色空間を有する前記第1のビデオブロックに適用すべき前記複数の色逆変換のうちの前記選択された逆色変換を示すデータを復号するようにさらに構成された、C78に記載のデバイス。
[C95] 前記少なくとも1つのプロセッサは、
前記コード化ユニットについてフラグシンタックス要素の値を復号することと、
前記フラグシンタックス要素の前記値に基づいて前記第1のブロックに前記複数の逆色変換のうちの単一の逆変換を適用すべきかどうかを決定することとを行うようにさらに構成され、
ここにおいて、前記フラグの第1の値は、前記単一の逆変換を適用することを示し、および
ここにおいて、前記フラグの第2の値は、前記単一の逆変換を適用しないことを示す、C78に記載のデバイス。
[C96] ビデオデータの前記第1のブロックは、
コーディングツリーユニット(CTU)と、コーディングユニット(CU)と、予測ユニット(PU)と、変換ユニット(TU)とからなるグループのうちの少なくとも1つを備える、C78に記載のデバイス。
[C97] 前記第1のブロックは複数のブロックを備え、前記少なくとも1つのプロセッサは、
前記複数のブロックの各々に前記複数の逆色変換のうちのあらかじめ定義された逆色変換を適用すべきかどうかを決定することと、
前記複数のブロックの各々に前記あらかじめ定義された逆色変換を適用することを決定することに応答して、前記あらかじめ定義された色変換がビデオデータの前記複数ブロックの各々に適用されていることを示すデータを復号することなしに前記あらかじめ定義された色変換を使用して前記複数のブロックの各々を逆変換することとを行うようにさらに構成された、C78に記載のデバイス。
[C98] 前記少なくとも1つのプロセッサは、前記選択された逆色変換を示すインデックスシンタックス要素を復号するようにさらに構成され、
ここにおいて、前記複数の色変換のうちの前記選択された逆色変換は、L=D+λRに対応するラグランジュコストを最小限に抑える前記複数の色変換のうちの前記逆色変換を備え、
ここにおいて、Lは前記ラグランジュコストであり、Dはひずみ値であり、λはラグランジュ乗数であり、Rはビットレート値である、C78に記載のデバイス。
[C99] 前記少なくとも1つのプロセッサは、
前記選択された逆色変換を示すインデックスシンタックス要素を復号するようにさらに構成され、
ここにおいて、前記選択された逆色変換は、最も低い関連するひずみコストを有する前記複数の色変換のうちの前記逆色変換である、C78に記載のデバイス。
[C100] 前記選択された逆色変換は、前記RGB色空間の色成分と、前記複数の色変換の各々に関連する複数の色成分の各々との間に最も高い関連する相関を有する色空間に関連付けられた前記複数の色変換のうちの逆色変換である、C78に記載のデバイス。
[C101] 前記受信されたシンタックスデータは、前記第1のブロックと前記第2のブロックとのうちの少なくとも1つに対して再構成された隣接するブロックのシンタックスデータを備え、
ここにおいて、前記少なくとも1つのプロセッサは、前記再構成された隣接するブロックの前記シンタックスデータに基づいて前記最も高い関連する相関を決定するようにさらに構成された、C100に記載のデバイス。
[C102] 前記少なくとも1つのプロセッサは、前記最も高い関連する相関を有する前記選択された逆色変換を示すインデックスシンタックス要素を復号するようにさらに構成された、C100に記載のデバイス。
[C103] データの前記第1のブロックは、再構成された信号のブロックを備える、C78に記載のデバイス。
[C104] ビデオデータの前記第1のブロックは、再構成された残差信号のブロックを備え、
ここにおいて、前記第1のブロックは、予測ブロックと残差ブロックとからなるグループのうちの少なくとも1つを備える、C78に記載のデバイス。
[C105] ビデオを復号するためのデバイスであって、前記デバイスは、
ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信するための手段と、前記シンタックスデータが複数の逆色変換のうちの1つを示す、
前記受信されたシンタックスデータに基づいて前記複数の逆色変換のうちの逆色変換を選択するための手段と、
前記複数の逆色変換のうちの前記選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換するための手段と、
前記第2のRGB色空間を有する前記第2のビデオブロックを復号するための手段とを備える、デバイス。
[C106] 実行されたとき、少なくとも1つのプロセッサに、
ビットストリーム中でコード化ユニットに関連するシンタックスデータを受信することと、前記シンタックスデータが複数の逆色変換のうちの1つを示す、
前記受信されたシンタックスデータに基づいて前記複数の逆色変換のうちの逆色変換を選択することと、
前記複数の逆色変換のうちの前記選択された逆色変換を使用して第1の色空間を有するビデオデータの第1のブロックを第2の赤、緑、青(RGB)色空間を有するビデオの第2のブロックに逆変換することと、
前記第2のRGB色空間を有する前記第2のビデオブロックを復号することとを行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。