本発明の実施形態は、ビデオエンコーダ、ビデオデコーダ、および対応する方法を開示する。特定の実装形態は、本出願における特許請求の範囲、本明細書、および添付図面の説明に基づいて明らかである。
第1の態様によれば、本発明は、復号方法または動きベクトル予測方法に関する。方法は、現在コーディングブロックの最適候補動き情報を含む候補動き情報リストの構成モードを取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、候補動き情報リストの構成モードが、ブロックベースの候補動き情報リストを構成するモード、またはサブブロックベースの候補動き情報リストを構成するモードであることと、構成モードで候補動き情報リストを構成することと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定することと、最適動き情報に基づいて現在コーディングブロックを予測することとを含む。
現在の技術では、現在コーディングブロックが、もっと小さいサブブロックに区分され得ることを理解されたい。たとえば、現在コーディングブロックは、4分木(quad-tree、QT)区分、2分木(binary-tree、BT)区分、もしくは3分木(triple-tree、TT)、またはそれらの任意の組合せを使用して、繰返しを通じて区分され得る。言い換えれば、1つのコーディングブロックが、もっと小さいサブブロックに分割され得る。
この方法では、現在ブロック(場合によっては、言語習慣の差異に起因して、現在コーディングブロックは、現在ピクチャブロック、現在の符号化ブロック、現在の復号ブロック、現在の符号化されるべきブロック、現在の復号されるべきブロックなどを指すことがあり、その名称は本発明においていかなる限定もなすべきではない)の候補動き情報リストが分類される。候補動き情報は、ブロック(BLOCK)ベースの予測を通じて取得される候補動き情報、およびサブブロック(SUB-BLOCK)ベースの予測を通じて取得される候補動き情報に分類される。ブロックベースの候補動き情報リストおよびサブブロックベースの候補動き情報リストが構成される。このことは、最適候補動き情報の伝送コストを効果的に低減することができる。
第1の態様によれば、可能な実施プロセスでは、現在ブロックの最適候補動き情報を含む候補動き情報リストの構成モードを取得することは、候補動き情報リストを決定するために使用される識別子を取得することを含み、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストの構成モードは、ブロックベースの候補動き情報リストを構成するモードであり、または識別子が第2の特徴値であるとき、候補動き情報リストの構成モードは、サブブロックベースの候補動き情報リストを構成するモードである。第1の特徴値および第2の特徴値が、2つの値を表すために使用される名称であり、いかなる限定もなさないことを理解されたい。
随意に、第1の特徴値は0または1であってよく、第2の特徴値は1または0であってよい。随意に、識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、ブロックベースのモードで構成される候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成される候補動き情報リストは、list1(またはlist0)として表されてよい。特徴値の特定の値、または識別子およびリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
第1の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第1の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストの中の候補動き情報は、現在ブロックの空間的に隣接するコード化ブロックの動き情報または現在ブロックの時間的に隣接するコード化ブロックの動き情報のうちの少なくとも1つを含む。候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得される動き情報であってよい。
第1の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第1の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第1の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第1の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第1の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第1の態様によれば、可能な実施プロセスでは、最適動き情報がブロックベースの候補動き情報リストの中の動き情報である場合、現在ブロックは、最適動き情報に基づいて予測される。
第1の態様によれば、可能な実施プロセスでは、最適動き情報がサブブロックベースの候補動き情報リストの中の動き情報である場合、少なくとも以下の3つの事例が含まれる。
事例1:S23において決定された最適動き情報がaffineモード(少なくともaffine model mergeモードまたはcomplex mergeモードを含む)で取得される場合、現在ブロックのサブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックのサブブロックが予測される。現在ブロックは、複数のサブブロックを含んでよく、現在ブロックのサブブロックは、複数のサブブロックのうちのいずれか1つであってよい。可能な実施プロセスでは、現在ブロックの各サブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックの各サブブロックが、それに対応して予測される。
事例2:S23において決定された最適動き情報がATMVPモードで取得される場合、現在ブロックのサブブロックは、最適動き情報に基づいて予測される。可能な実施プロセスでは、最適候補動き情報は、動き情報の組合せであってよく、現在ブロックの各サブブロックに対応する動き情報を含み、現在ブロックの各サブブロックが、それに対応して予測される。
事例3:S23において決定された最適動き情報が表示を通じてATMVPモードで取得される場合、最適動き情報は、対応する表示に基づいて取得され、現在ブロックのサブブロックが、最適動き情報に基づいて予測される。可能な実施プロセスでは、最適候補動き情報は、表示情報に基づいて取得され得る。現在ブロックの各サブブロックに対応する動き情報は、表示情報に基づいてATMVPモードで取得され得、現在ブロックの各サブブロックが、それに対応して予測される。
第2の態様によれば、本発明は、復号方法または動きベクトル予測方法に関する。方法は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであることと、識別子に基づいて候補動き情報リストを構成することであって、ここで、識別子が第1の特徴値であるとき、候補動き情報リストがブロックベースの候補動き情報リストであり、または識別子が第2の特徴値であるとき、候補動き情報リストがサブブロックベースの候補動き情報リストであることと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとを含む。
第2の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第2の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストの中の候補動き情報は、現在ブロックの空間的に隣接するコード化ブロックの動き情報または現在ブロックの時間的に隣接するコード化ブロックの動き情報のうちの少なくとも1つを含む。候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得される動き情報であってよい。
第2の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第2の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第2の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第2の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第2の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第3の態様によれば、本発明は、動きベクトル予測方法に関する。方法は、現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであることと、識別子に基づいて候補動き情報リストを構成することであって、ここで、識別子が第1の特徴値であるとき、ブロックベースの候補動き情報リストを構成し、または識別子が第2の特徴値であるとき、サブブロックベースの候補動き情報リストを構成することと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとを含む。
第3の態様によれば、可能な実施プロセスでは、現在ブロックのサイズが事前設定済みのサンプル数量を満たさない場合、ブロックベースの候補動き情報リストを構成し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであることと、取得されたインデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することと。
この解決策の発明的概念は、次の通りである。すなわち、現在ブロックが事前設定条件を満たすかどうかを最初に決定すること、および現在ブロックが事前設定条件を満たす場合、現在ブロックの最適候補動き情報を含む候補動き情報リストを示すことができる識別子を取得し、識別子に基づいてブロックベースの候補動き情報リストまたはサブブロックベースの候補動き情報リストを構成すること、あるいは現在ブロックが事前設定条件を満たさない場合、ブロックベースの候補動き情報リストのみを構成し、取得された動き情報インデックスに基づいて、構成された候補動き情報リストから最適候補動き情報を決定すること、および現在ブロックを予測することである。
第3の態様によれば、可能な実施プロセスでは、現在ブロックが事前設定条件を満たすかどうかは、限定はしないが、現在ブロックのサイズが事前設定済みのサンプル数量を満たすかどうかを含む。
第3の態様によれば、可能な実施プロセスでは、現在ブロックのサイズが事前設定済みのサンプル数量を満たすことは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上であることを含む。
随意に、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの高さがしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの高さがしきい値未満であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であるか、または現在ブロックの高さが別のしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であり、かつ現在ブロックの高さが別のしきい値未満であることであり、あるいは現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であり、かつ現在ブロックの高さが別のしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であるか、または現在ブロックの高さが別のしきい値未満であることである。しきい値は4、8、または16であってよいが、このことは限定されない。この論理が一例にすぎず、いかなる限定もなさないことを理解されたい。加えて、幅と高さとの間の関係もまた、本発明において限定されない。
第3の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第3の態様によれば、可能な実施プロセスでは、取得されたブロックベースの候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得された動き情報であってよい。
第3の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第3の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第3の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第3の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
上記の方法は、動きベクトル予測装置またはデバイスによって実行され得る。随意に、本発明は、それに対応して、第1の態様、第2の態様、および第3の態様に従って、第4の態様、第5の態様、および第6の態様において装置を提供する。
第4の態様によれば、本発明は、復号装置または動きベクトル予測装置に関する。装置は、現在ブロックの最適候補動き情報を含む候補動き情報リストの構成モードを取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得するように構成された、取得モジュールであって、ここで、候補動き情報リストの構成モードが、ブロックベースの候補動き情報リストを構成するモード、またはサブブロックベースの候補動き情報リストを構成するモードである、取得モジュールと、構成モードで候補動き情報リストを構成するように構成された、構成モジュールと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第4の態様によれば、可能な実施プロセスでは、取得モジュールは、候補動き情報リストを決定するために使用される識別子を取得するように特に構成され、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストの構成モードは、ブロックベースの候補動き情報リストを構成するモードであり、または識別子が第2の特徴値であるとき、候補動き情報リストの構成モードは、サブブロックベースの候補動き情報リストを構成するモードである。
随意に、第1の特徴値は0または1であってよく、第2の特徴値は1または0であってよい。随意に、識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、ブロックベースのモードで構成される候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成される候補動き情報リストは、list1(またはlist0)として表されてよい。特徴値の特定の値、または識別子およびリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
第4の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第4の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストの中の候補動き情報は、現在ブロックの空間的に隣接するコード化ブロックの動き情報または現在ブロックの時間的に隣接するコード化ブロックの動き情報のうちの少なくとも1つを含む。候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得される動き情報であってよい。
第4の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第4の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第4の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第4の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第4の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第5の態様によれば、本発明は、復号装置または動きベクトル予測装置に関する。装置は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得するように構成された、取得モジュールであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードである、取得モジュールと、識別子に基づいて候補動き情報リストを構成するように構成された、構成モジュールであって、ここで、識別子が第1の特徴値であるとき、候補動き情報リストがブロックベースの候補動き情報リストであり、または識別子が第2の特徴値であるとき、候補動き情報リストがサブブロックベースの候補動き情報リストである、構成モジュールと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第5の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第5の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストの中の候補動き情報は、現在ブロックの空間的に隣接するコード化ブロックの動き情報または現在ブロックの時間的に隣接するコード化ブロックの動き情報のうちの少なくとも1つを含む。候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得される動き情報であってよい。
第5の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第5の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第5の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第5の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第5の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第6の態様によれば、本発明は、復号装置または動きベクトル予測装置に関する。装置は、現在ブロックのサイズが事前設定済みのサンプル数量を満たすとき、現在ブロックの最適候補動き情報を含む候補動き情報リストの識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得するように構成された、取得モジュールであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードである、取得モジュールと、識別子に基づいて候補動き情報リストを構成するように構成された、構成モジュールであって、識別子が第1の特徴値であるとき、ブロックベースの候補動き情報リストを構成し、または識別子が第2の特徴値であるとき、サブブロックベースの候補動き情報リストを構成する、構成モジュールと、インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第6の態様によれば、可能な実施プロセスでは、構成モジュールは、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないとき、ブロックベースの候補動き情報リストを構成するようにさらに特に構成され、ここで、現在ブロックに対して使用されるインター予測モードはマージモードである。
第6の態様によれば、可能な実施プロセスでは、現在ブロックが事前設定条件を満たすかどうかは、限定はしないが、現在ブロックのサイズが事前設定済みのサンプル数量を満たすかどうかを含む。
第6の態様によれば、可能な実施プロセスでは、現在ブロックのサイズが事前設定済みのサンプル数量を満たすことは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上であることを含む。
随意に、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの高さがしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの高さがしきい値未満であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であるか、または現在ブロックの高さが別のしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であり、かつ現在ブロックの高さが別のしきい値未満であることであり、あるいは現在ブロックのサイズが事前設定済みのサンプル数量を満たすときとは、現在ブロックの幅がしきい値以上であり、かつ現在ブロックの高さが別のしきい値以上であることであり、現在ブロックのサイズが事前設定済みのサンプル数量を満たさないこととは、現在ブロックの幅がしきい値未満であるか、または現在ブロックの高さが別のしきい値未満であることである。しきい値は4、8、または16であってよいが、このことは限定されない。この論理が一例にすぎず、いかなる限定もなさないことを理解されたい。加えて、幅と高さとの間の関係もまた、本発明において限定されない。
第6の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第6の態様によれば、可能な実施プロセスでは、取得されたブロックベースの候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得された動き情報であってよい。
第6の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第6の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第6の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第6の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第7の態様によれば、本発明は、復号方法または動きベクトル予測方法に関する。方法は、シンタックス要素を取得するためにビットストリームを構文解析することであって、ここで、シンタックス要素が、現在ブロックの最適候補動き情報の少なくともインデックスを含むことと、現在ピクチャブロックに対して第1のリストまたは第2のリストを構成すべきであることをシンタックス要素に基づいて決定することであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、第2のリストがサブブロックベースの候補動き情報リストであることと、インデックスに基づいて第1のリストまたは第2のリストから最適動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとを含む。
第7の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、(いくつかのシナリオではgeneral_mergeまたはregular_mergeとしても表現され得る)従来のマージモードで構成された候補動き情報リストである。
第7の態様によれば、可能な実施プロセスでは、従来のマージモードは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたモードを含む。詳細には、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定された従来のマージモードで構成される候補動き情報リストを含む。
第7の態様によれば、可能な実施プロセスでは、第1のリストの中の候補動き情報は、現在ピクチャブロックの左上で空間的に隣接するブロックの動き情報、現在ピクチャブロックの左に空間的に隣接するブロックの動き情報、現在ピクチャブロックの左下で空間的に隣接するブロックの動き情報、現在ピクチャブロックの右上で空間的に隣接するブロックの動き情報、または現在ピクチャブロックの右に空間的に隣接するブロックの動き情報のうちの1つまたは複数を含む。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、サブブロックベースのマージ(merge_subblock)モードで構成された候補動き情報リストである。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースのマージモードは、affine model merge、complex merge、またはATMVPのうちの少なくとも1つを含む。詳細には、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、ATMVPのサブブロックベースのマージモードのみで構成される候補動き情報リストを含む。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第7の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第7の態様によれば、可能な実施プロセスでは、シンタックス要素はリストインデックスを含み、現在ピクチャブロックに対して第1のリストまたは第2のリストを構成すべきであることをシンタックス要素に基づいて決定することは、候補動き情報リストインデックスを取得することを含み、ここで、リストインデックスが第1の特徴値であるとき、そのことは現在ピクチャブロックに対して第1のリストを構成すべきであることを示し、リストインデックスが第2の特徴値であるとき、そのことは現在ピクチャブロックに対して第2のリストを構成すべきであることを示す。
第7の態様によれば、可能な実施プロセスでは、シンタックス要素は、現在ブロックに対して使用される従来のマージモードを示すために使用される表示情報、または現在ブロックに対して使用されるサブブロックベースのマージモードを示すために使用される表示情報をさらに含む。
第7の態様によれば、可能な実施プロセスでは、シンタックス要素は、現在ブロックに対してブロックベースの候補動き情報リストが使用されることを示すために使用される表示情報、または現在ブロックに対してサブブロックベースの候補動き情報リストが使用されることを示すために使用される表示情報をさらに含む。
第7の態様によれば、可能な実施プロセスでは、第1の特徴値は0または1であってよく、第2の特徴値は1または0であってよい。随意に、識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、ブロックベースのモードで構成される候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成される候補動き情報リストは、list1(またはlist0)として表されてよい。特徴値の特定の値、または識別子およびリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
第7の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第7の態様によれば、可能な実施プロセスでは、最適動き情報がブロックベースの候補動き情報リストの中の動き情報である場合、現在ブロックは、最適動き情報に基づいて予測される。
第7の態様によれば、可能な実施プロセスでは、最適動き情報がサブブロックベースの候補動き情報リストの中の動き情報である場合、少なくとも以下の3つの事例が含まれる。
事例1:S23において決定された最適動き情報がaffineモード(少なくともaffine model mergeモードまたはcomplex mergeモードを含む)で取得される場合、現在ブロックのサブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックのサブブロックが予測される。現在ブロックは、複数のサブブロックを含んでよく、現在ブロックのサブブロックは、複数のサブブロックのうちのいずれか1つであってよい。可能な実施プロセスでは、現在ブロックの各サブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックの各サブブロックが、それに対応して予測される。
事例2:S23において決定された最適動き情報がATMVPモードで取得される場合、現在ブロックのサブブロックは、最適動き情報に基づいて予測される。可能な実施プロセスでは、最適候補動き情報は、動き情報の組合せであってよく、現在ブロックの各サブブロックに対応する動き情報を含み、現在ブロックの各サブブロックが、それに対応して予測される。
事例3:S23において決定された最適動き情報が表示を通じてATMVPモードで取得される場合、最適動き情報は、対応する表示に基づいて取得され、現在ブロックのサブブロックが、最適動き情報に基づいて予測される。可能な実施プロセスでは、最適候補動き情報は、表示情報に基づいて取得され得る。現在ブロックの各サブブロックに対応する動き情報は、表示情報に基づいてATMVPモードで取得され得、現在ブロックの各サブブロックが、それに対応して予測される。
第8の態様によれば、本発明は、復号装置または動きベクトル予測装置に関する。装置は、シンタックス要素を取得するためにビットストリームを構文解析するように構成された、取得モジュールであって、ここで、シンタックス要素が、現在ブロックの最適候補動き情報の少なくともインデックスを含む、取得モジュールと、現在ピクチャブロックに対して第1のリストまたは第2のリストを構成すべきであることをシンタックス要素に基づいて決定するように構成された、構成モジュールであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、第2のリストがサブブロックベースの候補動き情報リストである、構成モジュールと、インデックスに基づいて第1のリストまたは第2のリストから最適動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第8の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、(いくつかのシナリオではgeneral_mergeまたはregular_mergeとしても表現され得る)従来のマージモードで構成された候補動き情報リストである。
第8の態様によれば、可能な実施プロセスでは、従来のマージモードは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたモードを含む。詳細には、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定された従来のマージモードで構成される候補動き情報リストを含む。
第8の態様によれば、可能な実施プロセスでは、第1のリストの中の候補動き情報は、現在ピクチャブロックの左上で空間的に隣接するブロックの動き情報、現在ピクチャブロックの左に空間的に隣接するブロックの動き情報、現在ピクチャブロックの左下で空間的に隣接するブロックの動き情報、現在ピクチャブロックの右上で空間的に隣接するブロックの動き情報、または現在ピクチャブロックの右に空間的に隣接するブロックの動き情報のうちの1つまたは複数を含む。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、サブブロックベースのマージ(merge_subblock)モードで構成された候補動き情報リストである。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースのマージモードは、affine model merge、complex merge、またはATMVPのうちの少なくとも1つを含む。詳細には、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、ATMVPのサブブロックベースのマージモードのみで構成される候補動き情報リストを含む。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第8の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第8の態様によれば、可能な実施プロセスでは、シンタックス要素はリストインデックスを含み、構成モジュールは、候補動き情報リストインデックスを取得するように特に構成され、ここで、リストインデックスが第1の特徴値であるとき、そのことは現在ピクチャブロックに対して第1のリストを構成すべきであることを示し、またはリストインデックスが第2の特徴値であるとき、そのことは現在ピクチャブロックに対して第2のリストを構成すべきであることを示す。
第8の態様によれば、可能な実施プロセスでは、シンタックス要素は、現在ブロックに対して使用される従来のマージモードを示すために使用される表示情報、または現在ブロックに対して使用されるサブブロックベースのマージモードを示すために使用される表示情報をさらに含む。
第8の態様によれば、可能な実施プロセスでは、シンタックス要素は、現在ブロックに対してブロックベースの候補動き情報リストが使用されることを示すために使用される表示情報、または現在ブロックに対してサブブロックベースの候補動き情報リストが使用されることを示すために使用される表示情報をさらに含む。
第8の態様によれば、可能な実施プロセスでは、第1の特徴値は0または1であってよく、第2の特徴値は1または0であってよい。随意に、識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、ブロックベースのモードで構成される候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成される候補動き情報リストは、list1(またはlist0)として表されてよい。特徴値の特定の値、または識別子およびリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
第8の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
第9の態様によれば、本発明は、符号化方法または動きベクトル予測方法に関する。方法は、第1のリストを構成することであって、ここで、第1のリストがブロックベースの候補動き情報リストであることと、第2のリストを構成することであって、ここで、第2のリストがサブブロックベースの候補動き情報リストであることと、第1の候補動き情報リストおよび第2の候補動き情報リストから最適候補動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとを含む。
第9の態様によれば、可能な実施プロセスでは、方法は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストが第1のリストであり、または識別子が第2の特徴値であるとき、候補動き情報リストが第2のリストであることと、識別子およびインデックスをビットストリームに符号化することとをさらに含む。
第10の態様によれば、本発明は、符号化方法または動きベクトル予測方法に関する。方法は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得することであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストがブロックベースの候補動き情報リストであり、または識別子が第2の特徴値であるとき、候補動き情報リストがサブブロックベースの候補動き情報リストであることと、識別子およびインデックスをビットストリームに符号化することとを含む。
第11の態様によれば、本発明は、符号化方法または動きベクトル予測方法に関する。方法は、現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、第1のリストおよび第2のリストを構成することであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、第2のリストがサブブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードがマージモードであることと、第1のリストおよび第2のリストから最適候補動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとを含む。
第11の態様によれば、可能な実施プロセスでは、方法は、現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、第1のリストを構成することであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードがマージモードであることと、第1のリストから最適候補動き情報を決定することと、最適動き情報に基づいて現在ブロックを予測することとをさらに含む。
第12の態様によれば、本発明は、符号化装置または動きベクトル予測装置に関する。装置は、第1のリストおよび第2のリストを構成するように構成された、構成モジュールであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、第2のリストがサブブロックベースの候補動き情報リストである、構成モジュールと、第1の候補動き情報リストおよび第2の候補動き情報リストから最適候補動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第12の態様によれば、可能な実施プロセスでは、装置は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得するように構成された、取得モジュールであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストが第1のリストであり、または識別子が第2の特徴値であるとき、候補動き情報リストが第2のリストである、取得モジュールと、識別子およびインデックスをビットストリームに符号化するように構成された、符号化モジュールとをさらに含む。
第13の態様によれば、本発明は、符号化装置または動きベクトル予測装置に関する。装置は、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得するように構成された、取得モジュールであって、ここで、現在ブロックに対して使用されるインター予測モードがマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストがブロックベースの候補動き情報リストであり、または識別子が第2の特徴値であるとき、候補動き情報リストがサブブロックベースの候補動き情報リストである、取得モジュールと、識別子およびインデックスをビットストリームに符号化するように構成された、符号化モジュールとを含む。
第14の態様によれば、本発明は、符号化装置または動きベクトル予測装置に関する。装置は、現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、第1のリストおよび第2のリストを構成するように構成された、構成モジュールであって、ここで、第1のリストがブロックベースの候補動き情報リストであり、第2のリストがサブブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードがマージモードである、構成モジュールと、第1のリストおよび第2のリストから最適候補動き情報を決定するように構成された、決定モジュールと、最適動き情報に基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第14の態様によれば、可能な実施プロセスでは、構成モジュールは、現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、第1のリストを構成するようにさらに構成され、ここで、第1のリストはブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードはマージモードである。
第9の態様〜第14の態様(第9の態様、第10の態様、第11の態様、第12の態様、第13の態様、および第14の態様のうちのいずれか1つを含む)によれば、可能な実施プロセスでは、第1の特徴値は0または1であってよく、第2の特徴値は1または0であってよい。随意に、識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、ブロックベースのモードで構成される候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成される候補動き情報リストは、list1(またはlist0)として表されてよい。特徴値の特定の値、または識別子およびリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定されたマージモードで構成される候補動き情報リストを含む。たとえば、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。いくつかの可能な構成モードについては、実施形態S11.1における関係する説明を参照されたい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、ブロックベースの候補動き情報リストの中の候補動き情報は、現在ブロックの空間的に隣接するコード化ブロックの動き情報または現在ブロックの時間的に隣接するコード化ブロックの動き情報のうちの少なくとも1つを含む。候補動き情報リストの中のすべての候補動き情報は、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、候補動き情報のうちのいくつかは、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかは、別の方式で取得される動き情報であってよい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成される候補動き情報リストを含む。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。このことは、本発明では詳細に列挙または説明されない。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードで構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、以下のことに限定はしないが、最初にアフィンコード化ブロックを見つけること、アフィンコード化ブロックの制御点の動き情報を取得すること、アフィン変換モデルに従って現在コーディングブロックの左上頂点の動き情報および右上頂点の動き情報を導出すること、ならびに利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.1における関係する説明を参照されたい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、制御点ベースの複合マージモード(complex mergeモード)で構成され得る。現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、導出を通じて各制御点の動き情報を取得すること、非平行移動の(アフィンモデルベースの)動き情報を取得するために制御点の動き情報を合成すること、制御点の動き情報を合成することによって取得されたこれらのモデルを事前構成済みのシーケンスでトラバースすること、有効なモデルにおける候補動き情報の利用可能性をチェックするとともに反復された項目を除去すること、および反復された無資格の情報を除外して動き情報を候補動き情報リストの中に挿入することである。いくつかの可能な構成モードについては、実施形態S12.2における関係する説明を参照されたい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、サブブロックベースの候補動き情報リストは、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)モードで構成され得る。具体的に言えば、ATMVP候補動き情報が、事前設定された規則に従って候補動き情報リストの中に追加される。特定の実施方法は、たとえば、限定はしないが、最初にコロケート参照ピクチャ(Collocated reference picture)を決定すること、次いで、現在コーディングユニット(現在ブロック)を各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割すること、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報を取得すること、動き情報をスケーリングすること、動き情報を各現在コーディングサブユニットの動き情報に変換すること、および利用可能性をチェックするとともに反復された項目を除去した後、利用可能なロケーションブロックに対応する動き情報を候補動き情報リストの中に連続的に挿入することである。いくつかの可能な構成モードについては、実施形態S12.3における関係する説明を参照されたい。
第9の態様〜第14の態様によれば、可能な実施プロセスでは、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
本発明による上記の可能な方法の他の特徴および実装形態が、本発明および様々な実装形態において提供される対応する装置の機能に依存し得ることを理解されたい。
第15の態様によれば、本発明は、動きベクトル予測方法に関する。方法は、現在ブロックの最適候補動き情報のインデックス情報を取得することと、インデックス情報に基づいて候補動き情報リストを構成することであって、ここで、候補動き情報リストの中に含まれる動きベクトルを取得するモードが、インデックス情報のフィールドとともに変わることと、インデックス情報に基づいて候補動き情報リストの中の最適動きベクトルを決定することと、最適動きベクトルに基づいて現在ブロックを予測することとを含む。
第15の態様によれば、可能な実施プロセスでは、インデックス情報が第1の特徴値であるとき、候補動き情報リストは、HEVCモードまたはnon-adjacentモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第15の態様によれば、可能な実施プロセスでは、インデックス情報が第2の特徴値であるとき、候補動き情報リストは、AFFINEモード、ATMVPモード、STMVPモード、またはplanarモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第15の態様によれば、可能な実施プロセスでは、インデックス情報が第3の特徴値であるとき、候補動き情報リストは、HEVCモード、non-adjacentモード、ATMVPモード、またはSTMVPモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第15の態様によれば、可能な実施プロセスでは、インデックス情報が第4の特徴値であるとき、候補動き情報リストは、AFFINEまたはplanarモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第15の態様によれば、可能な実施プロセスでは、現在ブロックの最適候補動き情報のインデックス情報を取得することは、現在ブロックが第1の事前設定条件を満たす場合、取得されたインデックス情報が、現在ブロックの候補動き情報リストを構成すべきであることを示すために使用されることを含む。
第15の態様によれば、可能な実施プロセスでは、現在ブロックの最適候補動き情報のインデックス情報を取得することは、現在ブロックが第2の事前設定条件を満たす場合、取得されたインデックス情報が、現在サブブロックの候補動き情報リストを構成すべきであることを示すために使用されることを含み、ここで、現在サブブロックは、現在ブロックを分割することによって取得される。
第15の態様によれば、可能な実施プロセスでは、現在ブロックの最適候補動き情報のインデックス情報を取得することは、現在ブロックが第1の事前設定条件を満たさない場合、最適候補動き情報を含む候補動き情報リストのインデックスを取得するためにビットストリームを構文解析することを含む。
第16の態様によれば、本発明は、動きベクトル予測装置に関する。装置は、現在ブロックの最適候補動き情報のインデックス情報を取得するように構成された、取得モジュールと、インデックス情報に基づいて候補動き情報リストを構成するように構成された、構成モジュールであって、ここで、候補動き情報リストの中に含まれる動きベクトルを取得するモードが、インデックス情報のフィールドとともに変わる、構成モジュールと、インデックス情報に基づいて候補動き情報リストから最適動きベクトルを決定するように構成された、決定モジュールと、最適動きベクトルに基づいて現在ブロックを予測するように構成された、予測モジュールとを含む。
第16の態様によれば、可能な実施プロセスでは、インデックス情報が第1の特徴値であるとき、候補動き情報リストは、HEVCモードまたはnon-adjacentモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第16の態様によれば、可能な実施プロセスでは、インデックス情報が第2の特徴値であるとき、候補動き情報リストは、AFFINE、ATMVP、STMVP、またはplanarモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第16の態様によれば、可能な実施プロセスでは、インデックス情報が第3の特徴値であるとき、候補動き情報リストは、HEVCモード、non-adjacentモード、ATMVPモード、またはSTMVPモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第16の態様によれば、可能な実施プロセスでは、インデックス情報が第4の特徴値であるとき、候補動き情報リストは、AFFINEモードまたはplanarモードのうちの少なくとも1つで取得された候補動きベクトルを含む。
第17の態様によれば、本発明は、ビデオコーディングデバイスに関する。ビデオコーディングデバイスは、互いに結合された不揮発性メモリおよびプロセッサを含む。プロセッサは、上記の態様または可能な設計方法のうちのいずれか1つを実行するために、メモリの中に記憶されたプログラムコードを呼び出す。
第18の態様によれば、本発明は、コンピュータ可読記憶媒体に関する。コンピュータ可読記憶媒体は、コンピュータプログラムを記憶する。コンピュータプログラムがプロセッサ上で動作させられるとき、上記の態様または可能な設計方法のうちのいずれか1つが実施される。
第19の態様によれば、本発明は、メモリおよびプロセッサを含む、デコーダに関する。デコーダは、上記の態様のうちのいずれか1つにおける復号方法、復号装置、および可能な実施解決策を、それに対応して実施するように構成され得る。
第20の態様によれば、本発明は、メモリおよびプロセッサを含む、エンコーダに関する。エンコーダは、上記の態様のうちのいずれか1つにおける符号化方法、符号化装置、および可能な実施解決策を、それに対応して実施するように構成され得る。
エンコーダおよびデコーダの機能が、互いに結合されてよいことを理解されたい。したがって、いくつかの可能な場合には、デコーダ側における方法がエンコーダ側に相当することがあり、エンコーダ側における方法がデコーダ側に相当することがある。本発明では詳細は説明されない。
実施解決策の多様性に起因して、上記の可能な実装形態および説明が、組合せ論理に違反することなく、自由に組み合わせられてよいことを理解されたい。態様および対応する実現可能な実装形態において取得される有益な効果は類似する。詳細は再び説明されない。1つまたは複数の実施形態の詳細が、添付図面および以下の説明の中で説明される。他の特徴、目的、および利点は、本明細書、添付図面、および特許請求の範囲から明らかである。
以下のことは、本出願の実施形態の中の添付図面を参照しながら、本出願の実施形態を説明する。
図1に示すように、符号化プロセスは、主に以下の段階、すなわち、イントラ予測(Intra Prediction)、インター予測(Inter Prediction)、変換(Transform)、量子化(Quantization)、エントロピー符号化(Entropy encode)、ループ内フィルタ処理(in-loop filtering)(主にデブロッキングフィルタ処理)などを含む。ピクチャがコーディングブロックに分割された後、イントラ予測またはインター予測が実行される。次いで、残差が取得された後、変換および量子化が実行される。最後に、エントロピー符号化が実行され、ビットストリームが出力される。本明細書では、コーディングブロックは、サイズがM×Nサンプルのアレイである(ただし、MはNに等しくても等しくなくてもよい)。加えて、各サンプルロケーションのサンプル値が与えられる。
イントラ予測とは、現在ピクチャの中の再構成されたエリアの中のサンプルのサンプル値に基づいて、現在コーディングブロックの中のサンプルのサンプル値を予測することを意味する。
インター予測とは、参照ブロックの中のサンプルのサンプル値を現在コーディングブロックの中のサンプルのサンプル値の予測情報または予測子(以下では予測情報と予測子との間で区別は行われない)として使用して、現在ピクチャの中の現在コーディングブロック用の整合した参照ブロックに対する再構成されたピクチャを探索すること(ここで、このプロセスは動き推定(Motion estimation、ME)(図2Bに示すような)と呼ばれる)、および現在コーディングブロックの動き情報を送信することを意味する。
現在コーディングブロックの動き情報が、予測方向表示情報(一般に、前方予測、後方予測、または双方向予測)、参照ブロックを指し示す1つまたは2つの動きベクトル(Motion vector、MV)、および参照ブロックが位置するピクチャの表示情報(一般に、reference indexとして示される)を含むことに留意されたい。
前方予測とは、現在コーディングブロック用の参照ブロックを取得するために、前方の参照ピクチャセットから参照ピクチャを選択することを意味する。後方予測とは、現在コーディングブロック用の参照ブロックを取得するために、後方の参照ピクチャセットから参照ピクチャを選択することを意味する。双方向予測とは、参照ブロックを取得するために、前方の参照ピクチャセットから参照ピクチャを、かつ後方の参照ピクチャセットから参照ピクチャを選択することを意味する。双方向予測方法が使用されるとき、現在コーディングブロックは2つの参照ブロックを有する。各参照ブロックは、表示のために動きベクトルおよび参照インデックスを必要とする。現在ブロックの中のサンプルのサンプル値の予測子は、2つの参照ブロックの中のサンプルのサンプル値に基づいて決定される。
動き推定プロセスにおいて、現在コーディングブロックは、参照ピクチャの中の複数の参照ブロックを試すことを必要とし、レートひずみ最適化(Rate-distortion optimization、RDO)を通じて、または別の方法を使用することによって、特定の参照ブロック、すなわち予測のために最終的に使用される特定のブロックが決定される。
イントラ予測またはインター予測を通じて予測情報が取得された後、現在コーディングブロックの中のサンプルのサンプル値から、対応する予測情報を減算することによって、残差情報が取得される。次いで、離散コサイン変換(Discrete Cosine Transformation、DCT)などの方法を使用することによって残差情報が変換される。次いで、量子化およびエントロピー符号化を通じてビットストリームが取得される。再構成された信号を取得するために、予測された信号と再構成された残差信号とを加算することによる結果に対して、フィルタ処理演算が実行される必要がある。再構成された信号は、後続の符号化のための基準信号として使用される。
復号は符号化の逆のプロセスである。たとえば、図3に示すように、エントロピー復号、逆量子化、および逆変換が最初に実行されて、残差情報を取得し、ビットストリームが復号されて、現在コーディングブロックに対してイントラ予測が使用されているのか、それともインター予測が使用されているのかを決定する。イントラ予測が使用されている場合、イントラ予測方法を使用することによって、現在コーディングブロックの周囲の再構成されたエリアの中のサンプルのサンプル値に基づいて予測情報が構成される。インター予測が使用されている場合、動き情報が構文解析される必要があり、構文解析を通じて取得された動き情報に基づいて、再構成されたピクチャの中で参照ブロックが決定され、そのブロックの中のサンプルのサンプル値が予測情報として使用される。そのようなプロセスは動き補償(Motion compensation、MC)と呼ばれる。再構成された情報は、予測情報と残差情報とを加算することによる結果に対してフィルタ処理演算を実行することによって取得され得る。
HEVCでは、2つのインター予測モード、すなわち、高度動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードおよびマージ(Merge)モードが使用される。
AMVPモードでは、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報に基づいて、候補動きベクトルリストが構成される。次いで、候補動きベクトルリストから最適動きベクトルが決定され、最適動きベクトルは、現在コーディングブロックの動きベクトル予測子(Motion vector predictor、MVP)として使用される。レートひずみコストが式(1)に従って計算され、ただし、Jは、レートひずみコストRD Costを表し、SADは、元のサンプル値と候補動きベクトル予測子を使用することによって実行される動き推定を通じて取得される予測サンプル値との間の絶対差分の合計(Sum of Absolute Differences、SAD)を表し、Rは、ビットレートを表し、λは、ラグランジュ乗数を表す。エンコーダ側は、候補動きベクトルリストの中の選択された動きベクトル予測子のインデックス値、および参照インデックス値を、デコーダ側に転送する。さらに、現在コーディングブロックの実際の動きベクトルを取得するために、MVPを中心にした隣接エリアの中で動き探索が実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の差分(Motion vector difference)をデコーダ側に転送する。
J=SAD+λR (1)
mergeモードでは、現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの動き情報に基づいて、候補動き情報リストが最初に構成され、次いで、レートひずみコスト基準に従って候補動き情報リストから最適動き情報が決定され、最適動き情報は、現在コーディングブロックの動き情報として使用され、候補動き情報リストの中の最適動き情報のロケーションのインデックス値(やはり以下の説明に適用されるmerge indexとして示される)が、次いで、デコーダ側に転送される。現在コーディングブロックの空間的または時間的に隣接するコード化ブロックの候補動き情報が図4に示される。空間的な候補動き情報は、空間的に隣接する5つのブロック(A0、A1、B0、B1、およびB2)に由来する。隣接ブロックが利用不可能であるか、または隣接ブロックがイントラコーディングされる場合、隣接ブロックの動き情報は候補動き情報リストの中に追加されない。現在ピクチャの参照ピクチャおよびピクチャ順序カウント(Picture order count、POC)に基づいて、参照ピクチャの中のコロケートブロックのMVをスケーリングすることによって、現在コーディングブロックの時間的な候補動き情報が取得される。参照ピクチャの中のロケーションTにおけるブロックが利用可能であるかどうかが、最初に決定される。そのブロックが利用不可能である場合、ロケーションCにおけるブロックが選択される。
候補動きベクトルリスト(略して候補リストと呼ばれることがある、候補のリストとも呼ばれる)がAMVPモードとmergeモードの両方において維持される必要があることを知ることができる。新たな動き情報が候補リストの中に追加される前に、同じ動き情報がリストの中にすでに存在するかどうかが、最初にチェックされる。同じ動き情報がリストの中に存在する場合、その動き情報はリストの中に追加されない。そのチェックプロセスは、候補動きベクトルリストのプルーニングと呼ばれる。リストのプルーニングはリストの中での同じ動き情報の存在を防止し、このことは冗長なレートひずみコスト計算を回避する。
HEVCインター予測では、コーディングブロックの中のすべてのサンプルは同じ動き情報を使用し、次いで、コーディングブロックのサンプルの予測子を取得するために、動き情報に基づいて動き補償が実行される。しかしながら、コーディングブロックの中で、すべてのサンプルが同じ動き特性を有するとは限らない。同じ動き情報を使用することは、動き補償予測の不正確さを招くことがあり、より多くの残差情報をもたらすことがある。
既存のビデオコーディング規格では、平行移動の動きモデルによるブロック整合動き推定が使用され、ブロックのすべてのサンプルが、一致した動きを有することが想定される。しかしながら、実世界では、様々な動きがある。多くの物体、たとえば、回転している物体、異なる方向で回転しているローラーコースター、花火、および映画の中のいくつかのスタントは、平行移動の動きをなしていない。これらの動いている物体の場合、特にUGC(User Generated Content)シナリオにおけるそれらは、既存のコーディング規格において平行移動の動きモデルベースのブロック動き補償技術を使用することによってコーディングが実行される場合、コーディング効率は大幅に影響を受ける。したがって、非平行移動の動きモデルについての検討が、当業界においてかつHuaweiによって行われている。詳細には、コーディング効率をさらに改善するために、アフィン変換ベースの動きモデルについて綿密な検討が行われている。
非平行移動の動きモデルベースの予測とは、現在コーディングブロックの中の各動き補償サブユニットの動き情報が、エンコーダ側とデコーダ側の両方において同じ動きモデルを使用することによって導出されることを意味し、予測効率を改善するために、動き補償サブユニットの動き情報に基づいて動き補償が実行されて予測ブロックを取得する。一般に使用される動きモデルは、6パラメータアフィン変換モデルおよび4パラメータアフィン変換モデルを含む。
4パラメータアフィン変換モデルが式(2)に示される。
4パラメータアフィン変換モデルは、2つのサンプルの動きベクトル、および現在コーディングブロックの左上頂点のサンプルに対するその動きベクトルの座標を使用することによって表されてよく、動きモデルパラメータを表すために使用されるサンプルは、制御点として示される。制御点として左上頂点(0,0)および右上頂点(W,0)におけるサンプルが使用される場合、現在コーディングブロックの左上頂点および右上頂点における制御点の動きベクトル(vx0,vy0)および(vx1,vy1)が最初に決定される。次いで、現在コーディングブロックの中の各動き補償サブユニットの動き情報が式(3)に従って導出され、ただし、(x,y)は、動き補償サブユニットの、現在コーディングブロックの左上頂点におけるサンプルに対する座標を表し、WおよびHは、それぞれ、現在コーディングブロックの幅および高さを表す。
6パラメータアフィン変換モデルが式(4)に示される。
6パラメータアフィン変換モデルは、3つのサンプルの動きベクトル、および現在コーディングブロックの左上サンプルに対するそれらの座標を使用することによって表されてよい。制御点として左上頂点(0,0)、右上頂点(W,0)、および左下頂点(0,H)におけるサンプルが使用される場合、現在コーディングブロックの左上頂点、右上頂点、および左下頂点における制御点の動きベクトル(vx0,vy0)、(vx1,vy1)、および(vx2,vy2)が最初に決定される。次いで、現在コーディングブロックの中の各動き補償サブユニットの動き情報が式(5)に従って導出され、ただし、(x,y)は、動き補償サブユニットの、現在コーディングブロックの左上頂点におけるサンプルに対する座標を表し、Wは、現在コーディングブロックの幅を表す。
8パラメータ双線形モデルが式(6)に示される。
8パラメータ双線形モデルは、4つのサンプルの動きベクトル、および現在コーディングブロックの左上頂点のサンプルに対する動きベクトルの座標を使用することによって表されてよい。制御点として左上頂点(0,0)、右上頂点(W,0)、左下頂点(0,H)、および右下頂点(W,H)のサンプルが使用される場合、現在コーディングブロックの左上頂点、右上頂点、左下頂点、および右下頂点制御点の動きベクトル(vx0,vy0)、(vx1,vy1)、(vx2,vy2)、および(vx3,vy3)が最初に決定される。次いで、現在コーディングブロックの中の各動き補償サブユニットの動き情報が式(7)に従って導出され、ただし、(x,y)は、動き補償サブユニットの、現在コーディングブロックの左上頂点におけるサンプルに対する座標を表し、WおよびHは、それぞれ、現在コーディングブロックの幅および高さである。
非平行移動の動きモデルに従って予測されるコーディングブロックは、非平行移動コーディングブロックと呼ばれる。
概して、非平行移動コーディングブロックの制御点の動き情報は、アフィン変換ベースの高度動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードまたはアフィン変換ベースのマージ(Merge)モードで取得され得る。
以下のことは、4パラメータアフィン変換モデルにおける2つの制御点の動き情報を取得するための方法を説明する。
アフィン変換ベースの高度動きベクトル予測モード:
(1)候補動きベクトル2タプルの構成
現在コーディングブロックの左上頂点および右上頂点の動きベクトルは、現在コーディングブロックの隣接するコード化ブロックの動き情報に基づいて決定される。図5に示すように、左上頂点の隣接するコード化ブロックA、B、およびCの動きベクトルは、現在コーディングブロックの左上頂点の候補動きベクトルとして使用され、右上頂点の隣接するコード化ブロックDおよびEの動きベクトルは、現在ブロックの右上頂点の候補動きベクトルとして使用される。左上頂点の候補動きベクトルおよび右上頂点の候補動きベクトルは、2つの制御点の候補動きベクトル2タプルキューをなすように合成される。
{(v0A,v1D),(v0A,v1E),(v0B,v1D),(v0B,v1E),(v0C,v1D),(v0C,v1E)}
v0は、左上頂点の候補動きベクトルを表し、v1は、右上頂点の候補動きベクトルを表す。キューの中の候補動きベクトルのロケーションにインデックスが付けられ、ただし、インデックス値は、0、1、2、3、4、および5である。
随意に、候補動きベクトル2タプルキューは、特定の規則に従ってプルーニングおよびソートされ、キューの中に含まれる特定の数量の要素を取得するために、候補動きベクトル2タプルキューに対して切り捨ておよび充填が実行され得る。
(2)最適候補動きベクトル2タプルの決定
エンコーダ側において、現在コーディングブロックの中の(特定の方法を使用することによる分割を通じて取得された、サイズがN_1×N_2のサンプルまたはサンプルブロックである)各動き補償サブユニットの動きベクトルが、式(3)に従って各候補動きベクトル2タプルを使用することによって取得されて、各動き補償サブユニットの動きベクトルが指し示す先の、参照ピクチャの中のロケーションのサンプル値を取得する。サンプル値は、アフィン変換動き補償用の、現在コーディングブロックの中のサンプルのサンプル値の予測子として使用される。現在コーディングブロックの中のサンプルのものである元の値と予測子との間の差分の平均値が計算され、最小差分平均に対応する、候補動きベクトル2タプルの中の動きベクトルが、現在コーディングブロックの中の2つの制御点の動きベクトル予測子として選択される。候補動きベクトル2タプルキューの中の2タプルのロケーションを表すインデックス値が、ビットストリームに符号化されデコーダへ送られる。
デコーダ側において、2つの制御点の動きベクトル予測子を取得するために、インデックス値が構文解析される。
(3)制御点の動きベクトルの決定
エンコーダ側において、2つの制御点の動きベクトルを取得するために、2つの制御点の動きベクトル予測子を探索始点として使用することによって特定の探索範囲内で動き探索が実行される。2つの制御点の動きベクトルと動きベクトル予測子との間の差分が、デコーダ側に転送される。
デコーダ側において、制御点の動きベクトルを取得するために、2つの制御点の動きベクトル差分が構文解析され、動きベクトル予測子に追加される。
図6は、本発明によるシステムフレームワークを示す。本発明は、主にシステムフレームワークの中でのビデオ符号化およびビデオ復号に関する。既存のビデオ伝送システムは、一般に、収集、符号化、送出、受信、復号、および表示を含む。収集モジュールは、カメラまたはカメラモジュール、およびプリプロセッサを含み、光信号をデジタルビデオシーケンスに変換する。次いで、ビデオシーケンスは、エンコーダによって符号化され、ビットストリームに変換される。ビットストリームは、次いで、送出モジュールによってネットワークを通じて受信モジュールへ送られ、受信モジュールによって変換され、デコーダによって復号されるとともにビデオシーケンスに再構成される。最後に、再構成されたビデオシーケンスがレンダリングなどの後処理を受け、表示のためにディスプレイデバイスへ送られる。
本発明は、主にシステムフレームワークの中でのビデオ符号化およびビデオ復号に関する。
本発明の適用シナリオが、図1および図2に示すハイブリッドコーディングフレームワークベースのビデオ符号化および復号システムに示される。図1に示すような符号化プロセスは主に、イントラ予測(Intra Prediction)、インター予測(Inter Prediction)、変換(Transform)、量子化(Quantization)、エントロピー符号化(Entropy encode)、ループフィルタ処理(Loop filter)、および他の段階を含む。これらの手順は主に、それぞれ、以下の動作、すなわち、現在ピクチャの隣接するサンプルから予測ブロックを取得すること、MV情報を算出し参照ピクチャから予測ブロックを取得すること、残差をサンプル領域から変換領域に変換すること、変換領域係数を圧縮すること、符号化情報を圧縮すること、および再構成されたピクチャに対して後処理を実行することを実施するために使用される。図2に示すような復号システムにおける動作は、符号化プロセスにおいて実行される逆のプロセスである。本発明は、主にビデオ符号化および復号システムにおけるインター予測に適用される。
実施形態1(エンコーダ側)
簡単な説明:list0およびlist1が、現在ブロック(Block)に対して様々な動き情報リスト構成モードで構成される。list0は、基本予測単位としてブロックを使用することによって現在ブロックが予測されるときに、現在ブロックに対して使用される候補動きベクトルリストである。list1は、基本予測単位としてサブブロックを使用することによって現在ブロックが予測されるときに、現在ブロックに対して使用される候補動きベクトルリストである。現在ブロックは複数のサブブロックに分割されてよく、各サブブロックは正方形または長方形の形状をなしてよい。サブブロックは、たとえば、限定はしないが、サイズが4×4、8×8、または4×8であってよい。list0およびlist1は候補動き情報を含む。候補動き情報は、動きベクトル、予測方向、参照インデックスなどを含む。手短に言えば、list0およびlist1は、現在ブロックの特徴に適用可能な様々な動き情報リスト構成モードで構成される。
たとえば、block-based list0は、HEVCモードおよびnon-adjacentモードを含んでよく、
subblock-based list1は、AFFINEモード(動きモデルベースのアフィンモデルマージモードおよび/または制御点ベースの複合マージモードを含む)、ATMVPモード、STMVPモード、およびplanarモードを含んでよい。
特定の実施プロセスでは、block-based list0は、HEVCモードおよびnon-adjacentモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよく、subblock-based list1は、AFFINEモード、ATMVPモード、STMVPモード、およびplanarモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。たとえば、list1は、代替として、ATMVPモードのみを含んでよい。本出願では、説明のために複数のモードが使用されることがある。
S11:現在コーディングブロックの第1の候補動き情報リスト(List0)を構成し、すなわち、ブロックベースの候補動き情報リストを構成する。List0の中の動き情報は、ブロックベースの候補動き情報と呼ばれることがある。
S11.1:現在コーディングブロックの空間的および/または時間的に隣接するコード化ブロックの動き情報が、HEVCモードにおける事前設定された規則に従って第1の候補動き情報リストの中に追加される。
図7は、空間的に隣接する候補ブロックの動き情報を示す。一番左において、空間的な候補ブロックが、以下のシーケンス、すなわち、a1、b1、b0、a0、および(b2)で選択される。最初の4個のブロックのうちのいずれかが利用不可能である場合、b2の動き情報が存在し利用可能であるかどうかがチェックされる。b2の動き情報が存在し利用可能である場合、b2の動き情報が候補動き情報リストの中に追加される。次いで、時間的な候補動き情報および/またはゼロベクトルが、動き情報リストの中に追加されるべきものと見なされる。空間的な候補および時間的な候補を選択するための事前設定された複数の規則があり得ることを理解されたい。このことは本発明において限定されない。
可能な実施プロセスでは、導出シーケンスは、a0、b0、b1、a1、およびb2であり得る。ロケーションa0、b0、b1、およびa1における任意のCUが利用不可能であるか(たとえば、CUが別のsliceまたは別のtileに属するか)、またはCUがイントラコーディングされる場合のみ、ロケーションb2が検討される。候補ロケーションa1が追加された後、残りの候補が追加されるときに冗長性チェックが実行される必要がある。冗長性チェックは、同じ動き情報を有する候補項目がリストの中に追加されることを防止し、それによって、コーディング効率を改善する。計算の複雑さを低減するために、冗長性チェックにおいていくつかの候補が選択的に検討されてよい。たとえば、冗長性チェックのために使用される対応する候補に対する同じ動き情報がないときのみ、候補がリストの中に追加される。
可能な一実装形態では、空間的な候補ブロックの最大数量は4個である。加えて、(反復された無資格の情報を除外して)list0の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入または付加が停止される。candidates List1の中の候補動き情報の断片の最大数量MaxNumMergeCandがビットストリームの中で送信されてよく、または符号化および復号の際にデフォルト値が使用されてもよい。この実施形態では、候補動き情報断片の最大数量は、たとえば、5個である。
随意に、ブロックベースの候補動き情報リストは、HEVC規格またはHEVC規格の発展型バージョンに従って規定された(いくつかのシナリオではgeneral_mergeまたはregular_mergeモードとしても表現され得る)従来のマージモードで構成される候補動き情報リストを含む。ブロックベースの候補動き情報リストの中のすべての候補動き情報が、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよい。代替として、いくつかの候補動き情報が、現在ブロックの空間的または時間的に隣接するコード化ブロックの動き情報であってよく、候補動き情報のうちのいくつかが、別の方式で取得される動き情報であってよい。
S11.2:現在コーディングブロックの空間的に隣接しないコード化ブロックの動き情報を、事前設定された規則に従って第1の候補動き情報リストに追加する。
空間的に隣接しない候補ブロックの動きベクトルが以下の図(図8)に示される。空間的な候補ブロックが、以下のシーケンス、すなわち、候補ブロック6〜候補ブロック49で選択される。利用可能性がチェックされるとともに反復された項目が除去された後、利用可能なロケーションブロックに対応する動き情報が、第1の候補動き情報リストの中に連続的に挿入される。(反復された無資格の情報を除外して)list0の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入は停止される。
list0は、S11.1およびS11.2に基づいて構成される。(反復された無資格の情報を除外して)list0の中の候補動き情報の断片の数量が5個未満である場合、リストの中の候補動き情報の断片の数量は、ゼロ動きベクトルを追加することによって指定の数量に達することができるようになる。たとえば、現在ブロックの第1の候補動き情報リスト(List0)は、以下の形式をなしてよい。
代替として、現在ブロックの第1の候補動き情報リスト(List0)は、以下の形式をなしてよい。
本発明では、ブロックベースの候補動き情報リストを構成するS11の中で、S11.1において候補動き情報をリストの中に追加しS11.2において候補動き情報をリストの中に追加するシーケンスが限定されないことに留意されたい。S11.1における動き情報が最初に追加されてよく、S11.2における動き情報が次に追加され、S11.2における動き情報が最初に追加されてよく、S11.1における動き情報が次に追加され、またはS11.1およびS11.2における動き情報が、リストの中に交互に追加されてもよい。代替として、S11.1およびS11.2のうちの一方または両方が、S11に対して実行されてよい。
S12:現在の符号化サブブロックの第2の候補動き情報リスト(List1)を構成し、すなわち、サブブロックベースの候補動き情報リストを構成する。list1の中の動き情報は、サブブロックベースの候補動き情報と呼ばれることがある。
S12.1:現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報が、動きモデルベースのアフィンモデルマージ(Affine model merge、AMM)モードにおける事前設定された規則に従って第2の候補動き情報リスト(List1)の中に追加される。
現在ブロックがアフィン変換予測ブロックであるときにコーディング効率を改善するために、現在ブロックの制御点の動き情報が符号化されるとき、事前設定された選択ポリシーに従って現在ブロックの隣接ブロックから1つのブロックが選択され、そのブロックの頂点の動き情報に基づいて現在ブロックの頂点の動き情報が導出される(このことは、規格ではluma affine control point motion vectors from a neighbouring blockと呼ばれることがある)。エンコーダ側は、選択された隣接ブロックの表示情報をデコーダ側に転送する必要がない。この場合、現在ブロックおよび隣接ブロックは同じアフィン変換モデルを使用する。
図9に示すように、A、B、C、D、およびEは、現在コーディングブロックの隣接するコード化ブロックであり、アフィンコード化ブロックを見つけるためにA、B、C、D、およびEというシーケンスでトラバースが実行され、アフィンコード化ブロックの制御点の動き情報が取得され、現在コーディングブロックの左上頂点および右上頂点の動き情報がさらに導出される。
以下のことは、導出プロセスを説明するための一例としてAを使用し、他の事例が類似する。Aに対応するコード化ブロックがアフィンコード化ブロックである場合、アフィンコード化ブロックの左上頂点(x2,y2)の動きベクトル(vx2,vy2)および右上頂点(x3,y3)の動きベクトル(vx3,vy3)が取得される。現在コーディングブロックの左上頂点(x0,y0)の動きベクトル(vx0,vy0)は、式(8)に従って計算される。現在コーディングブロックの右上頂点(x1,y1)の動きベクトル(vx1,vy1)は、式(9)に従って計算される。
利用可能性がチェックされるとともに反復された項目が除去された後、利用可能なロケーションブロックに対応する動き情報が、第2の候補動き情報リスト(List1)の中に連続的に挿入される。(反復された無資格の情報を除外して)list1の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入は停止される。
S12.2:現在コーディングブロックの空間的に隣接するコード化ブロックの動き情報を、制御点ベースの複合マージモード(Complex mergeモード)における事前設定された規則に従って第2の候補動き情報リスト(List1)の中に追加する。
最初に、各制御点の動き情報が導出される。図10に示すように、CPk(k=1,2,3,4)は第kの制御点を表す。A0、A1、A2、B0、B1、B2、およびB3は、現在ブロックの空間的に隣接するロケーションを表し、CPk(k=1,2,3)を予測するために使用される。Trは、現在ブロックの時間的に隣接するロケーションを表し、CP4を予測するために使用される。
CP1、CP2、CP3、およびCP4の座標は、それぞれ、(0,0)、(W,0)、(H,0)、および(W,H)であり、ただし、WおよびHは現在ブロックの幅および高さを表す。
制御点ごとに、以下のシーケンスで制御点の動き情報が取得される。
CP1に対して、チェックシーケンスはB2->A2->B3である。B2が利用可能である場合、B2の動き情報が使用される。そうでない場合、A2およびB3がチェックされる。すべての3つのロケーションの動き情報が利用不可能である場合、CP1の動き情報は取得され得ない。
CP2に対して、チェックシーケンスはB0->B1である。
CP3に対して、チェックシーケンスはA0->A1である。
CP4に対して、Trの動き情報が使用される。
本明細書では、本明細書における「利用可能な」とは、ロケーションXにおけるブロックが符号化され、かつインター符号化されることを意味する。そうでない場合、ロケーションXは利用不可能である。
制御点の動き情報を取得するための他の方法も本発明に適用可能であることに留意されたい。詳細は本明細書で説明されない。
次いで、制御点の動き情報が合成されて非平行移動の(アフィンモデルベースの)動き情報を取得する。
2つの制御点の動き情報が合成されて4パラメータアフィン変換モデルを構成する。制御点のうちの2つが、次のように、すなわち、{CP1,CP4}、{CP2,CP3}、{CP1,CP2}、{CP2,CP4}、{CP1,CP3}、および{CP3,CP4}のように合成される。たとえば、制御点CP1およびCP2を用いて構成された4パラメータアフィン変換モデルは、affine(CP1,CP2)として示される。
3つの制御点の動き情報が合成されて6パラメータアフィン変換モデルを構成する。制御点のうちの3つが、次のように、すなわち、{CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}、および{CP1,CP3,CP4}のように合成される。たとえば、制御点CP1、CP2、およびCP3を用いて構成された6パラメータアフィン変換モデルは、affine(CP1,CP2,CP3)として示される。
4つの制御点の動き情報が合成されて8パラメータ双線形モデルを構成する。制御点CP1、CP2、CP3、およびCP4を用いて構成された8パラメータ双線形モデルは、bilinear(CP1,CP2,CP3,CP4)として示される。
これらのモデル(異なるタイプのモデル、または同じタイプのモデル)が、事前構成されたシーケンスでトラバースされる。合成モデルに対応する制御点の動き情報が利用不可能である場合、モデルは利用不可能であるものと見なされる。そうでない場合、モデルの参照インデックス(すべての制御点の動きベクトルが、同じ参照ピクチャを指し示す)が決定され、制御点の動きベクトルがスケーリングされる。たとえば、動きベクトルは式(10)に従ってスケーリングされる。スケーリング係数とは、現在ピクチャから参照ピクチャまでの距離対現在ピクチャから隣接ブロックの参照ピクチャまでの距離の比である。スケーリングの後にすべての制御点の動き情報が一致する場合、モデルは無効である。そうでない場合、モデルを構成する制御点の動き情報が候補動き情報リストの中に追加される。
利用可能性がチェックされるとともに反復された項目が除去された後、利用可能なロケーションブロックに対応する動き情報が、第2の候補動き情報リスト(List1)の中に連続的に挿入される。(反復された無資格の情報を除外して)list1の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入は停止される。
complex merge modeで取得される候補動き情報は、最新の規格では、constructed affine control point motion vector merging candidatesと呼ばれる。
S12.3:事前設定された規則に従ってATMVPおよび/またはSTMVP候補動きベクトルを第2の候補動き情報リスト(List1)の中に追加する。
サブブロックベースの動きベクトル予測(Sub-BLOCK-based motion vector prediction、SMVP)技術を使用することによって、現在コーディングユニットは、各々のサイズがM×Nであるコーディングサブユニットに分割され、各コーディングサブユニットの動き情報が導出され、次いで、すべてのコーディングサブユニットの動き情報に基づいて動き補償が実行されて、現在コーディングユニットの予測子を取得する。
本技術では、mergeモードにおいて2つのタイプの候補動き情報、すなわち、高度時間動きベクトル予測(Advanced temporal motion vector prediction、ATMVP)候補動き情報、および空間時間動きベクトル予測(Spatial-temporal motion vector prediction、STMVP)候補動き情報がある。
ATMVP技術では、図11に示すように、コロケート参照ピクチャ(Collocated reference picture)が最初に決定され、現在コーディングユニット(現在ブロック)は、各々のサイズがM×Nであるコーディングサブユニット(コーディングサブブロック)に分割され、各現在コーディングサブユニットに対応しコロケート参照ピクチャの中にあるコーディングサブユニットの中心点ロケーションサンプルの動き情報が取得され、動き情報がスケーリングされ、動き情報が各現在コーディングサブユニットの動き情報に変換される。
STMVP技術では、空間的に隣接する上方のロケーション、空間的に隣接する左のロケーション、および時間的に隣接する右下のロケーションにおける現在の各符号化サブユニットの動き情報が取得され、動き情報の平均値が計算され、計算された平均値が現在の各符号化サブユニットの動き情報に変換される。以下の図(図12)に示すように、現在コーディングユニットは、4つの符号化サブユニット、すなわち、A、B、C、およびDに分割される。一例としてAが使用される。符号化サブユニットAの動き情報は、空間的に隣接するロケーションcおよびbの動き情報、ならびにコロケート参照ピクチャの中のロケーションDの動き情報に基づいて導出される。
利用可能性がチェックされるとともに反復された項目が除去された後、利用可能なロケーションブロックに対応する動き情報が、第2の候補動き情報リスト(List1)の中に連続的に挿入される。(反復された無資格の情報を除外して)list1の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入は停止される。
S12.4:事前設定された規則に従ってplanar候補動き情報を第2の候補動き情報リスト(List1)の中に追加する。
図13を参照されたい。現在ブロックの時間的に隣接する右下のM×Nブロックの動き情報が取得される。隣接する右の各M×Nブロックの動き情報R(W,y)は、空間的に隣接する右上のブロックの動き情報(AR)および時間的に隣接する右下のM×Nブロックの動き情報(BR)に基づいて、以下の式による垂直補間を通じて取得され、ただし、M×Nはブロックのサイズを表す。
R(W,y)=((H-y-1)×AR+(y+1)×BR)/H
隣接する下方の各M×Nブロックの動き情報(B(x,H))は、空間的に隣接する左下のM×Nブロックの動き情報(BL)および時間的に隣接する右下のM×Nブロックの動き情報(BR)に基づいて、以下の式による水平補間を通じて取得される。
B(x,H)=((W-x-1)×BL+(x+1)×BR)/W
(x,y)は、現在ブロックの左上のサブブロックに対する現在のM×Nサブブロックの座標を表す。WおよびHは、それぞれ、現在ブロックの(サブブロック単位で測定された)幅および高さを表す。ARは、空間的に隣接する右上のM×Nブロックの動き情報を表す。BRは、時間的に隣接する右下のM×Nブロックの動き情報を表す。BLは、空間的に隣接する左下のM×Nブロックの動き情報を表す。
各サブブロックの動き情報は以下の方式で取得される。
現在サブブロックが位置する行の中の、隣接する左のM×Nブロックの動きベクトルおよび隣接する右のM×Nブロックの動きベクトルに基づいて、以下の式による水平補間を通じて水平動きベクトルが取得される。
Ph(x,y)=(W-1-x)×L(-1,y)+(x+1)×R(W,y)
現在サブブロックが位置する列の中の、隣接する上方のM×Nブロックの動きベクトルおよび隣接する下方のM×Nブロックの動きベクトルに基づいて、以下の式による垂直補間を通じて垂直動きベクトルが取得される。
Pv(x,y)=(H-1-y)×A(x,-1)+(y+1)×B(x,H)
水平および垂直の線形補間を通じて取得された動きベクトルの平均値が、以下の式に従って取得され、すなわち、各サブブロックの動きベクトルは以下の通りである。
P(x,y)=(H×Pn(x,y)+W×Pv(x,y)+H×W)/(2×H×W)
L(-1,y)およびR(W,y)は、それぞれ、現在サブブロックが位置する行の中の、隣接する左のM×Nブロックの動きベクトルおよび隣接する右のM×Nブロックの動きベクトルを表す。A(x,-1)およびB(x,H)は、それぞれ、現在サブブロックが位置する列の中の、隣接する上方のM×Nブロックの動きベクトルおよび隣接する下方のM×Nブロックの動きベクトルを表す。Ph(x,y)は、水平補間を通じて取得された動きベクトルを表す。Pv(x,y)は、垂直補間を通じて取得された動きベクトルを表す。
すべての空間的かつ時間的な隣接ブロック(および、時間的に隣接するブロック)がリストの中の同じ動き情報(既存かつ処理済みの動き情報のみ)を含む場合、リストが利用不可能である。2つのリストが利用不可能である場合、planar動き情報が利用不可能である。代替として、空間的に隣接するすべてのブロック(および、時間的に隣接するブロック)がリストの中の同じ動き情報(既存かつ処理済みの動き情報のみ)を含む場合、同じ動き情報は、リストの中の現在コーディングブロックのすべてのサブブロックの動き情報である。
利用可能性がチェックされるとともに反復された項目が除去された後、利用可能なロケーションブロックに対応する動き情報が、第2の候補動き情報リスト(List1)の中に連続的に挿入される。(反復された無資格の情報を除外して)list1の中の候補動き情報の断片の数量がMaxNumMergeCand個に等しい場合、挿入は停止される。
list1は、S12.1〜S12.4に基づいて構成される。(反復された無資格の情報を除外して)list1の中の候補動き情報の断片の数量が5個未満である場合、リストの中の候補動き情報の断片の数量は、ゼロ動きベクトルを追加することによって指定の数量に達することができるようになる。たとえば、現在ブロックの第2の候補動き情報リスト(List1)は、Table 3(表3)に示す形式をなしてよい。
代替として、現在ブロックの第2の候補動き情報リスト(List1)は、Table 4(表4)に示す形式をなしてよい。
本発明では、サブブロックベースの候補動き情報リストを構成するS12の中で、S12.1、S12.2、S12.3、またはS12.4における候補動き情報をリストの中に追加するシーケンスが限定されないことに留意されたい。候補動き情報が特定のシーケンスで追加されてよく、または異なるタイプの動き情報がリストの中に交互に追加されてよく、またはS12.1、S12.2、S12.3、およびS12.4における候補動き情報のうちの1つもしくは複数がリストの中に追加されてもよい。
サブブロックベースの候補動き情報リストが、サブブロックベースのマージモード(merge_subblock)モードで構成された候補動き情報リストであり、サブブロックベースの候補動き情報リストが、affine model merge、complex merge、またはATMVPのうちの、少なくとも1つのサブブロックベースのマージモードで構成された候補動き情報リストを含んでよいことを理解されたい。サブブロックベースの候補動き情報リストの中のすべての候補動き情報は、affine model mergeモードでの、もしくはcomplex mergeモードでの、もしくはATMVPモードのみでの、または複数の異なるモードでの、導出を通じて取得され得る。複数の異なるモードは、affine model merge、complex merge、およびATMVPという、3つのモードの任意の組合せであってよい。いくつかの可能な場合には、候補動き情報リストは、別のサブブロックベースのモードで取得される動き情報をさらに含んでよい。候補動き情報は、次のようにリストの中に追加されてよい。すなわち、ATMVPモードで導出された候補動き情報が最初に追加されてよく、次いで、別のモードで導出された候補動き情報が追加されてよい。合成方式および追加するシーケンスは、本発明で詳細には列挙または説明されない。
随意に、2×2サブブロックを含むブロックが一例として使用される。サブブロックベースの構成済みの候補動き情報リストlist1の可能な実施形式は、{ATMVP((MVx01,MVy01)(MVx02,MVy02)(MVx03,MVy03)(MVx04,MVy04)),(MVx1,MVy1),(MVx2,MVy2),(MVx3,MVy3),(MVx4,MVy4)}を含んでよい。indexの値が0である場合、対応する予測は、それぞれ、後で(MVx01,MVy01)(MVx02,MVy02)(MVx03,MVy03)(MVx04,MVy04)に基づいて4つのサブブロックに対して実行され得る。indexの値が1である場合、現在ブロックのサブブロックの各MVは、AFFINEモードでの(MVx1,MVy1)に基づいて導出される。次いで、現在ブロックの各サブブロックが、導出された各MVに基づいて予測される。
随意に、サブブロックベースの構成済みの候補動き情報リストlist1の可能な実施形式は、{ATMVP(MVx1,MVy1),(MVx2,MVy2),(MVx3,MVy3),(MVx4,MVy4)}を含んでよい。indexの値が0である場合、最終的に使用される動き情報はATMVPを通じて取得される。indexの値が1である場合、使用される動き情報は、現在ブロックのサブブロックの、AFFINEモードでの(MVx1,MVy1)に基づいて導出されたMVである。
S13:2つのlistから最適候補動き情報を選択する。
最適候補動き情報は、最小レートひずみコスト基準に従って2つの候補動き情報リストから決定され、最適候補動き情報は、現在コーディングブロックの動き情報として使用される。次いで、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx)、およびリストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-idx)が、デコーダ側に転送される。レートひずみコストは、以下の式に従って計算され、ただし、Jは、レートひずみコストRD Costを表し、SADは、元のサンプル値と候補動き情報を使用することによって実行される動き補償を通じて取得される予測サンプル値との間の絶対差分の合計(Sum of Absolute Differences、SAD)を表し、Rは、ビットレートを表し、λは、ラグランジュ乗数を表す。エンコーダ側は、候補動き情報リストの中の選択された動き情報のインデックス値をデコーダ側へ送信する。
J=SAD+λR
S14:S13において取得された最適候補動き情報に基づいて現在ブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。
加えて、list0およびlist1の中の「0」および「1」が区別のために使用されるにすぎないことを理解されたい。list0またはlist1が、ブロックベースのリストとして指名されるのか、それともサブブロックベースのリストとして指名されるのかは、事前設定された規則に従って決定されてよい。このことは本出願で限定されない。
特に、最適動き情報がブロックベースの候補動き情報リストの中の動き情報である場合、現在ブロックは最適動き情報に基づいて予測される。
特に、最適動き情報がサブブロックベースの候補動き情報リストの中の動き情報である場合、少なくとも以下の2つの事例が含まれる。
事例1:最適動き情報がaffineモード(少なくともaffine model mergeモードまたはcomplex mergeモードを含む)で取得される場合、現在ブロックのサブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックのサブブロックが予測される。現在ブロックは、複数のサブブロックを含んでよく、現在ブロックのサブブロックは、複数のサブブロックのうちのいずれか1つであってよい。
可能な実施プロセスでは、現在ブロックの各サブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックの各サブブロックが、それに対応して予測される。
事例2:最適動き情報がATMVPを通じて導出される場合、現在ブロックのサブブロックが、最適動き情報に基づいて予測される。
可能な実施プロセスでは、最適候補動き情報は、動き情報の組合せであってよく、現在ブロックの各サブブロックに対応する動き情報を含み、現在ブロックの各サブブロックが、それに対応して予測される。
加えて、最適動き情報に基づいて予測を実行することが、最適動き情報に基づいて予測を直接実行することを含んでよく、または最適動き情報を導出し、かつ導出された動き情報に基づいて最適動き情報を予測することを含んでよく、または最適動き情報を補正し、かつ補正を通じて取得された動き情報に基づいて予測を実行することを含んでよいことを、さらに理解されたい。
上記の事例は本発明のいくつかの可能な実装形態にすぎず、いかなる限定もなさないものとする。本発明では他の事例が網羅的に説明されるとは限らない。
随意に、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
実施形態1によれば、以下の方法フローが取得され得る。
S1301:第1のリストを構成し、ここで、第1のリストはブロックベースの候補動き情報リストである。
S1302:第2のリストを構成し、ここで、第2のリストはサブブロックベースの候補動き情報リストである。
S1303:第1の候補動き情報リストおよび第2の候補動き情報リストから最適候補動き情報を決定する。
S1304:最適動き情報に基づいて現在ブロックを予測する。
方法はまた、以下のステップをさらに含んでよい。
S1305:現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得し、ここで、現在ブロックに対して使用されるインター予測モードはマージモードであり、識別子が第1の特徴値であるとき、候補動き情報リストは第1のリストであり、または識別子が第2の特徴値であるとき、候補動き情報リストは第2のリストである。
S1306:識別子およびインデックスをビットストリームに符号化する。
S1305およびS1306は、さらに独立して新たな符号化方法をなすことがある。詳細は本明細書で説明されない。
実施形態1と現在の技術との間の差異は以下の通りである。すなわち、複数のタイプの候補動き情報が、異なる候補動き情報リストの中に挿入され、最適候補動き情報がRDO基準に従って選択され、最適候補動き情報がデコーダ側に転送される。実施形態1によれば、ブロック(BLOCK)ベースの候補動き情報リストおよびサブブロック(Sub-BLOCK)ベースの候補動き情報リストが取得されるように、ブロック(BLOCK)ベースの候補動き情報リストおよびサブブロック(Sub-BLOCK)ベースの候補動き情報リストが互いに区別され得る。このことは、最適候補動き情報の伝送コストを効果的に低減する。
実施形態2(デコーダ側)
簡単な説明:現在ブロック(Block)の候補動き情報および現在サブブロック(Sub-BLOCK)の候補動き情報が、それぞれ、候補動き情報のモードを取得する際にlist0およびlist1の中に挿入(または構成)され得る。
block-based list0は、HEVCモードおよびnon-adjacentモードを含む。
subblock-based list1は、AFFINEモード(動きモデルベースのアフィンモデルマージモードまたは制御点ベースの複合マージモードを含む)、ATMVPモード、STMVPモード、およびplanarモードを含む。
特定の実施プロセスでは、block-based list0は、HEVCモード(general_mergeまたはregular_merge)およびnon-adjacentモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよく、subblock-based list1は、AFFINEモード、ATMVPモード、STMVPモード、およびplanarモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。本出願では、説明のために複数のモードが使用されることがある。たとえば、list1は、代替として、ATMVPモードのみを含んでよい。
S21:最適候補動き情報のインデックス情報を取得するためにビットストリームを構文解析する。
詳細には、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx)、およびリストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-index)を取得するために、ビットストリームが構文解析される。ビットストリームを構文解析することによってもっと多くのシンタックス要素がさらに取得されてよく、またリストインデックスが可能な実装形態にすぎないことを理解されたい。
S22:候補動き情報リストのインデックスに基づいて候補動き情報リストを構成する。
たとえば、限定はしないが、以下の事例があり得る。
list-idx=0の場合、S11における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。たとえば、ブロックベースの候補動き情報リストは、S11.1および/またはS11.2におけるモードで構成される。たとえば、候補動き情報リストは、限定はしないが、Table 1(表1)またはTable 2(表2)に示すリストであってよい。
list-idx=1の場合、S12における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。たとえば、サブブロックベースの候補動き情報リストは、S12.1、S12.2、および/またはS12.3におけるモードで構成される。たとえば、候補動き情報リストは、限定はしないが、Table 3(表3)またはTable 4(表4)に示すリストであってよい。
動きベクトルリストのインデックス(list-idx)およびリストの中のベクトルのインデックス(mv-index)が決定されるという条件で特定の動きベクトルが決定され得ることを、表から知ることができる。随意に、インデックスの識別子は、たとえば、list-idxとして表されてよい。ただし、このことは限定されない。随意に、インデックスlist-idxの識別子の値は、限定はしないが、0または1を含んでよい。随意に、ブロックベースのモードで構成された候補動き情報リストは、list0(またはlist1)として表されてよく、サブブロックベースのモードで構成された候補動き情報リストは、list1(またはlist0)として表されてよい。「ブロックベースのモード」とは、現在ブロックに基づいて予測を実行するモードを指し、「サブブロックベースのモード」とは、サブブロックに基づいて予測を実行するモードを指し、ここで、サブブロックは、現在ブロックを複数のサブブロックに分割することによって取得される。
特徴値の特定の値、または識別子の形式、またはリストの特定の表現シンボルが限定されず、本発明で網羅的に説明されるとは限らないことを理解されたい。
リストインデックス、または類似の識別子、または類似のシンタックス要素が、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用されてよく、または現在ブロックの最適候補動き情報を含む候補動き情報リストを構成するモードを決定するために使用されてよく、または現在ブロックに対して従来のマージモードが使用されるのか、それともサブブロックベースのマージモードが使用されるのかを示すために使用されてよいことを理解されたい。
随意に、ビットストリームが構文解析されるとき、取得されるシンタックス要素はリストインデックスを含んでよく、現在コーディングブロックに対して第1のリストまたは第2のリストを構成すべきであることをシンタックス要素に基づいて決定することは、候補動き情報リストインデックスを取得することを含み、ここで、リストインデックスが第1の特徴値であるとき、そのことは現在コーディングブロックに対して第1のリストを構成すべきであることを示し、またはリストインデックスが第2の特徴値であるとき、そのことは現在コーディングブロックに対して第2のリストを構成すべきであることを示す。
随意に、ビットストリームが構文解析されるとき、取得されるシンタックス要素は、現在ブロックに対して使用される従来のマージモードを示すために使用される表示情報、または現在ブロックに対して使用されるサブブロックベースのマージモードを示すために使用される表示情報を含んでよい。
随意に、ビットストリームが構文解析されるとき、取得されるシンタックス要素は、現在ブロックに対してブロックベースの候補動き情報リストが使用されることを決定するために使用される表示情報、または現在ブロックに対してサブブロックベースの候補動き情報リストが使用されることを決定するために使用される表示情報を含んでよい。
S23:インデックス情報に基づいて最適候補動き情報を決定する。
詳細には、最適候補動き情報は、list-idxおよびmv-indexに基づいてリストから決定される。
たとえば、list-idx=0かつmv-index=0の場合、現在ブロックの動き情報はMVB1である。
S24:S23において取得された最適候補動き情報に基づいて現在ブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。
特定の予測モードは、エンコーダ側における予測モードに相当し得る。
特に、最適動き情報がブロックベースの候補動き情報リストの中の動き情報である場合、現在ブロックは最適動き情報に基づいて予測される。
特に、最適動き情報がサブブロックベースの候補動き情報リストの中の動き情報である場合、少なくとも以下の2つの事例が含まれる。
事例1:S23において決定された最適動き情報がaffineモード(少なくともaffine model mergeモードまたはcomplex mergeモードを含む)で取得される場合、現在ブロックのサブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックのサブブロックが予測される。現在ブロックは、複数のサブブロックを含んでよく、現在ブロックのサブブロックは、複数のサブブロックのうちのいずれか1つであってよい。
可能な実施プロセスでは、現在ブロックの各サブブロックに対応する動き情報は、最適動き情報に基づいて導出され、現在ブロックの各サブブロックが、それに対応して予測される。
事例2:S23において決定された最適動き情報がATMVPモードで取得される場合、現在ブロックのサブブロックは、最適動き情報に基づいて予測される。
可能な実施プロセスでは、最適候補動き情報は、動き情報の組合せであってよく、現在ブロックの各サブブロックに対応する動き情報を含み、現在ブロックの各サブブロックが、それに対応して予測される。
事例3:S23において決定された最適動き情報が表示を通じてATMVPモードで取得される場合、最適動き情報は、対応する表示に基づいて取得され、現在ブロックのサブブロックは、最適動き情報に基づいて予測される。
可能な実施プロセスでは、最適候補動き情報は、表示情報に基づいて取得され得る。現在ブロックの各サブブロックに対応する動き情報は、表示情報に基づいてATMVPモードで取得され得、現在ブロックの各サブブロックが、それに対応して予測される。
加えて、最適動き情報に基づいて予測を実行することが、最適動き情報に基づいて予測を直接実行することを含んでよく、または最適動き情報を導出し、かつ導出を通じて取得された動き情報に基づいて予測を実行することを含んでよく、または最適動き情報を補正し、かつ補正を通じて取得された動き情報に基づいて予測を実行することを含んでよいことを、さらに理解されたい。
上記の事例は本発明のいくつかの可能な実装形態にすぎず、いかなる限定もなさないものとする。本発明では他の事例が網羅的に説明されるとは限らない。
随意に、現在ブロックの幅がしきい値以上であり、かつ/または現在ブロックの高さがしきい値以上である。しきい値は4、8、または16であってよいが、このことは限定されない。
結論として、実施形態1および実施形態2によれば、本発明では以下の方法手順が取得され得る。図14および図15を参照されたい。
図14は復号方法を示す。方法は以下のステップを含む。
S141:現在ブロックの最適候補動き情報を含む候補動き情報リストの構成モードを取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得し、ここで、候補動き情報リストの構成モードは、ブロックベースの候補動き情報リストを構成するモード、またはサブブロックベースの候補動き情報リストを構成するモードである。
随意の方式については、本実施形態におけるS21を参照されたい。
詳細には、候補動き情報リストを決定するために使用される識別子が取得される。現在ブロックに対して使用されるインター予測モードはマージモードである。識別子が第1の特徴値であるとき、候補動き情報リストの構成モードは、ブロックベースの候補動き情報リストを構成するモードであり、または識別子が第2の特徴値であるとき、候補動き情報リストの構成モードは、サブブロックベースの候補動き情報リストを構成するモードである。
随意の方式については、本実施形態でのS22における識別子の機能を参照されたい。
S142:構成モードで候補動き情報リストを構成する。
随意の方式については、本実施形態におけるS22を参照されたい。
ブロックベースの候補動き情報リストの構成については、本実施形態におけるS11.1および/またはS11.2を参照されたい。
サブブロックベースの候補動き情報リストの構成については、本実施形態におけるS12.1、S12.2、S12.3、および/またはS12.4を参照されたい。
S143:インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定する。随意の方式については、本実施形態におけるS13を参照されたい。
S144:最適動き情報に基づいて現在ブロックを予測する。随意の方式については、本実施形態におけるS14を参照されたい。
図15は復号方法を示す。方法は以下のステップを含む。
S151:シンタックス要素を取得するためにビットストリームを構文解析し、ここで、シンタックス要素は、現在ブロックの最適候補動き情報の少なくともインデックスを含む。
随意の方式については、本実施形態におけるS21を参照されたい。
S152:現在ブロックに対して第1のリストまたは第2のリストを構成すべきであることをシンタックス要素に基づいて決定し、ここで、第1のリストはブロックベースの候補動き情報リストであり、第2のリストはサブブロックベースの候補動き情報リストである。
随意の方式については、本実施形態におけるS22を参照されたい。
ブロックベースの候補動き情報リストの構成については、本実施形態におけるS11.1および/またはS11.2を参照されたい。
サブブロックベースの候補動き情報リストの構成については、本実施形態におけるS12.1、S12.2、S12.3、および/またはS12.4を参照されたい。
S153:インデックスに基づいて第1のリストまたは第2のリストから最適動き情報を決定する。
随意の方式については、本実施形態におけるS23を参照されたい。
S154:最適動き情報に基づいて現在ブロックを予測する。
随意の方式については、本実施形態におけるS24を参照されたい。
特定の実施解決策が、上記の実施形態で十分に説明されている。詳細は本明細書で再び説明しない。
より明瞭なシンタックステーブルについては、図16を参照されたい。図16はmerge data syntaxテーブルを示す。
シンタックステーブルまたはビットストリームがmerge_subblock_flag[x0][y0]を含むことを知ることができる。merge_subblock_flag[x0][y0]は、本発明において現在ブロックに対してブロックベースの候補動き情報リストまたはサブブロックベースの候補動き情報リストが使用されることを示すために使用され得る表示情報に相当し得る。
実施形態2と現在の技術との間の差異は以下の通りである。すなわち、複数のタイプの候補動き情報が、異なる候補動き情報リストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在ブロックが復号される。実施形態2によれば、ブロック(BLOCK)ベースの候補動き情報リストおよびサブブロック(Sub-BLOCK)ベースの候補動き情報リストが互いに区別され得る。このことは、最適候補動き情報の伝送コストを効果的に低減する。
実施形態3(エンコーダ側)
簡単な説明:list0およびlist1が、現在ブロック(Block)に対して様々な動き情報リスト構成モードで構成される。list0は、基本予測単位としてブロックを使用することによって現在ブロックが予測されるときに、現在ブロックに対して使用される候補動きベクトルリストである。list1は、基本予測単位としてサブブロックを使用することによって現在ブロックが予測されるときに、現在ブロックに対して使用される候補動きベクトルリストである。現在ブロックは複数のサブブロックに分割されてよく、各サブブロックは正方形または長方形の形状をなしてよい。サブブロックは、たとえば、限定はしないが、サイズが4×4、8×8、または4×8であってよい。list0およびlist1は候補動き情報を含む。候補動き情報は、動きベクトル、予測方向、参照インデックスなどを含む。手短に言えば、list0およびlist1は、現在ブロックの特徴に適用可能な様々な動き情報リスト構成モードで構成される。
たとえば、block-based list0は、HEVCモード、non-adjacentモード、ATMVPモード、またはSTMVPモードを含み、
subblock-based list1は、AFFINEモード(動きモデルベースのアフィンモデルマージモードまたは制御点ベースの複合マージモードを含む)およびplanarモードを含む。
特定の実施プロセスでは、list0は、HEVCモード、non-adjacentモード、ATMVPモード、およびSTMVPモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。たとえば、別の実施形態では、list0は、代替として、ATMVPモードのみを含んでよい。list1は、AFFINEモードおよびplanarモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。本出願では、説明のために複数のモードが使用されることがある。
S31:現在コーディングブロックの第1の候補動き情報リスト(List0)を構成する。
S31.1:S11.1における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
S31.2:S11.2における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
S31.3:S12.3における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
本発明では、S31.1およびS31.2における候補動き情報をリストの中に追加するシーケンスがS31に対して限定されないことに留意されたい。S31.1における動き情報が、S31.2における動き情報の前に追加されてよく、もしくはS31.2における動き情報が、S31.1における動き情報の前に追加されてよく、またはS31.1における動き情報およびS31.2における動き情報が、リストの中に交互に追加されてもよい。
S32:現在コーディングブロックの第2の候補動き情報リスト(List1)を構成する。
S32.1:S12.1における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
S32.2:S12.2における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
S32.3:S12.4における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
本発明では、S32.1、S32.2、およびS32.3における候補動き情報をリストの中に追加するシーケンスがS32に対して限定されないことに留意されたい。候補動き情報は、特定のシーケンスで追加されてよく、または異なるタイプの動き情報が、リストの中に交互に追加されてよく、またはS32.1、S32.2、およびS32.3における候補動き情報のうちの1つまたは複数が、リストの中に追加されてもよい。
S33:2つのlistから最適候補動き情報を選択し、ここで、S13における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
S34:S33において取得された最適候補動き情報に基づいて現在ブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。S14における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
list0およびlist1が入れ替えられてよいことを理解されたい。
実施形態3と現在の技術との間の差異は以下の通りである。すなわち、様々な候補動きベクトルが、異なる候補動きベクトルリストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在ブロックが復号される。実施形態3によれば、モデルベースのサブブロック(SUB-BLOCK)ベースの候補動き情報リストおよび他の候補動き情報が互いに区別され得る。このことは、最適候補動き情報の伝送コストを効果的に低減する。
実施形態4(デコーダ側)
簡単な説明:現在ブロック(Block)の候補動き情報および現在サブブロック(Sub-BLOCK)の候補動き情報が、それぞれ、候補動き情報のモードを取得する際にlist0およびlist1の中に挿入(または構成)され得る。
block-based list0は、HEVCモード、non-adjacentモード、ATMVPモード、およびSTMVPモードを含む。
subblock-based list1は、AFFINEモード(動きモデルベースのアフィンモデルマージモードまたは制御点ベースの複合マージモードを含む)およびplanarモードを含む。
特定の実施プロセスでは、list0は、HEVCモード、non-adjacentモード、ATMVPモード、およびSTMVPモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。たとえば、別の実施形態では、list0は、ATMVPモードのみを含んでよい。list1は、AFFINEモードおよびplanarモードなどの候補動きベクトル導出モードのうちの1つまたは複数を含んでよい。本出願では、説明のために複数のモードが使用されることがある。
S41:最適候補動き情報のインデックス情報を取得するためにビットストリームを構文解析する。
詳細には、ビットストリームが構文解析されて、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx)を取得し、リストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-index)を取得する。
S42:候補動き情報リストのインデックスに基づいて候補動き情報リストを構成する。
list-idx=0の場合、S31における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。たとえば、ブロックベースの候補動き情報リストは、S31.1、S31.2、および/またはS31.3におけるモードで構成される。それに対応して、別の例の場合、ブロックベースの候補動き情報リストは、S11.1、S11.2、および/またはS12.3におけるモードで構成される。
list-idx=1の場合、モデルベースのサブブロックベースの候補動き情報リストは、S32.1、S32.2、および/またはS32.3におけるモードで構成される。それに対応して、別の例の場合、サブブロックベースの候補動き情報リストは、S12.1、S12.2、および/またはS12.4におけるモードで構成される。
S43:インデックス情報に基づいて最適候補動き情報を決定する。
詳細には、最適候補動き情報は、list-idxおよびmv-indexに基づいてリストから決定される。
S44:S43において取得された最適候補動き情報に基づいて現在ブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。
実施形態4と現在の技術との間の差異は以下の通りである。すなわち、異なるタイプの候補動き情報が、異なる候補動き情報リストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在ブロックが復号される。実施形態4によれば、モデルベースのサブブロック(SUB-BLOCK)ベースの候補動き情報リストおよび他の候補動き情報が互いに区別され得る。このことは、最適候補動き情報の伝送コストを効果的に低減する。
実施形態5(エンコーダ側)
現在コーディングブロックが事前設定条件を満たすかどうかが決定される。現在コーディングブロックが事前設定条件を満たす場合、S51およびS52が実行され、または現在コーディングブロックが事前設定条件を満たさない場合、S51が実行される。代替として、現在コーディングブロックが事前設定条件を満たす場合、S51およびS52が実行され、または現在コーディングブロックが事前設定条件を満たさない場合、S52が実行される。
事前設定条件は以下の通りであり得る。
(1)現在コーディングブロックの幅がしきい値(たとえば、限定はしないが、4、8、16、または32)以上であり、かつ/または現在コーディングブロックの高さがしきい値(たとえば、限定はしないが、4、8、16、または32)以上であるか、あるいは
(2)現在コーディングブロックのサンプル数量(幅×高さ)がしきい値(たとえば、256)以上である。
事前設定条件は、エンコーダ側とデコーダ側の両方によって合意されてよく、またはSPSもしくはPPSなどのもっと高いレベルのシンタックスを使用することによって指定されてもよい。
S51:現在コーディングブロックの第1の候補動き情報リスト(List0)を構成する。
第1の候補動き情報リストは、対応する方法、たとえば、実施形態1でのS11または実施形態3でのS31における方法を使用することによって構成される。詳細は本明細書で再び説明しない。
S52:現在コーディングブロックの第2の候補動き情報リスト(List1)を構成する。
第2の候補動き情報リストは、対応する方法、たとえば、実施形態1でのS12または実施形態3でのS32における方法を使用することによって構成される。詳細は本明細書で再び説明しない。
S53:最適候補動き情報を選択する。
現在コーディングブロックが事前設定条件を満たす場合、現在コーディングブロックの動き情報として、最適候補動き情報が、レートひずみコスト基準に従って2つの候補動き情報リストから決定される。次いで、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx)、およびリストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-idx)が、デコーダ側に転送される。
現在コーディングブロックが事前設定条件を満たさない場合、現在コーディングブロックの動き情報として、最適候補動き情報が、レートひずみコスト基準に従って1つの候補動き情報リストから決定される。次いで、候補動き情報リストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-idx)が、デコーダ側に転送される。
S54:S53において取得された最適候補動き情報に基づいて現在ブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。S14またはS34における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
実施形態5と現在の技術との間の差異は以下の通りである。すなわち、様々な候補動きベクトルが、異なる候補動きベクトルリストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在ブロックが復号される。加えて、様々な動き情報リストが、事前設定条件に基づいて構成されることになり、使用される候補リストは、現在コーディングブロックの特徴に基づいて条件付きで構文解析され、その結果、候補リストを示すために必要とされるビットの数量が低減され得る。
実施形態5を参照すると、符号化方法手順は次のように取得され得る。
S161:現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、第1のリストを構成する。
S162:第2のリストを構成し、ここで、第1のリストはブロックベースの候補動き情報リストであり、第2のリストはサブブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードはマージモードである。
S163:第1のリストおよび第2のリストから最適候補動き情報を決定する。
S164:最適動き情報に基づいて現在ブロックを予測する。
随意に、S161の前に、方法は、
現在ブロックのサイズが事前設定済みのサンプル数量を満たすかどうかを決定することを、さらに含んでよい。
随意に、現在コーディングブロックの幅または高さのいずれかがしきい値以上であるかどうかが決定される。たとえば、幅および/または高さが8以上であるかどうかが決定される。
現在ブロックのサイズが事前設定済みのサンプル数量を満たさない場合、方法は以下のことをさらに含む。
S165:第1のリストを構成し、ここで、第1のリストはブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードはマージモードである。
S166:第1のリストから最適候補動き情報を決定する。
S167:最適動き情報に基づいて現在ブロックを予測する。
S165〜S167が、S161〜S164から独立した実施可能な符号化方法をなし得ることを理解されたい。
実施形態6(デコーダ側)
S61:最適候補動き情報のインデックス情報を取得するために、事前設定条件に基づいてビットストリームを構文解析する。
事前設定条件は以下の通りであり得る。
(1)現在コーディングブロックの幅がしきい値(たとえば、限定はしないが、4、8、16、または32)以上であり、かつ/または現在コーディングブロックの高さがしきい値(たとえば、限定はしないが、4、8、16、または32)以上であるか、あるいは
(2)現在コーディングブロックのサンプル数量(幅×高さ)がしきい値(たとえば、256)以上である。
事前設定条件は、エンコーダ側とデコーダ側の両方によって合意されてよく、またはSPSもしくはPPSなどのもっと高いレベルのシンタックスを使用することによって指定されてもよい。
現在コーディングブロックが事前設定条件を満たさない(そのことは、事前設定条件のいずれも満たされないこととして理解され得る)とき、動き情報のインデックス情報は構文解析されない(ブロックベースの動き情報しか使用されない)。この場合、list0(特定の実装形態ではlist-idx=0)がデフォルトで使用され、list0の中のロケーションのインデックス値(mv-index)が構文解析される。詳細には、リストlist0の中のロケーションのインデックス値(mv-index)のみが構文解析されてよい。
現在コーディングブロックが条件を満たす(そのことは、事前設定条件のいずれかが満たされることとして理解され得る)とき、ビットストリームが構文解析されて、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx、ただし、list-idxの値は0または1であり得る)を取得し、候補動き情報リストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-index)を取得する。
S62:候補動き情報リストのインデックスに基づいて候補動き情報リストを構成する。
詳細には、リストは、実施形態2または実施形態4における対応する方法を使用することによって構成されてよい。詳細には、リストは、S22またはS42における方法と同じかまたは類似の方法を使用することによって構成されてよい。詳細は本明細書で再び説明しない。
S63:インデックス情報に基づいて最適候補動き情報を決定する。
詳細には、最適候補動き情報は、list-idxおよびmv-indexに基づいてリストから決定される。詳細には、最適候補動き情報は、S23またはS43における方法と同じかまたは類似の方法を使用することによって決定されてよい。詳細は本明細書で再び説明しない。
S64:S63において取得された最適候補動き情報に基づいて現在コーディングブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。S24またはS44における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
実施形態6と現在の技術との間の差異は以下の通りである。すなわち、様々な候補動きベクトルが、異なる候補動きベクトルリストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在コーディングブロックが復号される。加えて、様々な動き情報リストが、事前設定条件に基づいて構成されることになり、使用される候補リストは、現在コーディングブロックの特徴に基づいて条件付きで構文解析され、その結果、候補リストを示すために必要とされるビットの数量が低減され得る。
実施形態6を参照すると、復号方法手順が取得され得る。図17を参照されたい。方法は以下のステップを含む。
S171:現在ブロックのサイズが事前設定済みのサンプル数量を満たす場合、現在ブロックの最適候補動き情報を含む候補動き情報リストを決定するために使用される識別子を取得し、候補動き情報リストの中の最適候補動き情報のインデックスを取得し、ここで、現在ブロックに対して使用されるインター予測モードはマージモードである。
随意に、特定の実装形態についてはS61を参照されたい。
S172:識別子に基づいて候補動き情報リストを構成し、識別子が第1の特徴値であるとき、ブロックベースの候補動き情報リストを構成し、または識別子が第2の特徴値であるとき、サブブロックベースの候補動き情報リストを構成する。
随意に、特定の実装形態についてはS62を参照されたい。
S173:インデックスに基づいて、構成された候補動き情報リストから最適動き情報を決定する。
随意に、特定の実装形態についてはS63を参照されたい。
S174:最適動き情報に基づいて現在ブロックを予測する。
随意に、特定の実装形態についてはS64を参照されたい。
S171の前に、方法は、現在ブロックのサイズが事前設定条件または事前設定済みのサンプル数量を満たすかどうかを決定することをさらに含む。
随意に、現在コーディングブロックの幅または高さのいずれかがしきい値以上であるかどうかが決定される。たとえば、幅および/または高さが8以上であるかどうかが決定される。
現在ブロックのサイズが事前設定済みのサンプル数量を満たさない場合、方法は以下のことをさらに含む。
S175:第1のリストを構成し、ここで、第1のリストはブロックベースの候補動き情報リストであり、現在ブロックに対して使用されるインター予測モードはマージモードである。
S176:第1のリストから最適候補動き情報を決定する。
S177:最適動き情報に基づいて現在ブロックを予測する。
S175〜S177が、S171〜S174から独立した実施可能な符号化方法をなし得ることを理解されたい。
実施形態7(デコーダ側)
S71:最適候補動き情報のインデックス情報を取得するために、事前設定条件に基づいてビットストリームを構文解析する。
第1の事前設定条件が満たされるとき、最適候補動き情報リストのインデックスは0である(ブロックベースの動き情報しか使用されない)。言い換えれば、(list-idx=0によって同様に示されてよい)list0が使用される。
第2の事前設定条件が満たされるとき、最適候補動き情報リストのインデックスは1である(サブブロックベースの動き情報しか使用されない)。言い換えれば、(list-idx=1によって同様に示されてよい)list1が使用される。
第1の事前設定条件も第2の事前設定条件も満たされないとき、ビットストリームが構文解析されて、最適候補動き情報を含む候補動き情報リストのインデックス(たとえば、list-idx)を取得し、list0が使用されるべきであるのかそれともlist1が使用されるべきであるのかが、list-idxに基づいて決定される。最後に、対応するリストの中の最適候補動き情報のロケーションのインデックス値(たとえば、mv-index)が構文解析される。
第1の事前設定条件は以下の通りであり得る。
(1)現在コーディングブロックの幅が第1のしきい値(たとえば、16)未満であり、かつ/または現在コーディングブロックの高さが第1のしきい値(たとえば、16)未満であるか、あるいは
(2)現在コーディングブロックのサンプル数量(幅×高さ)が第1のしきい値(たとえば、256)未満である。
第1の事前設定条件は、エンコーダ側とデコーダ側の両方によって合意されてよく、またはSPSもしくはPPSなどのもっと高いレベルのシンタックスを使用することによって指定されてもよい。
第2の事前設定条件は以下の通りであり得る。
(1)現在コーディングブロックの幅が第2のしきい値(たとえば、64)以上であり、かつ/または現在コーディングブロックの高さが第2のしきい値(たとえば、64)以上であるか、あるいは
(2)現在コーディングブロックのサンプル数量(幅×高さ)が第2のしきい値(たとえば、1024)以上である。
第2の事前設定条件は、エンコーダ側とデコーダ側の両方によって合意されてよく、またはSPSもしくはPPSなどのもっと高いレベルのシンタックスを使用することによって指定されてもよい。
第2のしきい値は第1のしきい値よりも大きい。
S72:候補動き情報リストのインデックスに基づいて候補動き情報リストを構成する。
詳細には、リストは、実施形態2、実施形態4、または実施形態6における対応する方法を使用することによって構成されてよい。詳細には、リストは、S22、S42、またはS62における方法と同じかまたは類似の方法を使用することによって構成されてよい。詳細は本明細書で再び説明しない。
S73:インデックス情報に基づいて最適候補動き情報を決定する。
詳細には、最適候補動き情報は、list-idxおよびmv-indexに基づいてリストから決定される。詳細には、最適候補動き情報は、S23、S43、またはS63における方法と同じかまたは類似の方法を使用することによって決定されてよい。詳細は本明細書で再び説明しない。
S74:S73において取得された最適候補動き情報に基づいて現在コーディングブロックに対して動き補償を実行して、ブロックのサンプル予測子を取得する。S24、S44、またはS64における方法と同じかまたは類似の方法を使用することによって、特定の実装形態が実行されてよい。
実施形態7と現在の技術との間の差異は以下の通りである。すなわち、様々な候補動きベクトルが、異なる候補動きベクトルリストの中に挿入され、最適候補動き情報のインデックス情報を取得するためにビットストリームが構文解析され、対応する動き情報に基づいて現在コーディングブロックが復号される。加えて、様々な動き情報リストが、事前設定条件に基づいて構成され、使用される候補リストは、現在コーディングブロックの特徴に基づいて条件付きで構文解析され、その結果、候補リストを示すために必要とされるビットの数量が低減され得る。
本出願の一実施形態は装置1800を提供する。図18を参照されたい。装置1800は、
現在ブロックの最適候補動き情報のインデックス情報を取得するように構成された取得モジュール1801と、
インデックス情報に基づいて候補動き情報リストを構成するように構成された構成モジュール1802であって、ここで、候補動き情報リストの中に含まれる動きベクトルを取得するモードが、インデックス情報のフィールドとともに変わる、構成モジュール1802と、
インデックス情報に基づいて候補動き情報リストから最適動きベクトルを決定するように構成された決定モジュール1803と、
最適動きベクトルに基づいて現在ブロックを予測するように構成された予測モジュール1804とを含む。
詳細には、取得モジュール1801は、S21における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S22における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S23における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S24における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
詳細には、取得モジュール1801は、S41における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S42における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S43における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S44における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
詳細には、取得モジュール1801は、S51における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S52における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S53における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S54における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
詳細には、取得モジュール1801は、S61における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S62における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S63における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S64における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
詳細には、取得モジュール1801は、S71における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S72における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S73における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S74における対応する方法および部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
加えて、取得モジュール1801は、S141、S151、またはS171に対応する方法およびS141、S151、またはS171の部分的な置き換えのために使用され得る均等な方法を実行するように構成される。構成モジュール1802は、S142、S152、またはS172に対応する方法およびS142、S152、またはS172の部分的な置き換えのために使用され得る均等な方法を実行するように構成される。決定モジュール1803は、S143、S153、またはS173に対応する方法およびS143、S153、またはS173の部分的な置き換えのために使用され得る均等な方法を実行するように構成される。予測モジュール1804は、S144、S154、またはS174に対応する方法およびS144、S154、またはS174の部分的な置き換えのために使用され得る均等な方法を実行するように構成される。
本出願の一実施形態は符号化デバイス19を提供する。図19を参照されたい。デバイスは、多用途コーディングデバイスであってよく、互いに結合された不揮発性メモリおよびプロセッサを含む。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S11、S12、S13、およびS14などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリおよびプロセッサを含む、符号化デバイス19を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S31、S32、S33、およびS34などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリおよびプロセッサを含む、符号化デバイス19を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S51、S52、S53、およびS54などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリ1901およびプロセッサ1902を含む、復号デバイス19(ここで、デバイスはコーディングデバイスであってよい)を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S21、S22、S23、およびS24などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリ1901およびプロセッサ1902を含む、復号デバイス19を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S41、S42、S43、およびS44などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリ1901およびプロセッサ1902を含む、復号デバイス19を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S61、S62、S63、およびS64などの方法、ならびに均等な方法を実行する。
本出願の一実施形態は、互いに結合された不揮発性メモリ1901およびプロセッサ1902を含む、復号デバイス19を提供する。プロセッサは、メモリの中に記憶されたプログラムコードを呼び出して、S71、S72、S73、およびS74などの方法、ならびに均等な方法を実行する。
コーディングデバイス19は、ビデオピクチャを表示するように構成されたディスプレイ1903をさらに含んでよい。
本出願の一実施形態はコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体はプログラムコードを記憶する。プログラムコードは、S11〜S14、S21〜S24、S31〜S34、S41〜S44、S51〜S54、S61〜S64、および/またはS71〜S74のうちの、一部または全部のステップを実行するために使用される命令を含む。
本出願の一実施形態はコンピュータプログラム製品を提供する。コンピュータプログラム製品がコンピュータ上で動作するとき、コンピュータは、S11〜S14、S21〜S24、S31〜S34、S41〜S44、S51〜S54、S61〜S64、および/またはS71〜S74のうちの、一部または全部のステップを実行する。
方法実施形態におけるいくつかの技術的特徴の説明および記載が、装置実施形態、符号化デバイス、復号デバイス、コンピュータプログラム、記憶媒体などにも適用可能であることを理解されたい。
本明細書で開示および説明した様々な例示的な論理ブロック、モジュール、およびアルゴリズムステップを参照しながら説明した機能が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せによって実施され得ることを、当業者は理解することができる。ソフトウェアによって実装される場合、例示的な論理ブロック、モジュール、およびステップを参照しながら説明した機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体の中に記憶されてよく、またはコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、またはある場所から別の場所へのコンピュータプログラムの(たとえば、通信プロトコルによる)転送を容易にする任意の媒体を含む通信媒体を含んでよい。このようにして、コンピュータ可読媒体は、概して、(1)非一時的有形コンピュータ可読記憶媒体、または(2)信号もしくはキャリアなどの通信媒体に相当し得る。データ記憶媒体は、本出願で説明した技術を実施するために、命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の使用可能な媒体であってよい。コンピュータプログラム製品はコンピュータ可読媒体を含んでよい。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは別のコンパクトディスク記憶装置、磁気ディスク記憶装置もしくは別の磁気記憶装置、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を含んでよい。加えて、任意の接続が適切にコンピュータ可読媒体と呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または別のリモートソースから同軸ケーブル、光ファイバ、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を通じて送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義の中に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、キャリア、信号、または他の一時的媒体を含まないが、実際には非一時的有形記憶媒体を意味することを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、およびBlu-ray(登録商標)ディスク(disc)を含む。ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記のものの組合せもコンピュータ可読媒体の範囲の中に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の均等な集積回路もしくは個別論理回路などの、1つまたは複数のプロセッサによって実行されてよい。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明した技術を実施するのに適した任意の他の構造のうちのいずれかであってよい。加えて、いくつかの態様では、本明細書で説明した例示的な論理ブロック、モジュール、およびステップを参照しながら説明した機能は、符号化および復号のために構成された専用ハードウェア内および/もしくはソフトウェアモジュール内に設けられてよく、または組み合わせられたコーデックの中に組み込まれてもよい。加えて、本技術は、1つまたは複数の回路または論理要素の中で完全に実施され得る。
本出願における技術は、ワイヤレスハンドセット、集積回路(IC)、または1組のIC(たとえば、チップセット)を含む、様々な装置またはデバイスの中で実施され得る。様々なコンポーネント、モジュール、またはユニットは、開示する技術を実行するように構成された装置の機能的態様を強調するように本出願で説明されるが、必ずしも異なるハードウェアユニットによって実装されるとは限らない。実際には、上記で説明したように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアと組み合わせてコーデックハードウェアユニットの中に組み合わせられてよく、あるいは(上記で説明した1つまたは複数のプロセッサを含む)相互動作可能なハードウェアユニットによって設けられてもよい。
上記の説明は、本出願の特定の実装形態の例にすぎず、本出願の保護範囲を限定することを意図しない。本出願で開示する技術的範囲内で当業者によって容易に見出される任意の変形または置き換えは、本出願の保護範囲内に入るものとする。したがって、本出願の保護範囲は、特許請求の範囲の保護範囲を受けるものとする。