(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】動きベクトル差分によるマージ(MMVD)モードにおける動きベクトル予測
(51)【国際特許分類】
H04N 19/513 20140101AFI20240903BHJP
H04N 19/70 20140101ALI20240903BHJP
H04N 19/105 20140101ALI20240903BHJP
H04N 19/136 20140101ALI20240903BHJP
H04N 19/176 20140101ALI20240903BHJP
【FI】
H04N19/513
H04N19/70
H04N19/105
H04N19/136
H04N19/176
【外国語出願】
(21)【出願番号】P 2023000463
(22)【出願日】2023-01-05
(62)【分割の表示】P 2021532854の分割
【原出願日】2019-12-20
【審査請求日】2023-01-06
(31)【優先権主張番号】PCT/CN2018/122626
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2018/125417
(32)【優先日】2018-12-29
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/072814
(32)【優先日】2019-01-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ワン,ユエ
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2018/030294(WO,A1)
【文献】Seungsoo Jeong et al.,Proposed WD for CE4 Ultimate motion vector expression (Test 4.5.4) [online],JVET-L0054_WD(JVET-L0054_WD_r2 .docx), [2024年2月5日検索],インターネット<URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0054-v4.zip>,2018年10月11日
【文献】Seungsoo Jeong et al.,CE4 Ultimate motion vector expression (Test 4.5.4) [online],JVET-L0054(JVET-L0054_r2 .docx), [2024年2月5日検索],インターネット<URL: https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L0054-v4.zip>,2018年10月11日
【文献】Benjamin Bross et al.,Versatile Video Coding (Draft 3) [online],JVET-L1001-v7(JVET-L1001-v7.docx), [2024年2月5日検索],インターネット<URL:https://jvet-experts.org/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v11.zip>,2018年12月20日,pp.37,61-65,94-96,103-104
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/513
H04N 19/70
H04N 19/105
H04N 19/136
H04N 19/176
(57)【特許請求の範囲】
【請求項1】
ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、動きベクトル差分によるマージモードが前記現在のビデオブロックに適用されることを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記動きベクトル差分によるマージモードは、前記現在のビデオブロックの動き情報を導出するために使用される動きベクトル表現を有し、該動きベクトル表現は、動きベクトル差分を表す第1パラメータと、基本候補リストからの基本候補を示す第2パラメータとを含み、前記第1パラメータは、運動の大きさ及び運動の方向を含み、
前記基本候補リストは、前記変換中に前記現在のビデオブロックについて構成されるマージモードのためのマージ候補リストに基づいており、前記基本候補リストのサイズは、前記マージモードのためのマージ候補リストのサイズ以下である、
方法。
【請求項2】
前記第2パラメータは、前記基本候補リストへのインデックスを有する、
請求項1に記載の方法。
【請求項3】
前記基本候補リストのサイズは、1又は2の1つにセットされる、
請求項1又は2に記載の方法。
【請求項4】
前記動きベクトル差分によるマージモードを有効にすべきかどうかを示すよう前記ビットストリームにフラグが存在する、
請求項1乃至3のうちいずれか一項に記載の方法。
【請求項5】
前記フラグは、シーケンスパラメータセットレベルに存在する、
請求項4に記載の方法。
【請求項6】
前記基本候補リストのサイズは、前記ビットストリームから除かれる、
請求項1乃至5のうちいずれか一項に記載の方法。
【請求項7】
前記変換を実行するステップは、前記現在のビデオブロックを前記ビットストリームからデコーディングすることを含む、
請求項1乃至
6のうちいずれか一項に記載の方法。
【請求項8】
前記変換を実行するステップは、前記現在のビデオブロックを前記ビットストリームにエンコーディングすることを含む、
請求項1乃至
6のうちいずれか一項に記載の方法。
【請求項9】
ビデオデータを処理する装置であって、
プロセッサと、命令を有する非一時的なメモリとを有し、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、動きベクトル差分によるマージモードが前記現在のビデオブロックに適用されることを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を実行させ、
前記動きベクトル差分によるマージモードは、前記現在のビデオブロックの動き情報を導出するために使用される動きベクトル表現を有し、該動きベクトル表現は、動きベクトル差分を表す第1パラメータと、基本候補リストからの基本候補を示す第2パラメータとを含み、前記第1パラメータは、運動の大きさ及び運動の方向を含み、
前記基本候補リストは、前記変換中に前記現在のビデオブロックについて構成されるマージモードのためのマージ候補リストに基づいており、前記基本候補リストのサイズは、前記マージモードのためのマージ候補リストのサイズ以下である、
装置。
【請求項10】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、
前記命令は、プロセッサに、
ビデオの現在のビデオブロックと前記ビデオのビットストリームとの間の変換のために、動きベクトル差分によるマージモードが前記現在のビデオブロックに適用されることを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を実行させ、
前記動きベクトル差分によるマージモードは、前記現在のビデオブロックの動き情報を導出するために使用される動きベクトル表現を有し、該動きベクトル表現は、動きベクトル差分を表す第1パラメータと、基本候補リストからの基本候補を示す第2パラメータとを含み、前記第1パラメータは、運動の大きさ及び運動の方向を含み、
前記基本候補リストは、前記変換中に前記現在のビデオブロックについて構成されるマージモードのためのマージ候補リストに基づいており、前記基本候補リストのサイズは、前記マージモードのためのマージ候補リストのサイズ以下である、
非一時的なコンピュータ可読記憶媒体。
【請求項11】
ビデオのビットストリームを記憶す
る方法
であって、
前記ビデオの現在のビデオブロックについて、動きベクトル差分によるマージモードが前記現在のビデオブロックに適用されることを決定するステップと、
前記決定に基づき前記現在のビデオブロックから前記ビットストリームを生成するステップと
、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶するステップと
を有し、
前記動きベクトル差分によるマージモードは、前記現在のビデオブロックの動き情報を導出するために使用される動きベクトル表現を有し、該動きベクトル表現は、動きベクトル差分を表す第1パラメータと、基本候補リストからの基本候補を示す第2パラメータとを含み、前記第1パラメータは、運動の大きさ及び運動の方向を含み、
前記基本候補リストは、前記
生成中に前記現在のビデオブロックについて構成されるマージモードのためのマージ候補リストに基づいており、前記基本候補リストのサイズは、前記マージモードのためのマージ候補リストのサイズ以下である、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許文献は、ビデオ及び画像コーディング及びデコーディングに関する。
【背景技術】
【0002】
デジタルビデオは、インターネット及び他のデジタル通信ネットワーク上で最大バンド幅使用を占める。ビデオを受信及び表示することが可能なユーザデバイスの接続数が増えるにつれて、デジタルビデオ利用のためのバンド幅需要は成長し続けることが予期される。
【発明の概要】
【0003】
本特許文献は、一例となる態様で、ultimate motion vector expression(UMVE)又は一般化された双予測(generalized bi-prediction)に関係がある現在のコーディングツールのコーディング効率を改善するビデオコーディングツールを開示する。
【0004】
一例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、その決定に基づき変換を実行するステップとを有し、現在のビデオブロックは、マージモードと、現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされ、コーディングされた表現における1つ以上のフィールドは、動作のモードに対応し、1つ以上のフィールドは、UMVEモードが現在のビデオブロックに対して有効若しくは無効にされているかどうかを示す値を有するUMVEイネーブルフィールド、又はUMVEモードに基づき変更されたアフィンマージモードが現在のビデオブロックに対して有効若しくは無効にされているかどうかを示す変形アフィンモードイネーブルフィールドを含む。
【0005】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、その決定に基づき変換を実行するステップとを有し、現在のビデオブロックは、マージモードと、現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされ、コーディングされた表現における1つ以上のフィールドは、動作のモードに対応し、1つ以上のフィールドは、UMVEモードによって使用される基本候補リストのサイズを示すリストサイズフィールド、又はUMVEモードのための距離テーブル若しくは方向テーブルを通知するテーブルフィールドを含む。
【0006】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、ultimate motion vector expression(UMVE)コーディングツールを用いて実行するステップを有し、UMVEコーディングツールは、現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を表し、距離テーブル又は方向テーブルの少なくとも1つは、2つの参照ピクチャのピクチャ・オーダー・カウント(Picture Order Count,POC)若しくは現在のビデオブロックを含む現在のピクチャのPOC、又は現在のビデオブロック、現在のスライス、若しくは現在のピクチャをコーディングするために使用される量子化パラメータ(QP)に依存する。
【0007】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、アフィンultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、その決定に基づき変換を実行するステップとを有し、現在のビデオブロックは、アフィンマージモードと、現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含むアフィンUMVEモードでの動きベクトル差分とによりコーディングされ、コーディングされた表現における1つ以上のフィールドは、動作のモードに対応し、1つ以上のフィールドは、UMVEモードによって使用される予測オフセットによるアフィンマージモードのための基本アフィンマージ候補リストのサイズを示すリストサイズフィールド、又は予測オフセットによるアフィンマージモードのための距離テーブル若しくは方向テーブルを通知するテーブルフィールドを含む。
【0008】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のためにultimate motion vector expression(UMVE)コーディングツールでの複数の動きベクトル差分を通知すると決定するステップと、その決定に基づき変換を実行するステップとを有し、UMVEコーディングツールを用いて、現在のビデオブロックについての開始点並びにN個の運動の大きさ及びN個の運動方向によって表されるN個の動きベクトル差分を含む動きベクトル表示が、変換中に使用され、Nは、2以上の整数である。
【0009】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在ピクチャ参照(Current Picture Referencing,CPR)コーディングツール及びultimate motion vector expression(UMVE)コーディングツールを使用する現在のビデオブロックにより、変換にルールが適用可能であることを決定するステップと、ルールに従って変換を実行するステップとを有し、ルールは、変換のための1つ以上のコーディング距離の使用を認めず、CPRコーディングツールは、参照ピクチャとして現在のピクチャを使用し、UMVEコーディングツールは、現在のビデオブロックについての開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を使用する。
【0010】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換中に、現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、現在のビデオブロックのための動きベクトル差分(Motion Vector Difference,MVD)値の精緻化を実行すると決定するステップと、その決定に基づき変換を実行するステップとを含む。
【0011】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、複数のUMVEパラメータセットから第1UMVEパラメータセットを使用すると決定するステップと、その決定に基づき変換を実行するステップとを有し、複数のUMVEパラメータセットの中の少なくとも1つの指示は、現在のビデオブロックのために通知又は予め定義される。
【0012】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、現在のビデオブロックとビデオのコーディングされた表現との間の変換のためのUMVEパラメータセットを選択するステップを有し、選択されたUMVEパラメータセットは、異なるビデオブロック、異なる参照ピクチャリスト、異なる参照ピクチャ、異なるタイル、異なるスライス、異なるピクチャ、又は異なる時間レイヤにわたって変更される。
【0013】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを用いて、現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行するステップを有し、適応動きベクトル分解能(Adaptive Motion Vector Resolution,AMVR)スキームが、UMVEコーディングツールによって使用される距離テーブルを通知するために使用される。
【0014】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在のビデオブロックの予測が、2つの参照リストからの予測子の非一様加重和(non-uniformly weighted sum)に対応する最終的な予測子を使用するところの、一般化された双予測(Generalized Bi-prediction,GBi)コーディングツールの動作のモードを決定するステップと、その決定に基づき変換を実行するステップとを有し、コーディングされた表現におけるフィールドは、動作のモードに対応し、フィールドの値は、GBiコーディングツールが現在のビデオブロックのために有効又は無効にされるかどうかを示す。
【0015】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、ルールは、GBiコーディングツールによって使用される重み付け係数セットが、i)現在のビデオブロックを含むピクチャの時間レイヤ、ii)ピクチャのピクチャ量子化パラメータ、又はiii)現在のビデオブロックの量子化パラメータに基づくことを規定する。
【0016】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、片予測モードについて1に等しくない重みを使用すると決定するステップと、その決定に基づき変換を実行するステップとを有し、現在のビデオブロックの予測は、重みによってスケーリングされた予測子に対応する最終的な予測子を使用し、重み付け係数セットが、ブロックレベル又はコーディングユニットレベルで選択される。
【0017】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、ルールは、現在のビデオブロックの隣接ピクセルと、現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって特定される対応する参照隣接ピクセルとに基づき、GBiコーディングツールのための重み付け係数を選択又は導出することを規定する。
【0018】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、ルールは、現在のビデオブロックの隣接ピクセルと、現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって特定される対応する参照隣接ピクセルとに基づき、GBiコーディングツールのための重み付け係数を並べ直すことを規定する。
【0019】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、ルールは、GBiコーディングツールのための重み付け係数を決定するために、現在のビデオブロックに関連した局所照度補償(Local Illumination Compensation,LIC)パラメータを使用することを規定し、LICパラメータは、変換中に現在のビデオブロックにおける照度変化の線形モデルを使用するよう導出される。
【0020】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの1つ以上のビデオブロックとビデオのコーディングされた表現との間の変換を実行するステップを有し、コーディングされた表現における第1フィールドは、分数サンプル精度が、変換中に使用される動きベクトル差分によるマージ(Merge with Motion Vector Difference,MMVD)モードで運動距離を示すために使用されるかどうかを示し、MMVDモードは、現在のビデオブロックについての開始点、運動距離及び運動方向を含む動きベクトル表示を有する。
【0021】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行するステップを有し、コーディングされた表現は、分数動きベクトル(Motion Vector,MV)又は動きベクトル差分(Motion Vector Difference,MVD)精度が、変換中に使用されるアドバンスド動きベクトル予測(Adaptive Motion Vector Prediction,AMVP)モード又はアフィンインターモードについて認められるかどうかを示すフラグを有する。
【0022】
他の例となる態様では、ビデオ処理の方法が開示される。方法は、ビデオの現在のピクチャの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、コーディングされた表現のフォーマットを規定するルールに従って実行するステップを有し、ルールは、コーディングモードのためのシンタックス要素が、現在のビデオブロックの変換のために使用される全ての参照ブロックが現在のピクチャのサンプルから取得されるかどうかに基づき、コーディングされた表現に含まれることを規定する。
【0023】
更なる他の代表的な態様では、上記の方法は、プロセッサ実行可能なコードの形で具現され、コンピュータ可読プログラム媒体に記憶される。
【0024】
更なる他の代表的な態様では、上記の方法を実行するよう構成され又は動作するデバイスが、開示される。デバイスは、この方法を実施するようプログラムされているプロセッサを含んでよい。
【0025】
更なる例となる態様では、上記の方法は、プロセッサを有するビデオエンコーダ装置又はビデオデコーダ装置によって実施されてよい。
【0026】
これら及び他の態様は、本明細書で更に説明される。
【図面の簡単な説明】
【0027】
【
図1】簡単化されたアフィン動きモデルの例を示す。
【
図2】サブブロックごとのアフィン動きベクトル場(MVF)の例を示す。
【
図4】AF_INTERのための動きベクトル予測子(MVP)の例を示す。
【
図5A】AF_MERGEのための候補の例を示す。
【
図5B】AF_MERGEのための候補の例を示す。
【
図6】アフィンマージモードのための候補位置の例を示す。
【
図7】距離インデックス及び距離オフセットマッピングの例を示す。
【
図8】ultimate motion vector expression(UMVE)探索プロセスの例を示す。
【
図10】ICパラメータを導出するために使用される隣接サンプルの例を示す。
【
図11A】本明細書で説明される技術を実施するためのハードウェアプラットフォームの例を示す。
【
図11B】本明細書で説明される技術を実施するためのハードウェアプラットフォームの例を示す。
【
図12】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図13】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図14】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図15A】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図15B】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図15C】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図15D】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図15E】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図16A】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図16B】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図16C】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図17A】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図17B】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【
図18】開示されている技術のいくつかの実施に基づくビデオ処理の方法の例のフローチャートを示す。
【発明を実施するための形態】
【0028】
本明細書は、圧縮解除又はデコーディングされたデジタルビデオの品質を改善するためにビデオビットストリームのデコーダによって使用され得る様々な技術を提供する。更に、ビデオエンコーダも、更なるエンコーディングのために使用されるデコーディングされたフレームを再構成するためにエンコーディングのプロセス中にこれらの技術を実装してもよい。
【0029】
セクション見出しは、理解を簡単にするために本明細書中で使用されており、各セクションで開示されている実施形態及び技術を限定しない。従って、1つのセクションからの実施形態は、他のセクションからの実施形態と結合され得る。
【0030】
[1.概要]
本明細書は、ビデオコーディング技術に関係がある。具体的には、ビデオコーディングにおける動き補償に関係がある。それは、HEVCのような既存のビデオコーディング規格、又は完成されるべき規格(バーサタイル・ビデオ・コーディング(Versatile Video Coding))に適用されてよい。それはまた、将来のビデオコーディング規格又はビデオコーデックにも適用可能であり得る。
【0031】
[2.序文]
ビデオコーディング規格は、主として、よく知られているITU-T及びISO/IEC規格の開発を通じて、進化してきた。ITU-Tは、H.261及びH.263を作り出し、ISO/IECは、MPEG-1及びMPEG-4 Visualを作り出し、2つの組織は共同で、H.262/MPEG-2 Video及びH264/MPEG-4 AVC(Advanced Video Coding)並びにH.265/HEVC規格を作り出した。H.262以降、ビデオコーディング規格は、ハイブリッドビデオコーディング構造に基づいており、時間予測及び変換コーディングが利用される。HEVCを越える将来のビデオコーディング技術を探るために、Joint Video Exploration Team(JVET)が2015年にVCEG及びMPEGによって共同設立された。それ以来、多くの新しい方法がJVETによって導入され、Joint Exploration Model(JEM)と名付けられた参照ソフトウェアに置かれてきた。2018年4月に、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)との間のJoint Video Expert Team(JVET)が、HEVCと比較してビットレート50%減を目指すVVC規格に取り組むために作られた。
【0032】
VVCドラフトの最新バージョン、すなわち、バーサタイル・ビデオ・コーディング(ドラフト2)は、http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zipで入手可能であった。
【0033】
VTMと名付けられたVVCの最新参照ソフトウェアは、https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1で入手可能であった。
【0034】
[2.1 アフィン動き補償予測]
HEVCでは、並進運動モデル(translation motion model)しか動き補償予測(Motion Compensation Prediction,MCP)のために適用されない。一方、現実世界では、多くの種類の動き、例えば、ズームイン/アウト、回転、射影運動、及び他の不規則な動きが存在する。JEMでは、簡単化されたアフィン変換動き補償予測が適用される。
図1に示されるように、ブロックのアフィン運動場は、2つの制御点動きベクトルによって記述される。
【0035】
ブロックの動きベクトル場(Motion Vector Field,MVF)は、次の式によって記述される:
【数1】
【0036】
ここで、(v0x,v0y)は、左上角の制御点の動きベクトルであり、(v1x,v1y)は、右上角の制御点の動きベクトルである。
【0037】
動き補償予測を更に簡単にするために、サブブロックベースのアフィン変換予測が適用される。サブブロックサイズM×Nは、式2で見られるように導出され、このとき、MvPreは、動きベクトル分数精度(JEMでは1/16)であり、(v
2x,v
2y)は、式1に従って計算された左下制御点の動きベクトルである。
【数2】
【0038】
式2によって導出された後、M及びNは、夫々、w及びhの約数となるよう、必要に応じて下方調整されるべきである。
【0039】
各M×Nサブブロックの動きベクトルを導出するために、
図2に示されるような、各サブブロックの中心サンプルの動きベクトルが、式1に従って計算され、1/16分数精度に丸められる。
【0040】
MCPの後、各サブブロックの高精度動きベクトルは丸められ、通常の動きベクトルと同じ精度としてセーブされる。
【0041】
[2.1.1 AF_INTERモード]
JEMでは、2つのアフィン動きモード、すなわち、AF_INTERモード及びAF_MERGEモードが存在する。幅及び高さの両方が8よりも大きいCUについては、AF_INTERモードが適用され得る。CUレベルでのアフィンフラグは、AF_INTERモードが使用されるかどうかを示すためにビットストリームで通知される。このモードで、動きベクトル対{(v
0,v
1)|v
0={v
A,v
B,v
C},v
1={v
D,v
E}}を有する候補リストは、隣接ブロックを用いて構成される。
図4に示されるように、v
0は、ブロックA、B又はCの動きベクトルから選択される。隣接ブロックからの動きベクトルは、参照リストと、隣接ブロックのための参照のPOC、現在のCUのための参照のPOC、及び現在のCUのPOCの間の関係とに従って、スケーリングされる。そして、隣接ブロックD及びEからv
1を選択するためのアプローチは同様である。候補リストの数が2よりも小さい場合に、リストは、AMVP候補の夫々を複製することによって構成された動きベクトル対によってパディングされる。候補リストが2よりも大きい場合に、候補は最初に、隣接動きベクトルの一貫性(対候補の2つの動きベクトルの類似性)に従ってソートされ、最初の2つの候補のみが保持される。RDコストチェックは、どの動きベクトル対候補が現在のCUの制御点動きベクトル予測(Control Point Motion Vector Prediction,CPMVP)として選択されるかを決定するために使用される。そして、候補リスト内のCPMVPの位置を示すインデックスがビットストリームで通知される。現在のアフィンCUのCPMVPが決定された後、アフィン動き推定が適用され、制御点動きベクトル予測(CPMV)は求められる。次いで、CPMVとCPMVPとの差はビットストリームで通知される。
【0042】
図3Aは、4パラメータアフィンモデルの例を示す。
図3Bは、6パラメータアフィンモデルの例を示す。
【0043】
AF_INTERモードでは、4/6パラメータアフィンモードが使用される場合に、
図3A及び
図3Bに示されるように、2/3制御点が必要とされるので、2/3MVDが、それらの制御点についてコーディングされる必要がある。JVET-K0337では、次のようにMVを導出することが提案されている。すなわち、mvd
1及びmvd
2は、mvd
0から予測される。
【数3】
【0044】
ここで、バーmv
i、mvd
i及びmv
1は、左上ピクセル(i=0)、
図3Bに示されるように、夫々、右上ピクセル(i=1)又は左下ピクセル(i=2)の予測された動きベクトル、動きベクトル差分及び動きベクトルである、2つの動きベクトル(例えば、mvA(xA,yA)及びmvB(xB,yB))の加算は、別々に2つの成分の和に等しく、すなわち、newMV=mvA+mVBであり、newMVの2つの成分は、夫々、(xA+xB)及び(yA+yB)にセットされる、ことに留意されたい。
【0045】
[2.1.2AF_INTERモードでの高速アフィンMEアルゴリズム]
アフィンモードでは、2つ又は3つの制御点のMVは一緒に決定される必要がある。複数のMVを一緒に直接的に探索することは、計算的に複雑である。高速アフィンMEアルゴリズムが提案されており、VTM/BMSに導入されている。
【0046】
高速アフィンMEアルゴリズムは、4パラメータアフィンモデルについて説明され、アイデアは、6パラメータアフィンモデルに拡張可能である。
【数4】
【0047】
(a-1)をa’で置換すると、動きベクトルは、
【数5】
のように書き直され得る。
【0048】
2つの制御点(0,0)及び(0,w)の動きベクトルが知られているならば、式(5)から、アフィンパラメータを導出することができる。
【数6】
【0049】
動きベクトルは、
【数7】
として、ベクトル形式で書き直され得る。
【0050】
【0051】
P(x,y)はピクセル位置である。
【0052】
エンコーダで、AF_INTERのMVDは繰り返し導出される。位置Pについてi番目の繰り返しで導出されたMVとしてMV
i(P)を表し、i番目の繰り返しでMV
Cについて更新されたデルタとしてdMV
C
iを表す。その場合に、(i+1)番目の繰り返しでは、
【数9】
となる。
【0053】
参照ピクチャとしてPic
refを表し、現在のピクチャとしてPic
curを表し、Q=P+MV
i(P)を表す。一致基準としてMSEを使用するとして、その場合に、最小化する必要がある。
【数10】
【0054】
(dMV
C
i)
Tが十分に小さいならば、Pic
ref(Q+A(P)*(dMV
C
i)
T)を1次テイラー展開により次の
【数11】
ように近似的に書き直すことができる。
【0055】
ここで、
【数12】
である。E
i+1(P)=Pic
cur(P)-Pic
ref(Q)と表すならば、
【数13】
である。
【0056】
誤差関数の微分係数をゼロにセットすることによって、dMV
C
iを導出することができる。その場合に、A(P)*(dMV
C
i)
Tに従って、制御点(0,0)及び(0,w)のデルタMVを計算することができる。
【数14】
【0057】
このようなMVD導出プロセスがn回繰り返されるならば、最終的なMVDは、次の
【数15】
のように計算される。
【0058】
JVET-K0337、すなわち、mvd
0によって表される制御点(0,0)のデルタMVから、mvd
1によって表される制御点(0,w)のデルタMVを予測すること、によれば、この場合に実際には、次の
【数16】
しか、mvd
1についてエンコーディングされない。
【0059】
[2.1.3 AF_MERGEモード]
CUがAF_MERGEモードで適用される場合に、それは、有効な隣接する再構成されたブロックからアフィンモードによりコーディングされた最初のブロックを得る。そして、候補ブロックの選択順序は、
図5Aに示されるように、左から、上、右上、左下、左上へである。隣接する左下ブロックAが
図5Bに示されるようにアフィンモードでコーディングされる場合に、ブロックAを含むCUの左上角、右上角、及び左下角の動きベクトルv
2、v
3及びv
4が導出される。そして、現在のCU上の左上角の動きベクトルv
0は、v
2、v
3及びv
4に従って計算される。第2に、現在のCUの右上の動きベクトルv
1が計算される。
【0060】
現在のCUのCPMVであるv0及びv1が導出された後、簡単化されたアフィン運動モデル式1に従って、現在のCUのMVFが生成される。現在のCUがAF_MERGEモードによりコーディングされているかどうかを識別するために、アフィンモードでコーディングされている少なくとも1つの隣接ブロックがある場合に、アフィンフラグがビットストリームで通知される。
【0061】
VTM3.0に導入されるよう計画されたJVET-L0366では、アフィンマージ候補リストは、次のステップで構成される。
【0062】
1)引き継がれたアフィン候補の挿入
引き継がれたアフィン候補とは、その候補が、その有効な隣接するアフィンコーディングされたブロックのアフィン運動モデルから導出されることを意味する。一般的な基礎において、
図6に示されるように、候補位置のスキャン順序は、A1、B1、B0、A0及びB2である。
【0063】
候補が導出された後、同じ候補がリストに挿入されているかどうかをチェックするために、完全プルーニングプロセスが実行される。同じ候補が存在する場合には、導出された候補は捨てられる。
【0064】
2)構成されたアフィン候補の挿入
アフィンマージ候補リスト内の候補の数がMaxNumAffineCand(本願では、5にセットされる。)に満たない場合に、構成されたアフィン候補は候補リストに挿入される。構成されたアフィン候補とは、各制御点の隣接動き情報を結合することによって候補が構成されることを意味する。
【0065】
制御点の動き情報は、最初に、
図6に示されている指定された空間近傍及び時間近傍から導出される。CPk(k=1,2,3,4)は、k番目の制御点を表す。A0、A1、A2、B0、B1、B2及びB3は、CPk(k=1,2,3)を予測するための空間位置であり、Tは、CP4を予測するための時間位置である。
【0066】
CP1、CP2、CP3及びCP4の座標は、夫々、(0,0)、(W,0)、(H,0)及び(W,H)であり、ここで、W及びHは、現在のブロックの幅及び高さである。
【0067】
図6は、アフィンマージモードのための候補位置の例を示す。
【0068】
各制御点の動き情報は、次の優先順序に従って取得される。
【0069】
CP1については、チェック優先度はB2→B3→A2である。B2は、それが利用可能である場合に使用される。そうではない場合に、B3が利用可能であるならば、B3が使用される。B2及びB3の両方が利用不可能である場合には、A2が使用される。3つ全ての候補が利用不可能である場合には、CP1の動き情報は取得不可能である。
【0070】
CP2については、チェック優先度はB1→B0である。
【0071】
CP3については、チェック優先度はA1→A0である。
【0072】
CP4については、Tが使用される。
【0073】
第2に、制御点の組み合わせが、アフィンマージ候補を構成するために使用される。
【0074】
3つの制御点の動き情報が、6パラメータアフィン候補を構成するために必要とされる。3つの制御点は、次の4つの組み合わせ({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})のうちの1つから選択され得る。組み合わせ{CP1,CP2,CP3}、{CP2,CP3,CP4}、{CP1,CP3,CP4}は、左上、右上、及び左下制御点によって表される6パラメータ運動モデルへ変換されることになる。
【0075】
2つの制御点の動きベクトルが、4パラメータアフィン候補を構成するために必要とされる。2つの制御点は、次の6つの組み合わせ({CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4})のうちの1つから選択され得る。組み合わせ{CP1,CP4}、{CP2,CP3}、{CP2,CP4}、{CP1,CP3}、{CP3,CP4}は、左上及び右上制御点によって表される4パラメータ運動モデルへ変換されることになる。
【0076】
構成されたアフィン候補の組み合わせは、次の順序:{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4},{CP3,CP4}として候補リストに挿入される。
【0077】
組み合わせの参照リストX(Xは0又は1である。)については、制御点の中で最大利用率を有する参照インデックスが、リストXの参照インデックスとして選択され、差分参照ピクチャを指し示す動きベクトルはスケーリングされることになる。
【0078】
候補が導出された後、同じ候補がリストに挿入されているかどうかをチェックするために、完全プルーニングプロセスが実行される。同じ候補が存在する場合には、導出された候補は捨てられる。
【0079】
3)ゼロ動きベクトルによるパディング
アフィンマージ候補リスト内の候補の数が5よりも少ない場合に、リストが一杯になるまで、ゼロ参照インデックスを有するゼロ動きベクトルが候補リストに挿入される。
【0080】
[2.2 予測オフセットによるアフィンマージモード]
UMVEは、アフィンマージモードに拡張され、我々は、これを以降UMVEアフィンモードと呼ぶことにする。提案されている方法は、最初の利用可能なアフィンマージ候補を基本予測子として選択する。次いで、それは、基本予測子からの各制御点の動きベクトル値に動きベクトルオフセットを適用する。利用可能なアフィンマージ候補がない場合には、この提案されている方法は使用されない。
【0081】
選択された基本予測子のインター予測方向と、各方向の参照インデックスは、変更なしで使用される。
【0082】
現在の実施では、現在のブロックのアフィンモデルは、4パラメータモデルであると仮定され、2つの制御点のみが導出される必要がある。よって、基本予測子の最初の2つの制御点のみが制御点予測子として使用されることになる。
【0083】
各制御点について、zero_MVDフラグは、現在のブロックの制御点が、対応する制御点予測子と同じMV値を有しているかどうか、を示すために使用される。zero_MVDフラグが真である場合には、制御点に必要とされる他のシグナリングはない。そうでない場合には、距離インデックス及びオフセット方向インデックスがその制御点について通知される。
【0084】
サイズが5である距離オフセットテーブルが、以下の表で示されるように使用される。距離インデックスは、どの距離オフセットを使用すべきかを示すよう通知される。距離インデックスと距離オフセット値とのマッピングは、
図7に示される。
【表1】
【0085】
方向インデックスは、以下で示されるように4つの方向を表すことができ、x又はy方向しかMV差を有さなくてよく、両方の方向ではない。
【表2】
【0086】
インター予測が一方向である場合に、通知される距離オフセットは、各制御点予測子についてのオフセット方向に対して適用される。結果は、各制御点のMV値になる。
【0087】
例えば、基本予測子が一方向である場合に、制御点の動きベクトル値はMVP(vpx、vpy)である。距離オフセット及び方向インデックスが通知される場合に、現在のブロックの対応する制御点の動きベクトルは、以下のように計算されることになる。
MV(vx,vy)=MVP(vpx,vpy)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)
【0088】
インター予測が双方向である場合に、通知された距離オフセットは、制御点予測子のL0動きベクトルについては、通知されたオフセット方向に適用され、制御点予測子のL1動きベクトルについては、反対の方向を有する同じ距離オフセットが適用される。結果は、各インター予測方向に関して、各制御点のMV値になる。
【0089】
例えば、基本予測子が双方向である場合に、L0に関する制御点の動きベクトル値はMVPL0(v0px,v0py)であり、L1に関する制御点の動きベクトル値はMVPL1(v1px,v1py)である。距離オフセット予備方向インデックスが通知される場合に、現在のブロックの対応する制御点の動きベクトルは、次のように計算されることになる。
MVL0(v0x,v0y)=MVPL0(v0px,v0py)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)、
MVL1(v0x,v0y)=MVPL1(v1px,v1py)+MV(x-dir-factor*distance-offset,y-dir-factor*distance-offset)
【0090】
[2.3 究極の動きベクトル表示]
究極の動きベクトル表示(Ultimate Motion Vector Expression,UMVE)が与えられる。UMVEは、提案されている動きベクトル表示法によりスキップ又はマージのどちらかのモードに使用される。UMVEは、動きベクトル差分によるマージ(Merge mode with Motion Vector Difference,MMVD)としても知られている。
【0091】
UMVEは、VVCでの通常のマージ候補リストに含まれているものと同じくマージ候補を再利用する。マージ候補の中から、基本候補は選択可能であり、提案されている動きベクトル表示法によって更に拡張される。
【0092】
UMVEは、新しい動きベクトル差分(Motion Vector Difference,MVD)表現法をもたらし、その表現法では、運動の大きさ、及び運動方向が、MVDを表すために使用される。
【0093】
【0094】
【0095】
この提案されている技術は、マージ候補リストをそのまま使用する。しかし、デフォルトのマージタイプ(MRG_TYPE_DEFAULT_N)である候補しか、UMVEの拡張の対象とならない。
【0096】
基本候補インデックスは開始点を定義する。基本候補インデックスは、次のように、リスト内の候補の中で最良の候補を示す:
【表3】
【0097】
基本候補の数が1に等しい場合に、基本候補IDXは通知されない。
【0098】
距離インデックスは、運動の大きさの情報である。距離インデックスは、開始点情報からの予め定義された距離を示す。予め定義された距離は、次の通りである:
【表4】
【0099】
方向インデックスは、開始点に対するMVDの方向を表す。方向インデックスは、以下で示されるように、4つの方向を表すことができる:
【表5】
【0100】
UMVEフラグは、スキップフラグ及びマージフラグを送った直後に通知される。スキップ及びマージフラグが真である場合に、UMVEフラグはパースされる。UMVEフラグが1に等しい場合に、UMVEシンタックスはパースされる。しかし、1でない場合には、アフィンフラグがパースされる。アフィンフラグが1に等しい場合には、それはアフィンモードである。しかし、1でない場合には、スキップ/マージインデックスが、VTMのスキップ/マージモードについてパースされる。
【0101】
UMVE候補のための追加のラインバッファは不要である。ソフトウェアのスキップ/マージ候補は基本候補として直接使用されるからである。入力されたUMVEインデックスを用いて、MVの補完は、動き補償の直前に決定される。このため、長いラインバッファを保持する必要はない。
【0102】
現在の一般的なテスト条件では、マージ候補リスト内の1番目又は2番目のどちらかのマージ候補が、基本候補として選択され得る。
【0103】
UMVEは、MMVDとして知られる。
【0104】
[2.4 一般化された双予測]
従来の双予測(bi-prediction)では、L0及びL1からの予測子は、等しい重み0.5を用いて最終的な予測子を生成するよう平均化される。予測子生成式は、式(22)で示される:
PtradionalBiPred=(PL0+PL1+RoundingOffset)>>shiftNum
(22)
【0105】
式(22)中、PtraditionalBiPredは、従来の双予測のための最終的な予測子であり、PL0及びPL1は、夫々、L0及びL1からの予測子であり、RoundingOffset及びshiftNumは、最終的な予測子を正規化するために使用される。
【0106】
一般化された双予測(Generalized Bi-prediction,GBi)は、L0及びL1からの予測子に異なる重みを適用することを可能にするよう提案されている。GBiは、“CUレベル重み付き双予測(Bi-prediction with CU-level weights,BCW)”としても知られる。予測子生成は、式(23)で示される:
PGBi=((1-w1)+PL0+w1*PL1+RoundingOffsetGBi)>>shiftNumGBi
(23)
【0107】
式(23)中、PGBiは、GBiの最終的な予測子である。(1-w1)及びw1は、夫々、L0及びL1の予測子に適用される選択されたGBi重みである。RoundingOffsetGBi及びshiftNumGBiは、GBiにおいて最終的な予測子を正規化するために使用される。
【0108】
w1のサポートされている重みは{-1/4,3/8,1/2,5/8,5/4}である。1つの等しい重みのセットと、4つの等しくない重みのセットとがサポートされる。等しい重みの場合に、最終的な予測子を生成するプロセスは、従来の双予測モードの場合と全く同じである。ランダムアクセス(Random Access,RA)条件での真の双予測の場合に、候補重みセットの数は3つに減る。
【0109】
アドバンスド動きベクトル予測(Advanced Motion Vector Prediction,AMVP)モードについては、GBiでの重み選択は、CUレベルで、このCUが双予測によってコーディングされている場合に、明示的に通知される。マージモードについては、重み選択はマージ候補から引き継がれる。この提案では、GBiは、BMS-1.0のための最終的な予測子に加えてテンプレートの加重平均を生成するようDMVRをサポートする。
【0110】
[2.5 局所照度補償]
局所照度補償(Local Illumination Compensation,LIC)は、スケーリング係数a及びオフセットbを用いて、照度変化のための線形モデルに基づく。そして、それは、各インターモードコーディングされたコーディングユニット(CU)について適応的に有効又は無効にされる。
【0111】
図10は、ICパラメータを導出するために使用される隣接サンプルの例を示す。
【0112】
LICがCUに適用される場合に、最小二乗誤差法が、現在のCUの隣接サンプル及びそれらの対応する参照サンプルを使用することによってパラメータa及びbを導出するために用いられる。より具体的には、
図10に表されるように、CUのサブサンプリング(2:1サブサンプリング)された隣接サンプル及び参照ピクチャ内の対応するサンプル(現在のCU又はサブCUの動き情報によって識別される)が使用される。ICパラメータは、各予測方向について別々に導出され適用される。
【0113】
CUがマージモードによりコーディングされる場合に、LICフラグは、マージモードでの動き情報コピーと同じようにして、隣接ブロックからコピーされる。そうでない場合には、LICフラグは、LICが適用されるか否かを示すよう当該CUについて通知される。
【0114】
LICがピクチャに使用可能である場合に、追加のCUレベルRDチェックが、LICがCUに適用されるか否かを決定するために必要である。LICがCUに使用可能である場合に、平均除去絶対差分和(Mean-Removed Sum of Absolute Difference,MRSAD)及び平均除去絶対アダマール変換差分和(Mean-Removed Sum of Absolute Hadamard-Transformed Difference,MR-SATD)が、SAD及びSATDの代わりに、整数ペル動き探索及び分数ペル動き探索のために夫々使用される。
【0115】
エンコーディング複雑性を低減するために、以下のエンコーディングスキームがJEMでは適用される。
・現在のピクチャとその参照ピクチャとの間に明らかな照度変化がない場合には、ピクチャ全体に対してLICは無効にされる。この状況を識別するために、現在のピクチャ及び現在のピクチャのあらゆる参照ピクチャのヒストグラムがエンコーダで計算される。現在のピクチャと現在のピクチャのあらゆる参照ピクチャとの間のヒストグラム差が所与の閾値よりも小さい場合に、LICは現在のピクチャに対して無効にされ、そうでない場合には、LICは現在のピクチャに対して有効にされる。
【0116】
[2.6 現在のピクチャの参照]
デコーダ態様:
このアプローチでは、現在の(部分的に)デコーディングされたピクチャが参照ピクチャと見なされる。この現在のピクチャは、参照ピクチャリスト0の最後の位置に置かれる。そのため、現在のピクチャを唯一の参照ピクチャとして使用するスライスについては、そのスライスタイプはPスライスと見なされる。このアプローチでのビットストリームシンタックスは、インターコーディングのための同じシンタックス構造に従い、一方、デコーディングプロセスは、インターコーディングと統一される。唯一の顕著な相違は、ブロックベクトル(現在のピクチャを指し示す動きベクトルである。)が常に整数ペル分解能を使用することである。
【0117】
ブロックレベルCPR_flagアプローチからの変更は、次の通りである:
・このモードのためのエンコーダ探索では、ブロックの幅及び高さの両方が16以下である。
・ルーマブロックベクトルが奇数整数である場合にクロマ補間を有効にする。
・SPSフラグがオンである場合にCPRモードのための適応動きベクトル分解能(Adaptive Motion Vector Resolution,AMVR)を有効にする。この場合に、AMVRが使用されるとき、ブロックベクトルは、ブロックレベルで1ペル整数から4ペル整数分解能の間で切り替わることができる。
【0118】
エンコーダ態様:
エンコーダは、幅又は高さのどちらかが16以下であるブロックについてRDチェックを行う。非マージモードについては、ブロックベクトル探索は、最初にハッシュベースの探索を用いて実行される。ハッシュ探索から有効な候補が見つけられない場合には、ブロックマッチングベースの局所探索が行われることになる。
【0119】
ハッシュベースの探索では、現在のブロックと参照ブロックとの間のハッシュキーマッチング(32ビットCRC)が、全ての許されたブロックサイズに拡張される。現在のピクチャ内のあらゆる位置についてのハッシュキー計算は、4×4ブロックに基づく。より大きいサイズの現在のブロックについては、参照ブロックに対するハッシュキーマッチングは、全てのその4×4ブロックが対応する参照位置でのハッシュキーと一致するときに起こる。複数の参照ブロックが、同じハッシュキーを有する現在のブロックと一致すると見つけられる場合に、各候補のブロックベクトルコストが計算され、コストが最小である1つが選択される。
【0120】
ブロックマッチング探索では、探索範囲は、左側及び上部で64ピクセルであるようセットされ、探索範囲は、現在のCTU内であるよう制限される。
【0121】
[3.開示されている実施形態によって解消される課題の例]
いくつかの潜在的な課題が存在する:
・UMVEは、スライスレベル、ピクチャレベルなどでオン/オフを切り替えることができない。これは柔軟性がない。
・UMVEモードについては、基本候補リストサイズ、距離テーブルサイズ及び方向テーブルサイズが固定され、変更することができない。
・UMVEモードについては、双予測の場合に、ただ1つのMVDが通知され、両方の予測方向のために(スケーリングの有無によらず)使用されるが、これは非効率的であり得る。
・1つの固定MVDセットが全ての場合に使用されるが、これは非効率的であり得る。
・UMVEをCPRTOICAに調和させるべきかが、明確に定義されていない。
・GBiが双予測の場合にしか作動しない。
・参照ピクチャとして現在のピクチャしか使用することができないPピクチャについては、アフィン、サブブロックベースのマージ、多重仮説(multi-hypothesis)イントラ/インター予測、三角予測及びMMVDのようなコーディングツールは使用不可能である。しかし、フラグは依然としてそれらのコーディングツールについてCUレベルで通知される。これは実情にそぐわない。
【0122】
[4.様々な実施形態によって実装される技術の例]
以降、我々は、参照ピクチャとして現在のピクチャしか使用することができないインターピクチャを、CRP専用インターピクチャと呼ぶ。以下のリストは、一般概念を説明するための例と見なされるべきである。例は、狭い意味で解釈されるべきではない。更に、これらの技術は、如何なる方法でも組み合わせ可能である。
【0123】
1.UMVEフラグは、UMVEが有効にされるか否かを示すために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよいことが提案される。
a.1つの例では、予測オフセットによるアフィンマージモード(すなわち、通常のアフィンマージモードに適用されたUMVE)が有効にされるか否かを示すために、もう1つのフラグが通知されてもよい。
b.代替的に、UMVE及び予測オフセットによるアフィンマージモード(すなわち、通常のアフィンマージモードに適用されたUMVE)の両方が有効にされるか否かを示すために、ただ1つのフラグしか通知されない。
【0124】
2.基本候補リストサイズは、UMVEのために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよいことが提案される。
a.1つの例では、基本候補リストサイズは、1又は2又は3に等しくセットされる。
b.1つの例では、基本候補リストサイズは、マージ候補リストサイズ以下であるべきである。
c.1つの例では、基本候補リストサイズを別途通知する必要はない。代わりに、基本候補リストサイズは、通常のマージリストサイズと同じであると推測される。
【0125】
3.基本候補リストサイズは、予測オフセットによるアフィンマージモードのために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよいことが提案される。
a.1つの例では、基本候補リストサイズは、1又は2又は3に等しくセットされる。
b.1つの例では、基本候補リストサイズは、サブブロックマージ候補リストサイズ以下であるべきである。
c.1つの例では、基本候補リストサイズを別途通知する必要はない。代わりに、基本候補リストサイズは、UMVEがアフィンコーディングされたブロックに適用される場合に、サブブロックマージリストサイズと同じであると推測される。
【0126】
4.距離テーブル及び/又は方向テーブルは、UMVEのために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよいことが提案される。
a.1つの例では、距離テーブルサイズ及び/又は方向テーブルサイズのみが通知され、K1及びK2と表され、デフォルト距離テーブルサイズ内の最初のK1個の要素及び/又は方向テーブル内の最初のK2個の要素が有効である。
b.1つの例では、距離テーブルサイズ及び/又は方向テーブルサイズのみが通知され、K1及びK2と表され、デフォルト距離テーブルサイズ内の最後のK1個の要素及び/又は方向テーブル内の最後のK2個の要素が有効である。
【0127】
5.分数距離が認められているか、それとも認められていないかを示すために、1つのフラグが通知されてよい。
a.フラグは、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。
b.フラグは、UMVEの利用の指示が、UMVEが許可されていることを示す、という条件の下で、通知されてよい。
c.フラグは、MVDオフセットによるアフィンマージモードの利用の指示が許可されている、という条件の下で、通知されてよい。
d.フラグは、2つのレベルで通知されてよい。第1フラグは、第2フラグがPPS/スライスヘッダ/タイルグループヘッダ/タイルヘッダで通知されることになるかどうかを示すために、SPS/VPS/PPSで通知されてよい。
i.1つの例では、第1フラグが偽(又は真)である場合に、分数距離が常に有効にされ、第2フラグは通知されなくてもよい。
ii.1つの例では、第1フラグが真(又は偽)である場合に、分数距離は無効にされ、第2フラグが通知される。第2フラグが真(又は偽)である場合に、分数距離は、ピクチャ/スライス/タイルグループ/タイルについて有効にされ、そうでない場合には、分数距離は、ピクチャ/スライス/タイルグループ/タイルについて無効にされる。
e.1つの例では、第1フラグsps_fracmmvd_disabled_flagはSPSで通知され、第2フラグtile_group_fracmmvd_disabled_flagはタイルグループヘッダで通知される。
i.sps_fracmmvd_disabled_flagが偽であるとき、分数距離を無効にすることは適用されず、tile_group_fracmmvd_disabled_flagは通知されず、偽であると推測される。
ii.sps_fracmmvd_disabled_flagが真であるとき、分数距離を無効にすることは適用され、tile_group_fracmmvd_disabled_flagは通知される。
iii.tile_group_fracmmvd_disabled_flagが真であるとき、分数距離はタイルグループについて無効にされ、そうでないときには、分数距離はタイルグループについて有効にされる。
f.1つの例では、第1フラグsps_fracmmvd_disabled_flagはSPSで通知され、第2フラグtile_group_fracmmvd_flagはタイルグループヘッダで通知される。
i.sps_fracmmvd_disabled_flagが偽であるとき、分数距離を無効にすることは適用されず、tile_group_fracmmvd_flagは通知されず、真であると推測される。
ii.sps_fracmmvd_disabled_flagが真であるとき、分数距離を無効にすることは適用され、tile_group_fracmmvd_flagは通知される。
iii.tile_group_fracmmvd_flagが真であるとき、分数距離はタイルグループについて有効にされ、そうでないときには、分数距離はタイルグループについて無効にされる。
g.代替的に、更に、分数距離が許されないとき、整数距離しか許されない。
h.代替的に、更に、分数距離が許されないとき、整数距離及び/又は整数精度よりも低い精度を有する距離しか許されない。
i.代替的に、更に、距離インデックスのトランケーテッド・ユーナリー(truncated unary)が、距離インデックスをコーディングするために使用されてよく、最大許容距離インデックスは、分数距離が許されないことをフラグが示す場合に、許されている整数距離の数に依存する。
j.代替的に、分数距離が許されないとき、デフォルト距離テーブル内の全ての要素は、整数距離を生成するための係数を乗じられる。
i.例えば、全ての要素は4を乗じられる。
k.フラグは、UMVE(すなわち、MVDオフセットによる通常のマージモード)及びMVDオフセットによるアフィンマージモードによって共有されてよい。
l.代替的に、フラグは、UMVE及びMVDオフセットによるアフィンマージモードのために別々に通知されてよい。
【0128】
6.分数MV/MVD精度がAMVPモード及び/又はアフィンインターモードのために認められているか、それとも認められていないか示すために、1つのフラグが通知されてよい。
a.フラグは、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。
b.フラグは、AMVR(Adaptive Motion Vector Resolution)の利用の指示がされていることを示す、という条件の下で、通知されてよい。
c.フラグは、アフィンインターモードのためのAMVRの利用の指示が許可されている、という条件の下で、通知されてよい。
d.フラグは、2つのレベルで通知されてよい。第1フラグは、第2フラグがPPS/スライスヘッダ/タイルグループヘッダ/タイルヘッダで通知されることになるかどうかを示すために、SPS/VPS/PPSで通知されてよい。
i.1つの例では、第1フラグが偽(又は真)である場合に、分数MV/MVDが常に有効にされ、第2フラグは通知されなくてもよい。
ii.1つの例では、第1フラグが真(又は偽)である場合に、分数MV/MVDは無効にされてもよく、第2フラグが通知される。第2フラグが真(又は偽)である場合に、分数MV/MVDは、ピクチャ/スライス/タイルグループ/タイルについて有効にされ、そうでない場合には、分数MV/MVDは、ピクチャ/スライス/タイルグループ/タイルについて無効にされる。
e.1つの例では、更に、分数MV/MVDが許されないとき、整数精度MV/MVDしか許されない。
f.代替的に、更に、分数MV/MVDが許されないとき、整数精度及び/又は整数精度よりも低い精度のMV/MVDしか許されない。
g.代替的に、更に、分数MV/MVDが許されないことをフラグが示す場合に、許されているMV/MVD精度の数に応じてAMVRインデックスをエンコーディングするために、トランケーテッド・ユーナリー符号が使用されてよい。
h.フラグは、AMVR及びアフィンインターモードのためのAMVRによって共有されてよい。
i.代替的に、フラグは、AMVR及びアフィンインターモードのためのAMVRのために別々に通知されてよい。
j.代替的に、フラグは、AMVRモード、アフィンインターモードのためのAMVR、UMVEモード、及びMVDオフセットによるアフィンマージモードによって共有されてよい。
【0129】
7.距離テーブル及び/又は方向テーブルは、予測オフセットによるアフィンマージモードのために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよいことが提案される。
a.1つの例では、距離テーブルサイズ及び/又は方向テーブルサイズのみが通知され、K1及びK2と表され、デフォルト距離テーブルサイズ内の最初のK1個の要素及び/又は方向テーブル内の最初のK2個の要素が有効である。
b.1つの例では、距離テーブルサイズ及び/又は方向テーブルサイズのみが通知され、K1及びK2と表され、デフォルト距離テーブルサイズ内の最後のK1個の要素及び/又は方向テーブル内の最後のK2個の要素が有効である。
c.1つの例では、フラグは、分数距離が使用される否かを示すために通知されてよい。
【0130】
8.2つのMVDは、双予測及びUMVEモードによりコーディングされたブロックについてコーディングされてよいことが提案される。
a.1つの例では、1つのMVDが予測方向ごとにエンコーディングされる。
i.UMVEで使用されるMVDの数は、エンコーダからデコーダへ通知されてよい。
ii.代替的に、UMVEで使用されるMVDの数は、デコーダで導出されてもよい。
b.1つの例では、1つのMVDが予測方向ごとにエンコーディングされ、予測方向LXのMVDは、L(1-X)を予測するために使用されてよい。
i.リスト0のためのMVDが最初に通知されてよく、あるいは、リスト1のためのMVDが最初に通知されてもよい。
(i)この順序は通知されてよい。
c.加えて、両方の予測方向のための基本候補インデックス及び/又は距離インデックス及び/又は方向インデックスが通知されてよい。
d.1つの例では、2つよりも多いMVD(例えば、3つ又は4つ)がUMVEモードのために通知されてよい。
【0131】
9.距離テーブル及び/又は方向テーブルは、現在のピクチャのPOC及び2つの参照ピクチャのPOC、又は現在のブロック/スライス/ピクチャのQPに依存してよいことが提案される。
a.1つの例では、テーブルは、2つの参照ピクチャ及び現在のピクチャのPOC差に依存してよい。
【0132】
10.複数組のUMVEパラメータ(例えば、複数組の距離テーブル及び/又は方向テーブル)の指示は、UMVEのために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。
a.代替的に、ひと組の距離テーブル及び/又は方向テーブルが通知されるか、又は予め定義されてよい。そして、複数の組が、その通知/予め定義された組から、例えば、利用可能な距離値をシフトすることによって、導出され得る。
i.1つの例では、利用可能な距離値をどのようにシフトすべきかの指示は、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。
(i)1つの例では、左シフト又は右シフトを使用すべき可動の指示が通知されてよい。
(ii)1つの例では、いくつのビットが左シフトされるかの指示が通知されてよい。
ii.1つの例では、1ビットフラグが、既存の距離テーブルが使用されるか、それとも距離値の夫々がM(例えば、M=2)だけ左シフトされるかを指示するために、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知される。
iii.1つの例では、左(及び/又は)右シフトされるべきビットの指示が、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。
b.代替的に、複数組のUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル(例えば、通知/予め定義された複数の組の中のサブセット))の許可インデックスが更に、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/VPS/CTU行/CTUのグループなどで通知されてもよい。
c.代替的に、複数の組のUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル)のうちの1つの選択は、コーディングされたモード、例えば、CPRか否か、に依存してよい。
d.代替的に、複数の組のUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル)のうちの1つの選択は、ピクチャ/シーケンス分解能に依存してよい。
e.代替的に、1つのブロックの複数の組のUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル)のうちの1つの選択は、選択された基本マージ候補に依存してよい。
i.1つの例では、それは、動きベクトルの大きさ/符号値に依存してよい。
(i)1つの例では、動きベクトルの大きさがより大きい場合には、ステップサイズがより大きい距離テーブルが利用されてよい。
ii.1つの例では、それは、選択された基本マージ候補の参照ピクチャ/POC値、例えば、参照ピクチャの全て又は少なくとも1つが現在のピクチャであるかどうか(すなわち、CPR)、に依存してよい。
iii.1つの例では、それは、選択された基本マージ候補の動きベクトルが整数位置又はサブ位置(例えば、1/4、1/16、1/8、1/2ペル)を指し示しているかどうかに依存してよい。
iv.選択は、基本マージ候補が表すマージ候補のカテゴリ(例えば、空間又は時間又はHMVP又は他)に依存してよい。
v.選択は、基本マージ候補が表している、マージ候補が導出される位置(例えば、左/上)に依存してよい。
vi.選択は、基本マージ候補が表すマージリスト内のマージ候補のインデックスに依存してよい。
f.代替的に、1つのブロックの次元の複数の組のUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル)のうちの1つの選択。
i.1つの例では、1つのブロックがM×N(例えば、16×16)よりも多いサンプルを有する場合に、ひと組のUMVEパラメータが利用されてよく、他のブロックについては、他の組が利用されてよい。
ii.1つの例では、1つのブロックの幅がM(例えば、16)よりも多いサンプルを有する場合に、ひと組のUMVEパラメータが利用されてよく、他のブロックについては、他の組が利用されてよい。
iii.1つの例では、1つのブロックの高さがM(例えば、16)よりも多いサンプルを有する場合に、ひと組のUMVEパラメータが利用されてよく、他のブロックについては、他の組が利用されてよい。
g.代替的に、更に、選択された距離テーブル及び/又は方向テーブルを更に通知する必要はない。距離テーブル及び/又は方向テーブルの選択は、ブロックレベル/スライス/タイル/ピクチャレベルで導出されてよい。
h.代替的に、選択された距離テーブル及び/又は方向テーブルのインデックスは更に、ブロックレベル/CTUレベル/領域レベル/CTU行レベル/スライス/タイル/ピクチャレベルで通知されてよい。
i.1つの例では、複数組の距離テーブル及び/又は方向テーブルが定義されてよく、それらの夫々は所与の動きベクトル精度(例えば、整数ペル、サブペル、すなわち、1ペル、4ペル、1/4ペル、1/16ペル)と関連付けられてよい。
i.1つの例では、複数の組の数は、いくつの動きベクトル精度が1つのシーケンス/ビュー/ピクチャ/スライス/タイル/他の種類のビデオデータ処理単位に対して認められるかに依存してよい。
ii.代替的に、更に、1つのブロックから導出された基本マージ候補については、関連したAMVRインデックスも、距離テーブル及び/又は方向テーブルを決定するよう継承されてよい。
(i)1つの例では、そのようなブロックは、空間隣接又は非隣接ブロックである。代替的に、更に、そのようなブロックは、同じCTU/CTU行/領域/タイル/スライスに位置する空間隣接又は非隣接ブロックである。
(ii)1つの例では、1つのブロックが時間ブロックである場合には、AMVRインデックスは継承されない。
(iii)1つの例では、基本マージ候補が仮想マージ候補(例えば、ペアワイズの双予測マージ候補、ゼロ動きベクトルマージ候補)から導出される場合には、AMVRインデックスは継承されない。
(iv)代替的に、更に、AMVRインデックスが継承されない場合には、デフォルトの距離テーブル及び/又は方向テーブルが代わりに利用されてよい。
iii.代替的に、更に、HMVP候補ごとに、AMVRインデックスは更に記憶されてよい。
【0133】
11.選択されたUMVEパラメータ(例えば、距離テーブル及び/又は方向テーブル)は、1つのブロックから他のブロックへ、1つの参照ピクチャリストから他の参照ピクチャリストへ、1つの参照ピクチャから他の参照ピクチャへ、タイルごとに、スライスごとに、ピクチャごとに、シーケンスごとに、時間レイヤごとに適応的に変更されてよい。
a.1つの例では、UMVEパラメータの選択は、動きベクトルの成分、すなわち、水平成分及び垂直成分に依存してよく、カメラにより捕捉されたシーケンスの大部分を考えると、垂直方向と比べて水平方向において大きい動きを有している。
【0134】
12.UMVEがCPRモードと調和されるとき、いくつかの距離は認められないことが提案される。
a.1つの例では、1/4又は1/2のような分数精度による距離は認められない。
b.1つの例では、CPRにおける有効探索範囲外にある距離は認められない。
c.1つの例では、選択された距離が距離テーブルに従って認められないとき、それは他の有効な距離によって置換されてよい。
d.代替的に、距離インデックスとピクセルインデックスとの間のマッピングの異なる組が定義されてよく、1つはCPRモード用であり、他は非CPRモード用である。
e.1つの例では、予め定義されたデルタMV、すなわち、(MVx,MVy)は、UMVEがあるブロックについて適用されるときに、UMVEの開始点に加えられる。
f.1つの例では、予め定義されたデルタMVはブロックサイズに依存してよい。
g.代替的に、予め定義されたデルタMVは参照インデックスに依存してよい。
h.代替的に、予め定義されたデルタMVは色成分に依存してよい。
i.代替的に、開始点に加えられたデルタMVは、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知され得る。
j.代替的に、開始点に加えられたデルタMVの組がスライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知され得る。代替的に、異なるブロックサイズや参照インデックスごとに、デルタMVは、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知され得る。
k.1つの例では、UMVEがCPRモードと調和されるときに、片予測が常に適用される。
i.1つのMVDしか使用又は通知されない。
l.同様に、1つの基本マージ候補が、現在のピクチャである少なくとも1つ又は全ての参照ピクチャを有する場合に(例えば、CPR)、ある方向インデックスは認められないことがある。
i.代替的に、認められていない方向インデックスは、他の有効な方向インデックスで置換されてよい。
m.この場合に、マージ候補/AMVP候補については、それが、現在のピクチャである参照ピクチャの全て又は少なくとも1つを有する場合に、UMVEが依然として適用されてよい。
【0135】
13.UMVEコーディングされたブロックについては、デコーディングされた距離インデックス及び方向インデックスに基づくデコーディングされたMVDが更に精緻化されてよい。
a.デコーディングされたMVDを精緻化すべきかどうかは、マージ候補リスト内のマージ候補に関連した動き情報に依存してよい。
i.1つの例では、選択された基本候補にデコーディングされたMVDをプラスしたものが他のマージ候補と同じになる場合に、デコーディングされたMVDは、例えば、異なる距離インデックス又は方向インデックスを使用することによって、更に精緻化されてよい。
ii.1つの例では、選択された基本候補にデコーディングされたMVDをプラスしたものが他のマージ候補に類似することになる場合に、デコーディングされたMVDは、例えば、異なる距離インデックス又は方向インデックスを使用することによって、更に精緻化されてよい。
(i)例えば、|MV1x-MV2x|+|MV1y-MV2y|<Tであるとき、MV1及びMV2は類似していると見なされる。
(ii)2つの候補は、それらが同じ参照インデックスを共有し、同じ参照ピクチャを参照するMVが類似している場合に、類似していると見なされる。
b.BIOは、UMVEコーディングされたブロックに対して認められないことがある。
c.DMVRは、UMVEコーディングされたブロックに対して認められないことがある。
【0136】
14.UMVEコーディングされたブロックについては、コーディングされた基本候補インデックスとマージ候補リスト内のマージ候補の候補インデックスとの間のマッピングは、ブロックごとに、タイルごとに、ピクチャごとに、シーケンスごとに変更されてよい。
a.0に等しいコーディングされた基本候補インデックスは常に、候補リスト内の最初のマージ候補に対応する。しかし、K(K>0)に等しいコーディングされた基本候補インデックスは、候補リスト内の(K+1)番目の候補に対応しなくてもよい。
b.1つの例では、1に等しいコーディングされた基本候補インデックス(Coded Base Candidate Index,CBCI)は、0に等しいCBCIが指し示している最初の候補と類似していないマージ候補リスト内のマージ候補を示してよい。
i.例えば、最初の2つのマージ候補が類似している(例えば、MVしか異ならず、MVの差は閾値に類似しているか又は等しい)とき、1に等しいコーディングされた基本候補インデックスは、3番目のマージ候補が最初のマージ候補と類似していないならば、その3番目のマージ候補に対応し得る。
c.1つの例では、マージ候補リストからの基本マージ候補のマッピング又は選択は、候補リスト内の最初のマージ候補に依存してよい。
i.例えば、最初のマージ候補と同じ参照ピクチャを有するマージ候補のみが、基本マージ候補として扱われ得る。
ii.例えば、最初のマージ候補と同じ参照インデックスの少なくとも1つ又は参照ピクチャの少なくとも1つを有するマージ候補のみが、基本マージ候補として扱われ得る。
iii.例えば、最初のマージ候補と同じ動きベクトル精度の少なくとも1つを有するマージ候補のみが、基本マージ候補として扱われ得る。
iv.上記の例で、‘同じ’は‘異なる’で置き換えられてもよい。
d.いくつかのマージ候補は、UMVEモードで基本マージ候補として利用されることを認められないことがある。
i.1つの例では、仮想マージ候補(例えば、複合双予測マージ候補、ペアワイズマージ候補、ゼロ動きベクトルマージ候補)は認められない。
ii.1つの例では、時間マージ候補及び/又はHMVP候補は認められない。
iii.1つの例では、1つのマージ候補が特定のモード(例えば、三角予測モード、サブブロックモード、アフィン又はATMVP又はSTMVP)から導出される場合に、そのような候補は認められない。
iv.1つの候補が基本マージ候補として利用されることを認められないとき、次の又は他の残りの候補が代わりに使用されてよい。
v.1つ以上の基本マージ候補はマージ候補リストからではなくてもよい。
(i)1つ以上の基本マージ候補は、利用可能なマージ候補から導出されてよい(例えば、異なる参照ピクチャへのスケーリング;LX動き情報(例えば、X=0又は1)のみを保持する)。
(ii)1つ以上の基本マージ候補は、デフォルトの動きベクトル候補(例えば、(-W,-H)、ここで、W及びHは現在のブロックの幅及び高さである)から導出されてもよい。
e.代替的に、上記の方法について、最初の候補は、最初の非CPR候補であるよう制限されてよい。
f.基本マージ候補は、十分に大きい差を有しているマージリスト内のマージ候補であるよう定義されてよい。
i.1つの例では、2つのマージ候補が類似している(例えば、参照ピクチャが同じであり、MV差が閾値よりも小さい)場合に、2つの候補のうちの2番目は有効な基本マージ候補となり得ない。
【0137】
15.上記の例の全てで、距離テーブル及び/又は方向テーブルは、UMVEの表現のための他の方法で置換されてもよい。
【0138】
16.上記の例の全てで、距離テーブルの通知/導出は、AMVR精度で置換されてよい。ひと組のAMVR精度は{1/4ペル,1ペル,4ペル}で表される、とする。
a.1つの例では、AMVR精度の組で定義されているMV精度をスケーリングすべきかどうかの指示は、スライスヘッダ/タイルグループヘッダ/タイルヘッダ/ピクチャヘッダ/PPS/SPS/VPSなどで通知されてよい。例えば、スケーリングが利用される場合に、AMVR制度の変更された組は{1ペル,4ペル,16ペル}と定義され、すなわち、4によってスケーリングされ得る。
b.代替的に、複数組のAMVRセットが定義又は通知されてよい。
c.代替的に、セットインデックスの指示は、オン・ザ・フライで、例えば、ブロックのコーディングされた情報又は前にコーディングされた情報に基づいて、通知又は導出されてよい。
d.許されているAMVR精度の組は、1つのビデオユニットから他(例えば、ブロック/PU/CU/CTU/CTU行/タイル/スライス/ピクチャ、領域など)へ変更されてよい。
e.通知されたMV精度インデックスと実際のMV精度との間のマッピングは、1つのビデオユニットから他(例えば、ブロック/PU/CU/CTU/CTU行/タイル/スライス/ピクチャ/領域など)へ変更されてよい。
【0139】
17.全ての参照ピクチャが現在のピクチャである(あるいは、全ての参照ブロックが現在のピクチャのサンプルから取得される)場合について、アフィン、サブブロックベースのマージ、多重仮説イントラ/インター予測、三角予測及びMMVDに関するフラグは通知されなくてもよいことが提案される。
【0140】
18.GBiは、スライスレベル/タイルレベル/ピクチャレベルで無効化/有効化されてよく、1つのGBiオン/オフフラグは、スライスヘッダ/タイルヘッダ/PPSで通知されてよいことが提案される。
a.1つの例では、GBiは、ピクチャの時間レイヤが閾値T、例えば、T=3よりも高い場合に、ピクチャについて無効にされてよい。
b.1つの例では、GBiは、他のピクチャによって参照されないピクチャについて無効にされてよい。
c.1つの例では、GBiは、閾値QPT、例えば、QPT=40よりも大きいQPを有するピクチャについて無効にされてよい。
d.1つの例では、GBiは、閾値QPT、例えば、QPT=40よりも大きいQPを有するブロックについて暗黙的に(すなわち、GBiインデックスを通知せずに)無効にされてよい。
【0141】
19.GBiで使用される重み付け係数セットは、ピクチャの時間レイヤ、又はピクチャのQP、又はブロックのQPに依存してよいことが提案される。
a.1つの例では、より少ない重み付け係数が、より高い時間レイヤを有するピクチャに使用される。
b.1つの例では、より少ない重み付け係数が、より高いQPでコーディングされたピクチャ/ブロックに使用される。
【0142】
20.デフォルトの重み付け係数セットに加えて、他の重み付け係数セットがGBiでは使用されてよく、それらの重み付け係数セットはスライスヘッダ/タイルヘッダ/PPSで通知されてよいことが提案される。
a.1つの例では、デフォルトの重み付け係数セットが使用されるかどうかを示すために、1つのフラグがスライスヘッダ/タイルヘッダ/PPSで通知され、デフォルトの重み付け係数セットが使用されない場合には、使用される重み付け係数セットが更に通知される。
【0143】
21.GBiは片予測の場合に拡張されてよいことが提案される。このとき、重み付け係数セットは設計され、重み付け係数はブロック/CUレベルで選択される。
a.1つの例では、GBiインデックスは、片予測の場合にAMVPモード及び/又はアフィンインターモードについては通知され、マージモード又はUMVEモード又はアフィンマージモード又はオフセット付きアフィンマージモードでは継承される。
b.例えば、重み付け係数セットは{10/8,9/8,1,7/8,6/8}である。
【0144】
22.1つ又は複数のオフセットセットがGBi及び/又は拡張されたGBiで(バレット21で)設計されてよいことが提案される。このとき、動き補償されたブロックは、選択されたオフセットで精緻化されてよい。この場合に、動き補償後に、各予測サンプルは、最終的な予測サンプルを得るようオフセットとともに更に加算されてよい。
a.オフセットインデックスはCU/ブロックごとに通知されてよい。
b.1つの例では、デフォルトの重み付け係数(例えば、双予測場合には1/2、及び片予測の場合には1)が選択されないとき、オフセットインデックスが更にAMVPモード又はアフィンインターモードで通知される。
c.1つの例では、オフセットインデックスは、選択された重み付け係数がデフォルトの重み付け係数であろうとなかろうと、常に通知される。
d.1つの例では、オフセットインデックスは、マージモード又はUMVEモード又はアフィンマージモード又はオフセット付きアフィンマージモードで継承される。
【0145】
23.現在のブロック/CUの隣接ピクセル及び現在のブロックのMV(又はMVの整数部分)によって識別される対応する参照隣接ピクセルは、GBiインデックスを暗黙的に選択するために使用されてよいことが提案される。この場合に、GBiインデックスは通知されず、現在ブロックがデフォルトの重み付け係数又は選択された重み付け係数を使用するかどうかを示すために、ただ1つのGBiフラグが通知される。
a.1つの例では、重み付け係数ごとに、両方の方向での参照隣接ピクセルは加重平均化され、それと隣接ピクセルとの間の差が計算される。最小の差を達成する重み付け係数が、現在のブロックの重み付け係数として選択される。
b.1つの例では、差は、例えば、SAD、MRSAD、SSE又はMRSSE、SATDによって、測定されてよい。
c.1つの例では、差は、いくつかの代表的な隣接位置に関して計算されてよい。
d.1つの例では、そのようなGBiフラグは、マージモード又はUMVEモード又はアフィンマージモード又はオフセット付きアフィンマージモードで継承される。
e.1つの例では、現在のブロックの隣接サンプルの和(又は平均)がS0であり、参照ブロックの隣接サンプルの和(又は平均)がS1であるならば、GBi重み値は、S0及びS1によって導出可能である。
i.1つの例では、S0/S1は、重み値を導出するために使用される。除算は、乗算、シフト及びルックアップテーブルで置換され得る。
ii.参照ブロックの隣接サンプルは整数サンプルでなければならない。
【0146】
24.現在のブロック/CUの隣接ピクセル及び現在のブロックのMV(又はMVの整数部分)によって識別される対応する参照隣接ピクセルは、GBiインデックスを並べ直すために使用されてよいことが提案される。
a.1つの例では、重み付け係数ごとに、両方の方向での参照隣接ピクセルは加重平均化され、それと隣接ピクセルとの間の差が計算される。重み付け係数は、次いで、その昇順で並べ直される。
【0147】
25.導出されたLICパラメータは、GBiでの重み付け係数の1つとして使用されてよいことが提案される。
a.1つの例では、LICパラメータを導出するとき、オフセットはゼロと仮定され、重み付け係数のみが導出される。すなわち、LICモデルはy=axに変更される。
b.1つの例では、LICで導出されたオフセット及び重み付け係数の両方がGBiで使用される。
c.1つの例では、マージモード又はUMVEモード又はアフィンマージモード又はオフセット付きアフィンマージモードで、GBiで使用された重み付け係数は、隣接ブロックから直接に継承される。
i.代替的に、継承された隣接重み付け係数が実際に、導出されたLICパラメータである場合に、新しいLICパラメータが導出され、現在のブロック/CUのために使用される。
ii.代替的に、マージモード及び/又はUMVEモードで、継承された隣接重み付け係数が実際に、導出されたLICパラメータである場合に、新しいLICパラメータが導出され、現在のブロック/CUのために使用される。
【0148】
[5.例となる実施形態]
このセクションは、改善されたUMVE設計についてのいくつかの実施形態を示す。
【0149】
[5.1 第1実施形態]
この実施形態では、分数距離が認められるかどうかのフラグが通知される。最新のVVC規格と比較した変更は、太字イタリック体(又は下線)で強調表示される。
【0150】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表6】
[セマンティクス]
0に等しいsps_UMVE_enabled_flagは、UMVE(MMVD)が無効にされることを定める。1に等しいsps_UMVE_enabled_flagは、UMVEが有効にされることを定める。
0に等しいsps_disable_fractional_distanceは、UMVE(MMVD)の分数ピクセル距離が有効にされることを定める。1に等しいsps_disable_fractional_distanceは、UMVEの分数ピクセル距離が無効にされることを定める。
代替的に、sps_disable_fractional_distanceは、sps_enable_fractional_distanceで置換されてよい。代替的に、sps_disable_fractional_distanceは直接にコーディングされてよい。
代替的に、sps_UMVE_enabled_flag、sps_disable_fractional_distanceは更に、ピクチャヘッダ/PPS/スライスヘッダ/タイルグループヘッダ/領域/CTU行/CTUのグループ/CTUで通知されてもよい。
mmvd_distance_idx[x0][y0]は、
0に等しいsps_disable_fractional_distanceについては表7-7で
、及び1に等しいsps_disable_fractional_distanceについては表7-xで規定されているようにMmvdDistance[x0][y0]を導出するために使用されるインデックスを定める。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、考えられているコーディングブロックの左上ルーマサンプルの位置(x0,y0)を特定する。
【表7】
【表8】
【表9】
【0151】
[5.2 第2実施形態]
この実施形態では、距離テーブルの指示が通知される。最新のVVC規格と比較した変更は、太字イタリック体(又は下線)で強調表示される。
【0152】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表10】
7.3.2.2 ピクチャパラメータセットRBSPシンタックス
【表11】
[セマンティクス]
0に等しいsps_UMVE_enabled_flagは、UMVE(MMVD)が無効にされることを定める。1に等しいsps_UMVE_enabled_flagは、UMVEが有効にされることを定める。
Lに等しいsps_distance_tablesは、UMVE(MMVD)の(L+1)個の距離テーブルが定義されることを定める。
Lに等しいindex_distance_tableは、UMVE(MMVD)のL番目の距離テーブルが使用されることを定める。
1つの例では、Mは2にセットされる。
代替的に、sps_distance_tablesは直接にコーディングされてよい。
代替的に、sps_UMVE_enabled_flag、sps_distance_tables、index_distance_tableは更に、ピクチャヘッダ/PPS/スライスヘッダ/タイルグループヘッダ/領域/CTU行/CTUのグループ/CTUで通知されてもよい。
【表12】
代替的に、更に、1つの基本マージ候補がCPRであるとき、異なった距離テーブルが、上記のように定義されたものから利用されてよい。
代替的に、方向テーブルが通知/予め定義されてもよい。
【0153】
[5.3 第3実施形態]
この実施形態では、分数距離が認められるかどうかのフラグが通知される。最新のVVC規格と比較した変更は、太字イタリック体(又は下線)で強調表示される。
【0154】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表13】
[セマンティクス]
0に等しいsps_UMVE_enabled_flagは、UMVE(MMVD)が無効にされることを定める。1に等しいsps_UMVE_enabled_flagは、UMVEが有効にされることを定める。
0に等しいsps_disable_fractional_distanceは、UMVE(MMVD)の分数ピクセル距離が有効にされることを定める。1に等しいsps_disable_fractional_distanceは、UMVEの分数ピクセル距離が無効にされることを定める。
代替的に、sps_disable_fractional_distanceは、sps_enable_fractional_distanceで置換されてよい。代替的に、sps_disable_fractional_distanceは直接にコーディングされてよい。
代替的に、sps_UMVE_enabled_flag、sps_disable_fractional_distanceは更に、ピクチャヘッダ/PPS/スライスヘッダ/タイルグループヘッダ/領域/CTU行/CTUのグループ/CTUで通知されてもよい。
mmvd_distance_idx[x0][y0]は、
0に等しいsps_disable_fractional_distanceについては表7-7で
、及び1に等しいsps_disable_fractional_distanceについては表7-xで規定されているようにMmvdDistance[x0][y0]を導出するために使用されるインデックスを定める。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、考えられているコーディングブロックの左上ルーマサンプルの位置(x0,y0)を特定する。
【表14】
【表15】
【0155】
[5.4 第4実施形態]
7.3.3.1 汎用スライスヘッダシンタックス
【表16】
1に等しい
enable_MMVD_distance_scale_flagは、スケーリングがデフォルト距離テーブルに適用されることを示す。0に等しいenable_MMVD_distance_scale_flagは、デフォルト距離テーブルが利用されることを示す。
【表17】
1つの例では、Mは2にセットされる。代替的に、左シフトは右シフトで置換されてよい。
【0156】
[5.5 第5実施形態]
シンタックスの変更は次のように説明され、新たに追加された部分は太字イタリック体(又は下線)で強調表示される。
【0157】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表18】
7.3.3.1 汎用タイルグループヘッダシンタックス
【表19】
7.4.3.1 シーケンスパラメータセットRBSPセマンティクス
1に等しいsps_fracmmvd_enabled_flagは、tile_group_fracmmvd_flagがBピクチャ及びPピクチャについてタイルグループヘッダシンタックステーブルに存在することを定める。0に等しいsps_fracmmvd_enabled_flagは、tile_group_fracmmvd_flagがBピクチャ及びPピクチャについてタイルグループヘッダシンタックステーブルに存在しないことを定める。
7.4.4.1 汎用タイルグループヘッダセマンティクス
1に等しいtile_group_fracmmvd_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで有効にされることを定める。0に等しいtile_group_fracmmvd_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで無効にされることを定める。存在しないときには、tile_group_fracmmvd_flagの値は、1であると推測される。
7.4.5.8 マージデータセマンティクス
mmvd_distance_idx[x0][y0]は、表7-9で規定されるようにMmvdDistance[x0][y0]を導出するために使用されるインデックスを定める。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、考えられているコーディングブロックの左上ルーマサンプルの位置(x0,y0)を特定する。
【表20】
【0158】
[5.6 第6実施形態]
シンタックスの変更は次のように説明され、新たに追加された部分は太字イタリック体(又は下線)で強調表示される。
【0159】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表21】
7.3.3.1 汎用タイルグループヘッダシンタックス
【表22】
7.4.3.1 シーケンスパラメータセットRBSPセマンティクス
1に等しいsps_fracmmvd_disabled_flagは、分数ペル精度で動きベクトル差分によるマージモードを無効にすることが適用されることを定める。0に等しいsps_fracmmvd_disabled_flagは、分数ペル精度で動きベクトル差分によるマージモードを無効にすることが適用されないことを定める。
7.4.4.1 汎用タイルグループヘッダセマンティクス
1に等しいtile_group_fracmmvd_disabled_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで無効にされることを定める。0に等しいtile_group_fracmmvd_disabled_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで有効にされることを定める。存在しないときには、tile_group_fracmmvd_disabled_flagの値は、0であると推測される。
7.4.5.8 マージデータセマンティクス
mmvd_distance_idx[x0][y0]は、表7-9で規定されるようにMmvdDistance[x0][y0]を導出するために使用されるインデックスを定める。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、考えられているコーディングブロックの左上ルーマサンプルの位置(x0,y0)を特定する。
【表23】
【0160】
[5.7 第7実施形態]
シンタックスの変更は次のように説明され、新たに追加された部分は太字イタリック体(又は下線)で強調表示される。
【0161】
7.3.2.1 シーケンスパラメータセットRBSPシンタックス
【表24】
7.3.3.1 汎用タイルグループヘッダシンタックス
【表25】
7.4.3.1 シーケンスパラメータセットRBSPセマンティクス
1に等しいsps_fracmmvd_disabled_flagは、分数ペル精度で動きベクトル差分によるマージモードを無効にすることが適用されることを定める。0に等しいsps_fracmmvd_disabled_flagは、分数ペル精度で動きベクトル差分によるマージモードを無効にすることが適用されないことを定める。
7.4.4.1 汎用タイルグループヘッダセマンティクス
1に等しいtile_group_fracmmvd_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで有効にされることを定める。0に等しいtile_group_fracmmvd_flagは、分数ペル精度での動きベクトル差分によるマージモードが現在のタイルグループで無効にされることを定める。存在しないときには、tile_group_fracmmvd_disabled_flagの値は、1であると推測される。
7.4.5.8 マージデータセマンティクス
mmvd_distance_idx[x0][y0]は、表7-9で規定されるようにMmvdDistance[x0][y0]を導出するために使用されるインデックスを定める。アレイインデックスx0、y0は、ピクチャの左上ルーマサンプルに対して、考えられているコーディングブロックの左上ルーマサンプルの位置(x0,y0)を特定する。
【表26】
【0162】
全ての実施形態について、関係があるシンタックスは、他のビデオデータ単位(例えば、SPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダなど)に置かれてもよいことが留意されるべきである。
【0163】
図11Aは、ビデオ処理装置1100のブロック図である。装置1100は、本明細書で説明されている方法の1つ以上を実装するために使用されてよい。装置1100は、スマートフォン、タブレット、コンピュータ、インターネット・オブ・シングス(Internet of Things,IoT)受信器、などで具現されてよい。装置1100は、1つ以上のプロセッサ1102、1つ以上のメモリ1104、及びビデオ処理ハードウェア1106を含んでよい。プロセッサ1102は、本明細書で説明されている1つ以上の方法を実装するよう構成されてよい。メモリ(複数のメモリ)1104は、本明細書で説明されている方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてよい。ビデオ処理ハードウェア1106は、ハードウェア回路で、本明細書で説明されているいくつかの技術を実装するために使用されてよく、部分的に又は完全にプロセッサ1102(例えば、グラフィクス・プロセッサ・コア(GPU)又は他の信号処理回路)の部分であってよい。
【0164】
図11Bは、開示されている技術が実装され得るビデオ処理システムのブロック図の他の例である。
図11Bは、本明細書で説明されている様々な技術が実装され得る、例となるビデオ処理システム3100を示すブロック図である。ビデオ実施は、システム3100のコンポーネントのいくつか又は全てを含んでよい。システム3100は、ビデオコンテンツを受け取る入力部3102を含んでよい。ビデオコンテンツは、生の又は圧縮されていないフォーマット、例えば、8又は10ビットマルチコンポーネントピクセル値で、受け取られてよく、あるいは、圧縮又はエンコーディングされたフォーマットであってもよい。入力部3102は、ネットワーク・インターフェース、ペリフェラル・バス・インターフェース、又はストレージ・インターフェースに相当してよい。ネットワーク・インターフェースの例には、Ethernet(登録商標)、受動光学ネットワーク(Passive Optical Network,PON)、などのような優先インターフェース、及びWi-Fi又はセルラーインターフェースのような無線インターフェースがある。
【0165】
システム3100は、本明細書で説明されている様々なコーディング又はエンコーディング方法を実装し得るコーディングコンポーネント3104を含んでよい。コーディングコンポーネント3104は、ビデオのコーディングされた表現を生成するよう入力部3102からコーディングコンポーネント3104の出力部までのビデオの平均ビットレートを低減してよい。コーディング技術は、従って、時々、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれる。コーディングコンポーネント3104の出力は、コンポーネント3106によって表されているように、記憶されるか、あるいは、通信接続を介して伝送されるかのどちらかであってよい。入力部3102で受け取られたビデオの記憶又は通信されたビットストリーム(又はコーディングされた)表現は、表示インターフェース3110へ送られるピクセル値又は表示可能なビデオを生成するためにコンポーネント3108によって使用されてよい。ビットストリーム表現から、ユーザが見ることができるビデオを生成するプロセスは、時々、ビデオ圧縮解除と呼ばれる。更に、特定のビデオ処理動作は「コーディング」動作又はツールと呼ばれるが、コーディングツール又は動作はエンコーダで使用され、コーディングの結果を判定させる対応するデコーディングツール又は動作は、デコーダで実行されることになる。
【0166】
ペリフェラル・バス・インターフェース又は表示インターフェースの例には、ユニバーサル・シリアル・バス(Universal Serial Bus,USB)又は高精細マルチメディアインターフェース(High Definition Multimedia Interface,HDMI(登録商標))などが含まれ得る。ストレージ・インターフェースの例には、SATA(Serial Advanced Technology Attachment)、PCI、IDEインターフェース、などがある。本明細書で説明されている技術は、携帯電話機、ラップトップ、スマートフォン、あるいは、デジタルデータ処理及び/又はビデオ表示を実行することが可能な他のデバイスのような様々な電子機器で具現されてよい。
【0167】
いくつかの実施形態で、ビデオコーディング方法は、
図11A又は
図11Bに関連して説明されているハードウェアプラットフォーム上で実装される装置を用いて実装されてよい。
【0168】
図12は、開示されている技術のいくつかの実施に基づくビデオ処理のための例となる方法のフローチャートを示す。方法1200は、ステップ1202で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、ultimate motion vector expression(UMVE)モードの動作のモードを決定することを含む。方法1200は、ステップ1204で、その決定に基づき変換を実行することを含む。いくつかの実施で、現在のビデオブロックは、マージモードと、現在のビデオブロックについての動き情報の開始点、運動の大きさ及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされる。コーディングされた表現における1つ以上のフィールドは、動作のモードに対応し、1つ以上のフィールドは、UMVEモードが現在のビデオブロックについて有効又は無効にされるかどうかを示す値を有するUMVEイネーブルフィールド、又はUMVEモードに基づき変更されたアフィンマージモードが現在のビデオブロックについて有効又は無効にされるかどうかを示す変形アフィンモードイネーブルフィールドを含む。いくつかの実施で、現在のビデオブロックは、マージモードと、現在のビデオブロックについての動き情報の開始点、運動の大きさ及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされる。コーディングされた表現における1つ以上のフィールドは、動作のモードに対応し、1つ以上のフィールドは、UMVEモードによって使用される基本候補リストのサイズを示すリストサイズフィールド、又はUMVEモードのための距離テーブル若しくは方向テーブルを通知するテーブルフィールドを含む。
【0169】
図13は、開示されている技術のいくつかの実施に基づくビデオ処理のための例となる方法のフローチャートを示す。方法1300は、ステップ1302で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、ultimate motion vector expression(UMVE)コーディングツールを用いて実行することを含む。いくつかの実施で、UMVEコーディングツールは、現在のビデオブロックについての動き情報の開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表し、距離テーブル又は方向テーブルの少なくとも1つが、2つの参照ピクチャのピクチャ・オーダー・カウント(Picture Order Count,POC)若しくは現在のビデオブロックを含む現在のピクチャのPOC、又は現在のビデオブロック、現在のスライス、若しくは現在のピクチャをコーディングするために使用される量子化パラメータ(Quantization Parameter,QP)に依存する。いくつかの実施で、UMVEコーディングツールは、現在のビデオブロックの動き情報の開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表し、適応動きベクトル分解能(AMVR)スキームが、UMVEコーディングツールによって使用される距離テーブルを通知するために使用される。
【0170】
図14は、開示されている技術のいくつかの実施に基づくビデオ処理の方法の例となる方法のフローチャートを示す。方法1400は、ステップ1402で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、アフィンultimate motion vector expression(UMVE)モードの動作のモードを決定することを含む。方法1400は、ステップ1404で、その決定に基づき変換を実行することを含む。
【0171】
図15Aは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1510は、ステップ1512で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のためのultimate motion vector expression(UMVE)コーディングツールでの複数の動きベクトル差分を通知すると決定することを含む。方法1510は、ステップ1514で、その決定に基づき変換を実行することを含む。いくつかの実施で、UMVEコーディングツールを用いて、開始点と、現在のビデオブロックのN個の運動の大きさ及びN個の運動方向によって表されるN個の動きベクトル差分とを含む動きベクトル表示が、変換中に使用され、Nは2以上の整数である。
【0172】
図15Bは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1520は、ステップ1522で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在のビデオブロックが現在ピクチャ参照(CPR)コーディングツール及びultimate motion vector expression(UMVE)コーディングツールを使用することによりルールが変換に適用可能であると決定することを含む。方法1520は、ステップ1524で、ルールに従って変換を実行することを含む。いくつかの実施で、ルールは、変換のための1つ以上のコーディング距離の使用を認めず、CPRコーディングツールは、参照ピクチャとして現在のピクチャを使用し、UMVEコーディングツールは、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を使用する。
【0173】
図15Cは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1530は、ステップ1532で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換中に、現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、現在のビデオブロックのための動きベクトル差分(MVD)値の精緻化を実行すると決定することを含む。方法1530は、ステップ1534で、その決定に基づき変換を実行することを含む。
【0174】
図15Dは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1540は、ステップ1542で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、複数のUMVEパラメータセットから第1UMVEパラメータセットを使用すると決定することを含む。方法1540は、ステップ1544で、その決定に基づき変換を実行することを含む。いくつかの実施で、複数のUMVEパラメータセットの中の少なくとも1つの指示は、現在のビデオブロックについて通知又は予め定義される。
【0175】
図15Eは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1550は、ステップ1552で、ビデオの現在のビデオブロックが、現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、現在のビデオブロックとビデオのコーディングされた表現との間の変換のためのUMVEパラメータセットを選択することを含む。いくつかの実施で、選択されたUMVEパラメータセットは、異なるビデオブロック、異なる参照ピクチャリスト、異なる参照ピクチャ、異なるタイル、異なるスライス、異なるピクチャ、又は異なる時間レイヤにわたって変更される。
【0176】
図16Aは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1610は、ステップ1612で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、現在のビデオブロックの予測が、2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところの一般化された双予測(GBi)コーディングツールの動作のモードを決定することを含む。方法1610は、ステップ1614で、その決定に基づき変換を実行することを含む。いくつかの実施で、コーディングされた表現におけるフィールドは、動作のモードに対応し、フィールドの値は、GBiコーディングツールが現在のビデオブロックについて有効又は無効にされるかどうかを示す。
【0177】
図16Bは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1620は、ステップ1622で、ビデオの現在のビデオブロックの予測が、2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づいて、現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行することを含む。いくつかの実施で、ルールは、GBiコーディングツールによって使用される重み付け係数セットが、i)現在のビデオブロックを含むピクチャの時間レイヤ、ii)ピクチャのピクチャ量子化パラメータ、又はiii)現在のビデオブロックの量子化パラメータに基づくことを定める。いくつかの実施で、ルールは、現在のビデオブロックの隣接ピクセルと、現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって識別された対応する参照隣接ピクセルとに基づき、GBiコーディングツールのための重み付け係数を選択又は導出することを定める。いくつかの実施で、ルールは、現在のビデオブロックの隣接ピクセルと、現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって識別された対応する参照隣接ピクセルとに基づき、GBiコーディングツールのための重み付け係数を並べ替えることを定める。いくつかの実施で、ルールは、GBiコーディングツールのための重み付け係数を決定するために、現在のビデオブロックに関連した局所照度補償(LIC)パラメータを使用することを定め、LICパラメータは、変換中の現在のビデオブロックにおける照度変化の線形モデルを使用するよう導出される。
【0178】
図16Cは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1630は、ステップ1632で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換のために、片予測モードのための重みとは等しくない重みを使用することを決定することを含む。方法1630は、ステップ1634で、その決定に基づき変換を実行することを含む。いくつかの実施で、現在のビデオブロックの予測は、重みによってスケーリングされた予測子に対応する最終的な予測子を使用し、重み付け係数セットは、ブロックレベル又はコーディングユニットレベルで選択される。
【0179】
図17Aは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1710は、ステップ1712で、ビデオの1つ以上のビデオブロックとビデオのコーディングされた表現との間の変換を実行することを含む。いくつかの実施で、コーディングされた表現における第1フィールドは、変換中に使用される動きベクトル差分によるマージ(MMVD)モードにおける動き差分を示すために分数サンプル精度が使用されるかどうかを示し、MMVDモードは、現在のビデオブロックについての開始点、運動距離及び運動方向を含む動きベクトル表示を有する。
【0180】
図17Bは、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1720は、ステップ1722で、ビデオの現在のビデオブロックとビデオのコーディングされた表現との間の変換を実行することを含み、コーディングされた表現は、変換中に使用されるアドバンスド動きベクトル予測(AMVP)モード又はアフィンインターモードのために分数動きベクトル(MV)又は動きベクトル差分(MVD)精度が許されているかどうかを示すフラグを有する。
【0181】
図18は、開示されている技術のいくつかの実施に基づくビデオ処理の例となる方法のフローチャートを示す。方法1800は、ステップ1810で、ビデオの現在のピクチャの現在のビデオブロックとビデオのコーディングされた表現との間の変換を、コーディングされた表現のフォーマットを規定するルールに従って実行することを含み、ルールは、コーディングモードのためのシンタックス要素が、現在のビデオブロックの変換のために使用される全ての参照ブロックが現在のピクチャのサンプルから取得されるかどうかに基づき、コーディングされた表現に含まれることを定める。
【0182】
本明細書中、「ビデオ処理」との用語は、ビデオエンコーディング、ビデオデコーディング、ビデオ圧縮又はビデオ圧縮解除を指し得る。例えば、ビデオ圧縮アルゴリズムは、ビデオのピクセル表現から対応するビットストリーム表現への変換中に適用されてよく、あるいは、その逆も同様である。現在のビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるように、ビットストリーム内で同一位置にあるか又は異なる位置に拡散されるかのどちらかであるビットに対応する。例えば、マクロブロックは、変換及びコーディングされた誤差残差値に関して、ビットストリーム内のヘッダ及び他のフィールドに含まれるビットを用いて、エンコーディングされてよい。
【0183】
本明細書で開示されている様々なルールに基づき構成される仮想動き候補の使用を可能にすることによって、スマートフォン、ラップトップ、デスクトップ、及び同様のデバイスのようなビデオ処理デバイス内に組み込まれているビデオエンコーダ及びデコーダ実施形態に利益をもたらすことなるいくつかの技術が、開示されてきたことが理解されるだろう。
【0184】
様々な技術及び実施形態は、次の箇条書き形式で記載されてもよい。
【0185】
第1の箇条書きは、例えば、項目1を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0186】
1.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記現在のビデオブロックは、マージモードと、前記現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされ、
前記コーディングされた表現における1つ以上のフィールドは、前記動作のモードに対応し、
前記1つ以上のフィールドは、前記UMVEモードが前記現在のビデオブロックに対して有効若しくは無効にされているかどうかを示す値を有するUMVEイネーブルフィールド、又は前記UMVEモードに基づき変更されたアフィンマージモードが前記現在のビデオブロックに対して有効若しくは無効にされているかどうかを示す変形アフィンモードイネーブルフィールドを含む、
方法。
【0187】
2.前記開始点は、基本マージ候補リストへのインデックスによって示され、
前記現在のビデオブロックの最終的な動き情報は、前記運動方向及び前記運動の大きさによって表される前記動きベクトル差分に依存する、
箇条1に記載の方法。
【0188】
3.前記1つ以上のフィールドは、スライスヘッダレベルで含まれる、
箇条1に記載の方法。
【0189】
4.前記1つ以上のフィールドは、タイルグループヘッダレベルで含まれる、
箇条1に記載の方法。
【0190】
5.前記1つ以上のフィールドは、タイルヘッダレベルで含まれる、
箇条1に記載の方法。
【0191】
6.前記1つ以上のフィールドは、ピクチャヘッダレベルで含まれる、
箇条1に記載の方法。
【0192】
7.前記1つ以上のフィールドは、ピクチャパラメータセットレベルで含まれる、
箇条1に記載の方法。
【0193】
8.前記1つ以上のフィールドは、シーケンスパラメータセットレベルで含まれる、
箇条1に記載の方法。
【0194】
9.前記1つ以上のフィールドは、ビデオパラメータセットレベルで含まれる、
箇条1に記載の方法。
【0195】
10.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至9のうちいずれかに記載の方法。
【0196】
11.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至9のうちいずれかに記載の方法。
【0197】
12.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至11のうちいずれか1つに記載の方法を実施させる、
装置。
【0198】
13.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至11のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0199】
第2の箇条書きは、例えば、項目2、4、及び9を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0200】
1.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、ultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記現在のビデオブロックは、マージモードと、前記現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を有するUMVEモードでの動きベクトル差分とによりコーディングされ、
前記コーディングされた表現における1つ以上のフィールドは、前記動作のモードに対応し、
前記1つ以上のフィールドは、前記UMVEモードによって使用される基本候補リストのサイズを示すリストサイズフィールド、又は前記UMVEモードのための距離テーブル若しくは方向テーブルを通知するテーブルフィールドを含む、
方法。
【0201】
2.前記開始点は、基本マージ候補リストへのインデックスによって示され、
前記現在のビデオブロックの最終的な動き情報は、前記動きベクトル差分に依存する、
箇条1に記載の方法。
【0202】
3.前記1つ以上のフィールドは、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、又はビデオパラメータセットレベルで含まれる、
箇条1に記載の方法。
【0203】
4.前記基本候補リストのサイズは、1、2、又は3にセットされる、
箇条1に記載の方法。
【0204】
5.前記1つ以上のフィールドは、マージモードのための候補リストのサイズを示す値を有するマージモードリストサイズフィールドを更に含む、
箇条1に記載の方法。
【0205】
6.前記UMVEモードによって使用される前記基本候補リストのサイズは、前記マージモードのための前記候補リストのサイズ以下である、
箇条5に記載の方法。
【0206】
7.前記リストサイズフィールドは、前記コーディングされた表現から省かれる、
箇条5に記載の方法。
【0207】
8.前記UMVEモードによって使用される前記基本候補リストのサイズは、前記マージモードのための前記候補リストのサイズに等しい、
箇条7に記載の方法。
【0208】
9.前記テーブルフィールドは、前記距離テーブルのサイズK1及び前記方向テーブルのサイズK2を通知する、
箇条1に記載の方法。
【0209】
10.前記距離テーブルの最初のK1個の要素又は前記方向テーブルの最後のK2個の要素が有効である、
箇条9に記載の方法。
【0210】
11.前記距離テーブルの最後のK1個の要素又は前記方向テーブルの最後のK2個の要素が有効である、
箇条9に記載の方法。
【0211】
12.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、ultimate motion vector expression(UMVE)コーディングツールを用いて実行するステップを有し、
前記UMVEコーディングツールは、前記現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を表し、
距離テーブル又は方向テーブルの少なくとも1つは、2つの参照ピクチャのピクチャ・オーダー・カウント(POC)若しくは前記現在のビデオブロックを含む現在のピクチャのPOC、又は前記現在のビデオブロック、現在のスライス、若しくは前記現在のピクチャをコーディングするために使用される量子化パラメータ(QP)に依存する、
方法。
【0212】
13.前記距離テーブル及び前記方向テーブルは、前記2つの参照ピクチャのPOCと前記現在のピクチャのPOCとの間の距離に依存する、
箇条12に記載の方法。
【0213】
14.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至13のうちいずれかに記載の方法。
【0214】
15.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至13のうちいずれかに記載の方法。
【0215】
16.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至15のうちいずれか1つに記載の方法を実施させる、
装置。
【0216】
17.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至15のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0217】
第3の箇条書きは、例えば、項目3及び7を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0218】
1.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、アフィンultimate motion vector expression(UMVE)モードの動作のモードを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記現在のビデオブロックは、アフィンマージモードと、前記現在のビデオブロックについての動き情報の開始点、運動の大きさ、及び運動方向を含むアフィンUMVEモードでの動きベクトル差分とによりコーディングされ、
前記コーディングされた表現における1つ以上のフィールドは、前記動作のモードに対応し、
前記1つ以上のフィールドは、前記UMVEモードによって使用される予測オフセットによるアフィンマージモードのための基本アフィンマージ候補リストのサイズを示すリストサイズフィールド、又は前記予測オフセットによるアフィンマージモードのための距離テーブル若しくは方向テーブルを通知するテーブルフィールドを含む、
方法。
【0219】
2.前記開始点は、基本マージ候補リストへのインデックスによって示され、
最終的な動き情報は、前記運動方向及び前記運動の大きさによって表される前記動きベクトル差分に依存する、
箇条1に記載の方法。
【0220】
3.前記1つ以上のフィールドは、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、又はビデオパラメータセットレベルで含まれる、
箇条1に記載の方法。
【0221】
4.前記基本アフィンマージ候補リストのサイズは、1、2、又は3にセットされる、
箇条1に記載の方法。
【0222】
5.前記1つ以上のフィールドは、サブブロックマージモードのための候補リストのサイズを示す値を有するサブブロックマージリストサイズフィールドを更に含む、
箇条1に記載の方法。
【0223】
6.前記アフィンUMVEモードのための前記基本アフィンマージ候補リストのサイズは、前記サブブロックマージモードのための前記候補リストのサイズ以下である、
箇条5に記載の方法。
【0224】
7.前記リストサイズフィールドは、前記コーディングされた表現から省かれる、
箇条5に記載の方法。
【0225】
8.前記アフィンUMVEモードのための前記基本アフィンマージ候補リストのサイズは、前記サブブロックマージモードのための前記候補リストのサイズに等しい、
箇条7に記載の方法。
【0226】
9.前記アフィンUMVEモードは、前記UMVEモードに基づき変更されたアフィンマージモードに対応する、
箇条1に記載の方法。
【0227】
10.前記テーブルフィールドは、前記距離テーブルのサイズK1又は前記方向テーブルのサイズK2を通知する、
箇条1に記載の方法。
【0228】
11.前記距離テーブルの最初のK1個の要素又は前記方向テーブルの最初のK2個の要素が有効である、
箇条10に記載の方法。
【0229】
12.前記距離テーブルの最後のK1個の要素又は前記距離テーブルの最後のK2個の要素が有効である、
箇条10に記載の方法。
【0230】
13.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至12のうちいずれかに記載の方法。
【0231】
14.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至12のうちいずれかに記載の方法。
【0232】
15.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至14のうちいずれか1つに記載の方法を実施させる、
装置。
【0233】
16.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至14のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0234】
第4の箇条書きは、例えば、項目8、10、11、12、13、14、15、及び16を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0235】
1.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のためにultimate motion vector expression(UMVE)コーディングツールでの複数の動きベクトル差分を通知すると決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記UMVEコーディングツールを用いて、前記現在のビデオブロックについての開始点並びにN個の運動の大きさ及びN個の運動方向によって表されるN個の動きベクトル差分を含む動きベクトル表示が、前記変換中に使用され、
Nは、2以上の整数である、
方法。
【0236】
2.Nは2であり、2つの動きベクトル差分は、双方向予測での2つの予測方向に対応する、
箇条1に記載の方法。
【0237】
3.前記UMVEコーディングツールで使用されるMVDの数が通知される、
箇条2に記載の方法。
【0238】
4.前記UMVEコーディングツールで使用されるMVDの数が導出される、
箇条2に記載の方法。
【0239】
5.1つのMVDが、予測方向ごとにエンコーディングされ、
第1方向の第1MVDは、第2方向の第2MVDを予測するために使用される、
箇条1に記載の方法。
【0240】
6.第1予測方向のためのMVDは、他のMVDよりも先に通知される、
箇条5に記載の方法。
【0241】
7.第2予測方向のためのMVDは、他のMVDよりも先に通知される、
箇条6に記載の方法。
【0242】
8.N個の動きベクトル差分を通知する順序が通知される、
箇条1に記載の方法。
【0243】
9.基本候補インデックス、距離インデックス、又は方向インデックスの少なくとも1つが、予測方向ごとに通知される、
箇条1に記載の方法。
【0244】
10.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、現在ピクチャ参照(CPR)コーディングツール及びultimate motion vector expression(UMVE)コーディングツールを使用する前記現在のビデオブロックにより、前記変換にルールが適用可能であることを決定するステップと、
前記ルールに従って前記変換を実行するステップと
を有し、
前記ルールは、前記変換のための1つ以上のコーディング距離の使用を認めず、
前記CPRコーディングツールは、参照ピクチャとして現在のピクチャを使用し、
前記UMVEコーディングツールは、前記現在のビデオブロックについての開始点、運動の大きさ、及び運動方向を含む動きベクトル表示を使用する、
方法。
【0245】
11.前記ルールは、1/2ピクセル分解能又は1/4ピクセル分解能を含む分数ピクセル精度による距離が認められないことを規定する、
箇条10に記載の方法。
【0246】
12.前記ルールは、CPRモードでの有効探索範囲の外にある距離が認められないことを規定する、
箇条10に記載の方法。
【0247】
13.特定の距離は有効距離で置換される、
箇条10に記載の方法。
【0248】
14.距離インデックスとピクセル距離との間のマッピングの種々のセットが、CPRモード及び非CPRモードのために定義される、
箇条10に記載の方法。
【0249】
15.予め定義されたデルタ動きベクトルが前記UMVEコーディングツールの開始点に加えられる、
箇条14に記載の方法。
【0250】
16.前記予め定義されたデルタ動きベクトルは、ブロックサイズ、参照インデックス、又は色成分の少なくとも1つに依存する、
箇条15に記載の方法。
【0251】
17.前記予め定義されたデルタ動きベクトルは、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、ビデオパラメータセットレベル、又はコーディングユニットレベルで通知される、
箇条15に記載の方法。
【0252】
18.前記UMVEコーディングツールが前記CPRコーディングツールとともに使用される場合に片予測が常に適用される、
箇条10に記載の方法。
【0253】
19.ただ1つのMVDが使用又は通知される、
箇条18に記載の方法。
【0254】
20.基本マージ候補は、現在のピクチャである少なくとも1つの参照ピクチャを有し、特定の距離インデックスは認められない、
箇条10に記載の方法。
【0255】
21.前記UMVEコーディングツールは、マージ候補又はAMVP候補が、現在のピクチャである少なくとも1つの参照ピクチャを有する場合に、適用される、
箇条10に記載の方法。
【0256】
22.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換中に、前記現在のビデオブロックが、該現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、前記現在のビデオブロックのための動きベクトル差分(MVD)値の精緻化を実行すると決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有する方法。
【0257】
23.前記精緻化は、前記現在のビデオブロックについてのデコーディングされた距離インデックス及び/又はデコーディングされた方向インデックスを用いて実行される
箇条22に記載の方法。
【0258】
24.前記精緻化の動作は、前記現在のビデオブロックのためのマージ候補リスト内の1つ以上のマージ候補に関連した動き情報に基づく、
箇条22に記載の方法。
【0259】
25.選択された基本候補に、デコーディングされたMVDをプラスしたものは、他のマージ候補と同じであり、前記デコーディングされたMVDは更に精緻化される、
箇条18に記載の方法。
【0260】
26.デコーディングされたMVDは、選択された基本候補に、前記デコーディングされたMVDをプラスしたものが、ルールに基づき、他のマージ候補に類似すると決定される場合に、更に精緻化される、
箇条18に記載の方法。
【0261】
27.前記ルールは、MV1及びMV2の2つの動きベクトルが、|MV1x-MV2x|+|MV1y-MV2y|<Tである場合に類似している、と決定し、
MV1x及びMV2xは、MV1及びMV2の水平成分であり、
MV1y及びMV2yは、MV1及びMV2の垂直成分である、
箇条20に記載の方法。
【0262】
28.前記ルールは、2つの候補が、該2つ候補が同じ参照インデックスを共有し、かつ、同じ参照ピクチャを参照する2つの動きベクトルが類似する場合に、類似している、と決定する、
箇条26に記載の方法。
【0263】
29.前記デコーディングされた距離インデックス及び前記デコーディングされた方向インデックスは、前記現在のビデオブロックから次のビデオブロックへ変換する、
箇条24に記載の方法。
【0264】
30.双方向オプティカルフロー(BIO)は、前記UMVEコーディングツールによりコーディングされた前記現在のビデオブロックでは認められない、
箇条22に記載の方法。
【0265】
31.デコーダ側動きベクトル精緻化(DMVR)は、前記UMVEコーディングツールによりコーディングされた前記現在のビデオブロックでは認められない、
箇条22に記載の方法。
【0266】
32.前記UMVEコーディングツールは、コーディング基本候補インデックスと、前記現在のビデオブロックのためのマージ候補リスト内の候補インデックスとの間のマッピングを有し、該マッピングは、異なるビデオシーケンスの異なるビデオブロック、異なるタイル、又は異なるピクチャにわたって変更される、
箇条1乃至31のうちいずれかに記載の方法。
【0267】
33.0に等しい第1のコーディングされた基本候補インデックスは、前記マージ候補リスト内の第1マージ候補に常に対応する、
箇条32に記載の方法。
【0268】
34.Kに等しいK番目のコーディングされた基本候補インデックスは、前記マージ候補リスト内の(K+1)番目のマージ候補リストに対応せず、
Kは、0よりも大きい整数である、
箇条33に記載の方法。
【0269】
35.1に等しい第2のコーディングされた基本候補インデックスは、前記マージ候補リスト内のマージ候補を示し、該マージ候補は、前記第1のコーディングされた基本候補インデックスが指し示す前記第1マージ候補に類似していない、
箇条33に記載の方法。
【0270】
36.前記マッピング又は前記マージ候補リストからの基本マージ候補の選択は、前記マージ候補リスト内の第1マージ候補に依存する、
箇条32に記載の方法。
【0271】
37.特定のマージ候補は、前記現在のビデオブロックのための基本マージ候補として認められない、
箇条32に記載の方法。
【0272】
38.前記特定のマージ候補は、次の:
i)組み合わされた双予測マージ候補、ペアワイズマージ候補、ゼロ動きベクトルマージ候補を含む仮想マージ候補、
ii)時間マージ候補、
iii)HMVP候補、又は
iv)三角予測モード、サブブロックモード、アフィンモード、ATMVP若しくはSTMVPを含む特定のモードから導出されたマージ候補
の少なくとも1つを含む、
箇条37に記載の方法。
【0273】
39.前記UMVEコーディングツールによって使用される少なくとも1つの基本マージ候補は、前記マージ候補リストからではない、
箇条32に記載の方法。
【0274】
40.前記マージ候補リスト内の第1マージ候補は、非現在ピクチャ参照候補である第1候補に制限される、
箇条32に記載の方法。
【0275】
41.前記マージ候補リスト内の基本マージ候補、前記マージ候補は、閾値だけ互いに異なる、
箇条32に記載の方法。
【0276】
42.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、前記現在のビデオブロックが、該現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、複数のUMVEパラメータセットから第1UMVEパラメータセットを使用すると決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記複数のUMVEパラメータセットの中の少なくとも1つの指示は、前記現在のビデオブロックのために通知又は予め定義される、
方法。
【0277】
43.前記指示は、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、ビデオパラメータセットレベル、又はコーディングユニットレベルで通知又は予め定義される、
箇条42に記載の方法。
【0278】
44.前記コーディングされた表現は、前記複数のUMVEパラメータセットの夫々を有する、
箇条42に記載の方法。
【0279】
45.前記コーディングされた表現は、ひと組の距離テーブル及び/又は方向テーブルを含む、
箇条42に記載の方法。
【0280】
46.前記コーディングされた表現は、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、又はビデオパラメータセットレベルで、利用可能な距離値をどのようにシフトすべきかの指示を含む、
箇条45に記載の方法。
【0281】
47.前記指示は、前記通知された距離テーブルを使用すべきかどうか、整数Mだけ距離値を左シフトすべきかどうか、又は整数Nだけ距離値を右シフトすべきかどうかを示す、
箇条46に記載の方法。
【0282】
48.前記UMVEコーディングツールのためのパラメータは、前記現在のビデオブロックのサイズに基づき選択される、
箇条42に記載の方法。
【0283】
49.前記サイズは、
i)前記現在のビデオブロックの幅、
ii)前記現在のビデオブロックの高さ、又は
iii)前記現在のビデオブロックのピクセル位置の総数
の少なくとも1つに対応する、
箇条48に記載の方法。
【0284】
50.前記第1UMVEパラメータセットは、前記現在のビデオブロックのコーディングモードに基づき選択される、
箇条42に記載の方法。
【0285】
51.前記第1UMVEパラメータセットは、前記現在のビデオブロックを有する現在のピクチャ又は現在のシーケンスの分解能に基づき選択される、
箇条42に記載の方法。
【0286】
52.前記第1UMVEパラメータセットは、選択された基本マージ候補に基づき選択される、
箇条42に記載の方法。
【0287】
53.前記第1UMVEパラメータセットは、動きベクトルの大きさ又は符号値の少なくとも1つに基づき選択される、
箇条52に記載の方法。
【0288】
54.前記第1UMVEパラメータセットは、参照ピクチャ、前記選択された基本マージ候補の参照ピクチャのPOC値に基づき選択される、
箇条52に記載の方法。
【0289】
55.前記第1UMVEパラメータセットは、前記選択された基本マージ候補の動きベクトルが整数位置又はサブ位置を指し示すかどうかに基づき選択される、
箇条52に記載の方法。
【0290】
56.前記第1UMVEパラメータセットは、前記選択された基本マージ候補によって表されるマージ候補のカテゴリに基づき選択され、該カテゴリは、空間、時間、又はHMVP(履歴ベースMVP)の1つである、
箇条52に記載の方法。
【0291】
57.前記第1UMVEパラメータセットは、前記選択された基本マージ候補によって表されるマージ候補が導出される位置に基づき選択される、
箇条52に記載の方法。
【0292】
58.前記第1UMVEパラメータセットは、前記選択された基本マージ候補によって表されるマージ候補のインデックスに基づき選択される、
箇条52に記載の方法。
【0293】
59.前記複数のUMVEパラメータセットの夫々は、所定の動きベクトル精度と関連付けられる、
箇条42に記載の方法。
【0294】
60.前記複数のUMVEパラメータセットの数は、いくつの動きベクトル精度が1つのシーケンス、ビュー、ピクチャ、スライス、タイル、又はビデオデータ処理ユニットのために認められるかに依存する、
箇条59に記載の方法。
【0295】
61.前記現在のビデオブロックから導出された基本マージ候補について、関連するAMVR(Adaptive Motion Vector Resolution)インデックスは、前記第1UMVEパラメータセットを決定するよう継承される、
箇条59に記載の方法。
【0296】
62.ビデオ処理の方法であって、
ビデオの現在のビデオブロックが、該現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを使用するとの決定があると、前記現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のためのUMVEパラメータセットを選択するステップを有し、
前記選択されたUMVEパラメータセットは、異なるビデオブロック、異なる参照ピクチャリスト、異なる参照ピクチャ、異なるタイル、異なるスライス、異なるピクチャ、又は異なる時間レイヤにわたって変更される、
方法。
【0297】
63.前記UMVEパラメータセットの選択は、基本動きベクトルの水平成分又は垂直成分に依存する、
箇条62に記載の方法。
【0298】
64.各UMVEパラメータセット又は前記選択されたUMVEパラメータセットは、距離テーブル、方向テーブル、又はUMVEコーディングツールの他の表現の少なくとも1つを含む、
箇条42乃至63のうちいずれかに記載の方法。
【0299】
65.ビデオ処理の方法であって、
ビデオの現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を表すultimate motion vector expression(UMVE)コーディングツールを用いて、前記現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップを有し、
適応動きベクトル分解能(AMVR)スキームが、前記UMVEコーディングツールによって使用される距離テーブルを通知するために使用される、
方法。
【0300】
66.AMVR精度セットで定義されているMV精度をスケーリングすべきかどうかの指示が、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、ビデオパラメータセットレベル、又はコーディングユニットレベルで通知される、
箇条65に記載の方法。
【0301】
67.複数組のAMVR精度が定義又は通知される、
箇条65に記載の方法。
【0302】
68.セットインデックスの指示が、前記現在のビデオブロック又は前のビデオブロックのコーディング情報を用いて通知又は導出される、
箇条65に記載の方法。
【0303】
69.認められたAMVR精度セットは、異なるビデオユニット間で変更される、
箇条65に記載の方法。
【0304】
70.通知されたMV精度インデックスと使用される実際のMV精度との間のマッピングは、異なるビデオユニット間で変更される、
箇条65に記載の方法。
【0305】
71.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至70のうちいずれかに記載の方法。
【0306】
72.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至70のうちいずれかに記載の方法。
【0307】
73.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至72のうちいずれか1つに記載の方法を実施させる、
装置。
【0308】
74.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至72のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0309】
第5の箇条書きは、例えば、項目18~25を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0310】
1.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、前記現在のビデオブロックの予測が、2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところの、一般化された双予測(GBi)コーディングツールの動作のモードを決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記コーディングされた表現におけるフィールドは、前記動作のモードに対応し、
前記フィールドの値は、前記GBiコーディングツールが前記現在のビデオブロックのために有効又は無効にされるかどうかを示す、
方法。
【0311】
2.前記フィールドは、前記GBiコーディングツールがスライスレベル、タイルレベル、又はピクチャレベルで有効又は無効のどちらをされることを示す、
箇条1に記載の方法。
【0312】
3.前記フィールドは、スライスヘッダ、タイルヘッダ、又はピクチャパラメータセットに含まれる、
箇条1に記載の方法。
【0313】
4.前記現在のビデオブロックのピクチャが、閾値よりも大きい値を有する時間レイヤに対応する場合に、前記フィールドは、前記GBiコーディングツールが前記現在のビデオブロックについて無効にされることを示す、
箇条1乃至3のうちいずれかに記載の方法。
【0314】
5.前記閾値は3である、
箇条4に記載の方法。
【0315】
6.前記GBiコーディングツールは、第1ピクチャとは異なる第2ピクチャによって参照されない前記第1ピクチャにおいて、前記現在のビデオブロックについて無効にされる、
箇条1乃至5のうちいずれかに記載の方法。
【0316】
7.前記GBiコーディングツールは、閾値よりも大きい量子化パラメータを使用する前記現在のビデオブロックについて無効にされる、
箇条1に記載の方法。
【0317】
8.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、前記現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、
前記ルールは、前記GBiコーディングツールによって使用される重み付け係数セットが、
i)前記現在のビデオブロックを含むピクチャの時間レイヤ、
ii)前記ピクチャのピクチャ量子化パラメータ、又は
iii)前記現在のビデオブロックの量子化パラメータ
に基づくことを規定する、
方法。
【0318】
9.前記ルールは、より高い時間レイヤのビデオピクチャで、より少ない重み付け係数を使用することを規定する、
箇条8に記載の方法。
【0319】
10.前記ルールは、より高い量子化パラメータ値について、より少ない重み付け係数を使用することを規定する、
箇条8に記載の方法。
【0320】
11.前記コーディングされた表現は、前記GBiコーディングツールによる使用のための少なくとも1つの追加の重み付け係数セットを更に含む、
箇条8に記載の方法。
【0321】
12.前記追加の重み付け係数セットは、スライスヘッダレベル、タイルグループヘッダレベル、タイルヘッダレベル、ピクチャヘッダレベル、ピクチャパラメータセットレベル、シーケンスパラメータセットレベル、又はビデオパラメータセットレベルで示される、
箇条11に記載の方法。
【0322】
13.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換のために、片予測モードについて1に等しくない重みを使用すると決定するステップと、
前記決定に基づき前記変換を実行するステップと
を有し、
前記現在のビデオブロックの予測は、前記重みによってスケーリングされた予測子に対応する最終的な予測子を使用し、
重み付け係数セットが、ブロックレベル又はコーディングユニットレベルで選択される、
方法。
【0323】
14.重みインデックスは、AMVP(Advanced Motion Vector Prediction)モード又はアフィンインターモードの少なくとも1つのためにスケーリングされ、
前記重みインデックスは、マージモード、UMVE(Ultimate Motion Vector Expression)モード、アフィンマージモード、又はオフセット付きアフィンマージモードの少なくとも1つで継承され、
前記UMVEモードは、前記現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を有する、
箇条13に記載の方法。
【0324】
15.前記変換の実行は、複数のオフセットセットの中の1つからのオフセットを用いて前記変換中に計算された動き補償ブロックを精緻化することを含む、
箇条1乃至14のうちいずれかに記載の方法。
【0325】
16.オフセットインデックスがブロックレベル又はコーディングユニットレベルで通知される、
箇条15に記載の方法。
【0326】
17.オフセットインデックスが、マージモード、UMVE(Ultimate Motion Vector Expression)モード、アフィンマージモード、又はオフセット付きアフィンマージモードの少なくとも1つで継承され、
前記UMVEモードは、前記現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を有する、
箇条15に記載の方法。
【0327】
18.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、前記現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、
前記ルールは、前記現在のビデオブロックの隣接ピクセルと、前記現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって特定される対応する参照隣接ピクセルとに基づき、前記GBiコーディングツールのための重み付け係数を選択又は導出することを規定する、
方法。
【0328】
19.GBiインデックスのシグナリングは省略される、
箇条18に記載の方法。
【0329】
20.前記コーディングされた表現内のフィールドは、デフォルトの等しい重み付け係数又は選択若しくは導出された重み付け係数を使用すべきかどうかを示す、
箇条18に記載の方法。
【0330】
21.前記現在のビデオブロックのための重み付け係数は、前記現在のビデオブロックの隣接ピクセル及び前記重み付け係数を用いて前記2つの参照リストからの参照隣接ピクセルの平均化の結果の間の最小差分を有するように、予め定義された重み付け係数セットから選択される、
箇条18に記載の方法。
【0331】
22.GBi重み値がS0及びS1によって導出され、S0は、前記現在のビデオブロックの隣接ピクセルの和又は平均を示し、S1は、参照ブロックの隣接ピクセルの和又は平均を示す、
箇条18に記載の方法。
【0332】
23.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、前記現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、
前記ルールは、前記現在のビデオブロックの隣接ピクセルと、前記現在のビデオブロックの動きベクトル又は動きベクトルの整数部分によって特定される対応する参照隣接ピクセルとに基づき、前記GBiコーディングツールのための重み付け係数を並べ直すことを規定する、
方法。
【0333】
24.前記現在のビデオブロックのための重み付け係数は、前記現在のビデオブロックの隣接ピクセル及び前記重み付け係数を用いて前記2つの参照リストからの参照隣接ピクセルの平均化の結果の間の差分に基づいて並べ直される、
箇条23に記載の方法。
【0334】
25.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、前記現在のビデオブロックの予測が2つの参照リストからの予測子の非一様加重和に対応する最終的な予測子を使用するところのGBiコーディングツールのパラメータを制御するルールに基づき実行するステップを有し、
前記ルールは、前記GBiコーディングツールのための重み付け係数を決定するために、前記現在のビデオブロックに関連した局所照度補償(LIC)パラメータを使用することを規定し、
前記LICパラメータは、前記変換中に前記現在のビデオブロックにおける照度変化の線形モデルを使用するよう導出される、
方法。
【0335】
26.前記LICパラメータを導出するためのオフセットはゼロであり、前記重み付け係数のみが前記GBiコーディングツールにおいて使用される、
箇条25に記載の方法。
【0336】
27.前記LICパラメータの重み付け係数及びオフセットは両方とも、GBiコーディングツールにおいて使用される、
箇条25に記載の方法。
【0337】
28.前記ルールは、前記現在のビデオブロックがマージモード、UMVEモード、アフィンマージモード、又はオフセット付きアフィンマージモードの少なくとも1つも使用する場合に、前記現在のビデオブロックのためのGBiインデックスを隣接ビデオブロックのそれから継承することを規定し、
前記UMVEモードは、前記現在のビデオブロックについての開始点、運動の大きさ及び運動方向を含む動きベクトル表示を有する、
箇条25に記載の方法。
【0338】
29.前記ルールは、継承された隣接重み付け係数が前記LICパラメータと同じである場合に、前記現在のビデオブロックの前記変換のために追加のLICパラメータを導出することを規定する、
箇条25に記載の方法。
【0339】
30.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至29のうちいずれかに記載の方法。
【0340】
31.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至29のうちいずれかに記載の方法。
【0341】
32.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至31のうちいずれか1つに記載の方法を実施させる、
装置。
【0342】
33.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至31のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0343】
第6の箇条書きは、例えば、項目5、6、及び7を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0344】
1.ビデオ処理の方法であって、
ビデオの1つ以上のビデオブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップを有し、
前記コーディングされた表現における第1フィールドは、分数サンプル精度が、前記変換中に使用される動きベクトル差分によるマージ(MMVD)モードで運動距離を示すために使用されるかどうかを示し、
前記MMVDモードは、現在のビデオブロックについての開始点、運動距離及び運動方向を含む動きベクトル表示を有する、
方法。
【0345】
2.前記第1フィールドはフラグである、
箇条1に記載の方法。
【0346】
3.前記フラグは、スライス、タイルグループ、タイル、ピクチャ、シーケンス、ビデオ、又はコーディングユニットレベルで通知される、
箇条2に記載の方法。
【0347】
4.前記フラグは、スライスヘッダ、タイルグループヘッダ、タイルヘッダ、ピクチャヘッダ、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、又はコーディングユニットで通知される、
箇条3に記載の方法。
【0348】
5.前記フラグは、MMVDイネーブルフィールドが、前記MMVDモードが有効にされることを示す場合に、通知される、
箇条2に記載の方法。
【0349】
6.前記変換を実行するステップは、前記ビデオの現在のビデオブロックに関連した運動距離に基づき、前記MMVDモードを用いて前記現在のビデオブロックと前記ビデオの前記コーディングされた表現との間の変換を実行することを含む、
箇条1に記載の方法。
【0350】
7.前記フラグは、前記分数サンプル精度が使用されないことを示し、
前記変換は、該変換のための整数サンプル精度を使用する、
箇条2に記載の方法。
【0351】
8.前記現在のビデオブロックに関連した前記運動距離は、運動距離インデックスによって表され、
前記変換は、前記運動距離インデックスをエンコーディングするよう該運動距離インデックスのトランケーテッド・ユーナリー(truncated unary)を使用することを含み、
認められた運動距離インデックスの最大値は、認められた整数運動距離の数に依存し、
前記第1フィールドのフラグは、分数サンプル精度が使用されないことを示す、
箇条6に記載の方法。
【0352】
9.前記現在のビデオブロックに関連した前記運動距離は、運動距離インデックスによって表され、
前記変換は、前記運動距離インデックスをデコーディングするよう該運動距離インデックスのトランケーテッド・ユーナリー(truncated unary)を使用することを含み、
認められた運動距離インデックスの最大値は、認められた整数運動距離の数に依存し、
前記第1フィールドのフラグは、分数サンプル精度が使用されないことを示す、
箇条6に記載の方法。
【0353】
10.デフォルト運動距離テーブル内の複数の要素の夫々は、整数サンプル精度について整数運動距離を生成するための係数を乗じられる、
箇条1乃至6のうちいずれか1つに記載の方法。
【0354】
11.分数サンプル精度が使用されないことを示す前記第1フィールドとともにビデオユニットに含まれる第1ビデオブロックについて、及び分数サンプル精度が使用されることを示す前記第1フィールドとともにビデオユニットに含まれる第2ビデオブロックについて、同じ運動距離インデックスが前記第1ビデオブロック及び前記第2ビデオブロックのために使用される場合に、前記第1ビデオブロックのための対応する運動距離は、前記第2ビデオブロックの運動距離に係数を乗じることによって生成される、
箇条1乃至6のうちいずれか1つに記載の方法。
【0355】
12.前記係数は4である、
箇条10に記載の方法。
【0356】
13.前記第1フィールドは、スライスヘッダ、タイルグループヘッダ、タイルヘッダ、ピクチャヘッダ、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、又はコーディングユニットで予測オフセットとともにアフィンマージモードのために通知される、
箇条1に記載の方法。
【0357】
14.前記第1フィールドは、使用されている動きベクトル差分(MVD)とともにアフィンマージモードの利用に基づき通知される、
箇条1に記載の方法。
【0358】
15.前記第1フィールドは、第1フラグ及び第2フラグを有し、前記第1フラグは、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、又はビデオパラメータセット(VPS)で通知され、前記第2フラグが前記PPS、スライスヘッダ、タイルグループヘッダ、又はタイルヘッダで通知されることを示す、
箇条1に記載の方法。
【0359】
16.前記第1フラグは偽(false)を示し、分数運動距離は有効にされ、前記第2フラグは通知されない、
箇条15に記載の方法。
【0360】
17.前記第1フラグは真(true)を示し、分数運動距離は有効にされ、前記第2フラグは通知されない、
箇条15に記載の方法。
【0361】
18.前記第1フラグは真を示し、分数運動距離は無効にされ、前記第2フラグは通知される、
箇条15に記載の方法。
【0362】
19.前記第1フラグは偽を示し、分数運動距離は無効にされ、前記第2フラグは通知される、
箇条15に記載の方法。
【0363】
20.前記第2フラグは真を示し、分数運動距離は、ピクチャ、スライス、タイルグループ、又はタイルについて有効にされる、
箇条18又は19に記載の方法。
【0364】
21.前記第2フラグは偽を示し、分数運動距離は、ピクチャ、スライス、タイルグループ、又はタイルについて有効にされる、
箇条18又は19に記載の方法。
【0365】
22.前記第2フラグは真を示し、分数運動距離は、ピクチャ、スライス、タイルグループ、又はタイルについて無効にされる、
箇条18又は19に記載の方法。
【0366】
23.前記第2フラグは偽を示し、分数運動距離は、ピクチャ、スライス、タイルグループ、又はタイルについて無効にされる、
箇条18又は19に記載の方法。
【0367】
24.前記変換は、前記第1フィールドが、分数運動距離が使用されないことを示すことに基づいて、整数運動距離又は整数精度よりも低い精度による運動距離の一方又は両方を使用する、
箇条1に記載の方法。
【0368】
25.前記第1フィールドは、動きベクトル差分によるマージ(MMVD)モード又は運動ベクトル差分(MVD)オフセットによるアフィンマージモードの一方又は両方によって共有される、
箇条1に記載の方法。
【0369】
26.前記第1フィールドは、動きベクトル差分によるマージ(MMVD)モード及び運動ベクトル差分(MVD)オフセットによるアフィンマージモードの利用を別々に通知する、
箇条1に記載の方法。
【0370】
27.ビデオ処理の方法であって、
ビデオの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を実行するステップを有し、
前記コーディングされた表現は、分数動きベクトル(MV)又は動きベクトル差分(MVD)精度が、前記変換中に使用されるアドバンスド動きベクトル予測(AMVP)モード又はアフィンインターモードについて認められるかどうかを示すフラグを有する、
方法。
【0371】
28.前記フラグは、スライスヘッダ、タイルグループヘッダ、ピクチャヘッダ、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、又はビデオパラメータセット(VPS)で通知される、
箇条27に記載の方法。
【0372】
29.前記フラグは、適応動きベクトル分解能(AMVR)の利用が認められていることに基づき通知される、
箇条27に記載の方法。
【0373】
30.前記フラグは、アフィンインターモードのための適応動きベクトル分解能(AMVR)の利用が認められていることに基づき通知される、
箇条27に記載の方法。
【0374】
31.前記フラグは、第1フラグ及び第2フラグを有し、前記第1フラグは、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、又はビデオパラメータセット(VPS)で通知され、前記第2フラグが前記PPS、スライスヘッダ、タイルグループヘッダ、又はタイルヘッダで通知されることを示す、
箇条27に記載の方法。
【0375】
32.前記第1フラグは偽であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は有効にされ、前記第2フラグは通知されない、
箇条31に記載の方法。
【0376】
33.前記第1フラグは真であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は有効にされ、前記第2フラグは通知されない、
箇条31に記載の方法。
【0377】
34.前記第1フラグは真であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は無効化可能であり、前記第2フラグは通知される、
箇条31に記載の方法。
【0378】
35.前記第1フラグは偽であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は無効化可能であり、前記第2フラグは通知される、
箇条31に記載の方法。
【0379】
36.前記第2フラグは真であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は、ピクチャ、スライス、タイルグループ、又はタイルについて有効にされる、
箇条31に記載の方法。
【0380】
37.前記第2フラグは偽であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は、ピクチャ、スライス、タイルグループ、又はタイルについて有効にされる、
箇条31に記載の方法。
【0381】
38.前記第2フラグは真であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は、ピクチャ、スライス、タイルグループ、又はタイルについて無効にされる、
箇条31に記載の方法。
【0382】
39.前記第2フラグは偽であり、分数動きベクトル(MV)又は動きベクトル差分(MVD)は、ピクチャ、スライス、タイルグループ、又はタイルについて無効にされる、
箇条31に記載の方法。
【0383】
40.分数動きベクトル(MV)又は動きベクトル差分(MVD)は認められず、インター予測MV又はMVDは認められる、
箇条27に記載の方法。
【0384】
41.分数動きベクトル(MV)又は動きベクトル差分(MVD)は認められず、MV又はMVDのための整数精度又は整数精度よりも低い精度の一方又は両方は認められる、
箇条27に記載の方法。
【0385】
42.前記変換は、MV又はMVD精度の数に基づき適応動きベクトル分解能(AMVR)インデックスをエンコーディングするようトランケーテッド・ユーナリー符号を使用することを含み、
前記フラグは、分数MV又はMVDが認められないことを示す、
箇条27に記載の方法。
【0386】
43.前記フラグは、適応動きベクトル分解能(AMVR)モード及びアフィンインターモードのためのAMVRについて別々に通知される、
箇条27に記載の方法。
【0387】
44.前記フラグは、適応動きベクトル分解能(AMVR)モード及びアフィンインターモードのためのAMVRの両方について通知及び共有される、
箇条27に記載の方法。
【0388】
45.前記フラグは、適応動きベクトル分解能(AMVR)モード、アフィンインターモードのためのAMVR、ultimate motion vector expression(UMVE)モード、又はMVDオフセットによるアフィンマージモードのうちの2つ以上について通知及び共有される、
箇条27に記載の方法。
【0389】
46.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至45のうちいずれかに記載の方法。
【0390】
47.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至45のうちいずれかに記載の方法。
【0391】
48.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至47のうちいずれか1つに記載の方法を実施させる、
装置。
【0392】
49.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至47のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0393】
第7の箇条書きは、例えば、項目17を含む、前のセクションでリストアップされていた開示技術の特定の特徴及び様態を記載する。
【0394】
1.ビデオ処理の方法であって、
ビデオの現在のピクチャの現在のビデオブロックと前記ビデオのコーディングされた表現との間の変換を、前記コーディングされた表現のフォーマットを規定するルールに従って実行するステップを有し、
前記ルールは、コーディングモードのためのシンタックス要素が、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得されるかどうかに基づき、前記コーディングされた表現に含まれることを規定する、
方法。
【0395】
2.アフィンモードのための前記シンタックス要素は、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得される場合に、前記コーディングされた表現に含まれない、
箇条1に記載の方法。
【0396】
3.サブブロックベースのマージモードのための前記シンタックス要素は、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得される場合に、前記コーディングされた表現に含まれない、
箇条1に記載の方法。
【0397】
4.多重仮説(multi-hypothesis)イントラ及びインター予測モードのための前記シンタックス要素は、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得される場合に、前記コーディングされた表現に含まれない、
箇条1に記載の方法。
【0398】
5.三角予測モードのための前記シンタックス要素は、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得される場合に、前記コーディングされた表現に含まれない、
箇条1に記載の方法。
【0399】
6.動きベクトル差分によるマージ(MMVD)モードのための前記シンタックス要素は、前記現在のビデオブロックの前記変換のために使用される全ての参照ブロックが前記現在のピクチャのサンプルから取得される場合に、前記コーディングされた表現に含まれず、
前記MMVDモードは、前記現在のビデオブロックについての開始点、運動距離、又は運動方向の少なくとも1つを含む動きベクトル表示を有する、
箇条1に記載の方法。
【0400】
7.前記コーディングモードは、アフィンモード、サブブロックベースのマージモード、多重仮説イントラ若しくはインター予測モード、三角予測モード、又はMMVDモードであり、
前記MMVDモードは、前記現在のビデオブロックについての開始点、運動距離、又は運動方向の少なくとも1つを含む動きベクトル表示を有する、
箇条1に記載の方法。
【0401】
8.前記変換の実行は、前記現在のビデオブロックから、前記コーディングされた表現を生成することを含む、
箇条1乃至7のうちいずれかに記載の方法。
【0402】
9.前記変換の実行は、前記コーディングされた表現から、前記現在のビデオブロックを生成することを含む、
箇条1乃至7のうちいずれかに記載の方法。
【0403】
10.プロセッサと、命令を記憶している非一時的なメモリとを有するビデオシステム内の装置であって、
前記命令は、前記プロセッサによる実行時に、該プロセッサに、箇条1乃至9のうちいずれか1つに記載の方法を実施させる、
装置。
【0404】
11.非一時的なコンピュータ可読媒体に記憶されるコンピュータプログラム製品であって、
箇条1乃至9のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0405】
本明細書で説明されている開示の及び他の解決法、例、実施形態、モジュール及び機能動作は、デジタル電子回路において、あるいは、本明細書で開示されている構造及びそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、若しくはハードウェアにおいて、あるいは、それらの1つ以上の組み合わせにおいて実装可能である。開示の及び他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のために又はその動作を制御するためにコンピュータ可読媒体上でエンコーディングされたコンピュータプログラム命令の1つ以上のモジュール、として実装可能である。コンピュータ可読媒体は、機械読み出し可能な記憶デバイス、機械読み出し可能な記憶担体、メモリデバイス、機械読み出し可能な伝搬信号をもたらす組成物、又はそれらの1つ以上の組み合わせであることができる。「データ処理装置」との用語は、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含め、データを処理する全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらの1つ以上の組み合わせを構成するコード、を含むことができる。伝搬信号は、人工的に生成された信号、例えば、機械により生成された電気的、光学的、又は電磁気的信号であって、適切なレシーバ装置への伝送のために情報を符号化するよう生成される。
【0406】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる。)は、コンパイル済み又は解釈済みの言語を含む如何なる形式のプログラミング言語でも記述可能であり、それは、スタンドアロンプログラムとして又はコンピューティング環境における使用に適したモジュール、コンポーネント、サブルーチン、若しくは他のユニットとしてを含め、如何なる形式でもデプロイ可能である。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、問題となっているプログラムに専用の単一のファイルで、又は複数の協調したファイル(例えば、1つ以上のモジュール、サブプログラム、又はコードの部分を保存するファイル)で、他のプログラム又はデータ(例えば、マークアップ言語文書で保存された1つ以上のスクリプト)を保持するファイルの部分において保存可能である。コンピュータプログラムは、1つのコンピュータで、あるいは、1つの場所に位置しているか、又は複数の場所にわたって分布しており、通信ネットワークによって相互接続されている複数のコンピュータで実行されるようデプロイ可能である。
【0407】
本明細書で説明されているプロセス及びロジックフローは、入力データに作用して出力を生成することによって機能を実行するよう1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行可能である。プロセス及びロジックフローはまた、専用のロジック回路、例えば、FPGA(Field Programmable Gate Array)又はASIC(Application-Specific Integrated Circuit)によっても実行可能であり、装置は、そのようなものとしても実装可能である。
【0408】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用のマイクロプロセッサ及び専用のマイクロプロセッサの両方、並びにあらゆる種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般に、プロセッサは、リード・オンリー・メモリ若しくはランダム・アクセス・メモリ又はその両方から命令及びデータを受け取ることになる。コンピュータの必須の要素は、命令を実行するプロセッサと、命令及びデータを保存する1つ以上のメモリデバイスとである。一般に、コンピュータはまた、データを保存する1つ以上の大容量記憶デバイス、例えば、磁気、光学磁気ディスク、又は光ディスクを含むか、あるいは、そのような1つ以上の大容量記憶デバイスからのデータの受信若しくはそれへのデータの転送又はその両方のために動作可能に結合されることになる。しかし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを保存するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス;磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスク;光学磁気ディスク;並びにCDROM及びDVD-ROMディスクを含む全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用のロジック回路によって強化されるか、あるいは、それに組み込まれ得る。
【0409】
本明細書は、多数の詳細を含むが、それらは、あらゆる対象の又は請求される可能性があるものの範囲に対する限定としてではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態に関連して本明細書で説明されている特定の特徴は、単一の実施形態と組み合わせても実装可能である。逆に、単一の実施形態に関連して説明されている様々な特徴はまた、複数の実施形態で別々に、又は何らかの適切なサブコンビネーションで実装可能である。更に、特徴は、特定の組み合わせで動作するものとして先に説明され、そのようなものとして最初に請求されることさえあるが、請求されている組み合わせからの1つ以上の特徴は、いくつかの場合に、その組み合わせから削除可能であり、請求されている組み合わせは、サブコンビネーション又はサブコンビネーションの変形に向けられてもよい。
【0410】
同様に、動作は、特定の順序で図面において表されているが、これは、所望の結果を達成するために、そのような動作が、示されているその特定の順序で、又は順次的な順序で実行されること、あるいは、表されている全ての動作が実行されることを求めている、と理解されるべきではない。更に、本明細書で説明されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態でそのような分離を求めている、と理解されるべきではない。
【0411】
ほんのわずかの実施及び例が説明されており、他の実施、強化及び変形は、本明細書で記載及び例示されているものに基づいて行われ得る。
【0412】
[関連出願の相互参照]
適用可能な特許法、及び/又はパリ条約に従う規則の下で、本願は、2018年12月21日付けで出願された国際特許出願第PCT/CN2018/122626号、2018年12月29日付けで出願された国際特許出願第PCT/CN2018/125417号、及び2019年1月23日付けで出願された国際特許出願第PCT/CN2019/072814号に対する優先権及びその利益を適時請求するようなされる。上記の出願の全体の開示は、本願の開示の部分として参照により援用される。