(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-01-17
(54)【発明の名称】ビデオ符号化におけるアフィンマージモードに対する候補導出のための方法およびデバイス
(51)【国際特許分類】
H04N 19/537 20140101AFI20250109BHJP
【FI】
H04N19/537
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024539415
(86)(22)【出願日】2023-01-04
(85)【翻訳文提出日】2024-06-27
(86)【国際出願番号】 US2023010143
(87)【国際公開番号】W WO2023133160
(87)【国際公開日】2023-07-13
(32)【優先日】2022-01-04
(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ターム(参考)】
5C159NN31
(57)【要約】
ビデオ復号および符号化のための方法、装置、並びに非一時的記憶媒体が提供される。1つの復号方法では、デコーダは、第1の候補位置および第2の候補位置を取得する。デコーダは、第1のおよび第2の候補位置に基づいて、第3の候補位置を取得し、第1の、第2の、および第3の候補位置に基づいて、仮想ブロックを取得する。デコーダは第1の、第2の、および第3の候補位置における並進MVに基づいて、仮想ブロックに対する複数のCPMVを取得し得、現在ブロック内の特定の位置に基づいて並進MVを取得するように、仮想ブロックに対する複数のCPMVを現在ブロックに投影し得、または現在ブロックに対する複数の第2のCPMVを投影し得る。
【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
デコーダによって、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得することと、
前記デコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置に基づいて、仮想ブロックを取得することと、
前記デコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置における並進動きベクトル(MV)に基づいて、前記仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得することと、
前記デコーダによって、前記仮想ブロックの前記複数の第1のCPMVを現在ブロックに投影して、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数の第2のCPMVを取得すること、
を含む、方法。
【請求項2】
前記デコーダによって、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記デコーダによって、前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記複数の第2のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入すること、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記デコーダによって、前記通常のマージリストがフルになるまで、追加の並進MVを取得し、前記通常のマージリストに挿入することと、
前記デコーダによって、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストがフルになるまで、追加の複数の第2のCPMVを取得し、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストに挿入すること、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記特定の位置は、前記現在ブロック内の中心位置を含む、請求項1に記載の方法。
【請求項5】
前記仮想ブロックは、矩形符号化ブロックであり、前記第3の候補位置は、前記第1の候補位置の垂直位置および前記第2の候補位置の水平位置に基づいて決定される、請求項1に記載の方法。
【請求項6】
前記デコーダによって、第1のスキャニング距離および第1のスキャニング領域に従って前記第1の候補位置を取得することであって、前記第1のスキャニング距離は、前記第1の候補位置と前記現在ブロックの左側との間の第1の距離を示し、前記第1のスキャニング領域は、前記現在ブロックの左に位置することと、
前記デコーダによって、第2のスキャニング距離および第2のスキャニング領域に従って前記第2の候補位置を取得することであって、前記第2のスキャニング距離は、前記第2の候補位置と前記現在ブロックの最上側との間の第2の距離を示し、前記第2のスキャニング領域は、前記現在ブロックの上に位置することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
ビデオ復号の方法であって、
デコーダによって、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを取得することと、
前記デコーダによって、前記現在ブロックの複数のアフィン符号化隣接ブロックからの、または複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを取得することと、
前記デコーダによって、前記1つまたは複数の第1のパラメータおよび前記1つまたは複数の第2のパラメータを使用して、アフィンモデルを構築することと、
前記デコーダによって、前記アフィンモデルを現在ブロックに投影して、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数のCPMVを取得すること、
を含む、方法。
【請求項8】
前記デコーダによって、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記デコーダによって、前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記複数のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入すること、
をさらに含む、請求項7に記載の方法。
【請求項9】
前記デコーダによって、前記通常のマージリストがフルになるまで、追加の並進MVを取得し、前記通常のマージリストに挿入することと、
前記デコーダによって、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストがフルになるまで、追加の複数のCPMVを取得し、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストに挿入すること、
をさらに含む、請求項8に記載の方法。
【請求項10】
前記1つまたは複数の第1のパラメータは、前記アフィンモデルと関連付けられた複数の並進パラメータを含み、前記1つまたは複数の第2のパラメータは、前記アフィンモデルと関連付けられた複数の非並進パラメータを含む、請求項7に記載の方法。
【請求項11】
前記デコーダによって、複数の隣接ブロックおよび複数の非隣接ブロックからの前記複数のインター符号化された隣接ブロックを取得することであって、前記複数の隣接ブロックは、前記現在ブロックに隣接し、前記複数の非隣接ブロックはそれぞれ、前記現在ブロックの1つの側から離れるブロックの数に位置する、取得することと、
前記デコーダによって、アフィン符号化された前記複数の隣接ブロックおよびアフィン符号化された前記複数の非隣接ブロックから前記複数のアフィン符号化隣接ブロックを取得することと、
前記デコーダによって、前記複数の隣接ブロックおよび前記複数の非隣接ブロックから前記複数の履歴アフィン符号化隣接ブロックを取得すること、
をさらに含む、請求項7に記載の方法。
【請求項12】
ビデオ復号のための方法であって、
デコーダによって、所定の順序に従って1つまたは複数の候補リストから1つまたは複数の動きベクトル(MV)候補を取得することであって、前記1つまたは複数の候補リストは、アフィンアドバンスト動きベクトル予測(AMVP)候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み、前記1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでであることと、
前記デコーダによって、前記1つまたは複数のMV候補に基づいて、前記現在ブロックに対する1つまたは複数の制御点動きベクトル(CPMV)を取得すること、
を含む、方法。
【請求項13】
前記1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み、
同一のカテゴリ内の異なるMV候補は、前記1つまたは複数の候補リストに隣接に配置されない、
請求項12に記載の方法。
【請求項14】
前記1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み、
前記所定の順序は、各々のカテゴリ内のMV候補の数に基づいて取得される、
請求項12に記載の方法。
【請求項15】
前記複数のカテゴリのMV候補は、
隣接ブロックからの複数の構築候補と、
非隣接ブロックからの第1の数の継承候補および非隣接ブロックからの残りの継承候補を含む非隣接ブロックからの複数の継承候補と、
第1のタイプの構築候補からの第3の数の構築候補および前記第1のタイプの構築候補からの残りの構築候補を含む非隣接ブロックからの前記第1のタイプの構築候補からの複数の構築候補と、
第2のタイプの構築候補からの第2の数の構築候補および前記第2のタイプ構築候補からの残りの構築候補を含む非隣接ブロックからの前記第2のタイプの構築候補からの複数の構築候補と、を含み、
前記デコーダによって、候補リストから、隣接ブロックからの前記複数の構築候補の後の前記非隣接ブロックからの第1の数の継承候補を取得すること、
前記デコーダによって、前記候補リストから、前記非隣接ブロックからの第1の数の継承候補の後の前記第2のタイプの構築候補からの前記第2の数の構築候補を取得すること、
前記デコーダによって、前記候補リストから、前記第2のタイプの構築候補からの前記第2の数の構築候補の後の前記第1のタイプの構築候補からの前記第3の数の構築候補を取得すること、
前記デコーダによって、前記候補リストから、前記第1のタイプの構築候補からの前記第3の数の構築候補の後の前記非隣接ブロックからの残りの継承候補を取得すること、
前記デコーダによって、前記候補リストから、前記非隣接ブロックからの残りの継承候補の後の前記第2のタイプ構築候補からの前記残りの構築候補を取得すること、または、
前記デコーダによって、前記候補リストから、前記第2のタイプ構築候補からの前記残りの構築候補の後の前記第1のタイプの構築候補からの残りの前記構築候補を取得すること、
をさらに含む、請求項14に記載の方法。
【請求項16】
前記複数のカテゴリのMV候補は、
サブブロックベース時間動きベクトル予測(SbTMVP)候補と、
隣接ブロックからの複数の継承候補と、を含み、
前記方法は、以下のステップ、
前記デコーダによって、前記候補リストから、前記SbTMVP候補の後の前記隣接ブロックからの複数の継承候補を取得すること、または、
前記デコーダによって、前記候補リストから、前記隣接ブロックからの複数の継承候補の後の前記隣接ブロックからの複数の構築候補を取得すること、
の1つをさらに含む、請求項15に記載の方法。
【請求項17】
前記第1の数、前記第2の数、および前記第3の数は以下の方式、
前記第1の数、前記第2の数、および前記第3の数をそれぞれ固定値として予め定義すること、または、
エンコーダによって或るレベルにおいてシグナリングされる前記第1の数、前記第2の数、および前記第3の数を受信すること、
の1つにおいて取得される、請求項15に記載の方法。
【請求項18】
前記デコーダによって、前記候補リストから、各々のカテゴリ内のMV候補の1つまたは複数の数に基づいて、前記所定の順序に従ってMV候補を取得することをさらに含み、各々のカテゴリ内の前記MV候補の1つまたは複数の数は、交互配置される方式において配置される、請求項14に記載の方法。
【請求項19】
前記複数のカテゴリのMV候補は、
隣接ブロックからのXi個の構築候補を含む隣接ブロックからの複数の構築候補と、
非隣接ブロックからのZi個の継承候補を含む非隣接ブロックからの複数の継承候補と、
第1のタイプの構築候補からのKi個の構築候補を含む非隣接ブロックからの前記第1のタイプの構築候補からの複数の構築候補と、
第2のタイプの構築候補からのYi個の構築候補を含む非隣接ブロックからの前記第2のタイプの構築候補からの複数の構築候補と、を含み、
前記複数のカテゴリは、カテゴリの複数のセットを含み、カテゴリの各々のセットは、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、前記第1のタイプの構築候補からのKi個の構築候補と、前記第2のタイプの構築候補からのYi個の構築候補と、を含み、
Xi、Yi、Zi、およびKiはそれぞれ、正の整数であり、iは、2よりも大きい正の整数であり、
前記方法は、以下のステップ、
前記デコーダによって、前記候補リストから、隣接ブロックからのXi-1個の構築候補、非隣接ブロックからのZi-1個の継承候補、前記第1のタイプの構築候補からのKi-1個の構築候補、および前記第2のタイプの構築候補からのYi-1個の構築候補を含むカテゴリの第1のセットの後の、隣接ブロックからのXi個の構築候補、非隣接ブロックからのZi個の継承候補、前記第1のタイプの構築候補からのKi個の構築候補、および前記第2のタイプの構築候補からのYi個の構築候補を含むカテゴリの第2のセットからのMV候補を取得すること、
の1つをさらに含む、請求項18に記載の方法。
【請求項20】
前記複数のカテゴリのMV候補は、
サブブロックベース時間動きベクトル予測(SbTMVP)候補と、
隣接ブロックからの複数の継承候補と、をさらに含み、
前記方法は以下のステップ、
前記デコーダによって、隣接ブロックからの1つまたは複数の継承候補の後の、隣接ブロックからのX1個の構築候補、非隣接ブロックからのZ1個の継承候補、前記第1のタイプの構築候補からのK1個の構築候補、および前記第2のタイプの構築候補からのY1個の構築候補を含むカテゴリのセット内の隣接ブロックからの構築候補を取得すること、または
前記デコーダによって、前記SbTMVP候補の後の隣接ブロックからの前記1つまたは複数の継承候補を取得すること、
の1つをさらに含む、請求項19に記載の方法。
【請求項21】
Xi、Yi、Zi、およびKiは、以下の方式、
Xi、Yi、Zi、およびKiをそれぞれ固定値として予め定義すること、または
エンコーダによってシグナリングされるXi、Yi、Zi、およびKiを受信すること、
の1つにおいて取得される、請求項19に記載の方法。
【請求項22】
1つのカテゴリ内の利用可能なMV候補の数が他のカテゴリ未満であると決定したことに応答して、前記デコーダによって、前記1つのカテゴリの1つまたは複数の位置に配置された他のカテゴリ内の利用可能なMV候補を取得することをさらに含む、請求項19に記載の方法。
【請求項23】
前記デコーダによって、候補リストから、1つまたは複数のカテゴリ内の利用可能なMV候補に基づいて、所定の順序に従ってMV候補を取得することをさらに含み、他のカテゴリ内のMV候補は、交互配置される方式において前記候補リストに配置される、請求項14に記載の方法。
【請求項24】
ビデオ符号化のための方法であって、
エンコーダによって、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得することと、
前記エンコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置に基づいて、仮想ブロックを取得することと、
前記エンコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置における並進動きベクトル(MV)に基づいて、前記仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得することと、
前記エンコーダによって、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数の第2のCPMVを取得するように、前記仮想ブロックに対する前記複数の第1のCPMVを前記現在ブロックに投影すること、
を含む、方法。
【請求項25】
前記エンコーダによって、前記並進MVが取得されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記エンコーダによって、前記複数の第2のCPMVが取得されると決定したことに応答して、前記複数の第2のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入することと、
をさらに含む、請求項24に記載の方法。
【請求項26】
前記特定の位置は、前記現在ブロック内の中心位置を含む、請求項24に記載の方法。
【請求項27】
前記仮想ブロックは、矩形符号化ブロックであり、前記第3の候補位置は、前記第1の候補位置の垂直位置および前記第2の候補位置の水平位置に基づいて決定される、請求項24に記載の方法。
【請求項28】
前記エンコーダによって、第1のスキャニング距離および第1のスキャニング領域に従って前記第1の候補位置を取得することであって、前記第1のスキャニング距離は、前記第1の候補位置と前記現在ブロックの左側との間の第1の距離を示し、前記第1のスキャニング領域は、前記現在ブロックの左に位置することと、
前記エンコーダによって、第2のスキャニング距離および第2のスキャニング領域に従って前記第2のアフィン候補を取得することであって、前記第2のスキャニング距離は、前記第2の候補位置と前記現在ブロックの最上側との間の第2の距離を示し、前記第2のスキャニング領域は、前記現在ブロックの上に位置することと、
をさらに含む、請求項26に記載の方法。
【請求項29】
ビデオ符号化のための方法であって、
エンコーダによって、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを取得することと、
前記エンコーダによって、前記現在ブロックの複数のアフィン符号化隣接ブロックからの、または複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを取得することと、
前記エンコーダによって、前記1つまたは複数の第1のパラメータおよび前記1つまたは複数の第2のパラメータを使用して、アフィンモデルを構築することと、
前記エンコーダによって、前記アフィンモデルを現在ブロックに投影して、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数のCPMVを取得する、
を含む、方法。
【請求項30】
前記エンコーダによって、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記エンコーダによって、前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記複数のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入することと、
をさらに含む、請求項29に記載の方法。
【請求項31】
前記エンコーダによって、前記通常のマージ候補リストがフルになるまで、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、追加の並進MVを取得し、前記通常のマージリストに挿入することをさらに含む、請求項30に記載の方法。
【請求項32】
前記エンコーダによって、フル通常のマージ候補リストからの候補を選択し、デコーダに前記候補をシグナリングすることをさらに含む、請求項31に記載の方法。
【請求項33】
前記エンコーダによって、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストがフルになるまで、前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、追加の複数のCPMVを取得し、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストに挿入することをさらに含む、請求項30に記載の方法。
【請求項34】
前記エンコーダによって、フルアフィンマージ候補リストまたはフル・アフィンAMVP候補リストからの候補を選択し、デコーダに前記候補をシグナリングすることをさらに含む、請求項33に記載の方法。
【請求項35】
前記1つまたは複数の第1のパラメータは、前記アフィンモデルと関連付けられた複数の並進パラメータを含み、前記1つまたは複数の第2のパラメータは、前記アフィンモデルと関連付けられた複数の非並進パラメータを含む、請求項29に記載の方法。
【請求項36】
前記エンコーダによって、複数の隣接ブロックおよび複数の非隣接ブロックからの前記複数のインター符号化された隣接ブロックを取得することであって、前記複数の隣接ブロックは、前記現在ブロックに隣接し、前記複数の非隣接ブロックはそれぞれ、前記現在ブロックの1つの側から離れるブロックの数に位置することと、
前記エンコーダによって、アフィン符号化された前記複数の隣接ブロックおよびアフィン符号化された前記複数の非隣接ブロックからの前記複数のアフィン符号化隣接ブロックを取得することと、
前記エンコーダによって、前記複数の隣接ブロックおよび前記複数の非隣接ブロックからの前記複数の履歴アフィン符号化隣接ブロックを取得すること、
をさらに含む、請求項29に記載の方法。
【請求項37】
ビデオ符号化のための方法であって、
エンコーダによって、所定の順序に従って1つまたは複数の候補リストからの1つまたは複数の動きベクトル(MV)候補を取得することであって、前記1つまたは複数の候補リストは、アフィンアドバンスト動きベクトル予測(AMVP)候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み、前記1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでであることと、
前記エンコーダによって、前記1つまたは複数のMV候補に基づいて、前記現在ブロックに対する1つまたは複数の制御点動きベクトル(CPMV)を取得すること、
を含む、方法。
【請求項38】
前記1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み、
同一のカテゴリ内の異なるMV候補は、前記1つまたは複数の候補リストに隣接に配置されない、
請求項37に記載の方法。
【請求項39】
前記1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み、
前記所定の順序は、各々のカテゴリ内のMV候補の数に基づいて取得される、
請求項37に記載の方法。
【請求項40】
前記複数のカテゴリのMV候補は、
隣接ブロックからの複数の構築候補と、
非隣接ブロックからの第1の数の継承候補および非隣接ブロックからの残りの継承候補を含む非隣接ブロックからの複数の継承候補と、
第1のタイプの構築候補からの第3の数の構築候補および前記第1のタイプの構築候補からの残りの構築候補を含む非隣接ブロックからの前記第1のタイプの構築候補からの複数の構築候補と、
第2のタイプの構築候補からの第2の数の構築候補および前記第2のタイプ構築候補からの残りの構築候補を含む非隣接ブロックからの前記第2のタイプの構築候補からの複数の構築候補と、を含み、
前記方法は、以下のステップ、
前記エンコーダによって、候補リストに、前記SbTMVP候補の後の前記隣接ブロックからの複数の継承候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記隣接ブロックからの複数の継承候補の後の前記隣接ブロックからの複数の構築候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記隣接ブロックからの複数の構築候補の後の前記非隣接ブロックからの第1の数の継承候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記非隣接ブロックからの第1の数の継承候補の後の前記第2のタイプの構築候補からの前記第2の数の構築候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記第2のタイプの構築候補からの前記第2の数の構築候補の後の前記第1のタイプの構築候補からの前記第3の数の構築候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記第1のタイプの構築候補からの前記第3の数の構築候補の後の前記非隣接ブロックからの残りの継承候補を挿入することと、
前記エンコーダによって、前記候補リストに、前記非隣接ブロックからの残りの継承候補の後の前記第2のタイプ構築候補からの残りの構築候補を挿入すること、または
前記エンコーダによって、前記候補リストに、前記第2のタイプ構築候補からの前記残りの構築候補の後の前記第1のタイプの構築候補からの前記残りの構築候補を挿入すること、
の1つをさらに含む、請求項39に記載の方法。
【請求項41】
前記複数のカテゴリのMV候補は、
サブブロックベース時間動きベクトル予測(SbTMVP)候補と、
隣接ブロックからの複数の継承候補と、を含み、
前記方法は、以下のステップ、
前記エンコーダによって、前記候補リストに、前記SbTMVP候補の後の前記隣接ブロックからの複数の継承候補を挿入すること、
前記エンコーダによって、前記候補リストに、前記隣接ブロックからの複数の継承候補の後の前記隣接ブロックからの複数の構築候補を挿入すること、または、
前記エンコーダによって、前記候補リストがフルでないと決定したことに応答して、前記候補リストに、前記第1のタイプの構築候補からの前記残りの構築候補の後の1つまたは複数のゼロMV候補を挿入すること、
の1つをさらに含む、請求項40に記載の方法。
【請求項42】
前記第1の数、前記第2の数、および前記第3の数は以下の方式、
前記第1の数、前記第2の数、および前記第3の数をそれぞれ固定値として予め定義すること、または
前記エンコーダによって、或るレベルにおいて前記第1の数、前記第2の数、および前記第3の数をシグナリングすること、
の1つにおいて取得される、請求項40に記載の方法。
【請求項43】
前記エンコーダによって、前記候補リストに、各々のカテゴリ内のMV候補の1つまたは複数の数に基づいて、前記所定の順序に従ってMV候補を挿入することをさらに含み、各々のカテゴリ内の前記MV候補の1つまたは複数の数は、交互配置される方式において配置される、請求項39に記載の方法。
【請求項44】
前記複数のカテゴリのMV候補は、
隣接ブロックからのXi個の構築候補を含む隣接ブロックからの複数の構築候補と、
非隣接ブロックからのZi個の継承候補を含む非隣接ブロックからの複数の継承候補と、
第1のタイプの構築候補からのKi個の構築候補を含む非隣接ブロックからの前記第1のタイプの構築候補からの複数の構築候補と、
第2のタイプの構築候補からのYi個の構築候補を含む非隣接ブロックからの前記第2のタイプの構築候補からの複数の構築候補と、を含み、
前記複数のカテゴリは、カテゴリの複数のセットを含み、カテゴリの各々のセットは、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、前記第1のタイプの構築候補からのKi個の構築候補と、前記第2のタイプの構築候補からのYi個の構築候補と、を含み、
Xi、Yi、Zi、およびKiはそれぞれ、正の整数であり、iは、2よりも大きい正の整数であり、
前記方法は、以下のステップ、
前記エンコーダによって、前記候補リストに、隣接ブロックからのXi-1個の構築候補、非隣接ブロックからのZi-1個の継承候補、前記第1のタイプの構築候補からのKi-1個の構築候補、および前記第2のタイプの構築候補からのYi-1個の構築候補を含むカテゴリの第1のセットの後の、隣接ブロックからのXi個の構築候補、非隣接ブロックからのZi個の継承候補、前記第1のタイプの構築候補からのKi個の構築候補、および前記第2のタイプの構築候補からのYi個の構築候補を含むカテゴリの第2のセットからのMV候補を挿入すること、
の1つをさらに含む、請求項43に記載の方法。
【請求項45】
前記複数のカテゴリのMV候補は、
サブブロックベース時間動きベクトル予測(SbTMVP)候補と、
隣接ブロックからの複数の継承候補と、をさらに含み、
前記方法は以下のステップ、
前記エンコーダによって、前記候補リストに、隣接ブロックからの1つまたは複数の継承候補の後の、隣接ブロックからのX1個の構築候補、非隣接ブロックからのZ1個の継承候補、前記第1のタイプの構築候補からのK1個の構築候補、および前記第2のタイプの構築候補からのY1個の構築候補を含むカテゴリのセット内の隣接ブロックからの構築候補を挿入すること、
前記エンコーダによって、前記SbTMVP候補の後の隣接ブロックからの前記1つまたは複数の継承候補を挿入すること、または
前記エンコーダによって、前記候補リストがフルでないと決定したことに応答して、前記候補リストに、カテゴリの最後のセットからの前記MV候補の後の1つまたは複数のゼロMV候補を挿入すること、
の1つをさらに含む、請求項43に記載の方法。
【請求項46】
Xi、Yi、Zi、およびKiは、以下の方式、
Xi、Yi、Zi、およびKiをそれぞれ固定値として予め定義すること、または
前記エンコーダによって、或るレベルにおいてXi、Yi、Zi、およびKiをシグナリングすること、
の1つにおいて取得される、請求項44に記載の方法。
【請求項47】
1つのカテゴリ内の利用可能なMV候補の数が他のカテゴリ未満であると決定したことに応答して、前記エンコーダによって、前記候補リストに、前記1つのカテゴリの1つまたは複数の位置に配置された他のカテゴリ内の利用可能なMV候補を挿入することをさらに含む、請求項44に記載の方法。
【請求項48】
前記エンコーダによって、候補リストに、1つまたは複数のカテゴリ内の利用可能なMV候補に基づいて、所定の順序に従ってMV候補を挿入することをさらに含み、他のカテゴリ内のMV候補は、交互配置される方式において前記候補リストに配置される、請求項39に記載の方法。
【請求項49】
ビデオ復号のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を含み、
前記1つまたは複数のプロセッサは、前記命令が実行されると、請求項1から23のいずれか一項に記載の方法を実行するように構成される、
装置。
【請求項50】
ビデオ符号化のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を含み、
前記1つまたは複数のプロセッサは、前記命令が実行されると、請求項24から48のいずれか一項に記載の方法を実行するように構成される、
装置。
【請求項51】
コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、1つまたは複数のコンピュータプロセッサによって実行されるとき、前記1つまたは複数のコンピュータプロセッサに、ビットストリームを受信させ、前記ビットストリームに基づいて請求項1から23のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項52】
コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、1つまたは複数のコンピュータプロセッサによって実行されるとき、前記1つまたは複数のコンピュータプロセッサに、現在ビデオブロックをビットストリームに符号化し、前記ビットストリームを伝送するように、請求項24から48のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、全ての目的のために参照によってその全体が組み込まれる、2022年1月4日に出願された「Candidate Derivation for Affine Merge Mode in Video Coding」と題する、米国仮特許出願第63/296,467号に対する優先権を主張する。
本開示は、ビデオ符号化および圧縮に関し、特に、それらに限定されないが、ビデオ符号化または復号処理におけるアフィン動き予測モードに対するアフィンマージ候補導出を改善する方法および装置に関する。
【背景技術】
【0002】
ビデオデータを圧縮するために、様々なビデオ符号化技術が使用され得る。ビデオ符号化は、1つまたは複数のビデオ符号化標準規格に従って実行される。例えば、最近では、一部の公知のビデオ符号化標準規格は、ISO/IEC MPEGおよびITU-T VECGによって共同で開発された、Versatile Video Coding(VVC)、High Efficiency Video Coding(HEVC、H.265またはMPEG-H Part 2としても知られる)、およびAdvanced Video Coding(AVC、H.264またはMPEG-4 Part 10としても知られる)を含む。AOMediaVideo1(AV1)は、その先行する標準規格VP9の後継として、Alliance for Open Media(AOM)によって開発された。デジタル音声およびデジタル・ビデオ圧縮標準規格を指す、Audio Video Coding(AVS)は、中国のAudio and Video Coding Standard Workgroupによって開発された別のビデオ圧縮標準規格シリーズである。既存のビデオ符号化標準規格のほとんどは、有名なハイブリッド・ビデオ符号化・フレームワーク上で、すなわち、ビデオ画像またはシーケンスに存在する冗長性を削減するために、ブロック・ベース予測方法(例えば、インター予測、イントラ予測)を使用して、および予測誤差のエネルギーを縮小するために変換コーディングを使用して構築される。ビデオ符号化技術の重要な目標は、ビデオデータをより低いビット・レートを使用する形式に圧縮すると共に、ビデオ品質の劣化を回避または最小化することである。
【0003】
第一世代AVS標準規格は、中国の国家標準規格「Information Technology,Advanced Audio Video Coding,Part 2:Video」(AVS1として知られる)および「Information Technology,Advanced Audio Video Coding Part 16:Radio Television Video」(AVS+として知られる)を含む。それは、MPEG-2標準規格と比較して、同一の知覚品質において約50%のビット・レート節約を提供することができる。AVS1標準規格ビデオ・パートは、2006年2月に中国の国家標準規格として公布された。第二世代AVS標準規格は、エキストラHD TV プログラムの伝送において主にターゲットにされる、中国の国家標準規格のシリーズ「Information Technology,Efficient Multimedia Coding」(AVS2として知られる)を含む。AVS2のコーディング効率は、AVS+のコーディング効率の2倍である。2016年5月には、AVS2が中国の国家標準規格として発行された。一方、AVS2標準規格ビデオ・パートは、アプリケーションのための1つの国際標準規格として、Institute of Electrical and Electronics Engineers(IEEE)によって提出された。AVS3標準規格は、最新の国際標準規格HEVCのコーディング効率を上回ることを狙った、UHDビデオ・アプリケーションのための新世代ビデオ符号化標準規格である。2019年3月には、68回目のAVSミーティングにおいて、AVS3-P2ベースラインが完結され、それは、HEVC標準規格よりもおおよそ30%のビット・レート節約を提供する。現在では、高性能モデル(HPM)と呼ばれる、1つの参照ソフトウェアが存在し、AVS3標準規格の参照の実装を証明するために、AVSグループによって維持される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、ビデオ符号化または復号処理における動き予測モードに対する動きベクトル候補導出を改善することに関する技術の実施例を提供する。
【課題を解決するための手段】
【0005】
本開示の第1の態様によれば、ビデオ復号の方法が提供される。方法は、デコーダが、第1のアフィン候補に対する第1の候補位置および第2のアフィン候補に対する第2の候補位置に基づいて、第3のアフィン候補に対する第3の候補位置を取得し得、第1のアフィン候補および第2のアフィン候補は、現在ブロックに隣接しない複数の非隣接ブロックからであり、第1の候補位置、第2の候補位置、および第3の候補位置に基づいて、仮想ブロックを取得し得、第1の候補位置、第2の候補位置、および第3の候補位置における並進動きベクトル(MV)に基づいて、仮想ブロックに対する複数の制御点動きベクトル(CPMV)を取得し得、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数の第2のCPMVを取得するように、仮想ブロックに対する複数のCPMVを現在ブロックに投影し得る、ことを含む。さらに、デコーダは、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、並進MVを通常のマージリストに挿入し得、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、複数の第2のCPMVをアフィンマージ候補リスト若しくはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入し得る。
【0006】
本開示の第2の態様によれば、ビデオ復号の方法が提供される。方法は、デコーダが、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを取得し得、現在ブロックの複数のアフィン符号化隣接ブロックからの、または複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを取得し得、1つまたは複数の第1のパラメータおよび1つまたは複数の第2のパラメータを使用して、アフィンモデルを構築し得、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数のCPMVを取得するように、アフィンモデルを現在ブロックに投影し得る、ことを含む。さらに、デコーダは、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、並進MVを通常のマージリストに挿入し得、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、複数のCPMVをアフィンマージ候補リスト若しくはアフィンAMVP候補リストに挿入し得る。
【0007】
本開示の第3の態様によれば、ビデオ復号の方法が提供される。方法は、デコーダが、所定の順序に従って1つまたは複数の候補リストから1つまたは複数の動きベクトル(MV)候補を取得し得、1つまたは複数の候補リストは、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み、1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでであり、1つまたは複数のMV候補に基づいて、現在ブロックに対する1つまたは複数のCPMVを取得し得る、ことを含む。
【0008】
本開示の第4の態様によれば、ビデオ符号化の方法が提供される。方法は、エンコーダが、第1のアフィン候補に対する第1の候補位置および第2のアフィン候補に対する第2の候補位置に基づいて、第3のアフィン候補に対する第3の候補位置を決定し得、第1のアフィン候補および第2のアフィン候補は、現在ブロックに隣接しない複数の非隣接ブロックからであり、第1の候補位置、第2の候補位置、および第3の候補位置に基づいて、仮想ブロックを決定し得、第1の候補位置、第2の候補位置、および第3の候補位置における並進動きベクトル(MV)に基づいて、仮想ブロックに対する複数の制御点動きベクトル(CPMV)を決定し得、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを決定し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数の第2のCPMVを決定するように、仮想ブロックに対する複数のCPMVを現在ブロックに投影し得る、ことを含む。さらに、エンコーダは、並進MVが取得されると決定したことに応答して、並進MVを通常のマージリストに挿入し得、複数の第2のCPMVが取得されると決定したことに応答して、複数の第2のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。
【0009】
本開示の第5の態様によれば、ビデオ符号化の方法が提供される。方法は、エンコーダが、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを決定し得、現在ブロックの複数のアフィン符号化隣接ブロックからの、または複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを決定し得、1つまたは複数の第1のパラメータおよび1つまたは複数の第2のパラメータを使用して、アフィンモデルを構築し得、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを決定し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数のCPMVを取得するように、アフィンモデルを現在ブロックに投影し得る、ことを含む。さらに、エンコーダは、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、並進MVを通常のマージリストに挿入し得、現在ブロックがアフィンモードとして符号化されると決定したことに応答して、複数のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入し得る。
【0010】
本開示の第6の態様によれば、ビデオ符号化の方法が提供される。方法は、エンコーダが、所定の順序に従って1つまたは複数の候補リストから1つまたは複数のMV候補を決定し得、1つまたは複数の候補リストは、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み、1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでであり、1つまたは複数のMV候補に基づいて、現在ブロックに対する1つまたは複数のCPMVを決定し得る、ことを含む。
【0011】
本開示の第7の態様によれば、ビデオ復号のための装置が提供される。装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を含む。さらに、1つまたは複数のプロセッサは、命令が実行されると、第1の態様、第2の態様、または第3の態様に係る方法を実行するように構成される。
【0012】
本開示の第8の態様によれば、ビデオ符号化のための装置が提供される。装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を含む。さらに、1つまたは複数のプロセッサは、命令が実行されると、第4の態様、第5の態様、または第6の態様に係る方法を実行するように構成される。
【0013】
本開示の第9の態様によれば、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令は、1つまたは複数のコンピュータプロセッサによって実行されるとき、1つまたは複数のコンピュータプロセッサに、ビットストリームを受信させ、第1の態様、第2の態様、または第3の態様に係る方法を実行させる。
【0014】
本開示の第12の態様によれば、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令は、1つまたは複数のコンピュータプロセッサによって実行されるとき、1つまたは複数のコンピュータプロセッサに、現在ブロックをビットストリームに符号化し、ビットストリームを伝送するように、第4の態様、第5の態様、または第6の態様に係る方法を実行させる。
【0015】
添付図面に例示される特定の実施例を参照することによって、本開示の実施例のさらに特定の説明がされる。それらの図面がいくつかの実施例を表すにすぎず、よって、範囲を限定すると考えられないと仮定して、添付図面の使用を通じて、追加の特異性および詳細と共に、実施例が記載および説明される。
【図面の簡単な説明】
【0016】
【
図1A】本開示のいくつかの実施例に係る、ビデオブロックを符号化および復号するシステムを例示するブロック図である。
【
図1B】本開示のいくつかの実施例に係る、エンコーダのブロック図である。
【
図1C】本開示のいくつかの実施例に係る、どのようにしてフレームが異なるサイズおよび形状の複数のビデオブロックに再帰的に区分されるかを例示するブロック図である。
【
図1D】本開示のいくつかの実施例に係る、どのようにしてフレームが異なるサイズおよび形状の複数のビデオブロックに再帰的に区分されるかを例示するブロック図である。
【
図1E】本開示のいくつかの実施例に係る、どのようにしてフレームが異なるサイズおよび形状の複数のビデオブロックに再帰的に区分されるかを例示するブロック図である。
【
図1F】本開示のいくつかの実施例に係る、どのようにしてフレームが異なるサイズおよび形状の複数のビデオブロックに再帰的に区分されるかを例示するブロック図である。
【
図2】本開示のいくつかの実施例に係る、デコーダのブロック図である。
【
図3A】本開示のいくつかの実施例に係る、マルチタイプツリー構造内のブロック区画を例示する図である。
【
図3B】本開示のいくつかの実施例に係る、マルチタイプツリー構造内のブロック区画を例示する図である。
【
図3C】本開示のいくつかの実施例に係る、マルチタイプツリー構造内のブロック区画を例示する図である。
【
図3D】本開示のいくつかの実施例に係る、マルチタイプツリー構造内のブロック区画を例示する図である。
【
図3E】本開示のいくつかの実施例に係る、マルチタイプツリー構造内のブロック区画を例示する図である。
【
図4A】本開示のいくつかの実施例に係る、4-パラメータ・アフィンモデルを例示する図である。
【
図4B】本開示のいくつかの実施例に係る、4-パラメータ・アフィンモデルを例示する図である。
【
図4C】本開示のいくつかの実施例に係る、空間的マージ候補の位置を例示する図である。
【
図4D】本開示のいくつかの実施例に係る、空間的マージ候補の冗長性チェックのために考慮される候補ペアを例示する図である。
【
図4E】本開示のいくつかの実施例に係る、時間的マージ候補に対する動きベクトル・スケーリングを例示する図である。
【
図4F】本開示のいくつかの実施例に係る、時間的マージ候補C
0およびC
1に対する候補位置を例示する図である。
【
図5】本開示のいくつかの実施例に係る、6-パラメータ・アフィンモデルを例示する図である。
【
図6】本開示のいくつかの実施例に係る、継承アフィンマージ候補に対する隣接ブロックを例示する図である。
【
図7】本開示のいくつかの実施例に係る、構築アフィンマージ候補に対する隣接ブロックを例示する図である。
【
図8】本開示のいくつかの実施例に係る、継承アフィンマージ候補に対する非隣接ブロックを例示する図である。
【
図9】本開示のいくつかの実施例に係る、隣接ブロックを使用した構築アフィンマージ候補の導出を例示する図である。
【
図10】本開示のいくつかの実施例に係る、非隣接ブロックの垂直スキャニングを例示する図である。
【
図11】本開示のいくつかの実施例に係る、非隣接ブロックの水平スキャニングを例示する図である。
【
図12】本開示のいくつかの実施例に係る、非隣接ブロックの組み合わせ垂直および水平スキャニングを例示する図である。
【
図13A】本開示のいくつかの実施例に係る、現在ブロックと同一のサイズを有する隣接ブロックを例示する図である。
【
図13B】本開示のいくつかの実施例に係る、現在ブロックとは異なるサイズを有する隣接ブロックを例示する図である。
【
図14A】本開示のいくつかの実施例に係る、前の距離内の最も下または最も右のブロックの左下または右最上のブロックが現在の距離の最も下または最も右のブロックとして使用される実施例を例示する図である。
【
図14B】本開示のいくつかの実施例に係る、前の距離内の最も下または最も右のブロックの左または最上のブロックが現在の距離の最も下または最も右のブロックとして使用される実施例を例示する図である。
【
図15A】本開示のいくつかの実施例に係る、上および左の非隣接ブロックに対して使用される左下および右最上位置におけるスキャニング位置を例示する図である。
【
図15B】本開示のいくつかの実施例に係る、上および左の両方の非隣接ブロックに対して使用される右下位置におけるスキャニング位置を例示する図である。
【
図15C】本開示のいくつかの実施例に係る、上および左の両方の非隣接ブロックに対して使用される左下位置におけるスキャニング位置を例示する図である。
【
図15D】本開示のいくつかの実施例に係る、上および左の両方の非隣接ブロックに対して使用される右最上位置におけるスキャニング位置を例示する図である。
【
図16】本開示のいくつかの実施例に係る、構築マージ候補を導出する簡易化されたスキャニング処理を例示する図である。
【
図17A】本開示のいくつかの実施例に係る、継承アフィンマージ候補を導出する空間的隣接を例示する図である。
【
図17B】本開示のいくつかの実施例に係る、構築アフィンマージ候補を導出する空間的隣接を例示する図である。
【
図18】本開示のいくつかの実施例に係る、アフィン構築候補を導出する継承ベース導出方法の実施例を例示する図である。
【
図19】本開示のいくつかの実施例に係る、参照リスト0および参照リスト1内のテンプレートおよびテンプレートの参照サンプルを例示する図である。
【
図20】本開示のいくつかの実施例に係る、現在ブロックのサブブロックの動き情報を使用したサブブロック動きを有するブロックに対するテンプレートおよびテンプレートの参照サンプルを例示する図である。
【
図21】本開示のいくつかの実施例に係る、ユーザインタフェースと接続されたコンピューティング環境を例示する図である。
【
図22】本開示のいくつかの実施例に係る、ビデオ復号のための方法を例示するフローチャートである。
【
図23】本開示のいくつかの実施例に係る、
図22に示されるようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【
図24】本開示のいくつかの実施例に係る、ビデオ復号のための方法を例示するフローチャートである。
【
図25】本開示のいくつかの実施例に係る、
図24に示されるようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【
図26】本開示のいくつかの実施例に係る、ビデオ復号のための方法を例示するフローチャートである。
【
図27】本開示のいくつかの実施例に係る、
図26に示されるようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【発明を実施するための形態】
【0017】
ここで、特定の実装態様に対して参照が詳細に行われ、その実施例は、添付図面に例示される。以下の詳細な説明では、本明細書で提示される主題を理解することを支援するために、多数の非限定的な特定の詳細が示される。しかしながら、様々な代替が使用され得ることが当業者にとって明らかである。例えば、本明細書で提示される主題は、デジタル・ビデオ能力を有する多くのタイプの電子デバイス上で実装され得ることが当業者にとって明らかである。
【0018】
開示において使用される用語は、特定の実施形態を説明する目的のためにのみ採用され、開示を限定することが意図されない。開示および添付の特許請求の範囲における単数形の「a/an」、「said」、および「the」は、開示の全体を通じて他の意味が明白に表されない限り、複数形をも含むことが意図される。また、開示において使用される用語「and/or」は、表記される複数の関連する項目の1つまたはいずれかまたは全ての可能な組み合わせを指し、それらを含むことが理解されることになる。
【0019】
本明細書の全体を通じての「1つの実施形態(one embodiment)」、「実施形態(an embodiment)」、「実施例(an example)」、「いくつかの実施形態(some embodiments)」、「いくつかの実施例(some examples)」、または類似の言語に対する言及は、説明される特定の特徴、構造、または特性が少なくとも1つの実施形態または実施例に含まれることを意味する。1つのまたはいくつかの実施形態に関連して説明される特徴、構造、要素、または特性は、他に明確に指定されない限り、他の実施形態にも適用可能である。
【0020】
開示の全体を通じて、用語「第1の(first)」、「第2の(second)」、「第3の(third)」などは全て、いずれの空間的または年代順序において暗示することなく、他に明確に指定されない限り、関連する要素、例えば、デバイス、構成要素、組成物、ステップなどへの参照のための命名法としてのみ使用される。例えば、「第1のデバイス」および「第2のデバイス」は、2つの別個に形成されたデバイス、または2つの部品、構成要素、または同一のデバイスの動作状態を指し得、任意に命名され得る。
【0021】
用語「モジュール」、「サブモジュール」、「回路(circuit)」、「サブ回路(sub-circuit)」、「回路(circuitry)」、「サブ回路(sub-circuitry)」、「ユニット」、または「サブ・ユニット」は、1つまたは複数のプロセッサによって実行され得るコードまたは命令を記憶するメモリ(共有、専用、またはグループ)を含み得る。モジュールは、記憶されたコード若しくは命令を有し、若しくは記憶されたコード若しくは命令を有さない1つまたは複数の回路を含み得る。モジュールまたは回路は、直接または間接的に接続された1つまたは複数の構成要素を含み得る。それらの構成要素は、相互に隣接して物理的に取り付けられ得若しくは位置し得、または物理的に取り付けられ得ず若しくは位置し得ない。
【0022】
本明細書で使用されるように、用語「if」または「when」は、コンテキストに応じて、「upon」または「in response to」を意味すると理解され得る。それらの用語は、請求項に現れる場合、関連する限定または特徴が条件付きでありまたは任意選択であることを示し得ない。例えば、方法は、i)条件Xが存在するときまたは存在する場合、関数またはアクションX’が実行され、ii)条件Yが存在するときまたは存在する場合、関数またはアクションY’が実行される、ステップを含み得る。方法は、関数またはアクションX’を実行する能力、および関数またはアクションY’を実行する能力の両方により実装され得る。よって、関数X’およびY’は両方、異なるときに、方法の複数の実行に対して実行され得る。
【0023】
ユニットまたはモジュールは、純粋にソフトウェアによって、純粋にハードウェアによって、またはハードウェアおよびソフトウェアの組み合わせによって実装され得る。純粋なソフトウェア実装態様では、例えば、ユニットまたはモジュールは、特定の関数を実行するように、直接または間接的に共にリンク付けられる、機能的に関連するコード・ブロックまたはソフトウェア構成要素を含み得る。
【0024】
図1Aは、本開示のいくつかの実装態様に係る、並列してビデオブロックを符号化および復号する例示的なシステム10を例示するブロック図である。
図1Aに示されるように、システム10は、宛先デバイス14によって後に復号されることになるビデオデータを生成および符号化するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セット・トップ・ボックス、デジタル・テレビ、カメラ、ディスプレイデバイス、デジタル・メディア・プレイヤ、ビデオ・ゲーミング・コンソール、またはビデオ・ストリーミング・デバイスなどを含む、多種多様な電子デバイスのいずれかを含み得る。いくつかの実装態様では、ソースデバイス12および宛先デバイス14は、無線通信能力が備えられる。
【0025】
いくつかの実装態様では、宛先デバイス14は、リンク16を介して、復号されることになる符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させる能力を有するいずれかのタイプの通信媒体またはデバイスを含み得る。1つの実施例では、リンク16は、ソースデバイス12が宛先デバイス14に符号化ビデオデータを直接リアルタイムで伝送することを有効にするための通信媒体を含み得る。符号化ビデオデータは、無線通信プロトコルなどの通信標準規格に従って変調され得、宛先デバイス14に伝送され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送ラインなど、いずれかの無線または有線通信媒体を含み得る。通信媒体は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはインターネットなどのグローバル・ネットワークなど、パケット・ベース・ネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を促進するために有益であり得るルータ、スイッチ、基地局、またはいずれかの他の機器を含み得る。
【0026】
いくつかの他の実装態様では、符号化ビデオデータは、出力インタフェース22から記憶デバイス32に伝送され得る。その後、記憶デバイス32内の符号化ビデオデータは、入力インタフェース28を介して宛先デバイス14によってアクセスされ得る。記憶デバイス32は、ハード・ドライブ、ブルーレイ・ディスク、デジタル多用途ディスク(DVD)、コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、フラッシュ・メモリ、揮発性若しくは不揮発性メモリ、または符号化ビデオデータを記憶するためのいずれかの他の適切なデジタル記憶媒体など、様々な分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。更なる実施例では、記憶デバイス32は、ソースデバイス12によって生成された符号化ビデオデータを保持し得るファイル・サーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンローディングを介して、記憶デバイス32から記憶ビデオデータにアクセスし得る。ファイル・サーバは、符号化ビデオデータを記憶し、宛先デバイス14に符号化ビデオデータを伝送する能力を有するいずれかのタイプのコンピュータであり得る。例示的なファイル・サーバは、ウェブ・サーバ(例えば、ウェブサイトのための)、ファイル転送プロトコル(FTP)サーバ、ネットワーク・アタッチド・ストレージ(NAS)デバイス、またはローカル・ディスク・ドライブを含む。宛先デバイス14は、無線チャネル(例えば、ワイヤレス・フィデリティ(Wi-Fi)接続)、有線接続(例えば、デジタル・サブスクライバ・ライン(DSL)、ケーブル・モデムなど)、またはファイル・サーバに記憶された符号化ビデオデータにアクセスするために適切である両方の組み合わせを含む、いずれかの標準規格データ接続を通じて符号化ビデオデータにアクセスし得る。記憶デバイス32からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または両方の組み合わせであり得る。
【0027】
図1Aに示されるように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インタフェース22を含む。ビデオソース18は、ビデオ補足デバイス、例えば、ビデオ・カメラ、前に捕捉されたビデオを包含するビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオ・フィーディング・インタフェース、および/若しくはソース・ビデオとしてコンピュータ・グラフィック・データを生成するためのコンピュータ・グラフィック・システム、またはそのようなソースの組み合わせなどのソースを含み得る。1つの実施例として、ビデオソース18がセキュリティ監視システムのビデオ・カメラである場合、ソースデバイス12および宛先デバイス14は、カメラ電話またはビデオ電話を形成し得る。しかしながら、本出願において説明される実装態様は、ビデオ符号化に全体的に適用可能であり得、無線および/または有線用途に適用され得る。
【0028】
補足され、事前に捕捉され、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インタフェース22を介して宛先デバイス14に直接伝送され得る。符号化ビデオデータはまた(または、その代わりに)、宛先デバイス14または他のデバイスによる後のアクセスのために、復号および/または再生のために、記憶デバイス32に記憶され得る。出力インタフェース22はさらに、モデムおよび/または送信機を含み得る。
【0029】
宛先デバイス14は、入力インタフェース28、ビデオデコーダ30、およびディスプレイデバイスを含む。入力インタフェース28は、受信機および/またはモデムを含み得、リンク16を通じて符号化ビデオデータを受信し得る。リンク16に通信され、記憶デバイス32上で提供される符号化ビデオデータは、ビデオデータを復号する際のビデオデコーダ30による使用のためのビデオエンコーダ20によって生成された様々な構文要素を含み得る。そのような構文要素は、通信媒体上で伝送され、記憶媒体に記憶され、またはファイル・サーバに記憶された符号化ビデオデータに含まれ得る。
【0030】
いくつかの実装態様では、宛先デバイス14は、ディスプレイデバイス34を含み得、ディスプレイデバイス34は、宛先デバイス14と通信するように構成された統合ディスプレイデバイスおよび外部ディスプレイデバイスであることができる。ディスプレイデバイス34は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含み得る。
【0031】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part 10、AVC、またはそのような標準規格の拡張など、プロプライエタリまたは産業標準規格に従って動作し得る。本出願は、特定のビデオ符号化/復号標準規格に限定されず、他のビデオ符号化/復号標準規格に適用可能であり得ることが理解されるべきである。ソースデバイス12のビデオエンコーダ20は、それらの現在または後の標準規格に従って、ビデオデータを符号化するように構成され得ると全体的に考えられる。同様にまた、宛先デバイス14のビデオデコーダ30は、それらの現在または後の標準規格に従って、ビデオデータを復号するように構成され得ると全体的に考えられる。
【0032】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロ・プロセッサ、デジタル・シグナル・プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらのいずれかの組み合わせなど、様々な適切なエンコーダおよび/またはデコーダ回路のいずれかとして実装され得る。ソフトウェアにおいて部分的に実装されるとき、電子デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し得、本開示において開示されたビデオ符号化/復号動作を実行するように、1つまたは複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれかは、それぞれのデバイスに組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0033】
HEVCのように、VVCは、ブロック・ベース・ハイブリッド・ビデオ符号化・フレームワークに対して構築される。
図1Bは、本開示のいくつかの実装態様に係る、ブロック・ベース・ビデオエンコーダを例示するブロック図である。エンコーダ100では、入力ビデオ信号は、コーディング・ユニット(CU)と呼ばれる、ブロックごとに処理される。エンコーダ100は、
図1Aに示されるようなビデオエンコーダ20であり得る。VTM-1.0では、CUは、最大で128×128画素であることができる。しかしながら、四分木に基づいてのみブロックを区分するHEVCとは異なり、VVCでは、1つのコーディング・ツリー・ユニット(CTU)は、四分木/二分木/三分木に基づいて可変の局所的な特性に適合するように、CUに分割される。加えて、HEVCにおける複数の区分ユニット・タイプの概念が取り除かれ、すなわち、CU、予測ユニット(PU)、および変換ユニット(TU)の分離は、VVCではもはや存在せず、代わりに、各々のCUは、更なる区分なしに、予測および変換の両方のための基本的な単位として常に使用される。マルチタイプツリー構造では、1つのCTUは、四分木構造によって最初に区分される。次いで、各々の四分木リーフ・ノードは、二分木および三分木構造によってさらに区分され得る。
【0034】
図3A~3Eは、本開示のいくつかの実装態様に係る、マルチタイプツリー分割モードを例示する概略図である。
図3A~3Eはそれぞれ、四分区分(
図3A)、垂直二分区分(
図3B)、水平二分区分(
図3C)、垂直拡張三分区分(
図3D)、および水平拡張三分区分(
図3E)を含む5つの分割タイプを示す。
【0035】
所与のビデオブロックごとに、空間予測および/または時間予測が実行され得る。空間予測(または、「イントラ予測」)は、現在ビデオブロックを予測するために、同一のビデオ・ピクチャ/スライス内の既にコーディングされた隣接ブロック(参照サンプルと呼ばれる)のサンプルからの画素を使用する。空間予測は、ビデオ信号に内在する空間的冗長性を削減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、現在ビデオブロックを予測するために、既にコーディングされたビデオ・ピクチャからの再構築画素を使用する。時間予測は、ビデオ信号に内在する時間的冗長性を削減する。所与のCUについての時間予測信号は通常、1つまたは複数の動きベクトル(MV)によってシグナリングされ、MVは、現在CUとその時間的参照との間の動きの量および方向を示す。また、複数の参照ピクチャがサポートされる場合、参照ピクチャストアのどの参照ピクチャから時間予測信号が来るかを識別するために使用される、1つの参照ピクチャインデックスが加えて送信される。
【0036】
空間および/または時間予測の後、エンコーダ100におけるイントラ/インター・モード決定回路121は、例えば、レート歪み最適化方法に基づいて、最良の予測モードを選ぶ。ブロック予測子120は次いで、現在ビデオブロックから差し引かれ、結果として生じる予測残差は、変換回路102および量子化回路104を使用して相関付け解除される。結果として生じる量子化残差係数は、再構築残差を形成するように、逆量子化回路116によって逆量子化され、逆変換回路118によって逆変換され、再構築残差は次いで、CUの再構築信号を形成するように、予測ブロックに再度追加される。さらに、デブロッキング・フィルタ、サンプル・アダプティブ・オフセット(SAO)、および/またはアダプティブ・ループ内フィルタ(ALF)などのループ内フィルタリング115は、それがピクチャバッファ117の参照ピクチャストアに置かれ、後のビデオブロックをコーディングするために使用される前に、再構築CUに対して適用され得る。出力ビデオビットストリーム114を形成するために、コーディング・モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化残差係数は全て、さらに圧縮およびパックされて、ビットストリームを形成するように、エントロピ・コーディング・ユニット106に送信される。
【0037】
例えば、ブロッキング・フィルタは、AVC、HEVCと共に、VVCの現在のバージョンにおいて利用可能である。HEVCでは、SAOと呼ばれる追加のループ内フィルタは、コーディング効率をさらに改善するために定義される。VVC標準規格の現在のバージョンでは、ALFと呼ばれる更なる別のループ内フィルタは、能動的に調査されており、それは、最終的な標準規格に含まれる良好な機会を有する。
【0038】
それらのループ内フィルタ動作は、任意選択である。それらの動作を実行することは、コーディング効率および視覚品質を改善することを補助する。それらはまた、計算複雑度を節約するように、エンコーダ100によってなされる決定としてターン・オフされ得る。
【0039】
イントラ予測は通常、フィルタリングされていない再構築画素に基づいていると共に、それらのフィルタ・オプションがエンコーダ100によってターン・オンされる場合、インター予測は、フィルタリングされた再構築画素に基づいていることに留意されるべきである。
【0040】
図2は、多くのビデオ符号化標準規格と併用して使用され得るブロックベースビデオデコーダ200を例示するブロック図である。このデコーダ200は、
図1Bのエンコーダ100に存在する再構築関連セクションと類似である。ブロックベースビデオデコーダ200は、
図1Aに示されるようなビデオデコーダ30であり得る。デコーダ200では、入来するビデオビットストリーム201は、量子化係数レベルおよび予測関連情報を導出するように、エントロピ復号202を通じて最初に復号される。量子化係数レベルは次いで、再構築予測残差を取得するように、逆量子化204および逆変換206を通じて処理される。イントラ/インター・モード選択212において実装される、ブロック予測子機構は、復号予測情報に基づいて、イントラ予測208、または動き補償210のいずれかを実行するように構成される。フィルタリングされていない再構築画素の組は、加算器(summer)214を使用して、逆変換206からの再構築予測残差およびブロック予測子機構によって生成された予測出力を合計することによって取得される。
【0041】
再構築ブロックはさらに、参照ピクチャストアとして機能するピクチャバッファ213に記憶される前に、ループ内フィルタ209を通り得る。ピクチャバッファ213内の再構築ビデオは、ディスプレイデバイスを駆動するように送信され得ると共に、後のビデオブロックを予測するために使用され得る。ループ内フィルタ209がターン・オンされる状況では、フィルタリング動作は、最終的な再構築ビデオ出力222を導出するように、それらの再構築画素に対して実行される。
【0042】
現在のVVCおよびAVS3標準規格では、現在符号化ブロックの動き情報は、マージ候補インデックスによって指定された空間的若しくは時間的隣接ブロックから複製されるか、または動き推定の明示的なシグナリングによって取得されるかのいずれかである。本開示の焦点は、アフィンマージ候補の導出方法を改善することによって、アフィンマージモードに対する動きベクトルの精度を改善することである。本開示の説明を促進するために、VVC標準規格における既存のアフィンマージモード設計は、提案されるアイデアを促進するために実施例として使用される。VVC標準規格における既存のアフィンモード設計が本開示の全体を通じて実施例として使用されるが、現代のビデオ符号化技術の当業者に対し、提案される技術も、アフィン動き予測モードまたは同一若しくは類似の設計精神を有する他のコーディング・ツールの異なる設計に適用され得ることに留意されよう。
【0043】
典型的なビデオ符号化処理では、ビデオシーケンスは典型的には、フレームまたはピクチャの順序付けられたセットを含む。各々のフレームは、SL、SCb、およびSCrと表される、3つのサンプル・アレイを含み得る。SLは、ルマサンプルの二次元アレイである。SCbは、Cbクロマサンプルの二次元アレイである。SCrは、Crクロマサンプルの二次元アレイである。他のインスタンスでは、フレームは、モノクロであり得、したがって、ルマサンプルの1つの二次元アレイのみを含み得る。
【0044】
図1Cに示されるように、ビデオエンコーダ20(または、より具体的に、ビデオエンコーダ20の予測プロセシング・ユニットにおける区分ユニット)は、フレームをCTUのセットに最初に区分することによって、フレームの符号化表現を生成する。ビデオ・フレームは、左から右および最上から下へのラスタ・スキャン順序において連続して順序付けられた整数のCTUを含み得る。各々のCTUは、最大の論理コーディング・ユニットであり、CTUの幅および高さは、シーケンス・パラメータ・セットにおいてビデオエンコーダ20によってシグナリングされ、その結果、ビデオシーケンス内の全てのCTUは、128×128、64×64、32×32、および16×16の1つである同一のサイズを有する。しかしながら、本出願は、特定のサイズに必ずしも限定されないことに留意されるべきである。
図1Dに示されるように、各々のCTUは、ルマサンプルの1つのCTB、クロマサンプルの2つの対応する符号化ツリーブロック、および符号化ツリーブロックのサンプルをコーディングするために使用される構文要素を含み得る。構文要素は、画素の符号化ブロックの異なるタイプのユニットの性質と、インターまたはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含む、ビデオシーケンスがビデオデコーダ30においてどのように再構築され得るかを記述する。モノクロ・ピクチャまたは3つの別個のカラー平面を有するピクチャでは、CTUは単一の符号化ツリーブロックおよび符号化ツリーブロックのサンプルをコーディングするために使用される構文要素を含み得る。符号化ツリーブロックは、サンプルのN×Nブロックであり得る。
【0045】
より良好な性能を達成するために、ビデオエンコーダ20は、二分木区分、三分木区分、四分木区分、またはそれらの組み合わせなどのツリー区分をCTUの符号化ツリーブロックに対して再帰的に実行し得、CTUをより小さなCUに分割し得る。
図1Eに表されるように、64×64のCTU400は、4つのより小さなCUに最初に分割され、その各々は、32×32のブロックサイズを有する。4つのより小さなCUの間で、CU410およびCU420は各々、ブロックサイズによって16×16の4つのCUに分割される。2つの16×16のCU430および440は各々、ブロックサイズによって8×8の4つのCUにさらに分割される。
図1Fは、
図1Eに表されるようなCTU400の区分処理の最終結果を例示する四分木データ構造を表し、四分木の各々のリーフ・ノードは、32×32から8×8の範囲にあるそれぞれのサイズの1つのCUに対応する。
図1Dに表されるCTUと同様に、各々のCUは、ルマサンプルのCB、および同一のサイズのフレームのクロマサンプルの2つの対応する符号化ブロック、および符号化ブロックのサンプルをコーディングするために使用される構文要素を含み得る。モノクロ・ピクチャまたは&3つの別個のカラー平面を有するピクチャでは、CUは、単一の符号化ブロックおよび符号化ブロックのサンプルをコーディングするために使用される構文構造を含み得る。
図1E~1Fに表される四分木区分は、例示のみを目的としており、四分木/三分木/二分木区分に基づいて、可変の局所的特性に適合するように、1つのCTUがCUに分割され得ることに留意されるべきである。マルチタイプツリー構造では、1つのCTUは、四分木構造によって区分され、各々の四分木リーフCUは、二分木および三分木構造にさらに区分され得る。
図3A~3Eに示されるように、幅Wおよび高さHを有する符号化ブロックの5つの可能な区分タイプ、すなわち、四分木区分、水平二分木区分、垂直二分木区分、水平三分木区分、および垂直三分木区分が存在する。
【0046】
いくつかの実装態様では、ビデオエンコーダ20はさらに、CUの符号化ブロックを1つまたは複数のM×NのPBに区分し得る。PBは、同一の予測、インターまたはイントラが適用される、サンプルの矩形(正方形または非正方形)ブロックである。CUのPUは、ルマサンプルのPB、クロマサンプルの2つの対応するPB、およびPBを予測するために使用される構文要素を含み得る。モノクロ・ピクチャまたは3つの別個のカラー平面を有するピクチャでは、PUは、単一のPBおよびPBを予測するために使用される構文要素を含み得る。ビデオエンコーダ20は、予測的ルマ、ルマについてのCbおよびCrブロック、CUの各々のPUのCbおよびCr PBsを生成し得る。
【0047】
ビデオエンコーダ20は、PUについての予測的ブロックを生成するために、イントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測的ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたフレームの復号サンプルに基づいて、PUの予測的ブロックを生成し得る。ビデオエンコーダ20がPUの予測的ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUと関連付けられたフレーム以外の1つまたは複数のフレームの復号サンプルに基づいて、PUの予測的ブロックを生成し得る。
【0048】
ビデオエンコーダ20がCUの1つまたは複数のPUについての予測的ルマ、Cb、およびCrブロックを生成した後、ビデオエンコーダ20は、CUの予測的ルマブロックをその元のルマ・符号化ブロックから差し引くことによって、CUについてのルマ残差ブロックを生成し得、その結果、CUのルマ残差ブロック内の各々のサンプルは、CUの予測的ルマブロックの1つの中のルマサンプルとCUの元のルマ・符号化ブロック内の対応するサンプルとの間の差を示す。同様に、ビデオエンコーダ20は、CUについてのCb残差ブロックおよびCr残差ブロックをそれぞれ生成し得、その結果、CUのCb残差ブロック内の各々のサンプルは、CUの予測的Cbブロックの1つの中のCbサンプルとCUの元のCb符号化ブロック内の対応するサンプルとの間の差を示し、CUのCr残差ブロック内の各々のサンプルは、CUの予測的Crブロックの1つの中のCrサンプルとCUの元のCr符号化ブロック内の対応するサンプルとの間の差を示し得る。
【0049】
さらに、
図1Eに例示されるように、ビデオエンコーダ20は、CUのルマ、Cb、およびCr残差ブロックを1つまたは複数のルマ、Cb、およびCr変換ブロックにそれぞれ分解するために、四分木区分を使用し得る。変換ブロックは、同一の変換が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUのTUは、ルマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロック・サンプルを変換するために使用される構文要素を含み得る。よって、CUの各々のTUは、ルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックと関連付けられ得る。いくつかの実施例では、TUと関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロ・ピクチャまたは3つの別個のカラー平面を有するピクチャでは、TUは、単一の変換ブロックおよび変換ブロックのサンプルを変換するために使用される構文構造を含み得る。
【0050】
ビデオエンコーダ20は、TUについてのルマ係数ブロックを生成するために、TUのルマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは、変換係数の二次元アレイであり得る。変換係数は、スカラ量であり得る。ビデオエンコーダ20は、TUについてのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUについてのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【0051】
係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は概して、変換係数を表すために使用されるデータの量を場合によっては削減し、更なる圧縮を提供するために、変換係数が量子化される処理を指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示す構文要素をエントロピ符号化し得る。例えば、ビデオエンコーダ20は、量子化変換係数を示す構文要素に対してCABACを実行し得る。最終的に、ビデオエンコーダ20は、記憶デバイス32に保存されるかまたは宛先デバイス14に伝送されるかのいずれかである、コーディングフレームおよび関連するデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。
【0052】
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームから構文要素を取得するように、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、ビデオデータのフレームを再構築し得る。ビデオデータを再構築する処理は概して、ビデオエンコーダ20によって実行される符号化処理と相互的である。例えば、ビデオデコーダ30は、現在CUのTUと関連付けられた残差ブロックを再構築するように、現在CUのTUと関連付けられた係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30はまた、現在CUのPUについての予測的ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに追加することによって、現在CUの符号化ブロックを再構築する。フレームのCUごとに符号化ブロックを再構築した後、ビデオデコーダ30は、フレームを再構築し得る。
【0053】
上記で述べられたように、ビデオ符号化は、主に2つのモード、すなわち、イントラ-フレーム予測(または、イントラ予測)およびインター-フレーム予測(または、インター予測)を使用してビデオ圧縮をアーカイブする。IBCは、イントラ-フレーム予測または第3のモードのいずれかとして見なされることに留意されよう。2つのモードの間で、参照ビデオブロックから現在ビデオブロックを予測するための動きベクトルの使用を理由に、インター-フレーム予測は、イントラ-フレーム予測よりもコーディング効率に貢献する。
【0054】
しかしながら、ビデオデータ捕捉技術およびビデオデータ内の内容を保存するためのより精緻化されたビデオブロックサイズをこれまで改善することにより、現在フレームについての動きベクトルを表すために必要とされるデータの量も、実質的に増大する。この課題を克服する1つの方法は、空間および時間ドメインの両方内の隣接CUのグループが予測する目的で類似のビデオデータを有するだけでなく、それらの隣接CUの間の動きベクトルも類似であるという事実からの利点を有することである。したがって、現在CUの「動きベクトル・プレディクタ(MVP)」とも称される、それらの空間的および時間的相関関係を利用することによって、現在CUの動き情報(例えば、動きベクトル)の近似度として、空間的に隣接するCUおよび/または時間的に同一位置にあるCUの動き情報を使用することが可能である。
【0055】
図1Bと関連して上記で説明されたような動き推定ユニットによって決定された現在CUの実際の動きベクトルを、ビデオビットストリームに符号化する代わりに、現在CUの動きベクトル・プレディクタは、現在CUについての動きベクトル・ディファレンス(MVD)を生じさせるように、現在CUの実際の動きベクトルから差し引かれる。それを行うことによって、フレームのCUごとの動き推定ユニットによって決定された動きベクトルをビデオビットストリームに符号化する必要がなく、ビデオビットストリーム内の動き情報を表すために使用されるデータの量が著しく減少され得る。
【0056】
コード・ブロックのインター-フレーム予測の間に参照フレーム内の予測的ブロックを選ぶ処理と同様に、現在CUの空間的に隣接のCUおよび/または時間的に同一位置にあるCUと関連付けられたそれらの潜在的な候補動きベクトルを使用して現在CUについての動きベクトル候補リスト(「マージリスト」としても知られる)を構築し、次いで、現在CUについての動きベクトル・プレディクタとして動きベクトル候補リストから1つのメンバを選択するために、ビデオエンコーダ20およびビデオデコーダ30の両方によって採用されるルールのセットが必要である。それを行うことによって、ビデオエンコーダ20からビデオデコーダ30に動きベクトル候補リスト自体を伝送する必要がなく、現在CUを符号化および復号するために動きベクトル候補リスト内の同一の動きベクトル・プレディクタを使用するのに、動きベクトル候補リスト内の選択された動きベクトル・プレディクタのインデックスがビデオエンコーダ20およびビデオデコーダ30に対して十分である。
【0057】
アフィンモデル
HEVCでは、並進動きモデルのみが、動き補償予測のために適用される。現実世界では、多くの種類の動き、例えば、ズーム・イン/アウト、回転、奥行の動き、および他の不規則な動きが存在する。VVCおよびAVS3では、並進動きモデルまたはアフィン動きモデルがインター予測のために適用されるかどうかを示すように、各々のインター・符号化ブロックについての1つのフラグをシグナリングすることによって、アフィン動き補償予測が適用される。現在のVVCおよびAVS3設計では、4-パラメータ・アフィンモードおよび6-パラメータ・アフィンモードを含む2つのアフィンモードが、1つのアフィン・符号化ブロックに対してサポートされる。
【0058】
4-パラメータ・アフィンモデルは、以下のパラメータ:水平および垂直方向それぞれにおける並進移動についての2つのパラメータ、ズームの動きについての1つのパラメータ、および両方向に対する回転の動きについての1つのパラメータを有する。このモデルでは、水平ズーム・パラメータは、垂直ズーム・パラメータに等しく、水平回転パラメータは、垂直回転パラメータに等しい。動きベクトルおよびアフィンパラメータのより良好な適合を達成するために、それらのアフィンパラメータは、現在ブロックの左最上隅および右最上隅に位置する2つのMV(制御点動きベクトル(CPMV)とも呼ばれる)から導出されることになる。
図4A~4Bに示されるように、ブロックのアフィン動きフィールドは、2つのCPMV(V
0,V
1)によって記述される。制御点動きに基づいて、1つのアフィン符号化ブロックの動きフィールド(v
x,v
y)は、
【数1】
として記述される。
【0059】
6-パラメータ・アフィンモードは、以下のパラメータ:水平および垂直方向それぞれにおける並進移動についての2つのパラメータ、水平方向におけるズーム動きおよび回転動きそれぞれについての2つのパラメータ、垂直方向におけるズーム動きおよび回転動きそれぞれについての別の2つのパラメータを有する。6-パラメータ・アフィン動きモデルは、3つのCPMVにより符号化される。
図5に示されるように、1つの6-パラメータ・アフィン・ブロックの3つの制御点は、ブロックの左最上、右最上、および左下隅に位置する。左最上制御点における動きは、並進動きに関連し、右最上制御点における動きは、水平方向における回転およびズーム動きに関連し、左下制御点における動きは、垂直方向における回転およびズーム動きに関連する。4-パラメータ・アフィン動きモデルと比較して、6-パラメータの水平方向における回転およびズーム動きは、垂直方向におけるそれらの動きと同一ではあり得ない。(V
0,V
1,V
2)が
図5における現在ブロックの左最上、右最上、および左下隅のMVであると想定して、各々のサブブロックの動きベクトル(v
x,v
y)は、
【数2】
として、制御点における3つのMVを使用して導出される。
【0060】
アフィンマージモード
アフィンマージモードでは、現在ブロックについてのCPMVは、明示的にシグナリングされないが、隣接ブロックから導出される。特に、このモードでは、空間的隣接ブロックの動き情報は、現在ブロックについてのCPMVを生成するために使用される。アフィンマージモード候補リストは、制限されたサイズを有する。例えば、現在のVVC設計では、最大で5つの候補が存在し得る。エンコーダは、レート歪み最適化アルゴリズムに基づいて、最良の候補インデックスを評価し得、選び得る。選ばれた候補インデックスは次いで、デコーダ側にシグナリングされる。アフィンマージ候補は、3つの方法において決定され得る。第1の方法では、アフィンマージ候補は、隣接のアフィン符号化ブロックから継承され得る。第2の方法では、アフィンマージ候補は、隣接ブロックからの並進MVから構築され得る。第3の方法では、ゼロMVは、アフィンマージ候補として使用される。
【0061】
継承方法について、最大で2つの候補が存在し得る。候補は、利用可能である場合、現在ブロックの左下に位置する隣接ブロックから(例えば、
図6に示されるように、スキャニング順序がA0からA1までである)、および現在ブロックの右最上に位置する隣接ブロックから(例えば、
図6に示されるように、スキャニング順序がB0からB2までである)取得される。
【0062】
構築方法について、候補は、2つのステップによって生成され得る、隣接の並進MVの組み合わせである。
【0063】
ステップ1:利用可能な隣接からMV1、MV2、MV3、およびMV4を含む4つの並進MVを取得する。
MV1:現在ブロックの左最上隅に近い3つの隣接ブロックの1つからのMV。
図7に示されるように、スキャニング順序は、B2、B3、およびA2である。
MV2:現在ブロックの右最上隅に近い2つの隣接ブロックからの1つの1つからのMV。
図7に示されるように、スキャニング順序は、B1およびB0である。
MV3:現在ブロックの左下隅に近い2つの隣接ブロックからの1つの1つからのMV。
図7に示されるように、スキャニング順序は、A1およびA0である。
MV4:現在ブロックの右下隅に近い隣接ブロックの時間的に同一位置にあるブロックからのMV。図に示されるように、隣接ブロックは、Tである。
【0064】
ステップ2:ステップ1からの4つの並進MVに基づいて、組み合わせを導出する。
組み合わせ1:MV1、MV2、MV3、
組み合わせ2:MV1、MV2、MV4、
組み合わせ3:MV1、MV3、MV4、
組み合わせ4:MV2、MV3、MV4、
組み合わせ5:MV1、MV2、
組み合わせ6:MV1、MV3。
【0065】
マージ候補リストが継承および構築候補により満たした後にフルでないとき、ゼロMVは、リストの最後に挿入される。
【0066】
アフィンAMVPモード
アフィンアドバンスト動きベクトル予測(AMVP)モードは、16以上の幅および高さの両方を有するCUに対して適用され得る。CUレベルにおけるアフィン・フラグは、アフィンAMVPモードが使用されるかどうかを示すようにビットストリームにおいてシグナリングされ、次いで、別のフラグは、4-パラメータ・アフィンまたは6-パラメータ・アフィンであるかどうかを示すようにシグナリングされる。このモードでは、現在CUのCPMVおよびそれらのCPMVプレディクタ(CPMVP)の差が、ビットストリームにおいてシグナリングされる。アフィンAVMP候補リスト・サイズは2であり、アフィンAMVP候補リストは、以下の順序において、以下の4つのタイプのCPMV候補を使用することによってシグナリングされる。
- 隣接CUのCPMVから外挿された継承アフィンAMVP候補、
- 隣接CUの並進MVを使用して導出された構築アフィンAMVP候補CPMVP、
- 隣接のCUからの並進MV、
- 同一位置にあるCUからの時間的MV、
- ゼロMV。
【0067】
継承アフィンAMVP候補のチェッキング順序は、継承アフィンマージ候補のチェッキング順序と同一である。唯一の差は、AMVP候補について、現在ブロックにあるのと同一の参照ピクチャを有するアフィンCUのみが考慮されることである。継承アフィン動きプレディクタを候補リストに挿入するときに、プルーニング処理が適用されない。
【0068】
構築AMVP候補は、アフィンマージモードと同一の空間的隣接から導出される。アフィンマージ候補構築に行われるのと同一のチェッキング順序が使用される。加えて、隣接ブロックの参照ピクチャインデックスもチェックされる。インター・コーディングされ、現在CUにあるのと同一の参照ピクチャを有するチェッキング順序における最初のブロックが使用される。現在CUが4-パラメータ・アフィンモードによりコーディングされ、mv0およびmv1の両方が利用可能である場合、mv0およびmv1は、1つの候補としてアフィンAMVP候補リストに追加される。現在CUが6-パラメータ・アフィンモードによりコーディングされ、全ての3つのCPMVが利用可能である場合、それらは、1つの候補としてアフィンAMVP候補リストに追加される。そうでなければ、構築AMVP候補が使用可能でないとして設定される。
【0069】
有効な継承アフィンAMVP候補および構築AMVP候補が挿入された後、アフィンAMVPリスト内の候補の数がなおも2未満である場合、利用可能であるときに、現在CUの全ての制御点MVを並進MVとして予測するために、mv0、mv1、およびmv2が順番に追加される。最終的に、それがなおもフルでない場合、アフィンAMVPリストを満たすために、ゼロMVが使用される。
【0070】
正規インター・マージモード
いくつかの実施形態では、以下の5つのタイプの候補を順番に含めることによって、正規インター・マージ候補リストが構築される:
(1)空間的隣接CUからの空間的MVP、
(2)同一位置にあるCUからの時間的MVP、
(3)ファースト・イン・ファースト・アウト(FIFO)テーブルからの履歴ベースMVP、
(4)ペアワイズ平均MVP、および
(5)ゼロMV。
【0071】
マージリストのサイズは、シーケンス・パラメータ・セット・ヘッダにおいてシグナリングされ、マージリストの最大許容サイズは6である。マージモードにおけるCUコードごとに、最良のマージ候補のインデックスは、トランケーテッド・ユーナリ・バイナリゼーション(TU)を使用して符号化される。マージインデックスの第1のビンは、コンテキストによりコーディングされ、他のビンに対してバイパス・コーディングが使用される。
【0072】
マージ候補の各々のカテゴリの導出処理が上記で提供される。いくつかの実施形態では、マージング候補リストの並列導出が、エリアの或るサイズ内の全てのCUに対してサポートされ得る。
【0073】
空間的候補導出
VVCにおける空間的マージ候補の導出は、最初の2つのマージ候補の位置がスワップされることを除き、HEVCにおける導出と同一である。4つのマージ候補の最大値は、
図4Cに表される位置に位置する候補の中から選択される。導出の順序は、B0、A0、B1、A1、およびB2である。位置B0、A0、B1、A1の1つまたは1つよりも多いCUが利用可能でなく(例えば、それが別のスライス若しくはタイルに属することを理由に)、またはイントラ・符号化されるとき、位置B2のみが考慮される。位置A1における候補が追加された後、残りの候補の追加は、冗長性チェックを受け、冗長性チェックは、コーディング効率が改善されるように、同一の動き情報を有する候補がリストから排除されることを保証する。計算的複雑度を削減するために、言及された冗長性チェックにおいて全ての可能な候補ペアが考慮されるわけではない。代わりに、
図4Dにおける矢印とリンクされたペアのみが考慮され、冗長性チェックのために使用される対応する候補が同一の動き情報を有さない場合、当該候補のみがリストに追加される。
図4Dは、空間的マージ候補の冗長性チェックのために考慮される候補ペアを例示する。
【0074】
時間的候補導出
このステップでは、1つの候補のみがリストに追加される。特に、この時間的マージ候補の導出では、スケーリング動きベクトルは、同一位置にある参照ピクチャに属する同一位置にあるCUに基づいて導出される。同一位置にあるCUの導出のために使用されることになる参照ピクチャリストおよび参照インデックスは、スライスヘッダにおいて明示的にシグナリングされる。時間的マージ候補に対するスケーリング動きベクトルは、
図4Eにおいて点線によって例示されるように取得され、POC距離、tbおよびtdを使用して、同一位置にあるCUの動きベクトルからスケーリングされ、tbは、現在ピクチャの参照ピクチャと現在ピクチャとの間のPOC差であると定義され、tdは、同一位置にあるピクチャの参照ピクチャと同一位置にあるピクチャとの間のPOC差であると定義される。時間的マージ候補の参照ピクチャインデックスは、ゼロに等しく設定される。
【0075】
時間的候補についての位置は、
図4Fに表されるように、候補C0およびC1の間で選択される。位置C0におけるCUが利用可能でなく、イントラ・コーディングされ、またはCTUの現在行の外にある場合、位置C1が使用される。そうでなければ、時間的マージ候補の導出において位置C0が使用される。
【0076】
履歴ベースマージ候補導出
履歴ベースMVP(HMVP)マージ候補は、空間的MVPおよび時間動きベクトル予測(TMVP)の後にマージリストに追加される。この方法では、前にコーディングされたブロックの動き情報は、テーブルに記憶され、現在CUについてのMVPとして使用される。複数のHMVP候補を有するテーブルは、符号化/復号処理の間に維持される。新たなCTU行に直面するときにテーブルがリセットされる(空にされる)。非サブブロックのインター符号化されたCUが存在するときはいつでも、関連する動き情報は、新たなHMVP候補としてテーブルの最後のエントリに追加される。
【0077】
HMVPテーブル・サイズSは、6に設定され得、それは、最大で5つの履歴ベースMVP(HMVP)候補がテーブルに追加され得ることを示す。新たな動き候補をテーブルに挿入するとき、制約されたファースト・イン・ファースト・アウト(FIFO)ルールが利用され、テーブル内で同一のHMVPが存在するかどうかを発見するために、冗長性チェックが最初に適用される。発見される場合、同一のHMVPがテーブルから除去され、その後の全てのHMVP候補が前に移動され、同一のHMVPは、テーブルの最後のエントリに挿入される。
【0078】
HMVP候補は、マージ候補リスト構築処理において使用される。テーブル内の最新のいくつかのHMVP候補は、順番にチェックされ、TMVP候補の後に候補リストに挿入される。冗長性チェックは空間的または時間的マージ候補へのHMVP候補に対して適用される。
【0079】
冗長性チェックのための演算の回数を削減するために、以下の簡易化が導入される。最初に、テーブル内の最後の2つのエントリは、A1およびB1空間的候補のそれぞれに対して冗長性がチェックされる。2番目に、利用可能なマージ候補の総数が最大で許容されたマージ候補マイナス1に到達すると、HMVPからのマージ候補リスト構築処理が完結する。
【0080】
ペアワイズ平均マージ候補導出
最初の2つのマージ候補を使用して、既存のマージ候補リスト内の候補の予め定義されたペアを平均化することによって、ペアワイズ平均候補が生成される。第1のマージ候補は、p0Candとして定義され、第2のマージ候補は、p1Candとしてそれぞれ定義され得る。平均化動きベクトルは、参照リストごとにp0Candおよびp1Candの動きベクトルの可用性に従って別個に計算される。1つのリスト内の両方の動きベクトルが利用可能である場合、それらの2つの動きベクトルが異なる参照ピクチャを指し示し、その参照ピクチャがp0Candの1つに設定されるときでさえ、それらは平均化され、1つの動きベクトルのみが利用可能である場合、1つを直接使用し、動きベクトルが利用可能でない場合、このリストを無効に維持する。また、p0Candおよびp1Candのハーフ・ペル補間フィルタ・インデックスが異なる場合、それは0に設定される。
【0081】
ペアワイズ平均マージ候補が追加された後にマージリストがフルでないとき、最大マージ候補数に直面するまで、ゼロMVPがマージリストの最後に挿入される。
【0082】
テンプレート・マッチングによるマージ候補の適応的再順序付け(ARMC)
ARMCとして命名された、再順序付け方法は、正規マージモード、テンプレート・マッチング(TM)マージモード、およびアフィンマージモード(SbTMVP候補を除外する)に適用され、SbTMVPは、サブブロックベース時間動きベクトル予測候補を表す。TMマージモードに対し、精緻化処理の前にマージ候補が再順序付けされる。
【0083】
マージ候補リストが構築された後、マージ候補は、いくつかのサブグループに分割される。サブグループ・サイズは、5に設定される。各々のサブグループにおけるマージ候補は、テンプレート・マッチングに基づいて、コスト値による昇順で再順序付けされる。簡易化のために、第1のサブグループではなく最後のサブグループにおけるマージ候補は、再順序付けされない。
【0084】
テンプレート・マッチング・コストは、現在ブロックのテンプレートのサンプルとそれらの対応する参照サンプルとの間の絶対差合計(SAD)によって測定される。テンプレートは、現在ブロックに隣接の再構築サンプルのセットを含む。テンプレートの参照サンプルは、現在ブロックの同一の動き情報によって特定される。
【0085】
マージ候補が双方向予測を利用するとき、マージ候補のテンプレートの参照サンプルも、
図19に示されるような双予測によって生成される。
【0086】
Wsub*Hsubに等しいサブブロックサイズを有するサブブロックベース・マージ候補に対し、上のテンプレートは、Wsub×1のサイズを有するいくつかのサブ・テンプレートを含み、左のテンプレートは、1×Hsubのサイズを有するいくつかのサブ・テンプレートを含む。Wsubは、サブブロックの幅であり、Hsubは、サブブロックの高さである。
図20に示されるように、現在ブロックの最初の行および最初の列内のサブブロックの動き情報は、各々のサブ・テンプレートの参照サンプルを導出するために使用される。
【0087】
現在のビデオ標準規格VVCおよびAVSについて、隣接ブロックのみが、継承候補および構築候補それぞれについて
図6および
図7に示されるように、現在ブロックについてのアフィンマージ候補を導出するために使用される。マージ候補の多様性を増大させ、空間的相関関係をさらに利用するために、隣接領域から非隣接領域に隣接ブロックのカバレッジを拡張させることが率直である。
【0088】
現在のビデオ標準規格VVCおよびAVSでは、各々のアフィン継承候補は、アフィン動き情報により1つの隣接ブロックから導出される。一方で、各々のアフィン構築候補は、並進動き情報により2つまたは3つの隣接ブロックから導出される。空間的相関関係をさらに利用するために、アフィン動きおよび並進動きを組み合わせた新たな候補導出方法が調査され得る。
【0089】
アフィンマージモードについて提案された候補導出方法は、アフィンAMVPモードおよび正規マージモードなど、他のコーディング・モードに拡張され得る。
【0090】
本開示では、アフィンマージモードに対する候補導出処理は、隣接ブロックだけでなく、非隣接ブロックをも使用することによって拡張され得る。詳細な方法は、アフィンマージ候補プルーニング、アフィン継承マージ候補に対する非隣接ベース導出処理、アフィン構築マージ候補に対する非隣接ベース導出処理、アフィン構築マージ候補に対する継承ベース導出方法、アフィン構築マージ候補に対するHMVPベース導出方法、並びにアフィンAMVPモードおよび正規マージモードに対する候補導出方法を含む、以下の態様において要約され得る。
【0091】
アフィンマージ候補プルーニング
典型的なビデオ符号化標準規格におけるアフィンマージ候補リストが通常、制限されたサイズを有するように、候補プルーニングは、冗長な1つを除去するために必須の処理である。アフィンマージ継承候補および構築候補の両方に対し、このプルーニング処理が必要である。導入部において説明されるように、現在ブロックのCPMVは、アフィン動き補償のために直接使用されない。代わりに、CPMVは、現在ブロック内の各々のサブブロックの位置において並進MVに転換される必要がある。転換処理は、以下に示されるように、一般的なアフィンモデルを遵守することによって実行される。
【数3】
(a,b)は、デルタ並進パラメータであり、(c,d)は、水平方向についてのデルタ・ズームおよび回転パラメータであり、(e,f)は、垂直方向についてのデルタ・ズームおよび回転パラメータであり、(x,y)は、現在ブロックの左最上隅に対するサブブロックの旋回位置(例えば、中心または左最上隅)の水平および垂直距離であり(例えば、
図5に示される座標(x,y))、(v
x,v
y)は、サブブロックのターゲット並進MVである。
【0092】
6-パラメータ・アフィンモデルに対し、V0、V1、およびV2と称される、3つのCPMVが利用可能である。次いで、6つのモデルパラメータa、b、c、d、e、およびfは、
【数4】
として計算され得る。
【0093】
4-パラメータ・アフィンモデルに対し、V0およびV1と称される、左最上隅CPMVおよび右最上隅CPMVが利用可能である場合、a、b、c、d、e、およびfの6つのパラメータは、
【数5】
として計算され得る。
【0094】
4-パラメータ・アフィンモデルに対し、V0およびV2と称される、左最上隅CPMVおよび左下隅CPMVが利用可能である場合、a、b、c、d、e、およびfの6つのパラメータは、
【数6】
として計算され得る。
【0095】
上記の式(4)、(5)、および(6)では、wおよびhは、現在ブロックの幅および高さそれぞれを表す。
【0096】
CPMVの2つのマージ候補セットが冗長性チェックのために比較されるとき、6アフィンモデルパラメータの類似性をチェックすることが提案される。したがって、候補プルーニング処理が2つのステップにおいて実行され得る。
【0097】
ステップ1では、CPMVの2つの候補セットを仮定して、候補セットごとの対応するアフィンモデルパラメータが導出される。より具体的に、CPMVの2つの候補セットは、アフィンモデルパラメータの2つのセット、例えば、(a1,b1,c1,d1,e1,f1)および(a2,b2,c2,d2,e2,f2)によって表され得る。
【0098】
ステップ2では、1つまたは複数の予め定義された閾値に基づいて、アフィンモデルパラメータの2つのセットの間で類似性チェックが実行される。1つの実施形態では、(a1-a2)、(b1-b2)、(c1-c2)、(d1-d2)、(e1-e2)、および(f1-f2)の絶対値が全て1の値などの正の閾値を下回るとき、2つの候補が類似であると考えられ、それらの1つは、プルーニング/除去され得、マージ候補リストに置かれ得ない。
【0099】
いくつかの実施形態では、ステップ1の分割または右シフト演算は、CPMVプルーニング処理における計算を簡易化するために除去され得る。
【0100】
特に、c、d、e、およびfのモデルパラメータは、現在ブロックの幅wおよび高さhによって分割されることなく計算され得る。例えば、例として上記の式(4)を取り、c’、d’、e’、およびf’の近似したモデルパラメータは、以下の式(7)として計算され得る。
【数7】
【0101】
2つのCPMVのみが利用可能であるケースでは、モデルパラメータの一部は、現在ブロックの幅または高さに依存する、モデルパラメータの他の部分から導出される。このケースでは、モデルパラメータは、幅および高さの影響を考慮するように転換され得る。例えば、式(5)のケースでは、c’、d’、e’、およびf’の近似したモデルパラメータは、以下の式(8)に基づいて計算され得る。式(6)のケースでは、c’、d’、e’、およびf’の近似したモデルパラメータは、以下の式(9)に基づいて計算され得る。
【数8】
【数9】
c’、d’、e’、およびf’の近似したモデルパラメータが上記のステップ1において計算されるとき、上記のステップ2における類似性チェックのために必要な絶対値の計算は、それに従って変更され得る:(a
1-a
2)、(b
1-b
2)、(c’
1-c’
2)、(d’
1-d’
2)、(e’
1-e’
2)、および(f’
1-f’
2)。
【0102】
上記のステップ2では、CPMVの2つの候補セットの間の類似性を評価するために閾値が必要である。閾値を定義する複数の方法が存在し得る。1つの実施形態では、閾値は、比較可能パラメータごとに定義され得る。表1は、比較可能モデルパラメータごとに定義された閾値を示す、この実施形態における1つの実施例である。別の実施形態では、閾値は、現在符号化ブロックのサイズを考慮することによって定義され得る。表2は、現在符号化ブロックのサイズによって定義された閾値を示す、この実施形態における1つの実施例である。
【0103】
【0104】
【0105】
別の実施形態では、閾値は、現在ブロックの重みまたは高さを考慮することによって定義され得る。表3および表4は、この実施形態における実施例である。表3は、現在符号化ブロックの幅によって定義された閾値を示し、表4は、現在符号化ブロックの高さによって定義された閾値を示す。
【0106】
【0107】
【0108】
別の実施形態では、固定値のグループとして閾値が定義され得る。別の実施形態では、閾値は、上記の実施形態のいずれかの組み合わせによって定義され得る。1つの実施例では、閾値は、異なるパラメータ並びに現在ブロックの重みおよび高さを考慮することによって定義され得る。表5は、現在符号化ブロックの高さによって定義された閾値を示す、この実施形態における1つの実施例である。いずれかの上記で提案された実施形態では、比較可能パラメータは、必要である場合、式(4)~式(9)からのいずれかの式において定義されたいずれかのパラメータを表し得る。
【0109】
【0110】
候補冗長性チェックのための転換アフィンモデルパラメータを使用する利点は、それが異なるアフィンモデル・タイプを有する候補に対する統一類似性チェック処理を生じさせ、例えば、1つのマージ候補は、3つのCPMVを有する6-パラメータ・アフィンモデルをユーザし得ると共に別の候補は、2つのCPMVを有する4-パラメータ・アフィンモデルを使用し得、それは、各々のサブブロックにおけるターゲットMVを導出するときにマージ候補における各々のCPMVの異なる影響を考慮し、それは、現在ブロックの幅および高さに関連する2つのアフィンマージ候補の類似性有意性を提供することである。
【0111】
アフィン継承マージ候補に対する非隣接ベース導出処理
継承マージ候補に対し、非隣接ベース導出処理は、3つのステップにおいて実行され得る。ステップ1は、候補スキャニングのためである。ステップ2は、CPMV投影のためである。ステップ3は、候補プルーニングのためである。
【0112】
ステップ1では、非隣接ブロックは、以下の方法によってスキャンおよび選択される。
【0113】
スキャニング領域および距離
いくつかの実施例では、非隣接ブロックは、現在符号化ブロックの左のエリアおよび上のエリアからスキャンされ得る。スキャニング距離は、スキャニング位置から現在符号化ブロックの左側または最上側までの符号化ブロックの数として定義され得る。
【0114】
図8に示されるように、現在符号化ブロックの左または上のいずれかの上で、非隣接ブロックの複数のラインがスキャンされ得る。
図8に示される距離は、各々の候補位置から現在ブロックの左側または最上側までの符号化ブロックの数を表す。例えば、現在ブロックの左側上の「距離2(D2)」を有するエリアは、このエリア内に位置する候補隣接ブロックが現在ブロックから2ブロック離れていることを示す。類似のインジケーションは、異なる距離を有する他のスキャニング領域に適用され得る。
【0115】
1つまたは複数の実施形態では、各々の距離における非隣接ブロックは、
図13Aに示されるように、現在符号化ブロックと同一のブロックサイズを有し得る。
図13Aに示されるように、左側上の非隣接ブロック1301および上側上の非隣接ブロック1302は、現在ブロック1303と同一のサイズを有する。いくつかの実施形態では、各々の距離における非隣接ブロックは、
図13Bに示されるように、現在符号化ブロックとは異なるブロックサイズを有し得る。隣接ブロック1304は、現在ブロック1303に隣接ブロックである。
図13Bに示されるように、左側上の非隣接ブロック1305および上側上の非隣接ブロック1306は、現在ブロック1307と同一のサイズを有する。隣接ブロック1308は、現在ブロック1307に隣接ブロックである。
【0116】
各々の距離における非隣接ブロックが現在符号化ブロックと同一のブロックサイズを有するとき、ブロックサイズの値は、画像内の各々の異なるエリアにおける区分粒度に従って適応的に変化されることに留意されよう。各々の距離における非隣接ブロックが現在符号化ブロックとは異なるブロックサイズを有するとき、ブロックサイズの値は、4×4、8×8、または16×16など、一定の値として予め定義され得る。
図10および
図12に示される4×4の非隣接動きフィールドは、このケースにおける実施例であり、動きフィールドは、それらに限定されないが、サブブロックの特殊ケースとして考えられ得る。
【0117】
同様に、
図11に示される非隣接符号化ブロックも同様に、異なるサイズを有し得る。1つの実施例では、非隣接符号化ブロックは、適応的に変更される、現在符号化ブロックとしてのサイズを有し得る。別の実施例では、非隣接符号化ブロックは、4×4、8×8、または16×16など、固定値を有する予め定義されたサイズを有し得る。
【0118】
定義されたスキャニング距離に基づいて、現在符号化クロックの左または上のいずれかの上のスキャニング領域の合計サイズは、構成可能な距離値によって決定され得る。1つまたは複数の実施形態では、左側および上側上の最大スキャニング距離は、同一の値または異なる値を使用し得る。
図13は、左側および上側の両方の上の最大距離が2の同一の値を共有する実施例を示す。最大スキャニング距離値(複数可)は、エンコーダ側によって決定され得、ビットストリームにおいてシグナリングされ得る。代わりに、最大スキャニング距離値(複数可)は、2または4の値など、固定値(複数可)として予め定義され得る。最大スキャニング距離が4の値として予め定義されるとき、それは、候補リストがフルであるときにスキャニング処理が完結されること、またはどちらが先に来ても、最大距離4を有する全ての非隣接ブロックがスキャンされたことを示す。
【0119】
1つまたは複数の実施形態では、特定の距離における各々のスキャニング領域内で、開始および終了隣接ブロックは、位置依存であり得る。
【0120】
いくつかの実施形態では、左側スキャニング領域に対し、開始隣接ブロックは、より短い距離を有する隣接するスキャニング領域の開始隣接ブロックの隣接する左下ブロックであり得る。例えば、
図8に示されるように、現在ブロックの左側上の「距離2」スキャニング領域の開始隣接ブロックは、「距離1(D1)」スキャニング領域の開始隣接ブロックの隣接する左下隣接ブロックである。
図8では、D1、D2、D3はそれぞれ、距離1、距離2、および距離3を示す。終了隣接ブロックは、より短い距離を有する上のスキャニング領域の終了隣接ブロックの隣接する左ブロックであり得る。例えば、
図8に示されるように、現在ブロックの左側上の「距離2」スキャニング領域の終了隣接ブロックは、現在ブロックの上の「距離1」スキャニング領域の終了隣接ブロックの隣接する左隣接ブロックである。
【0121】
同様に、上側スキャニング領域に対し、開始隣接ブロックは、より短い距離を有する隣接するスキャニング領域の開始隣接ブロックの隣接する右最上ブロックであり得る。終了隣接ブロックは、より短い距離を有する隣接するスキャニング領域の終了隣接ブロックの隣接する左最上ブロックであり得る。
【0122】
スキャニング順序
隣接ブロックが非隣接領域内でスキャンされるとき、スキャン隣接ブロックの選択を判定するように、或る順序または/およびルールが遵守され得る。
【0123】
いくつかの実施形態では、左のエリアが最初にスキャンされ得、次いで、上のエリアをスキャンすることが続く。
図8に示されるように、左側上の非隣接領域の3つのライン(例えば、距離1(D1)から距離3(D3)までの)が最初にスキャンされ得、次いで、現在ブロックの上の非隣接領域の3つのラインをスキャンすることが続く。
【0124】
いくつかの実施形態では、左のエリアおよび上のエリアが交互にスキャンされ得る。例えば、
図8に示されるように、「距離1」を有する左のスキャニング領域が最初にスキャンされ、次いで、「距離1」を有する上のエリアをスキャンすることが続く。
【0125】
同一の側上に位置するスキャニング領域に対し(例えば、左または上のエリア)、スキャニング順序は、短い距離を有するエリアから長い距離を有するエリアまでである。この順序は、スキャニング順序の他の実施形態と柔軟に組み合わされ得る。例えば、左および上のエリアが交互にスキャンされ得、同一の側のエリアに対する順序は、短い距離から長い距離までであるようにスケジュールされる。
【0126】
特定の距離における各々のスキャニング領域内で、スキャニング順序が定義され得る。1つの実施形態では、左のスキャニング領域に対し、スキャニングは、下の隣接ブロックから最上の隣接ブロックへと開始され得る。上のスキャニング領域に対し、スキャニングは、右のブロックから左のブロックへと開始され得る。
【0127】
スキャニング完結
継承マージ候補に対し、アフィンモードによりコーディングされた隣接ブロックは、適格とされた候補として定義される。いくつかの実施形態では、スキャニング処理は、反復して実行され得る。例えば、特定の距離における特定のエリア内で実行されるスキャニングは、最初のX個の適格とされた候補が識別されるときのインスタンスにおいて停止され得、Xは、予め定義された正の値である。例えば、
図8に示されるように、距離1を有する左のスキャニング領域内でのスキャニングは、最初の1つまたは複数の適格とされた候補が識別されるときに停止され得る。次いで、予め定義されたスキャニング順序/ルールによって規制される、別のスキャニング領域をターゲットすることによって、スキャニング処理の次の反復が開始される。
【0128】
1つまたは複数の実施形態では、Xは、距離ごとに定義され得る。例えば、各々の距離において、Xは、1に設定され、それは、最初の適格とされた候補が発見され、スキャニング処理が同一のエリアの異なる距離または異なるエリアの同一若しくは異なる距離から再開される場合、スキャニングが距離ごとに完結されることを意味する。Xの値は、異なる距離についての同一の値または異なる値として設定され得ることに留意されよう。適格とされた候補の最大数がエリアの全ての許容可能な距離(例えば、最大距離によって規制された)から発見される場合、1つのエリアに対するスキャニング処理が完全に完結される。
【0129】
別の実施形態では、Xは、エリアに対して定義され得る。例えば、Xは、3に設定され、それは、最初の3つの適格とされた候補が発見され、スキャニング処理が別のエリアの同一または異なる距離から再開される場合、スキャニングがエリア全体(例えば、現在ブロックの左または上のエリア)に対して完結されることを意味する。Xの値は、異なるエリアについての同一の値または異なる値として設定され得ることに留意されよう。適格とされた候補の最大数が全てのエリアから発見される場合、スキャニング処理が全体的に完結される。
【0130】
Xの値は、距離およびエリアの両方に対して定義され得る。例えば、エリアごとに(例えば、現在ブロックの左または上のエリア)、Xは、3に設定され、距離ごとに、Xは、1に設定される。Xの値は、異なるエリアおよび距離についての同一の値または異なる値として設定され得る。
【0131】
いくつかの実施形態では、スキャニング処理は、連続して実行され得る。例えば、特定の距離における特定のエリア内で実行されるスキャニングは、全てのカバーされた隣接ブロックがスキャンされ、より適格とされた候補が識別されず、または候補の最大許容数に到達するときのインスタンスにおいて停止され得る。
【0132】
候補スキャニング処理の間、各々の候補の非隣接ブロックは、上記で提案されたスキャニング方法を遵守することによって決定およびスキャンされる。より容易な実装のために、各々の候補の非隣接ブロックは、特定のスキャニング位置によって示され得、および特定され得る。特定のスキャニング領域および距離が上記で提案された方法を遵守することによって決定されると、スキャニング位置は、以下の方法に基づいて、それに従って判定され得る。
【0133】
1つの方法では、左下および右最上の位置は、
図15Aに示されるように、上および左の非隣接ブロックに対して使用される。
【0134】
別の方法では、右下の位置は、
図15Bに示されるように、上および左の両方の非隣接ブロックに対して使用される。
【0135】
別の方法では、左下の位置は、
図15Cに示されるように、上および左の両方の非隣接ブロックに対して使用される。
【0136】
別の方法では、右最上の位置は、
図15Dに示されるように、上および左の両方の非隣接ブロックに対して使用される。
【0137】
より容易な例示のために、
図15A~15Dでは、各々の非隣接ブロックは、現在ブロックと同一のブロックサイズを有すると想定される。汎用性を失うことなく、この例示は、異なるブロックサイズを有する非隣接ブロックに容易に拡張され得る。
【0138】
さらに、ステップ2では、現在のAVSおよびVVC標準規格において使用されるのとCPMV投影の同一の処理が利用され得る。このCPMV投影処理では、現在ブロックは、同一のアフィンモデルを選択された隣接ブロックと共有し、次いで、2つまたは3つの隅の画素の座標(例えば、現在ブロックが4-パラメータ・モデルを使用する場合、2つの座標(左最上の画素/サンプル位置および右最上の画素/サンプル位置)が使用され、現在ブロックが6-パラメータ・モデルを使用する場合、3つの座標(左最上の画素/サンプル位置、右最上の画素/サンプル位置、および左下の画素/サンプル位置)が使用される)が式(1)または(2)にプラグ・インされ、それは、隣接ブロックが、2つまたは3つのCPMVを生成するように、4-パラメータまたは6-パラメータ・アフィンモデルにより符号化されるかどうかに依存すると想定される。
【0139】
ステップ3では、ステップ1において識別され、ステップ2において転換されたいずれかの適格とされた候補は、マージ候補リスト内に既にある全ての既存の候補に対して類似性チェックを受け得る。類似性チェックの詳細は、上記の「アフィンマージ候補プルーニング」のセクションにおいて既に説明されている。新たに適格とされた候補が候補リスト内のいずれかの既存の候補と類似すると発見される場合、この新たに適格とされた候補は、除去/プルーニングされる。
【0140】
アフィン構築マージ候補に対する非隣接ベース導出処理
継承マージ候補を導出するケースでは、1つの隣接ブロックが一度に識別され、この単一の隣接ブロックは、アフィンモードで符号化される必要があり、2つまたは3つのCPMVを包含し得る。構築マージ候補を導出するケースでは、2つまたは3つの隣接ブロックが一度に識別され、各々の識別された隣接ブロックは、アフィンモードで符号化される必要がなく、1つの並進MVのみがこのブロックから取り出される。
【0141】
図9は、非隣接ブロックを使用することによって、構築アフィンマージ候補が導出され得る実施例を提示する。
図9では、A、B、およびCは、3つの非隣接ブロックの地理的位置である。仮想符号化ブロックは、左最上隅としてAの位置、右最上隅としてBの位置、および左下隅としてCの位置を使用して形成される。アフィン符号化ブロックとして仮想CUを考える場合、A’、B’、およびC’の位置におけるMVは、式(3)を遵守することによって導出され得、モデルパラメータ(a,b,c,d,e,f)は、A、B、およびCの位置における並進MVによって計算され得る。導出されると、A’、B’、およびC’の位置におけるMVは、現在ブロックについての3つのCPMVとして使用され得、構築アフィンマージ候補を生成する既存の処理(AVSおよびVVC標準規格において使用される1つ)が使用され得る。
【0142】
構築マージ候補に対し、非隣接ベース導出処理は、5つのステップにおいて実行され得る。非隣接ベース導出処理は、エンコーダまたはデコーダなどの装置において、5つのステップにおいて実行され得る。ステップ1は、候補スキャニングのためである。ステップ2は、アフィンモデル決定のためである。ステップ3は、CPMV投影のためである。ステップ4は、候補生成のためである。また、ステップ5は、候補プルーニングのためである。ステップ1では、非隣接ブロックは、以下の方法によってスキャンおよび選択され得る。
【0143】
スキャニング領域および距離
いくつかの実施形態では、矩形符号化ブロックを維持するために、スキャニング処理は、2つの非隣接ブロックに対してのみ実行される。第3の非隣接ブロックは、第1のおよび第2の非隣接ブロックの水平および垂直位置に依存し得る。
【0144】
いくつかの実施形態では、
図9に示されるように、スキャニング処理は、BおよびCの位置に対してのみ実行される。Aの位置は、Cの水平位置およびBの垂直位置によって一意に決定され得る。
【0145】
有効な仮想符号化ブロックを形成するために、Aの位置は、少なくとも有効である必要があり得る。位置Aの有効性は、位置Aにおける動き情報が利用可能であるか否かとして定義され得る。1つの実施形態では、仮想符号化ブロックを形成するために動き情報が利用可能であるように、位置Aに位置する符号化ブロックは、インター・モードにおいて符号化される必要があり得る。
【0146】
いくつかの実施形態では、スキャニング領域および距離は、特定のスキャニング方向に従って定義され得る。
【0147】
いくつかの実施形態では、スキャニング方向は、現在ブロックの側に垂直であり得る。1つの実施例が
図10に示され、スキャニング領域は、現在ブロックの左または上の連続した動きフィールドの1つのラインとして定義される。スキャニング距離は、スキャニング位置から現在ブロックの側までの動きフィールドの数として定義される。動きフィールドのサイズは、適用可能なビデオ符号化標準規格の最大粒度に依存し得ることに留意されよう。
図10に示される実施例では、動きフィールドのサイズは、現在のVVC標準規格と整合され、4×4に設定されると想定される。
【0148】
いくつかの実施形態では、スキャニング方向は、現在ブロックの側に平行であり得る。1つの実施例が
図11に示され、
図11では、スキャニング領域は、現在ブロックの左または上の連続した符号化ブロックの1つのラインとして定義される。
【0149】
いくつかの実施形態では、スキャニング方向は、現在ブロックの側への垂直および水平スキャニングの組み合わせであり得る。1つの実施例が
図12に示される。
図12に示されるように、スキャニング方向はまた、並列および対角線の組み合わせであり得る。位置Bにおけるスキャニングは、左から右に、次いで、対角線方向において左および上のブロックへと開始する。位置Bにおけるスキャニングは、
図12に示されるように繰り返す。同様に、位置Cにおけるスキャニングは、最上から下に、次いで、対角線方向において左および上のブロックへと開始する。位置Cにおけるスキャニングは、
図12に示されるように繰り返す。
【0150】
スキャニング順序
いくつかの実施形態では、スキャニング順序は、現在符号化ブロックへのより短い距離を有する位置からより長い距離を有する位置までとして定義され得る。この順序は、垂直スキャニングのケースに適用され得る。
【0151】
いくつかの実施形態では、スキャニング順序は、固定パターンとして定義され得る。この固定パターン・スキャニング順序は、類似の距離を有する候補位置に対して使用され得る。1つの実施例は、水平スキャニングのケースである。1つの実施例では、
図11に示される実施例と同様に、スキャニング順序は、左のスキャニング領域に対して最上-下方向として定義され得、上のスキャニング領域に対して左から右への方向として定義され得る。
【0152】
組み合わされたスキャニング方法のケースについて、
図12に示される実施例と同様に、スキャニング順序は、固定パターンおよび距離依存の組み合わせであり得る。
【0153】
スキャニング完結
構築マージ候補に対し、適格とされた候補は、並進MVのみが必要になるので、アフィン・符号化される必要がない。
【0154】
必要とされる候補の数に応じて、スキャニング処理は、最初のX個の適格とされた候補が識別されるときに完結され得、Xは、正の値である。
【0155】
図9に示されるように、仮想符号化ブロックを形成するために、A、B、およびCと命名される3つの隅が必要になる。より容易な実装のために、ステップ1におけるスキャニング処理は、隅BおよびCに位置する非隣接ブロックを識別するためにのみ実行され得ると共に、Aの座標は、Cの水平座標およびBの垂直座標を取ることによって正確に決定され得る。このようにして、形成された仮想符号化ブロックは、矩形であるように制約される。BまたはC点のいずれかが利用可能でない、例えば、境界の外であり、またはB若しくはCに対応する非隣接ブロックにおける動き情報が利用可能でない(例えば、ブロックがイントラ・モード若しくはスクリーン-コンテンツ・モードケースにおいて符号化される)ケースでは、Cの水平座標または垂直座標は、現在ブロックの左最上の点の水平座標または垂直座標それぞれとして定義され得る。
【0156】
別の実施形態では、隅Bおよび/または隅Cがステップ1におけるスキャニング処理から最初に決定されるとき、隅Bおよび/またはCに位置する非隣接ブロックがそれに従って識別され得る。2番目に、隅Bおよび/またはCの位置(複数可)は、各々の非隣接ブロックの質量中心など、対応する非隣接ブロック内の旋回点にリセットされ得る。例えば、質量中心は、各々の隣接ブロックの幾何学的中心として定義され得る。
【0157】
図9に示されるように、スキャニング処理が隅Bおよび隅Cに対して実行されるとき、処理は、共同してまたは独立して実行され得る。独立したスキャニングの実施例では、前に提案されたスキャニング方法は、隅BおよびCに対して別個に適用され得る。共同スキャニングの実施例では、以下のように異なる方法が存在し得る。
【0158】
1つの実施形態では、ペアワイズ・スキャニングが実行され得る。ペアワイズ・スキャニングの1つの実施例では、隅BおよびCについての候補位置は、同時に前進する。より容易な例示のために、および汎用性を失うことなく、
図17Bを例として採用することになる。
図17Bに示されるように、隅Bのスキャニングは、現在ブロックの上側に位置する最初の非隣接ブロックから、下-上方向において開始する。隅Cのスキャニングは、現在ブロックの左側に位置する最初の非隣接ブロックから、右-左方向において開始する。したがって、
図17Bに示される実施例では、ペアワイズ・スキャニングは、BおよびCの両方の候補位置がステップ・サイズの1つの単位により前進するとして定義され得、ステップ・サイズの1つの単位は、隅Bについての現在符号化ブロックの高さとして定義され、隅Cについての現在符号化ブロックの幅として定義される。
【0159】
別の実施形態では、代替的なスキャニングが実行され得る。代替的なスキャニングの1つの実施例では、隅BおよびCについての候補位置は、交互に前進する。1つのステップにおいて、BまたはCの位置のみが前進し得ると共に、CまたはBの位置が変化しない。1つの実施例では、隅Bの位置は、最初の非隣接ブロックから最大数の非隣接ブロックにおける距離まで漸進的に増大し得ると共に、隅Cの位置は、最初の非隣接ブロックに残る。次のラウンドでは、隅Cの位置は、2つ目の非隣接ブロックに移動し、隅Bの位置は、最初から最大値まで再度横断する。ラウンドは、全ての組み合わせが横断するまで続く。
【0160】
統一を目的として、継承マージ候補を導出するために提案された、スキャニング領域および距離、スキャニング順序、並びにスキャニング完結を定義する方法は、構築マージ候補を導出するために完全にまたは部分的に再使用され得る。1つまたは複数の実施形態では、それらに限定されないが、スキャニング領域および距離、スキャニング順序、並びにスキャニング完結を含む、継承マージ候補スキャニングのために定義された同一の方法は、構築マージ候補スキャニングのために完全に再使用され得る。
【0161】
いくつかの実施形態では、継承マージ候補スキャニングのために定義された同一の方法は、構築マージ候補スキャニングのために部分的に再使用され得る。
図16は、このケースにおける実施例を示す。
図16では、各々の非隣接ブロックのブロックサイズは、現在ブロックと同一であり、それは、継承候補スキャニングとして同様に定義されるが、各々の距離におけるスキャニングが1つのブロックでのみであるとして制限されるので、全体的な処理は、簡易化されたバージョンである。
【0162】
図17Aおよび
図17Bは、このケースにおける別の実施例を表す。
図17Aおよび
図17Bでは、非隣接継承マージ候補および非隣接構築マージ候補の両方は、現在符号化ブロックと同一のブロックサイズにより定義されると共に、スキャニング順序、スキャニング領域、およびスキャニング完結条件は、異なって定義され得る。
【0163】
図17Aでは、左側の隣接しない近傍についての最大距離は、4つの符号化ブロックであると共に、上側の隣接しない近傍についての最大距離は、5つの符号化ブロックである。また、各々の距離において、スキャニング方向は、左側に対して下-上、上側に対して右-左である。
図17Bでは、隣接しない近傍の最大距離は、左側および上側の両方に対して4である。加えて、各々の距離において1つのブロックのみが存在することを理由に、特定の距離におけるスキャニングは利用可能でない。
図17Aでは、M個の適格とされた候補が識別される場合、各々の距離内のスキャニング演算が完結され得る。Mの値は、1の値またはいずれかの他の正の整数などの予め定義された固定値、或いはエンコーダによって決定されたシグナリングされた値、またはエンコーダ若しくはデコーダにおける構成可能な値であり得る。1つの実施例では、Mの値は、マージ候補リスト・サイズと同一であり得る。
【0164】
図17Aおよび
図17Bでは、N個の適格とされた候補が識別される場合、異なる距離におけるスキャニング演算が完結され得る。Nの値は、1の値またはいずれかの他の正の整数などの予め定義された固定値、或いはエンコーダによって決定されたシグナリングされた値、またはエンコーダ若しくはデコーダにおける構成可能な値であり得る。1つの実施例では、Nの値は、マージ候補リスト・サイズと同一であり得る。別の実施例では、Nの値は、Mの値と同一であり得る。
【0165】
図17Aおよび17Bの両方では、現在ブロックにより近い距離を有する隣接しない空間的隣接が優先付けられ得、それは、距離iを有する隣接しない空間的隣接は、距離i+1を有する隣接よりも前にスキャンまたはチェックされることを示し、iは、特定の距離を表す負でない整数であり得る。
【0166】
特定の距離において、最大で2つの隣接しない空間的隣接が使用され、それは、利用可能である場合、現在ブロックの1つの側、例えば、左および上からの最大で1つの隣接が継承または構築候補導出のため選択されることを意味する。
図17Aに示されるように、左側および上側の隣接のチェッキング順序は、下-上および右-左のそれぞれである。
図17Bについて、このルールも適用され得、差は、いずれかの特定の距離において、現在ブロックの側ごとに1つのオプションのみが存在することであり得る。
【0167】
構築候補に対し、
図17Bに示されるように、1つの左および上の隣接しない空間的隣接の位置が最初に独立して決定される。その後、左および上の隣接しない近傍と共に矩形仮想ブロックを囲むことができる、左最上の隣接の位置が、それに従って決定され得る。次いで、
図9に示されるように、3つの隣接しない近傍の動き情報は、対応する構築候補を生成するために最終的に現在CUに投影される、仮想ブロックの左最上(A)、右最上(B)、および左下(C)においてCPMVを形成するために使用される。
【0168】
ステップ2では、ステップ1の後の選択された候補の位置における並進MVが評価され、適切なアフィンモデルが決定され得る、より容易な例示のために、および汎用性を失うことなく、
図9が再度例として使用される。
【0169】
ハードウェア制約、実装の複雑度、および異なる参照インデックスなどの因子に起因して、十分な数の候補が識別される前にスキャニング処理が完結され得る。例えば、ステップ1の後の選択された候補の1つ以上における動きフィールドの動き情報が利用可能であり得ない。
【0170】
全ての3つの候補の動き情報が利用可能である場合、対応する仮想符号化ブロックは、6-パラメータ・アフィンモデルを表す。3つの候補の1つの動き情報が利用可能でない場合、対応する仮想符号化ブロックは、4-パラメータ・アフィンモデルを表す。3つの候補の1つよりも多い動き情報が利用可能でない場合、対応する仮想符号化ブロックは、有効なアフィンモデルを表すために使用不可であり得る。
【0171】
いくつかの実施形態では、仮想符号化ブロックの左最上隅、例えば、
図9における隅Aの動き情報が利用可能でない場合、または右最上隅、例えば、
図9における隅B、および左下隅、例えば、
図9における隅Cの両方における動き情報が利用可能でない場合、仮想ブロックは、無効であるとして設定され得、有効なモデルを表すために使用不可であり得、次いで、ステップ3およびステップ4は、現在の反復の間にスキップされ得る。
【0172】
いくつかの実施形態では、両方が利用可能でないわけではないが、右最上隅、例えば、
図9における隅B、または左下隅、例えば、
図9における隅Cのいずれかが利用可能でない場合、仮想ブロックは有効な4-パラメータ・アフィンモデルを表し得る。
【0173】
ステップ3では、仮想符号化ブロックが有効なアフィンモデルを表すことが可能である場合、継承マージ候補に対して使用される同一の投影処理が使用され得る。
【0174】
1つまたは複数の実施形態では、継承マージ候補に対して使用される同一の投影処理が使用され得る。このケースでは、ステップ2からの仮想符号化ブロックによって表される4-パラメータ・モデルは、現在ブロックに対して4-パラメータ・モデルに投影され、ステップ2からの仮想符号化ブロックによって表される6-パラメータ・モデルは、現在ブロックに対して6-パラメータ・モデルに投影される。
【0175】
いくつかの実施形態では、ステップ2からの仮想符号化ブロックによって表されるアフィンモデルは、現在ブロックに対して4-パラメータ・モデルまたは6-パラメータ・モデルに常に投影される。
【0176】
式(5)および(6)に従って、2つのタイプの4-パラメータ・アフィンモデルが存在し得、タイプAは、V0およびV1と称される左最上隅CPMVおよび右最上隅CPMVが利用可能であることであり、タイプBは、V0およびV2と称される左最上隅CPMVおよび左下隅CPMVが利用可能であることである。
【0177】
1つまたは複数の実施形態では、投影4-パラメータ・アフィンモデルのタイプは、仮想符号化ブロックによって表される4-パラメータ・アフィンモデルの同一のタイプである。例えば、ステップ2からの仮想符号化ブロックによって表されるアフィンモデルは、タイプAまたはBの4-パラメータ・アフィンモデルであり、次いで、現在ブロックに対する投影アフィンモデルも、タイプAまたはBのそれぞれである。
【0178】
いくつかの実施形態では、ステップ2からの仮想符号化ブロックによって表される4-パラメータ・アフィンモデルは、現在ブロックに対して同一のタイプの4-パラメータ・モデルに常に投影される。例えば、仮想符号化ブロックによって表される4-パラメータ・アフィンモデルのタイプAまたはBは、タイプAの4-パラメータ・アフィンモデルに常に投影される。
【0179】
ステップ4では、ステップ3の後の投影CPMVに基づいて、1つの実施例では、現在のVVCまたはAVS標準規格において使用される同一の候補生成処理が使用され得る。別の実施形態では、現在のVVCまたはAVS標準規格において使用される候補生成処理において使用される時間動きベクトルは、非隣接ブロック・ベース導出方法のために使用され得ない。時間動きベクトルが使用されないとき、それは、生成された組み合わせがいずれの時間動きベクトルをも包含しないことを示す。
【0180】
ステップ5では、ステップ4の後のいずれかの新たに生成された候補は、マージ候補リスト内に既にある全ての既存の候補に対して類似性チェックを受け得る。類似性チェックの詳細は、「アフィンマージ候補プルーニング」のセクションにおいて既に説明されている。新たに生成された候補が候補リスト内のいずれかの既存の候補と類似であるとして発見される場合、新たに生成された候補は、除去またはプルーニングされる。
【0181】
いくつかの実施形態では、3つの隅角点A、B、およびCを決定することによって仮想符号化ブロックが形成され、次いで、仮想符号化ブロックについてアフィンモデルを表すために3つの隅に位置する4×4のブロックの並進MVが使用される。最後に、仮想符号化ブロックのアフィンモデルは、現在符号化ブロックに投影される。この全体的な構成は、隣接しない空間的隣接(例えば、3つの隅角点A、B、およびCに傍に位置するサブブロックは隣接しない空間的隣接である)から構築された第1のタイプのアフィン候補を導出するために使用され得る。いくつかの実施形態では、予測ブロックまたは符号化ブロックの内部の特定の位置(例えば、中心位置)に基づいて、並進MVを導出するために投影アフィンモデルを使用することができることを理由に、この方法は、アフィンマージモードおよびアフィンAMVPモードなどのアフィンモードに適用され得、この方法はまた、正規マージモードおよび正規AMVPモードなどの正規モードに適用され得る。
【0182】
アフィン構築マージ候補に対する継承ベース導出方法
アフィン継承候補ごとに、全ての動き情報は、アフィンモードで符号化された1つの選択された空間的隣接ブロックから継承される。継承情報は、CPMV、参照インデックス、予測方向、アフィンモデル・タイプ等を含む。一方で、アフィン構築候補ごとに、全ての動き情報は、2つまたは3つの選択された空間的または時間的隣接ブロックから構築されると共に、選択された隣接ブロックは、アフィンモードで符号化されず、並進動き情報のみが選択された隣接ブロックから必要である。
【0183】
このセクションでは、継承候補および構築候補の特徴を組み合わせる新たな候補導出方法が開示される。
【0184】
いくつかの実施形態では、継承および構築の組み合わせは、アフィンモデルパラメータを異なるグループに分離することによって実現され得、アフィンパラメータの1つのグループは、1つの隣接ブロックから継承され、アフィンパラメータの他のグループは、他の隣接ブロックから継承される。
【0185】
1つの実施例では、1つのアフィンモデルのパラメータは、2つのグループから構築される。式(3)に示されるように、アフィンモデルは、a、b、c、d、e、およびfを含む、6つのパラメータを包含し得る。並進パラメータ{a,b}は、1つのグループを表し得ると共に、非並進パラメータ{c,d,e,f}は、別のグループを表し得る。このグループ化方法により、パラメータの2つのグループは、第1のステップにおいて2つの異なる隣接ブロックから独立して継承され得、次いで、第2のステップにおいて完全アフィンモデルであるように連結/構築され得る。このケースでは、非並進パラメータを有するグループは、1つのアフィン符号化隣接ブロックから継承される必要があると共に、並進パラメータを有するグループは、アフィンモードで符号化され得またはされ得ない、いずれかのインター符号化された隣接ブロックからであり得る。アフィン符号化隣接ブロックは、「アフィン継承マージ候補に対する非隣接ベース導出処理」のセクションにおいて使用されるスキャニング領域および距離、スキャニング順序、並びにスキャニング完結を含むスキャニング方法/ルールである、
図17Aに示される方法など、アフィン継承候補に対して前に提案されたスキャニング方法に基づいて、隣接するアフィン隣接ブロックまたは隣接しないアフィン隣接ブロックから選択され得ると共に、スキャニング方法は、隣接ブロックまたは非隣接ブロックの両方に対して実行され得ることに留意されよう。代わりに、アフィン符号化隣接ブロックは、物理的に存在し得ないが、「アフィン構築マージ候補に対する非隣接ベース導出処理」のセクションにおいて使用されるスキャニング領域および距離、スキャニング順序、並びにスキャニング完結を含むスキャニング方法/ルールである、
図17Bに示される方法など、正規のインター符号化された隣接ブロックから仮想的に構築され得る。
【0186】
いくつかの実施例では、各々のグループと関連付けられた隣接ブロックは、異なる方法において決定され得る。1つの方法では、パラメータの異なるグループに対する隣接ブロックは、隣接しない近傍領域からの全てであり得ると共に、スキャニング方法は、非隣接ベース導出処理のための前に提案された方法と同様に設計され得る。別の方法では、パラメータの異なるグループに対する隣接ブロックは、隣接する隣接領域からの全てであり得ると共に、スキャニング方法は、現在のVVCまたはAVSビデオ標準規格と同一であり得る。別の方法では、パラメータの異なるグループに対する隣接ブロックは、隣接領域からの部分的であり得、隣接しない近傍領域から部分的であり得る。
【0187】
隣接ブロックが候補の現在のタイプを構築するために隣接しない近傍領域からスキャンされるとき、スキャニング処理は、アフィン継承候補に対して非隣接ベース導出処理とは異なって実行され得る。1つまたは複数の実施形態では、スキャニング領域、距離、および順序が同様に定義され得るが、スキャニング完結ルールが異なって規定され得る。例えば、非隣接ブロックは、各々のエリアにおける定義最大距離内で排他的にスキャンされ得る。このケースでは、距離内の全ての非隣接ブロックは、スキャニング順序を遵守することによってスキャンされ得る。いくつかの実施形態では、スキャニング領域は、異なり得る。例えば、左および上のエリアに加えて、現在符号化ブロックの右下の隣接領域および非隣接領域は、並進または/および非並進パラメータを生成するために、隣接を決定するようにスキャンされ得る。加えて、右下のエリアにおいてスキャンされた隣接は、空間的隣接の代わりに、同一位置にある時間的隣接を発見するために使用され得る。1つのスキャニング基準は、右下の同一位置にある時間的隣接がアフィン構築隣接を生成するために既に使用されているかどうかに基づいて条件付きであり得る。既に使用されている場合、スキャニングが実行されず、そうでなければ、スキャニングが実行される。代わりに、右下の同一位置にある時間的隣接(複数可)が利用可能であることを意味する、既に使用されている場合、スキャニングが実行され、そうでなければ、スキャニングが実行されない。
【0188】
アフィンパラメータのいくつかのグループが新たな候補を構築するように組み合わされるとき、遵守されることになるいくつかのルールが存在し得る。1つ目は、適格基準である。1つの実施例では、グループごとの関連する隣接ブロックまたはブロック(複数可)は、少なくとも1つの方向または両方の方向に対して同一の参照ピクチャを使用するかどうかをチェックされ得る。別の実施例では、グループごとの関連する隣接ブロックまたはブロック(複数可)は、動きベクトルに対して同一の精度/解像度を使用するかどうかをチェックされ得る。
【0189】
或る基準がチェックされるとき、グループごとの最初のX個の関連する隣接ブロック(複数可)が使用され得る。Xの値は、パラメータの異なるグループに対して同一または異なる値として定義され得る。例えば、非並進アフィンパラメータを包含する最初の1または2つの隣接ブロックが使用され得ると共に、並進アフィンパラメータを包含する最初の3または4つの隣接ブロックが使用され得る。
【0190】
2つ目は、構築式である。1つの実施例では、新たな候補のCPMVは、以下の式において導出され得る:
(x,y)は、現在符号化ブロック内の隅の位置(例えば、左最上隅CPMVに対する(0,0)右最上隅CPMVに対する(width,0))、であり、{c,d,e,f}は、1つの隣接ブロックからのパラメータの1つのグループであり、{a,b}は、別の隣接ブロックからのパラメータの別のグループである。
【0191】
別の実施例では、新たな候補のCPMVは、以下の式において導出され得る:
(Δw,Δh)は、{a,b}のグループの関連する隣接ブロックなど、パラメータの1つのグループに対する現在符号化ブロックの左最上隅と関連する隣接ブロック(複数可)の1つの左最上隅との間との距離である。この式における他のパラメータの定義は、上記の実施例と同一である。パラメータは、別の方法においてグループ化され得、(a,b,c,d,e,f)は、1つのグループとして形成されると共に、(Δw,Δh)は、別のグループとして形成される。また、パラメータの2つのグループは、2つの異なる隣接ブロックからである。代わりに、(Δw,Δh)の値は、隣接ブロックと現在ブロックとの間の距離に依存しない、(0,0)などの固定値またはいずれかの一定の値として予め定義され得る。
【0192】
図18は、アフィン構築候補を導出する継承ベース導出方法の実施例を示す。
図18では、アフィン構築候補を導出するための3つのステップが存在する。ステップ1では、特定のグループ化戦略に従って、エンコーダまたはデコーダは、グループごとに隣接ブロックおよび非隣接ブロックのスキャニングを実行し得る。
図18のケースでは、2つのグループが定義され、隣接1は、アフィンモードで符号化され、非並進アフィンパラメータを提供すると共に、隣接2は、並進アフィンパラメータを提供する。隣接1は、
図15A~15Dおよび17Aに示されるような「アフィン継承マージ候補に対する非隣接ベース導出処理」のセクションにおける処理に従って取得され得ると共に、隣接1は、現在ブロックの隣接するまたは非隣接ブロックであり得る。さらに、隣接2は、
図16および17Bに示されるような処理に従って取得され得る。
【0193】
いくつかの実施形態では、アフィンモードで符号化された、隣接1は、上記で提案されたスキャニング方法を遵守することによって、隣接するまたは/および非隣接領域からスキャンされ得る。いくつかの実施形態では、アフィンモードまたは非アフィンモードで符号化された、隣接2も、隣接するまたは非隣接領域からスキャンされ得る。例えば、隣接2は、動き情報がいくつかのアフィンマージまたはAMVP候補を導出するために既に使用されていない場合、スキャンされた隣接する若しくは非隣接領域の1つからであり得、或いはこの位置における同一位置にあるTMVP候補が利用可能であり、または/およびいくつかのアフィンマージ若しくはMVP候補を導出するために既に使用されている場合、現在ブロックの右下の位置からであり得る。代わりに、新たな候補を構築するための僅かに多様化した動き情報を提供するために、隣接2の位置を決定するときに小さな座標オフセット(例えば、垂直または/および水平座標に対する+1または+2または1または2)が適用され得る。
【0194】
ステップ2では、ステップ1において決定されたパラメータおよび位置により、CPMVの座標(x,y)に従って異なるCPMVを導出することができる、特定のアフィンモデルが定義され得る。例えば、
図18に示されるように、非並進パラメータ{c,d,e,f}は、ステップ1において取得された隣接1に基づいて取得され得、並進パラメータ{a,b}は、ステップ1において取得された隣接2に基づいて取得され得る。さらに、距離パラメータΔw,Δhは、よって、現在ブロックの位置(x
1,y
1)および隣接2の位置(x
2,y
2)に基づいて取得され得る。距離パラメータΔw,Δhはそれぞれ、現在ブロックと隣接1または隣接2との間の水平距離および垂直距離を示し得る。例えば、距離パラメータΔw,Δhはそれぞれ、現在ブロックと隣接2との間の水平距離(x
1-x
2)を示し得、現在ブロックと隣接2との間の垂直距離(y
1-y
2)を示し得る。特に、Δw=x
1-x
2、Δh=y
1-y
2である。
【0195】
ステップ3では、2つまたは3つのCPMVが、現在符号化ブロックに対して導出され、現在符号化ブロックは、新たなアフィン候補を形成するように構築され得る。
【0196】
いくつかの実施形態では、他の予測情報がさらに構築され得る。隣接ブロックが同一の方向および/または参照ピクチャを有するとチェックされる場合、予測方向(例えば、双予測または単予測された)および参照ピクチャのインデックスは、関連する隣接ブロックと同一であり得る。代わりに、予測情報は、異なるグループからの関連する隣接ブロックの中で最小のオーバラップする情報を再使用することによって決定される。例えば、1つの隣接ブロックからの1つの方向の参照インデックスのみが他の隣接ブロックの同一の方向の参照インデックスと同一である場合、新たな候補の予測方向は、単予測として決定され、同一の参照インデックスおよび方向が再使用される。
【0197】
いくつかの実施形態では、異なる継承からのモデルパラメータを組み合わせることによって、アフィンモデルが構築され得る。1つの実施例では、並進モデルパラメータは、並進ブロックから(例えば、隣接する空間的に隣接する4×4のブロックまたは/および隣接しない空間的に隣接する4×4のブロックから)継承され得ると共に、非並進モデルパラメータは、アフィン符号化ブロックから(例えば、隣接する空間的に隣接するアフィン符号化ブロックまたは/および隣接しない空間的に隣接するアフィン符号化から)継承され得る。代わりに、非並進モデルパラメータは、明示的にスキャンされた隣接しない空間的に隣接するアフィン符号化ブロックの代わりに、履歴コーディングアフィン・ブロックから継承され得ると共に、履歴コーディングアフィン・ブロックは、隣接する空間的隣接または隣接しない空間的隣接であり得る。この全体的な構成は、隣接しない空間的隣接から構築された第2のタイプのアフィン候補を導出するために使用され得る(例えば、非並進モデルパラメータは、隣接しない空間的隣接から継承され得る)。いくつかの実施形態では、予測ブロックまたは符号化ブロックの内部の特定の位置(例えば、中心位置)に基づいて、並進MVを導出するために生成アフィンモデルを使用することができることを理由に、この方法は、アフィンマージモードおよびアフィンAMVPモードなどのアフィンモードに適用され得、この方法はまた、正規マージモードおよび正規AMVPモードなどの正規モードに適用され得る。
【0198】
アフィン構築マージ候補に対するHMVPベース導出方法
現在のビデオ標準規格VVCおよびAVSにおいて既に定義され、上記のセクションおよび
図7において説明された、隣接する隣接ベース導出処理のケースでは、隣接する隣接に対するスキャニングの固定順序は、2つまたは3つの隣接ブロックを識別するように実行される。前のセクションおよび
図17Bにおいて提案されるように、非隣接ベース導出処理のケースでは、2つの隣接しない近傍は、別の固定順序のスキャニングの間に識別される。言い換えると、隣接する隣接ベース導出方法および隣接しない近傍ベース導出方法の両方について、ローカル・スキャニングの或る深度は、隣接の数を識別するために必然である。このスキャニング処理は、各々の現在ブロックの周りのローカル・バッファリングに依存し、また、或る量の計算の複雑度を被る。
【0199】
一方で、導入セクションにおいて説明されるように、HMVPマージモードは、現在のVVCおよびAVSにおいて既に採用されており、隣接ブロックからの並進動き情報は、履歴テーブルに既に記憶されている。このケースでは、スキャニング処理は、HMVPテーブルを探索することによって置き換えられ得る。
【0200】
したがって、前に提案された非隣接ベース導出処理および継承ベース導出処理について、
図17Bおよび
図18に示されるようなスキャニング方法の代わりに、並進動き情報は、HMVPテーブルから取得され得る。しかしながら、その後アフィン構築候補を導出するために、現在HMVPテーブルが修正され得る場合にアクセス可能であり得る、位置情報、幅、高さ、および参照情報も必要である。したがって、各々の履歴隣接の動き情報に加えて追加の情報を記憶するためにHMVPテーブルを拡張することが提案される。1つの実施形態では、追加の情報は、アフィンまたは非アフィン隣接ブロックの位置、またはCPMVなどのアフィン動き情報若しくはCPMVから導出された同等の正規動き(例えば、この正規動きは、アフィン符号化隣接ブロックの内部サブブロックからであり得る)、参照インデックスなどを含み得る。
【0201】
アフィンAMVPおよび正規マージモードに対する候補導出方法
上記のセクションにおいて説明されたように、アフィンAMVPモードに対し、アフィン候補リストも、CPMVプレディクタを導出するために必要である。結果として、全ての上記で提案された導出方法は、アフィンAMVPモードに同様に適用され得る。唯一の差は、上記で提案された導出方法がAMVPにおいて適用されるとき、選択された隣接ブロックが現在符号化ブロックと同一の参照ピクチャインデックスを有するはずであることである。
【0202】
正規マージモードに対し、候補リストも、CPMVではなく、並進候補MVのみにより構築される。このケースでは、全ての上記で提案された導出方法はなお、追加の導出ステップを追加することによって適用され得る。この追加の導出ステップでは、それは、現在ブロックに対して並進MVを導出することであり、それは、現在ブロック内の特定の旋回位置(x,y)を選択することによって実現され得、同一の式(3)を遵守し得る。言い換えると、アフィン・ブロックのCPMVを導出するために、ブロックの3つの隅の位置は、式(3)において旋回位置(x,y)として使用されると共に、正規のインター符号化されたブロックの並進MVを導出するために、ブロックの中心位置は、式(3)において旋回位置(x,y)として使用され得る。並進MVが現在ブロックに対して導出されると、それは、他の候補として候補リストに挿入され得る。
【0203】
新たな候補がアフィンAMVPおよび正規マージモードに対して上記で提案された方法に基づいて導出されるとき、新たな候補の置き換えは、再順序付けされ得る。
【0204】
1つの実施形態では、新たに導出される候補は、以下の順序を遵守することによって、アフィンAMVP候補リストに挿入され得る:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接しない空間的隣接から継承された、
(4)隣接しない空間的隣接から構築された、
(5)隣接する空間的隣接からの並進MV、
(6)隣接する時間的隣接からの時間的MV、および
(7)ゼロMV。
【0205】
別の実施形態では、新たに導出される候補は、以下の順序を遵守することによって、アフィンAMVP候補リストに挿入され得る:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接しない空間的隣接から継承された、
(4)隣接する空間的隣接からの並進MV、
(5)隣接しない空間的隣接から構築された、
(6)隣接する時間的隣接からの時間的MV、および
(7)ゼロMV。
【0206】
別の実施形態では、新たに導出される候補は、以下の順序を遵守することによって、アフィンAMVP候補リストに挿入され得る:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接する空間的隣接からの並進MV、
(4)隣接しない空間的隣接から継承された、
(5)隣接しない空間的隣接から構築された、
(6)隣接する時間的隣接からの時間的MV、および
(7)ゼロMV。
【0207】
別の実施形態では、新たに導出される候補は、以下の順序を遵守することによって、アフィンAMVP候補リストに挿入され得る:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接する空間的隣接からの並進MV、
(4)隣接する時間的隣接からの時間的MV、
(5)隣接しない空間的隣接から継承された、
(6)隣接しない空間的隣接から構築された、および
(7)ゼロMV。
【0208】
別の実施形態では、新たに導出される候補は、以下の順序を遵守することによって、アフィンAMVP候補リストに挿入され得る:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接する空間的隣接からの並進MV、
(4)隣接する時間的隣接からの時間的MV、
(5)隣接しない空間的隣接から継承された、および
(6)ゼロMV。
【0209】
別の実施形態では、新たに導出された候補は、以下の順序を遵守することによってアフィンAMVP候補リストに挿入される:
(1)隣接する空間的隣接から継承された、
(2)隣接する空間的隣接から構築された、
(3)隣接する空間的隣接からの並進MV、
(4)時間的隣接からの並進MV、
(5)隣接しない空間的隣接から継承された、および
(6)ゼロMV。
【0210】
隣接しない空間的隣接から構築された候補は、隣接しない空間的隣接から構築された第1のタイプの候補または/および第2のタイプの候補と称され得ることに留意されよう。
【0211】
別の実施形態では、新たに導出される候補は、以下の順序を遵守することによって、通常のマージ候補リストに挿入され得る:
(1)隣接する空間的隣接からの空間的MVP、
(2)隣接する同一位置にある隣接からの時間的MVP、
(3)隣接しない空間的隣接からの空間的MVP、
(4)隣接しない空間的アフィン隣接からの継承MVP、
(5)隣接しない空間的隣接からの構築MVP
(6)FIFOテーブルからの履歴ベースMVP、
(7)ペアワイズ平均MVP、および
(8)ゼロMV。
【0212】
アフィンマージ候補リストの再順序付け
1つの実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによって、アフィンマージ候補リストに挿入され得る:1.利用可能である場合、サブブロックベース時間動きベクトル予測(SbTMVP)候補、2.隣接する隣接から継承された、3.隣接しない近傍から継承された、4.隣接する隣接から構築された、5.隣接しない近傍から構築された、6.ゼロMV。
【0213】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによってアフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、3.隣接する隣接から構築された、4.隣接しない近傍から継承された、5.隣接しない近傍から構築された、6.ゼロMV。
【0214】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによってeアフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、3.隣接する隣接から構築された、4.ゼロMVの1つのセット、隣接しない近傍から継承された、6.隣接しない近傍から構築された、7.リストはなおもフルでない場合、残りのゼロMV。
【0215】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによって、アフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、3.Xよりも短い距離により隣接しない近傍から継承された、4.隣接する隣接から構築された、5.隣接しない近傍から構築された、6.継承並進隣接および非並進隣接から構築された、7.リストがなおもフルでない場合、ゼロMV。
【0216】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによって、アフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、3.隣接しない近傍から継承された、4.隣接する隣接から構築された最初の候補、5.継承並進隣接および非並進隣接から構築された最初のX個の候補、6.隣接しない近傍から構築された、7.継承並進隣接および非並進隣接から構築された他のY個の候補、8.リストがなおもフルでない場合、ゼロMV。
【0217】
いくつかの実施例では、XおよびYの値が、2の値などの予め定義された固定値、またはデコーダによって受信されたシグナリング値(シーケンス/スライス/ブロック/CTUレベルシグナリングパラメータ)、またはエンコーダ/デコーダにおける構成可能な値、または各々の個々の符号化ブロックの左および上の利用可能な隣接の数、若しくはXおよびYの値を決定する方法のいずれかの組み合わせに従った動的に決定された値(例えば、X<=3、Y<=3)であり得る。1つの実施例では、Xの値は、Yの値と同一であり得る。別の実施例では、Xの値は、Yの値とは異なり得る。
【0218】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによって、アフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、Xよりも短い距離により隣接しない近傍から継承された、4.隣接する隣接から構築された、5.Yよりも短い距離により隣接しない近傍から構築された、6.Xよりも長い距離により隣接しない近傍から継承された、7.Yよりも長い距離により隣接しない近傍から構築された、8.ゼロMV。この実施形態では、値XおよびYは、2の値などの予め定義された固定値、またはエンコーダによって決定されたシグナリング値、またはエンコーダ若しくはデコーダにおける構成可能な値であり得る。1つの実施例では、Xの値は、Yの値と同一であり得る。別の実施例では、Nの値は、Mの値とは異なり得る。
【0219】
いくつかの実施形態では、新たな候補がアフィン動きおよび並進MVを組み合わせることによってCPMVを構築する継承ベース導出方法を使用することによって導出される場合、この新たな候補の配置は、他の構築候補の配置に依存し得る。
【0220】
1つの実施形態では、異なる構築候補に対し、アフィンマージ候補リストの再順序付けは、以下の順序を遵守し得る。
(1)隣接する空間的隣接から構築された、
(2)隣接する空間的アフィン隣接および並進MVを組み合わせることから構築された、
(3)隣接しない空間的隣接から構築された、並びに
(4)隣接しない空間的アフィン隣接および並進MVを組み合わせることから構築される。
【0221】
別の実施形態では、異なる構築候補に対し、アフィンマージ候補リストの再順序付けは、以下の順序を遵守し得る。
(1)隣接する空間的隣接から構築された、
(2)隣接しない空間的隣接から構築された、
(3)隣接する空間的アフィン隣接および並進MVを組み合わせることから構築された、並びに
(4)隣接しない空間的アフィン隣接および並進MVを組み合わせることから構築される。
【0222】
別の1つまたは複数の実施形態では、異なるカテゴリの候補の間で、アフィンマージ候補の再順序付けが部分的にまたは完全に交互配置され得る(例えば、交互配置することは、同一のカテゴリからの候補が候補リストに隣接に配置されない場合もあることを示し得る)。いくつかの実施形態では、アフィンマージ候補リストに配置された7個のカテゴリのアフィンマージ候補が存在し得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接しない近傍からの継承候補、
(4)隣接する隣接からの構築候補、
(5)隣接しない近傍からの第2のタイプの構築候補、
(6)隣接しない近傍からの第1のタイプの構築候補、および
(7)ゼロMV。
上記議論された特定の順序は、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含むいずれかの候補リストに適用され得る。
【0223】
アフィンマージリストの後ろの位置に置かれた候補がエンコーダによって選択およびシグナリングされる場合により高いシグナリング・オーバヘッドのコストを要し得るので、上記の異なるカテゴリの候補の順序は、異なる方法において設計され得る。
【0224】
1つまたは複数の実施形態では、候補の順序は、上記の挿入順序と同一のままであり得る。その後の候補を再順序付けるために、適応的再順序付け方法が適用され得、適応的再順序付けは、テンプレート・ベース方法(ARMC)またはバイラテラル・マッチング方法などの非テンプレート・ベース方法であり得る。
【0225】
1つまたは複数の実施形態では、候補の順序は、特定のパターンにおいて再順序付けられ得る。特定のパターンは、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含むいずれかの候補リストにおいて適用され得る。
【0226】
いくつかの実施形態では、再順序付けパターンは、カテゴリごとのいくつかの利用可能な候補に依存し得る。
【0227】
1つの実施例では、再順序付けパターンは、以下のように定義され得る:
(1)候補利用可能である場合、SbTMVP、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの構築候補、
(4)隣接しない近傍からの最初X個の継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(5)隣接しない近傍からの第2のタイプの構築候補からの最初のY個の構築候補(例えば、Yは、Xと同様に定義され得る)、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のZ個の構築候補(例えば、Zは、Xと同様に定義され得る)、
(7)隣接しない近傍からの残りの継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(8)隣接しない近傍からの第2のタイプの構築候補からの残りの構築候補(例えば、Yは、Xと同様に定義され得る)、
(9)隣接しない近傍からの第1のタイプの構築候補からの残りの構築候補(例えば、Zは、Xと同様に定義され得る)、および
(10)ゼロMV。
【0228】
1つまたは複数の実施形態では、再順序付けパターンは、交互配置される方法であり得、交互配置される方法は、異なるカテゴリからの異なる候補をマージし得る。1つの実施例では、交互配置されたパターンは、以下のように定義され得る:
(1)候補利用可能である場合、SbTMVP、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からのX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの最初のY1個の構築候補、
(5)隣接しない近傍からの最初のZ1個の継承候補、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(7)隣接する隣接からの最初のX2個の構築候補、
(8)隣接しない近傍からの第2のタイプの構築候補からの最初のY2個の構築候補、
(9)隣接しない近傍からの最初のZ2個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のK2個の構築候補、
(11)・・・
(12)隣接する隣接からの最初のXi個の構築候補、
(13)隣接しない近傍からの第2のタイプの構築候補からの最初のYi個の構築候補、
(14)隣接しない近傍からの最初のZi個の継承候補、
(15)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(16)ゼロMV。
(Xi,Yi,Zi,Ki)の値は、1またはシグナリングされた数などの予め固定された数であり得る。1つのカテゴリの利用可能な候補の数が他のカテゴリよりも少ない場合、このカテゴリに対する候補の位置がスキップされ、他のカテゴリの残りの利用可能な候補がこの位置を引き継ぐ。
【0229】
1つまたは複数の実施形態では、再順序付けパターンは、組み合わせバージョンであり得、組み合わせバージョンは、可用性および交互配置方法の両方を考慮する。1つの実施例では、組み合わせパターンは、以下のように定義され得る:
(1)候補利用可能である場合、SbTMVP、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの最初のX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの全ての利用可能な構築候補、
(5)隣接する隣接からの残りの構築候補、
(6)隣接しない近傍からの最初のZ1個の継承候補、
(7)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(8)・・・
(9)隣接しない近傍からの最初のZi個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(11)ゼロMV。
【0230】
アフィン候補リストの改善された再順序付け
上記で提案された候補導出方法に基づいて、既存のアフィンマージ候補リスト、またはアフィンAMVP候補リスト、または通常のマージ候補リストに対して1つまたは複数の候補が導出され得、対応するリストのサイズは、統計的に(例えば、構成可能なサイズ)または適応的に(例えば、エンコーダにおける可用性に従って動的に変更され、次いで、デコーダにシグナリングされる)調節され得る。1つまたは複数の新たな候補が通常のマージ候補リストに対して導出されるとき、新たな候補がアフィン候補として最初に導出され、次いで、通常のマージ候補リストに挿入される前に、符号化ブロックおよび関連するアフィンモデル内の旋回位置(例えば、中心サンプルまたは画素位置)を使用することによって並進動きベクトルに転換されることに留意されよう。
【0231】
1つまたは複数の実施形態では、ARMCなどの適応的再順序付け方法は、上記で提案された候補導出方法によって導出された、いくつかの新たな候補を追加することによって、候補リストが更新または構築された後、上記の候補リストの1つ以上に適用され得る。
【0232】
別の実施形態では、時間的候補リストが最初に作成され得、時間的候補リストは、既存の候補リスト(例えば、アフィンマージ候補リスト、アフィンAMVP候補リスト、通常のマージ候補リスト)よりも大きいサイズを有し得る。時間的候補リストが、新たに導出される候補を追加することによって構築され、上記で提案された挿入方法を使用することによって統計的に順序付けされると、ARMCなどの適応的再順序付け方法は、時間的候補リストを再順序付けるために適用され得る。適応的再順序付けの後、時間的候補リストの最初のN個の候補は、既存の候補リストに挿入され、Nの値は、固定値または構成可能な値であり得る。1つの実施例では、Nの値は、既存の候補リストのサイズと同一であり得、時間的候補リストからの選択されたN個の候補が特定される。
【0233】
ARMCなどの適応的再順序付け方法を適用する上記の適用シナリオでは、適用される再順序付け方法の性能を改善しまたは/および複雑度を低減させるために、以下の方法が使用され得る。
【0234】
いくつかの実施形態では、テンプレート・マッチング・コストが異なる候補を再順序付けるために使用されるとき、現在ブロックのテンプレートのサンプルとそれらの対応する参照サンプルとの間の絶対差合計(SAD)などのコスト関数が使用され得る。テンプレートの参照サンプルは、現在ブロックの同一の動き情報によって特定され得る。分数動き情報が現在ブロックに対して使用されるケースでは、テンプレートの予測サンプルを生成するために、補間フィルタリング処理が使用され得る。生成された予測サンプルが、最終的なブロック再構築のためではなく、異なる候補の間の動き正確性を比較するためにまさに使用されるので、テンプレート・サンプルの予測正確性は、より小さいタップを有する補間フィルタを使用することによって緩和され得る。例えば、アフィンマージ候補リストを適応的に再順序付けるケースでは、現在ブロックの選択されたテンプレートに対する予測サンプルを生成するために、2-タップまたは4タップ補間フィルタが使用され得る。または、最も近い整数サンプル(補間フィルタリング処理を完全にスキップする)させ、テンプレートの予測サンプルとして使用され得る。通常のマージ候補リストまたはアフィンAMVP候補リストなどの他の候補リスト内の候補を適応的に再順序付けるためにテンプレート・マッチング方法が使用されるとき、より小さいタップを有する補間フィルタが同様に使用され得る。
【0235】
いくつかの実施形態では、異なる候補を再順序付けるためにテンプレート・マッチング・コストが使用されるとき、現在ブロックのテンプレートのサンプルとそれらの対応する参照サンプルとの間のSADなどのコスト関数が使用され得る。対応する参照サンプルは、整数位置または分数位置において特定され得る。分数位置が特定されるとき、補間フィルタ処理を実行することによって、或るレベルの予測正確性が達成され得る。制限された予測正確性に起因して、異なる候補に対する計算されたマッチング・コストは、ノイズ・レベル差を包含し得る。ノイズ・レベル・コスト差の影響を低減させるために、候補ソーティング処理の前に最下位ビットの数ビットを除去することによって、計算されたマッチング・コストが調節され得る。
【0236】
いくつかの実施形態では、異なる導出方法を使用することによって、十分な候補が導出されない場合、候補リストは、各々のリストの最後にゼロMVによりパディングされ得る。このケースでは、候補コストは、最初のゼロMVに対してのみ計算され得ると共に、残りのゼロMVは、任意の大きなコスト値が統計的に割り当てられ得、その結果、それらの繰り返されるゼロMVは、対応する候補リストの最後に配置される。
【0237】
いくつかの実施形態では、全てのゼロMVは、任意の大きなコスト値が統計的に割り当てられ得、その結果、全てのゼロMVは、対応する候補リストの最後に配置される。
【0238】
いくつかの実施形態では、前の完結方法は、デコーダ側における複雑度を低減させるために、再順序付け方法に対して適用され得る。
【0239】
1つまたは複数の実施形態では、候補リストが構築されるとき、異なるタイプの候補が導出され得、リストに挿入され得る。1つの候補または1つのタイプの候補が再順序付け処理に参加されないが、選択されおよびデコーダにシグナリングされる場合、他の候補に適用される再順序付け処理は、早期に完結され得る。1つの実施例では、アフィンマージ候補リストに対してARMCを適用するケースでは、SbTMVP候補は、再順序付け処理から除外され得る。このケースでは、アフィン符号化ブロックに対するシグナリングされたマージインデックス値がデコーダ側におけるSbTMVP候補を示す場合、ARMC処理がこのアフィン・ブロックに対してスキップされ得または早期に完結され得る。
【0240】
別の実施形態では、1つの候補または1つのタイプの候補が再順序付け処理に参加されないが、選択されおよびデコーダにシグナリングされない場合、この特定の候補またはこの特定のタイプの候補に対する導出処理および再順序付け処理の両方がスキップされ得る。スキップされた導出処理および再順序付け処理は、特定の候補または特定のタイプの候補に適用されるにすぎないと共に、残りの候補またはタイプの候補がなおも実行され、導出処理がスキップされ、それは、特定の候補またはこの特定のタイプの候補を導出する関連する演算がスキップされることを示すが、予め定義された特定の候補またはこの特定のタイプの候補のリスト・位置(例えば、予め定義された挿入順序に従った)がなおも維持され得、スキップされた導出処理に起因して、動き情報などの候補コンテンツがまさに無効であり得ることに留意されよう。同様に、再順序付け処理の間、この特定の候補またはこの特定のタイプの候補のコスト計算がスキップされ得、この特定の候補またはこの特定のタイプの候補のリスト・位置は、他の候補を再順序付けた後に変更され得ない。
【0241】
図21は、ユーザインタフェース2160に接続されたコンピューティング環境(または、コンピューティング・デバイス)2110を示す。コンピューティング環境2110は、データ・プロセシング・サーバの一部であることができる。いくつかの実施形態では、コンピューティング・デバイス2110は、本開示の様々な実施例に係る、以下で説明されるような様々な方法または処理(符号化/復号方法または処理)のいずれかを実行することができる。コンピューティング環境2110は、プロセッサ2120、メモリ2140、およびI/Oインタフェース2150を含み得る。
【0242】
プロセッサ2120は、典型的には、表示、データ獲得、データ通信、および画像処理と関連付けられた演算など、コンピューティング環境2110の全体的な演算を制御する。プロセッサ2120は、上記で説明された方法におけるステップの全てまたは一部を実行する命令を実行するための1つまたは複数のプロセッサを含み得る。その上、プロセッサ2120は、プロセッサ2120と他の構成要素との間の相互作用を促進する1つまたは複数のモジュールを含み得る。プロセッサは、セントラル・プロセシング・ユニット(CPU)、マイクロ・プロセッサ、単一のチップ・マシン、またはGPUなどであり得る。
【0243】
メモリ2140は、コンピューティング環境2110の演算をサポートするための様々なタイプのデータを記憶するように構成される。メモリ2140は、所定のソフトウェア2142を含み得る。そのようなデータの例は、コンピューティング環境2110上で動作するいずれかのアプリケーションまたは方法に対する命令、ビデオデータセット、画像データなどを含む。メモリ2140は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的消去可能プログラマブル・リード・オンリ・メモリ(EEPROM)、消去可能プログラム可能リード・オンリ・メモリ(EPROM)、プログラム可能リード・オンリ・メモリ(PROM)、リード・オンリ・メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気または光学ディスクなど、いずれかのタイプの揮発性若しくは不揮発性メモリ・デバイス、またはそれらの組み合わせを使用することによって実装され得る。
【0244】
I/Oインタフェース2150は、キーボード、クリック・ホイール、およびボタンなど、プロセッサ2120と周辺インタフェース・モジュールとの間のインタフェースを提供する。ボタンは、それらに限定されないが、ホーム・ボタン、開始スキャン・ボタン、および停止スキャン・ボタンを含み得る。I/Oインタフェース2150は、エンコーダおよびデコーダと接続され得る。
【0245】
いくつかの実施形態では、上記で説明された方法を実行するための、コンピューティング環境2110内のプロセッサ2120によって実行可能な、メモリ2140に含まれるなどの複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピー・ディスク、または光学データ記憶デバイスなどであり得る。
【0246】
非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサを有するコンピューティング・デバイスによる実行のための複数のプログラムをそこに記憶しており、複数のプログラムは、1つまたは複数のプロセッサによって実行されるとき、コンピューティング・デバイスに、動き予測のための上記で説明された方法を実行させる。
【0247】
いくつかの実施形態では、コンピューティング環境2110は、上記の方法を実行するための、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル・シグナル・プロセッサ(DSP)、デジタル・シグナル・プロセシング・デバイス(DSPD)、プログラマブル論理回路(PLD)、フィールド・プログラマブル・ゲートアレイ(FPGA)、グラフィカル・プロセシング・ユニット(GPU)、コントローラ、マイクロ・コントローラ、マイクロ・プロセッサ、または他の電子構成要素により実装され得る。
【0248】
図22は、本開示の実施例に係るビデオ復号のための方法を例示するフローチャートである。
【0249】
ステップ2201では、デコーダ側において、プロセッサ2120は、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得し得る。
【0250】
いくつかの実施例では、第1の候補位置および第2の候補位置は、複数の隣接しない近傍位置からであり得、複数の隣接しない近傍位置は、現在ブロックの1つの側から離れるブロックの数である。例えば、第1の候補位置は、現在ブロックの左側から離れる1つまたは2つのブロックにあり得、第2の候補位置は、現在ブロックの最上側から離れる1つまたは2つのブロックにあり得る。ブロックの数は、1つまたは2つに限定されない。
【0251】
いくつかの実施例では、プロセッサ2120は、第1のスキャニング距離および第1のスキャニング領域に従って第1の候補位置を取得し得、第1のスキャニング距離は、第1の候補位置と現在ブロックの左側との間の第1の距離を示し、第1のスキャニング領域は、現在ブロックの左に位置する。さらに、プロセッサ2120は、第2のスキャニング距離および第2のスキャニング領域に従って第2の候補位置を取得し得、第2のスキャニング距離は、第2の候補位置と現在ブロックの最上側との間の第2の距離を示し、第2のスキャニング領域は、現在ブロックの上に位置する。例えば、第1の距離は、現在ブロックの左側から離れる1つまたは複数のブロックを含み得、第2の距離は、現在ブロックの最上側から離れる1つまたは複数のブロックを含み得る。
【0252】
例えば、第1の候補位置は、
図10、11、または12に示されるようスキャニング処理を遵守して取得され得る。いくつかの実施形態では、スキャニング領域および距離は、特定のスキャニング方向に従って定義され得る。いくつかの実施形態では、スキャニング方向は、現在ブロックの側に垂直であり得る。1つの実施例が
図10に示され、
図10では、スキャニング領域は、現在ブロックの左または上の連続した動きフィールドの1つのラインとして定義される。スキャニング距離は、スキャニング位置(MV候補の位置)から現在ブロックの側までの動きフィールドの数として定義される。いくつかの実施形態では、動きファイルドのサイズは、適用可能なビデオ符号化標準規格の最大粒度に依存し得る。
図10に示される実施例では、動きフィールドのサイズは、現在のVVC標準規格と整合され、4×4に設定されると想定される。
【0253】
いくつかの実施形態では、スキャニング方向は、現在ブロックの側に平行であり得る。1つの実施例が
図11に示され、
図11では、スキャニング領域は、現在ブロックの左または上の連続した符号化ブロックの1つのラインとして定義される。例えば、第1のスキャニング領域は、現在ブロックの左の連続した符号化ブロックの1つのラインであり、第2のスキャニング領域は、現在ブロックの上の連続した符号化ブロックの1つのラインである。
【0254】
ステップ2202では、プロセッサ2120は、第1の候補位置、第2の候補位置、および第3の候補位置に基づいて、仮想ブロックを取得し得る。
【0255】
いくつかの実施例では、仮想ブロックは、矩形符号化ブロックであり、第3の候補位置は、第1の候補位置の垂直位置および第2の候補位置の水平位置に基づいて決定される。
【0256】
例えば、
図9に示されるように、第1の候補位置は、左下隅Cであり、第2の候補位置は、右最上隅Bである。矩形の2つのエンド・ポイントとして使用されるBおよび隅Cの位置に基づいて、仮想ブロック(点線におけるブロックおよび全ての側は、現在ブロックに平行である)が形成され得、その結果、別のエンド・ポイントAが取得され得る。エンド・ポイントAは、第3の候補位置である。
【0257】
ステップ2203では、プロセッサ2120は、上記の式(2)に従って、第1の候補位置、第2の候補位置、および第3の候補位置における並進MVに基づいて、仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得し得る。
【0258】
ステップ2204では、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数の第2のCPMVを取得するように、仮想ブロックに対する複数の第1のCPMVを現在ブロックに投影し得る。
【0259】
例えば、隅A、B、およびCにおけるCPMVはそれぞれ、
図9に示されるようにエンド・ポイントA’、B’、C’を有する現在ブロックに投影される。さらに、現在ブロックのCPMVは、式(3)または(4)に示されるように一般的なアフィンモデルを遵守することによって、現在ブロック内の特定の位置における並進MVに変換され得る。
【0260】
いくつかの実施例では、特定の位置は、現在ブロック内の中心位置を含み得る。
【0261】
いくつかの実施例では、ステップ2205において示されるように、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、並進MVを通常のマージリストに挿入し得る。例えば、並進MVが取得されるとプロセッサ2120が決定するとき、それは、並進MVを通常のマージリストに挿入し得る。いくつかの実施例では、プロセッサ2120はさらに、通常のマージリストがフルになるまで、追加の並進MVを取得し得、通常のマージリストに挿入し得る。
【0262】
いくつかの実施例では、ステップ2206において示されるように、プロセッサ2120は、現在ブロックがアフィンモードとして符号化されると決定したことに応答して、アフィンマージ候補リストまたはアフィンAMVP候補リストから複数の第2のCPMVを取得し得る。例えば、プロセッサ2120が複数の第2のCPMVを決定するとき、それは、複数の第2のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。いくつかの実施例では、プロセッサ2120はさらに、アフィンマージ候補リストまたはアフィンAMVP候補リストがフルになるまで、追加の複数の第2のCPMVを取得し得、アフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。
【0263】
図23は、
図22に示されるたようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【0264】
ステップ2301では、エンコーダ側において、プロセッサ2120は、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得し得る。
【0265】
いくつかの実施例では、第1の候補位置および第2の候補位置は、複数の隣接しない近傍位置からであり得、複数の隣接しない近傍位置は、現在ブロックの1つの側から離れるブロックの数である。例えば、第1の候補位置は、現在ブロックの左側から離れる1つまたは2つのブロックにあり得、第2の候補位置は、現在ブロックの最上側から離れる1つまたは2つのブロックにあり得る。ブロックの数は、1つまたは2つに限定されない。
【0266】
いくつかの実施例では、プロセッサ2120は、第1のスキャニング距離および第1のスキャニング領域に従って第1の候補位置を取得し得、第1のスキャニング距離は、第1の候補位置と現在ブロックの左側との間の第1の距離を示し、第1のスキャニング領域は、現在ブロックの左に位置する。さらに、プロセッサ2120は、第2のスキャニング距離および第2のスキャニング領域に従って第2の候補位置を取得し得、第2のスキャニング距離は、第2の候補位置と現在ブロックの最上側との間の第2の距離を示し、第2のスキャニング領域は、現在ブロックの上に位置する。例えば、第1の距離は、現在ブロックの左側から離れる1つまたは複数のブロックを含み得、第2の距離は、現在ブロックの最上側から離れる1つまたは複数のブロックを含み得る。
【0267】
例えば、第1の候補位置は、
図10、11、または12に示されるようスキャニング処理を遵守して取得され得る。いくつかの実施形態では、スキャニング領域および距離は、特定のスキャニング方向に従って定義され得る。いくつかの実施形態では、スキャニング方向は、現在ブロックの側に垂直であり得る。1つの実施例が
図10に示され、
図10では、スキャニング領域は、現在ブロックの左または上の連続した動きフィールドの1つのラインとして定義される。スキャニング距離は、スキャニング位置(MV候補の位置)から現在ブロックの側までの動きフィールドの数として定義される。いくつかの実施形態では、動きフィールドのサイズは、適用可能なビデオ符号化標準規格の最大粒度に依存し得る。
図10に示される実施例では、動きファイルドのサイズは、現在のVVC標準規格と整合され、4×4に設定されると想定される。
【0268】
いくつかの実施形態では、スキャニング方向は、現在ブロックの側に平行であり得る。1つの実施例が
図11に示され、
図11では、スキャニング領域は、現在ブロックの左または上の連続した符号化ブロックの1つのラインとして定義される。例えば、第1のスキャニング領域は、現在ブロックの左の連続した符号化ブロックの1つのラインであり、第2のスキャニング領域は、現在ブロックの上の連続した符号化ブロックの1つのラインである。
【0269】
ステップ2302では、プロセッサ2120は、第1の候補位置、第2の候補位置、および第3の候補位置に基づいて、仮想ブロックを決定し得る。
【0270】
いくつかの実施例では、仮想ブロックは、矩形符号化ブロックであり、第3の候補位置は、第1の候補位置の垂直位置および第2の候補位置の水平位置に基づいて決定される。
【0271】
例えば、
図9に示されるように、第1の候補位置は、左下隅Cであり、第2の候補位置は、右最上隅Bである。矩形の2つのエンド・ポイントとして使用されるBおよび隅Cの位置に基づいて、仮想ブロック(点線におけるブロックおよび全ての側は、現在ブロックに平行である)が形成され得、その結果、別のエンド・ポイントAが取得され得る。エンド・ポイントAは、第3の候補位置である。
【0272】
ステップ2303では、プロセッサ2120は、上記の式(2)に従って、第1の候補位置、第2の候補位置、および第3の候補位置における並進MVに基づいて、仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得し得る。
【0273】
ステップ2304では、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数の第2のCPMVを取得するように、仮想ブロックに対する複数の第1のCPMVを現在ブロックに投影し得る。
【0274】
例えば、隅A、B、およびCにおけるCPMVはそれぞれ、
図9に示されるようにエンド・ポイントA’、B’、C’を有する現在ブロックに投影される。さらに、現在ブロックのCPMVは、式(3)または(4)に示されるように一般的なアフィンモデルを遵守することによって、現在ブロック内の特定の位置における並進MVに変換され得る。
【0275】
いくつかの実施例では、特定の位置は、現在ブロック内の中心位置を含み得る。
【0276】
いくつかの実施例では、ステップ2305において示されるように、プロセッサ2120は、並進MVが取得されると決定したことに応答して、並進MVを通常のマージリストに挿入し得る。プロセッサ2120はさらに、通常のマージリストがフルになるまで、追加の並進MVを通常のマージリストに挿入し得る。
【0277】
いくつかの実施例では、ステップ2306において示されるように、プロセッサ2120は、複数の第2のCPMVが取得されると決定したことに応答して、複数の第2のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。さらに、プロセッサ2120は、アフィンマージ候補リストまたはアフィンAMVP候補リストフルになるまで、追加の複数の第2のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。
【0278】
いくつかの実施例では、エンコーダ側およびデコーダ側は各々、フル通常のマージリストを構築し、デコーダ側は、エンコーダによって送信されるフル通常のマージリストにおいて並進MVを示す候補インデックスを受信し得る。1つまたは複数の実施例では、デコーダは、候補インデックスに基づいて、フル通常のマージリストから並進MVを選択し得る。
【0279】
図24は、本開示の実施例に係る、ビデオ復号のための方法を例示するフローチャートである。
【0280】
ステップ2401では、デコーダ側において、プロセッサ2120は、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを取得し得る。
【0281】
ステップ2402では、プロセッサ2120は、現在ブロックの複数のアフィン符号化隣接ブロックからのまたは複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを取得し得る。
【0282】
ステップ2403では、プロセッサ2120は、1つまたは複数の第1のパラメータおよび1つまたは複数の第2のパラメータを使用して、1つまたは複数のアフィンモデルを構築し得る。
【0283】
ステップ2404では、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数のCPMVを取得するように、アフィンモデルを現在ブロックに投影し得る。
【0284】
いくつかの実施例では、1つまたは複数の第1のパラメータは、アフィンモデルと関連付けられた複数の並進パラメータを含み得、1つまたは複数の第2のパラメータは、アフィンモデルと関連付けられた複数の非並進パラメータを含み得る。
【0285】
いくつかの実施例では、プロセッサ2120は、複数の隣接ブロックおよび複数の非隣接ブロックから複数のインター符号化された隣接ブロックを取得し得、複数の隣接ブロックは、現在ブロックに隣接し、複数の非隣接ブロックはそれぞれ、現在ブロックの1つの側から離れるブロックの数に位置する。
【0286】
いくつかの実施例では、プロセッサ2120は、アフィン符号化された複数の隣接ブロックおよびアフィン符号化された複数の非隣接ブロックから、複数のアフィン符号化隣接ブロックを取得し得る。
【0287】
いくつかの実施例では、プロセッサ2120は、複数の隣接ブロックおよび複数の非隣接ブロックから、複数の履歴アフィン符号化隣接ブロックを取得し得る。
【0288】
いくつかの実施例では、
図18に示されるように、隣接1は、アフィン継承マージ候補に対する導出処理に従って、現在ブロックの左のスキャニング領域をスキャンすることによって取得される1つの第1の隣接ブロックであり、1つまたは複数のそのような第1の隣接ブロックは、左のスキャニング領域を排他的にスキャンすることによって取得され得、および/または最上のスキャニング領域は、異なるスキャニング距離にある。異なるスキャニング距離は、
図8に示されるような距離1(D1)、距離2(D2)、距離3(D3)を含み得、D1、D2、D3はそれぞれ、スキャンされるMV候補が側に垂直な方向に沿って現在ブロックの1つの側からの距離1、距離2、または距離3にあることを示す。
【0289】
さらに、
図18に示されるように、隣接2は、アフィン構築マージ候補の導出処理に従って、現在ブロックの左のスキャニング領域をスキャンすることによって取得される1つの第2の隣接ブロックであり、1つまたは複数のそのような第2の隣接ブロックは、左のスキャニング領域を排他的にスキャンすることによって取得され得、および/または最上のスキャニング領域は、異なるスキャニング距離にある。異なるスキャニング距離は、
図8に示されるような距離1(D1)、距離2(D2)、距離3(D3)を含み得、D1、D2、D3はそれぞれ、スキャンされるMV候補が側に垂直な方向に沿って現在ブロックの1つの側からの距離1、距離2、または距離3にあることを示す。
【0290】
いくつかの実施例では、ステップ2405において示されるように、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、並進MVを通常のマージリストに挿入し得る。さらに、プロセッサ2120は、通常のマージリストがフルになるまで、追加の並進MVを取得し得、通常のマージリストに挿入し得る。
【0291】
いくつかの実施例では、ステップ2406において示されるように、プロセッサ2120は、現在ブロックがアフィンモードとして符号化されると決定したことに応答して、複数のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。さらに、プロセッサ2120は、アフィンマージ候補リストまたはアフィンAMVP候補リストがフルになるまで、追加の複数のCPMVを取得し得、アフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。
【0292】
図25は、
図24に示されたようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【0293】
ステップ2501では、エンコーダ側において、プロセッサ2120は、現在ブロックの複数のインター符号化された隣接ブロックからの第1の隣接ブロックに基づいて、1つまたは複数の第1のパラメータを取得し得る。
【0294】
ステップ2502では、プロセッサ2120は、現在ブロックの複数のアフィン符号化隣接ブロックからのまたは複数の履歴アフィン符号化隣接ブロックからの第2の隣接ブロックに基づいて、1つまたは複数の第2のパラメータを取得し得る。
【0295】
ステップ2503では、プロセッサ2120は、1つまたは複数の第1のパラメータおよび1つまたは複数の第2のパラメータを使用して、1つまたは複数のアフィンモデルを構築し得る。
【0296】
ステップ2504では、プロセッサ2120は、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、現在ブロック内の特定の位置に基づいて並進MVを取得し、または現在ブロックがアフィンモードとして符号化されると決定したことに応答して、現在ブロックに対する複数のCPMVを取得するように、アフィンモデルを現在ブロックに投影し得る。
【0297】
いくつかの実施例では、1つまたは複数の第1のパラメータは、アフィンモデルと関連付けられた複数の並進パラメータを含み得、1つまたは複数の第2のパラメータは、アフィンモデルと関連付けられた複数の非並進パラメータを含み得る。
【0298】
いくつかの実施例では、プロセッサ2120は、複数の隣接ブロックおよび複数の非隣接ブロックから複数のインター符号化された隣接ブロックを取得し得、複数の隣接ブロックは、現在ブロックに隣接し、複数の非隣接ブロックはそれぞれ、現在ブロックの1つの側から離れるブロックの数に位置する。
【0299】
いくつかの実施例では、プロセッサ2120は、アフィン符号化された複数の隣接ブロックおよびアフィン符号化された複数の非隣接ブロックから、複数のアフィン符号化隣接ブロックを取得し得る。
【0300】
いくつかの実施例では、プロセッサ2120は、複数の隣接ブロックおよび複数の非隣接ブロックから、複数の履歴アフィン符号化隣接ブロックを取得し得る。
【0301】
いくつかの実施例では、
図18に示されるように、隣接1は、アフィン継承マージ候補に対する導出処理に従って、現在ブロックの左のスキャニング領域をスキャンすることによって取得される1つの第1の隣接ブロックであり、1つまたは複数のそのような第1の隣接ブロックは、左のスキャニング領域を排他的にスキャンすることによって取得され得、および/または最上のスキャニング領域は、異なるスキャニング距離にある。異なるスキャニング距離は、
図8に示されるような距離1(D1)、距離2(D2)、距離3(D3)を含み得、D1、D2、D3はそれぞれ、スキャンされるMV候補が側に垂直な方向に沿って現在ブロックの1つの側からの距離1、距離2、または距離3にあることを示す。
【0302】
さらに、
図18に示されるように、隣接2は、アフィン構築マージ候補の導出処理に従って、現在ブロックの左のスキャニング領域をスキャンすることによって取得される1つの第2の隣接ブロックであり、1つまたは複数のそのような第2の隣接ブロックは、左のスキャニング領域を排他的にスキャンすることによって取得され得、および/または最上のスキャニング領域は、異なるスキャニング距離にある。異なるスキャニング距離は、
図8に示されるような距離1(D1)、距離2(D2)、距離3(D3)を含み得、D1、D2、D3はそれぞれ、スキャンされるMV候補が側に垂直な方向に沿って現在ブロックの1つの側からの距離1、距離2、または距離3にあることを示す。
【0303】
いくつかの実施例では、ステップ2505において示されるように、プロセッサ2120は、並進MVが取得されると決定したことに応答して、並進MVを通常のマージリストに挿入し得る。さらに、プロセッサ2120は、通常のマージリストがフルになるまで、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、追加の並進MVを取得し得、通常のマージリストに挿入し得る。いくつかの実施例では、プロセッサ2120は、フル通常のマージ候補リスト、すなわち、候補により完全に占有される通常のマージ候補リストから候補を選択し、対応するデコーダに候補をシグナリングする。
【0304】
いくつかの実施例では、ステップ2506において示されるように、プロセッサ2120は、複数のCPMVが取得されると決定したことに応答して、複数のCPMVをアフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。さらに、プロセッサ2120は、アフィンマージ候補リストまたはアフィンAMVP候補リストがフルになるまで、現在ブロックがアフィンモードとして符号化されると決定したことに応答して、追加の複数のCPMVを取得し得、アフィンマージ候補リストまたはアフィンAMVP候補リストに挿入し得る。いくつかの実施例では、プロセッサ2120は、フルアフィンマージ候補リスト、すなわち、候補により完全に占有されるアフィンマージ候補リスト、または、フル・アフィンAMVP候補リスト、すなわち、候補により完全に占有されるアフィンAMVPから候補を選択し得、対応するデコーダに候補をシグナリングし得る。
【0305】
いくつかの実施例では、エンコーダ側およびデコーダ側は各々、フルアフィンマージ候補リストまたはフル・アフィンAMVP候補リストを構築し得、デコーダ側は、エンコーダによって送信されるフルアフィンマージリストまたはフル・アフィンAMVP候補リスト内の候補を示す候補インデックスを受信し得る。受信された候補インデックスに従って、デコーダは、候補インデックスによって示される候補(すなわち、CPMV)を取得し得る。
【0306】
図26は、本開示の実施例に係る、ビデオ復号のための方法を例示するフローチャートである。
【0307】
ステップ2601では、デコーダ側において、プロセッサ2120は、所定の順序に従って、1つまたは複数の候補リストから1つまたは複数のMV候補を取得し得、1つまたは複数の候補リストは、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み得、1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでである。
【0308】
いくつかの実施例では、1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み得、同一のカテゴリ内の異なるMV候補は、1つまたは複数の候補リストに隣接に配置されない。
【0309】
いくつかの実施例では、1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み得、所定の順序は、各々のカテゴリ内のいくつかのMV候補に基づいて取得される。
【0310】
いくつかの実施例では、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックからの複数の構築候補と、非隣接ブロックからの第1の数の継承候補および非隣接ブロックからの残りの継承候補を含む非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からの第3の数の構築候補および第1のタイプの構築候補からの残りの構築候補を含む非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からの第2の数の構築候補および第2のタイプの構築候補からの残りの構築候補を含む非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0311】
例えば、
図22または
図23に従った全体的な処理は、隣接しない空間的隣接から構築される第1のタイプのアフィン候補を導出するために使用され得る(例えば、3つの隅角点A、B、およびCの傍に位置するサブブロックは、隣接しない空間的隣接である)。さらに、
図24または
図25に従った全体的な処理は、隣接しない空間的隣接から構築される第2のタイプのアフィン候補を導出するために使用され得る(例えば、非並進モデルパラメータは、隣接しない空間的隣接から継承され得る)。
【0312】
その上、プロセッサ2120はさらに、候補リストから、SbTMVP候補の後の隣接ブロックからの複数の継承候補を取得し得、候補リストから、隣接ブロックからの複数の継承候補の後の隣接ブロックからの複数の構築候補を取得し得、候補リストから、隣接ブロックからの複数の構築候補の後の非隣接ブロックからの第1の数の継承候補を取得し得、候補リストから、非隣接ブロックからの第1の数の継承候補の後の第2のタイプの構築候補から第2の数の構築候補を取得し得、候補リストから、第2のタイプの構築候補からの第2の数の構築候補の後の第1のタイプの構築候補からの第3の数の構築候補を取得し得、候補リストから、第1のタイプの構築候補からの第3の数の構築候補の後の非隣接ブロックからの残りの継承候補を取得し得、候補リストから、非隣接ブロックからの残りの継承候補の後の第2のタイプの構築候補からの残りの構築候補を取得し得、または候補リストから、第2のタイプの構築候補からの残りの構築候補の後の第1のタイプの構築候補からの残りの構築候補を取得し得る。
【0313】
例えば、MV候補を配置する所定の順序は、以下のように定義され得る:
(1)候補利用可能である場合、SbTMVP、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの構築候補、
(4)隣接しない近傍からの最初のX個の継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(5)隣接しない近傍からの第2のタイプの構築候補からの最初のY個の構築候補(例えば、Yは、Xと同様に定義され得る)、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のZ個の構築候補(例えば、Zは、Xと同様に定義され得る)、
(7)隣接しない近傍からの残りの継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(8)隣接しない近傍からの第2のタイプの構築候補からの残りの構築候補(例えば、Yは、Xと同様に定義され得る)、
(9)隣接しない近傍からの第1のタイプの構築候補からの残りの構築候補(例えば、Zは、Xと同様に定義され得る)、および
(10)ゼロMV。
【0314】
上記実施例では、第1の数はXであり、第2の数はYであり、第3の数はZである。
【0315】
いくつかの実施例では、第1の数、第2の数、および第3の数は、以下の方式の1つにおいて取得され得る:第1の数、第2の数、および第3の数をそれぞれ固定値として予め定義すること、またはエンコーダによって或るレベルにおいてシグナリングされる第1の数、第2の数、および第3の数を受信すること。
【0316】
いくつかの実施例では、プロセッサ2120は、候補リストから、各々のカテゴリ内の1つまたは複数の数のMV候補に基づいて、所定の順序に従ってMV候補を取得し得、各々のカテゴリ内の1つまたは複数の数のMV候補は、交互配置される方式において配置される。
【0317】
いくつかの実施例では、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックからのXi個の構築候補を含む隣接ブロックからの複数の構築候補と、非隣接ブロックからのZi個の継承候補を含む非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からのKi個の構築候補を含む非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からのYi個の構築候補を含む非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0318】
さらに、複数のカテゴリは、カテゴリの複数のセットを含み得、カテゴリの各々のセットは、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、第1のタイプの構築候補からのKi個の構築候補と、第2のタイプの構築候補からのYi個の構築候補と、を含み、Xi、Yi、Zi、およびKiはそれぞれ、正の整数であり、iは、2よりも大きい正の整数である。
【0319】
その上、プロセッサ2120はさらに、候補リストから、カテゴリの第2の/後のセットからMV候補を取得し得、カテゴリの第2の/後のセットは、隣接ブロックからのXi-1個の構築候補と、非隣接ブロックからのZi-1個の継承候補と、第1のタイプの構築候補からのKi-1個の構築候補と、第2のタイプの構築候補からのYi-1個の構築候補とを含むカテゴリの第1の/前のセットの後の、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、第1のタイプの構築候補からのKi個の構築候補と、第2のタイプの構築候補からのYi個の構築候補とを含む。
【0320】
いくつかの実施例では、プロセッサ2120はさらに、隣接ブロックからの1つまたは複数の継承候補の後の、隣接ブロックからのX1個の構築候補と、非隣接ブロックからのZ1個の継承候補と、第1のタイプの構築候補からのK1個の構築候補と、第2のタイプの構築候補からのY1個の構築候補とを含む、カテゴリのセット内の隣接ブロックからの構築候補を取得し得、またはSbTMVP候補の後の隣接ブロックからの1つまたは複数の継承候補を取得し得る。
【0321】
いくつかの実施例では、iの値は、2、3、またはそれ以上であり得る。3を実施例として見なすが、値iは、3に限定されない。例えば、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックのX1個の構築候補、隣接ブロックからのX2個の構築候補、および隣接ブロックからのX3個の構築候補を含む、隣接ブロックからの複数の構築候補と、非隣接ブロックからのZ1個の継承候補、非隣接ブロックからのZ2個の継承候補、および非隣接ブロックからのZ3個の継承候補を含む、非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からのK1個の構築候補、第1のタイプの構築候補からのK2個の構築候補、および第1のタイプの構築候補からのK3個の構築候補を含む、非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からのY1個の構築候補、第2のタイプの構築候補ブロックからの第1のY2個の構築候補、および第2のタイプの構築候補からのY3個の構築候補を含む、非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0322】
さらに、複数のカテゴリは、隣接ブロックからのX1個の構築候補、非隣接ブロックからのZ1個の継承候補、第1のタイプの構築候補からのK1個の構築候補、第2のタイプの構築候補からのY1個の構築候補を含む、カテゴリの第1のセットと、隣接ブロックからのX2個の構築候補、非隣接ブロックからのZ2個の継承候補、第1のタイプの構築候補からのK2個の構築候補、第2のタイプの構築候補からのY2個の構築候補を含む、カテゴリの第2のセットと、隣接ブロックからのX3個の構築候補、非隣接ブロックからのZ3個の継承候補、第1のタイプの構築候補からのK3個の構築候補、第2のタイプ構築候補からのY3個の構築候補を含む、カテゴリの第3のセットと、を含み得る。
【0323】
その上、プロセッサ2120はさらに、候補リストから、カテゴリの第1のセットの後に配置されるカテゴリの第2のセットからMV候補を取得し得、候補リストから、カテゴリの第2のセットの後に配置されるカテゴリの第3のセットからMV候補を取得し得、隣接ブロックからの1つまたは複数の継承候補の後のカテゴリの第1のセットからの隣接ブロックからの構築候補を取得し得、またはSbTMVP候補の後の隣接ブロックからの1つまたは複数の継承候補を取得し得る。
【0324】
1つの実施例では、交互配置される方式は、以下のように定義され得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの最初のX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの最初のY1個の構築候補、
(5)隣接しない近傍からの最初のZ1個の継承候補、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(7)隣接する隣接からの最初のX2個の構築候補、
(8)隣接しない近傍からの第2のタイプの構築候補からの最初のY2個の構築候補、
(9)隣接しない近傍からの最初のZ2個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のK2個の構築候補、
(11)・・・
(12)隣接する隣接からの最初のXi個の構築候補、
(13)隣接しない近傍からの第2のタイプの構築候補からの最初のYi個の構築候補、
(14)隣接しない近傍からの最初のZi個の継承候補、
(15)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(16)ゼロMV。
【0325】
いくつかの実施例では、Xi、Yi、Zi、およびKiは、以下の方式の1つにおいて取得される:Xi、Yi、Zi、およびKiをそれぞれ固定値として予め定義すること、またはエンコーダによっていずれかのレベルにおいてシグナリングされるXi、Yi、Zi、およびKiを受信すること。
【0326】
いくつかの実施例では、プロセッサ2120は、1つのカテゴリ内の利用可能なMV候補の数が他のカテゴリ未満であると決定したことに応答して、1つのカテゴリの1つまたは複数の位置に配置される他のカテゴリ内の利用可能なMV候補を取得し得る。例えば、1つのカテゴリの利用可能な候補の数が他のカテゴリ未満である場合、このカテゴリに対する候補の位置がスキップされ、他のカテゴリの残りの利用可能な候補は、この位置を引き継ぐ。
【0327】
いくつかの実施例では、プロセッサ2120は、候補リストから、1つまたは複数のカテゴリ内の利用可能なMV候補に基づいて、所定の順序に従ってMV候補を取得し得、他のカテゴリ内のMV候補は、交互配置される方式において候補リストに配置される。
【0328】
例えば、可用性および交互配置方法の両方を考慮する上記の組み合わせバージョンは、以下のように定義され得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの最初のX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの全ての利用可能な構築候補、
(5)隣接する隣接からの残りの構築候補、
(6)隣接しない近傍からの最初のZ1個の継承候補、
(7)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(8)・・・
(9)隣接しない近傍からの最初のZi個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(11)ゼロMV。
【0329】
ステップ2602では、プロセッサ2120は、1つまたは複数のMV候補に基づいて、現在ブロックに対する1つまたは複数のCPMVを取得し得る。
【0330】
図27は、
図26に示されるようなビデオ復号のための方法に対応するビデオ符号化のための方法を例示するフローチャートである。
【0331】
ステップ2701では、エンコーダ側におけるプロセッサ2120は、所定の順序に従って、1つまたは複数の候補リストから1つまたは複数のMV候補を取得し得、1つまたは複数の候補リストは、アフィンAMVP候補リスト、通常のマージ候補リスト、およびアフィンマージ候補リストを含み得、1つまたは複数のMV候補は、複数の隣接ブロックから現在ブロックまでである。
【0332】
いくつかの実施例では、1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み得、同一のカテゴリ内の異なるMV候補は、1つまたは複数の候補リストに隣接に配置されない。
【0333】
いくつかの実施例では、1つまたは複数のMV候補は、複数のカテゴリのMV候補を含み得、所定の順序は、各々のカテゴリ内のMV候補の数に基づいて取得される。
【0334】
いくつかの実施例では、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックからの複数の構築候補と、非隣接ブロックからの第1の数の継承候補および非隣接ブロックからの残りの継承候補を含む非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からの第3の数の構築候補および第1のタイプの構築候補からの残りの構築候補を含む非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からの第2の数の構築候補および第2のタイプ構築候補からの残りの構築候補を含む非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0335】
その上、プロセッサ2120はさらに、候補リストから、SbTMVP候補の後の隣接ブロックからの複数の継承候補を取得し得、候補リストから、隣接ブロックからの複数の継承候補の後の隣接ブロックからの複数の構築候補を取得し得、候補リストから、隣接ブロックからの複数の構築候補の後の非隣接ブロックからの第1の数の継承候補を取得し得、候補リストから、非隣接ブロックからの第1の数の継承候補の後の第2のタイプの構築候補からの第2の数の構築候補を取得し得、候補リストから、第2のタイプの構築候補からの第2の数の構築候補の後の第1のタイプの構築候補からの第3の数の構築候補を取得し得、候補リストから、第1のタイプの構築候補からの第3の数の構築候補の後の非隣接ブロックからの残りの継承候補を取得し得、候補リストから、非隣接ブロックからの残りの継承候補の後の第2のタイプ構築候補からの残りの構築候補を取得し得、または候補リストから、第2のタイプ構築候補からの残りの構築候補の後の第1のタイプの構築候補からの残りの構築候補を取得し得る。
【0336】
例えば、MV候補を配置する所定の順序は、以下のように定義され得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの構築候補、
(4)隣接しない近傍からの最初のX個の継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(5)隣接しない近傍からの第2のタイプの構築候補からの最初のY個の構築候補(例えば、Yは、Xと同様に定義され得る)、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のZ個の構築候補(例えば、Zは、Xと同様に定義され得る)、
(7)隣接しない近傍からの残りの継承候補(例えば、Xは、1またはシグナリングされた数などの予め固定された数であり得る)、
(8)隣接しない近傍からの第2のタイプ構築候補からの残りの構築候補(例えば、Yは、Xと同様に定義され得る)、
(9)隣接しない近傍からの第1のタイプの構築候補からの残りの構築候補(例えば、Zは、Xと同様に定義され得る)、および
(10)ゼロMV。
【0337】
上記実施例では、第1の数はXであり、第2の数はYであり、第3の数はZである。
【0338】
いくつかの実施例では、第1の数、第2の数、および第3の数は、以下の方式の1つにおいて取得され得る:第1の数、第2の数、および第3の数をそれぞれ固定値として予め定義すること、または或るレベルにおいてシグナリングされる第1の数、第2の数、および第3の数をシグナリングすること。
【0339】
いくつかの実施例では、プロセッサ2120は、各々のカテゴリ内の1つまたは複数の数のMV候補に基づいて、所定の順序に従ってMV候補を候補リストに挿入し得、各々のカテゴリ内の1つまたは複数の数のMV候補は、交互配置される方式において配置される。
【0340】
いくつかの実施例では、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックからのXi個の構築候補を含む隣接ブロックからの複数の構築候補と、非隣接ブロックからのZi個の継承候補を含む非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からのKi個の構築候補を含む非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からのYi個の構築候補を含む非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0341】
さらに、複数のカテゴリは、カテゴリの複数のセットを含み得、カテゴリの各々のセットは、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、第1のタイプの構築候補からのKi個の構築候補と、第2のタイプの構築候補からのYi個の構築候補と、を含み、Xi、Yi、Zi、およびKiはそれぞれ、正の整数であり、iは、2よりも大きい正の整数である。
【0342】
その上、プロセッサ2120はさらに、候補リストに、カテゴリの第2の/後のセットからのMV候補を挿入し得、カテゴリの第2の/後のセットは、隣接ブロックからのXi-1個の構築候補と、非隣接ブロックからのZi-1個の継承候補と、第1のタイプの構築候補からのKi-1個の構築候補と、第2のタイプの構築候補からのYi-1個の構築候補とを含むカテゴリの第1の/前のセットの後の、隣接ブロックからのXi個の構築候補と、非隣接ブロックからのZi個の継承候補と、第1のタイプの構築候補からのKi個の構築候補と、第2のタイプの構築候補からのYi個の構築候補とを含む。
【0343】
いくつかの実施例では、プロセッサ2120はさらに、隣接ブロックからの1つまたは複数の継承候補の後の、隣接ブロックのX1個の構築候補と、非隣接ブロックからのZ1個の継承候補と、第1のタイプの構築候補からのK1個の構築候補と、第2のタイプの構築候補からのY1個の構築候補とを含む、カテゴリのセット内の隣接ブロックからの構築候補に挿入し得、SbTMVP候補の後の隣接ブロックからの1つまたは複数の継承候補に挿入し得、または候補リストがフルでないと決定したことに応答して、候補リストに、カテゴリの最後のセットからのMV候補の後の1つまたは複数のゼロMV候補を挿入し得る。
【0344】
いくつかの実施例では、iの値は、2、3、またはそれ以上であり得る。3を実施例として見なすが、値iは、3に限定されない。例えば、複数のカテゴリのMV候補は、SbTMVP候補と、隣接ブロックからの複数の継承候補と、隣接ブロックのX1個の構築候補、隣接ブロックからのX2個の構築候補、および隣接ブロックからのX3個の構築候補を含む、隣接ブロックからの複数の構築候補と、非隣接ブロックからのZ1個の継承候補、非隣接ブロックからのZ2個の継承候補、および非隣接ブロックからのZ3個の継承候補を含む、非隣接ブロックからの複数の継承候補と、第1のタイプの構築候補からのK1個の構築候補、第1のタイプの構築候補からのK2個の構築候補、および第1のタイプの構築候補からのK3個の構築候補を含む、非隣接ブロックからの第1のタイプの構築候補からの複数の構築候補と、第2のタイプの構築候補からのY1個の構築候補、第2のタイプの構築候補ブロックからの第1のY2個の構築候補、および第2のタイプの構築候補からのY3個の構築候補を含む、非隣接ブロックからの第2のタイプの構築候補からの複数の構築候補と、を含み得る。
【0345】
さらに、複数のカテゴリは、隣接ブロックからのX1個の構築候補、非隣接ブロックからのZ1個の継承候補、第1のタイプの構築候補からのK1個の構築候補、第2のタイプの構築候補からのY1個の構築候補を含む、カテゴリの第1のセットと、隣接ブロックからのX2個の構築候補、非隣接ブロックからのZ2個の継承候補、第1のタイプの構築候補からのK2個の構築候補、第2のタイプの構築候補からのY2個の構築候補を含む、カテゴリの第2のセットと、隣接ブロックからのX3個の構築候補、非隣接ブロックからのZ3個の継承候補、第1のタイプの構築候補からのK3個の構築候補、第2のタイプ構築候補からのY3個の構築候補を含む、カテゴリの第3のセットと、を含み得る。
【0346】
その上、プロセッサ2120はさらに、候補リストに、カテゴリの第1のセットの後に配置されるカテゴリの第2のセットからMV候補を挿入し得、候補リストに、カテゴリの第2のセットの後に配置されるカテゴリの第3のセットからMV候補を挿入し得、候補リストに、隣接ブロックからの1つまたは複数の継承候補の後のカテゴリの第1のセットからの隣接ブロックからの構築候補を挿入し得、または候補リストに、SbTMVP候補の後の隣接ブロックからの1つまたは複数の継承候補を挿入し得る。
【0347】
1つの実施例では、交互配置される方式は、以下のように定義され得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの最初のX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの最初のY1個の構築候補、
(5)隣接しない近傍からの最初のZ1個の継承候補、
(6)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(7)隣接する隣接からの最初のX2個の構築候補、
(8)隣接しない近傍からの第2のタイプの構築候補からの最初のY2個の構築候補、
(9)隣接しない近傍からの最初のZ2個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のK2個の構築候補、
(11)・・・
(12)隣接する隣接からの最初のXi個の構築候補、
(13)隣接しない近傍からの第2のタイプの構築候補からの最初のYi個の構築候補、
(14)隣接しない近傍からの最初のZi個の継承候補、
(15)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(16)ゼロMV。
【0348】
いくつかの実施例では、Xi、Yi、Zi、およびKiは、以下の方式の1つにおいて取得される:Xi、Yi、Zi、およびKiをそれぞれ固定値として予め定義すること、またはエンコーダによっていずれかのレベルにおいてシグナリングされるXi、Yi、Zi、およびKiを受信すること。
【0349】
いくつかの実施例では、プロセッサ2120は、1つのカテゴリ内の利用可能なMV候補の数が他のカテゴリ未満であると決定したことに応答して、1つのカテゴリの1つまたは複数の位置に配置される他のカテゴリ内の利用可能なMV候補を取得し得る。例えば、1つのカテゴリの利用可能な候補の数が他のカテゴリ未満である場合、このカテゴリに対する候補の位置がスキップされ、他のカテゴリの残りの利用可能な候補は、この位置を引き継ぐ。
【0350】
いくつかの実施例では、プロセッサ2120は、候補リストに、1つまたは複数のカテゴリ内の利用可能なMV候補に基づいて、所定の順序に従ってMV候補を挿入し得、他のカテゴリ内のMV候補は、交互配置される方式において候補リストに配置される。
【0351】
例えば、可用性および交互配置方法の両方を考慮する上記の組み合わせバージョンは、以下のように定義され得る:
(1)利用可能である場合、SbTMVP候補、
(2)隣接する隣接からの継承候補、
(3)隣接する隣接からの最初のX1個の構築候補、
(4)隣接しない近傍からの第2のタイプの構築候補からの全ての利用可能な構築候補、
(5)隣接する隣接からの残りの構築候補、
(6)隣接しない近傍からの最初のZ1個の継承候補、
(7)隣接しない近傍からの第1のタイプの構築候補からの最初のK1個の構築候補、
(8)・・・
(9)隣接しない近傍からの最初のZi個の継承候補、
(10)隣接しない近傍からの第1のタイプの構築候補からの最初のKi個の構築候補、および
(11)ゼロMV。
【0352】
ステップ2702では、プロセッサ2120は、1つまたは複数のMV候補に基づいて、現在ブロックに対する1つまたは複数のCPMVを取得し得る。
【0353】
いくつかの実施例では、ビデオ復号のための装置が提供される。装置は、プロセッサ2120と、プロセッサによって実行可能な命令を記憶するように構成されたメモリ2140とを含み、プロセッサは、命令を実行すると、
図22、24、および26に例示されたようないずれかの方法を実行するように構成される。
【0354】
いくつかの実施例では、ビデオ符号化のための装置が提供される。装置は、プロセッサ2120と、プロセッサによって実行可能な命令を記憶するように構成されたメモリ2140とを含み、プロセッサは、命令が実行されると、
図23、25および27に例示されるようないずれかの方法を実行するように構成される。
【0355】
いくつかの他の実施例では、そこに記憶された命令を有する非一時的コンピュータ可読記憶媒体が提供される。命令がプロセッサ2120によって実行されるとき、命令は、プロセッサに、
図22~27に例示されるようないずれかの方法を実行させる。1つの実施例では、複数のプログラムは、符号化ビデオ情報(例えば、符号化ビデオ・フレームを表すビデオブロック、および/または関連する1つまたは複数の構文要素など)を含むビットストリームまたはデータ・ストリームを受信するように(例えば、
図2におけるビデオエンコーダ20から)、コンピューティング環境2110内のプロセッサ2120によって実行され得、また、受信されたビットストリームまたはデータ・ストリームに従って、上記で説明された復号方法を実行するように、コンピューティング環境2110内のプロセッサ2120によって実行され得る。別の実施例では、複数のプログラムは、ビデオ情報(例えば、ビデオ・フレームを表すビデオブロック、および/または関連する1つまたは複数の構文要素など)をビットストリームまたはデータ・ストリームに符号化するための、上記で説明された符号化方法を実行するように、コンピューティング環境2110内のプロセッサ2120によって実行され得、また、ビットストリームまたはデータ・ストリームを伝送するように(例えば、
図3におけるビデオデコーダ30に)、コンピューティング環境2110内のプロセッサ2120によって実行され得る。代わりに、非一時的コンピュータ可読記憶媒体は、ビデオデータを復号する際に、デコーダ(例えば、
図3におけるビデオデコーダ30)による使用のための、例えば、上記で説明された符号化方法を使用して、エンコーダ(例えば、
図2におけるビデオエンコーダ20)によって生成された符号化ビデオ情報(例えば、符号化ビデオ・フレームを表すビデオブロック、および/または関連する1つまたは複数の構文要素など)を含む、ビットストリームまたはデータ・ストリームをそこに記憶し得る。非一時的コンピュータ可読記憶媒体は、例えば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、または光学データ記憶デバイスなどであり得る。
【0356】
ここで開示される本開示の明細書および実施の考慮から、開示の他の実施例が当業者にとって明らかである。本出願は、本分野における既知または通常の実施内にあるように、その一般的な原理を遵守し、本開示からのそのような逸脱を含む、開示のいずれかの変形、使用、または適合を網羅することが意図される。明細書および実施例が例示としてのみ考えられることが意図される。
【0357】
本開示は、上記で説明され、添付図面において例示された厳密な実施例に限定されず、その範囲から逸脱することなく、様々な修正および変更が行われ得ることを認識されよう。
【手続補正書】
【提出日】2024-06-27
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正の内容】
【0063】
ステップ1:利用可能な隣接からMV1、MV2、MV3、およびMV4を含む4つの並進MVを取得する。
MV1:現在ブロックの左最上隅に近い3つの隣接ブロックの1つからのMV。
図7に示されるように、スキャニング順序は、B2、B3、およびA2である。
MV2:現在ブロックの右最上隅に近い2つの隣接ブロックからの1つ
のMV。
図7に示されるように、スキャニング順序は、B1およびB0である。
MV3:現在ブロックの左下隅に近い2つの隣接ブロックからの1つ
のMV。
図7に示されるように、スキャニング順序は、A1およびA0である。
MV4:現在ブロックの右下隅に近い隣接ブロックの時間的に同一位置にあるブロックからのMV。図に示されるように、隣接ブロックは、Tである。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0105
【補正方法】変更
【補正の内容】
【0105】
別の実施形態では、閾値は、現在ブロックの幅または高さを考慮することによって定義され得る。表3および表4は、この実施形態における実施例である。表3は、現在符号化ブロックの幅によって定義された閾値を示し、表4は、現在符号化ブロックの高さによって定義された閾値を示す。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0108
【補正方法】変更
【補正の内容】
【0108】
別の実施形態では、固定値のグループとして閾値が定義され得る。別の実施形態では、閾値は、上記の実施形態のいずれかの組み合わせによって定義され得る。1つの実施例では、閾値は、異なるパラメータ並びに現在ブロックの幅および高さを考慮することによって定義され得る。表5は、現在符号化ブロックの幅および高さによって定義された閾値を示す、この実施形態における1つの実施例である。いずれかの上記で提案された実施形態では、比較可能パラメータは、必要である場合、式(4)~式(9)からのいずれかの式において定義されたいずれかのパラメータを表し得る。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0110
【補正方法】変更
【補正の内容】
【0110】
候補冗長性チェックのための転換アフィンモデルパラメータを使用する利点は、それが異なるアフィンモデル・タイプを有する候補に対する統一類似性チェック処理を生じさせ、例えば、1つのマージ候補は、3つのCPMVを有する6-パラメータ・アフィンモデルを使用し得ると共に別の候補は、2つのCPMVを有する4-パラメータ・アフィンモデルを使用し得、それは、各々のサブブロックにおけるターゲットMVを導出するときにマージ候補における各々のCPMVの異なる影響を考慮し、それは、現在ブロックの幅および高さに関連する2つのアフィンマージ候補の類似性有意性を提供することである。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0115
【補正方法】変更
【補正の内容】
【0115】
1つまたは複数の実施形態では、各々の距離における非隣接ブロックは、
図13Aに示されるように、現在符号化ブロックと同一のブロックサイズを有し得る。
図13Aに示されるように、左側上の非隣接ブロック1301および上側上の非隣接ブロック1302は、現在ブロック1303と同一のサイズを有する。いくつかの実施形態では、各々の距離における非隣接ブロックは、
図13Bに示されるように、現在符号化ブロックとは異なるブロックサイズを有し得る。隣接ブロック1304は、現在ブロック1303に隣接ブロックである。
図13Bに示されるように、左側上の非隣接ブロック1305および上側上の非隣接ブロック1306は、現在ブロック1307と
異なるサイズを有する。隣接ブロック1308は、現在ブロック1307に隣接ブロックである。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0118
【補正方法】変更
【補正の内容】
【0118】
定義されたスキャニング距離に基づいて、現在符号化
ブロックの左または上のいずれかの上のスキャニング領域の合計サイズは、構成可能な距離値によって決定され得る。1つまたは複数の実施形態では、左側および上側上の最大スキャニング距離は、同一の値または異なる値を使用し得る。
図13は、左側および上側の両方の上の最大距離が2の同一の値を共有する実施例を示す。最大スキャニング距離値(複数可)は、エンコーダ側によって決定され得、ビットストリームにおいてシグナリングされ得る。代わりに、最大スキャニング距離値(複数可)は、2または4の値など、固定値(複数可)として予め定義され得る。最大スキャニング距離が4の値として予め定義されるとき、それは、候補リストがフルであるときにスキャニング処理が完結されること、またはどちらが先に来ても、最大距離4を有する全ての非隣接ブロックがスキャンされたことを示す。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0167
【補正方法】変更
【補正の内容】
【0167】
構築候補に対し、
図17Bに示されるように
、左および上の隣接しない空間的隣接の位置が最初に独立して決定される。その後、左および上の隣接しない近傍と共に矩形仮想ブロックを囲むことができる、左最上の隣接の位置が、それに従って決定され得る。次いで、
図9に示されるように、3つの隣接しない近傍の動き情報は、対応する構築候補を生成するために最終的に現在CUに投影される、仮想ブロックの左最上(A)、右最上(B)、および左下(C)においてCPMVを形成するために使用される。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0186
【補正方法】変更
【補正の内容】
【0186】
いくつかの実施例では、各々のグループと関連付けられた隣接ブロックは、異なる方法において決定され得る。1つの方法では、パラメータの異なるグループに対する隣接ブロックは、隣接しない近傍領域からの全てであり得ると共に、スキャニング方法は、非隣接ベース導出処理のための前に提案された方法と同様に設計され得る。別の方法では、パラメータの異なるグループに対する隣接ブロックは、隣接する隣接領域からの全てであり得ると共に、スキャニング方法は、現在のVVCまたはAVSビデオ標準規格と同一であり得る。別の方法では、パラメータの異なるグループに対する隣接ブロックは、隣接する近傍領域からの部分的であり得、隣接しない近傍領域から部分的であり得る。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0218
【補正方法】変更
【補正の内容】
【0218】
別の実施形態では、隣接しない空間的マージ候補は、以下の順序を遵守することによって、アフィンマージ候補リストに挿入され得る:1.利用可能である場合、SbTMVP候補、2.隣接する隣接から継承された、Xよりも短い距離により隣接しない近傍から継承された、4.隣接する隣接から構築された、5.Yよりも短い距離により隣接しない近傍から構築された、6.Xよりも長い距離により隣接しない近傍から継承された、7.Yよりも長い距離により隣接しない近傍から構築された、8.ゼロMV。この実施形態では、値XおよびYは、2の値などの予め定義された固定値、またはエンコーダによって決定されたシグナリング値、またはエンコーダ若しくはデコーダにおける構成可能な値であり得る。1つの実施例では、Xの値は、Yの値と同一であり得る。別の実施例では、Xの値は、Yの値とは異なり得る。
【手続補正10】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ復号のための方法であって、
デコーダによって、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得することと、
前記デコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置に基づいて、仮想ブロックを取得することと、
前記デコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置における並進動きベクトル(MV)に基づいて、前記仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得することと、
前記デコーダによって、前記仮想ブロックの前記複数の第1のCPMVを現在ブロックに投影して、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数の第2のCPMVを取得すること、
を含む、方法。
【請求項2】
前記デコーダによって、前記現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記デコーダによって、前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記複数の第2のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入すること、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記デコーダによって、前記通常のマージリストがフルになるまで、追加の並進MVを取得し、前記通常のマージリストに挿入することと、
前記デコーダによって、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストがフルになるまで、追加の複数の第2のCPMVを取得し、前記アフィンマージ候補リストまたは前記アフィンAMVP候補リストに挿入すること、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記特定の位置は、前記現在ブロック内の中心位置を含む、請求項1に記載の方法。
【請求項5】
前記仮想ブロックは、矩形符号化ブロックであり、前記第3の候補位置は、前記第1の候補位置の垂直位置および前記第2の候補位置の水平位置に基づいて決定される、請求項1に記載の方法。
【請求項6】
前記デコーダによって、第1のスキャニング距離および第1のスキャニング領域に従って前記第1の候補位置を取得することであって、前記第1のスキャニング距離は、前記第1の候補位置と前記現在ブロックの左側との間の第1の距離を示し、前記第1のスキャニング領域は、前記現在ブロックの左に位置することと、
前記デコーダによって、第2のスキャニング距離および第2のスキャニング領域に従って前記第2の候補位置を取得することであって、前記第2のスキャニング距離は、前記第2の候補位置と前記現在ブロックの最上側との間の第2の距離を示し、前記第2のスキャニング領域は、前記現在ブロックの上に位置することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
ビデオ符号化のための方法であって、
エンコーダによって、第1の候補位置および第2の候補位置に基づいて、第3の候補位置を取得することと、
前記エンコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置に基づいて、仮想ブロックを取得することと、
前記エンコーダによって、前記第1の候補位置、前記第2の候補位置、および前記第3の候補位置における並進動きベクトル(MV)に基づいて、前記仮想ブロックに対する複数の第1の制御点動きベクトル(CPMV)を取得することと、
前記エンコーダによって、現在ブロックが通常のインターモードとして符号化されると決定したことに応答して、前記現在ブロック内の特定の位置に基づいて並進MVを取得し、または前記現在ブロックがアフィンモードとして符号化されると決定したことに応答して、前記現在ブロックに対する複数の第2のCPMVを取得するように、前記仮想ブロックに対する前記複数の第1のCPMVを前記現在ブロックに投影すること、
を含む、方法。
【請求項8】
前記エンコーダによって、前記並進MVが取得されると決定したことに応答して、前記並進MVを通常のマージリストに挿入することと、
前記エンコーダによって、前記複数の第2のCPMVが取得されると決定したことに応答して、前記複数の第2のCPMVをアフィンマージ候補リストまたはアフィンアドバンスト動きベクトル予測(AMVP)候補リストに挿入することと、
をさらに含む、請求項7に記載の方法。
【請求項9】
前記特定の位置は、前記現在ブロック内の中心位置を含む、請求項
7に記載の方法。
【請求項10】
前記仮想ブロックは、矩形符号化ブロックであり、前記第3の候補位置は、前記第1の候補位置の垂直位置および前記第2の候補位置の水平位置に基づいて決定される、請求項7に記載の方法。
【請求項11】
前記エンコーダによって、第1のスキャニング距離および第1のスキャニング領域に従って前記第1の候補位置を取得することであって、前記第1のスキャニング距離は、前記第1の候補位置と前記現在ブロックの左側との間の第1の距離を示し、前記第1のスキャニング領域は、前記現在ブロックの左に位置することと、
前記エンコーダによって、第2のスキャニング距離および第2のスキャニング領域に従って前記第2の候補位置を取得することであって、前記第2のスキャニング距離は、前記第2の候補位置と前記現在ブロックの最上側との間の第2の距離を示し、前記第2のスキャニング領域は、前記現在ブロックの上に位置することと、
をさらに含む、請求項
9記載の方法。
【請求項12】
ビデオ復号のための装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続され、前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を含み、
前記1つまたは複数のプロセッサは、前記命令が実行されると、請求項1から11のいずれか一項に記載の方法を実行するように構成される、
装置。
【請求項13】
ビットストリームを記憶する方法であって、前記ビットストリームは、請求項1から6のいずれか一項に記載の方法によって復号される、方法。
【請求項14】
請求項1から6のいずれか一項に記載の方法によって復号されるビットストリームを受信する方法。
【請求項15】
1つまたは複数のプロセッサを有するコンピューティングデバイスによって実行される非一時的コンピュータ可読記憶媒体に記憶されたコンピュータプログラムであって、前記コンピュータプログラムは、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスに請求項1から11のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【国際調査報告】