(57)【要約】  映像の現在のブロックの符号化表現と前記現在のブロックとの間で変換するために、前記現在の映像ブロックを含む映像領域に適用可能な許容される複数のＭＶＤ精度のセットから、前記変換に使用される動きベクトル差（ＭＶＤ）精度を判定することと、前記ＭＶＤ精度に基づいて前記変換を行うこととを含む映像処理の方法が開示される。【選択図】図２６Ａ
2022500909.tif 000002
【特許請求の範囲】
【請求項１】
現在の映像ブロックを含む映像領域に適用可能な許容される複数のＭＶＤ精度のセットから変換するために用いられる、前記現在の映像ブロックの符号化表現と前記現在のブロックとの間で前記変換するための動きベクトル差（ＭＶＤ）精度を判定することと、
前記ＭＶＤ精度に基づく前記変換を行うことと、を含む、
映像処理方法。
【請求項２】
前記許容される複数のＭＶＤ精度のセットは、前記映像データのピクチャ、スライス、またはブロックに依存する、
請求項１に記載の方法。
【請求項３】
許容される複数のＭＶＤ精度の前記セットは、前記現在のブロックの符号化された情報に依存する、
請求項１に記載の方法。
【請求項４】
許容される複数のＭＶＤ精度の前記セットは、予め規定される、
請求項１に記載の方法。
【請求項５】
許容される複数のＭＶＤ精度の前記セットは、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、映像パラメータセット（ＶＰＳ）、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、符号化ツリーユニットの群（ＣＴＵ）において信号通知される、
請求項１に記載の方法。
【請求項６】
前記現在のブロックのための許容されるＭＶ精度の数に基づいて、許容される複数のＭＶＤ精度の前記セットから、判定されたＭＶＤ精度を信号通知すること、をさらに含む、
請求項１に記載の方法。
【請求項７】
前記ＭＶＤ精度を前記判定することは、１つ以上の構文要素に基づいており、
前記現在のブロックは、アフィンモードを使用して符号化される、
請求項１に記載の方法。
【請求項８】
前記アフィンモードおよび非アフィンモードの両方に適用される許容される複数の前記セットからＭＶＤ精度の前記判定されたＭＶＤ精度を示すために、同じ構文要素が使用される、
請求項３または７に記載の方法。
【請求項９】
前記アフィンモードおよび前記非アフィンモードは、前記許容される複数のＭＶＤ精度の同じセットを使用する、
請求項３、７または８に記載の方法。
【請求項１０】
前記アフィン符号化ブロックは、非アフィンモードで使用されるものとは異なる、前記許容される複数のＭＶＤ精度のセットを使用する、
請求項３、７、または８に記載の方法。
【請求項１１】
前記非アフィンモードで使用されるものと同じ数の前記許容される複数のＭＶＤ精度を有する前記異なるセットは、前記非アフィンモードで使用される前記構文要素を前記アフィンモードで再使用する、
請求項１０に記載の方法。
【請求項１２】
前記異なるセットは、前記非アフィンモードで使用されるものとは異なる、少なくとも１つのＭＶＤ精度を有する、
請求項１０に記載の方法。
【請求項１３】
前記非アフィンモードおよび前記アフィンモードで使用される構文要素の意味論が異なり、前記構文要素が、異なるＭＶＤ精度に解釈される同じ復号値を有する、
請求項３、７または８に記載の方法。
【請求項１４】
前記アフィンモードで使用される、前記許容される複数のＭＶＤ精度の数は、非アフィンモードで使用されるものよりも少ない、請求項３、７、または８に記載の方法。
【請求項１５】
前記非アフィンモードのための前記構文要素値の１つ以上のサブセットは、前記アフィンモードにおいて有効でない、
請求項８に記載の方法。
【請求項１６】
非アフィンモードおよびアフィンモードで使用される構文要素の意味論が異なり、同じ値の構文要素が、異なるＭＶＤ精度に解釈される、
請求項８または１４に記載の方法。
【請求項１７】
前記アフィンモードで使用される、前記許容される複数のＭＶＤ精度の数は、非アフィンモードで使用されるものよりも多い、
請求項３または７に記載の方法。
【請求項１８】
前記非アフィンモードにおける１つ以上の構文要素は、前記アフィンモードのためのより多くの値を許容するように拡張される、
請求項１７に記載の方法。
【請求項１９】
前記アフィンモードの前記ＭＶＤ精度を処理するために、前記非アフィンモードの前記ＭＶＤ精度を処理するために使用されるものとは異なる追加の構文要素を使用する、
請求項７に記載の方法。
【請求項２０】
前記アフィンモードのための前記ＭＶＤ精度の指示が、選択的に信号通知される、
請求項７に記載の方法。
【請求項２１】
すべての制御点動きベクトル（ＣＰＭＶ）のＭＶＤがゼロでない場合、前記アフィンモードのための前記ＭＶＤ精度の指示が信号通知される、
請求項２０に記載の方法。
【請求項２２】
少なくとも１つのＣＰＭＶのためのＭＶＤがゼロでない場合、前記アフィンモードのための前記ＭＶＤ精度の指示が信号通知される、
請求項２０に記載の方法。
【請求項２３】
１つの選択されたＣＰＭＶのＭＶＤがゼロでない場合、前記アフィンモードのための前記ＭＶＤ精度の指示が信号通知される、
請求項２０に記載の方法。
【請求項２４】
第１のＣＰＭＶのＭＶＤがゼロでない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知される、
請求項２０に記載の方法。
【請求項２５】
１つ以上の所定の条件が満たされない場合、前記アフィンモードのための前記ＭＶＤ精度の指示が信号通知されない、
請求項２０に記載の方法。
【請求項２６】
前記アフィンモードまたは非アフィンモードのいずれかに関連付けられたＭＶＤ精度表示のための構文要素が、前記現在のブロックの符号化された情報に依存するコンテキストで符号化される、
請求項７に記載の方法。
【請求項２７】
前記アフィンモードまたは非アフィンモードのいずれかに関連付けられたＭＶＤ精度表示のための前記構文要素のコンテキスト選択は、前記現在のブロックがアフィンモードで符号化されているかどうかに依存する、
請求項７に記載の方法。
【請求項２８】
１つのコンテキストは、１つのアフィン符号化ブロックのためのＭＶＤ精度指示のための前記構文要素に使用され、
別のコンテキストは、１つの非アフィン符号化ブロックのために使用される、
請求項７に記載の方法。
【請求項２９】
近傍のブロックのサイズ、形状、若しくはＭＶＤ精度、時間層インデックス、または予測方向に基づいて、ＭＶＤ精度指標のためのコンテキストを判定する、
請求項７に記載の方法。
【請求項３０】
前記アフィンモードのために前記許容される複数のＭＶＤ精度の使用を有効にするかまたは無効にするかは、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、映像パラメータセット（ＶＰＳ）、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、または符号化ツリーユニット（ＣＴＵ）の群において信号通知される、
請求項７に記載の方法。
【請求項３１】
前記アフィンモードのために前記許容される複数のＭＶＤ精度の使用を許可するかまたは禁止するかは、前記１つ以上の構文要素に依存する、
請求項７に記載の方法。
【請求項３２】
前記許容される複数のＭＶＤ精度の使用を許可するかまたは禁止するかの情報は、前記アフィンモードが許可されると、信号通知され、前記アフィンモードが禁止されると、信号通知されない、
請求項７に記載の方法。
【請求項３３】
前記１つ以上の構文要素は、スライスレベル、ピクチャレベル、またはシーケンスレベルで含まれる、
請求項７〜３２のいずれかに記載の方法。
【請求項３４】
前記スライスがタイル群またはタイルに置き換えられる、
請求項５、３０、または３３に記載の方法。
【請求項３５】
ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダ、またはタイルグループヘッダにおいて、１に等しい構文要素は、前記符号化表現に準拠するための要件を指定し、前記要件は、複数のＭＶＤ精度の第１のセットが非アフィンモードで有効であるかどうかを示すための第１の構文要素と、複数のＭＶＤ精度の第２のセットが前記アフィンモードで有効であるかどうかを示すための第２の構文要素との両方がゼロであることを示すことを要求する、
請求項１〜３４のいずれかに記載の方法。
【請求項３６】
１つの構文要素が、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダ、タイルグループヘッダ、または他の映像データユニットにおいて信号通知される、
請求項１〜３４のいずれかに記載の方法。
【請求項３７】
１に等しい前記構文要素は、前記符号化表現に準拠するための要件を指定し、
前記要件は、前記アフィンモードに対して複数のＭＶＤ精度が有効にされているかどうかを示すための前記構文要素が０に等しいことを要求する、
請求項３６に記載の方法。
【請求項３８】
アフィン符号化ブロックに対して同じＭＶＤ精度で動きベクトル予測子を利用する、
請求項７から３７のいずれかに記載の方法。
【請求項３９】
前記現在のブロックの最終的動きベクトルを、アフィン符号化ブロックに対して同じＭＶＤ精度で利用する、
請求項７〜３７のいずれかに記載の方法。
【請求項４０】
前記変換を前記行うことは、前記現在のブロックから前記符号化表現を生成することを含む、
請求項１〜３９のいずれかに記載の方法。
【請求項４１】
前記変換を前記行うことは、前記符号化表現から前記現在のブロックを生成することを含む、
請求項１〜３９のいずれかに記載の方法。
【請求項４２】
処理装置と、命令を搭載した非一時的メモリと、を備え、
前記処理装置が実行すると、前記命令は、前記処理装置に、請求項１〜４１のいずれか１つ以上に記載の前記方法を実装させる、
映像システムにおける装置。
【請求項４３】
非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、
請求項１〜４１のいずれか１つ以上に記載の前記方法を実行するためのプログラムコードを含む、
コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
パリ条約に基づく適用可能な特許法および／または規則に基づいて、本願は、２０１８年９月１９日出願の国際特許出願ＰＣＴ／ＣＮ２０１８／１０６５１３号、２０１９年２月１日出願の国際特許出願ＰＣＴ／ＣＮ２０１９／０７４４３３号の優先権および利益を適時に主張することを目的とする。米国法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【０００２】
本特許明細書は、映像処理技術、デバイスおよびシステムに関する。
【背景技術】
【０００３】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像の受信および表示が可能な接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが期待される。
【発明の概要】
【０００４】
デジタル映像符号化に関し、具体的には、適応動きベクトル解像度（ＡＭＶＲ）を有するアフィンモードのための動きベクトル予測子の導出および信号通知に関するデバイス、システム、および方法を説明する。記載された方法は、既存の映像符号化規格（例えば、高効率映像符号化（ＨＥＶＣ））および将来の映像符号化規格またはビデオコーデックの両方に適用され得る。
【０００５】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、現在の映像ブロックを含む映像領域に適用可能な許容される複数のＭＶＤ精度のセットから、変換に使用される動きベクトル差（ＭＶＤ）精度を判定することと、ＭＶＤ精度に基づいて変換を行うことと、を含む。
【０００６】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、１つの映像の１つ以上の映像ブロックおよびこの映像の符号化表現を含む映像領域に対して、この映像領域におけるこの１つ以上の映像ブロックを変換するための複数の動きベクトル差（ＭＶＤ）精度の使用を判定することと、この判定に基づいてこの変換を行うこととを含む。
【０００７】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の１つ以上の映像ブロックおよび映像の符号化表現を含む映像領域に対して、現在の映像ブロックと映像の符号化表現との間で変換するために、現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理をどの適用するか否かを判定することと、この判定に基づいてこの変換を行うことと、を含む。
【０００８】
別の代表的な態様では、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の１つ以上の映像ブロックおよび映像の符号化表現を含む映像領域に対して、現在の映像ブロックと映像の符号化表現との間で変換するために、現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理をどのように適用するかを判定することと、この判定に基づいてこの変換を行うこと、とを含む。
【０００９】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、アフィン符号化モードを用いる現在の符号化ユニットの親符号化ユニットの符号化モードまたはアフィン符号化モードのひずみ率（ＲＤ）コストに基づいて、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために適応動きベクトル解像度（ＡＭＶＲ）の使用を判定することと、判定した結果に従って変換を行うことと、を含む。
【００１０】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のブロックの符号化表現と、高度動きベクトル予測（ＡＭＶＰ）符号化モードを使用する現在のブロックとの間で変換するための適応動きベクトル解像度（ＡＭＶＲ）の使用量を、ＡＭＶＰ符号化モードのひずみ率（ＲＤ）コストに基づいて判定することと、判定の結果に従って変換を行うことと、を含む。
【００１１】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、４パラメータアフィンモデルまたは６パラメータアフィンモデルを使用してＭＶ（動きベクトル）精度のセットを生成することと、ＭＶ精度のセットに基づいてこの変換を行うことと、を含む。
【００１２】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、アフィン符号化モードを使用する現在のブロックの親ブロックの符号化モードに基づいて、復号化時の動きベクトル解像度を改善するために適応動きベクトル解像度（ＡＭＶＲ）ツールを使用して変換を行うかどうかを判定することと、判定の結果に従って変換を行うことと、を含む。
【００１３】
１つの代表的な態様において、開示される技術は、映像処理の方法を提供するために使用してもよい。この方法は、アフィン符号化モードを使用して前に符号化された前のブロックのＭＶ精度の使用に基づいて、現在のブロックの符号化表現と現在のブロックとの間で変換するためにアフィン符号化モードを使用する、現在のブロックのＭＶ精度のひずみ率（ＲＤ）計算の終了を判定することと、この判定の結果に従って、変換を行うことと、を含む。
【００１４】
別の代表的な態様において、上記方法は、処理装置が実行可能なコードの形式で実施され、コンピュータ可読プログラム媒体に記憶される。
【００１５】
さらに別の代表的な態様では、上述した方法を行うように構成された、または行うように動作可能なデバイスが開示される。このデバイスは、この方法を実装するようにプログラムされた処理装置を含んでもよい。
【００１６】
さらに別の代表的な態様では、ビデオデコーダ装置は、本明細書で説明されるような方法を実装し得る。
【００１７】
開示される技術の上記および他の態様および特徴は、図面、説明および特許請求の範囲でより詳細に説明される。
【図面の簡単な説明】
【００１８】
【図１】マージ候補リストを構築する例を示す。
【図２】空間的候補の位置の一例を示す。
【図３】空間的マージ候補の冗長性チェックの対象となる候補対の例を示す。
【図４Ａ】現在のブロックのサイズおよび形状に基づく第２の予測ユニット（ＰＵ）の位置の例を示す。
【図４Ｂ】現在のブロックのサイズおよび形状に基づく第２の予測ユニット（ＰＵ）の位置の例を示す。
【図５】時間的マージ候補のための動きベクトルのスケーリングの例を示す。
【図６】時間マージ候補の候補位置の一例を示す図である。
【図７】結合双予測マージ候補を生成する例を示す。
【図８】動きベクトル予測候補の構築例を示す。
【図９】空間的動きベクトル候補のための動きベクトルのスケーリングの例を示す。
【図１０】符号化ユニット（ＣＵ）のために代替の時間的動きベクトル予測（ＡＴＭＶＰ）アルゴリズムを使用する動き予測の例を示す。
【図１１】空間的−時間的動きベクトル予測（ＳＴＭＶＰ）アルゴリズムで使用されるサブブロックおよび近傍のブロックを有する符号化ユニット（ＣＵ）の例を示す。
【図１２】異なるＭＶ精度で符号化するための例示的なフローチャートを示す。
【図１３Ａ】重複ブロック動き補償（ＯＢＭＣ）アルゴリズムを使用する場合のサブブロックの例示的なスナップショットを示す。
【図１３Ｂ】重複ブロック動き補償（ＯＢＭＣ）アルゴリズムを使用する場合のサブブロックの例示的なスナップショットを示す。
【図１４】局所照明補償（ＬＩＣ）アルゴリズムのパラメータを導出するために使用される近傍のサンプルの例を示す。
【図１５】簡略化したアフィン動きモデルの一例を示す。
【図１６】サブブロックごとのアフィン動きベクトルフィールド（ＭＶＦ）の例を示す。
【図１７】ＡＦ＿ＩＮＴＥＲアフィン動きモードにおける動きベクトル予測（ＭＶＰ）の例を示す。
【図１８Ａ】それぞれ４パラメータおよび６パラメータアフィンモードの例を示す。
【図１８Ｂ】それぞれ４パラメータおよび６パラメータアフィンモードの例を示す。
【図１９Ａ】ＡＦ＿ＭＥＲＧＥアフィン動きモードの候補の例を示す。
【図１９Ｂ】ＡＦ＿ＭＥＲＧＥアフィン動きモードの候補の例を示す。
【図２０】フレームレートアップ変換（ＦＲＵＣ）アルゴリズムに基づく特殊なマージモードである、パターンマッチング動きベクトル導出（ＰＭＭＶＤ）モードにおけるバイラテラルマッチングの例を示す。
【図２１】ＦＲＵＣアルゴリズムにおけるテンプレートマッチングの一例を示す。
【図２２】ＦＲＵＣアルゴリズムにおけるユニラテラル動き推定の例を示す。
【図２３】双方向オプティカルフロー（ＢＩＯ）アルゴリズムで使用されるオプティカルフローの軌跡の例を示す。
【図２４Ａ】ブロック拡張なしの双方向オプティカルフロー（ＢＩＯ）アルゴリズムを使用した例示的なスナップショットを示す。
【図２４Ｂ】ブロック拡張なしの双方向オプティカルフロー（ＢＩＯ）アルゴリズムを使用した例示的なスナップショットを示す。
【図２５】バイラテラルテンプレートマッチングに基づくデコーダ側動きベクトル改良（ＤＭＶＲ）アルゴリズムの一例を示す。
【図２６Ａ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｂ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｃ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｄ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｅ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｆ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｇ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｈ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２６Ｉ】開示される技術のいくつかの実装形態に基づく、映像処理のための例示的な方法のフローチャートを示す。
【図２７】本明細書に記載されるビジュアルメディアの復号化またはビジュアルメディアの符号化技術を実装するためのハードウェアプラットフォームの一例を示すブロック図である。
【図２８】対称モードの例を示す。
【図２９】本明細書に記載される映像処理システムを実装するためのハードウェアプラットフォームの一例を示す別のブロック図である。
【発明を実施するための形態】
【００１９】
より高い解像度の映像の需要が増大しているため、近代技術において、映像符号化法および技術は、遍在している。ビデオコーデックは、一般的に、デジタル映像を圧縮または展開する電子回路またはソフトウェアを含み、より高い符号化効率を提供するように絶えず改良されている。ビデオコーデックは、非圧縮映像を圧縮フォーマットに変換する、またはその逆である。映像の品質、映像を表現するために使用されるデータの数（ビットレートで決まる）、符号化および復号化アルゴリズムの複雑性、データの損失およびエラーに対する敏感さ、編集のしやすさ、ランダムアクセス、およびエンドツーエンドの遅延（待ち時間）の間には複雑な関係がある。この圧縮フォーマットは、通常、標準的な映像圧縮仕様、例えば、高効率映像符号化（ＨＥＶＣ）規格（Ｈ．２６５またはＭＰＥＧ−Ｈ  Ｐａｒｔ２としても知られている）、完成させるべき汎用映像符号化規格、または他の現在のおよび／または将来の映像符号化基準に準拠する。
【００２０】
開示される技術の実施形態は、圧縮性能を向上させるために、既存の映像符号化規格（例えば、ＨＥＶＣ、Ｈ．２６５）および将来の規格に適用されてもよい。本明細書では、説明の可読性を向上させるために章の見出しを使用しており、説明または実施形態（および／または実装形態）をそれぞれの章のみに限定するものではない。
【００２１】
１．  ＨＥＶＣ／Ｈ．２６５におけるインター予測の例
映像符号化規格は、長年にわたって大幅に改善され、現在、部分的には、高い符号化効率を実現し、より高い解像度をサポートする。ＨＥＶＣおよびＨ．２６５などの最近の規格は、時間予測プラス変換符号化が利用されるハイブリッド映像符号化構造に基づく。
【００２２】
１．１  予測モードの例
各インター予測されたＰＵ（予測ユニット）は、１つまたは２つの参照ピクチャリストのための動きパラメータを有する。いくつかの実施形態において、動きパラメータは、動きベクトルおよび参照ピクチャインデックスを含む。他の実施形態において、２つの参照ピクチャリストのうちの１つの参照ピクチャリストの使用は、ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃを用いて信号通知されてもよい。さらに他の実施形態において、動きベクトルは、予測子に対するデルタ（ｄｅｌｔａ）として明確にコーディングされてもよい。
【００２３】
１つの符号化ユニット（ＣＵ）がスキップモードで符号化される場合、１つのＰＵがこのＣＵに関連付けられ、有意な残差係数がなく、コーディング動きベクトルデルタも参照ピクチャインデックスもない。マージモードを指定し、これにより、現在のＰＵのための動きパラメータを、空間的および時間的候補を含む近傍のＰＵから取得する。マージモードは、スキップモードのためだけでなく、任意のインター予測されたＰＵに適用することができる。マージモードの代替としては、動きパラメータの明確な送信があり、ＰＵごとに、各参照ピクチャリストおよび参照ピクチャリストの使用に対応する参照ピクチャインデックスである、動きベクトルを明確に信号通知する。
【００２４】
２つの参照ピクチャリストのうちの１つを使用することを信号通知が示す場合、１つのサンプルのブロックからＰＵを生成する。これを「単一予測」と呼ぶ。ＰスライスおよびＢスライスの両方に対して単一予測が利用可能である。
【００２５】
両方の参照ピクチャリストを使用することを信号通知が示す場合、２つのサンプルのブロックからＰＵを生成する。これを「双予測」と呼ぶ。Ｂスライスのみに双予測が利用可能である。
【００２６】
１．１．１  マージモードの候補を構築する実施形態
マージモードを使用してＰＵを予測する場合、ビットストリームからマージ候補リストにおけるエントリを指すインデックスを構文解析し、これを使用して動き情報を検索する。このリストの構成は、以下のステップのシーケンスに基づいてまとめることができる。
【００２７】
ステップ１：初期候補導出
ステップ１．１：空間的候補導出
ステップ１．２：空間的候補の冗長性チェック
ステップ１．３：時間的候補導出
ステップ２：追加候補挿入
ステップ２．１：双予測候補の作成
ステップ２．２：動きゼロ候補の挿入
【００２８】
図１は、上記ステップのシーケンスに基づいて、マージ候補リストを構築する例を示す。空間的マージ候補導出のために、５つの異なる位置にある候補の中から最大４つのマージ候補を選択する。時間的マージ候補導出のために、２つの候補の中から最大１つのマージ候補を選択する。デコーダ側ではＰＵごとに一定数の候補を想定しているので、候補数がスライスヘッダで信号通知されるマージ候補（ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ）の最大数に達しない場合、追加の候補を生成する。候補の数は一定であるので、短縮された単項２値化（ＴＵ）を使用して最良マージ候補のインデックスをエンコードする。ＣＵのサイズが８に等しい場合、現在のＣＵのすべてのＰＵは、２Ｎ×２Ｎ予測ユニットのマージ候補リストと同じ１つのマージ候補リストを共有する。
【００２９】
１．１．２  空間的マージ候補の構築
空間的マージ候補の導出において、図２に示す位置にある候補の中から、最大４つのマージ候補を選択する。導出の順序はＡ１、Ｂ１、Ｂ０、Ａ０、Ｂ２である。位置Ａ１、Ｂ１、Ｂ０、Ａ０のいずれかのＰＵが利用可能でない場合（例えば、別のスライスまたはタイルに属しているため）、またはイントラコーディングされた場合にのみ、位置Ｂ２が考慮される。位置Ａ１の候補を加えた後、残りの候補を加えると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。
【００３０】
計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。その代わりに、図３の矢印で結ばれたペアのみを考慮し、冗長性チェックに使用された対応する候補が同じ動き情報を持っていない場合に、候補をリストに追加するのみである。重複した動き情報の別のソースは、２Ｎ×２Ｎとは異なる分割に関連付けられた「第２のＰＵ」である。一例として、図４Ａおよび図４Ｂは、それぞれ、Ｎ×２Ｎおよび２Ｎ×Ｎの場合の第２のＰＵを描いている。現在のＰＵをＮ×２Ｎに分割する場合、リスト構築に位置Ａ１の候補は考慮されない。いくつかの実施形態において、この候補を加えることにより、２つの予測ユニットが同じ動き情報を有するようになり、１つの符号化ユニットに１つのＰＵのみを有することは冗長である。同様に、現在のＰＵを２Ｎ×Ｎに分割する場合、位置Ｂ１は考慮されない。
【００３１】
１．１．３  時間的マージ候補の構築
このステップにおいて、１つの候補のみがリストに追加される。具体的には、この時間的マージ候補の導出において、所与の参照ピクチャリストにおける現在のピクチャとの間に最小のピクチャオーダカウント（ＰＯＣ）差を有するピクチャに属する同一位置ＰＵに基づいて、スケーリングされた動きベクトルを導出する。スライスヘッダにおいて、同一位置ＰＵの導出に用いられる参照ピクチャリストが明確に信号通知される。
【００３２】
図５は、ＰＯＣ距離ｔｂ、ｔｄを用いて、同一位置ＰＵの動きベクトルからスケーリングされた、現在のピクチャの参照ピクチャと現在のピクチャとの間のＰＯＣ差をｔｂとし、同一位置ピクチャの参照ピクチャと同一位置ピクチャとの間のＰＯＣ差をｔｄとする、時間的マージ候補のためのスケーリングされた動きベクトル（点線）の導出の例を示す。時間的マージ候補の参照ピクチャインデックスをゼロに等しく設定する。Ｂスライスの場合、２つの動きベクトル、即ち、１つは参照ピクチャリスト０のためのもの、もう１つは参照ピクチャリスト１のためのものを取得し、これらを組み合わせることによって、双予測マージ候補を形成する。
【００３３】
参照フレームに属する同一位置ＰＵ（Ｙ）において、図６に示すように、候補Ｃ０と候補Ｃ１との間で時間的候補の位置を選択する。位置Ｃ０のＰＵが利用可能でない場合、イントラコーディングされている場合、または現在のＣＴＵの外側にある場合、位置Ｃ１が使用される。そうでない場合、位置Ｃ０が時間的マージ候補の導出に使用される。
【００３４】
１．１．４  追加タイプのマージ候補の構築
時空間的マージ候補の他に、２つの追加のタイプのマージ候補、すなわち、結合双予測マージ候補およびゼロマージ候補がある。時空間的マージ候補を利用して、結合双予測マージ候補を生成する。結合双予測マージ候補は、Ｂスライスのみに使用される。最初の候補の第１の参照ピクチャリスト動きパラメータと別の候補の第２の参照ピクチャリスト動きパラメータとを組み合わせることで、結合双予測候補を生成する。これら２つのタプルが異なる動き仮説を提供する場合、これらのタプルは、新しい双予測候補を形成する。
【００３５】
図７は、この処理の例を示しており、ｍｖＬ０、ｒｅｆＩｄｘＬ０、またはｍｖＬ１、ｒｅｆＩｄｘＬ１を有するオリジナルリスト（７１０、左側）における、２つの候補を使用して、最終リスト（７２０、右側）に加えられる結合双予測マージ候補を生成する。
【００３６】
動きゼロ候補を挿入し、マージ候補リストにおける残りのエントリを埋めることにより、ＭａｘＮｕｍＭｅｒｇｅＣａｎｄ容量にヒットする。これらの候補は、空間的変位がゼロであり、新しいゼロ動き候補をリストに加える度にゼロから始まり増加する参照ピクチャインデックスを有する。これらの候補が使用する参照フレームの数は、それぞれ、一方向予測の場合は１つ、双方向予測の場合は２つである。いくつかの実施形態において、これらの候補に対して冗長性チェックは行われない。
【００３７】
１．１．５  並列処理のための動き推定領域の例
符号化処理を高速化するために、動き推定を並列に行うことができ、それによって、所与の領域内のすべての予測ユニットの動きベクトルを同時に導出する。１つの予測ユニットは、その関連する動き推定が完了するまで、隣接するＰＵから動きパラメータを導出することができないので、空間的近傍からのマージ候補の導出は、並列処理に干渉する可能性がある。符号化効率と処理待ち時間との間のトレードオフを緩和するために、動き推定領域（ＭＥＲ）を規定することができる。「ｌｏｇ２＿ｐａｒａｌｌｅｌ＿ｍｅｒｇｅ＿ｌｅｖｅｌ＿ｍｉｎｕｓ２」構文要素を使用して、ピクチャパラメータセット（ＰＰＳ）においてＭＥＲのサイズを信号通知してもよい。１つのＭＥＲを規定するとき、同じ領域にあるマージ候補は使用不可としてマークされ、それゆえにリスト構築においては考慮されない。
【００３８】
１．２  高度動きベクトル予測（ＡＭＶＰ）の実施形態
ＡＭＶＰは、動きパラメータの明確な伝送に使用される、動きベクトルの近傍のＰＵとの空間的−時間的相関を利用する。まず、左側、上側の時間的に近傍のＰＵ位置の可用性をチェックし、冗長な候補を取り除き、ゼロベクトルを加えることで、候補リストの長さを一定にすることで、動きベクトル候補リストを構築する。次いで、エンコーダは、候補リストから最良の予測子を選択し、選択された候補を示す対応するインデックスを送信することができる。マージインデックスの信号通知と同様に、最良の動きベクトル候補のインデックスは、短縮された単項を使用してエンコードされる。この場合に符号化対象の最大値は２である（図８参照）。以下の章では、動きベクトル予測候補の導出処理の詳細を説明する。
【００３９】
１．２．１  動きベクトル予測候補の構築例
図８は、動きベクトル予測候補の導出処理をまとめたものであり、ｒｅｆｉｄｘを入力として、各参照ピクチャリストに対して実装されてもよい。
【００４０】
動きベクトル予測において、空間的動きベクトル候補と時間的動きベクトル候補という２つのタイプの動きベクトル候補が考えられる。空間的動きベクトル候補を導出するために、先に図２に示したように、５つの異なる位置にある各ＰＵの動きベクトルに基づいて、最終的には２つの動きベクトル候補を導出する。
【００４１】
時間的動きベクトル候補を導出するために、２つの異なる同一位置に配置された位置に基づいて導出された２つの候補から１つの動きベクトル候補を選択する。第１の時空間的候補リストを作成した後、リストにおける重複した動きベクトル候補を除去する。候補の数が２よりも多い場合、関連づけられた参照ピクチャリストにおける参照ピクチャインデックスが１よりも大きい動きベクトル候補をリストから削除する。空間的―時間的動きベクトル候補の数が２未満である場合は、追加のゼロ動きベクトル候補をリストに加える。
【００４２】
１．２．２  空間的動きベクトル候補の構築
空間的動きベクトル候補の導出において、前述の図２に示したような位置にあるＰＵから導出された５つの候補のうち、最大２つの候補を考慮され、それらの位置は動きマージの位置と同じである。現在のＰＵの左側のための導出の順序は、Ａ０、Ａ１、スケーリングされたＡ０、スケーリングされたＡ１として規定される。現在のＰＵの上側のための導出の順序は、Ｂ０、Ｂ１、Ｂ２、スケーリングされたＢ０、スケーリングされたＢ１、スケーリングされたＢ２として規定される。そのため、辺ごとに、動きベクトル候補として使用できる場合は４つ、すなわち空間的スケーリングを使用する必要がない２つの場合と、空間的スケーリングを使用する２つの場合とがある。４つの異なる場合をまとめると、以下のようになる。
【００４３】
−−空間的スケーリングなし
（１）同じ参照ピクチャリスト、および同じ参照ピクチャインデックス（同じＰＯＣ）
（２）異なる参照ピクチャリストであるが、同じ参照ピクチャインデックス（同じＰＯＣ）
−−空間的スケーリング
（３）同じ参照ピクチャリストであるが、異なる参照ピクチャインデックス（異なるＰＯＣ）
（４）異なる参照ピクチャリスト、および異なる参照ピクチャインデックス（異なるＰＯＣ）
【００４４】
まず、非空間的スケーリングの場合をチェックし、次に、空間的スケーリングを可能にする場合をチェックする。参照ピクチャリストにかかわらず、ＰＯＣが近傍のＰＵの参照ピクチャと現在のＰＵの参照ピクチャとで異なる場合、空間的スケーリングを考慮する。左側候補のすべてのＰＵが利用可能でないか、またはイントラコーディングされている場合、上側の動きベクトルのスケーリングは、左側および上側ＭＶ候補の並列導出に役立つ。そうでない場合、上側の動きベクトルに対して空間的スケーリングは許可されない。
【００４５】
図９の例に示すように、空間的スケーリングの場合は、時間的スケーリングの場合と同様に、近傍のＰＵの動きベクトルがスケーリングされる。１つの違いは、現在のＰＵの参照ピクチャリストおよびインデックスを入力として与え、実際のスケーリング処理は時間的スケーリングと同じであることである。
【００４６】
１．２．３  時間的動きベクトル候補の構築
参照ピクチャインデックスを導出すること以外は、時間的マージ候補を導出するためのすべての処理は、空間的動きベクトル候補を導出するための処理と同じである（図６の例に示す）。いくつかの実施形態において、参照ピクチャインデックスはデコーダに信号通知される。
【００４７】
２．  共同探索モデル（Ｊｏｉｎｔ  Ｅｘｐｌｏｒａｔｉｏｎ  Ｍｏｄｅｌ：ＪＥＭ）におけるインター予測方法の例
いくつかの実施形態において、将来の映像符号化技術は、共同探索モデル（ＪＥＭ）として知られる参照ソフトウェアを使用して探索される。ＪＥＭでは、サブブロックベースの予測は、アフィン予測、代替時間的動きベクトル予測（ＡＴＭＶＰ）、空間的−時間的動きベクトル予測（ＳＴＭＶＰ）、双方向オプティカルフロー（ＢＩＯ）、フレームレートアップ変換（ＦＲＵＣ）、ローカル適応動きベクトル解像度（ＬＡＭＶＲ）、重複ブロック動き補償（ＯＢＭＣ）、ローカル照明補償（ＬＩＣ）、デコーダ側動きベクトル改良（ＤＭＶＲ）などの、いくつかの符号化ツールで適用されている。
【００４８】
２．１  サブＣＵに基づく動きベクトル予測の例
４分木に２分木を加えたＪＥＭ（ＱＴＢＴ）において、各ＣＵは、各予測方向に対して最大１つの動きパラメータのセットを有することができる。いくつかの実施形態において、エンコーダにおいて、ラージＣＵをサブＣＵに分割し、ラージＣＵのすべてのサブＣＵの動き情報を導出することにより、２つのサブＣＵレベルの動きベクトル予測方法を考慮する。代替的な時間的動きベクトル予測（ＡＴＭＶＰ）方法により、各ＣＵが、配列された参照ピクチャにおける現在のＣＵよりも小さい複数のブロックから複数の動き情報のセットをフェッチすることが可能となる。空間的−時間的動きベクトル予測（ＳＴＭＶＰ）法において、時間的動きベクトル予測子および空間的近傍動きベクトルを使用して、サブＣＵの動きベクトルを再帰的に導出する。いくつかの実施形態において、サブＣＵ動き予測のためにより正確な動きフィールドを維持するために、参照フレームの動き圧縮は無効にされてもよい。
【００４９】
２．１．１  代替の時間的動きベクトル予測（ＡＴＭＶＰ）の例
ＡＴＭＶＰ法において、時間的動きベクトル予測（ＴＭＶＰ）法は、現在のＣＵより小さいブロックから複数のセットの動き情報（動きベクトルおよび参照インデックスを含む）を取り出すことで修正される。
【００５０】
図１０は、ＣＵ１０００におけるＡＴＭＶＰ動き予測処理の一例を示す。ＡＴＭＶＰ法は、ＣＵ１０００におけるサブＣＵ１００１の動きベクトルを２つのステップで予測する。第１のステップでは、参照ピクチャ１０５０における対応するブロック１０５１を時間的ベクトルで特定する。参照ピクチャ１０５０は、モーションソースピクチャとも呼ばれる。第２のステップでは、現在のＣＵ１０００をサブＣＵ１００１に分割し、各サブＣＵに対応するブロックから、各サブＣＵの動きベクトルおよび参照インデックスを得る。
【００５１】
第１のステップにおいて、現在のＣＵ１０００の空間的に近傍のブロックの動き情報によって、参照ピクチャ１０５０および対応するブロックを判定する。近傍のブロックの繰り返し走査処理を回避するために、現在のＣＵ１０００のマージ候補リストにおける第１のマージ候補を用いる。第１の利用可能な動きベクトルおよびその関連する参照インデックスを、時間的ベクトルおよびモーションソースピクチャのインデックスに設定する。このように、ＴＭＶＰに比べて、対応するブロックをより正確に特定することができ、対応するブロック（配列されたブロックと呼ばれることがある）は、常に現在のＣＵに対して右下または中心位置にある。
【００５２】
第２のステップにおいて、現在のＣＵの座標に時間的ベクトルを加えることで、モーションソースピクチャ１０５０における時間的ベクトルによって、サブＣＵ１０５１の対応するブロックを特定する。サブＣＵごとに、その対応するブロックの動き情報（例えば、中心サンプルを覆う最小の動きグリッド）を使用して、サブＣＵの動き情報を導出する。対応するＮ×Ｎブロックの動き情報を特定した後、ＨＥＶＣのＴＭＶＰと同様に、現在のサブＣＵの動きベクトルおよび参照インデックスに変換され、動きスケーリングや他の手順が適用される。例えば、デコーダは、低遅延条件（例えば、現在のピクチャのすべての参照ピクチャのＰＯＣが現在のピクチャのＰＯＣよりも小さい）が満たされているかどうかをチェックし、場合によっては、動きベクトルＭＶｘ（例えば、参照ピクチャリストＸに対応する動きベクトル）を使用して、各サブＣＵの動きベクトルＭＶｙ（例えば、Ｘが０または１に等しく、Ｙが１−Ｘに等しい）を予測する。
【００５３】
２．１．２  空間的−時間的動きベクトル予測（ＳＴＭＶＰ）の例
ＳＴＭＶＰ法において、サブＣＵの動きベクトルは、ラスタスキャンの順に沿って再帰的に導出される。図１１は、４つのサブブロックおよび近傍のブロックを有する１つのＣＵの例を示す。４つの４×４個のサブＣＵ、Ａ（１１０１）、Ｂ（１１０２）、Ｃ（１１０３）、およびＤ（１１０４）を含む８×８個のＣＵ１１００を考える。現在のフレームにおける近傍の４×４ブロックを、ａ（１１１１）、ｂ（１１１２）、ｃ（１１１３）、ｄ（１１１４）とラベルする。
【００５４】
サブＣＵ  Ａの動きの導出は、その２つの空間的近傍を特定することで始まる。第１の近傍は、サブＣＵ  Ａ１１０１の上のＮ×Ｎブロックである（ブロックｃ１１１３）。このブロックｃ（１１１３）が利用可能でない、またはイントラ符号化されている場合、サブＣＵ  Ａ（１１０１）の上の他のＮ×Ｎ個のブロックをチェックする（ブロックｃ１１１３から始まって左から右へ）。第２の近傍は、サブＣＵ  Ａ１１０１の左側のブロックである（ブロックｂ１１１２）。ブロックｂ（１１１２）が利用可能でない、またはイントラ符号化されている場合、サブＣＵ  Ａ１１０１の左側の他のブロックをチェックする（ブロックｂ１１１２から始まり、上から下へ）。各リストの近傍のブロックから得られた動き情報を、所与のリストの第１の参照フレームにスケーリングする。次に、ＨＥＶＣに規定されているＴＭＶＰ導出と同じ手順に従って、サブブロックＡ１１０１の時間的動きベクトル予測子（ＴＭＶＰ）を導出する。ブロックＤ１１０４における配列されたブロックの動き情報がフェッチされ、それに応じてスケーリングされる。最後に、動き情報を検索し、スケーリングした後、参照リストごとにすべての利用可能な動きベクトルを別々に平均する。この平均化された動きベクトルを現在のサブＣＵの動きベクトルとする。
【００５５】
２．１．３  サブＣＵの動き予測モード信号通知の例
いくつかの実施形態において、サブＣＵモードは追加のマージ候補として有効とされ、モードを信号通知するために追加の構文要素は必要とされない。ＡＴＭＶＰモードおよびＳＴＭＶＰモードを表すように、各ＣＵのマージ候補リストに２つの追加のマージ候補を加える。他の実施形態において、シーケンスパラメータセットがＡＴＭＶＰおよびＳＴＭＶＰが有効であることを示す場合、７個までのマージ候補を使用してもよい。追加のマージ候補のエンコーディングロジックは、ＨＭにおけるマージ候補の場合と同じであり、つまり、ＰまたはＢスライスにおける各ＣＵについて、２つの追加のマージ候補に対して２回以上のＲＤチェックが必要となるかもしれない。いくつかの実施形態において、例えばＪＥＭのように、マージインデックスのすべての２値（ｂｉｎ）はコンテキストベースの適応型２進算術符号化（ＣＡＢＡＣ）によりコンテキスト符号化される。他の実施形態、例えばＨＥＶＣにおいては、第１の２値のみがコンテキストコーディングされ、残りの２値はコンテキストバイパスコーディングされる。
【００５６】
２．２  適応動きベクトル差解像度の例
いくつかの実施形態において、ｕｓｅ＿ｉｎｔｅｇｅｒ＿ＭＶ＿ｆｌａｇがスライスヘッダにおいて０であるとき、４分の１輝度サンプルの単位で動きベクトルの差（ＭＶＤ）（動きベクトルとＰＵの予測動きベクトルとの差）を信号通知される。ＪＥＭにおいて、ローカル適応動きベクトル解像度（ＬＡＭＶＲ）が導入される。ＪＥＭにおいて、ＭＶＤは、１／４輝度サンプル、整数輝度サンプルまたは４つの輝度サンプルの単位でコーディングできる。ＭＶＤ分解能は符号化ユニット（ＣＵ）レベルで制御され、ＭＶＤ解像度フラグは、少なくとも１つのノンゼロＭＶＤモジュールを有する各ＣＵに対して条件付きで信号通知される。
【００５７】
少なくとも１つのノンゼロＭＶＤモジュールを有するＣＵの場合、１／４輝度サンプルＭＶ精度がＣＵにおいて使用されるかどうかを示すために、第１のフラグが信号通知される。第１のフラグ（１に等しい）が、１／４輝度サンプルＭＶ精度が使用されていないことを示す場合、整数輝度サンプルＭＶ精度が使用されるかまたは４輝度サンプルＭＶ精度が使用されるかを示すために、別のフラグが信号通知される。
【００５８】
ＣＵの第１のＭＶＤ解像度フラグがゼロであるか、またはＣＵに対してコーディングされていない（つまり、ＣＵにおけるすべてのＭＶＤがゼロである）場合、ＣＵに対して１／４輝度サンプルＭＶ解像度が使用される。ＣＵが整数輝度サンプルＭＶ精度または４輝度サンプルＭＶ精度を使用する場合、ＣＵのＡＭＶＰ候補リストにおけるＭＶＰを対応する精度に丸める。
【００５９】
エンコーダにおいて、ＣＵレベルのＲＤチェックは、どのＭＶＤ解像度をＣＵに用いるかを判定するために用いられる。すなわち、１つのＭＶＤ解像度ごとに３回、ＣＵレベルのＲＤチェックを行う。エンコーダの速度を速めるために、ＪＥＭにおいては、以下の符号化方式が適用される。
【００６０】
−−通常の１／４輝度サンプルＭＶＤ解像度を有するＣＵのＲＤチェック中、現在のＣＵの動き情報（整数輝度サンプル精度）が記憶される。整数輝度サンプルおよび４輝度サンプルのＭＶＤ解像度を有する同じＣＵのＲＤチェック中に、記憶された動き情報（丸められた後）は、更なる小範囲動きベクトル改良の開始点として使用されるので、時間がかかる動き推定処理が３回重複しない。
【００６１】
−−４輝度サンプルＭＶＤ解像度を有するＣＵのＲＤチェックを条件付きで呼び出す。ＣＵの場合、整数輝度サンプルＭＶＤ解像度のＲＤコストが１／４輝度サンプルＭＶＤ解像度のそれよりもはるかに大きい場合、ＣＵのための４輝度サンプルＭＶＤ解像度のＲＤチェックは省略される。
【００６２】
符号化処理を図１２に示す。まず、１／４画素ＭＶをテストし、ＲＤコストを計算し、ＲＤＣｏｓｔ０と表し、次に、整数ＭＶをテストし、ＲＤコストをＲＤＣｏｓｔ１と表す。ＲＤＣｏｓｔ１＜ｔｈ＊ＲＤＣｏｓｔ０（ここで、ｔｈは正値の閾値である）である場合、４画素ＭＶをテストし、そうでない場合、４画素ＭＶをスキップする。基本的に、整数または４画素ＭＶをチェックするときには、１／４画素ＭＶに対して動き情報およびＲＤコスト等が既知であり、これを再利用して整数または４画素ＭＶの符号化処理を高速化することができる。
【００６３】
２．３  動きベクトルの記憶精度を向上させる例
ＨＥＶＣにおいて、動きベクトルの精度は、１／４画素（４：２：０映像の場合、１／４輝度サンプルおよび１／８クロマサンプル）である。ＪＥＭにおいて、内部の動きベクトルの記憶およびマージ候補の精度は、１／１６画素にまで向上する。スキップ／マージモードで符号化されたＣＵの動き補償インター予測には、より高い動きベクトル精度（１／１６画素）が用いられる。通常のＡＭＶＰモードで符号化されたＣＵの場合、整数画素または１／４画素の動きのいずれかが使用される。
【００６４】
ＨＥＶＣ動き補償補間フィルタと同じフィルタ長と正規化係数を有するＳＨＶＣアップサンプリング補間フィルタを、追加の分数画素位置の動き補償補間フィルタとして使用する。ＪＥＭにおいて、クロマ成分の動きベクトルの精度は１／３２サンプルであり、近傍の２つの１／１６画素の端数位置のフィルタの平均を用いて、１／３２画素の端数位置の追加の補間フィルタを導出する。
【００６５】
２．４  重複ブロック動き補償（ＯＢＭＣ）の例
ＪＥＭにおいて、ＯＢＭＣは、ＣＵレベルの構文を使用してオン／オフを切り替えることができる。ＪＥＭにおいてＯＢＭＣを使用する場合、ＯＢＭＣは、ＣＵの右下の境界を除くすべての動き補償（ＭＣ）ブロック境界に対して実行される。また、輝度およびクロマ成分の両方に適用される。ＪＥＭにおいて、ＭＣブロックは符号化ブロックに対応する。ＣＵがサブＣＵモードで符号化された（サブＣＵマージ、アフィン、およびＦＲＵＣモードを含む）場合、ＣＵの各サブブロックは１つのＭＣブロックである。均一にＣＵ境界を処理するために、ＯＢＭＣは、すべてのＭＣブロック境界に対してサブブロックレベルで実行され、ここで、サブブロックサイズは、図１３Ａ、１３Ｂに示すように、４×４に等しく設定される。
【００６６】
図１３Ａは、ＣＵ／ＰＵ境界におけるサブブロックを示し、斜線を付けたサブブロックは、ＯＢＭＣが適用される場所である。同様に、図１３Ｂは、ＡＴＭＶＰモードのサブＰＵを示す。
【００６７】
ＯＢＭＣが現在のサブブロックに適用される場合、現在の動きベクトルの他に、４つの接続された近傍のサブブロックの動きベクトルも、利用可能であり、現在の動きベクトルと同一でない場合には、現在のサブブロックのための予測ブロックを導出するために使用される。複数の動きベクトルに基づくこれらの複数の予測ブロックを組み合わせ、現在のサブブロックの最終予測信号を生成する。
【００６８】
近傍のサブブロックの動きベクトルに基づく予測ブロックをＰＮ（Ｎは、近傍の上、下、左、右のサブブロックのインデックス）とし、現在のサブブロックの動きベクトルに基づく予測ブロックをＰＣとする。ＰＮが現在のサブブロックと同じ動き情報を含む近傍のサブブロックの動き情報に基づく場合、ＯＢＭＣはＰＮから行われない。そうでない場合、ＰＮのすべてのサンプルをＰＣ内の同じサンプルに加える。すなわち、ＰＮの４つの行／列をＰＣに加える。ＰＮには重み係数｛１／４，１／８，１／１６，１／３２｝を用い、ＰＣには重み係数｛３／４，７／８，１５／１６，３１／３２｝を用いる。例外は、小さなＭＣブロック（すなわち、符号化ブロックの高さまたは幅が４に等しいか、または１つのＣＵがサブＣＵモードで符号化される場合）であり、その場合、２つの行／列のＰＮのみがＰＣに追加される。この場合、ＰＮに対して重み係数｛１／４，１／８｝が使用され、ＰＣに対して重み係数｛３／４，７／８｝が使用される。垂直（水平）方向に近傍のサブブロックの動きベクトルに基づいて生成されたＰＮに対して、ＰＮの同じ行（列）におけるサンプルを、同じ重み係数でＰＣに加算する。
【００６９】
ＪＥＭにおいて、サイズが２５６輝度サンプル以下のＣＵの場合、現在のＣＵに対してＯＢＭＣが適用されているかどうかを示すように、ＣＵレベルフラグが信号通知される。サイズが２５６輝度サンプルよりも大きい、またはＡＭＶＰモードで符号化されていないＣＵの場合、ＯＢＭＣがデフォルトで適用される。エンコーダにおいて、ＯＢＭＣがＣＵに適用される場合、その影響は動き推定ステージ中に考慮される。上側近傍のブロックおよび左側近傍のブロックの動き情報を用いてＯＢＭＣにより形成された予測信号は、現在のＣＵの元の信号の上側および左側の境界を補償するために用いられ、その後、通常の動き推定処理が適用される。
【００７０】
２．５  局所照明補償（ＬＩＣ）の例
ＬＩＣは、倍率ａおよびオフセットｂを用いて、照明変化の線形モデルに基づく。そして、各インターモード符号化ユニット（ＣＵ）に対して適応的に有効または無効とされる。
【００７１】
ＬＩＣがＣＵに適用される場合、現在のＣＵの近傍のサンプルおよびそれらに対応する参照サンプルを使用することによって、パラメータａおよびｂを導出するために、最小二乗誤差法が使用される。図１４は、ＩＣアルゴリズムのパラメータを導出するために使用される近傍のサンプルの例を示す。具体的には、図１４に示すように、ＣＵのサブサンプリング（２：１のサブサンプリング）された近傍サンプルと、参照ピクチャ内の対応するサンプル（現在のＣＵまたはサブＣＵの動き情報によって特定される）とが使用される。ＩＣパラメータは、各予測方向に対して別々に導出され、適用される。
【００７２】
１つのＣＵがマージモードで符号化される場合、マージモードにおける動き情報のコピーと同様に、近傍のブロックからＬＩＣフラグをコピーし、そうでない場合、ＣＵにＬＩＣフラグを信号通知してＬＩＣが適用されるかどうかを示す。
【００７３】
１つのピクチャに対してＬＩＣが有効化されるとき、１つのＣＵに対してＬＩＣが適用されるかどうかを判定するために、追加のＣＵレベルＲＤチェックが必要である。ＣＵのためにＬＩＣが有効化される場合、整数画素動き探索および小数画素動き探索のために、ＳＡＤおよびＳＡＴＤの代わりに、それぞれ、絶対差の平均除去和（ＭＲ−ＳＡＤ）および絶対アダマール変換差の平均除去和（ＭＲ−ＳＡＴＤ）が使用される。
【００７４】
符号化の複雑性を低減するために、ＪＥＭにおいては、以下のエンコーディング方式が適用される。
【００７５】
−−現在の画像とその参照ピクチャとの間に明瞭な照度変化がない場合、ＬＩＣは画像全体に対して無効にされる。この状況を識別するために、エンコーダにおいて、現在のピクチャおよび現在のピクチャのすべての参照ピクチャのヒストグラムを計算する。現在のピクチャと現在のピクチャのすべての参照ピクチャとの間のヒストグラム差が所与の閾値よりも小さい場合、現在のピクチャに対してＬＩＣを無効化し、そうでない場合、現在のピクチャに対してＬＩＣを有効化する。
【００７６】
２．６  アフィン動き補償予測の例
ＨＥＶＣにおいて、動き補償予測（ＭＣＰ）のために並進運動モデルのみが適用される。しかしながら、カメラおよび対象物は、様々な種類の動き、例えば、ズームイン／ズームアウト、回転、透視運動、および／または他の不規則な動きを有してもよい。一方、ＪＥＭは、簡易アフィン変換動き補償予測を適用する。図１５は、２つの制御点動きベクトルＶ０およびＶ１によって記述されるブロック１４００のアフィン動きフィールドの例を示す。ブロック１４００の動きベクトルフィールド（ＭＶＦ）は、以下の式で表すことができる。
【００７７】
【数１】
2022500909.tif 000003
【００７８】
図１５に示すように、（ｖ０ｘ，ｖ０ｙ）は左上隅の制御点の動きベクトルであり、（ｖ１ｘ，ｖ１ｙ）は右上隅の制御点の動きベクトルである。動き補償予測を簡単にするために、サブブロックに基づくアフィン変換予測を適用することができる。サブブロックのサイズＭ×Ｎは、以下のように導出される。
【００７９】
【数２】
2022500909.tif 000004
【００８０】
ここで、ＭｖＰｒｅは、動きベクトルの分数精度（例えば、ＪＥＭでは１／１６）である。（ｖ２ｘ，ｖ２ｙ）は、式（１）に従って算出された左下制御点の動きベクトルである。必要であれば、ＭおよびＮを下方に調整して、それぞれｗおよびｈの除数にすることができる。
【００８１】
図１６は、ブロック１５００のためのサブブロックごとのアフィンＭＶＦの例を示す。各Ｍ×Ｎサブブロックの動きベクトルを導出するためには、各サブブロックの中心サンプルの動きベクトルを式（１）に従って算出し、動きベクトルの分数精度（例えば、ＪＥＭでは１／１６）に丸めればよい。次に、動き補償補間フィルタを適用して、導出された動きベクトルを用いて各サブブロックの予測を生成することができる。ＭＣＰの後、各サブブロックの高精度動きベクトルを丸め、通常の動きベクトルと同じ精度で保存する。
【００８２】
２．６．１  ＡＦ＿ＩＮＴＥＲモードの実施形態
ＪＥＭにおいて、２つのアフィン動きモード、ＡＦ＿ＩＮＴＥＲモードおよびＡＦ＿ＭＥＲＧＥモードがある。幅と高さの両方が８より大きいＣＵの場合、ＡＦ＿ＩＮＴＥＲモードを適用することができる。ＡＦ＿ＩＮＴＥＲモードが使用されるかどうかを示すために、ビットストリームにおいてＣＵレベルのアフィンフラグが信号通知される。ＡＦ＿ＩＮＴＥＲモードにおいて、近傍のブロックを用いて動きベクトル対
【００８３】
【数３】
2022500909.tif 000005
【００８４】
を有する候補リストを構築する。
【００８５】
図１７は、ＡＦ＿ＩＮＴＥＲモードにおけるブロック１６００のための動きベクトル予測（ＭＶＰ）の例を示す。図１７に示すように、ｖ０は、サブブロックＡ、Ｂ、またはＣの動きベクトルから選択され、近傍のブロックからの動きベクトルは、参照リストに従ってスケーリングすることができる。また、動きベクトルは、近傍のブロックの参照のピクチャオーダカウント（ＰＩＣ）と、現在のＣＵの参照のＰＯＣと、現在のＣＵのＰＯＣとの間の関係に基づいてスケーリングされてもよい。近傍のサブブロックＤおよびＥからｖ１を選択する方法は類似している。候補リストの数が２未満である場合、ＡＭＶＰ候補の各々を複製した動きベクトル対でリストを埋める。候補リストが２よりも大きい場合、まず、近傍の動きベクトルに基づいて（例えば、対候補における２つの動きベクトルの類似性に基づいて）候補をソートする。いくつかの実装形態において、最初の２つの候補を保持する。いくつかの実施形態において、ひずみ率（ＲＤ）コストチェックを用いて、どの動きベクトル対候補を現在のＣＵの制御点動きベクトル予測（ＣＰＭＶＰ）として選択するかを判定する。ビットストリームにおいて、候補リストにおけるＣＰＭＶＰの位置を示すインデックスを信号通知することができる。現在のアフィンＣＵのＣＰＭＶＰを判定した後、アフィン動き推定を適用し、制御点動きベクトル（ＣＰＭＶ）を求める。次に、ＣＰＭＶとＣＰＭＶＰとの差をビットストリームにおいて信号通知する。
【００８６】
ＡＦ＿ＩＮＴＥＲモードにおいて、４／６パラメータアフィンモードが使用される場合、２／３個の制御点が必要であり、従って、図１８Ａ、１８Ｂに示すように、これらの制御点のために２／３個のＭＶＤを符号化することが必要である。既存の実装形態において、ＭＶは、例えば、ｍｖｄ０からｍｖｄ１およびｍｖｄ２を予測することで、以下のように導出されてもよい。
【００８７】
【数４】
2022500909.tif 000006
【００８８】
【数５】
2022500909.tif 000007
【００８９】
【数６】
2022500909.tif 000008
【００９０】
ここでｍ￣ｖ￣ｉ、ｍｖｄｉ、ｍｖ１は、それぞれ、図１８Ｂに示すように、左上の画素（ｉ＝０）、右上の画素（ｉ＝１）、左下の画素（ｉ＝２）の予測動きベクトル、動きベクトルの差分、動きベクトルである。いくつかの実施形態において、２つの動きベクトル（例えば、ｍｖＡ（ｘＡ，ｙＡ）およびｍｖＢ（ｘＢ，ｙＢ））の加算は、２つの成分を別々に合計することに等しい。例えば、ｎｅｗＭＶ＝ｍｖＡ＋ｍｖＢは、ｎｅｗＭＶの２つの成分を、それぞれ（ｘＡ＋ｘＢ）および（ｙＡ＋ｙＢ）に設定することを意味する。
【００９１】
２．６．２  ＡＦ＿ＩＮＴＥＲモードにおける高速アフィンＭＥアルゴリズムの例
アフィンモードのいくつかの実施形態において、２つまたは３つの制御点のＭＶは、一緒に判定される必要がある。複数のＭＶをまとめて直接検索することは、計算が複雑である。一例において、高速アフィンＭＥアルゴリズムが提案され、ＶＴＭ／ＢＭＳに採用される。
【００９２】
例えば、４パラメータアフィンモデルに対して高速アフィンＭＥアルゴリズムを説明し、この考えを６パラメータアフィンモデルに拡張することができる。
【００９３】
【数７】
2022500909.tif 000009
【００９４】
【数８】
2022500909.tif 000010
【００９５】
（ａ−１）をａ’に置き換えることにより、動きベクトルを以下のように書き換えることができる。
【００９６】
【数９】
2022500909.tif 000011
【００９７】
２つの制御点（０，０）および（０，ｗ）の動きベクトルが既知であると仮定すると、式（５）から、アフィンパラメータは、以下のように導出されてもよい。
【００９８】
【数１０】
2022500909.tif 000012
【００９９】
動きベクトルは、ベクトルの形で以下のように書き換えることができる。
【０１００】
【数１１】
2022500909.tif 000013
【０１０１】
ここで、Ｐ＝（ｘ，ｙ）は、画素位置である。
【０１０２】
【数１２】
2022500909.tif 000014
【０１０３】
いくつかの実施形態において、エンコーダにおいて、ＡＦ＿ＩＮＴＥＲのＭＶＤは反復して導出されることができる。ＭＶｉ（Ｐ）を位置Ｐのｉ番目の反復で導出されたＭＶとし、ｄＭＶＣｉをｉ番目の反復でＭＶＣに対して更新されたデルタとして示す。次に、（ｉ＋１）番目の繰り返しにおいて、
【０１０４】
【数１３】
2022500909.tif 000015
【０１０５】
Ｐｉｃｒｅｆを参照ピクチャとし、Ｐｉｃｃｕｒを現在のピクチャとし、Ｑ＝Ｐ＋ＭＶｉ（Ｐ）を表す。ＭＳＥをマッチング基準として用いる場合、最小化する必要がある関数は、以下のように表されてもよい。
【０１０６】
【数１４】
2022500909.tif 000016
【０１０７】
【数１５】
2022500909.tif 000017
【０１０８】
が十分に小さいと仮定すると、
【０１０９】
【数１６】
2022500909.tif 000018
【０１１０】
は、１次のテイラー展開に基づく近似として、以下のように書き換えられてもよい。
【０１１１】
【数１７】
2022500909.tif 000019
【０１１２】
ここで、
【０１１３】
【数１８】
2022500909.tif 000020
である。
【０１１４】
【数１９】
2022500909.tif 000021
【０１１５】
の表記を採用する場合、以下のようになる。
【０１１６】
【数２０】
2022500909.tif 000022
【０１１７】
誤差関数の導関数をゼロに設定し、次に、
【０１１８】
【数２１】
2022500909.tif 000023
【０１１９】
に基づいて、制御点（０，０）および（０，ｗ）のデルタＭＶを以下のように算出することで、項
【０１２０】
【数２２】
2022500909.tif 000024
【０１２１】
を導出することができる。
【０１２２】
【数２３】
2022500909.tif 000025
【０１２３】
【数２４】
2022500909.tif 000026
【０１２４】
【数２５】
2022500909.tif 000027
【０１２５】
【数２６】
2022500909.tif 000028
【０１２６】
いくつかの実施形態において、このＭＶＤ導出処理をｎ回繰り返し、次のようにして最終ＭＶＤを算出することができる。
【０１２７】
【数２７】
2022500909.tif 000029
【０１２８】
【数２８】
2022500909.tif 000030
【０１２９】
【数２９】
2022500909.tif 000031
【０１３０】
【数３０】
2022500909.tif 000032
【０１３１】
上記実装形態において、ｍｖｄ０で表される制御点（０，０）のデルタＭＶから、ｍｖｄ１で表される制御点（０，ｗ）のデルタＭＶを予測することは、ｍｖｄ１に対して
【０１３２】
【数３１】
2022500909.tif 000033
【０１３３】
の場合のみ符号化されることになる。
【０１３４】
２．６．３  ＡＦ＿ＭＥＲＧＥモードの実施形態
ＡＦ＿ＭＥＲＧＥモードにおいてＣＵを適用する場合、ＣＵは、有効な近傍の再構築ブロックから、アフィンモードで符号化された第１のブロックを得る。図１９Ａは、現在のＣＵ１８００のための候補ブロックの選択順序の例を示す。図１９Ａに示すように、選択順序は、現在のＣＵ１８００の左（１８０１）、上（１８０２）、右（１８０３）、左下（１８０４）、左上（１８０５）の順とすることができる。図１９Ｂは、ＡＦ＿ＭＥＲＧＥモードにおける現在のＣＵ１８００の候補ブロックの別の例を示す。近傍の左下ブロック１８０１がアフィンモードで符号化されている場合、図１９Ｂに示すように、サブブロック１８０１を含むＣＵの左上隅、右上隅、左下隅の動きベクトルｖ２、ｖ３、ｖ４が導出される。ｖ２、ｖ３、ｖ４に基づいて、現在のＣＵ１８００における左上隅の動きベクトルｖ０を算出する。従って、現在のＣＵの右上の動きベクトルｖ１を算出することができる。
【０１３５】
式（１）のアフィン動きモデルに従って現在のＣＵ  ｖ０，ｖ１のＣＰＭＶを計算した後、現在のＣＵのＭＶＦを生成することができる。現在のＣＵがＡＦ＿ＭＥＲＧＥモードで符号化されているかどうかを識別するために、アフィンモードで符号化されている近傍のブロックが少なくとも１つある場合、ビットストリーム内にアフィンフラグを信号通知することができる。
【０１３６】
２．７  パターンマッチング動きベクトル導出（ＰＭＭＶＤ）の例
ＰＭＭＶＤモードは、フレームレートアップ変換（ＦＲＵＣ）法に基づく特殊マージモードである。このモードでは、ブロックの動き情報は信号通知されず、デコーダ側で導出される。
【０１３７】
ＦＲＵＣフラグは、そのマージフラグが真である場合、ＣＵに信号通知され得る。ＦＲＵＣフラグが偽である場合、マージインデックスを信号通知することができ、通常のマージモードが使用される。ＦＲＵＣフラグが真である場合、追加のＦＲＵＣモードフラグを信号通知して、どの方法（例えば、バイラテラルマッチングまたはテンプレートマッチング）を使用してブロックの動き情報を導出するかを示すことができる。
【０１３８】
エンコーダ側では、ＣＵのためにＦＲＵＣマージモードを使用するかどうかの決定は、通常のマージ候補に対して行われるのと同じように、ＲＤコストの選択に基づく。例えば、ＲＤコスト選択を使用して、１つのＣＵに対して複数のマッチングモード（例えば、バイラテラルマッチングおよびテンプレートマッチング）をチェックする。最小コストに導くものが、他のＣＵモードと比較される。ＦＲＵＣマッチングモードが最も効率的なものである場合、ＣＵに対してＦＲＵＣフラグを真に設定し、関連するマッチングモードを使用する。
【０１３９】
一般的に、ＦＲＵＣマージモードにおける動きの導出処理では、まずＣＵレベルの動き探索が行われ、次にサブＣＵレベルの動きの改良を行うという２つのステップを有する。ＣＵレベルでは、バイラテラルマッチングまたはテンプレートマッチングに基づいて、ＣＵ全体のための初期の動きベクトルを導出する。まず、ＭＶ候補のリストを生成し、最小マッチングコストに導く候補を、さらなるＣＵレベル改良の開始点として選択する。そして、開始点付近でのバイラテラルマッチングまたはテンプレートマッチングに基づく局所検索を行う。最小マッチングコストにおけるＭＶの結果を、ＣＵ全体のＭＶとする。続いて、導出されたＣＵ動きベクトルを開始点として、サブＣＵレベルでの動き情報をさらに改良する。
【０１４０】
例えば、Ｗ×Ｈ  ＣＵ動き情報導出のために、以下の導出処理を行う。第１のステージにおいて、Ｗ×Ｈ  ＣＵ全体のためのＭＶが導出される。第２のステージにおいて、ＣＵは、Ｍ×Ｍ個のサブＣＵにさらに分割される。Ｍの値は、式（２２）のように計算されるが、Ｄは、予め規定された分割深さであり、ＪＥＭにおいてデフォルトで３に設定される。そして、各サブＣＵのＭＶを導出する。
【０１４１】
【数３２】
2022500909.tif 000034
【０１４２】
図２０は、フレームレートアップ変換（ＦＲＵＣ）法で使用されるバイラテラルマッチングの例を示す。このバイラテラルマッチングは、２つの異なる参照ピクチャ（１９１０、１９１１）における現在のＣＵ（１９００）の動き軌跡に沿った２つのブロック間の最も近いマッチングを見出すことで、現在のＣＵの動き情報を導出するために用いられる。連続した動き軌跡を仮定すると、２つの参照ブロックを指す動きベクトルＭＶ０（１９０１）、ＭＶ１（１９０２）は、現在のピクチャと２つの参照ピクチャとの間の時間的距離に比例し、例えば、ＴＤ０（１９０３）、ＴＤ１（１９０４）である。いくつかの実施形態において、現在のピクチャ１９００が２つの参照ピクチャ（１９１０、１９１１）の間にあり、現在のピクチャから２つの参照ピクチャまでの時間的距離が同じである場合、バイラテラルマッチングはミラーに基づく双方向ＭＶとなる。
【０１４３】
図２１は、フレームレートアップ変換（ＦＲＵＣ）法で使用されるテンプレートマッチングの例を示す。テンプレートマッチングを使用して、現在のピクチャにおけるテンプレート（例えば、現在のＣＵの上側および／または左側の近傍のブロック）と参照ピクチャ２０１０におけるブロック（例えば、テンプレートと同じサイズ）との間の最も近いマッチングを見出すことで、現在のＣＵ２０００の動き情報を導出することができる。前述のＦＲＵＣマージモード以外に、テンプレートマッチングは、ＡＭＶＰモードにも適用できる。ＪＥＭおよびＨＥＶＣの両方において、ＡＭＶＰは２つの候補を有する。テンプレートマッチング法を用いることで、新しい候補を導出することができる。テンプレートマッチングによって新規に導出された候補が、第１の既存のＡＭＶＰ候補と異なる場合、ＡＭＶＰ候補リストの最初に挿入し、次に、（例えば、第２の既存のＡＭＶＰ候補を取り除くことによって）リストサイズを２に設定する。ＡＭＶＰモードに適用される場合、ＣＵレベル検索のみが適用される。
【０１４４】
ＣＵレベルのＭＶ候補セットは、以下を含むことができる。（１）現在のＣＵがＡＭＶＰモードにある場合、元のＡＭＶＰ候補、（２）すべてのマージ候補、（３）補間されたＭＶフィールド内の複数のＭＶ（後述）、および左上の近傍の動きベクトル。
【０１４５】
バイラテラルマッチングを使用する場合、マージ候補の各有効なＭＶを入力として使用して、バイラテラルマッチングを仮定してＭＶ対を生成することができる。例えば、マージ候補の１つの有効なＭＶは、参照リストＡにおいて（ＭＶａ，ｒｅｆａ）であり、そして、その対をなすバイラテラルＭＶの参照ピクチャｒｅｆｂが他の参照リストＢにおいて見出され、ｒｅｆａおよびｒｅｆｂは、時間的に現在のピクチャの異なる側にある。参照リストＢにおいてこのようなｒｅｆｂが利用可能でない場合、ｒｅｆｂをｒｅｆａとは異なる参照として判定し、現在のピクチャとの時間的距離はリストＢにおける最小値である。ｒｅｆｂを判定した後、現在のピクチャとｒｅｆａ，ｒｅｆｂとの時間距離に基づいてＭＶａをスケーリングすることでＭＶｂを導出する。
【０１４６】
いくつかの実装形態において、補間されたＭＶフィールドからの４つのＭＶをＣＵレベル候補リストに追加してもよい。具体的には、現在のＣＵの（０，０）、（Ｗ／２，０）、（０，Ｈ／２）、（Ｗ／２，Ｈ／２）の位置の補間されたＭＶを加算する。ＡＭＶＰモードでＦＲＵＣを適用する場合、元のＡＭＶＰ候補をＣＵレベルＭＶ候補セットにも加える。いくつかの実装形態において、ＣＵレベルにおいて、ＡＭＶＰ  ＣＵのための１５個のＭＶおよびマージＣＵに対し、１３個のＭＶを候補リストに加えることができる。
【０１４７】
サブＣＵレベルのＭＶ候補セットは、ＣＵレベルの検索によって判定されたＭＶと、（２）上側、左側、左上、右上の近傍のＭＶと、（３）参照ピクチャからの配列されたＭＶのスケーリングされたバージョンと、（４）１つ以上（例えば、４つまで）のＡＴＭＶＰ候補と、（５）１つ以上（例えば、４つまで）のＳＴＭＶＰ候補とを含む。参照ピクチャからのスケーリングされたＭＶは、以下のように導出される。両方のリストにおける参照ピクチャをトラバースする。参照ピクチャにおけるサブＣＵの配列位置にあるＭＶは、開始ＣＵレベルＭＶの参照に対してスケーリングされる。ＡＴＭＶＰおよびＳＴＭＶＰの候補は、最初の４つの候補であってもよい。サブＣＵレベルにおいて、１つ以上（例えば、最大１７個）のＭＶが候補リストに追加される。
【０１４８】
補間されたＭＶフィールドの生成。
あるフレームを符号化する前に、片側ＭＥに基づいてピクチャ全体に対して補間された動きフィールドを生成する。そして、この動きフィールドを後にＣＵレベルまたはサブＣＵレベルのＭＶ候補として使用してもよい。
【０１４９】
いくつかの実施形態において、両方の参照リストにおける各参照ピクチャの動きフィールドは、４×４ブロックレベルでトラバースされる。図２２は、ＦＲＵＣ方法におけるユニラテラル動き推定（ＭＥ）２１００の例を示す。各４×４ブロックにおいて、現在のピクチャの４×４ブロックを通過するブロックに関連する動きで、補間された動きがまだ割り当てられていない場合、時間的距離ＴＤ０およびＴＤ１に基づいて（ＨＥＶＣにおけるＴＭＶＰのＭＶスケーリングと同様に）、参照ブロックの動きを現在のピクチャにスケーリングし、スケーリングされた動きを現在のフレームのブロックに割り当てる。４×４ブロックにスケーリングされたＭＶが割り当てられていない場合、ブロックの動きは、補間された動きフィールドにおいて利用不可能であるとマークされる。
【０１５０】
補間およびマッチングコスト。
１つの動きベクトルが１つの小数のサンプル位置を指す場合、動き補償補間が必要である。複雑性を低減するために、通常の８タップＨＥＶＣ補間の代わりに、バイラテラルマッチングおよびテンプレートマッチングの両方に双線形補間を使用できる。
【０１５１】
マッチングコストの計算は、異なるステップでは少し異なる。ＣＵレベルの候補セットから候補を選択する場合、マッチングコストは、バイラテラルマッチングまたはテンプレートマッチングの絶対和差（ＳＡＤ）であってもよい。開始ＭＶを判定した後、サブＣＵレベル検索におけるバイラテラルマッチングのマッチングコストＣを以下のように算出する。
【０１５２】
【数３３】
2022500909.tif 000035
【０１５３】
ここで、ｗは重み係数である。いくつかの実施形態において、ｗは経験的に４に設定されてもよい。ＭＶおよびＭＶｓは、それぞれ、現在のＭＶおよび開始ＭＶを示す。ＳＡＤは、依然として、サブＣＵレベル検索におけるテンプレートマッチングのマッチングコストとして使用されてもよい。
【０１５４】
ＦＲＵＣモードにおいて、ＭＶは、輝度サンプルのみを使用することによって導出される。導出された動きは、ＭＣインター予測のために、輝度およびクロマの両方に使用される。ＭＶを判定した後、輝度用の８タップ補間フィルタおよびクロマ用の４タップ補間フィルタを使用して、最終的なＭＣを行う。
【０１５５】
ＭＶ改良は、バイラテラルマッチングコストまたはテンプレートマッチングコストの基準を有するパターンに基づくＭＶ検索である。ＪＥＭでは、２つの検索パターン、即ち、無制限中心バイアス菱形検索（ＵＣＢＤＳ）およびＣＵレベルおよびサブＣＵレベルでのＭＶ改良のための適応クロス検索をそれぞれサポートする。ＣＵおよびサブＣＵレベルのＭＶ改善の両方のために、ＭＶは、１／４輝度サンプルＭＶの精度で直接検索され、これに続いて１／８輝度サンプルＭＶの改良が行われる。ＣＵおよびサブＣＵステップのためのＭＶ改良の検索範囲は、８つの輝度サンプルに等しく設定される。
【０１５６】
バイラテラルマッチングマージモードにおいては、双予測が適用される。なぜなら、２つの異なる参照ピクチャにおける現在のＣＵの動き軌跡に沿った２つのブロック間の最も近いマッチングに基づいて、ＣＵの動き情報を導出するからである。テンプレートマッチングマージモードにおいて、エンコーダは、ｌｉｓｔ０からの単一予測、ｌｉｓｔ１からの単一予測、またはＣＵのための双予測のうちから選択することができる。選択は、テンプレートマッチングコストに基づいて、以下のように行うことができる。
【０１５７】
ｃｏｓｔＢｉ＜＝ｆａｃｔｏｒ＊ｍｉｎ（ｃｏｓｔ０，ｃｏｓｔ１）の場合
双予測を用いる。
そうでない場合、ｃｏｓｔ０＜＝ｃｏｓｔ１であれば
ｌｉｓｔ０からの単一予測を用いる。
そうでない場合、
ｌｉｓｔ１からの単一予測を用いる。
【０１５８】
ここで、ｃｏｓｔ０はｌｉｓｔ０テンプレートマッチングのＳＡＤであり、ｃｏｓｔ１はｌｉｓｔ１テンプレートマッチングのＳＡＤであり、ｃｏｓｔＢｉは双予測テンプレートマッチングのＳＡＤである。例えば、ｆａｃｔｏｒの値が１．２５である場合、選択処理が双予測に偏っていることを意味する。このインター予測方向選択は、ＣＵレベルのテンプレートマッチング処理に適用することができる。
【０１５９】
２．８  双方向オプティカルフロー（ＢＩＯ）の例
双方向オプティカルフロー（ＢＩＯ）方法は、双予測のためにブロック単位の動き補償の上で実行されるサンプル単位の動きの改良である。いくつかの実装形態において、サンプルレベルの動きの改良は、信号通知を用いない。
【０１６０】
Ｉ（ｋ）をブロック動き補償後の参照ｋ（ｋ＝０，１）からの輝度をとし、Ｉ（ｋ）勾配の水平成分と垂直成分をそれぞれ∂Ｉ（ｋ）／∂ｘと∂Ｉ（ｋ）／∂ｙとする。オプティカルフローが有効であると仮定すると、動きベクトルフィールド（ｖｘ，ｖｙ）は、式（２４）で与えられる。
【０１６１】
【数３４】
2022500909.tif 000036
【０１６２】
このオプティカルフロー方程式と各試料の動き軌跡のエルミート補間を組み合わせると、関数値Ｉ（ｋ）と導関数∂Ｉ（ｋ）／∂ｘと∂Ｉ（ｋ）／∂ｙの両方に一致するユニークな３次多項式が得られる。ｔ＝０におけるこの多項式の値がＢＩＯ予測である。
【０１６３】
【数３５】
2022500909.tif 000037
【０１６４】
図２３は、双方向オプティカルフロー（ＢＩＯ）法におけるオプティカルフローの軌跡の一例を示す。ここで、τ０およびτ１は、参照フレームまでの距離を示す。距離τ０およびτ１は、Ｒｅｆ０およびＲｅｆ１のＰＯＣに基づいて、τ０＝ＰＯＣ（ｃｕｒｒｅｎｔ）−ＰＯＣ（Ｒｅｆ０），τ１＝ＰＯＣ（Ｒｅｆ１）−ＰＯＣ（ｃｕｒｒｅｎｔ）のように計算される。両方の予測が同じ時系列から来たものである場合（両方とも過去から来たものであるか、または両方とも将来から来たものである）、符号が異なっている（例えばτ０・τ１＜０）。この場合、予測が同じ時間モーメントからでない場合（例えば、τ０≠τ１）には、ＢＩＯが適用される。両方の参照領域は非ゼロの動き
【０１６５】
【数３６】
2022500909.tif 000038
【０１６６】
を有し、ブロック動きベクトルは時間距離
【０１６７】
【数３７】
2022500909.tif 000039
【０１６８】
に比例する。
【０１６９】
点Ａと点Ｂの間の値の差を最小化することで、動きベクトルフィールド（ｖｘ，ｖｙ）を判定する。図９Ａ〜９Ｂは、動き軌跡と参照フレーム平面との交差の例を示す。モデルは、△に対してローカルテイラー展開の第１の線形項のみを用いる。
【０１７０】
【数３８】
2022500909.tif 000040
【０１７１】
上記式におけるすべての値は、（ｉ’，ｊ’）として表されるサンプル位置に依存する。動きがローカル周辺エリアにおいて一貫していると仮定すると、△は、現在の予測点（ｉ，ｊ）を中心とする（２Ｍ＋１）×（２Ｍ＋１）の正方形窓Ωの内側で最小化することができ、ここで、Ｍは２に等しい。
【０１７２】
【数３９】
2022500909.tif 000041
【０１７３】
この最適化問題に対して、ＪＥＭは、まず垂直方向に最小化し、次に水平方向に最小化する簡単なアプローチを使用する。その結果、以下のようになる。
【０１７４】
【数４０】
2022500909.tif 000042
【０１７５】
【数４１】
2022500909.tif 000043
【０１７６】
ここで
【０１７７】
【数４２】
2022500909.tif 000044
【０１７８】
ゼロまたは非常に小さな値での除算を回避するために、正則化パラメータｒおよびｍを式（２８）および式（２９）に導入することができる。
【０１７９】
【数４３】
2022500909.tif 000045
【０１８０】
【数４４】
2022500909.tif 000046
【０１８１】
ここで、ｄは映像サンプルのビット深さである。
【０１８２】
ＢＩＯのメモリアクセスを通常の二重予測動き補償と同じにするために、すべての予測値と勾配値であるＩ（ｋ），∂Ｉ（ｋ）／∂ｘ，∂Ｉ（ｋ）／∂ｙは、現在のブロック内の位置について計算される。図２４Ａは、ブロック２３００の外側のアクセス位置の例を示す。図２４Ａの式（２８）に示すように、（２Ｍ＋１）×（２Ｍ＋１）の正方形窓Ωは、現在予測されているブロックの境界上の予測点を中心としたブロック外の位置にアクセスする必要がある。ＪＥＭでは、ブロック外のＩ（ｋ），∂Ｉ（ｋ）／∂ｘ，∂Ｉ（ｋ）／∂ｙの値は、ブロック内で最も近い利用可能な値に等しくなるように設定されている。例えば、これは、図２４Ｂに示すように、パディング領域２３０１として実装することができる。
【０１８３】
ＢＩＯを用いることで、各サンプルに動きフィールドを改良することができる。計算の複雑性を低減するために、ＪＥＭではブロックに基づくＢＩＯの設計が用いられている。動きの改良は、４×４ブロックに基づいて計算することができる。ブロックに基づくＢＩＯにおいて、４×４ブロック内で、全てのサンプルの式（２８）内のｓｎの値を集約することができ、次いで、集約されたｓｎの値を使用して、４×４ブロックのオフセットされたＢＩＯ動きベクトルを導出する。具体的には、ブロックに基づくＢＩＯ導出には、以下の式を用いることができる。
【０１８４】
【数４５】
2022500909.tif 000047
【０１８５】
ここで、ｂｋは、予測ブロックのｋ番目の４×４のブロックに属するサンプルのセットを示す。式（２８）および式（２９）におけるｓｎを（（ｓｎ，ｂｋ）＞＞４）に置き換え、関連する動きベクトルオフセットを導出する。
【０１８６】
シナリオによってはＢＩＯのＭＶレジメンがノイズや不規則な動きで信頼できない場合がある。従って、ＢＩＯにおいて、ＭＶレジメンの大きさは閾値にクリップされる。閾値は、現在のピクチャの参照ピクチャがすべて一方向からのものであるかどうかに基づいて判定される。例えば、現在のピクチャの参照ピクチャが全て一方向からのものであれば、閾値は、１２×２（１４−ｄ）に設定され、そうでなければ、１２×２（１３−ｄ）に設定される。
【０１８７】
ＢＩＯの勾配は、ＨＥＶＣ動き補償処理（例えば、２Ｄの分離可能な有限インパルス応答（ＦＩＲ））に準拠した演算を使用して、動き補償補間と同時に計算されてもよい。いくつかの実施形態において、２Ｄの分離可能なＦＩＲのための入力は、ブロック動きベクトルの端数部分に基づいて、動き補償処理および端数位置（ｆｒａｃＸ，ｆｒａｃＹ）のためのものと同じ参照フレームサンプルである。水平勾配∂Ｉ／∂ｘの場合、信号は、まず、スケーリングシフトｄ−８で端数位置ｆｒａｃＹに対応するＢＩＯｆｉｌｔｅｒＳを使用して垂直方向に補間される。次に、勾配フィルタＢＩＯｆｉｌｔｅｒＧを、端数位置ｆｒａｃＸに対応する水平方向に適用し、スケーリング解除を１８−ｄだけシフトする。垂直方向の勾配∂Ｉ／∂ｙについては、スケーリングシフトｄ−８で端数位置ｆｒａｃＹに対応するＢＩＯｆｉｌｔｅｒＧを用いて垂直方向に勾配フィルタをかける。次に、ＢＩＯＦｉｌｔｅｒＳを使用して、端数位置ｆｒａｃＸに対応する水平方向への信号の変位を行い、スケーリングを１８−ｄだけシフトする。妥当な複雑性を維持するために、勾配計算ＢＩＯＦｉｌｔｅｒＧおよび信号変位ＢＩＯＦｉｌｔｅｒＦのための補間フィルタの長さを短く（例えば、６タップ）してもよい。表１は、ＢＩＯにおけるブロック動きベクトルの異なる端数位置の勾配計算に使用できる例示的なフィルタを示す。表２は、ＢＩＯにおける予測信号の生成に使用できる例示的な補間フィルタを示す。
【０１８８】
表１：ＢＩＯにおける勾配計算のための例示的なフィルタ
【０１８９】
【表１】
2022500909.tif 000048
【０１９０】
表２：ＢＩＯにおける予測信号生成のための例示的な補間フィルタ
【０１９１】
【表２】
2022500909.tif 000049
【０１９２】
本ＪＥＭにおいて、２つの予測が異なる参照ピクチャからのものである場合、ＢＩＯをすべての双予測ブロックに適用することができる。ＣＵのローカル照明補償（ＬＩＣ）を有効にすると、ＢＩＯを無効にすることができる。
【０１９３】
いくつかの実施形態において、ＯＢＭＣは、通常のＭＣ処理の後、１つのブロックに適用される。計算の複雑性を低減するために、ＯＢＭＣ処理中にＢＩＯを適用しなくてもよい。つまり、ＢＩＯは、それ自身のＭＶを使用する場合、１つのブロックのＭＣ処理において適用され、ＯＢＭＣ処理において近傍のブロックのＭＶを使用する場合、ＭＣ処理においては適用されない。
【０１９４】
２．９  デコーダ側動きベクトル改良（ＤＭＶＲ）の例
双予測演算において、１つのブロック領域を予測するために、ｌｉｓｔ０の動きベクトル（ＭＶ）およびｌｉｓｔ１のＭＶをそれぞれ使用して構成される双予測ブロックを組み合わせ、１つの予測信号を形成する。デコーダ側動きベクトル改良（ＤＭＶＲ）方法において、バイラテラルテンプレートマッチング処理によって、双予測の２つの動きベクトルをさらに改良する。追加の動き情報を送信することなく改良されたＭＶを得るために、デコーダにおいてバイラテラルテンプレートマッチングを適用し、バイラテラルテンプレートと参照ピクチャにおける再構成サンプルとの間でひずみに基づく検索を行う。
【０１９５】
ＤＭＶＲにおいて、図２５に示すように、ｌｉｓｔ０の最初のＭＶ０とｌｉｓｔ１のＭＶ１とから、それぞれ双予測ブロックの重み付け結合（すなわち、平均）としてバイラテラルテンプレートを生成する。テンプレートマッチング操作は、生成されたテンプレートと参照ピクチャにおけるサンプル領域（最初の予測ブロックの付近）との間のコスト尺度を計算することからなる。２つの参照ピクチャの各々について、テンプレートコストが最小となるＭＶを、そのリストの更新されたＭＶと見なし、元のＭＶに置き換える。ＪＥＭにおいて、各リストに対して９つのＭＶ候補を検索する。９つのＭＶ候補は、元のＭＶと、水平または垂直方向のいずれかまたは両方向に元のＭＶに対してオフセットしている１つの輝度サンプルを有する８つの周囲のＭＶを含む。最後に、２つの新しいＭＶ、即ち、ＭＶ０’およびＭＶ１’は、図２５に示すように、最終的な双予測結果を生成するために使用される。絶対差の合計（ＳＡＤ）をコスト尺度として使用する。
【０１９６】
ＤＭＶＲは、追加の構文要素を送信することなく、過去の参照ピクチャからの１つのＭＶと、将来の参照ピクチャからの１つのＭＶとの間の双予測のマージモードに適用される。ＪＥＭにおいて、ＣＵに対してＬＩＣ、アフィン動き、ＦＲＵＣまたはサブＣＵマージ候補が有効である場合、ＤＭＶＲは適用されない。
【０１９７】
２．１０  対称動きベクトル差の例
より効率的にＭＶＤを符号化するために、対称動きベクトル差（ＳＭＶＤ）を提案する。
【０１９８】
まず、スライスレベルにおいて、変数ＢｉＤｉｒＰｒｅｄＦｌａｇ、ＲｅｆＩｄｘＳｙｍｌ０、ＲｅｆＩｄｘＳｙｍｌ１を以下のように導出する。
【０１９９】
現在のピクチャに最も近い参照ピクチャリスト０における前方参照ピクチャを検索する。見つかった場合、ＲｅｆＩｄｘＳｙｍｌ０を前方ピクチャの参照インデックスに等しく設定する。
【０２００】
現在のピクチャに最も近い参照ピクチャリスト１における後方参照ピクチャを検索する。見つかった場合、ＲｅｆＩｄｘＳｙｍｌ１を後方ピクチャの参照インデックスに等しく設定する。
【０２０１】
前方および後方ピクチャの両方が見つかった場合、ＢｉＤｉｒＰｒｅｄＦｌａｇは１に等しく設定される。
【０２０２】
そうでない場合、以下が適用される。
【０２０３】
現在の参照ピクチャに最も近い参照ピクチャリスト０における後方参照ピクチャを検索する。見つかった場合、ＲｅｆＩｄｘＳｙｍｌ０を後方ピクチャの参照インデックスに等しく設定する。
【０２０４】
現在の参照ピクチャに最も近い参照ピクチャリスト１における前方参照ピクチャを検索する。見つかった場合、ＲｅｆＩｄｘＳｙｍｌ１を前方ピクチャの参照インデックスに等しく設定する。
【０２０５】
後方および前方ピクチャの両方が見つかった場合、ＢｉＤｉｒＰｒｅｄＦｌａｇは１に等しく設定される。そうでない場合、ＢｉＤｉｒＰｒｅｄＦｌａｇは０に等しく設定される。
【０２０６】
第２に、ＣＵレベルにおいて、ＣＵの予測方向が双予測であり、ＢｉＤｉｒＰｒｅｄＦｌａｇが１に等しい場合、対称モードを使用するかどうかを示す対称モードフラグを明確に信号通知する。
【０２０７】
このフラグが真である場合、ｍｖｐ＿ｌ０＿ｆｌａｇ、ｍｖｐ＿ｌ１＿ｆｌａｇ、およびＭＶＤ０のみが明確に信号通知される。参照インデックスは、リスト０およびリスト１に対して、それぞれＲｅｆＩｄｘＳｙｍｌ０、ＲｅｆＩｄｘＳｙｍｌ１に等しく設定される。ＭＶＤ１は単に−ＭＶＤ０に設定される。最終的動きベクトルを以下の式に示す。
【０２０８】
【数４６】
2022500909.tif 000050
【０２０９】
図２８は、対称モードの例を示す。
【０２１０】
表３及び表４に、符号化ユニットの構文の修正を示す。
【０２１１】
表３及び表４：符号化ユニット構文の修正
【０２１２】
【表３】
2022500909.tif 000051
【０２１３】
【表４】
2022500909.tif 000052
【０２１４】
２．１０．１  アフィン双予測符号化のための対称ＭＶＤ
アフィンモードのためのＳＭＶＤは、対称ＭＶＤモードの応用をアフィン双予測に拡張するために提案される。対称ＭＶＤモードをアフィン双予測符号化に適用する場合、制御点ＭＶＤは信号通知されずに導出される。ｌｉｓｔ−１の左上の制御点のＭＶＤは、線形の動きの仮定に基づいてｌｉｓｔ−０から導出される。ｌｉｓｔ−０の他方の制御点ＭＶＤはゼロに設定される。
【０２１５】
２．１１  コンテキスト適応２進算術符号化（ＣＡＢＡＣ）
【０２１６】
２．１１．１  ＨＥＶＣにおけるＣＡＢＡＣ設計
【０２１７】
２．１１．１．１  ＨＥＶＣにおける文脈表現および初期化処理
ＨＥＶＣにおいて、各コンテキスト変数に対して、２つの変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓを初期化する。
【０２１８】
８ビットテーブルエントリｉｎｉｔＶａｌｕｅから、２つの４ビット変数ｓｌｏｐｅＩｄｘ，ｏｆｆｓｅｔＩｄｘを以下のように導出する。
【０２１９】
ｓｌｏｐｅＩｄｘ＝ｉｎｉｔＶａｌｕｅ＞＞４
ｏｆｆｓｅｔＩｄｘ＝ｉｎｉｔＶａｌｕｅ＆１５          （３４）
【０２２０】
コンテキスト変数の初期化に使用される変数ｍおよびｎは、ｓｌｏｐｅＩｄｘおよびｏｆｆｓｅｔＩｄｘから以下のように導出される。
【０２２１】
ｍ＝ｓｌｏｐｅＩｄｘ＊５−４５
ｎ＝（ｏｆｆｓｅｔＩｄｘ＜＜３）−１６          （３５）
【０２２２】
初期化のためにｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓに割り当てられる２つの値は、ＳｌｉｃｅＱｐＹで表されるスライスの輝度の量子化パラメータから導出される。変数ｍおよびｎを特定すると、初期化は以下のように特定される。
【０２２３】
ｐｒｅＣｔｘＳｔａｔｅ＝Ｃｌｉｐ３（１，１２６，（（ｍ＊Ｃｌｉｐ３（０，５１，ＳｌｉｃｅＱｐＹ））＞＞４）＋ｎ）
ｖａｌＭｐｓ＝（ｐｒｅＣｔｘＳｔａｔｅ＜＝６３）？０：１
ｐＳｔａｔｅＩｄｘ＝ｖａｌＭｐｓ？（ｐｒｅＣｔｘＳｔａｔｅ−６４）：（６３−ｐｒｅＣｔｘＳｔａｔｅ）          （３６）
【０２２４】
２．１１．１．２  ＨＥＶＣにおける状態遷移処理
この処理への入力は、現在のｐＳｔａｔｅＩｄｘ、ｃｔｘＴａｂｌｅおよびｃｔｘＩｄｘに関連付けられたコンテキスト変数の復号値ｂｉｎＶａｌおよびｖａｌＭｐｓである。
【０２２５】
この処理の出力は、ｃｔｘＩｄｘに関連付けられたコンテキスト変数の更新されたｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓである。
【０２２６】
復号値ｂｉｎＶａｌに基づいて、ｃｔｘＩｄｘに関連付けられた２つの変数ｐＳｔａｔｅＩｄｘおよびｖａｌＭｐｓの更新は、以下の（３７）のように導出される。
【０２２７】
ｉｆ（ｂｉｎＶａｌ＝＝ｖａｌＭｐｓ）
ｐＳｔａｔｅＩｄｘ＝ｔｒａｎｓＩｄｘＭｐｓ（ｐＳｔａｔｅＩｄｘ）
ｅｌｓｅ｛
ｉｆ（ｐＳｔａｔｅＩｄｘ＝＝０）ｖａｌＭｐｓ＝１−ｖａｌＭｐｓ
ｐＳｔａｔｅＩｄｘ＝ｔｒａｎｓＩｄｘＬｐｓ（ｐＳｔａｔｅＩｄｘ）
｝          （３７）
【０２２８】
２．１１．２  ＶＶＣにおけるＣＡＢＡＣ設計
ＶＶＣにおける文脈適応型２値算術符号化器（ＢＡＣ）は、ＶＶＣにおいて文脈更新処理および算術符号化器の点でＨＥＶＣと異なる改良がなされている。
【０２２９】
最近採用された提案（ＪＶＥＴ−Ｍ０４７３，ＣＥｔｅｓｔ５．１．１３）の概要を以下に示す。
【０２３０】
表５：ＶＶＣにおけるＣＡＢＡＣ修正の概要
【０２３１】
【表５】
2022500909.tif 000053
【０２３２】
２．１１．２．１  ＶＶＣにおけるコンテキスト初期化処理
ＶＶＣにおいて、初期化のためにｐＳｔａｔｅＩｄｘ０およびｐＳｔａｔｅＩｄｘ１に割り当てられる２つの値は、ＳｌｉｃｅＱｐＹから導出される。変数ｍおよびｎを特定すると、初期化は以下のように特定される。
【０２３３】
ｐｒｅＣｔｘＳｔａｔｅ＝Ｃｌｉｐ３（０，１２７，（（ｍ＊Ｃｌｉｐ３（０，５１，ＳｌｉｃｅＱｐＹ））＞＞４）＋ｎ）
ｐＳｔａｔｅＩｄｘ０＝ｉｎｉｔＳｔａｔｅＩｄｘＴｏＳｔａｔｅ［ｐｒｅＣｔｘＳｔａｔｅ］＞＞４
ｐＳｔａｔｅＩｄｘ１＝ｉｎｉｔＳｔａｔｅＩｄｘＴｏＳｔａｔｅ［ｐｒｅＣｔｘＳｔａｔｅ］          （３８）
【０２３４】
２．１１．２．２  ＶＶＣにおける状態遷移処理
この処理への入力は、現在のｐＳｔａｔｅＩｄｘ０およびｐＳｔａｔｅＩｄｘ１、並びに復号値ｂｉｎＶａｌである。
【０２３５】
この処理の出力は、ｃｔｘＩｄｘに関連付けられたコンテキスト変数の更新されたｐＳｔａｔｅＩｄｘ０およびｐＳｔａｔｅＩｄｘ１である。
【０２３６】
変数ｓｈｉｆｔ０（ＶＶＣＴａｂｌｅ４におけるＣＡＢＡＣ修正の概要における変数に対応する）およびｓｈｉｆｔ１（ＶＶＣＴａｂｌｅ４におけるＣＡＢＡＣ修正の概要における変数ｂに対応する）は、ｃｔｘＴａｂｌｅおよびｃｔｘＩｎｃに関連付けられたｓｈｉｆｔＩｄｘ値から導出される。
【０２３７】
ｓｈｉｆｔ０＝（ｓｈｉｆｔＩｄｘ＞＞２）＋２
ｓｈｉｆｔ１＝（ｓｈｉｆｔＩｄｘ＆３）＋３＋ｓｈｉｆｔ０          （３９）
【０２３８】
復号値ｂｉｎＶａｌに依存して、ｃｔｘＩｄｘに関連付けられた２つの変数ｐＳｔａｔｅＩｄｘ０およびｐＳｔａｔｅＩｄｘ１の更新は、以下のように導出される。
【０２３９】
ｐＳｔａｔｅＩｄｘ０＝ｐＳｔａｔｅＩｄｘ０−（ｐＳｔａｔｅＩｄｘ０＞＞ｓｈｉｆｔ０）＋（１０２３＊ｂｉｎＶａｌ＞＞ｓｈｉｆｔ０）
ｐＳｔａｔｅＩｄｘ１＝ｐＳｔａｔｅＩｄｘ１−（ｐＳｔａｔｅＩｄｘ１＞＞ｓｈｉｆｔ１）＋（１６３８３＊ｂｉｎＶａｌ＞＞ｓｈｉｆｔ１）          （４０）
【０２４０】
３．  既存の実装形態の欠点
【０２４１】
いくつかの既存の実装形態において、ＭＶ／ＭＶ差（ＭＶＤ）をアフィン符号化ブロックのための１組の複数のＭＶ／ＭＶＤ精度のセットから選択することができる場合、より正確な動きベクトルをどのようにして取得することができるかは、依然として不確定である。
【０２４２】
他の既存の実装形態において、ＭＶ／ＭＶＤ精度情報は、アフィンモードに適用されるＡＭＶＲの全体的な符号化利得の判定においても重要な役割を果たすが、この目標を達成するかどうかは依然として不確定である。
【０２４３】
４．  ＡＭＶＲを用いるアフィンモード用のＭＶ予測子のための例示的な方法
【０２４４】
本開示の技術の実施形態は、既存の実装形態の欠点を克服し、それにより、より高い符号化効率を有する映像符号化を提供する。開示された技術に基づいて、適応動きベクトル解像度（ＡＭＶＲ）を有するアフィンモード用の動きベクトル予測子を導出し、信号通知することにより、既存のおよび将来の映像符号化規格の両方を向上させることができ、様々な実装形態に対して説明する以下の例で明らかにする。以下に提供される開示される技術の例は、一般的な概念を説明するものであり、限定するものと解釈されるべきではない。一例において、明確に示されていない限り、逆に示されていない限り、これらの例に記載されている様々な特徴を組み合わせることができる。
【０２４５】
いくつかの実施形態において、ＡＭＶＲが適用されるとき、アフィンモードまたはノーマルモードに次のような例を適用することができる。これらの例は、ＡＦ＿ＩＮＴＥＲモードでＭＶＤを符号化するため、または通常のインターモードでＭＶＤを符号化するために、精度Ｐｒｅｃ（即ち、ＭＶは１／（２＾Ｐｒｅｃ）の精度を有する）を使用すると仮定する。動きベクトル予測子（例えば、近傍のブロックＭＶから継承される）およびその精度を、それぞれＭＶＰｒｅｄ（ＭＶＰｒｅｄＸ，ＭＶＰｒｅｄＹ）およびＰｒｅｄＰｒｅｃと表す。
【０２４６】
ＡＭＶＲをサポートしたアフィンモードの改善
１．  許容されるＭＶＤ精度のセットは、ピクチャごとに、スライスごとに、またはブロックごとに異なっていてもよい。
ａ．  一例において、許容されるＭＶＤ精度のセットは、ブロックサイズ、ブロック形状他のような符号化された情報に依存してもよい。
ｂ．  許容されるＭＶ精度のセットは、｛１／１６，１／４，１｝など、予め規定されてもよい。
ｃ．  許可されるＭＶ精度の指示は、ＣＴＵのＳＰＳ／ＰＰＳ／ＶＰＳ／シーケンスヘッダ／ピクチャヘッダ／スライスヘッダ／グループ等において信号通知されてもよい。
ｄ．  許容されるＭＶ精度のセットから選択されたＭＶ精度を信号通知することは、１つのブロックに対して許容されるＭＶ精度の数にさらに依存する。
【０２４７】
２．  アフィンインターモードで使用されるＭＶＤ精度を示すために、１つの構文要素がデコーダに信号通知される。
ａ．  一例において、１つの単一の構文要素のみが、アフィンモードおよびＡＭＶＲモードに適用されるＭＶＤ精度を示すために使用される。
ｉ．  一例において、同じ意味論が使用され、即ち、同じ値の構文要素が、ＡＭＶＲおよびアフィンモードのために同じＭＶＤ精度にマッピングされる。
ｉｉ．  代替的に、単一の構文要素の意味論は、ＡＭＶＲモードおよびアフィンモードによって異なる。すなわち、ＡＭＶＲおよびアフィンモードに対して、同じ構文要素の値を異なるＭＶＤ精度にマッピングしてもよい。
ｂ．  一例において、アフィンモードがＡＭＶＲと同じＭＶＤ精度のセットを使用する（例えば、ＭＶＤ精度セットが｛１，１／４，４｝−画素）の場合、ＡＭＶＲにおけるＭＶＤ精度構文要素は、アフィンモードで再使用され、即ち、単一の構文要素のみが使用される。
ｉ．  代替的に、さらに、ＣＡＢＡＣエンコーダ／デコーダにおいて、この構文要素を符号化／復号化する時に、ＡＭＶＲおよびアフィンモードに対して同じまたは異なるコンテキストモデルを使用してもよい。
ｉｉ．  代替的に、この構文要素は、ＡＭＶＲおよびアフィンモードにおいて異なる意味論を有してもよい。例えば、ＡＭＶＲにおいて、０、１、および２に等しい構文要素は、それぞれ１／４画素、１画素、および４画素のＭＶ精度を示し、一方、アフィンモードにおいて、０、１、および２に等しい構文要素は、それぞれ１／４画素、１／１６画素、および１画素のＭＶ精度を示す。
ｃ．  一例において、アフィンモードがＡＭＶＲと同数のＭＶＤ精度を使用するが、異なるＭＶＤ精度のセット（例えば、ＡＭＶＲに設定されたＭＶＤ精度は｛１，１／４，４｝−画素であり、アフィンの場合、それは｛１／１６，１／４，１｝−画素｝−画素である）を使用する場合、ＡＭＶＲにおけるＭＶＤ精度構文要素は、アフィンモードで再使用される、即ち、１つの構文要素のみが使用される。
ｉ．  代替的に、さらに、ＣＡＢＡＣエンコーダ／デコーダにおいて、この構文要素を符号化／復号化する時に、ＡＭＶＲおよびアフィンモードに対して同じまたは異なるコンテキストモデルを使用してもよい。
ｉｉ．  代替的に、この構文要素は、ＡＭＶＲおよびアフィンモードにおいて異なる意味論を有してもよい。
ｄ．  一例において、アフィンモードは、ＡＭＶＲよりも小さいＭＶＤ精度を使用し、ＡＭＶＲにおけるＭＶＤ精度構文要素は、アフィンモードで再使用される。しかしながら、構文要素値のサブセットのみがアフィンモードに有効である。
ｉ．  代替的に、さらに、ＣＡＢＡＣエンコーダ／デコーダにおいて、この構文要素を符号化／復号化する時に、ＡＭＶＲおよびアフィンモードに対して同じまたは異なるコンテキストモデルを使用してもよい。
ｉｉ．  代替的に、この構文要素は、ＡＭＶＲおよびアフィンモードにおいて異なる意味論を有してもよい。
ｅ．  一例において、アフィンモードは、ＡＭＶＲよりも高いＭＶＤ精度を使用し、ＡＭＶＲにおけるＭＶＤ精度構文要素は、アフィンモードで再使用される。しかしながら、このような構文要素は、アフィンモードにおいてより多くの値を許容するように拡張される。
ｉ．  代替的に、さらに、ＣＡＢＡＣエンコーダ／デコーダにおいて、この構文要素を符号化／復号化する時に、ＡＭＶＲおよびアフィンモードに対して同じまたは異なるコンテキストモデルを使用してもよい。
ｉｉ．  代替的に、この構文要素は、ＡＭＶＲおよびアフィンモードにおいて異なる意味論を有してもよい。
ｆ．  一例において、アフィンモードのＭＶＤ精度を符号化するために新しい構文要素が使用され、すなわち、ＡＭＶＲのＭＶＤ精度を符号化するためとアフィンモードのために２つの異なる構文要素が使用される。
ｇ．  アフィンモードのＭＶＤ精度の指示のための構文は、以下の条件のうちの１つまたはすべてが真である下で信号通知されてもよい。
ｉ．  すべての制御点のＭＶＤがゼロでない。
ｉｉ．  少なくとも１つの制御点のためのＭＶＤがゼロでない。
ｉｉｉ．  １つの制御点（例えば、第１のＣＰＭＶ）のＭＶＤがゼロでない。
この場合、上記条件の１つまたはそれらすべてが満たされなかったときは、ＭＶＤ精度を信号通知する必要がない。
ｈ．  アフィンモードまたはＡＭＶＲモードのいずれかに対するＭＶＤ精度を示すための構文要素は、コンテキストで符号化されてもよく、コンテキストは、符号化された情報に依存する。
ｉ．  一例において、１つの構文要素しかない場合、コンテキストは、現在のブロックがアフィンモードで符号化されているかどうかに依存してもよい。
ｉ．  一例において、コンテキストは、近傍のブロック／時間層インデックス／予測方向のブロックサイズ／ブロック形状／ＭＶＤ精度等に依存してもよい。
ｊ．  アフィンモードにおいて複数のＭＶＤ精度の使用を有効にするか無効にするかは、ＳＰＳ／ＰＰＳ／ＶＰＳ／シーケンスヘッダ／ピクチャヘッダ／スライスヘッダ／ＣＴＵ群等において信号通知されてもよい。
ｉ．  一例において、アフィンモードのために複数のＭＶＤ精度の使用を許可するかまたは禁止するかの情報を信号通知するかは、他の構文要素に依存してもよい。例えば、複数のＭＶおよび／またはＭＶＰおよび／またはＭＶＤ精度のアフィンモードでの使用を有効にするまたは無効にする情報は、アフィンモードが有効にされている場合には信号通知され、アフィンモードが無効にされている場合には信号通知されず、０であると推測される。
ｋ．  代替的に、複数の構文要素は、アフィンインターモードにおいて、使用されるＭＶおよび／またはＭＶＰおよび／またはＭＶＤ精度（以下の説明において、全て「ＭＶＤ精度」と呼ばれる）を示すように信号通知されてもよい。
ｉ．  一例において、アフィンインターモードおよび通常インターモードにおいて使用されるＭＶＤ精度を示すための構文要素は、異なってもよい。
１．  アフィンインターモードおよび通常インターモードにおいて使用されるＭＶＤ精度を示すための構文要素の数は、異なってもよい。
２．  アフィンインターモードおよび通常インターモードにおいて使用されるＭＶＤ精度を示すための構文要素の意味論は、異なってもよい。
３．  １つの構文要素を符号化し、アフィンインターモードおよび通常インターモードで使用されるＭＶＤ精度を示すための算術符号化におけるコンテキストモデルは、異なってもよい。
４．  アフィンインターモードおよび通常インターモードで使用されるＭＶＤ精度を示すように、１つの構文要素を符号化するために、算術符号化においてコンテキストモデルを導出する方法は、異なってもよい。
ｉｉ．  一例において、第１の構文要素（例えば、ａｍｖｒ＿ｆｌａｇ））は、アフィン符号化ブロックにおいてＡＭＶＲを適用するかどうかを示すように信号通知されてもよい。
１．  第１の構文要素は、条件付きで信号通知される。
ａ．  一例において、現在のブロックが特定のモード（例えば、ＣＰＲ／ＩＢＣモード）で符号化される場合、第１の構文要素（ａｍｖｒ＿ｆｌａｇ）の信号通知はスキップされる。
ｂ．  一例において、すべてのＣＰＭＶのＭＶＤ（水平成分および垂直成分の両方を含む）がすべてゼロである場合、第１の構文要素（ａｍｖｒ＿ｆｌａｇ）の信号通知はスキップされる。
ｃ．  一例において、選択されたＣＰＭＶのＭＶＤ（水平成分および垂直成分の両方を含む）がすべてゼロである場合、第１の構文要素（ａｍｖｒ＿ｆｌａｇ）の信号通知はスキップされる。
ｉ．  一例において、選択されたＣＰＭＶのＭＶＤは、符号化／復号化される第１のＣＰＭＶのＭＶＤである。
ｄ．  一例において、アフィン符号化ブロックのために複数のＭＶＤ精度を有効にすることの使用が偽である場合、第１の構文要素（ａｍｖｒ＿ｆｌａｇ）の信号通知はスキップされる。
ｅ．  一例において、第１の構文要素は、以下の条件下で信号通知されてもよい。
ｉ．  アフィン符号化ブロックのために複数のＭＶＤ精度を可能にすることの使用は真であり、現在のブロックはアフィンモードで符号化される。
ｉｉ．  代替的に、アフィン符号化ブロックのために複数のＭＶＤ精度を有効にすることの使用は真であり、現在のブロックは、アフィンモードで符号化され、ＣＰＭＶのＭＶＤの少なくとも１つのコンポーネントは、０に等しくない。
ｉｉｉ．  代替的に、アフィン符号化ブロックのために複数のＭＶＤ精度を有効にすることの使用は真であり、現在のブロックは、アフィンモードで符号化され、選択されたＣＰＭＶのＭＶＤの少なくとも１つのコンポーネントは、０に等しくない。
１．  一例において、選択されたＣＰＭＶのＭＶＤは、符号化／復号化される第１のＣＰＭＶのＭＶＤである。
２．  アフィン符号化ブロックにＡＭＶＲを適用しない場合、または第１の構文要素が存在しない場合、デフォルトのＭＶおよび／またはＭＶＤ精度が利用される。
ａ．  一例において、デフォルト精度は、１／４画素である。
ｂ．  代替的に、デフォルトの精度は、アフィン符号化ブロックの動き補償に用いられる精度に設定される。
３．  例えば、ａｍｖｒ＿ｆｌａｇが０である場合、アフィンモードのＭＶＤ精度は１／４画素であり、そうでない場合、アフィンモードのＭＶＤ精度は他の値であってもよい。
ａ．  代替的に、追加のＭＶＤ精度は、第２の構文要素を介してさらに信号通知されてもよい。
ｉｉｉ．  一例において、第２の構文要素（例えば、ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｉｏｎ＿ｆｌａｇ）は、アフィンモードのＭＶＤ精度を示すように信号通知されてもよい。
１．  一例において、第２の構文要素が信号通知されるかどうかは、第１の構文要素に依存してもよい。例えば、第２の構文要素は、第１の構文要素が１であるときにのみ信号通知される。
２．  一例において、第２の構文要素が０である場合、アフィンモードのＭＶＤ精度は１画素であり、そうでない場合、アフィンモードのＭＶＤ精度は１／１６画素である。
３．  一例において、第２の構文要素が０である場合、アフィンモードのＭＶＤ精度は１／１６画素であり、そうでない場合、アフィンモードのＭＶＤ精度は全画素である。
ｉｖ．  一例において、アフィンインターモードにおいて使用されるＭＶＤ精度を示すために使用される構文要素は、同じ名前を有するが通常のインターモードにおいて使用されるＭＶＤ精度を示すために使用される構文要素と同じコンテキストモデルを共有する。
１．  代替的に、アフィンインターモードで使用されるＭＶＤ精度を示すのに使用される構文要素は、同じ名前を有するが通常のインターモードで使用されるＭＶＤ精度を示すのに使用される構文要素として、異なるコンテキストモデルを使用する。
【０２４８】
３．  アフィン符号化ブロックに対してＡＭＶＲを適用するかどうか、またはどのように適用するかは、現在のブロックの参照ピクチャに依存してもよい。
ｉ．一例において、参照ピクチャが現在のピクチャである場合、即ち、現在のブロックにおいてイントラブロックコピーが適用される場合、ＡＭＶＲは適用されない。
【０２４９】
エンコーダのためのアフィンモードにおけるＡＶＭＲの高速アルゴリズム
アフィンモードとＡＭＶＰモードのＲＤコスト（実質ＲＤコスト、またはＳＡＴＤ／ＳＳＥ／ＳＡＤコストにラフビットコストを加えたもの）を、ＩＭＶ＝ｉのときのａｆｆｉｎｅＣｏｓｔｉ、ａｍｖｐＣｏｓｔｉと表す。ここで、ｉ＝０，１，２である。ここで、ＩＭＶ＝０は１／４画素のＭＶを意味し、ＩＭＶ＝１はＡＭＶＰモードでは整数ＭＶ、アフィンモードでは１／１６画素のＭＶを意味し、ＩＭＶ＝２はＡＭＶＰモードでは４画素のＭＶ、アフィンモードでは整数ＭＶを意味する。マージモードのＲＤコストをｍｅｒｇｅＣｏｓｔとする。
【０２５０】
４．  現在のＣＵのアフィンモードにおいて、その親ＣＵのベストモードがＡＦ＿ＩＮＴＥＲモードでもＡＦ＿ＭＥＲＧＥモードでもない場合、ＡＭＶＲを無効にすることが提案される。
ａ．  代替的に、ＡＭＶＲは、その親ＣＵの最良のモードがＡＦ＿ＩＮＴＥＲモードでない場合、現在のＣＵのアフィンモードのために無効にされる。
【０２５１】
５．  ａｆｆｉｎｅＣｏｓｔ０＞ｔｈ１＊ａｍｖｐＣｏｓｔ０（ここで、ｔｈ１は正の閾値である）の場合、ＡＭＶＲはアフィンモードに対して無効にされることが提案される。
ａ．  代替的に、ｍｉｎ（ａｆｆｉｎｅＣｏｓｔ０，ａｍｖｐＣｏｓｔ０）＞ｔｈ２＊ｍｅｒｇｅＣｏｓｔ（ここで、ｔｈ２は正の閾値である）である場合、ＡＭＶＲはアフィンモードに対して無効にされる。
ｂ．  代替的に、ａｆｆｉｎｅＣｏｓｔ０＞ｔｈ３＊ａｆｆｉｎｅＣｏｓｔ１（ここで、ｔｈ３は正の閾値であるである）場合、整数ＭＶはアフィンモードに対して無効にされる。
【０２５２】
６．  ａｍｖｐＣｏｓｔ０＞ｔｈ４＊ａｆｆｉｎｅＣｏｓｔ０（ここで、ｔｈ４は正の閾値である）の場合、ＡＭＶＰモードではＡＭＶＲを無効にすることが提案される。
ａ．  代替的に、ＡＭＶＰモードでは、ｍｉｎ（ａｆｆｉｎｅＣｏｓｔ０，ａｍｖｐＣｏｓｔ０）＞ｔｈ５＊ｍｅｒｇｅＣｏｓｔ（ここで、ｔｈ５は正の閾値である）の場合、ＡＭＶＲは無効にされる。
【０２５３】
７．  １つのＭＶ精度で得られた４／６パラメータアフィンモデルを、他のＭＶ精度のための候補開始探索点として使用してもよいことが提案される。
ａ．  一例において、１／１６ＭＶで得られた４／６パラメータアフィンモデルを、他のＭＶ精度のための候補開始探索点として使用してもよい。
ｂ．  一例において、１／４ＭＶで得られた４／６パラメータアフィンモデルを、他のＭＶ精度のための候補開始探索点として使用してもよい。
【０２５４】
８．  エンコーダにおいて、現在のブロックの親ブロックがアフィンモードを選択していない場合、アフィンモードのＡＭＶＲはチェックされない。
【０２５５】
９．  前述の符号化されたフレーム／スライス／タイル／ＣＴＵ行におけるアフィン符号化ブロックのための異なるＭＶ精度の使用の統計を利用して、現在のスライス／タイル／ＣＴＵ行におけるアフィン符号化ブロックのためのＭＶ精度のひずみ率計算を早期に終了させることができる。
ａ．  一例において、特定のＭＶ精度を有するアフィン符号化ブロックのパーセンテージが記録される。百分率が小さ過ぎる場合、対応するＭＶ精度のチェックはスキップされる。
ｂ．  一例において、あるＭＶ精度をスキップするかどうかを判定するために、同じ時間層を有する、以前符号化されたフレームが利用される。
【０２５６】
１０．  上記提案の方法は、ブロックサイズ、スライス／ピクチャ／タイルタイプ、または動き情報等の特定の条件下で適用されてもよい。
ａ．  一例において、ブロックサイズがＭ＊Ｈサンプルより小さい、例えば、１６個または３２個または６４個の輝度サンプルを含む場合、提案した方法は許可されない。
ｂ．  代替的に、ブロックの幅および／または高さの最小サイズがＸよりも小さいまたはＸ以下の場合、提案した方法は許可されない。一例において、Ｘは８に設定される。
ｃ．  代替的に、ブロックの幅および／または高さの最小サイズがＸよりも小さくない場合、提案される方法は許可されない。一例において、Ｘは８に設定される。
ｄ．  代替的に、ブロックの幅＞ｔｈ１または＞＝ｔｈ１および／またはブロックの高さ＞ｔｈ２または＞＝ｔｈ２の時、提案した方法は許可されない。一例において、ｔｈ１および／またはｔｈ２は、８に設定される。
ｅ．  代替的に、ブロックの幅＜ｔｈ１または＜＝ｔｈ１および／またはブロックの高さ＜ｔｈ２または＜＝ｔｈ２の時、提案された方法は許可されない。一例において、ｔｈ１および／またはｔｈ２は、８に設定される。
ｆ．  代替的に、上記方法を有効または無効にするか、および／またはどの方法を適用するかは、ブロックの寸法、映像処理データユニット（ＶＰＤＵ）、ピクチャタイプ、低遅延チェックフラグ、現在のブロックの符号化された情報（例えば、参照ピクチャ、単または双予測）または以前符号化されたブロックに依存することができる。
【０２５７】
１１．  アフィンモードのためのＡＭＶＲ方法は、イントラブロックコピー（ＩＢＣ、別名、現在のピクチャリファレンス（ＣＰＲ））を適用するかどうかで、異なる方法で実施することができる。
ａ．  一例において、１つのブロックがＩＢＣによって符号化される場合、アフィンモードのためのＡＭＶＲを使用できない。
ｂ．  一例において、アフィンモードのためのＡＭＶＲを使用してもよいが、１つのブロックがＩＢＣによって符号化される場合、候補ＭＶ／ＭＶＤ／ＭＶＰ精度は、非ＩＢＣ符号化アフィン符号化ブロックのために使用されるものと異なってもよい。
【０２５８】
１２．  文書における「スライス」という用語はすべて、「タイルグループ」または「タイル」に置き換えてもよい。
【０２５９】
１３．  ＶＰＳ／ＳＰＳ／ＰＰＳ／スライスヘッダ／タイルグループヘッダにおいて、１に等しい構文要素（例：ｎｏ＿ａｍｖｒ＿ｃｏｎｓｔｒａｉｎｔ＿ｆｌａｇ）は、ＡＭＶＲが有効かどうかを示す構文要素（例：ｓｐｓ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）と、アフィンＡＭＶＲが有効かどうかを示す構文要素（例：ｓｐｓ＿ａｆｆｉｎｅ＿ａｖｍｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）の両方が０に等しいことがビットストリーム適合性の要件であることを指定している。０に等しい構文要素（例えば、ｎｏ＿ａｍｖｒ＿ｃｏｎｓｔｒａｉｎｔ＿ｆｌａｇ）は、制約を課さない。
【０２６０】
１４．  ＶＰＳ／ＳＰＳ／ＰＰＳ／スライスヘッダ／タイルグループヘッダまたは他の映像データユニットにおいて、構文要素（例えば、ｎｏ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｃｏｎｓｔｒａｉｎｔ＿ｆｌａｇ）を信号通知することができる。
ａ．  一例において、ｎｏ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｃｏｎｓｔｒａｉｎｔ＿ｆｌａｇが１に等しいことは、アフィンＡＭＶＲが有効化されるかどうかを示すための構文要素（例えば、ｓｐｓ＿ａｆｆｉｎｅ＿ａｖｍｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ）が０に等しいことがビットストリーム適合性の要件であることを指定する。構文要素（例えば、ｎｏ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｃｏｎｓｔｒａｉｎｔ＿ｆｌａｇ）が０に等しい場合、制約は課されない。
【０２６１】
５．  実施形態
【０２６２】
５．１．  実施形態１：アフィンＡＭＶＲモードの使用方法の表示
それは、ＳＰＳ／ＰＰＳ／ＶＰＳ／ＡＰＳ／シーケンスヘッダ／ピクチャヘッダ／タイルグループヘッダ等で信号通知されてもよい。この章では、ＳＰＳにおける信号通知について説明する。
【０２６３】
５．１．１．  ＳＰＳ構文テーブル
【０２６４】
【表６】
2022500909.tif 000054
【０２６５】
代替のＳＰＳ構文テーブルは、以下のように与えられる。
【０２６６】
【表７】
2022500909.tif 000055
【０２６７】
意味論：
ｓｐｓ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ＝１は、アフィンインターモードの動きベクトル符号化に適応動きベクトル差解像度を用いることを指定する。ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ  ｅｑｕａｌ  ｔｏ  ０は、アフィンインターモードの動きベクトル符号化に適応動きベクトル差分解像度を用いないことを指定する。
【０２６８】
５．２．  アフィンＡＭＶＲモード情報の構文解析処理
アフィンＡＭＶＲモード情報の構文は、それをＡＭＶＲモード情報（通常のインターモードに適用される）に再利用してもよい。代替的に、異なる構文要素を利用してもよい。
アフィンＡＭＶＲモード情報は、条件付きで信号通知されてもよい。以下の異なる実施形態は、この条件のいくつかの例を示す。
【０２６９】
５．２．１．  実施形態＃１：ＣＵ構文テーブル
【０２７０】
【表８】
2022500909.tif 000056
【０２７１】
【表９】
2022500909.tif 000057
【０２７２】
５．２．２．  実施形態２：代替ＣＵ構文テーブル設計
【０２７３】
【表１０】
2022500909.tif 000058
【０２７４】
【表１１】
2022500909.tif 000059
【０２７５】
５．２．３．  実施形態３：第３ＣＵ構文テーブル設計
【０２７６】
【表１２】
2022500909.tif 000060
【０２７７】
【表１３】
2022500909.tif 000061
【０２７８】
５．２．４．  実施形態４：ＡＭＶＲおよびアフィンＡＭＶＲモードのための異なる構文を有する構文テーブル設計
【０２７９】
【表１４】
2022500909.tif 000062
【０２８０】
【表１５】
2022500909.tif 000063
【０２８１】
・一例において、ｃｏｎｄｉｔｉｏｎｓＡは、以下のように定義される。
（ｓｐｓ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ  ＆＆  ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ＝＝１  ＆＆
（ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［０］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［１］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［０］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［１］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［０］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［１］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［１］［０］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［１］［１］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［０］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［１］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［２］［０］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［２］［１］！＝０））
【０２８２】
代替的に、ｃｏｎｄｉｔｉｏｎｓＡは、以下のように定義される。
（ｓｐｓ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ  ＆＆  ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ＝＝１  ＆＆
（ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［０］！＝０｜｜
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［１］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［０］！＝０｜｜
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［１］！＝０）
【０２８３】
代替的に、ｃｏｎｄｉｔｉｏｎｓＡは、以下のように定義される。
（ｓｐｓ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ  ＆＆  ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ＝＝１  ＆＆
（ＭｖｄＣｐＬＸ［ｘ０］［ｙ０］［０］［０］！＝０｜｜
ＭｖｄＣｐＬＸ［ｘ０］［ｙ０］［０］［１］！＝０）
ここで、Ｘは、０または１である。
【０２８４】
代替的に、ｃｏｎｄｉｔｉｏｎｓＡは、以下のように定義される。
（ｓｐｓ＿ａｆｆｉｎｅ＿ａｍｖｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ  ＆＆  ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ＝＝１）
【０２８５】
・一例において、ｃｏｎｄｉｔｉｏｎｓＢは、以下のように定義される。
！ｓｐｓ＿ｃｐｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ｜｜！（ｉｎｔｅｒ＿ｐｒｅｄ＿ｉｄｃ［ｘ０］［ｙ０］＝＝ＰＲＥＤ＿Ｌ０  ＆＆
ｒｅｆ＿ｉｄｘ＿ｌ０［ｘ０］［ｙ０］＝＝ｎｕｍ＿ｒｅｆ＿ｉｄｘ＿ｌ０＿ａｃｔｉｖｅ＿ｍｉｎｕｓ１）
【０２８６】
代替的に、ｃｏｎｄｉｔｉｏｎｓＢは、以下のように定義される。
！ｓｐｓ＿ｃｐｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇ｜｜！（ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］＝＝ＣＰＲ）．
【０２８７】
代替的に、ｃｏｎｄｉｔｉｏｎｓＢは、以下のように定義される。
！ｓｐｓ＿ｉｂｃ＿ｅｎａｂｌｅｄ＿ｆｌａｇ｜｜！（ｐｒｅｄ＿ｍｏｄｅ［ｘ０］［ｙ０］＝＝ＩＢＣ）．
【０２８８】
ＡＭＶＲまたはアフィンＡＭＶＲをコードするために異なる構文要素を使用する場合、アフィンＡＭＶＲに適用される５．５の実施形態に使用されるコンテキストモデリングおよび／またはコンテキストをしかるべく適用することができる。
【０２８９】
５．２．５．  意味論
ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］は、動きベクトルの差の解像度を指定する。配列インデックスｘ０，ｙ０は、ピクチャの左上輝度サンプルに対する符号化ブロックの左上輝度サンプルの位置（ｘ０，ｙ０）を指定する。ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］が０に等しい場合は、動きベクトル差の解像度が輝度サンプルの１／４であることを指定し、ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しい場合は、動きベクトル差の解像度がａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ［ｘ０］［ｙ０］でさらに指定されることを指定する。
ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しない場合、次のように推論される。
−ｓｐｓ＿ｃｐｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇが１に等しい場合、ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］は１に等しいと推測される。
−そうでない場合（ｓｐｓ＿ｃｐｒ＿ｅｎａｂｌｅｄ＿ｆｌａｇが０に等しい）、ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］は０に等しいと推論される。
【０２９０】
ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しい場合、動きベクトル差分の解像度はｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇが０の場合は４輝度サンプル、ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇが１の場合は１輝度サンプルであることを指定する。配列インデックスｘ０，ｙ０は、ピクチャの左上輝度サンプルに対する、考慮される符号化ブロックの左上輝度サンプルの位置（ｘ０，ｙ０）を指定する。
ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ［ｘ０］［ｙ０］が存在しない場合、０に等しいと推測される。
【０２９１】
ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ［ｘ０］［ｙ０］が０の場合、変数ＭｖＳｈｉｆｔは（ａｍｖｒ＿ｆｌａｇ［ｘ０］［ｙ０］＋ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ［ｘ０］［ｙ０］）＜＜１に設定され、変数ＭｖｄＬ０［ｘ０］［ｙ０］［０］、ＭｖｄＬ０［ｘ０］［ｙ０］［１］、ＭｖｄＬ１［ｘ０］［ｙ０］［０］、ＭｖｄＬ１［ｘ０］［ｙ０］［１］は以下のように修正される。
【０２９２】
ＭｖｄＬ０［ｘ０］［ｙ０］［０］＝ＭｖｄＬ０［ｘ０］［ｙ０］［０］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−７０）
ＭｖｄＬ０［ｘ０］［ｙ０］［１］＝ＭｖｄＬ０［ｘ０］［ｙ０］［１］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−７１）
ＭｖｄＬ１［ｘ０］［ｙ０］［０］＝ＭｖｄＬ１［ｘ０］［ｙ０］［０］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−７２）
ＭｖｄＬ１［ｘ０］［ｙ０］［１］＝ＭｖｄＬ１［ｘ０］［ｙ０］［１］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−７３）
【０２９３】
ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ［ｘ０］［ｙ０］が１の場合、変数ＭｖＳｈｉｆｔは、（ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ？（ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ＜＜１）：（−（ａｍｖｒ＿ｆｌａｇ＜＜１）））に設定され、変数ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［０］、ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［１］、ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［０］、ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［１］、ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［０］、ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［１］は、以下のように修正される。
【０２９４】
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［０］＝ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［０］［０］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−７３）
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［１］＝ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［０］［１］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−６７）
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［０］＝ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［１］［０］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−６６）
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［１］［１］＝ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［１］［１］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−６７）
ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［０］＝ＭｖｄＣｐＬ０［ｘ０］［ｙ０］［２］［０］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−６６）
ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［２］［１］＝ＭｖｄＣｐＬ１［ｘ０］［ｙ０］［２］［１］＜＜（ＭｖＳｈｉｆｔ＋２）  （７−６７）
【０２９５】
代替的に、ｉｎｔｅｒ＿ａｆｆｉｎｅ＿ｆｌａｇ［ｘ０］［ｙ０］が１に等しい場合、変数ＭｖＳｈｉｆｔは、（ａｆｆｉｎｅ＿ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ？（ａｆｆｉｎｅ＿ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇ＜＜１）：（−（ａｆｆｉｎｅ＿ａｍｖｒ＿ｆｌａｇ＜＜１）））に等しく設定される。
【０２９６】
５．３．  動きベクトルの丸め処理
丸め処理は、所与のｒｉｇｈｔＳｈｉｆｔ値が０（１／１６画素の精度で発生する）である場合、丸めオフセットを（１＜＜（ｒｉｇｈｔＳｈｉｆｔ−１））ではなく、０に設定するように修正される。
【０２９７】
例えば、ＭＶのための丸め処理の従属節は、以下のように修正される。
この処理への入力は以下の通りである。
−動きベクトルｍｖＸ、
−丸めるときの右シフトパラメータｒｉｇｈｔＳｈｉｆｔ、
−解像度を上げるための、左シフトパラメータｌｅｆｔＳｈｉｆｔ。
この処理の出力が丸められた動きベクトルｍｖＸである。
ｍｖＸを丸める場合、以下が適用される。
【０２９８】
ｏｆｆｓｅｔ＝（ｒｉｇｈｔＳｈｉｆｔ＝＝０）？０：（１＜＜（ｒｉｇｈｔＳｈｉｆｔ−１））      （８−３７１）
ｍｖＸ［０］＝（ｍｖＸ［０］＞＝０？（ｍｖＸ［０］＋ｏｆｆｓｅｔ）＞＞ｒｉｇｈｔＳｈｉｆｔ：                
−（（−ｍｖＸ［０］＋ｏｆｆｓｅｔ）＞＞ｒｉｇｈｔＳｈｉｆｔ））＜＜ｌｅｆｔＳｈｉｆｔ      （８−３７２）
ｍｖＸ［１］＝（ｍｖＸ［１］＞＝０？（ｍｖＸ［１］＋ｏｆｆｓｅｔ）＞＞ｒｉｇｈｔＳｈｉｆｔ：                
−（（−ｍｖＸ［１］＋ｏｆｆｓｅｔ）＞＞ｒｉｇｈｔＳｈｉｆｔ））＜＜ｌｅｆｔＳｈｉｆｔ      （８−３７３）
【０２９９】
５．４．  復号化処理
アフィン動きベクトル導出処理において呼び出される丸め処理は、２に固定される代わりに、（ＭｖＳｈｉｆｔ＋２）の入力を用いて行われる。
【０３００】
輝度アフィン制御点動きベクトル予測子の導出処理
この処理への入力は以下の通りである。
−現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置（ｘＣｂ、ｙＣｂ）
−現在の輝度符号化ブロックの幅および高さを指定する２つの変数ｃｂＷｉｄｔｈおよびｃｂＨｅｉｇｈ
−現在の符号化ユニットｒｅｆＩｄｘＬＸの参照インデックスであり、Ｘは０または１である。
−制御点動きベクトルｎｕｍＣｐＭｖの数
この処理の出力は、Ｘが０または１として、ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１の輝度アフィン制御点動きベクトル予測子ｍｖｐＣｐＬＸ［ｃｐＩｄｘ］である。
【０３０１】
Ｘが０または１として、ｃｐＭｖｐＬｉｓｔＬＸである制御点動きベクトル予測子候補リストを導出するために、以下の順序付けられたステップが適用される。
【０３０２】
リストｎｕｍＣｐＭｖｐＣａｎｄＬＸにおける制御点動きベクトル予測子の候補の数は、０に等しく設定される。
変数ａｖａｉｌａｂｌｅＦｌａｇＡおよびａｖａｉｌａｂｌｅＦｌａｇＢは、いずれもＦＡＬＳＥに等しく設定される。
【０３０３】
…
８．４．２．１４節で規定された動きベクトルの丸め処理は、ｃｐＭｖｐＬＸ［ｃｐＩｄｘに等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１で丸められたｃｐＭｖｐＬＸ［ｃｐＩｄｘ］を出力として用いて呼び出される。
【０３０４】
…
変数ａｖａｉｌａｂｌｅＦｌａｇＡはＴＲＵＥに等しく設定される。
８．４．４．５節で規定された近傍のブロックからの輝度アフィン制御点動きベクトルの導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロック幅と高さ（ｃｂＷｉｄｔｈ，ｃｂＨｅｉｇｈｔ）、近傍の輝度符号化ブロック位置（ｘＮｂ，ｙＮｂ）、近傍の輝度符号化ブロック幅と高さ（ｎｂＷ，ｎｂＨ）、制御点動きベクトル数ｎｕｍＣｐＭｖを入力とし、制御点動きベクトル予測子候補ｃｐＭｖｐＬＹ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１）を出力として用いて呼び出される。
８．４．２．１４節で規定された動きベクトルの丸め処理は、ｃｐＭｖｐＬＹ［ｃｐＩｄｘ］と等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１で丸められたｃｐＭｖｐＬＹ［ｃｐＩｄｘ］を出力として用いて呼び出される。
【０３０５】
…
８．４．４．５節で規定された近傍のブロックからの輝度アフィン制御点動きベクトルの導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロック幅および高さ（ｃｂＷｉｄｔｈ，ｃｂＨｅｉｇｈｔ）、近傍の輝度符号化ブロック位置（ｘＮｂ，ｙＮｂ）、および制御点動きベクトル数ｎｕｍＣｐＭｖを入力とし、制御点動きベクトル予測子候補ｃｐＭｖｐＬＸ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１）を出力として用いて呼び出される。
８．４．２．１４節で規定された動きベクトルの丸め処理は、ｃｐＭｖｐＬＸ［ｃｐＩｄｘ］に等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１で丸められたｃｐＭｖｐＬＸ［ｃｐＩｄｘ］を出力として用いて呼び出される。
【０３０６】
以下の割り当てを行う。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｃｐＭｖｐＬＸ［０］      （８−６１８）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｃｐＭｖｐＬＸ［１］      （８−６１９）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｃｐＭｖｐＬＸ［２］      （８−６２０）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６２１）
あるいは、ＰｒｅｄＦｌａｇＬＹ［ｘＮｂＢｋ］［ｙＮｂＢｋ］（ｗｉｔｈＹ＝！Ｘ）が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ＲｅｆＩｄｘＬＹ［ｘＮｂＢｋ］［ｙＮｂＢｋ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しい場合、以下が適用される。
【０３０７】
変数ａｖａｉｌａｂｌｅＦｌａｇＢはＴＲＵＥに設定される。
８．４．４．５節で規定された近傍のブロックからの輝度アフィン制御点動きベクトルの導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロック幅と高さ（ｃｂＷｉｄｔｈ，ｃｂＨｅｉｇｈｔ）、近傍の輝度符号化ブロック位置（ｘＮｂ，ｙＮｂ）、近傍の輝度符号化ブロック幅と高さ（ｎｂＷ，ｎｂＨ）、制御点動きベクトル数ｎｕｍＣｐＭｖを入力とし、制御点動きベクトル予測子候補ｃｐＭｖｐＬＹ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１）を出力として用いて呼び出される。
８．４．２．１４節で規定された動きベクトルの丸め処理は、ｃｐＭｖｐＬＹ［ｃｐＩｄｘ］と等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、ｃｐＩｄｘ＝０．．．ｎｕｍＣｐＭｖ−１で丸められたｃｐＭｖｐＬＹ［ｃｐＩｄｘ］を出力として用いて呼び出される。
【０３０８】
以下の割り当てを行う。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｃｐＭｖｐＬＹ［０］      （８−６２２）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｃｐＭｖｐＬＹ［１］      （８−６２３）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｃｐＭｖｐＬＹ［２］      （８−６２４）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６２５）
【０３０９】
ｎｕｍＣｐＭｖｐＣａｎｄＬＸが２未満である場合、以下が適用される。
８．４．４．８節で規定するアフィン制御点動きベクトル予測候補の導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロック幅ｃｂＷｉｄｔｈ、輝度符号化ブロック高さｃｂＨｅｉｇｈｔ、現在の符号化ユニットｒｅｆＩｄｘＬＸの参照インデックスを入力とし、可用性フラグａｖａｉｌａｂｌｅＣｏｎｓＦｌａｇＬＸ、可用性フラグａｖａｉｌａｂｌｅＦｌａｇＬＸ［ｃｐＩｄｘ］およびｃｐＭｖｐＬＸ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．ｎｕｍＣｐＭｖ−１）を出力として用いて呼び出される。
【０３１０】
ａｖａｉｌａｂｌｅＣｏｎｓＦｌａｇＬＸが１に等しく、ｎｕｍＣｐＭｖｐＣａｎｄＬＸが０に等しい場合、以下の割り当てが行われる。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｃｐＭｖｐＬＸ［０］      （８−６２６）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｃｐＭｖｐＬＸ［１］      （８−６２７）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｃｐＭｖｐＬＸ［２］      （８−６２８）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６２９）
【０３１１】
ｃｐＩｄｘ＝０．．ｎｕｍＣｐＭｖ−１に適用される。
ｎｕｍＣｐＭｖｐＣａｎｄＬＸが２未満であり、かつａｖａｉｌａｂｌｅＦｌａｇＬＸ［ｃｐＩｄｘ］が１に等しい場合、以下の割り当てが行われる。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｃｐＭｖｐＬＸ［ｃｐＩｄｘ］      （８−６３０）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｃｐＭｖｐＬＸ［ｃｐＩｄｘ］      （８−６３１）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｃｐＭｖｐＬＸ［ｃｐＩｄｘ］      （８−６３２）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６３３）
【０３１２】
ｎｕｍＣｐＭｖｐＣａｎｄＬＸが２未満である場合、以下が適用される。
８．４．２．１１節に記載の時間的輝度動きベクトル予測の導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロックの幅ｃｂＷｉｄｔｈ、輝度符号化ブロックの高さｃｂＨｅｉｇｈｔ、ｒｅｆＩｄｘＬＸを入力とし、可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸＣｏｌ、および時間的動きベクトル予測子ｍｖＬＸＣｏｌを出力として使用して呼び出される。
【０３１３】
ａｖａｉｌａｂｌｅＦｌａｇＬＸＣｏｌが１に等しい場合、以下が適用される。
８．４．２．１４節に記載の動きベクトルの丸め処理は、ｍｖＬＸＣｏｌと等しく設定されたｍｖＸ、（ＭｖＳｈｉｆｔ＋２）と等しいｒｉｇｈｔＳｈｉｆｔ  ｓｅｔ、（ＭｖＳｈｉｆｔ＋２）と等しく設定されたｌｅｆｔＳｈｉｆｔを入力とし、丸めたｍｖＬＸＣｏｌを出力として使用して呼び出される。
【０３１４】
以下の割り当てを行う。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｍｖＬＸＣｏｌ      （８−６３４）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｍｖＬＸＣｏｌ      （８−６３５）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｍｖＬＸＣｏｌ      （８−６３６）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６３７）
【０３１５】
ｎｕｍＣｐＭｖｐＣａｎｄＬＸが２未満である場合、ｎｕｍＣｐＭｖｐＣａｎｄＬＸが２に等しくなり、ｍｖＺｅｒｏ［０］およびｍｖＺｅｒｏ［１］の両方が０に等しくなるまで、以下を繰り返す。
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［０］＝ｍｖＺｅｒｏ      （８−６３８）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［１］＝ｍｖＺｅｒｏ      （８−６３９）
ｃｐＭｖｐＬｉｓｔＬＸ［ｎｕｍＣｐＭｖｐＣａｎｄＬＸ］［２］＝ｍｖＺｅｒｏ      （８−６４０）
ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＝ｎｕｍＣｐＭｖｐＣａｎｄＬＸ＋１      （８−６４１）
【０３１６】
Ｘが０または１であるアフィン制御点動きベクトル予測子ｃｐＭｖｐＬＸは、以下のように導出される。
ｃｐＭｖｐＬＸ＝ｃｐＭｖｐＬｉｓｔＬＸ［ｍｖｐ＿ｌＸ＿ｆｌａｇ［ｘＣｂ］［ｙＣｂ］］      （８−６４２）
【０３１７】
構築されたアフィン制御点動きベクトル予測候補の導出処理
この処理への入力は以下の通りである。
−現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを指定する輝度位置（ｘＣｂ，ｙＣｂ）
−現在の輝度符号化ブロックの幅および高さを指定する２つの変数ｃｂＷｉｄｔｈおよびｃｂＨｅｉｇｈ
−現在の予測ユニットの分割ｒｅｆＩｄｘＬＸ（Ｘが０または１）の参照インデックス。
この処理の出力は以下の通りである。
−構築されたアフィン制御点動きベクトル予測候補の可用性フラグａｖａｉｌａｂｌｅＣｏｎｓＦｌａｇＬＸ（Ｘは０または１）
−ａｖａｉｌａｂｉｌｉｔｙ  ｆｌａｇｓ  ａｖａｉｌａｂｉｌｉｔｙＬＸ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．２で、Ｘは０または１）
−構築されたアフィン制御点動きベクトル予測候補ｃｐＭｖＬＸ［ｃｐＩｄｘ］（ｃｐＩｄｘ＝０．．ｎｕｍＣｐＭｖ−１、Ｘは０または１）
【０３１８】
第１の（左上）制御点動きベクトルｃｐＭｖＬＸ［０］および可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［０］は、以下の順序ステップで導出される。
サンプル位置（ｘＮｂＢ２，ｙＮｂＢ２），（ｘＮｂＢ３，ｙＮｂＢ３）および（ｘＮｂＡ２，ｙＮｂＡ２）は、それぞれ、（ｘＣｂ−１，ｙＣｂ−１），（ｘＣｂ，ｙＣｂ−１）ａｎｄ（ｘＣｂ−１，ｙＣｂ）に等しく設定される。
可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［０］は０に等しく設定され、ｃｐＭｖＬＸ［０］の両方のコンポーネントは０に等しく設定される。
【０３１９】
以下は、（ｘＮｂＴＬ，ｙＮｂＴＬ）をＢ２，Ｂ３，Ａ２に置き換えた場合に適用される。
節に記載の符号化ブロックの可用性導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロックの幅ｃｂＷｉｄｔｈ、輝度符号化ブロックの高さｃｂＨｅｉｇｈｔ、（ｘＮｂＴＬ，ｙＮｂＴＬ）に等しく設定された輝度位置（ｘＮｂＹ，ｙＮｂＹ）を入力として呼び出され、出力は符号化ブロック可用性フラグａｖａｉｌａｂｉｌｉｔｙＴＲに割り当てられる。
【０３２０】
ａｖａｉｌａｂｌｅＴＬがＴＲＵＥに等しく、かつａｖａｉｌａｂｌｅＦｌａｇＬＸ［０］が０に等しい場合、以下が適用される。
【０３２１】
ＰｒｅｄＦｌａｇＬＸ［ｘＮｂＴＬ］［ｙＮｂＴＬ］が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ＲｅｆＩｄｘＬＸ［ｘＮｂＴＬ］［ｙＮｂＴＬ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＸ［ｘＮｂＴＬ］［ｙＮｂＴＬ］に対応する参照ピクチャが現在のピクチャでない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［０］は、１に等しく設定され、下記のような割り当てを行う。
【０３２２】
ｃｐＭｖＬＸ［０］＝ＭｖＬＸ［ｘＮｂＴＬ］［ｙＮｂＴＬ］      （８−６４３）
【０３２３】
そうでない場合、ＰｒｅｄＦｌａｇＬＹ［ｘＮｂＴＬ］［ｙＮｂＴＬ］（Ｙ＝！Ｘ）が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ＲｅｆＩｄｘＬＹ［ｘＮｂＴＬ］［ｙＮｂＴＬ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＹ［ｘＮｂＴＬ］［ｙＮｂＴＬ］に対応する参照ピクチャが現在の画像でない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［０］を１に等しく設定して下記のような割り当てを行う。
【０３２４】
ｃｐＭｖＬＸ［０］＝ＭｖＬＹ［ｘＮｂＴＬ］［ｙＮｂＴＬ］      （８−６４４）
【０３２５】
ａｖａｉｌａｂｌｅＦｌａｇＬＸ［０］が１の場合、８．４．２．１４節で指定された動きベクトルの丸め処理は、ｃｐＭｖＬＸ［０］に等しく設定されたｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定されたｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定されたｌｅｆｔＳｈｉｆｔを入力とし、丸められたｃｐＭｖＬＸ［０］を出力として呼び出される。
【０３２６】
第２の（右上）制御点動きベクトルｃｐＭｖＬＸ［１］および可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［１］は、以下の順序ステップで導出される。
サンプル位置（ｘＮｂＢ１，ｙＮｂＢ１）と（ｘＮｂＢ０，ｙＮｂＢ０）は、それぞれ、（ｘＣｂ＋ｃｂＷｉｄｔｈ−１，ｙＣｂ−１）および（ｘＣｂ＋ｃｂＷｉｄｔｈ，ｙＣｂ−１）と等しく設定される。
可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［１］は０に設定され、ｃｐＭｖＬＸ［１］の両方のコンポーネントは０に設定される。
【０３２７】
以下は、（ｘＮｂＴＲ，ｙＮｂＴＲ）をＢ１およびＢ０に置き換えた場合に適用される。
６．４．Ｘ節に指定されたように、符号化ブロックの可用性導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロックの幅ｃｂＷｉｄｔｈ、輝度符号化ブロックの高さｃｂＨｅｉｇｈｔ、（ｘＮｂＴＲ，ｙＮｂＴＲ）と等しく設定された輝度位置（ｘＮｂＹ，ｙＮｂＹ）を入力として呼び出され、出力は符号化ブロック可用性フラグａｖａｉｌａｂｉｌｉｔｙＴＲに割り当てられる。
【０３２８】
ａｖａｉｌａｂｌｅＴＲがＴＲＵＥに等しく、かつａｖａｉｌａｂｌｅＦｌａｇＬＸ［１］が０に等しい場合、以下が適用される。
【０３２９】
ＰｒｅｄＦｌａｇＬＸ［ｘＮｂＴＲ］［ｙＮｂＴＬＲ］が１に等しく、ＤｉｆｆＰｉｃＯｒｄｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ＲｅｆＩｄｘＬＸ［ｘＮｂＴＲ］［ｙＮｂＴＲ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＸ［ｘＮｂＴＲ］［ｙＮｂＴＲ］に対応する参照ピクチャが現在のピクチャでない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［１］は、１に等しく設定して下記のような割り当てを行う。
【０３３０】
ｃｐＭｖＬＸ［１］＝ＭｖＬＸ［ｘＮｂＴＲ］［ｙＮｂＴＲ］      （８−６４５）
【０３３１】
そうでない場合、ＰｒｅｄＦｌａｇＬＹ［ｘＮｂＴＲ］［ｙＮｂＴＲ］（Ｙ＝！Ｘ）が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ＲｅｆＩｄｘＬＹ［ｘＮｂＴＲ］［ｙＮｂＴＲ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＹ［ｘＮｂＴＲ］［ｙＮｂＴＲ］に対応する参照ピクチャが現在の画像でない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［１］を１に等しく設定して下記のような割り当てを行う。
【０３３２】
ｃｐＭｖＬＸ［１］＝ＭｖＬＹ［ｘＮｂＴＲ］［ｙＮｂＴＲ］      （８−６４６）
【０３３３】
ａｖａｉｌａｂｌｅＦｌａｇＬＸ［１］が１に等しい場合、８．４．２．１４節で指定された動きベクトルの丸め処理は、ｃｐＭｖＬＸ［１］に等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、丸められたｃｐＭｖＬＸ［１］を出力として呼び出される。
【０３３４】
第３の（左下）制御点動きベクトルｃｐＭｖＬＸ［２］および可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［２］は、以下の順序ステップで導出される。
【０３３５】
サンプル位置（ｘＮｂＡ１，ｙＮｂＡ１）および（ｘＮｂＡ０，ｙＮｂＡ０）は、それぞれ、（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ−１）および（ｘＣｂ−１，ｙＣｂ＋ｃｂＨｅｉｇｈｔ）に等しく設定される。
可用性フラグａｖａｉｌａｂｉｌｉｔｙＦｌａｇＬＸ［２］は０に等しく設定され、ｃｐＭｖＬＸ［２］の両方のコンポーネントは０に等しく設定される。
【０３３６】
以下は、（ｘＮｂＢＬ，ｙＮｂＢＬ）に適用され、ＢＬがＡ１およびＡ０に置き換えられる。
【０３３７】
６．４．Ｘ節に記載の符号化ブロックの可用性導出処理は、輝度符号化ブロック位置（ｘＣｂ，ｙＣｂ）、輝度符号化ブロックの幅ｃｂＷｉｄｔｈ、輝度符号化ブロックの高さｃｂＨｅｉｇｈｔ、輝度位置（ｘＮｂＹ，ｙＮｂＹ）＝（ｘＮｂＢＬ，ｙＮｂＢＬ）を入力として呼び出され、その出力は、符号化ブロック可用性フラグａｖａｉｌａｂｉｌｉｔｙＢＬに割り当てられる。
【０３３８】
ａｖａｉｌａｂｌｅＢＬがＴＲＵＥに等しく、かつａｖａｉｌａｂｌｅＦｌａｇＬＸ［２］が０に等しい場合、以下が適用される。
【０３３９】
ＰｒｅｄＦｌａｇＬＸ［ｘＮｂＢＬ］［ｙＮｂＢＬ］が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＸ［ＲｅｆＩｄｘＬＸ［ｘＮｂＢＬ］［ｙＮｂＢＬ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＹ［ｘＮｂＢＬ］［ｙＮｂＢＬ］に対応する参照ピクチャが現在のピクチャでない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［２］を１に設定し、以下のような割り当てを行う。
【０３４０】
ｃｐＭｖＬＸ［２］＝ＭｖＬＸ［ｘＮｂＢＬ］［ｙＮｂＢＬ］      （８−６４７）
【０３４１】
そうでない場合、ＰｒｅｄＦｌａｇＬＹ［ｘＮｂＢＬ］［ｙＮｂＢＬ］（Ｙ＝！Ｘ）が１に等しく、ＤｉｆｆＰｉｃＯＲＤｅｒＣｎｔ（ＲｅｆＰｉｃＬｉｓｔＹ［ＲｅｆＩｄｘＬＹ［ｘＮｂＢＬ］［ｙＮｂＢＬ］］，ＲｅｆＰｉｃＬｉｓｔＸ［ｒｅｆＩｄｘＬＸ］）が０に等しく、ＲｅｆＩｄｘＬＹ［ｘＮｂＢＬ］［ｙＮｂＢＬ］に対応する参照ピクチャが現在の画像でない場合、ａｖａｉｌａｂｌｅＦｌａｇＬＸ［２］を１に等しく設定して下記のような割り当てを行う。
【０３４２】
ｃｐＭｖＬＸ［２］＝ＭｖＬＹ［ｘＮｂＢＬ］［ｙＮｂＢＬ］      （８−６４８）
【０３４３】
ａｖａｉｌａｂｌｅＦｌａｇＬＸ［２］が１に等しい場合、８．４．２．１４節で指定された動きベクトルの丸め処理は、ｃｐＭｖＬＸ［２］に等しく設定したｍｖＸ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｒｉｇｈｔＳｈｉｆｔ、（ＭｖＳｈｉｆｔ＋２）に等しく設定したｌｅｆｔＳｈｉｆｔを入力とし、丸められたｃｐＭｖＬＸ［２］を出力として呼び出される。
【０３４４】
５．５．  コンテキストモデリング
コンテキスト符号化された２値を使用した構文要素へのｃｔｘＩｎｃの割り当て：
【０３４５】
【表１６】
2022500909.tif 000064
【０３４６】
左上の構文要素を使用するｃｔｘＩｎｃの仕様：
一例において、コンテキストインクリメントオフセットｃｔｘＩｎｃ＝（ｃｏｎｄＬ  ＆＆  ａｖａｉｌａｂｌｅＬ）＋（ｃｏｎｄＡ  ＆＆  ａｖａｉｌａｂｌｅＡ）＋ｃｔｘＳｅｔＩｄｘ＊３である。
代替的に、ｃｔｘＩｎｃ＝（（ｃｏｎｄＬ  ＆＆  ａｖａｉｌａｂｌｅＬ）｜｜（ｃｏｎｄＡ  ＆＆  ａｖａｉｌａｂｌｅＡ））＋ｃｔｘＳｅｔＩｄｘ＊３である。
ｃｔｘＩｎｃ＝（ｃｏｎｄＬ  ＆＆  ａｖａｉｌａｂｌｅＬ）＋Ｍ＊（ｃｏｎｄＡ  ＆＆  ａｖａｉｌａｂｌｅＡ）＋ｃｔｘＳｅｔＩｄｘ＊３．（例えば、Ｍ＝２）
ｃｔｘＩｎｃ＝Ｍ＊（ｃｏｎｄＬ  ＆＆  ａｖａｉｌａｂｌｅＬ）＋（ｃｏｎｄＡ    ＆＆  ａｖａｉｌａｂｌｅＡ）＋ｃｔｘＳｅｔＩｄｘ＊３．（例えば、Ｍ＝２）
【０３４７】
【表１７】
2022500909.tif 000065
【０３４８】
ａｍｖｒ＿ｆｌａｇのｃｔｘＩｄｘのｉｎｉｔＶａｌｕｅの値：
現在のブロックがアフィンまたは非アフィンである場合、異なるコンテキストが使用される。
【０３４９】
【表１８】
2022500909.tif 000066
【０３５０】
ａｍｖｒ＿ｃｏａｒｓｅ＿ｐｒｅｃｉｓｏｉｎ＿ｆｌａｇのｃｔｘＩｄｘのｉｎｉｔＶａｌｕｅの値：
現在のブロックがアフィンまたは非アフィンである場合、異なるコンテキストが使用される。
【０３５１】
【表１９】
2022500909.tif 000067
【０３５２】
上述された例は、以下に説明される方法、例えば、方法２６００から２６８０に関連して組み込まれてもよく、これらは、ビデオデコーダまたはビデオエンコーダにおいて実装されてもよい。
【０３５３】
図２６Ａは、例示的な映像処理方法のフローチャートを示す。方法２６００は、ステップ２６０２で、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、現在の映像ブロックを含む映像領域に適用される許容される複数のＭＶＤ精度のセットから、変換に使用される動きベクトル差（ＭＶＤ）精度を判定することを含む。方法２６００は、ステップ２６０４において、ＭＶＤ精度に基づいて変換を行うことを含む。
【０３５４】
図２６Ｂは、例示的な映像処理方法のフローチャートを示す。図２６Ｂに示す方法２６１０は、ステップ２６１２において、映像の１つ以上の映像ブロックを含む映像領域と映像の符号化表現のために、映像領域における１つ以上の映像ブロックの変換のために複数の動きベクトル差（ＭＶＤ）精度を使用することを判定することを含む。方法２６１０は、ステップ２６１４において、判定に基づいて変換を行うことを含む。
【０３５５】
図２６Ｃは、例示的な映像処理方法のフローチャートを示す。図２６Ｃに示す方法２６２０は、ステップ２６２２において、映像の１つ以上の映像ブロックおよび映像の符号化表現を含む映像領域に対して、現在の映像ブロックと映像の符号化表現との間で変換するために、現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理をどの適用するか否かを判定することを含む。方法２６２０は、ステップ２６２４において、判定に基づいて変換を行うことを含む。
【０３５６】
図２６Ｄは、例示的な映像処理方法のフローチャートを示す。図２６Ｄに示す方法２６３０は、ステップ２６３２において、映像の１つ以上の映像ブロックおよび映像の符号化表現を含む映像領域に対して、現在の映像ブロックと映像の符号化表現との間で変換するために、どのようにして現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理をどの適用するかを判定することを含む。方法２６３０は、ステップ２６３４において、判定に基づいて変換を行うことを含む。
【０３５７】
図２６Ｅは、例示的な映像処理方法のフローチャートを示す。図２６Ｅに示す方法２６４０は、ステップ２６４２において、アフィン符号化モードを用いる現在の符号化ユニットの親符号化ユニットの符号化モードまたはアフィン符号化モードのひずみ率（ＲＤ）コストに基づいて、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために適応動きベクトル解像度（ＡＭＶＲ）の使用を判定することを含む。方法２６４０は、ステップ２６４４において、判定した結果に基づいて変換を行うことを含む。
【０３５８】
図２６Ｆは、例示的な映像処理方法のフローチャートを示す。図２６Ｆに示す方法２６５０は、ステップ２６５２において、映像の現在のブロックの符号化表現と、高度動きベクトル予測（ＡＭＶＰ）符号化モードを使用する現在のブロックとの間で変換するための適応動きベクトル解像度（ＡＭＶＲ）の使用法を判定することを含み、その判定は、前記ＡＭＶＰ符号化モードのひずみ率（ＲＤ）コストに基づいて行われる。方法２６５０は、ステップ２６５４において、判定した結果に基づいて変換を行うことを含む。
【０３５９】
図２６Ｇは、例示的な映像処理方法のフローチャートを示す。図２６Ｇに示す方法２６６０は、ステップ２６６２において、映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、４パラメータアフィンモデルまたは６パラメータアフィンモデルを使用してＭＶ（動きベクトル）精度のセットを生成することを含む。方法２６６０は、ステップ２６６４において、ＭＶ精度のセットに基づいて変換を行うことを含む。
【０３６０】
図２６Ｈは、例示的な映像処理方法のフローチャートを示す。図２６Ｈに示す方法２６７０は、ステップ２６７２において、アフィン符号化モードを使用する現在のブロックの親ブロックの符号化モードに基づいて、復号化時の動きベクトル解像度を改善するために適応動きベクトル解像度（ＡＭＶＲ）ツールを使用して変換を行うかどうかを判定することを含む。方法２６７０は、ステップ２６７４において、判定した結果に基づいて変換を行うことを含む。
【０３６１】
図２６Ｉは、例示的な映像処理方法のフローチャートを示す。図２６Ｉに示す方法２６８０は、ステップ２６８２において、アフィン符号化モードを使用して以前に符号化された前のブロックに対するＭＶ精度の使用に基づいて、現在のブロックの符号化表現と現在のブロックとの間で変換するためにアフィン符号化モードを使用する、現在のブロックのためのＭＶ精度のひずみ率（ＲＤ）計算の終了を判定することを含む。方法２６８０は、ステップ２６８４において、判定した結果に基づいて変換を行うことを含む。
【０３６２】
５．  開示される技術の例示的な実装形態
図２７は、映像処理装置２７００のブロック図の一例である。装置２７００は、本明細書で説明される方法の１つ以上を実装するために使用してもよい。装置２７００は、スマートフォン、タブレット、コンピュータ、モノのインターネット（ＩｏＴ）受信機等に実施されてもよい。装置２７００は、１つ以上の処理装置２７０２と、１つ以上のメモリ２７０４と、映像処理ハードウェア２７０６と、を含んでもよい。１つ以上の処理装置２７０２は、本明細書に記載される１つ以上の方法（方法２６１０および２６８０を含むが、これに限定されない）を実装するように構成されてもよい。メモリ（複数可）２７０４は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア２７０６は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【０３６３】
図２９は、開示される技術が実装され得る映像処理システムのブロック図の別の例である。図２９は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム２９００を示すブロック図である。様々な実装形態は、システム２９００のモジュールの一部または全部を含んでもよい。システム２９００は、映像コンテンツを受信するための入力ユニット２９０２を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、８または１０ビットのマルチモジュール画素値で受信されてもよく、または圧縮または符号化フォーマットで受信されてもよい。入力ユニット２９０２は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット（登録商標）、パッシブ光ネットワーク（ＰＯＮ）等の有線インターフェース、およびＷｉ−Ｆｉまたはセルラーインターフェース等の無線インターフェースを含む。
【０３６４】
システム２９００は、本明細書に記載される様々な符号化または符号化方法を実装することができる符号化モジュール２９０４を含んでもよい。符号化モジュール２９０４は、入力ユニット２９０２からの映像の平均ビットレートを符号化モジュール２９０４の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール２９０４の出力は、モジュール２９０６によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット２９０２において受信された、記憶されたまたは通信された映像のビットストリーム（または符号化）表現は、モジュール２９０８によって使用されて、表示インターフェースユニット２９１０に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張（映像展開）と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作またはツールと呼ぶが、符号化ツールまたは動作は、エンコーダおよびそれに対応する、復号化の結果を逆にする復号化ツールまたは動作が、デコーダによって行われることが理解されよう。
【０３６５】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス（ＵＳＢ）または高精細マルチメディアインターフェース（ＨＤＭＩ（登録商標））またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント（ＳＡＴＡ）、ＰＣＩ、ＩＤＥインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理および／または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【０３６６】
いくつかの実施形態において、映像処理方法は、図２７または２９を参照して説明したように、ハードウェアプラットフォームに実装される装置を用いて実施されてもよい。
【０３６７】
様々な技術および実施形態を、以下の節に基づくフォーマットを使用して説明することができる。これらの節は、いくつかの実施形態の好適な特徴として実装されてもよい。
【０３６８】
複数の節のうちの第１の組では、例えば、前の章の節１，２、および１３〜１５に記載された技術のうちの一部を使用する。
【０３６９】
１．  映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、現在の映像ブロックを含む映像領域に適用可能な許容される複数のＭＶＤ精度のセットから、変換に使用される動きベクトル差（ＭＶＤ）精度を判定することと、ＭＶＤ精度に基づいて変換を行うことと、を含む、映像処理の方法。
【０３７０】
２．  前記許容される複数のＭＶＤ精度のセットは、前記映像データのピクチャ、スライス、またはブロックに依存する、第１節に記載の方法。
【０３７１】
３．  許容される複数のＭＶＤ精度のセットは、現在のブロックの符号化された情報に依存する、第１節に記載の方法。
【０３７２】
４．  許容される複数のＭＶＤ精度のセットは、予め規定される、第１節に記載の方法。
【０３７３】
５．  許容される複数のＭＶＤ精度のセットは、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、映像パラメータセット（ＶＰＳ）、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、符号化ツリーユニットの群（ＣＴＵ）において信号通知される、第１節に記載の方法。
【０３７４】
６．  現在のブロックのための許容されるＭＶ精度の数に基づいて、許容される複数のＭＶＤ精度のセットから、判定されたＭＶＤ精度を信号通知することをさらに含む、第１節に記載の方法。
【０３７５】
７．  ＭＶＤ精度を判定することは、１つ以上の構文要素に基づいており、現在のブロックは、アフィンモードを使用して符号化される、第１節に記載の方法。
【０３７６】
８．  アフィンモードおよび非アフィンモードの両方に適用される許容される複数のＭＶＤ精度のセットから設定されたＭＶＤ精度を示すために、同じ構文要素が使用される、第３または７節に記載の方法。
【０３７７】
９．  アフィンモードおよび非アフィンモードは、許容される複数のＭＶＤ精度の同じセットを使用する、第３、７または８節に記載の方法。
【０３７８】
１０．  アフィン符号化ブロックは、非アフィンモードで使用されるものとは異なる、許容される複数のＭＶＤ精度のセットを使用する、第３、７、または８節に記載の方法。
【０３７９】
１１．  非アフィンモードで使用されるものと同じ数の許容される複数のＭＶＤ精度を有する異なるセットは、非アフィンモードで使用される構文要素を前記アフィンモードで再使用する、第１０節に記載の方法。
【０３８０】
１２．  異なるセットは、非アフィンモードで使用されるものとは異なる、少なくとも１つのＭＶＤ精度を有する、第１０節に記載の方法。
【０３８１】
１３．  非アフィンモードおよびアフィンモードで使用される構文要素の意味論が異なり、構文要素が、異なるＭＶＤ精度に解釈される同じ復号値を有する、第３、７または８節に記載の方法。
【０３８２】
１４．  アフィンモードで使用される、許容される複数のＭＶＤ精度の数は、非アフィンモードで使用されるものよりも少ない、第３、７、または８節に記載の方法。
【０３８３】
１５．  前記非アフィンモードのための前記構文値の１つ以上のサブセットは、前記アフィンモードにおいて有効でない、第８節に記載の方法。
【０３８４】
１６．  非アフィンモードおよびアフィンモードで使用される構文要素の意味論が異なり、同じ値の構文要素が、異なるＭＶＤ精度に解釈される、第８または１４節に記載の方法。
【０３８５】
１７．  アフィンモードで使用される、許容される複数のＭＶＤ精度の数は、非アフィンモードで使用されるものよりも多い、第３または７節に記載の方法。
【０３８６】
１８．  非アフィンモードにおける１つ以上の構文要素は、前記アフィンモードのためのより多くの値を許容するように拡張される、第１７節に記載の方法。
【０３８７】
１９．  アフィンモードのＭＶＤ精度を処理するために、非アフィンモードのＭＶＤ精度を処理するために使用されるものとは異なる追加の構文要素を使用する、第７節に記載の方法。
【０３８８】
２０．  アフィンモードのためのＭＶＤ精度の指示が、選択的に信号通知される、第７節に記載の方法。
【０３８９】
２１．  すべての制御点動きベクトル（ＣＰＭＶ）のＭＶＤがゼロでない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知される、第２０節に記載の方法。
【０３９０】
２２．  少なくとも１つのＣＰＭＶのためのＭＶＤがゼロでない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知される、第２０節に記載の方法。
【０３９１】
２３．  １つの選択されたＣＰＭＶのＭＶＤがゼロでない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知される、第２０節に記載の方法。
【０３９２】
２４．  第１のＣＰＭＶのＭＶＤがゼロでない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知される、第２０節に記載の方法。
【０３９３】
２５．  １つ以上の所定の条件が満たされない場合、アフィンモードのためのＭＶＤ精度の指示が信号通知されない、第２０節に記載の方法。
【０３９４】
２６．  アフィンモードまたは非アフィンモードのいずれかに関連付けられたＭＶＤ精度表示のための構文要素が、現在のブロックの符号化された情報に依存するコンテキストで符号化される、第７節に記載の方法。
【０３９５】
２７．  アフィンモードまたは非アフィンモードのいずれかに関連付けられたＭＶＤ精度表示のための前記構文要素のコンテキスト選択は、現在のブロックがアフィンモードで符号化されているかどうかに依存する、第７節に記載の方法。
【０３９６】
２８．  １つのコンテキストは、１つのアフィン符号化ブロックのためのＭＶＤ精度指示のための構文要素に使用され、別のコンテキストは、１つの非アフィン符号化ブロックのために使用される、第７節に記載の方法。
【０３９７】
２９．  近傍のブロックのサイズ、形状、またはＭＶＤ精度、時間層インデックス、または予測方向に基づいて、ＭＶＤ精度指標のためのコンテキストを判定する、第７節に記載の方法。
【０３９８】
３０．  アフィンモードのために許容される複数のＭＶＤ精度の使用を有効にするかまたは無効にするかは、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、映像パラメータセット（ＶＰＳ）、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、または符号化ツリーユニット（ＣＴＵ）の群において信号通知される、第７節に記載の方法。
【０３９９】
３１．  アフィンモードのために許容される複数のＭＶＤ精度の使用を許可するかまたは禁止するかは、１つ以上の構文要素に依存する、第７節に記載の方法。
【０４００】
３２．  前記許容される複数のＭＶＤ精度の使用を許可するかまたは禁止するかの情報は、前記アフィンモードが許可されると、信号通知され、前記アフィンモードが禁止されると、信号通知されない、第７節に記載の方法。
【０４０１】
３３．  前記１つ以上の構文要素は、スライスレベル、ピクチャレベル、またはシーケンスレベルで含まれる、第７〜３２節のいずれか１節に記載の方法。
【０４０２】
３４．  前記スライスがタイル群またはタイルに置き換えられる、第５、３０、または３３節に記載の方法。
【０４０３】
３５．  ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダ、またはタイルグループヘッダにおいて、１に等しい構文要素は、符号化表現に準拠するための要件を指定し、複数のＭＶＤ精度の第１のセットが非アフィンモードで有効であるかどうかを示すための第１の構文要素と、複数のＭＶＤ精度の第２のセットがアフィンモードで有効であるかどうかを示すための第２の構文要素との両方がゼロであることを示すことを要求する、第１〜３４節のいずれか１節に記載の方法。
【０４０４】
３６．  １つの構文要素が、ＶＰＳ、ＳＰＳ、ＰＰＳ、スライスヘッダ、タイルグループヘッダ、または他の映像データユニットにおいて信号通知される、第１〜３４節のいずれか１節に記載の方法。
【０４０５】
３７．  １に等しい構文要素は、符号化表現に準拠するための要件を指定し、前記要件は、アフィンモードに対して複数のＭＶＤ精度が有効にされているかどうかを示すための構文要素が０に等しいことを要求する、第３６節に記載の方法。
【０４０６】
３８．  アフィン符号化ブロックに対して同じＭＶＤ精度で動きベクトル予測子を利用する、第７から３７節のいずれか１節に記載の方法。
【０４０７】
３９．  現在のブロックの最終的動きベクトルを、アフィン符号化ブロックに対して同じＭＶＤ精度で利用する、第７〜３７節のいずれか１節に記載の方法。
【０４０８】
４０．  前記変換を行うことは、現在のブロックから前記符号化表現を生成するステップを含む、第１〜３９節のいずれか１節に記載の方法。
【０４０９】
４１．  前記変換を行うことは、前記符号化表現から前記現在のブロックを生成することを含む、第１〜３９節のいずれか１節に記載の方法。
【０４１０】
４２．  処理装置と、その処理装置に命令が記憶された非一時的メモリとを備える装置であって、命令が処理装置によって実装されることにより、処理装置に、第１節〜４１節のいずれか１節に記載の方法を実施させる映像システムの装置。
【０４１１】
４３．  非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、第１〜４１節のいずれか１節に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【０４１２】
第２の組の節目は、例えば、前節の第３、４、１２節を含む、先行する節に記載されたいくつかの技術を使用する。
【０４１３】
１．  映像の１つ以上の映像ブロックおよびこの映像の符号化表現を含む映像領域に対して、この映像領域におけるこの１つ以上の映像ブロックの変換のために複数の動きベクトル差（ＭＶＤ）精度を使用することを判定することと、この判定に基づいてこの変換を行うこととを含む、映像処理方法。
【０４１４】
２．  １つ以上の映像ブロックの少なくとも一部の前記変換は、アフィンモード符号化に基づく、第１節に記載の方法。
【０４１５】
３．  使用は、シーケンスパラメータセット（ＳＰＳ）、ピクチャパラメータセット（ＰＰＳ）、映像パラメータセット（ＶＰＳ）、シーケンスヘッダ、ピクチャヘッダ、スライスヘッダ、または符号化ツリーユニット群（ＣＴＵ）を含む符号化表現で示される第１または２節に記載の方法。
【０４１６】
４．  使用は、ＭＶＤ精度を示すために使用される構文要素に依存して示される、第３節に記載の方法。
【０４１７】
５．  映像の１つ以上の映像ブロックおよびこの映像の符号化表現を含む映像領域に対して、現在の映像ブロックとこの映像の符号化表現との間で変換するために、現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理を適用するかどうかを判定することと、この判定に基づいてこの変換を行うことと、を含む、映像処理方法。
【０４１８】
６．  映像の１つ以上の映像ブロックおよびこの映像の符号化表現を含む映像領域に対して、現在の映像ブロックとこの映像の符号化表現との間で変換するために、どのようにして現在の映像ブロックに適応動きベクトル解像度（ＡＭＶＲ）処理を適用するかを判定することと、この判定に基づいてこの変換を行うことと、を含む、映像処理方法。
【０４１９】
７．  現在の映像ブロックの変換は、アフィンモード符号化に基づく、第５または６節に記載の方法。
【０４２０】
８．  判定することは、現在の映像ブロックの参照ピクチャに依存する、第７節に記載の方法。
【０４２１】
９．  参照ピクチャが現在のピクチャである場合、判定することは、ＡＭＶＲ処理を適用しないと判定する、第８節に記載の方法。
【０４２２】
１０．  判定することは、現在のブロックにイントラブロックコピー（ＩＢＣ）を適用するかどうかに依存する、第５または６節に記載の方法。
【０４２３】
１１．  判定することは、ＩＢＣによって符号化された現在のブロックにＡＭＶＲ処理を適用することを判定する、第１０節に記載の方法。
【０４２４】
１２．  ＩＢＣ符号化ブロックのためのＭＶ（動きベクトル）、ＭＶＤ、またはＭＶＰ（動きベクトル予測）の精度の候補は、ＩＢＣ符号化ブロックにおいて、ＩＢＣ符号化されていない他の映像ブロックに用いられるものと異なる、第１１節に記載の方法。
【０４２５】
１３．  ＩＢＣ符号化ブロックのためのＭＶ（動きベクトル）、ＭＶＤ、またはＭＶＰ（動きベクトル予測）の精度の候補は、アフィンモードで符号化された別の映像ブロックに使用されるものと異なる、第１１節に記載の方法。
【０４２６】
１４．  前記変換を行うことは、現在のブロックから前記符号化表現を生成するステップを含む、第１〜１３節のいずれか１節に記載の方法。
【０４２７】
１５．  前記変換を行うことは、前記符号化表現から前記現在のブロックを生成することを含む、第１〜１３節のいずれか１節に記載の方法。
【０４２８】
１６．  処理装置と、その処理装置に命令が記憶された非一時的メモリとを備える装置であって、命令が処理装置によって実装されることにより、処理装置に、第１節〜１５節のいずれか１節に記載の方法を実施させる映像システムの装置。
【０４２９】
１７．  非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、第１〜１５節のいずれか１節に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【０４３０】
第３の組の節目は、例えば、前節の第５〜１０、および１３節を含む、先行する節に記載されたいくつかの技術を使用する。
【０４３１】
１．  アフィン符号化モードを使用する現在の符号化ユニットの親符号化ユニットの符号化モードまたはこのアフィン符号化モードのひずみ率（ＲＤ）コストに基づいて、映像の現在のブロックの符号化表現とこの現在のブロックとの間で変換するために適応動きベクトル解像度（ＡＭＶＲ）を使用することを判定することと、この判定した結果に基づいてこの変換を行うことを含む、映像処理方法。
【０４３２】
２．  親符号化ユニットの符号化モードがＡＦ＿ＩｎｔｅｒモードまたはＡＦ＿ＭＥＲＧＥモードでない場合、判定することは、ＡＭＶＲを現在の符号化ユニットに使用できないようにする、第１節に記載の方法。
【０４３３】
３．  親符号化ユニットの符号化モードがＡＦ＿Ｉｎｔｅｒモードでない場合、判定することは、前記ＡＭＶＲを現在の符号化ユニットに使用できないようにする、第１節に記載の方法。
【０４３４】
４．  アフィン符号化モードのＲＤが高度動きベクトル予測（ＡＭＶＰ）モードの正の閾値とＲＤコストとの乗算よりも大きい場合、判定することは、前記ＡＭＶＲを現在の符号化ユニットに使用できないようにする、第１節に記載の方法。
【０４３５】
５．  判定は、１／４画素のＭＶ精度に適用される、第４節に記載の方法。
【０４３６】
６．  最小ＲＤコストは、正の閾値とマージモードのＲＤコストとの乗算よりも大きい場合、判定することは、ＡＭＶＲを現在の符号化ユニットに使用することを無効にし、最小ＲＤコストは、アフィン符号化モードのＲＤコストと高度動きベクトル予測（ＡＭＶＰ）モードのＲＤコストとの最小値である、第１節に記載の方法。
【０４３７】
７．  判定は、１／４画素のＭＶ精度に適用される、第６節に記載の方法。
【０４３８】
８．  映像の現在のブロックの符号化表現と、高度動きベクトル予測（ＡＭＶＰ）符号化モードを使用する現在のブロックとの間で変換するための適応動きベクトル解像度（ＡＭＶＲ）の使用量を、ＡＭＶＰ符号化モードのひずみ率（ＲＤ）コストに基づいて判定することと、判定の結果に従って変換を行うことと、を含む、映像処理方法。
【０４３９】
９．  ＡＭＶＰ符号化モードのＲＤコストが、正の閾値とアフィンモードのＲＤコストとの乗算よりも大きい場合、判定することは、前記ＡＭＶＲの使用を無効にする、第８節に記載の方法。
【０４４０】
１０．  判定は、１／４画素のＭＶ精度に適用される、第８節に記載の方法。
【０４４１】
１１．  最小ＲＤコストは、正の閾値とマージモードのＲＤコストとの乗算よりも大きい場合、判定することは、ＡＭＶＲの使用を無効にし、最小ＲＤコストは、アフィンモードのＲＤコストとＡＭＶＰ符号化モードのＲＤコストとの最小値である、第８節に記載の方法。
【０４４２】
１２．  判定は、１／４画素のＭＶ精度に適用される、第１１節に記載の方法。
【０４４３】
１３．  映像の現在のブロックの符号化表現と現在のブロックとの間で変換するために、４パラメータアフィンモデルまたは６パラメータアフィンモデルを使用してＭＶ（動きベクトル）精度のセットを生成することと、このＭＶ精度のセットに基づいてこの変換を行うこととを含む、映像処理方法。
【０４４４】
１４．  単一のＭＶ精度で得られた４パラメータアフィンモデルまたは６パラメータアフィンモデルを、他のＭＶ精度のための候補開始探索点として用いる、第１３節に記載の方法。
【０４４５】
１５．  単一ＭＶ精度は、１／１６ＭＶ精度を含む、第１４節に記載の方法。
【０４４６】
１６．  単一ＭＶ精度は、１／４ＭＶ精度を含む、第１４節に記載の方法。
【０４４７】
１７．  アフィン符号化モードを使用する現在のブロックの親ブロックの符号化モードに基づいて、適応動きベクトル解像度（ＡＭＶＲ）ツールを使用して変換を行うかどうかを判定し、ＡＭＶＲツールを使用して復号化時の動きベクトル解像度を改善することと、この判定の結果に基づいて変換を行うこととを含む、映像処理方法。
【０４４８】
１８．  現在のブロックの親ブロックがアフィン符号化モードでない場合、判定することは、現在のブロックのためにＡＭＶＲをチェックしないようにする、第１７節に記載の方法。
【０４４９】
１９．  アフィン符号化モードを使用して前に符号化された前のブロックのＭＶ精度の使用に基づいて、現在のブロックの符号化表現と現在のブロックとの間で変換するためにアフィン符号化モードを使用する、現在のブロックのＭＶ精度ひずみ率（ＲＤ）計算の終了を判定することと、この判定の結果に基づいてこの変換を行うこととを含む、映像処理方法。
【０４５０】
２０．  現在のブロックおよび前のブロックは、それぞれ、現在の画像セグメントおよび前の画像セグメントに含まれ、現在の画像セグメントおよび前の画像セグメントは、ピクチャ、スライス、タイルまたは符号化ツリーユニット（ＣＴＵ）行である。第１９節に記載の方法。
【０４５１】
２１．  前記変換を行うことは、現在のブロックから前記符号化表現を生成するステップを含む、第１〜２０節のいずれか１節に記載の方法。
【０４５２】
２２．  前記変換を行うことは、前記符号化表現から前記現在のブロックを生成することを含む、第１〜２０節のいずれか１節に記載の方法。
【０４５３】
２３．  処理装置と、その処理装置に命令が記憶された非一時的メモリとを備える装置であって、命令が処理装置によって実装されることにより、処理装置に、第１節〜２２節のいずれか１節に記載の方法を実施させる映像システムの装置。
【０４５４】
２４．  非一時的なコンピュータ可読媒体に記憶されたコンピュータプログラム製品であって、第１節〜２２節のいずれか１節に記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【０４５５】
以上、説明の目的で本開示の技術の特定の実施形態を説明したが、本発明の範囲から逸脱することなく様々な修正が可能であることは、理解されるであろう。従って、本開示の技術は、添付の特許請求の範囲による場合を除き、限定されない。
【０４５６】
本特許明細書に記載された主題および機能操作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、様々なシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの１つ以上の組み合わせで実施することができる。本明細書に記載された主題の実装形態は、１つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行されるため、またはデータ処理装置の操作を制御するために、有形で非可搬性のコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の１つ以上のモジュールとして実装することができる。このコンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの１つ以上の組み合わせであってもよい。「データ処理ユニット」または「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置若しくはコンピュータを含め、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの１つ以上の組み合わせを構成するコードを含んでもよい。
【０４５７】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる）は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、または演算環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットを含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部（例えば、マークアップ言語文書に格納された１つ以上のスクリプト）に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル（例えば、１つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル）に記憶されていてもよい。１つのコンピュータプログラムを、１つのサイトに位置する１つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開可能である。
【０４５８】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって行うことができ、装置はまた、特定用途のロジック回路として実装することができる。
【０４５９】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の１つ以上の処理装置を含む。一般的に、処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための１つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための１つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリデバイス等の半導体メモリデバイスを含む。処理装置およびメモリは、特定用途のロジック回路によって補完されても、または組み込まれてもよい。
【０４６０】
本明細書は、図面とともに、例示のみを目的とするものであり、例示的とは例を意味することが意図される。本明細書で使用される場合、「または」の使用は、文脈からそうでないことが明確に示されていない限り、「および／または」を含むことが意図される。
【０４６１】
本特許明細書は多くの詳細を含むが、これらは、任意の発明の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許明細書において別の実施形態の文脈で説明されている特定の特徴は、１つの例において組み合わせて実装してもよい。逆に、単一の例の文脈で説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切な副結合で実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの１つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、副結合または副結合のバリエーションに向けられてもよい。
【０４６２】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で実行されること、または示された全ての操作が実行されることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムモジュールの分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【０４６３】
いくつかの実装形態および例のみが記載されており、本特許明細書に記載され図示されている内容に基づいて、他の実施形態、拡張および変形が可能である。
【図１】
2022500909.tif 000068
【図２】
2022500909.tif 000069
【図３】
2022500909.tif 000070
【図４Ａ】
2022500909.tif 000071
【図４Ｂ】
2022500909.tif 000072
【図５】
2022500909.tif 000073
【図６】
2022500909.tif 000074
【図７】
2022500909.tif 000075
【図８】
2022500909.tif 000076
【図９】
2022500909.tif 000077
【図１０】
2022500909.tif 000078
【図１１】
2022500909.tif 000079
【図１２】
2022500909.tif 000080
【図１３Ａ】
2022500909.tif 000081
【図１３Ｂ】
2022500909.tif 000082
【図１４】
2022500909.tif 000083
【図１５】
2022500909.tif 000084
【図１６】
2022500909.tif 000085
【図１７】
2022500909.tif 000086
【図１８Ａ】
2022500909.tif 000087
【図１８Ｂ】
2022500909.tif 000088
【図１９Ａ】
2022500909.tif 000089
【図１９Ｂ】
2022500909.tif 000090
【図２０】
2022500909.tif 000091
【図２１】
2022500909.tif 000092
【図２２】
2022500909.tif 000093
【図２３】
2022500909.tif 000094
【図２４Ａ】
2022500909.tif 000095
【図２４Ｂ】
2022500909.tif 000096
【図２５】
2022500909.tif 000097
【図２６Ａ】
2022500909.tif 000098
【図２６Ｂ】
2022500909.tif 000099
【図２６Ｃ】
2022500909.tif 000100
【図２６Ｄ】
2022500909.tif 000101
【図２６Ｅ】
2022500909.tif 000102
【図２６Ｆ】
2022500909.tif 000103
【図２６Ｇ】
2022500909.tif 000104
【図２６Ｈ】
2022500909.tif 000105
【図２６Ｉ】
2022500909.tif 000106
【図２７】
2022500909.tif 000107
【図２８】
2022500909.tif 000108
【図２９】
2022500909.tif 000109
【手続補正書】
【提出日】令和3年3月10日(2021.3.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現在の映像ブロックのモードがアフィンインターモードおよび非アフィンインターモードのうちの１つであることを判定することと、
前記現在のブロックの動き情報に対して、許容される複数の動き精度のセットから動き精度を判定することであって、前記許容される複数の動き精度のセットは、前記現在のブロックが前記アフィンインターモードで符号化されるかまたは前記非アフィンインターモードで符号化されるかに基づいており、前記アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットは、前記非アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットと異なる、判定することと、
前記判定したモードおよび前記動き精度を使用して前記現在のブロックを符号化することと、を含む、
映像データを符号化する方法。
【請求項２】
前記アフィンインターモードで符号化されたブロックに対する前記許容される複数の動き精度の数は、前記非アフィンインターモードで符号化されたブロックの数よりも少ない、
請求項１に記載の方法。
【請求項３】
前記アフィンインターモードおよび前記非アフィンインターモードで符号化されたブロックに対して、同じ数の許容された複数の動き精度を有効にし、前記アフィンインターモードで符号化されたブロックに対して許容された複数の動き精度のうちの少なくとも１つは、前記非アフィンインターモードで符号化されたブロックに対して許容された複数の動き精度のうちの少なくとも１つとは異なる、
請求項１に記載の方法。
【請求項４】
許容される複数の動き精度の前記セットは、予め規定される、
請求項１に記載の方法。
【請求項５】
前記アフィンインターモードで符号化されたブロックに対する前記許容される複数の動き精度のセットは、１／１６輝度サンプル、１／４輝度サンプル、および１輝度サンプルを含む、
請求項１に記載の方法。
【請求項６】
前記動き精度を前記判定することは、１つ以上の構文要素に基づく、
請求項１に記載の方法。
【請求項７】
前記アフィンインターモードで符号化されたブロックに対して、１つまたは複数の構文要素を使用して、前記許容された複数のＭＶＤ精度のセットにおける前記動き精度を示し、同１つまたは複数の構文要素を使用して、前記非アフィンインターモードで符号化されたブロックに対して、前記許容された複数のＭＶＤ精度のセットにおける前記動き精度を示す、
請求項１に記載の方法。
【請求項８】
前記非アフィンインターモードで使用される前記構文要素のうちの少なくとも１つの意味論は、前記アフィンインターモードで使用される前記構文要素のうちの少なくとも１つの意味論と異なり、同じ値を有する構文要素のうちの前記少なくとも１つの構文要素は、前記非アフィンインターモードおよび前記アフィンインターモードのために、異なる動き精度に解釈される、
請求項７に記載の方法。
【請求項９】
前記少なくとも１つの前記構文要素の値のサブセットは、前記非アフィンインターモードにおいて有効であり、前記アフィンインターモードにおいて有効でない、
請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の構文要素のコンテキスト符号化構文要素を符号化する場合、第１のコンテキストは、前記非アフィンインターモードで符号化されたブロックに使用され、第２のコンテキストは、前記アフィンインターモードで符号化されたブロックに使用され、前記第１のコンテキストは、前記第２のコンテキストとは異なる、
請求項７に記載の方法。
【請求項１１】
前記アフィンインターモードの前記動き精度の表示は、ビットストリームに選択的に存在する、
請求項１に記載の方法。
【請求項１２】
前記現在のブロックの少なくとも１つの制御点動きベクトルのための少なくとも１つの動きベクトル差が非ゼロである場合、前記アフィンインターモードのための前記動き精度の前記表示が存在する、
請求項１１に記載の方法。
【請求項１３】
前記アフィンインターモードにおける前記許容された複数のＭＶＤ精度の使用を有効にするか無効にするかを示す構文要素は、シーケンスパラメータセット（ＳＰＳ）に存在する、
請求項１に記載の方法。
【請求項１４】
前記アフィンインターモードにおける前記許容された複数のＭＶＤ精度の使用を有効にするか無効にするかを示す前記構文要素は、前記アフィンインターモードを有効にする時に存在し、前記アフィンインターモードを無効にする時には存在しない、
請求項１３に記載の方法。
【請求項１５】
前記動き情報は、前記現在のブロックの動きベクトル差（ＭＶＤ）、動きベクトル予測子（ＭＶＰ）、および動きベクトル（ＭＶ）のうちの少なくとも１つを含む、
請求項１に記載の方法。
【請求項１６】
前記符号化は、前記現在のブロックを復号化することを含む、
請求項１に記載の方法。
【請求項１７】
前記符号化は、前記現在のブロックを符号化することを含む、
請求項１に記載の方法。
【請求項１８】
処理装置と、その上に命令を有する非一時的メモリと、を備える映像符号化装置であって、前記処理装置によって実行されると、前記命令は、前記処理装置に、
現在の映像ブロックのモードがアフィンインターモードおよび非アフィンインターモードのうちの１つであることを判定することと、
前記現在のブロックの動き情報に対して、許容される複数の動き精度のセットから動き精度を判定することであって、前記許容される複数の動き精度のセットは、前記現在のブロックが前記アフィンインターモードで符号化されるかまたは前記非アフィンインターモードで符号化されるかに基づいており、前記アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットは、前記非アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットと異なる、判定することと、
前記判定したモードおよび前記動き精度を使用して前記現在のブロックを符号化することと、を含む、
映像符号化装置。
【請求項１９】
前記アフィンインターモードで符号化されたブロックに対して許容される複数の動き精度の数は、前記非アフィンインターモードで符号化されたブロックの数よりも少ない、
請求項１８に記載の映像符号化装置。
【請求項２０】
処理装置に命令を記憶する非一時的コンピュータ可読記憶媒体であって、
現在の映像ブロックのモードがアフィンインターモードおよび非アフィンインターモードのうちの１つであることを判定することと、
前記現在のブロックの動き情報に対して、許容される複数の動き精度のセットから動き精度を判定することであって、前記許容される複数の動き精度のセットは、前記現在のブロックが前記アフィンインターモードで符号化されるかまたは前記非アフィンインターモードで符号化されるかに基づいており、前記アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットは、前記非アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットと異なる、判定することと、
前記判定したモードおよび前記動き精度を使用して前記現在のブロックを符号化することと、を含む、
非一時的コンピュータ可読記憶媒体。
【請求項２１】
映像処理装置で実行される方法によって生成されたビットストリーム表現を記憶した非一時的コンピュータ可読記録媒体であって、前記方法は、
現在の映像ブロックのモードがアフィンインターモードおよび非アフィンインターモードのうちの１つであることを判定することと、
前記現在のブロックの動き情報に対して、許容される複数の動き精度のセットから動き精度を判定することであって、前記許容される複数の動き精度のセットは、前記現在のブロックが前記アフィンインターモードで符号化されるかまたは前記非アフィンインターモードで符号化されるかに基づいており、前記アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットは、前記非アフィンインターモードで符号化されたブロックに対して前記許容される複数の動き精度のセットと異なる、判定することと
前記判定したモードおよび前記動き精度を使用して前記現在のブロックを符号化することと、を含む、
非一時的コンピュータ可読記録媒体。
【国際調査報告】
2022500909.tif 000110
2022500909.tif 000111
2022500909.tif 000112
2022500909.tif 000113