(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】ビデオコーディングにおけるクロマデルタ量子化パラメータ
(51)【国際特許分類】
H04N 19/70 20140101AFI20241021BHJP
H04N 19/126 20140101ALI20241021BHJP
H04N 19/176 20140101ALI20241021BHJP
H04N 19/186 20140101ALI20241021BHJP
【FI】
H04N19/70
H04N19/126
H04N19/176
H04N19/186
(21)【出願番号】P 2021576338
(86)(22)【出願日】2020-06-26
(86)【国際出願番号】 US2020039823
(87)【国際公開番号】W WO2020264297
(87)【国際公開日】2020-12-30
【審査請求日】2023-05-26
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-06-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ハン、ユ
(72)【発明者】
【氏名】ファン・デル・オーウェラ、ゲールト
(72)【発明者】
【氏名】コバン、ムハンメド・ゼイド
(72)【発明者】
【氏名】チェン、ウェイ-ジュン
(72)【発明者】
【氏名】チャオ、ユン-シュアン
(72)【発明者】
【氏名】ナルシー、アリカン
(72)【発明者】
【氏名】カルチェビチ、マルタ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-500943(JP,A)
【文献】国際公開第2018/013706(WO,A1)
【文献】特表2019-525585(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
符号化ビデオデータのビットストリームを復号する方法であって、ピクチャが、少なくとも1つのコーディングツリーユニット(CTU)のルーマ成分と前記少なくとも1つのCTUのクロマ成分が同じ区分を有するように、単一ツリー構造を使用してコーディングユニットを備える前記少なくとも1つのCTUに区分され、前記方法が、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、
前記ビットストリーム中に含まれる変換ユニットシンタックスの一部として、前記コーディングユニットの前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
前記ビットストリーム中に含まれる前記変換ユニットシンタックスの一部として、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、ここにおいて、前記第2のシンタックスは、前記第1のシンタックスとは異なる、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化することと、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化することと、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することと
、
前記コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記第2のクロマ成分のための第2のクロマデルタQP値を示す第3のシンタックスを受信することと、
前記第2の予測されたクロマQPと前記第2のクロマデルタQP値とに基づいて前記コーディングユニットの前記第2のクロマ成分のための第2のQP値を決定することと、
前記第2のクロマ成分の前記第2のQP値に基づいて前記コーディングユニットのクロマ変換係数の第2のブロックを逆量子化することと、
クロマ変換係数の前記逆量子化された第2のブロックに基づいて前記コーディングユニットを復号することと
を備える、方法。
【請求項2】
前記第1のシンタックスが、前記ルーマデルタQP値の絶対値を示すシンタックス要素と、前記ルーマデルタQP値の符号を示すシンタックス要素とを含み、
前記第2のシンタックスが、前記クロマデルタQP値の絶対値を示すシンタックス要素と、前記クロマデルタQP値の符号を示すシンタックス要素とを含む、請求項1に記載の方法。
【請求項3】
ルーマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリーム中で、前記ルーマ成分の前記ルーマデルタQP値を示す前記第1のシンタックスを受信することと、
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリーム中で、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを受信することをさらに備える、請求項1に記載の方法。
【請求項4】
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することが、
ルーマ残差ブロックを決定するために、ルーマ変換係数の前記逆量子化されたブロックを逆変換することと、
クロマ残差ブロックを決定するために、クロマ変換係数の前記逆量子化されたブロックを逆変換することと、
ルーマ予測ブロックを決定することと、
クロマ予測ブロックを決定することと、
前記コーディングユニットの再構築ルーマブロックを決定するために、前記ルーマ予測ブロックに前記ルーマ残差ブロックを加算することと、
前記コーディングユニットの再構築クロマブロックを決定するために、前記クロマ予測ブロックに前記クロマ残差ブロックを加算することとをさらに備える、請求項1に記載の方法。
【請求項5】
ビデオデータを符号化する方法であって、ピクチャが、少なくとも1つのコーディングツリーユニット(CTU)のルーマ成分と前記少なくとも1つのCTUのクロマ成分が同じ区分を有するように、単一ツリー構造を使用してコーディングユニットを備える前記少なくとも1つのCTUに区分され、前記方法が、
前記コーディングユニットの前記ルーマ成分のための量子化パラメータ(QP)値を決定することと、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマQPを決定することと、
前記ルーマ成分の前記QP値と前記予測されたルーマQPとに基づいて、前記コーディングユニットの前記ルーマ成分のデルタQP値を決定することと、
符号化ビデオデータのビットストリームに含めるための変換ユニットシンタックスの一部として、前記コーディングユニットの前記ルーマ成分の前記デルタQP値を示す第1のシンタックスを生成することと、
前記ビデオデータの前記コーディングユニットのクロマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
前記クロマ成分の前記QP値と前記予測されたクロマQPとに基づいて、前記コーディングユニットの前記クロマ成分のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるための前記変換ユニットシンタックスの一部として、前記コーディングユニットの前記クロマ成分の前記デルタQP値を示す第2のシンタックスを生成することと、ここにおいて、前記第2のシンタックスは、前記第1のシンタックスとは異なる、
符号化ビデオデータの前記ビットストリーム中に、前記変換ユニットシンタックスの一部として前記第1のシンタックスと前記第2のシンタックスとを出力することと
、
前記コーディングユニットの第2のクロマ成分のための第2のQP値を決定することと、
前記コーディングユニットの前記第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
前記第2のクロマ成分の前記第2のQP値と前記第2の予測されたクロマQPとに基づいて、前記第2のクロマ成分のための第2のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記第2のクロマ成分のための前記第2のデルタQP値を示す第3のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第3のシンタックスを出力することと
を備える、方法。
【請求項6】
前記コーディングユニットの前記ルーマ成分の前記QP値に基づいてルーマ変換係数のブロックを量子化することと、
前記コーディングユニットの前記クロマ成分の前記QP値に基づいてクロマ変換係数のブロックを量子化することと、
符号化ビデオデータの前記ビットストリーム中に、ルーマ変換係数の前記量子化されたブロックとクロマ変換係数の前記量子化されたブロックとの値を示すシンタックスを出力することとをさらに備える、請求項
5に記載の方法。
【請求項7】
前記第1のシンタックスが、前記ルーマ
成分の前記デルタQP値の絶対値を示すシンタックス要素と、前記ルーマ
成分の前記デルタQP値の符号を示すシンタックス要素とを含み、
前記第2のシンタックスが、前記クロマ
成分の前記デルタQP値の絶対値を示すシンタックス要素と、前記クロマ
成分の前記デルタQP値の符号を示すシンタックス要素とを含む、請求項
5に記載の方法。
【請求項8】
ルーマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリームに含めるために、前記ルーマ成分の前記ルーマデルタQP値を示す前記第1のシンタックスを生成することと、
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリームに含めるために、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを生成することをさらに備える、請求項
5に記載の方法。
【請求項9】
ビデオデータを復号するためのデバイスであって、ピクチャが、少なくとも1つのコーディングツリーユニット(CTU)のルーマ成分と前記少なくとも1つのCTUのクロマ成分が同じ区分を有するように、単一ツリー構造を使用してコーディングユニットを備える前記少なくとも1つのCTUに区分され、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、
符号化ビデオデータのビットストリーム中に含まれる変換ユニットシンタックスの一部として、前記コーディングユニットの前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中に含まれる変換ユニットシンタックスの一部として、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、ここにおいて、前記第2のシンタックスは、前記第1のシンタックスとは異なる、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化することと、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化することと、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することと
、
前記コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記第2のクロマ成分のための第2のクロマデルタQP値を示す第3のシンタックスを受信することと、
前記第2の予測されたクロマQPと前記第2のクロマデルタQP値とに基づいて前記コーディングユニットの前記第2のクロマ成分のための第2のQP値を決定することと、
前記第2のクロマ成分の前記第2のQP値に基づいて前記コーディングユニットのクロマ変換係数の第2のブロックを逆量子化することと、
クロマ変換係数の前記逆量子化された第2のブロックに基づいて前記コーディングユニットを復号することと
を行うように構成された、デバイス。
【請求項10】
前記デバイスが、ビデオデータの前記復号されたブロックを表示するように構成されたディスプレイを含むワイヤレス通信デバイスを備える、請求項
9に記載のデバイス。
【請求項11】
前記ワイヤレス通信デバイスが、ワイヤレス通信規格に従って、前記ビデオデータの符号化表現を備える信号を復調するように構成された受信機を含む電話ハンドセットを備える、請求項
10に記載のデバイス。
【請求項12】
ビデオデータを符号化するためのデバイスであって、ピクチャが、少なくとも1つのコーディングツリーユニット(CTU)のルーマ成分と前記少なくとも1つのCTUのクロマ成分が同じ区分を有するように、単一ツリー構造を使用してコーディングユニットを備える前記少なくとも1つのCTUに区分され、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
前記コーディングユニットの前記ルーマ成分のための量子化パラメータ(QP)値を決定することと、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマQPを決定することと、
前記ルーマ成分の前記QP値と前記予測されたルーマQPとに基づいて、前記コーディングユニットの前記ルーマ成分のデルタQP値を決定することと、
符号化ビデオデータのビットストリームに含めるための変換ユニットシンタックスの一部として、前記コーディングユニットの前記ルーマ成分の前記デルタQP値を示す第1のシンタックスを生成することと、
前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
前記クロマ成分の前記QP値と前記予測されたクロマQPとに基づいて、前記コーディングユニットの前記クロマ成分のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるための前記変換ユニットシンタックスの一部として、前記コーディングユニットの前記クロマ成分の前記デルタQP値を示す第2のシンタックスを生成することと、ここにおいて、前記第2のシンタックスは、前記第1のシンタックスとは異なる、
符号化ビデオデータの前記ビットストリーム中に、前記変換ユニットシンタックスの一部として前記第1のシンタックスと前記第2のシンタックスとを出力することと
、
前記コーディングユニットの第2のクロマ成分のための第2のQP値を決定することと、
前記コーディングユニットの前記第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
前記第2のクロマ成分の前記第2のQP値と前記第2の予測されたクロマQPとに基づいて、前記第2のクロマ成分のための第2のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記第2のクロマ成分のための前記第2のデルタQP値を示す第3のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第3のシンタックスを出力することと
を行うように構成された、デバイス。
【請求項13】
前記ビデオデータをキャプチャするように構成されたカメラをさらに備える、請求項
12に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、各々の内容全体が参照により組み込まれる、2019年6月28日に出願された米国仮出願第62/868,771号の利益を主張する、2020年6月25日に出願された米国特許出願第16/912,232号の優先権を主張する。
【0002】
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【0003】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタルレコーディングデバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲーム機、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスの中に組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実施することによって、より効率的にデジタルビデオ情報を送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオピクチャまたはビデオピクチャの一部分)が、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【発明の概要】
【0005】
[0005]本開示では、量子化プロセスに関係する技法について説明し、より詳細には、クロマデルタ量子化パラメータ(QP)を使用して、クロマQPを決定するための値を決定し、シグナリングすることに関係する技法について説明する。ビデオデコーダは、前に復号されたブロックのために使用されるQP値に基づいて、およびビットストリーム中でどんな明示的シンタックス要素も受信することなしに、ブロックのための予測されたQP値を決定するように構成され得る。ビデオデコーダは、次いで、ブロックの予測されたQP値と実際のQP値との間の差を表すデルタQP値を受信することができる。デルタQP値は、典型的には実際のQP値と比較して小さいので、デルタQP値は、実際のQP値と比較してより比較的少数のビットでシグナリングされ得る。量子化パラメータ、またはQPは、変換係数レベルをスケーリングするために復号プロセスによって使用される変数である。QPは、係数レベルに適用される量子化の量を効果的に表す。
【0006】
[0006]一例によれば、符号化ビデオデータのビットストリームを復号する方法は、コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、符号化ビデオデータのビットストリーム中で、コーディングユニットのクロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定することと、ルーマ成分のQP値に基づいてコーディングユニットのルーマ変換係数のブロックを逆量子化することと、クロマ成分のQP値に基づいてコーディングユニットのクロマ変換係数のブロックを逆量子化することと、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号することとを含む。
【0007】
[0007]別の例によれば、ビデオデータを符号化する方法は、ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定することと、コーディングユニットのルーマ成分のための予測されたルーマQPを決定することと、ルーマ成分のQP値と予測されたルーマQPとに基づいて、コーディングユニットのルーマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのルーマ成分のデルタQP値を示す第1のシンタックスを生成することと、ビデオデータのコーディングユニットのクロマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、クロマ成分のQP値と予測されたクロマQPとに基づいて、コーディングユニットのクロマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのクロマ成分のデルタQP値を示す第2のシンタックスを生成することと、符号化ビデオデータのビットストリーム中に、第1のシンタックスと第2のシンタックスとを出力することとを含む。
【0008】
[0008]別の例によれば、ビデオデータを復号するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、符号化ビデオデータのビットストリーム中で、コーディングユニットのクロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定することと、ルーマ成分のQP値に基づいてコーディングユニットのルーマ変換係数のブロックを逆量子化することと、クロマ成分のQP値に基づいてコーディングユニットのクロマ変換係数のブロックを逆量子化することと、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号することとを行うように構成される。
【0009】
[0009]別の例によれば、ビデオデータを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定することと、コーディングユニットのルーマ成分のための予測されたルーマQPを決定することと、ルーマ成分のQP値と予測されたルーマQPとに基づいて、コーディングユニットのルーマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのルーマ成分のデルタQP値を示す第1のシンタックスを生成することと、ビデオデータのコーディングユニットのクロマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、クロマ成分のQP値と予測されたクロマQPとに基づいて、コーディングユニットのクロマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのクロマ成分のデルタQP値を示す第2のシンタックスを生成することと、符号化ビデオデータのビットストリーム中に、第1のシンタックスと第2のシンタックスとを出力することとを行うように構成される。
【0010】
[0010]別の例によれば、符号化ビデオデータのビットストリームを復号するための装置は、コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定するための手段と、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信するための手段と、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定するための手段と、コーディングユニットのクロマ成分のための予測されたクロマQPを決定するための手段と、符号化ビデオデータのビットストリーム中で、コーディングユニットのクロマ成分のクロマデルタQP値を示す第2のシンタックスを受信するための手段と、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定するための手段と、ルーマ成分のQP値に基づいてコーディングユニットのルーマ変換係数のブロックを逆量子化するための手段と、クロマ成分のQP値に基づいてコーディングユニットのクロマ変換係数のブロックを逆量子化するための手段と、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号するための手段とを含む。
【0011】
[0011]別の例によれば、コンピュータ可読記憶媒体は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、符号化ビデオデータのビットストリーム中で、コーディングユニットのクロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定することと、ルーマ成分のQP値に基づいてコーディングユニットのルーマ変換係数のブロックを逆量子化することと、クロマ成分のQP値に基づいてコーディングユニットのクロマ変換係数のブロックを逆量子化することと、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号することとを行わせる命令を記憶する。
【0012】
[0012]別の例によれば、ビデオデータを符号化するための装置は、ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定するための手段と、コーディングユニットのルーマ成分のための予測されたルーマQPを決定するための手段と、ルーマ成分のQP値と予測されたルーマQPとに基づいて、コーディングユニットのルーマ成分のデルタQP値を決定するための手段と、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのルーマ成分のデルタQP値を示す第1のシンタックスを生成するための手段と、ビデオデータのコーディングユニットのクロマ成分のQP値を決定するための手段と、コーディングユニットのクロマ成分のための予測されたクロマQPを決定するための手段と、クロマ成分のQP値と予測されたクロマQPとに基づいて、コーディングユニットのクロマ成分のデルタQP値を決定するための手段と、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのクロマ成分のデルタQP値を示す第2のシンタックスを生成するための手段と、符号化ビデオデータのビットストリーム中に、第1のシンタックスと第2のシンタックスとを出力するための手段とを含む。
【0013】
[0013]命令を記憶するコンピュータ可読記憶媒体であって、命令が、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定することと、コーディングユニットのルーマ成分のための予測されたルーマQPを決定することと、ルーマ成分のQP値と予測されたルーマQPとに基づいて、コーディングユニットのルーマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのルーマ成分のデルタQP値を示す第1のシンタックスを生成することと、ビデオデータのコーディングユニットのクロマ成分のQP値を決定することと、コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、クロマ成分のQP値と予測されたクロマQPとに基づいて、コーディングユニットのクロマ成分のデルタQP値を決定することと、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのクロマ成分のデルタQP値を示す第2のシンタックスを生成することと、符号化ビデオデータのビットストリーム中に、第1のシンタックスと第2のシンタックスとを出力することとことを行わせる、コンピュータ可読記憶媒体。
【0014】
[0014]1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0015】
【
図1】[0015]本開示の技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図。
【
図2A】[0016]例示的なクワッドツリーバイナリツリー(QTBT)構造を示す概念図。
【
図2B】対応するコーディングツリーユニット(CTU)を示す概念図。
【
図3】[0017]デュアルツリー区分をサポートするビデオデータのデルタQP値を決定するための例示的なプロセスを示す図。
【
図4】[0018]デュアルツリー区分をサポートするビデオデータのクロマQPオフセット値を復号するための例示的なプロセスを示す図。
【
図5】[0019]例示的なビデオコーディングプロセスを示す図。
【
図6】[0020]別個のツリー中に対応するルーマCUをもつクロマCUの一例を示す図。
【
図7】[0021]本開示の技法を実施し得る例示的なビデオエンコーダを示すブロック図。
【
図8】[0022]本開示の技法を実施し得る例示的なビデオデコーダを示すブロック図。
【
図9】[0023]例示的なビデオ符号化プロセスを示すフローチャート。
【
図10】[0024]例示的なビデオ復号プロセスを示すフローチャート。
【
図11】[0025]例示的なビデオ符号化プロセスを示すフローチャート。
【
図12】[0026]例示的なビデオ復号プロセスを示すフローチャート。
【発明を実施するための形態】
【0016】
[0027]ビデオコーディング(たとえば、ビデオ符号化および/またはビデオ復号)は、一般に、同じピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(たとえば、イントラ予測)または異なるピクチャ中のビデオデータのすでにコーディングされたブロックからビデオデータのブロックを予測すること(たとえば、インター予測)のいずれかを伴う。いくつかの事例では、ビデオエンコーダはまた、予測ブロックを元のブロックと比較することによって残差データを計算する。したがって、残差データは、予測ブロックと元のブロックとの間の差分を表す。残差データをシグナリングするために必要とされるビット数を低減するために、ビデオエンコーダは、残差データを変換および量子化し、変換および量子化された残差データを符号化ビットストリーム中でシグナリングする。変換および量子化プロセスによって達成される圧縮は、変換および量子化プロセスが復号ビデオデータにひずみを導入し得ることを意味する、ロッシーであり得る。
【0017】
[0028]ビデオデコーダは、予測ブロック単独でよりもぴったり元のビデオブロックに一致する再構築ビデオブロックを生成するために、残差データを復号し、予測ブロックに加算する。残差データの変換および量子化によって導入されるロスにより、第1の再構築ブロックは、ひずみまたはアーティファクトを有し得る。アーティファクトまたはひずみの1つの通例のタイプはブロッキネスと呼ばれ、ここで、ビデオデータをコーディングするために使用されるブロックの境界が視認できる。
【0018】
[0029]復号ビデオの品質をさらに改善するために、ビデオデコーダは、再構築ビデオブロックに対して1つまたは複数のフィルタ処理演算を実施することができる。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理、サンプル適応オフセット(SAO)フィルタ処理、および適応ループフィルタ処理(ALF)を含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはパラメータが符号化ビデオビットストリーム中で明示的にシグナリングされる必要なしにビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
【0019】
[0030]本開示では、量子化プロセスに関係する技法について説明し、より詳細には、クロマデルタ量子化パラメータ(QP)を使用して、クロマQPを決定するための値を決定し、シグナリングすることに関係する技法について説明する。ビデオデコーダは、前に復号されたブロックのために使用されるQP値に基づいて、およびビットストリーム中でどんな明示的シンタックス要素も受信することなしに、ブロックのための予測されたQP値を決定するように構成され得る。ビデオデコーダは、次いで、ブロックの予測されたQP値と実際のQP値との間の差を表すデルタQP値を受信することができる。デルタQP値は、典型的には実際のQP値と比較して小さいので、デルタQP値は、実際のQP値と比較してより比較的少数のビットでシグナリングされ得る。
【0020】
[0031]量子化パラメータ、またはQPは、変換係数レベルをスケーリングするために復号プロセスによって使用される変数である。QPは、係数レベルに適用される量子化の量を効果的に表す。符号化ビデオデータのビットストリーム中で、クロマ成分のクロマデルタQP値を示すシンタックスを受信するように、および予測されたクロマQPとクロマデルタQP値とに基づいてクロマ成分のQP値を決定するようにビデオデコーダを構成することによって、本開示の技法は、クロマQP値がルーマQP値に依存しないで調整されることを可能にすることによっていくつかのコーディングシナリオにおいて達成される、改善されたレートひずみトレードオフの利点を達成し得る。
【0021】
[0032]説明される技法は、高効率ビデオコーディング(HEVC)、汎用ビデオコーディング(VVC)など、既存のビデオコーデックのいずれかとともに使用されるか、または将来のビデオコーディング規格における効率的なコーディングツールになり得る。本開示の技法について、HEVCと、JEMと、VVCと関して説明されるが、本明細書で説明される技法は、どんな特定の規格にも限定されない。
【0022】
[0033]
図1は、本開示の技法を実施し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とする。概して、ビデオデータは、ビデオを処理するための何らかのデータを含む。したがって、ビデオデータは、生の符号化されていないビデオ、符号化されたビデオ、復号された(たとえば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
【0023】
[0034]
図1に示されているように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき符号化ビデオデータを提供するソースデバイス102を含む。詳細には、ソースデバイス102は、コンピュータ可読媒体110を介してビデオデータを宛先デバイス116に提供する。ソースデバイス102と宛先デバイス116とは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102と宛先デバイス116とは、ワイヤレス通信のために装備され得、したがって、ワイヤレス通信デバイスと呼ばれることがある。
【0024】
[0035]
図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、宛先デバイス116のビデオデコーダ300とは、本明細書で説明されるクロマデルタQPコーディングのための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの一例を表し、宛先デバイス116はビデオ復号デバイスの一例を表す。他の例では、ソースデバイスと宛先デバイスとは、他の構成要素または配置を含み得る。たとえば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0025】
[0036]
図1に示されているシステム100は一例にすぎない。概して、どんなデジタルビデオ符号化および/または復号デバイスも、本明細書で説明されるクロマデルタQPコーディングのための技法を実施し得る。ソースデバイス102と宛先デバイス116とは、ソースデバイス102が宛先デバイス116への送信のためにコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。本開示は、「コーディング」デバイスを、データのコーディング(符号化および/または復号)を実施するデバイスとして参照する。したがって、ビデオエンコーダ200とビデオデコーダ300とは、コーディングデバイス、特に、それぞれビデオエンコーダとビデオデコーダとの例を表す。いくつかの例では、ソースデバイス102と宛先デバイス116とは、ソースデバイス102と宛先デバイス116との各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス102と宛先デバイス116との間の一方向または双方向ビデオ送信をサポートし得る。
【0026】
[0037]概して、ビデオソース104は、ビデオデータ(すなわち、生の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためにデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、以前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとして、コンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化ビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して符号化ビデオデータをコンピュータ可読媒体110上に出力し得る。
【0027】
[0038]ソースデバイス102のメモリ106と、宛先デバイス116のメモリ120とは、汎用メモリを表す。いくつかの例では、メモリ106、120は、生のビデオデータ、たとえば、ビデオソース104からの生のビデオ、およびビデオデコーダ300からの生の復号ビデオデータを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200とビデオデコーダ300とによって実行可能なソフトウェア命令を記憶し得る。メモリ106とメモリ120とは、この例ではビデオエンコーダ200とビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200とビデオデコーダ300とは、機能的に同様または等価な目的で内部メモリをも含み得ることを理解されたい。さらに、メモリ106、120は、たとえば、ビデオエンコーダ200から出力され、ビデオデコーダ300へ入力される、符号化ビデオデータを記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、生の復号および/または符号化ビデオデータを記憶するために、1つまたは複数のビデオバッファとして割り振られ得る。
【0028】
[0039]コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化ビデオデータを移送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化ビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化ビデオデータを含む送信信号を変調し得、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0029】
[0040]いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化データを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
【0030】
[0041]いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化ビデオデータを記憶し得るファイルサーバ114または別の中間記憶デバイスに符号化ビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114から、記憶されたビデオデータにアクセスし得る。
【0031】
[0042]ファイルサーバ114は、符号化ビデオデータを記憶し、符号化ビデオデータを宛先デバイス116に送信することができる任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイト用の)ウェブサーバ、(ファイル転送プロトコル(FTP)または単方向トランスポート上ファイル配信(FLUTE:File Delivery over Unidirectional Transport)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(MBMS)または拡張MBMS(eMBMS)サーバ、ならびに/あるいはネットワーク接続ストレージ(NAS)デバイスを表し得る。ファイルサーバ114は、追加または代替として、動的適応ストリーミングオーバーHTTP(DASH)、HTTPライブストリーミング(HLS)、リアルタイムストリーミングプロトコル(RTSP)、HTTP動的ストリーミングなど、1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
【0032】
[0043]宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通してファイルサーバ114から符号化ビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、デジタル加入者線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すかまたは受信するための上記で論じられた様々なプロトコルのいずれか1つまたは複数、あるいはメディアデータを取り出すための他のそのようなプロトコルに従って動作するように構成され得る。
【0033】
[0044]出力インターフェース108と入力インターフェース122とは、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108と入力インターフェース122とがワイヤレス構成要素を備える例では、出力インターフェース108と入力インターフェース122とは、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5Gなど、セルラー通信規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108と入力インターフェース122とは、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格など、他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属する機能を実施するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属する機能を実施するためのSoCデバイスを含み得る。
【0034】
[0045]本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
【0035】
[0046]宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から符号化ビデオビットストリームを受信する。符号化ビデオビットストリームは、ビデオブロックまたは他のコード化ユニット(たとえば、スライス、ピクチャ、ピクチャのグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号ビデオデータの復号ピクチャをユーザに表示する。ディスプレイデバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
【0036】
[0047]
図1には示されていないが、いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームをハンドリングするために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0037】
[0048]ビデオエンコーダ200とビデオデコーダ300とは各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ200とビデオデコーダ300との各々は、1つもしくは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話機などのワイヤレス通信デバイスを備え得る。
【0038】
[0049]ビデオエンコーダ200とビデオデコーダ300とは、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265、またはマルチビューおよび/もしくはスケーラブルビデオコーディング拡張などのそれらの拡張など、ビデオコーディング規格に従って動作し得る。代替として、ビデオエンコーダ200とビデオデコーダ300とは、汎用ビデオコーディング(VVC)とも呼ばれるITU-T H.266など、他のプロプライエタリ規格または業界規格に従って動作し得る。VVC規格のドラフトは、Brossら、「Versatile Video Coding (Draft 5)」、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのジョイントビデオエキスパーツチーム(JVET)、第14回会合:ジュネーブ、CH、2019年3月19~27日、JVET-N1001-v9(以下では「VVCドラフト5」)に記載されている。VVC規格の別のドラフトは、Brossら、「Versatile Video Coding (Draft 9)」、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのジョイントビデオエキスパーツチーム(JVET)、第18回会合:遠隔会議による、2020年4月15~24日、JVET-R2001-v11(以下では「VVCドラフト9」)に記載されている。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
【0039】
[0050]概して、ビデオエンコーダ200とビデオデコーダ300とは、ピクチャのブロックベースのコーディングを実施し得る。「ブロック」という用語は、処理されるべき(たとえば、符号化されるべき、復号されるべき、あるいは符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を一般に意味する。たとえば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200とビデオデコーダ300とは、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマット付きデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替として、前処理および後処理ユニット(図示されず)が、これらのコンバージョンを実施し得る。
【0040】
[0051]本開示では、概して、ピクチャのコーディング(たとえば、符号化および復号)を、ピクチャのデータを符号化または復号するプロセスを含むように言及し得る。同様に、本開示では、ピクチャのブロックのコーディングを、ブロックのデータを符号化または復号するプロセス、たとえば、予測および/または残差コーディングを含むように言及し得る。符号化ビデオビットストリームは、概して、コーディング決定(たとえば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素の一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、概して、ピクチャまたはブロックを形成しているシンタックス要素の値をコーディングすることとして理解されたい。
【0041】
[0052]HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを定義する。HEVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、クワッドツリー構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4個のいずれかの子ノードを有する。子ノードなしのノードは「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPUならびに/あるいは1つまたは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。たとえば、HEVCでは、残差クワッドツリー(RQT)は、TUの区分を表す。HEVCでは、PUはインター予測データを表すが、TUは残差データを表す。イントラ予測されるCUは、イントラモードインジケーションなどのイントラ予測情報を含む。
【0042】
[0053]別の例として、ビデオエンコーダ200とビデオデコーダ300とは、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、クワッドツリーバイナリツリー(QTBT)構造またはマルチタイプツリー(MTT)構造など、ツリー構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。QTBT構造は、クワッドツリー区分に従って区分される第1のレベル、およびバイナリツリー区分に従って区分される第2のレベルという、2つのレベルを含む。QTBT構造のルートノードはCTUに対応する。バイナリツリーのリーフノードはコーディングユニット(CU)に対応する。
【0043】
[0054]MTT区分構造では、ブロックは、クワッドツリー(QT)区分と、バイナリツリー(BT)区分と、1つまたは複数のタイプのトリプルツリー(TT)(ターナリツリー(TT)とも呼ばれる)区分とを使用して区分され得る。トリプルまたはターナリツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルまたはターナリツリー区分は、中心を通して元のブロックを分割することなしにブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は、対称的または非対称的であり得る。
【0044】
[0055]いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つ以上のQTBTまたはMTT構造を使用し得る。
【0045】
[0056]ビデオエンコーダ200とビデオデコーダ300とは、HEVCに従うクワッドツリー区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。説明の目的で、本開示の技法の説明はQTBT区分に関して提示される。しかしながら、本開示の技法は、クワッドツリー区分、または同様に他のタイプの区分を使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
【0046】
[0057]いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、あるいはモノクロームピクチャ、またはサンプルをコーディングするために使用される3つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのCTBを含む。CTBは、CTBへの成分の分割が区分になるように、何らかの値のNに対して、サンプルのN×Nブロックであり得る。成分は、ピクチャを4:2:0、4:2:2、または4:4:4色フォーマットに構成する3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからのアレイまたは単一のサンプル、あるいはピクチャをモノクロームフォーマットに構成するアレイまたはアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分割が区分になるように、何らかの値のMとNとに対して、サンプルのM×Nブロックである。
【0047】
[0058]ブロック(たとえば、CTUまたはCU)は、ピクチャ中で様々な仕方でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を参照し得る。タイルは、ピクチャ中の特定のタイル列と特定のタイル行との内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を参照する。タイル行は、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を参照する。
【0048】
[0059]いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。
【0049】
[0060]ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
【0050】
[0061]本開示では、たとえば、16×16サンプルまたは16個ずつの16個のサンプルなど、垂直寸法と水平寸法とに関して、(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を参照するために「N×N」と「N個ずつのN個の」とを互換的に使用し得る。一般に、16×16CUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×N CUは、一般に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。CU中のサンプルは、行と列とに配置され得る。さらに、CUは、必ずしも、水平方向において垂直方向と同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
【0051】
[0062]ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUのためにビデオデータを符号化する。予測情報は、CUについて予測ブロックを形成するためにCUがどのように予測されるべきかを示す。残差情報は、概して、符号化より前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
【0052】
[0063]CUを予測するために、ビデオエンコーダ200は、概して、インター予測またはイントラ予測を通してCUについて予測ブロックを形成し得る。インター予測は、概して、以前にコーディングされたピクチャのデータからCUを予測することを指し、一方、イントラ予測は、概して、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、概して、たとえば、CUと参照ブロックとの間の差分に関して、CUにぴったり一致する参照ブロックを識別するために動き探索を実施し得る。ビデオエンコーダ200は、参照ブロックが現在CUにぴったり一致するかどうかを決定するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在CUを予測し得る。
【0053】
[0064]VVCのいくつかの例はまた、インター予測モードと考えられ得る、アフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つ以上の動きベクトルを決定し得る。
【0054】
[0065]イントラ予測を実施するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。VVCのいくつかの例は、様々な方向性モード、ならびに平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。概して、ビデオエンコーダ200は、現在ブロック(たとえば、CUのブロック)のサンプルをそれから予測すべき、現在ブロックに対する近隣サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、概して、現在ブロックと同じピクチャ中の現在ブロックの上方、上方および左側、または左側にあり得る。
【0055】
[0066]ビデオエンコーダ200は、現在ブロックについて予測モードを表すデータを符号化する。たとえば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードの動き情報を表すデータを符号化し得る。たとえば、単方向または双方向インター予測では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードの動きベクトルを符号化するために同様のモードを使用し得る。
【0056】
[0067]ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域中に変換データを生成するために、残差ブロックに1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、モード依存非分離可能2次変換(MDNSST)、信号依存変換、カルーネンレーベ変換(KLT)など、第1の変換に続いて2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。
【0057】
[0068]上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実施し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減させるために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスを実施することによって、ビデオエンコーダ200は、変換係数の一部または全部に関連するビット深度を低減し得る。たとえば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に丸めることがあり、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビット単位右シフトを実施し得る。
【0058】
[0069]量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがって、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(したがって、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査してシリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化ビデオデータに関連付けられたメタデータを記述するシンタックス要素の値をエントロピー符号化し得る。
【0059】
[0070]CABACを実施するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの近隣値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0060】
[0071]ビデオエンコーダ200は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオパラメータセット(VPS)などの他のシンタックスデータ中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
【0061】
[0072]このようにして、ビデオエンコーダ200は、符号化ビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックの予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化ビデオデータを復号し得る。
【0062】
[0073]概して、ビデオデコーダ300は、ビットストリームの符号化ビデオデータを復号するために、ビデオエンコーダ200によって実施されたものの逆プロセスを実施する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素の値を復号し得る。シンタックス要素は、CTUのCUを定義するために、ピクチャをCTUに区分するための区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)についての予測および残差情報をさらに定義し得る。
【0063】
[0074]残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックの残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックの予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関係する予測情報(たとえば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、(サンプルごとに)予測ブロックと残差ブロックとを組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実施することなど、追加の処理を実施し得る。
【0064】
[0075]コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、コーディングユニットのクロマ成分のクロマデルタQP値を示すシンタックスをシグナリリングすることと、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定することとによって、ビデオエンコーダ200とビデオデコーダ300とは、望ましくない量の追加のシグナリリングオーバーヘッドを生じない様式で、クロマQP値がルーマQP値に依存しないでフレキシブルに調整されることを可能にし得る。
【0065】
[0076]本開示では、概して、シンタックス要素などのある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータの値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリーム中でシンタックス要素の値をシグナリングし得る。概して、シグナリングは、ビットストリーム中に値を生成することを指す。上述されたように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116に移送するか、または、宛先デバイス116による後の取出しのためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るように、非リアルタイムでビットストリームを宛先デバイス116に移送し得る。
【0066】
[0077]
図2Aと
図2Bとは、例示的なクワッドツリーバイナリツリー(QTBT)構造130と、対応するコーディングツリーユニット(CTU)132とを示す概念図である。実線はクワッドツリースプリッティングを表し、点線はバイナリツリースプリッティングを示す。バイナリツリーの各スプリット(すなわち、非リーフ)ノードでは、どのスプリッティングタイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、ここで、この例では、0は水平スプリッティングを示し、1は垂直スプリッティングを示す。クワッドツリースプリッティングでは、クワッドツリーノードが、ブロックを、等しいサイズをもつ4つのサブブロックに水平および垂直にスプリットするので、スプリッティングタイプを示す必要がない。したがって、QTBT構造130の領域ツリーレベル(すなわち、実線)についての(スプリッティング情報などの)シンタックス要素と、QTBT構造130の予測ツリーレベル(すなわち、破線)についての(スプリッティング情報などの)シンタックス要素とを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。QTBT構造130の端末リーフノードによって表されるCUについての、予測および変換データなどのビデオデータを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。CTUは、単一ツリー区分またはデュアルツリー区分のいずれかを用いて区分され得る。単一ツリー区分では、CTUのクロマ成分と、CTUのルーマ成分は、同じ区分構造を有する。デュアルツリー区分では、CTUのクロマ成分と、CTUのルーマ成分は、異なる区分構造を潜在的に有する。
【0067】
[0078]概して、
図2BのCTU132は、第1および第2のレベルにおいてQTBT構造130のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、(サンプル中のCTU132のサイズを表す)CTUサイズと、(最小許容クワッドツリーリーフノードサイズを表すMinQTSize)最小クワッドツリーサイズと、(最大許容バイナリツリールートノードサイズを表すMaxBTSize)最大バイナリツリーサイズと、(最大許容バイナリツリー深度を表すMaxBTDepth)最大バイナリツリー深度と、(最小許容バイナリツリーリーフノードサイズを表すMinBTSize)最小バイナリツリーサイズとを含み得る。
【0068】
[0079]CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有し得、それらの各々は、クワッドツリー区分に従って区分され得る。すなわち、第1のレベルのノードは、(子ノードを有しない)リーフノードであるか、あるいは4つの子ノードを有するかのいずれかである。QTBT構造130の例は、ブランチのために実線を有する親ノードと子ノードとを含むようなノードを表す。第1のレベルのノードが最大許容バイナリツリールートノードサイズ(MaxBTSize)よりも大きくない場合、ノードは、それぞれのバイナリツリーによってさらに区分され得る。1つのノードのバイナリツリースプリッティングは、スプリットから生じるノードが最小許容バイナリツリーリーフノードサイズ(MinBTSize)または最大許容バイナリツリー深度(MaxBTDepth)に達するまで反復され得る。QTBT構造130の例は、ブランチのために破線を有するようなノードを表す。バイナリツリーリーフノードはコーディングユニット(CU)と呼ばれ、CUは、どんなさらなる区分もない、予測(たとえば、ピクチャ内またはピクチャ間予測)ならびに変換のために使用される。上記で論じられたように、CUは「ビデオブロック」または「ブロック」と呼ばれることもある。
【0069】
[0080]QTBT区分構造の一例では、CTUサイズは、128×128(ルーマサンプルおよび2つの対応する64×64クロマサンプル)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、(幅と高さの両方について)MinBTSizeは4として設定され、MaxBTDepthは4として設定される。クワッドツリー区分は、クワッドツリーリーフノードを生成するために、最初にCTUに適用される。クワッドツリーリーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)のサイズを有し得る。クワッドツリーリーフノードが128×128である場合、リーフクワッドツリーノードは、サイズがMaxBTSize(すなわち、この例では、64×64)を超えるので、バイナリツリーによってさらにスプリットされない。他の場合、クワッドツリーリーフノードは、バイナリツリーによってさらに区分される。したがって、クワッドツリーリーフノードはまた、バイナリツリーのルートノードであり、0としてバイナリツリー深度を有する。バイナリツリー深度がMaxBTDepth(この例では4)に達したとき、さらなるスプリッティングは許可されない。MinBTSize(この例では、4)に等しい幅を有するバイナリツリーノード、それは、そのバイナリツリーノードのためにさらなる垂直スプリッティング(すなわち、幅の分割)が許可されないことを暗示する。同様に、MinBTSizeに等しい高さを有するバイナリツリーノードは、そのバイナリツリーノードのためにさらなる水平スプリッティング(すなわち、高さの分割)が許可されないことを暗示する。上述されたように、バイナリツリーのリーフノードは、CUと呼ばれ、さらなる区分なしに予測および変換に従ってさらに処理される。
【0070】
[0081]ビデオエンコーダ200とビデオデコーダ300とは、ルーマデルタQP値を処理するように構成され得る。すなわち、ビデオデコーダ300は、前に復号されたブロックのために使用されるルーマQP値に基づいて、およびビットストリーム中でどんな明示的シンタックス要素も受信することなしに、ブロックのための予測されたルーマQP値を決定するように構成され得る。ビデオデコーダ300は、次いで、ブロックの予測されたルーマQP値と実際のルーマQP値との間の差を表すルーマデルタQP値を受信することができる。
【0071】
[0082]VVCドラフト5では、デルタQPの値は、HEVCと同様の仕方で選び出される。VVCドラフト5に含まれるシンタックスは次の通りである。
【0072】
【0073】
[0083]シンタックス要素cu_qp_delta_absは、現在のコーディングユニットの量子化パラメータと、コーディングユニットの予測されたQP値との間の差の絶対値を指定する。一例として、ビデオエンコーダ200とビデオデコーダ300とは、たとえば、現在CUの予測されたQP値が、前にコーディングされたCUのために使用されるQP値に等しいと決定し得る。上近隣CUまたは左近隣CUの一方または両方が利用可能である場合、ビデオエンコーダ200とビデオデコーダ300とは、予測されたQP値として、上ネイバーのQPまたは左ネイバーのQPのうちの1つを使用し得る。前にコーディングされたCUがQP値を有しない場合、たとえば、前にコーディングされたCUがスキップモードでコーディングされた場合、ビデオエンコーダ200とビデオデコーダ300とは、予測されたQP値を、量子化を利用した最後のCUのQP値に等しく設定するか、またはデフォルト値に設定するように構成され得る。以下の説明では、CuQpDeltaValがデルタQP値を表す。
【0074】
[0084]シンタックス要素cu_qp_delta_sign_flagは、次のようにCuQpDeltaValの符号を指定する。
【0075】
- cu_qp_delta_sign_flagが0に等しい場合、対応するCuQpDeltaValは正の値を有する。
【0076】
- そうでない(cu_qp_delta_sign_flagが1に等しい)場合、対応するCuQpDeltaValは負の値を有する。
cu_qp_delta_sign_flagが存在しないとき、cu_qp_delta_sign_flagの値は0に等しいものと推論される。
cu_qp_delta_absが存在するとき、変数IsCuQpDeltaCodedおよびCuQpDeltaValは、次のように導出される。
【0077】
IsCuQpDeltaCoded=1 (7-130)
CuQpDeltaVal=cu_qp_delta_abs*(1-2*cu_qp_delta_sign_flag) (7-131)
CuQpDeltaValの値は、両端値を含む-(32+QpBdOffsetY/2)~+(31+QpBdOffsetY/2)の範囲内にあるものとする。
【0078】
[0085]1に等しいシンタックス要素cu_qp_delta_enabled_flagは、cu_qp_delta_subdivシンタックス要素がPPS中に存在し、cu_qp_delta_absが変換ユニットシンタックス中に存在し得ることを指定する。0に等しいシンタックス要素cu_qp_delta_enabled_flagは、cu_qp_delta_subdivシンタックス要素がPPS中に存在せず、cu_qp_delta_absが変換ユニットシンタックス中に存在しないことを指定する。
【0079】
[0086]シンタックス要素cu_qp_delta_subdivは、cu_qp_delta_absとcu_qp_delta_sign_flagとを搬送するコーディングユニットの最大cbSubdiv値を指定する。cu_qp_delta_subdivの値範囲は次のように指定される。
【0080】
- slice_typeがIに等しい場合、cu_qp_delta_subdivの値は、両端値を含む0~2*(log2_ctu_size_minus2-log2_min_qt_size_intra_slice_minus2+MaxMttDepthY)の範囲内にあるものとする。
【0081】
- そうでない(slice_typeがIに等しくない)場合、cu_qp_delta_subdivの値は、両端値を含む0~2*(log2_ctu_size_minus2-log2_min_qt_size_inter_slice_minus2+MaxMttDepthY)の範囲内にあるものとする。
存在しないとき、cu_qp_delta_subdivの値は0に等しいと推論される。
【0082】
[0087]1に等しいtu_cbf_luma[x0][y0]と、tu_cbf_cb[x0][y0]と、tu_cbf_cr[x0][y0]とのCBFフラグは、コーディングビンがコーディングブロック中にあることを意味する。そうでない場合、0に等しいCBFは、コーディングビンがコーディングブロック中にないことを意味する。
【0083】
[0088]
図3は、デュアルツリー区分をサポートするビデオデータのデルタQP値を決定するための例示的なプロセスを示す。ビデオデコーダ300は、CUがデュアルツリー構造に区分されるかどうかを決定する(140)。CUがデュアルツリー構造に区分されない場合(140、NO)、ビデオデコーダ300は、CUのルーマ成分とクロマ成分の両方のために単一の区分を決定し(142)、デルタQP値を復号する(142)。CUがデュアルツリー構造に区分される場合(140、YES)、ビデオデコーダ300は、CUのルーマ成分のための区分を決定し(146)、CUのクロマ成分の区分を別個に決定する(148)。ビデオデコーダ300はまた、デルタQP値を復号する(150)。
【0084】
[0089]ビデオエンコーダ200とビデオデコーダ300とは、ルーマQP予測を実施するように構成され得る。ビデオエンコーダ200とビデオデコーダ300とは、次のように、予測されたルーマ量子化パラメータqPY_PREDを導出する。
【0085】
- すべての以下の条件が真である場合、qPY_PREDは、(xQg,yQg-1)をカバーするルーマコーディングブロックを含んでいるコーディングユニットのルーマ量子化パラメータQpYに等しく設定される。
【0086】
- availableBが真に等しい。
【0087】
- 現在の量子化グループが、ブリック内のCTB行における第1の量子化グループである。
【0088】
- そうでない場合、qPY_PREDは次のように導出される。
【0089】
qPY_PRED=(qPY_A+qPY_B+1)>>1
[0090]ビデオエンコーダ200とビデオデコーダ300とは、前にルーマQPを処理するように構成され得る。ビデオエンコーダ200とビデオデコーダ300とは、次のように前のルーマ量子化パラメータqPY_PREVを導出することができる。
【0090】
- 次の条件のうちの1つまたは複数が真である場合、qPY_PREVはSliceQpYに等しく設定される。
【0091】
- 現在の量子化グループが、スライス中の第1の量子化グループである。
【0092】
- 現在の量子化グループが、ブリック中の第1の量子化グループである。
【0093】
- そうでない場合、qPY_PREVは、復号順序で、前の量子化グループ中の最後のルーマコーディングユニットのルーマ量子化パラメータQpYに等しく設定される。
【0094】
[0091]ビデオエンコーダ200とビデオデコーダ300とは、クロマQPを決定するように構成され得る。VVCドラフト5では、クロマQPの値は、ルーマQPの値に基づいて計算される。
【0095】
[0092]treeTypeがDUAL_TREE_CHROMAに等しいとき、変数QpYは、ルーマロケーション(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルーマコーディングユニットのルーマ量子化パラメータQpYに等しく設定される。
【0096】
- 変数qPCb、qPCrおよびqPCbCrは次のように導出される。qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
qPiCbCr=Clip3(-QpBdOffsetC,69,QpY+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset)
- ChromaArrayTypeが1に等しい場合、変数qPCb、qPCrおよびqPCbCrは、それぞれ、qPiCb、qPiCrおよびqPiCbCrに等しいインデックスqPiに基づいて、下記の表において指定されているようにQpCの値に等しく設定される。
【0097】
- そうでない場合、変数qPCb、qPCrおよびqPCbCrは、それぞれ、qPiCb、qPiCrおよびqPiCbCrに等しいインデックスqPiに基づいて、Min(qPi,63)に等しく設定される。
【0098】
- CbおよびCr成分のクロマ量子化パラメータQp’CbおよびQp’Cr、ならびにジョイントCb-CrコーディングQp’CbCrは、次のように導出される。
【0099】
Qp’Cb=qPCb+QpBdOffsetC
Qp’Cr=qPCr+QpBdOffsetC
Qp’CbCr=qPCbCr+QpBdOffsetC
[0093]下記の表は、1に等しいChromaArrayTypeのqPiの関数としてQpCを指定する
【0100】
【0101】
[0094]ビデオエンコーダ200とビデオデコーダ300とは、クロマQPオフセットを決定するように構成され得る。クロマQPオフセットは、たとえば、インデックス値であり得る。ビデオエンコーダ200とビデオデコーダ300とは、これらのインデックス値をデルタQP値にマッピングするテーブルを維持することができる。
【0102】
[0095]
図4は、デュアルツリー区分をサポートするビデオデータのクロマQPオフセット値を復号するための例示的なプロセスを示す。ビデオデコーダ300は、CUがデュアルツリー構造に区分されるかどうかを決定する(152)。CUがデュアルツリー構造に区分されない場合(152、NO)、ビデオデコーダ300は、CUのルーマ成分とクロマ成分の両方のために単一の区分を決定し(154)、クロマQPオフセット値を復号する(156)。CUがデュアルツリー構造に区分される場合(152、YES)、ビデオデコーダ300は、CUのルーマ成分のための区分を決定し(158)、CUのクロマ成分の区分を別個に決定する(160)。ビデオデコーダ300はまた、クロマQPオフセット値を復号する(162)。
【0103】
[0096]ビデオエンコーダ200とビデオデコーダ300とは、量子化グループを利用するように構成され得る。量子化グループ中のすべてのCUは、典型的には同じQP予測子を使用するが、必ずしも同じQPを使用するとは限らない。現在の量子化グループは、同じqPY_PREDを共有するコーディングツリーブロック内のレクタングルアー領域である。量子化グループの幅と高さとは、コーディングツリーノードの幅および高さに等しく、それの左上ルーマサンプル位置が、変数CuQgTopLeftXおよびCuQgTopLeftYに割り当てられる。
【0104】
[0097]
図5は、QP予測子QP_predを決定するための例示的なビデオコーディングプロセスを示す。
図5の技法について、ビデオエンコーダ200に関して説明されるが、ビデオデコーダ300によって実施されてもよい。ビデオエンコーダ200は、CUがCTUライン中の第1のCUであるかどうか、および上のCUが利用可能であるかどうかを決定する(170)。CUがCTUライン中の第1のCUであり、上のCUが利用可能である場合(170、Yes)、ビデオエンコーダ200は、QP予測子を、上のCUのQPに等しく設定する(172)。)。CUがCTUライン中の第1のCUでないか、または上のCUが利用可能でない場合(170、No)、ビデオエンコーダ200は、上のCUのQPが利用可能であるかどうかを決定し(174)、左のCUのCUが利用可能であるかどうかを決定する(176)。上のCUのQPが利用可能である場合(174、Yes)、ビデオエンコーダ200は、変数(QP_above)の値を、上のCUのQPの値に設定する。上のCUのQPが利用可能でない場合(174、No)、ビデオエンコーダ200は、QP_aboveの値を、前に使用されたQP値に設定する(178)。左のCUのQPが利用可能である場合(176、Yes)、ビデオエンコーダ200は、変数(QP_left)の値を、左のCUのQPの値に設定する。左のCUのQPが利用可能でない場合(176、No)、ビデオエンコーダ200は、QP_leftの値を、前に使用されたQP値に設定する(180)。ビデオエンコーダ200は、QP予測子の値を、QP_pred=(QP_above+QP_left+1)>>1として数学的に表され得る、QP_leftとQP_aboveとの値の平均に設定する(182)。
【0105】
[0098]上記の例では、前に使用されたQP値、QP_prevは、任意の前に使用されたQP値であり得、必ずしも左近隣CUまたは上近隣CUのQP値である必要があるとは限らないことがある。たとえば、左近隣CUが、変換または量子化なしにスキップモードでコーディングされた場合、前に使用されたQP値は、CUが現在CUに隣接していない場合でも、QP値を有した最も最近復号されたそのCUに属し得る。
【0106】
[0099]クロマQP値を決定するための現在の技法は、いくつかの潜在的問題を含む。たとえば、VVCドラフト5では、クロマQP値は次のように導出される。
【0107】
qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
上記からわかり得るように、クロマQP値のシグナリングは、PPSおよびスライスレベルで制御される。
【0108】
[0100]コーディングユニットのツリータイプがデュアルツリーに設定されたとき、変数Qp
Yは、ルーマ位置(xCb+cbWidth/2,yCb+cbHeight/2)をカバーするルーマCBのルーマQPに等しく設定される。
図6は、別個のツリー中に対応するルーマCUをもつクロマCUの一例を示す。
図6に示されているように、1つのコマCB190は、2つ以上のルーマCB(192A~192D)をカバーし得、これらのルーマCB192A~192Dは、異なるQPをもつ異なるQGからであり得る。中心位置から導出された予測されたQPは、クロマCBについての正確な予測でないことがある。および、pps/スライスレベルQPオフセット調整が制限される。VVCドラフト5は、クロマQP値をフレキシブルに調整するための方式を提供しない。
【0109】
[0101]本開示では、これらの問題のいくつかに対処し得る技法について説明する。別段に述べられない限り、本開示の様々な技法は、別々にまたは組合せで実施されてよい。
【0110】
[0102]ビデオエンコーダ200とビデオデコーダ300とは、クロマQGのクロマデルタQP値をシグナリングするように構成され得る。一例では、ビデオエンコーダ200とビデオデコーダ300とは、VVCドラフト5においてルーマデルタQPシグナリングのために使用されるのと同じ方式を使用してクロマデルタQP値をシグナリングするように構成され得る。
【0111】
[0103]ビデオエンコーダ200とビデオデコーダ300とは、スプリット深度に基づいてクロマQGを定義するように構成され得る。一例では、クロマQGは、ルーマQGと同じ仕方で、しかしクロマスプリットの深度に基づいて定義され得る。たとえば、chroma_cu_qp_delta_subdivは、クロマの最大クロマデルタQPシグナリング深度を表すことができる。最大クロマデルタQPシグナリリング深度以下の深度をもつリーフノードの場合、ビデオエンコーダ200とビデオデコーダ300とは、CUが少なくとも1つの非0係数を有する場合、このリーフノードのCUのために1つのクロマデルタQP値をシグナリングすることができる。最大クロマデルタQPシグナリリング深度よりも大きい深度をもつCUの場合、ビデオエンコーダ200とビデオデコーダ300とは、スプリットノードの子ノードのCUのいずれかが少なくとも1つの非0係数を有する場合、最大クロマデルタQPシグナリリング深度において、スプリットノードのすべてのCUのために1つのクロマデルタQP値をシグナリングすることができる。
【0112】
[0104]ビデオエンコーダ200とビデオデコーダ300とは、エリアによってクロマQGを定義するように構成され得る。一例では、エリアは、幅と高さとによって指定された矩形領域であり得る。一例では、エリアは、QG中のピクセルの数によって指定され得る。この例では、領域の幅/高さ、またはピクセルの指定された数は、エンコーダ側とデコーダ側の両方においてあらかじめ定義されるか、またはシーケンスレベル、ピクチャレベル、スライスレベルにおいてエンコーダからデコーダにシグナリングされる値として設定され得る。たとえば、この値は、SPS、PPS、またはスライスヘッダ中でシグナリングされ得る。
【0113】
[0105]ビデオエンコーダ200とビデオデコーダ300とは、ルーマデルタQPと同じ仕方で、絶対値と符号フラグとをシグナリングすることによって、クロマデルタQPの値をシグナリングするように構成され得る。すなわち、ビデオエンコーダ200とビデオデコーダ300とは、クロマデルタQP値の絶対値と、クロマデルタQP値の符号を示す符号フラグとのために、2つのディファーのシンタックス要素を使用してクロマデルタQPの値をシグナリングし得る。
【0114】
[0106]ビデオエンコーダ200とビデオデコーダ300とは、符号フラグをシグナリングする必要なしに、絶対値のみをシグナリングすることによって、クロマデルタQPの値をシグナリングするように構成され得る。すなわち、クロマデルタQPの値は、クロマデルタQPの値が負の値を含まないように制限されることを意味する、0以上である値のみに制限され得る。
【0115】
[0107]ビデオエンコーダ200とビデオデコーダ300とは、異なるクロマ色成分が使用され得るので、同じクロマデルタQPを使用するように構成され得る。たとえば、CbおよびCr成分は、同じクロマデルタQPを使用する。
【0116】
[0108]ビデオエンコーダ200とビデオデコーダ300とは、異なる色成分のためにクロマデルタQPを別々にシグナリングするように構成され得る。たとえば、ビデオエンコーダ200とビデオデコーダ300とは、Cbクロマ成分のクロマデルタQP、デルタQP_cbをシグナリングし、別個に、Cr成分のクロマデルタQP、クロマデルタQP_crをシグナリングし得る。
【0117】
[0109]ビデオエンコーダ200とビデオデコーダ300とは、クロマQP生成のために、デルタQP値と、PPSクロマQPオフセットと、スライスクロマQPオフセットと、cuレベルクロマQPオフセットとを一緒に使用して、信号クロマQP値を使用するように構成され得る。たとえば、ビデオデコーダ300は、次のようにクロマQP値を導出するように構成され得る。
【0118】
qPiCb=Clip3(minmum,maximum,predQP+pps_cb_qp_offset+slice_cb_qp_offset+cu_chroma_qp_offset+ChromaCuQpDeltaVal)
qPiCr=Clip3(minmum,maximum,predQp+pps_cr_qp_offset+slice_cr_qp_offset+cu_chroma_qp_offset+ChromaCuQpDeltaVal)
[0110]ビデオエンコーダ200とビデオデコーダ300とは、クロマQPを生成するために、クロマデルタQP値と、PPSクロマQPオフセットと、スライスクロマQPオフセットとを使用するように構成され得る。たとえば、ビデオデコーダ300は、次のようにクロマQP値を導出するように構成され得る。
【0119】
qPiCb=Clip3(minmum,maximum,predQP+pps_cb_qp_offset+slice_cb_qp_offset+ChromaCuQpDeltaVal)
qPiCr=Clip3(minmum,maximum,predQp+pps_cr_qp_offset+slice_cr_qp_offset+ChromaCuQpDeltaVal)
[0111]いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは、クロマQPを生成するために、クロマデルタQP値と、PPSクロマQPオフセットと、スライスクロマQPオフセットと、cuレベルクロマQPオフセットとの様々な組合せを使用するように構成され得る。
【0120】
[0112]クロマデルタQPをシグナリングすることが可能にされた場合、ビデオエンコーダ200とビデオデコーダ300とは、クロマデルタQP値を決定するためにクロマデルタQP値を使用するように構成され得る。そうではなく、クロマデルタQPをシグナリングすることが可能にされない場合、ビデオエンコーダ200とビデオデコーダ300とは、SPSレベルクロマQPオフセット、PPSレベルクロマQPオフセット、スライスレベルクロマQPオフセット、および/またはcuレベルクロマQPオフセットを使用するように構成され得る。
【0121】
[0113]ビデオエンコーダ200とビデオデコーダ300とは、現在クロマブロックのQPを予測するために、近隣クロマブロックのQPを使用するように構成され得る。一例では、ビデオエンコーダ200とビデオデコーダ300とは、
図5に関して上記で説明されたルーマQP予測のために使用されるのと同じ予測技法を使用し得る。たとえば、クロマCUが、CTUライン中の第1のCUである場合、ビデオエンコーダ200とビデオデコーダ300とは、QP予測子として上のCUのクロマQPを使用し得る。上のCUが、現在のCTUの外側にあるか、または他の方法で利用可能でない場合、ビデオエンコーダ200とビデオデコーダ300とは、
図5に関して上記で論じられたように、隣接するCUに対応しても対応しなくてもよい、前のクロマQPを使用し得る。さもなければ、ビデオエンコーダ200とビデオデコーダ300とは、上ネイバーCUと左ネイバーCUとが現在のCTU内にある場合、上ネイバークロマCUと左ネイバークロマCUとの平均クロマQPを使用し得る。近隣CUのいずれも利用不可能である場合、ビデオエンコーダ200とビデオデコーダ300とは、ネイバーCUのQPの代わりに前のクロマQPを使用し得る。
【0122】
[0114]次に、クロマデルタQPをシグナリングするための例示的な技法について説明される。JVET-N1001バージョン8に基づいて、新たに追加された部分は、<new text>と</end new text>との間に示されており、削除されるべきテキストは、<remove text>と</end remove text>とでマークされている。
【0123】
【0124】
[0115]このプロセスにおいて、ビデオエンコーダ200とビデオデコーダ300とは、Cb成分とCr成分の両方について、クロマデルタQP絶対値とクロマデルタQP符号値とを使用して、クロマデルタQPをシグナリングし得る。CbとCrとのQPは、次のように導出され得るqPCbおよびqPCrとして定義される。
【0125】
ChromaCuQpDeltaVal=chroma_cu_qp_delta_abs*(1-2*chroma_cu_qp_delta_sign_flag)
qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+slice_cb_qp_offset+cu_chroma_qp_offset+ChromaCuQpDeltaVal)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+slice_cr_qp_offset+cu_chroma_qp_offset+ChromaCuQpDeltaVal)
[0116]この例では、ビデオエンコーダ200とビデオデコーダ300とは、クロマのためにPPS中でシンタックス要素chroma_cu_qp_delta_enable_flagおよびchroma_cu_qp_delta_subdivをシグナリングし得る。別の例では、ビデオエンコーダ200とビデオデコーダ300とは、たとえば、VVCドラフト5におけるルーマのためのcu_qp_delta_enable_flagおよびcu_qp_delta_subdivなど、クロマとルーマとのために同じフラグを使用することができる。
【0126】
[0117]1に等しいシンタックス要素chroma_cu_qp_delta_enabled_flagは、chroma_cu_qp_delta_subdivシンタックス要素がPPS中に存在し、chroma_cu_qp_delta_absが変換ユニットシンタックス中に存在し得ることを指定する。0に等しいシンタックス要素chroma_cu_qp_delta_enabled_flagは、chroma_cu_qp_delta_subdivシンタックス要素がPPS中に存在せず、シンタックス要素chroma_cu_qp_delta_absが変換ユニットシンタックス中に存在しないことを指定する。
【0127】
[0118]シンタックス要素chroma_cu_qp_delta_subdivは、chroma_cu_qp_delta_absとchroma_cu_qp_delta_sign_flagとを搬送するコーディングユニットの最大cbSubdiv値を指定する。chroma_cu_qp_delta_subdivの値範囲は次のように指定される。
【0128】
- slice_typeがIに等しい場合、chroma_cu_qp_delta_subdivの値は、両端値を含む0~2*(log2_ctu_size_minus2-log2_min_qt_size_intra_slice_minus2+MaxMttDepthY)の範囲内にあるものとする。
存在しないとき、chroma_cu_qp_delta_subdivの値は0に等しいと推論される。
【0129】
[0119]この例では、デュアルツリークロマでは、現在のクロマCB深度(subdiv)がchroma_cu_qp_delta_subdivの値以下である場合、ビデオエンコーダ200とビデオデコーダ300とは、クロマデルタQPをシグナリングしなくてよい。
【0130】
【0131】
[0120]
図7は、本開示の技法を実施し得る例示的なビデオエンコーダ200を示すブロック図である。
図7は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示では、HEVCビデオコーディング規格および開発中のH.266ビデオコーディング規格などのビデオコーディング規格のコンテキストにおいて、ビデオエンコーダ200について説明する。しかしながら、本開示の技法は、これらのビデオコーディング規格に限定されず、概して、ビデオ符号化および復号に適用可能である。
【0132】
[0121]
図7の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、復号ピクチャバッファ(DPB)218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230、モード選択ユニット202、残差生成ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構築ユニット214、フィルタユニット216、DPB218、およびエントロピー符号化ユニット220のうちのいずれかまたはすべては、1つまたは複数のプロセッサまたは処理回路において実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0133】
[0122]ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(
図1)から、ビデオデータメモリ230に記憶されたビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用する参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230とDPB218とは、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230とDPB218とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0134】
[0123]本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(たとえば、符号化されるべきである現在ブロックのビデオデータ)を記憶する参照メモリとして理解されたい。
図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的記憶を提供し得る。
【0135】
[0124]
図7の様々なユニットは、ビデオエンコーダ200によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作にプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、1つまたは複数のユニットは、集積回路であり得る。
【0136】
[0125]ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(
図1)は、ビデオエンコーダ200が受信し実行するソフトウェアのオブジェクトコードを記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示されず)が、そのような命令を記憶し得る。
【0137】
[0126]ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、残差生成ユニット204とモード選択ユニット202とにビデオデータを提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
【0138】
[0127]モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
【0139】
[0128]モード選択ユニット202は、概して、符号化パラメータの組合せと、そのような組合せについての得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUの予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、最終的に、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを選択し得る。
【0140】
[0129]ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、1つまたは複数のCTUをスライス内にカプセル化し得る。モード選択ユニット202は、上記で説明されたHEVCのQTBT構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、一般に「ビデオブロック」または「ブロック」と呼ばれることもある。
【0141】
[0130]概して、モード選択ユニット202はまた、現在ブロック(たとえば、現在CU、またはHEVCでは、PUとTUとの重複する部分)についての予測ブロックを生成するように、それの構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶されている1つまたは複数の以前にコーディングされたピクチャ)中で1つまたは複数のぴったり一致する参照ブロックを識別するために動き探索を実施し得る。特に、動き推定ユニット222は、たとえば、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)などに従って、現在ブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を実施し得る。動き推定ユニット222は、現在ブロックに最もぴったり一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
【0142】
[0131]動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが分数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックの値を補間し得る。その上、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてデータを取り出し、たとえば、サンプルごとの平均化または加重平均化を通して、取り出されたデータを組み合わせ得る。
【0143】
[0132]別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在ブロックに近接しているサンプルから予測ブロックを生成し得る。たとえば、方向性モードでは、イントラ予測ユニット226は、近隣サンプルの値を概して数学的に組み合わせ、現在ブロックにわたって規定の方向にこれらの計算された値をポピュレートして、予測ブロックを生成し得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在ブロックに対する近隣サンプルの平均を計算し、予測ブロックのサンプルごとにこの得られた平均を含むように予測ブロックを生成し得る。
【0144】
[0133]モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在ブロックについての残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値の間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つまたは複数の減算器回路を使用して形成され得る。
【0145】
[0134]モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットと、対応するクロマ予測ユニットとに関連付けられ得る。ビデオエンコーダ200とビデオデコーダ300とは、様々なサイズを有するPUをサポートし得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズは、PUのルーマ予測ユニットのサイズを指すことがある。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または同様のものの対称PUサイズとをサポートし得る。ビデオエンコーダ200とビデオデコーダ300とはまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズの非対称区分をサポートし得る。
【0146】
[0135]モード選択ユニットがCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200とビデオデコーダ300とは、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
【0147】
[0136]いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなど、他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在ブロックについて予測ブロックを生成する。パレットモードコーディングなど、いくつかの例では、モード選択ユニット202は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構築すべき様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、符号化されるためにこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
【0148】
[0137]上記で説明されたように、残差生成ユニット204は、現在ブロックと、対応する予測ブロックとについて、ビデオデータを受信する。残差生成ユニット204は、次いで、現在ブロックについての残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。
【0149】
[0138]変換処理ユニット206は、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、たとえば、1次変換および2次変換、たとえば回転変換を残差ブロックに実施し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
【0150】
[0139]量子化ユニット208は、量子化された変換係数ブロックを生成するために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらすことがあり、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有し得る。
【0151】
[0140]逆量子化ユニット210と逆変換処理ユニット212とは、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化された変換係数ブロックに逆量子化と逆変換とを適用し得る。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(潜在的にある程度のひずみを伴うが)現在ブロックに対応する再構築ブロックを生成し得る。たとえば、再構築ユニット214は、再構築ブロックを生成するために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構築された残差ブロックのサンプルを加算し得る。
【0152】
[0141]フィルタユニット216は、再構築ブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。いくつかの例では、フィルタユニット216の動作はスキップされてよい。
【0153】
[0142]ビデオエンコーダ200は、再構築ブロックをDPB218に記憶する。たとえば、フィルタユニット216の動作が実施されない例において、再構築ユニット214は、再構築ブロックをDPB218に記憶し得る。フィルタユニット216の動作が実施される例では、フィルタユニット216は、フィルタ処理された再構築ブロックをDPB218に記憶し得る。動き推定ユニット222と動き補償ユニット224とは、後で符号化されるピクチャのブロックをインター予測するために、再構築(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構築ブロックを使用し得る。
【0154】
[0143]概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報、またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化演算を実施し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実施し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
【0155】
[0144]ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220がビットストリームを出力し得る。
【0156】
[0145]上記で説明された動作は、ブロックに関して説明されている。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されたい。上記で説明されたように、いくつかの例では、ルーマコーディングブロックとクロマコーディングブロックとは、CUのルーマ成分とクロマ成分とである。いくつかの例では、ルーマコーディングブロックとクロマコーディングブロックとは、PUのルーマ成分とクロマ成分とである。
【0157】
[0146]いくつかの例では、ルーマコーディングブロックに関して実施される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。そうではなく、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされてよく、参照ピクチャは同じであってよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックとクロマコーディングブロックについて同じであってよい。
【0158】
[0147]ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路中に実装され、本明細書で説明されるクロマデルタQPシグナリング技法を実施するように構成された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表す。ビデオエンコーダ200は、たとえば、上記で説明されたように、符号化ビデオデータのビットストリームに含めるために、シンタックス要素chroma_cu_qp_delta_absおよびchroma_cu_qp_delta_sign_flagを生成し得る。
【0159】
[0148]
図8は、本開示の技法を実施し得る例示的なビデオデコーダ300を示すブロック図である。
図8は、説明の目的で提供されており、本開示において広く例示され、説明される技法に対する限定ではない。説明の目的で、本開示は、JEM、VVC、およびHEVCの技法に従うビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実施され得る。
【0160】
[0149]
図8の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)メモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、復号ピクチャバッファ(DPB)314とを含む。CPBメモリ320、エントロピー復号ユニット302、予測処理ユニット304、逆量子化ユニット306、逆変換処理ユニット308、再構築ユニット310、フィルタユニット312、およびDPB314のうちのいずれかまたはすべては、1つまたは複数のプロセッサまたは処理回路において実装され得る。その上、ビデオデコーダ300は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
【0161】
[0150]予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加ユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0162】
[0151]CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320に記憶されるビデオデータは、たとえば、コンピュータ可読媒体110(
図1)から取得され得る。CPBメモリ320は、符号化ビデオビットストリームからの符号化ビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなど、コード化ピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、概して、ビデオデコーダ300が符号化ビデオビットストリームの後続のデータまたはピクチャを復号するときに出力しおよび/または参照ビデオデータとして使用し得る復号ピクチャを記憶する。CPBメモリ320とDPB314とは、SDRAMを含むDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320とDPB314とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであり得るか、またはそれらの構成要素に対してオフチップであり得る。
【0163】
[0152]追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(
図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320を用いて上記で論じられたデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全部が、ビデオデコーダ300の処理回路によって実行されるソフトウェアにおいて実装されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。
【0164】
[0153]
図8に示されている様々なユニットは、ビデオデコーダ300によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。
図7と同様に、固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作にプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、1つまたは複数のユニットは、集積回路であり得る。
【0165】
[0154]ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行されるソフトウェアによって実施される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信し実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
【0166】
[0155]エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信し、ビデオデータをエントロピー復号してシンタックス要素を再生し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
【0167】
[0156]概して、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対して個々に再構築演算を実施し得る(ここで、現在再構築されているブロック、すなわち、現在復号されているブロックは、「現在ブロック」と呼ばれることがある)。
【0168】
[0157]エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、ならびに量子化パラメータ(QP)および/または変換モードインジケーションなどの変換情報をエントロピー復号し得る。逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを決定するために、量子化された変換係数ブロックに関連付けられたQPを使用し得る。逆量子化ユニット306は、量子化された変換係数を逆量子化するために、たとえば、ビット単位の左シフト演算を実施し得る。逆量子化ユニット306は、それにより、変換係数を含む変換係数ブロックを形成し得る。
【0169】
[0158]逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在ブロックに関連する残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
【0170】
[0159]さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、予測情報シンタックス要素が、現在ブロックがインター予測されることを示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、ならびに現在ピクチャ中の現在ブロックのロケーションに対して参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(
図7)に関して説明されたのと実質的に同様である様式でインター予測プロセスを実施し得る。
【0171】
[0160]別の例として、予測情報シンタックス要素が、現在ブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(
図7)に関して説明されたのと実質的に同様である様式でイントラ予測プロセスを実施し得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する近隣サンプルのデータを取り出し得る。
【0172】
[0161]再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在ブロックを再構築し得る。たとえば、再構築ユニット310は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。
【0173】
[0162]フィルタユニット312は、再構築ブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット312は、再構築ブロックのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット312の動作は、すべての例において必ずしも実施されるとは限らない。
【0174】
[0163]ビデオデコーダ300は、再構築ブロックをDPB314に記憶し得る。上記で論じられたように、DPB314は、イントラ予測のための現在ピクチャのサンプルおよび後続の動き補償のための以前に復号されたピクチャなど、参照情報を予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号ピクチャを、後続のプレゼンテーションのために、
図1のディスプレイデバイス118などのディスプレイデバイス上に出力し得る。
【0175】
[0164]このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路中に実装され、本明細書で説明されるクロマデルタQPシグナリング技法を実施するように構成された1つまたは複数の処理ユニットとを含む、ビデオ復号デバイスの一例を表す。ビデオデコーダ300は、たとえば、上記で説明されたように、シンタックス要素chroma_cu_qp_delta_absおよびchroma_cu_qp_delta_sign_flagを復号し、パースし得る。
【0176】
[0165]エントロピー復号ユニット302は、たとえば、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスと、クロマ成分のクロマデルタQP値を示す第2のシンタックスとを受信し得る。逆量子化ユニット306は、たとえば、コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定し、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定し、コーディングユニットのクロマ成分のための予測されたクロマQPを決定し、予測されたクロマQPとクロマデルタQP値とに基づいてクロマ成分のQP値を決定し、ルーマ成分のQP値に基づいてルーマ変換係数のブロックを逆量子化し、クロマ成分のQP値に基づいてクロマ変換係数のブロックを逆量子化し得る。ビデオデコーダ300は、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号することができる。
【0177】
[0166]
図9は、現在ブロックを符号化するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオエンコーダ200(
図1および
図7)に関して説明されるが、他のデバイスが
図9の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0178】
[0167]この例では、ビデオエンコーダ200は、最初に、現在ブロックを予測する(350)。たとえば、ビデオエンコーダ200は、現在ブロックのための予測ブロックを形成し得る。ビデオエンコーダ200は、次いで、現在ブロックのための残差ブロックを計算し得る(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと、現在ブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ200は、次いで、残差ブロックの係数を変換し、量子化し得る(354)。ビデオエンコーダ200は、たとえば、上記で説明された技法を使用して、ビデオデータのルーマ成分とクロマ成分とのQP値をシグナリングし得る。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査し得る(356)。走査中に、または走査に続いて、ビデオエンコーダ200は、係数をエントロピー符号化し得る(358)。たとえば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して係数を符号化し得る。次いで、ビデオエンコーダ200は、ブロックのエントロピーコード化データを出力し得る(360)。
【0179】
[0168]
図10は、ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオデコーダ300(
図1および
図8)に関して説明されるが、他のデバイスが
図10の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0180】
[0169]ビデオデコーダ300は、エントロピーコード化予測情報、および現在ブロックに対応する残差ブロックの係数に対するエントロピーコード化データなど、現在ブロックのエントロピーコード化データを受信し得る(370)。ビデオデコーダ300は、現在ブロックについての予測情報を決定し残差ブロックの係数を再生するために、エントロピーコード化データをエントロピー復号し得る(372)。ビデオデコーダ300は、現在ブロックのための予測ブロックを計算するために、たとえば、現在ブロックについての予測情報によって示されるイントラ予測またはインター予測モードを使用して、現在ブロックを予測し得る(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された係数を逆走査し得る(376)。ビデオデコーダ300は、次いで、残差ブロックを生成するために、係数を逆量子化し逆変換し得る(378)。ビデオデコーダ300は、たとえば、上記で説明された技法を使用して、ビデオデータのルーマ成分とクロマ成分とのQP値を示すシンタックス要素を受信し得る。ビデオデコーダ300は、予測ブロックと残差ブロックとを組み合わせることによって、最終的に現在ブロックを復号し得る(380)。
【0181】
[0170]
図11は、現在ブロックを符号化するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオエンコーダ200(
図1および
図7)に関して説明されるが、他のデバイスが
図11の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0182】
[0171]この例では、ビデオエンコーダ200が、ビデオデータのコーディングユニットのルーマ成分のQP値を決定する(400)。ビデオエンコーダ200は、コーディングユニットのルーマ成分のQP値に基づいてルーマ変換係数のブロックを量子化し得る。コーディングユニットのルーマ成分のQP値をシグナリングするために、ビデオエンコーダ200は、コーディングユニットのルーマ成分のための予測されたルーマQPを決定する(402)。ビデオエンコーダ200は、ルーマ成分のQP値と予測されたルーマQPとに基づいて、コーディングユニットのルーマ成分のデルタQP値を決定する(404)。ビデオエンコーダ200は、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのルーマ成分のデルタQP値を示す第1のシンタックスを生成する(406)。
【0183】
[0172]ビデオエンコーダ200は、ビデオデータのコーディングユニットのクロマ成分のQP値を決定する(408)。ビデオエンコーダ200は、コーディングユニットのクロマ成分のQP値に基づいてクロマ変換係数のブロックを量子化し得る。コーディングユニットのクロマ成分のQP値をシグナリングするために、ビデオエンコーダ200は、コーディングユニットのクロマ成分のための予測されたクロマQPを決定する(410)。ビデオエンコーダ200は、クロマ成分のQP値と予測されたクロマQPとに基づいて、コーディングユニットのクロマ成分のデルタQP値を決定する(412)。
【0184】
[0173]いくつかの例では、コーディングユニットを含むCTUは、CTUのルーマ成分とCTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分され得る。他の例では、コーディングユニットを含むCTUは、CTUのルーマ成分とCTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分され得る。コーディングユニットを含むCTUが、デュアルツリー構造を使用して区分された場合、ビデオエンコーダ200は、CTUのクロマ成分の最大クロマデルタQPシグナリング深度を決定することと、コーディングユニットと少なくとも1つの他のコーディングユニットとがCTUのクロマ成分のスプリットノードに属すると決定することと、最大クロマデルタQPシグナリング深度がスプリットノードに対応することに応答して、少なくとも1つの他のコーディングユニットのクロマ成分のQP値がコーディングユニットのクロマ成分のQP値に等しいと決定することと、少なくとも1つの他のコーディングユニットのクロマ成分のQP値に基づいて、少なくとも1つの他のCUのクロマ変換係数のブロックを量子化することとを行うように構成され得る。
【0185】
[0174]ビデオエンコーダ200は、符号化ビデオデータのビットストリームに含めるために、コーディングユニットのクロマ成分のデルタQP値を示す第2のシンタックスを生成する(414)。いくつかの例では、ビデオエンコーダ200は、クロマデルタQP値のシグナリングがコーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータのビットストリームに含めるために、クロマ成分のクロマデルタQP値を示す第2のシンタックスを生成し得る。第2のシンタックスは、たとえば、クロマデルタQP値の絶対値を示すシンタックス要素と、クロマデルタQP値の符号を示すシンタックス要素とを含み得る。
【0186】
[0175]ビデオエンコーダ200は、符号化ビデオデータのビットストリーム中に、第1のシンタックスと第2のシンタックスとを出力する(416)。ビデオエンコーダ200はまた、符号化ビデオデータのビットストリーム中に、ルーマ変換係数の量子化されたブロックとクロマ変換係数の量子化されたブロックとの値を示すシンタックスを出力し得る。
【0187】
[0176]ビデオエンコーダ200はまた、コーディングユニットの第2のクロマ成分のための第2のQP値を決定し、コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定し、第2のクロマ成分の第2のQP値と第2の予測されたクロマQPとに基づいて、第2のクロマ成分のための第2のデルタQP値を決定し、符号化ビデオデータのビットストリームに含めるために、第2のクロマ成分のための第2のデルタQP値を示す第3のシンタックスを生成すること、符号化ビデオデータのビットストリーム中に、第3のシンタックスを出力し得る。
【0188】
[0177]
図12は、ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオデコーダ300(
図1および
図8)に関して説明されるが、他のデバイスが
図10の方法と同様の方法を実施するように構成され得ることを理解されたい。
【0189】
[0178]ビデオデコーダ300が、コーディングユニットのルーマ成分のための予測されたルーマQPを決定する(420)。ビデオデコーダ300は、たとえば、上記で説明された技法のいずれかを使用して、近隣CUのQPに基づいて、予測されたルーマQPを決定し得る。
【0190】
[0179]ビデオデコーダ300は、符号化ビデオデータのビットストリーム中で、ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信する(422)。第1のシンタックスは、たとえば、ルーマデルタQP値の絶対値を示すシンタックス要素と、ルーマデルタQP値の符号を示すシンタックス要素とを含み得る。ビデオデコーダ300は、予測されたルーマQPとルーマデルタQP値とに基づいてルーマ成分のQP値を決定する(424)。ビデオデコーダ300は、たとえば、コーディングユニットのルーマ成分のQP値を決定するために、予測されたルーマQPの値にルーマデルタQP値を加算し得る。
【0191】
[0180]ビデオデコーダ300は、コーディングユニットのクロマ成分のための予測されたクロマQPを決定する(426)。ビデオデコーダ300は、たとえば、上記で説明された技法のいずれかを使用して、近隣CUのQPに基づいて、予測されたクロマQPを決定し得る。ビデオデコーダ300は、符号化ビデオデータのビットストリーム中で、コーディングユニットのクロマ成分のクロマデルタQP値を示す第2のシンタックスを受信する(428)。ビデオデコーダ300は、たとえば、クロマデルタQP値のシグナリングがコーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータのビットストリーム中で、クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信し得る。第2のシンタックスは、たとえば、クロマデルタQP値の絶対値を示すシンタックス要素と、クロマデルタQP値の符号を示すシンタックス要素とを含み得る。
【0192】
[0181]いくつかの例では、コーディングユニットを含むCTUは、CTUのルーマ成分とCTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分され得る。他の例では、コーディングユニットを含むCTUは、CTUのルーマ成分とCTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分され得る。例では、CTUのルーマ成分とCTUのクロマ成分が、異なる区分を有する場合、クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信するために、ビデオデコーダ300は、たとえば、CTUのクロマ成分の最大クロマデルタQPシグナリング深度を決定し、コーディングユニットと少なくとも1つの他のコーディングユニットとがCTUのクロマ成分のスプリットノードに属すると決定し、最大クロマデルタQPシグナリング深度がスプリットノードに対応することに応答して、クロマデルタQP値に基づいて少なくとも1つの他のコーディングユニットのクロマ成分のQP値を決定し、少なくとも1つの他のコーディングユニットのクロマ成分のQP値に基づいて、少なくとも1つの他のCUのクロマ変換係数のブロックを逆量子化し得る。
【0193】
[0182]ビデオデコーダ300は、予測されたクロマQPとクロマデルタQP値とに基づいてコーディングユニットのクロマ成分のQP値を決定する(430)。ビデオデコーダ300は、たとえば、コーディングユニットのクロマ成分のQP値を決定するために、予測されたクロマQPの値にクロマデルタQP値を加算し得る。
【0194】
[0183]ビデオデコーダ300は、ルーマ成分のQP値に基づいてコーディングユニットのルーマ変換係数のブロックを逆量子化し(432)、クロマ成分のQP値に基づいてコーディングユニットのクロマ変換係数のブロックを逆量子化する(434)。ビデオデコーダ300は、ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号する(436)。
【0195】
[0184]ルーマ変換係数の逆量子化されたブロックと、クロマ変換係数の逆量子化されたブロックとに基づいて、コーディングユニットを復号するために、ビデオデコーダ300は、ルーマ残差ブロックを決定するために、ルーマ変換係数の逆量子化されたブロックを逆変換し、クロマ残差ブロックを決定するために、クロマ変換係数の逆量子化されたブロックを逆変換し、ルーマ予測ブロックを決定し、クロマ予測ブロックを決定し、コーディングユニットの再構築ルーマブロックを決定するために、ルーマ予測ブロックにルーマ残差ブロックを加算し、コーディングユニットの再構築クロマブロックを決定するために、クロマ予測ブロックにクロマ残差ブロックを加算し得る。
【0196】
[0185]ビデオデコーダ300はまた、コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定し、符号化ビデオデータのビットストリーム中で、コーディングユニットの第2のクロマ成分のための第2のクロマデルタQP値を示す第3のシンタックスを受信し、第2の予測されたクロマQPと第2のクロマデルタQP値とに基づいてコーディングユニットの第2のクロマ成分のための第2のQP値を決定し、第2のクロマ成分の第2のQP値に基づいてコーディングユニットのクロマ変換係数の第2のブロックを逆量子化し、クロマ変換係数の逆量子化された第2のブロックに基づいてコーディングユニットを復号し得る。
【0197】
[0186]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
【0198】
[0187]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶され得るか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0199】
[0188]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)と、レーザーディスク(登録商標)(disc)と、光ディスク(disc)と、デジタル多用途ディスク(disc)(DVD)と、フロッピー(登録商標)ディスク(disk)と、Blu-rayディスク(disc)とを含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
【0200】
[0189]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」および「処理回路」という用語は、前述の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供され得るか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つもしくは複数の回路または論理要素において完全に実装され得る。
【0201】
[0190]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明されたが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされ得るか、または相互動作可能なハードウェアユニットの集合によって提供され得る。
【0202】
[0191]様々な例について説明された。これらおよび他の例は、以下の特許請求の範囲の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
符号化ビデオデータのビットストリームを復号する方法であって、前記方法が、
コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定することと、
前記コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化することと、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化することと、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することとを備える、方法。
[C2]
前記第2のシンタックスが、前記クロマデルタQP値の絶対値を示すシンタックス要素と、前記クロマデルタQP値の符号を示すシンタックス要素とを含む、C1に記載の方法。
[C3]
前記コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記第2のクロマ成分のための第2のクロマデルタQP値を示す第3のシンタックスを受信することと、
前記第2の予測されたクロマQPと前記第2のクロマデルタQP値とに基づいて前記コーディングユニットの前記第2のクロマ成分のための第2のQP値を決定することと、
前記第2のクロマ成分の前記第2のQP値に基づいて前記コーディングユニットのクロマ変換係数の第2のブロックを逆量子化することと、
クロマ変換係数の前記逆量子化された第2のブロックに基づいて前記コーディングユニットを復号することとをさらに備える、C1に記載の方法。
[C4]
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリーム中で、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを受信することをさらに備える、C1に記載の方法。
[C5]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分される、C1に記載の方法。
[C6]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分される、C1に記載の方法。
[C7]
符号化ビデオデータの前記ビットストリーム中で、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを受信することは、
前記CTUの前記クロマ成分の最大クロマデルタQPシグナリング深度を決定することと、
前記コーディングユニットと少なくとも1つの他のコーディングユニットとが前記CTUの前記クロマ成分のスプリットノードに属すると決定することと、
前記最大クロマデルタQPシグナリング深度が前記スプリットノードに対応することに応答して、前記クロマデルタQP値に基づいて前記少なくとも1つの他のコーディングユニットのクロマ成分のQP値を決定することと、
前記少なくとも1つの他のコーディングユニットの前記クロマ成分の前記QP値に基づいて前記少なくとも1つの他のCUのクロマ変換係数のブロックを逆量子化することとを備える、C6に記載の方法。
[C8]
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することが、
ルーマ残差ブロックを決定するために、ルーマ変換係数の前記逆量子化されたブロックを逆変換することと、
クロマ残差ブロックを決定するために、クロマ変換係数の前記逆量子化されたブロックを逆変換することと、
ルーマ予測ブロックを決定することと、
クロマ予測ブロックを決定することと、
前記コーディングユニットの再構築ルーマブロックを決定するために、前記ルーマ予測ブロックに前記ルーマ残差ブロックを加算することと、
前記コーディングユニットの再構築クロマブロックを決定するために、前記クロマ予測ブロックに前記クロマ残差ブロックを加算することとをさらに備える、C1に記載の方法。
[C9]
ビデオデータを符号化する方法であって、前記方法が、
前記ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定することと、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマQPを決定することと、
前記ルーマ成分の前記QP値と前記予測されたルーマQPとに基づいて、前記コーディングユニットの前記ルーマ成分のデルタQP値を決定することと、
符号化ビデオデータのビットストリームに含めるために、前記コーディングユニットの前記ルーマ成分の前記デルタQP値を示す第1のシンタックスを生成することと、
前記ビデオデータの前記コーディングユニットのクロマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
前記クロマ成分の前記QP値と前記予測されたクロマQPとに基づいて、前記コーディングユニットの前記クロマ成分のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記コーディングユニットの前記クロマ成分の前記デルタQP値を示す第2のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第1のシンタックスと前記第2のシンタックスとを出力することとを備える、方法。
[C10]
前記コーディングユニットの前記ルーマ成分の前記QP値に基づいてルーマ変換係数のブロックを量子化することと、
前記コーディングユニットの前記クロマ成分の前記QP値に基づいてクロマ変換係数のブロックを量子化することと、
符号化ビデオデータの前記ビットストリーム中に、ルーマ変換係数の前記量子化されたブロックとクロマ変換係数の前記量子化されたブロックとの値を示すシンタックスを出力することとをさらに備える、C9に記載の方法。
[C11]
前記第2のシンタックスが、前記クロマデルタQP値の絶対値を示すシンタックス要素と、前記クロマデルタQP値の符号を示すシンタックス要素とを含む、C9に記載の方法。
[C12]
前記コーディングユニットの第2のクロマ成分のための第2のQP値を決定することと、
前記コーディングユニットの前記第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
前記第2のクロマ成分の前記第2のQP値と前記第2の予測されたクロマQPとに基づいて、前記第2のクロマ成分のための第2のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記第2のクロマ成分のための前記第2のデルタQP値を示す第3のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第3のシンタックスを出力することとをさらに備える、C9に記載の方法。
[C13]
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリームに含めるために、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを生成することをさらに備える、C9に記載の方法。
[C14]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分される、C9に記載の方法。
[C15]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分される、C9に記載の方法。
[C16]
前記CTUの前記クロマ成分の最大クロマデルタQPシグナリング深度を決定することと、
前記コーディングユニットと少なくとも1つの他のコーディングユニットとが前記CTUの前記クロマ成分のスプリットノードに属すると決定することと、
前記最大クロマデルタQPシグナリング深度が前記スプリットノードに対応することに応答して、前記少なくとも1つの他のコーディングユニットのクロマ成分のQP値が前記コーディングユニットの前記クロマ成分の前記QP値に等しいと決定することと、
前記少なくとも1つの他のコーディングユニットの前記クロマ成分の前記QP値に基づいて前記少なくとも1つの他のCUのクロマ変換係数のブロックを量子化することとをさらに備える、C15に記載の方法。
[C17]
ビデオデータを復号するためのデバイスであって、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定することと、
前記コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化することと、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化することと、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することとを行うように構成された、デバイス。
[C18]
前記第2のシンタックスが、前記クロマデルタQP値の絶対値を示すシンタックス要素と、前記クロマデルタQP値の符号を示すシンタックス要素とを含む、C17に記載のデバイス。
[C19]
前記1つまたは複数のプロセッサが、
前記コーディングユニットの第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記第2のクロマ成分のための第2のクロマデルタQP値を示す第3のシンタックスを受信することと、
前記第2の予測されたクロマQPと前記第2のクロマデルタQP値とに基づいて前記コーディングユニットの前記第2のクロマ成分のための第2のQP値を決定することと、
前記第2のクロマ成分の前記第2のQP値に基づいて前記コーディングユニットのクロマ変換係数の第2のブロックを逆量子化することと、
クロマ変換係数の前記逆量子化された第2のブロックに基づいて前記コーディングユニットを復号することとを行うようにさらに構成された、C17に記載のデバイス。
[C20]
前記1つまたは複数のプロセッサが、
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリーム中で、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを受信するようにさらに構成された、C17に記載のデバイス。
[C21]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分される、C17に記載のデバイス。
[C22]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分される、C17に記載のデバイス。
[C23]
符号化ビデオデータの前記ビットストリーム中で、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを受信するために、前記1つまたは複数のプロセッサが、
前記CTUの前記クロマ成分の最大クロマデルタQPシグナリング深度を決定することと、
前記コーディングユニットと少なくとも1つの他のコーディングユニットとが前記CTUの前記クロマ成分のスプリットノードに属すると決定することと、
前記最大クロマデルタQPシグナリング深度が前記スプリットノードに対応することに応答して、前記クロマデルタQP値に基づいて前記少なくとも1つの他のコーディングユニットのクロマ成分のQP値を決定することと、
前記少なくとも1つの他のコーディングユニットの前記クロマ成分の前記QP値に基づいて前記少なくとも1つの他のCUのクロマ変換係数のブロックを逆量子化することとを行うようにさらに構成された、C22に記載のデバイス。
[C24]
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号するために、前記1つまたは複数のプロセッサが、
ルーマ残差ブロックを決定するために、ルーマ変換係数の前記逆量子化されたブロックを逆変換することと、
クロマ残差ブロックを決定するために、クロマ変換係数の前記逆量子化されたブロックを逆変換することと、
ルーマ予測ブロックを決定することと、
クロマ予測ブロックを決定することと、
前記コーディングユニットの再構築ルーマブロックを決定するために、前記ルーマ予測ブロックに前記ルーマ残差ブロックを加算することと、
前記コーディングユニットの再構築クロマブロックを決定するために、前記クロマ予測ブロックに前記クロマ残差ブロックを加算することとを行うようにさらに構成された、C17に記載のデバイス。
[C25]
前記デバイスが、ビデオデータの前記復号されたブロックを表示するように構成されたディスプレイを含むワイヤレス通信デバイスを備える、C17に記載のデバイス。
[C26]
前記ワイヤレス通信デバイスが、ワイヤレス通信規格に従って、前記ビデオデータの符号化表現を備える信号を復調するように構成された受信機を含む電話ハンドセットを備える、C17に記載のデバイス。
[C27]
ビデオデータを符号化するためのデバイスであって、前記デバイスが、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装された1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサが、
前記ビデオデータのコーディングユニットのルーマ成分のための量子化パラメータ(QP)値を決定することと、
前記コーディングユニットの前記ルーマ成分のための予測されたルーマQPを決定することと、
前記ルーマ成分の前記QP値と前記予測されたルーマQPとに基づいて、前記コーディングユニットの前記ルーマ成分のデルタQP値を決定することと、
符号化ビデオデータのビットストリームに含めるために、前記コーディングユニットの前記ルーマ成分の前記デルタQP値を示す第1のシンタックスを生成することと、
前記ビデオデータの前記コーディングユニットのクロマ成分のQP値を決定することと、
前記コーディングユニットの前記クロマ成分のための予測されたクロマQPを決定することと、
前記クロマ成分の前記QP値と前記予測されたクロマQPとに基づいて、前記コーディングユニットの前記クロマ成分のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記コーディングユニットの前記クロマ成分の前記デルタQP値を示す第2のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第1のシンタックスと前記第2のシンタックスとを出力することとを行うように構成された、デバイス。
[C28]
前記コーディングユニットの前記ルーマ成分の前記QP値に基づいてルーマ変換係数のブロックを量子化することと、
前記コーディングユニットの前記クロマ成分の前記QP値に基づいてクロマ変換係数のブロックを量子化することと、
符号化ビデオデータの前記ビットストリーム中に、ルーマ変換係数の前記量子化されたブロックとクロマ変換係数の前記量子化されたブロックとの値を示すシンタックスを出力することとをさらに備える、C27に記載のデバイス。
[C29]
前記第2のシンタックスが、前記クロマデルタQP値の絶対値を示すシンタックス要素と、前記クロマデルタQP値の符号を示すシンタックス要素とを含む、C27に記載のデバイス。
[C30]
前記コーディングユニットの第2のクロマ成分のための第2のQP値を決定することと、
前記コーディングユニットの前記第2のクロマ成分のための第2の予測されたクロマQPを決定することと、
前記第2のクロマ成分の前記第2のQP値と前記第2の予測されたクロマQPとに基づいて、前記第2のクロマ成分のための第2のデルタQP値を決定することと、
前記符号化ビデオデータの前記ビットストリームに含めるために、前記第2のクロマ成分のための前記第2のデルタQP値を示す第3のシンタックスを生成することと、
符号化ビデオデータの前記ビットストリーム中に、前記第3のシンタックスを出力することとをさらに備える、C27に記載のデバイス。
[C31]
クロマデルタQP値のシグナリングが前記コーディングユニットのために可能にされると決定したことに応答して、符号化ビデオデータの前記ビットストリームに含めるために、前記クロマ成分の前記クロマデルタQP値を示す前記第2のシンタックスを生成することをさらに備える、C27に記載のデバイス。
[C32]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、同じ区分を有するように、単一ツリー構造を使用して区分される、C27に記載のデバイス。
[C33]
前記コーディングユニットを備えるコーディングツリーユニット(CTU)は、前記CTUのルーマ成分と前記CTUのクロマ成分が、異なる区分を有するように、デュアルツリー構造を使用して区分される、C27に記載のデバイス。
[C34]
前記CTUの前記クロマ成分の最大クロマデルタQPシグナリング深度を決定することと、
前記コーディングユニットと少なくとも1つの他のコーディングユニットとが前記CTUの前記クロマ成分のスプリットノードに属すると決定することと、
前記最大クロマデルタQPシグナリング深度が前記スプリットノードに対応することに応答して、前記少なくとも1つの他のコーディングユニットのクロマ成分のQP値が前記コーディングユニットの前記クロマ成分の前記QP値に等しいと決定することと、
前記少なくとも1つの他のコーディングユニットの前記クロマ成分の前記QP値に基づいて前記少なくとも1つの他のCUのクロマ変換係数のブロックを量子化することとをさらに備える、C33に記載のデバイス。
[C35]
前記ビデオデータをキャプチャするように構成されたカメラをさらに備える、C30に記載のデバイス。
[C36]
符号化ビデオデータのビットストリームを復号するための装置であって、前記装置が、
コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定するための手段と、
符号化ビデオデータの前記ビットストリーム中で、前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信するための手段と、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定するための手段と、
前記コーディングユニットのクロマ成分のための予測されたクロマQPを決定するための手段と、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信するための手段と、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定するための手段と、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化するための手段と、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化するための手段と、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号するための手段とを備える、装置。
[C37]
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
コーディングユニットのルーマ成分のための予測されたルーマ量子化パラメータ(QP)を決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記ルーマ成分のルーマデルタQP値を示す第1のシンタックスを受信することと、
前記予測されたルーマQPと前記ルーマデルタQP値とに基づいて前記ルーマ成分のQP値を決定することと、
前記コーディングユニットのクロマ成分のための予測されたクロマQPを決定することと、
符号化ビデオデータの前記ビットストリーム中で、前記コーディングユニットの前記クロマ成分のクロマデルタQP値を示す第2のシンタックスを受信することと、
前記予測されたクロマQPと前記クロマデルタQP値とに基づいて前記コーディングユニットの前記クロマ成分のQP値を決定することと、
前記ルーマ成分の前記QP値に基づいて前記コーディングユニットのルーマ変換係数のブロックを逆量子化することと、
前記クロマ成分の前記QP値に基づいて前記コーディングユニットのクロマ変換係数のブロックを逆量子化することと、
ルーマ変換係数の前記逆量子化されたブロックと、クロマ変換係数の前記逆量子化されたブロックとに基づいて、前記コーディングユニットを復号することとを行わせる、コンピュータ可読記憶媒体。