(57)【要約】  本出願が開示する各態様は、ビデオ符号化のための方法、機器及びコンピュータ・プログラムを提供する。いくつかの例示において、機器は処理回路を含み、処理回路は符号化されたビデオビットストリームから第１シンタックス要素を取得し、該第１シンタックス要素は複数のモードに関連付けられ、該複数のモードは動き情報を特定して動き情報を現在ブロックに適用するためのものであり、該第１シンタックス要素の第１値は、現在ブロックに用いられる複数のモードのサブセットを示す。該処理回路はさらに、第１シンタックス要素の第１値が示す該複数のモードの該サブセットに基づき、現在ブロックの予測値を生成し、該予測値に基づき、現在ブロックの再構築サンプルを生成する。
2021524176.tif 000002
【特許請求の範囲】
【請求項１】
復号器が実行するビデオ復号のための方法であって、
符号化されたビデオビットストリームから第１シンタックス要素を取得するステップであって、前記第１シンタックス要素は複数のモードに関連付けられ、前記複数のモードは、動き情報を特定して現在ブロックに適用するためのものであり、前記第１シンタックス要素の第１値は、前記現在ブロックに用いられる前記複数のモードのサブセットを示す、ステップと、
前記第１シンタックス要素の第１値が示す前記サブセットに基づき、前記現在ブロックの予測値を生成するステップと、
前記予測値に基づき、前記現在ブロックの再構築サンプルを生成するステップとを含む方法。
【請求項２】
前記複数のモードは、
動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出する通常マージモードと、
前記現在ブロックを複数の矩形サブブロックに分割するとともに、前記複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モードと、
前記現在ブロックを三角形サブパーティションに分割するとともに、前記三角形サブパーティションのそれぞれの動き情報を導出する三角形予測ユニットモードとを含む請求項１に記載の方法。
【請求項３】
前記複数のモードはさらに、
動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出する動きベクトル差付きマージモードを含む請求項２に記載の方法。
【請求項４】
前記複数のモードはさらに、
フレーム内予測値とフレーム間予測値とを組み合わせることで、前記現在ブロックの最終予測値を生成するイントラ用の多仮説予測モードを含む請求項３に記載の方法。
【請求項５】
前記第１シンタックス要素は、前記複数のモードのそれぞれを表す異なるビンの１つに設定され、
前記複数のモードは、前記複数のモードのうちの各モードの使用頻度の降順に基づき配列され、前記通常マージモード、前記動きベクトル差付きマージモード、前記サブブロックマージ予測モード、前記イントラ用の多仮説予測モード、及び前記三角形予測ユニットモードとして配列される請求項４に記載の方法。
【請求項６】
前記第１シンタックス要素は、前記複数のモードのそれぞれを表す異なるビンの１つに設定され、
前記複数のモードは、前記複数のモードのうちの各モードの使用頻度の降順に基づき配列される請求項１に記載の方法。
【請求項７】
前記現在ブロックが含まれるピクチャにおいて、前記複数のモードにおいて使用頻度が最も高いモードは前記降順のうちの１番目に配列され、前記使用頻度が最も高いモードは前記ビンにおける最も少ないバイナリビットを有するビンで示される請求項６に記載の方法。
【請求項８】
前記使用頻度が最も高いモードは通常マージモードであり、前記通常マージモードは動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出する請求項７に記載の方法。
【請求項９】
さらに、
前記符号化されたビデオビットストリームから、前記第１シンタックス要素の後で提供される第２シンタックス要素を取得するステップであって、前記第２シンタックス要素の第２値はインデックスを示し、前記インデックスは動き情報候補リストから動き情報候補を選択するためのものであるステップと、
前記第１シンタックス要素の第１値が示す複数のモードのサブセットが、選択された動き情報候補に基づき、前記現在ブロック全体の動き情報を導出するモードに対応する場合、前記第２シンタックス要素の第２値によって示される前記インデックスが動きベクトル差付きマージモードの動き情報候補の最大の数より小さいと、前記符号化されたビデオビットストリームから第３シンタックス要素を取得するステップであって、前記第３シンタックス要素の第３値は、通常マージモードに基づき前記現在ブロックの予測値を生成するか、それとも前記動きベクトル差付きマージモードに基づき、前記現在ブロックの予測値を生成するかということを示し、前記通常マージモードは動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出するモートであり、前記動きベクトル差付きマージモードは動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出するモートであるステップとを含む請求項１に記載の方法。
【請求項１０】
さらに、
前記第３シンタックス要素の第３値が、前記現在ブロックの予測値を生成するためのモードが、前記動きベクトル差付きマージモードであることを示す場合、前記符号化されたビデオビットストリームから、前記第３シンタックス要素の後で提供される１つまたは複数の第４シンタックス要素を取得するステップを含み、前記１つまたは複数の第４シンタックス要素は前記動きベクトル差情報を示す請求項９に記載の方法。
【請求項１１】
前記第１シンタックス要素の第１値は、前記現在ブロックの予測値を生成するためのモードが、ブロックに基づくマージモードであるか、それともサブブロックに基づくマージモードであるかを示し、
前記第１シンタックス要素の第１値が、前記現在ブロックの予測値を生成するためのモードが前記ブロックに基づくマージモードであることを示す場合、前記複数のモードのサブセットは、
動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出する通常マージモード、及び、
動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出する動きベクトル差付きマージモードのうちの少なくとも１つを含み、
前記第１シンタックス要素の第１値が、前記現在ブロックの予測値を生成するためのモードが前記サブブロックに基づくマージモードであることを示す場合、前記複数のモードのサブセットは、
前記現在ブロックを複数の矩形サブブロックに分割するとともに、前記複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モード、
前記現在ブロックを三角形サブパーティションに分割するとともに、前記三角形サブパーティションのそれぞれの動き情報を導出する三角形予測ユニットモード、及び、
フレーム内予測値とフレーム間予測値とを組み合わせることで、前記現在ブロックの最終予測値を生成するイントラ用の多仮説予測モードのうちの、少なくとも１つを含む請求項１に記載の方法。
【請求項１２】
さらに、
前記符号化されたビデオビットストリームから、前記第１シンタックス要素の後で提供される第２シンタックス要素を取得するステップであって、前記第２シンタックス要素の第２値はインデックスを示し、前記インデックスは動き情報候補リストから動き情報候補を選択するためのものであるステップと、
前記第１シンタックス要素の第１値が、前記現在ブロックの予測値を生成するためのモードが前記ブロックに基づくマージモードであることを示す場合、前記第２シンタックス要素の第２値によって示される前記インデックスが前記動きベクトル差付きマージモードの動き情報候補の最大の数より小さいと、前記符号化されたビデオビットストリームから第３シンタックス要素を取得するステップであって、前記第３シンタックス要素の第３値は前記通常マージモードに基づき前記現在ブロックの予測値を生成するか、それとも前記動きベクトル差付きマージモードに基づき前記現在ブロックの予測値を生成するかを示すステップとを含む請求項１１に記載の方法。
【請求項１３】
さらに、
前記第３シンタックス要素が、前記現在ブロックの予測値を生成するためのモードが、前記動きベクトル差付きマージモードであることを示す場合、前記符号化されたビデオビットストリームから、前記第３シンタックス要素の後で提供される１つまたは複数の第４シンタックス要素を取得するステップを含み、前記１つまたは複数の第４シンタックス要素は前記動きベクトル差情報を示す請求項１２に記載の方法。
【請求項１４】
さらに、
前記第１シンタックス要素の第１値が、前記複数のモードのサブセットに少なくとも通常マージモードが含まれることを示す場合、前記符号化されたビデオビットストリームから、前記第１シンタックス要素の後で提供される他のシンタックス要素を取得するステップを含み、前記他のシンタックス要素の値は、前記現在ブロックの予測値を生成するためのモードが、通常マージモードであるかどうかを示し、前記通常マージモードは動き情報候補リストから選択された動き情報候補に基づき、前記現在ブロックの動き情報を導出するモードである請求項１に記載の方法。
【請求項１５】
処理回路を含む機器であって、
前記処理回路は、
請求項１乃至１４のいずれか一項に記載の方法を実行させるように配置される機器。
【請求項１６】
コンピュータに、請求項１乃至１４のいずれか一項に記載される方法を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の援用］
本出願は、２０１９年８月５日にて提出されたアメリカ特許出願Ｎｏ. １６／５３１,９５８「Ｍｅｔｈｏｄ ａｎｄ Ａｐｐａｒａｔｕｓ ｆｏｒ
Ｖｉｄｅｏ Ｃｏｄｉｎｇ」の優先権を主張し、本開示は２０１８年１２月３日にて提出されたアメリカ仮出願Ｎｏ. ６２／７７４．８２８の優先権を主張する。先行出願の全ての開示内容は本明細書に援用される。
【０００２】
［技術分野］
本出願は一般的に、ビデオ符号化及び復号に関する実施例を説明する。
【背景技術】
【０００３】
本明細書で提供される背景記載は、本開示の内容の背景を総体的に体現することを目的とする。該背景技術部分に記載の作業程度から見れば、現在署名の発明者の作業、及び提出の際に別に従来技術の記載として限定されていない態様について、明確且つ暗黙的に本開示の内容に対する従来技術として認められない。
【０００４】
動き補償を有するフレーム間予測を使用してビデオの符号化と復号を実行することができる。非圧縮のデジタルビデオは一連のピクチャを含んでもよく、各ピクチャは空間次元、例えば、１９２０×１０８０の輝度サンプルと関連するクロミナンスサンプルを有する。該一連のピクチャは、例えば、１秒あたり６０のピクチャ又は６０Ｈｚの固定又は可変のピクチャレート（非正式にはフレームレートとも呼ばれる）を有してもよい。非圧縮のビデオには、高いビットレート要件を有する。例えば、サンプルあたりの８ビットの１０８０ｒ６０４：２：０ビデオ（６０Ｈｚフレームレートでの１９２０×１０８０の輝度サンプル解像度）は、１．５Ｇｂｉｔ/ｓに近い帯域幅が必要である。このような１時間のビデオは、６００ＧＢを超えるストレージスペースが必要である。
【０００５】
ビデオ符号化及び復号は、圧縮により、ビデオ信号入力における冗長を減少させることを１つの目的とする。圧縮は、以上に言及された帯域幅又は記憶空間に対するニーズを減少させることに寄与し、ある状況で、２つ又はより多いオーダーを減少させる。可逆圧縮、非可逆圧縮、及びその組み合わせを利用できる。可逆圧縮は、圧縮された元の信号から元の信号の正確なコピーを再構築できる技術を指す。非可逆圧縮を利用する場合、再構築された信号は元の信号と異なる可能性もあるが、元の信号と再構築された信号との間の歪みは十分に小さいから、再構築された信号はターゲットアプリケーションに利用できる。ビデオの場合、非可逆圧縮は大幅に応用される。許容の歪み量はアプリケーションに依存し、例えば、テレビ配信アプリケーションのユーザーより、消費者ストリーミングメディアプリケーションのユーザーが高い歪みを許容する。実現可能な圧縮比は、許可／許容可能な歪みが高いほど、圧縮比が高くなることを反映する。
【０００６】
動き補償は非可逆圧縮技術であってもよく、以下の技術に関わり、動きベクトル（以下はＭＶと呼ばれる）が指示する方向で空間変位を行った後、前に再構築されたピクチャまたはその一部（即ち、参照ピクチャを利用する）からのサンプルデータのブロックを利用して、新たに再構築されたピクチャまたはその一部を予測する。ある状況で、参照ピクチャは現在再構築中のピクチャと同じであってもよい。ＭＶはＸとＹという２つの次元を有してもよいし、３つの次元を有してもよく、第３次元は利用中の参照ピクチャを指示する（後者は間接的に時間次元であってもよい）。
【０００７】
いくつかのビデオ圧縮技術において、他のＭＶに基づき、サンプルデータのある領域に適用されるＭＶを予測してもよく、例えば、空間で再構築中の領域に隣接するサンプルデータの他の領域に関するとともに、復号順序で前にあるＭＶに基づき予測してもよい。このように、ＭＶ符号化に必要なデータ量を大幅に減少させ、冗長をなくし、圧縮率を向上させる。例えば、カメラから導出されたビデオ入力信号（ナチュラルビデオと呼ばれる）に対して符号化を行う際、単一のＭＶが適用可能な領域よりも大きい領域が類似の方向に移動する可能性が統計的にあるため、ある状況で、隣接領域のＭＶから、類似の動きベクトルを導出し、該単一ＭＶを予測できる。従って、ＭＶ予測は効果的に機能する。これによって、特定領域に対して検出されたＭＶは、周辺ＭＶから予測されたＭＶと類似または同じになり、エントロピー符号化の後、ＭＶに対して直接的に符号化を行う場合より少ないバイナリビットで、該ＭＶを示すことができる。ある状況で、ＭＶ予測は元の信号（即ち、サンプルストリーム）から導出される信号（即ち、ＭＶ）の可逆圧縮の例示であってもよい。他の状況で、ＭＶ予測そのものは非可逆であってもよく、その原因は、例えば、若干の周辺ＭＶに基づき予測値を計算する際の丸め誤差である。
【０００８】
Ｈ.２６５／ＨＥＶＣ（ＩＴＵ−Ｔ
Ｈ.２６５提案書、「高効率ビデオ符号化／復号（Ｈｉｇｈ Ｅｆｆｉｃｉｅｎｃｙ Ｖｉｄｅｏ Ｃｏｄｉｎｇ）」、２０１６年１２月）には各種のＭＶ予測メカニズムが記載されている。Ｈ.２６５が提供する多種のＭＶ予測メカニズムにおいて、本出願は、以下で「空間マージ」と呼ばれる技術を説明する。
【０００９】
図１を参照し、現在ブロック（１０１）は、動き検索過程期間で、既に符号器が発見したサンプルを有し、空間オフセットが生じた、同じ大きさの前ブロックに基づき、これらのサンプルを予測できる。また、該ＭＶに対して直接的に符号化を行わず、１つまたは複数の参照ピクチャと関連付けたメタデータからＭＶを導出する。例えば、Ａ０、Ａ１及びＢ０、Ｂ１、Ｂ２（それぞれ１０２〜１０６に対応する）という５つの周辺サンプルのうちのいずれかのサンプルと関連付けたＭＶを利用して（復号順序に従う）、最も近い参照ピクチャのメタデータから該ＭＶを導出する。Ｈ.２６５において、ＭＶ予測は隣接ブロックも使用している同じ参照ピクチャの予測値を利用できる。
【発明の概要】
【００１０】
本出願が開示する各態様はビデオ符号化／復号のための方法及び機器を提供する。いくつかの例示において、該機器は処理回路を有し、該処理回路は、符号化されたビデオビットストリームから第１シンタックス要素を取得するように配置され、該第１シンタックス要素は複数のモードと関連付けられ、複数のモードは動き情報を特定して現在ブロックに適用するためのものであり、第１シンタックス要素の第１値は、現在ブロックに用いられる複数のモードのサブセットを示す。該処理回路はさらに、第１シンタックス要素の第１値が示す複数のモードのサブセットに基づき、現在ブロックの予測値を生成し、予測値に基づき、現在ブロックの再構築サンプルを生成するように配置される。
【００１１】
いくつかの実施例において、複数のモードは、動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する通常マージモードと、現在ブロックを複数の矩形サブブロックに分割するとともに、複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モードと、現在ブロックを三角形サブパーティションに分割するとともに、三角形サブパーティションのそれぞれの動き情報を導出する三角形予測ユニットモードとを有する。
【００１２】
いくつかの実施例において、複数のモードはさらに、動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する動きベクトル差付きマージモードを有する。
【００１３】
いくつかの実施例において、複数のモードはさらに、フレーム内予測値とフレーム間予測値を組み合わせることで、現在ブロックの最終予測値を生成するイントラ用の多仮説予測モードを有する。
【００１４】
いくつかの実施例において、第１シンタックス要素は、複数のモードのそれぞれを表す異なるビンのうちの１つに設定される。
複数のモードは、複数のモードのうちの各モードの使用頻度の降順に基づき配列され、通常マージモード、動きベクトル差付きマージモード、サブブロックマージ予測モード、イントラ用の多仮説予測モード、三角形予測ユニットモードとして配列される。
【００１５】
いくつかの実施例において、第１シンタックス要素は、複数のモードのうちの各モードを表す異なるビンのうちの１つに設定され、複数のモードは、複数のモードのうちの各モードの使用頻度の降順に基づき配列される。
【００１６】
いくつかの実施例において、現在ブロックが含まれるピクチャにおける複数のモードのうちの使用頻度が最も高いモードは降順の１番目に配置され、使用頻度が最も高いモードはビンのうちの最も少ないバイナリビットを有するビンで示される。
【００１７】
いくつかの実施例において、使用頻度が最も高いモードは通常マージモードであり、通常マージモードは、動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する。
【００１８】
いくつかの実施例において、該処理回路はさらに、符号化されたビデオビットストリームから、第１シンタックス要素の後で提供される第２シンタックス要素を取得するように配置され、第２シンタックス要素の第２値はインデックスを示し、該インデックスは動き情報候補リストから動き情報候補を選択するためのものである。第１シンタックス要素の第１値が示す複数のモードのサブセットが、選択された動き情報候補に基づき、現在ブロック全体の動き情報を導出するモードに対応する場合、該処理回路はさらに、第２シンタックス要素の第２値が示すインデックスが動きベクトル差付きマージモードの動き情報候補の最大の数より小さいと、符号化されたビデオビットストリームから第３シンタックス要素を取得するように配置される。いくつかの実施例において、第３シンタックス要素の第３値は、（ｉ）通常マージモードに基づき現在ブロックの予測値を生成するか、それとも（ｉｉ）動きベクトル差付きマージモードに基づき、現在ブロックの予測値を生成するかを示し、通常マージモードは動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出し、動きベクトル差付きマージモードは動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する。
【００１９】
いくつかの実施例において、処理回路はさらに、第３シンタックス要素の第３値が現在ブロックの予測値を生成するためのモードが動きベクトル差付きマージモードであることを示す場合、符号化されたビデオビットストリームから、第３シンタックス要素の後で提供される１つまたは複数の第４シンタックス要素を取得するように配置され、１つまたは複数の第４シンタックス要素は動きベクトル差情報を示す。
【００２０】
いくつかの実施例において、第１シンタックス要素の第１値が、現在ブロックの予測値を生成するためのモードが、ブロックに基づくマージモードであるか、それともサブブロックに基づくマージモードであるかを示す。
【００２１】
いくつかの実施例において、第１シンタックス要素の第１値が、現在ブロックの予測値を生成するためのモードがブロックに基づくマージモードであることを示す場合、複数のモードのサブセットは、動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する通常マージモード、及び、動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する動きベクトル差付きマージモードのうちの少なくとも１つを有する。
【００２２】
いくつかの実施例において、第１シンタックス要素の第１値が、現在ブロックの予測値を生成するためのモードがサブブロックに基づくマージモードであることを示す場合、複数のモードのサブセットは、現在ブロックを複数の矩形サブブロックに分割するとともに、複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モード、現在ブロックを三角形サブパーティションに分割するとともに、三角形サブパーティションのそれぞれの動き情報を導出する三角形予測ユニットモード、及び、フレーム内予測値とフレーム間予測値を組み合わせることで、現在ブロックの最終予測値を生成するイントラ用の多仮説予測モードのうちの少なくとも１つを有する。
【００２３】
いくつかの実施例において、処理回路はさらに、符号化されたビデオビットストリームから、第１シンタックス要素の後で提供される第２シンタックス要素を取得するように配置され、第２シンタックス要素の第２値はインデックスを示し、該インデックスは動き情報候補リストから動き情報候補を選択するためのものである。第１シンタックス要素の第１値が、現在ブロックの予測値を生成するためのモードがブロックに基づくマージモードであることを示す場合、第２シンタックス要素の第２値が示すインデックスが動きベクトル差付きマージモードの動き情報候補の最大の数より小さいと、符号化されたビデオビットストリームから第３シンタックス要素を取得し、第３シンタックス要素の第３値は、通常マージモードに基づくか、それとも動きベクトル差付きマージモードを利用して現在ブロックの予測値を生成するかということを示す。
【００２４】
いくつかの実施例において、処理回路はさらに、第３シンタックス要素が、現在ブロックの予測値を生成するためのモードが動きベクトル差付きマージモードであることを示す場合、符号化されたビデオビットストリームから、第３シンタックス要素の後で提供される１つまたは複数の第４シンタックス要素を取得するように配置され、１つまたは複数の第４シンタックス要素は動きベクトル差情報を示す。
【００２５】
いくつかの実施例において、処理回路はさらに、第１シンタックス要素の第１値が複数のモードのサブセットに少なくとも通常マージモードが含まれることを示す場合、符号化されたビデオビットストリームから、第１シンタックス要素の後で提供される他のシンタックス要素を取得するように配置され、他のシンタックス要素の値は、現在ブロックの予測値を生成するためのモードが通常マージモードであるかどうかを指示し、前記通常マージモードは動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する。
【００２６】
本出願が開示した各態様はさらに、命令を記憶するための非一時的コンピュータ読み取り可能な媒体を提供し、命令はコンピュータにより実行されることで、ビデオ復号の場合、コンピュータに、前記ビデオ復号のためのいずれかの方法を実行させる。
【図面の簡単な説明】
【００２７】
以下の詳しい説明及び図面に基づき、開示のテーマのさらなる特徴、性質、及び各種利点はより明らかになる。図面において、
【図１】１つの例示における現在ブロック及びその周辺の空間マージ候補の模式図である。
【図２】１つの実施例において、１つの通信システムの簡略化ブロック図の模式図である。
【図３】他の実施例において、他の通信システムの簡略化ブロック図の模式図である。
【図４】１つの実施例において、１つの復号器の簡略化ブロック図の模式図である。
【図５】１つの実施例において、１つの符号器の簡略化ブロック図の模式図である。
【図６】他の実施例において、他の符号器のブロック図を示す。
【図７】他の実施例において、他の復号器のブロック図を示す。
【図８】１つの実施例において、動きベクトル差が付けられたマージ（ＭＭＶＤ）モードで示される現在ブロック及び動きベクトルの模式図である。
【図９Ａ】１つの実施例において、サブブロックアフィンマージ予測モードを利用する現在ブロック、及び現在ブロックの空間隣接ブロックと時間隣接ブロックとの模式図である。
【図９Ｂ】１つの実施例において、サブブロックに基づく代替時間動きベクトル予測（ＡＴＭＶＰ）モードを利用する現在ピクチャにおける現在ブロック、及び参照ピクチャにおける参照ブロックの模式図である。
【図１０】１つの実施例において、イントラモードの多重仮説予測（ＭＨＩｎｔｒａ）を利用する、少なくとも現在ブロックのフレーム間予測値及びフレーム内予測値に基づき、再構築される現在ブロックの模式図である。
【図１１】１つの実施例において、三角形予測ユニットモードを利用して現在ブロックを分割する２つの例示の模式図である。
【図１２Ａ】本出願の実施例の復号プロセスを概略説明するフローチャートを示す。
【図１２Ｂ】本出願の実施例の他の復号プロセスを概略説明するフローチャートを示す。
【図１３】本出願の実施例の符号化プロセスを概略説明するフローチャートを示す。
【図１４】本出願の実施例のコンピュータシステムの模式図である。
【発明を実施するための形態】
【００２８】
図２は、本出願が開示する実施例に基づく通信システム（２００）の簡略化ブロック図を示す。通信システム（２００）は、例えばネットワーク（２５０）を介して互いに通信できる複数の端末機器を含む。例えば、通信システム（２００）はネットワーク（２５０）を介して互いに接続された第１端末機器（２１０）と第２端末機器（２２０）とを含む。図２の実施例において、第１端末機器（２１０）と第２端末機器（２２０）は一方向のデータ伝送を実行する。例えば、第１端末機器（２１０）はビデオデータ（例えば、端末機器（２１０）によりキャプチャしたビデオピクチャストリーム）を符号化することで、ネットワーク（２５０）を介して他方の第２端末機器（２２０）に伝送される。符号化されたビデオデータは１つまたは複数の符号化されたビデオビットストリームという形式で伝送されてもよい。第２端末機器（２２０）はネットワーク（２５０）から符号化されたビデオデータを受信し、符号化されたビデオデータを復号することで、ビデオデータを回復させ、回復されたビデオデータに基づき、ビデオピクチャを表示する。一方向のデータ伝送はメディアサービスアプリケーションなどにおいて、よく見られる。
【００２９】
他の実施例において、通信システム（２００）は符号化されたビデオデータの双方向伝送を実行するための第３端末機器（２３０）と第４端末機器（２４０）とを含み、前記双方向伝送は、例えばビデオ会議期間に発生する。双方向データ伝送について、第３端末機器（２３０）と第４端末機器（２４０）における各々端末機器は、ビデオデータ（例えば、端末機器によりキャプチャしたビデオピクチャストリーム）を符号化することで、ネットワーク（２５０）を介して第３端末機器（２３０）と第４端末機器（２４０）における他方の端末機器に伝送される。端末機器（２３０）と第４端末機器（２４０）における各々端末機器はさらに第３端末機器（２３０）と第４端末機器（２４０）のうちの他方の端末機器から伝送され、符号化されたビデオデータを受信し、前記符号化されたビデオデータを復号することで、ビデオデータを回復させ、回復されたビデオデータに基づき、アクセスし得る表示機器でビデオピクチャを表示できる。
【００３０】
図２の例において、第１端末機器（２１０）、第２端末機器（２２０）、第３端末機器（２３０）及び第４端末機器（２４０）はサーバ、パーソナルコンピュータ及びスマートフォンであってもよいが、本出願が開示する原理はこれに限定されない。本出願が開示する実施例はラップトップコンピュータ、タブレット、メディアプレイヤー及び／または専門ビデオ会議機器に適用される。ネットワーク（２５０）は第１端末機器（２１０）、第２端末機器（２２０）、第３端末機器（２３０）及び第４端末機器（２４０）の間で符号化されたビデオデータを伝送するための、例えば有線（接続）及び／または無線通信ネットワークが含まれる任意の数のネットワークを示す。通信ネットワーク（２５０）は回路交換及び／またはパケット交換チャンネルにおいてデータを交換できる。該ネットワークは電信ネットワーク、ローカルエリアネットワーク、広域エリアネットワーク及び／またはインターネットを含む。本出願の論述目的から見れば、以下で解釈しない限り、ネットワーク（２５０）のアーキテクチャ及びトポロジは、本出願が開示する動作に対して重要ではない。
【００３１】
実施例として、図３はビデオ符号器と復号器との、ストリーミング伝送環境における配置方式を示す。本出願が開示するテーマは等価的にビデオを支持するための、例えばビデオ会議、デジタルＴＶ、及びＣＤ、ＤＶＤ、メモリースティックなどが含まれるデジタル媒体に圧縮ビデオなどを記憶する他のアプリケーションに適用される。
【００３２】
ストリーミング伝送システムは、キャプチャサブシステム（３１３）を有し、前記キャプチャサブシステムは、未圧縮のビデオピクチャストリーム（３０２）を構築するための、デジタルカメラなどのようなビデオソース（３０１）を含む。実施例において、ビデオピクチャストリーム（３０２）はデジタルカメラが撮影したサンプルを含む。符号化されたビデオデータ（３０４）（または符号化されたビデオビットストリーム）に対して、ビデオピクチャストリーム（３０２）はデータ量が多いビデオピクチャストリームを強調するように太線として描画され、ピクチャストリーム（３０２）はビデオソース（３０１）に連結されるビデオ符号器（３０３）を含む電子機器（３２０）によって処理される。ビデオ符号器（３０３）は、ハードウェア、ソフトウェア、またはその組み合わせを含むことで、以下により詳しく説明する開示のテーマの各態様を実現または実施する。ビデオピクチャストリーム（３０２）に対して、符号化されたビデオデータ（３０４）（または符号化されたビデオビットストリーム（３０４））はデータ量が少ない符号化されたビデオデータ（３０４）（または符号化されたビデオビットストリーム（３０４））を強調するように細線として描画され、ストリーミング伝送サーバ（３０５）に記憶されることで、将来に用いられる。図３におけるクライアントサブシステム（３０６）とクライアントサブシステム（３０８）のような１つまたは複数のストリーミング伝送クライアントサブシステムは、ストリーミング伝送サーバ（３０５）にアクセスすることで、符号化されたビデオデータ（３０４）のコピー（３０７）とコピー（３０９）を検索できる。クライアントサブシステム（３０６）は、例えば電子機器（３３０）におけるビデオ復号器（３１０）を含む。ビデオ復号器（３１０）は符号化されたビデオデータの導入コピー（３０７）を復号し、ディスプレイ（３１２）（例えば、スクリーン）または他の表示機器（図示せず）に表示される出力ビデオピクチャストリーム（３１１）を発生させる。いくつかのストリーミング伝送システムにおいて、あるビデオ符号化／圧縮基準に基づき、符号化されたビデオデータ（３０４）、ビデオデータ（３０７）及びビデオデータ（３０９）（例えば、ビデオビットストリーム）を符号化する。これらの基準の実施例はＩＴＵ−Ｔ
Ｈ.２６５を含む。実施例において、開発中のビデオ符号化基準は非公式的にＶＶＣ（Ｖｅｒｓａｔｉｌｅ
Ｖｉｄｅｏ Ｃｏｄｉｎｇ）と呼ばれる。本出願はＶＶＣのコンテキストに適用される。
【００３３】
なお、電子機器（３２０）と電子機器（３３０）は他の部材（図示せず）を含んでもよい。例えば、電子機器（３２０）はビデオ復号器（図示せず）を含んでもよく、電子機器（３３０）はビデオ符号器（図示せず）を含み得る。
【００３４】
図４は、本出願が開示する実施例に基づくビデオ復号器（４１０）のブロック図である。ビデオ復号器（４１０）は電子機器（４３０）に配置される。電子機器（４３０）は受信機（４３１）（例えば、受信回路）を含み得る。ビデオ復号器（４１０）は、図３の実施例におけるビデオ復号器（３１０）の代わりとしてもよい。
【００３５】
受信機（４３１）は、ビデオ復号器（４１０）によって復号される１つ又は複数の符号化されたビデオシーケンスを受信してもよく、同一又は別の実施例では、一回に１つの符号化されたビデオシーケンスを受信し、各符号化されたビデオシーケンスの復号は他の符号化されたビデオシーケンスと独立している。チャンネル（４０１）から符号化されたビデオシーケンスを受信してもよく、チャンネル（４０１）は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア／ソフトウェアリンクであってもよい。受信機（４３１）は、符号化されたビデオデータ及び他のデータ、例えば、それぞれの使用エンティティ（図示せず）に転送され得る符号化されたオーディオデータ及び／又は補助データストリームを受信してもよい。受信機（４３１）は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ（４１５）は、受信機（４３１）とエントロピーデコーダ／パーサ（４２０）（以降、「パーサ（４２０）」と呼ばれる）との間に接続され得る。幾つかのアプリケーションでは、バッファメモリ（４１５）はビデオ復号器（４１０）の一部である。他のアプリケーションでは、バッファメモリ（４１５）はビデオ復号器（４１０）（図示せず）の外部にあってもよい。更なるアプリケーションでは、ビデオ復号器（４１０）の外部には、ネットワークジッタを防止するために、バッファメモリ（描画せず）があってもよく、さらに例えばビデオ復号器（４１０）内に、再生タイミングを処理するために、別のバッファメモリ（４１５）があってもよい。受信機（４３１）が十分な帯域幅と制御可能性を有する記憶／転送デバイスから、又は等時性ネットワークからデータを受信する場合に、バッファメモリ（４１５）は必要としないか、又はバッファメモリ（４１５）は小さくなり得る。例えばインターネットのベストパケットネットワークで使用するために、バッファメモリ（４１５）が必要となる場合があり、バッファメモリ（４１５）は、比較的大きく、自己適応サイズを有することができ、そして、少なくとも一部はオペレーティングシステム又はビデオ復号器（４１０）の外側の類似の構成要素（図示せず）で実現されてもよい。
【００３６】
ビデオ復号器（４１０）は、符号化されたビデオシーケンスからシンボル（４２１）を再構築するために、パーサ（４２０）を含み得る。これらのシンボルのカテゴリには、ビデオ復号器（４１０）の動作を管理するための情報と、電子機器（４３０）の一体部分ではなく電子機器（４３０）に接続される表示機器（４１２）（例えばスクリーン）を制御するための潜在情報とを含んでもよく、図４に示すようである。表示機器に用いられる制御情報は、補足エンハンスメント情報（ＳＥＩメッセージ）又はビデオユーザビリティ情報（ＶＵＩ）パラメータセットフラグメント（図示せず）の形であってよい。パーサ（４２０）は、受信された符号化されたビデオシーケンスに対して解析／エントロピー復号を行うことができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術又は基準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を有する又は有しない算術符号化などを含む様々な原理に従うことができる。パーサ（４２０）は、グループに対応する少なくとも一つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオ復号器における画素のサブグループのうちの少なくとも１つのサブグループパラメータのセットを抽出することができる。サブグループは、グループオブピクチャ（ＧＯＰ）、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット（ＣＵ）、ブロック、変換ユニット（ＴＵ）、予測ユニット（ＰＵ）などを含み得る。パーサ（４２０）は、また、符号化されたビデオシーケンス情報から、例えば、変換係数、量子化器パラメータ値、動きベクトルなどを抽出してもよい。
【００３７】
パーサ（４２０）は、バッファメモリ（４１５）から受信したビデオシーケンスに対してエントロピー復号／解析動作を実行することで、シンボル（４２１）を構築する。
【００３８】
符号化されたビデオピクチャ又は一部の符号化されたビデオピクチャ（例えば、フレーム間ピクチャとフレーム内ピクチャ、フレーム間ブロックとフレーム内ブロック）のタイプ及び他の要因に依存し、シンボル（４２１）の再構築は複数の異なるユニットに係る。どのユニットに係るか、及び係る形態は、パーサ（４２０）が符号化されたビデオシーケンスから解析したサブグループ制御情報により制御されてもよい。簡略化のために、パーサ（４２０）と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れについて説明しない。
【００３９】
既に言及された機能ブロックに加えて、ビデオ復号器（４１０）は概念的には、以下に説明する複数の機能ユニットに細分することができる。商業的な制約の下で運行する実際の実現形態では、これらのユニットの多くは互いに密接にインタラクトし、少なくとも部分的に互いに統合することができる。但し、開示のテーマを説明する目的で、概念的に、以下の機能ユニットへの細分は適切である。。
【００４０】
第１ユニットはスケーラ／逆変換ユニット（４５１）である。スケーラ／逆変換ユニット（４５１）はパーサ（４２０）からシンボル（４２１）としての量子化変換係数及び制御情報を受信し、どんな変換方式を利用するかということ、ブロックのサイズ、量子化因子、量子化スケーリング行列などを含む。スケーラ／逆変換ユニット（４５１）はサンプル値が含まれるブロックを出力でき、前記サンプル値はアグリゲーター（４５５）に入力できる。
【００４１】
ある状況で、スケーラ／逆変換ユニット（４５１）の出力サンプルはフレーム内符号化ブロックに属してもよく、即ち、前に再構築されたピクチャからの予測情報を利用しないが、現在ピクチャの前に再構築された部分からの予測情報を利用できるブロックである。このような予測情報はフレーム内ピクチャ予測ユニット（４５２）から提供される。ある状況で、フレームピクチャ内予測ユニット（４５２）は現在ピクチャバッファ（４５８）から抽出された再構築された情報を利用して、サイズ及び形状が、再構築中のブロックと同じである周辺ブロックを生成する。例えば、現在ピクチャバッファ（４５８）は部分的に再構築された現在ピクチャ及び／または完全に再構築された現在ピクチャをバッファリングする。ある状況で、アグリゲーター（４５５）は各サンプルに基づき、フレーム内予測ユニット（４５２）が生成した予測情報をスケーラ／逆変換ユニット（４５１）が提供した出力サンプル情報に追加する。
【００４２】
他の状況で、スケーラ／逆変換ユニット（４５１）の出力サンプルはフレーム間符号化ブロックと潜在的に動き補償ブロックに属し得る。このような状況で、動き補償予測ユニット（４５３）は参照ピクチャメモリ（４５７）にアクセスすることで、予測のためのサンプルを抽出できる。シンボル（４２１）に基づき、抽出されたサンプルに対して動き補償を行った後、これらのサンプルはアグリゲーター（４５５）からスケーラ／逆変換ユニット（４５１）の出力に追加され（この場合、残差サンプルまたは残差信号と呼ばれる）、出力サンプル情報を生成する。動き補償予測ユニット（４５３）が参照ピクチャメモリ（４５７）内のアドレスから予測サンプルを取得することは、動きベクトルによって制御され、前記動きベクトルは前記シンボル（４２１）の形式で、動き補償予測ユニット（４５３）に用いられ、前記シンボル（４２１）は、例えばＸ、Ｙ及び参照ピクチャ成分を有してもよい。動き補償はさらに、サブサンプルによって動きベクトルを正確にする際、参照ピクチャメモリ（４５７）から抽出されたサンプル値の補間、動きベクトル予測メカニズムなどを含み得る。
【００４３】
アグリゲーター（４５５）の出力サンプルは、ループフィルタユニット（４５６）において、各種のループフィルタリング技術に利用される。ビデオ圧縮技術はループ内フィルタ技術を含み、前記ループ内フィルタ技術は、符号化されたビデオシーケンス（符号化されたビデオビットストリームとも呼ばれる）に含まれるパラメータによって制御され、前記パラメータはパーサ（４２０）からのシンボル（４２１）として、ループフィルタユニット（４５６）に利用される。他の実施例において、ビデオ圧縮技術はさらに、符号化されたピクチャまたは符号化されたビデオシーケンスの前（復号順序に従う）の部分を復号する期間で取得されたメタ情報、及び前に構築されてループフィルタリングを経たサンプル値に応答できる。
【００４４】
ループフィルタユニット（４５６）の出力は、サンプルストリームであってもよく、前記サンプルストリームは表示機器（４１２）に出力され、及び参照ピクチャメモリ（４５７）に記憶されることで、後続のフレーム間ピクチャ予測に適用される。
【００４５】
ある符号化されたピクチャは完全に再構築されると、参照ピクチャとして、将来予測に用いられる。例えば、現在ピクチャに対応する符号化されたピクチャは完全に再構築され、符号化されたピクチャ（例えばパーサ（４２０）を介して）が参照ピクチャとして特定されると、現在ピクチャバッファ（４５８）は参照ピクチャメモリ（４５７）の一部になり、後続の符号化されたピクチャを再構築する前に、改めて新たな現在ピクチャバッファを割り当てる。
【００４６】
ビデオ復号器（４１０）は、例えばＩＴＵ−Ｔ
Ｈ.２６５の基準における所定のビデオ圧縮技術に基づき、復号動作を実行する。符号化されたビデオシーケンスは、ビデオ圧縮技術または基準のシンタックス、及びビデオ圧縮技術または基準に記録されたコンフィグファイルに従うという意味で、符号化されたビデオシーケンスは使用されるビデオ圧縮技術または基準が指定するシンタックスに合う。具体的に、コンフィグファイルはビデオ圧縮技術または基準における利用可能な全てのツールから、前記コンフィグファイルで利用可能な唯一のツールとして、いくつかのツールを選択できる。準拠性に対して、符号化されたビデオシーケンスの複雑度が、ビデオ圧縮技術または基準のレベルによって限定される範囲内にあるように要求する。ある状況で、レベルは最大ピクチャのサイズ、最大フレームレート、最大再構築サンプリングレート（例えば、メガ（ｍｅｇａ）サンプル／秒に測定する）、最大参照ピクチャサイズなどを制限する。ある状況で、レベルにより配置される制限は、仮想参照復号器（Ｈｙｐｏｔｈｅｔｉｃａｌ
Ｒｅｆｅｒｅｎｃｅ Ｄｅｃｏｄｅｒ、ＨＲＤ）の仕様、及び符号化されたビデオシーケンスにおいてシグナリングされ、ＨＲＤバッファが管理するメタデータによってさらに限定される。
【００４７】
実施例において、受信機（４３１）は、符号化されたビデオとともに追加（冗長）データを受信できる。前記追加データは符号化されたビデオシーケンスの一部としてもよい。前記追加データはビデオ復号器（４１０）によって利用されることで、データを適切に復号する及び／または元のビデオデータをより正確に再構築する。追加データは、例えば時間、空間または信号対雑音比（ｓｉｇｎａｌ
ｎｏｉｓｅ ｒａｔｉｏ、ＳＮＲ）強化層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であってもよい。
【００４８】
図５は、本出願が開示する実施例に基づくビデオ符号器（５０３）のブロック図である。ビデオ符号器（５０３）は電子機器（５２０）に設けられる。電子機器（５２０）は送信機（５４０）（例えば、送信回路）を含む。ビデオ符号器（５０３）は図３の実施例におけるビデオ符号器（３０３）の代わりとしてもよい。
【００４９】
ビデオ符号器（５０３）は、ビデオソース（５０１）から（図５の例示における電子機器（５２０）の一部ではなく）からビデオサンプルを受信でき、前記ビデオソースはビデオ符号器（５０３）によって符号化されるビデオ画像をキャプチャする。他の例示において、ビデオソース（５０１）は電子機器（５２０）の一部である。
【００５０】
ビデオソース（５０１）は、ビデオ符号器（５０３）によって符号化され、デジタルビデオサンプルストリーム形式であるソースビデオシーケンスを提供し、前記デジタルビデオサンプルストリームは任意の適切なビット深度（例えば、８ビット、１０ビット、１２ビットなど）、任意の色空間（例えば、ＢＴ.６０１ Ｙ ＣｒＣＢ、ＲＧＢなど）、及び任意の適切なサンプリング構成（例えば、Ｙ
ＣｒＣｂ ４:２:０、Ｙ ＣｒＣｂ ４:４:４）を有してもよい。メディアサービスシステムにおいて、ビデオソース（５０１）は前に準備されたビデオを記憶するための記憶装置であってもよい。ビデオ会議システムにおいて、ビデオソース（５０１）はビデオシーケンスとして、ローカル画像情報をキャプチャするためのカメラであってもよい。ビデオデータを複数の単独のピクチャとして提供し、順序に従って見ると、これらのピクチャには動きが付与される。ピクチャそのものは、空間画素アレイとして構築され、使用のサンプリング構成、色空間などに依存し、各々画素には１つまたは複数のサンプルが含まれてもよい。画素とサンプルとの間の関係は、当業者にとって容易に理解できる。以下の説明はサンプルに着目する。
【００５１】
実施例に基づき、ビデオ符号器（５０３）はリアルタイムまたはアプリケーションに必要な任意の他の時間の制約で、ソースビデオシーケンスのピクチャを符号化するとともに、符号化されたビデオシーケンス（５４３）として圧縮する。適切な符号化速度で実行することは、コントローラ（５５０）の機能の１つである。いくつかの実施例において、コントローラ（５５０）は以下に説明の他の機能ユニットを制御するとともに、機能的にこれらのユニットに連結される。簡潔のために、連結を図示していない。コントローラ（５５０）により配置されるパラメータは、レート制御に関するパラメータ（ピクチャスキップ、量子化器、レート歪み最適化技術のλ値など）、ピクチャのサイズ、グループオブピクチャ（ｇｒｏｕｐ
ｏｆ ｐｉｃｔｕｒｅｓ、ＧＯＰ）の配置、最大動きベクトルの検索範囲などを含み得る。コントローラ（５５０）は他の適切な機能を有してもよく、これらの機能はあるシステム設計に対して最適化されたビデオ符号器（５０３）に関わる。
【００５２】
いくつかの実施形態において、ビデオ符号器（５０３）は符号化ループにおいて動作する。簡単な説明として、実施例において、符号化ループはソース符号器（５３０）（例えば、符号化対象となる入力ピクチャと参照ピクチャに基づき、シンボルストリームのようなシンボルを構築する）、及びビデオ符号器（５０３）に埋め込まれる（ローカル）復号器（５３３）を含む。復号器（５３３）は、（リモート）復号器がサンプルデータを構築することに類似するように、シンボルを再構築し、サンプルデータを構築する（なぜならば、本出願で考慮するビデオ圧縮技術において、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮は可逆であるからである）。再構築されたサンプルストリーム（サンプルデータ）を参照ピクチャメモリ（５３４）に入力する。シンボルストリームの復号は、復号器位置（ローカルまたはリモート）と関係がないビット正確結果を発生させるから、参照ピクチャメモリ（５３４）におけるコンテンツはローカル符号器とリモート符号器との間でもビット正確になる。言い換えれば、符号器の予測部分から「見られる」参照ピクチャサンプルは、復号器が復号期間で予測を利用しようとする際に「見られる」サンプル値と完全に同じである。このような参照ピクチャの同期性の基本原理は（及び、例えばチャンネル誤差により、同期性を維持できない場合に発生するドリフト）関連技術にも適用される。
【００５３】
「ローカル」復号器（５３３）の動作は、以上図４に関して詳しく説明したビデオ復号器（４１０）の「リモート」復号器と同じであってもよい。ただし、図４を簡単に参照し、シンボルは利用可能で、エントロピー符号器（５４５）とパーサ（４２０）とはロスレスにシンボルを符号化されたビデオシーケンスに符号化／復号することができる場合、バッファメモリ（４１５）とパーサ（４２０）とが含まれるビデオ復号器（４１０）のエントロピー復号部分は、ローカル復号器（５３３）において完全に実施することができないおそれがある。
【００５４】
この場合、復号器に存在する解析／エントロピー復号以外の任意の復号器技術も、必然として、基本的に同じ機能形式で、対応する符号器に存在することが分かる。そのため、本出願は復号器の動作に着目する。符号器技術は包括的に記載した復号器技術と逆であるから、符号器技術に対する説明を簡略化し得る。特定の領域でのみより詳しい説明を必要とし、以下で提供される。
【００５５】
動作期間において、いくつかの実施例において、ソース符号器（５３０）は動き補償予測符号化を実行できる。前記動き補償予測符号化は、ビデオシーケンスからの「参照ピクチャ」として指定された１つまたは複数の符号化されたピクチャを参照し、入力ピクチャに対して予測符号化を行う。該方式で、符号化エンジン（５３２）は入力ピクチャの画素ブロックと、参照ピクチャの画素ブロックとの間の差に対して符号化を行って、前記参照ピクチャは前記入力ピクチャの予測参照として選択される。
【００５６】
ビデオ復号器（５３３）は、ソース符号器（５３０）が構築したシンボルに基づき、参照ピクチャとして指定されるピクチャの符号化されたビデオデータを復号する。符号化エンジン（５３２）の動作は非可逆プロセスであってもよい。符号化されたビデオデータはビデオ復号器（図５において図示せず）で復号される場合、再構築されたビデオシーケンスは、一般的に一定の誤差を有するソースビデオシーケンスのコピーであってもよい。復号器（５３３）は、ビデオ復号器が参照ピクチャに対して実行する復号プロセスをコピーするとともに、再構築された参照ピクチャを参照ピクチャメモリ（５３４）に記憶させる。該方式で、ビデオ符号器（５０３）は、再構築された参照ピクチャのコピーをローカルに記憶し、前記コピーは、リモートビデオ復号器によって取得される再構築された参照ピクチャと、共通のコンテンツを有する（伝送誤差が存在していない）。
【００５７】
予測器（５３５）は、符号化エンジン（５３２）に対して予測検索を実行する。つまり、符号化対象となる新たなピクチャに対して、予測器（５３５）は参照ピクチャメモリ（５３４）において前記新たなピクチャとしての適切な予測参照のサンプルデータ（候補参照画素ブロックとして）、またはいくつかのメタデータを検索し、例えば参照ピクチャ動きベクトル、ブロック形状などがある。予測器（５３５）はサンプルブロックに基づき画素ブロックごとに動作することで、適切な予測参照を見つける。ある状況で、予測器（５３５）が取得した検索結果に基づき、入力ピクチャが参照ピクチャメモリ（５３４）に記憶された複数の参照ピクチャから取得される予測参照を有すると決定されることができる。
【００５８】
コントローラ（５５０）は、例えばビデオデータを符号化するためのパラメータとサブグループパラメータを配置することを含むソース符号器（５３０）の符号化動作を管理できる。
【００５９】
エントロピー符号器（５４５）において、前記全ての機能ユニットの出力に対して、エントロピー符号化を行う。エントロピー符号器（５４５）は、ハフマン符号、可変長符号、算術符号などの技術に基づき、各種機能ユニットから生成されたシンボルに対して可逆圧縮を行って、前記シンボルを符号化されたビデオシーケンスに変換する。
【００６０】
送信機（５４０）はエントロピー符号器（５４５）によって構築され、符号化されたビデオシーケンスをバッファリングすることで、通信チャンネル（５６０）を介して伝送するように準備し、前記通信チャンネルは符号化されたビデオデータを記憶するための記憶装置に達するハードウェア／ソフトウェアリンクであってもよい。送信機（５４０）はビデオ符号器（５０３）からの符号化されたビデオデータと、伝送対象となる他のデータ、例えば符号化されたオーディオデータ及び／または補助データストリーム（ソースを図示せず）とをマージする。
【００６１】
コントローラ（５５０）は、ビデオ符号器（５０３）の動作を管理できる。符号化の期間に、コントローラ（５５０）は各符号化されたピクチャに、ある符号化されたピクチャタイプを割り当てもよいが、相応的なピクチャに適用される符号化技術に影響する可能性もある。例えば、一般的に、ピクチャは以下のいずれかのピクチャタイプとして割り当てられる。
【００６２】
フレーム内ピクチャ（Ｉピクチャ）は、シーケンスにおけるいずれの他のピクチャも予測のソースとして利用せずに、符号化及び復号されるピクチャであってもよい。例えば独立復号器リフレッシュピクチャが含まれる異なるタイプのフレーム内ピクチャを許容するビデオコーデックもある。当業者は、Ｉピクチャの変形及びその相応的な適用、特徴を理解できる。
【００６３】
予測性ピクチャ（Ｐピクチャ）は、多くても１つの動きベクトル及び参照インデックスによって各ブロックのサンプル値を予測する場合、フレーム内予測またはフレーム間予測を利用して符号化及び復号を行うピクチャであってもよい。
【００６４】
双方向予測性ピクチャ（Ｂピクチャ）は、多くても２つの動きベクトル及び参照インデックスによって、各ブロックのサンプル値を予測する場合、フレーム内予測またはフレーム間予測を利用して符号化及び復号を行うピクチャであってもよい。同様に、複数の予測性ピクチャは、２つより多い参照ピクチャと関するメタデータを、単一のブロックの再構築に使用できる。
【００６５】
ソースピクチャは一般的に、空間的で複数のサンプルブロック（例えば、４×４、８×８、４×８または１６×１６個のサンプルのブロック）に細分できるとともに、ブロックごとに符号化を行う。これらのブロックは、他の（符号化された）ブロックを参照し、予測的に符号化を行って、他のブロックはブロックの相応的なピクチャに適用される符号化割当によって決定される。例えば、Ｉピクチャのブロックに対して非予測符号化を行うか、またはＩピクチャのブロックは、同一のピクチャの符号化されたブロックを参照して、予測性符号化（空間予測またはフレーム内予測）を行う。Ｐピクチャの画素ブロックは、前に符号化された１つの参照ピクチャを参照し、空間予測または時間予測を介して予測的に符号化を行ってもよい。Ｂピクチャのブロックは、前に符号化された１つまたは２つの参照ピクチャを参照し、空間予測または時間予測を介して予測的に符号化を行ってもよい。
【００６６】
ビデオ符号器（５０３）は例えばＩＴＵ−Ｔ
Ｈ.２６５提案書の所定のビデオ符号化技術または基準に基づき符号化動作を実行することができる。その動作において、ビデオ符号器（５０３）は、入力ビデオシーケンスにおける時間と空間冗長を利用した予測性符号化操作を含む各種の圧縮操作を実行できる。従って、符号化されたビデオデータは、使用のビデオ符号化技術または基準が指定する文法に合う。
【００６７】
実施形態において、送信機（５４０）は追加データ及び符号化されたビデオを伝送することができる。ソース符号器（５３０）は符号化されたビデオシーケンスの一部として、このようなデータを含んでもよい。追加データは、時間／空間／ＳＮＲ強化層、冗長ピクチャ及びスライスのような他の形式の冗長データ、補足エンハンスメント情報（ＳＥＩ）メッセージ、ビデオユーザビリティ情報（ＶＵＩ）パラメータセットセグメントなどを含んでもよい。
【００６８】
キャプチャされたビデオは時間シーケンスを呈する複数のソースピクチャ（ビデオピクチャ）としてもよい。フレーム内ピクチャ予測（一般的にフレーム内予測に簡略化される）は特定のピクチャにおける空間の関連性を利用するが、フレーム間ピクチャ予測はピクチャの間の（時間または他の）関連性を利用する。実施例において、符号化／復号している特定のピクチャは、ブロックに分割されるとともに、現在ピクチャと呼ばれる。現在ピクチャにおけるブロックは、ビデオにおける符号化され、且つバッファリングされている参照ピクチャにおける参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって、現在ピクチャにおけるブロックを符号化する。前記動きベクトルは参照ピクチャにおける参照ブロックを指し、複数の参照ピクチャを利用する場合、前記動きベクトルは参照ピクチャを特定するための第３次元を有してもよい。
【００６９】
いくつかの実施例において、双方向予測技術はフレーム間ピクチャ予測に適用される。双方向予測技術に基づき、復号順序がいずれもビデオにおける現在ピクチャの前にある（表示順序に従うと、それぞれ過去と将来である可能性もある）第１参照ピクチャと第２参照ピクチャのような２つの参照ピクチャを利用する。第１参照ピクチャにおける第１参照ブロックを指す第１動きベクトル、及び第２参照ピクチャにおける第２参照ブロックを指す第２動きベクトルによって、現在ピクチャにおけるブロックを符号化する。具体的に、第１参照ブロックと第２参照ブロックとの組み合わせで前記ブロックを予測できる。
【００７０】
また、マージモード技術はフレーム間ピクチャ予測に適用されることで、符号化効率を改善できる。
【００７１】
本出願が開示するいくつかの実施例に基づき、ブロックごとに、フレーム間ピクチャ予測及びフレーム内ピクチャ予測などの予測を実行する。例えば、ＨＥＶＣ基準に基づき、ビデオピクチャシーケンスにおけるピクチャを符号化ツリーユニット（ｃｏｄｉｎｇ
ｔｒｅｅ ｕｎｉｔ、ＣＴＵ）に分割することで、圧縮に用い、ピクチャにおけるＣＴＵは、例えば、６４×６４画素、３２×３２画素または１６×１６画素のような同じサイズを有する。一般的に、ＣＴＵは１つの輝度ＣＴＢと２つの彩度ＣＴＢとが含まれる３つの符号化ツリーブロック（ｃｏｄｉｎｇ
ｔｒｅｅ ｂｌｏｃｋ、ＣＴＢ）を有する。さらに、各ＣＴＵはクワッドツリーで１つまたは複数の符号化ユニット（ｃｏｄｉｎｇ ｕｎｉｔ、ＣＵ）に分割できる。例えば、６４×６４画素であるＣＴＵは、６４×６４画素である１つのＣＵ、または３２×３２画素である４つのＣＵ、或いは１６×１６画素である１６個のＣＵに分割されてもよい。実施例において、各ＣＵを分析することで、フレーム間予測タイプまたはフレーム内予測タイプのような、ＣＵ用の予測タイプを決定する。また、時間及び／または空間の予測可能性に依存し、ＣＵを１つまたは複数の予測ユニット（ｐｒｅｄｉｃｔｉｏｎ
ｕｎｉｔ、ＰＵ）に分割する。一般的に、各ＰＵは輝度予測ブロック（ＰＢ）と２つの彩度ＰＢとを有する。実施例において、予測ブロックごとに符号化（符号化／復号）における予測動作を実行する。予測ブロックの例示として、輝度予測ブロックを利用し、予測ブロックは、８×８画素、１６×１６画素、８×１６画素、１６×８画素などのような画素値（例えば、輝度値）の行列を含む。
【００７２】
図６は、本出願が開示する他の実施例に基づくビデオ符号器（６０３）の図面を示す。ビデオ符号器（６０３）はビデオピクチャシーケンスにおける現在ビデオピクチャ内のサンプル値の処理ブロック（例えば、予測ブロック）を受信するとともに、前記処理ブロックを符号化されたビデオシーケンスの一部としての符号化されたピクチャに符号化する。実施例において、ビデオ符号器（６０３）は図３の実施例におけるビデオ符号器（３０３）の代わりとして用いられる。
【００７３】
ＨＥＶＣ実施例において、ビデオ符号器（６０３）は、処理ブロック、例えば８×８サンプルの予測ブロックなどのためのサンプル値の行列を受信する。ビデオ符号器（６０３）は、例えばレート歪み（ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ、ＲＤ）最適化によって、フレーム内モード、フレーム間モードまたは双方向予測モードを利用して、前記処理ブロックに対して符号化を行うかどうかとを決定する。フレーム内モードで、処理ブロックを符号化する場合、ビデオ符号器（６０３）はフレーム内予測技術によって、処理ブロックを符号化されたピクチャに符号化し、フレーム間モードまたは双方向予測モードで処理ブロックを符号化する場合、ビデオ符号器（６０３）はそれぞれフレーム間予測または双方向予測技術によって、処理ブロックを符号化されたピクチャに符号化する。いくつかのビデオ符号化技術において、マージモードはフレーム間ピクチャ予測サブモードであってもよく、予測値の外部にある符号化された動きベクトル成分を借りない場合、１つまたは複数の動きベクトル予測値から動きベクトルを導出する。いくつかの他のビデオ符号化技術において、テーマブロックに適用される動きベクトル成分が存在し得る。例示において、ビデオ符号器（６０３）は、処理ブロックのモードを決定するためのモード決定モジュール（図示せず）のような他のモジュールを含む。
【００７４】
図６の実施例において、ビデオ符号器（６０３）は図６に示すように連結されたフレーム間符号器（６３０）、フレーム内符号器（６２２）、残差計算器（６２３）、スイッチ（６２６）、残差符号器（６２４）、汎用コントローラ（６２１）及びエントロピー符号器（６２５）を含む。
【００７５】
フレーム間符号器（６３０）は、現在ブロック（例えば、処理ブロック）のサンプルを受信し、前記ブロックと参照ピクチャにおける１つまたは複数の参照ブロック（例えば、前のピクチャと後のピクチャにおけるブロック）とを比較し、フレーム間予測情報（例えば、フレーム間符号化技術に基づく冗長情報に対する記載、動きベクトル、マージモード情報）を生成し、フレーム間予測情報に基づき、任意の適切な技術を利用してフレーム間予測結果（例えば、予測されたブロック）を計算する。いくつかの実施例において、参照ピクチャは符号化されたビデオ情報に基づき復号された復号参照ピクチャである。
【００７６】
フレーム内符号器（６２２）は、現在ブロック（例えば、処理ブロック）のサンプルを受信し、ある状況で、前記ブロックと同一のピクチャにおける符号化されたブロックとを比較し、変換後、量子化係数を生成し、ある状況で、さらに（例えば、１つまたは複数のフレーム内符号化技術に基づくフレーム内予測方向情報）フレーム内予測情報を生成する。実施例において、フレーム内符号器（６２２）はさらにフレーム内予測情報と同一のピクチャにおける参照ブロックに基づきフレーム内予測結果（例えば、予測されたブロック）を計算する。
【００７７】
汎用コントローラ（６２１）は、汎用制御データを決定し、前記汎用制御データに基づき、ビデオ符号器（６０３）の他のモジュールを制御する。実施例において、汎用コントローラ（６２１）はブロックのモードを決定し、前記モードに基づき、制御信号をスイッチ（６２６）に提供する。例えば、前記モードがフレーム内モードである場合、汎用コントローラ（６２１）は残差計算器（６２３）用のフレーム内モード結果を選択するように、スイッチ（６２６）を制御し、そして、フレーム内予測情報を選択するとともに前記フレーム内予測情報をビットストリームに追加するように、エントロピー符号器（６２５）を制御し、前記モードがフレーム間モードである場合、汎用コントローラ（６２１）は、残差計算器（６２３）用のフレーム間予測結果を選択するように、スイッチ（６２６）を制御し、そして、フレーム間予測情報を選択するとともに前記フレーム間予測情報をビットストリームに追加するように、エントロピー符号器（６２５）を制御する。
【００７８】
残差計算器（６２３）は、受信されたブロックと、フレーム内符号器（６２２）またはフレーム間符号器（６３０）から選択された予測結果との間の差（残差データ）を計算する。残差符号器（６２４）は、残差データに基づき動作することで、残差データを符号化し、変換係数を生成する。実施例において、残差符号器（６２４）は、残差データを空間領域から周波数領域に変換するとともに、変換係数を生成する。そして、変換係数は量子化処理され、量子化された変換係数を取得する。各実施例において、ビデオ符号器（６０３）はさらに残差復号器（６２８）を含む。残差復号器（６２８）は逆変換を実行し、復号された残差データを生成する。復号された残差データは、適切にフレーム内符号器（６２２）とフレーム間符号器（６３０）によって使用できる。例えば、フレーム間符号器（６３０）は復号された残差データとフレーム間予測情報に基づき、復号されたブロックを生成し、フレーム内符号器（６２２）は復号された残差データとフレーム内予測情報に基づき復号されたブロックを生成する。復号されたブロックを適切に処理することで、復号されたピクチャを生成し、いくつかの実施例において、前記復号されたピクチャはメモリ回路（図示せず）においてバッファリングされるとともに、参照ピクチャとして用いられる。
【００７９】
エントロピー符号器（６２５）は、ビットストリームをフォーマットすることで、符号化されたブロックを生成する。エントロピー符号器（６２５）は、ＨＥＶＣ基準のような適切な基準に基づき各種情報を生成する。実施例において、エントロピー符号器（６２５）は、汎用制御データ、選択された予測情報（例えばフレーム内予測情報またはフレーム間予測情報）、残差情報及びビットストリームのうちの他の適切な情報を取得する。なお、開示されたテーマに基づき、フレーム間モードまたは双方向予測モードのマージサブモードで、ブロックを符号化する場合、残差情報が存在しない。
【００８０】
図７は、本出願が開示する他の実施例に基づくビデオ復号器（７１０）の図面である。ビデオ復号器（７１０）は符号化されたビデオシーケンスの一部としての符号化されたピクチャを受信するとともに、前記符号化されたピクチャを復号することで、再構築されたピクチャを生成する。実施例において、ビデオ復号器（７１０）は図３の実施例におけるビデオ復号器（３１０）の代わりとして用いられる。
【００８１】
図７の例示において、ビデオ復号器（７１０）は図７に示すように連結されたエントロピー復号器（７７１）、フレーム間復号器（７８０）、残差復号器（７７３）、再構築モジュール（７７４）及びフレーム内復号器（７７２）を含む。
【００８２】
エントロピー復号器（７７１）は、符号化されたピクチャに基づき、前記符号化されたピクチャを構成するシンタックス要素を示すためのいくつかのシンボルを再構築する。このようなシンボルは、例えば、前記ブロックを符号化するためのモード（例えば、フレーム内モード、フレーム間モード、双方向予測モード、フレーム間モードと双方向予測モードとのマージサブモード、または別のサブモード）、それぞれフレーム内復号器（７７２）またはフレーム間復号器（７８０）に用いられることで予測を行ういくつかのサンプルまたはメタデータを特定できる予測情報（例えば、フレーム内予測情報またはフレーム間予測情報）、例えば量子化の変換係数という形式の残差情報などを含む。実施例において、予測モードがフレーム間または双方向予測モードである場合、フレーム間予測情報をフレーム間復号器（７８０）に提供し、予測タイプがフレーム内予測タイプである場合、フレーム内予測情報をフレーム内復号器（７７２）に提供する。残差情報は逆量子化を介して、残差復号器（７７３）に提供される。
【００８３】
フレーム間復号器（７８０）は、フレーム間予測情報を受信し、前記フレーム間予測情報に基づき、フレーム間予測結果を生成する。
【００８４】
フレーム内復号器（７７２）は、フレーム内予測情報を受信し、前記フレーム内予測情報に基づき、予測結果を生成する。
【００８５】
残差復号器（７７３）は、逆量子化を実行することで、逆量子化された変換係数を抽出し、前記逆量子化された変換係数を処理することで、残差を周波数領域から空間領域に変換する。残差復号器（７７３）はさらにいくつかの制御情報を必要とし（量子化器パラメータ（ＱＰ）を取得するために）、前記情報はエントロピー復号器（７７１）から提供されてもよい（これは少量の制御情報であるから、データ経路を図示せず）。
【００８６】
再構築モジュール（７７４）は、空間領域において、残差復号器（７７３）から出力された残差と予測結果（フレーム間予測モジュールまたはフレーム内予測モジュールから出力されてもよい)とを組み合わせることで、再構築されるブロックを形成し、前記再構築されるブロックは、再構築されるピクチャの一部であり、前記再構築されるピクチャはさらに再構築されるビデオの一部であってもよい。なお、デブロッキング動作のような、他の適切な動作を実行することで、視覚品質を向上させてもよい。
【００８７】
なお、任意の適切な技術でビデオ符号器（３０３）、ビデオ符号器（５０３）、ビデオ符号器（６０３）、及びビデオ復号器（３１０）、ビデオ復号器（４１０）、ビデオ復号器（７１０）を実施できる。実施例において、１つまたは複数の集積回路によってビデオ符号器（３０３）、ビデオ符号器（５０３）、ビデオ符号器（６０３）及びビデオ復号器（３１０）、ビデオ復号器（４１０）、ビデオ復号器（７１０）を実施できる。他の実施例において、ソフトウェア命令を実行するための１つまたは複数のプロセッサによって、ビデオ符号器（３０３）、ビデオ符号器（５０３）、ビデオ符号器（６０３）及びビデオ復号器（３１０）、ビデオ復号器（４１０）、ビデオ復号器（７１０）を実施できる。
【００８８】
図８は、１つの実施例において、動きベクトル差付きマージ（ｍｅｒｇｅ  ｗｉｔｈ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｉｆｆｅｒｅｎｃｅ、ＭＭＶＤ）モードで示される現在ブロック（８０１）と動きベクトル（８１０）との模式図である。現在ブロック（８０１）の予測値は動きベクトル（８１０）に基づくフレーム間予測により生成される。
【００８９】
ブロックの動きベクトルは、簡略化シグナリングを有するＭＭＶＤモード（または最終動きベクトル表現（ｕｌｔｉｍａｔｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｅｘｐｒｅｓｓｉｏｎ、ＵＭＶＥ）と呼ばれる）で表現される。例えば、現在ブロック（８０１）の動きベクトル（８１０）は基本動きベクトル（８２２）、調整距離（８２４）及び調整方向（８２６）で表現される。調整距離（８２４）と調整方向（８２６）とは現在ブロックの動きベクトル差情報と呼ばれて、共同で差ベクトル（８２８）を定義する。動きベクトル（８１０）は、基本動きベクトル（８２２）と差ベクトル（８２８）との組み合わせとして導出される。
【００９０】
基本動きベクトル（８２２）は、マージ候補リストから選択され、シンタックス要素（例えば、ＶＶＣにおける「ｂａｓｅ＿ｍｖ＿ｉｄｘ」）により選択情報を指示し、前記シンタックス要素は基本候補インデックスに対応し、前記基本候補インデックスは、該マージ候補リストから選択され、基本動きベクトルを導出するための候補を指示する。いくつかの例示において、マージ候補リストの一部のみがＭＭＶＤに基づき基本動きベクトルの選択に対する決定に用いられる。少なくとも１つ実施例において、基本候補インデックスの範囲は、０〜最大値であり、前記最大値は最大ＭＭＶＤインデックスにより限定される（例えば、ＶＶＣにおいて、「ｍａｘ＿ｍｍｖｄ＿ｂａｓｅ＿ｉｄｘ−１」に限定される）。最大ＭＭＶＤインデックスは、利用可能なビデオ符号化基準から提供された値、または、符号化されたビデオビットストリームにおいてシグナリングされる値であってもよい。
【００９１】
調整距離（８２４）は、シンタックス要素（例えば、ＶＶＣにおける「ｄｉｓｔａｎｃｅ＿ｉｄｘ」）により指示され、該シンタックス要素は動きベクトル（８１０）と基本動きベクトル（８２２）との間の距離、または、差ベクトル（８２８）の大きさに対応する。いくつかの実施例において、シンタックス要素（例えば、ＶＶＣにおける「ｄｉｒｅｃｔｉｏｎ＿ｉｄｘ」）により調整方向（８２６）を指示し、該シンタックス要素は動きベクトル（８１０）から基本動きベクトル（８２２）への方向、または差ベクトル（８２８）の方向に対応する。
【００９２】
いくつかの実施例において、ＭＭＶＤモードに基づき現在ブロックの動きベクトルが生成されるかどうかを指示するために、１つのフラグ（例えば、ＶＶＣにおける「ｍｍｖｄ＿ｆｌａｇ」）をシグナリングすることができる。いくつかの例示において、ＭＭＶＤモードに基づき現在ブロックの動きベクトルが生成される場合、ｍｍｖｄ＿ｆｌａｇを１にして、ＭＭＶＤモードに基づき現在ブロックの動きベクトルが生成されない場合、ｍｍｖｄ＿ｆｌａｇを０にする。いくつかの例示において、現在ブロックに適用可能なｍｍｖｄ＿ｆｌａｇが存在しない場合、ｍｍｖｄ＿ｆｌａｇが、ＭＭＶＤモードに基づき現在ブロックの動きベクトルが生成されないと指示するように対応する値を具備すると推定できる。
【００９３】
現在ブロックを復号するいくつかの例示において、ｍｍｖｄ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、ＭＭＶＤモードに基づき現在ブロックの動きベクトルを生成し、（ｘ０、ｙ０）は、現在ブロックの左上輝度サンプルの、現在ブロックが含まれる現在ピクチャの左上輝度サンプルに対する位置に対応する。現在ブロックを復号するいくつかの例示において、ｍｍｖｄ＿ｆｌａｇ［ｘ０］［ｙ０］を解析するとともに、ｍｍｖｄ＿ｆｌａｇ［ｘ０］［ｙ０］を１にすると決定した後、さらにシンタックス要素ｂａｓｅ＿ｍｖ＿ｉｄｘ［ｘ０］［ｙ０］、ｄｉｓｔａｎｃｅ＿ｉｄｘ［ｘ０］［ｙ０］及びｄｉｒｅｃｔｉｏｎ＿ｉｄｘ［ｘ０］［ｙ０］を解析することで、利用可能な動きベクトル差情報を取得することができる。
【００９４】
サブブロックマージ予測モードに基づき、ブロックの動きベクトルを決定してもよい。いくつかの例示において、サブブロックマージ予測モードはサブブロックアフィンマージ予測モード、またはサブブロックに基づく代替時間動きベクトル予測（ａｌｔｅｒｎａｔｉｖｅ  ｔｅｍｐｏｒａｌ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｐｒｅｄｉｃｔｉｏｎ、ＡＴＭＶＰ）モードである。
【００９５】
図９Ａは、１つの実施例において、サブブロックアフィンマージ予測モードを利用する現在ブロック（９０１）、Ａ０、Ａ１、Ａ２、Ｂ０、Ｂ１、Ｂ２及びＢ３で示される空間隣接ブロック（それぞれ９０２、９０３、９０７、９０７、９０４、９０５、９０６及び９０８）、及びＣ０で示される時間隣接ブロック（９１２）の模式図である。いくつかの例示において、空間隣接ブロックＡ０、Ａ１、Ａ２、Ｂ０、Ｂ１、Ｂ２及びＢ３と現在ブロック（９０１）とは同一ピクチャに属する。時間隣接ブロックＣ０は参照ピクチャに属するとともに、現在ブロック（９０１）の外部にあるとともに、現在ブロック（９０１）の右下隅に隣接する位置に対応する。
【００９６】
現在ブロック（９０１）は、第１サブブロック（９２２）、第２サブブロック（９２４）、第３サブブロック（９２６）及び第４サブブロック（９２８）に分割されてもよい。サブブロックアフィンマージ予測モードを利用して現在ブロック（９０１）の内部の第１サブブロック（９２２）、第２サブブロック（９２４）、第３サブブロック（９２６）及び第４サブブロック（９２８）における各々の動き情報を決定でき、前記サブブロックアフィンモデルは６パラメータ、または簡略化された４パラメータアフィンモデルで説明される。いくつかの例示において、アフィンモデルはサブブロックの動きベクトルを説明するための６つのパラメータ（例えば、六パラメータアフィンモデル）を有する。１つの例示において、サブブロックの６つのパラメータは、現在ブロックの３つの異なる位置（例えば、図９Ａにおける現在ブロック（９０１）の左上隅、右上隅及び左下隅にある制御ポイントＣＰ０、ＣＰ１及びＣＰ２）での３つの動きベクトル（３つの制御ポイント動きベクトルとも呼ばれる）で示される。他の例示において、簡略化されたアフィンモデル（例えば４パラメータアフィンモデル）は４つのパラメータを利用してサブブロックの動き情報を説明し、該動き情報はブロックの２つの異なる位置（例えば、図９における左上隅及び右上隅にある制御ポイントＣＰ０及びＣＰ１）での２つの動きベクトル（２つの制御ポイント動きベクトルとも呼ばれる）で示される。
【００９７】
図９Ｂは、１つの実施例において、サブブロックに基づく代替時間動きベクトル予測（ＡＴＭＶＰ）モードを利用する現在ピクチャ（９６０）における現在ブロック（９６１）、及び参照ピクチャ（９８０）における参照ブロック（９８１）の模式図である。ＡＴＭＶＰモードに基づき、まず参照ピクチャのうちの対応する参照ブロックを特定し、そして、現在ブロックを複数のサブブロックに分割するとともに、参照ブロックの対応する動き情報から、現在ブロックのうちのサブブロックの動きベクトル、及び参照インデックスを取得することで、ブロック内のサブブロックの動きベクトルを決定する。
【００９８】
いくつかの例示において、復号された情報に基づき現在ブロック（９６１）の参照ピクチャ（９６０）及び参照ベクトル（９７０）を特定し、前記復号された情報は、例えば、現在ブロック（９６１）の１つまたは複数の空間隣接ブロックの動き情報、または他の利用可能な方式である。参照ピクチャ（９６０）と参照ベクトル（９７０）を決定した後、現在ブロック（９６１）の位置及び決定された参照ベクトル（９７０）に基づき、参照ブロック（９６１）を特定できる。
【００９９】
図９Ｂにおいて、参照ブロック（９８１）はさらに、参照動き情報ＭＲａ〜ＭＲｄを有する４つのサブブロックに分割される。動き情報は動きベクトルと対応する参照インデックスを含む。現在ブロック（９６１）はさらに、４つのサブブロックに分割されるとともに、いくつかの例示において、時間スケーリングを利用して参照動き情報ＭＲａ〜ＭＲｄから現在ブロック（９６１）におけるサブブロックの動き情報ＭＶａ〜ＭＶｄを導出できる。いくつかの実施例において、参照ブロック（９８１）と現在ブロック（９６１）を、４つ以上または以下のサブブロックに分割し、参照ブロック（９８１）と現在ブロック（９６１）とは必ずしも同じ数のサブブロックまたは同じのサブブロック分割構成を有する必要がない。
【０１００】
いくつかの実施例において、サブブロックマージ予測モードに基づき現在ブロックの動きベクトルが生成されるかということを指示するために、例えばサブブロックアフィンマージ予測モード、またはＡＴＭＶＰモードを利用して、現在ブロックの動きベクトルを生成すると、１つのフラグ（例えば、ＶＶＣにおける「ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ」）をシグナリングしてもよい。また、フラグ（例えば、ＶＶＣにおける「ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ」）が、サブブロックマージ予測モードを利用すると指示すれば、さらに１つのシンタックス要素（例えば、ＶＶＣにおける「ｍｅｒｇｅ＿ｉｄｘ」）をシグナリングすることでサブブロックマージ候補リストのうちのどの候補を選択するかということを指示する。
【０１０１】
現在ブロックを復号するいくつかの例示において、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、サブブロックマージ予測モードに基づき、現在ブロックの動きベクトルを生成し、（ｘ０、ｙ０）は、現在ブロックの左上輝度サンプルの、現在ブロックが含まれる現在ピクチャの左上輝度サンプルに対する位置に対応する。現在ブロックを復号するいくつかの例示において、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ［ｘ０］［ｙ０］を解析するとともに、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ［ｘ０］［ｙ０］を１にすると決定した後、さらに、シンタックス要素ｍｅｒｇｅ＿ｉｄｘ［ｘ０］［ｙ０］を解析することで、利用可能な候補選択情報を取得する。
【０１０２】
図１０は、１つの実施例において、イントラ用の多仮説予測（ｍｕｌｔｉ−ｈｙｐｏｔｈｅｓｉｓ  ｐｒｅｄｉｃｔｉｏｎ  ｆｏｒ  ｉｎｔｒａ、ＭＨＩｎｔｒａ）モードに従って、少なくとも現在ブロック（１０１０）のフレーム間予測値（１０２２）及びフレーム内予測値（１０２４）に基づいて再構築される現在ブロック（１０１０）の模式図である。
【０１０３】
ＭＨＩｎｔｒａモードに基づき、最終予測値（１０１２）と現在ブロック（１０１０）の残差サンプル（１０１４）とを組み合わせることで、現在ブロック（１０１０）を再構築する。少なくとも１つの予測方法に基づき、例えば、フレーム間予測により生成されたフレーム間予測値（１０２２）とフレーム内予測により生成されたフレーム内予測値（１０２４）との組み合わせに基づき、最終予測値（１０１２）を生成する。残差サンプル（１０１４）は現在ブロック（１０１０）と最終予測値（１０１２）との間の差を示し、受信したビデオビットストリームを復号することで、該残差サンプルを取得する。
【０１０４】
フレーム間予測値（１０２２）を生成するいくつかの実施例において、適切な動き情報予測方法に基づき、利用可能な動き情報及び参照インデックスを明示的にシグナリングするかまたは導出する。
【０１０５】
フレーム内予測値（１０２４）を生成するいくつかの実施例において、現在ブロックの輝度成分に対して、フレーム内候補リストから利用可能なフレーム内予測モードを選択し、該フレーム内候補リストは４つのフレーム内予測モード（例えば、直流モード、平面モード、水平モード及び垂直モード）から導出されてもよい。フレーム内モードインデックスを利用して、選択情報を指示し、該選択情報は、利用可能なフレーム内予測モードを決定する。いくつかの実施例において、現在ブロックの彩度成分に対して、別のシグナリングを必要としなく、導出（Ｄｅｒｉｖｅｄ）モードを応用すればよく、該導出モードは、対応する輝度成分に対して選択されたフレーム内予測モードに基づく。
【０１０６】
ＭＨＩｎｔｒａモードに基づき、現在ブロックを復号するかどうかを指示するために、１つのフラグ（例えば、ＶＶＣにおける「ＭＨＩｎｔｒａ＿ｆｌａｇ」）をシグナリングする。フラグ（例えば「ＭＨＩｎｔｒａ＿ｆｌａｇ」）が、ＭＨＩｎｔｒａモードを利用することを指示する場合、さらにどのフレーム内モードによりフレーム内予測値（１０２４）を生成するかということを指示するために、１つのシンタックス要素（例えば、ＶＶＣにおける「ＭＨＩｎｔｒａ＿ｍｏｄｅ＿ｉｄｘ」）をシグナリングすることができる。
【０１０７】
現在ブロックを復号するいくつかの実施例において、ＭＨＩｎｔｒａ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、ＭＨＩｎｔｒａモードに基づき現在ブロックを復号し、（ｘ０、ｙ０）は現在ブロックの左上輝度サンプルの、ピクチャの左上輝度サンプルに対する位置を与える。現在ブロックを復号するいくつかの例示において、ＭＨＩｎｔｒａ＿ｆｌａｇ［ｘ０］［ｙ０］を解析するとともに、ＭＨＩｎｔｒａ＿ｆｌａｇ［ｘ０］［ｙ０］を１にすると決定した後、さらにシンタックス要素ＭＨＩｎｔｒａ＿ｍｏｄｅ＿ｉｄｘ［ｘ０］［ｙ０］を解析することで、利用可能なフレーム内予測モードを取得する。また、ＭＨＩｎｔｒａ＿ｆｌａｇ［ｘ０］［ｙ０］を解析するとともに、ＭＨＩｎｔｒａ＿ｆｌａｇ［ｘ０］［ｙ０］を１にすると決定した後、さらに、現在ブロック（１０１０）のフレーム間予測値（１０２２）を生成するための動き情報を指示するために、１つまたは複数の付加的なシンタックス要素がシグナリングする情報に基づき、動き情報を明示的にシグナリングするかまたは導出する。
【０１０８】
図１１は、１つの実施例における、三角形予測ユニットモードを利用して現在ブロック（１１１０Ａまたは１１１０Ｂ）を分割する２つの例示の模式図である。三角形予測ユニットモードを利用するいくつかの実施例において、現在ブロック（１１１０Ａまたは１１１０Ｂ）を２つの三角形予測ユニットに分割する。いくつかの例示において、それぞれの単一予測動きベクトルと参照フレームインデックスに基づき、現在ブロック（１１１０Ａまたは１１１０Ｂ）における各三角形予測ユニットに対してフレーム間予測を行う。三角形予測ユニットの予測値を生成した後、２つの三角形予測ユニットの間の対角境界に対して自己適応重み付け処理を行うことで、現在ブロック（１１１０Ａまたは１１１０Ｂ）の最終予測値を導出する。
【０１０９】
図１１に示す例示１において、現在ブロック（１１１０Ａ）の左上隅から右下隅までに伸びる対角線に沿って、現在ブロック（１１１０Ａ）を第１三角形予測ユニット（１１１２）と第２三角形予測ユニット（１１１４）に分割する。いくつかの例示において、例えば図１１に示す例示２のように、現在ブロック（１１１０Ｂ）の右上隅から左下隅までに伸びる対角線に沿って、現在ブロック（１１１０Ｂ）を第１三角形予測ユニット（１１１６）と第２三角形予測ユニット（１１１８）に分割する。
【０１１０】
いくつかの実施例において、三角形予測ユニットモードを利用して現在ブロックを復号するかどうかを指示するために、１つのフラグ（例えば、ＶＶＣにおける「ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ」）をシグナリングする。さらに、２つの三角形予測ユニットが使用する分割方法及び候補のインデックスを指示するために、１つまたは複数のシンタックス要素（例えば、ＶＶＣにおける「ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ」、「ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ０」及び／または「ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ１」）をシグナリングする。
【０１１１】
現在ブロックを復号するいくつかの実施例において、ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ［ｘ０］［ｙ０］が１である場合、三角形予測ユニットモードを利用して、現在ブロックを復号し、（ｘ０、ｙ０）は、現在ブロックの左上輝度サンプルの、ピクチャの左上輝度サンプルに対する位置を与える。現在ブロックを復号するいくつかの例示において、ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ［ｘ０］［ｙ０］を解析するとともに、ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ［ｘ０］［ｙ０］を１にすると決定した後、シンタックス要素ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ［ｘ０］［ｙ０］を解析することで、利用可能な分割方向を取得し、シンタックス要素ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ０［ｘ０］［ｙ０］及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｄｘ１［ｘ０］［ｙ０］をさらに解析することで、異なる三角形予測ユニットの利用可能な候補選択情報を取得する。
【０１１２】
図８〜図１１を参照して説明した全ての符号化モードはいずれもビデオ符号化に用いることができる。いくつかの例示において、各種フラグ（例えばフラグｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ）に基づき、どのモードを利用して特定ブロックを復号するかということを決定する。いくつかの例示において、ｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ、ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇの順序に基づき、一部または全ての前記フラグをシグナリングし、また、シグナリングされた該一部のフラグが、特定ブロックを復号するための利用可能なモードを明確に指定できると、全ての前記フラグをシグナリングする必要がない。
【０１１３】
表Ｉに示すように、条件付きでこれらのフラグをシグナリングしてもよく、図１はシンタックス要素と、各々シンタックス要素をシグナリングする対応条件を挙げる。表Ｉにおいて、フラグが「Ｆａｌｓｅ」であれば、現在ブロックに対して該フラグが代表する符号化モードを利用しないことを示し、フラグが「Ｔｒｕｅ」であれば、現在ブロックに対して該フラグが代表する符号化モードを利用することを示す。
【表１】
2021524176.tif 000003
【０１１４】
表Ｉに基づくいくつかの実施例において、フラグであるｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇがいずれもｆａｌｓｅに設定される場合、通常マージモードを利用し、通常マージモードに対するシンタックス要素ｍｅｒｇｅ＿ｉｄｘをシグナリングする。
【０１１５】
通常マージモードは、特定ピクチャにおいて使用頻度が最も高いモードであってもよい。従って、フラグまたはシンタックス要素を再配置することで、通常マージモードを利用するたびに、全てのフラグ、即ち、ｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇをシグナリングする必要がなくなる。また、符号化効率を向上させるために、シンタックス要素ｍｅｒｇｅ＿ｉｄｘは異なるモードに適用される各種パラメータを示すように配置される。例えば、シンタックス要素ｍｅｒｇｅ＿ｉｄｘは、通常マージモードに適用される候補選択情報を指示してもよく、ＭＭＶＤモードに適用される基本ベクトル選択情報を指示してもよい。
【０１１６】
また、以下のように、フラグ及び／またはシンタックス要素を再配置してもよい。ブロックは予測ブロック、符号化ブロックまたは符号化ユニットに対応し、用語である幅と高さは、ブロックの幅と高さを示す。
【０１１７】
いくつかの実施例において、新たなシンタックス要素（本出願の開示において「ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ」と呼ばれる）を導入することで、フラグｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇのうちの一部または全てに代える。例えば、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを０（またはＦａｌｓｅ）にすることで、通常マージモードを利用するように指示し、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを１にする（またはＴｒｕｅ）ことで、通常マージモードを利用しないように指示する。ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃがＴｒｕｅであれば、他の全てのモードのうちのいずれかのモードは１つまたは複数の付加的なフラグまたはシンタックス要素に基づき、シグナリングされるかまたは導出されてもよく、これはは本明細書に記載されるモード、フラグまたはシンタックス要素に限定されず、簡略化または拡張されてもよい。
【０１１８】
１つの例示において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを利用して通常マージモードを利用するかどうか、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇの値、及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇの値をシグナリングすることができる。ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの値に基づき、条件付きでフラグｍｍｖｄ＿ｆｌａｇ及びＭＨＩｎｔｒａ＿ｆｌａｇをシグナリングまたは推定できる。いくつかの例示において、シグナリングされるフラグの使用頻度（各モードの使用頻度に対応する）に基づき、ｂｉｎａｒｙ＿ｌｉｓｔ＿ｉｄｃを二値化し、使用頻度が最も高いフラグは、最小長コードを有し、使用頻度が最も低いフラグは最大長コードを有する。例えば、二値化されたｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの各種値は以下の設定を示し、即ち、「０」は、通常マージモードを利用することを示し、「１０」はｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇがＴｒｕｅであることを示し（即ち、サブブロックマージ予測モードを利用する）、「１１」はｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇがＴｒｕｅであることを示す（即ち、三角形予測ユニットモードを利用する）。
【０１１９】
他の実施例において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを利用して、通常マージモードを利用するかどうか、ｍｍｖｄ＿ｆｌａｇの値、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇの値、及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇの値をシグナリングすることができる。ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの値に基づき、ＭＨＩｎｔｒａ＿ｆｌａｇを推定できる。いくつかの例示において、さらに、シグナリングされるフラグの使用頻度（各モードの使用頻度に対応する）に基づき、ｂｉｎａｒｙ＿ｌｉｓｔ＿ｉｄｃを二値化してもよく、使用頻度が最も高いフラグは最小長コードを有し、使用頻度が最も低いフラグは最大長コードを有する。例えば、二値化されたｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの各種値は以下の設定を示し、即ち、「０」は通常マージモードを利用することを示し、「１０」はｍｍｖｄ＿ｆｌａｇがＴｒｕｅであることを示し（即ち、ＭＭＶＤモードを利用する）、「１１０」はｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇがＴｒｕｅであることを示し（即ち、サブブロックマージ予測モードを利用する）、「１１１」はｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇがＴｒｕｅであることを示す（即ち、三角形予測ユニットモードを利用する）。
【０１２０】
他の実施例において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを利用して、通常マージモードを利用するかどうか、ｍｍｖｄ＿ｆｌａｇの値、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇの値、及びＭＨＩｎｔｒａ＿ｆｌａｇの値をシグナリングすることができる。より多いマージモードをｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃに追加すれば、簡単な拡張を適用できる。
【０１２１】
いくつかの例示において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを二値化するために、カットオフされた一次元コードを利用できる。いくつかの実施例において、前の１つまたは２つのビンに対して可変長で符号化を行って、他のビンに対して固定長で符号化を行う。基本的に、マージモードの使用頻度に基づき、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃにおいて、各種モードの利用に対する指示順序を配列できる。いくつかの例示において、使用頻度が最も高いモードを１番目に配置する必要がある（従って、最小長コードに対応する）。１つの実施例において、使用頻度と５０％との間の絶対差に基づき、マージモードを配列する。例えば、最大絶対差を有するモードを１番目に配列する。
【０１２２】
１つの実施例において、表ＩＩに基づきｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを二値化する。
【表２】
2021524176.tif 000004
【０１２３】
他の実施例において、表ＩＩＩに基づきｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを二値化する。
【表３】
2021524176.tif 000005
【０１２４】
さらなる実施例において、表ＩＶに基づきｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを二値化する。
【表４】
2021524176.tif 000006
【０１２５】
さらなる実施例において、表Ｖに基づきｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを二値化する。
【表５】
2021524176.tif 000007
【０１２６】
ビットストリームにおけるハイレベルシンタックス構成、例えば、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、スライスヘッダ、タイルグループヘッダ、タイルヘッダ、またはピクチャ或いはピクチャの一部に関連付けられた適切なヘッダにおいて、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃをシグナリングしてもよい。
【０１２７】
コンテキストモデルを利用してｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを符号化することができる。１つの例示において、現在ブロックの上方または左側にある空間隣接ブロックからのｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを利用して、現在ブロックを符号化するためのｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃのコンテキストモデルを導出する。１つの例示において、現在ブロックの幅及び高さにより、現在ブロックを符号化するためのｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃのコンテキストモデルを導出する。いくつかの実施例において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの各ビンはコンテキストにより符号化され、異なるビンに対して、異なるコンテキストを利用できる。１つの例示において、コンテキストとしての空間隣接領域に基づき、通常マージモードを指示するビンに対して符号化を行う。他の例示において、空間隣接領域に依存しない単一コンテキストに基づき、サブブロックマージ予測モードを指示するビンに対して符号化を行う。
【０１２８】
いくつかの実施例において、通常マージモードを使用するかを指示するｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃまたは専用フラグ（本出願の開示において、「ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ」として示される）をシグナリングした後、且つシンタックス要素ｍｅｒｇｅ＿ｉｄｘをシグナリングした後、対応するＭＭＶＤ関連情報、例えばｍｍｖｄ＿ｆｌａｇ及び／または動きベクトル差情報を指示するＭＭＶＤに関するシンタックス要素をシグナリングする。１つの例示において、現在ブロックに対して、ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ／ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃをシグナリングした後、且つ、ｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ（もしあれば）をシグナリングする前に、シンタックス要素ｍｅｒｇｅ＿ｉｄｘをシグナリングする。
【０１２９】
他の例示において、まず、ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ／ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃをシグナリングすることで、通常マージモードを利用するかどうかを明確に指示し、そして、シンタックス要素ｍｅｒｇｅ＿ｉｄｘをシグナリングする。いくつかの実施例において、ｍｅｒｇｅ＿ｉｄｘにより前記「ｂａｓｅ＿ｍｖ＿ｉｄｘ」に付けられた情報をシグナリングする。ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ／ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ及びｍｅｒｇｅ＿ｉｄｘ信号をシグナリングした後、条件付きでＭＭＶＤに関するシンタックス要素をシグナリングする。１つの例示において、ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ／ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃが、通常マージモードまたはＭＭＶＤモードを利用できるように指示するとともに、ｍｅｒｇｅ＿ｉｄｘが指示する候補インデックスがｍａｘ＿ｍｍｖｄ＿ｂａｓｅ＿ｉｄｘより小さいと、ＭＭＶＤモードを利用できる可能性があり、さらに、ｍｍｖｄ＿ｆｌａｇをシグナリングする。さもなければ、ＭＭＶＤモードを排除でき、そのため、ｍｍｖｄ＿ｆｌａｇをＦａｌｓｅに推定し、シグナリングする必要がない。ｍｍｖｄ＿ｆｌａｇがＴｒｕｅであれば、シンタックス要素ｄｉｓｔａｎｃｅ＿ｉｄｘ及びｄｉｒｅｃｔｉｏｎ＿ｉｄｘをシグナリングする。
【０１３０】
いくつかの実施例において、通常マージモードとＭＭＶＤモードをブロックに基づくマージモードに分類し、且つ、サブブロックマージ予測モード（ＡＴＭＶＰとアフィンモードを含む）、三角形マージ予測モード及びＭＨＩｎｔｒａモードをサブブロックに基づくマージモードに分類する。従って、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃを利用して現在ブロックを符号化するためのモードは、ブロックに基づくマージモードであるか、それともサブブロックに基づくマージモードであるかということをシグナリングする。
【０１３１】
例えば、ｍｅｒｇｅ＿ｆｌａｇがＴｒｕｅであり、マージモードを利用するように指示する場合、フラグｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃをシグナリングすることで、現在ブロックに対する符号化は、ブロックに基づくマージモードの１つであるか、それともサブブロックに基づくマージモードの１つであるかを指示する。いくつかの例示において、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃの後、且つマージに関する他の全てのフラグの前に、ｍｅｒｇｅ＿ｉｄｘをシグナリングし、または、マージに関する他の全てのフラグの後、ｍｅｒｇｅ＿ｉｄｘをシグナリングしてもよい。
【０１３２】
ブロックに基づく１つのマージモードを利用する場合、ｍｍｖｄ＿ｆｌａｇをシグナリングしてもよく、該シグナリングはｍｅｒｇｅ＿ｉｄｘの値に依存する（マージに関する他の全てのフラグの前に、該値をシグナリングすれば）。このような例示において、代わりとして、「ｍｅｒｇｅ＿ｌｉｓｔ」を利用して、前記「ｂａｓｅ＿ｍｖ＿ｉｄｘ」に付けられた情報をシグナリングしてもよい。例えば、ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃが通常マージモードまたはＭＭＶＤモードを利用できるように指示し、ｍｅｒｇｅ＿ｉｄｘが指示する候補インデックスがｍａｘ＿ｍｍｖｄ＿ｂａｓｅ＿ｉｄｘより小さいと、ＭＭＶＤモードを利用してｍｍｖｄ＿ｆｌａｇをシグナリングする可能性がある。さもなければ、ＭＭＶＤモードを排除でき、そのため、ｍｍｖｄ＿ｆｌａｇをＦａｌｓｅに推定し、シグナリングする必要がない。ｍｍｖｄ＿ｆｌａｇはＴｒｕｅであれば、さらにＭＭＶＤモードに関する情報をシグナリングする。
【０１３３】
１つのサブブロックマージモードを利用する場合、ｓｕｂ＿ｂｌｏｃｋ＿ ｆｌａｇ（アフィンマージモードとＡＴＭＶＰモードに対応する）をシグナリングし、該シグナリングはｍｅｒｇｅ＿ｉｄｘの値に依存する（マージに関する他の全てのフラグの前に該値をシグナリングすれば）。１つの例示において、サブブロックマージモードを利用して、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇがＦａｌｓｅであれば、ＭＨＩｎｔｒａ＿ｆｌａｇをシグナリングし、該シグナリングはＭＨＩｎｔｒａモードを有効にする条件に依存する。ＭＨＩｎｔｒａ＿ｆｌａｇがＴｒｕｅであれば、さらにＭＨＩｎｔｒａモードに関する情報をシグナリングする。１つの例示において、サブブロックマージモードを利用して、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇとＭＨＩｎｔｒａ＿ｆｌａｇとがＦａｌｓｅであれば、ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇをシグナリングし、該シグナリングは三角形予測ユニットモードを有効にする条件に依存する。ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇがＴｒｕｅであれば、さらに三角形予測ユニットモードに関する情報をシグナリングする。
【０１３４】
前記モード及び異なるモードの、前記カテゴリにおける順序に対する説明は非限定的であり、それを変更または変化してもよい。例えば、ＭＨＩｎｔｒａモードの前に、三角形予測ユニットモードを考慮または検査するとともに、三角形予測ユニットモードを、他のモードに対応するフラグをシグナリングする条件とする。
【０１３５】
少なくとも１つの実施例において、本明細書に記載の各種例示におけるシンタックス設計は以下のように配置される。
ｉｆ(ｍｅｒｇｅ＿ｆｌａｇ)
｛
ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ; ／／ ０ 個のブロックマージモード；１つのサブブロックマージモード
ｍｅｒｇｅ＿ｉｄｘ;
ｉｆ(ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ＝＝０ ＆＆ ｍｅｒｇｅ＿ｉｄｘ＜＝ ｍａｘ＿ｍｍｖｄ＿ｂａｓｅｄ＿ｉｎｄｅｘ)
｛
ｍｍｖｄ＿ｆｌａｇ;
ｉｆ(ｍｍｖｄ＿ｆｌａｇ)
｛
ｍｍｖｄ＿ｉｎｆｏ;
｝
｝
｝
ｅｌｓｅ ／／(ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ ！＝０)であれば
｛
ｉｆ(ｍｅｒｇｅ＿ｉｄｘ ＜＝ ｓｕｂ＿ｂｌｏｃｋ＿ｍｅｒｇｅ＿ｓｉｚｅ)  ／／２つのリストの大きさが異なると
ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ; ／／ ＡＴＭＶＰ及びＡｆｆｉｎｅ
ｉｆ (！ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ)
｛
ｉｆ(ＭＨＩｎｔｒａ ｍｏｄｅ ｃｏｎｄｉｔｉｏｎｓ) ／／有効にする条件を追加する
ＭＨＩｎｔｒａ＿ｆｌａｇ;
ｉｆ(ＭＨＩｎｔｒａ＿ｆｌａｇ)
｛
ＭＨＩｎｔｒａ＿ｉｎｆｏ;
｝
｝
／／ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇがｔｒｕｅであれば、ＭＨＩｎｔｒａ＿ｆｌａｇはＦａｌｓｅに推定される
ｉｆ(！ＭＨＩｎｔｒａ＿ｆｌａｇ ＆＆ ！ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ ) 
｛
ｉｆ(ｔｒｉａｎｇｌｅ ｐｒｅｄｉｃｔｉｏｎ ｕｎｉｔ ｍｏｄｅ ｃｏｎｄｉｔｉｏｎｓ)／／開始条件を追加する
ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ;
ｉｆ(ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ)
｛
ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｉｎｆｏ;
｝
｝
｝
【０１３６】
いくつかの実施例において、新たなシンタックス要素ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを導入することで、通常マージモードを利用するかどうかを明確に指示する。ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇをＴｒｕｅにすると、通常マージモードを利用する。
【０１３７】
シンタックス要素ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇに対してコンテキストモデルを利用して符号化を行う。１つの例示において、現在ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇに対して固定コンテキストモデルを利用して符号化を行う。例えば、常にインデックスが０であるコンテキストモデルを利用してｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。
【０１３８】
他の例示において、現在ブロックの上側と左側の空間隣接ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを利用して、現在ブロックを符号化するためのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇのコンテキストモデルを導出する。１つの例示において、現在ブロックの上側と左側の空間隣接ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇがいずれもＦａｌｓｅであれば、インデックスが０であるコンテキストモデルを利用して、現在符号化ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。１つの例示において、現在ブロックの上側と左側の空間隣接ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇがいずれもＴｒｕｅであれば、インデックスが２であるコンテキストモデルを利用して、現在符号化ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。いくつかの例示において、現在ブロックの上側と左側の空間隣接ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇはいずれもＦａｌｓｅではなく、且つＴｒｕｅではないと、インデックスが１であるコンテキストモデルを利用して現在符号化ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。
【０１３９】
他の例示において、現在ブロックの上側と左側の空間隣接ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇが全部Ｆａｌｓｅであれば、インデックスが０であるコンテキストモデルを利用して現在符号化ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。さもなければ、インデックスが１であるコンテキストモデルを利用して現在符号化ブロックのｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇを符号化する。
【０１４０】
図１２Ａは、本出願が開示した１つの実施例の復号プロセス（１２００Ａ）を概略説明するフローチャートを示す。該プロセス（１２００Ａ）は、動き情報を特定するとともに、動き情報をピクチャブロック（即ち、現在ブロック）に適用するモードを決定することができる。いくつかの実施例において、プロセス（１２００Ａ）の前、または後に、１つまたは複数の動作を実行してもよく、図１２Ａに示したいくつかの動作は改めて配列するかまたは省略してもよい。
【０１４１】
各実施例において、プロセス（１２００Ａ）は処理回路により実行され、該処理回路は、例えば第１端末装置（２１０）、第２端末装置（２２０）、第３端末装置（２３０）、及び第４端末装置（２４０）における処理回路、及びビデオ復号器（３１０）、（４１０）または（７１０）などの機能を実行する処理回路である。いくつかの実施例において、プロセス（１２００Ａ）はソフトウェア命令により実現されるから、処理回路はソフトウェア命令を実行する場合、処理回路はプロセス（１２００Ａ）を実行する。前記プロセスはフローＳ１２０１から始まり、その後、ステップＳ１２１０を実行する。
【０１４２】
ステップＳ１２１０において、符号化されたビデオビットストリームから第１シンタックス要素を取得する。第１シンタックス要素は複数のモードと関連付けられ、該複数のモードは動き情報を特定して動き情報を現在ブロックに適用するためのものである。第１シンタックス要素の第１値は、現在ブロックに用いられる複数のモードのサブセットを指示する。いくつかの実施例において、該第１シンタックス要素は前記シンタックス要素「ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ」に対応する。
【０１４３】
複数のモードは、動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する通常マージモードと、現在ブロックを複数の矩形サブブロックに分割するとともに、複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モードと、現在ブロックを２つの三角形サブパーティションに分割するとともに、三角形サブパーティションの動き情報を導出する三角形予測ユニットモードとを含む。複数のモードはさらに、動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する動きベクトル差付きマージモード（ＭＭＶＤ）を含む。複数のモードはさらに、フレーム内予測値とフレーム間予測値を組み合わせることで、現在ブロックの最終予測値を生成するイントラ用の多仮説予測（ＭＨＩｎｔｒａ）モードを含む。
【０１４４】
第１シンタックス要素の値が指示する、現在ブロックに用いられる複数のモードのサブセットは単一モード、またはモードの複数のサブセットのうちの１つを含む。１つの例示において、第１シンタックス要素の値は、通常マージモードを利用して現在ブロックの動き情報を導出するかどうかを指示できる。１つの例示において、第１シンタックス要素の値は、通常マージモードまたは動きベクトル差付きマージモードを利用して現在ブロックの動き情報を導出するように指示する。１つの例示において、第１シンタックス要素の値は、サブブロックマージ予測モード、三角形予測ユニットモード、またはＭＨＩｎｔｒａモードを利用して現在ブロックの動き情報を導出するように指示する。
【０１４５】
第１シンタックス要素は、複数のモードのそれぞれの異なるビンの１つを示すように設定される。所定順序に従って、複数のモードを配列し、該所定順序はモードの使用頻度の降順と一致する。いくつかの例示において、該順序は、表ＩＩ〜表Ｖに示したいずれかの例示の全てまたは一部と一致するように配列される。複数のモードのうちのいずれか２つのモードに対して、順序が前にあるモードを符号化するためのコードの長さは、他のモードを符号化するためのコードの長さの以下である。例えば、表ＩＩに示した通常マージモード、ＭＭＶＤモード、サブブロックマージ予測モード、ＭＨＩｎｔｒａモード及び三角形予測ユニットモードの順序を参照すればよい。
【０１４６】
いくつかの実施例において、現在ブロックが含まれるピクチャに適用する複数のモードにおいて、使用頻度が最も高いモードは順序で１位に配列され、最も少ないバイナリビットが含まれるビンの１つで示される。少なくとも１つ例示において、使用頻度が最も高いモードは通常マージモードである。
【０１４７】
いくつかの実施例において、現在ブロックに用いられる複数のモードのサブセットが複数のモードに対応すると、第１シンタックス要素の後で提供される１つまたは複数の付加的なシンタックス要素またはフラグに基づき、複数のモードのサブセット内の利用可能なモードを導出または決定できる。図１２Ｂを参照し、さらに、複数のモードのサブセットから、利用可能なモードを決定する他の非限定的な例示をさらに説明する。
【０１４８】
ステップＳ１２７０において、第１シンタックス要素の第１値が指示した複数のモードのサブセットに基づき、現在ブロックの予測値を生成する。いくつかの実施例において、複数のモードのサブセット内の利用可能なモードに基づき、少なくともフレーム間予測により現在ブロックの予測値を生成する。
【０１４９】
ステップＳ１２８０において、少なくともステップＳ１２７０で得られた予測値に基づき、現在ブロックの再構築サンプルを生成する（例えば、該再構築サンプルは出力に用いられる）。
【０１５０】
ステップＳ１２８０の後、該プロセスはフローＳ１２９９を実行し、終止する。
【０１５１】
図１２Ｂは、本出願が開示した他の実施例における、他の復号プロセス（１２００Ｂ）を概略説明するフローチャートを示す。該プロセス（１２００Ｂ）はステップＳ１２０１、Ｓ１２１０、Ｓ１２２０、Ｓ１２７０、Ｓ１２８０及びＳ１２９９を含むとともに、図１２Ａにおけるプロセス（１２００Ａ）のステップＳ１２２０とステップＳ１２７０との間に挿入されてもよい。従って、図１２ＢにはステップＳ１２０１、Ｓ１２１０、Ｓ１２２０、Ｓ１２７０、Ｓ１２８０及びＳ１２９９が記載または図示されていない。
【０１５２】
プロセス（１２００Ｂ）が１つのモードを決定し、該モードは動き情報を特定して動き情報をピクチャブロック（即ち、現在ブロック）に適用するためのものである。いくつかの実施例において、プロセス（１２００Ｂ）の前または後に、１つまたは複数の動作を実行してもよく、図１２Ｂに示すいくつかの動作は改めて配列または省略してもよい。
【０１５３】
各実施例において、プロセス（１２００Ｂ）は処理回路により実行され、該処理回路は、例えば、第１端末装置（２１０）、第２端末装置（２２０）、第３端末装置（２３０）、及び第４端末装置（２４０）における処理回路、及びビデオ復号器（３１０）、（４１０）または（７１０）などの機能を実行する処理回路である。いくつかの実施例において、プロセス（１２００Ｂ）はソフトウェア命令により実現するから、処理回路はソフトウェア命令を実行する場合、処理回路はプロセス（１２００Ｂ）を実行する。該処理はフローＳ１２０１から始まり、その後、ステップＳ１２１０及びステップＳ１２２０を実行し、そして、ステップＳ１２３０を実行する。
【０１５４】
ステップＳ１２３０において、符号化されたビデオビットストリームから、第１シンタックス要素の後で提供された第２シンタックス要素を取得する。第２シンタックス要素の第２値はインデックスを指示し、該インデックスは動き情報候補リストから動き情報候補を選択するためのものである。いくつかの実施例において、該第２シンタックス要素は前記シンタックス要素「ｍｅｒｇｅ＿ｉｄｘ」に対応する。
【０１５５】
ステップＳ１２４０において、複数のモードのサブセットに通常マージモードとＭＭＶＤモードが含まれるかどうかを決定する。サブセットに通常マージモードとＭＭＶＤモードが含まれると、該プロセスはステップＳ１２４５を実行し、さもなければ、該プロセスはステップＳ１２５５を実行する。
【０１５６】
いくつかの実施例において、第１シンタックス要素の第１値に基づき、複数のモードのサブセットに通常マージモードとＭＭＶＤモードが含まれるかどうかを決定する。いくつかの実施例において、第１シンタックスの第１値が、現在ブロックの予測値を生成するためのモードが、ブロックに基づくマージモードであるように指示する場合、複数のモードのサブセットに通常マージモードとＭＭＶＤモードのうちの少なくとも１つが含まれる。いくつかの実施例において、第１シンタックス要素の第１値が、現在ブロックの予測値を生成するためのモードがサブブロックに基づくマージモードであるように指示する場合、複数のモードのサブセットにサブブロックマージ予測モード、三角形予測ユニットモード及びＭＨＩｎｔｒａモードのうちの少なくとも１つが含まれる。
【０１５７】
いくつかの実施例において、ステップＳ１２４０において、さらに、符号化されたビデオビットストリームにおいて、第１シンタックス要素の後で提供される他のシンタックス要素に基づき、複数のモードのサブセットに通常マージモードとＭＭＶＤモードが含まれるかどうかを決定する。第１シンタックス要素の第１値が、複数のモードのためのサブセットに少なくとも通常マージモードが含まれるように指示する場合、前記他のシンタックス要素の値は、現在ブロックの予測値を生成するためのモードが通常マージモードであるかどうかを明確に指示する。いくつかの実施例において、前記他のシンタックス要素は前記シンタックス要素「ｒｅｇｕｌａｒ＿ｍｅｒｇｅ＿ｆｌａｇ」に対応する。
【０１５８】
ステップＳ１２４５において、第３シンタックス要素を取得するかどうかを決定し、第３シンタックス要素の第３値は、通常マージモードに基づくか、それともＭＭＶＤモードに基づき、現在ブロックの予測値を生成するかということを指示する。いくつかの実施例において、第２シンタックス要素の第２値が指示したインデックスが、ＭＭＶＤモードの動き情報候補の最大の数より小さい場合、符号化されたビデオビットストリームから第３シンタックス要素を取得し、該プロセスはステップ（Ｓ１２５０）を実行する。さもなければ、第３シンタックス要素を取得する必要がなく、現在ブロックの利用可能なモードを通常マージモードとして決定し、そして、該プロセスはステップＳ１２５５を実行する。いくつかの実施例において、該第３シンタックス要素は前記シンタックス要素「ｍｍｖｄ＿ｆｌａｇ」に対応する。
【０１５９】
ステップＳ１２５０において、取得された第３シンタックス要素に基づき、現在ブロックの利用可能なモードが通常マージモードであるか、それともＭＭＶＤモードであるかを決定できる。第３シンタックス要素の値がＭＭＶＤモードを利用するように指示すれば、該プロセスはステップＳ１２６０を実行し、さもなければ、利用可能なモードを通常マージモードとして決定し、該プロセスはステップＳ１２５５を実行する。
【０１６０】
ステップＳ１２５５において、既に現在ブロックの利用可能なモードは通常マージモードであると決定し、または、１つまたは複数の付加的なフラグに基づき、現在ブロックの利用可能なモードを他の可能なモードのうちの１つとして決定し、例えばサブブロックマージ予測モード、三角形予測ユニットモード、及び／またはＭＨＩｎｔｒａモードのうちの１つであると決定する。いくつかの実施例において、該１つまたは複数の付加的なフラグは前記「ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ」、「ＭＨＩｎｔｒａ＿ｆｌａｇ」及び「ｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇ」のうちの１つまたは複数に対応する。
【０１６１】
Ｓ１２６０において、第３シンタックス要素の第３値が現在ブロックの予測値を生成するためのモードがＭＭＶＤモードであるように指示する場合、符号化されたビデオビットストリームから、第３シンタックス要素の後で提供される１つまたは複数の第４シンタックス要素を取得する。いくつかの実施例において、１つまたは複数の第４シンタックス要素はＭＭＶＤモードの動きベクトル差情報を指示する。いくつかの実施例において、該１つまたは複数の第４シンタックス要素は前記「ｂａｓｅ＿ｍｖ＿ｉｄｘ」、ｄｉｓｔａｎｃｅ＿ｉｄｘ」と「ｄｉｒｅｃｔｉｏｎ＿ｉｄｘ」のうちの１つまたは複数に対応する。いくつかの実施例において、「ｂａｓｅ＿ｍｖ＿ｉｄｘ」に付けられた情報は「ｍｅｒｇｅ＿ｉｄｘ」によりシグナリングされ、その同時に、「ｂａｓｅ＿ｍｖ＿ｉｄｘ」を省略できる。
【０１６２】
ステップＳ１２５５またはステップＳ１２６０の後、該プロセスはステップＳ１２７０を実行し、そして、ステップＳ１２８０を実行し、その後、フローＳ１２９９を実行し、終止する。
【０１６３】
図１３は、本出願が開示した１つの実施例の符号化プロセス（１３００）を概略説明するフローチャートを示す。該プロセス（１３００）はピクチャのブロック（即ち、現在ブロック）を符号化し、動き情報を特定し、動き情報を現在ブロックに適用するための複数のモードに基づき、前記ピクチャを符号化する。いくつかの実施例において、プロセス（１３００）の前または後に、１つまたは複数の動作を実行してもよく、図１３に示したいくつかの動作は改めて配列または省略してもよい。
【０１６４】
各実施例において、プロセス（１３００）は処理回路により実行され、該処理回路は、例えば、第１端末装置（２１０）、第２端末装置（２２０）、第３端末装置（２３０）、及び第４端末装置（２４０）における処理回路、及びビデオ符号器（３０３）、（５０３）または（７０３）などの機能を実行する処理回路である。いくつかの実施例において、プロセス（１３００）はソフトウェア命令により実現されるから、処理回路はソフトウェア命令を実行する場合、処理回路はプロセス（１３００）を実行する。プロセスはフローＳ１３０１から始まり、その後、ステップＳ１３１０を実行する。
【０１６５】
ステップＳ１３１０において、動き情報を特定するとともに、動き情報を現在ブロックに適用するための複数のモードの１つを、現在ブロックの利用可能なモードとして決定する。
【０１６６】
いくつかの実施例において、複数のモードは、動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出する通常マージモードと、現在ブロックを複数の矩形サブブロックに分割するとともに、複数の矩形サブブロックのそれぞれの動き情報を導出するサブブロックマージ予測モードと、現在ブロックを三角形サブパーティションに分割するとともに、三角形ブロックサブパーティションのそれぞれの動き情報を導出する三角形予測ユニットモードとを含む。いくつかの実施例において、複数のモードはさらに、動きベクトル差情報と動き情報候補リストから選択された動き情報候補に基づき、現在ブロックの動き情報を導出するＭＭＶＤモードを含む。いくつかの実施例において、複数のモードはさらに、フレーム内予測値とフレーム間予測値を組み合わせることで、現在ブロックの最終予測値を生成するＭＨＩｎｔｒａモードを含む。
【０１６７】
ステップＳ１３２０において、ステップＳ１３１０で決定された利用可能なモードに基づき、現在ブロックの予測値を生成する。ステップＳ１３３０において、該予測値に基づき、現在ブロックの残差サンプルを生成する。いくつかの実施例において、残差サンプルは現在ブロックの初期サンプルと予測値との間の差に対応する。
【０１６８】
Ｓ１３４０において、複数のモードと関連付けられたシンタックス要素を生成する。該シンタックス要素の値は、複数のモードのサブセットを指示し、該サブセットには、決定された、現在ブロックに用いられるモードが含まれる。該シンタックス要素は前記シンタックス要素「ｍｅｒｇｅ＿ｌｉｓｔ＿ｉｄｃ」に対応する。
【０１６９】
１つの例示において、シンタックス要素の値は、通常マージモードを利用して、現在ブロックの動き情報をシグナリングするかどうかを指示する。１つの例示において、シンタックス要素の値は、通常マージモード、またはＭＭＶＤモードを利用して、現在ブロックの動き情報をシグナリングするように指示する。１つの例示において、シンタックス要素の値は、サブブロックマージ予測モード、三角形予測ユニットモード、またはＭＨＩｎｔｒａモードを利用して、現在ブロックの動き情報をシグナリングするように指示する。
【０１７０】
いくつかの実施例において、シンタックス要素は、複数のモードのそれぞれを代表する異なるビンの１つとして設定される。所定順序に従って、複数のモードを配列し、該所定順序はモードの使用頻度の降順と一致する。いくつかの例示において、該順序は、表ＩＩ〜表Ｖに示したいずれかの例示の全てまたは一部と一致するように配列される。いくつかの実施例において、複数のモードのうちのいずれか２つのモードに対して、順序が前にあるモードを符号化するためのコードの長さは、他のモードを符号化するためのコードの長さの以下である。例えば、表ＩＩに示した通常マージモード、ＭＭＶＤモード、サブブロックマージ予測モード、ＭＨＩｎｔｒａモード及び三角形予測ユニットモードの順序を参照すればよい。
【０１７１】
いくつかの実施例において、現在ブロックが含まれるピクチャに用いられる複数のモードにおいて、使用頻度が最も高いモードは順序で１位に配列されるとともに、最も少ないバイナリビットが含まれるビンの１つで示される。少なくとも１つ例示において、使用頻度が最も高いモードは通常マージモードである。
【０１７２】
いくつかの実施例において、シンタックス要素とともに、条件付きで１つまたは複数の他のフラグ、例えば、フラグｍｍｖｄ＿ｆｌａｇ、ｓｕｂ＿ｂｌｏｃｋ＿ｆｌａｇ、ＭＨＩｎｔｒａ＿ｆｌａｇ及びｍｅｒｇｅ＿ｔｒｉａｎｇｌｅ＿ｆｌａｇをシグナリングすることで、決定された利用可能なモードを指示する。
【０１７３】
ステップＳ１３８０において、少なくともステップＳ１３４０で生成されたシンタックス要素、及びステップ１３３０で生成された現在ブロックの残差サンプルに基づき、出力のための符号化されたビデオビットストリームを生成する。
【０１７４】
ステップＳ１３８０の後、該プロセスはフローＳ１３９９を実行し、終止する。
【０１７５】
前記技術はコンピュータソフトウェアとして実現されてもよく、該コンピュータソフトウェアはコンピュータ読み取り可能な命令を利用して物理的に１つまたは複数のコンピュータ読み取り可能な媒体に記憶される。例えば、図１４は本出願が開示するテーマを実現するいくつかの実施例のコンピュータシステム（１４００）を示す。
【０１７６】
コンピュータソフトウェアは任意の適切なマシンコードまたはコンピュータ言語によって符号化を行って、マシンコードまたはコンピュータ言語に対して編集、コンパイル、リンクなどの動作を行って、命令が含まれたコードを構築し、該命令は１つまたは複数のコンピュータ中央処理ユニット（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）などによって直接的に実行されるかまたは解釈、マイクロコードによる実行などによって実行される。  
【０１７７】
命令は各種タイプのコンピュータまたはその部材で実行でき、例えば、パーソナルコンピュータ、タブレット、サーバ、スマートフォン、ゲーム機器、モノのインターネット機器などを含む。  
【０１７８】
図１４に示したコンピュータシステム（１４００）に用いられるの部材は、本出願が開示する実施例を実現するためのコンピュータソフトウェアの使用範囲または機能に対して限定せず、本質に例示的である。部材の配置も、コンピュータシステム（１４００）の例示性の実施例に示したいずれかの部材、または部材の組み合わせに依存または限定されるように解釈されるべきではない。  
【０１７９】
コンピュータシステム（１４００）は、いくつかのヒューマンマシンインターフェイス入力機器を有してもよい。このようなヒューマンマシンインターフェイス入力機器は、１つまたは複数の人類ユーザーの、例えば触覚入力（例えば：キーストローク、スライド、データグローブ移動）、オーディオ入力（例えば：音声、たたき）、視覚入力（例えば：姿勢）、嗅覚入力（図示せず）による入力に応答できる。マンマシンインタフェース機器はさらに、必ずしも人類の意識的な入力に直接的に関するわけではなく、媒体、例えば、オーディオ（例えば、音声、音楽、環境音）、画像（例えば、スキャンした画像、静態画像撮影装置から取得された写真画像）、ビデオ（例えば、２次元ビデオ、立体ビデオが含まれる３次元ビデオ）をキャプチャできる。
【０１８０】
マンマシンインタフェース入力機器は、キーボード（１４０１）、マウス（１４０２）、タッチパッド（１４０３）、タッチパネル（１４１０）、データグローブ（図示せず）、ジョイスティック（１４０５）、マイク（１４０６）、スキャナ（１４０７）、カメラ（１４０８）のうちの１つまたは複数を含み得る（各項は１つのみを示す）。
【０１８１】
コンピュータシステム（１４００）は、さらにいくつかのマンマシンインタフェース出力機器を有してもよい。このようなマンマシンインタフェース出力機器は、例えば触覚出力、音、光及び匂い／味を介して１つまたは複数の人類ユーザーの感覚を刺激できる。該マンマシンインタフェース出力機器は、触覚出力機器（例えば、タッチパネル（１４１０）、データグローブ（図示せず）またはジョイスティック（１４０５）による触覚フィードバックがあるが、入力機器として用いられない触覚フィードバック機器を利用してもよい）、オーディオ出力機器（例えばスピーカー（１４０９）、ヘッドフォン（図示せず））、視覚出力機器（例えばスクリーン（１４１０）であって、ＣＲＴスクリーン、ＬＣＤスクリーン、プラズマスクリーン、ＯＬＥＤスクリーンを含み、各々スクリーンはタッチパネル入力能力、触覚フィードバック能力を有してもよく、有してなくてもよく、そのうちのいくつかは、立体画像出力のような手段で、２次元の視覚を出力または３次元以上の出力を行って、バーチャルリアリティ眼鏡（図示せず）、ホログラフィックディスプレイ及びスモークタンク（図示せず））、プリンター（図示せず）を含む。  
【０１８２】
コンピュータシステム（１４００）はさらに人類がアクセスし得る記憶機器及びその関する媒体を有してもよく、例えばＣＤ／ＤＶＤなどの媒体（１４１２１）を有するＣＤ／ＤＶＤ
ＲＯＭ／ＲＷ（１４２０）が含まれる光学媒体、サムドライブ（１４２２）、取り外し可能なハードドライブまたはソリッドステートドライブ（１４２３）、磁気テープとフロッピーディスク（図示せず）のような伝統の磁気媒体、専用ＲＯＭ／ＡＳＩＣ／ＰＬＤに基づく機器、例えばドングル（図示せず）のような機器を含む。
【０１８３】
当業者は、本出願が開示したテーマに関して使用される用語「コンピュータ読み取り可能な媒体」には伝送媒体、搬送波または他の瞬間信号が含まれないことを理解できる。
【０１８４】
コンピュータシステム（１４００）は、さらに１つまたは複数の通信ネットワークに達するインタフェースを有してもよい。ネットワーク、例えば無線、有線接続、光学ネットワークであってもよい。ネットワークはさらに、ローカルエリアネットワーク、広域エリアネットワーク、メトロポリタンエリアネットワーク、車両工業ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例示はイーサネットのようなローカルエリアネットワーク、無線ＬＡＮ、ＧＳＭ、３Ｇ、４Ｇ、５Ｇ、ＬＴＥなどが含まれるセルラーネットワーク、有線テレビ、衛星テレビ及び地上波テレビが含まれる有線接続または無線広域ディジタルネットワークテレビ、ＣＡＮＢｕｓが含まれる車両及び工業ネットワークなどを含む。いくつかのネットワークは一般的に、ある汎用データポートまたは周辺バス（１４４９）（例えば、コンピュータシステム（１４００）のＵＳＢポート）に連結される外部ネットワークインタフェースアダプタを必要とし、他は一般的に以下の方式でシステムバスに連結されることで、コンピュータシステム（１４００）のコアに集積される（例えば、イーサネットインタフェースを介してＰＣコンピュータシステムに集積され、またはセルラーネットワークインタフェースを介してスマートフォンコンピュータシステムに集積される）。これらのネットワークにおける任意のネットワークを介して、コンピュータシステム（１４００）は他のエンティティと通信できる。このような通信は一方向で受信のみ（例えば、放送テレビ）、一方向で送信のみ（例えば、ＣＡＮバスから、あるＣＡＮバス機器に達する)、または双方向である（例えば、ローカルエリアまたは広域ディジタルネットワークを介して他のコンピュータシステムに達する）。前記各ネットワーク及びネットワークインタフェースに、いくつかのプロトコル及びプロトコルスタックを利用できる。
【０１８５】
前記マンマシンインタフェース機器、人類がアクセスし得る記憶機器及びネットワークインタフェースはコンピュータシステム（１４００）のコア（１４４０）に連結される。
【０１８６】
コア（１４４０）は、１つまたは複数の中央処理ユニット（ＣＰＵ）（１４４１）、グラフィック処理ユニット（ＧＰＵ）（１４４２）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）（１４４３）という形式の専門プログラム可能な処理ユニット、特定のタスク用のハードウェアアクセラレータ（１４４４）などを含む。システムバス（１４４８）を介して、これらの機器を、読み取り専用メモリ（ＲＯＭ）（１４４５）、ランダムアクセスメモリ（１４４６）、内部のユーザーがアクセスできないハードディスクドライブ、ＳＳＤなどのような内部大容量記憶装置（１４４７）に接続する。いくつかのコンピュータシステムにおいて、１つまたは複数の物理プラグという形式で、システムバス（１４４８）にアクセスすることで、別のＣＰＵ、ＧＰＵなどによって拡張できる。周辺機器は直接的または周辺バス（１４４９）を介してコアのシステムバス（１４４８）に連結される。周辺バスのアーキテクチャはＰＣＩ、ＵＳＢなどを含む。
【０１８７】
ＣＰＵ（１４４１）、ＧＰＵ（１４４２）、ＦＰＧＡ（１４４３）及びアクセラレータ（１４４４）はいくつかの命令を実行でき、これらの命令を組み合わせると、前記コンピュータコードを構成する。該コンピュータコードはＲＯＭ（１４４５）またはＲＡＭ（１４４６）に記憶される。一時データもＲＡＭ（１４４６）に記憶され、永久データは、例えば内部大容量記憶装置（１４４７）に記憶される。キャッシュメモリによって記憶機器のうちのいずれかの記憶機器の快速記憶及び検索を実現でき、該キャッシュメモリは１つまたは複数のＣＰＵ（１４４１）、ＧＰＵ（１４４２）、大容量記憶装置（１４４７）、ＲＯＭ（１４４５）、ＲＡＭ（１４４６）などに密接に関連できる。  
【０１８８】
コンピュータ読み取り可能な媒体は、コンピュータが実現する各種操作を実行するためのコンピュータコードを有してもよい。媒体とコンピュータコードとは、本開示の内容の目的のために、専門に設計され及び構築された媒体とコンピュータコードであってもよいし、またはコンピュータソフトウェアの当業者にとって、公知且つ利用可能なタイプであってもよい。
【０１８９】
限定ではなく、例示として、（１つまたは複数の）プロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡ、アクセラレータなどを含む）が１つまたは複数の有形コンピュータ読み取り可能な媒体に含まれるソフトウェアを実行することで、アーキテクチャ（１４００）、特にコア（１４４０）を有するコンピュータシステムを機能させる。このようなコンピュータ読み取り可能な媒体は、以上に紹介された、ユーザがアクセスし得る大容量記憶装置に関する媒体、及び非一時的なコア（１４４０）を有する、コア内部大容量記憶装置（１４４７）またはＲＯＭ（１４４５）のようないくつかの記憶装置であってもよい。本出願が開示した各種実施例のソフトウェアはこのような機器に記憶されるとともに、コア（１４４０）によって前記ソフトウェアを実行する。特定の需要に応じて、コンピュータ読み取り可能な媒体には１つまたは複数の記憶機器またはチップが含まれても良い。ソフトウェアはコア（１４４０）、特にそのうちのプロセッサ（ＣＰＵ、ＧＰＵ、ＦＰＧＡなどを含む）に、本明細書に記載の、ＲＡＭ（１４４６）に記憶されるデータ構成を定義すること、及びソフトウェアによる定義されたプロセスに基づき該データ構成を補正することが含まれる特定プロセスまたは特定プロセスの特定部分を実行させる。また、或いは代わりとして、コンピュータシステムは論理的なハードワイヤードまたは回路（例えば、アクセラレータ（１４４４））として表現される方式で機能し、該論理的なハードワイヤードまたは回路は、ソフトウェアの代わりとして、またはソフトウェアとともに動作することで、本明細書に記載の特定プロセスまたは特定プロセスの特定部分を実行できる。適切な場合、関わるソフトウェアにはロジックが含まれ、逆に、関わるロジックにはソフトウェアが含まれてもよい。適切な場合、関わるコンピュータ読み取り可能な媒体には、実行するためのソフトウェアが記憶される回路（例えば、集積回路（ＩＣ））、実行するためのロジックを有する回路、または以上の両者が含まれても良い。本出願の開示にはハードウェアとソフトウェアとのいずれの適切な組み合わせが含まれる。
【０１９０】
本開示の内容には若干の例示性の実施例が記載されているが、本開示の内容の範囲内にある変更、置き換え及びいろんな置換等価物が存在する。従って、本明細書には明らかに記載されていないが、本開示の内容の原理を体現し本開示の内容の精神及び範囲内に属する多いシステム及び方法は、当業者にとって想到し得る。
【０１９１】
［付録Ａ］
ＪＥＭ：共同探索モデル
ＶＶＣ：バーサタイルビデオコーディング
ＢＭＳ：基準セット
ＭＶ：動きベクトル
ＨＥＶＣ：高効率ビデオ符号化
ＳＥＩ：補足エンハンスメント情報
ＶＵＩ：ビデオユーザビリティ情報
ＧＯＰ：グループオブピクチャ
ＴＵ：変換ユニット
ＰＵ：予測ユニット
ＣＴＵ：符号化ツリーユニット
ＣＴＢ：符号化ツリーブロック
ＰＢ：予測ブロック
ＨＲＤ：仮想参照復号器
ＳＮＲ：信号対雑音比
ＣＰＵ：中央処理ユニット
ＧＰＵ：グラフィック処理ユニット
ＣＲＴ：陰極線管
ＬＣＤ：液晶ディスプレイ
ＯＬＥＤ：有機発光ダイオード
ＣＤ：コンパクトディスク
ＤＶＤ：ディジタルビデオコンパクトディスク
ＲＯＭ：読み取り専用メモリ
ＲＡＭ：ランダムアクセスメモリ
ＡＳＩＣ：特定用途向け集積回路
ＰＬＤ：プログラマブルロジックデバイス
ＬＡＮ：ローカルエリアネットワーク
ＧＳＭ：グローバルモバイルシステムオブシステム
ＬＴＥ：ロングタームエボリューション
ＣＡＮＢｕｓ：コントローラエリアネットワークバス
ＵＳＢ：ユニバーサルシリアルバス
ＰＣＩ：周辺コンポーネント相互接続
ＦＰＧＡ：フィールドプログラマブルゲートアレイ
ＳＳＤ：ソリッドステートドライブ
ＩＣ：集積回路
ＣＵ：符号化ユニット
【図１】
2021524176.tif 000008
【図２】
2021524176.tif 000009
【図３】
2021524176.tif 000010
【図４】
2021524176.tif 000011
【図５】
2021524176.tif 000012
【図６】
2021524176.tif 000013
【図７】
2021524176.tif 000014
【図８】
2021524176.tif 000015
【図９Ａ】
2021524176.tif 000016
【図９Ｂ】
2021524176.tif 000017
【図１０】
2021524176.tif 000018
【図１１】
2021524176.tif 000019
【図１２Ａ】
2021524176.tif 000020
【図１２Ｂ】
2021524176.tif 000021
【図１３】
2021524176.tif 000022
【図１４】
2021524176.tif 000023
【国際調査報告】
2021524176.tif 000024