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

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

▶ ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッドの特許一覧

特表2024-536200ビデオ符号化における境界外条件を考慮した動き補償
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】ビデオ符号化における境界外条件を考慮した動き補償
(51)【国際特許分類】
   H04N 19/109 20140101AFI20240927BHJP
   H04N 19/176 20140101ALI20240927BHJP
   H04N 19/139 20140101ALI20240927BHJP
【FI】
H04N19/109
H04N19/176
H04N19/139
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024519468
(86)(22)【出願日】2022-10-31
(85)【翻訳文提出日】2024-03-28
(86)【国際出願番号】 US2022048484
(87)【国際公開番号】W WO2023076700
(87)【国際公開日】2023-05-04
(31)【優先権主張番号】63/273,930
(32)【優先日】2021-10-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【弁理士】
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【弁理士】
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】クオ、チョー-ウェイ
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】ヤン、ニン
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】ユイ、ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA14
5C159MA19
5C159MA21
5C159MC11
5C159ME01
5C159NN21
5C159PP04
5C159RC11
5C159TA30
5C159TB08
5C159TC33
5C159UA02
5C159UA05
(57)【要約】
ビデオ符号化方法、装置、および非一過性コンピュータ可読記憶媒体が提供される。1つの方法において、デコーダは、現在符号化ブロックのための第1の参照ピクチャおよび第2の参照ピクチャを導出する。デコーダは、第1の参照ピクチャからの動き補償プロセスを使用して、第1の参照ピクチャに関連付けられた第1の動きベクトルに基づいて第1の予測子サンプルを導出する。デコーダは、第2の参照ピクチャからの動き補償プロセスを使用して、第2の参照ピクチャに関連付けられた第2の動きベクトルに基づいて第2の予測子サンプルを導出する。デコーダは、第1の予測子サンプルまたは第2の予測子サンプルのうちの少なくとも1つおよび境界外(OOB)条件に基づいて、現在符号化ブロック内の最終予測子サンプルを取得する。
【特許請求の範囲】
【請求項1】
デコーダによって、現在符号化ブロックのための第1の参照ピクチャおよび第2の参照ピクチャを導出することと、
前記デコーダによって、前記第1の参照ピクチャからの動き補償プロセスを使用して、前記第1の参照ピクチャに関連付けられた第1の動きベクトルに基づいて第1の予測子サンプルを導出することと、
前記デコーダによって、前記第2の参照ピクチャからの前記動き補償プロセスを使用して、前記第2の参照ピクチャに関連付けられた第2の動きベクトルに基づいて第2の予測子サンプルを導出することと、
前記デコーダによって、前記第1の予測子サンプルまたは前記第2の予測子サンプルのうちの少なくとも1つおよび境界外(OOB)条件に基づいて、前記現在符号化ブロック内の最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項2】
前記OOB条件が、
前記第1の予測子サンプルがOOBであるかどうか、および
前記第2の予測子サンプルがOOBであるかどうか、
を含む、請求項1に記載のビデオ符号化方法。
【請求項3】
前記デコーダによって、前記第1の予測子サンプルがOOBであるかどうかを決定することと、前記第2の予測子サンプルがOOBであるかどうかを決定することによって、前記OOB条件を取得することをさらに含む、請求項2に記載のビデオ符号化方法。
【請求項4】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記第2の参照ピクチャの前記第2の予測子サンプルを前記現在符号化ブロックの前記最終予測子サンプルとして決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項5】
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記第1の参照ピクチャの前記第1の予測子サンプルを前記現在符号化ブロックの前記最終予測子サンプルとして決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項6】
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBであるか、または前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBではないとの決定に応答して、前記第1の予測子サンプルに第1の重みを割り当て、前記第2の予測子サンプルに第2の重みを割り当てることと、
前記第1の予測子サンプルおよび前記第2の予測子サンプルの加重平均に基づいて、前記現在符号化ブロックの前記最終予測子サンプルを決定することと、
をさらに含む、請求項3に記載のビデオ符号化方法。
【請求項7】
前記第1の予測子サンプルに割り当てられた前記第1の重みが、前記第2の予測子サンプルに割り当てられた前記第2の重みに等しく、前記現在符号化ブロックの前記最終予測子サンプルが、前記第1の予測子サンプルおよび前記第2の予測子サンプルの平均に基づいて決定される、請求項6に記載のビデオ符号化方法。
【請求項8】
前記現在符号化ブロックが符号化ユニットレベルの重みを用いた双予測(BCW)モードとして符号化されているとの決定に応答して、前記第1の予測子サンプルと前記第2の予測子サンプルとを組み合わせて、前記BCW重み付けに基づいて前記現在符号化ブロックの前記最終予測子サンプルを取得することをさらに含む、請求項6に記載のビデオ符号化方法。
【請求項9】
前記現在符号化ブロックに対して双方向オプティカルフロー(BDOF)が有効になっているとの決定に応答して、前記第1の予測子サンプルと前記第2の予測子サンプルとを組み合わせて、前記第1の予測子サンプルに割り当てられた前記第1の重み、前記第2の予測子サンプルに割り当てられた前記第2の重み、およびBDOFオフセットに基づいて、前記現在符号化ブロックの前記最終予測子サンプルを取得することをさらに含む、請求項6に記載のビデオ符号化方法。
【請求項10】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記BDOFオフセットを0と設定することと、
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記BDOFオフセットを0と設定することと
をさらに含む、請求項9に記載のビデオ符号化方法。
【請求項11】
前記第1の予測子サンプルおよび前記第2の予測子サンプルがOOBであるかどうかを決定することが、
予測子サンプルの垂直方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBである、または前記予測子サンプルの水平方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBであるとの決定に応答して、前記予測子サンプルがOOBであると決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項12】
前記第1の予測子サンプルおよび前記第2の予測子サンプルがOOBであるかどうかを決定することが、
予測子サンプルの水平座標または垂直座標のうちの少なくとも1つが前記参照ピクチャの前記境界を距離しきい値分だけ超えているとの決定に応答すること
をさらに含む、請求項3に記載のビデオ符号化方法。
【請求項13】
前記距離しきい値が2分の1サンプルに等しい、請求項12に記載のビデオ符号化方法。
【請求項14】
デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを決定することと、
前記デコーダによって、前記予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルにゼロの追加の重み付けを割り当てて、前記現在符号化ブロックの最終予測子サンプルを取得することと、
前記デコーダによって、前記予測子サンプルがOOBではないとの決定に応答して、前記動き補償プロセスによって生成された前記2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルにゼロ以外の追加の重み付けを割り当てて、前記現在符号化ブロックの前記最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項15】
前記予測子サンプルを生成するために使用される前記整数参照サンプルに基づいて、前記予測子サンプルがOOBであるかどうかを決定することが、
前記予測子サンプルを生成するために使用される前記整数参照サンプルのうちの少なくとも1つが参照ピクチャの外側に位置するとの決定に応答して、前記予測子サンプルがOOBであると決定することと、
前記予測子サンプルを生成するために使用される前記整数参照サンプルのすべてが前記参照ピクチャ内に位置するとの決定に応答して、前記予測子サンプルがOOBではないと決定することと、
をさらに含む、請求項14に記載のビデオ符号化方法。
【請求項16】
第1の予測子サンプルがOOBであり、第2の予測子サンプルがOOBではないとの決定に応答して、前記第1の予測子サンプルに前記ゼロの追加の重み付けを割り当て、前記第2の予測子サンプルに追加の重み付け2を割り当てることと、
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記第1の予測子サンプルに前記追加の重み付け2を割り当て、前記第2の予測子サンプルに前記ゼロの追加の重み付けを割り当てることと、
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBであるとの決定に応答して、前記第1の予測子サンプルおよび前記第2の予測子サンプルに前記追加の重み付け1を割り当てることと、
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBではないとの決定に応答して、前記第1の予測子サンプルおよび前記第2の予測子サンプルに前記追加の重み付け1を割り当てることと
をさらに含む、請求項14に記載のビデオ符号化方法。
【請求項17】
前記現在符号化ブロックが符号化ユニットレベルの重みを用いた双予測(BCW)モードとして符号化されているとの決定に応答して、BCW重み付けおよび追加の重み付けを用いて、前記動き補償プロセスによって生成された第1の予測子サンプルと第2の予測子サンプルとを組み合わせることをさらに含む、請求項14に記載のビデオ符号化方法。
【請求項18】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記第1の予測子サンプルに前記ゼロの追加の重み付けを割り当て、前記第2の予測子サンプルに前記追加の重み付け8/wを割り当てることと、
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記第1の予測子サンプルに前記追加の重み付け8/wを割り当て、前記第2の予測子サンプルに前記ゼロの追加の重み付けを割り当てることと、
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBであるとの決定に応答して、前記第1の予測子サンプルおよび前記第2の予測子サンプルに前記追加の重み付け1を割り当てることと、
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBではないとの決定に応答して、前記第1の予測子サンプルおよび前記第2の予測子サンプルに前記追加の重み付け1を割り当てることと、をさらに含み、
wが前記BCW重み付けである、請求項17に記載のビデオ符号化方法。
【請求項19】
現在符号化ブロックに対して双方向オプティカルフロー(BDOF)が有効になっているとの決定に応答して、追加の重み付けおよびBDOFオフセットを用いて、前記動き補償プロセスによって生成された第1の予測子サンプルと第2の予測子サンプルとを組み合わせることをさらに含む、請求項14に記載のビデオ符号化方法。
【請求項20】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記BDOFオフセットを0と設定することと、
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記BDOFオフセットを0と設定することと、
をさらに含む、請求項19に記載のビデオ符号化方法。
【請求項21】
前記予測子サンプルがOOBであるかどうかを決定することが、
前記予測子サンプルの垂直方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBである、または前記予測子サンプルの水平方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBであるとの決定に応答して、前記予測子サンプルがOOBであると決定することを含む、請求項14に記載のビデオ符号化方法。
【請求項22】
前記予測子サンプルがOOBであるかどうかを決定することが、
前記予測子サンプルの水平座標または垂直座標のうちの少なくとも1つが前記参照ピクチャの前記境界を距離しきい値分だけ超えているとの決定に応答すること、をさらに含む、請求項14に記載のビデオ符号化方法。
【請求項23】
前記距離しきい値が2分の1サンプルに等しい、請求項22に記載のビデオ符号化方法。
【請求項24】
デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを、前記予測子サンプルを生成するために使用される整数参照サンプルに基づいて決定することと、
前記デコーダによって、前記予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルに第1の追加の重み付けを割り当てて、前記現在符号化ブロックの最終予測子サンプルを取得することと、
前記デコーダによって、前記予測子サンプルがOOBではないとの決定に応答して、前記動き補償プロセスによって生成された前記2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルに第2の追加の重み付けを割り当てて、前記現在符号化ブロックの前記最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項25】
前記2つ以上の予測子サンプルを組み合わせる際に、補間のためにOOB整数参照サンプルを使用して予測子サンプルにより少ない重みを割り当てることをさらに含み、前記重みが、前記OOB整数参照サンプルの数に反比例して割り当てられる、請求項24に記載のビデオ符号化方法。
【請求項26】
前記2つ以上の予測子サンプルを組み合わせる際に、補間のためにOOB整数参照サンプルを使用して予測子サンプルに重みを割り当てることをさらに含み、前記重みが、異なるレベルでビットストリームにおいて信号伝達される、請求項24に記載のビデオ符号化方法。
【請求項27】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を備えるビデオ符号化装置であって、
前記1つまたは複数のプロセッサが、前記命令の実行時に、請求項1から26のいずれかに記載の前記方法を実行するように構成される、ビデオ符号化装置。
【請求項28】
1つまたは複数のコンピュータプロセッサによって実行されたときに前記1つまたは複数のコンピュータプロセッサに請求項1から26のいずれかに記載の方法を実行させるコンピュータ実行可能命令を記憶する、ビデオ符号化用の非一過性コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年10月30日に出願された仮出願第63/273,930号に基づき、当該仮出願に対する優先権を主張するものであり、当該仮出願の内容全体は、あらゆる目的で参照により本明細書に組み込まれる。
本開示は、ビデオの符号化および圧縮に関する。より詳細には、本開示は、ビデオ符号化におけるインター予測のための方法および装置に関する。
【背景技術】
【0002】
デジタルビデオは、デジタルテレビ、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、スマートフォン、ビデオ電話会議デバイス、ビデオストリーミングデバイスなど、様々な電子デバイスによってサポートされている。電子デバイスは、通信ネットワークを介してデジタルビデオデータを送信および受信するか、もしくは他の方法で通信し、かつ/またはデジタルビデオデータを記憶デバイスに記憶する。通信ネットワークの帯域幅容量に制限があるため、また記憶デバイスのメモリリソースに制限があるため、ビデオデータが通信または記憶される前に1つまたは複数のビデオ符号化標準に従ってビデオデータを圧縮するためにビデオ符号化が使用される場合がある。例えば、ビデオ符号化標準は、多用途ビデオ符号化(VVC:Versatile Video Coding)、共同サーチテスト・モデル(JEM:Joint Exploration test Model)、高効率ビデオ符号化(HEVC:High-Efficiency Video Coding/H.265)、高度ビデオ符号化(AVC:Advanced Video Coding/H.264)、動画像専門家グループ(MPEG:Moving Picture Expert Group)符号化などを含む。ビデオ符号化は、一般に、ビデオデータに固有の冗長性を活用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化は、ビデオ品質の低下を回避または最小化しながら、ビデオデータをより低いビットレートを使用する形式に圧縮することを目的としている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示の例は、イントラ予測を使用したビデオ符号化方法および装置を提供する。
【課題を解決するための手段】
【0004】
本開示の第1の態様によれば、ビデオ符号化方法が提供される。方法は、デコーダによって、現在符号化ブロックのための第1の参照ピクチャおよび第2の参照ピクチャを導出することと、デコーダによって、第1の参照ピクチャからの動き補償プロセスを使用して、第1の参照ピクチャに関連付けられた第1の動きベクトルに基づいて第1の予測子サンプルを導出することと、デコーダによって、第2の参照ピクチャからの動き補償プロセスを使用して、第2の参照ピクチャに関連付けられた第2の動きベクトルに基づいて第2の予測子サンプルを導出することと、デコーダによって、第1の予測子サンプルまたは第2の予測子サンプルのうちの少なくとも1つおよび境界外(OOB)条件に基づいて、現在符号化ブロック内の最終予測子サンプルを取得することと、を含んでもよい。
【0005】
本開示の第2の態様によれば、ビデオ符号化方法が提供される。方法は、デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを決定することと、デコーダによって、予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に予測子サンプルにゼロの追加の重み付けを割り当てて、現在符号化ブロックの最終予測子サンプルを取得することと、デコーダによって、予測子サンプルがOOBではないとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に予測子サンプルにゼロ以外の追加の重み付けを割り当てて、現在符号化ブロックの最終予測子サンプルを取得することと、を含んでもよい。
【0006】
本開示の第2の態様によれば、ビデオ符号化方法が提供される。方法は、デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを、予測子サンプルを生成するために使用される整数参照サンプルに基づいて決定することと、デコーダによって、予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に予測子サンプルに第1の追加の重み付けを割り当てて、現在符号化ブロックの最終予測子サンプルを取得することと、デコーダによって、予測子サンプルがOOBではないとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に予測子サンプルに第2の追加の重み付けを割り当てて、現在符号化ブロックの最終予測子サンプルを取得することと、を含んでもよい。
【0007】
上記の概略的な説明および以下の詳細な説明は、単に例示的かつ説明的なものであり、本開示を限定することを意図したものではないことを理解されたい。
【0008】
本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示と一致する例を示し、説明とともに本開示の原理を説明する役割を果たす。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実装形態に係る、ビデオブロックを符号化および復号するための例示的なシステムを示すブロック図である。
図2】本開示のいくつかの実装形態に係る、例示的なビデオエンコーダを示すブロック図である。
図3】本開示のいくつかの実装形態に係る、例示的なビデオデコーダを示すブロック図である。
図4A】本開示のいくつかの実装形態に係る、フレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すブロック図である。
図4B】本開示のいくつかの実装形態に係る、フレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すブロック図である。
図4C】本開示のいくつかの実装形態に係る、フレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すブロック図である。
図4D】本開示のいくつかの実装形態に係る、フレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すブロック図である。
図4E】本開示のいくつかの実装形態に係る、フレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に区分されるかを示すブロック図である。
図5】本開示のいくつかの実装形態に係る、空間マージ候補の位置の例を示す図である。
図6】本開示のいくつかの実装形態に係る、空間マージ候補の冗長性チェックのために考慮される候補ペアの例を示す図である。
図7】本開示のいくつかの実装形態に係る、時間マージ候補の例示的な動きベクトルスケーリングを示す図である。
図8】本開示のいくつかの実装形態に係る、時間マージ候補の候補位置を示す図である。
図9A】本開示のいくつかの実装形態に係る、MMVDサーチ点の一例を示す図である。
図9B】本開示のいくつかの実装形態に係る、MMVDサーチ点の一例を示す図である。
図10A】本開示のいくつかの実装形態に係る、制御点ベースのアフィン動きモデルの一例を示す図である。
図10B】本開示のいくつかの実装形態に係る、制御点ベースのアフィン動きモデルの一例を示す図である。
図11】本開示のいくつかの実装形態に係る、サブブロックごとのアフィンMVFの一例を示す図である。
図12】本開示のいくつかの実装形態に係る、継承されたアフィン動き予測子の場所を示す図である。
図13】本開示のいくつかの実装形態に係る、構築されたアフィンマージモードの候補位置の場所を示す図である。
図14】本開示のいくつかの実装形態に係る、サブブロックMVおよび画素の一例を示す図である。
図15A】本開示のいくつかの実装形態に係る、ATVMPによって使用される空間的に隣接するブロックの例を示す図である。
図15B】本開示のいくつかの実装形態に係る、SbTMVPプロセスの一例を示す図である。
図16】本開示のいくつかの実装形態に係る、BDOFにおいて使用される拡張されたCU領域の一例を示す図である。
図17】本開示のいくつかの実装形態に係る、復号側動きベクトル精緻化の一例を示す図である。
図18】本開示のいくつかの実装形態に係る、同一の角度によってグループ化されたGPM分裂の例を示す図である。
図19】本開示のいくつかの実装形態に係る、幾何学的区分モードの単予測MV選択の一例を示す図である。
図20】本開示のいくつかの実装形態に係る、CIIP重み導出において使用される上および左の隣接ブロックの例を示す図である。
図21】本開示のいくつかの実装形態に係る、空間マージ候補を導出するために使用される空間的に隣接するブロックの一例を示す図である。
図22】本開示のいくつかの実装形態に係る、初期MVの周囲のサーチエリアに対して実行されるテンプレートマッチングの一例を示す図である。
図23】本開示のいくつかの実装形態に係る、サーチエリア内のダイヤモンド領域の一例を示す図である。
図24】本開示のいくつかの実装形態に係る、2分の1画素位相での補間フィルタおよびVVC補間フィルタの周波数応答を示す図である。
図25】本開示のいくつかの実装形態に係る、テンプレートおよび参照ピクチャ内のテンプレートの参照サンプルの一例を示す図である。
図26】本開示のいくつかの実装形態に係る、現在ブロックのサブブロックの動き情報を使用した、サブブロック動きを有するブロックのテンプレートおよびテンプレートの参照サンプルの一例を示す図である。
図27】本開示のいくつかの実装形態に係る、動き補償のためのパディングされた参照ピクチャの一例を示す図である。
図28】本開示のいくつかの実装形態に係る、分数補間の一例を示す図である。
図29】本開示のいくつかの実装形態に係る、ユーザインターフェースと結合されたコンピューティング環境を示すブロック図である。
図30】本開示のいくつかの実装形態に係る、ビデオ符号化プロセスを示すブロック図である。
【発明を実施するための形態】
【0010】
次に、例示的な実施形態を詳細に参照するが、その実施形態の例は添付の図面に示されている。以下の説明は添付の図面を参照しており、別段の記載がない限り、異なる図面における同じ番号は同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装形態は、本開示に則したすべての実装形態を表すものではない。むしろ、その実装形態は、添付の特許請求の範囲に記載される本開示に関連する態様に則した装置および方法の単なる例である。
【0011】
本開示で使用される用語は、特定の実施形態を説明することのみを目的としており、本開示を限定するよう意図されたものではない。単数形「a」、「an」、および「the」は、本開示および添付の特許請求の範囲で使用されるとき、文脈上明らかに別段の指示がない限り複数形も含むよう意図されている。本明細書で使用される「および/または」という用語は、関連する列挙された項目の1つまたは複数の任意またはすべての可能な組合せを意味するように、またそれらを含むように意図されていることも理解されたい。
【0012】
本明細書において「第1の」、「第2の」、「第3の」などの用語は様々な情報を説明するために使用され得るが、これらの用語によってその情報が限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリと区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報は第2の情報と称されることがあり、同様に、第2の情報は第1の情報と称されることがある。「場合」という用語は、本明細書で使用されるとき、文脈に応じて「ときに」、「に際して」、または「判断に応じて」を意味すると理解され得る。
【0013】
ビデオデータを圧縮するために、様々なビデオ符号化技法が使用されることがある。ビデオ符号化は、1つまたは複数のビデオ符号化標準に従って実行される。例えば、今日では、よく知られたビデオ符号化標準は、多用途ビデオ符号化(VVC:Versatile Video Coding)、高効率ビデオ符号化(HEVC:High Efficiency Video Coding、H.265またはMPEG-H Part2とも呼ばれる)、および高度ビデオ符号化(AVC:Advanced Video Coding、H.264またはMPEG-4 Part10とも呼ばれる)を含み、これらは、ISO/IEC MPEGおよびITU-T VECGによって共同開発されている。AOMedia Video 1(AV1)は、その以前の標準VP9の後継としてAlliance for Open Media(AOM)によって開発された。デジタル・オーディオおよびデジタルビデオ圧縮標準を指すオーディオビデオ符号化(AVS)は、中国のオーディオおよびビデオ符号化標準ワークグループによって開発された別のビデオ圧縮標準シリーズである。既存のビデオ符号化標準のほとんどは、有名なハイブリッドビデオ符号化フレームワークに基づいて、すなわち、ビデオ画像またはシーケンスに存在する冗長性を削減するためのブロックベースの予測方法(例えば、インター予測、イントラ予測)を使用して、また予測誤差のエネルギーをコンパクト化するための変換符号化を使用して、構築されている。ビデオ符号化技法の重要な目標は、ビデオ品質の低下を回避または最小化しながら、ビデオデータをより低いビットレートを使用する形式に圧縮することである。
【0014】
第1世代AVS標準は、中国の国家標準「情報技術、高度オーディオビデオ符号化、Part2:ビデオ」(AVS1として知られている)および「情報技術、高度オーディオビデオ符号化、Part16:ラジオ・テレビ・ビデオ」(AVS+として知られている)を含む。これは、MPEG-2標準と比較して、同じ知覚品質で約50%のビットレートの節約を実現することができる。AVS1標準のビデオ部分は、2006年2月に中国の国家標準として公布された。第2世代AVS標準は、主に追加のHD TVプログラムの送信を目的とした一連の中国の国家標準「情報技術、効率的なマルチメディア符号化」(AVS2として知られる)を含む。AVS2の符号化効率はAVS+の2倍である。2016年5月、AVS2が中国の国家標準として発行された。一方、AVS2標準のビデオ部分は、アプリケーションの国際標準の1つとして電気電子学会(IEEE)によって提起された。AVS3標準は、最新の国際標準HEVCの符号化効率を超えることを目的とした、UHDビデオアプリケーション向けの新世代ビデオ符号化標準の1つである。2019年3月、第68回AVS会議において、HEVC標準と比較して約30%のビットレートの節約を実現するAVS3-P2ベースラインが完成した。現在、高性能モデル(HPM)と呼ばれる1つの参照ソフトウェアがあり、AVS3標準の参照実装を実証するためにAVSグループによって維持されている。
【0015】
図1は、本開示のいくつかの実装形態に係る、ビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるビデオデータを生成および符号化するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップ・ボックス、デジタルテレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、多種多様な電子デバイスのいずれかを含んでもよい。いくつかの実装形態では、ソースデバイス12および宛先デバイス14にはワイヤレス通信機能が装備されている。
【0016】
いくつかの実装形態では、宛先デバイス14は、復号対象となる符号化されたビデオデータを、リンク16を介して受信してもよい。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な任意のタイプの通信媒体またはデバイスを備えてもよい。一例において、リンク16は、ソースデバイス12が符号化されたビデオデータを宛先デバイス14にリアルタイムで直接送信できるようにする通信媒体を備えてもよい。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信標準に従って変調され、宛先デバイス14に送信されてもよい。通信媒体は、無線周波数(RF:Radio Frequency)スペクトルまたは1つもしくは複数の物理伝送線など、任意のワイヤレスまたはワイヤード通信媒体を含んでもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用であり得る任意の他の機器を含んでもよい。
【0017】
いくつかの他の実装形態では、符号化されたビデオデータは、出力インターフェース22から記憶デバイス32に送信されてもよい。その後、記憶デバイス32内の符号化されたビデオデータは、入力インターフェース28を介して宛先デバイス14によってアクセスされてもよい。記憶デバイス32は、ハード・ドライブ、ブルーレイディスク、デジタル多用途ディスク(DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、分散されたまたはローカルにアクセスされる様々なデータ記憶媒体のいずれかを含んでもよい。さらなる例では、記憶デバイス32は、ソースデバイス12によって生成された符号化されたビデオデータを保持することができるファイルサーバまたは別の中間記憶デバイスに対応してもよい。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス32から、記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用)、ファイル転送プロトコル(FTP:File Transfer Protocol)サーバ、ネットワーク接続ストレージ(NAS:Network Attached Storage)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、ワイヤレスチャネル(例えば、ワイヤレスフィデリティ(Wi-Fi)接続)、ワイヤード接続(例えば、デジタル加入者線(DSL:Digital Subscriber Line)、ケーブル・モデムなど)、またはファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに好適な両方の組合せを含む任意の標準データ接続を通じて、符号化されたビデオデータにアクセスしてもよい。記憶デバイス32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってもよい。
【0018】
図1に示されるように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18は、ビデオ捕捉デバイス、例えば、ビデオカメラ、以前に捕捉されたビデオを含むビデオアーカイブ、ビデオコンテンツ・プロバイダからビデオを受信するためのビデオフィード・インターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含んでもよい。一例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソースデバイス12および宛先デバイス14は、カメラ電話またはビデオ電話を形成してもよい。しかしながら、本出願で説明される実装形態は、一般にビデオ符号化に適用可能であってもよく、ワイヤレスおよび/またはワイヤードアプリケーションに適用可能であってもよい。
【0019】
捕捉されたビデオ、事前に捕捉されたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信されてもよい。符号化されたビデオデータはまた(または代替として)、復号および/または再生のために宛先デバイス14または他のデバイスによって後でアクセスするために、記憶デバイス32に記憶されてもよい。出力インターフェース22は、モデムおよび/または送信機をさらに含んでもよい。
【0020】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。入力インターフェース28は、受信機および/またはモデムを含み、リンク16を介して、符号化されたビデオデータを受信してもよい。リンク16を介して通信されるまたは記憶デバイス32上に提供される符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30によって使用するための、ビデオエンコーダ20によって生成される様々な構文要素を含んでもよい。このような構文要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される、符号化されたビデオデータ内に含まれてもよい。
【0021】
いくつかの実装形態では、宛先デバイス14は、ディスプレイデバイス34を含んでもよく、ディスプレイデバイス34は、一体化されたディスプレイデバイス、および宛先デバイス14と通信するように構成された外部ディスプレイデバイスであってもよい。ディスプレイデバイス34は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマ・ディスプレイ、有機発光ダイオード(OLED:Organic Light Emitting Diode)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備えてもよい。
【0022】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、AVC、またはそのような標準の拡張などの独自の標準または業界標準に従って動作してもよい。本出願は特定のビデオ符号化/復号標準に限定されず、他のビデオ符号化/復号標準にも適用可能であることを理解されたい。ソースデバイス12のビデオエンコーダ20が、これらの現在または将来の標準のいずれかに従ってビデオデータを符号化するように構成され得ることが一般に企図されている。同様に、宛先デバイス14のビデオデコーダ30が、これらの現在または将来の標準のいずれかに従ってビデオデータを復号するように構成され得ることも一般に企図されている。
【0023】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェアにおいて部分的に実装される場合、ソフトウェア用の命令を好適な非一過性コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行して、本開示で開示されたビデオ符号化/復号動作を実施してもよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つもしくは複数のエンコーダまたはデコーダに含まれてもよく、そのいずれも、それぞれのデバイス内の組み合わされたエンコーダ/デコーダ(CODEC:combined encoder/decoder)の一部として統合されてもよい。
【0024】
図2は、本出願で説明されるいくつかの実装形態に係る、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化およびインター予測符号化を実施してもよい。イントラ予測符号化は、空間予測に依存して、所与のビデオフレームまたはピクチャ内のビデオデータにおける空間的冗長性を削減または除去する。インター予測符号化は、時間予測に依存して、ビデオシーケンスの隣接するビデオフレームまたはピクチャ内のビデオデータにおける時間的冗長性を削減または除去する。「フレーム」という用語は、ビデオ符号化の分野では「画像」または「ピクチャ」という用語と同義語として使用される場合があることに留意されたい。
【0025】
図2に示されるように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号化ピクチャバッファ(DPB:Decoded Picture Buffer)64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41はさらに、動き推定ユニット42、動き補償ユニット44、区分ユニット45、イントラ予測処理ユニット46、イントラブロックコピー(BC)ユニット48を含む。いくつかの実装形態では、ビデオエンコーダ20は、ビデオブロック再構成のための逆量子化ユニット58、逆変換処理ユニット60、および加算器62も含む。ブロック境界をフィルタリングして、再構成されたビデオからブロック状アーチファクトを除去するために、加算器62とDPB64との間にデブロッキング・フィルタなどのループ内フィルタ63が配置されてもよい。加算器62の出力をフィルタリングするために、デブロッキング・フィルタに加えて、サンプル適応オフセット(SAO:Sample Adaptive Offset)フィルタおよび/または適応ループ内フィルタ(ALF:Adaptive in-Loop Filter)などの別のループ内フィルタも使用されてもよい。いくつかの例では、ループ内フィルタは省略されてもよく、復号されたビデオブロックは、加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、固定のもしくはプログラム可能なハードウェア・ユニットの形式をとってもよく、または、図示された固定のもしくはプログラム可能なハードウェア・ユニットの1つまたは複数に分割されてもよい。
【0026】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるビデオデータを記憶してもよい。ビデオデータメモリ40内のビデオデータは、例えば、図1に示されたビデオソース18から取得されてもよい。DPB64は、ビデオエンコーダ20によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを符号化する際に使用する参照ビデオデータ(例えば、参照フレームまたは参照ピクチャ)を記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されてもよい。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【0027】
図2に示されるように、予測処理ユニット41内の区分ユニット45は、ビデオデータを受信した後、ビデオデータをビデオブロックに区分する。この区分は、ビデオデータに関連付けられた4分木(QT:Quad-Tree)構造などの予め定められた分裂構造に従ってビデオフレームをスライス、タイル(例えば、ビデオブロックのセット)、または他のより大きな符号化ユニット(CU)に区分することも含んでもよい。ビデオフレームは、サンプル値を有するサンプルの2次元配列または行列であるか、またはそれらとみなされてもよい。配列内のサンプルは、画素またはペルと呼ばれることもある。配列またはピクチャの水平方向および垂直方向(または軸)のサンプルの数が、ビデオフレームのサイズおよび/または解像度を定義する。ビデオフレームは、例えばQT区分を使用することによって複数のビデオブロックに分割されてもよい。ビデオブロックもやはり、ビデオフレームよりも小さい寸法ではあるが、サンプル値を有するサンプルの2次元配列または行列であるか、またはそれらとみなされてもよい。ビデオブロックの水平方向および垂直方向(または軸)のサンプルの数が、ビデオブロックのサイズを定義する。ビデオブロックは、例えば、QT区分、2分木(BT:Binary-Tree)区分、もしくは3分木(TT:Triple-Tree)区分、またはそれらの任意の組合せを反復的に使用することによって、(再びブロックを形成し得る)1つもしくは複数のブロック区分またはサブブロックにさらに区分されてもよい。本明細書で使用される「ブロック」または「ビデオブロック」という用語がフレームまたはピクチャの一部分、特に矩形(正方形または非正方形)部分であり得ることに留意されたい。例えば、HEVCおよびVVCを参照すルートブロックまたはビデオブロックは、符号化ツリーユニット(CTU)、CU、予測ユニット(PU)、もしくは変換ユニット(TU)であるかもしくはそれらに対応してもよく、かつ/または、対応するブロック、例えば、符号化ツリーブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、もしくは変換ブロック(TB)、および/もしくはサブブロックであるかもしくはそれらに対応してもよい。
【0028】
予測処理ユニット41は、誤差結果(例えば、符号化レートおよび歪みのレベル)に基づいて現在のビデオブロックに対して、複数のイントラ予測符号化モードのうちの1つ、または複数のインター予測符号化モードのうちの1つなど、複数の可能な予測符号化モードのうちの1つを選択してもよい。予測処理ユニット41は、結果として得られるイントラ予測符号化ブロックまたはインター予測符号化ブロックを、加算器50に提供して残差ブロックを生成し、加算器62に提供して、後で参照フレームの一部として使用するために符号化ブロックを再構成してもよい。予測処理ユニット41はまた、動きベクトル、イントラ・モード・インジケータ、区分情報、および他のそのような構文情報などの構文要素をエントロピー符号化ユニット56に提供する。
【0029】
現在のビデオブロックにとって適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化対象となる現在ブロックと同じフレーム内の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測符号化を実行して、空間予測を提供してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照フレーム内の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測符号化を実行して、時間予測を提供してもよい。ビデオエンコーダ20は、例えば、ビデオデータのブロックごとに適切な符号化モードを選択するために、複数の符号化パスを実行してもよい。
【0030】
いくつかの実装形態では、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンに従って、参照ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの変位を示す動きベクトルを生成することによって、現在のビデオフレームのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在フレーム内で符号化されている現在ブロックに対する参照フレーム内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの変位を示してもよい。所定のパターンは、シーケンス内のビデオフレームをPフレームまたはBフレームとして指定してもよい。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様の方法で、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよく、または、動き推定ユニット42を利用してブロックベクトルを決定してもよい。
【0031】
ビデオブロックの予測ブロックは、差分絶対値和(SAD:Sum of Absolute Difference)、差分二乗和(SSD:Sum of Square Difference)、または他の差分メトリックによって決定され得る画素差分の観点から、符号化対象となるビデオブロックと厳密に一致するとみなされる参照フレームのブロックもしくは参照ブロックであるか、またはそれらに対応してもよい。いくつかの実装形態では、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を算出してもよい。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8画素位置、または他の分数画素位置の値を補間してもよい。したがって、動き推定ユニット42は、全体の画素位置および分数画素位置に対する動きサーチを実行し、分数画素精度を有する動きベクトルを出力してもよい。
【0032】
動き推定ユニット42は、ビデオブロックの位置を第1の参照フレーム・リスト(リスト0)または第2の参照フレーム・リスト(リスト1)から選択された参照フレームの予測ブロックの位置と比較することによって、インター予測符号化フレーム内のビデオブロックの動きベクトルを算出し、参照フレーム・リストはそれぞれ、DPB64に記憶されている1つまたは複数の参照フレームを識別する。動き推定ユニット42は、算出された動きベクトルを動き補償ユニット44に送り、次いで、エントロピー符号化ユニット56に送る。
【0033】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含んでもよい。動き補償ユニット44は、現在のビデオブロックの動きベクトルを受信すると、参照フレーム・リストのうちの1つにおいて動きベクトルが指し示す予測ブロックの位置を特定し、その予測ブロックをDPB64から取得し、その予測ブロックを加算器50に転送してもよい。次いで、加算器50は、符号化されている現在のビデオブロックの画素値から、動き補償ユニット44によって提供される予測ブロックの画素値を減算することによって、画素差分値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差分値は、ルマ差分成分もしくは彩度差分成分、またはその両方を含んでもよい。動き補償ユニット44はまた、ビデオフレームのビデオブロックを復号する際にビデオデコーダ30によって使用される、ビデオフレームのビデオブロックに関連付けられた構文要素を生成してもよい。構文要素は、例えば、予測ブロックを識別するために使用される動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書に記載の任意の他の構文情報を含んでもよい。動き推定ユニット42および動き補償ユニット44は高度に統合されてもよいが、概念的な目的のために別々に図示されていることに留意されたい。
【0034】
いくつかの実装形態では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関連して上記で説明された方法と同様の方法で、ベクトルを生成して予測ブロックをフェッチしてもよいが、予測ブロックは、符号化されている現在ブロックと同じフレーム内にあり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。具体的には、イントラBCユニット48は、現在ブロックを符号化するために使用するイントラ予測モードを決定してもよい。いくつかの例では、イントラBCユニット48は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し、レート歪み分析を通じてそれらの性能をテストしてもよい。次に、イントラBCユニット48は、テストされた様々なイントラ予測モードの中から、使用する適切なイントラ予測モードを選択し、それに応じてイントラ・モード・インジケータを生成してもよい。例えば、イントラBCユニット48は、テストされた様々なイントラ予測モードに対するレート歪み分析を使用してレート歪み値を算出し、テストされたモードの中から、最良のレート歪み特性を有するイントラ予測モードを、使用する適切なイントラ予測モードとして選択してもよい。レート歪み分析は、一般に、符号化ブロックと、符号化ブロックを作成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、および、符号化ブロックを作成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラBCユニット48は、様々な符号化ブロックの歪みおよびレートから比率を算出して、どのイントラ予測モードがそのブロックに対して最良のレート歪み値を示すかを決定してもよい。
【0035】
他の例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44を全体的または部分的に使用して、本明細書に記載の実装形態に係るイントラBC予測のためのそのような機能を実行してもよい。いずれの事例においても、イントラブロックコピーの場合、予測ブロックは、SAD、SSD、または他の差分メトリックによって決定され得る画素差分の観点から、符号化対象となるブロックと厳密に一致するとみなされるブロックであってもよく、予測ブロックの識別は、サブ整数画素位置の値の算出を含んでもよい。
【0036】
予測ブロックがイントラ予測による同じフレームからのブロックであるか、インター予測による異なるフレームからのブロックであるかに関わらず、ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算することによって残差ビデオブロックを形成し、画素差分値を形成してもよい。残差ビデオブロックを形成する画素差分値は、ルマ成分差分と彩度成分差分との両方を含んでもよい。
【0037】
イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測、またはイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在のビデオブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用するイントラ予測モードを決定してもよい。そのようにするために、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化してもよく、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたイントラ予測モードから、使用する適切なイントラ予測モードを選択してもよい。イントラ予測処理ユニット46は、ブロックに対して選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供してもよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化してもよい。
【0038】
予測処理ユニット41がインター予測またはイントラ予測によって現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT:Discrete Cosine Transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。
【0039】
変換処理ユニット52は、結果として生じる変換係数を量子化ユニット54に送ってもよい。量子化ユニット54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスはまた、係数の一部またはすべてに関連付けられたビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行してもよい。代替として、エントロピー符号化ユニット56が走査を実行してもよい。
【0040】
量子化に続いて、エントロピー符号化ユニット56は、例えば、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)、構文ベースのコンテキスト適応型2値算術符号化(SBAC:Syntax-based context-adaptive Binary Arithmetic Coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)符号化、または別のエントロピー符号化方法論または技法を使用して、量子化された変換係数をビデオビットストリームにエントロピー符号化する。次いで、符号化されたビットストリームは、図1に示されるようにビデオデコーダ30に送信されるか、または、後のビデオデコーダ30への送信もしくはビデオデコーダ30による取得のために、図1に示されるように記憶デバイス32にアーカイブされてもよい。エントロピー符号化ユニット56はまた、符号化されている現在のビデオフレームの動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【0041】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、他のビデオブロックの予測のための参照ブロックを生成するために画素領域において残差ビデオブロックを再構成する。上述されたように、動き補償ユニット44は、DPB64に記憶されたフレームの1つまたは複数の参照ブロックから、動き補償された予測ブロックを生成してもよい。動き補償ユニット44はまた、1つまたは複数の補間フィルタを予測ブロックに適用して、動き推定で使用するためのサブ整数画素値を算出してもよい。
【0042】
加算器62は、再構成された残差ブロックを、動き補償ユニット44によって作成された動き補償された予測ブロックに加算して、DPB64に記憶するための参照ブロックを作成する。次いで、参照ブロックは、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されてもよい。
【0043】
図3は、本出願のいくつかの実装形態に係る、例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81はさらに、動き補償ユニット82、イントラ予測ユニット84、およびイントラBCユニット85を含む。ビデオデコーダ30は、図2に関連してビデオエンコーダ20に関して上記で説明された符号化プロセスとほぼ逆の復号プロセスを実行してもよい。例えば、動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルに基づいて予測データを生成してもよく、一方、イントラ予測ユニット84は、エントロピー復号ユニット80から受信されたイントラ予測モード・インジケータに基づいて予測データを生成してもよい。
【0044】
いくつかの例では、ビデオデコーダ30のユニットは、本出願の実装形態を実行するようにタスクを課されてもよい。また、いくつかの例では、本開示の実装形態は、ビデオデコーダ30のユニットのうちの1つまたは複数に分割されてもよい。例えば、イントラBCユニット85は、単独で、または動き補償ユニット82、イントラ予測ユニット84、およびエントロピー復号ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実装形態を実行してもよい。いくつかの例では、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実行されてもよい。
【0045】
ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素によって復号される、符号化されたビデオビットストリームなどのビデオデータを記憶してもよい。ビデオデータメモリ79に記憶されるビデオデータは、例えば、記憶デバイス32から、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレス・ネットワーク通信を介して、または物理的なデータ記憶媒体(例えば、フラッシュ・ドライブもしくはハード・ディスク)にアクセスすることによって取得されてもよい。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する符号化ピクチャバッファ(CPB)を含んでもよい。ビデオデコーダ30のDPB92は、ビデオデコーダ30によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを復号する際に使用する参照ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスを含むダイナミック・ランダム・アクセス・メモリ(DRAM)などの様々なメモリ・デバイスのいずれかによって形成されてもよい。例示のために、図3では、ビデオデータメモリ79およびDPB92は、ビデオデコーダ30の2つの別個の構成要素として描写されている。しかしながら、当業者には、ビデオデータメモリ79およびDPB92が同じメモリ・デバイスまたは別個のメモリ・デバイスによって提供され得ることが明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであってもよく、または、それらの構成要素に対してオフチップであってもよい。
【0046】
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連する構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトルまたはイントラ予測モード・インジケータ、および他の構文要素を生成する。次いで、エントロピー復号ユニット80は、動きベクトルまたはイントラ予測モード・インジケータおよび他の構文要素を予測処理ユニット81に転送する。
【0047】
ビデオフレームがイントラ予測符号化(I)フレームとしてまたは他のタイプのフレーム内のイントラ符号化予測ブロックに対して符号化されるとき、予測処理ユニット81のイントラ予測ユニット84は、信号伝達されたイントラ予測モード、および現在フレームの以前に復号されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックに対する予測データを生成してもよい。
【0048】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックに対する1つまたは複数の予測ブロックを作成する。予測ブロックのそれぞれは、参照フレーム・リストのうちの1つの中の参照フレームから作成されてもよい。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づくデフォルトの構築技法を使用して、参照フレーム・リストであるリスト0およびリスト1を構築してもよい。
【0049】
いくつかの例では、ビデオブロックが本明細書に記載のイントラBCモードに従って符号化されるとき、予測処理ユニット81のイントラBCユニット85は、エントロピー復号ユニット80から受信されたブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを作成する。予測ブロックは、ビデオエンコーダ20によって定義された現在のビデオブロックと同じピクチャの再構成された領域内にあってもよい。
【0050】
動き補償ユニット82および/またはイントラBCユニット85は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、次いで、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを作成する。例えば、動き補償ユニット82は、受信された構文要素のいくつかを使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラ予測またはインター予測)、インター予測フレーム・タイプ(例えば、BまたはP)、フレームの参照フレーム・リストのうちの1つまたは複数に関する構築情報、フレームの各インター予測符号化ビデオブロックの動きベクトル、フレームの各インター予測符号化ビデオブロックのインター予測ステータス、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定する。
【0051】
同様に、イントラBCユニット85は、受信された構文要素のいくつか、例えばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、フレームのどのビデオブロックが再構成領域内にありDPB92に記憶されるべきであるかに関する構築情報、フレームの各イントラBC予測ビデオブロックのブロックベクトル、フレームの各イントラBC予測ビデオブロックのイントラBC予測ステータス、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定してもよい。
【0052】
動き補償ユニット82はまた、ビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素の補間値を算出してもよい。この場合、動き補償ユニット82は、受信された構文要素からビデオエンコーダ20によって使用される補間フィルタを決定し、その補間フィルタを使用して予測ブロックを作成してもよい。
【0053】
逆量子化ユニット86は、ビデオフレーム内のビデオブロックごとにビデオエンコーダ20によって算出された同じ量子化パラメータを使用して、ビットストリーム内に提供されエントロピー復号ユニット80によってエントロピー復号された量子化変換係数を逆量子化して、量子化度を決定する。逆変換処理ユニット88は、画素領域内の残差ブロックを再構成するために、逆変換、例えば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0054】
動き補償ユニット82またはイントラBCユニット85がベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックの復号されたビデオブロックを再構成する。復号されたビデオブロックをさらに処理するために、加算器90とDPBの間にデブロッキング・フィルタ、SAOフィルタ、および/またはALFなどのループ内フィルタ91が配置されてもよい。いくつかの例では、ループ内フィルタ91は省略されてもよく、復号されたビデオブロックは加算器90によってDPB92に直接提供されてもよい。次いで、所与のフレーム内の復号されたビデオブロックは、次のビデオブロックの後続の動き補償に使用される参照フレームを記憶するDPB92に記憶される。DPB92またはDPB92とは別個のメモリ・デバイスは、図1のディスプレイデバイス34などのディスプレイデバイス上に後で提示するために、復号されたビデオを記憶してもよい。
【0055】
典型的なビデオ符号化プロセスでは、ビデオシーケンスは、典型的には、順序付けられたフレームまたはピクチャのセットを含む。各フレームは、SL、SCb、およびSCrで示される3つのサンプル配列を含んでもよい。SLは、ルマサンプルの2次元配列である。SCbは、Cb彩度サンプルの2次元配列である。SCrは、Cr彩度サンプルの2次元配列である。他の例では、フレームは、単色であってもよく、したがってルマサンプルの2次元配列を1つだけ含む。
【0056】
図4Aに示されるように、ビデオエンコーダ20(または、より具体的には区分ユニット45)は、最初にフレームを1組のCTUに区分することによって、フレームの符号化された表現を生成する。ビデオフレームは、ラスタ走査順序で左から右および上から下に連続して順序付けされた整数個のCTUを含んでもよい。各CTUは最も大きい論理符号化単位であり、ビデオシーケンス内のすべてのCTUが128×128、64×64、32×32、および16×16のいずれか1つである同じサイズを有するように、CTUの幅および高さはシーケンスパラメータセットにおいてビデオエンコーダ20によって信号伝達される。しかしながら、本出願が必ずしも特定のサイズに限定されるわけではないことに留意されたい。図4Bに示されるように、各CTUは、ルマサンプルの1つのCTBと、彩度サンプルの2つの対応する符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。構文要素は、画素の符号化されたブロックの異なるタイプの単位の特性、ならびにインター予測またはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含む、ビデオデコーダ30においてビデオシーケンスがどのように再構成され得るかを記述する。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一の符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。符号化ツリーブロックは、サンプルのN×Nブロックであってもよい。
【0057】
より良好な性能を実現するために、ビデオエンコーダ20は、CTUの符号化ツリーブロック上で2分木区分、3分木区分、4分木区分、またはそれらの組合せなどの木区分を再帰的に実行し、CTUをより小さいCUに分割してもよい。図4Cに描写されるように、64×64のCTU400は、最初に、それぞれが32×32のブロックサイズを有する4つのより小さいCUに分割される。4つのより小さいCUのうち、CU410およびCU420はそれぞれ、ブロックサイズによって16×16の4つのCUに分割される。2つの16×16のCU430およびCU440はそれぞれ、ブロックサイズによって8×8の4つのCUにさらに分割される。図4Dは、図4Cに描写されたCTU400の区分プロセスの最終結果を示す4分木データ構造を描写しており、4分木の各葉ノードは、32×32から8×8までの範囲のそれぞれのサイズの1つのCUに対応する。図4Bに描写されたCTUと同様に、各CUは、ルマサンプルのCBと、同じサイズのフレームの彩度サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文要素とを含んでもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一の符号化ブロックと、符号化ブロックのサンプルを符号化するために使用される構文構造とを含んでもよい。図4Cおよび図4Dに描写された4分木区分は説明のみを目的としており、様々な局所特定に適応するために、1つのCTUが4分木/3分木/2分木区分に基づいてCUに分裂されてもよいことに留意されたい。マルチタイプ木構造では、1つのCTUは4分木構造によって区分され、各4分木葉CUは2分木構造および3分木構造によってさらに区分されてもよい。図4Eに示されるように、幅Wおよび高さHを有する符号化ブロックの5つの可能な区分タイプ、すなわち、4区分、水平2区分、垂直2区分、水平3区分、および垂直3区分がある。
【0058】
いくつかの実装形態では、ビデオエンコーダ20は、CUの符号化ブロックを1つまたは複数のM×NのPBにさらに区分してもよい。PBは、インター予測またはイントラ予測の同じ予測が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUのPUは、ルマサンプルのPBと、彩度サンプルの2つの対応するPBと、PBを予測するために使用される構文要素とを含んでもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一のPBと、PBを予測するために使用される構文構造とを含んでもよい。ビデオエンコーダ20は、CUの各PUのルマ、Cb、およびCrのPBに対する予測ルマブロック、予測Cbブロック、および予測Crブロックを生成してもよい。
【0059】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用してPUの予測ブロックを生成してもよい。ビデオエンコーダ20がイントラ予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してもよい。ビデオエンコーダ20がインター予測を使用してPUの予測ブロックを生成する場合、ビデオエンコーダ20は、PUに関連付けられたフレーム以外の1つまたは複数のフレームの復号されたサンプルに基づいてPUの予測ブロックを生成してもよい。
【0060】
ビデオエンコーダ20がCUの1つまたは複数のPUに対して予測ルマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CUのルマ残差ブロック内の各サンプルがCUの予測ルマブロックのうちの1つ内のルマサンプルとCUの元のルマ符号化ブロック内の対応するサンプルとの間の差分を示すように、CUの予測ルマブロックをその元のルマ符号化ブロックから減算することによってCUのルマ残差ブロックを生成してもよい。同様に、ビデオエンコーダ20は、CUのCb残差ブロック内の各サンプルがCUの予測Cbブロックのうちの1つ内のCbサンプルとCUの元のCb符号化ブロック内の対応するサンプルとの間の差分を示すように、またCUのCr残差ブロック内の各サンプルがCUの予測Crブロックのうちの1つ内のCrサンプルとCUの元のCr符号化ブロック内の対応するサンプルとの間の差分を示し得るように、CUのCb残差ブロックおよびCr残差ブロックをそれぞれ生成してもよい。
【0061】
さらに、図4Cに示されるように、ビデオエンコーダ20は、4分木区分を使用して、CUのルマ残差ブロック、Cb残差ブロック、およびCr残差ブロックをそれぞれ1つまたは複数のルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解してもよい。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUのTUは、ルマサンプルの変換ブロックと、彩度サンプルの2つの対応する変換ブロックと、変換ブロック・サンプルを変換するために使用される構文要素とを含んでもよい。したがって、CUの各TUは、ルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられてもよい。いくつかの例では、TUに関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックであってもよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってもよい。単色ピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用される構文構造とを含んでもよい。
【0062】
ビデオエンコーダ20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、TUのルマ係数ブロックを生成してもよい。係数ブロックは変換係数の2次元配列であってもよい。変換係数はスカラ量であってもよい。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、TUのCb係数ブロックを生成してもよい。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、TUのCr係数ブロックを生成してもよい。
【0063】
ビデオエンコーダ20は、係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、係数ブロックを量子化してもよい。量子化は、一般に、変換係数を表現するために使用されるデータ量を可能性として削減してさらなる圧縮を実現するために、変換係数が量子化されるプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示す構文要素をエントロピー符号化してもよい。例えば、ビデオエンコーダ20は、量子化された変換係数を示す構文要素に対してCABACを実行してもよい。最後に、ビデオエンコーダ20は、符号化されたフレームおよび関連データの表現を形成するビットのシーケンスを含むビットストリームを出力してもよく、ビットストリームは、記憶デバイス32に保存されるか、または宛先デバイス14に送信される。
【0064】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビットストリームを解析してビットストリームから構文要素を取得してもよい。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいてビデオデータのフレームを再構成してもよい。ビデオデータを再構成するプロセスは、ビデオエンコーダ20によって実行される符号化プロセスとほぼ逆である。例えば、ビデオデコーダ30は、現在CUのTUに関連付けられた係数ブロックに対して逆変換を実行して、現在CUのTUに関連付けられた残差ブロックを再構成してもよい。ビデオデコーダ30はまた、現在CUのPUの予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUの符号化ブロックを再構成する。ビデオデコーダ30は、フレームの各CUについて符号化ブロックを再構成した後、フレームを再構成してもよい。
【0065】
上述されたように、ビデオ符号化は、主に2つのモード、すなわちフレーム内予測(またはイントラ予測)およびフレーム間予測(またはインター予測)を使用してビデオ圧縮を実現する。IBCはフレーム内予測または第3のモードとみなされ得ることに留意されたい。参照ビデオブロックから現在のビデオブロックを予測するために動きベクトルを使用するので、2つのモードのうち、フレーム間予測の方がフレーム内予測よりも符号化効率に大きく寄与する。
【0066】
しかしながら、ビデオデータ捕捉技術が常に向上しており、ビデオデータの詳細を保持するためのビデオブロックサイズがより微細化されているため、現在フレームの動きベクトルを表現するために必要なデータ量も大幅に増加している。この課題を克服する方法の1つは、空間領域と時間領域との両方における隣接するCUのグループが予測目的のために類似するビデオデータを有するだけでなく、これらの隣接するCU間の動きベクトルも類似しているという事実から恩恵を受けることである。したがって、空間的に隣接するCUおよび/または時間的に同じ場所にあるCUの動き情報を、それらの空間的相関および時間的相関を調査することによって現在CUの動き情報(例えば、動きベクトル)の近似値として使用することが可能であり、これは、現在CUの「動きベクトル予測子(MVP:Motion Vector Predictor)」とも呼ばれる。
【0067】
図2に関連して上記で説明されたように動き推定ユニット42によって決定された現在CUの実際の動きベクトルをビデオビットストリームに符号化する代わりに、現在CUの動きベクトル差分(MVD:Motion Vector Difference)を作成するために、現在CUの実際の動きベクトルから現在CUの動きベクトル予測子が減算される。そうすることにより、動き推定ユニット42によってフレームのCUごとに決定された動きベクトルをビデオビットストリームに符号化する必要がなくなり、ビデオビットストリーム内の動き情報を表現するために使用されるデータ量が大幅に削減される場合がある。
【0068】
符号ブロックのフレーム間予測中に参照フレーム内の予測ブロックを選ぶプロセスと同様に、現在CUの空間的に隣接するCUおよび/または時間的に同じ位置にあるCUに関連付けられた潜在的な候補動きベクトルを使用して現在CUの動きベクトル候補リスト(「マージリスト」とも呼ばれる)を構築し、次いで、動きベクトル候補リストから現在CUの動きベクトル予測子として1つの要素を選択するために、ビデオエンコーダ20とビデオデコーダ30との両方によって一連の規則が採用される必要がある。そうすることにより、動きベクトル候補リスト自体をビデオエンコーダ20からビデオデコーダ30に送信する必要がなくなり、ビデオエンコーダ20およびビデオデコーダ30が現在CUを符号化および復号するために動きベクトル候補リスト内の同じ動きベクトル予測子を使用するには、動きベクトル候補リスト内の選択された動きベクトル予測子のインデックスで十分である。
【0069】
各インター予測CUについて、動きパラメータは、動きベクトル、参照ピクチャインデックスおよび参照ピクチャリスト使用インデックス、ならびにインター予測サンプル生成に使用されるVVCの新しい符号化特徴に必要な追加情報から構成される。動作パラメータは、明示的または暗黙的な方法で信号伝達され得る。CUがスキップ・モードで符号化される場合、CUは、1つのPUに関連付けられ、重要な残差係数も、符号化された動きベクトル・デルタも、参照ピクチャインデックスも有していない。マージモードが指定され、それによって、空間的および時間的な候補とVVCにおいて導入された追加のスケジュールとを含む現在CUの動きパラメータが、隣接するCUから取得される。マージモードは、スキップ・モードだけでなく、任意のインター予測されたCUに適用され得る。マージモードの代替方法は、動きパラメータの明示的な送信であり、動きベクトル、各参照ピクチャリストの対応する参照ピクチャインデックス、参照ピクチャリスト使用フラグ、および他の必要とされる情報が、CUごとに明示的に信号伝達される。
【0070】
さらに、ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、現在のVVC標準の圧縮能力を大幅に超えた圧縮能力を有する将来のビデオ符号化技術の標準化の潜在的必要性について研究している。そのような将来の標準化アクションは、VVCの追加拡張またはまったく新しい標準の形式をとる可能性がある。これらのグループは、この分野の専門家によって提案された圧縮技術設計を評価するために、共同ビデオ調査チーム(JVET)として知られる共同作業でこのサーチに共に取り組んでいる。最初の調査実験(EE)は、2021年1月6~15日のJVET会議で確立されており、この調査ソフトウェアモデルは拡張圧縮モデル(ECM)と名付けられ、ECMバージョン2(ECM2)が2021年8月に公開されている。ECM2で新たに開発されたインター予測方式は、次のセクションで詳細に説明される。
【0071】
以下のセクションは、VVCおよび開発中のECMモデルで指定されているそのインター予測方法の詳細を提供する。
【0072】
VVCにおける拡張マージ予測
VVCでは、次の5つのタイプの候補を順番に含めることによって、マージ候補リストが構築される。
1).空間的に隣接するCUからの空間MVP
2).同一位置の(collocated)CUからの時間MVP
3).FIFOテーブルからの履歴ベースのMVP
4).ペアごとの平均MVP
5).ゼロのMV
【0073】
マージリストのサイズはシーケンスパラメータセット・ヘッダにおいて信号伝達され、マージリストの最大許容サイズは6である。マージモードの各CUコードについて、最良のマージ候補のインデックスは、切り捨て単項2値化(TU:truncated unary binarization)を使用して符号化される。マージインデックスの最初のビンはコンテキストを用いて符号化され、他のビンにはバイパス符号化が使用される。
【0074】
このセッションでは、マージ候補の各カテゴリの導出プロセスが提供される。HEVCで行われているように、VVCも、特定のサイズのエリア内のすべてのCUのマージ候補リストの並行導出をサポートする。
【0075】
VVCにおける空間候補導出
VVCでの空間マージ候補の導出は、最初の2つのマージ候補の位置が交換されることを除いて、HEVCでの導出と同じである。図5に描写された位置にある候補の中から最大4つのマージ候補が選択される。導出の順序は、B、A、B、A、およびBである。位置Bは、位置B、A、B、Aの1つまたは2つ以上のCUが利用できない場合(例えば、そのCUが別のスライスまたはタイルに属しているため)、またはイントラ符号化されている場合にのみ考慮される。位置Aの候補が追加された後、残りの候補の追加は、符号化効率が改善されるように、同じ動き情報を有する候補がリストから除外されることを保証する冗長性チェックの対象となる。計算複雑性を軽減するために、前述の冗長性チェックでは、すべての可能な候補ペアが考慮されるわけではない。代わりに、図6において矢印でリンクされたペアのみが考慮され、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、候補がリストに追加される。
【0076】
VVCにおける時間候補導出
このステップでは、1つの候補だけがリストに追加される。特に、この時間マージ候補の導出では、スケーリングされた動きベクトルは、同一位置の参照ピクチャに属する同一位置のCUに基づいて導出される。同一位置のCUの導出に使用される参照ピクチャリストおよび参照インデックスは、スライス・ヘッダにおいて明示的に信号伝達される。時間マージ候補のスケーリングされた動きベクトルは、図7の点線によって示されるように得られ、この動きベクトルは、POC距離tbおよびtdを使用して、同一位置のCUの動きベクトルからスケーリングされ、ここで、tbは、現在ピクチャの参照ピクチャと現在ピクチャとの間のPOC差であると定義され、tdは、配列ピクチャの参照ピクチャと配列ピクチャとの間のPOC差であると定義される。時間マージ候補の参照ピクチャインデックスはゼロに等しくなるように設定される。
【0077】
時間的候補の位置は、図8に描写されるように、候補Cと候補Cとの間で選択される。位置CのCUが利用できない場合、イントラ符号化されている場合、またはCTUの現在の行の外側にある場合、位置Cが使用される。それ以外の場合、位置Cが、時間マージ候補の導出に使用される。
【0078】
VVCにおける履歴ベースのマージ候補導出
履歴ベースのMVP(HMVP:history-based MVP)マージ候補は、空間MVPおよびTMVPの後にマージリストに追加される。この方法では、以前に符号化されたブロックの動き情報がテーブル内に記憶され、現在CUのMVPとして使用される。符号化/復号プロセス中、複数のHMVP候補を有するテーブルが維持される。新しいCTU行が生じたとき、テーブルはリセットされる(空にされる)。非サブブロックのインター符号化されたCUが存在する場合は常に、関連する動き情報が、新しいHMVP候補としてテーブルの最後のエントリに追加される。
【0079】
HMVPテーブル・サイズSは6に設定され、これは、最大5つの履歴ベースのMVP(HMVP)候補がテーブルに追加され得ることを示す。新しい動き候補をテーブルに挿入するとき、制約付き先入れ先出し(FIFO)規則が利用され、最初に、テーブル内に同一のHMVPがあるかどうかを見出すために、冗長性チェックが適用される。見出された場合、同一のHMVPがテーブルから削除され、その後のすべてのHMVP候補が順方向に移動され、同一のHMVPはテーブルの最後のエントリに挿入される。
【0080】
HMVP候補は、マージ候補リスト構築プロセスにおいて使用されてもよい。テーブル内の最新のいくつかのHMVP候補は、順番にチェックされ、候補リストのTMVP候補の後に挿入される。冗長性チェックは、HMVP候補において空間マージ候補または時間マージ候補に適用される。
【0081】
冗長性チェック動作の回数を低減するために、次の簡素化が導入される。
1.テーブル内の最後の2つのエントリは、それぞれA1空間候補およびB1空間候補に対して冗長性チェックされる。
2.利用可能なマージ候補の総数が最大許容マージ候補から1を引いた数に達すると、HMVPからのマージ候補リスト構築プロセスが終了する。
【0082】
VVCにおけるペアごとの平均マージ候補導出
ペアごとの平均候補は、最初の2つのマージ候補を使用して、既存のマージ候補リスト内の予め定められた候補ペアを平均することによって生成される。それぞれ、第1のマージ候補はp0Candとして定義され、第2のマージ候補はp1Candとして定義され得る。平均化された動きベクトルは、p0Candおよびp1Candの動きベクトルの利用可能性に応じて、参照リストごとに個別に算出される。1つのリスト内で両方の動きベクトルが利用可能である場合、これら2つの動きベクトルは、それらが異なる参照ピクチャを指している場合でも平均化され、その参照ピクチャはp0Candのうちの1つに設定され、1つの動きベクトルのみが利用可能である場合、その動きベクトルを直接使用し、利用可能な動きベクトルがない場合、このリストを無効にしておく。また、p0Candおよびp1Candの2分の1画素補間フィルタインデックスが異なる場合、これは0に設定される。
【0083】
ペアごとの平均マージ候補が追加された後にマージリストが満たされていない場合、最大マージ候補数に達するまで、末尾にゼロのMVPが挿入される。
【0084】
VVCにおける高精度(1/16画素)動き補償および動きベクトルの記憶
VVCは、MV精度を1/16ルマサンプルまで高めて、スローモーションビデオの予測効率を向上させる。このより高い動き正確度は、アフィンモードの場合など、局所的に変化する非並進動きを伴うビデオコンテンツに特に有用である。より高いMV正確度の小数位置サンプル生成のために、HEVCの8タップルマ補間フィルタおよび4タップ彩度補間フィルタは、ルマについては16位相、彩度については32位相に拡張されている。この拡張フィルタセットは、アフィンモードのCUを除くインター符号化されたCUのMCプロセスに適用される。アフィンモードの場合、計算複雑性の低減およびメモリ帯域幅の節約のために、16位相を有する6タップルマ補間フィルタのセットが使用される。
【0085】
VVCでは、非アフィンCUの明示的に信号伝達される動きベクトルの最高精度は、4分の1ルマサンプルである。アフィンモードなどのいくつかのインター予測モードでは、動きベクトルは、1/16ルマサンプル精度で信号伝達され得る。暗黙的に推論されたMVを有するすべてのインター符号化されたCUにおいて、MVは1/16ルマサンプル精度で導出され、動き補償予測は1/16サンプル精度で実行される。内部動きフィールド(motion field)の記憶に関しては、すべての動きベクトルが1/16ルマサンプル精度で記憶される。
【0086】
TMVPおよびSbTVMPによって使用される時間動きフィールドの記憶の場合、動きフィールド圧縮は、HEVCでの16×16サイズの粒度とは対照的に、8×8サイズの粒度で実行される。
【0087】
VVCにおけるMVDを用いたマージモード(MMVD)
暗黙的に導出された動き情報が現在CUの予測サンプル生成に直接使用されるマージモードに加えて、動きベクトル差分を用いたマージモード(MMVD:merge mode with motion vector difference)がVVCに導入されている。通常のマージ・フラグを送信した直後に、CUにMMVDモードが使用されるかどうかを指定するためのMMVDフラグが信号伝達される。
【0088】
MMVDでは、マージ候補が選択された後、マージ候補は、信号伝達されたMVD情報によってさらに精緻化される。さらなる情報は、マージ候補フラグ、動きの大きさを指定するためのインデックス、および動き方向の指示のためのインデックスを含む。MMVDモードでは、マージリスト内の最初の2つの候補のうち1つが、MV基底として使用するために選択される。第1のマージ候補と第2のマージ候補との間でどちらが使用されるかを指定するために、mmvd候補フラグが信号伝達される。
【0089】
距離インデックスは、動きの大きさの情報を指定し、開始点からの予め定められたオフセットを指示する。図9Aおよび図9Bに示されるように、開始MVの水平成分または垂直成分のいずれかにオフセットが追加される。表1に、距離インデックスと予め定められたオフセットとの関係が指定されている。
【0090】
【表1】
【0091】
方向インデックスは、開始点を基準としたMVDの方向を表す。方向インデックスは、表2に示された4つの方向を表すことができる。MVD符号の意味は、開始MVの情報に応じて変化し得ることに留意されたい。開始MVが予測MVまたは双予測MVであり、両方のリストが現在ピクチャの同じ側を指している場合(すなわち、2つの参照のPOCが、両方とも現在ピクチャのPOCより大きいか、または両方とも現在ピクチャのPOCより小さい場合)、表2の符号は、開始MVに追加されるMVオフセットの符号を指定する。開始MVが双予測MVであり、2つのMVが現在ピクチャの異なる側を指している場合(すなわち、一方の参照のPOCが現在ピクチャのPOCより大きく、他方の参照のPOCが現在ピクチャのPOCより小さい場合)、リスト0内のPOCの差がリスト1内のPOCの差より大きい場合、表2の符号は、リスト0の開始MVのMV成分に追加されるMVオフセットの符号を指定し、リスト1のMVの符号は反対の値を有する。それ以外の場合で、リスト1内のPOCの差がリスト0内のPOCの差より大きい場合、表2の符号は、リスト1の開始MVのMV成分に追加されるMVオフセットの符号を指定し、リスト0のMVの符号は反対の値を有する。
【0092】
MVDは、各方向におけるPOCの差に従ってスケーリングされる。両方のリスト内のPOCの差が同じである場合、スケーリングは必要ない。それ以外の場合で、リスト0内のPOCの差がリスト1内のPOCの差よりも大きい場合、リスト1のMVDは、図7で説明されたように、L0のPOC差をtdとして、L1のPOC差をtbとして定義することによってスケーリングされる。L1のPOC差がL0より大きい場合、リスト0のMVDも、同じ方法でスケーリングされる。開始MVが単予測される場合、MVDは利用可能なMVに追加される。
【0093】
【表2】
【0094】
VVCにおける対称MVD符号化
VVCでは、通常の単方向予測および双方向予測モードのMVD信号伝達の他に、双予測MVD信号伝達のための対称MVDモードが適用される。対称MVDモードでは、リスト0とリスト1との両方の参照ピクチャインデックスとリスト1のMVDとを含む動き情報は信号伝達されずに導出される。
【0095】
対称MVDモードの復号プロセスは次の通りである。
1.スライス・レベルでは、変数BiDirPredFlag、RefIdxSymL0、およびRefIdxSymL1が次のように導出される。
- mvd_l1_zero_flagが1である場合、BiDirPredFlagは0に等しくなるように設定される。
- それ以外の場合で、リスト0内の最も近い参照ピクチャおよびリスト1内の最も近い参照ピクチャが、参照ピクチャの順方向と逆方向とのペア、または参照ピクチャの逆方向と順方向とのペアを形成する場合、BiDirPredFlagは1に設定され、リスト0とリスト1との両方の参照ピクチャは、短期参照ピクチャである。それ以外の場合、BiDirPredFlagは0に設定される。
2.CUレベルでは、CUが双予測符号化されており、BiDirPredFlagが1に等しい場合、対称モードが使用されるかどうかを指示する対称モードフラグが明示的に信号伝達される。
【0096】
対称モードフラグが真の場合、mvp_l0_flag、mvp_l1_flag、およびMVD0のみが明示的に信号伝達される。リスト0およびリスト1の参照インデックスは、それぞれ参照ピクチャのペアに等しくなるように設定される。MVD1は、(-MVD0)に等しくなるように設定される。最終的な動きベクトルは、以下の式に示されている。
【数1】
【0097】
エンコーダでは、対称MVD動き推定が、初期MV評価から始まる。初期MV候補のセットは、単予測サーチから得られたMV、双予測サーチから得られたMV、およびAMVPリストからのMVで構成される。レート歪みコストが最も低いものが、対称MVD動きサーチの初期MVとして選択される。
【0098】
VVCにおけるアフィン動き補償予測
HEVCでは、動き補償予測(MCP:motion compensation prediction)には並進動きモデルのみが適用される。一方、現実世界には、多くの種類の動き、例えば、拡大/縮小、回転、透視の動き、および他の不規則な動きが存在する。VVCでは、ブロックベースのアフィン変換動き補償予測が適用される。図10Aおよび図10Bに示されるように、ブロックのアフィン動きフィールドは、図10Aに示されるような2つの制御点(4パラメータ)または図10Bに示されるような3つの制御点動きベクトル(6パラメータ)の動き情報によって説明される。
【0099】
4パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x,y)における動きベクトルは、
【数2】
として導出される。
【0100】
6パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x,y)における動きベクトルは、
【数3】
として導出される。
【0101】
ここで、(mv0x,mv0y)は左上隅の制御点の動きベクトルであり、(mv1x,mv1y)は右上隅の制御点の動きベクトルであり、(mv2x,mv2y)は左下隅の制御点の動きベクトルである。
【0102】
動き補償予測を簡素化するために、ブロックベースのアフィン変換予測が適用される。各4×4ルマサブブロックの動きベクトルを導出するために、図11に示されるような各サブブロックの中央サンプルの動きベクトルが、上記の方程式に従って算出され、1/16の小数正確度に丸められる。次いで、導出された動きベクトルを用いて各サブブロックの予測を生成するために、動き補償補間フィルタが適用される。彩度成分のサブブロックサイズも4×4に設定される。4×4彩度サブブロックのMVは、同一位置の8×8ルマ領域内の左上と右下のルマサブブロックのMVの平均として算出される。
【0103】
並進動きインター予測の場合と同様に、アフィンマージモードおよびアフィンAMVPモードという2つのアフィン動きインター予測モードもある。
【0104】
アフィンマージ予測
AF_MERGEモードは、幅と高さとの両方が8以上であるCUに適用され得る。このモードでは、現在CUのCPMVは、空間的に隣接するCUの動き情報に基づいて生成される。最大5つのCPMVP候補が存在する可能性があり、現在CUに使用されるCPMVP候補を指示するためのインデックスが信号伝達される。アフィンマージ候補リストを形成するために、次の3つのタイプのCPVM候補が使用される。
- 隣接CUのCPMVから外挿される、継承されたアフィンマージ候補
- 隣接CUの並進MVを使用して導出される、構築されたアフィンマージ候補CPMVP
- ゼロのMV
【0105】
VVCでは、最大2つの継承されたアフィン候補があり、これらは隣接ブロックのアフィン動きモデルから導出され、一方は左の隣接CUから、もう一方は上の隣接CUから導出される。候補ブロックが図12に示されている。左の予測子の場合、走査順序はA0->A1であり、上の予測子の場合、走査順序はB0->B1->B2である。各側から最初に継承された候補者のみが選択される。継承された2つの候補間でプルーニング・チェックは実行されない。隣接アフィンCUが識別されると、その制御点動きベクトルを使用して、現在CUのアフィンマージリスト内のCPMVP候補が導出される。隣接する左下のブロックAがアフィンモードで符号化される場合、ブロックAを含むCUの左上隅、右上隅、および左下隅の動きベクトルv_2、v_3、およびv_4が取得される。ブロックAが4パラメータアフィンモデルで符号化される場合、現在CUの2つのCPMVはv_2およびv_3に従って算出される。ブロックAが6パラメータアフィンモデルで符号化される場合、現在CUの3つのCPMVは、v_2、v_3、v_4に従って算出される。
【0106】
構築されたアフィン候補とは、各制御点の隣接並進動き情報を組み合わせることによって候補が構築されることを意味する。制御点の動き情報は、図13に示される指定された空間的隣接および時間的隣接から導出される。CPMVk(k=1、2、3、4)は、k番目の制御点を表す。CPMV1の場合、B2->B3->A2のブロックがチェックされ、最初に使用可能なブロックのMVが使用される。CPMV2の場合、B1->B0のブロックがチェックされ、CPMV3の場合、A1->A0のブロックがチェックされる。TMVPは、利用可能な場合はCPMV4として使用される。
【0107】
4つの制御点のMVが取得された後、それらの動き情報に基づいてアフィンマージ候補が構築される。順番に構築するために、制御点MVの次の組合せが使用される。
{CPMV、CPMV、CPMV}、{CPMV、CPMV、CPMV}、{CPMV、CPMV、CPMV}、{CPMV、CPMV、CPMV}、{CPMV、CPMV}、{CPMV、CPMV
【0108】
3つのCPMVの組合せは、6パラメータアフィンマージ候補を構築し、2つのCPMVの組合せは4パラメータアフィンマージ候補を構築する。動きスケーリング・プロセスを回避するために、制御点の参照インデックスが異なる場合、関連する制御点MVの組合せは破棄される。
【0109】
継承されたアフィンマージ候補および構築されたアフィンマージ候補がチェックされた後、リストがまだ満たされてない場合、リストの末尾にゼロのMVが挿入される。
【0110】
VVCにおけるアフィンAMVP予測
アフィンAMVPモードは、幅と高さとの両方が16以上であるCUに適用され得る。アフィンAMVPモードが使用されるかどうかを指示するために、ビットストリームにおいてCUレベルのアフィン・フラグが信号送信され、次いで、4パラメータアフィンであるか6パラメータアフィンかを指示するために、別のフラグが信号伝達される。このモードでは、現在CUのCPMVとその予測子CPMVPとの差がビットストリームにおいて信号伝達される。アフィンAVMP候補リストのサイズは2であり、この候補リストは、次の4つのタイプのCPVM候補を順番に使用することによって生成される。
- 隣接CUのCPMVから外挿される、継承されたアフィンAMVP候補
- 隣接CUの並進MVを使用して導出される、構築されたアフィンAMVP候補CPMVP
- 隣接CUからの並進MV
- ゼロのMV
【0111】
継承されたアフィンAMVP候補のチェック順序は、継承されたアフィンマージ候補のチェック順序と同じである。唯一の違いは、AVMP候補の場合、現在ブロック内と同じ参照ピクチャを有するアフィンCUのみが考慮されることである。継承されたアフィン動き予測子を候補リストに挿入するときに、プルーニングプロセスは適用されない。
【0112】
構築されたAMVP候補は、図13に示される指定された空間的隣接から導出される。アフィンマージ候補の構築で行われるのと同じチェック順序が使用される。さらに、隣接ブロックの参照ピクチャインデックスもチェックされる。インター符号化され、かつ現在CU内と同じ参照ピクチャを有する、チェック順序で最初のブロックが使用される。1つだけある。現在CUが4パラメータアフィンモードで符号化され、mvとmvとの両方が利用可能である場合、それらはアフィンAMVPリスト内の1つの候補として追加される。現在CUが6パラメータアフィンモードで符号化され、3つのCPMVがすべて利用可能である場合、それらはアフィンAMVPリスト内の1つの候補として追加される。それ以外の場合、構築されたAMVP候補は利用不可として設定される。
【0113】
有効な継承されたアフィンAMVP候補および構築されたAMVP候補を挿入した後、アフィンAMVPリスト候補の数がまだ2未満である場合、利用可能なときには、現在CUのすべての制御点MVを予測するための並進MVとしてmv、mv、およびmvが順番に追加される。最後に、アフィンAMVPリストがまだ満たされていない場合、そのアフィンAMVPリストを埋めるためにゼロのMVが使用される。
【0114】
VVCにおけるアフィンモードのオプティカルフローを用いた予測精緻化
サブブロックベースのアフィン動き補償は、画素ベースの動き補償と比較してメモリアクセス帯域幅を節約し、計算複雑性を軽減することができるが、予測正確性が不利益となる。動き補償のより細かい粒度を実現するために、オプティカルフローを用いた予測精緻化(PROF:prediction refinement with optical flow)を使用して、動き補償のためのメモリアクセス帯域幅を増やすことなく、サブブロックベースのアフィン動き補償予測を精緻化する。VVCでは、サブブロックベースのアフィン動き補償が実行された後、オプティカルフロー方程式によって導出された差分を追加することによってルマ予測サンプルが精緻化される。PROFは、次の4つのステップとして説明される。
【0115】
ステップ1)サブブロック予測I(i,j)を生成するために、サブブロックベースのアフィン動き補償が実行される。
【0116】
ステップ2)サブブロック予測の空間勾配g(i,j)およびg(i,j)は、3タップ・フィルタ[-1,0,1]を使用して各サンプル位置で算出される。勾配の算出は、BDOFの勾配算出とまったく同じである。
【数4】
【数5】
【0117】
SHIFT1は、勾配の精度を制御するために使用される。サブブロック(すなわち、4×4)予測は、勾配算出のために各側で1サンプルずつ拡張される。追加のメモリ帯域幅および追加の補間計算を回避するために、拡張境界上のその拡張サンプルは、参照ピクチャ内の最も近い整数画素位置からコピーされる。
【0118】
ステップ3)ルマ予測精緻化は、次のオプティカルフロー方程式、
【数6】
によって算出され、ここで、Δv(i,j)は、図14に示されるように、v(i,j)によって示される、サンプル位置(i,j)に対して計算されたサンプルMVと、サンプル(i,j)が属するサブブロックのサブブロックMVとの間の差分である。Δv(i,j)は1/32ルマサンプル精度の単位で量子化される。
【0119】
アフィンモデルパラメータおよびサブブロックの中心に対するサンプル位置はサブブロックごとに変化しないので、Δv(i,j)は、最初のサブブロックに対して算出され、同じCU内の他のサブブロックのために再利用され得る。dx(i,j)およびdy(i,j)をサンプル位置(i,j)からサブブロック(xSB,ySB)の中心までの水平および垂直オフセットとすると、Δv(x,y)は、次の方程式
【数7】
【数8】
によって導出され得る。
【0120】
正確性を維持するために、サブブロック(xSB,ySB)の入力は、((WSB-1)/2,(HSB-1)/2)として算出され、ここで、WSBおよびHSBはそれぞれ、サブブロックの幅および高さである。
【0121】
4パラメータアフィンモデルの場合、
【数9】
である。
【0122】
6パラメータアフィンモデルの場合、
【数10】
であり、ここで、(v0x,v0y)、(v1x,v1y)、(v2x,v2y)は、左上、右上、および左下の制御点の動きベクトルであり、wおよびhは、CUの幅および高さである。
【0123】
ステップ4)最後に、サブブロック予測I(i,j)にルマ予測精緻化ΔI(i,j)が加算される。最終的な予測I’は次の方程式として生成される。
I’(i,j)=I(i,j)+ΔI(i,j)
【0124】
アフィン符号化されたCUについての2つの事例において、PROFは適用されない。1)すべての制御点MVが同じであり、それが、CUが並進動きのみを有することを示している。2)大きなメモリアクセス帯域幅の要件を回避するために、サブブロックベースのアフィンMCがCUベースのMCに格下げされるので、アフィン動きパラメータは、指定された限度よりも大きい。
【0125】
PROFを用いたアフィン動き推定の符号化の複雑性を軽減するために、高速符号化方法が適用される。次の2つの状況では、アフィン動き推定段階においてPROFは適用されない。a)このCUがルートブロックではなく、その親ブロックがアフィンモードをその最良のモードとして選択しない場合、現在CUがアフィンモードを最良のモードとして選択する可能性が低いので、PROFは適用されない。b)4つのアフィン・パラメータ(C、D、E、F)の大きさがすべて予め定められたしきい値より小さく、現在ピクチャが低遅延ピクチャではない場合、この事例ではPROFによってもたらされる改善が小さいので、PROFは適用されない。このようにして、PROFを用いたアフィン動き推定が高速化され得る。
【0126】
VVCにおけるサブブロックベースの時間動きベクトル予測(SbTMVP)
VVCは、サブブロックベースの時間動きベクトル予測(SbTMVP)方法をサポートする。HEVCにおける時間動きベクトル予測(TMVP)と同様に、SbTMVPは、配列ピクチャ内の動きフィールドを使用して、現在ピクチャ内のCUの動きベクトル予測およびマージモードを改善する。TMVPによって使用されるのと同じ配列ピクチャがSbTVMPにも使用される。SbTMVPは、次の2つの主な点でTMVPと異なる。
【0127】
- TMVPはCUレベルで動きを予測するが、SbTMVPはサブCUレベルで動きを予測する。
【0128】
- TMVPは、配列ピクチャ内の配列ブロックから時間動きベクトルをフェッチするが(配列ブロックは、現在CUに対して右下または中央のブロックである)、SbTMVPは、配列ピクチャから時間動き情報をフェッチする前に動きシフトを適用し、動きシフトは、現在CUの空間的に隣接するブロックのうちの1つからの動きベクトルから得られる。
【0129】
SbTVMPプロセスが図15Aおよび図15Bに示されている。SbTMVPは、現在CU内のサブCUの動きベクトルを2つのステップで予測する。第1のステップでは、図15Aの空間的隣接A1が検査される。A1が、配列ピクチャを参照ピクチャとして使用する動きベクトルを有する場合、この動きベクトルが、適用される動きシフトとして選択される。そのような動きが識別されない場合、動きシフトは(0,0)に設定される。
【0130】
第2のステップでは、図15Bに示されるように、配列ピクチャからサブCUレベルの動き情報(動きベクトルおよび参照インデックス)を取得するために、ステップ1で識別された動きシフトが適用される(すなわち、現在ブロックの座標に追加される)。図15Bの例は、動きシフトがブロックA1の動きに設定されていると仮定している。次いで、各サブCUについて、配列ピクチャ内のその対応するブロックの動き情報(中央のサンプルをカバーする最小の動きグリッド)を使用して、サブCUの動き情報を導出する。同一位置のサブCUの動き情報が識別された後、この動き情報は、HEVCのTMVPプロセスと同様の方法で現在のサブCUの動きベクトルおよび参照インデックスに変換され、時間動きベクトルの参照ピクチャを現在CUのピクチャに位置合せするために、時間動きスケーリングが適用される。
【0131】
VVCでは、SbTVMP候補とアフィンマージ候補との両方を含む組み合わされたサブブロックベースのマージリストが、サブブロックベースのマージモードの信号伝達に使用される。SbTVMPモードは、シーケンスパラメータセット(SPS)フラグによって有効/無効になる。SbTMVPモードが有効になっている場合、サブブロックベースのマージ候補のリストの最初のエントリとしてSbTMVP予測子が追加され、その後にアフィンマージ候補が追加される。サブブロックベースのマージリストのサイズはSPSにおいて信号伝達され、サブブロックベースのマージリストの最大許容サイズは、VVCでは5である。
【0132】
SbTMVPにおいて使用されるサブCUサイズは8×8に固定されており、アフィンマージモードと同様に、SbTMVPモードは幅と高さとの両方が8以上であるCUにのみ適用される。
【0133】
追加のSbTMVPマージ候補の符号化ロジックは、他のマージ候補と同じであり、すなわち、PスライスまたはBスライスの各CUについて、SbTMVP候補を使用するかどうかを決定するために追加のRDチェックが実行される。
【0134】
VVCの適応動きベクトル解像度(AMVR)
HEVCでは、スライス・ヘッダ内のuse_integer_mv_flagが0に等しい場合、(CUの動きベクトルと予測された動きベクトルとの間)動きベクトル差分(MVD)が、4分の1ルマサンプルの単位で信号伝達される。VVCでは、CUレベルの適応動きベクトル解像度(AMVR)方式が導入されている。AMVRは、CUのMVDを様々な精度で符号化することを可能にする。現在CUのモード(通常のAMVPモードまたはアフィンAVMPモード)に応じて、現在CUのMVDは、次のように適応的に選択され得る。
- 通常のAMVPモード:4分の1ルマサンプル、2分の1ルマサンプル、整数ルマサンプル、または4ルマサンプル
- アフィンAMVPモード:4分の1ルマサンプル、整数ルマサンプル、または1/16ルマサンプル
【0135】
現在CUに少なくとも1つのゼロ以外のMVD成分がある場合、CUレベルのMVD解像度指示が条件付きで信号伝達される。すべてのMVD成分(すなわち、参照リストL0および参照リストL1の水平MVDと垂直MVDとの両方)がゼロである場合、4分の1ルマサンプルMVD解像度が推論される。
【0136】
少なくとも1つのゼロ以外のMVD成分を有するCUの場合、そのCUに対して4分の1ルマサンプルMVD精度が使用されるかどうかを示すための第1のフラグが信号伝達される。第1のフラグが0である場合、それ以上の信号伝達は必要なく、現在CUに対して4分の1ルマサンプルMVD精度が使用される。それ以外の場合、通常のAMVP CUに対して2分の1ルマサンプルまたは他のMVD精度(整数または4ルマサンプル)が使用されることを示すための第2のフラグが信号伝達される。2分の1ルマサンプルの場合、2分の1ルマサンプル位置に対して、デフォルトの8タップ補間フィルタの代わりに6タップ補間フィルタが使用される。それ以外の場合、通常のAMVP CUに対して整数ルマサンプルまたは4ルマサンプルMVD精度のどちらが使用されるかを示すための第3のフラグが信号伝達される。アフィンAMVP CUの場合、第2のフラグは、整数ルマサンプルまたは1/16ルマサンプルMVD精度のどちらが使用されるかを示すために使用される。再構成されたMVが意図された精度(4分の1ルマサンプル、2分の1ルマサンプル、整数ルマサンプル、または4ルマサンプル)を有することを保証するために、CUの動きベクトル予測子は、MVDとともに追加される前に、MVDの精度と同じ精度へと丸められてもよい。動きベクトル予測子は、ゼロに向けて丸められる(すなわち、負の動きベクトル予測子は正の無限大に向けて丸められ、正の動きベクトル予測子は負の無限大に向けて丸められる)。
【0137】
エンコーダは、RDチェックを使用して現在CUの動きベクトル解像度を決定する。MVD解像度ごとにCUレベルのRDチェックを常に4回実行することを回避するために、VTM14では、4分の1ルマサンプル以外のMVD精度のRDチェックは条件付きでのみ呼び出される。通常のAVMPモードの場合、4分の1ルマサンプルMVD精度および整数ルマサンプルMV精度のRDコストが最初に計算される。次いで、4ルマサンプルMVD精度のRDコストをさらにチェックする必要があるかどうかを決定するために、整数ルマサンプルMVD精度のRDコストが4分の1ルマサンプルMVD精度のRDコストと比較される。4分の1ルマサンプルMVD精度のRDコストが、整数ルマサンプルMVD精度のRDコストよりもはるかに小さい場合、4ルマサンプルMVD精度のRDチェックはスキップされる。次いで、整数ルマサンプルMVD精度のRDコストが、以前にテストされたMVD精度の最良のRDコストよりも大幅に大きい場合、2分の1ルマサンプルMVD精度のチェックはスキップされる。アフィンAMVPモードの場合、アフィンマージ/スキップ・モード、マージ/スキップ・モード、4分の1ルマサンプルMVD精度の通常のAMVPモード、および4分の1ルマサンプルMVD精度のアフィンAMVPモードのレート歪みコストをチェックした後にアフィンインターモードが選択されていない場合、1/16ルマサンプルMV精度および1画素MV精度のアフィンインターモードはチェックされない。さらに、4分の1ルマサンプルMV精度のアフィンインターモードで取得されたアフィン・パラメータは、1/16ルマサンプルおよび4分の1ルマサンプルMV精度のアフィンインターモードの開始サーチ点として使用される。
【0138】
VVCにおけるCUレベルの重みを用いた双予測(BCW:bi-prediction with CU-level weight)
HEVCでは、2つの異なる参照ピクチャから得られた2つの予測信号を平均することによって、および/または2つの異なる動きベクトルを使用することによって、双予測信号が生成される。VVCでは、2つの予測信号の加重平均を可能にするように、双予測モードが単純な平均の範囲を超えて拡張される。
【数11】
【0139】
加重平均双予測では、5つの重みw∈{-2,3,4,5,10}が許容される。各双予測CUについて、重みwは、次の2つの方法のうちの一方で決定される。1)非マージCUの場合、重みインデックスは、動きベクトル差分の後に信号伝達される。2)マージCUの場合、重みインデックスは、マージ候補インデックスに基づいて隣接ブロックから推論される。BCWは、256以上のルマサンプルを有する(すなわち、CU幅×CU高さが256以上である)CUにのみ適用される。低遅延ピクチャの場合、5つの重みがすべて使用される。非低遅延ピクチャの場合、3つの重み(w∈{3,4,5})のみが使用される。
【0140】
- エンコーダでは、エンコーダの複雑性を大幅に増加させることなく重みインデックスを見出すために、高速サーチアルゴリズムが適用される。これらのアルゴリズムは、次のように要約される。詳細については、VTMソフトウェアおよび文書JVET-L0646を参照されたい。AMVRと組み合わされるとき、現在ピクチャが低遅延ピクチャである場合は、1画素および4画素の動きベクトル精度について、不均等な重みは条件付きでのみチェックされる。
【0141】
- アフィンと組み合わされるとき、アフィンモードが現在の最良のモードとして選択されている場合かつその場合に限り、不均等な重みに対してアフィンMEが実行されてもよい。
【0142】
- 双予測の2つの参照ピクチャが同じであるとき、不均等な重みは条件付きでのみチェックされる。
【0143】
- 現在ピクチャとその参照ピクチャとの間のPOC距離、符号化QP、および時間レベルに応じて、特定の条件が満たされる場合、不均等な重みはサーチされない。
【0144】
BCW重みインデックスは、1つのコンテキスト符号化ビンとそれに続くバイパス符号化ビンを使用して符号化される。最初のコンテキスト符号化ビンは、均等な重みが使用されるかどうかを示し、不均等な重みが使用される場合、どの不均等な重みが使用されるかを示すためにバイパス符号化を使用して追加のビンが信号伝達される。
【0145】
重み付け予測(WP)は、H.264/AVCおよびHEVC標準によってサポートされている、フェーディングを用いてビデオコンテンツを効率的に符号化するための符号化ツールである。WPのサポートもVVC標準に追加された。WPは、参照ピクチャリストL0およびL1のそれぞれにおける各参照ピクチャに対して、重み付けパラメータ(重みおよびオフセット)を信号伝達することを可能にする。次いで、動き補償中に、対応する参照ピクチャの重みおよびオフセットが適用される。WPおよびBCWは、様々なタイプのビデオコンテンツ用に設計されている。VVCデコーダ設計を複雑にし得るWPとBCWとの間の相互作用を回避するために、CUがWPを使用する場合、BCW重みインデックスは信号伝達されず、wは4であると推論される(すなわち、均等な重みが適用される)。マージCUの場合、重みインデックスは、マージ候補インデックスに基づいて隣接ブロックから推論される。これは、通常のマージモードおよび継承されたアフィンマージモードとの両方に適用され得る。構築されたアフィンマージモードの場合、アフィン動き情報は、最大3ブロックの動き情報に基づいて構築される。構築されたアフィンマージモードを使用するCUのBCWインデックスは、単純に最初の制御点MVのBCWインデックスに等しくなるように設定される。
【0146】
VVCでは、CIIPおよびBCWをCUに併用して適用することはできない。CUがCIIPモードで符号化される場合、現在CUのBCWインデックスは、2、すなわち均等な重みに設定される。
【0147】
VVCにおける双方向オプティカルフロー(BDOF:bi-directional optical flow)
VVCには、双方向オプティカルフロー(BDOF)ツールが含まれている。BDOFは、以前はBIOと呼ばれており、JEMに含まれていた。JEMバージョンと比較すると、VVCにおけるBDOFはより単純なバージョンであり、特に乗算の数および乗算器のサイズの点で、必要な計算が大幅に少ない。
【0148】
BDOFは、CUの双予測信号を4×4サブブロック・レベルで精緻化するために使用される。CUが次の条件をすべて満たす場合、CUにBDOFが適用される。
- CUが「真の」双予測モードを使用して符号化されている。すなわち、2つの参照ピクチャのうちの一方は表示順序で現在ピクチャより前にあり、他方は表示順序で現在ピクチャより後にある
- 2つの参照ピクチャから現在ピクチャまでの距離(すなわち、POC差)が同じである
- 両方の参照ピクチャが短期参照ピクチャである
- CUがアフィンモードまたはSbTMVPマージモードを使用して符号化されていない
- CUが64を超えるルマサンプルを有する
- CU高さとCU幅との両方が8以上のルマサンプルである
- BCW重みインデックスが均等な重みを示している
- 現在CUに対してWPが有効ではない
- 現在CUに対してCIIPモードが使用されていない
【0149】
BDOFはルマ成分にのみ適用される。その名前が示すように、BDOFモードは、オブジェクトの動きが平滑であることを前提としたオプティカルフローの概念に基づいている。4×4サブブロックごとに、L0予測サンプルとL1予測サンプルとの間の差を最小化することによって、動き精緻化(v,v)が算出される。次いで、動き精緻化を使用して、4×4サブブロック内の双予測サンプル値を調整する。BDOFプロセスでは次の手順が適用される。
【0150】
最初に、2つの予測信号の水平勾配および垂直勾配
(k=0、1)が、2つの隣接するサンプル間、すなわち、
【数12】
の差を直接算出することによって計算され、ここで、I(k)(i,j)は、リストk(k=0、1)内の予測信号の座標(i,j)におけるサンプル値であり、shift1は、ルマビット深度bitDepthに基づいて、shift1=max(6,bitDepth-6)として算出される。
【0151】
次いで、勾配S、S、S、S、およびSの自己相関および相互相関が、
【数13】
として算出され、ここで、
【数14】
であり、ここで、Ωは、4×4サブブロックの周囲の6×6ウィンドウであり、値nおよび値nはそれぞれmin(1,bitDepth-11)およびmin(4,bitDepth-8)に等しくなるように設定される。
【0152】
次いで、以下の
【数15】
を使用した相互相関項および自己相関項を使用して、動き精緻化(v,v)が導出され、ここで、
である。
【0153】
動き精緻化および勾配に基づいて、4×4サブブロック内の各サンプルについて、次の調整が算出される。
【数16】
【0154】
最後に、双予測サンプルを次のように調整することによって、CUのBDOFサンプルが算出される。
【数17】
【0155】
これらの値は、BDOFプロセスの乗算器が15ビットを超えず、BDOFプロセスの中間パラメータの最大ビット幅が32ビット以内に保たれるように選択される。
【0156】
勾配値を導出するには、現在CU境界の外側でリストk(k=0、1)内のいくつかの予測サンプルI(k)(i,j)が生成される必要がある。図16に描写されるように、VVCにおけるBDOFは、CUの境界の周囲で1つの拡張された行/列を使用する。境界外の予測サンプルを生成する計算複雑性を制御するために、補間なしで(座標上でfloor()演算を使用して)近くの整数位置において参照サンプルを直接取得することによって、拡張されたエリア(白色の位置)内の予測サンプルが生成され、CU(灰色の位置)内の予測サンプルを生成するために、通常の8タップ動き補償補間フィルタが使用される。これらの拡張されたサンプル値は、勾配算出でのみ使用される。BDOFプロセスの残りのステップでは、CU境界の外側にあるサンプル値および勾配値が必要な場合、それらは、それらの最も近い近傍からパディング(すなわち反復)される。
【0157】
CUの幅および/または高さが16ルマサンプルより大きい場合、CUは、16ルマサンプルに等しい幅および/または高さのサブブロックに分裂されてもよく、サブロック境界はBDOFプロセスでのCU境界として扱われる。BDOFプロセスの最大ユニット・サイズは16×16に限定される。サブブロックごとに、BDOFプロセスはスキップされる可能性がある。初期のL0予測サンプルとL1予測サンプルとの間のSADがしきい値より小さい場合、BDOFプロセスはサブブロックに適用されない。しきい値は(8*W*(H>>1)に等しくなるように設定され、ここで、Wはサブブロックの幅を示し、Hはサブブロックの高さを示す。SAD算出のさらなる複雑性を回避するために、DVMRプロセスにおいて算出された初期のL0予測サンプルとL1予測サンプルとの間のSADがここで再利用される。
【0158】
現在ブロックに対してBCWが有効になっている場合、すなわち、BCW重みインデックスが不均等な重みを示している場合、双方向オプティカルフローは無効になる。同様に、現在ブロックに対してWPが有効になっている場合、すなわち、2つの参照ピクチャのいずれかに対してluma_weight_lx_flagが1である場合、BDOFも無効になる。CUが対称MVDモードまたはCIIPモードで符号化されている場合、BDOFも無効になる。
【0159】
VVCにおけるデコーダ側動きベクトル精緻化(DMVR:decoder side motion vector refinement)
マージモードのMVの正確度を高めるために、VVCにおいて、バイラテラル・マッチング(BM)ベースのデコーダ側動きベクトル精緻化が適用される。双予測動作では、参照ピクチャリストL0および参照ピクチャリストL1内の初期MVの周囲の精緻化されたMVがサーチされる。BM法は、参照ピクチャリストL0およびリストL1内の2つの候補ブロック間の歪みを算出する。図17に示されるように、初期MVの周囲の各MV候補に基づく赤色のブロック間のSADが算出される。最も低いSADを有するMV候補が、精緻化されたMVとなり、双予測信号を生成するために使用される。
【0160】
VVCでは、DMVRの適用は制限されており、次のモードおよび特徴によって符号化されるCUにのみ適用される。
- 双予測MVを用いたCUレベルマージモード
- 現在ピクチャに対して、一方の参照ピクチャは過去にあり、他方の参照ピクチャは未来にある
- 2つの参照ピクチャから現在ピクチャまでの距離(すなわち、POC差)が同じである
- 両方の参照ピクチャが短期参照ピクチャである
- CUが64を超えるルマサンプルを有する
- CU高さとCU幅との両方が8以上のルマサンプルである
- BCW重みインデックスが均等な重みを示している
- 現在ブロックに対してWPが有効ではない
- 現在ブロックに対してCIIPモードが使用されていない
【0161】
DMVRプロセスによって導出された精緻化されたMVは、インター予測サンプルを生成するために使用され、将来のピクチャ符号化のための時間動きベクトル予測にも使用される。元のMVはデブロック・プロセスにおいて使用され、将来のCU符号化のための空間動きベクトル予測にも使用される。
【0162】
次の節では、DMVRの追加機能が言及される。
【0163】
サーチ方式
DVMRでは、サーチ点は初期MVの周囲にあり、MVオフセットはMV差分のミラーリング規則に従う。言い換えれば、候補MVペア(MV0,MV1)によって示される、DMVRによってチェックされる任意の点は、次の2つの方程式に従う。
【数18】
【数19】
【0164】
ここで、MV_offsetは、参照ピクチャのうちの1つにおける初期MVと精緻化されたMVとの間の精緻化オフセットを表す。精緻化サーチ範囲は、初期MVからの2つの整数ルマサンプルである。サーチは、整数サンプルオフセットサーチ段階および分数サンプル精緻化段階を含む。
【0165】
整数サンプルオフセットサーチには25点の全サーチが適用される。最初に初期MVペアのSADが算出される。初期MVペアのSADがしきい値より小さい場合、DMVRの整数サンプル段階は終了する。それ以外の場合、残りの24点のSADが算出され、ラスタ走査順にチェックされる。最も小さいSADを有する点が、整数サンプルオフセットサーチ段階の出力として選択される。DMVR精緻化の不確実性による不利益を軽減するために、DMVRプロセス中に元のMVを優先することが提案されている。初期MV候補によって参照される参照ブロック間のSADは、SAD値の1/4だけ減少する。
【0166】
整数サンプルサーチの後に、分数サンプル精緻化が続く。算出複雑性を抑えるために、SAD比較を用いた追加のサーチの代わりにパラメトリック誤差表面方程式(parametric error surface equation)を使用することによって、分数サンプル精緻化が導出される。分数サンプル精緻化は、整数サンプルサーチ段階の出力に基づいて条件付きで呼び出される。整数サンプルサーチ段階が、1回目の反復サーチまたは2回目の反復サーチのいずれかにおいて最も小さいSADを有する中心で終了すると、分数サンプル精緻化がさらに適用される。
【0167】
パラメトリック誤差表面ベースのサブ画素オフセット推定では、中心位置のコストと中心から隣接する4つの位置のコストを使用して、次の形式の2D放物型誤差表面方程式、
【数20】
を当てはめ、ここで、(xmin,ymin)はコストが最も少ない分数位置に対応し、Cは最小コスト値に対応する。5つのサーチ点のコスト値を使用することによって上記の方程式を解くことにより、(xmin,ymin)は、
【数21】
【数22】
として計算される。
【0168】
すべてのコスト値が正であり、最も小さい値がE(0,0)であるので、xminおよびyminの値は-8と8との間に自動的に制限される。これは、VVCにおける1/16画素MV正確度を用いた2分の1画素オフセットに対応する。計算された分数(xmin,ymin)が整数距離精緻化MVに加算されて、サブ画素正確度の精緻化デルタMVが得られる。
【0169】
双線形補間およびサンプルパディング
VVCでは、MVの解像度は1/16ルマサンプルである。分数位置にあるサンプルは、8タップ補間フィルタを使用して補間される。DMVRでは、サーチ点は、整数サンプルオフセットを有する初期分数画素MVを囲んでおり、したがって、DMVRサーチプロセスではこれらの分数位置のサンプルは補間される必要がある。算出複雑性を軽減するために、双線形補間フィルタを使用して、DMVRでのサーチプロセス用の分数サンプルを生成する。別の重要な効果は、双線形フィルタを使用することによって、2サンプルのサーチ範囲により、DVMRが通常の動き補償プロセスと比較してより多くの参照サンプルにアクセスしないことである。DMVRサーチプロセスで精緻化されたMVが得られた後、最終的な予測を生成するために通常の8タップ補間フィルタが適用される。通常のMCプロセスに対してより多くの参照サンプルにアクセスしないようにするために、元のMVに基づく補間プロセスには必要ないが精緻化されたMVに基づく補間プロセスには必要なサンプルが、利用可能なサンプルからパディングされる。
【0170】
VVCにおける幾何学的区分モード(GPM:geometric partitioning mode)
VVCでは、インター予測のために幾何学的区分モードがサポートされている。幾何学的区分モードは、マージモードの一種としてCUレベルのフラグを使用して信号伝達され、他のマージモードは、通常のマージモード、MMVDモード、CIIPモード、およびサブブロック・マージモードを含む。幾何学的区分モードにより、8×64および64×8を除く可能なCUサイズw×h=2×2、m,n∈{3・・・6}ごとに、合計64個の区分がサポートされている。
【0171】
このモードが使用される場合、幾何学的に配置された直線によってCUが2つの部分に分裂される(図18)。分裂線の位置は、特定の区分の角度およびオフセット・パラメータから数学的に導出される。CU内の幾何学的区分の各部分は、その独自の動きを使用してインター予測され、各区分について単予測(uni-prediction)のみが許容され、すなわち、各部分は、1つの動きベクトルおよび1つの参照インデックスを有する。従来の双予測(bi-prediction)と同様に、各CUに必要な動き補償予測が2つだけであることを保証するために、単予測動き制約が適用される。各区分の単予測動きは、3.4.11.1で説明されているプロセスを使用して導出される。
【0172】
現在CUに幾何学的区分モードが使用される場合、幾何学的区分の区分モード(角度およびオフセット)を示す幾何学的区分インデックスおよび2つのマージインデックス(各区分に1つ)がさらに信号伝達される。最大GPM候補サイズの数は、SPSにおいて明示的に信号伝達され、GPMマージインデックスの構文2値化を指定する。幾何学的区分の各部分を予測した後、3.4.11.2にあるように、適応重みを用いた混合処理を使用して、幾何学的区分のエッジに沿ったサンプル値が調整される。これは、CU全体の予測信号であり、他の予測モードと同様に、変換および量子化プロセスがCU全体に適用されてもよい。最後に、幾何学的区分モードを使用して予測されたCUの動きフィールドは、3.4.11.3にあるように記憶される。
【0173】
単予測候補リストの構築
単予測候補リストは、3.4.1の拡張マージ予測プロセスに従って構築されたマージ候補リストから直接導出される。nを、幾何学的単予測候補リスト内の単予測動きのインデックスとして表す。n番目の拡張マージ候補のLX動きベクトル(Xはnのパリティに等しい)が、幾何学的区分モードのn番目の単予測動きベクトルとして使用される。図19では、これらの動きベクトルは「×」でマークされている。n番目の拡張マージ候補の対応するLX動きベクトルが存在しない場合、同じ候補のL(1-X)動きベクトルが幾何学的区分モードの単予測動きベクトルとして代わりに使用される。
【0174】
VVCにおける組み合わされたインター予測およびイントラ予測(CIIP:combined inter and intra prediction)
VVCでは、CUがマージモードで符号化されているとき、CUが少なくとも64ルマサンプルを含む場合(すなわち、CU幅×CU高さが64以上である場合)、および、CU幅とCU高さとの両方が128ルマサンプル未満である場合、組み合わされたインター/イントラ予測(CIIP)モードが現在CUに適用されているかどうかを示すための追加のフラグが信号伝達される。その名前が示すように、CIIP予測は、インター予測信号とイントラ予測信号とを組み合わせる。CIIPモードのインター予測信号Pinterは、通常のマージモードに適用されるのと同じインター予測プロセスを使用して導出され、イントラ予測信号Pintraは、平面モードによる通常のイントラ予測プロセスに従って導出される。次いで、イントラ予測信号およびインター予測信号は、加重平均を使用して組み合わされ、重み値は、(図20に描写された)上および左の隣接ブロックの符号化モードに応じて次のように算出される。
- 上隣接が利用可能でありイントラ符号化されている場合、isIntraTopを1に設定し、それ以外の場合、isIntraTopを0に設定する
- 左隣接が利用可能でありイントラ符号化されている場合、isIntraLeftを1に設定し、それ以外の場合、isIntraLeftを0に設定する
- (isIntraLeft+isIntraTop)が2に等しい場合、wtは3に設定される。
- それ以外の場合で、(isIntraLeft+isIntraTop)が1に等しい場合、wtは2に設定される
- それ以外の場合、wtを1に設定する
【0175】
CIIP予測は、次のように形成される。
【数23】
【0176】
VVCにおけるイントラブロックコピー(IBC)
イントラブロックコピー(IBC)は、SCC上のHEVC拡張において採用されているツールである。このIBCが画面コンテンツ素材の符号化効率が大幅に向上することはよく知られている。IBCモードはブロック・レベル符号化モードとして実装されるので、各CUに最適なブロックベクトル(または動きベクトル)を見出すために、エンコーダにおいてブロックマッチング(BM)が実行される。ここで、ブロックベクトルは、現在ブロックから、現在ピクチャ内で既に再構成されている参照ブロックへの変位を示すために使用される。IBC符号化されたCUのルマブロックベクトルは整数精度である。彩度ブロックベクトルも整数精度に丸められる。AMVRと組み合わされる場合、IBCモードは、1画素動きベクトル精度と4画素の動きベクトル精度とを切り替えることができる。IBC符号化されたCUは、イントラ予測モードまたはインター予測モード以外の第3の予測モードとして扱われる。IBCモードは、幅と高さとの両方が64ルマサンプル以下であるCUに適用可能である。
【0177】
エンコーダ側では、IBCに対してハッシュベースの動き推定が実行される。エンコーダは、幅または高さが16ルマサンプル以下のブロックに対してRDチェックを実行する。非マージモードの場合、最初にハッシュベースのサーチを使用して、ブロックベクトルサーチが実行される。ハッシュサーチが有効な候補を返さない場合、ブロックマッチングベースの局所サーチが実行される。
【0178】
ハッシュベースのサーチでは、現在ブロックと参照ブロックとの間のハッシュキーマッチング(32ビットCRC)が、許可されているすべてのブロックサイズに拡張される。現在ピクチャ内のすべての位置のハッシュキー算出は、4×4サブブロックに基づいている。より大きなサイズの現在ブロックの場合、すべての4×4サブブロックのすべてのハッシュキーが、対応する参照位置のハッシュキーと一致するとき、ハッシュキーは参照ブロックのハッシュキーと一致すると決定される。複数の参照ブロックのハッシュキーが現在ブロックのハッシュキーと一致することが判明した場合、一致した各参照のブロックベクトルコストが算出され、最小コストを有するものが選択される。
【0179】
ブロックマッチングサーチでは、サーチ範囲は以前のCTUと現在のCTUとの両方をカバーするように設定される。
【0180】
CUレベルでは、IBCモードは、フラグによって信号伝達され、次のようにIBC AMVPモードまたはIBCスキップ/マージモードとして信号伝達される。
【0181】
IBCスキップ/マージモード:マージ候補インデックスは、隣接する候補IBC符号化ブロックからのリスト内のどのブロックベクトルが現在ブロックを予測するために使用されるかを示すために使用される。マージリストは、空間候補、HMVP候補、およびペアごとの候補で構成される。
【0182】
IBC AMVPモード:ブロックベクトル差分は、動きベクトル差分と同じ方法で符号化される。ブロックベクトル予測方法は、(IBC符号化の場合)左隣接からの候補および上隣接からの候補という2つの候補を予測子として使用する。いずれの隣接も利用できない場合、デフォルトのブロックベクトルが予測子として使用される。ブロックベクトル予測子インデックスを示すためのフラグが信号伝達される。
【0183】
IBC参照領域
メモリ消費およびデコーダの複雑性を軽減するために、VVCにおけるIBCは、現在のCTUの領域および左CTUの一部の領域を含む、予め定められたエリアの再構成された部分のみを許可する。現在のCTU内の現在の符号化CUの位置に応じて、以下が適用される。
【0184】
現在ブロックが現在のCTUの左上64×64ブロックに該当する場合、現在ブロックは、現在のCTU内の既に再構成されたサンプルに加えて、CPRモードを使用して左CTUの右下64×64ブロック内の参照サンプルも参照することができる。現在ブロックは、CPRモードを使用して、左CTUの左下64×64ブロック内の参照サンプル、および左CTUの右上64×64ブロック内の参照サンプルも参照することができる。
【0185】
現在ブロックが現在のCTUの右上64×64ブロックに該当する場合、現在のCTUに対するルマ位置(0,64)がまだ再構成されていないとき、現在ブロックは、現在のCTU内の既に再構成されたサンプルに加えて、CPRモードを使用して左CTUの左下64×64ブロックおよび右下64×64ブロック内の参照サンプルも参照することができる。それ以外の場合、現在ブロックは、左CTUの右下64×64ブロック内の参照サンプルも参照することができる。
【0186】
現在ブロックが現在のCTUの左下64×64ブロックに該当する場合、現在のCTUに対するルマ位置(64,0)がまだ再構成されていないとき、現在ブロックは、現在のCTU内の既に再構成されたサンプルに加えて、CPRモードを使用して左CTUの右上64×64ブロックおよび右下64×64ブロックの参照サンプルも参照することができる。それ以外の場合、現在ブロックは、CPRモードを使用して左CTUの右下64×64ブロック内の参照サンプルも参照することがきる。
【0187】
現在ブロックが現在のCTUの右下64×64ブロックに該当する場合、CPRモードを使用して、現在のCTU内で既に再構成されたサンプルのみを参照することができる。
【0188】
この制限は、ハードウェア実装にローカルのオンチップメモリを使用してIBCモードを実装することを可能にする。
【0189】
ECMにおける局所照明補償(LIC:local illumination compensation)
【0190】
LICは、現在ブロックとその予測ブロックとの間の局所照明変動を、現在ブロックテンプレートと参照ブロックテンプレートとの間の局所照明変動の関数としてモデル化するためのインター予測技法である。関数のパラメータは、スケールαおよびオフセットβによって表されることが可能であり、線形方程式、すなわち、照明の変化を補償するためのα*p[x]+βを形成し、ここで、p[x]は、参照ピクチャ上の位置xにあるMVによって指し示される参照サンプルである。αおよびβは現在ブロックテンプレートおよび参照ブロックテンプレートに基づいて導出され得るので、LICの使用を示すためにAMVPモードについてLICフラグが信号伝達されることを除いて、αおよびβについて信号伝達オーバーヘッドは必要ない。
【0191】
JVET-O0066において提案された局所照明補償は、以下の修正を加えて単予測インターCUに使用される。
- LICパラメータ導出においてイントラ隣接サンプルが使用され得る。
- LICは、32未満のルマサンプルを有するブロックに対して無効になる。
- 非サブブロックモードとアフィンモードとの両方について、LICパラメータ導出は、最初の左上16×16ユニットに対応する部分テンプレートブロックサンプルの代わりに、現在CUに対応するテンプレートブロックサンプルに基づいて実行される。
- 参照ブロックテンプレートのサンプルは、整数画素精度に丸めることなく、ブロックMVとともにMCを使用することによって生成される。
【0192】
ECMにおける非隣接空間候補
通常のマージ候補リスト内のTMVPの後に、JVET-L0399におけるような非隣接空間マージ候補が挿入される。図21には、空間マージ候補のパターンが示されている。非隣接空間候補と現在符号化ブロックとの間の距離は、現在符号化ブロックの幅および高さに基づいている。ライン・バッファ制限は適用されない。
【0193】
ECMにおけるテンプレートマッチング(TM)
テンプレートマッチング(TM)は、現在ピクチャ内のテンプレート(すなわち、現在CUの上および/または左に隣接するブロック)と参照ピクチャ内のブロック(すなわち、テンプレートと同じサイズ)との間の最も近い一致を見出すことによって、現在CUの動き情報を精緻化するためのデコーダ側MV導出方法である。図22に示されるように、現在CUの初期動きを中心として[-8,+8]画素サーチ範囲内でより良好なMVがサーチされる。JVET-J0021におけるテンプレートマッチング方法は、次の修正、すなわち、サーチステップのサイズはAMVRモードに基づいて決定されるという修正、およびTMがマージモードでバイラテラルマッチングプロセスとカスケードされ得るという修正を伴って使用される。
【0194】
AMVPモードでは、現在ブロックテンプレートと参照ブロックテンプレートとの間の最小誤差に達するMVP候補を選択するために、テンプレートマッチング・エラーに基づいてMVP候補が決定され、次いで、MV精緻化のために、この特定のMVP候補に対してのみTMが実行される。TMは、反復ダイヤモンドサーチを使用して、[-8,+8]画素サーチ範囲内の全画素MVD精度(または4画素AMVRモードの場合は4画素)から開始して、このMVP候補を精緻化する。AMVP候補は、表3で指定されているように、全画素MVD精度(または4画素AMVRモードの場合は4画素)のクロスサーチを使用し、続いてAMVRモードに応じて2分の1画素および4分の1画素MVD精度を使用することによってさらに精緻化されてもよい。このサーチプロセスは、MVP候補がTMプロセス後もAMVRモードで示されるのと同じMV精度を維持することを保証する。
【0195】
【表3】
【0196】
マージモードでは、マージインデックスによって示されるマージ候補に対して同様のサーチ方法が適用される。表3が示すように、TMは、マージされた動き情報に従って(AMVRが2分の1画素モードの場合に使用される)代替補間フィルタが使用されるかどうかに応じて、1/8画素MVD精度に至るまで実行するか、または2分の1画素MVD精度を超える精度をスキップしてもよい。さらに、TMモードが有効である場合、テンプレートマッチングは、有効条件チェックに従ってBMが有効化され得るか否かに応じて、ブロックベースのバイラテラル・マッチング(BM)方法とサブブロックベースのBM方法との間の独立したプロセスまたは追加のMV精緻化プロセスとして機能してもよい。
【0197】
ECMにおけるマルチパスデコーダ側動きベクトル精緻化
マルチパスデコーダ側動きベクトル精緻化が適用される。第1のパスでは、バイラテラル・マッチング(BM)は、符号化ブロックに適用される。第2のパスでは、BMは、符号化ブロック内の各16×16サブブロックに適用される。第3のパスでは、双方向オプティカルフロー(BDOF)を適用することによって、各8×8サブブロック内のMVが精緻化される。精緻化されたMVは、空間動きベクトル予測と時間動きベクトル予測との両方のために記憶される。
【0198】
第1のパス - ブロックベースのバイラテラル・マッチングMV精緻化
第1のパスでは、BMを符号化ブロックに適用することによって、精緻化されたMVが導出される。デコーダ側動きベクトル精緻化(DMVR)と同様に、双予測動作において、参照ピクチャリストL0およびL1内の2つの初期MV(MV0およびMV1)の周囲で、精緻化されたMVがサーチされる。L0およびL1内の2つの参照ブロック間の最小バイラテラルマッチングコストに基づいて、初期MVの周囲で、精緻化されたMV(MV0_pass1およびMV1_pass1)が導出される。
【0199】
BMは、局所サーチを実行して整数サンプル精度intDeltaMVを導出する。局所サーチは、3×3の正方形のサーチパターンを適用して、水平方向のサーチ範囲[-sHor,sHor]、垂直方向のサーチ範囲[-sVer,sVer]をループし、sHorおよびsVerの値はブロック次元によって決定され、sHorおよびsVerの最大値は8である。
【0200】
バイラテラルマッチングコストは、bilCost=mvDistanceCost+sadCostとして算出される。ブロックサイズcbW*cbHが64より大きいとき、参照ブロック間の歪みのDC効果を除去するために、MRSADコスト関数が適用される。3×3サーチパターンの中心点におけるbilCostが最小コストを有するとき、intDeltaMV局所サーチは終了する。それ以外の場合、現在の最小コストサーチ点は、3×3サーチパターンの新しい中心点になり、サーチ範囲の終端に到達するまで最小コストのサーチを継続する。
【0201】
最終的なdeltaMVを導出するために、さらに既存の分数サンプル精緻化が適用される。次いで、第1のパス後の精緻化されたMVが、
- MV0_pass1=MV0+deltaMV
- MV1_pass1=MV1-deltaMV
として導出される。
【0202】
第2のパス - サブブロックベースのバイラテラル・マッチングMV精緻化
第2のパスでは、BMを16×16グリッドのサブブロックに適用することによって、精緻化されたMVが導出される。サブブロックごとに、参照ピクチャリストL0およびL1内の、第1のパスで得られた2つのMV(MV0_pass1およびMV1_pass1)の周囲で、精緻化されたMVがサーチされる。精緻化されたMV(MV0_pass2(sbIdx2)およびMV1_pass2(sbIdx2))は、L0およびL1内の2つの参照サブブロック間の最小バイラテラルマッチングコストに基づいて導出される。
【0203】
サブブロックごとに、BMは、全サーチを実行して整数サンプル精度intDeltaMVを導出する。全サーチは、水平方向のサーチ範囲[-sHor,sHor]および垂直方向のサーチ範囲[-sVer,sVer]を有し、sHorおよびsVerの値はブロック次元によって決定され、sHorおよびsVerの最大値は8である。
【0204】
バイラテラルマッチングコストは、2つの参照サブブロック間のSATDコストにコスト係数を適用することによって、bilCost=satdCost*costFactorとして算出される。サーチエリア(2*sHor+1)*(2*sVer+1)は、図23に示されるように、最大5つのダイヤモンド形状のサーチ領域に分割される。各サーチ領域には、各サーチ点と開始MVとの間の距離(intDeltaMV)によって決定されるcostFactorが割り当てられ、各ダイヤモンド領域はサーチエリアの中心から順に処理される。各領域において、サーチ点は、領域の左上から開始して右下隅に向かってラスタ走査順序で処理される。現在のサーチ領域内の最小bilCostが、sbW*sbHに等しいしきい値より小さい場合、整数画素全サーチは終了し、それ以外の場合、すべてのサーチ点が検査されるまで、整数画素全サーチは次のサーチ領域に進む。
【0205】
最終的なdeltaMV(sbIdx2)を導出するために、さらに既存のVVC DMVR分数サンプル精緻化が適用される。第2のパスにおける精緻化されたMVは、
- MV0_pass2(sbIdx2)=MV0_pass1+deltaMV(sbIdx2)
- MV1_pass2(sbIdx2)=MV1_pass1-deltaMV(sbIdx2)
として導出される。
【0206】
第3のパス - サブブロックベースの双方向オプティカルフローMV精緻化
第3のパスでは、BDOFを8×8グリッド・サブブロックに適用することによって、精緻化されたMVが導出される。8×8サブブロックごとに、第2のパスの親サブブロックの精緻化されたMVから開始して、クリッピングなしでスケーリングされたVxおよびVyを導出するために、BDOF精緻化が適用される。導出されたbioMv(Vx,Vy)は1/16サンプル精度に丸められ、-32と32との間でクリップされる。
【0207】
第3のパスにおける精緻化されたMV(MV0_pass3(sbIdx3)およびMV1_pass3(sbIdx3))は、
- MV0_pass3(sbIdx3)=MV0_pass2(sbIdx2)+bioMv
- MV1_pass3(sbIdx3)=MV0_pass2(sbIdx2)-bioMv
として導出される。
【0208】
ECMにおけるOBMC
OBMCが適用されると、JVET-L0101で説明されているように、隣接ブロックの動き情報を重み付き予測とともに使用して、CUの上および左の境界画素が精緻化される。
【0209】
OBMCを適用しない条件は以下の通りである。
- OBMCがSPSレベルで無効である場合
- 現在ブロックがイントラ・モードまたはIBCモードを有する場合
- 現在ブロックがLICを適用する場合
- 現在のルマブロック・エリアが32以下の場合
【0210】
サブブロック境界OBMCは、隣接サブブロックの動き情報を使用して上、左、下、および右のサブブロック境界画素に同じ混合を適用することによって実行される。これは、サブブロックベースの符号化ツール、
- アフィンAMVPモード
- アフィンマージモードおよびサブブロックベースの時間動きベクトル予測(SbTMVP)
- サブブロックベースのバイラテラル・マッチング
に対して有効になる。
【0211】
ECMにおけるサンプルベースのBDOF
サンプルベースのBDOFでは、ブロック単位で動き精緻化(Vx,Vy)を導出する代わりに、サンプルごとに導出が実行される。
【0212】
符号化ブロックは8×8のサブブロックに分割される。サブブロックごとに、2つの参照サブブロック間のSADをしきい値に照らしてチェックすることによって、BDOFを適用するか否かが決定される。サブブロックにBDOFを適用すると決定された場合、サブブロック内のすべてのサンプルに対して、スライディング5×5ウィンドウが使用され、すべてのスライディング・ウィンドウに対して既存のBDOFプロセスが適用されて、VxおよびVyが導出される。導出された動き精緻化(Vx,Vy)は、ウィンドウの中心サンプルの双予測サンプル値を調整するために適用される。
【0213】
ECMにおける補間
VVCにおいて使用される8タップ補間フィルタは、12タップ・フィルタに置き換えられる。補間フィルタはsinc関数から導出され、sinc関数の周波数応答は、ナイキスト周波数においてカットオフされ、コサイン・ウィンドウ関数によってクロップされる。表4は、16位相すべてのフィルタ係数を示している。図24は、補間フィルタの周波数応答をVVC補間フィルタと比較したものであり、すべて2分の1画素位相でのものである。
【0214】
【表4】
【0215】
ECMにおける多仮説予測(MHP:multi-hypothesis prediction)
【0216】
多仮説インター予測モード(JVET-M0425)では、従来の双予測信号に加えて、1つまたは複数の追加の動き補償予測信号が信号伝達される。結果として得られる全体的な予測信号は、サンプルごとに重み付けされた重ね合せによって取得される。双予測信号pbiおよび第1の追加のインター予測信号/仮説hを用いることにより、結果として得られる予測信号pは以下のように取得される。
=(1-α)pbi+αh
【0217】
重み付け係数αは、次のマッピングに従って新しい構文要素add_hyp_weight_idxによって指定される。
【0218】
上記と同様に、2つ以上の追加の予測信号が使用され得る。結果として得られる全体的な予測信号は、各追加の予測信号とともに反復して累積される。
n+1=(1-αn+1)p+αn+1n+1
【0219】
結果として得られる全体的な予測信号は、最後のp(すなわち、最も大きいインデックスnを有するp)として取得される。このEE内では、最大2つの追加の予測信号が使用され得る(すなわち、nは2に限定される)。
【0220】
追加の各予測仮説の動きパラメータは、参照インデックス、動きベクトル予測子インデックス、および動きベクトル差分を指定することによって明示的に、またはマージインデックスを指定することによって暗黙的に信号伝達される。別個の多仮説マージ・フラグが、これら2つの信号伝達モードを区別する。
【0221】
インターAMVPモードの場合、MHPは、双予測モードでBCWにおける不均等な重みが選択されている場合にのみ適用される。
【0222】
MHPとBDOFとの組合せは可能であるが、BDOFは、予測信号の双予測信号部分(すなわち、通常の最初の2つの仮説)にのみ適用される。
【0223】
ECMにおけるテンプレートマッチングを用いたマージ候補の適応型並べ替え(ARMC-TM:adaptive reordering of merge candidates with template matching)
【0224】
マージ候補は、テンプレートマッチング(TM)によって適応的に並べ替えられる。
この並べ替え方法は、通常のマージモード、テンプレートマッチング(TM)マージモード、およびアフィンマージモードに適用される(SbTMVP候補を除く)。TMマージモードの場合、マージ候補は、精緻化プロセスの前に並べ替えられる。
【0225】
マージ候補リストが構築された後、マージ候補はいくつかのサブグループに分割される。通常のマージモードおよびTMマージモードの場合、サブグループサイズは5に設定される。アフィンマージモードの場合、サブグループサイズは3に設定される。各サブグループ内のマージ候補は、テンプレートマッチングに基づくコスト値に従って昇順に並べ替えられる。簡素化のため、最初ではなく最後のサブグループ内のマージ候補は並べ替えられない。
【0226】
マージ候補のテンプレートマッチングコストは、現在ブロックのテンプレートのサンプルとそれらの対応する参照サンプルとの間の差分絶対値和(SAD)によって測定される。テンプレートは、現在ブロックに隣接する再構成されたサンプルのセットを含む。テンプレートの参照サンプルは、マージ候補の動き情報によって位置特定される。
【0227】
マージ候補が双方向予測を利用する場合、図25に示されるように、マージ候補のテンプレートの参照サンプルも双予測によって生成される。
【0228】
サブブロックサイズがWsub×Hsubに等しいサブブロックベースのマージ候補の場合、上のテンプレートは、サイズWsub×1のいくつかのサブテンプレートを含み、左のテンプレートはサイズ1×Hsubのいくつかのサブテンプレートを含む。図26に示されるように、現在ブロックの1行目および1列目のサブブロックの動き情報は、各サブテンプレートの参照サンプルを導出するために使用される。
【0229】
ECMにおけるマージ動きベクトル差分(MMVD)を用いた幾何的区分モード(GPM)
VVCにおけるGPMは、既存のGPM単方向MVの上に動きベクトル精緻化を適用することによって拡張される。最初に、GPM CUに対してこのモードが使用されるかどうかを指定するためのフラグが信号伝達される。このモードが使用される場合、GPM CUの各幾何学的区分はさらに、MVDを信号伝達するか否かを決定することができる。幾何学的区分についてMVDが信号伝達された場合、GPMマージ候補が選択された後、信号伝達されたMVD情報によって区分の動きがさらに精緻化される。他のすべての手順はGPMと同じである。
【0230】
MVDは、MMVDと同様に、距離と方向とのペアとして信号伝達される。MMVDを用いたGPM(GPM-MMVD)に関与する、9つの候補距離(1/4画素、1/2画素、1画素、2画素、3画素、4画素、6画素、8画素、16画素)ならびに8つの候補方向(4つの水平/垂直方向および4つの斜め方向)が存在する。さらに、pic_fpel_mmvd_enabled_flagが1に等しい場合、MVDは、MMVDと同様に2だけ左シフトされる。
【0231】
ECMにおけるテンプレートマッチング(TM)を用いた幾何学的区分モード(GPM)
GPMにテンプレートマッチングが適用される。CUに対してGPMモードが有効になっている場合、TMが両方の幾何学的区分に適用されるかどうかを示すための、CUレベルのフラグが信号伝達される。各幾何学的区分の動き情報は、TMを使用して精緻化される。TMが選ばれると、表5に示されるように、区分角度に従って左、上、または左および上の隣接サンプルを使用してテンプレートが構築される。次いで、次に、2分の1画素補間フィルタを無効にしたマージモードの同じサーチパターンを使用して、現在テンプレートと参照ピクチャ内のテンプレートとの間の差を最小化することによって、動きが精緻化される。
【0232】
【表5】
【0233】
GPM候補リストは次のように構築される。
【0234】
1.通常のマージ候補リストから、インターリーブされたリスト0のMV候補、およびリスト1のMV候補が直接導出される。リスト0のMV候補はリスト1のMV候補よりも優先度が高い。冗長なMV候補を削除するために、現在CUサイズに基づいた適応的なしきい値を用いたプルーニング方法が適用される。
【0235】
2.通常のマージ候補リストからさらに、インターリーブされたリスト1のMV候補、およびリスト0のMV候補が直接導出される。リスト1のMV候補はリスト0のMV候補よりも優先度が高い。同様に、冗長なMV候補を削除するために、適応的なしきい値を用いたプルーニング方法が適用される。
【0236】
3.GPM候補リストが満たされるまで、ゼロのMV候補がパディングされる。
【0237】
GPM-MMVDおよびGPM-TMは1つのGPM CUに対して排他的に有効になる。これは、最初にGPM-MMVD構文を信号伝達することによって行われる。2つのGPM-MMVD制御フラグが両方とも偽に等しい場合(すなわち、GPM-MMVDが2つのGPM区分に対して無効になっている場合)、テンプレートマッチングが2つのGPM区分に適用されるかどうかを示すためのGPM-TMフラグが信号伝達される。それ以外の場合(少なくとも1つのGPM-MMVDフラグが真に等しい場合)、GPM-TMフラグの値は偽であると推論される。
【0238】
【表6】
【0239】
HEVCおよびVVCなどの既存のビデオコーデックでは、インター・モード符号化CU(以下、インターCUと呼ぶ)の参照ブロックが部分的または全体的に参照ピクチャの外側に位置する場合がある。これは、反復的なパディング・プロセスが参照ピクチャに適用され、各参照ピクチャの周囲に参照画素が生成されるからである。
【0240】
VVC仕様では、パディング・プロセスは、(表6に示されるように)整数参照サンプルのフェッチング・プロセスを変更することによって実装される。フェッチされるべき整数参照サンプルが参照ピクチャの外側に位置する場合は常に、参照ピクチャ内の最も近い整数参照サンプルが代わりに使用される。
【0241】
パディングされた参照ピクチャにより、インターCUが、図27に示されるように部分的または全体的に参照ピクチャの外側に位置する参照ブロックを有していることが有効である。図27では、現在ブロックのインター予測ブロックを生成するために双方向動き補償が実行される。この例では、リスト0の参照ブロックは部分的に境界外(OOB)にあり、一方、リスト1の参照ブロックは全体的に参照ピクチャの内側にある。
【0242】
インター・ブロックが双方向予測または多方向予測される場合、最終的な予測子は、単純に、2つまたは複数の動き補償された予測ブロックの平均であり、BWCがさらに適用されると、リスト0およびリスト1のMC予測子に異なる重みが適用されて、それぞれ最終的な予測子が生成される。しかしながら、境界外(OOB)部分は単純に、参照ピクチャ内の境界画素によって生成される繰り返しパターンであるので、動き補償ブロックのOOB部分は予測効果が低くなる。しかし、既存のビデオコーデックでは、MCブロックの効果の低いOOB部分は、インター予測において考慮されない。
【0243】
本開示では、MCブロックのOOB部分の効果が低いことを考慮することによってインター予測を改善するためのいくつかの方法が提案される。さらに、「ブロック」は、本開示の概念を説明するために使用され、「ブロック」は、既存のコーデックで使用される任意の具体的な定義によって容易に置き換えられてもよい。例えば、「ブロック」は、符号化ユニット(CU)、予測ユニット(PU)、変換ユニット(TU)、符号化ツリーユニット(CTU)、符号化ブロック(CB)、予測ブロック(PB)、変換ブロック(TB)、符号化ツリー・ブロック(CTB)、サブCU、サブPU、または既存のコーデックにおける明確に定義された任意の他の用語であってもよい。
【0244】
以下の方法は、単独でまたは組み合わせて適用されてもよい。
【0245】
本開示による一実施形態では、動き補償プロセスによって生成された2つ以上の予測ブロックを組み合わせるときに、追加の重み付けが予測子に適用され、追加の重み付けは、予測サンプルがOOBであるか否かに基づいて導出される。基本的な概念は、2つの予測子ブロックの加重平均を実行するときに、OOB予測子サンプルは効果が低いので、OOB予測子サンプルにより少ない重みが与えられるということである。
【0246】
1つの方式では、双方向インター符号化ブロックの最終予測子サンプルは、次の方程式
を使用して予測子を加重平均することによって生成され、ここで、
は、動き補償プロセスにより、それぞれリスト0およびリスト1の参照ピクチャから導出された予測子サンプルであり、
は、OOB条件によって導出された対応する予測子に関連付けられた重み付けであり、shiftは、平均係数であり、2つの予測子の平均の場合は1に設定され、οoffsetは、丸めオフセットであり、通常は1<<(shift-1)として設定される。
【0247】
図28に示されるように、ブロックの予測子サンプルは、参照ピクチャから動き補償を実行することによって導出される。参照ブロックを位置特定するために、現在ブロックの動きベクトルが使用される。参照ブロックが整数参照サンプル間の分数位置に位置する場合は、予測サンプルを導出するために分数補間プロセスがさらに適用されることに留意されたい。VVCの8.5.6.3.2節「ルマサンプル補間フィルタリング・プロセス」において説明されているように、分数補間は、最初に、垂直方向に隣接する8つの整数サンプルにアクセスする垂直方向1次元補間を実行し、続いて、垂直方向に補間された水平方向に隣接する8つのサンプルにアクセスする水平方向1次元補間を実行する。ECMでは、VVCにおいて使用されていた8タップ補間フィルタがさらに12タップのフィルタに置き換えられる。
【0248】
上記で説明された動き補償方式に基づいて、(補間プロセスを通じて)予測子サンプルを生成するために使用される整数参照サンプルのうちの少なくとも1つが参照ピクチャの外側に位置する場合、予測子サンプル
はOOBとして定義される。
【0249】
重み付けは、以下のような方法を使用して導出されてもよい。
【0250】
【0251】
図30は、本開示による符号化方法の一例を示す。ステップ3001において、デコーダは、現在符号化ブロックのための第1の参照ピクチャおよび第2の参照ピクチャを導出する。ステップ3002において、デコーダは、第1の参照ピクチャからの動き補償プロセスを使用して、第1の参照ピクチャに関連付けられた第1の動きベクトルに基づいて第1の予測子サンプルを導出する。ステップ3003において、デコーダは、第2の参照ピクチャからの動き補償プロセスを使用して、第2の参照ピクチャに関連付けられた第2の動きベクトルに基づいて第2の予測子サンプルを導出する。ステップ3004において、デコーダは、第1の予測子サンプルまたは第2の予測子サンプルのうちの少なくとも1つおよび境界外(OOB)条件に基づいて、現在符号化ブロック内の最終予測子サンプルを取得する。この例示的な方法は、同様にエンコーダによって実行されてもよい。
【0252】
本開示の別の実施形態では、動き補償プロセスによって生成された2つの予測ブロックをBCW加重平均と組み合わせるBCWモードとしてブロックが符号化されるとき、追加の重み付けが予測子に適用され、追加の重み付けは、予測子がOOBであるか否かに基づいて導出される。1つの方式では、BCW符号化ブロックの最終予測子サンプルは、次の方程式
を使用して予測子を加重平均することによって生成され、ここで、wはBCW重み付けであり、
は、動き補償プロセスにより、それぞれリスト0およびリスト1の参照ピクチャから導出された予測子サンプルであり、
は、OOB条件によって導出された対応する予測子に関連付けられた重み付けであり、shiftは、平均化係数であり、BCW重み付けを正規化するために3に設定され、οoffsetは、丸めオフセットであり、通常は1<<(shift-1)として設定される。
【0253】
【0254】
本開示の別の実施形態では、ブロックに対してBDOFが有効になると、追加の重み付けが予測子に適用され、追加の重み付けは、予測子がOOBであるか否かに基づいて導出される。1つの方式では、BDOF有効ブロックの最終予測子サンプルは、次の方程式
を使用して予測子を加重平均することによって生成され、ここで、Bi,jは各予測子サンプルのBDOFオフセットであり、
は、動き補償プロセスにより、それぞれリスト0およびリスト1の参照ピクチャから導出された予測子サンプルであり、
は、OOB条件によって導出された対応する予測子に関連付けられた重み付けであり、shiftは、平均化係数であり、BCW重み付けを正規化するために3に設定され、οoffsetは、丸めオフセットであり、通常は1<<(shift-1)として設定される。
【0255】
【0256】
本開示の別の実施形態では、ブロックに対してBDOFが有効になると、追加の重み付けが予測子に適用され、追加の重み付けは、予測子がOOBであるか否かに基づいて導出される。1つの方式では、BDOF有効ブロックの最終予測子サンプルは、次の方程式
を使用して予測子を加重平均することによって生成され、ここで、Bi,jは各予測子サンプルのBDOFオフセットであり、
は、動き補償プロセスにより、それぞれリスト0およびリスト1の参照ピクチャから導出された予測子サンプルであり、
は、OOB条件によって導出された対応する予測子に関連付けられた重み付けであり、shiftは、平均化係数であり、BCW重み付けを正規化するために3に設定され、οoffsetは、丸めオフセットであり、通常は1<<(shift-1)として設定される。
【0257】
【0258】
上記で説明された動き補償方式に基づいて、(補間プロセスを通じて)予測子サンプルを生成するために使用される整数参照サンプルのうちの少なくとも1つが参照ピクチャの外側に位置する場合、予測子サンプルはOOBとして定義される。
【0259】
しかしながら、場合によっては、補間プロセスを通じて予測子サンプルを生成するために少数のOOB参照整数サンプルのみが使用され、この場合、この予測子サンプルは依然として効率的な予測を提供する可能性がある(例えば、8つの参照整数サンプルのうち2つだけがOOBである)。したがって、OOB決定の許容範囲を提供するために、予測サンプルがOOBであるか否かを決定するための様々な方式が提案されている。
【0260】
本開示の別の実施形態では、垂直方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBであるか、または水平方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBである場合、予測子サンプルはOOBと決定される。例えば、図28に示されるように、予測子P_0,0^Lxの水平方向に最も近い整数参照サンプルは、サンプルdおよびeである。
【0261】
本開示の別の実施形態では、予測子サンプルを生成するために使用される整数サンプルのうちの少なくともN個がOOBである場合、予測子サンプルはOOBと決定され、Nは任意の整数である。
【0262】
本開示の別の実施形態では、2つまたは複数の予測子ブロックの加重平均を実行するとき、補間を行うためにOOB整数参照サンプルを使用する予測子サンプルに、より少ない重みが与えられる。さらに、重みは、OOB整数参照サンプルの数に反比例する。
【0263】
本開示の別の実施形態では、2つまたは複数の予測子ブロックの加重平均を実行するとき、補間を行うためにOOB整数参照サンプルを使用する予測子サンプルに、重みが与えられる。重みは、シーケンス・レベル(シーケンスパラメータセット)、ピクチャ・レベル(ピクチャ・パラメータ・セット)、スライス・レベル(スライス・ヘッダ)、またはブロック・レベルなどの異なるレベルでビットストリームにおいて信号伝達される。
【0264】
OOB条件を考慮する提案されたMC方式は、提案された実施形態における符号化方法に適用されることに限定されず、前のセクションで説明されたような、OBMC、IBC、SMVD、DMVRなどのすべてのインター・ツールにも適用され得ることに留意されたい。
【0265】
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を含む1つまたは複数の回路を含む装置を使用して実装されてもよい。装置は、上記で説明された方法を実行するために、他のハードウェア構成要素またはソフトウェア構成要素と組み合わせて回路を使用してもよい。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装されてもよい。
【0266】
図29は、ユーザインターフェース1650と結合されたコンピューティング環境1610を示す。コンピューティング環境1610は、データ処理サーバの一部であってもよい。コンピューティング環境1610は、プロセッサ1620、メモリ1630、および入出力(I/O)インターフェース1640を含む。
【0267】
プロセッサ1620は、典型的には、表示、データ取得、データ通信、および画像処理に関連する動作など、コンピューティング環境1610の全体的な動作を制御する。プロセッサ1620は、上記で説明された方法におけるステップのすべてまたは一部を実施するよう求める命令を実行するための1つまたは複数のプロセッサを含んでもよい。さらに、プロセッサ1620は、プロセッサ1620と他の構成要素との間の対話を容易にする1つまたは複数のモジュールを含んでもよい。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングル・チップ・マシン、グラフィック処理ユニット(GPU)などであってもよい。
【0268】
メモリ1630は、コンピューティング環境1610の動作をサポートするために様々なタイプのデータを記憶するように構成される。メモリ1630は、所定のソフトウェア1632を含んでもよい。そのようなデータの例は、コンピューティング環境1610上で動作される任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1630は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性もしくは不揮発性メモリ・デバイスまたはそれらの組合せを使用することによって実装されてもよい。
【0269】
I/Oインターフェース1640は、プロセッサ1620と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、ホーム・ボタン、走査開始ボタン、走査停止ボタンを含んでもよいが、これらに限定されない。I/Oインターフェース1640は、エンコーダおよびデコーダと結合されてもよい。
【0270】
一実施形態では、例えばメモリ1630内に、コンピューティング環境1610内のプロセッサ1620によって実行可能な、上記で説明された方法を実行するための複数のプログラムを含む非一過性コンピュータ可読記憶媒体も提供される。代替として、非一過性コンピュータ可読記憶媒体は、ビデオデータを復号する際にデコーダ(例えば、図3のビデオデコーダ30)によって使用するために、例えば上記で説明された符号化方法を使用してエンコーダ(例えば、図2のビデオエンコーダ20)によって生成された符号化されたビデオ情報(例えば、1つまたは複数の構文要素を含むビデオ情報)を含むビットストリームまたはデータストリームを記憶していてもよい。非一過性コンピュータ可読記憶媒体は、例えば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、光データ記憶デバイスなどであってもよい。
【0271】
一実施形態では、1つまたは複数のプロセッサ(例えば、プロセッサ1620)と、1つまたは複数のプロセッサによって実行可能な複数のプログラムを記憶している非一過性コンピュータ可読記憶媒体またはメモリ1630とを備えるコンピューティング・デバイスも提供され、1つまたは複数のプロセッサは、複数のプログラムの実行時に、上記で説明された方法を実行するように構成される。
【0272】
一実施形態では、上記で説明された方法を実行するためにコンピューティング環境1610内のプロセッサ1620によって実行可能な、例えばメモリ1630内の複数のプログラムを含むコンピュータ・プログラム製品も提供される。例えば、コンピュータ・プログラム製品は、非一過性コンピュータ可読記憶媒体を含んでもよい。
【0273】
一実施形態では、コンピューティング環境1610は、上記の方法を実行するために、1つまたは複数のASIC、DSP、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装されてもよい。
【0274】
本開示の説明は、例示を目的として提示されたものであり、本開示を網羅することも限定することも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正、変形、および代替の実装形態が明らかであろう。
【0275】
特に明記されない限り、本開示による方法のステップの順序は、例示のみを意図されており、本開示による方法のステップは、上記で具体的に説明された順序に限定されず、実際の条件に従って変更されてもよい。さらに、本開示による方法のステップのうちの少なくとも1つは、実際の要件に従って調整、結合、または削除されてもよい。
【0276】
例は、本開示の原理を説明し、当業者が様々な実装形態について本開示を理解できるようにし、企図される特定の使用に適するように様々な修正を加えて基礎となる原理および様々な実装形態を最大限に活用するために、選択され説明されたものである。したがって、本開示の範囲が、開示された実装形態の特定の例に限定されるものではないこと、また修正および他の実装形態が本開示の範囲内に含まれるよう意図されていることが理解されるべきである。
図1
図2
図3
図4A
図4B
図4C
図4D
図4E
図5
図6
図7
図8
図9A
図9B
図10A
図10B
図11
図12
図13
図14
図15A
図15B
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
【手続補正書】
【提出日】2024-03-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーダによって、現在符号化ブロックのための第1の参照ピクチャおよび第2の参照ピクチャを導出することと、
前記デコーダによって、前記第1の参照ピクチャからの動き補償プロセスを使用して、前記第1の参照ピクチャに関連付けられた第1の動きベクトルに基づいて第1の予測子サンプルを導出することと、
前記デコーダによって、前記第2の参照ピクチャからの前記動き補償プロセスを使用して、前記第2の参照ピクチャに関連付けられた第2の動きベクトルに基づいて第2の予測子サンプルを導出することと、
前記デコーダによって、前記第1の予測子サンプルまたは前記第2の予測子サンプルのうちの少なくとも1つおよび境界外(OOB)条件に基づいて、前記現在符号化ブロック内の最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項2】
前記OOB条件が、
前記第1の予測子サンプルがOOBであるかどうか、および
前記第2の予測子サンプルがOOBであるかどうか、
を含む、請求項1に記載のビデオ符号化方法。
【請求項3】
前記デコーダによって、前記第1の予測子サンプルがOOBであるかどうかを決定することと、前記第2の予測子サンプルがOOBであるかどうかを決定することによって、前記OOB条件を取得することをさらに含む、請求項2に記載のビデオ符号化方法。
【請求項4】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記第2の参照ピクチャの前記第2の予測子サンプルを前記現在符号化ブロックの前記最終予測子サンプルとして決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項5】
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記第1の参照ピクチャの前記第1の予測子サンプルを前記現在符号化ブロックの前記最終予測子サンプルとして決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項6】
前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBであるか、または前記第1の予測子サンプルと前記第2の予測子サンプルがどちらもOOBではないとの決定に応答して、前記第1の予測子サンプルに第1の重みを割り当て、前記第2の予測子サンプルに第2の重みを割り当てることと、
前記第1の予測子サンプルおよび前記第2の予測子サンプルの加重平均に基づいて、前記現在符号化ブロックの前記最終予測子サンプルを決定することと、
をさらに含む、請求項3に記載のビデオ符号化方法。
【請求項7】
前記第1の予測子サンプルに割り当てられた前記第1の重みが、前記第2の予測子サンプルに割り当てられた前記第2の重みに等しく、前記現在符号化ブロックの前記最終予測子サンプルが、前記第1の予測子サンプルおよび前記第2の予測子サンプルの平均に基づいて決定される、請求項6に記載のビデオ符号化方法。
【請求項8】
前記現在符号化ブロックが符号化ユニットレベルの重みを用いた双予測(BCW)モードとして符号化されているとの決定に応答して、前記第1の予測子サンプルと前記第2の予測子サンプルとを組み合わせて、前記BCW重み付けに基づいて前記現在符号化ブロックの前記最終予測子サンプルを取得することをさらに含む、請求項6に記載のビデオ符号化方法。
【請求項9】
前記現在符号化ブロックに対して双方向オプティカルフロー(BDOF)が有効になっているとの決定に応答して、前記第1の予測子サンプルと前記第2の予測子サンプルとを組み合わせて、前記第1の予測子サンプルに割り当てられた前記第1の重み、前記第2の予測子サンプルに割り当てられた前記第2の重み、およびBDOFオフセットに基づいて、前記現在符号化ブロックの前記最終予測子サンプルを取得することをさらに含む、請求項6に記載のビデオ符号化方法。
【請求項10】
前記第1の予測子サンプルがOOBであり、前記第2の予測子サンプルがOOBではないとの決定に応答して、前記BDOFオフセットを0と設定することと、
前記第1の予測子サンプルがOOBではなく、前記第2の予測子サンプルがOOBであるとの決定に応答して、前記BDOFオフセットを0と設定することと
をさらに含む、請求項9に記載のビデオ符号化方法。
【請求項11】
前記第1の予測子サンプルおよび前記第2の予測子サンプルがOOBであるかどうかを決定することが、
予測子サンプルの垂直方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBである、または前記予測子サンプルの水平方向に最も近い整数参照サンプルのうちの少なくとも1つがOOBであるとの決定に応答して、前記予測子サンプルがOOBであると決定することをさらに含む、請求項3に記載のビデオ符号化方法。
【請求項12】
前記第1の予測子サンプルおよび前記第2の予測子サンプルがOOBであるかどうかを決定することが、
予測子サンプルの水平座標または垂直座標のうちの少なくとも1つが前記参照ピクチャの前記境界を距離しきい値分だけ超えているとの決定に応答すること
をさらに含む、請求項3に記載のビデオ符号化方法。
【請求項13】
前記距離しきい値が2分の1サンプルに等しい、請求項12に記載のビデオ符号化方法。
【請求項14】
デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを決定することと、
前記デコーダによって、前記予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルにゼロの追加の重み付けを割り当てて、前記現在符号化ブロックの最終予測子サンプルを取得することと、
前記デコーダによって、前記予測子サンプルがOOBではないとの決定に応答して、前記動き補償プロセスによって生成された前記2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルにゼロ以外の追加の重み付けを割り当てて、前記現在符号化ブロックの前記最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項15】
前記予測子サンプルを生成するために使用される前記整数参照サンプルに基づいて、前記予測子サンプルがOOBであるかどうかを決定することが、
前記予測子サンプルを生成するために使用される前記整数参照サンプルのうちの少なくとも1つが参照ピクチャの外側に位置するとの決定に応答して、前記予測子サンプルがOOBであると決定することと、
前記予測子サンプルを生成するために使用される前記整数参照サンプルのすべてが前記参照ピクチャ内に位置するとの決定に応答して、前記予測子サンプルがOOBではないと決定することと、
をさらに含む、請求項14に記載のビデオ符号化方法。
【請求項16】
デコーダによって、現在符号化ブロックのための参照ピクチャの予測子サンプルが境界外(OOB)であるかどうかを、前記予測子サンプルを生成するために使用される整数参照サンプルに基づいて決定することと、
前記デコーダによって、前記予測子サンプルがOOBであるとの決定に応答して、動き補償プロセスによって生成された2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルに第1の追加の重み付けを割り当てて、前記現在符号化ブロックの最終予測子サンプルを取得することと、
前記デコーダによって、前記予測子サンプルがOOBではないとの決定に応答して、前記動き補償プロセスによって生成された前記2つ以上の予測子サンプルを組み合わせる際に前記予測子サンプルに第2の追加の重み付けを割り当てて、前記現在符号化ブロックの前記最終予測子サンプルを取得することと、
を含む、ビデオ符号化方法。
【請求項17】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を備えるビデオ符号化装置であって、
前記1つまたは複数のプロセッサが、前記命令の実行時に、請求項1から16のいずれかに記載の前記方法を実行するように構成される、ビデオ符号化装置。
【請求項18】
請求項1から16のいずれかに記載の方法によって復号されるビットストリームを記憶する、ビデオ符号化用の非一過性コンピュータ可読記憶媒体。
【請求項19】
請求項1から16のいずれかに記載の方法によって復号されるビットストリームを受信する方法。
【請求項20】
1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行され、非一過性コンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記コンピュータプログラムは、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスに請求項1から16のいずれかに記載の方法を実行させる、コンピュータプログラム。
【国際調査報告】