(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】オプティカルフローによる予測洗練化、双方向オプティカルフローおよびデコーダ側の動きベクトル洗練化のための方法および装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20240924BHJP
H04N 19/52 20140101ALI20240924BHJP
【FI】
H04N19/70
H04N19/52
【外国語出願】
(21)【出願番号】P 2023079701
(22)【出願日】2023-05-12
(62)【分割の表示】P 2022521352の分割
【原出願日】2020-10-09
【審査請求日】2023-05-16
(32)【優先日】2019-10-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】チェン、イ-ウェン
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユー、ビン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-547599(JP,A)
【文献】米国特許出願公開第2021/0084315(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ復号の方法であって、
デコーダによって、シーケンスパラメータセット(SPS)内の3つの制御フラグを受信することであって、第1の制御フラグが、現在のビデオシーケンス内のビデオブロックを復号するために双方向オプティカルフロー(BDOF)が有効化されるかどうかを示し、第2の制御フラグが、前記現在のビデオシーケンス内の前記ビデオブロックを復号するためにオプティカルフローによる予測洗練化(PROF)が有効化されるかどうかを示し、第3の制御フラグが、前記現在のビデオシーケンス内の前記ビデオブロックを復号するためにデコーダ側の動きベクトル洗練化(DMVR)が有効化されるかどうかを示すことと、
前記デコーダによって、前記第1の制御フラグが真であるときに前記SPS内の第1のプレゼンスフラグ、前記第2の制御フラグが真であるときに前記SPS内の第2のプレゼンスフラグ、および前記第3の制御フラグが真であるときに前記SPS内の第3のプレゼンスフラグを受信することと、
前記デコーダによって、前記SPS内の前記第1のプレゼンスフラグが真であるときの前記SPSを参照する各ピクチャのピクチャヘッダ内の第1のピクチャ制御フラグを受信することであって、前記第1のピクチャ制御フラグが、前記ピクチャ内のビデオブロックに対して前記BDOFが無効化されるかどうかを示すことと、
前記デコーダによって、前記SPS内の前記第2のプレゼンスフラグが真であるときの前記SPSを参照する各ピクチャのピクチャヘッダ内の第2のピクチャ制御フラグを受信することであって、前記第2のピクチャ制御フラグが、前記ピクチャ内のビデオブロックに対して前記PROFが無効化されているかどうかを示すことと、
前記デコーダによって、前記SPS内の前記第3のプレゼンスフラグが真であるときの前記SPSを参照する各ピクチャのピクチャヘッダ内の第3のピクチャ制御フラグを受信することであって、前記第3のピクチャ制御フラグが、前記ピクチャ内のビデオブロックに対して前記DMVRが無効化されているかどうかを示すことと、を含む方法。
【請求項2】
前記デコーダによって、前記SPS内の前記3つの制御フラグを受信することが、
前記デコーダによって、sps_bdof_enabled_flagフラグを受信することであって、前記sps_bdof_enabled_flagフラグが、前記現在のビデオシーケンス内の前記ビデオブロックを復号するために前記BDOFが有効化されているかどうかを示すことと、
前記デコーダによって、sps_prof_enabled_flagフラグを受信することであって、前記sps_prof_enabled_flagフラグが、前記現在のビデオシーケンス内の前記ビデオブロックを復号するために前記PROFが有効化されているかどうかを示すことと、
前記デコーダによって、sps_dmvr_enabled_flagフラグを受信することであって、前記sps_dmvr_enabled_flagフラグが、前記現在のビデオシーケンス内の前記ビデオブロックを復号するために前記DMVRが有効化されているかどうかを示すことと、を含む、請求項1に記載の方法。
【請求項3】
前記デコーダによって、前記第1の制御フラグが真であるときの前記SPS内の第1のプレゼンスフラグ、前記第2の制御フラグが真であるときの前記SPS内の第2のプレゼンスフラグ、および前記第3の制御フラグが真であるときの前記SPS内の第3のプレゼンスフラグを受信することが、
sps_dmvr_enabled_flagフラグが真であるとき、前記デコーダによって、sps_dmvr_picture_header_present_flagフラグを受信することであって、前記sps_dmvr_picture_header_present_flagが、前記SPSを参照する各ピクチャのピクチャヘッダ内でpicture_disable_dmvr_flagフラグがシグナリングされるかどうかをシグナリングすることと、
sps_bdof_enabled_flagフラグが真であるとき、前記デコーダによって、sps_bdof_picture_header_present_flagフラグを受信することであって、前記sps_bdof_picture_header_present_flagが、前記SPSを参照する各ピクチャの前記ピクチャヘッダ内でpicture_disable_bdof_flagフラグがシグナリングされるかどうかをシグナリングすることと、
sps_prof_enabled_flagフラグが真であるときに、前記デコーダによって、sps_prof_picture_header_present_flagフラグを受信することであって、前記sps_prof_picture_header_present_flagが、前記SPSを参照する各ピクチャの前記ピクチャヘッダ内でpicture_disable_prof_flagフラグがシグナリングされるかどうかをシグナリングすることと、を含む、請求項2に記載の方法。
【請求項4】
前記sps_bdof_picture_header_present_flagフラグの値が偽であるとき、アフィンモードで符号化されないインター符号化ブロックの予測サンプルを生成するために、前記デコーダによって、前記BDOFを適用することと、
前記sps_prof_picture_header_present_flagフラグの値が偽であるとき、前記アフィンモードで符号化されるインター符号化ブロックの予測サンプルを生成するために、前記デコーダによって、前記PROFを適用することと、
前記sps_dmvr_picture_header_present_flagフラグの値が偽であるとき、前記アフィンモードで符号化されない前記インター符号化ブロックの予測サンプルを生成するために、前記デコーダによって、前記DMVRを適用することと、をさらに含む、請求項3に記載の方法。
【請求項5】
前記SPS内の前記第
3のプレゼンスフラグが真であるときに、前記デコーダによって、前記SPSを参照する各ピクチャのピクチャヘッダ内の第
3のピクチャ制御フラグを受信することが、
前記sps_dmvr_picture_header_present_flagフラグが真であるときに、前記デコーダによって、ピクチャヘッダ制御フラグを受信することを含み、前記ピクチャヘッダ制御フラグが、前記ピクチャヘッダを参照するスライスに対して前記DMVRが無効化されるかどうかをシグナリングする前記picture_disable_dmvr_flagフラグである、請求項3に記載の方法。
【請求項6】
前記SPS内の前記第
1のプレゼンスフラグが真であるときに、前記デコーダによって、前記SPSを参照する各ピクチャのピクチャヘッダ内の第
1のピクチャ制御フラグを受信することが、
前記sps_bdof_picture_header_present_flagフラグが真であるときに、前記デコーダによって、ピクチャヘッダ制御フラグを受信することを含み、前記ピクチャヘッダ制御フラグが、前記ピクチャヘッダを参照するスライスに対して前記BDOFが無効化されるかどうかをシグナリングする前記picture_disable_bdof_flagフラグである、請求項3に記載の方法。
【請求項7】
前記SPS内の前記第
2のプレゼンスフラグが真であるときに、前記デコーダによって、前記SPSを参照する各ピクチャのピクチャヘッダ内の第
2のピクチャ制御フラグを受信することが、
前記sps_prof_picture_header_present_flagフラグが真であるときに、前記デコーダによって、ピクチャヘッダ制御フラグを受信することを含み、前記ピクチャヘッダ制御フラグが、前記ピクチャヘッダを参照するスライスに対して前記PROFが無効化されるかどうかをシグナリングする前記picture_disable_prof_flagフラグである、請求項3に記載の方法。
【請求項8】
コンピューティングデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体と、を含み、
前記1つまたは複数のプロセッサが、請求項1から7のいずれか一項に記載の方法を実行するように構成される、コンピューティングデバイス。
【請求項9】
1つまたは複数のプロセッサを有するコンピューティング装置によって実行するための複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
前記複数のプログラムが、前記1つまたは複数のプロセッサによって実行されるとき、前記コンピューティング装置にビットストリームを受信させ、前記ビットストリームに基づいて請求項1から7のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項10】
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに請求項1から7のいずれか一項に記載の方法を実行させる複数の命令を含む、コンピュータプログラム。
【請求項11】
請求項1から7のいずれか一項に記載の方法によって復号化されるビットストリームを記憶する
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年10月9日に出願された仮特許第62/913,141号に基づきこの仮出願の優先権を主張するものであり、この仮出願の全体は、全ての目的のために参照により本明細書に組み込まれる。
【0002】
本開示は、ビデオ符号化および圧縮に関する。より具体的には、本開示は、多用途ビデオ符号化(VVC)規格において研究されている2つのインター予測ツール、すなわち、オプティカルフローによる予測洗練化(PROF:prediction refinement with optical flow)および双方向オプティカルフロー(BDOF:bi-directional optical flow)における方法および装置に関する。
【背景技術】
【0003】
様々なビデオ符号化技法は、ビデオデータを圧縮するために使用され得る。ビデオ符号化は、1つまたは複数のビデオ符号化規格に従って実施される。例えば、ビデオ符号化規格は、多用途ビデオ符号化(VVC)、共同探索テストモデル(JEM)、高効率ビデオ符号化(H.265/HEVC)、アドバンストビデオ符号化(H.264/AVC)、ムービングピクチャエキスパートグループ(MPEG)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を活用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技法の重要な目標は、ビデオ品質の劣化を回避するかまたは最小限に抑える一方で、ビデオデータをより低いビットレートを使用する形態に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の例は、双方向オプティカルフローに対するビット深度制御のための方法および装置を提供する。
【課題を解決するための手段】
【0005】
本開示の第1の態様によれば、PROFのビット深度表現方法が提供される。本方法は、デコーダがビデオ信号内のビデオブロックに関連付けられた参照ピクチャIを取得することを含み得る。デコーダはまた、参照ピクチャI内の参照ブロックからビデオブロックの予測サンプルI(i,j)を取得し得る。iおよびjは、ビデオブロックを有する1つのサンプルの座標を表す。デコーダは、事前設定された精度を実現するためのビットシフト値に基づいて内部PROFパラメータに右シフトを適用することによって、PROF導出プロセスの内部PROFパラメータをさらに制御し得る。内部PROFパラメータは、予測サンプルI(i,j)に対して導出された水平勾配値、垂直勾配値、水平動き差分値、および垂直動き差分値を含み得る。デコーダはまた、予測サンプルI(i,j)に基づいてPROF導出プロセスがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための予測洗練化値を取得し得る。デコーダは、予測サンプルおよび予測洗練化値の組合せに基づいて、ビデオブロックの予測サンプルをさらに取得し得る。
【0006】
本開示の第2の態様によれば、BDOFのビット深度制御方法が提供される。本方法は、デコーダがビデオブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得することを含み得る。表示順序において、第1の参照ピクチャI(0)は現在のピクチャの前にあり、第2の参照ピクチャI(1)は現在のピクチャの後にある。デコーダはまた、第1の参照ピクチャI(0)内の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得し得る。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表す。デコーダは、第2の参照ピクチャI(1)内の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)をさらに取得し得る。デコーダはまた、内部BDOFパラメータにシフトを適用することによって、BDOF導出プロセスの内部BDOFパラメータを制御し得る。内部BDOFパラメータは、第1の予測サンプルI(0)(i,j)、第2の予測サンプルI(1)(i,j)、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間のサンプル差分、および中間BDOF導出パラメータに基づいて導出された水平勾配値および垂直勾配値を含む。中間BDOF導出パラメータは、sGxdI、sGydI、sGx2、sGxGy、およびsGy2パラメータを含み得る。sGxdIおよびsGydIは、水平勾配値とサンプル差分値との間および垂直勾配値とサンプル差分値との間の相互相関値を含み得る。sGx2およびsGy2は、水平勾配値および垂直勾配値の自己相関値を含み得る。sGxGyは、水平勾配値と垂直勾配値との間の相互相関値を含み得る。
【0007】
本開示の第3の態様によれば、BDOF、PROF、およびDMVRの方法が提供される。本方法は、デコーダがシーケンスパラメータセット(SPS)内の3つの制御フラグを受信することを含み得る。第1の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにBDOFが有効化されるかどうかを示す。第2の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにPROFが有効化されるかどうかを示す。第3の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにDMVRが有効化されるかどうかを示す。デコーダはまた、第1の制御フラグが真であるときにSPS内の第1のプレゼンスフラグ、第2の制御フラグが真であるときにSPS内の第2のプレゼンスフラグ、および第3の制御フラグが真であるときにSPS内の第3のプレゼンスフラグを受信し得る。デコーダは、SPS内の第1のプレゼンスフラグが、ピクチャ内のビデオブロックに対してBDOFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第1のピクチャ制御フラグをさらに受信し得る。デコーダはまた、SPS内の第2のプレゼンスフラグが、ピクチャ内のビデオブロックに対してPROFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第2のピクチャ制御フラグを受信し得る。デコーダは、SPS内の第3のプレゼンスフラグが、ピクチャ内のビデオブロックに対してDMVRが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第3のピクチャ制御フラグをさらに受信し得る。
【0008】
本開示の第4の態様によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含み得る。1つまたは複数のプロセッサは、ビデオ信号内のビデオブロックに関連付けられた参照ピクチャIを取得するように構成され得る。1つまたは複数のプロセッサはまた、参照ピクチャI内の参照ブロックからビデオブロックの予測サンプルI(i,j)を取得するように構成され得る。iおよびjは、ビデオブロック内の1つのサンプルの座標を表す。1つまたは複数のプロセッサは、事前設定された精度を実現するためのビットシフト値に基づいて内部PROFパラメータに右シフトを適用することによって、PROF導出プロセスの内部PROFパラメータを制御するようにさらに構成され得る。内部PROFパラメータは、予測サンプルI(i,j)に対して導出された水平勾配値、垂直勾配値、水平動き差分値、および垂直動き差分値を含み得る。1つまたは複数のプロセッサはまた、予測サンプルI(i,j)に基づいてPROF導出プロセスがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための予測洗練化値を取得するように構成され得る。1つまたは複数のプロセッサは、予測サンプルおよび予測洗練化値の組合せに基づいて、ビデオブロックの予測サンプルを取得するようにさらに構成され得る。
【0009】
本開示の第5の態様によれば、コンピューティングデバイスが提供される。コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含み得る。1つまたは複数のプロセッサは、ビデオブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得するように構成され得る。表示順序において、第1の参照ピクチャI(0)は現在のピクチャの前にあり、第2の参照ピクチャI(1)は現在のピクチャの後にある。1つまたは複数のプロセッサは、第1の参照ピクチャI(0)内の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得するようにさらに構成され得る。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表す。1つまたは複数のプロセッサはまた、予測サンプルI(i,j)に基づいてPROF導出プロセスがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための予測洗練化値を取得するように構成され得る。1つまたは複数のプロセッサは、第2の参照ピクチャI(1)内の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)を取得するようにさらに構成され得る。1つまたは複数のプロセッサは、内部BDOFパラメータにシフトを適用することによって、BDOF導出プロセスの内部BDOFパラメータを制御するようにさらに構成され得る。内部BDOFパラメータは、第1の予測サンプルI(0)(i,j)、第2の予測サンプルI(1)(i,j)、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間のサンプル差分、および中間BDOF導出パラメータに基づいて導出された水平勾配値および垂直勾配値を含む。中間BDOF導出パラメータは、sGxdI、sGydI、sGx2、sGxGy、およびsGy2パラメータを含み得る。sGxdIおよびsGydIは、水平勾配値とサンプル差分値との間および垂直勾配値とサンプル差分値との間の相互相関値を含み得る。sGx2およびsGy2は、水平勾配値および垂直勾配値の自己相関値を含み得る。sGxGyは、水平勾配値と垂直勾配値との間の相互相関値を含み得る。1つまたは複数のプロセッサは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてBDOFがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための動き洗練化を取得するようにさらに構成され得る。1つまたは複数のプロセッサは、動き洗練化に基づいてビデオブロックの双予測サンプルを取得するようにさらに構成され得る。
【0010】
本開示の第6の態様によれば、命令を記憶した非一時的コンピュータ可読記憶媒体が提供される。命令が装置の1つまたは複数のプロセッサによって実行されるとき、命令は、シーケンスパラメータセット(SPS)内の3つの制御フラグを装置に受信させ得る。第1の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにBDOFが有効化されるかどうかを示す。第2の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにPROFが有効化されるかどうかを示す。第3の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにDMVRが有効化されるかどうかを示す。命令はまた、第1の制御フラグが真であるときにSPS内の第1のプレゼンスフラグ、第2の制御フラグが真であるときにSPS内の第2のプレゼンスフラグ、および第3の制御フラグが真であるときにSPS内の第3のプレゼンスフラグを装置に受信させ得る。命令は、SPS内の第1のプレゼンスフラグが、ピクチャ内のビデオブロックに対してBDOFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第1のピクチャ制御フラグを装置にさらに受信させ得る。命令はまた、SPS内の第2のプレゼンスフラグが、ピクチャ内のビデオブロックに対してPROFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第2のピクチャ制御フラグを装置に受信させ得る。命令は、SPS内の第3のプレゼンスフラグが、ピクチャ内のビデオブロックに対してDMVRが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第3のピクチャ制御フラグを装置にさらに受信させ得る。
【0011】
上記の概略的な説明および以下の詳細な説明はどちらも例示のみを目的とし、本開示を制限するものではないことを理解されたい。
【0012】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示と一致する例を例示し、説明と共に本開示の原理を説明するのに役立つ。
【図面の簡単な説明】
【0013】
【
図1】本開示の一例に係るエンコーダのブロック図である。
【
図2】本開示の一例に係るデコーダのブロック図である。
【
図3A】本開示の一例に係るマルチタイプ木構造におけるブロック区分を例示する図である。
【
図3B】本開示の一例に係るマルチタイプ木構造におけるブロック区分を例示する図である。
【
図3C】本開示の一例に係るマルチタイプ木構造におけるブロック区分を例示する図である。
【
図3D】本開示の一例に係るマルチタイプ木構造におけるブロック区分を例示する図である。
【
図3E】本開示の一例に係るマルチタイプ木構造におけるブロック区分を例示する図である。
【
図4】本開示の一例に係る双方向オプティカルフロー(BDOF)モデルの図の例示である。
【
図5A】本開示の一例に係るアフィンモデルの例示である。
【
図5B】本開示の一例に係るアフィンモデルの例示である。
【
図6】本開示の一例に係るアフィンモデルの例示である。
【
図7】本開示の一例に係るオプティカルフローによる予測洗練化(PROF)の例示である。
【
図8】本開示の一例に係るBDOFのワークフローである。
【
図9】本開示の一例に係るPROFのワークフローである。
【
図10】本開示の一例に係るBDOFの方法である。
【
図11】本開示の一例に係るBDOFおよびPROFの方法である。
【
図12】本開示の一例に係るBDOF、PROF、およびDMVRの方法である。
【
図13】本開示の一例に係る双予測のためのPROFのワークフローの例示である。
【
図14】本開示に係るBDOFおよびPROFプロセスのパイプラインステージの例示である。
【
図15】本開示に係るBDOFの勾配導出方法の例示である。
【
図16】本開示に係るPROFの勾配導出方法の例示である。
【
図17A】本開示の一例に係る、アフィンモードのためのテンプレートサンプルを導出する例示である。
【
図17B】本開示の一例に係るアフィンモードのためのテンプレートサンプルを導出する例示である。
【
図18A】本開示の一例に係るアフィンモードのためのPROFおよびLICを排他的に有効化する例示である。
【
図18B】本開示の一例に係るアフィンモードのためのPROFおよびLICを一緒に有効化する例示である。
【
図19A】本開示の一例に係る16×16 BDOF CUに適用される提案されるパディング方法を例示する図である。
【
図19B】本開示の一例に係る16×16 BDOF CUに適用される提案されるパディング方法を例示する図である。
【
図19C】本開示の一例に係る16×16 BDOF CUに適用される提案されるパディング方法を例示する図である。
【
図19D】本開示の一例に係る16×16 BDOF CUに適用される提案されるパディング方法を例示する図である。
【
図20】本開示の一例に係るユーザインターフェースと結合されたコンピューティング環境を例示する図である。
【発明を実施するための形態】
【0014】
次に、その例が添付の図面に例示されている例示的な実施形態への参照が詳細に行われる。以下の説明は添付の図面を参照し、添付の図面では、別段に表されない限り、異なる図面における同じ番号は同じまたは同様の要素を表す。例示的な実施形態の以下の説明に記載される実装形態は、本開示と一致する全ての実装形態を表すものではない。その代わりに、これらの実装形態は、添付の特許請求の範囲に列挙されるような本開示に関する態様と一致する装置および方法の例にすぎない。
【0015】
本開示で使用される用語は、特定の実施形態のみを説明するためのものであり、本開示を限定することは意図されていない。本開示および添付の特許請求の範囲で使用される場合、単数形「a」、「an」、および「the」は、文脈が別段に明確に示さない限り、複数形も含むことが意図されている。本明細書で使用される「および/または」という用語は、関連する列挙された項目のうちの1つまたは複数の任意のまたは全ての可能な組合せを意味し、それらを含むことが意図されていることも理解されるべきである。
【0016】
「第1の」、「第2の」、「第3の」などの用語は様々な情報を説明するために本明細書で使用され得るが、情報はこれらの用語によって限定されるべきではないことが理解されるべきである。これらの用語は、あるカテゴリの情報を別のカテゴリの情報と区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報が第2の情報と称されることがあり、同様に、第2の情報が第1の情報と称されることもある。本明細書で使用される場合、「if」という用語は、文脈に応じて、「~とき(when)」または「~すると(upon)」または「判断に応答して(in response to a judgment)」を意味するものと理解され得る。
【0017】
前の世代のビデオ符号化規格H.264/MPEG AVCと比較して約50%のビットレート節約または同等の知覚品質を提供するHEVC規格の第1のバージョンは、2013年10月に最終決定された。HEVC規格はその前身よりも著しい符号化改善を提供するが、追加の符号化ツールによってHEVCよりも優れた符号化効率が達成され得るという証拠がある。それに基づいて、VCEGとMPEGの両方が将来のビデオ符号化規格化のための新しい符号化技術の探索作業を開始した。1つの共同ビデオ探索チーム(JVET)は、符号化効率のかなりの向上を可能にすることができる先端技術の重要な研究を開始するためにITU-T VECGおよびISO/IEC MPEGによって2015年10月に形成された。共同探索モデル(JEM)と呼ばれる1つの参照ソフトウェアは、いくつかの追加の符号化ツールをHEVCテストモデル(HM)の上で統合することによってJVETによって保守された。
【0018】
2017年10月に、HEVCを超える能力を有するビデオ圧縮に関する共同提案募集(CfP:call for proposal)がITU-TおよびISO/IEC[9]によって出された。2018年4月に、第10回JVET会合において23のCfP応答が受領および評価され、HEVCよりもおよそ40%上回る圧縮効率利得を実証した。そのような評価結果に基づいて、JVETは、多用途ビデオ符号化(VVC)と名付けられた新世代のビデオ符号化規格を開発するための新しいプロジェクトを立ち上げた。同月に、VVC規格の参照実装を実証するために、VVCテストモデル(VTM)と呼ばれる1つの参照ソフトウェア・コードベースが確立された。
【0019】
HEVCと同様に、VVCはブロックベースのハイブリッドビデオ符号化フレームワーク上に構築されている。
【0020】
図1は、VVCのためのブロックベースのビデオエンコーダの概略図を示す。具体的には、
図1は、典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インター・モード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0021】
エンコーダ100において、ビデオフレームは処理のために複数のビデオブロックに区分される。所与のビデオブロックごとに、インター予測手法またはイントラ予測手法のいずれかに基づいて予測が形成される。
【0022】
ビデオ入力110の一部である現在のビデオブロックとブロック予測子140の一部であるその予測子との間の差分を表す予測残差が、加算器128から変換130に送信される。次いで、変換係数が、エントロピー低減のために変換130から量子化132に送信される。次いで、量子化された係数が、圧縮されたビデオビットストリームを生成するためにエントロピー符号化138に供給される。
図1に示されるように、ビデオブロック区分情報、動きベクトル(MV)、参照ピクチャインデックス、およびイントラ予測モードなどのイントラ/インター・モード決定116からの予測関連情報142も、エントロピー符号化138を通じて供給され、圧縮されたビットストリーム144の中に保存される。圧縮されたビットストリーム144はビデオビットストリームを含む。
【0023】
エンコーダ100において、予測の目的でピクセルを再構成するために、デコーダ関連の回路構成も必要とされる。最初に、逆量子化134および逆変換136を通じて予測残差が再構成される。この再構成された予測残差は、現在のビデオブロックのためのフィルタリングされていない再構成されたピクセルを生成するためにブロック予測子140と組み合わされる。
【0024】
空間予測(または「イントラ予測」)は、現在のビデオブロックを予測するために、すでに符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からのピクセルを現在のビデオブロックと同じビデオフレームにおいて使用する。
【0025】
時間予測(「インター予測」とも呼ばれる)は、現在のビデオブロックを予測するために、すでに符号化されたビデオピクチャからの再構成されたピクセルを使用する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与の符号化ユニット(CU)または符号化ブロックのための時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数のMVによってシグナリングされる。さらに、複数の参照ピクチャがサポートされる場合、時間予測信号が参照ピクチャストレージ内のどの参照ピクチャから来ているかを識別するために使用される1つの参照ピクチャインデックスが追加的に送信される。
【0026】
動き推定114は、ビデオ入力110とピクチャバッファ120からの信号とを取り入れ、動き補償112に動き推定信号を出力する。動き補償112は、ビデオ入力110と、ピクチャバッファ120からの信号と、動き推定114からの動き推定信号とを取り入れ、イントラ/インター・モード決定116に動き補償信号を出力する。
【0027】
空間予測および/または時間予測が実施された後、エンコーダ100内のイントラ/インター・モード決定116は、例えばレートひずみ最適化方法に基づいて、最良の予測モードを選ぶ。次いで、ブロック予測子140は現在のビデオブロックから減算され、結果として生じる予測残差は変換130および量子化132を使用して脱相関される。結果として生じる量子化された残差係数は、再構成された残差を形成するために、逆量子化134によって逆量子化され、逆変換136によって逆変換され、次いで、再構成された残差は、CUの再構成された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、および/または適応ループ内フィルタ(ALF)などのループ内フィルタリング122は、ピクチャバッファ120の参照ピクチャストレージに入れられる前に、再構成されたCU上で適用され、将来のビデオブロックを符号化するために使用され得る。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数は全て、ビットストリームを形成するためにエントロピー符号化ユニット138に送信されて、さらに圧縮され、パッキングされる。
【0028】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を与える。入力ビデオ信号は、(CUと呼ばれる)ブロックごとに処理される。VTM-1.0では、CUは最大128×128ピクセルであり得る。しかしながら、四分木のみに基づいてブロックを区分するHEVCとは異なり、VVCでは、1つの符号化ツリーユニット(CTU)は、四分木/二分木/三分木に基づいて、変動する局所特性に適合するようにCUにスプリットされる。加えて、HEVCにおける複数の区分ユニット・タイプの概念が取り除かれる、すなわち、CU、予測ユニット(PU)、および変換ユニット(TU)の区別はもはやVVCに存在せず、その代わりに、さらなる区分なしに、予測と変換の両方のための基本単位として各CUが常に使用される。マルチタイプ木構造では、1つのCTUは最初に四分木構造によって区分される。次いで、各四分木リーフ・ノードが、二分および三分木構造によってさらに区分され得る。
図3A、
図3B、
図3C、
図3D、および
図3Eに示されるように、四分区分、水平二分区分、垂直二分区分、水平三分区分、および垂直三分区分という5つのスプリット・タイプがある。
【0029】
図3Aは、本開示に係る、マルチタイプ木構造におけるブロック四分区分を例示する図を示す。
【0030】
図3Bは、本開示に係る、マルチタイプ木構造におけるブロック垂直二分区分を例示する図を示す。
【0031】
図3Cは、本開示に係る、マルチタイプ木構造におけるブロック水平二分区分を例示する図を示す。
【0032】
図3Dは、本開示に係る、マルチタイプ木構造におけるブロック垂直三分区分を例示する図を示す。
【0033】
図3Eは、本開示に係る、マルチタイプ木構造におけるブロック水平三分区分を例示する図を示す。
【0034】
図1では、空間予測および/または時間予測が実施され得る。空間予測(または「イントラ予測」)は、現在のビデオブロックを予測するために、すでに符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からのピクセルを同じビデオピクチャ/スライスにおいて使用する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、現在のビデオブロックを予測するために、すでに符号化されたビデオピクチャからの再構成されたピクセルを使用する。時間予測は、ビデオ信号に固有の時間冗長性を低減する。所与のCUのための時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされる場合、時間予測信号が参照ピクチャストア内のどの参照ピクチャから来ているかを識別するために使用される1つの参照ピクチャインデックスが追加的に送信される。空間予測および/または時間予測の後、エンコーダ内のモード決定ブロックは、例えばレートひずみ最適化方法に基づいて、最良の予測モードを選ぶ。次いで、予測ブロックは現在のビデオブロックから減算され、予測残差は変換および量子化を使用して脱相関される。量子化された残差係数は、再構成された残差を形成するために、逆量子化および逆変換され、次いで、再構成された残差は、CUの再構成された信号を形成するために、予測ブロックに戻って加算される。さらに、デブロッキングフィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのループ内フィルタリングは、参照ピクチャストアに入れられる前に、再構成されたCUに適用され、将来のビデオブロックを符号化するために使用され得る。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数は全て、ビットストリームを形成するためにエントロピー符号化ユニットに送信されて、さらに圧縮され、パッキングされる。
【0035】
図2は、VVCのためのビデオデコーダの概略ブロック図を示す。具体的には、
図2は、典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号212、逆量子化214、逆変換216、加算器218、イントラ/インター・モード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0036】
デコーダ200は、
図1のエンコーダ100にある再構成関連のセクションと同様である。デコーダ200において、量子化された係数レベルおよび予測関連の情報を導出するために、入ってくるビデオビットストリーム210が最初にエントロピー復号212を通じて復号される。次いで、再構成された予測残差を取得するために、量子化された係数レベルが逆量子化214および逆変換216を通じて処理される。イントラ/インター・モード選択器220において実装されるブロック予測子機構は、復号された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実施するように構成される。フィルタリングされていない再構成されたピクセルのセットは、加算器(summer)218を使用して、逆変換216からの再構成された予測残差とブロック予測子機構によって生成された予測出力を合計することによって取得される。
【0037】
再構成されたブロックはさらに、参照ピクチャストアとして機能するピクチャバッファ226に記憶される前に、ループ内フィルタ228を通過し得る。ピクチャバッファ226内の再構成されたビデオは、表示デバイスを駆動するために送信され、ならびに将来のビデオブロックを予測するために使用され得る。ループ内フィルタ228がオンにされている状況では、フィルタリング動作は、最終的な再構成されたビデオ出力232を導出するために、これらの再構成されたピクセルに対して実施される。
【0038】
図2は、ブロックベースのビデオデコーダの概略ブロック図を与える。ビデオビットストリームは最初に、エントロピー復号ユニットにおいてエントロピー復号される。符号化モードおよび予測情報は、予測ブロックを形成するために、空間予測ユニット(イントラ符号化される場合)または時間予測ユニット(インター符号化される場合)のいずれかに送信される。残差変換係数は、残差ブロックを再構成するために、逆量子化ユニットおよび逆変換ユニットに送信される。次いで、予測ブロックおよび残差ブロックが合計される。再構成されたブロックはさらに、参照ピクチャストレージに記憶される前に、ループ内フィルタリングを通過し得る。次いで、参照ピクチャストレージ内の再構成されたビデオは、表示デバイスを駆動するために送出され、ならびに将来のビデオブロックを予測するために使用される。
【0039】
一般に、VVCにおいて適用される基本的なインター予測技法は、いくつかのモジュールがさらに拡張されるおよび/または強化されることを除いて、HEVCのインター予測技法と同じに保たれる。特に、全ての先行するビデオ規格の場合、1つの符号化ブロックは、符号化ブロックが単予測されるときにはたった1つのMVのみに、または符号化ブロックが双予測されるときには2つのMVのみに関連付けられ得る。従来のブロックベースの動き補償のそのような制限により、小さい動きが動き補償の後の予測サンプル内に依然として残る可能性があり、したがって、動き補償の全体的な効率に悪影響を及ぼす。MVの粒度と精度の両方を改善するために、オプティカルフローに基づく2つのサンプル単位の洗練化方法、すなわち、アフィンモードのための双方向オプティカルフロー(BDOF)およびオプティカルフローによる予測洗練化(PROF)が、VVC規格のために現在研究されている。以下では、2つのインター符号化ツールの主な技術的態様が簡単に検討される。
【0040】
双方向オプティカルフロー
VVCでは、BDOFは、双予測された符号化ブロックの予測サンプルを洗練するために適用される。具体的には、
図4に示されるように、BDOFは、双予測が使用されるときにブロックベースの動き補償予測の上で実施されるサンプル単位の動き洗練化である。
【0041】
図4は、本開示に係る、BDOFモデルの例示を示す。
【0042】
各4×4サブブロックの動き洗練化(v
x,v
y)は、サブブロックの周りの1つの6×6ウィンドウΩ内部でBDOFが適用された後のL0予測サンプルとL1予測サンプルとの間の差分を最小限に抑えることによって計算される。具体的には、(v
x,v
y)の値は、
【数1】
として導出され、ここで、
はフロア関数であり、clip3(min,max,x)は[min,max]の範囲の内部の所与の値xをクリップする関数であり、記号≫はビット単位の右シフト演算を表し、記号≪はビット単位の左シフト演算を表し、th
BDOFは不規則な局所動きによる伝搬誤差を防止するための動き洗練化しきい値であり、動き洗練化しきい値は1≪max(5,bit-depth-7).に等しく、ここで、bit-depthは内部ビット深度である。(1)において、
である。
【0043】
S
1、S
2、S
3、S
5およびS
6の値は、
【数2】
として計算され、ここで、
【数3】
であり、ここで、I
(k)(i,j)は、中間の高精度(すなわち、16ビット)において生成されるk=0,1であるリストk内の予測信号の座標(i,j)におけるサンプル値であり、
は、その2つの隣接サンプルの間の差分を直接計算することによって取得されたサンプルの水平勾配および垂直勾配であり、すなわち、
【数4】
である。
【0044】
(1)において導出された動き洗練化に基づいて、CUの最終的な双予測サンプルは、
【数5】
によって示されるように、オプティカルフローモデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって計算され、ここで、shiftおよびo
offsetは、それぞれ15-bit-depthおよび1≪(14-bit-depth)+2・(1≪13)に等しい、双予測のためのL0予測信号およびL1予測信号を組み合わせるために適用される右シフト値およびオフセット値である。上記のビット深度制御方法に基づいて、BDOFプロセス全体の中間パラメータの最大ビット深度が32ビットを超えず、乗算への最も大きい入力が15ビット以内である、すなわち、1つの15ビット乗算器がBDOF実装には十分であることが保証される。
【0045】
アフィンモード
HEVCでは、動き補償予測に対して並進動きモデルのみが適用される。一方、現実の世界では、多くの種類の動き、例えば、ズームイン/アウト、回転、透視動き(perspective motion)、および他の不規則な動きがある。VVCでは、アフィン動き補償予測は、インター予測に対して並進動きモデルが適用されるかまたはアフィン動きモデルが適用されるかを示すためにインター符号化ブロックごとに1つのフラグをシグナリングすることによって適用される。現在のVVC設計では、4パラメータアフィンモードおよび6パラメータアフィンモードを含む2つのアフィンモードは、1つのアフィン符号化ブロックに対してサポートされている。
【0046】
4パラメータアフィンモデルは、以下のパラメータ、すなわち、それぞれ水平方向および垂直方向での並進運動のための2つのパラメータと、両方向に対するズーム動きのための1つのパラメータおよび回転動きのための1つのパラメータとを有する。水平ズームパラメータは垂直ズームパラメータに等しい。水平回転パラメータは垂直回転パラメータに等しい。動きベクトルおよびアフィンパラメータのより良い適応を達成するために、VVCでは、それらのアフィンパラメータは、現在のブロックの左上隅および右上隅にある2つのMV(制御点動きベクトル(CPMV:control point motion vector)とも呼ばれる)に変換される。
図5Aおよび
図5Bに示されるように、ブロックのアフィン動きフィールドは、2つの制御点MV(V
0,V
1)によって記述される。
【0047】
図5Aは、本開示に係る、4パラメータアフィンモデルの例示を示す。
【0048】
図5Bは、本開示に係る、4パラメータアフィンモデルの例示を示す。
【0049】
制御点動きに基づいて、1つのアフィン符号化されたブロックの動きフィールド(v
x,v
y)は、
【数6】
として記述される。
【0050】
6パラメータアフィンモードは、以下のパラメータ、すなわち、それぞれ水平方向および垂直方向での並進運動のための2つのパラメータと、水平方向でのズーム動きのための1つのパラメータおよび回転動きのための1つのパラメータと、垂直方向でのズーム動きのための1つのパラメータおよび回転動きのための1つのパラメータとを有する。6パラメータアフィン動きモデルは、3つのCPMVにおいて3つのMVを用いて符号化される。
【0051】
図6は、本開示に係る、6パラメータアフィンモデルの例示を示す。
【0052】
図6に示されるように、1つの6パラメータアフィンブロックの3つの制御点は、ブロックの左上隅、右上隅、および左下隅にある。左上の制御点における動きは並進動きに関し、右上の制御点における動きは水平方向での回転動きおよびズーム動きに関し、左下の制御点における動きは垂直方向での回転動きおよびズーム動きに関する。4パラメータアフィン動きモデルと比較して、6パラメータの水平方向での回転動きおよびズーム動きは、垂直方向でのそれらの動きと同じではないことがある。(V
0,V
1,V
2)が
図6における現在のブロックの左上隅、右上隅、および左下隅のMVであると仮定すると、各サブブロックの動きベクトル(v
x,v
y)は、制御点における3つのMVを使用して
【数7】
として導出される。
【0053】
アフィンモードのためのオプティカルフローによる予測洗練化
アフィン動き補償精度を改善するために、オプティカルフローモデルに基づいてサブブロックベースのアフィン動き補償を洗練するPROFは、現在のVVCにおいて現在研究されている。具体的には、サブブロックベースのアフィン動き補償を実施した後、1つのアフィンブロックのルーマ予測サンプルが、オプティカルフロー方程式に基づいて導出された1つのサンプル洗練化値によって修正される。詳細には、PROFの動作は以下の4つのこととして要約され得る。
【0054】
ステップ1:サブブロックベースのアフィン動き補償は、4パラメータアフィンモデルについては(6)および6パラメータアフィンモデルについては(7)において導出されたサブブロックMVを使用してサブブロック予測I(i,j)を生成するために実施される。
【0055】
ステップ2:各予測サンプルの空間勾配g
x(i,j)およびg
y(i,j)は、
【数8】
として計算される。
【0056】
勾配を計算するために、1つのサブブロックの各側に予測サンプルの1つの追加の行/列が生成されることが必要である。メモリ帯域幅および複雑性を低減するために、延長された境界上のサンプルは、追加の補間プロセスを回避するために参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。
【0057】
ステップ3:ルーマ予測洗練化値は、
【数9】
によって計算され、ここで、Δv(i,j)は、サンプルロケーション(i,j)について算出され、v(i,j)によって示されるピクセルMVと、ピクセル(i,j)があるサブブロックのサブブロックMVとの間の差分である。加えて、現在のPROF設計では、予測洗練化を元の予測サンプルに加算した後、洗練された予測サンプルの値を15ビット以内になるようにクリップするために1つのクリッピング動作が実施され、すなわち、
であり、ここで、I(i,j)およびI
r(i,j)は、それぞれ、ロケーション(i,j)における元の予測サンプルおよび洗練された予測サンプルである。
【0058】
図7は、本開示に係る、アフィンモードのためのPROFプロセスを例示する。
図7は、ブロック710、ブロック720、およびブロック730を含む。ブロック730は、ブロック720を回転させたブロックである。
【0059】
サブブロック中心に対するアフィンモデルパラメータおよびピクセルロケーションはサブブロックによって変化しないので、Δv(i,j)は第1のサブブロックについて計算され、同じCU内の他のサブブロックについて再利用され得る。ΔxおよびΔyを、サンプルロケーション(i,j)からサンプルが属するサブブロックの中心への水平オフセットおよび垂直オフセットとすると、Δv(i,j)は、
【数10】
として導出され得る。
【0060】
アフィンサブブロックMV導出方程式(6)および(7)に基づいて、MV差分Δv(i,j)が導出され得る。具体的には、4パラメータアフィンモデルの場合、
である。
【0061】
6パラメータアフィンモデルの場合、
であり、ここで、(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhはブロックの幅および高さである。既存のPROF設計では、MV差分Δv
xおよびΔv
yは常に1/32ペルの精度で導出される。
【0062】
局所照明補償
局所照明補償(LIC:local illumination compensation)は、時間隣接ピクチャの間に存在する局所照明変化の問題に対処するために使用される符号化ツールである。重みパラメータとオフセットパラメータのペアは、1つの現在のブロックの予測サンプルを取得するために参照サンプルに適用される。一般的な数学モデルは、
【数11】
として与えられ、ここで、P
r[x+v]は動きベクトルvによって示される参照ブロックであり、[α,β]は参照ブロックに対する重みパラメータとオフセットパラメータの対応するペアであり、P[x]は最終的な予測ブロックである。重みパラメータとオフセットパラメータのペアは、現在のブロックのテンプレート(すなわち、隣接する再構成されたサンプル)とテンプレートの参照ブロック(現在のブロックの動きベクトルを使用して導出される)とに基づいて最小線形平均二乗誤差(LLMSE:least linear mean square error)アルゴリズムを使用して推定される。テンプレートサンプルとテンプレートの参照サンプルとの間の平均二乗差を最小限に抑えることによって、αおよびβの数学表現は、次のように導出され得る。
【数12】
ここで、Iはテンプレート内のサンプルの数を表す。P
c[x
i]は現在のブロックのテンプレートのi番目のサンプルであり、P
r[x
i]は動きベクトルvに基づくi番目のテンプレートサンプルの参照サンプルである。
【0063】
予測方向(L0またはL1)ごとに多くても1つの動きベクトルを含む通常のインターブロックに適用されることに加えて、LICはアフィンモード符号化されたブロックにも適用され、ここで、1つの符号化ブロックは複数のより小さいサブブロックにさらにスプリットされ、各サブブロックは異なる動き情報に関連付けられ得る。アフィンモード符号化されたブロックのLICのための参照サンプルを導出するために、
図17Aおよび
図17B(以下で説明される)に示されるように、1つのアフィン符号化ブロックの上のテンプレート内の参照サンプルは、上のサブブロック行内の各サブブロックの動きベクトルを使用してフェッチされるが、左のテンプレート内の参照サンプルは、左のサブブロック列内のサブブロックの動きベクトルを使用してフェッチされる。その後、(12)に示されるものと同じLLMSE導出方法が、複合テンプレートに基づいてLICパラメータを導出するために適用される。
【0064】
図17Aは、本開示に係る、アフィンモードのためのテンプレートサンプルを導出するための例示を示す。この例示は、Cur Frame 1720およびCur CU 1722を含む。Cur Frame 1720は現在のフレームである。Cur CU 1722は現在の符号化ユニットである。
【0065】
図17Bは、アフィンモードのためのテンプレートサンプルを導出するための例示を示す。この例示は、Ref Frame 1740、Col CU 1742、A Ref 1743、B Ref 1744、C Ref 1745、D Ref 1746、 E Ref 1747、F Ref 1748、およびG Ref 1749を含む。Ref Frame 1740は参照フレームである。Col CU 1742はコロケートされた符号化ユニットである。A Ref 1743、B Ref 1744、C Ref 1745、D Ref 174,6 E Ref 1747、F Ref 1748、およびG Ref 1749は参照サンプルである。
【0066】
アフィンモードに対するオプティカルフローによる予測洗練化の非効率性
PROFはアフィンモードの符号化効率を高めることができるが、その設計は依然としてさらに改善される可能性がある。特に、PROFとBDOFの両方がオプティカルフローの概念に基づいて構築されるという事実を考慮すると、PROFがハードウェア実装を容易にするためにBDOFの既存の論理を最大限に活用することができるように、PROFおよびBDOFの設計をできるだけ調和させることが非常に望ましい。そのような考慮に基づいて、現在のPROF設計とBDOF設計との間の相互作用に関する以下の非効率性が本開示において識別される。
【0067】
第1に、「アフィンモードのためのオプティカルフローによる予測洗練化」のセクションにおいて説明されたように、方程式(8)では、勾配の精度は内部ビット深度に基づいて決定される。一方、MV差分、すなわち、ΔvxおよびΔvyは常に1/32ペルの精度で導出される。それに対応して、方程式(9)に基づいて、導出されたPROF洗練化の精度は内部ビット深度に依存する。しかしながら、BDOFと同様に、より高いPROF導出精度を保つために、PROFは中間の高ビット深度(すなわち、16ビット)で予測サンプル値の上で適用される。したがって、内部符号化ビット深度にかかわらず、PROFによって導出された予測洗練化の精度は、中間の予測サンプルの精度、すなわち、16ビットと一致するはずである。言い換えれば、既存のPROF設計におけるMV差分および勾配の表現ビット深度は、予測サンプル精度(すなわち、16ビット)と比較して、正確な予測洗練化を導出するように完璧に適合しない。一方、方程式(1)、(4)、および(8)の比較に基づいて、既存のPROFおよびBDOFは、サンプル勾配およびMV差分を表すために異なる精度を使用する。前に指摘されたように、既存のBDOF論理が再利用され得ないので、そのような非統合設計はハードウェアにとって望ましくない。
【0068】
第2に、「アフィンモードのためのオプティカルフローによる予測洗練化」のセクションにおいて論じられたように、1つの現在のアフィンブロックが双予測されるとき、PROFはリストL0およびL1における予測サンプルに別々に適用され、次いで、拡張されたL0予測信号およびL1予測信号は最終的な双予測信号を生成するために平均される。それどころか、予測方向ごとにPROF洗練化を別々に導出する代わりに、BDOFは予測洗練化を一度に導出し、次いで、予測洗練化は組み合わされたL0およびL1予測信号を拡張するために適用される。
図8および
図9(以下で説明される)は、双予測のための現在のBDOFおよびPROFのワークフローを比較する。実際のコーデック・ハードウェアパイプライン設計では、より多くの符号化ブロックが並行して処理され得るように、通常、異なる主要な符号化/復号モジュールを各パイプラインステージに割り当てる。しかしながら、BDOFワークフローとPROFワークフローとの間の差により、これはBDOFおよびPROFによって共有され得る1つの同じパイプライン設計を有するという困難をもたらすことがあり、このことは実際のコーデック実装にとって好ましくない。
【0069】
図8は、本開示に係る、BDOFのワークフローを示す。ワークフロー800は、L0動き補償810、L1動き補償820、およびBDOF 830を含む。L0動き補償810は、例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャの前の参照ピクチャである。L1動き補償820は、例えば、次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。BDOF 830は、上記で
図4に関して説明されたように、L1動き補償810およびL1動き補償820から動き補償サンプルを取り入れ、予測サンプルを出力する。
【0070】
図9は、本開示に係る、既存のPROFのワークフローを示す。ワークフロー900は、L0動き補償910、L1動き補償920、L0 PROF 930、L1 PROF 940、および平均960を含む。L0動き補償910は、例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャの前の参照ピクチャである。L1動き補償920は、例えば、次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。L0 PROF 930は、上記で
図7に関して説明されたように、L0動き補償910からL0動き補償サンプルを取り入れ、動き洗練化値を出力する。L1 PROF 940は、上記で
図7に関して説明されたように、L1動き補償920からL1動き補償サンプルを取り入れ、動き洗練化値を出力する。平均960は、 L0 PROF 930およびL1 PROF 940の動き洗練化値出力を平均する。
【0071】
第3に、BDOFとPROFの両方について、現在の符号化ブロック内部のサンプルごとに勾配が計算される必要があり、このことは、ブロックの各側に予測サンプルの1つの追加の行/列を生成することを必要とする。サンプル補間の追加の算出複雑性を回避するために、ブロックの周りの拡張領域内の予測サンプルは整数位置において(すなわち、補間なしで)参照サンプルから直接コピーされる。しかしながら、既存の設計によれば、異なるロケーションにおける整数サンプルは、BDOFおよびPROFの勾配値を生成するために選択される。具体的には、勾配計算には、BDOFの場合、予測サンプルの左(水平勾配用)および予測サンプルの上方(垂直勾配用)にある整数参照サンプルが使用され、PROFの場合、予測サンプルに最も近い整数参照サンプルが使用される。ビット深度表現問題と同様に、そのような非統合勾配計算方法も、ハードウェアコーデック実装にとって望ましくない。
【0072】
第4に、前に指摘されたように、PROFの動機は、各サンプルのMVとサンプルが属するサブブロックの中心で導出されたサブブロックMVとの間の小さいMV差分を補償することである。現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、方程式(6)および(7)に示されるように、1つのアフィンブロックのサブブロックMVは制御点MVから導出される。したがって、制御点MVの間の差分が比較的小さいとき、各サンプル位置におけるMVは一貫性があるはずである。そのような場合、PROFを適用する利益は非常に限定され得るので、性能/複雑性のトレードオフを考慮すると、PROFを行う価値がないことがある。
【0073】
アフィンモードのためのオプティカルフローによる予測洗練化の改善
本開示では、ハードウェアコーデック実装を容易にするために既存のPROF設計を改善および簡略化するための方法が提供される。特に、既存のBDOF論理をPROFと最大限に共有するために、BDOFおよびPROFの設計を調和させることに特別な注意が払われる。一般に、本開示における提案される技術の主要な態様は、次のように要約される。
【0074】
第1に、1つのより統合された設計を達成しながらPROFの符号化効率を改善するために、BDOFおよびPROFによって使用されるサンプル勾配およびMV差分の表現ビット深度を統合するための1つの方法が提案される。
【0075】
第2に、ハードウェアパイプライン設計を容易にするために、双予測のためにPROFのワークフローをBDOFのワークフローと調和させることが提案される。具体的には、L0およびL1について予測洗練化を別々に導出する既存のPROFとは異なり、提案される方法は、組み合わされたL0およびL1予測信号に適用される予測洗練化を一度に導出する。
【0076】
第3に、BDOFおよびPROFによって使用される勾配値を計算するために整数参照サンプルの導出を調和させるための2つの方法が提案される。
【0077】
第4に、算出複雑性を低減するために、いくつかの条件が満たされたときにアフィン符号化ブロックに対するPROFプロセスを適応的に無効化するための早期終了方法が提案される。
【0078】
PROF勾配およびMV差分の改善されたビット深度表現設計
「問題の陳述」のセクションにおいて分析されたように、現在のPROFにおけるMV差分およびサンプル勾配の表現ビット深度は、正確な予測洗練化を導出するように整合されていない。さらに、サンプル勾配およびMV差分の表現ビット深度はBDOFとPROFとの間で一貫性がなく、このことはハードウェアにとって好ましくない。このセクションでは、BDOFのビット深度表現方法をPROFに拡張することによって、1つの改善されたビット深度表現方法が提案される。具体的には、提案される方法では、各サンプル位置における水平勾配および垂直勾配は、
【数13】
として計算される。
【0079】
加えて、ΔxおよびΔyを、1つのサンプルロケーションからサンプルが属するサブブロックの中心への、1/4ペル精度で表される水平オフセットおよび垂直オフセットと仮定すると、サンプル位置における対応するPROF MV差分Δv(x,y)は、
【数14】
として導出され、ここで、dMvBitsはBDOFプロセスによって使用される勾配値のビット深度であり、すなわち、dMvBits=max(5,(bitdepth-7))+1である。方程式(13)および(14)では、c、d、e、およびfはアフィン制御点MVに基づいて導出されたアフィンパラメータである。具体的には、4パラメータアフィンモデルの場合、
である。
【0080】
6パラメータアフィンモデルの場合、
であり、ここで、(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は、1/16ペル精度で表される、現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhはブロックの幅および高さである。
【0081】
上記の議論では、方程式(13)および(14)に示されるように、固定された右シフトのペアは、勾配およびMV差分の値を計算するために適用される。実際には、(13)および(14)に適用され得る異なるビット単位の右シフトは、中間の算出精度と内部PROF導出プロセスのビット幅との間の異なるトレードオフに対する勾配およびMV差分の様々な表現精度を達成する。例えば、入力ビデオが多くの雑音を含む場合、導出された勾配は各サンプルにおける真の局所的な水平勾配値/垂直勾配値を表すのに信頼できるものではないことがある。そのような場合、勾配よりも多くのビットを使用してMV差分を表すほうが理にかなっている。一方、入力ビデオが安定した動きを示すとき、アフィンモデルによって導出されたMV差分は非常に小さいはずである。そうである場合、高精度のMV差分を使用することは、導出されたPROF洗練化の精度を高めるという追加の利益をもたらすことができない。言い換えれば、そのような場合、勾配値を表すためにより多くのビットを使用することがより有益である。上記の考慮に基づいて、本開示の1つまたは複数の実施形態では、PROFのための勾配およびMV差分を計算するための1つの一般的な方法が以下で提案される。具体的には、各サンプル位置における水平勾配および垂直勾配がn
a個の右シフトを隣接予測サンプルの差分に適用することによって計算される、すなわち、
【数15】
と仮定すると、サンプル位置における対応するPROF MV差分Δv(x,y)は、
【数16】
として計算されるはずであり、ここで、ΔxおよびΔyは、1つのサンプルロケーションからサンプルが属するサブブロックの中心への、1/4ペル精度で表される水平オフセットおよび垂直オフセットであり、c、d、e、およびfは、1/16ペルのアフィン制御点MVに基づいて導出されたアフィンパラメータである。最終的に、サンプルの最終的なPROF洗練化は、
【数17】
として計算される。
【0082】
別の実施形態では、別のPROFビット深度制御方法が次のように提案される。この方法では、各サンプル位置における水平勾配および垂直勾配は依然として、右シフトのn
aビットを隣接予測サンプルの差分値に適用することによって(13)と同様に計算される。サンプル位置における対応するPROF MV差分Δv(x,y)は、
として計算されるはずである。
【0083】
加えて、全体的なPROF導出を適切な内部ビット深度に保つために、クリッピングが導出されたMV差分に次のように適用される。
ここで、limitは
に等しいしきい値であり、clip3(min,max,x)は[min,max]の範囲の内部の所与の値xをクリップする関数である。1つの例では、n
bの値は2
max(5,bitdepth-7)となるように設定される。最終的に、サンプルのPROF洗練化は、
として計算される。
【0084】
加えて、本開示の1つまたは複数の実施形態では、1つのPROFビット深度制御の解決策が提案される。この方法では、各サンプル位置(i,j)における水平および垂直のPROF動き洗練化が、
として導出される。
【0085】
さらに、導出された水平および垂直の動き洗練化は、
としてクリップされる。
【0086】
ここで、上記で導出された動き洗練化を考慮すると、ロケーション(i,j)における最終的なPROFサンプル洗練化が、
として計算される。
【0087】
本開示の別の実施形態では、別のPROFビット深度制御の解決策が提案される。第2の方法では、サンプル位置(i,j)における水平および垂直のPROF動き洗練化が、
として導出される。
【0088】
次いで、導出された動き洗練化は、
としてクリップされる。
【0089】
したがって、上記で導出された動き洗練化を考慮すると、ロケーション(i,j)における最終的なPROFサンプル洗練化が、
として計算される。
【0090】
本開示の1つまたは複数の実施形態では、解決策における動き洗練化精度制御方法と、第2の解決策におけるPROFサンプル洗練化導出方法とを組み合わせることが提案される。具体的には、この方法によって、各サンプル位置(i,j)における水平および垂直のPROF動き洗練化が、
として導出される。
【0091】
さらに、導出された水平および垂直の動き洗練化は、
としてクリップされる。
【0092】
ここで、上記で導出された動き洗練化を考慮すると、ロケーション(i,j)における最終的なPROFサンプル洗練化が、
として計算される。
【0093】
1つまたは複数の実施形態では、以下のPROFサンプル洗練化導出方法が提案される。
【0094】
第1に、
として示されるように、固定された右シフトを適用することによって、PROFの水平および垂直の動き洗練化を1/32ペルの精度になるように計算する。
【0095】
第2に、計算されたPROF動き洗練化値を1つの対称範囲[-31,31]にクリップする。
【0096】
第3に、サンプルのPROF洗練化が、
として計算される。
【0097】
図10は、PROFのビット深度表現方法を示す。本方法は、例えば、デコーダに適用され得る。
【0098】
ステップ1010において、デコーダは、ビデオ信号内のビデオブロックに関連付けられた参照ピクチャIを取得し得る。
【0099】
ステップ1012において、デコーダは、参照ピクチャI内の参照ブロックからビデオブロックの予測サンプルI(i,j)を取得し得る。iおよびjは、ビデオブロックを有する1つのサンプルの座標を表し得る。
【0100】
ステップ1014において、デコーダは、事前設定された精度を実現するためのビットシフト値に基づいて内部PROFパラメータに右シフトを適用することによって、PROF導出プロセスの内部PROFパラメータを制御し得る。内部PROFパラメータは、予測サンプルI(i,j)に対して導出された水平勾配値、垂直勾配値、水平動き差分値、および垂直動き差分値を含む。
【0101】
ステップ1016において、デコーダは、予測サンプルI(i,j)に基づいてPROF導出プロセスがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための予測洗練化値を取得し得る。
【0102】
ステップ1018において、デコーダは、予測サンプルおよび予測洗練化値の組合せに基づいて、ビデオブロックの予測サンプルを取得し得る。
【0103】
加えて、同じパラメータ導出方法がまた、
vx=sGx2>0 ? Clip3(-31,31,-(sGxdI<<2)>>Floor(Log2(sGx2))):0
vy=sGy2>0 ? Clip3(-31,31,((sGydI<<2)-((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGy2))):0
として例示されるように、BDOFサンプル洗練化プロセスに適用され得る。ここで、sGxdI、sGx2、sGxGym、sGxGys、およびsGy2は、中間BDOF導出パラメータである。
【0104】
図11は、BDOFのビット深度制御方法を示す。本方法は、例えば、デコーダに適用され得る。
【0105】
ステップ1110において、デコーダは、ビデオブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得し得る。表示順序において、第1の参照ピクチャI(0)は現在のピクチャの前にあり、第2の参照ピクチャI(1)は現在のピクチャの後にある。
【0106】
ステップ1112において、デコーダは、第1の参照ピクチャI(0)内の参照ブロックからビデオブロックの第1の予測サンプルI(0)(i,j)を取得し得る。iおよびjは、現在のピクチャを有する1つのサンプルの座標を表し得る。
【0107】
ステップ1114において、デコーダは、第2の参照ピクチャI(1)内の参照ブロックからビデオブロックの第2の予測サンプルI(1)(i,j)を取得し得る。
【0108】
ステップ1116において、デコーダは、内部BDOFパラメータにシフトを適用することによって、BDOF導出プロセスの内部BDOFパラメータを制御し得る。内部BDOFパラメータは、第1の予測サンプルI(0)(i,j)、第2の予測サンプルI(1)(i,j)、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間のサンプル差分、および中間BDOF導出パラメータに基づいて導出された水平勾配値および垂直勾配値を含む。中間BDOF導出パラメータは、sGxdI、sGydI、sGx2、sGxGy、およびsGy2パラメータを含む。sGxdIおよびsGydIは、水平勾配値とサンプル差分値との間および垂直勾配値とサンプル差分値との間の相互相関値を含む。sGx2およびsGy2は、水平勾配値および垂直勾配値の自己相関値を含む。sGxGyは、水平勾配値と垂直勾配値との間の相互相関値を含む。
【0109】
ステップ1118において、デコーダは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてBDOFがビデオブロックに適用されたことに基づいて、ビデオブロック内のサンプルのための動き洗練化を取得し得る。
【0110】
ステップ1120において、デコーダは、動き洗練化に基づいて、ビデオブロックの双予測サンプルを取得し得る。
【0111】
双予測のためのBDOFおよびPROFの調和されたワークフロー
前に論じられたように、1つのアフィン符号化ブロックが双予測されるとき、現在のPROFが一方的に適用される。より具体的には、PROFサンプル洗練化が別々に導出され、リストL0およびL1内の予測サンプルに適用される。その後、それぞれリストL0およびL1からの洗練された予測信号は、ブロックの最終的な双予測信号を生成するために平均される。これは、サンプル洗練化が導出され、双予測信号に適用されるBDOF設計とは対照的である。BDOFおよびPROFの双予測ワークフローの間のそのような差は、実際のコーデック・パイプライン設計にとって好ましくないことがある。
【0112】
ハードウェアパイプライン設計を容易にするために、本開示に係る1つの簡略化方法は、2つの予測洗練化方法のワークフローが調和されるように、PROFの双予測プロセスを修正することである。具体的には、予測方向ごとに洗練化を別々に適用する代わりに、提案されるPROF方法は、リストL0およびL1の制御点MVに基づいて予測洗練化を一度に導出し、次いで、導出された予測洗練化は、品質を高めるために、組み合わされたL0およびL1予測信号に適用される。具体的には、方程式(14)において導出されたMV差分に基づいて、1つのアフィン符号化ブロックの最終的な双予測サンプルは、提案される方法によって、
【数18】
として計算され、ここで、shiftおよびo
offsetは、双予測のためのL0予測信号およびL1予測信号を組み合わせるために適用される右シフト値およびオフセット値であり、それぞれ、(15-bitdepth)および1≪(14-bitdepth)+(2≪13)に等しい。さらに、(18)に示されるように、既存のPROF設計における((9)に示されるような)クリッピング動作は、提案される方法から削除される。
【0113】
図13は、提案される双予測PROF方法が適用されるときの対応するPROFプロセスを示す。PROFプロセス1300は、L0動き補償1310、L1動き補償1320、および双予測PROF 1330を含む。L0動き補償1310は、例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャの前の参照ピクチャである。L1動き補償1320は、例えば、次の参照ピクチャからの動き補償サンプルのリストであり得る。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。双予測PROF 1330は、上記で説明されたように、L1動き補償1310およびL1動き補償1320から動き補償サンプルを取り入れ、双予測サンプルを出力する。
【0114】
ハードウェアパイプライン設計のための提案される方法の潜在的な利益を実証するために、
図14(以下で説明される)は、BDOFと提案されるPROFの両方が適用されるときのパイプラインステージを例示するための1つの例を示す。
図14では、1つのインターブロックの復号プロセスは主に3つのことを含む。
【0115】
第1に、符号化ブロックのMVを解析/復号し、参照サンプルをフェッチする。
【0116】
第2に、符号化ブロックのL0予測信号および/またはL1予測信号を生成する。
【0117】
第3に、符号化ブロックが1つの非アフィンモードによって予測されるときにはBDOFまたは符号化ブロックがアフィンモードによって予測されるときにはPROFに基づいて、生成された双予測サンプルのサンプル単位の洗練化を実施する。
【0118】
図14は、本開示に係る、BDOFと提案されるPROFの両方が適用されるときの例示的なパイプラインステージの例示を示す。
図14は、ハードウェアパイプライン設計のための提案される方法の潜在的な利益を実証する。パイプラインステージ1400は、MVを解析/復号し、参照サンプルをフェッチする1410、動き補償1420、BDOF/PROF 1430を含む。パイプラインステージ1400は、ビデオブロックBLK0、BKL1、BKL2、BKL3、およびBLK4を符号化する。各ビデオブロックは、MVを解析/復号し、参照サンプルをフェッチする1410において開始し、動き補償1420、次いで、動き補償1420、BDOF/PROF 1430に逐次的に移動する。これは、BLK0が動き補償1420に移動するまで、BLK0がパイプラインステージ1400においてプロセスを開始しないことを意味する。時間がT0からT1、T2、T3、およびT4に経過するとき、全てのステージおよびビデオブロックについて同じである。
【0119】
図14に示されるように、提案される調和方法が適用された後、BDOFとPROFの両方が双予測サンプルに直接適用される。BDOFおよびPROFが異なるタイプの符号化ブロックに適用される(すなわち、BDOFが非アフィンブロックに適用され、PROFがアフィンブロックに適用される)ことを考えると、2つの符号化ツールは同時に呼び出されることができない。したがって、それらの対応する復号プロセスは、同じパイプラインステージを共有することによって実施され得る。これは、双予測の異なるワークフローのせいでBDOFとPROFの両方に同じパイプラインステージを割り当てることが難しい既存のPROF設計よりも効率的である。
【0120】
上記の議論では、提案される方法はBDOFおよびPROFのワークフローの調和のみを考慮している。しかしながら、既存の設計によれば、2つの符号化ツールの基本的な動作単位も異なるサイズで実施される。例えば、BDOFの場合、1つの符号化ブロックはWs×Hsのサイズを有する複数のサブブロックにスプリットされ、ただし、Ws=min(W,16)およびHs=min(H,16)であり、ここで、WおよびHは符号化ブロックの幅および高さである。勾配計算およびサンプル洗練化導出などのBDOF動作は、サブブロックごとに独立して実施される。一方、前に説明されたように、アフィン符号化ブロックは4×4サブブロックに分割され、各サブブロックは4パラメータアフィンモデルまたは6パラメータアフィンモデルのいずれかに基づいて導出された1つの個々のMVを割り当てられる。PROFはアフィンブロックのみに適用されるので、その基本的な動作単位は4×4サブブロックである。双予測ワークフロー問題と同様に、BDOFとは異なる基本的な動作単位サイズをPROFに使用することも、ハードウェア実装にとって好ましくなく、BDOFおよびPROFが全体的な復号プロセスの同じパイプラインステージを共有することを困難にする。そのような問題を解決するために、1つまたは複数の実施形態では、アフィンモードのサブブロックサイズをBDOFのサブブロックサイズと同じになるように調節することが提案される。例えば、提案される方法によれば、1つの符号化ブロックがアフィンモードによって符号化される場合、1つの符号化ブロックはWs×Hsのサイズを有するサブブロックにスプリットされ、ただし、Ws=min(W,16)およびHs=min(H,16)であり、ここで、WおよびHは符号化ブロックの幅および高さである。各サブブロックは、1つの個々のMVを割り当てられ、1つの独立したPROF動作単位と見なされる。独立したPROF動作単位が、その上でのPROF動作が隣接するPROF動作単位からの情報を参照することなしに実施されることを保証するということは、言及するに値する。例えば、1つのサンプル位置におけるPROF MV差分は、サンプル位置におけるMVとサンプルがあるPROF動作単位の中心におけるMVとの間の差分として計算され、PROF導出によって使用される勾配は、各PROF動作単位に沿ってサンプルをパディングすることによって計算される。提案される方法の断言される利益は、主に以下の態様、すなわち、1)動き補償とBDOF/PROF洗練化の両方のための統合された基本的な動作単位サイズを有する簡略化されたパイプライン・アーキテクチャ、2)アフィン動き補償のための拡大されたサブブロックサイズによる低減されたメモリ帯域幅使用、3)分数サンプル補間の低減されたサンプルごとの算出複雑性を含む。
【0121】
提案される方法による低減された算出複雑性(すなわち、項目3))により、アフィン符号化ブロックに対する既存の6タップ補間フィルタ制約が取り除かれ得ることも言及されるべきである。その代わりに、非アフィン符号化ブロックに対するデフォルトの8タップ補間がアフィン符号化ブロックにも使用される。この場合の全体的な算出複雑性は、依然として、(6タップ補間フィルタを用いた4×4サブブロックに基づく)既存のPROF設計に比肩することができる。
【0122】
BDOFおよびPROFのための勾配導出の調和
前に説明されたように、BDOFとPROFの両方は現在の符号化ブロック内部の各サンプルの勾配を計算し、このことはブロックの各側の予測サンプルの1つの追加の行/列にアクセスする。追加の補間複雑性を回避するために、ブロック境界の周りの拡張領域内の必要とされる予測サンプルは、整数参照サンプルから直接コピーされる。しかしながら、「問題の陳述」のセクションにおいて指摘されたように、異なるロケーションにおける整数サンプルは、BDOFおよびPROFの勾配値を計算するために使用される。
【0123】
1つのより統一的な設計を達成するために、BDOFおよびPROFによって使用される勾配導出方法を統合するための2つの方法が以下で提案される。第1の方法では、PROFの勾配導出方法をBDOFの勾配導出方法と同じになるように調節することが提案される。例えば、第1の方法によって、拡張領域内の予測サンプルを生成するために使用される整数位置は、分数サンプル位置をフロアダウンすることによって決定される、すなわち、選択された整数サンプル位置は、分数サンプル位置の左(水平勾配の場合)かつ分数サンプル位置の上(垂直勾配の場合)にある。
【0124】
第2の方法では、BDOFの勾配導出方法をPROFの勾配導出方法と同じになるように調節することが提案される。より詳細には、第2の方法が適用されるとき、予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。
【0125】
図15は、本開示に係る、BDOFの勾配導出方法を使用する一例を示す。
図15では、空白円1510は整数位置における参照サンプルを表し、三角1530は現在のブロックの分数予測サンプルを表し、黒色の円1520は現在のブロックの拡張領域を満たすために使用した整数参照サンプルを表す。
【0126】
図16は、本開示に係る、PROFの勾配導出方法を使用する一例を示す。
図16では、空白円1610は整数位置における参照サンプルを表し、三角1630は現在のブロックの分数予測サンプルを表し、黒色の円1620は現在のブロックの拡張領域を満たすために使用した整数参照サンプルを表す。
【0127】
図15および
図16は、それぞれ、第1の方法(
図15)および第2の方法(
図16)が適用されるときのBDOFおよびPROFのための勾配の導出に使用される、対応する整数サンプルロケーションを例示する。
図15および
図16では、空白円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、模様円は勾配導出のために現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0128】
加えて、既存のBDOF設計およびPROF設計によれば、予測サンプルパディングは異なる符号化レベルで実施される。例えば、BDOFの場合、パディングはsbWidth×sbHeightサブブロックの境界に沿って適用され、ただし、sbWidth=min(CUWidth,16)およびsbHeight=min(CUHeight,16)である。CUWidthおよびCUHeightは1つのCUの幅および高さである。一方、PROFのパディングは常に4×4サブブロックレベルで適用される。上記の議論では、パディング方法のみがBDOFとPROFとの間で統合されるが、パディングサブブロックサイズは依然として異なる。BDOFおよびPROFのパディングプロセスのために異なるモジュールが実装されることを必要とすることを考えると、これも実際のハードウェア実装にとって好ましくない。1つのより統合された設計を達成するために、BDOFおよびPROFのサブブロックパディングサイズを統合することが提案される。本開示の1つまたは複数の実施形態では、4×4レベルでBDOFの予測サンプルパディングを適用することが提案される。例えば、この方法によって、CUは最初に複数の4×4サブブロックに分割され、各4×4サブブロックの動き補償の後、上/下および左/右の境界に沿った拡張サンプルは、対応する整数サンプル位置をコピーすることによってパディングされる。
【0129】
図19A、
図19B、
図19C、および
図19Dは、提案されるパディング方法が1つの16×16 BDOF CUに適用される1つの例を例示し、ここで、破線は4×4サブブロック境界を表し、青色の帯は各4×4サブブロックのパディングされたサンプルを表す。
【0130】
図19Aは、本開示に係る16×16 BDOF CUに適用される提案されるパディング方法を示し、ここで、破線は左上の4×4サブブロック境界1920を表す。
【0131】
図19Bは、本開示に係る16×16 BDOF CUに適用される提案されるパディング方法を示し、ここで、破線は右上の4×4サブブロック境界1940を表す。
【0132】
図19Cは、本開示に係る16×16 BDOF CUに適用される提案されるパディング方法を示し、ここで、破線は左下の4×4サブブロック境界1960を表す。
【0133】
図19Dは、本開示に係る、16×16 BDOF CUに適用される提案されるパディング方法を示し、ここで、破線は右下の4×4サブブロック境界1980を表す。
【0134】
BDOF、PROF、およびDMVRを有効化/無効化するための高レベルシグナリングシンタックス
既存のBDOF設計およびPROF設計では、2つの符号化ツールの有効化/無効化を別々に制御するために、シーケンスパラメータセット(SPS)において2つの異なるフラグがシグナリングされる。しかしながら、BDOFとPROFとの間の類似性により、1つの同じ制御フラグによって高レベルからBDOFおよびPROFを有効化および/または無効化することがより望ましい。そのような考慮に基づいて、テーブル1に示されるように、sps_bdof_prof_enabled_flagと呼ばれる1つの新しいフラグがSPSに導入される。テーブル1に示されるように、BDOFの有効化および無効化はsps_bdof_prof_enabled_flagのみに依存する。フラグが1に等しいとき、シーケンス内のビデオ・コンテンツを符号化するためにBDOFが有効化される。さもなければ、sps_bdof_prof_enabled_flagが0に等しいとき、BDOFは適用されない。一方、sps_bdof_prof_enabled_flagに加えて、SPSレベル・アフィン制御フラグ、すなわち、sps_affine_enabled_flagも、PROFを条件付きで有効化および無効化するために使用される。フラグsps_bdof_prof_enabled_flagとsps_affine_enabled_flagの両方が1に等しいとき、アフィンモードで符号化される全ての符号化ブロックに対してPROFが有効化される。フラグsps_bdof_prof_enabled_flagが1に等しく、sps_affine_enabled_flagが0に等しいとき、PROFが無効化される。
【表1】
【0135】
sps_bdof_prof_enabled_flagは、双方向オプティカルフローおよびオプティカルフローによる予測洗練化が有効化されるか否かを指定する。sps_bdof_prof_enabled_flagが0に等しいとき、双方向オプティカルフローとオプティカルフローによる予測洗練化の両方が無効化される。sps_bdof_prof_enabled_flagが1に等しく、sps_affine_enabled_flagが1に等しいとき、双方向オプティカルフローとオプティカルフローによる予測洗練化の両方が有効化される。さもなければ(sps_bdof_prof_enabled_flagが1に等しく、sps_affine_enabled_flagが0に等しい)、双方向オプティカルフローが有効化され、オプティカルフローによる予測洗練化が無効化される。
【0136】
sps_bdof_prof_dmvr_slice_preset_flagは、フラグslice_disable_bdof_prof_dmvr_flagがスライスレベルでシグナリングされるときを指定する。フラグが1に等しいとき、シンタックスslice_disable_bdof_prof_dmvr_flagは、現在のシーケンスパラメータセットを参照するスライスごとにシグナリングされる。さもなければ(sps_bdof_prof_dmvr_slice_present_flagが0に等しいとき)、シンタックスslice_disabled_bdof_prof_dmvr_flagはスライスレベルでシグナリングされない。このフラグがシグナリングされないとき、このフラグは0であると推測される。
【0137】
さらに、提案されるSPSレベルBDOFおよびPROF制御フラグが使用されるとき、一般制約情報シンタックス内の対応する制御フラグno_bdof_constraint_flagはまた、下表によって修正されるべきである。
【表2】
【0138】
1に等しいno_bdof_prof_constraint_flagは、sps_bdof_prof_enabled_flagが0に等しいことを指定する。0に等しいno_bdof_constraint_flagは、制約を課さない。
【0139】
上記のSPS BDOF/PROFシンタックスに加えて、別の制御フラグをスライスレベルで導入することが提案され、すなわちBDOF、PROF、およびDMVRを無効化するために、slice_disable_bdof_prof_dmvr_flagが導入される。DMVRまたはBDOF/PROFのspsレベル制御フラグのいずれかが真であるときにSPSにおいてシグナリングされるSPSフラグsps_bdof_prof_dmvr_slice_present_flagが、slice_disable_bdof_prof_dmvr_flagの存在を示すために使用される。存在する場合、slice_disable_bdof_dmvr_flagがシグナリングされる。テーブル2は、提案されるシンタックスが適用された後の修正されたスライスヘッダシンタックステーブルを例示する。別の実施形態では、BDOFおよびDMVRの有効化/無効化、ならびにPROFの有効化/無効化を別々に制御するために、スライスヘッダにおいて2つの制御フラグを依然として使用することが提案される。例えば、この方法によって、スライスヘッダにおいて2つのフラグが使用される。一方のフラグslice_disable_bdof_dmvr_slice_flagは、BDOFおよびDMVRのオン/オフを制御するために使用され、他方のフラグdisable_prof_slice_flagは、PROFのオン/オフを単独で制御するために使用される。
【表3】
【0140】
別の実施形態では、2つの異なるSPSフラグによってBDOFおよびPROFを別々に制御することが提案される。例えば、2つのツールを別々に有効化/無効化するために、2つの別々のSPSフラグsps_bdof_enable_flagおよびsps_prof_enable_flagが導入される。加えて、PROFツールを強制的に無効化するために、general_constrain_info()シンタックステーブル内に1つの高レベル制御フラグno_prof_constraint_flagを追加する必要がある。
【表4】
【0141】
sps_bdof_enabled_flagは、双方向オプティカルフローが有効化されるか否かを指定する。sps_bdof_enabled_flagが0に等しいとき、双方向オプティカルフローは無効化される。sps_bdof_enabled_flagが1に等しいとき、双方向オプティカルフローは有効化される。
【0142】
sps_prof_enabled_flagは、オプティカルフローによる予測洗練化が有効化されるか否かを指定する。sps_prof_enabled_flagが0に等しいとき、オプティカルフローによる予測洗練化は無効化される。sps_prof_enabled_flagが1に等しいとき、オプティカルフローによる予測洗練化は有効化される。
【表5】
【0143】
1に等しいno_prof_constraint_flagは、sps_prof_enabled_flagが0に等しいことを指定する。0に等しいno_prof_constraint_flagは、制約を課さない。
【0144】
スライスレベルにおいて、本開示の1つまたは複数の実施形態では、別の制御フラグをスライスレベルで導入することが提案され、すなわちBDOF、PROF、およびDMVRをともに無効化するために、slice_disable_bdof_prof_dmvr_flagが導入される。別の実施形態では、2つの別々のフラグ、すなわちslice_disable_bdof_dmvr_flagおよびslice_disable_prof_flagをスライスレベルで追加することが提案される。第1のフラグ(すなわち、slice_disable_bdof_dmvr_flag)は、1つのスライスに対してBDOFおよびDMVRのオン/オフを適応的に切り換えるために使用され、第2のフラグ(すなわち、slice_disable_prof_flag)は、PROFツールの有効化および無効化をスライスレベルで制御するために使用される。加えて、第2の方法が適用されるとき、フラグslice_disable_bdof_dmvr_flagは、SPS BDOFまたはSPS DMVRフラグのいずれかが有効化されるときのみシグナリングされる必要があり、フラグは、SPS PROFフラグが有効化されるときのみシグナリングされる必要がある。
【0145】
第16回JVET会合において、VVC草案にピクチャヘッダが採用された。ピクチャヘッダは、1スライスにつき1回ずつシグナリングされ、シンタックス要素は、以前よりスライスヘッダ内に存在し、スライスごとに変化しない。
【0146】
採用されたピクチャヘッダに基づいて、本開示の1つまたは複数の実施形態では、現在のスライスヘッダからピクチャヘッダへBDOF、DMVR、およびPROF制御フラグを制御することが提案される。例えば、提案される方法では、3つの異なる制御フラグsps_dmvr_picture_header_present_flag、sps_bdof_picture_header_present_flag、およびsps_prof_picture_header_present_flagが、SPS内でシグナリングされる。3つのフラグのうちの1つが真としてシグナリングされるとき、ピクチャヘッダを参照するスライスに対して対応するツール(すなわち、DMVR、BDOF、およびPROF)が有効化または無効化されることを示すために、1つの追加の制御フラグがピクチャヘッダ内でシグナリングされる。提案されるシンタックス要素は、次のように指定される。
【表6】
【0147】
sps_dmvr_picture_header_preset_flagは、フラグpicture_disable_dmvr_flagがピクチャヘッダでシグナリングされるかどうかを指定する。フラグが1に等しいとき、シンタックスpicture_disable_dmvr_flagは、現在のシーケンスパラメータセットを参照するピクチャごとにシグナリングされる。さもなければ、シンタックスpicture_disable_dmvr_flagは、ピクチャヘッダでシグナリングされない。このフラグがシグナリングされないとき、このフラグは0であると推測される。
【0148】
sps_bdof_picture_header_preset_flagは、フラグpicture_disable_bdof_flagがピクチャヘッダでシグナリングされるかどうかを指定する。フラグが1に等しいとき、シンタックスpicture_disable_bdof_flagは、現在のシーケンスパラメータセットを参照するピクチャごとにシグナリングされる。さもなければ、シンタックスpicture_disable_bdof_flagは、ピクチャヘッダでシグナリングされない。このフラグがシグナリングされないとき、このフラグは0であると推測される。
【0149】
sps_prof_picture_header_preset_flagは、フラグpicture_disable_prof_flagがピクチャヘッダでシグナリングされるかどうかを指定する。フラグが1に等しいとき、シンタックスpicture_disable_prof_flagは、現在のシーケンスパラメータセットを参照するピクチャごとにシグナリングされる。さもなければ、シンタックスpicture_disable_prof_flagは、ピクチャヘッダでシグナリングされない。このフラグがシグナリングされないとき、このフラグは0であると推測される。
【表7】
【0150】
picture_disable_dmvr_flagは、dmvrツールが現在のピクチャヘッダを参照するスライスに対して有効化されるかどうかを指定する。フラグが1に等しいとき、dmvrツールは、現在のピクチャヘッダを参照するスライスに対して有効化される。さもなければ、dmvrツールは、現在のピクチャヘッダを参照するスライスに対して無効化される。このフラグが存在しないとき、このフラグは0であると推論される。
【0151】
picture_disable_bdof_flagは、bdofツールが現在のピクチャヘッダを参照するスライスに対して有効化されるかどうかを指定する。フラグが1に等しいとき、bdofツールは、現在のピクチャヘッダを参照するスライスに対して有効化される。さもなければ、bdofツールは、現在のピクチャヘッダを参照するスライスに対して無効化される。
【0152】
picture_disable_prof_flagは、profツールが現在のピクチャヘッダを参照するスライスに対して有効化されるかどうかを指定する。フラグが1に等しいとき、profツールは、現在のピクチャヘッダを参照するスライスに対して有効化される。さもなければ、profツールは、現在のピクチャヘッダを参照するスライスに対して無効化される。
【0153】
図12は、BDOF、PROF、およびDMVRの方法を示す。本方法は、例えば、デコーダに適用され得る。
【0154】
ステップ1210において、デコーダは、シーケンスパラメータセット(SPS)内の3つの制御フラグを受信し得る。第1の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにBDOFが有効化されるかどうかを示す。第2の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにPROFが有効化されるかどうかを示す。第3の制御フラグは、現在のビデオシーケンス内のビデオブロックを復号するためにDMVRが有効化されるかどうかを示す。
【0155】
ステップ1212において、デコーダは、第1の制御フラグが真であるときにSPS内の第1のプレゼンスフラグ、第2の制御フラグが真であるときにSPS内の第2のプレゼンスフラグ、および第3の制御フラグが真であるときにSPS内の第3のプレゼンスフラグを受信し得る。
【0156】
ステップ1214において、デコーダは、SPS内の第1のプレゼンスフラグが、ピクチャ内のビデオブロックに対してBDOFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第1のピクチャ制御フラグを受信し得る。
【0157】
ステップ1216において、デコーダは、SPS内の第2のプレゼンスフラグが、ピクチャ内のビデオブロックに対してPROFが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第2のピクチャ制御フラグを受信し得る。
【0158】
ステップ1218において、デコーダは、SPS内の第3のプレゼンスフラグが、ピクチャ内のビデオブロックに対してDMVRが無効化されることを示すとき、各ピクチャのピクチャヘッダ内の第3のピクチャ制御フラグを受信し得る。
【0159】
制御点MV差分に基づくPROFの早期終了
現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、方程式(6)および(7)に示されるように、1つのアフィンブロックのサブブロックMVは制御点MVから導出される。したがって、制御点MVの間の差分が比較的小さいとき、各サンプル位置におけるMVは一貫性があるはずである。そのような場合、PROFを適用する利益は非常に限定され得る。したがって、PROFの平均的な算出複雑性をさらに低減するために、1つの4×4サブブロック内のサンプル単位のMVとサブブロック単位のMVとの間の最大MV差分に基づいてPROFベースのサンプル洗練化を適応的にスキップすることが提案される。1つの4×4サブブロック内部のサンプルのPROF MV差分の値はサブブロック中心に対して対称であるので、最大の水平および垂直PROF MV差分は方程式(10)に基づいて
【数19】
として計算され得る。
【0160】
本開示によれば、MV差分がPROFプロセスをスキップするのに十分なほど小さいかどうかを決定する際に、異なるメトリックが使用され得る。
【0161】
1つの例では、方程式(19)に基づいて、絶対最大水平MV差分と絶対最大垂直MV差分の和が1つの事前に定義されたしきい値未満である、すなわち、
【数20】
であるときにPROFプロセスがスキップされ得る。
【0162】
別の例では、
の最大値がしきい値以下である場合、PROFプロセスがスキップされ得る。
【数21】
ここで、MAX(a,b)は、入力値aと入力値bとの間の大きいほうの値を返す関数である。
【0163】
上記2つの例に加えて、本開示の趣旨は、MV差分がPROFプロセスをスキップするのに十分なほど小さいかどうかを決定する際に他のメトリックが使用される場合にも適用可能である。
【0164】
上記の方法では、PROFはMV差分の大きさに基づいてスキップされる。一方、MV差分に加えて、PROFサンプル洗練化も、1つの動き補償ブロック内の各サンプルロケーションにおける局所的な勾配情報に基づいて計算される。あまり高頻度ではない詳細(例えば、平坦なエリア)を含む予測ブロックの場合、勾配値が小さくなる傾向があり、その結果として、導出されたサンプル洗練化の値が小さくなるはずである。これを考慮に入れて、別の実施形態によれば、PROFを十分な高頻度の情報を含むブロックの予測サンプルのみに適用することが提案される。
【0165】
ブロックのためにPROFプロセスが呼び出される価値があるように、そのブロックが十分な高頻度の情報を含むかどうかを決定する際に、異なるメトリックが使用され得る。1つの例では、予測ブロック内のサンプルの勾配の平均の大きさ(すなわち、絶対値)に基づいて決定が行われる。平均の大きさが1つのしきい値よりも小さい場合、予測ブロックは平坦なエリアに分類され、PROFは適用されるべきではない。さもなければ、予測ブロックは、PROFが依然として適用可能である十分な高頻度の詳細を含むと見なされる。別の例では、予測ブロック内のサンプルの勾配の最大の大きさが使用され得る。最大の大きさが1つのしきい値よりも小さい場合、ブロックに対してPROFがスキップされるべきである。さらに別の例では、予測ブロックの最大サンプル値と最小サンプル値との間の差分Imax-Iminが、PROFがブロックに適用されるべきであるかどうかを決定するために使用され得る。そのような差分値がしきい値未満である場合、ブロックに対してPROFがスキップされるべきである。所与のブロックが十分な高頻度の情報を含むか否かを決定する際に何らかの他のメトリックが使用される場合にも本開示の趣旨が適用可能であることは注目に値する。
【0166】
アフィンモードのためのPROFとLICとの間の相互作用を処理
現在のブロックの隣接する再構成されたサンプル(すなわち、テンプレート)は線形モデルパラメータを導出するためにLICによって使用されるので、1つのLIC符号化ブロックの復号は、その隣接サンプルの完全な再構成に依存する。そのような相互依存性により、実際のハードウェア実装の場合、LICは、隣接する再構成されたサンプルがLICパラメータ導出のために利用可能になる再構成ステージにおいて実施される必要がある。ブロック再構成は逐次的に(すなわち、1つずつ)実施されなければならないので、スループット(すなわち、並行して行われ得る単位時間当たりの作業の量)は、他の符号化方法をLIC符号化ブロックに一緒に適用するときに考慮すべき1つの重要な問題である。このセクションでは、アフィンモードに対してPROFとLICの両方が有効化されるときの相互作用を処理するための2つの方法が提案される。
【0167】
本開示の第1の実施形態では、1つのアフィン符号化ブロックに対してPROFモードおよびLICモードを排他的に適用することが提案される。前に論じられたように、既存の設計では、LICモードが1つのアフィンブロックに適用されるか否かを示すために1つのLICフラグが符号化ブロックレベルでシグナリングされるかまたは継承される間に、全てのアフィンブロックに対してPROFがシグナリングすることなしに暗黙的に適用される。本開示における方法によれば、1つのアフィンブロックのLICフラグの値に基づいてPROFを条件付きで適用することが提案される。フラグが1に等しいとき、LIC重みおよびオフセットに基づいて符号化ブロック全体の予測サンプルを調整することによってLICのみが適用される。さもなければ(すなわち、LICフラグが0に等しい)、オプティカルフローモデルに基づいて各サブブロックの予測サンプルを洗練するために、PROFがアフィン符号化ブロックに適用される。
【0168】
図18Aは、PROFおよびLICが同時に適用されることが許可されない提案される方法に基づく復号プロセスの1つの例示的なフローチャートを例示する。
【0169】
図18Aは、本開示に係る、PROFおよびLICが許可されない提案される方法に基づく復号プロセスの例示を示す。復号プロセス1820は、決定ステップ1822、LIC 1824、およびPROF 1826を含む。決定ステップ1822は、LICフラグがオンかどうかを決定することであり、その決定に従って次のことが取られる。LIC 1824は、LICフラグが設定されている場合のLICの適用である。PROF 1826は、LICフラグが設定されていない場合のPROFの適用である。
【0170】
本開示の第2の実施形態では、1つのアフィンブロックの予測サンプルを生成するためにPROFの後にLICを適用することが提案される。例えば、サブブロックベースのアフィン動き補償が行われた後、PROFサンプル洗練化に基づいて予測サンプルが洗練され、次いで、LICは、
【数22】
として例示されるように、ブロックの最終的な予測サンプルを取得するために(テンプレートおよびその参照サンプルから導出された)重みおよびオフセットのペアをPROF調整された予測サンプルに適用することによって実施され、ここで、P
r[x+v]は動きベクトルvによって示される現在のブロックの参照ブロックであり、αおよびβはLIC重みおよびオフセットであり、P[x]は最終的な予測ブロックであり、ΔI[x]は(15)において導出されたPROF洗練化である。
【0171】
図18Bは、本開示に係る、PROFおよびLICが適用される復号プロセスの例示を示す。復号プロセス1860は、アフィン動き補償1862、LICパラメータ導出1864、PROF 1866、およびLICサンプル調整1868を含む。アフィン動き補償1862はアフィン動きを適用し、LICパラメータ導出1864およびPROF 1866への入力である。LICパラメータ導出1864は、LICパラメータを導出するために適用される。PROF 1866は、適用されているPROFである。LICサンプル調整1868は、PROFと組み合わされているLIC重みパラメータおよびオフセットパラメータである。
【0172】
図18Bは、第2の方法が適用されるときの例示的な復号ワークフローを例示する。
図18Bに示されるように、LICはLIC線形モデルを計算するためにテンプレート(すなわち、隣接する再構成されたサンプル)を使用するので、LICパラメータは、隣接する再構成されたサンプルが利用可能になるとすぐに導出され得る。これは、PROF洗練化およびLICパラメータ導出が同時に実施され得ることを意味する。
【0173】
LIC重みおよびオフセット(すなわち、αおよびβ)ならびにPROF洗練化(すなわち、ΔI[x])は一般に浮動小数点である。好ましいハードウェア実装の場合、それらの浮動小数点演算は通常、いくつかのビットによる右シフト演算が後に続く、1つの整数値との乗算として実装される。既存のLICおよびPROF設計では、2つのツールが別々に設計されているので、それぞれNLICビットおよびNPROFビットによる2つの異なる右シフトは2つのステージにおいて適用される。
【0174】
第3の実施形態によれば、PROFおよびLICがアフィン符号化ブロックに一緒に適用される場合の符号化利得を改善するために、LICベースのサンプル調整およびPROFベースのサンプル調整を高精度で適用することが提案される。これは、それらの2つの右シフト演算を1つに組み合わせ、それを最後に適用して現在のブロックの((12)に示されるような)最終的な予測サンプルを導出することによって行われる。
【0175】
加重予測によるPROFおよびCUレベルの重みによる双予測(BCW)を組み合わせたときの乗算オーバーフロー問題への対処
VVC作業草案における現在のPROF設計によれば、PROFは、加重予測(WP)と一緒に適用され得る。例えば、これらが組み合わされたとき、1つのアフィンCUの予測信号が、以下の手順によって生成される。
【0176】
第1に、位置(x,y)におけるサンプルごとに、PROFに基づいてL0予測洗練化ΔI
0(x,y)を計算して、元のL0予測サンプルI
0(x,y)に洗練化を追加し、すなわち、
【数23】
であり、ここで、I
0’(x,y)は、洗練されたサンプルであり、g
h0(x,y)およびg
v0(x,y)、ならびにΔv
x0(x,y)およびΔv
y0(x,y)は、位置(x,y)におけるL0水平/垂直勾配およびL0水平/垂直動き洗練化である。
【0177】
第2に、位置(x,y)におけるサンプルごとに、PROFに基づいてL1予測洗練化ΔI
1(x,y)を計算して、元のL1予測サンプルI
1(x,y)に洗練化を追加し、すなわち、
【数24】
であり、ここで、I
1’(x,y)は、洗練されたサンプルであり、g
h1(x,y)およびg
v1(x,y)、ならびにΔv
x1(x,y)およびΔv
y1(x,y)は、位置(x,y)におけるL1水平/垂直勾配およびL1水平/垂直動き洗練化である。
【0178】
第3に、洗練されたL0およびL1予測サンプルを組み合わせ、すなわち、
【数25】
であり、ここで、W
0およびW
1は、WPおよびBCW重みであり、shiftおよびOffsetは、WPおよびBCWに対する双予測のためのL0およびL1予測信号の加重平均に適用されるオフセットおよび右シフトである。ここで、WPに対するパラメータは、W
0およびW
1ならびにOffsetを含み、BCWに対するパラメータは、W
0およびW
1ならびにshiftを含む。
【0179】
上記の方程式から分かるように、サンプルごとの洗練化、すなわちΔI0(x,y)およびΔI1(x,y)により、PROF後の予測サンプル(すなわち、I0’(x,y)およびI1’(x,y))は、元の予測サンプル(すなわち、I0(x,y)およびI1(x,y))より増大した1つのダイナミックレンジを有する。洗練された予測サンプルにWPおよびBCW重み係数が掛けられることを考慮すると、これにより、必要とされる乗数の長さが増大する。例えば、現在の設計に基づいて、内部符号化ビット深度が8~12ビットの範囲であるとき、予測信号I0(x,y)およびI1(x,y)のダイナミックレンジは16ビットである。しかし、PROF後、予測信号I0’(x,y)およびI1’(x,y)のダイナミックレンジは17ビットになる。したがって、PROFが適用されるとき、場合により16ビット乗算オーバーフローの問題が生じる可能性がある。そのようなオーバーフローの課題を修正するために、以下に複数の方法が提案される。
【0180】
第1に、第1の方法において、PROFが1つのアフィンCUに適用されるとき、WPおよびBCWを無効化することが提案される。
【0181】
第2に、第2の方法において、洗練された予測サンプルI
0’(x,y)およびI
1’(x,y))のダイナミックレンジが、元の予測サンプルI
0(x,y)およびI
1(x,y)のものと同じ動的ビット深度を有するように、元の予測サンプルに追加する前に、導出されたサンプル洗練化に1つのクリップ動作を適用することが提案される。例えば、そのような方法によって、(23)および(24)内のサンプル洗練化ΔI
0(x,y)およびΔI
1(x,y)が、
として表されるように、1つのクリップ動作を導入することによって修正され、ここで、dI=dI
base+max(0,BD-12)であり、ここで、BDは内部符号化ビット深度であり、dI
baseはベースビット深度値である。1つまたは複数の実施形態では、dI
baseの値を14に設定することが提案される。別の実施形態では、この値を13に設定することが提案される。別の実施形態では、dIの値が固定されるように直接設定することが提案される。一例では、dIの値を13に設定することが提案され、すなわちサンプル洗練化は、範囲[-4096,4095]にクリップされる。別の例では、dIの値が14に設定されることが提案され、すなわちサンプル洗練化は、範囲[-8192,8191]にクリップされる。
【0182】
第1に、第3の方法において、洗練されたサンプルが元の予測サンプルのものと同じダイナミックレンジを有するように、サンプル洗練化をクリップする代わりに、洗練された予測サンプルを直接クリップすることが提案される。例えば、第3の方法によって、洗練されたL0およびL1サンプルは、
になり、ここで、dR=16+max(0,BD-12)(または同等にmax(16,BD+4))であり、ここで、BDは内部符号化ビット深度である。
【0183】
第2に、第4の方法において、WPおよびBCWの前に、洗練されたL0およびL1予測サンプルに特定の右シフトを適用することが提案され、次いで、追加の左シフトによって、最終的な予測サンプルが元の精度に調整される。例えば、最終的な予測サンプルは、
として導出され、ここで、nbは、PROFサンプル洗練化の対応するダイナミックレンジに基づいて判定され得る適用される追加のビットシフトの数である。
【0184】
第3に、第5の方法において、L0/L1予測サンプルの各乗算を(25)内の対応するWP/BCW重みによって2つの乗算に分割することが提案され、2つの乗算はどちらも、
として記述されるように、16ビットを超えない。
【0185】
図20は、ユーザインターフェース2060と結合されたコンピューティング環境2010を示す。コンピューティング環境2010は、データ処理サーバの一部であり得る。コンピューティング環境2010は、プロセッサ2020、メモリ2040、およびI/Oインターフェース2050を含む。
【0186】
プロセッサ2020は、典型的には、表示、データ獲得、データ通信、および画像処理に関連付けられた動作などの、コンピューティング環境2010の全体的な動作を制御する。プロセッサ2020は、上記で説明された方法におけることの全部または一部を実施するための命令を実行するための1つまたは複数のプロセッサを含み得る。さらに、プロセッサ2020は、プロセッサ2020と他のコンポーネントとの間の相互接続を容易にする1つまたは複数のモジュールを含み得る。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングル・チップ・マシン、GPUなどであってもよい。
【0187】
メモリ2040は、コンピューティング環境2010の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ2040は、所定のソフトウェア2042を含み得る。そのようなデータの例は、コンピューティング環境2010上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ2040は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスクまたは光ディスクなどの、任意のタイプの揮発性もしくは不揮発性メモリデバイス、またはそれらの組合せを使用することによって実装され得る。
【0188】
I/Oインターフェース2050は、プロセッサ2020と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含み得るが、それらに限定されない。I/Oインターフェース2050は、エンコーダおよびデコーダと結合され得る。
【0189】
いくつかの実施形態では、上記で説明された方法を実施するための、コンピューティング環境2010内のプロセッサ2020によって実行可能な、メモリ2040などに含まれる複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー・ディスク、光データ記憶デバイスなどであってもよい。
【0190】
非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行するための複数のプログラムを記憶しており、ここで、複数のプログラムは、1つまたは複数のプロセッサによって実行されると、コンピューティングデバイスに動き予測のための上記で説明された方法を実施させる。
【0191】
いくつかの実施形態では、コンピューティング環境2010は、上記の方法を実施するために、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブル・ゲート・アレイ(FPGA)、グラフィカル処理ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子コンポーネントと共に実装され得る。
【0192】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。多くの修正形態、変形形態、および代替実装形態は、前述の説明および関連する図面において提示された教示の利益を有する当業者に明らかであろう。
【0193】
本開示の原理を説明するために、かつ当業者が様々な実装形態について本開示を理解し、根底にある原理と、企図された特定の用途に適した様々な修正形態を伴う様々な実装形態とを最良に利用することを可能にするために、例が選ばれ、説明された。したがって、本開示の範囲は開示された実装形態の具体的な例に限定されるものではないことと、修正形態および他の実装形態は本開示の範囲内に含まれることが意図されていることとを理解されたい。