本願は、ビデオデータインター予測方法及び装置、ビデオエンコーダ、及びビデオデコーダを提供し、ビデオ伝送のビットオーバーヘッドを減らし、符号化/復号化効率を改善する。
第1態様に従って、ビデオデータインター予測方法が提供される。方法は、現在の画像ブロックの候補動き情報リストを決定する段階であって、候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを有し、複数のインデックス情報は、1対1で、複数の候補動き情報グループに対応し、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置される、段階と、候補動き情報リストからターゲット動き情報を決定する段階であって、ターゲット動き情報は、少なくとも1つの第1候補動き情報グループ及び少なくとも1つの第2候補動き情報グループにおける、スクリーニングルールを満たす動き情報グループである、段階と、ターゲット動き情報に基づいて現在の画像ブロックに対してインター予測を実行する段階と、を備える。
第1隣接画像ブロック及び第2隣接画像ブロックは、本明細書では、異なる方式で候補動き情報グループを取得する処理において、現在の画像ブロックの空間的に横断した隣接するブロック、及び/又は現在の画像ブロックの時間的に横断した隣接するブロックの間を区別するために単に用いられるということが理解されるべきである。第1隣接画像ブロックは、現在の画像ブロックの空間的に隣接するブロック及び/又は現在の画像ブロックの時間的に隣接するブロックを含んでよい。第2隣接画像ブロックは、現在の画像ブロックの空間的に隣接するブロック及び/又は現在の画像ブロックの時間的に隣接するブロックを含んでよい。
第1隣接画像ブロック上の予め設定された位置は、第1隣接画像ブロックの隅位置、例えば第1隣接画像ブロックの左上隅及び右上隅、又は第1隣接画像ブロックの左上隅及び左下隅、又は第1隣接画像ブロックの左上隅、左下隅、及び右上隅と理解されてよいということに留意すべきである。現在の画像ブロック上の少なくとも2つの予め設定された位置は、現在の画像ブロックの少なくとも2つの隅位置として理解されてよく、また、現在の画像ブロックの少なくとも2つの制御点、例えば、現在の画像ブロックの左上隅及び右上隅、又は現在の画像ブロックの左上隅及び左下隅、又は現在の画像ブロックの左上隅、左下隅、及び右上隅と称されてよい。
例において、ターゲット動き情報がスクリーニングルールを満たす動き情報グループであるということは、第1候補動き情報グループ又は第2候補動き情報グループを、候補動き情報リストから決定することとして理解されてよく、ここで、レート歪みコストは、ターゲット動き情報が現在のコーディングブロックの符号化に用いられる場合に最も低い。
本実施形態において提供されるインター予測方法に従って、エンコーダ側またはデコーダ側は、2つのタイプの候補動き情報グループを含む候補動き情報リストを構成する。2つのタイプの候補動き情報グループは、一様に統合されたインデックス情報を有する。候補動き情報グループの2つのタイプのうちの一方が、現在の画像ブロックに適用可能ではない場合に、エンコーダ側は、候補動き情報リストに含まれる他方のタイプの候補動き情報グループからターゲット動き情報を選択し、ターゲット動き情報のインデックス情報を、ビットストリームを用いてデコーダ側に送信してよい。候補動き情報リストにおける候補動き情報グループが、一意のインデックス情報を有するので、エンコーダ側は、エンコーダ側により用いられる動き推定方法を示す指示情報を、ビットストリームにおいて転送する必要が無い。これは、ビデオ伝送のビットオーバーヘッドを減らす。
任意で、第1候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数未満又は等しい。
第1候補動き情報グループは、運動モデルベースの動き情報グループであり、第1候補動き情報グループに基づいて符号化/復号化を実行する効率は、第2候補動き情報グループに基づいて符号化/復号化を実行する効率より高い。そのため、第1候補動き情報グループがターゲット動き情報であるという比較的高い確率がある。このように、第1候補動き情報グループのインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
任意で、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、候補動き情報リストに最初に加えられる動き情報グループに対応し、第2インデックス情報は、候補動き情報リストにその後に加えられる動き情報グループに対応し、現在の画像ブロックの候補動き情報リストを決定することは、最初に第1候補動き情報グループを候補動き情報リストに加えて、その後、第2候補動き情報グループを候補動き情報リストに加えることを含む。
第1候補動き情報グループは、運動モデルベースの動き情報グループであり、第1候補動き情報グループに基づいて符号化/復号化を実行する効率は、第2候補動き情報グループに基づいて符号化/復号化を実行する効率より高い。そのため、第1候補動き情報グループがターゲット動き情報であるという比較的高い確率がある。このように、第1候補動き情報グループのインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
任意で、現在の画像ブロックの候補動き情報リストを決定する段階は、第1隣接画像ブロックが並進運動モデルを用いる隣接画像ブロックである場合に、第1隣接画像ブロックの動き情報を、候補動き情報リストに、第1候補動き情報グループとして加える段階、及び/又は、第1隣接画像ブロックが非並進運動モデルを用いる画像ブロックである場合に、第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を導出する段階、及び、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を、候補動き情報リストに、第1候補動き情報グループとして加える段階を有する。
非並進運動モデルは、様々なアフィン運動モデル、例えば、4パラメータアフィン運動モデル、6パラメータアフィン運動モデル、又は8パラメータアフィン運動モデルを含んでよいが、これらに限定されるものではないということは理解されるべきである。
第1隣接画像ブロックの運動モデルが並進運動モデルである場合に、第1隣接画像ブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして直接加えられてよい。これは、画像圧縮効率を改善する。第1隣接画像ブロックの運動モデルが非並進運動モデルである場合に、第1候補動き情報グループは、非並進運動モデルに対応する式に従って及び第1隣接画像ブロック上の予め設定された位置の動き情報に基づいて、生成される必要がある。
任意で、第1隣接画像ブロックは、並進運動モデルを用いる第1隣接画像ブロックと、非並進運動モデルを用いる第1隣接画像ブロックとを含み、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、候補動き情報リストに最初に加えられる動き情報グループに対応し、第2インデックス情報は、候補動き情報リストにその後加えられる動き情報グループに対応する。
現在の画像ブロックの候補動き情報リストを決定することは、非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量より多い又は等しい場合に、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進モデルを用いる第1隣接画像ブロックの運動モデルに基づいて、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を導出すること、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を、候補動き情報リストに第1候補動き情報グループとして加えること、及び、その後、第2候補動き情報グループを候補動き情報リストに加えることを含む。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量より多い又は等しい場合に、そのことは、現在の画像ブロックが非並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、非並進運動モデルを用いる第1隣接画像ブロックに基づいて導出される第1候補動き情報グループは、候補動き情報リストに最初に加えられてよく、その後、第2候補動き情報グループは、候補動き情報リストに加えられる。候補動き情報リストに最初に加えられる動き情報グループのインデックス情報のビットの数は、比較的少なく、ターゲット動き情報が候補動き情報リストに最初に加えられる動き情報グループであるという比較的高い確率がある。そのため、本実施形態は、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
任意で、現在の画像ブロックの候補動き情報リストを決定することは、候補動き情報リストの長さが、長さ閾値より小さく、第1隣接画像ブロックが並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループを、候補動き情報リストに第1候補動き情報グループとして加えること、及び、候補動き情報リストの長さが、依然として長さ閾値より小さい場合に、ゼロ動き情報を候補動き情報リストに加えることをさらに含む。
候補動き情報リストの長さは、本明細書では、候補動き情報リストに既に加えられている候補動き情報グループの数と理解されてよいということは理解されるべきである。長さ閾値は、本明細書では、候補動き情報リストにおける候補動き情報グループの予め設定された最大数と理解されてよい。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接画像ブロックが、並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループは、第1候補動き情報グループとして候補動き情報リストに加えられ、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。
任意で、非並進運動モデルを用いる第1隣接画像ブロックの数が閾値量より多いまたは等しい場合に、第3候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数未満であり、第3候補動き情報グループは、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進運動モデルを用いる第1隣接画像ブロックの運動モデルに基づいて導出される第1候補動き情報グループである。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量より多い又は等しい場合に、そのことは、現在の画像ブロックが非並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、非並進運動モデルを用いる第1隣接画像ブロックに基づいて導出される第1候補動き情報グループ(すなわち、第3候補動き情報グループ)のインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。ターゲット動き情報が第3候補動き情報グループである比較的高い確率がある。そのため、本実施形態は、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
任意で、候補動き情報リストの長さが長さ閾値より小さく、第1隣接画像ブロックがさらに、並進運動モデルを用いる第1隣接画像ブロックを有する場合に、候補動き情報リストはさらに、並進運動モデルを用いる第1隣接画像ブロックの動き情報を有し、並進運動モデルを用いる第1隣接画像ブロックの動き情報は、第1候補動き情報グループであり、並進運動モデルを用いる第1隣接画像ブロックの動き情報のインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より大きいまたは等しい。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接画像ブロックが並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして加えられ、第1候補動き情報グループのインデックス情報は、比較的多い数のビットを有するインデックス情報に設定され、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。
任意で、複数の第1隣接画像ブロックは、並進運動モデルを用いる第1隣接画像ブロックと、非並進運動モデルを用いる第1隣接画像ブロックとを含み、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、候補動き情報リストに最初に加えられる動き情報グループに対応し、第2インデックス情報は、候補動き情報リストにその後加えられる動き情報グループに対応する。
現在の画像ブロックの候補動き情報リストを決定することは、非並進運動モデルを用いる第1隣接画像ブロックの数が閾値量未満又は等しい場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループを候補動き情報リストに第1候補動き情報グループとして最初に加え、その後、第2候補動き情報グループを候補動き情報リストに加えることを含む。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量未満又は等しい場合に、そのことは、現在の画像ブロックが非並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして最初に加えられてよく、その後、第2候補動き情報グループは、候補動き情報リストに加えられる。候補動き情報リストに最初に加えられる動き情報グループのインデックス情報のビットの数は、比較的小さく、ターゲット動き情報が候補動き情報リストに最初に加えられる動き情報グループである比較的高い確率がある。そのため、本実施形態は、ビデオ伝送のビットの数を減らすことに役立つ。
任意で、現在の画像ブロックの候補動き情報リストを決定することは、候補動き情報リストの長さが長さ閾値より小さく、第1隣接画像ブロックが非並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進運動モデルを用いる第1隣接画像ブロックの運動モデルに基づいて、現在の画像ブロック上の少なくとも2つの予め設定された位置の動き情報をさらに導出し、候補動き情報リストに、第1候補動き情報グループとして、現在の画像ブロック上の少なくとも2つの予め設定された位置の動き情報を追加すること、及び候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報を候補動き情報リストに加えることをさらに含む。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接画像ブロックが、非並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、非並進運動モデルを用いる第1隣接画像ブロックの動き情報グループに基づいて導出される第1候補動き情報グループは、候補動き情報リストに加えられ、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。このように、ターゲット動き情報の選択範囲は、拡張されることができる。
任意で、非並進運動モデルを用いる第1隣接画像ブロックの数が閾値量未満または等しい場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報は、第1候補動き情報グループであり、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より小さい。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量未満又は等しい場合に、そのことは、現在の画像ブロックが並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループは、第1候補動き情報グループとして用いられてよく、第1候補動き情報グループのインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定される。ターゲット動き情報が第1候補動き情報グループである比較的高い確率がある。そのため、本実施形態は、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
任意で、候補動き情報リストの長さが長さ閾値より小さく、第1隣接画像ブロックがさらに、非並進運動モデルを用いる第1隣接画像ブロックを有する場合に、候補動き情報リストはさらに、第4候補動き情報グループを有し、第4候補動き情報グループは、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進運動モデルを用いる第1隣接画像ブロックの運動モデルに基づいて導出される第1候補動き情報グループであり、第4候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より大きい又は等しい。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接画像ブロックが非並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、非並進運動モデルを用いる第1隣接画像ブロックの動き情報グループに基づいて導出される動き情報グループは、候補動き情報リストに第1候補動き情報グループとして加えられ、第1候補動き情報グループのインデックス情報は、比較的多い数のビットを有するインデックス情報に設定され、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。このように、ターゲット動き情報の選択範囲は、拡張されることができる。
任意で、第1候補動き情報グループ及び第2候補動き情報グループの両方は、現在の画像ブロック上の第1グループの位置の動き情報であり、現在の画像ブロック上の少なくとも2つの予め設定された位置は、第2グループの位置であり、現在の画像ブロックの候補動き情報リストを決定する段階は、第2グループの位置が第1グループの位置とは異なる場合に、位置変換式に従って及び第2の位置に対応する動き情報に基づいて、第2候補動き情報グループを導出する段階を有する。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得された候補動き情報リストにおける全ての動き情報グループは、同じ位置の動き情報である。これは、動き推定の複雑性を減らす。
任意で、第1候補動き情報グループは、現在の画像ブロック上の第1グループの位置の動き情報であり、第2候補動き情報グループは、現在の画像ブロック上の第3グループの位置の動き情報であり、方法はさらに、第1グループの位置が第3グループの位置とは異なる場合に、位置変換式に従って及び第2候補動き情報グループに基づいて、第5候補動き情報グループを導出する段階を備え、第5候補動き情報グループに対応する位置は、第1グループの位置と同じである。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得された候補動き情報リストにおける全ての動き情報グループは、同じ位置の動き情報である。これは、動き推定の複雑性を減らす。
第2態様に従って、本願は、第1態様において任意の方法を実施するように構成されるいくつかの機能ユニットを含むビデオデータインター予測の装置を提供する。例えば、ビデオデータインター予測の装置は、現在の画像ブロックの候補動き情報リストを決定するように構成される候補動き情報リスト決定ユニットであって、候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを有し、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置される、候補動き情報リスト決定ユニットと、候補動き情報リストからターゲット動き情報を決定するように構成されるインター予測処理ユニットとを有してよく、ターゲット動き情報は、少なくとも1つの第1候補動き情報グループおよび少なくとも1つの第2候補動き情報グループにおける、スクリーニングルールを満たす動き情報グループであり、インター予測処理ユニットはさらに、ターゲット動き情報に基づいて現在の画像ブロックに対するインター予測を実行するように構成される。
インター予測の装置は、例えば、ビデオ符号化装置(ビデオエンコーダ)又はビデオ復号化装置(ビデオデコーダ)であってよい。
第3態様に従って、本願は、ビデオエンコーダを提供する。ビデオエンコーダは、画像ブロックを符号化するように構成され、ビデオエンコーダは、第2態様に従ったインター予測の装置であって、インター予測の装置は、ターゲット動き情報に基づいてコーディング画像ブロックの予測ブロックを予測するように構成され、ターゲット動き情報は、スクリーニングルールを満たす、例えば、ターゲット動き情報が現在の画像ブロックを符号化するために用いられる場合にレート歪みコストが最も低い、候補動き情報リストにおける動き情報グループである、インター予測の装置と、ターゲット動き情報のインデックス情報を、ビットストリームに符号化するように構成されるエントロピーエンコーダであって、ターゲット動き情報のインデックス情報は、候補動き情報リストからターゲット動き情報を決定するために用いられる、エントロピーエンコーダと、予測ブロックに基づいてコーディング画像ブロックを再構成するように構成される再構成部と、を備える。
第4態様に従って、本願は、ビデオデコーダを提供する。ビデオデコーダは、画像ブロックを取得するべくビットストリームを復号化するように構成され、ビデオデコーダは、ターゲット動き情報のインデックス情報を取得するべく、ビットストリームを復号化するように構成されるエントロピーデコーダと、第2態様に従ったインター予測の装置であって、インター予測の装置は、ターゲット動き情報に基づいて、コーディング画像ブロックの予測ブロックを予測するように構成され、ターゲット動き情報は、候補動き情報リストにおける復号化されたインデックス情報に対応する動き情報グループである、インター予測の装置と、予測ブロックに基づいてコーディング画像ブロックを再構成するように構成される再構成部とを備える。
第5態様に従って、本願は、ビデオデータ符号化デバイスを提供する。デバイスは、ビデオデータを格納するように構成されるメモリとビデオエンコーダとを含む。ビデオデータは1又は複数の画像ブロックを含み、ビデオエンコーダは、現在の画像ブロックの候補動き情報リストを決定するように構成され、候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを含み、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置され、ビデオエンコーダは、候補動き情報リストからターゲット動き情報を決定するように構成され、ターゲット動き情報は、少なくとも1つの第1候補動き情報グループおよび少なくとも1つの第2候補動き情報グループにおける、スクリーニングルールを満たす動き情報グループであり、ビデオエンコーダは、ターゲット動き情報に基づいて現在の画像ブロックに対してインター予測を実行し、ターゲット動き情報のインデックス情報を含むビットストリームを送信するように構成される。
第6態様に従って、本願は、ビデオデータ復号化デバイスを提供する。デバイスは、ビットストリーム形式のビデオデータを格納するように構成されるメモリと、インデックス情報を取得するべく、ビットストリームを復号化するように構成されるビデオデコーダとを含む。インデックス情報は、ターゲット動き情報を決定するために用いられ、ビデオデコーダは、現在の画像ブロックの候補動き情報リストを決定するように構成され、候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを有し、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置され、ビデオデコーダは、インデックス情報に基づいて候補動き情報リストからターゲット動き情報を決定し、ターゲット動き情報に基づいて現在の画像ブロックに対するインター予測を実行するように構成される。
第7態様に従って、本願は、互いに連結された不揮発性メモリ及びプロセッサを含む符号化デバイスを提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出し、第1態様のいずれかの方法における一部又はすべての段階を実行する。
第8態様に従って、本願は、互いに連結された不揮発性メモリ及びプロセッサを含む復号化デバイスを提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出し、第1態様のいずれかの方法における一部又はすべての段階を実行する。
第9態様に従って、本願は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、プログラムコードを格納し、プログラムコードは、第1態様のいずれかの方法における一部又はすべての段階を実行するために用いられる命令を含む。
第10態様に従って、本願の実施形態は、コンピュータプログラム製品を提供する。コンピュータプログラム製品がコンピュータ上で実行される場合、コンピュータは、第1態様のいずれかの方法における一部又はすべての段階を実行することが可能となる。
本願の第2から第10態様の技術的解決法は、第1態様の技術的解決法と一致するということは理解されるべきである。態様及び対応する実現可能な実施例により達成される有益な効果は、同様であり、詳細を再び説明しない。
本願の理解を容易にするために、本願において提供される技術的解決法における可能な技術特徴が最初に説明される。
図1は、本願に適用可能なビデオ符号化方法の概略フローチャートである。
ビデオ符号化方法は、イントラ予測(intra prediction)、インター予測(inter prediction)、変換(transform)、量子化(quantization)、エントロピーコーディング(entropy coding)、及びインループフィルタリング(in-loop filtering)などの複数の段階を含む。画像が複数のコーディングブロックに分割された後に、イントラ予測又はインター予測は実行され、変換及び量子化は、残差が取得された後に実行され、最後に、エントロピーコーディングは実行されて、ビットストリームは出力される。本明細書では、コーディングブロックは、M×N(MはNに等しくてよく、又はNに等しくなくてよい)のサイズであり、複数のサンプルを含むアレイである。さらに、各サンプル位置のサンプル値が既知である。図1では、Pは、予測値を表し、Dnは残差を表し、uFn'は再構成値(フィルタリング前)を表し、Dn'は残差を表す。
イントラ予測は、現在の画像における再構成された領域のサンプルのサンプル値を用いて、現在のコーディングブロックのサンプルのサンプル値を予測することを意味する。
インター予測は、現在の画像における現在のコーディングブロックに対して、再構成された画像におけるマッチングする参照ブロックを検索し、現在のコーディングブロックにおけるサンプルのサンプル値の予測情報又は予測値(ここで、情報及び値は、以下、区別されない)として、参照ブロックにおけるサンプルのサンプル値を用いることを意味する。この処理は、動き推定である。さらに、現在のコーディングブロックの動き情報グループは伝送される。
現在のコーディングブロックの動き情報グループは、予測方向指示情報(通常、前方予測、後方予測、又は双方向予測)、参照ブロックの方を向いた1つ又は2つの動きベクトル、及び参照ブロックが配置された画像の指示情報(参照インデックスと通常表される)を含むことに留意すべきである。
前方予測は、現在のコーディングブロックのための少なくとも1つの参照ブロックを取得するべく、前方参照画像のセットから少なくとも1つの参照画像を選択することを意味する。後方予測は、現在のコーディングブロックのための少なくとも1つの参照ブロックを取得するべく、後方参照画像のセットから少なくとも1つの参照画像を選択することを意味する。双方向予測は、少なくとも1つの参照ブロックを別々に取得するべく、前方参照画像のセット及び後方参照画像のセットのそれぞれから少なくとも1つの参照画像を選択することを意味する。双方向予測方法が用いられる場合に、現在のコーディングブロックは少なくとも2つの参照ブロックを有する。各参照ブロックは、動きベクトル及び参照インデックスを用いて示される必要がある。そして、現在のブロックにおけるサンプルのサンプル値の予測値は、2つの参照ブロックにおけるサンプルのサンプル値に基づいて決定される。
動き推定プロセスにおいて、参照画像は、現在のコーディングブロックについて、複数の参照ブロックを検索される必要があり、最後に予測のために用いられる特定の参照ブロック又は複数の特定の参照ブロックは、レート歪み最適化(rate-distortion optimization, RDO)を通じて、又は別の方法を用いることによって決定される。
予測情報がイントラ予測方法又はインター予測方法を用いて取得された後に、残差情報は、現在のコーディングブロックにおけるサンプルのサンプル値及び対応する予測情報に基づいて取得されてよい。例えば、残差情報は、現在のコーディングブロックのサンプルのサンプル値を参照ブロックのサンプルのサンプル値から直接減算することにより取得されてよい。代わりに、残差情報は、別の可能な方式で取得されてよい。その後、残差情報は、離散コサイン変換(discrete cosine transformation、 DCT)などの方法を用いて変換され、その後、量子化及びエントロピーコーディングなどのオペレーションは、変換された残差情報に対して実行され、ビットストリームを最後に取得し、その結果、デコーダ側は、ビットストリームを復号化する。エンコーダ側での処理において、フィルタリングオペレーションは、再構成された信号を取得するべく、予測信号及び再構成された残差信号に対してさらに実行されてよく、再構成された信号は、続く符号化のための参照信号として用いられる。
デコーダ側によりビットストリームに対して実行される処理は、エンコーダ側により画像を符号化する逆の処理と同様である。図2は、本願に適用可能なビットストリーム復号化方法の概略フローチャートである。
図2に示されるように、エントロピー復号化及び逆量子化などのオペレーションは、変換を通じて残差情報を取得するべく最初に実行され、デコーダ側は、現在のコーディングブロックの予測モードを取得するべく、ビットストリームを解析する。予測モードがイントラ予測である場合、予測情報は、現在のコーディングブロックの周りの再構成された領域におけるサンプルのサンプル値を用いて構成される。予測モードがインター予測である場合、現在のコーディングブロックの動き情報グループは、取得される必要があり、参照ブロックは、動き情報グループを用いて、再構成された画像において決定され、参照ブロックにおけるサンプルのサンプル値は、予測情報として用いられる。現在のコーディングブロックの再構成された情報(再構成されたブロックとも称される)は、予測情報(予測ブロックとも称される)及び残差情報(残差ブロックとも称される)に対するフィルタリングオペレーションを実行することにより取得されることができ、再構成された部分の画像を取得する。
いくつかの可能な実施例では、現在のコーディングブロックの動き情報グループは、非並進運動モデルベースの予測を通じて取得されてよい。
非並進運動モデルベースの予測のいくつかの実施例では、エンコーダ側およびデコーダ側は、現在のコーディングブロックにおける各動き補償サブユニットの動き情報を導出するべく、同じ運動モデルを用い、予測ブロックを取得するべく、動き補償サブユニットの動き情報に基づいて動き補償を実行する。これは、予測効率を改善する。一般に用いられる運動モデルは、6パラメータアフィンモデル及び4パラメータアフィンモデルを含む。
4パラメータアフィンモデルは、現在のコーディングブロックの左上隅におけるサンプルに対する、2つのサンプルの動きベクトル及び2つのサンプルの座標により表されてよい。運動モデルパラメータを表すために用いられるサンプルは、制御点と称される。左上隅(0,0)及び右上隅(W,0)のサンプルが制御点として用いられる場合、現在のコーディングブロックの左上隅及び右上隅における制御点の動きベクトル(vx
0,vy
0)及び(vx
1,vy
1)は最初に決定される。その後、現在のコーディングブロックにおける各動き補償サブユニットの動き情報は、式(2)に従って導出される。(x,y)は、現在のコーディングブロックの左上隅におけるサンプルに対する動き補償サブユニットの座標を表し、Wは、現在のコーディングブロックの幅を表す。
6パラメータアフィンモデルは、現在のコーディングブロックの左上隅におけるサンプルに対する、3つの制御点(予め設定された位置とも称される)の動きベクトル及び3つの制御点の座標により表されてよい。左上隅(0,0)、右上隅(W,0)、及び左下隅(0,H)におけるサンプルが、制御点として用いられる場合、現在のコーディングブロックの左上隅、右上隅、及び左下隅における制御点の動きベクトル(vx
0,vy
0),(vx
1,vy
1),及び(vx
2,vy
2)は最初に決定される。その後、現在のコーディングブロックにおける各動き補償サブユニットの動き情報は、式(4)に従って導出される。(x,y)は、現在のコーディングブロックの左上隅におけるサンプルに対する動き補償サブユニットの座標を表し、W及びHは、現在のコーディングブロックの幅及び高さを表す。本願では、幅及び高さの規定のために、画像処理分野又はビデオ処理分野の規格における関連する規格を参照することに留意すべきである。例えば、幅は、横方向における現在のコーディングブロックのサンプルの数を指し、高さは、縦方向における現在のコーディングブロックのサンプルの数を指す。
8パラメータバイリニアモデルは式(5)に示される。
8パラメータバイリニアモデルは、現在のコーディングブロックの左上隅におけるサンプルに対する、4つの制御点の動きベクトル及び4つの制御点の座標により表されてよい。左上隅(0,0)、右上隅(W,0)、左下隅(0,H)、及び右下隅(W,H)におけるサンプルが、制御点として用いられる場合に、現在のコーディングブロックの左上隅、右上隅、左下隅、及び右下隅における制御点の動きベクトル(vx
0,vy
0),(vx
1,vy
1),(vx
2,vy
2),及び(vx
3,vy
3)は最初に決定される。その後、現在のコーディングブロックにおける各動き補償サブユニットの動き情報は、式(6)に従って導出される。(x,y)は、現在のコーディングブロックの左上隅におけるサンプルに対する動き補償サブユニットの座標を表し、W及びHは、現在のコーディングブロックの幅及び高さを表す。
非並進運動モデルを用いて予測されたコーディングブロックは、非並進コーディングブロックと称される。アフィンコーディングブロックは非並進コーディングブロックである。非並進コーディングブロックの制御点の動き情報は、アフィンモデルマージ(affine model merge, AMM)モードを用いて取得されてよい。2つのアフィンモデルマージモード、運動モデルベースのAMMモード及び制御点ベースの複合マージ(complex merge)モードがある。
図3は、本願に従って運動モデルベースのAMMモードに基づいて予測を実行する方法を示す。
現在のコーディングブロック("現在のブロック"とも称されてよい)の制御点の動きベクトルが符号化される場合、コーディングブロックは、予め設定されたポリシーに従って、隣接コーディングブロック("隣接ブロック"、例えば"空間的に隣接するブロック"とも称されてよい)から選択され、現在のブロックの隅位置(例えば左上隅及び右上隅)の動き情報は、コーディングブロックの隅位置(例えば左上隅及び右上隅)の動き情報を用いて導出され、その結果、現在のブロックの運動モデルは、コーディングブロックのものと同じである。運動モデルが同じであるということは、現在のブロックの運動モデルのパラメータ値及びパラメータの数が、同じ座標システムにおける隣接ブロックのものと同じであるということを意味することに留意されるべきである。例えば、現在のブロック及び隣接ブロックは各々、4パラメータアフィンコーディングモデルを用いる、現在のブロック及び隣接ブロックは各々、6パラメータアフィンコーディングモデルを用いる、又は現在のブロック及び隣接ブロックは各々8パラメータバイリニアモデルを用いる。
図3に示されるように、A,B,C,D,及びEは、現在のブロックの隣接コーディングブロック(すなわち、空間的に隣接するブロック)上のサンプル位置(略して、"位置"とも称されてよい)である。走査することは、一連のA-B-C-D-Eにおいて実行され、アフィンコーディングブロックを見つけ、アフィンコーディングブロックの予め設定された位置(制御点、例えば、アフィンコーディングブロックの左上隅及び右上隅とも称されてよい)の動き情報を取得し、これにより、現在のブロック上の対応する予め設定された位置(制御点、例えば、現在のブロックの左上隅及び右上隅と称されてもよい)の動き情報を導出する。本明細書の例におけるA、B、C、D、及びEは、各々、サンプルと理解されてもよく、例えば、サンプル又は少なくとも2つのサンプルを含むサンプルブロックであってよいということに留意すべきである。サンプルがサンプルブロックである場合、サンプルブロックのサイズは、例えば2×2,1×2,4×2,4×4、又は他のサイズであってよい。
以下は、Aを例として用い、導出処理を説明する。他のケースは、類推により推定される。
サンプル位置A(例えば、左サンプル位置A)が配置されるコーディングブロックが、アフィンコーディングブロックである場合、アフィンコーディングブロックの左上隅(x
2,y
2)の動きベクトル(vx
2,vy
2)及び右上隅(x
3,y
3)の動きベクトル(vx
3,vy
3)は取得される。現在のコーディングブロックの左上隅(x
0,y
0)の動きベクトル(vx
0,vy
0)は、式(7)を用いて計算され、現在のコーディングブロックの右上隅(x
1,y
1)の動きベクトル(vx
1,vy
1)は、式(8)を用いて計算される。
制御点の動き情報を取得する別の方法は、本願にも適用されてよいということに留意すべきである。簡潔にするために、詳細については、ここで説明しない。
現在のブロックが隣接ブロックの運動モデルを引き継ぐので、運動モデルベースのAMMモードは、制御点ベースの複合マージモードよりも高いコーディング効率を有するということは上記から認識されることができる。しかしながら、隣接ブロックの動き情報グループが利用できない場合、エンコーダ側は、動き推定方法を再選択する必要があり、再選択された動き推定方法を示すべく、指示情報をデコーダ側に送信する。したがって、ビデオ伝送のビットオーバーヘッドは増加する。さらに、たとえ隣接ブロックの動き情報グループが利用可能であったとしても、オプションの動き情報グループは、制御点ベースの複合マージモードを用いて加えられることができる。
本願は、ビデオデータインター予測方法を提供し、ビデオ伝送のビットオーバーヘッドを減らし、運動モデルベースのAMMモードの適用範囲を拡張する。
図4に示されるように、本願の実施形態の方法400は、以下の段階を含んでよい。
S410:現在の画像ブロックの候補動き情報リストを決定する。候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを有し、複数のインデックス情報は、複数の候補動き情報グループと1対1で対応し、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置される。
S420:候補動き情報リストからターゲット動き情報を決定する。
S430:ターゲット動き情報に基づいて現在の画像ブロックに対するインター予測を実行する。
方法400は、エンコーダ側またはデコーダ側により実行されてよい。エンコーダ側又はデコーダ側は、ハードウェア装置であってよい、又は汎用ハードウェア装置上で動作する符号化ソフトウェアもしくは復号化ソフトウェアであってよい、又は符号化ソフトウェア及び符号化機能を有するハードウェアデバイスのセットであってよい、又は復号化ソフトウェア及び復号化機能を有するハードウェアデバイスのセットであってよい。方法400がエンコーダ側により実行される場合、S420のターゲット動き情報は、少なくとも1つの第1候補動き情報グループおよび少なくとも1つの第2候補動き情報グループにおける、スクリーニングルールを満たす動き情報グループであるということは理解されるべきである。例えば、ターゲット動き情報は、候補動き情報リストにおける動き情報グループであり、ここで、レート歪みコストは、当該動き情報グループが現在の画像ブロックの符号化に用いられる場合に最も低くなる。方法400がデコーダ側で実行される場合には、S420のターゲット動き情報は、復号化されたインデックス情報により示される、候補動き情報リストにおける動き情報グループである。
方法400がエンコーダ側により実行される場合、画像ブロックは、コーディングブロックと理解されたい。例えば、現在の画像ブロックは、現在のコーディングブロックであり、第1隣接画像ブロックは、第1隣接コーディングブロックであり、第2隣接画像ブロックは、第2隣接コーディングブロックである。方法400がデコーダ側により実行される場合、画像ブロックは、復号化ブロックと理解されたい。例えば、現在の画像ブロックは、現在の復号化ブロックであり、第1隣接画像ブロックは、第1隣接復号化ブロックであり、第2隣接画像ブロックは、第2隣接復号化ブロックである。簡潔のために、本願で提供されるインター予測方法は、エンコーダ側が方法400を実行する例を用いて以下で主に説明される。デコーダ側により実行されるインター予測方法は、デコーダ側の処理方式がエンコーダ側のものとは異なる場合のみ説明される。別の方法で特定されない限り、デコーダ側により実行されるオペレーションは、デコーダ側により実行されるオペレーションと同様である。
エンコーダ側が候補動き情報リストを決定する方式は、本願に限定されるものではない。例えば、第1候補動き情報グループは、図3に示される方法を用いて取得されてよく、又は第1動き情報グループは、別の方法を用いて取得されてよく、第2候補動き情報グループは、以下の方法を用いて取得されてよい。第1候補動き情報グループ及び第2候補動き情報グループが取得された後、第1候補動き情報グループ及び第2候補動き情報グループは、候補動き情報リストに追加される。
第1隣接コーディングブロックは、第2隣接コーディングブロックと同じ又は異なってよい。図3に示されるように、第1隣接コーディングブロックは、位置Aが配置されるコーディングブロックであってよく、第2隣接コーディングブロックは、位置Dが配置されるコーディングブロック(図3には示されていない)であってよい。この場合、第1隣接コーディングブロックは、第2隣接コーディングブロックとは異なる。第2隣接コーディングブロックは代わりに、位置Aが配置されるコーディングブロックであってよい。この場合、第2隣接コーディングブロックは、第2隣接コーディングブロックと同じである。
第1隣接コーディングブロック及び第2隣接コーディングブロックは、現在のブロックの空間的に隣接するコーディングブロックであってよい、又は現在のブロックの時間的に隣接するコーディングブロックであってよい。これについては本願で限定されるものではない。例えば、空間的に隣接コーディングブロックは、図3に示されるサンプル位置A,B,C,D,及びEが配置されるコーディングブロックを含むが、これに限定されるものではない。
第1隣接コーディングブロックは、並進運動モデルを用いるコーディングブロックであってよい、又は非並進運動モデルを用いるコーディングブロックであってよい。そのため、第1隣接コーディングブロックが並進運動モデルを用いるコーディングブロックである場合、第1候補動き情報グループは、並進運動情報グループである、又は、第1隣接コーディングブロックが非並進運動モデルを用いるコーディングブロックである場合、第1候補動き情報グループは、非並進運動情報グループである。並進運動情報グループは、1つの動きベクトル又は2つの動きベクトルを含み、非並進運動情報グループは、少なくとも2つの動きベクトルを含む。そのため、第1候補動き情報グループは、1つの動きベクトルのみを含んでよい、又は、複数の動きベクトルを含んでよい。
同様に、第1隣接コーディングブロックが並進運動モデルを用いるコーディングブロックである場合、第1隣接コーディングブロック上の予め設定された位置は、例えば図3に示された位置Aである。第1隣接コーディングブロックが非並進運動モデルを用いるコーディングブロックである場合、第1隣接コーディングブロック上の予め設定された位置は、例えば、図3における左上隅(x2,y2)及び右上隅(x3,y3)であってよい。
第2候補動き情報グループについては、現在のコーディングブロック上の少なくとも2つの予め設定された位置は、例えば、以下の図5におけるCP1及びCP2であってよく、現在のコーディングブロック上の少なくとも2つの予め設定された位置に隣接する少なくとも2つのサンプル位置は、例えば、B2及びB1であってよい。B2及びB1は、同じ隣接コーディングブロック(すなわち第2隣接コーディングブロック)に属してよい、又は異なる複数の隣接コーディングブロックに属してよい。
本願では、動き情報グループは、動きベクトルを含むが、これに限定されるものではない。例えば、動き情報グループは、予測方向指示情報(通常、前方予測、後方予測、又は双方向予測である)、1つ又は2つ又は2つより多くの動きベクトル、及び参照インデックス(reference index)を含む。動き情報グループが並進運動情報グループである場合、動き情報グループは、1つ又は2つの動きベクトルを含んでよく、例えば、前方予測方向の動きベクトル及び/又は後方予測方向の動きベクトルを含んでよい。つまり、動き情報グループは、1つの動きベクトルを含んでよい、又は、異なる予測方向の2つの動きベクトルを含んでよい。動き情報グループが非並進運動情報グループである場合、動き情報グループは、複数の動きベクトルの組み合わせ、例えば、2つの動きベクトルの組み合わせ、具体的には、2つの予め設定された位置(制御点とも称される)の動きベクトルの組み合わせを含んでよい。デコーダ側は、2つの制御点の位置座標及び2つの制御点の動きベクトルの組み合わせを用いて、現在の画像ブロックにおける任意の位置座標(x、y)を有するサンプルの動きベクトルを計算してよいということは理解されるべきである。これはまた、現在の画像ブロックにおける各動き補償サブユニットの動きベクトルを計算すると称されてよい。動きベクトルは、対応する参照フレームにおける参照ブロックを指す。
候補動き情報リストを決定した後に、エンコーダ側は、スクリーニングルールに従ったスクリーニングを通じて、候補動き情報リストからターゲット動き情報を取得する。ターゲット動き情報はまた、最適動き情報グループと称されてよい。例えば、エンコーダ側は、候補動き情報リストにおける各動き情報グループを用いて、動き補償予測を実行してよく、その後、レート歪み最適化(rate distortion optimization, RDO)基準に従ったスクリーニングを通じて、最適動き情報グループを取得する。例えば、レート歪みコストは、最適動き情報グループが現在のコーディングブロックの符号化に用いられる場合に最も低い。その後、最適動き情報グループのインデックスは、ビットストリームに書き込まれ、その後ビットストリームは送信される。上記のRDO基準は、スクリーニングルールである。
上記の例は、説明のための単なる例であり、最適動き情報グループを決定する別の方式がまた本願に適用可能である。本実施形態において提供される符号化方法に従って、エンコーダ側は、2つのタイプの候補動き情報グループを含む候補動き情報リストを構成する。本明細書では、2つのタイプの候補動き情報グループは、候補動き情報グループの異なる取得(導出)方式を反映することを単に意図されるということが理解されるべきである。2つのタイプの候補動き情報グループのうちの一方が、現在のコーディングブロックに適用可能ではない場合に、エンコーダ側は、候補動き情報リストに含まれる他のタイプの候補動き情報グループからターゲット動き情報を選択し、ターゲット動き情報のインデックス情報を、ビットストリームを用いてデコーダ側に送信してよい。候補動き情報リストにおける候補動き情報グループが、一意のインデックス情報を有するので、エンコーダ側は、エンコーダ側により用いられる候補動き情報リスト構成方法を示す指示情報を、ビットストリームにおいて転送する必要が無い。これは、ビデオ伝送のビットオーバーヘッドを減らす。さらに、現在のブロックの隣接ブロックが制御点ベースの複合マージモードを用いるコーディングブロックである場合、運動モデルベースのAMMモードに基づく動き推定は、依然として、隣接ブロックの動き情報グループを用いて現在のブロックに対して実行されてよい。これは、コーディング効率を改善する。
本願で提供されるインター予測方法の実施形態は、以下でさらに説明される。
実施形態1
段階1:候補動き情報リストを構成する。
段階1.1:運動モデルベースの動き情報を候補動き情報リストに加える。
現在のブロックの周りの隣接ブロックは、すべての非並進コーディングブロックを見つけだすべく、図3に示される方法に従って走査されてよい。非並進コーディングブロックの運動モデルが現在のブロックの運動モデルと同じである場合、各非並進コーディングブロックの制御点の動き情報は取得され、その後、現在のブロックの対応する制御点の動き情報(すなわち、第1動き情報グループ)は導出される。
段階1.2:組み合わせられた制御点ベースの動き情報を候補動き情報リストに追加する。
段階1.1で取得された候補動き情報リストの長さが予め設定されたリスト長さNより小さい場合、組み合わせられた制御点ベースの動き情報(すなわち、第2動き情報グループ)は構成され、動き情報は、候補動き情報リストに加えられる。
組み合わせられた制御点ベースの動き情報を構成する方法は以下の通りである。
最初に、各制御点の動き情報は導出される。図5に示されるように、CPk(k=1,2,3,4)は、k番目の制御点を表す。A0,A1,A2,B0,B1,B2,及びB3は、現在のブロックの空間的に隣接する位置であり、CPk(k=1,2,3)の動き情報を予測するために用いられる。Trは、現在のブロックの時間的に隣接する位置を表し、CP4の動き情報を予測するために用いられる。Trは、現在のブロックの同じ位置のブロックの右下の空間的に隣接するサンプル位置を表し、ここで、同じ位置のブロックは、現在のブロックと同じサイズ、同じ形状、及び同じ座標を有する、参照画像における画像ブロックであるということは理解されるべきである。
CP1,CP2,CP3,及びCP4の位置座標は、それぞれ、(0,0),(W,0),(H,0)、及び(W,H)であり、ここで、W及びHは、現在のブロックの幅及び高さを表す。
各制御点の動き情報は、以下のシーケンスにおいて取得される。
CP1について、チェックシーケンスは、B2-A2-B3である。B2の動き情報が利用可能(available)である場合、B2の動き情報は用いられる。別の方法で、A2及びB3は、順に検出される。すべての3つの位置の動き情報が利用できない場合、CP1の動き情報は取得されることができない。
CP2について、チェックシーケンスは、B0-B1である。
CP3について、チェックシーケンスは、A0-A1である。
CP4について、Trの動き情報は、用いられてよい。
本明細書では、動き情報が利用可能であるということは、位置Xが配置されたブロックが、インター符号化モードにおいて既に符号化されているということを意味する。別の方法で、位置Xは利用できない。位置Xは、例えば、位置B2、位置A2、位置B3、位置A0、位置A1、位置B0、位置B1、又は位置Trである。
制御点の動き情報を取得する別の方法は、本発明に適用されてもよいということに留意すべきである。詳細については、ここで説明しない。例えば、CP1について、B2、A2、及びB3がすべて利用可能である場合、CP1は、{B2、A2、及びB3}のうちいずれか1つの動き情報を用いてよい。この方法はまた、CP2からCP4に適用され、詳細は本明細書で再び説明されない。代わりに、図5に示されるように、現在の画像ブロックの制御点CP1(左上サンプルと称されてもよい)の動き情報のソースは、x1サンプルの動き情報を含んでよい。x1サンプルは、現在の画像ブロックが属するビデオフレームに時間的に隣接するビデオフレーム内にあり、現在の画像ブロックの左上サンプルLTと同じ位置にあるサンプルCol-LT、現在の画像ブロックの左の空間的に隣接する画像ブロックA2、現在の画像ブロックの左上の空間的に隣接する画像ブロックB2、及び現在の画像ブロックの上の空間的に隣接する画像ブロックB3のうちの少なくとも1つを含む。
その後、制御点の動き情報は、非並進運動情報を取得するべく、組み合わせられる。
2つの制御点の動き情報は、4パラメータアフィンモデルを構成するべく、組み合わせられる。2つの制御点の組み合わせ方式は、以下の方式{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},及び{CP3,CP4}を含む。例えば、制御点CP1及びCP2を用いて構成された4パラメータアフィンモデルは、アフィン(CP1,CP2)と表される。
3つの制御点の動き情報は、6パラメータアフィンモデルを構成するべく、組み合わせられる。3つの制御点の組み合わせ方式は、{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},及び{CP1,CP3,CP4}を含む。例えば、制御点CP1,CP2,及びCP3を用いて構成される6パラメータアフィンモデルは、アフィン(CP1,CP2,CP3)と表される。
4つの制御点の動き情報は、8パラメータバイリニアモデルを構成するべく、組み合わせられる。制御点CP1,CP2,CP3,及びCP4を用いて構成される8パラメータバイリニアモデルは、バイリニア(CP1,CP2,CP3,CP4)と表される。
これらのモデルは、予め設定された順に走査される。組み合わせモデルに対応する制御点の動き情報が利用できない場合、モデルが利用できないということが考慮される。組み合わせモデルに対応するすべての制御点の動き情報が利用可能である場合、モデルの参照インデックスは決定され、制御点の動きベクトルはスケーリングされる。スケーリング後のすべての制御点の動き情報が一致する場合、モデルは無効である。別の方法で、制御点の動き情報は、候補動き情報リストに加えられる。
スケーリング方法は式(9)に示される。CurPocは、現在のフレームの画像順序カウント(picture order count, POC)数を表し、DesPocは、現在のブロックの参照フレームのPOC数を表し、SrcPocは、制御点の参照フレームのPOC数を表し、MVsは、スケーリングを通じて取得されるMVを表す。
段階1.3:補足動き情報
任意で、段階1.2で取得された候補動きリストの長さが特定されたリスト長さN未満である場合、現在のブロックに隣接するコーディングされたブロックの動き情報は、候補動き情報リストに加えられ、又はゼロ動き情報(すなわち、ゼロ動きベクトル)は、候補動き情報リストに入れられる。
候補動き情報リストを構成するフローチャートは、図6に示される。
S601:第1候補動き情報グループを取得し、第1候補動き情報グループを候補動き情報リストに追加し、この場合の候補動き情報リストの長さ(candNum1)が予め設定されたリスト長さN未満である場合に、段階S602を実行し、又は候補動き情報リストの長さがNに等しい場合に、候補動き情報リストを構成する手順を終了する。
S602:第2候補動き情報グループを取得し、第2候補動き情報グループを候補動き情報リストに追加し、この場合の候補動き情報リストの長さ(candNum2)が予め設定されたリスト長さN未満である場合に、段階S603を実行し、又は候補動き情報リストの長さがNに等しい場合に、候補動き情報リストを構成する手順を終了する。
S603:動き情報を入れて、ここで、動き情報は、現在のブロックの隣接ブロックの並進運動情報及び/又はゼロ動き情報であってよく、候補動き情報リストの長さ値がNに等しくなったら入れることを停止し、候補動き情報リストを構成する手順を終了する。
表1は、実施形態1で構成された候補動き情報リストの例を示す。
表1において、MV0、MV1、MV2、及びMV3は、現在のブロックの4つの制御点の動きベクトルであり、インデックス値0に対応する動きベクトルの組み合わせは、段階1.1で決定された動き情報であり、インデックス値2に対応する動きベクトルの組み合わせは、段階1.2で決定された動き情報である。
候補動き情報リストは、予測方向及び参照インデックス値などの情報をさらに含んでよいということに留意すべきである。参照値が双方向予測に対応する場合、候補アイテムは、前方参照インデックス及び前方動きベクトルの組み合わせ、及び後方参照インデックス及び後方動きベクトルの組み合わせを含む。参照値が前方予測に対応する場合、候補アイテムは、前方参照インデックス及び前方動きベクトルの組み合わせを含み、参照値が後方予測に対応する場合、候補アイテムは、後方参照インデックス及び後方動きベクトルの組み合わせを含む。さらに、エンコーダ側およびデコーダ側が、特定の数の動きベクトルの組み合わせが特定の位置における制御点の動きベクトルの組み合わせである、例えば2つの動きベクトルの組み合わせが、既定では、左上隅及び右上隅における2つの制御点の動きベクトルの組み合わせであるということに合意する場合、候補動き情報リストは、各動きベクトルの組み合わせに対応する位置座標の組み合わせを反映する必要が無く、別の方法で、候補動き情報リストにおいて、各インデックスに対応する非並進運動モデルに対応する候補アイテム(候補)は、複数の制御点の動きベクトル及び複数の制御点の対応する位置座標を含む。
段階2:最適動き情報グループを決定する。
デコーダ側は、ブロックレベルインデックス、例えば候補動き情報リストにおける現在のブロックの最適候補動き情報グループのインデックス値を取得するべく、ビットストリームを復号化し、これにより、現在のブロックの制御点の動きベクトル予測事項を取得する。
動きベクトル予測事項は、現在のブロックの制御点の動きベクトルとして直接用いられてよい。この方法は、マージ(merge)モードに基づいて動きベクトルを取得する方法である。
代わりに、デコーダ側は、さらに、各制御点の動きベクトルの差を取得するべく、ビットストリームを復号化し、現在のブロックの制御点の動きベクトルを取得するべく、動きベクトル予測事項及び動きベクトルの差を追加する。方法は、高度な動きベクトル予測(advanced motion vector prediction, AMVP)モードに基づいて動きベクトルを取得する方法である。
エンコーダ側は、候補動き情報リストにおける各動き情報グループを用いて動き補償予測を実行し、その後、RDO基準に従って、最適動き情報グループ及び最適動き情報グループのインデックス値を選択し、その後、インデックス値をビットストリームに書き込む。
動きベクトル予測事項は、現在のブロックの制御点の動きベクトルとして直接用いられてよい(組み合わせ予測モード(マージ))。
代わりに、エンコーダ側は、さらに、動き推定を実行し、検索を通じて最終動きベクトルを取得し、各制御点の動きベクトルの差(motion vector difference, MVD)を、ビットストリームに書き込む(AMVPモード)。MVDは、本明細書では、推定された動きベクトルと、リストから選択された最適動きベクトルとの間の差と理解されてよい。
段階3:現在のブロックにおける各サンプル(x、y)の動きベクトル(Vx,Vy)又は各動き補償サブユニットを、制御点の動き情報及び運動モデルに基づいて決定し、現在のブロックの予測方向における参照インデックスにより示される参照フレームにおいて、現在のブロックにおける各サンプルの動きベクトルについての位置に基づいて各サンプルの予測値を取得する。
実施例では、動きベクトルの組み合わせが、特定された位置の動きベクトルの組み合わせに限定されるものではない場合、候補動き情報リストにおいて、各動きベクトルの組み合わせは、動きベクトルの組み合わせと関連付けられた位置座標を有するということは理解されるべきである。つまり、各動きベクトルの組み合わせの各動きベクトルは、動きベクトルに対応する制御点の位置座標に1対1で対応する。
別の実装例では、動きベクトルの組み合わせが特定された位置の動きベクトルの組み合わせである場合、例えば、4パラメータアフィン運動モデルに対応する動きベクトルの組み合わせが現在のブロックの左上隅及び右上隅の動きベクトルの組み合わせであり、6パラメータアフィン運動モデルに対応する動きベクトルの組み合わせが現在のブロックの左上隅、左下隅、及び右上隅の動きベクトルの組み合わせである場合に、候補動き情報リストは、各動きベクトルの組み合わせに対応する位置座標を含む必要が無い。
4パラメータアフィン運動モデルは、2つの動きベクトルの組み合わせに対応し、6パラメータアフィン運動モデルは、3つの動きベクトルの組み合わせに対応し、8パラメータアフィン運動モデルは、4つの動きベクトルの組み合わせに対応するということは理解されるべきである。このように、候補動き情報リストにおいて、用いられる必要があるアフィン運動モデルは、動きベクトルの組み合わせに含まれる動きベクトルの数を用いて間接的に導出されてよい。そのため、候補動き情報リストは、運動モデル情報フィールドを含まなくてよい。
本明細書における段階3では、段階2で選択された最適動き情報グループに対応する運動モデルは、非並進運動モデルであると仮定されるということは理解されるべきである。段階2で選択された最適動き情報グループが、双方向予測に対応する1つの動きベクトル又は2つの動きベクトルである場合、つまり、段階2で選択された最適動き情報グループに対応する運動モデルが、並進運動モデルである場合、最適動き情報グループにおける動きベクトルは、現在のブロックの動きベクトルとして用いられる、又は、最適動き情報グループにおける動きベクトル及びMVDの和は、現在のブロックの動きベクトルとして用いられる。現在のブロックの予測方向における参照インデックスにより示される参照フレームにおいて、現在のブロックの予測ブロックは、現在のブロックの動きベクトルについての位置に基づいて取得される。
任意で、方法400において、第1候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数未満又は等しい。
第1候補動き情報グループは、運動モデルベースの動き情報グループであり、第1候補動き情報グループに基づいて符号化を実行する効率は、第2候補動き情報グループに基づいて符号化を実行する効率より高い。そのため、第1候補動き情報グループがターゲット動き情報である比較的高い確率がある。このように、第1候補動き情報グループのインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
例えば、候補動き情報リストに最初に加えられる動き情報グループは、相対的に少ない数のビットを有するインデックス情報に対応し、候補動き情報リストにその後に加えられる動き情報グループは、相対的に多い数のビットを有するインデックス情報に対応するように設定されてよい。候補動き情報リストが構成される場合、第1候補動き情報グループは、候補動き情報リストに最初に加えられ、その後第2候補動き情報グループは、候補動き情報リストに加えられ、その結果、第1候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より少ない。
任意で、現在のコーディングブロックの候補動き情報リストを決定することは、以下の段階を含む。
S411:第1隣接コーディングブロックが並進運動モデルを用いる隣接コーディングブロックである場合に、第1隣接コーディングブロックの動き情報を、候補動き情報リストに第1候補動き情報グループとして加える。及び/又は、S412:第1隣接コーディングブロックが非並進運動モデルを用いるコーディングブロックである場合、第1隣接コーディングブロック上の少なくとも2つの予め設定された位置の動き情報及び第1隣接コーディングブロックの運動モデルに基づいて、現在のコーディングブロックに対応する少なくとも2つの予め設定された位置の動き情報を導出し、現在のコーディングブロックに対応する少なくとも2つの予め設定された位置の動き情報を、候補動き情報リストに第1候補動き情報グループとして追加する。
第1隣接コーディングブロックの運動モデルが並進運動モデルである場合に、第1隣接コーディングブロックの動き情報グループは、処理される必要が無く、候補動き情報リストに第1候補動き情報グループとして直接加えられてよい。これは、コーディング効率を改善する。第1隣接コーディングブロックの運動モデルが非並進運動モデルである場合に、第1候補動き情報グループは、非並進運動モデルに対応する式に従って及び第1隣接コーディングブロック上の予め設定された位置の動き情報に基づいて、生成される必要がある。
本願で提供されるインター予測の実施形態は、以下でさらに説明される。
実施形態2
段階1:候補動き情報リストを構成する。
段階1.1:運動モデルベースの動き情報を、候補動き情報リストに追加する。
現在のブロックの周りの隣接ブロックは、図3に示される方法に従って走査されてよい。隣接ブロックが並進コーディングブロックである場合、隣接ブロックの動き情報は、候補動き情報リストに直接入れられる。隣接ブロックが非並進コーディングブロックであり、非並進コーディングブロックの運動モデルが現在のブロックの運動モデルと同じである場合、各非並進コーディングブロックの制御点の動き情報は取得され、その後、現在のブロックの対応する制御点の動き情報(すなわち、第1動き情報グループ)は導出される。
段階1.2:組み合わせられた制御点ベースの動き情報を候補動き情報リストに追加する。
実施形態2の段階1.2について、実施形態1の段階1.2を参照する。簡潔にするために、ここでは再び詳細を説明しない。
段階1.3:補足動き情報
任意で、段階1.2で取得された候補動きリストの長さが特定されたリスト長さN未満である場合、ゼロ動き情報(すなわちゼロ動きベクトル)は入れられる。
表2は、実施形態2において構成された候補動き情報リストの例を示す。
表2において、MV0、MV1、MV2、及びMV3は、現在のブロックの4つの制御点の動きベクトルであり、インデックス値0に対応する動きベクトルの組み合わせは、段階1.1で決定された動き情報であり、インデックス値3に対応する動きベクトルの組み合わせは、段階1.2で決定された動き情報である。
候補動き情報リストは、予測方向及び参照インデックス値などの情報をさらに含んでよいということに留意すべきである。参照値が双方向予測に対応する場合、候補アイテムは、前方参照インデックス及び前方動きベクトルの組み合わせ、及び後方参照インデックス及び後方動きベクトルの組み合わせを含む。参照値が前方予測に対応する場合、候補アイテムは、前方参照インデックス及び前方動きベクトルの組み合わせを含み、参照値が後方予測に対応する場合、候補アイテムは、後方参照インデックス及び後方動きベクトルの組み合わせを含む。
段階2:最適動き情報を決定する。
デコーダ側は、リストにおける現在のブロックの最適候補動き情報グループのインデックス値を取得するべく、ビットストリームを復号化し、これにより、現在のブロックの制御点の動きベクトル予測事項を取得する。
動きベクトル予測事項は、現在のブロックの制御点の動きベクトルとして直接用いられてよい(マージモード)。
代わりに、デコーダ側は、各制御点の動きベクトルの差を取得するべく、ビットストリームを復号化し、現在のブロックの制御点の動きベクトルを取得するべく、動きベクトル予測事項及びMVDを追加する(AMVPモード)。
エンコーダ側は、候補動き情報リストにおける各動き情報グループを用いて動き補償予測を実行し、その後、RDO基準に従って、最適動き情報グループ及び最適動き情報グループのインデックス値を選択し、その後、ビットストリームにインデックス値を書き込む。
動きベクトル予測事項は、現在のブロックの制御点の動きベクトルとして直接用いられてよい(マージモード)。
代わりに、エンコーダ側は、さらに、動き推定を実行し、検索を通じて最終動きベクトルを取得し、各制御点のMVDを、ビットストリームに書き込む(AMVPモード)。
段階3:現在のブロックにおける各サンプル(x、y)の動きベクトル(Vx,Vy)又は各動き補償サブユニットを、制御点の動き情報及び運動モデルに基づいて決定し、現在のブロックの予測方向における参照インデックスにより示される参照フレームにおいて、現在のブロックにおける各サンプルの動きベクトルについての位置に基づいて各サンプルの予測値を取得する。
実施例では、動きベクトルの組み合わせが、特定された位置の動きベクトルの組み合わせに限定されるものではない場合、候補動き情報リストにおいて、各動きベクトルの組み合わせは、動きベクトルの組み合わせと関連付けられた位置座標を有するということは理解されるべきである。つまり、各動きベクトルの組み合わせの各動きベクトルは、動きベクトルに対応する制御点の位置座標に1対1で対応する。
別の実装例では、動きベクトルの組み合わせが特定された位置の動きベクトルの組み合わせである場合、例えば、4パラメータアフィン運動モデルに対応する動きベクトルの組み合わせが現在のブロックの左上隅及び右上隅の動きベクトルの組み合わせであり、6パラメータアフィン運動モデルに対応する動きベクトルの組み合わせが現在のブロックの左上隅、左下隅、及び右上隅の動きベクトルの組み合わせである場合に、候補動き情報リストは、各動きベクトルの組み合わせに対応する位置座標を含む必要が無い。
4パラメータアフィン運動モデルは、2つの動きベクトルの組み合わせに対応し、6パラメータアフィン運動モデルは、3つの動きベクトルの組み合わせに対応し、8パラメータアフィン運動モデルは、4つの動きベクトルの組み合わせに対応するということは理解されるべきである。このように、候補動き情報リストにおいて、用いられる必要があるアフィン運動モデルは、動きベクトルの組み合わせに含まれる動きベクトルの数を用いて間接的に導出されてよい。そのため、候補動き情報リストは、運動モデル情報フィールドを含まなくてよい。動き情報リストは、予測方向についての情報を含み、異なる複数の運動モデルは、当該情報に基づいて区別されてよいということに留意すべきである。例えば、双方向4パラメータモデルは、2つの前方動きベクトル及び2つの後方動きベクトルを含む。双方向並進モデルは、1つの前方動きベクトル及び1つの後方動きベクトルを含む。
任意で、非並進運動モデルを用いる第1隣接コーディングブロックの数が閾値量より多いまたは等しい場合に、第3候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より少なく未満であり、第3候補動き情報グループは、非並進運動モデルを用いる第1隣接コーディングブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進運動モデルを用いる第1隣接コーディングブロックの運動モデルに基づいて導出される第1候補動き情報グループである。
図3は例として用いられる。位置Aが配置されたコーディングブロックは、非並進運動モデルを用いる第1隣接コーディングブロックであり、左上隅(x2,y2)、及び右上隅(x3,y3)は、第1隣接コーディングブロック上の少なくとも2つの予め設定された位置であり、V2及びV3は、少なくとも2つの予め設定された位置の動き情報であり、V0及びV1は、V2及びV3に基づいて導出された第1候補動き情報グループ(すなわち、第3候補動き情報グループ)である。
非並進運動モデルを用いる第1隣接コーディングブロックの数が、閾値量より多い又は等しい場合に、そのことは、現在のコーディングブロックが非並進運動モデルを用いるコーディングブロックである比較的高い確率があるということを示す。そのため、非並進運動モデルを用いる第1隣接コーディングブロックに基づいて導出される第1候補動き情報グループ(すなわち、第3候補動き情報グループ)のインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。ターゲット動き情報が第3候補動き情報グループである比較的高い確率がある。そのため、本実施形態は、ビデオ伝送のビットの数を減らすことに役立つ。
例えば、候補動き情報リストに最初に加えられる動き情報グループは、相対的に少ない数のビットを有するインデックス情報に対応し、候補動き情報リストにその後に加えられる動き情報グループは、相対的に多い数のビットを有するインデックス情報に対応するように設定されてよい。候補動き情報リストが構成される場合、第3候補動き情報グループは、候補動き情報リストに最初に加えられ、その後第2候補動き情報グループは、候補動き情報リストに加えられ、その結果、第3候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より少ない。
任意で、候補動き情報リストの長さが長さ閾値より小さく、第1隣接コーディングブロックが、さらに、並進運動モデルを用いる第1隣接コーディングブロックを有する場合に、候補動き情報リストはさらに、並進運動モデルを用いる第1隣接コーディングブロックの動き情報を有し、並進運動モデルを用いる第1隣接コーディングブロックの動き情報は、第1候補動き情報グループであり、並進運動モデルを用いる第1隣接コーディングブロックの動き情報のインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より多いまたは等しい。
本願では、候補動き情報リストの長さは、候補動き情報リストに含まれることができる動き情報グループの数である。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接コーディングブロックが並進運動モデルを用いる第1隣接コーディングブロックをさらに含む場合に、並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして加えられ、第1候補動き情報グループのインデックス情報は、比較的多い数のビットを有するインデックス情報に設定され、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。
任意で、非並進運動モデルを用いる第1隣接コーディングブロックの数が閾値量未満または等しい場合に、並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループは、第1候補動き情報グループであり、並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数より小さい。
非並進運動モデルを用いる第1隣接コーディングブロックの数が、閾値量に等しい又は未満である場合に、そのことは、現在のコーディングブロックが並進運動モデルを用いるコーディングブロックである比較的高い確率があるということを示す。そのため、並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループは、第1候補動き情報グループとして用いられてよく、第1候補動き情報グループのインデックス情報は、相対的に少ない数のビットを有するインデックス情報に設定される。ターゲット動き情報が第1候補動き情報グループである比較的高い確率がある。そのため、この実施形態は、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
図3は例として用いられる。位置Aが配置されたコーディングブロックが、並進運動モデルを用いる第1隣接コーディングブロックである場合、位置Aが配置されたコーディングブロックの動き情報グループは、現在のブロックの左下隅における制御点の動き情報(すなわち第1候補動き情報グループ)として用いられてよい。
候補動き情報リストに最初に加えられる動き情報グループは、相対的に少ない数のビットを有するインデックス情報に対応し、候補動き情報リストにその後に加えられる動き情報グループは、相対的に多い数のビットを有するインデックス情報に対応するように設定されてよい。候補動き情報リストが構成される場合、並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして最初に加えられ、その後、第2候補動き情報グループは、候補動き情報リストに加えられる。これは、ターゲット動き情報のインデックス情報のビットの数を減らすことに役立つ。
任意で、候補動き情報リストの長さが長さ閾値より小さく、第1隣接コーディングブロックがさらに、非並進運動モデルを用いる第1隣接コーディングブロックを有する場合に、候補動き情報リストはさらに、第4候補動き情報グループを有し、第4候補動き情報グループは、非並進運動モデルを用いる第1隣接コーディングブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進運動モデルを用いる第1隣接コーディングブロックの運動モデルに基づいて導出される第1候補動き情報グループであり、第4候補動き情報グループのインデックス情報のビットの数は、第2候補動き情報グループのインデックス情報のビットの数に等しい又はより大きい。
候補動き情報リストの長さが、第2候補動き情報グループが候補動き情報リストに加えられた後に長さ閾値より小さく、第1隣接コーディングブロックが非並進運動モデルを用いる第1隣接コーディングブロックをさらに含む場合に、非並進運動モデルを用いる第1隣接コーディングブロックの動き情報グループに基づいて導出される動き情報グループは、候補動き情報リストに第1候補動き情報グループとして加えられ、第1候補動き情報グループのインデックス情報は、比較的多い数のビットを有するインデックス情報に設定され、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報は、候補動き情報リストに加えられる。
図3は例として用いられる。位置Aが配置されたコーディングブロックが非並進運動モデルを用いる第1隣接コーディングブロックであると仮定すると、左上隅(x2,y2)、及び右上隅(x3,y3)は、第1隣接コーディングブロック上の少なくとも2つの予め設定された位置であり、V2及びV3は、少なくとも2つの予め設定された位置の動き情報であり、V0及びV1は、V2及びV3に基づいて導出された第1候補動き情報グループ(すなわち、第4候補動き情報グループ)である。
本願で提供されるインター予測方法の実施形態は、以下でさらに説明される。
実施形態3
段階1:候補動き情報リストを構成する。
図3に示されるように、現在のブロックの周りの隣接ブロックは、一連のA-B-C-D-Eで走査され、隣接ブロックにおける非並進コーディングブロックの数Mは、カウントされる。
Mが予め設定された閾値量Tより大きい場合、一連の動き情報グループを加えることは、最初に、現在のブロックに関する、非並進コーディングブロックの動き情報グループに基づいて決定された動き情報グループ(すなわち、いくつかの第1候補動き情報グループ)が候補動き情報リストに加えられ、具体的に言えば、現在のブロックに対応する少なくとも2つの予め設定された位置の動き情報は、非並進コーディングブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進コーディングブロックの運動モデルに基づいて導出され、現在のブロックに対応する少なくとも2つの予め設定された位置の動き情報は、候補動き情報リストに第1候補動き情報グループとして加えられ、その後、組み合わせられた制御点ベースの動き情報グループ(すなわち、第2候補動き情報グループ)は、候補動き情報リストに加えられ、この場合の候補動き情報リストの長さが特定されたリスト長さN未満である場合、現在のブロックに関する、並進コーディングブロックの動き情報グループに基づいて決定される動き情報グループ(すなわち、いくつかの他の第1候補動き情報グループ)は、候補動き情報リストにさらに加えられ、この場合の候補動き情報リストの長さが依然として、特定されたリスト長さN未満である場合、ゼロ動き情報は入れられる。
Mが予め設定された閾値量Tに等しいまたはより少ない場合、一連の動き情報グループを加えることはは、最初に、現在のブロックに関する、並進コーディングブロックの動き情報グループに基づいて決定される動き情報グループ(すなわち、いくつかの第1候補動き情報グループ)は、候補動き情報リストに加えられ、その後、組み合わせられた制御点ベースの動き情報グループ(すなわち第2候補動き情報グループ)は、候補動き情報リストに加えられ、この場合の候補動き情報リストの長さが特定されたリスト長さN未満である場合、現在のブロックに関する、非並進コーディングブロックの動き情報グループに基づいて導出される動き情報グループ(すなわち、いくつかの他の第1候補動き情報グループ)は、候補動き情報リストにさらに加えられ、この場合の候補動き情報リストの長さが依然として、特定されたリスト長さN未満である場合、ゼロ動き情報は入れられる。
非並進コーディングブロックの動き情報グループ又は並進コーディングブロックの動き情報グループに基づいて現在のブロックの動き情報グループを決定する方法について、実施形態1における段階1.1及び段階1.2を参照する。簡潔にするために、ここでは再び詳細を説明しない。
任意で、第1候補動き情報グループ及び第2候補動き情報グループの両方は、現在のコーディングブロック上の第1グループの位置の動き情報であり、現在のコーディングブロック上の少なくとも2つの予め設定された位置は、第2グループの位置であり、現在のコーディングブロックの候補動き情報リストを決定することは、第2グループの位置が第1グループの位置とは異なる場合に、位置変換式に従って及び第2グループの位置に対応する動き情報に基づいて、第2候補動き情報グループを導出することを有する。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得される候補動き情報リストにおける全ての動き情報グループは、特定の位置の動き情報である。これは、動き推定の複雑性を減らす。
図5は、例として用いられる。第1候補動き情報グループがCP1及びCP2に対応する動き情報であると仮定して、CP1及びCP2は、第1グループの位置である。第2候補動き情報グループが基づくサンプル位置が、位置A1及び位置A2(すなわち、第2グループの位置)である場合、エンコーダ側は、位置変換式に従って、第2グループの位置に対応する動き情報に基づいて、CP1及びCP2に対応する第2候補動き情報グループを取得してよい。
任意で、第1候補動き情報グループは、現在のコーディングブロック上の第1グループの位置の動き情報であり、第2候補動き情報グループは、現在のコーディングブロック上の第3グループの位置の動き情報であり、方法はさらに、第1グループの位置が第3グループの位置とは異なる場合に、位置変換式に従って及び第2候補動き情報グループに基づいて、第5候補動き情報グループを導出する段階を備え、第5候補動き情報グループに対応する位置は、第1グループの位置と同じである。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得される候補動き情報リストにおける全ての動き情報グループは、特定の位置の動き情報である。これは、動き推定の複雑性を減らす。
図5は例として用いられる。第1候補動き情報グループがCP1及びCP2に対応する動き情報であると仮定して、CP1及びCP2は、第1グループの位置である。第2候補動き情報グループがCP2及びCP3(すなわち第3グループの位置)に対応する動き情報である場合、エンコーダ側は、位置変換式に従って、CP2及びCP3に基づいて、CP1及びCP2に対応する第2候補動き情報グループを取得してよい。
実施形態1、実施形態2、及び実施形態3において、制御点の異なる組み合わせは、同じ位置における制御点に変換されてよい。
例えば、{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},又は{CP3,CP4}を組み合わせることにより取得される4パラメータアフィンモデルは、制御点{CP1,CP2}により表されるように変換される。変換方法として、制御点の動きベクトル及び座標情報は、式(1)に代入され、モデルパラメータを取得し、その後、{CP1,CP2}の座標情報が、当該式に代入され、{CP1,CP2}の動きベクトルを取得する。
例えば、{CP1,CP2,CP4},{CP2,CP3,CP4},又は{CP1,CP3,CP4}を組み合わせることにより取得される6パラメータアフィンモデルは、制御点{CP1,CP2,CP3}により表されるように変換される。変換方法として、制御点の動きベクトル及び座標情報は、式(3)に代入され、モデルパラメータを取得し、その後、{CP1,CP2,CP3}の座標情報が、当該式に代入され、{CP1,CP2,CP3}の動きベクトルを取得する。
式(1)及び式(3)は、位置変換式である。
上記は、本願で提供されるビデオデータインター予測方法を詳細に説明する。以下は、明確かつ完全に、添付の図面を参照して、本願で提供されるビデオ符号化/復号化システム、ビデオデータ符号化装置、及びビデオデータ復号化装置を説明する。
図7は、本願の実施形態において説明される例のビデオコーディングシステム1のブロック図である。本明細書において用いられるように、用語"ビデオコーデック"は、ビデオエンコーダ及びビデオデコーダの両方を通常指す。本願では、用語"ビデオコーディング"又は"コーディング"は、ビデオ符号化又はビデオ復号化を通常指してよい。ビデオコーディングシステム1のビデオエンコーダ100及びビデオデコーダ200は、本願で提供されるインター予測方法に従って、現在のコーディングされた画像ブロック又は現在の符号化された画像ブロックの動き補償サブユニットの動き情報、例えば動きベクトルを予測するように構成され、その結果、予測された動きベクトルは、動き推定方法を用いて取得された動きベクトルに極度に近くなる。これはさらに、符号化/復号化性能を改善する。
図7に示されるように、ビデオコーディングシステム1は、発信元装置10及び宛先装置20を含む。発信元装置10は、符号化済ビデオデータを生成する。そのため、発信元装置10は、ビデオ符号化装置と称されてよい。宛先装置20は、発信元装置10により生成された符号化済ビデオデータを復号化してよい。そのため、宛先装置20は、ビデオ復号化装置と称されてよい。発信元装置10、宛先装置20、又は発信元装置10と宛先装置20の両方の様々な実施例の解決策は、1または複数のプロセッサ及び1または複数のプロセッサに連結されたメモリを含んでよい。メモリは、本明細書において説明されるように、ランダムアクセスメモリ(random access memory, RAM)、リードオンリメモリ(read only memory, ROM)、消去可能なプログラマブルリードオンリメモリ(erasable programmable ROM, EPROM)、フラッシュメモリ、又は要求されるプログラムコードをコンピュータによりアクセス可能な命令またはデータ構造の形態で格納するために用いられることができる任意の他の媒体を含んでよいがこれに限定されるものではない。
発信元装置10と宛先装置20は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えばラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる"スマート"フォンなどのハンドヘルド電話、テレビセット、カメラ、表示装置、デジタルメディアプレイヤー、ビデオゲームコンソール、車載コンピュータ、及び同様の装置を含む、様々な装置を含んでよい。
宛先装置20は、発信元装置10からリンク30を介して符号化済ビデオデータを受信してよい。リンク30は、符号化済ビデオデータを発信元装置10から宛先装置20へ移動させることができる1又は複数の媒体又は装置を含んでよい。例では、リンク30は、発信元装置10が符号化済ビデオデータをリアルタイムに宛先装置20へ直接伝送することを可能にする1又は複数の通信媒体を含んでよい。この例では、発信元装置10は、通信規格(例えば、無線通信プロトコル)に従って符号化済ビデオデータを変調してよく、変調されたビデオデータを宛先装置20に伝送してよい。1又は複数の通信媒体は、無線及び/又は有線通信媒体、例えば、無線周波数(radio frequency, RF)スペクトル又は1又は複数の物理的伝送ラインを含んでよい。1又は複数の通信媒体は、パケットベースネットワークの一部を構成してよく、パケットベースネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えばインターネット)である。1又は複数の通信媒体は、ルータ、スイッチ、ベースステーション、又は発信元装置10から宛先装置20への通信を容易にする他のデバイスを含んでよい。
別の例では、符号化済みデータは、出力インタフェース140を通じて記憶装置40に出力されてよい。同様に、符号化済みデータは、記憶装置40から入力インタフェース240を通じてアクセスされてよい。記憶装置40は、複数の分散データ記憶媒体又はローカルにアクセス可能なデータ記憶媒体、例えば、ハードドライブ、Blu-ray、デジタル多用途ディスク(digital versatile disc, DVD)、コンパクトディスクリードオンリメモリ(CD-ROM)、フラッシュメモリ、揮発性もしくは非揮発性メモリ、又は符号化済ビデオデータを格納するように構成された任意の他の適切なデジタル記憶媒体のうちいずれか1つを含んでよい。
別の例では、記憶装置40は、ファイルサーバ又は発信元装置10により生成された符号化済みビデオを維持することができる他の中間記憶装置に対応してよい。宛先装置20は、ストリーミング伝送またはダウンロードにより記憶装置40から、格納されたビデオデータにアクセスしてよい。ファイルサーバは、符号化済ビデオデータを格納し、符号化済ビデオデータを宛先装置20に伝送することができる任意のタイプのサーバであってよい。ファイルサーバの例は、ネットワークサーバ(例えば、ウェブサイトのために用いられる)、ファイル転送プロトコル(file transfer protocol, FTP)サーバ、ネットワーク接続型ストレージ(network attached storage, NAS)装置、又はローカルディスクドライブを含む。宛先装置20は、任意の規格データ接続(インターネット接続を含む)を通じて符号化済ビデオデータにアクセスしてよい。規格データ接続は、無線チャネル(例えば無線フィデリティ(wireless-fidelity, Wi-Fi)接続)、有線接続(デジタル加入者線(digital subscriber line, DSL)又はケーブルモデム)、又はファイルサーバに格納された符号化済ビデオデータにアクセスするために適切な両方の組み合わせを含んでよい。記憶装置40からの符号化済ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、又は両方の組み合わせであってよい。
本願における動きベクトル予測技術は、ビデオ符号化及び復号化に適用されてよく、複数のマルチメディア適用、例えば、無線テレビブロードキャスト、ケーブルテレビ伝送、衛星テレビ伝送、ストリーミングビデオ伝送(例えばインターネットを介して)、データ記憶媒体に格納されたビデオデータの符号化、データ記憶媒体に格納されたビデオデータの復号化、又は別の適用をサポートする。いくつかの例では、ビデオコーディングシステム1は、単方向又は双方向ビデオ伝送をサポートするように構成されてよく、ビデオストリーミング伝送、ビデオ再生、ビデオブロードキャスト、及び/又はビデオ電話などの適用をサポートする。
図7で説明されたビデオコーディングシステム1は、単なる例であり、本願の技術は、必ずしも符号化装置及び復号化装置の間のいかなるデータ通信も含む必要が無いビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用可能である。別の例では、データは、ローカルメモリから取り出され、ストリーミング方式でネットワーク上で伝送される等である。ビデオ符号化装置は、データを符号化し、メモリにデータを格納してよく、及び/又はビデオ復号化装置は、メモリからデータを取得し、データを復号化してよい。多くの例では、データを符号化しデータをメモリに格納する、及び/又はメモリからデータを取得しデータを復号化するのみで、互いに通信しない装置は、符号化及び復号化を実行する。
図7における例では、発信元装置10は、ビデオソース120、ビデオエンコーダ100、及び出力インタフェース140を含む。いくつかの例では、出力インタフェース140は、変調器/復調器(モデム)及び/又は送信機を含んでよい。ビデオソース120は、ビデオキャプチャ装置(例えばカメラ)、前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからのビデオデータを受信するように構成されたビデオフィードインインタフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックシステム、又はビデオデータのこれらのソースの組み合わせを含んでよい。
ビデオエンコーダ100は、ビデオソース120からのビデオデータを符号化してよい。いくつかの例では、発信元装置10は、符号化済ビデオデータを宛先装置20に出力インタフェース140を通じて直接伝送する。別の例では、符号化済ビデオデータは、代わりに、記憶装置40に格納されてよく、その結果、宛先装置20は、続いて、復号化及び/又はプレイのために符号化済ビデオデータにアクセスする。
図7の例では、宛先装置20は、入力インタフェース240、ビデオデコーダ200、及び表示装置220を含む。いくつかの例では、入力インタフェース240は、受信機及び/又はモデムを含む。入力インタフェース240は、符号化済ビデオデータをリンク30を介して及び/又は記憶装置40から受信してよい。表示装置220は、宛先装置20と統合されてよい、又は宛先装置20の外部に配置されてよい。一般に、表示装置220は、復号化されたビデオデータを表示する。表示装置220は、複数の表示装置、例えば、液晶ディスプレイ(liquid crystal display, LCD)、プラズマディスプレイ、有機発光ダイオード(organic light-emitting diode, OLED)、又は、別のタイプの表示装置を含んでよい。
図7に示されていないが、いくつか態様では、ビデオエンコーダ100及びビデオデコーダ200は、それぞれ、オーディオエンコーダ及びオーディオデコーダに統合されてよく、適切なマルチプレクサ-デマルチプレクサユニット又は他のハードウェア及びソフトウェアを含んでよく、同じデータストリーム又は別個のデータストリームにおける、オーディオ及びビデオの符号化を処理する。いくつかの例では、適用可能である場合は、マルチプレクサ-デマルチプレクサ(multiplex-demultiplex, MUX-DEMUX)ユニットは、ITU H.223マルチプレクサプロトコル又はユーザデータグラムプロトコル(user datagram protocol, UDP)などの別のプロトコルに適合してよい。
ビデオエンコーダ100及びビデオデコーダ200は、各々、複数の以下の回路、例えば、1又は複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application-specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)、ディスクリートロジック、ハードウェア、又はこれらの任意の組み合わせのうちいずれか1つとして実施されてよい。本願がソフトウェアを用いて部分的に実施される場合、装置は、適切な不揮発性コンピュータ可読記憶媒体に、ソフトウェアのために用いられる命令を格納してよく、1または複数のプロセッサを用いて、ハードウェアにおける命令を実行し、本願における技術を実施してよい。上記のコンテンツ(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせなどを含む)のうちいずれか1つは、1または複数のプロセッサとして考慮されてよい。ビデオエンコーダ100及びビデオデコーダ200は、各々、1又は複数のエンコーダ又はデコーダに含まれてよく、エンコーダ又はデコーダのいずれかは、対応する装置における組み合わせられたエンコーダ/デコーダ(コーデック)に、組み合わせられたエンコーダ/デコーダの一部として統合されてよい。
本願では、ビデオエンコーダ100は、一般に、例えばビデオデコーダ200にいくつかの情報を"シグナリング"又は"伝送"する別の装置と称されてよい。用語"シグナリング" 又は"伝送"は、圧縮されたビデオデータを復号化するために用いられる構文要素及び/又は他のデータの転送をおおよそ指してよい。転送は、リアルタイムに又はほぼリアルタイムに生じてよい。代わりに、通信は、ある期間の後に生じてよく、例えば、符号化されたビットストリームにおける構文要素が、符号化中にコンピュータ可読記憶媒体に格納される場合に生じてよく、その後、復号化装置は、構文要素が媒体に格納された後の任意の時間に構文要素を取得してよい。
ビデオエンコーダ100及びビデオデコーダ200は、高効率ビデオコーディング(HEVC)又はこの拡張などのビデオ圧縮規格に従って動作してよく、HEVCテストモデル(HM)に適合してよい。代わりに、ビデオエンコーダ100及びビデオデコーダ200は、他の業界規格、例えばITU-T H.264及びH.265規格又はそのような規格の拡張に従って動作してよい。しかしながら、本願の技術は、任意の特定の符号化及び復号化規格に限定されるものではない。
例では、図4を参照して、ビデオエンコーダ100は、現在のコーディング画像ブロックに関連する構文要素を、デジタルビデオ出力ビットストリーム(ビットストリーム又は短くストリームと称される)に符号化するように構成される。本明細書で、現在の画像ブロックのインター予測に用いられる構文要素は、インター予測データと簡潔に称され、インター予測データは、ターゲット動き情報を示すために用いられるインデックス情報を含んでよい。現在の画像ブロックを符号化するために用いられるターゲット動き情報を決定するべく、ビデオエンコーダ100は、候補動き情報リストを決定又は生成し(S410)、スクリーニングルール(例えばRDO)に従って、候補動き情報リストからターゲット動き情報を決定する(S420)ようにさらに構成される。ビデオエンコーダ100は、決定されたターゲット動き情報グループに基づいて、現在の画像ブロックを符号化するようにさらに構成される(S430)。符号化処理は本明細書では、決定されたターゲット動き情報グループに基づいて、現在の画像ブロックにおける各動き補償サブユニット(基本動き補償ユニットとも称されてよい)の動き情報を予測すること、及び、現在の画像ブロックにおける1又は複数の動き補償サブユニットの動き情報を用いて現在の画像ブロックに対してインター予測を実行すること含んでよい。
基本動き補償ユニットは、動き補償を実行するための最小単位であり、当該ユニットは、一様の動き情報を有するということを理解すべきである。本発明の実施形態では、サンプルは、基本動き補償ユニットとして用いられる。サンプル行列などは、代わりに、基本動き補償ユニットとして用いられてよい。これについては本願で限定されるものではない。
ビデオエンコーダがAMVPモードを用いてインター予測を実行する際に、現在のコーディング画像ブロック(すなわち、元のブロック)と、本願で提案された新たなインター予測方法に基づいて予測された動き情報に基づいて生成された予測ブロックとの間の差(すなわち、残差)が0である場合、ビデオエンコーダ100は、現在のコーディング画像ブロックに関連する構文要素のみを、ビットストリーム(ストリームとも称される)に符号化する必要があり、別の方法では、構文要素に加えて、対応する残差はさらにビットストリームに符号化される必要があるということは理解されるべきである。ビデオエンコーダがマージモードを用いてインター予測を実行する場合、ターゲット動き情報のインデックス情報のみが、ビットストリームに符号化される必要がある。
別の例では、図4を参照すると、ビデオデコーダ200は、現在のコーディング画像ブロックに関連する構文要素を取得するべく、ビットストリームを復号化し、候補動き情報リストを決定するように構成される(S410)。本明細書で、現在の画像ブロックのインター予測に用いられる構文要素は、インター予測データと簡潔に称され、インター予測データは、ターゲット動き情報を決定するために用いられるインデックス情報を含む。ビデオデコーダ200は、インター予測データにおけるインデックス情報に基づいてターゲット動き情報を決定し(S420)、決定されたターゲット動き情報グループに基づいて現在の画像ブロックを復号化する(S430)。復号化処理は本明細書では、決定されたターゲット動き情報グループに基づいて、現在の画像ブロックにおける1又は複数の基本動き補償ユニットの動き情報を予測すること、及び、現在の画像ブロックにおける1又は複数の基本動き補償ユニットの動き情報を用いて現在の画像ブロックに対してインター予測を実行することを含んでよい。
任意で、ビデオデコーダ200により決定された候補動き情報リストは、完全なリスト(すなわち、ビデオエンコーダにより決定された候補動き情報リストと同じリスト)であってよい、又は、不完全リスト、例えば、ターゲット動き情報を含む部分的なリストであってよい。例えば、ビットストリームにおいて保持された、ターゲット動き情報を決定するために用いられるインデックス値が、3である場合、決定された不完全リストは、インデックス値が0,1,2,及び3である候補動き情報グループを含むが、インデックス値が4,及び5などである候補動き情報グループを含まなくてもよい。
本願で提供されるビデオエンコーダ100及びビデオデコーダ200は、2つのタイプの候補動き情報グループを含む候補動き情報リストを構成するということは上記から認識されることができる。2つのタイプの候補動き情報グループは、一様に統合されたインデックス情報を有する。2つのタイプの候補動き情報グループのうちの一方が、現在の画像ブロックに適用可能ではない場合に、ビデオエンコーダ100は、候補動き情報リストに含まれる他のタイプの候補動き情報グループからターゲット動き情報を選択し、ターゲット動き情報のインデックス情報を、ビットストリームを用いてビデオデコーダ200に送信してよい。候補動き情報リストにおける候補動き情報グループが、一意のインデックス情報を有するので、ビデオエンコーダ100は、エンコーダ側により用いられる候補動き情報リスト構成方法を示す指示情報を、ビットストリームにおいて転送する必要が無い。これは、ビデオ伝送のビットオーバーヘッドを減らす。
図8は、本願の実施形態に従った例のビデオエンコーダ100のブロック図である。ビデオエンコーダ100は、ビデオを事後処理エンティティ41に出力するように構成される。事後処理エンティティ41は、ビデオエンコーダ100からの符号化済ビデオデータを処理できるビデオエンティティの例、例えば、媒体認識ネットワーク要素(MANE)又は接続装置/編集装置を表す。いくつかの場合において、事後処理エンティティ41は、ネットワークエンティティの例であってよい。いくつかのビデオ符号化システムにおいて、事後処理エンティティ41及びビデオエンコーダ100は、別個の装置の一部であってよいが、他のケースでは、事後処理エンティティ41を参照して説明される機能は、ビデオエンコーダ100を含む同じ装置により実行されてよい。例では、事後処理エンティティ41は、図7における記憶装置40の例である。
ビデオエンコーダ100は、本願において提供される方法に従ってビデオ画像ブロックインター予測を実行してよい。
図8の例では、ビデオエンコーダ100は、予測処理ユニット108、フィルタユニット106、復号化画像バッファ(decoded picture buffer, DPB)107,加算器112、変換部101、量子化器102、及びエントロピーエンコーダ103を含む。予測処理ユニット108は、インター予測部110及びイントラ予測部109を含む。画像ブロック再構成のために、ビデオエンコーダ100はさらに、逆量子化器104、逆変換部105、及び加算器111を含む。フィルタユニット106は、1または複数のループフィルタ、例えば、非ブロック化フィルタ、適応ループフィルタ(adaptive loop filter, ALF)、及びサンプル適応オフセット(sample adaptive offset, SAO)フィルタを表すように意図される。フィルタユニット106が図8においてインループフィルタとして示されるが、別の実施例では、フィルタユニット106は、事後ループフィルタとして実施されてよい。例では、ビデオエンコーダ100は、ビデオデータメモリ及び分割ユニット(図に示されていない)をさらに含んでよい。
ビデオデータメモリは、ビデオエンコーダ100のコンポーネントにより符号化されるビデオデータを格納してよい。ビデオデータメモリに格納されるビデオデータは、ビデオソース120から取得されてよい。DPB107は、イントラ及びインターコーディングモードにおいてビデオエンコーダ100によりビデオデータを符号化するために用いられる参照ビデオデータを格納する参照画像メモリであってよい。ビデオデータメモリ及びDPB107は各々、複数のメモリ装置、例えば、シンクロナスDRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は別のタイプのメモリ装置のうちいずれか1つにより構成されてよい。ビデオデータメモリ及びDPB107は、同じメモリ装置又は別個のメモリ装置により提供されてよい。様々な例では、ビデオデータメモリは、ビデオエンコーダ100の他のコンポーネントとともにチップ上に配置されてよく、又は、これらのコンポーネントに対してチップの外部に配置されてよい。
図8に示されるように、ビデオエンコーダ100は、ビデオデータを受信し、ビデオデータメモリにビデオデータを格納する。分割ユニットは、ビデオデータをいくつかの画像ブロックに分割し、これらの画像ブロックは、さらに、例えば、四分木構造又は二分木構造に基づく画像ブロック分割を通じて、より小さいブロックに分割されてよい。分割は、さらに、複数のスライス(slice)、複数のタイル(tile)、又は他のより大きな単位に分割することを含む。ビデオエンコーダ100は、通常、コーディングビデオスライスにおける画像ブロックの符号化のためのコンポーネントを説明する。スライスは、複数の画像ブロックに分けられてよい(さらに、タイルと称される複数の画像ブロックセットに分けられてよい)。予測処理ユニット108(具体的には予測処理ユニット108におけるインター予測ユニット110)は、現在の画像ブロックの候補動き情報リストを決定し、スクリーニングルールに従って候補動き情報リストからターゲット動き情報を決定し、ターゲット動き情報に基づいて現在の画像ブロックに対するインター予測を実行してよい。前処理部108は、イントラ復号化及びインター復号化の後に取得されたブロックを加算器112に提供して、残差ブロックを生成してよく、ブロックは、参照画像として用いられたコーディングされたブロックを再構成するべく、加算器111に提供される。さらに、前処理部108(具体的には、インター予測ユニット110)は、ターゲット動き情報のインデックス情報をエントロピーエンコーダ103に送信してよく、その結果、エントロピーエンコーダ103は、ターゲット動き情報のインデックス情報をビットストリームに符号化する。
予測処理ユニット108におけるイントラ予測部109は、イントラ予測符号化を、現在のコーディングブロックと同じフレーム又はスライスにおける1又は複数の隣接ブロックに対して、現在の画像ブロックに実行してよく、空間冗長を除去する。予測処理ユニット108におけるインター予測部110は、インター予測符号化を、1又は複数の参照画像における1又は複数の予測ブロックに対して、現在の画像ブロックに実行してよく、時間冗長を除去する。
具体的には、インター予測部110は、ターゲット動き情報を決定するように構成されてよい。例えば、インター予測部110は、レート歪み解析を通じて、候補動き情報リストにおける各動き情報グループのレート歪み値を計算し、候補動き情報リストから、最適レート歪み特性を有する動き情報グループを選択してよい。レート歪み解析は、通常、コーディングされたブロックと、符号化されておらず、コーディングされたブロックを生成するために符号化される元のブロックとの間の歪み(又はエラー)の量を決定し、コーディングされたブロックを生成するために用いられるビットレート(すなわち、ビットの数)を決定する。例えば、インター予測部110は、候補動き情報セットにおける動き情報グループを、現在の画像ブロックに対するインター予測の実行に用いられるターゲット動き情報として決定してよく、ここで、レート歪みコストは、候補動き情報セットにおける動き情報グループが現在の画像ブロックの符号化に用いられる場合に最も低い。以下は、インター予測符号化処理を詳細に説明する。
インター予測部110は、決定されたターゲット動き情報グループに基づいて現在の画像ブロックにおける1又は複数の基本動き補償ユニットの動き情報(例えば動きベクトル)を予測し、現在の画像ブロックにおける1又は複数の基本動き補償ユニットの動き情報(例えば動きベクトル)を用いて現在の画像ブロックの予測ブロックを取得又は生成するように構成される。インター予測部110は、参照画像リストにおける1つの参照画像において、動きベクトルが指す予測ブロックの位置を突き止めてよい。インター予測部110は、さらに、ビデオスライスの画像ブロックを復号化する場合にビデオデコーダ200により用いるために、画像ブロック及びビデオスライスと関連付けられる構文要素を生成してよい。代わりに、例では、インター予測部110は、各基本動き補償ユニットの動き情報を用いて動き補償プロセスを実行して、各基本動き補償ユニットの予測ブロックを生成し、現在の画像ブロックの予測ブロックを取得する。インター予測部110は、本明細書では、動き推定プロセス及び動き補償プロセスを実行するということは理解されるべきである。
具体的に、現在の画像ブロックのためのターゲット動き情報を選択した後、インター予測部110はエントロピーエンコーダ103に、現在の画像ブロックのターゲット動き情報を示す情報を提供してよく、その結果、エントロピーエンコーダ103は、選択されたターゲット動き情報を示す情報を符号化する。本願では、エントロピーエンコーダ103は、伝送されたビットストリームに、現在の画像ブロックに関連するインター予測データを追加してよく、インター予測データは、候補動き情報リストから選択されたターゲット動き情報を示すべく、インデックス情報を含んでよい。
イントラ予測部109は、現在の画像ブロックに対するイントラ予測を実行してよい。具体的には、イントラ予測部109は、現在のブロックの符号化に用いられるイントラ予測モードを決定してよい。例えば、イントラ予測部109は、各テスト対象の候補動き情報グループのレート歪み値を、レート歪み解析を通じて計算し、テスト対象のモードから最適レート歪特性を有するイントラ予測モードを選択してよい。任意の場合に、画像ブロックに対するターゲット動き情報を選択した後に、イントラ予測部109は、現在の画像ブロックのターゲット動き情報をエントロピーエンコーダ103に提供してよく、その結果、エントロピーエンコーダ103は、ターゲット動き情報を符号化する。
予測処理ユニット108が現在の画像ブロックの予測ブロックをインター予測及びイントラ予測を通じて生成した後に、ビデオエンコーダ100は、予測ブロックを現在のコーディング画像ブロックから引き、残差画像ブロックを形成する。加算器112は、そのような減算オペレーションを実行する1又は複数のコンポーネントを表す。残差ブロックにおける残差ビデオデータは、1又は複数のTUに含まれ、変換部101に適用されてよい。変換部101は、残差ビデオデータを、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を通じて残差変換係数に変換する。変換部101は、サンプル値領域から変換領域、例えば、周波数領域へ残差ビデオデータを変換してよい。
変換部101は、取得された変換係数を量子化器102に送信してよい。量子化器102は、さらにビットレートを減らすべく、変換係数を量子化する。いくつかの例では、量子化器102は、その後、量子化済変換係数を含む行列を走査してよい。代わりに、エントロピーエンコーダ103は、スキャンを実行してよい。
量子化の後に、エントロピーエンコーダ103は、量子化済変換係数に対して、エントロピーコーディングを実行する。例えば、エントロピーエンコーダ103は、コンテキスト適応可変長さコーディング(context adaptive variable length coding, CAVLC)、コンテキスト適応型バイナリ算術コーディング(context adaptive binary arithmetic coding, CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔分割エントロピー(PIPE)コーディング、又は別のエントロピーコーディング方法もしくは技術を実行してよい。エントロピーエンコーダ103がエントロピーコーディングを実行した後に、符号化されたビットストリームは、ビデオデコーダ200に伝送されてよく、又は続く伝送のためにアーカイブされてよく、又はビデオデコーダ200により取り出されてよい。エントロピーエンコーダ103は、さらに、コーディングする現在の画像ブロックの構文要素に対してエントロピーコーディングを実行してよく、例えば、ターゲット動き情報をビットストリームに符号化してよい。
逆量子化器104及び逆変換部105は、それぞれ、逆量子化及び逆変換を適用し、サンプル領域における残差ブロックを再構成し、例えば、残差ブロックは、参照画像の参照ブロックとして続いて用いられる。加算器111は、再構成された残差ブロックを、インター予測部110又はイントラ予測部109により生成された予測ブロックに追加し、再構成された画像ブロックを生成する。フィルタユニット106は、ブロックアーチファクト(block artifacts)などの歪みを減らすべく、再構成された画像ブロックに適用可能である。その後、再構成された画像ブロックは、復号化画像バッファ107に参照ブロックとして格納され、続くビデオフレーム又は画像におけるブロックに対してインター予測を実行するべく、インター予測部110により参照ブロックとして用いられてよい。
ビデオエンコーダ100の他の構造のバリエーションは、ビデオストリームを符号化するために用いられてよいということは理解されるべきである。例えば、いくつかの画像ブロック又は画像フレームについて、ビデオエンコーダ100は、変換部101によって処理することなく、それに対応して、逆変換部105によって処理することなく、残差信号を直接量子化してよい。代わりに、いくつかの画像ブロック又は画像フレームについて、ビデオエンコーダ100は、残差データを生成せず、それに対応して、変換部101、量子化器102、逆量子化器104、及び逆変換部105による処理は必要がない。代わりに、ビデオエンコーダ100は、再構成された画像ブロックを、フィルタユニット106により処理をすることなく、参照ブロックとして直接格納してよい。代わりに、ビデオエンコーダ100における量子化器102及び逆量子化器104は、組み合わせられてよい。
図9は、本願の実施形態に従った例のビデオデコーダ200のブロック図である。図9における例では、ビデオデコーダ200は、エントロピーデコーダ203、予測処理ユニット208、逆量子化器204、逆変換部205、加算器211、フィルタユニット206、及び復号化画像バッファ207を含む。予測処理ユニット208は、インター予測部210及びイントラ予測部209を含んでよい。いくつかの例では、ビデオデコーダ200は、実質的に、図8のビデオエンコーダ100を参照して説明される符号化処理とは逆である復号化処理を実行してよい。
復号化中に、ビデオデコーダ200は、ビデオエンコーダ100から、符号化されたビデオスライスの画像ブロック及び関連付けられた構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ200は、ネットワークエンティティ42からビデオデータを受信してよく、任意で、さらに、ビデオデータをビデオデータメモリ(図に示されていない)に格納してよい。ビデオデータメモリは、ビデオデコーダ200のコンポーネントにより復号化されるビデオデータ、例えば符号化されたビデオビットストリームを格納してよい。ビデオデータメモリに格納されたビデオデータは、例えば、記憶装置40又はカメラなどのローカルビデオソースから、ビデオデータの有線又は無線ネットワーク通信を通じて又は物理的データ記憶媒体へのアクセスにより、取得されてよい。ビデオデータメモリは、符号化されたビデオビットストリームからの符号化済ビデオデータを格納するように構成された復号化画像バッファ(CPB)として用いられてよい。そのため、ビデオデータメモリが図9に示されていないが、ビデオデータメモリ及びDPB207は、同じメモリであってよく、又は別に配置された複数のメモリであってよい。ビデオデータメモリ及びDPB207は各々、複数のメモリ装置、例えば、シンクロナスDRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、又は別のタイプのメモリ装置のうちいずれか1つにより構成されてよい。様々な例では、ビデオデータメモリは、ビデオデコーダ200の他のコンポーネントとともにチップ上に統合されてよく、又は、これらのコンポーネントに対してチップの外部に配置されてよい。
ネットワークエンティティ42は、例えば、サーバ、MANE、ビデオ編集器/接続器、又は上記で説明された技術のうちの1又は複数を実施するように構成された別のそのような装置であってよい。ネットワークエンティティ42は、ビデオエンコーダ、例えばビデオエンコーダ100を含み又は含まなくてもよい。ネットワークエンティティ42が符号化されたビデオビットストリームをビデオデコーダ200に送信する前に、ネットワークエンティティ42は、本願で説明された技術の一部を実施してよい。いくつかのビデオ復号化システムでは、ネットワークエンティティ42及びビデオデコーダ200は、別個の装置の一部であってよいが、他のケースでは、ネットワークエンティティ42を参照して説明された機能は、ビデオデコーダ200を含む同じ装置により実行されてよい。いくつかの場合において、ネットワークエンティティ42は、図7の記憶装置40の例であってよい。
ビデオデコーダ200のエントロピーデコーダ203は、量子化された係数及びいくつかの構文要素を生成するべく、エントロピー復号化をビットストリームに対して実行する。エントロピーデコーダ203は、構文要素を予測処理ユニット208に転送する。ビデオデコーダ200は、ビデオスライスレベル及び/又は画像ブロックレベルでの、1つの構文要素及び/又は複数の構文要素を受信してよい。本願では、例において、構文要素は本明細書では、現在の画像ブロックに関連するターゲット動き情報を含んでよい。
ビデオスライスがイントラ復号化(I)スライスを取得するべく復号化される場合、予測処理ユニット208のイントラ予測部209は、シグナリングされたイントラ予測モード及び現在のフレーム又は画像からの前に復号化されたブロックのデータに基づいて、現在のビデオスライスの画像ブロックの予測ブロックを生成してよい。ビデオスライスが、インター復号化された(すなわち、B又はP)スライスを取得するべく、復号化される場合、予測処理ユニット208のインター予測部210は、エントロピーデコーダ203から受信した構文要素に基づいて、現在のビデオスライスの現在の画像ブロックを復号化するために用いられるターゲット動き情報を決定し、決定されたターゲット動き情報グループに基づいて現在の画像ブロックを復号化(例えば、インター予測を実行)してよい。具体的には、インター予測部210は、現在のビデオスライスの現在の画像ブロックを予測するべく、新しいインター予測方法を用いるか否か(具体的には、本願の方法を用いて候補動き情報リストを決定するか否か)を決定してよく、構文要素が、現在の画像ブロックを予測するべく、新しいインター予測方法を用いるように命令する場合、インター予測部210は、新しいインター予測方法(例えば、構文要素により特定される新しいインター予測方法又はデフォルトの新しいインター予測方法)に基づいて、現在のビデオスライスの現在の画像ブロックの動き情報グループ又は現在の画像ブロックの基本動き補償ユニットを予測し、それにより、動き補償プロセスにおいて、現在の画像ブロックの予測された動き情報グループ又は現在の画像ブロックの基本動き補償ユニットを用いて、現在の画像ブロックの予測ブロック又は現在の画像ブロックの基本動き補償ユニットを取得又は生成する。動き情報グループは、本明細書では、参照画像情報及び動きベクトルを含んでよい。参照画像情報は、単方向/双方向予測情報、参照画像リスト数、及び参照画像リストに対応する参照画像インデックスを含んでよいが、これに限定されるものではない。インター予測について、予測ブロックは、参照画像リストにおける参照画像の1つから生成されてよい。ビデオデコーダ200は、DPB207に格納される参照画像に基づいて、参照画像リスト、すなわち、リスト0及びリスト1を構成してよい。現在の画像の参照インデックスは、参照フレームリスト0及び参照フレームリスト1のうちの1又は複数に含まれてよい。いくつかの例では、ビデオエンコーダ100は、新しいインター予測モードを用いて特定のブロックの特定の構文要素を復号化するか否か示すべくシグナリングしてよく、又は、新しいインター予測モードを用いて、特定のブロックの特定の構文要素を復号化するために用いられる特定の新しいインター予測モードを示すか否かを示すべくシグナリングしてよい。インター予測部210は、本明細書では、動き補償プロセスを実行するということは理解されるべきである。上記方法の実施形態は、2つの制御点(4パラメータ)のアフィンモデル(例えば、回転スケールアフィンモデル)、又は3つの制御点(6パラメータ)のアフィンモデル(例えば、回転スケールアフィンモデル)、又は4つの制御点(8パラメータ)のアフィンモデル(例えば、パースペクティブアフィンモデル)を用いて、現在の画像ブロックの動き情報グループ又は現在の画像ブロックの基本動き補償ユニットを予測するインター予測処理を詳細に説明した。
逆量子化器204は、ビットストリームにおいて提供され、エントロピーデコーダ203により復号化を通じて取得された量子化済変換係数に対して、逆量子化を実行、すなわち、逆量子化する。逆量子化処理は、適用される量子化の程度を、ビデオスライスにおける画像ブロックごとにビデオエンコーダ100により計算される量子化パラメータを用いて決定すること、及び適用される逆量子化の程度を同様に決定することを含んでよい。逆変換部205は、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換処理を、変換係数に適用して、サンプル領域における残差ブロックを生成する。
インター予測部210が現在の画像ブロック又は現在の画像ブロックのサブブロックに用いられる予測ブロックを生成した後に、ビデオデコーダ200は、逆変換部205からの残差ブロックと、インター予測部210により生成された対応する予測ブロックとの和を計算することにより、再構成されたブロック、すなわち、復号化された画像ブロックを取得する。加算器211は、そのような加算オペレーションを実行するコンポーネントを表す。必要な場合は、(復号化ループにおける又は復号化ループの後の)ループフィルタは、サンプル移行をスムーズにし、又はビデオ品質を別の方式で改善するためにさらに用いられてよい。フィルタユニット206は、1または複数のループフィルタ、例えば、非ブロック化フィルタ、適応ループフィルタ(ALF)、及びサンプル適応オフセット(SAO)フィルタを表してよい。フィルタユニット206が図9においてインループフィルタとして示されるが、別の実施例では、フィルタユニット206は、事後ループフィルタとして実施されてよい。例では、フィルタユニット206は、ブロック歪みを減らすべく、ブロック再構成に適用可能であり、結果は、復号化されたビデオストリームとして出力される。さらに、所与のフレーム又は画像における復号化された画像ブロックは、復号化画像バッファ207にさらに格納されてよく、復号化画像バッファ207は、続く動き補償のために用いられる参照画像を格納する。復号化画像バッファ207は、メモリの一部であってよく、さらに、表示装置(例えば図7の表示装置220)上に続いて示すために、復号化されたビデオを格納してよく、又は、そのようなメモリとは別のものであってよい。
ビデオデコーダ200の他の構造のバリエーションは、符号化されたビデオビットストリームを復号化するために用いられてよいということは理解されるべきである。例えば、ビデオデコーダ200は、フィルタユニット206により処理することなく、出力ビデオストリームを生成してよい。代わりに、いくつかの画像ブロック又は画像フレームについて、ビデオデコーダ200のエントロピーデコーダ203は、復号化、それに対応して、逆量子化器204による処理を通じて量子化係数を取得せず、逆変換部205は必要がない。
図10は、本願の実施形態に係る例のインター予測の装置1000の概略ブロック図である。インター予測の装置1000は、ビデオ画像の復号化のためのインター予測にのみ適用可能であるというわけではないが、ビデオ画像の符号化のためのインター予測にも適用可能であるということに留意すべきである。インター予測の装置1000はここでは、図8のインター予測部110に対応してよく、又は、図9のインター予測部210に対応してよいということは理解されるべきである。インター予測の装置1000は、現在の画像ブロックの候補動き情報リストを決定するように構成される候補動き情報リスト決定ユニット1001であって、候補動き情報リストは、少なくとも1つの第1候補動き情報グループと、少なくとも1つの第2候補動き情報グループと、第1候補動き情報グループ及び第2候補動き情報グループを指示するために用いられる複数のインデックス情報とを有し、第1候補動き情報グループは、現在の画像ブロックの第1隣接画像ブロック上の予め設定された位置の動き情報及び第1隣接画像ブロックの運動モデルに基づいて決定される動き情報グループであり、第2候補動き情報グループは、現在の画像ブロック上の少なくとも2つの予め設定された位置にそれぞれ隣接する少なくとも2つのサンプル位置の動き情報のセットであり、少なくとも2つのサンプル位置は、現在の画像ブロックの少なくとも1つの第2隣接画像ブロック上に配置される、候補動き情報リスト決定ユニットと、候補動き情報リストからターゲット動き情報を決定し、ターゲット動き情報に基づいて現在の画像ブロックに対してインター予測を実行するように構成される予測処理ユニット1002と、を備えてよい。
インター予測の装置1000は、2つのタイプの候補動き情報グループを含む候補動き情報リストを構成するということは認識されることができる。2つのタイプの候補動き情報グループは、一様に統合されたインデックス情報を有する。2つのタイプの候補動き情報グループのうちの一方が、現在の画像ブロックに適用可能ではない場合に、エンコーダ側は、候補動き情報リストに含まれる他のタイプの候補動き情報グループからターゲット動き情報を選択し、ターゲット動き情報のインデックス情報を、ビットストリームを用いてデコーダ側に送信してよい。候補動き情報リストにおける候補動き情報グループが、一意のインデックス情報を有するので、エンコーダ側は、エンコーダ側により用いられる動き推定方法を示す指示情報を、ビットストリームにおいて転送する必要が無い。これは、ビデオ伝送のビットオーバーヘッドを減らす。
実現可能な実施例では、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、最初に候補動き情報リストに加えられた動き情報グループに対応し、第2インデックス情報は、その後に候補動き情報リストに加えられる動き情報グループに対応し、インター予測処理ユニット1002は、具体的には、最初に第1候補動き情報グループを候補動き情報リストに追加し、その後、第2候補動き情報グループを候補動き情報リストに追加するように構成される。
第1候補動き情報グループは、運動モデルベースの動き情報グループであり、第1候補動き情報グループに基づいて符号化/復号化を実行する効率は、第2候補動き情報グループに基づいて符号化/復号化を実行する効率より高い。そのため、第1候補動き情報グループがターゲット動き情報である比較的高い確率がある。このように、第1候補動き情報グループのインデックス情報は、比較的少ない数のビットを有するインデックス情報に設定されてよい。これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
いくつかの可能な実現シナリオでは、第1隣接画像ブロックが並進運動モデルを用いる第1隣接画像ブロックと非並進運動モデルを用いる第1隣接画像ブロックとを含む場合、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、候補動き情報リストに最初に加えられる動き情報グループに対応し、第2インデックス情報は、候補動き情報リストにその後に加えられる動き情報グループに対応し、インター予測処理ユニット1002は、具体的には、非並進運動モデルを用いる第1隣接画像ブロックの数が閾値量に等しい又はより多い場合、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進モデルを用いる第1隣接画像ブロックの運動モデルに基づいて、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を導出し、現在の画像ブロックに対応する少なくとも2つの予め設定された位置の動き情報を、候補動き情報リストに、第1候補動き情報グループとして追加し、その後、第2候補動き情報グループを候補動き情報リストに追加するように構成される。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量に等しい又はより多い場合に、そのことは、現在の画像ブロックが非並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、非並進運動モデルを用いる第1隣接画像ブロックに基づいて導出される第1候補動き情報グループは、候補動き情報リストに最初に加えられてよく、その後、第2候補動き情報グループは、候補動き情報リストに加えられる。候補動き情報リストに最初に加えられる動き情報グループのインデックス情報のビットの数は、比較的小さく、ターゲット動き情報が候補動き情報リストに最初に加えられる動き情報グループである比較的高い確率がある。そのため、これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
いくつかの実現可能な実施例では、候補動き情報リストを決定する態様において、インター予測処理ユニット1002は、具体的に、候補動き情報リストの長さが、長さ閾値より小さく、第1隣接画像ブロックが、並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループを、第1候補動き情報グループとして候補動き情報リストにさらに加え、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報を、候補動き情報リストに加えるように構成される。
いくつかの可能な実現シナリオでは、第1隣接画像ブロックが、並進運動モデルを用いる第1隣接画像ブロックと、非並進運動モデルを用いる第1隣接画像ブロックとを含む場合、複数のインデックス情報における第1インデックス情報のビットの数は、複数のインデックス情報における第2インデックス情報のビットの数より少なく、第1インデックス情報は、候補動き情報リストに最初に加えられる動き情報グループに対応し、第2インデックス情報は、候補動き情報リストにその後加えられる動き情報グループに対応し、インター予測処理ユニット1002は、具体的に、非並進運動モデルを用いる第1隣接画像ブロックの数が閾値量に等しい又は未満である場合に、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループを、候補動き情報リストに第1候補動き情報グループとして最初に加え、第2候補動き情報グループを候補動き情報リストにその後加えるように構成される。
非並進運動モデルを用いる第1隣接画像ブロックの数が、閾値量に等しい又は未満である場合に、そのことは、現在の画像ブロックが非並進運動モデルを用いる画像ブロックである比較的高い確率があるということを示す。そのため、並進運動モデルを用いる第1隣接画像ブロックの動き情報グループは、候補動き情報リストに第1候補動き情報グループとして最初に加えられてよく、その後、第2候補動き情報グループは、候補動き情報リストに加えられる。候補動き情報リストに最初に加えられる動き情報グループのインデックス情報のビットの数は、比較的小さく、ターゲット動き情報が候補動き情報リストに最初に加えられる動き情報グループである比較的高い確率がある。そのため、これは、ビデオ伝送のビットオーバーヘッドを減らすことに役立つ。
いくつかの実現可能な実施例では、候補動き情報リストを決定する態様において、インター予測処理ユニット1002は、具体的に、候補動き情報リストの長さが長さ閾値より小さく、第1隣接画像ブロックが非並進運動モデルを用いる第1隣接画像ブロックをさらに含む場合に、非並進運動モデルを用いる第1隣接画像ブロック上の少なくとも2つの予め設定された位置の動き情報及び非並進モデルを用いる第1隣接画像ブロックの運動モデルに基づいて、現在の画像ブロック上の少なくとも2つの予め設定された位置の動き情報をさらに導出し、現在の画像ブロック上の少なくとも2つの予め設定された位置の動き情報を、候補動き情報リストに第1候補動き情報グループとして追加し、候補動き情報リストの長さが依然として長さ閾値より小さい場合に、ゼロ動き情報を候補動き情報リストに加えるように構成される。
いくつかの可能な実現シナリオでは、第1候補動き情報グループ及び第2候補動き情報グループの両方は、現在の画像ブロック上の第1グループの位置の動き情報であり、現在の画像ブロック上の少なくとも2つの予め設定された位置は、第2グループの位置であり、インター予測処理ユニット1002は、具体的に、第2グループの位置が第1グループの位置とは異なる場合に、位置変換式に従って及び第2の位置に対応する動き情報に基づいて、第2候補動き情報グループを導出するように構成される。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得された候補動き情報リストにおける全ての動き情報グループは、同じ位置の動き情報である。これは、動き推定の複雑性を減らす。
いくつかの可能な実現シナリオでは、第1候補動き情報グループは、現在の画像ブロック上の第1グループの位置の動き情報であり、第2候補動き情報グループは、現在の画像ブロック上の第3グループの位置の動き情報であり、予測処理ユニット1002はさらに、第1グループの位置が第3グループの位置とは異なる場合に、位置変換式に従って及び第2候補動き情報グループに基づいて、第5候補動き情報グループを導出するように構成され、第5候補動き情報グループに対応する位置は、第1グループの位置と同じである。
第1候補動き情報グループに対応する位置の数が、第2候補動き情報グループに対応する位置の数と同じである場合に、本実施形態に従って取得された候補動き情報リストにおける全ての動き情報グループは、同じ位置の動き情報である。これは、動き推定の複雑性を減らす。
装置1000がビデオ画像を復号化するように構成される場合、装置1000は、ターゲット動き情報を決定するために用いられるインデックス情報を受信するように構成されたインター予測データ取得ユニット(図で示されていない)をさらに含んでよい。
同様に、インター予測処理ユニット1002は、具体的に、ターゲット動き情報のインデックス情報に基づいて、候補動き情報リストからターゲット動き情報を決定するように構成される。
装置1000がビデオ画像を符号化するように構成される場合、装置1000は、スクリーニングルールに従って候補動き情報リストからターゲット動き情報を決定する、例えば、現在の画像ブロックに対するインター予測を実行するために用いられるターゲット動き情報として、候補動き情報リストにおける動き情報グループを決定するように具体的に構成されるインター予測モード処理ユニット1002をさらに含み、ここで、レート歪みコストは、候補動き情報リストにおける動き情報グループが現在の画像ブロックの符号化に用いられる場合に最も低い。
本願の本実施形態のインター予測の装置のモジュールは、本願のインター予測方法に含まれる様々な実行段階を実装するための機能本体であり、具体的に言えば、本願のインター予測方法の段階、及びこれらの段階の拡張、及びバリエーションを実装することができる機能本体であるということに留意すべきである。詳細には、本明細書のインター予測方法の説明を参照する。簡潔にするために、詳細は、本明細書では説明しない。
図11は、本願の実施形態に係る、符号化デバイス又は復号化デバイス(簡潔に、コーディングデバイス1100と称される)の実施例の概略ブロック図である。コーディングデバイス1100は、プロセッサ1110、メモリ1130、及びバスシステム1150を含んでよい。プロセッサ及びメモリは、バスシステムを用いて互いに接続される。メモリは、命令を格納するように構成される。プロセッサは、メモリに格納された命令を実行するように構成される。符号化デバイスのメモリは、プログラムコードを格納し、プロセッサは、メモリに格納されたプログラムコードを呼び出し、本願で説明された様々なビデオ符号化又は復号化方法を、特には、本願で説明されたインター予測方法を実行する。繰り返しを回避するために、詳細はここでは再び説明しない。
本願の本実施形態では、プロセッサ1110は、中央演算処理装置(central processing unit, CPU)であってよく、又はプロセッサ1110は、別の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は別のプログラム可能論理デバイス、ディスクリートゲートもしくはトランジスタ論理デバイス、又はディスクリートハードウェアコンポーネントなどであってよい。汎用プロセッサは、マイクロプロセッサであってよく、又はプロセッサは、任意の従来のプロセッサなどであってよい。
メモリ1130は、リードオンリメモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスを含んでよい。任意の他の適切なタイプの記憶デバイスは代わりにメモリ1130として用いられてよい。メモリ1130は、バス1150を用いてプロセッサ1110によりアクセスされるコード及びデータ1131を含んでよい。メモリ1130は、さらに、オペレーティングシステム1133及びアプリケーションプログラム1135を含んでよい。アプリケーションプログラム1135は、プロセッサ1110が、本願で説明されたビデオ符号化又は復号化方法(特に、本願で説明されたインター予測方法)を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム1135は、アプリケーション1~Nを含んでよく、さらに、本願で説明されたビデオ符号化又は復号化方法を実行するビデオ符号化又は復号化アプリケーション(簡潔に、ビデオコーディングアプリケーションと称される)を含む。
バスシステム1150は、データバスに加えて、電力バス、制御バス、およびステータス信号バス等をさらに含んでよい。しかしながら、明らかな説明のために、図における様々なタイプのバスをバスシステム1150として示す。
任意で、復号化デバイス1100は、1又は複数の出力デバイス、例えばディスプレイ1170をさらに含んでよい。例では、ディスプレイ1170は、ディスプレイと、タッチ入力を動作可能に感知するタッチユニットとを組み合わせるタッチディスプレイであってよい。ディスプレイ1170は、バス1150を用いてプロセッサ1110に接続されてよい。
本明細書で開示され説明される様々な例示的論理ブロック、モジュール、及びアルゴリズムの段階を参照して説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせにより実施されることができるということは、当業者は理解できる。ソフトウェアにより実施される場合、様々な例示的論理ブロック、モジュール、及び段階を参照して説明された機能は、1又は複数の命令又はコードとして、コンピュータ可読媒体に格納され又はそれを介して伝送され、ハードウェアベース処理ユニットにより実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、又はある場所から別の場所に(例えば通信プロトコルに従って)コンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を含んでよい。この方式では、コンピュータ可読媒体は、一般に、(1)非一時的有形コンピュータ可読記憶媒体、又は(2)信号又はキャリアなどの通信媒体に対応してよい。データ記憶媒体は、本願で説明された技術を実装するための命令、コード、及び/又はデータ構造を取得するべく、1又は複数のコンピュータ又は1または複数のプロセッサによりアクセスされることができる任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
例を目的として制限しないが、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、もしくは別のコンパクトディスク記憶装置、磁気ディスク記憶装置、もしくは別の磁気記憶装置、フラッシュメモリ、又は命令またはデータ構造の形態で所望のプログラムコードを格納するのに用いられることができ、コンピュータによりアクセスされることができる任意の他の媒体を含んでよい。さらに、任意の接続は、コンピュータ可読媒体と適切に称される。例えば、ウェブサイト、サーバ、または別の離れた場所にある発信元から、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、電波、およびマイクロ波などの無線技術を介して命令が送信された場合、それら同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、電波、およびマイクロ波などの無線技術が媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、キャリア、信号、又は他の一時的な媒体を含まないが、実際には、非一時的有形記憶媒体を意味するということは理解されるべきである。本明細書で用いられるディスク(disks)及びディスク(discs)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、及びBlu-rayディスクを含む。ディスク(disks)は、通常、磁気的にデータを再現し、それに対してディスク(discs)は、データをレーザで光学的に再現する。上記の組み合わせは、また、コンピュータ可読媒体の範囲に含まれるべきである。
命令は、1又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は均等集積回路もしくはディスクリートロジック回路などの1または複数のプロセッサにより実行されてよい。そのため、本明細書で用いられる用語"プロセッサ"は、上記の構造、又は本明細書で説明される技術の実施例に適用されてよい任意の他の構造を指してよい。さらに、いくつかの態様では、本明細書で説明される様々な例示的論理ブロック、モジュール、及び段階を参照して説明される機能は、符号化及び復号化のために構成された専用ハードウェア及び/又はソフトウェアモジュール内に提供されてよく、又は組み合わされたコーデックに組み込まれてよい。さらに、技術は、1又は複数の回路又はロジック要素内に完全に実施されてよい。
本願の技術は、無線ハンドセット、集積回路(IC)、又はセットのIC(例えばチップセット)を含む、様々な装置又はデバイスにおいて実施されてよい。様々なコンポーネント、モジュール、又はユニットは、開示された技術を実行するように構成された装置の機能態様を強調するべく本願で説明されるが、必ずしも異なるハードウェアユニットにより実施されるというわけではない。実際、上記で説明されたように、様々なユニットは、適切なソフトウェア及び/又はファームウェアとの組み合わせで、コーデックハードウェアユニットに組み合わされてよく、又は、相互運用可能なハードウェアユニット(上記で説明した1または複数のプロセッサを含む)により提供されてよい。
先述の説明は単に、本願の具体的な実装の例であり、本願の保護範囲を制限することは意図されていない。本願に開示された技術的範囲内で当業者が容易に考え出す、あらゆる変形又は置換は、本願の保護範囲に含まれるものとする。そのため、本願の保護範囲は、特許請求の範囲に係る保護範囲によって決まるものとする。