発明の詳細な説明
〔関連出願の相互参照〕
本出願は、2018年8月28日に出願された、代理人整理番号US74791を有する「Canditate Sets for Ultimate Motion Vector Expression」と題する暫定米国特許出願第62/723,880号(以下、「US74791出願」と称する)の利益及び優先権を主張する。US74791出願の開示は、参照により本出願に完全に組み込まれる。
〔分野〕
本開示は、一般にビデオコーディングに関し、より詳細には、複数の候補グループ内の複数の候補パラメータに基づいて画像フレーム内のブロックユニットを予測するための技術に関する。
〔背景〕
インター予測は、ビデオコーディングのためのコーディングツールである。従来のビデオコーディングの方法において、エンコーダとデコーダは、コーディングブロックの画像フレームとは異なる参照フレーム内の以前に再構成されたピクセルを用いて、コーディングブロックを予測又は再構成するための参照ピクセルと予測値を生成する。
以前の再構成されたピクセルは、複数の候補パラメータから決定され得る。候補パラメータの大きい数が存在する場合、候補パラメータのいくつかの内のビットが大きい数は、画像データ圧縮を非効率にするだろう。したがって、符号化(及び/又は復号)装置は、複数の候補グループに分散された候補パラメータに基づいて、画像フレーム内のコーディングブロックを予測するための予測方法を必要とするだろう。
〔概要〕
本開示は、複数の候補グループ内の複数の候補パラメータに基づいて画像フレーム内のブロックユニットを再構成するための装置及び方法を対象とする。
本出願の第1の態様において、電子装置によるビットストリームの復号の方法が提供される。本方法は、ビットストリームに基づく画像フレームからブロックユニットを決定すること、セットフラグに基づいて複数の候補グループの内の一つを選択すること、ビットストリームに基づくブロックユニットの動作ベクトル差分(MMVD)インディケーションを伴う複数のマージモードを決定すること、複数のMMVDインディケーション及び選択された候補グループに基づいたブロックユニットの複数のMMVD予測パラメータを選択すること、複数のMMVD予測パラメータに基づいたブロックユニットを再構成することを含む。
〔図面の簡単な説明〕
例示的な開示の態様は、添付の図面と共に読まれるとき、以下の詳細な説明から最も良く理解される。様々な特徴は、一定の縮尺で描かれておらず、様々な特徴の寸法は、議論を明確にするために任意に増減されてもよい。
図1は、本出願の一例としての実装形態に基づく、ビデオデータを符号化及び復号するように設定された例示的なシステムのブロック図である。
図2は、本出願の一例としての実装形態に基づく、図1のシステムにおける宛先装置の復号モジュールの一例のブロック図である。
図3は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数の候補パラメータに基づいてブロックユニットを再構成するための一例の再構成方法のフローチャートを示す。
図4A~4Cは、本出願の例としての実装形態に基づく、ブロックユニット及び複数の検索エリアの概略図である。
図5は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。
図6は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。
図7は、本出願の一例としての実装形態に基づく、図1のシステムにおけるソース装置の符号化モジュールの一例のブロック図である。
図8は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを予測するための一例としての予測方法のフローチャートを示す。
〔詳細な説明〕
以下の説明は、本開示における一例としての実装形態に関連する特定の情報を含む。本開示における図面及びそれらの添付の詳細な説明は、単に例としての実装形態を対象としている。しかし、本開示は、これらの例としての実装形態のみに限定されるものではない。本開示の他の変形例及び実装形態は、当業者には想起されるであろう。特に断らない限り、複数の図中の同様の又は対応する要素は、同様の又は対応する参照番号によって示され得る。更に、本開示における図面及び図示は、ほとんどの場合、一定の縮尺ではなく、実際の相対的な寸法に対応することを意図していない。
一貫性及び理解を容易にするために、同様の特徴は、例としての図において同じ数字によって識別され得る(ただし、いくつかの例では、図示されていない)。しかしながら、異なる実装形態における特徴は、他の点で異なっていてもよく、従って、図面に示されるものに狭く限定されるものではない。
この説明では、「一つの実装形態において」又は「いくつかの実装形態において」という語句を使用し、それぞれが同じ又は異なる実装形態の一つ以上を指してもよい。「結合された」というタームは、直接的又は間接的に介在する構成要素を介して接続されたものとして定義され、必ずしも物理的接続に限定されるものではない。「備える(comprising)」というタームは、「必ずしも限定されるものではないが、含む」を意味する。それは、そのように説明された組み合わせ、グループ、シリーズ、及び等価物におけるオープンエンドの包含又はメンバーシップを特に示す。
更に、説明及び非限定の目的のために、機能エンティティ、技法、プロトコル、規格などの具体的な詳細が、説明される技術の理解を実現するために記載される。他の例において、不必要な詳細で説明を不明瞭にしないように、周知の方法、技術、システム、アーキテクチャなどの詳細な説明は、省略される。
当業者は、本開示に記載されている任意のコーディング機能(複数可)又はアルゴリズム(複数可)が、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実装されてもよいことを直ちに理解するだろう。説明される機能は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせであり得るモジュールに対応し得る。ソフトウェアの実装形態は、メモリ又は他の種類の記憶装置などのコンピュータ読み取り可能媒体に記憶されたコンピュータ実行可能命令を備えてもよい。例えば、通信処理能力を有する一つ以上のマイクロプロセッサ又は汎用コンピュータを、対応する実行可能命令を用いてプログラムし、記述されたネットワーク機能(複数可)又はアルゴリズム(複数可)を実行することができる。マイクロプロセッサ又は汎用コンピュータは、特定用途向け集積回路(ASIC)、プログラマブルロジックアレイ、及び/又は一つ以上のデジタル信号プロセッサ(DSP)を使用して形成することができる。本明細書に記載されている例としての実装形態のいくつかは、コンピュータハードウェア上にインストールされ実行されるソフトウェアを指向しているが、それにもかかわらず、ファームウェアとして、又はハードウェアとして、又はハードウェアとソフトウェアの組合せとして実装される代替の実施例は、本開示の範囲内に十分にある。
コンピュータ読み取り可能な媒体は、ランダムアクセスメモリ(RAM:Random Access Memory)、読み取り専用メモリ(ROM:Read Only Memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:Erasable Programmable Read-Only Memory)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ、コンパクトディスク読み取り専用メモリ(CD-ROM:Compact Disc Read-Only Memory)、磁気カセット、磁気テープ、磁気ディスク記憶装置、又はコンピュータ読み取り可能命令を記憶可能な他の任意の同等の媒体を含むが、これらに限定されない。
図1は、本出願の一例としての実装形態に基づく、ビデオデータを符号化及び復号するように設定され得る一例としてのシステムのブロック図である。本実装形態において、システムは、ソース装置11、宛先装置12、及び通信媒体13を含む。少なくとも一つの実装形態において、ソース装置11は、ビデオデータを符号化し、符号化されたビデオデータを通信媒体13に送信するように設定された任意の装置を含むことができる。少なくとも一つの実装形態において、宛先装置12は、通信媒体13を介して符号化されたビデオデータを受信し、符号化されたビデオデータを復号するように設定された任意の装置を含むことができる。
少なくとも一つの実装形態において、ソース装置11は、通信媒体13を介して宛先装置12と有線及び/又は無線により通信することができる。ソース装置11は、ソースモジュール111、符号化モジュール112、及び第1のインターフェース113を含むことができる。宛先装置12は、表示モジュール121、復号モジュール122、及び第2のインターフェース123を含むことができる。少なくとも一つの実装形態において、ソース装置11は、ビデオエンコーダであってもよく、宛先装置12はビデオデコーダであってもよい。
少なくとも一つの実装形態において、ソース装置11及び/又は宛先装置12は、携帯電話、タブレット、デスクトップ、ノートブック、又は他の電子装置であってもよい。図1は、ソース装置11及び宛先装置12の一例を示すに過ぎず、ソース装置11及び宛先装置12は、他の実装形態において、図示されるよりも多い又は少ない構成要素を含むことができ、又は様々な構成要素の異なる設定を有することができる。
少なくとも一つの実装形態において、ソース装置11のソースモジュール111は、新しいビデオをキャプチャするためのビデオキャプチャ装置、以前にキャプチャされたビデオを記憶するビデオアーカイブ、及び/又はビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェースを含むことができる。少なくとも一つの実装形態において、ソース装置11のソースモジュール111は、ソースビデオとしてコンピュータグラフィックスベースのデータ、又はライブビデオ、アーカイブビデオ、及びコンピュータ生成されたビデオの組み合わせを生成することができる。少なくとも一つの実装形態において、ビデオキャプチャ装置は、電荷結合素子(CCD:charge-coupled device)イメージセンサ、相補形MOS(CMOS:complementary metal-oxide-semiconductor)イメージセンサ、又はカメラであってもよい。
少なくとも一つの実装形態において、符号化モジュール112及び復号モジュール122はそれぞれ、一つ以上のマイクロプロセッサ、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、システムオンチップ(SoC)、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せなど、様々な適切なエンコーダ/デコーダ回路のいずれかとして実装され得る。本技術がソフトウェアにおいて部分的に実装される場合、装置は、適切な非一時的なコンピュータ読み取り可能媒体にソフトウェアの命令を格納し、本開示の技術を実行するために一つ以上のプロセッサを使用してハードウェアにおいて命令を実行することができる。少なくとも一つの実装形態において、符号化モジュール112及び復号モジュール122のそれぞれは、一つ以上のエンコーダ又はデコーダに含まれてもよく、そのいずれも、各装置内の組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合されてもよい。
少なくとも一つの実装形態において、第1のインターフェース113及び第2のインターフェース123は、カスタマイズされたプロトコルを採用する、又は以下の既存の規格又は事実上の規格であるイーサネット、IEEE 802.11又はIEEE 802.15シリーズ、無線USB、電気通信規格又はGSM、CDMA2000、TD-SCDMA、WiMAX、3GPP-LTE又はTD-LTEを含む、に従うことができるが、これらに限定されない。少なくとも一つの実装形態において、第1のインターフェース113及び第2のインターフェース123は、それぞれ、通信媒体13に準拠するビデオビットストリームを送信及び/又は保存し、通信媒体13から準拠するビデオビットストリームを受信するように設定された任意の装置を含むことができる。少なくとも一つの実装形態において、第1のインターフェース113及び第2のインターフェース123は、準拠するビデオビットストリームを記憶装置に記憶する、又は記憶装置から受信できるようにするコンピュータシステムインターフェースを含んでもよい。例えば第1のインターフェース113及び第2のインターフェース123は、周辺部品相互接続(PCI)及び周辺部品相互接続エクスプレス(PCIe)バスプロトコル、専有バスプロトコル、ユニバーサルシリアルバス(USB)プロトコル、I2C、又はピア装置を相互接続するために使用され得る他の任意の論理及び物理構造を支持するチップセットを含んでもよい。
少なくとも一つの実装形態において、表示モジュール121は、液晶ディスプレイ(LCD)技術、プラズマディスプレイ技術、有機発光ダイオード(OLED)ディスプレイ技術、又は発光ポリマーディスプレイ(LPD)技術を用いたディスプレイを含んでもよいが、他のディスプレイ技術を他の実装形態において用いてもよい。少なくとも一つの実装形態において、表示モジュール121は、高精細ディスプレイ又は超高精細ディスプレイを含むことができる。
図2は、本出願の一例としての実装形態に基づく、図1のシステムにおける宛先装置12の復号モジュール122の一例としての実装形態を表す復号モジュール222のブロック図である。少なくとも一つの実装形態において、復号モジュール222は、エントロピー復号(例えばエントロピー復号ユニット2221)、予測プロセッサ(例えば予測プロセスユニット2222)、逆量子化/逆変換プロセッサ(例えば逆量子化/逆変換ユニット2223)、加算器(例えば、第1の加算器2224)、フィルタ(例えばフィルタリングユニット2225)、及び復号された画像バッファ(例えば復号された画像バッファ2226)を含む。少なくとも一つの実装形態において、復号モジュール222の予測プロセスユニット2222は、イントラ予測プロセッサ(例えばイントラ予測ユニット22221)、及びインター予測プロセッサ(例えばインター予測ユニット22222)をさらに含む。少なくとも一つの実装形態において、復号モジュール222は、ビットストリームを受信し、ビットストリームを復号して、復号されたビデオを出力する。
少なくとも一つの実装形態において、エントロピー復号ユニット2221は、図1の第2のインターフェース123から複数のシンタックス要素を含んでいるビットストリームを受信し、ビットストリームからシンタックス要素を抽出するビットストリーム上において構文解析演算を実行してもよい。構文解析演算を実行する一部として、エントロピー復号ユニット2221は、ビットストリームをエントロピー復号して、量子化変換係数、量子化パラメータ、変換データ、動作ベクトル、イントラモード、パーティション情報、及び他のシンタックス情報を生成することができる。少なくとも一つの実装形態において、エントロピー復号ユニット2221は、量子化変換係数を生成するために、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応2進算術コーディング(CABAC)、シンタックスベースのコンテキスト適応2進算術コーディング(SBAC)、確率間隔パーティションエントロピー(PIPE)コーディング、又は別のエントロピーコーディング技法を実行することができる。少なくとも一つの実装形態において、エントロピー復号ユニット2221は、量子化された変換係数、量子化パラメータ、及び変換データを逆量子化/逆変換ユニット2223に提供し、動作ベクトル、イントラモード、パーティション情報、及び他のシンタックス情報を予測プロセスユニット2222に提供することができる。
少なくとも一つの実装形態において、予測プロセスユニット2222は、エントロピー復号ユニット2221から、動作ベクトル、イントラモード、パーティション情報、及び他のシンタックス情報などのシンタックス要素を受信することができる。少なくとも一つの実装形態において、予測プロセスユニット2222は、パーティション情報を含むシンタックス要素を受信し、その後、パーティション情報に基づいて画像フレームを分割してもよい。少なくとも一つの実装形態において、画像フレームのそれぞれは、パーティション情報に基づいて、少なくとも一つの画像ブロックに分割されてもよい。少なくとも一つの画像ブロックは、複数の輝度サンプルを再構成するための輝度ブロック、及び複数の色差サンプルを再構成するための少なくとも一つの色差ブロックを含むことができる。輝度ブロック及び少なくとも一つの色差ブロックは、マクロブロック、コーディングツリーユニット(CTUs)、コーディングブロック(CBs)、そのサブ分割、及び/又は別の同等のコーディングユニットを生成するために、更に分割されてもよい。
少なくとも一つの実装形態において、復号のプロセス中に、予測プロセスユニット2222は、画像フレームの内の特定の一つの現在の画像ブロックに関するイントラモード又は動作ベクトルを含む予測データを受信する。現在の画像ブロックは、輝度ブロックの一つ、及び特定の画像フレーム内の色差ブロックの少なくとも一つであってよい。
少なくとも一つの実装形態において、イントラ予測ユニット22221は、イントラモードに関連するシンタックス要素に基づいた現在のブロックユニットフレーム内の一つ以上の隣接ブロックに対応する現在のブロックユニットのイントラ予測コーディングを実行して、予測されたブロックを生成することができる。少なくとも一つの実装形態において、イントラモードは、現在のフレーム内の隣接ブロックから選択された参照サンプルの位置を指定することができる。
少なくとも一つの実装形態において、現在のブロックのルマ(luma)構成要素が予測プロセスユニット2222によって再構成されるとき、イントラ予測ユニット22221は、現在のブロックユニットの複数のルマ構成要素に基づいて、現在のブロックユニットの複数のクロマ(chroma)構成要素を再構成することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測されたブロックを生成するために、動作ベクトルに関連するシンタックス要素に基づいた一つ以上の参照画像ブロック内の一つ以上のブロックに対する現在のブロックユニットのインター予測コーディングを実行することができる。少なくとも一つの実装形態において、動作ベクトルは、参照画像ブロック内の参照ブロックユニットに関連した現在の画像ブロックユニット内の現在のブロックユニットの変位を示すことができる。参照ブロックユニットは、現在のブロックユニットと密接に一致するように決定されるブロックである。少なくとも一つの実装形態において、インター予測ユニット22222は、復号された画像バッファ2226に格納された参照画像ブロックを受信し、受信した参照画像ブロックに基づいて現在のブロックユニットを再構成する。
少なくとも一つの実装形態において、逆量子化/逆変換ユニット2223は、逆量子化及び逆変換を適用して、画素ドメイン内の残差ブロックを再構成してもよい。少なくとも一つの実装形態において、逆量子化/逆変換ユニット2223は、残差量子化変換係数を生成するために、残差量子化変換係数に逆量子化を適用し、次いで、残差変換係数に逆変換を適用して、画素ドメイン内の残差ブロックを生成してもよい。少なくとも一つの実装形態において、逆変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、適応多重変換(AMT)、モード依存非分離二次変換(MDNSST)、ハイパーキューブ-ギブンス変換(HyGT)、信号依存変換、Karhunen-Loeve変換(KLT)、ウェーブレット変換、整数変換、サブバンド変換又は概念的に類似した変換といった変換プロセスによって逆変換を逆に適用することができる。少なくとも一つの実装形態において、逆変換は、周波数ドメインなどの変換ドメインからの残差情報をピクセル領域に戻すように変換することができる。少なくとも一つの実装形態において、逆量子化の度合いは、量子化パラメータを調整することによって修正されてもよい。
少なくとも一つの実装形態において、第1の加算器2224は、再構成された残差ブロックを、予測プロセスユニット2222から提供される予測ブロックに追加して、再構成されたブロックを生成する。
少なくとも一つの実装形態において、フィルタリングユニット2225は、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、バイラテラルフィルタ、及び/又は再構成されたブロックからブロック加工物を除去する適応ループフィルタ(ALF)を含んでもよい。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及びALFに加えて、追加のフィルタ(ループ又はポストループ)を使用することもできる。このようなフィルタは、簡潔にするために示されていないが、所望であれば、第1の加算器2224の出力をフィルタリングすることができる。少なくとも一つの実装形態において、フィルタリングユニット2225は、フィルタリングユニット2225が特定の画像フレームの再構成されたブロックに対してフィルタリング処理を実行した後に、復号されたビデオを表示モジュール121又は他のビデオ受信ユニットに出力することができる。
少なくとも一つの実装形態において、復号された画像バッファ2226は、例えば、インターコーディングモードにおいて、予測プロセスユニット2222によってビットストリームを復号する際に使用するための参照ブロックを保存する参照画像メモリであり得る。復号された画像バッファ2226は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は他のタイプのメモリ装置を含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリ装置のいずれかによって形成され得る。少なくとも一つの実装形態において、復号された画像バッファ2226は、復号モジュール222の他の構成要素とオンチップであってもよく、又はこれらの構成要素に対してオフチップであってもよい。
図3は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数の候補パラメータに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。例としての方法は、本方法を実行する様々な方法があるため、単に例として提供される。以下に説明する方法は、例えば図1及び図2に示す設定を用いて実行することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図3に示す各ブロックは、例としての方法で実行される一つ以上のプロセス、方法、又はサブルーチンを表すことができる。更に、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
ブロック31において、復号モジュール222は、ビデオデータに基づく画像フレームからブロックユニットを決定し、ブロックユニットのための複数の候補パラメータを決定することができる。
少なくとも一つの実装形態において、ビデオデータは、ビットストリームであってよい。少なくとも一つの実装形態において、宛先装置12は、宛先装置12の第2のインターフェース123を介して、ソース装置11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、ビットストリームを復号モジュール222に提供することができる。復号モジュール222は、ビットストリームに基づいた画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティションインディケーションに基づくブロックユニットを決定することができる。例えば復号モジュール222は、複数のコーディングツリーユニットを生成するために画像フレームを分割し、ビデオコーディング規格に基づいたパーティションインディケーションに基づくブロックユニットを決定するためにコーディングツリーユニットの内の一つを更に分割することができる。
少なくとも一つの実装形態において、ソース装置11は、ブロックユニットのための予測モードの候補パラメータを決定し、候補パラメータから複数の予測パラメータを選択して、ブロックユニットを予測することができる。少なくとも一つの実装形態において、予測モードは、複数の候補モードから選択された動作ベクトル差分(MMVD)モードを伴うマージモードであってよい。本実装形態において、ソース装置11は、ビットストリーム内のブロックユニットの予測パラメータを示す複数の予測インディケーションを宛先装置12に提供することができる。少なくとも一つの実装形態において、エントロピー復号ユニット2221は、ブロックユニットのための予測インディケーションを決定するためにビットストリームを復号することができ、次いで、復号モジュール222は、予測インディケーションに基づいたブロックユニットを更に再構成することができる。少なくとも一つの実装形態において、予測インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。
少なくとも一つの実装形態において、予測モードがMMVDモードであるとき、予測モードは、複数の動作パラメータを含むことができる。少なくとも一つの実装形態において、動作パラメータは、ベース動作、動作差分、及び予測方向を含むことができる。少なくとも一つの実装形態において、動作パラメータのそれぞれは、候補パラメータを含むことができる。少なくとも一つの実装形態において、予測インディケーションは、MMVDモードのためのベース候補インデックス、動作差分インディケーション、及び予測方向インデックスの内の少なくとも一つを含むことができる。少なくとも一つの実装形態において、動作パラメータの各予測パラメータは、予測インディケーションの内の対応する一つに基づいて選択され得る。例えばベース動作の予測パラメータは、ベース候補インデックスに基づいて、ベース動作の候補パラメータから選択されてもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、隣接する動作情報に基づいたブロックユニットのための複数のベース候補を生成することができる。少なくとも一つの実装形態において、ベース候補は、ベース動作を選択するための候補パラメータである。少なくとも一つの実装形態において、ベース候補インデックスは、予測パラメータに含まれた選択されたベース候補を示すMMVDフラグmmvd_cand_flagであってよい。例えばベース候補は、高効率ビデオコーディング(HEVC)又は多用途ビデオコーディング(VVC)などのビデオコーディング規格に基づいて、スキップモード、ダイレクトモード、及びマージモードで生成され得る。各ベース候補は、少なくとも一つのフレーム候補、及び少なくとも一つのベクトル候補を含むことができる。一実装形態において、特定のベース候補が双予測候補であるとき、ベース候補の内の特定の一つは、第1の参照リストL0内の第1のフレーム候補、第1のフレーム候補に対応する第1のベクトル候補、第2の参照リストL1内の第2のフレーム候補、及び第2のフレーム候補に対応する第2のベクトル候補を含むことができる。別の実装形態において、特定のベース候補は、特定のベース候補が第1の参照リストL0の単一予測候補であるとき、第1の参照リストL0内の第1のフレーム候補、及び第1のフレーム候補に対応する第1のベクトル候補を含むことができる。他の実装形態において、特定のベース候補が第2の参照リストL1の単一予測候補であるとき、特定ベース候補は、第2の参照リストL1内の第2のフレーム候補、及び第2のフレーム候補に対応する第2のベクトル候補を含むことができる。
少なくとも一つの実装形態において、動作差分インディケーションは、動作距離インデックス及び動作方向インデックスを更に含んでもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、ベース候補インデックスに基づいたベース候補のうちの一つを選択し、選択されたベース候補内のベクトル候補を調整するために、動作差分インディケーションに基づいた動作差分を決定することができる。一実装形態において、動作差分は、動作距離インデックス及び動作方向インデックスに基づいて決定される差分の大きさ及び差分方向によって表されてもよい。少なくとも一つの実装形態において、動作距離インデックスは、予測パラメータに含まれた差分の大きさを示している第1のMMVDインデックスmmvd_distance_idxであってもよく、動作方向インデックスは、予測パラメータに含まれた差分方向を示している第2のMMVDインデックスmmvd_direction_idxであってもよい。少なくとも一つの実装形態において、複数の差分距離候補は、動作距離インデックスに基づいた差分の大きさを選択するための候補パラメータであってもよく、複数の差分方向候補は、差分方向インデックスに基づいた差分方向を選択するための候補パラメータであってもよい。
少なくとも一つの実装形態において、差分方向は、ベース候補インデックスに基づいて決定されるベクトル候補を調整するための方向角度を示すことができる。一実装形態において、方向角度の各々は、動作方向インデックスによって事前定義されてもよい。例えば、方向角度は、0°、22.5°、37.5°、150°又は任意の他の角度を含んでもよい。少なくとも一つの実装形態において、動作方向インデックスは、4つの調整方向(+、0)、(0、+)、(-、0)、及び(0、-)の内の一つを示すことができる。本実装形態において、4つの調整方向の方向角度は、0°、90°、180°、及び270°であってもよい。一実装形態において、動作差分インディケーションは、x座標差分及びy座標差分を含んでいる動作差分を示す動作差分インデックスであってもよい。これにより、インター予測ユニット22222は、動作差分インデックスが示すx座標差分及びy座標差分に基づいて動作差分を決定し、選択されたベクトル候補を調整することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測方向インデックスに基づいて、複数の予測方向候補から第1の参照リストL0及び第2の参照リストL1の内の少なくとも一つを選択することができる。ブロックユニットが、第1の参照リストL0内の第1のフレーム候補の内の一つ、及び第2の参照リストL1内の第2のフレーム候補の内の一つに基づいて予測されるとき、ブロックユニットは、第1の参照リストL0及び第2の参照リストL1に基づいて予測される双予測ブロックである。ブロックユニットが、第1の参照リストL0内の第1のフレーム候補の一つに基づいて予測されるとき、ブロックユニットは、第1の参照リストL0に基づいて予測される単一予測ブロックである。ブロックユニットが第2の参照リストL1内の第2のフレーム候補の一つに基づいて予測されるとき、ブロックユニットは、第2の参照リストL1に基づいて予測される単一予測ブロックである。本実装形態において、インター予測ユニット22222は、ベース候補インデックスと予測方向インデックスとの関係を確認することができる。インター予測ユニット22222は、予測方向インデックスによって決定された参照リストと、ベース候補インデックスによって決定された参照リストとが異なるとき、ベース候補インデックスによって決定された参照リストにフレーム候補をミラーリングすることによって、予測方向インデックスによって決定された参照リスト内のフレーム候補を検索してもよい。例えば予測方向インデックスが、ブロックユニットに双予測であることを示し、ベース候補インデックスは単一予測候補を示すことができるとき、第2の参照リストL1内のブロックユニットに対応するフレームが存在しない。したがって、インター予測ユニット22222は、第2のフレーム候補の内の一つを選択するために、ベース候補インデックスによって決定された第1の参照リストL0内の第1のフレーム候補を第2の参照リストL1にミラーリングすることができる。またインター予測ユニット22222は、ベース候補インデックスによって決定された第1の参照リストL0に対応する第1のベクトル候補をミラーリングして、第2の参照リストL1に対する第2のベクトル候補を決定することができる。少なくとも一つの実装形態において、予測インディケーションにおける予測方向インデックスが存在しないことがある。本実装形態において、ベース候補インデックスによって決定される参照リストは、ブロックユニットの参照リストであってもよい。
少なくとも一つの実装形態において、予測インディケーションは、セットインデックスを含むことができる。本実装形態において、セットインデックスは、動作差分インディケーションが動作差分インデックスであるとき、ベース候補インデックス、動作差分インデックス、及び予測方向インデックスの内の少なくとも一つを表すことができる。少なくとも一つの実装形態において、セットインデックスは、動作差分インディケーションが動作距離インデックス及び動作方向インデックスを含むとき、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスの内の少なくとも一つを表すことができる。例えば復号モジュール222は、セットインデックスが動作距離インデックス及び動作方向インデックスを表すとき、セットインデックスから差分の大きさ及び差分方向を直接的に決定することができる。更に復号モジュール222は、セットインデックスが動作距離インデックスのみを表すとき、セットインデックスに基づいて差分の大きさを決定することができる。
再び図3を参照すると、ブロック32において、復号モジュール222は、候補パラメータから選択された複数のグループパラメータを各々が含む複数の候補グループを決定することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、ビットストリームから複数の以前のブロックを決定することができる。本実装形態において、候補モードから選択された複数の以前のモードによって再構成された以前のブロックは、ブロックユニットの前に復号される。少なくとも一つの実装形態において、以前のモードがMMVDモードであるとき、以前のモードは、候補パラメータから選択された複数の以前のパラメータを含むことができる。したがって、インター予測ユニット22222は、以前のブロックの以前のモードを決定し、予測モードの以前のパラメータと同一又は類似の候補パラメータを第1の候補グループに分類することができる。例えばインター予測ユニット22222は、インター予測ユニット22222がセットインデックスを用いて差分の大きさ及び差分方向を表すとき、候補パラメータにおける差分距離候補及び差分方向候補を、以前のブロックの以前のモードの差分の大きさ及び差分方向と比較してもよい。またインター予測ユニット22222は、インター予測ユニット22222がセットインデックスを用いて差分の大きさを表すとき、候補パラメータにおける差分距離候補と、以前のブロックの以前のモードの差分の大きさとを比較してもよい。
少なくとも一つの実装形態において、復号モジュール222は、ビットストリーム内のパーティションインディケーションに基づくブロックユニットを決定し、複数の事前定義された領域に基づいた検索エリアを決定するために、画像フレームを分割することができる。図4A~4Cは、ブロックユニット41~43及び検索エリア410~430の例としての実装形態の概略図である。一実装形態において、図4Aのブロックユニット41の検索エリア410は、ブロックユニット41の左側面に位置する第1の検索領域411、ブロックユニットの上に位置する第2の検索領域412、及びブロックユニット41の左上に位置する第3の検索領域413を含む。第1の検索領域411は、第1の領域幅W1及び第1の領域高さH1を有し、第2の検索領域412は、第2の領域幅W2及び第2の領域高さH2を有する。第3の検索領域413の領域幅は、第1の領域幅W1に等しく、第3の検索領域413の領域高さは、第2の領域高さH2に等しい。一実装形態において、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の各々は、互いに異なっていてもよい。別の実装形態において、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の内の少なくとも二つは、互いに等しくてもよい。例えばブロックユニット42の第1の検索領域421の第1の領域幅W1は、図4Bにおけるブロックユニット42の第2の検索領域422の第2の領域高さH2と等しくてもよい。その結果、ブロックユニット42の第3の検索領域423は、正方形の検索領域であってもよい。一実装形態において、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の各々は、4で割り切れることができる。一実装形態において、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の各々は、プリセットされた長さとして事前定義され得る。別の実装形態において、ソース装置11の符号化モジュール112は、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の長さを決定し、ビットストリームにおけるシーケンスパラメータセット(SPS)及び画像パラメータセット(PPS)の内の一つにおける予測インディケーションの内の少なくとも一つを提供することができる。したがって復号モジュール222は、ビットストリームにおけるSPS及びPPSの内の一つから、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の長さを決定することができる。他の実装形態において、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2は、ブロックユニット41のブロック幅W0及びブロック高さH0に比例することができる。これにより、インター予測ユニット22222は、事前定義された複数の比率パラメータに基づいて、第1の領域幅W1、第2の領域幅W2、第1の領域高さH1、及び第2の領域高さH2の長さを決定することができる。
少なくとも一つの実装形態において、図4Cのブロックユニット43の検索エリア430は、ブロックユニット43に隣接する複数の検索ブロックを含むことができる。例えば検索エリア430は、第1の検索ブロック431、第2の検索ブロック432、第3の検索ブロック433、第4の検索ブロック434、及び第5の検索ブロック435を含むことができる。一実装形態において、検索ブロック431~435は、インター予測ユニット22222によって複数のインターマージ候補のために使用されるブロックユニット41に隣接する複数の空間ブロックと同一であってもよい。一実装形態において、検索ブロックの検索ブロック幅及び検索ブロック高さは、4に等しくてもよい。
少なくとも一つの実装形態において、以前に復号されたスライスは、検索エリアとして定義され得る。本実装形態において、以前に復号されたスライス内の複数の以前のブロックの各々は、ブロックユニットより前に復号される。本実装形態において、予測候補から選択された複数の予測モードによって再構成された以前のブロックは、ブロックユニットより前に復号される。
少なくとも一つの実装形態において、インター予測ユニット22222は、検索エリア内の以前のブロックの以前のモードを決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、複数のサブブロックを生成するために検索エリアを分割することができる。一実装形態において、サブブロックの各々は、4×4に等しいブロックサイズを有することができる。本実装形態において、サブブロックの各々は、以前のブロックの内の一つに含まれてもよい。インター予測ユニット22222は、特定のサブブロックが特定の以前のブロックに含まれるとき、サブブロックの特定の一つの以前のモードは、以前のブロックの特定の一つの以前のモードと同一であると決定することができる。したがって、インター予測ユニット22222は、サブブロックの以前のモードを決定し、候補パラメータに基づいて予測されたサブブロックの量を計算することができる。したがって、インター予測ユニット22222は、候補パラメータの使用率を決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、使用率に基づいて候補パラメータを並べることができる。本実装形態において、インター予測ユニット22222は、使用率に基づいて候補パラメータを最大から最小に並べることができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、ソートされた候補リストを生成するために、以前のブロックの以前のモードに基づいて、動作パラメータの各々のための候補パラメータを並べることができる。そして、インター予測ユニット22222は、ソートされた候補リストの中の動作パラメータの一つのための第1のNmの候補パラメータを第1の候補グループに追加してもよい。少なくとも一つの実装形態において、Nmは、ゼロより大きい整数であってよい。少なくとも一つの実装形態において、インター予測ユニット22222は、ソートされた候補リストを生成するために、以前のモードの使用率に基づいて、動作パラメータの一つのための候補パラメータを並べることができる。さらに、第1の候補グループ内のグループパラメータの第1の一つのためのビットストリーム内のビットの数は、第1の候補グループ内のグループパラメータの第2の一つのためのビットストリーム内のビットの数より少なくてもよい。
少なくとも一つの実装形態において、第1の候補グループ内のグループパラメータの最大量は、Nmとすることができる。一実装形態において、復号モジュール222がビットストリームの復号を開始するとき、第1候補グループ内のグループパラメータの数は、ゼロに等しくてもよい。インター予測ユニット22222が、以前のパラメータを有するMMVDモードに基づいてビデオデータ内の第1のブロックが予測されると決定したとき、インター予測ユニット22222は、MMVDモードの以前のパラメータと同一の候補パラメータを第1の候補グループに追加することができる。したがって、第1の候補グループ内のグループパラメータの数は、1に増加することができる。少なくとも一つの実装形態において、以前のモードの数がNm以上であるとき、第1の候補グループ内のグループパラメータの数は、最大量Nmに等しくてもよい。したがって、インター予測ユニット22222は、第1の候補グループ内のNmのグループパラメータに追加するための新しい以前のモードが決定されたとき、候補パラメータの内の第1の追加された一つを第1の候補グループから削除することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、残りの候補パラメータを他の候補グループに分類することができる。一実装形態において、第1の候補グループ内のグループパラメータの数は、他の候補グループ内のグループパラメータの数よりも大きくても小さくてもよい。別の実装形態において、第1の候補グループ内のグループパラメータの数は、他の候補グループ内のグループパラメータの数に等しくてもよい。
少なくとも一つの実装形態において、候補グループ内の候補パラメータの分布は、(例えば符号化モジュール112及び復号モジュール222内で)事前定義され得る。したがって、インター予測ユニット22222は、復号モジュール222から候補グループ内の候補パラメータの分類された結果を直接的に決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、グループパラメータを含む候補グループを直接的に決定することができる。本実装形態において、候補グループの各々の内のグループパラメータは、復号モジュール222内で事前定義されてもよい。
再び図3を参照すると、ブロック33において、復号モジュール222は、ブロックユニットを予測するための候補パラメータの内の特定の一つが第1の候補グループに含まれるかどうかを決定することができる。ブロックユニットの特定の候補パラメータが第1の候補グループに含まれる場合、手順は、ブロック34に進むことができる。ブロックユニットの特定の候補パラメータが第1の候補グループに含まれていない場合、手順は、ブロック35に進むことができる。
少なくとも一つの実装形態において、予測インディケーションは、ブロックユニットの特定の候補パラメータが第1の候補グループに含まれるかどうかを示すセットフラグを更に含むことができる。このように、インター予測ユニット22222は、セットフラグが1であるとき、ブロックユニットの特定の候補パラメータが第1の候補グループに含まれると直接的に決定してもよい。また、インター予測ユニット22222は、セットフラグが0であるとき、ブロックユニットの特定の候補パラメータが第1の候補グループに含まれていないと直接的に決定してもよい。少なくとも一つの実装形態において、セットフラグは、ブロックユニットの特定の候補パラメータが第1の候補グループに含まれるかどうかを示すことができる。
ブロック34において、復号モジュール222は、セットインデックスに対応する特定の候補パラメータに基づいて予測パラメータを決定することができる。
少なくとも一つの実装形態において、第1の候補グループ内のグループパラメータの各々は、セットインデックスの一つのインデックス値に対応する。このように、インター予測ユニット22222は、特定の候補パラメータが第1の候補グループに含まれるため、セットインデックスに基づいて特定の候補パラメータを決定することができる。
少なくとも一つの実装形態において、インター予測ユニットは、セットインデックスに基づいて予測パラメータを決定することができる。例えば、セットインデックスがベース候補インデックス及び動作差分インデックスを表すとき、インター予測ユニット22222は、セットインデックスからブロックユニットのベース候補及び動作差分を直接的に決定してもよい。また、インター予測ユニット22222は、予測方向インデックスに基づいて、ブロックユニットが双予測ブロックであるか単一予測ブロックであるかをさらに決定してもよい。したがって、復号モジュール222は、決定されたベース候補に基づいて、ベクトル候補の一つ及びフレーム候補の一つを選択し、選択されたベクトル候補を調整して、選択されたフレーム候補に対応する動作ベクトルを生成することができる。そして、復号モジュール222は、選択されたフレーム候補及び予測方向インデックスに基づいたミラーベクトルを生成するために、動作ベクトルをミラーリングするかどうかを決定してもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、セットインデックスが動作距離インデックスを表すとき、セットインデックスからブロックユニットの差分の大きさを決定することができる。このように、インター予測ユニットは、決定されたベース候補、決定された差分の大きさ、及び決定された差分方向に基づいたブロックユニットを予測するためのベース候補インデックス及び動作方向インデックスに基づいて、ベース候補及び差分方向を更に決定することができる。
ブロック35において、復号モジュール222は、残りの候補グループ内の特定の候補パラメータに基づいた予測パラメータを決定することができる。
少なくとも一つの実装形態において、残りの候補グループ内のグループパラメータの各々は、グループインデックスの一つのインデックス値に対応することができる。したがって、インター予測ユニット22222は、特定の候補パラメータが残りの候補グループに含まれているとき、グループインデックスによって、特定の候補パラメータを決定することができる。少なくとも一つの実装形態において、第1の候補グループ内で除外された候補パラメータの全てを、残りの候補グループに追加することができる。少なくとも一つの実装形態において、第1の候補グループのためのセットインデックスによって表される候補パラメータは、残りの候補グループの各々のためのグループインデックスによって表される候補パラメータと同一であってもよい。例えば、セットインデックスが第1の候補グループ内のベース候補及び動作差分を示すとき、インター予測ユニット22222は、グループインデックスが残りの候補グループ内のベース候補及び動作差分を示すことができると決定することができる。したがって、復号モジュール222は、決定された(例えばグループインデックスによって決定された)ベース候補に基づいて、ベクトル候補の一つとフレーム候補の一つを選択し、グループインデックスによって決定された動作差分を決定し、決定された動作差分に基づいて、選択されたフレーム候補に対応する動作ベクトルを生成するために、選択されたベクトル候補を調整し得る。少なくとも一つの実装形態において、セットインデックスが第1の候補グループ内の差分の大きさのみを示すとき、グループインデックスは、残りの候補グループ内の差分の大きさを示すことができる。
少なくとも一つの実装形態において、候補グループの数は、2よりも多くてよい。例えば候補グループの数は、4と等しくてよい。インター予測ユニット22222は、以前のブロックの予測モードに基づいて、候補パラメータを4つの候補グループに分類することができる。本実装形態において、セットフラグは、どの候補グループが特定の候補パラメータを含むかのインデックスインディケーティングに変更されてもよい。
少なくとも一つの実装形態において、候補グループの数が2に等しいとき、セットインデックス及びグループインデックスは、同じインデックスによって表すことができる。少なくとも一つの実装形態において、特定の候補パラメータが第1の候補グループに含まれるとき、予測インディケーションの内の一つは、予測パラメータの内の少なくとも一つを決定するためのセットインデックスと見なされてもよい。少なくとも一つの実装形態において、特定の候補パラメータが他の候補グループに含まれるとき、予測インディケーションの内の一つは、予測インディケーションの内の少なくとも一つを決定するためのグループインデックスと見なされてもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、グループインデックスを用いずに残りの候補グループ内の特定の候補パラメータを決定することができる。インター予測ユニット22222は、ベース候補インデックスによってベース候補を決定し、動作差分インディケーションによって動作差分を決定することができる。その上、インター予測ユニット22222は、予測方向インデックスに基づいて、ブロックユニットが双予測ブロックであるか単一予測ブロックであるかをさらに決定してもよい。したがって、復号モジュール222は、決定されたベース候補に基づいたベクトル候補の内の一つ及びフレーム候補の内の一つを選択し、選択されたベクトル候補を調整し、選択されたフレーム候補に対応する動作ベクトルを生成することができる。その上、復号モジュール222は、選択されたフレーム候補及び予測方向インデックスに基づいて、ミラーベクトルを生成するための動作ベクトルをミラーリングするかどうかを決定し、ミラーリングされたフレーム候補を生成するために選択されたフレーム候補をミラーリングすることができる。
図3に戻って参照すると、ブロック36において、復号モジュール222は、決定された予測パラメータに基づいてブロックユニットを再構成することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測パラメータに基づいて、ブロックユニット内のブロック構成要素の内の一つについて予測された構成要素を生成することができる。少なくとも一つの実装形態において、第1の加算器2224は、予測された構成要素及びブロックユニットを再構成するための複数の残差構成要素に基づいて、複数の再構成した構成要素を生成してもよい。本実装形態において、第1の加算器2224は、エントロピー復号ユニット2221及び逆量子化/逆変換ユニット2223を介して、ブロックユニットの残差構成要素を受信することができる。本実装形態において、残差構成要素は、ビットストリームから決定されてもよい。少なくとも一つの実装形態において、復号モジュール222は、画像フレーム及びビデオを再構成するために、画像フレーム内の他のブロックユニットの全てを再構成することができる。
図5は、本出願の一例としての実装形態に基づく、複数の候補グループ内の動作ベクトル差分(MMVD)候補パラメータを伴う複数のマージモードに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。本例としての方法は、本方法を実行する様々な方法があるため、単に例として提供される。以下に説明する本例としての方法は、例えば、図1及び図2に示す設定を用いて実行することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図5に示す各ブロックは、本例としての方法で実行される一つ以上のプロセス、方法、又はサブルーチンを表すことができる。更にブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
ブロック51において、復号モジュール222は、ビデオデータに基づく画像フレームからブロックユニットを決定することができる。
少なくとも一つの実装形態において、ビデオデータは、ビットストリームであってよい。少なくとも一つの実装形態において、宛先装置12は、宛先装置12の第2のインターフェース123を介して、ソース装置11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、ビットストリームを復号モジュール222に提供することができる。復号モジュール222は、ビットストリームに基づいた画像フレームを決定し、画像フレームを分割し、ビットストリーム内の複数のパーティションインディケーションに基づくブロックユニットを決定することができる。例えば復号モジュール222は、複数のコーディングツリーユニットを生成するために画像フレームを分割し、ビデオコーディング規格に基づいたパーティションインディケーションに基づくブロックユニットを決定するためにコーディングツリーユニットの内の一つを更に分割することができる。
少なくとも一つの実装形態において、エントロピー復号ユニット2221は、ブロックユニットのための複数の予測インディケーションを決定するためにビットストリームを復号することができ、次いで、復号モジュール222は、予測インディケーションに基づいてブロックユニットを更に再構成することができる。少なくとも一つの実装形態において、予測インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。
ブロック52において、予測プロセスユニット2222は、セットフラグに対応する複数の候補グループの内の一つを選択することができる。
少なくとも一つの実装形態において、ブロックユニットがMMVDモードにおいて予測されるとき、ブロックユニットを予測するための複数の動作パラメータが存在し得る。少なくとも一つの実装形態において、動作パラメータは、ベース動作、動作差分、及び予測方向を含むことができる。少なくとも一つの実装形態において、動作パラメータの各々は、複数の候補パラメータを含んでよい。少なくとも一つの実装形態において、復号モジュール222は、動作パラメータの各々のための候補パラメータから予測パラメータを選択することができる。例えば予測パラメータの内の一つは、ベース動作の候補パラメータから選択されてもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、隣接した動作情報に基づいて、ブロックユニットのための複数のベース候補を生成することができる。少なくとも一つの実装形態において、ベース候補は、ベース動作を選択するための候補パラメータであってもよい。例えばベース候補は、高効率ビデオコーディング(HEVC)又は多用途ビデオコーディング(VVC)などのビデオコーディング規格に基づいて、スキップモード、ダイレクトモード、及びマージモードで生成され得る。ベース候補の各々は、少なくとも一つのフレーム候補及び少なくとも一つのベクトル候補を含むことができる。一実装形態において、特定のベース候補が双予測候補であるとき、ベース候補のうちの特定の一つは、第1の参照リストL0内の第1のフレーム候補、第1のフレーム候補に対応する第1のベクトル候補、第2の参照リストL1内の第2のフレーム候補、及び第2のフレーム候補に対応する第2のベクトル候補を含むことができる。別の実装形態において、特定のベース候補が第1の参照リストL0の単一予測候補であるとき、特定のベース候補は、第1の参照リストL0内の第1のフレーム候補及び第1のフレーム候補に対応する第1のベクトル候補を含むことができる。
少なくとも一つの実装形態において、動作差分は、差分の大きさ及び差分方向を更に含んでもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、ベース候補の内の一つを選択し、選択されたベース候補内のベクトル候補を調整するために動作差分を決定することができる。少なくとも一つの実装形態において、複数の差分距離候補は、差分の大きさを選択するための候補パラメータであり、複数の差分方向候補は、差分方向を選択するための候補パラメータである。少なくとも一つの実装形態において、差分方向は、選択されたベース候補のベクトル候補を調整するための方向角度を示すことができる。少なくとも一つの実装形態において、差分方向候補は、4つの調整方向(+、0)、(0、+)、(-、0)、及び(0、-)を含むことができる。本実装形態において、4つの調整方向の方向角度は、0°、90°、180°、及び270°であってもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、ブロックユニットを予測するために、第1の参照リストL0及び第2の参照リストL1の内の少なくとも一つを選択することができる。ブロックユニットが第1の参照リストL0内の第1のフレーム候補の内の一つ及び第2の参照リストL1内の第2のフレーム候補の内の一つに基づいて予測されるとき、ブロックユニットは、第1の参照リストL0及び第2の参照リストL1に基づいて予測される双予測ブロックである。ブロックユニットが、第1の参照リストL0内の第1のフレーム候補の一つに基づいて予測されるとき、ブロックユニットは、第1の参照リストL0に基づいて予測される単一予測ブロックである。ブロックユニットを予測するための参照リストが、ベース動作によって決定された参照リストと異なるとき、インター予測ユニット22222は、ベース動作によって決定された参照リストにフレーム候補をミラーリングすることによって、ブロックユニットの参照リスト内のフレーム候補を検索することができる。
少なくとも一つの実装形態において、動作パラメータの候補パラメータは、一つ以上の第1の動作パラメータを選択するための複数の第1のMMVD候補パラメータ、及び一つ以上の第2の動作パラメータを選択するための複数の第2のMMVD候補パラメータを含むことができる。少なくとも一つの実装形態において、一つ以上の第1の動作パラメータの第1のMMVD候補パラメータは、候補グループ内に分散されてもよい。少なくとも一つの実装形態において、候補グループの各々は、第1の動作パラメータの内の対応する一つを予測するための第1のMMVD候補パラメータをそれぞれ含む一つ以上の第1のMMVD候補リストを含む。少なくとも一つの実装形態において、一つ以上の第1の動作パラメータの数は、候補グループの各々における一つ以上の第1のMMVD候補リストの数と等しくてもよい。少なくとも一つの実装形態において、第2のMMVD候補パラメータは、第1のMMVD候補リストとは異なる一つ以上の第2のMMVD候補リストに含まれ得る。少なくとも一つの実装形態において、第2のMMVD候補パラメータは、候補グループから除外され得る。
少なくとも一つの実装形態において、候補グループ内の候補パラメータの分布は、(例えば符号化モジュール112及び復号モジュール222内で)事前定義され得る。したがって、インター予測ユニット22222は、復号モジュール222からの候補グループ内の第1のMMVD候補パラメータの分類された結果を直接的に決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、第1のMMVD候補パラメータを含む候補グループを直接的に決定することができる。本実装形態において、候補グループの各々における第1のMMVD候補パラメータは、復号モジュール222内に事前定義されてもよい。
少なくとも一つの実施形態において、予測インディケーションは、ブロックユニットの予測パラメータの内の少なくとも一つが候補グループの内の特定の一つから選択されるかどうかを示すセットフラグを更に含むことができる。このように、インター予測ユニット22222は、セットフラグが1であるとき、ブロックユニットの予測パラメータの内の少なくとも一つが特定の候補グループから選択されたと直接的に決定してもよい。その上、インター予測ユニット22222は、セットフラグが0であるとき、ブロックユニットの予測パラメータの内の少なくとも一つが特定の候補グループから選択されていないと直接的に決定してもよい。少なくとも一つの実装形態において、セットフラグは、ブロックユニットの予測パラメータの少なくとも一つが特定の候補グループから選択されるかどうかを示してもよい。
図5に戻って参照すると、ブロック53において、予測プロセスユニット2222は、ビデオデータに基づくブロックユニットの複数のMMVDインディケーションを決定することができる。
少なくとも一つの実装形態において、予測インディケーションは、MMVDモードのためのベース候補インデックス、動作差分インディケーション、及び予測方向インデックスの内の少なくとも一つを含むことができる。少なくとも一つの実装形態において、復号モジュールは、予測インディケーションの内の対応する一つに基づいて、動作パラメータの各々のための候補パラメータから予測パラメータのうちの一つを選択することができる。例えば予測パラメータの内の一つは、ベース候補インデックスに基づいて、ベース動作の候補パラメータから選択され得る。
少なくとも一つの実装形態において、ベース候補インデックスは、予測パラメータに含まれる選択されたベース候補を示すMMVDフラグmmvd_cand_flagであってもよい。一実装形態において、ブロックユニットのベース動作がベース候補インデックスに基づいたベース候補から選択された双予測候補であるとき、ブロックユニットのベース動作は、第1の参照リストL0内の第1のフレーム候補、第1のフレーム候補に対応する第1のベクトル候補、第2の参照リストL1内の第2のフレーム候補、及び第2のフレーム候補に対応する第2のベクトル候補を示し得る。
少なくとも一つの実装形態において、動作差分インディケーションは、動作距離インデックス及び動作方向インデックスを更に含んでもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、動作差分インディケーションに基づいて動作差分を決定し、選択されたベース候補内のベクトル候補を調整することができる。少なくとも一つの実装形態において、動作距離インデックスは、差分距離候補からの差分の大きさを示す第1のMMVDインデックスmmvd_distance_idxとすることができ、動作方向インデックスは、差分方向候補からの差分方向を示す第2のMMVDインデックスmmvd_direction_idxとすることができる。少なくとも一つの実装形態において、動作差分インディケーションは、x座標差分及びy座標差分を含む動作差分を示す動作差分インデックスとすることができる。これにより、インター予測ユニット22222は、動作差分インデックスが示すx座標差分及びy座標差分に基づいて動作差分を決定し、選択されたベクトル候補を調整することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測方向インデックスに基づいた複数の予測方向候補から第1の参照リストL0及び第2の参照リストL1の内の少なくとも一つを選択することができる。予測方向インデックスによって決定された参照リストと、ベース候補インデックスによって決定された参照リストとが異なるとき、インター予測ユニット22222は、ベース候補インデックスによって決定された参照リストにフレーム候補をミラーリングすることによって、予測方向インデックスによって決定された参照リスト内のフレーム候補を検索してもよい。少なくとも一つの実装形態において、予測インディケーションに予測方向インデックスが存在しないことがある。本実装形態において、ベース候補インデックスによって決定された参照リストは、ブロックユニットを予測するための選択された参照リストとしてプリセットされる。
少なくとも一つの実装形態において、予測インディケーションは、セットインデックスを含むことができる。本実装形態において、動作差分インディケーションが動作差分インデックスであるとき、セットインデックスは、ベース候補インデックス、動作差分インデックス、及び予測方向インデックスの内の少なくとも一つを表すことができる。少なくとも一つの実装形態において、動作差分インディケーションが動作距離インデックス及び動作方向インデックスを含むとき、セットインデックスは、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスの内の少なくとも一つを表すことができる。例えば、セットインデックスが動作距離インデックス及び動作方向インデックスを表すとき、復号モジュール222は、セットインデックスから差分の大きさ及び差分方向を直接的に決定することができる。その上、セットインデックスが動作距離インデックスのみを表すとき、復号モジュール222は、セットインデックスに基づいて差分の大きさを決定することができる。本実装形態において、セットインデックスは、動作距離インデックスである。少なくとも一つの実装形態において、セットインデックスが動作距離インデックス及び動作方向インデックスを表すとき、差分距離候補及び差分方向候補は、候補グループに分散されたグループパラメータであってもよい。本実装形態において、候補グループには、ベース候補及び予測方向候補は、含まれていない。少なくとも一つの実装形態において、セットインデックスが動作距離インデックスを表すとき、差分距離候補は、候補グループ内に分散されたグループパラメータであってよい。本実装形態において、ベース候補、差分方向候補、及び予測方向候補は、候補グループに含まれない。
少なくとも一つの実装形態において、セットフラグが1に等しいとき、インター予測ユニット22222は、セットインデックスに基づいた特定の候補グループから予測パラメータの内の少なくとも一つを直接的に決定することができる。その上、セットフラグが0であるとき、インター予測ユニット22222は、グループインデックスに基づいた他の候補グループの予測パラメータの内の少なくとも一つを直接的に決定してもよい。少なくとも一つの実装形態において、候補グループの数が2に等しいとき、セットインデックス及びグループインデックスは、同じインデックスによって表されてよい。少なくとも一つの実装形態において、特定の候補グループを示すセットフラグが1に等しいとき、予測パラメータの内の一つは、予測パラメータの内の少なくとも一つを決定するためのセットインデックスと見なされ得る。本実装形態において、他の候補グループを示すセットフラグがゼロに等しいとき、予測指標の内の一つは、予測パラメータの内の少なくとも一つを決定するためのグループインデックスと見なされてもよい。
再び図5を参照すると、ブロック54において、復号モジュール222は、MMVDインディケーション及び選択された候補グループに基づいたブロックユニットの複数のMMVD予測パラメータを選択することができる。
少なくとも一つの実装形態において、ブロックユニットがMMVDモードにおいて予測されるとき、予測パラメータは、MMVD予測パラメータである。少なくとも一つの実装形態において、セットフラグが1に等しいとき、インター予測ユニット22222は、セットインデックス及び他の予測インディケーションに基づいたMMVD予測パラメータを決定し得る。例えば、セットインデックスがベース候補インデックス及び動作差分インデックスを表すとき、インター予測ユニット22222は、セットインデックスに基づいて、ベース候補及びブロックユニットの動作差分を直接的に決定し、ブロックユニットが予測方向インデックスに基づいて双予測ブロックであるか、又は単一予測ブロックであるかを決定してもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、セットインデックス及びグループインデックスの各々が動作距離インデックスを表すとき、セットインデックスに基づいてブロックユニットの差分の大きさを決定し、ベース候補インデックス、差分方向インデックス、及び予測方向インデックスに基づいて他の予測パラメータを決定することができる。
少なくとも一つの実装形態において、セットフラグがゼロに等しいとき、インター予測ユニット22222は、グループインデックス及び他の予測インディケーションに基づいてMMVD予測パラメータを決定することができる。例えばセットインデックス及びグループインデックスの各々が動作距離インデックスを表すとき、インター予測ユニット22222は、グループインデックスからブロックユニットの差分の大きさを決定し、ベース候補インデックス、差分方向インデックス及び予測方向インデックスに基づいて他の予測パラメータを決定することができる。
ブロック55において、復号モジュール222は、MMVD予測パラメータに基づいてブロックユニットを再構成することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測パラメータに基づく、ブロックユニット内のブロック構成要素の内の一つのために予測された構成要素を生成することができる。少なくとも一つの実装形態において、第1の加算器2224は、予測された構成要素及びブロックユニットを再構成するための複数の残差構成要素に基づいて、複数の再構成された構成要素を生成してもよい。本実装形態において、第1の加算器2224は、エントロピー復号ユニット2221及び逆量子化/逆変換ユニット2223を介して、ブロックユニットの残差構成要素を受信することができる。本実装形態において、残差構成要素は、ビットストリームから決定されてもよい。少なくとも一つの実装形態において、復号モジュール222は、画像フレーム及びビデオを再構成するために、画像フレーム内の他のブロックユニットの全てを再構成することができる。
図6は、本出願の一例としての実装形態に基づく、複数の候補グループ内の動作ベクトル差分(MMVD)候補パラメータを伴う複数のマージモードに基づいたブロックユニットを再構成するための一例としての再構成の方法のフローチャートを示す。本例としての方法は、本方法を実行する様々な方法があるため、単に例として提供される。以下に説明する方法は、例えば、図1及び図2に示す設定を用いて実行することができ、これらの図の様々な要素は、本例としての方法を説明する際に参照される。図6に示す各ブロックは、本例としての方法において実行される一つ以上のプロセス、方法、又はサブルーチンを表すことができる。更に、ブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
ブロック61において、復号モジュール222は、ビデオデータに基づく画像フレームからブロックユニットを決定することができる。
少なくとも一つの実装形態において、ビデオデータは、ビットストリームであってよい。少なくとも一つの実装形態において、宛先装置12は、宛先装置12の第2のインターフェース123を介して、ソース装置11などのエンコーダからビットストリームを受信することができる。第2のインターフェース123は、ビットストリームを復号モジュール222に提供することができる。復号モジュール222は、ビットストリームに基づいて画像フレームを決定し、画像フレームを分割して、ビットストリーム内の複数のパーティションインディケーションに基づくブロックユニットを決定することができる。例えば復号モジュール222は、複数のコーディングツリーユニットを生成するために画像フレームを分割し、ビデオコーディング規格に基づいてパーティションインディケーションに基づくブロックユニットを決定するためにコーディングツリーユニットの内の一つを更に分割することができる。
少なくとも一つの実装形態において、エントロピー復号ユニット2221は、ブロックユニットのための複数の予測インディケーションを決定するためにビットストリームを復号することができ、次いで、復号モジュール222は、予測インディケーションに基づいてブロックユニットを更に再構成することができる。少なくとも一つの実装形態において、予測インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。
ブロック62において、予測プロセスユニット2222は、セットフラグに基づいて、各々が動作ベクトル差分(MMVD)候補リストを伴う一つ以上の第1のマージモードを含むことができる複数の候補グループの内の一つを選択することができる。
少なくとも一つの実装形態において、ブロックユニットがMMVDモードにおいて予測されるとき、ブロックユニットを予測するための複数の動作パラメータが存在し得る。少なくとも一つの実装形態において、動作パラメータは、ベース動作、動作差分、及び予測方向を含むことができる。少なくとも一つの実装形態において、動作パラメータの各々は、複数の候補パラメータを含むことができる。少なくとも一つの実装形態において、復号モジュール222は、動作パラメータの各々のための候補パラメータから予測パラメータを選択することができる。例えば予測パラメータの一つは、ベース動作の候補パラメータから選択されてもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、隣接する動作情報に基づいたブロックユニットのための複数のベース候補を生成することができる。少なくとも一つの実装形態において、ベース候補は、ベース動作を選択するための候補パラメータである。ベース候補の各々は、少なくとも一つのフレーム候補及び少なくとも一つのベクトル候補を含む。
少なくとも一つの実装形態において、動作差分は、差分の大きさ及び差分方向を更に含んでもよい。少なくとも一つの実装形態において、インター予測ユニット22222は、ベース候補の一つを選択し、選択されたベース候補におけるベクトル候補を調整するために動作差分を決定することができる。少なくとも一つの実装形態において、複数の差分距離候補は、差分の大きさを選択するための候補パラメータであり、複数の差分方向候補は、差分方向を選択するための候補パラメータである。
少なくとも一つの実装形態において、インター予測ユニット22222は、ブロックユニットを予測するための複数の予測方向候補から第1の参照リストL0及び第2の参照リストL1のうちの少なくとも一つを選択することができる。ブロックユニットが第1の参照リストL0内の第1のフレーム候補の内の一つ及び第2の参照リストL1内の第2のフレーム候補の一つに基づいて予測されるとき、ブロックユニットは、第1の参照リストL0及び第2の参照リストL1に基づいて予測される双予測ブロックである。
少なくとも一つの実装形態において、動作パラメータの少なくとも一つに対応する候補パラメータは、候補グループに分類されてよい。本実装形態において、他の動作パラメータは、候補グループに含まれなくてもよい。少なくとも一つの実装形態において、候補グループの各々は、複数の第1のMMVD候補パラメータを有する一つ以上の第1のMMVD候補リストの各々を含むことができる。本実装形態において、第1のMMVD候補パラメータは、少なくとも一つの分類された動作パラメータ内の候補パラメータであってよい。少なくとも一つの実装形態において、少なくとも一つの分類された動作パラメータの数は、候補グループの各々における一つ以上の第1のMMVD候補リストの数に等しくてもよい。例えば差分距離候補及び差分方向候補を候補グループに分類してもよい。本実装形態において、ベース候補及び予測方向候補は、候補グループに含まれなくてもよい。したがって、少なくとも一つの分類された動作パラメータは、差分の大きさ及び差分方向であり、少なくとも一つの分類された動作パラメータの数は、2に等しくてもよい。その上、候補グループの各々における一つ以上の第1のMMVD候補リストの数は、2であってもよい。本実装形態において、候補グループの各々における二つの第1のMMVD候補リストの内の一方は、差分距離候補を含むことができ、候補グループの各々における第1のMMVD候補リストの内の他方は、差分方向候補を含むことができる。少なくとも一つの実装形態において、差分距離候補は、候補グループに分類されてもよい。本実装形態において、ベース候補、差分方向候補、及び予測方向候補は、候補グループに含まれなくてもよい。したがって、少なくとも一つの分類された動作パラメータは、差分の大きさであり、少なくとも一つの分類された動作パラメータの数は、1に等しくてもよい。その上、候補グループの各々における一つ以上の第1のMMVD候補リストの数は、1に等しくてもよい。本実装形態において、候補グループの各々における第1のMMVD候補リストは、差分距離候補を含むことができる。
少なくとも一つの実装形態において、候補グループにおける候補パラメータの分布は、(例えば符号化モジュール112及び復号モジュール222において)事前定義され得る。したがって、インター予測ユニット22222は、復号モジュール222からの候補グループにおける第1のMMVD候補パラメータの分類された結果を直接的に決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、第1のMMVD候補パラメータを含む候補グループを直接的に決定することができる。本実装形態において、候補グループの各々における第1のMMVD候補パラメータは、復号モジュール222において事前定義されてもよい。
少なくとも一つの実装形態において、予測インディケーションは、ブロックユニットの予測パラメータの少なくとも一つが候補グループの特定の一つから選択されるかどうかを示すセットフラグを含むことができる。したがって、セットフラグが1であるとき、インター予測ユニット22222は、特定候補グループからブロックユニットの予測パラメータの少なくとも一つを直接的に選択することができる。その上、セットフラグが0であるとき、インター予測ユニット22222は、ブロックユニットの予測パラメータの少なくとも一つが特定候補グループから選択されていないと直接的に決定してもよい。少なくとも一つの実装形態において、セットフラグは、ブロックユニットの予測パラメータの少なくとも一つが特定の候補グループから選択されるかどうかを示してもよい。
図6に戻って参照すると、ブロック63において、予測プロセスユニット2222は、ビデオデータに基づく、ブロックユニットの複数のMMVDインディケーションを決定することができる。
少なくとも一つの実装形態において、予測インディケーションは、MMVDモードのためのベース候補インデックス、動作差分インディケーション、及び予測方向インデックスを表示するMMVDインディケーションを含むことができる。少なくとも一つの実装形態において、MMVDインディケーションは、ベース候補インデックス、動作差分インディケーション、及び予測方向インデックスの少なくとも一つを含むことができる。少なくとも一つの実装形態において、復号モジュール222は、MMVDインディケーションの対応する一つに基づいた動作パラメータの各々のための候補パラメータから予測パラメータの一つを選択することができる。例えば予測パラメータの一つは、ベース候補インデックスに基づいたベース動作の候補パラメータから選択され得る。
少なくとも一つの実装形態において、ベース候補インデックスは、予測パラメータに含まれる選択されたベース候補を示すMMVDフラグmmvd_cand_flagであってもよい。一実装形態において、ブロックユニットのベース動作が、ベース候補インデックスに基づいてベース候補から選択された双予測候補であるとき、ブロックユニットのベース動作は、第1の参照リストL0内の第1のフレーム候補、第1のフレーム候補に対応する第1のベクトル候補、第2の参照リストL1内の第2のフレーム候補、及び第2のフレーム候補に対応する第2のベクトル候補を示し得る。
少なくとも一つの実装形態において、動作差分インディケーションは、動作距離インデックス、及び動作方向インデックスを更に含んでもよい。少なくとも一つの実装形態において、動作距離インデックスは、差分距離候補からの差分の大きさを示す第1のMMVDインデックスmmvd_distance_idxとすることができ、動作方向インデックスは、差分方向候補からの差分方向を示す第2のMMVDインデックスmmvd_direction_idxとすることができる。少なくとも一つの実装形態において、動作差分インディケーションは、x座標差分及びy座標差分を含む動作差分を示す動作差分インデックスとすることができる。これにより、インター予測ユニット22222は、動作差分インデックスが示すx座標差分及びy座標差分に基づいて動作差分を決定し、選択されたベクトル候補を調整することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、予測方向インデックスに基づいた複数の予測方向候補から第1の参照リストL0及び第2の参照リストL1の少なくとも一つを選択することができる。少なくとも一つの実装形態において、ベース候補インデックスによって決定された参照リストがブロックユニットを予測するための選択された参照リストとしてプリセットされているとき、予測インディケーションにおいて予測方向インデックスが存在しなくてもよい。
少なくとも一つの実装形態において、MMVDインディケーションは、セットインデックスを含むことができる。本実装形態において、動作差分インディケーションが動作差分インデックスであるとき、セットインデックスは、ベース候補インデックス、動作差分インデックス、及び予測方向インデックスの少なくとも一つを示すことができる。本実装形態において、ベース候補インデックス、動作差分インデックス、及び予測方向インデックスから選択された少なくとも一つの表示されたインデックスは、MMVDインディケーションに含まれなくてもよく、セットインデックスに表示されず、ベース候補インデックス、動作差分インデックス、及び予測方向インデックスから選択された他のインデックスは、MMVDインディケーションに直接的に含まれてもよい。少なくとも一つの実装形態において、動作差分インディケーションが動作距離インデックス及び動作方向インデックスを含むとき、セットインデックスは、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスのうちの少なくとも一つを表示することができる。本実装形態において、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスから選択された少なくとも一つの表示されたインデックスは、MMVDインディケーションに含まれなくてもよく、セットインデックスに表示されず、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスから選択された他の表示は、MMVDインディケーションに直接的に含まれてもよい。例えば、セット動作距離インデックスのみを表すとき、復号モジュール222は、セットインデックスに基づいて差分の大きさを直接的に決定することができる。本実装形態において、セットインデックスが動作距離インデックスを表すとき、差分距離候補を候補グループに分散させてもよい。本実装形態において、ベース候補、差分方向候補、及び予測方向候補は、候補グループに含まれない。その上、MMVDインディケーションに直接的に含まれるベース候補インデックス、動作方向インデックス、及び予測方向インデックスは、セットインデックスによって表示されなくてもよい。
ブロック64において、復号モジュール222は、選択された候補グループに含まれる一つ以上の第1のMMVD候補リストから、ブロックユニットの一つ以上の第1のMMVD予測パラメータを選択することができる。
少なくとも一つの実装形態において、一つ以上の第1のMMVD予測パラメータは、ブロックユニットの予測パラメータに含まれる。少なくとも一つの実装形態において、インター予測ユニット22222は、セットインデックスに基づいて、特定の候補グループから一つ以上の第1のMMVD予測パラメータを直接的に決定することができる。少なくとも一つの実装形態において、インター予測ユニット22222は、選択された候補グループ内の一つ以上の第1のMMVD候補リストから一つ以上の第1のMMVD予測パラメータを選択することができる。
少なくとも一つの実装形態において、少なくとも一つの分類された動作パラメータの数が1に等しいとき、選択された候補グループ内の一つ以上の第1のMMVD候補リストの数は、1に等しくてもよい。したがって、インター予測ユニット22222は、選択された候補グループの内の一つの第1のMMVD候補リストから、一つの分類された動作パラメータに対応する一つの第1のMMVD予測パラメータを選択することができる。例えば、一つの第1のMMVD予測パラメータに対応する一つの分類された動作パラメータは、ブロックユニットの差分の大きさである。したがって、一つの第1のMMVD候補リストは、差分距離候補のみを含んでもよい。本実装形態において、インター予測ユニット22222は、セットインデックスに基づいて、選択された候補グループの内の一つの第1のMMVD候補リストの内の差分距離候補からブロックユニットの差分の大きさを選択することができる。
少なくとも一つの実装形態において、少なくとも一つの分類された動作パラメータの数が1より大きいとき、選択された候補グループの内の一つ以上の第1のMMVD候補リストの数は、1より大きくてもよい。したがって、インター予測ユニット22222は、選択された候補グループの内の第1のMMVD候補リストから分類された動作パラメータの内の一つに対応することができる、第1のMMVD予測パラメータの各々を選択することができる。少なくとも一つの実装形態において、分類された動作パラメータの各々が、選択された候補グループの内の第1のMMVD候補リストの内の一つに対応するため、インター予測ユニット22222は、選択された候補グループの第1のMMVD候補リストの内の対応する一つの内の第1のMMVD候補パラメータから第1のMMVD予測パラメータの各々を選択することができる。
ブロック65において、復号モジュール222は、ブロックユニットの一つ以上の第2のMMVD予測パラメータ、候補グループにおいて除外された一つ以上の第2のMMVD候補リストを選択してもよい。
少なくとも一つの実装形態において、一つ以上の第2のMMVD予測パラメータは、ブロックユニットの予測パラメータに含まれる。少なくとも一つの実装形態において、少なくとも一つの未分類の動作パラメータが候補グループ内で除外されるため、少なくとも一つの未分類の動作パラメータの内の候補パラメータは、候補グループ内で除外される一つ以上の第2のMMVD候補リストに含まれてもよい。本実装形態において、一つ以上の第2のMMVD候補リストの各々は、一つ以上の第1のMMVD候補リストとは異なる。少なくとも一つの実装形態において、少なくとも一つの未分類の動作パラメータの各々における候補パラメータは、一つ以上の第2のMMVD候補リストの対応する一つに含まれてもよい。例えば、少なくとも一つの未分類の動作パラメータがベース動作及び差分方向であるとき、ベース候補は、二つの第2のMMVD候補リストの内の一方に含まれてもよく、差分方向候補は、二つの第2のMMVD候補リストの内の他方に含まれてもよい。
少なくとも一つの実装形態において、インター予測ユニット22222は、一つ以上のMMVDインディケーションに基づいて、少なくとも一つの未分類の動作パラメータに対応し得る一つ以上の第2のMMVD予測パラメータの各々を決定することができる。少なくとも一つの実装形態において、一つ以上のMMVDインディケーションの各々は、セットインデックスとは異なる。少なくとも一つの実装形態において、インター予測ユニット22222は、一つ以上のMMVDインディケーションの内の対応する一つに基づいて、一つ以上の第2のMMVD候補リストの内の対応する一つにおける第2のMMVD候補パラメータから一つ以上の第2のMMVD予測パラメータの各々を選択することができる。例えば、少なくとも一つの分類されていない動作パラメータがベース動作及び差分方向であるとき、ブロックユニットのベース動作は、ベース候補インデックスに基づいて決定されてもよく、ブロックユニットの差分の大きさは、動作距離インデックスに基づいて決定されてもよい。
ブロック66において、復号モジュール222は、一つ以上の第1の予測パラメータ及び一つ以上の第2の予測パラメータに基づいて、ブロックユニットを再構成することができる。
少なくとも一つの実装形態において、インター予測ユニット22222は、一つ以上の第1の予測パラメータ及び一つ以上の第2の予測パラメータに基づく、ブロックユニットにおけるブロック構成要素の内の一つのための予測構成要素を生成することができる。少なくとも一つの実装形態において、第1の加算器2224は、予測された構成要素及びブロックユニットを再構成するための複数の残差構成要素に基づいて、複数の再構成された構成要素を生成してもよい。本実装形態において、第1の加算器2224は、エントロピー復号ユニット2221及び逆量子化/逆変換ユニット2223を介して、ブロックユニットの残差構成要素を受信することができる。本実装形態において、残差構成要素は、ビットストリームから決定されてもよい。少なくとも一つの実装形態において、復号モジュール222は、画像フレーム及びビデオを再構成するために、画像フレーム内の他のブロックユニットの全てを再構成することができる。
図7は、本出願の一例としての実装形態に基づく、図1のシステムにおけるソース装置11の符号化モジュール112の例としての実装形態を表す符号化モジュール712のブロック図である。少なくとも一つの実装形態において、符号化モジュール712は、予測プロセッサ(例えば予測プロセスユニット7121)、少なくとも一つの加算器(例えば第1の加算器7122及び第2の加算器7125)、量子化/逆変換プロセッサ(例えば変換/量子化ユニット7123)、逆量子化/逆変換プロセッサ(例えば逆量子化/逆変換ユニット7124)、フィルタ(例えばフィルターユニット7126)、復号された画像バッファ(例えば復号された画像バッファ7127)、及びエントロピー符号化(例えばエントロピー符号化ユニット7128)を含んでもよい。少なくとも一つの実装形態において、符号化モジュール712の予測プロセスユニット7121は、パーティションプロセッサ(例えばパーティションユニット71211)、イントラ予測プロセッサ(例えばイントラ予測ユニット71212)、及びインター予測プロセッサ(例えばインター予測ユニット71213)を更に含むことができる。少なくとも一つの実装形態において、符号化モジュール712は、ソースビデオを受信し、ビットストリームを出力するためにソースビデオを符号化することができる。
少なくとも一つの実装形態において、符号化モジュール712は、複数の画像フレームを含むソースビデオを受信し、次いで、コーディング構造に基づく画像フレームを分割することができる。少なくとも一つの実装形態において、画像フレームの各々は、少なくとも一つの画像ブロックに分割されてよい。少なくとも一つの画像ブロックは、複数の輝度サンプルを有する輝度ブロック、及び複数の色差サンプルを有する少なくとも一つの色差ブロックを含み得る。輝度ブロック及び少なくとも一つの色差ブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングブロック(CB)、それらのサブ分割、及び/又は別の同等のコーディングユニットを生成するために、更に分割されてもよい。少なくとも一つの実装形態において、符号化モジュール712は、ソースビデオの追加のサブ分割を実行することができる。本明細書で説明される本実装形態は、一般に、符号化の前及び/又は符号化の間にソースビデオがどのようにパーティションされるかにかかわらず、ビデオコーディングに適用可能であることに留意されたい。
少なくとも一つの実装形態において、符号化プロセス中に、予測プロセスユニット7121は、画像フレームの特定の一つの現在の画像ブロックを受信することができる。現在の画像ブロックは、輝度ブロックの一つ及び特定の画像フレーム内の色差ブロックの少なくとも一つであってよい。パーティションユニット71211は、現在の画像ブロックを複数のブロックユニットに分割する。イントラ予測ユニット71212は、空間予測を提供するために、現在のブロックユニットのようにフレーム内の一つ以上の隣接するブロックに対する現在のブロックユニットのイントラ予測コーディングを実行してもよい。インター予測ユニット71213は、時間予測を提供するために、一つ以上の参照画像ブロックにおける一つ以上のブロックに対する現在のブロックユニットのインター予測コーディングを実行することができる。
少なくとも一つの実装形態において、予測プロセスユニット7121は、コスト関数などのモード選択方法に基づいて、イントラ予測ユニット71212及びインター予測ユニット71213によって生成されるコーディング結果の一つを選択してもよい。少なくとも一つの実装形態において、モード選択方法は、レート歪み最適化(RDO)プロセスであってもよい。予測プロセスユニット7121は、選択されたコーディング結果を決定してもよく、残差ブロックを生成するための第1の加算器7122及び符号化されたブロックユニットを再構成するための第2の加算器7125に、選択されたコーディング結果に対応する予測ブロックを提供してもよい。少なくとも一つの実装形態において、予測プロセスユニット7121は、動作ベクトル、イントラモードインジケータ、パーティション情報、及び他のシンタックス情報などのシンタックス要素をエントロピー符号化ユニット7128に更に提供することができる。
少なくとも一つの実装形態において、イントラ予測ユニット71212は、現在のブロックユニットをイントラ予測することができる。少なくとも一つの実装形態において、イントラ予測ユニット71212は、現在のブロックユニットを符号化するために、現在のブロックユニットに隣接する再構成されたサンプルに向かうイントラ予測モードを決定してもよい。少なくとも一つの実装形態において、イントラ予測ユニット71212は、種々のイントラ予測モードを使用して、現在のブロックユニットを符号化してもよく、イントラ予測ユニット71212又は予測プロセスユニット7121は、試験されたモードから適切なイントラ予測モードを選択してもよい。少なくとも一つの実装形態において、イントラ予測ユニット71212は、交差構成要素予測モードを使用して、現在のブロックユニットのルマ構成要素に基づいて、現在のブロックユニットの二つのクロマ構成要素の一つを予測するように、現在のブロックユニットを符号化してもよい。更にイントラ予測ユニット71212は、現在のブロックユニットの二つのクロマ構成要素の他方に基づいて、現在のブロックユニット色差構成要素の第1の一つを予測してもよい。
少なくとも一つの実装形態において、インター予測ユニット71213は、上述したように、イントラ予測ユニット71212によって実行されるインター予測の代替として、現在のブロックユニットをインター予測することができる。インター予測ユニット71213は、動作を推定することにより、動作ベクトルを生成するための現在のブロックユニットの動作の推定を実行することができる。動作ベクトルは、参照画像ブロック中の参照ブロックユニットに対して、現在の画像ブロックユニット中の現在のブロックユニットの変位を示すことができる。少なくとも一つの実装形態において、インター予測ユニット71213は、復号された画像バッファ7127に格納された少なくとも一つの参照画像ブロックを受信し、受信した参照画像ブロックに基づいて動作を推定して、動作ベクトルを生成することができる。
少なくとも一つの実装形態において、第1の加算器7122は、予測プロセスユニット7121によって決定される予測ブロックを、元の現在のブロックユニットから差し引くことによって、残差ブロックを生成することができる。第1の加算器7122は、この減算演算を実行する構成要素を表すことができる。
少なくとも一つの実装形態において、変換/量子化ユニット7123は、残差ブロックに変換を適用して、残差変換係数を生成し、次いで、残差変換係数を量子化して、ビットレートをさらに低下させることができる。少なくとも一つの実装形態において、変換は、DCT、DST、AMT、MDNSST、HyGT、信号依存変換、KLT、ウェーブレット変換、整数変換、サブバンド変換、又は概念的に同様の変換の内の一つとすることができる。少なくとも一つの実装形態において、変換は、残差情報をピクセル値領域から周波数ドメインなどの変換領域に変換することができる。少なくとも一つの実装形態において、量子化の度合いは、量子化パラメータを調整することによって修正されてもよい。少なくとも一つの実装形態において、変換/量子化ユニット7123は、量子化変換係数を含むマトリックスのスキャンを行うことができる。また、エントロピー符号化ユニット7128は、スキャンを行うことができる。
少なくとも一つの実装形態において、エントロピー符号化ユニット7128は、予測プロセスユニット7121及び変換/量子化ユニット7123から、量子化パラメータ、変換データ、動作ベクトル、イントラモード、パーティション情報、及び他のシンタックス情報を含む複数のシンタックス要素を受信することができ、シンタックス要素をビットストリームに符号化することができる。少なくとも一つの実装形態において、エントロピー符号化ユニット7128は、量子化変換係数をエントロピー符号化してもよい。少なくとも一つの実装形態において、エントロピー符号化ユニット7128は、符号化ビットストリームを生成するために、CAVLC、CABAC、SBAC、PIPEコーディング、又は別のエントロピーコーディング技法を実行することができる。少なくとも一つの実装形態において、符号化されたビットストリームは、別の装置(例えば宛先装置12)に送信されてもよく、又は後に送信又は検索するためにアーカイブされてもよい。
少なくとも一つの実装形態において、逆量子化/逆変換ユニット7124は、逆量子化及び逆変換を適用し、後に参照ブロックとして使用するために、画素ドメイン内の残差ブロックを再構成してもよい。少なくとも一つの実装形態において、第2の加算器7125は、復号された画像バッファ7127に格納するための再構成されたブロックを形成するために、再構成された残差ブロックを、予測プロセスユニット7121から供給された予測ブロックに追加することができる。
少なくとも一つの実装形態において、フィルターユニット7126は、再構成されたブロックからブロック加工物を除去するために、デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及び/又はALFを含むことができる。デブロッキングフィルタ、SAOフィルタ、バイラテラルフィルタ、及びALFに加えて、追加のフィルタ(ループ又はポストループにおいて)を使用することもできる。このようなフィルタは、簡潔にするために示されていないが、所望であれば、第2の加算器7125の出力をフィルタリングすることができる。
少なくとも一つの実装形態において、復号された画像バッファ7127は、例えば、イントラ又はインターコーディングモードにおいて、符号化モジュール712によってビデオを符号化する際に使用するための参照ブロックを保存する参照ピクチャメモリとすることができる。復号された画像バッファ7127は、(SDRAM、MRAM、RRAMを含む)DRAMのような様々なメモリデバイス、又は他の種類のメモリデバイスのいずれかによって形成されてもよい。少なくとも一つの実装形態において、復号された画像バッファ7127は、符号化モジュール712の他の構成要素とオンチップであってもよく、又はこれらの構成要素に対してオフチップであってもよい。
少なくとも一つの実装形態において、符号化モジュール712は、図3に示されるような複数の候補グループ内の動作ベクトル差分(MMVD)候補パラメータを伴う複数のマージモードに基づいてブロックユニットを予測するための予測方法を実行することができる。図3の方法は、例えば、図1及び図7に示される設定を使用して実行されてもよく、これらの図の様々な要素は、例示的な方法を説明する際に参照される。更に、図3のブロックの順序は、例示的なものにすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
ブロック31において、符号化モジュール712は、ビデオデータに基づく画像フレームからブロックユニットを決定し、ブロックユニットのための複数の候補パラメータを決定する。
少なくとも一つの実装形態において、ビデオデータはビデオであってよい。ソース装置11は、ソースモジュール111によってビデオを受信することができる。符号化モジュール712は、ビデオから画像フレームを決定し、画像フレームを分割してブロックユニットを決定することができる。
少なくとも一つの実装形態において、ソース装置11の予測プロセスユニット7121は、パーティションユニット71211を介してビデオからブロックユニットを決定することができ、次いで、符号化モジュール712は、パーティションユニット71211のパーティション結果に基づいて、複数のパーティションインディケーションをビットストリームに提供することができる。
少なくとも一つの実装形態において、ソース装置11は、ブロックユニットのための複数の候補モードから選択された動作ベクトル差分(MMVD)モードを伴うマージモードの候補パラメータを決定し、候補パラメータから複数の予測パラメータを選択してブロックユニットを予測することができる。本実施形態において、ソース装置11は、ビットストリーム内のブロックユニットの予測パラメータを示す複数の予測インディケーションを宛先装置12に提供することができる。少なくとも一つの実装形態において、予測インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。
少なくとも一つの実装形態において、MMVDモードは、複数の動作パラメータを含むことができる。少なくとも一つの実装形態において、動作パラメータは、ベース動作、動作差分、及び予測方向を含むことができる。少なくとも一つの実装形態において、動作パラメータの各々は、候補パラメータを含むことができる。少なくとも一つの実装形態において、予測インディケーションは、MMVDモードのためのベース候補インデックス、動作差分インディケーション、及び予測方向インデックスの少なくとも一つを含むことができる。少なくとも一つの実装形態において、予測インディケーションは、動作パラメータの各々のためのビットストリームに提供され得る。例えばベース候補インデックスは、ベース動作のためにビットストリームに提供されてもよい。
少なくとも一つの実装形態において、セットインデックスは、動作差分インディケーションが動作距離インデックス及び動作方向インデックスを含むとき、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスの少なくとも一つを表すことができる。例えば、セットインデックスが動作距離インデックスのみを表すとき、符号化モジュール712は、差分の大きさを示すためにセットインデックスをビットストリームに提供することができる。
ブロック32において、符号化モジュール712は、各々が候補パラメータから選択された複数のグループパラメータを含む複数の候補グループを決定してもよい。
少なくとも一つの実装形態において、インター予測ユニット71213は、ブロックユニットの前に符号化された複数の以前のブロックを決定することができる。本実装形態において、以前のブロックは、候補モードから選択された複数の以前のモードによって予測される。少なくとも一つの実装形態において、以前のモードがMMVDモードであるとき、以前のモードは、候補パラメータから選択された複数の以前のパラメータを含むことができる。したがって、インター予測ユニット71213は、以前のブロックの以前のパラメータを決定し、予測モードの以前のパラメータと同一又は類似の候補パラメータを第1の候補グループに分類することができる。例えば、インター予測ユニット71213は、差分大きさを表すために、セットインデックスを使用するとき、インター予測ユニット71213は、候補パラメータ内の差分距離候補を、以前のブロックの以前のモードの差分大きさと比較する。
少なくとも一つの実装形態において、候補グループ内の候補パラメータの分布は、(例えば符号化モジュール712及び復号モジュール122内で)事前定義され得る。したがって、インター予測ユニット71213は、符号化モジュール712からの候補グループ内の候補パラメータの分類された結果を直接的に決定してもよい。本実装形態において、候補グループの各々における候補パラメータは、符号化モジュール712において事前定義されてもよい。
ブロック33において、符号化モジュール712は、ブロックユニットを予測するための候補パラメータのうちの特定の一つが第1の候補グループに含まれるかどうかを決定することができる。ブロックユニットの特定の候補パラメータが第1の候補グループに含まれる場合、手順は、ブロック34に進むことができる。ブロックユニットの特定の候補パラメータが第1の候補グループに含まれていない場合、手順は、ブロック35に進むことができる。
少なくとも一つの実装形態において、ブロックユニットがMMVDモードにおいて予測されるとき、符号化モジュール712は、ブロックユニットの特定の予測候補が第1の候補グループに含まれるかどうかを決定することができる。符号化モジュール712が、ブロックユニットの特定の予測候補が第1の候補グループに含まれると決定したとき、符号化モジュール712は、1に等しいセットフラグをビットストリームに提供することができる。符号化モジュール712が、ブロックユニットの特定の予測候補が第1の候補グループに含まれていないと決定したとき、符号化モジュール712は、ゼロに等しいセットフラグをビットストリームに提供することができる。少なくとも一つの実装形態において、セットフラグは、ブロックユニットの特定の候補パラメータが最初の候補グループに含まれるかどうかを示すことができる。
ブロック34において、符号化モジュール712は、セットインデックスに対応する特定の候補パラメータに基づいて予測パラメータを決定することができる。
少なくとも一つの実装形態において、第1の候補グループ内のグループ候補の各々は、セットインデックスの一つのインデックス値に対応することができる。したがって、インター予測ユニット71213は、特定の予測候補が第1候補グループに含まれるとき、特定の候補パラメータに対応するインデックス値を決定し、セットインデックスをビットストリームに提供することができる。
ブロック35において、符号化モジュール712は、残りの候補グループ内の特定の候補パラメータに基づいて予測パラメータを決定することができる。
少なくとも一つの実装形態において、残りの候補グループ内の予測候補の各々は、グループインデックスの一つのインデックス値に対応する。したがって、インター予測ユニット91213は、特定の予測候補が第1の候補グループに含まれないとき、特定の候補パラメータに対応するインデックス値を決定し、グループインデックスをビットストリームに提供することができる。
ブロック36において、符号化モジュール712は、決定された予測パラメータに基づいてブロックユニットを再構成することができる。
少なくとも一つの実装形態において、インター予測ユニット71213は、決定された予測パラメータに基づくブロックユニット内のブロック構成要素の一つに対する予測された構成要素を生成することができる。少なくとも一つの実装形態において、第1の加算器7122は、予測された構成要素及び画像フレームを予測するための複数の元の構成要素に基づいて、複数の残差構成要素を生成することができる。本実装形態において、元の構成要素は、ビデオの画像フレームから直接的に決定される。本実装形態において、変換/量子化ユニット9123及びエントロピー符号化ユニット9128は、残差構成要素を符号化し、宛先装置12にビットストリームを提供することができる。さらに、第2の加算器9125は、残差構成要素及び予測された構成要素に基づいて、ブロックユニットをさらに再構成し、複数の再構成した構成要素を生成することができる。したがって、ブロックユニットの再構成された構成要素は、次のブロックユニットを予測するための参照ブロックとすることができる。
図8は、本出願の一例としての実装形態に基づく、複数の候補グループ内の動作ベクトル差分(MMVD)候補パラメータを伴う複数のマージモードに基づいてブロックユニットを予測するための一例としての予測方法のフローチャートを示す。本例の方法は、本方法を実行する様々な方法があるため、単に例として提供される。以下に説明する方法は、例えば、図1及び図2に示す設定を用いて実行することができ、これらの図の様々な要素は、例示的な方法を説明する際に参照される。図8に示すブロックの各々は、例示的な方法において実行される一つ以上のプロセス、方法、又はサブルーチンを表すことができる。更にブロックの順序は例示にすぎず、変更することができる。本開示から逸脱することなく、追加のブロックが追加されてもよく、又はより少ないブロックが利用されてもよい。
ブロック81において、符号化モジュール712は、ビデオデータに基づく画像フレームからブロックユニットを決定することができる。
少なくとも一つの実装形態において、ビデオデータはビデオであってよい。ソース装置11は、ソースモジュール111によってビデオを受信することができる。符号化モジュール712は、ビデオから画像フレームを決定し、画像フレームを分割してブロックユニットを決定することができる。少なくとも一つの実装形態において、ソース装置11の予測プロセスユニット7121は、パーティションユニット71211を介してビデオからブロックユニットを決定することができ、次いで、符号化モジュール712は、パーティションユニット71211のパーティション結果に基づいて、複数のパーティションインディケーションをビットストリームに提供することができる。
ブロック82において、符号化モジュール712は、複数の候補グループ内の複数の第1のMMVD候補パラメータから、ブロックユニットの動作ベクトル差分(MMVD)予測パラメータを伴う一つ以上の第1のマージモードを決定し、候補グループ内で除外された複数の第2のMMVD候補パラメータから、ブロックユニットの一つ以上の第2のMMVD予測パラメータを決定することができる。
少なくとも一つの実装形態において、ブロックユニットが複数の候補モードから選択されたMMVDモードにおいて予測されるとき、符号化モジュール712は、複数のMMVD候補パラメータを決定し、MMVD候補パラメータから複数のMMVD予測パラメータを選択することができる。
少なくとも一つの実装形態において、MMVDモードは、複数の動作パラメータを含むことができる。少なくとも一つの実装形態において、動作パラメータは、ベース動作、動作差分、及び予測方向を含むことができる。少なくとも一つの実装形態において、動作パラメータは、ベース動作、差分大きさ、差分方向、及び予測方向を含んでもよい。少なくとも一つの実装形態において、動作パラメータの各々は、MMVD候補パラメータを含んでもよい。
少なくとも一つの実装形態において、MMVD候補パラメータは、第1のMMVD候補パラメータ及び第2のMMVD候補パラメータを含むことができ、動作パラメータは、一つ以上の第1の動作パラメータ及び一つ以上の第2の動作パラメータに分離され得る。少なくとも一つの実装形態において、一つ以上の第1のMMVD予測パラメータを選択するための第1のMMVD候補パラメータは、一つ以上の第1の動作パラメータに対応する候補グループ内に分散されたMMVD候補パラメータとすることができ、一つ以上の第2のMMVD予測パラメータを選択するための第2のMMVD候補パラメータは、一つ以上の第2の動作パラメータに対応し、候補グループ内において除外されたMMVD候補パラメータとすることができる。少なくとも一つの実装形態において、候補グループの各々は、一つ以上の第1の動作パラメータの各々に対応する第1のMMVD候補パラメータを含んでもよい。例えば、一つ以上の第1の動作パラメータは、差分の大きさ及び差分方向である。本実装形態において、候補グループの各々は、差分の大きさの第1のMMVD候補パラメータ及び差分方向の第1のMMVD候補パラメータを含むことができる。例えば、一つ以上の第1の動作パラメータは、差分の大きさである。本実装形態において、候補グループの各々は、差分の大きさの第1のMMVD候補パラメータを含むことができる。
少なくとも一つの実装形態において、候補グループ内の第1のMMVD候補パラメータの分布は、符号化モジュール712及び復号モジュール122内で事前定義されることができる。したがって、インター予測ユニット71213は、候補グループ内の第1のMMVD候補パラメータの事前定義された分布を直接的に決定することができる。
ブロック83において、符号化モジュール712は、ブロックユニットに対応する候補グループの特定の一つを示すセットフラグ、特定の候補グループに含まれる一つ以上の第1のMMVD予測パラメータを示すセットインデックス、及び候補グループにおいて除外された一つ以上の第2のMMVD予測パラメータを示す一つ以上のMMVDインデックスを決定することができる。
本実装形態において、符号化モジュール712は、ブロックユニットのMMVD予測パラメータを示す複数の予測インディケーションを宛先装置12に提供することができる。少なくとも一つの実装形態において、予測インディケーションは、複数のフラグ及び複数のインデックスを含むことができる。少なくとも一つの実装形態において、予測インディケーションは、動作パラメータを示すための、MMVDモードのための、ベース候補インデックス、動作差分インディケーション、及び予測方向インデックスの少なくとも一つを含むことができる。
少なくとも一つの実装形態において、動作差分インディケーションが動作距離インデックス及び動作方向インデックスを含むとき、セットインデックスは、ベース候補インデックス、動作距離インデックス、動作方向インデックス、及び予測方向インデックスの少なくとも一つを表すことができる。例えば、セットインデックスが動作距離インデックスのみを表すとき、符号化モジュール712は、差分の大きさを示すためにセットインデックスを提供することができる。
少なくとも一つの実装形態において、符号化モジュール712は、ブロックユニットの一つ以上の第1のMMVD予測パラメータが候補グループの内の第1の一つに含まれるかどうかを決定することができる。符号化モジュール712が、ブロックユニットの一つ以上の第1のMMVD予測パラメータが第1の候補グループに含まれると決定したとき、符号化モジュール712は、1に等しいセットフラグを提供することができる。符号化モジュール712が、ブロックユニットの一つ以上の第1のMMVD予測パラメータが第1の候補グループに含まれていないと決定したとき、符号化モジュール712は、ゼロに等しいセットフラグを提供することができる。少なくとも一つの実装形態において、セットフラグは、ブロックユニットの一つ以上の第1のMMVD予測パラメータが第1の候補グループに含まれるかどうかを示してもよい。
少なくとも一つの実装形態において、候補グループ内の第1のMMVD候補パラメータの各々は、セットインデックスの複数の第1のインデックス値の一つに対応する。したがって、符号化モジュール712は、セットインデックスのための一つ以上の第1のMMVD予測パラメータに対応する第1のインデックス値の特定の一つを決定することができる。少なくとも一つの実装形態において、第2のMMVD候補パラメータの各々は、一つ以上のMMVDインデックスの対応する一つのための複数の第2のインデックス値の一つに対応する。したがって、インター予測ユニット91213は、一つ以上のMMVDインデックスの対応する一つのための一つ以上の第1のMMVD予測パラメータの特定の一つに対応する第2のインデックス値の特定の一つを決定することができる。
ブロック84において、符号化モジュール712は、セットフラグ、セットインデックス、及び一つ以上のMMVDインデックスをビットストリームに提供することができる。
少なくとも一つの実装形態において、インター予測ユニット71213は、一つ以上の第1のMMVD予測パラメータ及び一つ以上の第2のMMVD予測パラメータに基づく、ブロックユニット内のブロック構成要素の一つのための予測された構成要素を生成することができる。少なくとも一つの実装形態において、第1の加算器7122は、予測された構成要素及び画像フレームを予測するための複数の元の構成要素に基づいて、複数の残差構成要素を生成することができる。本実装形態において、元の構成要素は、ビデオの画像フレームから直接的に決定される。本実装形態において、変換/量子化ユニット9123及びエントロピー符号化ユニット9128は、残差構成要素を符号化することができる。少なくとも一つの実装形態において、符号化された残差構成要素、セットフラグ、セットインデックス、及び一つ以上のMMVDインデックスは、ビットストリームに宛先装置12に提供されてもよい。
上記の説明から、様々な技術が、これらの概念の範囲から逸脱することなく、本出願で説明される概念を実行するために使用され得ることが明らかである。更に、これらの概念は、特定の実施を特に参照して説明されたが、当業者は、これらの概念の範囲から逸脱することなく、形態及び詳細において変更がなされ得ることを認識するであろう。したがって、説明された実施形態は、全ての点において、例示的なものであり、限定的なものではないと考えられるべきである。また、本出願は、上述の特定の実施形態に限定されるものではなく、本開示の範囲から逸脱することなく、多くの再構成、修正、及び置換が可能であることを理解されたい。
図1は、本出願の一例としての実装形態に基づく、ビデオデータを符号化及び復号するように設定された例示的なシステムのブロック図である。
図2は、本出願の一例としての実装形態に基づく、図1のシステムにおける宛先装置の復号モジュールの一例のブロック図である。
図3は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数の候補パラメータに基づいてブロックユニットを再構成するための一例の再構成方法のフローチャートを示す。
図4Aは、本出願の例としての実装形態に基づく、ブロックユニット及び複数の検索エリアの概略図である。
図4Bは、本出願の例としての実装形態に基づく、ブロックユニット及び複数の検索エリアの概略図である。
図4Cは、本出願の例としての実装形態に基づく、ブロックユニット及び複数の検索エリアの概略図である。
図5は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。
図6は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを再構成するための一例としての再構成方法のフローチャートを示す。
図7は、本出願の一例としての実装形態に基づく、図1のシステムにおけるソース装置の符号化モジュールの一例のブロック図である。
図8は、本出願の一例としての実装形態に基づく、複数の候補グループ内の複数のMMVD候補パラメータに基づいてブロックユニットを予測するための一例としての予測方法のフローチャートを示す。