本開示は、イメージ及び/又はビデオ復号化の技術分野に、特に、逆量子化のための装置及び方法に関係がある。
デジタルビデオ通信及び記憶アプリケーションは、広範囲のデジタルデバイス、例えば、デジタルカメラ、セルラー無線電話機、ラップトップ、放送システム、ビデオ電話会議システム、などによって実装されている。これらのアプリケーションの最も重要かつ挑戦的なタスクの1つは、ビデオ圧縮である。ビデオ圧縮のタスクは複雑であり、2つの矛盾するパラメータ、すなわち、圧縮効率及び計算複雑性によって、制約される。ITU−T H.264/AVC又はITU−T H.265/HEVCなどのビデオコーディング標準規格は、これらのパラメータの間の優れたトレードオフをもたらす。それ故、ビデオコーディング標準規格のサポートは、ほぼ如何なるビデオ圧縮アプリケーションにとっても必須要件である。
インター予測、イントラ予測、及びループフィルタなどのビデオ圧縮技術は、有効であることを証明しており、よって、H.264/AVC及びH.265/HEVCなどの様々なビデオコーディング標準規格に採用されている。
ビデオ圧縮の基本処理単位は、サイズ、例えば、16×16又は64×64ピクセルを有しているピクチャの部分であるマクロブロック、と通常呼ばれる。最新のビデオコーディング標準規格H.265/HEVCでは、いわゆるコーディング・ツリー・ユニット(CTU)が基本処理単位として使用される。CTUは、最大コーディング・ユニット(LCU)とも呼ばれる。H.265/HEVCでは、CTUは、相応してルミナンス及びクロミナンスビデオ信号部分、例えば、Y、Cb、Cr成分を表す1つのルーマCTB及び2つのクロマCTBから成る。CTUは、ピクチャの左上から右下角への走査順序で1つずつ処理される。各CTUは、例えば、四分木分割を使用することによって、より小さいコーディング・ユニット(CU)で更に分割されてよい。CUの夫々は、より小さいCU又は予測ユニット(PU)のどちらか一方に更に分けられ得る。PUは、PUのピクセルのために適用される処理のタイプに従ってイントラ又はインター予測され得る。インター予測の場合に、PUは、PUのために指定された動きベクトルを用いて動き補償によって処理されるピクセルのエリアを表す。イントラ予測について、隣接ブロックの隣接したピクセルは、現在のブロックを予測するための参照サンプルとして使用される。PUは、このPUに含まれている全ての変換ユニット(TU)ためにイントラ予測モードの組から選択される予測モードを指定する。TUは、異なるサイズ(例えば、4×4、8×8、16×16及び32×32ピクセル)を有することができ、異なる方法で処理され得る。TUについて、変換コーディングが実行され、すなわち、予測誤差は、離散コサイン変換又は離散サイン変換により変換され(HEVC/H.265標準規格では、それは、イントラコーディングされたブロックに適用される)、そして量子化される。従って、再構成されたピクセルは、DBF、SAO及びALFなどのインループフィルタが抑制しようと試みる量子化ノイズ(それは、例えば、ユニット間のブロッキネス、シャープエッジに付随するリンギングアーチファクト、などとして現れ得る)を含む。洗練された予測コーディング(例えば、動き補償及びイントラ予測)及びパーティショニング技術(例えば、HEVC/H.265標準規格におけるCU及びPUのためのQTとTUのためのRQT、並びにバージョンBMS−1.0及びVTM−1.0から始まるVVCリファレンスソフトウェアのための多重ツリー(MT))の使用は、PUにおいて冗長性を有意に低減することを可能にする。QT及びMTパーティショニングメカニズムの間の基本的な違いは、後者が、バイナリ及びトリプルツリーに基づくパーティショニングを使用することによる長方形ブロックとともに、四分木アプローチを使用することによる正方形ブロックをも可能にする点である。ビデオ生成及び使用がますます当たり前になるにつれて、ビデオトラフィックは、通信ネットワーク及びデータ記憶需要を増やすためのドライバに対する最大負荷である。従って、ビデオコーディング標準規格の大部分の目標の1つは、ピクチャ品質を犠牲にせずにその前身と比べてコーディング複雑性を下げることである。
本願の実施形態は、独立請求項に従う符号化及び復号化のための装置及び方法を提供する。
上記及び他の目的は、独立請求項の対象によって達成される。更なる実施形態は、従属請求項、明細書及び図面から明らかである。
特定の実施形態は、従属請求項における他の実施形態とともに、添付の独立請求項において略述される。
境界パーティションのための装置及び方法が開示される。装置及び方法は、コーディング複雑性を低減するために特定の境界パーティション処理を使用する。境界パーティション処理は、ピクチャ又はイメージ境界ハンドリングとも呼ばれる。
本発明の第1の態様に従って、ピクチャの現在のブロックの逆量子化のための方法が提供される。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。方法は、復号器が(例えば、受信された)ビットストリームから1つ以上の既存の量子化パラメータ(QP)値を取得し、このとき、1つ以上の既存のQP値がクロミナンス成分における現在のブロック(すなわち、処理中のブロック)に関係があり、そして、1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定し、そして、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行することを含む。
ビデオイメージは、ルミナンス(又はルーマ)成分及びクロミナンス(又はクロマ)成分に分割されてよい。ルミナンス又はルーマ成分は、イメージ内の明るさ(イメージの“白黒”又は無色部分)を表し、クロミナンス又はクロマ成分は、イメージの色情報を表す。単なる例として、ピクチャ又はイメージが[Y,Cb,及びCr]の色空間で表される場合に、Y成分はルミナンス(又はルーマ)成分であり、Cb及びCrはクロミナンス又はクロマ成分である。
ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロックに分割される。すなわち、ルミナンス成分及びクロミナンス成分は、別々に分割される。異なるパーティションツリー、例えば、四分木(QT)、二分木(BT)、三分木(TT)、及び上記のパーティションツリーの任意の組み合わせ、例えば、四分木プラス二分木(QTBT)、又は四分木プラス二分木又は三分木(QT−BT/TT)、などがあることが知られている。
「1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある」という表現は、クロミナンス成分における現在のブロックに関係している既存のQP値に対応する。単なる例として、既存のQP値は、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロック、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックを有する。
ビットストリームは、受信されたビットストリームであってよく、ここでは、処理のために復号器で受信されたビットストリームを意味する。受信は、ここで、例えば、ストレージから、又はネットワークから、などのあらゆる種類の受信に関係がある。
ピクチャのクロミナンス成分におけるブロックについて、クロミナンス成分におけるそのブロックの量子化パラメータは、受信されたビットストリームから取得された1つ以上の既存の量子化パラメータQP値によって決定されてよい。これは、クロミナンス成分におけるそのブロックについての量子化パラメータを決定するための効率的な方法をもたらし、クロミナンス成分における各ブロックについて量子化パラメータを決定するための復号器の処理過負荷を軽減する。
本発明の第1の態様の例に従って、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値、のうちの少なくとも1つを有する。
これは、既存のQP値を定義し、ピクチャのクロミナンス成分におけるブロックのQP値を決定するための効率的な方法をもたらす。
本発明の第1の態様の他の例に従って、方法は、ルミナンス成分における同一位置のブロックのQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
「ルミナンス成分における同一位置のブロック」という用語は、クロミナンス成分におけるブロックと同一位置にあるルミナンス成分におけるブロックであり、ここで、「同一位置にある」という用語は、ピクチャのルミナンス及びクロミナンス成分の間のマッピング関係を意味する。
この例は、クロミナンス成分におけるブロックのQP値を決定するための容易な方法をもたらす。ピクチャのルミナンス成分及びクロミナンス成分は関係を有しているので、故に、ルミナンス成分における同一位置のブロックのQP値をクロミナンス成分におけるそのブロックのQP値と見なすことは、容易かつ直接的な方法である。
ルミナンス成分における同一位置のブロックのQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップは、前述の例及び第1の態様のいずれかに従って、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)を取り出すステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
特定のサンプルに従って同一位置のブロックを決定することは、ルーマブロック及びクロマブロックが異なるパーティションを有することを許される場合でさえ、信頼できかつ一義的であり、更には複雑でない実施を可能にする。
例において、特定の位置にあるサンプルは、現在のクロミナンスブロックの右下4分の1内の左上サンプルである。
かような特定の位置は、ブロックの中心におおよそ対応し、よって、同一位置のブロックのQPの適切な推定をもたらす。
代替的に、又は、追加的に、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、
QpCb及びQpCrは、クロマQPマッピング関数を適用することによって、決定されたルミナンスブロックのQP値に基づいて取得されたqPiCb及びqPiCrパラメータから取得される。特に、いくつかの具体例では、qPiCb及びqPiCrは、QpY_basicに基づいて計算されるクロママッピング関数(テーブル)内のインデックスである。QpY_basicは、決定されたルミナンスブロックのQP値に対応する。
例となる実施に従って、方法は、2つのピクチャパラメータセットPPSベース制御フラグに基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグが真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグが偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグが真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグが偽に等しい場合には、方法は、クロマQP導出のために適用されない。
これは、ビットストリームのための効率的かつスケーラブルなシンタックスの供給を容易にする。
本発明の第1の態様の例に従って、方法は、1つ以上の既存のQP値と、次の、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値、又は受信されたビットストリームにおいて伝えられたクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
本発明の第1の態様の例に従って、方法は、現在のブロックのパーティションデプス値を取得するステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
このようにして、しきい値を上回るデプス値を有するブロックにこの方法を適用することは必要とされないので、これは、計算の複雑性を低減する。
本発明の第1の態様の例に従って、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、この数は、プログラマによって事前に定義されてよく、あるいは、パラメータセット、例えば、ピクチャパラメータセット(PPS)又はシーケンスパラメータセット(SPS)において伝えられてもよい。
本発明の第1の態様の例に従って、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。
逆量子化のための調和した方法が提供されると認められ、この方法は、シングルパーティション(ST)モード(すなわち、ルーマ及びクロマ成分は、シングルパーティションによって分割される)に適用されるだけでなく、デュアルパーティション(DT)モード(すなわち、ルーマ及びクロマ成分は、別個のパーティションツリーによって独立して分割される)にも適用される。
本発明の実施形態に従って、第1の態様及び第1の態様の例のいずれか1つの方法を実行する処理回路を有する復号化装置が提供される。
第2の態様に従って、ピクチャの現在のブロックの量子化のための方法が提供され、方法は、符号器によって実行され、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割され、方法は、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行するステップと、1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQPをビットストリームに含めるステップであり、1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある、ステップと、1つ以上の既存のQP値及び決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップと、前記QPパラメータをビットストリームに含めるステップとを有する。
本発明の第2の態様の例に従って、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値、のうちの少なくとも1つを有する。
本発明の第1の態様の他の例に従って、QPパラメータの決定は、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップを有する。
ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップは、前述の例及び第1の態様のいずれかに従って、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックのQP値を取り出すステップと、決定されたルミナンスブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。実施の例として、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップは、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)を取り出すステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップとを有する。
例において、特定の位置にあるサンプルは、現在のクロミナンスブロックの右下4分の1内の左上サンプルである。
代替的に、又は、その上、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、
QpCb及びQpCrは、クロマQPマッピング関数を適用することによって、決定されたルミナンスブロックのQP値に基づいて取得されたqPiCb及びqPiCrパラメータから取得される。
例となる実施に従って、方法は、2つのピクチャパラメータセットPPSベース制御フラグに基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグが真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグが偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグが真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグが偽に等しい場合には、方法は、クロマQP導出のために適用されず、方法は、第1フラグ及び/又は第2フラグをビットストリームに含めるステップを更に有する。
本発明の第1の態様の例に従って、方法は、1つ以上の既存のQP値と、次の、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値、又は受信されたビットストリームにおいて伝えられたクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQPパラメータを決定するステップを更に有する。方法は、セルタQP又はQPオフセットをビットストリームに挿入することを更に含んでよい。
本発明の第1の態様の例に従って、方法は、現在のブロックのパーティションデプス値を決定する(そして、場合により、ビットストリームに含める)ステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、ビットストリームに含められたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
本発明の第1の態様の例に従って、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、この数は、プログラマによって事前に定義されてよく、あるいは、パラメータセット、例えば、ピクチャパラメータセット(PPS)又はシーケンスパラメータセット(SPS)において伝えられてもよい。
本発明の第1の態様の例に従って、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。
本発明の第3の態様に従って、コンピュータプログラムがコンピューティングデバイスで実行される場合に、第1の態様及び第1の態様の例のいずれか1つの方法を実行するプログラムコードを有するコンピュータプログラム製品が提供される。コンピュータプログラムは、非一時的な媒体に記憶されてよい。
本発明の第4の態様に従って、ピクチャの現在のブロックの境界パーティションのための復号化装置が提供される。復号化装置は、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行される場合に、第1の態様及び第1の態様の例のいずれか1つの方法を実行するよう復号器を構成する。
第5の態様に従って、ピクチャの現在のブロックの境界パーティションのための符号化装置であって、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有し、プログラミングは、プロセッサによって実行される場合に、第2の態様及び第2の態様の例のいずれか1つの方法を実行するよう符号器を構成する、符号化装置が提供される。
第6の態様に従って、ピクチャの現在のブロックの逆量子化のための装置であって、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、装置において、ビットストリームから1つ以上の既存の量子化パラメータQP値を取得するビットストリームパーサ(1110)であり、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある、ビットストリームパーサと、1つ以上の既存のQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するQP決定ユニット(1120)と、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する逆量子化器(1130)とを有する装置が提供される。
第7の態様に従って、ピクチャの現在のブロックの量子化のための装置であって、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、装置において、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行する量子化器(1210)と、1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQPをビットストリームに含めるフェッチユニット(1220)であり、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある、フェッチユニットと、1つ以上の既存のQP値及び決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するQP決定ユニット(1230)と、QPパラメータをビットストリームに含めるビットストリーム生成ユニット(1240)とを有する装置が提供される。
第8の態様に従って、上記の装置のayを具現する集積回路が提供される。
第2、第3及び第4の態様の実施形態は、第1の態様の各々の実施形態に対応する。従って、方法の実施形態は、復号化装置の対応する実施形態の特徴を有し、逆もまた同じである。復号化装置は、符号化されたビデオビットストリームを復号するチップセットとして実施されてもよい。
第1の態様に従う方法の利点は、第2の態様及び第4の態様に従う復号化装置の対応する実施形態についてのそれらと同じである。
以下で、例となる実施形態は、添付の図及び図面を参照して、より詳細に記載される。
本発明の実施形態を実装するよう構成されたビデオコーディングシステムの例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオコーディングシステムの他の例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオ符号器の例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオ復号器の構造例を示すブロック図である。
符号化装置又は復号化装置の例を表すブロック図である。
符号化装置又は復号化装置の他の例を表すブロック図である。
本開示の実施形態に従う四分木(QT)分割を表す概略図である。
本開示の実施形態に従う垂直方向における二分木(BT)分割を表す概略図である。
本開示の実施形態に従う水平方向における二分木(BT)分割を表す概略図である。
本開示の実施形態に従う垂直方向における三分木(TT)分割を表す概略図である。
本開示の実施形態に従う水平方向における三分木(TT)分割を表す概略図である。
ピクチャ内の4:2:0ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
ピクチャ内の4:2:2ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
ピクチャ内の4:4:4ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
クロミナンス(又はクロマ)パーティショニングからルミナンス(又はルーマ)パーティショニングへの点マッピングを表す概略図である。
クロマ成分におけるブロックについてのQP値(つまり、クロマブロックQP値)を決定するためのプロシージャを表す、例となるフローチャートである。
現在のブロックについてビットストリームに挿入されるべきQPパラメータを決定するためのプロシージャを表す、例となるフローチャートである。
復号器の部分であり得る逆量子化のための例となる装置を表すブロック図である。
符号器の部分であり得る量子化のための例となる装置を表すブロック図である。
コンテンツ配信サービスを実現するコンテンツ供給システムの構造例を示すブロック図である。
端末デバイスの例の構造を示すブロック図である。
以下で、同じ参照符号は、明示的に別段の定めがない場合には、同じ又は少なくとも機能的に同等の特徴を指す。
以下の記載では、本開示の部分を形成し、実例として、本発明の実施形態の具体的な態様、又は本発明の実施形態が使用される可能性がある具体的な態様を示す添付の図を参照する。本発明の実施形態は、他の態様で使用されてもよく、図示されていない構造的又は論理的な変更を含む、ことが理解される。以下の詳細な説明は、従って、限定の意味で解されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
例えば、記載されている方法に関連する開示は、方法を実行するよう構成された対応するデバイス又はシステムにも当てはまり、逆もまた同じであってよい、ことが理解される。例えば、1つ又は複数の具体的な方法ステップが記載される場合に、対応するデバイスは、1つ又は複数のユニット、例えば、機能ユニットを、たとえそのような1つ以上のユニットが明示的に記載又は図示されていないとしても、記載されている1つ又は複数の方法ステップを実行するために含んでよい(例えば、1つのユニットは1つ又は複数のステップを実行し、あるいは、複数のユニットは複数のステップのうちの1つ以上を夫々実行する)。他方で、例えば、具体的な装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合に、対応する方法は、1つのステップを、たとえそのような1つ又は複数のステップが明示的に記載又は図示されていないとしても、1つ又は複数のユニットの機能性を実行するために含んでよい(例えば、1つのステップは1つ又は複数のユニットの機能性を実行し、あるいは、複数のステップは複数のユニットのうちの1つ以上の機能性を夫々実行する)。更に、ここで記載されている様々な例となる実施形態及び/又は態様は、特に別段の記載がない限り、互いに組み合わされてもよい、ことが理解される。
ビデオコーディングは、通常、ビデオ又はビデオシーケンスを形成するピクチャの連続の処理を指す。「ピクチャ」という用語の代わりに、「フレーム」又は「イメージ」という用語が、ビデオコーディングの分野では同義語として使用されることがある。本願(又は本開示)で使用されているビデオコーディングは、ビデオ符号化又はビデオ復号化のどちらか一方を示す。ビデオ符号化は、発信元側で実行され、通常は、ビデオピクチャを表現するために必要とされるデータの量を(より効率的な記憶及び/又は伝送のために)低減するよう原ビデオピクチャを(例えば、圧縮によって)処理することを有する。ビデオ復号化は、あて先側で実行され、通常は、ビデオピクチャを再構成するよう、符号器と比較して逆の処理を有する。ビデオピクチャ(又は、後述されるように、ピクチャ全般)の“コーディング”に言及する実施形態は、ビデオシーケンスの“符号化”又は“復号化”のどちらか一方に関係がある、と理解されるべきである。符号化部分と復号化部分との組み合わせは、CODEC(Coding and Decoding)とも呼ばれる。
可逆ビデオコーディングの場合に、原ビデオピクチャは再構成可能である。すなわち、再構成されたビデオピクチャは、(記憶又は伝送中に伝送損失又は他のデータ損失がないと仮定して)原ビデオピクチャと同じ品質を有する。不可逆ビデオコーディングの場合に、例えば、量子化による、更なる圧縮が、ビデオピクチャを表現するデータの量を低減するために実行され、ビデオピクチャは、復号器で完全には再構成され得ない。すなわち、再構成されたビデオピクチャの品質は、原ビデオピクチャの品質と比較して、より低い又はより悪い。
H.261以後のいくつかのビデオコーディング標準規格は、“不可逆ハイブリッドビデオコーデック”のグループに属する(すなわち、サンプル領域での空間的及び時間的予測と、変換領域で量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重なり合わないブロックの組に分割され、コーディングは、通常、ブロックレベルで実行される。すなわち、符号器では、ビデオは、通常はブロック(ビデオブロック)レベルで、例えば、予測ブロックを生成するよう空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を使用し、残差ブロックを得るよう現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減じ、残差ブロックを変換し、伝送されるべきデータの量を低減するよう変換領域で残差ブロックを量子化すること(圧縮)によって、処理、すなわち、符号化され、一方、復号器では、符号器と比較して逆の処理が、表示のために現在のブロックを再構成するよう、符号化又は圧縮されたブロックに部分的に適用される。更に、符号器は、復号器の処理ループを再現し、それにより、双方が、その後のブロックを処理、すなわち、コーディングするために同じ予測(例えば、イントラ及びインター予測)及び/又は再構成を生成することになる。
ここで使用されるように、「ブロック」という用語は、ピクチャ又はフレームの部分であってよい。記載の便宜上、本発明の実施形態は、ITU−TのVideo Coding Experts Group(VCEG)及びISO/IECのMotion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発されたHigh-Efficiency Video Coding(HEVC)又はVersatile video coding(VVC)の参照ソフトウェアを参照してここで説明される。当業者であれば、本発明の実施形態がHEVC又はVVCに限定されない、と理解するだろう。それはCU、PU、及びTUを指してもよい。HEVCでは、CTUは、コーディング・ツリーとして表される四分木構造を使用することによって、CUに分割される。インターピクチャ(時間的)又はイントラピクチャ(空間的)予測を用いてピクチャエリアをコーディングすべきかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って1つ、2つ又は4つのPUに更に分割され得る。1つのPU内で、同じ予測プロセスが適用され、関連情報はPUベースで復号器へ送られる。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディング・ツリーに類似した他の四分木構造に従って、変換ユニット(TU)に分割され得る。ビデオ圧縮技術の最新の開発では、四分木及び二分木(QTBT)パーティショニングフレームが、コーディング・ブロックを分割するために使用される。QTBTブロック構造では、CUは、正方形又は長方形形状のどちらか一方を有することができる。例えば、コーディング・ツリー・ユニット(CTU)は、最初に、四分木構造によって分割される。四分木リーフノードは、二分木構造によって更に分割される。二分木リーフノードは、コーディング・ユニット(CU)と呼ばれ、そのセグメンテーションは、それ以上のパーティショニングなしで予測及び変換処理のために使用される。これは、CU、PU及びTUがQTBTコーディング・ブロック構造で同じブロックサイズを有している、ことを意味する。同時に、多重パーティション、例えば、トリプルツリーパーティションも、QTBTブロック構造とともに使用されることが提案された。
以下では、符号器20、復号器30、及びコーディングシステム10の実施形態が、図1から3に基づいて説明される。
図1Aは、例となるコーディングシステム10、例えば、本願(本開示)の技術を利用し得るビデオコーディングシステム10を表す概念又は概略ブロック図である。ビデオコーディングシステム10の符号器20(例えば、ビデオ符号器20)及び復号器30(例えば、ビデオ復号器30)は、本願で説明されている様々な例に従う技術を実行するよう構成され得るデバイスの例を表す。図1Aに示されるように、コーディングシステム10は、符号化されたデータ13、例えば、符号化されたピクチャ13を、例えば、符号化されたデータ13を復号するあて先デバイス14へ、供給するよう構成された発信元デバイス12を有する。
発信元デバイス12は、符号器20を有し、追加的に、すなわち、任意的に、ピクチャソース16、前処理ユニット18、例えば、ピクチャ前処理ユニット18、及び通信インターフェース又は通信ユニット22を有してもよい。
ピクチャソース16は、例えば、現実世界のピクチャを捕捉するための、あらゆる種類のピクチャ捕捉デバイス、及び/又はあらゆる種類のピクチャ若しくはコメント(スクリーンコンテンツのコーディングについては、スクリーン上のいくつかのテキストも、符号化されるべきピクチャ又はイメージの部分と見なされる)生成デバイス、例えば、コンピュータアニメーション化されたピクチャを生成するコンピュータグラフィクスプロセッサ、あるいは、現実世界のピクチャ、コンピュータアニメーション化されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は供給するあらゆる種類のデバイスを有するか、又はそのようなものであってよい。
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。アレイ内のサンプルは、ピクセル(ピクチャ要素の省略形)又はペルとも呼ばれ得る。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、通常は3つの色成分が用いられる。すなわち、ピクチャは、3つのサンプルアレイで表現されるか、又はそれらを含んでよい。RGBフォーマット又は色空間では、ピクチャは、対応する赤、緑、及び青のサンプルアレイを有する。しかし、ビデオコーディングでは、各ピクセルは、通常、ルミナンス/クロミナンスフォーマット又は色空間、例えば、Y(時々Lも代わりに使用される)によって示されるルミナンス成分と、Cb及びCrによって示される2つのクロミナンス成分とを有するYCbCr、で表現される。ルミナンス(又は略してルーマ)成分Yは、輝度又はグレーレベル強度(例えば、グレースケールピクチャと同様)を表し、一方、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。従って、YCbCrフォーマットでのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイとを有する。RGBフォーマットでのピクチャは、YCbCrフォーマットに変換又は転換されてよく、逆もまた同じであり、プロセスは、色転換又は変換としても知られている。ピクチャがモノクロである場合には、ピクチャは、ルミナンスサンプルアレイしか有さなくてもよい。
モノクロサンプリングでは、名目上ルーマアレイと見なされるただ1つのサンプルアレイしか存在しない。
4:2:0サンプリングでは、図7Aに示されるように、2つのクロマアレイの夫々は、ルーマアレイの半分の高さ及び半分の幅を有する。
4:2:2サンプリングでは、図7Bに示されるように、2つのクロマアレイの夫々は、ルーマアレイと同じ高さ及びその半分の幅を有する。
4:4:4サンプリングでは、図7Cに示されるように、separate_colour_plane_flagの値に応じて、以下が当てはまる。
− separate_colour_plane_flagが0に等しい場合には、2つのクロマアレイの夫々は、ルーマアレイと同じ高さ及び幅を有する。
− そうではない(separate_colour_plane_flagが1に等しい)場合には、3つの色平面は、モノクロサンプリングピクチャとして別々に処理される。
ピクチャソース16(例えば、ビデオソース16)は、例えば、ピクチャを捕捉するカメラ、前に捕捉若しくは生成されたピクチャを有する若しくは記憶するメモリ、例えば、ピクチャメモリ、及び/又はピクチャを取得若しくは受信するあらゆる種類のインターフェース(内部若しくは外部)であってよい。カメラは、例えば、ソースデバイスに組み込まれているローカル又は内蔵カメラであってよく、メモリは、例えば、発信元デバイスに組み込まれた、ローカル又は内蔵メモリであってよい。インターフェースは、例えば、外部ビデオソース、例えば、カメラのような外部ピクチャ捕捉デバイス、外部メモリ、又は外部ピクチャ生成デバイス、例えば、外部コンピュータグラフィクスプロセッサ、コンピュータ若しくはサーバ、からピクチャを受信するための外部インターフェースであってよい。インターフェースは、如何なる独自仕様の又は標準化されたインターフェースプロトコルにも従うあらゆる種類のインターフェース、例えば、有線又は無線インターフェース、光インターフェースであることができる。ピクチャデータ17を取得するインターフェースは、通信インターフェース22と同じインターフェースであるか又は通信インターフェース22の部分であってよい。
前処理ユニット18及び前処理ユニット18によって実行される処理と区別して、ピクチャ又はピクチャデータ17(例えば、ビデオデータ16)は、生のピクチャ又は生のピクチャデータ17とも呼ばれ得る。
前処理ユニット18は、(生の)ピクチャデータ17を受信するよう、かつ、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を得るよう構成される。前処理ユニット18によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCr)、色補正、又はノイズ除去を有してよい。前処理ユニット18は任意のコンポーネントであってよい、ことが理解され得る。
符号器20(例えば、ビデオ符号器20)は、前処理されたピクチャデータ19を受信し、符号化されたピクチャデータ21を供給するよう構成される(更なる詳細は、例えば、図2又は図4に基づいて、以下で記載される)。
発信元デバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、かつ、それを記憶又は直接的な再構成のために他のデバイス、例えば、あて先デバイス14又は何らかの他のデバイスへ送るよう、あるいは、符号化されたピクチャデータ21を、符号化されたデータ13を記憶する前及び/又は符号化されたデータ13を他のデバイス、例えば、あて先デバイス14又は復号化若しくは記憶のための何らかの他のデバイスへ送る前に夫々処理するよう構成されてもよい。
あて先デバイス14は、復号器30(例えば、ビデオ復号器30)を有し、更には、すなわち、任意に、通信インターフェース又は通信ユニット28、後処理ユニット32及び表示デバイス34を有してよい。
あて先デバイス14の通信インターフェース28は、符号化されたピクチャデータ21又は符号化されたデータ13を、例えば、発信元デバイス12から直接に又は何らかの他のソース、例えば、記憶デバイス、例えば、符号化ピクチャデータ記憶デバイスから、受信するよう構成される。
通信インターフェース22及び通信インターフェース28は、発信元デバイス12とあて先デバイス14との間の直接通信リンク、例えば、直接有線若しくは無線接続を介して、あるいは、あらゆる種類のネットワーク、例えば、有線若しくは無線ネットアーク又はそれらの任意の組み合わせ、若しくはあらゆる種類のプライベート及びパブリックネットワーク、又はそれらのあらゆる種類の組み合わせを介して、符号化されたピクチャデータ21又は符号化されたデータ13を送信又は受信するよう構成されてよい。
通信インターフェース22は、例えば、符号化されたピクチャデータ21を、通信リンク又は通信ネットワーク上の伝送のために、適切なフォーマット、例えば、パケットにパッケージ化するよう構成されてよい。
通信インターフェース22の対応物を形成する通信インターフェース28は、例えば、符号化されたピクチャデータ21を得るよう、符号化されたデータ13をパッケージ解除するよう構成されてよい。
通信インターフェース22及び通信インターフェース28は両方とも、発信元デバイス12からあて先デバイス14へ向いている、図1A中の符号化されたピクチャデータ13のための矢印によって示されるような一方向通信インターフェース、又は双方向通信インターフェースとして構成されてよく、例えば、メッセージを送信及び受信して、例えば、接続をセットアップし、通信リンク及び/又はデータ伝送、例えば、符号化されたピクチャデータ伝送に関する何らかの他の情報を受信確認及び交換するよう構成されてよい。
復号器30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31又は復号されたピクチャ31を供給するよう構成される(更なる詳細は、例えば、図3又は図5に基づいて、以下で記載される)。
あて先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構成されたピクチャデータとも呼ばれる)、例えば、復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、例えば、後処理されたピクチャ33を得るよう構成される。後処理ユニット32によって実行される後処理は、例えば、色フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、若しくはリサンプリング、又は例えば、復号されたピクチャデータ31を、例えば、表示デバイス34による、表示のために準備するための、何らかの他の処理を有してよい。
あて先デバイス14の表示デバイス34は、ピクチャを、例えば、ユーザ又は見る者に、表示するために、後処理されたピクチャデータ33を受信するよう構成される。表示デバイス34は、再構成されたピクチャを表示するあらゆる種類のディスプレイ、例えば、内蔵又は外付けディスプレイ又はモニタであっても、又はそれを有してもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、liquid crystal on silicon(LCoS)、デジタル光プロセッサ(DLP)又はあらゆる種類の他のディスプレイを有してよい。
図1Aは、発信元デバイス12及びあて先デバイス14を別個のデバイスとして表すが、デバイスの実施形態はまた、両方又は両方の機能性、発信元デバイス12又は対応する機能性及びあて先デバイス14又は対応する機能性を有してもよい。かような実施形態では、発信元デバイス12又は対応する機能性及びあて先デバイス14又は対応する機能性は、同じハードウェア及び/又はソフトウェアを用いて、あるいは、別個のハードウェア及び/又はソフトウェア又はそれらの任意の組み合わせによって、実装されてよい。
説明に基づいて当業者にとって明らかなように、異なるユニットの機能性、あるいは、図1Aに示されるような発信元デバイス12及び/又はあて先デバイス14内の機能性の存在及び(厳密な)分割は、実際のデバイス及び用途に応じて様々であってよい。
符号器20(例えば、ビデオ符号器20)及び復号器30(例えば、ビデオ復号器30)は夫々、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリートロジック、ハードウェア、又はそれらの任意の組み合わせなどの、様々な適切な回路のいずれかとして実装されてよい。技術が部分的にソフトウェアで実装される場合に、デバイスは、適切な、非一時的なコンピュータ可読記憶媒体にソフトウェアのための命令を記憶してよく、本開示の技術を実行するために1つ以上のプロセッサを用いてハードウェアで命令を実行してよい。上記(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、などを含む)のいずれかは、1つ以上のプロセッサであると見なされてもよい。ビデオ符号器20及びビデオ復号器30の夫々は、1つ以上の符号器又は復号器に含まれてもよく、それらのどちらも、各々のデバイスにおいて複合型符号器/復号器(CODEC)の部分として組み込まれてよい。
発信元デバイス12は、ビデオ符号化デバイス又はビデオ符号化装置と呼ばれ得る。あて先デバイス14は、ビデオ復号化デバイス又はビデオ復号化装置と呼ばれ得る。発信元デバイス12及びあて先デバイス14は、ビデオコーディングデバイス又はビデオコーディング装置の例であってよい。
発信元デバイス12及びあて先デバイス14は、あらゆる種類の手持ち式又は固定デバイス、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話機、スマートフォン、タブレット若しくはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セット・トップ・ボックス、テレビ受像機、表示デバイス、デジタルメディアプレイヤー、ビデオゲーム機、ビデオストリーミングデバイス(例えば、コンテンツサービスサーバ若しくはコンテンツ配信サーバ)、放送受信デバイス、放送送信デバイス、などを含む、幅広いデバイスのいずれかを有してよく、オペレーティングシステムを使用しなくても、又はあらゆる種類のオペレーティングシステムを使用してもよい。
いくつかの場合に、発信元デバイス12及びあて先デバイス14は、無線通信に対する機能を備えていてもよい。よって、発信元デバイス12及びあて先デバイス14は、無線通信デバイスであってよい。
いくつかの場合に、図1Aに表されているビデオコーディングシステム10は、単に例にすぎず、本願の技術は、符号化及び復号化デバイスの間の如何なるデータ通信も必ずしも含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用されてもよい。他の例では、データは、ローカルメモリから取り出されるか、ネットワーク上でストリーミングされるか、などされてよい。ビデオ符号化デバイスは、データを符号化してメモリに格納してよく、かつ/あるいは、ビデオ復号化デバイスは、データをメモリから取り出して復号してよい。いくつかの例では、符号化及び復号化は、互いに通信せず、単にデータをメモリに符号化しかつ/あるいはデータをメモリから取り出して復号するデバイスによって実行される。
ビデオ符号器20を参照して記載される上記の例の夫々について、ビデオ復号器30は、逆のプロセスを実行するよう構成されてよい、ことが理解されるべきである。シンタックス要素を通知することに関して、ビデオ復号器30は、そのようなシンタックス要素を受信及びパースし、それに応じて関連するビデオデータを復号するよう構成されてよい。いくつかの例では、ビデオ符号器20は、1つ以上のシンタックス要素を、符号化されたビデオビットストリーム内にエントロピ符号化してよい。かような例では、ビデオ復号器30は、そのようなシンタックス要素をパースし、それに応じて関連するビデオデータを復号してよい。
図1Bは、例となる実施形態に従う、図2の符号器20及び/又は図3の復号器30を含む、他の例となるビデオコーディングシステム40の実例となる図である。システム40は、本願で記載される様々な例に従う技術を実装することができる。図示されている実施では、ビデオコーディングシステム40は、撮像デバイス41、ビデオ符号器100、ビデオ復号器30(及び/又は処理ユニット46の論理回路47により実装されるビデオコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリストア44、及び/又は表示デバイス45を含んでよい。
図示されるように、撮像デバイス41、アンテナ42、処理ユニット46、論理回路47、ビデオ符号器20、ビデオ復号器30、プロセッサ43、メモリストア44、及び/又は表示デバイス45は、互いに通信する能力を有してよい。説明されるように、ビデオ符号器20及びビデオ復号器30の両方が表されているが、ビデオコーディングシステム40は、様々な例においてビデオ符号器20しか又はビデオ復号器30しか含まなくてもよい。
示されるように、いくつかの例では、ビデオコーディングシステム40はアンテナ42を含んでよい。アンテナ42は、例えば、ビデオデータの符号化されたビットストリームを送信又は受信するよう構成されてよい。更に、いくつかの例では、ビデオコーディングシステム40は表示デバイス45を含んでもよい。表示デバイス45は、ビデオデータを提示するよう構成されてよい。示されるように、いくつかの例では、論理回路47は、処理ユニット46により実装されてよい。処理ユニット46は、特定用途向け集積回路(ASIC)ロジック、グラフィクスプロセッサ、汎用プロセッサ、などを含んでよい。ビデオコーディングシステム40はまた、任意のプロセッサ43も含んでよく、プロセッサ43は、同様に、特定用途向け集積回路(ASIC)ロジック、グラフィクスプロセッサ、汎用プロセッサ、などを含んでよい。いくつかの例では、論理回路47は、ハードウェア、ビデオコーディング専用ハードウェア、などにより実施されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、などを実装されてよい。その上、メモリストア44は、揮発性メモリ(例えば、静的ランダム・アクセス・メモリ(SRAM)、動的ランダム・アクセス・メモリ(DRAM)、など)又は不揮発性メモリ(例えば、フラッシュメモリ、など)、などのような如何なるタイプのメモリであってもよい。非限定的な例では、メモリストア44は、キャッシュメモリによって実装されてよい。いくつかの例では、論理回路47は、(例えば、画像バッファの実装のために)メモリストア44にアクセスしてよい。他の例では、論理回路47及び/又は処理ユニット46は、画像バッファなどの実装のためにメモリストア(例えば、キャッシュなど)を含んでもよい。
いくつかの例では、論理回路により実装されるビデオ符号器100は、画像バッファ(例えば、処理ユニット46又はメモリストア44のどちらか一方による)及びグラフィクス処理ユニット(例えば、処理ユニット46による)を含んでよい。グラフィクス処理ユニットは、画像バッファへ通信可能に結合されてよい。グラフィクス処理ユニットは、図2に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の符号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるビデオ符号器100を含んでよい。論理回路は、ここで説明されている様々な動作を実行するよう構成されてよい。
ビデオ復号器30は、図3の復号器30に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の復号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるように同様にして実装されてよい。いくつかの例では、ビデオ復号器30は、論理回路により実装されてよく、画像バッファ(例えば、処理ユニット420又はメモリストア44のどちらか一方による)及びグラフィクス処理ユニット(例えば、処理ユニット46による)を含んでよい。グラフィクス処理ユニットは、画像バッファへ通信可能に結合されてよい。グラフィクス処理ユニットは、図3に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の復号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるビデオ復号器30を含んでよい。
いくつかの例では、ビデオコーディングシステム40のアンテナ42は、ビデオデータの符号化されたビットストリームを受信するよう構成されてよい。説明されるように、符号化されたビットストリームは、コーディングパーティションに関連したデータ(例えば、変換係数若しくは量子化された変換係数、(説明されたような)任意のインジケータ、及び/又はコーディングパーティションを定義するデータ)などの、ここで説明されているようなビデオフレームを符号化することに関連したデータ、インジケータ、インデックス値、モード選択データなどを含んでよい。ビデオコーディングシステム40はまた、アンテナ42へ結合され、符号化されたビットストリームを復号するよう構成されたビデオ復号器30を含んでもよい。表示デバイス45は、ビデオフレームを提示するよう構成される。
符号器及び符号化方法
図2は、本願の技術を実装するよう構成される、例となるビデオ符号器20の概略/概念ブロック図を示す。図2の例では、ビデオ符号器20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、及び逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号化ピクチャバッファ(DPB)230、予測処理ユニット260、及びエントロピ符号化ユニット270を有する。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでよい。図2に示されるビデオ符号器20は、ハイブリッドビデオ符号器、又はハイブリッドビデオコーデックに従うビデオ符号器とも呼ばれ得る。
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピ符号化ユニット270は、符号器20の順方向信号パスを形成し、一方、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号化ピクチャバッファ(DPB)230、予測処理ユニット260は、符号器の逆方向信号パスを形成し、符号器の逆方向信号パスは、復号器の信号パスに対応する(図3の復号器30を参照)。
符号器20は、例えば、入力部202によって、ピクチャ201又はピクチャ201のブロック203、例えば、ビデオ又はビデオシーケンスを形成するピクチャの連続のピクチャ、を受け取るよう構成される。ピクチャブロック203は、現在のピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれることがあり、ピクチャ201は、現在のピクチャ又はコーディングされるべきピクチャとも呼ばれることがある(特に、ビデオコーディングにおいて、現在のピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在のピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するため)。
パーティショニング
符号器20の実施形態は、ピクチャ201を複数のブロック、例えば、ブロック203のようなブロックに、通常は、複数の重なり合わないブロックに分割するよう構成されたパーティショニングユニット(図2に図示せず)を有してよい。パーティショニングユニットは、ビデオシーケンスの全てのピクチャに対して同じブロックサイズ及びそのブロックサイズを定義する対応するグリッドを使用するよう、あるいは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変え、各ピクチャを対応するブロックに分割するよう構成されてよい。
一例において、ビデオ符号器20の予測処理ユニット260は、上記のパーティショニング技術の任意の組み合わせを実行するよう構成されてよい。
ピクチャ201と同様に、ブロック203も、ピクチャ201よりも小さい寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ若しくはマトリクスであるか、又はそのようなものと見なされ得る。すなわち、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ201の場合にルーマアレイ)又は3つのサンプルアレイ(例えば、カラーピクチャ201の場合にルーマ及び2つのクロマアレイ)又はあらゆる他の数及び/又は種類のアレイを、適用される色フォーマットに応じて有してよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。
図2に示されるビデオ符号器20は、ピクチャ201をブロックごとに符号化するよう構成され、例えば、符号化及び予測は、ブロック203ごとに実行される。
パーティショニングユニットは、ビデオシーケンスからのピクチャをコーディング・ツリー・ユニット(CTU)の連続に分割するよう構成されてよく、パーティショニングユニットは、コーディング・ツリー・ユニット(CTU)を、より小さいパーティション、例えば、正方形又は長方形サイズのより小さいブロックに分割(又は分裂)してよい。3つのサンプルアレイを有するピクチャについて、CTUは、クロマサンプルの2つの対応するブロックとともにルーマサンプルのN×Nブロックから成る。CTUにおけるルーマブロックの最大許容サイズは、開発中のversatile video coding(VVC)では128×128であると規定されるが、それは、将来的には128×128ではない値、例えば、256×256であるよう規定され得る。ピクチャのCTUは、スライス/タイルグループ、タイル又はブリックとしてクラスタ化/グループ化されてよい。タイルは、ピクチャの長方形領域をカバーし、タイルは、1つ以上のブリックに分割され得る。ブリックは、タイル内の多数のCTU行から成る。複数のブリックに分割されないタイルは、ブリックと呼ばれ得る。しかし、ブリックは、タイルの完全なサブセットであり、タイルとは呼ばれない。VVCにおいてサポートされるタイルグループの2つのモード、すなわち、ラスタスキャンスライス/タイルグループモード及び長方形スライスモードが存在する。ラスタスキャンタイルグループモードでは、スライス/タイルグループは、ピクチャのタイルラスタスキャンにおけるタイルの連続を含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を集合的に形成するピクチャの多数のブリックを含む。長方形スライス内のブリックは、スライスのブリックラスタスキャンの順になっている。これらのより小さいブロック(サブブロックとも呼ばれ得る)は、より一層小さいパーティションに更に分割されてよい。これはまた、ツリーパーティショニング又は階層ツリーパーティショニングとも呼ばれ、例えば、根ツリーレベル0(階層レベル0、デプス0)にある、根ブロックは、例えば、次に下のツリーレベルの2つ以上のブロック、例えば、ツリーレベル1(階層レベル1、デプス1)にあるノード、に再帰的に分割されてよく、これらのブロックは、例えば、最大ツリーデプス又は最小ブロックサイズが到達されるなど、例えば、終了基準が満たされるために、パーティショニングが終了されるまで、再び、次に下のレベル、例えば、ツリーレベル2(階層レベル2、デプス2)など、の2つ以上のブロックに分割されてよい。それ以上分割されないブロックは、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションへのパーティショニングを使用するツリーは、二分木(BT)と呼ばれ、3つのパーティションへのパーティショニングを使用するツリーは、三分木(TT)と呼ばれ、4つのパーティションへのパーティショニングを使用するツリーは、四分木(QT)と呼ばれる。
例えば、コーディング・ツリー・ユニット(CTU)は、ルーマサンプルのCTB、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面及びシンタックス構造を用いてコーディングされるピクチャのサンプルのCTBであっても、又はそれを有してもよい。相応して、コーディング・ツリー・ブロック(CTB)は、CTBへのコンポーネントの分割がパーティショニングであるように、何らかのNの値について、サンプルのN×Nブロックであってよい。コーディング・ユニット(CU)は、ルーマサンプルのコーディング・ブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディング・ブロック、又はモノクロピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面及びシンタックス構造を用いてコーディングされるピクチャのサンプルのコーディング・ブロックであっても、又はそれを有してもよい。相応して、コーディング・ブロック(CB)は、コーディング・ブロックへのCTBの分割がパーティショニングであるように、何らかのM及びNの値について、サンプルのM×Nブロックであってよい。
実施形態において、例えば、HEVCに従って、コーディング・ツリー・ユニット(CTU)は、コーディング・ツリーとして表される四分木構造を使用することによって、CUに分割されてよい。インターピクチャ(時間的)又はイントラピクチャ(空間的)予測を用いてピクチャエリアをコーディングすべきかどうかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに従って、1つ、2つ又は4つのPUに更に分割され得る。1つのPU内では、同じ予測プロセスが適用され、関連情報は、PUベースで復号器へ送られる。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、リーフCUは、CUのためのコーディング・ツリーに類似した他の四分木構造に従って、変換ユニット(TU)に分割され得る。
実施形態において、例えば、Versatile Video Coding(VVC)と呼ばれる、現在開発中の最新のビデオコーディング標準規格に従って、二分木及び三分木分割セグメンテーション構造を使用する複合的な四分木入れ子型マルチタイプツリーが、例えば、コーディング・ツリー・ユニットを分割するために使用される。コーディング・ツリー・ユニット内のコーディング・ツリー構造において、CUは、正方形又は長方形形状のどちらか一方を有することができる。例えば、コーディング・ツリー・ユニット(CTU)は、最初に、四分木によって分割される。次いで、四分木リーフノードは、マルチタイプツリー構造によって更に分割され得る。マルチタイプツリー構造には4つの分割タイプ、すなわち、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)、及び水平三分割(SPLIT_TT_HOR)が存在する。マルチタイプツリーリーフノードは、コーディング・ユニット(CU)と呼ばれ、CUが最大変換長に対して大きすぎない限り、このセグメンテーションは、それ以上のパーティショニングなしで予測及び変換処理のために使用される。これは、ほとんどの場合に、CU、PU及びTUが四分木入れ子型マルチタイプツリーコーディング・ブロック構造で同じブロックサイズを有している、ことを意味する。例外は、最大対応変換長がCUの色成分の幅又は高さよりも小さい場合に起こる。VVCは、四分木入れ子型マルチタイプツリーコーディング・ツリー構造においてパーティション分割情報の独自のシグナリングメカニズムを開発している。そのシグナリングメカニズムでは、コーディング・ツリー・ユニット(CTU)は、四分木の根として扱われ、最初に四分木ツリー構造によって分割される。各四分木リーフノード(それを可能にするほど十分に大きい場合)は、次いで、マルチタイプツリー構造によって更に分割される。マルチタイプツリー構造では、第1フラグ(mtt_split_cu_flag)が、ノードが更に分割されるかどうかを示すために通知される。ノードが更に分割される場合に、第2フラグ(mtt_split_cu_vertical_flag)が、分割方向を示すために通知され、それから、第3フラグ(mtt_split_cu_binary_flag)が、分割が二分割又は三分割であるかどうかを示すために通知される。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)は、事前に定義された規則又はテーブルに基づいて復号器によって導出され得る。留意されるべきは、特定の設計、例えば、VVCハードウェア復号器における64×64ルーマブロック及び32×32クロマパイプライニング設計については、TT分割は、ルーマコーディングブロックの幅又は高さのどちらか一方が64よりも大きい場合に禁止される点である。TT分割は、クロマコーディングブロックの幅又は高さのどちらか一方が32よりも大きい場合にも禁止される。パイプライニング設計は、ピクチャ内の重なり合わないユニットとして定義される仮想パイプラインデータユニットs(VPDU)にピクチャを分割することになる。ハードウェア復号器では、連続するVPDUが同時に多重パイプライン段によって処理される。VPDUサイズは、ほとんどのパイプライン段においてバッファサイズにおおよそ比例するので、VPDUサイズを小さく保つことが重要である。ほとんどのハードウェア復号器では、VPDUサイズは、最大変換ブロック(TB)サイズにセットされ得る。しかし、VVCでは、三分木(TT)及び二分木(BT)パーティションは、VPDUサイズの増大をもたらすことがある。
更には、留意されるべきは、ツリーノードブロックの一部が下又は右ピクチャ境界を越える場合に、ツリーノードブロックは、あらゆるコーディングされたCUの全サンプルがピクチャ境界内に位置するまで分割されることを強いられる点である。
例として、イントラサブパーティションズ(ISP)ツールは、ブロックサイズに応じて、ルーマイントラ予測されたブロックを垂直又は水平に2つ又は4つのサブパーティションに分割してよい。
残差計算
残差計算ユニット204は、例えば、サンプル領域において残差ブロック205を得るようサンプルごと(ピクセルごと)にピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減じることによって、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は後で与えられる)に基づいて残差ブロック205を計算するよう構成される。
変換
変換処理ユニット206は、変換領域において変換係数207を得るよう残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)を適用するよう構成される。変換係数207は、変換残差係数とも呼ばれ、変換領域において残差ブロック205を表し得る。
変換処理ユニット206は、HEVC/H.265のために規定された変換などのDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比較して、そのような整数近似は、通常、特定の係数によってスケーリングされる。順方向及び逆方向変換によって処理される残差ブロックのノルムを保つために、追加のスケーリング係数が変換プロセスの部分として適用される。スケーリング係数は、通常、シフト演算のための2のべき乗であるスケーリング係数、変換係数のビットデプス、精度と実施コストと間のトレードオフ、などのような特定の制約に基づいて選択される。具体的なスケーリング係数は、例えば、復号器30における、例えば、逆変換処理ユニット212による、逆変換(及び符号器20における、例えば、逆変換処理ユニット212による、対応する逆変換)のために、指定され、符号器20における、例えば、変換処理ユニット206による、順方向変換のための対応するスケーリング係数は、それに応じて指定されてよい。
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することによって、量子化された変換係数209を得るように変換係数207を量子化するよう構成される。量子化された変換係数209は、量子化された残差係数209とも呼ばれ得る。量子化プロセスは、変換係数207の一部又は全てに関連したビットデプスを低減し得る。例えば、nがmよりも大きいとして、nビット変換係数は、量子化中にmビット変換係数に切り下げら得る。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラー量子化については、異なるスケーリングが、より細かい又はより粗い量子化を達成するために適用されてよい。より小さい量子化ステップサイズは、より細かい量子化に対応し、一方、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義された組へのインデックスであってよい。例えば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、逆もまた同じである。量子化は、量子化ステップサイズによる除算を含んでよく、例えば、逆量子化210による、対応する又は逆方向の逆量子化は、量子化ステップサイズによる乗算を含んでよい。いくつかの標準規格、例えば、HEVC、に従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。一般に、量子化ステップサイズは、除算を含む方程式の固定点近似を用いて量子化パラメータに基づいて計算され得る。追加のスケーリング係数は、量子化ステップサイズ及び量子化パラメータのための方程式の固定点近似で使用されるスケーリングのために変更される可能性がある残差ブロックのノルムを回復するよう量子化及び逆量子化のために導入されてよい。1つの例となる実施では、逆変換及び逆量子化のスケーリングは結合されてもよい。代替的に、カスタマイズされた量子化テーブルが使用され、符号器から復号器へ、例えば、ビットストリームにおいて、伝えられてもよい。量子化は、不可逆操作であり、損失は、量子化ステップサイズを大きくするほど増大する。
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用された量子化スキームの逆を適用することによって、逆量子化された係数211を得るために、量子化された係数に対して量子化ユニット208の逆量子化を適用するよう構成される。逆量子化された係数211は、逆量子化された残差係数211とも呼ばれることがあり、通常は量子化による損失により変換係数と同じではないが、変換係数207に対応する。
逆変換処理ユニット212は、サンプル領域において逆変換ブロック213を得るために、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)を適用するよう構成される。逆変換ブロック213は、逆変換逆量子化されたブロック213又は逆変換残差ブロック213とも呼ばれることがある。
再構成ユニット214(例えば、加算器214)は、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、サンプル領域において再構成されたブロック215を得るために、逆変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加えるよう構成される。
任意に、バッファユニット216(又は略して「バッファ」216)、例えば、ラインバッファ216は、例えば、イントラ予測のために、再構成されたブロック215及び各々のサンプル値をバッファリング又は格納するよう構成される。更なる実施形態では、符号器は、あらゆる種類の推定及び/又は予測、例えば、イントラ予測のために、バッファユニット216に格納されたフィルタ処理されていない再構成されたブロック及び/又は各々のサンプル値を使用するよう構成されてよい。
符号器20の実施形態は、例えば、バッファユニット216が、イントラ予測254のためにだけでなく、ループフィルタユニット220のためにも(図2に図示せず)、再構成されたブロック215を記憶するために使用されるように、及び/又は、例えば、バッファユニット216及び復号化ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。更なる実施形態は、イントラ予測254のための入力又は基礎として、フィルタ処理されたブロック221及び/又は復号化ピクチャバッファ230からのブロック若しくはサンプル(両方とも図2に図示せず)を使用するよう構成されてもよい。
ループフィルタユニット220(又は略して「ループフィルタ」220)は、フィルタ処理されたブロック221を得るために、例えば、ピクセル遷移を平滑化するために、又は別の方法でビデオ品質を改善するために、再構成されたブロック215にフィルタをかけるよう構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は他のフィルタ、例えば、バイラテラルフィルタ又は適応ループフィルタ(ALF)又は先鋭化若しくは平滑化フィルタ又は協調フィルタなどの1つ以上のループフィルタを表すよう意図される。ループフィルタユニット220は、図2では、インループフィルタであるとして示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタ処理されたブロック221は、フィルタ処理された再構成されたブロック221とも呼ばれることがある。復号化ピクチャバッファ230は、ループフィルタユニット220が再構成されたコーディング・ブロックに対してフィルタリング操作を実行した後に、再構成されたコーディング・ブロックを格納してよい。
符号器20(又はループフィルタユニット220)の実施形態は、例えば、直接に、あるいは、エントロピ符号化ユニット270又は何らかの他のエントロピコーディングユニットを介してエントロピ符号化された、ループフィルタパラメータ(例えば、サンプル適応オフセット情報)を出力するよう構成されてよく、それにより、例えば、復号器30は、復号のために同じループフィルタパラメータを受信及び適用してよい。
復号化ピクチャバッファ(DPB)230は、ビデオ符号器20によってビデオデータを符号化する際に使用される参照ピクチャデータを格納する参照ピクチャメモリであってよい。DPB230は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリデバイスを含む動的ランダム・アクセス・メモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成されてよい。DPB230及びバッファ216は、同じメモリデバイス又は別個のメモリデバイスによって提供されてよい。いくつかの例では、復号化ピクチャバッファ(DPB)230は、フィルタ処理されたブロック221を格納するよう構成される。復号化ピクチャバッファ230は、同じ現在のピクチャの又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタ処理されたブロック、例えば、前に再構成及びフィルタ処理されたブロック221を格納するよう更に構成されてよく、例えば、インター予測のために、完全な前に再構成された、すなわち、復号化された、ピクチャ(並びに対応する参照ブロック及びサンプル)及び/又は部分的に再構成された現在のピクチャ(並びに対応する参照ブロック及びサンプル)を供給してよい。いくつかの例では、再構成されたブロック215が再構成されているがインループフィルタリングなしである場合に、復号化ピクチャバッファ(DPB)230は、再構成されたブロック215を格納するよう構成される。
ブロック予測処理ユニット260とも呼ばれる予測処理ユニット260は、ブロック203(現在のピクチャ201の現在のブロック203)及び再構成されたピクチャデータ、例えば、バッファ216からの同じ(現在の)ピクチャの参照サンプル及び/又は復号化ピクチャバッファ230からの1つ又は複数の前に復号化されたピクチャからの参照ピクチャデータ231を受信又は取得するよう、かつ、予測のためにそのようなデータを処理するよう、すなわち、インター予測されたブロック245又はイントラ予測されたブロック255であり得る予測ブロック265を供給するよう、構成される。
モード選択ユニット262は、残差ブロック205の計算のために及び再構成されたブロック215の再構成のために予測モード(例えば、イントラ若しくはインター予測モード)及び/又は予測ブロック265として使用されるべき対応する予測ブロック245若しくは255を選択するよう構成されてよい。
モード選択ユニット262の実施形態は、最良の一致、すなわち、言い換えると、最小残差(最小残差とは、伝送又は記憶のためのより良い圧縮を意味する)、又は最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドとは、伝送又は記憶のためのより良い圧縮を意味する)をもたらすか、あるいは、両方を考慮又はバランスをとる予測モードを(例えば、予測処理ユニット260によってサポートされているものから)選択するよう構成されてよい。モード選択ユニット262は、レート歪み最適化(RDO)に基づいて予測モードを決定する、すなわち、最低レート歪み最適化をもたらすか、あるいは、予測モード選択基準を少なくとも満たすレート歪みに関連した予測モードを選択する、よう構成されてよい。
以下では、例となる符号器20によって実行される予測処理(例えば、予測処理ユニット260及びモード選択(例えば、モード選択ユニット262による)が、より詳細に説明される。
上述されたように、符号器20は、(所定の)予測モードの組から最良又は最適な予測モードを決定又は選択するよう構成される。予測モードの組は、例えば、イントラ予測モード及び/又はインター予測モードを有してよい。
イントラ予測モードの組は、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非指向性モード、又は、例えば、H.265で定義されるような指向性モードを有してよく、あるいは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非指向性モード、又は、例えば、開発中のH.266で定義されるような指向性モードを有してもよい。
イントラ予測モード(又は可能なイントラ予測モード)の組は、利用可能な参照ピクチャ(すなわち、例えば、DPB230に格納された、前の、少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照ピクチャの一部のみ、例えば、現在のブロックのエリアの周りの探索窓エリア、が、最良の一致を示す参照ブロックを探すために使用されるかどうか、及び/又は、例えば、ピクセル補間、例えば、ハーフ/セミペル及び/又はクォーターペル補間が適用される否か、に依存する。
上記の予測モードに加えて、スキップモード及び/又はダイレクトモードが適用されてもよい。
予測処理ユニット260は、例えば、四分木パーティショニング(QT)、二分パーティショニング(BT)若しくは三分木パーティショニング(TT)又はそれらの任意の組み合わせを繰り返し用いて、ブロック203をより小さいブロックパーティション又はサブブロックに分割するよう、かつ、例えば、ブロックパーティション又はサブブロックの夫々について予測を実行するよう更に構成されてよく、モード選択は、分割されたブロック203の木構造とブロックパーティション又はサブブロックの夫々に適用された予測モードとの選択を有する。
インター予測ユニット244は、動き推定(ME)ユニット(図2に図示せず)及び動き補償(MC)ユニット(図2に図示せず)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在のピクチャ201の現在のピクチャブロック203)及び復号されたピクチャ231、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ若しくは複数の他の/異なる前に復号されたピクチャ231の再構成されたブロックを、動き推定のために受信又は取得するよう構成される。例えば、ビデオシーケンスは、現在のピクチャ及び前に復号されたピクチャ231を有してよく、あるいは、言い換えると、現在のピクチャ及び前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャの連続の部分であっても、又はそれを形成してもよい。
符号器20は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス、・・・)及び/又は参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニット(図2に図示せず)へ供給するよう構成されてよい。このオフセットは、動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、例えば、受信するよう、かつ、インター予測ブロック245を得るためにインター予測パラメータに基づいて又はそれを用いてインター予測を実行するよう構成される。動き補償ユニット(図2に図示せず)によって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチ又は生成し、場合によりサブピクセル精度に対する補間を実行することを伴ってよい。補間フィルタリングは、既知のピクセルサンプルから更なるピクセルサンプルを生成することができ、このようにして潜在的に、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増やす。現在のピクチャブロックのPUについての動きベクトルを受け取ると、動き補償ユニット246は、参照ピクチャリストの1つにおいて、動きベクトルが指し示す予測ブロックを見つけ得る。動き補償ユニット246はまた、ビデオスライスのピクチャブロックを復号する際にビデオ復号器30によって使用されるブロック及びビデオスライスに関連したシンタックス要素を生成し得る。
イントラ予測ユニット254は、イントラ推定のために、ピクチャブロック203(現在のピクチャブロック)と、同じピクチャの1つ又は複数の前に再構成されたブロック、例えば、再構成された隣接ブロックを取得、例えば、受信するよう構成される。符号器20は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択するよう構成されてよい。
符号器20の実施形態は、最適化基準、例えば、最小残差(例えば、現在のピクチャブロック203に最も類似している予測ブロック255をもたらすイントラ予測モード)又は最小レート歪みに基づいてイントラ予測モードを選択するよう構成されてよい。
イントラ予測ユニット254は、イントラ予測パラメータ、例えば、選択されたイントラ予測モードに基づいて、イントラ予測ブロック255を決定するよう更に構成される。いずれの場合にも、ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット254はまた、イントラ予測パラメータ、すなわち、そのブロックのための選択されたイントラ予測モードを示す情報をエントロピ符号化ユニット270へ供給するよう構成される。一例において、イントラ予測ユニット254は、後述されるイントラ予測技術の任意の組み合わせを実行するよう構成されてよい。
エントロピ符号化ユニット270は、エントロピ符号化アルゴリズム若しくはスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CALVC)、算術コーディングスキーム、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応二値算術コーディング(SBAC)、確率区間パーティショニングエントロピ(PIPE)コーディング又は他のエントロピ符号化メッソドロジ若しくは技術)を量子化された残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータに対して個別的に又は一緒に適用して(又は全く適用せずに)、出力部272によって、例えば、符号化されたビットストリーム21の形で、出力され得る符号化されたピクチャデータ21を得るよう構成される。符号化されたビットストリーム21は、ビデオ復号器30へ送られるか、あるいは、後の伝送又はビデオ復号器30による読み出しのためにアーカイブ保管されてよい。エントロピ符号化ユニット270は、コーディング中の現在のビデオスライスのための残りのシンタックス要素をエントロピ符号化するよう更に構成され得る。
ビデオ符号器20の他の構造変形物は、ビデオストリームを符号化するために使用され得る。例えば、非変換に基づく符号器20は、特定のブロック又はフレームについて変換処理ユニット206によらずに直接に残差信号を量子化することができる。他の実施では、符号器20は、単一のユニットにまとめられた量子化ユニット208及び逆量子化ユニット210を有することができる。
図3は、本願の技術を実装するよう構成される、例となるビデオ復号器30を示す。ビデオ復号器30は、復号されたピクチャ131を得るために、例えば、符号器100によって符号化された、符号化されたピクチャデータ(例えば、符号化されたビットストリーム)21を受信するよう構成される。復号化プロセス中に、ビデオ復号器30は、ビデオデータ、例えば、符号化されたビデオスライスのピクチャブロック及び関連するシンタックス要素を表す符号化されたビデオビットストリームをビデオ符号器100から受信する。
図3の例では、復号器30は、エントロピ復号化ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、積算器314)、バッファ316、ループフィルタ320、復号化ピクチャバッファ330及び予測処理ユニット360を有する。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含んでよい。ビデオ復号器30は、いくつかの例では、図2のビデオ符号器100に関して記載された符号化パスとおおむね逆の復号化パスを実行してよい。
エントロピ復号化ユニット304は、例えば、量子化された係数309及び/又は復号されたコーディングパラメータ(図3に図示せず)、例えば、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちの(復号された)いずれか又は全てを得るために、符号化されたピクチャデータ21に対してエントロピ復号化を実行するよう構成される。エントロピ復号化ユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を予測処理ユニット360へ転送するよう更に構成される。ビデオ復号器30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信してよい。
逆量子化ユニット310は、逆量子化ユニット110と機能が同じであってよく、逆変換処理ユニット312は、逆変換処理ユニット112と機能が同じであってよく、再構成ユニット314は、再構成ユニット114と機能が同じであってよく、バッファ316は、バッファ116と機能が同じであってよく、ループフィルタ320は、ループフィルタ120と機能が同じであってよく、復号化ピクチャバッファ330は、復号化ピクチャバッファ130と機能が同じであってよい。
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を有してよく、インター予測ユニット344は、機能がインター予測ユニット144に似ていてよく、イントラ予測ユニット354は、機能がイントラ予測ユニット154に似ていてよい。予測処理ユニット360は、通常は、ブロック予測を実行しかつ/あるいは符号化されたデータ21から予測ブロック365を取得するよう、かつ、予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えば、エントロピ復号化ユニット304から、(明示的又は暗黙的に)受信又は取得するよう構成される。
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされる場合に、予測処理ユニット360のイントラ予測ユニット354は、通知されたイントラ予測モードと、現在のフレーム又はピクチャの中の前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのピクチャブロックについて予測ブロック365を生成するよう構成される。ビデオフレームがインターコーディングされた(すなわち、B又はP)スライスとしてコーディングされる場合に、予測処理ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピ復号化ユニット304から受け取られた動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについて予測ブロック365を生成するよう構成される。インター予測については、予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成されてよい。ビデオ復号器30は、参照フレームリスト、List0及びList1を、DPB330に格納されている参照ピクチャに基づいてデフォルトの構成技術を用いて構成してよい。
予測処理ユニット360は、動きベクトル及び他のシンタックス要素をパースすることによって現在のビデオスライスのビデオブロックについて予測情報を決定するよう構成され、予測情報を使用して、復号化中の現在のビデオブロックについての予測ブロックを生成する。例えば、予測処理ユニット360は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスのための参照ピクチャリストの1つ以上についての構成情報、スライスの各インター符号化されたビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックのインター予測ステータス、及び現在のビデオスライス内のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のいくつかを使用する。
逆量子化ユニット310は、ビットストリームにおいて供給されてエントロピ復号化ユニット304によって復号された量子化された変換係数を逆量子化、すなわち、量子化解除するよう構成される。逆量子化プロセスは、量子化の程度及び、同様に、適用されるべき逆量子化の程度を決定するためにビデオスライス内の各ビデオブロックについてビデオ符号器100によって計算された量子化パラメータの使用を含んでよい。
逆変換処理ユニット312は、ピクセル領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に類似した逆変換プロセスを変換係数に適用するよう構成される。
再構成ユニット314(例えば、加算器314)は、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足し合わせることによって、サンプル領域において再構成されたブロック315を得るために逆変換ブロック313(すなわち、再構成された残差ブロック313)を予測ブロック365に加えるよう構成される。
ループフィルタユニット320(コーディングループ内又はコーディングループ後のどちらかにある)は、フィルタ処理されたブロック321を得るために、例えば、ピクセル遷移を平滑化するか、あるいは、別の方法でビデオ品質を改善するために、再構成されたブロック315にフィルタをかけるよう構成される。一例において、ループフィルタユニット320は、後述されるフィルタリング技術の任意の組み合わせを実行するよう構成されてよい。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は他のフィルタ、例えば、バイラテラルフィルタ又は適応ループフィルタ(ALF)又は先鋭化若しくは平滑化フィルタ又は協調フィルタなどの1つ以上のループフィルタを表すよう意図される。ループフィルタユニット320は、図3では、インループフィルタであるものとして示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。
所与のフレーム又はピクチャ内の復号されたビデオブロック321は、次いで、復号化ピクチャバッファ330に格納される。復号化ピクチャバッファ330は、その後の動き補償のために使用される参照ピクチャを記憶している。
復号器30は、ユーザへの提示又は表示のために、例えば、出力部312を介して、復号化されたピクチャ311を出力するよう構成される。
ビデオ復号器30の他の変形物は、圧縮されたビットストリームを復号するために使用され得る。例えば、復号器30は、ループフィルタリングユニット320によらずに出力ビデオストリームを生成することができる。例えば、非変換に基づく復号器30は、特定のブロック又はフレームについて逆変換処理ユニット312によらずに直接に残差信号を逆量子化することができる。他の実施では、ビデオ復号器30は、単一のユニットにまとめられた逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
図4は、本開示の実施形態に従うビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここで記載されているような開示されている実施形態を実装するのに適している。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオ復号器30のような復号器又は図1Aのビデオ符号器20のような符号器であってよい。実施形態において、ビデオコーディングデバイス400は、上述されたような図1Aのビデオ復号器30又は図1Aのビデオ符号器20の1つ以上のコンポーネントであってよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410及び受信器ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450と、データを記憶するためのメモリ460とを有する。ビデオコーディングデバイス400はまた、光又は電気信号の出又は入りのために入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450へ結合された光電気(OE)コンポーネント及び電気光(EO)コンポーネントを有してもよい。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を有する。コーディングモジュール470は、上述された開示されている実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング動作を実装、処理、準備、又は提供する。コーディングモジュール470の包含は、従って、ビデオコーディングデバイス400の機能性に実質的な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形を達成する。代替的に、コーディングモジュール470は、メモリ460に記憶されておりプロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを有し、プログラムを、そのようなプログラムが実行のために選択される場合に、記憶するよう、かつ、プログラム実行中に読み出される命令及びデータを記憶するよう、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、三値連想メモリ(TCAM)、及び/又は静的ランダム・アクセス・メモリ(SRAM)であってよい。
図5は、例となる実施形態に従って図1の発信元デバイス310及びあて先デバイス320のどちらか一方又は両方として使用され得る装置500の略ブロック図である。装置500は、上述された本願の技術を実装することができる。装置500は、複数のコンピューティングデバイスを含むコンピューティングシステムの形、又は単一のコンピューティングデバイス、例えば、携帯電話機、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、などの形をとることができる。
装置500内のプロセッサ502は、中央演算処理装置であることができる。あるいは、プロセッサ502は、現在存在しているか又は今後開発される、情報を操作又は処理することができるあらゆる他のタイプのデバイス又は複数のデバイスであることができる。開示されている実施は、示されるように単一のプロセッサ、例えば、プロセッサ502により実施され得るが、速度及び効率の優位性は、1つよりも多いプロセッサを用いて達成され得る。
装置500内のメモリ504は、実施においてリード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスであることができる。あらゆる他の適切なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここで記載されている方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここで記載されている方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1からNを含むことができる。装置500はまた、例えば、モバイルコンピューティングデバイスとともに使用されるメモリカードであることができる二次記憶装置514の形で追加のメモリも含むことができる。ビデオ通信セッションは、相当量の情報を含むことがあるので、それらは全体として又は部分的に二次記憶装置514に格納され、処理の必要に応じてメモリ504にロードされ得る。
装置500はまた、ディスプレイ518などの1つ以上の出力デバイスも含むことができる。ディスプレイ518は、一例において、タッチ入力を検知するよう動作可能であるタッチ検知素子とディスプレイを組み合わせるタッチ検知ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502へ結合され得る。ユーザが装置500をプログラム又は別の方法で使用することを可能にする他の出力デバイスが、ディスプレイ518に加えて又はそれに代わるものとして設けられ得る。出力デバイスがデバイスプレイであるか又はそれを含む場合に、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ又は有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイを含む様々な方法で実装され得る。
装置500はまた、イメージ検知デバイス520、例えば、カメラ、あるいは、装置500を操作するユーザのイメージなどのイメージを検知することができる、現在存在しているか又は今後開発されるあらゆる他のイメージ検知デバイス520を含むか、又はそれと通信することができる。イメージ検知デバイス520は、それが装置500を操作するユーザの方に向けられるように位置付けられ得る。例において、イメージ検知デバイス520の位置及び光軸は、視野が、ディスプレイ518の直ぐ隣にあって、ディスプレイ518が目に見えるエリアを含むように、設定され得る。
装置500はまた、音響検知デバイス522、例えば、マイクロホン、あるいは、装置500の近くの音響を検知することができる、現在存在しているか又は今後開発されるあらゆる他の音響検知デバイスを含むか、又はそれと通信することができる。音響検知デバイス522は、それが装置500を操作するユーザの方に向けられるように位置付けられ得、そして、ユーザが装置500を操作している間にユーザによって発せられる音響、例えば、発話又は他の発声を受け取るよう構成され得る。
図5は、装置500のプロセッサ502及びメモリ504を単一のユニットに組み込まれるものとして表すが、他の構成が利用可能である。プロセッサ502の動作は、直接に又はローカルエリア若しくは他のネットワークをわたって結合され得る複数のマシン(各マシンは1つ以上のプロセッサを有する)にわたって分散させられることができる。メモリ504は、ネットワークベースメモリ又は、装置500の動作を実行する複数のマシン内のメモリなどのように、複数のマシンにわたって分散させられることができる。ここでは単一のバスとして表されているが、装置500のバス512は、複数のバスから構成され得る。更に、二次記憶装置514は、装置500の他のコンポーネントへ直接に結合され得るか、あるいは、ネットワークを介してアクセス可能であり、メモリカードのような単一の集積ユニット又は複数のメモリカードのような複数のユニットを有することができる。装置500は、このようにして多種多様な構成において実装され得る。
ビデオ符号器20は、入力ビデオフレームを、符号化の前に、ブロックに分割してよい。本開示における「ブロック」という用語は、あらゆるタイプのブロックに対して又はあらゆるデプスのブロックに対して使用され、例えば、「ブロック」という用語は、根ブロック、ブロック、サブブロック、リーフノード、などを含まれるがこれらに限られない。コーディングされるべきブロックは、必ずしも同じサイズを有さない。1つのピクチャは、異なるサイズのブロックを含んでよく、ビデオシーケンスの異なるピクチャのブロックラスタも異なってよい。図6A〜6Eは、VVCにおけるコーディング・ツリー・ユニット(CTU)/コーディング・ユニット(CU)分割モードを図解する。
図6Aは、四分木(QT)分割を採用することによるブロックパーティション構造を図解する。QTは、サイズ4M×4Nのノードがサイズ2M×2Nの4つの子ノードに分割され得るブロックパーティションについての木構造である。
図6Bは、垂直方向における二分木(BT)分割を採用することによるブロックパーティション構造を図解する。
図6Cは、水平方向における二分木(BT)分割を採用することによるブロックパーティション構造を図解する。BTは、サイズ4M×4Nのノードが水平にサイズ4M×2Nの2つの子ノードに分割されるか、又は垂直にサイズ2M×4Nの2つの子ノードに分割されるかのどちらかであり得るブロックパーティションについての木構造である。
図6Dは、垂直方向における三分木(TT)分割を採用することによるブロックパーティション構造を図解する。
図6Eは、水平方向における三分木(TT)分割を採用することによるブロックパーティション構造を図解する。TTは、サイズ4M×4Nのノードが水平に夫々サイズ4M×N、4M×2N、及び4M×Nの3つの子ノードに分割されるか、又は垂直に夫々サイズM×4N、2M×4N、及びM×4Nの3つの子ノードに分割されるかのどちらかであり得るブロックパーティションについての木構造である。図6D又は図6Eに示される3つの子ノードの中で、最大のノードは中央に位置付けられる。
四分木プラス二分木(QTBT)は、ブロックが最初に四分木分割を用いて分割され、それから各四分木子ノードが二分木分割を用いて更に分割され得る四分木プラス二分木構造である。四分木プラス二分木又は三分木(QT−BT/TT)は、ブロックが最初に四分木分割を用いて分割され、それから各四分木子ノードが二分木又は三分木分割を用いて更に分割され得る四分木プラス二分木又は三分木構造である。
特定のパーティションデプスに関連したブロックについては、符号器20は、どのパーティションタイプ(これ以上の分割を含まない)が使用されるかを決定し、決定されたパーティションタイプを明示的に又は暗黙的に(例えば、パーティションタイプは所定の規則から導出され得る)復号器30へ通知する。符号器20は、例えば、異なるパーティションタイプを用いてそのブロックについてレート歪みコストを確認することに基づいて、使用すべきパーティションタイプを決定してよい。
本発明における「ブロック」という用語は、根ブロック、ブロック、サブブロック、リーフノード、などを含むがこれらに限られない一般化された用語である。
ビデオコーディング標準規格は、HEVC/H.265標準規格で使用されているシングルツリー(ST)コーディングに加えてデュアルツリー(DT)コーディングを導入している。ST又はDTは、スライス又はフレームタイプ(例えば、イントラフレーム又はインターフレーム、イントラスライス又はインタースライス)に基づいて選択される。シングルツリーコーディングモードの下で、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分は、同じパーティショニングツリーを共有する。デュアルツリーコーディングモードの下で、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分は、別々に、すなわち、ルーマ及びクロマ成分に対してパーティショニングの独立したスキームを用いて、分割される。
ピクチャ圧縮レベルは、(例えば、同じ量子化パラメータ値を使用することによって)ピクチャ全体に対して固定であり得るか、又はピクチャの異なる領域ごとに異なる量子化パラメータ値を有し得る量子化パラメータ(QP)によって制御される。
量子化パラメータを決定するための1つの解決法は、コーディング・ユニット(CU)レベルでの量子化パラメータ(QP)シグナリングである。このアプローチは、特にいくつかのCUデプス(すなわち、パーティションのレイヤを定義するパーティションデプス)で、ピクチャの異なる領域ごとにQP値を柔軟に変更することを可能にする。ピクチャの特定の領域についてのQPを通知するために、デルタQPシグナリング方法が使用される。この方法では、予測されたQP(QPc_pred)と現在の領域の実際のQPとの間の差(すなわち、デルタQP)は、ビットストリームを介して通知される。デルタQP値及びその粒度(例えば、分割されたブロックのサイズ)は、ピクチャパラメータセット(PPS)内のオンオフ制御フラグ及び最大デプス(例えば、デルタQPシンタックス要素)によって定義される。より高いパーティションデプスを有する全てのCUについては、デルタQP値は通知されず、最高位のCUから受け継いでよい。HEVC標準規格では、ルミナンス(又はルーマ)コーディングブロック(CB)についてのQP値は、予測されたQP(qPY_PRED)に基づいて導出され、これは、次いで、フレーム/スライス/タイル内のCB位置に依存する。それから、QpY変数は、次の式1:
QpY=((qPY_PRED+CuQpDeltaVal+52+2*QpBdOffsetY)%(52+QpBdOffsetY))−QpBdOffsetY
(式1)
によって導出される。
ここで、CuQpDeltaValは、コーディング・ユニット(CU)について通知又は導出されるデルタQP値であり、QpBdOffsetYは、ルーマビットデプス(HEVC標準規格から、この用語は、「ルーマアレイのサンプルのビットデプス」に対応する)に依存した一定のオフセットである。最後に、ルミナンス(又はルーマ)成分の量子化パラメータQp’Yは、次の式2:
Qp’Y=QpY+QpBdOffsetY (式2)
によって計算され得る。
変数qPCb及びqPCrは、夫々qPiCb又はqPiCrに等しいインデックスqPiに基づいて量子化テーブル(例えば、表1)で指定されるQpCの値に等しくセットされ、qPiCb及びqPiCrは、式3によって次の通りに導出される:
qPiCb=Clip3(−QpBdOffsetC,57,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,57,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
(式3)
ここで、QpBdOffsetCは、クロマビットデプス(HEVC標準規格から、この用語は、「クロマアレイのサンプルのビットデプス」に対応する)に依存した一定のオフセットであり、pps_cb_qp_offset又はpps_cr_qp_offsetは、ピクチャパラメータセット(PPS)によって通知されるCb成分又はCr成分についての固定オフセットであり、slice_cb_qp_offset又はslice_cr_qp_offsetは、スライスヘッダにおいて通知されるCb成分又はCr成分についての固定オフセットである。
Cb及びCr成分についてのクロマ量子化パラメータ(Qp’Cb及びQp’Cr、は、式5を次の通りに導出される:
Qp’Cb=qPCb+QpBdOffsetC
(式5)
Qp’Cr=qPCr+QpBdOffsetC
留意されるべきは、上述されたデルタQPメカニズムは、シングルツリー(ST)に対してしか有効でなく、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分が異なるパーティショニングツリーを使用し得るためにデュアルツリー(DT)には適用され得ない点である。
概して、本発明の実施形態は、ビデオコーディングの分野に関係がある。特に、本発明の実施形態は、ビデオ復号化デバイス内の逆量子化装置の部分であるデルタQPシグナリングに関係がある。本発明の実施形態は、デュアルツリー(DT)が適用される場合にデルタQPメカニズムを適用する異なる方法を提案する。
シングルツリー(ST)に対してしか有効でない上述されたデルタQPメカニズムと同様に、ツリーのタイプ(ST又はDT)に関わらず、Cb及びCr成分のためのクロマ量子化パラメータは、式6:
Qp’Cb=qPCb+QpBdOffsetC
(式6)
Qp’Cr=qPCr+QpBdOffsetC
に従ってqPi値に基づいて導出される。
ここで、qPCb及びqPCrは、量子化テーブル又はマッピングテーブル(例えば、表1)に基づいて導出され、qPi値に依存する。シングルツリーのためのデルタQPシグナリングと対照的に、本発明の本実施形態は、次の式7:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式7)
によって従ってツリーのタイプにかかわらず(例えば、シングルツリー又はデュアルツリー)、クロミナンス(又はクロマ)成分についてのqPi値の計算を担う。
ここで、QpCbasicは、QPc_pred値に依存する基本クロマブロックQP値であり、以下で記載される種々の方法の1つで計算され得る。
留意されるべきは、計算qPiCb及びqPiCrの式7中の定数69は、量子化テーブル(例えば、表1)に従って、QP63を許容される最大のものと仮定して、選択されるので、この定数は、qPiとQpCとの間の最大差に加えられる最大QP値として計算される点である。一般的な場合に、この定数は、いくつかの値に対して予め定義されるか又は通知されてよい。
デュアルツリー(DT)コーディングアプローチは、ルーマ及びクロマ成分が異なるパーティションツリーを有し、夫々がそのパーティショニングツリー保有している、と仮定する。それは、1つのクロマブロック(すなわち、クロミナンス成分におけるブロック)が1つよりも多いルーマブロック(すなわち、ルミナンス成分におけるブロック)に対応し、あるいは、その逆もまた同じであることをもたらし得る。図8は、4:2:0クロマサブサンプリングについての例を示し、クロマブロック全体が複数の分割されたルーマブロックに対応する。図の数字は、ルーマ及びクロマ成分(又は平面)の間の同一位置の点(ピクセル)を表す。
図9は、ピクチャの現在のブロックに対して逆量子化を実行するためのプロシージャを表す例となるフローチャートである。このプロシージャは、復号器によって実行されてよい。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロックに分割される。
ステップ902:受信されたビットストリームから1つ以上の既存の量子化パラメータQP値を取得し、このとき、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。
このステップでは、既存のQP値は、現在のブロック(例えば、逆量子化によって実行されるべきブロック)に関係がある。単なる例として、そのような既存のQP値は、次の、ルーマ成分における同一位置のブロックについてのQP値、クロマ成分における現在のブロックの1つ以上の隣接ブロックのQP値、及びルーマ成分における同一位置のブロックの1つ以上の隣接ブロックのQP値、のうちの少なくとも1つを有してよい。
ルーマ成分における同一位置のブロックは、クロマ成分における現在のブロックとマッピング関係を有しているブロックである。
ステップ904:1つ以上の既存のQP値に基づいてクロミナンス(又はクロマ)成分における現在のブロックについてのQP値を決定する。
クロマ成分におけるブロックについてのQP値(又はクロマブロックQP値、すなわち、QPc_pred、)を決定する方法の種々の組が存在する。要約すれば、第1方法セットは、既存の関連するQP値(例えば、予測と見られるべき)に基づいてクロマブロックQP値を決定することに焦点を当て、第2方法セットは、既存の関連するQP値(例えば、予測と見られるべき)と、受信されたビットストリームで通知されたクロミナンスデルタQP値(例えば、デルタと見られるべき)とに基づいてクロマブロックQP値を決定することであり、第3方法セットは、既存の関連するQP値(例えば、予測と見られるべき)と、受信されたビットストリームで通知されたクロミナンスQPオフセット値(例えば、調整オフセットと見られるべき)とに基づいてクロマブロックQP値を決定することである。
ステップ906:決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する。
このステップでは、クロミナンス成分における現在のブロックについてのQP値(又はクロマブロックQP値)を決定した後、逆量子化が、クロミナンス成分におけるそのブロックに対して実行される。
図10は、ピクチャの現在のブロックに対して逆量子化を実行するためのプロシージャを表す例となるフローチャートである。このプロシージャは、符号器によって実行されてよい。
ステップ1010:このステップでは、クロミナンス成分における現在のブロックの量子化は、決定されたQPを用いて実行される。QPは、例えば、ユーザ設定によって、及び/又はレート歪み最適化によって、などで、決定されてよい。
ステップ1020:1つ以上の既存の量子化パラメータQP値が取得される。この/これらの既存のQP値はまた、ビットストリームに含まれる。1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。
ステップ1030:クロミナンス成分における現在のブロックについてのQPパラメータが、1つ以上の既存のQP値及び前記決定されたQP値に基づいて決定される/示される。特に、クロミナンス成分における現在のブロックについてのQP(決定されたQP)の値を運ぶために、パラメータはビットストリームに含められ、このとき、パラメータは、1つ以上の既存のQP値を用いて決定される。使用は、決定されたQPから1つ以上の既存のQP値を減じることによって、又は他の方法では、例えば、更なるパラメータも含む式によって、実行されてよい。
ステップ1040:次いで、QPパラメータがビットストリームに含められる。ビットストリームへの包含は、整数コード若しくは算術コード又はあらゆる他の可変長コードなどのエントロピコーディングを更に有してよい。エントロピコードは、コンテキスト適応であってよい。しかし、これらは、単なる例であり、本開示は、固定長コーディングを含むあらゆる種類のコーディングと機能し得る。
実施形態に従って、装置は、各々の符号器及び復号器で使用され得る量子化及び逆量子化のために提供される。それらは、上記の符号化及び復号化方法に対応する特徴を備える。
特に、ピクチャの現在のブロックの逆量子化のための装置であって、ピクチャがルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分が複数のブロックに分割される。装置は、図11において、装置1100として表されている。それは、次の機能ユニット(回路)を更に含む。
ビットストリームから1つ以上の既存の量子化パラメータQP値を取得するビットストリームパーサ(ビットストリームパージングユニット_(又は回路)とも呼ばれる)1110。1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。そのクロミナンス成分は、クロミナンス成分のいずれか1つ以上であってよい。
1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するQP決定ユニット(又は回路)1120。
決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する逆量子化器(逆量子化ユニット(又は回路)とも呼ばれる)1130。
ピクチャの現在のブロックの量子化のための、図12に示される装置1200も、提供される。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される。装置は、
決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行する量子化器(量子化ユニット(又は回路)とも呼ばれる)1210と、
1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQPをビットストリームに含めるフェッチユニット(又は回路)1220であり、1つ以上の既存のQP値はクロミナンス成分における現在のブロックに関係がある、フェッチユニット(又は回路)1220と、
1つ以上の既存のQP値及び前記決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するQP決定ユニット(又は回路)1230と、
QPパラメータをビットストリームに含めるビットストリーム生成ユニット(又は回路、ビットストリーム生成器とも呼ばれる)1240と
を有する。
以下は、クロマブロックQP値を決定する実施形態である。
I.1つ以上の関連する既存のQP値に基づくクロマブロックQP値の決定
第1方法セットでは、方法の3つのグループが提供される。
A.方法の第1グループ:この方法グループでは、クロマブロックQP値QPc_predは、QPc_pred_lumaと表される同一位置のルーマQP値に基づいて計算される。
(1)第1方法は、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマブロックQP値)が、ルミナンス成分における同一位置のブロックのQP値に基づいて決定されることである。クロマ平面(又は成分)での1つの点が選択され(マッピング点、例えば、点C5と表される)、QPc_pred_lumaは、ルーマ(又はルミナンス)平面における現在のマッピング点(例えば、点L5)と同一位置にあるブロックからのQP値であると決定される。例えば、図8の点C5がマッピング点として選択される場合に、QPc_pred_lumaは、ルーマコーディングブロック(例えば、点L5が位置するブロック)における対応するL5点からのルーマQP値に等しい。クロマ点のいずれもマッピング点として選択可能であることが理解されるべきであり、図8の上記の例を含むがこれに限られない。
より具体的に、式7は、次の方法で書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
(式7.1)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
更に、QpY値は、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて通常の方法で計算される。定数は64に変更された。
すなわち、例となる実施では、クロミナンス成分における現在のブロックのQPは、同一位置のブロックの(既存の)パラメータに基づいて決定される。同一位置のブロックは、現在のブロックと同一位置にあるルミナンス成分ブロックであってよい。一般に、ルミナンス(コーディング・ツリー)ブロックのパーティショニングは、(コーディング・ツリー)クロミナンスブロックのパーティショニングとは異なり得る点に留意されたい。よって、同じクロミナンスブロックと同じピクチャエリアをカバーするより多くの(又はより少ない又は同数の)ルミナンスブロックが存在し得る。よって、本例では、同一位置のブロックは、現在のクロミナンスブロックの特定の、事前に定義されたサンプルを含むエリアをカバーするルミナンスブロックとして決定される。例えば、特定のサンプルは、現在のクロミナンスブロックの右下4分の1にある左上サンプルであってよい。この例となるサンプル位置は、中心又は現在のブロックの近くに(又はそこに)位置する。しかし、本開示は、この特定のサンプル位置に限定されない。左上などの、如何なる他の位置も、取られてよい。
付録Aは、量子化パラメータの導出プロセスの詳細な例を与える。
(2)第2方法は、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマブロックQP値)が、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて決定されることである。この方法では、QP
c_pred_lumaは、同じ重みを有するいくつかの特定の点からのルーマQP値の同一位置の値に基づいて計算される。例えば、QP
c_pred_lumaは、次の式:
によって角クロマ点C
1、C
2、C
3、C
4と同一位置にある点からのルーマQP値に基づいて計算されてよい。ここで、LumaQp1,・・・,LumaQP4は、図8でL
1,L
2,L
3,L
4位置にあるルーマCUのQP値である。
(3)第3方法は、QPc_pred_lumaが、次の方法のうちの1つにおいてクロマコーディングブロック(CU)値及び同一位置のルーマCUの共通集合に基づいて計算されることである。
オプション1:クロマCUが1つのルーマCUによって完全にカバーされる場合に、QPc_pred_lumaは、ルーマCUから取られる。
オプション2:クロマCUが1つよりも多いルーマCUによってカバーされる場合、かつ、全てのそのようなルーマCUが同じQP値を有する場合に、QPc_pred_lumaは、ルーマCUから取られる。
オプション3:クロマCUが1つよりも多いルーマCUによってカバーされる場合、かつ、全てのそのようなルーマCUが同じQP値を有するわけではない場合に、QPc_pred_lumaは、ルーマCUについてのQP値の重み付き関数に基づいてルーマCUから取られ、このとき、各ルーマCUデルタQPの重みは、現在のクロマCUとルーマCUとの間の空間対応によって決定される。
B.方法の第2グループ:この方法グループでは、クロマCUのQP予測は、隣接するクロマCUのQP値(すなわち、クロミナンス成分におけるブロックの1つ以上の隣接ブロックのQP値)に基づいて計算され、QP
c_pred_chromaと表される。すなわち、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCU QP値)は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和に基づいて決定される。このグループ内の方法は、復号器側で既に利用可能である如何なる隣接クロマCUでも動作することができる。その場合に、QP
c_pred_chromaは、次の式9:
によって計算され得る。ここで、Nは、数Nを有する隣接CUの組であり、QP
nは、その組からのn番目の隣接CUに対応するQP値である。
C.方法の第3グループ:この方法グループでは、クロマCUのQP値(又は予測)は、上記の方法のいずれかで計算され得るQP
c_pred_luma及びQP
c_pred_chromaの両方に基づいて計算され、クロマCU QP予測は、QP
c_pred_mixedと表される。この方法では、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCUのQP値)は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて決定される。代替的に、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCUのQP値)は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて決定される。例えば、QP
c_pred_mixedは、QP
c_pred_luma及びQP
c_pred_chromaの加重和として計算されてよい。例において、それは、次の式10:
によって計算され得る。
II.クロマブロックQP値を決定するための第2方法セット
この方法セットでは、クロミナンス成分における現在のブロックについてのQP値(又はクロマブロックQP値)は、1つ以上の既存のQP値と、受信されたビットストリームで通知されたクロミナンスデルタQP値とに基づいて決定され、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関連している。
このセクションは、デュアルツリーが可能である場合にQpCbasic微分(又はデルタ)を決定するための種々のアプローチについて記載する。
(1)第1方法:この方法では、QpC
basic値は、第1方法セットにおける上記の対応するアプローチのいずれかで計算されるQP
c_pred_luma、QP
c_pred_chroma、又はQP
c_pred_mixed値のうちの1つから直接取られる。この方法では、デュアルツリーが使用される場合に、ルーマCUは、デルタルーマQP表現のためのシンタックス要素を有し、クロマCUは、デルタクロマQP表現のための如何なるシンタックス要素も有さない。
表2及び表3は、どのように通知メカニズムがこの方法で実装され得るかの2つの例を与える。
この方法では、QpCbasicはQPc_predに等しく、次いで、これは、QPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値のうちの1つに等しくなり得る。その場合に、Cb及びCr成分についてのqPi値は、次の式11:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式11)
によって計算され得る。ここで、QpCbasic∈{QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixed}であり、QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixedの夫々は、上記の方法の1つによって導出される。より具体的には、目下の方法をQpCbasic導出の上記の方法1と組み合わせると、式11は、次の通りに書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
(式11.1)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
そして、QpYは、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
(式11.1a)
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて従来の方法で計算される。
式11及び11.1中の定数69は、6ずつ増やされた最大可能QP値を表し、式11.1a中の定数64は、1ずつ増やされた最大可能QP値を表す。付録Aは、量子化パラメータの導出プロセスの詳細な例を与える。
この方法では、delta_qpシグナリング機能は、例えば、次の方法で、実装され得る。
表4中、シンタックス要素cu_qp_delta_enabled_flagは、デルタQPが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグIsCuLumaQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのCUブロックについては、delta_qpは、最も近い通知された1つから受け継がれる。IsCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_qp_delta_enabled_flag及びdiff_cu_qp_delta_depthは、ピクチャパラメータセット(PPS)において伝えられ得る。
より具体的に、1に等しいcu_qp_delta_enabled_flagは、diff_cu_qp_delta_depthシンタックス要素がPPSに存在することと、cu_qp_delta_abs及びcu_qp_delta_sign_flagが変換ユニットシンタックスに存在する可能性があることとを特定する。0に等しいcu_qp_delta_enabled_flagは、diff_cu_qp_delta_depthシンタックス要素がPPSに存在しないことと、cu_qp_delta_abs及びcu_qp_delta_sign_flagが変換ユニットシンタックスに存在しないこととを特定する。
cu_qp_delta_absは、現在のコーディング・ユニットのルーマ量子化パラメータとその予測との間の差CuQpDeltaValの絶対値を特定する。
cu_qp_delta_sign_flagは、次の通りにCuQpDeltaValの符号を特定する:
−cu_qp_delta_sign_flagが0に等しい場合には、対応するCuQpDeltaValは正値を有する。
−そうでない(cu_qp_delta_sign_flagが1に等しい)場合には、対応するCuQpDeltaValは負値を有する。
cu_qp_delta_sign_flagが存在しない場合に、それは、0に等しいと推測される。
cu_qp_delta_absが存在する場合に、変数IsCuQpDeltaCoded及びCuQpDeltaValは、次の通りに導出される:
IsCuQpDeltaCoded=1
CuQpDeltaVal=(−1)cu_qp_delta_sign_flag*cu_qp_delta_abs
CuQpDeltaValの値は、−(32+QpBdOffsetY/2)以上+(31+QpBdOffsetY/2)以下の範囲にあるべきである。
留意されるべきは、この方法は、あらゆるクロマCUデプスについて、あるいは、何らかの事前に定義された値よりも小さいデプスについてのみ、のどちらか一方で、Cb及びCr成分のqPiパラメータ導出のために使用され得、より高い又は等しいデプスに位置するCUブロックは、最も近い処理された1つから値を受け継ぐべきである点である。
代替的に、第1方法は、クロマ成分のデルタQPについての別個のシンタックスも通知することができる。
表6及び表7は、デュアルツリーの場合のみのクロマCUについて、あるいは、デュアルツリーの場合のクロマCU及び別個のツリーの場合のシングルCUの両方の場合について、のどちらか一方で、クロマ成分のための別個のデルタQPシンタックスシグナリングの2つの例を与える。表6及び表7からのプロシージャdelta_qp_y()及びdelta_qp_c()は、表4に示されるdelta_qp()プロシージャと同様の方法で実装される。留意されるべきは、デュアルツリーの場合のクロマCUについての及び/又はシングルCUにおけるクロマ平面についてのデルタQPシンタックスの別個のシグナリングの場合に、表4中のPPCレベル制御フラグcu_qp_delta_enabled_flagは、ルーマ及びクロマ成分の両方について一度(一緒に)、又は別々に2つの制御フラグcu_qp_delta_enabled_flag_luma及びcu_qp_delta_enabled_flag_chromaに実装され得る。
この方法がQpCbasic導出の上記の方法1と組み合わされる特定の場合を仮定すると、デュアルツリーの場合のクロマCU又は(適用される場合に)デュアルツリーの場合のクロマCU及び別個のツリーの場合のシングルCUの両方のどちらか一方のための式11は、次の通りに書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset+delta_qp_c)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset+delta_qp_c)
(式11.2)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
そして、QpY値は、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
(式11.3)
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて従来の方法で計算される。
式11.2中の定数69は、6ずつ増やされた最大可能QP値を表し、式11.3中の定数64は、1ずつ増やされた最大可能QP値を表す。
代替的に、delta_qp_c値は、Qp’Cb及びQp’Cbについての最終的な式に加えられ得る:
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c
この場合に、式11.1は、qPiCb及びqPiCr値の計算のために使用され、それから、QpCb及びQpCr値の計算は、クロマQPマッピング関数を用いてqPiCb及びqPiCrに基づいて従来の方法で実行される。従来のクロマQPマッピング関数は、表15に示される。
(2)第2方法:この方法では、QpC
basic値は、上記の対応する予測アプローチのいずれかで計算されるQP
c_pred_luma、QP
c_pred_chroma、又はQP
c_pred_mixed値の1つと、クロマCUにおいて通知され得るCuQpChromaDeltaVal値との和として導出される。この方法では、デュアルツリーの場合に、ルーマCUは、デルタルーマCU表示のためのシンタックス要素を有し、クロマCUは、デルタクロマCUの異なる表示のためのシンタックス要素を有する。
この方法では、QpCbasicは、次の式12によって計算され得る:
QpCbasic=QPc_pred+CuQpChromaDeltaVal
(式12)
ここで、QPc_pred∈{QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixed}であり、QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixedの夫々は、上記の方法の1つによって導出され、CuQpChromaDeltaValは、次の式13によって導出され得るクロマブロックのデルタQP値である:
CuQpChromaDeltaVal
=cu_chroma_qp_delta_abs*(1−2*cu_chroma_qp_delta_sign_flag)
(式13)
その場合に、Cb及びCr成分のqPi値は、次の式14によって計算され得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasis+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式14)
この方法では、delta_qp_luma及びdelta_qp_chromaシグナリング機能は、例えば、次の方法で、実装され得る。
表7中、シンタックス要素cu_luma_qp_delta_enabled_flagは、デルタルーマQPが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグIsCuLumaQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのルーマCUブロックについては、delta_luma_qp()要素が、最も近い通知された1つから受け継がれる。IsLumaCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_luma_qp_delta_enabled_flag及びdiff_cu_luma_qp_delta_depthは、PPSにおいて伝えられ得る。
表8中、シンタックス要素cu_chroma_qp_delta_enabled_flagは、デルタクロマCUが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグIsCuChromaQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのクロマCUブロックについては、delta_chroma_qp()要素が、最も近い通知された1つから受け継がれる。IsChromaCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_chroma_qp_delta_enabled_flag及びdiff_cu_chroma_qp_delta_depthは、PPSにおいて伝えられ得る。
(3)第3方法:この方法では、QpCbasic値は、上記の対応する予測アプローチのいずれかで計算されるQPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値の1つと、いくつかの事前に定義されたデプスでのクロマCUデプスに関してのみクロマCUにおいて通知され得るCuQpChromaDeltaVal値との和として導出される。事前に定義されたものよりも高いデプスを有する全てのクロマCUについては、QpCbasic値は、最も近い処理された1つから受け継がれる。この方法では、デュアルツリーの場合に、ルーマCUは、デルタルーマQP表示のためのシンタックス要素を有し、クロマCUは、事前に定義されたもの以下のデプスを有するクロマCUについてのみのデルタクロマQP表示のためのシンタックス要素を有する。
この方法では、デルタQP値は、表5及び表6に従って通知され得、delta_qp_chroma()関数は、次の方法で実装され得る:
表10中のIsChromaCuQpDeltaCodedフラグは、事前に定義されたもの以下のデプスを有するクロマCUについてのみ0に等しい。
(4)第4方法:この方法では、特別なシンタックス要素が、どのタイプの予測計算が使用されるかを特定することができる。高位要素cu_qp_chroma_der_typeは、コーデックパラメータセットの1つ、例えば、PPCにおいて通知され、いずれかの上記の予測子計算アプローチのうちのどのタイプが使用されるかを特定することができる。
この方法では、cu_qp_chroma_der_typeは、予測タイプのいずれかのグループを特定することができ、その場合に、いずれかの特定の、事前に定義された上記の予測が、グループ内で使用され得る。
留意されるべきは、cu_qp_chroma_der_typeは、組Pにおけるインデックスを表し、その場合に、Cb及びCr成分のQpCbasic値は、第1から第3までの上記の方法のうちの1つでQPc_predに基づいて導出される。
(5)第5方法:この方法では、cu_qp_chroma_der_typeは、全てのグループの間で1つの特定の予測タイプを特定することができる。例えば、可能な予測の組P={ChromaQpPredictionLuma1,・・・,ChromaQpPredictionChroma1,ChromaQpPredictionMixed1,・・・,ChromaQpPredictionMixedN}を仮定する。
留意されるべきは、cu_qp_chroma_der_typeが、組Pにおけるインデックスを表し、その場合に、Cb及びCr成分のQpCbasic値は、第1から第3までの上記の方法のうちの1つでQPc_predに基づいて導出される点であり、このとき、QPc_pred=P[cu_qp_chroma_qp_der_type]である。
III.クロマブロックQP値を決定するための第3方法セット
1つ以上の既存のQP値と、受信されたビットストリームで通知されたクロミナンスQPオフセット値(又はデルタQPオフセット)とに基づいてクロミナンス成分における現在のブロックについてのQP値を決定し、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関連している。
このセクションは、別個のツリー(ST)が可能である場合におけるクロマQPオフセットメカニズム使用を開示する。
第1方法では、Cb及びCrのQP値Qp’Cb及びQp’Crは、qPiCb及びqPiCrに基づいて計算され、このとき、qPiCb及びqPiCrは、次の式15によって計算される:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)
(式15)
ここで、QpCbasic値は、上記の対応する予測アプローチのいずれかで計算されるQPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値の1つから直接取られ、CuQpOffsetCb/CuQpOffsetCr変数は、次の式16によってcb_qp_offset_list及びcu_chroma_qp_offset_idxシンタックス要素に基づいて導出される:
CuQpOffsetCb=cb_qp_offset_list[cu_chroma_qp_offset_idx]
CuQpOffsetCr=cr_qp_offset_list[cu_chroma_qp_offset_idx]
(式16)
シンタックス要素cb_qp_offset_list及びcr_qp_offset_listは、次の方法でパラメータセットにおいて、例えば、PPSにおいて、通知され得るオフセットテーブルである。
表12中、chroma_qp_offset_list_enabled_flagは、クロマQPリストメカニズムが使用されるか否かを特定し、chroma_qp_offset_list_len_minus1は、Cb及びCr成分のためのオフセットリストの長さを特定し、cb_qp_offset_list及びcr_qp_offset_listは、Cb及びCr成分のための可能なオフセットを特定する。
cu_chroma_qp_offset_idxは、CuQpOffsetCb及びCuQpOffsetCrの計算のために使用され得るcb_qp_offset_list及びcr_qp_offset_list内の特定の要素を特定する。
表13は、cu_chroma_qp_offset_idxシグナリングの例を示す。
別個のツリーが可能である場合のデルタQPオフセットのシンタックスは、次の表14に記載され得る。
本発明の他の実施形態に従って、量子化パラメータの導出プロセスのための方法は、次の通りに説明される。
付録A.量子化パラメータの導出プロセス
このプロセスでは、ルーマ量子化パラメータQp’Y及びクロマ量子化パラメータQP’Cb及びQp’Crが導出される。
このプロセスへの入力は、ツリータイプがSINGLE_TREE又はDUAL_TREE_LUMAに等しい場合には、現在のピクチャの左上ルーマサンプルに対して現在のルーマコーディングブロックの左上サンプルを特定するルーマ位置(xCb,yCb)、及びツリータイプがDUAL_TREE_CHROMAに等しい場合には、現在のピクチャの左上ルーマサンプルに対して現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する(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を共有するコーディングツリーブロック内の最小エリアのルーマサイズを決定する。
予測されたルーマ量子化パラメータqPY_PREDは、次の順序付けされたステップによって導出される。
1.変数qPY_PREVが、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、qPY_PREVはSliceQpYに等しくセットされる:
− 現在の量子化グループは、スライス内の最初の量子化グループである。
− 現在の量子化グループは、タイル内の最初の量子化グループである。
− 現在の量子化グループは、コーディングツリーブロック行内の最初の量子化グループであり、entropy_coding_sync_enabled_flagは、1に等しい。
− そうでない場合には、qPY_PREVは、復号化順における前の量子化グループ内の最後のコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
2.XXX節で特定されるzスキャン順序におけるブロックの可用性導出プロセスは、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)と、(xQg−1,yQg)に等しくセットされた隣接位置(xNbY,yNbY)とを入力として用いて呼び出され、出力は、利用可能なAに割り当てられる。変数QpY_Aは、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、QpY_AはqPY_PREVに等しくセットされる:
− 利用可能なAがFALSEに等しい。
− ルーマ位置(xQg−1,yQg)をカバーするルーマコーディングブロックを含むコーディングツリーブロックのコーディングツリーブロックアドレスctbAddrAが、CtbAddrInTsに等しくなく、このとき、ctbAddrAは次の通りに導出される:
xTmp=(xQg−1)>>Log2MinTrafoSize
yTmp=yQg>>Log2MinTrafoSize
minTbAddrA=MinTbAddrZs[xTmp][yTmp]
ctbAddrA=minTbAddrA
>>(2*(CtbLog2SizeY−Log2MinTrafoSize))
− そうでない場合には、QpY_Aは、(xQg−1,yQg)をカバーするルーマコーディングブロックを含むコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
3.XXX節で特定されるzスキャン順序におけるブロックの可用性導出プロセスは、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)と、(xQg,yQg−1)に等しくセットされた隣接位置(xNbY,yNbY)とを入力として用いて呼び出され、出力は、利用可能なBに割り当てられる。変数QpY_Bは、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、QpY_BはqPY_PREVに等しくセットされる:
− 利用可能なBがFALSEに等しい。
− ルーマ位置(xQg,yQg−1)をカバーするルーマコーディングブロックを含むコーディングツリーブロックのコーディングツリーブロックアドレスctbAddrBが、CtbAddrInTsに等しくなく、このとき、ctbAddrBは次の通りに導出される:
xTmp=xQg>>Log2MinTrafoSize
yTmp=(yQg−1)>>Log2MinTrafoSize
minTbAddrB=MinTbAddrZs[xTmp][yTmp]
ctbAddrB=minTbAddrB
>>(2*(CtbLog2SizeY−Log2MinTrafoSize))
− そうでない場合には、QpY_Bは、(xQg,yQg−1)をカバーするルーマコーディングブロックを含むコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
4.予測されたルーマ量子化パラメータqPY_PREDは、次の通りに導出される:
qPY_PRED=(QpY_A+QpY_B+1)>>1
変数QpYは、次の通りに導出される:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
ルーマ量子化パラメータQp’Yは、次の通りに導出される:
Qp’Y=QpY+QpBdOffsetY
変数QpCb及びQpCrは、夫々qPiCb及びqPiCrに等しいインデックスqPiに基づいて、表15で指示されるQpCの値に等しくセットされ、qPiCb及びqPiCrは、次の通りに導出される:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
Cb及びCr成分のクロマ量子化パラメータQp’
Cb及びQp’
Crは、次の通りに導出される:
Qp’
Cb=QpCb+QpBdOffsetC
Qp’
Cr=QpCr+QpBdOffsetC
本発明の第1の態様の例に従って、ここで、方法は、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
単なる例として、ルミナンス成分における同一位置のブロックの4つの隣接ブロックが存在するので、クロミナンス成分における現在のブロックについてのQP値は、ルミナンス成分における同一位置のブロックのそれら4つの隣接ブロックについてのQP値の平均和である。同一位置のブロックの隣接ブロックは存在しないことがあることが、時としてここで述べられる必要がある。この状況下では、他の既存のQP値を用いてクロミナンス成分におけるブロックのQP値を決定することが望ましい。
本発明の第1の態様の例に従って、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
本発明の第1の態様の例に従って、方法は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
本発明の第1の態様の例に従って、ここで、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
以下は、上記の実施形態で示されている符号化方法及び復号化方法の適用並びにそれらを使用するシステムの説明である。
図13は、コンテンツ分配サービスを実現するコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉デバイス3102、端末デバイス3106を含み、任意に、ディスプレイ3126を含む。捕捉デバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上記の通信チャネル13を含んでよい。通信リンク3104は、WIFI、Ethernet、ケーブル、無線(3G/4G/5G)、USB、又はあらゆる種類のそれらの組み合わせ、などを含むがこれらに限られない。
捕捉デバイス3102は、データを生成し、そして、上記の実施形態で示されている符号化方法によってそのデータを符号化してよい。あるいは、捕捉デバイス3102は、ストリーミングサーバ(図示せず)へデータを分配してもよく、サーバが、データを符号化し、符号化されたデータを端末デバイス3106へ送る。捕捉デバイス3102は、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載デバイス、又はそれらのいずれかの組み合わせ、などを含むがこれらに限られない。例えば、捕捉デバイス3102は、上述された発信元デバイス12を含んでよい。データがビデオを含む場合に、捕捉デバイス3102に含まれているビデオ符号器20が、実際に、ビデオ符号化処理を実行し得る。データがオーディオ(すなわち、音声)を含む場合に、捕捉デバイス3102に含まれているオーディオ符号器が、実際に、オーディオ符号化処理を実行し得る。いくつかの実際的なシナリオについて、捕捉デバイス3102は、符号化されたビデオ及びオーディオデータを、それらを一緒に多重化することによって分配する。他の実際的なシナリオについて、例えば、ビデオ会議システムでは、符号化されたオーディオデータ及び符号化されたビデオデータは、多重化されない。捕捉デバイス3102は、符号化されたオーディオデータ及び符号化されたビデオデータを別々に端末デバイス3106へ分配する。
コンテンツ供給システム3100において、端末デバイス310は、符号化されたデータを受信及び再生する。端末デバイス3106は、上記の符号化されたデータを復号することができるスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、セット・トップ・ボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナル・デジタル・アシスタント(PDA)3122、車載デバイス3124、又はそれらのいずれかの組み合わせ、などのような、データ受信及び回復能力を備えたデバイスであってよい。例えば、端末デバイス3106は、上述されたあて先デバイス14を含んでよい。符号化されたデータがビデオを含む場合に、端末デバイスに含まれているビデオ復号器30は、ビデオ復号化を実行することを優先される。符号化されたデータがオーディオを含む場合に、端末デバイスに含まれているオーディオ復号器は、オーディオ復号化処理を実行することを優先される。
そのディスプレイを備えた端末、例えば、スマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、パーソナル・デジタル・アシスタント(PDA)3122、又は車載デバイス3124については、端末デバイスは、復号されたデータをそのディスプレイへ供給することができる。ディスプレイを備えていない端末、例えば、STB3116、ビデオ会議システム3118、又はビデオ監視システム3120については、外付けディスプレイ3126が、復号されたデータを受信及び表示するよう、その中で接触される。
このシステム内の各デバイスが符号化又は復号化を実行する場合に、上記の実施形態で示されているピクチャ符号化デバイス又はピクチャ復号化デバイスが使用され得る。
図14は、端末デバイス3106の例の構造を示す図である。端末デバイス3106が捕捉デバイス3102からストリームを受け取った後、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを解析する。プロトコルは、リアル・タイム・ストリーミング・プロトコル(RTSP)、ハイパー・テキスト・トランスファー・プロトコル(HTTP)、HTTPライブ・ストリーミング・プロトコル(HLS)、MPEG−DASH、リアル・タイム・トランスポート・プロトコル(RTP)、リアル・タイム・メッセージング・プロトコル(RTMP)、又はあらゆる種類のそれらの組み合わせ、などを含むがこれらに限られない。
プロトコル処理ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204へ出力される。逆多重化ユニット3204は、多重化されたデータを、符号化されたオーディオデータと、符号化されたビデオデータとに分離することができる。上述されたように、いくつかの実際的なシナリオについては、例えば、ビデオ会議システムでは、符号化されたオーディオデータ及び符号化されたビデオデータは多重化されていない。この状況で、符号化されたデータは、逆多重化ユニット3204を通らずにビデオ復号器3206及びオーディオ復号器3208へ送られる。
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオES、及び任意に、サブタイトルが生成される。上記の実施形態で説明されたようなビデオ復号器30を含むビデオ復号器3206は、上記の実施形態で示されたような復号化方法によってビデオESを復号してビデオフレームを生成し、このデータを同期化ユニット3212へ供給する。オーディオ復号器3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期化ユニット3212へ供給する。あるいは、ビデオフレームは、それを同期化ユニット3212へ供給する前に、バッファ(図14に図示せず)に格納してもよい。同様に、オーディオフレームは、それを同期化ユニット3212へ供給する前に、バッファ(図14に図示せず)に格納してもよい。
同期化ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214へ供給する。例えば、同期化ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及び視覚データの提示に関する時間スタンプと、データストリーム自体の配信に関する時間スタンプとを用いて、シンタックスにおいてコーディングしてよい。
サブタイトルがストリームに含まれる場合に、サブタイトル復号器3210はサブタイトルを復号し、それをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216へ供給する。
本発明は、上記のシステムに限定されず、上記の実施形態におけるピクチャ符号化デバイス又はピクチャ復号化デバイスのどちらも他のシステム、例えば、カーシステムに組み込まれ得る。
第1の例では、ピクチャの現在のブロックの逆量子化のための方法であって、方法は、復号器によって実行され、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、方法において、受信されたビットストリームから1つ以上の既存の量子化パラメータQP値を取得するステップであり、1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある、ステップと、1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップと、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行するステップとを有する方法が提供される。
例えば、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロック、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロック、のうちの少なくとも1つを有する。
例となる実施では、方法は、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップは、現在のクロミナンスブロックの右下4分の1内の左上サンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(QpY_basic)を取り出すステップと、次の式
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)、及び/又は
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
又は前記次の式から導出された新しい式を使用することによって、現在のクロミナンスブロックについてのqPiCb及びqPiCrパラメータを決定するステップと、qPiCb及びqPiCrパラメータ又は値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
例となる実施では、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、及び/又は
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、このとき、QpCb及びQpCrは、クロマQPマッピング関数を適用することによってqPiCb及びqPiCrパラメータから取得される。
例えば、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップは、現在のクロミナンスブロックの右下4分の1内の左上サンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(QpY_basic)を取り出すステップと、次の式
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset+delta_qp_c)、及び/又は
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset+delta_qp_c)、
あるいは前記次の式から導出された新しい式を使用することによって、現在のクロミナンスブロックについてのqPiCb及びqPiCrパラメータを決定するステップと、qPiCb及びqPiCrパラメータ又は値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
いくつかの例となる実施では、方法は、シングルCUに適用され、ルミナンス成分における同一位置のブロックは、現在のブロックに等しい。
例えば、方法は、1つのPPS信号通知制御フラグ(例えば、cu_qp_delta_enabled_flag)に基づいてルーマ及びクロマ平面について一緒に適用され、制御フラグ(例えば、cu_qp_delta_enabled_flag)が真に等しい場合には、方法は、ルーマ及びクロマQP導出の両方のために適用され、あるいは、制御フラグ(例えば、cu_qp_delta_enabled_flag)が偽に等しい場合には、方法は、ルーマ及びクロマQP導出の両方のために適用されない。
いくつかの例となる実施では、方法は、2つのPPSベース制御フラグ(例えば、cu_qp_delta_enabled_flag_luma及びcu_qp_delta_enabled_flag_chroma)に基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグ(例えば、cu_qp_delta_enabled_flag_luma)が真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグ(例えば、cu_qp_delta_enabled_flag_luma)が偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグ(例えば、cu_qp_delta_enabled_flag_chroma)が真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグ(例えば、cu_qp_delta_enabled_flag_chroma)が偽に等しい場合には、方法は、クロマQP導出のために適用されない。
例えば、方法は、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、クロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
いくつかの例となる実施では、方法は、1つ以上の既存のQP値と、次の、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値、又は受信されたビットストリームにおいて伝えられたクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
いくつかの例となる実施では、方法は、現在のブロックのパーティションデプス値を取得するステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
例えば、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、ルミナンス成分及びクロミナンス成分は、単一のパーティションツリーによって複数のブロックに分割されるか、あるいは、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって独立して分割される。
いくつかの例となる実施では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの例となる実施形態では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの例となる実施では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの実施形態では、前述の方法のいずれかを実行する処理回路を有する復号化装置が提供される。
いくつかの実施形態では、コンピュータプログラムがコンピューティングデバイスで実行される場合に前述の方法のいずれかに従う方法を実行するためのプログラムコードを有するコンピュータプログラム製品。
例となる実施では、ピクチャの現在のブロックの境界パーティションのための復号化装置であって、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有し、プログラミングが、プロセッサによって実行される場合に、前述の方法のいずれかを実行するよう復号器を構成する、復号化装置が提供される。
実施形態において、コンピュータに前述の方法のいずれかに従う方法を実行させるプログラムを記録しているコンピュータ可読記憶媒体が提供される。
1つ以上の例では、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実装されてよい。ソフトウェアで実装される場合に、機能は、コンピュータ可読媒体上で1つ以上の命令又はコードとして記憶又は伝送され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形な媒体に対応するコンピュータ可読記憶媒体、又は例えば、通信プロトコルに従って、1つの場所から他へのコンピュータプログラムの転送を助ける何らかの媒体を含む通信媒体を含んでよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波などの通信媒体、に対応してよい。データ記憶媒体は、本開示で記載されている技術の実装のための命令、コード及び/又はデータ構造を読み出すよう1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る如何なる利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形で所望のプログラムコードを記憶するために使用可能であって、コンピュータによってアクセスされ得るあらゆる他の媒体を有することができる。また、如何なる接続も、コンピュータ可読媒体と適切に称される。例えば、命令が同軸ケーブル、光ファイバケーブル、ツイステッドペア、デジタル加入者回線(DSL)、又は赤外線、電波、及びマイクロ波などの無線技術を用いてウェブサイト、サーバ、又は他の遠隔ソースから伝送される場合に、同軸ケーブル、光ファイバケーブル、ツイステッドペア、DSL、又は赤外線、電波、及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに、非一時的な、有形な記憶媒体を対象とする、ことが理解されるべきである。ここで使用されるdisk及びdiscは、コンパクト・ディスク(CD)、レーザー・ディスク、光ディスク、デジタル・バーサタイル・ディスク(DVD)、フロッピー・ディスク、及びブルーレイ・ディスクを含み、diskは、通常は、磁気的にデータを再生し、一方、discは、レーザーで光学的にデータを再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ロジック・アレイ(FPGA)、又は他の同等の集積若しくはディスクリート論理回路などの1つ以上のプロセッサによって実行されてよい。従って、ここで使用される「プロセッサ」という用語は、上記の構造のいずれか、又はここで記載されている技術の実装に適したあらゆる他の構造を指し得る。更には、いくつかの態様において、ここで記載されている機能性は、符号化及び復号化のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に設けられても、あるいは、複合型コーデックに組み込まれてもよい。また、技術は、1つ以上の回路又は論理要素において完全に実装されてもよい。
本開示の技術は、無線ハンドセット、集積回路(IC)又はICの組(例えば、チップセット)を含む多種多様なデバイス又は装置において実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示されている技術を実行するよう構成されたデバイスの機能的態様を強調するよう本開示で説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述されたように、様々なユニットがコーデックハードウェアにまとめられても、あるいは、適切なソフトウェア及び/又はファームウェアとともに、上述されたような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてもよい。
論理演算子
以下の論理演算子は、次の通りに定義される:
x&&y x及びyのブール論理“AND”
x||y x及びyのブール論理“OR”
! ブール論理“NOT”
x?y:z xが真であるか又は0に等しくない場合には、yの値として評価し、そうでない場合には、zの値として評価する。
関係演算子
以下の関係演算子は、次の通りに定義される:
> 〜よりも大きい
>= 〜以上
< 〜よりも小さい
<= 〜以下
== 〜に等しい
!= 〜に等しくない
関係演算子が、値“NA”(not applicable)を割り当てられているシンタックス要素又は変数に適用される場合に、値“NA”は、そのシンタックス要素又は変数のディスティンクト値として扱われる。値“NA”は、如何なる他の値にも等しくないと見なされる。
ビット演算子
以下のビット演算子は、次の通りに定義される:
& ビット単位“AND”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
| ビット単位“OR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
^ ビット単位“XOR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
x>>y y個の2進桁によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果として最上位ビット(MSB)へシフトされたビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y y個の2進桁によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果として最下位ビット(LSB)へシフトされたビットは、0に等しい値を有する。
代入演算子
以下の代入演算子は、次の通りに定義される:
= 代入演算子
++ インクリメント、すなわち、x++は、x=x+1と等価であり、配列指数で使用される場合には、インクリメント演算の前の変数の値として評価する。
−− デクリメント、すなわち、x−−は、x=x−1と等価であり、配列指数で使用される場合には、デクリメント演算の前の変数の値として評価する。
+= 指定された量によるインクリメント、すなわち、x+=3は、x=x+3と等価であり、x+=(−3)は、x=x+(−3)と等価である。
−= 指定された量によるデクリメント、すなわち、x−=3は、x=x−3と等価であり、x−=(−3)は、x=x−(−3)と等価である。
範囲表記
以下の表記は、値の範囲を指定するために使用される:
x=y..z x、y及びzは整数であり、zはyよりも大きいとして、xは、y以上z以下の整数値を呈する。
本開示は、イメージ及び/又はビデオ復号化の技術分野に、特に、逆量子化のための装置及び方法に関係がある。
デジタルビデオ通信及び記憶アプリケーションは、広範囲のデジタルデバイス、例えば、デジタルカメラ、セルラー無線電話機、ラップトップ、放送システム、ビデオ電話会議システム、などによって実装されている。これらのアプリケーションの最も重要かつ挑戦的なタスクの1つは、ビデオ圧縮である。ビデオ圧縮のタスクは複雑であり、2つの矛盾するパラメータ、すなわち、圧縮効率及び計算複雑性によって、制約される。ITU−T H.264/AVC又はITU−T H.265/HEVCなどのビデオコーディング標準規格は、これらのパラメータの間の優れたトレードオフをもたらす。それ故、ビデオコーディング標準規格のサポートは、ほぼ如何なるビデオ圧縮アプリケーションにとっても必須要件である。
インター予測、イントラ予測、及びループフィルタなどのビデオ圧縮技術は、有効であることを証明しており、よって、H.264/AVC及びH.265/HEVCなどの様々なビデオコーディング標準規格に採用されている。
ビデオ圧縮の基本処理単位は、サイズ、例えば、16×16又は64×64ピクセルを有しているピクチャの部分であるマクロブロック、と通常呼ばれる。最新のビデオコーディング標準規格H.265/HEVCでは、いわゆるコーディング・ツリー・ユニット(CTU)が基本処理単位として使用される。CTUは、最大コーディング・ユニット(LCU)とも呼ばれる。H.265/HEVCでは、CTUは、相応してルミナンス及びクロミナンスビデオ信号部分、例えば、Y、Cb、Cr成分を表す1つのルーマCTB及び2つのクロマCTBから成る。CTUは、ピクチャの左上から右下角への走査順序で1つずつ処理される。各CTUは、例えば、四分木分割を使用することによって、より小さいコーディング・ユニット(CU)で更に分割されてよい。CUの夫々は、より小さいCU又は予測ユニット(PU)のどちらか一方に更に分けられ得る。PUは、PUのピクセルのために適用される処理のタイプに従ってイントラ又はインター予測され得る。インター予測の場合に、PUは、PUのために指定された動きベクトルを用いて動き補償によって処理されるピクセルのエリアを表す。イントラ予測について、隣接ブロックの隣接したピクセルは、現在のブロックを予測するための参照サンプルとして使用される。PUは、このPUに含まれている全ての変換ユニット(TU)ためにイントラ予測モードの組から選択される予測モードを指定する。TUは、異なるサイズ(例えば、4×4、8×8、16×16及び32×32ピクセル)を有することができ、異なる方法で処理され得る。TUについて、変換コーディングが実行され、すなわち、予測誤差は、離散コサイン変換又は離散サイン変換により変換され(HEVC/H.265標準規格では、それは、イントラコーディングされたブロックに適用される)、そして量子化される。従って、再構成されたピクセルは、DBF、SAO及びALFなどのインループフィルタが抑制しようと試みる量子化ノイズ(それは、例えば、ユニット間のブロッキネス、シャープエッジに付随するリンギングアーチファクト、などとして現れ得る)を含む。洗練された予測コーディング(例えば、動き補償及びイントラ予測)及びパーティショニング技術(例えば、HEVC/H.265標準規格におけるCU及びPUのためのQTとTUのためのRQT、並びにバージョンBMS−1.0及びVTM−1.0から始まるVVCリファレンスソフトウェアのための多重ツリー(MT))の使用は、PUにおいて冗長性を有意に低減することを可能にする。QT及びMTパーティショニングメカニズムの間の基本的な違いは、後者が、二分及び三分木に基づくパーティショニングを使用することによる長方形ブロックとともに、四分木アプローチを使用することによる正方形ブロックをも可能にする点である。ビデオ生成及び使用がますます当たり前になるにつれて、ビデオトラフィックは、通信ネットワーク及びデータ記憶需要を増やすためのドライバに対する最大負荷である。従って、ビデオコーディング標準規格の大部分の目標の1つは、ピクチャ品質を犠牲にせずにその前身と比べてコーディング複雑性を下げることである。
本願の実施形態は、独立請求項に従う符号化及び復号化のための装置及び方法を提供する。
上記及び他の目的は、独立請求項の対象によって達成される。更なる実施形態は、従属請求項、明細書及び図面から明らかである。
特定の実施形態は、従属請求項における他の実施形態とともに、添付の独立請求項において略述される。
境界パーティションのための装置及び方法が開示される。装置及び方法は、コーディング複雑性を低減するために特定の境界パーティション処理を使用する。境界パーティション処理は、ピクチャ又はイメージ境界ハンドリングとも呼ばれる。
本発明の第1の態様に従って、ピクチャの現在のブロックの逆量子化のための方法が提供される。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。方法は、復号器が(例えば、受信された)ビットストリームから1つ以上の既存の量子化パラメータ(QP)値を取得し、このとき、1つ以上の既存のQP値がクロミナンス成分における現在のブロック(すなわち、処理中のブロック)に関係があり、そして、1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定し、そして、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行することを含む。
ビデオイメージは、ルミナンス(又はルーマ)成分及びクロミナンス(又はクロマ)成分に分割されてよい。ルミナンス又はルーマ成分は、イメージ内の明るさ(イメージの“白黒”又は無色部分)を表し、クロミナンス又はクロマ成分は、イメージの色情報を表す。単なる例として、ピクチャ又はイメージが[Y,Cb,及びCr]の色空間で表される場合に、Y成分はルミナンス(又はルーマ)成分であり、Cb及びCrはクロミナンス又はクロマ成分である。
ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロックに分割される。すなわち、ルミナンス成分及びクロミナンス成分は、別々に分割される。異なるパーティションツリー、例えば、四分木(QT)、二分木(BT)、三分木(TT)、及び上記のパーティションツリーの任意の組み合わせ、例えば、四分木プラス二分木(QTBT)、又は四分木プラス二分木又は三分木(QT−BT/TT)、などがあることが知られている。
「1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある」という表現は、クロミナンス成分における現在のブロックに関係している既存のQP値に対応する。単なる例として、既存のQP値は、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値を有する。
ビットストリームは、受信されたビットストリームであってよく、ここでは、処理のために復号器で受信されたビットストリームを意味する。受信は、ここで、例えば、ストレージから、又はネットワークから、などのあらゆる種類の受信に関係がある。
ピクチャのクロミナンス成分におけるブロックについて、クロミナンス成分におけるそのブロックの量子化パラメータは、受信されたビットストリームから取得された1つ以上の既存の量子化パラメータQP値によって決定されてよい。これは、クロミナンス成分におけるそのブロックについての量子化パラメータを決定するための効率的な方法をもたらし、クロミナンス成分における各ブロックについて量子化パラメータを決定するための復号器の処理過負荷を軽減する。
本発明の第1の態様の例に従って、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値、のうちの少なくとも1つを有する。
これは、既存のQP値を定義し、ピクチャのクロミナンス成分におけるブロックのQP値を決定するための効率的な方法をもたらす。
本発明の第1の態様の他の例に従って、方法は、ルミナンス成分における同一位置のブロックのQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
「ルミナンス成分における同一位置のブロック」という用語は、クロミナンス成分におけるブロックと同一位置にあるルミナンス成分におけるブロックであり、ここで、「同一位置にある」という用語は、ピクチャのルミナンス及びクロミナンス成分の間のマッピング関係を意味する。
この例は、クロミナンス成分におけるブロックのQP値を決定するための容易な方法をもたらす。ピクチャのルミナンス成分及びクロミナンス成分は関係を有しているので、故に、ルミナンス成分における同一位置のブロックのQP値をクロミナンス成分におけるそのブロックのQP値と見なすことは、容易かつ直接的な方法である。
ルミナンス成分における同一位置のブロックのQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップは、前述の例及び第1の態様のいずれかに従って、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)を取り出すステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
特定のサンプルに従って同一位置のブロックを決定することは、ルーマブロック及びクロマブロックが異なるパーティションを有することを許される場合でさえ、信頼できかつ一義的であり、更には複雑でない実施を可能にする。
例において、特定の位置にあるサンプルは、現在のクロミナンスブロックの右下4分の1内の左上サンプルである。
かような特定の位置は、ブロックの中心におおよそ対応し、よって、同一位置のブロックのQPの適切な推定をもたらす。
代替的に、又は、追加的に、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、
QpCb及びQpCrは、クロマQPマッピング関数を適用することによって、決定されたルミナンスブロックのQP値に基づいて取得されたqPiCb及びqPiCrパラメータから取得される。特に、いくつかの具体例では、qPiCb及びqPiCrは、QpY_basicに基づいて計算されるクロママッピング関数(テーブル)内のインデックスである。QpY_basicは、決定されたルミナンスブロックのQP値に対応する。
例となる実施に従って、方法は、2つのピクチャパラメータセットPPSベース制御フラグに基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグが真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグが偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグが真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグが偽に等しい場合には、方法は、クロマQP導出のために適用されない。
これは、ビットストリームのための効率的かつスケーラブルなシンタックスの供給を容易にする。
本発明の第1の態様の例に従って、方法は、1つ以上の既存のQP値と、次の、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値、又は受信されたビットストリームにおいて伝えられたクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
本発明の第1の態様の例に従って、方法は、現在のブロックのパーティションデプス値を取得するステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
このようにして、しきい値を上回るデプス値を有するブロックにこの方法を適用することは必要とされないので、これは、計算の複雑性を低減する。
本発明の第1の態様の例に従って、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、この数は、プログラマによって事前に定義されてよく、あるいは、パラメータセット、例えば、ピクチャパラメータセット(PPS)又はシーケンスパラメータセット(SPS)において伝えられてもよい。
本発明の第1の態様の例に従って、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。
逆量子化のための調和した方法が提供されると認められ、この方法は、シングルパーティション(ST)モード(すなわち、ルーマ及びクロマ成分は、シングルパーティションによって分割される)に適用されるだけでなく、デュアルパーティション(DT)モード(すなわち、ルーマ及びクロマ成分は、別個のパーティションツリーによって独立して分割される)にも適用される。
本発明の実施形態に従って、第1の態様及び第1の態様の例のいずれか1つの方法を実行する処理回路を有する復号化装置が提供される。
第2の態様に従って、ピクチャの現在のブロックの量子化のための方法が提供され、方法は、符号器によって実行され、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割され、方法は、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行するステップと、1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQP値をビットストリームに含めるステップであり、1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある、ステップと、1つ以上の既存のQP値及び決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップと、前記QPパラメータをビットストリームに含めるステップとを有する。
本発明の第2の態様の例に従って、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値、のうちの少なくとも1つを有する。
本発明の第2の態様の他の例に従って、QPパラメータの決定は、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップを有する。
ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップは、前述の例及び第2の態様のいずれかに従って、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックのQP値を取り出すステップと、決定されたルミナンスブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。実施の例として、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップは、現在のクロミナンスブロック内の特定の位置にあるサンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)を取り出すステップと、決定されたルミナンスブロックのQP値(例えば、QpY_basic)に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するステップとを有する。
例において、特定の位置にあるサンプルは、現在のクロミナンスブロックの右下4分の1内の左上サンプルである。
代替的に、又は、その上、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、
QpCb及びQpCrは、クロマQPマッピング関数を適用することによって、決定されたルミナンスブロックのQP値に基づいて取得されたqPiCb及びqPiCrパラメータから取得される。
例となる実施に従って、方法は、2つのピクチャパラメータセットPPSベース制御フラグに基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグが真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグが偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグが真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグが偽に等しい場合には、方法は、クロマQP導出のために適用されず、方法は、第1フラグ及び/又は第2フラグをビットストリームに含めるステップを更に有する。
本発明の第2の態様の例に従って、方法は、1つ以上の既存のQP値と、次の、ビットストリームに含まれるクロミナンスデルタQP値、又はビットストリームに含まれるクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQPパラメータを決定するステップを更に有する。方法は、デルタQP又はQPオフセットをビットストリームに挿入することを更に含んでよい。
本発明の第2の態様の例に従って、方法は、現在のブロックのパーティションデプス値を決定する(そして、場合により、ビットストリームに含める)ステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、ビットストリームに含められたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
本発明の第2の態様の例に従って、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、この数は、プログラマによって事前に定義されてよく、あるいは、パラメータセット、例えば、ピクチャパラメータセット(PPS)又はシーケンスパラメータセット(SPS)において伝えられてもよい。
本発明の第2の態様の例に従って、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロック(例えば、コーディング・ユニット,CU)に分割される。
本発明の第3の態様に従って、コンピュータプログラムがコンピューティングデバイスで実行される場合に、第1の態様及び第1の態様の例のいずれか1つの方法を実行するプログラムコードを有するコンピュータプログラム製品が提供される。コンピュータプログラムは、非一時的な媒体に記憶されてよい。
本発明の第4の態様に従って、ピクチャの現在のブロックの境界パーティションのための復号化装置が提供される。復号化装置は、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを含み、プログラミングは、プロセッサによって実行される場合に、第1の態様及び第1の態様の例のいずれか1つの方法を実行するよう復号化装置を構成する。
第5の態様に従って、ピクチャの現在のブロックの境界パーティションのための符号化装置であって、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有し、プログラミングは、プロセッサによって実行される場合に、第2の態様及び第2の態様の例のいずれか1つの方法を実行するよう符号化装置を構成する、符号化装置が提供される。
第6の態様に従って、ピクチャの現在のブロックの逆量子化のための装置であって、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、装置において、ビットストリームから1つ以上の既存の量子化パラメータQP値を取得するビットストリームパーサ(1110)であり、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある、ビットストリームパーサと、1つ以上の既存のQP値に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するQP決定ユニット(1120)と、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する逆量子化器(1130)とを有する装置が提供される。
第7の態様に従って、ピクチャの現在のブロックの量子化のための装置であって、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、装置において、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行する量子化器(1210)と、1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQPをビットストリームに含めるフェッチユニット(1220)であり、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある、フェッチユニットと、1つ以上の既存のQP値及び決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するQP決定ユニット(1230)と、QPパラメータをビットストリームに含めるビットストリーム生成ユニット(1240)とを有する装置が提供される。
第8の態様に従って、上記の装置のいずれかを具現する集積回路が提供される。
第2、第3及び第4の態様の実施形態は、第1の態様の各々の実施形態に対応する。従って、方法の実施形態は、復号化装置の対応する実施形態の特徴を有し、逆もまた同じである。復号化装置は、符号化されたビデオビットストリームを復号するチップセットとして実施されてもよい。
第1の態様に従う方法の利点は、第4の態様及び第6の態様に従う復号化装置の対応する実施形態についてのそれらと同じである。
以下で、例となる実施形態は、添付の図及び図面を参照して、より詳細に記載される。
本発明の実施形態を実装するよう構成されたビデオコーディングシステムの例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオコーディングシステムの他の例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオ符号器の例を示すブロック図である。
本発明の実施形態を実装するよう構成されたビデオ復号器の構造例を示すブロック図である。
符号化装置又は復号化装置の例を表すブロック図である。
符号化装置又は復号化装置の他の例を表すブロック図である。
本開示の実施形態に従う四分木(QT)分割を表す概略図である。
本開示の実施形態に従う垂直方向における二分木(BT)分割を表す概略図である。
本開示の実施形態に従う水平方向における二分木(BT)分割を表す概略図である。
本開示の実施形態に従う垂直方向における三分木(TT)分割を表す概略図である。
本開示の実施形態に従う水平方向における三分木(TT)分割を表す概略図である。
ピクチャ内の4:2:0ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
ピクチャ内の4:2:2ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
ピクチャ内の4:4:4ルーマ及びクロマサンプルの名目的な垂直及び水平位置を表す概略図である。
クロミナンス(又はクロマ)パーティショニングからルミナンス(又はルーマ)パーティショニングへの点マッピングを表す概略図である。
クロマ成分におけるブロックについてのQP値(つまり、クロマブロックQP値)を決定するためのプロシージャを表す、例となるフローチャートである。
現在のブロックについてビットストリームに挿入されるべきQPパラメータを決定するためのプロシージャを表す、例となるフローチャートである。
復号器の部分であり得る逆量子化のための例となる装置を表すブロック図である。
符号器の部分であり得る量子化のための例となる装置を表すブロック図である。
コンテンツ配信サービスを実現するコンテンツ供給システムの構造例を示すブロック図である。
端末デバイスの例の構造を示すブロック図である。
以下で、同じ参照符号は、明示的に別段の定めがない場合には、同じ又は少なくとも機能的に同等の特徴を指す。
以下の記載では、本開示の部分を形成し、実例として、本発明の実施形態の具体的な態様、又は本発明の実施形態が使用される可能性がある具体的な態様を示す添付の図を参照する。本発明の実施形態は、他の態様で使用されてもよく、図示されていない構造的又は論理的な変更を含む、ことが理解される。以下の詳細な説明は、従って、限定の意味で解されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
例えば記載されている方法に関連する開示は、方法を実行するよう構成された対応するデバイス又はシステムにも当てはまり、逆もまた同じであってよい、ことが理解される。例えば、1つ又は複数の具体的な方法ステップが記載される場合に、対応するデバイスは、1つ又は複数のユニット、例えば、機能ユニットを、たとえそのような1つ以上のユニットが明示的に記載又は図示されていないとしても、記載されている1つ又は複数の方法ステップを実行するために含んでよい(例えば、1つのユニットは1つ又は複数のステップを実行し、あるいは、複数のユニットは複数のステップのうちの1つ以上を夫々実行する)。他方で、例えば、具体的な装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合に、対応する方法は、1つ又は複数のステップを、たとえそのような1つ又は複数のステップが明示的に記載又は図示されていないとしても、1つ又は複数のユニットの機能性を実行するために含んでよい(例えば、1つのステップは1つ又は複数のユニットの機能性を実行し、あるいは、複数のステップは複数のユニットのうちの1つ以上の機能性を夫々実行する)。更に、ここで記載されている様々な例となる実施形態及び/又は態様は、特に別段の記載がない限り、互いに組み合わされてもよい、ことが理解される。
ビデオコーディングは、通常、ビデオ又はビデオシーケンスを形成するピクチャの連続の処理を指す。「ピクチャ」という用語の代わりに、「フレーム」又は「イメージ」という用語が、ビデオコーディングの分野では同義語として使用されることがある。本願(又は本開示)で使用されているビデオコーディングは、ビデオ符号化又はビデオ復号化のどちらか一方を示す。ビデオ符号化は、発信元側で実行され、通常は、ビデオピクチャを表現するために必要とされるデータの量を(より効率的な記憶及び/又は伝送のために)低減するよう原ビデオピクチャを(例えば、圧縮によって)処理することを有する。ビデオ復号化は、あて先側で実行され、通常は、ビデオピクチャを再構成するよう、符号器と比較して逆の処理を有する。ビデオピクチャ(又は、後述されるように、ピクチャ全般)の“コーディング”に言及する実施形態は、ビデオシーケンスの“符号化”又は“復号化”のどちらか一方に関係がある、と理解されるべきである。符号化部分と復号化部分との組み合わせは、CODEC(Coding and Decoding)とも呼ばれる。
可逆ビデオコーディングの場合に、原ビデオピクチャは再構成可能である。すなわち、再構成されたビデオピクチャは、(記憶又は伝送中に伝送損失又は他のデータ損失がないと仮定して)原ビデオピクチャと同じ品質を有する。不可逆ビデオコーディングの場合に、例えば、量子化による、更なる圧縮が、ビデオピクチャを表現するデータの量を低減するために実行され、ビデオピクチャは、復号器で完全には再構成され得ない。すなわち、再構成されたビデオピクチャの品質は、原ビデオピクチャの品質と比較して、より低い又はより悪い。
H.261以後のいくつかのビデオコーディング標準規格は、“不可逆ハイブリッドビデオコーデック”のグループに属する(すなわち、サンプル領域での空間的及び時間的予測と、変換領域で量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、通常、重なり合わないブロックの組に分割され、コーディングは、通常、ブロックレベルで実行される。すなわち、符号器では、ビデオは、通常はブロック(ビデオブロック)レベルで、例えば、予測ブロックを生成するよう空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を使用し、残差ブロックを得るよう現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減じ、残差ブロックを変換し、伝送されるべきデータの量を低減するよう変換領域で残差ブロックを量子化すること(圧縮)によって、処理、すなわち、符号化され、一方、復号器では、符号器と比較して逆の処理が、表示のために現在のブロックを再構成するよう、符号化又は圧縮されたブロックに部分的に適用される。更に、符号器は、復号器の処理ループを再現し、それにより、双方が、その後のブロックを処理、すなわち、コーディングするために同じ予測(例えば、イントラ及びインター予測)及び/又は再構成を生成することになる。
ここで使用されるように、「ブロック」という用語は、ピクチャ又はフレームの部分であってよい。記載の便宜上、本発明の実施形態は、ITU−TのVideo Coding Experts Group(VCEG)及びISO/IECのMotion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発されたHigh-Efficiency Video Coding(HEVC)又はVersatile video coding(VVC)の参照ソフトウェアを参照してここで説明される。当業者であれば、本発明の実施形態がHEVC又はVVCに限定されない、と理解するだろう。ブロックはCU、PU、及びTUを指してもよい。HEVCでは、CTUは、コーディング・ツリーとして表される四分木構造を使用することによって、CUに分割される。インターピクチャ(時間的)又はイントラピクチャ(空間的)予測を用いてピクチャエリアをコーディングすべきかどうかの決定は、CUレベルで行われる。各CUは、PU分割タイプに従って1つ、2つ又は4つのPUに更に分割され得る。1つのPU内で、同じ予測プロセスが適用され、関連情報はPUベースで復号器へ送られる。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのためのコーディング・ツリーに類似した他の四分木構造に従って、変換ユニット(TU)に分割され得る。ビデオ圧縮技術の最新の開発では、四分木及び二分木(QTBT)パーティショニングフレームが、コーディング・ブロックを分割するために使用される。QTBTブロック構造では、CUは、正方形又は長方形形状のどちらか一方を有することができる。例えば、コーディング・ツリー・ユニット(CTU)は、最初に、四分木構造によって分割される。四分木リーフノードは、二分木構造によって更に分割される。二分木リーフノードは、コーディング・ユニット(CU)と呼ばれ、そのセグメンテーションは、それ以上のパーティショニングなしで予測及び変換処理のために使用される。これは、CU、PU及びTUがQTBTコーディング・ブロック構造で同じブロックサイズを有している、ことを意味する。同時に、多重パーティション、例えば、三分木パーティションも、QTBTブロック構造とともに使用されることが提案された。
以下では、符号器20、復号器30、及びコーディングシステム10の実施形態が、図1から3に基づいて説明される。
図1Aは、例となるコーディングシステム10、例えば、本願(本開示)の技術を利用し得るビデオコーディングシステム10を表す概念又は概略ブロック図である。ビデオコーディングシステム10の符号器20(例えば、ビデオ符号器20)及び復号器30(例えば、ビデオ復号器30)は、本願で説明されている様々な例に従う技術を実行するよう構成され得るデバイスの例を表す。図1Aに示されるように、コーディングシステム10は、符号化されたデータ13、例えば、符号化されたピクチャ13を、例えば、符号化されたデータ13を復号するあて先デバイス14へ、供給するよう構成された発信元デバイス12を有する。
発信元デバイス12は、符号器20を有し、追加的に、すなわち、任意的に、ピクチャソース16、前処理ユニット18、例えば、ピクチャ前処理ユニット18、及び通信インターフェース又は通信ユニット22を有してもよい。
ピクチャソース16は、例えば、現実世界のピクチャを捕捉するための、あらゆる種類のピクチャ捕捉デバイス、及び/又はあらゆる種類のピクチャ若しくはコメント(スクリーンコンテンツのコーディングについては、スクリーン上のいくつかのテキストも、符号化されるべきピクチャ又はイメージの部分と見なされる)生成デバイス、例えば、コンピュータアニメーション化されたピクチャを生成するコンピュータグラフィクスプロセッサ、あるいは、現実世界のピクチャ、コンピュータアニメーション化されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は供給するあらゆる種類のデバイスを有するか、又はそのようなものであってよい。
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのようなものと見なされ得る。アレイ内のサンプルは、ピクセル(ピクチャ要素の省略形)又はペルとも呼ばれ得る。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、通常は3つの色成分が用いられる。すなわち、ピクチャは、3つのサンプルアレイで表現されるか、又はそれらを含んでよい。RGBフォーマット又は色空間では、ピクチャは、対応する赤、緑、及び青のサンプルアレイを有する。しかし、ビデオコーディングでは、各ピクセルは、通常、ルミナンス/クロミナンスフォーマット又は色空間、例えば、Y(時々Lも代わりに使用される)によって示されるルミナンス成分と、Cb及びCrによって示される2つのクロミナンス成分とを有するYCbCr、で表現される。ルミナンス(又は略してルーマ)成分Yは、輝度又はグレーレベル強度(例えば、グレースケールピクチャと同様)を表し、一方、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。従って、YCbCrフォーマットでのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイとを有する。RGBフォーマットでのピクチャは、YCbCrフォーマットに変換又は転換されてよく、逆もまた同じであり、プロセスは、色転換又は変換としても知られている。ピクチャがモノクロである場合には、ピクチャは、ルミナンスサンプルアレイしか有さなくてもよい。
モノクロサンプリングでは、名目上ルーマアレイと見なされるただ1つのサンプルアレイしか存在しない。
4:2:0サンプリングでは、図7Aに示されるように、2つのクロマアレイの夫々は、ルーマアレイの半分の高さ及び半分の幅を有する。
4:2:2サンプリングでは、図7Bに示されるように、2つのクロマアレイの夫々は、ルーマアレイと同じ高さ及びその半分の幅を有する。
4:4:4サンプリングでは、図7Cに示されるように、separate_colour_plane_flagの値に応じて、以下が当てはまる。
− separate_colour_plane_flagが0に等しい場合には、2つのクロマアレイの夫々は、ルーマアレイと同じ高さ及び幅を有する。
− そうではない(separate_colour_plane_flagが1に等しい)場合には、3つの色平面は、モノクロサンプリングピクチャとして別々に処理される。
ピクチャソース16(例えば、ビデオソース16)は、例えば、ピクチャを捕捉するカメラ、前に捕捉若しくは生成されたピクチャを有する若しくは記憶するメモリ、例えば、ピクチャメモリ、及び/又はピクチャを取得若しくは受信するあらゆる種類のインターフェース(内部若しくは外部)であってよい。カメラは、例えば、ソースデバイスに組み込まれているローカル又は内蔵カメラであってよく、メモリは、例えば、発信元デバイスに組み込まれた、ローカル又は内蔵メモリであってよい。インターフェースは、例えば、外部ビデオソース、例えば、カメラのような外部ピクチャ捕捉デバイス、外部メモリ、又は外部ピクチャ生成デバイス、例えば、外部コンピュータグラフィクスプロセッサ、コンピュータ若しくはサーバ、からピクチャを受信するための外部インターフェースであってよい。インターフェースは、如何なる独自仕様の又は標準化されたインターフェースプロトコルにも従うあらゆる種類のインターフェース、例えば、有線又は無線インターフェース、光インターフェースであることができる。ピクチャデータ17を取得するインターフェースは、通信インターフェース22と同じインターフェースであるか又は通信インターフェース22の部分であってよい。
前処理ユニット18及び前処理ユニット18によって実行される処理と区別して、ピクチャ又はピクチャデータ17(例えば、ビデオデータ17)は、生のピクチャ又は生のピクチャデータ17とも呼ばれ得る。
前処理ユニット18は、(生の)ピクチャデータ17を受信するよう、かつ、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を得るよう構成される。前処理ユニット18によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCr)、色補正、又はノイズ除去を有してよい。前処理ユニット18は任意のコンポーネントであってよい、ことが理解され得る。
符号器20(例えば、ビデオ符号器20)は、前処理されたピクチャデータ19を受信し、符号化されたピクチャデータ21を供給するよう構成される(更なる詳細は、例えば、図2又は図4に基づいて、以下で記載される)。
発信元デバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受信し、かつ、それを記憶又は直接的な再構成のために他のデバイス、例えば、あて先デバイス14又は何らかの他のデバイスへ送るよう、あるいは、符号化されたピクチャデータ21を、符号化されたデータ13を記憶する前及び/又は符号化されたデータ13を他のデバイス、例えば、あて先デバイス14又は復号化若しくは記憶のための何らかの他のデバイスへ送る前に夫々処理するよう構成されてもよい。
あて先デバイス14は、復号器30(例えば、ビデオ復号器30)を有し、更には、すなわち、任意に、通信インターフェース又は通信ユニット28、後処理ユニット32及び表示デバイス34を有してよい。
あて先デバイス14の通信インターフェース28は、符号化されたピクチャデータ21又は符号化されたデータ13を、例えば、発信元デバイス12から直接に又は何らかの他のソース、例えば、記憶デバイス、例えば、符号化ピクチャデータ記憶デバイスから、受信するよう構成される。
通信インターフェース22及び通信インターフェース28は、発信元デバイス12とあて先デバイス14との間の直接通信リンク、例えば、直接有線若しくは無線接続を介して、あるいは、あらゆる種類のネットワーク、例えば、有線若しくは無線ネットアーク又はそれらの任意の組み合わせ、若しくはあらゆる種類のプライベート及びパブリックネットワーク、又はそれらのあらゆる種類の組み合わせを介して、符号化されたピクチャデータ21又は符号化されたデータ13を送信又は受信するよう構成されてよい。
通信インターフェース22は、例えば、符号化されたピクチャデータ21を、通信リンク又は通信ネットワーク上の伝送のために、適切なフォーマット、例えば、パケットにパッケージ化するよう構成されてよい。
通信インターフェース22の対応物を形成する通信インターフェース28は、例えば、符号化されたピクチャデータ21を得るよう、符号化されたデータ13をパッケージ解除するよう構成されてよい。
通信インターフェース22及び通信インターフェース28は両方とも、発信元デバイス12からあて先デバイス14へ向いている、図1A中の符号化されたピクチャデータ13のための矢印によって示されるような一方向通信インターフェース、又は双方向通信インターフェースとして構成されてよく、例えば、メッセージを送信及び受信して、例えば、接続をセットアップし、通信リンク及び/又はデータ伝送、例えば、符号化されたピクチャデータ伝送に関する何らかの他の情報を受信確認及び交換するよう構成されてよい。
復号器30は、符号化されたピクチャデータ21を受信し、復号されたピクチャデータ31又は復号されたピクチャ31を供給するよう構成される(更なる詳細は、例えば、図3又は図5に基づいて、以下で記載される)。
あて先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構成されたピクチャデータとも呼ばれる)、例えば、復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、例えば、後処理されたピクチャ33を得るよう構成される。後処理ユニット32によって実行される後処理は、例えば、色フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、若しくはリサンプリング、又は例えば、復号されたピクチャデータ31を、例えば、表示デバイス34による、表示のために準備するための、何らかの他の処理を有してよい。
あて先デバイス14の表示デバイス34は、ピクチャを、例えば、ユーザ又は見る者に、表示するために、後処理されたピクチャデータ33を受信するよう構成される。表示デバイス34は、再構成されたピクチャを表示するあらゆる種類のディスプレイ、例えば、内蔵又は外付けディスプレイ又はモニタであっても、又はそれを有してもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、liquid crystal on silicon(LCoS)、デジタル光プロセッサ(DLP)又はあらゆる種類の他のディスプレイを有してよい。
図1Aは、発信元デバイス12及びあて先デバイス14を別個のデバイスとして表すが、デバイスの実施形態はまた、両方又は両方の機能性、発信元デバイス12又は対応する機能性及びあて先デバイス14又は対応する機能性を有してもよい。かような実施形態では、発信元デバイス12又は対応する機能性及びあて先デバイス14又は対応する機能性は、同じハードウェア及び/又はソフトウェアを用いて、あるいは、別個のハードウェア及び/又はソフトウェア又はそれらの任意の組み合わせによって、実装されてよい。
説明に基づいて当業者にとって明らかなように、異なるユニットの機能性、あるいは、図1Aに示されるような発信元デバイス12及び/又はあて先デバイス14内の機能性の存在及び(厳密な)分割は、実際のデバイス及び用途に応じて様々であってよい。
符号器20(例えば、ビデオ符号器20)及び復号器30(例えば、ビデオ復号器30)は夫々、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリートロジック、ハードウェア、又はそれらの任意の組み合わせなどの、様々な適切な回路のいずれかとして実装されてよい。技術が部分的にソフトウェアで実装される場合に、デバイスは、適切な、非一時的なコンピュータ可読記憶媒体にソフトウェアのための命令を記憶してよく、本開示の技術を実行するために1つ以上のプロセッサを用いてハードウェアで命令を実行してよい。上記(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、などを含む)のいずれかは、1つ以上のプロセッサであると見なされてもよい。ビデオ符号器20及びビデオ復号器30の夫々は、1つ以上の符号器又は復号器に含まれてもよく、それらのどちらも、各々のデバイスにおいて複合型符号器/復号器(CODEC)の部分として組み込まれてよい。
発信元デバイス12は、ビデオ符号化デバイス又はビデオ符号化装置と呼ばれ得る。あて先デバイス14は、ビデオ復号化デバイス又はビデオ復号化装置と呼ばれ得る。発信元デバイス12及びあて先デバイス14は、ビデオコーディングデバイス又はビデオコーディング装置の例であってよい。
発信元デバイス12及びあて先デバイス14は、あらゆる種類の手持ち式又は固定デバイス、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話機、スマートフォン、タブレット若しくはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セット・トップ・ボックス、テレビ受像機、表示デバイス、デジタルメディアプレイヤー、ビデオゲーム機、ビデオストリーミングデバイス(例えば、コンテンツサービスサーバ若しくはコンテンツ配信サーバ)、放送受信デバイス、放送送信デバイス、などを含む、幅広いデバイスのいずれかを有してよく、オペレーティングシステムを使用しなくても、又はあらゆる種類のオペレーティングシステムを使用してもよい。
いくつかの場合に、発信元デバイス12及びあて先デバイス14は、無線通信に対する機能を備えていてもよい。よって、発信元デバイス12及びあて先デバイス14は、無線通信デバイスであってよい。
いくつかの場合に、図1Aに表されているビデオコーディングシステム10は、単に例にすぎず、本願の技術は、符号化及び復号化デバイスの間の如何なるデータ通信も必ずしも含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用されてもよい。他の例では、データは、ローカルメモリから取り出されるか、ネットワーク上でストリーミングされるか、などされてよい。ビデオ符号化デバイスは、データを符号化してメモリに格納してよく、かつ/あるいは、ビデオ復号化デバイスは、データをメモリから取り出して復号してよい。いくつかの例では、符号化及び復号化は、互いに通信せず、単にデータを符号化してメモリに格納しかつ/あるいはデータをメモリから取り出して復号するデバイスによって実行される。
ビデオ符号器20を参照して記載される上記の例の夫々について、ビデオ復号器30は、逆のプロセスを実行するよう構成されてよい、ことが理解されるべきである。シンタックス要素を通知することに関して、ビデオ復号器30は、そのようなシンタックス要素を受信及びパースし、それに応じて関連するビデオデータを復号するよう構成されてよい。いくつかの例では、ビデオ符号器20は、1つ以上のシンタックス要素を、符号化されたビデオビットストリーム内にエントロピ符号化してよい。かような例では、ビデオ復号器30は、そのようなシンタックス要素をパースし、それに応じて関連するビデオデータを復号してよい。
図1Bは、例となる実施形態に従う、図2の符号器20及び/又は図3の復号器30を含む、他の例となるビデオコーディングシステム40の実例となる図である。システム40は、本願で記載される様々な例に従う技術を実装することができる。図示されている実施では、ビデオコーディングシステム40は、撮像デバイス41、ビデオ符号器20、ビデオ復号器30(及び/又は処理ユニット46の論理回路47により実装されるビデオコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリストア44、及び/又は表示デバイス45を含んでよい。
図示されるように、撮像デバイス41、アンテナ42、処理ユニット46、論理回路47、ビデオ符号器20、ビデオ復号器30、プロセッサ43、メモリストア44、及び/又は表示デバイス45は、互いに通信する能力を有してよい。説明されるように、ビデオ符号器20及びビデオ復号器30の両方が表されているが、ビデオコーディングシステム40は、様々な例においてビデオ符号器20しか又はビデオ復号器30しか含まなくてもよい。
示されるように、いくつかの例では、ビデオコーディングシステム40はアンテナ42を含んでよい。アンテナ42は、例えば、ビデオデータの符号化されたビットストリームを送信又は受信するよう構成されてよい。更に、いくつかの例では、ビデオコーディングシステム40は表示デバイス45を含んでもよい。表示デバイス45は、ビデオデータを提示するよう構成されてよい。示されるように、いくつかの例では、論理回路47は、処理ユニット46により実装されてよい。処理ユニット46は、特定用途向け集積回路(ASIC)ロジック、グラフィクスプロセッサ、汎用プロセッサ、などを含んでよい。ビデオコーディングシステム40はまた、任意のプロセッサ43も含んでよく、プロセッサ43は、同様に、特定用途向け集積回路(ASIC)ロジック、グラフィクスプロセッサ、汎用プロセッサ、などを含んでよい。いくつかの例では、論理回路47は、ハードウェア、ビデオコーディング専用ハードウェア、などにより実施されてよく、プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、などを実装されてよい。その上、メモリストア44は、揮発性メモリ(例えば、静的ランダム・アクセス・メモリ(SRAM)、動的ランダム・アクセス・メモリ(DRAM)、など)又は不揮発性メモリ(例えば、フラッシュメモリ、など)、などのような如何なるタイプのメモリであってもよい。非限定的な例では、メモリストア44は、キャッシュメモリによって実装されてよい。いくつかの例では、論理回路47は、(例えば、画像バッファの実装のために)メモリストア44にアクセスしてよい。他の例では、論理回路47及び/又は処理ユニット46は、画像バッファなどの実装のためにメモリストア(例えば、キャッシュなど)を含んでもよい。
いくつかの例では、論理回路により実装されるビデオ符号器20は、画像バッファ(例えば、処理ユニット46又はメモリストア44のどちらか一方による)及びグラフィクス処理ユニット(例えば、処理ユニット46による)を含んでよい。グラフィクス処理ユニットは、画像バッファへ通信可能に結合されてよい。グラフィクス処理ユニットは、図2に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の符号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるビデオ符号器20を含んでよい。論理回路は、ここで説明されている様々な動作を実行するよう構成されてよい。
ビデオ復号器30は、図3の復号器30に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の復号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるように同様にして実装されてよい。いくつかの例では、ビデオ復号器30は、論理回路により実装されてよく、画像バッファ(例えば、処理ユニット46又はメモリストア44のどちらか一方による)及びグラフィクス処理ユニット(例えば、処理ユニット46による)を含んでよい。グラフィクス処理ユニットは、画像バッファへ通信可能に結合されてよい。グラフィクス処理ユニットは、図3に関連して説明されている様々なモジュール及び/又はここで記載されるあらゆる他の復号器システム若しくはサブシステムを具現するよう、論理回路47により実装されるビデオ復号器30を含んでよい。
いくつかの例では、ビデオコーディングシステム40のアンテナ42は、ビデオデータの符号化されたビットストリームを受信するよう構成されてよい。説明されるように、符号化されたビットストリームは、コーディングパーティションに関連したデータ(例えば、変換係数若しくは量子化された変換係数、(説明されたような)任意のインジケータ、及び/又はコーディングパーティションを定義するデータ)などの、ここで説明されているようなビデオフレームを符号化することに関連したデータ、インジケータ、インデックス値、モード選択データなどを含んでよい。ビデオコーディングシステム40はまた、アンテナ42へ結合され、符号化されたビットストリームを復号するよう構成されたビデオ復号器30を含んでもよい。表示デバイス45は、ビデオフレームを提示するよう構成される。
符号器及び符号化方法
図2は、本願の技術を実装するよう構成される、例となるビデオ符号器20の概略/概念ブロック図を示す。図2の例では、ビデオ符号器20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタユニット220、復号化ピクチャバッファ(DPB)230、予測処理ユニット260、及びエントロピ符号化ユニット270を有する。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びモード選択ユニット262を含んでよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでよい。図2に示されるビデオ符号器20は、ハイブリッドビデオ符号器、又はハイブリッドビデオコーデックに従うビデオ符号器とも呼ばれ得る。
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピ符号化ユニット270は、符号器20の順方向信号パスを形成し、一方、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号化ピクチャバッファ(DPB)230、予測処理ユニット260は、符号器の逆方向信号パスを形成し、符号器の逆方向信号パスは、復号器の信号パスに対応する(図3の復号器30を参照)。
符号器20は、例えば、入力部202によって、ピクチャ201又はピクチャ201のブロック203、例えば、ビデオ又はビデオシーケンスを形成するピクチャの連続のピクチャ、を受け取るよう構成される。ピクチャブロック203は、現在のピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれることがあり、ピクチャ201は、現在のピクチャ又はコーディングされるべきピクチャとも呼ばれることがある(特に、ビデオコーディングにおいて、現在のピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在のピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するため)。
パーティショニング
符号器20の実施形態は、ピクチャ201を複数のブロック、例えば、ブロック203のようなブロックに、通常は、複数の重なり合わないブロックに分割するよう構成されたパーティショニングユニット(図2に図示せず)を有してよい。パーティショニングユニットは、ビデオシーケンスの全てのピクチャに対して同じブロックサイズ及びそのブロックサイズを定義する対応するグリッドを使用するよう、あるいは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変え、各ピクチャを対応するブロックに分割するよう構成されてよい。
一例において、ビデオ符号器20の予測処理ユニット260は、上記のパーティショニング技術の任意の組み合わせを実行するよう構成されてよい。
ピクチャ201と同様に、ブロック203も、ピクチャ201よりも小さい寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ若しくはマトリクスであるか、又はそのようなものと見なされ得る。すなわち、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ201の場合にルーマアレイ)又は3つのサンプルアレイ(例えば、カラーピクチャ201の場合にルーマ及び2つのクロマアレイ)又はあらゆる他の数及び/又は種類のアレイを、適用される色フォーマットに応じて有してよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。
図2に示されるビデオ符号器20は、ピクチャ201をブロックごとに符号化するよう構成され、例えば、符号化及び予測は、ブロック203ごとに実行される。
パーティショニングユニットは、ビデオシーケンスからのピクチャをコーディング・ツリー・ユニット(CTU)の連続に分割するよう構成されてよく、パーティショニングユニットは、コーディング・ツリー・ユニット(CTU)を、より小さいパーティション、例えば、正方形又は長方形サイズのより小さいブロックに分割(又は分裂)してよい。3つのサンプルアレイを有するピクチャについて、CTUは、クロマサンプルの2つの対応するブロックとともにルーマサンプルのN×Nブロックから成る。CTUにおけるルーマブロックの最大許容サイズは、開発中のversatile video coding(VVC)では128×128であると規定されるが、それは、将来的には128×128ではない値、例えば、256×256であるよう規定され得る。ピクチャのCTUは、スライス/タイルグループ、タイル又はブリックとしてクラスタ化/グループ化されてよい。タイルは、ピクチャの長方形領域をカバーし、タイルは、1つ以上のブリックに分割され得る。ブリックは、タイル内の多数のCTU行から成る。複数のブリックに分割されないタイルは、ブリックと呼ばれ得る。しかし、ブリックは、タイルの完全なサブセットであり、タイルとは呼ばれない。VVCにおいてサポートされるタイルグループの2つのモード、すなわち、ラスタスキャンスライス/タイルグループモード及び長方形スライスモードが存在する。ラスタスキャンタイルグループモードでは、スライス/タイルグループは、ピクチャのタイルラスタスキャンにおけるタイルの連続を含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を集合的に形成するピクチャの多数のブリックを含む。長方形スライス内のブリックは、スライスのブリックラスタスキャンの順になっている。これらのより小さいブロック(サブブロックとも呼ばれ得る)は、より一層小さいパーティションに更に分割されてよい。これはまた、ツリーパーティショニング又は階層ツリーパーティショニングとも呼ばれ、例えば、根ツリーレベル0(階層レベル0、デプス0)にある、根ブロックは、例えば、次に下のツリーレベルの2つ以上のブロック、例えば、ツリーレベル1(階層レベル1、デプス1)にあるノード、に再帰的に分割されてよく、これらのブロックは、例えば、最大ツリーデプス又は最小ブロックサイズが到達されるなど、例えば、終了基準が満たされるために、パーティショニングが終了されるまで、再び、次に下のレベル、例えば、ツリーレベル2(階層レベル2、デプス2)など、の2つ以上のブロックに分割されてよい。それ以上分割されないブロックは、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションへのパーティショニングを使用するツリーは、二分木(BT)と呼ばれ、3つのパーティションへのパーティショニングを使用するツリーは、三分木(TT)と呼ばれ、4つのパーティションへのパーティショニングを使用するツリーは、四分木(QT)と呼ばれる。
例えば、コーディング・ツリー・ユニット(CTU)は、ルーマサンプルのCTB、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面及びシンタックス構造を用いてコーディングされるピクチャのサンプルのCTBであっても、又はそれを有してもよい。相応して、コーディング・ツリー・ブロック(CTB)は、CTBへのコンポーネントの分割がパーティショニングであるように、何らかのNの値について、サンプルのN×Nブロックであってよい。コーディング・ユニット(CU)は、ルーマサンプルのコーディング・ブロック、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するコーディング・ブロック、又はモノクロピクチャ若しくはサンプルをコーディングするために使用される3つの別個の色平面及びシンタックス構造を用いてコーディングされるピクチャのサンプルのコーディング・ブロックであっても、又はそれを有してもよい。相応して、コーディング・ブロック(CB)は、コーディング・ブロックへのCTBの分割がパーティショニングであるように、何らかのM及びNの値について、サンプルのM×Nブロックであってよい。
実施形態において、例えば、HEVCに従って、コーディング・ツリー・ユニット(CTU)は、コーディング・ツリーとして表される四分木構造を使用することによって、CUに分割されてよい。インターピクチャ(時間的)又はイントラピクチャ(空間的)予測を用いてピクチャエリアをコーディングすべきかどうかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに従って、1つ、2つ又は4つのPUに更に分割され得る。1つのPU内では、同じ予測プロセスが適用され、関連情報は、PUベースで復号器へ送られる。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、リーフCUは、CUのためのコーディング・ツリーに類似した他の四分木構造に従って、変換ユニット(TU)に分割され得る。
実施形態において、例えば、Versatile Video Coding(VVC)と呼ばれる、現在開発中の最新のビデオコーディング標準規格に従って、二分木及び三分木分割セグメンテーション構造を使用する複合的な四分木入れ子型マルチタイプツリーが、例えば、コーディング・ツリー・ユニットを分割するために使用される。コーディング・ツリー・ユニット内のコーディング・ツリー構造において、CUは、正方形又は長方形形状のどちらか一方を有することができる。例えば、コーディング・ツリー・ユニット(CTU)は、最初に、四分木によって分割される。次いで、四分木リーフノードは、マルチタイプツリー構造によって更に分割され得る。マルチタイプツリー構造には4つの分割タイプ、すなわち、垂直二分割(SPLIT_BT_VER)、水平二分割(SPLIT_BT_HOR)、垂直三分割(SPLIT_TT_VER)、及び水平三分割(SPLIT_TT_HOR)が存在する。マルチタイプツリーリーフノードは、コーディング・ユニット(CU)と呼ばれ、CUが最大変換長に対して大きすぎない限り、このセグメンテーションは、それ以上のパーティショニングなしで予測及び変換処理のために使用される。これは、ほとんどの場合に、CU、PU及びTUが四分木入れ子型マルチタイプツリーコーディング・ブロック構造で同じブロックサイズを有している、ことを意味する。例外は、最大対応変換長がCUの色成分の幅又は高さよりも小さい場合に起こる。VVCは、四分木入れ子型マルチタイプツリーコーディング・ツリー構造においてパーティション分割情報の独自のシグナリングメカニズムを開発している。そのシグナリングメカニズムでは、コーディング・ツリー・ユニット(CTU)は、四分木の根として扱われ、最初に四分木ツリー構造によって分割される。各四分木リーフノード(それを可能にするほど十分に大きい場合)は、次いで、マルチタイプツリー構造によって更に分割される。マルチタイプツリー構造では、第1フラグ(mtt_split_cu_flag)が、ノードが更に分割されるかどうかを示すために通知される。ノードが更に分割される場合に、第2フラグ(mtt_split_cu_vertical_flag)が、分割方向を示すために通知され、それから、第3フラグ(mtt_split_cu_binary_flag)が、分割が二分割又は三分割であるかどうかを示すために通知される。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)は、事前に定義された規則又はテーブルに基づいて復号器によって導出され得る。留意されるべきは、特定の設計、例えば、VVCハードウェア復号器における64×64ルーマブロック及び32×32クロマパイプライニング設計については、TT分割は、ルーマコーディングブロックの幅又は高さのどちらか一方が64よりも大きい場合に禁止される点である。TT分割は、クロマコーディングブロックの幅又は高さのどちらか一方が32よりも大きい場合にも禁止される。パイプライニング設計は、ピクチャ内の重なり合わないユニットとして定義される仮想パイプラインデータユニット(VPDU)にピクチャを分割することになる。ハードウェア復号器では、連続するVPDUが同時に多重パイプライン段によって処理される。VPDUサイズは、ほとんどのパイプライン段においてバッファサイズにおおよそ比例するので、VPDUサイズを小さく保つことが重要である。ほとんどのハードウェア復号器では、VPDUサイズは、最大変換ブロック(TB)サイズにセットされ得る。しかし、VVCでは、三分木(TT)及び二分木(BT)パーティションは、VPDUサイズの増大をもたらすことがある。
更には、留意されるべきは、ツリーノードブロックの一部が下又は右ピクチャ境界を越える場合に、ツリーノードブロックは、あらゆるコーディングされたCUの全サンプルがピクチャ境界内に位置するまで分割されることを強いられる点である。
例として、イントラサブパーティションズ(ISP)ツールは、ブロックサイズに応じて、ルーマイントラ予測されたブロックを垂直又は水平に2つ又は4つのサブパーティションに分割してよい。
残差計算
残差計算ユニット204は、例えば、サンプル領域において残差ブロック205を得るようサンプルごと(ピクセルごと)にピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減じることによって、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は後で与えられる)に基づいて残差ブロック205を計算するよう構成される。
変換
変換処理ユニット206は、変換領域において変換係数207を得るよう残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)を適用するよう構成される。変換係数207は、変換残差係数とも呼ばれ、変換領域において残差ブロック205を表し得る。
変換処理ユニット206は、HEVC/H.265のために規定された変換などのDCT/DSTの整数近似を適用するよう構成されてよい。直交DCT変換と比較して、そのような整数近似は、通常、特定の係数によってスケーリングされる。順方向及び逆方向変換によって処理される残差ブロックのノルムを保つために、追加のスケーリング係数が変換プロセスの部分として適用される。スケーリング係数は、通常、シフト演算のための2のべき乗であるスケーリング係数、変換係数のビットデプス、精度と実施コストと間のトレードオフ、などのような特定の制約に基づいて選択される。具体的なスケーリング係数は、例えば、復号器30における、例えば、逆変換処理ユニット212による、逆変換(及び符号器20における、例えば、逆変換処理ユニット212による、対応する逆変換)のために、指定され、符号器20における、例えば、変換処理ユニット206による、順方向変換のための対応するスケーリング係数は、それに応じて指定されてよい。
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することによって、量子化された変換係数209を得るように変換係数207を量子化するよう構成される。量子化された変換係数209は、量子化された残差係数209とも呼ばれ得る。量子化プロセスは、変換係数207の一部又は全てに関連したビットデプスを低減し得る。例えば、nがmよりも大きいとして、nビット変換係数は、量子化中にmビット変換係数に切り下げら得る。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラー量子化については、異なるスケーリングが、より細かい又はより粗い量子化を達成するために適用されてよい。より小さい量子化ステップサイズは、より細かい量子化に対応し、一方、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義された組へのインデックスであってよい。例えば、小さい量子化パラメータは、細かい量子化(小さい量子化ステップサイズ)に対応してよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してよく、逆もまた同じである。量子化は、量子化ステップサイズによる除算を含んでよく、例えば、逆量子化ユニット210による、対応する又は逆方向の逆量子化は、量子化ステップサイズによる乗算を含んでよい。いくつかの標準規格、例えば、HEVC、に従う実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するよう構成されてよい。一般に、量子化ステップサイズは、除算を含む方程式の固定点近似を用いて量子化パラメータに基づいて計算され得る。追加のスケーリング係数は、量子化ステップサイズ及び量子化パラメータのための方程式の固定点近似で使用されるスケーリングのために変更される可能性がある残差ブロックのノルムを回復するよう量子化及び逆量子化のために導入されてよい。1つの例となる実施では、逆変換及び逆量子化のスケーリングは結合されてもよい。代替的に、カスタマイズされた量子化テーブルが使用され、符号器から復号器へ、例えば、ビットストリームにおいて、伝えられてもよい。量子化は、不可逆操作であり、損失は、量子化ステップサイズを大きくするほど増大する。
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用された量子化スキームの逆を適用することによって、逆量子化された係数211を得るために、量子化された係数に対して量子化ユニット208の逆量子化を適用するよう構成される。逆量子化された係数211は、逆量子化された残差係数211とも呼ばれることがあり、通常は量子化による損失により変換係数と同じではないが、変換係数207に対応する。
逆変換処理ユニット212は、サンプル領域において逆変換ブロック213を得るために、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)を適用するよう構成される。逆変換ブロック213は、逆変換逆量子化されたブロック213又は逆変換残差ブロック213とも呼ばれることがある。
再構成ユニット214(例えば、加算器214)は、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、サンプル領域において再構成されたブロック215を得るために、逆変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加えるよう構成される。
任意に、バッファユニット216(又は略して「バッファ」216)、例えば、ラインバッファ216は、例えば、イントラ予測のために、再構成されたブロック215及び各々のサンプル値をバッファリング又は格納するよう構成される。更なる実施形態では、符号器は、あらゆる種類の推定及び/又は予測、例えば、イントラ予測のために、バッファユニット216に格納されたフィルタ処理されていない再構成されたブロック及び/又は各々のサンプル値を使用するよう構成されてよい。
符号器20の実施形態は、例えば、バッファユニット216が、イントラ予測ユニット254のためにだけでなく、ループフィルタユニット220のためにも(図2に図示せず)、再構成されたブロック215を記憶するために使用されるように、及び/又は、例えば、バッファユニット216及び復号化ピクチャバッファユニット230が1つのバッファを形成するように、構成されてよい。更なる実施形態は、イントラ予測ユニット254のための入力又は基礎として、フィルタ処理されたブロック221及び/又は復号化ピクチャバッファ230からのブロック若しくはサンプル(両方とも図2に図示せず)を使用するよう構成されてもよい。
ループフィルタユニット220(又は略して「ループフィルタ」220)は、フィルタ処理されたブロック221を得るために、例えば、ピクセル遷移を平滑化するために、又は別の方法でビデオ品質を改善するために、再構成されたブロック215にフィルタをかけるよう構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は他のフィルタ、例えば、バイラテラルフィルタ又は適応ループフィルタ(ALF)又は先鋭化若しくは平滑化フィルタ又は協調フィルタなどの1つ以上のループフィルタを表すよう意図される。ループフィルタユニット220は、図2では、インループフィルタであるとして示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタ処理されたブロック221は、フィルタ処理された再構成されたブロック221とも呼ばれることがある。復号化ピクチャバッファ230は、ループフィルタユニット220が再構成されたコーディング・ブロックに対してフィルタリング操作を実行した後に、再構成されたコーディング・ブロックを格納してよい。
符号器20(又はループフィルタユニット220)の実施形態は、例えば、直接に、あるいは、エントロピ符号化ユニット270又は何らかの他のエントロピコーディングユニットを介してエントロピ符号化された、ループフィルタパラメータ(例えば、サンプル適応オフセット情報)を出力するよう構成されてよく、それにより、例えば、復号器30は、復号のために同じループフィルタパラメータを受信及び適用してよい。
復号化ピクチャバッファ(DPB)230は、ビデオ符号器20によってビデオデータを符号化する際に使用される参照ピクチャデータを格納する参照ピクチャメモリであってよい。DPB230は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリデバイスを含む動的ランダム・アクセス・メモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成されてよい。DPB230及びバッファ216は、同じメモリデバイス又は別個のメモリデバイスによって提供されてよい。いくつかの例では、復号化ピクチャバッファ(DPB)230は、フィルタ処理されたブロック221を格納するよう構成される。復号化ピクチャバッファ230は、同じ現在のピクチャの又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタ処理されたブロック、例えば、前に再構成及びフィルタ処理されたブロック221を格納するよう更に構成されてよく、例えば、インター予測のために、完全な前に再構成された、すなわち、復号化された、ピクチャ(並びに対応する参照ブロック及びサンプル)及び/又は部分的に再構成された現在のピクチャ(並びに対応する参照ブロック及びサンプル)を供給してよい。いくつかの例では、再構成されたブロック215が再構成されているがインループフィルタリングなしである場合に、復号化ピクチャバッファ(DPB)230は、再構成されたブロック215を格納するよう構成される。
ブロック予測処理ユニット260とも呼ばれる予測処理ユニット260は、ブロック203(現在のピクチャ201の現在のブロック203)及び再構成されたピクチャデータ、例えば、バッファ216からの同じ(現在の)ピクチャの参照サンプル及び/又は復号化ピクチャバッファ230からの1つ又は複数の前に復号化されたピクチャからの参照ピクチャデータ231を受信又は取得するよう、かつ、予測のためにそのようなデータを処理するよう、すなわち、インター予測されたブロック245又はイントラ予測されたブロック255であり得る予測ブロック265を供給するよう、構成される。
モード選択ユニット262は、残差ブロック205の計算のために及び再構成されたブロック215の再構成のために予測モード(例えば、イントラ若しくはインター予測モード)及び/又は予測ブロック265として使用されるべき対応する予測ブロック245若しくは255を選択するよう構成されてよい。
モード選択ユニット262の実施形態は、最良の一致、すなわち、言い換えると、最小残差(最小残差とは、伝送又は記憶のためのより良い圧縮を意味する)、又は最小シグナリングオーバーヘッド(最小シグナリングオーバーヘッドとは、伝送又は記憶のためのより良い圧縮を意味する)をもたらすか、あるいは、両方を考慮又はバランスをとる予測モードを(例えば、予測処理ユニット260によってサポートされているものから)選択するよう構成されてよい。モード選択ユニット262は、レート歪み最適化(RDO)に基づいて予測モードを決定する、すなわち、最低レート歪み最適化をもたらすか、あるいは、予測モード選択基準を少なくとも満たすレート歪みに関連した予測モードを選択する、よう構成されてよい。
以下では、例となる符号器20によって実行される予測処理(例えば、予測処理ユニット260及びモード選択(例えば、モード選択ユニット262による))が、より詳細に説明される。
上述されたように、符号器20は、(所定の)予測モードの組から最良又は最適な予測モードを決定又は選択するよう構成される。予測モードの組は、例えば、イントラ予測モード及び/又はインター予測モードを有してよい。
イントラ予測モードの組は、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非指向性モード、又は、例えば、H.265で定義されるような指向性モードを有してよく、あるいは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非指向性モード、又は、例えば、開発中のH.266で定義されるような指向性モードを有してもよい。
イントラ予測モード(又は可能なイントラ予測モード)の組は、利用可能な参照ピクチャ(すなわち、例えば、DPB230に格納された、前の、少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照ピクチャの一部のみ、例えば、現在のブロックのエリアの周りの探索窓エリア、が、最良の一致を示す参照ブロックを探すために使用されるかどうか、及び/又は、例えば、ピクセル補間、例えば、ハーフ/セミペル及び/又はクォーターペル補間が適用される否か、に依存する。
上記の予測モードに加えて、スキップモード及び/又はダイレクトモードが適用されてもよい。
予測処理ユニット260は、例えば、四分木パーティショニング(QT)、二分木パーティショニング(BT)若しくは三分木パーティショニング(TT)又はそれらの任意の組み合わせを繰り返し用いて、ブロック203をより小さいブロックパーティション又はサブブロックに分割するよう、かつ、例えば、ブロックパーティション又はサブブロックの夫々について予測を実行するよう更に構成されてよく、モード選択は、分割されたブロック203の木構造とブロックパーティション又はサブブロックの夫々に適用された予測モードとの選択を有する。
インター予測ユニット244は、動き推定(ME)ユニット(図2に図示せず)及び動き補償(MC)ユニット(図2に図示せず)を含んでよい。動き推定ユニットは、ピクチャブロック203(現在のピクチャ201の現在のピクチャブロック203)及び復号されたピクチャ231、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ若しくは複数の他の/異なる前に復号されたピクチャ231の再構成されたブロックを、動き推定のために受信又は取得するよう構成される。例えば、ビデオシーケンスは、現在のピクチャ及び前に復号されたピクチャ231を有してよく、あるいは、言い換えると、現在のピクチャ及び前に復号されたピクチャ231は、ビデオシーケンスを形成するピクチャの連続の部分であっても、又はそれを形成してもよい。
符号器20は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス、・・・)及び/又は参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして動き推定ユニット(図2に図示せず)へ供給するよう構成されてよい。このオフセットは、動きベクトル(MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得、例えば、受信するよう、かつ、インター予測ブロック245を得るためにインター予測パラメータに基づいて又はそれを用いてインター予測を実行するよう構成される。動き補償ユニット(図2に図示せず)によって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチ又は生成し、場合によりサブピクセル精度に対する補間を実行することを伴ってよい。補間フィルタリングは、既知のピクセルサンプルから更なるピクセルサンプルを生成することができ、このようにして潜在的に、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を増やす。現在のピクチャブロックのPUについての動きベクトルを受け取ると、動き補償ユニットは、参照ピクチャリストの1つにおいて、動きベクトルが指し示す予測ブロックを見つけ得る。動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際にビデオ復号器30によって使用されるブロック及びビデオスライスに関連したシンタックス要素を生成し得る。
イントラ予測ユニット254は、イントラ推定のために、ピクチャブロック203(現在のピクチャブロック)と、同じピクチャの1つ又は複数の前に再構成されたブロック、例えば、再構成された隣接ブロックを取得、例えば、受信するよう構成される。符号器20は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択するよう構成されてよい。
符号器20の実施形態は、最適化基準、例えば、最小残差(例えば、現在のピクチャブロック203に最も類似している予測ブロック255をもたらすイントラ予測モード)又は最小レート歪みに基づいてイントラ予測モードを選択するよう構成されてよい。
イントラ予測ユニット254は、イントラ予測パラメータ、例えば、選択されたイントラ予測モードに基づいて、イントラ予測ブロック255を決定するよう更に構成される。いずれの場合にも、ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット254はまた、イントラ予測パラメータ、すなわち、そのブロックのための選択されたイントラ予測モードを示す情報をエントロピ符号化ユニット270へ供給するよう構成される。一例において、イントラ予測ユニット254は、後述されるイントラ予測技術の任意の組み合わせを実行するよう構成されてよい。
エントロピ符号化ユニット270は、エントロピ符号化アルゴリズム若しくはスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CALVC)、算術コーディングスキーム、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応二値算術コーディング(SBAC)、確率区間パーティショニングエントロピ(PIPE)コーディング又は他のエントロピ符号化メッソドロジ若しくは技術)を量子化された残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータに対して個別的に又は一緒に適用して(又は全く適用せずに)、出力部272によって、例えば、符号化されたビットストリーム21の形で、出力され得る符号化されたピクチャデータ21を得るよう構成される。符号化されたビットストリーム21は、ビデオ復号器30へ送られるか、あるいは、後の伝送又はビデオ復号器30による読み出しのためにアーカイブ保管されてよい。エントロピ符号化ユニット270は、コーディング中の現在のビデオスライスのための残りのシンタックス要素をエントロピ符号化するよう更に構成され得る。
ビデオ符号器20の他の構造変形物は、ビデオストリームを符号化するために使用され得る。例えば、非変換に基づく符号器20は、特定のブロック又はフレームについて変換処理ユニット206によらずに直接に残差信号を量子化することができる。他の実施では、符号器20は、単一のユニットにまとめられた量子化ユニット208及び逆量子化ユニット210を有することができる。
図3は、本願の技術を実装するよう構成される、例となるビデオ復号器30を示す。ビデオ復号器30は、復号されたピクチャ131を得るために、例えば、符号器20によって符号化された、符号化されたピクチャデータ(例えば、符号化されたビットストリーム)21を受信するよう構成される。復号化プロセス中に、ビデオ復号器30は、ビデオデータ、例えば、符号化されたビデオスライスのピクチャブロック及び関連するシンタックス要素を表す符号化されたビデオビットストリームをビデオ符号器20から受信する。
図3の例では、復号器30は、エントロピ復号化ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、積算器314)、バッファ316、ループフィルタ320、復号化ピクチャバッファ330及び予測処理ユニット360を有する。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含んでよい。ビデオ復号器30は、いくつかの例では、図2のビデオ符号器20に関して記載された符号化パスとおおむね逆の復号化パスを実行してよい。
エントロピ復号化ユニット304は、例えば、量子化された係数309及び/又は復号されたコーディングパラメータ(図3に図示せず)、例えば、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちの(復号された)いずれか又は全てを得るために、符号化されたピクチャデータ21に対してエントロピ復号化を実行するよう構成される。エントロピ復号化ユニット304は、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を予測処理ユニット360へ転送するよう更に構成される。ビデオ復号器30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信してよい。
逆量子化ユニット310は、逆量子化ユニット210と機能が同じであってよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能が同じであってよく、再構成ユニット314は、再構成ユニット214と機能が同じであってよく、バッファ316は、バッファ216と機能が同じであってよく、ループフィルタ320は、ループフィルタ220と機能が同じであってよく、復号化ピクチャバッファ330は、復号化ピクチャバッファ230と機能が同じであってよい。
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を有してよく、インター予測ユニット344は、機能がインター予測ユニット244に似ていてよく、イントラ予測ユニット354は、機能がイントラ予測ユニット254に似ていてよい。予測処理ユニット360は、通常は、ブロック予測を実行しかつ/あるいは符号化されたデータ21から予測ブロック365を取得するよう、かつ、予測関連パラメータ及び/又は選択された予測モードに関する情報を、例えば、エントロピ復号化ユニット304から、(明示的又は暗黙的に)受信又は取得するよう構成される。
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされる場合に、予測処理ユニット360のイントラ予測ユニット354は、通知されたイントラ予測モードと、現在のフレーム又はピクチャの中の前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのピクチャブロックについて予測ブロック365を生成するよう構成される。ビデオフレームがインターコーディングされた(すなわち、B又はP)スライスとしてコーディングされる場合に、予測処理ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピ復号化ユニット304から受け取られた動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについて予測ブロック365を生成するよう構成される。インター予測については、予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャの1つから生成されてよい。ビデオ復号器30は、参照フレームリスト、List0及びList1を、DPB330に格納されている参照ピクチャに基づいてデフォルトの構成技術を用いて構成してよい。
予測処理ユニット360は、動きベクトル及び他のシンタックス要素をパースすることによって現在のビデオスライスのビデオブロックについて予測情報を決定するよう構成され、予測情報を使用して、復号化中の現在のビデオブロックについての予測ブロックを生成する。例えば、予測処理ユニット360は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスのための参照ピクチャリストの1つ以上についての構成情報、スライスの各インター符号化されたビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックのインター予測ステータス、及び現在のビデオスライス内のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のいくつかを使用する。
逆量子化ユニット310は、ビットストリームにおいて供給されてエントロピ復号化ユニット304によって復号された量子化された変換係数を逆量子化、すなわち、量子化解除するよう構成される。逆量子化プロセスは、量子化の程度及び、同様に、適用されるべき逆量子化の程度を決定するためにビデオスライス内の各ビデオブロックについてビデオ符号器20によって計算された量子化パラメータの使用を含んでよい。
逆変換処理ユニット312は、ピクセル領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に類似した逆変換プロセスを変換係数に適用するよう構成される。
再構成ユニット314(例えば、加算器314)は、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを足し合わせることによって、サンプル領域において再構成されたブロック315を得るために逆変換ブロック313(すなわち、再構成された残差ブロック313)を予測ブロック365に加えるよう構成される。
ループフィルタユニット320(コーディングループ内又はコーディングループ後のどちらかにある)は、フィルタ処理されたブロック321を得るために、例えば、ピクセル遷移を平滑化するか、あるいは、別の方法でビデオ品質を改善するために、再構成されたブロック315にフィルタをかけるよう構成される。一例において、ループフィルタユニット320は、後述されるフィルタリング技術の任意の組み合わせを実行するよう構成されてよい。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ又は他のフィルタ、例えば、バイラテラルフィルタ又は適応ループフィルタ(ALF)又は先鋭化若しくは平滑化フィルタ又は協調フィルタなどの1つ以上のループフィルタを表すよう意図される。ループフィルタユニット320は、図3では、インループフィルタであるものとして示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。
所与のフレーム又はピクチャ内の復号されたビデオブロック321は、次いで、復号化ピクチャバッファ330に格納される。復号化ピクチャバッファ330は、その後の動き補償のために使用される参照ピクチャを記憶している。
復号器30は、ユーザへの提示又は表示のために、例えば、出力部332を介して、復号化されたピクチャ311を出力するよう構成される。
ビデオ復号器30の他の変形物は、圧縮されたビットストリームを復号するために使用され得る。例えば、復号器30は、ループフィルタリングユニット320によらずに出力ビデオストリームを生成することができる。例えば、非変換に基づく復号器30は、特定のブロック又はフレームについて逆変換処理ユニット312によらずに直接に残差信号を逆量子化することができる。他の実施では、ビデオ復号器30は、単一のユニットにまとめられた逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
図4は、本開示の実施形態に従うビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここで記載されているような開示されている実施形態を実装するのに適している。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオ復号器30のような復号器又は図1Aのビデオ符号器20のような符号器であってよい。実施形態において、ビデオコーディングデバイス400は、上述されたような図1Aのビデオ復号器30又は図1Aのビデオ符号器20の1つ以上のコンポーネントであってよい。
ビデオコーディングデバイス400は、データを受信するための入口ポート410及び受信器ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450と、データを記憶するためのメモリ460とを有する。ビデオコーディングデバイス400はまた、光又は電気信号の出又は入りのために入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450へ結合された光電気(OE)コンポーネント及び電気光(EO)コンポーネントを有してもよい。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を有する。コーディングモジュール470は、上述された開示されている実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング動作を実装、処理、準備、又は提供する。コーディングモジュール470の包含は、従って、ビデオコーディングデバイス400の機能性に実質的な改善をもたらし、異なる状態へのビデオコーディングデバイス400の変形を達成する。代替的に、コーディングモジュール470は、メモリ460に記憶されておりプロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを有し、プログラムを、そのようなプログラムが実行のために選択される場合に、記憶するよう、かつ、プログラム実行中に読み出される命令及びデータを記憶するよう、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、三値連想メモリ(TCAM)、及び/又は静的ランダム・アクセス・メモリ(SRAM)であってよい。
図5は、例となる実施形態に従って図1Aの発信元デバイス12及びあて先デバイス14のどちらか一方又は両方として使用され得る装置500の略ブロック図である。装置500は、上述された本願の技術を実装することができる。装置500は、複数のコンピューティングデバイスを含むコンピューティングシステムの形、又は単一のコンピューティングデバイス、例えば、携帯電話機、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、などの形をとることができる。
装置500内のプロセッサ502は、中央演算処理装置であることができる。あるいは、プロセッサ502は、現在存在しているか又は今後開発される、情報を操作又は処理することができるあらゆる他のタイプのデバイス又は複数のデバイスであることができる。開示されている実施は、示されるように単一のプロセッサ、例えば、プロセッサ502により実施され得るが、速度及び効率の優位性は、1つよりも多いプロセッサを用いて達成され得る。
装置500内のメモリ504は、実施においてリード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスであることができる。あらゆる他の適切なタイプの記憶デバイスが、メモリ504として使用され得る。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここで記載されている方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここで記載されている方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1からNを含むことができる。装置500はまた、例えば、モバイルコンピューティングデバイスとともに使用されるメモリカードであることができる二次記憶装置514の形で追加のメモリも含むことができる。ビデオ通信セッションは、相当量の情報を含むことがあるので、それらは全体として又は部分的に二次記憶装置514に格納され、処理の必要に応じてメモリ504にロードされ得る。
装置500はまた、ディスプレイ518などの1つ以上の出力デバイスも含むことができる。ディスプレイ518は、一例において、タッチ入力を検知するよう動作可能であるタッチ検知素子とディスプレイを組み合わせるタッチ検知ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502へ結合され得る。ユーザが装置500をプログラム又は別の方法で使用することを可能にする他の出力デバイスが、ディスプレイ518に加えて又はそれに代わるものとして設けられ得る。出力デバイスがデバイスプレイであるか又はそれを含む場合に、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ又は有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイを含む様々な方法で実装され得る。
装置500はまた、イメージ検知デバイス520、例えば、カメラ、あるいは、装置500を操作するユーザのイメージなどのイメージを検知することができる、現在存在しているか又は今後開発されるあらゆる他のイメージ検知デバイス520を含むか、又はそれと通信することができる。イメージ検知デバイス520は、それが装置500を操作するユーザの方に向けられるように位置付けられ得る。例において、イメージ検知デバイス520の位置及び光軸は、視野が、ディスプレイ518の直ぐ隣にあって、ディスプレイ518が目に見えるエリアを含むように、設定され得る。
装置500はまた、音響検知デバイス522、例えば、マイクロホン、あるいは、装置500の近くの音響を検知することができる、現在存在しているか又は今後開発されるあらゆる他の音響検知デバイスを含むか、又はそれと通信することができる。音響検知デバイス522は、それが装置500を操作するユーザの方に向けられるように位置付けられ得、そして、ユーザが装置500を操作している間にユーザによって発せられる音響、例えば、発話又は他の発声を受け取るよう構成され得る。
図5は、装置500のプロセッサ502及びメモリ504を単一のユニットに組み込まれるものとして表すが、他の構成が利用可能である。プロセッサ502の動作は、直接に又はローカルエリア若しくは他のネットワークをわたって結合され得る複数のマシン(各マシンは1つ以上のプロセッサを有する)にわたって分散させられることができる。メモリ504は、ネットワークベースメモリ又は、装置500の動作を実行する複数のマシン内のメモリなどのように、複数のマシンにわたって分散させられることができる。ここでは単一のバスとして表されているが、装置500のバス512は、複数のバスから構成され得る。更に、二次記憶装置514は、装置500の他のコンポーネントへ直接に結合され得るか、あるいは、ネットワークを介してアクセス可能であり、メモリカードのような単一の集積ユニット又は複数のメモリカードのような複数のユニットを有することができる。装置500は、このようにして多種多様な構成において実装され得る。
ビデオ符号器20は、入力ビデオフレームを、符号化の前に、ブロックに分割してよい。本開示における「ブロック」という用語は、あらゆるタイプのブロックに対して又はあらゆるデプスのブロックに対して使用され、例えば、「ブロック」という用語は、根ブロック、ブロック、サブブロック、リーフノード、などを含むがこれらに限られない。コーディングされるべきブロックは、必ずしも同じサイズを有さない。1つのピクチャは、異なるサイズのブロックを含んでよく、ビデオシーケンスの異なるピクチャのブロックラスタも異なってよい。図6A〜6Eは、VVCにおけるコーディング・ツリー・ユニット(CTU)/コーディング・ユニット(CU)分割モードを図解する。
図6Aは、四分木(QT)分割を採用することによるブロックパーティション構造を図解する。QTは、サイズ4M×4Nのノードがサイズ2M×2Nの4つの子ノードに分割され得るブロックパーティションについての木構造である。
図6Bは、垂直方向における二分木(BT)分割を採用することによるブロックパーティション構造を図解する。
図6Cは、水平方向における二分木(BT)分割を採用することによるブロックパーティション構造を図解する。BTは、サイズ4M×4Nのノードが水平にサイズ4M×2Nの2つの子ノードに分割されるか、又は垂直にサイズ2M×4Nの2つの子ノードに分割されるかのどちらかであり得るブロックパーティションについての木構造である。
図6Dは、垂直方向における三分木(TT)分割を採用することによるブロックパーティション構造を図解する。
図6Eは、水平方向における三分木(TT)分割を採用することによるブロックパーティション構造を図解する。TTは、サイズ4M×4Nのノードが水平に夫々サイズ4M×N、4M×2N、及び4M×Nの3つの子ノードに分割されるか、又は垂直に夫々サイズM×4N、2M×4N、及びM×4Nの3つの子ノードに分割されるかのどちらかであり得るブロックパーティションについての木構造である。図6D又は図6Eに示される3つの子ノードの中で、最大のノードは中央に位置付けられる。
四分木プラス二分木(QTBT)は、ブロックが最初に四分木分割を用いて分割され、それから各四分木子ノードが二分木分割を用いて更に分割され得る四分木プラス二分木構造である。四分木プラス二分木又は三分木(QT−BT/TT)は、ブロックが最初に四分木分割を用いて分割され、それから各四分木子ノードが二分木又は三分木分割を用いて更に分割され得る四分木プラス二分木又は三分木構造である。
特定のパーティションデプスに関連したブロックについては、符号器20は、どのパーティションタイプ(これ以上の分割を含まない)が使用されるかを決定し、決定されたパーティションタイプを明示的に又は暗黙的に(例えば、パーティションタイプは所定の規則から導出され得る)復号器30へ通知する。符号器20は、例えば、異なるパーティションタイプを用いてそのブロックについてレート歪みコストを確認することに基づいて、使用すべきパーティションタイプを決定してよい。
本発明における「ブロック」という用語は、根ブロック、ブロック、サブブロック、リーフノード、などを含むがこれらに限られない一般化された用語である。
ビデオコーディング標準規格は、HEVC/H.265標準規格で使用されているシングルツリー(ST)コーディングに加えてデュアルツリー(DT)コーディングを導入している。ST又はDTは、スライス又はフレームタイプ(例えば、イントラフレーム又はインターフレーム、イントラスライス又はインタースライス)に基づいて選択される。シングルツリーコーディングモードの下で、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分は、同じパーティショニングツリーを共有する。デュアルツリーコーディングモードの下で、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分は、別々に、すなわち、ルーマ及びクロマ成分に対してパーティショニングの独立したスキームを用いて、分割される。
ピクチャ圧縮レベルは、(例えば、同じ量子化パラメータ値を使用することによって)ピクチャ全体に対して固定であり得るか、又はピクチャの異なる領域ごとに異なる量子化パラメータ値を有し得る量子化パラメータ(QP)によって制御される。
量子化パラメータを決定するための1つの解決法は、コーディング・ユニット(CU)レベルでの量子化パラメータ(QP)シグナリングである。このアプローチは、特にいくつかのCUデプス(すなわち、パーティションのレイヤを定義するパーティションデプス)で、ピクチャの異なる領域ごとにQP値を柔軟に変更することを可能にする。ピクチャの特定の領域についてのQPを通知するために、デルタQPシグナリング方法が使用される。この方法では、予測されたQP(QPc_pred)と現在の領域の実際のQPとの間の差(すなわち、デルタQP)は、ビットストリームを介して通知される。デルタQP値及びその粒度(例えば、分割されたブロックのサイズ)は、ピクチャパラメータセット(PPS)内のオンオフ制御フラグ及び最大デプス(例えば、デルタQPシンタックス要素)によって定義される。より高いパーティションデプスを有する全てのCUについては、デルタQP値は通知されず、最高位のCUから受け継いでよい。HEVC標準規格では、ルミナンス(又はルーマ)コーディングブロック(CB)についてのQP値は、予測されたQP(qPY_PRED)に基づいて導出され、これは、次いで、フレーム/スライス/タイル内のCB位置に依存する。それから、QpY変数は、次の式1:
QpY=((qPY_PRED+CuQpDeltaVal+52+2*QpBdOffsetY)%(52+QpBdOffsetY))−QpBdOffsetY
(式1)
によって導出される。
ここで、CuQpDeltaValは、コーディング・ユニット(CU)について通知又は導出されるデルタQP値であり、QpBdOffsetYは、ルーマビットデプス(HEVC標準規格から、この用語は、「ルーマアレイのサンプルのビットデプス」に対応する)に依存した一定のオフセットである。最後に、ルミナンス(又はルーマ)成分の量子化パラメータQp’Yは、次の式2:
Qp’Y=QpY+QpBdOffsetY (式2)
によって計算され得る。
変数qPCb及びqPCrは、夫々qPiCb又はqPiCrに等しいインデックスqPiに基づいて量子化テーブル(例えば、表1)で指定されるQpCの値に等しくセットされ、qPiCb及びqPiCrは、式3によって次の通りに導出される:
qPiCb=Clip3(−QpBdOffsetC,57,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,57,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
(式3)
ここで、QpBdOffsetCは、クロマビットデプス(HEVC標準規格から、この用語は、「クロマアレイのサンプルのビットデプス」に対応する)に依存した一定のオフセットであり、pps_cb_qp_offset又はpps_cr_qp_offsetは、ピクチャパラメータセット(PPS)によって通知されるCb成分又はCr成分についての固定オフセットであり、slice_cb_qp_offset又はslice_cr_qp_offsetは、スライスヘッダにおいて通知されるCb成分又はCr成分についての固定オフセットである。
Cb及びCr成分についてのクロマ量子化パラメータ(Qp’Cb及びQp’Cr)は、式5によって次の通りに導出される:
Qp’Cb=qPCb+QpBdOffsetC
(式5)
Qp’Cr=qPCr+QpBdOffsetC
留意されるべきは、上述されたデルタQPメカニズムは、シングルツリー(ST)に対してにしか有効でなく、ルミナンス(又はルーマ)及びクロミナンス(又はクロマ)成分が異なるパーティショニングツリーを使用し得るためにデュアルツリー(DT)には適用され得ない点である。
概して、本発明の実施形態は、ビデオコーディングの分野に関係がある。特に、本発明の実施形態は、ビデオ復号化デバイス内の逆量子化装置の部分であるデルタQPシグナリングに関係がある。本発明の実施形態は、デュアルツリー(DT)が適用される場合にデルタQPメカニズムを適用する異なる方法を提案する。
シングルツリー(ST)に対してしか有効でない上述されたデルタQPメカニズムと同様に、ツリーのタイプ(ST又はDT)に関わらず、Cb及びCr成分のためのクロマ量子化パラメータは、式6:
Qp’Cb=qPCb+QpBdOffsetC
(式6)
Qp’Cr=qPCr+QpBdOffsetC
に従ってqPi値に基づいて導出される。
ここで、qPCb及びqPCrは、量子化テーブル又はマッピングテーブル(例えば、表1)に基づいて導出され、qPi値に依存する。シングルツリーのためのデルタQPシグナリングと対照的に、本発明の本実施形態は、次の式7:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式7)
に従ってツリーのタイプにかかわらず(例えば、シングルツリー又はデュアルツリー)、クロミナンス(又はクロマ)成分についてのqPi値の計算を担う。
ここで、QpCbasicは、QPc_pred値に依存する基本クロマブロックQP値であり、以下で記載される種々の方法の1つで計算され得る。
留意されるべきは、計算qPiCb及びqPiCrの式7中の定数69は、量子化テーブル(例えば、表1)に従って、QP63を許容される最大のものと仮定して、選択されるので、この定数は、qPiとQpCとの間の最大差に加えられる最大QP値として計算される点である。一般的な場合に、この定数は、いくつかの値に対して予め定義されるか又は通知されてよい。
デュアルツリー(DT)コーディングアプローチは、ルーマ及びクロマ成分が異なるパーティションツリーを有し、夫々がそのパーティショニングツリー保有している、と仮定する。それは、1つのクロマブロック(すなわち、クロミナンス成分におけるブロック)が1つよりも多いルーマブロック(すなわち、ルミナンス成分におけるブロック)に対応し、あるいは、その逆もまた同じであることをもたらし得る。図8は、4:2:0クロマサブサンプリングについての例を示し、クロマブロック全体が複数の分割されたルーマブロックに対応する。図の数字は、ルーマ及びクロマ成分(又は平面)の間の同一位置の点(ピクセル)を表す。
図9は、ピクチャの現在のブロックに対して逆量子化を実行するためのプロシージャを表す例となるフローチャートである。このプロシージャは、復号器によって実行されてよい。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって複数のブロックに分割される。
ステップ902:受信されたビットストリームから1つ以上の既存の量子化パラメータQP値を取得し、このとき、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。
このステップでは、既存のQP値は、現在のブロック(例えば、逆量子化によって実行されるべきブロック)に関係がある。単なる例として、そのような既存のQP値は、次の、ルーマ成分における同一位置のブロックについてのQP値、クロマ成分における現在のブロックの1つ以上の隣接ブロックのQP値、及びルーマ成分における同一位置のブロックの1つ以上の隣接ブロックのQP値、のうちの少なくとも1つを有してよい。
ルーマ成分における同一位置のブロックは、クロマ成分における現在のブロックとマッピング関係を有しているブロックである。
ステップ904:1つ以上の既存のQP値に基づいてクロミナンス(又はクロマ)成分における現在のブロックについてのQP値を決定する。
クロマ成分におけるブロックについてのQP値(又はクロマブロックQP値、すなわち、QPc_pred、)を決定する方法の種々の組が存在する。要約すれば、第1方法セットは、既存の関連するQP値(例えば、予測と見られるべき)に基づいてクロマブロックQP値を決定することに焦点を当て、第2方法セットは、既存の関連するQP値(例えば、予測と見られるべき)と、受信されたビットストリームで通知されたクロミナンスデルタQP値(例えば、デルタと見られるべき)とに基づいてクロマブロックQP値を決定することであり、第3方法セットは、既存の関連するQP値(例えば、予測と見られるべき)と、受信されたビットストリームで通知されたクロミナンスQPオフセット値(例えば、調整オフセットと見られるべき)とに基づいてクロマブロックQP値を決定することである。
ステップ906:決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する。
このステップでは、クロミナンス成分における現在のブロックについてのQP値(又はクロマブロックQP値)を決定した後、逆量子化が、クロミナンス成分におけるそのブロックに対して実行される。
図10は、ピクチャの現在のブロックに対して逆量子化を実行するためのプロシージャを表す例となるフローチャートである。このプロシージャは、符号器によって実行されてよい。
ステップ1010:このステップでは、クロミナンス成分における現在のブロックの量子化は、決定されたQPを用いて実行される。QPは、例えば、ユーザ設定によって、及び/又はレート歪み最適化によって、などで、決定されてよい。
ステップ1020:1つ以上の既存の量子化パラメータQP値が取得される。この/これらの既存のQP値はまた、ビットストリームに含まれる。1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。
ステップ1030:クロミナンス成分における現在のブロックについてのQPパラメータが、1つ以上の既存のQP値及び前記決定されたQP値に基づいて決定される/示される。特に、クロミナンス成分における現在のブロックについてのQP(決定されたQP)の値を運ぶために、パラメータはビットストリームに含められ、このとき、パラメータは、1つ以上の既存のQP値を用いて決定される。処理は、決定されたQPから1つ以上の既存のQP値を減じることによって、又は他の方法では、例えば、更なるパラメータも含む式によって、実行されてよい。
ステップ1040:次いで、QPパラメータがビットストリームに含められる。ビットストリームへの包含は、整数コード若しくは算術コード又はあらゆる他の可変長コードなどのエントロピコーディングを更に有してよい。エントロピコードは、コンテキスト適応であってよい。しかし、これらは、単なる例であり、本開示は、固定長コーディングを含むあらゆる種類のコーディングと機能し得る。
実施形態に従って、装置は、各々の符号器及び復号器で使用され得る量子化及び逆量子化のために提供される。それらは、上記の符号化及び復号化方法に対応する特徴を備える。
特に、ピクチャの現在のブロックの逆量子化のための装置であって、ピクチャがルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分が複数のブロックに分割される、装置が提供される。装置は、図11において、装置1100として表されている。それは、次の機能ユニット(回路)を更に含む。
ビットストリームから1つ以上の既存の量子化パラメータQP値を取得するビットストリームパーサ(ビットストリームパージングユニット(又は回路)とも呼ばれる)1110。1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関係がある。そのクロミナンス成分は、クロミナンス成分のいずれか1つ以上であってよい。
1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するQP決定ユニット(又は回路)1120。
決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行する逆量子化器(逆量子化ユニット(又は回路)とも呼ばれる)1130。
ピクチャの現在のブロックの量子化のための、図12に示される装置1200も、提供される。ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される。装置は、
決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して量子化を実行する量子化器(量子化ユニット(又は回路)とも呼ばれる)1210と、
1つ以上の既存の量子化パラメータQP値を取得し、1つ以上の既存のQP値をビットストリームに含めるフェッチユニット(又は回路)1220であり、1つ以上の既存のQP値はクロミナンス成分における現在のブロックに関係がある、フェッチユニット(又は回路)1220と、
1つ以上の既存のQP値及び前記決定されたQP値に基づいてクロミナンス成分における現在のブロックについてのQPパラメータを決定するQP決定ユニット(又は回路)1230と、
QPパラメータをビットストリームに含めるビットストリーム生成ユニット(又は回路、ビットストリーム生成器とも呼ばれる)1240と
を有する。
以下は、クロマブロックQP値を決定する実施形態である。
I.1つ以上の関連する既存のQP値に基づくクロマブロックQP値の決定
第1方法セットでは、方法の3つのグループが提供される。
A.方法の第1グループ:この方法グループでは、クロマブロックQP値QPc_predは、QPc_pred_lumaと表される同一位置のルーマQP値に基づいて計算される。
(1)第1方法は、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマブロックQP値)が、ルミナンス成分における同一位置のブロックのQP値に基づいて決定されることである。クロマ平面(又は成分)での1つの点が選択され(マッピング点、例えば、点C5と表される)、QPc_pred_lumaは、ルーマ(又はルミナンス)平面における現在のマッピング点(例えば、点L5)と同一位置にあるブロックからのQP値であると決定される。例えば、図8の点C5がマッピング点として選択される場合に、QPc_pred_lumaは、ルーマコーディングブロック(例えば、点L5が位置するブロック)における対応するL5点からのルーマQP値に等しい。クロマ点のいずれもマッピング点として選択可能であることが理解されるべきであり、図8の上記の例を含むがこれに限られない。
より具体的に、式7は、次の方法で書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
(式7.1)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
更に、QpY値は、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて通常の方法で計算される。定数は64に変更された。
すなわち、例となる実施では、クロミナンス成分における現在のブロックのQPは、同一位置のブロックの(既存の)パラメータに基づいて決定される。同一位置のブロックは、現在のブロックと同一位置にあるルミナンス成分ブロックであってよい。一般に、ルミナンス(コーディング・ツリー)ブロックのパーティショニングは、(コーディング・ツリー)クロミナンスブロックのパーティショニングとは異なり得る点に留意されたい。よって、同じクロミナンスブロックと同じピクチャエリアをカバーするより多くの(又はより少ない又は同数の)ルミナンスブロックが存在し得る。よって、本例では、同一位置のブロックは、現在のクロミナンスブロックの特定の、事前に定義されたサンプルを含むエリアをカバーするルミナンスブロックとして決定される。例えば、特定のサンプルは、現在のクロミナンスブロックの右下4分の1にある左上サンプルであってよい。この例となるサンプル位置は、中心又は現在のブロックの近くに(又はそこに)位置する。しかし、本開示は、この特定のサンプル位置に限定されない。左上などの、如何なる他の位置も、取られてよい。
付録Aは、量子化パラメータの導出プロセスの詳細な例を与える。
(2)第2方法は、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマブロックQP値)が、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて決定されることである。この方法では、QP
c_pred_lumaは、同じ重みを有するいくつかの特定の点からのルーマQP値の同一位置の値に基づいて計算される。例えば、QP
c_pred_lumaは、次の式:
によって角クロマ点C
1、C
2、C
3、C
4と同一位置にある点からのルーマQP値に基づいて計算されてよい。ここで、LumaQp1,・・・,LumaQP4は、図8でL
1,L
2,L
3,L
4位置にあるルーマCUのQP値である。
(3)第3方法は、QPc_pred_lumaが、次の方法のうちの1つにおいてクロマコーディングブロック(CU)値及び同一位置のルーマCUの共通集合に基づいて計算されることである。
オプション1:クロマCUが1つのルーマCUによって完全にカバーされる場合に、QPc_pred_lumaは、ルーマCUから取られる。
オプション2:クロマCUが1つよりも多いルーマCUによってカバーされる場合、かつ、全てのそのようなルーマCUが同じQP値を有する場合に、QPc_pred_lumaは、ルーマCUから取られる。
オプション3:クロマCUが1つよりも多いルーマCUによってカバーされる場合、かつ、全てのそのようなルーマCUが同じQP値を有するわけではない場合に、QPc_pred_lumaは、ルーマCUについてのQP値の重み付き関数に基づいてルーマCUから取られ、このとき、各ルーマCUデルタQPの重みは、現在のクロマCUとルーマCUとの間の空間対応によって決定される。
B.方法の第2グループ:この方法グループでは、クロマCUのQP予測は、隣接するクロマCUのQP値(すなわち、クロミナンス成分におけるブロックの1つ以上の隣接ブロックのQP値)に基づいて計算され、QP
c_pred_chromaと表される。すなわち、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCU QP値)は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和に基づいて決定される。このグループ内の方法は、復号器側で既に利用可能である如何なる隣接クロマCUでも動作することができる。その場合に、QP
c_pred_chromaは、次の式9:
によって計算され得る。ここで、Nは、数Nを有する隣接CUの組であり、QP
nは、その組からのn番目の隣接CUに対応するQP値である。
C.方法の第3グループ:この方法グループでは、クロマCUのQP値(又は予測)は、上記の方法のいずれかで計算され得るQP
c_pred_luma及びQP
c_pred_chromaの両方に基づいて計算され、クロマCU QP予測は、QP
c_pred_mixedと表される。この方法では、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCUのQP値)は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて決定される。代替的に、クロミナンス成分における現在のブロックについてのQP値(すなわち、クロマCUのQP値)は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて決定される。例えば、QP
c_pred_mixedは、QP
c_pred_luma及びQP
c_pred_chromaの加重和として計算されてよい。例において、それは、次の式10:
によって計算され得る。
II.クロマブロックQP値を決定するための第2方法セット
この方法セットでは、クロミナンス成分における現在のブロックについてのQP値(又はクロマブロックQP値)は、1つ以上の既存のQP値と、受信されたビットストリームで通知されたクロミナンスデルタQP値とに基づいて決定され、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関連している。
このセクションは、デュアルツリーが可能である場合にQpCbasic微分(又はデルタ)を決定するための種々のアプローチについて記載する。
(1)第1方法:この方法では、QpC
basic値は、第1方法セットにおける上記の対応するアプローチのいずれかで計算されるQP
c_pred_luma、QP
c_pred_chroma、又はQP
c_pred_mixed値のうちの1つから直接取られる。この方法では、デュアルツリーが使用される場合に、ルーマCUは、デルタルーマQP表現のためのシンタックス要素を有し、クロマCUは、デルタクロマQP表現のための如何なるシンタックス要素も有さない。
表2及び表3は、どのように通知メカニズムがこの方法で実装され得るかの2つの例を与える。
この方法では、QpCbasicはQPc_predに等しく、次いで、これは、QPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値のうちの1つに等しくなり得る。その場合に、Cb及びCr成分についてのqPi値は、次の式11:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式11)
によって計算され得る。ここで、QpCbasic∈{QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixed}であり、QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixedの夫々は、上記の方法の1つによって導出される。より具体的には、現在の方法をQpCbasic導出の上記の方法1と組み合わせると、式11は、次の通りに書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
(式11.1)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
そして、QpYは、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
(式11.1a)
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて従来の方法で計算される。
式11及び11.1中の定数69は、6ずつ増やされた最大可能QP値を表し、式11.1a中の定数64は、1ずつ増やされた最大可能QP値を表す。付録Aは、量子化パラメータの導出プロセスの詳細な例を与える。
この方法では、delta_qpシグナリング機能は、例えば、次の方法で、実装され得る。
表4中、シンタックス要素cu_qp_delta_enabled_flagは、デルタQPが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグ
IsCuQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのCUブロックについては、delta_qpは、最も近い通知された1つから受け継がれる。IsCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_qp_delta_enabled_flag及びdiff_cu_qp_delta_depthは、ピクチャパラメータセット(PPS)において伝えられ得る。
より具体的に、1に等しいcu_qp_delta_enabled_flagは、diff_cu_qp_delta_depthシンタックス要素がPPSに存在することと、cu_qp_delta_abs及びcu_qp_delta_sign_flagが変換ユニットシンタックスに存在する可能性があることとを特定する。0に等しいcu_qp_delta_enabled_flagは、diff_cu_qp_delta_depthシンタックス要素がPPSに存在しないことと、cu_qp_delta_abs及びcu_qp_delta_sign_flagが変換ユニットシンタックスに存在しないこととを特定する。
cu_qp_delta_absは、現在のコーディング・ユニットのルーマ量子化パラメータとその予測との間の差CuQpDeltaValの絶対値を特定する。
cu_qp_delta_sign_flagは、次の通りにCuQpDeltaValの符号を特定する:
−cu_qp_delta_sign_flagが0に等しい場合には、対応するCuQpDeltaValは正値を有する。
−そうでない(cu_qp_delta_sign_flagが1に等しい)場合には、対応するCuQpDeltaValは負値を有する。
cu_qp_delta_sign_flagが存在しない場合に、それは、0に等しいと推測される。
cu_qp_delta_absが存在する場合に、変数IsCuQpDeltaCoded及びCuQpDeltaValは、次の通りに導出される:
IsCuQpDeltaCoded=1
CuQpDeltaVal=(−1)cu_qp_delta_sign_flag*cu_qp_delta_abs
CuQpDeltaValの値は、−(32+QpBdOffsetY/2)以上+(31+QpBdOffsetY/2)以下の範囲にあるべきである。
留意されるべきは、この方法は、あらゆるクロマCUデプスについて、あるいは、何らかの事前に定義された値よりも小さいデプスについてのみ、のどちらか一方で、Cb及びCr成分のqPiパラメータ導出のために使用され得、後者の場合には、より高い又は等しいデプスに位置するCUブロックは、最も近い処理された1つから値を受け継ぐべきである点である。
代替的に、第1方法は、クロマ成分のデルタQPについての別個のシンタックスも通知することができる。
表6及び表7は、デュアルツリーの場合のみのクロマCUについて、あるいは、デュアルツリーの場合のクロマCU及び別個のツリーの場合のシングルCUの両方の場合について、のどちらか一方で、クロマ成分のための別個のデルタQPシンタックスシグナリングの2つの例を与える。表6及び表7からのプロシージャdelta_qp_y()及びdelta_qp_c()は、表4に示されるdelta_qp()プロシージャと同様の方法で実装される。留意されるべきは、デュアルツリーの場合のクロマCUについての及び/又はシングルCUにおけるクロマ平面についてのデルタQPシンタックスの別個のシグナリングの場合に、表4中のPPCレベル制御フラグcu_qp_delta_enabled_flagは、ルーマ及びクロマ成分の両方について一度(一緒に)、又は別々に2つの制御フラグcu_qp_delta_enabled_flag_luma及びcu_qp_delta_enabled_flag_chromaに実装され得る。
この方法がQpCbasic導出の上記の方法1と組み合わされる特定の場合を仮定すると、デュアルツリーの場合のクロマCU又は(適用される場合に)デュアルツリーの場合のクロマCU及び別個のツリーの場合のシングルCUの両方のどちらか一方のための式11は、次の通りに書き換えられ得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset+delta_qp_c)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset+delta_qp_c)
(式11.2)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
そして、(xCb,yCb)は、現在のピクチャの左上ルーマサンプルに対して、現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する。
そして、QpY値は、次の式:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
(式11.3)
に従って計算され得る。
ここで、qPY_PRED、CuQpDeltaVal、QpBdOffsetYは、同一位置のルーマCUについて従来の方法で計算される。
式11.2中の定数69は、6ずつ増やされた最大可能QP値を表し、式11.3中の定数64は、1ずつ増やされた最大可能QP値を表す。
代替的に、delta_qp_c値は、Qp’Cb及びQp’Crについての最終的な式に加えられ得る:
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c
この場合に、式11.1は、qPiCb及びqPiCr値の計算のために使用され、それから、QpCb及びQpCr値の計算は、クロマQPマッピング関数を用いてqPiCb及びqPiCrに基づいて従来の方法で実行される。従来のクロマQPマッピング関数は、表17に示される。
(2)第2方法:この方法では、QpC
basic値は、上記の対応する予測アプローチのいずれかで計算されるQP
c_pred_luma、QP
c_pred_chroma、又はQP
c_pred_mixed値の1つと、クロマCUにおいて通知され得るCuQpChromaDeltaVal値との和として導出される。この方法では、デュアルツリーの場合に、ルーマCUは、デルタルーマCU表示のためのシンタックス要素を有し、クロマCUは、デルタクロマCUの異なる表示のためのシンタックス要素を有する。
この方法では、QpCbasicは、次の式12によって計算され得る:
QpCbasic=QPc_pred+CuQpChromaDeltaVal
(式12)
ここで、QPc_pred∈{QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixed}であり、QPc_pred_luma,QPc_pred_chroma,QPc_pred_mixedの夫々は、上記の方法の1つによって導出され、CuQpChromaDeltaValは、次の式13によって導出され得るクロマブロックのデルタQP値である:
CuQpChromaDeltaVal
=cu_chroma_qp_delta_abs*(1−2*cu_chroma_qp_delta_sign_flag)
(式13)
その場合に、Cb及びCr成分のqPi値は、次の式14によって計算され得る:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasis+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset)
(式14)
この方法では、delta_qp_luma及びdelta_qp_chromaシグナリング機能は、例えば、次の方法で、実装され得る。
表9中、シンタックス要素cu_luma_qp_delta_enabled_flagは、デルタルーマQPが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグ
IsLumaCuQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのルーマCUブロックについては、delta_luma_qp()要素が、最も近い通知された1つから受け継がれる。IsLumaCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_luma_qp_delta_enabled_flag及びdiff_cu_luma_qp_delta_depthは、PPSにおいて伝えられ得る。
表10中、シンタックス要素cu_chroma_qp_delta_enabled_flagは、デルタクロマCUが現在のスライス/ピクチャ/シーケンスについて許されているかどうかを特定した高位フラグを表し、フラグ
IsChromaCuQpDeltaCodedは、デルタQPが現在のデプスで通知されるかどうかを特定し、より高い又は等しいデプスでのクロマCUブロックについては、delta_chroma_qp()要素が、最も近い通知された1つから受け継がれる。IsChromaCuQpDeltaCodedフラグ導出のために使用されるシンタックス要素cu_chroma_qp_delta_enabled_flag及びdiff_cu_chroma_qp_delta_depthは、PPSにおいて伝えられ得る。
(3)第3方法:この方法では、QpCbasic値は、上記の対応する予測アプローチのいずれかで計算されるQPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値の1つと、いくつかの事前に定義されたデプスでのクロマCUデプスに関してのみクロマCUにおいて通知され得るCuQpChromaDeltaVal値との和として導出される。事前に定義されたものよりも高いデプスを有する全てのクロマCUについては、QpCbasic値は、最も近い処理された1つから受け継がれる。この方法では、デュアルツリーの場合に、ルーマCUは、デルタルーマQP表示のためのシンタックス要素を有し、クロマCUは、事前に定義されたもの以下のデプスを有するクロマCUについてのみのデルタクロマQP表示のためのシンタックス要素を有する。
この方法では、デルタQP値は、表5及び表6に従って通知され得、delta_qp_chroma()関数は、次の方法で実装され得る:
表12中のIsChromaCuQpDeltaCodedフラグは、事前に定義されたもの以下のデプスを有するクロマCUについてのみ0に等しい。
(4)第4方法:この方法では、特別なシンタックス要素が、どのタイプの予測計算が使用されるかを特定することができる。高位要素cu_qp_chroma_der_typeは、コーデックパラメータセットの1つ、例えば、PPCにおいて通知され、いずれかの上記の予測子計算アプローチのうちのどのタイプが使用されるかを特定することができる。
この方法では、cu_qp_chroma_der_typeは、予測タイプのいずれかのグループを特定することができ、その場合に、いずれかの特定の、事前に定義された上記の予測が、グループ内で使用され得る。
留意されるべきは、cu_qp_chroma_der_typeは、組Pにおけるインデックスを表し、その場合に、Cb及びCr成分のQpCbasic値は、第1から第3までの上記の方法のうちの1つでQPc_predに基づいて導出される。
(5)第5方法:この方法では、cu_qp_chroma_der_typeは、全てのグループの間で1つの特定の予測タイプを特定することができる。例えば、可能な予測の組P={ChromaQpPredictionLuma1,・・・,ChromaQpPredictionChroma1,ChromaQpPredictionMixed1,・・・,ChromaQpPredictionMixedN}を仮定する。
留意されるべきは、cu_qp_chroma_der_typeが、組Pにおけるインデックスを表し、その場合に、Cb及びCr成分のQpCbasic値は、第1から第3までの上記の方法のうちの1つでQPc_predに基づいて導出される点であり、このとき、QPc_pred=P[cu_qp_chroma_qp_der_type]である。
III.クロマブロックQP値を決定するための第3方法セット
クロミナンス成分における現在のブロックについてのQP値は、1つ以上の既存のQP値と、受信されたビットストリームで通知されたクロミナンスQPオフセット値(又はデルタQPオフセット)とに基づいて決定され、1つ以上の既存のQP値は、クロミナンス成分における現在のブロックに関連している。
このセクションは、別個のツリー(ST)が可能である場合におけるクロマQPオフセットメカニズム使用を開示する。
第1方法では、Cb及びCrのQP値Qp’Cb及びQp’Crは、qPiCb及びqPiCrに基づいて計算され、このとき、qPiCb及びqPiCrは、次の式15によって計算される:
qPiCb=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)
qPiCr=Clip3(−QpBdOffsetC,69,QpCbasic+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)
(式15)
ここで、QpCbasic値は、上記の対応する予測アプローチのいずれかで計算されるQPc_pred_luma、QPc_pred_chroma、又はQPc_pred_mixed値の1つから直接取られ、CuQpOffsetCb/CuQpOffsetCr変数は、次の式16によってcb_qp_offset_list及びcu_chroma_qp_offset_idxシンタックス要素に基づいて導出される:
CuQpOffsetCb=cb_qp_offset_list[cu_chroma_qp_offset_idx]
CuQpOffsetCr=cr_qp_offset_list[cu_chroma_qp_offset_idx]
(式16)
シンタックス要素cb_qp_offset_list及びcr_qp_offset_listは、次の方法でパラメータセットにおいて、例えば、PPSにおいて、通知され得るオフセットテーブルである。
表14中、chroma_qp_offset_list_enabled_flagは、クロマQPリストメカニズムが使用されるか否かを特定し、chroma_qp_offset_list_len_minus1は、Cb及びCr成分のためのオフセットリストの長さを特定し、cb_qp_offset_list及びcr_qp_offset_listは、Cb及びCr成分のための可能なオフセットを特定する。
cu_chroma_qp_offset_idxは、CuQpOffsetCb及びCuQpOffsetCrの計算のために使用され得るcb_qp_offset_list及びcr_qp_offset_list内の特定の要素を特定する。
表15は、cu_chroma_qp_offset_idxシグナリングの例を示す。
別個のツリーが可能である場合のデルタQPオフセットのシンタックスは、次の表
16に記載され得る。
本発明の他の実施形態に従って、量子化パラメータの導出プロセスのための方法は、次の通りに説明される。
付録A.量子化パラメータの導出プロセス
このプロセスでは、ルーマ量子化パラメータQp’Y及びクロマ量子化パラメータQP’Cb及びQp’Crが導出される。
このプロセスへの入力は、ツリータイプがSINGLE_TREE又はDUAL_TREE_LUMAに等しい場合には、現在のピクチャの左上ルーマサンプルに対して現在のルーマコーディングブロックの左上サンプルを特定するルーマ位置(xCb,yCb)、及びツリータイプがDUAL_TREE_CHROMAに等しい場合には、現在のピクチャの左上ルーマサンプルに対して現在のクロマコーディングブロックと同一位置にあるルーマコーディングブロックの左上サンプルを特定する(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を共有するコーディングツリーブロック内の最小エリアのルーマサイズを決定する。
予測されたルーマ量子化パラメータqPY_PREDは、次の順序付けされたステップによって導出される。
1.変数qPY_PREVが、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、qPY_PREVはSliceQpYに等しくセットされる:
− 現在の量子化グループは、スライス内の最初の量子化グループである。
− 現在の量子化グループは、タイル内の最初の量子化グループである。
− 現在の量子化グループは、コーディングツリーブロック行内の最初の量子化グループであり、entropy_coding_sync_enabled_flagは、1に等しい。
− そうでない場合には、qPY_PREVは、復号化順における前の量子化グループ内の最後のコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
2.XXX節で特定されるzスキャン順序におけるブロックの可用性導出プロセスは、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)と、(xQg−1,yQg)に等しくセットされた隣接位置(xNbY,yNbY)とを入力として用いて呼び出され、出力は、利用可能なAに割り当てられる。変数QpY_Aは、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、QpY_AはqPY_PREVに等しくセットされる:
− 利用可能なAがFALSEに等しい。
− ルーマ位置(xQg−1,yQg)をカバーするルーマコーディングブロックを含むコーディングツリーブロックのコーディングツリーブロックアドレスctbAddrAが、CtbAddrInTsに等しくなく、このとき、ctbAddrAは次の通りに導出される:
xTmp=(xQg−1)>>Log2MinTrafoSize
yTmp=yQg>>Log2MinTrafoSize
minTbAddrA=MinTbAddrZs[xTmp][yTmp]
ctbAddrA=minTbAddrA
>>(2*(CtbLog2SizeY−Log2MinTrafoSize))
− そうでない場合には、QpY_Aは、(xQg−1,yQg)をカバーするルーマコーディングブロックを含むコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
3.XXX節で特定されるzスキャン順序におけるブロックの可用性導出プロセスは、(xCb,yCb)に等しくセットされた位置(xCurr,yCurr)と、(xQg,yQg−1)に等しくセットされた隣接位置(xNbY,yNbY)とを入力として用いて呼び出され、出力は、利用可能なBに割り当てられる。変数QpY_Bは、次の通りに導出される:
− 次の条件の1つ以上が真である場合に、QpY_BはqPY_PREVに等しくセットされる:
− 利用可能なBがFALSEに等しい。
− ルーマ位置(xQg,yQg−1)をカバーするルーマコーディングブロックを含むコーディングツリーブロックのコーディングツリーブロックアドレスctbAddrBが、CtbAddrInTsに等しくなく、このとき、ctbAddrBは次の通りに導出される:
xTmp=xQg>>Log2MinTrafoSize
yTmp=(yQg−1)>>Log2MinTrafoSize
minTbAddrB=MinTbAddrZs[xTmp][yTmp]
ctbAddrB=minTbAddrB
>>(2*(CtbLog2SizeY−Log2MinTrafoSize))
− そうでない場合には、QpY_Bは、(xQg,yQg−1)をカバーするルーマコーディングブロックを含むコーディング・ユニットのルーマ量子化パラメータQpYに等しくセットされる。
4.予測されたルーマ量子化パラメータqPY_PREDは、次の通りに導出される:
qPY_PRED=(QpY_A+QpY_B+1)>>1
変数QpYは、次の通りに導出される:
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))−QpBdOffsetY
ルーマ量子化パラメータQp’Yは、次の通りに導出される:
Qp’Y=QpY+QpBdOffsetY
変数QpCb及びQpCrは、夫々qPiCb及びqPiCrに等しいインデックスqPiに基づいて、表17で指示されるQpCの値に等しくセットされ、qPiCb及びqPiCrは、次の通りに導出される:
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
ここで、QpY_basicは、次の通りにパーティショニングツリータイプに応じて決定される:
− ツリータイプがSINGLE_TREEに等しい場合には、QpY_basicはQpYに等しくセットされる。
− そうでない場合には、QpY_basicは、座標(xCb+cbWidth/2,yCb+cbHeight/2)を有するルーマサンプルを含む同一位置のルーマCUのQpY値に等しくセットされる。
Cb及びCr成分のクロマ量子化パラメータQp’
Cb及びQp’
Crは、次の通りに導出される:
Qp’
Cb=QpCb+QpBdOffsetC
Qp’
Cr=QpCr+QpBdOffsetC
本発明の第1の態様の例に従って、ここで、方法は、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
単なる例として、ルミナンス成分における同一位置のブロックの4つの隣接ブロックが存在するので、クロミナンス成分における現在のブロックについてのQP値は、ルミナンス成分における同一位置のブロックのそれら4つの隣接ブロックについてのQP値の平均和である。同一位置のブロックの隣接ブロックは存在しないことがあることが、時としてここで述べられる必要がある。この状況下では、他の既存のQP値を用いてクロミナンス成分におけるブロックのQP値を決定することが望ましい。
本発明の第1の態様の例に従って、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
本発明の第1の態様の例に従って、方法は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
本発明の第1の態様の例に従って、ここで、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定することを更に有する。
以下は、上記の実施形態で示されている符号化方法及び復号化方法の適用並びにそれらを使用するシステムの説明である。
図13は、コンテンツ分配サービスを実現するコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉デバイス3102、端末デバイス3106を含み、任意に、ディスプレイ3126を含む。捕捉デバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上記の通信チャネル13を含んでよい。通信リンク3104は、WIFI、Ethernet、ケーブル、無線(3G/4G/5G)、USB、又はあらゆる種類のそれらの組み合わせ、などを含むがこれらに限られない。
捕捉デバイス3102は、データを生成し、そして、上記の実施形態で示されている符号化方法によってそのデータを符号化してよい。あるいは、捕捉デバイス3102は、ストリーミングサーバ(図示せず)へデータを分配してもよく、サーバが、データを符号化し、符号化されたデータを端末デバイス3106へ送る。捕捉デバイス3102は、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載デバイス、又はそれらのいずれかの組み合わせ、などを含むがこれらに限られない。例えば、捕捉デバイス3102は、上述された発信元デバイス12を含んでよい。データがビデオを含む場合に、捕捉デバイス3102に含まれているビデオ符号器20が、実際に、ビデオ符号化処理を実行し得る。データがオーディオ(すなわち、音声)を含む場合に、捕捉デバイス3102に含まれているオーディオ符号器が、実際に、オーディオ符号化処理を実行し得る。いくつかの実際的なシナリオについて、捕捉デバイス3102は、符号化されたビデオ及びオーディオデータを、それらを一緒に多重化することによって分配する。他の実際的なシナリオについて、例えば、ビデオ会議システムでは、符号化されたオーディオデータ及び符号化されたビデオデータは、多重化されない。捕捉デバイス3102は、符号化されたオーディオデータ及び符号化されたビデオデータを別々に端末デバイス3106へ分配する。
コンテンツ供給システム3100において、端末デバイス3106は、符号化されたデータを受信及び再生する。端末デバイス3106は、上記の符号化されたデータを復号することができるスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、セット・トップ・ボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナル・デジタル・アシスタント(PDA)3122、車載デバイス3124、又はそれらのいずれかの組み合わせ、などのような、データ受信及び回復能力を備えたデバイスであってよい。例えば、端末デバイス3106は、上述されたあて先デバイス14を含んでよい。符号化されたデータがビデオを含む場合に、端末デバイスに含まれているビデオ復号器30は、ビデオ復号化を実行することを優先される。符号化されたデータがオーディオを含む場合に、端末デバイスに含まれているオーディオ復号器は、オーディオ復号化処理を実行することを優先される。
そのディスプレイを備えた端末、例えば、スマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワーク・ビデオ・レコーダ(NVR)/デジタル・ビデオ・レコーダ(DVR)3112、TV3114、パーソナル・デジタル・アシスタント(PDA)3122、又は車載デバイス3124については、端末デバイスは、復号されたデータをそのディスプレイへ供給することができる。ディスプレイを備えていない端末、例えば、STB3116、ビデオ会議システム3118、又はビデオ監視システム3120については、外付けディスプレイ3126が、復号されたデータを受信及び表示するよう、その中で接触される。
このシステム内の各デバイスが符号化又は復号化を実行する場合に、上記の実施形態で示されているピクチャ符号化デバイス又はピクチャ復号化デバイスが使用され得る。
図14は、端末デバイス3106の例の構造を示す図である。端末デバイス3106が捕捉デバイス3102からストリームを受け取った後、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを解析する。プロトコルは、リアル・タイム・ストリーミング・プロトコル(RTSP)、ハイパー・テキスト・トランスファー・プロトコル(HTTP)、HTTPライブ・ストリーミング・プロトコル(HLS)、MPEG−DASH、リアル・タイム・トランスポート・プロトコル(RTP)、リアル・タイム・メッセージング・プロトコル(RTMP)、又はあらゆる種類のそれらの組み合わせ、などを含むがこれらに限られない。
プロトコル処理ユニット3202がストリームを処理した後、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204へ出力される。逆多重化ユニット3204は、多重化されたデータを、符号化されたオーディオデータと、符号化されたビデオデータとに分離することができる。上述されたように、いくつかの実際的なシナリオについては、例えば、ビデオ会議システムでは、符号化されたオーディオデータ及び符号化されたビデオデータは多重化されていない。この状況で、符号化されたデータは、逆多重化ユニット3204を通らずにビデオ復号器3206及びオーディオ復号器3208へ送られる。
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオES、及び任意に、サブタイトルが生成される。上記の実施形態で説明されたようなビデオ復号器30を含むビデオ復号器3206は、上記の実施形態で示されたような復号化方法によってビデオESを復号してビデオフレームを生成し、このデータを同期化ユニット3212へ供給する。オーディオ復号器3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期化ユニット3212へ供給する。あるいは、ビデオフレームは、それを同期化ユニット3212へ供給する前に、バッファ(図14に図示せず)に格納されてもよい。同様に、オーディオフレームは、それを同期化ユニット3212へ供給する前に、バッファ(図14に図示せず)に格納されてもよい。
同期化ユニット3212は、ビデオフレームとオーディオフレームとを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214へ供給する。例えば、同期化ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及び視覚データの提示に関する時間スタンプと、データストリーム自体の配信に関する時間スタンプとを用いて、シンタックスにおいてコーディングしてよい。
サブタイトルがストリームに含まれる場合に、サブタイトル復号器3210はサブタイトルを復号し、それをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216へ供給する。
本発明は、上記のシステムに限定されず、上記の実施形態におけるピクチャ符号化デバイス又はピクチャ復号化デバイスのどちらも他のシステム、例えば、カーシステムに組み込まれ得る。
第1の例では、ピクチャの現在のブロックの逆量子化のための方法であって、方法は、復号器によって実行され、ピクチャは、ルミナンス成分及びクロミナンス成分を有し、ルミナンス成分及び/又はクロミナンス成分は、複数のブロックに分割される、方法において、受信されたビットストリームから1つ以上の既存の量子化パラメータQP値を取得するステップであり、1つ以上の既存のQP値がクロミナンス成分における現在のブロックに関係がある、ステップと、1つ以上の既存のQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップと、決定されたQP値を使用することによってクロミナンス成分における現在のブロックに対して逆量子化を実行するステップとを有する方法が提供される。
例えば、1つ以上の既存のQP値は、次の、ルミナンス成分における同一位置のブロックのQP値、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値、及びクロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値、のうちの少なくとも1つを有する。
例となる実施では、方法は、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップは、現在のクロミナンスブロックの右下4分の1内の左上サンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(QpY_basic)を取り出すステップと、次の式
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset)、及び/又は
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset)
又は前記次の式から導出された新しい式を使用することによって、現在のクロミナンスブロックについてのqPiCb及びqPiCrパラメータを決定するステップと、qPiCb及びqPiCrパラメータ又は値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
例となる実施では、クロミナンス成分における現在のブロックについてのQP値は、次の式
Qp’Cb=QpCb+QpBdOffsetC+delta_qp_c、及び/又は
Qp’Cr=QpCr+QpBdOffsetC+delta_qp_c、
又は前記次の式から導出された新しい式に従って決定され、このとき、QpCb及びQpCrは、クロマQPマッピング関数を適用することによってqPiCb及びqPiCrパラメータから取得される。
例えば、ルミナンス成分における同一位置のブロックのQP値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップは、現在のクロミナンスブロックの右下4分の1内の左上サンプルと同一位置にあるルミナンスブロックを決定するステップと、決定されたルミナンスブロックのQP値(QpY_basic)を取り出すステップと、次の式
qPiCb=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cb_qp_offset+slice_cb_qp_offset+delta_qp_c)、及び/又は
qPiCr=Clip3(−QpBdOffsetC,69,QpY_basic+pps_cr_qp_offset+slice_cr_qp_offset+delta_qp_c)、
あるいは前記次の式から導出された新しい式を使用することによって、現在のクロミナンスブロックについてのqPiCb及びqPiCrパラメータを決定するステップと、qPiCb及びqPiCrパラメータ又は値に基づいてクロミナンス成分における現在のブロックについてのQP値を決定するステップとを有する。
いくつかの例となる実施では、方法は、シングルCUに適用され、ルミナンス成分における同一位置のブロックは、現在のブロックに等しい。
例えば、方法は、1つのPPS信号通知制御フラグ(例えば、cu_qp_delta_enabled_flag)に基づいてルーマ及びクロマ平面について一緒に適用され、制御フラグ(例えば、cu_qp_delta_enabled_flag)が真に等しい場合には、方法は、ルーマ及びクロマQP導出の両方のために適用され、あるいは、制御フラグ(例えば、cu_qp_delta_enabled_flag)が偽に等しい場合には、方法は、ルーマ及びクロマQP導出の両方のために適用されない。
いくつかの例となる実施では、方法は、2つのPPSベース制御フラグ(例えば、cu_qp_delta_enabled_flag_luma及びcu_qp_delta_enabled_flag_chroma)に基づいてルーマ及びクロマ平面について別々に適用され、第1制御フラグ(例えば、cu_qp_delta_enabled_flag_luma)が真に等しい場合には、方法は、ルーマQP導出のために適用され、あるいは、第1制御フラグ(例えば、cu_qp_delta_enabled_flag_luma)が偽に等しい場合には、方法は、ルーマQP導出のために適用されず、かつ/あるいは、第2制御フラグ(例えば、cu_qp_delta_enabled_flag_chroma)が真に等しい場合には、方法は、クロマQP導出のために適用され、あるいは、第2制御フラグ(例えば、cu_qp_delta_enabled_flag_chroma)が偽に等しい場合には、方法は、クロマQP導出のために適用されない。
例えば、方法は、ルミナンス成分における同一位置のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、クロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値の加重和に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、ルミナンス成分における同一位置のブロックのQP値と、クロミナンス成分における現在のブロックの1つ以上の隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
代替的に、又は追加的に、方法は、クロミナンス成分における現在のブロックの隣接ブロックの既存のQP値の加重和と、ルミナンス成分における同一位置のブロックの隣接ブロックの既存のQP値の加重和との両方に基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
いくつかの例となる実施では、方法は、1つ以上の既存のQP値と、次の、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値、又は受信されたビットストリームにおいて伝えられたクロミナンスQPオフセット値、のうちの少なくとも1つとに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップを更に有する。
いくつかの例となる実施では、方法は、現在のブロックのパーティションデプス値を取得するステップと、パーティションデプス値がしきい値を下回る場合に、1つ以上の既存のQP値と、受信されたビットストリームにおいて伝えられたクロミナンスデルタQP値とに基づいて、クロミナンス成分における現在のブロックについてのQP値を決定するステップとを更に有する。
例えば、しきい値は、事前に定義された数、又はパラメータセットにおいて伝えられた数に基づいて決定される。
例えば、ルミナンス成分及びクロミナンス成分は、単一のパーティションツリーによって複数のブロックに分割されるか、あるいは、ルミナンス成分及びクロミナンス成分は、別個のパーティションツリーによって独立して分割される。
いくつかの例となる実施では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの例となる実施形態では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの例となる実施では、デルタQPシンタックス要素(例えば、クロミナンスデルタQP値を表すデルタQPシンタックス要素、すなわち、delta_qp_c)は、次の表に従って、ビットストリームにおいて伝えられる:
いくつかの実施形態では、前述の方法のいずれかを実行する処理回路を有する復号化装置が提供される。
いくつかの実施形態では、コンピュータプログラムがコンピューティングデバイスで実行される場合に前述の方法のいずれかに従う方法を実行するためのプログラムコードを有するコンピュータプログラム製品が提供される。
例となる実施では、ピクチャの現在のブロックの境界パーティションのための復号化装置であって、1つ以上のプロセッサと、プロセッサへ結合され、プロセッサによる実行のためのプログラミングを記憶している非一時的なコンピュータ可読記憶媒体とを有し、プログラミングが、プロセッサによって実行される場合に、前述の方法のいずれかを実行するよう復号化装置を構成する、復号化装置が提供される。
実施形態において、コンピュータに前述の方法のいずれかに従う方法を実行させるプログラムを記録しているコンピュータ可読記憶媒体が提供される。
1つ以上の例では、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実装されてよい。ソフトウェアで実装される場合に、機能は、コンピュータ可読媒体上で1つ以上の命令又はコードとして記憶又は伝送され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形な媒体に対応するコンピュータ可読記憶媒体、又は例えば、通信プロトコルに従って、1つの場所から他へのコンピュータプログラムの転送を助ける何らかの媒体を含む通信媒体を含んでよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波などの通信媒体、に対応してよい。データ記憶媒体は、本開示で記載されている技術の実装のための命令、コード及び/又はデータ構造を読み出すよう1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る如何なる利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形で所望のプログラムコードを記憶するために使用可能であって、コンピュータによってアクセスされ得るあらゆる他の媒体を有することができる。また、如何なる接続も、コンピュータ可読媒体と適切に称される。例えば、命令が同軸ケーブル、光ファイバケーブル、ツイステッドペア、デジタル加入者回線(DSL)、又は赤外線、電波、及びマイクロ波などの無線技術を用いてウェブサイト、サーバ、又は他の遠隔ソースから伝送される場合に、同軸ケーブル、光ファイバケーブル、ツイステッドペア、DSL、又は赤外線、電波、及びマイクロ波などの無線技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに、非一時的な、有形な記憶媒体を対象とする、ことが理解されるべきである。ここで使用されるdisk及びdiscは、コンパクト・ディスク(CD)、レーザー・ディスク、光ディスク、デジタル・バーサタイル・ディスク(DVD)、フロッピー・ディスク、及びブルーレイ・ディスクを含み、diskは、通常は、磁気的にデータを再生し、一方、discは、レーザーで光学的にデータを再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ロジック・アレイ(FPGA)、又は他の同等の集積若しくはディスクリート論理回路などの1つ以上のプロセッサによって実行されてよい。従って、ここで使用される「プロセッサ」という用語は、上記の構造のいずれか、又はここで記載されている技術の実装に適したあらゆる他の構造を指し得る。更には、いくつかの態様において、ここで記載されている機能性は、符号化及び復号化のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に設けられても、あるいは、複合型コーデックに組み込まれてもよい。また、技術は、1つ以上の回路又は論理要素において完全に実装されてもよい。
本開示の技術は、無線ハンドセット、集積回路(IC)又はICの組(例えば、チップセット)を含む多種多様なデバイス又は装置において実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示されている技術を実行するよう構成されたデバイスの機能的態様を強調するよう本開示で説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上述されたように、様々なユニットがコーデックハードウェアにまとめられても、あるいは、適切なソフトウェア及び/又はファームウェアとともに、上述されたような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてもよい。
論理演算子
以下の論理演算子は、次の通りに定義される:
x&&y x及びyのブール論理“AND”
x||y x及びyのブール論理“OR”
! ブール論理“NOT”
x?y:z xが真であるか又は0に等しくない場合には、yの値として評価し、そうでない場合には、zの値として評価する。
関係演算子
以下の関係演算子は、次の通りに定義される:
> 〜よりも大きい
>= 〜以上
< 〜よりも小さい
<= 〜以下
== 〜に等しい
!= 〜に等しくない
関係演算子が、値“NA”(not applicable)を割り当てられているシンタックス要素又は変数に適用される場合に、値“NA”は、そのシンタックス要素又は変数のディスティンクト値として扱われる。値“NA”は、如何なる他の値にも等しくないと見なされる。
ビット演算子
以下のビット演算子は、次の通りに定義される:
& ビット単位“AND”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
| ビット単位“OR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
^ ビット単位“XOR”。整数引数に作用する場合に、整数値の2の補数表現に作用する。他の引数よりも少ないビットを含む2進引数に作用する場合に、より短い方の引数は、0に等しい更なる有効ビットを加えることによって拡張される。
x>>y y個の2進桁によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果として最上位ビット(MSB)へシフトされたビットは、シフト演算の前のxのMSBに等しい値を有する。
x<<y y個の2進桁によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果として最下位ビット(LSB)へシフトされたビットは、0に等しい値を有する。
代入演算子
以下の代入演算子は、次の通りに定義される:
= 代入演算子
++ インクリメント、すなわち、x++は、x=x+1と等価であり、配列指数で使用される場合には、インクリメント演算の前の変数の値として評価する。
−− デクリメント、すなわち、x−−は、x=x−1と等価であり、配列指数で使用される場合には、デクリメント演算の前の変数の値として評価する。
+= 指定された量によるインクリメント、すなわち、x+=3は、x=x+3と等価であり、x+=(−3)は、x=x+(−3)と等価である。
−= 指定された量によるデクリメント、すなわち、x−=3は、x=x−3と等価であり、x−=(−3)は、x=x−(−3)と等価である。
範囲表記
以下の表記は、値の範囲を指定するために使用される:
x=y..z x、y及びzは整数であり、zはyよりも大きいとして、xは、y以上z以下の整数値を呈する。