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