(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023063506
(43)【公開日】2023-05-09
(54)【発明の名称】構築されたアフィンマージ候補を導出する方法
(51)【国際特許分類】
H04N 19/52 20140101AFI20230427BHJP
【FI】
H04N19/52
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023041350
(22)【出願日】2023-03-15
(62)【分割の表示】P 2021534245の分割
【原出願日】2019-12-13
(31)【優先権主張番号】62/779,423
(32)【優先日】2018-12-13
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】チェン、イー-ウェン
(72)【発明者】
【氏名】ワン、シアンリン
(57)【要約】
【課題】本開示は、構築されたアフィンマージ候補を導出するための方法に関する。
【解決方法】本方法は、デコーダから1以上の制御点集合を取得し、デコーダによって、第1の参照ピクチャリスト内の参照ピクチャを指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点が、ゼロ以上であり、各々が互いに等しいかどうかを判定し、デコーダによって、第2の参照ピクチャリスト内の参照ピクチャを指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点がゼロ以上であり、各々が互いに等しいかどうかを判定し、デコーダによって、判定結果に基づいてアフィン動きモデルが利用可能であると判定すること、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ビデオ符号化方法であって、
1以上の制御点集合をエンコーダにより取得し、各制御点集合は、制御点集合インデックスと複数の制御点とを含み、
前記エンコーダによって、参照リスト内の参照インデックスに関連する制御点集合が、有効であるかをチェックし、
前記関連する制御点集合が有効である場合、前記エンコーダによって、前記関連する制御点集合によりアフィン動きモデルを導出し、
前記関連する制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかが判定される
ことを含む、方法。
【請求項2】
前記参照リストは、第1の参照リストと第2の参照リストとを含み、
前記第1の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいこと、及び、
前記第2の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいこと、
の少なくとも一方の場合に、アフィン動きモデルが利用可能であることを示すフラグを設定すること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記エンコーダにより前記制御点集合を取得することは、
入力されたビデオから空間隣接ブロックおよび時間ブロックを取得し、
前記空間隣接ブロックおよび前記時間ブロックに基づいて制御点を決定し、
前記空間隣接ブロックおよび前記時間ブロックからの前記制御点に基づいて動き情報を導出し、
前記制御点に基づいて前記制御点集合を定義すること
を含み、
制御点集合は制御点集合インデックスを含む、請求項1に記載の方法。
【請求項4】
前記制御点集合は、少なくとも2つの制御点を含み、
各制御点は、第1の参照インデックス、第1の動きベクトル、第2の参照ピクチャインデックス、及び第2の動きベクトルを含む、
請求項3に記載の方法。
【請求項5】
現在のブロックの関連する制御点の動き情報を、前記制御点集合内の前記制御点の動き情報と同じに設定して、構築されたアフィン動きモデルを導出し、
前記構築されたアフィン動きモデルが利用可能であると判定し、前記構築されたアフィン動きモデルをアフィンマージ候補リストに挿入すること
をさらに含む、請求項1記載の方法。
【請求項6】
前記現在のブロックの参照インデックスを、前記アフィンマージ候補リスト内の前記構築されたアフィン動きモデルの参照インデックスと同じに設定すること
をさらに含む、請求項5に記載の方法。
【請求項7】
前記参照リスト内の動きベクトルに関連する、前記制御点集合内の制御点集合インデックスの第1の制御点の動きベクトルが、前記参照リスト内の動きベクトルに関連する、前記制御点集合内の前記制御点集合インデックスの第2の制御点の動きベクトルに等しくないこと、又は、前記第1の制御点の動きベクトルが、前記参照リスト内の動きベクトルに関連する、前記制御点集合内の前記制御点集合インデックスの第3の制御点の動きベクトルに等しくないことを判定し、
現在のブロックの関連する制御点の動き情報を、前記制御点集合インデックスの前記制御点集合内の前記制御点の動き情報と同じに設定して、構築されたアフィン動きモデルを導出すること、
をさらに含む、請求項1に記載の方法。
【請求項8】
1以上のプロセッサと、
前記1以上のプロセッサによって実行可能な命令を格納する、非一時的コンピュータ可読メモリと、
を備え、
前記1以上のプロセッサは、
1以上の制御点集合を取得し、各制御点集合が制御点集合インデックスと複数の制御点とを含み、
参照リスト内の参照インデックスに関連する制御点集合が、有効であるかをチェックし、
前記関連する制御点集合が有効である場合、前記関連する制御点集合によりアフィン動きモデルを導出し、
前記関連する制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかが判定される
よう構成される、ビデオ符号化装置。
【請求項9】
1以上のプロセッサを有するコンピュータ装置によって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記複数のプログラムは、前記1以上のプロセッサによって実行されると、前記コンピュータ装置に、請求項1~請求項7のいずれか一項に記載のビデオ符号化方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項10】
プログラムを記憶した非一時的コンピュータ可読記憶媒体であって、前記プログラムが実行されるとコンピュータに、請求項1~請求項7のいずれか一項に記載のビデオ符号化方法を実行させて、ビデオビットストリームを生成する、
非一時的コンピュータ可読記憶媒体。
【請求項11】
1以上のプロセッサと、
前記1以上のプロセッサによって実行される命令を記憶する、非一時的コンピュータ可読記憶媒体と、
を備え、
前記1以上のプロセッサは、請求項1~請求項7のいずれか一項に記載のビデオ符号化を実行して、ビデオビットストリームを生成するように構成される、
コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年12月13日に出願された米国仮出願第62/779,423号に基づき、その優先権を主張し、その全内容は、参照により本明細書に組み込まれる。
【0002】
本出願は、ビデオ(動画像)の符号化と圧縮に関する。より具体的には、本出願は、ビデオ符号化におけるアフィン動き予測のためのシステムおよび方法に関する。
【背景技術】
【0003】
ビデオデータを圧縮するために、様々なビデオ符号化技術を使用することができる。ビデオ符号化は、一つ以上のビデオ符号化規格に従って実行される。例えば、ビデオ符号化規格は、汎用ビデオ符号化(versatile video coding:VVC)、ジョイント探索テストモデル(joint exploration test model:JEM)、高効率ビデオ符号化(H.265/HEVC)、アドバンストビデオ符号化(H.264/AVC)、動画像エキスパートグループ(moving picture experts group:MPEG)符号化などを含む。ビデオ符号化は一般に、ビデオ画像またはシーケンスに存在する冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化技術の重要な目標は、ビデオ品質の劣化を回避または最小限に抑えながら、ビデオデータを、より低いビットレートを使用する形式に圧縮することである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の例は、構築されたアフィンマージ(merge)候補を導出するための方法を提供する。
【課題を解決するための手段】
【0005】
本開示の第1の態様によれば、ビデオ復号化方法が提供され、ビデオ復号化方法は、1以上の制御点集合をデコーダにより取得し、各制御点集合は、制御点集合インデックスと複数の制御点とを含み、各制御点は、第1の参照インデックスと、第1の動きベクトルと、第2の参照インデックスと、第2の動きベクトルと、を含み、前記デコーダによって、第1の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、前記デコーダによって、第2の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、前記デコーダによって、前記判定の結果に基づいて、アフィン動きモデルが利用可能であることを示すフラグを設定することを含む。
【0006】
本開示の第2の態様によれば、ビデオ復号化装置が提供され、ビデオ復号化装置は、1以上のプロセッサと、前記1以上プロセッサによって実行可能な命令を格納する、非一時的コンピュータ可読メモリと、を備え、前記1以上のプロセッサは、デコーダにより1以上の制御点集合を取得し、各制御点集合が、制御点集合インデックスと複数の制御点とを含み、各制御点が、第1の参照インデックスと、第1の動きベクトルと、第2の参照インデックスと、第2の動きベクトルと、を含み、前記デコーダによって、第1の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、 前記デコーダによって、第2の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、前記デコーダによって、前記判定の結果に基づいて、アフィン動きモデルが利用可能であることを示すフラグを設定するよう構成される。
【0007】
本開示の第3の態様によれば、1以上のプロセッサを有するビデオ復号化装置によって実行される複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体が提供され、前記複数のプログラムは、前記1以上のプロセッサによって実行されると、前記ビデオ復号化装置に、デコーダにより1以上の制御点集合を取得し、各制御点集合が、制御点集合インデックスと複数の制御点とを含み、各制御点が、第1の参照インデックスと、第1の動きベクトルと、第2の参照インデックスと、第2の動きベクトルと、を含み、前記デコーダによって、第1の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、前記デコーダによって、第2の参照リスト内の参照インデックスに関連する、前記制御点集合内の前記制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、各々が互いに等しいかどうかを判定し、前記デコーダによって、前記判定の結果に基づいて、アフィン動きモデルが利用可能であることを示すフラグを設定することを含む復号化動作を実行させる。
【0008】
前述の一般的な説明および以下の詳細な説明の双方は例示にすぎず、本開示を限定するものではないことを理解されたい。
【0009】
本明細書に組み込まれ、その一部を構成する添付の図面は、本開示と一致する例を示し、詳細な説明とともに、本開示の原理を説明する役割を果たす。
【図面の簡単な説明】
【0010】
【
図1】本開示の一例によるエンコーダのブロック図である。
【
図2】本開示の一例によるデコーダのブロック図である。
【
図3】本開示の一例による、構築されたアフィンマージ候補を導出するための方法を示すフローチャートである。
【
図4】本開示の一例による、構築されたアフィンマージ候補を導出する方法を示すフローチャートである。
【
図5】本開示の一例による、構築されたアフィンマージ候補を導出する方法を示すフローチャートである。
【
図6A】本開示の一例による、制御点ベースのアフィン動きモデルである。
【
図6B】本開示の一例による、制御点ベースのアフィン動きモデルである。
【
図7】本開示の一例による、サブブロックごとのアフィン動きベクトルフィールド(motion vector field:MVF)である。
【
図8】本開示の一例による、候補位置の配置である。
【
図9】本開示の一例による制御点動きベクトルである。
【
図10】本開示の一例による、候補位置の配置である。
【
図11】本開示の一例による、構築されたアフィンマージ候補を導出するフローチャートである。
【
図12】本開示の一例による、動きベクトルの使用を示す図である。
【
図13】本開示の一例による、アフィンマージ候補を導出する方法である。
【
図14】本開示の一例による、アフィン動きモデルの導出を示す図である。
【
図15】本開示の一例による、アフィン動きモデルの導出を示す図である。
【
図16】本開示の一例による、アフィン動きモデルの導出を示す図である。
【
図17】本開示の一例によるコンピューティング環境のブロック図である。
【発明を実施するための形態】
【0011】
添付の図面に例が示される例示的な実施形態について詳細に説明する。以下の説明は添付の図面を参照し、異なる図面中の同じ番号は、特に示さない限り、同一または類似の要素を表す。例示的な実施形態の以下の説明に記載される実装は、本開示と一致するすべての実装を表すわけではない。むしろそれらは、添付の特許請求の範囲に記載されるような開示に関連する態様と一致する装置および方法の例にすぎない。
【0012】
本開示で使用される用語は、特定の実施形態を説明する目的のものであり、本開示を限定することを意図するものではない。本開示および添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「前記(the)」は、文脈が明確にそうでないことを示さない限り、複数形も含むことが意図される。また、本明細書で使用される用語「および/または」は、関連する列挙された項目のうちの1以上の任意の、またはすべての可能な組合せを意味し、含むことを意図することを理解されたい。
【0013】
「第1の」、「第2の」、「第3の」などの用語は、本明細書では様々な情報を説明するために使用され得るが、情報はこれらの用語によって限定されるべきではない。これらの用語は、1つのカテゴリの情報を別のカテゴリから区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報を第2の情報と呼ぶことができ、同様に、第2の情報も第1の情報と呼ぶことができる。本明細書で使用される場合、用語「~である場合(if)」は、文脈に応じて「~であるとき(when)」または「~であると(upon)」または「判定に応答して」を意味すると理解されたい。
【0014】
概念上、ビデオ符号化規格は類似している。例えば、多くはブロックベースの処理を使用し、同様のビデオ符号化ブロック図を共有して、ビデオ圧縮を達成する。
【0015】
図1は、典型的なエンコーダ(符号化器)100を示す。エンコーダ100は、ビデオ入力110、動き補償器112、動き推定器114、インター/イントラモード決定器116、ブロック予測器140、加算器128、変換器130、量子化器132、予測関連情報142、イントラ予測器118、ピクチャバッファ120、逆量子化器134、逆変換器136、加算器126、メモリ124、ループ内フィルタ122、エントロピー符号化器138、およびビットストリーム144を有する。
【0016】
エンコーダの例示的な実施形態では、ビデオフレームは、処理のためにブロックに分割される。各所与のビデオブロックについて、インター予測またはイントラ予測のいずれかに基づいて予測が生成される。インター予測では、以前に再構成されたフレームからのピクセルに基づいて、動き推定および動き補償によって予測器(predictors)が形成され得る。イントラ予測では、現在のフレーム内の再構成されたピクセルに基づいて予測器が形成され得る。モード決定により、現在のブロックを予測するために最良の予測器が選択され得る。
【0017】
予測残差(すなわち、現在のブロックとその予測器との間の差)は、変換モジュールに送られる。次いで、エントロピー低減のために、変換係数が量子化モジュールに送られる。量子化された係数は、圧縮されたビデオビットストリームを生成するためにエントロピー符号化モジュールに供給される。
図1に示すように、ブロック分割情報、動きベクトル、参照ピクチャインデックス、およびイントラ予測モードなどの、インター予測モジュールおよび/またはイントラ予測モジュールからの予測関連情報も、エントロピー符号化モジュールを通過し、ビットストリームに保存される。
【0018】
エンコーダでは、予測目的のためにピクセルを再構成するために、デコーダ関連モジュールも必要である。まず、逆量子化と逆変換を通して予測残差が再構成される。このような再構成予測残差をブロック予測器と組み合わせて、現在のブロックについてフィルタ処理されていない再構成画素を生成する。
【0019】
符号化効率および表示品質を改善するために、ループ内フィルタが一般に使用される。例えば、非ブロック化フィルタが、AVC、HEVC、及び現在のVVCにおいて利用可能である。HEVCでは、符号化効率をさらに改善するために、SAO(sample adaptive offset:サンプル適応オフセット)と呼ばれる追加のループ内フィルタが定義される。最新のVVCでは、ALF(adaptive loop filter:適応ループフィルタ)と呼ばれるさらに別のループ内フィルタが積極的に研究されており、最終的な規格に含まれる可能性が高い。
【0020】
これらのループ内フィルタ操作はオプションである。通常、それらをオン(有効)にすることは、符号化効率および表示品質を改善するのに役立つ。また、計算の複雑さを省くために、エンコーダの決定としてオフ(無効)にすることもある。
【0021】
イントラ予測は、通常、フィルタリングされていない再構成画素に基づいているが、一方、インター予測は、これらのフィルタオプションがエンコーダによってオンにされている場合、フィルタリングされた再構成画素に基づいていることに留意されたい。
【0022】
図2は、典型的なデコーダ(復号化器)200のブロック図を示す。デコーダ200は、ビットストリーム210、エントロピー復号化器212、逆量子化器214、逆変換器216、加算器218、イントラ/インターモード選択器220、イントラ予測器222、メモリ230、ループ内フィルタ228、動き補償器224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
【0023】
デコーダにおいて、ビットストリームはまず、量子化された係数レベルおよび予測関連情報を導出するために、エントロピー復号化モジュールを介して復号化される。次に、逆量子化及び逆変換モジュールを通して量子化係数レベルを処理し、再構成予測残差を得る。復号された予測情報に基づいて、イントラ予測または動き補償プロセスのいずれかによって、ブロック予測器が形成される。再構成された予測残差とブロック予測器を合計することにより、フィルタリングされていない再構成画素を得る。ループ内フィルタがオンになっている場合、出力のための最終的な再構成ビデオを導出するために、フィルタリング操作がこれらの画素に対して実行される。
【0024】
図3は、本開示による方法300のステップを説明する例示的なフローチャートを示す。
【0025】
関連する制御点集合が有効であるかどうかのチェックを含む、構築されたアフィンマージ導出は、エンコーダ側とデコーダ側との両方で実行される。
【0026】
ステップ310では、デコーダから1以上の制御点集合を取得し、1以上の制御点集合は、制御点集合インデックスと制御点とを含み、各制御点集合は複数の制御点を含み、各制御点は、第1の参照ピクチャインデックスと、list0動きベクトルと、list1参照ピクチャインデックスと、list1動きベクトルと、を含む。
【0027】
例示的な実施形態では、デコーダから制御点集合を取得することは、ビデオ入力から空間隣接ブロックおよび時間ブロックを取得し、空間隣接ブロックおよび時間ブロックに基づいて制御点を決定し、空間隣接ブロックおよび時間ブロックからの制御点に基づいて動き情報を導出し、制御点に基づいて制御点集合を定義することを含み、制御点集合は、制御点集合インデックスを含む。
【0028】
各制御点は、2つの参照インデックスを有する。一つの制御点は参照ピクチャリスト0の参照ピクチャを参照し、他の一つは参照ピクチャリスト1の参照ピクチャを指し示す。VVC仕様では、list0/list1予測のいずれが使用されるか示すために2つのフラグが使用される。例えば、フラグ1フラグX1(flag one flag X one)は、リストXが使用されるか否かを示すために使用される。(ここで、Xは0または1であり得る)
【0029】
list0予測のみを使用する制御点(通常、片予測(uni-prediction)と呼ぶ)の場合、そのlist0参照インデックスは1つの参照ピクチャを指す必要があり、従って、インデックス値は0以上である必要がある。そして、そのlist1参照インデックスは、どの参照ピクチャも指し示さず、その値は無効を表す値(例えば、VVC仕様では-1)に設定される。さらに、この場合、フラグ1Nは1/真(true)にセットされ、フラグ2Nは0/偽(false)にセットされる。
【0030】
list1予測のみを使用する制御点(通常、片予測(uni-prediction)と呼ぶ)の場合、そのlist1参照インデックスは1つの参照ピクチャを指す必要があり、従って、インデックス値は0以上である必要がある。また、そのlist0参照インデックスは、どの参照ピクチャも指し示さず、その値は無効を表す値(例えば、VVC仕様では-1)に設定される。さらに、この場合、フラグ1Nは0/偽に設定され、フラグ2Nは1/真に設定される。
【0031】
list0およびlist1予測の両方を利用する制御点については、そのlist0参照インデックスおよびlist1参照インデックスの両方が0以上である。さらに、この場合、フラグ1Nは1/真に設定され、フラグ2Nは1/真に設定される。
【0032】
ステップ312では、デコーダによって、第1の参照ピクチャリスト内の参照ピクチャを指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、かつ、それぞれが互いに等しいかどうかを判定する。
【0033】
ステップ314では、デコーダによって、第2の参照ピクチャリスト内の参照ピクチャを指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、かつ、それぞれが互いに等しいかどうかを判定する。
【0034】
ステップ316では、デコーダによって、判定結果に基づいて、制御点集合内の制御点の動きベクトルにかかわらず、アフィン動きモデルが利用可能であると判定する。
【0035】
図4は、本開示による方法400のステップを説明する例示的なフローチャートを示す。
【0036】
ステップ410では、デコーダによって、参照ピクチャlist0を指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であり、かつ、互いに等しいことを判定する。
【0037】
ステップ412において、デコーダによって、参照ピクチャlist0を指し示す動きベクトルに関連する、制御点集合内の制御点集合インデックスの第1の制御点の動きベクトルが、参照ピクチャlist0を指し示す動きベクトルに関連する、制御点集合内の制御点集合インデックスの第2の制御点の動きベクトルと等しくないこと、または、第1の制御点の動きベクトルが、第1の参照ピクチャlist0を指し示す動きベクトルに関連する、制御点集合内の制御点集合インデックスの第3の制御点の動きベクトルと等しくないことを判定する。
【0038】
ステップ414において、デコーダによって、制御点集合インデックスの制御点集合内の制御点の動き情報を、現在のブロックの関連する制御点の動き情報として設定して、第1のリストアフィン動きモデルを導出する。
【0039】
ステップ416では、デコーダによって、参照ピクチャlist0を指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスのx制御点の参照インデックスが、ゼロ以上であることを判定する。
【0040】
ステップ418では、デコーダによって、参照ピクチャlist0を指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスのx制御点の動き情報を、現在のブロックのすべての制御点の動き情報として設定して、第1のリストアフィン動きモデルを導出する。
【0041】
図5は、本開示による方法500のステップを説明する例示的なフローチャートを示す。
【0042】
ステップ510において、デコーダによって、第1の参照ピクチャリスト内の参照ピクチャを指し示す参照インデックスに関連する、制御点集合内の制御点集合インデックスの各制御点の参照インデックスが、ゼロ以上であることを判定する。
【0043】
ステップ512において、デコーダによって、制御点集合インデックス内の制御点の動き情報を、現在のブロックの関連する制御点の動き情報として設定して、第1のリストアフィン動きモデルを導出する。
【0044】
ステップ514では、デコーダによって、制御点集合インデックスの参照ピクチャインデックスを、現在のブロックの参照ピクチャインデックスとして設定する。
【0045】
HEVCでは、動き補償予測(MCP)のために並進運動(translation motion)モデルのみが適用される。一方、現実世界では、例えば、ズームイン/ズームアウト、回転、透視運動、および他の不規則な動きなど、多くの種類の動きがある。VVC(VTM3)の現在の基準ソフトウェアでは、ブロックベースのアフィン変換動き補償予測が適用される。
図6Aおよび
図6B(後述)に示すように、ブロックのアフィン動きフィールドは、2つの制御点(4パラメータ)または3つの制御点動きベクトル(6パラメータ)の動き情報によって記述される。
【0046】
図6Aは、4パラメータアフィンモデルの制御点に基づくアフィン運動モデルを示す。
【0047】
図6Bは、6パラメータアフィンモデルの制御点に基づくアフィン運動モデルを示す。
【0048】
4パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x、y)における動きベクトルは、以下のように導出される。
【数1】
【0049】
6パラメータアフィン動きモデルの場合、ブロック内のサンプル位置(x、y)における動きベクトルは、以下のように導出される。
【数2】
【0050】
ここで、(mv0x、mv0y)は左上隅制御点の動きベクトル、(mv1x、mv1y)は右上隅制御点の動きベクトル、(mv2x、mv2y)は左下隅制御点の動きベクトルである。
【0051】
動き補償予測を単純化するために、ブロックベースのアフィン変換予測が適用される。各4×4輝度サブブロックの動きベクトルを導出するために、
図7(後述)に示されるように、各サブブロックの中心サンプルの動きベクトルは上記の式に従って計算され、1/16分数精度に丸められる。次に、動き補償補間フィルタを適用して、導出した動きベクトルを持つ各サブブロックの予測が生成される。彩度成分のサブブロックサイズも4×4に設定される。4×4彩度サブブロックの動きベクトル(MV)は、4つの対応する4×4輝度サブブロックのMVの平均として計算される。
【0052】
図7は、サブブロックごとのアフィン動きベクトルフィールド(MVF)を示す。
【0053】
並進運動インター予測において行われるように、アフィン動きインター予測モードにも、アフィンマージモードおよびアフィンAMVPモードの2つがある。
【0054】
アフィンマージ予測
【0055】
AF_MERGEモードは、幅と高さの両方が8以上のCU(符号化ユニット)に適用することができる。このモードでは、現在のCUの制御点の動きベクトル(CPMV)は、空間的に隣接するCUの動き情報に基づいて生成される。5つまでのCPMVP候補が存在し得、インデックスは、現在のCUのために使用されるべきものを示すようにシグナリングされる。次の3種類のCPMV候補が、アフィンマージ候補リストを形成するために使用される。
1.隣接CUのCPMVから外挿された継承アフィンマージ候補。
2.隣接CUの並進(translational)MVを使用して導出される構築されたアフィンマージ候補CPMVP。
3.ゼロMV。
【0056】
VTM3では、最大2つの継承アフィン候補があり、これらは、隣接ブロックのアフィン動きモデルから導出され、1つは左側隣接CUから、1つは上側隣接CUから導出される。候補ブロックを
図8(後述)に示す。左の予測器の場合、スキャン順序はA0->A1であり、上の予測器の場合、スキャン順序はB0->B1->B2である。各側から最初に継承された候補のみが選択される。2つの継承された候補間で枝刈り検査は行われない。隣接するアフィンCUが識別されると、その制御点動きベクトルは、現在のCUのアフィンマージリスト内のCPMVP候補を導出するために使用される。
図9(後述)に示すように、隣接する左下ブロックAをアフィンモードで符号化すると、ブロックAを含むCUの左上隅、右上隅、及び、左下隅の動きベクトルv
2、v
3、v
4が得られる。ブロックAが4パラメータアフィンモデルで符号化される場合、現在のCUの2つのCPMVは、v
2およびv
3に従って計算される。ブロックAが6パラメータアフィンモデルで符号化される場合、現在のCUの3つのCPMVは、v
2、v
3、およびv
4に従って計算される。
【0057】
図8は、継承されたアフィン動き予測器の位置を示す。
【0058】
【0059】
構築されたアフィン候補とは、各制御点の隣接(近傍)並進運動情報を組み合わせることによって候補が構築されることを意味する。制御点の動き情報は、
図10(後述)に示す特定の空間的近傍および時間的近傍から導出される。CP
k(k=1、2、3、4)はk番目の制御点を表す。CP
1は現在のブロックの左上隅にある制御点であり、B2->B3->A2ブロックがチェックされ、使用可能な最初のブロックのMVがCP
1の動き情報として使用される。CP
2は現在のブロックの右上隅にある制御点であり、B1->B0ブロックがチェックされ、使用可能な最初のブロックのMVがCP
2の動き情報として使用される。CP
3は現在のブロックの左下隅にある制御点であり、A1->A0ブロックがチェックされる。また、時間的動きベクトル予測器(TMVP)は、それが利用可能であれば、右下制御点CP
4として使用される。
【0060】
図10は、構築されたアフィンマージモードの候補位置の配置を示す。
4つの制御点が得られた後、制御点の動き情報に基づいてアフィンマージ候補が構築される。以下の6つの制御点の組み合わせを使用して、構築されたアフィンマージ候補を順番に構築する。
{CP
1、CP
2、CP
3},{CP
1、CP
2、CP
4},{CP
1、CP
3、CP
4},
{CP
2、CP
3、CP
4},{CP
1、CP
2},{CP
1、CP
3}
【0061】
3つの制御点の組み合わせは6パラメータアフィンマージ候補を構成し、2つの制御点の組み合わせは4パラメータアフィンマージ候補を構成する。動きスケーリング処理を回避するために、制御点の参照インデックスが異なる場合、関連する制御点MVの組み合わせは破棄される。さらに、2つのCPMVが4パラメータアフィンモデルの下で同一である(3つのCPMVが6パラメータアフィンモデルの下で同一である)場合、関連する制御点MVの組合せも破棄される。構築されたアフィンマージ候補を導出するフローチャートを
図11(後述)に示す。
【0062】
図11は、構築されたアフィンマージ候補を導出するフローチャートを示す。
【0063】
アフィンAMVP予測
【0064】
アフィンAMVPモードは、幅と高さの両方が16以上のCUに適用することができる。CUレベルのアフィンフラグは、アフィンAMVPモードが使用されているかどうかを示すためにビットストリームでシグナリングされ、次に別のフラグが、4パラメータのアフィンか6パラメータのアフィンかを示すためにシグナリングされる。このモードでは、現在のCUのCPMVとそれらの予測器CPMVPとの差が、ビットストリームにおいてシグナリングされる。アフィンAMVP候補リストサイズは2で、次の4種類のCPMV候補を順に使用して生成される。
1.隣接CUのCPMVから外挿された継承アフィンAMVP候補。
2.隣接CUの並進MVを用いて導出される構築されたアフィンAMVP候補CPMVP。
3.隣接するCUからの並進MV。
4.ゼロMV。
【0065】
継承アフィンAMVP候補の検査順序は、継承アフィンマージ候補の検査順序と同じである。唯一の違いは、AMVP候補に対しては、現在のブロックと同じ参照ピクチャを有するアフィンCUのみが考慮されることである。継承されたアフィン動き予測器を候補リストに挿入する際、枝刈りプロセスは適用されない。
【0066】
構築されたAMVP候補は、
図10に示される指定された空間近傍からのみ導出される。アフィンマージ候補構築と同様の検査順序が用いられる。さらに、隣接ブロックの参照ピクチャインデックスも検査される。インター符号化され、現在のCUと同じ参照ピクチャを有する、検査順序における最初のブロックが使用される。
【0067】
3つのCPMVすべてがある場合、そのままアフィンAMVPリストに挿入される。mv
0およびmv
1のみが利用可能な場合、mv
2は次のように導出される。
【数3】
【0068】
ここで、現在のCUサイズはw×hである。mv
0およびmv
2のみが利用可能な場合、mv
1は次のように導出される。
【数4】
【0069】
アフィンAMVPリスト候補が依然として2未満である場合、利用可能な場合、mv0、mv1、mv2が、現在のCUのすべての制御点MVを予測するための並進MVとして順番に追加される。
【0070】
アフィン動き情報記憶部
【0071】
VTM3では、アフィンCUのCPMVは別個のバッファに記憶される。記憶されたCPMVは、最近に符号化されたCUのために、アフィンマージモードおよびアフィンAMVPモードで継承されたCPMVPを生成するためにのみ使用される。CPMVから導出されたサブブロックMVは、動き補償、並進MVのマージ/AMVPリストのMV導出、および非ブロック化(de-blocking)のために使用される。
【0072】
追加のCPMVのためのピクチャラインバッファを回避するために、上部CTUからのCUからのアフィン動きデータ継承は、通常の隣接するCUからの継承とは異なる扱われ方をする。アフィン動きデータ継承のための候補CUが上部CTUラインにある場合、CPMVの代わりに、ラインバッファ内の左下および右下のサブブロックMVがアフィンMVP導出に使用される。このように、CPMVはローカルバッファにのみ記憶される。候補CUが6パラメータアフィン符号化されている場合、アフィンモデルは4パラメータモデルに劣化する。
図12(後述)に示すように、CTU上部境界に沿って、CUの左下と右下のサブブロック動きベクトルが、下部CTUにおけるCUのアフィン継承に使用される。
【0073】
図12は、提案された組合せ方法への動きベクトル使用の説明を示す。
【0074】
一実施形態では、構築されたアフィンマージ候補を導出するとき、並進運動モデルは、制御点間のMVが同一であり得るので、有効なアフィンマージ候補とみなされる。構築されたアフィンマージ候補について並進運動モデルを可能にするために、制御点のMV間の比較を除外することが提案される。MV間の比較が除外されるので、提案した方式は構築されたアフィンマージ候補の導出を単純化できる。既存の方法に基づくフローチャートの一例を
図13(後述)に示す。
【0075】
図13は、アフィンマージ候補を導出する方法のフローチャートを示す。
別の実施形態では、制御点間の参照インデックスが異なる場合、これに関連する制御点集合によって導出されたアフィン運動モデルは、利用不可能とみなされる。さらに別の提案された方式では、制御点間の動き情報の検査は、制御点間の参照インデックスが異なる場合の条件を考慮するように修正される。提案された方式では、参照インデックスが制御点間で異なる場合、選択された1つの制御点の動き情報が、すべての制御点の動き情報として使用される。
図14および
図15(後述)には、list0(または順方向参照ピクチャリストと呼ばれる)6パラメータアフィン動きモデルの導出について、提案された修正を実証するための2つの例が示されている。一般性を失うことなく、同じ修正をlist1または4パラメータアフィン動きモデル導出にも適用することができる。
【0076】
図14は、制御点間で異なる参照インデックスを考慮したアフィン動きモデルの導出を示す。
【0077】
図15は、制御点間で異なる参照インデックスを考慮したアフィン動きモデルの導出を示す。
【0078】
さらに別の提案された方式では、制御点間の動き情報の検査はすべて禁止される。提案された方式では、制御点が動き情報を持つ限り、それらが異なる参照ピクチャインデックスを持つ場合でも、アフィン動きモデルを構築するために使用される。既存の方法に基づくフローチャートの一例を
図16(後述)に示す。
【0079】
他の実施形態は、本明細書の考慮および本明細書に開示された実施形態の実施から当業者には明らかであろう。本出願は、その一般的な原理に従い、当技術分野における既知のまたは慣例的な実施の範囲内に含まれるような本開示からの逸脱を含む、実施形態の任意の変形、使用、または適応を包含することが意図される。本明細書および実施例は、単に例示的なものとみなされ、実施形態の真の範囲および精神は、以下の特許請求の範囲によって示されることが意図される。
【0080】
本実施形態は、上述し、添付図面に示した例に厳密に限定されるものではなく、その範囲から逸脱することなく、様々な修正及び変更を行うことができることが理解されるであろう。実施形態の範囲は、添付の特許請求の範囲によってのみ限定されることが意図される。
【0081】
図16は、参照ピクチャインデックスを考慮したアフィン運動モデルの導出を示す。
【0082】
図17は、ユーザインターフェース1760に結合されたコンピューティング環境1710を示す。コンピューティング環境1710は、データ処理サーバの一部とすることができる。コンピューティング環境1710は、プロセッサ1720、メモリ1740、およびI/Oインターフェース1750を含む。
【0083】
プロセッサ1720は、典型的には、ディスプレイ、データ取得、データ通信、および画像処理に関連する動作のような、コンピューティング環境1710の全体的な動作を制御する。プロセッサ1720は、上述の方法におけるステップのすべてまたは一部を実行する命令を実行するための1つ以上のプロセッサを含んでもよい。さらに、プロセッサ1720は、プロセッサ1720と他の構成要素との間の対話相互作用を容易にする1つ以上のモジュールを含んでもよい。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであってよい。
【0084】
メモリ1740は、コンピューティング環境1710の動作をサポートするために、様々なタイプのデータを記憶するように構成される。そのようなデータの例は、コンピューティング環境1710上で動作する任意のアプリケーションまたは方法のための命令、MRIデータセット、画像データなどを含む。メモリ1740は、静的ランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、消去可能プログラマブル読取専用メモリ(EPROM)、プログラマブル読取専用メモリ(PROM)、読取専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク、または光ディスクなど、任意の種類の揮発性または不揮発性のメモリ装置、またはそれらの組合せを使用することによって実装され得る。
【0085】
I/Oインターフェース1750は、プロセッサ1720と、キーボード、クリックホイール、ボタンなどの周辺インターフェースモジュールとの間のインターフェースを提供する。ボタンは、ホームボタン、スタートスキャンボタン、およびストップスキャンボタンを含むことができるが、これらに限定されない。I/Oインターフェース1750は、エンコーダおよびデコーダに結合されることができる。
【0086】
一実施形態では、上述の方法を実行するために、コンピューティング環境1710内のプロセッサ1720によって実行可能な、メモリ1740に含まれるような複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク(登録商標)、光データ記憶装置等であってもよい。
【0087】
非一時的コンピュータ可読記憶媒体は、1つ以上のプロセッサを有するコンピュータ装置によって実行される複数のプログラムを記憶しており、複数のプログラムは、1つ以上のプロセッサによって実行されると、コンピュータ装置に上述した動き予測方法を実行させる。
【0088】
一実施形態では、コンピューティング環境1710は、上述の方法を実行するために、1つ以上の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィカル処理ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装され得る。