(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022130647
(43)【公開日】2022-09-06
(54)【発明の名称】双方向オプティカル・フローに対するビット幅制御方法およびデバイス
(51)【国際特許分類】
H04N 19/513 20140101AFI20220830BHJP
H04N 19/577 20140101ALI20220830BHJP
【FI】
H04N19/513
H04N19/577
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022106654
(22)【出願日】2022-06-30
(62)【分割の表示】P 2021555567の分割
【原出願日】2020-03-16
(31)【優先権主張番号】62/819,408
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】チェン、イ-ウェン
(72)【発明者】
【氏名】ワン、シャンリン
(57)【要約】 (修正有)
【課題】双方向予測的予測の効率を改善する双方向オプティカル・フロー(BDOF)のビット幅制御方法及び装置を提供する。
【解決手段】方法は、ビデオ・ブロックに関連付けられた第1の参照ピクチャI
(0)および第2の参照ピクチャI
(1)を取得することと、第1の参照ピクチャI
(0)内の参照ブロックから、ビデオ・ブロックの第1の予測サンプルI
(0)(i,j)を取得することと、第2の参照ピクチャI
(1)内の参照ブロックから、ビデオ・ブロックの第2の予測サンプルI
(1)(i,j)を取得することと、中間パラメータの内部ビット幅を導出することによって、BDOFの内部ビット幅を制御することと、第1の予測サンプルI
(0)(i,j)および第2の予測サンプルI
(1)(i,j)を使用してビデオ・ブロックに適用されるBDOFに基づいて、ビデオ・ブロックの双方向予測サンプルを取得することと、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
ビデオ信号を符号化するための双方向オプティカル・フロー(BDOF)のビット幅制御方法であって、
ビデオ・サブブロックに関連付けられた第1の参照ピクチャおよび第2の参照ピクチャを決定することであり、表示順で、前記第1の参照ピクチャが、現在のピクチャの前にあり、前記第2の参照ピクチャが、前記現在のピクチャの後にある、決定することと、
前記第1の参照ピクチャから、前記ビデオ・サブブロックのサンプルに対する第1の予測サンプルI(0)を決定することと、
前記第2の参照ピクチャから、前記ビデオ・サブブロックのサンプルに対する第2の予測サンプルI(1)を決定することと、
第1の予測サンプルI(0)(i+1,j)と第1の予測サンプルI(0)(i-1,j)とに基づいて、前記サンプルの1つのサンプルに対する第1の水平勾配を決定することであり、iおよびjは前記1つのサンプルの座標に対応する、決定することと、
第2の予測サンプルI(1)(i+1,j)と第2の予測サンプルI(1)(i-1,j)とに基づいて、前記1つのサンプルに対する第2の水平勾配を決定することと、
第1の予測サンプルI(0)(i,j+1)と第1の予測サンプルI(0)(i,j-1)とに基づいて、前記1つのサンプルに対する第1の垂直勾配を決定することと、
第2の予測サンプルI(1)(i,j+1)と第2の予測サンプルI(1)(i,j-1)とに基づいて、前記1つのサンプルに対する第2の垂直勾配を決定することと、
中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックの前記1つのサンプルに対する動き補正を決定することであり、前記中間パラメータが、前記第1および第2の水平勾配と、前記第1および第2の垂直勾配と、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づくサンプル差とを備える、決定することと、
前記動き補正と、前記第1の水平勾配および第2の水平勾配の差と、前記第1の垂直勾配および第2の垂直勾配の差とに基づいて、前記ビデオ・サブブロックの前記1つのサンプルに対する双方向予測サンプルを決定することとを備え、
前記中間パラメータの前記ビット幅を制御することが、前記中間パラメータの前記ビット幅を減少させることを備える、方法。
【請求項2】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックの前記1つのサンプルに対する動き補正を決定することが、
前記第1および第2の水平勾配を第1のビットシフト値だけ右シフトすることと、
前記第1および第2の垂直勾配を前記第1のビットシフト値だけ右シフトすることとを備える、請求項1に記載の方法。
【請求項3】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックの前記1つのサンプルに対する動き補正を決定することが、前記ビデオ・サブブロックの前記1つのサンプルに対して、
第1の相関関係値を決定することであり、前記第1の相関関係値が、前記1つのサンプルに関する前記第1の予測サンプルI(0)および前記第2の予測サンプルI(1)の水平勾配の和である、決定することと、
第2の相関関係値を決定することであり、前記第2の相関関係値が、前記1つのサンプルに関する前記第1の予測サンプルI(0)および前記第2の予測サンプルI(1)の垂直勾配の和である、決定することと、
第2のビットシフト値を使用して前記第1の相関関係値を右シフトすることによって、修正された第1の相関関係値を決定することと、
第2のビットシフト値を使用して前記第2の相関関係値を右シフトすることによって、修正された第2の相関関係値を決定することとをさらに備える、請求項1に記載の方法。
【請求項4】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックの前記1つのサンプルに対する動き補正を決定することは、前記ビデオ・サブブロックの前記1つのサンプルに対して、
第3のビットシフト値を使用して前記1つのサンプルに対する第1の予測サンプルI(0)(i,j)を右シフトすることによって、第1の修正された予測サンプルを決定することと、
前記第3のビットシフト値を使用して前記1つのサンプルに対する第2の予測サンプルI(1)(i,j)を右シフトすることによって、第2の修正された予測サンプルを決定することと、
前記1つのサンプルに対する前記サンプル差を決定することであり、前記サンプル差が、前記第1の修正された予測サンプルと前記第2の修正された予測サンプルとの間の差である、決定することと
をさらに備える、請求項3に記載の方法。
【請求項5】
前記第2のビットシフト値および前記第3のビットシフト値が、それぞれ1および4に等しい、請求項4に記載の方法。
【請求項6】
前記ビデオ・ブロックの各4×4サブブロック内の前記第1の相関関係値および前記第2の相関関係値の和に基づいて、第1の内部加算値を決定することと、
第1のパラメータに基づいて前記第1の内部加算値をクリッピングすることであり、前記第1のパラメータが、前記第1の内部加算値の出力ビット深さを制御する、クリッピングすることと、
前記ビデオ・ブロックの各4×4サブブロック内の前記第2の相関関係値および前記サンプル差の和に基づいて、第2の内部加算値を決定することと、
第2のパラメータに基づいて前記第2の内部加算値をクリッピングすることであり、前記第2のパラメータが、前記第2の内部加算値の出力ビット深さを制御する、クリッピングすることと
をさらに備える、請求項4に記載の方法。
【請求項7】
前記第1のパラメータが26に等しく、前記第2のパラメータが28に等しい、請求項6に記載の方法。
【請求項8】
ビデオ信号を符号化するための双方向オプティカル・フロー(BDOF)のビット幅制御方法であって、
ビデオ・サブブロックに関連付けられた第1の参照ピクチャおよび第2の参照ピクチャを決定することであり、表示順で、前記第1の参照ピクチャが、現在のピクチャの前にあり、前記第2の参照ピクチャが、前記現在のピクチャの後にある、決定することと、
前記第1の参照ピクチャから、前記ビデオ・サブブロックのサンプルに対する第1の予測サンプルI(0)を決定することと、
前記第2の参照ピクチャから、前記ビデオ・サブブロックのサンプルに対する第2の予測サンプルI(1)を決定することと、
中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックに適用される局所ウィンドウに基づいて前記ビデオ・サブブロックのサンプルに対する動き補正を決定することであり、前記中間パラメータが、前記第1の予測サンプルI(0)と前記第2の予測サンプルI(1)とに基づく水平勾配、垂直勾配、およびサンプル差のうち少なくとも1つを備える、決定することと、
前記動き補正に基づいて、前記ビデオ・サブブロックのサンプルの双方向予測サンプルを決定することとを備える方法。
【請求項9】
前記中間パラメータの前記ビット幅を制御することが、前記中間パラメータの前記ビット幅を減少させることを備える、請求項8に記載の方法。
【請求項10】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックに適用される局所ウィンドウに基づいて前記ビデオ・サブブロックのサンプルに対する動き補正を決定することが、前記ビデオ・サブブロックの1つのサンプルに対して、
第1の予測サンプルI(0)(i+1,j)と第1の予測サンプルI(0)(i-1,j)とに基づいて、前記1つのサンプルに関する前記第1の予測サンプルI(0)の第1の水平勾配を決定することであり、iおよびjは前記1つのサンプルの座標に対応する、決定することと、
第2の予測サンプルI(1)(i+1,j)と第2の予測サンプルI(1)(i-1,j)とに基づいて、前記1つのサンプルに関する前記第2の予測サンプルI(1)の第2の水平勾配を決定することと、
第1の予測サンプルI(0)(i,j+1)と第1の予測サンプルI(0)(i,j-1)とに基づいて、前記1つのサンプルに対する第1の垂直勾配を決定することと、
第2の予測サンプルI(1)(i,j+1)と第2の予測サンプルI(1)(i,j-1)とに基づいて、前記1つのサンプルに対する第2の垂直勾配を決定することとを備える、請求項9に記載の方法。
【請求項11】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックに適用される局所ウィンドウに基づいて前記ビデオ・サブブロックのサンプルに対する動き補正を決定することが、
前記第1および第2の水平勾配を第1のビットシフト値だけ右シフトすることと、
前記第1および第2の垂直勾配を前記第1のビットシフト値だけ右シフトすることとを備える、請求項10に記載の方法。
【請求項12】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックに適用される局所ウィンドウに基づいて前記ビデオ・サブブロックのサンプルに対する動き補正を決定することが、前記ビデオ・サブブロックの1つのサンプルに対して、
第1の相関関係値を決定することであり、前記第1の相関関係値が、前記1つのサンプルに関する前記第1の予測サンプルI(0)および前記第2の予測サンプルI(1)の水平勾配の和である、決定することと、
第2の相関関係値を決定することであり、前記第2の相関関係値が、前記1つのサンプルに関する前記第1の予測サンプルI(0)および前記第2の予測サンプルI(1)の垂直勾配の和である、決定することと、
前記第1の相関関係値を1だけ右シフトすることによって、修正された第1の相関関係値を決定することと、
前記第2の相関関係値を1だけ右シフトすることによって、修正された第2の相関関係値を決定することとをさらに備える、請求項8に記載の方法。
【請求項13】
前記中間パラメータのビット幅を制御することによって、前記ビデオ・サブブロックに適用される局所ウィンドウに基づいて前記ビデオ・サブブロックのサンプルに対する動き補正を決定することが、前記ビデオ・サブブロックの1つのサンプルに対して、
前記1つのサンプルに対する第1の予測サンプルI(0)(i,j)を4だけ右シフトすることによって、第1の修正された予測サンプルを決定することと、
前記1つのサンプルに対する第2の予測サンプルI(1)(i,j)を4だけ右シフトすることによって、第2の修正された予測サンプルを決定することと、
前記1つのサンプルに対するサンプル差を決定することであり、前記サンプル差が、前記第1の修正された予測サンプルと前記第2の修正された予測サンプルとの間の差である、決定することと
をさらに備える、請求項12に記載の方法。
【請求項14】
1つまたは複数のプロセッサと、
ビデオ信号を符号化するための命令が格納されたメモリと、
を備えるコンピューティング・デバイスであって、
前記命令は、前記1つまたは複数のプロセッサによって実行されると、請求項1~7のいずれかに記載の方法を前記コンピューティング・デバイスに実施させる、コンピューティング・デバイス。
【請求項15】
1つまたは複数のプロセッサと、
ビデオ信号を符号化するための命令が格納されたメモリと、
を備えるコンピューティング・デバイスであって、
前記命令は、前記1つまたは複数のプロセッサによって実行されると、請求項8~13のいずれかに記載の方法を前記コンピューティング・デバイスに実施させる、コンピューティング・デバイス。
【請求項16】
ビデオ信号を符号化するための命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、請求項1~7のいずれかに記載の方法を前記プロセッサに実施させる、非一時的コンピュータ可読記憶媒体。
【請求項17】
ビデオ信号を符号化するための命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、請求項8~13のいずれかに記載の方法を前記プロセッサに実施させる、非一時的コンピュータ可読記憶媒体。
【請求項18】
請求項1~7のいずれか、または請求項8~13のいずれかに記載の方法をコンピュータに実施させる、コンピュータプログラム。
【請求項19】
請求項1~7または請求項8~13のいずれかに記載の方法によって符号化されたビットストリームを記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、すべての内容が全体として参照により本明細書に組み込まれている、2019年3月15日出願の米国仮特許出願第62/819,408号に基づいており、その優先権を主張する。
【0002】
本出願は、ビデオの符号化および圧縮に関する。より詳細には、本開示は、ビデオ符号化のための双方向オプティカル・フロー(BDOF)方法に対する方法および装置に関する。
【背景技術】
【0003】
ビデオ・データを圧縮するために、様々なビデオ符号化技法を使用することができる。ビデオ符号化は、1つまたは複数のビデオ符号化規格に従って実行される。たとえば、ビデオ符号化規格には、多用途ビデオ符号化(VVC)、共同探索試験モデル符号化(JEM)、高効率ビデオ符号化(H.265/HEVC)、高度ビデオ符号化(H.264/AVC)、ムービング・ピクチャ・エキスパート・グループ(MPEG)符号化などが含まれる。ビデオ符号化は概して、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオ符号化技法の重要な目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビット・レートを使用する形式にビデオ・データを圧縮することである。
【発明の概要】
【0004】
本開示の例は、双方向オプティカル・フロー(BDOF)に対するビット幅制御のための方法および装置を提供する。本開示の第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)を取得することをさらに含むことができる。この方法は、中間パラメータの内部ビット幅を導出することによって、BDOFの内部ビット幅を制御することをさらに含むことができる。中間パラメータは、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間の水平勾配値、垂直勾配値、およびサンプル差を備える中間パラメータを含むことができる。この方法は、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてビデオ・ブロックに適用されるBDOFに基づいて、ビデオ・ブロック内のサンプルに対する動き補正を取得することをさらに含むことができる。この方法は、動き補正に基づいて、ビデオ・ブロックの双方向予測サンプルを取得することをさらに含むことができる。
【0005】
本開示の第2の態様によれば、ビデオ信号を符号化するビット幅制御方法が提供される。この方法は、ビデオ・ブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得することを含むことができる。表示順で、第1の参照ピクチャI(0)は、現在のピクチャの前にくることができ、第2の参照ピクチャI(1)は、現在のピクチャの後にくることができる。この方法は、第1の参照ピクチャI(0)内の参照ブロックから、ビデオ・ブロックの第1の予測サンプルI(0)(i,j)を取得することを含むことができる。iおよびjの変数は、現在のピクチャに対する1つのサンプルの座標を表すことができる。この方法は、第2の参照ピクチャI(1)内の参照ブロックから、ビデオ・ブロックの第2の予測サンプルI(1)(i,j)を取得することを含むことができる。この方法は、中間パラメータの内部ビット幅を導出することによって、BDOFの内部ビット幅を制御することを含むことができる。中間パラメータは、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間の水平勾配値、垂直勾配値、およびサンプル差を備える中間パラメータを含むことができる。この方法は、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)を使用してビデオ・ブロックに適用されるBDOFおよび局所ウィンドウに基づいて、ビデオ・ブロック内のサンプルに対する動き補正を取得することを含むことができる。局所ウィンドウは、ビデオ・ブロックを含み、局所ウィンドウは、6×6画素未満のウィンドウ・サイズを有する。この方法は、動き補正に基づいて、ビデオ・ブロックの双方向予測サンプルを取得することを含むことができる。
【0006】
本開示の第3の態様によれば、コンピューティング・デバイスが提供される。コンピューティング・デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含むことができる。1つまたは複数のプロセッサは、ビデオ・ブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得するように構成されてもよい。表示順で、第1の参照ピクチャI(0)は、現在のピクチャの前にくることができ、第2の参照ピクチャI(1)は、現在のピクチャの後にくることができる。1つまたは複数のプロセッサは、第1の参照ピクチャI(0)内の参照ブロックから、ビデオ・ブロックの第1の予測サンプルI(0)(i,j)を取得するように構成されてもよい。iおよびjの変数は、現在のピクチャに対する1つのサンプルの座標を表すことができる。1つまたは複数のプロセッサは、第2の参照ピクチャI(1)内の参照ブロックから、ビデオ・ブロックの第2の予測サンプルI(1)(i,j)を取得するように構成されてもよい。1つまたは複数のプロセッサは、中間パラメータの内部ビット幅を導出することによって、双方向オプティカル・フロー(BDOF)の内部ビット幅を制御するように構成されてもよい。中間パラメータは、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間の水平勾配値、垂直勾配値、およびサンプル差を備える。1つまたは複数のプロセッサは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいてビデオ・ブロックに適用されるBDOFに基づいて、ビデオ・ブロック内のサンプルに対する動き補正を取得するように構成されてもよい。1つまたは複数のプロセッサは、動き補正に基づいてビデオ・ブロックの双方向予測サンプルを取得するように構成されてもよい。
【0007】
本開示の第4の態様によれば、コンピューティング・デバイスが提供される。コンピューティング・デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読メモリとを含むことができる。1つまたは複数のプロセッサは、ビデオ・ブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得するように構成されてもよい。表示順で、第1の参照ピクチャI(0)は、現在のピクチャの前にくることができ、第2の参照ピクチャI(1)は、現在のピクチャの後にくることができる。1つまたは複数のプロセッサは、第1の参照ピクチャI(0)内の参照ブロックから、ビデオ・ブロックの第1の予測サンプルI(0)(i,j)を取得するように構成されてもよい。iおよびjの変数は、現在のピクチャに対する1つのサンプルの座標を表すことができる。1つまたは複数のプロセッサは、第2の参照ピクチャI(1)内の参照ブロックから、ビデオ・ブロックの第2の予測サンプルI(1)(i,j)を取得するように構成されてもよい。1つまたは複数のプロセッサは、中間パラメータの内部ビット幅を導出することによって、双方向オプティカル・フロー(BDOF)の内部ビット幅を制御するように構成されてもよい。中間パラメータは、第1の予測サンプルI(0)(i,j)と第2の予測サンプルI(1)(i,j)との間の水平勾配値、垂直勾配値、およびサンプル差を備える中間パラメータを含むことができる。1つまたは複数のプロセッサは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)を使用してビデオ・ブロックに適用されるBDOFおよび局所ウィンドウに基づいて、ビデオ・ブロック内のサンプルに対する動き補正を取得するように構成されてもよい。局所ウィンドウは、サブブロックを含むことができ、局所ウィンドウは、6×6画素のウィンドウ・サイズを有することができる。1つまたは複数のプロセッサは、動き補正に基づいてビデオ・ブロックの双方向予測サンプルを取得するように構成されてもよい。
【0008】
上記の概略的な説明および下記の詳細な説明はどちらも単なる例であり、本開示を制限するものではないことを理解されたい。
【0009】
本明細書に組み込まれてその一部を構成する添付の図面は、本開示に一貫した例を示し、本説明とともに、本開示の原理について説明する働きをする。
【図面の簡単な説明】
【0010】
【
図1】本開示の一例によるエンコーダのブロック図である。
【
図2】本開示の一例によるデコーダのブロック図である。
【
図3A】本開示の一例による複数タイプのツリー構造内のブロック区画を示す図である。
【
図3B】本開示の一例による複数タイプのツリー構造内のブロック区画を示す図である。
【
図3C】本開示の一例による複数タイプのツリー構造内のブロック区画を示す図である。
【
図3D】本開示の一例による複数タイプのツリー構造内のブロック区画を示す図である。
【
図3E】本開示の一例による複数タイプのツリー構造内のブロック区画を示す図である。
【
図4】本開示の一例による双方向オプティカル・フロー(BDOF)モデルの図である。
【
図5】本開示の一例によるビデオ信号を符号化するビット幅制御方法を示す流れ図である。
【
図6】本開示の一例によるBDOFビット幅制御方法を示す流れ図である。
【
図7】本開示の一例によるユーザ・インターフェースに結合されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0011】
例示的な実施形態が次に詳細に参照され、例示的な実施形態の例は、添付の図面に示されている。以下の説明は、添付の図面を参照し、添付の図面では、別途示されない限り、異なる図面における同じ番号は、同じまたは類似の要素を表す。実施形態の以下の説明に記載される実装形態は、本開示に一貫したすべての実装形態を表すとは限らない。代わりに、これらの実装形態は、添付の特許請求の範囲に記載される本開示に関する態様に一貫した装置および方法の単なる例である。
【0012】
本開示で使用される術語は、特定の実施形態について説明することのみを目的とし、本開示を限定することは意図されない。本開示および添付の特許請求の範囲で使用されるとき、単数形の「a」、「an」、および「the」は、文脈上別途明確に示さない限り、複数形も同様に含むことが意図される。本明細書で使用される「および/または」という用語は、記載される関連する項目のうちの1つまたは複数のあらゆる可能な組合せを意味し、それらを含むことが意図されることも理解されたい。
【0013】
様々な情報について説明するために、「第1」、「第2」、「第3」などの用語を本明細書で使用することがあるが、その情報はこれらの用語によって限定されるべきではないことを理解されたい。これらの用語は、1つのカテゴリの情報を別のカテゴリの情報から区別するためだけに使用される。たとえば、本開示の範囲から逸脱することなく、第1の情報が第2の情報と呼ばれてもよく、同様に第2の情報が第1の情報と呼ばれてもよい。本明細書では、「~場合、~かどうか(if)」という用語は、文脈に応じて、「~とき(when)」または「~とき(upon)」または「~の判断に応答して(in response to a judgment)」を意味することが理解されよう。
【0014】
HEVC規格の最初のバージョンは、2013年10月に完成されたものであり、前の世代のビデオ符号化規格H.264/MPEG AVCと比較されたとき、約50%のビット・レートの節約または同等の知覚品質を提供する。HEVC規格は、その前身に比べて大幅な符号化の改善を提供するが、追加の符号化ツールによって、HEVCより優れた符号化効率が実現されることができることが証明されている。それに基づいて、VCEGおよびMPEGはどちらも、将来のビデオ符号化の規格化に向けて、新しい符号化技術の探索作業を開始した。2015年10月、符号化効率の実質的な強化を可能にし得る高度な技術の重要な研究を開始するために、ITU-T VECGおよびISO/IEC MPEGによって、1つの共同ビデオ探索チーム(JVET)が結成された。JVETにより、HEVC試験モデル(HM)に加えていくつかの追加の符号化ツールを統合することによって、共同探索モデル(JEM)と呼ばれる1つの参照ソフトウェアが主張された。
【0015】
2017年10月、HEVCを超えた能力を有するビデオ圧縮に関するジョイント・コール・フォー・プロポーザルズ(CfP)が、ITU-TおよびISO/IECによって発表された[9]。2018年4月、23件のCfP応答が受理されて第10回JVET会議で評価され、HEVCに比べて約40%の圧縮効率の向上を実証した。そのような評価結果に基づいて、JVETは、多用途ビデオ符号化(VVC)と呼ばれる新世代のビデオ符号化規格を開発するための新しいプロジェクトに着手した[10]。同月、VVC規格の参照実装を実証するために、VVC試験モデル(VTM)[11]と呼ばれる1つの参照ソフトウェア・コードベースが確立された。
【0016】
HEVCと同様に、VVCは、ブロックに基づく混成ビデオ符号化フレームワークで構築される。
図1は、汎用のブロックに基づく混成ビデオ・コード化システムのブロック図を示す。入力ビデオ信号は、ブロック(符号化単位(CU)と呼ばれる)ごとに処理される。具体的には、
図1は、本開示による典型的なエンコーダ100を示す。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インター・モード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関係情報142、イントラ予測118、ピクチャ・バッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピー符号化138、およびビットストリーム144を有する。
【0017】
VTM-1.0において、CUは最大128×128画素とすることができる。しかし、4分木のみに基づいてブロックを分割するHEVCとは異なり、VVCでは、4分木/2分木/3分木に基づいて変動する局所的な特徴に適応するために、1つの符号化ツリー単位(CTU)が複数のCUに分割される。加えて、HEVCにおける複数の分割単位タイプの概念は除去され、すなわちCU、予測単位(PU)、および変換単位(TU)の分離はVVCには存在しなくなり、代わりに各CUは常に、さらなる分割なく、予測および変換の両方に対する基本単位として使用される。複数タイプのツリー構造では、最初に1つのCTUが4分木構造によって分割される。次いで各4分木の葉ノードは、2分木および3分木構造によってさらに分割されることがある。
【0018】
図3A、
図3B、
図3C、
図3D、および
図3E(後述)に示されているように、4分割、水平2分割、垂直2分割、水平3分割、および垂直3分割という5つの分割タイプが存在する。
【0019】
図3Aは、本開示による複数タイプのツリー構造におけるブロックの4分割を示す図を示す。
【0020】
図3Bは、本開示による複数タイプのツリー構造におけるブロックの垂直2分割を示す図を示す。
【0021】
図3Cは、本開示による複数タイプのツリー構造におけるブロックの水平2分割を示す図を示す。
【0022】
図3Dは、本開示による複数タイプのツリー構造におけるブロックの垂直3分割を示す図を示す。
【0023】
図3Eは、本開示による複数タイプのツリー構造におけるブロックの水平3分割を示す図を示す。
【0024】
図1で、空間予測および/または時間予測が実行されてもよい。空間予測(または「イントラ予測」)は、同じビデオ・ピクチャ/スライス内のすでに符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオ・ブロックを予測する。空間予測は、ビデオ信号に固有の空間的冗長性を低減させる。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、すでに符号化されたビデオ・ピクチャからの再構築画素を使用して、現在のビデオ・ブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減させる。所与のCUに対する時間予測信号は通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によって伝えられる。
【0025】
また、複数の参照ピクチャが対応される場合、1つの参照ピクチャ索引がさらに送られ、参照ピクチャ・ストレージ内のどの参照ピクチャから時間予測信号がくるかを識別するために使用される。空間および/または時間予測後、エンコーダ内のモード決定ブロックが、たとえばレート歪み最適化方法に基づいて、最善の予測モードを選ぶ。次いで、現在のビデオ・ブロックから予測ブロックが引かれ、変換を使用して予測残差の相関が除去され、量子化される。
【0026】
量子化された残差係数は、逆量子化および逆変換されて、再構築残差を形成し、次いで再構築残差は、予測ブロックに再び付加さられ、CUの再構築信号を形成する。さらに、非ブロック化フィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのループ内フィルタリングが、再構築CUに適用されてもよく、その後、参照ピクチャ・ストアに入れられ、将来のビデオ・ブロックを符号化するために使用される。出力ビデオ・ビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化残差係数はすべてエントロピー符号化ユニットへ送られ、さらに圧縮およびパックされ、ビットストリームを形成する。
【0027】
図2は、ブロックに基づくビデオ・デコーダの概略ブロック図を示す。具体的には、
図2は、本開示による典型的なデコーダ200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号212、逆量子化214、逆変換216、加算器218、イントラ/インター・モード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャ・バッファ226、予測関係情報234、およびビデオ出力232を有する。
【0028】
図2で、最初にビデオ・ビットストリームがエントロピー復号ユニットでエントロピー復号される。符号化モードおよび予測情報は、空間予測ユニット(イントラ符号化の場合)または時間予測ユニット(インター符号化の場合)へ送られて、予測ブロックを形成する。残差変換係数が、逆量子化ユニットおよび逆変換ユニットへ送られて、残差ブロックを再構築する。次いで、予測ブロックおよび残差ブロックがともに加算される。再構築ブロックは、ループ内フィルタをさらに通過することができ、その後、参照ピクチャ・ストア内に記憶される。次いで、参照ピクチャ・ストア内の再構築ビデオは、表示デバイスを駆動するために送出され、ならびに将来のビデオ・ブロックを予測するために使用される。
【0029】
双方向オプティカル・フロー
【0030】
ビデオ符号化における従来の双方向予測は、すでに再構築された参照ピクチャから取得される2つの時間予測ブロックの簡単な組合せである。しかし、ブロックに基づく動き補償の制限により、2つの予測ブロックのサンプル間で観察されることができるわずかな動きが残る可能性があり、したがって動き補償予測の効率を低減させる。VVCでは、1つのブロック内のすべてのサンプルに対するそのような動きの影響を減少させるために、双方向オプティカル・フロー(BDOF)が適用される。
【0031】
図4は、本開示による双方向オプティカル・フロー(BDOF)モデルの例示を示す。BDOFは、双方向予測が使用されるときにブロックに基づく動き補償予測に加えて実行されるサンプルごとの動き補正である。各4×4サブブロックの動き補正(v
x,v
y)は、サブブロックの周りの1つの6×6ウィンドウΩ内でBDOFが適用された後、L0およびL1予測サンプル間の差を最小化することによって計算される。具体的には、(v
x,v
y)の値は、
【0032】
【0033】
として導出され、上式で、
【0034】
【0035】
は床関数であり、clip3(min,max,x)は、[min,max]で範囲内の所与の値xをクリッピングする関数であり、記号>>は、ビットごとの右シフト動作を表し、記号<<は、ビットごとの左シフト動作を表し、thBDOFは、不規則な局所的動きによる伝搬誤差を防止するための動き補正閾値であり、213-BDに等しく、ここでBDは、入力ビデオのビット深さである。(1)で、
【0036】
【0037】
である。
【0038】
S1、S2、S3、S5、およびS6の値は、
【0039】
【0040】
として計算され、上式で、
【0041】
【0042】
であり、上式で、I(k)(i,j)は、リストk,k=0,1における予測信号の座標(i,j)のサンプル値であり、中程度の精度(すなわち、16ビット)で生成され、
【0043】
【0044】
および
【0045】
【0046】
は、その2つの隣接サンプル間の差を直接計算することによって取得されるサンプルの水平および垂直勾配であり、すなわち、
【0047】
【0048】
である。
【0049】
(1)で導出された動き補正に基づいて、
【0050】
【0051】
によって示されるように、オプティカル・フロー・モデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって、CUの最終的な双方向予測サンプルが計算され、上式で、shiftおよびοoffsetは、双方向予測のためにL0およびL1予測信号を組み合わせるために適用される右シフト値およびオフセット値であり、それぞれ15-BDおよび1<<(14-BD)+2・(1<<13)に等しい。表1は、BDOFプロセスに含まれる中間パラメータの特有のビット幅を示す。ビット幅は、たとえば、値を表すために必要なビットの数である。この表に示されているように、全BDOFプロセスの内部ビット幅は、32ビットを超えない。加えて、(1)において、考え得る最悪の入力による乗算が、15ビットおよび4ビット入力によって、vxS2,mの積で生じる。したがって、15ビットの乗数がBDOFにとって十分である。
【0052】
【0053】
双方向予測的予測の効率
【0054】
BDOFは双方向予測的予測の効率を高めることができるが、依然としてその設計は、さらに改善されることができる。具体的には、VVCの既存のBDOF設計における中間パラメータのビット幅を制御することが、本開示で明らかにされる。
【0055】
表1に示されているように、パラメータθ(i,j)(すなわち、L0およびL1予測サンプル間の差)、ならびにパラメータψx(i,j)およびψy(i,j)(すなわち、水平/垂直L0およびL1勾配値の和)が、11ビットの同じビット幅で表されている。そのような方法は、BDOFに対する内部ビット幅の全体的な制御を容易にすることができるが、導出された動き補正の精度に関して最適とは言えない。これは、(4)に示されているように、これらの勾配値が隣接予測サンプル間の差として計算されるからであり、そのようなプロセスのハイパス特性により、導出された勾配は、ノイズ、たとえば元のビデオで捕捉されるノイズおよび符号化プロセス中に生成される符号化ノイズの存在下で、信頼性が低くなる。これは、高ビット幅で勾配値を表すことが常に有益であるとは限らないことを意味する。
【0056】
表1に示されているように、全BDOFプロセスの最大ビット幅の使用は、垂直動き補正vyの計算によって生じ、ここで、最初にS6(27ビット)が3ビットだけ左シフトされ、次いで((vxS2,m)<<12+vxS2,s)/2(30ビット)が引かれる。したがって、現在の設計の最大ビット幅は、31ビットに等しい。実際的なハードウェア実装では、通常、16ビットより大きい最大内部ビット幅による符号化プロセスが、32ビットの実装によって実施される。したがって、既存の設計は、32ビット実装の有効なダイナミック・レンジを完全には利用していない。これは、BDOFによって導出される動き補正の不必要な精度損失を招く可能性がある。
【0057】
BDOFを使用した双方向予測的予測の効率の改善
【0058】
本開示では、既存のBDOF設計に関する「双方向予測的予測の効率」の章で指摘されたビット幅制御方法の2つの問題に対処するために、1つの改善されたビット幅制御方法が提案される。
【0059】
図5は、本開示によるビデオ信号を符号化するビット幅制御方法を示す。
【0060】
ステップ510で、サブブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得する。表示順で、第1の参照ピクチャI(0)は、現在のピクチャの前にあり、第2の参照ピクチャI(1)は、現在のピクチャの後にある。たとえば、参照ピクチャは、コード化されている現在のピクチャに隣接するビデオ・ピクチャとすることができる。
【0061】
ステップ512で、第1の参照ピクチャI(0)内の参照ブロックへのサブブロックから、第1の予測サンプルI(0)(i,j)を取得する。たとえば、第1の予測サンプルI(0)(i,j)は、表示順で前の参照ピクチャのL0リスト内の動きベクトルを使用する予測サンプルとすることができる。
【0062】
ステップ514で、第2の参照ピクチャI(1)内の参照ブロックへのサブブロックから、第2の予測サンプルI(1)(i,j)を取得する。たとえば、第2の予測サンプルI(1)(i,j)は、表示順で次の参照ピクチャのL1リスト内の動きベクトルを使用する予測サンプルとすることができる。
【0063】
ステップ516で、中間パラメータの内部ビット幅を変化させることによって、双方向オプティカル・フロー(BDOF)の内部ビット幅を制御する。中間パラメータは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいて導出された水平勾配値および垂直勾配値を含む。勾配値は、たとえば、その2つの隣接する予測サンプル(第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j))間の差である。
【0064】
ステップ518で、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)を使用してサブブロックに適用されるBDOFに基づいて、動き補正値を取得する。
【0065】
ステップ520で、動き補正値に基づいて、サブブロックの双方向予測サンプルを取得する。
【0066】
本開示の一実施形態では、勾配推定誤差の負の影響を克服するために、(4)で勾配値
【0067】
【0068】
および
【0069】
【0070】
を計算するとき、すなわち勾配値の内部ビット幅を減少させるために、提案された方法において追加の右シフトngradが導入される。具体的には、各サンプル位置の水平および垂直勾配が、
【0071】
【0072】
として計算される。
【0073】
さらに、適当な内部ビット幅で動作させられるように、BDOFプロセス全体を制御するために、
【0074】
【0075】
として示されるように、変数ψx(i,j)、ψy(i,j)、およびθ(i,j)の計算に、追加のビットシフトnadjが導入される。
【0076】
表2で、(6)および(7)で適用される右シフトされるビットの数の修正により、3つのパラメータが同じダイナミック・レンジ(すなわち、21ビット)で表されている表1の既存のBDOF設計と比較されたとき、パラメータψx(i,j)、ψy(i,j)、およびθ(i,j)のダイナミック・レンジは異なる。そのような変化は、内部パラメータS1、S2、S3、S5、およびS6のビット幅を増大させる可能性があり、それは場合により、内部BDOFプロセスの最大ビット幅を32ビットより大きく増大させる可能性がある。したがって、32ビット実装を確実にするために、S2およびS6の値を計算する際に、2つの追加のクリッピング動作が導入される。具体的には、提案される方法において、これら2つのパラメータの値は、
【0077】
【0078】
として計算され、上式で、B2およびB6は、それぞれS2およびS6の出力ダイナミック・レンジを制御するためのパラメータである。たとえば、ビット深さは、各画素を画定するために使用されるビットの数を表す。勾配計算とは異なり、(8)のクリッピング動作は、1つのBDOFのCU内の各4×4サブブロックの動き補正を計算するために一度だけ適用され、すなわち4×4単位に基づいて呼び出されることに留意されたい。したがって、提案される方法で導入されるクリッピング動作による対応する複雑さの増大は、非常にわずかである。
【0079】
実際には、中間ビット幅と内部BDOF導出の精度との間で異なるトレードオフを実現するために、ngrad、nadj、B2、およびB6の異なる値が適用されてもよい。本開示の一実施形態として、ngradおよびnadjを2に、B2を25に、B6を27に設定することが提案される。本開示の一実施形態として、B2を26に、B6を28に設定することが提案される。本開示の一実施形態として、ngradおよびnadjを6、1、または4に設定することが提案される。
【0080】
表2は、提案されるビット幅制御方法がBDOFに適用されるときの各中間パラメータの対応するビット幅を示す。表2で、灰色は、VVCの既存のBDOF設計(表1に示されている)と比較されたとき、提案されるビット幅制御方法で適用された変化を強調する。表2に見られ得るように、提案されるビット幅制御方法の場合、全BDOFプロセスの内部ビット幅は、32ビットを超えない。加えて、提案される設計によって、最大ビット幅はちょうど32ビットであり、32ビットのハードウェア実装の利用可能なダイナミック・レンジを完全に利用することができる。他方では、この表に示されているように、考え得る最悪の入力による乗算が、vxS2,mの積で生じ、入力S2,mは14ビットであり、入力vxは6ビットである。したがって、既存のBDOF設計と同様に、提案される方法が適用されるときも、1つの16ビットの乗数は十分に大きい。
【0081】
【0082】
上記の方法では、vxおよびvyを導出するとき、中間パラメータのオーバーフローを回避するために、等式(8)に示されているように、クリッピング動作が加えられる。しかし、そのようなクリッピングは、相関関係パラメータが大きい局所ウィンドウ内に蓄積されているときにのみ必要とされる。1つの小さいウィンドウが適用されるとき、オーバーフローは起こり得ない。したがって、本開示の別の実施形態では、以下に記載されているように、クリッピングを使用しないBDOF方法に対して、以下のビット深さ制御方法が提案される。
【0083】
第1に、各サンプル位置における(4)の勾配値
【0084】
【0085】
および
【0086】
【0087】
が、
【0088】
【0089】
として計算される。
【0090】
第2に、次いでBDOFプロセスに使用される相関関係パラメータψx(i,j)、ψy(i,j)、およびθ(i,j)が、
【0091】
【0092】
として計算される。
【0093】
第3に、S1、S2、S3、S5、およびS6の値が、
【0094】
【0095】
として計算される。
【0096】
第4に、各4×4サブブロックの動き補正(vx,vy)が、
【0097】
【0098】
として導出される。
【0099】
第5に、
【0100】
【0101】
によって示されているように、オプティカル・フロー・モデルに基づいて動き軌道に沿ってL0/L1予測サンプルを補間することによって、CUの最終的な双方向予測サンプルが計算される。
【0102】
図6は、本開示による例示的なBDOFビット幅制御方法を示す。
【0103】
ステップ610で、サブブロックに関連付けられた第1の参照ピクチャI(0)および第2の参照ピクチャI(1)を取得する。表示順で、第1の参照ピクチャI(0)は、現在のピクチャ前にあり、第2の参照ピクチャI(1)は、現在のピクチャの後にある。
【0104】
ステップ612で、第1の参照ピクチャI(0)内の参照ブロックへのサブブロックから、第1の予測サンプルI(0)(i,j)を取得する。
【0105】
ステップ614で、第2の参照ピクチャI(1)内の参照ブロックへのサブブロックから、第2の予測サンプルI(1)(i,j)を取得する。
【0106】
ステップ616で、導出された勾配値の内部ビット幅を変化させることによって、双方向オプティカル・フロー(BDOF)の内部ビット幅を制御する。中間パラメータは、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)に基づいて導出された水平勾配値および垂直勾配値を含む。
【0107】
ステップ618で、第1の予測サンプルI(0)(i,j)および第2の予測サンプルI(1)(i,j)を使用してサブブロックに適用されるBDOFおよび局所ウィンドウに基づいて、動き補正値を取得する。局所ウィンドウは、サブブロックを含み、局所ウィンドウは、6×6画素未満のウィンドウ・サイズを有する。
【0108】
ステップ620で、動き補正値に基づいて、サブブロックの双方向予測サンプルを取得する。
【0109】
図7は、ユーザ・インターフェース760に結合されたコンピューティング環境710を示す。コンピューティング環境710は、データ処理サーバの一部とすることができる。コンピューティング環境710は、プロセッサ720、メモリ740、およびI/Oインターフェース750を含む。
【0110】
プロセッサ720は、典型的には、表示、データ取得、データ通信、および画像処理に関連する動作など、コンピューティング環境710の全体的な動作を制御する。プロセッサ720は、上述された方法のステップのすべてまたはいくつかを実施するための命令を実行するために、1つまたは複数のプロセッサを含むことができる。さらに、プロセッサ720は、プロセッサ720と他の構成要素との間の相互作用を容易にする1つまたは複数のモジュールを含むことができる。プロセッサは、中央演算処理装置(CPU)、マイクロプロセッサ、シングルチップ機械、GPUなどとすることができる。
【0111】
メモリ740は、コンピューティング環境710の動作に対応するために、様々なタイプのデータを記憶するように構成される。そのようなデータの例は、コンピューティング環境710、ビデオ・データセット、画像データなどで動作させられるあらゆるアプリケーションまたは方法に関する命令を備える。メモリ740は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用目盛り(ROM)、磁気メモリ、フラッシュ・メモリ、磁気または光ディスクなど、任意のタイプの揮発性または不揮発性のメモリ・デバイス、またはこれらの組合せを使用することによって実施されてもよい。
【0112】
I/Oインターフェース750は、プロセッサ720と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェースモジュールとの間に、インターフェースを提供する。ボタンは、それだけに限定されるものではないが、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含むことができる。I/Oインターフェース750は、エンコーダおよびデコーダに結合されてもよい。
【0113】
一実施形態では、上述された方法を実施するためにコンピューティング環境710内のプロセッサ720によって実行可能である、メモリ740内に備えられるものなどの複数のプログラムを備える非一時的コンピュータ可読記憶媒体も提供される。たとえば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー・ディスク、光学式データ記憶デバイスなどとすることができる。
【0114】
非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティング・デバイスによる実行のための複数のプログラムを記憶しており、複数のプログラムは、1つまたは複数のプロセッサによって実行されたとき、BDOFに対するビット幅制御のための上述された方法を、コンピューティング・デバイスに実行させる。
【0115】
一実施形態では、コンピューティング環境710は、上記の方法を実施するために、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、グラフィカル処理ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素によって実施されてもよい。