(57)【要約】      （修正有）【課題】動きベクトル予測候補のスケーリングにおいてベクトル成分の範囲を制限することによりメモリ帯域幅の効率的な利用を促進する。【解決手段】ビデオエンコーダの動き推定ユニット４２は、スケーリングされた候補動きベクトルを動きベクトルの範囲内に留まるようにスケーリングする。またはスケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようクリッピングし、スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようクリッピングする。【選択図】図２
2018050308.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを備える方法。
【請求項２】
前記スケーリングされた候補動きベクトルを修正することは、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを備える、請求項１に記載の方法。
【請求項３】
前記スケーリングされた候補動きベクトルを修正することは、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを備える、請求項１に記載の方法。
【請求項４】
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、請求項１に記載の方法。
【請求項５】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項１に記載の方法。
【請求項６】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項１に記載の方法。
【請求項７】
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、請求項１に記載の方法。
【請求項８】
前記スケーリングされた動きベクトルを修正することは、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることとを含む、請求項１に記載の方法。
【請求項９】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることをさらに備える、請求項１に記載の方法。
【請求項１０】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることをさらに備える、請求項１に記載の方法。
【請求項１１】
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように、前記スケーリングされた候補動きベクトルをスケーリングすることを備える、請求項１に記載の方法。
【請求項１２】
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１３】
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを備える、請求項１に記載の方法。
【請求項１４】
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することとをさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１５】
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することとをさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１６】
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択することと、動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行うように構成されたプロセッサを備えるビデオコーディングデバイス。
【請求項１７】
前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行うように、前記プロセッサがさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項１８】
前記プロセッサは、
前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項１９】
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、請求項１６に記載のビデオコーディングデバイス。
【請求項２０】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項１６に記載のビデオコーディングデバイス。
【請求項２１】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項１６に記載のビデオコーディングデバイス。
【請求項２２】
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、請求項１６に記載のビデオコーディングデバイス。
【請求項２３】
前記プロセッサは、
前記スケーリングされた動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングすることとを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２４】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２５】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２６】
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように前記スケーリングされた候補動きベクトルをスケーリングすることを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２７】
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２８】
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２９】
前記プロセッサは、
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項３０】
前記プロセッサは、
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項３１】
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成するための手段と、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正するための手段と、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択するための手段と、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングするための手段とを備えるビデオコーディングデバイス。
【請求項３２】
前記スケーリングされた候補動きベクトルを修正するための前記手段は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに前記スケーリングされた候補動きベクトルを修正するための手段を備える、請求項３１に記載のビデオコーディングデバイス。
【請求項３３】
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングするための手段を備える、請求項３１に記載のビデオコーディングデバイス。
【請求項３４】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項３１に記載のビデオコーディングデバイス。
【請求項３５】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項３１に記載のビデオコーディングデバイス。
【請求項３６】
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、請求項３１に記載のビデオコーディングデバイス。
【請求項３７】
前記スケーリングされた動きベクトルを修正するための前記手段は、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングするための手段と、
前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングするための手段とを含む、請求項３１に記載のビデオコーディングデバイス。
【請求項３８】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングするための手段をさらに備える、請求項３１に記載のビデオコーディングデバイス。
【請求項３９】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングするための手段をさらに備える、請求項３１に記載のビデオコーディングデバイス。
【請求項４０】
実行されたとき、１つまたは複数のプロセッサに、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項４１】
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行わせる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４２】
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行わせる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４３】
実行されたとき、前記１つまたは複数のプロセッサに、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行わせる命令をさらに記憶した、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４４】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４５】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４６】
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４７】
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた動きベクトルを修正するとき、
前記スケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることとを行わせる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４８】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行わせる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【請求項４９】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行わせる、請求項４０に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は２０１１年１２月２２日に出願された米国仮出願第６１／５７９，４６５号、および２０１２年１月６日に出願された米国仮出願第６１／５８４，０９６号の利益を主張するもので、これらの各々が参照により全て本明細書に組み込まれる。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングの動き補償の態様に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ
Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびそのような規格の拡張版に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。ＭＰＥＧとＩＴＵ−Ｔとのコラボレーションである「Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ−Ｖｉｄｅｏ  Ｃｏｄｉｎｇ」（ＪＣＴ−ＶＣ）によって開発されているＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格など、新しいビデオコーディング規格が開発されつつある。新生ＨＥＶＣ規格は、Ｈ．２６５と呼ばれることもあるが、そのような名称は公式になされたものでない。
【発明の概要】
【０００４】
概して、本開示は、動きベクトル予測プロセスにおいて使用される動きベクトル候補の範囲を、指定範囲内になるように限定するための技法を説明する。動きベクトル予測は通常、動き推定が行われる際の効率を高める方法としてビデオコーディングにおいて採用される。一般に「動き推定」と呼ばれるものを行うことで現在のブロックに一致する参照フレーム中のブロックの探索を行うのでなく、ビデオコーダは、ビデオデータの現在のブロックに対する空間的または時間的近傍ブロックであるブロックから、これらの候補動きベクトルを特定し、ビデオデータの現在のブロックに関する動きベクトル予測子として、これらの候補動きベクトルのうちの１つを選択し得る。場合によって、これらの候補動きベクトルがスケーリングされ得る。スケーリングされた候補動きベクトルが動きベクトル予測子として選択されるとき、本技法は、ビデオコーダが、このスケーリングされた候補動きベクトルの水平成分および垂直成分のうちの１つまたは複数の範囲を限定することを可能にし得る。
【０００５】
一例では、ビデオデータをコーディングする方法は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することとを備える。本方法は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとをさらに備える。
【０００６】
別の例では、動きベクトル予測プロセスを行って、ビデオデータをコーディングするように構成されたビデオコーディングデバイスは、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することと、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとを行うように構成された、プロセッサを備える。
【０００７】
別の例では、動きベクトル予測プロセスを行って、ビデオデータをコーディングするように構成されたビデオコーディングデバイスは、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成するための手段とを備える。ビデオコーディングデバイスは、スケーリングされた候補動きベクトルを、指定範囲内になるように修正するための手段と、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択するための手段と、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングするための手段とをさらに備える。
【０００８】
別の例では、非一時的コンピュータ可読記憶媒体は、実行されたときに、１つまたは複数のプロセッサに、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成することと、スケーリングされた候補動きベクトルを、指定範囲内になるように修正することと、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択することと、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングすることとを行わせる命令を記憶している。
【０００９】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】動きベクトル予測プロセスを行うとき、候補動きベクトルの範囲を限定するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】ＭＶＰの範囲を限定するための本開示で説明する技法を実施し得るビデオエンコーダの一例を示すブロック図。
【図３】本開示で説明する動きベクトル予測技法を実施するビデオデコーダの一例を示すブロック図。
【図４】本開示で説明する動きベクトル予測技法の態様を行う際のビデオコーダの例示的な動作を示すフローチャート。
【図５】本開示で説明する動きベクトル予測技法の他の態様を実施する際のビデオコーダの例示的な動作を示すフローチャート。
【図６】現在の予測ユニット（ＰＵ）に対する隣接する近傍ＰＵおよび時間的コロケートＰＵの例示的配置を示す図。
【発明を実施するための形態】
【００１１】
詳細な説明
本開示で説明する技法の実施形態は、ビデオコーダ（ビデオエンコーダおよびビデオデコーダの一方または両方を指すために、本明細書で使用される用語を表し得る）が、動きベクトル予測プロセスを行うとき、被選択候補動きベクトル(selected candidate motion vectors)の範囲を指定範囲(specified range)内になるように限定することを可能にする。言い換えれば、本技法は、ビデオコーダが、ビデオデータの現在のブロックに関する候補動きベクトルのリスト（但し、これらの候補動きベクトルはまた「動きベクトル予測子候補」と呼ばれることもあり、このリストは「候補リスト」と呼ばれることがある）を特定することと、ビデオデータの現在のブロックに関する動きベクトル予測子（ＭＶＰ）を表すために、このリスト中の候補動きベクトルのうちの１つを選択することとを可能にする。次いで、ビデオコーダは、被選択候補動きベクトルがスケーリングされたかどうかを判断し得る。この被選択候補動きベクトルがスケーリングされたと判断すると、次いで、ビデオコーダは、被選択候補動きベクトルの水平成分および／または垂直成分が、それぞれ水平成分値の指定範囲および／または垂直成分値の指定範囲内に含まれるかどうかを判断し得る。これらの指定範囲は、事実上、水平変位制限および／または垂直変位制限と呼ばれることがあるものを表し得る。水平成分値の指定範囲および／または垂直成分値の指定範囲内に含まれない場合、ビデオコーダは、水平および／または垂直成分値が水平成分値の指定範囲および／または垂直成分値の指定範囲内に含まれるように、これらの値をクリッピングし得る。
【００１２】
このようにして、本技法は、動きベクトル予測子候補クリッピングプロセスと呼ばれ得るものの候補リスト生成プロセスを修正し得る。例えば、ビデオコーダは、候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。同様に、ビデオコーダは、候補動きベクトルの水平成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。加えて、ビデオコーダは、動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。これらの技法は、中間候補動きベクトルの一部もしくは全部に適用されてもよく、または、現在のビデオブロックに関する最終の被選択動きベクトル予測子のみに適用されてもよい。
【００１３】
言い換えれば、候補リストの候補動きベクトルが、動きベクトル変位制限を超えて位置する予測ブロックをポイントするとき、ビデオコーダ（「ビデオコーディングデバイス」と呼ばれることもある）は、候補動きベクトルの値をクリッピングするか、または他の方法で切り捨てることができる。次いで、ビデオコーダは、候補リストの選択およびクリッピングされた候補動きベクトルに基づいて、現在のビデオブロックをコーディングし得る。
【００１４】
場合によって（この被選択候補動きベクトルがスケーリングされるときなど）、被選択候補動きベクトルの水平および／または垂直成分値の範囲を制限、または他の方法で限定することによって、本技法は、水平および／または垂直動きベクトルが、それらの符号付き整数値を表現するために一定数よりも多いビットを必要としないことを保証し得る。言い換えれば、符号付き整数値である、動きベクトルの成分値は、一般に１６ビットを使用して表現される。ビデオデコーダは、従って、動きベクトルを定義するとき、１つの動きベクトル成分につき１６ビットを割り振る。動きベクトルが１６ビットを超えることを可能にすることは、表現するために１６ビットよりも多くを必要とするそれらの動きベクトル成分を記憶するために、追加の物理メモリが与えられる必要があるので、ハードウェアで実施されるとき、ビデオデコーダ設計を著しく複雑にすることがある。
【００１５】
加えて、場合によって、動きベクトル成分の範囲を、指定範囲内になるように限定することによって、本技法は、メモリ帯域幅のより効率的な利用を促進し得る。説明するため、ビデオデータのフレームのビデオコーディングが、典型的には（一般に、上から下、左から右への読取り順序である）ラスタ走査順序で進むとすれば、動きベクトルの垂直成分を制限することは、動きベクトルが参照する参照フレームのどれだけのビデオデータが、オンチップメモリにロードされることが必要とされるかを限定し得る。より小さい動きベクトル垂直成分は、ラスタ走査ビデオコーディングでは、ビデオコーダのハードウェア実装形態において必要とされるオンチップメモリの量を限定するための有効な方法と見なされ得る。過度に大きい動きベクトル垂直成分は、複数のブロックが同じ参照フレームのまったく異なる部分をそれぞれ参照し、次いで、それらの部分が、ビデオデコーダがオフチップメモリとオンチップメモリとの間で参照フレームのこれらの異なる部分を頻繁に交換することを必要とするという場合になり得る。場合によって、動きベクトル成分の範囲を限定することによって、本技法は、メモリ帯域幅のより効率的な利用を促進し得る。
【００１６】
図１は、動きベクトル予測プロセスを行うとき、候補動きベクトルの範囲を限定するための、本開示で説明する技法を利用するように構成され得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１の例に示すように、システム１０は、宛先デバイス１４によって復号される符号化ビデオを生成するソースデバイス１２を含む。ソースデバイス１２は、通信チャネル１６を介して宛先デバイス１４に符号化ビデオを送信することができ、または記憶媒体３４もしくはファイルサーバ３６に符号化ビデオを記憶して、符号化ビデオが必要に応じて宛先デバイス１４によってアクセスされ得るようにできる。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、（セルラー電話またはハンドセットおよびいわゆるスマートフォンを含む）電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、広範囲にわたるデバイスのいずれかを備え得る。
【００１７】
多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。従って、通信チャネル１６はワイヤレスチャネルを備え得る。代替的に、通信チャネル１６は、ワイヤードチャネル、ワイヤレスチャネルとワイヤードチャネルの組合せ、または符号化ビデオデータの送信に好適な任意の他のタイプの通信チャネルもしくは通信チャネルの組合せ、例えば、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線路を備え得る。いくつかの例では、通信チャネル１６は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。従って、通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００１８】
図１の例にさらに示すように、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器２２（「モデム２２」）と、送信機２４とを含む。ソースデバイス１２において、ビデオソース１８はビデオキャプチャデバイスなどのソースを含み得る。ビデオキャプチャデバイスは、例として、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのうちの１つまたは複数を含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。但し、本開示で説明する技法は、ワイヤレスアプリケーションまたは設定に限定されず、ビデオ符号化および／または復号機能を含む非ワイヤレスデバイスに適用され得る。従って、ソースデバイス１２および宛先デバイス１４は、本明細書で説明する技法をサポートできるコーディングデバイスの例にすぎない。
【００１９】
ビデオエンコーダ２０は、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオを符号化できる。符号化されると、ビデオエンコーダ２０は、この符号化ビデオをモデム２２に出力できる。次いでモデム２２は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオを変調することができ、その後、送信機２４は、変調された符号化ビデオデータを宛先デバイス１４に送信できる。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含むことができる。
【００２０】
ビデオエンコーダ２０によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオはまた、後の取出し、復号および消費のために記憶媒体３４またはファイルサーバ３６に記憶され得る。記憶媒体３４は、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。宛先デバイス１４は、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオにアクセスし、この符号化ビデオを復号して復号ビデオを生成し、この復号ビデオを再生できる。
【００２１】
ファイルサーバ３６は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス１４に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な任意の他のタイプのデバイスを含む。ファイルサーバ３６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。宛先デバイス１４は、インターネット接続を含む任意の標準的なデータ接続によりファイルサーバ３６にアクセスできる。この接続は、ワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続またはワイヤレスセルラーデータ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデムなど）、ワイヤードチャネルとワイヤレスチャネルの両方の組合せ、またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適な任意の他のタイプの通信チャネルを含むことができる。
【００２２】
図１の例では、宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調して、ビデオデコーダ３０のための復調されたビットストリームを生成する。チャネル１６を介して通信される情報は、関連する符号化ビデオデータを復号する際にビデオデコーダ３０が使用する、ビデオエンコーダ２０によって生成された様々なシンタックス情報を含み得る。そのようなシンタックスはまた、記憶媒体３４またはファイルサーバ３６に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ（コーデック）の一部を形成し得る。
【００２３】
宛先デバイス１４のディスプレイデバイス３２は、閲覧者が消費するビデオデータを提示することが可能な任意のタイプのディスプレイを表す。ディスプレイデバイス３２は宛先デバイス１４に統合されているものとして示されているが、宛先デバイス１４に統合されても、宛先デバイス１４の外部にあってもよい。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２４】
本開示は全般的に、ビデオデコーダ３０などの別のデバイスにシンタックス情報を「シグナリングする」ビデオエンコーダ２０に言及することがある。但し、ビデオエンコーダ２０は、ビデオデータの様々な符号化部分にシンタックス要素を関連付けることによって、情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ２０は、ビデオデータの様々な符号化部分のヘッダにいくつかのシンタックス要素を記憶することによって、データを「シグナリングする」ことができる。場合によって、そのようなシンタックス要素は、ビデオデコーダ３０によって受信され、復号される前に符号化され、記憶され（例えば、記憶媒体３４またはファイルサーバ３６に記憶され）得る。従って、「シグナリング」という用語は全般的に、圧縮されたビデオデータを復号するために使用されるシンタックスまたは他のデータの通信を指すことがあり、そのような通信がリアルタイムまたはほぼリアルタイムで生じるか、それともある時間スパンで生じるか、例えば符号化時に媒体にシンタックス要素を記憶する（シンタックス要素は、この媒体に記憶された後、任意の時間に復号デバイスによって取り出され得る）ときに生じるかを問わない。
【００２５】
ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、またはそのような規格の拡張版など、他のプロプライエタリまたは業界標準に従って動作し得る。但し、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００２６】
ＨＭでは、ビデオデータのブロックをコーディングユニット（ＣＵ）と呼ぶ。概して、ＣＵは、ＣＵがＨ．２６４のマクロブロックに関連するサイズ差異を有しないことを除いて、Ｈ．２６４に従ってコーディングされたマクロブロックと同様の目的を有する。従って、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニット（ＬＣＵ）またはＬＣＵのサブＣＵを指すことがある。例えば、ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットであるＬＣＵを定義し得る。ＬＣＵはサブＣＵに分割され得、各サブＣＵはサブＣＵに分割され得る。ビットストリームのシンタックスデータは、最大ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。従って、ビットストリームは最小コーディングユニット（ＳＣＵ）をも定義し得る。
【００２７】
ＬＣＵは階層型４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは、サブＣＵに対応する４つのノードの各々に関する参照を含む。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。例えば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００２８】
分割されないＣＵは、１つまたは複数の予測ユニットを含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、そのＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの１つまたは複数の動きベクトルを定義するデータを含み得る。動きベクトルは全般的に、１つまたは複数の参照フレーム内のコロケートＣＵ(co-located CU)を識別し、「参照フレーム」という用語は、時間的に、ＰＵが位置するフレームの前または後に生じるフレームを指す。また、（１つまたは複数の）ＰＵを定義するＣＵについてのデータは、例えば、１つまたは複数のＰＵへのＣＵの区分について記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
【００２９】
動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがポイントする参照フレーム、識別された参照フレームが現在のフレームの前にあるか後にあるかを識別する予測方向、および／または動きベクトルの参照リスト（例えば、リスト０もしくはリスト１）を記述し得る。代替的に、動きベクトルを定義するデータは、動きベクトル予測子（ＭＶＰ）と呼ばれるものに関して動きベクトルを記述し得る。動きベクトル予測子は、近傍ＰＵ(neighboring PU)または時間的コロケートＰＵ(temporally co-located PU)の動きベクトルを含み得る。一般に、５つの候補動きベクトルを有するリストが、規定された方法で（例えば、最大振幅を有する候補動きベクトルから最小振幅を有する候補動きベクトルまでの候補動きベクトル、すなわち、コーディングされる現在のＰＵと参照ＰＵとの間の最大変位もしくは最小変位を有する候補動きベクトルを含む候補動きベクトルを記載する、またはロケーション、すなわち上ブロック、左ブロック、隅ブロック、時間ブロックに基づいて候補動きベクトルを記載する、など）形成され、この場合、５つの候補動きベクトルのうちの４つは、４つの近傍ＰＵから選択された空間動きベクトルであり、５番目の候補動きベクトルは、参照フレーム内の時間的コロケートＰＵから選択された時間的コロケート動きベクトルである。
【００３０】
一般に、時間的候補動きベクトルは参照フレームにおいて、現在のフレーム内の現在の部分と同じ部分にコロケートされるが、本技法は、コロケートされる時間的候補動きベクトルに厳密に限定されるものではない。代わりに、本技法は、コロケートされるかどうかにかかわらず、任意の時間的候補動きベクトルに関して実施され得る。場合によって、ビデオエンコーダは、動きベクトル予測プロセスを行うとき、現在のフレームの現在のブロックまたは部分とコロケートされていない時間的候補動きベクトルを識別し、この時間的候補動きベクトルを使用できる。通常、ビデオエンコーダは、コロケートされていない時間的候補動きベクトルが使用されていることをシグナリングすることがあり、または場合によって、所与の文脈が、コロケートされていない時間的候補動きベクトルが使用されていることを示す（この場合、ビデオエンコーダは、コロケートされていない時間的候補動きベクトルがＭＶＰとして選択されたかどうかをシグナリングしなくてよい）ことがある。
【００３１】
５つの候補動きベクトルを有するリストを作成した後、ビデオエンコーダ２０は、候補動きベクトルの各々を評価して、ビデオを符号化するために選択された所与のレートおよびひずみのプロファイルに最も良く合致する最良のレートおよびひずみの特性をもたらすのはどれかを判断できる。ビデオエンコーダ２０は、５つの候補動きベクトルの各々に関してレートひずみ最適化(rate-distortion optimization)（ＲＤＯ) 手順を行い、最良のＲＤＯ結果を有する候補動きベクトルのうちの１つをＭＶＰとして選択できる。代替的に、ビデオエンコーダ２０は、現在のＰＵに関して特定された動きベクトルに最も近似する、リストに記憶された５つの候補動きベクトルのうちの１つをＭＶＰとして選択できる。
【００３２】
いずれの場合も、ビデオエンコーダ２０は、５つの候補動きベクトルを有するリスト内の候補動きベクトルのうちの選択された１つを識別するインデックス、（リスト形式であることが多い）動きベクトルがポイントする１つまたは複数の参照フレーム、および予測が単方向であるか双方向であるかを識別する予測方向を備えるデータを使用して、動きベクトルを指定できる。代替的に、動きベクトルを定義するデータは、参照フレームと予測方向とを指定することなく、５つの候補動きベクトルを有するリスト内の選択された候補動きベクトルのインデックスを指定するだけでもよく、この場合、候補動きベクトルのうちの選択された１つが現在のＰＵに全体的に使用されることが、ビデオデコーダにシグナリングされる。
【００３３】
１つまたは複数の動きベクトルを定義する１つまたは複数のＰＵを有することに加えて、ＣＵは１つまたは複数の変換ユニット（ＴＵ）を含むことができる。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値(residual value)を計算することができ、この残差値は残差データと呼ばれることもある。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。従って、各ＴＵは、同じＣＵについての対応するＰＵよりも大きくても小さくてもよい。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。本開示ではまた、ＣＵ、ＰＵ、および／またはＴＵの任意の１つまたは組合せを指すために「ブロック」という用語を使用する。
【００３４】
概して、符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダ２０は、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの近傍にある、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、あるピクチャのブロック中のピクセル値を、前にコーディングされたピクチャのデータに対して予測することを伴う。
【００３５】
イントラ予測またはインター予測の後に、ビデオエンコーダ２０はブロックの残差ピクセル値を計算し得る。その残差値は、概して、ブロックの予測ピクセル値データとブロックの真のピクセル値データとの間の差分に対応する。例えば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの１つまたは複数のブロックに関連し得る。
【００３６】
ブロックの残差値をさらに圧縮するために、残差値は、（「エネルギー」とも呼ばれる）できるだけ多くのデータをできるだけ少数の係数に構成する変換係数のセットに変換され得る。変換技法は、離散コサイン変換（ＤＣＴ）プロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、または他のタイプの変換を備え得る。その変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の２次元行列に対応する。言い換えれば、元のブロック中のピクセルとちょうど同数の変換係数がある。但し、変換により、変換係数の多くは、０に等しい値を有し得る。
【００３７】
ビデオエンコーダ２０は、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化変換係数を表すために必要とされるデータの量を低減することを伴う。より詳細には、量子化は、ＬＣＵレベルにおいて定義され得る量子化パラメータ（ＱＰ）に従って適用され得る。従って、ＬＣＵ内のＣＵの様々なＰＵに関連するＴＵにおけるすべての変換係数に、同じレベルの量子化が適用され得る。但し、ＱＰ自体をシグナリングするのではなく、ＱＰの変化（すなわち、差分）がＬＣＵとともにシグナリングされ得る。差分ＱＰは、前に通信されたＬＣＵのＱＰのような何らかの参照ＱＰに対するＬＣＵの量子化パラメータの変化を定義する。
【００３８】
量子化の後に、ビデオエンコーダ２０は、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成し得る。次いでビデオエンコーダ２０は、（誤称によって「エントロピー符号化」と一般に呼ばれる）統計的可逆符号化を行ない、得られたアレイを符号化することで、データをなお一層圧縮できる。概して、エントロピーコーディングは、一連の量子化変換係数および／または他のシンタックス情報をまとめて圧縮する１つまたは複数のプロセスを備える。例えば、差分ＱＰ、予測ベクトル、コーディングモード、フィルタ、オフセット、または他の情報などのシンタックス要素も、エントロピーコード化ビットストリームに含まれ得る。走査された係数は次いで、例えば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、または任意の他の統計的可逆コーディングプロセスによって、任意のシンタックス情報とともにエントロピーコーディングされる。
【００３９】
上述のように、ＰＵに関する動きベクトルを定義するデータはいくつかの形態をとり得る。ビデオエンコーダ２０は、動きベクトルデータを圧縮するように動きベクトルが表現され得る様々な方法を実施できる。ビデオエンコーダ２０は、規定された方法で構成された候補動きベクトルのリストに記憶された候補動きベクトルを識別するインデックスとして動きベクトルを表現する、「マージモード」と呼ばれるものを実施できる。ビデオデコーダ３０は、このマージモードの逆を実施する中で、このインデックスを受信し、規定された方法に従って５つの候補動きベクトルからなるリストを再構成し、インデックスによって示されるリスト内の５つの候補動きベクトルのうちの１つを復号されるビデオデータの現在のブロックのＭＶＰとして選択する。次いでビデオデコーダ３０は、候補動きベクトルのうちの選択された１つの同じ解像度による、候補動きベクトルのうちの選択された１つがポイントするのと同じ参照フレームをポイントする関連ＰＵに関するＭＶＰとして、候補動きベクトルのうちの選択された１つをインスタンス化できる。マージモードを実施する際、ビデオエンコーダ２０は、動きベクトルを導出するのに必要な全範囲で動き推定を行わなくてよく、動きベクトルの水平成分および垂直成分、動きベクトルの解像度、（動きベクトルが時間的に現在のフレームの前にあるフレームをポイントするか、それとも後にあるフレームをポイントするかを意味する）動きベクトル方向、または参照フレームインデックスを指定しなくてよく、それにより潜在的に、動きベクトルを特定するのに必要なプロセッササイクルを減らし、動きベクトルデータを圧縮する。
【００４０】
ビデオエンコーダ２０は、マージモードに類似する、候補動きベクトルのうちの１つをＭＶＰとして識別するインデックスとして動きベクトルを表現することを含む適応型動きベクトル予測（ＡＭＶＰ）モードを実施することもできる。但し、マージモードとは異なり、ビデオエンコーダ２０は予測方向と参照フレームとを指定して、候補動きベクトルのうちの選択された１つのこれらの部分を効果的に無効にすることもできる。ＡＭＶＰモードを実施する際、ビデオエンコーダ２０は、動きベクトルを導出するのに必要な全範囲で動き推定を行わなくてよく、動きベクトルの水平成分および垂直成分と動きベクトルの解像度とを指定しなくてよく、それにより潜在的に、動きベクトルを特定するのに必要なプロセッササイクルを減らし、動きベクトルデータを圧縮する。
【００４１】
一般に、現在提案されている規格であるＨＥＶＣの前身のビデオコーディング規格は、動きベクトル垂直成分および水平成分のサイズを制約するために、様々な制限を定義した。これらの制限は、上述のように、垂直および／または水平変位を最大値および最小値に限定する範囲として定義され得る。ＨＥＶＣでは、これらの動きベクトル成分範囲（一般に「ｍｖｒａｎｇｅ」と示す）が、最初に、Ｈ．２６４など、前身のビデオコーディング規格におけるこれらの範囲の使用に基づいて提案および採用された。しかしながら、より最近では、動きベクトルが一般に参照フレームのいかなる部分を参照することも可能にするために、水平および／または垂直変位におけるこれらの範囲が、ＨＥＶＣから削除された。動きベクトルはまた、ＨＥＶＣにおいて、それぞれ長さが１６ビットである成分値を有するようにも定義され、このことは、典型的には、参照フレームのほぼいかなる部分をも対象とする大きい動きベクトル成分値を表現するために十分なビットをもたらした。動きベクトルが参照フレームの概していかなる部分を参照することも可能にすることによって、ビデオエンコーダは、（ビデオデータの現在のブロックのより効率的な圧縮の別の言い方である）最小量の残差データを生じる参照フレームの部分のより網羅的な探索を行い得る。
【００４２】
さらに、いくつかの状況では、動きベクトルの範囲を制限することは有利であり得る。例えば、上記の動きベクトル予測プロセスのうちの１つ（例えば、マージモードまたはＡＭＶＰモード）を行うとき、動きベクトル候補のうちの１つまたは複数が、候補リストに追加されるより前に、スケーリングされ得る。次いで、このスケーリングされた動きベクトル成分は、動きベクトル成分ごとに通常定義された１６ビット長を超え得る。そのようなスケーリングされた動きベクトルが１６ビット長よりも大きいとき、ビデオエンコーダ２０は、マージモードが利用不可能である、または、言い換えれば、マージモードが行われ得ないと判断し得る。ＡＭＶＰを行うとき、動きベクトルのうちの１つまたは複数がスケーリングされ得るので、この同じ問題が、ＡＭＶＰモードを行うときに発生することがある。マージモードとＡＭＶＰモードのいずれかまたは両方の使用を制限することは、圧縮の非効率を生じ得る。
【００４３】
本開示で説明する技法によれば、ビデオエンコーダ２０は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し得る。すなわち、ビデオエンコーダ２０は、ビデオデータの現在のブロックの１つまたは複数の近傍ブロックを識別し得る（但し、これらの近傍ブロックは「ビデオデータの候補ブロック」または「候補ビデオブロック」と呼ばれることもある）。ビデオエンコーダ２０は、１つまたは複数の（および、一般に４つの）空間的近傍ブロックと、１つまたは複数の（および、一般に単一の）時間的近傍ブロックとを識別し得る。現在のブロックに対するこれらの空間的および時間的近傍ブロックのロケーションが、図６に関して以下で詳細に示される。これらの近傍ブロックを識別した後、次いで、ビデオエンコーダ２０は、これらの近傍ブロックの各々に関連する動きベクトルを特定し得、但し、これらの動きベクトルは、動きベクトル予測プロセスに関する候補動きベクトルを表し得る。
【００４４】
これらの動きベクトルを特定すると、ビデオエンコーダ２０は、場合によって、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成し得る。説明するために、動きベクトル予測プロセスのマージモードを行うとき、ビデオエンコーダ２０は、時間的近傍ブロックに関連する動きベクトルを特定し得、但し、この時間的近傍ブロックは、ビデオデータの現在のブロックと同じ、参照フレームの位置にコロケートされた、ビデオデータのブロックを指す。この参照フレームは、フレームが他のフレームに対して表示されるべきである順序を識別する、ビデオデータの各フレームに割り当てられた番号を指す、ピクチャ順序カウントに関連付けられ得る。一般に、ビデオエンコーダ２０は、ビデオデータのコロケートブロックが存在する参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、時間的候補動きベクトルをスケーリングし得る。
【００４５】
別の例として、動きベクトル予測プロセスの高度動きベクトル予測（ＡＭＶＰ：advanced motion vector prediction）モードを行うとき、ビデオエンコーダ２０は、同様に、ビデオデータのコロケートブロックが存在する参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、時間的候補動きベクトルをスケーリングし得る。但し、上述のように、動きベクトル予測プロセスのＡＭＶＰモードは、候補動きベクトルの様々な態様が有効にオーバーライドされることを可能にする。結果として、動きベクトル予測プロセスのＡＭＶＰモードでは、ビデオエンコーダ２０は、空間的候補動きベクトルに関連する参照フレームをオーバーライドし得、そのことが、指定された（または、オーバーライド）参照フレームと、ビデオデータの現在のブロックが存在する現在のフレームとの間の、ピクチャ順序カウントの差に基づいて、空間的候補動きベクトルをスケーリングする結果になり得る。従って、ビデオエンコーダ２０は、動きベクトル予測プロセスのＡＭＶＰモードを行うとき、時間的候補動きベクトルと空間的候補動きベクトルの両方をスケーリングし得る。
【００４６】
次いで、ビデオエンコーダ２０は、現在のブロックに関するＭＶＰとして、複数の候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルのうちの１つまたは複数の範囲を、指定範囲内になるように限定し得る。言い換えれば、ビデオエンコーダ２０は、現在のブロックに関するＭＶＰとして、候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。現在のブロックに関するＭＶＰとして、候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルのうちの１つまたは複数を修正するとき、ビデオエンコーダ２０は、スケーリングされた候補動きベクトルが指定範囲（「変位制限」と呼ばれることもある）に限定されることを保証するために、これらのスケーリングされた候補動きベクトルの各々を修正し得る。指定範囲は、一例として、１／４ピクセル単位で［−３２７６８，３２７６７］として指定される。
【００４７】
現在のブロックに関するＭＶＰとして、候補動きベクトルのうちの１つを選択（および、候補動きベクトルのうちの選択された１つを潜在的に修正）した後、次いで、ビデオエンコーダ２０は、ＭＶＰを使用して、ビデオデータの現在のブロックを符号化し得る。すなわち、ビデオエンコーダ２０は、ＭＶＰを使用して、参照フレーム中の参照ブロックを識別し、現在のブロックと参照ブロックとの間の差として、ビデオデータの残差ブロックを生成し得る。次いで、ビデオエンコーダ２０は、上記の変換動作を行って、ビデオデータのこの残差ブロックを空間領域から周波数領域に変換し、変換係数のブロックを生成し得る。ビデオエンコーダ２０は、次に、変換係数を量子化し、量子化された変換係数をランレングス符号化し、ランレングス符号化され量子化された変換係数を（統計的可逆コーディングの別の言及方法である）エントロピー符号化し得る。ビデオエンコーダ２０は、関連するシンタックス要素とともにビットストリームにおいてこのコード化ビデオデータを出力し得る。
【００４８】
ビデオデコーダ３０は、このビットストリームを受信し、シンタックス要素に従ってビットストリームを復号し得る。ビデオデコーダ３０は、概して、ビデオエンコーダ２０に関して上記で説明した動作と相反する動作を行い得る。すなわち、ビデオデコーダ３０は、符号化ビデオデータの各ブロックをエントロピー復号し、逆量子化を行って、符号化ビデオデータのブロックを逆量子化（de-quantize）し、逆変換を適用して、符号化ビデオデータの逆量子化（de-quantized）ブロックを周波数領域から空間領域に変換し得る。符号化ビデオデータのこの変換ブロックは、残差データの再構成バージョンを表し得る。ビデオデコーダ３０は、この場合には残差データの再構成バージョンを指し得る、符号化ビデオデータの現在のブロックに関連するシンタックス要素から、この現在のブロックに関する動きベクトルが、動きベクトル予測プロセスを使用して導出されるべきであると判断し得る。
【００４９】
この現在のブロックに関する動きベクトルが、動きベクトル予測プロセスを使用して導出されるべきであると、ビデオデコーダ３０が判断すると仮定すると、次いで、ビデオデコーダ３０は、符号化ビデオデータの現在のブロックに関する動きベクトル予測子を導出するために、概して、ビデオエンコーダ２０に関して上記で説明した動作と同じ動作を行い得る。従って、ビデオデコーダ３０は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し得る。すなわち、ビデオデコーダ３０は、ビデオデータの現在のブロックの１つまたは複数の近傍ブロックを識別し得る。ビデオデコーダ３０は、１つまたは複数の空間的近傍ブロックと、１つまたは複数の時間的近傍ブロックとを識別し得る。また、現在のブロックに対するこれらの空間的および時間的近傍ブロックのロケーションが、図６に関して以下で詳細に示される。これらの近傍ブロックを識別した後、次いで、ビデオデコーダ３０は、これらの近傍ブロックの各々に関連する動きベクトルを特定し得、但し、これらの動きベクトルは、動きベクトル予測プロセスに関する候補動きベクトルを表し得る。
【００５０】
これらの動きベクトルを特定すると、ビデオデコーダ３０は、ビデオエンコーダ２０に関して上記で説明した場合では、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成し得る。次いで、ビデオデコーダ３０は、現在のブロックに関するＭＶＰとして、複数の候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルのうちの１つまたは複数の範囲を、指定範囲内になるように限定し得る。言い換えれば、ビデオデコーダ３０は、現在のブロックに関するＭＶＰとして、候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。現在のブロックに関するＭＶＰとして、候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルのうちの１つまたは複数を修正するとき、ビデオデコーダ３０は、スケーリングされた候補動きベクトルが指定範囲（「変位制限」と呼ばれることもある）に限定されることを保証するために、これらのスケーリングされた候補動きベクトルの各々を修正し得る。このようにして、ビデオデコーダ３０は、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。
【００５１】
ビデオデコーダ３０は、（ビットストリームにおいてビデオエンコーダ２０によって以前に指定された）ビデオデータの現在のブロックに関連する（動きベクトル予測子インデックス（「ｍｖｐ＿ｉｄｘ」）シンタックス要素などの）１つまたは複数のシンタックス要素に基づいて、候補動きベクトルのうちのどれを選択するべきかを判断し得る。ビデオデコーダ３０は、例えば、このｍｖｐ＿ｉｄｘシンタックス要素を使用して、候補動きベクトルのうちの１つを選択し得る。次いで、ビデオデコーダ３０は、ビデオデータの参照ブロックを識別するために、候補動きベクトルを使用して、ビデオデータの現在のブロックを再構成し、次いで、ビデオデータの参照ブロックを、ビデオデコーダ３０が残差データに追加して、ビデオデータの現在のブロックを再構成し得る。次いで、ビデオデコーダ３０は、ビデオデータのこの再構成ブロックを記憶する。
【００５２】
このようにして、本開示で説明する技法は、概して、ビデオコーダ（例えば、ビデオエンコーダ２０とビデオデコーダ３０のいずれかまたは両方）が、スケーリングされたそれらの候補動きベクトルを修正することを可能にし得る。すなわち、本技法は、そのようなビデオコーダが、候補動きベクトルのうちのスケーリングされていないものを修正すること、または場合によってなお一層検討することなしに、動きベクトル予測プロセスのそれらの候補動きベクトルのみがスケーリングされるように修正することを可能にし得る。この点において、本技法は、スケーリングされたそれらの候補動きベクトルのみが修正について検討されるように、候補動きベクトルのすべてを修正することと、候補動きベクトルのうちのいずれも修正しないこととの間の折衷案を提供し得る。
【００５３】
本開示の例に関して説明する動きベクトル成分変位を限定するための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および／またはビデオテレフォニーなどの適用例のために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００５４】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合でき、適切なＭＵＸ−ＤＥＭＵＸユニットまたは他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理できる。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５５】
ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を行い得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００５６】
図２は、動きベクトル予測子を指定するための技法を実施し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、マクロブロックあるいはマクロブロックのパーティションまたはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを行い得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。図２にはインターモード符号化のための構成要素が示されているが、ビデオエンコーダ２０はイントラモード符号化のための構成要素をさらに含み得ることを理解されたい。但し、簡潔および明快のために、そのような構成要素は示されていない。
【００５７】
図２に示すように、ビデオエンコーダ２０は、符号化されるビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、メモリ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成ビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。全般的にランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、フラッシュメモリまたは他の持続的もしくは非持続的なチップベースの記憶媒体を指し得るメモリ６４を含むものとして記述しているが、ハードドライブ、オプティカルドライブ、ディスクドライブなどを含む任意のタイプの非一時的コンピュータ可読媒体を利用してよい。
【００５８】
符号化プロセス中に、ビデオエンコーダ２０はコーディングされるビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対する受信したビデオブロックのインター予測コーディングを行う。また、イントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるブロックと同じフレームまたはスライス中の１つまたは複数の近傍ブロックに対する受信したビデオブロックのイントラ予測コーディングを行い得る。
【００５９】
図２の例にさらに示すように、ビデオエンコーダ２０はモード選択ユニット４０も含む。モード選択ユニット４０は、例えば、誤差結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。
【００６０】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（または、他のコード化ユニット）内のコーディングされている現在のブロックに対する予測参照フレーム（または、他のコード化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって特定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００６１】
動き推定ユニット４２は、ビデオブロックをメモリ６４中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算する。動き補償ユニット４４はまた、参照フレーム、例えば、ＩフレームまたはＰフレームのサブ整数ピクセルを補間し得る。新生ＨＥＶＣ規格（およびＩＴＵ  Ｈ．２６４規格）は、一般に「リスト」と呼ばれる１つまたは複数のリストデータ構造によって参照フレームを記憶する。従って、メモリ６４に記憶されたデータをリストと見なすこともできる。動き推定ユニット４２は、メモリ６４からの１つまたは複数の参照フレーム（またはリスト）のブロックを現在のフレーム、例えば、ＰフレームまたはＢフレームの符号化されるべきブロックと比較する。メモリ６４中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される（ＣＵを備え得る）参照フレームブロックは予測ブロックと呼ばれることがある。動き補償ユニット４４は参照フレームの予測ブロックの誤差値を計算する。
【００６２】
動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を行う１つまたは複数の構成要素を表す。変換ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換ユニット５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換などの他の変換を行い得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用できる。いずれの場合も、変換ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００６３】
量子化の後、エントロピー符号化ユニット５６が量子化変換係数をエントロピーコーディングする。例えば、エントロピー符号化ユニット５６は、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピーコーディング技法を行い得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後、符号化ビデオは、別のデバイスに送信されるか、あるいは後の送信または取出しのためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合、コンテキストは近傍マクロブロックに基づき得る。
【００６４】
場合によって、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を行うように構成され得る。例えば、エントロピー符号化ユニット５６はマクロブロックおよびパーティションのＣＢＰ値を判断するように構成され得る。また、場合によって、エントロピー符号化ユニット５６は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを行い得る。特に、エントロピー符号化ユニット５６は、マクロブロックまたはパーティション中の変換係数を走査するためにジグザグ走査または他の走査パターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット５６はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成し得る。
【００６５】
逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、例えば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、メモリ６４内の参照フレームストアのフレームのうちの１つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、メモリ６４の参照フレームストアに記憶するための再構成ビデオブロックを生成する。再構成ビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００６６】
上述のように、動き推定ユニット４２は、場合によって、動きベクトルを計算せず、代わりに、４つが空間的候補動きベクトル、１つが時間的候補動きベクトルである候補動きベクトル（例えば、いわゆる「候補リスト」）のリストを特定することがある。一般に、動き推定ユニット４２は、動き推定の計算の複雑さを低減し、それによってビデオデータの符号化速度を改善する一方で電力消費も減らすために、動きベクトルの計算を控える。
【００６７】
本開示で説明する技法によれば、動き推定ユニット４２は、動きベクトル予測プロセスを行うために、ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定し、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成し得る。上述のように、このスケーリングプロセスは、参照フレームに関するピクチャ順序カウントと現在のフレームに関するピクチャ順序カウントとの間の差に基づき得る。より詳細には、動き推定ユニット４２は、動きベクトル予測子が、異なる参照ピクチャまたはフレームをポイントする候補動きベクトルから導出されるとき、（ＨＥＶＣでは「ＤｉｓｔＳｃａｌｅＦａｃｔｏｒ」変数として表され得る）いわゆる距離スケール係数を判断し得る。
【００６８】
この動きベクトルスケーリングプロセスでは、動き推定ユニット４２は、次式（１）によって定義され得るＤｉｓｔＳｃａｌｅＦａｃｔｏｒを計算し得る。
【００６９】
DistScaleFactor = (POCcurr - POCref) / (POCmvp_blk - POCmvp_blk_ref) = tb / td. (1)
式（１）では、ＰＯＣはピクチャ順序カウントを指し、但し、ＰＯＣcurrは、現在のピクチャまたはフレームに関するピクチャ順序カウントを示し、ＰＯＣrefは、参照フレームまたはピクチャのピクチャ順序カウントを指し、ＰＯＣmvp_blkは、候補動きベクトルのうちの選択された１つ（または、言い換えれば、ＭＶＰ）を有する候補または近傍ブロックが存在するフレームまたはピクチャのピクチャ順序カウントを示し、ＰＯＣmvp_blk_refは、ＭＶＰがポイントする先の参照ブロックが存在するピクチャまたはフレームのピクチャ順序カウントを示す。式（１）における変数「ｔｄ」は、従って、ブロックＭＶＰ＿ＢＬＫとその参照ブロックとの間のピクチャ順序カウント差（または、言い換えれば、距離）を表すが、式（１）における変数「ｔｂ」は、現在のブロックとその参照ブロックとの間のＰＯＣ距離を表す。
【００７０】
動き推定ユニット４２は、次式（２）に従って、「ｔｘ」と示されるスケーリング係数をさらに計算し得る。
【００７１】
tx = (16384 + Abs(td/2))/td       (2)
次いで、動き推定ユニット４２は、次式（３）に従って、ＤｉｓｔＳｃａｌｅＦａｃｔｏｒを計算し得る。
【００７２】
DistScaleFactor = Clip3(-4096,4095,(tb * tx + 32) >> 6 )      (3)
従って、ＤｉｓｔａｎｃｅＳｃａｌｅＦａｃｔｏｒは、ｔｂおよびｔｘに応じて計算され得るが、−４０９６と４０９５の指定範囲内になるようにクリッピングされ得る。このＤｉｓｔＳｃａｌｅＦａｃｔｏｒを使用して、動き推定ユニット４２は、次式（４）に従って、候補動きベクトルのうちの１つまたは複数をスケーリングし得る。
【００７３】
ScaledMV = sign(DistScaleFactor×MV)×((abs(DistScaeFactor×MV) + 127)) >> 8)       (4)
式（４）では、ＳｃａｌｅｄＭＶは、スケーリングされた候補動きベクトルを示し、「ｓｉｇｎ」は、符号を保つ関数を指し、「ａｂｓ」は、値の絶対値を計算する関数を指し、「＞＞」は、ビット右シフト（bit-wise right shift）を示す。
【００７４】
上述のように、ＰＯＣ距離に基づくＳｃａｌｅｄＭＶは、ビデオ符号化プロファイルまたはレベルに従って定義され得る、指定範囲（「動きベクトル範囲」、または代替的に「範囲」と呼ばれることがある）を超え得る。結果として、動き推定ユニット４２は、本開示で説明する技法を行って、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。その上、動き推定ユニット４２は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、スケーリングされた候補動きベクトルを修正し得る。
【００７５】
動き推定ユニット４２は、いくつかの方法で、スケーリングされた候補動きベクトルを修正し得る。例えば、動き推定ユニット４２は、スケーリングされた候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き推定ユニット４２は、垂直動きベクトル値を最大／最小垂直動きベクトル成分範囲に有効に制限し得る。
【００７６】
別の例として、動き推定ユニット４２は、スケーリングされた候補動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。説明するために、垂直動きベクトル制限の指定範囲を超える、水平成分（ｍｖ＿ｘ）と垂直成分（ｍｖ＿ｙ）とを有する所与のスケーリングされた動きベクトルについて、動き推定ユニット４２は、ｙ成分を、垂直ＭＶ制限に対応するｍｖ＿ｙ’に制限し得る。動き推定ユニット４２はまた、次式（５）に従って、水平成分ｍｖ＿ｘをスケーリングし得る。
【００７７】
mv_x’ = mv_x * mv_y’ / mv_y      (5)
式（５）では、ｍｖ＿ｘ’は、スケーリングされた候補動きベクトルのスケーリングされた水平成分を示す。動き推定ユニット４２は、修正された水平成分ｍｖ＿ｘ’と修正された垂直成分ｍｖ＿ｙ’の両方を潜在的に有する、修正された、スケーリングされた動きベクトルを出すために、除算演算の近似値を使用して、様々な精度レベルで、式（５）として表現されたこのスケーリング演算を行い得る。
【００７８】
スケーリングされた動きベクトルのうちの１つまたは複数を修正するためのいくつかの異なる方法に関して上記で説明したが、本技法は、動きベクトル予測プロセスを行うとき、候補動きベクトルを修正するための任意の数の方法において行われ得る。例えば、動き推定ユニット４２は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択するより前に、スケーリングされた候補動きベクトルをクリッピングし得る。
【００７９】
また別の例として、動き推定ユニット４２は、スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングし、スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングし得る。これらの場合には、クリッピング演算は、次式（６）に従い得る。
【００８０】
mvLXA = Clip3(-32768, 32767, Sign2(distScaleFactor * mvLXA) *               
((Abs(distScaleFactor * mvLXA) + 127) >> 8))     (6)
式（６）では、クリッピング式は、式（４）として上記で示したスケーリング式を含み、スケーリングされた動きベクトルの水平成分および垂直成分の一方または両方を、−３２７６８〜３２７６７の指定範囲にクリッピングする。スケーリングされた動きベクトルは、式（６）では「ｍｖＬＸＡ」として示される。言い換えれば、指定範囲は、１／４ピクセル単位で［−３２７６８，３２７６７］として指定され得、但し、この指定範囲は、場合によって、ビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされ(fixed and hard-coded)得る。
【００８１】
場合によって、指定範囲は、上述のように、垂直変位制限を含む動きベクトル変位制限を指定し得、但し、動き推定ユニット４２は、スケーリングされた候補動きベクトルの垂直成分が垂直変位制限内であるように、スケーリングされた候補動きベクトルの垂直成分をクリッピングし得る。
【００８２】
場合によって、水平成分と垂直成分の両方をクリッピングするのではなく、動き推定ユニット４２は、スケーリングされた候補動きベクトルの水平成分のみをクリッピングし得る。この場合も、指定範囲は、水平変位制限を含む動きベクトル変位制限を指定し得、動き推定ユニット４２は、スケーリングされた候補動きベクトルの水平成分が水平変位制限内であるように、スケーリングされた候補動きベクトルの水平成分をクリッピングし得る。上述のように、動き推定ユニット４２は、水平成分または垂直成分の一方をクリッピングし、次いで、スケーリングされた候補動きベクトルが１つまたは複数の動きベクトル変位制限によって画定されるように、（垂直成分であってもよく、上記の例に限定されるべきではない）他方のクリッピングされていない成分をスケーリングし得る。従って、本技法は、上記で説明した例示的な修正のいずれか１つに限定されるべきではない。
【００８３】
動きベクトル予測子として、候補動きベクトルのうちの１つを選択するために、次いで、動き補償ユニット４４は、リストに含まれる候補動きベクトルごとに（この場合も、予測ブロックと呼ばれることがある）参照フレームブロックを識別し得る。次いで動き補償ユニット４４は、候補動きベクトルごとに特定された予測ブロックに基づいて、予測データを計算できる。次いでビデオエンコーダ２０は、候補動きベクトルの対応する１つについて計算された予測データごとに残差データを特定し、残差データを変換し、トランスコードされた残差データを量子化し、次いで上記で説明した方法で量子化残差データをエントロピー符号化できる。次いでビデオエンコーダ２０は逆演算を行って、プルーニング後に残存する候補動きベクトルの各々に関して生成されたこのエントロピー符号化残差データを復号して、再構成ビデオブロックの形態で参照データを再生できる。モード選択ユニット４０は、候補動きベクトルの各々に関して生成された再構成ビデオブロックの各々を分析して、候補動きベクトルのうちの１つを選択できる。モード選択ユニット４０は、一般にレートひずみ最適化と呼ばれ、通常「ＲＤＯ」と略されるプロセスを通じて最良のレート対ひずみ比をもたらす候補動きベクトルのうちの１つを選択できる。
【００８４】
ＲＤＯは一般に、あるレート（一般に、圧縮されたフレーム、スライスまたはブロックを含む圧縮されたビデオデータが送られる場合のビットレートを指す）を達成するために圧縮された再構成されたフレーム、スライスまたはブロックを、元のフレーム、スライスまたはブロックと比較し、元のフレーム、スライスまたはブロックと所与のレートによる再構成されたフレーム、スライスまたはブロックとの間のひずみの程度を判断することを伴う。モード選択ユニット４０は、所与のレートを達成するか、達成することを試みる複数の異なるメトリクスを使用して同じビデオデータを符号化し、これらの様々なメトリクスに関してひずみ最適化プロセスを行い得る。この場合、モード選択ユニット４０は、各再構成ビデオブロックのＲＤ出力を比較し、目標レートにおいてひずみが最も小さいものを選択できる。
【００８５】
次いでモード選択ユニット４０は、この選択を動き推定ユニット４２に示すことができ、続いて動き推定ユニット４２は、エントロピー符号化ユニット５６とインターフェースして、この選択をエントロピー符号化ユニット５６に知らせる。一般に、動き推定ユニット４２は、エントロピー符号化ユニット５６とインターフェースして、被選択候補動きベクトルを識別するインデックスとともに動きベクトル予測が行われたことを示す。上述のように、動き推定ユニット４２は、候補動きベクトルを規定された方法で、例えば、最高振幅から最低振幅へ、もしくは最低振幅から最高振幅へ、または任意の他の規定された方法で配置できる。代替的に、動き推定ユニット４２はエントロピー符号化ユニット５６に対し、この候補リスト内で候補動きベクトルがどのように配置されたかをシグナリングしてもよい。次いでエントロピー符号化ユニット５６は、動きデータを符号化するように動きベクトル予測プロセスが行われたことを示すのに必要であり得る任意の他の情報とともに、このインデックスを符号化できる。エントロピー符号化ユニット５６は、ビットストリームにおいて（「ｍｖｐ＿ｉｄｘ」と示され得る）シンタックス要素として符号化インデックスを出力することができ、これは図１に関連して上述した方法で記憶または送信され得る。このようにして、ビデオエンコーダ２０は、ビデオデータの現在のブロックに関する動きベクトル予測子として、複数の候補動きベクトルのうちの１つを選択し、動きベクトル予測子に基づいて、ビデオデータの現在のブロックをコーディングし得る。
【００８６】
場合によって、エントロピー符号化ユニット５６は、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）と呼ばれる形式のエントロピーコーディングを行う。ＣＡＢＡＣを行うことにおいて、エントロピー符号化ユニット５６は、（対応するコンテキストに関連するビデオデータをより効率的に圧縮するために様々なコンテキストについて指定された様々なコードテーブルである）複数のいわゆるコンテキストのうちの１つを選択することができ、選択されたコンテキストについて定義されたコードテーブルに従って、圧縮された残差データを符号化する。エントロピー符号化ユニット５６は、コンテキスト情報に基づいてコンテキストのうちの１つを選択することができ、このコンテキスト情報は、動きベクトル予測を行うときに特定される参照インデックスと、一意の動きベクトル候補の数と、動きベクトル予測を行うときに特定される予測方向とを含み得る。
【００８７】
図３は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、メモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、図１および図２の例に示すビデオエンコーダ２０のようなビデオエンコーダに関して説明した符号化パスとは概して逆の復号パスを行い得る。概して逆であるが、ビデオデコーダ３０は、場合によって、ビデオエンコーダ２０によって行われる技法と同様の技法を行うことがある。言い換えれば、ビデオデコーダ３０は、ビデオエンコーダ２０によって行われるプロセスと実質的に同様のプロセスを行ない得る。さらに、上記のように、ビデオエンコーダ２０は、ビデオ符号化を行うプロセスにおいてビデオ復号を行い得る。説明すると、ビデオエンコーダ２０の逆量子化ユニット５８、逆変換ユニット６０、および加算器６２は、ビデオデコーダ３０の逆量子化ユニット７６、逆変換ユニット７８、および加算器８０と実質的に同様の動作を行い得る。
【００８８】
図３の例に示すように、エントロピー復号ユニット７０は符号化ビットストリームを受信し、符号化ビットストリームは説明のために、被選択候補動きベクトル（この場合も、これらの候補動きベクトルは候補動きベクトルまたは候補動きベクトル予測子（「候補ＭＶＰ」）と呼ばれることがある）を識別する単項コード化インデックスまたは短縮単項コード化インデックスを含むと仮定される。エントロピー復号ユニット７０は、ビデオエンコーダ２０のエントロピー符号化ユニット５６と概して逆のプロセスを行うことにおいて、現在のＰＵに関する動きベクトルを特定するように動きベクトル予測プロセスが行われたことを示す、現在のＰＵに関するシンタックス要素または他のコーディングデータを受信できる。このシンタックス要素または他のコーディングデータに応答して、エントロピー復号ユニット７０は、ビットストリームから動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）をパースし、この動きベクトル予測子インデックスを動き補償ユニット７２に与える。エントロピー復号ユニット７０はまた、この動きベクトル予測子インデックスが関連付けられるビデオデータの符号化ブロックを復号し、このビデオデータの符号化ブロックを逆量子化ユニット７６に与える。
【００８９】
動き補償ユニット７２は、現在のＰＵに隣接するＰＵに関する空間的候補動きベクトルと参照フレーム内のコロケートＰＵに関する時間的候補動きベクトルとを取り出す。エントロピー復号ユニット７０はまた、動き補償ユニット７２に対し、（一般に、ビットストリームにおいて別のシンタックス要素として）現在のＰＵに関して識別される参照フレームを提供できる。代替的に、動き補償ユニット７２は、ＡＭＶＰまたはマージモードのいずれかに関して、所定の方法で（例えば、現在のＰＵが位置する現在のフレームから１つ、２つまたは任意の他の数だけ後退または前進して、など）識別される参照フレームから時間的候補動きベクトルを取り出すように構成され得る。
【００９０】
次いで、動き補償ユニット７２は、４つの空間的候補動きベクトルと時間的候補動きベクトルとを含む、候補リストを構成し得る。この候補リストの生成において、動き補償ユニット７２は、ビデオデータの現在のブロックに関して特定された複数の候補動きベクトルのうちの１つまたは複数をスケーリングして、１つまたは複数のスケーリングされた候補動きベクトルを生成し得る。上述のように、このスケーリングプロセスは、参照フレームに関するピクチャ順序カウントと現在のフレームに関するピクチャ順序カウントとの間の差に基づき得る。その上、ＰＯＣ距離に基づく、スケーリングされた動きベクトルは、ビデオ符号化プロファイルまたはレベルに従って定義され得る、指定範囲（「動きベクトル範囲」と呼ばれることがある）を超え得る。結果として、動き補償ユニット７２は、本開示で説明する技法を行って、スケーリングされた候補動きベクトルを、指定範囲内になるように修正し得る。その上、動き補償ユニット７２は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、スケーリングされた候補動きベクトルを修正し得る。
【００９１】
動き補償ユニット７２は、図１、図２の例において示すビデオエンコーダ２０の動き推定ユニット４２に関して上記で説明した任意の数の方法において、スケーリングされた候補動きベクトルを修正し得る。例えば、動き補償ユニット７２は、スケーリングされた候補動きベクトルの垂直成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き補償ユニット７２は、垂直動きベクトル値を最大／最小垂直動きベクトル成分範囲に有効に制限し得る。動き補償ユニット７２はまた、スケーリングされた候補動きベクトルの水平成分を、動きベクトル範囲の境界内にとどまるようにクリッピングし得る。言い換えれば、動き補償ユニット７２は、水平動きベクトル値を最大／最小水平動きベクトル成分範囲に有効に制限し得る。
【００９２】
別の例として、動き補償ユニット７２は、スケーリングされた候補動きベクトルを、動きベクトル範囲の境界内にとどまるようにスケーリングし得る。説明するために、垂直動きベクトル制限の指定範囲を超える、水平成分（ｍｖ＿ｘ）と垂直成分（ｍｖ＿ｙ）とを有する所与のスケーリングされた動きベクトルについて、動き補償ユニット７２は、ｙ成分を、垂直ＭＶ制限に対応するｍｖ＿ｙ’に制限し得る。
【００９３】
いずれの場合も、この候補リストを作成した後、次いで、動き補償ユニット７２は、動きベクトル予測子インデックスによって識別された、候補リストからの候補動きベクトルのうちの１つを選択する。インターコード化ブロックの場合、動き補償ユニット７２は、識別された動きベクトルに基づいて、インター予測データを生成できる。動き補償ユニット７２は、この動きベクトルを使用して、メモリ８２に記憶された参照フレーム中の予測ブロックを識別し得る。イントラコード化ブロックの場合、イントラ予測ユニット７４は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット７６は、ビットストリーム中で供給され、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、例えば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を判断し、同様に、適用すべき逆量子化の程度を判断するための、各マクロブロックについて加算器５０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００９４】
逆変換ユニット６０は、逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット７２は動き補償ブロックを生成し、場合によって、補間フィルタに基づいて補間を行う。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９５】
動き補償ユニット７２は、シンタックス情報のいくつかを使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるＣＵのサイズと、符号化ビデオシーケンスのフレームの各ＣＵがどのように区分されるのかを記述するパーティション情報と、各ＣＵがどのように符号化されるのかを示すモードと、各インター符号化ＣＵのための１つまたは複数の参照フレーム（またはリスト）と、符号化ビデオシーケンスを復号するための他の情報とを判断する。
【００９６】
加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、ＨＥＶＣ規格において復号ピクチャバッファと呼ばれることがあるメモリ８２内の参照フレームストアに記憶され、参照フレームストアは、参照ブロックをその後の動き補償に供給し、また、ディスプレイデバイス（図１のディスプレイデバイス３２など）上での提示のために復号ビデオを生成する。
【００９７】
場合によって、一例として、時間的候補動きベクトルを指定するスライスが消失したとき、すなわち、符号化ビットストリームにおいて回復または受信されないときのように、時間的候補動きベクトルは利用できないことがある。この時間的候補動きベクトルが利用不可能であるとき、動き補償ユニット７２は、この時間的候補動きベクトルをデフォルト値にセットするか、あるいはこの時間的候補動きベクトルに関するデフォルト動きベクトル情報を特定できる。場合によって、時間的候補動きベクトルに関するこのデフォルト動きベクトル情報は、参照フレームがイントラコーディングされたかどうかに応じて再構成され得る。参照フレームがイントラコーディングされていると判断されたとき、動き補償ユニット７２は、現在のフレームに現在の部分があるように、参照フレームの同じロケーションにコロケートされる参照フレームの部分に関して特定された空間的動きベクトルに基づいて、デフォルト候補動きベクトルに関するデフォルト動きベクトル情報を導出できる。同様に、時間的に予測される空間的候補動きベクトルのうちの１つまたは複数は、利用不可能であるか消失していることがあり、現在のフレームに現在の部分があるように、参照フレームの同じロケーションにコロケートされる参照フレームの部分に関して特定された空間的動きベクトルに基づいて、デフォルト候補動きベクトルに関するデフォルト動きベクトル情報を導出できる。
【００９８】
上述のように、マージモードとＡＭＶＰという、２つのタイプの動きベクトル予測がある。マージモードの場合、動き補償ユニット７２は、デフォルト動き情報を特定するときに、動きベクトル振幅と、予測方向と、参照インデックスとを特定する。ＡＭＶＰの場合、動き補償ユニット７２は、動きベクトル振幅を特定するが、予測方向と参照インデックスとを特定する必要はなく、その理由は、これらが現在のＰＵに関してビットストリームにおいて別個にシグナリングされることにある。従って、動き補償ユニット７２は、デフォルト動き情報の特定を、動きベクトル予測を行うためにシグナリングされたモード、すなわち現在のＰＵに関して、シグナリングされた動きベクトル予測のタイプがマージモードであるか、それともＡＭＶＰであるかに依拠し得る。
【００９９】
図４は、本開示で説明する動きベクトル予測技法の態様を行う際の、図２の例に示すビデオエンコーダ２０、および／または図３の例に示すビデオデコーダ３０などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ２０を最初に参照すると、動き推定ユニット４２は、上記のように、現在のＣＵに対応する現在のＰＵに関する空間的候補動きベクトルを特定できる（９０）。動き推定ユニット４２は、次に、この場合も上記のように、参照フレーム内のコロケートＰＵからの、現在のＰＵに関する時間的候補動きベクトルを特定できる（９２）。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット４２は、上記で説明した方法で、候補動きベクトルのうちの１つまたは複数をスケーリングできる（９４）。加えて、動き推定ユニット４２は、上記で説明したように、スケーリングされた動きベクトルのうちの１つまたは複数を修正できる（９５）。
【０１００】
１つまたは複数のスケーリングされた動きベクトルを修正した後、動き推定ユニット４２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（９６、９８）。この選択は、上述のように、ビデオエンコーダ２０がＲＤＯ解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された１つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。エントロピー符号化ユニット５６は、候補動きベクトルのうちの選択された１つを、ビットストリームにおける動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された１つを識別することを可能にし得る。
【０１０１】
ビデオデコーダ３０に関して、動き補償ユニット７２は、動き推定ユニット４２に関して上記で説明した動作と同様の動作を行い得る。すなわち、動き補償ユニット７２は、上記のように、現在のＣＵに対応する現在のＰＵに関する空間的候補動きベクトルを特定できる（９０）。動き補償ユニット７２は、次に、この場合も上記のように、参照フレーム内のコロケートＰＵからの、現在のＰＵに関する時間的候補動きベクトルを特定できる（９２）。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き補償ユニット７２は、上記で説明した方法で、候補動きベクトルのうちの１つまたは複数をスケーリングできる（９４）。加えて、動き補償ユニット７２は、上記で説明したように、スケーリングされた動きベクトルのうちの１つまたは複数を、指定範囲内になるように修正できる（９５）。
【０１０２】
１つまたは複数のスケーリングされた動きベクトルを修正した後、動き補償ユニット７２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（９６、９８）。エントロピー復号ユニット７０は、ビットストリームから動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）をパースし、この動きベクトル予測子インデックスを、現在のＰＵに関するＭＶＰとして候補動きベクトルのうちの１つを選択する際に使用するために、動き補償ユニット７２に与えることができる。
【０１０３】
図５は、本開示で説明する動きベクトル予測技法の他の態様を行う際の、図２の例に示すビデオエンコーダ２０および／または図３の例に示すビデオデコーダ３０などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ２０を最初に参照すると、動き推定ユニット４２は、上記のように、現在のＣＵに対応する現在のＰＵに関する空間的候補動きベクトルを特定できる（１００）。動き推定ユニット４２は、次に、この場合も上記のように、参照フレーム内のコロケートＰＵからの、現在のＰＵに関する時間的候補動きベクトルを特定できる（１０２）。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット４２は、上記で説明した方法で、候補動きベクトルのうちの１つまたは複数をスケーリングできる（１０４）。
【０１０４】
次に、動き推定ユニット４２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（１０６、１０８）。この選択は、上述のように、ビデオエンコーダ２０がＲＤＯ解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された１つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。このＲＤＯ解析を行うより前に、動き推定ユニット４２は、最初に、候補動きベクトルのうちの選択された１つがスケーリングされたかどうかを判断できる（１０９）。スケーリングされていない場合（「いいえ」１０９）、動き推定ユニット４２は、候補動きベクトルのうちの現在の１つを検討する際に、いかなる追加の動作も行わなくてよい。但し、スケーリングされた場合（「はい」１０９）、動き推定ユニット４２は、候補動きベクトルのうちの選択された１つを、上記で説明した方法で、指定範囲内になるように修正できる（１１０）。上述のように、エントロピー符号化ユニット５６は、候補動きベクトルのうちの選択された１つを、ビットストリームにおける動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された１つを識別することを可能にし得る。
【０１０５】
ビデオデコーダ３０に関して、動き補償ユニット７２は、上記のように、現在のＣＵに対応する現在のＰＵに関する空間的候補動きベクトルを特定できる（１００）。動き補償ユニット７２は、次に、この場合も上記のように、参照フレーム内のコロケートＰＵからの、現在のＰＵに関する時間的候補動きベクトルを特定できる（１０２）。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き補償ユニット７２は、上記で説明した方法で、候補動きベクトルのうちの１つまたは複数をスケーリングできる（１０４）。
【０１０６】
次に、動き補償ユニット７２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（１０６、１０８）。候補動きベクトルのうちの１つを選択するために、エントロピー復号ユニット７０は、ビットストリームから動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）をパースし、この動きベクトル予測子インデックスを、現在のＰＵに関するＭＶＰとして候補動きベクトルのうちの１つを選択する際に使用するために、動き補償ユニット７２に与えることができる。次いで、動き補償ユニット７２は、候補動きベクトルのうちの選択された１つがスケーリングされたかどうかを判断できる（１０９）。スケーリングされていない場合（「いいえ」１０９）、動き補償ユニット７２は、候補動きベクトルのうちの現在の１つを検討する際に、いかなる追加の動作も行わなくてよい。但し、スケーリングされた場合（「はい」１０９）、動き補償ユニット７２は、候補動きベクトルのうちの選択された１つを、上記で説明した方法で修正できる（１１０）。
【０１０７】
図６は、そこから動きベクトル予測子候補が動きベクトル予測モードに関して生成される、空間的近傍ブロックと時間的近傍ブロックとを示す概念図である。現在のＨＥＶＣテストモデル（ＨＭ）では、２つの動きベクトル予測モード、すなわち、マージモードと、適応型動きベクトル予測（ＡＭＶＰ）モードとがサポートされている。いずれのモードにおいても、ビデオエンコーダ２０およびビデオデコーダ３０の各々は、現在のビデオブロックまたはＰＵ１１２に関する動きベクトルをそこから特定するべき、同じ動きベクトル予測子候補リストを生成する。マージモードおよびＡＭＶＰモードにおける動きベクトル予測子候補は、例えば、図６に示す近傍ブロックＡ、Ｂ、Ｃ、ＤおよびＥなど、現在のＰＵ１１２の空間的近傍ブロックに関する動きベクトルを含み得る。動きベクトル予測子候補はまた、例えば、図４に示す近傍ブロックＴ1およびＴ2など、現在のＰＵ１１２のコロケートブロック１１４の時間的近傍ブロックに関する動きベクトルを含み得る。場合によって、動きベクトル予測子候補は、近傍ブロックのうちの２つ以上に関する動きベクトルの組合せ、例えば、２つ以上の動きベクトルの平均値、中央値、または重み付き平均値を含み得る。
【０１０８】
ＡＭＶＰモードの場合、動きベクトル予測子候補リストは、空間的近傍ブロックまたは時間的近傍ブロックに関する動きベクトルを含むように生成され得る。次いで、ビデオエンコーダ２０は、候補リストから、現在のＰＵ１１２に関する最も正確な動きベクトル予測子候補を選択する。一例では、ビデオエンコーダ２０は、現在のＰＵ１１２に関する動きベクトル予測子として、近傍ブロックのうちの１つの動きベクトルから生成された動きベクトル予測子候補を選択し得る。別の例では、ビデオエンコーダ２０は、現在のＰＵ１１２に関する動きベクトル予測子として、近傍ブロックのうちの２つ以上の動きベクトルから生成された動きベクトル予測子候補を選択し得る。この場合、動きベクトル予測子は、２つ以上の動きベクトルの平均値、中央値、または重み付き平均値として計算され得る。次いで、ビデオエンコーダ２０は、動きベクトル予測子と、現在のＰＵ１１２に関する動きベクトルとの間の動きベクトル差分を判断する。次いで、ビデオエンコーダ２０は、動きベクトル差分と、現在のＰＵ１１２に関する動きベクトル予測子インデックスとをビデオデコーダ３０にシグナリングする。
【０１０９】
ビデオデコーダ３０は、ビデオブロックに関する動きベクトル差分と動きベクトル予測子インデックスとを含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方法で動きベクトル予測子候補リストを生成する。ビデオデコーダ３０は、シグナリングされた現在のＰＵ１１２に関する動きベクトル予測子インデックスを候補リストに適用することによって、現在のＰＵ１１２に関する動きベクトル予測子を選択する。次いで、ビデオデコーダ３０は、シグナリングされた動きベクトル差分を選択された動きベクトル予測子と組み合わせて、現在のＰＵ１１２に関する動きベクトルを再構成する。ビデオデコーダ３０は、現在のＰＵ１１２に関する動きベクトルを使用して、参照ピクチャ中の予測ブロックの位置を特定し、符号化ビデオブロックを再構成する。
【０１１０】
マージモードの場合、動きベクトル予測子候補リストは、空間的近傍ブロックまたは時間的近傍ブロックの各々に関して、動きベクトルと、参照ピクチャインデックスと、予測方向とを含むすべての動き情報を含むように生成され得る。次いで、ビデオエンコーダ２０は、候補リスト中の近傍ブロックから、現在のＰＵ１１２に関する最も正確な動き情報を選択する。現在のＰＵ１１２に関する動きベクトル差分と、参照ピクチャインデックスと、予測方向とをビデオデコーダ３０にシグナリングする代わりに、ビデオエンコーダ２０は、近傍ブロックに関して選択された動き情報を現在のＰＵ１１２に関する最終動き情報として直接使用する。このようにして、ビデオエンコーダ２０は、現在のＰＵ１１２に関してすべての動き情報がそこから導出されるべきである隣接ブロックを示すためのインデックスのみを、ビデオデコーダ３０にシグナリングする。
【０１１１】
ビデオデコーダ３０は、ビデオブロックに関するインデックス値を含む符号化ビデオブロックを表すビットストリームを受信する。ビデオブロックを復号するために、ビデオデコーダ３０は、ビデオエンコーダ２０と同じ方法で動きベクトル予測子候補リストを生成する。ビデオデコーダ３０は、近傍ブロックの動き情報を選択するために、シグナリングされたインデックスを候補リストに適用することによって、現在のＰＵ１１２に関する動きベクトルと、参照ピクチャインデックスと、予測方向とを含むすべての動き情報を判断する。次いで、ビデオデコーダ３０は、現在のＰＵ１１２に関する動きベクトルを使用して、予測ブロックの位置を特定し、符号化ビデオブロックを再構成する。
【０１１２】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。データ記憶媒体は、本開示で説明した技法を実施するための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。同様に、いかなる接続も適切にコンピュータ可読媒体と称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１１３】
符号は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）など１つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価な集積もしくは個別論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実施に好適な任意の他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供され得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素において十分に実施され得る。
【０１１４】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットは、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明したように１つまたは複数のプロセッサを含む、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって実現され得る。
【０１１５】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲の範疇にある。
【図１】
2018050308.tif 000003
【図２】
2018050308.tif 000004
【図３】
2018050308.tif 000005
【図４】
2018050308.tif 000006
【図５】
2018050308.tif 000007
【図６】
2018050308.tif 000008
【手続補正書】
【提出日】平成29年11月21日(2017.11.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングする方法であって、
動きベクトル予測プロセスを行うために、現在のブロックに対する空間的近傍ブロックと時間的コロケートブロックとに関して特定された動きベクトルに基づいて前記ビデオデータの現在のピクチャ中の前記現在のブロックに関する複数の候補動きベクトルを特定することと、
前記現在のピクチャに関連付けられたピクチャ順序カウント値に基づいて、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記１つまたは複数のスケーリングされた候補動きベクトルを指定範囲内になるようにクリッピングすることと、前記指定範囲は、１／４ピクセル単位であり、前記複数の候補動きベクトルは、前記クリッピングされた、スケーリングされた候補動きベクトルを含む、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングした後、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を備える方法。
【請求項２】
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることは、スケーリングされていない他の候補動きベクトルのいずれかをクリッピングすることなしに、前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることを備える、請求項１に記載の方法。
【請求項３】
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、請求項１に記載の方法。
【請求項４】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項１に記載の方法。
【請求項５】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項１に記載の方法。
【請求項６】
前記１つまたは複数のスケーリングされた動きベクトルをクリッピングすることは、
前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、
前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を含む、請求項１に記載の方法。
【請求項７】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることは、前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることをさらに備える、請求項１に記載の方法。
【請求項８】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることは、前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記水平成分をクリッピングすることをさらに備える、請求項１に記載の方法。
【請求項９】
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることは、前記１つまたは複数のスケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように、前記１つまたは複数のスケーリングされた候補動きベクトルをスケーリングすることを備える、請求項１に記載の方法。
【請求項１０】
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１１】
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを備える、請求項１に記載の方法。
【請求項１２】
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１３】
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、請求項１に記載の方法。
【請求項１４】
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記ビデオデータの現在のブロックを記憶するように構成されたメモリと、
動きベクトル予測プロセスを行うために、前記現在のブロックに対する空間的近傍ブロックと時間的コロケートブロックとに関して特定された動きベクトルに基づいて前記ビデオデータの現在のピクチャ中の前記現在のブロックに関する複数の候補動きベクトルを特定することと、
前記現在のピクチャに関連付けられたピクチャ順序カウント値に基づいて、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記１つまたは複数のスケーリングされた候補動きベクトルを指定範囲内になるようにクリッピングすることと、前記指定範囲は、１／４ピクセル単位であり、前記複数の候補動きベクトルは、前記クリッピングされた、スケーリングされた候補動きベクトルを含む、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングした後、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行うように構成されたプロセッサと
を備えるビデオコーディングデバイス。
【請求項１５】
スケーリングされていない他の候補動きベクトルのいずれかをクリッピングすることなしに、前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることを行うように、前記プロセッサが構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項１６】
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、請求項１４に記載のビデオコーディングデバイス。
【請求項１７】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項１４に記載のビデオコーディングデバイス。
【請求項１８】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項１４に記載のビデオコーディングデバイス。
【請求項１９】
前記プロセッサは、
前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングすることとを行うように構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２０】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記プロセッサは、前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行うようにさらに構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２１】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記プロセッサは、前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行うように構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２２】
前記プロセッサは、前記１つまたは複数のスケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように前記１つまたは複数のスケーリングされた候補動きベクトルをスケーリングすることを行うように構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２３】
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを行うようにさらに構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２４】
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを行うようにさらに構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２５】
前記プロセッサは、
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２６】
前記プロセッサは、
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、請求項１４に記載のビデオコーディングデバイス。
【請求項２７】
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
動きベクトル予測プロセスを行うために、現在のブロックに対する空間的近傍ブロックと時間的コロケートブロックとに関して特定された動きベクトルに基づいて前記ビデオデータの現在のピクチャ中の前記現在のブロックに関する複数の候補動きベクトルを特定するための手段と、
前記現在のピクチャに関連付けられたピクチャ順序カウント値に基づいて、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成するための手段と、
前記１つまたは複数のスケーリングされた候補動きベクトルを指定範囲内になるようにクリッピングするための手段と、前記指定範囲は、１／４ピクセル単位であり、前記複数の候補動きベクトルは、前記クリッピングされた、スケーリングされた候補動きベクトルを含む、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングした後、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択するための手段と、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングするための手段と
を備えるビデオコーディングデバイス。
【請求項２８】
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングするための前記手段は、スケーリングされていない他の候補動きベクトルのいずれかをクリッピングすることなしに前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングするための手段を備える、請求項２７に記載のビデオコーディングデバイス。
【請求項２９】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項２７に記載のビデオコーディングデバイス。
【請求項３０】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項２７に記載のビデオコーディングデバイス。
【請求項３１】
前記１つまたは複数のスケーリングされた動きベクトルをクリッピングするための前記手段は、
前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングするための手段と、
前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングするための手段と
を含む、請求項２７に記載のビデオコーディングデバイス。
【請求項３２】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングするための前記手段は、前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように前記１つまたは複数のスケーリングされた候補動きベクトルの前記垂直成分をクリッピングするための手段をさらに備える、請求項２７に記載のビデオコーディングデバイス。
【請求項３３】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングするための前記手段は、前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように前記１つまたは複数のスケーリングされた候補動きベクトルの前記水平成分をクリッピングするための手段をさらに備える、請求項２７に記載のビデオコーディングデバイス。
【請求項３４】
実行されたとき、１つまたは複数のプロセッサに、
動きベクトル予測プロセスを行うために、現在のブロックに対する空間的近傍ブロックと時間的コロケートブロックとに関して特定された動きベクトルに基づいて前記ビデオデータの現在のピクチャ中の前記現在のブロックに関する複数の候補動きベクトルを特定することと、
前記現在のピクチャに関連付けられたピクチャ順序カウント値に基づいて、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記１つまたは複数のスケーリングされた候補動きベクトルを指定範囲内になるようにクリッピングすることと、前記指定範囲は、１／４ピクセル単位であり、前記複数の候補動きベクトルは、前記クリッピングされた、スケーリングされた候補動きベクトルを含む、
前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングした後、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【請求項３５】
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記１つまたは複数のスケーリングされた候補動きベクトルをクリッピングすることを行わせる、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【請求項３６】
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【請求項３７】
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【請求項３８】
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、
前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようにクリッピングすることと、
前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を行わせる、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【請求項３９】
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記１つまたは複数のスケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行わせる、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【請求項４０】
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記１つまたは複数のスケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記１つまたは複数のスケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記１つまたは複数のスケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行わせる、請求項３４に記載の非一時的コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
DistScaleFactor = Clip3(-4096,4095,(tb * tx + 32) >> 6 )      (3)
従って、ＤｉｓｔＳｃａｌｅＦａｃｔｏｒは、ｔｂおよびｔｘに応じて計算され得るが、−４０９６と４０９５の指定範囲内になるようにクリッピングされ得る。このＤｉｓｔＳｃａｌｅＦａｃｔｏｒを使用して、動き推定ユニット４２は、次式（４）に従って、候補動きベクトルのうちの１つまたは複数をスケーリングし得る。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
逆変換ユニット７８は、逆変換、例えば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット７２は動き補償ブロックを生成し、場合によって、補間フィルタに基づいて補間を行う。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
図４は、本開示で説明する動きベクトル予測技法の態様を行う際の、図２の例に示すビデオエンコーダ２０、および／または図３の例に示すビデオデコーダ３０などのビデオコーダの例示的な動作を示すフローチャートである。初めに、ビデオエンコーダ２０を最初に参照すると、動き推定ユニット４２は、上記のように、現在のＣＵに対応する現在のＰＵに関する空間的候補動きベクトルを特定できる（９０）。動き推定ユニット４２は、次に、この場合も上記のように、参照フレーム内のコロケートＰＵからの、現在のＰＵに関する時間的候補動きベクトルを特定できる（９２）。空間的候補動きベクトルと時間的候補動きベクトルのいずれかまたは両方を特定する際に、動き推定ユニット４２は、上記で説明した方法で、候補動きベクトルのうちの１つまたは複数をスケーリングできる（９４）。加えて、動き推定ユニット４２は、上記で説明したように、スケーリングされた候補動きベクトルのうちの１つまたは複数を修正できる（９５）。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
１つまたは複数のスケーリングされた候補動きベクトルを修正した後、動き推定ユニット４２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（９６、９８）。この選択は、上述のように、ビデオエンコーダ２０がＲＤＯ解析を行うことを伴うことがあり、そこで、次いで、候補動きベクトルのうちの選択された１つが、上記で説明した方法でビデオデータのブロックをコーディングするために使用される。エントロピー符号化ユニット５６は、候補動きベクトルのうちの選択された１つを、ビットストリームにおける動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）として指定し、それによって、ビデオデコーダが候補動きベクトルのうちの選択された１つを識別することを可能にし得る。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
１つまたは複数のスケーリングされた候補動きベクトルを修正した後、動き補償ユニット７２は、空間的および時間的候補動きベクトルの候補リストを作成し、現在のＰＵに関するＭＶＰとして、候補動きベクトルのうちの１つを選択できる（９６、９８）。エントロピー復号ユニット７０は、ビットストリームから動きベクトル予測子インデックス（ｍｖｐ＿ｉｄｘ）をパースし、この動きベクトル予測子インデックスを、現在のＰＵに関するＭＶＰとして候補動きベクトルのうちの１つを選択する際に使用するために、動き補償ユニット７２に与えることができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
図６は、そこから動きベクトル予測子候補が動きベクトル予測モードに関して生成される、空間的近傍ブロックと時間的近傍ブロックとを示す概念図である。現在のＨＥＶＣテストモデル（ＨＭ）では、２つの動きベクトル予測モード、すなわち、マージモードと、適応型動きベクトル予測（ＡＭＶＰ）モードとがサポートされている。いずれのモードにおいても、ビデオエンコーダ２０およびビデオデコーダ３０の各々は、現在のビデオブロックまたはＰＵ１１２に関する動きベクトルをそこから特定するべき、同じ動きベクトル予測子候補リストを生成する。マージモードおよびＡＭＶＰモードにおける動きベクトル予測子候補は、例えば、図６に示す近傍ブロックＡ、Ｂ、Ｃ、ＤおよびＥなど、現在のＰＵ１１２の空間的近傍ブロックに関する動きベクトルを含み得る。動きベクトル予測子候補はまた、例えば、図６に示す近傍ブロックＴ1およびＴ2など、現在のＰＵ１１２のコロケートブロック１１４の時間的近傍ブロックに関する動きベクトルを含み得る。場合によって、動きベクトル予測子候補は、近傍ブロックのうちの２つ以上に関する動きベクトルの組合せ、例えば、２つ以上の動きベクトルの平均値、中央値、または重み付き平均値を含み得る。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
様々な例が説明された。これらおよび他の例は以下の特許請求の範囲の範疇にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]
ビデオデータをコーディングする方法であって、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を備える方法。
[Ｃ２]
前記スケーリングされた候補動きベクトルを修正することは、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを備える、Ｃ１に記載の方法。
[Ｃ３]
前記スケーリングされた候補動きベクトルを修正することは、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを備える、Ｃ１に記載の方法。
[Ｃ４]
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、Ｃ１に記載の方法。
[Ｃ５]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、Ｃ１に記載の方法。
[Ｃ６]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、Ｃ１に記載の方法。
[Ｃ７]
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、Ｃ１に記載の方法。
[Ｃ８]
前記スケーリングされた動きベクトルを修正することは、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を含む、Ｃ１に記載の方法。
[Ｃ９]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることをさらに備える、Ｃ１に記載の方法。
[Ｃ１０]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることをさらに備える、Ｃ１に記載の方法。
[Ｃ１１]
前記スケーリングされた候補動きベクトルを修正することは、前記スケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように、前記スケーリングされた候補動きベクトルをスケーリングすることを備える、Ｃ１に記載の方法。
[Ｃ１２]
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを備える、Ｃ１に記載の方法。
[Ｃ１３]
前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて、前記ビデオデータの現在のブロックに関する動きベクトルを特定することをさらに備え、前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記ビデオデータの現在のブロックをコーディングすることは前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを備える、Ｃ１に記載の方法。
[Ｃ１４]
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、Ｃ１に記載の方法。
[Ｃ１５]
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、
前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと
をさらに備え、
前記ビデオデータの現在のブロックをコーディングすることは、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することを備える、Ｃ１に記載の方法。
[Ｃ１６]
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択することと、動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることとを行うように構成されたプロセッサを備えるビデオコーディングデバイス。
[Ｃ１７]
前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行うように、前記プロセッサがさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ１８]
前記プロセッサは、
前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ１９]
前記動きベクトル予測プロセスはマージモードおよび高度動きベクトル予測モードのうちの１つである、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２０]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２１]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２２]
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２３]
前記プロセッサは、
前記スケーリングされた動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングすることと、前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングすることとを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２４]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２５]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２６]
前記プロセッサは、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルが前記１つまたは複数の動きベクトル変位制限によって画定されるように前記スケーリングされた候補動きベクトルをスケーリングすることを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２７]
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを復号することを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２８]
前記プロセッサは、前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つに基づいて前記ビデオデータの現在のブロックに関する動きベクトルを特定することを行うようにさらに構成され、
前記特定された動きベクトルはビデオデータの予測ブロックを識別し、
前記プロセッサは、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの予測ブロックに対して前記ビデオデータの現在のブロックを符号化することを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ２９]
前記プロセッサは、
前記動きベクトル予測プロセスの高度動きベクトル予測モードを行うために動きベクトル予測子インデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つと前記ビデオデータの現在のブロックに関する動きベクトルとの間の動きベクトル差分を復号して前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ３０]
前記プロセッサは、
前記動きベクトル予測プロセスのマージモードを行うためにインデックスを復号して前記ビデオデータの現在のブロックに関する前記複数の候補動きベクトルのうちの前記選択された１つを識別することと、前記複数の候補動きベクトルのうちの前記選択された１つに等しくなるように前記ビデオデータの現在のブロックに関する動きベクトルを特定することと、前記ビデオデータの現在のブロックをコーディングするとき、前記ビデオデータの前記現在のブロックに関する前記特定された動きベクトルを使用して、前記ビデオデータの現在のブロックを復号することとを行うようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
[Ｃ３１]
動きベクトル予測プロセスを行ってビデオデータをコーディングするように構成されたビデオコーディングデバイスであって、
前記動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定するための手段と、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成するための手段と、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正するための手段と、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択するための手段と、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングするための手段と
を備えるビデオコーディングデバイス。
[Ｃ３２]
前記スケーリングされた候補動きベクトルを修正するための前記手段は、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに前記スケーリングされた候補動きベクトルを修正するための手段を備える、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３３]
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングするための手段を備える、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３４]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３５]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３６]
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３７]
前記スケーリングされた動きベクトルを修正するための前記手段は、
前記スケーリングされた候補動きベクトルの垂直成分を、垂直指定範囲内になるようにクリッピングするための手段と、
前記スケーリングされた候補動きベクトルの水平成分を水平指定範囲内になるようにクリッピングするための手段と
を含む、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３８]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングするための手段をさらに備える、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ３９]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記スケーリングされた候補動きベクトルを修正するための前記手段は、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングするための手段をさらに備える、Ｃ３１に記載のビデオコーディングデバイス。
[Ｃ４０]
実行されたとき、１つまたは複数のプロセッサに、
動きベクトル予測プロセスを行うために前記ビデオデータの現在のブロックに関する複数の候補動きベクトルを特定することと、
前記ビデオデータの前記現在のブロックに関して特定された前記複数の候補動きベクトルのうちの１つまたは複数をスケーリングして１つまたは複数のスケーリングされた候補動きベクトルを生成することと、
前記スケーリングされた候補動きベクトルを指定範囲内になるように修正することと、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[Ｃ４１]
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、スケーリングされていない他の候補動きベクトルのいずれかを修正することなしに、前記スケーリングされた候補動きベクトルを修正することを行わせる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４２]
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として、前記複数の候補動きベクトルのうちの１つを選択するより前に、前記スケーリングされた候補動きベクトルをクリッピングすることを行わせる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４３]
実行されたとき、前記１つまたは複数のプロセッサに、
前記ビデオデータの前記現在のブロックに関する動きベクトル予測子として前記複数の候補動きベクトルのうちの１つを選択することと、
動きベクトル予測子に基づいて前記ビデオデータの現在のブロックをコーディングすることと
を行わせる命令をさらに記憶した、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４４]
前記指定範囲はビデオコーディングプロファイルまたはレベルによって定義される、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４５]
前記指定範囲はビデオデコーダおよびビデオエンコーダのうちの１つまたは複数において固定およびハードコーディングされる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４６]
前記指定範囲は１／４ピクセル単位で［−３２７６８，３２７６７］として指定される、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４７]
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた動きベクトルを修正するとき、
前記スケーリングされた候補動きベクトルの垂直成分を垂直指定範囲内になるようにクリッピングすることと、
前記スケーリングされた候補動きベクトルの水平成分を、水平指定範囲内になるようにクリッピングすることと
を行わせる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４８]
前記指定範囲は垂直変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記垂直変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの垂直成分が前記垂直変位制限内であるように、前記スケーリングされた候補動きベクトルの前記垂直成分をクリッピングすることを行わせる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
[Ｃ４９]
前記指定範囲は水平変位制限を含む動きベクトル変位制限を指定し、
前記スケーリングされた候補動きベクトルは前記水平変位制限を超過し、
前記命令は、実行されたとき、前記１つまたは複数のプロセッサに、前記スケーリングされた候補動きベクトルを修正するとき、前記スケーリングされた候補動きベクトルの水平成分が前記水平変位制限内であるように、前記スケーリングされた候補動きベクトルの前記水平成分をクリッピングすることを行わせる、Ｃ４０に記載の非一時的コンピュータ可読記憶媒体。
【外国語明細書】
2018050308000001.pdf