図2は、本開示内容による1つの実施形態の通信システム(200)の簡略化ブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信できる複数の端末機器を含む。例えば、通信システム(200)はネットワーク(250)を介して互いに接続された第1対の端末機器(210)、(220)を含む。図2の例示において、第1対の端末機器(210)、(220)は一方向のデータ伝送を実行する。例えば、端末機器(210)は、ビデオデータ(例えば、端末機器(210)によりキャプチャされたビデオピクチャストリーム)をコーディングして、ネットワーク(250)を介して他方の端末機器(220)に伝送する。コーディングされたビデオデータは1つまたは複数のコーディングビデオビットストリームという形式で伝送されてもよい。端末機器(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングすることで、ビデオピクチャを復元させ、復元されたビデオデータに基づきビデオピクチャを表示する。一方向のデータ伝送はメディアサービスアプリケーションなどにおいて、一般的である。
他の実施例において、通信システム(200)は、コーディングされたビデオデータの双方向伝送を実行するための第2対の端末機器(230)、(240)を含み、コーディングされたビデオデータの双方向伝送は、例えばビデオ会議期間に発生し得る。双方向データ伝送に対して、例示において、端末機器(230)、(240)における各端末機器は、ビデオデータ(例えば、端末機器によりキャプチャされたビデオピクチャストリーム)をコーディングすることで、ネットワーク(250)を介して端末機器(230)、(240)のうちの他方の端末機器に伝送できる。端末機器(230)、(240)のうちの各端末機器はさらに端末機器(230)、(240)のうちの他方の端末機器から伝送されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングすることでビデオピクチャを復元させ、復元されたビデオデータに基づき、アクセス可能な表示機器でビデオピクチャを表示できる。
図2の例示において、端末機器(210)、(220)、(230)及び(240)は、サーバー、パーソナルコンピュータ及びスマートフォンとして示したが、本開示内容の原理はこれに限定されない。本開示内容の実施形態は、ラップトップコンピュータ、タブレット、メディアプレイヤー及び/または専門ビデオ会議機器に適用される。ネットワーク(250)は、端末機器(210)、(220)、(230)及び(240)の間で、コーディングされたビデオデータを伝送するための、例えばケーブル(有線)及び/または無線通信ネットワークを含むいずれの数のネットワークを示す。通信ネットワーク(250)は、回路交換及び/またはパケット交換チャネルにおいてデータを交換できる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域エリアネットワーク及び/またはインターネットを含む。本論述の目的から見れば、本明細書において別途に説明しなければ、ネットワーク(250)のアーキテクチャ及びトポロジは、本開示内容の動作に対して重要ではない。
開示テーマの応用例示として、図3は、ビデオ符号器とビデオデコーダとのストリーミング環境における配置を示す。開示テーマは例えばビデオ会議、デジタルTV、CD、DVD、メモリースティックなどを含むデジタル媒体に圧縮ビデオなどを記憶するなどビデオ対応他のアプリケーションに同様に適用される。
ストリーミングシステムは、キャプチャサブシステム(313)を含んでもよく、当該キャプチャサブシステム(313)は、例えば未圧縮のビデオピクチャストリーム(302)を構築するための、デジタルカメラ装置のビデオソース(301)を含む。例示において、ビデオピクチャストリーム(302)は、デジタルカメラ装置が撮影したサンプルを含む。コーディングされたビデオデータ(304)(またはコーディングされたビデオビットストリーム)と比較すると、データ量が多いことを強調する太線として描画されるビデオピクチャストリーム(302)は電子機器(320)によって処理され、電子機器(320)は、ビデオソース(301)に連結されるビデオ符号器(303)を含む。ビデオ符号器(303)はハードウェア、ソフトウェアまたはハードウェアとソフトウェアとの組み合わせを含むことで、以下で詳しく記載する開示のテーマの各態様を実現または実施する。ビデオピクチャストリーム(302)と比較すると、データ量が少ないことを強調する細線として描画されるコーディングされたビデオデータ(304)(またはコーディングされたビデオビットストリーム(304))は、ストリーミングサーバー(305)に記憶され、今後用いられる。1つまたは複数のストリーミングクライアントサブシステム、例えば、図3におけるクライアントサブシステム(306)、(308)は、ストリーミングサーバー(305)にアクセスすることで、コーディングされたビデオデータ(304)のコピー(307)、(309)を検索できる。クライアントサブシステム(306)は、例えば電子機器(330)におけるビデオデコーダ(310)を含んでもよい。ビデオデコーダ(310)は、コーディングされたビデオデータの導入コピー(307)をデコーディングし、ディスプレイ(312)(例えば、ディスプレイスクリーン)または他の表示機器(図示せず)に表示できる導出ビデオピクチャストリーム(311)を構築する。特定のストリーミングシステムにおいて、特定のビデオコーディング/圧縮規格に基づき、コーディングされたビデオデータ(304)、ビデオデータ(307)及びビデオデータ(309)(例えば、ビデオビットストリーム)をコーディングすることができる。これらの規格の例示はITU-T H.265提案書を含む。例示において、開発中のビデオコーディング規格は、非公式に多機能ビデオコーディング(Versatile Video Coding、VVC)と呼ばれる。開示テーマはVVCの背景に適用される。
なお、電子機器(320)と電子機器(330)とは他の部材(図示せず)を含んでもよい。例えば、電子機器(320)はビデオデコーダ(図示せず)を含んでもよく、電子機器(330)はビデオ符号器(図示せず)を含んでもよい。
図4は、本開示内容による実施形態のビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は電子機器(430)に含まれてもよい。電子機器(430)は受信器(431)(例えば、受信回路システム)を含んでもよい。図3の例示におけるビデオデコーダ(310)の代わりとしてビデオデコーダ(410)を使用してもよい。
受信器(431)は、ビデオデコーダ(410)のデコーディング対象となる1つまたは複数のコーディングされたビデオシーケンスを受信し、同一の実施形態または他の実施形態において、1回に1つのコーディングされたビデオシーケンスを受信し、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスと独立する。チャンネル(401)からコーディングされたビデオシーケンスを受信し、チャンネル(401)は、コーディングされたビデオデータを記憶するための記憶装置に達するハードウェア/ソフトウェアリンクであってもよい。受信器(431)は、コーディングされたオーディオデータ及び/または補助データストリームのような、コーディングされたビデオデータ及び他のデータを受信し、これらはそれぞれの利用エンティティ(図示せず)に転送され得る。受信器(431)は、コーディングされたビデオシーケンスと他のデータとを分離できる。ネットワークのジッタを防止するために、バッファメモリ(415)は受信器(431)とエントロピーデコーダ/パーサー(420)(以下「パーサー(420)」と呼ばれる)との間に連結される。特定のアプリケーションにおいて、バッファメモリ(415)はビデオデコーダ(410)の一部である。また、バッファメモリ(415)はビデオデコーダ(410)の外部にあってもよい(図示せず)。ビデオデコーダ(410)の外部にバッファメモリ(図示せず)が存在することで、例えばネットワークのジッタを防止し、また、ビデオデコーダ(410)の内部に別のバッファメモリ(415)が存在することで、例えば、再生タイミングを処理する。受信器(431)は十分な帯域幅及び制御可能性を有する記憶/転送装置、または等時性リアルタイムネットワーク(isosynchronous network)からデータを受信する場合、バッファメモリ(415)を必要とせず、またはバッファメモリ(415)が小さい可能性がある。インターネットのようなベストエフォートパケットネットワークで使用するために、バッファメモリ(415)を必要とするかもしれなく、バッファメモリ(415)は相対的に大きく、有利に自己適応のサイズを有して、少なくとも一部がオペレーティングシステムまたはビデオデコーダ(410)の外部の類似素子(図示せず)で実現される。
ビデオデコーダ(410)は、パーサー(420)を含むことで、コーディングされたビデオシーケンスに基づきシンボル(421)を再構築する。図4に示すように、これらのシンボルカテゴリには、ビデオデコーダ(410)の動作を管理するための情報、及び表示機器(412)(例えば、ディスプレイスクリーン)のような表示機器を制御するための潜在情報が含まれ、表示機器は電子機器(430)の構成部分ではないが、電子機器(430)に連結されてもよい。(1つまたは複数)表示機器に用いられる制御情報は、補助強化情報(Supplemental Enhancement Information、SEIメッセージ)またはビデオユーザビリティ情報(Video Usability Information、VUI)のパラメータセットセグメント(図示せず)という形式を採用してもよい。パーサー(420)は、受信したコーディングされたビデオシーケンスに対して解析/エントロピーデコーディングを行うことができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に基づくとともに、様々な原理に従って行うことができ、可変長コーディング、ハフマンコーディング(Huffman coding)、コンテキスト感度を有するかまたは有しない算術コーディングなどを含む。パーサー(420)は、グループに対応する少なくとも1つのパラメータに基づき、コーディングされたビデオシーケンスからビデオデコーダの画素のサブグループのうちの少なくとも1つのサブグループのためのサブグループパラメータセットを抽出する。サブグループはピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含んでもよい。パーサー(420)は、さらにコーディングされたビデオシーケンスから、例えば変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出してもよい。
パーサー(420)は、バッファメモリ(415)から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を実行することで、シンボル(421)を構築し得る。
コーディングされたビデオピクチャまたはその一部のタイプ(例えば、インターピクチャとイントラピクチャ、インターブロックとイントラブロック)及び他の要因に基づき、シンボル(421)の再構築は、複数の異なるユニットが関与してもよい。どのユニットが関与するか、及びその関与方式は、パーサー(420)がコーディングされたビデオシーケンスから解析したサブグループの制御情報によって制御される。簡潔のために、パーサー(420)と以下の複数のユニットとの間にある、このようなサブグループ制御情報ストリームを記載しない。
既に言及した機能ブロック以外、ビデオデコーダ(410)は概念で以下に記載の複数の機能ユニットに細分される。商業制約で動作する実際の実現において、これらのユニットにおける複数のユニットは互いに密接に作用するとともに、少なくとも部分的に互いに集積されてもよい。ただし、開示テーマを記載するという目的から見れば、概念的に以下の機能ユニットに細分することは適切である。
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)はパーサー(420)から(1つまたは複数)シンボル(421)としての量子化変換係数及び制御情報を受信し、どんな変換を利用するか、ブロックのサイズ、量子化因子、量子化スケーリング行列などを含む。スケーラ/逆変換ユニット(451)はサンプル値を含むブロックを出力でき、サンプル値を含むブロックはアグリゲーター(455)に入力される。
場合によっては、スケーラ/逆変換ユニット(451)の出力サンプルはイントラコーディングブロックに属する可能性があり、即ち、前に再構築されたピクチャからの予測性情報を利用しないが、現在ピクチャの前に再構築された部分からの予測性情報のブロックを利用できる。このような予測性情報はイントラピクチャ予測ユニット(452)から提供される。場合によっては、イントラピクチャ予測ユニット(452)は、現在ピクチャバッファ(458)から取得した、周辺が構築された情報を利用して、サイズ及び形状が、再構築中のブロックと同様であるブロックを生成する。例えば、現在ピクチャバッファ(458)は部分的に再構築された現在ピクチャ及び/または完全に再構築された現在ピクチャをバッファリングする。場合によっては、アグリゲーター(455)は各サンプルに基づき、イントラ予測ユニット(452)から生成された予測情報をスケーラ/逆変換ユニット(451)により提供された出力サンプル情報に追加する。
他の場合、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされ且つ潜在的に動き補償されたブロックに属する。このような場合、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスすることで、予測のためのサンプルを取得することができる。ブロックに関するシンボル(421)に基づき、取得されたサンプルに対して動き補償を行った後、これらのサンプルはアグリゲーター(455)からスケーラ/逆変換ユニット(451)の出力(このような場合、残差サンプルまたは残差信号と呼ばれる)に追加されることで、出力サンプル情報を生成する。動き補償予測ユニット(453)が予測サンプルを取得する参照ピクチャメモリ(457)内のアドレスは、動きベクトルによって制御され、動きベクトルはシンボル(421)という形式で、動き補償予測ユニット(453)に用いられ、シンボル(421)は、例えばX、Y及び参照ピクチャ成分を有してもよい。動き補償はさらに、サブサンプル正確動きベクトルを使用する際、参照ピクチャメモリ(457)から取得されたサンプル値の補間、動きベクトル予測メカニズムなどを含んでもよい。
アグリゲーター(455)の出力サンプルは、ループフィルタユニット(456)において各種のループフィルタリング技術の対象となる可能性がある。ビデオ圧縮技術はループ内フィルタ技術を含んでもよく、ループ内フィルタ技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるとともに、パーサー(420)からのシンボル(421)としてループフィルタユニット(456)に適用されるパラメータによって制御されるが、ビデオ圧縮技術はさらに、コーディングされたピクチャまたはコーディングされたビデオシーケンスの前の(デコーディングの順序に従う)部分に対してデコーディングを行う期間に取得された元の情報、及び前に再構築され、ループフィルタリングを経たサンプル値に応答することもできる。
ループフィルタユニット(456)の出力は、サンプルストリームであってもよく、サンプルストリームは表示機器(412)に出力され、参照ピクチャメモリ(457)に記憶されることで、今後のインターピクチャ予測に用いられる。
特定のコーディングされたピクチャは、完全に再構築されると、将来の予測のための参照ピクチャとして利用できる。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構築され、コーディングされたピクチャ(例えばパーサー(420)を介して)が参照ピクチャとして認識された場合、現在ピクチャバッファ(458)は参照ピクチャメモリ(457)の一部になり、後続のコーディングされたピクチャを再構築する前に、新たな現在ピクチャバッファを改めて割り当てることができる。
ビデオデコーダ(410)は、例えばITU-T H.265提案書の所定ビデオ圧縮技術のような規格に基づき、デコーディング動作を実行する。コーディングされたビデオシーケンスがビデオ圧縮技術または標準のシンタックス、及びビデオ圧縮技術または規格に記録されるプロファイル(profile)という両者に準拠するという意味で、コーディングされたビデオシーケンスは、使用されるビデオ圧縮技術または規格に指定されるシンタックスに合致する。具体的に、プロファイルは、プロファイルで利用可能な唯一のツールとして、ビデオ圧縮技術または規格における利用可能な全てのツールから、いくつかのツールを選択できる。準拠性に対して、さらに、コーディングされたビデオシーケンスの複雑度が、ビデオ圧縮技術または規格のレベルによって限定される範囲にあるように要求される。場合によっては、レベルは、最大ピクチャのサイズ、最大フレームレート、最大再構築サンプリングレート(例えば、1秒あたりのメガサンプル数で測定される)、最大参照ピクチャのサイズなどを制限する。場合によっては、レベルにより設定される制限は、仮想参照デコーダ(Hypothetical Reference Decoder、HRD)の仕様、及びコーディングされたビデオシーケンスにおいてシグナリングされた、HRDバッファが管理するメタデータによってさらに限定されてもよい。
実施形態において、受信器(431)は、追加(冗長)データとコーディングされたビデオを受信できる。追加データは、(1つまたは複数)コーディングされたビデオシーケンスの一部として含まれる。追加データは、データを適切にデコーディングする及び/またはより正確に初期ビデオデータを再構築するように、ビデオデコーダ(410)に使用される。追加データは、例えば時間、空間または信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であってもよい。
図5は、本開示内容の実施形態によるビデオ符号器(503)のブロック図を示す。ビデオ符号器(503)は、電子機器(520)に含まれる。電子機器(520)は伝送器(540)(例えば、伝送回路システム)を含む。ビデオ符号器(503)は、図3の例示におけるビデオ符号器(303)の代わりとすることができる。
ビデオ符号器(503)は、ビデオソース(501)(図5例示における電子機器(520)の一部ではない)からビデオサンプルを受信でき、ビデオソース(501)はビデオ符号器(503)のコーディング対象となる(1つまたは複数)ビデオ画像をキャプチャし得る。他の例示において、ビデオソース(501)は、電子機器(520)の一部である。
ビデオソース(501)は、ビデオ符号器(503)のコーディング対象となる、デジタルビデオサンプルストリームという形式であるソースビデオシーケンスを提供でき、デジタルビデオサンプルストリームは、いずれかの適切なビット深度(例えば、8ビット、10ビット、12ビット…)、いずれかの色空間(例えば、BT.601 Y CrCB、RGB……)、及びいずれかの適切なサンプリング構成(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有してもよい。メディアサービスシステムにおいて、ビデオソース(501)は、事前に準備されたビデオを記憶するための記憶装置であってもよい。ビデオ会議システムにおいて、ビデオソース(501)は、ビデオシーケンスとして、ロカール画像情報をキャプチャするためのカメラであってもよい。ビデオデータは、順序に従って見られる際、動きが付与される複数の単独のピクチャとして提供されてもよい。ピクチャ自体は、空間画素アレイとして編成することができ、使用のサンプリング構成、色空間などに基づき、各画素は1つまたは複数のサンプルを含んでもよい。画素とサンプルとの間の関係は、当業者にとって、容易に理解できる。以下の記載はサンプルに着目する。
実施形態によれば、ビデオ符号器(503)は、リアルタイムまたはアプリケーションに必要とされる他の任意の時間の制約で、ソースビデオシーケンスのピクチャをコーディングするとともに、コーディングされたビデオシーケンス(543)に圧縮する。適切的なコーディング速度で実行することは、コントローラ(550)の機能の1つである。特定の実施形態において、コントローラ(550)は以下に記載の他の機能ユニットを制御し、機能的にこれらの他のユニットに連結される。簡潔のために、連結を示していない。コントローラ(550)により配置されるパラメータは、レート制御に関するパラメータ(ピクチャスキップ、量子化器、レート歪最適化技術のλ値など)、ピクチャのサイズ、ピクチャグループ(GOP)の配置、最大動きベクトルの検索範囲などを含んでもよい。コントローラ(550)は、他の適切な機能を有するように配置され、他の適切な機能は、特定のシステム設計に対して最適化されたビデオ符号器(503)に関する。
特定の実施例において、ビデオ符号器(503)は、コーディングループにおいて動作するように配置される。非常に簡単な記載として、例示において、コーディングループはソース符号器(530)(例えば、コーディング対象となる入力ピクチャ、(1つまたは複数)参照ピクチャに基づき、シンボル、例えばシンボルストリームを構築する)、及びビデオ符号器(503)に埋め込まれる(ロカール)デコーダ(533)を含む。デコーダ(533)は、(リモート)デコーダがサンプルデータを構築することに類似する方式で、シンボルを再構築し、サンプルデータを構築する(なぜならば、開示テーマで考慮されるビデオ圧縮技術において、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は可逆であるからである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダ位置(ロカールまたはリモート)と独立するビット正確な(bit-exact)結果を発生させるので、参照ピクチャメモリ(534)におけるコンテンツは、ロカール符号器とリモート符号器との間でもビット正確である。言い換えれば、符号器の予測部分から「見る」参照ピクチャサンプルは、デコーダがデコーディング期間で予測を利用する際に「見る」サンプル値と完全に同様である。このような参照ピクチャの同期性の基本原理(及び、例えばチャンネル誤差のため、同期性を維持できない場合に発生するドリフト)は特定の関連領域にも適用される。
「ロカール」デコーダ(533)の動作は、以上、図4を結合して詳しく記載した「リモート」デコーダ、例えばビデオデコーダ(410)と同様である。ただし、図4を簡単に参照し、シンボルは利用可能で、且つエントロピー符号器(545)とパーサー(420)とがロスレスにシンボルをコーディングビデオシーケンスにコーディング/デコーディングすることができる場合、バッファメモリ(415)とパーサー(420)とを含むビデオデコーダ(410)のエントロピーデコーディング部分は、ロカールのデコーダ(533)において完全に実現できない可能性がある。
この場合、デコーダに存在する解析/エントロピーデコーディング以外の任意のデコーダ技術も、必然として、基本的に同じ機能形式で、対応する符号器に存在することを観察できる。そのため、開示テーマは、デコーダ動作に集中する。符号器技術と全面的に記載したデコーダ技術とは反対するから、符号器技術に対する記載を簡略化し得る。特定の領域のみにおいてより詳しい記載を必要とし、以下はより詳しい記載を提供する。
動作期間において、特定の例示において、ソース符号器(530)は、動き補償の予測コーディングを実行でき、動き補償の予測コーディングはビデオシーケンスからの、「参照ピクチャ」として指定される1つまたは複数の前のコーディングされたピクチャを参照し、入力ピクチャに対して予測性コーディングを行う。当該方式で、コーディングエンジン(532)は、入力ピクチャの画素ブロックと、(1つまたは複数)参照ピクチャの画素ブロックとの間の差に対してコーディングを行って、(1つまたは複数)参照ピクチャは、入力ピクチャの(1つまたは複数)予測参照として選択される。
ロカールビデオデコーダ(533)は、ソース符号器(530)から構築されるシンボルに基づき、参照ピクチャとして指定されるピクチャのコーディングされたビデオデータに対してデコーディングを行う。コーディングエンジン(532)の動作は、非可逆処理であってもよい。コーディングされたビデオデータはビデオデコーダ(図5において図示せず)でデコーディングされる場合、再構築されたビデオシーケンスは、一般的にある程度誤差を有するソースビデオシーケンスのコピーであってもよい。ロカールビデオデコーダ(533)は、ビデオデコーダが参照ピクチャに対して実行するデコーディング処理をコピーし、デコーディング処理は再構築された参照ピクチャを参照ピクチャキャッシュ(534)に記憶させる。当該方式で、ビデオ符号器(503)は再構築された参照ピクチャのコピーをロカールに記憶し、コピーは、リモートビデオデコーダから取得される再構築の参照ピクチャと共通のコンテンツを有する(伝送誤差が存在しない)。
予測器(535)は、コーディングエンジン(532)に対して予測検索を実行できる。即ち、コーディング対象となる新たなピクチャに対して、予測器(535)は参照ピクチャメモリ(534)から、新たなピクチャの適切な予測参照としてのサンプルデータ(候補参照画素ブロックとする)、またはいくつかのメタデータを検索し、例えば、参照ピクチャ動きベクトル、ブロック形状などがある。予測器(535)は、サンプルブロックごとの画素ブロック(sample block-by-pixel block)に基づき動作することで、適切な予測参照を見つける。場合によっては、予測器(535)により取得された検索結果によって決定されるように、入力ピクチャは参照ピクチャメモリ(534)に記憶される複数の参照ピクチャから取得された予測参照を具備できる。
コントローラ(550)は、ソース符号器(530)のコーディング動作を管理でき、例えば、ビデオデータをコーディングするためのパラメータとサブグループパラメータを配置する。
エントロピー符号器(545)において、全ての機能ユニットの出力に対してエントロピーコーディングを行う。エントロピー符号器(545)は、例えばハフマンコーディング、可変長コーディング、算術コーディングなどの技術に基づき、シンボルに対して可逆圧縮を行って、各種機能ユニットから生成されたシンボルをコーディングされたビデオシーケンスに変換する。
伝送器(540)は、通信チャンネル(560)を介する伝送を準備するように、エントロピー符号器(545)により構築される(1つまたは複数)コーディングされたビデオシーケンスをバッファリングし、通信チャンネル(560)はコーディングされたビデオデータを記憶するための記憶装置に達するハードウェア/ソフトウェアリンクであってもよい。伝送器(540)は、ビデオ符号器(503)からのコーディングされたビデオデータと伝送対象となる例えばコーディングされたオーディオデータ及び/または補助データストリーム(ソースを図示せず)のような他のデータとをマージする。
コントローラ(550)は、ビデオ符号器(503)の動作を管理できる。コーディングの期間に、コントローラ(550)は、各コーディングされたピクチャに、特定のコーディングされたピクチャタイプを割り当てることができ、これはそれぞれのピクチャに適用されるコーディング技術に影響を及ぼし得る。例えば、一般的に、ピクチャは以下のピクチャタイプのうちの1つとして割り当てられる。
イントラピクチャ(Iピクチャ)であって、予測のソースとしてシーケンス内の他の画像を使用せずにコード化およびデコードされ得るものであってもよい。一部のビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを使用できる。当業者は、Iピクチャの変体、その対応する応用及び特徴を知っている。
予測性ピクチャ(Pピクチャ)であって、イントラ予測またはインター予測を利用して、コーディング及びデコーディングを行うピクチャであってもよく、イントラ予測またはインター予測は最大1つの動きベクトル及び参照インデックスを利用して各ブロックのサンプル値を予測する。
双方向予測性ピクチャ(Bピクチャ)であって、イントラ予測またはインター予測を利用して、コーディング及びデコーディングを行うピクチャであってもよく、イントラ予測またはインター予測は最大2つの動きベクトル及び参照インデックスを利用して各ブロックのサンプル値を予測する。類似するように、複数の予測性ピクチャは、2つを超える参照ピクチャと関連するメタデータを、単一ブロックの再構築に適用することができる。
ソースピクチャは、一般的に、空間で複数のサンプルブロック(例えば、各ソースピクチャは4×4、8×8、4×8または16×16個のサンプルのブロックを有する)に細分されるとともに、ブロックごとにコーディングされる。ブロックに適用される対応するピクチャのコーディング割当によって決定された他の(コーディングされた)ブロックを参照し、これらのブロックに対して予測性コーディングを行う。例えば、Iピクチャのブロックに対して非予測コーディングを行うか、または同一ピクチャのコーディングされたブロックを参照し、Iピクチャのブロックに対して予測コーディング(空間予測またはイントラ予測)を行ってもよい。1つの先行コーディングされた参照ピクチャを参照し、空間予測または時間予測を介して、Pピクチャの画素ブロックに対して、予測性コーディングを行ってもよい。1つまたは2つの先行コーディングされた参照ピクチャを参照し、空間予測または時間予測を介して、Bピクチャのブロックに対して、予測性コーディングを行ってもよい。
ビデオ符号器(503)は、例えばITU-T H.265提案書の所定ビデオコーディング技術または規格に基づき、コーディング動作を実行し得る。その動作において、ビデオ符号器(503)は、入力ビデオシーケンスにおける時間と空間冗長を利用した予測性コーディング動作が含まれる各種の圧縮動作を実行できる。従って、コーディングされたビデオデータは、使用されるビデオコーディング技術または規格が指定するシンタックスに合致する。
実施形態において、伝送器(540)は、コーディングされたビデオを伝送するとともに、追加データを伝送することができる。ソース符号器(530)は、このようなデータをコーディングされたビデオシーケンスの一部として含ませる。追加データには時間/空間/SNR強化層、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットセグメントなどが含まれる。
ビデオは、時間シーケンスを呈する複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(一般的にイントラ予測に簡略化される)は特定ピクチャにおける空間の関連性を利用し、インターピクチャ予測はピクチャの間の(時間または他)関連性を利用する。例示において、コーディング中/デコーディング中の特定ピクチャはブロックに分割され、コーディング中/デコーディング中の特定ピクチャは現在ピクチャと呼ばれる。現在ピクチャにおけるブロックは、ビデオにおける前にコーディングされ、且つバッファリングされている参照ピクチャにおける参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって、現在ピクチャにおけるブロックをコーディングすることができる。動きベクトルは参照ピクチャにおける参照ブロックを指し、複数の参照ピクチャを利用する場合、参照ピクチャを認識するための第3次元を有してもよい。
特定の実施形態において、双方向予測技術は、インターピクチャ予測に用いられてもよい。双方向予測技術に基づき、2つの参照ピクチャを利用し、例えば、デコーディング順序に従って、いずれもビデオにおける現在ピクチャの前にある(ただし、表示順序に従って、それぞれ過去と将来であるかもしれない)第1参照ピクチャと第2参照ピクチャである。第1参照ピクチャにおける第1参照ブロックを指す第1動きベクトル、及び第2参照ピクチャにおける第2参照ブロックを指す第2動きベクトルによって、現在ピクチャにおけるブロックをコーディングする。第1参照ブロックと第2参照ブロックとの組み合わせによってブロックを予測する。
また、マージモード技術は、インターピクチャ予測に用いられ、コーディング効率を向上させる。
本開示内容のいくつかの実施形態によれば、例えばインターピクチャ予測とイントラピクチャ予測の予測とは、ブロックごとに実行される。例えば、HEVC規格に基づき、ビデオピクチャシーケンスにおけるピクチャをコーディングツリーユニット(CTU)に分割することで、圧縮に用いて、ピクチャにおけるCTUは、例えば64×64画素、32×32画素または16×16画素のような同じサイズを有する。一般的に、CTUは1つの輝度CTBと、2つの色度CTBとからなる3つのコーディングツリーブブロック(CTB)を含む。各CTUをクワッドツリーで、再帰的に1つまたは複数のコーディングユニット(CU)に区画する。例えば、64×64画素のCTUを1つの64×64画素のCU、または4つの32×32画素のCU、或いは16個の16×16画素のCUに区画してもよい。例示において、各CUを分析することで、インター予測タイプまたはイントラ予測タイプのような、CUのための予測タイプを決定する。時間及び/または空間の予測可能性に基づき、CUを1つまたは複数の予測ユニット(PU)に区画する。一般的に、各PUは輝度予測ブロック(PB)と2つの色度PBとを含む。実施形態において、コーディング(コーディング/デコーディング)における予測動作は、予測ブロックごとに実行される。予測ブロックの例示として、輝度予測ブロックを利用して、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などのような画素値(例えば、輝度値)の行列を含む。
図6は、本開示内容による他の実施形態のビデオデコーダ(603)の図面を示す。ビデオ符号器(603)は、ビデオピクチャシーケンスにおける現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信するとともに、処理ブロックをコーディングされたビデオシーケンスの一部としてのコーディングされたピクチャにコーディングするように配置される。例示において、ビデオ符号器(603)は、図3の例示におけるビデオ符号器(303)の代わりとして用いられる。
HEVC例示において、ビデオ符号器(603)は、処理ブロックのサンプル値の行列、例えば8×8サンプルの予測ブロックなどを受信する。ビデオ符号器(603)は、例えばレート歪最適化によって、イントラモード、インターモードまたは双方向予測モードを利用して最適に処理ブロックをコーディングするかどうかを決定する。イントラモードで処理ブロックをコーディングしようとすると、ビデオ符号器(603)はイントラ予測技術によって、処理ブロックをコーディングされたピクチャにコーディングし、インターモードまたは双方向予測モードで、処理ブロックをコーディングしようとすると、ビデオ符号器(603)はインター予測または双方向予測技術によって、処理ブロックをコーディングピクチャにコーディングすることができる。特定のビデオコーディング技術において、マージモードはインターピクチャ予測サブモードであってもよく、インターピクチャ予測サブモードの場合、予測器外部のコーディングされた動きベクトル成分のベネフィットなしに、1つまた複数の動きベクトル予測器から動きベクトルを取得する。いくつかの他のビデオコーディング技術において、本体ブロックに適用される動きベクトル成分が存在し得る。例示において、ビデオ符号器(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)のような、他のユニットを含む。
図6の例示において、ビデオ符号器(603)は、図6に示す互いに連結されたインター符号器(630)、イントラ符号器(622)、残差計算器(623)、スイッチ(626)、残差符号器(624)、汎用コントローラ(621)及びエントロピー符号器(625)を含む。
インター符号器(630)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックと参照ピクチャにおける1つまたは複数の参照ブロック(例えば、先行ピクチャと後続ピクチャにおけるブロック)とを比較し、インター予測情報(例えば、インターコーディング技術に基づく冗長情報に対する記載、動きベクトル、マージモード情報)を生成し、及びインター予測情報に基づき何れかの適切な技術を利用してインター予測結果(例えば、予測ブロック)を計算するように配置される。特定の例示において、参照ピクチャはコーディングされたビデオ情報に基づきデコーディングされた、デコーディング参照ピクチャである。
イントラ符号器(622)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックと同一のピクチャにおけるコーディングされたブロックとを比較し、変換した後、量子化係数を生成する。また、場合によっては、さらに(例えば、1つまたは複数のイントラコーディング技術に基づくイントラ予測方向情報)イントラ予測情報を生成するように配置される。例示において、イントラ符号器(622)はさらにイントラ予測情報と同一のピクチャにおける参照ブロックに基づき、イントラ予測結果(例えば、予測ブロック)を計算する。
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づきビデオ符号器(603)の他のユニットを制御するように配置される。例示において、汎用コントローラ(621)は、ブロックのモードを決定し、当該モードに基づき制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードである場合、汎用コントローラ(621)は、残差計算器(623)が使用するイントラモード結果を選択するようにスイッチ(626)を制御し、イントラ予測情報を選択するように、エントロピー符号器(625)を制御するとともに、イントラ予測情報をビットストリームに含ませる。モードがインターモードである場合、汎用コントローラ(621)は、残差計算器(623)が使用するインター予測結果を選択するように、スイッチ(626)を制御し、インター予測情報を選択するように、エントロピー符号器(625)を制御するとともに、インター予測情報をビットストリームに含ませる。
残差計算器(623)は、受信したブロックとイントラ符号器(622)またはインター符号器(630)から選択した予測結果との間の差(残差データ)を計算するように配置される。残差符号器(624)は、残差データに基づき動作することで、残差データをコーディングすることで変換係数を生成するように配置される。例示において、残差符号器(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように配置される。係数を変換してから、量子化処理を介して、量子化の変換係数を取得する。各実施形態において、ビデオ符号器(603)はさらに残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、デコーディングされた残差データを生成するように配置される。デコーディングされた残差データは、イントラ符号器(622)とインター符号器(630)に適切に利用される。例えば、インター符号器(630)は、デコーディングされた残差データとインター予測情報に基づき、デコーディングされたブロックを生成し、且つイントラ符号器(622)はデコーディングされた残差データとイントラ予測情報に基づきデコーディングされたブロックを生成できる。デコーディングされたブロックを適切に処理することで、デコーディングされたピクチャを生成し、いくつかの例示において、デコーディングされたピクチャは、メモリ回路(図示せず)においてバッファリングされ、参照ピクチャとして利用される。
エントロピー符号器(625)は、ビットストリームをフォーマットすることで、コーディングされたブロックを含むように配置される。エントロピー符号器(625)は、HEVC規格のような適切な規格に基づき各種情報を含むように配置される。例示において、エントロピー符号器(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報及びビットストリームにおける他の適切な情報を含むように配置される。なお、開示テーマに基づき、インターモードまたは双方向予測モードのマージサブモードで、ブロックをコーディングする場合、残差情報が存在しない。
図7は、本開示内容の他の実施形態によるビデオデコーダ(710)の図面を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部としてのコーディングされたピクチャを受信するとともに、コーディングされたピクチャをデコーディングすることで、再構築ピクチャを生成するように配置される。例示において、ビデオデコーダ(710)は図3の例示におけるビデオデコーダ(310)の代わりとして用いられる。
図7の例示において、ビデオデコーダ(710)は、図7に示す互いに連結されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)及びイントラデコーダ(772)を含む。
エントロピーデコーダ(771)は、コーディングされたピクチャに基づき、特定のシンボルを再構築するように配置され、シンボルは、コーディングされたピクチャを構成するシンタックス要素を示す。このような符号は、例えば、ブロックをコーディングするためのモード(例えば、イントラモード、インターモード、双方向予測モード、後の両者のマージサブモードまたは他のサブモード)、イントラデコーダ(772)またはインターデコーダ(780)の予測のための特定のサンプルまたはメタデータを認識できる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば量子化の変換係数という形式を呈する残差情報などを含む。例示において、予測モードがインターまたは双方向予測モードである場合、インター予測情報はインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報はイントラデコーダ(772)に提供される。残差情報は逆量子化を介して残差デコーダ(773)に提供される。
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づきインター予測結果を生成するように配置される。
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づき予測結果を生成するように配置される。
残差デコーダ(773)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理することで、残差を周波数領域から空間領域に変換するように配置される。残差デコーダ(773)は、特定の制御情報を必要とする可能性もあり(量子化器パラメータ(QP)を含むため)、情報はエントロピーデコーダ(771)から提供されてもよい(少量の制御情報のみである可能性があるため、データ経路を図示していない)。
再構築モジュール(774)は、空間領域において、残差デコーダ(773)から出力された残差と予測結果(インター予測モジュールまたはイントラ予測モジュールから出力される)を組み合わせることで、再構築ブロックを形成するように配置されてもよく、再構築ブロックは、再構築されるピクチャの一部であってもよく、再構築されるビデオの一部であってもよい。なお、デブロッキング動作などのような他の適切な動作を実行することで、視覚品質を向上する。
なお、いずれかの適切な技術によってビデオ符号器(303)、ビデオ符号器(503)、ビデオ符号器(603)、ビデオデコーダ(310)、ビデオデコーダ(410)及びビデオデコーダ(710)を実現できる。実施形態において、1つまたは複数の集積回路によってビデオ符号器(303)、ビデオ符号器(503)、ビデオ符号器(603)、ビデオデコーダ(310)、ビデオデコーダ(410)及びビデオデコーダ(710)を実現できる。他の実施形態において、ソフトウェア命令を実行する1つまたは複数のプロセッサーによってビデオ符号器(303)、ビデオ符号器(503)、ビデオ符号器(603)、ビデオデコーダ(310)、ビデオデコーダ(410)及びビデオデコーダ(710)を実現できる。
本開示内容の各態様は、インター予測に関して、例えば、アフィン動き補償及び精密化に関する。
各実施形態において、インター予測のCUに対して、動きベクトル、参照ピクチャインデックス、参照ピクチャリスト使用インデックス及び/又は他の付加情報を含む動きパラメータを、インター予測のサンプルの生成に用いる。インター予測は片-予測、双-予測などを含む。片-予測において、参照ピクチャリスト(例えば、第1参照ピクチャリスト又はリスト0(L0)、第2参照ピクチャリスト又はリスト1(LI))を利用できる。双-予測において、L0とLIという両者を利用できる。参照ピクチャリスト使用インデックスは、(1つ又は複数の)参照ピクチャリストがL0、L1又はL0及びL1を含むように指示する。
明示または暗黙方式で、動きパラメータをシグナリングする。スキップモードを利用してCUに対してコーディングを行う場合、CUは1つのPUに関連し、著しい残差係数(例えば、残差係数がゼロである)、コーディングされた動きベクトル差(MVD)又は参照ピクチャインデックスを持たなくてもよい。
以下のようなマージモードを利用でき、マージモードで、空間と時間マージ候補、及び他の可能なマージ候補を含む隣接CUから現在CUの動きパラメータを取得する。マージモードはインター予測のCUに適用されるとともに、スキップモードに適用される。代替案として、動きパラメータは明示的に送信されるか、又はシグナリングされてもよい。例えば、各CUに従って、動きベクトル、各参照ピクチャリストのための対応する参照ピクチャインデックス、参照ピクチャリスト使用フラグ及び他の情報を明示的にシグナリングしてもよい。
特定の実施形態において、(1)拡張マージ予測、(2)動きベクトル差を有するマージモード(MMVD)、(3)対称MVDシグナリングを有する高度動きベクトル予測(AMVP)モード、(4)アフィン動き補償予測、(5)サブブロックに基づく時間動きベクトル予測(SbTMVP)、(6)自己適応動きベクトル解像度(AMVR)、(7)加重平均を有する双-予測(BWA)、(8)双方向オプティカルフロー(BDOF)、(9)デコーダ側動きベクトル精密化(DMVR)、(10)三角形パーティション予測、及び(11)組み合わせたインターとイントラ予測(CIIP)のような、インター予測コーディングツールのうちの1種または多種を利用する。
特定の例示において、並進運動モデルを動き補償予測(MCP)に適用する。ブロックに基づくアフィン動き補償(アフィン動き補償予測、アフィン動き補償方法、アフィン動き予測、アフィン動きモデル、アフィン変換動き補償予測とも呼ばれる)を利用して、例えば各種のタイプの動きに対してモデリングを行って、例えばピンチアウト/ピンチイン、回転、遠近動き及び他の不規則な動き(例えば、並進運動と異なる動き)がある。
図8Aにおいて、4パラメータアフィンモデル(又は4パラメータアフィン動きモデル)を利用する場合、CP0とCPIという2つの制御ポイント(CP)の動き情報により、ブロック(810A)のアフィン動き場が記述される。動き情報はそれぞれCP0とCPIとの2つのMV、又は制御ポイントMV(CPMV)CPMV0及びCPMV1を含む。図8Bにおいて、6パラメータアフィンモデル(又は6パラメータアフィン動きモデル)を利用する場合、3つのCP、即ちCP0~CP2の動き情報により、ブロック(810B)のアフィン動き場が記述される。動き情報はそれぞれCP0~CP2の3つのMV、又はCPMV、即ちCPMV0~CPMV2を含む。
4パラメータアフィン動きモデルに対して、ブロック(810A)におけるサンプル位置(x、y)での動きベクトルは以下のように導出される。
(mv0x,mv0y)は左上CP(CP0)のMV(CPMV0)であり、(mv1x,mv1y)は右上CP(CP1)のMV(CPMV1)である。座標(x、y)はブロック(810A)の左上サンプルに対応し、Wはブロック(810A)の幅を示す。
6パラメータアフィン動きモデルに対して、ブロック(810B)におけるサンプル位置(x、y)での動きベクトルは以下のように導出される。
(mv0x,mv0y)は左上隅CP(CP0)のMV(CPMV0)であり、(mv1x,mv1y)は右上隅CP(CP1)のMV(CPMV1)であり、(mv2x,mv2y)は左下隅CP(CP2)のMV(CPMV2)である。座標(x、y)はブロック(810B)の左上サンプルに対応し、Wはブロック(810B)の幅を示し、Hはブロック(810B)の高さを示す。
動き補償予測を簡略化するために、図9に示すように、特定の実施形態において、サブブロックに基づくアフィン動き補償(サブブロックに基づくアフィン動きモデルとも呼ばれる)を利用する。サブブロックに基づくアフィン動き補償において、現在ブロック(例えば、輝度ブロック)(900)は、複数のサブブロック(アフィンサブブロックとも呼ばれる)(902)に区画される。MV(サブブロックMVとも呼ばれる)(901)を利用して、複数のサブブロック(902)のうちの各サブブロックにおける各サンプルのMVを示す。例示において、サブブロック(902)のサブブロックMV(901)はサブブロック(902)のセンターサンプルのMVである。従って、4パラメータアフィン動きモデル(例えば、式(1))、6パラメータアフィン動きモデル(例えば、式(2))などを利用して、サブブロックMV(901)を計算する。図9を参照し、現在ブロック(900)は、16個のサブブロックMV(例えば、Mva~MVp)(901)を有する16個のサブブロック(902)に区画される。
図9を参照し、例示として、4パラメータアフィン動きモデルを利用する。v0
→及びv1
→はそれぞれ左上CP(CP0)のCPMV及び右上CP(CP1)のCPMVである。サブブロック(902)のサブブロックMV(901)を取得するために、式(1)に基づき、サブブロック(902)のセンターサンプルのMVを計算し、1/16の分数精度(例えば、サブブロックMVの精度はサンプル又は画素の1/16である)に丸められる。動き補償補間フィルタを応用して、取得したMV(901)により、各サブブロック(902)の予測を生成する。
色度成分のサブブロックサイズは、4×4に設置される。4×4色度サブブロックのサブブロックMVは、4つの対応する4×4輝度サブブロックのサブブロックMVの平均値に算出されてもよい。
並進運動インター予測と類似して、特定の実施形態は2つのアフィン動きインター予測モードを採用し、即ち、アフィンマージモード(又はアフィンマージ予測、AF_MERGEモード)及びアフィンAMVPモード(又はアフィンAMVP予測)である。
特定の実施形態において、アフィンマージモード(例えば、AF_MERGEモード)は、幅及び高さがいずれも8の以上であるCUに適用されてもよい。アフィンマージモードにおいて、現在CUのCPMVは現在CUの空間隣接CUの動き情報に基づき生成される。候補リスト(例えば、アフィンマージ候補リスト)には最大5つのCPMV予測器(CPMVP)候補が含まれ、現在CUに使用する候補を指示するように、インデックスをシグナリングすることができる。(a)隣接CU(例えば、空間隣接CU)のCPMVから推定された継承アフィンマージ候補、(b)隣接CU(例えば、空間隣接CU及び/又は時間隣接CU)の並進MVにより得られた構築アフィンマージ候補、及び/または(c)ゼロMVという3つのタイプのCPMVP候補を利用して、アフィンマージ候補リストを形成する。
実施形態において、例えば、VTM3において、候補リスト(例えば、アフィンマージ候補リスト)には最大2つ継承アフィンマージ候補が含まれ、これらの継承アフィンマージ候補は隣接CU(又はブロック)のアフィン動きモデルに基づき得られる。例えば、左隣接CUに基づき第1継承アフィンマージ候補を取得し、上方にある隣接CUに基づき第2継承アフィンマージ候補を取得する。CU(1001)としての例示的な候補CU(又はブロック)は図10Aに示す。第1継承アフィンマージ候補(又は左予測器)を取得するために、A0->A1という走査順序を応用してもよい。第2継承アフィンマージ候補(又は以上の予測器)を取得するために、走査順序はB0->B1->B2であってもよい。例示において、各側(例えば、左側及び/又は上側)からの第1継承候補のみを選択する。また、2つ継承候補の間でプルーニングチェック(pruning check)を実行しない。隣接アフィンCUを認識した場合、隣接アフィンCUのCPMVにより、現在CUのアフィンマージ候補リストにおけるCPMVP候補を得る。図10Bに示すように、アフィン動きモードで、隣接する左下ブロックAに対してコーディングを行うと、ブロックAが含まれるCU(1002)の左上隅、右上隅及び左下隅のMV v2、v3及びv4を得ることができる。4パラメータアフィン動きモデルで、ブロックAに対してコーディングを行うと、v2及びv3に基づき、現在CU(1000)の2つのCPMVを計算することができる。6パラメータアフィン動きモデルで、ブロックAに対してコーディングを行うと、v2、v3及びv4に基づき、現在CU(1000)の3つのCPMVを計算することができる。
CUに対して構築されたアフィンマージ候補は、CUの各CPの隣接並進運動情報を組み合わせることで、構築された候補を指してもよい。図11に示す現在ブロック(1100)の空間隣接物及び時間隣接物に基づき、CPの動き情報を取得する。CPMVk(k = 1、2、3、4)は現在ブロック(1100)のK番目のCPを示す。CPMV1に対して、ブロックB2、B3及びA2をチェックする。例えば、走査順序はB2-> B3-> A2であり、最初の利用可能なブロックのMVをCPMV1とする。CPMV2に対して、例えば、B1->B0という走査順序で、ブロックB1及びB0をチェックする。CPMV3に対して、例えば、A1->A0という走査順序で、ブロックAl及びA0をチェックする。時間動きベクトル予測器(TMVP)(図11において、Tで示す)が利用可能である場合、TMVPはCPMV4として適用できる。
4つのCPのMVを取得した後、4つの制御ポイントの動き情報に基づき、アフィンマージ候補を構築することができる。{CPMV1、CPMV2、CPMV3}、{CPMV1、CPMV2、CPMV4}、{CPMV1、CPMV3、CPMV4}、{CPMV2、CPMV3、CPMV4}、{CPMV1、CPMV2)及び{CPMV1、CPMV3}というCPMVの組み合わせは、アフィンマージ候補を順次に構築するために用いられる。
3つのCPMVの組み合わせは、6パラメータアフィンマージ候補を構築でき、2つのCPMVの組み合わせは4パラメータアフィンマージ候補を構築できる。動きのズーム過程を避けるために、制御ポイントの参照インデックスが異なると、対応するCPMVの組み合わせを廃棄できる。
継承アフィンマージ候補及び構築されたアフィンマージ候補をチェックした後、アフィンマージ候補リストが完全ではない場合、ゼロMVはアフィンマージ候補リストの末尾に差し込まれる。
特定の実施形態において、アフィンAMVPモードは、幅及び高さがいずれも16以上であるCUに適用される。ビットストリームにおいて、アフィンAMVPモードを使用するかどうかを指示するように、CUレベルでのアフィンフラグをシグナリングし、そして、4パラメータアフィン動きモデルを使用するか、それとも6パラメータアフィン動きモデルを使用するかを指示するように、他の1つのフラグをシグナリングしてもよい。アフィンAMVPモードでは、ビットストリームにおいて、現在CUのCPMVと対応するCPMV予測器(CPMVP)との差をシグナリングしてもよい。アフィンAMVP候補リストのサイズは2であってもよく、次の4種類のCPMV候補を使用して、たとえば(a)->(b)->(c)->(d)の順序で生成できる:(a)隣接CUのCPMVから推定された継承アフィンAMVP候補、(b)隣接CUの並進MVを使用して導出された構築アフィンAMVP候補、(c)隣接CUからの並進MV、及び(d)ゼロMV。
例示において、継承アフィンAMVP候補のチェック順序(又は走査順序)は、継承アフィンマージ候補のチェック順序と類似又は同様である。例示において、継承アフィンAMVP候補と継承アフィンマージ候補との間の相違点は、継承アフィンAMVP候補に対して、現在ブロックにおける参照ピクチャと同様である参照ピクチャを有するアフィンCUのみを考慮することにある。継承アフィンMV予測器(又は継承アフィンAMVP候補)をアフィンAMVP候補リストに差し込む際、プルーニング処理を応用しない。
図11に示す指定の空間隣接物に基づき、構築AMVP候補を取得できる。(1つ又は複数の)アフィンマージ候補を構築する際使用したチェック順序と同じチェック順序を利用してもよい。また、隣接ブロックの参照ピクチャインデックスをチェックしてもよい。チェック順序における1つ目のブロックを利用してもよく、当該1つ目のブロックは、インターコーディングされ、且つ現在CUにおける参照ピクチャと同じ参照ピクチャを有する。4パラメータアフィン動きモデルで、現在CUに対してコーディングを行って、CPMV1及びCPMV2がいずれも利用可能である場合、1つの候補として、利用可能なCPMV(例えば、CPMV1及びCPMV2)をアフィンAMVP候補リストに追加してもよい。6パラメータアフィン動きモードで、現在CUに対してコーディングを行って、全ての3つのCPMV(例えば、CPMV1、CPMV2及びCPMV3)がいずれも利用可能である場合、1つの候補として、利用可能なCPMVをアフィンAMVP候補リストに追加してもよい。さもなければ、構築AMVP候補を利用不可に設置する。
(1つ又は複数の)継承されたアフィンAMVP候補及び(1つ又は複数の)構築されたAMVP候補をチェックした後、アフィンAMVP候補リストのサイズが2より小さいと、現在ブロック(1100)の(1つ又は複数の)隣接CUからの並進MVを追加することで、現在ブロック(1100)の全ての制御ポイントMV(利用可能であれば)を予測することができる。最後、アフィンAMVP候補リストがまだいっぱいでない場合、ゼロMVを利用して、アフィンAMVP候補リストを充填してもよい。
本開示内容の実施形態は、補間フィルタ(例えば、6タップ又は8タップ補間フィルタ)を有するアフィンサブブロック動き補償に適用される。例示において、アフィンサブブロック予測以外、4×4輝度ブロックに対するインター予測を無効にする。例示において、サイズが4×8又は8×4である輝度ブロックに対して、インター片-予測のみを許可する。
例示において、テーブル1に示すように、輝度サンプルサイズが4×4であるアフィンサブブロック動き補償に対して、6タップ補間フィルタを利用する。テーブル2に示すように、アフィン動きモデルによらない輝度動き補償に対して、8タップ補間フィルタを利用する。
テーブル1. 6タップ補間フィルタ
テーブル2. 8タップ補間フィルタ
アフィン動きモデルパラメータ又はアフィンパラメータ(例えば、式(1)に示す4パラメータアフィン動きモデルにおけるパラメータ、式(2)に示す6パラメータアフィン動きモデルにおけるパラメータ)は、例えば式(1)又は式(2)に基づき、CU(例えば、ブロック、輝度ブロック)における各画素(又はサンプル)のMVを取得するために用いられる。ただし、画素に基づくアフィン動き補償を実行するための高複雑さ及びメモリアクセス帯域幅要求から、特定の実施形態において、サブブロックに基づくアフィン動き補償を実現する。サブブロックに基づくアフィン動き補償において、現在ブロック(例えば、CU)はサブブロックに区画され、サブブロックにおける各サブブロックは、現在ブロックのCPMVから取得されたサブブロックMVが割り当てられる。例示において、サブブロックのサイズは4×4サンプルである。サブブロックに基づくアフィン動き補償は、コーディング効率を向上させ、コーディングの複雑さ及びメモリアクセス帯域幅を低減させることができる。
いくつかの実施形態において、オプティカルフローに基づく予測精密化(PROF)(PROF方法とも呼ばれる)を実現することで、サブブロックに基づくアフィン動き補償を改良し、より細かい動き補償粒度を具備する。実施形態において、サブブロックに基づくアフィン動き補償を実行した後、オプティカルフロー方程により得られた差(又は精密値、精密化、予測精密化)を予測サンプル(例えば、輝度予測されたサンプル又は輝度予測サンプル)に追加することで、精密化された予測サンプルを取得する。
図12は、本開示内容の実施形態によるPROF方法の例示的な概略図を示す。現在ブロック(1210)は、4つのサブブロック(1212、1214、1216及び1218)に分けられる。サブブロック(1212、1214、1216及び1218)における各サブブロックは4×4画素又はサンプルのサイズを有する。例えば、サブブロック(1212)の中心位置及びアフィン動きモデル(例えば、4パラメータアフィン動きモデル、6パラメータアフィン動きモデル)を利用して、現在ブロック1210のCPMVに基づき、サブブロック(1212)のサブブロックMV(1220)を取得する。サブブロックMV(1220)は参照ピクチャにおける参照サブブロック(1232)を指向する。参照サブブロック(1232)に基づき、初期サブブロック予測サンプルを決定する。
いくつかの例示において、サブブロックMV(1220)により記述される、参照サブブロック(1232)からサブブロック(1212)への並進運動は、高精度でサブブロック(1212)を予測できない可能性がある。サブブロックMV(1220)により記述される並進運動以外、サブブロック(1212)はさらに、非並進運動(例えば、図12から見える回転である)を経験してもよい。図12を参照し、参照ピクチャにおける、影付きサンプル(例えば、サンプル(1232a))を有するサブブロック(1250)は、サブブロック(1212)におけるサンプルに対応し、その再構築に用いられる。影付きサンプル(1232a)は、画素MV(1240)を移動することで、高精度でサブブロック(1212)におけるサンプル(1212a)を再構築できる。従って、以下のように、特定の例示において、非並進運動が生じると、予測の正確性を向上させるために、アフィン動きモデルに適切な予測精密化方法を応用してもよい。
例示において、以下の4つのステップを利用して、PROF方法を実現する。ステップ(1)では、サブブロックに基づくアフィン動き補償を実行することで、現在サブブロック(例えば、サブブロック(1212))に対する予測を生成し、例えば、初期サブブロック予測(i,j)を生成し、i及びjは現在サブブロック(1212)における位置(i,j)(サンプル位置、サンプル位置決めとも呼ばれる)でのサンプルの対応する座標である。
ステップ(2)では、勾配計算を実行し、例えば、以下の式(3)及び式(4)に基づく3タップフィルタ[-1、0、 1]を利用して、各サンプル位置(i,j)での初期サブブロック予測I(i,j)の空間勾配gx(i,j)及びgx(i,j)を計算する。
サブブロック予測は、各側で1つの画素を拡張することで、勾配計算を行う。いくつかの実施形態において、メモリ帯域幅及び複雑さを低減させるために、参照ピクチャ(例えば、サブブロック(1232)を含む参照ピクチャ)における最も近い整数画素位置から、拡張境界での画素をコピーする。従って、パディング領域に対する付加補間を避ける。
ステップ(3)では、以下の式(5)(例えば、オプティカルフロー方程式)で、予測精密化ΔI(i,j)を計算する。
Δmv(i,j)(例えば、ΔMV(1242))は、サンプル位置(i,j)の画素MV又はサンプルMV Mv(i,j)(例えば、画素MV(1240))とサブブロック(例えば、サブブロック(1212))のサブブロックMV MvSB(例えば、サブブロックMV(1220))との間の差MVであり、サンプル位置(i,j)は位置決めされる。以下の式(6)でΔmv(i,j)を決定する。
Δmvx(i,j)及びΔmvy(i,j)は、それぞれ差MV Δmv(i,j)のx成分(例えば、水平成分)及びy成分(例えば、垂直成分)である。
アフィンモデルパラメータ及びサブブロック中心位置に対する画素位置は、1つのサブブロックから、別の1つサブブロックに変更されないから、第1サブブロック(例えば、サブブロック(1212))に対してΔmv(i,j)を計算し、同一の現在ブロック(1210)における他のサブブロック(例えば、サブブロック(1214)、(1216)及び(1218))に対して、Δmv(i,j)を改めて使用する。いくつかの例示において、x及びyはサブブロック(1212)の中心位置に対するサンプル位置(i,j)の水平変位及び垂直変位を示し、以下の式(7)でΔmv(i,j)(例えば、Δmvx(i,j)及びΔmvy(i,j)を含む)を取得する。
Δmvx(x,y)は、x成分Δmvx(i,j)であり、Δmvy(x,y)はy成分Δmvy(i,j)である。
例示において、4パラメータアフィン動きモデルに対して、
6パラメータアフィン動きモデルに対して、
(mv0x,mv0y)、(mv1x,mv1y)及び(mv2x,mv2y)は、それぞれ左上CPMV、右上CPMV及び左下CPMVであり、w及びhは現在サブブロック(1212)を含む現在ブロック(1210)の幅及び高さである。
ステップ(4)では、予測精密化ΔI(i,j)(例えば、輝度予測精密化)を初期サブブロック予測I(i,j)に追加することで、別の1つの予測を生成し、例えば、精密化予測I’(i,j)を生成する。サンプル(i,j)に対して、以下の式(10)で、精密化予測I’(i,j)を生成する。
実施形態において、サブブロックに基づくアフィン動き補償(又はサブブロックに基づくアフィン動きモデル)において、6タップ補間フィルタを利用し、アフィンサブブロックのサイズ(アフィンサブブロックサイズとも呼ばれる)は4×4サンプル(例えば、4×4輝度サンプル)である。8タップ補間フィルタと比較すると、6タップ補間フィルタの動き補償を利用することは、低い複雑さ及び記憶帯域幅要求を具備する。いくつかの例示において、8タップ補間フィルタを利用する場合、予測精度を向上させる。
実施形態において、アフィン動きモデル(例えば、サブブロックに基づくアフィン動きモデル)によりコーディングされるブロック(例えば、輝度ブロック)のPROFにおいて、4×4サブブロック(例えば、輝度サブブロック)における各サブブロックに対して勾配計算を実行し、4×4輝度サブブロックにおける各サブブロックは、6×6のサイズにパディングされることで、勾配計算(例えば、式(3)~式(4)により記述される勾配計算)を実行する。ただし、パディング動作及び勾配計算が多いと、PROFの複雑さに影響する。
本開示内容の態様によれば、コーディングされたビデオビットストリームから、現在ブロック(CB)(例えば、CB(900))のコーディング情報をデコーディングすることができる。コーディング情報は、サブブロックに基づくアフィン動きモデルを利用してCBに対してコーディングを行うように指示する。サブブロックに基づくアフィン動きモデルは、CBの複数のCPMV(例えば、図9におけるv0
→及びv1
→)に基づくアフィンパラメータを含んでもよい。また、CBはサブブロックMV(例えば、サブブロックMV(901))を有するアフィンサブブロック(例えば、サブブロック(902))を含んでもよい。CBは(1つ又は複数の)付加サブブロックMVを有する(1つ又は複数の)付加アフィンサブブロックを含んでもよい。
コーディング情報に基づきサブブロック特性を選択するかどうかを決定することで、サブブロックMVに基づき、アフィンサブブロックにおけるサンプルに対する予測を生成する。サブブロック特性の選択に応じて、アフィンパラメータのうちの少なくとも1つに基づき、サブブロック特性を決定できる。サブブロック特性は、(i)サンプルの予測を生成するためのサブブロックサイズ、及び(ii)アフィンサブブロックに使用する補間フィルタタイプのうちの1つを指示する。また、決定されたサブブロック特性に基づき、アフィンサブブロックにおけるサンプルを再構築する。
CBのCPMVに基づき、アフィンパラメータを決定できる。実施形態において、図8Aに示し、式(1)又は式(7)及び式(8)により記述したように、サブブロックに基づくアフィン動きモデルは、4パラメータアフィン動きモデルである。図8Aを参照し、CB(例えば、(810A))は、第1CPMV(例えば、CPMV0)を有する左上CP(例えば、CP0)、及び第2CPMV(例えば、CPMV1)を有する右上CP(例えば、CP1)を含む。アフィンパラメータは、第1アフィンパラメータ(例えば、
及び第2アフィンパラメータ(例えば、
)を含む。第1アフィンパラメータ(例えば、「a」)は、第2CPMVと第1CPMVとの間の第1MV差のx成分の、CBの幅(例えば、w)に対する比率を指示する。第2アフィンパラメータ(例えば、「c」)は、第1MV差のy成分の、CBの幅に対する比率を指示する。
実施形態において、図8Bに示し、式(2)又は式(7)及び式(9)により記述したように、サブブロックに基づくアフィン動きモデルは、6パラメータアフィン動きモデルである。図8Bを参照し、CB(例えば、(810B))は、第1CPMV(例えば、CPMV0)を有する左上CP(例えば、CP0)、第2CPMV(例えば、CPMV1)を有する右上CP(例えば、CP1)及び第3CPMV(例えば、CPMV2)を有する左下CP(例えば、CP2)を含む。アフィンパラメータは、第1アフィンパラメータ(例えば、
)、第2アフィンパラメータ(例えば、
)、第3アフィンパラメータ(例えば、
)及び第4アフィンパラメータ(例えば、
)を含む。第1アフィンパラメータ及び第2アフィンパラメータは、4パラメータアフィン動きモデルにおける第1アフィンパラメータ及び第2アフィンパラメータと同じであってもよく、簡潔のために、詳しい記載を省略する。第3アフィンパラメータ(例えば、「b」)は、第3CPMVと第1CPMVとの間の第2MV差のx成分の、CBの高さ(例えば、h)に対する比率を指示する。第4アフィンパラメータ(例えば、「d」)は第2MV差のy成分の、CBの高さに対する比率を指示する。
実施形態において、アフィンパラメータにおける1つ又は複数は、CBにおける方向(例えば、水平方向(幅)、垂直方向(高さ))に沿う2つの隣接画素(又はサンプル)の平均MV差を示す。例えば、第1アフィンパラメータ「a」及び第2パラメータ「c」は、水平方向(幅)に沿う2つの隣接画素の平均MV差(MVD)を示す。また、第1アフィンパラメータ「a」はx成分を示し、第2アフィンパラメータ「c」はy成分を示す。例えば、第3アフィンパラメータ「b」及び第4パラメータ「d」は垂直方向(高さ)に沿う2つの隣接画素の平均MVDを示す。また、第3アフィンパラメータ「b」はx成分を示し、第4アフィンパラメータ「d」はy成分を示す。
アフィンパラメータに「a」、「b」、「c」及び/又は「d」が含まれることに加えて、またはアフィンパラメータに「a」、「b」、「c」及び/又は「d」が含まれることに代わって、ピンチアウト/ピンチイン(ズームとも呼ばれる)、回転などのようなCBの各種の動きを記述するために、アフィンパラメータにはさらに、他のパラメータが含まれてもよい。
上記のアフィンパラメータ以外、以下の式(11)で並進運動に関するパラメータ「e」及び「f」(又は並進運動パラメータ、並進パラメータ)を取得してもよい。
例示において、4つのパラメータ、例えば第1アフィンパラメータ(例えば、
)、第2アフィンパラメータ(例えば、
)、e及びfを利用して、4パラメータアフィン動きモデルを記述する。例示において、6つのパラメータ、例えば第1アフィンパラメータ(例えば、
)、第2アフィンパラメータ(例えば、
)、第3アフィンパラメータ(例えば、
)及び第4アフィンパラメータ(例えば、
)、e及びfを利用して、6パラメータアフィン動きモデルを記述する。
実施形態において、サブブロックサイズは、CBにおけるアフィンサブブロックのアフィンサブブロックサイズである。補間フィルタタイプは、任意の適切な長さを有する補間フィルタであってもよい。例示において、補間フィルタタイプは第1長さ(例えば、6タップ)を有する第1補間フィルタ、又は第2長さ(例えば、8タップ)を有する第2補間フィルタであり、第1長さは第2長さより小さい。サブブロック特性は、アフィンサブブロックサイズ又は補間フィルタタイプを指示できる。アフィンパラメータのうちの少なくとも1つ、及び(i)閾値と(ii)事前定義の範囲とのうちの1つに基づき、サブブロック特性を決定できる。
例示において、アフィンパラメータのうちの少なくとも1つ及び閾値(又は事前定義の範囲)に基づき、条件付きで、アフィン動き補償及び/又はアフィン精密化(例えば、PROF)のための1つ又は複数のプロセスを選択できる。
実施形態において、閾値は、符号器及びデコーダの既知の事前定義値であってもよい。閾値をシグナリングする必要がない。実施形態において、例えば、シーケンスレベル、ピクチャレベル、タイルレベル、タイルグループレベル、スライスレベルなどのような高いレベル(例えば、CUレベルより高いレベル)で、閾値をシグナリングする。
本開示内容の態様によれば、少なくとも1つのアフィンパラメータ(又はアフィンの関連パラメータ)と閾値との比較に基づき、条件付きで、アフィンサブブロックサイズ及び/又は補間フィルタタイプ(例えば、6タップ又は8タップを有するアフィンサブブロック補間フィルタ)を選択できる。実施形態において、アフィンパラメータのため、隣接サブブロックの間の大きいMV差(例えば、少なくとも1つのアフィンパラメータと閾値との間の比較に基づく)を招致する場合、小さいサイズ(例えば、4×4サンプル)をアフィンサブブロックに用いる。さもなければ、大きいサイズ(例えば、8×8サンプル)を利用する。また、小さいアフィンサブブロックサイズの補間フィルタに使用するタップの数は、大きいアフィンサブブロックサイズの補間フィルタに使用するタップの数より小さい。例えば、小さいアフィンサブブロックサイズを利用する場合、6タップ補間フィルタにより、複雑さ及びメモリ帯域幅を低減させる。大きいアフィンサブブロックサイズに対して、8タップ補間フィルタを利用する。例示において、アフィンサブブロックサイズ(例えば、アフィン輝度サブブロックサイズ)は4×4サンプルであり、6タップ補間フィルタが使用される。
前記のように、CBのCPMVを利用して、アフィンパラメータを計算することができる。例示において、アフィンパラメータは、第1アフィンパラメータ、第2アフィンパラメータ、第3アフィンパラメータ及び第4アフィンパラメータに対応するa、b、c及びdを含む。4パラメータアフィン動きモデルに対して、式(8)でa、b、c及びdを含むアフィンパラメータを記述できる。6パラメータアフィン動きモデルに対して、式(9)で、a、b、c及びdを含むアフィンパラメータを記述できる。(mv0x,mv0y)、(mv1x,mv1y)、(mv2x,mv2y)は、左上CPMV、右上CPMV及び左下CPMVであり、wはCBの幅であり、hはCBの高さである。
アフィンパラメータのうちの少なくとも1つに基づき、条件付きでアフィンサブブロックサイズ(例えば、4×4、8×8)を決定できる。
実施形態において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含む。複数のアフィンパラメータの絶対値が事前定義の条件を満たすかどうかを決定できる。事前定義の条件は、(i)絶対値の最大値が閾値より大きいこと、(ii)絶対値の最大値が閾値以上であること、(iii)絶対値の最小値が閾値より大きいこと、(iv)絶対値の最小値が閾値以上であること、及び(v)絶対値が事前定義の範囲外にあることのうちの1つである。
絶対値が事前定義の条件を満たすことに応じて、サブブロック特性を決定することで、アフィンサブブロックサイズが第1サイズ(例えば、4×4サンプル)であること、及び/または補間フィルタタイプが第1補間フィルタ(例えば、6タップ補間フィルタ)であることを指示できる。例えば、事前定義の条件を満たす絶対値は、アフィンパラメータのため、隣接サブブロックの間のMV差が大きいことを指示するから、第1サイズの小さいサイズ(例えば、4×4)及び第2サイズ(例えば、8×8)をアフィンサブブロックサイズとすることは、例えば予測精度を向上させる。第2サイズは第1サイズより大きい。
絶対値が事前定義の条件を満たさないことに応じて、サブブロック特性を決定することで、アフィンサブブロックサイズが第2サイズであること(例えば、8×8サンプル)、及び/または補間フィルタタイプが第2補間フィルタであること(例えば、8タップ補間フィルタ)を指示できる。例えば、事前定義の条件を満たさない絶対値は、アフィンパラメータのため、隣接サブブロックの間のMV差が小さいことを指示するから、第1サイズ及び第2サイズの大きいサイズ(例えば、8×8)をアフィンサブブロックサイズとすることは、小さいサイズ(例えば、4×4の第1サイズ)と類似する予測精度を実現できる。例示において、大きいサイズ(例えば、8×8の第2サイズ)を利用することは、予測効率を向上させる。
閾値は、1/4サンプル(例えば、1/4輝度サンプル)に等しい値、1/8サンプル(例えば、1/8輝度サンプル)に等しい値などのような、任意の適切な値に設置される。例示において、1/4サンプルは2つの隣接サンプルの間のMV差(例えば、MV差のx成分、MV差のy成分)が、1/4サンプル又は画素であることを指示する。
閾値は以上の例示(例えば、1/4輝度サンプル)、1/8サンプル(例えば、1/8輝度サンプル)に等しい値に限定されない。前記のように、閾値はデコーダの既知の事前定義値であってもよいから、当該閾値をシグナリングする必要がない。代替案として、閾値を明示的にシグナリングしてもよい。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最大値は、max_parameter(例えば、max_parameter = max {|a|,|b|,|c|,|d|})として示される。絶対値の最大値が閾値以上である場合、アフィンサブブロックサイズは小さくてもよい。第1例示において、CBに対して、絶対値の最大値(例えば、max_parameter)が閾値より高い場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。さもなければ、絶対値の最大値が閾値以下である場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。第2例示において、絶対値の最大値(例えば、max_parameter)が閾値以上である場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。さもなければ、絶対値の最大値が閾値より小さい場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最大値は、max_parameter(例えば、max_parameter = max {|a|,|b|,|c|,|d|})として示される。絶対値の最大値が閾値以上である場合、アフィンサブブロックサイズは大きくてもよい。第1例示において、CBに対して、絶対値の最大値(例えば、max_parameter)が閾値より高い場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。さもなければ、絶対値の最大値が閾値以下である場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。第2例示において、絶対値の最大値(例えば、max_parameter)が閾値以上である場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。さもなければ、絶対値の最大値が閾値より小さい場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置されてもよい。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最小値は、min_parameter(例えば、min_parameter = min {|a|,|b|,|c|,|d|})として示される。絶対値の最小値が閾値以上である場合、アフィンサブブロックサイズは小さくてもよい。第1例示において、CBに対して、絶対値の最小値(例えば、min_parameter)が閾値より高い場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。さもなければ、絶対値の最小値が閾値以下である場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。第2例示において、絶対値の最小値(例えば、min_parameter)が閾値以上である場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。さもなければ、絶対値の最小値が閾値より小さい場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置されてもよい。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最小値は、min_parameter(例えば、min_parameter = min {|a|,|b|,|c|,|d|})として示される。絶対値の最小値が閾値以上である場合、アフィンサブブロックサイズは大きくてもよい。第1例示において、CBに対して、絶対値の最小値(例えば、min_parameter)が閾値より高い場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。さもなければ、絶対値の最小値が閾値以下である場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。第2例示において、絶対値の最小値(例えば、min_parameter)が閾値以上である場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。さもなければ、絶対値の最小値が閾値より小さい場合、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータにおける1つ又は複数が、事前定義範囲内に入るかどうかに基づき、アフィンサブブロックサイズを設置できる。CBの例示において、複数のアフィンパラメータの絶対値が事前定義範囲(又は事前定義値の範囲)内にある場合、アフィンサブブロックサイズは8×8サンプル(例えば、8×8輝度サンプル)に設置される。さもなければ、絶対値における何れか1つの絶対値が事前定義範囲外にあると、アフィンサブブロックサイズは4×4サンプル(例えば、4×4輝度サンプル)に設置される。事前定義範囲は[M、N]として示し、M及びNが正の数である。M及びNが事前定義されるか、または、例えばシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、タイルグループヘッダ、タイルヘッダ、スライスヘッダなどのコーディングされたビットストリームにおいて、M及びNをシグナリングする。
アフィンパラメータに基づき、条件付きで補間フィルタの使用を決定し、例えば、アフィン動きモデル(例えば、サブブロックに基づくアフィン動きモデル)として、6タップ補間フィルタを使用するか、それとも8タップ補間フィルタを使用するかを決定する。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最大値は、max_parameter(例えば、max_parameter = max {|a|,|b|,|c|,|d|})として示される。絶対値の最大値が閾値以上である場合、補間フィルタに使用するタップの数は少なくてもよい。第1例示において、CBに対して、絶対値の最大値(例えば、max_parameter)が閾値より高い場合、サブブロックに基づくアフィン動きモデル(又はアフィンサブブロックに基づく動き補償)において、6タップ補間フィルタを使用する。さもなければ、絶対値の最大値が閾値以下である場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。第2例示において、絶対値の最大値(例えば、max_parameter)が閾値以上である場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。さもなければ、絶対値の最大値が閾値より小さい場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最大値は、max_parameter (例えば、max_parameter = max {|a|,|b|,|c|,|d|})として示される。絶対値の最大値が閾値以上である場合、補間フィルタに使用するタップの数は多くてもよい。第1例示において、CBに対して、絶対値の最大値(例えば、max_parameter)が閾値より高い場合、サブブロックに基づくアフィン動きモデル(又はアフィンサブブロックに基づく動き補償)において、8タップ補間フィルタを使用する。さもなければ、絶対値の最大値が閾値以下である場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。第2例示において、絶対値の最大値(例えば、max_parameter)が閾値以上である場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。さもなければ、絶対値の最大値が閾値より小さい場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを使用する。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最小値は、min_parameter(例えば、min_parameter = min {|a|,|b|,|c|,|d|})として示される。絶対値の最小値が閾値以上である場合、補間フィルタに使用するタップ数は少なくてもよい。第1例示において、CBに対して、絶対値の最小値(例えば、min_parameter)が閾値より高い場合、サブブロックに基づくアフィン動きモデル(又はアフィンサブブロックに基づく動き補償)において、6タップ補間フィルタを使用する。さもなければ、絶対値の最小値が閾値以下である場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。第2例示において、絶対値の最小値(例えば、min_parameter)が閾値以上である場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。さもなければ、絶対値の最小値が閾値より小さい場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータの絶対値の最小値は、min_parameter(例えば、min_parameter = min {|a|,|b|,|c|,|d|})として示される。絶対値の最大値が閾値以上である場合、補間フィルタに使用するタップの数は多くてもよい。第1例示において、CBに対して、絶対値の最小値(例えば、min_parameter)が閾値より高い場合、サブブロックに基づくアフィン動きモデル(又はアフィンサブブロックに基づく動き補償)において、8タップ補間フィルタを使用する。さもなければ、絶対値の最小値が閾値以下である場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。第2例示において、絶対値の最小値(例えば、min_parameter)が閾値以上である場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。さもなければ、絶対値の最小値が閾値より小さい場合、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。
実施形態において、4パラメータアフィン動きモデル又は6パラメータアフィン動きモデルに対して、複数のアフィンパラメータはa、b、c及びdを含む。複数のアフィンパラメータにおける1つ又は複数が事前定義範囲内に入るかどうかに基づき、補間フィルタ(例えば、異なる数のタップを含む第1補間フィルタ及び第2補間フィルタ)を設置できる。CBの例示において、複数のアフィンパラメータの絶対値が事前定義範囲(又は事前定義値の範囲)内にある場合、サブブロックに基づくアフィン動きモデルにおいて、8タップ補間フィルタを使用する。さもなければ、絶対値における何れか1つの絶対値が事前定義範囲外にあると、サブブロックに基づくアフィン動きモデルにおいて、6タップ補間フィルタを利用する。事前定義範囲は[M、N]として示し、M及びNが正の数である。M及びNが事前定義されるか、または、例えばシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、タイルグループヘッダ、タイルヘッダ、スライスヘッダなどのコーディングされたビットストリームにおいて、M及びNをシグナリングする。
例えば、シーケンスレベル、ピクチャレベル、スライスレベル、タイルレベル、タイルグループレベルなどのシンタックス(例えば、ハイレベルシンタックス)により、本開示内容に記載のアフィンサブブロックサイズ及び/又はアフィンサブブロック補間フィルタ(例えば、6タップ補間フィルタ、8タップ補間フィルタ)に対する条件付き選択を有効または無効にする。例示において、シンタックスを明示的にシグナリングする。
例示において、CBは輝度ブロックであり、アフィンサブブロックサイズは8×8輝度サンプルに設置され、色度サブブロックサイズは4×4である。平均輝度MV値を使用せず、色度ブロックのMVを直接的に計算する。
実施形態において、CBは、CBのPROFにおける勾配計算のための勾配サブブロックを含む。サブブロックサイズは、勾配サブブロックのサイズである。勾配計算はブロックに基づく勾配計算(全体ブロックに基づく勾配計算とも呼ばれる)であってもよく、ブロックに基づく勾配計算において、勾配サブブロックはCBであり、サブブロックサイズはCBのブロックサイズに等しい。代替案として、勾配計算はサブブロックに基づく勾配計算であってもよい。CBは勾配サブブロック及び付加勾配サブブロックを含むから、サブブロックサイズがブロックサイズより小さい。
実施形態において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含んでもよい。複数のアフィンパラメータの絶対値の最大値又は最小値、及び勾配閾値に基づき、勾配計算がブロックに基づくか、それともサブブロックに基づくかを決定する。勾配閾値は閾値と同じであるか、又は異なってもよい。代替案として、絶対値及び勾配事前定義範囲に基づき、勾配計算がブロックに基づくか、それともサブブロックに基づくかを決定できる。勾配事前定義範囲は、事前定義範囲と同じであるか、又は異なってもよい。
サブブロックに基づくアフィン動きモデルに使用するPROFの例示において、CBのアフィンサブブロックにおける各アフィンサブブロック(例えば、各4×4アフィンサブブロック)に対して、インター予測(補間)を実行できる。アフィンサブブロックの予測出力に基づき、3タップフィルタ[1 0 -1]を利用して、勾配計算を行って、その後、アフィンサブブロックに対して精密化を適用する。アフィンサブブロックの勾配を計算するために、アフィンサブブロックはより大きいサイズにパディングされてもよく、例えば、アフィンサブブロックの各側で、1つの画素を延伸する。
全てのアフィンサブブロックに対するインター予測(補間)が完了した場合、CB全体(例えば、図13のCB1310)に対して勾配計算を行ってもよく、勾配計算はブロックに基づく勾配計算と呼ばれる。ブロックに基づく勾配計算において、各アフィンサブブロックを拡張することで、勾配計算を行う必要がない。逆に、CB全体に対して、CBの各境界で、1つの画素(又は1つの画素でパディングする)拡張することで、勾配計算を行ってもよく、各アフィンサブブロックの境界を拡張することより易い。図13を参照し、CB(1310)は境界(1321)~(1324)で、1つの画素がパディングされる。ブロックに基づく勾配計算から取得されたアフィンサブブロックの勾配に基づき、各アフィンサブブロックに対して予測精密化を行う。例えば、隣接アフィンサブブロックの間のMV差が小さい場合、隣接ブロックの予測としての、ブロックに基づく勾配計算は、サブブロックに基づく勾配計算と類似するか、またはサブブロックに基づく勾配計算より正確である。MV差が大きい場合、サブブロックに基づく勾配計算を利用できる。
条件に基づき、ブロックに基づく勾配計算、又はサブブロックに基づく勾配計算を切り替えることができる。条件を満たすと、ブロックに基づく勾配計算を利用できるから、CB全体に対して勾配計算を行うことができる。さもなければ、条件を満たさないと、サブブロックに基づく勾配計算を利用できるから、アフィンサブブロックにおける各アフィンサブブロックに対して勾配計算及びパディング処理を行うことができる。いくつかの実施形態において、ブロックに基づく勾配計算又はサブブロックに基づく勾配計算の間で選択するための複数の条件を利用できる。また、条件は1つ又は複数のアフィンパラメータ及び閾値又は範囲に基づく。
実施形態において、特定条件は、アフィンパラメータa、b、c及びdの絶対値の最大値(例えば、max_parameter = max {|a|,|b|,|c|,|d|})が閾値より小さいか、又は閾値以下であることである。例示において、閾値は各サンプルの1画素(又は画素/サンプル)、各サンプルの0.5画素などに対応する。例えば、1画素/サンプルである閾値は、サンプルでのMV差の成分(例えば、x成分、y成分)(又は2つの隣接サンプルの間のMVDの成分)が1画素であることを指示する。max_parameter = |a|である場合、CBの幅wは4サンプルであり、vlx-v0xは1画素であり、max_parameter = 1画素/4サンプル= 0.25画素/サンプルである。従って、max_parameterは閾値より小さく、CBにおける2つの隣接サンプルの平均MV差の任意の成分(例えば、x成分又はy成分)は勾配閾値より小さい。
実施形態において、閾値は各サンプル1画素又は各サンプル0.5画素などに対応する。例示において、内部アフィン動きは(7 + 4)= 11ビット(例えば、値211 = 2048は、1画素シフトに対応する)を利用して、サブブロックサイズは4×4サンプルである。各サンプル1画素の閾値は、値512(例えば、211/4)に対応する。各サンプル0.5画素の閾値は、値256に対応する。
実施形態において、サブブロックに基づく勾配計算の利用条件は、アフィンパラメータa、b、c及びdの絶対値の最小値(例えば、min_parameter = min {|a|,|b|,|c|,|d|})が閾値より高いか、または閾値以上であることである。
実施形態において、ブロックに基づく勾配計算の利用条件は、アフィンパラメータa、b、c及びdの絶対値が事前定義範囲内にあることである。事前定義範囲は[M、N]として示し、M及びNは正の数である。M及びNは事前定義されるか、または、例えばSPS、PPS、タイルグループヘッダ、タイルヘッダ、スライスヘッダなどのコーディングされたビットストリームにおいて、M及びNをシグナリングする。
実施形態において、例えばブロックに基づく勾配計算において、CB全体に対してパディングを行う。隣接サンプルを含むサブブロックの対応するサブブロックMVを利用して補間を行うことで、CBの隣接サンプルをパディングする(又は生成する)。CBの参照ピクチャにおける最も近い整数サンプル位置に基づきコピーすることで、隣接サンプルを生成する。CBにおける最も近いサンプルの予測に基づきコピーすることで、隣接サンプルを生成する。
図13を参照し、CB(1310)における最も近いサンプル(1301)の予測に基づきコピーすることで、隣接サンプル(1330)を生成する。類似するように、最も近いサンプル(1301)の予測に基づきコピーすることで、隣接サンプル(1331)及び(1332)を生成する。
実施形態において、サブブロックサイズは、アフィンサブブロックの幅、アフィンサブブロックの高さ、CBのPROFのためのアフィンPROFサブブロックの幅、アフィンPROFサブブロックの高さ、PROFにおける勾配計算のための勾配サブブロックの幅及び勾配サブブロックの高さのうちの1つである。補間フィルタタイプは、(i)第1長さ(例えば、6タップ)を有し、水平補間のための第1補間フィルタ、(ii)第2長さ(例えば、8タップ)を有し、水平補間のための第2補間フィルタ、(iii)第1長さを有し、垂直補間のための第1補間フィルタ、及び(iv)第2長さを有し、垂直補間のための第2補間フィルタのうちの1つである。前記のように、第2長さは第1長さより大きい。
サブブロックに基づくアフィン動きモデルを利用してCBに対してコーディングを行う場合、アフィンパラメータのうちの少なくとも1つに基づき、条件付きで、アフィンサブブロックサイズ、アフィンサブブロックの幅、アフィンサブブロックの高さ、補間フィルタタイプ、アフィンPROFサブブロックサイズ、アフィンPROFサブブロックの幅、アフィンPROFサブブロックの高さ、勾配サブブロックサイズ、勾配サブブロックの幅及び勾配サブブロックの高さのうちの各々を切り替えることができる。
実施形態において、水平補間及び垂直補間に対して、サブブロックに基づくアフィン動き補償のための補間フィルタタップの長さ(例えば、6タップ、8タップ)及び/又はパラメータをそれぞれ選択できる。
実施形態において、アフィンパラメータのうちの少なくとも1つに基づき、サブブロック(例えば、アフィンサブブロック、アフィンPROFサブブロック、勾配サブブロック)の幅及び高さをそれぞれ選択できる。
実施形態において、条件付きチェに使用するアフィンパラメータは、アフィンパラメータのサブセット、またはアフィンパラメータにおける1つ又は複数の組み合わせるであってもよい。
実施形態において、異なるアフィンパラメータ、又はアフィンパラメータの異なるサブセットは、複数の切り替え可能なサブブロック特性の条件チェックにそれぞれ適用される。前記のように、アフィンパラメータのうちの少なくとも1つ(例えば、(|a|,|c|}の最大値)に基づき、サブブロック特性(例えば、アフィンサブブロックサイズ)を決定できる。例示において、アフィンパラメータのうちの少なくとも他の1つ(例えば、{|a|,|c|}の最小値、{|a|,|b|,|c|,|d|}の最大値)に基づき。別の1つのサブブロック特性(例えば、補間フィルタタイプ)を決定できる。アフィンパラメータのうちの少なくとも他の1つは、アフィンパラメータのうちの少なくとも1つと異なるか、又は同様であってもよく、別のサブブロック特性は、サブブロック特性と異なってもよい。
実施形態において、選択されたアフィンパラメータに適用される1つ又は複数の条件は、最小値、最大値、最小絶対値、最大絶対値、値の範囲及び/又は平均値のうちの1つ、又はその任意の組み合わせるであってもよい。例示において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含む。(i)複数のアフィンパラメータの閾値及び最小値、最大値、最小絶対値、最大絶対値又は平均値、及び(ii)複数のアフィンパラメータの事前定義範囲(例えば、[M、N])、値の範囲のうちの1つに基づき、サブブロック特性を決定できる。
特定の例示において、例示として、6パラメータアフィン動きモデルを利用する。以上、式(7)及び式(9)で記述したアフィンパラメータa、b、c及びdは、アフィンサブブロックサイズ、補間フィルタタイプ(又は補間フィルタタップの長さ)、PROF処理の、アフィンでの適用性に対する決定などに用いられる。当該記述は(1つ又は複数の)他のアフィン動きモデル(例えば、4パラメータアフィン動きモデル)に適切に適用される。
実施形態において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含む。サブブロックサイズは、アフィンサブブロックの幅、アフィンサブブロックの高さ、アフィンPROFサブブロックの幅、アフィンPROFサブブロックの高さ、勾配サブブロックの幅及び勾配サブブロックの高さのうちの1つである。補間フィルタタイプは、(i)水平補間のための第1補間フィルタ(例えば、6タップ補間フィルタ)、(ii)水平補間のための第2補間フィルタ(例えば、8タップ補間フィルタ)、(iii)垂直補間のための第1補間フィルタ(例えば、6タップ補間フィルタ)、及び(iv)垂直補間のための第2補間フィルタ(例えば、8タップ補間フィルタ)のうちの1つである。
複数のアフィンパラメータの最大絶対値及び閾値に基づきサブブロック特性を決定できる。実施形態において、最大絶対値が閾値より大きいことに応じて、サブブロック特性は、(i)サブブロックサイズが第1サイズ(例えば、4つのサンプル)であること、(ii)補間フィルタタイプが水平補間のための第1補間フィルタ(例えば、6タップ補間フィルタ)であること、及び(iii)補間フィルタタイプが垂直補間のための第1補間フィルタ(例えば、6タップ補間フィルタ)であることのうちの1つを指示することを決定する。最大絶対値が閾値以下であることに応じて、サブブロック特性は、(i)サブブロックサイズが第2サイズ(例えば、8サンプル)であること、(ii)補間フィルタタイプが水平補間のための第2補間フィルタ(例えば、8タップ補間フィルタ)であること、及び(iii)補間フィルタタイプが垂直補間のための第2補間フィルタ(例えば、8タップ補間フィルタ)であることのうちの1つを指示することを決定する。
実施形態において、最大絶対値が閾値以上であることに応じて、サブブロック特性は、(i)サブブロックサイズが4つのサンプルであること、(ii)補間フィルタタイプが水平補間のための6タップ補間フィルタであること、及び(iii)補間フィルタタイプが垂直補間のための6タップ補間フィルタであることのうちの1つを指示することを決定する。最大絶対値が閾値より小さいことに応じて、サブブロック特性は、(i)サブブロックサイズが4つのサンプルより大きいこと、(ii)補間フィルタタイプが水平補間のための8タップ補間フィルタであること、及び(iii)補間フィルタタイプが垂直補間のための8タップ補間フィルタであることのうちの1つを指示することを決定する。
1つ又は複数のアフィンパラメータに基づき、アフィンサブブロックの幅を設置できる。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値(例えば、max_param_hor = max {|a|,|b|}として示される)が閾値より大きい場合、アフィンサブブロックの幅は4つのサンプル(例えば、4つの輝度サンプル)に設置される。さもなければ、max_param_horが閾値以下である場合、アフィンサブブロックの幅はK個のサンプル(例えば、輝度サンプル)に設置される。例示において、Kは4より大きく、例えば8である。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値が閾値以上である場合、アフィンサブブロックの幅は4つのサンプル(例えば、4つの輝度サンプル)に設置される。さもなければ、当max_param_horが閾値より小さい場合、アフィンサブブロックの幅はK個のサンプル(例えば、輝度サンプル)に設置される。例示において、Kは4より大きく、例えば8である。
1つ又は複数のアフィンパラメータに基づき、アフィンサブブロックの高さを設置できる。実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値(例えば、max_param_ver = max {|c|,|d|}として示される)が閾値より高い場合、アフィンサブブロックの高さは4つのサンプルに設置される。さもなければ、max_param_horが閾値以下である場合、アフィンサブブロックの高さはK個のサンプルに設置される。例示において、Kは4より大きく、例えば8である。実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値が閾値以上である場合、アフィンサブブロックの高さは4つのサンプルに設置される。さもなければ、max_param_horが閾値より低い場合、アフィンサブブロックの高さはK個のサンプルに設置される。例示において、Kは4より大きく、例えば8である。
それぞれアフィンパラメータの第1サブセット及び第2サブセットに基づき、アフィンサブブロックの幅及び高さをそれぞれ設置できる。代替案として、アフィンパラメータにおける1つ又は複数に基づき、アフィンサブブロックの幅及び高さを含む領域を配置できる。
1つ又は複数のアフィンパラメータに基づき、補間フィルタ(例えば、異なる数のタップを含む第1補間フィルタ及び第2補間フィルタ)を配置できる。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値が閾値より高い場合、サブブロックに基づくアフィン動き補償(例えば、輝度ブロックの、サブブロックに基づくアフィン動き補償)は、6タップ補間フィルタ(例えば、輝度サンプルのための6タップ補間フィルタ)を水平補間に用いる。さもなければ、max_param_horが閾値以下である場合、サブブロックに基づくアフィン動き補償は、8タップ補間フィルタを水平補間に用いる。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値が閾値以上である場合、サブブロックに基づくアフィン動き補償は6タップ補間フィルタを水平補間に用いる。さもなければ、max_param_horが閾値より低い場合、サブブロックに基づくアフィン動き補償は、8タップ補間フィルタを水平補間に用いる。
1つの実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値が閾値より高い場合、サブブロックに基づくアフィン動き補償(例えば、輝度ブロックの、サブブロックに基づくアフィン動き補償)は6タップ補間フィルタ(例えば、輝度サンプルのための6タップ補間フィルタ)を垂直補間に用いる。さもなければ、max_param_verが閾値以下である場合、サブブロックに基づくアフィン動き補償は8タップ補間フィルタを垂直補間に用いる。1つの実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値が閾値以上である場合、サブブロックに基づくアフィン動き補償は6タップ補間フィルタを垂直補間に用いる。さもなければ、max_param_verが閾値より低い場合、サブブロックに基づくアフィン動き補償は8タップ補間フィルタを垂直補間に用いる。
1つ又は複数のアフィンパラメータに基づき、アフィンPROFサブブロックの幅を設置できる。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値が閾値より高い場合、アフィンPROFサブブロックの幅が4つのサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。さもなければ、max_param_horが閾値以下である場合、アフィンPROFサブブロックの幅がK個のサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。例示において、Kは4より大きく、例えば、8である。1つの実施形態において、CBに対して、アフィンパラメータa及びbの絶対値の最大値が閾値以上である場合、アフィンPROFサブブロックの幅が4つのサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。さもなければ、max_param_horが閾値より低い場合、アフィンPROFサブブロックの幅がK個のサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。例示において、Kは4より大きく、例えば8である。
1つ又は複数のアフィンパラメータに基づき、アフィンPROFサブブロックの高さを設置できる。実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値が閾値より高い場合、アフィンPROFサブブロックの高さが4つのサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。さもなければ、max_param_horが閾値以下である場合、アフィンPROFサブブロックの高さがK個のサンプルであることに基づき、アフィンPROFを実行する。例示において、Kは4より大きく、例えば8である。実施形態において、CBに対して、アフィンパラメータc及びdの絶対値の最大値が閾値以上である場合、アフィンPROFサブブロックの高さが4つのサンプル(例えば、輝度サンプル)であることに基づき、アフィンPROFを実行する。さもなければ、max_param_horが閾値より低い場合、アフィンPROFサブブロックの高さがK個のサンプルであることに基づき、アフィンPROFを実行する。例示において、Kは4より大きく、例えば8である。
それぞれアフィンパラメータの第1サブセット及び第2サブセットに基づき、アフィンPROFサブブロックの幅及び高さをそれぞれ設置できる。代替案として、アフィンパラメータにおける1つ又は複数に基づき、アフィンPROFサブブロックの幅及び高さを含む領域を設置する。
図14は、本開示内容の実施形態によるプロセス(1400)のフローチャートを示す。プロセス(1400)はブロック(例えば、CB)の再構築に用いられることで、再構築中のブロックに対して予測ブロックを生成する。ブロックという用語は、予測ブロック、CB、輝度CB、CU、PUなどに解釈できる。各実施形態において、プロセス(1400)は処理回路システムにより実行され、当該処理回路システムは、例えば、端末機器(210)、(220)、(230)及び(240)における処理回路システム、ビデオ符号器(303)の機能を実行するための処理回路システム、ビデオデコーダ(310)の機能を実行するための処理回路システム、ビデオデコーダ(410)の機能を実行するための処理回路システム、ビデオ符号器(503)の機能を実行するための処理回路システムなどであってもよい。いくつかの実施形態において、ソフトウェア命令でプロセス(1400)を実現するから、処理回路システムはソフトウェア命令を実行する際、処理回路システムはプロセス(1400)を実行する。当該プロセスは(S1401)から始めて、(S1410)まで進む。
(S1410)で、コーディングされたビデオビットストリームから、ブロックのコーディング情報をデコーディングする。コーディング情報は、サブブロックに基づくアフィン動きモデルを利用してブロックに対してコーディングを行うように指示する。サブブロックに基づくアフィン動きモデルは、当該ブロックの複数のCPMVに基づくアフィンパラメータを含む。当該ブロックは、対応するサブブロックMVを有するアフィンサブブロックを含む。
アフィンパラメータは上記のアフィンパラメータ(例えば、式(7)~式(9)における「a」、「b」、「c」及び「d」)と類似又は同様であってもよい。アフィンパラメータにおける1つ又は複数は、MV差(又はMVD)の、ブロックサイズ(例えば、ブロックの幅)に対する比率を指示する。図8Aを参照し、第1アフィンパラメータ及び第2アフィンパラメータは、CPMV1とCPMV0との間のMVDの、CB(810A)の幅に対する比率を指示する。より具体的に、第1アフィンパラメータは、CPMVlとCPMV0との間のMVDのx成分の、ブロック(例えば、810A)の幅に対する比率を指示する。第2アフィンパラメータは、CPMVlとCPMV0との間のMVDのy成分の、ブロックの幅に対する比率を指示する。
一般的に、(i)~(iii)のうちの1つに基づき、(i)MVDの、ブロックサイズに対する比率、(ii)2つの隣接アフィンサブブロックのMVD、及び(iii)2つの隣接サンプルのMVDにおける他方を決定できる。例えば、当該ブロックは16×16個のサンプルを含み、4×4個のサンプルのアフィンサブブロックサイズを有する16個のアフィンサブブロックに区画される。CPMV1とCPMV0との間のMVDのx成分(例えば、mv1x-vm0x)は4画素であるから、MVDの、ブロックサイズに対する比率が、4画素/16サンプル = 0.25画素/サンプルに等しい。従って、2つの隣接サンプルのMVDは0.25画素であり、2つの隣接アフィンサブブロックのMVDは1画素である。
前記のように、「a」、「b」、「c」及び/又は「d」を含むことに加えて、または「a」、「b」、「c」及び/又は「d」を含むことに代わって、アフィンパラメータは、ピンチアウト/ピンチイン、回転などのようなブロックの各種の動きを記述するためのパラメータを含んでもよい。
(S1420)で、コーディング情報に基づき、サブブロック特性を選択するかどうかを決定することで、対応するサブブロックMVに基づき、アフィンサブブロックの1つにおけるサンプルに対する予測を生成する。
例示において、サンプルに対する予測は、サブブロックに基づくアフィン動き補償を利用する予測(例えば、初期サブブロック予測I(i,j))を指し、例えば、図12の、ステップ(1)に記載の予測を参照する。
サンプルに対する予測は、精密化予測を指してもよい。任意の適切な予測精密化方法(例えば、PROF)を利用して、精密化予測を生成する。図12を再び参照し、例示において、予測は、初期予測I(i,j)及び予測精密化ΔI(i,j)に基づき取得した精密化予測I’(i,j)を指す。
サブブロック特性は、サンプルに対する予測を生成するためのサブブロックサイズ、アフィンサブブロックのための補間フィルタタイプなどを指示する。
サブブロックサイズは、アフィンサブブロックのサイズ(例えば、幅及び/又は高さ)、当該ブロックに対してPROFで使用するアフィンPROFサブブロックのサイズ(例えば、幅及び/又は高さ)、PROFの勾配計算で使用する勾配サブブロックのサイズ(例えば、幅及び/又は高さ)を含むか、または指示してもよい。例示において、アフィンサブブロックサイズ、アフィンPROFサブブロックサイズ及び勾配サブブロックサイズは同じである。例示において、勾配サブブロックサイズは、アフィンサブブロックサイズ、及びアフィンPROFサブブロックサイズより大きい。
サブブロックサイズは任意の適切なサイズ(例えば、任意の適切な幅及び/又は任意の適切な高さ)を含んでもよい。例示において、第1サイズ(例えば、第1幅及び/又は第1高さ)と第2サイズ(例えば、第2幅及び/又は第2高さ)との間に、条件付きでサブブロックサイズを選択するか、又は切り替える。第2サイズ(例えば、8つのサンプル、又は8×8サンプル)は第1サイズ(例えば、4つのサンプル、又は4×4サンプル)より大きい。
補間フィルタタイプは、任意の適切な長さ(例えば、6タップ、8タップ)を有する補間フィルタであってもよい。補間フィルタタイプは、(i)第1長さ(例えば、6タップ)を有し、水平補間のための第1補間フィルタ、(ii)第2長さ(例えば、8タップ)を有し、水平補間のための第2補間フィルタ、(iii)第1長さを有し、垂直補間のための第1補間フィルタ、(iv)第2長さを有し、垂直補間のための第2補間フィルタ、(v)第1長さを有し、補間のための第1補間フィルタ、及び(vi)第2長さを有し、補間のための第2補間フィルタのうちの1つであってもよい。第2長さは第1長さより大きい。複数の(i)~(vi)において、条件付きで補間フィルタタイプを選択するか、又は切り替える。
サブブロック特性を選択することに応じて、サンプルに対する予測を生成し、プロセス(1400)は(S1430)に進む。さもなければ、プロセス(1400)は(S1499)に進み、終了する。
(S1430)で、前記のように、アフィンパラメータのうちの少なくとも1つに基づき、サブブロック特性を決定する。サブブロック特性は、(i)サンプルに対する予測を生成するためのサブブロックサイズ、及び(ii)アフィンサブブロックのための補間フィルタタイプのうちの1つを指示する。
実施形態において、前記のように、アフィンパラメータのうちの少なくとも1つ、及び(i)閾値と(ii)事前定義範囲(例えば、[M、N])とのうちの1つに基づき、サブブロック特性を決定する。サブブロックサイズはアフィンサブブロックサイズであってもよく、補間フィルタタイプは第1補間フィルタ又は第2補間フィルタを含んでもよい。
実施形態において、当該ブロックはPROFの勾配計算のための勾配サブブロックを含み、サブブロックサイズは勾配サブブロックのサイズである。勾配計算は、(i)サブブロックサイズがブロックサイズに等しい、ブロックに基づく勾配計算、又は(ii)サブブロックサイズがブロックサイズより小さい、サブブロックに基づく勾配計算である。例示において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含む。(i)複数のアフィンパラメータの絶対値の最大値、又は最小値、閾値、及び(ii)絶対値、事前定義範囲のうちの1つに基づき、勾配計算がブロックに基づくか、それともサブブロックに基づくかを決定する。
実施形態において、アフィンパラメータのうちの少なくとも1つは複数のアフィンパラメータを含む。(i)複数のアフィンパラメータの閾値、最小値、最大値、最小絶対値、最大絶対値又は平均値、及び(ii)事前定義範囲(例えば、[M、N])、値の範囲のうちの1つに基づき、サブブロック特性を決定する。
(S1420)及び/又は(S1430)は繰り返してもよい。(S1420)及び(S1430)は、例えば、アフィンパラメータの第1サブセットに基づき、4×4輝度サンプルのアフィンサブブロックサイズになるようにサブブロック特性を決定する。(S1420)及び(S1430)は繰り返してもよく、例えば、アフィンパラメータの第2サブセットに基づき、サブブロック特性を勾配サブブロックサイズに決定し、勾配サブブロックサイズはブロックのサイズである。従って、アフィンサブブロックサイズは4×4輝度サンプルであり、勾配サブブロックサイズはブロックのサイズである。
(S1440)で、決定したサブブロック特性に基づき、アフィンサブブロックにおけるサンプルを再構築する。例えば、アフィンサブブロックサイズが4×4輝度サンプルであり、勾配サブブロックサイズがブロックのサイズであるように、PROFを有するサブブロックに基づくアフィン動きモデルを実現し、アフィンPROFサブブロックサイズがアフィンサブブロックサイズに等しい。従って、アフィンサブブロックサイズ及び勾配サブブロックサイズに基づき、精密化予測I’(i,j)を取得する。例示において、精密化予測I’(i,j)及びサンプルの残差(例えば、残差がゼロではない場合)に基づき、再構築されたサンプル値を決定する。
例えば、ブロックに基づく勾配計算に対して、(i)隣接サンプルを含むサブブロックの対応するサブブロックMVを利用して補間を行うステップ、(ii)当該ブロックの参照ピクチャにおける最も近い整数サンプル位置に基づき、コピーするステップ、及び(iii)当該ブロックにおける最も近いサンプルの予測に基づきコピーするステップのうちの1つを介して、当該ブロックの隣接サンプルをパディングし、当該ブロックの隣接サンプルは、ブロックに基づく勾配計算に用いられる。
プロセス(1400)は適切に各種のシーンに適用されるとともに、プロセス(1400)におけるステップを対応するように調整できる。プロセス(1400)におけるステップのうちの1つ又は複数を調整、省略、繰り返し及び/又は組み合わせることができる。任意の適切な順序でプロセス(1400)を実現してもよい。(1つ又は複数の)他のステップを追加してもよい。
本開示内容の実施形態は単独に使用してもよいし、又は任意の順序で組み合わせてもよい。また、方法(又は実施形態)、符号器及びデコーダのうちのそれぞれは、処理回路システム(例えば、1つ又は複数のプロセッサー、または1つ又は複数の集積回路)により実現してもよい。1つの例示において、1つ又は複数のプロセッサーは、非一時的なコンピュータ読み取り媒体に記憶されるプログラムを実行する。
前記技術は、コンピュータ読み取り可能な命令によってコンピュータソフトウェアとして実現され、物理的に1つまたは複数のコンピュータ読み取り可能な媒体に記憶される。例えば、図15は、開示テーマを実現するためのいくつかの実施形態に適用されるコンピュータシステム(1500)を示す。
いずれかの適切なマシンコードまたはコンピュータ言語によって、コンピュータソフトウェアをコーディングし、いずれかの適切なマシンコードまたはコンピュータ言語は、アセンブリ、コンパイル、リンクなどのメカニズムを介して、命令が含まれるコードを構築し、命令は1つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって直接的に実行されるか、または解釈、マイクロコードによって実行される。
命令は、各種タイプのコンピュータまたはその部材で実行でき、各種タイプのコンピュータまたはその部材は、例えば、パーソナルコンピュータ、タブレット、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置などを含む。
図15に示すコンピュータシステム(1500)の部材は、本開示内容を実現するための実施形態のコンピュータソフトウェアの使用範囲または機能に対して限定するためのものではなく、本質に例示的である。部材の配置も、コンピュータシステム(1500)の例示的な実施形態に示した部材のうちのいずれか1つの部材、または部材の組み合わせに関するいずれかの依存性または要求を有するように解釈されるべきではない。
コンピュータシステム(1500)は、特定のマンマシンインタフェース入力機器を含んでもよい。このようなマンマシンインタフェース入力機器は、1つまたは複数の人類ユーザの、例えば触覚入力(例えば:キーストローク、スライド、データグローブ移動)、オーディオ入力(例えば:音声、拍手)、視覚入力(例えば:姿勢)、嗅覚入力(図示せず)による入力に応答できる。マンマシンインタフェース機器はさらに、必ずしも人類の意識入力に直接的に関連するものではない特定の媒体をキャプチャするために使用し、例えば、オーディオ(例えば:音声、音楽、環境音)、画像(例えば、スキャン画像、静態画像撮影装置から取得した写真画像)、ビデオ(例えば2次元ビデオ、立体ビデオが含まれる3次元ビデオ)である。
入力マンマシンインタフェース機器は、キーボード(1501)、マウス(1502)、タッチパッド(1503)、タッチパネル(1510)、データグローブ(図示せず)、ジョイスティック(1505)、マイク(1506)、スキャナ(1507)、カメラ(1508)のうちの1つまたは複数を含んでもよい(記載の各々のうちの、1つだけ)。
コンピュータシステム(1500)は、さらに特定のマンマシンインタフェース出力機器を含んでもよい。このようなマンマシンインタフェース出力機器は、例えば触覚出力、音、光及び匂い/味を介して1つまたは複数の人類ユーザの感覚を刺激できる。このようなマンマシンインタフェース出力機器は、触覚出力機器(例えば、タッチパネル(1510)、データグローブ(図示せず)またはジョイスティック(1505)による触覚フィードバックがあるが、入力機器として用いられない触覚フィードバック機器が存在してもよい)、オーディオ出力機器(例えば:スピーカー(1509)、ヘッドフォン(図示せず))、視覚出力機器(例如、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンが含まれるスクリーン(1510)であって、各スクリーンはタッチパネル入力能力、触覚フィードバック能力を有してもよく、有しなくてもよく、そのうちのいくつかは、例えば立体画像出力(stereographic output)という方式で、2次元の視覚出力または3次元以上の出力を行う可能性があり、バーチャルリアリティ眼鏡(図示せず)、ホログラフィックディスプレイ、スモークタンク(図示せず))、及びプリンター(図示せず)を含む。
コンピュータシステム(1500)は、さらに、人類がアクセスし得る記憶機器、及びその関連する媒体を含んでもよく、例えば、CD/DVDなどの媒体(1521)を有するCD/DVD ROM/RW(1520)が含まれる光学媒体、サムドライブ(1522)、取り外し可能なハードドライブまたはソリッドステートドライブ(1523)、伝統磁気媒体(例えば、磁気テープ及びフロッピーディスク(図示せず))、専門ROM/ASIC/PLDによる機器(例えば、ドングル(図示せず))などがある。
当業者はまた、開示した主題と関連して使用される用語「コンピュータ読み取り可能な媒体」が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピュータシステム(1500)は、さらに、1つまたは複数の通信ネットワークに達するインタフェースを含んでもよい。ネットワークは、例えば無線ネットワーク、有線ネットワーク、光ネットワークであってもよい。ネットワークはさらに、ロカールネットワーク、広域エリアネットワーク、メトロポリタンエリアネットワーク、車両及び工業ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例示は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどが含まれるセルラーネットワーク、有線テレビ、衛星テレビ及び地上波テレビが含まれるテレビ有線または無線広域デジタルネットワーク、CANBusが含まれる車両及び工業ネットワークなどを含む。特定のネットワークは一般的に、特定の汎用データポートまたは周辺バス(1549)(例えば、コンピュータシステム(1500)のUSBポート)に連結される外部ネットワークインターフェースアダプタを必要とし、他のネットワークは一般的に、以下のように(例えば、PCコンピュータシステムに達するイーサネットインタフェース、またはスマートフォンコンピュータシステムに達するセルラーネットワークインターフェース)システムバスに連結されることで、コンピュータシステム(1500)のコアに集積される。これらのネットワークのうちのいずれかのネットワークによって、コンピュータシステム(1500)は他のエンティティと通信できる。このような通信は、一方向で、受信だけで(例えば、放送テレビ)、一方向で送信だけで(例えば、いくつかのCANバス機器に達するCANバス)、または双方向で、例えば、ローカルエリアまたは広域デジタルネットワークを介して他のコンピュータシステムに達する。以上に記載のこれらのネットワーク及びネットワークインターフェースのうちの各々で、特定のプロトコル及びプロトコルスタックを利用できる。
以上に言及されたマンマシンインタフェース機器、人類がアクセスし得る記憶機器及びネットワークインターフェースは、コンピュータシステム(1500)のコア(1540)に連結できる。
コア(1540)は、1つまたは複数の中央処理ユニット(CPU)(1541)、グラフィック処理ユニット(GPU)(1542)、フィールドプログラム可能なゲートアレイ(FPGA)(1543)形式の専門プログラム可能な処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1544)などを含んでもよい。これらの機器は、読み取り専用メモリ(ROM)(1545)、ランダムアクセスメモリ(1546)、例えば内部のユーザがアクセスできないハードディスクドライブ、SSD等などの内部大容量記憶装置(1547)とともに、システムバス(1548)を介して接続できる。特定のコンピュータシステムにおいて、1つまたは複数の物理プラグという形式でシステムバス(1548)にアクセスすることで、別のCPU、GPUなどによって拡張できる。周囲機器は直接地的または周辺バス(1549)を介してコアのシステムバス(1548)に連結される。周辺バスのアーキテクチャはPCI、USBなどを含む。
CPU(1541)、GPU(1542)、FPGA(1543)及びアクセラレータ(1544)は特定の命令を実行でき、これらの命令を組み合わせることで、以上に言及されたコンピュータコードを構成できる。コンピュータコードはROM(1545)またはRAM(1546)に記憶される。移行データもRAM(1546)に記憶され、永久データは、例えば内部大容量記憶装置(1547)に記憶される。キャッシュメモリによって記憶機器のうちのいずれかの記憶機器の快速記憶及び検索を実現でき、キャッシュメモリは1つまたは複数のCPU(1541)、GPU(1542)、大容量記憶装置(1547)、ROM(1545)、RAM(1546)などに密接に関連できる。
コンピュータ読み取り可能な媒体は、コンピュータが実現する各種動作を実行するためのコンピュータコードを有する。媒体とコンピュータコードとは、本開示内容の目的のために、専門的に設計され構築される媒体とコンピュータコードであってもよいし、またはコンピュータソフトウェア領域の当業者にとって公知且つ利用可能なタイプであってもよい。
限定的ではなく、例示として、(1つまたは複数)プロセッサー(CPU、GPU、FPGA、アクセラレータなどを含む)によって、1つまたは複数の有形コンピュータ読み取り可能な媒体に具現化されるソフトウェアを実行するため、アーキテクチャ(1500)、特にコア(1540)を有するコンピュータシステムは機能を提供する。このようなコンピュータ読み取り可能な媒体は、以上紹介したユーザがアクセスし得る大容量記憶装置に関連する媒体、及び非一時的なコア(1540)を有する特定の記憶装置、例えば、コア部大容量記憶装置(1547)またはROM(1545)であってもよい。本開示内容を実現するための各種実施形態のソフトウェアはこのような機器に記憶されるとともに、コア(1540)によって実行されてもよい。特定の必要に基づき、コンピュータ読み取り可能な媒体には1つまたは複数の記憶機器またはチップが含まれてもよい。ソフトウェアはコア(1540)、特にプロセッサー(CPU、GPU、FPGAなどを含む)に、本明細書に記載の、RAM(1546)に記憶されるデータ構成を限定すること、及びソフトウェアにより限定されるプロセスに基づき、このようなデータ構成を修正することが含まれる、特定プロセスまたは特定プロセスの特定部分を実行させる。また、代わりとして、コンピュータシステムは論理的なハードワイヤード、または他の方式で回路(例えば、アクセラレータ(1544))に具現化されるロジックに機能を提供でき、回路はソフトウェアの代わりとして動作するか、またはソフトウェアとともに動作することで、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行してもよい。言及されたソフトウェアには適切な場合、ロジックが含まれてもよいし、逆も同様である。言及されたコンピュータ読み取り可能な媒体には、適切な場合、実行のためのソフトウェアを記憶する回路(例えば、集積回路(IC))、実行のためのロジックを具現化する回路、または以上の両者が含まれてもよい。本開示内容には、ハードウェアとソフトウェアとの任意の適切な組み合わせが含まれる。
付録A:頭字語
JEM:共同探索モデル
VVC:多機能ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補充強化情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理ユニット
GPU:グラフィック処理ユニット
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:グローバルモバイルシステムオブシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺コンポーネント相互接続
FPGA:フィールドプログラム可能なゲートアレイ
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
AMVP:高度動きベクトル予測
HMVP:履歴に基づくMVP
MMVD:MVDとマージする
MVD:動きベクトル差
MVP:動きベクトル予測器
SbTMVP:サブブロックに基づくTMVP
TMVP:時間MVP
VTM:多機能テストモデル
本開示がいくつかの例示的な実施形態を説明しているが、開示の範囲内に含まれる変更、順列、および様々な代替等価物がある。従って、当業者は、本明細書に明示的に示されていないが本明細書の原理を具体化し本開示の精神および範囲内にある多数のシステムおよび方法を考案することができる。