IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特表2024-508507動きベクトル解像度の適応順序を用いたテンプレートマッチングに基づく適応動きベクトル解像度
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-27
(54)【発明の名称】動きベクトル解像度の適応順序を用いたテンプレートマッチングに基づく適応動きベクトル解像度
(51)【国際特許分類】
   H04N 19/53 20140101AFI20240219BHJP
   H04N 19/109 20140101ALI20240219BHJP
   H04N 19/176 20140101ALI20240219BHJP
【FI】
H04N19/53
H04N19/109
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023552567
(86)(22)【出願日】2022-10-26
(85)【翻訳文提出日】2023-08-30
(86)【国際出願番号】 US2022078719
(87)【国際公開番号】W WO2023114572
(87)【国際公開日】2023-06-22
(31)【優先権主張番号】63/291,180
(32)【優先日】2021-12-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/970,407
(32)【優先日】2022-10-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リェン-フェイ・チェン
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA14
5C159MA21
5C159MC11
5C159ME01
5C159NN10
5C159NN14
5C159NN21
5C159PP04
5C159RC11
5C159TA30
5C159TB08
5C159UA02
5C159UA05
(57)【要約】
本開示の態様は、ビデオデコードのための方法および装置を提供する。この装置は、現在ピクチャ内の現在ブロックの予測情報をデコードする処理回路を含む。予測情報は、適応動きベクトル予測(AMVP)モードが、適応動きベクトル解像度(AMVR)モードで、現在ブロックに適用されることを示す。予測情報は、動き情報を示す。処理回路は、動き情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々について、それぞれの第1の動きベクトル予測子(MVP)を決定する。処理回路は、少なくとも第1の複数のMVRおよび第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)を行う。処理回路は、TMコストに基づいて、第1の複数のMVRの適応順序を生成する。
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、(i)適応動きベクトル予測(AMVP)モードが適応動きベクトル解像度(AMVR)モードとともに前記現在ブロックに適用されていること、および(ii)動き情報を示す、ステップと、
前記動き情報、および前記第1の複数のMVRのうちの前記それぞれの第1のMVRに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々について、それぞれの第1の動きベクトル予測子(MVP)を決定するステップと、
少なくとも前記第1の複数のMVRおよび前記第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)を行うステップと、
前記TMコストに基づいて前記第1の複数のMVRの適応順序を生成するステップと、
前記生成された適応順序に基づいて、シグナリングされたMVRインデックスを適用するステップと、
を含む、ビデオデコードのための方法。
【請求項2】
前記現在ブロックは単予測で予測され、
前記TMコストの各々は、前記第1の複数のMVRのうちのそれぞれの第1のMVRに対応し、
生成する前記ステップは、
前記決定されたTMコストに基づいて、前記第1の複数のMVRを並べ替えるステップ
をさらに含み、
前記方法は、
前記シグナリングされたMVRインデックスによって示される前記並べ替えられた第1の複数のMVRのうちの1つに基づいて、前記現在ブロックを再構成するステップ
を、さらに含む、請求項1に記載の方法。
【請求項3】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1のMVPを決定する前記ステップは、
前記第1の複数のMVRの各々について、前記MVP候補と前記それぞれの第1のMVRとに基づいて、前記それぞれの第1のMVPを決定するステップ
を含み、
前記TMコストを決定する前記ステップは、
前記第1の複数のMVRの各々について、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1の複数のMVRは、1/4画素と1/4画素よりも低い空間解像度を有する1つまたは複数のMVRとを含み、
前記第1のMVPを決定する前記ステップは、
前記MVP候補および1/4画素に基づいて、1/4画素に対応するMVPを決定するステップと、
1/4画素に対応する前記MVPおよび前記それぞれの1つまたは複数のMVRに基づいて、前記第1のMVP中の1つまたは複数の残りのMVPを決定するステップと、
を含み、
前記TMコストを決定する前記ステップは、
前記第1の複数のMVRの各々について、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項2に記載の方法。
【請求項5】
前記動き情報は、MV差分(MVD)情報を含み、
前記第1の複数のMVRの各々について、
前記方法は、
前記MVD情報および前記それぞれの第1のMVRに基づいて、それぞれの第1のMVDを決定するステップと、
前記それぞれの第1のMVDに基づいて、前記それぞれの第1のMVRの第1のMVを決定するステップと、
をさらに含み、
前記TMコストを決定する前記ステップは、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRに対する前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項2に記載の方法。
【請求項6】
前記現在ブロックは双予測で予測され、
前記TMコストの各々は、複数のMVRペアのそれぞれ1つに対応し、各MVRペアは、(i)前記第1の複数のMVRのうちの第1のMVR、および(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRを含み、
前記生成するステップは、
前記決定されたTMコストに基づいて前記複数のMVRペアを並べ替えるステップであって、前記第1の複数のMVRの前記適応順序は、前記並べ替えられた複数のMVRペアに基づいている、ステップ
を含み、
前記方法は、
前記並べ替えられた複数のMVRペアのうちの1つに基づいて、前記現在ブロックを再構成するステップ
を、さらに含む、請求項1に記載の方法。
【請求項7】
前記動き情報は、前記第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補、および前記第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補を示し、
前記方法は、前記第2のMVP候補および前記それぞれの第2のMVRに基づいて、前記第2の参照ピクチャに対応する前記第2の複数のMVRの各々について、第2のMVPを決定するステップを、さらに含み、
前記TMコストを決定する前記ステップは、
前記複数のMVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第2の参照ピクチャ内の第2の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第2のMVRの前記第2のMVPは、前記現在ブロックから前記第2の参照ブロックを指す、ステップと、
前記現在ブロックの現在テンプレート、前記第1の参照ブロックの第1の参照テンプレート、および前記第2の参照ブロックの第2の参照テンプレートに基づいて、前記TMコストを決定するステップと、
を含む、請求項6に記載の方法。
【請求項8】
前記第1のMVPを決定する前記ステップは、
前記第1の複数のMVRの各々について、前記第1のMVP候補および前記それぞれの第1のMVRに基づいて、前記それぞれの第1のMVPを決定するステップ
を含む、請求項7に記載の方法。
【請求項9】
前記第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第1のMVRとを含み、
前記第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第2のMVRとを含み、
前記第1のMVPを決定する前記ステップは、
前記第1のMVP候補および1/4画素に基づいて、1/4画素に対応する第1のMVPを決定するステップと、
前記1/4画素に対応する第1のMVPおよび前記それぞれの1つまたは複数の第1のMVRに基づいて、前記第1のMVP内の1つまたは複数の残りの第1のMVPを決定するステップと、
を含み、
前記第2のMVPを決定する前記ステップは、
前記第2のMVP候補および1/4画素に基づいて、1/4画素に対応する第2のMVPを決定するステップと、
前記1/4画素に対応する第2のMVP、および前記それぞれの1つまたは複数の第2のMVRに基づいて、前記第2のMVP内の1つまたは複数の残りの第2のMVPを決定するステップと、
含む、請求項7に記載の方法。
【請求項10】
前記動き情報は、MV差分(MVD)情報を含み、
前記方法は、
前記第1の複数のMVRの各々について、
前記MVD情報、および前記第1の複数のMVRのうちの前記それぞれの第1のMVRに基づいて、第1のMVDを決定するステップと、
前記第1のMVDに基づいて、前記第1の複数のMVRのうちの前記それぞれの第1のMVRについての第1のMVを決定するステップと、
前記第2の複数のMVRの各々について、
前記MVD情報、および前記第2の複数のMVRのうちの前記それぞれの第2のMVRに基づいて、第2のMVDを決定するステップと、
前記第2のMVDに基づいて、前記第2の複数のMVRのうちの前記それぞれの第2のMVRについての第2のMVを決定するステップと、
をさらに含み、
前記TMコストを決定する前記ステップは、
前記MVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第1のMVRに対する前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと
前記第2の参照ピクチャ内の第2の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第2のMVRに対する前記第2のMVは、前記現在ブロックから前記第2の参照ブロックを指す、ステップと、
前記現在ブロックの現在テンプレート、前記第1の参照ブロックの第1の参照テンプレート、および前記第2の参照ブロックの第2の参照テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項6に記載の方法。
【請求項11】
ビデオデコードのための装置であって、
処理回路であって、
コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードし、前記予測情報は、(i)適応動きベクトル予測(AMVP)モードおよび適応動きベクトル解像度(AMVR)モードが前記現在ブロックに適用されていることと、(ii)動き情報とを示し、
前記動き情報、および前記第1の複数のMVRの中の前記それぞれの第1のMVRに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々について、それぞれの第1の動きベクトル予測子(MVP)を決定し、
少なくとも前記第1の複数のMVRおよび前記第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)を行い、
前記TMコストに基づいて、前記第1の複数のMVRの適応順序を生成し、かつ、
前記生成された適応順序に基づいて、シグナリングされたMVRインデックスを適用する
ように構成されている、処理回路
を含む、ビデオデコードのための装置。
【請求項12】
前記現在ブロックは単予測で予測され、
前記TMコストの各々は、前記第1の複数のMVRのうちのそれぞれの第1のMVRに対応し、
前記処理回路は、
前記決定されたTMコストに基づいて、前記第1の複数のMVRを並べ替え、かつ、
前記シグナルされたMVRインデックスによって示される前記並べ替えられた第1の複数のMVRのうちの1つに基づいて、前記現在ブロックを再構成する
ように構成されている、請求項11に記載の装置。
【請求項13】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1の複数のMVRの各々について、前記処理回路は、
前記MVP候補および前記それぞれの第1のMVRに基づいて、前記それぞれの第1のMVPを決定し、
前記第1の参照ピクチャ内の第1の参照ブロックを決定し、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指し、かつ、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定する
ように構成されている、請求項12に記載の装置。
【請求項14】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数のMVRとを含み、
前記処理回路は、
前記MVP候補および1/4画素に基づいて、1/4画素に対応するMVPを決定し、
1/4画素に対応する前記MVP、および前記それぞれの1つまたは複数のMVRに基づいて、前記第1のMVP内の1つまたは複数の残りのMVPを決定し、
前記第1の複数のMVRの各々について、
前記第1の参照ピクチャ内の第1の参照ブロックを決定し、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指し、かつ、
前記第1の参照ブロックの第1の参照テンプレートおよび前記現在ブロックの現在テンプレートに基づいて、TMコストを決定する
ように構成されている、請求項12に記載の装置。
【請求項15】
前記動き情報は、MV差分(MVD)情報を含み、
前記第1の複数のMVRの各々について、前記処理回路は、
前記MVD情報および前記それぞれの第1のMVRに基づいて、それぞれの第1のMVDを決定し、
前記それぞれの第1のMVDに基づいて、前記それぞれの第1のMVRの第1のMVを決定し、
前記第1の参照ピクチャ内の第1の参照ブロックを決定し、前記それぞれの第1のMVRの前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指し、かつ、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定する
ように構成されている、請求項12に記載の装置。
【請求項16】
前記現在ブロックは双予測で予測され、
前記TMコストの各々は、複数のMVRペアのそれぞれ1つに対応し、各MVRペアは、(i)前記第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、
前記処理回路は、
前記決定されたTMコストに基づいて、前記複数のMVRペアを並べ替え、前記第1の複数のMVRの前記適応順序は、前記並べ替えられた複数のMVRペアに基づき、かつ、
前記並べ替えられた複数のMVRペアのうちの1つに基づいて、前記現在ブロックを再構成する
ように構成されている、請求項11に記載の装置。
【請求項17】
前記動き情報は、前記第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補と、前記第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補とを示し、
前記処理回路は、
前記第2のMVP候補、および前記それぞれの第2のMVRとに基づいて、前記第2の参照ピクチャに対応する前記第2の複数のMVRの各々の第2のMVPを決定し、
前記複数のMVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定し、前記MVRペアのうちの前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指し、
前記第2の参照ピクチャ内の第2の参照ブロックを決定し、前記MVRペアのうちの前記それぞれの第2のMVRの前記第2のMVPは、前記現在ブロックから前記第2の参照ブロックを指し、かつ、
前記現在ブロックの現在テンプレートと、前記第1の参照ブロックの前記第1の参照テンプレートと、前記第2の参照ブロックの第2の参照テンプレートとに基づいて、前記TMコストを決定する
ように構成されている、請求項16に記載の装置。
【請求項18】
前記第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第1のMVRとを含み、
前記第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第2のMVRとを含み、
前記処理回路は、
前記第1のMVP候補と1/4画素とに基づいて、1/4画素に対応する第1のMVPを決定し、
1/4画素に対応する前記第1のMVPと前記それぞれの1つまたは複数の第1のMVRとに基づいて、前記第1のMVP内の1つまたは複数の残りの第1のMVPを決定し、
前記第2のMVP候補と1/4画素とに基づいて、1/4画素に対応する第2のMVPを決定し、かつ、
1/4画素に対応する前記第2のMVPと前記それぞれの1つまたは複数の第2のMVRとに基づいて、前記第2のMVP内の1つまたは複数の残りの第2のMVPを決定する
ように構成されている、請求項17に記載の装置。
【請求項19】
前記動き情報は、MV差分(MVD)情報を含み、
前記処理回路は、
第1の複数のMVRの各々について、
前記MVD情報と前記第1の複数のMVRのうちの前記それぞれの第1のMVRとに基づいて、第1のMVDを決定し、
前記第1のMVDに基づいて、前記第1の複数のMVRのうちの前記それぞれの第1のMVRについての第1のMVを決定し、
前記第2の複数のMVRの各々について、
前記MVD情報と前記第2の複数のMVRのうちの前記それぞれの第2のMVRとに基づいて、第2のMVDを決定し、
前記第2のMVDに基づいて、前記第2の複数のMVRのうちの前記それぞれの第2のMVRについての第2のMVを決定し、
前記MVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定し、前記MVRペアのうちの前記それぞれの第1のMVRに対する前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指し、
前記第2の参照ピクチャ内の第2の参照ブロックを決定し、前記MVRペアのうちの前記それぞれの第2のMVRに対する前記第2のMVは、前記現在ブロックから前記第2の参照ブロックを指し、かつ、
前記現在ブロックの現在テンプレートと、前記第1の参照ブロックの第1の参照テンプレートと、前記第2の参照ブロックの第2の参照テンプレートとに基づいて、TMコストを決定する
ように構成されている、請求項16に記載の装置。
【請求項20】
非一時的コンピュータ可読記憶媒体であって、
コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、(i)適応動きベクトル予測(AMVP)モードおよび適応動きベクトル解像度(AMVR)モードが前記現在ブロックに適用されていること、ならびに(ii)動き情報を示す、ステップと、
前記動き情報、および前記第1の複数のMVRのうちの前記それぞれの第1のMVRに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々について、それぞれの第1の動きベクトル予測子(MVP)を決定するステップと、
少なくとも前記第1の複数のMVRおよび前記第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)を行うステップと、
前記TMコストに基づいて、前記第1の複数のMVRの適応順序を生成するステップと、
前記生成された適応順序に基づいて、シグナリングされたMVRインデックスを適用するステップと
を、少なくとも1つのプロセッサによって実行させる、実行可能なプログラムを記憶する、
非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年12月17日に出願された米国仮出願第63/291,180号「MV解像度の適応順序を用いたテンプレートマッチングに基づく適応動きベクトル解像(AMVR)」に基づく優先権の利益を主張する、2022年10月20日に出願された米国特許出願第17/970,407号「動きベクトル解像度の適応順序を用いたテンプレートマッチングに基づく適応動きベクトル解像度」に基づく優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオコーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテキストを一般的に提示することを目的としている。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、および出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
非圧縮デジタル画像および/またはビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連する彩度サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変のピクチャレート(非公式にはフレームレートとしても知られる)を有することができる。非圧縮画像および/またはビデオは、特定のビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
画像および/またはビデオのコーディングおよびデコードの1つの目的は、圧縮による入力画像および/またはビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減するのに役立ち得る。本明細書の説明は、説明例としてビデオのエンコード/デコードを使用するが、同じ技術は、本開示の趣旨から逸脱することなく、同様のやり方で画像のエンコード/デコードに適用され得る。可逆圧縮と非可逆圧縮の両方、およびそれらの組み合わせを採用され得る。可逆圧縮とは、原信号の正確なコピーが圧縮された原信号から再構成されることが可能である技術を指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではない場合もあるが、原信号と再構成された信号との間の歪みは、再構成された信号を意図された用途に役立てるのに十分なほど小さい。ビデオの場合、非可逆圧縮が広く採用されている。耐容できる歪みの量は用途に依存し、例えば、特定の消費者ストリーミング用途のユーザは、テレビ配信用途のユーザよりも高い歪みを容認し得る。達成可能な圧縮比は、より高い許容可能/容認可能な歪みがより高い圧縮比をもたらすことができることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換処理、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに、空間的に細分される。サンプルのすべてのブロックがイントラモードデコードされる場合、そのピクチャはイントラピクチャであり得る。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用されることが可能であり、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用されることが可能である。イントラブロックのサンプルは変換を受けることができ、変換係数は、エントロピーコーディングの前に量子化されることが可能である。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えば、MPEG-2生成コーディング技術で使用される従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、データブロックのエンコード/デコード中に取得された周囲のサンプルデータおよび/またはメタデータに基づいて予測を実施しようと試みる技術を含む。そのような技術を、これ以降、「イントラ予測」技術と呼ぶ。少なくともいくつかの場合に、イントラ予測は再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからは使用しないことに留意されたい。
【0009】
イントラ予測には、多くの異なる形式があり得る。そのような技術のうちの2つ以上が所与のビデオコーディング技術において使用され得る場合、使用中の特定の技術を、特定の技術を使用する特定のイントラ予測モードとしてコーディングされ得る。特定の場合には、イントラ予測モードはサブモードおよび/またはパラメータを有することができ、サブモードおよび/またはパラメータは、個別にコーディングされる、あるいは、使用される予測モードを定義するモードコードワードに含められ得る。所与のモード、サブモード、および/またはパラメータの組み合わせにどのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265において精緻化され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに精緻化された。すでに利用可能なサンプルに属する隣接サンプル値を使用して予測子ブロックが形成されることができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内デコードされ得るか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に描かれているのは、H.265で定義された(35個のイントラモードのうちの33個の角度モードに対応する)33個の可能な予測子方向から知られる9つの予測子方向のサブセットである。矢印が集中する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数のサンプルから右上へ、水平から45度の角度で予測されることを示している。同様に、矢印(103)は、サンプル(101)が、1つまたは複数のサンプルからサンプル(101)の左下へ、水平から22.5度の角度で予測されることを示している。
【0012】
さらに図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が示されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元とX次元の両方の4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う参照サンプルがさらに示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264とH.265の両方において、予測サンプルは再構成中のブロックに隣接しており、したがって、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって示される隣接サンプルから参照サンプル値をコピーすることによって機能することができる。例えば、コーディングされたビデオビットストリームは、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルはサンプルから右上へ、水平から45度の角度で予測されると仮定する。その場合、サンプルS41、S32、S23、S14が、同じ参照サンプルR05から予測される。次いで、サンプルS44が、参照サンプルR08から予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れない場合、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向が表されることができた。これが、H.265(2013年)では33に増加した。現在、JEM/VVC/BMSは、最大65個の方向をサポートすることができる。最も可能性が高い方向を識別するために実験が行われており、エントロピーコーディングの特定の技術は、それらの可能性が高い方向を少数のビットで表すために使用され、可能性が低い方向に関しては一定のペナルティを受け入れる。さらに、方向自体が、隣接する、すでにデコードされたブロックで使用された隣接する方向から予測されることが可能である場合もある。
【0016】
図1Bは、経時的に増加する予測方向の数を示すためにJEMによる65のイントラ予測方向を示す概略図(110)を示す。
【0017】
コーディングされたビデオビットストリーム内の方向を表すイントラ予測方向ビットのマッピングは、ビデオコーディング技術によって異なり得る。そのようなマッピングは、単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技術までおよび得る。しかしながら、ほとんどの場合、ビデオコンテンツ内で特定の他の方向よりも統計的に発生する可能性が低い特定の方向が存在することができる。ビデオ圧縮の目的は冗長性の低減であるので、それらの可能性が低い方向は、うまく機能するビデオコーディング技術では、可能性が高い方向よりも多いビット数で表される。
【0018】
画像および/またはビデオのコーディングならびにデコードは、動き補償を伴うインターピクチャ予測を使用して実施され得る。動き補償は、非可逆圧縮技術であり得、以前に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降、MV)によって示された方向に空間的にシフトされた後に、新しく再構成されるピクチャまたはピクチャの一部の予測に使用される技術に関連し得る。場合によっては、参照ピクチャは現在再構成中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、第3の次元は、使用中の参照ピクチャの指示である(後者は、間接的に時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能なMVが、他のMVから、例えば、再構成中のエリアに空間的に隣接し、デコード順でそのMVに先行するサンプルデータの他のエリアに関連するMVから予測されることが可能である。そうすることにより、MVのコーディングに必要なデータの量を大幅に削減することができ、それによって冗長性が排除され、圧縮率が増加する。MV予測が効果的に機能することができるのは、例えば、(自然なビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするときに、単一のMVが適用可能なエリアよりも大きいエリアが同様の方向に移動し、したがって、場合によっては、隣接エリアのMVから導出された同様の動きベクトルを使用して予測されることが可能である統計的尤度があるからである。その結果、所与のエリアについて検出されたMVが周囲のMVから予測されたMVと同様かまたは同じになり、それは、エントロピーコーディング後に、MVを直接コーディングした場合に使用されるはずのビット数より少ないビット数で表されることが可能である。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例となり得る。他の場合には、MV予測自体は、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「高効率ビデオコーディング(High Efficiency Video Coding)」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、図2を参照して説明するのは、以降「空間マージ」と呼ぶ技術である。
【0021】
図2を参照すると、現在ブロック(201)は、動き探索プロセス中にエンコーダによって、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが発見されているサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲のサンプルのいずれか1つと関連付けられたMVを使用して、1つまたは複数の参照ピクチャと関連付けられたメタデータから、例えば、(デコード順に)最新の参照ピクチャから導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用している同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオエンコードおよびデコードのための方法および装置を提供する。いくつかの例では、ビデオデコードのための装置は処理回路を含む。処理回路は、コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするように構成される。予測情報は、適応動きベクトル予測(AMVP、Adaptive Motion Vector Prediction)モードが適応動きベクトル解像度(AMVR、Adaptive Motion Vector Resolution)モードとともに現在ブロックに適用されていることを示すことができる。予測情報は、動き情報を示すことができる。処理回路は、動き情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR、Motion Vector Resolutions)の各々について、それぞれの第1の動きベクトル予測子(MVP、Motion Vector Predictor)を決定することができる。処理回路は、少なくとも第1の複数のMVRおよび第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM、Template Matching)を行うことができる。
【0023】
一実施形態では、処理回路は、TMコストに基づいて第1の複数のMVRの適応順序を生成し、生成された適応順序に基づいて、シグナリングされたMVRインデックスを適用する。
【0024】
一実施形態では、現在ブロックは単予測で予測される。TMコストの各々は、第1の複数のMVRのうちのそれぞれの第1のMVRに対応する。処理回路は、決定されたTMコストに基づいて第1の複数のMVRを並べ替え、並べ替えられた第1の複数のMVRのうちの1つに基づいて現在ブロックを再構成することができる。
【0025】
一実施形態において、動き情報は、第1の参照ピクチャに対応する候補リスト内のMVP候補を示す。第1の複数のMVRの各々について、処理回路は、MVP候補およびそれぞれの第1のMVRに基づいて、それぞれの第1のMVPを決定することができる。第1の複数のMVRの各々について、処理回路は、第1の参照ピクチャ内の第1の参照ブロックを決定することができる。それぞれの第1のMVRの第1のMVPは、現在ブロックから第1の参照ブロックを指すことができる。処理回路は、第1の参照ブロックの第1の参照テンプレートおよび現在ブロックの現在テンプレートに基づいてTMコストを決定することができる。
【0026】
一実施形態において、動き情報は、第1の参照ピクチャに対応する候補リスト内のMVP候補を示す。第1の複数のMVRは、1/4画素(pel)と、1/4画素(pel)よりも低い空間解像度を有する1つまたは複数のMVRとを含む。処理回路は、MVP候補および1/4画素に基づいて1/4画素に対応するMVPを決定することができる。その後、処理回路は、1/4画素に対応するMVPとそれぞれの1つまたは複数のMVRとに基づいて、第1のMVPのうちの残りの1つまたは複数のMVPを決定することができる。第1の複数のMVRの各々について、処理回路は、第1の参照ピクチャ内の第1の参照ブロックを決定することができる。それぞれの第1のMVRの第1のMVPは、現在ブロックから第1の参照ブロックを指すことができる。処理回路は、第1の参照ブロックの第1の参照テンプレートおよび現在ブロックの現在テンプレートに基づいてTMコストを決定することができる。
【0027】
一実施形態では、動き情報はMV差分(MVD)情報を含む。第1の複数のMVRの各々について、処理回路は、MVD情報とそれぞれの第1のMVRとに基づいてそれぞれの第1のMVDを決定し、それぞれの第1のMVDに基づいてそれぞれの第1のMVRの第1のMVを決定することができる。処理回路は、第1の参照ピクチャ内の第1の参照ブロックを決定することができる。それぞれの第1のMVRの第1のMVは、現在ブロックから第1の参照ブロックを指すことができる。処理回路は、第1の参照ブロックの第1の参照テンプレートおよび現在ブロックの現在テンプレートに基づいてTMコストを決定することができる。
【0028】
一実施形態では、現在ブロックは双予測で予測される。TMコストの各々は、複数のMVRペアのそれぞれに対応する。各MVRペアは、(i)第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含む。処理回路は、決定されたTMコストに基づいて複数のMVRペアを並べ替え、並べ替えられた複数のMVRペアのうちの1つに基づいて現在ブロックを再構成することができる。
【0029】
一例では、動き情報は、第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補と、第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補とを示す。処理回路は、第2のMVP候補とそれぞれの第2のMVRとに基づいて、第2の参照ピクチャに対応する第2の複数のMVRの各々の第2のMVPを決定することができる。複数のMVRペアの各MVRペアについて、処理回路は、第1の参照ピクチャ内の第1の参照ブロックを決定することができる。MVRペアのうちのそれぞれの第1のMVRの第1のMVPは、現在ブロックから第1の参照ブロックを指すことができる。処理回路は、第2の参照ピクチャ内の第2の参照ブロックを決定することができる。MVRペアのうちのそれぞれの第2のMVRの第2のMVPは、現在ブロックから第2の参照ブロックを指すことができる。処理回路は、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて、TMコストを決定することができる。
【0030】
一例では、第1の複数のMVRの各々について、処理回路は、第1のMVP候補とそれぞれの第1のMVRとに基づいて、それぞれの第1のMVPを決定することができる。
【0031】
一例では、第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第1のMVRとを含む。第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第2のMVRとを含む。処理回路は、第1のMVP候補および1/4画素に基づいて1/4画素に対応する第1のMVPを決定し、1/4画素に対応する第1のMVPとそれぞれの1つまたは複数の第1のMVRとに基づいて、第1のMVPのうちの1つまたは複数の残りの第1のMVPを決定することができる。処理回路は、第2のMVP候補と1/4画素とに基づいて1/4画素に対応する第2のMVPを決定し、1/4画素に対応する第2のMVPとそれぞれの1つまたは複数の第2のMVRとに基づいて、第2のMVPのうちの残りの1つまたは複数の第2のMVPを決定することができる。
【0032】
一例では、動き情報は、MV差分(MVD)情報を含む。第1の複数のMVRの各々について、処理回路は、MVD情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて第1のMVDを決定し、第1のMVDに基づいて第1の複数のMVRのうちのそれぞれの第1のMVRについての第1のMVを決定することができる。第2の複数のMVRの各々について、処理回路は、MVD情報と第2の複数のMVRのうちのそれぞれの第2のMVRとに基づいて第2のMVDを決定し、第2のMVDに基づいて第2の複数のMVRのうちのそれぞれの第2のMVRについての第2のMVを決定することができる。MVRペアのうちの各MVRペアについて、処理回路は、第1の参照ピクチャ内の第1の参照ブロックを決定することができ、MVRペアのうちのそれぞれの第1のMVRの第1のMVは、現在ブロックから第1の参照ブロックを指すことができる。処理回路は、第2の参照ピクチャ内の第2の参照ブロックを決定することができ、MVRペアのうちのそれぞれの第2のMVRに対する第2のMVは、現在ブロックから第2の参照ブロックを指すことができる。処理回路は、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて、TMコストを決定することができる。
【0033】
本開示の態様はまた、ビデオデコードのための方法を実行するために少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体も提供する。
【0034】
開示されている主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0035】
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図2】現在ブロック(201)および周囲のサンプルの一例を示す図である。
図3】通信システム(300)の例示的なブロック図の概略図である。
図4】通信システム(400)の例示的なブロック図の概略図である。
図5】デコーダの例示的なブロック図の概略図である。
図6】エンコーダの例示的なブロック図の概略図である。
図7】例示的なエンコーダを示すブロックである。
図8】例示的なデコーダを示すブロック図である。
図9】本開示の一実施形態による空間マージ候補の位置を示す図である。
図10】本開示の一実施形態による、空間マージ候補の冗長性チェックのために考慮される候補ペアを示す図である。
図11】時間マージ候補の例示的な動きベクトルのスケーリングを示す図である。
図12】現在のコーディングユニットの時間マージ候補の例示的な候補位置を示す図である。
図13】動きベクトル解像度(MVR)に対応する適応動きベクトル解像度(AMVR)シフト値(例えば、AmvrShift)の例を示す図である。
図14】AMVRモードが有効にされているときの適応動きベクトル予測(AMVP)モードおよびアフィンAMVPモードにおける動きベクトルの差分の例示的な修正を示す図である。
図15A】4パラメータアフィンモデルを用いた場合のブロックのアフィン動きフィールドを示す図である。
図15B】6パラメータアフィンモデルを用いた場合のブロックのアフィン動きフィールドを示す図である。
図16】サブブロックに基づくアフィン変換予測の例を示す。
図17】現在のコーディングユニット(CU)のアフィンマージリストにおける制御点動きベクトル(CPMV)候補の決定の例を示す図である。
図18】現在ブロックの空間的隣接および時間的隣接の例を示す図である。
図19】テンプレートマッチング(TM)の例を示す図である。
図20】MVRのセットに適用されるTMの例を示す図である。
図21】双予測モードを使用して現在ブロックが予測される場合のTMの例を示す図である。
図22】アフィンマージモードにおけるTMの例を示す図である。
図23】本開示の一実施形態によるエンコードプロセスを概説するフローチャートである。
図24】本開示の一実施形態によるデコードプロセスを概説するフローチャートである。
図25】本開示の一実施形態によるデコードプロセスの概要を示すフローチャートである。
図26】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0036】
図3は、通信システム(300)の例示的なブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例において、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するためにビデオデータ(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリーム)をコーディングしてもよい。エンコードされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信されることが可能である。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示し得る。一方向のデータ送信は、メディアサービング用途などでは一般的であり得る。
【0037】
他の例では、通信システム(300)は、例えばビデオ会議中のコーディングされたビデオデータの双方向伝送を実施する端末デバイス(330)および(340)の第2のペアを含む。データの双方向伝送の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)をコーディングすることができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信することができ、コーディングされたビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示装置にビデオピクチャを表示することができる。
【0038】
図3の例において、端末デバイス(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとしてそれぞれ例示されているが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器と共に適用される。ネットワーク(350)は、例えば有線(配線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間デコードされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回路交換チャネルおよび/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0039】
図4は、開示の主題についての用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダを示している。開示の主題は、例えば、ビデオ会議、デジタルテレビ、ストリーミングサービス、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能であり得る。
【0040】
ストリーミングシステムは、例えば非圧縮のビデオピクチャのストリーム(402)を作成する、例えばデジタルカメラなどのビデオソース(401)を含み得るキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム(402)は、エンコードされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較した場合の高データ量を強調するために太線で示されており、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(402)と比較してより少ないデータ量を強調するために細い線として描写されたエンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム)は、将来の使用のためにストリーミングサーバ(405)に記憶されることができる。図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、エンコードされたビデオデータ(404)のコピー(407)および(409)を取り出すために、ストリーミングサーバ(405)にアクセスすることができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入力コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上でレンダリングされ得るビデオピクチャの出力ストリーム(411)を作成する。一部のストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)および(409)(例えば、ビデオビットストリーム)が、特定のビデオコーディング/圧縮規格に従ってエンコードされ得る。それらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVCの文脈で使用され得る。
【0041】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含むことができる。
【0042】
図5は、ビデオデコーダ(510)の例示的なブロック図を示している。ビデオデコーダ(510)は、電子デバイス(530)に含めることができる。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用されることが可能である。
【0043】
受信器(531)は、ビデオデコーダ(510)によってデコードされるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。一実施形態では、一度に1つのコーディングされたビデオシーケンスが受信され、各コーディングされたビデオシーケンスのデコードは、他のコーディングされたビデオシーケンスのデコードから独立している。コーディングされたビデオシーケンスはチャネル(501)から受信され得、チャネル(501)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る。受信器(531)はエンコードされたビデオデータを、それらそれぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームと共に受信し得る。受信器(531)は、コーディングされたビデオシーケンスをその他のデータから分離し得る。ネットワークジッタに対抗するために、受信器(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)との間にバッファメモリ(515)が結合され得る。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の用途では、バッファメモリ(515)はビデオデコーダ(510)の外部にあり得る(図示せず)。さらに他の用途では、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在し、加えて、例えば、プレイアウトタイミングを処理するために、ビデオデコーダ(510)の内部に他のバッファメモリ(515)が存在し得る。受信器(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要な場合があり、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要とされてもよく、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0044】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含むことができる。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、図5に示されるように、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合されることが可能であるレンダリングデバイス(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスのための制御情報は補足エンハンスメント情報(SEI)メッセージまたはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であり得る。パーサ(520)は、受信されたコーディングされたビデオシーケンスを解析/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、コンテキスト依存性ありまたはなしの可変長コーディング、ハフマンコーディング、算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、変換係数、量子化パラメータ値、動きベクトルなどのようなコーディングされたビデオシーケンス情報から抽出することができる。
【0045】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/パース動作を行うことができる。
【0046】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描写されていない。
【0047】
すでに述べた機能ブロックの他に、ビデオデコーダ(510)は、概念的には、以下で説明するように、いくつかの機能ユニットに細分化され得る。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示された主題を説明するために、以下の機能ユニットへの概念的な細分化が適切である。
【0048】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を備えるブロックを出力し得る。
【0049】
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングされたブロックに関係し得る。イントラコーディングされたブロックは、以前に再構成されたピクチャからの予測情報を使用しておらず、現在ピクチャの以前に再構成された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報をスケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0050】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係し得る。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加されることが可能である(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御されることが可能である。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどをも含み得る。
【0051】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に提供されるインループフィルタ技術を含むことができる。ビデオ圧縮はまた、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応答して行うこともでき、以前に再構成およびループフィルタリングされたサンプル値に応答して行うこともできる。
【0052】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力され得るだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に保存できるサンプルストリームであり得る。
【0053】
特定のコーディングされたピクチャ像は、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照画像として識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になり得、次のコーディングされたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0054】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの所定のビデオ圧縮技術または規格に従ってデコード動作を実施することができる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格の構文とビデオ圧縮技術または規格に文書化されているプロファイルの両方を順守しているという意味で、使用されているビデオ圧縮技術または規格によって指定されている構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールの中から、特定のツールを、そのプロファイル下でそれらだけが利用可能なツールとして選択することができる。また、コンプライアンスのために必要なのは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構成サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定された限界は、場合によっては、仮想参照デコーダ(HRD:Hypothetical Reference Decoder)の仕様、およびコーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のメタデータによってさらに制限され得る。
【0055】
一実施形態では、受信器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれ得る。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコードするために、かつ/または元のビデオデータをより正確に再構成するために使用され得る。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)拡張レイヤ、冗長スライス、冗長画像、前方誤り訂正コードなどの形式であり得る。
【0056】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示している。ビデオエンコーダ(603)は電子デバイス(620)に含まれる。電子デバイス(620)は送信器(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用されることが可能である。
【0057】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像をキャプチャし得る(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信し得る。他の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0058】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)であり得、任意の色空間(例えば、BT.601YCrCB、RGB、…)および適切なサンプリング構造(例えば、YCrCb4:2:0、YCrCb4:4:4)であり得るデジタル・ビデオ・サンプル・ストリームの形態で提供し得る。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを格納する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであり得る。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成されることができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心とする。
【0059】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングし、圧縮し得る。適切なコーディング速度を実施することが、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、それらの他の機能ユニットに機能的に結合されている。この結合は明確にするために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、group of pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成され得る。
【0060】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(リモート)デコーダも作成することになるのと同様の方式でシンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードは、デコーダの位置(ローカルまたはリモート)に関係なくビットイグザクトな結果をもたらすため、参照ピクチャメモリ(634)の内容も、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」ことになるのと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネルエラーのために同期性が維持され得ない場合に生じるドリフト)は、いくつかの関連技術においても用いられる。
【0061】
「ローカル」デコーダ(633)の動作は、図5と併せて上記で詳細にすでに説明されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコードは可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピーデコード部分、およびパーサ(520)は、ローカルデコーダ(633)に完全に実装されない場合もある。
【0062】
一実施形態では、デコーダに存在する構文解析/エントロピーデコードを除くデコーダ技術が、対応するエンコーダに、同一または実質的に同一の機能的形態で存在する。したがって、開示された主題は、デコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略されることができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0063】
いくつかの例では、動作中、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを行い得る。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0064】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードし得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータが(図6には示されていない)ビデオデコーダでデコードされ得るとき、再構成されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコードプロセスを複製し、再構成された参照ピクチャを参照ピクチャメモリ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、(送信エラーなしで)遠端ビデオデコーダによって取得されることになる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに格納し得る。
【0065】
予測器(635)は、コーディングエンジン(632)の予測検索を行い得る。すなわち、コーディングされる新しいピクチャの場合、予測器(635)は、新しい画素のための適切な予測参照として役立つことができる、(候補参照画素ブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、画素ブロックごとにサンプルブロックに対して動作することができる。いくつかの場合において、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
【0066】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
【0067】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、様々な機能ユニットによって生成されたシンボルを、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ってシンボルに可逆圧縮を適用することによってコーディングされたビデオシーケンスに変換する。
【0068】
送信器(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信器(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0069】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディング中、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、多くの場合、ピクチャは次のピクチャタイプのうちの1つとして割り当てられ得る。
【0070】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずにコーディングおよびデコードされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変種ならびにそれらのそれぞれの用途および特徴を認識している。
【0071】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るものであり得る。
【0072】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構成に2つを超える参照ピクチャと関連メタデータとを使用できる。
【0073】
ソースピクチャは、一般的には、複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16のサンプルそれぞれのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定される他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、空間予測によってまたは時間予測によって、以前にコーディングされた1つまたは2つの参照ピクチャを参照して予測的にコーディングされ得る。
【0074】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行うことができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を行うことができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格で指定された構文に準拠する場合がある。
【0075】
一実施形態では、送信器(640)は、エンコードされたビデオとともに追加のデータを送信し得る。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNR強化レイヤ、冗長ピクチャおよびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセット断片などを含むことができる。
【0076】
ビデオは、時系列の複数のソースピクチャ(ビデオピクチャ)として取り込まれ得る。イントラピクチャ予測(しばしば、イントラ予測と省略される)は、所与のピクチャ内の空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関を利用する。一例では、現在ピクチャと呼ばれる、エンコード/デコード中の特定のピクチャがブロックに分割される。現在ピクチャ内のブロックが、ビデオ内の以前にコーディングされた、まだバッファされている参照ピクチャ内の参照ブロックに類似しているとき、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0077】
一部の実施形態では、インターピクチャ予測に双予測技術が使用され得る。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在ピクチャのデコード順より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測されることができる。
【0078】
さらに、コーディング効率を改善するために、インターピクチャ予測にマージモード技術が使用されることができる。
【0079】
本開示のいくつかの実施形態によれば、インターピクチャ予測やイントラピクチャ予測などの予測は、ブロック単位で実施される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、16×16ピクセルなどの同じサイズを有する。一般に、CTUは3つのコーディングツリーブロック(CTB)を含み、それらは1つの輝度CTBおよび2つのクロマCTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割されることが可能である。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCUに、または32×32ピクセルの4つのCUに、または16×16ピクセルの16個のCUに分割されることが可能である。一例では、各CUが、インター予測タイプやイントラ予測タイプなどのCUの予測タイプを決定するために解析される。CUは、時間的予測可能性および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、1つの輝度予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、コーディング(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例として輝度予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、および16×8画素などの画素の値(例えば、輝度値)の行列を含む。
【0080】
図7は、ビデオエンコーダ(703)の例示的な図を示している。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
【0081】
HEVCの例では、ビデオエンコーダ(703)は、例えば8×8サンプルの予測ブロックのような処理ブロックのためのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最適にコーディングされるかどうかを決定する。処理ブロックがイントラモードデコードされることになる場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコードし、処理ブロックがインターモードまたは双予測モードデコードされることになる場合、ビデオエンコーダ(703)は、それぞれ、インター予測技術または双予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコードし得る。特定のビデオコーディング技術では、マージモードは、予測子の外側のコーディングされた動きベクトル成分の助けを借りずに動きベクトルが1つまたは複数の動きベクトル予測子から導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0082】
図7の例では、ビデオエンコーダ(703)は、図7に示されるように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0083】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを参照ピクチャ(例えば、前のピクチャおよび後のピクチャ内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インターエンコード技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコードされた参照ピクチャである。
【0084】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、場合によっては、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラエンコード技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0085】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、汎用コントローラ(721)は、モードがイントラモードである場合、残差計算器(723)が用いるイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。汎用コントローラ(721)は、モードがインターモードである場合、残差計算器(723)が用いるインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択してビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0086】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との差分(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて、残差データをエンコードして変換係数を生成するよう動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を行い、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用されることが可能である。例えば、インターエンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいてデコードされたブロックを生成することができる。いくつかの例では、デコードされたブロックは、デコードされたピクチャを生成するために適切に処理され、デコードされたピクチャは、メモリ回路(図示せず)にバッファされ、参照ピクチャとして使用され得る。
【0087】
エントロピーエンコーダ(725)は、エンコードされたブロックを含めるようビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従ってビットストリームに様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、ビットストリームに、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報を含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しないことに留意されたい。
【0088】
図8は、ビデオデコーダ(810)の例示的な図を示している。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコードして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
【0089】
図8の例では、ビデオデコーダ(810)は、図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0090】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは他のサブモードのインターモードおよび双予測モードなど)、ならびにイントラデコーダ(872)またはインターデコーダ(880)によって、それぞれ、予測のために使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測やインター予測情報など)を含むことができる。シンボルはまた、例えば、量子化変換係数の形態の残差情報なども含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0091】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0092】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0093】
残差デコーダ(873)は、逆量子化を実施して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差情報を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるために)特定の制御情報を必要とする場合もあり、その情報は、エントロピーデコーダ(871)によって提供され得る(これは、少量の制御情報のみであり得るので、データパスは描かれていない)。
【0094】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差情報と(場合によってインター予測モジュールまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成されたピクチャの一部になり得る再構成ブロックを形成するように構成され、再構成されたピクチャは再構成されたビデオの一部になり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作が実行されることができることに留意されたい。
【0095】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装されることができることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装され得る。他の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたはそれ複数のプロセッサを使用して実装されることができる。
【0096】
VVCでは様々なインター予測モードが使用されることができる。インター予測されたCUに対して、動きパラメータは、(1つまたは複数の)MV、1つまたは複数の参照ピクチャインデックス、参照ピクチャリスト使用インデックス、およびインター予測されたサンプル生成に使用されるべき特定のコーディング特徴についての追加情報を含むことができる。動きパラメータは、明示的または暗黙的にシグナリングされることができる。CUがスキップモードデコードされる場合、CUは、PUと関連付けられることができ、有意な残差係数も、コーディングされた動きベクトルデルタも、MV差分(例えばMVD)も、参照ピクチャインデックスも有し得ない。マージモードが指定され得、現在CUの動きパラメータは、空間および/または時間の候補、および場合によりVVCで導入されるような追加情報を含む隣接CUから取得される。マージモードは、スキップモードに対してだけでなく、インター予測されたCUに適用されることができる。一例では、マージモードの代替は動きパラメータの明示的な送信であり、その場合、(1つまたは複数の)MV、各参照ピクチャリストの対応する参照ピクチャインデックスおよび参照ピクチャリスト使用フラグその他の情報がCUごとに明示的にシグナリングされる。
【0097】
VVCなどの実施形態では、VVCテストモデル(VTM、VVC Test Model)参照ソフトウェアは、拡張マージ予測、マージ動きベクトル差分(MMVD、Merge Motion Vector Difference)モード、対称MVDシグナリングを用いた適応動きベクトル予測(AMVP、Adaptive Motion Vector Prediction)モード、アフィン動き補償予測、サブブロックに基づく時間動きベクトル予測(SbTMVP、Subblock-based Temporal Motion Vector Prediction)、適応動きベクトル解像度(AMVR、Adaptive Motion Vector Resolution)、動きフィールドストレージ(1/16輝度サンプルMVストレージおよび8×8動きフィールド圧縮)、CUレベルの重みを用いた双方向予測(BCW、Bi-prediction with CU-level Weight)、双方向オプティカルフロー(BDOF、Bi-Directional Optical Flow)、オプティカルフローを使用した予測精緻化(PROF、Prediction Refinement using Optical Flow)、デコーダ側動きベクトル精緻化(DMVR、Decoder side Motion Vector Refinement)、インターイントラ組み合わせ予測(CIIP、Combined Inter and Intra Prediction)、幾何学的分割モード(GPM、Geometric Partitioning Mode)などを含む、1つまたは複数の精緻化されたインター予測コーディングツールを含む。インター予測および関連する方法を、以下に詳細に説明する。
【0098】
いくつかの例では、拡張マージ予測が使用され得る。VTM4などの例では、マージ候補リストは、以下の5つのタイプの候補を順に含むことによって構築される。空間的に隣接するCUからの空間動きベクトル予測子(MVP、Motion Vector Predictor)、コロケートされたCUからの時間MVP、先入れ先出し(FIFO、first-in-first-out)テーブルからの履歴に基づくMVP、ペア単位平均MVP、およびゼロMVである。
【0099】
マージ候補リストのサイズは、スライスヘッダでシグナリングされ得る。一例では、マージ候補リストの最大許容サイズはVTM4で6である。マージモードデコードされた各CUについて、最良のマージ候補のインデックス(例えば、マージインデックス)は、切り捨てられた単項2値化(TU)を使用してエンコードされ得る。マージインデックスの第1のビンはコンテキスト(例えば、コンテキスト適応型バイナリ算術コーディング(CABAC、Context-Adaptive Binary Arithmetic Coding)デコードされ得、バイパスコーディングは、他のビンに使用され得る。
【0100】
マージ候補の各カテゴリの生成処理のいくつかの例を以下に示す。一実施形態では、空間候補は以下のように導出される。VVCにおける空間マージ候補の導出は、HEVCにおけるものと同一であり得る。一例では、図9に示す位置にある候補の中から最大4つのマージ候補が選択される。図9は、本開示の一実施形態による空間マージ候補の位置を示す。図9を参照すると、導出の順序は、B1、A1、B0、A0、およびB2である。位置B2は、位置A0、B0、B1、およびA1のいずれかのCUが利用できない(例えば、CUは他のスライスまたは他のタイルに属するため)か、またはイントラコーディングされている場合にのみ考慮される。位置A1の候補が追加された後、残りの候補の追加は、同じ動き情報を有する候補が候補リストから除外されてコーディング効率が改善されることを確実にする冗長性チェックを受ける。
【0101】
計算の複雑さを低減するために、すべての可能な候補ペアが上述の冗長性チェックで考慮されるわけではない。代わりに、図10の矢印で繋がれたペアのみが考慮され、冗長性チェックに使用された対応する候補が同じ動き情報を有しない場合にのみ、候補リストに候補が追加される。図10は、本開示の一実施形態による、空間マージ候補の冗長性チェックのために考慮される候補ペアを示す。図10を参照すると、それぞれの矢印で繋がれたペアは、A1およびB1、A1およびA0、A1およびB2、B1およびB0、ならびにB1およびB2を含む。したがって、位置B1、A0、および/またはB2の候補は、位置A1の候補と比較されることができ、位置B0および/またはB2の候補は、位置B1の候補と比較されることができる。
【0102】
一実施形態では、時間的候補は以下のように導出される。一例では、1つの時間マージ候補のみが候補リストに追加される。図11は、時間マージ候補の例示的な動きベクトルのスケーリングを示す。現在ピクチャ(1101)における現在CU(1111)の時間マージ候補を導出するために、コロケートされた参照ピクチャ(1104)に属するコロケートされたCU(1112)に基づいて、スケーリングされたMV(1121)(例えば、図11に点線で示す)が導出され得る。コロケートされたCU(1112)を導出するために使用される参照ピクチャリストは、スライスヘッダで明示的にシグナリングされ得る。時間マージ候補に対するスケーリングされたMV(1121)は、図11の点線で示すように求められることができる。スケーリングされたMV(1121)は、ピクチャ順序カウント(POC、Picture Order Count)距離tbおよびtdを使用して、コロケートされたCU(1112)のMVからスケーリングされ得る。POC距離tbは、現在ピクチャ(1101)の現在参照ピクチャ(1102)と現在ピクチャ(1101)との間のPOC差分であると定義され得る。POC距離tdは、コロケートされたピクチャ(1103)のコロケートされた参照ピクチャ(1104)とコロケートされたピクチャ(1103)との間のPOC差分であると定義され得る。時間マージ候補の参照ピクチャインデックスは、ゼロに設定され得る。
【0103】
図12は、現在CUの時間マージ候補の例示的な候補位置(例えば、C0およびC1)を示す。時間マージ候補の位置は、候補位置C0,C1の間で選択され得る。候補位置C0は、現在CUのコロケートされたCU(1210)の右下隅に位置する。候補位置C1は、現在CUのコロケートされたCU(1210)の中心に位置する。候補位置C0にあるCUが、利用できないか、イントラコーディングされているか、またはCTUの現在の行の外側にある場合、候補位置C1は時間マージ候補を導出するために使用される。そうでない場合、例えば、候補位置C0にあるCUは利用可能であり、イントラコーディングされ、CTUの現在の行では、候補位置C0が時間マージ候補を導出するために使用される。
【0104】
適応動きベクトル解像度(AMVR)モードが、VVCなどのビデオ/画像コーディングで使用され得る。ビデオコーディング規格HEVCおよびAVC/H.264などのいくつかの技術では、4分の1(1/4)の輝度サンプル(または1/4画素)の固定動きベクトル解像度(MVR)が使用される。一般に、変位ベクトルレートと予測誤差レートとの間の最適なトレードオフが、レート歪みを最適化するために選択される。VVCなどの関連技術では、AMVRモードが有効にされ、MVRは、例えば、複数のMVRからコーディングブロックレベルで選択され得、したがって、シグナリング動きパラメータの忠実度とビットレートとのトレードオフを行うことができる。AMVRモードは、例えば、MVDの少なくとも1つの成分がゼロに等しくない場合、コーディングブロックレベルでシグナリングされ得る。得られたMV(例えば、MVPとMVDとの和)が所与のMVRのグリッドに収まり得るように、動きベクトル予測子(MVP)は所与のMVRに丸められることができる。
【0105】
図13は、解像度(例えば、MVR)に対応するAmvrシフト値(例えば、AmvrShift)の一例を示す。各所与の解像度(例えば、MVR)について、対応するAmvrシフト値(例えば、AmvrShift)はシフト動作(例えば、左シフト動作)を示す。例えば、AmvrShiftは、左シフト動作でMVDのMVRを指定するように定義され、シフトされるビット数はAmvrShiftによって示される。
【0106】
いくつかの例では、AMVRフラグ(例えば、amvr_flag)などのフラグは、MVDの解像度(例えば、MVR)を指定する。一例では、AMVRフラグ(例えば、amvr_flag)が0に等しいことは、MVDのMVRが1/4輝度サンプル(1/4画素)であることを指定する。図13において、1/4画素のMVRは、2ビット(例えば、AmvrShiftは2ビット)の左シフト動作に相当する。
【0107】
AMVRフラグ(例えば、amvr_flag)が1に等しいことは、インデックス(例えば、AMVR精度インデックス、もしくは図13ではamvr_precision_idxと表される)および/または予測モードなどの追加情報によって、MVDのMVRがさらに指定されることを、指定する。図13を参照すると、予測モードは、インターアフィンフラグにより示されるアフィン予測モード、パラメータmode_IBCにより示されるIBCモード、またはアフィン予測モードでもIBCモードでもないインター予測モード、であり得る。例えば、インター予測モードは、ブロック全体に基づくインター予測である。
【0108】
例えば、AMVR精度インデックスが、それぞれ、0、1、または2である場合、インター予測モード(例えば、ブロック全体に基づくインター予測)がアフィン予測モードでもIBCモードでもない場合、コーディングブロックがAMVPモードで予測され、AMVRフラグ(例えば、amvr_flag)は1であり、したがって、MVRは、それぞれ1/2の輝度サンプル(1/2画素)、1の輝度サンプル(1画素)、または4の輝度サンプル(4画素)である。一例では、1/2画素、1画素)、または4画素は、3、4、または6ビットのAmvrShiftに対応する。
【0109】
AMVPモードでMvdL0およびMvdL1として示されるか、またはアフィンAMVPモードでMvdCpL0およびMvdCpL1として示される所与のMVDは、AMVRモードが有効にされると、図14に示すように変更されるうる。
【0110】
いくつかの例では、動き補償予測(MCP、Motion Compensation Prediction)に平行移動の動きモデルが適用される。しかしながら、平行移動の動きモデルは、ズームイン/アウト、回転、遠近法の動き、および他の不規則な動きなどの他のタイプの動きをモデル化するのに適していない場合がある。いくつかの実施形態では、ブロックに基づくアフィン変換動き補償予測が適用される。図15Aにおいて、ブロックのアフィン動きフィールドは、4パラメータアフィンモデルが使用されるときの2つの制御点(CP、Control Point)、CP0およびCP1の2つの制御点動きベクトル(CPMV、Control Point Motion Vector)、CPMV0およびCPMV1によって記述される。図15Bにおいて、ブロックのアフィン動きフィールドは、6パラメータアフィンモデルが使用されるとき、CP0、CP1、およびCP2のうちの3つのCPMV0、CPMV1、およびCPMV3によって記述される。
【0111】
4パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x、y)における動きベクトルは、以下のように導出される。
【数1】
【0112】
6パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x、y)における動きベクトルは、以下のように導出される。
【数2】
【0113】
式1-2において、(mv0x、mv0y)は左上隅制御点の動きベクトルであり、(mv1x、mv1y)は右上隅制御点の動きベクトルであり、(mv2x、mv2y)は左下隅制御点の動きベクトルである。また、座標(x、y)は、各ブロックの左上隅を基準とし、WおよびHは、各ブロックの幅および高さを示す。
【0114】
動き補償予測を単純化するために、いくつかの実施形態では、サブブロックに基づくアフィン変換予測が適用される。例えば、図16では、4パラメータアフィン動きモデルが使用され、2つのCPMV、
【数3】
が決定される。現在ブロック(1610)から分割された各4×4(サンプル)輝度サブブロック(1602)の動きベクトルを導出するために、各サブブロック(1602)の中心サンプルの動きベクトル(1601)は、以下の式1に従って算出され、1/16の分数の精度に丸められている。次に、導出された動きベクトル(1601)を用いて各サブブロック(1602)の予測を生成するために動き補償補間フィルタが適用される。クロマ成分のサブブロックサイズは4×4に設定される。4×4のクロマサブブロックのMVは、4つの対応する4×4の輝度サブブロックのMVの平均として算出される。
【0115】
平行移動の動きインター予測と同様に、いくつかの実施形態では、2つのアフィン動きインター予測モード、アフィンマージモード、およびアフィンAMVPモードが使用される。
【0116】
いくつかの実施形態では、幅と高さの両方が8以上のCUに、アフィンマージモードが適用され得る。現在CUのアフィンマージ候補は、空間的に隣接のCUの動き情報に基づいて生成され得る。最大5つのアフィンマージ候補が存在することができ、現在CUに使用されるべきものを示すために、インデックスがシグナリングされる。例えば、以下の3種類のアフィンマージ候補が用いられてアフィンマージ候補リストを形成する。それらは、
(i)隣接CUのCPMVから外挿された継承されたアフィンマージ候補
(ii)隣接CUの平行移動MVを使用して導出された構築アフィンマージ候補
(iii)ゼロMV、である。
【0117】
いくつかの実施形態では、隣接ブロックのアフィン動きモデルから導出される最大で2つの継承されたアフィン候補が存在でき、1つは左隣接CUから、1つは上隣接CUからである。候補ブロックは、例えば、図9に示す位置に配置されることができる。左の予測子の場合、走査順序はA0>A1であり、上の予測子の場合、走査順序はB0>B1>B2である。各側から最初に継承された候補のみが選択される。継承された2つの候補間で、プルーニングチェックは行われない。
【0118】
隣接アフィンCUが識別されると、識別された隣接アフィンCUのCPMVは、現在CUのアフィンマージリスト内のCPMV候補を導出するために使用される。図17に示すように、現在CU(1710)の隣接する左下隅ブロックAはアフィンモードデコードされる。ブロックAを含むCU(1720)の左上隅、右隅および左下隅の上の動きベクトル
【数4】
が獲得される。ブロックAが4パラメータアフィンモデルデコードされる場合、現在CU(1710)の2つのCPMV
【数5】
は、
【数6】
に従って算出される。ブロックAが6パラメータアフィンモデルデコードされる場合、現在CUの3つのCPMV(図示せず)は、
【数7】
に従って算出される。
【0119】
構築されたアフィン候補は、各制御点の隣接した平行移動の動きを組み合わせることによって構築される。制御点の動き情報は、図18に示す特定の空間的隣接および時間的隣接から導出される。CPMVk(k=1,2,3,4)は、k番目の制御点を表す。CPMV1の場合、B2>B3>A2ブロックが順にチェックされ、第1の利用可能なブロックのMVが使用される。CPMV2の場合、B1>B0ブロックがチェックされ、CPMV3の場合、A1>A0ブロックがチェックされる。ブロックTにおけるTMVPは、利用可能であれば、CPMV4として使用される。
【0120】
4つの制御点のMVが獲得された後、アフィンマージ候補がその動き情報に基づいて構築される。制御点MVの以下の組み合わせが使用されて、順に構築する:{CPMV1、CPMV2、CPMV3}、{CPMV1、CPMV2、CPMV4}、{CPMV1、CPMV3、CPMV4}、{CPMV2、CPMV3、CPMV4}、{CPMV1、CPMV2}、{CPMV1、CPMV3}。
【0121】
3つのCPMVの組み合わせは6パラメータアフィンマージ候補を構築し、2つのCPMVの組み合わせは4パラメータアフィンマージ候補を構築する。動きスケーリング処理を回避するために、制御点の参照インデックスが異なる場合、制御点MVの関連する組み合わせは破棄される。
【0122】
継承されたアフィンマージ候補および構築されたアフィンマージ候補がチェックされた後、リストがまだ一杯でない場合、ゼロMVがマージ候補リストの最後に挿入される。
【0123】
いくつかの実施形態では、アフィンAMVPモードは、幅および高さの両方が16以上のCUに適用され得る。CUレベルのアフィンフラグは、アフィンAMVPモードが使用されるかどうかを示すためにビットストリーム内でシグナリングされ、次いで、4パラメータアフィンまたは6パラメータアフィンが使用されるかどうかを示すために他のフラグがシグナリングされる。現在CUのCPMVとそれらの予測子との差分が、ビットストリームでシグナリングされる。アフィンAVMP候補リストサイズは2であり、以下の4種類のCPVM候補を順に用いて生成されることができる。それらは、
(i)隣接CUのCPMVから外挿され継承されたアフィンAMVP候補
(ii)隣接CUの平行移動MVを使用して導出された構築アフィンAMVP候補
(iii)隣接CUからの平行移動MV
(iv)ゼロMV、である。
【0124】
継承されたアフィンAMVP候補のチェック順序は、一例では、継承されたアフィンマージ候補のチェック順序と同様である。違いは、AVMP候補について、現在ブロックと同じ参照ピクチャを有するアフィンCUが考慮されることである。継承されたアフィン動き予測子を候補リストに挿入するとき、プルーニング処理は適用されない。
【0125】
構築されたAMVP候補は、図18に示す特定の空間的隣接から導出される。アフィンマージ候補構築で行われたのと同じチェック順序が使用される。また、隣接ブロックの参照ピクチャインデックスもチェックされる。インターコーディングされ、現在CUと同じ参照ピクチャを有するチェック順序の第1のブロックが使用される。現在CUが4パラメータアフィンモデルデコードされ、CPMV0とCPMV1の両方が利用可能である場合、利用可能なCPMVはアフィンAMVPリスト内の1つの候補として追加される。現在CUが6パラメータアフィンモードデコードされ、3つすべてのCPMV(CPMV0、CPMV1、およびCPMV2)が利用可能である場合、利用可能なCPMVはアフィンAMVPリストに1つの候補として追加される。そうでない場合、構築されたAMVP候補は利用不可として設定される。
【0126】
継承されたアフィンAMVP候補および構築されたAMVP候補がチェックされた後にアフィンAMVPリスト候補が依然として2未満である場合、制御点に隣接する平行移動の動きベクトルが追加されて、利用可能な場合は、現在CUのすべての制御点MVを予測する。最後に、アフィンAMVPリストがまだ満たされていない場合、ゼロMVが使用され、アフィンAMVPリストを満たす。
【0127】
テンプレートマッチング(TM)技術は、ビデオ/画像コーディングに使用され得る。VVC規格の圧縮効率をさらに改善するために、例えば、TMが使用されてMVを精緻化できる。一例では、TMはデコーダ側で使用される。TMモードでは、現在ピクチャ内のブロック(例えば、現在ブロック)のテンプレート(例えば、現在テンプレート)を構築し、現在ピクチャ内のブロックのテンプレートと参照ピクチャ内の複数の可能なテンプレート(例えば、複数の可能な参照テンプレート)との間の最も近いマッチングを決定することによって、MVが精緻化され得る。一実施形態では、現在ピクチャ内のブロックのテンプレートは、ブロックの左隣接再構成サンプルおよびブロックの上隣接再構成サンプルを含むことができる。TMは、VVCを超えるビデオ/画像コーディングに使用され得る。
【0128】
図19は、テンプレートマッチング(1900)の一例を示す。TMは、現在ピクチャ(1910)内の現在CU(1901)のテンプレート(例えば、現在テンプレート)(1921)と、参照ピクチャ(1911)内の複数の可能なテンプレート(例えば、複数の可能なテンプレートのうちの1つのテンプレート(1925))のテンプレート(例えば、参照テンプレート)との間の最も近い一致を決定することによって、現在CU(例えば、現在ブロック)(1901)の動き情報を導出する(例えば、初期MV1902などの初期動き情報から最終動き情報を導出する)ために使用され得る。現在CU(1901)のテンプレート(1921)は、任意の適切な形状および任意の適切なサイズを有することができる。
【0129】
一実施形態では、現在CU(1901)のテンプレート(1921)は、上部テンプレート(1922)および左テンプレート(1923)を含む。上部テンプレート(1922)および左テンプレート(1923)の各々は、任意の適切な形状および任意の適切なサイズを有することができる。
【0130】
上部テンプレート(1922)は、現在CU(1901)の1つまたは複数の上部隣接ブロック内のサンプルを含むことができる。一例では、上部テンプレート(1922)は、現在CU(1901)の1つまたは複数の上部隣接ブロック内にサンプルの4つの行を含む。左テンプレート(1923)は、現在CU(1901)の1つまたは複数の左隣接ブロック内のサンプルを含むことができる。一例では、左テンプレート(1923)は、現在CU(1901)の1つまたは複数の左隣接ブロック内のサンプルの4つの列を含む。
【0131】
参照ピクチャ(1911)内の複数の可能なテンプレートの各々(例えば、テンプレート(1925))は、現在ピクチャ(1910)内のテンプレート(1921)に対応する。一実施形態では、初期MV(1902)は、参照ピクチャ(1911)内の現在CU(1901)から参照ブロック(1903)を指す。参照ピクチャ(1911)内の複数の可能なテンプレートおよび現在ピクチャ(1910)内のテンプレート(1921)の各々(例えば、テンプレート(1925))は、同一の形状および同一のサイズを有することができる。例えば、参照ブロック(1903)のテンプレート(1925)は、参照ピクチャ(1911)内の上部テンプレート(1926)と、参照ピクチャ(1911)内の左テンプレート(1927)とを含む。上部テンプレート(1926)は、参照ブロック(1903)の1つまたは複数の上部隣接ブロック内のサンプルを含むことができる。左テンプレート(1927)は、参照ブロック(1903)の1つまたは複数の左隣接ブロック内のサンプルを含むことができる。
【0132】
TMコストは、テンプレート(例えば、現在テンプレート)(1921)と、テンプレート(例えば、参照テンプレート)(1925)とのテンプレートのペアに基づいて決定され得る。TMコストは、テンプレート(1921)とテンプレート(1925)との間のマッチングを示すことができる。最適化されたMV(または最終MV)は、探索範囲(1915)内の現在CU(1901)の初期MV(1902)の周りの探索に基づいて決定され得る。探索範囲(1915)は、任意の適切な形状および任意の適切な数の参照サンプルを有することができる。一例では、参照ピクチャ(1911)内の探索範囲(1915)は[-L,L]画素範囲を含み、Lは8(例えば、8サンプル)などの正の整数である。例えば、探索範囲(1915)に基づいて差分(例えば、[0,1])が決定され、初期MV(1902)と差分(例えば、[0,1])との和によって中間MVが決定される。中間MVに基づいて、参照ピクチャ(1911)内の中間参照ブロックおよび対応するテンプレートが決定されることができる。TMコストは、参照ピクチャ(1911)内のテンプレート(1921)と中間テンプレートに基づいて決定されることができる。TMコストは、探索範囲(1915)に基づいて決定される差分(例えば、初期MV(1902)に対応する[0,0]、[0,1]など)に対応することができる。一例では、最小TMコストに対応する差分が選択され、最適化されたMVは、最小TMコストに対応する差分と初期MV(1902)との合計である。上述したように、TMは、初期動き情報(例えば、初期MV1902)から最終動き動作情報(例えば、最適化されたMV)を導出することができる。
【0133】
TMは、適宜修正されることができる。一例では、探索ステップサイズはAMVRモードによって決定される。一例では、TMは、双方向マッチング処理などの他のコーディング方法でカスケード接続され(例えば、一緒に使用され)得る。
【0134】
関連技術では、AMVRモードにおけるMV解像度インデックス(例えば、AMVR精度インデックス)は、双予測およびアフィンモード(例えば、アフィンAMVPモード)の固定順序に従ってエンコードされる。例えば、双予測モードでは、(i)各MVRインデックスまたは各MVRインデックスペアと(ii)対応する各MVRとの間の関係は固定されている。双予測およびアフィンモードのためのMVRインデックス(またはMVRインデックス)をシグナリングすることは、AMVRモードのMVRインデックスが固定された順序でエンコードされる場合には、効率的でない場合がある。AMVPモードにおいて、MVR、MVRペア、またはMV精度インデックスを並べ替えるために、TMが適用され得る。例えば、TMコストの1つが現在ブロックの現在テンプレートおよび参照ブロックの参照テンプレートに基づく、対応するTMコストの昇順で、可能なMVRまたは可能なMVRペアに対してTM探索手順が実行され得、MVRインデックスを並べ替えることができる。
【0135】
AMVPモードにおけるMVRのセット(MV精度のセットとも呼ばれる)は、現在ブロックをコーディングするために利用可能である。本開示の一態様によれば、テンプレートマッチング(TM)は、MVRのセット内の複数のMVRを使用して実行されることができる。TMは、(i)動き情報(例えば、複数のMVRによって共有される動き情報)および複数のMVRの各々に基づいて、複数のMVRの各々に対応するTMコストを決定することと、(ii)複数のMVRの各々にそれぞれ対応する決定されたTMコストに基づいて、複数のMVRをランク付けまたは並べ替えることと、(iii)ランク付けまたは並べ替えられた複数のMVRからMVRを選択することと、によって実行され得る。一例では、動き情報は、MVP候補およびMVD情報を決定するために使用されるMVP情報を示す。一例では、複数のMVRによって共有される動き情報は、候補リスト内のMVP候補を指す候補インデックスを含む。複数のMVRのMVPは、動き情報により示されるMVP候補と複数のMVRとに基づいて決定され得るため、複数のMVRごとに異なっていてもよい。TMにおけるTMコストを決定するために使用される複数のMVRのMVは、それぞれのMVPに基づいてもよい。
【0136】
例えば、複数のMVRの各々、例えば1/2画素などについて、MVR(例えば、1/2画素)に関連付けられたMVまたはMVPは、MVRおよび動き情報(例えば、候補リスト内のMVP候補を指す候補インデックス)に基づいて決定され得る。MVRに関連付けられたMVおよび/またはMVPは、動き情報およびMVRに基づいて決定される。MVRに関連付けられたMVおよび/またはMVPは、参照ピクチャ内のMVR(例えば、1/2画素)に関連付けられた参照ブロックを示すことができる。例えば、MVR(例えば、1/2画素)に関連付けられた決定されたMVは、現在ピクチャ内の現在ブロックから、参照ピクチャ内のMVR(例えば、1/2画素)に関連付けられた参照ブロックを指す。MVR(例えば、1/2画素)に対応するコスト(例えば、TMコスト)は、現在ピクチャ内の現在ブロックの現在テンプレートと、参照ピクチャ内のMVR(例えば、1/2画素)に関連付けられた参照ブロックの参照テンプレートとに基づいて決定され得る。複数のMVRは、決定されたTMコストにそれぞれ基づいてランク付け(例えば、並べ替えられる)され得る。一例では、フラグ(例えば、sps_amvr_enabled_flag)が真である場合、複数のMVRは、TMコストの昇順でランク付けされる(例えば、並べ替えられる)。
【0137】
一例では、AMVPモードにおけるMVRのセットは、1/4画素、1/2画素、1画素、および4画素を含む。一例では、複数のMVRはMVRのセットである。他の例では、複数のMVRは、最高解像度(例えば、1/4画素)を除外するMVRのセットのサブセットである。例えば、複数のMVRは、1/2画素、1画素、および4画素を含み、1/4画素を除く。
【0138】
図20は、MVRのセットに適用されるテンプレートマッチング(2000)の一例を示す。テンプレートマッチングは、現在ピクチャ(2010)内の現在ブロック(2001)の現在テンプレート(2021)、および参照ピクチャ(2011)内のそれぞれの参照ブロック(2031)~(2034)の参照テンプレート(2051)~(2054)に対して行われ得る。現在テンプレート(2021)は、任意の適切な形状および任意の適切なサイズを有することができる。参照テンプレート(2051)~(2054)の形状およびサイズは、それぞれ、現在テンプレート(2021)の形状およびサイズに一致することができる。一実施形態では、現在テンプレート(2021)は、上部テンプレートと左テンプレートとを含む。
【0139】
1/4画素の解像度に対応するMV(2041)は、参照ピクチャ(2011)内の現在ブロック(2001)から参照ブロック(2031)を指す。1/2画素の解像度に対応するMV(2042)は、参照ピクチャ(2011)内の現在ブロック(2001)から参照ブロック(2032)を指す。1画素の解像度に対応するMV(2043)は、参照ピクチャ(2011)において、現在ブロック(2001)から参照ブロック(2033)を指す。4画素解像度に対応するMV(2044)は、参照ピクチャ(2011)内の現在ブロック(2001)から参照ブロック(2034)を指す。
【0140】
現在ブロック(2001)の現在テンプレート(2021)と、参照ピクチャ(2011)内の各参照テンプレート(2051)~(2054)とのテンプレートマッチングは、以下のようにして行われることができる。TMコスト(TM0)は、参照テンプレート(2051)と現在テンプレート(2021)とに基づいて算出される。TMコスト(TM1)は、参照テンプレート(2052)と現在テンプレート(2021)とに基づいて算出される。TMコスト(TM2)は、参照テンプレート(2053)と現在テンプレート(2021)とに基づいて算出される。TMコスト(TM4)は、参照テンプレート(2054)と現在テンプレート(2021)とに基づいて算出される。TMコストは、現在テンプレート(2021)とそれぞれの参照テンプレート(例えば、(2051))との間の絶対差分の和(SAD、Sum of Absolute Difference)に基づいて決定され得る。TMコストを決定するために、誤差2乗和(SSE、Sum of Squared Errors)、分散、部分SADなどの他の関数も、使用され得る。
【0141】
その後、MVRは、例えば、MVRのセットに対応する現在テンプレート(2021)と参照テンプレート(2051)~(2054)との間の対応するTMコストの昇順で、TMコストに基づいてランク付け(例えば、並べ替えられる)され得る。一例では、MVRのセットは、1/4画素、1/2画素、1画素、および4画素を含み、昇順のTMコストは、TM2、TM1、TM3、およびTM0である。TM2は、TM0-TM3の中で最も小さい。MVRのセットは、1画素、1/2画素、4画素、および1/4画素としてランク付けされ得る(例えば、並べ替えられる)。
【0142】
現在ブロック(2001)に対してどのMVRが選択されるかを示すために、TM-AMVRフラグ(例えば、tm_amvr_flag)などのフラグが使用され得る。一例では、TM-AMVRフラグ(例えば、tm_amvr_flag)が偽であることは、TMコスト(例えば、TM0-TM3)のうちの最小のTMコスト(例えば、TM2)に対応する第1のMVR(例えば、1画素)が選択されることを示す。TM-AMVRフラグ(例えば、tm_amvr_flag)が真である場合、例えば、現在ブロック(2001)に対してどのMVRが選択されているかを示すために、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)などのインデックスがさらにシグナリングされる。MVRは、第1のMVR(例えば、1画素)を除外するMVRのセット内の残りのMVR(例えば、TM0、TM1、およびTM3)から選択されることができる。例えば、ランク付けされた残りのMVRは、TM1、TM3、およびTM0である。AMVR精度インデックス(例えば、tm_amvr_precision_idx)が0、1、または2であることは、MVRがそれぞれTM1、TM3、またはTM0であることを示す。
【0143】
例示的な擬似構文が表1に示される。AMVRモードが有効にされている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効にされていない(例えば、inter_affine_flagは偽である)、および現在ブロック(2001)のMVDの少なくとも1つの成分が0に等しくない、などの特定の条件が満たされると、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)が偽の場合、TMコストの中で最小のTMコストに対応する最初のMVRが選択され、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)はシグナリングされない。そうでない場合、TM-AMVRフラグ(例えば、tm_amvr_flag)が真である場合、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)がシグナリングされる。
【0144】
【表1】
【0145】
一実施形態では、TMは、MVRのセット内のMVRの全部または一部に適用される。例えば、MVRのセットは、1/4画素、1/2画素、1画素、および4画素を含み、TMが適用される複数のMVRは、1/2画素、1画素、および4画素を含み、1/4画素を除く。この場合、AMVRフラグなどのフラグが偽であるとき、1/4画素が現在ブロック(2001)を符号化するために使用される。
【0146】
テンプレートマッチングは、図20の変形例として、複数のMVR(例えば、1/2画素、1画素、および4画素)に対して行われ得る。例えば、1/2画素、1画素、4画素に対応するTMコストTM1、TM2、TM3は、図20で説明したようにそれぞれ算出され、TM0は算出されない。続いて、複数のMVR(例えば、1/2画素、1画素、および4画素)は、現在ピクチャ(2010)内の現在テンプレート(2021)と参照ピクチャ(2011)内の参照ブロック(例えば、(2032)~(2034))との間の対応するTMコストの昇順(例えば、TM2、TM1、TM3の順序であり、TM2は、TM1、TM2、TM3のうちの最小)で並べ替えられる。複数のMVRは、1画素、1/2画素、および4画素としてランク付けされ得る(例えば、並べ替えられる)。例えば、現在ブロックに対してどのMVRが選択されるかを示すために、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)などのインデックスがシグナリングされる。MVRは、複数のMVR(例えば、TM1-TM3)から選択され得る。TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)が0、1、または2であることは、MVRがそれぞれTM2、TM1、またはTM3であることを示す。
【0147】
例示的な擬似構文が表2に示される。AMVRモードが有効にされている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効にされていない(例えば、inter_affine_flagは偽である)、および現在ブロック(2001)のMVDの少なくとも1つの成分が0に等しくない、などの特定の条件が満たされると、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が偽の場合、1/4画素が選択され、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)はシグナリングされない。そうでない場合、AMVRフラグ(例えば、amvr_flag)が真である場合、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)がシグナリングされる。
【0148】
【表2】
【0149】
一実施形態では、TMはMVRのセットに適用される。例えば、MVRのセットは、1/4画素、1/2画素、1画素、および4画素を含む。テンプレートマッチングは、MVRのセットに対して行われ得る。例えば、1/4画素、1/2画素、1画素、4画素に対応するTMコストTM0-TM3が、図20で説明したように、それぞれ算出される。続いて、MVRのセットは、現在ピクチャ(2010)内の現在テンプレート(2021)と参照ピクチャ(2011)内の参照テンプレート(例えば、(2051)~(2054))との間の対応するTMコストの昇順で(例えば、TM2、TM1、TM3、そしてTM0の順序であり、TM2はTM0-TM3の最小)並べ替えられる。MVRのセットは、1画素、1/2画素、4画素、および1/4画素としてランク付けされ得る(例えば、並べ替えられる)。
【0150】
TM-AMVRフラグ(例えば、tm_amvr_flag)は、最小のTMコスト(例えば、TM2)を有するMVR(例えば、1画素)が選択されたときに、真として設定され得る。そうでない場合、TM-AMVRフラグ(例えば、tm_amvr_flag)は偽に設定され得、通常のAMVRシグナリングが使用される。通常のAMVRシグナリングでは、AMVRフラグがシグナリングされる。AMVRフラグが偽である場合、1/4画素が現在ブロックを符号化するために使用される。AMVRフラグが真である場合、AMVR精度インデックス(例えば、amvr_precision_idx)は、例えば、複数のMVR(例えば、TM1-TM3)のうちのどのMVRが現在ブロックに対して選択されているかを示すためにシグナリングされる。MVRは、複数のMVR(例えば、TM1-TM3)から選択され得る。AMVR精度インデックス(例えば、amvr_precision_idx)が0、1、または2であることは、MVRがそれぞれTM1、TM2、またはTM3であることを示す。
【0151】
例示的な擬似構文が表3に示される。AMVRモードが有効にされている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効にされていない(例えば、inter_affine_flagは偽である)、および現在ブロックのMVDの少なくとも1つの成分が0に等しくない、などの特定の条件が満たされると、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)が偽の場合、以下が行われる。例えば、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が偽の場合、1/4画素が選択され、AMVR精度インデックス(例えば、amvr_precision_idx)はシグナリングされない。そうでない場合、AMVRフラグ(例えば、amvr_flag)が真である場合、AMVR精度インデックス(例えば、amvr_precision_idx)がシグナリングされる。
【0152】
【表3】
【0153】
一実施形態では、AMVRフラグ(例えば、amvr_flag)は、AMVRモードが有効であるか否かを示すためにシグナリングされる。
【0154】
AMVRモードが有効になっていない場合(例えば、AMVRフラグは偽である)、1/4画素が選択され得る。
【0155】
AMVRモードが有効になっている場合(例えば、AMVRフラグは真である)、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされて、TMコストが最小のMVRが選択されたかどうかを示す。
【0156】
TM-AMVRフラグ(例えば、tm_amvr_flag)が真の場合、1/4画素を除く複数のMVR(例えば、1/2画素、1画素、および4画素)にテンプレートマッチングが適用される。例えば、1/2画素、1画素、4画素に対応するTMコストTM1、TM2、TM3は、図20で説明したようにそれぞれ算出され、TM0は算出されない。続いて、複数のMVR(例えば、1/2画素、1画素、および4画素)は、現在ピクチャ(2010)内の現在テンプレート(2021)と参照ピクチャ(2011)内の参照テンプレート(例えば、(2052)~(2054))との間の対応するTMコストの昇順(例えば、TM2、TM1、TM3の順序であり、TM2はTM1~TM3の最小値)で並べ替えられる。複数のMVRは、1画素、1/2画素、および4画素としてランク付けされ得る(例えば、並べ替えられる)。MVR(例えば、1画素)は、1/4画素を除く複数のMVR(例えば、1/2画素、1画素、および4画素)における最小TMコスト(例えば、TM2)に対応して選択される。
【0157】
TM-AMVRフラグ(例えば、tm_amvr_flag)が偽に設定されると、AMVR精度インデックスがシグナリングされ、AMVR精度インデックスに基づいて、MVRを並べ替えることなくMVRが選択される。例えば、AMVR精度インデックスが0、1、または2である場合、MVRはそれぞれ1/2画素、1画素、または4画素である。
【0158】
【表4】
【0159】
例示的な擬似構文が表4に示される。AMVRモードが有効にされている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効にされていない(例えば、inter_affine_flagは偽である)、および現在ブロックのMVDの少なくとも1つの成分が0に等しくない、などの特定の条件が満たされると、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が真の場合、以下が行われる。例えば、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)が偽の場合、AMVR精度インデックス(例えば、amvr_precision_idx)がシグナリングされる。そうでない場合、TM-AMVRフラグ(例えば、tm_amvr_flag)が真である場合、AMVR精度インデックス(例えば、amvr_precision_idx)はシグナリングされない。
【0160】
以上の説明は、単予測デコードされたブロックに適用され得る。上記の説明は、ブロックが双予測デコードされるシナリオに適合されることができる。一例では、双予測モードが使用されるとき、現在ピクチャ内の現在ブロックは、参照リスト0(L0)からの第1の参照ピクチャおよび参照リスト1(L1)からの第2の参照ピクチャを使用して、コーディングされ得る。
【0161】
図21は、双予測モードを使用して現在ブロック(2001)が予測される場合のテンプレートマッチング(2100)の一例を示す。図21の現在ブロック(2001)、現在ピクチャ(2010)、現在テンプレート(2021)、MV(2041)~(2044)、参照テンプレート(2051)~(2054)、参照ブロック(2031)~(2034)、および参照ピクチャ(2011)については、図20で説明される。
【0162】
図21を参照すると、参照ピクチャ(2011)は、第1の参照ピクチャ(2011)と呼ばれ、第1の複数のMVRに関連付けられる。第1の複数のMVRに対応するMV(2041)~(2044)、参照テンプレート(2051)~(2054)、および参照ブロック(2031)~(2034)は、それぞれ第1のMV(2041)~(2044)、第1の参照テンプレート(2051)~(2054)、および第1の参照ブロック(2031)~(2034)と呼ばれる。第1の複数のMVRは、任意の適切なMVRおよび任意の適切な数のMVRを含むことができる。一例では、第1の複数のMVRは、1/4画素、1/2画素、1画素、および4画素を含む。一例では、第1の複数のMVRは、1/4画素、1/2画素、1画素、および4画素のサブセットを含む。
【0163】
図21を参照すると、第2の参照ピクチャ(2111)は、第2の複数のMVRに関連付けられる。第2のMV(2141)~(2144)は、1/4画素、1/2画素、1画素、および4画素などの第2の複数のMVRに、それぞれ対応することができる。第2のMV(2141)~(2144)は、現在ブロック(2001)から第2の参照ピクチャ(2111)内の第2の参照ブロック(2131)~(2134)をそれぞれ指すことができる。第2の参照テンプレート(2151)~(2154)は、第2の参照ブロック(2131)~(2134)にそれぞれ関連付けられる。
【0164】
第2の複数のMVRは、任意の適切なMVRおよび任意の適切な数のMVRを含むことができる。一例では、第2の複数のMVRは、1/4画素、1/2画素、1画素、および4画素を含む。一例では、第2の複数のMVRは、1/4画素、1/2画素、1画素、および4画素のサブセットを含む。
【0165】
第1の複数のMVRにおける第1の数のMVRは、第2の複数のMVRにおける第2の数のMVRと同一であっても異なっていてもよい。
【0166】
L0からの第1の参照ピクチャ(2011)とL1からの第2の参照ピクチャ(2111)とに基づいて、現在ブロック(2001)が予測されることができる。
【0167】
本開示の一実施形態によれば、TMはMVRペアで行われることができる。MVRペアは、第1の複数のMVRと第2の複数のMVRとの任意の適切な組み合わせを含むことができる。一実施形態では、MVRペアのうちのMVRペアは、(i)第1の複数のMVRのうちの第1のMVR(例えば、1/2画素)と、(ii)第2の複数のMVRのうちの第2のMVR(例えば、1画素)とを含む。TMは、MVRペアの各MVRペアに対応するTMコストを決定することを含むことができ、例えば、MVRペアは、第1のMVRとして1/2画素および第2のMVRとして1画素を含む。TMコストは、現在ブロック(2001)の現在テンプレート(2021)の一部と、それぞれのMVRペアの双予測子とに基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ(2011)内の第1の参照テンプレート(例えば、(2051))の部分と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ(2111)内の第2の参照テンプレート(例えば、(2151))の部分とに基づくことができる。一実施形態では、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けすることと、ランク付けされたMVRペアからMVRペアを選択することとを含む。現在ブロック(2001)は、選択されたMVRペアに基づいて再構成され得る。
【0168】
上述したように、TMは、AMVPモードのMVRペアが並べ替えられ得る双予測現在ブロック(例えば、現在ブロック(2001))などの双予測CUに、適用され得る。図21を参照すると、TMコストの各々は、現在テンプレート(2021)と参照テンプレート(例えば、(2051)および(2151))に基づく対応する双予測子との間の歪み(例えば、差分)に従って算出され得る。
【0169】
図21に示すような一実施形態では、第1のMVR(例えば、1/2画素)と第2のMVR(例えば、1画素)とを含むMVRペアについて、双予測子は、第1のMVRに対応する第1の参照テンプレート(例えば、(2051))と第2のMVRに対応する第2の参照テンプレート(例えば、(2151))とに基づいて決定される。双予測子は、第1の参照テンプレート(例えば、(2051))と第2の参照テンプレート(例えば、(2151))との平均であり得る。一例では、双予測子は、第1の参照テンプレート(例えば、(2051))と第2の参照テンプレート(例えば、(2151))との加重平均である。一例では、双予測子はオフセットによって修正される。
【0170】
一例では、MVRペアに対応する双予測子(TPb(i,j)と表される)は、式3を用いて算出される。
TPb(i,j)=(TP0i+TP1j+1)≫1 式3
パラメータTP0iおよびパラメータTP1jは、参照リストL0についての第1の参照テンプレート(例えば、(2051))、および参照リストL1についての第2の参照テンプレート(例えば、(2151))を表すことができる。整数iおよびjは、MVRペアのうちの第1のMVRおよび第2のMVRを、それぞれ表す。式3に基づいて、双予測子TPb(i、j)内の予測子サンプル値は、第1の参照テンプレート内の第1の参照サンプル値と第2の参照テンプレート内の第2の参照サンプル値との平均であり得る。
【0171】
MVRペアに対応するTMコスト(TMコスト(i,j)と表される)は、例えば、以下の式4を用いて、現在テンプレート(TCと表される)および双予測子TPb(i,j)に基づいて、算出され得る。
TMコスト(i,j)=SAD(TPb(i,j)-TC) 式4
【0172】
パラメータTCは、現在ブロック(2001)の現在テンプレート(2021)を表す。絶対差分の和(SAD)は、例えば、現在テンプレート(2021)内のサンプル値と双予測子TPb(i,j)内の予測子サンプルの対応する値との間の差分絶対値和の関数を示す。
【0173】
SSE、分散、部分SADなどの他の機能が使用されて、TMコストを決定し得る。部分SADの一例では、現在テンプレート(2021)の一部、第1の参照テンプレート(例えば、1851)の対応する部分、および第2の参照テンプレート(例えば、1951)の対応する部分が、TMコストを決定するために使用される。
【0174】
部分SADの一例では、現在テンプレート(2021)の一部または全体、第1の参照テンプレート(例えば、1851)の一部または全体、および第2の参照テンプレート(例えば、1951)の一部または全体が、TMコストを決定するために使用される前にダウンサンプリングされる。
【0175】
上述したように、現在ブロック(2001)をコーディングするために使用されるMVRペアが、TMコストの昇順で並べ替えられたMVRペアのTMコストに従って導出され得る。
【0176】
一実施形態では、MVRペアのうちの第1のMVRおよび第2のMVRは、現在ブロックが双予測モードデコードされる(例えば、エンコードおよび/またはデコードされる)ときに、同一である(例えば、式3中のi=j)。例えば、第1の複数のMVRと第2の複数のMVRとは同一である。第1の複数のMVRにおける1/4画素、1/2画素、1画素、および4画素は、iが0、1、2、および3であることに、それぞれ対応する。第2の複数のMVRにおける1/4画素、1/2画素、1画素、および4画素は、jが0、1、2、および3であることに、それぞれ対応する。第1のMV(2041)~(2044)は、1/4画素、1/2画素、1画素、および4画素に、それぞれ対応する。第2のMV(2141)~(2144)は、1/4画素、1/2画素、1画素、および4画素に、それぞれ対応する。したがって、MVRペアは、表5に示すように、第1のMVRペア、第2のMVRペア、第3のMVRペア、第4のMVRペアの4つのMVRペアを含む。例えば、第1のMVRペアは、iが0である1/4画素の第1のMVRと、jが0である1/4画素の第2のMVRとを含む。
【0177】
【表5】
【0178】
4つのMVRペアに対応する4つの双予測子TPb(0,0)、TPb(1,1)、TPb(2,2)、およびTPb(3,3)は、式3に基づいて、決定され得る。例えば、双予測子TPb(0,0)は、第1の参照テンプレート(2051)(例えば、i=0のTP0i)および対応する第2の参照テンプレート(2151)(例えば、j=0のTP1j)に基づいて決定される。一例では、TPb(0,0)は、TP00とTP10との平均である。
【0179】
4つのMVRペアに対応する4つのTMコスト(例えば、TMコスト(0,0)、TMコスト(1,1)、TMコスト(2,2)、およびTMコスト(3,3))は、現在テンプレート(2021)と、双予測子TPb(0,0)、TPb(1,1)、TPb(2,2)、およびTPb(3,3)とに基づいて、それぞれ決定され得る。例えば、TMコスト(0,0)は、TMコスト(0,0)が、双予測子TPb(0,0)と現在テンプレート(2021)との間のSADである式4を用いて、決定され得る。
【0180】
4つのMVRペアは、4つのTMコストの昇順など、対応する4つのTMコストに基づいてランク付けされ得る(例えば、表5に示す順序とは異なる順序に並べ替えられる)。一例では、4つのTMコストの昇順は、TMコスト(1,1)、TMコスト(2,2)、TMコスト(0,0)、そしてTMコスト(3,3)である。TMコスト(1,1)、TMコスト(2,2)、TMコスト(0,0)、およびTMコスト(3,3)に対応するランク付けされたMVRペアは、第2のMVRペア、第3のMVRペア、第1のMVRペア、および第4のMVRペアを含む。
【0181】
MVRペアは、ランク付けされたMVRペアから選択され得る。一例では、選択されたMVRペアは、TMコストに対応する第2のMVRペア(1,1)などの、最小のTMコストに対応するMVRペアである。一実施形態では、選択されたMVRペアが最小のTMコストに対応するMVRペアである場合、インデックスはシグナリングされない。
【0182】
一例では、ランク付けされたMVRペアのうちのどのMVRペアが選択されたかを示すためにインデックスがシグナリングされる。例えば、ランク付けされた(例えば、並べ替えられた)MVRペアに基づいて、0、1、2、または3のインデックスは、選択されたMVRペアが、それぞれ第2のMVRペア、第3のMVRペア、第1のMVRペア、または第4のMVRペアであることを示す。
【0183】
一実施形態では、現在ブロックが双予測モードデコードされる(例えば、エンコードおよび/またはデコードされる)とき、MVRペアの1つにおける第1のMVRおよび第2のMVRは同一であり(例えば、式3中のi=j)、MVRペアの他の1つにおける第1のMVRおよび第2のMVRは異なる(例えば、式3中のi≠j)。一例では、第1の複数のMVRはN1個の第1のMVRを有し、第2の複数のMVRはN2個の第2のMVRを有し、N1およびN2は正の整数である。N1およびN2は、同一であっても異なっていてもよい。一例では、N1およびN2は4であり、第1のMVRおよび第2のMVRの16個のMVRペアまたは16個の異なる組み合わせが、双予測現在ブロックに関連付けられる。表6は、16個のMVRペアの例を示している。
【0184】
【表6】
【0185】
一例では、第1のMV(2041)~(2044)は、それぞれ1/4画素、1/2画素、1画素、および4画素に対応する。第2のMV(2141)~(2144)は、1/4画素、1/2画素、1画素、および4画素に、それぞれ対応する。
【0186】
表6の16個のMVRペアに対応する16個の双予測子TPb(i,j)(例えば、TPb(0,0)~TPb(3,3))は、式3に基づいて決定され得る。例えば、表6の第8のMVRペアに対応する双予測子TPb(1,3)は、第1の参照テンプレート(2052)(例えば、i=1のTP0i)と、対応する第2の参照テンプレート(2154)(例えば、j=3のTP1j)とに基づいて決定される。一例では、TPb(1,3)は、TP01とTP13との平均である。
【0187】
16個のMVRペアに対応する16個のTMコスト(例えば、TMコスト(0,0)~TMコスト(3,3))は、それぞれ、現在テンプレート(2021)および双予測子TPb(0,0)~TPb(3,3)に基づいて決定され得る。例えば、TMコスト(1,3)は、TMコスト(1,3)は、双予測子TPb(1,3)と現在テンプレート(2021)との間のSADである式4を用いて決定される。
【0188】
表6の16個のMVRペアは、16個のTMコストの昇順など、対応する16個のTMコストに基づいて、ランク付けされ得る(例えば、並べ替えられる)。MVRペアは、ランク付けされた16個のMVRペアから選択され得る。一例では、選択されたMVRペアは、16個のTMコストのうちの最小のTMコストに対応するMVRペアである。例えば、選択されたMVRペアが16個のTMコストの中で最小のTMコストに対応するMVRペアである場合、インデックスはシグナリングされない。一例では、ランク付けされた(例えば、並べ替えられた)16個のMVRペアのうちのどのMVRペアが選択されたかを示すために、インデックスがシグナリングされる。
【0189】
簡潔にするために、表5に示すMVRペアは、MVRペアの第1のセットと呼ばれる。表6に示すMVRペアは、MVRペアの第2のセットと呼ばれる。
【0190】
一実施形態では、MVRペア(例えば、第1のセットのMVRペア、または第2のセットのMVRペア)に対してTMが行われるかどうかを示すために、シーケンスパラメータセット(SPS、Sequence Parameter Set)、ピクチャパラメータセット(PPS、Picture Parameter Set)、ピクチャヘッダ(PH、Picture Header)、スライスヘッダなどのビデオビットストリームで、フラグがシグナリングされる。
【0191】
双予測に関連する実施形態は、1/4画素、1/2画素、1画素、および4画素を含む第1の複数のMVRおよび第2の複数のMVRに関して説明される。双予測に関する説明は、第1の複数のMVRおよび/または第2の複数のMVRがより少ないまたはより多いMVRを含む場合に適合され得る。
【0192】
TMは、アフィンAMVPモード、アフィンマージモードなどのアフィンモードで適用され得、アフィンTMと呼ばれることができる。図22は、アフィンマージモードなどにおけるTM(2200)の一例を示す。現在ブロック(例えば、現在CU)(2201)のテンプレート(2221)は、平行移動の動きモデルに適用されるTM内のテンプレート(例えば、図19のテンプレート(1921))に対応することができる。参照ピクチャ内の参照ブロックの参照テンプレート(2225)は、ブロック境界において隣接サブブロック(例えば、図22に示すようなA0~A3およびL0~L3)の制御点MV(CPMV)導出MVによって指される複数のサブブロックテンプレート(例えば、4×4サブブロック)を含むことができる。
【0193】
アフィンモード(例えば、アフィンマージモード)で適用されるTMの探索プロセスは、他のCPMV(例えば、(i)4パラメータモデルが使用される場合はCPMV1、または(ii)6パラメータモデルが使用される場合はCPMV1およびCPMV2)を一定に保ちながら、CPMV0から開始することができる。探索は、水平方向および垂直方向に向かって行われ得る。一例では、ゼロベクトルが水平探索および垂直探索から見つかった最良の差分ベクトルでない場合にのみ、探索は、対角線方向に続く。アフィンTMは、CPMV1について同じ検索プロセスを繰り返すことができる。アフィンTMは、6パラメータモデルが使用される場合、CPMV2について同じ探索プロセスを繰り返すことができる。ゼロベクトルが前の反復からの最良の差分ベクトルではなく、探索プロセスが3回未満反復された場合、精緻化されたCPMVに基づいて、探索プロセス全体を精緻化されたCPMV0から再開できる。
【0194】
(i)図20のMV(2041)~(2044)(例えば、現在ブロック(2001)が単予測デコードされる場合)、および/または、(ii)図21のMV(2041)~(2044)および第2のMV(2141)~(2144)(例えば、現在ブロック(2001)が双予測デコードされる場合)を決定するために、様々な実施形態が使用され得る。
【0195】
本開示の一実施形態によれば、図20のMV(2041)~(2044)は、図20の複数のMVRに対応するそれぞれのMV予測子(MVP)に等しくなり得る。図21のMV(2041)~(2044)および第2のMV(2141)~(2144)は、図21の第1の複数のMVRおよび第2の複数のMVRに対応するそれぞれのMVPに等しくなり得る。
【0196】
一実施形態では、それぞれのMVR(例えば、(i)図20の複数のMVR、または(ii)図21の第1の複数のMVRおよび第2の複数のMVR)のMVPのうちの1つまたは複数は、所与の参照リスト、1つまたは複数の参照ピクチャインデックス、および1つまたは複数のMVPインデックスに基づいて決定され得る。
【0197】
一実施形態では、MVRの各MVPは、所与の参照リスト、1つまたは複数の参照ピクチャインデックス、および対応するMVPインデックスに基づいて決定される。例えば、MVRの各MVPは、対応するMVPインデックスから直接(例えば、同時に)決定される。
【0198】
一例では、現在ブロックは単予測デコードされる。MVRに対するMVPは、現在ブロックの現在テンプレートと参照ピクチャ内の参照テンプレートとの間のTMで使用されるMVとして適用される。TMは、MVRのMVPに基づいて行われ、MVRのTMコストは、MVPに基づいてそれぞれ算出される。MVRインデックスの順序は、MVRのTMコストの昇順に基づき得る。
【0199】
図20を参照すると、現在ブロック(2001)は単予測デコードされる。複数のMVRは、現在ブロック(2001)に利用可能である。複数のMVRのMVPは、参照ピクチャリスト(例えば、参照リスト0(L0)または参照リスト1(L1))と、参照ピクチャリスト内の参照ピクチャ(2011)を示す参照ピクチャインデックスと、MVPインデックスとに基づいて決定されることができる。
【0200】
一例では、MVP候補は、参照ピクチャリスト(例えば、L0またはL1)、参照ピクチャ(2011)、およびMVPインデックスに基づいて決定される。例えば、MVP候補を含む現在ブロック(2001)の候補リストが決定され、MVPインデックスは、どのMVP候補がMVP候補として選択されるかを示す。複数のMVRに対するMVPは、MVP候補と複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)とに基づいて、それぞれ決定される。MVPには、1/4画素、1/2画素、1画素、4画素に相当するMVP0、MVP1、MVP2、MVP3が、それぞれ含まれる。図20を参照すると、MV(2041)~(2044)は、MVP0、MVP1、MVP2、MVP3とそれぞれ、等しいと決定される。
【0201】
一実施形態では、複数のMVR(例えば、1/4画素のMVPa)のうちの1つのMVPは、所与の参照リスト(例えば、L0)と、参照ピクチャインデックス(例えば、参照ピクチャ(2011)を示す)と、MVPインデックスとに基づいて決定される。一例では、複数のMVRのうちの1つは、複数のMVRのうちの最高解像度(例えば、1/4画素)に対応する。続いて、複数のMVRのうちの残りのMVRの他のMVP(例えば、それぞれ1/2画素、1画素および4画素に対応するMVPb、MVPcおよびMVPd)が、複数のMVRのうちの1つのMVP(例えば、1/4画素のMVPa)から決定され得る。例えば、他のMVP(例えば、MVPb、MVPc、およびMVPd)を得るために、MVP(例えば、1/4画素のMVPa)を1/2画素、1画素および4画素の残りのMVRにそれぞれ丸めるので、得られたMVPの精度はそれぞれ所与のMVRに収まり得る。一例では、MVPaはMVP0である。MVPbはMVP1と同一でも異なっていてもよく、MVPcはMVP2と同一でも異なっていてもよく、MVPdはMVP3と同一でも異なっていてもよい。
【0202】
一実施形態では、複数のMVRのMVDは、複数のMVRにそれぞれ基づいて決定される。複数のMVRのMVDは、複数のMVRに基づいて、それぞれ同時に決定され得る。例えば、複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)に対するMVD(例えば、MVD0~MVD3)は、複数のMVRおよびMVD情報に基づいて、それぞれ決定される。MVD情報は、初期MVDの大きさおよび方向を示すことができる。一例では、MVDは、複数のMVRに従って初期MVDからそれぞれ取得される。
【0203】
あるいは、MVD(例えば、1/4画素に対応するMVDa)のうちの1つは、MVD情報と複数のMVRのうちの対応するMVR(例えば、1/4画素)とに基づいて、決定され得る。続いて、複数のMVRのうちの残りのMVR(例えば、1/2画素、1画素、および4画素)に対応するMVDのうちの残りのMVD(例えば、MVDb-MVDd)が、MVDのうちの1つ(例えば、MVDa)および残りのMVRに基づいて、決定され得る。一例では、MVD0はMVDaである。
【0204】
一実施形態では、MVは、MVDおよびそれぞれのMVPに基づいて決定される。MVを決定するために使用されるMVDは、上述の実施形態または任意の他の適切な方法を使用して取得され得る。MVを決定するために使用されるMVPは、上記の実施形態または任意の他の適切な方法を使用して取得され得る。
【0205】
一例では、MV(2041)~(2044)は、(i)MVD0-MVD3および(ii)対応するMVP0-MVP3に基づいて、それぞれ 決定される。
【0206】
一例では、MV(2041)~(2044)は、(i)MVDa-MVDdおよび対応するMVPa-MVPdに基づいて、それぞれ決定される。
【0207】
一例では、MV(2041)~(2044)は、(i)MVD0-MVD3および対応するMVPa-MVPdに基づいて、それぞれ決定される。
【0208】
一例では、MV(2041)~(2044)は、(i)MVDa-MVDdおよび対応するMVP0-MVP3に基づいて、それぞれ決定される。
【0209】
一例では、現在ブロックは双予測デコードされる。現在ブロックに利用可能なMVRペア(例えば、表5または表6に記載のMVRペア)内の各MVRペアについて、それぞれL0およびL1の現在テンプレート(例えば、(2021))と2つの参照テンプレート(例えば、第1の参照テンプレート(2051)および第2の参照テンプレート(2151))との間のMVペア(例えば、図21のMV(2041)および(2141))として、L0およびL1からの2つのMVPがそれぞれ適用され得る。MVRペアのTMコストは、図21で説明したように、MVRインデックスの順序を決定するために昇順で並べ替えられることができる。
【0210】
図21を参照すると、現在ブロック(2001)は双予測デコードされる。第1の複数のMVRおよび第2の複数のMVRは、現在ブロック(2001)で利用可能である。第1の複数のMVRの第1のMVPおよび第2の複数のMVRの第2のMVPが決定され得る。したがって、TMで使用される第1のMV(2041)~(2044)は、それぞれ第1のMVPに等しいと決定され得、TMで使用される第2のMV(2141)~(2144)はそれぞれ第2のMVPに等しいと決定され得る。
【0211】
第1の複数のMVRの第1のMVPは、例えば、第1の参照ピクチャリスト(例えば、L0)と、第1の参照ピクチャリスト内の第1の参照ピクチャ(2011)を示す第1の参照ピクチャインデックスと、第1の参照ピクチャリストの第1のMVPインデックスとに基づいて決定され得る。
【0212】
一例では、第1のMVP候補は、第1の参照ピクチャリスト(例えば、L0)と、第1の参照ピクチャを示す第1の参照ピクチャ(2011)のインデックスと、第1のMVPインデックスとに基づいて決定され得る。第1のMVPインデックスは、候補リスト(例えば、第1の参照ピクチャリストの第1の候補リスト)内の第1のMVP候補を示すことができる。
【0213】
第1の複数のMVRの第1のMVPは、第1のMVP候補および第1の複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)に基づいて、それぞれ決定され得る。第1のMVPには、1/4画素、1/2画素、1画素、4画素に相当するMVP00、MVP01、MVP02、MVP03が、それぞれ含まれる。図21を参照すると、第1のMV(2041)~(2044)は、MVP00、MVP01、MVP02、MVP03とそれぞれ等しいと決定される。一例では、図21で説明したMVP00、MVP01、MVP02、およびMVP03は、図20で説明したMVP0、MVP1、MVP2、およびMVP3と、それぞれ等しい。
【0214】
同様に、第2の複数のMVRの第2のMVPは、例えば、第2の参照ピクチャリスト(例えば、L1)と、第2の参照ピクチャリスト内の第2の参照ピクチャ(2111)を示す第2の参照ピクチャインデックスと、第2の参照ピクチャリストの第2のMVPインデックスとに基づいて決定され得る。
【0215】
一例では、第2の参照ピクチャリスト(例えば、L1)と、第2の参照ピクチャ(2111)を示す第2の参照ピクチャインデックスと、第1の参照ピクチャリストの第2のMVPインデックスとに基づいて、第2のMVP候補が決定され得る。第2のMVPインデックスは、候補リスト(例えば、第2の参照ピクチャリストの第2の候補リスト)内の第2のMVP候補を示すことができる。
【0216】
第2の複数のMVRに対する第2のMVPは、第2のMVP候補および第2の複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)に基づいて、それぞれ決定され得る。第2のMVPには、1/4画素、1/2画素、1画素および4画素に相当するMVP10、MVP11、MVP12およびMVP13が、それぞれ含まれる。図21を参照すると、第2のMV(2041)~(2044)は、MVP10、MVP11、MVP12、およびMVP13にそれぞれ等しいと決定される。
【0217】
一例では、第1のMVP候補および第2のMVP候補を示すために単一のMVPインデックスが使用される。
【0218】
一実施形態では、第1の複数のMVRのうちの1つの第1のMVPが決定され、続いて、第1の複数のMVRのうちの第1の残りのMVRの第1の残りのMVPが、第1のMVPおよび第1の残りのMVRに基づいて決定され得る。同様に、第2の複数のMVRのうちの1つの第2のMVPが決定され、続いて、第2の複数のMVRのうちの第2の残りのMVRの第2の残りのMVPが、第2のMVPおよび第2の残りのMVRに基づいて決定され得る。
【0219】
一実施形態では、第1の複数のMVRのうちの1つの第1のMVP(例えば、1/4画素のMVP0a)は、第1の参照リスト(例えば、L0)と、第1の参照ピクチャインデックス(例えば、第1の参照ピクチャ(2011)を示す)と、第1のMVPインデックスとに基づいて決定される。例えば、第1のMVP候補から第1のMVPが決定される。一例では、第1の複数のMVRのうちの1つは、第1の複数のMVRにおける最高解像度(例えば、1/4画素)に対応する。第1の複数のMVRのうちの第1の残りのMVRの他の第1のMVP(例えば、1/2画素、1画素および4画素にそれぞれ対応するMVP0b、MVP0cおよびMVP0d)は、第1のMVP(例えば、1/4画素のMVP0a)から決定され得る。例えば、他の第1のMVP(例えば、MVP0b、MVP0c、およびMVP0d)を得るために、第1のMVP(例えば、1/4画素のMVP0a)を、1/2画素、1画素、および4画素の第1の残りのMVRにそれぞれ丸められるので、得られた第1のMVPの精度はそれぞれ所与のMVRに収まり得る。一例では、MVP0aはMVP00である。MVP0bはMVP01と同一でも異なっていてもよく、MVP0cはMVP02と同一でも異なっていてもよく、MVP0dはMVP03と同一でも異なっていてもよい。
【0220】
第2の複数のMVRのうちの1つ(例えば、1/4画素のMVP1a)の第2のMVPは、第2の参照リスト(例えば、L1)、第2の参照ピクチャインデックス(例えば、第2の参照ピクチャ(2111)を示す)、および第2のMVPインデックスに基づいて決定される。例えば、第2のMVP候補から第2のMVPが決定される。一例では、第2の複数のMVRのうちの1つは、第2の複数のMVRにおける最高解像度(例えば、1/4画素)に対応する。第2の複数のMVRのうちの第2の残りのMVRの他の第2のMVP(例えば、それぞれ1/2画素、1画素および4画素に対応するMVP1b、MVP1cおよびMVP1d)は、第2のMVP(例えば、1/4画素のMVP1a)から決定され得る。例えば、他の第2のMVP(例えば、MVP1b、MVP1cおよびMVP1d)を得るために、第2のMVP(例えば、1/4画素のMVP1a)が1/2画素、1画素、および4画素の第2の残りのMVRにそれぞれ丸められるので、得られた第2のMVPの精度はそれぞれ所与のMVRに収まり得る。一例では、MVP1aはMVP10である。MVP1bはMVP11と同一でも異なっていてもよく、MVP1cはMVP12と同一でも異なっていてもよく、MVP1dはMVP13と同一でも異なっていてもよい。
【0221】
一実施形態では、現在ブロックが双予測デコードされる場合、第1の複数のMVRの第1のMVDは、第1の複数のMVRに基づいてそれぞれ決定される。第1の複数のMVRの第1のMVDは、第1の複数のMVRに基づいてそれぞれ同時に決定され得る。例えば、第1の複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)の第1のMVD(例えば、MVD00、MVD01、MVD02、およびMVD03またはMVD00~MVD03)は、第1の複数のMVRおよび第1のMVD情報に基づいてそれぞれ決定される。第1のMVD情報は、第1の初期MVDの大きさおよび方向を示すことができる。一例では、第1のMVDは、第1の複数のMVRに従って第1の初期MVDからそれぞれ取得される。
【0222】
あるいは、第1のMVD(例えば、1/4画素に対応するMVD0a)のうちの1つは、第1のMVD情報と第1の複数のMVRのうちの対応する第1のMVR(例えば、1/4画素)とに基づいて決定され得る。続いて、第1の複数のMVRのうちの残りの第1のMVR(例えば、1/2画素、1画素、および4画素)に対応する第1のMVDのうちの残りの第1のMVD(例えば、MVD0b~MVD0d)が、第1のMVDのうちの1つ(例えば、MVD0a)と残りの第1のMVRとに基づいて決定され得る。
【0223】
一実施形態では、第1のMVは、第1のMVDおよびそれぞれの第1のMVPに基づいて決定される。第1のMVを決定するために使用される第1のMVDは、上述の実施形態または任意の他の適切な方法を使用して取得され得る。第1のMVを決定するために使用される第1のMVPは、上述の実施形態または任意の他の適切な方法を使用して取得され得る。
【0224】
図20または図21を参照すると、一例では、MV(2041)~(2044)は、(i)MVD01~MVD03、および(ii)対応するMVP01~MVP03に基づいて、それぞれ決定される。一例では、MV(2041)~(2044)は、(i)MVD0a~MVD0dおよび対応するMVP0a~MVP0dに基づいて、それぞれ決定される。一例では、MV(2041)~(2044)は、(i)MVD01~MVD03および対応するMVP0a~MVP0dに基づいて、それぞれ決定される。一例では、MV(2041)~(2044)は、(i)MVD0a~MVD0dおよび対応するMVP01~MVP03に基づいて、それぞれ決定される。
【0225】
一実施形態では、現在ブロックが双予測デコードされる場合、第2の複数のMVRの第2のMVDは、第2の複数のMVRに基づいてそれぞれ決定される。第2の複数のMVRの第2のMVDは、第2の複数のMVRに基づいてそれぞれ同時に決定されることができる。例えば、第2の複数のMVR(例えば、1/4画素、1/2画素、1画素、および4画素)の第2のMVD(例えば、MVD10、MVD11、MVD12、およびMVD13またはMVD10~MVD13)は、第2の複数のMVRおよび第2のMVD情報に基づいてそれぞれ決定される。第2のMVD情報は、第2の初期MVDの大きさおよび方向を示すことができる。一例では、第2のMVDは、第2の複数のMVRに従って第2の初期MVDからそれぞれ取得される。
【0226】
あるいは、第2のMVD(例えば、1/4画素に対応するMVD1a)のうちの1つは、第2のMVD情報と第2の複数のMVRのうちの対応する第2のMVR(例えば、1/4画素)とに基づいて決定され得る。続いて、第2の複数のMVRのうちの残りの第2のMVR(例えば、1/2画素、1画素、および4画素)に対応する第2のMVDのうちの残りの第2のMVD(例えば、MVD1b~MVD1d)は、第2のMVDのうちの1つ(例えば、MVD1a)と残りの第2のMVRとに基づいて決定され得る。
【0227】
一実施形態では、第2のMVは、第2のMVDおよびそれぞれの第2のMVPに基づいて決定される。第2のMVを決定するために使用される第2のMVDは、上述の実施形態または任意の他の適切な方法を使用して取得され得る。第2のMVを決定するために使用される第2のMVPは、上述の実施形態または任意の他の適切な方法を使用して取得され得る。
【0228】
図21を参照すると、一例では、第2のMV(2141)~(2144)は、(i)MVD10~MVD13および(ii)対応するMVP10~MVP13に基づいてそれぞれ決定される。一例では、MV(2141)~(2144)は、(i)MVD1a~MVD1d、および対応するMVP1a~MVP1dに基づいて、それぞれ決定される。一例では、MV(2141)~(2144)は、(i)MVD10-MVD13および対応するMVP1a~MVP1dに基づいて、それぞれ決定される。一例では、MV(2141)~(2144)は、(i)MVD1a~MVD1dおよび対応するMVP10~MVP13に基づいてそれぞれ決定される。
【0229】
図23は、本開示の一実施形態によるエンコードプロセス(2300)を概説するフローチャートを示している。様々な実施形態では、プロセス(2300)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(例えば、(403)、(603)、(703))の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2300)はソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2300)を実行する。プロセスは(S2301)で開始し、(S2310)に進む。
【0230】
(S2310)において、適応動きベクトル予測(AMVP)モードおよび適応動きベクトル解像度(AMVR)モードでエンコードされるべき現在ピクチャ内の現在ブロックについて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々についてのそれぞれの第1の動きベクトル予測子(MVP)が、MVP候補と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて決定され得る。
【0231】
(S2320)において、少なくとも第1の複数のMVRおよび第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)が行われ得る。
【0232】
(S2330)では、(i)AMVPモードおよびAMVRモードが現在ブロックに適用されていることを示し、(ii)MVP候補を示す動き情報を含む、予測情報がエンコードされ得る。
【0233】
(S2340)において、エンコードされた予測情報は、ビデオビットストリームに含まれ得る。
【0234】
そして、プロセス(2300)は、(S2399)に進み、終了する。
【0235】
プロセス(2300)は様々なシナリオに適切に適合され得、プロセス(2300)内のステップはそれに応じて調整され得る。プロセス(2300)内のステップのうちの1つまたは複数が、適合され、省略され、繰り返され、かつ/または組み合わせられ得る。プロセス(2300)を実施するために任意の適切な順序が使用され得る。(1つまたは複数の)追加のステップが追加され得る。
【0236】
一実施形態では、現在ブロックは単予測でエンコードされる。TMコストの各々は、第1の複数のMVRのうちのそれぞれの第1のMVRに対応する。TMは、決定されたTMコストに基づいて第1の複数のMVRをランク付けすることをさらに含むことができる。現在ブロックは、ランク付けされた第1の複数のMVRのうちの1つに基づいてエンコードされ得る。一例では、TMは、ランク付けされた第1の複数のMVRからMVRを選択することを含む。現在ブロックは、選択されたMVRに基づいてエンコードされ得る。(S2340)において、エンコードされた現在ブロックがビデオビットストリームに含まれ得る。
【0237】
一実施形態において、動き情報は、第1の参照ピクチャに対応する候補リスト内のMVP候補を示す。
【0238】
一例では、第1の複数のMVRの各々について、ステップ(S2310)は、MVP候補およびそれぞれの第1のMVRに基づいてそれぞれの第1のMVPを決定するステップを含むことができ、ステップ(S2320)は、それぞれの第1のMVRの第1のMVPが現在ブロックから第1の参照ブロックを指すことができる、第1の参照ピクチャ内の第1の参照ブロックを決定するステップを含むことができる。第1の複数のMVRの各々について、ステップ(S2320)は、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいて、TMコストを決定するステップをさらに含むことができる。
【0239】
一例では、第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数のMVRとを含む。ステップ(S2310)は、MVP候補および1/4画素に基づいて1/4画素に対応するMVPを決定するステップと、1/4画素に対応するMVPとそれぞれの1つまたは複数のMVRとに基づいて、第1のMVPのうちの残りの1つまたは複数のMVPを決定するステップとを含むことができる。第1の複数のMVRの各々について、ステップ(S2320)は、それぞれの第1のMVRの第1のMVPが現在ブロックから第1の参照ブロックを指すことができる、第1の参照ピクチャ内の第1の参照ブロックを決定するステップを含むことができる。第1の複数のMVRの各々について、ステップ(S2320)は、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいて、TMコストを決定するステップを含むことができる。
【0240】
一実施形態では、第1の複数のMVRのそれぞれについて、それぞれの第1のMVDはそれぞれの第1のMVRに基づいて決定され得、それぞれの第1のMVRの第1のMVはそれぞれの第1のMVDに基づいて決定され得る。(S2320)において、第1の参照ピクチャ内の第1の参照ブロックは決定され得、ここで、それぞれの第1のMVRに対する第1のMVは、現在ブロックから第1の参照ブロックを指すことができる。さらに、TMコストは、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいて決定され得る。(S2330)において、第1のMVDを示すMVD情報がエンコードされ得る。一例では、動き情報はMVD情報を含む。
【0241】
一実施形態では、現在ブロックは双予測でエンコードされる。TMコストの各々は、複数のMVRペアのそれぞれ1つに対応し、各MVRペアは、(i)第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含むことができる。(S2320)において、決定されたTMコストに基づいて複数のMVRペアがランク付けされ得る。一例では、現在ブロックは、ランク付けされた複数のMVRペアのうちの1つに基づいてエンコードされ得る。一例では、MVRペアは、ランク付けされた複数のMVRペアから選択される。現在ブロックは、選択されたMVRペアに基づいてエンコードされ得る。
【0242】
一実施形態では、第2の参照ピクチャに対応する第2の複数のMVRの各々の第2のMVPは、第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補とそれぞれの第2のMVRとに基づいて決定され得る。(2320)において、複数のMVRペアの各MVRペアについて、第1の参照ピクチャ内の第1の参照ブロックが決定され得、MVRペアのそれぞれの第1のMVRの第1のMVPは、現在ブロックから第1の参照ブロックを指すことができる。第2の参照ピクチャ内の第2の参照ブロックが決定され得、MVRペアのうちのそれぞれの第2のMVRの第2のMVPは、現在ブロックから第2の参照ブロックを指すことができる。さらに、TMコストは、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて、決定され得る。動き情報は、第2のMVP候補を示すことができる。
【0243】
一例では、(S2310)において、第1の複数のMVRの各々について、第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補とそれぞれの第1のMVRとに基づいて、それぞれの第1のMVPが決定される。
【0244】
一例では、第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数の第1のMVRとを含み、第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数の第2のMVRとを含む。(S2310)において、1/4画素に対応する第1のMVPは、第1のMVP候補と1/4画素とに基づいて決定され得、第1のMVP中の1つまたは複数の残りの第1のMVPは、1/4画素に対応する第1のMVPとそれぞれの1つまたは複数の第1のMVRとに基づいて決定され得る。さらに、1/4画素に対応する第2のMVPは、第2のMVP候補と1/4画素とに基づいて決定され得、第2のMVP中の1つまたは複数の残りの第2のMVPは、1/4画素に対応する第2のMVPとそれぞれの1つまたは複数の第2のMVRとに基づいて決定され得る。
【0245】
一例では、第1の複数のMVRの各々について、第1の複数のMVRのうちのそれぞれの第1のMVRに基づいて第1のMVDが決定され得、第1の複数のMVRのうちのそれぞれの第1のMVRについての第1のMVが、第1のMVDに基づいて決定され得る。第2の複数のMVRの各々について、第2の複数のMVRのうちのそれぞれの第2のMVRに基づいて第2のMVDが決定され得、第2の複数のMVRのうちのそれぞれの第2のMVRについての第2のMVが、第2のMVDに基づいて決定され得る。(S2320)において、MVRペアの各MVRペアについて、第1の参照ピクチャ内の第1の参照ブロックが決定され得、MVRペアのそれぞれの第1のMVRの第1のMVは、現在ブロックから第1の参照ブロックを指す。さらに、第2の参照ピクチャ内の第2の参照ブロックが決定され得、MVRペアのうちのそれぞれの第2のMVRに対する第2のMVは、現在ブロックから第2の参照ブロックを指す。TMコストは、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて決定され得る。
【0246】
図24は、本開示の一実施形態によるデコードプロセス(2400)を概説するフローチャートを示している。様々な実施形態において、プロセス(2400)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2400)はソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2400)を実行する。プロセスは(S2401)で開始し、(S2410)に進む。
【0247】
(S2410)において、現在ピクチャ内の現在ブロックの予測情報は、コーディングされたビデオビットストリームからデコードされ得る。予測情報は、適応動きベクトル予測(AMVP)モードおよび適応動きベクトル解像度(AMVR)モードが現在ブロックに適用されることを示すことができる。予測情報は、動き情報を示すことができる。
【0248】
(S2420)において、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々についてのそれぞれの第1の動きベクトル予測子(MVP)が、動き情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて決定され得る。
【0249】
(S2430)において、少なくとも第1の複数のMVRおよび第1のMVPに基づいてTMコストを決定することによって、テンプレートマッチング(TM)が行われ得る。
【0250】
プロセス(2400)は(S2499)に進み、終了する。
【0251】
プロセス(2400)は様々なシナリオに適切に適合され得、プロセス(2400)内のステップはそれに応じて調整され得る。プロセス(2400)内のステップのうちの1つまたは複数が、適合され、省略され、繰り返され、かつ/または組み合わせられ得る。プロセス(2400)を実施するために任意の適切な順序が使用され得る。(1つまたは複数の)追加のステップが追加され得る。
【0252】
一実施形態では、現在ブロックは単予測で予測される。TMコストの各々は、第1の複数のMVRのうちのそれぞれの第1のMVRに対応する。TMは、決定されたTMコストに基づいて第1の複数のMVRをランク付けすることをさらに含むことができる。一例では、現在ブロックは、ランク付けされた第1の複数のMVRのうちの1つに基づいて再構成される。一例では、TMは、ランク付けされた第1の複数のMVRからMVRを選択することを含む。現在ブロックは、選択されたMVRに基づいて再構成され得る。
【0253】
一実施形態において、動き情報は、第1の参照ピクチャに対応する候補リスト内のMVP候補を示す。
【0254】
一例では、第1の複数のMVRの各々について、ステップ(S2420)は、MVP候補およびそれぞれの第1のMVRに基づいてそれぞれの第1のMVPを決定するステップを含むことができ、ステップ(S2430)は、それぞれの第1のMVRの第1のMVPが現在ブロックから第1の参照ブロックを指すことができる、第1の参照ピクチャ内の第1の参照ブロックを決定するステップを含むことができる。第1の複数のMVRの各々について、ステップ(S2430)は、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいてTMコストを決定するステップをさらに含むことができる。
【0255】
一例では、第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数のMVRとを含む。ステップ(S2420)は、MVP候補および1/4画素に基づいて1/4画素に対応するMVPを決定するステップと、1/4画素に対応するMVPおよびそれぞれの1つまたは複数のMVRに基づいて第1のMVPのうちの残りの1つまたは複数のMVPを決定するステップとを含むことができる。第1の複数のMVRの各々について、ステップ(S2430)は、それぞれの第1のMVRの第1のMVPが現在ブロックから第1の参照ブロックを指すことができる、第1の参照ピクチャ内の第1の参照ブロックを決定するステップを含むことができる。第1の複数のMVRの各々について、ステップ(S2430)は、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいてTMコストを決定するステップを含むことができる。
【0256】
一実施形態では、動き情報はMV差分(MVD)情報を含む。第1の複数のMVRの各々について、MVD情報およびそれぞれの第1のMVRに基づいてそれぞれの第1のMVDを決定することができ、それぞれの第1のMVRについての第1のMVはそれぞれの第1のMVDに基づいて決定され得る。(S2430)において、第1の参照ピクチャ内の第1の参照ブロックが決定されることができ、ここで、それぞれの第1のMVRの第1のMVは、現在ブロックから第1の参照ブロックを指すことができる。さらに、TMコストは、第1の参照ブロックの第1の参照テンプレートと現在ブロックの現在テンプレートとに基づいて決定され得る。
【0257】
一実施形態では、現在ブロックは双予測で予測される。TMコストの各々は、複数のMVRペアのそれぞれ1つに対応し、各MVRペアは、(i)第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含むことができる。(S2430)において、複数のMVRペアは、決定されたTMコストに基づいてランク付けされ得る。一例では、現在ブロックは、ランク付けされた複数のMVRペアのうちの1つに基づいて再構成され得る。一例では、MVRペアは、ランク付けされた複数のMVRペアから選択される。現在ブロックは、選択されたMVRペアに基づいて再構成され得る。
【0258】
一実施形態では、動き情報は、第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補と、第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補とを示す。第2の参照ピクチャに対応する第2の複数のMVRの各々の第2のMVPは、第2のMVP候補とそれぞれの第2のMVRとに基づいて決定され得る。(2430)において、複数のMVRペアの各MVRペアについて、第1の参照ピクチャ内の第1の参照ブロックが決定され得、MVRペアのそれぞれの第1のMVRの第1のMVPは、現在ブロックから第1の参照ブロックを指すことができる。第2の参照ピクチャ内の第2の参照ブロックが決定され得、MVRペアのうちのそれぞれの第2のMVRの第2のMVPは、現在ブロックから第2の参照ブロックを指すことができる。さらに、TMコストは、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて、決定され得る。
【0259】
一例では、(S2420)において、第1の複数のMVRの各々について、第1のMVP候補およびそれぞれの第1のMVRに基づいて、それぞれの第1のMVPが決定される。
【0260】
一例では、第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数の第1のMVRとを含み、第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度である1つまたは複数の第2のMVRとを含む。(S2420)において、1/4画素に対応する第1のMVPは、第1のMVP候補と1/4画素とに基づいて決定され得、第1のMVP中の1つまたは複数の残りの第1のMVPは、1/4画素に対応する第1のMVPとそれぞれの1つまたは複数の第1のMVRとに基づいて決定され得る。さらに、1/4画素に対応する第2のMVPは、第2のMVP候補と1/4画素とに基づいて決定され得、第2のMVP中の1つまたは複数の残りの第2のMVPは、1/4画素に対応する第2のMVPとそれぞれの1つまたは複数の第2のMVRとに基づいて決定され得る。
【0261】
一例では、動き情報はMVD情報を含む。第1の複数のMVRの各々について、第1のMVDは、MVD情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて決定され得、第1の複数のMVRのうちのそれぞれの第1のMVRに対する第1のMVは、第1のMVDに基づいて決定され得る。第2の複数のMVRの各々について、第2のMVDは、MVD情報と第2の複数のMVRのうちのそれぞれの第2のMVRとに基づいて決定され得、第2の複数のMVRのうちのそれぞれの第2のMVRに対する第2のMVは、第2のMVDに基づいて決定され得る。(S2430)において、MVRペアのうちの各MVRペアについて、第1の参照ピクチャ内の第1の参照ブロックが決定され得、MVRペアのうちのそれぞれの第1のMVRに対する第1のMVは、現在ブロックから第1の参照ブロックを指す。さらに、第2の参照ピクチャ内の第2の参照ブロックが決定され得、MVRペアのうちのそれぞれの第2のMVRに対する第2のMVは、現在ブロックから第2の参照ブロックを指す。TMコストは、現在ブロックの現在テンプレートと、第1の参照ブロックの第1の参照テンプレートと、第2の参照ブロックの第2の参照テンプレートとに基づいて決定され得る。
【0262】
図25は、本開示の一実施形態による、デコードプロセス(2500)を概説するフローチャートを示す。様々な実施形態において、プロセス(2500)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(2500)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路がプロセス(2500)を実行する。プロセスは(S2501)で開始し、(S2510)に進む。
【0263】
(S2510)において、現在ピクチャ内の現在ブロックの予測情報は、コーディングされたビデオビットストリームからデコードされ得る。予測情報は、適応動きベクトル予測(AMVP)モードおよび適応動きベクトル解像度(AMVR)モードが現在ブロックに適用されることを示すことができる。予測情報は、動き情報を示すことができる。
【0264】
(S2520)において、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々についてのそれぞれの第1の動きベクトル予測子(MVP)が、動き情報と第1の複数のMVRのうちのそれぞれの第1のMVRとに基づいて決定され得る。
【0265】
(S2530)において、少なくとも第1の複数のMVRおよび第1のMVPに基づいてTMコストを決定することによって、テンプレートマッチング(TM)が実行され得る。
【0266】
(S2540)において、TMコストに基づいて、第1の複数のMVRの適応順序が生成され得る。
【0267】
(S2550)において、シグナリングされたMVRインデックスが、生成された適応順序に基づいて適用される。
【0268】
プロセス(2500)は、(S2599)に進み、終了する。
【0269】
プロセス(2500)は様々なシナリオに適切に適合され得、プロセス(2500)内のステップはそれに応じて調整され得る。プロセス(2500)内のステップのうちの1つまたは複数は、適合、省略、反復、および/または組み合わせられ得る。プロセス(2500)を実施するために、任意の適切な順序が使用され得る。(1つまたは複数の)追加のステップが追加され得る。
【0270】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0271】
上述した技術は、1つまたは複数のコンピュータ可読媒体に物理的に記憶された、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装されることができる。例えば、図26は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(2600)を示す。
【0272】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンクなどのメカニズムを受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを作成することができる。
【0273】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。
【0274】
コンピュータシステム(2600)に関して図26に示す構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(2600)の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
【0275】
コンピュータシステム(2600)は、特定のヒューマンインターフェース入力装置を含み得るそのようなヒューマンインターフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0276】
入力ヒューマンインターフェースデバイスは、キーボード(2601)、マウス(2602)、トラックパッド(2603)、タッチスクリーン(2610)、データグローブ(図示せず)、ジョイスティック(2605)、マイクロフォン(2606)、スキャナ(2607)、カメラ(2608)のうち1つまたは複数(各々の1つのみ図示)を含み得る。
【0277】
コンピュータシステム(2600)はまた、特定のヒューマンインターフェース出力装置も含み得る。そのようなヒューマンインターフェース出力装置は、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(2610)、データグローブ(図示せず)、またはジョイスティック(2605)による触覚フィードバック、ただし、入力装置として機能しない触覚フィードバック装置もあり得る)、オーディオ出力装置(例えば、スピーカ(2609)、ヘッドホン(図示せず))、視覚出力装置(例えば、各々タッチスクリーン入力機能ありまたはなしの、各々触覚フィードバック機能ありまたはなしの、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2610)など、それらの一部は、二次元視覚出力、または立体画像出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段による四次元以上の出力が可能であり得る)、ならびにプリンタ(図示せず)を含み得る。
【0278】
コンピュータシステム(2600)はまた、人間がアクセス可能な記憶装置およびそれらの関連媒体、例えば、CD/DVDなどの媒体(2621)を有するCD/DVD ROM/RW(2620)を含む光学媒体、サムドライブ(2622)、リムーバブルハードドライブまたはソリッドステートドライブ(2623)、テープやフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)なども含むことができる。
【0279】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0280】
コンピュータシステム(2600)はまた、1つまたは複数の通信ネットワーク(2655)へのインターフェース(2654)も含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性、などとすることができる。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、地上波放送TVなどを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車両および産業用などを含む。特定のネットワークは通常、特定の汎用データポートまたは周辺バス(2649)(例えば、コンピュータシステム(2600)のUSBポート)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは、一般に、以下に説明するようにシステムバスに接続することによってコンピュータシステム(2600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2600)は他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対して、一方向の受信のみ(例えば、テレビ放送)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向とすることができる。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0281】
前述のヒューマンインターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2600)のコア(2640)に取り付けられることができる。
【0282】
コア(2640)は、1つまたは複数の中央処理装置(CPU)(2641)、グラフィックスプロセッシングユニット(GPU)(2642)、フィールドプログラマブルゲートエリア(FPGA)(2643)の形の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(2644)、グラフィックスアダプタ(2650)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(2645)、ランダムアクセスメモリ(2646)、内部非ユーザアクセス可能ハードドライブ、SSDなどの内部大容量ストレージ(2647)と共に、システムバス(2648)を介して接続され得る。一部のコンピュータシステムでは、システムバス(2648)を、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形でアクセス可能とすることができる。周辺装置は、コアのシステムバス(2648)に直接、または周辺バス(2649)を介して取り付けられることができる。一例では、スクリーン(2610)はグラフィックスアダプタ(2650)に接続されることができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0283】
CPU(2641)、GPU(2642)、FPGA(2643)、およびアクセラレータ(2644)は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2645)またはRAM(2646)に格納されることができる。移行データもRAM(2646)に記憶されることができるが、永続データは、例えば、内部大容量ストレージ(2647)に記憶されることができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU(2641)、GPU(2642)、大容量ストレージ(2647)、ROM(2645)、RAM(2646)などと密接に関連付けられることができるキャッシュメモリの使用によって可能にされることができる。
【0284】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0285】
一例として、限定するものではないが、アーキテクチャを有するコンピュータシステム(2600)、具体的にはコア(2640)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が、1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果として、機能性を提供することができる。このようなコンピュータ可読媒体は、上記で紹介したユーザアクセス可能な大容量記憶装置、ならびにコア内部大容量ストレージ(2647)またはROM(2645)などの非一時的な性質のコア(2640)の特定の記憶装置に関連する媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(2640)によって実行されることができる。コンピュータ可読媒体は、特定のニーズに従って、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2640)、具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(2646)に格納されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行することができる、回路(例えば、アクセラレータ(2644))におけるハードワイヤードの、または他の方法で具現化された論理の結果として機能を提供することもできる。必要に応じて、ソフトウェアへの言及はロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
付記A:頭字語
JEM:共同探索モデル(Joint Exploration Model)
VVC:多用途ビデオコーディング(Versatile Video Coding)
BMS:ベンチマークセット(Benchmark Set)
MV:動きベクトル(Motion Vector)
HEVC:高効率ビデオコーディング(High Efficiency Video Coding)
SEI:補足拡張情報(Supplementary Enhancement Information)
VUI:ビデオユーザビリティ情報(Video Usability Information)
GOP:Group of Pictures
TU:変換ユニット(Transform Units)
PU:予測ユニット(Prediction Units)
CTU:コーディングツリーユニット(Coding Tree Units)
CTB:コーディングツリーブロック(Coding Tree Blocks)
PB:予測ブロック(Prediction Blocks)
HRD:仮想参照デコーダ(Hypothetical Reference Decoder)
SNR:信号対雑音比(Signal Noise Ratio)
CPU:中央処理装置(Central Processing Units)
GPU:グラフィックス処理装置(Graphics Processing Units)
CRT:陰極線管(Cathode Ray Tube)
LCD:液晶ディスプレイ(Liquid-Crystal Display)
OLED:有機発光ダイオード(Organic Light-Emitting Diode)
CD:コンパクトディスク(Compact Disc)
DVD:デジタルビデオディスク(Digital Video Disc)
ROM:読み出し専用メモリ(Read-Only Memory)
RAM:ランダムアクセスメモリ(Random Access Memory)
ASIC:特定用途向け集積回路(Application-Specific Integrated Circuit)
PLD:プログラマブル論理デバイス(Programmable Logic Device)
LAN:ローカルエリアネットワーク(Local Area Network)
GSM:グローバル移動体通信システム(Global System for Mobile communications)
LTE:ロングタームエボリューション(Long-Term Evolution)
CANBus:コントローラエリアネットワークバス(Controller Area Network Bus)
USB:ユニバーサルシリアルバス(Universal Serial Bus)
PCI:周辺構成要素相互接続(Peripheral Component Interconnect)
FPGA:フィールドプログラマブルゲートエリア(Field Programmable Gate Areas)
SSD:ソリッドステートドライブ(solid-state drive)
IC:集積回路(Integrated Circuit)
CU:コーディングユニット(Coding Unit)
R-D:レート歪み(Rate-Distortion)
【0286】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0287】
101 点、サンプル
102 矢印
103 矢印
104 正方形ブロック
110 概略図
201 現在ブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 通信ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 エンコードされたビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 ビデオデータの入力コピー
408 クライアントサブシステム
409 エンコードされたビデオデータのコピー
410 ビデオデコーダ
411 出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 パーサ
521 シンボル
530 電子デバイス
531 受信器
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 デコーダ、ローカルビデオデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信器
643 ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構成モジュール
880 インターデコーダ
1101 現在ピクチャ
1102 現在参照ピクチャ
1103 コロケートされたピクチャ
1104 コロケートされた参照ピクチャ
1111 現在CU
1112 コロケートされたCU
1121 スケーリングされたMV
1210 コロケートされたCU
1601 動きベクトル
1602 輝度サブブロック
1610 現在ブロック
1710 現在CU
1720 ブロックAを含むCU
1900 テンプレートマッチング
1901 現在ブロック
1902 初期MV
1903 参照ブロック
1910 現在ピクチャ
1911 参照ピクチャ
1915 探索範囲
1921 テンプレート
1922 上部テンプレート
1923 左テンプレート
1925 テンプレート
1926 上部テンプレート
1927 左テンプレート
2000 テンプレートマッチング
2001 現在ブロック
2010 現在ピクチャ
2011 参照ピクチャ
2021 現在テンプレート
2031 参照ブロック
2032 参照ブロック
2033 参照ブロック
2034 参照ブロック
2041 MV
2042 MV
2043 MV
2044 MV
2051 参照テンプレート
2052 参照テンプレート
2053 参照テンプレート
2054 参照テンプレート
2100 テンプレートマッチング
2111 第2の参照ピクチャ
2131 第2の参照ブロック
2132 第2の参照ブロック
2133 第2の参照ブロック
2134 第2の参照ブロック
2141 第2のMV
2142 第2のMV
2143 第2のMV
2144 第2のMV
2151 第2の参照テンプレート
2152 第2の参照テンプレート
2153 第2の参照テンプレート
2154 第2の参照テンプレート
2200 TM
2201 現在ブロック
2221 テンプレート
2225 参照テンプレート
2300 エンコードプロセス
2400 デコードプロセス
2500 デコードプロセス
2600 コンピュータシステム
2601 キーボード
2602 マウス
2603 トラックパッド
2605 ジョイスティック
2606 マイクロフォン
2607 スキャナ
2608 カメラ
2609 スピーカ
2610 スクリーン
2621 CD/DVDなどの媒体
2620 CD/DVD ROM/RW
2622 サムドライブ
2623 リムーバブルハードドライブまたはソリッドステートドライブ
2640 コア
2641 CPU
2642 GPU
2643 フィールドプログラマブルゲートエリア(FPGA)
2644 ハードウェアアクセラレータ
2645 読み出し専用メモリ(ROM)、ROM
2646 ランダムアクセスメモリ、RAM
2647 内部大容量ストレージ
2648 システムバス
2649 周辺バス
2650 グラフィックスアダプタ
2654 インターフェース
2655 通信ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15A
図15B
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
【手続補正書】
【提出日】2023-08-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、(i)適応動きベクトル予測(AMVP)モードが適応動きベクトル解像度(AMVR)モードとともに前記現在ブロックに適用されていること、および(ii)動き情報を示す、ステップと、
前記動き情報、および前記第1の複数のMVRのうちの前記それぞれの第1のMVRに基づいて、第1の参照ピクチャに対応する第1の複数の動きベクトル解像度(MVR)の各々について、それぞれの第1の動きベクトル予測子(MVP)を決定するステップと、
少なくとも前記第1の複数のMVRおよび前記第1のMVPに基づいて、TMコストを決定することによって、テンプレートマッチング(TM)を行うステップと、
前記TMコストに基づいて前記第1の複数のMVRの適応順序を生成するステップと、
前記生成された適応順序に基づいて、シグナリングされたMVRインデックスを適用するステップと、
を含む、ビデオデコードのための方法。
【請求項2】
前記現在ブロックは単予測で予測され、
前記TMコストの各々は、前記第1の複数のMVRのうちのそれぞれの第1のMVRに対応し、
生成する前記ステップは、
前記決定されたTMコストに基づいて、前記第1の複数のMVRを並べ替えるステップ
をさらに含み、
前記方法は、
前記シグナリングされたMVRインデックスによって示される前記並べ替えられた第1の複数のMVRのうちの1つに基づいて、前記現在ブロックを再構成するステップ
を、さらに含む、請求項1に記載の方法。
【請求項3】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1のMVPを決定する前記ステップは、
前記第1の複数のMVRの各々について、前記MVP候補と前記それぞれの第1のMVRとに基づいて、前記それぞれの第1のMVPを決定するステップ
を含み、
前記TMコストを決定する前記ステップは、
前記第1の複数のMVRの各々について、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記動き情報は、前記第1の参照ピクチャに対応する候補リスト内のMVP候補を示し、
前記第1の複数のMVRは、1/4画素と1/4画素よりも低い空間解像度を有する1つまたは複数のMVRとを含み、
前記第1のMVPを決定する前記ステップは、
前記MVP候補および1/4画素に基づいて、1/4画素に対応するMVPを決定するステップと、
1/4画素に対応する前記MVPおよび前記それぞれの1つまたは複数のMVRに基づいて、前記第1のMVP中の1つまたは複数の残りのMVPを決定するステップと、
を含み、
前記TMコストを決定する前記ステップは、
前記第1の複数のMVRの各々について、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項2に記載の方法。
【請求項5】
前記動き情報は、MV差分(MVD)情報を含み、
前記第1の複数のMVRの各々について、
前記方法は、
前記MVD情報および前記それぞれの第1のMVRに基づいて、それぞれの第1のMVDを決定するステップと、
前記それぞれの第1のMVDに基づいて、前記それぞれの第1のMVRの第1のMVを決定するステップと、
をさらに含み、
前記TMコストを決定する前記ステップは、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記それぞれの第1のMVRに対する前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第1の参照ブロックの第1の参照テンプレート、および前記現在ブロックの現在テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項2に記載の方法。
【請求項6】
前記現在ブロックは双予測で予測され、
前記TMコストの各々は、複数のMVRペアのそれぞれ1つに対応し、各MVRペアは、(i)前記第1の複数のMVRのうちの第1のMVR、および(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRを含み、
前記生成するステップは、
前記決定されたTMコストに基づいて前記複数のMVRペアを並べ替えるステップであって、前記第1の複数のMVRの前記適応順序は、前記並べ替えられた複数のMVRペアに基づいている、ステップ
を含み、
前記方法は、
前記並べ替えられた複数のMVRペアのうちの1つに基づいて、前記現在ブロックを再構成するステップ
を、さらに含む、請求項1に記載の方法。
【請求項7】
前記動き情報は、前記第1の参照ピクチャに対応する第1の候補リスト内の第1のMVP候補、および前記第2の参照ピクチャに対応する第2の候補リスト内の第2のMVP候補を示し、
前記方法は、前記第2のMVP候補および前記それぞれの第2のMVRに基づいて、前記第2の参照ピクチャに対応する前記第2の複数のMVRの各々について、第2のMVPを決定するステップを、さらに含み、
前記TMコストを決定する前記ステップは、
前記複数のMVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第1のMVRの前記第1のMVPは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと、
前記第2の参照ピクチャ内の第2の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第2のMVRの前記第2のMVPは、前記現在ブロックから前記第2の参照ブロックを指す、ステップと、
前記現在ブロックの現在テンプレート、前記第1の参照ブロックの第1の参照テンプレート、および前記第2の参照ブロックの第2の参照テンプレートに基づいて、前記TMコストを決定するステップと、
を含む、請求項6に記載の方法。
【請求項8】
前記第1のMVPを決定する前記ステップは、
前記第1の複数のMVRの各々について、前記第1のMVP候補および前記それぞれの第1のMVRに基づいて、前記それぞれの第1のMVPを決定するステップ
を含む、請求項7に記載の方法。
【請求項9】
前記第1の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第1のMVRとを含み、
前記第2の複数のMVRは、1/4画素と、1/4画素よりも低い空間解像度を有する1つまたは複数の第2のMVRとを含み、
前記第1のMVPを決定する前記ステップは、
前記第1のMVP候補および1/4画素に基づいて、1/4画素に対応する第1のMVPを決定するステップと、
前記1/4画素に対応する第1のMVPおよび前記それぞれの1つまたは複数の第1のMVRに基づいて、前記第1のMVP内の1つまたは複数の残りの第1のMVPを決定するステップと、
を含み、
前記第2のMVPを決定する前記ステップは、
前記第2のMVP候補および1/4画素に基づいて、1/4画素に対応する第2のMVPを決定するステップと、
前記1/4画素に対応する第2のMVP、および前記それぞれの1つまたは複数の第2のMVRに基づいて、前記第2のMVP内の1つまたは複数の残りの第2のMVPを決定するステップと、
含む、請求項7に記載の方法。
【請求項10】
前記動き情報は、MV差分(MVD)情報を含み、
前記方法は、
前記第1の複数のMVRの各々について、
前記MVD情報、および前記第1の複数のMVRのうちの前記それぞれの第1のMVRに基づいて、第1のMVDを決定するステップと、
前記第1のMVDに基づいて、前記第1の複数のMVRのうちの前記それぞれの第1のMVRについての第1のMVを決定するステップと、
前記第2の複数のMVRの各々について、
前記MVD情報、および前記第2の複数のMVRのうちの前記それぞれの第2のMVRに基づいて、第2のMVDを決定するステップと、
前記第2のMVDに基づいて、前記第2の複数のMVRのうちの前記それぞれの第2のMVRについての第2のMVを決定するステップと、
をさらに含み、
前記TMコストを決定する前記ステップは、
前記MVRペアのうちの各MVRペアについて、
前記第1の参照ピクチャ内の第1の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第1のMVRに対する前記第1のMVは、前記現在ブロックから前記第1の参照ブロックを指す、ステップと
前記第2の参照ピクチャ内の第2の参照ブロックを決定するステップであって、前記MVRペアのうちの前記それぞれの第2のMVRに対する前記第2のMVは、前記現在ブロックから前記第2の参照ブロックを指す、ステップと、
前記現在ブロックの現在テンプレート、前記第1の参照ブロックの第1の参照テンプレート、および前記第2の参照ブロックの第2の参照テンプレートに基づいて、TMコストを決定するステップと、
を含む、請求項6に記載の方法。
【請求項11】
請求項1~10のいずれか一項に記載の方法を行うように構成されたビデオデコードのための装置
【請求項12】
コンピュータに、請求項1~10のいずれか一項に記載の方法を行うように構成されたコンピュータプログラム。
【国際調査報告】