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

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

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

特表2024-508851双予測およびアフィンモードのためのテンプレートマッチングベースの適応動きベクトル解像度(AMVR)
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-28
(54)【発明の名称】双予測およびアフィンモードのためのテンプレートマッチングベースの適応動きベクトル解像度(AMVR)
(51)【国際特許分類】
   H04N 19/577 20140101AFI20240220BHJP
   H04N 19/70 20140101ALI20240220BHJP
   H04N 19/53 20140101ALI20240220BHJP
【FI】
H04N19/577
H04N19/70
H04N19/53
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023552245
(86)(22)【出願日】2022-10-18
(85)【翻訳文提出日】2023-08-28
(86)【国際出願番号】 US2022078274
(87)【国際公開番号】W WO2023076819
(87)【国際公開日】2023-05-04
(31)【優先権主張番号】63/274,273
(32)【優先日】2021-11-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/965,729
(32)【優先日】2022-10-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リェン-フェイ・チェン
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA14
5C159MA21
5C159MC11
5C159ME01
5C159NN02
5C159NN14
5C159PP04
5C159RC11
5C159UA02
5C159UA05
(57)【要約】
本開示の態様は、MVRペアの各々に対応するTMコストを決定することによって、現在ブロックの動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を行う処理回路を含む方法および装置を提供する。現在ブロックは、アフィン適応動きベクトル予測(AMVP)モードを用いて予測される。各MVRペアは、第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含む。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子に基づいて決定される。双予測子は、第1の参照ピクチャ内の第1の参照テンプレートと、第2の参照ピクチャ内の第2の参照テンプレートとに基づく。MVRペアは、決定された対応するTMコストに基づいて選択される。
【特許請求の範囲】
【請求項1】
ビデオデコーダにおけるビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、前記現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示す、ステップと、
動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を、
前記MVRペアの各々に対応するTMコストを決定するステップであって、各MVRペアが、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、各TMコストが、前記現在ブロックの現在テンプレートの一部または全部と、前記各MVRペアの双予測子とに少なくとも基づいて決定され、前記双予測子が、前記各MVRペアの前記第1のMVRに対応する前記第1の参照ピクチャ中の第1の参照テンプレートの一部または全部と、前記各MVRペアの前記第2のMVRに対応する前記第2の参照ピクチャ中の第2の参照テンプレートの一部または全部とに基づく、ステップと、
前記決定された対応するTMコストに基づいてMVRペアを選択するステップと、によって行うステップと、
前記選択されたMVRペアに基づいて前記現在ブロックを再構成するステップと、を含む、方法。
【請求項2】
前記TMを行う前記ステップは、前記決定された対応するTMコストに基づいて前記MVRペアを並べ替えるステップを含み、
選択する前記ステップは、前記並べ替えられたMVRペアから前記MVRペアを選択するステップを含む、請求項1に記載の方法。
【請求項3】
前記現在ブロックの前記現在テンプレートの全ては、前記TMコストを決定するために使用され、
各MVRペアについて、
前記第1の参照テンプレートの全ては、前記双予測子を決定するために使用され、
前記第2の参照テンプレートの全ては、前記双予測子を決定するために使用される、請求項2に記載の方法。
【請求項4】
各MVRペアについて、各MVRペアにおける前記第1のMVRと、前記それぞれのMVRペアにおける前記第2のMVRとが同一である、請求項1に記載の方法。
【請求項5】
前記MVRペアの一方の前記第1のMVRは、前記MVRペアの前記一方の前記第2のMVRとは異なる、請求項1に記載の方法。
【請求項6】
前記予測情報は、前記MVRペアに対して前記TMが行われることを示すフラグを含む、請求項1に記載の方法。
【請求項7】
前記現在テンプレートは、現在のサブブロックテンプレートを含み、
前記MVRペアにおける各MVRペアについて、前記TMコストを決定する前記ステップは、
前記現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)にそれぞれ基づいて、前記第1の参照テンプレートにおける第1の参照サブブロックテンプレートを決定するステップであって、前記第1のMVが、前記それぞれの現在のサブブロックテンプレートの位置および前記現在ブロックのアフィンパラメータに基づく、ステップと、
前記現在のサブブロックテンプレートおよび対応する第2のMVにそれぞれ基づいて、前記第2の参照テンプレートにおける第2の参照サブブロックテンプレートを決定するステップであって、前記第2のMVが、前記それぞれの現在のサブブロックテンプレートの前記位置および前記現在ブロックの前記アフィンパラメータに基づき、前記双予測子が、前記第1の参照サブブロックテンプレートおよび前記第2の参照サブブロックテンプレートに基づく、ステップと、を含む、請求項3に記載の方法。
【請求項8】
前記MVRペアにおける各MVRペアについて、前記第1の参照サブブロックテンプレートの各々におけるサンプルは、同じ動き情報を有する、請求項7に記載の方法。
【請求項9】
前記第1の参照サブブロックテンプレートを決定する前記ステップは、
前記MVRペアにおける各MVRペアについて、オプティカルフローを用いた予測精緻化(PROF)モードに基づいて前記第1の参照サブブロックテンプレートを決定するステップを含み、前記第1の参照サブブロックテンプレートのうちの1つにおける2つのサンプルは、異なる動き情報を有する、請求項7に記載の方法。
【請求項10】
ビデオデコーダにおけるビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、前記現在ブロックが適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示す、ステップと、
動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を、
前記MVRペアの各々に対応するTMコストを決定するステップであって、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、各TMコストは、前記現在ブロックの現在テンプレートと、前記各MVRペアの双予測子とに少なくとも基づいて決定され、前記双予測子が、前記各MVRペアの前記第1のMVRに対応する前記第1の参照ピクチャ中の第1の参照テンプレートと、前記各MVRペアの前記第2のMVRに対応する前記第2の参照ピクチャ中の第2の参照テンプレートとに基づく、ステップと、
前記決定された対応するTMコストに基づいてMVRペアを選択するステップと、によって行うステップと、
前記選択されたMVRペアに基づいて前記現在ブロックを再構成するステップと、を含む、方法。
【請求項11】
前記TMを行う前記ステップは、前記決定された対応するTMコストに基づいて前記MVRペアを並べ替えるステップを含み、
選択する前記ステップは、前記並べ替えられたMVRペアから前記MVRペアを選択するステップを含む、請求項10に記載の方法。
【請求項12】
前記TMコストを決定する前記ステップは、
各MVRペアについて、
前記MVRペアにおける前記第1のMVRを有する第1の動きベクトル(MV)に基づいて前記第1の参照テンプレートを決定するステップと、
前記MVRペアにおける前記第2のMVRを有する第2のMVに基づいて前記第2の参照テンプレートを決定するステップと、を含む、請求項11に記載の方法。
【請求項13】
各MVRペアについて、前記各MVRペアに対応する前記双予測子は、前記各MVRペアにおける前記第1のMVRに対応する前記第1の参照テンプレートと、前記各MVRペアにおける前記第2のMVRに対応する前記第2の参照テンプレートとの加重平均である、請求項12に記載の方法。
【請求項14】
各MVRペアについて、各MVRペアにおける前記第1のMVRおよび前記それぞれのMVRペアにおける前記第2のMVRが同一である、請求項10に記載の方法。
【請求項15】
前記MVRペアの一方の前記第1のMVRは、前記MVRペアの前記一方の前記第2のMVRとは異なる、請求項10に記載の方法。
【請求項16】
前記予測情報は、前記MVRペアに対して前記TMが行われることを示すフラグを含む、請求項10に記載の方法。
【請求項17】
ビデオデコードのための装置であって、
処理回路を備え、前記処理回路は、
コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、前記現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示す、ステップと、
動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を、
前記MVRペアの各々に対応するTMコストを決定するステップであって、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、各TMコストは、前記現在ブロックの現在テンプレートの一部または全部と、前記各MVRペアの双予測子とに少なくとも基づいて決定され、前記双予測子は、前記各MVRペアの前記第1のMVRに対応する前記第1の参照ピクチャ中の第1の参照テンプレートの一部または全部と、前記各MVRペアの前記第2のMVRに対応する前記第2の参照ピクチャ中の第2の参照テンプレートの一部または全部とに基づく、ステップと、
前記決定された対応するTMコストに基づいてMVRペアを選択するステップと、によって行うステップと、
前記選択されたMVRペアに基づいて前記現在ブロックを再構成するステップと、を行うように構成されている、装置。
【請求項18】
前記処理回路は、
前記決定された対応するTMコストに基づいて前記MVRペアを並べ替えるステップと、
前記並べ替えられたMVRペアから前記MVRペアを選択するステップと、を行うように構成されている、請求項17に記載の装置。
【請求項19】
前記現在ブロックの前記現在テンプレートの全ては、前記TMコストを決定するために使用され、
各MVRペアについて、
前記第1の参照テンプレートの全ては、前記双予測子を決定するために使用され、
前記第2の参照テンプレートの前記部分は、前記双予測子を決定するために使用される、請求項18に記載の装置。
【請求項20】
前記現在テンプレートは、現在のサブブロックテンプレートを含み、
前記MVRペアにおける各MVRペアについて、前記処理回路は、
前記現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)にそれぞれ基づいて、前記第1の参照テンプレートにおける第1の参照サブブロックテンプレートを決定するステップであって、前記第1のMVが、前記それぞれの現在のサブブロックテンプレートの位置および前記現在ブロックのアフィンパラメータに基づく、ステップと、
前記現在のサブブロックテンプレートおよび対応する第2のMVにそれぞれ基づいて、前記第2の参照テンプレートにおける第2の参照サブブロックテンプレートを決定するステップであって、前記第2のMVが、前記それぞれの現在のサブブロックテンプレートの前記位置および前記現在ブロックの前記アフィンパラメータに基づき、前記双予測子が、前記第1の参照サブブロックテンプレートおよび前記第2の参照サブブロックテンプレートに基づく、ステップと、を行うように構成されている、請求項19に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年10月13日に出願された米国特許出願第17/965,729号、「TEMPLATE-MATCHING BASED ADAPTIVE MOTION VECTOR RESOLUTION(AMVR)FOR BI-PREDICTION AND AN AFFINE MODE」に基づく優先権の利益を主張し、これは、2021年11月01日に出願された米国仮出願第63/274,273号、「TEMPLATE-MATCHING BASED ADAPTIVE MOTION VECTOR RESOLUTION(AMVR)FOR BI-PREDICTION AND AFFINE MODE」に基づく優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概してビデオコーディングに関する実施形態について説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を概して提示するためのものである。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、および出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
非圧縮デジタル画像および/またはビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変ピクチャレート(非公式にはフレームレートとしても知られる)を有することができる。非圧縮画像および/またはビデオは、特定のビットレート要件を有する。例えば、8ビット/サンプル(60Hzフレームレートで1920×1080輝度サンプル解像度)の1080p60 4:2:0ビデオは、1.5Gbit/sに近い帯域幅を必要とする。かかるビデオは、1時間で600ギガバイト以上の記憶空間を必要とする。
【0005】
画像および/またはビデオのコーディングおよびデコードの1つの目的は、圧縮による、入力画像および/またはビデオ信号における冗長性の低減であり得る。圧縮は、場合によっては2桁以上、前述の帯域幅および/または記憶空間要件を低減するのに役立ち得る。本明細書の説明は、例示的な例としてビデオエンコード/デコードを使用するが、本開示の趣旨から逸脱することなく、同じ技術が同様の方法で画像エンコード/デコードに適用され得る。可逆圧縮と不可逆圧縮の両方、ならびにそれらの組み合わせを使用することができる。無損失圧縮は、元の信号の正確なコピーを圧縮された元の信号から再構成することができる技術を指す。不可逆圧縮を使用するとき、再構成された信号は元の信号と同一ではないことがあるが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された適用例にとって有用にするのに十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は、アプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い許容可能な/許容できる歪みがより高い圧縮比をもたらすことができることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換処理、量子化、およびエントロピーコーディングを含む、複数の広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含み得る。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは、サンプルのブロックに空間的に細分される。サンプルの全てのブロックがイントラモードデコードされるとき、そのピクチャはイントラピクチャであり得る。独立デコーダリフレッシュピクチャなどのイントラピクチャおよびそれらの派生物は、デコーダ状態をリセットするために使用され得、したがって、コーディングされたビデオビットストリームおよびビデオセッション中の第1のピクチャとして、または静止画像として使用され得る。イントラブロックのサンプルは、変換にさらされ得、変換係数は、エントロピーコーディングの前に量子化され得る。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズにおいて必要とされるビットが少なくなる。
【0008】
例えば、MPEG-2世代コーディング技術において使用される従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、一部のより新しいビデオ圧縮技術は、例えば、データのブロックのエンコードおよび/またはデコード中に取得された周囲のサンプルデータおよび/またはメタデータに基づいて予測を行うことを試みる技術を含む。かかる技術は、以下、「イントラ予測」技術と称される。少なくとも一部の場合には、イントラ予測は、参照ピクチャからではなく、再構成中の現在ピクチャのみからの参照データを使用していることに留意されたい。
【0009】
イントラ予測には多くの異なる形態があり得る。かかる技術のうちの2つ以上が所与のビデオコーディング技術において使用され得るとき、使用中の特定の技術は、その特定の技術を使用する特定のイントラ予測モードとしてコーディングされ得る。一部の場合には、イントラ予測モードはサブモードおよび/またはパラメータを有することができ、サブモードおよび/またはパラメータは、個々にコーディングされるか、または使用されている予測モードを定義するモードコードワード中に含まれることができる。所与のモード、サブモード、および/またはパラメータ組み合わせのためにどのコードワードを使用すべきかは、イントラ予測によるコーディング効率利得に影響を及ぼすことがあり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術にも影響を及ぼすことがある。
【0010】
イントラ予測のあるモードは、H.264とともに導入され、H.265において精緻化され、ジョイント探索モデル(JEM)、汎用ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに精緻化された。予測ブロック(predictor block)は、すでに利用可能なサンプルの隣接サンプル値を使用して形成され得る。隣接サンプルのサンプル値は、方向に従って予測ブロックにコピーされる。使用中の方向への参照は、ビットストリーム中にコーディングされ得るか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下には、H.265において定義された(35個のイントラモードのうちの33個の角度モードに対応する)33個の可能な予測方向(predictor direction)から知られている9つの予測方向のサブセットが示されている。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で、右上への1つ以上のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、サンプル(101)の左下の1つ以上のサンプルから予測されることを示す。
【0012】
依然として図1Aを参照すると、左上に、4×4サンプルの正方形ブロック(104)(破線の太線によって示される)が描写されている。正方形ブロック(104)は、各々が「S」でラベル付けされた16個のサンプルと、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とを含む。例えば、サンプルS21は、Y次元において(上から)2番目のサンプルであり、X次元において(左から)1番目のサンプルである。同様に、サンプルS44は、Y次元とX次元の両方におけるブロック(104)中の第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】
本開示の態様は、ビデオエンコードおよびデコードのための方法および装置を提供する。一部の例では、ビデオデコードのための装置は処理回路を含む。処理回路は、コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするように構成される。予測情報は、現在ブロックが双予測で予測されることを示す。処理回路は、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してテンプレートマッチング(TM)を行うことができる。各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含む。各TMコストは、現在ブロックの現在テンプレートの一部と、それぞれのMVRペアの双予測子とに少なくとも基づいて決定することができ、双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートの一部と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートの一部とに基づく。処理回路は、決定された対応するTMコストに基づいてMVRペアを選択することができる。処理回路は、選択されたMVRペアに基づいて現在ブロックを再構成する。
【0023】
一実施形態では、処理回路は、決定された対応するTMコストに基づいてMVRペアを並べ替え、並べ替えられたMVRペアからMVRペアを選択する。
【0024】
一実施形態では、現在ブロックの現在テンプレートの全ては、現在テンプレート全体を含む。各MVRペアについて、第1の参照テンプレートの全ては第1の参照テンプレート全体を含み、第2の参照テンプレートの全ては第2の参照テンプレート全体を含む。
【0025】
一例では、各MVRペアについて、処理回路は、MVRペアにおける第1のMVRを有する第1の動きベクトル(MV)に基づいて第1の参照テンプレートを決定し、MVRペアにおける第2のMVRを有する第2のMVに基づいて第2の参照テンプレートを決定する。
【0026】
一例では、各MVRペアについて、それぞれのMVRペアに対応する双予測子は、それぞれのMVRペアにおける第1のMVRに対応する第1の参照テンプレートと、それぞれのMVRペアにおける第2のMVRに対応する第2の参照テンプレートとの加重平均である。
【0027】
一例では、各MVRペアについて、各MVRペアにおける第1のMVRおよびそれぞれのMVRペアにおける第2のMVRは同一である。
【0028】
一例では、MVRペアの一方の第1のMVRは、MVRペアの一方の第2のMVRとは異なる。
【0029】
一実施形態では、予測情報は、MVRペアに対してTMが行われることを示すフラグを含む。
【0030】
一実施形態では、予測情報は、現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いて予測されることを示す。現在テンプレートは、現在のサブブロックテンプレートを含む。MVRペアにおける各MVRペアについて、処理回路は、現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)にそれぞれ基づいて、第1の参照テンプレートにおける第1の参照サブブロックテンプレートを決定する。第1のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。処理回路は、現在のサブブロックテンプレートおよび対応する第2のMVにそれぞれ基づいて、第2の参照テンプレート内の第2の参照サブブロックテンプレートを決定する。第2のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。双予測子は、第1の参照サブブロックテンプレートと第2の参照サブブロックテンプレートとに基づき得る。
【0031】
一例では、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレートの各々におけるサンプルは同じ動き情報を有する。
【0032】
一例では、MVRペアにおける各MVRペアについて、処理回路は、第1の参照サブブロックテンプレートのうちの1つにおける2つのサンプルが異なる動き情報を有するオプティカルフローを用いた予測精緻化(PROF)モードに基づいて、第1の参照サブブロックテンプレートを決定する。
【0033】
一実施形態では、処理回路は、コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするように構成される。予測情報は、現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示すことができる。処理回路は、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してテンプレートマッチング(TM)を行うことができる。各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含む。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子の一部または全部に少なくとも基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートの一部または全部と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートの一部または全部とに基づき得る。処理回路は、決定された対応するTMコストに基づいてMVRペアを選択することによって、MVRペアに対してTMを行うことができる。処理回路は、選択されたMVRペアに基づいて現在ブロックを再構成することができる。
【0034】
一実施形態では、処理回路は、コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードするように構成される。予測情報は、現在ブロックが適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示すことができる。処理回路は、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してテンプレートマッチング(TM)を行うことができる。各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含む。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子に少なくとも基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートと、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートとに基づき得る。処理回路は、決定された対応するTMコストに基づいてMVRペアを選択することによって、MVRペアに対してTMを行うことができる。処理回路は、選択されたMVRペアに基づいて現在ブロックを再構成することができる。
【0035】
本開示の態様はまた、ビデオデコードのための方法を行うために少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体を提供する。
【0036】
開示される主題のさらなる特徴、性質、および種々の利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0037】
図1A】イントラ予測モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図2】現在ブロック(201)および周囲のサンプルの一例を示す。
図3】通信システム(300)の例示的なブロック図の概略図である。
図4】通信システム(400)の例示的なブロック図の概略図である。
図5】デコーダの例示的なブロック図の概略図である。
図6】エンコーダの例示的なブロック図の概略図である。
図7】例示的なエンコーダのブロック図を示す。
図8】例示的なデコーダのブロック図を示す。
図9】本開示の一実施形態による空間マージ候補の位置を示す。
図10】本開示の一実施形態による、空間マージ候補の冗長性チェックのために考慮される候補ペアを示す。
図11】時間マージ候補のための例示的な動きベクトルスケーリングを示す。
図12】現在のコーディングユニットの時間マージ候補のための例示的な候補位置を示す。
図13A】4パラメータのアフィン動きモデルの一例を示す。
図13B】6パラメータのアフィン動きモデルの一例を示す。
図14】サブブロックベースのアフィン変換予測の一例を示す。
図15】現在CUのアフィンマージリスト中の制御点動きベクトル(CPMV)候補を決定する一例を示す。
図16】現在ブロックの空間的近傍および時間的近傍の例を示す。
図17】テンプレートマッチングの一例を示す。
図18】動きベクトル解像度(MVR)のセットに適用されるテンプレートマッチングの一例を示す。
図19】現在ブロックが双予測モードを利用してコーディングされる場合、MVRペアに適用されるテンプレートマッチングの一例を示す。
図20】現在ブロックがアフィンモードデコードされる場合のテンプレートマッチングの一例を示す。
図21】現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いてコーディングされるときの双予測テンプレートマッチングの一例を示す。
図22】オプティカルフローを用いた予測精緻化(PROF)法の一例を示す。
図23】本開示の一実施形態によるエンコードプロセスを概説するフローチャートを示す。
図24】本開示の一実施形態によるデコードプロセスを概説するフローチャートを示す。
図25】本開示の一実施形態によるデコードプロセスを概説するフローチャートを示す。
図26】本開示の一実施形態によるデコードプロセスを概説するフローチャートを示す。
図27】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0038】
図3は、通信システム(300)の例示的なブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1のペアの端末デバイス(310)および(320)を含む。図3の例では、第1のペアの端末デバイス(310)および(320)は、データの単方向送信を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(310)に送信するために、ビデオデータ(例えば、端末デバイス(320)によってキャプチャされたビデオピクチャのストリーム)をコーディングすることができる。エンコードされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で送信され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、ビデオピクチャを復元するためにコーディングされたビデオデータをデコードし、復元されたビデオデータに従ってビデオピクチャを表示し得る。単方向データ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0039】
別の例では、通信システム(300)は、例えばテレビ会議中に、コーディングされたビデオデータの双方向送信を行う第2のペアの端末デバイス(330)および(340)を含む。データの双方向送信のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介した端末デバイス(330)および(340)のうちの他方の端末デバイスへの送信のためにビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他の端末デバイスによって送信されたコーディングされたビデオデータを受信し得、ビデオピクチャを復元するためにコーディングされたビデオデータをデコードし得、復元されたビデオデータに従ってアクセス可能なディスプレイデバイスにおいてビデオピクチャを表示し得る。
【0040】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)はそれぞれ、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されているが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器に適用される。ネットワーク(350)は、端末デバイス(310)、(320)、(330)および(340)の間デコードされたビデオデータを伝達する任意の数のネットワークを表し、例えば、ワイヤライン(ワイヤード)および/またはワイヤレス通信ネットワークを含む。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本考察の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要でない場合がある。
【0041】
図4は、開示する主題のための適用例の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダを示している。開示される主題は、例えば、ビデオ会議、デジタルTV、ストリーミングサービス、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0042】
ストリーミングシステムは、例えば圧縮されていないビデオピクチャのストリーム(402)を作成する、例えばデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。エンコードされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較して高いデータ量を強調するために太線で示されるビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示される主題の態様を可能にするかまたは実装するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含み得る。ビデオピクチャのストリーム(402)と比較してより低いデータボリュームを強調するために細い線として示されるエンコードされたビデオデータ(404)(またはエンコードされたビデオビットストリーム)は、将来の使用のためにストリーミングサーバ(405)上に記憶され得る。図4のクライアントサブシステム(406)および(408)などの1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内にビデオデコーダ(410)を含み得る。ビデオデコーダ(410)は、エンコードされたビデオデータの着信コピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの発信ストリーム(411)を作成する。一部のストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、一部のビデオコーディング/圧縮規格に従ってエンコードされ得る。それらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、非公式に多用途ビデオコーディング(VVC)として知られている。開示される主題は、VVCとの関連で使用され得る。
【0043】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)はビデオエンコーダ(図示せず)も含み得る。
【0044】
図5は、ビデオデコーダ(510)の例示的なブロック図を示している。ビデオデコーダ(510)は、電子デバイス(530)に含めることができる。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含み得る。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0045】
受信器(531)は、ビデオデコーダ(510)によってデコードされる1つ以上のコーディングされたビデオシーケンスを受信することができる。一実施形態では、1つのコーディングされたビデオシーケンスが一度に受信され、各コーディングされたビデオシーケンスのデコードは、他のコーディングされたビデオシーケンスのデコードとは無関係である。コーディングされたビデオシーケンスは、エンコードされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信され得る。受信器(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームとともに、エンコードされたビデオデータを受信することができる。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対処するために、バッファメモリ(515)が、受信器(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合され得る。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の実施形態では、ビデオデコーダ(510)の外部にあってもよい(図示せず)。さらに他の実施形態では、例えばネットワークジッタに対処するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、加えて、例えば再生タイミングを処理するために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受信器(531)が、十分な帯域幅および可制御性の記憶/転送デバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は、必要とされない場合があるか、または小さくあり得る。インターネットなどのベストエフォート型パケットネットワーク上で使用するために、バッファメモリ(515)が必要とされることがあり、比較的大きくすることができ、有利には適応サイズとすることができ、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)内に少なくとも部分的に実装され得る。
【0046】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するパーサ(520)を含み得る。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、場合によっては、図5に示されるように、電子デバイス(530)の一体部分ではないが電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、ディスプレイスクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイス(複数可)のための制御情報は、補足エンハンスメント情報(SEI)メッセージまたはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であり得る。パーサ(520)は、受信されたコーディングされたビデオシーケンスを構文解析/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴うまたは伴わない算術コーディングなどを含む、種々の原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに関するサブグループパラメータのセットを抽出することができる。サブグループは、Groups of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含み得る。パーサ(520)は、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出することもできる。
【0047】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析動作を行うことができる。
【0048】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその一部のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なるユニットを含み得る。どのユニットが関与するか、およびどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のかかるサブグループ制御情報の流れは、明確にするために図示されていない。
【0049】
すでに述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下で説明するように、一部の機能ユニットに概念的に再分割することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示される主題を説明する目的のために、以下の機能ユニットへの概念的な再分割が適切である。
【0050】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化された変換係数と、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報とを、シンボル(複数可)(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0051】
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングされたブロックに関連し得る。イントラコーディングブロックは、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構成された部分からの予測情報を使用することができるブロックである。かかる予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャおよび/または完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0052】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連することができる。かかる場合、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と称される)に加算され得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Yおよび参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、動きベクトル予測機構などを含み得る。
【0053】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において種々のループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも称される)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含み得る。ビデオ圧縮はまた、コーディングピクチャまたはコーディングされたビデオシーケンスの(デコード順序で)前の部分のデコード中に取得されたメタ情報に応答し、ならびに前に再構成されループフィルタ処理されたサンプル値に応答することができる。
【0054】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することができるサンプルストリームであり得る。
【0055】
特定のコーディングピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングピクチャが完全に再構成され、コーディングピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングピクチャの再構成を開始する前に、新しい現在ピクチャバッファを再割り当てすることができる。
【0056】
ビデオデコーダ(510)は、所定のビデオ圧縮技術またはITU-T Rec.H.265などの規格に従ってデコード動作を行うことができる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術または規格において文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能な全てのツールから、そのプロファイルの下で使用するために利用可能な唯一のツールとして、一部のツールを選択することができる。また、準拠のために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様と、コーディングされたビデオシーケンス中でシグナリングされるHRDバッファ管理のためのメタデータとを通してさらに制限され得る。
【0057】
一実施形態では、受信器(531)は、エンコードされたビデオとともに追加の(冗長)データを受信することができる。追加のデータは、コーディングされたビデオシーケンス(複数可)の一部として含まれ得る。追加のデータは、データを適切にデコードするために、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形態であり得る。
【0058】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信器(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0059】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるビデオ画像(複数可)をキャプチャ可能なビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0060】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCB 4:2:0、Y CrCB 4:4:4)とすることができるデジタルビデオサンプルストリームの形態で提供することができる。メディア供給システムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。テレビ会議システムにおいて、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、連続して見たときに動きを与える複数の個々のピクチャとして提供され得る。ピクチャ自体は、ピクセルの空間アレイとして編成され得、各ピクセルは、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを備えることができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0061】
一実施形態によれば、ビデオエンコーダ(603)は、必要に応じて、リアルタイムで、または任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングし、コーディングされたビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。一部の実施形態では、コントローラ(650)は、以下で説明するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0062】
一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化された説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャと参照ピクチャ(複数可)とに基づいて、シンボルストリームなどのシンボルを作成することを担う)ソースコーダ(630)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含み得る。デコーダ(633)は、シンボルを再構成して、(リモート)デコーダが作成するのと同様の方法でサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードは、デコーダの位置(ローカルまたはリモート)とは無関係にビット精度の結果をもたらすため、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット精度である。換言すれば、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネルエラーのために同期性を維持することができない場合に結果として生じるドリフト)のこの基本原理は、一部の関連技術においても使用される。
【0063】
「ローカル」デコーダ(633)の動作は、図5に関連して上記ですでに詳細に説明したビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコードが可逆であり得るため、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)において完全には実装されないことがある。
【0064】
一実施形態では、デコーダ内に存在する構文解析/エントロピーデコードを除くデコーダ技術は、対応するエンコーダ内に、同一または実質的に同一の機能形式で存在する。したがって、開示される主題は、デコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略することができる。特定の領域において、より詳細な説明が以下に提供される。
【0065】
動作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを行うことができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照(複数可)として選択され得る参照ピクチャ(複数可)のピクセルブロックとの間の差分をコーディングする。
【0066】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードすることができる。コーディングエンジン(632)の動作は、有利には、損失の多いプロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図6に図示せず)においてデコードされ得るとき、再構成されたビデオシーケンスは、概して、一部のエラーをもつソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって行われ得るデコードプロセスを複製し、再構成された参照ピクチャを参照ピクチャメモリ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない場合に)遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに記憶することができる。
【0067】
予測器(635)は、コーディングエンジン(632)の予測探索を行うことができる。すなわち、コーディングされる新しいピクチャに対して、予測器(635)は、新しいピクチャに対する適切な予測参照として機能することができる、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックごとにピクセルブロック単位で動作することができる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0068】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0069】
前述した全ての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングされる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルに可逆圧縮を適用することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0070】
送信器(640)は、コーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成されたエンコードされたビデオシーケンス(複数可)をバッファすることができる。送信器(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0071】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディングの間、コントローラ(650)は、各コーディングピクチャに、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る特定のコーディングピクチャタイプを割り当てることができる。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
【0072】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス中の他のピクチャを使用することなくコーディングおよびデコードされ得るものであり得る。一部のビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのこれらの変形例およびそれらのそれぞれの用途および特徴を認識している。
【0073】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るものであり得る。
【0074】
双予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために多くとも2つの動きベクトルと参照インデックスとを使用するイントラ予測またはインター予測を使用してコーディングおよびデコードされ得るものであり得る。同様に、複数予測ピクチャは、単一のブロックの再構成のために2つよりも多い参照ピクチャおよび関連するメタデータを使用することができる。
【0075】
ソースピクチャは、概して、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に再分割され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、または、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされ得る。
【0076】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を行うことができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的冗長性および空間的冗長性を利用する予測コーディング動作を含む種々の圧縮動作を行うことができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0077】
一実施形態では、送信器(640)は、エンコードされたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、かかるデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャおよびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを備え得る。
【0078】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関を利用する。一例では、現在ピクチャと称される、エンコード/デコード中の特定のピクチャが、ブロックに区分される。現在ピクチャ中のブロックが、ビデオ中の、前にコーディングされ、まだバッファされている参照ピクチャ中の参照ブロックと同様であるとき、現在ピクチャ中のブロックは、動きベクトルと称されるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ中の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0079】
一部の実施形態では、インターピクチャ予測において双予測技術が使用され得る。双予測技術によれば、ビデオ中の現在ピクチャよりもデコード順序が両方とも前である(ただし、表示順序がそれぞれ過去および未来であり得る)第1の参照ピクチャおよび第2の参照ピクチャなど、2つの参照ピクチャが使用される。現在ピクチャ中のブロックは、第1の参照ピクチャ中の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ中の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測され得る。
【0080】
さらに、コーディング効率を向上させるために、インターピクチャ予測においてマージモード技術を使用することができる。
【0081】
本開示の一部の実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で行われる。例えば、HEVC規格によれば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に区分され、ピクチャ中のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなど、同じサイズを有する。概して、CTUは、1つのルーマCTBおよび2つのクロマCTBである、3つのコーディングツリーブロック(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は、ルーマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態において、コーディング(エンコード/デコード)時の予測動作は、予測ブロック単位で行われる。予測ブロックの一例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルについての値(例えば、ルーマ値)の行列を含む。
【0082】
図7は、ビデオエンコーダ(703)の例示的な図を示している。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングピクチャにエンコードするように構成される。一例では、ビデオエンコーダ(703)は、図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0083】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードデコードされるべきであるとき、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコーディングピクチャにエンコードすることができ、処理ブロックがインターモードまたは双予測モードデコードされるべきであるとき、ビデオエンコーダ(703)は、それぞれインター予測または双予測技術を使用して、処理ブロックをコーディングピクチャにエンコードすることができる。一部のビデオコーディング技術では、マージモードは、予測子の外部のコーディングされた動きベクトル成分の利益なしに、動きベクトルが1つ以上の動きベクトル予測子から導出される、インターピクチャ予測サブモードであり得る。一部の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0084】
図7の例では、ビデオエンコーダ(703)は、図7に示すように互いに結合された、インターエンコーダ(730)と、イントラエンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、汎用コントローラ(721)と、エントロピーエンコーダ(725)とを含む。
【0085】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされるデコードされた参照ピクチャである。
【0086】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内のすでにコーディングされているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラエンコード技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0087】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードである場合、汎用コントローラ(721)は、残差計算器(723)によって使用されるイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、モードがインターモードである場合、汎用コントローラ(721)は、残差計算器(723)によって使用されるインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0088】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作して、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。変換係数は、次いで、量子化された変換係数を取得するために量子化処理を受ける。種々の実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を行い、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードブロックは、デコードピクチャを生成するために適切に処理され、デコードピクチャは、メモリ回路(図示せず)中にバッファされ、一部の例では参照ピクチャとして使用され得る。
【0089】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って、種々の情報をビットストリームに含めるように構成される。一例では、エントロピーエンコーダ(725)は、一般制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成される。開示される主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報がないことに留意されたい。
【0090】
図8は、ビデオデコーダ(810)の例示的な図を示している。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングピクチャを受信し、コーディングピクチャをデコードして再構成ピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0091】
図8の例では、ビデオデコーダ(810)は、図8に示すように互いに結合された、エントロピーデコーダ(871)と、インターデコーダ(880)と、残差デコーダ(873)と、再構成モジュール(874)と、イントラデコーダ(872)とを含む。
【0092】
エントロピーデコーダ(871)は、コーディングピクチャから、コーディングピクチャを構成するシンタックス要素を表す特定のシンボルを再構成するように構成することができる。かかるシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードにおける後者の2つ、または別のサブモードなど)と、それぞれイントラデコーダ(872)またはインターデコーダ(880)によって予測のために使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)とを含み得る。シンボルはまた、例えば、量子化された変換係数などの形態の残差情報を含み得る。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0093】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0094】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0095】
残差デコーダ(873)は、逆量子化を行って逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差情報を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含むために)特定の制御情報を必要とし得、その情報は、エントロピーデコーダ(871)によって提供され得る(これは低ボリューム制御情報のみであり得るため、データ経路は示されていない)。
【0096】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差情報と(場合に応じてインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果とを組み合わせて、再構成されたブロックを形成するように構成され、再構成されたブロックは、再構成されたピクチャの一部であってもよく、再構成されたピクチャは、再構成されたビデオの一部であってもよい。視覚品質を改善するために、デブロッキング動作など、他の好適な動作が行われ得ることに留意されたい。
【0097】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装され得ることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装され得る。
【0098】
種々のインター予測モードがVVCにおいて使用され得る。インター予測されたCUの場合、動きパラメータは、MV(複数可)と、1つ以上の参照ピクチャインデックスと、参照ピクチャリスト使用インデックスと、インター予測されたサンプル生成のために使用されるべき一部のコーディング特徴のための追加情報とを含み得る。動きパラメータは、明示的または暗黙的にシグナリングされ得る。CUがスキップモードデコードされるとき、CUは、PUに関連付けられ得、有意な残差係数、コーディングされた動きベクトルデルタもしくはMV差分(例えば、MVD)、または参照ピクチャインデックスを有しないことがある。現在CUのための動きパラメータが、空間的候補および/または時間的候補を含む隣接CU(複数可)と、任意選択で、VVCにおいて導入されるような追加情報とから取得されるマージモードが指定され得る。マージモードは、スキップモードだけでなく、インター予測されたCUにも適用され得る。一例では、マージモードの代替は、動きパラメータの明示的送信であり、MV(複数可)、各参照ピクチャリストのための対応する参照ピクチャインデックス、および参照ピクチャリスト使用フラグ、ならびに他の情報が、CUごとに明示的にシグナリングされる。
【0099】
VVCなどの一実施形態では、VVCテストモデル(VTM)参照ソフトウェアは、拡張マージ予測、マージ動きベクトル差分(MMVD)モード、対称MVDシグナリングを用いる適応動きベクトル予測(AMVP)モード、アフィン動き補償予測、サブブロックベースの時間動きベクトル予測(SbTMVP)、適応動きベクトル解像度(AMVR)、動きフィールド記憶(1/16ルーマサンプルMV記憶および8×8動きフィールド圧縮)、CUレベル重みを用いる双予測(BCW)、双方向オプティカルフロー(BDOF)、オプティカルフローを用いた予測精緻化(PROF)、デコーダ側動きベクトル精緻化(DMVR)、複合インターおよびイントラ予測(CIIP)、幾何学的区分モード(GPM)などを含む1つ以上の精緻化インター予測コーディングツールを含む。インター予測および関連する方法について、以下で詳細に説明する。
【0100】
一部の例では、拡張マージ予測が使用され得る。VTM4などの例では、マージ候補リストは、以下の5つのタイプの候補、すなわち、空間的隣接CU(複数可)からの空間動きベクトル予測子(複数可)(MVP(複数可))と、コロケートCU(複数可)からの時間MVP(複数可)と、先入れ先出し(FIFO)テーブルからの履歴ベースMVP(複数可)と、ペアワイズ平均MVP(複数可)と、ゼロMV(複数可)とを順に含むことによって構成される。
【0101】
マージ候補リストのサイズは、スライスヘッダ中でシグナリングされ得る。一例では、マージ候補リストの最大許容サイズはVTM4において6である。マージモードデコードされた各CUについて、最良マージ候補のインデックス(例えば、マージインデックス)が、短縮単項二値化(TU)を使用してエンコードされ得る。マージインデックスの第1のビンは、コンテキストを用いてコーディングされ得(例えば、コンテキスト適応型バイナリ算術コーディング(CABAC))、バイパスコーディングが他のビンのために使用され得る。
【0102】
マージ候補の各カテゴリの生成プロセスの一部の例が以下で与えられる。一実施形態では、空間的候補(複数可)は以下のように導出される。VVCにおける空間マージ候補の導出は、HEVCにおける導出と同一であり得る。一例では、図9に示す位置にある候補のうち、最大4つのマージ候補が選択される。図9は、本開示の一実施形態による空間マージ候補の位置を示している。図9を参照すると、導出の順序は、B1、A1、B0、A0、およびB2である。位置B2は、(例えば、CUが別のスライスまたは別のタイルに属するので)位置A0、B0、B1、およびA1のいずれかのCUが利用可能でないか、またはイントラコーディングされるときのみ考慮される。位置A1における候補が追加された後、残りの候補の追加は、コーディング効率が改善されるように、同じ動き情報を有する候補が候補リストから除外されることを確実にする冗長性チェックを受ける。
【0103】
計算の複雑さを低減するために、全ての可能な候補ペアが上述の冗長性チェックにおいて考慮されるわけではない。代わりに、図10中の矢印でリンクされたペアのみが考慮され、候補は、冗長検査のために使用される対応する候補が同じ動き情報を有しない場合のみ、候補リストに追加される。図10は、本開示の一実施形態による、空間マージ候補の冗長性チェックのために考慮される候補ペアを示している。図10を参照すると、矢印で結ばれたペアは、A1とB1、A1とA0、A1とB2、B1とB0、B1とB2である。したがって、位置B1、A0、および/またはB2の候補は、位置A1の候補と比較することができ、位置B0および/またはB2の候補は、位置B1の候補と比較することができる。
【0104】
一実施形態では、時間的候補(複数可)は以下のように導出される。一例では、1つのみの時間マージ候補が候補リストに追加される。図11は、時間マージ候補のための例示的な動きベクトルスケーリングを示している。現在ピクチャ(1101)中の現在CU(1111)の時間マージ候補を導出するために、コロケート参照ピクチャ(1104)に属するコロケートCU(1112)に基づいて、(例えば、図11中の点線によって示される)スケーリングされたMV(1121)が導出され得る。コロケートされたCU(1112)を導出するために使用される参照ピクチャリストは、スライスヘッダにおいて明示的にシグナリングされ得る。時間マージ候補のためのスケーリングされたMV(1121)は、図11中の点線によって示されているように取得され得る。スケーリングされたMV(1121)は、ピクチャ順序カウント(POC)距離tbおよびtdを使用して、コロケートされたCU(1112)のMVからスケーリングされ得る。POC距離tbは、現在ピクチャ(1101)の現在の参照ピクチャ(1102)と現在ピクチャ(1101)との間のPOC差分であると定義され得る。POC距離tdは、コロケートされたピクチャ(1103)のコロケートされた参照ピクチャ(1104)とコロケートされたピクチャ(1103)との間のPOC差分であると定義され得る。時間マージ候補の参照ピクチャインデックスは0に設定され得る。
【0105】
図12は、現在CUの時間マージ候補のための例示的な候補位置(例えば、C0およびC1)を示している。時間マージ候補のための位置は、候補位置C0とC1との間で選択され得る。候補位置C0は、現在CUのコロケートCU(1210)の右下コーナーに位置する。候補位置C1は、現在CU(1210)のコロケートCU(1210)の中心に位置する。候補位置C0におけるCUが利用可能でないか、イントラコーディングされるか、またはCTUの現在の行の外側にある場合、候補位置C1は、時間マージ候補を導出するために使用される。そうでない場合、例えば、候補位置C0におけるCUが利用可能であり、イントラコーディングされ、CTUの現在の行において、候補位置C0は、時間マージ候補を導出するために使用される。
【0106】
一部の例では、並進動きモデルが動き補償予測(MCP)のために適用される。しかしながら、並進動きモデルは、ズームイン/アウト、回転、透視動き、および他の不規則な動きなど、他のタイプの動きをモデル化するのに適していないことがある。一部の実施形態では、ブロックベースのアフィン変換動き補償予測が適用される。図13Aでは、ブロックのアフィン動きフィールドは、4パラメータアフィンモデルが使用されるとき、2つの制御点(CP)CP0およびCP1の2つの制御点動きベクトル(CPMV)CPMV0およびCPMV1によって記述される。図13Bでは、6パラメータアフィンモデルが使用されるとき、ブロックのアフィン動きフィールドは、CP、CP0、CP1、およびCP2の3つのCPMV、CPMV0、CPMV1、およびCPMV3によって記述される。
【0107】
4パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x,y)における動きベクトルは、
【数1】
のように導出される。
【0108】
6パラメータアフィン動きモデルの場合、ブロック中のサンプル位置(x,y)における動きベクトルは、
【数2】
のように導出される。
【0109】
式1~2において、(mv0x,mv0y)は左上隅制御点の動きベクトルであり、(mv1x,mv1y)は右上隅制御点の動きベクトルであり、(mv2x,mv2y)は左下隅制御点の動きベクトルである。加えて、座標(x,y)は、それぞれのブロックの左上隅に対するものであり、WおよびHは、それぞれのブロックの幅および高さを示している。
【0110】
動き補償予測を単純化するために、一部の実施形態では、サブブロックベースのアフィン変換予測が適用される。例えば、図14では、4パラメータのアフィン動きモデルが使用され、2つのCPMV、すなわち、
【数3】
が決定される。現在ブロック(1410)から区分された各4×4(サンプル)ルーマサブブロック(1402)の動きベクトルを導出するために、各サブブロック(1402)の中心サンプルの動きベクトル(1401)が、式1に従って計算され、1/16分数精度に丸められる。次いで、導出された動きベクトル(1401)を用いて各サブブロック(1402)の予測を生成するために、動き補償補間フィルタが適用される。クロマ成分のサブブロックサイズは、4×4に設定される。4×4クロマサブブロックのMVは、4つの対応する4×4ルーマサブブロックのMVの平均として計算される。
【0111】
並進動きインター予測と同様に、一部の実施形態では、2つのアフィン動きインター予測モード、アフィンマージモードおよびアフィンAMVPモードが採用される。
【0112】
一部の実施形態では、アフィンマージモードは、幅と高さの両方が8以上であるCUに適用され得る。現在CUのアフィンマージ候補は、空間的隣接CUの動き情報に基づいて生成され得る。最大5つのアフィンマージ候補があり得、現在CUのために使用されるべき1つを示すためにインデックスがシグナリングされる。例えば、以下の3つのタイプのアフィンマージ候補が、アフィンマージ候補リストを形成するために使用される。
(i)近傍CUのCPMVから外挿される継承アフィンマージ候補、
(ii)近傍CUの並進MVを使用して導出される構成アフィンマージ候補、および
(iii)ゼロMV。
【0113】
一部の実施形態では、隣接ブロックのアフィン動きモデルから導出される多くても2つの継承アフィン候補があり得、1つは左隣接CUからのものであり、1つは上隣接CUからのものである。候補ブロックは、例えば、図9に示す位置に配置することができる。左予測子の場合、走査順序はA0>A1であり、上予測子の場合、走査順序はB0>B1>B2である。各側から最初に継承された候補のみが選択される。2つの継承された候補の間でプルーニングチェックは行われない。
【0114】
隣接アフィンCUが識別されるとき、識別された隣接アフィンCUのCPMVは、現在CUのアフィンマージリスト中のCPMV候補を導出するために使用される。図15に示されているように、現在CU(1510)の隣接左下ブロックAはアフィンモードデコードされる。ブロックAを含むCU(1520)の左上隅、右上隅、左下隅の動きベクトル、
【数4】
を求める。ブロックAを4パラメータアフィンモデルデコードすると、現在CU(1510)の2つのCPMV
【数5】
が、
【数6】
から計算される。ブロックAが6パラメータアフィンモデルを用いてコーディングされる場合、現在CUの3つのCPMV(図示せず)が、
【数7】
に従って計算される。
【0115】
構成アフィン候補は、各制御点の隣接する並進動き情報を組み合わせることによって構成される。制御点についての動き情報は、図16に示される指定された空間的近傍および時間的近傍から導出される。CPMVk(k=1,2,3,4)は、k番目の制御点を表す。CPMV1については、B2>B3>A2ブロックが順番にチェックされ、最初に利用可能なブロックのMVが使用される。CPMV2については、B1>B0ブロックがチェックされ、CPMV3については、A1>A0ブロックがチェックされる。ブロックTにおけるTMVPは、利用可能な場合、CPMV4として使用される。
【0116】
4つの制御点のMVが得られた後、その動き情報に基づいてアフィンマージ候補が構成される。制御点MVの以下の組み合わせを使用して、{CPMV1、CPMV2、CPMV3}、{CPMV1、CPMV2、CPMV4}、{CPMV1、CPMV3、CPMV4}、{CPMV2、CPMV3、CPMV4}、{CPMV1、CPMV2}、{CPMV1、CPMV3}を順番に構成する。
【0117】
3つのCPMVの組み合わせは、6パラメータアフィンマージ候補を構成し、2つのCPMVの組み合わせは、4パラメータアフィンマージ候補を構成する。動きスケーリングプロセスを回避するために、制御点の参照インデックスが異なる場合、制御点MVの関連する組み合わせは破棄される。
【0118】
継承アフィンマージ候補および構成アフィンマージ候補がチェックされた後、リストがまだ満杯でない場合、ゼロMVがマージ候補リストの最後に挿入される。
【0119】
一部の実施形態では、アフィン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。
【0120】
継承アフィンAMVP候補のチェック順序は、一例における継承アフィンマージ候補のチェック順序と同様である。違いは、AVMP候補について、現在ブロックと同じ参照ピクチャを有するアフィンCUが考慮されることである。継承アフィン動き予測子を候補リストに挿入するとき、プルーニングプロセスは適用されない。
【0121】
構成されたAMVP候補は、図16に示される指定された空間近傍から導出される。アフィンマージ候補構成で行われるのと同じチェック順序が使用される。さらに、隣接ブロックの参照ピクチャインデックスもチェックされる。インターコーディングされ、現在CU中と同じ参照ピクチャを有する、検査順序における第1のブロックが使用される。現在CUが4パラメータアフィンモデルを用いてコーディングされ、CPMV0とCPMV1の両方が利用可能であるとき、利用可能なCPMVは、アフィンAMVPリスト中の1つの候補として追加される。現在CUが6パラメータアフィンモードデコードされ、全ての3つのCPMV(CPMV0、CPMV1、およびCPMV2)が利用可能であるとき、利用可能なCPMVは、アフィンAMVPリスト中の1つの候補として追加される。そうでない場合、構成AMVP候補は利用不可能として設定される。
【0122】
継承アフィンAMVP候補および構成AMVP候補がチェックされた後、アフィンAMVPリスト候補が依然として2未満である場合、制御点に隣接する並進動きベクトルは、利用可能なとき、現在CUの全ての制御点MVを予測するために追加される。最後に、アフィンAMVPリストが依然として満杯でない場合、アフィンAMVPリストを満たすためにゼロMVが使用される。
【0123】
適応動きベクトル解像度(AMVR)モードは、VVCなどのビデオ/画像コーディングにおいて使用され得る。ビデオコーディング規格HEVCおよびAVC/H.264などの一部の技術では、4分の1(1/4)ルーマサンプル(または1/4-pel)の固定動きベクトル解像度(MVR)が使用される。概して、変位ベクトルレートと予測エラーレートとの間の最適なトレードオフは、レート歪みを最適化するように選択される。VVCなどの関連技術では、AMVRモードが有効化され、例えば、複数のMVRからコーディングブロックレベルでMVRを選択することができ、したがって、ビットレートをシグナリング動きパラメータの忠実度とトレードオフすることができる。AMVRモードは、例えば、MVDの少なくとも1つの成分が0に等しくない場合、コーディングブロックレベルにおいてシグナリングされ得る。動きベクトル予測子(MVP)は、得られたMV(例えば、MVPとMVDとの和)が所与のMVRのグリッド上に入ることができるように、所与のMVRに丸められ得る。
【0124】
一部の例では、AMVRフラグ(例えば、amvr_flag)などのフラグは、MVDの解像度(例えば、MVR)を指定する。一例では、0に等しいAMVRフラグ(例えば、amvr_flag)は、MVDのMVRが1/4ルーマサンプル(1/4-pel)であることを指定する。1に等しいAMVRフラグ(例えば、amvr_flag)は、MVDのMVRがインデックス(例えば、AMVR精度インデックス)のような追加情報によってさらに指定されることを指定する。例えば、コーディングブロックはAMVPモードで予測され、AMVRフラグ(例えば、amvr_flag)は1であり、したがって、MVRは、AMVR精度インデックスが0、1、または2であるとき、それぞれ、1/2ルーマサンプル(1/2-pel)、1ルーマサンプル(1-pel)、または4ルーマサンプル(4-pel)である。
【0125】
テンプレートマッチング(TM)技術は、ビデオ/画像コーディングにおいて使用され得る。VVC規格の圧縮効率をさらに改善するために、例えば、TMを使用してMVを精緻化することができる。一例では、TMはデコーダ側で使用される。TMモードでは、MVは、現在ピクチャ中のブロック(例えば、現在ブロック)のテンプレート(例えば、現在テンプレート)を構成することによって精緻化され、現在ピクチャ中のブロックのテンプレートと参照ピクチャ中の複数の可能なテンプレート(例えば、複数の可能な参照テンプレート)との間の最も近い一致を決定することができる。一実施形態では、現在ピクチャ内のブロックのテンプレートは、ブロックの左に隣接する再構成されたサンプルと、ブロックの上に隣接する再構成されたサンプルとを含み得る。TMは、VVCを超えてビデオ/画像コーディングにおいて使用され得る。
【0126】
図17にテンプレートマッチング(1700)の一例を示している。TMは、現在ピクチャ(1710)中の現在CU(1701)のテンプレート(例えば、現在テンプレート)(1721)と参照ピクチャ(1711)中の複数の可能なテンプレート(例えば、複数の可能なテンプレートのうちの1つがテンプレート(1725)である)のうちのテンプレート(例えば、参照テンプレート)との間の最も近い一致を判断することによって、現在CU(例えば、現在ブロック)(1701)の動き情報を導出する(例えば、初期MV1702などの初期動き情報から最終動き情報を導出する)ために使用され得る。現在CU(1701)のテンプレート(1721)は、任意の適切な形状および任意の適切なサイズを有することができる。
【0127】
一実施形態では、現在CU(1701)のテンプレート(1721)は、上部テンプレート(1722)および左テンプレート(1723)を含む。上部テンプレート(1722)および左テンプレート(1723)の各々は、任意の好適な形状および任意の好適なサイズを有することができる。
【0128】
上部テンプレート(1722)は、現在CU(1701)の1つ以上の上部隣接ブロック内のサンプルを含み得る。一例では、上部テンプレート(1722)は、現在CU(1701)の1つ以上の上部隣接ブロック中のサンプルの4つの行を含む。左テンプレート(1723)は、現在CU(1701)の1つ以上の左隣接ブロック内のサンプルを含み得る。一例では、左テンプレート(1723)は、現在CU(1701)の1つ以上の左隣接ブロック中のサンプルの4つの列を含む。
【0129】
参照ピクチャ(1711)内の複数の可能なテンプレートの各々(例えば、テンプレート(1725))は、現在ピクチャ(1710)内のテンプレート(1721)に対応する。一実施形態において、初期MV(1702)は、現在CU(1701)から参照ピクチャ(1711)内の参照ブロック(1703)を指し示している。参照ピクチャ(1711)内の複数の可能なテンプレートの各々(例えば、テンプレート(1725))および現在ピクチャ(1710)内のテンプレート(1721)は、同一の形状および同一のサイズを有することができる。例えば、参照ブロック(1703)のテンプレート(1725)は、参照ピクチャ(1711)内の上部テンプレート(1726)と、参照ピクチャ(1711)内の左テンプレート(1727)とを含む。上部テンプレート(1726)は、参照ブロック(1703)の1つ以上の上部隣接ブロック内のサンプルを含み得る。左テンプレート(1727)は、参照ブロック(1703)の1つ以上の左隣接ブロック内のサンプルを含み得る。
【0130】
TMコストは、テンプレート(例えば、現在テンプレート)(1721)およびテンプレート(例えば、参照テンプレート)(1725)などのテンプレートのペアに基づいて決定され得る。TMコストは、テンプレート(1721)とテンプレート(1725)との間のマッチングを示すことができる。最適化されたMV(または最終MV)は、探索範囲(1715)内の現在CU(1701)の初期MV(1702)の周りの探索に基づいて決定され得る。探索範囲(1715)は、任意の適切な形状および任意の適切な数の参照サンプルを有することができる。一例では、参照ピクチャ(1711)内の探索範囲(1715)は、[-L,L]-pel範囲を含み、ここで、Lは、8(例えば、8サンプル)などの正の整数である。例えば、探索範囲(1715)に基づいて差分(例えば、[0,1])が決定され、初期MV(1702)と差分(例えば、[0,1])との和によって中間MVが決定される。中間MVに基づいて、参照ピクチャ(1711)内の中間参照ブロックおよび対応するテンプレートを決定することができる。TMコストは、テンプレート(1721)および参照ピクチャ(1711)内の中間テンプレートに基づいて決定することができる。TMコストは、探索範囲(1715)に基づいて決定された差(例えば、初期MV(1702)に対応する[0,0]、[0,1]など)に対応し得る。一例では、最小のTMコストに対応する差が選択され、最適化されたMVは、最小のTMコストに対応する差と初期MV(1702)との和である。上述したように、TMは、初期動き情報(例えば、初期MV1702)から最終動き情報(例えば、最適化されたMV)を導出することができる。
【0131】
TMは、適宜変更することができる。一例では、探索ステップサイズはAMVRモードによって決定される。一例では、TMは、両側マッチングプロセスなど、他のコーディング方法(複数可)とカスケードされる(例えば、一緒に使用される)ことができる。
【0132】
関連技術では、AMVRモードにおけるMV解像度インデックス(例えば、AMVR精度インデックス)は、双予測およびアフィンモード(例えば、アフィンマージモード、アフィンAMVPモードなど)のための固定順序に従ってエンコードされる。例えば、双予測モードでは、(i)各MVRインデックスまたは各MVRインデックスペアと(ii)各対応するMVRまたはMVRペアとの間の関係が固定される。AMVRモードにおけるMVRインデックスが固定された順序でエンコードされるとき、双予測およびアフィンモードのためのMVRインデックス(または複数のMVRインデックス)をシグナリングすることは効率的でないことがある。
【0133】
AMVPモードにおける(MV精度のセットとも称される)MVRのセットは、現在ブロックをコーディングするために利用可能である。本開示の一態様によれば、テンプレートマッチング(TM)は、MVRのセット内の複数のMVRを使用して行うことができる。TMは、(i)動き情報(例えば、複数のMVRによって共有される動き情報)および複数のMVRの各々に基づいて、複数のMVRの各々に対応するTMコストを決定することと、(ii)複数のMVRの各々にそれぞれ対応する決定されたTMコストに基づいて、複数のMVRをランク付けまたは並べ替えすることと、(iii)ランク付けまたは並べ替えされた複数のMVRからMVRを選択することとによって行われ得る。一例では、動き情報は、MVP候補(複数可)を決定するために使用されるMVP情報とMVD情報とを示している。一例では、複数のMVRによって共有される動き情報は、候補リスト中のMVP候補を指す候補インデックスを含む。複数のMVRのMVPは、動き情報によって示されるMVP候補と複数のMVRとに基づいて決定され得、したがって、複数のMVRについて異なり得る。TMにおけるTMコストを決定するために使用される複数のMVRのMVは、それぞれのMVPに基づき得る。
【0134】
例えば、複数のMVRの各々について、例えば1/2-pelなど、MVR(例えば、1/2-pel)に関連するMVまたはMVPは、MVRと動き情報(例えば、候補リスト中のMVP候補を指す候補インデックス)とに基づいて決定され得る。MVRに関連するMVおよび/またはMVPは、動き情報およびMVRに基づいて決定される。MVRに関連付けられたMVおよび/またはMVPは、参照ピクチャ中のMVRに関連付けられた参照ブロック(例えば、1/2-pel)を示すことができる。例えば、MVR(例えば、1/2-pel)に関連付けられた決定されたMVは、現在ピクチャ中の現在ブロックから、参照ピクチャ中のMVR(例えば、1/2-pel)に関連付けられた参照ブロックを指す。MVR(例えば、1/2-pel)に対応するコスト(例えば、TMコスト)は、現在ピクチャ内の現在ブロックの現在テンプレートと、参照ピクチャ内のMVR(例えば、1/2-pel)に関連付けられた参照ブロックの参照テンプレートとに基づいて決定され得る。複数のMVRは、それぞれ決定されたTMコストに基づいてランク付け(例えば、並べ替え)することができる。一例では、複数のMVRは、フラグ(例えば、sps_amvr_enabled_flag)が真であるとき、TMコストの昇順でランク付けされる(例えば、並べ替えられる)。
【0135】
一例では、AMVPモードにおけるMVRのセットは、1/4-pel、1/2-pel、1-pel、および4-pelを含む。一例では、複数のMVRはMVRのセットである。別の例では、複数のMVRは、最高解像度(例えば、1/4-pel)を除くMVRのセットのサブセットである。例えば、複数のMVRは、1/2-pel、1-pel、および4-pelを含み、1/4-pelを除く。
【0136】
図18は、MVRのセットに適用されるテンプレートマッチング(1800)の一例を示している。現在ピクチャ(1810)内の現在ブロック(1801)の現在テンプレート(1821)と、参照ピクチャ(1811)内のそれぞれの参照ブロック(1831)~(1834)の参照テンプレート(1851)~(1854)とに対してテンプレートマッチングを行うことができる。現在テンプレート(1821)は、任意の適切な形状および任意の適切なサイズを有することができる。参照テンプレート(1851)~(1854)の形状(複数可)およびサイズ(複数可)は、それぞれ、現在テンプレート(1821)の形状およびサイズと一致することができる。一実施形態では、現在テンプレート(1821)は、上部テンプレートおよび左テンプレートを含む。
【0137】
1/4-pel解像度に対応するMV(1841)は、現在ブロック(1801)から参照ピクチャ(1811)内の参照ブロック(1831)を指す。1/2-pel解像度に対応するMV(1842)は、現在ブロック(1801)から参照ピクチャ(1811)内の参照ブロック(1832)を指す。1-pel解像度に対応するMV(1843)は、現在ブロック(1801)から参照ピクチャ(1811)内の参照ブロック(1833)までを指す。4-pel解像度に対応するMV(1844)は、現在ブロック(1801)から参照ピクチャ(1811)内の参照ブロック(1834)を指す。
【0138】
現在ブロック(1801)の現在テンプレート(1821)と参照ピクチャ(1811)内のそれぞれの参照テンプレート(1851)~(1854)との間のテンプレートマッチングは、以下のように行うことができる。TMコスト(TM0)は、参照テンプレート(1851)および現在テンプレート(1821)に基づいて計算される。TMコスト(TM1)は、参照テンプレート(1852)および現在テンプレート(1821)に基づいて計算される。TMコスト(TM2)は、参照テンプレート(1853)および現在テンプレート(1821)に基づいて計算される。TMコスト(TM4)は、参照テンプレート(1854)および現在テンプレート(1821)に基づいて計算される。TMコストは、現在テンプレート(1821)とそれぞれの参照テンプレート(例えば、(1851))との間の絶対差分和(SAD)に基づいて決定することができる。二乗誤差和(SSE)、分散、部分SADなどの他の関数も、TMコストを決定するために使用され得る。
【0139】
その後、MVRは、TMコストに基づいて、例えば、現在テンプレート(1821)とMVRのセットに対応する参照テンプレート(1851)~(1854)との間の対応するTMコストの昇順でランク付け(例えば、並べ替え)することができる。一例では、MVRのセットは、1/4-pel、1/2-pel、1-pel、および4-pelを含み、TMコストは、昇順でTM2、TM1、TM3、およびTM0である。TM2は、TM0~TM3のうちの最小値である。MVRのセットは、1-pel、1/2-pel、4-pel、および1/4-pelとしてランク付けされ(例えば、並べ替えられ)得る。
【0140】
TM-AMVRフラグ(例えば、tm_amvr_flag)などのフラグを使用して、現在ブロック(1801)に対してどのMVRが選択されるかを示すことができる。一例では、TM-AMVRフラグ(例えば、tm_amvr_flag)が偽であることは、TMコスト(例えば、TM0~TM3)の中の最小のTMコスト(例えば、TM2)に対応する第1のMVR(例えば、1-pel)が選択されることを示す。TM-AMVRフラグ(例えば、tm_amvr_flag)が真であるとき、例えば、現在ブロック(1801)のためにどのMVRが選択されるかを示すために、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)などのインデックスがさらにシグナリングされる。MVRは、第1のMVR(例えば、1-pel)を除くMVRのセット中の残りのMVR(例えば、TM0、TM1、およびTM3)から選択され得る。例えば、ランク付けされた残りのMVRは、TM1、TM3、およびTM0である。0、1、または2のAMVR精度インデックス(例えば、tm_amvr_precision_idx)は、MVRがそれぞれTM1、TM3、またはTM0であることを示す。
【0141】
例示的な擬似シンタックスを以下の表1に示す。AMVRモードが有効化されている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効化されていない(例えば、inter_affine_flagが偽である)、および現在ブロック(1801)のMVDの少なくとも1つの成分が0に等しくないなど、一部の条件が満たされるとき、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)が偽である場合、TMコストの中で最小のTMコストに対応する第1のMVRが選択され、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)はシグナリングされない。そうではなく、TM-AMVRフラグ(例えば、tm_amvr_flag)が真であるとき、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)がシグナリングされる。
【0142】
【表1】
【0143】
一実施形態では、MVRのセット内のMVRの全てまたは一部にTMが適用される。例えば、MVRのセットは、1/4-pel、1/2-pel、1-pel、および4-pelを含み、TMが適用される複数のMVRは、1/2-pel、1-pel、および4-pelを含み、1/4-pelを除く。この場合、AMVRフラグなどのフラグが偽であるとき、現在ブロック(1801)をコーディングするために1/4-pelが使用される。
【0144】
テンプレートマッチングは、図18の変形例として、複数のMVR(例えば、1/2-pel、1-pel、および4-pel)に対して行うことができる。例えば、図18で説明したように、1/2-pel、1-pel、4-pelにそれぞれ対応するTMコストTM1、TM2、TM3が算出され、TM0は算出されない。その後、現在ピクチャ(1810)内の現在テンプレート(1821)と参照ピクチャ(1811)内の参照ブロック(例えば、(1832)~(1834))との間の対応するTMコストの昇順(例えば、TM2、TM1、およびTM3であり、TM2がTM1、TM2、およびTM3のうちの最小である)で複数のMVR(例えば、1/2-pel、1-pel、および4-pel)が並べ替えられる。複数のMVRは、1/2-pel、1-pel、および4-pelとしてランク付けされる(例えば、並べ替えられる)ことができる。TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)などのインデックスは、例えば、どのMVRが現在ブロックのために選択されるかを示すためにシグナリングされる。MVRは、複数のMVR(例えば、TM1~TM3)から選択することができる。0、1、または2のTM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)は、MVRがそれぞれTM2、TM1、またはTM3であることを示す。
【0145】
例示的な擬似シンタックスを以下の表2に示す。AMVRモードが有効化されている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効化されていない(例えば、inter_affine_flagが偽である)、および現在ブロック(1801)のMVDの少なくとも1つの成分が0に等しくないなど、一部の条件が満たされるとき、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が偽であるとき、1/4-pelが選択され、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)はシグナリングされない。そうではなく、AMVRフラグ(例えば、amvr_flag)が真であるとき、TM-AMVR精度インデックス(例えば、tm_amvr_precision_idx)がシグナリングされる。
【0146】
【表2】
【0147】
一実施形態では、TMはMVRのセットに適用される。例えば、MVRのセットは、1/4-pel、1/2-pel、1-pel、および4-pelを含む。テンプレートマッチングは、MVRのセットに対して行うことができる。例えば、図18で説明したように、1/4-pel、1/2-pel、1-pel、および4-pelにそれぞれ対応するTMコストTM0~TM3が計算される。その後、現在ピクチャ(1810)内の現在テンプレート(1821)と参照ピクチャ(1811)内の参照テンプレート(例えば、(1851)~(1854))との間の対応するTMコストの昇順(例えば、TM2、TM1、TM3、およびTM0であり、TM2がTM0~TM3のうちの最小である)でMVRのセットが並べ替えられる。MVRのセットは、1-pel、1/2-pel、4-pel、および1/4-pelとしてランク付けされ(例えば、並べ替えられ)得る。
【0148】
TM-AMVRフラグ(例えば、tm_amvr_flag)は、最小のTMコスト(例えば、TM2)をもつMVR(例えば、1-pel)が選択されるとき、真として設定され得る。そうでない場合、TM-AMVRフラグ(例えば、tm_amvr_flag)は、偽として設定されることができ、通常のAMVRシグナリングが使用される。通常のAMVRシグナリングでは、AMVRフラグがシグナリングされる。AMVRフラグが偽である場合、現在ブロックをコーディングするために1/4-pelが使用される。AMVRフラグが真である場合、例えば、複数のMVR(例えば、TM1~TM3)中のどのMVRが現在ブロックのために選択されるかを示すために、AMVR精度インデックス(例えば、amvr_precision_idx)がシグナリングされる。MVRは、複数のMVR(例えば、TM1~TM3)から選択することができる。0、1、または2のAMVR精度インデックス(例えば、amvr_precision_idx)は、MVRがそれぞれTM1、TM2、またはTM3であることを示す。
【0149】
例示的な擬似シンタックスを以下の表3に示す。AMVRモードが有効化されている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効化されていない(例えば、inter_affine_flagが偽である)、現在ブロックのMVDの少なくとも1つの成分が0に等しくないなど、一部の条件が満たされるとき、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)がfalseである場合、次のように動作する。例えば、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が偽であるとき、1/4-pelが選択され、AMVR精度インデックス(例えば、amvr_precision_idx)はシグナリングされない。そうではなく、AMVRフラグ(例えば、amvr_flag)が真であるとき、AMVR精度インデックス(例えば、amvr_precision_idx)がシグナリングされる。
【0150】
【表3】
【0151】
一実施形態では、AMVRフラグ(例えば、amvr_flag)は、AMVRモードが有効化されているか否かを示すためにシグナリングされる。
【0152】
AMVRモードが有効化されない(例えば、AMVRフラグが偽である)場合、1/4-pelが選択され得る。
【0153】
AMVRモードが有効化されている(例えば、AMVRフラグが真である)場合、TM-AMVRフラグ(例えば、tm_amvr_flag)は、最小のTMコストを有するMVRが選択されるかどうかを示すためにシグナリングされる。
【0154】
TM-AMVRフラグ(例えば、tm_amvr_flag)が真であるとき、テンプレートマッチングは、1/4-pelを除く複数のMVR(例えば、1/2-pel、1-pel、および4-pel)に適用される。例えば、図18で説明したように、1/2-pel、1-pel、4-pelにそれぞれ対応するTMコストTM1、TM2、TM3が算出され、TM0は算出されない。その後、現在ピクチャ(1810)内の現在テンプレート(1821)と参照ピクチャ(1811)内の参照テンプレート(例えば、(1852)~(1854))との間の対応するTMコストの昇順(例えば、TM2、TM1、およびTM3であり、TM2がTM1~TM3のうちの最小である)で複数のMVR(例えば、1/2-pel、1-pel、および4-pel)が並べ替えられる。複数のMVRは、1/2-pel、1-pel、および4-pelとしてランク付け(例えば、並べ替え)され得る。MVR(例えば、1-pel)は、1/4-pelを除く複数のMVR(例えば、1/2-pel、1-pel、および4-pel)中の最小のTMコスト(例えば、TM2)に対応して選択される。
【0155】
TM-AMVRフラグ(例えば、tm_amvr_flag)が偽として設定されるとき、AMVR精度インデックスがシグナリングされ、MVRは、AMVR精度インデックスに基づいて、MVRを並べ替えることなく選択される。例えば、AMVR精度インデックスが0、1、または2であるとき、MVRはそれぞれ、1/2-pel、1-pel、または4-pelである。
【0156】
【表4】
【0157】
例示的な擬似シンタックスを以下の表4に示す。AMVRモードが有効化されている(例えば、sps_amvr_enabled_flagが真である)、アフィンモードが有効化されていない(例えば、inter_affine_flagが偽である)、現在ブロックのMVDの少なくとも1つの成分が0に等しくないなど、一部の条件が満たされるとき、AMVRフラグ(例えば、amvr_flag)がシグナリングされる。AMVRフラグ(例えば、amvr_flag)が真(true)である場合、次の通りである。例えば、TM-AMVRフラグ(例えば、tm_amvr_flag)がシグナリングされる。TM-AMVRフラグ(例えば、tm_amvr_flag)が偽であるとき、AMVR精度インデックス(例えば、amvr_precision_idx)がシグナリングされる。そうではなく、TM-AMVRフラグ(例えば、tm_amvr_flag)が真であるとき、AMVR精度インデックス(例えば、amvr_precision_idx)はシグナリングされない。
【0158】
上述の説明は、単予測デコードされたブロックに適用され得る。上述の説明は、ブロックが双予測を用いてコーディングされるシナリオに適応され得る。一例では、双予測モードが使用されるとき、現在ピクチャ中の現在ブロックは、参照リスト0(L0)からの第1の参照ピクチャと、参照リスト1(L1)からの第2の参照ピクチャとを使用してコーディングされ得る。
【0159】
図19は、現在ブロック(1801)が双予測モードを使用して予測されるときのテンプレートマッチング(1900)の一例を示している。図19の現在ブロック(1801)、現在ピクチャ(1810)、現在テンプレート(1821)、MV(1841)~(1844)、参照テンプレート(1851)~(1854)、参照ブロック(1831)~(1834)、および参照ピクチャ(1811)は、図18に記載されている。
【0160】
図19を参照すると、参照ピクチャ(1811)は、第1の参照ピクチャ(1811)と称され、第1の複数のMVRに関連付けられる。第1の複数のMVRに対応するMV(1841)~(1844)、参照テンプレート(1851)~(1854)、および参照ブロック(1831)~(1834)は、それぞれ第1のMV(1841)~(1844)、第1の参照テンプレート(1851)~(1854)、および第1の参照ブロック(1831)~(1834)と称される。第1の複数のMVRは、任意の適切なMVRおよび任意の適切な数のMVRを含み得る。一例では、第1の複数のMVRは、1/4-pel、1/2-pel、1-pel、および4-pelを含む。一例では、第1の複数のMVRは、1/4-pel、1/2-pel、1-pel、および4-pelのサブセットを含む。
【0161】
図19を参照すると、第2の参照ピクチャ(1911)は、第2の複数のMVRに関連付けられる。第2のMV(1941)~(1944)は、それぞれ、1/4-pel、1/2-pel、1-pel、および4-pelなどの第2の複数のMVRに対応することができる。第2のMV(1941)~(1944)は、現在ブロック(1801)から第2の参照ピクチャ(1911)内の第2の参照ブロック(1931)~(1934)をそれぞれ指し示すことができる。第2の参照テンプレート(1951)~(1954)は、それぞれ第2の参照ブロック(1931)~(1934)に関連付けられる。
【0162】
第2の複数のMVRは、任意の適切なMVRおよび任意の適切な数のMVRを含み得る。一例では、第2の複数のMVRは、1/4-pel、1/2-pel、1-pel、および4-pelを含む。一例では、第2の複数のMVRは、1/4-pel、1/2-pel、1-pel、および4-pelのサブセットを含む。
【0163】
第1の複数のMVRのうちの第1の数のMVRは、第2の複数のMVRのうちの第2の数のMVRと同一であっても異なっていてもよい。
【0164】
現在ブロック(1801)は、L0からの第1の参照ピクチャ(1811)およびL1からの第2の参照ピクチャ(1911)に基づいて予測することができる。
【0165】
本開示の一実施形態によれば、MVRペアに対してTMを行うことができる。MVRペアは、第1の複数のMVRおよび第2の複数のMVRの任意の適切な組み合わせを含み得る。一実施形態では、MVRペア内のMVRペアは、(i)第1の複数のMVRからの第1のMVR(例えば、1/2-pel)と、(ii)第2の複数のMVRからの第2のMVR(例えば、1-pel)とを含む。TMは、MVRペアにおける各MVRペアに対応するTMコストを決定することを含むことができ、例えば、MVRペアは、第1のMVRとして1/2-pelおよび第2のMVRとして1-pelを含む。TMコストは、現在ブロック(1801)の現在テンプレート(1821)の一部と、それぞれのMVRペアの双予測子とに基づいて決定することができる。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ(1811)中の第1の参照テンプレート(例えば(1851))の一部と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ(1911)中の第2の参照テンプレート(例えば(1951))の一部とに基づき得る。一実施形態では、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けまたは並べ替えすることと、ランク付けまたは並べ替えられたMVRペアからMVRペアを選択することとを含む。現在ブロック(1801)は、選択されたMVRペアに基づいて再構成することができる。
【0166】
上述したように、TMは、双予測された現在ブロック(例えば、現在ブロック(1801))など、双予測されたCUに適用され得、ここで、AMVPモードにおけるMVRペアが並べ替えられ得る。図19を参照すると、TMコストの各々は、現在テンプレート(1821)と、参照テンプレート(例えば、(1851)および(1951))に基づく対応する双予測子との間の歪み(例えば、差)に従って計算され得る。
【0167】
図19に示すような一実施形態では、第1のMVR(例えば、1/2-pel)および第2のMVR(例えば、1-pel)を含むMVRペアについて、双予測子は、第1のMVRに対応する第1の参照テンプレート(例えば、(1851))および第2のMVRに対応する第2の参照テンプレート(例えば、(1951))に基づいて決定される。双予測子は、第1の参照テンプレート(例えば、(1851))と第2の参照テンプレート(例えば、(1951))との平均であり得る。一例では、双予測子は、第1の参照テンプレート(例えば、(1851))と第2の参照テンプレート(例えば、(1951))との加重平均である。一例では、双予測子はオフセットによって修正される。
【0168】
一例では、MVRペアに対応する双予測子(TPb(i,j)として示される)は、式3を使用して計算される。
TPb(i,j)=(TP0i+TP1j+1)>>1 (式3)
パラメータTP0iおよびパラメータTP1jは、それぞれ、参照リストL0に対する第1の参照テンプレート(例えば、(1851))および参照リストL1に対する第2の参照テンプレート(例えば、(1951))を表すことができる。整数iおよびjは、それぞれ、MVRペアにおける第1のMVRおよび第2のMVRを表す。式3に基づいて、双予測子TPb(i,j)中の予測子サンプルの値は、第1の参照テンプレートにおける第1の参照サンプル値と第2の参照テンプレートにおける第2の参照サンプル値との平均であり得る。
【0169】
MVRペアに対応するTMコスト(TMコスト(i,j)と表される)は、現在テンプレート(TCと表される)および双予測子TPb(i,j)に基づいて、例えば以下の式4を使用して計算することができる。
TMcost(i,j)=SAD(TPb(i,j)-TC) (式4)
【0170】
パラメータTCは、現在ブロック(1801)の現在テンプレート(1821)を表す。絶対差分和(SAD)は、例えば、現在テンプレート(1821)内のサンプル値と、双予測子TPb(i,j)内の予測子サンプルの対応する値との間の絶対差分和の関数を示す。
【0171】
SSE、分散、部分SADなどの他の関数が、TMコストを決定するために使用され得る。部分SADの例では、現在テンプレート(1821)の一部、第1の参照テンプレート(例えば、1851)の対応する部分、および第2の参照テンプレート(例えば、1951)の対応する部分が、TMコストを決定するために使用される。
【0172】
部分SADの例では、現在テンプレート(1821)の一部または全体、第1の参照テンプレート(例えば、1851)の一部または全体、および第2の参照テンプレート(例えば、1951)の一部または全体が、TMコストを決定するために使用される前にダウンサンプリングされる。
【0173】
上述したように、現在ブロック(1801)をコーディングするために使用されるMVRペアは、TMコストの昇順に並べ替えられたMVRペアのTMコストに従って導出することができる。
【0174】
一実施形態では、現在ブロックが双予測モードデコード(例えば、エンコードおよび/またはデコード)されるとき、MVRペアにおける第1のMVRおよび第2のMVRは同一である(例えば、式3においてi=j)。例えば、第1の複数のMVRと第2の複数のMVRは同一である。第1の複数のMVR内の1/4-pel、1/2-pel、1-pel、および4-pelは、それぞれ、0、1、2、および3であるiに対応する。第2の複数のMVR内の1/4-pel、1/2-pel、1-pel、および4-pelは、それぞれ、0、1、2、および3であるjに対応する。第1のMV(1841)~(1844)は、それぞれ、1/4-pel、1/2-pel、1-pel、および4-pelに対応する。第2のMV(1941)~(1944)は、それぞれ、1/4-pel、1/2-pel、1-pel、および4-pelに対応する。したがって、MVRペアは、表5に示すように、第1のMVRペア、第2のMVRペア、第3のMVRペア、第4のMVRペアの4つのMVRペアを含む。例えば、第1のMVRペアは、iが0である1/4-pelの第1のMVRと、jが0である1/4-pelの第2のMVRとを含む。
【0175】
【表5】
【0176】
4つのMVRペアに対応する4つの双予測子TPb(0,0)、TPb(1,1)、TPb(2,2)、およびTPb(3,3)は、式3に基づいて決定することができる。例えば、双予測子TPb(0,0)は、第1の参照テンプレート(1851)(例えば、i=0であるTP0i)および対応する第2の参照テンプレート(1951)(例えば、j=0であるTP1j)に基づいて決定される。一例において、TPb(0,0)は、TP00とTP10との平均である。
【0177】
4つのMVRペアに対応する4つのTMコスト(例えば、TMコスト(0,0)、TMコスト(1,1)、TMコスト(2,2)、およびTMコスト(3,3))は、それぞれ、現在テンプレート(1821)および双予測子TPb(0,0)、TPb(1,1)、TPb(2,2)、およびTPb(3,3)に基づいて決定することができる。例えば、TMコスト(0,0)は、式4を使用して決定され、ここで、TMコスト(0,0)は、双予測子TPb(0,0)と現在テンプレート(1821)との間のSADである。
【0178】
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ペアを含む。
【0179】
MVRペアは、ランク付けされたMVRペアから選択することができる。一例では、選択されたMVRペアは、TMコスト(1,1)に対応する第2のMVRペアなどの、最小のTMコストに対応するMVRペアである。一実施形態では、選択されたMVRペアが最小TMコストに対応するMVRペアであるとき、インデックスはシグナリングされない。
【0180】
一例では、ランク付けされたMVRペアの中のどのMVRペアが選択されるかを示すためにインデックスがシグナリングされる。例えば、ランク付けされた(例えば、並べ替えられた)MVRペアに基づいて、0、1、2、または3のインデックスは、選択されたMVRペアがそれぞれ第2のMVRペア、第3のMVRペア、第1のMVRペア、または第4のMVRペアであることを示す。
【0181】
一実施形態では、現在ブロックが双予測モードデコード(例えば、エンコードおよび/またはデコード)されるとき、MVRペアの一方における第1のMVRおよび第2のMVRは同一であり(例えば、式3においてi=j)、MVRペアの他方における第1のMVRおよび第2のMVRは異なる(例えば、式3においてi≠j)。一例では、第1の複数のMVRはN1個の第1のMVRを有し、第2の複数のMVRはN2個の第2のMVRを有し、N1およびN2は正の整数である。N1およびN2は、同一であっても異なっていてもよい。一例では、N1およびN2は4であり、16個のMVRペアまたは第1のMVRと第2のMVRとの16個の異なる組み合わせが双予測された現在ブロックに関連付けられる。表6は、16個のMVRペアの一例を示す。
【0182】
【表6】
【0183】
一例では、第1のMV(1841)~(1844)は、それぞれ、1/4-pel、1/2-pel、1-pel、および4-pelに対応する。第2のMV(1941)~(1944)は、それぞれ、1/4-pel、1/2-pel、1-pel、および4-pelに対応する。
【0184】
表6中の16個のMVRペアに対応する16個の双予測子TPb(i,j)(例えば、TPb(0,0)~TPb(3,3))が、式3に基づいて決定され得る。例えば、表6の第8のMVRペアに対応する双予測子TPb(1,3)は、第1の参照テンプレート(1852)(例えば、i=1を有するTP0i)および対応する第2の参照テンプレート(1954)(例えば、j=3を有するTP1j)に基づいて決定される。一例において、TPb(1,3)は、TP01とTP13との平均である。
【0185】
16個のMVRペアに対応する16個のTMコスト(例えば、TMコスト(0,0)~TMコスト(3,3))が、それぞれ、現在テンプレート(1821)および双予測子TPb(0,0)~TPb(3,3)に基づいて決定され得る。例えば、TMコスト(1,3)は、式4を使用して決定され、ここで、TMコスト(1,3)は、双予測子TPb(1,3)と現在テンプレート(1821)との間のSADである。
【0186】
表6の16個のMVRペアは、16 TMコストの昇順など、対応する16 TMコストに基づいてランク付け(例えば、並べ替え)することができる。MVRペアは、ランク付けされた16個のMVRペアから選択することができる。一例では、選択されたMVRペアは、16個のTMコストのうち最小のTMコストに対応するMVRペアである。例えば、選択されたMVRペアが16個のTMコストのうち最小のTMコストに対応するMVRペアである場合、インデックスはシグナリングされない。一例では、ランク付けされた(例えば、並べ替えられた)16個のMVRペアの中のどのMVRペアが選択されるかを示すためにインデックスがシグナリングされる。
【0187】
簡潔にするために、表5に示すMVRペアは第1のセットのMVRペアと称される。表6に示されるMVRペアは、MVRペアの第2のセットと称される。
【0188】
一実施形態では、MVRペア(例えば、MVRペアの第1のセットまたは第2のセット)に対してTMが行われるかどうかを示すために、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ(PH)、スライスヘッダなどのビデオビットストリームにおいてフラグがシグナリングされる。
【0189】
双予測に関連する実施形態は、1/4-pel、1/2-pel、1-pel、および4-pelを含む第1の複数のMVRおよび第2の複数のMVRに関して説明される。第1の複数のMVRおよび/または第2の複数のMVRがより少ないまたはより多いMVRを含むときに、双予測に関する説明を適応させることができる。
【0190】
TMは、アフィンAMVPモード、アフィンマージモードなどのアフィンモードで適用され得、アフィンTMと称されることがある。図20は、アフィンマージモードなどにおけるTM(2000)の一例を示している。現在ブロック(例えば、現在CU)(2001)のテンプレート(2021)は、並進動きモデルに適用されるTM内のテンプレート(例えば、図17のテンプレート(1721))に対応することができる。参照ピクチャ内の参照ブロックの参照テンプレート(2025)は、ブロック境界における隣接サブブロック(例えば、図20に示すようなA0~A3およびL0~L3)の制御点MV(CPMV)導出MVによって指し示される複数のサブブロックテンプレート(例えば、4×4サブブロック)を含み得る。
【0191】
アフィンモード(例えば、アフィンマージモード)で適用されるTMの探索プロセスは、他のCPMV(複数可)(例えば、(i)4パラメータモデルが使用される場合のCPMV1、または(ii)6パラメータモデルが使用される場合のCPMV1およびCPMV2)を一定に保ちながら、CPMV0から開始することができる。探索は、水平方向および垂直方向に向けて行うことができる。一例では、探索は、ゼロベクトルが水平探索および垂直探索から発見された最良の差分ベクトルでない場合のみ、対角方向(複数可)によって従われる。アフィンTMは、CPMV1について同じ探索プロセスを繰り返すことができる。アフィンTMは、6パラメータモデルが使用される場合、CPMV2について同じ探索プロセスを繰り返すことができる。精緻化されたCPMVに基づいて、ゼロベクトルが前の反復からの最良の差分ベクトルではなく、探索プロセスが3回未満反復した場合、探索プロセス全体が精緻化されたCPMV0から再開することができる。
【0192】
図19において説明される双予測TMは、アフィンAMVPモードなどのアフィンモードにおいて使用される双予測TMなど、サブブロックベースのTMに適応され得る。図21は、例えば、アフィンAMVPモードにおける、サブブロックベースの双予測TM(2100)の一例を示している。
【0193】
アフィンAMVPモードでは、図21を参照すると、現在ブロック(2110)は複数のサブブロック(2101)を含む。現在ブロック(2110)は、サブブロックベースの双予測モードデコードすることができる。TMは、MVRペアの第1のセットまたはMVRペアの第2のセットなど、現在ブロック(2110)に利用可能なMVRペアに適用することができる。図21を参照すると、第1の参照ブロック(2111)は、MVRペア内のMVRペアにおける第1のMVR(例えば、1/4-pel)に基づいて取得することができ、第2の参照ブロック(2113)は、MVRペアにおける第2のMVR(例えば、1/2-pel)に基づいて取得することができる。
【0194】
一例では、現在ブロック(2110)中の各サブブロック(2101)は、第1の参照ピクチャ中の第1の参照ブロック(2111)中の第1の参照サブブロック(2103)を指す第1のMVと、第2の参照ピクチャ中の第2の参照ブロック(2113)中の第2の参照サブブロック(2105)を指す第2のMVとを含むMVペアに関連付けられる。
【0195】
各サブブロック(2101)に関連付けられたMVペアは、図14で説明されたように、現在ブロック(2110)のアフィンパラメータとそれぞれのサブブロック(2101)の位置とに基づいて決定され得る。一例では、現在ブロック(2110)のアフィンパラメータは、現在ブロック(2110)のCPMV(例えば、CPMV0~CPMV1またはCPMV0~CPMV2)に基づいて決定される。サブブロック(2101)から対応する第1の参照サブブロック(2103)を指す第1のMVは、第1のMVR(例えば、1/4-pel)に関連付けられ、サブブロック(2101)から対応する第2の参照サブブロック(2105)を指す第2のMVは、第2のMVR(例えば、1/2-pel)に関連付けられる。
【0196】
現在ブロック(2110)の現在テンプレート(2121)は、複数のサブブロック(サブブロックテンプレートとも称される)を含み得る。現在テンプレート(2121)は、任意の適切な位置に任意の適切な数のサブブロックを含み得る。複数のサブブロックテンプレートの各々は、N×Nなど、任意の好適なサイズを有することができる。Nは、4などの正の整数であり得る。一例では、複数のサブブロックテンプレートは、上部サブブロックテンプレート(複数可)(例えば、A0~A3)および/または左サブブロックテンプレート(複数可)(例えば、L0~L3)を含む。例えば、現在テンプレート(2121)は、(i)上部サブブロックテンプレートを含む上部テンプレート、および/または(ii)左サブブロックテンプレート(複数可)を含む左テンプレートを含んでもよい。図21の例では、現在テンプレート(2121)は、上部サブブロックテンプレートA0~A3と左サブブロックテンプレートL0~L3とを含む。
【0197】
現在テンプレート(2121)中の各サブブロックテンプレート(例えば、A0~A3のうちの1つまたはL0~L3のうちの1つ)は、第1のMVと第2のMVとを含むMVペアに関連付けられ得る。サブブロックテンプレートに関連付けられたMVペアは、図14において説明したように、現在ブロック(2110)のアフィンパラメータとサブブロックテンプレートのそれぞれの位置とに基づいて決定され得、したがって、サブブロックテンプレートに関連付けられたMVペアは異なり得る。
【0198】
第1の参照ブロック(2111)に関連付けられた第1の参照テンプレート(2123)は、それぞれ、複数のサブブロックテンプレートおよび関連付けられたMVペア(例えば、関連付けられた第1のMV)に基づいて決定され得る。図21を参照すると、第1の参照テンプレート(2123)中の第1の参照サブブロックテンプレート(例えば、第1の上部参照サブブロックテンプレートA00~A03および/または第1の左参照サブブロックテンプレートL00~L03)は、それぞれ、複数のサブブロックテンプレート(例えば、A0~A3および/またはL0~L3)と関連するMVペアとに基づいて決定され得る。一例では、複数のサブブロックテンプレートに関連付けられた第1のMVが異なるとき、第1の参照テンプレート(2123)の形状は現在テンプレート(2121)とは異なる。
【0199】
同様に、第2の参照ブロック(2113)に関連付けられた第2の参照テンプレート(2125)は、それぞれ、複数のサブブロックテンプレートおよび関連付けられたMVペア(例えば、関連付けられた第2のMV)に基づいて決定され得る。図21を参照すると、第2の参照テンプレート(2125)中の第2の参照サブブロックテンプレート(例えば、第2の上部参照サブブロックテンプレートA10~A13および/または第2の左参照サブブロックテンプレートL10~L13)は、それぞれ、複数のサブブロックテンプレート(例えば、A0~A3および/またはL0~L3)と関連するMVペアとに基づいて決定され得る。一例では、複数のサブブロックテンプレートに関連付けられた第2のMVが異なるとき、第2の参照テンプレート(2125)の形状は現在テンプレート(2121)とは異なる。
【0200】
例えば、サブブロックテンプレート(例えば、A0)のMVペアは、第1の参照テンプレート(2123)中の第1の参照サブブロックテンプレート(例えば、A00)を指す(例えば、第1のMVRが1/4-pelである)第1のMVと、第2の参照テンプレート(2125)の第2の参照サブブロックテンプレート(例えば、A10)を指す(例えば、第2のMVRが1/2-pelである)第2のMVとを含む。
【0201】
図19に記載されるTMの種々の実施形態は、現在ブロック(2110)がアフィンAMVPモードなどのアフィンモードデコードされるときに、MVRペアに適用することができる。MVRペアにおける各MVRペアについて、現在テンプレート(2121)の一部およびそれぞれのMVRペアの双予測子に基づいてTMコストを決定することができる。双予測子は、MVRペアの第1のMVRに対応する第1の参照テンプレート(2123)の一部と、MVRペアの第2のMVRに対応する第2の参照テンプレート(2125)の一部とに基づき得る。一実施形態において、MVRペアにおける各MVRペアについて、第1の参照テンプレート(2123)および第2の参照テンプレート(2125)に基づいて双予測子が決定され、現在テンプレート(2121)および双予測子に基づいて、例えば式3~4を用いて、TMコストが決定される。一実施形態では、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けすることと、ランク付けされたMVRペアからMVRペアを選択することとを含む。現在ブロック(2110)は、選択されたMVRペアに基づいて再構成することができる。
【0202】
図19の実施形態と図21の実施形態との違いを以下に説明する。
【0203】
図19の例では、現在ブロック(1801)は、並進動きモードなどの非サブブロックベースのモードを用いてコーディングされる。したがって、MVRペアについて、第1の参照テンプレート(1851)は、単一のMV(例えば、MV(1841))に基づいて決定され、第1の参照テンプレート(1851)の形状は、現在テンプレート(1821)と同一である。同様に、第2の参照テンプレート(1951)は、単一のMV(例えば、MV(1941))に基づいて決定され、第2の参照テンプレート(1951)の形状は、現在テンプレート(1821)と同一である。
【0204】
図21の例では、現在ブロック(2110)は、アフィンモード(例えば、アフィンAMVPモード)デコードされる。したがって、第1のMVRおよび第2のMVRを含むMVRペアについて、第1の参照テンプレート(2123)は、第1のMVRを有する異なるMVに基づいて決定することができ、第1の参照テンプレート(2123)(例えば、A00~A03およびL00~L03を含む)の形状は、現在テンプレート(2121)(例えば、A0~A3およびL0~L3を含む)とは異なり得る。一例では、第2の参照テンプレート(2125)は、第2のMVRを有する異なるMVに基づいて決定され、第2の参照テンプレート(2125)の形状(例えば、A10~A13およびL10~L13を含む)は、現在テンプレート(2121)とは異なる。
【0205】
現在テンプレート(2121)が複数のサブブロックテンプレート(例えば、A0~A3およびL0~L3を含む)を含むため、式4を使用して計算されたTMコストは、サブブロックベースのTMコストに基づいて書き直すことができ、各サブブロックベースのTMコストは、対応するサブブロックベースの双予測子および対応するサブブロックテンプレートに基づく。
【0206】
第1のMVR(iは0である)としての1/4-pelおよび第2のMVR(jは1である)としての1/2-pelを含む表6の第2のMVRペアなどの各MVRペアについて、対応するサブブロックベースの双予測子(例えば、k番目のサブブロックベースの双予測子)TPb,k(i,j)は、式5を使用して、サブブロックテンプレート(例えば、A0)に関連付けられたk番目の第1の参照サブブロックテンプレートTP0k,i(例えば、A00)および第2の参照サブブロックテンプレートTP1k,j(例えば、A10)に基づいて決定され得る。k番目の第1の参照サブブロックテンプレートTP0k,i(例えば、A00)は、第1のMVR(例えば、iによって示される1/4-pel)に対応し、k番目の第2の参照サブブロックテンプレートTP1k,j(例えば、A10)は、第2のMVR(例えば、jによって示される1/2-pel)に対応する。
TPb,k(i,j)=((TP0k,i+TP1k,j+1)>>1) (式5)
【0207】
サブブロックベースのTMコスト(例えば、k番目のサブブロックベースのTMコストTMk(i,j))が、k番目のサブブロックベースの双予測子TPb,k(i,j)と現在テンプレート(2121)の対応するサブブロックテンプレート(例えば、A0)とに基づいて決定され得る。例えば、TMk(i,j)=SAD(TCk-TPb,k(i,j))であり、ここで、パラメータTCkは、現在テンプレート(2121)におけるk番目のサブブロックテンプレート(例えば、A0)を表す。
【0208】
MVRペアTMコスト(i,j)に対応するTMコストは、(i)第1の参照テンプレート(2123)の全体またはサブセット、および(ii)第2の参照テンプレート(2125)の全体またはサブセットに基づいて決定することができる。TMコスト(TMコスト(i,j))は、式6に示されるように、サブブロックテンプレートのサブブロックベースのTMコストに基づいて蓄積され得る。
TMcost(i,j)=ΣkSAD(TMk(i,j)) (式6)
【0209】
式6は、以下の式7に適応させることができる。一例では、MVRペアに対応するTMコスト(TMコスト(i,j))は、以下のように書き換えられる。
TMcost(i,j)=ΣlSAD(TCAp-((TP0Ap,i+TP1Ap,j+1)>>1))+ΣmSAD(TCLm-((TP0Lm,i+TP1Lm,j+1)>>1)) (式7)
【0210】
パラメータTCApは、現在テンプレート(2121)内のp番目のトップサブブロックテンプレート(例えば、pが0であるA0)を表し、パラメータTP0Ap,iは、(iによって示される)第1のMVRに対応するp番目の第1の上部参照サブブロックテンプレート(例えば、pが0であるA00)を表し、パラメータTP1Ap,jは、(jによって示される)第2のMVRに対応するp番目の第2の上部参照サブブロックテンプレート(例えば、pが0であるA10)を表す。式7の第1の総和は、式7のパラメータpが0から3であるA0-A3のような、現在テンプレート(2121)のトップサブブロックテンプレートに対して行われる。
【0211】
パラメータTCLmは、現在テンプレート(2121)内のm番目の左サブブロックテンプレート(例えば、mが0であるL0)を表し、パラメータTP0Lm,iは、(iによって示される)第1のMVRに対応するm番目の第1の左参照サブブロックテンプレート(例えば、mが0であるL00)を表し、パラメータTP1Lm,jは、(jによって示される)第2のMVRに対応するm番目の第2の左参照サブブロックテンプレート(例えば、lが0であるL10)を表す。式7の第2の総和は、式7のパラメータmが0から3であるL0~L3など、現在テンプレート(2121)における左サブブロックテンプレートに対して行われる。
【0212】
SSE、分散、部分SADなどの他の関数が、TMコスト(例えば、式6または式7中のTMコスト(i,j))を決定するために使用され得る。
【0213】
部分SADの例では、現在テンプレート(2121)の一部(例えば、A0~A3)、第1の参照テンプレート(2123)の対応する部分(例えば、A00~A03)、および第2の参照テンプレート(2125)の対応する部分(例えば、A10~A13)が、TMコストを決定するために使用される。
【0214】
部分SADの例では、現在テンプレート(2121)の一部または全体、第1の参照テンプレート(2123)の一部または全体、および第2の参照テンプレート(2125)の一部または全体が、TMコストを決定するために使用される前にダウンサンプリングされる。
【0215】
図21に示す例では、上部サブブロックテンプレートの第1の数(例えば、4)は、左サブブロックテンプレートの第2の数(例えば、4)に等しい。
【0216】
別の例では、上部サブブロックテンプレートの第1の数は、左サブブロックテンプレートの第2の数とは異なる。
【0217】
一実施形態では、現在ブロック(2110)の継承アフィンパラメータ(複数可)は、サブブロックベースのTMにおける第1の参照テンプレート(2123)および/または第2の参照テンプレート(2125)などの参照テンプレートに直接適用することができる。例えば、MVRペアにおける各MVRペアについて、第1の参照テンプレート(2123)における第1の参照サブブロックテンプレート(例えば、A00~A03およびL00~L03)の各々は、現在ブロック(2110)のアフィンパラメータ(例えば、継承アフィンパラメータ(複数可))に基づいて決定され、それぞれの第1の参照サブブロックテンプレート(例えば、A00~A03のうちの1つまたはL00~L03のうちの1つ)におけるサンプルは、同じ動き情報(例えば、同じMV)を有することができる。
【0218】
図22は、PROF法の一例を示している。一部の実施形態では、PROF法は、動き補償のより細かい粒度を有するようにサブブロックベースのアフィン動き補償を改善するために実装される。PROF法によれば、(図14に示されるように)サブブロックベースのアフィン動き補償が行われた後、予測サンプル(例えば、ルーマ予測サンプル)は、オプティカルフロー式によって導出された調整値のセットを加算することによって精緻化され得る。
【0219】
図22を参照すると、現在ブロック(2210)は、4個のサブブロック(2212、2214、2216、2218)に分割される。一例では、サブブロック(2212、2214、2216、および2218)の各々は、4×4ピクセルのサイズを有する。サブブロック(2212)のサブブロックMVSBは、アフィン予測に従って導出され、参照サブブロック(2232)を指し示すことができる。初期サブブロック予測サンプルは、参照サブブロック(2232)に従って決定され得る。初期サブブロック予測サンプルに適用されるべき精緻化値は、各予測サンプルが、調整ベクトルΔMVによって調整されたサブブロック2212のためのサブブロックMVSBに従って決定された精緻化MV(例えば、ピクセルMV)(2242)によって示される位置(例えば、サンプル(2212a)の位置(2232a))にあるかのように計算され得る。図22を参照すると、MVSBに基づく初期サブブロック予測サンプル(2252)は、ピクセルMV(2242)に基づく位置(2232a)における精緻化されたサンプルとなるように精緻化される。
【0220】
一部の実施形態では、PROF法は、サブブロックベースのアフィン動き補償を行って、初期サブブロック予測サンプルI(i1,i2)(2252)を生成することから開始し得、ここで、(i1,i2)は、現在サブブロック中の特定のサンプルに対応する。次に、
gx(i1,i2)=I(i1+1,i2)-I(i1-1,i2) (式8)
gy(i1,i2)=I(i1,i2+1)-I(i1,i2-1) (式9)
に従って、3タップフィルタ[-1,0,1]を使用して、初期サブブロック予測サンプルI(i1,i2)(2252)の空間勾配gx(i1,i2)およびgy(i1,i2)を計算することができる。
【0221】
サブブロック予測は、勾配計算のために各側で1ピクセルだけ拡張される。一部の実施形態では、メモリ帯域幅および複雑さを低減するために、拡張された境界上のピクセルは、参照ピクチャ中の最も近い整数ピクセル位置からコピーされ得る。したがって、パディング領域のための追加の補間が回避される。
【0222】
予測精緻化は、オプティカルフロー式によって計算することができる。
ΔI(i1,i2)=gx(i1,i2)*Δmvx(i1,i2)+gy(i1,i2)*Δmvy(i1,i2) (数10)
【0223】
Δmv(i1,i2)(例えば、ΔMV)は、サンプル位置(i1,i2)についてのピクセルMV(2242)と、ピクセル位置(i1,i2)が属するサブブロックについてのサブブロックMVSBとの間の差である。アフィンモデルパラメータおよびサブブロック中心に対するピクセル位置はサブブロックごとに変更されないため、Δmv(i1,i2)は、第1のサブブロック(例えば、(2212))について計算され、同じコーディングブロックまたはCU(例えば、(2210))中の他のサブブロック(例えば、(2214)、(2216)、および(2218))のために再利用され得る。一部の例では、xおよびyをサブブロック(2212)の中心に対するΔmv(i1,i2)の水平位置および垂直位置とすると、Δmv(i1,i2)は、以下の式によって導出され得る。
【数8】
ここで、Δmvx(x,y)はΔmv(i1,i2)のx成分であり、Δmvy(x,y)はΔmv(i1,i2)のy成分である。
【0224】
4パラメータアフィンモデルの場合、
【数9】
【0225】
6パラメータアフィンモデルの場合、
【数10】
【0226】
(v0x,v0y)、(v1x,v1y)、および(v2x,v2y)は、左上、右上、および左下の制御点動きベクトルであり、wおよびhは、コーディングブロックまたはCUの幅および高さである。
【0227】
予測精緻化は、初期サブブロック予測サンプルI(i1,i2)に追加され得る。PROF法による最終的な予測サンプルI’は、式14を用いて生成することができる。
I’(i1,i2)=I(i1,i2)+ΔI(i1,i2) (数14)
【0228】
一実施形態では、再び図21を参照すると、PROFは、例えば、第1の参照テンプレート(2123)における各第1の参照サブブロックテンプレート(例えば、A00~A03のうちの1つまたはL00~L03のうちの1つ)を判断するために、または第2の参照テンプレート(2125)における各第2の参照サブブロックテンプレート(例えば、A10~A13のうちの1つまたはL10~L13のうちの1つ)を判断するために、各サブブロックテンプレートに適用される。例えば、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレート(例えば、A00~A03のうちの1つまたはL00~L03のうちの1つ)は、同じ第1の参照サブブロックテンプレート中の2つのサンプルが異なる動き情報(例えば、2つの異なるMV)を有することができるPROFモードを使用して決定される。
【0229】
一実施形態では、MVRペアにおけるL0に関連する第1のMVRおよびL1に関連する第2のMVRは、表6に記載されているように、異なり得る。
【0230】
一実施形態では、サブブロックベースのTMがMVRペア(例えば、表5のMVRペアの第1のセットまたは表6のMVRペアの第2のセット)に対して行われるかどうかを示すために、SPS、PPS、PH、スライスヘッダなどのビデオビットストリーム中でフラグがシグナリングされる。
【0231】
図23は、本開示の一実施形態によるエンコードプロセス(2300)を概説するフローチャートを示している。種々の実施形態において、プロセス(2300)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(例えば、(403)、(603)、(703))の機能を行う処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(2300)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2300)を行う。プロセスは(S2301)で開始し、(S2310)へ進む。
【0232】
(S2310)において、各MVRペアが(i)第1の参照ピクチャに対応する第1の複数のMVRにおける第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRにおける第2のMVRとを含むMVRペアの各々に対応するTMコストを決定することによって、動きベクトル解像度(MVR)ペアに対するテンプレートマッチング(TM)(例えば、TMI)が現在ブロックに対して行われ得る。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子の一部または全部に少なくとも基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートの一部または全部と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートの一部または全部とに基づき得る。TMは、決定された対応するTMコストに基づいてMVRペアを選択することを含み得る。例えば、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けまたは並べ替え、ランク付けまたは並べ替えられたMVRペアからMVRペアを選択することを含む。
【0233】
一実施形態では、現在ブロックの現在テンプレートの全ては、現在テンプレート全体を含む。各MVRペアについて、第1の参照テンプレートの全ては第1の参照テンプレート全体を含み、第2の参照テンプレートの全ては第2の参照テンプレート全体を含む。
【0234】
一例では、各MVRペアについて、第1の参照テンプレートは、MVRペアにおける第1のMVRを有する第1の動きベクトル(MV)に基づいて決定され、第2の参照テンプレートは、MVRペアにおける第2のMVRを有する第2のMVに基づいて決定される。
【0235】
一例では、各MVRペアについて、それぞれのMVRペアに対応する双予測子は、それぞれのMVRペアにおける第1のMVRに対応する第1の参照テンプレートと、それぞれのMVRペアにおける第2のMVRに対応する第2の参照テンプレートとの加重平均である。
【0236】
一例では、各MVRペアについて、各MVRペアにおける第1のMVRおよびそれぞれのMVRペアにおける第2のMVRは同一である。
【0237】
一例では、MVRペアの一方の第1のMVRは、MVRペアの一方の第2のMVRとは異なる。
【0238】
(S2320)において、選択されたMVRペアに基づいて双予測を用いて現在ブロックをエンコードすることができる。現在ブロックが双予測で予測されたことを示す予測情報をエンコードすることができる。
【0239】
一例において、予測情報は、テンプレートマッチング(TM)(例えば、TMI)がMVRペアに対して行われることを示すフラグを含む。
【0240】
(S2330)において、エンコードされた現在ブロックおよび/または予測情報は、ビデオビットストリームに含まれることができる。
【0241】
次に、プロセス(2300)は(S2399)に進み、終了する。
【0242】
プロセス(2300)は、種々のシナリオに適切に適応させることができ、プロセス(2300)のステップは、それに応じて調整することができる。プロセス(2300)におけるステップのうちの1つ以上は、適応、省略、反復、および/または組み合わせることができる。プロセス(2300)を実装するために、任意の適切な順序を使用することができる。追加のステップ(複数可)を追加することができる。
【0243】
一実施形態では、予測情報は、現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いて予測され、現在テンプレートが現在のサブブロックテンプレートを含むことを示す。MVRペアにおける各MVRペアについて、現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)に基づいて、第1の参照テンプレートにおける第1の参照サブブロックテンプレートをそれぞれ決定することができる。第1のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。第2の参照テンプレート内の第2の参照サブブロックテンプレートは、それぞれ、現在のサブブロックテンプレートおよび対応する第2のMVに基づいて決定され得る。第2のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。双予測子は、第1の参照サブブロックテンプレートと第2の参照サブブロックテンプレートとに基づき得る。
【0244】
一例では、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレートの各々におけるサンプルは同じ動き情報を有する。
【0245】
一例では、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレートのうちの1つにおける2つのサンプルが異なる動き情報を有するオプティカルフローを用いた予測精緻化(PROF)モードに基づいて第1の参照サブブロックテンプレートを決定することができる。
【0246】
図24は、本開示の一実施形態によるデコードプロセス(2400)を概説するフローチャートを示している。種々の実施形態において、プロセス(2400)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路、ビデオデコーダ(510)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(2400)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2400)を行う。プロセスは(S2401)で開始し、(S2410)へ進む。
【0247】
(S2410)デコードされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードすることができる。予測情報は、現在ブロックが双予測で予測されることを示すことができる。
【0248】
一例において、予測情報は、テンプレートマッチング(TM)(例えば、TMI)がMVRペアに対して行われることを示すフラグを含む。
【0249】
(S2420)において、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してTMを行うことができ、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRにおける第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRにおける第2のMVRとを含み得る。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子の一部または全部に少なくとも基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートの一部または全部と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートの一部または全部とに基づき得る。TMは、決定された対応するTMコストに基づいてMVRペアを選択することを含み得る。例えば、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けまたは並べ替え、ランク付けまたは並べ替えられたMVRペアからMVRペアを選択することを含む。
【0250】
一実施形態では、現在ブロックの現在テンプレートの全ては、現在テンプレート全体を含む。各MVRペアについて、第1の参照テンプレートの全ては第1の参照テンプレート全体を含み、第2の参照テンプレートの全ては第2の参照テンプレート全体を含む。
【0251】
一例では、各MVRペアについて、第1の参照テンプレートは、MVRペアにおける第1のMVRを有する第1の動きベクトル(MV)に基づいて決定され、第2の参照テンプレートは、MVRペアにおける第2のMVRを有する第2のMVに基づいて決定される。
【0252】
一例では、各MVRペアについて、それぞれのMVRペアに対応する双予測子は、それぞれのMVRペアにおける第1のMVRに対応する第1の参照テンプレートと、それぞれのMVRペアにおける第2のMVRに対応する第2の参照テンプレートとの加重平均である。
【0253】
一例では、各MVRペアについて、各MVRペアにおける第1のMVRおよびそれぞれのMVRペアにおける第2のMVRは同一である。
【0254】
一例では、MVRペアの一方の第1のMVRは、MVRペアの一方の第2のMVRとは異なる。
【0255】
(S2430)において、選択されたMVRペアに基づいて現在ブロックを再構成することができる。プロセス(2400)は、(S2499)に進み、終了する。
【0256】
プロセス(2400)は、種々のシナリオに適切に適応させることができ、プロセス(2400)のステップは、それに応じて調整することができる。プロセス(2400)におけるステップのうちの1つ以上は、適応、省略、反復、および/または組み合わせることができる。プロセス(2400)を実装するために、任意の適切な順序を使用することができる。追加のステップ(複数可)を追加することができる。
【0257】
一実施形態では、予測情報は、現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いて予測され、現在テンプレートが現在のサブブロックテンプレートを含むことを示す。MVRペアにおける各MVRペアについて、現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)に基づいて、第1の参照テンプレートにおける第1の参照サブブロックテンプレートをそれぞれ決定することができる。第1のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。第2の参照テンプレート内の第2の参照サブブロックテンプレートは、それぞれ、現在のサブブロックテンプレートおよび対応する第2のMVに基づいて決定され得る。第2のMVは、それぞれの現在のサブブロックテンプレートの位置および現在ブロックのアフィンパラメータに基づき得る。双予測子は、第1の参照サブブロックテンプレートと第2の参照サブブロックテンプレートとに基づき得る。
【0258】
一例では、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレートの各々におけるサンプルは同じ動き情報を有する。
【0259】
一例では、MVRペアにおける各MVRペアについて、第1の参照サブブロックテンプレートのうちの1つにおける2つのサンプルが異なる動き情報を有するオプティカルフローを用いた予測精緻化(PROF)モードに基づいて第1の参照サブブロックテンプレートを決定することができる。
【0260】
図25は、本開示の一実施形態によるデコードプロセス(2500)を概説するフロー図を示している。種々の実施形態において、プロセス(2500)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路、ビデオデコーダ(510)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(2500)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2500)を行う。プロセスは(S2501)で開始し、(S2510)へ進む。
【0261】
(S2510)において、コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードすることができる。予測情報は、現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示すことができる。
【0262】
(S2520)において、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してTMを行うことができ、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRにおける第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRにおける第2のMVRとを含み得る。各TMコストは、現在ブロックの現在テンプレートの一部または全部(すなわち、現在テンプレート全体)と、それぞれのMVRペアの双予測子とに少なくとも基づいて決定することができる。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートの一部または全部(すなわち、第1の参照テンプレート全体)と、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートの一部または全部(すなわち、第2の参照テンプレート全体)とに基づき得る。TMは、決定された対応するTMコストに基づいてMVRペアを選択することを含み得る。例えば、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けまたは並べ替え、ランク付けまたは並べ替えられたMVRペアからMVRペアを選択することを含む。
【0263】
(S2530)において、選択されたMVRペアに基づいて現在ブロックを再構成することができる。プロセス(2500)は、(S2599)に進み、終了する。
【0264】
プロセス(2500)は、種々のシナリオに適切に適応させることができ、プロセス(2500)のステップは、それに応じて調整することができる。プロセス(2500)におけるステップのうちの1つ以上は、適応、省略、反復、および/または組み合わせることができる。プロセス(2500)を実装するために、任意の適切な順序を使用することができる。追加のステップ(複数可)を追加することができる。
【0265】
図26は、本開示の一実施形態によるデコードプロセス(2600)を概説するフロー図を示している。種々の実施形態において、プロセス(2600)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路、ビデオデコーダ(510)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(2600)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2600)を行う。プロセスは(S2601)で開始し、(S2610)へ進む。
【0266】
(S2610)において、コーディングされたビデオビットストリームから現在ピクチャ内の現在ブロックの予測情報をデコードすることができる。予測情報は、現在ブロックが適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示すことができる。
【0267】
(S2620)において、動きベクトル解像度(MVR)ペアの各々に対応するTMコストを決定することによって、MVRペアに対してTMを行うことができ、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRにおける第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRにおける第2のMVRとを含み得る。各TMコストは、現在ブロックの現在テンプレートおよびそれぞれのMVRペアの双予測子に少なくとも基づいて決定され得る。双予測子は、それぞれのMVRペアの第1のMVRに対応する第1の参照ピクチャ内の第1の参照テンプレートと、それぞれのMVRペアの第2のMVRに対応する第2の参照ピクチャ内の第2の参照テンプレートとに基づき得る。TMは、決定された対応するTMコストに基づいてMVRペアを選択することを含み得る。例えば、TMは、決定された対応するTMコストに基づいてMVRペアをランク付けまたは並べ替え、ランク付けまたは並べ替えられたMVRペアからMVRペアを選択することを含む。
【0268】
(S2630)において、選択されたMVRペアに基づいて現在ブロックを再構成することができる。プロセス(2600)は、(S2699)に進み、終了する。
【0269】
プロセス(2600)は、種々のシナリオに適切に適応させることができ、プロセス(2600)のステップは、それに応じて調整することができる。プロセス(2600)におけるステップのうちの1つ以上は、適応、省略、反復、および/または組み合わせることができる。プロセス(2600)を実装するために、任意の適切な順序を使用することができる。追加のステップ(複数可)を追加することができる。
【0270】
本開示における実施形態は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダの各々は、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装され得る。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0271】
上述した技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶され得る。例えば、図27は、開示される主題のある実施形態を実装するために好適なコンピュータシステム(2700)を示している。
【0272】
コンピュータソフトウェアは、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって、直接、または解釈、マイクロコード実行などを介して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様の機構を受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0273】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、種々のタイプのコンピュータまたはその構成要素上で実行され得る。
【0274】
コンピュータシステム(2700)について図27に示される構成要素は、本質的に例示的であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能性の範囲に関していかなる限定を示唆することも意図されていない。また、構成要素の構成は、コンピュータシステム(2700)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性または要件も有するものと解釈されるべきではない。
【0275】
コンピュータシステム(2700)は、特定のヒューマンインターフェース入力デバイス含んでもよい。かかるヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブ移動など)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通して、1人以上の人間のユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスはまた、オーディオ(スピーチ、音楽、周囲音など)、画像(スキャンされた画像、静止画像カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関係しない一部の媒体をキャプチャするために使用され得る。
【0276】
入力ヒューマンインターフェースデバイスは、キーボード(2701)、マウス(2702)、トラックパッド(2703)、タッチスクリーン(2710)、データグローブ(図示せず)、ジョイスティック(2705)、マイクロフォン(2706)、スキャナ(2707)、カメラ(2708)のうちの1つ以上(各々1つのみが示されている)を含み得る。
【0277】
コンピュータシステム(2700)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。かかるヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味を通して、1人以上の人間ユーザの感覚を刺激していることがある。かかるヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2710)、データグローブ(図示せず)、またはジョイスティック(2705)による触覚フィードバックであるが、入力デバイスとしての役割を果たさない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2709)、ヘッドホン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2710)など、各々タッチスクリーン入力能力を伴う、または伴わない、各々触覚フィードバック能力を伴う、または伴わない-そのうちの一部は、立体出力などの手段を通して2次元視覚出力または3次元を上回る出力を出力することが可能であり得る)、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイ、および煙タンク(図示せず))、ならびにプリンタ(図示せず)を含んでもよい。
【0278】
コンピュータシステム(2700)はまた、CD/DVDなどの媒体(2721)を有するCD/DVD ROM/RW(2720)を含む光媒体、サムドライブ(2722)、取外し可能ハードドライブまたはソリッドステートドライブ(2723)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)など、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体を含み得る。
【0279】
当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことも理解すべきである。
【0280】
コンピュータシステム(2700)はまた、1つ以上の通信ネットワーク(2755)へのインターフェース(2754)を含み得る。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両および産業などが含まれる。特定のネットワークは、概して、特定の汎用データポートまたは周辺バス(2749)(例えば、コンピュータシステム(2700)のUSBポートなど)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、概して、以下で説明するようにシステムバスに取り付けることによってコンピュータシステム(2700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2700)は他のエンティティと通信することができる。かかる通信は、単方向受信専用(例えば、放送TV)、単方向送信専用(例えば、あるCANbusデバイスへのCANbus)、または例えば、ローカルもしくは広域デジタルネットワークを使用する他のコンピュータシステムへの双方向であることができる。あるプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェースの各々上で使用され得る。
【0281】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2700)のコア(2740)に取り付けることができる。
【0282】
コア(2740)は、1つ以上の中央処理ユニット(CPU)(2741)、グラフィックス処理ユニット(GPU)(2742)、フィールドプログラマブルゲートエリア(FPGA)(2743)の形態の専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2744)、グラフィックスアダプタ(2750)などを含み得る。これらのデバイスは、読み出し専用メモリ(ROM)(2745)、ランダムアクセスメモリ(2746)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(2747)とともに、システムバス(2748)を介して接続することができる。一部のコンピュータシステムでは、システムバス(2748)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(2748)に直接、または周辺バス(2749)を介して接続することができる。一例では、画面(2710)は、グラフィックスアダプタ(2750)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0283】
CPU(2741)、GPU(2742)、FPGA(2743)、およびアクセラレータ(2744)は、組み合わせて、前述のコンピュータコードを構成することができる、ある命令を実行することができる。そのコンピュータコードは、ROM(2745)またはRAM(2746)に記憶することができる。過渡的なデータはRAM(2746)に記憶することができ、一方、永続的なデータは例えば内部大容量ストレージ(2747)に記憶することができる。1つ以上のCPU(2741)、GPU(2742)、大容量ストレージ(2747)、ROM(2745)、RAM(2746)などと密接に関連付けることができるキャッシュメモリを使用することによって、任意のメモリデバイスへの高速な記憶および取り出しを可能にすることができる。
【0284】
コンピュータ可読媒体は、種々のコンピュータ実装動作を行うためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の当業者に周知であり、利用可能な種類のものであってもよい。
【0285】
限定ではなく、例として、アーキテクチャ(2700)、具体的にはコア(2740)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体内で実施されるソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。かかるコンピュータ可読媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(2747)またはROM(2745)などの非一時的な性質のものであるコア(2740)の特定のストレージに関連付けられた媒体であり得る。本開示の種々の実施形態を実装するソフトウェアは、かかるデバイスに記憶され、コア(2740)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つ以上のメモリデバイスまたはチップを含み得る。ソフトウェアは、コア(2740)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(2746)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってかかるデータ構造を修正することを含む、本明細書に記載の特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するように、ソフトウェアの代わりに、またはそれとともに動作することができる、回路(例えば、アクセラレータ(2744))内にハードワイヤードまたは別様に具現化される論理の結果として、機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、論理を包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合、実行のためのソフトウェアを記憶する回路(集積回路(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 Groups of Pictures
TU 変換ユニット(Transform Unit)
PU 予測ユニット
CTU コーディングツリーユニット(Coding Tree Unit)
CTB コーディングツリーブロック(Coding Tree Block)
PB 予測ブロック(Prediction Block)
HRD 仮想参照デコーダ(Hypothetical Reference Decoder)
SNR 信号対雑音比(Signal Noise Ratio)
CPU 中央処理装置(Central Processing Unit)
GPU グラフィックス処理ユニット(Graphics Processing Unit)
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 communication)
LTE ロングタームエボリューション(Long-Term Evolution)
CANBus コントローラエリアネットワークバス(Controller Area Network Bus)
USB ユニバーサルシリアルバス(Universal Serial Bus)
PCI 周辺コンポーネント相互接続(Peripheral Component Interconnect)
FPGA フィールドプログラマブルゲート領域(Field Programmable Gate Area)
SSD ソリッドステートドライブ(solid-state drive)
IC 集積回路(Integrated Circuit)
CU コーディングユニット(Coding Unit)
R-D レート歪み(Rate-Distortion)
【0286】
本開示は、複数の例示的な実施形態を説明したが、本開示の範囲内に入る変更、置換、および種々の代替均等物が存在する。したがって、当業者は、本明細書に明示的に図示または説明されていないが、本開示の原理を具現化し、したがって、その精神および範囲内である、多数のシステムおよび方法を考案することができるであろうことを理解されるであろう。
【符号の説明】
【0287】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 現在ブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ストリーム
403 ビデオエンコーダ
404 ビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 コピー
408 クライアントサブシステム
409 ビデオデータ
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
1401 動きベクトル
1402 ルーマサブブロック
1410 現在ブロック
1510 現在CU
1520 CU
1700 テンプレートマッチング
1701 現在CU
1703 参照ブロック
1710 現在ピクチャ
1711 参照ピクチャ
1715 探索範囲
1721 現在テンプレート
1722 上部テンプレート
1723 左テンプレート
1725 テンプレート
1726 上部テンプレート
1727 左テンプレート
1800 テンプレートマッチング
1801 現在ブロック
1810 現在ピクチャ
1811 参照ピクチャ
1821 現在テンプレート
1831 参照ブロック
1832 参照ブロック
1833 参照ブロック
1834 参照ブロック
1841 MV
1842 MV
1843 MV
1844 MV
1851 参照テンプレート
1852 参照テンプレート
1853 参照テンプレート
1854 参照テンプレート
1911 第2の参照ピクチャ
1941 第2のMV
1942 第2のMV
1943 第2のMV
1944 第2のMV
1951 第2の参照テンプレート
1952 第2の参照テンプレート
1953 第2の参照テンプレート
1954 第2の参照テンプレート
2100 双予測TM
2101 サブブロック
2103 第1の参照サブブロック
2105 第2の参照サブブロック
2110 現在ブロック
2111 第1の参照ブロック
2113 第2の参照ブロック
2121 現在テンプレート
2123 第1の参照テンプレート
2125 第2の参照テンプレート
2210 現在ブロック
2212 サブブロック
2214 サブブロック
2216 サブブロック
2218 サブブロック
2232 参照サブブロック
2232a 位置
2242 ピクセルMV
2252 初期サブブロック予測サンプルI(i1,i2)
2300 プロセス
2400 デコードプロセス
2500 デコードプロセス
2600 プロセス
2700 コンピュータシステム
2701 キーボード
2702 マウス
2703 トラックパッド
2705 ジョイスティック
2706 マイクロフォン
2707 スキャナ
2708 カメラ
2709 スピーカ
2710 タッチスクリーン
2720 CD/DVD(ROM/RW)
2721 媒体
2722 サムドライブ
2723 取外し可能ハードドライブまたはソリッドステートドライブ
2749 周辺バス
2754 インターフェース
2755 通信ネットワーク
2741 CPU
2742 GPU
2743 FPGA
2744 ハードウェアアクセラレータ
2745 ROM
2746 ランダムアクセスメモリ
2747 内部大容量ストレージ
2748 システムバス
2749 周辺バス
2750 グラフィックスアダプタ
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
【手続補正書】
【提出日】2023-08-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデコーダが実行するビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、前記現在ブロックがアフィン適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示す、ステップと、
動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を、
前記MVRペアの各々に対応するTMコストを決定するステップであって、各MVRペアが、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、各TMコストが、前記現在ブロックの現在テンプレートの一部または全部と、前記各MVRペアの双予測子とに少なくとも基づいて決定され、前記双予測子が、前記各MVRペアの前記第1のMVRに対応する前記第1の参照ピクチャ中の第1の参照テンプレートの一部または全部と、前記各MVRペアの前記第2のMVRに対応する前記第2の参照ピクチャ中の第2の参照テンプレートの一部または全部とに基づく、ステップと、
前記決定された対応するTMコストに基づいてMVRペアを選択するステップと、によって行うステップと、
前記選択されたMVRペアに基づいて前記現在ブロックを再構成するステップと、を含む、方法。
【請求項2】
前記TMを行う前記ステップは、前記決定された対応するTMコストに基づいて前記MVRペアを並べ替えるステップを含み、
選択する前記ステップは、前記並べ替えられたMVRペアから前記MVRペアを選択するステップを含む、請求項1に記載の方法。
【請求項3】
前記現在ブロックの前記現在テンプレートの全ては、前記TMコストを決定するために使用され、
各MVRペアについて、
前記第1の参照テンプレートの全ては、前記双予測子を決定するために使用され、
前記第2の参照テンプレートの全ては、前記双予測子を決定するために使用される、請求項2に記載の方法。
【請求項4】
各MVRペアについて、各MVRペアにおける前記第1のMVRと、前記それぞれのMVRペアにおける前記第2のMVRとが同一である、請求項1に記載の方法。
【請求項5】
前記MVRペアの一方の前記第1のMVRは、前記MVRペアの前記一方の前記第2のMVRとは異なる、請求項1に記載の方法。
【請求項6】
前記予測情報は、前記MVRペアに対して前記TMが行われることを示すフラグを含む、請求項1に記載の方法。
【請求項7】
前記現在テンプレートは、現在のサブブロックテンプレートを含み、
前記MVRペアにおける各MVRペアについて、前記TMコストを決定する前記ステップは、
前記現在のサブブロックテンプレートおよび対応する第1の動きベクトル(MV)にそれぞれ基づいて、前記第1の参照テンプレートにおける第1の参照サブブロックテンプレートを決定するステップであって、前記第1のMVが、前記それぞれの現在のサブブロックテンプレートの位置および前記現在ブロックのアフィンパラメータに基づく、ステップと、
前記現在のサブブロックテンプレートおよび対応する第2のMVにそれぞれ基づいて、前記第2の参照テンプレートにおける第2の参照サブブロックテンプレートを決定するステップであって、前記第2のMVが、前記それぞれの現在のサブブロックテンプレートの前記位置および前記現在ブロックの前記アフィンパラメータに基づき、前記双予測子が、前記第1の参照サブブロックテンプレートおよび前記第2の参照サブブロックテンプレートに基づく、ステップと、を含む、請求項3に記載の方法。
【請求項8】
前記MVRペアにおける各MVRペアについて、前記第1の参照サブブロックテンプレートの各々におけるサンプルは、同じ動き情報を有する、請求項7に記載の方法。
【請求項9】
前記第1の参照サブブロックテンプレートを決定する前記ステップは、
前記MVRペアにおける各MVRペアについて、オプティカルフローを用いた予測精緻化(PROF)モードに基づいて前記第1の参照サブブロックテンプレートを決定するステップを含み、前記第1の参照サブブロックテンプレートのうちの1つにおける2つのサンプルは、異なる動き情報を有する、請求項7に記載の方法。
【請求項10】
ビデオデコーダが実行するビデオデコードのための方法であって、
コーディングされたビデオビットストリームから現在ピクチャ中の現在ブロックの予測情報をデコードするステップであって、前記予測情報は、前記現在ブロックが適応動きベクトル予測(AMVP)モードを用いた双予測を使用して予測されることを示す、ステップと、
動きベクトル解像度(MVR)ペアに対してテンプレートマッチング(TM)を、
前記MVRペアの各々に対応するTMコストを決定するステップであって、各MVRペアは、(i)第1の参照ピクチャに対応する第1の複数のMVRのうちの第1のMVRと、(ii)第2の参照ピクチャに対応する第2の複数のMVRのうちの第2のMVRとを含み、各TMコストは、前記現在ブロックの現在テンプレートと、前記各MVRペアの双予測子とに少なくとも基づいて決定され、前記双予測子が、前記各MVRペアの前記第1のMVRに対応する前記第1の参照ピクチャ中の第1の参照テンプレートと、前記各MVRペアの前記第2のMVRに対応する前記第2の参照ピクチャ中の第2の参照テンプレートとに基づく、ステップと、
前記決定された対応するTMコストに基づいてMVRペアを選択するステップと、によって行うステップと、
前記選択されたMVRペアに基づいて前記現在ブロックを再構成するステップと、を含む、方法。
【請求項11】
前記TMを行う前記ステップは、前記決定された対応するTMコストに基づいて前記MVRペアを並べ替えるステップを含み、
選択する前記ステップは、前記並べ替えられたMVRペアから前記MVRペアを選択するステップを含む、請求項10に記載の方法。
【請求項12】
前記TMコストを決定する前記ステップは、
各MVRペアについて、
前記MVRペアにおける前記第1のMVRを有する第1の動きベクトル(MV)に基づいて前記第1の参照テンプレートを決定するステップと、
前記MVRペアにおける前記第2のMVRを有する第2のMVに基づいて前記第2の参照テンプレートを決定するステップと、を含む、請求項11に記載の方法。
【請求項13】
各MVRペアについて、前記各MVRペアに対応する前記双予測子は、前記各MVRペアにおける前記第1のMVRに対応する前記第1の参照テンプレートと、前記各MVRペアにおける前記第2のMVRに対応する前記第2の参照テンプレートとの加重平均である、請求項12に記載の方法。
【請求項14】
各MVRペアについて、各MVRペアにおける前記第1のMVRおよび前記それぞれのMVRペアにおける前記第2のMVRが同一である、請求項10に記載の方法。
【請求項15】
前記MVRペアの一方の前記第1のMVRは、前記MVRペアの前記一方の前記第2のMVRとは異なる、請求項10に記載の方法。
【請求項16】
前記予測情報は、前記MVRペアに対して前記TMが行われることを示すフラグを含む、請求項10に記載の方法。
【請求項17】
請求項1~9のいずれか一項に記載の方法を行うように構成されたビデオデコードのための装置
【請求項18】
請求項10~16のいずれか一項に記載の方法を行うように構成されたビデオデコードのための装置。
【請求項19】
コンピュータに、請求項1~9のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【請求項20】
コンピュータに、請求項10~16のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】