【文献】
Detlev Marpe, et.al.,MB-adaptive residual colour transform for 4:4:4 coding,JVT-R071[online],2006年 1月15日,URL,https://www.itu.int/wftp3/av-arch/jvt-site/2006_01_Bangkok/JVT-R071.zip
【文献】
Kei Kawamura,AHG7: Adaptive colour-space transformation of residual signals[online],JCTVC-K0193_r1,インターネット<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K0193-v4.zip>,2012年10月10日
(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数のプロセッサが前記色空間逆変換プロセスを適用するように構成されることは、前記1つまたは複数のプロセッサが固定色空間逆変換行列を適用するように構成されることを備える、請求項10に記載のビデオ復号デバイス。
前記1つまたは複数のプロセッサは、前記シンタックス要素が、前記コーディングユニットが色空間変換を使用してコーディングされたことを示すと決定することに応答して、
前記ビデオデータに色空間逆変換プロセスを適用することの前に、1つまたは複数の成分の値を使用して残差ブロックを生成することと、
前記ビデオデータの前記残差ブロックに前記色空間逆変換プロセスを適用することと
を行うようにさらに構成される、請求項10に記載のビデオ復号デバイス。
ビデオデータのシーケンスの第1のコーディングユニットのシンタックス要素を復号するための手段と、ここにおいて、前記シンタックス要素は、前記第1のコーディングユニットが色空間変換を使用して符号化されたかどうかを示し、前記第1のコーディングユニットが区分構造の第1のノードを備え、前記第1のコーディングユニットが、イントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、前記シンタックス要素が、前記IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる、
前記シンタックス要素の値が、前記第1のコーディングユニットが色空間変換を使用して符号化されたことを示すと決定するための手段と、
前記シンタックス要素が、前記第1のコーディングユニットが色空間変換を使用してコーディングされたことを示すと決定することに応答して、前記第1のコーディングユニットを復号することにおいて色空間逆変換プロセスを適用するための手段と、
前記ビデオデータの前記シーケンスの第2のコーディングユニットのシンタックス要素を復号するための手段と、ここにおいて、前記シンタックス要素が、前記第2のコーディングユニットが色空間変換を使用して符号化されたかどうかを示し、前記第2のコーディングユニットが区分構造の第2のノードを備え、前記第1のコーディングユニットが、前記第2のコーディングユニットとは異なる、
前記シンタックス要素の値が、前記第2のコーディングユニットが色空間変換を使用して符号化されなかったことを示すと決定するための手段と、
前記シンタックス要素が、前記第2のコーディングユニットが色空間変換を使用してコーディングされなかったことを示すと決定することに応答して、前記色空間逆変換プロセスを適用することなしに前記第2のコーディングユニットを復号するための手段と
を備え、
ここにおいて、前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素は、前記第2のコーディングユニットが色空間変換を使用して符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、または、
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素は、前記第2のコーディングユニットが色空間変換を使用して符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、ビデオ復号装置。
前記1つまたは複数のプロセッサに、前記色空間逆変換プロセスを適用させる前記実行された命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、固定色空間逆変換行列を適用させる命令を備える、請求項23に記載の非一時的なコンピュータ可読記憶媒体。
前記1つまたは複数のプロセッサが前記色空間変換プロセスを適用するように構成されることは、前記1つまたは複数のプロセッサが色空間変換行列を適用するように構成されることを備える、請求項36に記載のビデオ符号化デバイス。
【発明を実施するための形態】
【0017】
[0025] いくつかの例では、本開示は、高クロマサンプリングフォーマット(chroma sampling format)4:4:4が使用されるスクリーンコンテンツコーディングに関係する。いくつかの例では、本開示は、場合によっては高いビット深度(bit depth)、(8ビットよりも大きい)、高クロマサンプリングフォーマット4:4:4のサポートを含む、範囲拡張(RCEx)にも適用可能である。いくつかの例では、本開示は、クロマサンプリングフォーマットが4:2:2であるなど、他の色フォーマットにも適用可能である。より詳細には、本開示では、色空間変換に関係する多くの異なる技法について説明される。
【0018】
[0026] ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1ビジュアルと、ITU−T H.262またはISO/IEC MPEG−2ビジュアルと、ITU−T H.263と、ISO/IEC MPEG−4ビジュアルと、それのスケーラブルビデオコーディング(SVC:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張を含む(ISO/IEC MPEG−4 AVCとも呼ばれる)ITU−T H.264とを含む。
【0019】
[0027] 新しいビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)の設計が、ITU−Tビデオコーディングエキスパートグループ(VCEG)およびISO/IECモーションピクチャエキスパートグループ(MPEG)のジョイントコラボレーションチームオンビデオコーディング(JCT−VC)によって確定された。
【0020】
[0028] HEVCでは、スライス中の最大コーディングユニットはコーディングツリーブロック(CTB:coding tree block)と呼ばれる。CTBは、それのノードがコーディングユニットである4分木(quad-tree)を含んでいる。8×8CTBサイズがサポートされ得るが、CTBのサイズは、HEVCメインプロファイルにおいて16×16から64×64にわたることができる。コーディングユニット(CU:coding unit)は、CTBと同じサイズであり、8×8程度に小さくなり得る。各CUは1つのモードでコーディングされる。CUがインターコーディングされるとき、CUは、2つの予測ユニット(PU:prediction unit)にさらに区分され得るか、または、さらなる区分が適用しないとき、単一のPUになり得る。1つのCU中に2つのPUが存在するとき、各PUは、CUのサイズの1/4または3/4に等しいサイズをもつ、ハーフサイズの矩形または2つの矩形であり得る。
【0021】
[0029] CUがインターコーディングされるとき、PUごとに動き情報の1つのセットが存在する。さらに、各PUは、動き情報のセットを導出するために一意のインター予測モードでコーディングされる。HEVCでは、最小PUサイズは8×4および4×8である。
【0022】
[0030] HEVCは、予測残差をコーディングするために4×4、8×8、16×16、および32×32のサイズをもつ4つの変換ユニット(TU:transform unit)を指定する。CTBは、4つ以上のTUに再帰的に区分され得る。TUは、離散コサイン変換(DCT:discrete cosine transform)関数と同様である整数ベースの関数を使用する。さらに、離散サイン変換(DST:discrete sine transform)関数から導出された整数変換を使用して、イントラコーディングされた領域に属する4×4ルーマ変換ブロックが変換される。クロマ(Chroma)は、ルーマ(luma)と同じTUサイズを使用する。
【0023】
[0031] 現在のHEVC規格では、各予測ユニット(PU)のルーマ成分のために、
図4に関して以下で説明されるように、(2から34までインデックス付けされた)33個の角度予測モードと、(1でインデックス付けされた)DCモードと、(0でインデックス付けされた)平面モードとをもつイントラ予測方法が利用される。
【0024】
[0032] 上記の35個のイントラモードに加えて、「I−PCM」と称する、もう1つのモードもHEVCによって採用される。I−PCMモードでは、予測サンプルはあらかじめ定義されたビット数によってコーディングされるが、予測、変換、量子化、およびエントロピーコーディングはバイパスされる。I−PCMモードの主な目的は、信号が他のモードによって効率的にコーディングされ得ない状況を扱うことである。
【0025】
[0033] 現在のHEVC規格では、2つのインター予測モードが利用可能である。1つのそのようなモードはマージモード(merge mode)であり(スキップはマージの特殊な場合と見なされる)、第2のそのようなモードは、予測ユニット(PU)のための高度動きベクトル予測(AMVP:advanced motion vector prediction)モードである。
【0026】
[0034] AMVPモードとマージモードの両方では、動きベクトル(MV:motion vector)候補リストは、複数の動きベクトル予測子(motion vector predictor)について維持される。現在PUの、動きベクトル、ならびにマージモードにおける参照インデックスは、MV候補リストから1つの候補を取ることによって生成される。
【0027】
[0035] MV候補リストは、マージモードのために最高5つの候補を、およびAMVPモードのためにただ2つの候補を含んでいることがある。マージ候補は、動き情報のセット、たとえば、参照ピクチャリスト(リスト0およびリスト1)と参照インデックスの両方に対応する動きベクトルを含んでいることがある。マージ候補がマージインデックスによって識別される場合、参照ピクチャは現在ブロックの予測のために使用され、ならびに関連する動きベクトルが決定される。しかしながら、リスト0またはリスト1のいずれかからの各潜在的な予測方向に対するAMVPモードの下では、AMVP候補が動きベクトルのみを含んでいるので、MVPインデックスとともに参照インデックスがMV候補リストに明示的にシグナリングされる必要がある。AMVPモードでは、予測動きベクトルはさらに改善され得る。
【0028】
[0036] マージ候補は、動き情報の完全セットに対応するが、AMVP候補は、特定の予測方向についてのただ1つの動きベクトルと参照インデックスとを含んでいることがある。両方のモードに関する候補は、同じ空間的および時間的隣接ブロックから同様に導出される。
【0029】
[0037]
図5に関して以下で説明されるように、特定のPU(PU0)について、
図5に示された隣接ブロックから空間的MV候補が導出される。しかしながら、ブロックから候補を生成する方法は、マージモードとAMVPモードとについて異なる。
【0030】
[0038] マージモードでは、番号で
図5(a)に示された順序とともに、最高4つの空間的MV候補が導出され得る。順序は、
図5(a)に示されているように、左(0)、上(1)、右上(2)、左下(3)、および左上(4)である。
【0031】
[0039] AMVPモードでは、隣接ブロックは、
図5(b)に示されているように、ブロック0および1を含む左グループ、およびブロック2、3、および4を含む上グループという、2つのグループに分割される。各グループについて、シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、そのグループの最終候補を形成するために選定されるべき最高優先順位を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第1の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって、時間距離差分が補償され得る。
【0032】
[0040]
図6に関して以下で説明されるように、SCC中にイントラブロックコピー(BC)が含まれている。イントラBCの一例が
図6に示されており、ここにおいて、現在CUは、現在ピクチャ/スライスのすでに復号されたブロックから予測される。現在イントラBCブロックサイズは、8×8から64×64にわたるCUサイズ程度に大きくなり得るが、いくつかの適用例では、さらなる制約が適用され得る。
【0033】
[0041] いくつかの例では、残差信号のためのループ内色空間変換プロセスが、4:4:4クロマフォーマットにおけるシーケンスのために使用され得る。この方法は、RGB/YUVクロマフォーマットにおける予測誤差信号を準最適色空間における予測誤差信号に変換する。この追加のステップとともに、色成分の間の相関がさらに低減され得る。変換行列は、特異値分解(SVD:singular-value-decomposition)によって各コーディングユニットのピクセルサンプル値から導出される。色空間変換はイントラモードとインターモードの両方の予測誤差に適用される。
【0034】
[0042] いくつかの例では、色空間変換プロセスがインターモード(inter mode)に適用されるとき、残差は、最初に、導出された変換行列を用いて異なる領域に変換される。色空間変換の後に、DCT/DST、量子化、およびエントロピーコーディングなど、従来のコーディングステップが順に実施される。
【0035】
[0043] いくつかの例では、色空間変換プロセスがイントラモード(intra mode)に適用されるとき、予測ブロックおよび現在ブロックは、最初に、それぞれ、導出された変換行列を用いて異なる領域に変換される。色空間変換の後に、現在ブロックとそれの予測子(predictor)との間の残差(residual)が、DCT/DSTを用いてさらに変換され、量子化され、エントロピーコーディングされる。
【0036】
[0044] 順方向演算(forward operation)では、色空間変換行列が、次のように3つの平面G、B、およびRに適用される。
【0038】
[0045] いくつかの例では、値は最高
【0040】
倍に拡大されるので、得られた値はHEVC仕様の範囲内にクリッピングされる。逆方向演算では、色空間変換行列が、次のように3つの成分P’、Q’、およびR’に適用される。
【0042】
[0046]
図7に関して以下で説明されるように、変換行列は参照サンプル値から導出され得る。イントラの場合とインターの場合とのために異なる参照サンプルが利用され得る。イントラコーディングされたブロックの場合について、ターゲットブロックおよび参照サンプルが
図7に示されている。この例では、ターゲットブロックは8×8のクロスハッチサンプルからなり、参照サンプルはストライプサンプルおよびドット付きサンプルである。
【0043】
[0047] インターコーディングされたブロックの場合、行列導出のための参照サンプルは動き補償のための参照サンプルと同じである。シフト演算を実現するために、AMPブロック中の参照サンプルは、サンプルの数が2のべき乗になるようにサブサンプリングされる。たとえば、12×16ブロック中の参照サンプルの数は2/3だけ低減される。
【0044】
[0048] 本開示の技法によれば、色空間変換プロセスはCUごとに適用され得る。したがって、変換プロセスが呼び出されるか否かをシグナリングする必要はない。さらに、エンコーダ側とデコーダ側の両方は、変換行列をシグナリングするためのオーバーヘッドを回避するために同じ方法で変換行列を導出する。
【0045】
[0049] 本開示の技法によれば、色空間変換行列など、色空間変換プロセスが使用される。1つのそのような行列は、以下のようなYCbCr変換行列である。
順(Forward):
【0049】
[0050] 別のそのような行列は、以下のようなYCoCg変換行列である。
順:
【0053】
[0051] 別のそのような行列は、CoおよびCg成分を1/2にスケーリングするYCoCg行列の修正バージョンである、YCoCg−R行列である。リフティング技法(lifting technique)を使用することによって、順変換および逆変換は以下の式によって達成され得る。
順:
【0057】
[0052] 上記の式および行列において、順変換(forward transformation)は(たとえば、ビデオエンコーダによって)符号化プロセス中に実施され得、逆変換(inverse transformation)は(たとえば、ビデオデコーダによって)復号プロセスにおいて実施され得る。
【0058】
[0053] 従来のビデオコーディングでは、画像は、連続的な色調を有し、空間的に滑らかであると仮定される。これらの仮定に基づいて、様々なツール(たとえば、ブロックベースの変換、フィルタ処理など)が開発されており、これらのツールは、自然のコンテンツをもつビデオでは良好な性能を示している。しかしながら、いくつかの適用例(たとえば、リモートデスクトップ、共同作業ディスプレイ、およびワイヤレスディスプレイ)では、コンピュータ生成されたスクリーンコンテンツが、圧縮されるべき支配的コンテンツであり得る。このタイプのコンテンツは、不連続な色調を有し、鋭利なラインと高コントラストのオブジェクト境界とを特徴とする傾向がある。連続的色調および滑らかさの仮定はもはや適用され得ず、したがって、従来のビデオコーディング技法は効率的に働かないことがある。
【0059】
[0054] 上記の欠陥を克服するためにパレットモードコーディングが使用され得る。パレットコーディング技法の例は、2013年4月10日に出願された米国仮出願第61/810,649号に記載されている。各CUについて、現在CU中で最も優勢なピクセル値を含むパレットが導出され得る。パレットのサイズおよび要素が最初に送信される。送信後に、CU中のピクセルが、ある走査順序(scanning order)に従って符号化される。各ロケーションについて、フラグpalette_flagなどのシンタックス要素が、ピクセル値がパレット中にある(「ランモード(run mode)」)か、またはない(「ピクセルモード(pixel mode)」)か、を示すために最初に送信される。
【0060】
[0055] 「ランモード(run mode)」では、パレットインデックス(palette index)がシグナリングされ得、それに「ラン(run)」が続く。ランは、現在コーディングされているピクセルと同じパレットインデックス値を有する連続ピクセルの数を走査順序で示すシンタックス要素である。走査順序ですぐ隣に連続する複数のピクセルが同じパレットインデックス値を有する場合、「ランモード」は、palette_flagなどのシンタックス要素によって示され得る。現在ピクセルと同じパレットインデックス値を有する、現在ピクセルに続いているピクセルの数に等しいカウンタ値が決定され得、ランはそのカウンタ値に等しく設定される。palette_flagもパレットインデックスも、「ラン」によって包含される後続の位置について送信される必要はなく、というのは、それらがすべて同じピクセル値を有するからである。デコーダ側で、現在ピクセルの第1のパレットインデックス値のみが復号され、結果は、「ラン」シンタックス要素中に示されるピクセルの「ラン」においてピクセルごとに複製され得る。
【0061】
[0056] 「ピクセルモード」では、ピクセルサンプル値はこの位置について送信される。palette_flagなどのシンタックス要素が「ピクセルモード」を示す場合、パレットインデックス値は、復号されている1つのピクセルについてのみ決定される。
【0062】
[0057] 従来の技法は様々な問題があり得る。たとえば、シーケンス特性およびローカルダイバーシティを考慮に入れない色空間変換が呼び出されることがある。したがって、コーディング性能は準最適であり得る。別の例では、変換行列の導出はデコーダにおいて必要とされ得、それは、デコーダの複雑さを著しく増加させる。さらに、変換行列は、インターコーディングされたPUの空間再構成されたピクセルまたは予測子(predictor)のいずれかを使用して導出され得る。しかしながら、PUサイズが比較的小さいか、予測があまり正確でないか、または隣接ピクセルが利用不可能であるとき、変換行列の効率は低減され得る。本開示の技法は、これらの問題のうちの1つまたは複数を克服し得る。
【0063】
[0058] ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、本開示で説明される技法を実行し得る。ビデオコーダは、コーディングユニットのために色空間変換を使用すべきかどうかを決定し得る。ビデオコーダは、色空間変換の使用を示すようにコーディングユニットのシンタックス要素の値を設定し得る。ビデオコーダは、コーディングユニットを符号化することにおいて色空間変換行列を適用し得る。ビデオコーダは、コーディングユニットのシンタックス要素を復号し得、ここにおいて、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す。ビデオコーダは、シンタックス要素の値が、色空間変換を使用してコーディングユニットが符号化されたことを示すかどうかを決定し得る。ビデオコーダは、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、コーディングユニットを復号することにおいて色空間逆変換行列を適用し得る。デコーダ側で、コーディングモードにかかわらず、色空間順変換プロセスを実施する必要はない。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0064】
[0059] 本開示では、ループ内色空間変換のコーディング性能を改善し得、デコーダの複雑さを低減し得る技法について説明する。
図1は、高いクロマサンプリングフォーマットが使用される、スクリーンコンテンツコーディングのための技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されているように、システム10は、宛先デバイス14によって後の時点で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
【0065】
[0060] 宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0066】
[0061] いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスへ出力され得る。同様に、符号化データは、ストレージデバイスから入力インターフェースによってアクセスされ得る。ストレージデバイスは、ハードドライブ、Blue−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに好適である、両方の組合せを含み得る。ストレージバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0067】
[0062] 本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または両方向のビデオ送信をサポートするように構成され得る。
【0068】
[0063]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、色空間変換プロセスを使用してビデオブロックをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0069】
[0064]
図1の図示のシステム10は一例にすぎない。色空間変換プロセスを使用してビデオブロックをコーディングするための技法は、どんなデジタルビデオ符号化および/または復号デバイスによっても実施され得る。概して、本開示の技法はビデオ符号化デバイスによって実施されるが、本技法は、一般に「コーデック(CODEC)」と呼ばれるビデオエンコーダ/デコーダによっても実施され得る。その上、本開示の技法はビデオプリプロセッサによっても実施され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のためのコーディングされたビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス12とビデオデバイス14との間で一方向または双方向のビデオ送信をサポートし得る。
【0070】
[0065] ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、上述されたように、本開示で説明される技法は、一般にビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
【0071】
[0066] コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化ビデオデータを受信し、符号化ビデオデータを宛先デバイス14に提供し得る。同様に、ディスクスタンピング設備などの媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを製造し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【0072】
[0067] 宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダ20によって定義されビデオデコーダ30によっても使用される、シンタックス情報を含み得る。ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0073】
[0068] ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格など、ビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、MPEG−4、Part 10、アドバンストビデオコーディング(AVC)と代替的に呼ばれるITU−T H.264規格など、他のプロプライエタリ(proprietary)規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、オーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0074】
[0069] ITU−T H.264/MPEG−4(AVC)規格は、ジョイントビデオチーム(JVT)として知られる共同パートナーシップの成果として、ISO/IECムービングピクチャエキスパートグループ(MPEG)とともにITU−Tビデオコーディングエキスパートグループ(VCEG)によって策定された。いくつかの態様では、本開示で説明される技法は、H.264規格に概して準拠するデバイスに適用され得る。H.264規格は、ITU−T研究グループによる2005年3月付のITU−T勧告H.264、Advanced Video Coding for generic audiovisual servicesに記載されており、本明細書ではH.264規格もしくはH.264仕様、またはH.264/AVC規格もしくは仕様と呼ばれることがある。ジョイントビデオチーム(JVT)はH.264/MPEG−4 AVCの拡張に取り組み続けている。
【0075】
[0070] ビデオエンコーダ20およびビデオデコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0076】
[0071] JCT−VCは、HEVC規格の開発に取り組んでいる。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーダの発展型モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対して、ビデオコーダのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
【0077】
[0072] 概して、HMのワーキングモデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)のシーケンスに分割され得ることを記載している。ビットストリーム内のシンタックスデータは、LCUのサイズを定義し得、LCUは、ピクセルの個数に関して最大のコーディングユニットである。スライスは、コーディング順序で、いくつかの連続するツリーブロックを含む。ビデオフレームまたはビデオピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノード(leaf node)を含み、それらの各々はサブCUのうちの1つに対応する。
【0078】
[0073] 4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供し得る。たとえば、4分木中のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、それはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUはリーフCUとも呼ばれる。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUはリーフCUとも呼ばれることになる。
【0079】
[0074] CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードに分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームはまた、最小コーディングユニット(SCU:smallest coding unit)を定義し得る。本開示では、「ブロック(block)」という用語を、HEVCのコンテキストにおいてCU、PU、またはTUのうちのいずれかを、または他の規格のコンテキストにおいて類似のデータ構造(たとえば、H.264/AVCのマクロブロックおよびそのサブブロック)を指すために使用する。
【0080】
[0075] CUは、コーディングノードと、コーディングノードに関連付けられる予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64ピクセル以上をもつツリーブロックのサイズまでわたり得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含んでいることがある。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップモード符号化もしくは直接モード符号化されるのか、イントラ予測モード符号化されるのか、またはインター予測モード符号化されるのかの間で異なり得る。PUは、形状が非正方形に区分され得る。CUに関連付けられたシンタックスデータは、たとえば、4分木に従う1つまたは複数のTUへのCUの区分をも記述し得る。TUは、形状が正方形または非正方形(たとえば、長方形)であり得る。
【0081】
[0076] HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは通常、区分されたLCUについて定義される所与のCU内のPUのサイズに基づいてサイズ決定されるが、必ずそうであるとは限らない。TUは通常、PUと同じサイズであるか、またはそれよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quadtree)として知られる4分木構造を使用して、より小さいユニットにさらに分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
【0082】
[0077] リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUについてのデータは、残差4分木(RQT)中に含まれ得、残差4分木は、PUに対応するTUについてのイントラ予測モード(intra prediction mode)を記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、そのPUについての1つまたは複数の動きベクトルを定義するデータを含み得る。PUについての動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
【0083】
[0078] 1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)をも含み得る。変換ユニットは、上述されたように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブTUに、さらに分割され得る。TUがさらに分割されないとき、それはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは、同じイントラ予測モードを共有する。すなわち、リーフCUのすべてのTUの予測値を計算するために、同じイントラ予測モードが概して適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの部分と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに限定されるとは限らない。したがって、TUは、PUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
【0084】
[0079] その上、リーフCUのTUは、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造にも関連付けられ得る。すなわち、リーフCUは、そのリーフCUがTUにどのように区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
【0085】
[0080] ビデオシーケンスは、通常、ビデオフレームまたはピクチャのシーケンスを含む。ピクチャのグループ(GOP:group of pictures)は、概して、ビデオピクチャのうちの1つまたは複数のシーケンスを備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中に、ピクチャのうちの1つまたは複数のヘッダ中に、あるいは他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに作用する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
【0086】
[0081] 一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズでのインター予測とをサポートする。HMは、また、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を指す。
【0087】
[0082] 本開示では、「N×N」および「N by N」は、垂直寸法および水平寸法の観点からビデオブロックのピクセル寸法、たとえば、16×16ピクセルまたは16 by 16ピクセルを指すために互換的に使用されることがある。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)を有し、水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にN個のピクセル、および水平方向にN個のピクセルを有し、ここで、Nは非負整数値を表す。ブロック中のピクセルは行および列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
【0088】
[0083] CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUについての残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUについての残差データを含むTUを形成し、次いで、CUの変換係数を生成するためにTUを変換し得る。
【0089】
[0084] 変換係数を生成するためのいずれかの変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実施し得る。量子化は概して、係数を表すために使用されるデータの量をできるだけ低減するために、変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、nビット値は、量子化中にmビット値に切り捨てられ得、ここで、nはmよりも大きい。
【0090】
[0085] 量子化に続いて、ビデオエンコーダは、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)の係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)の係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化された変換係数を走査するためのあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディングまたは別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
【0091】
[0086] CABACを実施するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、一方、より長いコードが劣勢シンボルに対応するように、構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビットの節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0092】
[0087] 本開示の技法によれば、ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、コーディングユニットのために色空間変換を使用すべきかどうかを決定し得る。ビデオコーダは、色空間変換の使用を示すようにコーディングユニットのシンタックス要素の値を設定し得る。ビデオコーダは、コーディングユニットを符号化することにおいて色空間変換プロセスを適用し得る。ビデオコーダは、コーディングユニットのシンタックス要素を復号し得、ここにおいて、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す。ビデオコーダは、シンタックス要素の値が、色空間変換を使用してコーディングユニットが符号化されたことを示すかどうかを決定し得る。ビデオコーダは、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、コーディングユニットを復号することにおいて色空間逆変換プロセスを適用し得る。デコーダ側で、コーディングモードにかかわらず、色空間順変換プロセスを実施する必要はない。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0093】
[0088] ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、
図1〜
図9に関して説明される技法のいずれかを実施し得る。CUレベル適応色空間変換方式または色空間変換が提案され、ここにおいて、各CUは、色空間変換を有効化または無効化すること(enabling or disabling)のいずれかを選定し得る。さらに、色空間変換の使用を示すためのCUレベルフラグが導入される。このフラグはシグナリングされ得、CUレベルフラグのシグナリング方法は、コーディングモードおよび他の情報に依存し得る。
【0094】
[0089] 本開示の技法と整合して様々なシンタックス要素が使用され得る。これらのシンタックス要素は以下を含み得る。
【0095】
【表1-1】
【表1-2】
【表1-3】
【0096】
[0090] シンタックス要素color_transform_enabled_flagが1に等しいとき、復号プロセス中にループ内色空間変換プロセスが呼び出され得る。シンタックス要素color_transform_enabled_flagが0に等しいとき、ループ内色空間変換は適用されないことがある。シンタックス要素が存在しないとき、シンタックス要素color_transform_enabled_flagの値は0に等しいと推論され得る。
【0097】
[0091] シンタックス要素color_transform_flag[x0][y0]が1に等しいとき、現在コーディングユニットは、色空間変換を用いてコーディングされ得る。シンタックス要素color_transform_flag[x0][y0]が0に等しいとき、現在コーディングユニットは、色空間変換を用いずにコーディングされる。シンタックス要素が存在しないとき、シンタックス要素color_transform_flagの値は0に等しいと推論され得る。アレイインデックスx0およびy0は、ピクチャの左上ルーマサンプルに対する当該コーディングブロックの左上ルーマサンプルのロケーション(x0,y0)を指定し得る。
【0098】
[0092] 一例では、符号化および復号プロセスにおいて、修正されたYCoCg変換が適用され得る。修正されたYCoCg変換は次のように定義され得る。
順:
【0108】
、ここにおいて、オフセットは2に等しい。
【0109】
[0093] 代替的に、修正されたYCoCg変換は次のように定義され得る。
順:
【0119】
、ここにおいて、オフセットは1または0に等しい。
【0120】
[0094] 色変換を用いてコーディングされるCUまたはブロックによって使用される、対応する量子化パラメータ(quantization parameter)は(dQP+2)に等しいと推論され得るが、色変換を用いずにCUまたはブロックによって使用される量子化パラメータはdQPに等しいと推論され得る。同時に、ビット深度は、量子化プロセスと変換プロセスの両方において1だけさらに増加され得る。
【0121】
[0095] 代替的に、変更なしの元のYCoCg変換+正規化プロセスをもつ2ステップ順/逆変換が適用される。順変換(forward transform)では、元のYCoCg順変換が最初に適用される。次いで、各成分i、すなわち、Y、CoおよびCgについて、成分は(i*forward_factor+オフセット)>>BIT_PRECISIONにリセットされ、ここにおいて、BIT_PRECISIONは符号なし整数であり、forward_factorはBIT_PRECISIONに依存する。一例では、forward_factorは1/√6*(1<<BITS_TRANS)+0.5に等しく、BIT_PRECISIONは15に等しく、オフセットは(1<<(BIT_PRECISION−1))に等しい。
【0122】
[0096] 逆変換(inverse transform)では、元のYCoCg逆変換が最初に適用される。次いで、各成分i、すなわち、Y、CoおよびCgについて、成分は(i*backward_factor+オフセット)>>BIT_PRECISIONにリセットされ、ここにおいて、BIT_PRECISIONは、順変換において使用されるもの同じであり、backward_factorはBIT_PRECISIONに依存する。一例では、backward_factorは√6/4*(1<<BITS_TRANS)+0.5)に等しく、オフセットは(1<<(BIT_PRECISION−1))に等しい。
【0123】
[0097] 代替的に/さらに、3つの色成分におけるコーディングされたブロックフラグ(すなわち、cbf_luma、cbf_cbおよびcbf_cr)のうちの少なくとも1つが1に等しいときのみ、CUレベルフラグはシグナリングされ得る。代替的に、色空間変換を用いたCUまたはブロックにおける残差の範囲が、色空間変換を用いないCU/ブロックにおける残差の範囲と同じになることを確保するために、色空間変換後の修正された残差がさらに修正され得る。一例では、クリップ演算が適用される。
【0124】
[0098] 色空間変換行列は、再構成されるピクセルとは無関係であり得る。代わりに、それは、ロッシー(lossy)またはロスレス(lossless)コーディングモードに依存し得る。一例では、CUがロッシーモードでコーディングされるとき、YCoCgが適用され得るが、CUがロスレスモードでコーディングされるときはYCoCg−Rが適用される。その上、YCoCg−Rが適用されるとき、CoおよびCg成分のビット深度は1だけ増加され得る。別の例では、変換行列は、イントラ、インター/イントラBCモードに依存し得る。この場合、各モード用のあらかじめ定義された行列がエンコーダとデコーダの両方において指定され得、CUレベルフラグが1であるとき、コーディングモードに従ってエンコーダとデコーダの両方において同じ行列が使用され得る。さらに、3つの色成分におけるコーディングされたブロックフラグ(すなわち、cbf_luma、cbf_cbおよびcbf_cr)のうちの少なくとも1つが1に等しいときのみ、CUレベルフラグはシグナリングされ得る。
【0125】
[0099] 本開示の技法はまた、フレームレベルでなど、変換行列導出およびシグナリング方法を含み得る。一例では、フレームごとに、変換行列が、元の画像中の色成分にわたる統計値に基づいて導出され得る。変換行列は、ビットストリーム中にコーディングされ、デコーダに直接送信され得る。代替的に、連続的にコーディングされるフレーム間の変換行列予測が適用され得る。たとえば、行列が、前のフレームにおいて使用された行列と同じであるかどうかを示すために、1つのフラグが送信され得る。代替的に、変換行列は、元のフレームのセットに基づいて導出され、ビットストリーム中でシグナリングされ得る。
【0126】
[0100] 別の例では、変換行列のセットが、PPSなどの高レベルシンタックスで導出され、シグナリングされる。一例では、画像は特性に基づいて複数の領域に分類され、各領域について、変換行列が導出される。導出された行列は、高レベルシンタックスでコーディングされ、シグナリングされ得る。選択された変換行列のインデックスは、CU/TU/PUレベルでさらにシグナリングされる。代替的に、選択された変換行列のインデックスは、スライスヘッダ中でまたはタイル領域ごとにシグナリングされる。代替的に、変換行列は、スライスヘッダ中でまたはタイル領域ごとに導出され得る。
【0127】
[0101] ルーマ成分とクロマ成分とのビット深度が異なるとき、最初に、すべての色成分のビット深度が同じになるように修正され得、次いで、色変換がその後に適用され得る。代替的に、ビットストリームは、コーディングされたビットストリーム中でルーマ成分とクロマ成分とのビット深度が異なるとき、色変換が無効化(disable)される(すなわち、color_transform_enabled_flagが0に等しい)、という制約に準拠し得る。
【0128】
[0102] 色変換を用いてまたは用いずにコーディングされたCU/ブロックに異なるQPが適用され得、ならびに/あるいは、量子化および変換プロセスにおいて使用されるビット深度は、そのような非正規化色変換のために修正され得る。一例では、上記の修正されたYCoCg変換が使用されるとき、以下のステップ(すなわち、デブロッキングフィルタプロセス(deblocking filter process)より前のスケーリング、変換およびアレイ構成プロセス)は、color_transform_flagに基づいてさらに修正される。
【0129】
[0103] 一例では、[0092]において説明された修正されたYCoCg変換が使用されるとき、対応する量子化パラメータ導出プロセスおよび逆変換プロセスが、それに応じて修正される。このプロセスへの入力は、現在ピクチャの左上ルーマサンプルに対する現在ルーマコーディングブロックの左上サンプルを指定するルーマロケーション(xCb,yCb)を含み得る。このプロセスでは、変数QpY、ルーマ量子化パラメータQp’Y、ならびにクロマ量子化パラメータQp’CbおよびQp’Crが導出され得る。ルーマロケーション(xQg,yQg)は、現在ピクチャの左上ルーマサンプルに対する現在量子化グループの左上ルーマサンプルを指定し得る。水平位置xQgおよび垂直位置yQgは、それぞれ、xCb−(xCb&((1<<Log2MinCuQpDeltaSize)−1))およびyCb−(yCb&((1<<Log2MinCuQpDeltaSize)−1))に等しく設定され得る。量子化グループのルーマサイズ、Log2MinCuQpDeltaSizeは、同じqPY_PREDを共有するコーディングツリーブロック内の最小エリアのルーマサイズを決定し得る。
【0130】
[0104] 変数QpYは次のように導出され得る。
【0132】
[0105] ルーマ量子化パラメータQp’Yは次のように導出され得る。
【0134】
[0106] シンタックス要素ChromaArrayTypeが0に等しくないとき、以下が適用され得る。
変数qPiCbおよびqPiCrは次のように導出され得る。
【0137】
[0107] シンタックス要素ChromaArrayTypeが1に等しい場合、変数qPCbおよびqPCrは、以下の表において指定されているように、それぞれqPiCbおよびqPiCrに等しいインデックスqPiに基づいて、QpCの値に等しく設定され得る。そうでない場合、変数qPCbおよびqPCrは、それぞれqPiCbおよびqPiCrに等しいインデックスqPiに基づいて、Min(qPi,51)に等しく設定される。
【0139】
[0108] CbおよびCr成分のクロマ量子化パラメータQp’CbおよびQp’Crは、次のように導出され得る。
【0142】
[0109] color_transform_flagが1に等しいとき、以下が適用され得る。
【0144】
ChromaArrayType≠0のとき、Qp’Cb=(Qp’cb+8)およびQp’Cr=(Qp’cr+8)
【0147】
[0110] このプロセスへの入力は、現在ピクチャの左上ルーマサンプルに対する現在ルーマ変換ブロックの左上サンプルを指定するルーマロケーション(xTbY,yTbY)と、現在変換ブロックのサイズを指定する変数nTbSと、現在ブロックの色成分を指定する変数cIdxと、量子化パラメータを指定する変数qPとを含み得る。このプロセスの出力は、要素d[x][y]とともにスケーリングされた変換係数の(nTbS)×(nTbS)アレイdを含み得る。
【0148】
[0111] 変数log2TransformRange、bdShift、coeffMinおよびcoeffMaxは次のように導出され得る。
color_transform_flag=1のとき、以下が適用される。
【0152】
[0112] リストlevelScale[ ]は、k=0..5の場合、levelScale[k]={40,45,51,57,64,72}として指定され得る。
【0153】
[0113] x=0..nTbS−1、y=0..nTbS−1の場合、スケーリングされた変換係数d[x][y]の導出のために、以下が適用され得る。
スケーリングファクタm[x][y]は次のように導出され得る。
以下の条件のうちの1つまたは複数が真である場合、m[x][y]は16に等しく設定される。
【0158】
[0114] シンタックス要素sizeIdが、(nTbS)×(nTbS)に等しい量子化行列のサイズについて指定され、matrixIdが、sizeId、CuPredMode[xTbY][yTbY]、およびcIdxについて表7−4において指定されたとき、スケーリングされた変換係数d[x][y]は次のように導出され得る。
【0160】
[0115] color_transform_flagが1に等しいとき、以下が適用され得る。
【0163】
[0116] 一例では、色空間変換がイントラモードに適用されるとき、変換された色空間領域において残余が導出される。すなわち、イントラサンプル予測プロセスを呼び出す前に、現在CUの隣接ピクセルは、最初に、修正された順YCoCgまたはYCoCg−R変換を用いて別の準最適な色空間に変換され得る。現在CUの予測子を導出するために、修正された隣接ピクセルが次いで使用され得る。準最適な領域において、現在CUおよび現在CUの隣接ピクセルから残差(すなわち、予測誤差)が導出される。残差は、成分間残差予測、変換、量子化およびエントロピーコーディングなど、従来のコーディングフローと同様の方法でコーディングされる。エントロピーコーディングの後に、変換係数は、逆YCoCgまたはYCoCg−Rを用いてさらに修正され得る。修正された変換係数は、現在CUの再構成されたピクセルを導出するために、予測子に次いで加算され得る。再構成プロセスが呼び出された後に、逆YCoCgまたはYCoCg−R変換が、修正された隣接ピクセルに適用され得る。したがって、デコーダ側において、再構成プロセスを呼び出す前に、導出された変換係数に逆色空間変換が適用される、1つの追加のプロセスが適用され得る。
【0164】
[0117] 代替的に、色空間変換がイントラモードに適用されるとき、変換された色領域において現在ブロックから予測子を減算することによって残余を生成する代わりに、残余は、色空間変換の前のピクセルを使用して生成され得、それに続いて色空間変換が行われる。この場合、ルーマイントラモードとクロマイントラモードは、等しいモードに設定され得る。代替的に、クロマモードのシグナリングがスキップされ得る。代替的に、ルーマイントラモードとクロマイントラモードが同じであるときのみ、色変換フラグ(color transform flag)はシグナリングされ得る。
【0165】
[0118] 上記で説明されたように、いくつかの例では、ロスレス方法とロッシーコーディング方法は、同じ行列、たとえば、YCoCg−Rを共有し得る。追加または代替として、YCoCg−R変換がロッシーコーディングに適用されるとき、色変換を用いたブロックのクロマ成分のビット深度は、色変換を用いないブロックと比較して1だけ増加され得る。色変換を用いたブロックのルーマ成分QPは、色変換を用いないブロックのルーマ成分QP−4に等しくなり得る。一例では、色変換を用いたブロックの2つのクロマ成分QPは、色変換を用いないブロックのクロマ/ルーマ成分QP+2に等しくなり得る。一例では、色変換を用いたブロックのCgクロマ成分QPは、色変換を用いないブロックのルーマ/クロマ成分QP+2に等しくなり得る。色変換を用いたブロックのCoクロマ成分QPは、色変換を用いないブロックのルーマ/クロマ成分QP+3に等しくなり得る。
【0166】
[0119] そのような例では、YCoCg−Rがロッシー(lossy)モードとロスレス(lossless)モードの両方に使用されるとき、現在ブロックがロッシーコーディングされる場合、ルーマおよびクロマのビット深度は、適応色変換を有効化(enable)することなしにコーディングされたそれらのブロックについて同じであり得る。この場合、ロッシーコーディングが適用されるとき、YCoCg−Rの順変換の後に、CoおよびCg成分は、順YCoCg−R変換により増加したビット深度を減少させるためにNビット右シフトによってスケーリングされ、ビット深度精度をY成分のビット深度精度と同じにさせ得る。さらに、逆YCoCg−R変換を実施する前に、CoおよびCg成分はNビット左シフトを用いて修正され得る。一例では、Nは1に等しい。
【0167】
[0120] 一例では、ルーマ成分とクロマ成分との入力ビット深度が同じであると仮定され得る。ロッシーコーディングモードでは、シフト演算は、順変換の後に、および逆変換の前に2つのクロマ成分(すなわち、Cg、Co)に適用され得る。一例では、以下のプロセスが順に適用される。
【0168】
1. 順YCoCg−Rが不変である。
【0170】
、
2. 現在ブロックがロッシーモードでコーディングされる場合、以下がさらに適用され得る。
【0174】
、
[0121] 別の例では、右シフトプロセスにおいてオフセットが考慮され得る。たとえば、上記のハイライトされた式は、以下によって置き換えられ得る。
【0178】
、
[0122] 逆YCoCg−R変換を呼び出す前に、以下が適用され得る。
現在ブロックがロッシーモードでコーディングされる場合、以下が適用され得る。
【0182】
、
および逆YCoCg−Rは不変のままであり得る。
【0184】
[0123] そのような例では、ChromaArrayTypeが3に等しいとき、適応色変換を使用する変換ブロックのための残差修正プロセスが呼び出され得る。このプロセスへの入力は、ブロックサイズを指定する変数blkSizeと、要素rY[x][y]をもつルーマ残差サンプルrYの(blkSize)×(blkSize)アレイと、要素rCb[x][y]をもつクロマ残差サンプルrCbの(blkSize)×(blkSize)アレイと、要素rCr[x][y]をもつクロマ残差サンプルrCrの(blkSize)×(blkSize)アレイとを含み得る。このプロセスへの出力は、ルーマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Yと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Cbと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Crとを含み得る。
【0185】
[0124] x=0..blkSize−1、y=0..blkSize−1の場合、残差サンプルr
Y、r
Cbおよびr
Crの(blkSize)×(blkSize)アレイは次のように修正され得る。
【0187】
[0125] 代替的に、「cu_transquant_bypass_flag=0、r
Cb[x][y]=r
Cb[x][y]<<1およびr
Cr[x][y]=r
Cr[x][y]<<1の場合」は、「r
Cb[x][y]=r
Cb[x][y]<<(1−cu_transquant_bypass_flag)およびr
Cr[x][y]=r
Cr[x][y]<<(1−cu_transquant_bypass_flag)」によって置き換えられ得る。
【0188】
[0126] 色変換行列を共有しているロッシーコーディング方法およびロスレスコーディング方法の別の例では、ルーマ成分とクロマ成分との入力ビット深度は異なり得る。そのような例では、ルーマ成分とクロマ成分との入力ビット深度が異なり、YCoCg−Rがロッシーコーディングモードとロスレスコーディングモードの両方のために使用されるとき、逆変換の前に、Y、Co、Cg成分の値のうちの少なくとも1つは、すべての3つの成分が同じビット深度精度を有するようになるために、最初にNビットシフトされ得る。さらに、2つのクロマ成分(すなわち、Co、およびCg)にもう1ビットがシフトされ得る。すべての3つの成分の予測値のうちの少なくとも1つは、順YCoCg−R変換を呼び出す前に同じビット深度精度を有するように修正され得る。および順変換の後に、2つのクロマ成分は1ビットで右シフトされ得る。ロスレスコーディングモードでは、異なるビット深度は考慮されないことがあり、したがって、適応色空間変換は無効化され得る。一例では、ビットストリームは、コーディングされたビットストリーム中でルーマ成分とクロマ成分とのビット深度が異なるとき、色変換が無効化される(すなわち、color_transform_enabled_flagが0に等しい)、という制約を含み得る。
【0189】
[0127] この例では、ChromaArrayTypeが3に等しいとき、適応色変換を使用する変換ブロックのための残差修正プロセスが呼び出され得る。このプロセスへの入力は、ブロックサイズを指定する変数blkSizeと、要素rY[x][y]をもつルーマ残差サンプルrYの(blkSize)×(blkSize)アレイと、要素rCb[x][y]をもつクロマ残差サンプルrCbの(blkSize)×(blkSize)アレイと、要素rCr[x][y]をもつクロマ残差サンプルrCrの(blkSize)×(blkSize)アレイとを含み得る。このプロセスへの出力は、ルーマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Yと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Cbと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Crとを含み得る。
【0190】
[0128] 変数deltaBD
YおよびdeltaBD
Cは次のように導出され得る。
【0192】
[0129] x=0..blkSize−1、y=0..blkSize−1の場合、残差サンプルr
Y、r
Cbおよびr
Crの(blkSize)×(blkSize)アレイは次のように修正され得る。
残差サンプルrY[x][y]、rCb[x][y]およびrCr[x][y]は次のように修正され得る。
【0194】
[0130] 上記の例では、2つの変数の間でより大きい値を導出するために関数Maxが使用され得る。代替的に、丸めオフセットO
YおよびO
cのうちの少なくとも1つが0に等しく設定され得る。
【0195】
[0131] 代替的に、ロスレスコーディングの場合でさえ、ルーマ成分とクロマ成分とのビット深度が異なるとき、成分は、必要な場合、同じビット深度精度にシフトされ得る。エンコーダ側において、順変換の後に、元のビット深度精度にシフトし戻すことは不要であり得る。言い換えれば、3つの成分のコーディングされた残差は、それがロスレスコーディングになることを確保するために同じビット深度であり得る。ロッシーコーディングとは異なり、入力は、ロスレスコーディングのために逆方向YCoCg−R変換を呼び出す前に修正されないことがある。出力が元の入力と同じビット深度であることを確保するために、右シフトは依然として必要とされ得る。
【0196】
[0132] この例では、ChromaArrayTypeが3に等しいとき、適応色変換を使用する変換ブロックのための残差修正プロセスが呼び出され得る。このプロセスへの入力は、ブロックサイズを指定する変数blkSizeと、要素rY[x][y]をもつルーマ残差サンプルrYの(blkSize)×(blkSize)アレイと、要素rCb[x][y]をもつクロマ残差サンプルrCbの(blkSize)×(blkSize)アレイと、要素rCr[x][y]をもつクロマ残差サンプルrCrの(blkSize)×(blkSize)アレイとを含み得る。このプロセスへの出力は、ルーマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Yと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Cbと、クロマ残差サンプルの修正された(blkSize)×(blkSize)アレイr
Crとを含み得る。
【0197】
[0133] 変数deltaBD
YおよびdeltaBD
Cは次のように導出され得る。
【0199】
[0134] x=0..blkSize−1、y=0..blkSize−1の場合、残差サンプルrY、rCbおよびrCrの(blkSize)×(blkSize)アレイは次のように修正され得る。
cu transquant bypass flagが0に等しいとき、残差サンプルrY[x][y]、rCb[x][y]およびrCr[x][y]は次のように修正され得る。
【0201】
[0135] 代替的に、O
YとO
cとのうちの1つが0に等しくなり得る。
【0202】
[0136] ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中で、ビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用された符号化/予測モードを示し得る。
【0203】
[0137] ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、適用可能なとき、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理回路、ソフトウェア、ハードウェア、ファームウェアあるいはそれらの任意の組合せなど、様々な好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として組み込まれ得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【0204】
[0138]
図2は、色空間変換プロセスを使用してビデオブロックを符号化するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指すことがある。
【0205】
[0139]
図2に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。
図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット(entropy encoding unit)56とを含む。モード選択ユニット40は、今度は、動き補償ユニット(motion compensation unit)44と、動き推定ユニット(motion estimation unit)42と、イントラ予測ユニット(intra-prediction unit)46と、区分ユニット(partition unit)48とを含む。ビデオブロックの再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット(inverse quantization unit)58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクト(blockiness artifact)を除去するためにブロック境界をフィルタ処理するためのデブロッキングフィルタ(deblocking filter)(
図2に図示されず)も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングすることになる。デブロッキングフィルタに加えて、追加のフィルタ(ループ内またはループ後)も使用され得る。そのようなフィルタは簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
【0206】
[0140] 符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実施する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して、受信されたビデオブロックのイントラ予測コーディングを実施し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックに適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
【0207】
[0141] その上、区分ユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、サブCUへのLCUの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
【0208】
[0142] モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインターコーディングされたブロックを、残差ブロックデータ(residual block data)を生成するために加算器50に、および参照フレームとしての使用のために符号化ブロックを再構成するために加算器62に提供する。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などのシンタックス要素を、エントロピー符号化ユニット56に提供する。
【0209】
[0143] 動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念上の目的から別々に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム(または他のコーディングされたユニット)内でコーディングされている現在ブロックに対する参照フレーム(または他のコーディングされたユニット)内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0210】
[0144] 動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、その各々が、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0211】
[0145] 動き補償ユニット44によって実施される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。同じく、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に一体化され得る。現在ビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックを位置特定し得る。加算器50は、下記で論じられるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42は、ルーマ成分に対して動き推定を実施し、動き補償ユニット44は、クロマ成分とルーマ成分の両方について、ルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際のビデオデコーダ30による使用のために、ビデオブロックとビデオスライスとに関連付けられたシンタックス要素を生成し得る。
【0212】
[0146] イントラ予測ユニット46は、上述されたように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば別々の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適切なイントラ予測モードを選択し得る。
【0213】
[0147] たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの間で最も良好なレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに、符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックの最も良好なレートひずみ値を呈するかを決定するために、様々な符号化ブロックのためのひずみおよびレートから比を計算し得る。
【0214】
[0148] ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックのための符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
【0215】
[0149] ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロック(residual block)に適用して、残差変換係数値(residual transform coefficient value)を備えるビデオブロックを生成する。変換処理ユニット52は、DCTに概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプ変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、ピクセル値領域からの残差情報を、周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
【0216】
[0150] 量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実施し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングに続いて、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかもしくは取り出すためにアーカイブされ得る。
【0217】
[0151] 本開示の技法によれば、ビデオエンコーダ20のエントロピー符号化ユニット56は、本開示の1つまたは複数の技法を実施し得る。たとえば、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットのために色空間変換を使用すべきかどうかを決定し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットのために色空間変換を使用することを決定することに応答して、色空間変換の使用を示すようにコーディングユニットのシンタックス要素の値をさらに設定し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットを符号化することにおいて色空間変換プロセスをさらに適用し得る。
【0218】
[0152] 逆量子化ユニット(Inverse quantization unit)58および逆変換ユニット60は、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化と逆変換とを適用する。動き補償ユニット44は、参照ピクチャメモリ64のフレームのうちの1つの予測ブロックに残差ブロックを加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、動き推定ユニット42および動き補償ユニット44によって、後続のビデオフレーム中のブロックをインターコーディングするために参照ブロックとして使用され得る。
【0219】
[0153] このようにして、ビデオエンコーダ20のエントロピー符号化ユニット56は、本開示の1つまたは複数の技法を実施し得る。たとえば、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットのために色空間変換を使用すべきかどうかを決定し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットのために色空間変換を使用することを決定することに応答して、色空間変換の使用を示すようにコーディングユニットのシンタックス要素の値をさらに設定し得る。いくつかの例では、シンタックス要素は1ビットフラグを備える。いくつかの例では、イントラパルス符号変調(IPCM:intra-pulse code modulation)モード以外のモードを使用してコーディングユニットがコーディングされるとき、シンタックス要素はシグナリングされる。他の例では、コーディングユニットの変換ユニット中に非0係数(non-zero coefficient)があるときのみ、シンタックス要素はシグナリングされる。いくつかの例では、シンタックス要素についての1の値は、色空間変換を使用してコーディングユニットが符号化されたことを示す。ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットを符号化することにおいて色空間変換プロセスをさらに適用し得る。
【0220】
[0154] いくつかの例では、シンタックス要素はシグナリングされないことがある。たとえば、コーディングユニットがイントラコーディングされるとき、およびコーディングユニット内の予測ユニットのルーマ予測モード(luma prediction mode)とクロマ予測モード(chroma prediction mode)とが異なるとき、シンタックス要素はシグナリングされないことがある。別の例では、コーディングユニットがパレットモード(palette mode)でコーディングされるとき、シンタックス要素はシグナリングされないことがある。
【0221】
[0155] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、シーケンスパラメータセットのために色空間変換を使用すべきかどうかをさらに決定し得る。シーケンスパラメータセットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、シーケンスパラメータセットに関連し得、色空間変換が、シーケンスパラメータセットに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、シーケンスパラメータセットのビデオデータに色空間変換プロセスをさらに適用し得る。
【0222】
[0156] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、ピクチャパラメータセット(picture parameter set)のために色空間変換を使用すべきかどうかをさらに決定し得る。ピクチャパラメータセットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、ピクチャパラメータセットに関連し得、色空間変換が、ピクチャパラメータセットに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、ピクチャパラメータセットのビデオデータに色空間変換プロセスをさらに適用し得る。
【0223】
[0157] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、スライスヘッダのために色空間変換を使用すべきかどうかをさらに決定し得る。スライスヘッダのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、スライスヘッダに関連し得、色空間変換が、スライスヘッダに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、スライスヘッダのビデオデータに色空間変換プロセスをさらに適用し得る。
【0224】
[0158] いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すピクチャパラメータセットのデータをさらに符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すシーケンスパラメータセットのデータを符号化し得る。さらに他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すスライスヘッダのデータを符号化し得る。いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットの複数の領域の各々について色空間逆変換プロセスを導出し得、ここにおいて、領域は高レベルシンタックスに基づいて分割される。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0225】
[0159] いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す変換ユニット(TU)レベルにおけるデータを符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す予測ユニット(PU)レベルにおけるデータを符号化し得る。さらに他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すスライスヘッダのデータを符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す補足エンハンスメント情報(SEI:supplemental enhancement information)メッセージのデータを符号化し得る。
【0226】
[0160] いくつかの例では、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されなかったことを示す第1のシンタックス要素である。そのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニット中の第1のピクセルのためのパレットインデックス(palette index)の値を決定し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、走査順序で第1のピクセルのすぐ隣に続いている1つまたは複数の次のピクセルのためのパレットインデックスの値をさらに決定し得る。パレットインデックスの値を決定することは、ピクセルが、第1のピクセルのためのパレットインデックスの値とは異なる値をもつパレットインデックスを有するまで、パレットインデックスの値を決定することを備え得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、次のピクセルのために決定されるパレットインデックス値の数をさらに決定し得る。パレットインデックス値の数に基づいて、ビデオエンコーダ20のエントロピー符号化ユニット56は、第1のモードまたは第2のモードのいずれかを使用してパレットインデックスを符号化し得る。パレットインデックス値の数が1よりも大きいとき、ビデオエンコーダ20のエントロピー符号化ユニット56は、パレットインデックスを符号化するために第1のモードが使用されたことを示すように第2のシンタックス要素の値を設定し、第3のシンタックス要素の値をパレットインデックス値の数に等しく設定し得る。パレットインデックス値の数が1よりも小さいかまたはそれに等しいとき、ビデオエンコーダ20のエントロピー符号化ユニット56は、パレットインデックスを符号化するために第2のモードが使用されたことを示すように第2のシンタックス要素の値を設定し得る。いくつかの例では、第1のモードはランモードであり、第2のモードはピクセルモードである。
【0227】
[0161] いくつかの例では、シンタックス要素を符号化することは、ビデオエンコーダ20のエントロピー符号化ユニット56が、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す補足エンハンスメント情報(SEI)メッセージのデータを符号化することを備え得る。いくつかの例では、色空間逆変換プロセスを適用することは、ビデオエンコーダ20のエントロピー符号化ユニット56が固定色空間逆変換行列(fixed color-space inverse transform matrix)を適用することを備え得る。いくつかの例では、固定色空間変換行列はYCoCg行列である。他の例では、固定色空間変換行列はYCoCg−R行列である。
【0228】
[0162] いくつかの例では、コーディングユニットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータに色空間変換プロセスを適用する前に、1つまたは複数の成分の値を使用して残差ブロックをさらに生成し得る。そのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータの残差ブロックに色空間変換プロセスをさらに適用し得る。
【0229】
[0163]
図3は、色空間変換プロセスを使用してそのうちのいくつかが符号化された、ビデオブロックを復号するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。
図3の例では、ビデオデコーダ30は、エントロピー復号ユニット(entropy decoding unit)70と、動き補償ユニット(motion compensation unit)72と、イントラ予測ユニット(intra prediction unit)74と、逆量子化ユニット(inverse quantization unit)76と、逆変換ユニット(inverse transformation unit)78と、参照ピクチャメモリ(reference picture memory)82と、加算器(summer)80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(
図2)に関して説明された符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得、一方、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
【0230】
[0164] 復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0231】
[0165] 本開示の技法によれば、ビデオデコーダ30のエントロピー復号ユニット70は、本開示の1つまたは複数の技法を実施し得る。たとえば、ビデオデコーダ30のエントロピー復号ユニット70は、コーディングユニットのシンタックス要素を復号し得る。シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、シンタックス要素の値が、色空間変換を使用してコーディングユニットが符号化されたことを示すかどうかをさらに決定し得る。ビデオデコーダ30のエントロピー復号ユニット70は、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、コーディングユニットを復号することにおいて色空間逆変換プロセスをさらに適用し得る。デコーダ側で、コーディングモードにかかわらず、色空間順変換プロセスを実施する必要はない。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0232】
[0166] ビデオスライスが、イントラコーディングされた(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、現在フレームまたはピクチャの以前に復号されたブロックから、シグナリングされたイントラ予測モード(intra prediction mode)およびデータに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームが、インターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づくデフォルト構成技法を使用して、参照フレームリスト、リスト0およびリスト1を構成し得る。動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパース(parse)することによって現在ビデオスライスのビデオブロックのための予測情報を決定し、この予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数についての構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0233】
[0167] 動き補償ユニット72はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット72は、参照ブロックのサブ整数ピクセルの補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0234】
[0168] 逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化された変換係数を逆量子化する(inverse quantize)、すなわち、逆量子化する(de-quantize)。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ30によって計算される量子化パラメータQP
Yの使用を含み得る。
【0235】
[0169] 逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0236】
[0170] 動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。(コーディングループ内またはコーディングループ後のいずれかの)他のループフィルタも、ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、参照ピクチャメモリ82に記憶され、この参照ピクチャメモリ82は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ82はまた、復号ビデオを、
図1のディスプレイデバイス32などのディスプレイデバイス上に後で提示するために記憶する。
【0237】
[0171] このようにして、ビデオデコーダ30のエントロピー復号ユニット70は、本開示の1つまたは複数の技法を実施し得る。たとえば、ビデオデコーダ30のエントロピー復号ユニット70は、コーディングユニットのシンタックス要素を復号し得る。シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたかどうかを示し得る。いくつかの例では、シンタックス要素は1ビットフラグを備え得る。いくつかの例では、コーディングユニットはイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、シンタックス要素は、IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる。いくつかの例では、コーディングユニットの変換ユニット中に非0係数があるとき、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたことを示す。いくつかの例では、シンタックス要素についての1の値は、色空間変換を使用してコーディングユニットが符号化されたことを示す。デコーダ側で、コーディングモードにかかわらず、色空間順変換プロセスを実施する必要はない。
【0238】
[0172] ビデオデコーダ30のエントロピー復号ユニット70は、シンタックス要素の値が、色空間変換を使用してコーディングユニットが符号化されたことを示すかどうかをさらに決定し得る。ビデオデコーダ30のエントロピー復号ユニット70は、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、コーディングユニットを復号することにおいて色空間逆変換プロセスをさらに適用し得る。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0239】
[0173] いくつかの例では、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。たとえば、コーディングユニットがイントラコーディングされるとき、およびコーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。別の例では、コーディングユニットがパレットモードでコーディングされるとき、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。これらの例では、シンタックス要素は、ビデオデータを備える受信ビットストリーム中に存在しないことがあり、シンタックス要素を復号することは、シンタックス要素の値を推論することを備え得る。
【0240】
[0174] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、シーケンスパラメータセット(SPS:sequence parameter set)に関連し得、SPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、SPSに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、シーケンスパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0241】
[0175] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、ピクチャパラメータセット(PPS:picture parameter set)に関連し得、PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、PPSに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、ピクチャパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0242】
[0176] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、スライスヘッダに関連し得、スライスヘッダに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、スライスヘッダに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、スライスヘッダに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0243】
[0177] いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すピクチャパラメータセット(PPS)のデータをさらに復号し得る。他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すシーケンスパラメータセット(SPS)のデータを復号し得る。さらに他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すスライスヘッダのデータを復号し得る。いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、コーディングユニットの複数の領域の各々について色空間逆変換プロセスを導出し得、ここで、領域は高レベルシンタックスに基づいて分割される。
【0244】
[0178] いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す変換ユニット(TU)レベルにおけるデータを復号し得る。他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す予測ユニット(PU)レベルにおけるデータを復号し得る。いくつかの他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、スライスヘッダのデータから色空間逆変換プロセスを導出し得る。さらに他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す補足エンハンスメント情報(SEI)メッセージのデータを復号し得る。
【0245】
[0179] いくつかの例では、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されなかったことを示す第1のシンタックス要素である。そのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値をさらに決定し得る。シンタックス要素は、コーディングユニット中のピクセルのためのパレットインデックスを復号するために第1のモードが使用されるのか第2のモードが使用されるのかを示し得る。第2のシンタックス要素の決定された値に基づいて、ビデオデコーダ30のエントロピー復号ユニット70は、第1のモードまたは第2のモードのいずれかを使用してパレットインデックスを復号し得る。第1のモードを使用するとき、ビデオデコーダ30のエントロピー復号ユニット70は、パレットインデックスの値を決定し、走査順序で現在復号されているピクセルのすぐ隣に続いているピクセルの数を示す第3のシンタックス要素の値を決定し、走査順序で次のN個のピクセルのためのパレットインデックスの値を決定した結果を複製し得、ただし、Nは第3のシンタックス要素の値に等しい。いくつかの例では、第1のモードはランモードである。第2のモードを使用するとき、ビデオデコーダ30のエントロピー復号ユニット70は、パレットインデックスの値を決定し、ピクセルのピクセルサンプル値を出力し得、ここで、ピクセルサンプル値はパレットインデックスの値に等しい。いくつかの例では、第2のモードはピクセルモードである。
【0246】
[0180] いくつかの例では、シンタックス要素を復号することは、ビデオデコーダ30のエントロピー復号ユニット70が、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す補足エンハンスメント情報(SEI)メッセージのデータを復号するように構成されることを備える。いくつかの例では、色空間逆変換プロセスを適用することは、ビデオデコーダ30のエントロピー復号ユニット70が固定色空間逆変換行列を適用するように構成されることを備える。いくつかの例では、固定色空間変換行列はYCoCg行列である。他の例では、固定色空間変換行列はYCoCg−R行列である。
【0247】
[0181] いくつかの例では、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、ビデオデコーダ30のエントロピー復号ユニット70は、ビデオデータに色空間逆変換プロセスを適用する前に、1つまたは複数の成分の値を使用して残差ブロックを生成し得る。そのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、ビデオデータの残差ブロックに色空間逆変換プロセスを適用し得る。
【0248】
[0182]
図4は、本開示の1つまたは複数の技法による35個のHEVC予測モードを示す概念図である。現在のHEVCでは、各予測ユニット(PU)のルーマ成分のために、
図4に関して説明されるように、(2から34までインデックス付けされた)33個の角度予測モードと、(1でインデックス付けされた)DCモードと、(0でインデックス付けされた)平面モードとをもつイントラ予測方法が利用される。
【0249】
[0183] 上記の35個のイントラモードに加えて、「I−PCM」と称する、もう1つのモードもHEVCによって採用される。I−PCMモードでは、予測サンプルはあらかじめ定義されたビット数によってコーディングされるが、予測、変換、量子化、およびエントロピーコーディングはバイパスされる。I−PCMモードの主な目的は、信号が他のモードによって効率的にコーディングされ得ない状況を扱うことである。
【0250】
[0184]
図5は、本開示の1つまたは複数の技法による、マージモードと高度動きベクトル予測(AMVP)モードとのための空間隣接動きベクトル候補を示す概念図である。
図5に関して説明されるように、空間的MV候補が、特定のPU(PU0)に関して
図5に示されている隣接ブロックから導出されるが、ブロックから候補を生成する方法はマージモードとAMVPモードとについて異なる。
【0251】
[0185] マージモードでは、番号で
図5(a)に示された順序とともに、最高4つの空間的MV候補が導出され得、順序は、
図5(a)に示されているように、左(0)、上(1)、右上(2)、左下(3)、および左上(4)である。
【0252】
[0186] AMVPモードでは、隣接ブロックは、
図5(b)に示されているように、ブロック0および1からなる左グループ、ならびにブロック2、3、および4からなる上グループという、2つのグループに分割される。各グループについて、シグナリングされた参照インデックスによって示された参照ピクチャと同じ参照ピクチャを参照する隣接ブロック中の潜在的候補は、そのグループの最終候補を形成するために選定されるべき最高優先順位を有する。すべての隣接ブロックが、同じ参照ピクチャを指す動きベクトルを含んでいるとは限らない可能性がある。したがって、そのような候補が見つけられ得ない場合、第1の利用可能な候補は、最終候補を形成するためにスケーリングされることになり、したがって、時間距離差分が補償され得る。
【0253】
[0187]
図6は、本開示の1つまたは複数の技法によるイントラブロックコピー(BC)の一例を示す概念図である。
図6に関して説明されるように、RExt中にイントラブロックコピー(BC)が含まれている。イントラBCの一例は
図6に示されている通りであり、ここにおいて、現在CUは、現在ピクチャ/スライスのすでに復号されたブロックから予測される。現在イントラBCブロックサイズは、8×8から64×64にわたるCUサイズ程度に大きくなり得るが、いくつかの適用例では、さらなる制約が追加として適用され得る。
【0254】
[0188]
図7は、本開示の1つまたは複数の技法による、イントラ8×8ブロックのためのターゲットブロックおよび参照サンプルの一例を示す概念図である。
図7に関して以下で説明されるように、変換行列は参照サンプル値から導出される。イントラの場合とインターの場合とのために異なる参照サンプルが利用される。イントラブロックの場合について、ターゲットブロックおよび参照サンプルが
図7に示されている。この図では、ターゲットブロックは8×8のクロスハッチサンプルからなり、参照はストライプサンプルおよびドット付きサンプルである。
【0255】
[0189] インターブロックの場合、行列導出のための参照サンプルは動き補償のための参照サンプルと同じである。シフト演算を実現するために、AMPブロック中の参照サンプルは、サンプルの数が2のべき乗になるようにサブサンプリングされる。たとえば、12×16ブロック中の参照サンプルの数は2/3に低減される。
【0256】
[0190] 本開示のいくつかの技法によれば、色空間変換プロセスが適用され得る。そのような例では、変換プロセスが呼び出されるか否かをシグナリングする必要はない。さらに、エンコーダ側とデコーダ側の両方は、変換行列をシグナリングするためのオーバーヘッドを回避するために同じ方法で変換行列を導出し得る。
【0257】
[0191]
図8は、現在ブロックを符号化するための例示的な方法を示すフローチャートである。現在ブロックは、現在CU、または現在CUの一部分を備え得る。ビデオエンコーダ20(
図1および
図2)に関して説明されるが、他のデバイスが
図8の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0258】
[0192] この例では、ビデオエンコーダ20は、初めに、現在ブロックを予測する(150)。たとえば、ビデオエンコーダ20は、現在ブロックのための1つまたは複数の予測ユニット(PU)を計算し得る。ビデオエンコーダ20は、次いで、たとえば、変換ユニット(TU)を生成するために、現在ブロックの残差ブロックを計算し得る(152)。残差ブロックを計算するために、ビデオエンコーダ20は、元のコーディングされていないブロックと、現在ブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換を使用すべきかどうかを決定し得る(154)。色空間変換を使用することをビデオエンコーダ20が決定するか否かに基づいて、ビデオエンコーダ20のエントロピー符号化ユニット56は、シンタックス要素の値を相応に設定し得る(156)。いくつかの例では、シンタックス要素は1ビットフラグを備える。いくつかの例では、イントラパルス符号変調(IPCM)モード以外のモードを使用してコーディングユニットがコーディングされるとき、シンタックス要素はシグナリングされる。他の例では、コーディングユニットの変換ユニット中に非0係数があるときのみ、シンタックス要素はシグナリングされる。いくつかの例では、シンタックス要素についての1の値は、色空間変換を使用してコーディングユニットが符号化されたことを示す。ビデオエンコーダ20のエントロピー符号化ユニット56は、残差ブロックに色空間変換プロセスを適用し得る(158)。ビデオエンコーダ20は、次いで、残差ブロックの係数を変換し量子化し得る(160)。次に、ビデオエンコーダ20は、残差ブロックの量子化された変換係数を走査し得る(162)。走査中に、または走査に続いて、ビデオエンコーダ20は、係数をエントロピー符号化し得る(164)。たとえば、ビデオエンコーダ20は、CAVLCまたはCABACを使用して係数を符号化し得る。ビデオエンコーダ20は、次いで、ブロックのエントロピーコーディングされたデータを出力し得る(166)。
【0259】
[0193] いくつかの例では、シンタックス要素はシグナリングされないことがある。たとえば、コーディングユニットがイントラコーディングされるとき、およびコーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、シンタックス要素はシグナリングされないことがある。別の例では、コーディングユニットがパレットモードでコーディングされるとき、シンタックス要素はシグナリングされないことがある。
【0260】
[0194] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、シーケンスパラメータセットのために色空間変換を使用すべきかどうかをさらに決定し得る。シーケンスパラメータセットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、シーケンスパラメータセットに関連し得、色空間変換が、シーケンスパラメータセットに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、シーケンスパラメータセットのビデオデータに色空間変換プロセスをさらに適用し得る。
【0261】
[0195] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、ピクチャパラメータセットのために色空間変換を使用すべきかどうかをさらに決定し得る。ピクチャパラメータセットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、ピクチャパラメータセットに関連し得、色空間変換が、ピクチャパラメータセットに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、ピクチャパラメータセットのビデオデータに色空間変換プロセスをさらに適用し得る。
【0262】
[0196] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、スライスヘッダのために色空間変換を使用すべきかどうかをさらに決定し得る。スライスヘッダのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニットは、シンタックス要素の値を設定し得る。第2のシンタックス要素は、スライスヘッダに関連し得、色空間変換が、スライスヘッダに対応するビデオデータのために有効化されることを示すように設定され得る。ビデオエンコーダ20のエントロピー符号化ユニットは、スライスヘッダのビデオデータに色空間変換プロセスをさらに適用し得る。
【0263】
[0197] いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すピクチャパラメータセットのデータをさらに符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すシーケンスパラメータセットのデータを符号化し得る。さらに他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すスライスヘッダのデータを符号化し得る。いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニットの複数の領域の各々について色空間逆変換プロセスを導出し得、ここにおいて、領域は高レベルシンタックスに基づいて分割される。
【0264】
[0198] いくつかの例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す変換ユニット(TU)レベルにおけるデータを符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す予測ユニット(PU)レベルにおけるデータを符号化し得る。さらに他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示すスライスヘッダのデータを符号化し得る。他の例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、色空間変換プロセスを示す補足エンハンスメント情報(SEI)メッセージのデータを符号化し得る。
【0265】
[0199] いくつかの例では、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されなかったことを示す第1のシンタックス要素である。そのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、コーディングユニット中の第1のピクセルのためのパレットインデックスの値を決定し得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、走査順序で第1のピクセルのすぐ隣に続いている1つまたは複数の次のピクセルのためのパレットインデックスの値をさらに決定し得る。パレットインデックスの値を決定することは、ピクセルが、第1のピクセルのためのパレットインデックスの値とは異なる値をもつパレットインデックスを有するまで、パレットインデックスの値を決定することを備え得る。ビデオエンコーダ20のエントロピー符号化ユニット56は、次のピクセルのために決定されるパレットインデックス値の数をさらに決定し得る。パレットインデックス値の数に基づいて、ビデオエンコーダ20のエントロピー符号化ユニット56は、第1のモードまたは第2のモードのいずれかを使用してパレットインデックスを符号化し得る。パレットインデックス値の数が1よりも大きいとき、ビデオエンコーダ20のエントロピー符号化ユニット56は、パレットインデックスを符号化するために第1のモードが使用されたことを示すように第2のシンタックス要素の値を設定し、第3のシンタックス要素の値をパレットインデックス値の数に等しく設定し得る。パレットインデックス値の数が1よりも小さいかまたはそれに等しいとき、ビデオエンコーダ20のエントロピー符号化ユニット56は、パレットインデックスを符号化するために第2のモードが使用されたことを示すように第2のシンタックス要素の値を設定し得る。いくつかの例では、第1のモードはランモードであり、第2のモードはピクセルモードである。
【0266】
[0200] いくつかの例では、シンタックス要素を符号化することは、ビデオエンコーダ20のエントロピー符号化ユニット56が、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す補足エンハンスメント情報(SEI)メッセージのデータを符号化することを備え得る。いくつかの例では、色空間逆変換プロセスを適用することは、ビデオエンコーダ20のエントロピー符号化ユニット56が固定色空間逆変換行列を適用することを備え得る。いくつかの例では、固定色空間変換行列はYCoCg行列である。他の例では、固定色空間変換行列はYCoCg−R行列である。
【0267】
[0201] いくつかの例では、コーディングユニットのために色空間変換を使用することを決定することに応答して、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータに色空間変換プロセスを適用する前に、1つまたは複数の成分の値を使用して残差ブロックをさらに生成し得る。そのような例では、ビデオエンコーダ20のエントロピー符号化ユニット56は、ビデオデータの残差ブロックに色空間変換プロセスをさらに適用し得る。
【0268】
[0202]
図9は、ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。現在ブロックは、現在CU、または現在CUの一部分を備え得る。ビデオデコーダ30(
図1および
図3)に関して説明されるが、他のデバイスが
図9の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0269】
[0203] ビデオデコーダ30は、現在ブロックのための予測ブロックを計算するために、たとえば、イントラ予測モードまたはインター予測モードを使用して、現在ブロックを予測し得る(200)。ビデオデコーダ30はまた、現在ブロックに対応する残差ブロックの係数についてのエントロピーコーディングされたデータなど、現在ブロックについてのエントロピーコーディングされたデータを受信し得る(202)。ビデオデコーダ30は、残差ブロックの係数を再生するために、エントロピーコーディングされたデータをエントロピー復号し得る(204)。ビデオデコーダ30は、次いで、再生された係数を逆走査して(206)、量子化された変換係数のブロックを作成し得る。ビデオデコーダ30は、次いで、係数を逆変換し逆量子化し得る(208)。ビデオデコーダ30のエントロピー復号ユニット70は、現在ブロックのシンタックス要素を復号し得る(210)。いくつかの例では、シンタックス要素は1ビットフラグを備え得る。いくつかの例では、コーディングユニットはイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、シンタックス要素は、IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる。いくつかの例では、コーディングユニットの変換ユニット中に非0係数があるとき、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されたことを示す。いくつかの例では、シンタックス要素についての1の値は、色空間変換を使用してコーディングユニットが符号化されたことを示す。
【0270】
[0204] ビデオデコーダ30のエントロピー復号ユニット70は、そのシンタックス要素の値を決定し得、シンタックス要素の値は、色空間変換を使用して現在ブロックが符号化されたかどうかを示し得る(212)。符号化プロセスにおいて色空間変換が使用されたと決定することに応答して、ビデオデコーダ30のエントロピー復号ユニット70は、残差ブロックを再生するために色空間逆変換プロセスを適用し得る(214)。ビデオデコーダ30は、最終的に、予測ブロックと残差ブロックとを結合することによって現在ブロックを復号し得る(216)。デコーダ側で、コーディングモードにかかわらず、色空間順変換プロセスを実施することは不要であり得る。いくつかの例では、色空間逆変換プロセスは固定であり得る。
【0271】
[0205] いくつかの例では、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。たとえば、コーディングユニットがイントラコーディングされるとき、およびコーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。別の例では、コーディングユニットがパレットモードでコーディングされるとき、シンタックス要素は、コーディングユニットを符号化するために色空間変換が使用されなかったことを示し得る。これらの例では、シンタックス要素は、ビデオデータを備える受信ビットストリーム中に存在しないことがあり、シンタックス要素を復号することは、シンタックス要素の値を推論することを備え得る。
【0272】
[0206] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、シーケンスパラメータセット(SPS)に関連し得、SPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、SPSに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、シーケンスパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0273】
[0207] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、ピクチャパラメータセット(PPS)に関連し得、PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、PPSに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、ピクチャパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0274】
[0208] いくつかの例では、シンタックス要素は第1のシンタックス要素であり、第1のシンタックス要素はコーディングユニットに関連する。いくつかのそのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素をさらに復号し得る。第2のシンタックス要素は、スライスヘッダに関連し得、スライスヘッダに対応するビデオデータのために色空間変換が有効化されるかどうかを示し得る。ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値が、スライスヘッダに対応するビデオデータのために色空間変換が有効化されることを示すかどうかを決定し得る。そのような例では、第1のシンタックス要素を復号することは、第2のシンタックス要素が、スライスヘッダに対応するビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、第1のシンタックス要素を復号するように、ビデオデコーダ30のエントロピー復号ユニット70が構成されることを備え得る。
【0275】
[0209] いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すピクチャパラメータセット(PPS)のデータをさらに復号し得る。他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すシーケンスパラメータセット(SPS)のデータを復号し得る。さらに他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示すスライスヘッダのデータを復号し得る。いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、コーディングユニットの複数の領域の各々について色空間逆変換プロセスを導出し得、ここで、領域は高レベルシンタックスに基づいて分割される。
【0276】
[0210] いくつかの例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す変換ユニット(TU)レベルにおけるデータを復号し得る。他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す予測ユニット(PU)レベルにおけるデータを復号し得る。いくつかの他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、スライスヘッダのデータから色空間逆変換プロセスを導出し得る。さらに他の例では、ビデオデコーダ30のエントロピー復号ユニット70は、色空間逆変換プロセスを示す補足エンハンスメント情報(SEI)メッセージのデータを復号し得る。
【0277】
[0211] いくつかの例では、シンタックス要素は、色空間変換を使用してコーディングユニットが符号化されなかったことを示す第1のシンタックス要素である。そのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、第2のシンタックス要素の値をさらに決定し得る。シンタックス要素は、コーディングユニット中のピクセルのためのパレットインデックスを復号するために第1のモードが使用されるのか第2のモードが使用されるのかを示し得る。第2のシンタックス要素の決定された値に基づいて、ビデオデコーダ30のエントロピー復号ユニット70は、第1のモードまたは第2のモードのいずれかを使用してパレットインデックスを復号し得る。第1のモードを使用するとき、ビデオデコーダ30のエントロピー復号ユニット70は、パレットインデックスの値を決定し、走査順序で現在復号されているピクセルのすぐ隣に続いているピクセルの数を示す第3のシンタックス要素の値を決定し、走査順序で次のN個のピクセルのためのパレットインデックスの値を決定した結果を複製し得、ただし、Nは第3のシンタックス要素の値に等しい。いくつかの例では、第1のモードはランモードである。第2のモードを使用するとき、ビデオデコーダ30のエントロピー復号ユニット70は、パレットインデックスの値を決定し、ピクセルのピクセルサンプル値を出力し得、ここで、ピクセルサンプル値はパレットインデックスの値に等しい。いくつかの例では、第2のモードはピクセルモードである。
【0278】
[0212] いくつかの例では、シンタックス要素を復号することは、ビデオデコーダ30のエントロピー復号ユニット70が、色空間変換を使用してコーディングユニットが符号化されたかどうかを示す補足エンハンスメント情報(SEI)メッセージのデータを復号するように構成されることを備える。いくつかの例では、色空間逆変換プロセスを適用することは、ビデオデコーダ30のエントロピー復号ユニット70が固定色空間逆変換行列を適用するように構成されることを備える。いくつかの例では、固定色空間変換行列はYCoCg行列である。他の例では、固定色空間変換行列はYCoCg−R行列である。
【0279】
[0213] いくつかの例では、シンタックス要素が、色空間変換を使用してコーディングユニットがコーディングされたことを示すと決定することに応答して、ビデオデコーダ30のエントロピー復号ユニット70は、ビデオデータに色空間逆変換プロセスを適用する前に、1つまたは複数の成分の値を使用して残差ブロックを生成し得る。そのような例では、ビデオデコーダ30のエントロピー復号ユニット70は、ビデオデータの残差ブロックに色空間逆変換プロセスを適用し得る。
【0280】
[0214] 例によっては、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを用いて、連続的にではなく同時に実施され得る。
【0281】
[0215] 1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコード上に記憶され、またはそれを介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0282】
[0216] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、代わりに、非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0283】
[0217] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用ハードウェアおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つまたは複数の回路または論理素子において完全に実装され得る。
【0284】
[0218] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示された技法を実施するように構成されたデバイスの機能的態様を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記で説明されたように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作ハードウェアユニットの集合によって提供され得る。
【0285】
[0219] 本開示の様々な例について説明された。説明されたシステム、動作、または機能の任意の組合せが企図される。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
ビデオデータのコーディングユニットのシンタックス要素を復号することと、ここにおいて、前記シンタックス要素が、色空間変換を使用して前記コーディングユニットが符号化されたかどうかを示す、
前記シンタックス要素の値が、色空間変換を使用して前記コーディングユニットが符号化されたことを示すかどうかを決定することと、
前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、前記コーディングユニットを復号することにおいて色空間逆変換プロセスを適用することとを備える、方法。
[C2]
前記シンタックス要素が1ビットフラグを備える、C1に記載の方法。
[C3]
前記コーディングユニットがイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、前記シンタックス要素が、前記IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる、C1に記載の方法。
[C4]
前記コーディングユニットの変換ユニット中に非0係数があるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C1に記載の方法。
[C5]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C1に記載の方法。
[C6]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C1に記載の方法。
[C7]
前記シンタックス要素についての1の値は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C1に記載の方法。
[C8]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、前記方法は、
第2のシンタックス要素を復号することと、ここにおいて、前記第2のシンタックス要素がピクチャパラメータセット(PPS)に関連し、ここにおいて、前記第2のシンタックス要素が、前記PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示す、
前記第2のシンタックス要素の値が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すかどうかを決定することと
をさらに備え、
ここにおいて、前記第1のシンタックス要素を復号することは、前記第2のシンタックス要素が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、前記第1のシンタックス要素を復号することを備える、C1に記載の方法。
[C9]
前記色空間逆変換プロセスを適用することが、固定色空間逆変換行列を適用することを備える、C1に記載の方法。
[C10]
前記固定色空間逆変換行列がYCoCg行列である、C9に記載の方法。
[C11]
前記固定色空間逆変換行列がYCoCg−R行列である、C9に記載の方法。
[C12]
前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、
前記ビデオデータに色空間逆変換プロセスを適用することの前に、1つまたは複数の成分の値を使用してイントラコーディングされた残差ブロックを生成することと、
前記ビデオデータの前記イントラコーディングされた残差ブロックに前記色空間逆変換プロセスを適用することと
をさらに備える、C1に記載の方法。
[C13]
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備えるビデオ復号デバイスであって、前記1つまたは複数のプロセッサは、
ビデオデータのコーディングユニットのシンタックス要素を復号することと、ここにおいて、前記シンタックス要素が、色空間変換を使用して前記コーディングユニットが符号化されたかどうかを示す、
前記シンタックス要素の値が、色空間変換を使用して前記コーディングユニットが符号化されたことを示すかどうかを決定することと、
前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、前記コーディングユニットを復号することにおいて色空間逆変換プロセスを適用することとを行うように構成された、ビデオ復号デバイス。
[C14]
前記シンタックス要素が1ビットフラグを備える、C13に記載のビデオ復号デバイス。
[C15]
前記コーディングユニットがイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、前記シンタックス要素が、前記IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる、C13に記載のビデオ復号デバイス。
[C16]
前記コーディングユニットの変換ユニット中に非0係数があるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C13に記載のビデオ復号デバイス。
[C17]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C13に記載のビデオ復号デバイス。
[C18]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、およびここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C13に記載のビデオ復号デバイス。
[C19]
前記シンタックス要素についての1の値は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C13に記載のビデオ復号デバイス。
[C20]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、ここにおいて、前記1つまたは複数のプロセッサは、
第2のシンタックス要素を復号することと、ここにおいて、前記第2のシンタックス要素がピクチャパラメータセット(PPS)に関連し、ここにおいて、前記第2のシンタックス要素が、前記PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示す、
前記第2のシンタックス要素の値が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すかどうかを決定することと
を行うようにさらに構成され、
ここにおいて、前記1つまたは複数のプロセッサが前記第1のシンタックス要素を復号するように構成されることは、前記1つまたは複数のプロセッサが、前記第2のシンタックス要素が前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、前記第1のシンタックス要素を復号するように構成されることを備える、C13に記載のビデオ復号デバイス。
[C21]
前記1つまたは複数のプロセッサが前記色空間逆変換プロセスを適用するように構成されることは、前記1つまたは複数のプロセッサが固定色空間逆変換行列を適用するように構成されることを備える、C13に記載のビデオ復号デバイス。
[C22]
前記固定色空間逆変換行列がYCoCg行列である、C21に記載のビデオ復号デバイス。
[C23]
前記固定色空間逆変換行列がYCoCg−R行列である、C21に記載のビデオ復号デバイス。
[C24]
前記1つまたは複数のプロセッサは、前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、
前記ビデオデータに色空間逆変換プロセスを適用することの前に、1つまたは複数の成分の値を使用して残差ブロックを生成することと、
前記ビデオデータの前記残差ブロックに前記色空間逆変換プロセスを適用することと
を行うようにさらに構成される、C13に記載のビデオ復号デバイス。
[C25]
ビデオデータのコーディングユニットのシンタックス要素を復号するための手段と、ここにおいて、前記シンタックス要素が、色空間変換を使用して前記コーディングユニットが符号化されたかどうかを示す、
前記シンタックス要素の値が、色空間変換を使用して前記コーディングユニットが符号化されたことを示すかどうかを決定するための手段と、
前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、前記コーディングユニットを復号することにおいて色空間逆変換プロセスを適用するための手段とを備えるビデオ復号装置。
[C26]
前記コーディングユニットがイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、前記シンタックス要素が、前記IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる、C25に記載のビデオ復号装置。
[C27]
前記コーディングユニットの変換ユニット中に非0係数があるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C25に記載のビデオ復号装置。
[C28]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、および、ここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C25に記載のビデオ復号装置。
[C29]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、およびここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C25に記載のビデオ復号装置。
[C30]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、前記装置は、
第2のシンタックス要素を復号するための手段と、ここにおいて、前記第2のシンタックス要素がピクチャパラメータセット(PPS)に関連し、ここにおいて、前記第2のシンタックス要素が、前記PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示す、
前記第2のシンタックス要素の値が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すかどうかを決定するための手段と
をさらに備え、
ここにおいて、前記第1のシンタックス要素を復号するための前記手段は、前記第2のシンタックス要素が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、前記第1のシンタックス要素を復号するための手段を備える、C25に記載のビデオ復号装置。
[C31]
前記色空間逆変換プロセスを適用するための前記手段が、固定色空間逆変換行列を適用するための手段を備える、C25に記載のビデオ復号装置。
[C32]
実行されたとき、ビデオ復号デバイスの1つまたは複数のプロセッサに、
ビデオデータのコーディングユニットのシンタックス要素を復号することと、ここにおいて、前記シンタックス要素が、色空間変換を使用して前記コーディングユニットが符号化されたかどうかを示す、
前記シンタックス要素の値が、色空間変換を使用して前記コーディングユニットが符号化されたことを示すかどうかを決定することと、
前記シンタックス要素が、色空間変換を使用して前記コーディングユニットがコーディングされたことを示すと決定することに応答して、前記コーディングユニットを復号することにおいて色空間逆変換プロセスを適用することとを行わせる命令を備えるコンピュータ可読記憶媒体。
[C33]
前記コーディングユニットがイントラパルス符号変調(IPCM)モード以外のモードでコーディングされ、前記シンタックス要素が、前記IPCMモード以外のモードを使用するコーディングユニットについてのみシグナリングされる、C32に記載のコンピュータ可読記憶媒体。
[C34]
前記コーディングユニットの変換ユニット中に非0係数があるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C32に記載のコンピュータ可読記憶媒体。
[C35]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、およびここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C32に記載のコンピュータ可読記憶媒体。
[C36]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素は、色空間変換を使用して前記コーディングユニットが符号化されなかったことを示し、ここにおいて、前記シンタックス要素が、前記ビデオデータを備える受信ビットストリーム中に存在せず、およびここにおいて、前記シンタックス要素を復号することが、前記シンタックス要素の前記値を推論することを備える、C32に記載のコンピュータ可読記憶媒体。
[C37]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、ここにおいて、前記実行された命令は、前記1つまたは複数のプロセッサに、
第2のシンタックス要素を復号することと、ここにおいて、前記第2のシンタックス要素がピクチャパラメータセット(PPS)に関連し、ここにおいて、前記第2のシンタックス要素が、前記PPSに対応するビデオデータのために色空間変換が有効化されるかどうかを示す、
前記第2のシンタックス要素の値が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すかどうかを決定することと
をさらに行わせ、
ここにおいて、前記1つまたは複数のプロセッサに、前記第1のシンタックス要素を復号させる前記実行された命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、前記第2のシンタックス要素が、前記PPSに対応する前記ビデオデータのために色空間変換が有効化されることを示すと決定することに応答して、前記第1のシンタックス要素を復号させる命令を備える、C32に記載のコンピュータ可読記憶媒体。
[C38]
前記1つまたは複数のプロセッサに、前記色空間逆変換プロセスを適用させる前記実行された命令は、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、固定色空間逆変換行列を適用させる命令を備える、C32に記載のコンピュータ可読記憶媒体。
[C39]
ビデオデータを符号化する方法であって、
コーディングユニットのために色空間変換を使用すべきかどうかを決定することと、
前記コーディングユニットのために色空間変換を使用することを決定することに応答して、色空間変換の前記使用を示すように前記コーディングユニットのシンタックス要素の値を設定することと、
前記コーディングユニットを符号化することにおいて色空間変換プロセスを適用することと
を備える、方法。
[C40]
前記シンタックス要素が1ビットフラグを備える、C39に記載の方法。
[C41]
イントラパルス符号変調(IPCM)モード以外のモードを使用して前記コーディングユニットがコーディングされるとき、前記シンタックス要素がシグナリングされる、C39に記載の方法。
[C42]
前記コーディングユニットの変換ユニット中に非0係数があるときのみ、前記シンタックス要素がシグナリングされる、C39に記載の方法。
[C43]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素がシグナリングされない、C39に記載の方法。
[C44]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素がシグナリングされない、C39に記載の方法。
[C45]
前記シンタックス要素についての1の値は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C39に記載の方法。
[C46]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、
ピクチャパラメータセットのために色空間変換を使用すべきかどうかを決定することと、
前記ピクチャパラメータセットのために色空間変換を使用することを決定することに応答して、第2のシンタックス要素の値を設定することと、ここにおいて、前記第2のシンタックス要素が前記ピクチャパラメータセットに関連し、およびここにおいて、前記第2のシンタックス要素が、前記ピクチャパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すように設定される、
前記ピクチャパラメータセットの前記ビデオデータに色空間変換プロセスを適用することと
をさらに備える、C39に記載の方法。
[C47]
前記色空間変換プロセスを適用することが、色空間変換行列を適用することを備える、C39に記載の方法。
[C48]
前記色空間変換行列がYCoCg行列である、C47に記載の方法。
[C49]
前記色空間変換行列がYCoCg−R行列である、C47に記載の方法。
[C50]
前記コーディングユニットのために色空間変換を使用することを決定することに応答して、
前記ビデオデータに色空間変換プロセスを適用することの前に、1つまたは複数の成分の値を使用して残差ブロックを生成することと、
前記ビデオデータの前記残差ブロックに前記色空間変換プロセスを適用することとをさらに備える、C39に記載の方法。
[C51]
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備えるビデオ符号化デバイスであって、前記1つまたは複数のプロセッサは、
コーディングユニットのために色空間変換を使用すべきかどうかを決定することと、
前記コーディングユニットのために色空間変換を使用することを決定することに応答して、色空間変換の前記使用を示すように前記コーディングユニットのシンタックス要素の値を設定することと、
前記コーディングユニットを符号化することにおいて色空間変換プロセスを適用することと
を行うように構成された、ビデオ符号化デバイス。
[C52]
前記シンタックス要素が1ビットフラグを備える、C51に記載のビデオ符号化デバイス。
[C53]
イントラパルス符号変調(IPCM)モード以外のモードを使用して前記コーディングユニットがコーディングされるとき、前記シンタックス要素がシグナリングされる、C51に記載のビデオ符号化デバイス。
[C54]
前記コーディングユニットの変換ユニット中に非0係数があるときのみ、前記シンタックス要素がシグナリングされる、C51に記載のビデオ符号化デバイス。
[C55]
前記コーディングユニットがイントラコーディングされるとき、および前記コーディングユニット内の予測ユニットのルーマ予測モードとクロマ予測モードとが異なるとき、前記シンタックス要素がシグナリングされない、C51に記載のビデオ符号化デバイス。
[C56]
前記コーディングユニットがパレットモードでコーディングされるとき、前記シンタックス要素がシグナリングされない、C51に記載のビデオ符号化デバイス。
[C57]
前記シンタックス要素についての1の値は、色空間変換を使用して前記コーディングユニットが符号化されたことを示す、C51に記載のビデオ符号化デバイス。
[C58]
前記シンタックス要素が第1のシンタックス要素であり、前記第1のシンタックス要素が前記コーディングユニットに関連し、ここにおいて、前記1つまたは複数のプロセッサは、
ピクチャパラメータセットのために色空間変換を使用すべきかどうかを決定することと、
前記ピクチャパラメータセットのために色空間変換を使用することを決定することに応答して、第2のシンタックス要素の値を設定することと、ここにおいて、前記第2のシンタックス要素が前記ピクチャパラメータセットに関連し、およびここにおいて、前記第2のシンタックス要素が、前記ピクチャパラメータセットに対応するビデオデータのために色空間変換が有効化されることを示すように設定される、
前記ピクチャパラメータセットの前記ビデオデータに色空間変換プロセスを適用することと
を行うようにさらに構成される、C51に記載のビデオ符号化デバイス。
[C59]
前記1つまたは複数のプロセッサが前記色空間変換プロセスを適用するように構成されることは、前記1つまたは複数のプロセッサが色空間変換行列を適用するように構成されることを備える、C51に記載のビデオ符号化デバイス。
[C60]
前記色空間変換行列がYCoCg行列である、C59に記載のビデオ符号化デバイス。
[C61]
前記色空間変換行列がYCoCg−R行列である、C59に記載のビデオ符号化デバイス。
[C62]
前記1つまたは複数のプロセッサが、前記コーディングユニットのために色空間変換を使用することを決定することに応答して、
前記ビデオデータに色空間変換プロセスを適用することの前に、1つまたは複数の成分の値を使用して残差ブロックを生成することと、
前記ビデオデータの前記残差ブロックに前記色空間変換プロセスを適用することと
を行うようにさらに構成される、C51に記載のビデオ符号化デバイス。