(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179747
(43)【公開日】2023-12-19
(54)【発明の名称】オプティカルフローを用いた予測リファインメントに関する方法および装置
(51)【国際特許分類】
H04N 19/54 20140101AFI20231212BHJP
H04N 19/70 20140101ALI20231212BHJP
【FI】
H04N19/54
H04N19/70
【審査請求】有
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023180171
(22)【出願日】2023-10-19
(62)【分割の表示】P 2022203593の分割
【原出願日】2020-08-24
(31)【優先権主張番号】62/891,273
(32)【優先日】2019-08-23
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】シウ、シアオユイ
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】ワン、シアンリン
(72)【発明者】
【氏名】ユイ、ピン
(57)【要約】 (修正有)
【課題】ビデオ信号を復号化する方法、デバイス及び記憶媒体を提供する。
【解決手段】方法は、ビデオブロックに関連する第1、第2参照ピクチャを取得し、第1、第2水平および垂直勾配値を取得し、制御点動きベクトルに基づいて、第1、第2水平および垂直動きリファインメントを取得し、第1、第2水平および垂直勾配値と、第1、第2水平および垂直動きリファインメントに基づいて、第1、第2予測リファインメントを取得し、第1、第2予測サンプルと、第1、第2予測リファインメントとに基づいて、リファインされた第1、第2サンプルを取得し、乗算オーバーフローを防止するためにリファインされた第1、第2サンプルおよび予測パラメータを操作することによって、リファインされた第1、第2サンプルに基づいてビデオブロックの最終予測サンプルを取得する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
ビデオ信号を復号化するためのPROF(prediction refinement with optical flow)の方法であって、
デコーダが、前記ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得し、
前記デコーダが、前記第1参照ピクチャI(0)および前記第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得し、
前記デコーダが、前記第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion vector)に基づいて、第1および第2水平および垂直動きリファインメントを取得し、
前記デコーダが、前記第1および第2水平および垂直勾配値と、前記第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得し、
前記デコーダが、前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し、
前記デコーダが、前記リファインされた第1および第2サンプルおよび予測パラメータを操作して乗算オーバーフローを防止することによって、前記リファインされた第1および第2サンプルに基づいて、前記ビデオブロックの最終予測サンプルを取得し、
前記予測パラメータは、WP(weighted prediction)のためのパラメータおよびBCW(bi-prediction with coding unit(CU)-level weight)のためのパラメータを含む、
PROF(prediction refinement with optical
flow)の方法。
【請求項2】
前記デコーダが、前記PROFが1つのアフィンCUに適用されるときに、前記WPおよびBCWを無効化する、
請求項1に記載の方法。
【請求項3】
前記デコーダが前記第1および第2予測リファインメントを取得することは、
前記デコーダが、前記第1および第2水平および垂直勾配値および第1および第2水平および垂直動きリファインメントに基づいて前記第1および第2予測リファインメントを取得し、
前記デコーダが、予測リファインメント閾値に基づいて、前記第1および第2予測リファインメントをクリッピングする、
請求項1に記載の方法。
【請求項4】
前記予測リファインメント閾値は符号化ビット深度プラス1または13のいずれかの最大値に等しい、
請求項3に記載の方法。
【請求項5】
前記デコーダがリファインされた前記第1および第2サンプルを取得することは、
前記デコーダが、前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、前記リファインされた第1および第2サンプルを取得し、
前記デコーダが、リファインされたサンプル閾値に基づいて前記リファインされた第1および第2サンプルをクリッピングする、
ことを含む、請求項1に記載の方法。
【請求項6】
前記リファインされたサンプル閾値は符号化ビット深度プラス4または16のいずれかの最大値に等しい、
請求項5に記載の方法。
【請求項7】
前記デコーダが、前記ビデオブロックの前記最終予測サンプルを取得することは、
前記デコーダが、前記リファインされた第1および第2サンプルと前記予測パラメータとに基づいて、前記ビデオブロックの前記最終予測サンプルを取得し、
前記デコーダが、第1シフト値を右シフトすることによって、前記リファインされた第1および第2サンプルを調整し、
前記デコーダが、前記リファインされた第1および第2サンプルを結合することによって結合予測サンプルを取得し、
前記デコーダが、前記結合予測サンプルを前記第1シフト値だけ左シフトすることによって前記ビデオブロックの前記最終予測サンプルを取得する、
ことを含む、請求項1に記載の方法。
【請求項8】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体と、
を含み、
前記1つ以上のプロセッサは、
ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得し、
前記第1参照ピクチャI(0)および前記第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得し、
前記第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion vector)に基づいて、第1および第2水平および垂直動きリファインメントを取得し、
前記第1および第2水平および垂直勾配値と、前記第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得し、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し、
前記リファインされた第1および第2サンプルおよび予測パラメータを操作して乗算オーバーフローを防止することによって、前記リファインされた第1および第2サンプルに基づいて、前記ビデオブロックの最終予測サンプルを取得し、
前記予測パラメータは、WP(weighted prediction)のためのパラメータおよびBCW(bi-prediction with coding unit(CU)-level weight)のためのパラメータを含む、
ように構成されている、
コンピューティングデバイス。
【請求項9】
PROF(prediction refinement with optical
flow)が1つのアフィンCUに適用されるときに、前記WPおよびBCWを無効化する、
ことをさらに含む、請求項8に記載のコンピューティングデバイス。
【請求項10】
前記1つ以上のプロセッサが前記第1および第2予測リファインメントを取得するように構成されていることは、
前記第1および第2水平および垂直勾配値および第1および第2水平および垂直動きリファインメントに基づいて前記第1および第2予測リファインメントを取得し
予測リファインメント閾値に基づいて、前記第1および第2予測リファインメントをクリッピングする、
ようにさらに構成されている、
請求項8に記載のコンピューティングデバイス。
【請求項11】
前記予測リファインメント閾値は符号化ビット深度プラス1または13のいずれかの最大値に等しい、
請求項10に記載のコンピューティングデバイス。
【請求項12】
前記リファインされた前記第1および第2サンプルを取得する前記1つ以上のプロセッサは、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、前記リファインされた第1および第2サンプルを取得し、
リファインされたサンプル閾値に基づいて前記リファインされた第1および第2サンプルをクリッピングする、
ようにさらに構成されている、請求項8に記載のコンピューティングデバイス。
【請求項13】
前記リファインされたサンプル閾値は符号化ビット深度プラス4または16のいずれかの最大値に等しい、
請求項12に記載のコンピューティングデバイス。
【請求項14】
前記ビデオブロックの前記最終予測サンプルを取得するように構成されている前記1つ以上のプロセッサは、
前記リファインされた第1および第2サンプルと前記予測パラメータとに基づいて、前記ビデオブロックの前記最終予測サンプルを取得し、
第1シフト値を右シフトすることによって、前記リファインされた第1および第2サンプルを調整し、
前記リファインされた第1および第2サンプルを結合することによって結合予測サンプルを取得し、
前記結合予測サンプルを前記第1シフト値だけ左シフトすることによって前記ビデオブロックの前記最終予測サンプルを取得する、
ようにさらに構成されている、請求項8に記載のコンピューティングデバイス。
【請求項15】
1つ以上のプロセッサを含むコンピューティングデバイスによって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
前記複数のプログラムは、前記1つ以上のプロセッサによって実行されると、
デコーダが、ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得し、
前記デコーダが、前記第1参照ピクチャI(0)および前記第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得し、
前記デコーダが、前記第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion vector)に基づいて、第1および第2水平および垂直動きリファインメントを取得し、
前記デコーダが、前記第1および第2水平および垂直勾配値と、前記第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得し、
前記デコーダが、前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し、
前記デコーダが、前記リファインされた第1および第2サンプルおよび予測パラメータを操作して乗算オーバーフローを防止することによって、前記リファインされた第1および第2サンプルに基づいて、前記ビデオブロックの最終予測サンプルを取得し、
前記予測パラメータは、WP(weighted prediction)のためのパラメータおよびBCW(bi-prediction with coding unit(CU)-level weight)のためのパラメータを含む、
動作を前記コンピューティングデバイスに実行させる、非一時的コンピュータ可読記憶媒体。
【請求項16】
前記複数のプログラムは、
前記デコーダが、PROF(prediction refinement with
optical flow)が1つのアフィンCUに適用されるときに、前記WPおよびBCWを無効化する、
ことを前記コンピューティングデバイスにさらに実行させる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記複数のプログラムは、
前記デコーダが、前記第1および第2水平および垂直勾配値および第1および第2水平および垂直動きリファインメントに基づいて前記第1および第2予測リファインメントを取得し
前記デコーダが、予測リファインメント閾値に基づいて、前記第1および第2予測リファインメントをクリッピングする、
ことを前記コンピューティングデバイスにさらに実行させる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記予測リファインメント閾値は符号化ビット深度プラス1または13のいずれかの最大値に等しい、
請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記複数のプログラムは、
前記デコーダが、前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、前記リファインされた第1および第2サンプルを取得し、
前記デコーダが、リファインされたサンプル閾値に基づいて前記リファインされた第1および第2サンプルをクリッピングする、
ことを前記コンピューティングデバイスにさらに実行させる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記リファインされたサンプル閾値は符号化ビット深度プラス4または16のいずれかの最大値に等しい、
請求項19に記載の非一時的コンピュータ可読記憶媒体。
【請求項21】
前記複数のプログラムは、
前記デコーダが、前記リファインされた第1および第2サンプルと前記予測パラメータとに基づいて、前記ビデオブロックの前記最終予測サンプルを取得し、
前記デコーダが、第1シフト値だけ右シフトすることによって、前記リファインされた第1および第2サンプルを調整し、
前記デコーダが、前記リファインされた第1および第2サンプルを結合することによって結合予測サンプルを取得し、
前記デコーダが、前記結合予測サンプルを前記第1シフト値だけ左シフトすることによって前記ビデオブロックの前記最終予測サンプルを取得する、
ことを前記コンピューティングデバイスにさらに実行させる、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオ符号化および圧縮に関する。より具体的には、本開示は、VVC(versatile video coding)規格で検討される2つのインター予測ツールに関する方法および装置、すなわち、PROF(prediction refinement with optical flow)およびBDOF(bi-directional optical flow)に関する。
【背景技術】
【0002】
ビデオデータを圧縮するために、様々なビデオ符号化技術を使用することができる。ビデオ符号化は、一つ以上のビデオ符号化標準に従って実行される。例えば、ビデオ符号化規格は、VVC(versatile video coding)、JEM(joint exploration test model)、H.265/HEVC(high efficiency video coding)、H.264/AVC(advanced video coding)、MPEG(moving picture expert group)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標はビデオ品質の劣化を回避し、または最小限に抑えながら、ビデオデータをより低いビットレートを使用する形式に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の例は、PROF(prediction refinement with optical flow)による予測リファインメントのための方法および装置を提供する。
【課題を解決するための手段】
【0004】
本開示の第1態様によれば、ビデオ信号を復号化するためのPROF(prediction refinement with optical flow:オプティカルフローによる予測リファインメント)が提供される。この方法は、デコーダがビデオ信号内のアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することを含み得る。この方法は、第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連する第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1水平勾配値および第2垂直勾配値を取得するデコーダも含むことができる。本方法は、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion vectors:制御点動きベクトル)に基づいて、第1および第2水平および垂直動きリファインメントを得るデコーダを更に含むことができる。本方法は、第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きリファインメントに基づいて、第1および第2予測リファインメントを得るデコーダを含んでもよい。この方法は、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得するデコーダをさらに含むことができる。この方法は、乗算オーバーフローを防止するためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルを取得するデコーダを含むことができる
。予測パラメータは、WP(weighted prediction:加重予測)のためのパラメータとBCW(biprediction with coding unit(CU)-level weight:符号化ユニットCU(coding unit:符号化ユニット)レベル重みによるバイ予測)のためのパラメータを含むことができる。
【0005】
本開示の第2態様によれば、コンピューティングデバイスが提供される。このコンピューティングデバイスは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリと、を含んでもよい。1つ以上のプロセッサは、ビデオ信号内でアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得するように構成され得る。1つ以上のプロセッサはまた、第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1水平勾配値および第2垂直勾配値を取得するように構成され得る。1つ以上のプロセッサは、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連するCPMV(control point motion vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得するように構成され得る。1つ以上のプロセッサは、第1および第2水平および垂直勾配値と、第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得するようにさらに構成され得る。1つ以上のプロセッサは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得するように構成され得る。1つ以上のプロセッサはさらに、乗算オーバーフローを防止するためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルを取得するように構成され得る。予測パラメータは、WPのためのパラメータおよびBCWのためのパラメータを含むことができる。
【0006】
本開示の第3の態様によれば、命令を格納した非一時的コンピュータ可読記憶媒体が提供される。命令が装置の1つまたは複数のプロセッサによって実行されると、命令は、デコーダで、ビデオ信号のアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することを装置に実行させ得る。命令は装置に、デコーダで、第1参照ピクチャである第2参照ピクチャに関連する第1予測サンプルおよび第2予測サンプルに基づいて、第1水平勾配値および第2垂直勾配値を取得することを実行させることができる。命令は装置に、デコーダで、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連するCPMV(control point motion vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得することを実行させることができる。命令は更に、第1および第2水平および垂直勾配値、並びに第1および第2水平および垂直動きリファインメントに基づいて、第1および第2予測リファインメントを、デコーダにおいて、取得することを装置に行わせることができる。命令は、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、デコーダにおいて、リファインされた第1および第2サンプルを取得することを、装置にさらに実行させることができる。命令は装置に、乗算オーバーフローを防ぐためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルをデコーダで取得することを実行させてもよい。予測パラメータは、WPのためのパラメータおよびBCWのためのパラメータを含んでもよい。
【図面の簡単な説明】
【0007】
【
図1】本開示の一例によるエンコーダのブロック図である。
【
図2】本開示の一例によるデコーダのブロック図である。
【
図3A】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3B】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3C】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3D】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3E】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図4】本開示の一例による、BDOF(bi-directional optical flow)モデルの図示である。
【
図5A】本開示の一例によるアフィンモデルの図である。
【
図5B】本開示の一例によるアフィンモデルの図である。
【
図6】本開示の一例によるアフィンモデルの図である。
【
図7】本開示の一例による、PROF(prediction refinement with optical flow)の説明図である。
【
図8】本開示の一例による、BDOFのワークフローである。
【
図9】本開示の一例によるPROFのワークフローである。
【
図10】本開示の一例による、ビデオ信号を復号化するためのBDOFおよびPROFの統合方法である。
【
図11】本開示の一例による、ビデオ信号を復号化するためのBDOFおよびPROFの方法である。
【
図12】本開示の一例による、バイ予測のためのPROFのワークフローの図である。
【
図13】本開示による、BDOFおよびPROFプロセスのパイプラインステージの図である。
【
図14】本開示による、BDOFの勾配導出方法の図である。
【
図15】本開示による、PROFの勾配導出方法の図である。
【
図16A】本開示の一例による、アフィンモードのためのテンプレートサンプルを導出する図である。
【
図16B】本開示の一例による、アフィンモードのためのテンプレートサンプルを導出する図である。
【
図17A】本開示の一例による、アフィンモードのためにPROFおよびLICを排他的に有効化する図である。
【
図17B】本開示の一例による、アフィンモードのためにPROFおよびLICを結合して使用可能にする図である。
【
図18A】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18B】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18C】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18D】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図19】本開示の一例による、ユーザインターフェースに結合されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0008】
上記の一般的な説明および以下の詳細な説明は、例示的かつ説明的なものにすぎず、本開示を限定することを意図するものではないことを理解されたい。
【0009】
本明細書に組み込まれ、その一部を構成する添付の図面は本開示と一致する例を示し、説明とともに、本開示の原理を説明する役割を果たす。
【0010】
次に、例示的な実施形態を詳細に参照し、その例を添付の図面に示す。以下の説明は添付の図面を参照し、異なる図面中の同じ符号は、特に示さない限り、同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装は、本開示と一致するすべての実装を表すわけではない。むしろ、それらは、添付の特許請求の範囲に記載されるような本開示に関連する態様と一致する装置および方法の単なる例である。
【0011】
本開示で使用される用語は特定の実施形態を説明するためだけのものであり、本開示を限定することを意図するものではない。本開示および添付の特許請求の範囲で使用されるように、単数形「1つ」などは文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。また、本明細書で使用される「および/または」という用語は関連する列挙された項目のうちの1つまたは複数の任意のまたはすべての可能な組合せを意味し、含むことが意図されることを理解されたい。
【0012】
「第1」、「第2」、「第3」などの用語は様々な情報を説明するために本明細書で使用され得るが、情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1情報を第2情報と呼ぶことができ、同様に、第2情報も第1情報と呼ぶことができる。本明細書で使用されるように、用語「もし、~ならば」は、文脈に応じて、「ときに」または「際に」または「判定に応答して」を意味すると理解されてもよい。
【0013】
HEVC規格の第1バージョンは2013年10月に完成し、これは、従来の世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビットレート節約または同等の知覚品質を提供する。HEVC規格はその先行技術よりも著しい符号化改善を提供するが、HEVCよりも優れた符号化効率が追加の符号化ツールを用いて達成され得るという証拠がある。これに基づき、VCEGとMPEGの両方が、将来のビデオ符号化標準化のための新しい符号化技術の探索作業を開始した。ITU-T VECGとISO/IEC MPEGが2015年10月に1つのJVET(Joint Video Exploration Team)を結成し、符号化効率の大幅な向上を可能にする高度な技術の研究を開始した。JEM(joint exploration model)と呼ばれる1つの参照ソフトウェアは、HEVC試験モデル(HM)の上にいくつかの追加の符号化ツールを統合することによって、JVETによって維持された。
【0014】
2017年10月、ITU-TおよびISO/IECは、HEVCを超えたビデオ圧縮に関する共同CfP(Call for Proposals)を発表した。2018年4月には、第10回JVET会議で23のCfP回答を得て評価したところ、約40%のHEVCを超える圧縮効率の向上が示された。このような評価結果を踏まえ、JVETは、VVC(Versatile Video Coding)と呼ばれる新世代ビデオ符号化規格を開発するための新たなプロジェクトを立ち上げた。同月に、VVC試験モデル(VTM)と呼ばれる1つの参照ソフトウェアコードベースが、VVC標準の参照実装を実証するために確立された。
【0015】
HEVCと同様に、VVCはブロックベースのハイブリッドビデオ符号化フレームワー
クに基づいて構築される。
【0016】
図1は、VVCのためのブロックベースのビデオエンコーダの一般的な図を示す。具体的には、
図1は典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラモード/インターモード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、インループフィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0017】
エンコーダ100において、ビデオフレームは、処理のために複数のビデオブロックに分割される。与えられた各ビデオブロックに対して、インター予測アプローチまたはイントラ予測アプローチのいずれかに基づいて予測が形成される。
【0018】
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差は、加算器128から変換器130に送られる。次に、変換係数はエントロピー低減のために、変換130から量子化132に送られる。次に、量子化された係数がエントロピー符号化138に供給されて、圧縮ビデオビットストリームが生成される。
図1に示すように、ビデオブロック分割情報、動きベクトル(MV)、参照ピクチャインデックス、およびイントラ予測モードなどのイントラ/インターモード決定116からの予測関連情報142もエントロピー符号化138を介して供給され、圧縮ビットストリーム144に保存される。圧縮ビットストリーム144は、ビデオビットストリームを含む。
【0019】
エンコーダ100では、予測の目的でピクセルを再構成するために、デコーダ関連の回路も必要である。まず、逆量子化134と逆変換136を通して予測残差を再構成する。この再構成された予測残差をブロック予測子140と組み合わせて、現在のビデオブロックに対してフィルタ処理されていない再構成ピクセルを生成する。
【0020】
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用して、現在のビデオブロックを予測する。
【0021】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成ピクセルを使用して、現在のビデオブロックを予測する。時間的予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU)または符号化ブロックの時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは複数のMVによってシグナリングされる。さらに、複数の参照ピクチャがサポートされる場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストレージ内のどの参照ピクチャから時間予測信号が来るかを識別するために使用される。
【0022】
動き推定114は、ビデオ入力110およびピクチャバッファ120からの信号を取り込み、動き推定信号である動き補償112に出力する。動き補償112はビデオ入力110、ピクチャバッファ120からの信号、および動き推定114からの動き推定信号を取り込み、動き補償信号であるイントラモード/インターモード決定116に出力する。
【0023】
空間的および/または時間的予測が実行された後、エンコーダ100内のイントラ/インターモード決定116は例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子140は現在のビデオブロックから減算され、結果と
して生じる予測残差は変換130および量子化132を使用して相関解除される。得られた量子化残差係数は逆量子化134によって逆量子化され、逆変換136によって逆変換されて再構成された残差を形成し、次いで、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、SAO(sample adaptive offset)、および/またはALF(adaptive in-loop filter)などのさらなるインループフィルタリング122を、再構成されたCUがピクチャバッファ120の参照ピクチャストレージに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニット138に送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0024】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、ブロック毎に処理される(符号化ユニット(CU)と呼ばれる)。VTM-1.0では、CUは128×128ピクセルまでであることができる。しかしながら、4分木のみに基づいてブロックを分割するHEVCとは異なり、VVCでは、1つの符号化ツリーユニット(CTU)が4分木/2分木/3分木に基づいて変化するローカル特性に適応するようにCUに分割される。さらに、HEVCにおける多重分割ユニットタイプの概念は除去され、すなわち、CU、予測ユニット(PU)および変換ユニット(TU)の分離はもはやVVCには存在せず、代わりに、各CUは、さらなる分割なしで、予測および変換の両方のための基本ユニットとして常に使用される。マルチタイプツリー構造では、まず、1つのCTUを4分木構造で分割する。次に、各4分木リーフノードは、2分木構造および3分木構造によってさらに分割することができる。
【0025】
図3A、
図3B、
図3C、
図3D、および
図3Eに示すように、5つの分割タイプ、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割がある。
【0026】
図3Aは、本開示による、マルチタイプツリー構造におけるブロック4分割を示す図である。
【0027】
図3Bは、本開示による、マルチタイプツリー構造におけるブロック垂直2分割を示す図である。
【0028】
図3Cは、本開示による、マルチタイプツリー構造におけるブロック水平2分割を示す図である。
【0029】
図3Dは、本開示による、マルチタイプツリー構造におけるブロック垂直3分割を示す図である。
【0030】
図3Eは、本開示による、マルチタイプツリー構造におけるブロック水平3分割を示す図である。
【0031】
図1では、空間予測および/または時間的予測を行ってもよい。空間予測(または「イントラ予測」)は現在のビデオブロックを予測するために、同じビデオピクチャ/スライス内の既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間的予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成されたピクセルを使用して、現在のビデオブロックを予測する。時間的予測は、ビデオ信号に固有の時間的冗長性を低減する。所与のCUについての時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは
複数の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストア内のどの参照ピクチャから時間予測信号が来るかを識別するために使用される。空間的および/または時間的予測の後、エンコーダ内のモード決定ブロックは例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、予測ブロックは現在のビデオブロックから減算され、予測残差は変換を用いて相関解除され、量子化される。量子化残差係数を逆量子化し、逆変換して再構成残差を形成し、それを予測ブロックに再加算してCUの再構成信号を形成する。デブロッキングフィルタ、SAO(sample adaptive offset)およびALF(adaptive in-loop filter)などのさらなるインループフィルタリングを、再構成されたCUが参照ピクチャストアに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニットに送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0032】
図2は、VVC用のビデオデコーダの一般的なブロック図を示す。具体的には、
図2は典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号化212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、インループフィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0033】
デコーダ200は、
図1のエンコーダ100内に存在する再構成関連部分に類似している。デコーダ200において、入力ビデオビットストリーム210は量子化された係数レベルおよび予測関連情報を導出するために、エントロピー復号化212を介して最初に復号化される。次いで、量子化された係数レベルは、逆量子化214および逆変換216を介して処理され、再構成された予測残差を得る。イントラ/インターモードセレクタ220で実施されるブロック予測機構は、復号化された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実行するように構成される。逆変換216からの再構成予測残差とブロック予測機構により生成された予測出力とを加算器218を用いて合計することにより、フィルタ処理されない再構成ピクセルの集合が得られる。
【0034】
再構成されたブロックは参照ピクチャストアとして機能するピクチャバッファ226に格納される前に、インループフィルタ228をさらに通過することができる。ピクチャバッファ226内の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送信されてもよい。インループフィルタ228がオンになっている状況では、最終的な再構成ビデオ出力232を導出するために、これらの再構成ピクセルに対してフィルタリング操作が行われる。
【0035】
図2は、ブロックベースのビデオデコーダの一般的なブロック図を与える。ビデオビットストリームは、最初にエントロピー復号化ユニットでエントロピー復号化される。符号化モードおよび予測情報は予測ブロックを形成するために、空間予測ユニット(イントラ符号化されている場合)または時間予測ユニット(インター符号化されている場合)のいずれかに送られる。残差変換係数は逆量子化ユニットと逆変換ユニットに送られ、残差ブロックを再構成する。次に、予測ブロックと残差ブロックとが加算される。再構成されたブロックは参照ピクチャストアに格納される前に、インループフィルタリングをさらに経ることができる。次に、参照ピクチャストア内の再構成されたビデオは、ディスプレイデバイスを駆動するために送出され、将来のビデオブロックを予測するために使用される。
【0036】
一般に、VVCに適用される基本的なインター予測技法は、いくつかのモジュールがさらに拡張および/または強化されることを除いて、HEVCと同じに保たれる。特に、全ての先行するビデオ規格について、1つの符号化ブロックは、符号化ブロックが単一予測される場合には1つの単一MVにのみ関連付けられ、符号化ブロックがバイ予測される場合には2つのMVに関連付けられる。従来のブロックベース動き補償のこのような制限のために、小さな動きは、動き補償後もなお予測サンプル内にとどまることができ、従って、動き補償の全体効率に負の影響を与える。MVの粒度とリファインメントの両方を改善するために、オプティカルフローに基づく2つのサンプルワイズリファインメント法、即ち、アフィンモードに対するBDOF(bi-directional optical
flow)とPROF(prediction refinement with optical flow)を、現在、VVC規格に対して検討している。以下では、2つのインター符号化ツールの主な技術的側面を簡単に検討する。
【0037】
双方向オプティカルフロー
VVCでは、双方向オプティカルフロー(BDOF)を、バイ予測符号化ブロックの予測サンプルをリファインするために適用した。具体的には
図4に示すように、BDOFはバイ予測が使用されるときにブロックベースの動き補償予測のトップで実行される、サンプルワイズの動きリファインメントである。
【0038】
【0039】
各4×4サブブロックの動きリファインメント(v
x,v
y)は、BDOFがサブブロックの周りの1つの6×6ウィンドウΩ内で適用された後、L0予測サンプルとL1予測サンプルとの間の差を最小化することによって計算される。具体的には(v
x,v
y)の値は以下のように導出される。
【数1】
L字および左右反転したL字は、フロア関数である。clip3(min、max、x)は[min、max]の範囲内の所与の値xをクリッピングする関数である。記号>>はビットごとの右シフト演算を表し、記号<<はビットごとの左シフト演算を表す。th
BDOFは、不規則な局所的動きによる伝播エラーを防止するための動きリファインメント閾値であり、1<<<max(5、bit-depth-7)に等しく、bit-depthは、内部ビット深度である。(1)では、以下の通りである。
【数2】
【0040】
S
1,S
2,S
3,S
5,S
6は以下のように算出される。
【数3】
【数4】
ここで、
【数5】
I
(k)(i,j)は、リストk、k=0,1の予測信号の座標(i,j)でのサンプル値であり、中レベルの高精度(すなわち、16ビット)で生成される。∂I
(k)(i,j)/∂xおよび∂I
(k)(i,j)/∂yは、その2つの隣接するサンプル間の差を直接計算することによって得られるサンプルの水平勾配および垂直勾配である。
【数6】
【0041】
(1)で導出した動きリファインメントに基づいて、CUの最終バイ予測サンプルは次のように、オプティカルフローモデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって計算される。
【数7】
shiftおよびο
offsetは、それぞれ15-bitdepthおよび1<<(14-bitdepth)+2・(1<<13)に等しい、バイ予測のためにL0およびL1予測信号を結合するために適用される右シフト値およびオフセット値である。上記のビット深度制御方法に基づいて、全BDOFプロセスの中間パラメータの最大ビット深度が32ビットを超えず、乗算への最大入力が15ビット以内であること、すなわち、1つの15ビット乗算器がBDOF実施に十分であることが保証される。
【0042】
アフィンモード
HEVCでは、動き補償予測のために並進動きモデルのみを適用される。一方、現実世界では、ズームイン/ズームアウト、回転、パースペクティブモーション、および他の不規則な動きなど、多くの種類の動きがある。VVCでは、アフィン動き補償予測が各インター符号化ブロックに対して1つのフラグをシグナリングすることによって適用され、並進動きモデルまたはアフィン動きモデルがインター予測に適用されるかどうかを示す。現在のVVC設計では、4パラメータアフィンモードおよび6パラメータアフィンモードを含む2つのアフィンモードが1つのアフィン符号化ブロックに対してサポートされる。
【0043】
4パラメータアフィンモデルは以下のパラメータ、すなわち、それぞれ水平方向および垂直方向の並進動きのための2つのパラメータと、ズーム動きのための1つのパラメータと、両方向の回転動きのための1つのパラメータとを有する。水平ズームパラメータは、垂直ズームパラメータと同じである。水平回転パラメータは、垂直回転パラメータと等しくなる。動きベクトルおよびアフィンパラメータのより良好な適応を達成するために、VVCにおいて、これらのアフィンパラメータは、現在のブロックの左上隅および右上隅に位置する2つのMV(制御点動きベクトル(CPMV)とも呼ばれる)に変換される。
図5Aおよび
図5Bに示すように、ブロックのアフィンモーションフィールドは、2つの制御点MV(V
0、V
1)によって記述される。
【0044】
図5Aは、本開示による、4パラメータアフィンモデルの図を示す。
【0045】
図5Bは、本開示による4パラメータアフィンモデルの図を示す。
【0046】
制御点動きに基づいて、1つのアフィン符号化ブロックのモーションフィールド(v
x,v
y)を以下のように記述する。
【数8】
【0047】
6パラメータアフィンモードは、それぞれ水平および垂直方向の並進動きのための2つのパラメータ、ズーム動きのための1つのパラメータおよび水平方向の回転動きのための1つのパラメータ、ズーム動きのための1つのパラメータおよび垂直方向の回転動きのための1つのパラメータを有する。6パラメータアフィン動きモデルは、3つのCPMVで3つのMVで符号化される。
【0048】
図6は、本開示による6パラメータアフィンモデルの図を示す。
【0049】
図6に示すように、1つの6パラメータアフィンブロックの3つの制御点は、ブロックの左上、右上、左下隅に位置する。左上の制御点での動きは並進移動動きに関連し、右上の制御点での動きは水平方向の回転とズーム動きに関連し、左下の制御点での動きは垂直方向の回転とズーム動きに関連する。4パラメータアフィンモーションモデルと比較して、6パラメータの水平方向の回転とズーム動きは、垂直方向の動きと同じでないことがある。(V
0、V
1、V
2)を
図6の現在のブロックの左上隅、右上隅、左下隅のMVであると仮定すると、それぞれのサブブロックの動きベクトル(v
x,v
y)は、以下のように制御点で3つのMVを用いて導出される。
【数9】
【0050】
アフィンモードのオプティカルフローによる予測リファインメント(PROF)
アフィン動き補償精度を改善するために、PROFは、現在、オプティカルフローモデルに基づいてサブブロックベースのアフィン動き補償をリファインする現行VVCで検討されている。具体的には、サブブロックベースのアフィン動き補償を行った後、一つのアフィンブロックの輝度予測サンプルを、オプティカルフロー方程式に基づいて導出された一つのサンプルリファインメント値によって修正する。詳細には、PROFの動作が以下の4つのステップとして要約することができる。
【0051】
ステップ1:サブブロックベースのアフィン動き補償は、4パラメータアフィンモデルについて(6)で、および6パラメータアフィンモデルについて(7)で導出されるようなサブブロックMVを使用してサブブロック予測I(i,j)を生成するために実行される。
【0052】
ステップ2:空間勾配g
x(i,j)およびg
y(i,j)および各予測サンプルの値は、以下のように計算される。
【0053】
勾配を計算するために、予測サンプルの1つの追加の行/列が、1つのサブブロックの各サイドで生成される必要がある。メモリ帯域幅および複雑さを低減するために、拡張境界上のサンプルは追加の補間プロセスを回避するために、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。
【0054】
ステップ3:輝度予測リファインメント値は、以下によって計算される。
【数10】
△v(i,j)は、サンプル位置(i,j)に対して計算され、v(i,j)によって表されるピクセルMVと、ピクセル(i,j)が位置するサブブロックのサブブロックMVとの間の差である。さらに、現在のPROF設計では、予測リファインメントをオリジナル予測サンプルに追加した後、リファインされた予測サンプルの値を15ビット以内にクリッピングするために、1つのクリッピング動作が実行される。すなわち、以下の通りである。
【数11】
I(i,j)およびI
r(i,j)は、それぞれ、位置(i,j)におけるオリジナル予測サンプルおよびリファインされた予測サンプルである。
【0055】
図7は、本開示による、アフィンモードのためのPROFプロセスを示す。
【0056】
アフィンモデルパラメータとサブブロック中心に対するピクセル位置はサブブロックごとに変わらないので、△v(i,j)は、最初のサブブロックに対して計算でき、同じCU内の他のサブブロックに対して再利用できる。サンプル位置(i,j)からサンプルが属するサブブロックの中心までの水平および垂直オフセットを△xおよび△yとすると、△v(i,j)を以下のように導出することができる。
【数12】
【0057】
アフィンサブブロックMV導出方程式(6)および(7)に基づいて、MV差△v(i,j)を導出することができる。具体的には、4パラメータアフィンモデルでは以下の通りである。
【数13】
【0058】
6パラメータアフィンモデルでは、以下の通りである。
【数14】
(v
0x,v
0y),(v
1x,v
1y),(v
2x,v
2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhはブロックの幅および高さである。既存のPROF設計では、MV差△v
xおよび△v
yは常に1/32‐pelの精度で導出される。
【0059】
局所照明補償
局所照明補償(LIC)は、時間的に隣接するピクチャ間に存在する局所照明変化の問題に対処するために使用される符号化ツールである。1対の重みおよびオフセットパラメータが参照サンプルに適用されて、1つの現在のブロックの予測サンプルが得られる。一般的な数学モデルは以下のように与えられる。
【数15】
P
r[x+v]は動きベクトルvによって示される参照ブロックで、[α,β]は参照ブロックの対応する重みとオフセットパラメータの対であり、P[x]は最終予測ブロックである。重みおよびオフセットパラメータの対は現在のブロックのテンプレート(すなわち、隣接する再構成されたサンプル)およびテンプレートの参照ブロック(現在のブロックの動きベクトルを使用して導出される)に基づいて、LLMSE(least linear mean square error)アルゴリズムを使用して推定される。テンプレートサンプルとテンプレートの参照サンプルとの間の平均二乗差を最小化することによって、αおよびβの数学的表現は、以下のように導出することができる。
【数16】
【0060】
Iはテンプレート中のサンプルの数を表す。Pc[xi]は現在のブロックのテンプレートのi番目のサンプルであり、Pr[xi]は動きベクトルvに基づくi番目のテンプレートサンプルの参照サンプルである。
【0061】
各予測方向(L0またはL1)に対して多くとも1つの動きベクトルを含む通常のインターブロックに適用されることに加えて、LICは、1つの符号化ブロックが複数のより小さいサブブロックにさらに分割され、各サブブロックが異なる動き情報に関連付けられ得るアフィンモード符号化ブロックにも適用される。アフィンモード符号化ブロックのL
ICのための参照サンプルを導出するために、
図16Aおよび16B(後述)に示すように、1つのアフィン符号化ブロックの最上位テンプレートの参照サンプルは最上位サブブロック行の各サブブロックの動きベクトルを使用してフェッチされ、一方、左側テンプレートの参照サンプルは左側サブブロック列のサブブロックの動きベクトルを使用してフェッチされる。その後、(12)と同様のLLMSE導出方法を適用して、合成テンプレートに基づいてLICパラメータを導出する。
【0062】
図16Aは、本開示による、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Cur Frame1620およびCur CU1622を含む。Cur Frame1620は、現在のフレームである。Cur CU 1622は、現在の符号化ユニットである。
【0063】
図16Bは、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Ref Frame1640、Col CU1642、A Ref1643、B
Ref1644、C Ref1645、D Ref1646、E Ref1647、F
Ref1648、およびG Ref1649を含む。Ref Frame1640は参照フレームである。Col CU1642は、並置された符号化ユニットである。A Ref1643、B Ref1644、C Ref1645、D Ref1646、E Ref1647、F Ref1648、G Ref1649は参照サンプルである。
【0064】
アフィンモードに対するオプティカルフローによる予測リファインメントの非効率性
PROFはアフィンモードの符号化効率を高めることができるが、その設計はまだ更に改善できる。特に、PROFおよびBDOFの両方がオプティカルフローコンセプトに基づいて構築されることを考えると、PROFがハードウェアの実装を容易にするためにBDOFの現存するロジックを最大限に活用できるように、PROFおよびBDOFの設計をできるだけ調和させることが極めて望ましい。このような考察に基づいて、現在のPROF設計とBDOF設計との間のインタラクションに関する以下の非効率性が、本開示で識別される。
【0065】
1.「アフィンモードのオプティカルフローによる予測リファインメント」で説明したように、式(8)において、勾配の精度は内部ビット深度に基づいて決定される。一方、MV差、すなわち、△vxおよび△vyは、常に1/32-pelの精度で導出される。これに対応して、式(9)に基づいて、導出されたPROFリファインメントの精度は内部ビット深度に依存する。しかしながら、BDOFと同様に、PROFはより高いPROF導出精度を維持するために、中レベルの高ビット深度(すなわち、16ビット)で予測サンプル値の上に適用される。したがって、内部符号化ビット深度にかかわらず、PROFによって導出される予測リファインメントの精度は中間予測サンプル、すなわち16ビットの精度と一致しなければならない。言い換えると、既存のPROF設計におけるMV差分と勾配の表現ビット深度は予測サンプル精度(すなわち16ビット)と比較して正確な予測リファインメントを導出するために完全に整合していない。一方、式(1)、(4)および(8)の比較に基づいて、既存のPROFおよびBDOFはサンプル勾配およびMV差を表すために異なる精度を使用する。先に指摘したように、このような統一されていない設計は既存のBDOFロジックを再使用することができないので、ハードウェアにとって望ましくない。
【0066】
2.「アフィンモードのオプティカルフローによる予測リファインメント」の項で検討したように、一つのカレントアフィンブロックがバイ予測されるとき、PROFをリストL0およびL1の予測サンプルに別々に適用し、それから、強化されたL0およびL1予測信号を平均化して最終バイ予測信号を生成する。反対に、各予測方向に対するPROFリファインメントを別々に導出する代わりに、BDOFは予測リファインメントを一旦導出
し、それは次に、結合L0およびL1予測信号を強化するために適用される。
図8および
図9(後述)はバイ予測のための現在のBDOFおよびPROFのワークフローを比較する。実際のコーデックハードウェアパイプライン設計では通常、より多くの符号化ブロックを並列に処理できるように、異なる主要な符号化/復号化モジュールを各パイプラインステージに割り当てる。しかしながら、BDOFワークフローとPROFワークフローとの間の差異のために、BDOFとPROFとによって共有されることができる1つの同じパイプライン設計を有することを困難にする可能性があり、これは実用的なコーデック実装には不利である。
【0067】
図8は本開示によるBDOFのワークフローを示す。ワークフロー800がL0動き補償810、L1動き補償820、およびBDOF830を含む。L0動き補償810は例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャはビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償820は次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャがビデオブロック内の現在のピクチャの後の参照ピクチャである。BDOF830が
図4に関して上述したように、L1動き補償810およびL1動き補償820から動き補償サンプルを取り込み、予測サンプルを出力する。
【0068】
図9は本開示による既存のPROFのワークフローを示す。ワークフロー900がL0動き補償910、L1動き補償920、L0 PROF930、L1 PROF940、および平均化960を含む。L0動き補償910は例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャはビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償920は次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャがビデオブロック内の現在のピクチャの後の参照ピクチャである。L0 PROF930が前述の
図7に関して説明したように、L0動き補償910からL0動き補償サンプルを取り込み、動きリファインメント値を出力する。L1 PROF940は上述の
図7に関して説明したように、L1動き補償920からL1動き補償サンプルを取り込み、動きリファインメント値を出力する。平均化960はL0 PROF930およびL1 PROF940の動きリファインメント値出力を平均化する。
【0069】
3.BDOFおよびPROFの両方について、勾配は現在の符号化ブロック内の各サンプルについて計算される必要があり、これはブロックの各サイドで予測サンプルの1つの追加の行/列を生成することを必要とする。サンプル補間の付加的な計算の複雑さを回避するために、ブロックの周りの拡張領域内の予測サンプルは整数位置で(すなわち、補間なしで)参照サンプルから直接コピーされる。しかし、既存の設計ではBDOFとPROFの勾配値を生成するために、異なる位置の整数サンプルが選択されている。具体的にはBDOFでは予測サンプルの左側(水平勾配の場合)および予測サンプルの上側(垂直勾配の場合)に位置する整数参照サンプルが使用され、PROFでは予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。ビット深度表現問題と同様に、このような統一されていない勾配計算方法はハードウェアコーデックの実装にとっても望ましくない。
【0070】
4.先に指摘したように、PROFの動機は、各サンプルのMVと、サンプルが属するサブブロックの中心で導出されるサブブロックMVとの間の小さなMV差を補償することである。現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、式(6)および(7)に示すように、1つのアフィンブロックのサブブロックMVは、制御点MVから導出される。したがって、制御点MV間の差が比較的小さい場合、各サンプル位置におけるMVは一貫しているべきである。そのような場合、PROFを適用する利点は非常に限定される可能性があるので、性能/複雑さのトレードオフを考慮すると、PROFを行う価値がない
場合がある。
【0071】
アフィンモードに対するオプティカルフローによる予測リファインメントの改良
本開示では、ハードウェアコーデック実装を容易にするために、既存のPROF設計を改善し、単純化するための方法が提供される。特に、既存のBDOFロジックをPROFと最大限に共有するために、BDOFとPROFの設計を調和させることに特に注意する。一般に、本開示で提案される技術の主な態様を以下に要約する。
【0072】
1.1つ以上の統一設計を達成しながらPROFの符号化効率を改善するために、BDOFおよびPROFによって使用されるサンプル勾配とMV差の表現ビット深さを統一する1つの方法を提案する。
【0073】
2.ハードウェアパイプライン設計を容易にするために、バイ予測のためにPROFのワークフローをBDOFのワークフローと調和させることが提案される。具体的にはL0およびL1に対して別々に予測リファインメントを導出する既存のPROFとは異なり、提案した方法はL0およびL1の組み合わせ予測信号に適用される予測リファインメントを一旦導出する。
【0074】
3.BDOFおよびPROFによって使用される勾配値を計算するために、整数参照サンプルの導出を調和させる2つの方法を提案する。
【0075】
4.計算量を減らすために、ある条件が満たされたときにアフィン符号化ブロックのためのPROFプロセスを適応的に無効にする早期終了法を提案する。
【0076】
PROF勾配とMV差のビット深度表現設計の改善
「問題記述」の項で分析したように、MV差の表現ビット深度と現在のPROF内のサンプル勾配は、正確な予測リファインメントを導き出すために整列されない。さらに、サンプル勾配の表現ビット深度およびMV差はBDOFとPROFとの間で一貫性がなく、これはハードウェアにとって不利である。本節ではBDOFのビット深度表現法をPROFに拡張することにより、1つの改良型ビット深度表現法を提案する。具体的には提案する方法では各サンプル位置における水平および垂直勾配を以下のように計算する。
【数17】
【0077】
加えて、1つのサンプル位置からサンプルが属するサブブロックの中心までの1/4-ペル精度で表される水平および垂直オフセット△xおよび△yであると仮定すると、サンプル位置での対応するPROF MV差△v(x,y)は以下のように導出される。
【数18】
dMvBitsは、BDOFプロセスによって使用される勾配値のビット深度であり、dMvBits=max(5,(bit-depth-7))+1である。式(13)および(14)において、c、d、e、およびfは、アフィン制御点MVに基づいて導出されるアフィンパラメータである。具体的には、4パラメータアフィンモデルでは以下の通りである。
【数19】
【0078】
6パラメータアフィンモデルでは、以下の通りである。
【数20】
(v
0x,v
0y)(v
1x,v
1y)(v
2x,v
2y)は、1/16-pel精度で表される現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhは、ブロックの幅および高さである。
【0079】
上記の説明では、式(13)および(14)に示すように、一対の固定右シフトを適用して、勾配およびMV差の値を計算する。実際には、(13)および(14)に異なるビットごとの右シフトを適用して、中間の計算精度と内部PROF導出プロセスのビット幅との間の異なるトレードオフのために、勾配およびMV差の様々な表現精度を達成することができる。例えば、入力ビデオが多くのノイズを含む場合、導出された勾配は、各サンプルにおける真の局所的な水平/垂直勾配値を表すのに信頼できないことがある。このような場合、勾配よりも多くのビットを使用してMV差を表現する方が意味がある。一方、入力ビデオが定常的な動きを示す場合、アフィンモデルによって導出されるMV差は非常に小さくなければならない。そうであれば、高精度MV差を使用することで、導出されたPROFリファインメントの精度を上げるための追加の有益性を得ることはできない。言い換えると、このような場合、勾配値を表すためにより多くのビットを使用する方が有益である。上記の考察に基づいて、本開示の一実施形態ではPROFの勾配およびMV差を計算するために、以下で提案される1つの一般的な方法、具体的には各サンプル位置における水平勾配および垂直勾配を仮定することは隣接する予測サンプルの差にn
a右シフトを適用することによって計算される。
【数21】
サンプル位置における対応するPROF MV差△v(x,y)は、以下のように計算されるべきである。
【数22】
△xおよび△yは、1つのサンプル位置からサンプルが属するサブブロックの中心までの
1/4-pel精度で表される水平および垂直オフセットであり、c、d、e、およびfは、1/16-pelアフィン制御点MVに基づいて導出されるアフィンパラメータである。最後に、サンプルの最終的なPROFリファインメントは、以下のように計算される。
【数23】
【0080】
本開示の別の実施形態では、別のPROFビット深度制御方法が以下のように提案される。この方法では、各サンプル位置における水平勾配および垂直勾配が隣接する予測サンプルの差分値に右シフトのn
aビットを適用することによって、(18)のように依然として計算される。サンプル位置における対応するPROF MV差△v(x,y)は、以下のように計算されるべきである。
【数24】
【0081】
さらに、PROF導出全体を適切な内部ビット深度に保つために、クリッピングが、以下のように導出されたMV差に適用される。
【数25】
limitは2のn
b乗に等しい閾値であり、clip3(min、max、x)は[min、max]の範囲内の所与の値xをクリッピングする関数である。一例ではn
bの値は2
max(5,bitdepth-7)であるように設定される。最後に、サンプルのPROFリファインメントは、以下のように計算される。
【数26】
【0082】
バイ予測のためのPROFおよびBDOFの統合ワークフロー
上述したように、1つのアフィン符号化ブロックがバイ予測される場合、現在のPROFは一方向に適用される。より具体的には、PROFサンプルリファインメントが別々に導出され、リストL0およびL1内の予測サンプルに適用される。その後、リストL0およびL1からそれぞれリファインされた予測信号が平均化され、ブロックの最終バイ予測信号が生成される。これは、サンプルリファインメントが導出され、バイ予測信号に適用されるBDOF設計とは対照的である。BDOFとPROFのバイ予測ワークフロー間のこのような差は、実用的なコーデックパイプライン設計には不利であり得る。
【0083】
ハードウェアパイプライン設計を容易にするために、本開示による1つの単純化方法は2つの予測リファインメント方法のワークフローが調和されるように、PROFのバイ予測プロセスを修正することである。具体的には、各予測方向に対するリファインメントを別々に適用する代わりに、提案したPROF法はリストL0およびL1の制御点MVに基づいて、予測リファインメントを一旦導出する。次に、品質を強化するために、導出した予測リファインメントを、結合されたL0およびL1予測信号に適用する。具体的には、
式(14)で導出したMV差に基づいて、1つのアフィン符号化ブロックの最終バイ予測サンプルを、以下のように提案した方法によって計算する。
【数27】
shiftおよびο
offsetは、(15-bit-depth)および1<<(14-bit-depth)+(2<<13)に等しく、バイ予測のためのL0およびL1予測信号を結合するために適用される右シフト値およびオフセット値である。さらに、(18)に示すように、既存のPROF設計におけるクリッピング動作((9)に示すように)は、提案した方法で除去される。
【0084】
図12は、本開示による、提案されたバイ予測PROF方法が適用される場合のPROFプロセスの図を示す。PROFプロセス1200は、L0動き補償1210、L1動き補償1220、およびバイ予測PROF1230を含む。例えば、L0動き補償1210は、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。L1動き補償1220は例えば、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。バイ予測PROF1230は上述のように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込み、バイ予測サンプルを出力する。
【0085】
図12は、提案されたバイ予測PROF法が適用された場合の対応するPROFプロセスを示す。PROFプロセス1200は、L0動き補償1210、L1動き補償1220、およびバイ予測PROF1230を含む。例えば、L0動き補償1210は、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。L1動き補償1220は例えば、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。バイ予測PROF1230は上述のように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込み、バイ予測サンプルを出力する。
【0086】
ハードウェアパイプライン設計のための提案した方法の潜在的な利益を実証するために、
図13は、BDOFと提案したPROFの両方が適用されるときのパイプラインステージを図示するための1つの例を示す。
図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
【0087】
1.符号化ブロックのMVを解析/復号化し、参照サンプルをフェッチする。
2.符号化ブロックのL0および/またはL1予測信号を生成する。
3.符号化ブロックが非アフィンモードによって予測される場合には、BDOFに基づいて生成されたバイ予測サンプルのサンプルごとのリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合には、PROFに基づいて実行する。
【0088】
図13は、本開示による、BDOFおよび提案されたPROFの両方が適用される場合のパイプラインステージの例を示す。
図13は、ハードウェアパイプライン設計のための提案された方法の潜在的な利点を示す。パイプラインステージ1300は、解析/復号化MVおよびフェッチ参照サンプル1310、動き補償1320、BDOF/PROF13
30を含む。パイプラインステージ1300は、ビデオブロックBLK0、BKL1、BKL2、BKL3、およびBLK4を符号化する。各ビデオブロックはMVの解析/復号化を開始し、参照サンプル1310をフェッチし、動き補償1320に移動し、次に動き補償1320、BDOF/PROF1330に順次移動する。これは、BLK0は、BLK0が動き補償1320に移動するまで、パイプラインステージ1300の処理を開始しないことを意味する。時間がT0からT1、T2、T3、およびT4になるにつれて、すべてのステージおよびビデオブロックについて同じである。
【0089】
図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
第1に、符号化ブロックのMVを解析/復号化し、参照サンプルをフェッチする。
第2に、符号化ブロックのL0および/またはL1予測信号を生成する。
第3に、符号化ブロックが1つの非アフィンモードによって予測される場合には、BDOFに基づいて生成されたバイ予測サンプルのサンプルワイズリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合にはPROFに基づいて実行する。
【0090】
図13に示すように、提案された調和方法が適用された後、BDOFとPROFの両方がバイ予測サンプルに直接適用される。BDOFおよびPROFが異なるタイプの符号化ブロックに適用される(すなわち、BDOFが非アフィンブロックに適用され、PROFがアフィンブロックに適用される)と仮定すると、2つの符号化ツールを同時に呼び出すことはできない。したがって、それらの対応する復号化処理は、同じパイプラインステージを共有することによって行うことができる。これはBDOFとPROFの両方に同じパイプラインステージを割り当てることが困難である既存のPROF設計よりも効率的であり、これはそれらの異なるバイ予測のワークフローによる。
【0091】
以上では、提案手法はBDOFとPROFのワークフローの調和のみを考慮しているが、既存の設計では2つの符号化ツールの基本演算ユニットも異なるサイズで行われている。たとえば、BDOFの場合、1つの符号化ブロックは、サイズがWs×Hsの複数のサブブロックに分割される。ここで、Ws=min(W、16)およびHs=min(H、16)である。ここで、WおよびHは符号化ブロックの幅と高さである。勾配計算およびサンプルリファインメント導出のようなBODF演算は、各サブブロックに対して独立して実行される。一方、前述したように、アフィン符号化ブロックは4×4のサブブロックに分割され、各サブブロックには、4パラメータまたは6パラメータアフィンモデルのいずれかに基づいて導出された1つの個々のMVが割り当てられる。PROFはアフィンブロックにのみ適用されるため、その基本演算ユニットは4×4サブブロックである。バイ予測ワークフロー問題と同様に、PROFのためにBDOFと異なる基本演算ユニットサイズを使用することも、ハードウェア実装にとって不都合であり、BDOFおよびPROFが復号化プロセス全体の同じパイプラインステージを共有することを困難にする。このような問題を解決するために、一実施形態では、アフィンモードのサブブロックサイズをBDOFのサブブロックサイズと同じにすることが提案される。
【0092】
提案手法によれば、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演算ユニットに沿ってサンプルをパディングすることによって計算される。
【0093】
提案された方法の主張された利点は主に、以下の側面を含む。1)動き補償およびBDOF/PROF改良の両方のための統合基本演算ユニットサイズを有する簡略化されたパイプラインアーキテクチャ、2)アフィン動き補償のための拡大されたサブブロックサイズによるメモリ帯域幅使用の低減、3)分数サンプル補間のサンプル当たりの計算複雑さの低減。
【0094】
提案した方法による計算量の削減(すなわち項目3))のために、アフィン符号化ブロックに対する既存の6タップ補間フィルタ制約を除去できることに言及すべきである。代わりに、非アフィン符号化ブロックのためのデフォルトの8タップ補間は、アフィン符号化ブロックのためにも使用される。この場合の全体的な計算量は、既存のPROF設計(6タップ補間フィルタを持つ4x4サブブロックに基づく)と依然として有利に比較できる。
【0095】
BDOFおよびPROFの勾配導出の調和
前述のように、BDOFおよびPROFの両方は、ブロックの各サイドの予測サンプルの1つの追加の行/列にアクセスする、現在の符号化ブロック内の各サンプルの勾配を計算する。追加の補間の複雑さを回避するために、ブロック境界の周りの拡張領域における必要な予測サンプルは、整数参照サンプルから直接コピーされる。しかし、「問題記述」の項で指摘したように、異なる位置の整数サンプルを使用して、BDOFおよびPROFの勾配値を計算する。
【0096】
一様設計を達成するために、BDOFおよびPROFが用いる勾配導出法を統合するために、次の二つの方法を提案する。第1方法では、BDOFと同じになるようにPROFの勾配導出法を整列させることを提案する。具体的には、第1方法によって、拡張領域内の予測サンプルを生成するために使用される整数位置は分数サンプル位置をフロアダウンすることによって決定され、すなわち、選択された整数サンプル位置は分数サンプル位置(水平勾配の場合)の左に、かつ分数サンプル位置(垂直勾配の場合)の上に配置される。第2方法ではBDOFの勾配導出方法をPROFと同じにすることが提案されており、より詳細には第2方法が適用される場合、予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。
【0097】
図14は、本開示による、BDOFの勾配導出方法を使用する例を示す。
図14において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、グレーの円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0098】
図15は、本開示による、PROFの勾配導出方法を使用する例を示す。
図15において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、グレーの円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0099】
図14および
図15は第1方法(
図12)および第2方法(
図13)がそれぞれ適用される場合に、BDOFおよびPROFの勾配の導出に使用される対応する整数サンプル位置を示す。
図14および
図15において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、パターン化された円は勾配導出のために現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0100】
さらに、既存のBDOFおよびPROF設計によれば、予測サンプルパディングは、異なる符号化レベルで行われる。具体的にはBDOFの場合、パディングは各sbWidth×sbHeightサブブロックの境界に沿って適用され、ここで、sbWidth=min(CUWidth,16)およびsbHeight=min(CUHeight,16)である。CUWidthおよびCUHeightは、CUの幅および高さである。一方、PROFのパディングは、4×4サブブロックレベルで常に適用される。上記の説明ではパディングサブブロックサイズは依然として異なるが、パディング方法のみがBDOFとPROFとの間で統合される。これはまた、BDOFおよびPROFのパディングプロセスのために異なるモジュールが実装される必要があることを考慮すると、実際のハードウェア実装には使い勝手が良くない。もう1つの統合設計を達成するために、BDOFおよびPROFのサブブロックパディングサイズを統一することが提案される。本開示の一実施形態では、4×4レベルでBDOFの予測サンプルパディングを適用することが提案される。具体的にはこの方法によって、CUはまず、複数の4×4サブブロックに分割され、各4×4サブブロックの動き補償の後、上/下および左/右境界に沿った拡張サンプルは対応する整数サンプル位置をコピーすることによってパディングされる。
図18A、18B、18C、および18Dは提案されたパディング方法が1つの16x16BDOF CUに適用される1つの例を示す。ここで、破線は4x4サブブロック境界を表し、グレーバンドは各4x4サブブロックのパディングされたサンプルを表す。
【0101】
図18Aは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、左上4×4サブブロック境界1820を表す。
【0102】
図18Bは16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、本開示による、右上4×4サブブロック境界1840を表す。
【0103】
図18Cは本開示による、16×16BDOF CUに適用される提案されたパディング方法を示し、破線は、左下4×4サブブロック境界1860を示す。
【0104】
図18Dは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、破線は、右下4×4サブブロック境界1880を示す。
【0105】
BDOF、PROF、DMVRを有効/無効にするためのハイレベルシグナリング構文
既存のBDOFおよびPROF設計では、2つの異なるフラグがシーケンスパラメータセット(SPS)においてシグナリングされ、2つの符号化ツールの有効化/無効化を別々に制御する。しかしながら、BDOFとPROFとの間の類似性のために、1つの同じ制御フラグによってBDOFおよびPROFをハイレベルから有効化および/または無効化することがより望ましい。このような考察に基づき、表1に示すように、SPSではsps_bdof_prof_enabled_flagと呼ばれる1つの新しいフラグが導入されている。
【0106】
表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】
表1 提案されているBDOF/PROF有効化/無効化フラグを使用したSPS構文テーブルの変更
【0107】
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に等しい場合)、双方向オプティカルフローが有効になり、オプティカルフローによる予測リファインメントが無効になる。
【0108】
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の場合)、構文s
lice_disabled_bdof_prof_dmvr_flagはスライスレベルでシグナリングされない。フラグがシグナリングされない場合、0であると推測される。
【0109】
上記のSPS BDOF/PROF構文に加えて、スライスレベルで別の制御フラグを導入することが提案されている。すなわち、BDOF、PROFおよびDMVRを無効にするためにslice_disable_bdof_prof_dmvr_flagが導入されている。SPSフラグsps_bdof_prof_dmvr_slice_present_flagは、DMVRまたはBDOF/PROF spsレベル制御フラグのいずれかが真の場合にSPSでシグナリングされ、slice_disable_bdof_prof_dmvr_flagの存在を示すために使用される。存在する場合、slice_disable_bdof_dmvr_flagが通知される。表2は、提案された構文が適用された後の修正されたスライスヘッダ構文テーブルを示す。
【表2】
表2 提案されているBDOF/PROF有効化/無効化フラグを使用したSPS構文テーブルの変更
【0110】
制御点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)に基づいて計算できる。
【数28】
【0111】
本開示によれば、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に、異なるメトリックを使用することができる。
一例では、式(19)に基づいて、絶対最大水平MV差と絶対最大垂直MV差との和が1つの所定の閾値よりも小さい場合、PROFプロセスをスキップすることができる。即
ち、以下の通りである。
【数29】
【0112】
別の例では、|△v
x
max||△v
y
max|の最大値が閾値以下である場合、PROFプロセスをスキップすることができる。
【数30】
【0113】
MAX(a、b)は、入力値aとbとの間の大きい方の値を返す関数である。
【0114】
上記の2つの例に加えて、本開示の思想は、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に他のメトリックが使用される場合にも適用可能である。
【0115】
上記の方法では、MV差の大きさに基づいてPROFをスキップする。一方、MV差に加えて、PROFサンプルリファインメントも、1つの動き補償ブロック内の各サンプル位置における局所勾配情報に基づいて計算される。高周波数の詳細が少ない予測ブロック(フラットな領域など)では、導出されたサンプルリファインメントの値が小さくなるように、勾配値は小さくなる傾向がある。これを考慮して、本開示の別の実施形態によれば、十分に高い周波数情報を含むブロックの予測サンプルにのみPROFを適用することが提案される。
【0116】
ブロックに対してPROFプロセスを呼び出す価値があるように、ブロックが十分に高い周波数の情報を含むかどうかを判定する際に、異なるメトリックを使用することができる。一例では、決定が予測ブロック内のサンプルの勾配の平均の大きさ(すなわち、絶対値)に基づいて行われる。平均の大きさが1つの閾値よりも小さい場合、予測ブロックは平坦領域として分類され、PROFは適用されるべきではなく、そうでない場合、予測ブロックは、PROFが依然として適用可能である十分な高周波詳細を含むと考えられる。別の例では、予測ブロック内のサンプルの勾配の最大の大きさを使用することができる。最大の大きさが1つの閾値より小さい場合、PROFはブロックについてスキップされるべきである。さらに別の例では、予測ブロックの最大サンプル値と最小サンプル値との差分Imax-Iminを使用して、PROFがブロックに適用されるかどうかを決定することができる。このような差分値が閾値より小さい場合、PROFはブロックについてスキップされる。本開示の思想は所与のブロックが十分な高周波数情報を含むか否かを決定する際に、いくつかの他のメトリックが使用される場合にも適用可能であることに留意されたい。
【0117】
アフィンモードのLICとPROFと間のインタラクションの対処
現在のブロックの隣接する再構成されたサンプル(すなわち、テンプレート)は線形モデルパラメータを導出するためにLICによって使用されるので、1つのLIC符号化ブロックの復号化はその隣接するサンプルの完全な再構成に依存する。このような相互依存性のために、実際のハードウェア実装では、LICが隣接する再構成サンプルがLICパラメータ導出のために利用可能になる再構成段階で実行される必要がある。ブロック再構成は連続的に(すなわち、1つずつ)実行されなければならないので、スループット(すなわち、単位時間当たりに並列に実行され得る作業量)は、LIC符号化ブロックに他の符号化方法を結合して適用するときに考慮すべき1つの重要な問題である。この節では、
PROFとLICの両方がアフィンモードに対して有効である場合のインタラクションを扱うために、二つの方法を提案した。
【0118】
本開示の第1実施形態では、1つのアフィン符号化ブロックに対して、PROFモードとLICモードとを排他的に適用することが提案される。前述のように、既存の設計では、PROFがシグナリングなしにすべてのアフィンブロックに暗黙的に適用され、一方、1つのLICフラグはLICモードが1つのアフィンブロックに適用されるかどうかを示すために、符号化ブロックレベルでシグナリングまたは継承される。本発明の方法によれば、1つのアフィンブロックのLICフラグの値に基づいてPROFを条件付きで適用することが提案される。フラグが1に等しい場合、LIC重みおよびオフセットに基づいて符号化ブロック全体の予測サンプルを調整することによって、LICのみが適用される。そうでない場合(すなわち、LICフラグが0に等しい場合)、PROFは、アフィン符号化ブロックに適用され、オプティカルフローモデルに基づいてそれぞれのサブブロックの予測サンプルをリファインする。
【0119】
図17Aは、PROFおよびLICが同時に適用されることを禁止されている、提案された方法に基づく復号化プロセスの1つの例示的なフローチャートを示す。
【0120】
図17Aは本開示による、PROFおよびLICが許可されない、提案された方法に基づく復号化プロセスの図を示す。復号化プロセス1720は、LICフラグがオン?1722ステップ、LIC1724、およびPROF1726を含む。LICフラグがオン?1722はLICフラグがセットされているか否かを決定し、その決定にしたがって次のステップをとるステップである。LIC1724は、LICフラグがセットされているLICのアプリケーションである。LICフラグがセットされていない場合、PROF1726はPROFのアプリケーションである。
【0121】
本開示の第2実施形態では、1つのアフィンブロックの予測サンプルを生成するために、PROFの後にLICを適用することが提案される。具体的にはサブブロックベースのアフィン動き補償が行われた後、予測サンプルはPROFサンプルリファインメントに基づいてリファインされ、次いで、LICはPROF調整された予測サンプルに(テンプレートおよびその参照サンプルから導出されるように)重みおよびオフセットのペアを適用することによって行われ、以下のように、ブロックの最終予測サンプルを取得する。
【数31】
ここで、P
r[x+v]は動きベクトルvによって示される現在のブロックの参照ブロックであり、αおよびβはLIC重みおよびオフセットであり、P[x]は最終予測ブロックであり、△I[x]は、(17)で導出されるPROFリファインメントである。
【0122】
図17Bは、本開示による、PROFおよびLICが適用される復号化プロセスの図を示す。復号化プロセス1760は、アフィン動き補償1762、LICパラメータ導出1764、PROF1766、およびLICサンプル調整1768を含む。アフィン動き補償1762はアフィン動きを適用し、LICパラメータ導出1764およびPROF1766への入力である。LICパラメータ導出1764は、LICパラメータを導出するために適用される。PROF1766はPROFが適用されている。LICサンプル調整1768は、PROFと組み合わせられているLIC重みおよびオフセットパラメータである。
【0123】
図17Bは、第2方法を適用した場合の復号化ワークフローの一例を示す図である。図
17Bに示すように、LICはテンプレート(すなわち、隣接する再構成サンプル)を使用してLIC線形モデルを計算するので、LICパラメータは、隣接する再構成サンプルが利用可能になるとすぐに導出することができる。これは、PROFリファインメントとLICパラメータ導出とを同時に実行することができることを意味する。
【0124】
LIC重みおよびオフセット(すなわち、αおよびβ)ならびにPROFリファインメント(すなわち、△i[x])は、一般に浮動小数点数である。フレンドリなハードウェア実装のために、これらの浮動小数点演算は、通常、1つの整数値と、それに続く右シフト演算と、多数のビットとの乗算として実装される。現行のLICおよびPROF設計では、2つのツールが別々に設計されているため、2つの異なる右シフトがそれぞれNLICビットとNPROFビットによって、2つのステージで適用される。
【0125】
本開示の第3実施形態によれば、PROFおよびLICがアフィン符号化ブロックに結合して適用される場合の符号化利得を改善するために、LICベースおよびPROFベースのサンプル調整を高精度で適用することが提案される。これは、それらの2つの右シフト演算を1つに結合し、それを最後に適用して、現在のブロックの最終予測サンプル((12)に示すように)を導出することによって行われる。
【0126】
PROFと重み付き予測およびBCW(bi-prediction with CU-level weight)とを組み合わせた場合の乗算オーバーフロー問題への対処
VVC作業ドラフトにおける現行のPROF設計によれば、PROFはWP(weighted prediction)と結合して適用できる。
【0127】
図10は、本開示によるビデオ信号を復号化するためのPROF(prediction refinement with optical flow)の方法を示す。この方法は例えば、デコーダに適用することができる。
【0128】
ステップ1010において、デコーダは、ビデオ信号のアフィンモードによって符号化されるビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することができる。
【0129】
ステップ1012では、デコーダが第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平勾配値および垂直勾配値を得ることができる。
【0130】
ステップ1014において、デコーダは、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion
vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得することができる。
【0131】
ステップ1016では、デコーダが第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きのリファインメントに基づいて、第1および第2予測リファインメントを得ることができる。
【0132】
ステップ1018において、デコーダは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し得る。
【0133】
ステップ1020において、デコーダは乗算オーバーフローを防止するために、リファ
インされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいて、ビデオブロックの最終予測サンプルを取得し得る。予測パラメータは、WP(weighted prediction)のためのパラメータと符号化ユニット(CU)レベル重み(BCW)によるバイ予測のためのパラメータを含むことができる。
【0134】
具体的には、1つのアフィンCUの予測信号を合成する際には以下の手順で生成すればよい。
【0135】
1. 位置(x,y)における各サンプルについて、PROFに基づいてL0予測リファインメント△I
0(x,y)を計算し、リファインメントをオリジナルL0予測サンプルI
0(x,y)に加える。すなわち、以下の通りである。
【数32】
I
0’(x,y)はリファインされたサンプルであり、g
h0(x,y)、g
v0(x,y)、△v
x0(x,y)、△v
y0(x,y)は、位置(x,y)におけるL0水平/垂直勾配およびL0水平/垂直動きリファインメントである。
【0136】
2. 位置(x,y)における各サンプルについて、PROFに基づいてL1予測リファインメント△I
1(x,y)を計算し、リファインメントをオリジナルL1予測サンプルI
1(x,y)に加える。すなわち、以下の通りである。
【数33】
I
1’(x,y)はリファインされたサンプルであり、g
h1(x,y)、g
v1(x,y)、△v
x1(x,y)、△v
y1(x,y)は位置(x,y)におけるL1水平/垂直勾配およびL1水平/垂直動きリファインメントである。
【0137】
3. リファインされたL0およびL1予測サンプルを結合する。すなわち、以下の通りである。
【数34】
W
0およびW
1は、WPおよびBCWの重みであり、shiftおよびOffsetはWPおよびBCWのバイ予測のためのL0およびL1予測信号の重み付け平均に適用されるオフセットおよび右シフトである。WPのパラメータはW
0、W
1、Offsetを含み、BCWのパラメータはW
0、W
1、shiftを含む。
【0138】
上記の式から分かるように、サンプルごとのリファインメント、すなわち、△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ビット乗算オーバーフロー問題を引き起こす可能性がある。
【0139】
図11は、本開示によるビデオブロックの最終予測サンプルを得ることを示す。この方法は例えば、デコーダに適用することができる。
【0140】
ステップ1110において、デコーダは、リファインされた第1および第2サンプル、ならびに予測パラメータに基づいて、ビデオブロックの最終予測サンプルを取得し得る。
【0141】
ステップ1112において、デコーダは、第1シフト値だけ右にシフトすることによって、リファインされた第1および第2サンプルを調整することができる。
【0142】
ステップ1114において、デコーダは、リファインされた第1および第2サンプルを結合することによって、結合された予測サンプルを得ることができる。
【0143】
ステップ1116において、デコーダは、結合された予測サンプルを第1シフト値だけ左シフトすることによって、ビデオブロックの最終予測サンプルを得ることができる。
【0144】
このようなオーバーフロー問題を解決するために、以下に複数の方法が提案される。
【0145】
1.第1方法では、PROFが1つのアフィンCUに適用されるとき、WPおよびBCWを無効にすることが提案される。
【0146】
2.第2方法では、オリジナル予測サンプルに加算する前に、導出されたサンプルリファインメントに1つのクリッピング操作を適用して、リファインされた予測サンプルI
0’(x,y)およびI
1’(x,y)のダイナミックレンジがオリジナル予測サンプルI
0(x,y)およびI
1(x,y)のダイナミックビット深度と同じダイナミックビット深度を有するようにすることが提案される。具体的には、このような方法によって、(23)および(24)におけるサンプルリファインメント△I
0(x,y)および△I
1(x,y)は以下に示すように、1つのクリッピング操作を導入することによって修正される。
【数35】
dI=dI
base+max(0,BD-12)であり、BDは内部符号化ビット深度、dI
baseはベースビット深度の値である。一実施形態では、dI
baseの値を14に設定することが提案される。別の実施形態では、値を13に設定することが提案される。
【0147】
3.第3方法では、リファインされたサンプルがオリジナル予測サンプルのダイナミックレンジと同じイナミックレンジを有するようにサンプルリファインメントをクリッピングする代わりに、リファインされた予測サンプルを直接クリッピングすることが提案される。具体的には第3方法によって、リファインされたL0およびL1サンプルは以下のよう
になる。
【数36】
dR=16+max(0,BD-12)(または同等にmax(16,BD+4))であり、BDは内部符号化ビット深度である。
【0148】
4. 第4方法ではWPおよびBCWの前に、リファインされたL0およびL1予測サンプルに特定の右シフトを適用することが提案され、次いで、最終予測サンプルは追加の左シフトによってオリジナル精度に調整される。具体的には、最終予測サンプルが以下のように導出される。
【数37】
nbは適用される追加のビットシフトの数であり、PROFサンプルリファインメントの対応するダイナミックレンジに基づいて決定されてもよい。
【0149】
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を含む1つまたは複数の回路を含む装置を使用して実装され得る。装置は上述の方法を実行するために、他のハードウェアまたはソフトウェアコンポーネントと組み合わせて回路を使用することができる。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装され得る。
【0150】
図19は、ユーザインターフェース1960に結合されたコンピューティング環境1910を示す。コンピューティング環境1910は、データ処理サーバの一部とすることができる。コンピューティング環境1910は、プロセッサ1920、メモリ1940、およびI/Oインターフェース1950を含む。
【0151】
プロセッサ1920は、典型的には表示、データ取得、データ通信、および画像処理に関連する動作のような、コンピューティング環境1910の全体的な動作を制御する。プロセッサ1920は上述の方法におけるステップのすべてまたは一部を実行する命令を実行するために、1つ以上のプロセッサを含んでもよい。さらに、プロセッサ1920は、プロセッサ1920と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。プロセッサは、セントラルプロセッシングユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどである。
【0152】
メモリ1940はコンピューティング環境1910の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1940は、所定のソフトウェア1942を含むことができる。そのようなデータの例は、コンピューティング環境1910上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1940は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、プログラマブルリードオンリメモリ
(PROM)、リードオンリメモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性または不揮発性メモリ装置、またはそれらの組合せを使用することによって実装され得る。
【0153】
I/Oインターフェース1950は、プロセッサ1920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンはホームボタン、スタートスキャンボタン、およびストップスキャンボタンを含むことができるが、これらに限定されない。I/Oインターフェース1950は、エンコーダおよびデコーダに結合することができる。
【0154】
いくつかの実施形態では、上述の方法を実行するために、コンピューティング環境1910内のプロセッサ1920によって実行可能な、メモリ1940に含まれるような複数のプログラムを含む、非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク、光データストレージ等であってもよい。
【0155】
非一時的コンピュータ可読記憶媒体は1つ以上のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを記憶しており、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上述の動き予測方法を実行させる。
【0156】
いくつかの実施形態では、コンピューティング環境1910が上記の方法を実行するために、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセッシング(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装され得る。
【0157】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替実施形態が明らかになるのであろう。
【0158】
実施例は本開示の原理を説明し、他の当業者が様々な実施のための本開示を理解し、意図される特定の使用に適した様々な修正を伴う基礎となる原理および様々な実施を最良に利用することを可能にするために選択され、説明された。したがって、本開示の範囲は開示された実装の特定の例に限定されるべきではなく、修正および他の実装は本開示の範囲内に含まれることが意図されることを理解されたい。
【0159】
〔関連出願の相互参照〕
本出願は2019年8月23日に出願された仮出願第62/891,273号に基づき、その優先権を主張し、その全内容は、あらゆる目的のために参照によりその全体が本明細書に組み込まれる。
【手続補正書】
【提出日】2023-11-20
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオ符号化および圧縮に関する。より具体的には、本開示は、VVC(versatile video coding)規格で検討される2つのインター予測ツールに関する方法および装置、すなわち、PROF(prediction refinement with optical flow)およびBDOF(bi-directional optical flow)に関する。
【背景技術】
【0002】
ビデオデータを圧縮するために、様々なビデオ符号化技術を使用することができる。ビデオ符号化は、一つ以上のビデオ符号化標準に従って実行される。例えば、ビデオ符号化規格は、VVC(versatile video coding)、JEM(joint exploration test model)、H.265/HEVC(high efficiency video coding)、H.264/AVC(advanced video coding)、MPEG(moving picture expert group)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標はビデオ品質の劣化を回避し、または最小限に抑えながら、ビデオデータをより低いビットレートを使用する形式に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の例は、PROF(prediction refinement with optical flow)による予測リファインメントのための方法および装置を提供する。
【課題を解決するための手段】
【0004】
本開示の第1態様によれば、デコーダに実装されるPROF(prediction refinement with optical flow:オプティカルフローによる予測リファインメント)が提供される。この方法は、ビデオ信号内のアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することを含み得る。この方法は、第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連する第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1水平勾配値および第2垂直勾配値を取得することも含むことができる。本方法は、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion vectors:制御点動きベクトル)に基づいて、第1および第2水平および垂直動きリファインメントを得ることを更に含むことができる。本方法は、第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きリファインメントに基づいて、第1および第2予測リファインメントを得ることを含んでもよい。この方法は、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得することをさらに含むことができる。この方法は、乗算オーバーフローを防止するためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルを取得することを含むことができる。予測パラメータは、WP(weighted prediction:加重予測)のためのパラメータとBCW(biprediction with coding unit(CU)-level weight:符号化ユニットCU(coding unit:符号化ユニット)レベル重みによるバイ予測)のためのパラメータを含むことができる。WP(weighted prediction:加重予測)のパラメータ及びBCW(biprediction with coding unit(CU)-level weight:符号化ユニットCU(coding unit:符号化ユニット)レベル重みによるバイ予測)のパラメータは各々リファインされた第1サンプルの第1重み及びリファインされた第2サンプルの第2重みを含む。
【0005】
本開示の第2態様によれば、コンピューティングデバイスが提供される。このコンピューティングデバイスは、1つ以上のプロセッサと、1つ以上のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリと、を含んでもよい。1つ以上のプロセッサは、ビデオ信号内でアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得するように構成され得る。1つ以上のプロセッサはまた、第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1水平勾配値および第2垂直勾配値を取得するように構成され得る。1つ以上のプロセッサは、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連するCPMV(control point motion vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得するように構成され得る。1つ以上のプロセッサは、第1および第2水平および垂直勾配値と、第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得するようにさらに構成され得る。1つ以上のプロセッサは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得するように構成され得る。1つ以上のプロセッサはさらに、乗算オーバーフローを防止するためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルを取得するように構成され得る。予測パラメータは、WPのためのパラメータおよびBCWのためのパラメータを含むことができる。WP(weighted prediction:加重予測)のパラメータ及びBCW(biprediction with coding unit(CU)-level weight:符号化ユニットCU(coding unit:符号化ユニット)レベル重みによるバイ予測)のパラメータは各々リファインされた第1サンプルの第1重み及びリファインされた第2サンプルの第2重みを含む。
【0006】
本開示の第3の態様によれば、命令を格納した非一時的コンピュータ可読記憶媒体が提供される。命令が装置の1つまたは複数のプロセッサによって実行されると、命令は、デコーダで、ビデオ信号のアフィンモードによって符号化され得るビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することを装置に実行させ得る。命令は装置に、デコーダで、第1参照ピクチャである第2参照ピクチャに関連する第1予測サンプルおよび第2予測サンプルに基づいて、第1水平勾配値および第2垂直勾配値を取得することを実行させることができる。命令は装置に、デコーダで、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連するCPMV(control point motion vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得することを実行させることができる。命令は更に、第1および第2水平および垂直勾配値、並びに第1および第2水平および垂直動きリファインメントに基づいて、第1および第2予測リファインメントを、デコーダにおいて、取得することを装置に行わせることができる。命令は、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、デコーダにおいて、リファインされた第1および第2サンプルを取得することを、装置にさらに実行させることができる。命令は装置に、乗算オーバーフローを防ぐためにリファインされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいてビデオブロックの最終予測サンプルをデコーダで取得することを実行させてもよい。予測パラメータは、WPのためのパラメータおよびBCWのためのパラメータを含んでもよい。WP(weighted prediction:加重予測)のパラメータ及びBCW(biprediction with coding unit(CU)-level weight:符号化ユニットCU(coding unit:符号化ユニット)レベル重みによるバイ予測)のパラメータは各々リファインされた第1サンプルの第1重み及びリファインされた第2サンプルの第2重みを含む。
【図面の簡単な説明】
【0007】
【
図1】本開示の一例によるエンコーダのブロック図である。
【
図2】本開示の一例によるデコーダのブロック図である。
【
図3A】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3B】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3C】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3D】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図3E】本開示の一例による、マルチタイプツリー構造におけるブロック分割を示す図である。
【
図4】本開示の一例による、BDOF(bi-directional optical flow)モデルの図示である。
【
図5A】本開示の一例によるアフィンモデルの図である。
【
図5B】本開示の一例によるアフィンモデルの図である。
【
図6】本開示の一例によるアフィンモデルの図である。
【
図7】本開示の一例による、PROF(prediction refinement with optical flow)の説明図である。
【
図8】本開示の一例による、BDOFのワークフローである。
【
図9】本開示の一例によるPROFのワークフローである。
【
図10】本開示の一例による、ビデオ信号を復号化するためのBDOFおよびPROFの統合方法である。
【
図11】本開示の一例による、ビデオ信号を復号化するためのBDOFおよびPROFの方法である。
【
図12】本開示の一例による、バイ予測のためのPROFのワークフローの図である。
【
図13】本開示による、BDOFおよびPROFプロセスのパイプラインステージの図である。
【
図14】本開示による、BDOFの勾配導出方法の図である。
【
図15】本開示による、PROFの勾配導出方法の図である。
【
図16A】本開示の一例による、アフィンモードのためのテンプレートサンプルを導出する図である。
【
図16B】本開示の一例による、アフィンモードのためのテンプレートサンプルを導出する図である。
【
図17A】本開示の一例による、アフィンモードのためにPROFおよびLICを排他的に有効化する図である。
【
図17B】本開示の一例による、アフィンモードのためにPROFおよびLICを結合して使用可能にする図である。
【
図18A】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18B】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18C】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図18D】本開示の一例による、16×16BDOF CUに適用される提案されたパディング方法を示す図である。
【
図19】本開示の一例による、ユーザインターフェースに結合されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0008】
上記の一般的な説明および以下の詳細な説明は、例示的かつ説明的なものにすぎず、本開示を限定することを意図するものではないことを理解されたい。
【0009】
本明細書に組み込まれ、その一部を構成する添付の図面は本開示と一致する例を示し、説明とともに、本開示の原理を説明する役割を果たす。
【0010】
次に、例示的な実施形態を詳細に参照し、その例を添付の図面に示す。以下の説明は添付の図面を参照し、異なる図面中の同じ符号は、特に示さない限り、同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装は、本開示と一致するすべての実装を表すわけではない。むしろ、それらは、添付の特許請求の範囲に記載されるような本開示に関連する態様と一致する装置および方法の単なる例である。
【0011】
本開示で使用される用語は特定の実施形態を説明するためだけのものであり、本開示を限定することを意図するものではない。本開示および添付の特許請求の範囲で使用されるように、単数形「1つ」などは文脈がそうでないことを明確に示さない限り、複数形も含むことが意図される。また、本明細書で使用される「および/または」という用語は関連する列挙された項目のうちの1つまたは複数の任意のまたはすべての可能な組合せを意味し、含むことが意図されることを理解されたい。
【0012】
「第1」、「第2」、「第3」などの用語は様々な情報を説明するために本明細書で使用され得るが、情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1情報を第2情報と呼ぶことができ、同様に、第2情報も第1情報と呼ぶことができる。本明細書で使用されるように、用語「もし、~ならば」は、文脈に応じて、「ときに」または「際に」または「判定に応答して」を意味すると理解されてもよい。
【0013】
HEVC規格の第1バージョンは2013年10月に完成し、これは、従来の世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビットレート節約または同等の知覚品質を提供する。HEVC規格はその先行技術よりも著しい符号化改善を提供するが、HEVCよりも優れた符号化効率が追加の符号化ツールを用いて達成され得るという証拠がある。これに基づき、VCEGとMPEGの両方が、将来のビデオ符号化標準化のための新しい符号化技術の探索作業を開始した。ITU-T VECGとISO/IEC MPEGが2015年10月に1つのJVET(Joint Video Exploration Team)を結成し、符号化効率の大幅な向上を可能にする高度な技術の研究を開始した。JEM(joint exploration model)と呼ばれる1つの参照ソフトウェアは、HEVC試験モデル(HM)の上にいくつかの追加の符号化ツールを統合することによって、JVETによって維持された。
【0014】
2017年10月、ITU-TおよびISO/IECは、HEVCを超えたビデオ圧縮に関する共同CfP(Call for Proposals)を発表した。2018年4月には、第10回JVET会議で23のCfP回答を得て評価したところ、約40%のHEVCを超える圧縮効率の向上が示された。このような評価結果を踏まえ、JVETは、VVC(Versatile Video Coding)と呼ばれる新世代ビデオ符号化規格を開発するための新たなプロジェクトを立ち上げた。同月に、VVC試験モデル(VTM)と呼ばれる1つの参照ソフトウェアコードベースが、VVC標準の参照実装を実証するために確立された。
【0015】
HEVCと同様に、VVCはブロックベースのハイブリッドビデオ符号化フレームワー
クに基づいて構築される。
【0016】
図1は、VVCのためのブロックベースのビデオエンコーダの一般的な図を示す。具体的には、
図1は典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラモード/インターモード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、インループフィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0017】
エンコーダ100において、ビデオフレームは、処理のために複数のビデオブロックに分割される。与えられた各ビデオブロックに対して、インター予測アプローチまたはイントラ予測アプローチのいずれかに基づいて予測が形成される。
【0018】
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差は、加算器128から変換器130に送られる。次に、変換係数はエントロピー低減のために、変換130から量子化132に送られる。次に、量子化された係数がエントロピー符号化138に供給されて、圧縮ビデオビットストリームが生成される。
図1に示すように、ビデオブロック分割情報、動きベクトル(MV)、参照ピクチャインデックス、およびイントラ予測モードなどのイントラ/インターモード決定116からの予測関連情報142もエントロピー符号化138を介して供給され、圧縮ビットストリーム144に保存される。圧縮ビットストリーム144は、ビデオビットストリームを含む。
【0019】
エンコーダ100では、予測の目的でピクセルを再構成するために、デコーダ関連の回路も必要である。まず、逆量子化134と逆変換136を通して予測残差を再構成する。この再構成された予測残差をブロック予測子140と組み合わせて、現在のビデオブロックに対してフィルタ処理されていない再構成ピクセルを生成する。
【0020】
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用して、現在のビデオブロックを予測する。
【0021】
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成ピクセルを使用して、現在のビデオブロックを予測する。時間的予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU)または符号化ブロックの時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは複数のMVによってシグナリングされる。さらに、複数の参照ピクチャがサポートされる場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストレージ内のどの参照ピクチャから時間予測信号が来るかを識別するために使用される。
【0022】
動き推定114は、ビデオ入力110およびピクチャバッファ120からの信号を取り込み、動き推定信号である動き補償112に出力する。動き補償112はビデオ入力110、ピクチャバッファ120からの信号、および動き推定114からの動き推定信号を取り込み、動き補償信号であるイントラモード/インターモード決定116に出力する。
【0023】
空間的および/または時間的予測が実行された後、エンコーダ100内のイントラ/インターモード決定116は例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、ブロック予測子140は現在のビデオブロックから減算され、結果と
して生じる予測残差は変換130および量子化132を使用して相関解除される。得られた量子化残差係数は逆量子化134によって逆量子化され、逆変換136によって逆変換されて再構成された残差を形成し、次いで、予測ブロックに加算されて、CUの再構成された信号を形成する。デブロッキングフィルタ、SAO(sample adaptive offset)、および/またはALF(adaptive in-loop filter)などのさらなるインループフィルタリング122を、再構成されたCUがピクチャバッファ120の参照ピクチャストレージに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニット138に送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0024】
図1は、一般的なブロックベースのハイブリッドビデオ符号化システムのブロック図を示す。入力ビデオ信号は、ブロック毎に処理される(符号化ユニット(CU)と呼ばれる)。VTM-1.0では、CUは128×128ピクセルまでであることができる。しかしながら、4分木のみに基づいてブロックを分割するHEVCとは異なり、VVCでは、1つの符号化ツリーユニット(CTU)が4分木/2分木/3分木に基づいて変化するローカル特性に適応するようにCUに分割される。さらに、HEVCにおける多重分割ユニットタイプの概念は除去され、すなわち、CU、予測ユニット(PU)および変換ユニット(TU)の分離はもはやVVCには存在せず、代わりに、各CUは、さらなる分割なしで、予測および変換の両方のための基本ユニットとして常に使用される。マルチタイプツリー構造では、まず、1つのCTUを4分木構造で分割する。次に、各4分木リーフノードは、2分木構造および3分木構造によってさらに分割することができる。
【0025】
図3A、
図3B、
図3C、
図3D、および
図3Eに示すように、5つの分割タイプ、すなわち、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割がある。
【0026】
図3Aは、本開示による、マルチタイプツリー構造におけるブロック4分割を示す図である。
【0027】
図3Bは、本開示による、マルチタイプツリー構造におけるブロック垂直2分割を示す図である。
【0028】
図3Cは、本開示による、マルチタイプツリー構造におけるブロック水平2分割を示す図である。
【0029】
図3Dは、本開示による、マルチタイプツリー構造におけるブロック垂直3分割を示す図である。
【0030】
図3Eは、本開示による、マルチタイプツリー構造におけるブロック水平3分割を示す図である。
【0031】
図1では、空間予測および/または時間的予測を行ってもよい。空間予測(または「イントラ予測」)は現在のビデオブロックを予測するために、同じビデオピクチャ/スライス内の既に符号化された隣接ブロック(参照サンプルと呼ばれる)のサンプルからのピクセルを使用する。空間予測は、ビデオ信号に固有の空間冗長性を低減する。時間的予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構成されたピクセルを使用して、現在のビデオブロックを予測する。時間的予測は、ビデオ信号に固有の時間的冗長性を低減する。所与のCUについての時間予測信号は、通常、現在のCUとその時間基準との間の動きの量および方向を示す1つまたは
複数の動きベクトル(MV)によってシグナリングされる。また、複数の参照ピクチャがサポートされている場合、1つの参照ピクチャインデックスがさらに送信され、参照ピクチャインデックスは、参照ピクチャストア内のどの参照ピクチャから時間予測信号が来るかを識別するために使用される。空間的および/または時間的予測の後、エンコーダ内のモード決定ブロックは例えば、レート歪み最適化法に基づいて、最良の予測モードを選択する。次いで、予測ブロックは現在のビデオブロックから減算され、予測残差は変換を用いて相関解除され、量子化される。量子化残差係数を逆量子化し、逆変換して再構成残差を形成し、それを予測ブロックに再加算してCUの再構成信号を形成する。デブロッキングフィルタ、SAO(sample adaptive offset)およびALF(adaptive in-loop filter)などのさらなるインループフィルタリングを、再構成されたCUが参照ピクチャストアに入れられ、将来のビデオブロックを符号化するために使用される前に、再構成されたCUに適用することができる。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数はすべて、エントロピー符号化ユニットに送られ、さらに圧縮され、パックされてビットストリームを形成する。
【0032】
図2は、VVC用のビデオデコーダの一般的なブロック図を示す。具体的には、
図2は典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号化212、逆量子化214、逆変換216、加算器218、イントラ/インターモード選択220、イントラ予測222、メモリ230、インループフィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0033】
デコーダ200は、
図1のエンコーダ100内に存在する再構成関連部分に類似している。デコーダ200において、入力ビデオビットストリーム210は量子化された係数レベルおよび予測関連情報を導出するために、エントロピー復号化212を介して最初に復号化される。次いで、量子化された係数レベルは、逆量子化214および逆変換216を介して処理され、再構成された予測残差を得る。イントラ/インターモードセレクタ220で実施されるブロック予測機構は、復号化された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実行するように構成される。逆変換216からの再構成予測残差とブロック予測機構により生成された予測出力とを加算器218を用いて合計することにより、フィルタ処理されない再構成ピクセルの集合が得られる。
【0034】
再構成されたブロックは参照ピクチャストアとして機能するピクチャバッファ226に格納される前に、インループフィルタ228をさらに通過することができる。ピクチャバッファ226内の再構成されたビデオは、将来のビデオブロックを予測するために使用されるだけでなく、ディスプレイデバイスを駆動するために送信されてもよい。インループフィルタ228がオンになっている状況では、最終的な再構成ビデオ出力232を導出するために、これらの再構成ピクセルに対してフィルタリング操作が行われる。
【0035】
図2は、ブロックベースのビデオデコーダの一般的なブロック図を与える。ビデオビットストリームは、最初にエントロピー復号化ユニットでエントロピー復号化される。符号化モードおよび予測情報は予測ブロックを形成するために、空間予測ユニット(イントラ符号化されている場合)または時間予測ユニット(インター符号化されている場合)のいずれかに送られる。残差変換係数は逆量子化ユニットと逆変換ユニットに送られ、残差ブロックを再構成する。次に、予測ブロックと残差ブロックとが加算される。再構成されたブロックは参照ピクチャストアに格納される前に、インループフィルタリングをさらに経ることができる。次に、参照ピクチャストア内の再構成されたビデオは、ディスプレイデバイスを駆動するために送出され、将来のビデオブロックを予測するために使用される。
【0036】
一般に、VVCに適用される基本的なインター予測技法は、いくつかのモジュールがさらに拡張および/または強化されることを除いて、HEVCと同じに保たれる。特に、全ての先行するビデオ規格について、1つの符号化ブロックは、符号化ブロックが単一予測される場合には1つの単一MVにのみ関連付けられ、符号化ブロックがバイ予測される場合には2つのMVに関連付けられる。従来のブロックベース動き補償のこのような制限のために、小さな動きは、動き補償後もなお予測サンプル内にとどまることができ、従って、動き補償の全体効率に負の影響を与える。MVの粒度とリファインメントの両方を改善するために、オプティカルフローに基づく2つのサンプルワイズリファインメント法、即ち、アフィンモードに対するBDOF(bi-directional optical
flow)とPROF(prediction refinement with optical flow)を、現在、VVC規格に対して検討している。以下では、2つのインター符号化ツールの主な技術的側面を簡単に検討する。
【0037】
双方向オプティカルフロー
VVCでは、双方向オプティカルフロー(BDOF)を、バイ予測符号化ブロックの予測サンプルをリファインするために適用した。具体的には
図4に示すように、BDOFはバイ予測が使用されるときにブロックベースの動き補償予測のトップで実行される、サンプルワイズの動きリファインメントである。
【0038】
【0039】
各4×4サブブロックの動きリファインメント(v
x,v
y)は、BDOFがサブブロックの周りの1つの6×6ウィンドウΩ内で適用された後、L0予測サンプルとL1予測サンプルとの間の差を最小化することによって計算される。具体的には(v
x,v
y)の値は以下のように導出される。
【数1】
L字および左右反転したL字は、フロア関数である。clip3(min、max、x)は[min、max]の範囲内の所与の値xをクリッピングする関数である。記号>>はビットごとの右シフト演算を表し、記号<<はビットごとの左シフト演算を表す。th
BDOFは、不規則な局所的動きによる伝播エラーを防止するための動きリファインメント閾値であり、1<<<max(5、bit-depth-7)に等しく、bit-depthは、内部ビット深度である。(1)では、以下の通りである。
【数2】
【0040】
S
1,S
2,S
3,S
5,S
6は以下のように算出される。
【数3】
【数4】
ここで、
【数5】
I
(k)(i,j)は、リストk、k=0,1の予測信号の座標(i,j)でのサンプル値であり、中レベルの高精度(すなわち、16ビット)で生成される。∂I
(k)(i,j)/∂xおよび∂I
(k)(i,j)/∂yは、その2つの隣接するサンプル間の差を直接計算することによって得られるサンプルの水平勾配および垂直勾配である。
【数6】
【0041】
(1)で導出した動きリファインメントに基づいて、CUの最終バイ予測サンプルは次のように、オプティカルフローモデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって計算される。
【数7】
shiftおよびο
offsetは、それぞれ15-bitdepthおよび1<<(14-bitdepth)+2・(1<<13)に等しい、バイ予測のためにL0およびL1予測信号を結合するために適用される右シフト値およびオフセット値である。上記のビット深度制御方法に基づいて、全BDOFプロセスの中間パラメータの最大ビット深度が32ビットを超えず、乗算への最大入力が15ビット以内であること、すなわち、1つの15ビット乗算器がBDOF実施に十分であることが保証される。
【0042】
アフィンモード
HEVCでは、動き補償予測のために並進動きモデルのみを適用される。一方、現実世界では、ズームイン/ズームアウト、回転、パースペクティブモーション、および他の不規則な動きなど、多くの種類の動きがある。VVCでは、アフィン動き補償予測が各インター符号化ブロックに対して1つのフラグをシグナリングすることによって適用され、並進動きモデルまたはアフィン動きモデルがインター予測に適用されるかどうかを示す。現在のVVC設計では、4パラメータアフィンモードおよび6パラメータアフィンモードを含む2つのアフィンモードが1つのアフィン符号化ブロックに対してサポートされる。
【0043】
4パラメータアフィンモデルは以下のパラメータ、すなわち、それぞれ水平方向および垂直方向の並進動きのための2つのパラメータと、ズーム動きのための1つのパラメータと、両方向の回転動きのための1つのパラメータとを有する。水平ズームパラメータは、垂直ズームパラメータと同じである。水平回転パラメータは、垂直回転パラメータと等しくなる。動きベクトルおよびアフィンパラメータのより良好な適応を達成するために、VVCにおいて、これらのアフィンパラメータは、現在のブロックの左上隅および右上隅に位置する2つのMV(制御点動きベクトル(CPMV)とも呼ばれる)に変換される。
図5Aおよび
図5Bに示すように、ブロックのアフィンモーションフィールドは、2つの制御点MV(V
0、V
1)によって記述される。
【0044】
図5Aは、本開示による、4パラメータアフィンモデルの図を示す。
【0045】
図5Bは、本開示による4パラメータアフィンモデルの図を示す。
【0046】
制御点動きに基づいて、1つのアフィン符号化ブロックのモーションフィールド(v
x,v
y)を以下のように記述する。
【数8】
【0047】
6パラメータアフィンモードは、それぞれ水平および垂直方向の並進動きのための2つのパラメータ、ズーム動きのための1つのパラメータおよび水平方向の回転動きのための1つのパラメータ、ズーム動きのための1つのパラメータおよび垂直方向の回転動きのための1つのパラメータを有する。6パラメータアフィン動きモデルは、3つのCPMVで3つのMVで符号化される。
【0048】
図6は、本開示による6パラメータアフィンモデルの図を示す。
【0049】
図6に示すように、1つの6パラメータアフィンブロックの3つの制御点は、ブロックの左上、右上、左下隅に位置する。左上の制御点での動きは並進移動動きに関連し、右上の制御点での動きは水平方向の回転とズーム動きに関連し、左下の制御点での動きは垂直方向の回転とズーム動きに関連する。4パラメータアフィンモーションモデルと比較して、6パラメータの水平方向の回転とズーム動きは、垂直方向の動きと同じでないことがある。(V
0、V
1、V
2)を
図6の現在のブロックの左上隅、右上隅、左下隅のMVであると仮定すると、それぞれのサブブロックの動きベクトル(v
x,v
y)は、以下のように制御点で3つのMVを用いて導出される。
【数9】
【0050】
アフィンモードのオプティカルフローによる予測リファインメント(PROF)
アフィン動き補償精度を改善するために、PROFは、現在、オプティカルフローモデルに基づいてサブブロックベースのアフィン動き補償をリファインする現行VVCで検討されている。具体的には、サブブロックベースのアフィン動き補償を行った後、一つのアフィンブロックの輝度予測サンプルを、オプティカルフロー方程式に基づいて導出された一つのサンプルリファインメント値によって修正する。詳細には、PROFの動作が以下の4つのステップとして要約することができる。
【0051】
ステップ1:サブブロックベースのアフィン動き補償は、4パラメータアフィンモデルについて(6)で、および6パラメータアフィンモデルについて(7)で導出されるようなサブブロックMVを使用してサブブロック予測I(i,j)を生成するために実行される。
【0052】
ステップ2:空間勾配g
x(i,j)およびg
y(i,j)および各予測サンプルの値は、以下のように計算される。
【0053】
勾配を計算するために、予測サンプルの1つの追加の行/列が、1つのサブブロックの各サイドで生成される必要がある。メモリ帯域幅および複雑さを低減するために、拡張境界上のサンプルは追加の補間プロセスを回避するために、参照ピクチャ内の最も近い整数ピクセル位置からコピーされる。
【0054】
ステップ3:輝度予測リファインメント値は、以下によって計算される。
【数10】
△v(i,j)は、サンプル位置(i,j)に対して計算され、v(i,j)によって表されるピクセルMVと、ピクセル(i,j)が位置するサブブロックのサブブロックMVとの間の差である。さらに、現在のPROF設計では、予測リファインメントをオリジナル予測サンプルに追加した後、リファインされた予測サンプルの値を15ビット以内にクリッピングするために、1つのクリッピング動作が実行される。すなわち、以下の通りである。
【数11】
I(i,j)およびI
r(i,j)は、それぞれ、位置(i,j)におけるオリジナル予測サンプルおよびリファインされた予測サンプルである。
【0055】
図7は、本開示による、アフィンモードのためのPROFプロセスを示す。
【0056】
アフィンモデルパラメータとサブブロック中心に対するピクセル位置はサブブロックごとに変わらないので、△v(i,j)は、最初のサブブロックに対して計算でき、同じCU内の他のサブブロックに対して再利用できる。サンプル位置(i,j)からサンプルが属するサブブロックの中心までの水平および垂直オフセットを△xおよび△yとすると、△v(i,j)を以下のように導出することができる。
【数12】
【0057】
アフィンサブブロックMV導出方程式(6)および(7)に基づいて、MV差△v(i,j)を導出することができる。具体的には、4パラメータアフィンモデルでは以下の通りである。
【数13】
【0058】
6パラメータアフィンモデルでは、以下の通りである。
【数14】
(v
0x,v
0y),(v
1x,v
1y),(v
2x,v
2y)は現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhはブロックの幅および高さである。既存のPROF設計では、MV差△v
xおよび△v
yは常に1/32‐pelの精度で導出される。
【0059】
局所照明補償
局所照明補償(LIC)は、時間的に隣接するピクチャ間に存在する局所照明変化の問題に対処するために使用される符号化ツールである。1対の重みおよびオフセットパラメータが参照サンプルに適用されて、1つの現在のブロックの予測サンプルが得られる。一般的な数学モデルは以下のように与えられる。
【数15】
P
r[x+v]は動きベクトルvによって示される参照ブロックで、[α,β]は参照ブロックの対応する重みとオフセットパラメータの対であり、P[x]は最終予測ブロックである。重みおよびオフセットパラメータの対は現在のブロックのテンプレート(すなわち、隣接する再構成されたサンプル)およびテンプレートの参照ブロック(現在のブロックの動きベクトルを使用して導出される)に基づいて、LLMSE(least linear mean square error)アルゴリズムを使用して推定される。テンプレートサンプルとテンプレートの参照サンプルとの間の平均二乗差を最小化することによって、αおよびβの数学的表現は、以下のように導出することができる。
【数16】
【0060】
Iはテンプレート中のサンプルの数を表す。Pc[xi]は現在のブロックのテンプレートのi番目のサンプルであり、Pr[xi]は動きベクトルvに基づくi番目のテンプレートサンプルの参照サンプルである。
【0061】
各予測方向(L0またはL1)に対して多くとも1つの動きベクトルを含む通常のインターブロックに適用されることに加えて、LICは、1つの符号化ブロックが複数のより小さいサブブロックにさらに分割され、各サブブロックが異なる動き情報に関連付けられ得るアフィンモード符号化ブロックにも適用される。アフィンモード符号化ブロックのL
ICのための参照サンプルを導出するために、
図16Aおよび16B(後述)に示すように、1つのアフィン符号化ブロックの最上位テンプレートの参照サンプルは最上位サブブロック行の各サブブロックの動きベクトルを使用してフェッチされ、一方、左側テンプレートの参照サンプルは左側サブブロック列のサブブロックの動きベクトルを使用してフェッチされる。その後、(12)と同様のLLMSE導出方法を適用して、合成テンプレートに基づいてLICパラメータを導出する。
【0062】
図16Aは、本開示による、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Cur Frame1620およびCur CU1622を含む。Cur Frame1620は、現在のフレームである。Cur CU 1622は、現在の符号化ユニットである。
【0063】
図16Bは、アフィンモードのためのテンプレートサンプルを導出するための図を示す。図は、Ref Frame1640、Col CU1642、A Ref1643、B
Ref1644、C Ref1645、D Ref1646、E Ref1647、F
Ref1648、およびG Ref1649を含む。Ref Frame1640は参照フレームである。Col CU1642は、並置された符号化ユニットである。A Ref1643、B Ref1644、C Ref1645、D Ref1646、E Ref1647、F Ref1648、G Ref1649は参照サンプルである。
【0064】
アフィンモードに対するオプティカルフローによる予測リファインメントの非効率性
PROFはアフィンモードの符号化効率を高めることができるが、その設計はまだ更に改善できる。特に、PROFおよびBDOFの両方がオプティカルフローコンセプトに基づいて構築されることを考えると、PROFがハードウェアの実装を容易にするためにBDOFの現存するロジックを最大限に活用できるように、PROFおよびBDOFの設計をできるだけ調和させることが極めて望ましい。このような考察に基づいて、現在のPROF設計とBDOF設計との間のインタラクションに関する以下の非効率性が、本開示で識別される。
【0065】
1.「アフィンモードのオプティカルフローによる予測リファインメント」で説明したように、式(8)において、勾配の精度は内部ビット深度に基づいて決定される。一方、MV差、すなわち、△vxおよび△vyは、常に1/32-pelの精度で導出される。これに対応して、式(9)に基づいて、導出されたPROFリファインメントの精度は内部ビット深度に依存する。しかしながら、BDOFと同様に、PROFはより高いPROF導出精度を維持するために、中レベルの高ビット深度(すなわち、16ビット)で予測サンプル値の上に適用される。したがって、内部符号化ビット深度にかかわらず、PROFによって導出される予測リファインメントの精度は中間予測サンプル、すなわち16ビットの精度と一致しなければならない。言い換えると、既存のPROF設計におけるMV差分と勾配の表現ビット深度は予測サンプル精度(すなわち16ビット)と比較して正確な予測リファインメントを導出するために完全に整合していない。一方、式(1)、(4)および(8)の比較に基づいて、既存のPROFおよびBDOFはサンプル勾配およびMV差を表すために異なる精度を使用する。先に指摘したように、このような統一されていない設計は既存のBDOFロジックを再使用することができないので、ハードウェアにとって望ましくない。
【0066】
2.「アフィンモードのオプティカルフローによる予測リファインメント」の項で検討したように、一つのカレントアフィンブロックがバイ予測されるとき、PROFをリストL0およびL1の予測サンプルに別々に適用し、それから、強化されたL0およびL1予測信号を平均化して最終バイ予測信号を生成する。反対に、各予測方向に対するPROFリファインメントを別々に導出する代わりに、BDOFは予測リファインメントを一旦導出
し、それは次に、結合L0およびL1予測信号を強化するために適用される。
図8および
図9(後述)はバイ予測のための現在のBDOFおよびPROFのワークフローを比較する。実際のコーデックハードウェアパイプライン設計では通常、より多くの符号化ブロックを並列に処理できるように、異なる主要な符号化/復号化モジュールを各パイプラインステージに割り当てる。しかしながら、BDOFワークフローとPROFワークフローとの間の差異のために、BDOFとPROFとによって共有されることができる1つの同じパイプライン設計を有することを困難にする可能性があり、これは実用的なコーデック実装には不利である。
【0067】
図8は本開示によるBDOFのワークフローを示す。ワークフロー800がL0動き補償810、L1動き補償820、およびBDOF830を含む。L0動き補償810は例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャはビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償820は次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャがビデオブロック内の現在のピクチャの後の参照ピクチャである。BDOF830が
図4に関して上述したように、L1動き補償810およびL1動き補償820から動き補償サンプルを取り込み、予測サンプルを出力する。
【0068】
図9は本開示による既存のPROFのワークフローを示す。ワークフロー900がL0動き補償910、L1動き補償920、L0 PROF930、L1 PROF940、および平均化960を含む。L0動き補償910は例えば、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャはビデオブロック内の現在のピクチャから前の参照ピクチャである。例えば、L1動き補償920は次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャがビデオブロック内の現在のピクチャの後の参照ピクチャである。L0 PROF930が前述の
図7に関して説明したように、L0動き補償910からL0動き補償サンプルを取り込み、動きリファインメント値を出力する。L1 PROF940は上述の
図7に関して説明したように、L1動き補償920からL1動き補償サンプルを取り込み、動きリファインメント値を出力する。平均化960はL0 PROF930およびL1 PROF940の動きリファインメント値出力を平均化する。
【0069】
3.BDOFおよびPROFの両方について、勾配は現在の符号化ブロック内の各サンプルについて計算される必要があり、これはブロックの各サイドで予測サンプルの1つの追加の行/列を生成することを必要とする。サンプル補間の付加的な計算の複雑さを回避するために、ブロックの周りの拡張領域内の予測サンプルは整数位置で(すなわち、補間なしで)参照サンプルから直接コピーされる。しかし、既存の設計ではBDOFとPROFの勾配値を生成するために、異なる位置の整数サンプルが選択されている。具体的にはBDOFでは予測サンプルの左側(水平勾配の場合)および予測サンプルの上側(垂直勾配の場合)に位置する整数参照サンプルが使用され、PROFでは予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。ビット深度表現問題と同様に、このような統一されていない勾配計算方法はハードウェアコーデックの実装にとっても望ましくない。
【0070】
4.先に指摘したように、PROFの動機は、各サンプルのMVと、サンプルが属するサブブロックの中心で導出されるサブブロックMVとの間の小さなMV差を補償することである。現在のPROF設計によれば、PROFは、1つの符号化ブロックがアフィンモードによって予測されるときに常に呼び出される。しかしながら、式(6)および(7)に示すように、1つのアフィンブロックのサブブロックMVは、制御点MVから導出される。したがって、制御点MV間の差が比較的小さい場合、各サンプル位置におけるMVは一貫しているべきである。そのような場合、PROFを適用する利点は非常に限定される可能性があるので、性能/複雑さのトレードオフを考慮すると、PROFを行う価値がない
場合がある。
【0071】
アフィンモードに対するオプティカルフローによる予測リファインメントの改良
本開示では、ハードウェアコーデック実装を容易にするために、既存のPROF設計を改善し、単純化するための方法が提供される。特に、既存のBDOFロジックをPROFと最大限に共有するために、BDOFとPROFの設計を調和させることに特に注意する。一般に、本開示で提案される技術の主な態様を以下に要約する。
【0072】
1.1つ以上の統一設計を達成しながらPROFの符号化効率を改善するために、BDOFおよびPROFによって使用されるサンプル勾配とMV差の表現ビット深さを統一する1つの方法を提案する。
【0073】
2.ハードウェアパイプライン設計を容易にするために、バイ予測のためにPROFのワークフローをBDOFのワークフローと調和させることが提案される。具体的にはL0およびL1に対して別々に予測リファインメントを導出する既存のPROFとは異なり、提案した方法はL0およびL1の組み合わせ予測信号に適用される予測リファインメントを一旦導出する。
【0074】
3.BDOFおよびPROFによって使用される勾配値を計算するために、整数参照サンプルの導出を調和させる2つの方法を提案する。
【0075】
4.計算量を減らすために、ある条件が満たされたときにアフィン符号化ブロックのためのPROFプロセスを適応的に無効にする早期終了法を提案する。
【0076】
PROF勾配とMV差のビット深度表現設計の改善
「問題記述」の項で分析したように、MV差の表現ビット深度と現在のPROF内のサンプル勾配は、正確な予測リファインメントを導き出すために整列されない。さらに、サンプル勾配の表現ビット深度およびMV差はBDOFとPROFとの間で一貫性がなく、これはハードウェアにとって不利である。本節ではBDOFのビット深度表現法をPROFに拡張することにより、1つの改良型ビット深度表現法を提案する。具体的には提案する方法では各サンプル位置における水平および垂直勾配を以下のように計算する。
【数17】
【0077】
加えて、1つのサンプル位置からサンプルが属するサブブロックの中心までの1/4-ペル精度で表される水平および垂直オフセット△xおよび△yであると仮定すると、サンプル位置での対応するPROF MV差△v(x,y)は以下のように導出される。
【数18】
dMvBitsは、BDOFプロセスによって使用される勾配値のビット深度であり、dMvBits=max(5,(bit-depth-7))+1である。式(13)および(14)において、c、d、e、およびfは、アフィン制御点MVに基づいて導出されるアフィンパラメータである。具体的には、4パラメータアフィンモデルでは以下の通りである。
【数19】
【0078】
6パラメータアフィンモデルでは、以下の通りである。
【数20】
(v
0x,v
0y)(v
1x,v
1y)(v
2x,v
2y)は、1/16-pel精度で表される現在の符号化ブロックの左上、右上、および左下の制御点MVであり、wおよびhは、ブロックの幅および高さである。
【0079】
上記の説明では、式(13)および(14)に示すように、一対の固定右シフトを適用して、勾配およびMV差の値を計算する。実際には、(13)および(14)に異なるビットごとの右シフトを適用して、中間の計算精度と内部PROF導出プロセスのビット幅との間の異なるトレードオフのために、勾配およびMV差の様々な表現精度を達成することができる。例えば、入力ビデオが多くのノイズを含む場合、導出された勾配は、各サンプルにおける真の局所的な水平/垂直勾配値を表すのに信頼できないことがある。このような場合、勾配よりも多くのビットを使用してMV差を表現する方が意味がある。一方、入力ビデオが定常的な動きを示す場合、アフィンモデルによって導出されるMV差は非常に小さくなければならない。そうであれば、高精度MV差を使用することで、導出されたPROFリファインメントの精度を上げるための追加の有益性を得ることはできない。言い換えると、このような場合、勾配値を表すためにより多くのビットを使用する方が有益である。上記の考察に基づいて、本開示の一実施形態ではPROFの勾配およびMV差を計算するために、以下で提案される1つの一般的な方法、具体的には各サンプル位置における水平勾配および垂直勾配を仮定することは隣接する予測サンプルの差にn
a右シフトを適用することによって計算される。
【数21】
サンプル位置における対応するPROF MV差△v(x,y)は、以下のように計算されるべきである。
【数22】
△xおよび△yは、1つのサンプル位置からサンプルが属するサブブロックの中心までの
1/4-pel精度で表される水平および垂直オフセットであり、c、d、e、およびfは、1/16-pelアフィン制御点MVに基づいて導出されるアフィンパラメータである。最後に、サンプルの最終的なPROFリファインメントは、以下のように計算される。
【数23】
【0080】
本開示の別の実施形態では、別のPROFビット深度制御方法が以下のように提案される。この方法では、各サンプル位置における水平勾配および垂直勾配が隣接する予測サンプルの差分値に右シフトのn
aビットを適用することによって、(18)のように依然として計算される。サンプル位置における対応するPROF MV差△v(x,y)は、以下のように計算されるべきである。
【数24】
【0081】
さらに、PROF導出全体を適切な内部ビット深度に保つために、クリッピングが、以下のように導出されたMV差に適用される。
【数25】
limitは2のn
b乗に等しい閾値であり、clip3(min、max、x)は[min、max]の範囲内の所与の値xをクリッピングする関数である。一例ではn
bの値は2
max(5,bitdepth-7)であるように設定される。最後に、サンプルのPROFリファインメントは、以下のように計算される。
【数26】
【0082】
バイ予測のためのPROFおよびBDOFの統合ワークフロー
上述したように、1つのアフィン符号化ブロックがバイ予測される場合、現在のPROFは一方向に適用される。より具体的には、PROFサンプルリファインメントが別々に導出され、リストL0およびL1内の予測サンプルに適用される。その後、リストL0およびL1からそれぞれリファインされた予測信号が平均化され、ブロックの最終バイ予測信号が生成される。これは、サンプルリファインメントが導出され、バイ予測信号に適用されるBDOF設計とは対照的である。BDOFとPROFのバイ予測ワークフロー間のこのような差は、実用的なコーデックパイプライン設計には不利であり得る。
【0083】
ハードウェアパイプライン設計を容易にするために、本開示による1つの単純化方法は2つの予測リファインメント方法のワークフローが調和されるように、PROFのバイ予測プロセスを修正することである。具体的には、各予測方向に対するリファインメントを別々に適用する代わりに、提案したPROF法はリストL0およびL1の制御点MVに基づいて、予測リファインメントを一旦導出する。次に、品質を強化するために、導出した予測リファインメントを、結合されたL0およびL1予測信号に適用する。具体的には、
式(14)で導出したMV差に基づいて、1つのアフィン符号化ブロックの最終バイ予測サンプルを、以下のように提案した方法によって計算する。
【数27】
shiftおよびο
offsetは、(15-bit-depth)および1<<(14-bit-depth)+(2<<13)に等しく、バイ予測のためのL0およびL1予測信号を結合するために適用される右シフト値およびオフセット値である。さらに、(18)に示すように、既存のPROF設計におけるクリッピング動作((9)に示すように)は、提案した方法で除去される。
【0084】
図12は、本開示による、提案されたバイ予測PROF方法が適用される場合のPROFプロセスの図を示す。PROFプロセス1200は、L0動き補償1210、L1動き補償1220、およびバイ予測PROF1230を含む。例えば、L0動き補償1210は、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。L1動き補償1220は例えば、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。バイ予測PROF1230は上述のように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込み、バイ予測サンプルを出力する。
【0085】
図12は、提案されたバイ予測PROF法が適用された場合の対応するPROFプロセスを示す。PROFプロセス1200は、L0動き補償1210、L1動き補償1220、およびバイ予測PROF1230を含む。例えば、L0動き補償1210は、前の参照ピクチャからの動き補償サンプルのリストであり得る。前の参照ピクチャは、ビデオブロック内の現在のピクチャから前の参照ピクチャである。L1動き補償1220は例えば、次の参照ピクチャからの動き補償サンプルのリストとすることができる。次の参照ピクチャは、ビデオブロック内の現在のピクチャの後の参照ピクチャである。バイ予測PROF1230は上述のように、L1動き補償1210およびL1動き補償1220から動き補償サンプルを取り込み、バイ予測サンプルを出力する。
【0086】
ハードウェアパイプライン設計のための提案した方法の潜在的な利益を実証するために、
図13は、BDOFと提案したPROFの両方が適用されるときのパイプラインステージを図示するための1つの例を示す。
図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
【0087】
1.符号化ブロックのMVを解析/復号化し、参照サンプルをフェッチする。
2.符号化ブロックのL0および/またはL1予測信号を生成する。
3.符号化ブロックが非アフィンモードによって予測される場合には、BDOFに基づいて生成されたバイ予測サンプルのサンプルごとのリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合には、PROFに基づいて実行する。
【0088】
図13は、本開示による、BDOFおよび提案されたPROFの両方が適用される場合のパイプラインステージの例を示す。
図13は、ハードウェアパイプライン設計のための提案された方法の潜在的な利点を示す。パイプラインステージ1300は、解析/復号化MVおよびフェッチ参照サンプル1310、動き補償1320、BDOF/PROF13
30を含む。パイプラインステージ1300は、ビデオブロックBLK0、BKL1、BKL2、BKL3、およびBLK4を符号化する。各ビデオブロックはMVの解析/復号化を開始し、参照サンプル1310をフェッチし、動き補償1320に移動し、次に動き補償1320、BDOF/PROF1330に順次移動する。これは、BLK0は、BLK0が動き補償1320に移動するまで、パイプラインステージ1300の処理を開始しないことを意味する。時間がT0からT1、T2、T3、およびT4になるにつれて、すべてのステージおよびビデオブロックについて同じである。
【0089】
図13において、1つのインターブロックの復号化処理は、主に3つのステップを含む。
第1に、符号化ブロックのMVを解析/復号化し、参照サンプルをフェッチする。
第2に、符号化ブロックのL0および/またはL1予測信号を生成する。
第3に、符号化ブロックが1つの非アフィンモードによって予測される場合には、BDOFに基づいて生成されたバイ予測サンプルのサンプルワイズリファインメントを実行し、符号化ブロックがアフィンモードによって予測される場合にはPROFに基づいて実行する。
【0090】
図13に示すように、提案された調和方法が適用された後、BDOFとPROFの両方がバイ予測サンプルに直接適用される。BDOFおよびPROFが異なるタイプの符号化ブロックに適用される(すなわち、BDOFが非アフィンブロックに適用され、PROFがアフィンブロックに適用される)と仮定すると、2つの符号化ツールを同時に呼び出すことはできない。したがって、それらの対応する復号化処理は、同じパイプラインステージを共有することによって行うことができる。これはBDOFとPROFの両方に同じパイプラインステージを割り当てることが困難である既存のPROF設計よりも効率的であり、これはそれらの異なるバイ予測のワークフローによる。
【0091】
以上では、提案手法はBDOFとPROFのワークフローの調和のみを考慮しているが、既存の設計では2つの符号化ツールの基本演算ユニットも異なるサイズで行われている。たとえば、BDOFの場合、1つの符号化ブロックは、サイズがWs×Hsの複数のサブブロックに分割される。ここで、Ws=min(W、16)およびHs=min(H、16)である。ここで、WおよびHは符号化ブロックの幅と高さである。勾配計算およびサンプルリファインメント導出のようなBODF演算は、各サブブロックに対して独立して実行される。一方、前述したように、アフィン符号化ブロックは4×4のサブブロックに分割され、各サブブロックには、4パラメータまたは6パラメータアフィンモデルのいずれかに基づいて導出された1つの個々のMVが割り当てられる。PROFはアフィンブロックにのみ適用されるため、その基本演算ユニットは4×4サブブロックである。バイ予測ワークフロー問題と同様に、PROFのためにBDOFと異なる基本演算ユニットサイズを使用することも、ハードウェア実装にとって不都合であり、BDOFおよびPROFが復号化プロセス全体の同じパイプラインステージを共有することを困難にする。このような問題を解決するために、一実施形態では、アフィンモードのサブブロックサイズをBDOFのサブブロックサイズと同じにすることが提案される。
【0092】
提案手法によれば、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演算ユニットに沿ってサンプルをパディングすることによって計算される。
【0093】
提案された方法の主張された利点は主に、以下の側面を含む。1)動き補償およびBDOF/PROF改良の両方のための統合基本演算ユニットサイズを有する簡略化されたパイプラインアーキテクチャ、2)アフィン動き補償のための拡大されたサブブロックサイズによるメモリ帯域幅使用の低減、3)分数サンプル補間のサンプル当たりの計算複雑さの低減。
【0094】
提案した方法による計算量の削減(すなわち項目3))のために、アフィン符号化ブロックに対する既存の6タップ補間フィルタ制約を除去できることに言及すべきである。代わりに、非アフィン符号化ブロックのためのデフォルトの8タップ補間は、アフィン符号化ブロックのためにも使用される。この場合の全体的な計算量は、既存のPROF設計(6タップ補間フィルタを持つ4x4サブブロックに基づく)と依然として有利に比較できる。
【0095】
BDOFおよびPROFの勾配導出の調和
前述のように、BDOFおよびPROFの両方は、ブロックの各サイドの予測サンプルの1つの追加の行/列にアクセスする、現在の符号化ブロック内の各サンプルの勾配を計算する。追加の補間の複雑さを回避するために、ブロック境界の周りの拡張領域における必要な予測サンプルは、整数参照サンプルから直接コピーされる。しかし、「問題記述」の項で指摘したように、異なる位置の整数サンプルを使用して、BDOFおよびPROFの勾配値を計算する。
【0096】
一様設計を達成するために、BDOFおよびPROFが用いる勾配導出法を統合するために、次の二つの方法を提案する。第1方法では、BDOFと同じになるようにPROFの勾配導出法を整列させることを提案する。具体的には、第1方法によって、拡張領域内の予測サンプルを生成するために使用される整数位置は分数サンプル位置をフロアダウンすることによって決定され、すなわち、選択された整数サンプル位置は分数サンプル位置(水平勾配の場合)の左に、かつ分数サンプル位置(垂直勾配の場合)の上に配置される。第2方法ではBDOFの勾配導出方法をPROFと同じにすることが提案されており、より詳細には第2方法が適用される場合、予測サンプルに最も近い整数参照サンプルが勾配計算に使用される。
【0097】
図14は、本開示による、BDOFの勾配導出方法を使用する例を示す。
図14において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、グレーの円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0098】
図15は、本開示による、PROFの勾配導出方法を使用する例を示す。
図15において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、グレーの円は現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0099】
図14および
図15は第1方法(
図12)および第2方法(
図13)がそれぞれ適用される場合に、BDOFおよびPROFの勾配の導出に使用される対応する整数サンプル位置を示す。
図14および
図15において、白い円は整数位置における参照サンプルを表し、三角は現在のブロックの分数予測サンプルを表し、パターン化された円は勾配導出のために現在のブロックの拡張領域を満たすために使用される整数参照サンプルを表す。
【0100】
さらに、既存のBDOFおよびPROF設計によれば、予測サンプルパディングは、異なる符号化レベルで行われる。具体的にはBDOFの場合、パディングは各sbWidth×sbHeightサブブロックの境界に沿って適用され、ここで、sbWidth=min(CUWidth,16)およびsbHeight=min(CUHeight,16)である。CUWidthおよびCUHeightは、CUの幅および高さである。一方、PROFのパディングは、4×4サブブロックレベルで常に適用される。上記の説明ではパディングサブブロックサイズは依然として異なるが、パディング方法のみがBDOFとPROFとの間で統合される。これはまた、BDOFおよびPROFのパディングプロセスのために異なるモジュールが実装される必要があることを考慮すると、実際のハードウェア実装には使い勝手が良くない。もう1つの統合設計を達成するために、BDOFおよびPROFのサブブロックパディングサイズを統一することが提案される。本開示の一実施形態では、4×4レベルでBDOFの予測サンプルパディングを適用することが提案される。具体的にはこの方法によって、CUはまず、複数の4×4サブブロックに分割され、各4×4サブブロックの動き補償の後、上/下および左/右境界に沿った拡張サンプルは対応する整数サンプル位置をコピーすることによってパディングされる。
図18A、18B、18C、および18Dは提案されたパディング方法が1つの16x16BDOF CUに適用される1つの例を示す。ここで、破線は4x4サブブロック境界を表し、グレーバンドは各4x4サブブロックのパディングされたサンプルを表す。
【0101】
図18Aは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、左上4×4サブブロック境界1820を表す。
【0102】
図18Bは16×16のBDOF CUに適用される提案されたパディング方法を示し、ここで、破線は、本開示による、右上4×4サブブロック境界1840を表す。
【0103】
図18Cは本開示による、16×16BDOF CUに適用される提案されたパディング方法を示し、破線は、左下4×4サブブロック境界1860を示す。
【0104】
図18Dは本開示による、16×16のBDOF CUに適用される提案されたパディング方法を示し、破線は、右下4×4サブブロック境界1880を示す。
【0105】
BDOF、PROF、DMVRを有効/無効にするためのハイレベルシグナリング構文
既存のBDOFおよびPROF設計では、2つの異なるフラグがシーケンスパラメータセット(SPS)においてシグナリングされ、2つの符号化ツールの有効化/無効化を別々に制御する。しかしながら、BDOFとPROFとの間の類似性のために、1つの同じ制御フラグによってBDOFおよびPROFをハイレベルから有効化および/または無効化することがより望ましい。このような考察に基づき、表1に示すように、SPSではsps_bdof_prof_enabled_flagと呼ばれる1つの新しいフラグが導入されている。
【0106】
表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】
表1 提案されているBDOF/PROF有効化/無効化フラグを使用したSPS構文テーブルの変更
【0107】
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に等しい場合)、双方向オプティカルフローが有効になり、オプティカルフローによる予測リファインメントが無効になる。
【0108】
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の場合)、構文s
lice_disabled_bdof_prof_dmvr_flagはスライスレベルでシグナリングされない。フラグがシグナリングされない場合、0であると推測される。
【0109】
上記のSPS BDOF/PROF構文に加えて、スライスレベルで別の制御フラグを導入することが提案されている。すなわち、BDOF、PROFおよびDMVRを無効にするためにslice_disable_bdof_prof_dmvr_flagが導入されている。SPSフラグsps_bdof_prof_dmvr_slice_present_flagは、DMVRまたはBDOF/PROF spsレベル制御フラグのいずれかが真の場合にSPSでシグナリングされ、slice_disable_bdof_prof_dmvr_flagの存在を示すために使用される。存在する場合、slice_disable_bdof_dmvr_flagが通知される。表2は、提案された構文が適用された後の修正されたスライスヘッダ構文テーブルを示す。
【表2】
表2 提案されているBDOF/PROF有効化/無効化フラグを使用したSPS構文テーブルの変更
【0110】
制御点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)に基づいて計算できる。
【数28】
【0111】
本開示によれば、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に、異なるメトリックを使用することができる。
一例では、式(19)に基づいて、絶対最大水平MV差と絶対最大垂直MV差との和が1つの所定の閾値よりも小さい場合、PROFプロセスをスキップすることができる。即
ち、以下の通りである。
【数29】
【0112】
別の例では、|△v
x
max||△v
y
max|の最大値が閾値以下である場合、PROFプロセスをスキップすることができる。
【数30】
【0113】
MAX(a、b)は、入力値aとbとの間の大きい方の値を返す関数である。
【0114】
上記の2つの例に加えて、本開示の思想は、MV差がPROFプロセスをスキップするのに十分小さいかどうかを判定する際に他のメトリックが使用される場合にも適用可能である。
【0115】
上記の方法では、MV差の大きさに基づいてPROFをスキップする。一方、MV差に加えて、PROFサンプルリファインメントも、1つの動き補償ブロック内の各サンプル位置における局所勾配情報に基づいて計算される。高周波数の詳細が少ない予測ブロック(フラットな領域など)では、導出されたサンプルリファインメントの値が小さくなるように、勾配値は小さくなる傾向がある。これを考慮して、本開示の別の実施形態によれば、十分に高い周波数情報を含むブロックの予測サンプルにのみPROFを適用することが提案される。
【0116】
ブロックに対してPROFプロセスを呼び出す価値があるように、ブロックが十分に高い周波数の情報を含むかどうかを判定する際に、異なるメトリックを使用することができる。一例では、決定が予測ブロック内のサンプルの勾配の平均の大きさ(すなわち、絶対値)に基づいて行われる。平均の大きさが1つの閾値よりも小さい場合、予測ブロックは平坦領域として分類され、PROFは適用されるべきではなく、そうでない場合、予測ブロックは、PROFが依然として適用可能である十分な高周波詳細を含むと考えられる。別の例では、予測ブロック内のサンプルの勾配の最大の大きさを使用することができる。最大の大きさが1つの閾値より小さい場合、PROFはブロックについてスキップされるべきである。さらに別の例では、予測ブロックの最大サンプル値と最小サンプル値との差分Imax-Iminを使用して、PROFがブロックに適用されるかどうかを決定することができる。このような差分値が閾値より小さい場合、PROFはブロックについてスキップされる。本開示の思想は所与のブロックが十分な高周波数情報を含むか否かを決定する際に、いくつかの他のメトリックが使用される場合にも適用可能であることに留意されたい。
【0117】
アフィンモードのLICとPROFと間のインタラクションの対処
現在のブロックの隣接する再構成されたサンプル(すなわち、テンプレート)は線形モデルパラメータを導出するためにLICによって使用されるので、1つのLIC符号化ブロックの復号化はその隣接するサンプルの完全な再構成に依存する。このような相互依存性のために、実際のハードウェア実装では、LICが隣接する再構成サンプルがLICパラメータ導出のために利用可能になる再構成段階で実行される必要がある。ブロック再構成は連続的に(すなわち、1つずつ)実行されなければならないので、スループット(すなわち、単位時間当たりに並列に実行され得る作業量)は、LIC符号化ブロックに他の符号化方法を結合して適用するときに考慮すべき1つの重要な問題である。この節では、
PROFとLICの両方がアフィンモードに対して有効である場合のインタラクションを扱うために、二つの方法を提案した。
【0118】
本開示の第1実施形態では、1つのアフィン符号化ブロックに対して、PROFモードとLICモードとを排他的に適用することが提案される。前述のように、既存の設計では、PROFがシグナリングなしにすべてのアフィンブロックに暗黙的に適用され、一方、1つのLICフラグはLICモードが1つのアフィンブロックに適用されるかどうかを示すために、符号化ブロックレベルでシグナリングまたは継承される。本発明の方法によれば、1つのアフィンブロックのLICフラグの値に基づいてPROFを条件付きで適用することが提案される。フラグが1に等しい場合、LIC重みおよびオフセットに基づいて符号化ブロック全体の予測サンプルを調整することによって、LICのみが適用される。そうでない場合(すなわち、LICフラグが0に等しい場合)、PROFは、アフィン符号化ブロックに適用され、オプティカルフローモデルに基づいてそれぞれのサブブロックの予測サンプルをリファインする。
【0119】
図17Aは、PROFおよびLICが同時に適用されることを禁止されている、提案された方法に基づく復号化プロセスの1つの例示的なフローチャートを示す。
【0120】
図17Aは本開示による、PROFおよびLICが許可されない、提案された方法に基づく復号化プロセスの図を示す。復号化プロセス1720は、LICフラグがオン?1722ステップ、LIC1724、およびPROF1726を含む。LICフラグがオン?1722はLICフラグがセットされているか否かを決定し、その決定にしたがって次のステップをとるステップである。LIC1724は、LICフラグがセットされているLICのアプリケーションである。LICフラグがセットされていない場合、PROF1726はPROFのアプリケーションである。
【0121】
本開示の第2実施形態では、1つのアフィンブロックの予測サンプルを生成するために、PROFの後にLICを適用することが提案される。具体的にはサブブロックベースのアフィン動き補償が行われた後、予測サンプルはPROFサンプルリファインメントに基づいてリファインされ、次いで、LICはPROF調整された予測サンプルに(テンプレートおよびその参照サンプルから導出されるように)重みおよびオフセットのペアを適用することによって行われ、以下のように、ブロックの最終予測サンプルを取得する。
【数31】
ここで、P
r[x+v]は動きベクトルvによって示される現在のブロックの参照ブロックであり、αおよびβはLIC重みおよびオフセットであり、P[x]は最終予測ブロックであり、△I[x]は、(17)で導出されるPROFリファインメントである。
【0122】
図17Bは、本開示による、PROFおよびLICが適用される復号化プロセスの図を示す。復号化プロセス1760は、アフィン動き補償1762、LICパラメータ導出1764、PROF1766、およびLICサンプル調整1768を含む。アフィン動き補償1762はアフィン動きを適用し、LICパラメータ導出1764およびPROF1766への入力である。LICパラメータ導出1764は、LICパラメータを導出するために適用される。PROF1766はPROFが適用されている。LICサンプル調整1768は、PROFと組み合わせられているLIC重みおよびオフセットパラメータである。
【0123】
図17Bは、第2方法を適用した場合の復号化ワークフローの一例を示す図である。図
17Bに示すように、LICはテンプレート(すなわち、隣接する再構成サンプル)を使用してLIC線形モデルを計算するので、LICパラメータは、隣接する再構成サンプルが利用可能になるとすぐに導出することができる。これは、PROFリファインメントとLICパラメータ導出とを同時に実行することができることを意味する。
【0124】
LIC重みおよびオフセット(すなわち、αおよびβ)ならびにPROFリファインメント(すなわち、△i[x])は、一般に浮動小数点数である。フレンドリなハードウェア実装のために、これらの浮動小数点演算は、通常、1つの整数値と、それに続く右シフト演算と、多数のビットとの乗算として実装される。現行のLICおよびPROF設計では、2つのツールが別々に設計されているため、2つの異なる右シフトがそれぞれNLICビットとNPROFビットによって、2つのステージで適用される。
【0125】
本開示の第3実施形態によれば、PROFおよびLICがアフィン符号化ブロックに結合して適用される場合の符号化利得を改善するために、LICベースおよびPROFベースのサンプル調整を高精度で適用することが提案される。これは、それらの2つの右シフト演算を1つに結合し、それを最後に適用して、現在のブロックの最終予測サンプル((12)に示すように)を導出することによって行われる。
【0126】
PROFと重み付き予測およびBCW(bi-prediction with CU-level weight)とを組み合わせた場合の乗算オーバーフロー問題への対処
VVC作業ドラフトにおける現行のPROF設計によれば、PROFはWP(weighted prediction)と結合して適用できる。
【0127】
図10は、本開示によるビデオ信号を復号化するためのPROF(prediction refinement with optical flow)の方法を示す。この方法は例えば、デコーダに適用することができる。
【0128】
ステップ1010において、デコーダは、ビデオ信号のアフィンモードによって符号化されるビデオブロックに関連する第1参照ピクチャI(0)および第2参照ピクチャI(1)を取得することができる。
【0129】
ステップ1012では、デコーダが第1参照ピクチャI(0)、第2参照ピクチャI(1)に関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平勾配値および垂直勾配値を得ることができる。
【0130】
ステップ1014において、デコーダは、第1参照ピクチャI(0)および第2参照ピクチャI(1)に関連付けられたCPMV(control point motion
vectors)に基づいて、第1および第2水平および垂直動きリファインメントを取得することができる。
【0131】
ステップ1016では、デコーダが第1および第2水平および垂直勾配値、ならびに第1および第2水平および垂直動きのリファインメントに基づいて、第1および第2予測リファインメントを得ることができる。
【0132】
ステップ1018において、デコーダは、第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、ならびに第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し得る。
【0133】
ステップ1020において、デコーダは乗算オーバーフローを防止するために、リファ
インされた第1および第2サンプルおよび予測パラメータを操作することによって、リファインされた第1および第2サンプルに基づいて、ビデオブロックの最終予測サンプルを取得し得る。予測パラメータは、WP(weighted prediction)のためのパラメータと符号化ユニット(CU)レベル重み(BCW)によるバイ予測のためのパラメータを含むことができる。
【0134】
具体的には、1つのアフィンCUの予測信号を合成する際には以下の手順で生成すればよい。
【0135】
1. 位置(x,y)における各サンプルについて、PROFに基づいてL0予測リファインメント△I
0(x,y)を計算し、リファインメントをオリジナルL0予測サンプルI
0(x,y)に加える。すなわち、以下の通りである。
【数32】
I
0’(x,y)はリファインされたサンプルであり、g
h0(x,y)、g
v0(x,y)、△v
x0(x,y)、△v
y0(x,y)は、位置(x,y)におけるL0水平/垂直勾配およびL0水平/垂直動きリファインメントである。
【0136】
2. 位置(x,y)における各サンプルについて、PROFに基づいてL1予測リファインメント△I
1(x,y)を計算し、リファインメントをオリジナルL1予測サンプルI
1(x,y)に加える。すなわち、以下の通りである。
【数33】
I
1’(x,y)はリファインされたサンプルであり、g
h1(x,y)、g
v1(x,y)、△v
x1(x,y)、△v
y1(x,y)は位置(x,y)におけるL1水平/垂直勾配およびL1水平/垂直動きリファインメントである。
【0137】
3. リファインされたL0およびL1予測サンプルを結合する。すなわち、以下の通りである。
【数34】
W
0およびW
1は、WPおよびBCWの重みであり、shiftおよびOffsetはWPおよびBCWのバイ予測のためのL0およびL1予測信号の重み付け平均に適用されるオフセットおよび右シフトである。WPのパラメータはW
0、W
1、Offsetを含み、BCWのパラメータはW
0、W
1、shiftを含む。
【0138】
上記の式から分かるように、サンプルごとのリファインメント、すなわち、△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ビット乗算オーバーフロー問題を引き起こす可能性がある。
【0139】
図11は、本開示によるビデオブロックの最終予測サンプルを得ることを示す。この方法は例えば、デコーダに適用することができる。
【0140】
ステップ1110において、デコーダは、リファインされた第1および第2サンプル、ならびに予測パラメータに基づいて、ビデオブロックの最終予測サンプルを取得し得る。
【0141】
ステップ1112において、デコーダは、第1シフト値だけ右にシフトすることによって、リファインされた第1および第2サンプルを調整することができる。
【0142】
ステップ1114において、デコーダは、リファインされた第1および第2サンプルを結合することによって、結合された予測サンプルを得ることができる。
【0143】
ステップ1116において、デコーダは、結合された予測サンプルを第1シフト値だけ左シフトすることによって、ビデオブロックの最終予測サンプルを得ることができる。
【0144】
このようなオーバーフロー問題を解決するために、以下に複数の方法が提案される。
【0145】
1.第1方法では、PROFが1つのアフィンCUに適用されるとき、WPおよびBCWを無効にすることが提案される。
【0146】
2.第2方法では、オリジナル予測サンプルに加算する前に、導出されたサンプルリファインメントに1つのクリッピング操作を適用して、リファインされた予測サンプルI
0’(x,y)およびI
1’(x,y)のダイナミックレンジがオリジナル予測サンプルI
0(x,y)およびI
1(x,y)のダイナミックビット深度と同じダイナミックビット深度を有するようにすることが提案される。具体的には、このような方法によって、(23)および(24)におけるサンプルリファインメント△I
0(x,y)および△I
1(x,y)は以下に示すように、1つのクリッピング操作を導入することによって修正される。
【数35】
dI=dI
base+max(0,BD-12)であり、BDは内部符号化ビット深度、dI
baseはベースビット深度の値である。一実施形態では、dI
baseの値を14に設定することが提案される。別の実施形態では、値を13に設定することが提案される。
【0147】
3.第3方法では、リファインされたサンプルがオリジナル予測サンプルのダイナミックレンジと同じイナミックレンジを有するようにサンプルリファインメントをクリッピングする代わりに、リファインされた予測サンプルを直接クリッピングすることが提案される。具体的には第3方法によって、リファインされたL0およびL1サンプルは以下のよう
になる。
【数36】
dR=16+max(0,BD-12)(または同等にmax(16,BD+4))であり、BDは内部符号化ビット深度である。
【0148】
4. 第4方法ではWPおよびBCWの前に、リファインされたL0およびL1予測サンプルに特定の右シフトを適用することが提案され、次いで、最終予測サンプルは追加の左シフトによってオリジナル精度に調整される。具体的には、最終予測サンプルが以下のように導出される。
【数37】
nbは適用される追加のビットシフトの数であり、PROFサンプルリファインメントの対応するダイナミックレンジに基づいて決定されてもよい。
【0149】
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を含む1つまたは複数の回路を含む装置を使用して実装され得る。装置は上述の方法を実行するために、他のハードウェアまたはソフトウェアコンポーネントと組み合わせて回路を使用することができる。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装され得る。
【0150】
図19は、ユーザインターフェース1960に結合されたコンピューティング環境1910を示す。コンピューティング環境1910は、データ処理サーバの一部とすることができる。コンピューティング環境1910は、プロセッサ1920、メモリ1940、およびI/Oインターフェース1950を含む。
【0151】
プロセッサ1920は、典型的には表示、データ取得、データ通信、および画像処理に関連する動作のような、コンピューティング環境1910の全体的な動作を制御する。プロセッサ1920は上述の方法におけるステップのすべてまたは一部を実行する命令を実行するために、1つ以上のプロセッサを含んでもよい。さらに、プロセッサ1920は、プロセッサ1920と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。プロセッサは、セントラルプロセッシングユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどである。
【0152】
メモリ1940はコンピューティング環境1910の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1940は、所定のソフトウェア1942を含むことができる。そのようなデータの例は、コンピューティング環境1910上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1940は、スタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、プログラマブルリードオンリメモリ
(PROM)、リードオンリメモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性または不揮発性メモリ装置、またはそれらの組合せを使用することによって実装され得る。
【0153】
I/Oインターフェース1950は、プロセッサ1920と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンはホームボタン、スタートスキャンボタン、およびストップスキャンボタンを含むことができるが、これらに限定されない。I/Oインターフェース1950は、エンコーダおよびデコーダに結合することができる。
【0154】
いくつかの実施形態では、上述の方法を実行するために、コンピューティング環境1910内のプロセッサ1920によって実行可能な、メモリ1940に含まれるような複数のプログラムを含む、非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク、光データストレージ等であってもよい。
【0155】
非一時的コンピュータ可読記憶媒体は1つ以上のプロセッサを有するコンピューティングデバイスによって実行される複数のプログラムを記憶しており、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピューティングデバイスに上述の動き予測方法を実行させる。
【0156】
いくつかの実施形態では、コンピューティング環境1910が上記の方法を実行するために、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカルプロセッシング(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装され得る。
【0157】
本開示の説明は例示の目的で提示されており、網羅的であることも、本開示に限定されることも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替実施形態が明らかになるのであろう。
【0158】
実施例は本開示の原理を説明し、他の当業者が様々な実施のための本開示を理解し、意図される特定の使用に適した様々な修正を伴う基礎となる原理および様々な実施を最良に利用することを可能にするために選択され、説明された。したがって、本開示の範囲は開示された実装の特定の例に限定されるべきではなく、修正および他の実装は本開示の範囲内に含まれることが意図されることを理解されたい。
【0159】
〔関連出願の相互参照〕
本出願は2019年8月23日に出願された仮出願第62/891,273号に基づき、その優先権を主張し、その全内容は、あらゆる目的のために参照によりその全体が本明細書に組み込まれる。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダに実装されるPROF(prediction refinement with optical flow)の方法であって、
ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャおよび第2参照ピクチャを取得し、
前記第1参照ピクチャおよび前記第2参照ピクチャに関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得し、
前記第1参照ピクチャおよび第2参照ピクチャに関連付けられたCPMV(control point motion vector)に基づいて、第1および第2水平および垂直動きリファインメントを取得し、
前記第1および第2水平および垂直勾配値と、前記第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得し、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し、
前記リファインされた第1および第2サンプルおよび予測パラメータに基づいて、前記ビデオブロックの最終予測サンプルを取得し、
前記予測パラメータは、WP(weighted prediction)のためのパラメータまたはBCW(bi-prediction with coding unit(CU)-level weight)のためのパラメータを含み、
WPの前記パラメータ及びBCWの前記パラメータは各々リファインされた前記第1サンプルの第1重み及びリファインされた前記第2サンプルの第2重みを含む、
PROF(prediction refinement with optical
flow)の方法。
【請求項2】
WPの前記パラメータは、第1オフセットおよび第2オフセットをさらに含み、
BCWの前記パラメータは、第3オフセットをさらに含む、
請求項1に記載のPROF(prediction refinement with optical flow)の方法。
【請求項3】
前記第1および第2予測リファインメントを取得することは、
前記第1および第2水平および垂直勾配値および第1および第2水平および垂直動きリファインメントに基づいて前記第1および第2予測リファインメントを取得し、
予測リファインメント閾値に基づいて、前記第1および第2予測リファインメントをクリッピングする、
請求項1に記載のPROF(prediction refinement with optical flow)の方法。
【請求項4】
前記予測リファインメント閾値は符号化ビット深度プラス1または13のいずれかの最大値に等しい、
請求項3に記載の方法。
【請求項5】
リファインされた前記第1および第2サンプルを取得することは、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、前記リファインされた第1および第2サンプルを取得し、
リファインされたサンプル閾値に基づいて前記リファインされた第1および第2サンプルをクリッピングする、
ことを含む、請求項1に記載のPROF(prediction refinement with optical flow)の方法。
【請求項6】
前記リファインされたサンプル閾値は符号化ビット深度プラス4または16のいずれかの最大値に等しい、
請求項5に記載のPROF(prediction refinement with optical flow)の方法。
【請求項7】
前記デコーダで、リファインされた前記第1及び第2サンプル及び前記予測パラメータに基づいて前記ビデオブロックの前記最終予測サンプルを取得することは、
前記WPのみもしくは前記BCWのみを適用する、
ことを含む、請求項1に記載のPROF(prediction refinement with optical flow)の方法。
【請求項8】
1つ以上のプロセッサと、
前記1つ以上のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体と、
を含み、
前記1つ以上のプロセッサは、
ビデオ信号内のアフィンモードによって符号化されるビデオブロックに関連付けられた第1参照ピクチャおよび第2参照ピクチャを取得し、
前記第1参照ピクチャおよび前記第2参照ピクチャに関連付けられた第1予測サンプルI(0)(i,j)および第2予測サンプルI(1)(i,j)に基づいて、第1および第2水平および垂直勾配値を取得し、
前記第1参照ピクチャおよび第2参照ピクチャに関連付けられたCPMV(control point motion vector)に基づいて、第1および第2水平および垂直動きリファインメントを取得し、
前記第1および第2水平および垂直勾配値と、前記第1および第2水平および垂直動きリファインメントとに基づいて、第1および第2予測リファインメントを取得し、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、リファインされた第1および第2サンプルを取得し、
前記リファインされた第1および第2サンプル及び予測パラメータに基づいて、前記ビデオブロックの最終予測サンプルを取得し、
前記予測パラメータは、WP(weighted prediction)のためのパラメータまたはBCW(bi-prediction with coding unit(CU)-level weight)のためのパラメータを含み、
WPの前記パラメータ及びBCWの前記パラメータは各々リファインされた前記第1サンプルの第1重み及びリファインされた前記第2サンプルの第2重みを含む、
ように構成されている、
コンピューティングデバイス。
【請求項9】
WPの前記パラメータは、第1オフセットおよび第2オフセットをさらに含み、
BCWの前記パラメータは、第3オフセットをさらに含む、
請求項8に記載のコンピューティングデバイス。
【請求項10】
前記1つ以上のプロセッサが前記第1および第2予測リファインメントを取得するように構成されていることは、
前記第1および第2水平および垂直勾配値および第1および第2水平および垂直動きリファインメントに基づいて前記第1および第2予測リファインメントを取得し
予測リファインメント閾値に基づいて、前記第1および第2予測リファインメントをクリッピングする、
ようにさらに構成されている、
請求項8に記載のコンピューティングデバイス。
【請求項11】
前記予測リファインメント閾値は符号化ビット深度プラス1または13のいずれかの最大値に等しい、
請求項10に記載のコンピューティングデバイス。
【請求項12】
前記リファインされた前記第1および第2サンプルを取得する前記1つ以上のプロセッサは、
前記第1予測サンプルI(0)(i,j)、第2予測サンプルI(1)(i,j)、および前記第1および第2予測リファインメントに基づいて、前記リファインされた第1および第2サンプルを取得し、
リファインされたサンプル閾値に基づいて前記リファインされた第1および第2サンプルをクリッピングする、
ようにさらに構成されている、請求項8に記載のコンピューティングデバイス。
【請求項13】
前記リファインされたサンプル閾値は符号化ビット深度プラス4または16のいずれかの最大値に等しい、
請求項12に記載のコンピューティングデバイス。
【請求項14】
前記ビデオブロックの前記最終予測サンプルを取得するように構成されている前記1つ以上のプロセッサは、
前記WPのみもしくは前記BCWのみを適用する、
ようにさらに構成されている、請求項8に記載のコンピューティングデバイス。
【請求項15】
1つ以上のプロセッサを含むコンピューティングデバイスによって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
前記複数のプログラムは、前記1つ以上のプロセッサによって実行されると、
請求項1~請求項7の何れか1項に記載のPROF(prediction refinement with optical flow)の方法によって復号化されるビットストリームを格納する、
動作を前記コンピューティングデバイスに実行させる、非一時的コンピュータ可読記憶媒体。
【請求項16】
1つ以上のプロセッサ及び1つ以上の前記プロセッサに接続されている非一時的ストレージを含むコンピューティングデバイスによって実行されると、
ビットストリームを生成し、前記非一時的ストレージに生成された前記ビットストリームを格納するように、請求項1~請求項7の何れか1項に記載のPROF(prediction refinement with optical flow)の方法を1つ以上の前記プロセッサに実行させる、プログラム。