(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】制約付きテンプレートマッチング
(51)【国際特許分類】
H04N 19/105 20140101AFI20241106BHJP
H04N 19/136 20140101ALI20241106BHJP
H04N 19/176 20140101ALI20241106BHJP
【FI】
H04N19/105
H04N19/136
H04N19/176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560732
(86)(22)【出願日】2022-09-21
(85)【翻訳文提出日】2023-09-29
(86)【国際出願番号】 US2022076798
(87)【国際公開番号】W WO2023091809
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】リェン-フェイ・チェン
(72)【発明者】
【氏名】グイチュン・リ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA30
5C159TB08
5C159TC02
5C159TC24
5C159TC42
(57)【要約】
本開示の態様は、ビデオ復号のための方法および装置を提供する。装置は、処理回路を含む。処理回路は、現在のブロックの第1のテンプレート内の少なくとも1つのサンプルが、現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定する。第1のテンプレートは、現在のブロックの上部隣接ブロックおよび左部隣接ブロックのうちの1つまたは複数のサンプルを含む。第1のテンプレート内の少なくとも1つのサンプルが、イントラコーディングされたブロックに含まれ、テンプレートマッチング(TM)モードが、現在のブロックに適用される場合、少なくとも1つのサンプルは、現在のブロックのための第2のテンプレートを生成するために第1のテンプレートから除外される。処理回路は、現在のブロックのための第2のテンプレートに基づいて現在のブロックの動きベクトル(MV)を決定する。
【特許請求の範囲】
【請求項1】
ビデオビットストリームから現在のピクチャ内の現在のブロックの予測情報を復号するステップであって、前記予測情報が、前記現在のブロックのためのテンプレートマッチング(TM)モードを示す、ステップと、
前記現在のブロックの第1のテンプレート内の少なくとも1つのサンプルが前記現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定するステップであって、前記現在のブロックの前記第1のテンプレートが、(1)前記現在のブロックの上部隣接ブロック、および(2)前記現在のブロックの左部隣接ブロック、のうちの1つまたは複数のサンプルを含む、ステップと、
(i)前記第1のテンプレート内の前記少なくとも1つのサンプルが前記イントラコーディングされたブロックに含まれるという決定、および(ii)前記TMモードが前記現在のブロックに適用されていること、に応答して、前記現在のブロックのための第2のテンプレートを生成するために、前記第1のテンプレートから前記少なくとも1つのサンプルを除外するステップと、
前記現在のブロックのための前記第2のテンプレートに基づいて前記現在のブロックの動きベクトル(MV)を決定するステップと、
前記決定されたMVに基づいて前記現在のブロックを再構成するステップと
を含む、ビデオデコーダにおけるビデオ復号のための方法。
【請求項2】
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記MVを決定する前記ステップが、前記TMモードを適用せずに前記現在のブロックの初期MVに基づいて前記MVを決定するステップを含む、
請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記第1のテンプレートが、前記上部隣接ブロックのサンプルを含む初期上部テンプレートと、前記左部隣接ブロックのサンプルを含む初期左部テンプレートとを含み、
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記イントラコーディングされたブロックを含まない前記現在のブロックの前記左部隣接ブロックに応答して、前記MVを決定する前記ステップが、初期MVと、前記初期左部テンプレートを含む前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するステップを含み、
前記イントラコーディングされたブロックを含まない前記現在のブロックの前記上部隣接ブロックに応答して、前記MVを決定する前記ステップが、前記初期MVと、前記初期上部テンプレートを含む前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するステップを含む、
請求項1に記載の方法。
【請求項4】
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記MVを決定する前記ステップが、初期MVと、前記現在のブロックの前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するステップを含む、
請求項1に記載の方法。
【請求項5】
前記方法が、前記第2のテンプレート内の1つまたは複数のサンプルに基づく補間によって少なくとも1つの補間されたサンプルを生成するステップであって、前記少なくとも1つの補間されたサンプルが、前記イントラコーディングされたブロックに含まれる前記第1のテンプレート内の前記少なくとも1つのサンプルに対応する、ステップを含み、
前記現在のブロックの前記第2のテンプレートが、前記少なくとも1つの補間されたサンプルを更に含む、
請求項4に記載の方法。
【請求項6】
前記現在のブロックの前記第2のテンプレートに対応する参照テンプレート内の参照サンプルが、参照ピクチャ内のサブピクセル位置に配置され、
前記方法が、前記参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して、前記参照ピクチャ内の補間された参照テンプレートを生成するステップを更に含み、
前記MVを決定する前記ステップが、前記初期MVと、前記現在のブロックの前記第2のテンプレートと、前記補間された参照テンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するステップを含む、
請求項4に記載の方法。
【請求項7】
前記参照ピクチャ内の前記参照テンプレートが、前記イントラコーディングされたブロックに含まれる前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルに対応する前記参照ピクチャ内の少なくとも1つの参照サンプルを省略し、
前記方法が、前記参照ピクチャ内の最も近い参照サンプルをコピーすることによって、前記参照ピクチャ内の前記省略された少なくとも1つの参照サンプルのうちの1つに対応するパディングされたサンプルを生成するステップを含み、
前記補間された参照テンプレートを生成する前記ステップが、前記パディングされたサンプルに基づく前記補間によって前記参照ピクチャ内の前記補間された参照テンプレートを生成するステップを含む、
請求項6に記載の方法。
【請求項8】
前記参照ピクチャ内の前記参照テンプレートが、前記イントラコーディングされたブロックに含まれる前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルに対応する前記参照ピクチャ内の少なくとも1つの参照サンプルを省略し、
前記補間された参照テンプレートを生成する前記ステップが、前記参照ピクチャ内の前記省略された少なくとも1つの参照サンプルに基づく前記補間によって前記参照ピクチャ内の前記補間された参照テンプレートを生成するステップを含む、
請求項6に記載の方法。
【請求項9】
前記現在のブロックの前記第1のテンプレートに対応する初期参照テンプレート内の参照サンプルが、参照ピクチャ内のサブピクセル位置に配置され、
前記方法が、
前記初期参照テンプレートにおける補間を使用して前記参照ピクチャ内の中間参照テンプレートを生成するステップと、
前記中間参照テンプレートおよびマスクに基づいて、前記現在のブロックの前記第2のテンプレートに対応する参照テンプレートを生成するステップであって、前記マスクの形状が、前記現在のブロックの前記第2のテンプレートに基づいて決定される、ステップと
を更に含む、請求項4に記載の方法。
【請求項10】
前記イントラコーディングされたブロックに含まれる前記第1のテンプレート内の前記少なくとも1つのサンプルが、(i)前記左部隣接ブロックのサンプルの1つまたは複数の左部サンプル、または(ii)前記上部隣接ブロックのサンプルの1つまたは複数の上部サンプルを含み、
前記1つまたは複数の左部サンプルを含む前記第1のテンプレート内の前記少なくとも1つのサンプルに応答して、前記第2のテンプレートが、前記第2のテンプレートに含まれる前記左部隣接ブロックの前記サンプルに隣接する1つまたは複数の拡張左部サンプルを更に含み、前記1つまたは複数の拡張左部サンプルが、前記現在のピクチャ内のイントラコーディングされたブロックに含まれず、
前記1つまたは複数の上部サンプルを含む前記第1のテンプレート内の前記少なくとも1つのサンプルに応答して、前記第2のテンプレートが、前記第2のテンプレートに含まれる前記上部隣接ブロックの前記サンプルに隣接する1つまたは複数の拡張上部サンプルを更に含み、前記1つまたは複数の拡張上部サンプルが、前記現在のピクチャ内のイントラコーディングされたブロックに含まれない、
請求項4に記載の方法。
【請求項11】
前記第2のテンプレートのサンプル数が、前記第1のテンプレートのサンプル数の150%である、請求項10に記載の方法。
【請求項12】
前記第2のテンプレートのサンプル数が、前記第1のテンプレートのサンプル数の200%である、請求項10に記載の方法。
【請求項13】
ビデオビットストリームから現在のピクチャ内の現在のブロックの予測情報を復号することであって、前記予測情報が、前記現在のブロックのためのテンプレートマッチング(TM)モードを示す、復号することと、
前記現在のブロックの第1のテンプレート内の少なくとも1つのサンプルが前記現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定することであって、前記現在のブロックの前記第1のテンプレートが、(1)前記現在のブロックの上部隣接ブロック、および(2)前記現在のブロックの左部隣接ブロック、のうちの1つまたは複数のサンプルを含む、決定することと、
(i)前記第1のテンプレート内の前記少なくとも1つのサンプルが前記イントラコーディングされたブロックに含まれるとの決定、および(ii)前記TMモードが前記現在のブロックに適用されていること、に応答して、前記現在のブロックのための第2のテンプレートを生成するために、前記第1のテンプレートから前記少なくとも1つのサンプルを除外することと、
前記現在のブロックのための前記第2のテンプレートに基づいて前記現在のブロックの動きベクトル(MV)を決定することと、
前記決定されたMVに基づいて前記現在のブロックを再構成することと
を実施するように構成される処理回路
を備える、ビデオ復号のための装置。
【請求項14】
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記処理回路が、前記TMモードを適用せずに、前記現在のブロックの初期MVに基づいて前記MVを決定するように構成される、
請求項13に記載の装置。
【請求項15】
前記現在のブロックの前記第1のテンプレートは、前記上部隣接ブロックのサンプルを含む初期上部テンプレートと、前記左部隣接ブロックのサンプルを含む初期左部テンプレートとを含み、
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記イントラコーディングされたブロックを含まない前記現在のブロックの前記左部隣接ブロックに応答して、前記処理回路が、初期MVと、前記初期左部テンプレートを含む前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するように構成され、
前記イントラコーディングされたブロックを含まない前記現在のブロックの前記上部隣接ブロックに応答して、前記処理回路が、前記初期MVと、前記初期上部テンプレートを含む前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するように構成される、
請求項13に記載の装置。
【請求項16】
前記現在のブロックの前記第1のテンプレート内の前記少なくとも1つのサンプルが、前記イントラコーディングされたブロックに含まれると決定され、
前記処理回路が、初期MVと、前記現在のブロックの前記第2のテンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定するように構成される、
請求項13に記載の装置。
【請求項17】
前記処理回路が、前記第2のテンプレート内の1つまたは複数のサンプルに基づく補間によって少なくとも1つの補間されたサンプルを生成するように構成され、前記少なくとも1つの補間されたサンプルが、前記イントラコーディングされたブロックに含まれる前記第1のテンプレート内の前記少なくとも1つのサンプルに対応し、
前記現在のブロックの前記第2のテンプレートが、前記少なくとも1つの補間されたサンプルを更に含む、
請求項16に記載の装置。
【請求項18】
前記現在のブロックの前記第2のテンプレートに対応する参照テンプレート内の参照サンプルが、参照ピクチャ内のサブピクセル位置に配置され、
前記処理回路が、
前記参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して、前記参照ピクチャ内の補間された参照テンプレートを生成し、
前記初期MVと、前記現在のブロックの前記第2のテンプレートと、前記補間された参照テンプレートと、に基づく前記TMモードを使用して前記現在のブロックの前記MVを決定する、
ように構成される、
請求項16に記載の装置。
【請求項19】
前記イントラコーディングされたブロックに含まれる前記第1のテンプレート内の前記少なくとも1つのサンプルが、(i)前記左部隣接ブロックのサンプルの1つまたは複数の左部サンプル、または(ii)前記上部隣接ブロックのサンプルの1つまたは複数の上部サンプルを含み、
前記1つまたは複数の左部サンプルを含む前記第1のテンプレート内の前記少なくとも1つのサンプルに応答して、前記第2のテンプレートが、前記第2のテンプレート内に含まれる前記左部隣接ブロックの前記サンプルに隣接する1つまたは複数の拡張左部サンプルを更に含み、前記1つまたは複数の拡張左部サンプルが、前記現在のピクチャ内のイントラコーディングされたブロックに含まれず、
前記1つまたは複数の上部サンプルを含む前記第1のテンプレート内の前記少なくとも1つのサンプルに応答して、前記第2のテンプレートが、前記第2のテンプレートに含まれる前記上部隣接ブロックの前記サンプルに隣接する1つまたは複数の拡張上部サンプルを更に含み、前記1つまたは複数の拡張上部サンプルが、前記現在のピクチャ内のイントラコーディングされたブロックに含まれない、
請求項16に記載の装置。
【請求項20】
少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
ビデオビットストリームから現在のピクチャ内の現在のブロックの予測情報を復号することであって、前記予測情報が、前記現在のブロックのためのテンプレートマッチング(TM)モードを示す、復号することと、
前記現在のブロックの第1のテンプレート内の少なくとも1つのサンプルが前記現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定することであって、前記現在のブロックの前記第1のテンプレートが、(1)前記現在のブロックの上部隣接ブロック、および(2)前記現在のブロックの左部隣接ブロック、のうちの1つまたは複数のサンプルを含む、決定することと、
(i)前記第1のテンプレート内の前記少なくとも1つのサンプルが前記イントラコーディングされたブロックに含まれるとの決定、および(ii)前記TMモードが前記現在のブロックに適用されていること、に応答して、前記現在のブロックのための第2のテンプレートを生成するために、前記第1のテンプレートから前記少なくとも1つのサンプルを除外することと、
前記現在のブロックのための前記第2のテンプレートに基づいて前記現在のブロックの動きベクトル(MV)を決定することと、
前記決定されたMVに基づいて前記現在のブロックを再構成することと、
を実施する、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年11月22日に出願された米国仮出願第63/281,772号「Constrained Template Matching」に対する優先権の利益を主張する、2022年9月9日に出願された米国特許出願第17/942,036号「CONSTRAINED TEMPLATE MATCHING」に対する優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【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の次元は、使用中の参照ピクチャの指示である(第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を直接コーディングする代わりに、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲のサンプルのいずれか1つと関連付けられたMVを使用して、1つまたは複数の参照ピクチャと関連付けられたメタデータから、例えば、(復号順に)最新の参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用している同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオ符号化および復号のための方法および装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。処理回路は、ビデオビットストリームから現在のピクチャ内の現在のブロックの予測情報を復号するように構成される。予測情報は、現在のブロックのためのテンプレートマッチング(TM)モードを示す。処理回路は、現在のブロックの初期テンプレート(第1のテンプレートとも呼ばれる)内の少なくとも1つのサンプルが、現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定する。現在のブロックの初期テンプレートは、現在のブロックの1つもしくは複数の上部隣接ブロックのサンプル、および/または現在のブロックの1つもしくは複数の左部隣接ブロックのサンプルを含む。初期テンプレート内の少なくとも1つのサンプルがイントラコーディングされたブロックに含まれる場合、(i)TMモードを適用せずに現在のブロックの初期MVに基づいて、または(ii)現在のブロックの初期MVと、初期テンプレートに基づいて生成され、イントラコーディングされたブロックに含まれる初期テンプレート内の少なくとも1つのサンプルを省略する現在のテンプレート(第2のテンプレートとも呼ばれる)と、に基づいて、処理回路は、現在のブロックの動きベクトル(MV)を決定する。処理回路は、決定されたMVに基づいて現在のブロックを再構成する。
【0023】
一実施形態では、現在のブロックの第1のテンプレート内の少なくとも1つのサンプルが、現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれるか否かを決定する。現在のブロックの第1のテンプレートは、(1)現在のブロックの1つまたは複数の上部隣接ブロック、および(2)現在のブロックの1つまたは複数の左部隣接ブロック、のうちの1つまたは複数のサンプルを含むことができる。一例では、1つまたは複数の上部隣接ブロックは、上部隣接ブロックである。一例では、1つまたは複数の左部隣接ブロックは、左部隣接ブロックである。第1のテンプレート内の少なくとも1つのサンプルがイントラコーディングされたブロックに含まれるという決定に応答して、少なくとも1つのサンプルは、第1のテンプレートから除外され、現在のブロックのための第2のテンプレートを生成することができる。現在のブロックのMVは、現在のブロックのための第2のテンプレートに基づいて決定することができる。
【0024】
一例では、(i)第1のテンプレート内の少なくとも1つのサンプルがイントラコーディングされたブロックに含まれるという決定、および(ii)TMモードが現在のブロックに適用されていること、に応答して、少なくとも1つのサンプルは、第1のテンプレートから除外され、現在のブロックのための第2のテンプレートを生成することができる。
【0025】
一実施形態では、現在のブロックの初期テンプレート内の少なくとも1つのサンプルは、イントラコーディングされたブロックに含まれると決定される。処理回路は、TMモードを適用せずに、現在のブロックの初期MVに基づいてMVを決定する。
【0026】
一実施形態では、現在のブロックの初期テンプレートは、1つまたは複数の上部隣接ブロックのサンプルを含む初期上部テンプレートと、1つまたは複数の左部隣接ブロックのサンプルを含む初期左部テンプレートとを含む。現在のブロックの初期テンプレート内の少なくとも1つのサンプルは、イントラコーディングされたブロックに含まれていると決定される。現在のブロックの1つまたは複数の左部隣接ブロックがイントラコーディングされたブロックを含まない場合、処理回路は、初期MVと、初期左部テンプレートを含む現在のテンプレートと、に基づくTMモードを使用して現在のブロックのMVを決定する。現在のブロックの1つまたは複数の上部隣接ブロックがイントラコーディングされたブロックを含まない場合、処理回路は、初期MVと、初期上部テンプレートを含む現在のテンプレートと、に基づくTMモードを使用して現在のブロックのMVを決定する。
【0027】
一実施形態では、現在のブロックの初期テンプレート内の少なくとも1つのサンプルは、イントラコーディングされたブロックに含まれると決定される。処理回路は、初期MVと、現在のブロックの現在のテンプレートと、に基づくTMモードを使用して現在のブロックのMVを決定する。
【0028】
一実施形態では、処理回路は、現在のテンプレート内の1つまたは複数のサンプルに基づく補間によって少なくとも1つの補間されたサンプルを生成する。少なくとも1つの補間されたサンプルは、イントラコーディングされたブロックに含まれる初期テンプレート内の少なくとも1つのサンプルに対応する。現在のブロックの現在のテンプレートは、少なくとも1つの補間されたサンプルを更に含む。
【0029】
一実施形態では、現在のブロックの現在のテンプレートに対応する参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。処理回路は、参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して、参照ピクチャ内の補間された参照テンプレートを生成する。処理回路は、初期MVと、現在のブロックの現在のテンプレートと、補間された参照テンプレートと、に基づくTMモードを使用して現在のブロックのMVを決定する。
【0030】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内の少なくとも1つのサンプルに対応する参照ピクチャ内の少なくとも1つの参照サンプルを省略する。処理回路は、参照ピクチャ内の最も近い参照サンプルをコピーすることによって、参照ピクチャ内の省略された少なくとも1つの参照サンプルのうちの1つに対応するパディングされたサンプルを生成する。処理回路は、パディングされたサンプルに基づく補間によって参照ピクチャ内の補間された参照テンプレートを生成する。
【0031】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内の少なくとも1つのサンプルに対応する参照ピクチャ内の少なくとも1つの参照サンプルを省略する。処理回路は、参照ピクチャ内の省略された少なくとも1つの参照サンプルに基づく補間によって、参照ピクチャ内の補間された参照テンプレートを生成する。
【0032】
一実施形態では、現在のブロックの初期テンプレートに対応する初期参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。処理回路は、初期参照テンプレートにおいて補間を使用して参照ピクチャ内の中間参照テンプレートを生成する。処理回路は、中間参照テンプレートおよびマスクに基づいて、現在のブロックの現在のテンプレートに対応する参照テンプレートを生成する。マスクの形状は、現在のブロックの現在のテンプレートに基づいて決定することができる。
【0033】
一実施形態では、イントラコーディングされたブロックに含まれる初期テンプレート内の少なくとも1つのサンプルは、(i)1つまたは複数の左部隣接ブロックのサンプルの1つまたは複数の左部サンプル、または(ii)1つまたは複数の上部隣接ブロックのサンプルの1つまたは複数の上部サンプルを含む。初期テンプレート内の少なくとも1つのサンプルが1つまたは複数の左部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の左部隣接ブロックのサンプルに隣接する1つまたは複数の拡張左部サンプルを更に含む。1つまたは複数の拡張左部サンプルは、現在のピクチャにおけるイントラコーディングされたブロックに含まれない。
【0034】
初期テンプレート内の少なくとも1つのサンプルが1つまたは複数の上部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の上部隣接ブロックのサンプルに隣接する1つまたは複数の拡張上部サンプルを更に含む。1つまたは複数の拡張上部サンプルは、現在のピクチャ内のイントラコーディングされたブロックに含まれない。
【0035】
一例では、現在のテンプレートのサンプル数は、初期テンプレートのサンプル数の150%である。
【0036】
一例では、現在のテンプレートのサンプル数は、初期テンプレートのサンプル数の200%である。
【0037】
本開示の態様はまた、ビデオ復号のための方法を実施するために少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体も提供する。
【0038】
開示された主題の更なる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面から明らかになる。
【図面の簡単な説明】
【0039】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】現在のブロック(201)および周囲のサンプルの一例を示す図である。
【
図3】通信システム(300)の例示的なブロック図の概略図である。
【
図4】通信システム(400)の例示的なブロック図の概略図である。
【
図5】デコーダの例示的なブロック図の概略図である。
【
図6】エンコーダの例示的なブロック図の概略図である。
【
図9】テンプレートマッチング(TM)の例を示す図である。
【
図10】アフィンマージモードにおけるTMの例を示す図である。
【
図13】参照ピクチャ内の参照テンプレートを取得するための例示的なプロセスを示す図である。
【
図14】TMにおいて現在のテンプレートを拡張する例を示す図である。
【
図15】本開示の一実施形態による、符号化プロセスを概説するフローチャートである。
【
図16】本開示の一実施形態による、復号プロセスを概説するフローチャートである。
【
図17】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0040】
図3は、通信システム(300)の例示的なブロック図を示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信し得る複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1の対を含む。
図3の例において、端末デバイス(310)および(320)の第1の対は、データの単方向送信を実施する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するために、ビデオデータ(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリーム)をコーディングしてもよい。符号化されたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示し得る。単方向データ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0041】
別の例では、通信システム(300)は、例えばビデオ会議中のコーディングされたビデオデータの双方向送信を実施する端末デバイス(330)および(340)の第2の対を含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するために、ビデオデータ(例えば、端末デバイスによってキャプチャされたビデオピクチャのストリーム)をコーディングしてもよい。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示し得る。
【0042】
図3の例において、端末デバイス(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとしてそれぞれ例示されているが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器と共に適用される。ネットワーク(350)は、例えば有線(配線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間で、コーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回路交換チャネルおよび/またはパケット交換チャネルでデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作に重要ではない場合がある。
【0043】
図4は、開示の主題についての用途の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダを示している。開示の主題は、例えば、ビデオ会議、デジタルテレビ、ストリーミングサービス、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能であり得る。
【0044】
ストリーミングシステムは、例えば非圧縮のビデオピクチャのストリーム(402)を生成する、例えばデジタルカメラなどのビデオソース(401)を含み得るキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム(402)は、符号化されたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較したときの大きいデータ量を強調するために太線で示され、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下で詳細に記載するように、開示された主題の態様を可能にする、または実装するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。符号化ビデオデータ(404)(または符号化ビデオビットストリーム)は、ビデオピクチャのストリーム(402)と比較したときの少ないデータ量を強調するために細線で示され、将来の使用のためにストリーミングサーバ(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のコンテキストで使用され得る。
【0045】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含み得ることに留意されたい。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含み、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0046】
図5は、ビデオデコーダ(510)の例示的なブロック図を示している。ビデオデコーダ(510)は、電子デバイス(530)に含めることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)を、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0047】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。一実施形態では、一度に1つのコーディングされたビデオシーケンスが受信され、各コーディングされたビデオシーケンスの復号は、他のコーディングされたビデオシーケンスの復号から独立している。コーディングされたビデオシーケンスは、チャネル(501)から受信され、チャネル(501)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームと共に符号化されたビデオデータを受信し、そのデータは、それらそれぞれの使用エンティティ(図示せず)に転送され得る。受信機(531)は、コーディングされたビデオシーケンスをその他のデータから分離し得る。ネットワークジッタに対抗するために、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)との間にバッファメモリ(515)が結合され得る。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の外部にあり得る(図示せず)。更に他の用途では、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在し、加えて、例えば、プレイアウトタイミングを処理するために、ビデオデコーダ(510)の内部に他のバッファメモリ(515)が存在してもよい。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークから、データを受信しているとき、バッファメモリ(515)は、不要な場合がある、または小さくしてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)は、用いられてもよく、比較的大きくてもよく、有利には適応サイズであってもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0048】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含み得る。これらのシンボルのカテゴリは、
図5に示されるように、ビデオデコーダ(510)の動作を管理するために使用される情報と、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示スクリーン)などのレンダリングデバイスを潜在的に制御するための情報とを含む。レンダリングデバイスのための制御情報は、補足エンハンスメント情報(SEI)メッセージ、またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であり得る。パーサ(520)は、受信されたコーディングされたビデオシーケンスを解析/エントロピー復号し得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、コンテキスト依存性ありまたはなしの可変長コーディング、ハフマンコーディング、算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに関するサブグループパラメータのセットを抽出し得る。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、変換係数、量子化器パラメータ値、動きベクトルなどのようなコーディングされたビデオシーケンス情報から抽出してもよい。
【0049】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピー復号/解析パーサ動作を実施し得る。
【0050】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、および他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与するかは、パーサ(520)が、コーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、説明の都合上描写していない。
【0051】
すでに述べた機能ブロックを超えて、ビデオデコーダ(510)は、以下に説明するように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットへの概念的細分化が適切である。
【0052】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ(520)からシンボル(521)として受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0053】
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングされたブロックに関係することができる。イントラコーディングされたブロックは、以前に再構成されたピクチャからの予測情報を使用せず、現在のピクチャの以前に再構成された部分からの予測情報を使用し得るブロックである。そのような予測情報を、イントラピクチャ予測ユニット(552)が提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされた周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、場合によっては、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)が提供した出力サンプル情報に、サンプル単位で付加する。
【0054】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動作補償されたブロックに関連することができる。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルを、出力サンプル情報を生成するために、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスを、例えば、X、Y、および参照ピクチャ成分を有し得るシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって、制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)から、フェッチされたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0055】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に提供される、インループフィルタ技術を、ビデオ圧縮技術は含むことができる。ビデオ圧縮はまた、コーディングされたピクチャ、またはコーディングされたビデオシーケンスの(復号順で)前の部分の復号中に取得されたメタ情報に応答して行うこともでき、以前に再構成およびループフィルタリングされたサンプル値に応答して行うこともできる。
【0056】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力すると共に、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであり得る。
【0057】
完全に再構成されると、特定のコーディングされたピクチャは、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、新規の現在のピクチャバッファを、後続のコーディングされたピクチャの再構成を開始する前に再配置することができる。
【0058】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの所定のビデオ圧縮技術または規格に従って復号動作を実施し得る。コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されているプロファイルとの両方を順守しているという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されている構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールの中から、特定のツールを、そのプロファイル下でそれらだけが利用可能なツールとして選択することができる。また、コンプライアンスのために必要なのは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、毎秒メガサンプル単位で測定された)最大再構成サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様およびコーディングされたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のためのメタデータによって更に制限されてもよい。
【0059】
一実施形態では、受信機(531)は、符号化されたビデオを有する追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの一部として含まれ得る。追加のデータは、ビデオデコーダ(510)によって、データを適切に復号するために、かつ/または元のビデオデータを正確に再構成するために使用され得る。追加のデータは、例えば、時間、空間、または信号雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形態であり得る。
【0060】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)を、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0061】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像をキャプチャし得る(
図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0062】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb4:4:4)のものとし得るデジタルビデオサンプルストリームの形式で提供し得る。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであり得る。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成され、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下、サンプルに着目して説明する。
【0063】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングし、圧縮し得る。適切なコーディング速度を実施することが、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。この結合は説明都合上描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成することができる。
【0064】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に単純化した説明として、一例では、コーディングループは、(例えば、コーディングされるべき入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)ソースコーダ(630)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成することになるのと同様の方式で、シンボルを再構成してサンプルデータを作成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの位置(ローカルまたはリモート)に関係なくビットイグザクトな結果をもたらすため、参照ピクチャメモリ(634)の内容も、ローカルエンコーダとリモートエンコーダとの間でビットイグザクトである。言い換えれば、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」ことになるのと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性(例えばチャネル誤差のために同期性を維持し得ない場合、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術においても使用される。
【0065】
「ローカル」デコーダ(633)の動作は、
図5と併せて上記で詳細にすでに説明されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。
図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によって、コーディングされたビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピー復号部分、およびパーサ(520)は、ローカルデコーダ(633)に完全に実装されない場合もある。
【0066】
一実施形態では、デコーダに存在する解析/エントロピー復号を除くデコーダ技術が、対応するエンコーダにおいて、同一または実質的に同一の機能的形態で存在する。したがって、開示された主題は、デコーダの動作に焦点を当てている。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0067】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して、入力ピクチャを予測的にコーディングする動作補償予測コーディングを実施してもよい。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0068】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータを復号し得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータが(
図6には示されていない)ビデオデコーダで復号され得るとき、再構成されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実施され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャメモリ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、(送信エラーなしで)遠端ビデオデコーダによって取得されることになる再構成された参照ピクチャとして共通のコンテンツを有する再構成された参照ピクチャのコピーをローカルに記憶し得る。
【0069】
予測子(635)は、コーディングエンジン(632)の予測探索を実施し得る。すなわち、コーディングされる新規のピクチャの場合、予測子(635)は、新規のピクチャのための適切な予測参照として役立ち得る、(候補参照ピクセルブロックとしての)サンプルデータ、または参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を探索し得る。予測子(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作し得る場合によっては、予測子(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから描画された予測参照を有してもよい。
【0070】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理し得る。
【0071】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受け得る。エントロピーコーダ(645)は、様々な機能ユニットによって生成されたシンボルを、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ってシンボルに可逆圧縮を適用することによってコーディングされたビデオシーケンスに変換する。
【0072】
送信機(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信を準備し、通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージし得る。
【0073】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディング中、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当て、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、以下のピクチャタイプのうちの1つとして割り当てられることが多い。
【0074】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測元として使用することのない、コーディングおよび復号され得るものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識している。
【0075】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであってもよい。
【0076】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコーディングおよび復号され得るものであってもよい。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0077】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々、4×4、8×8、4×8、または16×16のサンプルのブロック)に空間的に細分化され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定される他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して予測的にコーディングされてもよい。
【0078】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実施し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実施し得る。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠することができる。
【0079】
一実施形態では、送信機(640)は、符号化されたビデオと共に追加のデータを送信してもよい。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNR強化層、冗長ピクチャおよびスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセット断片などを含み得る。
【0080】
ビデオは、複数のソースピクチャ(ビデオピクチャ)として時系列にキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と省略される)は、所与のピクチャ内の空間相関を使用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関を使用する。一例では、現在のピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。現在のピクチャ内のブロックが、ビデオ内で、以前にコーディングされ、未だバッファされている参照ピクチャ内の参照ブロックに類似しているとき、現在のピクチャ内のブロックを、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0081】
いくつかの実施形態では、インターピクチャ予測に双予測技術を使用することができる。双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャの復号順より前にある(しかし、表示順序は、それぞれ過去および未来のものであってもよい)。第1の参照ピクチャ内の第1の参照ブロックを指し示す第1の動きベクトルによって、および第2の参照ピクチャ内の第2の参照ブロックを指し示す第2の動きベクトルによって、現在のピクチャ内のブロックをコーディングすることができる。ブロックを、第1の参照ブロックと第2の参照ブロックとの組合せによって予測することができる。
【0082】
更に、コーディング効率を改善するために、インターピクチャ間予測にマージモード技術を使用することができる。
【0083】
本開示のいくつかの実施形態によれば、インターピクチャ予測やイントラピクチャ予測などの予測は、ブロック単位で実施される。例えば、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ピクセルなどのピクセルの値(例えば、ルマ値)の行列を含む。
【0084】
図7は、ビデオエンコーダ(703)の例示的な図を示している。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0085】
HEVCの例では、ビデオエンコーダ(703)は、例えば、8×8サンプルの予測ブロックのような処理ブロックのためのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最適にコーディングされるか否かを決定する。処理ブロックがイントラモードでコーディングされることになるとき、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコーディングされたピクチャに符号化し、処理ブロックがインターモードまたは双予測モードでコーディングされることになるとき、ビデオエンコーダ(703)は、インター予測技術または双予測技術をそれぞれ使用して、処理ブロックをコーディングされたピクチャに符号化し得る。特定のビデオコーディング技術では、マージモードは、予測子の外側のコーディングされた動きベクトル成分の助けを借りずに、動きベクトルが1つまたは複数の動きベクトル予測子から導出されるインターピクチャ予測サブモードとすることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード判定モジュール(図示せず)などの他の構成要素を含む。
【0086】
図7の例では、ビデオエンコーダ(703)は、
図7に示されるように互いに結合されたインターエンコーダ(730)と、イントラエンコーダ(722)と、残差計算器(723)と、スイッチ(726)と、残差エンコーダ(724)と、汎用コントローラ(721)と、エントロピーエンコーダ(725)とを含む。
【0087】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ(例えば、前のピクチャおよび後のピクチャ内のブロック)内の1つまたは複数の参照ブロックと比較し、インター予測情報(例えば、インター符号化技術、動きベクトル、マージモード情報による冗長情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号される復号された参照ピクチャである。
【0088】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、場合によっては、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0089】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるとき、汎用コントローラ(721)は、残差計算器(723)が使用するイントラモード結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択して、イントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、モードがインターモードであるとき、汎用コントローラ(721)は、残差計算器(723)が使用するインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択して、インター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0090】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて、残差データを符号化して変換係数を生成するよう動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化プロセスを受ける。様々な実施形態において、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実施し、復号された残差データを生成するように構成される。復号された残差データを、イントラエンコーダ(722)およびインターエンコーダ(730)が適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて、復号されたブロックを生成することができる。いくつかの例では、復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャを、メモリ回路(図示せず)にバッファし、参照ピクチャとして使用することができる。
【0091】
エントロピーエンコーダ(725)は、符号化されたブロックを含めるために、ビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従ってビットストリームに様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、ビットストリームに、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しないことに留意されたい。
【0092】
図8は、ビデオデコーダ(810)の例示的な図を示している。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受け取り、コーディングされたピクチャを復号して再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用される。
【0093】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0094】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成することができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは他のサブモードのインターモードおよび双予測モードなど)、ならびにイントラデコーダ(872)またはインターデコーダ(880)によって、それぞれ、予測のために使用される特定のサンプルまたはメタデータを識別し得る予測情報(例えば、イントラ予測情報またはインター予測情報など)を含むことができる。シンボルはまた、例えば、量子化変換係数の形態の残差情報なども含むことができる。一例では、予測モードが、インターモードまたは双予測モードであるとき、インター予測情報は、インターデコーダ(880)に提供され、予測タイプが、イントラ予測タイプであるとき、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0095】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0096】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0097】
残差デコーダ(873)は、逆量子化を実施して、逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差情報を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるために)特定の制御情報を必要とする場合もあり、その情報は、エントロピーデコーダ(871)によって提供され得る(これは、少量の制御情報のみであり得るので、データパスは描かれていない)。
【0098】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差情報と、(場合によってインター予測モジュールまたはイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構成されたピクチャの一部になり得る再構成ブロックを形成するように構成され、再構成されたピクチャは、再構成されたビデオの一部になり得る。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作を実施し得ることに留意されたい。
【0099】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装し得ることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装してもよい。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装してもよい。
【0100】
VVCでは、様々なインター予測モードを使用することができる。インター予測されたCUに対して、動きパラメータは、MVと、1つまたは複数の参照ピクチャインデックスと、参照ピクチャリスト使用インデックスと、インター予測されたサンプル生成に使用されるべき特定のコーディング特徴についての追加情報とを含むことができる。動きパラメータは、明示的または暗黙的にシグナリングすることができる。CUがスキップモードでコーディングされるとき、CUは、PUと関連付けられ、有意な残差係数も、コーディングされた動きベクトルデルタも、MV差分(例えばMVD)も、参照ピクチャインデックスも有することができない。マージモードを指定することができ、現在のCUの動きパラメータは、空間候補、時間候補、および/または追加スケジュール(例えば、VVCで導入されたスケジュール)を含む隣接CUから取得される。マージモードは、スキップモードに対してだけでなく、インター予測されたCUに適用することができる。一例では、マージモードの代替は、動きパラメータの明示的な送信であり、その場合、MV、各参照ピクチャリストの対応する参照ピクチャインデックス、および参照ピクチャリスト使用フラグ、およびその他の情報は、CUごとに明示的にシグナリングされる。
【0101】
VVCなどの一実施形態では、VVCテストモデル(VTM)参照ソフトウェアは、拡張マージ予測、マージ動きベクトル差分(MMVD)モード、対称MVDシグナリングを用いた適応動きベクトル予測(AMVP)モード、アフィン動き補償予測、サブブロックに基づく時間動きベクトル予測(SbTMVP)、適応動きベクトル解像度(AMVR)、動きフィールドストレージ(1/16ルマサンプルMVストレージおよび8×8動きフィールド圧縮)、CUレベルの重みを用いた双予測(BCW)、双方向オプティカルフロー(BDOF)、オプティカルフローを使用した予測精緻化(PROF)、デコーダ側動きベクトル精緻化(DMVR)、インターおよびイントラ組合せ予測(CIIP)、幾何学的分割モード(GPM)などを含む、1つまたは複数の精緻化されたインター予測コーディングツールを含む。
【0102】
テンプレートマッチング技術を、ビデオ/画像コーディングに使用することができる。VVC規格の圧縮効率を更に改善するために、例えば、テンプレートマッチング(TM)が使用されてMVを精緻化することができる。一例では、TMはデコーダ側で使用される。TMモードでは、MVは、再構成される現在のピクチャ内のブロック(例えば、現在のブロック)のテンプレートを構成することによって洗練され、現在のピクチャ内のブロックのテンプレートと参照ピクチャ内の複数のテンプレートとの間の最も近いマッチングを決定することができる。一実施形態では、現在のピクチャ内のブロックのテンプレートは、ブロックの左部隣接再構成サンプルと、ブロックの上方隣接再構成サンプルとを含むことができる。テンプレートマッチング技術を、VVCを超えるビデオ/画像コーディングに使用することができる。
【0103】
図9は、テンプレートマッチング(900)の一例を示している。
図9に示すように、テンプレートマッチングを使用して、現在のピクチャ(910)内の現在のCU(901)のテンプレート(921)と参照ピクチャ(911)内のテンプレート(925)との間の最も近いマッチングを決定することによって、現在のCU(901)の動き情報を導出することができる。現在のCU(901)のテンプレート(921)は、任意の適切な形状および任意の適切なサイズを有することができる。
【0104】
一実施形態では、現在のCU(901)のテンプレート(921)は、上部テンプレート(922)と、左部テンプレート(923)とを含む。上部テンプレート(922)および左部テンプレート(923)の各々は、任意の適切な形状および任意の適切なサイズを有することができる。
【0105】
上部テンプレート(922)は、現在のCU(901)の1つまたは複数の上部隣接ブロック内のサンプルを含むことができる。一例では、上部テンプレート(922)は、現在のCU(901)の1つまたは複数の上部隣接ブロック内にサンプルの4つの行を含む。左部テンプレート(923)は、現在のCU(901)の1つまたは複数の左部隣接ブロック内のサンプルを含むことができる。一例では、左部テンプレート(923)は、現在のCU(901)の1つまたは複数の左部隣接ブロック内にサンプルの4つの列を含む。
【0106】
参照ピクチャ(911)内のテンプレート(925)は、現在のピクチャ(910)内のテンプレート(921)に対応する。一実施形態では、初期MV(902)は、現在のCU(901)から参照ピクチャ(911)内の参照ブロック(903)を指し示す。参照ピクチャ(911)内のテンプレート(925)、および現在のピクチャ(910)内のテンプレート(921)は、同一の形状および同一のサイズを有することができる。例えば、テンプレート(925)は、参照ピクチャ(911)内の上部テンプレート(926)と、参照ピクチャ(911)内の左部テンプレート(927)とを含む。上部テンプレート(926)は、参照ブロック(903)の1つまたは複数の上部隣接ブロック内のサンプルを含むことができる。左部テンプレート(927)は、参照ブロック(903)の1つまたは複数の左部隣接ブロック内のサンプルを含むことができる。
【0107】
TMコストは、テンプレート(921)およびテンプレート(925)に基づいて決定することができる。TMコストは、テンプレート(921)とテンプレート(925)との間のマッチングを示すことができる。最適化されたMVは、探索範囲(915)内の現在のCU(901)の初期MV(902)の周りの探索に基づいて決定することができる。参照ピクチャ(911)内の探索範囲(915)は、[-L,L]ピクセル範囲を含むことができ、Lは、8(例えば、8サンプル)などの正の整数である。例えば、探索範囲(915)に基づいて差分(例えば、[0,1])が決定され、初期MV(902)と差分(例えば、[0,1])との和によって、中間MVが決定される。中間MVに基づいて、参照ピクチャ(911)内の中間参照ブロックおよび対応するテンプレートを、決定することができる。参照ピクチャ(911)内のテンプレート(921)と中間テンプレートに基づいて、TMコストを決定することができる。TMコストは、探索範囲(915)に基づいて決定される差分(例えば、初期MV(902)に対応する[0,0]、[0,1]など)に対応することができる。一例では、最小TMコストに対応する差分が選択され、最適化されたMVは、最小TMコストに対応する差分と初期MV(902)との和である。
【0108】
TMは、アフィンマージモードで適用することができ、アフィンTMと呼ぶことができる。
図10は、アフィンマージモードにおけるTM(1000)の例を示している。現在のブロック(例えば、現在のCU)(1001)のテンプレート(1021)は、平行移動の動きモデルに適用されるTM内のテンプレート(例えば、
図9のテンプレート(921))に対応することができる。参照ピクチャ内の参照ブロックの参照テンプレート(1025)は、CU境界において隣接サブブロック(例えば、
図10に示すようなA0~A3およびL0~L3)の制御点MV(CPMV)導出MVによって指し示される複数のサブブロック(例えば、4×4サブブロック)を含むことができる。
【0109】
アフィンマージモードで適用されるTMの探索プロセスは、他のCPMV(例えば、(i)4パラメータモデルが使用される場合はCPMV1、または(ii)6パラメータモデルが使用される場合はCPMV1およびCPMV2)を一定に保ちつつ、CPMV0から開始することができる。探索は、水平方向および垂直方向に向けて実施され得る。一例では、ゼロベクトルが水平探索および垂直探索から見つかった最良の差分ベクトルでない場合にのみ、探索は、対角線方向に続く。アフィンTMは、CPMV1について同じ探索プロセスを繰り返すことができる。アフィンTMは、6パラメータモデルが使用される場合、CPMV2について同じ探索プロセスを繰り返すことができる。ゼロベクトルが前の反復からの最良の差分ベクトルではなく、探索プロセスが3回未満反復された場合、精緻化されたCPMVに基づいて、探索プロセス全体を精緻化されたCPMV0から再開することができる。
【0110】
関連するテンプレートマッチング方法では、現在のブロックのテンプレート(例えば、テンプレート(921)または(1021))が、現在のブロックの再構成された隣接ピクセルから生成される。いくつかの例では、現在のブロックのテンプレートで使用されるすべての隣接ピクセルが再構成されるまで、現在のブロックのTMを実施することができないため、追加の依存関係が発生する。追加の依存関係は、例えば、インターパイプラインとイントラパイプラインとが分離されているハードウェアにとって望ましくない場合がある。いくつかの例では、現在のブロックのテンプレートは、(デコーダ側で)イントラコーディングされるか、または(エンコーダ側で)イントラコーディングされる隣接ブロック内のサンプルを含む。したがって、デコーダ側では、現在のブロックが再構成されているときに、イントラコーディングされた隣接ブロックが復号されていない場合、隣接ブロック内のサンプルは利用できない。したがって、イントラコーディングされた隣接ブロックが復号されるまで、現在のブロックの再構成を実施することができない。イントラコーディングされた隣接ブロックにおける現在のブロックのテンプレートの依存関係により、現在のブロックのコーディングが遅延する可能性がある。本開示は、上述した依存関係を除去することができ、したがってそのような遅延を低減することができる実施形態を含む。
【0111】
本開示は、制約付きテンプレートマッチングに関する実施形態を含む。本開示の一実施形態によれば、現在のピクチャ内のブロック(例えば、現在のブロック)のテンプレートの導出は、そのブロックのためのTMがイントラコーディングされた空間的に隣接するブロックに依存しないように制約される。
【0112】
現在のピクチャ内の現在のブロックのテンプレートは、現在のピクチャ内のイントラコーディングされたブロックからのサンプル(またはピクセル)を使用せずに生成することができる。したがって、デコーダ側では、デコーダは、現在のブロックをTMで再構成する前にイントラコーディングされたブロックが復号されるのを待つ必要がなく、復号速度を高めることができる。
【0113】
一実施形態では、現在のピクチャ内の現在のブロックの予測情報を、ビデオビットストリームから復号することができる。予測情報は、現在のブロックのためのTMモードを示すことができる。現在のブロックの初期テンプレート内のサンプルが、現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれているか否かを決定することができる。現在のブロックの初期テンプレートは、現在のブロックの1つまたは複数の上部隣接ブロックのサンプル、および/または現在のブロックの1つまたは複数の左部隣接ブロックのサンプルを含むことができる。初期テンプレート内のサンプルがイントラコーディングされたブロックに含まれているという決定に応答して、現在のブロックのMVは、(i)TMモードを適用せずに現在のブロックの初期MVに基づいて、または(ii)現在のブロックの初期MVと、初期テンプレートに基づいて生成され、イントラコーディングされたブロックに含まれている初期テンプレート内のサンプルを省略する現在のテンプレートと、に基づいて決定することができる。現在のブロックは、決定されたMVに基づいて再構成することができる。
【0114】
図11は、テンプレートマッチング(1100)の一例を示している。
図11の現在のCU(901)、テンプレート(921)、初期MV(902)、テンプレート(925)、現在のピクチャ(910)、および参照ピクチャ(911)は、
図9に記載されている。テンプレート(921)は、現在のブロック(例えば、現在のCU(901))の初期テンプレートである。一実施形態では、現在のブロック(例えば、(901))の初期テンプレート(例えば、テンプレート(921))内のサンプルは、イントラコーディングされたブロックに含まれると決定される。初期テンプレート内のサンプルがイントラコーディングされたブロックに含まれているという決定に基づいて、MVは、TMモードを適用せずに、現在のブロック(例えば、現在のCU(901))の初期MV(例えば、初期MV(902))に基づいて決定することができる。一例では、MVは、現在のブロック(例えば、現在のCU(901))の初期MV(例えば、初期MV(902))である。
【0115】
図11を参照すると、一例では、上部テンプレート(922)は、サブテンプレート(922(1)~922(3))を含み、左部テンプレート(923)は、サブテンプレート(923(1)~923(3))を含む。サブテンプレート(922(1))、(922(3))、(923(1))、(923(3))は、現在のピクチャ(910)のイントラコーディングされたブロックにサンプルを含まない。サブテンプレート(922(2))および(923(2))は、現在のピクチャ(910)内のイントラコーディングされたブロック内にサンプルを含む。一例では、MVは、現在のブロック(例えば、現在のCU(901))の初期MV(例えば、初期MV(902))であり、TMは現在のCU(901)に適用されない。
【0116】
一例では、現在のブロック(例えば、(901))のテンプレート(例えば、(921))を生成するために使用されるサンプル(またはピクセル)がチェックされる。現在のブロック(例えば、(901))のテンプレート(例えば、(921))内のピクセルのいずれかが、イントラコーディングされたブロックに属する場合、テンプレート(例えば、(921))が、上部テンプレート(例えば、(922))および左部テンプレート(例えば、(923))を含む場合、現在のブロック(例えば、(901))のテンプレート(例えば、(921))は、利用不可としてマークされる。
【0117】
一例では、上部テンプレート(例えば、(922))および左部テンプレート(例えば、(923))は、別々に生成される。TMは、上部テンプレート(例えば、(922))および/または左部テンプレート(例えば、(923))が利用可能なときに使用され得る。一例では、上部テンプレート(例えば、(922))内のピクセルのいずれもイントラコーディングされたブロックに属していない場合、上部テンプレート(例えば、(922))は利用可能である。一例では、左部テンプレート(例えば、(923))内のピクセルのいずれも現在のピクチャ(910)内のイントラコーディングされたブロックに属していない場合、左部テンプレート(例えば、(923))は利用可能である。
【0118】
図11を参照すると、一例では、現在のブロック(例えば、(901))の初期テンプレート(例えば、(921))は、1つまたは複数の上部隣接ブロックのサンプルを含む初期上部テンプレート(例えば、(922))と、1つまたは複数の左部隣接ブロックのサンプルを含む初期左部テンプレート(例えば、(923))とを含む。現在のブロックの初期テンプレート(例えば、(921))内のサンプルが、イントラコーディングされたブロックに含まれていると決定される。イントラコーディングされたブロックを含まない現在のブロック(例えば、(901))の1つまたは複数の左部隣接ブロックに応答して、現在のブロックのMVは、初期MV(例えば、(902))と、初期左部テンプレート(例えば、(923))を含む現在のテンプレート(例えば、(923))と、に基づくTMモードを使用して決定することができる。イントラコーディングされたブロックを含まない現在のブロック(例えば、(901))の1つまたは複数の上部隣接ブロックに応答して、現在のブロックのMVは、初期MV(例えば、(902))と、初期上部テンプレート(例えば、(922))を含む現在のテンプレート(例えば、(922))と、に基づくTMモードを使用して決定することができる。
【0119】
一実施形態では、現在のブロック(例えば、(901))の初期テンプレート(テンプレート(921))を生成するために使用されるサンプル(またはピクセル)がチェックされる。現在のブロックの現在のテンプレートから、イントラコーディングされたブロックに属するサンプルを除外することができる現在のテンプレートから、イントラコーディングされたブロックからサンプルを除外した後、現在のテンプレートと参照テンプレートとの間のマッチング誤差を計算するときに、参照テンプレート内の対応するサンプルを除外することができる。
【0120】
図12Aは、TM(1200A)の例を示しており、そこでは、
図12Aの現在のCU(901)、初期MV(902)、現在のピクチャ(910)、参照ピクチャ(911)、サブテンプレート(922(1))、(922(3))、(923(1))、および(923(3))が、
図9および
図11に記載されている。
図11および
図12Aを参照すると、現在のCU(901)の初期テンプレートはテンプレート(921)である。現在のCU(901)の初期テンプレート(921)内のサンプルは、イントラコーディングされたブロックに含まれていると決定される。現在のCU(901)のMVは、初期MV(902)と、現在のCU(901)の現在のテンプレート(1221)と、に基づくTMモードを使用して決定することができる。一例では、イントラコーディングされたブロックに含まれる初期テンプレート(921)内のサンプルは、サブテンプレート(922(2))および(923(2))内のサンプルを含む。現在のCU(901)の現在のテンプレート(1221)は、サブテンプレート(922(1))、(922(3))、(923(1))、および(923(3))を含むことができる。現在のCU(901)の現在のテンプレート(1221)は、サブテンプレート(922(2))および(923(2))内のサンプルを省略する。一例では、現在のテンプレート(1221)は、インターコーディングされたブロックおよび/またはイントラブロックコピー(IBC)コーディングされたブロック内のサンプルを含む。
【0121】
再び
図11を参照すると、参照ピクチャ(911)において、上部テンプレート(926)は、サブテンプレート(922(1)~(922(3))に対応する(926(1)~(926(3))サブテンプレートを含むことができ、左部テンプレート(927)は、サブテンプレート(923(1)~(923(3))に対応するサブテンプレート(927(1)~(927(3))を含むことができる。
図12Aを参照すると、参照テンプレート(1225)は、現在のテンプレート(1221)に対応することができ、参照テンプレート(1225)は、サブテンプレート(926(1))、(926(3))、(927(1))、および(927(3))を含む。参照テンプレート(1225)は、サブテンプレート(926(2))、(927(2))を省略する。
【0122】
一例では、現在のテンプレート(1221)は、上部テンプレート(1222)と、左部テンプレート(1223)とを含む。上部テンプレート(1222)は、サブテンプレート(922(1))および(922(3))を含む。左部テンプレート(1223)は、サブテンプレート(923(1))および(923(3))を含む。参照テンプレート(1225)は、上部テンプレート(1226)と、左部テンプレート(1227)とを含む。上部テンプレート(1226)は、サブテンプレート(926(1))および(926(3))を含む。左部テンプレート(1227)は、サブテンプレート(927(1))および(927(3))を含む。
【0123】
現在のCU(901)の現在のテンプレートは、イントラコーディングされたブロックに含まれない現在のCU(901)の初期テンプレート内の任意のサンプルを含むことができる。現在のCU(901)の現在のテンプレートは、イントラコーディングされたブロックに含まれる現在のCU(901)の初期テンプレート内の任意のサンプルを省略することができる。
図12Bは、TM(1200B)の一例を示しており、そこでは、
図12Bの現在のCU(901)、初期MV(902)、現在のピクチャ(910)、参照ピクチャ(911)、上部テンプレート(922)および(926)、ならびにサブテンプレート(923(2))~(922(3))および(927(2))~(923(3))が、
図9および
図11に記載されている。
【0124】
図11および
図12Bを参照すると、現在のCU(901)の初期テンプレートはテンプレート(921)である。イントラコーディングされたブロックに含まれる初期テンプレート(921)内のサンプルは、サブテンプレート(923(1))内のサンプルを含む。現在のCU(901)の現在のテンプレート(1321)は、上部テンプレート(922)、およびサブテンプレート(923(2))~(923(3))を含むことができる。現在のCU(901)の現在のテンプレート(1321)は、サブテンプレート(923(1))内のサンプルを省略する。参照テンプレート(1325)は、現在のテンプレート(1321)に対応することができ、参照テンプレート(1325)は、上部テンプレート(926)、およびサブテンプレート(927(2))~(927(3))を含む。参照テンプレート(1325)は、サブテンプレート(927(1))を省略する。
【0125】
一例では、現在のテンプレート(例えば、現在のテンプレート(1221)または(1321))内の省略されたピクセル(例えば、イントラコーディングされたピクセル)は、現在のテンプレート内の利用可能なピクセルに基づいて補間される。一例では、補間されたサンプルは、現在のテンプレート(例えば、現在のテンプレート(1221)または(1321))内の1つまたは複数のサンプルに基づいた補間によって生成することができる。補間されたサンプルは、イントラコーディングされたブロックに含まれる初期テンプレート(例えば、(921))内のサンプルに対応する(置換する)ことができる。現在のブロックの現在のテンプレートは、補間されたサンプルを更に含むことができ、補間されたサンプルは、現在のテンプレートから省略された初期テンプレート(例えば、(921))内のサンプルを置換することができる。
【0126】
参照テンプレート(例えば、参照テンプレート(1225)または(1325))内の省略されたピクセル(例えば、イントラコーディングされたピクセル)は、参照テンプレート内の利用可能なピクセルに基づいて補間され得る。
【0127】
一実施形態では、現在のブロック(例えば、(901))の現在のテンプレート(例えば、現在のテンプレート(921))に対応する参照テンプレート(例えば、参照テンプレート(1225)または(1325))内の参照サンプルは、参照ピクチャ(例えば、(911))内のサブピクセル位置に配置される。この場合、参照ピクチャ内の補間された参照テンプレートは、参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して生成することができる。現在のブロックのMVは、初期MVと、現在のブロックの現在のテンプレートと、補間された参照テンプレートと、に基づくTMモードを使用して決定することができる。
【0128】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照ピクチャ内の参照サンプルを省略する。参照ピクチャ内の省略された参照サンプルのうちの1つに対応する(置換する)パディングされたサンプルは、参照ピクチャ内の最も近い参照サンプルをコピーすることによって生成することができる。参照ピクチャ内の補間された参照テンプレートは、パディングされたサンプルに基づく補間によって生成することができる。
【0129】
一例では、参照テンプレート(例えば、参照テンプレート(1225)または(1325))は、サブピクセル位置にある。この場合、補間された参照テンプレートが整数位置になるように、参照テンプレートに対して補間を実施することができる。複雑さを低減するために、4タップ未満を有するフィルタ(例えば、2タップバイリニア補間フィルタ)を用いて参照テンプレートに対して、補間を実施することができる。イントラコーディングされたブロックが除外されることによって参照テンプレートの一部が省略される場合、最も近いピクセルをコピーして補間を行うことによって、ピクセルパディングを実施することができる。一例では、必要な方向に2ピクセル以下がパディングされる。
【0130】
一実施形態では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照ピクチャ内の参照サンプルを省略する。この場合、参照ピクチャ内の省略された参照サンプルに基づく補間によって、参照ピクチャ内の補間された参照テンプレートを生成することができる。
【0131】
一例では、参照テンプレートがサブピクセル位置にあるとき、ピクセルパディングは使用されない。この場合、参照ピクチャ(例えば、(911))内のすべてのピクセルが利用可能であるので、補間は、マッチングプロセスから除外されるべきピクセルに基づくことができる。
【0132】
様々な例において、現在のテンプレート内のピクセルが、整数ピクセル位置において、再構成された空間隣接であるとき、現在のテンプレートは補間される必要がない。
【0133】
一例では、参照ピクチャ内の参照テンプレート全体の補間がサブピクセル位置で実施される。マスクは、参照テンプレートに使用され、現在のテンプレート内のイントラコーディングされたブロックに属するピクセルに対応する参照テンプレート内のピクセルを除外することができる。マスクの形状およびサイズは、現在のテンプレートの形状およびサイズに基づくことができる。
【0134】
図13は、参照ピクチャ内の参照テンプレートを取得する例示的なプロセス(1300)を示す。一実施形態では、現在のブロック(例えば、(901))の初期テンプレート(例えば、(921))に対応する初期参照テンプレート(例えば、テンプレート(925))内の参照サンプルは、参照ピクチャ(例えば、(911))内のサブピクセル位置に配置される。
図9では、テンプレート(925)、テンプレート(921)、現在のCU(901)、および参照ピクチャ(911)について説明する。説明の都合上、テンプレート(921)および現在のCU(901)は
図13には示されていない。参照ピクチャ内の中間参照テンプレート(1425)は、初期参照テンプレート(例えば、(925))における補間を使用して生成することができる。
【0135】
マスク(1415)は、領域(1415(1))~(1415(4))、および領域(1415(5))~(1415(6))を含む。一例では、領域(1415(1))~(1415(4))のピクセルの値は「1」であり、領域(1415(5))~(1415(6))のピクセルの値は「0」である。領域(1415(1))~(1415(4))は、非ゼロ領域と呼ぶことができ、領域(1415(5))~(1415(6))は、ゼロ領域と呼ぶことができる。一例では、マスク(1415)の非ゼロ領域(1415(1))~(1415(4))の形状は、現在のブロックの現在のテンプレート(例えば、(1221))の形状と同一である。一例では、マスク(1415)の非ゼロ領域(1415(1))~(1415(4))のサイズは、現在のブロックの現在のテンプレート(例えば、(1221))のサイズと同一である。
【0136】
中間参照テンプレート(1425)およびマスク(1415)に基づいて、現在のブロックの現在のテンプレート(例えば、
図12Aの現在のテンプレート(1221))に対応する参照テンプレート(1435)を生成することができる。例えば、中間参照テンプレート(1425)は、サブテンプレート(1425(1))~(1425(6))を含む。マスク(1415)内の非ゼロ領域(1415(1))~(1415(4))は、サブテンプレート(1425(1))、(1425(3))、(1425(4))、および(1425(6))に対応する。参照テンプレート(1435)は、マスク(1415)を中間参照テンプレート(1425)に適用することによって生成される。一例では、参照テンプレート(1435)は、サブテンプレート(1435(a))~(1435(b))を含む。サブテンプレート(1435(a)~(1435(b))は、サブテンプレート(1425(1))、(1425(3))、(1425(4))、および(1425(6))に対応することができる。一例では、サブテンプレート(1435(a)~(1435(b))は、それぞれサブテンプレート(1425(1))、(1425(3))、(1425(4))、および(1425(6))である。
【0137】
マスク(1415)は、テンプレート(925)と重複しない追加の非ゼロ領域を含むことができ、追加の非ゼロ領域内のピクセルは、「1」の値を有する。マスク(1415)は、テンプレート(925)と重複しない追加のゼロ領域を含むことができ、追加のゼロ領域内のピクセルは、「0」の値を有する。追加の非ゼロ領域および追加のゼロ領域は、参照テンプレート(1435)に影響を及ぼさない。
【0138】
一実施形態では、イントラコーディングされたブロックが現在のピクチャの上部テンプレートエリアまたは左部テンプレートエリアにあるとき、イントラコーディングされたブロックは、現在のテンプレートから除外されてもよい。現在のテンプレートは、現在のピクチャの別の部分に拡張し得る。現在のテンプレートのサイズは、大きくされてもよい。
【0139】
一実施形態では、イントラコーディングされたブロックに含まれる初期テンプレート(例えば、テンプレート(921))内のサンプルは、(i)1つまたは複数の左部隣接ブロックのサンプルの1つまたは複数の左部サンプル、または(ii)1つまたは複数の上部隣接ブロックのサンプルの1つまたは複数の上部サンプルを含む。初期テンプレート(例えば、テンプレート(921))内のサンプルが、1つまたは複数の左部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の左部隣接ブロックのサンプルに隣接する1つまたは複数の拡張左部サンプルを更に含む。一例では、1つまたは複数の拡張左部サンプルは、現在のピクチャ内のイントラコーディングされたブロックに含まれない。初期テンプレート内のサンプルが、1つまたは複数の上部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の上部隣接ブロックのサンプルに隣接する1つまたは複数の拡張上部サンプルを更に含むことができる。1つまたは複数の拡張上部サンプルは、現在のピクチャ内のイントラコーディングされたブロックに含まれない。
【0140】
図14は、TM(1400)において現在のテンプレートを拡張する例を示している。
図14の現在のCU(901)、初期MV(902)、現在のピクチャ(910)、参照ピクチャ(911)、上部テンプレート(922)およびサブテンプレート(923(1))、(923(3))、上部テンプレート(926)およびサブテンプレート(927(1))、(927(3))が、
図9および
図11に記載されている。
【0141】
図11および
図14を参照すると、初期テンプレート(921)のサブテンプレート(923(2))内のサンプルは、イントラコーディングされたブロック内にある。上部テンプレート(922)内のサンプル、および初期テンプレート(921)内のサブテンプレート(923(1))、(923(3))のサンプルは、イントラコーディングされたブロック内にない。現在のCU(901)の現在のテンプレート(1421)は、上部テンプレート(922)と、サブテンプレート(923(1))および(923(3))とを含むことができる。現在のテンプレート(1421)は、現在のテンプレート(1421)内にあるサブテンプレート(923(1))および(923(3))のそれぞれの拡張であるサブテンプレート(923
e(1))および(923
e(3))を更に含むことができる。サブテンプレート(923
e(1))は、サブテンプレート(923(1))に隣接する左部隣接である。サブテンプレート(923
e(1))は、サブテンプレート(923(1))のサンプルに隣接する1つまたは複数の拡張左部サンプルを含むことができる。サブテンプレート(923
e(3))は、サブテンプレート(923(3))に隣接する左部隣接である。サブテンプレート(923
e(3))は、サブテンプレート(923(3))のサンプルに隣接する1つまたは複数の拡張左部サンプルを含むことができる。一例では、サブテンプレート(923
e(1))および(923
e(3))内のサンプルは、イントラコーディングされたブロックに含まれない。
【0142】
一例では、現在のテンプレート(例えば、(1421))のサンプル数は、初期テンプレート(例えば、(921))のサンプル数の150%である。
【0143】
一例では、現在のテンプレート(例えば、(1421))のサンプル数は、初期テンプレート(例えば、(921))のサンプル数の200%である。
【0144】
図14を用いた説明は、現在のテンプレートから上部テンプレート(922)内のサブテンプレートを省略したときに、適切に適合させることができる。
【0145】
図15は、本開示の一実施形態による、符号化プロセス(1500)を概説するフローチャートを示す。様々な実施形態では、プロセス(1500)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(例えば、(403)、(603)、(703))の機能を実施する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1500)がソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1500)を実施する。プロセスは(S1501)から開始されて(S1510)に進む。
【0146】
(S1510)において、現在のピクチャ内の現在のブロックの初期テンプレート内のサンプルがイントラ符号化されるべきブロックに含まれているか否かを決定する。一例では、イントラ符号化されるブロックは、現在のブロックの空間隣接ブロックである。現在のブロックの初期テンプレートは、現在のブロックの1つまたは複数の上部隣接ブロックのサンプル、および/または現在のブロックの1つまたは複数の左部隣接ブロックのサンプルを含むことができる。一例では、イントラ符号化されるブロックはイントラ符号化されている。一例では、イントラ符号化されるブロックはイントラ符号化されていない。
【0147】
(S1520)において、初期テンプレート内のサンプルがイントラ符号化されるべきブロックに含まれるという決定に応答して、現在のブロックの動きベクトル(MV)は、(i)テンプレートマッチング(TM)モードを適用せずに現在のブロックの初期MVに基づいて、または(ii)現在のブロックの初期MVと、初期テンプレートに基づいて生成され、イントラ符号化されるべきブロックに含まれるサンプルを省略する現在のテンプレートと、に基づいて、決定することができる。
【0148】
一実施形態では、現在のブロックの初期テンプレート内のサンプルは、イントラコーディングされたブロックに含まれると決定される。この場合、MVは、TMモードを適用せずに、現在のブロックの初期MVに基づいて決定することができる。
【0149】
一実施形態では、現在のブロックの初期テンプレートは、1つまたは複数の上部隣接ブロックのサンプルを含む初期上部テンプレートと、1つまたは複数の左部隣接ブロックのサンプルを含む初期左部テンプレートとを含む。現在のブロックの初期テンプレートのサンプルは、イントラコーディングされたブロックに含まれていると決定される。現在のブロックの1つまたは複数の左部隣接ブロックが、イントラコーディングされたブロックを含まない場合、現在のブロックのMVは、初期MVと、初期左部テンプレートを含む現在のテンプレートと、に基づくTMモードを使用して決定することができる。現在のブロックの1つまたは複数の上部隣接ブロックが、イントラコーディングされたブロックを含まない場合、現在のブロックのMVは、初期MVと、初期上部テンプレートを含む現在のテンプレートと、に基づくTMモードを使用して決定することができる。
【0150】
一実施形態では、現在のブロックの初期テンプレート(例えば、(921))内のサンプルは、イントラコーディングされたブロックに含まれると決定される。この場合、現在のブロックのMVは、
図12A~
図12Bに記載されているように、初期MVと、現在のブロックの現在のテンプレート(例えば、(1221)または(1321))と、に基づくTMモードを使用して決定することができる。
【0151】
図14に記載されるような一例では、イントラコーディングされたブロックに含まれる初期テンプレート内のサンプルは、(i)1つまたは複数の左部隣接ブロックの1つまたは複数の左部サンプル、および/または、(ii)1つまたは複数の上部隣接ブロックの1つまたは複数の上部サンプルを含む。初期テンプレート内のサンプルが、1つまたは複数の左部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の左部隣接ブロックのサンプルに隣接する1つまたは複数の拡張左部サンプルを更に含むことができる。1つまたは複数の拡張左部サンプルは、現在のピクチャにおけるイントラコーディングされたブロックに含まれない。初期テンプレート内のサンプルが、1つまたは複数の上部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の上部隣接ブロックのサンプルに隣接する1つまたは複数の拡張上部サンプルを更に含む。1つまたは複数の拡張上部サンプルは、現在のピクチャ内のイントラコーディングされたブロックに含まれない。現在のテンプレートのサンプル数は、初期テンプレートのサンプル数よりも多くすることができる。現在のテンプレートのサンプル数は、初期テンプレートのサンプル数の150%または200%とすることができる。
【0152】
一例では、補間されたサンプルは、現在のテンプレート内の1つまたは複数のサンプルに基づいて補間によって生成される。補間されたサンプルは、イントラコーディングされたブロックに含まれる初期テンプレート内のサンプルに対応する(置換する)ことができる。現在のブロックの現在のテンプレートは、補間されたサンプルを更に含むことができる。
【0153】
一例では、現在のブロックの現在のテンプレートに対応する参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。参照ピクチャ内の補間された参照テンプレートは、参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して生成することができる。現在のブロックのMVは、初期MVと、現在のブロックの現在のテンプレートと、補間された参照テンプレートと、に基づくTMモードを使用して決定することができる。
【0154】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照ピクチャ内の参照サンプルを省略する。参照ピクチャ内の省略された参照サンプルのうちの1つに対応する(置換する)パディングされたサンプルは、参照ピクチャ内の最も近い参照サンプルをコピーすることによって生成することができる。参照ピクチャ内の補間された参照テンプレートは、パディングされたサンプルに基づく補間によって生成することができる。
【0155】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照サンプルを省略する。参照ピクチャ内の補間された参照テンプレートは、参照ピクチャ内の省略された参照サンプルに基づいて補間によって生成することができる。
【0156】
一例では、現在のブロックの初期テンプレートに対応する初期参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。この場合、参照ピクチャ内の中間参照テンプレートは、初期参照テンプレートにおける補間を使用して生成することができる。現在のブロックの現在のテンプレートに対応する参照テンプレートは、中間参照テンプレートおよびマスクに基づいて生成することができる。マスクの形状は、現在のブロックの現在のテンプレートに基づいて決定することができる。
【0157】
(S1530)において、決定されたMVに基づいて現在のブロックを符号化することができる。
【0158】
(S1540)において、現在のブロックの予測情報を符号化することができる。一例では、予測情報は、現在のブロックのためのTMモードを示す。一例では、予測情報は、TMモードで使用される初期MV(例えば、初期MV(902))を示す情報を含む。
【0159】
プロセス(1500)は、(S1599)に進み、終了する。
【0160】
プロセス(1500)は、様々なシナリオに適切に適合させることができ、それに応じてプロセス(1500)内のステップを調整することができる。プロセス(1500)内のステップのうちの1つまたは複数を、適合、省略、反復、および/または組み合わせることができる。プロセス(1500)を実施するために、任意の適切な順序を使用することができる。追加のステップを追加することができる。
【0161】
図16は、本開示の一実施形態による、復号プロセス(1600)を概説するフローチャートを示している。様々な実施形態において、プロセス(1600)は、端末デバイス(310)、(320)、(330)、および(340)内の処理回路、ビデオエンコーダ(403)の機能を実施する処理回路、ビデオデコーダ(410)の機能を実施する処理回路、ビデオデコーダ(510)の機能を実施する処理回路、ビデオエンコーダ(603)の機能を実施する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1600)は、ソフトウェア命令で実施され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1600)を実施する。プロセスは、(S1601)から始まり、(S1610)に進む。
【0162】
(S1610)において、現在のピクチャ内の現在のブロックの予測情報は、ビデオビットストリームから復号することができる。予測情報は、現在のブロックのためのテンプレートマッチング(TM)モードを示すことができる。
【0163】
(S1620)において、現在のブロックの初期テンプレート(または第1のテンプレート)内のサンプルが、イントラコーディングされたブロックに含まれているか否かを決定する。一例では、イントラコーディングされたブロックは、現在のブロックの空間隣接ブロックである。現在のブロックの初期テンプレート(例えば、テンプレート(921))は、現在のブロックの1つまたは複数の上部隣接ブロックのサンプル、および/または現在のブロックの1つまたは複数の左部隣接ブロックのサンプルを含むことができる。
【0164】
(S1630)において、一例では、初期テンプレート内のサンプルが、イントラコーディングされたブロックに含まれると決定された場合、現在のブロックの動きベクトル(MV)は、TMモードを適用せずに、現在のブロックの初期MVに基づいて決定することができる。例えば、
図11を参照すると、サブテンプレート(922(2))内のサンプルが、イントラコーディングされたブロックに含まれる場合、現在のブロック(例えば、現在のCU(901))のMVは、TMモードを適用せずに、現在のブロックの初期MV(902)に基づいて決定することができる。
【0165】
あるいは、(S1630)において、初期テンプレート内のサンプルが、イントラコーディングされたブロックに含まれると決定された場合、現在のブロックのMVは、
図11、
図12A、および
図12Bに記載されたように、現在のブロックの初期MVと、現在のテンプレート(または第2のテンプレート)と、に基づいて決定することができる。現在のテンプレートは、初期テンプレートに基づいて生成し、イントラコーディングされたブロックに含まれる初期テンプレート内のサンプルを省略することができる。
【0166】
一実施形態では、現在のブロックの初期テンプレートは、1つまたは複数の上部隣接ブロックのサンプルを含む初期上部テンプレートと、1つまたは複数の左部隣接ブロックのサンプルを含む初期左部テンプレートとを含む。現在のブロックの初期テンプレート内のサンプルは、イントラコーディングされたブロックに含まれると決定される。この場合、初期左部テンプレートの左部隣接ブロックが、イントラコーディングされたブロックを含まない場合、現在のブロックのMVは、初期MVと、初期左部テンプレートである現在のテンプレートと、に基づくTMモードを使用して決定することができる。現在のブロックの1つまたは複数の上部隣接ブロックが、イントラコーディングされたブロックを含まない場合、現在のブロックのMVは、初期MVと、初期上部テンプレートを含む現在のテンプレートと、に基づくTMモードを使用して決定することができる。
【0167】
一実施形態では、現在のブロックの初期テンプレート(例えば、(921))内のサンプルは、イントラコーディングされたブロックに含まれると決定される。この場合、現在のブロックのMVは、
図12A~
図12Bに記載されているように、初期MVと、現在のブロックの現在のテンプレート(例えば、(1221)または(1321))と、に基づくTMモードを使用して決定することができる。
【0168】
図14に記載されるような一例では、イントラコーディングされたブロックに含まれる初期テンプレート内のサンプルは、(i)1つまたは複数の左部隣接ブロックの1つまたは複数の左部サンプル、および/または、(ii)1つまたは複数の上部隣接ブロックの1つまたは複数の上部サンプルを含む。初期テンプレート内のサンプルが、1つまたは複数の左部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の左部隣接ブロックのサンプルに隣接する1つまたは複数の拡張左部サンプルを更に含むことができる。1つまたは複数の拡張左部サンプルは、現在のピクチャにおけるイントラコーディングされたブロックに含まれない。初期テンプレート内のサンプルが、1つまたは複数の上部サンプルを含む場合、現在のテンプレートは、現在のテンプレートに含まれる1つまたは複数の上部隣接ブロックのサンプルに隣接する1つまたは複数の拡張上部サンプルを更に含む。1つまたは複数の拡張上部サンプルは、現在のピクチャ内のイントラコーディングされたブロックに含まれない。現在のテンプレートのサンプル数は、初期テンプレートのサンプル数よりも多くすることができる。現在のテンプレートのサンプル数は、初期テンプレートのサンプル数の150%または200%とすることができる。
【0169】
一例では、補間されたサンプルは、現在のテンプレート内の1つまたは複数のサンプルに基づいて補間によって生成される。補間されたサンプルは、イントラコーディングされたブロックに含まれる初期テンプレート内のサンプルに対応(置換)することができる。現在のブロックの現在のテンプレートは、補間されたサンプルを更に含むことができる。
【0170】
一例では、現在のブロックの現在のテンプレートに対応する参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。この場合、参照テンプレートにおいて4タップ未満を有するフィルタによる補間を使用して、参照ピクチャ内の補間された参照テンプレートを生成することができる。現在のブロックのMVは、初期MVと、現在のブロックの現在のテンプレートと、補間された参照テンプレートと、に基づくTMモードを使用して決定することができる。
【0171】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照サンプルを省略する。参照ピクチャ内の省略された参照サンプルのうちの1つに対応する(置換する)パディングされたサンプルは、参照ピクチャ内の最も近い参照サンプルをコピーすることによって生成することができる。参照ピクチャ内の補間された参照テンプレートは、パディングされたサンプルに基づく補間によって生成することができる。
【0172】
一例では、参照ピクチャ内の参照テンプレートは、イントラコーディングされたブロックに含まれる現在のブロックの初期テンプレート内のサンプルに対応する参照サンプルを省略する。この場合、参照ピクチャ内の省略された参照サンプルに基づく補間によって、参照ピクチャ内の補間された参照テンプレートを生成することができる。
【0173】
一例では、現在のブロックの初期テンプレートに対応する初期参照テンプレート内の参照サンプルは、参照ピクチャ内のサブピクセル位置に配置される。参照ピクチャ内の中間参照テンプレートは、初期参照テンプレートにおける補間を使用して生成することができる。現在のブロックの現在のテンプレートに対応する参照テンプレートは、中間参照テンプレートおよびマスクに基づいて生成することができる。マスクの形状は、現在のブロックの現在のテンプレートに基づいて決定することができる。
【0174】
(S1640)において、決定されたMVに基づいて、現在のブロックを再構成することができる。
【0175】
プロセス(1600)は、(S1699)に進み、終了する。
【0176】
プロセス(1600)は、様々なシナリオに適切に適合させることができ、それに応じてプロセス(1600)内のステップを調整することができる。プロセス(1600)内のステップのうちの1つまたは複数を、適合、省略、繰り返し、および/または組み合わせることができる。プロセス(1600)を実施するために、任意の適切な順序を使用することができる。追加のステップを追加することができる。
【0177】
一実施形態では、現在のブロックの初期テンプレート(または第1のテンプレート)内の少なくとも1つのサンプルが、現在のブロックの空間隣接ブロックであるイントラコーディングされたブロックに含まれるか否かが決定される。現在のブロックの第1のテンプレートは、(1)現在のブロックの1つまたは複数の上部隣接ブロック、および(2)現在のブロックの1つまたは複数の左部隣接ブロック、のうちの1つまたは複数のサンプルを含むことができる。一例では、1つまたは複数の上部隣接ブロックは、上部隣接ブロックである。一例では、1つまたは複数の左部隣接ブロックは、左部隣接ブロックである。第1のテンプレート内の少なくとも1つのサンプルがイントラコーディングされたブロックに含まれるという決定に応答して、少なくとも1つのサンプルを第1のテンプレートから除外して、現在のブロックのための現在のテンプレート(または第2のテンプレート)を生成することができる。現在のブロックのMVは、現在のブロックのための第2のテンプレートに基づいて決定することができる。
【0178】
一例では、(i)第1のテンプレート内の少なくとも1つのサンプルがイントラコーディングされたブロックに含まれるという決定、および(ii)TMモードが現在のブロックに適用されていること、に応答して、少なくとも1つのサンプルは、第1のテンプレートから除外され、現在のブロックのための第2のテンプレートを生成することができる。
【0179】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。更に、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサ、または1つもしくは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0180】
上述された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実施され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図17は、本開示の主題の特定の実施形態を実施するために適したコンピュータシステム(1700)を示している。
【0181】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって直接的に、または解釈およびマイクロコードの実行などを通して実行され得る命令を含むコードを作成するために、アセンブリ、コンパイル、リンキング、または同様のメカニズムを受け得る任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ得る。
【0182】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーミングデバイス、およびモノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0183】
コンピュータシステム(1700)に関して
図17に示されている構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(1700)の例示的実施形態に示されている構成要素のいずれかまたは組合せに関する依存関係または要件を有すると解釈されるべきではない。
【0184】
コンピュータシステム(1700)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得するなど)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、必ずしも人間による意識的な入力に直接関連しない特定の媒体をキャプチャするためにも使用することができる。
【0185】
入力ヒューマンインターフェースデバイスは、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチスクリーン(1710)、データグローブ(図示せず)、ジョイスティック(1705)、マイクロフォン(1706)、スキャナ(1707)、カメラ(1708)のうち1つまたは複数(各々の1つのみ図示)を含んでもよい。
【0186】
コンピュータシステム(1700)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1710)、データグローブ(図示せず)、またはジョイスティック(1705)による触覚フィードバックが含まれることがあるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)と、オーディオ出力デバイス(スピーカ(1709)、ヘッドホン(図示せず)など)と、視覚出力デバイス(それぞれがタッチスクリーン入力機能の有無にかかわらず、それぞれが触覚フィードバック機能の有無にかかわらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1710)などであり、それらの一部は、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段を介して二次元視覚出力または三次元以上の出力が可能であり得る)と、プリンタ(図示せず)とを含んでもよい。
【0187】
コンピュータシステム(1700)は、CD/DVDなどの媒体(1721)を伴うCD/DVD ROM/RW(1720)を含む光媒体、サムドライブ(1722)、リムーバブルハードドライブまたはソリッドステートドライブ(1723)、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびその関連媒体を含むこともできる。
【0188】
また、当業者は、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0189】
コンピュータシステム(1700)はまた、1つまたは複数の通信ネットワーク(1755)へのインターフェース(1754)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性、などとすることができる。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両用および産業用などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1749)(例えば、コンピュータシステム(1700)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは一般に、以下に記載されるようにシステムバスへの接続によってコンピュータシステム(1700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1700)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、または双方向、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムとの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明されたように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0190】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム(1700)のコア(1740)に取り付けることができる。
【0191】
コア(1740)は、1つまたは複数の中央処理装置(CPU)(1741)、グラフィックス処理装置(GPU)(1742)、フィールドプログラマブルゲートエリア(FPGA)(1743)の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1744)、グラフィックスアダプタ(1750)などを含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)(1745)、ランダムアクセスメモリ(1746)、ユーザがアクセスすることができない内部ハードドライブ、SSDなどの内部大容量記憶装置(1747)と共に、システムバス(1748)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1748)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセスすることができる。周辺デバイスを、コアのシステムバス(1748)に直接取り付けることも、周辺バス(1749)を介して取り付けることもできる。一例では、スクリーン(1710)をグラフィックスアダプタ(1750)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0192】
CPU(1741)、GPU(1742)、FPGA(1743)、およびアクセラレータ(1744)は、組み合わせて上記のコンピュータコードを形成し得る特定の命令を実行することができる。そのコンピュータコードを、ROM(1745)またはRAM(1746)に記憶することができる。移行データもRAM(1746)に記憶することができるが、永続データは、例えば、内部大容量記憶装置(1747)に記憶することができる。1つまたは複数のCPU(1741)、GPU(1742)、大容量記憶装置(1747)、ROM(1745)、RAM(1746)などと密接に関連付けることができるキャッシュメモリの使用によって、メモリデバイスのいずれかへの高速記憶および読み出しを可能にする。
【0193】
コンピュータ可読媒体は、様々なコンピュータ実施動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはこれらは、コンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0194】
限定ではなく、例として、アーキテクチャ(1700)、特にコア(1740)を有するコンピュータシステムは、1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したようにユーザがアクセス可能な大容量記憶装置のほか、コア内部大容量記憶装置(1747)またはROM(1745)などの非一時的性質のコア(1740)の特定の記憶装置にも関連する媒体であり得る。本開示の様々な実施形態を実施するソフトウェアをこのようなデバイスに記憶して、コア(1740)によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアによって、コア(1740)、特にコア(1740)内のプロセッサ(CPU、GPU、FPGAなどを含む)は、RAM(1746)に記憶されるデータ構造を定義することと、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することとを含む、本明細書に記載の特定の処理、または特定の処理の特定の部分を実行することができる。加えて、または代替として、コンピュータシステムは、本明細書に記載の特定の処理、または特定の処理の特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと共に動作し得る回路(例えば、アクセラレータ(1744))に配線された、またはそうでなければ具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの言及は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:グローバル移動体通信システム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
R-D:レート歪み
【0195】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内にある修正例、置換例、および様々な代替均等例がある。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0196】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
201 現在のブロック
202 周囲のサンプル
203 周囲のサンプル
204 周囲のサンプル
205 周囲のサンプル
206 周囲のサンプル
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 インターデコーダ
900 テンプレートマッチング
901 現在のコーディングユニット(CU)
902 初期動きベクトル(MV)
903 参照ブロック
910 現在のピクチャ
911 参照ピクチャ
915 探索範囲
921 テンプレート
922 上部テンプレート
922(1) サブテンプレート
922(2) サブテンプレート
922(3) サブテンプレート
923(1) サブテンプレート
923(2) サブテンプレート
923(3) サブテンプレート
923 左部テンプレート
925 テンプレート
926 上部テンプレート
926(1) サブテンプレート
926(2) サブテンプレート
926(3) サブテンプレート
927 左部テンプレート
927(1) サブテンプレート
927(2) サブテンプレート
927(3) サブテンプレート
1000 テンプレートマッチング(TM)
1001 現在のブロック
1021 テンプレート
1025 参照テンプレート
1100 テンプレートマッチング
1200A TM
1200B TM
1221 現在のテンプレート
1222 上部テンプレート
1223 左部テンプレート
1225 参照テンプレート
1226 上部テンプレート
1227 左部テンプレート
1300 プロセス
1321 現在のテンプレート
1325 参照テンプレート
1400 TM
1415 マスク
1415(1) 領域
1415(2) 領域
1415(3) 領域
1415(4) 領域
1415(5) 領域
1415(6) 領域
1421 現在のテンプレート
1425 中間参照テンプレート
1425(1) サブテンプレート
1425(2) サブテンプレート
1425(3) サブテンプレート
1425(4) サブテンプレート
1425(5) サブテンプレート
1425(6) サブテンプレート
1435 参照テンプレート
1435(a) サブテンプレート
1435(b) サブテンプレート
1500 プロセス
1700 コンピュータシステム
1701 キーボード
1702 マウス
1703 トラックパッド
1705 ジョイスティック
1706 マイクロフォン
1707 スキャナ
1708 カメラ
1709 スピーカ
1710 タッチスクリーン
1720 CD/DVD ROM/RW
1721 媒体
1722 サムドライブ
1723 ソリッドステートドライブ
1740 コア
1741 中央処理装置(CPU)
1742 グラフィックス処理装置(GPU)
1743 フィールドプログラマブルゲートエリア(FPGA)
1744 ハードウェアアクセラレータ
1745 読み取り専用メモリ(ROM)
1746 ランダムアクセスメモリ(RAM)
1747 内部大容量記憶装置
1748 システムバス
1749 汎用データポートまたは周辺バス
1750 グラフィックスアダプタ
1754 インターフェース
1755 通信ネットワーク
【国際調査報告】