(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-21
(54)【発明の名称】境界外条件のための双予測に対するサブブロックベースの制約
(51)【国際特許分類】
H04N 19/105 20140101AFI20250214BHJP
H04N 19/167 20140101ALI20250214BHJP
H04N 19/174 20140101ALI20250214BHJP
【FI】
H04N19/105
H04N19/167
H04N19/174
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560904
(86)(22)【出願日】2022-11-11
(85)【翻訳文提出日】2023-10-02
(86)【国際出願番号】 US2022079760
(87)【国際公開番号】W WO2023149971
(87)【国際公開日】2023-08-10
(32)【優先日】2022-02-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-11-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】グイチュン・リ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】リェン-フェイ・チェン
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA30
5C159TB06
5C159TC31
(57)【要約】
(i)第1の参照ピクチャ内の第1のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置している、および(ii)第2の参照ピクチャ内の第1のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えて位置している、の一方であるかどうかが決定される。(i)第1の参照ピクチャ内の第1のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えており、かつ(ii)第2の参照ピクチャ内の第1のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置していることに応答して、現在のブロックの第1のサブブロックは、第1のサブブロックが第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように単予測モードに基づいて再構成される。
【特許請求の範囲】
【請求項1】
デコーダにおいて行われるデコーディングの方法であって、前記方法は、
コーディングされたビデオビットストリームから現在のピクチャ内の現在のブロックの複数のサブブロックのコーディングされた情報を受信するステップと、
前記コーディングされたビデオビットストリームから前記現在のピクチャ内の前記現在のブロックと関連付けられた予測モードを指示する構文要素を取得するステップであって、前記予測モードが単予測モードおよび双予測モードの一方である、ステップと、
前記双予測モードが前記複数のサブブロックのうちの第1のサブブロックに適用されると決定するステップであって、前記第1のサブブロックが、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて予測される、ステップと、
前記双予測モードが前記複数のサブブロックのうちの前記第1のサブブロックに適用されていることに応答して、(i)前記第1の参照サブブロックの境界が前記第1の参照ピクチャの境界を越えて位置しており、かつ(ii)前記第2の参照サブブロックの境界が前記第2の参照ピクチャの境界内に位置しているかどうかを決定するステップと、
(i)前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を越えて位置しており、かつ(ii)前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界内に位置していることに応答して、前記現在のブロックの前記第1のサブブロックを、前記第1のサブブロックが前記第2の参照ピクチャの前記第2の参照サブブロックに基づいて再構成されるように前記単予測モードに基づいて再構成するステップとを含む、方法。
【請求項2】
前記双予測モードが前記第1のサブブロックに適用されると決定する前記ステップは、
前記双予測モードが、(i)前記コーディングされた情報に含まれるシグナリング情報、(ii)前記現在のブロックに適用されている非マージインター予測モード、および(iii)前記現在のブロックに適用されているマージモード、のうちの1つに基づいて前記第1のサブブロックに適用されると決定するステップをさらに含む、請求項1に記載の方法。
【請求項3】
(i)前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を越えて位置しており、かつ(ii)前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界内に位置しているかどうかを決定する前記ステップは、
前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を閾値だけ越えて位置しているかどうかを決定するステップを含む、請求項1に記載の方法。
【請求項4】
前記第1のサブブロックのサイズは、前記現在のブロックに適用されているインター予測モードに基づく4×4ルーマサンプルおよび8×8ルーマサンプルの一方である、請求項1に記載の方法。
【請求項5】
前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を越えており、前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界を越えていることに応答して、前記現在のブロックの前記第1のサブブロックを、前記第1の参照ピクチャ内の前記第1の参照サブブロックおよび前記第2の参照ピクチャ内の前記第2の参照サブブロックに基づいて再構成するステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
前記第1のサブブロックのサイズは、
前記現在のブロックに適用されているアフィンインター予測モードに基づくアフィンサブブロックサイズ、
前記現在のブロックに適用されているサブブロックベースの時間動きベクトル予測(SbTMVP)モードに基づくSbTMVPサブブロックサイズ、および
前記現在のブロックに適用されている幾何学的分割モード(GPM)モードに基づくGPMサブブロックサイズのうちの1つに等しい、請求項1に記載の方法。
【請求項7】
(i)前記第1のサブブロックが、前記現在のブロックの幾何学的分割境界を中心とするブレンディングエリア内に位置しており、かつ(ii)前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を超えていることに応答して、前記第1のサブブロックを、前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界内に位置している前記第2の参照サブブロックに基づいて再構成するステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
前記第1のサブブロックが前記単予測モードによって予測されていることに応答して、前記第1のサブブロックのために前記単予測モードの単予測動き情報を記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
前記第1のサブブロックの少なくとも1つのピクセルが前記単予測モードによって予測されていることに応答して、前記第1のサブブロックのために前記単予測モードの単予測動き情報を記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項10】
前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を超えていること、または前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界を超えていることの少なくとも一方に応答して、デコーダ側動きベクトル精度向上(DMVR)モード、双方向オプティカルフロー(BDOF)モード、およびコーディングユニットレベルの重みによる双予測(BCW)モードのうちの1つを、前記現在のブロックの前記第1のサブブロックに対して除外するステップ
をさらに含む、請求項1に記載の方法。
【請求項11】
前記第1の参照ピクチャ内の前記第1の参照サブブロックに基づく第1の予測サブブロックおよび前記第2の参照ピクチャ内の前記第2の参照サブブロックに基づく第2の予測サブブロックを決定するために、前記第1のサブブロックに対してデコーダ側動きベクトル精度向上(DMVR)を行うステップと、
前記第1のサブブロックのために、前記第1のサブブロックが前記第1の参照ピクチャ内の前記第1の予測サブブロックおよび前記第2の参照ピクチャ内の前記第2の予測サブブロックに基づいて予測されることを指示する双予測動き情報を記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項12】
コーディングされたビデオビットストリームから現在のピクチャ内の現在のブロックの複数のサブブロックのコーディングされた情報を受信し、
前記コーディングされたビデオビットストリームから前記現在のピクチャ内の前記現在のブロックと関連付けられた予測モードを指示する構文要素を取得し、前記予測モードが単予測モードおよび双予測モードの一方であり、
前記双予測モードが前記複数のサブブロックのうちの第1のサブブロックに適用されると決定し、前記第1のサブブロックが、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて予測され、
前記双予測モードが前記複数のサブブロックのうちの前記第1のサブブロックに適用されていることに応答して、(i)前記第1の参照サブブロックの境界が前記第1の参照ピクチャの境界を越えて位置しており、かつ(ii)前記第2の参照サブブロックの境界が前記第2の参照ピクチャの境界内に位置しているかどうかを決定し、
(i)前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を越えて位置しており、かつ(ii)前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界内に位置していることに応答して、前記現在のブロックの前記第1のサブブロックを、前記第1のサブブロックが前記第2の参照ピクチャの前記第2の参照サブブロックに基づいて再構成されるように前記単予測モードに基づいて再構成する
ように構成された処理回路
を含む、装置。
【請求項13】
前記処理回路は、
前記双予測モードが、(i)前記コーディングされた情報に含まれるシグナリング情報、(ii)前記現在のブロックに適用されている非マージインター予測モード、および(iii)前記現在のブロックに適用されているマージモード、のうちの1つに基づいて前記第1のサブブロックに適用されると決定するように構成される、請求項12に記載の装置。
【請求項14】
前記処理回路は、
前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を閾値だけ越えて位置しているかどうかを決定するように構成される、請求項12に記載の装置。
【請求項15】
前記第1のサブブロックのサイズは、前記現在のブロックに適用されているインター予測モードに基づく4×4ルーマサンプルおよび8×8ルーマサンプルの一方である、請求項12に記載の装置。
【請求項16】
前記処理回路は、
前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を越えており、前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界を越えていることに応答して、前記現在のブロックの前記第1のサブブロックを、前記第1の参照ピクチャ内の前記第1の参照サブブロックおよび前記第2の参照ピクチャ内の前記第2の参照サブブロックに基づいて再構成するように構成される、請求項12に記載の装置。
【請求項17】
前記第1のサブブロックのサイズは、
前記現在のブロックに適用されているアフィンインター予測モードに基づくアフィンサブブロックサイズ、
前記現在のブロックに適用されているサブブロックベースの時間動きベクトル予測(SbTMVP)モードに基づくSbTMVPサブブロックサイズ、および
前記現在のブロックに適用されている幾何学的分割モード(GPM)モードに基づくGPMサブブロックサイズのうちの1つに等しい、請求項12に記載の装置。
【請求項18】
前記処理回路は、
(i)前記第1のサブブロックが、前記現在のブロックの幾何学的分割境界を中心とするブレンディングエリア内に位置しており、かつ(ii)前記第1の参照サブブロックの前記境界が前記第1の参照ピクチャの前記境界を超えていることに応答して、前記第1のサブブロックを、前記第2の参照サブブロックの前記境界が前記第2の参照ピクチャの前記境界内に位置している前記第2の参照サブブロックに基づいて再構成するように構成される、請求項12に記載の装置。
【請求項19】
前記処理回路は、
前記第1のサブブロックが前記単予測モードによって予測されていることに応答して、前記第1のサブブロックのために前記単予測モードの単予測動き情報を記憶するように構成される、請求項12に記載の装置。
【請求項20】
前記処理回路は、
前記第1のサブブロックの少なくとも1つのピクセルが前記単予測モードによって予測されていることに応答して、前記第1のサブブロックのために前記単予測モードの単予測動き情報を記憶するように構成される、請求項12に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2022年2月7日に出願された米国仮出願第63/307,536号、「Sub-block based Constraint on Bi-Prediction for Out-Of-Boundary Conditions」の優先権の利益を主張する、2022年11月9日に出願された米国特許出願第17/983,879号、「SUB-BLOCK BASED CONSTRAINT ON BI-PREDICTION FOR OUT-OF-BOUNDARY CONDITIONS」の優先権の利益を主張する。先行出願の開示は、その全体が参照により本明細書に組み込まれる。
【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)が水平方向から45度の角度で、1つまたは複数のサンプルから右上へ予測されることを指示している。同様に、矢印(103)は、サンプル(101)が水平方向から22.5度の角度で、1つまたは複数のサンプルからサンプル(101)の左下へ予測されることを指示している。
【0012】
さらに
図1Aを参照すると、左上には、(太い破線によって指示された)4×4サンプルの正方形ブロック(104)が図示されている。正方形ブロック(104)は16個のサンプルを含み、「S」、その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勧告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】
本開示の態様は、ビデオエンコーディング/デコーディングのための方法および装置を提供する。いくつかの例では、ビデオデコーディングのための装置は処理回路を含む。
【0023】
本開示の一態様によれば、ビデオデコーダにおいて行われるビデオデコーディングの方法が提供される。方法では、現在のピクチャ内の現在のブロックの複数のサブブロックのコーディングされた情報が、コーディングされたビデオビットストリームから受信されることができる。現在のピクチャ内の現在のブロックと関連付けられた予測モードを指示する構文要素が、コーディングされたビデオビットストリームから取得されることができ、予測モードは単予測モードおよび双予測モードの一方でありうる。双予測モードが複数のサブブロックのうちの第1のサブブロックに適用されると決定されることができ、第1のサブブロックは、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて予測される。双予測モードが複数のサブブロックのうちの第1のサブブロックに適用されていることに応答して、(i)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、かつ(ii)第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置しているかどうかが決定されることができる。(i)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、かつ(ii)第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置していることに応答して、現在のブロックの第1のサブブロックは、第1のサブブロックが第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように単予測モードに基づいて再構成されることができる。
【0024】
双予測モードは、(i)コーディングされた情報に含まれるシグナリング情報、(ii)現在のブロックに適用されている非マージインター予測モード、および(iii)現在のブロックに適用されているマージモード、のうちの1つに基づいて第1のサブブロックに適用されると決定されることができる。
【0025】
一実施形態では、第1の参照サブブロックの境界が第1の参照ピクチャの境界を閾値だけ越えて位置しているかどうかが決定されることができる。
【0026】
第1のサブブロックのサイズは、現在のブロックに適用されているインター予測モードに基づいて、4×4ルーマサンプルおよび8×8ルーマサンプルの一方でありうる。
【0027】
第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えており、第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えていることに応答して、現在のブロックの第1のサブブロックは、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて再構成されることができる。
【0028】
第1のサブブロックのサイズは、(i)現在のブロックに適用されているアフィンインター予測モードに基づくアフィンサブブロックサイズ、(ii)現在のブロックに適用されているサブブロックベースの時間動きベクトル予測(SbTMVP)モードに基づくSbTMVPサブブロックサイズ、および(iii)現在のブロックに適用されている幾何学的分割モード(GPM)モードに基づくGPMサブブロックサイズ、のうちの1つに等しくすることができる。
【0029】
(i)第1のサブブロックが現在のブロックの幾何学的分割境界を中心とするブレンディングエリア内に位置しており、かつ(ii)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えていることに応答して、第1のサブブロックは、第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置している第2の参照サブブロックに基づいて再構成されることができる。
【0030】
第1のサブブロックが単予測モードによって予測されていることに応答して、第1のサブブロックのために単予測モードの単予測動き情報が記憶されることができる。
【0031】
第1のサブブロックの少なくとも1つのピクセルが単予測モードによって予測されていることに応答して、第1のサブブロックのために単予測モードの単予測動き情報が記憶されることができる。
【0032】
いくつかの実施形態では、デコーダ側動きベクトル精度向上(DMVR)モード、双方向オプティカルフロー(BDOF)モード、およびコーディングユニットレベルの重みによる双予測(BCW)モード、のうちの1つが、第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えていること、または第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えていることの少なくとも一方に応答して、現在のブロックの第1のサブブロックに対して除外されることができる。
【0033】
いくつかの実施形態では、第1の参照ピクチャ内の第1の参照サブブロックに基づく第1の予測サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づく第2の予測サブブロックを決定するために、第1のサブブロックに対してDMVRが行われることができる。第1のサブブロックが第1の参照ピクチャ内の第1の予測サブブロックおよび第2の参照ピクチャ内の第2の予測サブブロックに基づいて予測されることを指示する双予測動き情報が、第1のサブブロックのために記憶されることができる。
【0034】
本開示の別の態様によれば、装置が提供される。装置は、処理回路を含む。処理回路は、ビデオエンコーディング/デコーディングのための方法のいずれかを行うように構成されることができる。
【0035】
本開示の態様はまた、ビデオデコーディングのためにコンピュータによって実行されたときに、コンピュータに、ビデオエンコーディング/デコーディングのための方法のいずれかを行わせる命令を記憶している非一時的コンピュータ可読媒体も提供する。
【0036】
開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0037】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】一例における現在のブロックおよびその周囲の空間マージ候補の概略図である。
【
図3】一実施形態による通信システム(300)の簡略ブロック図の概略図である。
【
図4】一実施形態による通信システム(400)の簡略ブロック図の概略図である。
【
図5】一実施形態によるデコーダの簡略ブロック図の概略図である。
【
図6】一実施形態によるエンコーダの簡略ブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図を示す。
【
図8】別の実施形態によるデコーダのブロック図を示す。
【
図10】空間マージ候補の例示的な冗長検査を示す。
【
図11】時間マージ候補のための動きベクトルスケーリングの一例の概略図を示す。
【
図12】時間マージ候補のための例示的な候補位置を示す。
【
図13A】4パラメータアフィンモデルの概略図を示す。
【
図13B】6パラメータアフィンモデルの概略図を示す。
【
図14】ブロック内のサブブロックと関連付けられた例示的なアフィン動きベクトルフィールドの概略図を示す。
【
図15】空間マージ候補の例示的な位置の概略図を示す。
【
図16】制御点動きベクトル継承の一例の概略図を示す。
【
図17】アフィンマージモードを構成するための候補の例示的な位置の概略図を示す。
【
図18】オプティカルフローを用いた予測精度向上(PROF)の一例の概略図を示す。
【
図19】サブブロックベースの時間動きベクトル予測(SbTMVP)のための例示的な空間的近傍ブロックの概略図を示す。
【
図20】例示的なSbTMVPプロセスの概略図を示す。
【
図21】双方向オプティカルフロー(BDOF)のための例示的な拡大コーディングユニット(CU)領域の概略図を示す。
【
図22】デコーディング側動きベクトル精度向上の一例の概略図を示す。
【
図23】同一の角度によってグループ化された幾何学的分割モード(GPM)分割の例を示す。
【
図24】GPMの例示的な単予測動きベクトル(MV)の選択を示す。
【
図26】VVCにおける適応動きベクトル解像度(AMVR)の例示的な仕様を示す。
【
図27】例示的なサブブロックレベルの双予測制約を示す。
【
図28】本開示のいくつかの実施形態による例示的なデコーディングプロセスを説明するフローチャートを示す。
【
図29】本開示のいくつかの実施形態による例示的なエンコーディングプロセスを説明するフローチャートを示す。
【
図30】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0038】
図3は、通信システム(300)の例示的なブロック図を例示している。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。
図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向伝送を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するためにビデオデータ(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリーム)をコーディングしうる。エンコーディングされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形式で送信されることができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示しうる。単方向データ伝送は、メディアサービング用途などにおいて一般的でありうる。
【0039】
別の例では、通信システム(300)は、例えばビデオ会議中のコーディングされたビデオデータの双方向伝送を行う端末デバイス(330)および(340)の第2のペアを含む。データの双方向伝送の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するためにビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)をコーディングしうる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってアクセス可能な表示デバイスでビデオピクチャを表示しうる。
【0040】
図3の例では、端末デバイス(310)、(320)、(330)および(340)は、サーバ、パーソナルコンピュータおよびスマートフォンとしてそれぞれ例示されているが、本開示の原理はそのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用のビデオ会議機器と共に適用される。ネットワーク(350)は、例えば、有線(有線接続)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換しうる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットを含む。本考察の目的では、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0041】
図4は、開示の主題についての用途の一例として、ストリーミング環境内のビデオエンコーダおよびビデオデコーダを例示している。開示の主題は、例えば、ビデオ会議、デジタルテレビ、ストリーミングサービス、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む他のビデオ対応用途に等しく適用可能でありうる。
【0042】
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えば、デジタルカメラを含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム(402)は、エンコーディングされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較した場合の高データ量を強調するために太線として図示されており、ビデオソース(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)から受信されてもよく、チャネル(501)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)はエンコーディングされたビデオデータを、それぞれの使用エンティティ(図示せず)に転送されうる他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリームと共に受信しうる。受信機(531)は、コーディングされたビデオシーケンスをその他のデータから分離しうる。ネットワークジッタに対抗するために、受信機(531)とエントロピーデコーダ/パーサ(520)(以降「パーサ(520)」)との間にバッファメモリ(515)が結合されてもよい。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の用途では、バッファメモリ(515)はビデオデコーダ(510)の外部にあることができる(図示せず)。さらに他の用途では、例えば、ネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があり、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に追加で別のバッファメモリ(515)があることも可能である。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要な場合があり、または小さくすることができる。インターネットなどのベストエフォート型パケットネットワークでの使用の場合、バッファメモリ(515)は必要な場合があり、比較的大きくすることができ、適応サイズのものであることが有利である可能性があり、オペレーティングシステムまたはビデオデコーダ(510)の外部の同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0046】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、
図5に示されるように、潜在的に、電子デバイス(530)の不可欠な部分ではないが、電子デバイス(530)に結合されることができるレンダリングデバイス(512)(例えば表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。(1つまたは複数の)レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、受信されるコーディングされたビデオシーケンスをパース/エントロピーデコーディングしうる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性ありまたはなしの算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出しうる。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報も抽出しうる。
【0047】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコーディング/パース動作を行いうる。
【0048】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なるユニットを必要としうる。どのユニットがどのように関与するかは、パーサ(520)によってコーディングされたビデオシーケンスからパースされたサブグループ制御情報によって制御されることができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。
【0049】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下で説明されるように、概念的にいくつかの機能ユニットに細分されることができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くが互いに密接に相互作用し、少なくとも部分的に、互いに統合されることができる。ただし、開示の主題を説明する目的には、以下の機能ユニットへの概念的細分が適切である。
【0050】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信する。スケーラ/逆変換ユニット(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勧告H.265などの所定のビデオ圧縮技術または規格に従ってデコーディング動作を行いうる。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠しうる。具体的には、プロファイルは、ビデオ圧縮技術または規格において利用可能なすべてのツールから、そのプロファイルの下で利用可能な限られたツールとして特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルによって定義された範囲内にあることも、コンプライアンスのために必要でありうる。場合によっては、レベルが、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル単位で測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される限界は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理のためのメタデータによってさらに制限されうる。
【0057】
一実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信しうる。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれる場合がある。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコーディングするために、かつ/または元のビデオデータをより正確に再構成するために使用されうる。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であることができる。
【0058】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば送信回路)を含む。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用されることができる。
【0059】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像を取り込みうる(
図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信しうる。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0060】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCb、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のものでありうるデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを提供しうる。メディアサービングシステムでは、ビデオソース(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)は、入力ピクチャのピクセルブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択されうる(1つまたは複数の)参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0066】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャのコーディングされたビデオデータをデコーディングしうる。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであってもよい。コーディングされたビデオデータがビデオデコーダ(
図6には図示せず)でデコーディングされうる場合、再構成されたビデオシーケンスは、典型的には、いくつかの誤差を伴うソースビデオシーケンスの複製でありうる。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって行われうるデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャメモリ(634)に記憶させうる。このようにして、ビデオエンコーダ(603)は、(送信誤差なしで)遠端ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶しうる。
【0067】
予測器(635)は、コーディングエンジン(632)の予測探索を行いうる。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、新しいピクチャの適切な予測参照として機能しうる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などといった特定のメタデータを求めて、参照ピクチャメモリ(634)を探索しうる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとサンプルブロックごとに動作しうる。場合によっては、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから選び出された予測参照を有しうる。
【0068】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理しうる。
【0069】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを施されうる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ってシンボルに可逆圧縮を適用することによって、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0070】
送信機(640)は、エントロピーコーダ(645)によって作成された(1つまたは複数の)コーディングされたビデオシーケンスをバッファリングして通信チャネル(660)を介した伝送に備えてもよく、通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージしうる。
【0071】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理しうる。コントローラ(650)は、コーディング中に、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、ピクチャタイプは、それぞれのピクチャに適用されうるコーディング技術に影響を及ぼす場合がある。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられうる。
【0072】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のピクチャを予測のソースとして使用せずにコーディングおよびデコーディングされうるピクチャでありうる。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0073】
予測ピクチャ(Pピクチャ)は、最大でも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。
【0074】
双方向予測ピクチャ(Bピクチャ)は、最大でも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するイントラ予測またはインター予測を使用してコーディングおよびデコーディングされうるピクチャでありうる。同様に、複数予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャおよび関連付けられたメタデータを使用することができる。
【0075】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4サンプル、8×8サンプル、4×8サンプル、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされうる。ブロックは、ブロックのそれぞれのピクチャに適用されたコーディング割り当てによって決定されるように他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、同じピクチャのすでにコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測を介するかまたは時間予測を介して、予測的にコーディングされうる。
【0076】
ビデオエンコーダ(603)は、ITU-T勧告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は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ピクセルなどといったピクセルの値(例えばルーマ値)の行列を含む。
【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)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択させ、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択させてイントラ予測情報をビットストリームに含めさせ、モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択させ、エントロピーエンコーダ(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)は、コーディングされたピクチャから、コーディングされたピクチャが構成されている構文要素を表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは他のサブモードのインターモードおよび双予測モードなど)、ならびにイントラデコーダ(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】
本開示は、MVが参照ピクチャ境界の外側を指し示す場合に双予測(例えば、AMVPモードでの双予測)を無効化、すなわち禁止するためのサブブロックレベルでのMV制約に関連する実施形態を含む。マージモードの場合、マージ候補からのマージMVもまた、双予測モードに対してサブブロックレベルで制約されることができる。
【0099】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013(バージョン1)、2014(バージョン2)、2015(バージョン3)、および2016(バージョン4)において、H.265/HEVC(High Efficiency Video Coding)規格を公開した。2015年に、これら2つの標準化団体は、HEVCを超える次のビデオコーディング規格を開発する可能性を探るために、JVET(共同ビデオ研究チーム(Joint Video Exploration Team))を共同で結成した。2017年10月に、これら2つの標準化団体は、HEVCを超える能力を有するビデオ圧縮に関する共同提案募集(Joint Call for Proposals on Video Compression with Capability beyond HEVC)(CfP)を実施した。2018年2月15日までに、標準ダイナミックレンジ(SDR)に関する22のCfP回答、ハイダイナミックレンジ(HDR)に関する12のCfP回答、360のビデオカテゴリに関する12のCfP回答がそれぞれ提出された。2018年4月に、受け取られたすべてのCfP回答が122 MPEG/10th JVET会議で評価された。会議の結果として、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。この新たな規格は、多用途ビデオコーディング(VVC)と名付けられ、JVETは、共同ビデオエキスパートチーム(Joint Video Experts Team)と改称された。2020年に、ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、VVCビデオコーディング規格(バージョン1)を公開した。
【0100】
インター予測では、インター予測されるコーディングユニット(CU)ごとに、例えばインター予測されるサンプル生成に使用されるべきVVCの特徴をコーディングするために動きパラメータが必要とされる。動きパラメータは、動きベクトル、参照ピクチャインデックス、参照ピクチャリスト使用インデックス、および/または追加情報を含むことができる。動きパラメータは、明示的または暗黙的にシグナリングされることができる。CUがスキップモードでコーディングされる場合、CUは1つのPUと関連付けられることができ、有意残差係数、コーディングされた動きベクトルデルタ、および/または参照ピクチャインデックスは必要とされない場合がある。CUがマージモードでコーディングされる場合、CUの動きパラメータは、近傍CUから取得されることができる。近傍CUは、空間的候補および時間的候補、ならびにVVCで導入されるような追加のスケジュール(または追加の候補)を含むことができる。マージモードは、スキップモードに対してだけでなく、任意のインター予測されるCUに適用されることができる。マージモードの代替案は動きパラメータの明示的な送信であり、動きベクトル、各参照ピクチャリストの対応する参照ピクチャインデックス、参照ピクチャリスト使用フラグ、および/または他の必要な情報は、CUごとに明示的にシグナリングされることができる。
【0101】
VVCでは、VVCテストモデル(VTM)参照ソフトウェアは、いくつかの新しい改良されたインター予測コーディングツールを含むことができ、それらは以下のうちの1つまたは複数を含むことができる。
(1)拡張マージ予測
(2)マージ動きベクトル差分(MMVD)
(3)対称MVDシグナリングを用いたAMVPモード
(4)アフィン動き補償予測
(5)サブブロックベースの時間動きベクトル予測(SbTMVP)
(6)適応動きベクトル解像度(AMVR)
(7)動き場記憶:1/16ルーマサンプルMV記憶および8×8動き場圧縮
(8)CUレベルの重みによる双予測(BCW)
(9)双方向オプティカルフロー(BDOF)
(10)デコーダ側動きベクトル精度向上(DMVR)
(11)インター予測とイントラ予測の組み合わせ(CIIP)
(12)幾何学的分割モード(GPM)
【0102】
マージ候補リストは、VTM4のように、5つのタイプの候補を含めることによって構成されることができる。マージ候補リストは、以下の順序で構成されることができる。
1)空間的近傍CUからの空間的MVP、
2)並置CUからの時間的MVP、
3)FIFOテーブルからの履歴ベースのMVP、
4)ペアワイズ平均MVP、および
5)ゼロMV。
【0103】
マージリストのサイズは、スライスヘッダでシグナリングされることができる。マージリストの最大許容サイズは、VTM4のように、6とすることができる。マージモードでコーディングされたCUごとに、最良マージ候補のインデックスが、例えば切り捨て単項2値化を使用してエンコーディングされることができる。マージインデックスの第1のビンはコンテキストでコーディングされることができ、他のビンにはバイパスコーディングが使用されることができる。
【0104】
空間候補導出では、例えばVVCにおいて、空間マージ候補の導出は、HEVCにおける空間マージ候補の導出と同じかまたは同様とすることができる。最大数のマージ候補(例えば、4つのマージ候補)が、例えば、
図9に例示された位置に位置する選択の中で選択されることができる。
図9に示されるように、現在のブロック(901)は、それぞれ、位置A
0、A
1、B
0、B
1、およびB
2に位置する近傍ブロック(902)~(906)を含むことができる。空間マージ候補の導出順序は、B
1、A
1、B
0、A
0、およびB
2とすることができる。位置B
2は、位置A
0、B
0、B
1、またはA
1にあるいずれのCU(もしくはブロック)も(例えば、CUが別のスライスもしくはタイルに属するために)利用可能ではないか、またはイントラコーディングされる場合にのみ考慮されうる。位置A
1の候補(またはブロック)が追加された後、残りの候補(またはブロック)の追加は冗長検査の対象となりうる。冗長検査は、コーディング効率が改善されるように同じ動き情報を有する候補がマージリストから除外されることを保証することができる。計算の複雑さを低減するために、冗長検査は、すべての可能な候補ペアを考慮しなくてもよい。代わりに、
図10の矢印でつながれた候補ペアのみが考慮されてもよい。例えば、冗長検査は、A1とB1の候補ペア、A1とA0の候補ペアなど、5つの候補ペアに適用されることができる。候補は、冗長検査に使用される対応する候補が同じ動き情報を含まない場合にのみマージリストに追加されうる。例えば、候補B0は、対応する候補B1が同じ動き情報を含まない場合にのみマージリストに追加されうる。
【0105】
時間的候補導出では、1つの候補のみがマージリストに追加されうる。例えば、
図11に示されるように、現在のCU(1114)の時間マージ候補の導出では、並置参照ピクチャ(1112)に属する並置CU(1104)に基づいてスケーリングされた動きベクトルが導出されることができる。並置CU(1104)の導出に使用される参照ピクチャリストは、スライスヘッダで明示的にシグナリングされることができる。時間マージ候補のスケーリングされた動きベクトルは、
図11の点線(1102)によって例示されるように取得されることができ、これは、ピクチャ順序カウント(POC)距離tbおよびtdを使用して、並置CU(1104)の動きベクトルからスケーリングされる。tbは、現在のピクチャの参照ピクチャ(例えばCurr_ref)(1106)と現在のピクチャ(例えば、Curr_pic)(1108)との間のPOC差分と定義されることができる。tdは、並置ピクチャの参照ピクチャ(例えばCol_ref)(1110)と並置ピクチャ(例えば、Col_pic)(1112)との間のPOC差分として定義されることができる。時間マージ候補の参照ピクチャインデックスは0に等しく設定されることができる。
【0106】
時間的候補の位置は、
図12に示されるように、候補C
0と候補C
1との間で選択されることができる。例えば、位置C
0にあるCUが利用できないか、イントラコーディングされるか、またはCTUの現在の行の外側にある場合、位置C
1が使用されることができる。それ以外の場合、位置C
0は時間マージ候補の導出に使用されることができる。
【0107】
HEVCでは、並進運動モデルが、動き補償予測(MCP)に適用される。現実世界では、ズームイン/アウト、回転、遠近法の動き、および他の不規則な動きなど、多くの種類の動きが存在しうる。VTMなどでは、ブロックベースのアフィン変換動き補償予測が適用されることができる。
図13Aは、2つの制御点動き情報(4パラメータ)によって記述されるブロック(1302)のアフィン動き場を示している。
図13Bは、3つの制御点動きベクトル(6パラメータ)によって記述されるブロック(1304)のアフィン動き場を示している。
【0108】
図13Aに示されるように、4パラメータアフィン動きモデルにおいて、ブロック(1302)内のサンプル位置(x,y)における動きベクトルは、以下のように式(1)において導出されることができる。
【数1】
式中、mv
xは第1の方向(またはX方向)の動きベクトルとすることができ、mv
yは第2の方向(またはY方向)の動きベクトルとすることができる。動きベクトルは、式(2)において記述されることもできる。
【数2】
【0109】
図13Bに示されるように、6パラメータアフィン動きモデルにおいて、ブロック(1304)内のサンプル位置(x,y)における動きベクトルは、以下のように式(3)において導出されることができる。
【数3】
6パラメータアフィン動きモデルは、以下のように式(4)において記述されることもできる。
【数4】
式(1)および式(3)に示されるように、(mv
0x,mv
0y)は左上隅制御点の動きベクトルとすることができる。(mv
1x,mv
1y)は右上隅制御点の動きベクトルとすることができる。(mv
2x,mv
2y)は左下隅制御点の動きベクトルとすることができる。
【0110】
図14に示されるように、動き補償予測を単純化するために、ブロックベースのアフィン変換予測が適用されることができる。各4×4ルーマサブブロックの動きベクトルを導出するために、現在のブロック(1400)内の各サブブロック(例えば(1404))の中央サンプル(例えば(1402))の動きベクトルが、式(1)~式(4)に従って計算され、1/16の分数精度に丸められることができる。次いで、導出された動きベクトルを用いて各サブブロックの予測を生成するために、動き補償補間フィルタが適用されることができる。クロマ成分のサブブロックサイズもまた、4×4として設定されることができる。4×4クロマサブブロックのMVは、4つの対応する4×4のルーマサブブロックのMVの平均として計算されることができる。
【0111】
アフィンマージ予測では、幅と高さの両方が8以上のCUについてアフィンマージ(AF_MERGE)モードが適用されることができる。現在のCUのCPMVは、空間的近傍CUの動き情報に基づいて生成されることができる。アフィンマージ予測には最大5つのCPMVP候補が適用されることができ、5つのCPMVP候補のうちのどれが現在のCUに使用されることができるかを指示するためにインデックスがシグナリングされることができる。アフィンマージ予測では、以下の3つのタイプのCPMV候補が、アフィンマージ候補リストを形成するために使用されることができる。(1)近傍CUのCPMVから外挿された継承アフィンマージ候補、(2)近傍CUの並進MVを使用して導出されたCPMVPを有する構成されたアフィンマージ候補、および(3)ゼロMV。
【0112】
VTM3では、最大2つの継承アフィン候補が適用されることができる。2つの継承アフィン候補は、近傍ブロックのアフィン動きモデルから導出されることができる。例えば、一方の継承アフィン候補は左近傍CUから導出されることができ、他方の継承アフィン候補は上近傍CUから導出されることができる。例示的な候補ブロックが
図15に示されることができる。
図15に示されるように、左予測子(または左継承アフィン候補)の場合、走査順序はA0→A1でありえ、上予測子(または上継承アフィン候補)の場合、走査順序はB0→B1→B2でありうる。よって、各側から最初に利用可能な継承候補のみが選択されることができる。2つの継承候補の間でプルーニングチェックは行われなくてもよい。近傍アフィンCUが識別されると、近傍アフィンCUの制御点動きベクトルが、現在のCUのアフィンマージリスト内のCPMVP候補を導出するために使用されることができる。
図16に示されるように、現在のブロック(1604)の近傍左下のブロックAがアフィンモードでコーディングされる場合、ブロックAを含むCU(1602)の左上隅、右上隅、および左下隅の動きベクトルv
2、v
3、およびv
4が獲得されることができる。ブロックAが4パラメータアフィンモデルでコーディングされる場合、現在のCU(1604)の2つのCPMVが、CU(1602)のv
2およびv
3に従って計算されることができる。ブロックAが6パラメータアフィンモデルでコーディングされる場合には、現在のCU(1602)の3つのCPMVが、CU(1604)のv
2、v
3、およびv
4に従って計算されることができる。
【0113】
現在のブロックの構成されたアフィン候補は、現在のブロックの各制御点の近傍並進動き情報を組み合わせることによって構成された候補でありうる。制御点の動き情報は、
図17に示されることができる指定された空間的近傍および時間的近傍から導出されることができる。
図17に示されるように、CPMV
k(k=1、2、3、4)は、現在のブロック(1702)のk番目の制御点を表す。CPMV
1の場合、B2ブロック→B3ブロック→A2ブロックがチェックされることができ、最初の利用可能なブロックのMVが使用されることができる。CPMV
2の場合、B1ブロック→B0ブロックがチェックされることができる。CPMV
3の場合、A1ブロック→A0ブロックがチェックされることができる。CPM
4が利用できない場合、TMVPがCPMV
4として使用されることができる。
【0114】
4つの制御点のMVが獲得された後、アフィンマージ候補が、4つの制御点の動き情報に基づいて現在のブロック(1702)に対して構成されることができる。例えば、アフィンマージ候補は、以下のような順序で4つの制御点のMVの組み合わせに基づいて構成されることができる。{CPMV1,CPMV2,CPMV3}、{CPMV1,CPMV2,CPMV4}、{CPMV1,CPMV3,CPMV4}、{CPMV2,CPMV3,CPMV4}、{CPMV1,CPMV2}、{CPMV1,CPMV3}。
【0115】
3つのCPMVの組み合わせは6パラメータアフィンマージ候補を構成することができ、2つのCPMVの組み合わせは4パラメータアフィンマージ候補を構成することができる。動きスケーリングプロセスを回避するために、制御点の参照インデックスが異なる場合、制御点MVの関連する組み合わせは破棄されることができる。
【0116】
継承アフィンマージ候補および構成アフィンマージ候補がチェックされた後、リストがまだ一杯でない場合、ゼロMVがマージリストの最後に挿入されることができる。
【0117】
アフィンAMVP予測では、幅と高さの両方が16以上のCUについてアフィンAMVPモードを適用されることができる。アフィンAMVPモードが使用されるかどうかを指示するためにビットストリームでCUレベルのアフィンフラグがシグナリングされることができ、次いで、4パラメータアフィンまたは6パラメータアフィンが適用されるかどうかを指示するために別のフラグがシグナリングされることができる。アフィンAMVP予測では、現在のCUのCPMVと現在のCUのCPMVPの予測子との間の差分がビットストリームでシグナリングされることができる。アフィンAMVP候補リストのサイズは2とすることができ、アフィンAMVP候補リストは、以下のような順序で4タイプのCPMV候補を使用することによって生成されることができる。
(1)近傍CUのCPMVから外挿された継承アフィンAMVP候補、
(2)近傍CUの並進MVを使用して導出されたCPMVPを有する構成されたアフィンAMVP候補、
(3)近傍CUからの並進MV、および
(40ゼロMV。
【0118】
継承アフィンAMVP候補のチェック順序は、継承アフィンマージ候補のチェック順序と同じとすることができる。AVMP候補を決定するために、現在のブロックと同じ参照ピクチャを有するアフィンCUのみが考慮されることができる。継承アフィン動き予測子が候補リストに挿入されるときにプルーニングプロセスは適用されなくてもよい。
【0119】
構成されたAMVP候補は、指定された空間的近傍から導出されることができる。
図17に示されるように、アフィンマージ候補構成におけるチェック順序と同じチェック順序を適用されることができる。加えて、近傍ブロックの参照ピクチャインデックスもチェックされることができる。チェック順序の最初のブロックは、インターコーディングされ、現在のCU(1702)と同じ参照ピクチャを有することができる。現在のCU(1702)が4パラメータアフィンモードでコーディングされ、mv
0とmv
1の両方が利用可能である場合、1つの構成されたAMVP候補が決定されることができる。構成されたAMPV候補は、アフィンAMVPリストにさらに追加されることができる。現在のCU(1702)が6パラメータアフィンモードでコーディングされ、3つのCPMVすべてが利用可能である場合、構成されたAMVP候補は、アフィンAMVPリスト内の一候補として追加されることができる。そうでない場合、構成されたAMVP候補は利用不可として設定されることができる。
【0120】
継承アフィンAMVP候補および構成されたAMVP候補がチェックされた後にアフィンAMVPリスト内の候補が依然として2つ未満である場合、mv0、mv1およびmv2が順に追加されることができる。mv0、mv1およびmv2は、利用可能な場合、現在のCU(例えば(1702))のすべての制御点MVを予測するための並進MVとして機能することができる。最後に、アフィンAMVPがまだ一杯でない場合、アフィンAMVPリストを満たすためにゼロMVが使用されることができる。
【0121】
サブブロックベースのアフィン動き補償は、予測精度のペナルティを代償として、メモリアクセス帯域幅を節約し、ピクセルベースの動き補償と比較して計算の複雑さを低減することができる。動き補償のより細かい粒度を達成するため、オプティカルフローを用いた予測精度向上(PROF)が、動き補償のためにメモリアクセス帯域幅を増加させずにサブブロックベースのアフィン動き補償予測を補正するために使用されることができる。VVCでは、サブブロックベースのアフィン動き補償が行われた後、オプティカルフロー式によって導出された差分を加算することによってルーマ予測サンプルの精度が改善されることができる。PROFは、以下のように4つのステップで説明されることができる。
【0122】
ステップ(1):サブブロックベースのアフィン動き補償が、サブブロック予測I(i,j)を生成するために行われることができる。
【0123】
ステップ(2):サブブロック予測の空間勾配gx(i,j)およびgy(i,j)が、3タップフィルタ[-1,0,1]を使用して各サンプル位置で計算されることができる。勾配計算は、BDOFにおける勾配計算と同じとすることができる。例えば、空間勾配gx(i,j)およびgy(i,j)は、それぞれ式(5)および式(6)に基づいて計算されることができる。
gx(i,j)=(I(i+1,j)>>shift1)-(I(i-1,j)>>shift1) 式(5)
gy(i,j)=(I(i,j+1)>>shift1)-(I(i,j-1)>>shift1) 式(6)
式(5)および式(6)に示されるように、shift1は、勾配の精度を制御するために使用されることができる。サブブロック(例えば4×4)予測は、勾配計算のために各側で1サンプルずつ拡張されることができる。追加のメモリ帯域幅および追加の補間計算を回避するために、拡張された境界上の拡張されたサンプルは、参照ピクチャ内の最も近い整数ピクセル位置からコピーされることができる。
【0124】
ステップ(3):ルーマ予測精度向上は、式(7)に示されるようなオプティカルフロー式によって計算されることができる。
ΔI(i,j)=g
x(i,j)*Δv
x(i,j)+g
y(i,j)*Δv
y(i,j) 式(7)
式中、Δv(i,j)は、v(i,j)で表される、サンプル位置(i,j)について計算されたサンプルMVと、サンプル(i,j)が属するサブブロックの、v
SBで表されるサブブロックMVとの間の差分とすることができる。
図14は、サンプルMVとサブブロックMVとの間の差分の例示的な説明図を示している。
図18に示されるように、サブブロック(1802)は現在のブロック(1800)に含まれることができ、サンプル(1804)はサブブロック(1802)に含まれることができる。サンプル(1804)は、参照ピクセル(1806)に対応するサンプル動きベクトルv(i,j)を含むことができる。サブブロック(1802)は、サブブロック動きベクトルv
SBを含むことができる。サブブロック動きベクトルv
SBに基づき、サンプル(1804)は参照ピクセル(1808)に対応することができる。Δv(i,j)によって表されるサンプルMVとサブブロックMVとの間の差分は、参照ピクセル(1806)と参照ピクセル(1808)との間の差分によって指示されることができる。Δv(i,j)は、1/32ルーマサンプル単位の精度で量子化されることができる。
【0125】
アフィンモデルパラメータおよびサブブロック中心に対するサンプル位置は、あるサブブロックから別のサブブロックに変更されなくてもよいので、Δv(i,j)は、第1のサブブロック(例えば(1802))について計算され、同じCU(例えば(1800))内の他のサブブロック(例えば(1810))について再利用されることができる。dx(i,j)をサンプル位置(i,j)からサブブロックの中心(x
SB,y
SB)までの水平オフセットとし、dy(i,j)を垂直オフセットとすると、Δv(x,y)は、以下のように式(8)および式(9)によって導出されることができる。
【数5】
【数6】
【0126】
精度を保つために、サブブロックの中心(xSB,ySB)は、((WSB-1)/2、(HSB-1)/2)として計算されることができ、式中、WSBおよびHSBは、それぞれサブブロックの幅および高さである。
【0127】
Δv(x,y)が取得されると、アフィンモデルのパラメータが取得されることができる。例えば、4パラメータアフィンモデルの場合、アフィンモデルのパラメータは、式(10)に示されることができる。
【数7】
6パラメータアフィンモデルの場合、アフィンモデルのパラメータは、式(11)に示されることができる。
【数8】
式中、(v
0x,v
0y)、(v
1x,v
1y)、(v
2x,v
2y)は、それぞれ、左上制御点動きベクトル、右上制御点動きベクトル、左下制御点動きベクトルとすることができ、wおよびhは、それぞれ、CUの幅および高さとすることができる。
【0128】
ステップ(4):最後に、ルーマ予測精度向上ΔI(i,j)が、サブブロック予測I(i,j)に追加されることができる。最終予測I’は、式(12)に示されるように生成されることができる。
I’(i,j)=I(i,j)+ΔI(i,j) 式(12)
【0129】
PROFは、以下の2つの場合にアフィンコーディングされたCUに対して適用されなくてもよい。(1)すべての制御点MVが同じであり、そのCUが並進移動のみを有することを指示する場合、および(2)大きなメモリアクセス帯域幅要件を回避するためにサブブロックベースのアフィンMCがCUベースのMCに落とされているので、アフィン動きパラメータが指定された限界よりも大きい場合。
【0130】
サブブロックベースの時間動きベクトル予測(SbTMVP)は、VVCなどの関連するコーディング規格でサポートされることができる。HEVCにおけるTMVPと同様に、SbTMVPは、現在のピクチャの並置ピクチャ内の動き場を使用して、現在のピクチャ内のCUの動きベクトル予測(例えばマージモード)を改善することができる。TMVPによって使用される並置ピクチャが、SbTMVPにも使用されることができる。SbTMVPは、以下のような態様においてTMVPとは異なりうる。
(1)TMVPはCUレベルでの動きを予測するが、SbTMVPはサブCUレベルでの動きを予測する。
(2)TMVPは、並置ピクチャ内の並置ブロックから時間動きベクトルをフェッチする(例えば、並置ブロックは、現在のCUに対して右下ブロックまたは中央ブロックでありうる)。SbTMVPは、並置ピクチャから時間動き情報をフェッチする前に動きシフトを適用し、動きシフトは、現在のCUの空間的近傍ブロックのうちの1つからの動きベクトルから取得されることができる。
【0131】
SbTMVPに適用される例示的な空間的近傍ブロックは
図19に示されることができる。
図19に示されるように、SbTMVPは、現在のCU(1902)内のサブCU(図示せず)の動きベクトルを2つのステップで予測することができる。第1のステップでは、
図19の空間的近傍A1(1904)が調べられることができる。A1(1904)が、現在のピクチャの並置ピクチャを参照ピクチャとして使用する動きベクトルを有する場合、A1(1904)の動きベクトルは、現在のCUのサブブロックごとに並置ピクチャ内の対応するサブブロックを見つけるためのSbTMVPの動きシフト(または変位ベクトル)として選択されることができる。そのような動きベクトルが識別されない場合、動きシフトは(0,0)に設定されることができる。
【0132】
第2のステップでは、並置ピクチャからサブCUレベルの動き情報(例えば、サブCUレベルの動きベクトルおよび参照インデックス)を取得するために、第1のステップで識別された動きシフトが適用される(例えば、現在のCUの座標に加算される)ことができる。
図20に示されるように、現在のCU(2004)は、現在のピクチャ(2002)に含まれることができる。現在のCU(2004)は、サブCU(2006)などの複数のサブCU(またはサブブロック)を含むことができる。近傍ブロックA1(2008)は、現在のCU(2004)の左下側に位置することができる。
図20の例では、動きシフト(またはDV)(2010)が、近傍ブロックA1(2008)の動きベクトルとして設定されることができる。DV(2010)に従って、近傍ブロックA1(2008)の参照ブロックA1’(2018)が決定されることができる。参照ブロックA1’(2018)に隣接する参照ブロック(2014)が、現在のブロック(2004)の参照ブロックとして決定されることができる。現在のブロック(2004)内の各サブCU(例えば(2006))について、現在のピクチャ(1702)の並置ピクチャ(2012)内の参照ブロック(2014)内の対応するブロック(または対応するサブCU)(例えば(2016))の動き情報が、それぞれのサブCUの動き情報を導出するために使用されることができる。参照ブロック(2014)内の各サブブロック(例えば(2016))は、サブブロックの中央サンプルをカバーする最小の動きグリッドでありうる。並置サブCU(例えば(2016))の動き情報が識別された後、動き情報は、現在のサブCU(例えば(2006))の動きベクトルおよび参照インデックスに変換されることができる。動き情報は、HEVCのTMVPプロセスと同様のやり方で現在のサブCUの動きベクトルおよび参照インデックスに変換されることができ、参照ピクチャの時間動きベクトルを現在のCUの時間動きベクトルに整列させるために、時間動きスケーリングが適用されることができる。
【0133】
BCWでは、HEVCなどの双予測信号が、2つの異なる参照ピクチャから取得された2つの予測信号を平均化すること、および/または2つの異なる動きベクトルを使用することによって生成されることができる。VVCでは、双予測モードは、2つの予測信号の加重平均を可能にするために単純な平均化を超えて拡張されることができる。一例では、2つの予測信号の加重平均は、式(13)に示されることができる。
Pbi-pred=((8-w)*P0+w*P1+4)>>3 式(13)
式中、それぞれ、wは重みとすることができ、P0は第1の予測子とすることができ、P1は第2の予測子とすることができる。
加重平均双予測では、5つの重みなどのいくつかの重みが許容されてもよく、例えばw∈{-2,3,4,5,10}である。各双予測CUについて、重みwは、以下の2つのやり方のうちの1つで決定されることができる。(1)非マージCUの場合、重みインデックスが動きベクトル差分の後にシグナリングされることができるか、または(2)マージCUの場合、重みインデックスは、マージ候補インデックスに基づいて近傍ブロックから推測されることができる。一例では、BCWは、256以上のルーマサンプル(例えば、CU幅×CU高さが256以上である)を有するCUにのみ適用される。低遅延ピクチャの場合、5つの重みすべてが使用されることができる。非低遅延ピクチャの場合、わずか3つの重み(例えば、w∈{3,4,5})など、より少ない数の重みが使用されることができる。
【0134】
エンコーダでは、エンコーダの複雑さを著しく増加させることなく重みインデックスを見つけるために高速探索アルゴリズムが適用されることができる。例示的な高速探索アルゴリズムは、以下のように要約されることができる。
(1)AMVRと組み合わされるとき、等しくない重みは、現在のピクチャが低遅延ピクチャである場合に1ペルおよび4ペルの動きベクトル精度に対して条件付きでのみチェックされうる。
(2)アフィンと組み合わされるとき、アフィンMEは、アフィンモードが現在の最良モードとして選択された場合に限り、等しくない重みに対して行われる。
(3)双予測における2つの参照ピクチャが同じであるとき、等しくない重みは条件付きでのみチェックされうる。
(4)現在のピクチャと現在のピクチャの参照ピクチャとの間のPOC距離、コーディング量子化パラメータ(QP)、および時間レベルに応じて、特定の条件が満たされるときに等しくない重みは探索されなくてもよい。
【0135】
BCW重みインデックスは、1つのコンテキストコーディングされたビンの後にバイパスコーディングされたビンが続くものを使用してコーディングされることができる。最初のコンテキストコーディングされたビンは、等しい重みが使用されるかどうかを指示することができる。等しくない重みが使用される場合、バイパスコーディングを使用してどの等しくない重みが使用されるかを指示する追加のビンがシグナリングされることができる。
【0136】
重み付け予測(WP)は、ピクチャレベルで処理されることができ、フェージングを有するビデオコンテンツを効率的にコーディングするために、H.264/AVC規格やHEVC規格などのビデオ規格によってサポートされるコーディングツールでありうる。WPのサポートも、VVC規格に追加されることができる。WPは、重み付けパラメータ(例えば、重みおよびオフセット)が、参照ピクチャリストL0およびL1の各々において参照ピクチャごとにシグナリングされることを可能にすることができる。その場合、動き補償時に、対応する(1つまたは複数の)参照ピクチャの(1つまたは複数の)重みおよび(1つまたは複数の)オフセットが適用されることができる。WPおよびBCWは、異なるタイプのビデオコンテンツに対して設計されることができる。VVCデコーダ設計を複雑にする可能性があるWPとBCWとの間の相互作用を回避するために、CUがWPを使用する場合には、BCW重みインデックスはシグナリングされなくてもよく、wは4であると推測されることができる(例えば、等しい重みが適用される)。マージCUの場合、重みインデックスは、マージ候補インデックスに基づいて近傍ブロックから推測されることができる。マージCUは、通常のマージモードおよび継承アフィンマージモードの一方に基づいて取得されることができる。構成されたアフィンマージモードの場合、アフィン動き情報は、最大3ブロックの動き情報に基づいて構成されることができる。構成されたアフィンマージモードを使用するCUのBCWインデックスは、単純に、第1の制御点MVのBCWインデックスに等しく設定されることができる。
【0137】
いくつかの例では、CIIPおよびBCWは、VVCなどでは、CUに対して共同で適用されなくてもよい。CUがCIIPモードでコーディングされる場合、現在のCUのBCWインデックスは、2、例えば等しい重みに設定されることができる。
【0138】
VVCにおける双方向オプティカルフロー(BDOF)は、以前はJEMにおいてBIOと呼ばれていた。JEMバージョンと比較して、VVCのBDOFは、特に乗算の数および乗数のサイズの点で、必要な計算がより少なくて済むより単純なバージョンでありうる。
【0139】
BDOFは、4×4サブブロックレベルでCUの双予測信号の精度を改善するために使用されることができる。BDOFは、CUが以下のような条件を満たす場合にCUに適用されることができる。
(1)CUが「真の」双予測モードを使用してコーディングされる、すなわち、2つの参照ピクチャの一方は、表示順序で現在のピクチャの前にあり、他方は、表示順序で現在のピクチャの後にある、
(2)2つの参照ピクチャから現在のピクチャまでの距離(例えば、POC差分)が同じである、
(3)両方の参照ピクチャが短期参照ピクチャである、
(4)CUはアフィンモードまたはSbTMVPマージモードを使用してコーディングされない、
(5)CUが64を超えるルーマサンプルを有する、
(6)CU高さとCU幅の両方が8ルーマサンプル以上である、
(7)BCW重みインデックスが等しい重みを指示する、
(8)重み付け位置(WP)が現在のCUに対して有効化されない、
(9)CIIPモードが現在のCUに使用されない。
【0140】
BDOFは、ルーマ成分にのみ適用されうる。BDOFの名前が指示するように、BDOFモードは、オブジェクトの動きが滑らかであると仮定するオプティカルフロー概念に基づくことができる。各4×4サブブロックについて、動き精度向上(vx,vy)が、L0予測サンプルとL1予測サンプルとの間の差分を最小化することによって計算されることができる。次いで、動き精度向上は、4×4サブブロック内の双予測サンプル値を調整するために使用されることができる。BDOFは、以下のようなステップを含むことができる。
【0141】
まず、参照リストL0および参照リストL1からの2つの予測信号の水平勾配および垂直勾配
【数9】
および
【数10】
、k=0、1が、2つの近傍サンプル間の差分を直接計算することによって算出されることができる。水平勾配および垂直勾配は、以下のように式(14)および式(15)で提供されることができる。
【数11】
【数12】
式中、I
(k)(i,j)は、リストk内の予測信号の座標(i,j)におけるサンプル値とすることができ、k=0、1であり、shift1は、shift1=max(6,bitDepth-6)として、ルーマビット深度、bitDepthに基づいて計算されることができる。
【0142】
次いで、勾配S
1、S
2、S
3、S
5、およびS
6の自己相関および相互相関が、以下のような式(16)~式(20)に従って計算されることができる。
S
1=Σ
(i,j)∈ΩAbs(ψ
x(i,j)) 式(16)
S
2=Σ
(i,j)∈Ωψ
x(i,j)・Sign(ψ
y(i,j)) 式(17)
S
3=Σ
(i,j)∈Ωθ(i,j)・Sign(ψ
x(i,j)) 式(18)
S
5=Σ
(i,j)∈ΩAbs(ψ
y(i,j)) 式(19)
S
6=Σ
(i,j)∈Ωθ(i,j)・Sign(ψ
y(i,j)) 式(20)
式中、ψ
x(i,j)、ψ
y(i,j)、およびθ(i,j)は、それぞれ、式(21)~式(23)で提供されることができる。
【数13】
【数14】
θ(i,j)=(I
(1)(i,j)>>n
b)-(I
(0)(i,j)>>n
b) 式(23)
式中、Ωは4×4サブブロックの周囲の6×6窓とすることができ、n
aおよびn
bの値は、それぞれ、min(1,bitDepth-11)およびmin(4,bitDepth-8)に等しく設定されることができる。
【0143】
次いで、動き精度向上(v
x,v
x)が、以下の式(24)および式(25)を使用する相互相関項および自己相関項を使用して導出されることができる。
【数15】
【数16】
式中、
【数17】
、
【数18】
、
【数19】
である。
【数20】
はフロア関数であり、
【数21】
である。動き精度向上および勾配に基づき、調整が、式(26)に基づいて4×4サブブロック内のサンプルごとに計算されることができる。
【数22】
【0144】
最後に、CUのBDOFサンプルが、以下のように式(27)で双予測サンプルを調整することによって計算されることができる。
predBDOF(x,y)=(I(0)(x,y)+I(1)(x,y)+b(x,y)+οoffset)>>shift) 式(27)
値は、BDOFプロセスにおける乗数が15ビットを超えず、BDOFプロセスにおける中間パラメータの最大ビット幅が32ビット以内に保たれることができるように選択されることができる。
【0145】
勾配値を導出するために、現在のCU境界の外側のリストk(k=0、1)内のいくつかの予測サンプルI
(k)(i,j)が生成される必要がある。
図21に図示されるように、VVCにおけるBDOFは、CU(2104)の境界(2106)の周囲の拡張された1行/列(2102)を使用することができる。境界外予測サンプルを生成する計算の複雑さを制御するために、拡張領域(例えば、
図21の陰影なしの領域)内の予測サンプルは、補間なしで直接(例えば、座標に対してfloor()演算を使用して)近傍の整数位置の参照サンプルを直接取得することによって生成されることができ、通常の8タップ動き補償補間フィルタは、CU(例えば、
図21の陰影付き領域)内の予測サンプルを生成するために使用されることができる。これらの拡張サンプル値は、勾配計算でのみ使用されることができる。BDOFプロセスの残りのステップでは、CU境界の外側のサンプルおよび勾配値が必要とされる場合、それらのサンプルおよび勾配値は、それらのサンプルおよび勾配値の最近傍からパディングされる(例えば、繰り返される)ことができる。
【0146】
CUの幅および/または高さが16ルーマサンプルより大きい場合、CUは、16ルーマサンプルに等しい幅および/または高さを有するサブブロックに分割されることができ、サブブロック境界は、BDOFプロセスにおいてCU境界として扱われることができる。BDOFプロセスの最大ユニットサイズは16×16に制限されることができる。サブブロックごとに、BDOFプロセスはスキップされることができる。初期L0予測サンプルと初期L1予測サンプルとの間の差分絶対和(SAD)が閾値よりも小さい場合、BDOFプロセスはサブブロックに適用されなくてもよい。閾値は(8*W*K(H>>1)に等しく設定されることができ、Wは、サブブロックの幅を指示することができ、Hは、サブブロックの高さを指示することができる。SAD計算のさらなる複雑さを回避するために、DMVRプロセスで計算された初期L0予測サンプルと初期L1予測サンプルとの間のSADは、BBOFプロセスにおいて再利用されることができる。
【0147】
BCWが現在のブロックに対して有効化にされている場合、すなわち、BCW重みインデックスが等しくない重みを指示する場合には、双方向オプティカルフローが無効化されることができる。同様に、現在のブロックに対してWPが有効化にされている場合、すなわち、ルーマ重みフラグ(例えば、luma_weight_lx_flag)が2つの参照ピクチャのどちらかに対して1である場合には、BDOFはやはり無効化されうる。CUが対称MVDモードまたはCIIPモードでコーディングされている場合、BDOFはやはり無効化にされうる。
【0148】
マージモードのMVの精度を高めるために、VVCなどでは、バイラテラルマッチング(BM)ベースのデコーダ側動きベクトル精度向上が適用されることができる。双予測動作では、精度向上MVが、参照ピクチャリストL0および参照ピクチャリストL1内の初期MVの周囲で探索されることができる。BM法は、参照ピクチャリストL0内と参照ピクチャリストL1内の2つの候補ブロック間の歪みを計算することができる。
【0149】
図22は、BMベースのデコーダ側動きベクトル精度向上の例示的な概略図を示している。
図22に示されるように、現在のピクチャ(2202)は現在のブロック(2208)を含むことができる。現在のピクチャは、参照ピクチャリストL0(2204)および参照ピクチャリストL1(2206)を含むことができる。現在のブロック(2208)は、初期動きベクトルMV0による参照ピクチャリストL0(2204)内の初期参照ブロック(2212)と、初期動きベクトルMV1による参照ピクチャリストL1(2206)内の初期参照ブロック(2214)とを含むことができる。探索プロセスは、参照ピクチャリストL0(2204)内の初期MV0および参照ピクチャリストL1(2206)内の初期MV1の周辺で行われることができる。例えば、第1の候補参照ブロック(2210)が参照ピクチャリストL0(2204)において識別されることができ、第1の候補参照ブロック(2216)が参照ピクチャリストL1(2206)において識別されることができる。初期MV(例えば、MV0およびMV1)の周囲の各MV候補(例えば、MV0’およびMV1’)に基づく候補参照ブロック(例えば、(2210)および(2216))間のSADが計算されることができる。最低のSADを有するMV候補が、精度向上MVになり、現在のブロック(2208)を予測するための双予測信号を生成するために使用されることができる。
【0150】
DMVRの適用は、制限されることができ、以下のような、VVCなどにおける、モードおよび特徴に基づいてコーディングされるCUに対してのみ適用されうる。
(1)双予測MVによるCUレベルマージモード、
(2)1つの参照ピクチャが現在のピクチャに対して過去にあり、別の参照ピクチャが未来にある、
(3)2つの参照ピクチャから現在のピクチャまでの距離(例えばPOC差分)が同じである、
(4)両方の参照ピクチャが短期参照ピクチャである、
(5)CUが64を超えるルーマサンプルを有する、
(6)CU高さとCU幅の両方が8ルーマサンプル以上である、
(7)BCW重みインデックスが等しい重みを指示する、
(8)WPが現在のブロックに対して有効化されない、
(9)CIIPモードが現在のブロックに使用されない。
【0151】
DMVRプロセスによって導出された精度向上MVは、インター予測サンプルを生成するために使用され、将来のピクチャコーディングのための時間動きベクトル予測において使用されることができる。一方、元のMVは、デブロッキングプロセスで使用され、将来のCUコーディングのための空間動きベクトル予測において使用されることができる。
【0152】
DVMRでは、探索点は初期MVを取り囲むことができ、MVオフセットはMV差分ミラーリング規則に従うことができる。言い換えれば、候補MVペア(MV0,MV1)によって表される、DMVRによってチェックされる任意の点は、式(28)および式(29)に示されるMV差分ミラーリング規則に従うことができる。
MV0’=MV0+MV_offset 式(28)
MV1’=MV1-MV_offset 式(29)
式中、MV_offsetは、参照ピクチャのうちの1つにおける初期MVと精度向上MVとの間の精度向上オフセットを表すことができる。精度向上探索範囲は、初期MVからの2つの整数ルーマサンプルとすることができる。探索は、整数サンプルオフセット探索段階および小数サンプル精度向上段階を含むことができる。
【0153】
例えば、整数サンプルオフセット探索には25点のフル探索が適用されることができる。初期MVペアのSADがまず計算されることができる。初期MVペアのSADが閾値よりも小さい場合、DMVRの整数サンプル段階は終了されることができる。そうでない場合、残りの24点のSADが計算され、ラスタ走査順序などの走査順序でチェックされることができる。最小のSADを有する点は、整数サンプルオフセット探索段階の出力として選択されることができる。DMVR精度向上の不確実性のペナルティを低減するために、DMVRプロセス中の元のMVは、選択される優先度を有することができる。初期MV候補によって参照される参照ブロック間のSADは、SAD値の1/4だけ減らされることができる。
【0154】
整数サンプル探索の後に続いて小数サンプル精度向上が実行されることができる。計算の複雑さを軽減するために、小数サンプル精度向上は、SAD比較による追加の探索の代わりに、パラメトリック誤差表面方程式を使用することによって導出されることができる。小数サンプル精度向上は、整数サンプル探索段階の出力に基づいて条件付きで呼び出されることができる。整数サンプル探索段階が、第1の反復探索または第2の反復探索のどちらかにおいて最小のSADを有する中心で終了される場合、小数サンプル精度向上がさらに適用されることができる。
【0155】
パラメトリック誤差表面ベースのサブピクセルオフセット推定では、中心位置コストおよび中心からの4つの近傍位置におけるコストが、式(30)に基づいて2D放物面誤差表面方程式を適合させるために使用されることができる。
E(x,y)=A(x-xmin)2+B(y-ymin)2+C 式(30)
式中、(xmin,ymin)は、最小コストを有する小数位置に対応することができ、Cは、最小コスト値に対応することができる。5つの探索点のコスト値を使用して式(30)を解くことにより、(xmin,ymin)は、式(31)および式(32)において算出されることができる。
xmin=(E(-1,0)-E(1,0))/(2(E(-1,0)+E(1,0)-2E(0,0))) 式(31)
ymin=(E(0,-1)-E(0,1))/(2((E(0,-1)+E(0,1)-2E(0,0))) 式(32)
xminおよびyminの値は、すべてのコスト値が正であり、最小値がE(0,0)であるため、-8から8になるように自動的に制約されることができる。xminおよびyminの値の制約は、VVCにおける1/16ペルのMV精度で半ペル(またはピクセル)のオフセットに対応することができる。算出された小数(xmin,ymin)は、ブピクセルの正確な精度向上デルタMVを得るために整数距離精度向上MVに加算されることができる。
【0156】
VVCなどでは、バイリニア補間およびサンプルパディングが適用されることができる。MVの解像度は、例えば、1/16ルーマサンプルとすることができる。小数位置のサンプルは、8タップ補間フィルタを使用して補間されることができる。DMVRでは、探索点は初期小数ペルのMVを整数サンプルオフセットで取り囲むことができ、したがって、小数位置のサンプルはDMVR探索プロセスのために補間される必要がある。計算の複雑さを低減するために、バイリニア補間フィルタが、DMVRにおける探索プロセス用の小数サンプルを生成するために使用されることができる。別の重要な効果では、2サンプルの探索範囲でバイリニアフィルタを使用することによって、DVMRは、通常の動き補償プロセスと比較してより多くの参照サンプルにアクセスしない。精度向上MVがDMVR探索プロセスを用いて獲得された後、通常の8タップ補間フィルタが、最終予測を生成するために適用されることができる。通常のMCプロセスと比較してより多くの参照サンプルにアクセスしないために、元のMVに基づく補間プロセスには必要とされない可能性があるが、精度向上MVに基づく補間プロセスには必要とされる可能性のあるサンプルが、利用可能なサンプルからパディングされることができる。
【0157】
CUの幅および/または高さが16ルーマサンプルより大きい場合、CUは、16ルーマサンプルに等しい幅および/または高さを有するサブブロックにさらに分割されることができる。DMVR探索プロセスの最大ユニットサイズは16×16に制限されることができる。
【0158】
GPMは、インター予測に対して適用されることができる。幾何学的分割モードは、マージモードの一種としてCUレベルのフラグを使用してシグナリングされることができる。他のマージモードは、通常のマージモード、MMVDモード、CIIPモード、およびサブブロックマージモードを含むことができる。一例では、w×h=2m×2nのサイズのCUの幾何学的分割モードによって64個のパーティションがサポートされることができ、式中、m、n∈{3…6}であり、8×64および64×8を除く。
【0159】
GPMが使用される場合、CUは、幾何学的に配置された直線(または分割線)によって2つの部分に分割されることができる。分割線の位置は、特定のパーティション(例えば、64個のパーティションのうちの1つが)の角度およびオフセットパラメータから数学的に導出されることができる。
図23は、同一の角度によってグループ化された例示的なGPM分割を示している。
図23に図示されるように、サポートされる64個のGPMパーティションが、24のグループ(例えばグループ(2302))において提供されることができる。各グループ内のパーティションは、同じ角度インデックスおよび{0…3}の範囲内の異なるオフセットインデックスを有することができる。
【0160】
CU内の幾何学的パーティションの各部分は、それぞれの動きを使用してインター予測されることができる。CU内の各パーティション(または各部分)に対して単予測が可能とされることができる。よって、幾何学的パーティションの各部分は、1つの動きベクトルおよび1つの参照インデックスを有することができる。従来の双予測と同様に、各CUに対して2つの動き補償予測だけで済むようにするために、単予測動き制約が適用されることができる。各分割の単予測動きは、例えば、
図24に記載されるプロセスを使用して導出されることができる。
【0161】
幾何学的分割モードが現在のCUに適用される場合、幾何学的パーティションインデックスおよび2つのマージインデックスがさらにシグナリングされることができる。パーティションインデックスは、幾何学的パーティションのパーティションモードを指示することができ、各マージインデックスは、それぞれのパーティションと関連付けられることができる。最大GPM候補サイズは、SPSで明示的にシグナリングされ、GPMマージインデックスの構文2値化を指定することができる。幾何学的パーティションの各部分(またはパーティション)が予測された後、幾何学的パーティションエッジに沿ったサンプル値は、式(37)~式(39)に示される適応重みなどの適応重みによるブレンディングプロセスを使用して調整されることができる。現在のCUの予測信号は、他の予測モード(例えば、インター予測モード)と同様に、変換プロセスおよび量子化プロセスをさらに受けることができる。最後に、幾何学的パーティションモードを使用して予測された現在のCUの動き場が記憶されることができる。
【0162】
単予測候補リストは、拡張マージ予測プロセスに従って構成されたマージ候補リストから直接導出されることができる。nを、幾何単予測候補リストにおける単予測動きのインデックスとして表されるものとする。nのパリティに等しいXを有する、第nの拡張マージ候補のLX動きベクトルが、幾何学的分割モードの第nの単予測動きベクトルとして使用されることができる。動きベクトル(または単予測動きベクトル)は、
図24において「x」でマークされることができる。
図24に示されるように、マージインデックスnが、0、2、4など、偶数の場合、L0参照リストからのMVが適用されることができる。マージインデックスnが、1、3など、奇数の場合、L1参照リストからのMVが適用されることができる。第nの拡張マージ候補の対応するLX動きベクトルが存在しない場合には、同じ候補のL(1-X)動きベクトルが幾何学的分割モードの単予測動きベクトルとして使用されることができる。例えば、n=0のとき、L0動きベクトルが利用できない場合、L1動きベクトルが第0のマージ候補に対して適用されることができる。
【0163】
CUの幾何学的パーティションの各部分が対応する動きを使用して予測された後、幾何学的パーティションエッジの周囲のサンプルを導出するために2つの予測信号にブレンディングが適用されることができる。CUの各位置のブレンディング重みは、それぞれの位置とパーティションエッジとの間の距離に基づいて導出されることができる。
【0164】
位置(x,y)からパーティションエッジまでの距離は、式(33)~式(36)において以下のように導出されることができる。
d(x,y)=(2x+1-w)cos(φ
i)+(2y+1-h)sin(φ
i)-ρ
j 式(33)
ρ
j=ρ
x,jcos(φ
i)+ρ
y,jsin(φ
i) 式(34)
【数23】
【数24】
式中、i、jは、それぞれ、幾何学的パーティションの角度(例えばφ
i)およびオフセット(例えばρ
j)のインデックスとすることができ、これらは、シグナリングされた幾何学的パーティションインデックスに依存することができる。ρ
x,jおよびρ
y,jの符号は、角度インデックスiに依存することができる。幾何学的パーティションの各部分の重みは、式(37)~式(39)において導出されることができる。
wIdxL(x,y)=partIdx?32+d(x,y):32-d(x,y) 式(37)
【数25】
w
1(x,y)=1-w
0(x,y) 式(39)
部分インデックス(例えばpartIdx)は、角度インデックスiに依存することができる。重みw
0の例示的な説明図が
図25に示されることができ、幾何学的パーティションエッジ(2502)はCU(2500)を第1の部分(2504)と第2の部分(2506)とに分割することができる。
【0165】
幾何学的パーティションの第1の部分からの第1のMV(またはMV1)、幾何学的パーティションの第2の部分からの第2のMV(またはMV2)、およびMV1とMV2との結合MVは、幾何学的分割モードでコーディングされたCUの動き場に記憶されることができる。
【0166】
動き場内の個々の位置ごとの記憶された動きベクトルタイプ(またはsType)は、式(40)において以下のように決定されることができる。
sType=abs(motionIdx)<32?2:(motionIdx≦0?(1-partIdx):partIdx) 式(40)
式中、motionIdxはd(4x+2,4y+2)に等しくすることができる。部分インデックスpartIdxは、角度インデックスiに依存することができる。
【0167】
sTypeが0または1に等しい場合、MV1またはMV2が対応する動き場に記憶されることができ、そうではなくsTypeが2に等しい場合、MV1およびMV2からの結合MVが記憶されることができる。結合MVは、以下のようなプロセスを使用して生成されることができる。
1)MV1とMV2とが異なる参照ピクチャリストから(例えば、一方はL0から、および他方はL1から)のものである場合には、MV1とMV2とは、双予測動きベクトルを形成するように単に結合される。
2)そうではなく、MV1とMV2とが同じリストからのものである場合、単予測動きMV2のみが記憶される。
【0168】
HEVCやAVC/H.264などの関連するビデオコーディング規格では、4分の1ルーマサンプルの固定動きベクトル解像度が適用されることができる。しかしながら、全体的なレート歪み最適性を達成するために、変位ベクトルレートと予測誤差レートとの間の最適なトレードオフが選択されなければならない。動きベクトル解像度は、VVCなどでは、動きパラメータをシグナリングするためのビットレート対忠実度(または精度)をトレードオフするためにコーディングブロックレベルで選択されることができる。例えば、動きベクトル解像度は、AMVRモードによって選択されることができる。AMVRモードは、例えば、MVDの少なくとも1つの成分が0に等しくない場合、コーディングブロックレベルでシグナリングされることができる。動きベクトル予測子は、結果として得られる動きベクトルが所与の解像度のグリッドに入ることが保証されることができるように、所与の解像度に丸められることができる。所与の解像度ごとに、対応するAmvrShift値が表1において定義されることができる。動きベクトル差分(またはMVD)の解像度は、AmvrShift値だけの左シフト演算で指定されることができ、これは
図26に示されることができる。所与の動きベクトル差分は、AMVPモードではMvdL0およびMvdL1、アフィンAMVPモードではMvdCpL0およびMvdCpL1として表され、AMVRモードが有効化されるときに修正されることができる。
【0169】
【0170】
VVCなどの関連するコーディング規格では、単予測と双予測の両方についてフレーム境界の外側を指し示す動きベクトルが許容される。しかしながら、少なくとも1つのMVがフレーム境界を越えると、双予測のために良好なインター予測子が取得されない場合がある。
【0171】
本開示では、インター双予測のためのMV制約が適用されることができる。MV制約は、一例ではサブブロックレベルで適用されることができる。サブブロックベースの双予測制約は、一般に、サブブロックレベルで適用可能な双予測モードにおける予測制約を指す。現在のブロックのサブブロックが単予測モードおよび双予測モードの一方によって予測されるかどうかは、サブブロックベースの双予測制約に基づいて決定されることができる。双予測モードは、現在のブロックのサブブロックが、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2のサブブロックに基づいて予測されることを指示することができる。単予測モードは、現在のブロックのサブブロックが第1の参照サブブロックおよび第2の参照サブブロックの一方に基づいて予測されることを指示することができる。サブブロックベースの双予測制約によれば、一実施形態では、第1の参照ピクチャ内のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、第2の参照ピクチャ内のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置しているとき、現在のブロックのサブブロックは、サブブロックが第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように単予測モードに基づいて再構成されることができる。一実施形態では、第1の参照ピクチャ内のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、第2の参照ピクチャ内のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えて位置しているとき、現在のブロックのサブブロックは、サブブロックが第1の参照ピクチャの第1の参照サブブロックおよび第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように双予測モードに基づいて依然として再構成されることができる。
【0172】
一実施形態では、サブブロックベースの双予測制約は、サブブロックレベルなどで、インター双予測に対して適用されることができる。一実施形態では、サブブロックは、予め定義されたサブブロックサイズN×Nを有することができる。一例では、サブブロックサイズは8×8ルーマサンプルとすることができる。一例では、サブブロックサイズは4×4ルーマサンプルとすることができる。
【0173】
一実施形態では、インター双予測MVを有するコーディングブロック内の各N×Nサブブロックについて、参照リストのうちの1つのMVがMピクセルの閾値を超えて参照ピクチャの境界外を指し示している場合(またはMVによって指し示される参照ピクチャの参照ブロックが参照ピクチャの境界をMピクセルの閾値だけ越えている場合)、サブブロックは、対応する参照ピクチャ上の境界外閾値を超えて指し示していない参照リスト内のMVのみを用いる(または、別の参照ピクチャの境界をMピクセルの閾値だけ越えていない別のMVによって指し示される別の参照ピクチャの別の参照ブロックのみを用いる)単予測モードに変更されてもよい。例えば、第1の参照リスト内のインター双予測MVの第1の動きベクトルが、Mピクセルの閾値を超えて第1の参照ピクチャの境界の外側を指し示し、第2の参照リスト内のインター双予測MVの第2の動きベクトルが、第2の参照ピクチャの境界内を指し示すか、またはMピクセルの閾値未満の第2の参照ピクチャの境界の外側を指し示す場合、サブブロックは単予測モードに変更されることができる。よって、第2の参照リストの第2の参照ピクチャ上のインター双予測MVの第2のMVは、単予測モードに対して適用されることができる。
【0174】
例えば、
図27に指示されるように、MV0で指示される参照ブロック(2704)内の陰影付き参照サブブロック(例えば(2714))は、閾値Mだけ参照リストL0からの参照ピクチャ(2702)の境界(2712)を越えて位置することができ、MV1で指示される参照ブロック(2710)内の参照サブブロック(例えば(2716))は、参照リストL1からの参照ピクチャ(2710)内に位置することができる。よって、参照ブロック(2704)内の陰影付き参照サブブロックに対応する現在のブロック(2706)内の陰影付きサブブロック(例えば(2718))は、動き補償のためにMV1による単予測を使用することができる。したがって、現在のブロック(2706)内の陰影付きサブブロック(例えば(2718))は、参照ピクチャ(2710)内の対応するサブブロック(例えば(2716))に基づいて予測されることができる。現在のブロック(2706)の陰影なしサブブロック(例えば(2720))などの他のサブブロックは、それぞれ、参照リストL0上および参照リストL1上のMV0とMV1の両方による双予測を依然として使用することができる。例えば、サブブロック(2720)は、参照ブロック(2704)内のサブブロック(2722)および参照ブロック(2710)内のサブブロック(2724)に基づいて予測されることができる。
【0175】
一例では、閾値Mは0に等しくすることができる。この場合、参照ピクチャ(例えば(2704))の境界の外側の任意の位置を指し示す動きベクトル(例えば、MV0)(または、動きベクトルによって指し示される参照ブロックが参照ピクチャの境界の外側の任意の位置を越えている)は、参照ピクチャの境界の外側にあるとみなされることができ、制約される必要がある。例えば、
図27に示されるように、サブブロック(2714)の境界(2726)が参照ピクチャ(2702)の境界(2712)を越えている場合、サブブロック(2714)は制約されることができ、サブブロック(2718)は、サブブロック(2716)に基づいて予測されることができる。
【0176】
一例では、閾値Mは0.5(または0.5ルーマサンプル)に等しくすることができる。この場合、0.5ルーマサンプル以上参照ピクチャの境界の外側の任意の位置を指し示す動きベクトル(または動きベクトルによって指し示される参照ブロックが0.5ルーマサンプル以上参照ピクチャの境界の外側の任意の位置を越えている)は、参照ピクチャの境界の外側にあるとみなされることができ、制約される必要がある。例えば、
図27に示されるように、サブブロック(2714)の境界(2726)が参照ピクチャ(2702)の境界(2712)を0.5ルーマサンプル以上越えている場合、サブブロック(2714)は制約されることができ、サブブロック(2718)は、サブブロック(2716)に基づいて予測されることができる。
【0177】
一実施形態では、インター双予測MVを有するコーディングブロック内のN×Nサブブロックについて、両方の参照リスト内のインター双予測動きベクトルがそれぞれの参照ピクチャの境界をMピクセルの閾値だけ越えて参照ブロックを指し示す場合、サブブロックは制約されず、依然として通常の双予測モードを使用してもよい。例えば、
図27に示されるように、サブブロック(2716)もまた参照ピクチャ(2710)の境界を越えて位置している場合、サブブロック(2718)は、依然として通常の双予測モードを使用し、参照サブブロック(2714)および参照サブブロック(2716)に基づいて予測されることができる。
【0178】
サブブロックベースの双予測制約は、1つまたは複数の特定の予測モードと関連付けられたコーディングブロックに対して適用されうる。一実施形態では、サブブロックベースの双予測制約は、アフィンインター予測モードなどのインター予測モードを有するコーディングブロックに対して適用されることができる。
【0179】
一例では、サブブロックベースの双予測制約がアフィンモードを有するコーディングブロックに適用される場合、双予測制約に使用されるサブブロックサイズは、N×Nの予め定義されたサブブロックサイズに関係なく、VVCにおける4×4ルーマサンプルなどのアフィンサブブロックサイズと同じとすることができる。
【0180】
一実施形態では、サブブロックベースの双予測制約は、SbTMVPモードなどの時間動きベクトル予測モードを有するコーディングブロックに対して適用されうる。
【0181】
一例では、サブブロックベースの双予測制約がSbTMVPモードを有するコーディングブロックに適用される場合、双予測制約に使用されるサブブロックサイズは、N×Nの予め定義されたサブブロックサイズに関係なく、VVCにおける8×8ルーマサンプルなどのSbTMVPサブブロックサイズと同じとすることができる。
【0182】
一実施形態では、サブブロックベースの双予測制約は、GPMまたは三角形分割モード(TPM)の双予測ブレンディングエリアに適用されることができる。制約が適用されるとき、GPM/TPM双予測ブレンディングエリアにブレンディングプロセスが適用されるかどうかは、制約に基づいて決定されることができる。ブレンディングエリアは、GPMまたはTPMの2つのパーティションのパーティション境界を中心とするサンプルを含むことができる。
【0183】
一例では、サブブロックベースの双予測制約がGPMモードを有するコーディングブロックに適用される場合、双予測制約に使用されるサブブロックサイズは、N×Nの予め定義されたサブブロックサイズに関係なく、VVCにおける4×4ルーマサンプルなどのGPMサブブロックサイズと同じとすることができる。
【0184】
GPMにおけるサブブロックが制約を受ける場合、双予測ブレンディングはサブブロックに対して適用されなくてもよく、境界外ではない参照サンプル位置を用いた単予測のみがサブブロックの予測として使用されることができる。
【0185】
一実施形態では、サブブロックがサブブロックベースの双予測制約を受け、単予測モードに変更される場合、単予測モードの単予測動き情報がそのサブブロックについて記憶されることができる。
【0186】
一例では、4×4サブブロック内の少なくとも1つのピクセルが単予測モードに制約されるときに、単予測動き推定が双予測コーディングユニットの4×4サブブロックごとに記憶されることができる。
【0187】
一実施形態では、サブブロックが双予測制約を受け、単予測モードに変更される場合、そのサブブロックに対して1つまたは複数の双予測関連コーディングツールが無効化されうる。
【0188】
一例では、DMVRは制約されたサブブロックに対して無効化されてもよく、これは、有効な参照リスト(例えば参照リストL1)上のDMVRの元の(または初期の)MV(例えば、参照ピクチャの境界を越えていないMV1)のみが動き補償のための単予測MVとして使用されうることを意味する。元の単予測MVはまた、サブブロックのMV記憶にも使用されることができる。よって、DMVRは行われなくてもよく、参照ピクチャの境界を越えていないDMVRの元のMVが、現在のブロックのサブブロックを予測するために適用されることができる。
【0189】
一例では、DMVRは制約されたサブブロックに対して無効化されることができ、これは、有効な参照リスト上のDMVRの元のMVのみが動き補償のための単予測MVとして使用されうることを意味する。しかしながら、一例では、DMVRに基づいて取得された双予測MVは、サブブロックのMV記憶に使用されることができる。よって、現在のブロックのサブブロックは、参照ピクチャの境界を越えていない元のMVのうちの1つに基づいて予測されることができる。DMVRは、元のMVの精度を向上させることによって2つの最終MVを生成するためにさらに行われることができる。最終MVは、サブブロックのために記憶されることができる。
【0190】
一例では、制約されたサブブロックに対してBDOFツールが無効化されることができ、有効な参照リスト上のBDOFプロセスのための元のMV(例えば、参照ピクチャの境界を越えていないMV1)のみが、サブブロックの動き補償のための単予測MVとして使用されることができる。
【0191】
一例では、双予測から単予測に変更される制約されたサブブロックに対してBCWツールが無効化されることができる。
【0192】
一例では、重み付け双予測が適用される場合、制約されたサブブロックは、有効な参照ピクチャ(例えば(2708))から取得される重み付け単予測のみを使用しうる。例えば、
図27に示されるように、サブブロック(2718)は、サブブロック(2716)に基づく重み付け単予測のみを使用することができる。
【0193】
一実施形態では、サブブロックベースの双予測制約は、AMVPモードやアフィンモードなどの非マージインター予測モードに対してのみ適用されうる。
【0194】
一実施形態では、サブブロックベースの双予測制約は、マージモードまたは非マージインター予測モードのどちらかに適用されうる。
【0195】
一実施形態では、サブブロックベースの双予測制約が適用されるかどうかを指示するために、オン/オフフラグなどのシグナリング情報がビットストリームでシグナリングされることができる。フラグ、すなわちシグナリング情報は、シーケンスレベル、ピクチャレベル、スライスレベル、タイルレベル、タイルグループレベルなどといった、コーディングブロックレベルよりも高いレベルでシグナリングされることができる。
【0196】
図28は、本開示のいくつかの実施形態による例示的なデコーディングプロセス(2800)を説明するフローチャートを示している。
図29は、本開示のいくつかの実施形態による例示的なエンコーディングプロセス(2900)を説明するフローチャートを示している。提案のプロセスは、別々に使用されても、任意の順序で組み合わされてもよい。さらに、プロセス(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つまたは複数のプロセッサや1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0197】
プロセス(例えば、(2800)および(2900))の動作は、必要に応じて、任意の量または順序で組み合わされるか、または配置されてもよい。実施形態では、プロセス(例えば、(2800)および(2900))の動作のうちの2つ以上が並列に行われてもよい。
【0198】
プロセス(例えば、(2800)および(2900))は、再構成中のブロックの予測ブロックを生成するために、ブロックの再構成および/またはエンコーディングで使用されることができる。様々な実施形態において、プロセス(例えば、(2800)および(2900))は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオエンコーダ(403)の機能を行う処理回路、ビデオデコーダ(410)の機能を行う処理回路、ビデオデコーダ(510)の機能を行う処理回路、ビデオエンコーダ(603)の機能を行う処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(例えば、(2800)および(2900))はソフトウェア命令で実装され、よって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(例えば、(2800)および(2900))を行う。
【0199】
図28に示されるように、プロセス(2800)は、(S2801)から開始して(S2810)に進むことができる。(S2810)で、現在のピクチャ内の現在のブロックの複数のサブブロックのコーディングされた情報が、コーディングされたビデオビットストリームから受信される。
【0200】
(S2820)で、現在のピクチャ内の現在のブロックと関連付けられた予測モードを指示する構文要素が、コーディングされたビデオビットストリームから取得され、予測モードは単予測モードおよび双予測モードの一方である。
【0201】
(S2830)で、双予測モードが複数のサブブロックのうちの第1のサブブロックに適用されると決定され、第1のサブブロックは、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて予測される。
【0202】
(S2840)で、双予測モードが複数のサブブロックのうちの第1のサブブロックに適用されていることに応答して、(i)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、かつ(ii)第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置しているかどうかが決定される。
【0203】
(S2850)で、(i)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置しており、かつ(ii)第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置していることに応答して、現在のブロックの第1のサブブロックが、第1のサブブロックが第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように単予測モードに基づいて再構成される。
【0204】
双予測モードは、(i)コーディングされた情報に含まれるシグナリング情報、(ii)現在のブロックに適用されている非マージインター予測モード、および(iii)現在のブロックに適用されているマージモード、のうちの1つに基づいて第1のサブブロックに適用されると決定される。
【0205】
一実施形態では、第1の参照サブブロックの境界が第1の参照ピクチャの境界を閾値だけ越えて位置しているかどうかが決定される。
【0206】
第1のサブブロックのサイズは、現在のブロックに適用されているインター予測モードに基づく4×4ルーマサンプルおよび8×8ルーマサンプルの一方である。
【0207】
第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えており、第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えていることに応答して、現在のブロックの第1のサブブロックは、第1の参照ピクチャ内の第1の参照サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づいて再構成される。
【0208】
第1のサブブロックのサイズは、(i)現在のブロックに適用されているアフィンインター予測モードに基づくアフィンサブブロックサイズ、(ii)現在のブロックに適用されているSbTMVPモードにSbTMVPサブブロックサイズ、および(iii)現在のブロックに適用されているGPMモードに基づくGPMサブブロックサイズ、のうちの1つに等しい。
【0209】
(i)第1のサブブロックが現在のブロックの幾何学的分割境界を中心とするブレンディングエリア内に位置しており、かつ(ii)第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えていることに応答して、第1のサブブロックは、第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置している第2の参照サブブロックに基づいて再構成される。
【0210】
第1のサブブロックが単予測モードによって予測されていることに応答して、第1のサブブロックのために単予測モードの単予測動き情報が記憶される。
【0211】
第1のサブブロックの少なくとも1つのピクセルが単予測モードによって予測されていることに応答して、第1のサブブロックのために単予測モードの単予測動き情報が記憶される。
【0212】
いくつかの実施形態では、DMVRモード、BDOFモード、およびBCWモードのうちの1つが、第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えていること、または第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えていることの少なくとも一方に応答して、現在のブロックの第1のサブブロックに対して除外される。
【0213】
いくつかの実施形態では、第1の参照ピクチャ内の第1の参照サブブロックに基づく第1の予測サブブロックおよび第2の参照ピクチャ内の第2の参照サブブロックに基づく第2の予測サブブロックを決定するために、第1のサブブロックに対してDMVRが行われる。第1のサブブロックが第1の参照ピクチャ内の第1の予測サブブロックおよび第2の参照ピクチャ内の第2の予測サブブロックに基づいて予測されることを指示する双予測動き情報が、第1のサブブロックのために記憶される。
【0214】
(S2840)の後、プロセスは(S2899)に進み、終了する。
【0215】
プロセス(2800)は、適切に適合されることができる。プロセス(2800)の(1つまたは複数の)ステップは、修正および/または省略されることができる。(1つまたは複数の)追加のステップが追加されることができる。任意の適切な実施順序が使用されることができる。
【0216】
図29に示されるように、プロセス(2900)は、(S2901)から開始して(S2910)に進むことができる。(S2910)で、サブブロックベースの双予測制約が現在のピクチャ内の現在のブロックの複数のサブブロックのうちの第1のサブブロックに適用されるかどうかが決定される。サブブロックベースの双予測制約は、第1のサブブロックが単予測モードおよび双予測モードの一方によって予測されるかどうかを指示する。
【0217】
(S2920)で、サブブロックベースの双予測制約が複数のサブブロックのうちの第1のサブブロックに適用されていることに応答して、(i)第1の参照ピクチャ内の第1のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えて位置している、および(ii)第2の参照ピクチャ内の第1のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界を越えて位置している、の一方であるかどうかが決定される。
【0218】
(S2930)で、(i)第1の参照ピクチャ内の第1のサブブロックの第1の参照サブブロックの境界が第1の参照ピクチャの境界を越えており、かつ(ii)第2の参照ピクチャ内の第1のサブブロックの第2の参照サブブロックの境界が第2の参照ピクチャの境界内に位置していることに応答して、現在のブロックの第1のサブブロックの予測サンプルが、第1のサブブロックが第2の参照ピクチャの第2の参照サブブロックに基づいて再構成されるように単予測モードに基づいて生成される。
【0219】
次いで、プロセスは(S2999)に進み、終了する。
【0220】
プロセス(2900)は、適切に適合されることができる。プロセス(2900)の(1つまたは複数の)ステップは、修正および/または省略されることができる。(1つまたは複数の)追加のステップが追加されることができる。任意の適切な実施順序が使用されることができる。
【0221】
上述された技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶されることができる。例えば、
図30は、開示の主題の特定の実施形態を実装するのに適したコンピュータシステム(3000)を示している。
【0222】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などを介して実行されることができる命令を含むコードを作成するためにアセンブリ、コンパイル、リンクなどのメカニズムを施されうる、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされることができる。
【0223】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行されることができる。
【0224】
コンピュータシステム(3000)について
図30に示される構成要素は、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図されていない。構成要素の構成は、コンピュータシステム(3000)の例示的な実施形態に示される構成要素のいずれか1つまたは組み合わせに関連するいかなる依存性も要件も有すると解釈されるべきではない。
【0225】
コンピュータシステム(3000)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を介した、1人または複数の人間ユーザによる入力に応答してもよい。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用されることができる。
【0226】
入力ヒューマンインターフェースデバイスは、キーボード(3001)、マウス(3002)、トラックパッド(3003)、タッチスクリーン(3010)、データグローブ(図示せず)、ジョイスティック(3005)、マイクロフォン(3006)、スキャナ(3007)、カメラ(3008)のうちの1つまたは複数(それぞれ1つのみ図示)を含んでもよい。
【0227】
コンピュータシステム(3000)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激してもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(3010)、データグローブ(図示せず)、またはジョイスティック(3005)による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスもありうる)、オーディオ出力デバイス(スピーカ(3009)、ヘッドホン(図示せず)など)、視覚出力デバイス(例えば、各々タッチスクリーン入力能力を有するかまたは有さず、各々触覚フィードバック能力を有するかまたは有さず、その一部は2次元視覚出力または立体出力などの手段による3次元を超える出力を出力することが可能でありうる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(3010)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)など)ならびに、プリンタ(図示せず)を含んでもよい。
【0228】
コンピュータシステム(3000)はまた、CD/DVDまたは同様の媒体(3021)を有するCD/DVD ROM/RW(3020)を含む光媒体、サムドライブ(3022)、リムーバブルハードドライブまたはソリッドステートドライブ(3023)、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどの人間がアクセス可能な記憶デバイスおよびそれらの関連媒体も含むことができる。
【0229】
当業者はまた、本開示の主題と関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことも理解するはずである。
【0230】
コンピュータシステム(3000)はまた、1つまたは複数の通信ネットワーク(3055)へのインターフェース(3054)も含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などとすることができる。ネットワークの例は、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CANBusを含む車両用および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(3049)(例えば、コンピュータシステム(3000)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、一般に、以下で説明されるように、システムバスに接続することによってコンピュータシステム(3000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースや、スマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(3000)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、テレビ放送)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双方向とすることができる。特定のプロトコルおよびプロトコルスタックが、上述されたようにそれらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0231】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(3000)のコア(3040)に取り付けられることができる。
【0232】
コア(3040)は、1つまたは複数の中央処理装置(CPU)(3041)、グラフィックスプロセッシングユニット(GPU)(3042)、フィールドプログラマブルゲートエリア(FPGA)(3043)の形式の専用プログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(3044)、グラフィックスアダプタ(3050)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(3045)、ランダムアクセスメモリ(3046)、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ(3047)と共に、システムバス(3048)を介して接続されうる。いくつかのコンピュータシステムでは、システムバス(3048)は、追加のCPU、GPUなどによる拡張を可能にするために1つまたは複数の物理プラグの形式でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス(3048)に直接取り付けられることも、または周辺バス(3049)を介して取り付けられることもできる。一例では、スクリーン(3010)は、グラフィックスアダプタ(3050)に接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0233】
CPU(3041)、GPU(3042)、FPGA(3043)、およびアクセラレータ(3044)は、組み合わされて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(3045)またはRAM(3046)に記憶されることができる。RAM(3046)には暫定的なデータも記憶されることができるが、永続データは、例えば、内部大容量ストレージ(3047)に記憶されることができる。メモリデバイスのいずれかへの高速記憶および取り出しは、1つまたは複数のCPU(3041)、GPU(3042)、大容量ストレージ(3047)、ROM(3045)、RAM(3046)などと密接に関連付けられることができるキャッシュメモリの使用によって可能とされることができる。
【0234】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものとすることもでき、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものとすることもできる。
【0235】
限定としてではなく例として、アーキテクチャを有するコンピュータシステム(3000)、具体的にはコア(3040)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具体化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたようなユーザアクセス可能な大容量ストレージ、ならびにコア内部の大容量ストレージ(3047)やROM(3045)などの非一時的な性質のものであるコア(3040)の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(3040)によって実行されることができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(3040)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(3046)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ソフトウェアの代わりに、またはソフトウェアと共に本明細書で説明された特定のプロセスまたは特定のプロセスの特定の部分を実行するように動作することができる回路(例えば、アクセラレータ(3044))に配線されるかまたは他の方法で具体化されたロジックの結果として機能を提供することもできる。ソフトウェアへの言及は、適切な場合には、ロジックを包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0236】
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:Group of Pictures
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:コーディングユニット
【0237】
本開示はいくつかの例示的な実施形態を説明しているが、変更形態、置換形態、および様々な代替の均等物が存在し、それらは本開示の範囲内に入る。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具体化する、よって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0238】
101 サンプル、102 矢印、103 矢印、104 正方形ブロック、110 概略図、201 現在のブロック、300 通信システム、310 端末デバイス、320 端末デバイス、330 端末デバイス、340 端末デバイス、350 ネットワーク、400 通信システム、401 ビデオソース、402 ビデオピクチャのストリーム、403 ビデオエンコーダ、404 エンコーディングされたビデオデータ、405 ストリーミングサーバ、406 クライアントサブシステム、407 エンコーディングされたビデオデータのコピー、408 クライアントサブシステム、409 エンコーディングされたビデオデータのコピー、410 ビデオデコーダ、411 ビデオピクチャのストリーム、412 ディスプレイ、413 キャプチャサブシステム、420 電子デバイス、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 インターデコーダ、901 現在のブロック、902 近傍ブロック、903 近傍ブロック、904 近傍ブロック、905 近傍ブロック、906 近傍ブロック、1102 時間マージ候補のスケーリングされた動きベクトル、1104 並置CU、1106 現在のピクチャの参照ピクチャ、1108 現在のピクチャ、1110 並置ピクチャの参照ピクチャ、1112 並置ピクチャ、1302 ブロック、1304 ブロック、1400 現在のブロック、1402 中央サンプルの動きベクトル、1404 サブブロック、1602 CU、1604 現在のブロック、1702 現在のブロック、1800 現在のブロック、1802 サブブロック、1804 サンプル、1806 参照ピクセル、1808 参照ピクセル、1810 サブブロック、1902 現在のCU、1904 空間的近傍A1、2002 現在のピクチャ、2004 現在のCU、2006 サブCU、2008 近傍ブロックA1、2010 動きシフト(またはDV)、2012 並置ピクチャ、2014 参照ブロック、2016 対応するブロック(または対応するサブCU)、2018 参照ブロックA1’、2102 拡張された行/列、2104 CU、2106 CUの境界、2202 現在のピクチャ、2204 参照ピクチャリストL0、2206 参照ピクチャリストL1、2208 現在のブロック、2210 第1の候補参照ブロック、2212 初期参照ブロック、2214 初期参照ブロック、2216 第1の候補参照ブロック、2302 グループ、2500 CU、2502 幾何学的パーティションエッジ、2504 第1の部分、2506 第2の部分、2702 参照リストL0からの参照ピクチャ、2704 参照ブロック、2706 現在のブロック、2708 参照ピクチャ、2710 参照ブロック、2712 境界、2714 参照サブブロック、2716 参照サブブロック、2718 陰影付きサブブロック、2720 陰影なしサブブロック、2722 サブブロック、2724 サブブロック、2726 境界、2800 デコーディングプロセス、2900 エンコーディングプロセス、3000 コンピュータシステム、3001 キーボード、3002 マウス、3003 トラックパッド、3005 ジョイスティック、3006 マイクロフォン、3007 スキャナ、3008 カメラ、3009 スピーカ、3010 タッチスクリーン、3020 CD/DVD ROM/RW、3021 CD/DVDまたは同様の媒体、3022 サムドライブ、3023 リムーバブルハードドライブまたはソリッドステートドライブ、3040 コンピュータシステムのコア、3041 中央処理装置(CPU)、3042 グラフィックスプロセッシングユニット(GPU)、3043 フィールドプログラマブルゲートエリア(FPGA)、3044 ハードウェアアクセラレータ、3045 読み出し専用メモリ(ROM)、3046 ランダムアクセスメモリ、3047 内部大容量ストレージ、3048 システムバス、3049 周辺バス、3050 グラフィックスアダプタ、3054 インターフェース、3055 通信ネットワーク
【国際調査報告】