(57)【要約】  本願は、動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体を開示し、ビデオ圧縮技術の分野に関連する。方法において、処理対象のピクチャ・ブロックの初期の動きベクトルは、参照ブロックと処理対象のピクチャ・ブロックとの間の位置関係を使用することにより決定される。参照ブロックと処理対象のピクチャ・ブロックとが、同じコーディング・ツリー・ブロック内に位置する場合、デコーダは、参照ブロックの初期の動きベクトルを、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用する。参照ブロックと処理対象のピクチャ・ブロックとが、異なるコーディング・ツリー・ブロック内に位置する場合、デコーダは、参照ブロックの最終的な動きベクトルを、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用する。この場合、参照ブロックの最終的な動きベクトルが、処理対象のピクチャ・ブロックに必要とされる場合、処理対象のピクチャ・ブロックを使用することができるように、参照ブロックの初期の動きベクトルが、参照ブロックの最終的な動きベクトルとして使用されることが可能であり、これにより、参照ブロックの最終的な動きベクトルが得られた後に限り、処理対象のピクチャ・ブロックを復号化することができるというケースを回避し、復号化効率を向上させることができる。
2021536699.tif 000002
【特許請求の範囲】
【請求項１】
動きベクトル取得方法であって、
処理対象のピクチャ・ブロックの参照ブロックを決定するステップであって、前記参照ブロックと前記処理対象のピクチャ・ブロックとはピクチャの同じフレームに位置する、ステップと、
前記参照ブロックが前もってセットされたレンジ内にある場合に、前記参照ブロックの初期の動きベクトルに基づいて、前記処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、前記前もってセットされたレンジは、前記処理対象のピクチャ・ブロックの位置に基づいて決定される、ステップと、
前記参照ブロックが前記前もってセットされたレンジ外にある場合に、前記参照ブロックの最終的な動きベクトルに基づいて、前記処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、前記最終的な動きベクトルは前記初期の動きベクトルに基づいて取得される、ステップと
を含む方法。
【請求項２】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、同じ行に位置することを含み、
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックが位置する前記コーディング・ツリー・ブロックと前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックとが、異なる行に位置することを含む、請求項１に記載の方法。
【請求項３】
前記参照ブロックが位置する前記コーディング・ツリー・ブロックと前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックとが、異なる行に位置し、
前記参照ブロックが位置する前記コーディング・ツリー・ブロックは、前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックの上又は左上にある、請求項２に記載の方法。
【請求項４】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックと前記処理対象のピクチャ・ブロックとが、同じコーディング・ツリー・ブロックに位置することを含み、
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックと前記処理対象のピクチャ・ブロックとが、異なるコーディング・ツリー・ブロックに位置することを含む、請求項１に記載の方法。
【請求項５】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックが位置するコーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は前記参照ブロックが位置するコーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含み、及び
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックが位置する前記コーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックと同じではないこと、又は前記参照ブロックが位置する前記コーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む、請求項１に記載の方法。
【請求項６】
処理対象のピクチャ・ブロックの参照ブロックを決定する前記ステップは、
１つ以上の前もってセットされた候補参照ブロックを前記参照ブロックとして、前もってセットされた順序で連続的に決定するステップであって、前記候補参照ブロックは、前記処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップを含む、請求項１−５のうちの何れか１項に記載の方法。
【請求項７】
処理対象のピクチャ・ブロックの参照ブロックを決定する前記ステップは、
ビットストリームを解析し、１つ以上の第１識別情報を取得するステップと、
前記１つ以上の第１識別情報に基づいて、前記処理対象のピクチャ・ブロックの複数の候補参照ブロックから、前記参照ブロックを決定するステップであって、前記候補参照ブロックは、前記処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップと
を含む、請求項１−５のうちの何れか１項に記載の方法。
【請求項８】
前記最終的な動きベクトルは前記初期の動きベクトルに基づいて取得されることは、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得することと、
前記最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、前記最終的な動きベクトルとして決定することと
を含む、請求項１−７のうちの何れか１項に記載の方法。
【請求項９】
前記方法は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記最終的な動きベクトルは前記初期の動きベクトルに基づいて取得されることは、
前記第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
前記第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、前記第１の最終的な動きベクトルとして決定することであって、前記第１の最終的な動きベクトルは、前記複数の前もってセットされたオフセット・ベクトルにおける第１オフセット・ベクトルに対応する、ことと、
第２オフセット・ベクトルを取得することであって、前記第２オフセット・ベクトルのサイズは前記第１オフセット・ベクトルのものに等しく、前記第２オフセット・ベクトルの方向は前記第１オフセット・ベクトルのものと逆である、ことと、
前記第２の初期の動きベクトルと前記第２オフセット・ベクトルとを加えて前記第２の最終的な動きベクトルを取得することと
を含む、請求項１−７のうちの何れか１項に記載の方法。
【請求項１０】
前記方法は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記最終的な動きベクトルは前記初期の動きベクトルに基づいて取得されることは、
前記第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
前記第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、前記第１の最終的な動きベクトルとして決定すること、
前記第２の初期の動きベクトルと複数の前もってセットされた第２オフセット・ベクトルとを別々に加えて第２の最終的な動きベクトルの複数の候補を取得することと、
前記第２の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第２の最終的な動きベクトルの候補を、前記第２の最終的な動きベクトルとして決定することと
を含む、請求項１−７のうちの何れか１項に記載の方法。
【請求項１１】
動きベクトル残差決定方法であって、
ビットストリームを解析して第２識別情報を取得するステップであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、ステップと、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて複数の候補の最終的な動きベクトルを取得するステップと、
前記複数の候補の最終的な動きベクトルの中で最小の歪コストに対応する候補の最終的な動きベクトルを、前記最終的な動きベクトルとして決定するステップと、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップと
を含む方法。
【請求項１２】
前記方法は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、
前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む、請求項１２に記載の方法。
【請求項１４】
前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、  
前記第１の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの前記第１動きベクトル残差として使用するステップを含む、請求項１２に記載の方法。
【請求項１５】
前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、  
前記第２の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む、請求項１４に記載の方法。
【請求項１６】
動きベクトル・データ・ストレージ方法であって、
ビットストリームを解析して第２識別情報と第３識別情報とを取得するステップであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用される、ステップと、
前記初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するステップと、
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示す場合に、前記ビットストリームを解析して前記動きベクトル残差を取得し、前記動きベクトル残差をターゲット・ストレージ空間に記憶するステップと、
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示す場合に、前記最終的な予測された動きベクトルと前記初期の予測された動きベクトルとの間の差分を前記ターゲット・ストレージ空間に記憶するか、又は前記最終的な予測された動きベクトルを前記ターゲット・ストレージ空間に記憶するステップと
を含む方法。  
【請求項１７】
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示すことは、
前記第３識別情報が、前記処理対象のピクチャ・ブロックの予測モードはＡＭＶＰモードであることを示すこと、
を含む、請求項１６に記載の方法。
【請求項１８】
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示すことは、
前記第３識別情報が、前記処理対象のピクチャ・ブロックの予測モードはマージ・モード又はスキップ・モードであることを示すこと、
を含む、請求項１６又は１７に記載の方法。
【請求項１９】
前記初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得する前記ステップは、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得するステップと、
前記最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、前記最終的な動きベクトルとして決定するステップと
を含む、請求項１６−１８のうちの何れか１項に記載の方法。
【請求項２０】
動きベクトル取得装置であって、
処理対象のピクチャ・ブロックの参照ブロックを決定するように構成された決定モジュールであって、前記参照ブロックと前記処理対象のピクチャ・ブロックとはピクチャの同じフレームに位置する、決定モジュールと、
前記参照ブロックが前もってセットされたレンジ内にある場合に、前記参照ブロックの初期の動きベクトルに基づいて、前記処理対象のピクチャ・ブロックの動きベクトルを取得するように構成された第１取得モジュールであって、前記前もってセットされたレンジは、前記処理対象のピクチャ・ブロックの位置に基づいて決定される、第１取得モジュールと、
前記参照ブロックが前記前もってセットされたレンジ外にある場合に、前記参照ブロックの最終的な動きベクトルに基づいて、前記処理対象のピクチャ・ブロックの動きベクトルを取得するように構成された第２取得モジュールであって、前記最終的な動きベクトルは前記初期の動きベクトルに基づいて取得される、第２取得モジュールと
を含む装置。
【請求項２１】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、同じ行に位置することを含み、
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックが位置する前記コーディング・ツリー・ブロックと前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックとが、異なる行に位置することを含む、請求項２０に記載の装置。
【請求項２２】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックと前記処理対象のピクチャ・ブロックとが、同じコーディング・ツリー・ブロックに位置することを含み、
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックと前記処理対象のピクチャ・ブロックとが、異なるコーディング・ツリー・ブロックに位置することを含む、請求項２０に記載の装置。
【請求項２３】
前記参照ブロックが前もってセットされたレンジ内にあることは、前記参照ブロックが位置するコーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は
前記参照ブロックが位置するコーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含み、及び
相応して、前記参照ブロックが前記前もってセットされたレンジ外にあることは、前記参照ブロックが位置する前記コーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックと同じではないこと、又は前記参照ブロックが位置する前記コーディング・ツリー・ブロックが、前記処理対象のピクチャ・ブロックが位置する前記コーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む、請求項２０に記載の装置。
【請求項２４】
動きベクトル残差決定装置であって、
ビットストリームを解析して第２識別情報を取得するように構成された解析モジュールであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、解析モジュールと、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて複数の候補の最終的な動きベクトルを取得するように構成された合計モジュールと、
前記複数の候補の最終的な動きベクトルの中で最小の歪コストに対応する候補の最終的な動きベクトルを、前記最終的な動きベクトルとして決定するように構成された
決定モジュールと、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するように構成された取得モジュールと
を含む装置。
【請求項２５】
前記装置は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用することは、
前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第１動きベクトル残差として使用することを含む、請求項２４に記載の装置。
【請求項２６】
動きベクトル・データ・ストレージ装置であって、
ビットストリームを解析して第２識別情報と第３識別情報とを取得するように構成された第１解析モジュールであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用される、第１解析モジュールと、
前記初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するように構成された取得モジュールと、
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示す場合に、前記ビットストリームを解析して前記動きベクトル残差を取得し、前記動きベクトル残差をターゲット・ストレージ空間に記憶するように構成された第２解析モジュールと、
前記第３識別情報が、前記ビットストリームは前記処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示す場合に、前記最終的な予測された動きベクトルと前記初期の予測された動きベクトルとの間の差分を前記ターゲット・ストレージ空間に記憶するか、又は前記最終的な予測された動きベクトルを前記ターゲット・ストレージ空間に記憶するように構成されたストレージ・モジュールと
を含む装置。
【請求項２７】
コンピュータ・デバイスであって、前記コンピュータ・デバイスはプロセッサとメモリとを含み、前記メモリは少なくとも１つの命令を記憶し、前記命令は、請求項１−１０のうちの何れか１項に記載の前記動きベクトル取得方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、コンピュータ・デバイス。
【請求項２８】
コンピュータ・デバイスであって、前記コンピュータ・デバイスはプロセッサとメモリとを含み、前記メモリは少なくとも１つの命令を記憶し、前記命令は、請求項１１−１５のうちの何れか１項に記載の前記動きベクトル残差決定方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、コンピュータ・デバイス。
【請求項２９】
コンピュータ・デバイスであって、前記コンピュータ・デバイスはプロセッサとメモリとを含み、前記メモリは少なくとも１つの命令を記憶し、前記命令は、請求項１６−１９のうちの何れか１項に記載の前記動きベクトル・データ・ストレージ方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、コンピュータ・デバイス。
【請求項３０】
コンピュータ読み取り可能な記憶媒体であって、前記記憶媒体は少なくとも１つの命令を記憶し、前記命令は、請求項１−１０のうちの何れか１項に記載の前記動きベクトル取得方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、記憶媒体。
【請求項３１】
コンピュータ読み取り可能な記憶媒体であって、前記記憶媒体は少なくとも１つの命令を記憶し、前記命令は、請求項１１−１５のうちの何れか１項に記載の前記動きベクトル残差決定方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、記憶媒体。
【請求項３２】
コンピュータ読み取り可能な記憶媒体であって、前記記憶媒体は少なくとも１つの命令を記憶し、前記命令は、請求項１６−１９のうちの何れか１項に記載の前記動きベクトル・データ・ストレージ方法で実行される前記演算を実現するように、前記プロセッサによってロードされ実行される、記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、２０１８年９月３日に出願された「ビデオ・コーディング方法及び装置」と題する中国特許出願第２０１８１１０２０１８１．９号に対する優先権を主張しており、その全体が参照により本願に組み込まれる。
【０００２】
本願は、２０１８年１０月２９日に出願された「動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体」と題する中国特許出願第２０１８１１２７１７２６．３号に対する優先権を主張しており、その全体が参照により本願に組み込まれる。
【０００３】
技術分野
本願は、ビデオ圧縮技術の分野、特に動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体に関連する。
【０００４】
背景
日常生活において、ビデオ関連アプリケーションはますます人気を集めている。コンピュータ技術の成熟とともに、ビデオ処理技術もまた大きく発展してきた。ビデオ・コーディング技術は目覚ましく発展してきた。ピクチャのフレーム内のコーディング・ユニットが符号化される場合に、冗長性は、コーディング・ユニットと予測ユニットとの間の相関を利用することにより、可能な限り排除されることが可能である。復号化の際に、冗長性が除去された後に取得された情報は、コーディング・ユニットに対応するピクチャ情報を取得するために復号化される。
【０００５】
復号化処理は次のようであってもよい：コーディング・ユニットの動き情報を取得した後に、デコーダは、動き情報に基づいて、候補の予測された動きベクトルのリストを設定し、取得された動き情報に基づいて、候補の予測された動きベクトルのリストから、最適な予測された動きベクトルを選択し、最適な予測された動きベクトルで示される参照ユニットを開始点として使用することにより、コーディング・ユニットに最も類似する予測ユニットを探索し、候補の予測された動きベクトルのリストの中で最適な予測された動きベクトルを、予測ユニットの動きベクトルに更新し（即ち、更新された予測された動きベクトルはコーディング・ユニットの予測された動きベクトルであり）、更新された予測された動きベクトルと予測ユニットとに基づいて、コーディング・ユニットに対応するピクチャ情報を取得する。
【０００６】
本願を実現するプロセスにおいて、発明者は、関連する技術が少なくとも以下の問題を有することを見出している：デコーダは、復号化中に複数のコーディング・ユニットを同時に復号化する可能性がある。しかしながら、現在のコーディング・ユニットの予測された動きベクトルが、別のコーディング・ユニットに使用されることを必要とする場合、復号化は、現在のコーディング・ユニットの最適な予測された動きベクトルが更新された後に限って実行することが可能であり、その結果、遅延が非常に発生しやすい。
【発明の概要】
【０００７】
本願の実施形態は、関連技術における復号化遅延問題を解決するために、動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体を提供する。
【０００８】
ある態様によれば、本願は動きベクトル取得方法を提供し、これは、
処理対象のピクチャ・ブロックの参照ブロックを決定するステップであって、参照ブロックと処理対象のピクチャ・ブロックとはピクチャの同じフレームに位置する、ステップと、
参照ブロックが前もってセットされたレンジ内にある場合に、参照ブロックの初期の動きベクトルに基づいて、処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、前もってセットされたレンジは、処理対象のピクチャ・ブロックの位置に基づいて決定される、ステップと、
参照ブロックが前もってセットされたレンジ外にある場合に、参照ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、最終的な動きベクトルは初期の動きベクトルに基づいて取得される、ステップとを含む。
【０００９】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、同じ行に位置することを含み、
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックが位置するコーディング・ツリー・ブロックと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、異なる行に位置することを含む。
【００１０】
前述の可能な実装に基づいて、異なる前もってセットされたレンジが提供される可能性があり、その結果、処理対象のピクチャ・ブロックの動きベクトルは、異なる前もってセットされたレンジに基づいて決定されることが可能であり、処理対象のピクチャ・ブロックの複数の動きベクトルを選択することが可能である。
【００１１】
可能な実装において、参照ブロックが位置するコーディング・ツリー・ブロックと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、異なる行に位置し、参照ブロックが位置するコーディング・ツリー・ブロックは、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの上又は左上にある。
【００１２】
前述の可能な実装に基づいて、複数の前もってセットされた条件を動きベクトル選択のために提供することができるように、別の前もってセットされたレンジを提供することができる。
【００１３】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックと処理対象のピクチャ・ブロックとが、同じコーディング・ツリー・ブロックに位置することを含み、
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックと処理対象のピクチャ・ブロックとが、異なるコーディング・ツリー・ブロックに位置することを含む。
【００１４】
前述の可能な実装に基づいて、複数の可能な特定の前もってセットされたレンジが提供されてもよい。
【００１５】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含み、及び
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じではないこと、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む。
【００１６】
上記の可能な実装に基づいて、複数の可能な特定の前もってセットされたレンジが提供されてもよい。
【００１７】
可能な実装において、処理対象のピクチャ・ブロックの参照ブロックを決定するステップは、
１つ以上の前もってセットされた候補参照ブロックを参照ブロックとして、前もってセットされた順序で連続的に決定するステップであって、候補参照ブロックは、処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップを含む。
【００１８】
前述の実装に基づいて、処理対象のピクチャ・ブロックの参照ブロックが決定されてもよく、次いで、参照ブロックに基づいて処理対象のピクチャ・ブロックの初期の動きベクトルが決定されてもよい。
【００１９】
可能な実装において、処理対象のピクチャ・ブロックの参照ブロックを決定するステップは、
ビットストリームを解析し、１つ以上の第１識別情報を取得するステップと、
１つ以上の第１識別情報に基づいて、処理対象のピクチャ・ブロックの複数の候補参照ブロックから、参照ブロックを決定するステップであって、候補参照ブロックは、処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップとを含む。
【００２０】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの参照ブロックは、ビットストリーム内の識別情報に基づいて決定されることが可能であり、次いで処理対象のピクチャ・ブロックの初期の動きベクトルは、参照ブロックに基づいて決定されることが可能である。
【００２１】
可能な実装において、最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得することと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定することとを含む。
【００２２】
前述の可能な実装に基づいて、最小の歪コストに対応する最終的な動きベクトルの候補が、最終的な動きベクトルとして使用され、その結果、最終的な動きベクトルはより正確になる。
【００２３】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、第１の最終的な動きベクトルとして決定することであって、第１の最終的な動きベクトルは、複数の前もってセットされたオフセット・ベクトルにおける第１オフセット・ベクトルに対応する、ことと、
第２オフセット・ベクトルを取得することであって、第２オフセット・ベクトルのサイズは第１オフセット・ベクトルのものに等しく、第２オフセット・ベクトルの方向は前記第１オフセット・ベクトルのものと逆である、ことと、
第２の初期の動きベクトルと第２オフセット・ベクトルとを加えて第２の最終的な動きベクトルを取得することとを含む。
【００２４】
前述の可能な実装に基づいて、最終的な動きベクトルは、双方向予測モードにおける初期の動きベクトルに基づいて取得される。
【００２５】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、第１の最終的な動きベクトルとして決定すること、
第２の初期の動きベクトルと複数の前もってセットされた第２オフセット・ベクトルとを別々に加えて第２の最終的な動きベクトルの複数の候補を取得することと、
第２の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第２の最終的な動きベクトルの候補を、第２の最終的な動きベクトルとして決定することとを含む。
【００２６】
上記の可能な実装に基づいて、双方向予測モードにおける初期の動きベクトルに基づいて最終的な動きベクトルを取得する別の方法が提供され、その結果、双方向予測モードにおける最終的な動きベクトルを取得する複数の方法を提供することが可能である。
【００２７】
第２態様によれば、本願は動きベクトル残差決定方法を提供し、これは、
ビットストリームを解析して第２識別情報を取得するステップであって、第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、ステップと、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得するステップと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定するステップと、
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップとを含む。
【００２８】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第１の最終的な動きベクトルと第１の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む。
【００２９】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル残差が、双方向インター予測モードにおいて決定されることが可能である。
【００３０】
可能な実装において、最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第２の最終的な動きベクトルと第２の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む。
【００３１】
可能な実装において、最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、  
第１の最終的な動きベクトルを、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む。
【００３２】
可能な実装において、最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第２の最終的な動きベクトルを、処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む。
【００３３】
前述の複数の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル残差を決定する複数の方法が提供され、その結果、エンコーダ及びデコーダは、動きベクトル残差に基づいて符号化効率及び復号化効率を改善することができる。
【００３４】
第３態様によれば、本願は動きベクトル・データ・ストレージ方法を提供し、これは、
ビットストリームを解析して第２識別情報と第３識別情報とを取得するステップであって、第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用される、ステップと、
初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するステップと、
第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示す場合に、ビットストリームを解析して動きベクトル残差を取得し、動きベクトル残差をターゲット・ストレージ空間に記憶するステップと、
第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示す場合に、最終的な予測された動きベクトルと初期の予測された動きベクトルとの間の差分をターゲット・ストレージ空間に記憶するか、又は最終的な予測された動きベクトルをターゲット・ストレージ空間に記憶するステップとを含む。
【００３５】
可能な実装において、第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示すことは、
第３識別情報が、処理対象のピクチャ・ブロックの予測モードはＡＭＶＰモードであることを示すことを含む。
【００３６】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル・データは、複数の予測モードで記憶されることが可能である。
【００３７】
可能な実装において、第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示すことは、
第３識別情報が、処理対象のピクチャ・ブロックの予測モードはマージ・モード又はスキップ・モードであることを示すことを含む。
【００３８】
前述の可能な実装に基づいて、異なる識別情報が、異なる予測モードを区別するために使用され、その結果、処理対象のピクチャ・ブロックの動きベクトル・データは、複数の予測モードで記憶されることが可能である。
【００３９】
可能な実装において、初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するステップは、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得するステップと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定するステップとを含む。
【００４０】
上記の可能な実装に基づいて、歪コストを使用することで最終的に予測される動きベクトルを取得する精度はより高くなり、更に、記憶される動きベクトル・データはより正確になる。
【００４１】
第４態様によれば、本願は、上記の動きベクトル取得方法を実行するように構成された動きベクトル取得装置を提供する。具体的には、動きベクトル取得装置は、第１態様又は第１態様のオプション的な方法のうちの任意の１つで提供される動きベクトル取得方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル取得方法に対応する態様である。
【００４２】
第５態様によれば、本願は、上記の動きベクトル残差決定方法を実行するように構成された動きベクトル残差決定装置を提供する。具体的には、動きベクトル残差決定装置は、第２態様又は第２態様のオプション的な方法のうちの任意の１つで提供される動きベクトル残差決定方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル残差決定方法に対応する態様である。
【００４３】
第６態様によれば、本願は、上記の動きベクトル・データ・ストレージ方法を実行するように構成された動きベクトル・データ・ストレージ装置を提供する。具体的には、動きベクトル・データ・ストレージ装置は、第３態様又は第３態様のオプション的な方法のうちの任意の１つで提供される動きベクトル・データ・ストレージ方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル・データ・ストレージ方法に対応する態様である。
【００４４】
第７態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル取得方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４５】
第８態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル・データ・ストレージ方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４６】
第９態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル残差決定方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４７】
第１０態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル取得方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４８】
第１１態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル残差決定方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４９】
第１２態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル・データ・ストレージ方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００５０】
本願において提供される技術的解決策は、少なくとも以下の有益な効果を含む：
【００５１】
処理対象のピクチャ・ブロックの初期の動きベクトルは、参照ブロックと処理対象のピクチャ・ブロックとの間の位置関係を使用することにより決定される。参照ブロックと処理対象のピクチャ・ブロックとが、前もってセットされたレンジ内にある場合、デコーダは、参照ブロックの初期の動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用する。参照ブロックと処理対象のピクチャ・ブロックとが、前もってセットされたレンジ外にある場合、デコーダは、参照ブロックの最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用する。この場合に、処理対象のピクチャ・ブロックが、復号化の際に、参照ブロックの最終的な動きベクトルを使用することによって復号化されることを必要とする場合、デコーダは、処理対象のピクチャ・ブロックを使用することができるように、参照ブロックの初期の動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用することが可能であり、これにより、参照ブロックの最終的な動きベクトルが得られた後に限り、処理対象のピクチャ・ブロックの動きベクトルを取得することができるというケースを回避し、復号化効率を向上させることができる。
【図面の簡単な説明】
【００５２】
【図１】本願の実施形態で使用するために構成されることが可能なビデオ・コーディング・システムの一例のブロック図である。
【００５３】
【図２】本願の実施形態で使用するために構成されることが可能なビデオ・エンコーダの一例のシステム・ブロック図である。
【００５４】
【図３】本願の実施形態で使用するために構成されることが可能なビデオ・デコーダの一例のシステム・ブロック図である。
【００５５】
【図４】本願の実施形態で使用するために構成されることが可能なインター予測モジュールの一例の概略ブロック図である。
【００５６】
【図５】コーディング・ユニット及びコーディング・ユニットに関連する隣接するピクチャ・ブロックの一例の概略図である。
【００５７】
【図６】候補の予測された動きベクトルのリストを構築する実装例のフローチャートである。
【００５８】
【図７】組み合わされた候補の動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００５９】
【図８】スケーリングされた候補の動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００６０】
【図９】ゼロ動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００６１】
【図１０】マージ予測モードの実装例のフローチャートである。
【００６２】
【図１１】高度な動きベクトル予測モードの実装例のフローチャートである。
【００６３】
【図１２】本願の実施形態で使用するために構成されることが可能なビデオ・デコーダによって実行される動き補償の実装例のフローチャートである。
【００６４】
【図１３】本願の実施形態によるビデオ符号化中の動きベクトル更新方法の概略フローチャートである。
【００６５】
【図１４】本願の実施形態によるビデオ復号化中の動きベクトル更新方法の概略フローチャートである。
【００６６】
【図１５】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６７】
【図１６】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６８】
【図１７Ａ】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【図１７Ｂ】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６９】
【図１８】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００７０】
【図１９】本願の実施形態による動きベクトル取得方法の概略フローチャートである。
【００７１】
【図２０】本願の実施形態による動きベクトル取得方法の概略フローチャートである。
【００７２】
【図２１】本願の実施形態に従って指定されたレンジ内で動きベクトルを選択する概略図である。
【００７３】
【図２２】本願の実施形態による現在の予測ブロックの取得方法の概略図である。
【００７４】
【図２３】本願の実施形態によるビデオ復号化中の動きベクトル取得装置の概略ブロック図である。
【００７５】
【図２４】本願の実施形態によるビデオ・コーディング・デバイスの概略ブロック図である。
【００７６】
【図２５】本願の実施形態による動きベクトル取得装置の構造図である。
【００７７】
【図２６】本願の実施形態による動きベクトル残差決定装置の構造図である。
【００７８】
【図２７】本願の実施形態による動きベクトル・データ・ストレージ装置の構造図である。
【発明を実施するための形態】
【００７９】
本願の目的、技術的解決策、及び利点をより明確化するために、以下、添付図面を参照して、本願の実装を更に詳細に説明する。
【００８０】
図１は、本願の実施形態によるビデオ・コーディング・システム１０の概略ブロック図である。図１に示すように、システム１０はソース装置１２を含む。ソース装置１２は、後に宛先装置１４によって復号化されるべき符号化されたビデオ・データを生成する。ソース装置１２及び宛先装置１４は、デスクトップ・コンピュータ、ノートブック・コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、「スマート」フォンのような電話ハンドセット、「スマート」タッチパッド、テレビ、カメラ、ディスプレイ装置、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング送信装置などを含む広範囲の装置の任意の何れかを含む可能性がある。幾つかの用途では、ソース装置１２及び宛先装置１４は、無線通信用に装備されていてもよい。
【００８１】
宛先装置１４は、リンク１６を介して、復号化対象の符号化されたビデオ・データを受信することができる。リンク１６は、符号化されたビデオ・データを、ソース装置１２から宛先装置１４へ送信することが可能な任意のタイプの媒体又は装置を含むことができる。実現可能な実装において、リンク１６は、ソース装置１２が、符号化されたビデオ・データを宛先装置１４へリアル・タイムで直接的に送信することを可能にする通信媒体を含む可能性がある。符号化されたビデオ・データは、通信規格（例えば、無線通信プロトコル）に従って変調されることが可能であり、その後、宛先装置１４へ送信される。通信媒体は、任意の無線又は有線の通信媒体、例えば、無線周波数スペクトル又は少なくとも１つの物理的な送信ラインを含む可能性がある。通信媒体は、パケット・ベースのネットワーク（例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、又はインターネットのようなグローバル・ネットワーク）の一部を構成することができる。通信媒体は、ルーター、スイッチ、基地局、又は、ソース装置１２から宛先装置１４への通信を促進するために使用されることが可能な任意の他のデバイスを含む可能性がある。
【００８２】
代替的に、符号化されたデータは出力インターフェース２２からストレージ装置へ出力されてもよい。同様に、符号化されたデータは、入力インターフェースを介してストレージ装置からアクセスされる可能性がある。ストレージ装置は、複数の分散されたデータ記憶媒体又はローカルにアクセスされるデータ記憶媒体、例えば、ハード・ドライブ、ブルーレイ、デジタル多用途ディスク（digital  video  disc，DVD）、コンパクト・ディスク・リード・オンリー・メモリ（compact  disc  read−only  memory，CD−ROM）、フラッシュ・メモリ、揮発性又は不揮発性メモリ、又は、符号化されたビデオ・データを記憶するように構成された任意の他の適切なデジタル記憶媒体のうちの任意の１つを含む可能性がある。別の実現可能な実装において、ストレージ装置は、ソース装置１２によって生成された符号化ビデオを保持することが可能なファイル・サーバー又は別の中間的なストレージ装置に対応する可能性がある。宛先装置１４は、ストリーミング送信又はダウンロードにより、ストレージ装置からの記憶されたビデオ・データにアクセスすることが可能である。ファイル・サーバーは、符号化されたビデオ・データを記憶し、符号化されたビデオ・データを宛先装置１４へ送信することが可能な任意のタイプのサーバーであるとすることができる。実現可能な実装において、ファイル・サーバーは、ウェブサイト・サーバー、ファイル転送プロトコル・サーバー、ネットワーク接続ストレージ装置、又はローカル・ディスク・ドライブを含む。宛先装置１４は、インターネット接続を含む任意の標準データ接続を介して、符号化されたビデオ・データにアクセスすることができる。データ接続は、ファイル・サーバーに記憶された符号化されたビデオ・データにアクセスするのに適した無線チャネル（例えば、ワイヤレス・フィデリティ（wireless−fidelity，Wi−Fi）接続）又は有線接続（例えば、ケーブル・モデム）、又はそれらの組み合わせを含む可能性がある。ストレージ装置からの符号化されたビデオ・データの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組み合わせであってもよい。
【００８３】
本願における技術は必ずしも無線のアプリケーションや設定に限定されない。技術は、複数のマルチメディア・アプリケーション、例えば、オーバー・ザ・エアー・テレビジョン放送、ケーブル・テレビジョン伝送、衛星テレビジョン伝送、ビデオ・ストリーミング伝送（例えば、インターネットを介するもの）、データ記憶媒体における記憶のためのデジタル・ビデオの符号化、データ記憶媒体に記憶されたデジタル・ビデオの復号化、又は他のアプリケーションのうちの任意の何れかをサポートするために、ビデオ復号化に適用されることが可能である。幾つかの実現可能な実装において、システム１０は、ビデオ・ストリーミング伝送、ビデオ再生、ビデオ放送、及び／又はビデオ電話などのアプリケーションをサポートするために、一方向又は双方向のビデオ伝送をサポートするように構成されてもよい。
【００８４】
図１の実現可能な実装において、ソース装置１２は、ビデオ・ソース１８、ビデオ・エンコーダ２０、及び出力インターフェース２２を含む。幾つかのアプリケーションにおいて、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含んでもよい。ソース装置１２において、ビデオ・ソース１８は、例えば以下のソース：ビデオ捕捉装置（例えば、ビデオ・カメラ）、以前に捕捉されたビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するビデオ・フィードイン・インターフェース、及び／又はソース・ビデオとしてコンピュータ・グラフィックス・データを生成するコンピュータ・グラフィックス・システム、又はそれらの組み合わせを含むことが可能である。実現可能な実装において、ビデオ・ソース１８がビデオ・カメラである場合に、ソース装置１２及び宛先装置１４は、カメラ電話又はビデオ電話を構成することが可能である。例えば、本願で説明される技術は、例えば、ビデオ復号化に適用されることが可能であり、無線及び／又は有線アプリケーションに適用されることが可能である。
【００８５】
ビデオ・エンコーダ２０は、捕捉された又は予め捕捉されたビデオ、又はコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオ・データは、ソース装置１２の出力インターフェース２２を介して宛先装置１４へ直接的に送信されることが可能である。符号化されたビデオ・データはまた（又は代替的に）、記憶装置２４に記憶されることが可能であり、その結果、宛先装置１４又は別の装置は以後に、復号化及び／又は再生のために、符号化されたビデオ・データにアクセスする。
【００８６】
宛先装置１４は、入力インターフェース２８、ビデオ・デコーダ３０、及びディスプレイ装置３２を含む。幾つかのアプリケーションでは、入力インターフェース２８は、受信機及び／又はモデムを含んでもよい。宛先装置１４の入力インターフェース２８は、リンク１６を介して、符号化されたビデオ・データを受信する。リンク１６を介してストレージ装置２４に送信又は提供される符号化されたビデオ・データは、ビデオ・エンコーダ２０によって生成され且つビデオ・デコーダ３０のようなビデオ・デコーダによってビデオ・データを復号化するために使用される複数のシンタックス要素を含む可能性がある。これらのシンタックス要素は、通信媒体上で送信され、且つ記憶媒体又はファイル・サーバーに記憶される、符号化されたビデオ・データに含まれることが可能である。
【００８７】
ディスプレイ装置３２は、宛先装置１４と一体化されていてもよいし、或いは宛先装置１４の外側に配置されていてもよい。幾つかの実現可能な実装において、宛先装置１４は、統合されたディスプレイ装置を含んでもよく、また、外部ディスプレイ装置のインターフェースに接続するように構成されてもよい。他の実現可能な実装において、宛先装置１４はディスプレイ装置であってもよい。一般に、ディスプレイ装置３２は、復号化されたビデオ・データをユーザーに表示し、複数のディスプレイ装置、例えば、液晶ディスプレイ、プラズマ・ディスプレイ、有機発光ダイオード・ディスプレイ、又は他のタイプのディスプレイ装置のうちの任意の１つを含むことができる。
【００８８】
ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、例えば、現在開発されている次世代ビデオ・コーディング圧縮規格（Ｈ．２６６）に従って動作することが可能であり、Ｈ．２６６テスト・モデルに準拠していてもよい。
【００８９】
代替的に、ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、例えばＩＴＵ−Ｔ  Ｈ．２６５規格又はＩＴＵ−Ｔ  Ｈ．２６４規格のような他の専用若しくは工業規格、又はこれらの規格の拡張に従って動作してもよい。ＩＴＵ−Ｔ  Ｈ．２６５規格はまた、高効率ビデオ復号化規格とも呼ばれ、ＩＴＵ−Ｔ  Ｈ．２６４規格は代替的に、動画エキスパート・グループ（moving  picture  experts  group，MPEG−4）パート１０又はアドバンスト・ビデオ・コーディング（advanced  video  coding，AVC）とも呼ばれている。しかしながら、本願の技術は、如何なる特定の復号化規格にも限定されない。他の実現可能な実装において、ビデオ圧縮規格はＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３を含む。
【００９０】
図１には示されていないが、幾つかの態様において、ビデオ・エンコーダ２０及びビデオ・デコーダ３０はそれぞれオーディオ・エンコーダ及びオーディオ・デコーダと一体化されていてもよく、同じデータ・ストリーム又は別個のデータ・ストリームにおいてオーディオ及びビデオの両方を符号化するために、適切なマルチプレクサ・デマルチプレクサ（multiplexer−demultiplexer，MUX−DEMUX）ユニット又は他のハードウェア及びソフトウェアを含んでもよい。適用可能であるならば、幾つかの実現可能な実装において、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサ・プロトコル、又はユーザー・データグラム・プロトコル（user  datagram  protocol，UDP）のような他のプロトコルに準拠してもよい。
【００９１】
ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、複数の適切なエンコーダ回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（digital  signal  processing，DSP）、特定用途向け集積回路（application  specific  integrated  circuit，  ASIC）、フィールド・プログラマブル・ゲート・アレイ（field  programmable  gate  array，  FPGA）、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせのうちの任意の１つとして実現されることが可能である。幾つかの技術がソフトウェアとして実現される場合、装置は、本願における技術を実現するために、適切な非一時的なコンピュータ読み取り可能な媒体にソフトウェアの命令を記憶し、１つ以上のプロセッサを使用することによってハードウェアの形式で命令を実行することができる。ビデオ・エンコーダ２０及びビデオ・デコーダ３０はそれぞれ１つ以上のエンコーダ又はデコーダに含まれてもよい。ビデオ・エンコーダ２０及びビデオ・デコーダ３０の何れも、対応する装置において組み合わされたエンコーダ／デコーダ（coder  decoder，CODEC）の一部として統合されることが可能である。
【００９２】
本願は、例えば、ビデオ・エンコーダ２０が特定の情報を例えばビデオ・デコーダ３０に「シグナリング」する別の装置に関する可能性がある。しかしながら、ビデオ・エンコーダ２０は、情報をシグナリングするために、特定のシンタックス要素を、ビデオ・データの符号化された部分に関連付けることができることは、理解されるべきである。即ち、ビデオ・エンコーダ２０は、データをシグナリングするために、特定のシンタックス要素を、ビデオ・データの符号化された部分のヘッダ情報に記憶することができる。幾つかのアプリケーションでは、これらのシンタックス要素は、ビデオ・デコーダ３０によって受信され復号化される前に、符号化され記憶される（例えば、ストレージ・システム又はファイル・サーバーに記憶される）。従って、用語「信号」は、伝送がリアル・タイムで行われるか、ほぼリアル・タイムで行われるか、又はある時間スパン内で行われるかによらず、例えば、シンタックスの伝送又は圧縮されたビデオ・データを復号化するために使用される他のデータの伝送を意味する可能性がある。例えば、伝送は、符号化の間にシンタックス要素が媒体に記憶された場合に実行されることが可能であり、その後、シンタックス要素は、媒体に記憶された後の任意の時間に、復号化装置によって取り出されることが可能である。
【００９３】
共同ビデオ・エキスパート・チーム（joint  video  team，JVT）は、Ｈ．２６５高効率ビデオ符号化（high  efficiency  video  coding，  HEVC）規格を開発した。ＨＥＶＣ標準化は、ビデオ復号化装置の進化したモデルに基づいており、モデルはＨＥＶＣテスト・モデルと呼ばれる。最新のＨ．２６５規格文書はhttp://www．itu．int/rec/T−REC−H．265において入手可能ある。標準文書の最新バージョンはＨ．２６５（１２／１６）であり、標準文書は参照によりその全体が本願に組み込まれる。ＨＭでは、ビデオ復号化装置は、ＩＴＵ−ＴＨ．２６４／ＡＶＣの既存のアルゴリズムに関連する幾つかの追加的な能力を有することが仮定されている。例えば、Ｈ．２６４は９個のイントラ予測符号化モードを提供する一方、ＨＭは最大３５個のイントラ予測符号化モードを提供することができる。
【００９４】
ＪＶＥＴはＨ．２６６規格の開発に取り組んでいる。Ｈ．２６６標準化プロセスは、ビデオ復号化装置の進化したモデルに基づいており、モデルはＨ．２６６テスト・モデルと呼ばれる。Ｈ．２６６アルゴリズムの説明はhttp://phenix．int−evry．fr/jvetで入手可能であり、最新のアルゴリズムの説明はJVET−G1001−v1に含まれている。アルゴリズム記述文書は、その全体が参照により本願に組み込まれる。更に、ＪＥＭテスト・モデルのための参照ソフトウェアは、https://jvet．hhi．fraunhofer．de/svn/svn_HMJEMSoftware/で入手可能であり、その全体が参照により本願に組み込まれる。
【００９５】
一般に、ＨＭワーキング・モデルで説明されているように、ビデオ・フレーム又はピクチャは、ルマ及びクロマ・サンプルの両方を含む、一連のツリー・ブロック又は最大コーディング・ユニット（largest  coding  unit，LCU）に分割されることが可能である。ＬＣＵはまた、コーディング・ツリー・ユニット（coding  tree  unit，CTU）とも呼ばれる。ツリー・ブロックは、Ｈ．２６４規格のマクロブロックのものと同様の機能を有する。スライスは、復号化の順序で幾つかの連続するツリー・ブロックを含む。ビデオ・フレーム又はピクチャは、１つ又は複数のスライスに区分けされることが可能である。各ツリー・ブロックは、四分木に基づいてコーディング・ユニットに分割されることが可能である。例えば、四分木のルート・ノードとして機能するツリー・ブロックは、４つの子ノードに分割することが可能であり、各々の子ノードはまた、親ノードとして機能する可能性があり、他の４つの子ノードに分割される。四分木のリーフ・ノードとして機能する最終的な分割不可能な子ノードは、復号化ノード、例えば、復号化されたビデオ・ブロックを含む。復号化されたビットストリームに関連したシンタックス・データにおいて、ツリー・ブロックが分割されることが可能な最大回数と、復号化ノードの最小サイズとが、決定される可能性がある。
【００９６】
１つのＣＴＵは、１つのコーディング・ツリー・ブロック（coding  tree  block，CTB）及び同じ位置における２つのクロマＣＴＢと、幾つかの対応する構文要素とを含むことに留意すべきである。ＣＴＢは、１つのコーディング・ブロック（coding  block，CB）として直接的に使用されることが可能であるか、又は複数の小さなコーディング・ブロックＣＢ、１つのルマＣＢ、２つのクロマＣＢ、及び幾つかの対応するシンタックス要素に、四分木の形式で分割されて、１つのコーディング・ユニット（coding  unit，CU）を形成することが可能である。
【００９７】
ＣＵは、復号化ノード、予測ユニット（prediction  unit，PU）、及び復号化ノードに関連する変換ユニット（transform  unit，TU）を含む。ＣＵのサイズは復号化ノードのサイズに対応し、ＣＵの形状は正方形である必要がある。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセルまでのレンジにあるか、又はより大きなツリー・ブロック・サイズであってもよい。各ＣＵは、１つ以上のＰＵ及び１つ以上のＴＵを含むことが可能である。例えば、ＣＵに関連するシンタックス・データは、１つのＣＵを１つ以上のＰＵに区分けすることを記述することができる。パーティショニング・パターンは、ＣＵがスキップ又はダイレクト・モードで符号化される場合、イントラ予測モードで符号化される場合、又はインター予測モードで符号化される場合に、相違する可能性がある。パーティショニングによって得られるＰＵは、非正方形の形状である可能性がある。例えば、ＣＵに関連するシンタックス・データはまた、四分木に基づく１つ以上のＴＵへのＣＵのパーティショニングを記述することができる。ＴＵは、正方形又は非正方形の形状であってもよい。
【００９８】
ＨＥＶＣ規格はＴＵベースの変換を許容する。異なるＣＵは異なるＴＵを含む可能性がある。ＴＵのサイズは、通常、区分けされたＬＣＵに対して規定される所与のＣＵ内のＰＵのサイズに基づいて設定される。しかしながら、常にこのようではないかもしれない。ＴＵのサイズは通常、ＰＵのものと同じか又はそれより小さい。幾つかの実現可能な実装において、「残差四分木」（residual  quadtree，RQT）と呼ばれる四分木構造が、ＣＵに対応する残差サンプルを、より小さなユニットに分割するために使用される可能性がある。ＲＱＴのリーフ・ノードは、ＴＵと言及される場合がある。ＴＵに関連するピクセル差分は、変換係数を生成するために変換される可能性があり、変換係数は量子化される可能性がある。
【００９９】
一般に、ＰＵは、予測処理に関するデータを含む。例えば、ＰＵがイントラ・モードで符号化される場合、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含む可能性がある。別の実現可能な実装において、ＰＵがインター・モードで符号化される場合、ＰＵは、ＰＵのための動きベクトルを規定するデータを含む可能性がある。例えば、ＰＵのための動きベクトルを規定するデータは、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４ピクセル精度又は１／８ピクセル精度）、動きベクトルが指し示す参照ピクチャ、及び／又は動きベクトルの参照ピクチャ・リスト（例えば、リスト０、リスト１、又はリストＣ）を記述することができる。
【０１００】
一般に、変換及び量子化処理がＴＵに対して使用される。１つ以上のＰＵを含む所与のＣＵは、１つ以上のＴＵを含むことも可能である。予測を実行した後に、ビデオ・エンコーダ２０は、ＰＵに対応する残差を計算することができる。残差は、ピクセル差分を含む。ピクセル差分は変換係数に変換されることが可能であり、変換係数は量子化され、ＴＵを用いてスキャンされて、エントロピー復号化のためのシリアル化された変換係数を生成する。本願では、用語「ビデオ・ブロック」は、通常、ＣＵの復号化ノードを示すために使用される。幾つかの特定のアプリケーションでは、用語「ビデオ・ブロック」はまた、復号化ノード、ＰＵ、及びＴＵを含むツリー・ブロック、例えばＬＣＵ又はＣＵを示すために使用されることが可能である。
【０１０１】
ビデオ・シーケンスには、通常、一連のビデオ・フレーム又はピクチャを含む。例えば、ピクチャのグループ（group  of  picture，  GOP）は、一連のビデオ・ピクチャ、又は１つ以上のビデオ・ピクチャを含む。ＧＯＰは、ＧＯＰのヘッダ情報、１つ以上のピクチャのヘッダ情報などにシンタックス・データを含む可能性があり、シンタックス・データは、ＧＯＰに含まれるピクチャの量を記述する。ピクチャの各スライスは、対応するピクチャの符号化モードを記述するスライス・シンタックス・データを含む可能性がある。ビデオ・エンコーダ２０は、通常、ビデオ・データを符号化するために、個々のビデオ・スライス内のビデオ・ブロックに対して動作を実行する。ビデオ・ブロックは、ＣＵにおける復号化ノードに対応する可能性がある。ビデオ・ブロックのサイズは、固定されていてもよいし、又は変更可能であってもよく、指定された復号化規格によって異なる可能性がある。
【０１０２】
実現可能な実装において、ＨＭは様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×Ｎのサイズを用いたＰＵに対するイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎのサイズを用いた対称的なＰＵに対するインター予測をサポートし、ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、又はｎＲ×２Ｎのサイズを用いたＰＵに対するインター予測の非対称パーティショニングもサポートする。非対称パーティショニングにおいて、ＣＵはある方向では区分けされず、別の方向では２つの部分に区分けされ、一方の部分はＣＵの２５％を占め、他方の部分はＣＵの７５％を占める。ＣＵの２５％を占める部分は、「ｎ」の後に「Ｕ（Ｕｐ）」、「Ｄ（Ｄｏｗｎ）」、「Ｌ（Ｌｅｆｔ）」、「Ｒ（Ｒｉｇｈｔ）」を続けて示すインジケータによって示される。従って、例えば「２Ｎ×ｎＵ」は、水平に区分けされた２Ｎ×２Ｎ  ＣＵを指し、上部は２Ｎ×０．５Ｎ  ＰＵ、下部は２Ｎ×１．５Ｎ  ＰＵである。
【０１０３】
本願では、「Ｎ×Ｎ」及び「ＮかけるＮ」は、例えば１６×１６ピクセル又は１６に１６を乗算した個数のピクセルのように、垂直次元及び水平次元のビデオ・ブロックのピクセル・サイズを示すために可換に使用されることが可能である。一般に、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）、水平方向に１６ピクセル（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、通常、垂直方向にＮ個のピクセルを有し、水平方向にＮ個のピクセルを有し、ここで、Ｎは非負の整数値である。ブロック中のピクセルは、行及び列に配列されることが可能である。また、ブロックの水平方向におけるピクセルの量と垂直方向におけるピクセルの量とは、必ずしも同じではない可能性がある。例えば、ブロックは、Ｎ×Ｍピクセルを含んでもよく、ここで、Ｍは、必ずしもＮに等しくない。
【０１０４】
ＣＵ内のＰＵに関するイントラ又はインター予測復号化を実行した後に、ビデオ・エンコーダ２０は、ＣＵ内のＴＵの残差データを計算することができる。ＰＵは、空間ドメイン（ピクセル・ドメインとも呼ばれる）内のピクセル・データを含む可能性があり、ＴＵは、残差ビデオ・データに適用される変換（例えば、離散コサイン変換（discrete  cosine  transform，DCT）、整数変換、ウェーブレット変換、又は他の概念的に類似する変換）の後の変換ドメインにおける係数を含む可能性がある。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測子との間のピクセル差分に対応する可能性がある。ビデオ・エンコーダ２０は、ＣＵの残差データを含むＴＵを生成し、次いでＴＵを変換してＣＵの変換係数を生成することができる。
【０１０５】
変換係数を生成するために何らかの変換を実行した後に、ビデオ・エンコーダ２０は、変換係数を量子化することができる。量子化は、例えば係数を表すために使用されるデータの量を減らし、更なる圧縮を実行するために、係数を量子化するプロセスを指す。量子化プロセスは、係数の幾つか又は全てに関連するビット深度を低減することができる。例えば、量子化の間に、ｎビット値は、丸めによりｍビット値に低減されることが可能であり、ここで、ｎはｍより大きい。
【０１０６】
ＪＥＭモデルはビデオ・ピクチャ符号化構造を更に改良する。具体的には、「四分木プラス二分木」（quad  tree  combined  with  binary  tree，QTBT）構造と呼ばれるブロック・コーディング構造が導入される。ＨＥＶＣにおけるＣＵ、ＰＵ、ＴＵのような概念を使用せずに、ＱＴＢＴ構造は、より柔軟なＣＵ分割形状をサポートする。ＣＵは、正方形又は長方形におけるものであってもよい。四分木パーティショニングが先ずＣＴＵ上で実行され、二分木パーティショニングが、四分木のリーフ・ノード上で更に実行される。更に、対称水平パーティショニング及び対称垂直パーティショニングという２つの二分木パーティショニング・モードが存在する。二分木のリーフ・ノードはＣＵと言及される。ＪＥＭモデルにおけるＣＵは、予測及び変換の間に更に区分けされることはできない。言い換えれば、ＪＥＭモデルにおけるＣＵ、ＰＵ、及びＴＵは、同じブロック・サイズを有する。既存のＪＥＭモデルでは、最大ＣＴＵサイズは２５６×２５６ルマ・ピクセルである。
【０１０７】
幾つかの実現可能な実装において、ビデオ・エンコーダ２０は、量子化された変換係数を、所定のスキャン順序でスキャンして、エントロピー符号化されることが可能なシリアル化されたベクトルを生成することができる。他の実現可能な実装において、ビデオ・エンコーダ２０は、適応スキャニングを実行することができる。量子化された変換係数をスキャンして１次元ベクトルを形成した後に、ビデオ・エンコーダ２０は、文脈適応型可変長コーディング（context−adaptive  variable−length  coding，CAVLC）法、文脈ベースの適応型二進算術コーディング（context−based  adaptive  binary  arithmetic  coding，CABAC）法、確率間隔パーティショニング・エントロピー（probability  interval  partitioning  entropy，PIPE）コーディング法、又は別のエントロピー・コーディング法に基づいて、１次元ベクトルをエントロピー復号化することができる。ビデオ・エンコーダ２０は、符号化されたビデオ・データに関連付けられたシンタックス要素を更に符号化することが可能であり、その結果、ビデオ・デコーダ３０はビデオ・データを復号化する。
【０１０８】
ＣＡＢＡＣを実行するために、ビデオ・エンコーダ２０は、コンテキスト・モデルにおけるコンテキストを、送信対象のシンボルに割り当てることができる。コンテキストは、シンボルの隣接する値が非ゼロであるかどうかに関連付けられる可能性がある。ＣＡＶＬＣを実行するために、ビデオ・エンコーダ２０は、送信対象のシンボルの可変長コードを選択することができる。可変長コーディングにおけるコードワード（variable−length  coding，VLC）は、より短いコードがより可能性の高いシンボルに対応し且つより長いコードがより可能性の低いシンボルに対応するように、構成されることが可能である。このようにして、全ての送信対象のシンボルに対して等しい長さのコードワードを使用することと比較して、ＶＬＣを使用することは、ビット・レートを削減することができる。ＣＡＢＡＣにおける確率は、シンボルに割り当てられたコンテキストに基づいて決定されることが可能である。
【０１０９】
本願のこの実施形態では、ビデオ・エンコーダは、ピクチャ間の時間的な冗長性を低減するために、インター予測を実行することができる。上述したように、ＣＵは、異なるビデオ圧縮コーディング規格に従って、１つ以上の予測ユニットＰＵを有することが可能である。言い換えれば、複数のＰＵが１つのＣＵに属している可能性があり、あるいはＰＵ及びＣＵは同じサイズを有する。本明細書では、ＣＵ及びＰＵが同じサイズを有する場合、ＣＵのパーティショニング・モードは、パーティションなしを実行するか、又はＣＵを１つのＰＵに区分けし、ここで、ＰＵは説明のために均一に使用される。ビデオ・エンコーダがインター予測を実行する場合、ビデオ・エンコーダは、ＰＵに関する動き情報を、ビデオ・デコーダにシグナリングすることが可能である。例えば、ＰＵに関する動き情報は、参照ピクチャ・インデックス、動きベクトル、及び予測方向識別子を含む可能性がある。動きベクトルは、ＰＵのピクチャ・ブロック（ビデオ・ブロック、ピクセル・ブロック、ピクセル・セット等とも呼ばれる）とＰＵの参照ブロックとの間の変位を示すことができる。ＰＵの参照ブロックは、ＰＵのピクチャ・ブロックに類似した参照ピクチャの一部であってもよい。参照ブロックは、参照ピクチャ・インデックス及び予測方向識別子によって示される参照ピクチャ内に配置されてもよい。
【０１１０】
ＰＵに関する動き情報を表現するために必要なコーディングされたビットの量を削減するために、ビデオ・エンコーダは、マージ（merge）予測モード又はアドバンスト動きベクトル予測（advanced  motion  vector  prediction，AMVP）モードに従って、各ＰＵに関する候補の予測された動きベクトル（motion  vector，MV）のリストを生成することができる。ＰＵに関する候補の予測された動きベクトルのリストにおける候補の予測された動きベクトルの各々は、動き情報を示すことができる。候補の予測された動きベクトルのリスト内の幾つかの候補の予測された動きベクトルによって示される動き情報は、他のＰＵに対する動き情報に基づいてもよい。候補の予測された動きベクトルが、特定の空間的な候補の予測された動きベクトル位置又は特定の時間的な候補の予測された動きベクトル位置のうちの１つの動き情報を示す場合、候補の予測された動きベクトルは、本願では「オリジナル」候補の予測された動きベクトルと呼ばれる場合がある。例えば、本願でマージ予測モードとも呼ばれるマージ・モードでは、５つのオリジナル空間候補の予測された動きベクトル位置と、１つのオリジナル時間候補の予測された動きベクトル位置とが存在し得る。幾つかの例では、ビデオ・エンコーダは、異なるオリジナル候補の予測された動きベクトルからの幾つかの動きベクトルを組み合わせること、オリジナル候補の予測された動きベクトルを修正すること、又は候補の予測された動きベクトルとしてゼロ動きベクトルのみを挿入することによって、追加候補の予測された動きベクトルを生成することができる。これらの追加候補の予測された動きベクトルは、オリジナル候補の予測された動きベクトルとは考えられず、本願では、マニュアルで生成された候補の予測された動きベクトルと言及される場合がある。
【０１１１】
本願における技術は、通常、ビデオ・エンコーダにおいて候補の予測された動きベクトルのリストを生成する技術と、ビデオ・デコーダにおいて同じ候補の予測された動きベクトルのリストを生成する技術とを含む。ビデオ・エンコーダ及びビデオ・デコーダは、候補の予測された動きベクトルのリストを構築するために同じ技術を実現することによって、同じ候補の予測された動きベクトルのリストを生成することができる。例えば、ビデオ・エンコーダ及びビデオ・デコーダは、同じ量の候補の予測された動きベクトル（例えば、５つの候補の予測された動きベクトル）を有するリストを構成することができる。ビデオ・エンコーダ及びビデオ・デコーダは、先ず、（例えば、同じピクチャにおける隣接するブロックのような）空間的な候補の予測された動きベクトルを考慮し、次いで、（例えば、異なるピクチャにおける候補の予測された動きベクトルのような）時間的な候補の予測された動きベクトルを考慮し、最終的に、マニュアルで生成される候補の予測された動きベクトルを考慮することを、必要な量の候補の予測された動きベクトルがリストに追加されるまで行うことができる。本願の技術によれば、候補の予測された動きベクトルのリストを構成する間に、候補の予測された動きベクトルのリストから、反復的な候補の予測された動きベクトルを除去するために、あるタイプの候補の予測された動きベクトルに対して、プルーニング処理が実行されてもよく、プルーニング処理は、デコーダの複雑性を低減するために、他のタイプの候補の予測された動きベクトルに関して実行されなくてもよい。例えば、空間的な候補の予測された動きベクトルの集合及び時間的な候補の予測された動きベクトルの集合に対して、プルーニング処理は、反復した動き情報を伴う候補の予測された動きベクトルを、候補の予測された動きベクトルのリストから除去するために実行されることが可能である。しかしながら、マニュアルで生成された候補の予測された動きベクトルは、プルーニング処理が、マニュアルで生成された候補の予測された動きベクトルに関して実行されない場合に、候補の予測されたベクトルのリストに追加されることが可能である。
【０１１２】
ＣＵのＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストから、候補の予測された動きベクトルを選択し、候補の予測された動きベクトル・インデックスをビットストリームで出力することができる。選択された候補の予測された動きベクトルは、復号化されているターゲットＰＵの予測ユニットに最もよく合致する動きベクトルを生成するための候補の予測された動きベクトルであってもよい。候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示すことができる。ビデオ・エンコーダは、更に、ＰＵに関する動き情報によって示される参照ブロックに基づいて、ＰＵに関する予測ピクチャ・ブロックを生成してもよい。ＰＵに関する動き情報は、選択された候補の予測された動きベクトルによって示される動き情報に基づいて決定されてもよい。例えば、マージ・モードでは、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。アドバンスト動きベクトル予測モードでは、ＰＵのための動き情報は、ＰＵのための動きベクトル差分と選択された候補の予測された動きベクトルによって示される動き情報とに基づいて決定されることが可能である。ビデオ・エンコーダは、ＣＵのＰＵに対する予測ピクチャ・ブロックとＣＵに対するオリジナル・ピクチャ・ブロックとに基づいて、ＣＵに対する１つ以上の残差ピクチャ・ブロックを生成することができる。次いで、ビデオ・エンコーダは、１つ以上の残差ピクチャ・ブロックを符号化し、１つ以上の残差ピクチャ・ブロックをビットストリームで出力することができる。
【０１１３】
ビットストリームは、ＰＵに関する候補の予測された動きベクトルのリストにおいて、選択された候補の予測された動きベクトルを識別するデータを含むことができる。ビデオ・デコーダは、ＰＵのための候補の予測された動きベクトル・リストにおいて、選択された候補の予測された動きベクトルによって示される動き情報に基づいて、ＰＵの動き情報を決定することができる。ビデオ・デコーダは、ＰＵの動き情報に基づいて、ＰＵのための１つ以上の参照ブロックを識別することができる。ＰＵに対する１つ以上の参照ブロックを識別した後に、ビデオ・デコーダは、ＰＵに対する１つ以上の参照ブロックに基づいて、ＰＵに対する予測ピクチャ・ブロックを生成してもよい。ビデオ・デコーダは、ＣＵのＰＵに対する予測ピクチャ・ブロックとＣＵに対する１つ以上の残差ピクチャ・ブロックとに基づいて、ＣＵに対するピクチャ・ブロックを再構成することができる。
【０１１４】
説明を簡単にするために、本願では、位置又はピクチャ・ブロックは、ＣＵ又はＰＵとの様々な空間的な関係を有するものとして説明されることが可能である。説明は、次のように説明することができる：ロケーション又はピクチャ・ブロックは、ＣＵ又はＰＵに関連付けられたピクチャ・ブロックと様々な空間的な関係を有する。追加的に、本願では、ビデオ・デコーダによって現在復号化されているＰＵは、処理対象のＰＵと言及されてもよいし、又は現在の処理対象のピクチャ・ブロックと言及されてもよい。本願では、ビデオ・デコーダによって現在復号化されているＣＵは、処理対象のＣＵと言及されてもよい。本願では、ビデオ・デコーダによって現在復号化されているピクチャは、現在のピクチャと言及されてもよい。本願は、ＰＵ及びＣＵが同じサイズを有する場合、又はＰＵがＣＵである場合にも適用可能であることが理解されるべきである。ＰＵは説明のために均一に使用される。
【０１１５】
先に簡単に説明したように、ビデオ・エンコーダ２０は、インター予測によってＣＵのＰＵに対する予測ピクチャ・ブロック及び動き情報を生成することができる。多くの例において、所与のＰＵの動き情報は、１つ以上の隣接するＰＵ（即ち、ピクチャ・ブロックが所与のＰＵのピクチャ・ブロックに空間的又は時間的に隣接しているＰＵ）の動き情報と同一又は類似であってもよい。隣接するＰＵは、しばしば同様な動き情報を有するので、ビデオ・エンコーダ２０は、隣接するＰＵの動き情報に基づいて、所与のＰＵの動き情報を符号化することができる。隣接するＰＵの動き情報に基づいて所与のＰＵの動き情報を符号化することは、所与のＰＵの動き情報を示すためにビットストリームにおいて要求される符号化されたビットの量を減らすことができる。
【０１１６】
ビデオ・エンコーダ２０は、様々な方法で、隣接するＰＵの動き情報に基づいて、所与のＰＵの動き情報を符号化することができる。例えば、ビデオ・エンコーダ２０は、所与のＰＵに対する動き情報が、隣接するＰＵに対する動き情報と同じであることを示すことができる。本願では、マージ・モードは、所与のＰＵに対する動き情報が隣接するＰＵに対する動き情報と同じであることを示すために使用されてもよいし、又は隣接するＰＵに対する動き情報から導出されてもよい。別の実現可能な実装において、ビデオ・エンコーダ２０は、所与のＰＵに対する動きベクトル差分（motion  vector  difference，  MVD）を計算することが可能であり、ＭＶＤは、所与のＰＵに対する初期の動きベクトルと所与のＰＵに対する最終的な動きベクトルとの間の差分である。ビデオ・エンコーダ２０は、所与のＰＵの動き情報において、所与のＰＵの動きベクトルの代わりにＭＶＤを含めることができる。ビットストリームでは、ＭＶＤを表現するために必要なコーディングされたビットの量は、所与のＰＵに対する動きベクトルを表現するために必要なコーディングされたビットの量よりも少ない。本願では、アドバンスト動きベクトル予測モードを使用して、所与のＰＵの動き情報が、ＭＶＤと候補の動きベクトルを識別するためのインデックス値とを使用することによって、デコーダにシグナリングされることを示すことができる。
【０１１７】
マージ・モード又はＡＭＶＰモードにおいて、所与のＰＵの動き情報をデコーダにシグナリングするために、ビデオ・エンコーダ２０は、所与のＰＵに対する候補の予測された動きベクトルのリストを生成することができる。候補の予測された動きベクトルのリストは、１つ以上の候補の予測された動きベクトルを含んでもよい。所与のＰＵに関する候補の予測された動きベクトルのリストにおける各候補の予測された動きベクトルは、動き情報を指定することができる。各候補の予測された動きベクトルによって示される動き情報は、動きベクトル、参照ピクチャ・インデックス、及び予測方向識別子を含んでもよい。候補の予測された動きベクトルのリスト内の候補の予測された動きベクトルは、「オリジナル」候補の予測された動きベクトルを含む可能性があり、各々の「オリジナル」候補の予測された動きベクトルは、所与のＰＵとは異なるＰＵ内の特定の候補の予測された動きベクトル位置のうちの１つの動き情報を示す。
【０１１８】
ＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダ２０は、ＰＵのための候補の予測された動きベクトルのリストから、候補の予測された動きベクトルのうちの１つを選択することができる。例えば、ビデオ・エンコーダは、各々の候補の予測された動きベクトルを、復号化されているＰＵと比較し、所望のレート歪コストを有する候補の予測された動きベクトルを選択することができる。ビデオ・エンコーダ２０は、ＰＵのための候補の予測された動きベクトル・インデックスを出力することができる。候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトル・リストにおいて選択された候補の予測された動きベクトルの位置を識別することができる。
【０１１９】
更に、ビデオ・エンコーダ２０は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成してもよい。ＰＵに関する動き情報は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルによって示される動き情報に基づいて決定されてもよい。例えば、マージ・モードにおいて、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。ＡＭＶＰモードでは、ＰＵの動き情報は、ＰＵの動きベクトル差分と、選択された候補の予測された動きベクトルによって示される動き情報とに基づいて、決定されてもよい。上述のように、ビデオ・エンコーダ２０は、ＰＵの予測ピクチャ・ブロックを処理することができる。
【０１２０】
ビデオ・デコーダ３０がビットストリームを受信する場合に、ビデオ・デコーダ３０は、ＣＵの各ＰＵに対して候補の予測された動きベクトルのリストを生成することができる。ＰＵに関するビデオ・デコーダ３０によって生成される候補の予測された動きベクトルのリストは、ＰＵに関するビデオ・エンコーダ２０によって生成される候補の予測された動きベクトルのリストと同じであってもよい。ビットストリームを解析することによって取得されるシンタックス要素は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示すことができる。ＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・デコーダ３０は、ＰＵの動き情報によって示される１つ以上の参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成してもよい。ビデオ・デコーダ３０は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルによって示される動き情報に基づいて、ＰＵの動き情報を決定することができる。ビデオ・デコーダ３０は、ＰＵの予測ピクチャ・ブロックとＣＵの残差ピクチャ・ブロックとに基づいて、ＣＵのピクチャ・ブロックを再構成することができる。
【０１２１】
実現可能な実装において、デコーダ上で、候補の予測された動きベクトルのリストの構築と、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を得るためのビットストリームの解析とは、互いに独立しており、任意の順序で又は並行して実行されてもよいことが理解されるべきである。
【０１２２】
別の実現可能な実装において、デコーダ上で、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置が、先ずビットストリームを解析することによって取得され、次いで、候補の予測された動きベクトルのリストが、解析によって得られた位置に基づいて構成される。この実装では、全ての候補の予測された動きベクトルのリストを構築することを必要とせずに、解析により得られた位置における候補の予測された動きベクトルのリストのみが、その位置での候補の予測された動きベクトルを決定するために構築されることを必要とする。例えば、ビットストリームを解析することによって、選択された候補の予測された動きベクトルは、候補の予測された動きベクトルのリストにおいてインデックスが３である候補の予測された動きベクトルであり、インデックスが３である候補の予測された動きベクトルを決定するために、インデックス０からインデックス３までの候補の予測された動きベクトルのリストのみを構成する必要があることが分かる。これは、複雑さを低減し、復号化効率を改善することができる。
【０１２３】
図２は、本願の実施形態によるビデオ・エンコーダ２０の概略ブロック図である。ビデオ・エンコーダ２０は、ビデオ・スライス内のビデオ・ブロックに関してイントラ復号化及びインター復号化を実行することができる。イントラ復号化は、所与のビデオ・フレーム又はピクチャ内のビデオの空間的な冗長性を低減又は除去するために、空間的予測を当てにする。インター復号化は、ビデオ・シーケンスの隣接するフレーム又はピクチャにおけるビデオの時間的な冗長性を低減又は除去するために、時間的な予測を当てにする。イントラ・モード（Ｉモード）は、幾つかの空間的な圧縮モードの任意の１つであってもよい。一方向予測モード（Ｐモード）又は双方向予測モード（Ｂモード）のようなインター・モードは、幾つかの時間的な圧縮モードの任意の１つであってもよい。
【０１２４】
図２の実現可能な実装において、ビデオ・エンコーダ２０は、パーティショニング・ユニット３５、予測ユニット４１、参照ピクチャ・ストレージ６４、加算器５０、変換ユニット５２、量子化ユニット５４、エントロピー符号化ユニット５６を含む。
【０１２５】
参照ピクチャ・ストレージ６４は、ＭＶＤを記憶するためのターゲット・ストレージ空間を提供するように、即ち、処理対象のＰＵに対する最終的な動きベクトルと初期の動きベクトルとの間の差分を記憶するように、更に構成されてもよい。幾つかの実施形態では、参照ピクチャ・ストレージ６４は、処理対象のＰＵの最終的な動きベクトルを更に記憶することができる。本願のこの実施形態では、参照ピクチャ・ストレージ６４に記憶されたＭＶＤは、別のＰＵの符号化プロセスで使用されてもよい。例えば、マージ（merge）モードにおける復号化処理では、更新されていない初期の動きベクトルと更新された最終的な動きベクトルとが、異なる時間に別々に記憶される。従って、処理対象のＰＵが、別のＰＵについて予測された動きベクトルを取得する必要がある場合、特定の条件下で、処理対象のＰＵは、別のＰＵの更新されていない初期の動きベクトルを、別のＰＵの動きベクトルとして、直接的に使用することが可能であり、別のＰＵの動きベクトルが更新された後に、別のブロックの動きベクトルを得る必要はない。
【０１２６】
ターゲット・ストレージ空間は、参照ピクチャ・ストレージ６４以外のメモリ、例えば、新しく追加されたメモリによって提供されてもよいことに留意されたい。これは、本願のこの実施態様で具体的には限定されない。
【０１２７】
関連技術において、ビデオ・エンコーダ２０がマージ・モードで動作する場合に、参照ピクチャ・ストレージ６４の中身が空であるか、又はゼロ・ベクトルであること、即ち、ビデオ・エンコーダ２０がマージ・モードで動作する場合に、ターゲット・ストレージ空間は符号化中に使用されず、符号化プロセスでは、処理対象のＰＵによって得られる他のＰＵの予測された動きベクトルは、他のＰＵの更新された最終的な動きベクトルであることに留意されたい。従って、処理対象のＰＵは、他のＰＵの予測された動きベクトルが更新された後に限り、他のＰＵに対する予測された動きベクトルを得ることが可能であり、その結果、符号化の間に符号化遅延が生じる。しかしながら、ビデオ・エンコーダ２０が非マージ・モードで動作する場合、参照ピクチャ・ストレージ６４が使用されてもよい。例えば、ＡＭＶＰモードでは、ターゲット・ストレージ空間は、動きベクトル残差を記憶するために使用され、ビデオ・エンコーダ２０は、動きベクトル残差を符号化し、その結果、現在のＰＵを復号化した後に、ビデオ・デコーダ３０は、処理対象のＰＵの動きベクトル残差を取得し、処理対象のＰＵの動きベクトル残差と、処理対象のＰＵの初期の動きベクトルとに基づいて、処理対象のＰＵの最終的な動きベクトルを取得することができる。
【０１２８】
予測ユニット４１は、動き推定ユニット４２、動き補償ユニット４４、イントラ予測ユニット４６を含む。ビデオ・ブロック再構成のために、ビデオ・エンコーダ２０は、逆量子化ユニット５８、逆変換ユニット６０、及び加算器６２を更に含む。ビデオ・エンコーダ２０は、ブロック境界上でフィルタリングを実行し、再構成されたビデオからブロッキング・アーチファクトを除去するために、デブロッキング・フィルタ（図２には示されていない）を更に含んでもよい。必要に応じて、デブロッキング・フィルタは、通常、加算器６２の出力に対してフィルタリングを実行する。デブロッキング・フィルタに加えて、追加のループ・フィルタ（ループの中又は後）が使用されてもよい。
【０１２９】
図２に示すように、ビデオ・エンコーダ２０は、ビデオ・データを受信し、パーティショニング・ユニット３５は、データをビデオ・ブロックに区分けする。このような区分けは、更に、スライス、ピクチャ・ブロック、又は他のより大きなユニットに区分けすることと、ＬＣＵ及びＣＵの四分木構造に基づくビデオ・ブロック・パーティショニングとを含んでもよい。例えば、ビデオ・エンコーダ２０は、符号化対象のビデオ・スライス内のビデオ・ブロックを符号化するための構成要素である。通常、１つのスライスは、複数のビデオ・ブロックに区分けされることが可能である（そして、ピクチャ・ブロックと呼ばれるビデオ・ブロックのセットに区分けされることが可能である）。
【０１３０】
予測ユニット４１は、符号化品質及びコスト計算結果（例えば、レート歪コスト（rate  distortion  cost，RDcost）、これはレート歪コストとも呼ばれる）に基づいて、現在のビデオ・ブロックに対して、複数の可能な復号化モード、例えば複数のイントラ復号化モードのうちの１つ又は複数のインター復号化モードのうちの１つを選択することができる。予測ユニット４１は、取得されたイントラ復号化ブロック又はインター復号化ブロックを加算器５０に提供して残差ブロック・データを生成し、得られたイントラ復号化ブロック又はインター復号化ブロックを加算器６２に提供して、符号化されたブロックを再構成し、再構成された符号化されたブロックを参照ピクチャとして使用することができる。
【０１３１】
予測ユニット４１における動き推定ユニット４２及び動き補償ユニット４４は、１つ以上の参照ピクチャの１つ以上の予測ブロックに対する現在のビデオ・ブロックに関してインター予測復号化を実行して、時間的な圧縮を行う。動き推定ユニット４２は、ビデオ・シーケンスのプリセット・モードに基づいて、ビデオ・スライスのインター予測モードを決定するように構成されてもよい。プリセット・モードでは、シーケンス内のビデオ・スライスは、Ｐスライス、Ｂスライス、ＧＰＢスライスとして指定されることが可能である。動き推定ユニット４２及び動き補償ユニット４４は、大いに統合されてもよいが、概念を説明するために別々に記述される。動き推定ユニット４２によって実行される動き推定は、ビデオ・ブロックを推定するための動きベクトルを生成するプロセスである。例えば、動きベクトルは、参照ピクチャの予測ブロックに対する、現在のビデオ・フレーム又はピクチャのビデオ・ブロックのＰＵの変位を示すことができる。
【０１３２】
予測ブロックは、ピクセル差分に基づいて、復号化対象のビデオ・ブロックに近接して合致していることが見出されたＰＵのブロックであり、ピクセル差分は、絶対差分（sum  of  absolute  difference，SAD）、二乗差分の合計（sum  of  squared  difference，  SSD）、又は他の差分メトリックを使用することにより決定されることが可能である。幾つかの実現可能な実装において、ビデオ・エンコーダ２０は、参照ピクチャ・ストレージ６４に記憶された参照ピクチャのサブ整数（sub−integer）ピクセル位置の値を計算することができる。例えば、ビデオ・エンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、又は別の分数ピクセル位置の値を補間することができる。従って、動き推定ユニット４２は、全てのピクセル位置及び分数ピクセル位置に関する動き探索を実行し、分数ピクセル精度で動きベクトルを出力することができる。
【０１３３】
動き推定ユニット４２は、ＰＵの位置と参照ピクチャの予測ブロックの位置とを比較することにより、インター復号化されるスライス内のビデオ・ブロックのＰＵに対する動きベクトルを算出する。参照ピクチャは、第１参照ピクチャ・リスト（リスト０）又は第２参照ピクチャ・リスト（リスト１）から選択されることが可能である。各リストは、参照ピクチャ・ストレージ６４に記憶された１つ以上の参照ピクチャを識別するために使用される。動き推定ユニット４２は、計算された動きベクトルを、エントロピー符号化ユニット５６及び動き補償ユニット４４へ送る。
【０１３４】
動き補償ユニット４４によって実行される動き補償は、動き推定によって決定される動きベクトルに基づく予測ブロックの抽出又は生成を含むことが可能であり、サブ・ピクセル・レベルの精度で補間を実行することが可能である。現在のビデオ・ブロックのＰＵに対する動きベクトルを受信した後に、動き補償ユニット４４は、動きベクトルが１つの参照ピクチャ・リスト内で指し示す予測ブロックを突き止めることができる。ビデオ・エンコーダ２０は、復号化されている現在のビデオ・ブロックのピクセル値から、予測ブロックのピクセル値を減算して残差ビデオ・ブロックを取得し、ピクセル差分を取得する。ピクセル差分は、ブロックの残差データを構成し、ルマ差分成分とクロマ差分成分の両方を含む可能性がある。加算器５０は、減算演算を実行する１つ以上の構成要素である。動き補償ユニット４４は、ビデオ・ブロック及びビデオ・スライスに関連するシンタックス要素を更に生成することが可能であり、その結果、ビデオ・デコーダ３０はビデオ・スライス内のビデオ・ブロックを復号化する。
【０１３５】
ＰＵがＢスライスに位置する場合、ＰＵを含むピクチャは、「ｌｉｓｔ  ０」及び「ｌｉｓｔ  １」と言及される２つの参照ピクチャ・リストに関連付けられることが可能である。幾つかの実現可能な実装において、Ｂスライスを含むピクチャは、リスト０及びリスト１のリストの組み合わせに関連付けられてもよい。
【０１３６】
また、ＰＵがＢスライスに位置する場合、動き推定ユニット４２は、ＰＵに対して一方向予測又は双方向予測を実行することが可能である。幾つかの実現可能な実装において、双方向予測は、参照ピクチャ・リスト０及び参照ピクチャ・リスト１におけるピクチャに基づいて、別々に実行される予測である。幾つかの他の実現可能な実装において、双方向予測は、表示順序で現在のフレームについての再構成される将来のフレームと再構成される過去のフレームとに基づいて別々に実行される予測である。また、動き推定ユニット４２が、ＰＵに対して一方向予測を実行する場合には、動き推定ユニット４２は、ＰＵに対する参照ブロックを探すために、リスト０又はリスト１内の参照ピクチャを探索することができる。そして、動き推定ユニット４２は、リスト０又はリスト１に参照ブロックを含む参照ピクチャを示す参照インデックスと、ＰＵ及び参照ブロックの間の空間的な変位を示す動きベクトルとを生成することができる。動き推定ユニット４２は、ＰＵの動き情報として、参照インデックス、予測方向識別子、及び動きベクトルを出力することができる。予測方向識別子は、参照インデックスがリスト０又はリスト１における参照ピクチャを示すことを示してもよい。動き補償ユニット４４は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１３７】
動き推定ユニット４２が、ＰＵに対して双方向予測を行う場合、動き推定ユニット４２は、ＰＵに対する参照ブロックに対してリスト０内の参照ピクチャを探索し、更に、ＰＵに対する他の参照ブロックに対してリスト１内の参照ピクチャを探索することができる。そして、動き推定ユニット４２は、リスト０及びリスト１の参照ブロックを含む参照ピクチャを示す参照インデックスと、参照ブロック及びＰＵの間の空間的な変位を示す動きベクトルとを生成することができる。また、動き推定ユニット４２は、ＰＵの参照インデックス及び動きベクトルを、ＰＵの動き情報として出力することができる。動き補償ユニット４４は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１３８】
幾つかの実現可能な実装において、動き推定ユニット４２は、ＰＵの動き情報の完全なセットを、エントロピー符号化モジュール５６に対して出力しない。その代わりに、動き推定ユニット４２は、別のＰＵの動き情報に関するＰＵの動き情報をシグナリングしてもよい。例えば、動き推定ユニット４２は、ＰＵの動き情報が、隣接するＰＵの動き情報と同様であることを決定することが可能である。この実装において、動き推定ユニット４２は、ＰＵに関連するシンタックス構造において、インジケータ値を示すことが可能であり、インジケータ値は、ＰＵの動き情報が、隣接するＰＵの動き情報と同じであること、又は隣接するＰＵの動き情報から導出されてもよいことを、ビデオ・デコーダ３０に示す。別の実装において、動き推定ユニット４２は、ＰＵに関連するシンタックス構造において、隣接するＰＵに関連する候補の予測された動きベクトルと動きベクトル差分（motion  vector  difference，MVD）とを識別することができる。ＭＶＤは、ＰＵの動きベクトルと、隣接するＰＵに関連する指示された候補の予測された動きベクトルとの間の差分を示す。ビデオ・デコーダ３０は、指示された候補の予測された動きベクトル及びＭＶＤを使用することによって、ＰＵの動きベクトルを決定することができる。
【０１３９】
上述したように、予測モジュール４１は、ＣＵの各ＰＵに対して候補の予測された動きベクトルのリストを生成することができる。１つ以上の候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含むことができる。
【０１４０】
本願のこの実施形態では、マージ・モードで候補の予測された動きベクトルのリストを設定する際に、予測モジュール４１は、候補の予測された動きベクトルのリストに、処理対象のＰＵの参照ＰＵの動きベクトルを記憶することができ、参照ＰＵの動きベクトルは、参照ＰＵの更新されていない初期の動きベクトルであってもよいし、又は参照ＰＵの更新された最終的な動きベクトルであってもよいことに留意すべきである。参照ＰＵのための更新された最終的な動きベクトルは、ターゲット・ストレージ空間に記憶された動きベクトルに基づいて取得されてもよい。ターゲット・ストレージ空間がＭＶＤを記憶する場合、参照ＰＵの最終的な動きベクトルは、参照ＰＵの初期の動きベクトルと、ターゲット・ストレージ空間に記憶されたＭＶＤとを加算することによって取得されることが可能である。ターゲット・ストレージ空間が、参照ＰＵのための最終的な動きベクトルを記憶する場合、参照ＰＵのための最終的な動きベクトルは、ターゲット・ストレージ空間から直接的に取得されることが可能である。参照ＰＵの動きベクトルは、以下の方法で、候補の予測された動きベクトルのリストに記憶されることが可能である：参照ＰＵと現在のＰＵが同一のＣＴＢ又はＣＴＢの行レンジにある場合には、参照ユニットの更新されていない初期の動きベクトルが、候補の予測された動きベクトルのリストに記憶されるか、又は参照ＰＵと現在のＰＵが同一のＣＴＢ又はＣＴＢの行レンジにある場合には、参照ユニットの更新された最終的な動きベクトルが、候補の予測された動きベクトルのリストに記憶される。
【０１４１】
予測ユニット４１のイントラ予測ユニット４６は、復号化対象の現在のブロックと同一のピクチャ又はスライス内にある１つ以上の隣接するブロックに対して、現在のビデオ・ブロックに対してイントラ予測復号化を実行し、空間圧縮を提供することができる。従って、動き推定ユニット４２と動き補償ユニット４４とによって実行される（上述したような）インター予測の代替案として、イントラ予測ユニット４６は、現在のブロックに対してイントラ予測を実行することができる。具体的には、イントラ予測ユニット４６は、現在のブロックを符号化するためのイントラ予測モードを決定することができる。幾つかの実現可能な実装において、イントラ予測ユニット４６は、（例えば）様々なイントラ予測モードを使用して、別々の符号化トラバーサルの間に現在のブロックを符号化し、イントラ予測ユニット４６（又は、幾つかの実現可能な実装におけるモード選択ユニット４０）は、テスト・モードから適切なイントラ予測モードを選択することができる。
【０１４２】
予測ユニット４１は、現在のビデオ・ブロックの予測ブロックを、インター予測又はイントラ予測により生成した後に、ビデオ・エンコーダ２０は、予測ブロックを現在のビデオ・ブロックから減算し、残差ビデオ・ブロックを取得する。残差ブロック内の残差ビデオ・データは、１つ以上のＴＵに含まれ、変換ユニット５２に印加されることが可能である。変換ユニット５２は、離散コサイン変換（discrete  cosine  transform，  DCT）又は概念的に類似した変換（例えば、離散正弦変換（discrete  sine  transform，  DST））のような変換を実行することによって、残差ビデオ・データを、残差変換係数に変換する。変換ユニット５２は、残差ビデオ・データを、ピクセル・ドメインから変換ドメイン（例えば、周波数ドメイン）へ変換することができる。
【０１４３】
変換ユニット５２は、取得された変換係数を量子化ユニット５４に送ることができる。量子化ユニット５４は、変換係数を量子化して、ビット・レートを更に低下させる。量子化プロセスは、係数の幾つか又は全てに関連するビット深度を低減することができる。量子化度は、量子化パラメータを調整することによって修正されることが可能である。幾つかの実現可能な実装において、量子化ユニット５４は、次いで、量子化された変換係数を含む行列をスキャンすることができる。あるいは、エントロピー符号化ユニット５６がスキャンを実行してもよい。
【０１４４】
量子化の後に、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化することができる。例えば、エントロピー符号化ユニット５６は、文脈適応型可変長コーディング（ＣＡＶＬＣ）、文脈適応型二進算術コーディング（ＣＡＢＡＣ）、確率間隔パーティショニング・エントロピー（ＰＩＰＥ）コーディング、又は他のエントロピー・コーディング方法又は技術を実行することができる。エントロピー符号化ユニット５６は、復号化されている現在のビデオ・スライスの動きベクトル及び別のシンタックス要素を更にエントロピー符号化することができる。エントロピー符号化ユニット５６によってエントロピー符号化された後に、符号化されたビットストリームは、ビデオ・デコーダ３０に送信されてもよいし、又はビデオ・デコーダ３０によるその後の送信又は検索のために記録されてもよい。
【０１４５】
エントロピー符号化ユニット５６は、本願の技術によれば、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオ・エンコーダ２０は、コンテキストの各々に対して使用される、複数のイントラ予測モード・インデックス・テーブル、及び複数の修正されたイントラ予測モード・インデックス・テーブル（コードワード・マッピング・テーブルとも言及される）を含むことが可能な送信されたビットストリーム構成データの中に、様々なブロックの符号化コンテキストの定義、最確モード（most  probable  mode，MPM）の指示、イントラ予測モード・インデックス・テーブル、及び修正されたイントラ予測モード・インデックス・テーブルを含むことができる。
【０１４６】
逆量子化ユニット５８及び逆変換ユニット６０はそれぞれ逆量子化及び逆変換を実行し、ピクセル・ドメイン内の残差ブロックを再構成し、これは、以後、参照ピクチャの参照ブロックとして使用される。動き補償ユニット４４は、１つの参照ピクチャ・リスト内の１つの参照ピクチャの残差ブロックと予測ブロックとを加算することによって、参照ブロックを計算することができる。また、動き補償ユニット４４は、再構成された残差ブロックに、１つ以上の補間フィルタを適用して、動き推定のためのサブ整数ピクセル値を計算してもよい。加算器６２は、再構成された残差ブロックと、動き補償ユニット４４によって生成された動き補償された予測ブロックとを加算して、参照ピクチャ・ストレージ６４に記憶される参照ブロックを生成する。参照ブロックは、後続のビデオ・フレーム又はピクチャにおけるブロックに関してインター予測を実行するための参照ブロックとして、動き推定ユニット４２及び動き補償ユニット４４によって使用されてもよい。
【０１４７】
図３は、本願の実施形態によるビデオ・デコーダ３０の概略ブロック図である。図３の実現可能な実装において、ビデオ・デコーダ３０は、エントロピー復号化ユニット８０、予測ユニット８１、逆量子化ユニット８６、逆変換ユニット８８、加算器９０、及び参照ピクチャ・ストレージ９２を含む。
【０１４８】
参照ピクチャ・ストレージ９２は、ターゲット・ストレージ空間を提供するように構成されることが可能である。ターゲット・ストレージ空間は、ＭＶＤを記憶するために使用され、即ち、最終的な動きベクトルと初期の動きベクトルとの間の差分を記憶するために使用される。幾つかの実施形態では、ターゲット・ストレージ空間は、最終的な動きベクトルを記憶するために使用される。本願のこの実施形態では、更新された最終的な動きベクトル、又はターゲット・ストレージ空間に記憶されたＭＶＤは、別のＰＵの符号化プロセスで使用されることが可能である。例えば、マージ・モードにおける復号化プロセスでは、更新されていない初期の動きベクトルと更新された最終的な動きベクトルとが、異なる時間に別々に記憶される。従って、処理対象のＰＵが、別のＰＵについて予測された動きベクトルを取得する必要がある場合、特定の条件下で、処理対象のＰＵは、別のＰＵの更新されていない初期の動きベクトルを、別のＰＵの動きベクトルとして、直接的に使用することが可能であり、別のＰＵの動きベクトルが更新された後に、別のブロックの動きベクトルを得る必要はない。
【０１４９】
ターゲット・ストレージ空間は、参照ピクチャ・ストレージ９２以外のメモリ、例えば、新しく追加されたメモリによって提供されてもよいことに留意すべきである。これは本願の実施形態で具体的には限定されない。
【０１５０】
関連技術において、ビデオ・デコーダ３０がマージ・モードで動作する場合に、ターゲット・ストレージ空間の中身が空であるか、又はゼロ・ベクトルであること、即ち、ビデオ・エンコーダ２０がマージ・モードで動作する場合に、ターゲット・ストレージ空間は、復号化の間に使用されず、復号化の間に、処理対象のＰＵによって得られる他のＰＵの予測された動きベクトルは、他のＰＵの更新された最終的な動きベクトルであることに留意すべきである。従って、処理対象のＰＵは、他のＰＵに対する予測された動きベクトルが更新された後に限り、他のＰＵに対する予測された動きベクトルを得ることが可能であり、その結果、復号化の間に復号化遅延が生じる。しかしながら、ビデオ・デコーダ３０が非マージ・モードで動作する場合、ターゲット・ストレージ空間が使用されてもよい。例えば、ＡＭＶＰモードでは、ビデオ・デコーダ３０は、復号化により、処理対象のＰＵのためのＭＶＤを取得することができ、その結果、ビデオ・デコーダ３０は、最終動きベクトルと処理対象のＰＵに対するＭＶＤとに基づいて、処理対象のＰＵに対する最終的な動きベクトルを取得することができる。
【０１５１】
予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。幾つかの実現可能な実装において、ビデオ・デコーダ３０は、図４のビデオ・エンコーダ２０に関して説明した符号化プロセスと逆の例示的な復号化プロセスを実行することができる。
【０１５２】
復号化の間に、ビデオ・デコーダ３０は、ビデオ・エンコーダ２０から、符号化されたビデオ・スライス及び関連するシンタックス要素のビデオ・ブロックを表すエンコードされたビデオ・ビットストリームを受信する。ビデオ・デコーダ３０のエントロピー復号化ユニット８０は、ビットストリームを復号化し、量子化された係数、動きベクトル、及び他のシンタックス要素を生成する。エントロピー復号化ユニット８０は、動きベクトル及び他のシンタックス要素を予測ユニット８１に転送する。ビデオ・デコーダ３０は、ビデオ・スライス・レベル及び／又はビデオ・ブロック・レベルでシンタックス要素を受信することができる。
【０１５３】
ビデオ・スライスが、イントラ復号化された（Ｉ）スライスに復号化された場合、予測ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと、現在のフレーム又はピクチャの以前に復号化されたブロックのデータとに基づいて、現在のビデオ・スライスのビデオ・ブロックの予測データを生成することができる。
【０１５４】
ビデオ・ピクチャが、インター復号化されたスライス（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）に復号化された場合、予測ユニット８１の動き補償ユニット８２は、エントロピー復号化ユニット８０から受信した動きベクトル及び他のシンタックス要素に基づいて、現在のビデオ・ピクチャのビデオ・ブロックの予測ブロックを生成する。予測ブロックは、１つの参照ピクチャ・リスト内の１つの参照ピクチャから生成されてもよい。ビデオ・デコーダ３０は、参照ピクチャ・ストレージ９２に記憶された参照ピクチャに基づいて、参照ピクチャ・リスト（リスト０及びリスト１）を構成するためにデフォルトの構成技術を使用することができる。
【０１５５】
動き補償ユニット８２は、動きベクトル及び他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックの予測情報を決定し、予測情報を用いて、復号化されているビデオ・ブロックの予測ブロックを生成する。例えば、動き補償ユニット８２は、受信したシンタックス要素の幾つかを用いて、ビデオ・スライスのビデオ・ブロックを復号化するための予測（例えば、イントラ予測又はインター予測）モード、インター予測スライス・タイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）スライスの１つ以上の参照ピクチャ・リストの構成情報、スライスの各々のインター符号化されたビデオ・ブロックの動きベクトル、スライスの各々のインター復号化されたビデオ・ブロックのインター予測ステータス、及び現在のビデオ・スライスにおけるビデオ・ブロックを復号化するための他の情報を決定する。
【０１５６】
動き補償ユニット８２は、更に、補間フィルタを用いて補間を実行してもよい。動き補償ユニット８２は、例えば、ビデオ・ブロックの符号化の間に、ビデオ・エンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算することができる。本願では、動き補償ユニット８２は、受信したシンタックス要素に基づいて、ビデオ・エンコーダ２０によって使用される補間フィルタを決定し、補間フィルタを用いて予測ブロックを生成することができる。
【０１５７】
ＰＵがインター予測によって符号化される場合、動き補償ユニット８２は、ＰＵに対する候補の予測された動きベクトルのリストを生成することができる。ビットストリームは、ＰＵのための候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を識別するためのデータを含んでもよい。ＰＵに対する候補の予測された動きベクトルを生成した後に、動き補償ユニット８２は、ＰＵに対する動き情報によって示される１つ以上の参照ブロックに基づいて、ＰＵに対する予測ピクチャ・ブロックを生成することができる。ＰＵの参照ブロックは、ＰＵの時間的なピクチャとは異なる時間的なピクチャの中に位置していてもよい。動き補償ユニット８２は、ＰＵに対する候補の予測された動きベクトルのリストにおいて選択された動き情報に基づいて、ＰＵの動き情報を決定することができる。
【０１５８】
本願の実施形態では、動き補償ユニット８２は、マージ・モードにおける候補の予測された動きベクトルのリストを設定する際に、処理対象のＰＵの参照ＰＵに対する予測された動きベクトルを、候補の予測された動きベクトルのリストに記憶してもよく、参照ＰＵの予測された動きベクトルは、参照ＰＵの更新されていない初期の動きベクトルであってもよく、或いは参照ＰＵの更新された予測された動きベクトルであってもよいことに留意すべきである。参照ＰＵの更新された最終的な動きベクトルは、ターゲット・ストレージ空間に記憶される参照ＰＵのための動きベクトルに基づいて取得されてもよい。例えば、ターゲット・ストレージ空間がＭＶＤを記憶する場合、参照ＰＵのための最終的な動きベクトルは、参照ＰＵのための初期の動きベクトルとターゲット・ストレージ空間に記憶されたＭＶＤとを加算することによって、取得されることが可能である。ターゲット・ストレージ空間が、参照ＰＵのための最終的な動きベクトルを記憶する場合に、参照ＰＵのための最終的な動きベクトルは、ターゲット・ストレージ空間から直接的に取得されることが可能である。参照ＰＵに対する予測された動きベクトルは、次のような方法で、候補の予測された動きベクトルのリストに記憶されてもよい：参照ＰＵと現在のＰＵとが同じＣＴＢ又はＣＴＢの行レンジにある場合に、参照ユニットに対する更新されていない初期の動きベクトルが、候補の予測された動きベクトルのリストに記憶される；又は参照ＰＵと現在のＰＵとが同じＣＴＢ又はＣＴＢの行レンジにある場合に、参照ユニットに対する更新された最終的な動きベクトルが、候補の予測された動きベクトルのリストに記憶される。
【０１５９】
逆量子化ユニット８６は、ビットストリームで提供され且つエントロピー復号化ユニット８０によって復号化される量子化変換係数に対して逆量子化（例えば、量子化解除）を実行する。逆量子化プロセスは、ビデオ・スライス内の各ビデオ・ブロックについてビデオ・エンコーダ２０によって計算された量子化パラメータに基づいて量子化度を決定し、適用されるべき逆量子化度を同様に決定することを含むことが可能である。逆変換ユニット８８は、変換係数に対して逆変換（例えば、逆ＤＣＴ、逆整数変換、又は概念的に類似する逆変換プロセス）を実行し、ピクセル・ドメインにおいて残差ブロックを生成する。
【０１６０】
動き補償ユニット８２が、動きベクトル及び他のシンタックス要素に基づいて、現在のビデオ・ブロックの予測ブロックを生成した後に、ビデオ・デコーダ３０は、逆変換ユニット８８からの残差ブロックと、動き補償ユニット８２によって生成された対応する予測ブロックとの加算演算を実行して、復号化されたビデオ・ブロックを形成する。加算器９０は、加算演算を実行する１つ以上の構成要素である。必要な場合には、ブロッキング・アーチファクトを除去するために、復号化されたブロックに関してフィルタリングを実行するために、デブロッキング・フィルタが使用されてもよい。別のループ・フィルタ（復号化ループの中又は後）が、ピクセルを平滑化するために使用されてもよいし、又は別の方法でビデオ品質が改善されてもよい。次いで、所与のフレーム又はピクチャ内の復号化されたビデオ・ブロックは、参照ピクチャ・ストレージ９２に記憶される。参照ピクチャ・ストレージ９２は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャ・ストレージ９２はまた、図１のディスプレイ装置３２のようなディスプレイ装置で以後に提示される復号化されたビデオを記憶する。
【０１６１】
上述したように、本願の技術は、例えばインター復号化に関連する。本願の技術は、本願で説明される任意のビデオ・デコーダによって実行されてもよく、ビデオ・デコーダは、図１ないし図３に示され説明される（例えば）ビデオ・エンコーダ２０及びビデオ・デコーダ３０を含むことは理解されるべきである。具体的には、実現可能な実装において、図２で説明された予測ユニット４１は、ビデオ・データのブロックの符号化中にインター予測が実行される場合に、以下で説明される特定の技術を実行することができる。別の実現可能な実装において、図３で説明された予測ユニット８１は、ビデオ・データのブロックの復号化中にインター予測が実行される場合に、以下で説明される特定の技術を実行することができる。従って、一般的な「ビデオ・エンコーダ」又は「ビデオ・デコーダ」に対する参照は、ビデオ・エンコーダ２０、ビデオ・デコーダ３０、又は別のビデオ符号化若しくは符号化ユニットを含んでもよい。
【０１６２】
図４は、本願の実施形態によるインター予測モジュールの概略ブロック図である。インター予測モジュール１２１は、例えば、動き推定ユニット４２及び動き補償ユニット４４を含むことができる。ＰＵとＣＵの間の関係は、ビデオ圧縮コーディング規格によって異なる。インター予測モジュール１２１は、複数のパーティショニング・パターンに従って、現在のＣＵをＰＵに区分けすることができる。例えば、インター予測モジュール１２１は、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎのパーティショニング・パターンに従って、現在のＣＵをＰＵに区分けすることができる。別の実施形態では、現在のＣＵは現在のＰＵである。これに限定されない。
【０１６３】
インター予測モジュール１２１は、各ＰＵに関して整数動き推定（integer  motion  estimation，IME）、次いで分数動き推定（fraction  motion  estimation，FME）を行うことができる。インター予測モジュール１２１がＰＵに対してＩＭＥを実行する場合、インター予測モジュール１２１は、ＰＵに対する参照ブロックについて１つ以上の参照ピクチャを探索することができる。ＰＵに対する参照ブロックを発見した後に、インター予測モジュール１２１は、ＰＵとＰＵに対する参照ブロックとの間の空間的変位を示す動きベクトルを、整数の精度で生成することができる。インター予測モジュール１２１がＰＵに対してＦＭＥを実行する場合、インター予測モジュール１２１は、ＰＵに対してＩＭＥを実行することによって生成される動きベクトルを改善することができる。ＰＵに関してＦＭＥを実行することによって生成される動きベクトルは、サブ整数精度（例えば、１／２ピクセル精度又は１／４ピクセル精度）を有する可能性がある。ＰＵの動きベクトルを生成した後に、インター予測モジュール１２１は、ＰＵの動きベクトルを使用することによって、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１６４】
インター予測モジュール１２１がＰＵの動き情報をＡＭＶＰモードにおいてデコーダにシグナリングする幾つかの実現可能な実装において、インター予測モジュール１２１は、ＰＵのための候補の予測された動きベクトルのリストを生成することができる。候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含んでもよい。ＰＵのための候補の予測された動きベクトルのリストを生成した後に、インター予測モジュール１２１は、候補の予測された動きベクトルのリストから、候補の予測された動きベクトルを選択し、ＰＵのための動きベクトル差分（ＭＶＤ）を生成することができる。ＰＵに対するＭＶＤは、選択された候補の予測された動きベクトルによって示される動きベクトルと、ＩＭＥ及びＦＭＥによりＰＵに対して生成された動きベクトルとの間の差分を示すことができる。これらの実現可能な実装において、インター予測モジュール１２１は、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を識別する、候補の予測された動きベクトルのインデックスを出力することができる。インター予測モジュール１２１は、ＰＵのＭＶＤを更に出力することができる。以下、本願の実施形態における図１１においてアドバンスト動きベクトル予測（ＡＭＶＰ）モードの実現可能な実装を詳細に説明する。
【０１６５】
ＰＵの動き情報を生成するために、ＰＵに対してＩＭＥ及びＦＭＥを実行することに加えて、インター予測モジュール１２１は、更に、ＰＵに対してマージ演算を実行してもよい。インター予測モジュール１２１がＰＵに対してマージ演算を実行する場合に、インター予測モジュール１２１は、ＰＵのための候補の予測された動きベクトルのリストを生成することができる。ＰＵのための候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含んでもよい。候補の予測された動きベクトルのリスト内の１つ以上のオリジナル候補の予測された動きベクトルは、１つ以上の空間候補の予測された動きベクトルと時間候補の予測された動きベクトルとを含むことができる。空間候補の予測された動きベクトルは、現在のピクチャ内の別のＰＵに対する動き情報を示すことができる。時間候補の予測された動きベクトルは、現在のピクチャとは異なるピクチャ内の対応するＰＵの動き情報に基づいてもよい。時間候補の予測された動きベクトルは、時間的動きベクトル予測子（time  motion  vector  prediction，TMVP）と言及される場合もある。
【０１６６】
候補の予測された動きベクトルのリストを生成した後に、インター予測モジュール１２１は、候補の予測された動きベクトルのリストから、１つの候補の予測された動きベクトルを選択することができる。次に、インター予測モジュール１２１は、ＰＵの動き情報によって示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。マージ・モードでは、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。図１０は、マージ・モードの例のフローチャートである。
【０１６７】
ＩＭＥ及びＦＭＥによりＰＵの予測ピクチャ・ブロックを生成し、マージ演算によりＰＵの予測ピクチャ・ブロックを生成した後に、インター予測モジュール１２１は、ＦＭＥ演算を実行することによって生成された予測ピクチャ・ブロック、又はマージ演算を実行することによって生成された予測ピクチャ・ブロックを選択することができる。幾つかの実現可能な実装において、インター予測モジュール１２１は、ＦＭＥ演算を実行することによって生成された予測ピクチャ・ブロックと、マージ演算を実行することによって生成された予測ピクチャ・ブロックとのレート歪コストを分析することによって、ＰＵの予測ピクチャ・ブロックを選択することができる。
【０１６８】
インター予測モジュール１２１が、各パーティショニング・パターンに従って現在のＣＵを区分けすることによって生成されたＰＵの予測ピクチャ・ブロックを選択した後に（幾つかの実装では、コーディング・ツリー・ユニットＣＴＵがＣＵに区分けされた後であり、ＣＵはより小さなＰＵに更には区分けされず、この場合、ＰＵはＣＵと同等である）、インター予測モジュール１２１は、現在のＣＵに対するパーティショニング・パターンを選択することができる。幾つかの実装において、インター予測モジュール１２１は、各パーティショニング・パターンに従って現在のＣＵを区分けすることによって生成されたＰＵの選択された予測ピクチャ・ブロックのレート歪コストを分析することによって、現在のＣＵのためのパーティショニング・パターンを選択することができる。インター予測モジュール１２１は、選択されたパーティショニング・パターンに属するＰＵに関連付けられた予測ピクチャ・ブロックを、残差生成モジュール１０２に出力することができる。インター予測モジュール１２１は、選択されたパーティショニング・パターンに属するＰＵの動き情報のシンタックス要素を、エントロピー符号化モジュール１１６に出力することができる。
【０１６９】
図４に示す概略図では、インター予測モジュール１２１は、ＩＭＥモジュール１８０Ａないし１８０Ｎ（「ＩＭＥモジュール１８０」と総称する）、ＦＭＥモジュール１８２Ａないし１８２Ｎ（「ＦＭＥモジュール１８２」と総称する）、モジュール１８４Ａないし１８４Ｎ（「マージ・モジュール１８４」と総称する）、ＰＵパターン意思決定モジュール１８６Ａないし１８６Ｎ（「ＰＵパターン意思決定モジュール１８６」と総称する）、及びＣＵパターン意思決定モジュール１８８（ＣＴＵ対ＣＵパターン意思決定プロセスを更に実行してもよい）を含む。
【０１７０】
ＩＭＥモジュール１８０、ＦＭＥモジュール１８２、及びマージ・モジュール１８４はそれぞれＩＭＥ演算、ＦＭＥ演算、及び現在のＣＵのＰＵに関するマージ演算を実行することができる。図４に示す概略図では、インター予測モジュール１２１は、ＣＵの各パーティショニング・パターンにおける各ＰＵについて、別個のＩＭＥモジュール１８０、別個のＦＭＥモジュール１８２、及び別個のマージ・モジュール１８４を含むものとして説明される。別の実現可能な実装では、インター予測モジュール１２１は、ＣＵの各パーティショニング・パターンにおける各ＰＵについて、個別のＩＭＥモジュール１８０も、個別のＦＭＥモジュール１８２も、個別のマージ・モジュール１８４も含まない。
【０１７１】
図４の概略図に示すように、ＩＭＥモジュール１８０Ａ、ＦＭＥモジュール１８２Ａ、及びマージ・モジュール１８４Ａはそれぞれ、２Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成されたＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ａは、ＩＭＥモジュール１８０Ａ、ＦＭＥモジュール１８２Ａ、及びマージ・モジュール１８４Ａによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７２】
ＩＭＥモジュール１８０Ｂ、ＦＭＥモジュール１８２Ｂ、及びマージ・モジュール１８４Ｂはそれぞれ、Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された左ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｂは、ＩＭＥモジュール１８０Ｂ、ＦＭＥモジュール１８２Ｂ、及びマージ・モジュール１８４Ｂによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７３】
ＩＭＥモジュール１８０Ｃ、ＦＭＥモジュール１８２Ｃ、及びマージ・モジュール１８４Ｃはそれぞれ、Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された右ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｃは、ＩＭＥモジュール１８０Ｃ、ＦＭＥモジュール１８２Ｃ、及びマージ・モジュール１８４Ｃによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７４】
ＩＭＥモジュール１８０Ｎ、ＦＭＥモジュール１８２Ｎ、及びマージ・モジュール１８４はそれぞれ、Ｎ×Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された右下ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｎは、ＩＭＥモジュール１８０Ｎ、ＦＭＥモジュール１８２Ｎ、及びマージ・モジュール１８４Ｎによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７５】
ＰＵパターン意思決定モジュール１８６は、複数の可能な予測ピクチャ・ブロックのレート歪コストを分析することによって予測ピクチャ・ブロックを選択し、所与の復号化シナリオにおいて最適なレート歪コストを提供する予測ピクチャ・ブロックを選択することができる。例えば、限られた帯域幅を有するアプリケーションに対しては、ＰＵモード意思決定モジュール１８６は、圧縮比が増やされた予測ピクチャ・ブロックを好む可能性があり、他のアプリケーションに対しては、ＰＵモード意思決定モジュール１８６は、再構成されたビデオの品質が改善される予測ピクチャ・ブロックを好む可能性がある。ＰＵパターン意思決定モジュール１８６が現在のＣＵのＰＵに対する予測ピクチャ・ブロックを選択した後に、ＣＵパターン意思決定モジュール１８８は、現在のＣＵに対するパーティショニング・パターンを選択し、選択されたパーティショニング・パターンに属するＰＵに対する予測ピクチャ・ブロック及び動き情報を出力する。
【０１７６】
図５は、本願の実施形態によるコーディング・ユニットとコーディング・ユニットに関連付けられた隣接するピクチャ・ブロックとの一例の概略図であり、ＣＵ２５０とＣＵ２５０に関連付けられた例示的な候補の予測された動きベクトル位置２５２Ａないし２５２Ｅを示す概略図である。本願では、候補の予測された動きベクトル位置２５２Ａないし２５２Ｅは、まとめて候補の予測された動きベクトル位置２５２と言及される場合がある。候補の予測された動きベクトル位置２５２は、ＣＵ２５０と同じピクチャ内にある空間候補の予測された動きベクトルを表す。候補の予測された動きベクトル位置２５２ＡはＣＵ２５０の左にある。候補の予測された動きベクトル位置２５２ＢはＣＵ２５０の上にある。候補の予測された動きベクトル位置２５２ＣはＣＵ２５０の右上にある。候補の予測された動きベクトル位置２５２ＤはＣＵ２５０の左下にある。候補の予測された動きベクトル位置２５２ＥはＣＵ２５０の左上にある。図８は、インター予測モジュール１２１及び動き補償モジュール１６２が、候補の予測された動きベクトルのリストを生成することができる方法の実装例を示す。以下、インター予測モジュール１２１に関連して実装が説明される。しかしながら、動き補償モジュール１６２が、同じ技術を実装し、従って同じ候補の予測された動きベクトルのリストを生成してもよいことが理解されるべきである。本願のこの実施形態では、候補の予測された動きベクトル位置が位置するピクチャ・ブロックは、参照ブロックと呼ばれる。更に、参照ブロックは、空間参照ブロック、例えば２５２Ａないし２５２Ｅが位置するピクチャ・ブロックを含み、時間参照ブロック、例えば同一位置にある（co−located）ブロックが位置するピクチャ・ブロック、又は同一位置にあるブロックの空間的に隣接するピクチャ・ブロックを含む。
【０１７７】
図６は、本願の実施形態による、候補の予測された動きベクトルのリストを構成するための例示的なフローチャートである。図６の技術は、５つの候補の予測された動きベクトルを含むリストに基づいて説明されるが、本願で説明される技術は、代替的に、別のサイズのリストと共に使用されてもよい。５つの候補の予測された動きベクトルはそれぞれインデックス（例えば、０ないし４）を有することができる。図６の技術は一般的なビデオ・デコーダに基づいて説明される。一般的なビデオ・デコーダは、例えば、ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）又はビデオ・デコーダ（例えば、ビデオ・デコーダ３０）であってもよい。
【０１７８】
図６の実装に従って、候補の予測された動きベクトルのリストを再構成するために、ビデオ・デコーダは、先ず４つの空間候補を考察し（６０２）、各々の空間候補は、１つの予測された動きベクトルに対応し、４つの空間候補の予測された動きベクトルは、候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、２５２Ｃ、２５２Ｄを含む可能性がある。４つの空間候補の予測された動きベクトルは、現在のＣＵ（例えば、ＣＵ２５０）と同じピクチャ内にある４つのＰＵの動き情報に対応する。言い換えると、４つの空間候補の予測された動きベクトルは、４つのＰＵの予測された動きベクトルである。本願のこの実施形態では、４つの空間候補の予測された動きベクトルを取得する場合に、ビデオ・デコーダは先ず４つのＰＵを決定する必要がある。例えば、ビデオ・デコーダが４つのＰＵのうちの１つを決定するプロセスは、次のようなプロセスであってもよい：ＰＵと現在のＣＵが同一のＣＴＢ又はＣＴＢの行レンジにある場合には、ＰＵの更新されていない初期の動きベクトルが、ＰＵに対応する空間候補の予測された動きベクトルとして使用されるか、又は、ＰＵと現在のＣＵが同一のＣＴＢ又はＣＴＢの行レンジにない場合には、ＰＵの更新された最終的な動きベクトルが、ＰＵに対応する空間候補の予測された動きベクトルとして使用される。ＰＵのための更新された最終的な動きベクトルは、ＰＵが記憶されているターゲット・ストレージ空間から取得されることができる。この場合、ターゲット・ストレージ空間は、更新された最終的な動きベクトルを記憶する。幾つかの実施形態では、ターゲット・ストレージ空間はＭＶＤを記憶する。この場合、ＰＵのための更新された最終的な動きベクトルは、代替的に、ターゲット・ストレージ空間に記憶されたＭＶＤ及びＰＵのための更新されていない初期の動きベクトルに基づいて取得されてもよい。
【０１７９】
ビデオ・デコーダは、リスト内の４つの空間候補の予測された動きベクトルを、指定された順序で考慮することができる。例えば、候補の予測された動きベクトル位置２５２Ａが最初に考慮されてもよい。候補の予測された動きベクトル位置２５２Ａが利用可能である場合、候補の予測された動きベクトル位置２５２Ａはインデックス０に割り当てられてもよい。候補の予測された動きベクトル位置２５２Ａが利用不可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ａを、候補の予測された動きベクトルのリストに追加しない可能性がある。候補の予測された動きベクトル位置は、様々な理由で利用不可能であるかもしれない。例えば、候補の予測された動きベクトル位置が現在のピクチャに無い場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。別の実現可能な実装において、候補の予測された動きベクトル位置がイントラ予測を経る場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。別の実現可能な実装において、候補の予測された動きベクトル位置が、現在のＣＵに対応するスライスとは異なるスライスにある場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。
【０１８０】
候補の予測された動きベクトル位置２５２Ａを考慮した後、ビデオ・デコーダは候補の予測された動きベクトル位置２５２Ｂを考慮してもよい。候補の予測された動きベクトル位置２５２Ｂが利用可能であり、候補の予測された動きベクトル位置２５２Ａとは異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂを、候補の予測された動きベクトルのリストに追加してもよい。この特定の文脈では、用語「同一」又は「異なる」は、候補の予測された動きベクトル位置が同一又は異なる動き情報に関連付けられることを意味する。従って、２つの候補の予測された動きベクトル位置が同じ動き情報を有する場合、２つの候補の予測された動きベクトル位置は同じであると考えられ、又は２つの候補の予測された動きベクトル位置が異なる動き情報を有する場合、２つの候補の予測された動きベクトル位置は異なると考えられる。候補の予測された動きベクトル位置２５２Ａが利用不可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂを、インデックス０に割り当てる可能性がある。候補の予測された動きベクトル位置２５２Ａが利用可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２を、インデックス１に割り当てる可能性がある。候補の予測された動きベクトル位置２５２Ｂが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａと同じである場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂをスキップし、候補の予測された動きベクトル位置２５２Ｂを、候補の予測された動きベクトルのリストに追加しない。
【０１８１】
同様に、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを考慮して、候補の予測された動きベクトル位置２５２Ｃをリストに追加するかどうかを決定する。候補の予測された動きベクトル位置２５２Ｃが利用可能であり、候補の予測された動きベクトル位置２５２Ｂ及び２５２Ａと異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを、次の利用可能なインデックスに割り当てることができる。候補の予測された動きベクトル位置２５２Ｃが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａ及び２５２Ｂの少なくとも１つと同一である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを、候補の予測された動きベクトルのリストに追加しない。次に、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを考慮する。候補の予測された動きベクトル位置２５２Ｄが利用可能であり、候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、及び２５２Ｃと異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを、次の利用可能なインデックスに割り当てることができる。候補の予測された動きベクトル位置２５２Ｄが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、及び２５２Ｃの少なくとも１つと同一である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを、候補の予測された動きベクトルのリストに追加しない。前述の実装では、候補の予測された動きベクトル２５２Ａないし２５２Ｄを考慮して、候補の予測された動きベクトル２５２Ａないし２５２Ｄが、候補の予測された動きベクトルのリストに追加されるか否かを決定する例が、概略的に説明されている。しかしながら、幾つかの実装において、候補の予測された動きベクトル２５２Ａないし２５２Ｄの全てが、先ず候補の予測された動きベクトルのリストに追加されてもよく、次いで、反復的な候補の予測された動きベクトル位置が、候補の予測された動きベクトルのリストから除去される。
【０１８２】
ビデオ・デコーダが最初の４つの空間候補の予測された動きベクトルを考慮した後、候補の予測された動きベクトルのリストは、４つの空間候補の予測された動きベクトルを含む可能性があり、或いは４つより少ない空間候補の予測された動きベクトルを含む可能性がある。リストが４つの空間候補の予測された動きベクトルを含む場合（６０４でyes）、即ち、４つの空間候補を含む場合、ビデオ・デコーダは時間候補を考慮し（６０６）、各々の時間候補は１つの候補の予測された動きベクトルに対応する。時間候補の予測された動きベクトルは、現在のピクチャとは異なるピクチャの同一位置にあるＰＵの動き情報に対応する可能性がある。時間候補の予測された動きベクトルが利用可能であり、最初の４つの空間候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、インデックス４に割り当てる。時間候補の予測された動きベクトルが利用不可能であるか、又は最初の４つの空間候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない。従って、ビデオ・デコーダが時間候補の予測された動きベクトルを考慮した後（６０６）、候補の予測された動きベクトルのリストは、５つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル、及び６０４で考慮された時間候補の予測された動きベクトル）を含む可能性があり、或いは４つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル）を含む可能性がある。候補の予測された動きベクトルのリストが、５つの候補の予測された動きベクトルを含む場合（６０８においてyes）、即ち５つの候補を含む場合、ビデオ・デコーダはリストの構築を完了する。
【０１８３】
候補の予測された動きベクトルのリストが、４つの候補の予測された動きベクトルを含む場合（６０８においてNo）、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを考慮することができる（６１０）。第５の空間候補の予測された動きベクトルは、（例えば）候補の予測された動きベクトル位置２５２Ｅに対応してもよい。位置２５２Ｅに対応する候補の予測された動きベクトルが利用可能であり、位置２５２Ａ、２５２Ｂ、２５２Ｃ、及び２５２Ｄに対応する候補の予測された動きベクトルとは異なる場合、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、第５の空間候補の予測された動きベクトルを、インデックス４に割り当てることができる。位置２５２Ｅに対応する候補の予測された動きベクトルが利用不可能である場合、又は候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、２５２Ｃ、及び２５２Ｄに対応する候補の予測された動きベクトルと同一である場合、ビデオ・デコーダは、位置２５２に対応する候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。従って、第５の空間候補の予測された動きベクトルが考慮された後（６１０）、リストは、５つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル、及び６１０で考慮された第５の空間候補の予測された動きベクトル）を含む可能性があり、或いは４つの候補の予測された動きベクトル（６０２で検討された最初の４つの空間候補の予測された動きベクトル）を含む可能性がある。
【０１８４】
候補の予測された動きベクトルのリストが５つの候補を含む場合（６１２においてyes）、即ち、５つの候補の予測された動きベクトルを含む場合、ビデオ・デコーダは候補の予測された動きベクトルのリストの生成を完了する。候補の予測された動きベクトルのリストが４つの候補の予測された動きベクトルを含む場合（６１２においてNo）、ビデオ・デコーダは、リストが５つの候補を含むまで（６１６でyes）、即ち５つの候補の予測された動きベクトルを含むまで、マニュアルで生成された候補の予測された動きベクトルを追加する（６１４）。
【０１８５】
ビデオ・デコーダが最初の４つの空間候補の予測された動きベクトルを考慮した後に、リストが４つより少ない空間候補の予測された動きベクトルを含む場合（６０４においてNo）、ビデオ・デコーダは、第５の空間候補を考慮し（６１８）、即ち、第５の空間候補の予測された動きベクトルを考慮することができる。第５の空間候補の予測された動きベクトルは、（例えば）候補の予測された動きベクトル位置２５２Ｅに対応してもよい。位置２５２Ｅに対応する候補の予測された動きベクトルが利用可能であり、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、第５の空間候補の予測された動きベクトルを、次の利用可能なインデックスに割り当てることができる。位置２５２Ｅに対応する候補の予測された動きベクトルが利用不可能であるか、又は候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、位置２５２Ｅに対応する候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。次いで、ビデオ・デコーダは、時間的な候補、即ち、時間的な予測された動きベクトルを考慮することができる（６２０）。時間候補の予測された動きベクトルが利用可能であり、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、時間候補の予測された動きベクトルを、次の利用可能インデックスに割り当てることができる。時間候補の予測された動きベクトルが利用不可能であるか、又は候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。
【０１８６】
第５の空間候補の予測された動きベクトル（６１８）と時間候補の予測された動きベクトル（６２０）とが考慮された後に、候補の予測された動きベクトルのリストが、第５の空間候補の予測された動きベクトルを含む場合（６２２でyes）、ビデオ・デコーダは候補の予測された動きベクトルのリストの生成を完了する。候補の予測された動きベクトルのリストが、５つより少ない候補の予測された動きベクトルを含む場合（６２２においてNo）、ビデオ・デコーダは、リストが５つの候補の予測された動きベクトルを含むまで（６１６においてYes）、マニュアルで生成された候補の予測された動きベクトルを追加する（６１４）。
【０１８７】
本願の技術によれば、追加のマージ候補の予測された動きベクトルは、空間候補の予測された動きベクトル及び時間候補の予測された動きベクトルの後に、マニュアルで生成されることが可能であり、その結果、マージ候補の予測された動きベクトルのリストのサイズは、常に、指定された量のマージ候補の予測された動きベクトル（例えば、上述した図６の実現可能な実装における５つの候補の予測された動きベクトル）に等しくなる。追加的なマージ候補の予測された動きベクトルは、例えば、組み合わされた双方向予測マージ候補の予測された動きベクトル（候補の予測された動きベクトル１）、スケーリングされた双方向予測マージ候補の予測された動きベクトル（候補の予測された動きベクトル２）、及びゼロ・ベクトル・マージ候補の予測された動きベクトル（候補の予測された動きベクトル３）を含む可能性がある。追加のマージ候補の予測された動きベクトルの前述の３つのケースの具体的な説明については、図７ないし図９を参照されたい。
【０１８８】
図７は、本願の実施形態による、マージ・モード候補の予測された動きベクトルのリストに、結合された候補の動きベクトルを追加する例の概略図である。結合された双予測マージ候補の予測された動きベクトルは、オリジナルのマージ候補の予測された動きベクトルを結合することによって生成されることが可能である。具体的には、２つのオリジナル候補の予測された動きベクトル（ｍｖＬ０及びｒｅｆＩｄｘＬ０、又はｍｖＬ１及びｒｅｆＩｄｘＬ１を有する）を使用して、双予測マージ候補の予測された動きベクトルを生成することができる。図７では、２つの候補の予測された動きベクトルが、オリジナルのマージ候補の予測された動きベクトルのリストに含まれる。一方の候補の予測された動きベクトルの予測タイプはリスト０を使用することによる一方向予測であり、他方の候補の予測された動きベクトルの予測タイプはリスト１を使用することによる一方向予測である。この実現可能な実装では、ｍｖＬ０＿Ａ及びｒｅｆ０はリスト０から得られ、ｍｖＬ１＿Ｂ及びｒｅｆ０はリスト１から得られる。次いで、双予測マージ候補の予測された動きベクトル（リスト０におけるｍｖＬ０＿Ａ及びｒｅｆ０を、リスト１におけるｍｖＬ１＿Ｂ及びｒｅｆ０を有する）が生成されることが可能であり、双予測マージ候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なるかどうかが、検査される。双予測マージ候補の予測された動きベクトルが既存の候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、双予測マージ候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加することができる。
【０１８９】
図８は、本願の実施形態による、スケーリングされた候補の動きベクトルを、マージ・モード候補の予測された動きベクトルのリストに追加する例の概略図である。スケーリングされた双予測マージ候補の予測された動きベクトルは、オリジナルのマージ候補の予測された動きベクトルをスケーリングすることによって生成されてもよい。具体的には、１つのオリジナル候補の予測された動きベクトル（ｍｖＬＸ及びｒｅｆＩｄｘＬＸを有する）を使用して、双予測マージ候補の予測された動きベクトルを生成することができる。図８の実現可能な実装では、２つの候補の予測された動きベクトルが、オリジナルのマージ候補の予測された動きベクトルのリストに含まれる。一方の候補の予測された動きベクトルの予測タイプはリスト０を使用することによる一方向予測であり、他方の候補の予測された動きベクトルの予測タイプはリスト１を使用することによる一方向予測である。この実現可能な実装では、ｍｖＬ０＿Ａ及びｒｅｆ０はリスト０から得られ、ｒｅｆ０はリスト１にコピーされ、参照インデックスｒｅｆ０’として示される。次いで、ｍｖＬ０’＿Ａは、ｒｅｆ０及びｒｅｆ０’でｍｖＬ０＿Ａをスケーリングすることによって計算されることが可能である。スケーリングは、ＰＯＣ（Picture  Order  Count，POC）距離に依存する可能性がある。次に、双予測マージ候補の予測された動きベクトル（リスト０におけるｍｖＬ０＿Ａ及びｒｅｆ０、リスト１におけるｍｖＬ０’＿Ａ及びｒｅｆ０’を有する）を生成することが可能であり、双予測マージ候補の予測された動きベクトルが反復されているか否かが検査される。双予測マージ候補の予測された動きベクトルが反復されていない場合、双予測マージ候補の予測された動きベクトルが、マージ候補の予測された動きベクトルのリストに追加されることが可能である。
【０１９０】
図９は、本願の実施形態による、マージ・モード候補の予測された動きベクトルのリストに、ゼロ動きベクトルを追加する例の概略図である。ゼロ・ベクトル・マージ候補の予測された動きベクトルは、ゼロ・ベクトル及び参照されることが可能な参照インデックスを組み合わせることによって生成されることが可能である。ゼロ・ベクトル候補の予測された動きベクトルが反復されない場合、ゼロ・ベクトル候補の予測された動きベクトルは、マージ候補の予測された動きベクトルのリストに追加されることが可能である。各々の生成されたマージ候補の予測された動きベクトルの動き情報は、リスト内の以前の候補の予測された動きベクトルの動き情報と比較されることが可能である。
【０１９１】
実現可能な実装において、新しく生成された候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、生成された候補の予測された動きベクトルは、マージ候補の予測された動きベクトルのリストに追加される。候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なるかどうかを決定するプロセスは、しばしば、プルーニング（pruning）と呼ばれる。プルーニングにより、各々新しく生成された候補の予測された動きベクトルは、リスト内の既存候補の予測された動きベクトルと比較されることが可能である。幾つかの実現可能な実装において、プルーニング処理は、１つ以上の新しい候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと比較し、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと同一である新しい候補の予測された動きベクトルを追加することをスキップすることを含むことが可能である。幾つかの他の実現可能な実装において、プルーニング処理は、１つ以上の新しい候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、次いで、反復した候補の予測された動きベクトルをリストから除外することを含む可能性がある。
【０１９２】
本願の実現可能な実装において、インター予測の間に、処理対象ピクチャ・ブロックの動き情報を予測する方法は：処理対象のピクチャ・ブロックが位置するピクチャにおいて動きベクトルが決定される少なくとも１つのピクチャ・ブロックの動き情報を取得するステップであって、動きベクトルが決定される少なくとも１つのピクチャ・ブロックは、処理対象のピクチャ・ブロックに隣接しないピクチャ・ブロックであって、その動きベクトルが決定されているピクチャ・ブロックを含む、ステップと、第１識別情報を取得するステップであって、第１識別情報は、動きベクトルが決定される少なくとも１つのピクチャ・ブロックの動き情報においてターゲット動き情報を決定するために使用される、ステップと、ターゲット動き情報に基づいて、処理対象ピクチャ・ブロックの動き情報を予測するステップとを含む。
【０１９３】
図１０は、本願の実施形態によるマージ・モードの一例のフローチャートである。ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）は、マージ演算２００を実行することができる。別の実現可能な実装において、ビデオ・エンコーダは、マージ演算２００とは異なるマージ演算を実行する可能性がある。例えば、別の実現可能な実装において、ビデオ・エンコーダはマージ演算を実行することが可能であり、ビデオ・エンコーダは、マージ演算２００のステップより多い又は少ないステップ、或いはマージ演算２００のステップとは異なるステップを実行する。別の実現可能な実装において、ビデオ・エンコーダは、マージ演算２００のステップを異なる順序で、又は並列で実行することができる。エンコーダは、更に、スキップ（skip）モードで符号化されたＰＵに対してマージ演算２００を実行してもよい。
【０１９４】
ビデオ・エンコーダがマージ演算２００を開始した後、ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２０２）。ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・エンコーダは、図７から図９に関連して以下で説明される技術例の１つに従って、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。
【０１９５】
上記のように、現在のＰＵの候補の予測された動きベクトルのリストは、時間候補の予測された動きベクトルを含む可能性がある。時間候補の予測された動きベクトルは、時間的な同一位置にあるＰＵの動き情報を示すことができる。同一位置にあるＰＵは、ピクチャ・フレーム内で、現在のＰＵと同じ位置に空間的に位置していてもよいが、現在のピクチャの代わりに参照ピクチャ内に位置していてもよい。本願では、対応する時間的ＰＵを含む参照ピクチャは、関連する参照ピクチャとして言及されてもよい。この出願において、関連する参照ピクチャの参照ピクチャ・インデックスは、関連する参照ピクチャ・インデックスとして言及されてもよい。上述のように、現在のピクチャは、１つ以上の参照ピクチャ・リスト（例えば、リスト０及びリスト１）に関連付けられてもよい。参照ピクチャ・インデックスは、参照ピクチャ・リスト内の参照ピクチャの位置を示すことによって、参照ピクチャを示すことができる。幾つかの実現可能な実装において、現在のピクチャは、結合された参照ピクチャ・リストに関連付けられてもよい。
【０１９６】
一部のビデオ・エンコーダでは、関連する参照ピクチャ・インデックスは、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵの参照ピクチャ・インデックスである。これらのビデオ・エンコーダでは、現在のＰＵに関連して位置する参照インデックス・ソースは、現在のＰＵの左又は現在のＰＵの上に隣接している。本願では、ＰＵに関連するピクチャ・ブロックが特定の場所を含む場合、ＰＵは特定の場所を「カバー」することができる。これらのビデオ・エンコーダでは、参照インデックスのソース位置が利用不可能である場合、ビデオ・エンコーダは参照ピクチャ・インデックス０を使用してもよい。
【０１９７】
一部の例において、現在のＰＵに関連する参照インデックス・ソース位置は、現在のＣＵ内にある。これらの例では、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵは、ＰＵが現在のＣＵの上又は左にある場合に、利用可能であると考えられてもよい。しかしながら、ビデオ・エンコーダは、同一位置にあるＰＵを含む参照ピクチャを決定するために、現在のＣＵの別のＰＵの動き情報にアクセスする必要があるかもしれない。従って、これらのビデオ・エンコーダは、現在のＣＵに属するＰＵに対する動き情報（例えば、参照ピクチャ・インデックス）を使用して、現在のＰＵの時間候補の予測された動きベクトルを生成することができる。換言すれば、これらのビデオ・エンコーダは、現在のＣＵに属するＰＵの動き情報を使用して、時間的な候補の予測された動きベクトルを生成することができる。従って、ビデオ・エンコーダは、現在のＰＵと、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵとに関する候補の予測された動きベクトルのリストを、並列的に生成することはできないかもしれない。
【０１９８】
本願の技術によれば、ビデオ・エンコーダは、他の如何なるＰＵの参照ピクチャ・インデックスも参照することなく、関連する参照ピクチャ・インデックスを明示的に設定することができる。このようにして、ビデオ・エンコーダは、現在のＰＵ及び現在のＣＵの別のＰＵについて、候補の予測された動きベクトルのリストを、並列的に生成することができる。ビデオ・エンコーダは、関連する参照ピクチャ・インデックスを明示的に設定するので、関連する参照ピクチャ・インデックスは、現在のＣＵの他の如何なるＰＵの動き情報にも基づいていない。ビデオ・エンコーダが、関連付けられた参照ピクチャ・インデックスを明示的に設定する幾つかの実現可能な実装では、ビデオ・エンコーダは、関連付けられた参照ピクチャ・インデックスを、固定された前もってセットされた参照ピクチャ・インデックス（例えば、０）に常に設定することができる。このようにして、ビデオ・エンコーダは、前もってセットされた参照ピクチャ・インデックスによって示された参照フレーム内の同一位置にあるＰＵの動き情報に基づいて、時間的な候補の予測された動きベクトルを生成することが可能であり、時間的な候補の予測された動きベクトルを、現在のＣＵの候補の予測された動きベクトルのリストに追加することが可能である。また、候補の予測された動きベクトルのリストは、参照フレーム・リストでもある。
【０１９９】
ビデオ・エンコーダが、関連付けられた参照ピクチャ・インデックスを明示的に設定する実現可能な実装では、ビデオ・エンコーダは、シンタックス構造（例えば、ピクチャ・ヘッダ、スライス・ヘッダ、ＡＰＳ、又は他のシンタックス構造）において、関連付けられた参照ピクチャ・インデックスを明示的にシグナリングすることができる。この実現可能な実装では、ビデオ・エンコーダは、各ＬＣＵ（即ち、ＣＴＵ）、ＣＵ、ＰＵ、ＴＵ、又は別のタイプのサブ・ブロックのための関連する参照ピクチャ・インデックスを、デコーダにシグナリングすることができる。例えば、ビデオ・エンコーダは、ＣＵの各ＰＵに対する関連する参照ピクチャ・インデックスが「１」に等しいことを、シグナリングすることができる。
【０２００】
幾つかの実現可能な実装では、関連する参照ピクチャ・インデックスは、明示的ではなく暗黙的に設定されてもよい。これらの実現可能な実装では、たとえこれらの位置が現在のＰＵに厳密に隣接していなかったとしても、ビデオ・エンコーダは、現在のＣＵ外側の位置をカバーするＰＵの参照ピクチャ・インデックスによって示される参照ピクチャ内のＰＵに対する動き情報を使用することによって、現在のＣＵのＰＵに対する候補の予測された動きベクトルのリスト内の各々の時間的な候補の予測された動きベクトルを生成することができる。
【０２０１】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおいて候補の予測された動きベクトルに関連する予測ピクチャ・ブロックを生成することができる（２０４）。ビデオ・エンコーダは、指示された候補の予測された動きベクトルの動き情報に基づいて現在のＰＵの動き情報を決定し、次いで、候補の予測された動きベクトルに関連する予測ピクチャ・ブロックを生成するために、現在のＰＵの動き情報によって示された１つ以上の参照ブロックに基づいて予測ピクチャ・ブロックを生成することができる。次いで、ビデオ・エンコーダは、候補の予測された動きベクトルのリストから、１つの候補の予測された動きベクトルを選択することができる（２０６）。ビデオ・エンコーダは、候補の予測された動きベクトルを種々の方法で選択することができる。例えば、ビデオ・エンコーダは、候補の予測された動きベクトルに関連する各々の予測ピクチャ・ブロックのレート歪コストを分析することによって、１つの候補の予測された動きベクトルを選択することができる。
【０２０２】
候補の予測された動きベクトルを選択した後に、ビデオ・エンコーダは、候補の予測された動きベクトル・インデックスを出力することができる（２０８）。また、候補の予測された動きベクトル・インデックスは、参照フレーム・リスト・インデックスでもあり、候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリストから選択された候補の予測された動きベクトルの位置を示すことができる。幾つかの実現可能な実装では、候補の予測された動きベクトル・インデックスは「ｍｅｒｇｅ＿ｉｄｘ」として表現されてもよい。
【０２０３】
図１１は、本願の実施形態によるアドバンスト動きベクトル予測モードの一例のフローチャートである。ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）は、ＡＭＶＰ演算２１０を実行することができる。
【０２０４】
ビデオ・エンコーダがＡＭＶＰ演算２１０を開始した後、ビデオ・エンコーダは、現在のＰＵに対して１つ以上の動きベクトルを生成することができる（２１１）。ビデオ・エンコーダは、現在のＰＵのための動きベクトルを生成するために、整数動き推定及び分数動き推定を実行することができる。上述のように、現在のピクチャは、２つの参照ピクチャ・リスト（リスト０及びリスト１）と関連付けられる可能性がある。一方向予測が現在のＰＵで実行される場合、ビデオ・エンコーダは、現在のＰＵのためのリスト−０動きベクトル又はリスト−１動きベクトルを生成することができる。リスト−０動きベクトルは、現在のＰＵのためのピクチャ・ブロックと、リスト０における参照ピクチャの参照ブロックとの間の空間的変位を示すことができる。リスト−１動きベクトルは、現在のＰＵのためのピクチャ・ブロックと、リスト１における参照ピクチャの参照ブロックとの間の空間的変位を示すことができる。双方向予測が現在のＰＵで実行される場合、ビデオ・エンコーダは、現在のＰＵのためのリスト−０動きベクトル及びリスト−１動きベクトルを生成することができる。
【０２０５】
現在のＰＵに対する１つ以上の動きベクトルを生成した後、ビデオ・エンコーダは、現在のＰＵに対する予測ピクチャ・ブロックを生成してもよい（２１２）。ビデオ・エンコーダは、現在のＰＵに対する１つ以上の動きベクトルによって示される１つ以上の参照ブロックに基づいて、現在のＰＵに対する予測ピクチャ・ブロックを生成することができる。
【０２０６】
更に、ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２１３）。ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・エンコーダは、図６ないし図９に関連して以下で説明される１つ以上の実現可能な実装に従って、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。幾つかの実現可能な実装では、ビデオ・エンコーダがＡＭＶＰ演算２１０において候補の予測された動きベクトルのリストを生成する場合に、候補の予測された動きベクトルのリストは、２つの候補の予測された動きベクトルに制限される可能性がある。対照的に、ビデオ・エンコーダがマージ演算において候補の予測された動きベクトルのリストを生成する場合には、候補の予測された動きベクトルのリストは、より多くの候補の予測された動きベクトル（例えば、５つの候補の予測された動きベクトル）を含む可能性がある。
【０２０７】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおいて、各々の候補の予測された動きベクトルに対して１つ以上の動きベクトル差分（ＭＶＤ）を生成することができる（２１４）。ビデオ・エンコーダは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対する対応する動きベクトルとの間の差分を決定して、候補の予測された動きベクトルに対する動きベクトル差分を生成することができる。
【０２０８】
一方向予測が現在のＰＵに対して実行される場合、ビデオ・エンコーダは、各々の候補の予測された動きベクトルに対して単一のＭＶＤを生成することができる。双方向予測が現在のＰＵに対して実行される場合、ビデオ・エンコーダは、各々の候補の予測された動きベクトルに対して２つのＭＶＤを生成することができる。第１ＭＶＤは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対するリスト−０動きベクトルとの間の差分を示すことができる。第２ＭＶＤは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対するリスト−１動きベクトルとの間の差分を示すことができる。
【０２０９】
ビデオ・エンコーダは、候補の予測された動きベクトルのリストから１つ以上の候補の予測された動きベクトルを選択することができる（２１５）。ビデオ・エンコーダは、１つ以上の候補の予測された動きベクトルを、種々の方法で選択することができる。例えば、ビデオ・エンコーダは、符号化対象の動きベクトルの関連する動きベクトルに最小誤差で合致する候補の予測された動きベクトルを選択することができる。これは、候補の予測された動きベクトルに対する動きベクトル差分を表現するために必要なビット量を削減することができる。
【０２１０】
１つ以上の候補の予測された動きベクトルを選択した後、ビデオ・エンコーダは、現在のＰＵに対する１つ以上の参照ピクチャ・インデックスと、現在のＰＵに対する１つ以上の候補の予測された動きベクトル・インデックスと、１つ以上の選択された候補の予測された動きベクトルに対する１つ以上の動きベクトル差分とを出力することができる（２１６）。
【０２１１】
現在のピクチャが２つの参照ピクチャ・リスト（リスト０及びリスト１）に関連付けられ、一方向予測が現在のＰＵに対して実行される例において、ビデオ・エンコーダは、リスト０に対する参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１０」）又はリスト１に対する参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１１」）を出力することができる。ビデオ・エンコーダは、更に、候補の予測された動きベクトルのリスト内で、現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１０＿ｆｌａｇ」）を出力することができる。代替的に、ビデオ・エンコーダは、候補の予測された動きベクトルのリスト内で、現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１１＿ｆｌａｇ」）を出力することができる。ビデオ・エンコーダは、更に、現在のＰＵに対するリスト−０動きベクトル又はリスト−１動きベクトルに対するＭＶＤを出力することができる。
【０２１２】
現在のピクチャが２つの参照ピクチャ・リスト（リスト０及びリスト１）に関連付けられており、且つ双方向予測が現在のＰＵに対して実行される例において、ビデオ・エンコーダは、リスト０に対して参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１０」）及びリスト１に対して参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１１」）を出力することができる。更に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおける現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１０＿ｆｌａｇ」）を出力することができる。更に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおける現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１１＿ｆｌａｇ」）を出力することができる。ビデオ・エンコーダは、更に、現在のＰＵに対するリスト−０動きベクトルに対するＭＶＤと、現在のＰＵに対するリスト−１動きベクトルに対するＭＶＤとを出力することができる。
【０２１３】
図１２は、本願の実施形態による、ビデオ・デコーダ（例えば、ビデオ・デコーダ３０）によって実行される動き補償の一例のフローチャートである。
【０２１４】
ビデオ・デコーダが動き補償演算を実行する場合２２０、ビデオ・デコーダは、現在のＰＵに対して選択された候補の予測された動きベクトルの指示を受けることができる（２２２）。例えば、ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックスを受信することができる。
【０２１５】
現在のＰＵの動き情報がＡＭＶＰモードで符号化され、双方向予測が現在のＰＵに対して実行される場合、ビデオ・デコーダは、第１候補の予測された動きベクトル・インデックスと第２候補の予測された動きベクトル・インデックスとを受信することができる。第１候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリスト中の現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す。第２候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリスト中の現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す。幾つかの実現可能な実装において、単一のシンタックス要素が、２つの候補の予測された動きベクトル・インデックスを識別するために使用されることが可能である。
【０２１６】
更に、ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２２４）。ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・デコーダは、図５ないし図９に関連して後述される技術を使用することによって、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。ビデオ・デコーダが候補の予測された動きベクトルのリストのための時間的な候補の予測された動きベクトルを生成する場合に、ビデオ・デコーダは、図１０に関して上述したように、同一位置にあるＰＵを含む参照ピクチャを識別する参照ピクチャ・インデックスを明示的又は暗黙的に設定することができる。
【０２１７】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後に、ビデオ・デコーダは、現在のＰＵに対する候補の予測された動きベクトルのリストにおける１つ以上の候補の予測された動きベクトルによって示される動き情報に基づいて、現在のＰＵに対する動き情報を決定することができる（２２５）。例えば、現在のＰＵの動き情報がマージ・モードで符号化される場合、現在のＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。現在のＰＵの動き情報がＡＭＶＰモードで符号化される場合、ビデオ・デコーダは、選択された候補の予測された動きベクトルによって示される１つ以上の動きベクトルとビットストリームで示される１つ以上のＭＶＤとを使用することによって、現在のＰＵのための１つ以上の動きベクトルを再構成することができる。現在のＰＵの参照ピクチャ・インデックス及び予測方向識別子は、１つ以上の参照ピクチャ・インデックス、及び１つ以上の選択された候補の予測された動きベクトルの１つ以上の予測方向識別子と同一であってもよい。現在のＰＵのための動き情報を決定した後に、ビデオ・デコーダは、現在のＰＵのための動き情報によって示される１つ以上の参照ブロックに基づいて、現在のＰＵのための予測ピクチャ・ブロックを生成することができる（２２６）。
【０２１８】
図１３は、本願の実施形態によるビデオ符号化中に動きベクトルを更新する一例のフローチャートである。処理対象のピクチャ・ブロックは、符号化対象のブロックである。
【０２１９】
１３０１：処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの初期の動きベクトルを取得する。
【０２２０】
実行可能な実装において、例えば、マージ・モードでは、処理対象のピクチャ・ブロックの予測された動きベクトルは、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用される。
【０２２１】
処理対象のピクチャ・ブロックの予測された動きベクトルは、本願の実施形態における図６ないし図９に示される方法、又はＨ．２６５規格又はＪＥＭ参照モードにおける任意の何れかの既存の予測された動きベクトル取得方法によって取得されることが可能である。これは限定されない。動きベクトル差分は、処理対象のピクチャ・ブロックに関連して取得されることが可能である。動き推定は、処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて決定された探索範囲内で実行され、動き推定後に得られた処理対象のピクチャ・ブロックの動きベクトルと処理対象のピクチャ・ブロックの予測された動きベクトルとの間の差分が、動きベクトル差分として使用される。
【０２２２】
双方向予測の間に、このステップは具体的には：処理対象のピクチャ・ブロックの前方予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの第１の初期の動きベクトルを取得するステップと、処理対象のピクチャ・ブロックの後方予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの第２の初期の動きベクトルを取得するステップとを含む。
【０２２３】
１３０２：初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、処理対象のピクチャ・ブロックの予測ブロックを取得する。詳細は以下の通りである：
【０２２４】
Ｓ１３０２１：処理対象のピクチャ・ブロックの参照フレーム・インデックスで示される処理対象のピクチャ・ブロックの参照フレームから、処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックを取得し、処理対象のピクチャ・ブロックの時間的な予測ブロックとして供給する。
【０２２５】
初期の動きベクトルは、第１の初期の動きベクトルと第２の初期の動きベクトルとを含む。第１の初期の動きベクトルは、処理対象のピクチャ・ブロックの第１の参照フレーム・タイプに基づいて第１動き補正ブロックを示し、第１動き補正ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための参照ブロックである。第２の初期の動きベクトルは、処理対象のピクチャ・ブロックの第２の参照フレーム・リストに基づいて第２動き補正ブロックを示し、第２動き補正ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための参照ブロックである。
【０２２６】
１３０２２：１つ以上の最終的な動きベクトルを取得するために、処理対象のピクチャ・ブロックの初期の動きベクトルと、１つ以上の前もってセットされた動きベクトル・オフセットとを加える。ここで、各々の最終的な動きベクトルは探索位置を示す。
【０２２７】
前もってセットされた動きベクトル・オフセットは、前もってセットされたオフセット・ベクトル値であってもよいし、前もってセットされたオフセット・ベクトル精度であってもよいし、又は前もってセットされたオフセット・ベクトル・レンジであってもよい。前もってセットされた動きベクトル・オフセットの具体的な値、及び前もってセットされた動きベクトル・オフセットの量は、本発明のこの実施形態において限定されない。
【０２２８】
最終的な動きベクトルは、第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含む。第１の最終的な動きベクトルは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて第１動き補償ブロックを示し、第１動き補償ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための予測ブロックである。第２の最終的な動きベクトルは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて第２動き補償ブロックを示し、第２動き補償ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための予測ブロックである。
【０２２９】
１３０２３：１つ以上の最終的な動きベクトルによって示される１つ以上の探索位置において１つ以上の候補の予測ブロックを取得する。ここで、各々の探索位置は１つの候補予測ブロックに対応する。
【０２３０】
１３０２４：１つ以上の候補の予測ブロックから、時間的な予測ブロックからのピクセル差分が最小の候補の予測ブロックを、処理対象のピクチャ・ブロックの予測ブロックとして選択する。
【０２３１】
最小ピクセル差分はまた、最小歪コストとして理解されてもよい。この場合、予測ブロックの最終的な動きベクトルは、複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終的な動きベクトルである。歪コストは、複数の方法で計算されてもよいことが、理解されるべきである。例えば、候補予測ブロックと時間的な予測ブロックとのピクセル行列間の絶対差分の合計が計算されてもよいし、又は、ピクセル行列の平均が除去された後の絶対差分の合計が計算されてもよいし、又は、ピクセル行列の別の比較的正確な値が計算されてもよい。最小歪コストの具体的な内容は、本発明のこの実施形態では限定されない。
【０２３２】
双方向予測の間において、このステップは具体的には：処理対象のピクチャ・ブロックの第１参照フレーム・インデックスによって示される処理対象のピクチャ・ブロックの第１参照フレーム・リストから、処理対象のピクチャ・ブロックの第１の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得するステップであって、第１ピクチャ・ブロックは前方参照ブロックであり、相応して第１の初期の動きベクトルは前方の初期の動きベクトルであってもよい、ステップと、処理対象のピクチャ・ブロックの第２参照フレーム・リストによって示される処理対象のピクチャ・ブロックの第２参照フレーム・リストから、処理対象のピクチャ・ブロックの第２の初期の動きベクトルによって示される第２ピクチャ・ブロックを取得するステップであって、第２ピクチャ・ブロックは後方参照ブロックであり、相応して第２の初期の動きベクトルは後方の初期の動きベクトルであってもよい、ステップと、処理対象のピクチャ・ブロックの時間予測ブロック・ブロックを取得するために、第１ピクチャ・ブロック及び第２ピクチャ・ブロックに対する重み付け処理を実行するステップと、１つ以上の第１の最終的な動きベクトルを取得するために、処理対象のピクチャ・ブロックの第１の初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを加算し、１つ以上の第２の最終的な動きベクトルを取得するために、処理対象のピクチャ・ブロックの第２の初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを加算するステップと、１つ以上の第１の最終的な動きベクトルによって示される１つ以上の探索位置で１つ以上の第１候補予測ブロックを取得し、１つ以上の第２の最終的な動きベクトルによって示される１つ以上の探索位置で１つ以上の第１候補予測ブロックを取得するステップと、１つ以上の第１候補予測ブロックから、時間予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの第１予測ブロックとして選択し、１つ以上の後方の候補予測ブロックから、時間予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの第２予測ブロックとして選択するステップと、処理対象のピクチャ・ブロックの予測ブロックを取得するために、第１予測ブロック及び第１予測ブロックに対する重み付け処理を実行するステップとを含む。
【０２３３】
一部の実施形態では、複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終動きベクトルによって示される方向の別の動きベクトルが、代替的に、予測ブロックの最終的な動きベクトルとして使用されてもよい。具体的には、予測ブロックの最終的な動きベクトルは、第１の前もってセットされた条件に基づいて選択されてもよい。
【０２３４】
可能な実装において、複数の候補の最終的な動きベクトルは、複数の方向における複数の動きベクトルであってもよい。先ず、各方向の特定の精度が選択されてもよい。例えば、整数ピクセル精度を有する候補の最終的な動きベクトルが、各方向の第１ベクトルとして使用され、最小歪コストに対応する第１ベクトルが、複数の第１ベクトルから参照ベクトルとして選択される。参照ベクトルに対応する歪コストＡと、負の方向の参照ベクトルに対応する第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の第１の前もってセットされた関係が、第１の前もってセットされた条件を満たす場合、参照ベクトルが、予測ブロックの最終的な動きベクトルとして使用される。参照ベクトルに対応する歪コストＡと、負の方向の参照ベクトルに対応する第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の第１の前もってセットされた関係が、第１の前もってセットされた条件を満たさない場合において、Ａ及びＢが第２の前もってセットされた条件を満たすならば、第１ベクトルの長さは、第３ベクトルを得るために前もってセットされた精度で減らされ、第３ベクトルが、予測ブロックの第１ターゲット・ベクトルとして使用される。Ａ及びＢが第２の前もってセットされた条件を満たさない場合において、Ｂ及びＣが第３の前もってセットされた条件を満たすならば、第１ベクトルの長さは、第４ベクトルを得るために前もってセットされた精度で増やされ、第４ベクトルが、予測ブロックの第１ターゲット・ベクトルとして使用される。Ｂ及びＣが第３の前もってセットされた条件を満たさない場合には、特定のループ・カウントが設定される。各ループでは、参照ベクトルのオフセットが最初に更新される。具体的には、Ａ、Ｂ、Ｃの間の第２の前もってセットされた関係が第４の前もってセットされた条件を満たす場合、参照ベクトルのオフセットが更新される。Ａ、Ｂ、Ｃの間の第２の前もってセットされた関係が第４の前もってセットされた条件を満たさないか、又はループ・カウントが０まで減った場合、参照ベクトルのオフセットは更新されず、ループは終了する。ループが終了した後、オフセットの方向が、Ａ及びＣの値の関係に基づいて決定され、オフセットの方向は正方向又は負方向を含む。参照ベクトル、オフセット、及びオフセットの方向に基づいて第５ベクトルが取得され、第５ベクトルは、予測ブロックの第１ターゲット・ベクトルとして使用される。最終的に、第１ターゲット・ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。第１の前もってセットされた関係は、比例関係、差分関係、又は値の関係であってもよい。第１の前もってセットされた条件は、Ａ、Ｃ、及びＢの間の第１の前もってセットされた関係が、前もってセットされた値に等しいことであってもよいし、第２の前もってセットされた条件は、ＡがＢに等しいことであってもよいし、第３の前もってセットされた条件は、ＢがＣに等しいことであってもよい。第１の前もってセットされた関係、第１の前もってセットされた条件、前もってセットされた値、第２の前もってセットされた条件、第３の前もってセットされた条件、第２の前もってセットされた関係、及び第４の前もってセットされた条件は、本発明のこの実施形態において特に限定されない。
【０２３５】
例えば、８つの候補の動きベクトルが存在し、８つの候補の動きベクトルは、予測ブロックの上方向、下方向、左方向、及び右方向の４方向に位置する。各方向に２つの候補の動きベクトルが存在する。４つの第１ベクトルを得るために、最大長の候補の動きベクトルが、４つの方向のそれぞれからを先ず選択される。上方向の第１ベクトルが最小歪コストに対応する場合、上方向の第１ベクトルが参照ベクトルとして使用され、即ち、予測ブロックの最終的なベクトルは正方向の動きベクトルである。第１の前もってセットされた条件は、参照ベクトルに対応する歪コストＡと、第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の比例関係が１であり、第２ベクトルは参照ベクトルとは逆方向の候補の動きベクトルであり、前もってセットされた精度は１／４精度であることが仮定される。この場合において、参照ベクトルに対応する歪コストが２であり、下方向の第１ベクトルに対応する歪コストが４であり、初期の動きベクトルに対応する歪コストが３である場合に、参照ベクトルに対応する歪コスト、下方向の第１ベクトルに対応する歪コスト、及び初期の動きベクトルに対応する歪コストの比例関係が（２×Ｂ）／（Ａ＋Ｃ）であり、比例関係は１であることが仮定される。この場合、参照ベクトルは、前もってセットされたブロックの最終的な動きベクトルとして使用される。下方向の第１ベクトルに対応する歪コストが５であり、比率関係（２×Ｂ）／（Ａ＋Ｃ）が１でない場合、比率は第１の前もってセットされた条件を満たさない。この場合において、ＡがＢに等しい場合、参照ベクトルの長さは、第３ベクトルを得るために、前もってセットされた精度１／４で減らされ、第３ベクトルは、前もってセットされたブロックの最終的な動きベクトルとして使用される。ＡがＢと等しくない場合において、ＢがＣに等しい場合、参照ベクトルの長さは、第４ベクトルを得るために、前もってセットされた精度１／４で増やされ、第４ベクトルは、前もってセットされたブロックの最終的な動きベクトルとして使用される。ＢがＣと等しくない場合、ループ・カウントは３に設定され、参照ベクトルのオフセットの精度は、先ず、各ループで１／８に更新され、Ａ、Ｂ、及びＣの間の第２の前もってセットされた関係は、Ｋ＝｜（Ａ−Ｃ）×１６｜及びＴ＝（（Ａ＋Ｃ）−２×Ｂ）×８であると仮定される。ＫがＴ以上である場合に、第４の前もってセットされた条件は満たされ、参照ベクトルのオフセットの精度は１／１６に更新される。Ｋ及びＴは各ループにおいて、Ｋ＝Ｋ−Ｔ、及びＴ＝Ｔ／２に更新されることが仮定される。ループ係数が０まで減少すると、ループは終了する。ループが終了した後に、Ａ及びＣの値の関係に基づいて、オフセットの方向が決定される。ＡがＣ以上である場合、オフセットの方向は正の方向である。ＡがＣより小さい場合、オフセットの方向は負の方向である。参照ベクトル、オフセット、及びオフセットの方向に基づいて第５ベクトルが取得され、第５ベクトルは、予測ブロックの第１ターゲット・ベクトルとして使用される。最終的に、第１ターゲット・ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。
【０２３６】
確かに、幾つかの実施形態では、参照ベクトルに対応する歪コストと、ターゲット方向の第３ベクトルに対応する歪コストとの間の第３の前もってセットされた関係が、第５の前もってセットされた条件を満たさない場合、第１ベクトルの長さは、第２ターゲット・ベクトルに対応する増加した歪コストが第２ターゲット条件を満たすまで、前もってセットされた精度によって増やされることが可能である。参照ベクトルに対応する歪コストと、ターゲット方向の第３ベクトルに対応する歪コストとの間の第３の前もってセットされた関係が、第５の前もってセットされた条件を満たす場合、第１ベクトルの長さは、第２ターゲット・ベクトルに対応する減少した歪コストがターゲット条件を満たすまで、前もってセットされた精度によって減らされることが可能である。ターゲット方向は参照ベクトルの方向以外の任意の方向である。第３の前もってセットされた関係、第５の前もってセットされた条件、及びターゲット条件は、本発明のこの実施形態において具体的に限定されない。
【０２３７】
幾つかの実施態様において、参照ベクトルに対応する歪コストのうちの第４の前もってセットされた関係、ターゲット方向の第３ベクトルに対応する歪コスト、及び中間ベクトルに対応する歪コストが、第６の前もってセットされた条件を満たす場合、第３ターゲット・ベクトルは、前もってセットされた精度によって参照ベクトルを増加させることによって決定される。参照ベクトルに対応する歪コスト、ターゲット方向の第３ベクトルに対応する歪コスト、及び中間ベクトルに対応する歪コストの間の第４の前もってセットされた関係が、第６の前もってセットされた条件を満たさない場合、第３ターゲット・ベクトルは、前もってセットされた精度によって参照ベクトルを減少させることによって決定される。中間ベクトルは、参照ベクトルと第２ベクトルとの間に位置する動きベクトルである。前もってセットされた精度で参照ベクトルを増加させ、前もってセットされた精度で参照ベクトルを減少させる処理は上述されており、詳細はここで再び説明しない。第４の前もってセットされた関係及び第６の前もってセットされた条件は、本発明のこの実施形態において具体的に限定されない。
【０２３８】
図１４は、本願の実施形態によるビデオ復号化の間に動きベクトルを更新する一例のフローチャートである。処理対象のピクチャ・ブロックは、復号化対象のブロックである。
【０２３９】
１４０１：インデックスで示される処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの初期の動きベクトルを取得する。
【０２４０】
実行可能な実装において、例えば、マージ・モードでは、処理対象のピクチャ・ブロックの予測された動きベクトルが、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用される。
【０２４１】
処理対象のピクチャ・ブロックの予測された動きベクトルは、本願の実施形態における図６ないし図９に示される方法、又はＨ．２６５規格又はＪＥＭ参照モードにおける既存の予測動きベクトル取得方法の任意の１つによって取得されることが可能である。これは限定されない。動きベクトル差分は、ビットストリームを解析することによって取得されることが可能である。
【０２４２】
双方向予測の間に、このステップは、具体的には：処理対象のピクチャ・ブロックの前方予測動きベクトルに基づいて、処理対象のピクチャ・ブロックの第１の初期の動きベクトルを取得するステップと、処理対象のピクチャ・ブロックの後方予測動きベクトルに基づいて、処理対象のピクチャ・ブロックの第２の初期の動きベクトルを取得するステップとを含む。
【０２４３】
１４０２：初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、処理対象のピクチャ・ブロックの予測ブロックを取得する。詳細は次のとおりである。
【０２４４】
Ｓ１４０２１：処理対象のピクチャ・ブロックの参照ブロックとして供給するために、処理対象のピクチャ・ブロックの参照フレーム・インデックスで示される処理対象のピクチャ・ブロックの参照フレームから、処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックを取得する。  
【０２４５】
１４０２２：１つ以上の最終的な動きベクトルを得るために、初期の動きベクトルと、処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加える。ここで、各々の最終的な動きベクトルは、探索位置を示す。
【０２４６】
１４０２３：１つ以上の最終的な動きベクトルによって示される１つ以上の探索位置において、１つ以上の候補の予測ブロックを取得する。各々の探索位置は１つの候補の予測ブロックに対応する。
【０２４７】
１４０２４：１つ以上の候補の予測ブロックから、時間的な予測ブロックからの最小のピクセル差分を有する候補の予測ブロックを、処理対象のピクチャ・ブロックの予測ブロックとして選択する。
【０２４８】
双方向予測の間に、このステップは具体的には：処理対象のピクチャ・ブロックの第１参照フレーム・インデックスによって示される処理対象のピクチャ・ブロックの第１参照フレームから、処理対象のピクチャ・ブロックの第１の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得し、処理対象のピクチャ・ブロックの第２参照フレーム・インデックスによって示される処理対象のピクチャ・ブロックの第２参照フレームから、処理対象のピクチャ・ブロックの第２の初期の動きベクトルによって示される第２ピクチャ・ブロックを取得するステップと、
処理対象のピクチャ・ブロックの時間的な予測ブロックを取得するために、第１ピクチャ・ブロックと第２ピクチャ・ブロックとに対して重み付け処理を実行するステップと、第１の初期の動きベクトルと処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加算して、１つ以上の第１の最終的な動きベクトルを取得し、第２の初期の動きベクトルと処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加算して、１つ以上の第２の最終的な動きベクトルを取得するステップと、１つ以上の第１の最終的な動きベクトルによって示される１つ以上の探索位置における１つ以上の前方候補予測ブロックを取得し、１つ以上の第２の最終的な動きベクトルによって示される１つ以上の探索位置における１つ以上の後方候補予測ブロックを取得するステップと、１つ以上の前方候補予測ブロックから、時間的な予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの前方予測ブロックとして選択し、１つ以上の後方候補予測ブロックから、時間的な予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの後方予測ブロックとして選択するステップと、処理対象のピクチャ・ブロックの予測ブロックを得るために、前方予測ブロック及び後方予測ブロックに対して重み付け処理を実行するステップとを含む。
【０２４９】
幾つかの具体的な実施形態を用いることにより、以下、動きベクトルを更新する実装を詳細に説明する。図１３の符号化方法及び図１４の復号化方法で説明されているように、動きベクトルの更新はエンコーダ及びデコーダにおいて一貫していることが理解されるべきである。従って、以下の実施形態は、エンコーダ又はデコーダのみから説明される。エンコーダからの説明が提供される場合に、デコーダにおける実装は、エンコーダにおけるものと一貫性を維持しており、デコーダからの説明が提供される場合に、エンコーダにおける実装は、デコーダにおけるものと一貫性を維持していることが理解されるべきである。
【０２５０】
図１５に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が得られる。現在の復号化ブロックの前方及び後方の動きベクトル予測子は、それぞれ（−１０，４）及び（５，６）であり、現在の復号化ブロックのピクチャ・オーダ−・カウント（picture  order  count，POC）ＰＯＣは、４であると仮定する。ＰＯＣは、ピクチャの表示順序を示すために使用され、ピクチャの表示された参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣは、それぞれ２及び６である。この場合、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０２５１】
前方予測と後方予測とが現在の復号化ブロックに対して別々に実行されて、現在の復号化ブロックの初期の前方復号化予測ブロック（forward  prediction  block，FPB）と初期の後方復号化予測ブロック（backward  prediction  block，BPB）とを求める。初期の前方復号化予測ブロック及び初期の後方復号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定する。現在の復号化ブロックの第１復号化予測ブロック（decoding  prediction  block，DPB）は、ＦＰＢ１及びＢＰＢ１に対して重み付け加算を行うことによって得られ、ＤＰＢ１である仮定される。
【０２５２】
（−１０，４）及び（５，６）が前方及び後方動きベクトル予測器の基準入力として使用され、前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックに対して、第１精度の動き探索が別々に実行される。この場合、第１精度は１ピクセル・レンジにおける１／２ピクセル精度である。第１復号化予測ブロックＤＰＢ１が参照として使用される。各々の動き探索により得られる対応する新しい前方及び後方復号化予測ブロックが、第１復号化予測ブロックＤＰＢ１と比較されて、ＤＰＢ１からの最小の差分を有する新しい復号化予測ブロックを取得し、新しい復号化予測ブロックに対応する前方及び後方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）であると仮定される。
【０２５３】
ターゲット動きベクトル予測子は、（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトル予測子に基づいて第１復号化ブロックに対して別々に実行され、ターゲット復号化予測ブロックが、取得された新しい前方及び後方復号化予測ブロックに対して重み付け加算を行うことにより取得され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックは、ＤＰＢ２に更新される。
【０２５４】
第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して実行される場合、第１精度は任意の指定あれた精度であってもよく、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０２５５】
図１６に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が取得される。現在の復号化ブロックの前方動きベクトル予測子は（−２１，１８）であり、現在の復号化ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣは２であることが仮定される。この場合、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２である。
【０２５６】
前方予測が、現在の復号化ブロックに対して実行されて、現在の復号化ブロックの初期の前方予測ブロックを取得する。初期の前方復号化予測ブロックはＦＰＢ１であると仮定する。この場合、ＦＰＢ１は、現在の復号化ブロックの第１復号化予測ブロックとして使用され、第１復号化予測ブロックは、ＤＰＢ１として示される。
【０２５７】
（−２１，１８）が、前方動きベクトル予測器の基準入力として使用され、第１精度の動き探索が、前方動き予測参照ピクチャ・ブロックに対して実行される。この場合において、第１精度は５ピクセル・レンジにおける１ピクセル精度である。第１復号化予測ブロックＤＰＢ１が参照として使用される。各々の動き探索により取得された対応する新しい前方復号化予測ブロックは、第１復号化予測ブロックＤＰＢ１と比較され、ＤＰＢ１からの最小差分を有する新しい復号化予測ブロックを取得し、新しい復号化予測ブロックに対応する前方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、（−１９，１９）であると仮定される。
【０２５８】
ターゲット動きベクトル予測子は（−１９，１９）に更新され、前方予測がターゲット動きベクトル予測子に基づいて実行され、取得された新しい前方復号化予測ブロックは、ターゲット復号化予測ブロックとして使用され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックはＤＰＢ２に更新される。
【０２５９】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合に、第１精度は任意の指定された精度であってもよく、例えば整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよいことに留意すべきである。
【０２６０】
図１７Ａ及び図１７Ｂに示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測動き情報が得られる。現在のコーディング・ブロックの前方及び後方動きベクトル予測子はそれぞれ（−６，１２）及び（８，４）であり、現在の復号化ブロックが位置するピクチャのＰＯＣは８であり、参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣはそれぞれ４及び１２であることが仮定される。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは４であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは１２である。
【０２６１】
前方予測及び後方予測は、現在の符号化ブロックに対して別々に実行されて、現在の符号化ブロックの初期の前方符号化予測ブロックと初期の後方符号化予測ブロックとを取得する。初期の前方符号化予測ブロック及び初期の後方符号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定される。現在の符号化ブロックの第１符号化予測ブロックは、ＦＰＢ１及びＢＰＢ１に対して重み付け加算を実行することによって取得され、ＤＰＢ１であると仮定される。
【０２６２】
（−６，１２）及び（８，４）が前方及び後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して別々に実行される。第１符号化予測ブロックＤＰＢ１は、参照として使用される。各々の動き探索により取得された対応する新しい前方及び後方符号化予測ブロックは、第１符号化予測ブロックＤＰＢ１と比較され、ＤＢＩからの最小差分を有する新しい符号化予測ブロックを取得し、新しい符号化予測ブロックに対応する前方及び後方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）であると仮定される。
【０２６３】
ターゲット動きベクトル予測子は（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトル予測子に基づいて第１符号化ブロックに対して別々に実行され、ターゲット符号化予測ブロックが、取得された新しい前方及び後方符号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ２であると仮定され、現在のコーディング・ブロックの符号化予測ブロックはＤＰＢ２に更新される。
【０２６４】
次いで、（−１１，４）及び（６，６）が前方及び後方の動きベクトル予測子の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに関して別々に実行される。現在のコーディング・ブロックの符号化予測ブロックＤＰＢ２は、参照として使用される。各々の動き探索で得られた対応する新しい前方及び後方符号化予測ブロックは、第１符号化予測ブロックＤＰＢ２と比較されて、ＤＰＢ２からの最小差分を有する新しい符号化予測ブロックを取得し、新しい符号化予測ブロックに対応する前方及び後方動きベクトル予測子が、新しいターゲット動きベクトル予測子として使用され、それぞれ（−７，１１）及び（６，５）であると仮定される。
【０２６５】
次いで、ターゲット動きベクトル予測子は（−７，１１）及び（６，５）に更新され、前方予測及び後方予測が、最新のターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、ターゲット符号化予測ブロックは、取得された新しい前方及び後方符号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ３であると仮定され、現在のコーディング・ブロックの符号化予測ブロックはＤＰＢ３に更新される。
【０２６６】
更に、ターゲット動きベクトル予測子は、上記の方法に従って連続的に更新されることが可能であり、サイクル数は限定されない。
【０２６７】
第１精度の動き探索が前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して実行される場合に、第１精度は任意の指定された精度であってもよく、例えば整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよいことに留意すべきである。
【０２６８】
幾つかの実現可能な実施形態では、条件が満たされるとサイクルは終了することが理解されるべきである。例えば、サイクルは、ＤＰＢｎとＤＰＢｎ−１との差分が閾値より小さい場合に終了し、ここで、ｎは２より大きな正の整数である。
【０２６９】
図１８に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が得られる。現在の復号化ブロックの前方及び後方動きベクトルの値はそれぞれ（−１０，４）及び（５，６）であり、現在の復号化ブロックの前方及び後方動きベクトル差分はそれぞれ（−２，１）及び（１，１）であり、現在の復号化ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される参照ピクチャのＰＯＣはそれぞれ２及び６であることが仮定される。従って、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０２７０】
前方予測及び後方予測は、現在の復号化ブロックに対して別々に実行されて、現在の復号化ブロックの初期の前方復号化予測ブロック（ＦＰＢ）及び初期の後方復号化予測ブロック（ＢＰＢ）を取得する。初期の前方復号化予測ブロック及び初期の後方復号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定される。現在の復号化ブロックの第１復号化予測ブロック（ＤＰＢ）は、ＦＰＢ１及びＢＰＢ１に関して重み付け加算を実行することによって取得され、ＤＰＢ１であると仮定される。
【０２７１】
前方動きベクトル予測子及び前方動きベクトル差分の合計と、後方動きベクトル予測子及び後方動きベクトル差分の合計とは、即ち（−１０，４）＋（−２，１）＝（−１２，５）と（５，６）＋（１，１）＝（６，７）とはそれぞれ前方動きベクトル及び後方動きベクトルとして使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに別々に実行される。この場合、第１精度は１ピクセル/レンジにおける１／４ピクセル精度である。第１復号化予測ブロックＤＰＢ１は参照として使用される。各々の動き探索で得られる対応する新しい前方及び後方復号化予測ブロックは、第１復号化予測ブロックＤＰＢ１と比較されて、ＤＰＢ１からの最小差分を有する新しい復号化予測ブロックを取得する。新しい復号化予測ブロックに対応する前方及び後方動きベクトルは、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）と仮定される。
【０２７２】
ターゲット動きベクトルは（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトルに基づいて第１復号化ブロックに対して別々に実行され、ターゲット復号化予測ブロックは、取得された新しい前方及び後方復号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックはＤＰＢ２に更新される。
【０２７３】
本願の中核的な技術的内容を更に反映させるために、マージ・モードにおけるエンコーダによる動きベクトルを記憶する処理が、以下、具体的な実施形態を使用することにより説明される。図１９は、本願の実施形態によるエンコーダによる動きベクトルを取得する方法の概略フローチャートである。方法は以下のステップを含む。
【０２７４】
１９０１：第１の処理対象のピクチャ・ブロックを取得した後に、エンコーダは、第１の処理対象のピクチャ・ブロックの１つ以上の前もってセットされた候補の参照ブロックを決定する。
【０２７５】
図３を参照すると、第１の処理対象のピクチャ・ブロックは、符号化対象のピクチャ・ブロックであり、即ち、符号化対象のピクチャ・ブロックは、エンコーダ・パーティションのパーティション・ユニットがビデオ・データを取得した後に得られる。第１の処理対象のピクチャ・ブロックは、現在のＰＵであってもよいし、又は現在のＣＵであってもよいことに留意すべきである。これは、本発明のこの実施形態において具体的に限定されない。
【０２７６】
候補の参照ブロックは、第１の処理対象のピクチャ・ブロックとの前もってセットされた空間位置関係を有するピクチャ・ブロックを含む。前もってセットされた空間位置関係は、図５に示された位置関係であってもよい。図５に示す候補の参照ブロックは、第１の処理対象のピクチャ・ブロックに隣接しているので、即ち、候補の参照ブロックのピクチャ情報は、第１の処理対象のピクチャ・ブロックのものと比較的類似しているので、第１の処理対象のピクチャ・ブロックを予測するために、候補の参照ブロックの動きベクトルは、第１の処理対象のピクチャ・ブロックの予測された動きベクトルとして使用されることが可能である。幾つかの実施形態では、候補の参照ブロックは、更に、別の実際のピクチャ・ブロック、又は、第１の処理対象のピクチャ・ブロックとの前もってセットされた空間相関を有するバーチャル・ピクチャ・ブロックを含む。本願のこの実施態様において、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとの間の位置関係は、特定の量の候補参照ブロックによって具体的に限定されない。
【０２７７】
１９０２：エンコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定する。
【０２７８】
本願のこの実施形態では、動きベクトル更新処理が、候補参照ブロックに対して実行される。候補参照ブロックに対する更新処理が完了すると、候補参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有し、即ち、候補参照ブロックは、相応して、初期の動きベクトルと最終的な動きベクトルとを記憶する。幾つかの実施形態では、候補参照ブロックは、相応して、初期の動きベクトル及び動きベクトル残差を記憶し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの初期の動きベクトルと動きベクトル残差とを加えることによって取得されることが可能である。
【０２７９】
しかしながら、候補参照ブロックに対する更新処理が完了していない場合、候補参照ブロックは初期動きベクトルのみを有し、即ち、相応して候補の参照ブロックは候補の参照ブロックの初期の動きベクトルのみを記憶する。
【０２８０】
候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有するので、エンコーダは、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの初期の動きベクトル又は最終的な動きベクトルを使用することが可能であり、その結果、候補の参照ブロックの動きベクトルは、第１の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。
【０２８１】
参照ブロックにおける動きベクトル更新処理については、図１３に関連する本願の実施形態を参照されたい、ということに留意すべきである。図１９に関連する実施形態の参照ブロックは、図１３に関連する実施形態における処理対象のピクチャ・ブロックであることが理解されるべきである。
【０２８２】
ステップ１９０２において、候補の参照ブロックの動きベクトルは、候補の参照ブロックの前もってセットされたレンジに基づいて決定されてもよい。例えば、候補の参照ブロックが前もってセットされたレンジ内にある場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用され、或いは候補の参照ブロックが前もってセットされたレンジ外にある場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。従って、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定することができる。
【０２８３】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置していない場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。図２１を参照すると、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の具体的なレンジは、本発明のこの実施形態で具体的に限定されない。
【０２８４】
関連技術において、エンコーダは複数の処理対象のピクチャ・ブロックを同時に符号化してもよい。しかしながら、複数の処理対象のピクチャ・ブロックが同一のＣＴＢ行内に位置する場合、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックである可能性がある。複数の処理対象のピクチャ・ブロックが互いの候補の参照ブロックである場合、別のブロックの更新された最終的な動きベクトルは、別のブロックが更新された後に限り、現在の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用されることが可能である。その結果、符号化の遅延が存在する。更に、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックであるので、他のブロックが更新されるまで待機する必要がある。その結果、符号化遅延が増加する。
【０２８５】
従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、次いで、候補の参照ブロックの動きベクトルが、第１の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。これについては、ステップ１９０３を参照されたい。
【０２８６】
候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックに対する更新処理は完了しない可能性がある。従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、候補の参照ブロックが更新されるまで待機する必要はなく、符号化遅延を低減する。候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。従って、候補の参照ブロックは最終的な動きベクトルを有し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０２８７】
前もってセットされたレンジは、代替的に、ＣＴＢブロック・レンジであってもよい。例えば、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０２８８】
候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、それは候補の参照ブロックにおける更新処理は完了していない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とすることなく、候補の参照ブロックの動きベクトルとして直接的に使用され、符号化遅延を低減する。更に、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、それは候補の参照ブロックに関して更新処理を完了するための十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、第１の処理対象のピクチャ・ブロックと同じＣＴＢ内に位置していない候補の参照ブロックの最終的な動きベクトルを、候補の参照ブロックの動きベクトルとして使用することは、符号化品質を保証することができる。
【０２８９】
前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジ又は左隣接及び右隣接ＣＴＢブロックのレンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢであるか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０２９０】
候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じである場合、又は候補参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合、それは、候補の参照ブロックに対する更新処理が完了しない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とせずに、候補の参照ブロックの動きベクトルとして直接的に使用され、符号化遅延を低減する。更に、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０２９１】
１９０３：エンコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルに基づいて、候補の予測された動きベクトルのリストを設定する。
【０２９２】
候補の予測された動きベクトルのリストを設定する方法については、図６ないし図９を参照されたい。詳細はここで再び説明しない。
【０２９３】
１９０４：エンコーダは、処理対象のピクチャ・ブロックの参照ブロックを決定する。参照ブロック及び第１の処理対象のピクチャ・ブロックは、同じピクチャのフレーム内に位置する。
【０２９４】
最小レート歪コストを有する候補の参照ブロックが、第１の処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックから、第１の処理対象のピクチャ・ブロックの参照ブロックとして選択される。
【０２９５】
１９０５：エンコーダは、参照ブロックの動きベクトルを記憶する。参照ブロックの動きベクトルは、現在の処理対象のピクチャ・ブロックの初期の動きベクトルである。
【０２９６】
参照ブロックの動きベクトルは、設定された候補の予測された動きベクトルのリストにおける対応する位置から取得されることが可能である。
【０２９７】
ステップ１９０１ないしステップ１９０５は、エンコーダが第１の処理対象のピクチャ・ブロックの初期の動きベクトルを取得する処理である。
【０２９８】
１９０６：エンコーダは、第１の処理対象のピクチャ・ブロックの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、第１の処理対象のピクチャ・ブロックの予測ブロックを決定する。
【０２９９】
ステップ１９０６は、図１３の１３０２１ないし１３０２４を使用することによって完了させることが可能である。詳細はここで再び説明しない。
【０３００】
１つ以上の前もってセットされた動きベクトル・オフセットは、ピクセル単位に基づいて設定されることが可能である。例えば、第１の処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックは、第１の処理対象のピクチャ・ブロックの時間的な予測ブロックとして使用され、時間的な予測ブロックの１ピクセル単位又は１／２ピクセル単位内の１つ以上の候補の予測ブロックが、時間的な予測ブロックを中心として使用することにより探索される。確かに、別の長さ又は別のピクセル単位が使用されてもよい。１つ以上の前もってセットされた動きベクトル・オフセットは、本願のこの実施形態で具体的に限定されない。
【０３０１】
１９０７：予測ブロックの動きベクトルを決定した後に、エンコーダは、予測ブロックの動きベクトルを、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルとして使用する。
【０３０２】
ステップ１９０７において、候補の参照ブロックの動きベクトルは、予測ブロックの前もってセットされたレンジに基づいて決定されることが可能である。例えば、予測ブロックが、前もってセットされたレンジ内にある場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用され、予測ブロックが、前もってセットされたレンジ外にある場合には、予測ブロックの最終的な動きベクトルが、予測ブロックの動きベクトルとして使用される。
【０３０３】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。相応して、予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置しない場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。図２１を参照すると、予測ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、予測ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の特定のレンジは、本発明のこの実施形態では具体的に限定されない。
【０３０４】
予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、予測ブロックに対する更新処理は終了しない可能性がある。従って、予測ブロックの初期の動きベクトルは、予測ブロックの動きベクトルとして直接的に使用されることが可能であり、予測ブロックが更新されるまで待機する必要はなく、符号化遅延を低減する。予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、予測ブロックに対する更新処理を完了するのに十分な時間があることを示す。従って、予測ブロックは最終的な動きベクトルを有し、予測ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、予測ブロックの動きベクトルとして最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０３０５】
幾つかの実施形態では、前もってセットされたレンジは代替的にＣＴＢブロック・レンジであってもよい。幾つかの他の実施形態では、前もってセットされたレンジは、代替的に、同じＣＴＢブロックであってもよい。予測ブロックの動きベクトルの決定は、候補の参照ブロックの動きベクトルの決定と同様である。これについてはステップ１９０２を参照されたい。詳細はここで再び説明しない。
【０３０６】
１９０８：エンコーダは、候補リスト内の第１の処理対象のピクチャ・ブロックの初期の動きベクトルを、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルに更新する。
【０３０７】
１９０９：エンコーダは、第１の処理対象のピクチャ・ブロックの動きベクトル残差を、ターゲット・ストレージ空間に記憶する。
【０３０８】
動きベクトル残差は、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルと、第１の処理対象のピクチャ・ブロックの初期の動きベクトルとの間の動きベクトル差分である。
【０３０９】
ターゲット・ストレージ空間は、動きベクトル残差をエンコーダにより記憶するための空間である。例えば、ターゲット・ストレージ空間は、図２の参照ピクチャ記憶ストレージ６４であってもよい。
【０３１０】
関連技術におけるマージ・モードでは、ターゲット・ストレージ空間はゼロ・ベクトルを記憶するか、又はターゲット・ストレージ空間はデータを記憶しないことに留意すべきである。しかしながら、本願のこの実施形態におけるマージ・モードでは、処理対象のピクチャ・ブロックの動きベクトル残差がターゲット・ストレージ空間に記憶され、その結果、ターゲット・ストレージ空間を完全に使用することが可能であるだけでなく、他のピクチャ・ブロックの動きベクトルが第１の処理対象のピクチャ・ブロックに対して必要とされる場合に、他のピクチャ・ブロックの動きベクトルを柔軟に選択することも可能である。ステップ１９０２及び１９０７において示されるように、エンコーダの符号化効率は更に改善される。
【０３１１】
更に、一部の実装では、ステップ１９０９において、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルが、代替的に、第１の処理対象のピクチャ・ブロックの動きベクトル残差として使用され、ターゲット・ストレージ空間に記憶されることが可能であり、即ち、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルがターゲット・ストレージ空間に記憶され、第１の処理対象のピクチャ・ブロックの動きベクトル残差は、ターゲット・ストレージ空間に記憶されない。この場合において、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルが別のブロックに必要とされる場合、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルは、第１の処理対象のピクチャ・ブロックの初期の動きベクトルと、第１の処理対象のピクチャ・ブロックの動きベクトル残差とを加算する必要なしに、エンコーダのターゲット・ストレージ空間から直接的に取得されることが可能である。
【０３１２】
ステップ１９０９の具体的なストレージ方法については、図２１を参照されたい。
【０３１３】
ステップ１９０８及び１９０９のシーケンスには厳密な要件がないことに留意すべきであり、エンコーダは代替的にステップ１９０８の前にステップ１９０９を実行してもよい。これは本願のこの実施形態で具体的に限定されない。
【０３１４】
ステップ１９０６ないし１９０９は、エンコーダが第１の処理対象のピクチャ・ブロックの最終的な動きベクトルを取得する処理である。
【０３１５】
１９１０：エンコーダは、処理対象のピクチャ・ブロックの初期の動きベクトル、又は候補リスト内の処理対象のピクチャ・ブロックの初期の動きベクトルに対応する１つ以上の第１識別情報を、ビットストリームに符号化する。
【０３１６】
識別情報はインデックスを含む可能性がある。確かに、幾つかの実装において、識別情報は、予測モードを更に含んでもよい。インデックスは、候補の予測された動きベクトルのリストにおける対応する動きベクトルを示すために使用され、動きベクトルは、第１の処理対象のピクチャ・ブロックの初期の動きベクトル又は最終的な動きベクトルであり、予測モードはマージ・モード、ＡＭＶＰＡモード、及びスキップ・モードを含む。本願のこの実施形態では、予測モードはマージ・モードである。確かに、別の実施形態では、予測モードは別のモードであってもよい。これは本願のこの実施形態で限定されない。
【０３１７】
前述の実装において、現在のコーディング・ブロックを符号化する場合に、エンコーダは、参照ブロックの最終的な動きベクトルの代わりに、参照ブロックの更新されていない初期の動きベクトルを、現在のコーディング・ブロックの予測された動きベクトルとして使用する。このようにして、参照ブロックの動きベクトルが現在のコーディング・ブロックに対して必要とされる場合に、関連するステップは、参照ブロックの最終的な動きベクトルが更新されるまで待機することを必要とせずに、実行されることが可能であり、符号化遅延が削減されることを補償する一方、動きベクトルが更新されるので符号化効率が改善される。
【０３１８】
エンコーダにより使用されるインター予測モードが前方予測又は後方予測である場合に、候補参照ブロックの動きベクトル、参照ブロックの動きベクトル、及び予測ブロックの動きベクトルは、前方動きベクトル又は後方動きベクトルを含むことに留意すべきである。相応して、候補の予測された動きベクトルのリストが設定されると、候補の予測された動きベクトルのリストは、リスト０又はリスト１のみを含み、処理対象のピクチャ・ブロックの初期の動きベクトルは、前方の初期の動きベクトル又は後方の初期の動きベクトルを含み、処理対象のピクチャ・ブロックの最終的な動きベクトルは、前方の最終的な動きベクトル又は後方の最終的な動きベクトルを含む。
【０３１９】
エンコーダにより使用されるインター予測モードが双方向予測である場合、候補の参照ブロックの動きベクトル、参照ブロックの動きベクトル、及び予測ブロックの動きベクトルは、第１動きベクトルと第２動きベクトルとを含み、第１動きベクトルは前方動きベクトルであり、第２動きベクトルは後方動きベクトルである。相応して、候補の予測された動きベクトルのリストが設定されると、候補の予測された動きベクトルのリストは、リスト０及びリスト１を含み、処理対象のピクチャ・ブロックの初期の動きベクトルは、第１の初期の動きベクトル及び第２の初期の動きベクトルを含み、処理対象のピクチャ・ブロックの最終的な動きベクトルは、第１の最終的な動きベクトル及び第２の最終的な動きベクトルを含む。第１の初期の動きベクトル及び第１の最終的な動きベクトルは前方動きベクトルであり、第２の初期の動きベクトルと第２の最終的な動きベクトルは後方動きベクトルである。
【０３２０】
上記の内容はエンコーダについて説明されている。相応して、マージ・モードにおいてデコーダにより動きベクトルを記憶する処理が、具体的な実施形態を用いて以下において説明される。図２０は、本願の実施形態による、デコーダによる動きベクトルを取得する方法の概略フローチャートである。方法は以下のステップを含む。
【０３２１】
２００１：第２の処理対象のピクチャ・ブロックに対応するビットストリームを受信した後、デコーダは、第２識別情報及び第３識別情報を得るためにビットストリームを解析する。ここで、第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用され、第３識別情報は、動きベクトル残差が復号化の間に解析される必要があるかどうかを示すために使用される。
【０３２２】
第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用されるインデックスを含んでもよい。ステップ２００２及び２００４を参照すると、幾つかの実施形態において、第２識別情報は、予測モード・タイプを更に含んでもよい。
【０３２３】
第３識別情報は、復号化の間に、動きベクトル残差が、解析されることを必要とするかどうかを示すために使用される。本願のこの実施形態では、動きベクトル残差は、マージ・モードで解析されることを必要としないが、別の実施形態において、動きベクトル残差が解析される場合がある。例えば、ＳＭＶＰモードでは、第３識別情報の指示に従って、第２処理対象のピクチャ・ブロックの動きベクトル残差をビットストリームに加える場合に、デコーダは、ビットストリームを解析することによって、動きベクトル残差を取得することができる。この場合、デコーダは、動きベクトル残差を、ターゲット・ストレージ空間に直接的に記憶する。
【０３２４】
２００２：第２の処理対象のピクチャ・ブロックに対応するビットストリームを受信した後に、デコーダは、第２の処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックと、１つ以上の候補の参照ブロックの１つ以上の動きベクトルとを決定する。
【０３２５】
１つ以上の候補の参照ブロックは、第２の処理対象のピクチャ・ブロックとの前もってセットされた空間位置関係を有するピクチャ・ブロックを含む。候補の参照ブロックの決定については、図５を参照されたい。詳細はここで再び説明しない。
【０３２６】
本願のこの実施形態では、動きベクトル更新処理が、候補の参照ブロックに対して実行される。候補の参照ブロックに対する更新処理が完了すると、候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有し、即ち、候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを記憶する。幾つかの実施形態では、候補の参照ブロックは、初期の動きベクトルと動きベクトル残差とを記憶し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの初期の動きベクトルと動きベクトル残差とを加えることによって取得することができる。
【０３２７】
しかしながら、候補の参照ブロックの更新処理が完了していない場合、候補の参照ブロックは初期の動きベクトルのみを有し、即ち、候補の参照ブロックは、候補の参照ブロックの初期の動きベクトルのみを記憶する。
【０３２８】
候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有するので、デコーダは、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの初期の動きベクトル又は最終的な動きベクトルを用いる必要があり、その結果、候補の参照ブロックの動きベクトルは、第２の処理対象のピクチャ・ブロックの空間的な候補の予測された動きベクトルとして使用される。
【０３２９】
参照ブロックに対する動きベクトル更新プロセス及び初期の動きベクトルの取得については、図１４に関連する本願の実施形態を参照されたい、ということに留意すべきである。図２０に関連する実施形態の参照ブロックは、図１４に関連する実施形態の処理対象のピクチャ・ブロックであることが理解されるべきである。
【０３３０】
ステップ１８０２において、候補の参照ブロックの動きベクトルは、候補の参照ブロックの前もってセットされたレンジに基づいて決定されてもよい。例えば、候補の参照ブロックが前もってセットされたレンジ内にある場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用され、候補の参照ブロックが前もってセットされたレンジ外にある場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。従って、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定することができる。
【０３３１】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一行に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一行に位置していない場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。図２１を参照すると、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合に、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の具体的なレンジは、本発明のこの実施形態で具体的に限定されない。
【０３３２】
関連技術において、デコーダは複数の処理対象のピクチャ・ブロックを同時に復号化してもよい。しかしながら、複数の処理対象のピクチャ・ブロックが同一のＣＴＢ行内に位置する場合、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックである可能性がある。複数の処理対象のピクチャ・ブロックが互いの候補の参照ブロックである場合、別のブロックの更新された最終的な動きベクトルは、別のブロックが更新された後に限り、現在の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用されることが可能である。その結果、復号化の遅延が存在する。更に、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックであるので、他のブロックが更新されるまで待機する必要がある。その結果、復号化遅延が増加する。
【０３３３】
従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、次いで、候補の参照ブロックの動きベクトルが、第２の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。これについては、ステップ１８０３を参照されたい。
【０３３４】
候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックに対する更新処理は完了しない可能性がある。従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、候補の参照ブロックが更新されるまで待機する必要はなく、復号化遅延を低減する。候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。従って、候補の参照ブロックは最終的な動きベクトルを有し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３３５】
前もってセットされたレンジは、代替的に、ＣＴＢブロック・レンジであってもよい。例えば、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０３３６】
候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、それは候補の参照ブロックにおける更新処理は完了していない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とすることなく、候補の参照ブロックの動きベクトルとして直接的に使用され、復号化遅延を低減する。更に、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、それは候補の参照ブロックに関して更新処理を完了するための十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、第２の処理対象のピクチャ・ブロックと同じＣＴＢ内に位置していない候補の参照ブロックの最終的な動きベクトルを、候補の参照ブロックの動きベクトルとして使用することは、復号化品質を保証することができる。
【０３３７】
前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジ、又は左隣接及び右隣接ＣＴＢブロックのレンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢであるか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０３３８】
候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じである場合、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合、それは、候補の参照ブロックに対する更新処理が完了しない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とせずに、候補の参照ブロックの動きベクトルとして直接的に使用され、復号化遅延を低減する。更に、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３３９】
２００３：デコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルに基づいて、候補の予測された動きベクトルのリストを設定する。
【０３４０】
ステップ２００３は、ステップ１９０３と同じであり、即ち、デコーダが候補の予測された動きベクトルのリストを設定する方法は、エンコーダが候補の予測された動きベクトルのリストを設定する方法と一貫しており、設定された候補の予測された動きベクトルのリストは同じである。エンコーダは、デコーダによって受信されるビットストリームを符号化するエンコーダである。
【０３４１】
２００４：デコーダは、第２識別情報に基づいて、候補の予測された動きベクトルのリストから、第２の処理対象のピクチャ・ブロックの参照ブロックと参照ブロックの動きベクトルとを決定する。
【０３４２】
第２識別情報のインデックスで示される動きベクトルは、インデックスに基づいて候補の予測された動きベクトルのリストから選択される。動きベクトルは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルであり、動きベクトルはまた、第２の処理対象のピクチャ・ブロックの参照ブロックの動きベクトルでもある。
【０３４３】
２００５：エンコーダは、参照ブロックの動きベクトルを、第２の処理対象のピクチャ・ブロックの初期の動きベクトルとして記憶する。
【０３４４】
ステップ２００１ないし２００５は、デコーダが第２の処理対象のピクチャ・ブロックの初期の動きベクトルを取得する処理である。
【０３４５】
２００６：デコーダは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、第２の処理対象のピクチャ・ブロックの予測ブロックを決定する。
【０３４６】
ステップ２００６は、図１４の１４０１ないし１４０４を使用することによって完了することができる。詳細はここで再び説明しない。
【０３４７】
１つ以上の前もってセットされた動きベクトル・オフセットについては、ステップ１９０６を参照されたい。詳細はここで再び説明しない。
【０３４８】
ステップ２００５及び２００６を実行する不特定のシーケンスがあることに留意すべきであり、ステップ２００６は代替的にステップ２００５の前に実行されてもよい。ステップ２００５及び２００６を実行するシーケンスは、本願のこの実施形態において具体的に限定されない。
【０３４９】
２００７：予測ブロックの動きベクトルを決定した後に、デコーダは、予測ブロックの動きベクトルを、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルとして使用する。
【０３５０】
ステップ２００７では、候補の参照ブロックの動きベクトルが、予測ブロックの前もってセットされたレンジに基づいて決定されることが可能である。例えば、予測ブロックが前もってセットされたレンジ内にある場合には、予測ブロックの初期の動きベクトルが予測ブロックの動きベクトルとして使用され、予測ブロックが前もってセットされたレンジ外にある場合には、予測ブロックの最終的な動きベクトルが予測ブロックの動きベクトルとして使用される。
【０３５１】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。相応して、予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置しない場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。図２１を参照すると、予測ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、予測ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の特定のレンジは、本発明のこの実施形態では具体的に限定されない。
【０３５２】
予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、予測ブロックに対する更新処理は終了しない可能性がある。従って、予測ブロックの初期の動きベクトルは、予測ブロックの動きベクトルとして直接的に使用されることが可能であり、予測ブロックが更新されるまで待機する必要はなく、復号化遅延を低減する。予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、予測ブロックに対する更新処理を完了するのに十分な時間があることを示す。従って、予測ブロックは最終的な動きベクトルを有し、予測ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、予測ブロックの動きベクトルとして最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３５３】
幾つかの実施形態では、前もってセットされたレンジは代替的にＣＴＢブロック・レンジであってもよい。幾つかの他の実施形態では、前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジであってもよい。予測ブロックの動きベクトルの決定は、候補の参照ブロックの動きベクトルの決定と同様である。これについてはステップ１８０２を参照されたい。詳細はここで再び説明しない。
【０３５４】
ステップ２００６及びステップ２００７は、デコーダが第２の処理対象のピクチャ・ブロックの最終的な動きベクトルを取得する処理である。
【０３５５】
２００８：第２の処理対象のピクチャ・ブロックの動きベクトル残差を、ターゲット・ストレージ空間に記憶する。
【０３５６】
ターゲット・ストレージ空間は、デコーダによって動きベクトル残差を記憶するための空間である。例えば、ターゲット・ストレージ空間は、図３の参照ピクチャ・ストレージ９２であってもよい。
【０３５７】
関連技術におけるマージ・モードでは、ターゲット・ストレージ空間はゼロ・ベクトルを記憶するか、又はターゲット・ストレージ空間はデータを記憶しないことに留意すべきである。しかしながら、本願のこの実施形態におけるマージ・モードでは、処理対象のピクチャ・ブロックの動きベクトル残差がターゲット・ストレージ空間に記憶され、その結果、ターゲット・ストレージ空間を完全に使用することが可能であるだけでなく、他のピクチャ・ブロックの動きベクトルが第２の処理対象のピクチャ・ブロックに対して必要とされる場合に、他のピクチャ・ブロックの動きベクトルを柔軟に選択することも可能である。ステップ２００２及び２００７において示されるように、デコーダの復号化効率は更に改善される。
【０３５８】
更に、一部の実装では、ステップ２００８において、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルが、代替的に、第２の処理対象のピクチャ・ブロックの動きベクトル残差として使用され、ターゲット・ストレージ空間に記憶されることが可能であり、即ち、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルがターゲット・ストレージ空間に記憶され、第２の処理対象のピクチャ・ブロックの動きベクトル残差は、ターゲット・ストレージ空間に記憶されない。この場合において、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルが別のブロックに必要とされる場合、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルと、第２の処理対象のピクチャ・ブロックの動きベクトル残差とを加算する必要なしに、デコーダのターゲット・ストレージ空間から直接的に取得されることが可能である。
【０３５９】
このステップ２００８における具体的なストレージ方法については、図２１を参照されたい。
【０３６０】
ステップ２００７及び２００８の間のシーケンスには厳密な要件がないことに留意すべきであり、デコーダは代替的にステップ２００８の前にステップ２００７を実行してもよい。これは本願のこの実施形態で具体的に限定されない。
【０３６１】
２００９：デコーダは、第２の処理対象のピクチャ・ブロックの動きベクトル残差と初期の動き差分とに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得する。
【０３６２】
ピクチャ情報は、第２の処理対象のピクチャ・ブロックのオリジナル・ピクチャを識別するために使用されるピクセル情報を含む。
【０３６３】
デコーダは、第２の処理対象のピクチャ・ブロックの動きベクトル残差と初期の動き差分とに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得する。これについては、図３を参照されたい。詳細はここで再び説明されない。
【０３６４】
相応して、デコーダは、代替的に、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得してもよい。
【０３６５】
前述の実装では、現在の復号化ブロックを復号化する場合に、デコーダは、参照ブロックの最終的な動きベクトルの代わりに、現在の復号化ブロックの予測された動きベクトルとして、参照ブロックの更新されていない初期の動きベクトルを使用する。このように、参照ブロックの動きベクトルが現在の復号化ブロックに対して必要とされる場合、関連するステップは、参照ブロックの最終的な動きベクトルが更新されるまで待機する必要なしに実行されることが可能であり、復号化遅延が確実に削減されることを保証する一方、復号化効率は、動きベクトルが更新されるので改善される。
【０３６６】
動きベクトル・ストレージ方法を更に反映するために、具体的な実施形態が、ストレージ・ステップを説明するためにここで使用される。具体的な説明は次のとおりである：
【０３６７】
マージ・モードでは、各々の予測方向において２つのＭＶが存在する可能性があり、それぞれ第１ＭＶ情報及び第２ＭＶ情報である。例えば、第１ＭＶ及び第２ＭＶはそれぞれ、参照ブロックの初期の動きベクトル、及び参照ブロックの最終的な動きベクトルであってもよい。ＭＶＤ導出プロセスはマージ・モードに導入される。例えば、前方予測プロセスにおいて、第１ＭＶがＭＶ０であり、第２ＭＶがＭＶ０’である場合に、派生的な関係が存在する：ＭＶ０’＝ＭＶ０＋（−）ＭＶＤ０。２つのＭＶ、例えば初期の動きベクトルのインデックス値と以前のＭＶＤ、即ち、２つのＭＶ間の差分とを記憶することによって、第１ＭＶが特定の条件下で使用されることが可能であり、第２ＭＶが特定の条件下で使用されることが可能であり、遅延を回避する。
【０３６８】
特定の条件については、ステップ１９０２又は２００２を参照されたい。詳細はここで再び説明されない。
【０３６９】
実現可能な実装において、
非マージ・モードでは、ターゲット・ストレージ空間が、参照ブロックの動きベクトル残差を記憶するために使用され、参照ブロックの動きベクトル残差は、参照ブロックの最終的な動きベクトルと参照ブロックの予測された動きベクトルとの差分である。
マージ・モードでは、ターゲット・ストレージ空間は、選択された最終的な動きベクトルを記憶するために使用されるか、又はターゲット・ストレージ空間は、参照ブロックの初期の動きベクトルと選択された最終的な動きベクトルとの間の差分を記憶するために使用される。
【０３７０】
本願の別の実施形態は次のとおりである：
【０３７１】
図２２に示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢラインのレンジにはない。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３７２】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３７３】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３７４】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３７５】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３７６】
本願の別の実施形態は次のとおりである：
【０３７７】
図２２に示すように、現在の復号化ブロックは第１復号化ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢレンジにはない。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３７８】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。
新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３７９】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３８０】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３８１】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３８２】
本願の別の実施形態は次のとおりである：
【０３８３】
図２２に示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢラインのレンジにはない。
この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３８４】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３８５】
次いで、（−２１，１９）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１／２ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１１）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１／２ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、
前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用される。
【０３８６】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３８７】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３８８】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３８９】
本願の別の実施形態は次のとおりである：
【０３９０】
現在の復号化ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が取得される。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２１，１８）であり、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（１，１２）であり、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３９１】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３９２】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３９３】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３９４】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３９５】
幾つかの実施形態では、処理対象のピクチャ・ブロックは複数のサブ・ブロックを含んでもよく、コーデックは、各々のサブ・ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの最終的な動きベクトルを取得することができる。可能な実装において、各々のサブ・ブロックは、初期の動きベクトルと、サブ・ブロックの複数の前もってセットされたオフセット・ベクトルとを有する。コーデックは、任意のサブ・ブロックの複数の候補の最終的な動きベクトルを得るために、複数のサブ・ブロックのうちの任意の１つの初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えることができる。コーデックは、任意のサブ・ブロックの最終的な動きベクトルとして、任意のサブ・ブロックの複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終的な動きベクトルを使用する。同様に、コーデックは、各サブ・ブロックの最終的な動きベクトルを得ることができ、次いで、コーデックは、各サブ・ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの最終的な動きベクトルを得ることができる。各サブ・ブロックの最終的な動きベクトルに基づいて処理対象のピクチャ・ブロックの最終的な動きベクトルを得るプロセスは、本発明のこの実施形態において具体的に限定されない。
【０３９６】
任意のサブ・ブロックの複数の候補の最終的な動きベクトルを得る前に、コーデックは、先ず、任意のサブ・ブロックの初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを決定する必要があることに留意すべきである。任意のサブ・ブロックの初期の動きベクトルを決定する方法は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定する方法に類似しており、本発明のこの実施形態では説明しない。更に、任意のサブ・ブロックの複数の前もってセットされたオフセット・ベクトルを決定する方法は、処理対象のピクチャ・ブロックの複数の前もってセットされたオフセット・ベクトルを決定する方法に類似しており、本発明のこの実施形態では説明しない。
【０３９７】
図２３は、本願の実施形態による動きベクトル取得装置２３００の概略ブロック図である。装置２３００は：
処理対象のピクチャ・ブロックの参照ブロックを決定するように構成された決定モジュール２３０１であって、参照ブロック及び処理対象のピクチャ・ブロックは前もってセットされた時間的又は空間的な相関を有し、参照ブロックは、初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを有し、参照ブロックの初期の動きベクトルは、参照ブロックの予測された動きベクトルに基づいて取得され、参照ブロックの予測ブロックは、初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて取得される、決定モジュールと、
処理対象のピクチャ・ブロックの予測された動きベクトルとして、参照ブロックの初期の動きベクトルを使用するように構成された取得モジュール２３０２とを含む。
【０３９８】
実現可能な実装において、取得モジュール２３０２は、参照ブロックの予測された動きベクトルを、参照ブロックの初期の動きベクトルとして使用するように構成されるか、又は参照ブロックの予測された動きベクトルと参照ブロックの動きベクトル差分とを加算して、参照ブロックの初期の動きベクトルを取得するように更に構成される。
【０３９９】
実現可能な実施において、取得モジュール２３０２は、更に、参照ブロックの時間的な予測ブロックとして機能するように、参照ブロックの初期の動きベクトルによって示されるピクチャ・ブロックを、参照ブロックの参照フレームから取得し；１つ以上の実際の動きベクトルを取得するために、参照ベクトルの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを追加し（ここで、それぞれの実際の動きベクトルは１つ以上の探索位置を示す）、１つ以上の実際の動きベクトルによって示される１つ以上の探索位置において１つ以上の候補の予測ブロックを取得し（ここで、それぞれの探索位置は１つの候補の予測ブロックに対応する）、時間的な予測ブロックからの最小ピクセル差分を有する候補の予測ブロックを、参照ブロックの予測ブロックとして、１つ以上の候補の予測ブロックから選択するように構成される。
【０４００】
実現可能な実装において、装置２３００は、双方向予測に使用され、参照フレームは、第１方向の参照フレームと第２方向の参照フレームとを含み、初期の動きベクトルは、第１方向の初期の動きベクトルと第２方向の初期の動きベクトルとを含み、取得モジュール２３０２は、具体的には、参照ブロックの第１方向の参照フレームから、参照ブロックの第１方向の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得し、参照ブロックの第２方向の参照フレームから、参照ブロックの第２方向の初期の動きベクトルによって示される第２のピクチャ・ブロックを取得し、参照ブロックの時間的な予測ブロックを取得するために、第１ピクチャ・ブロック及び第２ピクチャ・ブロックに対して重み付け処理を実行するように構成される。
【０４０１】
実現可能な実施において、取得モジュール２３０２は、処理対象のピクチャ・ブロックの予測された動きベクトルを、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用するように具体的に構成される。
【０４０２】
実現可能な実施において、取得モジュール２３０２は、処理対象のピクチャ・ブロックの予測された動きベクトルと、処理対象のピクチャ・ブロックの動きベクトル差分
とを加算して、処理対象のピクチャ・ブロックの初期の動きベクトルを取得するように、具体的に構成される。
【０４０３】
実現可能な実装において、装置２３００は、ビデオ復号化に使用され、処理対象のピクチャ・ブロックの動きベクトル差分は、ビットストリームにおける第１識別情報を解析することによって得られる。
【０４０４】
実現可能な実装において、装置２３００は、ビデオ復号化に使用され、決定モジュール２３０１は、第２識別情報を得るためにビットストリームを解析し、第２識別情報に基づいて処理対象のピクチャ・ブロックの参照ブロックを決定するように、具体的に構成される。
【０４０５】
実現可能な実装において、装置２３００は、ビデオ符号化に使用され、決定モジュール２３０１は、処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックから、処理対象のピクチャ・ブロックの参照ブロックとして、最小レート歪コストを有する候補参照ブロックを選択するように、具体的に構成される。
【０４０６】
図２４は、本願の実施形態によるビデオ・コーディング・デバイスの概略ブロック図である。デバイス２４００は、エンコーダに適用されてもよいし、又はデコーダに適用されてもよい。デバイス２４００はプロセッサ２４０１及びメモリ２４０２を含む。プロセッサ２４０１及びメモリ２４０２は互いに（例えば、バス２４０４を介して）接続される。可能な実装において、デバイス２４００は、トランシーバ２４０３を更に含んでもよい。トランシーバ２４０３は、プロセッサ２４０１及びメモリ２４０２に接続され、データを受信／送信するように構成される。
【０４０７】
メモリ２４０２は、ランダム・アクセス・メモリ（random  access  memory，RAM）、リード・オンリー・メモリ（read−only  memory，ROM）、消去可能なプログラマブル。リード・オンリー・メモリ（erasable  programmable  read  only  memory，EPROM）、又はコンパクト・ディスク・リード・オンリー・メモリ（compact  disc  read−only  memory，CD−ROM）を含むが、これらに限定されない。メモリ２４０２は、関連するプログラム・コード及びビデオ・データを記憶するように構成される。
【０４０８】
プロセッサ２４０１は、１つ以上の中央処理ユニット（central  processing  unit，CPU）であってもよい。プロセッサ２４０１が１つのＣＰＵである場合、ＣＰＵは、シングル・コアＣＰＵ又はマルチ・コアＣＰＵであってもよい。
【０４０９】
プロセッサ２４０１は、メモリ２４０２に記憶されたプログラム・コードを読み込み、図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実現可能な実装における演算を実行するように構成される。
【０４１０】
例えば、本願の実施形態は、コンピュータ読み取り可能な記憶媒体を更に提供する。コンピュータ読み取り可能な記憶媒体は命令を記憶する。命令がコンピュータ上で実行される場合に、コンピュータは、
図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実装可能な実装における演算を実行することを可能にする。
【０４１１】
例えば、本願の実施形態は、命令を含むコンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータ上で実行される場合に、コンピュータは、図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実装可能な実装における演算を実行することを可能にする。
【０４１２】
図２５は、本願の実施形態による動きベクトル取得装置を示す。装置は、決定モジュール２５０１と、第１取得モジュール２５０２と、第２取得モジュール２５０３とを含む。
【０４１３】
決定モジュール２５０１は、ステップ１９０４を実行するように構成される。
【０４１４】
第１取得モジュール２５０２は、ステップ１９０７を実行するように構成される。
【０４１５】
第２取得モジュール２５０３は、ステップ１９０７を実行するように構成される。
【０４１６】
オプションとして、参照ブロックが、前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが同じ行に位置することを含む。
相応して、参照ブロックが、前もってセットされたレンジ外にあることは、ステップ１９０７に関連して、参照ブロックが位置するコーディング・ツリー・ブロックと、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置することを含む。
【０４１７】
オプションとして、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックと処理対象のピクチャ・ブロックとが同じコーディング・ツリー・ブロックに位置することを含む。
相応して、参照ブロックが前もってセットされたレンジ外にあることは、ステップ１９０７に関連して、参照ブロックと処理対象のピクチャ・ブロックとが異なるコーディング・ツリー・ブロックに位置することを含む。
【０４１８】
オプションとして、
参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含む。
相応して、参照ブロックが前もってセットされたレンジ外にあることは、ステップ１９０７に関し、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じではないこと、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む。
【０４１９】
図２６は、本願の実施形態による動きベクトル残差決定装置を示す。装置は、解析モジュール２６０１、加算モジュール２６０２、決定モジュール２６０３、及び取得モジュール２６０４を含む。
【０４２０】
解析モジュール２６０１は、ステップ２００１を実行するように構成される。
【０４２１】
加算モジュール２６０２は、ステップ２００２を実行するように構成される。
【０４２２】
決定モジュール２６０３は、ステップ１４２２を実行するように構成される。
【０４２３】
取得モジュール２６０４は、ステップ２００８を実行するように構成される。
【０４２４】
オプションとして、装置は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルを含み；第１の最終的な動きベクトルと第１の初期の動きベクトルとは処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し；及び
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用することは：
第１の最終的な動きベクトルと第１の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用することを含む。
【０４２５】
図２７は、本願の実施形態による動きベクトル・データ記憶装置を示す。装置は、第１解析モジュール２７０１、取得モジュール２７０２、第２解析モジュール２７０３、及び記憶モジュール２７０４を含む。
【０４２６】
第１解析モジュール２７０１は、ステップ２００１を実行するように構成される。
【０４２７】
取得モジュール２７０２は、ステップ２００７を実行するように構成される。
【０４２８】
第２解析モジュール２７０３は、ステップ２００１を実行するように構成される。
【０４２９】
記憶モジュール２７０４は、ステップ２００８を実行するように構成される
【０４３０】
当業者は、本明細書で開示された実施形態で説明される例との組み合わせにおいて、ユニット及びアルゴリズム・ステップは、電子ハードウェア、又はコンピュータ・ソフトウェアと電子ハードウェアとの組み合わせによって実現されることが可能であることを認識するであろう。機能がハードウェア又はソフトウェアによって実行されるかどうかは、特定のアプリケーション及び技術的解決策の設計制約条件に依存する。当業者は、それぞれの特定のアプリケーションについて、説明された機能を実装するために様々な方法を使用することが可能であるが、そのような実装が本願の範囲を超えるものであると考えるべきではない。
【０４３１】
便宜上及び簡潔な説明の目的により、前述のシステム、装置、及びユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスを参照されたいということが、当業者には明らかに理解されるであろう。詳細はここで再び説明しない。
【０４３２】
前述の実施形態のすべて又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されることが可能である。ソフトウェアが実施形態を実施するために使用される場合、実施形態は、コンピュータ・プログラム製品の形式で完全に又は部分的に実現されることが可能である。コンピュータ・プログラム製品は、１つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がコンピュータ上においてロードされ実行される場合に、本願の実施形態に従って、手順又は機能の全部又は一部が生じる。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されてもよく、又はコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体へ送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバー、又はデータ・センターから他のウェブサイト、コンピュータ、サーバー、又はデータ・センターに、有線（例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線）又は無線（例えば、赤外線、マイクロ波など）方式で送信されることが可能である。コンピュータ読み取り可能な記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、又は１つ以上の使用可能な媒体を統合するサーバー又はデータ・センターなどのデータ・ストレージ・デバイスであってもよい。使用可能な媒体は、磁気媒体（例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ）、光媒体（例えば、デジタル多用途ディスク）、半導体媒体（例えば、固体ドライブ）等であってもよい。
【０４３３】
前述の実施形態では、各々の実施形態における説明は個々の焦点を有する。実施形態において詳細には説明されていない部分については、他の実施形態における関連する説明を参照されたい。
【０４３４】
以上の説明は、本願の特定の実装を説明しているに過ぎず、本願の保護範囲を限定するようには意図されていない。本願で開示される技術的範囲の中で当業者により容易に把握される任意の変形又は置換は、本願の保護範囲内にあるものとする。従って、本願の保護範囲は、クレームの保護範囲に従うものとする。
【図１】
2021536699.tif 000003
【図２】
2021536699.tif 000004
【図３】
2021536699.tif 000005
【図４】
2021536699.tif 000006
【図５】
2021536699.tif 000007
【図６】
2021536699.tif 000008
【図７】
2021536699.tif 000009
【図８】
2021536699.tif 000010
【図９】
2021536699.tif 000011
【図１０】
2021536699.tif 000012
【図１１】
2021536699.tif 000013
【図１２】
2021536699.tif 000014
【図１３】
2021536699.tif 000015
【図１４】
2021536699.tif 000016
【図１５】
2021536699.tif 000017
【図１６】
2021536699.tif 000018
【図１７Ａ】
2021536699.tif 000019
【図１７Ｂ】
2021536699.tif 000020
【図１８】
2021536699.tif 000021
【図１９】
2021536699.tif 000022
【図２０】
2021536699.tif 000023
【図２１】
2021536699.tif 000024
【図２２】
2021536699.tif 000025
【図２３】
2021536699.tif 000026
【図２４】
2021536699.tif 000027
【図２５】
2021536699.tif 000028
【図２６】
2021536699.tif 000029
【図２７】
2021536699.tif 000030
【手続補正書】
【提出日】令和3年4月23日(2021.4.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動きベクトル残差決定方法であって、
ビットストリームを解析して第２識別情報を取得するステップであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、ステップと、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて複数の候補の最終的な動きベクトルを取得するステップと、
前記複数の候補の最終的な動きベクトルの中で最小の歪コストに対応する候補の最終的な動きベクトルを、最終的な動きベクトルとして決定するステップと、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップと
を含む方法。
【請求項２】
前記方法は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む、請求項１に記載の方法。
【請求項３】
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、
前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む、請求項２に記載の方法。
【請求項４】
前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、  
前記第１の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの前記第１動きベクトル残差として使用するステップを含む、請求項２に記載の方法。
【請求項５】
前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用する前記ステップは、  
前記第２の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む、請求項４に記載の方法。
【請求項６】
動きベクトル残差決定装置であって、
ビットストリームを解析して第２識別情報を取得するように構成された解析モジュールであって、前記第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、解析モジュールと、
前記初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて複数の候補の最終的な動きベクトルを取得するように構成された合計モジュールと、
前記複数の候補の最終的な動きベクトルの中で最小の歪コストに対応する候補の最終的な動きベクトルを、前記最終的な動きベクトルとして決定するように構成された決定モジュールと、
前記最終的な動きベクトルと前記初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は前記最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの動きベクトル残差として使用するように構成された取得モジュールと
を含む装置。
【請求項７】
前記装置は双方向インター予測に使用され、前記最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、前記初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとは、前記処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
前記取得モジュールは、更に、
前記第１の最終的な動きベクトルと前記第１の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するように構成されている、請求項６に記載の装置。
【請求項８】
前記取得モジュールは、前記第２の最終的な動きベクトルと前記第２の初期の動きベクトルとの間の差分を、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するように更に構成されている、請求項７に記載の装置。
【請求項９】
前記取得モジュールは、前記第１の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するように更に構成されている、請求項７に記載の装置。
【請求項１０】
前記取得モジュールは、前記第２の最終的な動きベクトルを、前記処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するように更に構成されている、請求項９に記載の装置。
【請求項１１】
プログラムを記録したコンピュータ読み取り可能な記憶媒体であって、前記プログラムは、請求項１ないし５のうちの何れか１項に記載の方法を前記コンピュータに実行させる記憶媒体。
【請求項１２】
請求項１ないし５のうちの何れか１項に記載の方法をコンピュータに実行させるように構成された、媒体に記憶されるコンピュータ・プログラム。
【請求項１３】
コンピュータ実行可能命令を記憶するメモリと、
前記メモリに動作可能に結合されたプロセッサであって、前記プロセッサは、請求項１ないし５のうちの何れか１項に記載の方法を実行するために、前記コンピュータ実行可能命令を実行するように構成されている、プロセッサと
を含む動きベクトル残差決定装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、２０１８年９月３日に出願された「ビデオ・コーディング方法及び装置」と題する中国特許出願第２０１８１１０２０１８１．９号に対する優先権を主張しており、その全体が参照により本願に組み込まれる。
【０００２】
本願は、２０１８年１０月２９日に出願された「動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体」と題する中国特許出願第２０１８１１２７１７２６．３号に対する優先権を主張しており、その全体が参照により本願に組み込まれる。
【０００３】
技術分野
本願は、ビデオ圧縮技術の分野、特に動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体に関連する。
【０００４】
背景
日常生活において、ビデオ関連アプリケーションはますます人気を集めている。コンピュータ技術の成熟とともに、ビデオ処理技術もまた大きく発展してきた。ビデオ・コーディング技術は目覚ましく発展してきた。ピクチャのフレーム内のコーディング・ユニットが符号化される場合に、冗長性は、コーディング・ユニットと予測ユニットとの間の相関を利用することにより、可能な限り排除されることが可能である。復号化の際に、冗長性が除去された後に取得された情報は、コーディング・ユニットに対応するピクチャ情報を取得するために復号化される。
【０００５】
復号化処理は次のようであってもよい：コーディング・ユニットの動き情報を取得した後に、デコーダは、動き情報に基づいて、候補の予測された動きベクトルのリストを設定し、取得された動き情報に基づいて、候補の予測された動きベクトルのリストから、最適な予測された動きベクトルを選択し、最適な予測された動きベクトルで示される参照ユニットを開始点として使用することにより、コーディング・ユニットに最も類似する予測ユニットを探索し、候補の予測された動きベクトルのリストの中で最適な予測された動きベクトルを、予測ユニットの動きベクトルに更新し（即ち、更新された予測された動きベクトルはコーディング・ユニットの予測された動きベクトルであり）、更新された予測された動きベクトルと予測ユニットとに基づいて、コーディング・ユニットに対応するピクチャ情報を取得する。
【０００６】
本願を実現するプロセスにおいて、発明者は、関連する技術が少なくとも以下の欠点を有することを見出している：デコーダは、復号化中に複数のコーディング・ユニットを同時に復号化する可能性がある。しかしながら、現在のコーディング・ユニットの予測された動きベクトルが、別のコーディング・ユニットに使用されることを必要とする場合、復号化は、現在のコーディング・ユニットの最適な予測された動きベクトルが更新された後に限って実行することが可能であり、その結果、遅延が非常に発生しやすい。
【発明の概要】
【０００７】
本願の実施形態は、関連技術における復号化遅延問題を解決するために、動きベクトル取得方法及び装置、コンピュータ・デバイス、並びに記憶媒体を提供する。
【０００８】
ある態様によれば、本願は動きベクトル取得方法を提供し、これは、
処理対象のピクチャ・ブロックの参照ブロックを決定するステップであって、参照ブロックと処理対象のピクチャ・ブロックとはピクチャの同じフレームに位置する、ステップと、
参照ブロックが前もってセットされたレンジ内にある場合に、参照ブロックの初期の動きベクトルに基づいて、処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、前もってセットされたレンジは、処理対象のピクチャ・ブロックの位置に基づいて決定される、ステップと、
参照ブロックが前もってセットされたレンジ外にある場合に、参照ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの動きベクトルを取得するステップであって、最終的な動きベクトルは初期の動きベクトルに基づいて取得される、ステップとを含む。
【０００９】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、同じ行に位置することを含み、
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックが位置するコーディング・ツリー・ブロックと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、異なる行に位置することを含む。
【００１０】
前述の可能な実装に基づいて、異なる前もってセットされたレンジが提供される可能性があり、その結果、処理対象のピクチャ・ブロックの動きベクトルは、異なる前もってセットされたレンジに基づいて決定されることが可能であり、処理対象のピクチャ・ブロックの複数の動きベクトルを選択することが可能である。
【００１１】
可能な実装において、参照ブロックが位置するコーディング・ツリー・ブロックと処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが、異なる行に位置し、参照ブロックが位置するコーディング・ツリー・ブロックは、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの上又は左上にある。
【００１２】
前述の可能な実装に基づいて、複数の前もってセットされた条件を動きベクトル選択のために提供することができるように、別の前もってセットされたレンジを提供することができる。
【００１３】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックと処理対象のピクチャ・ブロックとが、同じコーディング・ツリー・ブロックに位置することを含み、
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックと処理対象のピクチャ・ブロックとが、異なるコーディング・ツリー・ブロックに位置することを含む。
【００１４】
前述の可能な実装に基づいて、複数の可能な特定の前もってセットされたレンジが提供されてもよい。
【００１５】
可能な実装において、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含み、及び
相応して、参照ブロックが前もってセットされたレンジ外にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じではないこと、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む。
【００１６】
上記の可能な実装に基づいて、複数の可能な特定の前もってセットされたレンジが提供されてもよい。
【００１７】
可能な実装において、処理対象のピクチャ・ブロックの参照ブロックを決定するステップは、
１つ以上の前もってセットされた候補参照ブロックを参照ブロックとして、前もってセットされた順序で連続的に決定するステップであって、候補参照ブロックは、処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップを含む。
【００１８】
前述の実装に基づいて、処理対象のピクチャ・ブロックの参照ブロックが決定されてもよく、次いで、参照ブロックに基づいて処理対象のピクチャ・ブロックの初期の動きベクトルが決定されてもよい。
【００１９】
可能な実装において、処理対象のピクチャ・ブロックの参照ブロックを決定するステップは、
ビットストリームを解析し、１つ以上の第１識別情報を取得するステップと、
１つ以上の第１識別情報に基づいて、処理対象のピクチャ・ブロックの複数の候補参照ブロックから、参照ブロックを決定するステップであって、候補参照ブロックは、処理対象のピクチャ・ブロックとの前もってセットされた空間的な位置関係を有するピクチャ・ブロックを含む、ステップとを含む。
【００２０】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの参照ブロックは、ビットストリーム内の識別情報に基づいて決定されることが可能であり、次いで処理対象のピクチャ・ブロックの初期の動きベクトルは、参照ブロックに基づいて決定されることが可能である。
【００２１】
可能な実装において、最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得することと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定することとを含む。
【００２２】
前述の可能な実装に基づいて、最小の歪コストに対応する最終的な動きベクトルの候補が、最終的な動きベクトルとして使用され、その結果、最終的な動きベクトルはより正確になる。
【００２３】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、第１の最終的な動きベクトルとして決定することであって、第１の最終的な動きベクトルは、複数の前もってセットされたオフセット・ベクトルにおける第１オフセット・ベクトルに対応する、ことと、
第２オフセット・ベクトルを取得することであって、第２オフセット・ベクトルのサイズは第１オフセット・ベクトルのものに等しく、第２オフセット・ベクトルの方向は前記第１オフセット・ベクトルのものと逆である、ことと、
第２の初期の動きベクトルと第２オフセット・ベクトルとを加えて第２の最終的な動きベクトルを取得することとを含む。
【００２４】
前述の可能な実装に基づいて、最終的な動きベクトルは、双方向予測モードにおける初期の動きベクトルに基づいて取得される。
【００２５】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルは初期の動きベクトルに基づいて取得されることは、
第１の初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて第１の最終的な動きベクトルの複数の候補を取得することと、
第１の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第１の最終的な動きベクトルの候補を、第１の最終的な動きベクトルとして決定すること、
第２の初期の動きベクトルと複数の前もってセットされた第２オフセット・ベクトルとを別々に加えて第２の最終的な動きベクトルの複数の候補を取得することと、
第２の最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する第２の最終的な動きベクトルの候補を、第２の最終的な動きベクトルとして決定することとを含む。
【００２６】
上記の可能な実装に基づいて、双方向予測モードにおける初期の動きベクトルに基づいて最終的な動きベクトルを取得する別の方法が提供され、その結果、双方向予測モードにおける最終的な動きベクトルを取得する複数の方法を提供することが可能である。
【００２７】
第２態様によれば、本願は動きベクトル残差決定方法を提供し、これは、
ビットストリームを解析して第２識別情報を取得するステップであって、第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用される、ステップと、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得するステップと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定するステップと、
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するか、又は最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップとを含む。
【００２８】
可能な実装において、方法は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルとを含み、第１の最終的な動きベクトルと第１の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し、
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第１の最終的な動きベクトルと第１の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む。
【００２９】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル残差が、双方向インター予測モードにおいて決定されることが可能である。
【００３０】
可能な実装において、最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第２の最終的な動きベクトルと第２の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む。
【００３１】
可能な実装において、最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、  
第１の最終的な動きベクトルを、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用するステップを含む。
【００３２】
可能な実装において、最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトル残差として使用するステップは、
第２の最終的な動きベクトルを、処理対象のピクチャ・ブロックの第２動きベクトル残差として使用するステップを更に含む。
【００３３】
前述の複数の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル残差を決定する複数の方法が提供され、その結果、エンコーダ及びデコーダは、動きベクトル残差に基づいて符号化効率及び復号化効率を改善することができる。
【００３４】
第３態様によれば、本願は動きベクトル・データ・ストレージ方法を提供し、これは、
ビットストリームを解析して第２識別情報と第３識別情報とを取得するステップであって、第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用される、ステップと、
初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するステップと、
第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示す場合に、ビットストリームを解析して動きベクトル残差を取得し、動きベクトル残差をターゲット・ストレージ空間に記憶するステップと、
第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示す場合に、最終的な予測された動きベクトルと初期の予測された動きベクトルとの間の差分をターゲット・ストレージ空間に記憶するか、又は最終的な予測された動きベクトルをターゲット・ストレージ空間に記憶するステップとを含む。
【００３５】
可能な実装において、第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していることを示すことは、
第３識別情報が、処理対象のピクチャ・ブロックの予測モードはＡＭＶＰモードであることを示すことを含む。
【００３６】
前述の可能な実装に基づいて、処理対象のピクチャ・ブロックの動きベクトル・データは、複数の予測モードで記憶されることが可能である。
【００３７】
可能な実装において、第３識別情報が、ビットストリームは処理対象のピクチャ・ブロックの動きベクトル残差を搬送していないことを示すことは、
第３識別情報が、処理対象のピクチャ・ブロックの予測モードはマージ・モード又はスキップ・モードであることを示すことを含む。
【００３８】
前述の可能な実装に基づいて、異なる識別情報が、異なる予測モードを区別するために使用され、その結果、処理対象のピクチャ・ブロックの動きベクトル・データは、複数の予測モードで記憶されることが可能である。
【００３９】
可能な実装において、初期の予測された動きベクトルと複数の前もってセットされたオフセット・ベクトルとに基づいて、最終的な予測された動きベクトルを取得するステップは、
初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えて最終的な動きベクトルの複数の候補を取得するステップと、
最終的な動きベクトルの複数の候補の中で最小の歪コストに対応する最終的な動きベクトルの候補を、最終的な動きベクトルとして決定するステップとを含む。
【００４０】
上記の可能な実装に基づいて、歪コストを使用することで最終的に予測される動きベクトルを取得する精度はより高くなり、更に、記憶される動きベクトル・データはより正確になる。
【００４１】
第４態様によれば、本願は、上記の動きベクトル取得方法を実行するように構成された動きベクトル取得装置を提供する。具体的には、動きベクトル取得装置は、第１態様又は第１態様のオプション的な方法のうちの任意の１つで提供される動きベクトル取得方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル取得方法に対応する態様である。
【００４２】
第５態様によれば、本願は、上記の動きベクトル残差決定方法を実行するように構成された動きベクトル残差決定装置を提供する。具体的には、動きベクトル残差決定装置は、第２態様又は第２態様のオプション的な方法のうちの任意の１つで提供される動きベクトル残差決定方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル残差決定方法に対応する態様である。
【００４３】
第６態様によれば、本願は、上記の動きベクトル・データ・ストレージ方法を実行するように構成された動きベクトル・データ・ストレージ装置を提供する。具体的には、動きベクトル・データ・ストレージ装置は、第３態様又は第３態様のオプション的な方法のうちの任意の１つで提供される動きベクトル・データ・ストレージ方法を実行するように構成された機能モジュールを含む。上記の態様は、動きベクトル・データ・ストレージ方法に対応する態様である。
【００４４】
第７態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル取得方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４５】
第８態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル・データ・ストレージ方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４６】
第９態様によれば、本願はコンピュータ・デバイスを提供する。コンピュータ・デバイスはプロセッサとメモリとを含む。メモリは、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル残差決定方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４７】
第１０態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル取得方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４８】
第１１態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル残差決定方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００４９】
第１２態様によれば、本願はコンピュータ読み取り可能な記憶媒体を提供する。記憶媒体は、少なくとも１つの命令を記憶し、命令は、前述の動きベクトル・データ・ストレージ方法において実行される演算を実現するために、プロセッサによってロードされ実行される。
【００５０】
本願において提供される技術的解決策は、少なくとも以下の有益な効果を含む：
【００５１】
処理対象のピクチャ・ブロックの初期の動きベクトルは、参照ブロックと処理対象のピクチャ・ブロックとの間の位置関係を使用することにより決定される。参照ブロックと処理対象のピクチャ・ブロックとが、前もってセットされたレンジ内にある場合、デコーダは、参照ブロックの初期の動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用する。参照ブロックと処理対象のピクチャ・ブロックとが、前もってセットされたレンジ外にある場合、デコーダは、参照ブロックの最終的な動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用する。この場合に、処理対象のピクチャ・ブロックが、復号化の際に、参照ブロックの最終的な動きベクトルを使用することによって復号化されることを必要とする場合、デコーダは、処理対象のピクチャ・ブロックを使用することができるように、参照ブロックの初期の動きベクトルを、処理対象のピクチャ・ブロックの動きベクトルとして使用することが可能であり、これにより、参照ブロックの最終的な動きベクトルが得られた後に限り、処理対象のピクチャ・ブロックの動きベクトルを取得することができるというケースを回避し、復号化効率を向上させることができる。
【図面の簡単な説明】
【００５２】
【図１】本願の実施形態で使用するために構成されることが可能なビデオ・コーディング・システムの一例のブロック図である。
【００５３】
【図２】本願の実施形態で使用するために構成されることが可能なビデオ・エンコーダの一例のシステム・ブロック図である。
【００５４】
【図３】本願の実施形態で使用するために構成されることが可能なビデオ・デコーダの一例のシステム・ブロック図である。
【００５５】
【図４】本願の実施形態で使用するために構成されることが可能なインター予測モジュールの一例の概略ブロック図である。
【００５６】
【図５】コーディング・ユニット及びコーディング・ユニットに関連する隣接するピクチャ・ブロックの一例の概略図である。
【００５７】
【図６】候補の予測された動きベクトルのリストを構築する実装例のフローチャートである。
【００５８】
【図７】組み合わされた候補の動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００５９】
【図８】スケーリングされた候補の動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００６０】
【図９】ゼロ動きベクトルをマージ・モード候補の予測された動きベクトルのリストに追加する実装例の概略図である。
【００６１】
【図１０】マージ予測モードの実装例のフローチャートである。
【００６２】
【図１１】高度な動きベクトル予測モードの実装例のフローチャートである。
【００６３】
【図１２】本願の実施形態で使用するために構成されることが可能なビデオ・デコーダによって実行される動き補償の実装例のフローチャートである。
【００６４】
【図１３】本願の実施形態によるビデオ符号化中の動きベクトル更新方法の概略フローチャートである。
【００６５】
【図１４】本願の実施形態によるビデオ復号化中の動きベクトル更新方法の概略フローチャートである。
【００６６】
【図１５】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６７】
【図１６】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６８】
【図１７Ａ】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【図１７Ｂ】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００６９】
【図１８】本願の実施形態による動きベクトルを更新する概略フローチャートである。
【００７０】
【図１９】本願の実施形態による動きベクトル取得方法の概略フローチャートである。
【００７１】
【図２０】本願の実施形態による動きベクトル取得方法の概略フローチャートである。
【００７２】
【図２１】本願の実施形態に従って指定されたレンジ内で動きベクトルを選択する概略図である。
【００７３】
【図２２】本願の実施形態による現在の予測ブロックの取得方法の概略図である。
【００７４】
【図２３】本願の実施形態によるビデオ復号化中の動きベクトル取得装置の概略ブロック図である。
【００７５】
【図２４】本願の実施形態によるビデオ・コーディング・デバイスの概略ブロック図である。
【００７６】
【図２５】本願の実施形態による動きベクトル取得装置の構造図である。
【００７７】
【図２６】本願の実施形態による動きベクトル残差決定装置の構造図である。
【００７８】
【図２７】本願の実施形態による動きベクトル・データ・ストレージ装置の構造図である。
【発明を実施するための形態】
【００７９】
本願の目的、技術的解決策、及び利点をより明確化するために、以下、添付図面を参照して、本願の実装を更に詳細に説明する。
【００８０】
図１は、本願の実施形態によるビデオ・コーディング・システム１０の概略ブロック図である。図１に示すように、システム１０はソース装置１２を含む。ソース装置１２は、後に宛先装置１４によって復号化されるべき符号化されたビデオ・データを生成する。ソース装置１２及び宛先装置１４は、デスクトップ・コンピュータ、ノートブック・コンピュータ、タブレット・コンピュータ、セット・トップ・ボックス、「スマート」フォンのような電話ハンドセット、「スマート」タッチパッド、テレビ、カメラ、ディスプレイ装置、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング送信装置などを含む広範囲の装置の任意の何れかを含む可能性がある。幾つかの用途では、ソース装置１２及び宛先装置１４は、無線通信用に装備されていてもよい。
【００８１】
宛先装置１４は、リンク１６を介して、復号化対象の符号化されたビデオ・データを受信することができる。リンク１６は、符号化されたビデオ・データを、ソース装置１２から宛先装置１４へ送信することが可能な任意のタイプの媒体又は装置を含むことができる。実現可能な実装において、リンク１６は、ソース装置１２が、符号化されたビデオ・データを宛先装置１４へリアル・タイムで直接的に送信することを可能にする通信媒体を含む可能性がある。符号化されたビデオ・データは、通信規格（例えば、無線通信プロトコル）に従って変調されることが可能であり、その後、宛先装置１４へ送信される。通信媒体は、任意の無線又は有線の通信媒体、例えば、無線周波数スペクトル又は少なくとも１つの物理的な送信ラインを含む可能性がある。通信媒体は、パケット・ベースのネットワーク（例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、又はインターネットのようなグローバル・ネットワーク）の一部を構成することができる。通信媒体は、ルーター、スイッチ、基地局、又は、ソース装置１２から宛先装置１４への通信を促進するために使用されることが可能な任意の他のデバイスを含む可能性がある。
【００８２】
代替的に、符号化されたデータは出力インターフェース２２からストレージ装置へ出力されてもよい。同様に、符号化されたデータは、入力インターフェースを介してストレージ装置からアクセスされる可能性がある。ストレージ装置は、複数の分散されたデータ記憶媒体又はローカルにアクセスされるデータ記憶媒体、例えば、ハード・ドライブ、ブルーレイ、デジタル多用途ディスク（digital  versatile  disc，DVD）、コンパクト・ディスク・リード・オンリー・メモリ（compact  disc  read−only  memory，CD−ROM）、フラッシュ・メモリ、揮発性又は不揮発性メモリ、又は、符号化されたビデオ・データを記憶するように構成された任意の他の適切なデジタル記憶媒体のうちの任意の１つを含む可能性がある。別の実現可能な実装において、ストレージ装置は、ソース装置１２によって生成された符号化ビデオを保持することが可能なファイル・サーバー又は別の中間的なストレージ装置に対応する可能性がある。宛先装置１４は、ストリーミング送信又はダウンロードにより、ストレージ装置からの記憶されたビデオ・データにアクセスすることが可能である。ファイル・サーバーは、符号化されたビデオ・データを記憶し、符号化されたビデオ・データを宛先装置１４へ送信することが可能な任意のタイプのサーバーであるとすることができる。実現可能な実装において、ファイル・サーバーは、ウェブサイト・サーバー、ファイル転送プロトコル・サーバー、ネットワーク接続ストレージ装置、又はローカル・ディスク・ドライブを含む。宛先装置１４は、インターネット接続を含む任意の標準データ接続を介して、符号化されたビデオ・データにアクセスすることができる。データ接続は、ファイル・サーバーに記憶された符号化されたビデオ・データにアクセスするのに適した無線チャネル（例えば、ワイヤレス・フィデリティ（wireless−fidelity，Wi−Fi）接続）又は有線接続（例えば、ケーブル・モデム）、又はそれらの組み合わせを含む可能性がある。ストレージ装置からの符号化されたビデオ・データの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組み合わせであってもよい。
【００８３】
本願における技術は必ずしも無線のアプリケーションや設定に限定されない。技術は、複数のマルチメディア・アプリケーション、例えば、オーバー・ザ・エアー・テレビジョン放送、ケーブル・テレビジョン伝送、衛星テレビジョン伝送、ビデオ・ストリーミング伝送（例えば、インターネットを介するもの）、データ記憶媒体における記憶のためのデジタル・ビデオの符号化、データ記憶媒体に記憶されたデジタル・ビデオの復号化、又は他のアプリケーションのうちの任意の何れかをサポートするために、ビデオ復号化に適用されることが可能である。幾つかの実現可能な実装において、システム１０は、ビデオ・ストリーミング伝送、ビデオ再生、ビデオ放送、及び／又はビデオ電話などのアプリケーションをサポートするために、一方向又は双方向のビデオ伝送をサポートするように構成されてもよい。
【００８４】
図１の実現可能な実装において、ソース装置１２は、ビデオ・ソース１８、ビデオ・エンコーダ２０、及び出力インターフェース２２を含む。幾つかのアプリケーションにおいて、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含んでもよい。ソース装置１２において、ビデオ・ソース１８は、例えば以下のソース：ビデオ捕捉装置（例えば、ビデオ・カメラ）、以前に捕捉されたビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するビデオ・フィードイン・インターフェース、及び／又はソース・ビデオとしてコンピュータ・グラフィックス・データを生成するコンピュータ・グラフィックス・システム、又はそれらの組み合わせを含むことが可能である。実現可能な実装において、ビデオ・ソース１８がビデオ・カメラである場合に、ソース装置１２及び宛先装置１４は、カメラ電話又はビデオ電話を構成することが可能である。例えば、本願で説明される技術は、例えば、ビデオ復号化に適用されることが可能であり、無線及び／又は有線アプリケーションに適用されることが可能である。
【００８５】
ビデオ・エンコーダ２０は、捕捉された又は予め捕捉されたビデオ、又はコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオ・データは、ソース装置１２の出力インターフェース２２を介して宛先装置１４へ直接的に送信されることが可能である。符号化されたビデオ・データはまた（又は代替的に）、記憶装置２４に記憶されることが可能であり、その結果、宛先装置１４又は別の装置は以後に、復号化及び／又は再生のために、符号化されたビデオ・データにアクセスする。
【００８６】
宛先装置１４は、入力インターフェース２８、ビデオ・デコーダ３０、及びディスプレイ装置３２を含む。幾つかのアプリケーションでは、入力インターフェース２８は、受信機及び／又はモデムを含んでもよい。宛先装置１４の入力インターフェース２８は、リンク１６を介して、符号化されたビデオ・データを受信する。リンク１６を介してストレージ装置２４に送信又は提供される符号化されたビデオ・データは、ビデオ・エンコーダ２０によって生成され且つビデオ・デコーダ３０のようなビデオ・デコーダによってビデオ・データを復号化するために使用される複数のシンタックス要素を含む可能性がある。これらのシンタックス要素は、通信媒体上で送信され、且つ記憶媒体又はファイル・サーバーに記憶される、符号化されたビデオ・データに含まれることが可能である。
【００８７】
ディスプレイ装置３２は、宛先装置１４と一体化されていてもよいし、或いは宛先装置１４の外側に配置されていてもよい。幾つかの実現可能な実装において、宛先装置１４は、統合されたディスプレイ装置を含んでもよく、また、外部ディスプレイ装置のインターフェースに接続するように構成されてもよい。他の実現可能な実装において、宛先装置１４はディスプレイ装置であってもよい。一般に、ディスプレイ装置３２は、復号化されたビデオ・データをユーザーに表示し、複数のディスプレイ装置、例えば、液晶ディスプレイ、プラズマ・ディスプレイ、有機発光ダイオード・ディスプレイ、又は他のタイプのディスプレイ装置のうちの任意の１つを含むことができる。
【００８８】
ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、例えば、現在開発されている次世代ビデオ・コーディング圧縮規格（Ｈ．２６６）に従って動作することが可能であり、Ｈ．２６６テスト・モデルに準拠していてもよい。
【００８９】
代替的に、ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、例えばＩＴＵ−Ｔ  Ｈ．２６５規格又はＩＴＵ−Ｔ  Ｈ．２６４規格のような他の専用若しくは工業規格、又はこれらの規格の拡張に従って動作してもよい。ＩＴＵ−Ｔ  Ｈ．２６５規格はまた、高効率ビデオ復号化規格とも呼ばれ、ＩＴＵ−Ｔ  Ｈ．２６４規格は代替的に、動画エキスパート・グループ（moving  picture  experts  group，MPEG−4）パート１０又はアドバンスト・ビデオ・コーディング（advanced  video  coding，AVC）とも呼ばれている。しかしながら、本願の技術は、如何なる特定の復号化規格にも限定されない。他の実現可能な実装において、ビデオ圧縮規格はＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３を含む。
【００９０】
図１には示されていないが、幾つかの態様において、ビデオ・エンコーダ２０及びビデオ・デコーダ３０はそれぞれオーディオ・エンコーダ及びオーディオ・デコーダと一体化されていてもよく、同じデータ・ストリーム又は別個のデータ・ストリームにおいてオーディオ及びビデオの両方を符号化するために、適切なマルチプレクサ・デマルチプレクサ（multiplexer−demultiplexer，MUX−DEMUX）ユニット又は他のハードウェア及びソフトウェアを含んでもよい。適用可能であるならば、幾つかの実現可能な実装において、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサ・プロトコル、又はユーザー・データグラム・プロトコル（user  datagram  protocol，UDP）のような他のプロトコルに準拠してもよい。
【００９１】
ビデオ・エンコーダ２０及びビデオ・デコーダ３０は、複数の適切なエンコーダ回路、例えば、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（digital  signal  processor，DSP）、特定用途向け集積回路（application  specific  integrated  circuit，  ASIC）、フィールド・プログラマブル・ゲート・アレイ（field  programmable  gate  array，  FPGA）、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせのうちの任意の１つとして実現されることが可能である。幾つかの技術がソフトウェアとして実現される場合、装置は、本願における技術を実現するために、適切な非一時的なコンピュータ読み取り可能な媒体にソフトウェアの命令を記憶し、１つ以上のプロセッサを使用することによってハードウェアの形式で命令を実行することができる。ビデオ・エンコーダ２０及びビデオ・デコーダ３０はそれぞれ１つ以上のエンコーダ又はデコーダに含まれてもよい。ビデオ・エンコーダ２０及びビデオ・デコーダ３０の何れも、対応する装置において組み合わされたエンコーダ／デコーダ（coder  decoder，CODEC）の一部として統合されることが可能である。
【００９２】
本願は、例えば、ビデオ・エンコーダ２０が特定の情報を例えばビデオ・デコーダ３０に「シグナリング」する別の装置に関する可能性がある。しかしながら、ビデオ・エンコーダ２０は、情報をシグナリングするために、特定のシンタックス要素を、ビデオ・データの符号化された部分に関連付けることができることは、理解されるべきである。即ち、ビデオ・エンコーダ２０は、データをシグナリングするために、特定のシンタックス要素を、ビデオ・データの符号化された部分のヘッダ情報に記憶することができる。幾つかのアプリケーションでは、これらのシンタックス要素は、ビデオ・デコーダ３０によって受信され復号化される前に、符号化され記憶される（例えば、ストレージ・システム又はファイル・サーバーに記憶される）。従って、用語「信号」は、伝送がリアル・タイムで行われるか、ほぼリアル・タイムで行われるか、又はある時間スパン内で行われるかによらず、例えば、シンタックスの伝送又は圧縮されたビデオ・データを復号化するために使用される他のデータの伝送を意味する可能性がある。例えば、伝送は、符号化の間にシンタックス要素が媒体に記憶された場合に実行されることが可能であり、その後、シンタックス要素は、媒体に記憶された後の任意の時間に、復号化装置によって取り出されることが可能である。
【００９３】
共同ビデオ・エキスパート・チーム（joint  video  team，JVT）は、Ｈ．２６５高効率ビデオ符号化（high  efficiency  video  coding，  HEVC）規格を開発した。ＨＥＶＣ標準化は、ビデオ復号化装置の進化したモデルに基づいており、モデルはＨＥＶＣテスト・モデル（ＨＭ）と呼ばれる。最新のＨ．２６５規格文書はhttp://www．itu．int/rec/T−REC−H．265において入手可能ある。標準文書の最新バージョンはＨ．２６５（１２／１６）であり、標準文書は参照によりその全体が本願に組み込まれる。ＨＭでは、ビデオ復号化装置は、ＩＴＵ−ＴＨ．２６４／ＡＶＣの既存のアルゴリズムに関連する幾つかの追加的な能力を有することが仮定されている。例えば、Ｈ．２６４は９個のイントラ予測符号化モードを提供する一方、ＨＭは最大３５個のイントラ予測符号化モードを提供することができる。
【００９４】
ＪＶＥＴはＨ．２６６規格の開発に取り組んでいる。Ｈ．２６６標準化プロセスは、ビデオ復号化装置の進化したモデルに基づいており、モデルはＨ．２６６テスト・モデルと呼ばれる。Ｈ．２６６アルゴリズムの説明はhttp://phenix．int−evry．fr/jvetで入手可能であり、最新のアルゴリズムの説明はJVET−G1001−v1に含まれている。アルゴリズム記述文書は、その全体が参照により本願に組み込まれる。更に、ＪＥＭテスト・モデルのための参照ソフトウェアは、https://jvet．hhi．fraunhofer．de/svn/svn_HMJEMSoftware/で入手可能であり、その全体が参照により本願に組み込まれる。
【００９５】
一般に、ＨＭワーキング・モデルで説明されているように、ビデオ・フレーム又はピクチャは、ルマ及びクロマ・サンプルの両方を含む、一連のツリー・ブロック又は最大コーディング・ユニット（largest  coding  unit，LCU）に分割されることが可能である。ＬＣＵはまた、コーディング・ツリー・ユニット（coding  tree  unit，CTU）とも呼ばれる。ツリー・ブロックは、Ｈ．２６４規格のマクロブロックのものと同様の機能を有する。スライスは、復号化の順序で幾つかの連続するツリー・ブロックを含む。ビデオ・フレーム又はピクチャは、１つ又は複数のスライスに区分けされることが可能である。各ツリー・ブロックは、四分木に基づいてコーディング・ユニットに分割されることが可能である。例えば、四分木のルート・ノードとして機能するツリー・ブロックは、４つの子ノードに分割することが可能であり、各々の子ノードはまた、親ノードとして機能する可能性があり、他の４つの子ノードに分割される。四分木のリーフ・ノードとして機能する最終的な分割不可能な子ノードは、復号化ノード、例えば、復号化されたビデオ・ブロックを含む。復号化されたビットストリームに関連したシンタックス・データにおいて、ツリー・ブロックが分割されることが可能な最大回数と、復号化ノードの最小サイズとが、決定される可能性がある。
【００９６】
１つのＣＴＵは、１つのコーディング・ツリー・ブロック（coding  tree  block，CTB）及び同じ位置における２つのクロマＣＴＢと、幾つかの対応する構文要素とを含むことに留意すべきである。ＣＴＢは、１つのコーディング・ブロック（coding  block，CB）として直接的に使用されることが可能であるか、又は複数の小さなコーディング・ブロックＣＢ、１つのルマＣＢ、２つのクロマＣＢ、及び幾つかの対応するシンタックス要素に、四分木の形式で分割されて、１つのコーディング・ユニット（coding  unit，CU）を形成することが可能である。
【００９７】
ＣＵは、復号化ノード、予測ユニット（prediction  unit，PU）、及び復号化ノードに関連する変換ユニット（transform  unit，TU）を含む。ＣＵのサイズは復号化ノードのサイズに対応し、ＣＵの形状は正方形である必要がある。ＣＵのサイズは、８×８ピクセルから最大６４×６４ピクセルまでのレンジにあるか、又はより大きなツリー・ブロック・サイズであってもよい。各ＣＵは、１つ以上のＰＵ及び１つ以上のＴＵを含むことが可能である。例えば、ＣＵに関連するシンタックス・データは、１つのＣＵを１つ以上のＰＵに区分けすることを記述することができる。パーティショニング・パターンは、ＣＵがスキップ又はダイレクト・モードで符号化される場合、イントラ予測モードで符号化される場合、又はインター予測モードで符号化される場合に、相違する可能性がある。パーティショニングによって得られるＰＵは、非正方形の形状である可能性がある。例えば、ＣＵに関連するシンタックス・データはまた、四分木に基づく１つ以上のＴＵへのＣＵのパーティショニングを記述することができる。ＴＵは、正方形又は非正方形の形状であってもよい。
【００９８】
ＨＥＶＣ規格はＴＵベースの変換を許容する。異なるＣＵは異なるＴＵを含む可能性がある。ＴＵのサイズは、通常、区分けされたＬＣＵに対して規定される所与のＣＵ内のＰＵのサイズに基づいて設定される。しかしながら、常にこのようではないかもしれない。ＴＵのサイズは通常、ＰＵのものと同じか又はそれより小さい。幾つかの実現可能な実装において、「残差四分木」（residual  quadtree，RQT）と呼ばれる四分木構造が、ＣＵに対応する残差サンプルを、より小さなユニットに分割するために使用される可能性がある。ＲＱＴのリーフ・ノードは、ＴＵと言及される場合がある。ＴＵに関連するピクセル差分は、変換係数を生成するために変換される可能性があり、変換係数は量子化される可能性がある。
【００９９】
一般に、ＰＵは、予測処理に関するデータを含む。例えば、ＰＵがイントラ・モードで符号化される場合、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含む可能性がある。別の実現可能な実装において、ＰＵがインター・モードで符号化される場合、ＰＵは、ＰＵのための動きベクトルを規定するデータを含む可能性がある。例えば、ＰＵのための動きベクトルを規定するデータは、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４ピクセル精度又は１／８ピクセル精度）、動きベクトルが指し示す参照ピクチャ、及び／又は動きベクトルの参照ピクチャ・リスト（例えば、リスト０、リスト１、又はリストＣ）を記述することができる。
【０１００】
一般に、変換及び量子化処理がＴＵに対して使用される。１つ以上のＰＵを含む所与のＣＵは、１つ以上のＴＵを含むことも可能である。予測を実行した後に、ビデオ・エンコーダ２０は、ＰＵに対応する残差を計算することができる。残差は、ピクセル差分を含む。ピクセル差分は変換係数に変換されることが可能であり、変換係数は量子化され、ＴＵを用いてスキャンされて、エントロピー復号化のためのシリアル化された変換係数を生成する。本願では、用語「ビデオ・ブロック」は、通常、ＣＵの復号化ノードを示すために使用される。幾つかの特定のアプリケーションでは、用語「ビデオ・ブロック」はまた、復号化ノード、ＰＵ、及びＴＵを含むツリー・ブロック、例えばＬＣＵ又はＣＵを示すために使用されることが可能である。
【０１０１】
ビデオ・シーケンスには、通常、一連のビデオ・フレーム又はピクチャを含む。例えば、ピクチャのグループ（group  of  pictures，  GOP）は、一連のビデオ・ピクチャ、又は１つ以上のビデオ・ピクチャを含む。ＧＯＰは、ＧＯＰのヘッダ情報、１つ以上のピクチャのヘッダ情報などにシンタックス・データを含む可能性があり、シンタックス・データは、ＧＯＰに含まれるピクチャの量を記述する。ピクチャの各スライスは、対応するピクチャの符号化モードを記述するスライス・シンタックス・データを含む可能性がある。ビデオ・エンコーダ２０は、通常、ビデオ・データを符号化するために、個々のビデオ・スライス内のビデオ・ブロックに対して動作を実行する。ビデオ・ブロックは、ＣＵにおける復号化ノードに対応する可能性がある。ビデオ・ブロックのサイズは、固定されていてもよいし、又は変更可能であってもよく、指定された復号化規格によって異なる可能性がある。
【０１０２】
実現可能な実装において、ＨＭは様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×Ｎのサイズを用いたＰＵに対するイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎのサイズを用いた対称的なＰＵに対するインター予測をサポートし、ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、又はｎＲ×２Ｎのサイズを用いたＰＵに対するインター予測の非対称パーティショニングもサポートする。非対称パーティショニングにおいて、ＣＵはある方向では区分けされず、別の方向では２つの部分に区分けされ、一方の部分はＣＵの２５％を占め、他方の部分はＣＵの７５％を占める。ＣＵの２５％を占める部分は、「ｎ」の後に「Ｕ（Ｕｐ）」、「Ｄ（Ｄｏｗｎ）」、「Ｌ（Ｌｅｆｔ）」、「Ｒ（Ｒｉｇｈｔ）」を続けて示すインジケータによって示される。従って、例えば「２Ｎ×ｎＵ」は、水平に区分けされた２Ｎ×２Ｎ  ＣＵを指し、上部は２Ｎ×０．５Ｎ  ＰＵ、下部は２Ｎ×１．５Ｎ  ＰＵである。
【０１０３】
本願では、「Ｎ×Ｎ」及び「ＮかけるＮ」は、例えば１６×１６ピクセル又は１６に１６を乗算した個数のピクセルのように、垂直次元及び水平次元のビデオ・ブロックのピクセル・サイズを示すために可換に使用されることが可能である。一般に、１６×１６ブロックは、垂直方向に１６ピクセル（ｙ＝１６）、水平方向に１６ピクセル（ｘ＝１６）を有する。同様に、Ｎ×Ｎブロックは、通常、垂直方向にＮ個のピクセルを有し、水平方向にＮ個のピクセルを有し、ここで、Ｎは非負の整数値である。ブロック中のピクセルは、行及び列に配列されることが可能である。また、ブロックの水平方向におけるピクセルの量と垂直方向におけるピクセルの量とは、必ずしも同じではない可能性がある。例えば、ブロックは、Ｎ×Ｍピクセルを含んでもよく、ここで、Ｍは、必ずしもＮに等しくない。
【０１０４】
ＣＵ内のＰＵに関するイントラ又はインター予測復号化を実行した後に、ビデオ・エンコーダ２０は、ＣＵ内のＴＵの残差データを計算することができる。ＰＵは、空間ドメイン（ピクセル・ドメインとも呼ばれる）内のピクセル・データを含む可能性があり、ＴＵは、残差ビデオ・データに適用される変換（例えば、離散コサイン変換（discrete  cosine  transform，DCT）、整数変換、ウェーブレット変換、又は他の概念的に類似する変換）の後の変換ドメインにおける係数を含む可能性がある。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測子との間のピクセル差分に対応する可能性がある。ビデオ・エンコーダ２０は、ＣＵの残差データを含むＴＵを生成し、次いでＴＵを変換してＣＵの変換係数を生成することができる。
【０１０５】
変換係数を生成するために何らかの変換を実行した後に、ビデオ・エンコーダ２０は、変換係数を量子化することができる。量子化は、例えば係数を表すために使用されるデータの量を減らし、更なる圧縮を実行するために、係数を量子化するプロセスを指す。量子化プロセスは、係数の幾つか又は全てに関連するビット深度を低減することができる。例えば、量子化の間に、ｎビット値は、丸めによりｍビット値に低減されることが可能であり、ここで、ｎはｍより大きい。
【０１０６】
ＪＥＭモデルはビデオ・ピクチャ符号化構造を更に改良する。具体的には、「四分木プラス二分木」（quad  tree  plus  binary  tree，QTBT）構造と呼ばれるブロック・コーディング構造が導入される。ＨＥＶＣにおけるＣＵ、ＰＵ、ＴＵのような概念を使用せずに、ＱＴＢＴ構造は、より柔軟なＣＵ分割形状をサポートする。ＣＵは、正方形又は長方形におけるものであってもよい。四分木パーティショニングが先ずＣＴＵ上で実行され、二分木パーティショニングが、四分木のリーフ・ノード上で更に実行される。更に、対称水平パーティショニング及び対称垂直パーティショニングという２つの二分木パーティショニング・モードが存在する。二分木のリーフ・ノードはＣＵと言及される。ＪＥＭモデルにおけるＣＵは、予測及び変換の間に更に区分けされることはできない。言い換えれば、ＪＥＭモデルにおけるＣＵ、ＰＵ、及びＴＵは、同じブロック・サイズを有する。既存のＪＥＭモデルでは、最大ＣＴＵサイズは２５６×２５６ルマ・ピクセルである。
【０１０７】
幾つかの実現可能な実装において、ビデオ・エンコーダ２０は、量子化された変換係数を、所定のスキャン順序でスキャンして、エントロピー符号化されることが可能なシリアル化されたベクトルを生成することができる。他の実現可能な実装において、ビデオ・エンコーダ２０は、適応スキャニングを実行することができる。量子化された変換係数をスキャンして１次元ベクトルを形成した後に、ビデオ・エンコーダ２０は、文脈適応型可変長コーディング（context−adaptive  variable−length  coding，CAVLC）法、文脈ベースの適応型二進算術コーディング（context−based  adaptive  binary  arithmetic  coding，CABAC）法、確率間隔パーティショニング・エントロピー（probability  interval  partitioning  entropy，PIPE）コーディング法、又は別のエントロピー・コーディング法に基づいて、１次元ベクトルをエントロピー符号化することができる。ビデオ・エンコーダ２０は、符号化されたビデオ・データに関連付けられたシンタックス要素を更に符号化することが可能であり、その結果、ビデオ・デコーダ３０はビデオ・データを復号化する。
【０１０８】
ＣＡＢＡＣを実行するために、ビデオ・エンコーダ２０は、コンテキスト・モデルにおけるコンテキストを、送信対象のシンボルに割り当てることができる。コンテキストは、シンボルの隣接する値が非ゼロであるかどうかに関連付けられる可能性がある。ＣＡＶＬＣを実行するために、ビデオ・エンコーダ２０は、送信対象のシンボルの可変長コードを選択することができる。可変長コーディングにおけるコードワード（variable−length  coding，VLC）は、より短いコードがより可能性の高いシンボルに対応し且つより長いコードがより可能性の低いシンボルに対応するように、構成されることが可能である。このようにして、全ての送信対象のシンボルに対して等しい長さのコードワードを使用することと比較して、ＶＬＣを使用することは、ビット・レートを削減することができる。ＣＡＢＡＣにおける確率は、シンボルに割り当てられたコンテキストに基づいて決定されることが可能である。
【０１０９】
本願のこの実施形態では、ビデオ・エンコーダは、ピクチャ間の時間的な冗長性を低減するために、インター予測を実行することができる。上述したように、ＣＵは、異なるビデオ圧縮コーディング規格に従って、１つ以上の予測ユニットＰＵを有することが可能である。言い換えれば、複数のＰＵが１つのＣＵに属している可能性があり、あるいはＰＵ及びＣＵは同じサイズを有する。本明細書では、ＣＵ及びＰＵが同じサイズを有する場合、ＣＵのパーティショニング・モードは、パーティションなしを実行するか、又はＣＵを１つのＰＵに区分けし、ここで、ＰＵは説明のために均一に使用される。ビデオ・エンコーダがインター予測を実行する場合、ビデオ・エンコーダは、ＰＵに関する動き情報を、ビデオ・デコーダにシグナリングすることが可能である。例えば、ＰＵに関する動き情報は、参照ピクチャ・インデックス、動きベクトル、及び予測方向識別子を含む可能性がある。動きベクトルは、ＰＵのピクチャ・ブロック（ビデオ・ブロック、ピクセル・ブロック、ピクセル・セット等とも呼ばれる）とＰＵの参照ブロックとの間の変位を示すことができる。ＰＵの参照ブロックは、ＰＵのピクチャ・ブロックに類似した参照ピクチャの一部であってもよい。参照ブロックは、参照ピクチャ・インデックス及び予測方向識別子によって示される参照ピクチャ内に配置されてもよい。
【０１１０】
ＰＵに関する動き情報を表現するために必要なコーディングされたビットの量を削減するために、ビデオ・エンコーダは、マージ（merge）予測モード又はアドバンスト動きベクトル予測（advanced  motion  vector  prediction，AMVP）モードに従って、各ＰＵに関する候補の予測された動きベクトル（motion  vector，MV）のリストを生成することができる。ＰＵに関する候補の予測された動きベクトルのリストにおける候補の予測された動きベクトルの各々は、動き情報を示すことができる。候補の予測された動きベクトルのリスト内の幾つかの候補の予測された動きベクトルによって示される動き情報は、他のＰＵに対する動き情報に基づいてもよい。候補の予測された動きベクトルが、特定の空間的な候補の予測された動きベクトル位置又は特定の時間的な候補の予測された動きベクトル位置のうちの１つの動き情報を示す場合、候補の予測された動きベクトルは、本願では「オリジナル」候補の予測された動きベクトルと呼ばれる場合がある。例えば、本願でマージ予測モードとも呼ばれるマージ・モードでは、５つのオリジナル空間候補の予測された動きベクトル位置と、１つのオリジナル時間候補の予測された動きベクトル位置とが存在し得る。幾つかの例では、ビデオ・エンコーダは、異なるオリジナル候補の予測された動きベクトルからの幾つかの動きベクトルを組み合わせること、オリジナル候補の予測された動きベクトルを修正すること、又は候補の予測された動きベクトルとしてゼロ動きベクトルのみを挿入することによって、追加候補の予測された動きベクトルを生成することができる。これらの追加候補の予測された動きベクトルは、オリジナル候補の予測された動きベクトルとは考えられず、本願では、マニュアルで生成された候補の予測された動きベクトルと言及される場合がある。
【０１１１】
本願における技術は、通常、ビデオ・エンコーダにおいて候補の予測された動きベクトルのリストを生成する技術と、ビデオ・デコーダにおいて同じ候補の予測された動きベクトルのリストを生成する技術とを含む。ビデオ・エンコーダ及びビデオ・デコーダは、候補の予測された動きベクトルのリストを構築するために同じ技術を実現することによって、同じ候補の予測された動きベクトルのリストを生成することができる。例えば、ビデオ・エンコーダ及びビデオ・デコーダは、同じ量の候補の予測された動きベクトル（例えば、５つの候補の予測された動きベクトル）を有するリストを構成することができる。ビデオ・エンコーダ及びビデオ・デコーダは、先ず、（例えば、同じピクチャにおける隣接するブロックのような）空間的な候補の予測された動きベクトルを考慮し、次いで、（例えば、異なるピクチャにおける候補の予測された動きベクトルのような）時間的な候補の予測された動きベクトルを考慮し、最終的に、マニュアルで生成される候補の予測された動きベクトルを考慮することを、必要な量の候補の予測された動きベクトルがリストに追加されるまで行うことができる。本願の技術によれば、候補の予測された動きベクトルのリストを構成する間に、候補の予測された動きベクトルのリストから、反復的な候補の予測された動きベクトルを除去するために、あるタイプの候補の予測された動きベクトルに対して、プルーニング処理が実行されてもよく、プルーニング処理は、デコーダの複雑性を低減するために、他のタイプの候補の予測された動きベクトルに関して実行されなくてもよい。例えば、空間的な候補の予測された動きベクトルの集合及び時間的な候補の予測された動きベクトルの集合に対して、プルーニング処理は、反復した動き情報を伴う候補の予測された動きベクトルを、候補の予測された動きベクトルのリストから除去するために実行されることが可能である。しかしながら、マニュアルで生成された候補の予測された動きベクトルは、プルーニング処理が、マニュアルで生成された候補の予測された動きベクトルに関して実行されない場合に、候補の予測されたベクトルのリストに追加されることが可能である。
【０１１２】
ＣＵのＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストから、候補の予測された動きベクトルを選択し、候補の予測された動きベクトル・インデックスをビットストリームで出力することができる。選択された候補の予測された動きベクトルは、復号化されているターゲットＰＵの予測ユニットに最もよく合致する動きベクトルを生成するための候補の予測された動きベクトルであってもよい。候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示すことができる。ビデオ・エンコーダは、更に、ＰＵに関する動き情報によって示される参照ブロックに基づいて、ＰＵに関する予測ピクチャ・ブロックを生成してもよい。ＰＵに関する動き情報は、選択された候補の予測された動きベクトルによって示される動き情報に基づいて決定されてもよい。例えば、マージ・モードでは、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。アドバンスト動きベクトル予測モードでは、ＰＵのための動き情報は、ＰＵのための動きベクトル差分と選択された候補の予測された動きベクトルによって示される動き情報とに基づいて決定されることが可能である。ビデオ・エンコーダは、ＣＵのＰＵに対する予測ピクチャ・ブロックとＣＵに対するオリジナル・ピクチャ・ブロックとに基づいて、ＣＵに対する１つ以上の残差ピクチャ・ブロックを生成することができる。次いで、ビデオ・エンコーダは、１つ以上の残差ピクチャ・ブロックを符号化し、１つ以上の残差ピクチャ・ブロックをビットストリームで出力することができる。
【０１１３】
ビットストリームは、ＰＵに関する候補の予測された動きベクトルのリストにおいて、選択された候補の予測された動きベクトルを識別するデータを含むことができる。ビデオ・デコーダは、ＰＵのための候補の予測された動きベクトル・リストにおいて、選択された候補の予測された動きベクトルによって示される動き情報に基づいて、ＰＵの動き情報を決定することができる。ビデオ・デコーダは、ＰＵの動き情報に基づいて、ＰＵのための１つ以上の参照ブロックを識別することができる。ＰＵに対する１つ以上の参照ブロックを識別した後に、ビデオ・デコーダは、ＰＵに対する１つ以上の参照ブロックに基づいて、ＰＵに対する予測ピクチャ・ブロックを生成してもよい。ビデオ・デコーダは、ＣＵのＰＵに対する予測ピクチャ・ブロックとＣＵに対する１つ以上の残差ピクチャ・ブロックとに基づいて、ＣＵに対するピクチャ・ブロックを再構成することができる。
【０１１４】
説明を簡単にするために、本願では、位置又はピクチャ・ブロックは、ＣＵ又はＰＵとの様々な空間的な関係を有するものとして説明されることが可能である。説明は、次のように説明することができる：ロケーション又はピクチャ・ブロックは、ＣＵ又はＰＵに関連付けられたピクチャ・ブロックと様々な空間的な関係を有する。追加的に、本願では、ビデオ・デコーダによって現在復号化されているＰＵは、処理対象のＰＵと言及されてもよいし、又は現在の処理対象のピクチャ・ブロックと言及されてもよい。本願では、ビデオ・デコーダによって現在復号化されているＣＵは、処理対象のＣＵと言及されてもよい。本願では、ビデオ・デコーダによって現在復号化されているピクチャは、現在のピクチャと言及されてもよい。本願は、ＰＵ及びＣＵが同じサイズを有する場合、又はＰＵがＣＵである場合にも適用可能であることが理解されるべきである。ＰＵは説明のために均一に使用される。
【０１１５】
先に簡単に説明したように、ビデオ・エンコーダ２０は、インター予測によってＣＵのＰＵに対する予測ピクチャ・ブロック及び動き情報を生成することができる。多くの例において、所与のＰＵの動き情報は、１つ以上の隣接するＰＵ（即ち、ピクチャ・ブロックが所与のＰＵのピクチャ・ブロックに空間的又は時間的に隣接しているＰＵ）の動き情報と同一又は類似であってもよい。隣接するＰＵは、しばしば同様な動き情報を有するので、ビデオ・エンコーダ２０は、隣接するＰＵの動き情報に基づいて、所与のＰＵの動き情報を符号化することができる。隣接するＰＵの動き情報に基づいて所与のＰＵの動き情報を符号化することは、所与のＰＵの動き情報を示すためにビットストリームにおいて要求される符号化されたビットの量を減らすことができる。
【０１１６】
ビデオ・エンコーダ２０は、様々な方法で、隣接するＰＵの動き情報に基づいて、所与のＰＵの動き情報を符号化することができる。例えば、ビデオ・エンコーダ２０は、所与のＰＵに対する動き情報が、隣接するＰＵに対する動き情報と同じであることを示すことができる。本願では、マージ・モードは、所与のＰＵに対する動き情報が隣接するＰＵに対する動き情報と同じであることを示すために使用されてもよいし、又は隣接するＰＵに対する動き情報から導出されてもよい。別の実現可能な実装において、ビデオ・エンコーダ２０は、所与のＰＵに対する動きベクトル差分（motion  vector  difference，  MVD）を計算することが可能であり、ＭＶＤは、所与のＰＵに対する初期の動きベクトルと所与のＰＵに対する最終的な動きベクトルとの間の差分である。ビデオ・エンコーダ２０は、所与のＰＵの動き情報において、所与のＰＵの動きベクトルの代わりにＭＶＤを含めることができる。ビットストリームでは、ＭＶＤを表現するために必要なコーディングされたビットの量は、所与のＰＵに対する動きベクトルを表現するために必要なコーディングされたビットの量よりも少ない。本願では、アドバンスト動きベクトル予測モードを使用して、所与のＰＵの動き情報が、ＭＶＤと候補の動きベクトルを識別するためのインデックス値とを使用することによって、デコーダにシグナリングされることを示すことができる。
【０１１７】
マージ・モード又はＡＭＶＰモードにおいて、所与のＰＵの動き情報をデコーダにシグナリングするために、ビデオ・エンコーダ２０は、所与のＰＵに対する候補の予測された動きベクトルのリストを生成することができる。候補の予測された動きベクトルのリストは、１つ以上の候補の予測された動きベクトルを含んでもよい。所与のＰＵに関する候補の予測された動きベクトルのリストにおける各候補の予測された動きベクトルは、動き情報を指定することができる。各候補の予測された動きベクトルによって示される動き情報は、動きベクトル、参照ピクチャ・インデックス、及び予測方向識別子を含んでもよい。候補の予測された動きベクトルのリスト内の候補の予測された動きベクトルは、「オリジナル」候補の予測された動きベクトルを含む可能性があり、各々の「オリジナル」候補の予測された動きベクトルは、所与のＰＵとは異なるＰＵ内の特定の候補の予測された動きベクトル位置のうちの１つの動き情報を示す。
【０１１８】
ＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダ２０は、ＰＵのための候補の予測された動きベクトルのリストから、候補の予測された動きベクトルのうちの１つを選択することができる。例えば、ビデオ・エンコーダは、各々の候補の予測された動きベクトルを、復号化されているＰＵと比較し、所望のレート歪コストを有する候補の予測された動きベクトルを選択することができる。ビデオ・エンコーダ２０は、ＰＵのための候補の予測された動きベクトル・インデックスを出力することができる。候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトル・リストにおいて選択された候補の予測された動きベクトルの位置を識別することができる。
【０１１９】
更に、ビデオ・エンコーダ２０は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成してもよい。ＰＵに関する動き情報は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルによって示される動き情報に基づいて決定されてもよい。例えば、マージ・モードにおいて、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。ＡＭＶＰモードでは、ＰＵの動き情報は、ＰＵの動きベクトル差分と、選択された候補の予測された動きベクトルによって示される動き情報とに基づいて、決定されてもよい。上述のように、ビデオ・エンコーダ２０は、ＰＵの予測ピクチャ・ブロックを処理することができる。
【０１２０】
ビデオ・デコーダ３０がビットストリームを受信する場合に、ビデオ・デコーダ３０は、ＣＵの各ＰＵに対して候補の予測された動きベクトルのリストを生成することができる。ＰＵに関するビデオ・デコーダ３０によって生成される候補の予測された動きベクトルのリストは、ＰＵに関するビデオ・エンコーダ２０によって生成される候補の予測された動きベクトルのリストと同じであってもよい。ビットストリームを解析することによって取得されるシンタックス要素は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示すことができる。ＰＵに関する候補の予測された動きベクトルのリストを生成した後に、ビデオ・デコーダ３０は、ＰＵの動き情報によって示される１つ以上の参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成してもよい。ビデオ・デコーダ３０は、ＰＵに関する候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルによって示される動き情報に基づいて、ＰＵの動き情報を決定することができる。ビデオ・デコーダ３０は、ＰＵの予測ピクチャ・ブロックとＣＵの残差ピクチャ・ブロックとに基づいて、ＣＵのピクチャ・ブロックを再構成することができる。
【０１２１】
実現可能な実装において、デコーダ上で、候補の予測された動きベクトルのリストの構築と、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を得るためのビットストリームの解析とは、互いに独立しており、任意の順序で又は並行して実行されてもよいことが理解されるべきである。
【０１２２】
別の実現可能な実装において、デコーダ上で、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置が、先ずビットストリームを解析することによって取得され、次いで、候補の予測された動きベクトルのリストが、解析によって得られた位置に基づいて構成される。この実装では、全ての候補の予測された動きベクトルのリストを構築することを必要とせずに、解析により得られた位置における候補の予測された動きベクトルのリストのみが、その位置での候補の予測された動きベクトルを決定するために構築されることを必要とする。例えば、ビットストリームを解析することによって、選択された候補の予測された動きベクトルは、候補の予測された動きベクトルのリストにおいてインデックスが３である候補の予測された動きベクトルであり、インデックスが３である候補の予測された動きベクトルを決定するために、インデックス０からインデックス３までの候補の予測された動きベクトルのリストのみを構成する必要があることが分かる。これは、複雑さを低減し、復号化効率を改善することができる。
【０１２３】
図２は、本願の実施形態によるビデオ・エンコーダ２０の概略ブロック図である。ビデオ・エンコーダ２０は、ビデオ・スライス内のビデオ・ブロックに関してイントラ復号化及びインター復号化を実行することができる。イントラ復号化は、所与のビデオ・フレーム又はピクチャ内のビデオの空間的な冗長性を低減又は除去するために、空間的予測を当てにする。インター復号化は、ビデオ・シーケンスの隣接するフレーム又はピクチャにおけるビデオの時間的な冗長性を低減又は除去するために、時間的な予測を当てにする。イントラ・モード（Ｉモード）は、幾つかの空間的な圧縮モードの任意の１つであってもよい。一方向予測モード（Ｐモード）又は双方向予測モード（Ｂモード）のようなインター・モードは、幾つかの時間的な圧縮モードの任意の１つであってもよい。
【０１２４】
図２の実現可能な実装において、ビデオ・エンコーダ２０は、パーティショニング・ユニット３５、予測ユニット４１、参照ピクチャ・ストレージ６４、加算器５０、変換ユニット５２、量子化ユニット５４、エントロピー符号化ユニット５６を含む。
【０１２５】
参照ピクチャ・ストレージ６４は、ＭＶＤを記憶するためのターゲット・ストレージ空間を提供するように、即ち、処理対象のＰＵに対する最終的な動きベクトルと初期の動きベクトルとの間の差分を記憶するように、更に構成されてもよい。幾つかの実施形態では、参照ピクチャ・ストレージ６４は、処理対象のＰＵの最終的な動きベクトルを更に記憶することができる。本願のこの実施形態では、参照ピクチャ・ストレージ６４に記憶されたＭＶＤは、別のＰＵの符号化プロセスで使用されてもよい。例えば、マージ（merge）モードにおける復号化処理では、更新されていない初期の動きベクトルと更新された最終的な動きベクトルとが、異なる時間に別々に記憶される。従って、処理対象のＰＵが、別のＰＵについて予測された動きベクトルを取得する必要がある場合、特定の条件下で、処理対象のＰＵは、別のＰＵの更新されていない初期の動きベクトルを、別のＰＵの動きベクトルとして、直接的に使用することが可能であり、別のＰＵの動きベクトルが更新された後に、別のＰＵの動きベクトルを得る必要はない。
【０１２６】
ターゲット・ストレージ空間は、参照ピクチャ・ストレージ６４以外のメモリ、例えば、新しく追加されたメモリによって提供されてもよいことに留意されたい。これは、本願のこの実施態様で具体的には限定されない。
【０１２７】
関連技術において、ビデオ・エンコーダ２０がマージ・モードで動作する場合に、参照ピクチャ・ストレージ６４の中身が空であるか、又はゼロ・ベクトルであること、即ち、ビデオ・エンコーダ２０がマージ・モードで動作する場合に、ターゲット・ストレージ空間は符号化中に使用されず、符号化プロセスでは、処理対象のＰＵによって得られる他のＰＵの予測された動きベクトルは、他のＰＵの更新された最終的な動きベクトルであることに留意されたい。従って、処理対象のＰＵは、他のＰＵの予測された動きベクトルが更新された後に限り、他のＰＵに対する予測された動きベクトルを得ることが可能であり、その結果、符号化の間に符号化遅延が生じる。しかしながら、ビデオ・エンコーダ２０が非マージ・モードで動作する場合、参照ピクチャ・ストレージ６４が使用されてもよい。例えば、ＡＭＶＰモードでは、ターゲット・ストレージ空間は、動きベクトル残差を記憶するために使用され、ビデオ・エンコーダ２０は、動きベクトル残差を符号化し、その結果、現在のＰＵを復号化した後に、ビデオ・デコーダ３０は、処理対象のＰＵの動きベクトル残差を取得し、処理対象のＰＵの動きベクトル残差と、処理対象のＰＵの初期の動きベクトルとに基づいて、処理対象のＰＵの最終的な動きベクトルを取得することができる。
【０１２８】
予測ユニット４１は、動き推定ユニット４２、動き補償ユニット４４、イントラ予測ユニット４６を含む。ビデオ・ブロック再構成のために、ビデオ・エンコーダ２０は、逆量子化ユニット５８、逆変換ユニット６０、及び加算器６２を更に含む。ビデオ・エンコーダ２０は、ブロック境界上でフィルタリングを実行し、再構成されたビデオからブロッキング・アーチファクトを除去するために、デブロッキング・フィルタ（図２には示されていない）を更に含んでもよい。必要に応じて、デブロッキング・フィルタは、通常、加算器６２の出力に対してフィルタリングを実行する。デブロッキング・フィルタに加えて、追加のループ・フィルタ（ループの中又は後）が使用されてもよい。
【０１２９】
図２に示すように、ビデオ・エンコーダ２０は、ビデオ・データを受信し、パーティショニング・ユニット３５は、データをビデオ・ブロックに区分けする。このような区分けは、更に、スライス、ピクチャ・ブロック、又は他のより大きなユニットに区分けすることと、ＬＣＵ及びＣＵの四分木構造に基づくビデオ・ブロック・パーティショニングとを含んでもよい。例えば、ビデオ・エンコーダ２０は、符号化対象のビデオ・スライス内のビデオ・ブロックを符号化するための構成要素である。通常、１つのスライスは、複数のビデオ・ブロックに区分けされることが可能である（そして、ピクチャ・ブロックと呼ばれるビデオ・ブロックのセットに区分けされることが可能である）。
【０１３０】
予測ユニット４１は、符号化品質及びコスト計算結果（例えば、レート歪コスト（rate  distortion  cost，RDcost））に基づいて、現在のビデオ・ブロックに対して、複数の可能な復号化モード、例えば複数のイントラ復号化モードのうちの１つ又は複数のインター復号化モードのうちの１つを選択することができる。予測ユニット４１は、取得されたイントラ復号化ブロック又はインター復号化ブロックを加算器５０に提供して残差ブロック・データを生成し、得られたイントラ復号化ブロック又はインター復号化ブロックを加算器６２に提供して、符号化されたブロックを再構成し、再構成された符号化されたブロックを参照ピクチャとして使用することができる。
【０１３１】
予測ユニット４１における動き推定ユニット４２及び動き補償ユニット４４は、１つ以上の参照ピクチャの１つ以上の予測ブロックに対する現在のビデオ・ブロックに関してインター予測復号化を実行して、時間的な圧縮を行う。動き推定ユニット４２は、ビデオ・シーケンスのプリセット・モードに基づいて、ビデオ・スライスのインター予測モードを決定するように構成されてもよい。プリセット・モードでは、シーケンス内のビデオ・スライスは、Ｐスライス、Ｂスライス、ＧＰＢスライスとして指定されることが可能である。動き推定ユニット４２及び動き補償ユニット４４は、大いに統合されてもよいが、概念を説明するために別々に記述される。動き推定ユニット４２によって実行される動き推定は、ビデオ・ブロックを推定するための動きベクトルを生成するプロセスである。例えば、動きベクトルは、参照ピクチャの予測ブロックに対する、現在のビデオ・フレーム又はピクチャのビデオ・ブロックのＰＵの変位を示すことができる。
【０１３２】
予測ブロックは、ピクセル差分に基づいて、復号化対象のビデオ・ブロックに近接して合致していることが見出されたＰＵのブロックであり、ピクセル差分は、絶対差分（sum  of  absolute  differences，SAD）、二乗差分の合計（sum  of  squared  differences，  SSD）、又は他の差分メトリックを使用することにより決定されることが可能である。幾つかの実現可能な実装において、ビデオ・エンコーダ２０は、参照ピクチャ・ストレージ６４に記憶された参照ピクチャのサブ整数（sub−integer）ピクセル位置の値を計算することができる。例えば、ビデオ・エンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、又は別の分数ピクセル位置の値を補間することができる。従って、動き推定ユニット４２は、全てのピクセル位置及び分数ピクセル位置に関する動き探索を実行し、分数ピクセル精度で動きベクトルを出力することができる。
【０１３３】
動き推定ユニット４２は、ＰＵの位置と参照ピクチャの予測ブロックの位置とを比較することにより、インター復号化されるスライス内のビデオ・ブロックのＰＵに対する動きベクトルを算出する。参照ピクチャは、第１参照ピクチャ・リスト（リスト０）又は第２参照ピクチャ・リスト（リスト１）から選択されることが可能である。各リストは、参照ピクチャ・ストレージ６４に記憶された１つ以上の参照ピクチャを識別するために使用される。動き推定ユニット４２は、計算された動きベクトルを、エントロピー符号化ユニット５６及び動き補償ユニット４４へ送る。
【０１３４】
動き補償ユニット４４によって実行される動き補償は、動き推定によって決定される動きベクトルに基づく予測ブロックの抽出又は生成を含むことが可能であり、サブ・ピクセル・レベルの精度で補間を実行することが可能である。現在のビデオ・ブロックのＰＵに対する動きベクトルを受信した後に、動き補償ユニット４４は、動きベクトルが１つの参照ピクチャ・リスト内で指し示す予測ブロックを突き止めることができる。ビデオ・エンコーダ２０は、復号化されている現在のビデオ・ブロックのピクセル値から、予測ブロックのピクセル値を減算して残差ビデオ・ブロックを取得し、ピクセル差分を取得する。ピクセル差分は、ブロックの残差データを構成し、ルマ差分成分とクロマ差分成分の両方を含む可能性がある。加算器５０は、減算演算を実行する１つ以上の構成要素である。動き補償ユニット４４は、ビデオ・ブロック及びビデオ・スライスに関連するシンタックス要素を更に生成することが可能であり、その結果、ビデオ・デコーダ３０はビデオ・スライス内のビデオ・ブロックを復号化する。
【０１３５】
ＰＵがＢスライスに位置する場合、ＰＵを含むピクチャは、「ｌｉｓｔ  ０」及び「ｌｉｓｔ  １」と言及される２つの参照ピクチャ・リストに関連付けられることが可能である。幾つかの実現可能な実装において、Ｂスライスを含むピクチャは、リスト０及びリスト１のリストの組み合わせに関連付けられてもよい。
【０１３６】
また、ＰＵがＢスライスに位置する場合、動き推定ユニット４２は、ＰＵに対して一方向予測又は双方向予測を実行することが可能である。幾つかの実現可能な実装において、双方向予測は、参照ピクチャ・リスト０及び参照ピクチャ・リスト１におけるピクチャに基づいて、別々に実行される予測である。幾つかの他の実現可能な実装において、双方向予測は、表示順序で現在のフレームについての再構成される将来のフレームと再構成される過去のフレームとに基づいて別々に実行される予測である。また、動き推定ユニット４２が、ＰＵに対して一方向予測を実行する場合には、動き推定ユニット４２は、ＰＵに対する参照ブロックを探すために、リスト０又はリスト１内の参照ピクチャを探索することができる。そして、動き推定ユニット４２は、リスト０又はリスト１に参照ブロックを含む参照ピクチャを示す参照インデックスと、ＰＵ及び参照ブロックの間の空間的な変位を示す動きベクトルとを生成することができる。動き推定ユニット４２は、ＰＵの動き情報として、参照インデックス、予測方向識別子、及び動きベクトルを出力することができる。予測方向識別子は、参照インデックスがリスト０又はリスト１における参照ピクチャを示すことを示してもよい。動き補償ユニット４４は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１３７】
動き推定ユニット４２が、ＰＵに対して双方向予測を行う場合、動き推定ユニット４２は、ＰＵに対する参照ブロックに対してリスト０内の参照ピクチャを探索し、更に、ＰＵに対する他の参照ブロックに対してリスト１内の参照ピクチャを探索することができる。そして、動き推定ユニット４２は、リスト０及びリスト１の参照ブロックを含む参照ピクチャを示す参照インデックスと、参照ブロック及びＰＵの間の空間的な変位を示す動きベクトルとを生成することができる。また、動き推定ユニット４２は、ＰＵの参照インデックス及び動きベクトルを、ＰＵの動き情報として出力することができる。動き補償ユニット４４は、ＰＵの動き情報により示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１３８】
幾つかの実現可能な実装において、動き推定ユニット４２は、ＰＵの動き情報の完全なセットを、エントロピー符号化ユニット５６に対して出力しない。その代わりに、動き推定ユニット４２は、別のＰＵの動き情報に関するＰＵの動き情報をシグナリングしてもよい。例えば、動き推定ユニット４２は、ＰＵの動き情報が、隣接するＰＵの動き情報と同様であることを決定することが可能である。この実装において、動き推定ユニット４２は、ＰＵに関連するシンタックス構造において、インジケータ値を示すことが可能であり、インジケータ値は、ＰＵの動き情報が、隣接するＰＵの動き情報と同じであること、又は隣接するＰＵの動き情報から導出されてもよいことを、ビデオ・デコーダ３０に示す。別の実装において、動き推定ユニット４２は、ＰＵに関連するシンタックス構造において、隣接するＰＵに関連する候補の予測された動きベクトルと動きベクトル差分（motion  vector  difference，MVD）とを識別することができる。ＭＶＤは、ＰＵの動きベクトルと、隣接するＰＵに関連する指示された候補の予測された動きベクトルとの間の差分を示す。ビデオ・デコーダ３０は、指示された候補の予測された動きベクトル及びＭＶＤを使用することによって、ＰＵの動きベクトルを決定することができる。
【０１３９】
上述したように、予測ユニット４１は、ＣＵの各ＰＵに対して候補の予測された動きベクトルのリストを生成することができる。１つ以上の候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含むことができる。
【０１４０】
本願のこの実施形態では、マージ・モードで候補の予測された動きベクトルのリストを設定する際に、予測ユニット４１は、候補の予測された動きベクトルのリストに、処理対象のＰＵの参照ＰＵの動きベクトルを記憶することができ、参照ＰＵの動きベクトルは、参照ＰＵの更新されていない初期の動きベクトルであってもよいし、又は参照ＰＵの更新された最終的な動きベクトルであってもよいことに留意すべきである。参照ＰＵのための更新された最終的な動きベクトルは、ターゲット・ストレージ空間に記憶された動きベクトルに基づいて取得されてもよい。ターゲット・ストレージ空間がＭＶＤを記憶する場合、参照ＰＵの最終的な動きベクトルは、参照ＰＵの初期の動きベクトルと、ターゲット・ストレージ空間に記憶されたＭＶＤとを加算することによって取得されることが可能である。ターゲット・ストレージ空間が、参照ＰＵのための最終的な動きベクトルを記憶する場合、参照ＰＵのための最終的な動きベクトルは、ターゲット・ストレージ空間から直接的に取得されることが可能である。参照ＰＵの動きベクトルは、以下の方法で、候補の予測された動きベクトルのリストに記憶されることが可能である：参照ＰＵと現在のＰＵが同一のＣＴＢ又はＣＴＢの行レンジにある場合には、参照ユニットの更新されていない初期の動きベクトルが、候補の予測された動きベクトルのリストに記憶されるか、又は参照ＰＵと現在のＰＵが同一のＣＴＢ又はＣＴＢの行レンジにない場合には、参照ユニットの更新された最終的な動きベクトルが、候補の予測された動きベクトルのリストに記憶される。
【０１４１】
予測ユニット４１のイントラ予測ユニット４６は、復号化対象の現在のブロックと同一のピクチャ又はスライス内にある１つ以上の隣接するブロックに対して、現在のビデオ・ブロックに対してイントラ予測復号化を実行し、空間圧縮を提供することができる。従って、動き推定ユニット４２と動き補償ユニット４４とによって実行される（上述したような）インター予測の代替案として、イントラ予測ユニット４６は、現在のブロックに対してイントラ予測を実行することができる。具体的には、イントラ予測ユニット４６は、現在のブロックを符号化するためのイントラ予測モードを決定することができる。幾つかの実現可能な実装において、イントラ予測ユニット４６は、（例えば）様々なイントラ予測モードを使用して、別々の符号化トラバーサルの間に現在のブロックを符号化し、イントラ予測ユニット４６（又は、幾つかの実現可能な実装におけるモード選択ユニット４０）は、テスト・モードから適切なイントラ予測モードを選択することができる。
【０１４２】
予測ユニット４１は、現在のビデオ・ブロックの予測ブロックを、インター予測又はイントラ予測により生成した後に、ビデオ・エンコーダ２０は、予測ブロックを現在のビデオ・ブロックから減算し、残差ビデオ・ブロックを取得する。残差ブロック内の残差ビデオ・データは、１つ以上のＴＵに含まれ、変換ユニット５２に印加されることが可能である。変換ユニット５２は、離散コサイン変換（discrete  cosine  transform，  DCT）又は概念的に類似した変換（例えば、離散正弦変換（discrete  sine  transform，  DST））のような変換を実行することによって、残差ビデオ・データを、残差変換係数に変換する。変換ユニット５２は、残差ビデオ・データを、ピクセル・ドメインから変換ドメイン（例えば、周波数ドメイン）へ変換することができる。
【０１４３】
変換ユニット５２は、取得された変換係数を量子化ユニット５４に送ることができる。量子化ユニット５４は、変換係数を量子化して、ビット・レートを更に低下させる。量子化プロセスは、係数の幾つか又は全てに関連するビット深度を低減することができる。量子化度は、量子化パラメータを調整することによって修正されることが可能である。幾つかの実現可能な実装において、量子化ユニット５４は、次いで、量子化された変換係数を含む行列をスキャンすることができる。あるいは、エントロピー符号化ユニット５６がスキャンを実行してもよい。
【０１４４】
量子化の後に、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化することができる。例えば、エントロピー符号化ユニット５６は、文脈適応型可変長コーディング（ＣＡＶＬＣ）、文脈適応型二進算術コーディング（ＣＡＢＡＣ）、確率間隔パーティショニング・エントロピー（ＰＩＰＥ）コーディング、又は他のエントロピー・コーディング方法又は技術を実行することができる。エントロピー符号化ユニット５６は、復号化されている現在のビデオ・スライスの動きベクトル及び別のシンタックス要素を更にエントロピー符号化することができる。エントロピー符号化ユニット５６によってエントロピー符号化された後に、符号化されたビットストリームは、ビデオ・デコーダ３０に送信されてもよいし、又はビデオ・デコーダ３０によるその後の送信又は検索のために記録されてもよい。
【０１４５】
エントロピー符号化ユニット５６は、本願の技術によれば、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオ・エンコーダ２０は、コンテキストの各々に対して使用される、複数のイントラ予測モード・インデックス・テーブル、及び複数の修正されたイントラ予測モード・インデックス・テーブル（コードワード・マッピング・テーブルとも言及される）を含むことが可能な送信されたビットストリーム構成データの中に、様々なブロックの符号化コンテキストの定義、最確モード（most  probable  mode，MPM）の指示、イントラ予測モード・インデックス・テーブル、及び修正されたイントラ予測モード・インデックス・テーブルを含むことができる。
【０１４６】
逆量子化ユニット５８及び逆変換ユニット６０はそれぞれ逆量子化及び逆変換を実行し、ピクセル・ドメイン内の残差ブロックを再構成し、これは、以後、参照ピクチャの参照ブロックとして使用される。動き補償ユニット４４は、１つの参照ピクチャ・リスト内の１つの参照ピクチャの残差ブロックと予測ブロックとを加算することによって、参照ブロックを計算することができる。また、動き補償ユニット４４は、再構成された残差ブロックに、１つ以上の補間フィルタを適用して、動き推定のためのサブ整数ピクセル値を計算してもよい。加算器６２は、再構成された残差ブロックと、動き補償ユニット４４によって生成された動き補償された予測ブロックとを加算して、参照ピクチャ・ストレージ６４に記憶される参照ブロックを生成する。参照ブロックは、後続のビデオ・フレーム又はピクチャにおけるブロックに関してインター予測を実行するための参照ブロックとして、動き推定ユニット４２及び動き補償ユニット４４によって使用されてもよい。
【０１４７】
図３は、本願の実施形態によるビデオ・デコーダ３０の概略ブロック図である。図３の実現可能な実装において、ビデオ・デコーダ３０は、エントロピー復号化ユニット８０、予測ユニット８１、逆量子化ユニット８６、逆変換ユニット８８、加算器９０、及び参照ピクチャ・ストレージ９２を含む。
【０１４８】
参照ピクチャ・ストレージ９２は、ターゲット・ストレージ空間を提供するように構成されることが可能である。ターゲット・ストレージ空間は、ＭＶＤを記憶するために使用され、即ち、最終的な動きベクトルと初期の動きベクトルとの間の差分を記憶するために使用される。幾つかの実施形態では、ターゲット・ストレージ空間は、最終的な動きベクトルを記憶するために使用される。本願のこの実施形態では、更新された最終的な動きベクトル、又はターゲット・ストレージ空間に記憶されたＭＶＤは、別のＰＵの符号化プロセスで使用されることが可能である。例えば、マージ・モードにおける復号化プロセスでは、更新されていない初期の動きベクトルと更新された最終的な動きベクトルとが、異なる時間に別々に記憶される。従って、処理対象のＰＵが、別のＰＵについて予測された動きベクトルを取得する必要がある場合、特定の条件下で、処理対象のＰＵは、別のＰＵの更新されていない初期の動きベクトルを、別のＰＵの動きベクトルとして、直接的に使用することが可能であり、別のＰＵの動きベクトルが更新された後に、別のブロックの動きベクトルを得る必要はない。
【０１４９】
ターゲット・ストレージ空間は、参照ピクチャ・ストレージ９２以外のメモリ、例えば、新しく追加されたメモリによって提供されてもよいことに留意すべきである。これは本願の実施形態で具体的には限定されない。
【０１５０】
関連技術において、ビデオ・デコーダ３０がマージ・モードで動作する場合に、ターゲット・ストレージ空間の中身が空であるか、又はゼロ・ベクトルであること、即ち、ビデオ・デコーダ３０がマージ・モードで動作する場合に、ターゲット・ストレージ空間は、復号化の間に使用されず、復号化の間に、処理対象のＰＵによって得られる他のＰＵの予測された動きベクトルは、他のＰＵの更新された最終的な動きベクトルであることに留意すべきである。従って、処理対象のＰＵは、他のＰＵに対する予測された動きベクトルが更新された後に限り、他のＰＵに対する予測された動きベクトルを得ることが可能であり、その結果、復号化の間に復号化遅延が生じる。しかしながら、ビデオ・デコーダ３０が非マージ・モードで動作する場合、ターゲット・ストレージ空間が使用されてもよい。例えば、ＡＭＶＰモードでは、ビデオ・デコーダ３０は、復号化により、処理対象のＰＵのためのＭＶＤを取得することができ、その結果、ビデオ・デコーダ３０は、初期の動きベクトルと処理対象のＰＵに対するＭＶＤとに基づいて、処理対象のＰＵに対する最終的な動きベクトルを取得することができる。
【０１５１】
予測ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。幾つかの実現可能な実装において、ビデオ・デコーダ３０は、図４のビデオ・エンコーダ２０に関して説明した符号化プロセスと逆の例示的な復号化プロセスを実行することができる。
【０１５２】
復号化の間に、ビデオ・デコーダ３０は、ビデオ・エンコーダ２０から、符号化されたビデオ・スライス及び関連するシンタックス要素のビデオ・ブロックを表すエンコードされたビデオ・ビットストリームを受信する。ビデオ・デコーダ３０のエントロピー復号化ユニット８０は、ビットストリームを復号化し、量子化された係数、動きベクトル、及び他のシンタックス要素を生成する。エントロピー復号化ユニット８０は、動きベクトル及び他のシンタックス要素を予測ユニット８１に転送する。ビデオ・デコーダ３０は、ビデオ・スライス・レベル及び／又はビデオ・ブロック・レベルでシンタックス要素を受信することができる。
【０１５３】
ビデオ・スライスが、イントラ復号化された（Ｉ）スライスに復号化された場合、予測ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと、現在のフレーム又はピクチャの以前に復号化されたブロックのデータとに基づいて、現在のビデオ・スライスのビデオ・ブロックの予測データを生成することができる。
【０１５４】
ビデオ・ピクチャが、インター復号化されたスライス（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）に復号化された場合、予測ユニット８１の動き補償ユニット８２は、エントロピー復号化ユニット８０から受信した動きベクトル及び他のシンタックス要素に基づいて、現在のビデオ・ピクチャのビデオ・ブロックの予測ブロックを生成する。予測ブロックは、１つの参照ピクチャ・リスト内の１つの参照ピクチャから生成されてもよい。ビデオ・デコーダ３０は、参照ピクチャ・ストレージ９２に記憶された参照ピクチャに基づいて、参照ピクチャ・リスト（リスト０及びリスト１）を構成するためにデフォルトの構成技術を使用することができる。
【０１５５】
動き補償ユニット８２は、動きベクトル及び他のシンタックス要素を解析することによって、現在のビデオ・スライスのビデオ・ブロックの予測情報を決定し、予測情報を用いて、復号化されているビデオ・ブロックの予測ブロックを生成する。例えば、動き補償ユニット８２は、受信したシンタックス要素の幾つかを用いて、ビデオ・スライスのビデオ・ブロックを復号化するための予測（例えば、イントラ予測又はインター予測）モード、インター予測スライス・タイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）スライスの１つ以上の参照ピクチャ・リストの構成情報、スライスの各々のインター符号化されたビデオ・ブロックの動きベクトル、スライスの各々のインター復号化されたビデオ・ブロックのインター予測ステータス、及び現在のビデオ・スライスにおけるビデオ・ブロックを復号化するための他の情報を決定する。
【０１５６】
動き補償ユニット８２は、更に、補間フィルタを用いて補間を実行してもよい。動き補償ユニット８２は、例えば、ビデオ・ブロックの符号化の間に、ビデオ・エンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算することができる。本願では、動き補償ユニット８２は、受信したシンタックス要素に基づいて、ビデオ・エンコーダ２０によって使用される補間フィルタを決定し、補間フィルタを用いて予測ブロックを生成することができる。
【０１５７】
ＰＵがインター予測によって符号化される場合、動き補償ユニット８２は、ＰＵに対する候補の予測された動きベクトルのリストを生成することができる。ビットストリームは、ＰＵのための候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を識別するためのデータを含んでもよい。ＰＵに対する候補の予測された動きベクトルを生成した後に、動き補償ユニット８２は、ＰＵに対する動き情報によって示される１つ以上の参照ブロックに基づいて、ＰＵに対する予測ピクチャ・ブロックを生成することができる。ＰＵの参照ブロックは、ＰＵの時間的なピクチャとは異なる時間的なピクチャの中に位置していてもよい。動き補償ユニット８２は、ＰＵに対する候補の予測された動きベクトルのリストにおいて選択された動き情報に基づいて、ＰＵの動き情報を決定することができる。
【０１５８】
本願の実施形態では、動き補償ユニット８２は、マージ・モードにおける候補の予測された動きベクトルのリストを設定する際に、処理対象のＰＵの参照ＰＵに対する予測された動きベクトルを、候補の予測された動きベクトルのリストに記憶してもよく、参照ＰＵの予測された動きベクトルは、参照ＰＵの更新されていない初期の動きベクトルであってもよく、或いは参照ＰＵの更新された最終的な動きベクトルであってもよいことに留意すべきである。参照ＰＵの更新された最終的な動きベクトルは、ターゲット・ストレージ空間に記憶される参照ＰＵのための動きベクトルに基づいて取得されてもよい。例えば、ターゲット・ストレージ空間がＭＶＤを記憶する場合、参照ＰＵのための最終的な動きベクトルは、参照ＰＵのための初期の動きベクトルとターゲット・ストレージ空間に記憶されたＭＶＤとを加算することによって、取得されることが可能である。ターゲット・ストレージ空間が、参照ＰＵのための最終的な動きベクトルを記憶する場合に、参照ＰＵのための最終的な動きベクトルは、ターゲット・ストレージ空間から直接的に取得されることが可能である。参照ＰＵに対する予測された動きベクトルは、次のような方法で、候補の予測された動きベクトルのリストに記憶されてもよい：参照ＰＵと現在のＰＵとが同じＣＴＢ又はＣＴＢの行レンジにある場合に、参照ユニットに対する更新されていない初期の動きベクトルが、候補の予測された動きベクトルのリストに記憶される；又は参照ＰＵと現在のＰＵとが同じＣＴＢ又はＣＴＢの行レンジにない場合に、参照ユニットに対する更新された最終的な動きベクトルが、候補の予測された動きベクトルのリストに記憶される。
【０１５９】
逆量子化ユニット８６は、ビットストリームで提供され且つエントロピー復号化ユニット８０によって復号化される量子化変換係数に対して逆量子化（例えば、量子化解除）を実行する。逆量子化プロセスは、ビデオ・スライス内の各ビデオ・ブロックについてビデオ・エンコーダ２０によって計算された量子化パラメータに基づいて量子化度を決定し、適用されるべき逆量子化度を同様に決定することを含むことが可能である。逆変換ユニット８８は、変換係数に対して逆変換（例えば、逆ＤＣＴ、逆整数変換、又は概念的に類似する逆変換プロセス）を実行し、ピクセル・ドメインにおいて残差ブロックを生成する。
【０１６０】
動き補償ユニット８２が、動きベクトル及び他のシンタックス要素に基づいて、現在のビデオ・ブロックの予測ブロックを生成した後に、ビデオ・デコーダ３０は、逆変換ユニット８８からの残差ブロックと、動き補償ユニット８２によって生成された対応する予測ブロックとの加算演算を実行して、復号化されたビデオ・ブロックを形成する。加算器９０は、加算演算を実行する１つ以上の構成要素である。必要な場合には、ブロッキング・アーチファクトを除去するために、復号化されたブロックに関してフィルタリングを実行するために、デブロッキング・フィルタが使用されてもよい。別のループ・フィルタ（復号化ループの中又は後）が、ピクセルを平滑化するために使用されてもよいし、又は別の方法でビデオ品質が改善されてもよい。次いで、所与のフレーム又はピクチャ内の復号化されたビデオ・ブロックは、参照ピクチャ・ストレージ９２に記憶される。参照ピクチャ・ストレージ９２は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャ・ストレージ９２はまた、図１のディスプレイ装置３２のようなディスプレイ装置で以後に提示される復号化されたビデオを記憶する。
【０１６１】
上述したように、本願の技術は、例えばインター復号化に関連する。本願の技術は、本願で説明される任意のビデオ・デコーダによって実行されてもよく、ビデオ・デコーダは、図１ないし図３に示され説明される（例えば）ビデオ・エンコーダ２０及びビデオ・デコーダ３０を含むことは理解されるべきである。具体的には、実現可能な実装において、図２で説明された予測ユニット４１は、ビデオ・データのブロックの符号化中にインター予測が実行される場合に、以下で説明される特定の技術を実行することができる。別の実現可能な実装において、図３で説明された予測ユニット８１は、ビデオ・データのブロックの復号化中にインター予測が実行される場合に、以下で説明される特定の技術を実行することができる。従って、一般的な「ビデオ・エンコーダ」又は「ビデオ・デコーダ」に対する参照は、ビデオ・エンコーダ２０、ビデオ・デコーダ３０、又は別のビデオ符号化若しくは符号化ユニットを含んでもよい。
【０１６２】
図４は、本願の実施形態によるインター予測モジュールの概略ブロック図である。インター予測モジュール１２１は、例えば、動き推定ユニット４２及び動き補償ユニット４４を含むことができる。ＰＵとＣＵの間の関係は、ビデオ圧縮コーディング規格によって異なる。インター予測モジュール１２１は、複数のパーティショニング・パターンに従って、現在のＣＵをＰＵに区分けすることができる。例えば、インター予測モジュール１２１は、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎのパーティショニング・パターンに従って、現在のＣＵをＰＵに区分けすることができる。別の実施形態では、現在のＣＵは現在のＰＵである。これに限定されない。
【０１６３】
インター予測モジュール１２１は、各ＰＵに関して整数動き推定（integer  motion  estimation，IME）、次いで分数動き推定（fraction  motion  estimation，FME）を行うことができる。インター予測モジュール１２１がＰＵに対してＩＭＥを実行する場合、インター予測モジュール１２１は、ＰＵに対する参照ブロックについて１つ以上の参照ピクチャを探索することができる。ＰＵに対する参照ブロックを発見した後に、インター予測モジュール１２１は、ＰＵとＰＵに対する参照ブロックとの間の空間的変位を示す動きベクトルを、整数の精度で生成することができる。インター予測モジュール１２１がＰＵに対してＦＭＥを実行する場合、インター予測モジュール１２１は、ＰＵに対してＩＭＥを実行することによって生成される動きベクトルを改善することができる。ＰＵに関してＦＭＥを実行することによって生成される動きベクトルは、サブ整数精度（例えば、１／２ピクセル精度又は１／４ピクセル精度）を有する可能性がある。ＰＵの動きベクトルを生成した後に、インター予測モジュール１２１は、ＰＵの動きベクトルを使用することによって、ＰＵの予測ピクチャ・ブロックを生成することができる。
【０１６４】
インター予測モジュール１２１がＰＵの動き情報をＡＭＶＰモードにおいてデコーダにシグナリングする幾つかの実現可能な実装において、インター予測モジュール１２１は、ＰＵのための候補の予測された動きベクトルのリストを生成することができる。候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含んでもよい。ＰＵのための候補の予測された動きベクトルのリストを生成した後に、インター予測モジュール１２１は、候補の予測された動きベクトルのリストから、候補の予測された動きベクトルを選択し、ＰＵのための動きベクトル差分（ＭＶＤ）を生成することができる。ＰＵに対するＭＶＤは、選択された候補の予測された動きベクトルによって示される動きベクトルと、ＩＭＥ及びＦＭＥによりＰＵに対して生成された動きベクトルとの間の差分を示すことができる。これらの実現可能な実装において、インター予測モジュール１２１は、候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を識別する、候補の予測された動きベクトルのインデックスを出力することができる。インター予測モジュール１２１は、ＰＵのＭＶＤを更に出力することができる。以下、本願の実施形態における図１１においてアドバンスト動きベクトル予測（ＡＭＶＰ）モードの実現可能な実装を詳細に説明する。
【０１６５】
ＰＵの動き情報を生成するために、ＰＵに対してＩＭＥ及びＦＭＥを実行することに加えて、インター予測モジュール１２１は、更に、ＰＵに対してマージ演算を実行してもよい。インター予測モジュール１２１がＰＵに対してマージ演算を実行する場合に、インター予測モジュール１２１は、ＰＵのための候補の予測された動きベクトルのリストを生成することができる。ＰＵのための候補の予測された動きベクトルのリストは、１つ以上のオリジナル候補の予測された動きベクトルと、１つ以上のオリジナル候補の予測された動きベクトルから導出された１つ以上の追加候補の予測された動きベクトルとを含んでもよい。候補の予測された動きベクトルのリスト内の１つ以上のオリジナル候補の予測された動きベクトルは、１つ以上の空間候補の予測された動きベクトルと時間候補の予測された動きベクトルとを含むことができる。空間候補の予測された動きベクトルは、現在のピクチャ内の別のＰＵに対する動き情報を示すことができる。時間候補の予測された動きベクトルは、現在のピクチャとは異なるピクチャ内の対応するＰＵの動き情報に基づいてもよい。時間候補の予測された動きベクトルは、時間的動きベクトル予測子（temporal  motion  vector  predictor，TMVP）と言及される場合もある。
【０１６６】
候補の予測された動きベクトルのリストを生成した後に、インター予測モジュール１２１は、候補の予測された動きベクトルのリストから、１つの候補の予測された動きベクトルを選択することができる。次に、インター予測モジュール１２１は、ＰＵの動き情報によって示される参照ブロックに基づいて、ＰＵの予測ピクチャ・ブロックを生成することができる。マージ・モードでは、ＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。図１０は、マージ・モードの例のフローチャートである。
【０１６７】
ＩＭＥ及びＦＭＥによりＰＵの予測ピクチャ・ブロックを生成し、マージ演算によりＰＵの予測ピクチャ・ブロックを生成した後に、インター予測モジュール１２１は、ＦＭＥ演算を実行することによって生成された予測ピクチャ・ブロック、又はマージ演算を実行することによって生成された予測ピクチャ・ブロックを選択することができる。幾つかの実現可能な実装において、インター予測モジュール１２１は、ＦＭＥ演算を実行することによって生成された予測ピクチャ・ブロックと、マージ演算を実行することによって生成された予測ピクチャ・ブロックとのレート歪コストを分析することによって、ＰＵの予測ピクチャ・ブロックを選択することができる。
【０１６８】
インター予測モジュール１２１が、各パーティショニング・パターンに従って現在のＣＵを区分けすることによって生成されたＰＵの予測ピクチャ・ブロックを選択した後に（幾つかの実装では、コーディング・ツリー・ユニットＣＴＵがＣＵに区分けされた後であり、ＣＵはより小さなＰＵに更には区分けされず、この場合、ＰＵはＣＵと同等である）、インター予測モジュール１２１は、現在のＣＵに対するパーティショニング・パターンを選択することができる。幾つかの実装において、インター予測モジュール１２１は、各パーティショニング・パターンに従って現在のＣＵを区分けすることによって生成されたＰＵの選択された予測ピクチャ・ブロックのレート歪コストを分析することによって、現在のＣＵのためのパーティショニング・パターンを選択することができる。インター予測モジュール１２１は、選択されたパーティショニング・パターンに属するＰＵに関連付けられた予測ピクチャ・ブロックを、残差生成モジュール１０２に出力することができる。インター予測モジュール１２１は、選択されたパーティショニング・パターンに属するＰＵの動き情報のシンタックス要素を、エントロピー符号化モジュール１１６に出力することができる。
【０１６９】
図４に示す概略図では、インター予測モジュール１２１は、ＩＭＥモジュール１８０Ａないし１８０Ｎ（「ＩＭＥモジュール１８０」と総称する）、ＦＭＥモジュール１８２Ａないし１８２Ｎ（「ＦＭＥモジュール１８２」と総称する）、モジュール１８４Ａないし１８４Ｎ（「マージ・モジュール１８４」と総称する）、ＰＵパターン意思決定モジュール１８６Ａないし１８６Ｎ（「ＰＵパターン意思決定モジュール１８６」と総称する）、及びＣＵパターン意思決定モジュール１８８（ＣＴＵ対ＣＵパターン意思決定プロセスを更に実行してもよい）を含む。
【０１７０】
ＩＭＥモジュール１８０、ＦＭＥモジュール１８２、及びマージ・モジュール１８４はそれぞれＩＭＥ演算、ＦＭＥ演算、及び現在のＣＵのＰＵに関するマージ演算を実行することができる。図４に示す概略図では、インター予測モジュール１２１は、ＣＵの各パーティショニング・パターンにおける各ＰＵについて、別個のＩＭＥモジュール１８０、別個のＦＭＥモジュール１８２、及び別個のマージ・モジュール１８４を含むものとして説明される。別の実現可能な実装では、インター予測モジュール１２１は、ＣＵの各パーティショニング・パターンにおける各ＰＵについて、個別のＩＭＥモジュール１８０も、個別のＦＭＥモジュール１８２も、個別のマージ・モジュール１８４も含まない。
【０１７１】
図４の概略図に示すように、ＩＭＥモジュール１８０Ａ、ＦＭＥモジュール１８２Ａ、及びマージ・モジュール１８４Ａはそれぞれ、２Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成されたＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ａは、ＩＭＥモジュール１８０Ａ、ＦＭＥモジュール１８２Ａ、及びマージ・モジュール１８４Ａによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７２】
ＩＭＥモジュール１８０Ｂ、ＦＭＥモジュール１８２Ｂ、及びマージ・モジュール１８４Ｂはそれぞれ、Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された左ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｂは、ＩＭＥモジュール１８０Ｂ、ＦＭＥモジュール１８２Ｂ、及びマージ・モジュール１８４Ｂによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７３】
ＩＭＥモジュール１８０Ｃ、ＦＭＥモジュール１８２Ｃ、及びマージ・モジュール１８４Ｃはそれぞれ、Ｎ×２Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された右ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｃは、ＩＭＥモジュール１８０Ｃ、ＦＭＥモジュール１８２Ｃ、及びマージ・モジュール１８４Ｃによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７４】
ＩＭＥモジュール１８０Ｎ、ＦＭＥモジュール１８２Ｎ、及びマージ・モジュール１８４はそれぞれ、Ｎ×Ｎのパーティショニング・パターンに従ってＣＵを区分けすることによって生成された右下ＰＵに対して、ＩＭＥ演算、ＦＭＥ演算、及びマージ演算を実行することができる。ＰＵモード意思決定モジュール１８６Ｎは、ＩＭＥモジュール１８０Ｎ、ＦＭＥモジュール１８２Ｎ、及びマージ・モジュール１８４Ｎによって生成される予測ピクチャ・ブロックの１つを選択することができる。
【０１７５】
ＰＵパターン意思決定モジュール１８６は、複数の可能な予測ピクチャ・ブロックのレート歪コストを分析することによって予測ピクチャ・ブロックを選択し、所与の復号化シナリオにおいて最適なレート歪コストを提供する予測ピクチャ・ブロックを選択することができる。例えば、限られた帯域幅を有するアプリケーションに対しては、ＰＵモード意思決定モジュール１８６は、圧縮比が増やされた予測ピクチャ・ブロックを好む可能性があり、他のアプリケーションに対しては、ＰＵモード意思決定モジュール１８６は、再構成されたビデオの品質が改善される予測ピクチャ・ブロックを好む可能性がある。ＰＵパターン意思決定モジュール１８６が現在のＣＵのＰＵに対する予測ピクチャ・ブロックを選択した後に、ＣＵパターン意思決定モジュール１８８は、現在のＣＵに対するパーティショニング・パターンを選択し、選択されたパーティショニング・パターンに属するＰＵに対する予測ピクチャ・ブロック及び動き情報を出力する。
【０１７６】
図５は、本願の実施形態によるコーディング・ユニットとコーディング・ユニットに関連付けられた隣接するピクチャ・ブロックとの一例の概略図であり、ＣＵ２５０とＣＵ２５０に関連付けられた例示的な候補の予測された動きベクトル位置２５２Ａないし２５２Ｅを示す概略図である。本願では、候補の予測された動きベクトル位置２５２Ａないし２５２Ｅは、まとめて候補の予測された動きベクトル位置２５２と言及される場合がある。候補の予測された動きベクトル位置２５２は、ＣＵ２５０と同じピクチャ内にある空間候補の予測された動きベクトルを表す。候補の予測された動きベクトル位置２５２ＡはＣＵ２５０の左にある。候補の予測された動きベクトル位置２５２ＢはＣＵ２５０の上にある。候補の予測された動きベクトル位置２５２ＣはＣＵ２５０の右上にある。候補の予測された動きベクトル位置２５２ＤはＣＵ２５０の左下にある。候補の予測された動きベクトル位置２５２ＥはＣＵ２５０の左上にある。図８は、インター予測モジュール１２１及び動き補償モジュール１６２が、候補の予測された動きベクトルのリストを生成することができる方法の実装例を示す。以下、インター予測モジュール１２１に関連して実装が説明される。しかしながら、動き補償モジュール１６２が、同じ技術を実装し、従って同じ候補の予測された動きベクトルのリストを生成してもよいことが理解されるべきである。本願のこの実施形態では、候補の予測された動きベクトル位置が位置するピクチャ・ブロックは、参照ブロックと呼ばれる。更に、参照ブロックは、空間参照ブロック、例えば２５２Ａないし２５２Ｅが位置するピクチャ・ブロックを含み、時間参照ブロック、例えば同一位置にある（co−located）ブロックが位置するピクチャ・ブロック、又は同一位置にあるブロックの空間的に隣接するピクチャ・ブロックを含む。
【０１７７】
図６は、本願の実施形態による、候補の予測された動きベクトルのリストを構成するための例示的なフローチャートである。図６の技術は、５つの候補の予測された動きベクトルを含むリストに基づいて説明されるが、本願で説明される技術は、代替的に、別のサイズのリストと共に使用されてもよい。５つの候補の予測された動きベクトルはそれぞれインデックス（例えば、０ないし４）を有することができる。図６の技術は一般的なビデオ・デコーダに基づいて説明される。一般的なビデオ・デコーダは、例えば、ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）又はビデオ・デコーダ（例えば、ビデオ・デコーダ３０）であってもよい。
【０１７８】
図６の実装に従って、候補の予測された動きベクトルのリストを再構成するために、ビデオ・デコーダは、先ず４つの空間候補を考察し（６０２）、各々の空間候補は、１つの予測された動きベクトルに対応し、４つの空間候補の予測された動きベクトルは、候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、２５２Ｃ、２５２Ｄを含む可能性がある。４つの空間候補の予測された動きベクトルは、現在のＣＵ（例えば、ＣＵ２５０）と同じピクチャ内にある４つのＰＵの動き情報に対応する。言い換えると、４つの空間候補の予測された動きベクトルは、４つのＰＵの予測された動きベクトルである。本願のこの実施形態では、４つの空間候補の予測された動きベクトルを取得する場合に、ビデオ・デコーダは先ず４つのＰＵを決定する必要がある。例えば、ビデオ・デコーダが４つのＰＵのうちの１つを決定するプロセスは、次のようなプロセスであってもよい：ＰＵと現在のＣＵが同一のＣＴＢ又はＣＴＢの行レンジにある場合には、ＰＵの更新されていない初期の動きベクトルが、ＰＵに対応する空間候補の予測された動きベクトルとして使用されるか、又は、ＰＵと現在のＣＵが同一のＣＴＢ又はＣＴＢの行レンジにない場合には、ＰＵの更新された最終的な動きベクトルが、ＰＵに対応する空間候補の予測された動きベクトルとして使用される。ＰＵのための更新された最終的な動きベクトルは、ＰＵが記憶されているターゲット・ストレージ空間から取得されることができる。この場合、ターゲット・ストレージ空間は、更新された最終的な動きベクトルを記憶する。幾つかの実施形態では、ターゲット・ストレージ空間はＭＶＤを記憶する。この場合、ＰＵのための更新された最終的な動きベクトルは、代替的に、ターゲット・ストレージ空間に記憶されたＭＶＤ及びＰＵのための更新されていない初期の動きベクトルに基づいて取得されてもよい。
【０１７９】
ビデオ・デコーダは、リスト内の４つの空間候補の予測された動きベクトルを、指定された順序で考慮することができる。例えば、候補の予測された動きベクトル位置２５２Ａが最初に考慮されてもよい。候補の予測された動きベクトル位置２５２Ａが利用可能である場合、候補の予測された動きベクトル位置２５２Ａはインデックス０に割り当てられてもよい。候補の予測された動きベクトル位置２５２Ａが利用不可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ａを、候補の予測された動きベクトルのリストに追加しない可能性がある。候補の予測された動きベクトル位置は、様々な理由で利用不可能であるかもしれない。例えば、候補の予測された動きベクトル位置が現在のピクチャに無い場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。別の実現可能な実装において、候補の予測された動きベクトル位置がイントラ予測を経る場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。別の実現可能な実装において、候補の予測された動きベクトル位置が、現在のＣＵに対応するスライスとは異なるスライスにある場合、候補の予測された動きベクトル位置は利用不可能である可能性がある。
【０１８０】
候補の予測された動きベクトル位置２５２Ａを考慮した後、ビデオ・デコーダは候補の予測された動きベクトル位置２５２Ｂを考慮してもよい。候補の予測された動きベクトル位置２５２Ｂが利用可能であり、候補の予測された動きベクトル位置２５２Ａとは異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂを、候補の予測された動きベクトルのリストに追加してもよい。この特定の文脈では、用語「同一」又は「異なる」は、候補の予測された動きベクトル位置が同一又は異なる動き情報に関連付けられることを意味する。従って、２つの候補の予測された動きベクトル位置が同じ動き情報を有する場合、２つの候補の予測された動きベクトル位置は同じであると考えられ、又は２つの候補の予測された動きベクトル位置が異なる動き情報を有する場合、２つの候補の予測された動きベクトル位置は異なると考えられる。候補の予測された動きベクトル位置２５２Ａが利用不可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂを、インデックス０に割り当てる可能性がある。候補の予測された動きベクトル位置２５２Ａが利用可能である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂを、インデックス１に割り当てる可能性がある。候補の予測された動きベクトル位置２５２Ｂが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａと同じである場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｂをスキップし、候補の予測された動きベクトル位置２５２Ｂを、候補の予測された動きベクトルのリストに追加しない。
【０１８１】
同様に、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを考慮して、候補の予測された動きベクトル位置２５２Ｃをリストに追加するかどうかを決定する。候補の予測された動きベクトル位置２５２Ｃが利用可能であり、候補の予測された動きベクトル位置２５２Ｂ及び２５２Ａと異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを、次の利用可能なインデックスに割り当てることができる。候補の予測された動きベクトル位置２５２Ｃが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａ及び２５２Ｂの少なくとも１つと同一である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｃを、候補の予測された動きベクトルのリストに追加しない。次に、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを考慮する。候補の予測された動きベクトル位置２５２Ｄが利用可能であり、候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、及び２５２Ｃと異なる場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを、次の利用可能なインデックスに割り当てることができる。候補の予測された動きベクトル位置２５２Ｄが利用不可能であるか、又は候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、及び２５２Ｃの少なくとも１つと同一である場合、ビデオ・デコーダは、候補の予測された動きベクトル位置２５２Ｄを、候補の予測された動きベクトルのリストに追加しない。前述の実装では、候補の予測された動きベクトル２５２Ａないし２５２Ｄを考慮して、候補の予測された動きベクトル２５２Ａないし２５２Ｄが、候補の予測された動きベクトルのリストに追加されるか否かを決定する例が、概略的に説明されている。しかしながら、幾つかの実装において、候補の予測された動きベクトル２５２Ａないし２５２Ｄの全てが、先ず候補の予測された動きベクトルのリストに追加されてもよく、次いで、反復的な候補の予測された動きベクトル位置が、候補の予測された動きベクトルのリストから除去される。
【０１８２】
ビデオ・デコーダが最初の４つの空間候補の予測された動きベクトルを考慮した後、候補の予測された動きベクトルのリストは、４つの空間候補の予測された動きベクトルを含む可能性があり、或いは４つより少ない空間候補の予測された動きベクトルを含む可能性がある。リストが４つの空間候補の予測された動きベクトルを含む場合（６０４でyes）、即ち、４つの空間候補を含む場合、ビデオ・デコーダは時間候補を考慮し（６０６）、各々の時間候補は１つの候補の予測された動きベクトルに対応する。時間候補の予測された動きベクトルは、現在のピクチャとは異なるピクチャの同一位置にあるＰＵの動き情報に対応する可能性がある。時間候補の予測された動きベクトルが利用可能であり、最初の４つの空間候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、インデックス４に割り当てる。時間候補の予測された動きベクトルが利用不可能であるか、又は最初の４つの空間候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない。従って、ビデオ・デコーダが時間候補の予測された動きベクトルを考慮した後（６０６）、候補の予測された動きベクトルのリストは、５つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル、及び６０４で考慮された時間候補の予測された動きベクトル）を含む可能性があり、或いは４つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル）を含む可能性がある。候補の予測された動きベクトルのリストが、５つの候補の予測された動きベクトルを含む場合（６０８においてyes）、即ち５つの候補を含む場合、ビデオ・デコーダはリストの構築を完了する。
【０１８３】
候補の予測された動きベクトルのリストが、４つの候補の予測された動きベクトルを含む場合（６０８においてNo）、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを考慮することができる（６１０）。第５の空間候補の予測された動きベクトルは、（例えば）候補の予測された動きベクトル位置２５２Ｅに対応してもよい。位置２５２Ｅに対応する候補の予測された動きベクトルが利用可能であり、位置２５２Ａ、２５２Ｂ、２５２Ｃ、及び２５２Ｄに対応する候補の予測された動きベクトルとは異なる場合、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、第５の空間候補の予測された動きベクトルを、インデックス４に割り当てることができる。位置２５２Ｅに対応する候補の予測された動きベクトルが利用不可能である場合、又は候補の予測された動きベクトル位置２５２Ａ、２５２Ｂ、２５２Ｃ、及び２５２Ｄに対応する候補の予測された動きベクトルのうちの１つと同一である場合、ビデオ・デコーダは、位置２５２に対応する候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。従って、第５の空間候補の予測された動きベクトルが考慮された後（６１０）、リストは、５つの候補の予測された動きベクトル（６０２で考慮された最初の４つの空間候補の予測された動きベクトル、及び６１０で考慮された第５の空間候補の予測された動きベクトル）を含む可能性があり、或いは４つの候補の予測された動きベクトル（６０２で検討された最初の４つの空間候補の予測された動きベクトル）を含む可能性がある。
【０１８４】
候補の予測された動きベクトルのリストが５つの候補を含む場合（６１２においてyes）、即ち、５つの候補の予測された動きベクトルを含む場合、ビデオ・デコーダは候補の予測された動きベクトルのリストの生成を完了する。候補の予測された動きベクトルのリストが４つの候補の予測された動きベクトルを含む場合（６１２においてNo）、ビデオ・デコーダは、リストが５つの候補を含むまで（６１６でyes）、即ち５つの候補の予測された動きベクトルを含むまで、マニュアルで生成された候補の予測された動きベクトルを追加する（６１４）。
【０１８５】
ビデオ・デコーダが最初の４つの空間候補の予測された動きベクトルを考慮した後に、リストが４つより少ない空間候補の予測された動きベクトルを含む場合（６０４においてNo）、ビデオ・デコーダは、第５の空間候補を考慮し（６１８）、即ち、第５の空間候補の予測された動きベクトルを考慮することができる。第５の空間候補の予測された動きベクトルは、（例えば）候補の予測された動きベクトル位置２５２Ｅに対応してもよい。位置２５２Ｅに対応する候補の予測された動きベクトルが利用可能であり、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、第５の空間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、第５の空間候補の予測された動きベクトルを、次の利用可能なインデックスに割り当てることができる。位置２５２Ｅに対応する候補の予測された動きベクトルが利用不可能であるか、又は候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、位置２５２Ｅに対応する候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。次いで、ビデオ・デコーダは、時間的な候補、即ち、時間的な予測された動きベクトルを考慮することができる（６２０）。時間候補の予測された動きベクトルが利用可能であり、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、時間候補の予測された動きベクトルを、次の利用可能インデックスに割り当てることができる。時間候補の予測された動きベクトルが利用不可能であるか、又は候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルの１つと同一である場合、ビデオ・デコーダは、時間候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加しない可能性がある。
【０１８６】
第５の空間候補の予測された動きベクトル（６１８）と時間候補の予測された動きベクトル（６２０）とが考慮された後に、候補の予測された動きベクトルのリストが、第５の空間候補の予測された動きベクトルを含む場合（６２２でyes）、ビデオ・デコーダは候補の予測された動きベクトルのリストの生成を完了する。候補の予測された動きベクトルのリストが、５つより少ない候補の予測された動きベクトルを含む場合（６２２においてNo）、ビデオ・デコーダは、リストが５つの候補の予測された動きベクトルを含むまで（６１６においてYes）、マニュアルで生成された候補の予測された動きベクトルを追加する（６１４）。
【０１８７】
本願の技術によれば、追加のマージ候補の予測された動きベクトルは、空間候補の予測された動きベクトル及び時間候補の予測された動きベクトルの後に、マニュアルで生成されることが可能であり、その結果、マージ候補の予測された動きベクトルのリストのサイズは、常に、指定された量のマージ候補の予測された動きベクトル（例えば、上述した図６の実現可能な実装における５つの候補の予測された動きベクトル）に等しくなる。追加的なマージ候補の予測された動きベクトルは、例えば、組み合わされた双方向予測マージ候補の予測された動きベクトル（候補の予測された動きベクトル１）、スケーリングされた双方向予測マージ候補の予測された動きベクトル（候補の予測された動きベクトル２）、及びゼロ・ベクトル・マージ候補の予測された動きベクトル（候補の予測された動きベクトル３）を含む可能性がある。追加のマージ候補の予測された動きベクトルの前述の３つのケースの具体的な説明については、図７ないし図９を参照されたい。
【０１８８】
図７は、本願の実施形態による、マージ・モード候補の予測された動きベクトルのリストに、結合された候補の動きベクトルを追加する例の概略図である。結合された双予測マージ候補の予測された動きベクトルは、オリジナルのマージ候補の予測された動きベクトルを結合することによって生成されることが可能である。具体的には、２つのオリジナル候補の予測された動きベクトル（ｍｖＬ０及びｒｅｆＩｄｘＬ０、又はｍｖＬ１及びｒｅｆＩｄｘＬ１を有する）を使用して、双予測マージ候補の予測された動きベクトルを生成することができる。図７では、２つの候補の予測された動きベクトルが、オリジナルのマージ候補の予測された動きベクトルのリストに含まれる。一方の候補の予測された動きベクトルの予測タイプはリスト０を使用することによる一方向予測であり、他方の候補の予測された動きベクトルの予測タイプはリスト１を使用することによる一方向予測である。この実現可能な実装では、ｍｖＬ０＿Ａ及びｒｅｆ０はリスト０から得られ、ｍｖＬ１＿Ｂ及びｒｅｆ０はリスト１から得られる。次いで、双予測マージ候補の予測された動きベクトル（リスト０におけるｍｖＬ０＿Ａ及びｒｅｆ０を、リスト１におけるｍｖＬ１＿Ｂ及びｒｅｆ０を有する）が生成されることが可能であり、双予測マージ候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なるかどうかが、検査される。双予測マージ候補の予測された動きベクトルが既存の候補の予測された動きベクトルと異なる場合、ビデオ・デコーダは、双予測マージ候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加することができる。
【０１８９】
図８は、本願の実施形態による、スケーリングされた候補の動きベクトルを、マージ・モード候補の予測された動きベクトルのリストに追加する例の概略図である。スケーリングされた双予測マージ候補の予測された動きベクトルは、オリジナルのマージ候補の予測された動きベクトルをスケーリングすることによって生成されてもよい。具体的には、１つのオリジナル候補の予測された動きベクトル（ｍｖＬＸ及びｒｅｆＩｄｘＬＸを有する）を使用して、双予測マージ候補の予測された動きベクトルを生成することができる。図８の実現可能な実装では、２つの候補の予測された動きベクトルが、オリジナルのマージ候補の予測された動きベクトルのリストに含まれる。一方の候補の予測された動きベクトルの予測タイプはリスト０を使用することによる一方向予測であり、他方の候補の予測された動きベクトルの予測タイプはリスト１を使用することによる一方向予測である。この実現可能な実装では、ｍｖＬ０＿Ａ及びｒｅｆ０はリスト０から得られ、ｒｅｆ０はリスト１にコピーされ、参照インデックスｒｅｆ０’として示される。次いで、ｍｖＬ０’＿Ａは、ｒｅｆ０及びｒｅｆ０’でｍｖＬ０＿Ａをスケーリングすることによって計算されることが可能である。スケーリングは、ＰＯＣ（Picture  Order  Count，POC）距離に依存する可能性がある。次に、双予測マージ候補の予測された動きベクトル（リスト０におけるｍｖＬ０＿Ａ及びｒｅｆ０、リスト１におけるｍｖＬ０’＿Ａ及びｒｅｆ０’を有する）を生成することが可能であり、双予測マージ候補の予測された動きベクトルが反復されているか否かが検査される。双予測マージ候補の予測された動きベクトルが反復されていない場合、双予測マージ候補の予測された動きベクトルが、マージ候補の予測された動きベクトルのリストに追加されることが可能である。
【０１９０】
図９は、本願の実施形態による、マージ・モード候補の予測された動きベクトルのリストに、ゼロ動きベクトルを追加する例の概略図である。ゼロ・ベクトル・マージ候補の予測された動きベクトルは、ゼロ・ベクトル及び参照されることが可能な参照インデックスを組み合わせることによって生成されることが可能である。ゼロ・ベクトル候補の予測された動きベクトルが反復されない場合、ゼロ・ベクトル候補の予測された動きベクトルは、マージ候補の予測された動きベクトルのリストに追加されることが可能である。各々の生成されたマージ候補の予測された動きベクトルの動き情報は、リスト内の以前の候補の予測された動きベクトルの動き情報と比較されることが可能である。
【０１９１】
実現可能な実装において、新しく生成された候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なる場合、生成された候補の予測された動きベクトルは、マージ候補の予測された動きベクトルのリストに追加される。候補の予測された動きベクトルが、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと異なるかどうかを決定するプロセスは、しばしば、プルーニング（pruning）と呼ばれる。プルーニングにより、各々新しく生成された候補の予測された動きベクトルは、リスト内の既存候補の予測された動きベクトルと比較されることが可能である。幾つかの実現可能な実装において、プルーニング処理は、１つ以上の新しい候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと比較し、候補の予測された動きベクトルのリストに存在する候補の予測された動きベクトルと同一である新しい候補の予測された動きベクトルを追加することをスキップすることを含むことが可能である。幾つかの他の実現可能な実装において、プルーニング処理は、１つ以上の新しい候補の予測された動きベクトルを、候補の予測された動きベクトルのリストに追加し、次いで、反復した候補の予測された動きベクトルをリストから除外することを含む可能性がある。
【０１９２】
本願の実現可能な実装において、インター予測の間に、処理対象ピクチャ・ブロックの動き情報を予測する方法は：処理対象のピクチャ・ブロックが位置するピクチャにおいて動きベクトルが決定される少なくとも１つのピクチャ・ブロックの動き情報を取得するステップであって、動きベクトルが決定される少なくとも１つのピクチャ・ブロックは、処理対象のピクチャ・ブロックに隣接しないピクチャ・ブロックであって、その動きベクトルが決定されているピクチャ・ブロックを含む、ステップと、第１識別情報を取得するステップであって、第１識別情報は、動きベクトルが決定される少なくとも１つのピクチャ・ブロックの動き情報においてターゲット動き情報を決定するために使用される、ステップと、ターゲット動き情報に基づいて、処理対象ピクチャ・ブロックの動き情報を予測するステップとを含む。
【０１９３】
図１０は、本願の実施形態によるマージ・モードの一例のフローチャートである。ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）は、マージ演算２００を実行することができる。別の実現可能な実装において、ビデオ・エンコーダは、マージ演算２００とは異なるマージ演算を実行する可能性がある。例えば、別の実現可能な実装において、ビデオ・エンコーダはマージ演算を実行することが可能であり、ビデオ・エンコーダは、マージ演算２００のステップより多い又は少ないステップ、或いはマージ演算２００のステップとは異なるステップを実行する。別の実現可能な実装において、ビデオ・エンコーダは、マージ演算２００のステップを異なる順序で、又は並列で実行することができる。エンコーダは、更に、スキップ（skip）モードで符号化されたＰＵに対してマージ演算２００を実行してもよい。
【０１９４】
ビデオ・エンコーダがマージ演算２００を開始した後、ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２０２）。ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・エンコーダは、図７から図９に関連して以下で説明される技術例の１つに従って、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。
【０１９５】
上記のように、現在のＰＵの候補の予測された動きベクトルのリストは、時間候補の予測された動きベクトルを含む可能性がある。時間候補の予測された動きベクトルは、時間的な同一位置にあるＰＵの動き情報を示すことができる。同一位置にあるＰＵは、ピクチャ・フレーム内で、現在のＰＵと同じ位置に空間的に位置していてもよいが、現在のピクチャの代わりに参照ピクチャ内に位置していてもよい。本願では、対応する時間的ＰＵを含む参照ピクチャは、関連する参照ピクチャとして言及されてもよい。この出願において、関連する参照ピクチャの参照ピクチャ・インデックスは、関連する参照ピクチャ・インデックスとして言及されてもよい。上述のように、現在のピクチャは、１つ以上の参照ピクチャ・リスト（例えば、リスト０及びリスト１）に関連付けられてもよい。参照ピクチャ・インデックスは、参照ピクチャ・リスト内の参照ピクチャの位置を示すことによって、参照ピクチャを示すことができる。幾つかの実現可能な実装において、現在のピクチャは、結合された参照ピクチャ・リストに関連付けられてもよい。
【０１９６】
一部のビデオ・エンコーダでは、関連する参照ピクチャ・インデックスは、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵの参照ピクチャ・インデックスである。これらのビデオ・エンコーダでは、現在のＰＵに関連して位置する参照インデックス・ソースは、現在のＰＵの左又は現在のＰＵの上に隣接している。本願では、ＰＵに関連するピクチャ・ブロックが特定の場所を含む場合、ＰＵは特定の場所を「カバー」することができる。これらのビデオ・エンコーダでは、参照インデックスのソース位置が利用不可能である場合、ビデオ・エンコーダは参照ピクチャ・インデックス０を使用してもよい。
【０１９７】
一部の例において、現在のＰＵに関連する参照インデックス・ソース位置は、現在のＣＵ内にある。これらの例では、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵは、ＰＵが現在のＣＵの上又は左にある場合に、利用可能であると考えられてもよい。しかしながら、ビデオ・エンコーダは、同一位置にあるＰＵを含む参照ピクチャを決定するために、現在のＣＵの別のＰＵの動き情報にアクセスする必要があるかもしれない。従って、これらのビデオ・エンコーダは、現在のＣＵに属するＰＵに対する動き情報（例えば、参照ピクチャ・インデックス）を使用して、現在のＰＵの時間候補の予測された動きベクトルを生成することができる。換言すれば、これらのビデオ・エンコーダは、現在のＣＵに属するＰＵの動き情報を使用して、時間的な候補の予測された動きベクトルを生成することができる。従って、ビデオ・エンコーダは、現在のＰＵと、現在のＰＵに関連する参照インデックス・ソース位置をカバーするＰＵとに関する候補の予測された動きベクトルのリストを、並列的に生成することはできないかもしれない。
【０１９８】
本願の技術によれば、ビデオ・エンコーダは、他の如何なるＰＵの参照ピクチャ・インデックスも参照することなく、関連する参照ピクチャ・インデックスを明示的に設定することができる。このようにして、ビデオ・エンコーダは、現在のＰＵ及び現在のＣＵの別のＰＵについて、候補の予測された動きベクトルのリストを、並列的に生成することができる。ビデオ・エンコーダは、関連する参照ピクチャ・インデックスを明示的に設定するので、関連する参照ピクチャ・インデックスは、現在のＣＵの他の如何なるＰＵの動き情報にも基づいていない。ビデオ・エンコーダが、関連付けられた参照ピクチャ・インデックスを明示的に設定する幾つかの実現可能な実装では、ビデオ・エンコーダは、関連付けられた参照ピクチャ・インデックスを、固定された前もってセットされた参照ピクチャ・インデックス（例えば、０）に常に設定することができる。このようにして、ビデオ・エンコーダは、前もってセットされた参照ピクチャ・インデックスによって示された参照フレーム内の同一位置にあるＰＵの動き情報に基づいて、時間的な候補の予測された動きベクトルを生成することが可能であり、時間的な候補の予測された動きベクトルを、現在のＣＵの候補の予測された動きベクトルのリストに追加することが可能である。また、候補の予測された動きベクトルのリストは、参照フレーム・リストでもある。
【０１９９】
ビデオ・エンコーダが、関連付けられた参照ピクチャ・インデックスを明示的に設定する実現可能な実装では、ビデオ・エンコーダは、シンタックス構造（例えば、ピクチャ・ヘッダ、スライス・ヘッダ、ＡＰＳ、又は他のシンタックス構造）において、関連付けられた参照ピクチャ・インデックスを明示的にシグナリングすることができる。この実現可能な実装では、ビデオ・エンコーダは、各ＬＣＵ（即ち、ＣＴＵ）、ＣＵ、ＰＵ、ＴＵ、又は別のタイプのサブ・ブロックのための関連する参照ピクチャ・インデックスを、デコーダにシグナリングすることができる。例えば、ビデオ・エンコーダは、ＣＵの各ＰＵに対する関連する参照ピクチャ・インデックスが「１」に等しいことを、シグナリングすることができる。
【０２００】
幾つかの実現可能な実装では、関連する参照ピクチャ・インデックスは、明示的ではなく暗黙的に設定されてもよい。これらの実現可能な実装では、たとえこれらの位置が現在のＰＵに厳密に隣接していなかったとしても、ビデオ・エンコーダは、現在のＣＵ外側の位置をカバーするＰＵの参照ピクチャ・インデックスによって示される参照ピクチャ内のＰＵに対する動き情報を使用することによって、現在のＣＵのＰＵに対する候補の予測された動きベクトルのリスト内の各々の時間的な候補の予測された動きベクトルを生成することができる。
【０２０１】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおいて候補の予測された動きベクトルに関連する予測ピクチャ・ブロックを生成することができる（２０４）。ビデオ・エンコーダは、指示された候補の予測された動きベクトルの動き情報に基づいて現在のＰＵの動き情報を決定し、次いで、候補の予測された動きベクトルに関連する予測ピクチャ・ブロックを生成するために、現在のＰＵの動き情報によって示された１つ以上の参照ブロックに基づいて予測ピクチャ・ブロックを生成することができる。次いで、ビデオ・エンコーダは、候補の予測された動きベクトルのリストから、１つの候補の予測された動きベクトルを選択することができる（２０６）。ビデオ・エンコーダは、候補の予測された動きベクトルを種々の方法で選択することができる。例えば、ビデオ・エンコーダは、候補の予測された動きベクトルに関連する各々の予測ピクチャ・ブロックのレート歪コストを分析することによって、１つの候補の予測された動きベクトルを選択することができる。
【０２０２】
候補の予測された動きベクトルを選択した後に、ビデオ・エンコーダは、候補の予測された動きベクトル・インデックスを出力することができる（２０８）。また、候補の予測された動きベクトル・インデックスは、参照フレーム・リスト・インデックスでもあり、候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリストから選択された候補の予測された動きベクトルの位置を示すことができる。幾つかの実現可能な実装では、候補の予測された動きベクトル・インデックスは「ｍｅｒｇｅ＿ｉｄｘ」として表現されてもよい。
【０２０３】
図１１は、本願の実施形態によるアドバンスト動きベクトル予測モードの一例のフローチャートである。ビデオ・エンコーダ（例えば、ビデオ・エンコーダ２０）は、ＡＭＶＰ演算２１０を実行することができる。
【０２０４】
ビデオ・エンコーダがＡＭＶＰ演算２１０を開始した後、ビデオ・エンコーダは、現在のＰＵに対して１つ以上の動きベクトルを生成することができる（２１１）。ビデオ・エンコーダは、現在のＰＵのための動きベクトルを生成するために、整数動き推定及び分数動き推定を実行することができる。上述のように、現在のピクチャは、２つの参照ピクチャ・リスト（リスト０及びリスト１）と関連付けられる可能性がある。一方向予測が現在のＰＵで実行される場合、ビデオ・エンコーダは、現在のＰＵのためのリスト−０動きベクトル又はリスト−１動きベクトルを生成することができる。リスト−０動きベクトルは、現在のＰＵのためのピクチャ・ブロックと、リスト０における参照ピクチャの参照ブロックとの間の空間的変位を示すことができる。リスト−１動きベクトルは、現在のＰＵのためのピクチャ・ブロックと、リスト１における参照ピクチャの参照ブロックとの間の空間的変位を示すことができる。双方向予測が現在のＰＵで実行される場合、ビデオ・エンコーダは、現在のＰＵのためのリスト−０動きベクトル及びリスト−１動きベクトルを生成することができる。
【０２０５】
現在のＰＵに対する１つ以上の動きベクトルを生成した後、ビデオ・エンコーダは、現在のＰＵに対する予測ピクチャ・ブロックを生成してもよい（２１２）。ビデオ・エンコーダは、現在のＰＵに対する１つ以上の動きベクトルによって示される１つ以上の参照ブロックに基づいて、現在のＰＵに対する予測ピクチャ・ブロックを生成することができる。
【０２０６】
更に、ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２１３）。ビデオ・エンコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・エンコーダは、図６ないし図９に関連して以下で説明される１つ以上の実現可能な実装に従って、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。幾つかの実現可能な実装では、ビデオ・エンコーダがＡＭＶＰ演算２１０において候補の予測された動きベクトルのリストを生成する場合に、候補の予測された動きベクトルのリストは、２つの候補の予測された動きベクトルに制限される可能性がある。対照的に、ビデオ・エンコーダがマージ演算において候補の予測された動きベクトルのリストを生成する場合には、候補の予測された動きベクトルのリストは、より多くの候補の予測された動きベクトル（例えば、５つの候補の予測された動きベクトル）を含む可能性がある。
【０２０７】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおいて、各々の候補の予測された動きベクトルに対して１つ以上の動きベクトル差分（ＭＶＤ）を生成することができる（２１４）。ビデオ・エンコーダは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対する対応する動きベクトルとの間の差分を決定して、候補の予測された動きベクトルに対する動きベクトル差分を生成することができる。
【０２０８】
一方向予測が現在のＰＵに対して実行される場合、ビデオ・エンコーダは、各々の候補の予測された動きベクトルに対して単一のＭＶＤを生成することができる。双方向予測が現在のＰＵに対して実行される場合、ビデオ・エンコーダは、各々の候補の予測された動きベクトルに対して２つのＭＶＤを生成することができる。第１ＭＶＤは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対するリスト−０動きベクトルとの間の差分を示すことができる。第２ＭＶＤは、候補の予測された動きベクトルによって示される動きベクトルと、現在のＰＵに対するリスト−１動きベクトルとの間の差分を示すことができる。
【０２０９】
ビデオ・エンコーダは、候補の予測された動きベクトルのリストから１つ以上の候補の予測された動きベクトルを選択することができる（２１５）。ビデオ・エンコーダは、１つ以上の候補の予測された動きベクトルを、種々の方法で選択することができる。例えば、ビデオ・エンコーダは、符号化対象の動きベクトルの関連する動きベクトルに最小誤差で合致する候補の予測された動きベクトルを選択することができる。これは、候補の予測された動きベクトルに対する動きベクトル差分を表現するために必要なビット量を削減することができる。
【０２１０】
１つ以上の候補の予測された動きベクトルを選択した後、ビデオ・エンコーダは、現在のＰＵに対する１つ以上の参照ピクチャ・インデックスと、現在のＰＵに対する１つ以上の候補の予測された動きベクトル・インデックスと、１つ以上の選択された候補の予測された動きベクトルに対する１つ以上の動きベクトル差分とを出力することができる（２１６）。
【０２１１】
現在のピクチャが２つの参照ピクチャ・リスト（リスト０及びリスト１）に関連付けられ、一方向予測が現在のＰＵに対して実行される例において、ビデオ・エンコーダは、リスト０に対する参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１０」）又はリスト１に対する参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１１」）を出力することができる。ビデオ・エンコーダは、更に、候補の予測された動きベクトルのリスト内で、現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１０＿ｆｌａｇ」）を出力することができる。代替的に、ビデオ・エンコーダは、候補の予測された動きベクトルのリスト内で、現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１１＿ｆｌａｇ」）を出力することができる。ビデオ・エンコーダは、更に、現在のＰＵに対するリスト−０動きベクトル又はリスト−１動きベクトルに対するＭＶＤを出力することができる。
【０２１２】
現在のピクチャが２つの参照ピクチャ・リスト（リスト０及びリスト１）に関連付けられており、且つ双方向予測が現在のＰＵに対して実行される例において、ビデオ・エンコーダは、リスト０に対して参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１０」）及びリスト１に対して参照ピクチャ・インデックス（「ｒｅｆ＿ｉｄｘ＿１１」）を出力することができる。更に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおける現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１０＿ｆｌａｇ」）を出力することができる。更に、ビデオ・エンコーダは、候補の予測された動きベクトルのリストにおける現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックス（「ｍｖｐ＿１１＿ｆｌａｇ」）を出力することができる。ビデオ・エンコーダは、更に、現在のＰＵに対するリスト−０動きベクトルに対するＭＶＤと、現在のＰＵに対するリスト−１動きベクトルに対するＭＶＤとを出力することができる。
【０２１３】
図１２は、本願の実施形態による、ビデオ・デコーダ（例えば、ビデオ・デコーダ３０）によって実行される動き補償の一例のフローチャートである。
【０２１４】
ビデオ・デコーダが動き補償演算を実行する場合２２０、ビデオ・デコーダは、現在のＰＵに対して選択された候補の予測された動きベクトルの指示を受けることができる（２２２）。例えば、ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストにおいて選択された候補の予測された動きベクトルの位置を示す、候補の予測された動きベクトル・インデックスを受信することができる。
【０２１５】
現在のＰＵの動き情報がＡＭＶＰモードで符号化され、双方向予測が現在のＰＵに対して実行される場合、ビデオ・デコーダは、第１候補の予測された動きベクトル・インデックスと第２候補の予測された動きベクトル・インデックスとを受信することができる。第１候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリスト中の現在のＰＵに対するリスト−０動きベクトルの選択された候補の予測された動きベクトルの位置を示す。第２候補の予測された動きベクトル・インデックスは、候補の予測された動きベクトルのリスト中の現在のＰＵに対するリスト−１動きベクトルの選択された候補の予測された動きベクトルの位置を示す。幾つかの実現可能な実装において、単一のシンタックス要素が、２つの候補の予測された動きベクトル・インデックスを識別するために使用されることが可能である。
【０２１６】
更に、ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる（２２４）。ビデオ・デコーダは、現在のＰＵのための候補の予測された動きベクトルのリストを、種々の方法で生成することができる。例えば、ビデオ・デコーダは、図５ないし図９に関連して後述される技術を使用することによって、現在のＰＵのための候補の予測された動きベクトルのリストを生成することができる。ビデオ・デコーダが候補の予測された動きベクトルのリストのための時間的な候補の予測された動きベクトルを生成する場合に、ビデオ・デコーダは、図１０に関して上述したように、同一位置にあるＰＵを含む参照ピクチャを識別する参照ピクチャ・インデックスを明示的又は暗黙的に設定することができる。
【０２１７】
現在のＰＵに対する候補の予測された動きベクトルのリストを生成した後に、ビデオ・デコーダは、現在のＰＵに対する候補の予測された動きベクトルのリストにおける１つ以上の候補の予測された動きベクトルによって示される動き情報に基づいて、現在のＰＵに対する動き情報を決定することができる（２２５）。例えば、現在のＰＵの動き情報がマージ・モードで符号化される場合、現在のＰＵの動き情報は、選択された候補の予測された動きベクトルによって示される動き情報と同じであってもよい。現在のＰＵの動き情報がＡＭＶＰモードで符号化される場合、ビデオ・デコーダは、選択された候補の予測された動きベクトルによって示される１つ以上の動きベクトルとビットストリームで示される１つ以上のＭＶＤとを使用することによって、現在のＰＵのための１つ以上の動きベクトルを再構成することができる。現在のＰＵの参照ピクチャ・インデックス及び予測方向識別子は、１つ以上の参照ピクチャ・インデックス、及び１つ以上の選択された候補の予測された動きベクトルの１つ以上の予測方向識別子と同一であってもよい。現在のＰＵのための動き情報を決定した後に、ビデオ・デコーダは、現在のＰＵのための動き情報によって示される１つ以上の参照ブロックに基づいて、現在のＰＵのための予測ピクチャ・ブロックを生成することができる（２２６）。
【０２１８】
図１３は、本願の実施形態によるビデオ符号化中に動きベクトルを更新する一例のフローチャートである。処理対象のピクチャ・ブロックは、符号化対象のブロックである。
【０２１９】
１３０１：処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの初期の動きベクトルを取得する。
【０２２０】
実行可能な実装において、例えば、マージ・モードでは、処理対象のピクチャ・ブロックの予測された動きベクトルは、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用される。
【０２２１】
処理対象のピクチャ・ブロックの予測された動きベクトルは、本願の実施形態における図６ないし図９に示される方法、又はＨ．２６５規格又はＪＥＭ参照モードにおける任意の何れかの既存の予測された動きベクトル取得方法によって取得されることが可能である。これは限定されない。動きベクトル差分は、処理対象のピクチャ・ブロックに関連して取得されることが可能である。動き推定は、処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて決定された探索範囲内で実行され、動き推定後に得られた処理対象のピクチャ・ブロックの動きベクトルと処理対象のピクチャ・ブロックの予測された動きベクトルとの間の差分が、動きベクトル差分として使用される。
【０２２２】
双方向予測の間に、このステップは具体的には：処理対象のピクチャ・ブロックの前方予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの第１の初期の動きベクトルを取得するステップと、処理対象のピクチャ・ブロックの後方予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの第２の初期の動きベクトルを取得するステップとを含む。
【０２２３】
１３０２：初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、処理対象のピクチャ・ブロックの予測ブロックを取得する。詳細は以下の通りである：
【０２２４】
Ｓ１３０２１：処理対象のピクチャ・ブロックの参照フレーム・インデックスで示される処理対象のピクチャ・ブロックの参照フレームから、処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックを取得し、処理対象のピクチャ・ブロックの時間的な予測ブロックとして供給する。
【０２２５】
初期の動きベクトルは、第１の初期の動きベクトルと第２の初期の動きベクトルとを含む。第１の初期の動きベクトルは、処理対象のピクチャ・ブロックの第１の参照フレーム・リストに基づいて第１動き補正ブロックを示し、第１動き補正ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための参照ブロックである。第２の初期の動きベクトルは、処理対象のピクチャ・ブロックの第２の参照フレーム・リストに基づいて第２動き補正ブロックを示し、第２動き補正ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための参照ブロックである。
【０２２６】
１３０２２：１つ以上の最終的な動きベクトルを取得するために、初期の動きベクトルと、処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加える。ここで、各々の最終的な動きベクトルは探索位置を示す。
【０２２７】
前もってセットされた動きベクトル・オフセットは、前もってセットされたオフセット・ベクトル値であってもよいし、前もってセットされたオフセット・ベクトル精度であってもよいし、又は前もってセットされたオフセット・ベクトル・レンジであってもよい。前もってセットされた動きベクトル・オフセットの具体的な値、及び前もってセットされた動きベクトル・オフセットの量は、本発明のこの実施形態において限定されない。
【０２２８】
最終的な動きベクトルは、第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含む。第１の最終的な動きベクトルは、処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて第１動き補償ブロックを示し、第１動き補償ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための予測ブロックである。第２の最終的な動きベクトルは、処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて第２動き補償ブロックを示し、第２動き補償ブロックは、処理対象のピクチャ・ブロックにおける動き補償を実行するための予測ブロックである。
【０２２９】
１３０２３：１つ以上の最終的な動きベクトルによって示される１つ以上の探索位置において１つ以上の候補の予測ブロックを取得する。ここで、各々の探索位置は１つの候補予測ブロックに対応する。
【０２３０】
１３０２４：１つ以上の候補の予測ブロックから、時間的な予測ブロックからのピクセル差分が最小の候補の予測ブロックを、処理対象のピクチャ・ブロックの予測ブロックとして選択する。
【０２３１】
最小ピクセル差分はまた、最小歪コストとして理解されてもよい。この場合、予測ブロックの最終的な動きベクトルは、複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終的な動きベクトルである。歪コストは、複数の方法で計算されてもよいことが、理解されるべきである。例えば、候補予測ブロックと時間的な予測ブロックとのピクセル行列間の絶対差分の合計が計算されてもよいし、又は、ピクセル行列の平均が除去された後の絶対差分の合計が計算されてもよいし、又は、ピクセル行列の別の比較的正確な値が計算されてもよい。最小歪コストの具体的な内容は、本発明のこの実施形態では限定されない。
【０２３２】
双方向予測の間において、このステップは具体的には：処理対象のピクチャ・ブロックの第１参照フレーム・リスト・インデックスによって示される処理対象のピクチャ・ブロックの第１参照フレーム・リストから、処理対象のピクチャ・ブロックの第１の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得するステップであって、第１ピクチャ・ブロックは前方参照ブロックであり、相応して第１の初期の動きベクトルは前方の初期の動きベクトルであってもよい、ステップと、処理対象のピクチャ・ブロックの第２参照フレーム・リストによって示される処理対象のピクチャ・ブロックの第２参照フレーム・リストから、処理対象のピクチャ・ブロックの第２の初期の動きベクトルによって示される第２ピクチャ・ブロックを取得するステップであって、第２ピクチャ・ブロックは後方参照ブロックであり、相応して第２の初期の動きベクトルは後方の初期の動きベクトルであってもよい、ステップと、処理対象のピクチャ・ブロックの時間予測ブロック・ブロックを取得するために、第１ピクチャ・ブロック及び第２ピクチャ・ブロックに対する重み付け処理を実行するステップと、１つ以上の第１の最終的な動きベクトルを取得するために、処理対象のピクチャ・ブロックの第１の初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを加算し、１つ以上の第２の最終的な動きベクトルを取得するために、処理対象のピクチャ・ブロックの第２の初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを加算するステップと、１つ以上の第２の最終的な動きベクトルによって示される１つ以上の探索位置で１つ以上の第１候補予測ブロックを取得し、１つ以上の第２の最終的な動きベクトルによって示される１つ以上の探索位置で１つ以上の第１候補予測ブロックを取得するステップと、１つ以上の第１候補予測ブロックから、時間予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの第１予測ブロックとして選択し、１つ以上の後方の候補予測ブロックから、時間予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの第２予測ブロックとして選択するステップと、処理対象のピクチャ・ブロックの予測ブロックを取得するために、第１予測ブロック及び第２予測ブロックに対する重み付け処理を実行するステップとを含む。
【０２３３】
一部の実施形態では、複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終動きベクトルによって示される方向の別の動きベクトルが、代替的に、予測ブロックの最終的な動きベクトルとして使用されてもよい。具体的には、予測ブロックの最終的な動きベクトルは、第１の前もってセットされた条件に基づいて選択されてもよい。
【０２３４】
可能な実装において、複数の候補の最終的な動きベクトルは、複数の方向における複数の動きベクトルであってもよい。先ず、各方向の特定の精度が選択されてもよい。例えば、整数ピクセル精度を有する候補の最終的な動きベクトルが、各方向の第１ベクトルとして使用され、最小歪コストに対応する第１ベクトルが、複数の第１ベクトルから参照ベクトルとして選択される。参照ベクトルに対応する歪コストＡと、負の方向の参照ベクトルに対応する第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の第１の前もってセットされた関係が、第１の前もってセットされた条件を満たす場合、参照ベクトルが、予測ブロックの最終的な動きベクトルとして使用される。参照ベクトルに対応する歪コストＡと、負の方向の参照ベクトルに対応する第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の第１の前もってセットされた関係が、第１の前もってセットされた条件を満たさない場合において、Ａ及びＢが第２の前もってセットされた条件を満たすならば、第１ベクトルの長さは、第３ベクトルを得るために前もってセットされた精度で減らされ、第３ベクトルが、予測ブロックの第１ターゲット・ベクトルとして使用される。Ａ及びＢが第２の前もってセットされた条件を満たさない場合において、Ｂ及びＣが第３の前もってセットされた条件を満たすならば、第１ベクトルの長さは、第４ベクトルを得るために前もってセットされた精度で増やされ、第４ベクトルが、予測ブロックの第１ターゲット・ベクトルとして使用される。Ｂ及びＣが第３の前もってセットされた条件を満たさない場合には、特定のループ・カウントが設定される。各ループでは、参照ベクトルのオフセットが最初に更新される。具体的には、Ａ、Ｂ、Ｃの間の第２の前もってセットされた関係が第４の前もってセットされた条件を満たす場合、参照ベクトルのオフセットが更新される。Ａ、Ｂ、Ｃの間の第２の前もってセットされた関係が第４の前もってセットされた条件を満たさないか、又はループ・カウントが０まで減った場合、参照ベクトルのオフセットは更新されず、ループは終了する。ループが終了した後、オフセットの方向が、Ａ及びＣの値の関係に基づいて決定され、オフセットの方向は正方向又は負方向を含む。参照ベクトル、オフセット、及びオフセットの方向に基づいて第５ベクトルが取得され、第５ベクトルは、予測ブロックの第１ターゲット・ベクトルとして使用される。最終的に、第１ターゲット・ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。第１の前もってセットされた関係は、比例関係、差分関係、又は値の関係であってもよい。第１の前もってセットされた条件は、Ａ、Ｃ、及びＢの間の第１の前もってセットされた関係が、前もってセットされた値に等しいことであってもよいし、第２の前もってセットされた条件は、ＡがＢに等しいことであってもよいし、第３の前もってセットされた条件は、ＢがＣに等しいことであってもよい。第１の前もってセットされた関係、第１の前もってセットされた条件、前もってセットされた値、第２の前もってセットされた条件、第３の前もってセットされた条件、第２の前もってセットされた関係、及び第４の前もってセットされた条件は、本発明のこの実施形態において特に限定されない。
【０２３５】
例えば、８つの候補の動きベクトルが存在し、８つの候補の動きベクトルは、予測ブロックの上方向、下方向、左方向、及び右方向の４方向に位置する。各方向に２つの候補の動きベクトルが存在する。４つの第１ベクトルを得るために、最大長の候補の動きベクトルが、４つの方向のそれぞれからを先ず選択される。上方向の第１ベクトルが最小歪コストに対応する場合、上方向の第１ベクトルが参照ベクトルとして使用され、即ち、予測ブロックの最終的なベクトルは正方向の動きベクトルである。第１の前もってセットされた条件は、参照ベクトルに対応する歪コストＡと、第２ベクトルに対応する歪コストＣと、初期の動きベクトルに対応する歪コストＢとの間の比例関係が１であり、第２ベクトルは参照ベクトルとは逆方向の候補の動きベクトルであり、前もってセットされた精度は１／４精度であることが仮定される。この場合において、参照ベクトルに対応する歪コストが２であり、下方向の第１ベクトルに対応する歪コストが４であり、初期の動きベクトルに対応する歪コストが３である場合に、参照ベクトルに対応する歪コスト、下方向の第１ベクトルに対応する歪コスト、及び初期の動きベクトルに対応する歪コストの比例関係が（２×Ｂ）／（Ａ＋Ｃ）であり、比例関係は１であることが仮定される。この場合、参照ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。下方向の第１ベクトルに対応する歪コストが５であり、比率関係（２×Ｂ）／（Ａ＋Ｃ）が１でない場合、比率は第１の前もってセットされた条件を満たさない。この場合において、ＡがＢに等しい場合、参照ベクトルの長さは、第３ベクトルを得るために、前もってセットされた精度１／４で減らされ、第３ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。ＡがＢと等しくない場合において、ＢがＣに等しい場合、参照ベクトルの長さは、第４ベクトルを得るために、前もってセットされた精度１／４で増やされ、第４ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。ＢがＣと等しくない場合、ループ・カウントは３に設定され、参照ベクトルのオフセットの精度は、先ず、各ループで１／８に更新され、Ａ、Ｂ、及びＣの間の第２の前もってセットされた関係は、Ｋ＝｜（Ａ−Ｃ）×１６｜及びＴ＝（（Ａ＋Ｃ）−２×Ｂ）×８であると仮定される。ＫがＴ以上である場合に、第４の前もってセットされた条件は満たされ、参照ベクトルのオフセットの精度は１／１６に更新される。Ｋ及びＴは各ループにおいて、Ｋ＝Ｋ−Ｔ、及びＴ＝Ｔ／２に更新されることが仮定される。ループ・カウントが０まで減少すると、ループは終了する。ループが終了した後に、Ａ及びＣの値の関係に基づいて、オフセットの方向が決定される。ＡがＣ以上である場合、オフセットの方向は正の方向である。ＡがＣより小さい場合、オフセットの方向は負の方向である。参照ベクトル、オフセット、及びオフセットの方向に基づいて第５ベクトルが取得され、第５ベクトルは、予測ブロックの第１ターゲット・ベクトルとして使用される。最終的に、第１ターゲット・ベクトルは、予測ブロックの最終的な動きベクトルとして使用される。
【０２３６】
確かに、幾つかの実施形態では、参照ベクトルに対応する歪コストと、ターゲット方向の第３ベクトルに対応する歪コストとの間の第３の前もってセットされた関係が、第５の前もってセットされた条件を満たさない場合、第１ベクトルの長さは、第２ターゲット・ベクトルに対応する増加した歪コストが第２ターゲット条件を満たすまで、前もってセットされた精度によって増やされることが可能である。参照ベクトルに対応する歪コストと、ターゲット方向の第３ベクトルに対応する歪コストとの間の第３の前もってセットされた関係が、第５の前もってセットされた条件を満たす場合、第１ベクトルの長さは、第２ターゲット・ベクトルに対応する減少した歪コストがターゲット条件を満たすまで、前もってセットされた精度によって減らされることが可能である。ターゲット方向は参照ベクトルの方向以外の任意の方向である。第３の前もってセットされた関係、第５の前もってセットされた条件、及びターゲット条件は、本発明のこの実施形態において具体的に限定されない。
【０２３７】
幾つかの実施態様において、参照ベクトルに対応する歪コストのうちの第４の前もってセットされた関係、ターゲット方向の第３ベクトルに対応する歪コスト、及び中間ベクトルに対応する歪コストが、第６の前もってセットされた条件を満たす場合、第３ターゲット・ベクトルは、前もってセットされた精度によって参照ベクトルの長さを増加させることによって決定される。参照ベクトルに対応する歪コスト、ターゲット方向の第３ベクトルに対応する歪コスト、及び中間ベクトルに対応する歪コストの間の第４の前もってセットされた関係が、第６の前もってセットされた条件を満たさない場合、第３ターゲット・ベクトルは、前もってセットされた精度によって参照ベクトルの長さを減少させることによって決定される。中間ベクトルは、参照ベクトルと第２ベクトルとの間に位置する動きベクトルである。前もってセットされた精度で参照ベクトルを増加させ、前もってセットされた精度で参照ベクトルを減少させる処理は上述されており、詳細はここで再び説明しない。第４の前もってセットされた関係及び第６の前もってセットされた条件は、本発明のこの実施形態において具体的に限定されない。
【０２３８】
図１４は、本願の実施形態によるビデオ復号化の間に動きベクトルを更新する一例のフローチャートである。処理対象のピクチャ・ブロックは、復号化対象のブロックである。
【０２３９】
１４０１：インデックスで示される処理対象のピクチャ・ブロックの予測された動きベクトルに基づいて、処理対象のピクチャ・ブロックの初期の動きベクトルを取得する。
【０２４０】
実行可能な実装において、例えば、マージ・モードでは、処理対象のピクチャ・ブロックの予測された動きベクトルが、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用される。
【０２４１】
処理対象のピクチャ・ブロックの予測された動きベクトルは、本願の実施形態における図６ないし図９に示される方法、又はＨ．２６５規格又はＪＥＭ参照モードにおける既存の予測動きベクトル取得方法の任意の１つによって取得されることが可能である。これは限定されない。動きベクトル差分は、ビットストリームを解析することによって取得されることが可能である。
【０２４２】
双方向予測の間に、このステップは、具体的には：処理対象のピクチャ・ブロックの前方予測動きベクトルに基づいて、処理対象のピクチャ・ブロックの第１の初期の動きベクトルを取得するステップと、処理対象のピクチャ・ブロックの後方予測動きベクトルに基づいて、処理対象のピクチャ・ブロックの第２の初期の動きベクトルを取得するステップとを含む。
【０２４３】
１４０２：初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、処理対象のピクチャ・ブロックの予測ブロックを取得する。詳細は次のとおりである。
【０２４４】
Ｓ１４０２１：処理対象のピクチャ・ブロックの時間的な予測ブロックとして供給するために、処理対象のピクチャ・ブロックの参照フレーム・インデックスで示される処理対象のピクチャ・ブロックの参照フレームから、処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックを取得する。  
【０２４５】
１４０２２：１つ以上の最終的な動きベクトルを得るために、初期の動きベクトルと、処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加える。ここで、各々の最終的な動きベクトルは、探索位置を示す。
【０２４６】
１４０２３：１つ以上の最終的な動きベクトルによって示される１つ以上の探索位置において、１つ以上の候補の予測ブロックを取得する。各々の探索位置は１つの候補の予測ブロックに対応する。
【０２４７】
１４０２４：１つ以上の候補の予測ブロックから、時間的な予測ブロックからの最初のピクセル差分を有する候補の予測ブロックを、処理対象のピクチャ・ブロックの予測ブロックとして選択する。
【０２４８】
双方向予測の間に、このステップは具体的には：処理対象のピクチャ・ブロックの第１参照フレーム・インデックスによって示される処理対象のピクチャ・ブロックの第１参照フレームから、処理対象のピクチャ・ブロックの第１の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得し、処理対象のピクチャ・ブロックの第２参照フレーム・インデックスによって示される処理対象のピクチャ・ブロックの第２参照フレームから、処理対象のピクチャ・ブロックの第２の初期の動きベクトルによって示される第２ピクチャ・ブロックを取得するステップと、
処理対象のピクチャ・ブロックの時間的な予測ブロックを取得するために、第１ピクチャ・ブロックと第２ピクチャ・ブロックとに対して重み付け処理を実行するステップと、第１の初期の動きベクトルと処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加算して、１つ以上の第１の最終的な動きベクトルを取得し、第２の初期の動きベクトルと処理対象のピクチャ・ブロックの１つ以上の前もってセットされた動きベクトル・オフセットとを加算して、１つ以上の第２の最終的な動きベクトルを取得するステップと、１つ以上の第１の最終的な動きベクトルによって示される１つ以上の探索位置における１つ以上の前方候補予測ブロックを取得し、１つ以上の第２の最終的な動きベクトルによって示される１つ以上の探索位置における１つ以上の後方候補予測ブロックを取得するステップと、１つ以上の前方候補予測ブロックから、時間的な予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの前方予測ブロックとして選択し、１つ以上の後方候補予測ブロックから、時間的な予測ブロックからの最小ピクセル差分を有する候補予測ブロックを、処理対象のピクチャ・ブロックの後方予測ブロックとして選択するステップと、処理対象のピクチャ・ブロックの予測ブロックを得るために、前方予測ブロック及び後方予測ブロックに対して重み付け処理を実行するステップとを含む。
【０２４９】
幾つかの具体的な実施形態を用いることにより、以下、動きベクトルを更新する実装を詳細に説明する。図１３の符号化方法及び図１４の復号化方法で説明されているように、動きベクトルの更新はエンコーダ及びデコーダにおいて一貫していることが理解されるべきである。従って、以下の実施形態は、エンコーダ又はデコーダのみから説明される。エンコーダからの説明が提供される場合に、デコーダにおける実装は、エンコーダにおけるものと一貫性を維持しており、デコーダからの説明が提供される場合に、エンコーダにおける実装は、デコーダにおけるものと一貫性を維持していることが理解されるべきである。
【０２５０】
図１５に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が得られる。現在の復号化ブロックの前方及び後方の動きベクトル予測子は、それぞれ（−１０，４）及び（５，６）であり、現在の復号化ブロックのピクチャ・オーダ−・カウント（picture  order  count，POC）ＰＯＣは、４であると仮定する。ＰＯＣは、ピクチャの表示順序を示すために使用され、ピクチャの表示された参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣは、それぞれ２及び６である。この場合、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０２５１】
前方予測と後方予測とが現在の復号化ブロックに対して別々に実行されて、現在の復号化ブロックの初期の前方予測ブロック（forward  prediction  block，FPB）と初期の後方予測ブロック（backward  prediction  block，BPB）とを求める。初期の前方復号化予測ブロック及び初期の後方復号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定する。現在の復号化ブロックの第１復号化予測ブロック（decoding  prediction  block，DPB）は、ＦＰＢ１及びＢＰＢ１に対して重み付け加算を行うことによって得られ、ＤＰＢ１である仮定される。
【０２５２】
（−１０，４）及び（５，６）が前方及び後方動きベクトル予測器の基準入力として使用され、前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックに対して、第１精度の動き探索が別々に実行される。この場合、第１精度は１ピクセル・レンジにおける１／２ピクセル精度である。第１復号化予測ブロックＤＰＢ１が参照として使用される。各々の動き探索により得られる対応する新しい前方及び後方復号化予測ブロックが、第１復号化予測ブロックＤＰＢ１と比較されて、ＤＰＢ１からの最小の差分を有する新しい復号化予測ブロックを取得し、新しい復号化予測ブロックに対応する前方及び後方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）であると仮定される。
【０２５３】
ターゲット動きベクトル予測子は、（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトル予測子に基づいて第１復号化ブロックに対して別々に実行され、ターゲット復号化予測ブロックが、取得された新しい前方及び後方復号化予測ブロックに対して重み付け加算を行うことにより取得され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックは、ＤＰＢ２に更新される。
【０２５４】
第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して実行される場合、第１精度は任意の指定あれた精度であってもよく、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０２５５】
図１６に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が取得される。現在の復号化ブロックの前方動きベクトル予測子は（−２１，１８）であり、現在の復号化ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣは２であることが仮定される。この場合、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２である。
【０２５６】
前方予測が、現在の復号化ブロックに対して実行されて、現在の復号化ブロックの初期の前方予測ブロックを取得する。初期の前方復号化予測ブロックはＦＰＢ１であると仮定する。この場合、ＦＰＢ１は、現在の復号化ブロックの第１復号化予測ブロックとして使用され、第１復号化予測ブロックは、ＤＰＢ１として示される。
【０２５７】
（−２１，１８）が、前方動きベクトル予測器の基準入力として使用され、第１精度の動き探索が、前方動き予測参照ピクチャ・ブロックに対して実行される。この場合において、第１精度は５ピクセル・レンジにおける１ピクセル精度である。第１復号化予測ブロックＤＰＢ１が参照として使用される。各々の動き探索により取得された対応する新しい前方復号化予測ブロックは、第１復号化予測ブロックＤＰＢ１と比較され、ＤＰＢ１からの最小差分を有する新しい復号化予測ブロックを取得し、新しい復号化予測ブロックに対応する前方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、（−１９，１９）であると仮定される。
【０２５８】
ターゲット動きベクトル予測子は（−１９，１９）に更新され、前方予測がターゲット動きベクトル予測子に基づいて実行され、取得された新しい前方復号化予測ブロックは、ターゲット復号化予測ブロックとして使用され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックはＤＰＢ２に更新される。
【０２５９】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合に、第１精度は任意の指定された精度であってもよく、例えば整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよいことに留意すべきである。
【０２６０】
図１７Ａ及び図１７Ｂに示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測動き情報が得られる。現在のコーディング・ブロックの前方及び後方動きベクトル予測子はそれぞれ（−６，１２）及び（８，４）であり、現在のコーディング・ブロックが位置するピクチャのＰＯＣは８であり、参照ピクチャのインデックス値によって示される参照ピクチャのＰＯＣはそれぞれ４及び１２であることが仮定される。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは４であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは１２である。
【０２６１】
前方予測及び後方予測は、現在の符号化ブロックに対して別々に実行されて、現在の符号化ブロックの初期の前方符号化予測ブロックと初期の後方符号化予測ブロックとを取得する。初期の前方符号化予測ブロック及び初期の後方符号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定される。現在の符号化ブロックの第１符号化予測ブロックは、ＦＰＢ１及びＢＰＢ１に対して重み付け加算を実行することによって取得され、ＤＰＢ１であると仮定される。
【０２６２】
（−６，１２）及び（８，４）が前方及び後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して別々に実行される。第１符号化予測ブロックＤＰＢ１は、参照として使用される。各々の動き探索により取得された対応する新しい前方及び後方符号化予測ブロックは、第１符号化予測ブロックＤＰＢ１と比較され、ＤＢＩからの最小差分を有する新しい符号化予測ブロックを取得し、新しい符号化予測ブロックに対応する前方及び後方動きベクトル予測子が、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）であると仮定される。
【０２６３】
ターゲット動きベクトル予測子は（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトル予測子に基づいて第１符号化ブロックに対して別々に実行され、ターゲット符号化予測ブロックが、取得された新しい前方及び後方符号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ２であると仮定され、現在のコーディング・ブロックの符号化予測ブロックはＤＰＢ２に更新される。
【０２６４】
次いで、（−１１，４）及び（６，６）が前方及び後方の動きベクトル予測子の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに関して別々に実行される。現在のコーディング・ブロックの符号化予測ブロックＤＰＢ２は、参照として使用される。各々の動き探索で得られた対応する新しい前方及び後方符号化予測ブロックは、第１符号化予測ブロックＤＰＢ２と比較されて、ＤＰＢ２からの最小差分を有する新しい符号化予測ブロックを取得し、新しい符号化予測ブロックに対応する前方及び後方動きベクトル予測子が、新しいターゲット動きベクトル予測子として使用され、それぞれ（−７，１１）及び（６，５）であると仮定される。
【０２６５】
次いで、ターゲット動きベクトル予測子は（−７，１１）及び（６，５）に更新され、前方予測及び後方予測が、最新のターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、ターゲット符号化予測ブロックは、取得された新しい前方及び後方符号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ３であると仮定され、現在のコーディング・ブロックの符号化予測ブロックはＤＰＢ３に更新される。
【０２６６】
更に、ターゲット動きベクトル予測子は、上記の方法に従って連続的に更新されることが可能であり、サイクル数は限定されない。
【０２６７】
第１精度の動き探索が前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに対して実行される場合に、第１精度は任意の指定された精度であってもよく、例えば整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよいことに留意すべきである。
【０２６８】
幾つかの実現可能な実施形態では、条件が満たされるとサイクルは終了することが理解されるべきである。例えば、サイクルは、ＤＰＢｎとＤＰＢｎ−１との差分が閾値より小さい場合に終了し、ここで、ｎは２より大きな正の整数である。
【０２６９】
図１８に示すように、現在の復号化ブロックは、第１復号化ブロックであり、現在の復号化ブロックの予測された動き情報が得られる。現在の復号化ブロックの前方及び後方動きベクトルの値はそれぞれ（−１０，４）及び（５，６）であり、現在の復号化ブロックの前方及び後方動きベクトル差分はそれぞれ（−２，１）及び（１，１）であり、現在の復号化ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される参照ピクチャのＰＯＣはそれぞれ２及び６であることが仮定される。従って、現在の復号化ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０２７０】
前方予測及び後方予測は、現在の復号化ブロックに対して別々に実行されて、現在の復号化ブロックの初期の前方復号化予測ブロック（ＦＰＢ）及び初期の後方復号化予測ブロック（ＢＰＢ）を取得する。初期の前方復号化予測ブロック及び初期の後方復号化予測ブロックはそれぞれＦＰＢ１及びＢＰＢ１であると仮定される。現在の復号化ブロックの第１復号化予測ブロック（ＤＰＢ）は、ＦＰＢ１及びＢＰＢ１に関して重み付け加算を実行することによって取得され、ＤＰＢ１であると仮定される。
【０２７１】
前方動きベクトル予測子及び前方動きベクトル差分の合計と、後方動きベクトル予測子及び後方動きベクトル差分の合計とは、即ち（−１０，４）＋（−２，１）＝（−１２，５）と（５，６）＋（１，１）＝（６，７）とはそれぞれ前方動きベクトル及び後方動きベクトルとして使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロック及び後方予測参照ピクチャ・ブロックに別々に実行される。この場合、第１精度は１ピクセル/レンジにおける１／４ピクセル精度である。第１復号化予測ブロックＤＰＢ１は参照として使用される。各々の動き探索で得られる対応する新しい前方及び後方復号化予測ブロックは、第１復号化予測ブロックＤＰＢ１と比較されて、ＤＰＢ１からの最小差分を有する新しい復号化予測ブロックを取得する。新しい復号化予測ブロックに対応する前方及び後方動きベクトルは、ターゲット動きベクトル予測子として使用され、それぞれ（−１１，４）及び（６，６）と仮定される。
【０２７２】
ターゲット動きベクトルは（−１１，４）及び（６，６）に更新され、前方予測及び後方予測が、ターゲット動きベクトルに基づいて第１復号化ブロックに対して別々に実行され、ターゲット復号化予測ブロックは、取得された新しい前方及び後方復号化予測ブロックに対して重み付け加算を実行することにより取得され、ＤＰＢ２であると仮定され、現在の復号化ブロックの復号化予測ブロックはＤＰＢ２に更新される。
【０２７３】
本願の中核的な技術的内容を更に反映させるために、マージ・モードにおけるエンコーダによる動きベクトルを記憶する処理が、以下、具体的な実施形態を使用することにより説明される。図１９は、本願の実施形態によるエンコーダによる動きベクトルを取得する方法の概略フローチャートである。方法は以下のステップを含む。
【０２７４】
１９０１：第１の処理対象のピクチャ・ブロックを取得した後に、エンコーダは、第１の処理対象のピクチャ・ブロックの１つ以上の前もってセットされた候補の参照ブロックを決定する。
【０２７５】
図３を参照すると、第１の処理対象のピクチャ・ブロックは、符号化対象のピクチャ・ブロックであり、即ち、符号化対象のピクチャ・ブロックは、エンコーダ・パーティションのパーティション・ユニットがビデオ・データを取得した後に得られる。第１の処理対象のピクチャ・ブロックは、現在のＰＵであってもよいし、又は現在のＣＵであってもよいことに留意すべきである。これは、本発明のこの実施形態において具体的に限定されない。
【０２７６】
候補の参照ブロックは、第１の処理対象のピクチャ・ブロックとの前もってセットされた空間位置関係を有するピクチャ・ブロックを含む。前もってセットされた空間位置関係は、図５に示された位置関係であってもよい。図５に示す候補の参照ブロックは、第１の処理対象のピクチャ・ブロックに隣接しているので、即ち、候補の参照ブロックのピクチャ情報は、第１の処理対象のピクチャ・ブロックのものと比較的類似しているので、第１の処理対象のピクチャ・ブロックを予測するために、候補の参照ブロックの動きベクトルは、第１の処理対象のピクチャ・ブロックの予測された動きベクトルとして使用されることが可能である。幾つかの実施形態では、候補の参照ブロックは、更に、別の実際のピクチャ・ブロック、又は、第１の処理対象のピクチャ・ブロックとの前もってセットされた空間相関を有するバーチャル・ピクチャ・ブロックを含む。本願のこの実施態様において、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとの間の位置関係は、特定の量の候補参照ブロックによって具体的に限定されない。
【０２７７】
１９０２：エンコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定する。
【０２７８】
本願のこの実施形態では、動きベクトル更新処理が、候補参照ブロックに対して実行される。候補参照ブロックに対する更新処理が完了すると、候補参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有し、即ち、候補参照ブロックは、相応して、初期の動きベクトルと最終的な動きベクトルとを記憶する。幾つかの実施形態では、候補参照ブロックは、相応して、初期の動きベクトル及び動きベクトル残差を記憶し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの初期の動きベクトルと動きベクトル残差とを加えることによって取得されることが可能である。
【０２７９】
しかしながら、候補参照ブロックに対する更新処理が完了していない場合、候補参照ブロックは初期動きベクトルのみを有し、即ち、相応して候補の参照ブロックは候補の参照ブロックの初期の動きベクトルのみを記憶する。
【０２８０】
候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有するので、エンコーダは、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの初期の動きベクトル又は最終的な動きベクトルを使用することが可能であり、その結果、候補の参照ブロックの動きベクトルは、第１の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。
【０２８１】
参照ブロックにおける動きベクトル更新処理については、図１３に関連する本願の実施形態を参照されたい、ということに留意すべきである。図１９に関連する実施形態の参照ブロックは、図１３に関連する実施形態における処理対象のピクチャ・ブロックであることが理解されるべきである。
【０２８２】
ステップ１９０２において、候補の参照ブロックの動きベクトルは、候補の参照ブロックの前もってセットされたレンジに基づいて決定されてもよい。例えば、候補の参照ブロックが前もってセットされたレンジ内にある場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用され、或いは候補の参照ブロックが前もってセットされたレンジ外にある場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。従って、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定することができる。
【０２８３】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置していない場合、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。図２１を参照すると、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の具体的なレンジは、本発明のこの実施形態で具体的に限定されない。
【０２８４】
関連技術において、エンコーダは複数の処理対象のピクチャ・ブロックを同時に符号化してもよい。しかしながら、複数の処理対象のピクチャ・ブロックが同一のＣＴＢ行内に位置する場合、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックである可能性がある。複数の処理対象のピクチャ・ブロックが互いの候補の参照ブロックである場合、別のブロックの更新された最終的な動きベクトルは、別のブロックが更新された後に限り、現在の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用されることが可能である。その結果、符号化の遅延が存在する。更に、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックであるので、他のブロックが更新されるまで待機する必要がある。その結果、符号化遅延が増加する。
【０２８５】
従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、次いで、候補の参照ブロックの動きベクトルが、第１の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。これについては、ステップ１９０３を参照されたい。
【０２８６】
候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックに対する更新処理は完了しない可能性がある。従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、候補の参照ブロックが更新されるまで待機する必要はなく、符号化遅延を低減する。候補の参照ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。従って、候補の参照ブロックは最終的な動きベクトルを有し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０２８７】
前もってセットされたレンジは、代替的に、ＣＴＢブロック・レンジであってもよい。例えば、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０２８８】
候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、それは候補の参照ブロックにおける更新処理は完了していない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とすることなく、候補の参照ブロックの動きベクトルとして直接的に使用され、符号化遅延を低減する。更に、候補の参照ブロックと第１の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、それは候補の参照ブロックに関して更新処理を完了するための十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、第１の処理対象のピクチャ・ブロックと同じＣＴＢ内に位置していない候補の参照ブロックの最終的な動きベクトルを、候補の参照ブロックの動きベクトルとして使用することは、符号化品質を保証することができる。
【０２８９】
前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジ又は左隣接及び右隣接ＣＴＢブロックのレンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢであるか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０２９０】
候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じである場合、又は候補参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合、それは、候補の参照ブロックに対する更新処理が完了しない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とせずに、候補の参照ブロックの動きベクトルとして直接的に使用され、符号化遅延を低減する。更に、候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第１の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０２９１】
１９０３：エンコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルに基づいて、候補の予測された動きベクトルのリストを設定する。
【０２９２】
候補の予測された動きベクトルのリストを設定する方法については、図６ないし図９を参照されたい。詳細はここで再び説明しない。
【０２９３】
１９０４：エンコーダは、処理対象のピクチャ・ブロックの参照ブロックを決定する。参照ブロック及び第１の処理対象のピクチャ・ブロックは、同じピクチャのフレーム内に位置する。
【０２９４】
最小レート歪コストを有する候補の参照ブロックが、第１の処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックから、第１の処理対象のピクチャ・ブロックの参照ブロックとして選択される。
【０２９５】
１９０５：エンコーダは、参照ブロックの動きベクトルを記憶する。参照ブロックの動きベクトルは、第１の処理対象のピクチャ・ブロックの初期の動きベクトルである。
【０２９６】
参照ブロックの動きベクトルは、設定された候補の予測された動きベクトルのリストにおける対応する位置から取得されることが可能である。
【０２９７】
ステップ１９０１ないしステップ１９０５は、エンコーダが第１の処理対象のピクチャ・ブロックの初期の動きベクトルを取得する処理である。
【０２９８】
１９０６：エンコーダは、第１の処理対象のピクチャ・ブロックの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、第１の処理対象のピクチャ・ブロックの予測ブロックを決定する。
【０２９９】
ステップ１９０６は、図１３の１３０２１ないし１３０２４を使用することによって完了させることが可能である。詳細はここで再び説明しない。
【０３００】
１つ以上の前もってセットされた動きベクトル・オフセットは、ピクセル単位に基づいて設定されることが可能である。例えば、第１の処理対象のピクチャ・ブロックの初期の動きベクトルで示されるピクチャ・ブロックは、第１の処理対象のピクチャ・ブロックの時間的な予測ブロックとして使用され、時間的な予測ブロックの１ピクセル単位又は１／２ピクセル単位内の１つ以上の候補の予測ブロックが、時間的な予測ブロックを中心として使用することにより探索される。確かに、別の長さ又は別のピクセル単位が使用されてもよい。１つ以上の前もってセットされた動きベクトル・オフセットは、本願のこの実施形態で具体的に限定されない。
【０３０１】
１９０７：予測ブロックの動きベクトルを決定した後に、エンコーダは、予測ブロックの動きベクトルを、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルとして使用する。
【０３０２】
ステップ１９０７において、予測ブロックの動きベクトルは、予測ブロックの前もってセットされたレンジに基づいて決定されることが可能である。例えば、予測ブロックが、前もってセットされたレンジ内にある場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用され、予測ブロックが、前もってセットされたレンジ外にある場合には、予測ブロックの最終的な動きベクトルが、予測ブロックの動きベクトルとして使用される。
【０３０３】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。相応して、予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置しない場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。図２１を参照すると、予測ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、予測ブロックが位置するコーディング・ツリー・ブロックと、第１の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の特定のレンジは、本発明のこの実施形態では具体的に限定されない。
【０３０４】
予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、予測ブロックに対する更新処理は終了しない可能性がある。従って、予測ブロックの初期の動きベクトルは、予測ブロックの動きベクトルとして直接的に使用されることが可能であり、予測ブロックが更新されるまで待機する必要はなく、符号化遅延を低減する。予測ブロックが位置するＣＴＢと、第１の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、予測ブロックに対する更新処理を完了するのに十分な時間があることを示す。従って、予測ブロックは最終的な動きベクトルを有し、予測ブロックの最終的な動きベクトルは、予測ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、予測ブロックの動きベクトルとして最終的な動きベクトルを使用することは、符号化品質を保証することができる。
【０３０５】
幾つかの実施形態では、前もってセットされたレンジは代替的にＣＴＢブロック・レンジであってもよい。幾つかの他の実施形態では、前もってセットされたレンジは、代替的に、同じＣＴＢブロックであってもよい。予測ブロックの動きベクトルの決定は、候補の参照ブロックの動きベクトルの決定と同様である。これについてはステップ１９０２を参照されたい。詳細はここで再び説明しない。
【０３０６】
１９０８：エンコーダは、候補リスト内の第１の処理対象のピクチャ・ブロックの初期の動きベクトルを、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルに更新する。
【０３０７】
１９０９：エンコーダは、第１の処理対象のピクチャ・ブロックの動きベクトル残差を、ターゲット・ストレージ空間に記憶する。
【０３０８】
動きベクトル残差は、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルと、第１の処理対象のピクチャ・ブロックの初期の動きベクトルとの間の動きベクトル差分である。
【０３０９】
ターゲット・ストレージ空間は、動きベクトル残差をエンコーダにより記憶するための空間である。例えば、ターゲット・ストレージ空間は、図２の参照ピクチャ記憶ストレージ６４であってもよい。
【０３１０】
関連技術におけるマージ・モードでは、ターゲット・ストレージ空間はゼロ・ベクトルを記憶するか、又はターゲット・ストレージ空間はデータを記憶しないことに留意すべきである。しかしながら、本願のこの実施形態におけるマージ・モードでは、処理対象のピクチャ・ブロックの動きベクトル残差がターゲット・ストレージ空間に記憶され、その結果、ターゲット・ストレージ空間を完全に使用することが可能であるだけでなく、他のピクチャ・ブロックの動きベクトルが第１の処理対象のピクチャ・ブロックに対して必要とされる場合に、他のピクチャ・ブロックの動きベクトルを柔軟に選択することも可能である。ステップ１９０２及び１９０７において示されるように、エンコーダの符号化効率は更に改善される。
【０３１１】
更に、一部の実装では、ステップ１９０９において、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルが、代替的に、第１の処理対象のピクチャ・ブロックの動きベクトル残差として使用され、ターゲット・ストレージ空間に記憶されることが可能であり、即ち、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルがターゲット・ストレージ空間に記憶され、第１の処理対象のピクチャ・ブロックの動きベクトル残差は、ターゲット・ストレージ空間に記憶されない。この場合において、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルが別のブロックに必要とされる場合、第１の処理対象のピクチャ・ブロックの最終的な動きベクトルは、第１の処理対象のピクチャ・ブロックの初期の動きベクトルと、第１の処理対象のピクチャ・ブロックの動きベクトル残差とを加算する必要なしに、エンコーダのターゲット・ストレージ空間から直接的に取得されることが可能である。
【０３１２】
ステップ１９０９の具体的なストレージ方法については、図２１を参照されたい。
【０３１３】
ステップ１９０８及び１９０９のシーケンスには厳密な要件がないことに留意すべきであり、エンコーダは代替的にステップ１９０８の前にステップ１９０９を実行してもよい。これは本願のこの実施形態で具体的に限定されない。
【０３１４】
ステップ１９０６ないし１９０９は、エンコーダが第１の処理対象のピクチャ・ブロックの最終的な動きベクトルを取得する処理である。
【０３１５】
１９１０：エンコーダは、処理対象のピクチャ・ブロックの初期の動きベクトル、又は候補リスト内の処理対象のピクチャ・ブロックの初期の動きベクトルに対応する１つ以上の第１識別情報を、ビットストリームに符号化する。
【０３１６】
識別情報はインデックスを含む可能性がある。確かに、幾つかの実装において、識別情報は、予測モードを更に含んでもよい。インデックスは、候補の予測された動きベクトルのリストにおける対応する動きベクトルを示すために使用され、動きベクトルは、第１の処理対象のピクチャ・ブロックの初期の動きベクトル又は最終的な動きベクトルであり、予測モードはマージ・モード、ＡＭＶＰＡモード、及びスキップ・モードを含む。本願のこの実施形態では、予測モードはマージ・モードである。確かに、別の実施形態では、予測モードは別のモードであってもよい。これは本願のこの実施形態で限定されない。
【０３１７】
前述の実装において、現在のコーディング・ブロックを符号化する場合に、エンコーダは、参照ブロックの最終的な動きベクトルの代わりに、参照ブロックの更新されていない初期の動きベクトルを、現在のコーディング・ブロックの予測された動きベクトルとして使用する。このようにして、参照ブロックの動きベクトルが現在のコーディング・ブロックに対して必要とされる場合に、関連するステップは、参照ブロックの最終的な動きベクトルが更新されるまで待機することを必要とせずに、実行されることが可能であり、符号化遅延が削減されることを補償する一方、動きベクトルが更新されるので符号化効率が改善される。
【０３１８】
エンコーダにより使用されるインター予測モードが前方予測又は後方予測である場合に、候補参照ブロックの動きベクトル、参照ブロックの動きベクトル、及び予測ブロックの動きベクトルは、前方動きベクトル又は後方動きベクトルを含むことに留意すべきである。相応して、候補の予測された動きベクトルのリストが設定されると、候補の予測された動きベクトルのリストは、リスト０又はリスト１のみを含み、処理対象のピクチャ・ブロックの初期の動きベクトルは、前方の初期の動きベクトル又は後方の初期の動きベクトルを含み、処理対象のピクチャ・ブロックの最終的な動きベクトルは、前方の最終的な動きベクトル又は後方の最終的な動きベクトルを含む。
【０３１９】
エンコーダにより使用されるインター予測モードが双方向予測である場合、候補の参照ブロックの動きベクトル、参照ブロックの動きベクトル、及び予測ブロックの動きベクトルは、第１動きベクトルと第２動きベクトルとを含み、第１動きベクトルは前方動きベクトルであり、第２動きベクトルは後方動きベクトルである。相応して、候補の予測された動きベクトルのリストが設定されると、候補の予測された動きベクトルのリストは、リスト０及びリスト１を含み、処理対象のピクチャ・ブロックの初期の動きベクトルは、第１の初期の動きベクトル及び第２の初期の動きベクトルを含み、処理対象のピクチャ・ブロックの最終的な動きベクトルは、第１の最終的な動きベクトル及び第２の最終的な動きベクトルを含む。第１の初期の動きベクトル及び第１の最終的な動きベクトルは前方動きベクトルであり、第２の初期の動きベクトルと第２の最終的な動きベクトルは後方動きベクトルである。
【０３２０】
上記の内容はエンコーダについて説明されている。相応して、マージ・モードにおいてデコーダにより動きベクトルを記憶する処理が、具体的な実施形態を用いて以下において説明される。図２０は、本願の実施形態による、デコーダによる動きベクトルを取得する方法の概略フローチャートである。方法は以下のステップを含む。
【０３２１】
２００１：第２の処理対象のピクチャ・ブロックに対応するビットストリームを受信した後、デコーダは、第２識別情報及び第３識別情報を得るためにビットストリームを解析する。ここで、第２識別情報は、処理対象のピクチャ・ブロックの初期の予測された動きベクトルを決定するために使用され、第３識別情報は、動きベクトル残差が復号化の間に解析される必要があるかどうかを示すために使用される。
【０３２２】
第２識別情報は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定するために使用されるインデックスを含んでもよい。ステップ２００２及び２００４を参照すると、幾つかの実施形態において、第２識別情報は、予測モード・タイプを更に含んでもよい。
【０３２３】
第３識別情報は、復号化の間に、動きベクトル残差が、解析されることを必要とするかどうかを示すために使用される。本願のこの実施形態では、動きベクトル残差は、マージ・モードで解析されることを必要としないが、別の実施形態において、動きベクトル残差が解析される場合がある。例えば、ＳＭＶＰモードでは、第３識別情報の指示に従って、第２処理対象のピクチャ・ブロックの動きベクトル残差をビットストリームに加える場合に、デコーダは、ビットストリームを解析することによって、動きベクトル残差を取得することができる。この場合、デコーダは、動きベクトル残差を、ターゲット・ストレージ空間に直接的に記憶する。
【０３２４】
２００２：第２の処理対象のピクチャ・ブロックに対応するビットストリームを受信した後に、デコーダは、第２の処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックと、１つ以上の候補の参照ブロックの１つ以上の動きベクトルとを決定する。
【０３２５】
１つ以上の候補の参照ブロックは、第２の処理対象のピクチャ・ブロックとの前もってセットされた空間位置関係を有するピクチャ・ブロックを含む。候補の参照ブロックの決定については、図５を参照されたい。詳細はここで再び説明しない。
【０３２６】
本願のこの実施形態では、動きベクトル更新処理が、候補の参照ブロックに対して実行される。候補の参照ブロックに対する更新処理が完了すると、候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有し、即ち、候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを記憶する。幾つかの実施形態では、候補の参照ブロックは、初期の動きベクトルと動きベクトル残差とを記憶し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの初期の動きベクトルと動きベクトル残差とを加えることによって取得することができる。
【０３２７】
しかしながら、候補の参照ブロックの更新処理が完了していない場合、候補の参照ブロックは初期の動きベクトルのみを有し、即ち、候補の参照ブロックは、候補の参照ブロックの初期の動きベクトルのみを記憶する。
【０３２８】
候補の参照ブロックは、初期の動きベクトルと最終的な動きベクトルとを有するので、デコーダは、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの初期の動きベクトル又は最終的な動きベクトルを用いる必要があり、その結果、候補の参照ブロックの動きベクトルは、第２の処理対象のピクチャ・ブロックの空間的な候補の予測された動きベクトルとして使用される。
【０３２９】
参照ブロックに対する動きベクトル更新プロセス及び初期の動きベクトルの取得については、図１４に関連する本願の実施形態を参照されたい、ということに留意すべきである。図２０に関連する実施形態の参照ブロックは、図１４に関連する実施形態の処理対象のピクチャ・ブロックであることが理解されるべきである。
【０３３０】
ステップ２００２において、候補の参照ブロックの動きベクトルは、候補の参照ブロックの前もってセットされたレンジに基づいて決定されてもよい。例えば、候補の参照ブロックが前もってセットされたレンジ内にある場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用され、候補の参照ブロックが前もってセットされたレンジ外にある場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。従って、１つ以上の候補の参照ブロックの１つ以上の動きベクトルを決定することができる。
【０３３１】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一行に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一行に位置していない場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。図２１を参照すると、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、候補の参照ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合に、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の具体的なレンジは、本発明のこの実施形態で具体的に限定されない。
【０３３２】
関連技術において、デコーダは複数の処理対象のピクチャ・ブロックを同時に復号化してもよい。しかしながら、複数の処理対象のピクチャ・ブロックが同一のＣＴＢ行内に位置する場合、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックである可能性がある。複数の処理対象のピクチャ・ブロックが互いの候補の参照ブロックである場合、別のブロックの更新された最終的な動きベクトルは、別のブロックが更新された後に限り、現在の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用されることが可能である。その結果、復号化の遅延が存在する。更に、複数の処理対象のピクチャ・ブロックは、互いの候補の参照ブロックであるので、他のブロックが更新されるまで待機する必要がある。その結果、復号化遅延が増加する。
【０３３３】
従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、次いで、候補の参照ブロックの動きベクトルが、第２の処理対象のピクチャ・ブロックの空間候補の予測された動きベクトルとして使用される。これについては、ステップ２００３を参照されたい。
【０３３４】
候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、候補の参照ブロックに対する更新処理は完了しない可能性がある。従って、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして直接的に使用されることが可能であり、候補の参照ブロックが更新されるまで待機する必要はなく、復号化遅延を低減する。候補の参照ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。従って、候補の参照ブロックは最終的な動きベクトルを有し、候補の参照ブロックの最終的な動きベクトルは、候補の参照ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３３５】
前もってセットされたレンジは、代替的に、ＣＴＢブロック・レンジであってもよい。例えば、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０３３６】
候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置する場合、それは候補の参照ブロックにおける更新処理は完了していない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とすることなく、候補の参照ブロックの動きベクトルとして直接的に使用され、復号化遅延を低減する。更に、候補の参照ブロックと第２の処理対象のピクチャ・ブロックとが同一のＣＴＢ内に位置していない場合、それは候補の参照ブロックに関して更新処理を完了するための十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、第２の処理対象のピクチャ・ブロックと同じＣＴＢ内に位置していない候補の参照ブロックの最終的な動きベクトルを、候補の参照ブロックの動きベクトルとして使用することは、復号化品質を保証することができる。
【０３３７】
前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジ、又は左隣接及び右隣接ＣＴＢブロックのレンジであってもよい。例えば、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢであるか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合には、候補の参照ブロックの初期の動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。相応して、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、候補の参照ブロックの最終的な動きベクトルが、候補の参照ブロックの動きベクトルとして使用される。
【０３３８】
候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じである場合、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックである場合、それは、候補の参照ブロックに対する更新処理が完了しない可能性があることを示し、候補の参照ブロックの初期の動きベクトルは、候補の参照ブロックが更新されるまで待機することを必要とせずに、候補の参照ブロックの動きベクトルとして直接的に使用され、復号化遅延を低減する。更に、候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢと同じでないか、又は候補の参照ブロックが位置するＣＴＢが、第２の処理対象のピクチャ・ブロックが位置するＣＴＢの左隣接又は右隣接ブロックでない場合には、それは、候補の参照ブロックに関して更新処理を完了するのに十分な時間があることを示す。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、候補の参照ブロックの動きベクトルとして、候補の参照ブロックの最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３３９】
２００３：デコーダは、１つ以上の候補の参照ブロックの１つ以上の動きベクトルに基づいて、候補の予測された動きベクトルのリストを設定する。
【０３４０】
ステップ２００３は、ステップ１９０３と同じであり、即ち、デコーダが候補の予測された動きベクトルのリストを設定する方法は、エンコーダが候補の予測された動きベクトルのリストを設定する方法と一貫しており、設定された候補の予測された動きベクトルのリストは同じである。エンコーダは、デコーダによって受信されるビットストリームを符号化するエンコーダである。
【０３４１】
２００４：デコーダは、第２識別情報に基づいて、候補の予測された動きベクトルのリストから、第２の処理対象のピクチャ・ブロックの参照ブロックと参照ブロックの動きベクトルとを決定する。
【０３４２】
第２識別情報のインデックスで示される動きベクトルは、インデックスに基づいて候補の予測された動きベクトルのリストから選択される。動きベクトルは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルであり、動きベクトルはまた、第２の処理対象のピクチャ・ブロックの参照ブロックの動きベクトルでもある。
【０３４３】
２００５：エンコーダは、参照ブロックの動きベクトルを、第２の処理対象のピクチャ・ブロックの初期の動きベクトルとして記憶する。
【０３４４】
ステップ２００１ないし２００５は、デコーダが第２の処理対象のピクチャ・ブロックの初期の動きベクトルを取得する処理である。
【０３４５】
２００６：デコーダは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて、第２の処理対象のピクチャ・ブロックの予測ブロックを決定する。
【０３４６】
ステップ２００６は、図１４の１４０２１ないし１４０２４を使用することによって完了することができる。詳細はここで再び説明しない。
【０３４７】
１つ以上の前もってセットされた動きベクトル・オフセットについては、ステップ１９０６を参照されたい。詳細はここで再び説明しない。
【０３４８】
ステップ２００５及び２００６を実行する不特定のシーケンスがあることに留意すべきであり、ステップ２００６は代替的にステップ２００５の前に実行されてもよい。ステップ２００５及び２００６を実行するシーケンスは、本願のこの実施形態において具体的に限定されない。
【０３４９】
２００７：予測ブロックの動きベクトルを決定した後に、デコーダは、予測ブロックの動きベクトルを、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルとして使用する。
【０３５０】
ステップ２００７では、候補の参照ブロックの動きベクトルが、予測ブロックの前もってセットされたレンジに基づいて決定されることが可能である。例えば、予測ブロックが前もってセットされたレンジ内にある場合には、予測ブロックの初期の動きベクトルが予測ブロックの動きベクトルとして使用され、予測ブロックが前もってセットされたレンジ外にある場合には、予測ブロックの最終的な動きベクトルが予測ブロックの動きベクトルとして使用される。
【０３５１】
具体的には、前もってセットされたレンジはＣＴＢ行レンジであってもよい。例えば、予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。相応して、予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置しない場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用される。図２１を参照すると、予測ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置し、予測ブロックが位置するコーディング・ツリー・ブロックと、第２の処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行の隣接する空間に位置する場合には、予測ブロックの初期の動きベクトルが、予測ブロックの動きベクトルとして使用されることが理解されるであろう。異なる行の隣接する空間は、異なる行の上空間、左上空間などであってもよい。異なる行の隣接する空間の特定のレンジは、本発明のこの実施形態では具体的に限定されない。
【０３５２】
予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同じ行に位置する場合、予測ブロックに対する更新処理は終了しない可能性がある。従って、予測ブロックの初期の動きベクトルは、予測ブロックの動きベクトルとして直接的に使用されることが可能であり、予測ブロックが更新されるまで待機する必要はなく、復号化遅延を低減する。予測ブロックが位置するＣＴＢと、第２の処理対象のピクチャ・ブロックが位置するＣＴＢとが同一の行に位置していない場合、それは、予測ブロックに対する更新処理を完了するのに十分な時間があることを示す。従って、予測ブロックは最終的な動きベクトルを有し、予測ブロックの最終的な動きベクトルは、予測ブロックの動きベクトルとして使用されることが可能である。更に、最終的な動きベクトルは、初期の動きベクトルが洗練された後に得られる動きベクトルであるので、予測ブロックの動きベクトルとして最終的な動きベクトルを使用することは、復号化品質を保証することができる。
【０３５３】
幾つかの実施形態では、前もってセットされたレンジは代替的にＣＴＢブロック・レンジであってもよい。幾つかの他の実施形態では、前もってセットされたレンジは、代替的に、同じＣＴＢブロック・レンジであってもよい。予測ブロックの動きベクトルの決定は、候補の参照ブロックの動きベクトルの決定と同様である。これについてはステップ１８０２を参照されたい。詳細はここで再び説明しない。
【０３５４】
ステップ２００６及びステップ２００７は、デコーダが第２の処理対象のピクチャ・ブロックの最終的な動きベクトルを取得する処理である。
【０３５５】
２００８：第２の処理対象のピクチャ・ブロックの動きベクトル残差を、ターゲット・ストレージ空間に記憶する。
【０３５６】
ターゲット・ストレージ空間は、デコーダによって動きベクトル残差を記憶するための空間である。例えば、ターゲット・ストレージ空間は、図３の参照ピクチャ・ストレージ９２であってもよい。
【０３５７】
関連技術におけるマージ・モードでは、ターゲット・ストレージ空間はゼロ・ベクトルを記憶するか、又はターゲット・ストレージ空間はデータを記憶しないことに留意すべきである。しかしながら、本願のこの実施形態におけるマージ・モードでは、処理対象のピクチャ・ブロックの動きベクトル残差がターゲット・ストレージ空間に記憶され、その結果、ターゲット・ストレージ空間を完全に使用することが可能であるだけでなく、他のピクチャ・ブロックの動きベクトルが第２の処理対象のピクチャ・ブロックに対して必要とされる場合に、他のピクチャ・ブロックの動きベクトルを柔軟に選択することも可能である。ステップ２００２及び２００７において示されるように、デコーダの復号化効率は更に改善される。
【０３５８】
更に、一部の実装では、ステップ２００８において、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルが、代替的に、第２の処理対象のピクチャ・ブロックの動きベクトル残差として使用され、ターゲット・ストレージ空間に記憶されることが可能であり、即ち、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルがターゲット・ストレージ空間に記憶され、第２の処理対象のピクチャ・ブロックの動きベクトル残差は、ターゲット・ストレージ空間に記憶されない。この場合において、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルが別のブロックに必要とされる場合、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルは、第２の処理対象のピクチャ・ブロックの初期の動きベクトルと、第２の処理対象のピクチャ・ブロックの動きベクトル残差とを加算する必要なしに、デコーダのターゲット・ストレージ空間から直接的に取得されることが可能である。
【０３５９】
このステップ２００８における具体的なストレージ方法については、図２１を参照されたい。
【０３６０】
ステップ２００７及び２００８の間のシーケンスには厳密な要件がないことに留意すべきであり、デコーダは代替的にステップ２００８の前にステップ２００７を実行してもよい。これは本願のこの実施形態で具体的に限定されない。
【０３６１】
２００９：デコーダは、第２の処理対象のピクチャ・ブロックの動きベクトル残差と初期の動き差分とに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得する。
【０３６２】
ピクチャ情報は、第２の処理対象のピクチャ・ブロックのオリジナル・ピクチャを識別するために使用されるピクセル情報を含む。
【０３６３】
デコーダは、第２の処理対象のピクチャ・ブロックの動きベクトル残差と初期の動き差分とに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得する。これについては、図３を参照されたい。詳細はここで再び説明されない。
【０３６４】
相応して、デコーダは、代替的に、第２の処理対象のピクチャ・ブロックの最終的な動きベクトルに基づいて、第２の処理対象のピクチャ・ブロックに対応するピクチャ情報を取得してもよい。
【０３６５】
前述の実装では、現在の復号化ブロックを復号化する場合に、デコーダは、参照ブロックの最終的な動きベクトルの代わりに、現在の復号化ブロックの予測された動きベクトルとして、参照ブロックの更新されていない初期の動きベクトルを使用する。このように、参照ブロックの動きベクトルが現在の復号化ブロックに対して必要とされる場合、関連するステップは、参照ブロックの最終的な動きベクトルが更新されるまで待機する必要なしに実行されることが可能であり、復号化遅延が確実に削減されることを保証する一方、復号化効率は、動きベクトルが更新されるので改善される。
【０３６６】
動きベクトル・ストレージ方法を更に反映するために、具体的な実施形態が、ストレージ・ステップを説明するためにここで使用される。具体的な説明は次のとおりである：
【０３６７】
マージ・モードでは、各々の予測方向において２つのＭＶが存在する可能性があり、それぞれ第１ＭＶ情報及び第２ＭＶ情報である。例えば、第１ＭＶ及び第２ＭＶはそれぞれ、参照ブロックの初期の動きベクトル、及び参照ブロックの候補の最終的な動きベクトルであってもよい。ＭＶＤ導出プロセスはマージ・モードに導入される。例えば、前方予測プロセスにおいて、第１ＭＶがＭＶ０であり、第２ＭＶがＭＶ０’である場合に、派生的な関係が存在する：ＭＶ０’＝ＭＶ０＋（−）ＭＶＤ０。２つのＭＶ、例えば初期の動きベクトルのインデックス値と以前のＭＶＤ、即ち、２つのＭＶ間の差分とを記憶することによって、第１ＭＶが特定の条件下で使用されることが可能であり、第２ＭＶが特定の条件下で使用されることが可能であり、遅延を回避する。
【０３６８】
特定の条件については、ステップ１９０２又は２００２を参照されたい。詳細はここで再び説明されない。
【０３６９】
実現可能な実装において、
非マージ・モードでは、ターゲット・ストレージ空間が、参照ブロックの動きベクトル残差を記憶するために使用され、参照ブロックの動きベクトル残差は、参照ブロックの最終的な動きベクトルと参照ブロックの予測された動きベクトルとの差分である。
マージ・モードでは、ターゲット・ストレージ空間は、選択された最終的な動きベクトルを記憶するために使用されるか、又はターゲット・ストレージ空間は、参照ブロックの初期の動きベクトルと選択された最終的な動きベクトルとの間の差分を記憶するために使用される。
【０３７０】
本願の別の実施形態は次のとおりである：
【０３７１】
図２２に示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢ行レンジにはない。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３７２】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３７３】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３７４】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３７５】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３７６】
本願の別の実施形態は次のとおりである：
【０３７７】
図２２に示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢレンジにはない。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３７８】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。
新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３７９】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３８０】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３８１】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３８２】
本願の別の実施形態は次のとおりである：
【０３８３】
図２２に示すように、現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が得られ、参照ブロックはマージ・モードであり、参照ブロックの動き情報の位置は、現在のコーディング・ブロックと同一のＣＴＢラインのレンジにはない。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２２，１８）と前方ＭＶＤ（１，０）とを加えることによって取得され、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（２，１２）と後方ＭＶＤ（−１，０）とを加えることによって取得され、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３８４】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３８５】
次いで、（−２１，１９）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１／２ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１１）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１／２ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、
前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用される。
【０３８６】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３８７】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３８８】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３８９】
本願の別の実施形態は次のとおりである：
【０３９０】
現在のコーディング・ブロックは第１コーディング・ブロックであり、現在のコーディング・ブロックの予測された動き情報が取得される。この場合、現在のコーディング・ブロックの前方動きベクトル予測子（−２１，１８）は、参照ブロックの前方動きベクトル（−２１，１８）であり、現在のコーディング・ブロックの後方動きベクトル予測子（１，１２）は、参照ブロックの後方動きベクトル（１，１２）であり、現在のコーディング・ブロックが位置するピクチャのＰＯＣは４であり、参照ピクチャのインデックス値で示される前方参照ピクチャのＰＯＣは２であり、参照ピクチャのインデックス値で示される後方参照ピクチャのＰＯＣは６である。この場合、現在のコーディング・ブロックに対応するＰＯＣは４であり、前方予測参照ピクチャ・ブロックに対応するＰＯＣは２であり、後方予測参照ピクチャ・ブロックに対応するＰＯＣは６である。
【０３９１】
（−２１，１８）は前方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、前方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１前方予測ブロックは参照として使用され、対応する新しい前方予測ブロックは、各々の動き探索により取得される。（１，１２）は後方動きベクトル予測器の参照入力として使用され、第１精度の動き探索が、後方予測参照ピクチャ・ブロックに対して実行される。この場合、第１精度は１ピクセル・レンジにおける１ピクセル精度である。第１後方予測ブロックは参照として使用され、対応する新しい後方予測ブロックは、各々の動き探索により取得される。新しい前方予測ブロックは新しい後方予測ブロックと比較されて、最小差分を有する前方予測ブロックと最小差分を有する後方予測ブロックとを取得し、前方予測ブロックに対応する前方動きベクトル予測子と後方予測ブロックに対応する後方動きベクトル予測子とはターゲットの動きベクトル予測子として使用され、それぞれ（−２１，１９）及び（１，１１）であると仮定される。
【０３９２】
現在のコーディング・ブロックの前方ＭＶＤ（０，１）は、前方動きベクトル予測子（−２１，１８）を、前方ターゲット動きベクトル予測子（−２１，１９）から減算することにより取得され、現在のコーディング・ブロックの後方ＭＶＤ（０，−１）は、後方動きベクトル予測子（１，１２）を、後方ターゲット動きベクトル予測子（１，１１）から減算することによって取得される。ＭＶＤ計算方法１は次のとおりである：MVD0=(−21，19)−(−21，18)及びMVD1=(1，11)−(1，12)；又はMVD0=(−21，19)−(−21，18)及びMVD1=−MVD0。
【０３９３】
更に、前方予測及び後方予測は、ターゲット動きベクトル予測子に基づいて、第１コーディング・ブロックに対して別々に実行され、取得された前方及び後方予測ブロックは、ターゲット復号化予測ブロックとして使用され、現在のコーディング・ブロックの予測ブロックが更新される。
【０３９４】
第１精度の動き探索が前方予測参照ピクチャ・ブロックと後方予測参照ピクチャ・ブロックとに対して実行される場合、第１精度は、任意の指定された精度、例えば、整数ピクセル精度、１／２ピクセル精度、１／４ピクセル精度、又は１／８ピクセル精度であってもよい。
【０３９５】
幾つかの実施形態では、処理対象のピクチャ・ブロックは複数のサブ・ブロックを含んでもよく、コーデックは、各々のサブ・ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの最終的な動きベクトルを取得することができる。可能な実装において、各々のサブ・ブロックは、初期の動きベクトルと、サブ・ブロックの複数の前もってセットされたオフセット・ベクトルとを有する。コーデックは、任意のサブ・ブロックの複数の候補の最終的な動きベクトルを得るために、複数のサブ・ブロックのうちの任意の１つの初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを別々に加えることができる。コーデックは、任意のサブ・ブロックの最終的な動きベクトルとして、任意のサブ・ブロックの複数の候補の最終的な動きベクトルにおける最小歪コストに対応する候補の最終的な動きベクトルを使用する。同様に、コーデックは、各サブ・ブロックの最終的な動きベクトルを得ることができ、次いで、コーデックは、各サブ・ブロックの最終的な動きベクトルに基づいて、処理対象のピクチャ・ブロックの最終的な動きベクトルを得ることができる。各サブ・ブロックの最終的な動きベクトルに基づいて処理対象のピクチャ・ブロックの最終的な動きベクトルを得るプロセスは、本発明のこの実施形態において具体的に限定されない。
【０３９６】
任意のサブ・ブロックの複数の候補の最終的な動きベクトルを得る前に、コーデックは、先ず、任意のサブ・ブロックの初期の動きベクトルと複数の前もってセットされたオフセット・ベクトルとを決定する必要があることに留意すべきである。任意のサブ・ブロックの初期の動きベクトルを決定する方法は、処理対象のピクチャ・ブロックの初期の動きベクトルを決定する方法に類似しており、本発明のこの実施形態では説明しない。更に、任意のサブ・ブロックの複数の前もってセットされたオフセット・ベクトルを決定する方法は、処理対象のピクチャ・ブロックの複数の前もってセットされたオフセット・ベクトルを決定する方法に類似しており、本発明のこの実施形態では説明しない。
【０３９７】
図２３は、本願の実施形態による動きベクトル取得装置２３００の概略ブロック図である。装置２３００は：
処理対象のピクチャ・ブロックの参照ブロックを決定するように構成された決定モジュール２３０１であって、参照ブロック及び処理対象のピクチャ・ブロックは前もってセットされた時間的又は空間的な相関を有し、参照ブロックは、初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを有し、参照ブロックの初期の動きベクトルは、参照ブロックの予測された動きベクトルに基づいて取得され、参照ブロックの予測ブロックは、初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとに基づいて取得される、決定モジュールと、
処理対象のピクチャ・ブロックの予測された動きベクトルとして、参照ブロックの初期の動きベクトルを使用するように構成された取得モジュール２３０２とを含む。
【０３９８】
実現可能な実装において、取得モジュール２３０２は、参照ブロックの予測された動きベクトルを、参照ブロックの初期の動きベクトルとして使用するように構成されるか、又は参照ブロックの予測された動きベクトルと参照ブロックの動きベクトル差分とを加算して、参照ブロックの初期の動きベクトルを取得するように更に構成される。
【０３９９】
実現可能な実施において、取得モジュール２３０２は、更に、参照ブロックの時間的な予測ブロックとして機能するように、参照ブロックの初期の動きベクトルによって示されるピクチャ・ブロックを、参照ブロックの参照フレームから取得し；１つ以上の実際の動きベクトルを取得するために、参照ベクトルの初期の動きベクトルと１つ以上の前もってセットされた動きベクトル・オフセットとを追加し（ここで、それぞれの実際の動きベクトルは１つ以上の探索位置を示す）、１つ以上の実際の動きベクトルによって示される１つ以上の探索位置において１つ以上の候補の予測ブロックを取得し（ここで、それぞれの探索位置は１つの候補の予測ブロックに対応する）、時間的な予測ブロックからの最小ピクセル差分を有する候補の予測ブロックを、参照ブロックの予測ブロックとして、１つ以上の候補の予測ブロックから選択するように構成される。
【０４００】
実現可能な実装において、装置２３００は、双方向予測に使用され、参照フレームは、第１方向の参照フレームと第２方向の参照フレームとを含み、初期の動きベクトルは、第１方向の初期の動きベクトルと第２方向の初期の動きベクトルとを含み、取得モジュール２３０２は、具体的には、参照ブロックの第１方向の参照フレームから、参照ブロックの第１方向の初期の動きベクトルによって示される第１ピクチャ・ブロックを取得し、参照ブロックの第２方向の参照フレームから、参照ブロックの第２方向の初期の動きベクトルによって示される第２のピクチャ・ブロックを取得し、参照ブロックの時間的な予測ブロックを取得するために、第１ピクチャ・ブロック及び第２ピクチャ・ブロックに対して重み付け処理を実行するように構成される。
【０４０１】
実現可能な実施において、取得モジュール２３０２は、処理対象のピクチャ・ブロックの予測された動きベクトルを、処理対象のピクチャ・ブロックの初期の動きベクトルとして使用するように具体的に構成される。
【０４０２】
実現可能な実施において、取得モジュール２３０２は、処理対象のピクチャ・ブロックの予測された動きベクトルと、処理対象のピクチャ・ブロックの動きベクトル差分
とを加算して、処理対象のピクチャ・ブロックの初期の動きベクトルを取得するように、具体的に構成される。
【０４０３】
実現可能な実装において、装置２３００は、ビデオ復号化に使用され、処理対象のピクチャ・ブロックの動きベクトル差分は、ビットストリームにおける第１識別情報を解析することによって得られる。
【０４０４】
実現可能な実装において、装置２３００は、ビデオ復号化に使用され、決定モジュール２３０１は、第２識別情報を得るためにビットストリームを解析し、第２識別情報に基づいて処理対象のピクチャ・ブロックの参照ブロックを決定するように、具体的に構成される。
【０４０５】
実現可能な実装において、装置２３００は、ビデオ符号化に使用され、決定モジュール２３０１は、処理対象のピクチャ・ブロックの１つ以上の候補の参照ブロックから、処理対象のピクチャ・ブロックの参照ブロックとして、最小レート歪コストを有する候補参照ブロックを選択するように、具体的に構成される。
【０４０６】
図２４は、本願の実施形態によるビデオ・コーディング・デバイスの概略ブロック図である。デバイス２４００は、エンコーダに適用されてもよいし、又はデコーダに適用されてもよい。デバイス２４００はプロセッサ２４０１及びメモリ２４０２を含む。プロセッサ２４０１及びメモリ２４０２は互いに（例えば、バス２４０４を介して）接続される。可能な実装において、デバイス２４００は、トランシーバ２４０３を更に含んでもよい。トランシーバ２４０３は、プロセッサ２４０１及びメモリ２４０２に接続され、データを受信／送信するように構成される。
【０４０７】
メモリ２４０２は、ランダム・アクセス・メモリ（random  access  memory，RAM）、リード・オンリー・メモリ（read−only  memory，ROM）、消去可能なプログラマブル。リード・オンリー・メモリ（erasable  programmable  read  only  memory，EPROM）、又はコンパクト・ディスク・リード・オンリー・メモリ（compact  disc  read−only  memory，CD−ROM）を含むが、これらに限定されない。メモリ２４０２は、関連するプログラム・コード及びビデオ・データを記憶するように構成される。
【０４０８】
プロセッサ２４０１は、１つ以上の中央処理ユニット（central  processing  unit，CPU）であってもよい。プロセッサ２４０１が１つのＣＰＵである場合、ＣＰＵは、シングル・コアＣＰＵ又はマルチ・コアＣＰＵであってもよい。
【０４０９】
プロセッサ２４０１は、メモリ２４０２に記憶されたプログラム・コードを読み込み、図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実現可能な実装における演算を実行するように構成される。
【０４１０】
例えば、本願の実施形態は、コンピュータ読み取り可能な記憶媒体を更に提供する。コンピュータ読み取り可能な記憶媒体は命令を記憶する。命令がコンピュータ上で実行される場合に、コンピュータは、
図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実装可能な実装における演算を実行することを可能にする。
【０４１１】
例えば、本願の実施形態は、命令を含むコンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータ上で実行される場合に、コンピュータは、図１３ないし図２０に対応する任意の実装解決策、及び実装解決策の種々の実装可能な実装における演算を実行することを可能にする。
【０４１２】
図２５は、本願の実施形態による動きベクトル取得装置を示す。装置は、決定モジュール２５０１と、第１取得モジュール２５０２と、第２取得モジュール２５０３とを含む。
【０４１３】
決定モジュール２５０１は、ステップ１９０４を実行するように構成される。
【０４１４】
第１取得モジュール２５０２は、ステップ１９０７を実行するように構成される。
【０４１５】
第２取得モジュール２５０３は、ステップ１９０７を実行するように構成される。
【０４１６】
オプションとして、参照ブロックが、前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックＣＴＢと、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが同じ行に位置することを含む。
相応して、参照ブロックが、前もってセットされたレンジ外にあることは、ステップ１９０７に関連して、参照ブロックが位置するコーディング・ツリー・ブロックと、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックとが異なる行に位置することを含む。
【０４１７】
オプションとして、参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックと処理対象のピクチャ・ブロックとが同じコーディング・ツリー・ブロックに位置することを含む。
相応して、参照ブロックが前もってセットされたレンジ外にあることは、ステップ１９０７に関連して、参照ブロックと処理対象のピクチャ・ブロックとが異なるコーディング・ツリー・ブロックに位置することを含む。
【０４１８】
オプションとして、
参照ブロックが前もってセットされたレンジ内にあることは、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じであること、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックであることを含む。
相応して、参照ブロックが前もってセットされたレンジ外にあることは、ステップ１９０７に関し、参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックと同じではないこと、又は参照ブロックが位置するコーディング・ツリー・ブロックが、処理対象のピクチャ・ブロックが位置するコーディング・ツリー・ブロックの左隣接又は右隣接ブロックではないことを含む。
【０４１９】
図２６は、本願の実施形態による動きベクトル残差決定装置を示す。装置は、解析モジュール２６０１、加算モジュール２６０２、決定モジュール２６０３、及び取得モジュール２６０４を含む。
【０４２０】
解析モジュール２６０１は、ステップ２００１を実行するように構成される。
【０４２１】
加算モジュール２６０２は、ステップ２００２を実行するように構成される。
【０４２２】
決定モジュール２６０３は、ステップ１４２２を実行するように構成される。
【０４２３】
取得モジュール２６０４は、ステップ２００８を実行するように構成される。
【０４２４】
オプションとして、装置は双方向インター予測に使用され、最終的な動きベクトルは第１の最終的な動きベクトルと第２の最終的な動きベクトルとを含み、初期の動きベクトルは第１の初期の動きベクトルと第２の初期の動きベクトルを含み；第１の最終的な動きベクトルと第１の初期の動きベクトルとは処理対象のピクチャ・ブロックの第１参照フレーム・リストに基づいて動き補償ブロックを示し、第２の最終的な動きベクトルと第２の初期の動きベクトルとは処理対象のピクチャ・ブロックの第２参照フレーム・リストに基づいて動き補償ブロックを示し；及び
最終的な動きベクトルと初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの動きベクトル残差として使用することは：
第１の最終的な動きベクトルと第１の初期の動きベクトルとの間の差分を、処理対象のピクチャ・ブロックの第１動きベクトル残差として使用することを含む。
【０４２５】
図２７は、本願の実施形態による動きベクトル・データ記憶装置を示す。装置は、第１解析モジュール２７０１、取得モジュール２７０２、第２解析モジュール２７０３、及び記憶モジュール２７０４を含む。
【０４２６】
第１解析モジュール２７０１は、ステップ２００１を実行するように構成される。
【０４２７】
取得モジュール２７０２は、ステップ２００７を実行するように構成される。
【０４２８】
第２解析モジュール２７０３は、ステップ２００１を実行するように構成される。
【０４２９】
記憶モジュール２７０４は、ステップ２００８を実行するように構成される
【０４３０】
当業者は、本明細書で開示された実施形態で説明される例との組み合わせにおいて、ユニット及びアルゴリズム・ステップは、電子ハードウェア、又はコンピュータ・ソフトウェアと電子ハードウェアとの組み合わせによって実現されることが可能であることを認識するであろう。機能がハードウェア又はソフトウェアによって実行されるかどうかは、特定のアプリケーション及び技術的解決策の設計制約条件に依存する。当業者は、それぞれの特定のアプリケーションについて、説明された機能を実装するために様々な方法を使用することが可能であるが、そのような実装が本願の範囲を超えるものであると考えるべきではない。
【０４３１】
便宜上及び簡潔な説明の目的により、前述のシステム、装置、及びユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスを参照されたいということが、当業者には明らかに理解されるであろう。詳細はここで再び説明しない。
【０４３２】
前述の実施形態のすべて又は一部は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されることが可能である。ソフトウェアが実施形態を実施するために使用される場合、実施形態は、コンピュータ・プログラム製品の形式で完全に又は部分的に実現されることが可能である。コンピュータ・プログラム製品は、１つ以上のコンピュータ命令を含む。コンピュータ・プログラム命令がコンピュータ上においてロードされ実行される場合に、本願の実施形態に従って、手順又は機能の全部又は一部が生じる。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータ・ネットワーク、又は他のプログラム可能な装置であってもよい。コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶されてもよく、又はコンピュータ読み取り可能な記憶媒体から別のコンピュータ読み取り可能な記憶媒体へ送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバー、又はデータ・センターから他のウェブサイト、コンピュータ、サーバー、又はデータ・センターに、有線（例えば、同軸ケーブル、光ファイバ、又はデジタル加入者回線）又は無線（例えば、赤外線、マイクロ波など）方式で送信されることが可能である。コンピュータ読み取り可能な記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、又は１つ以上の使用可能な媒体を統合するサーバー又はデータ・センターなどのデータ・ストレージ・デバイスであってもよい。使用可能な媒体は、磁気媒体（例えば、フロッピー・ディスク、ハード・ディスク、又は磁気テープ）、光媒体（例えば、デジタル多用途ディスク）、半導体媒体（例えば、固体ドライブ）等であってもよい。
【０４３３】
前述の実施形態では、各々の実施形態における説明は個々の焦点を有する。実施形態において詳細には説明されていない部分については、他の実施形態における関連する説明を参照されたい。
【０４３４】
以上の説明は、本願の特定の実装を説明しているに過ぎず、本願の保護範囲を限定するようには意図されていない。本願で開示される技術的範囲の中で当業者により容易に把握される任意の変形又は置換は、本願の保護範囲内にあるものとする。従って、本願の保護範囲は、クレームの保護範囲に従うものとする。
【国際調査報告】
2021536699.tif 000031
2021536699.tif 000032
2021536699.tif 000033
2021536699.tif 000034