(57)【要約】      （修正有）【課題】動きベクトル精度を適応的に選択することにより、全体的なビデオコーディング品質を改善するビデオデータ復号方法をを提供する。【解決手段】ビデオデコーダ３０は、ある動きベクトル差分値を受信し、その値がゼロに等しいことに応答して現在ブロックの動きベクトルがサブピクセル動きベクトル精度を有すると決定する。ビデオデータの第２の現在ブロックに対し、ビデオデコーダ３０は、第２の動きベクトル差分値を受信し、その第２の動きベクトル差分値が非ゼロ値であることに応答して、第２の現在ブロックに対する第２の動きベクトルの動きベクトル精度を受信する。【選択図】図３
2019080321.tif 000002
【特許請求の範囲】
【請求項１】
符号化されたビデオデータを復号する方法であって、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストを構築することは、分数精度動きベクトル候補を前記マージ候補リストに加えることを備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記分数精度動きベクトルを選択することに応答して、前記第１のブロックの整数ピクセル精度動きベクトルを決定するために前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックに基づいて前記第１のブロックを復号することとを備える方法。
【請求項２】
前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定することは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信することを備える、請求項１に記載の方法。
【請求項３】
前記マージモードはスキップモードを備える、請求項１に記載の方法。
【請求項４】
第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとをさらに備える、請求項１に記載の方法。
【請求項５】
前記第２のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを備える、請求項４に記載の方法。
【請求項６】
前記整数精度動きベクトルを第２のブロックの候補リストに追加することをさらに備える、請求項５に記載の方法。
【請求項７】
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、請求項１に記載の方法。
【請求項８】
前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、請求項７に記載の方法。
【請求項９】
ビデオデータを符号化する方法であって、
第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを符号化するために前記分数精度動きベクトル候補を選択することと、
マージモードを使用して前記第１のブロックをコーディングするため、前記第１のブロックの整数ピクセル精度動きベクトルを決定するために前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することとを備える方法。
【請求項１０】
前記符号化されたビデオデータに含めるために、前記第１のブロックの動きベクトル精度が整数ピクセル精度であるという指示を生成することをさらに備える、請求項９に記載の方法。
【請求項１１】
前記マージモードはスキップモードを備える、請求項９に記載の方法。
【請求項１２】
第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックを前記マージモード以外のモードでコーディングするために、前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとをさらに備え、
前記参照ブロックに基づいて前記第１のブロックを符号化する、請求項９に記載の方法。
【請求項１３】
前記第２のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを備える、請求項１２に記載の方法。
【請求項１４】
前記整数精度動きベクトルを第２のブロックの候補リストに追加することをさらに備える、請求項１２に記載の方法。
【請求項１５】
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、請求項９に記載の方法。
【請求項１６】
前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、請求項１５に記載の方法。
【請求項１７】
ビデオ復号のためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記メモリに記憶されたビデオデータに基づいて、前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記第１のブロックの整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
を行うように構成された１つまたは複数のプロセッサを備えるビデオデコーダとを備えるデバイス。
【請求項１８】
前記１つまたは複数のプロセッサは、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定するようにさらに構成され、前記１つまたは複数のプロセッサは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信するようにさらに構成される、請求項１７に記載のデバイス。
【請求項１９】
前記マージモードはスキップモードを備える、請求項１７に記載のデバイス。
【請求項２０】
前記１つまたは複数のプロセッサは、
第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとを行うようにさらに構成される、請求項１７に記載のデバイス。
【請求項２１】
前記第２のブロックの前記分数精度動きベクトル予測子を決定するために、前記１つまたは複数のプロセッサは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを行うようにさらに構成される、請求項２０に記載のデバイス。
【請求項２２】
前記１つまたは複数のプロセッサは、
前記整数精度動きベクトルを第２のブロックの候補リストに追加することを行うようにさらに構成される、請求項２１に記載のデバイス。
【請求項２３】
前記１つまたは複数のプロセッサは、
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することを行うようにさらに構成される、請求項１７に記載のデバイス。
【請求項２４】
前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、請求項２３に記載のデバイス。
【請求項２５】
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記第１のブロックの整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。
【請求項２６】
前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定するために、前記１つまたは複数のプロセッサは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信する、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することと
を行わせるさらなる命令を記憶する、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記第２のブロックの前記分数精度動きベクトル予測子を決定するために、前記１つまたは複数のプロセッサは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することと
を行う、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
前記整数精度動きベクトルを第２のブロックの候補リストに追加することを行わせるさらなる命令を記憶する、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することを行わせるさらなる命令を記憶する、請求項２５に記載のコンピュータ可読記憶媒体。
【請求項３１】
ビデオデータをコーディングする方法であって、
現在ピクチャでコーディングされている現在ブロックに対し、すでにコーディングされている隣接ブロックの整数ピクセル位置を識別することと、
前記整数ピクセル位置のロケーションに基づいて、前記ピクチャにおける複数の整数ピクセル位置を決定するためにテンプレートを適用することと、
前記ピクチャにおける複数のサブピクセル位置を決定するために、複数のサブピクセル位置にテンプレートを適用することと、
前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、
前記比較に基づいて、動きベクトルの動きベクトル精度を決定することと、
前記決定された動きベクトル精度を有する前記動きベクトルを使用して、前記現在ブロックをコーディングすることと
を備える方法。
【請求項３２】
前記動きベクトルの前記動きベクトル精度を決定することは、
差分値を決定するために、前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、ここにおいて、前記差分値は、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間におけるピクセル値の差の量に対応する、
前記差分値がしきい値よりも大きいことに応答して、整数ピクセル精度を備えるように前記動きベクトル精度を決定することと
を備える、請求項３１に記載の方法。
【請求項３３】
前記動きベクトルの前記動きベクトル精度を決定することは、
差分値を決定するために、前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、ここにおいて、前記差分値は、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間におけるピクセル値の差の量に対応する、
前記差分値がしきい値よりも小さいことに応答して、サブピクセル精度を備えるように前記動きベクトル精度を決定することと
を備える、請求項３１に記載の方法。
【請求項３４】
前記しきい値は固定値である、請求項３１に記載の方法。
【請求項３５】
前記しきい値は適応値である、請求項３１に記載の方法。
【請求項３６】
前記テンプレートはある形状を規定し、ここにおいて、前記複数の整数ピクセル位置を決定するために前記テンプレートを適用することは、現在ブロックに対する前記形状のロケーションに基づいて、前記複数の整数ピクセル位置を特定することを備える、請求項３１に記載の方法。
【請求項３７】
前記テンプレートはある形状を規定し、ここにおいて、前記複数のサブピクセル位置を決定するために前記テンプレートを適用することは、現在ブロックに対する前記形状のロケーションに基づいて、前記複数のサブピクセルのピクセル位置を特定することを備える、請求項３１に記載の方法。
【請求項３８】
前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値を前記複数のサブピクセル位置の前記１つまたは複数のピクセル値と比較することは、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間の絶対差分和を決定することを備える、請求項３１に記載の方法。
【請求項３９】
候補動きベクトルの候補リストを収集することと、
前記候補リストにおいて候補動きベクトルを識別するインデックス値を受信することと、
前記識別された候補動きベクトルに基づいて、前記動きベクトルを決定することと、をさらに備える、請求項３１に記載の方法。
【請求項４０】
前記候補リストはＡＭＶＰ候補リストを備える、請求項３９に記載の方法。
【請求項４１】
前記候補リストはマージモード候補リストを備える、請求項３９に記載の方法。
【請求項４２】
ビデオデータをコーディングする方法であって、
コーディングされている現在ブロックに対し、１つまたは複数の隣接ブロックの位置を特定することと、
前記１つまたは複数の隣接ブロックのプロパティを決定することと、
前記１つまたは複数の隣接ブロックの前記プロパティに基づいて、動きベクトルの動きベクトル精度を決定することと、
前記決定された動きベクトル精度を有する前記動きベクトルを使用して、前記現在ブロックをコーディングすることと、
を備える方法。
【請求項４３】
前記プロパティは、前記１つまたは複数の隣接ブロックの先鋭度を備える、請求項４２に記載の方法。
【請求項４４】
前記プロパティは、前記１つまたは複数の隣接ブロックの階調度を備える、請求項４２に記載の方法。
【請求項４５】
前記プロパティは、スキップモードでコーディングされている前記１つまたは複数の隣接ブロックを備える、請求項４２に記載の方法。
【請求項４６】
前記プロパティは、前記１つまたは複数の隣接ブロックの動きベクトル精度を備える、請求項４２に記載の方法。
【請求項４７】
どのプロパティが決定されるかの指示を受信することをさらに備える、請求項４２に記載の方法。
【請求項４８】
前記１つまたは複数の隣接ブロックは、少なくとも１つの空間的に隣接するブロックを備える、請求項４２に記載の方法。
【請求項４９】
前記１つまたは複数の隣接ブロックは、少なくとも１つの時間的に隣接するブロックを備える、請求項４２に記載の方法。
【請求項５０】
ビデオデータをコーディングする方法であって、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックを使用して前記第１のブロックをコーディングすることと、
を備える方法。
【請求項５１】
前記マージモードはスキップモードを備える、請求項５０に記載の方法。
【請求項５２】
前記整数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、請求項５０に記載の方法。
【請求項５３】
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、請求項５０に記載の方法。
【請求項５４】
前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、請求項５２または５３に記載の方法。
【請求項５５】
ビデオデータをコーディングする方法であって、
第１のブロックのコーディングモードがマージモード以外であると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックの分数精度動きベクトル予測子を決定することと、
前記第１のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第１のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックを使用して前記第１のブロックをコーディングすることと、
を備える方法。
【請求項５６】
前記第１のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第１のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックの前記分数精度動きベクトル予測子として、前記分数精度動きベクトル候補を選択することと、
を備える、請求項５５に記載の方法。
【請求項５７】
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、請求項５５に記載の方法。
【請求項５８】
ビデオデータをコーディングする方法であって、
符号化されたビデオビットストリームにおいて、動きベクトル精度シグナリングタイプの指示を受信することと、
前記動きベクトル精度シグナリングタイプに基づいて、ビデオデータのブロックの動きベクトル精度を決定することと、
前記決定された動きベクトル精度の動きベクトルを使用して、ビデオデータの前記ブロックの参照ブロックの位置を特定することと、
備える方法。
【請求項５９】
前記動きベクトル精度シグナリングタイプは、（１）テンプレートマッチングタイプ、（２）隣接ブロックプロパティベースタイプ、または（３）ダイレクトシグナリングタイプのうちの１つを備える、請求項５８に記載の方法。
【請求項６０】
前記指示は、スライスヘッダ、シーケンスパラメータセット（ＳＰＳ）、またはピクチャパラメータセット（ＰＰＳ）のうちの１つにおいてシグナリングされる、請求項５８に記載の方法。
【請求項６１】
前記指示はスライスタイプを備える、請求項５８に記載の方法。
【請求項６２】
前記指示は、ビデオデータの前記ブロックを備えるスライスの時間レベルを備える、請求項５８に記載の方法。
【請求項６３】
ビデオデータをコーディングする方法であって、
ビデオデータの現在ブロックに対し、動きベクトル差分値を決定することと、
前記動きベクトル差分値がゼロに等しいことに応答して、前記現在ブロックの動きベクトルがサブピクセル動きベクトル精度を有すると決定することと、
を備える方法。
【請求項６４】
ビデオデータの第２の現在ブロックに対し、第２の動きベクトル差分値を受信することと、
前記第２の動きベクトル差分値が非ゼロ値であることに基づいて、前記第２の現在ブロックに対し、第２の動きベクトルの動きベクトル精度の指示を受信することと、
参照ピクチャにおいて、前記第２の動きベクトルを使用して前記第２の現在ブロックの参照ブロックの位置を特定することと、
をさらに備える、請求項６３に記載の方法。
【請求項６５】
前記第２の動きベクトル差分値を受信した後に、前記動きベクトル精度の前記指示を受信することをさらに備える、請求項６４に記載の方法。
【請求項６６】
前記動きベクトル差分値がゼロに等しいことは、前記動きベクトル差分値のｘ成分がゼロに等しいことと、前記動きベクトル差分値のｙ成分がゼロに等しいこととを備える、請求項６３に記載の方法。
【請求項６７】
ビデオデータをコーディングする方法であって、
前記ビデオデータに対し、デフォルト動きベクトル精度を決定することと、
前記ビデオデータの予測ユニット（ＰＵ）が特殊モードでコーディングされていることに応答して、前記デフォルト動きベクトル精度の動きベクトルを使用して前記ＰＵの参照ブロックの位置を特定することと、
を備える方法。
【請求項６８】
前記ビデオデータの第２のＰＵが前記特殊モード以外のモードを使用してコーディングされていることに応答して、前記ビデオデータの前記ＰＵに対し、シグナリングされた動きベクトル精度を決定することと、
前記シグナリングされた動きベクトル精度の動きベクトルを使用して、前記第２のＰＵの参照ブロックの位置を特定することと、
をさらに備える、請求項６７に記載の方法。
【請求項６９】
前記特殊モードは、
スキップモード、
２Ｎ×２Ｎマージモード、
マージモード、
トランスフォームスキップモード、または
非対称区分化モード
のうちの１つまたは複数を備える、請求項６７に記載の方法。
【請求項７０】
前記ビデオデータのコーディングユニット（ＣＵ）に対し、シグナリングされた動きベクトル精度を決定すること、ここにおいて、前記シグナリングされた動きベクトル精度は、前記デフォルト動きベクトル精度とは異なるものであり、ここにおいて、前記ＣＵは前記ＰＵを備える、
をさらに備える、請求項６７に記載の方法。
【請求項７１】
前記シグナリングされた動きベクトル精度は整数ピクセル精度を備え、ここにおいて、前記デフォルト動きベクトル精度は分数動きベクトル精度を備える、請求項７０に記載の方法。
【請求項７２】
ビデオデータをコーディングする方法であって、
第１のブロックの動きベクトル差分精度が整数ピクセル精度であると決定することと、
前記第１のブロックの動きベクトル予測子の候補リストを構築することと、ここにおいて、前記候補リストは分数精度動きベクトル候補を備える、
前記候補リストから前記分数精度動きベクトル候補を選択することと、
前記分数精度動きベクトル候補および前記整数ピクセル精度動きベクトル差分に基づいて、分数ピクセル精度動きを決定することと、
前記分数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
を備える方法。
【請求項７３】
前記候補リストは備え、ＡＭＶＰ候補リスト、請求項７２に記載の方法。
【請求項７４】
ビデオデータをコーディングする方法であって、
ブロックの候補リストに含めるための１つまたは複数の動きベクトル候補を識別することと、ここにおいて、前記１つまたは複数の動きベクトル候補は、少なくとも１つの分数精度動きベクトル候補を備える、
前記ブロックの動きベクトル精度が整数ピクセル精度であることに応答して、１つまたは複数の整数精度動きベクトル候補を決定するために、前記１つまたは動きベクトル候補を丸めることと、
前記１つまたは複数の動きベクトル候補を丸めた後、前記１つまたは複数の整数精度動きベクトル候補に対して刈り込み操作を実施することと、
を備える方法。
【請求項７５】
前記候補リストはマージモード候補リストを備える、請求項７４に記載の方法。
【請求項７６】
前記候補リストはＡＭＶＰ候補リストを備える、請求項７４に記載の方法。
【請求項７７】
前記１つまたは複数の動きベクトル候補は空間隣接候補を備える、請求項７４に記載の方法。
【請求項７８】
前記１つまたは複数の動きベクトルは時間隣接候補を備える、請求項７４に記載の方法。
【請求項７９】
ビデオデータをコーディングする方法であって、
ビデオデータの第１のブロックおよびビデオデータの第２のブロックに対し、デフォルト精度を決定することと、
ビデオデータの前記第１のブロックに対し、第１の動きベクトル精度情報を決定することと、
ビデオデータの前記第２のブロックがある条件を満たすことに応答して、前記デフォルト精度に対応するように第２の動きベクトル情報を決定することと、
を備える方法。
【請求項８０】
前記デフォルト精度は分数精度を備える、請求項７９に記載の方法。
【請求項８１】
ビデオデータの前記第１のブロックは第１のＰＵを備える、請求項７９に記載の方法。
【請求項８２】
前記第１の動きベクトル精度情報は動きベクトル精度を備える、請求項７９に記載の方法。
【請求項８３】
前記第１の動きベクトル精度情報は動きベクトル差分精度情報を備える、請求項７９に記載の方法。
【請求項８４】
前記条件は、前記第２のブロックがマージモードまたはスキップモードを使用してコーディングされていることを備える、請求項７９に記載の方法。
【請求項８５】
前記条件は、前記第２のブロックがＡＭＶＰモードを使用してコーディングされていることと、前記第２のブロックの各予測方向の動きベクトル差分がゼロに等しいこととを備える、請求項７９に記載の方法。
【請求項８６】
ビデオデータをコーディングする方法であって、
ビデオデータの第１のコーディングユニットおよびビデオデータの第２のコーディングユニットに対し、デフォルト精度を決定することと、
ビデオデータの前記第１のコーディングユニットに対し、第１の動きベクトル精度情報を決定することと、
ビデオデータの第２のコーディングユニットがある条件を満たすことに応答してデフォルト精度に対応するように第２の動きベクトル情報を決定することと、
を備える方法。
【請求項８７】
前記デフォルト精度は分数精度を備える、請求項８６に記載の方法。
【請求項８８】
前記デフォルト精度は精度を備えない、請求項８６に記載の方法。
【請求項８９】
前記第１の動きベクトル精度情報は動きベクトル精度を備える、請求項８６に記載の方法。
【請求項９０】
前記第１の動きベクトル精度情報は動きベクトル差分精度情報を備える、請求項８６に記載の方法。
【請求項９１】
前記条件は、前記ＣＵ内のすべてのＰＵがイントラコーディングされることを備える、請求項８６に記載の方法。
【請求項９２】
前記条件は、前記ＣＵ内のすべてのＰＵがマージモードまたはスキップモードを使用してコーディングされることを備える、請求項８６に記載の方法。
【請求項９３】
前記条件は、前記ＣＵ内のすべてのＰＵがＡＭＶＰを使用してコーディングされていることと、すべてのＰＵの各予測方向の動きベクトル差分がゼロに等しいこととを備える、請求項８６に記載の方法。
【請求項９４】
請求項３１から９３の任意の組合せを備える方法。
【請求項９５】
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、請求項３１から９３の任意の組合せの方法を実施させる命令を記憶するコンピュータ可読記憶媒体。
【請求項９６】
ビデオコーディングデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
請求項３１から９３の任意の組合せの方法を実施するように構成された１つまたは複数のプロセッサを備えるビデオコーダと、
を備えるビデオコーディングデバイス。
【請求項９７】
前記ビデオコーダはビデオエンコーダを備える、請求項９６に記載のビデオコーディングデバイス。
【請求項９８】
前記ビデオコーダはビデオデコーダを備える、請求項９６に記載のビデオコーディングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、それらの全体が参照により本明細書に組み込まれる、
２０１４年１月９日に出願された米国仮出願第６１／９２５，６３３号、
２０１４年３月１７日に出願された米国仮出願第６１／９５４，４５７号、および
２０１４年１０月１６日に出願された米国仮出願第６２／０６４，７６１号の利益を主張する。
【０００２】
[0002]本開示は、ビデオコーディングに関し、より詳細には、インター予測ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などの、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングでは、ビデオフレームまたはスライスは、マクロブロックに区分され得る。各マクロブロックは、さらに区分され得る。イントラコーディングされた（Ｉ）フレームまたはスライス中のマクロブロックは、隣接するマクロブロックに関する空間的予測を使用して符号化される。インターコーディングされた（ＰもしくはＢ）フレームまたはスライス中のマクロブロックは、同じフレームもしくはスライス中の隣接マクロブロックに関する空間的予測、または他の参照フレームに関する時間的予測を使用し得る。
【発明の概要】
【０００５】
[0005]概して、本開示では、ビデオデータのブロックを符号化するために使用される動きベクトルの動きベクトル精度を適応的に選択するため、およびブロックの各々に対してビデオエンコーダが選択した同じ動きベクトル精度をビデオデコーダによって決定するための技法について説明する。
【０００６】
[0006]一例では、符号化されたビデオデータを復号する方法が、第１のブロックのコーディングモードがマージモードであると決定することと、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、第１のブロックのマージ候補リストを構築することと、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える、第１のブロックを復号するために分数精度動きベクトル候補を選択することと、整数ピクセル精度動きベクトルを決定するために、分数精度動きベクトル候補を丸めることと、整数ピクセル精度動きベクトルを使用して第１のブロックの参照ブロックの位置を特定することとを含む。
【０００７】
[0007]別の例では、ビデオデータを符号化する方法が、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、第１のブロックのマージ候補リストを構築することと、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える、第１のブロックを符号化するために分数精度動きベクトル候補を選択することと、
マージモードを使用して第１のブロックをコーディングするため、整数ピクセル精度動きベクトルを決定するために分数精度動きベクトル候補を丸めることと、整数ピクセル精度動きベクトルを使用して第１のブロックの参照ブロックの位置を特定することとを含む。
【０００８】
[0008]別の例では、ビデオ復号のためのデバイスが、ビデオデータを記憶するように構成されたメモリと、１つまたは複数のプロセッサを備えるビデオデコーダとを含み、１つまたは複数のプロセッサは、第１のブロックのコーディングモードがマージモードであると決定することと、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、第１のブロックのマージ候補リストを構築することと、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える、第１のブロックを復号するために分数精度動きベクトル候補を選択することと、整数ピクセル精度動きベクトルを決定するために、分数精度動きベクトル候補を丸めることと、整数ピクセル精度動きベクトルを使用して第１のブロックの参照ブロックの位置を特定することとを行うように構成される。
【０００９】
[0009]別の例では、１つまたは複数のプロセッサによって実行されると、その１つまたは複数のプロセッサに、第１のブロックのコーディングモードがマージモードであると決定することと、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、第１のブロックのマージ候補リストを構築することと、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える、第１のブロックを復号するために分数精度動きベクトル候補を選択することと、整数ピクセル精度動きベクトルを決定するために、分数精度動きベクトル候補を丸めることと、整数ピクセル精度動きベクトルを使用して第１のブロックの参照ブロックの位置を特定することとを行わせる命令を記憶するコンピュータ可読記憶媒体。
【００１０】
[0010]別の例では、符号化されたビデオデータを復号するための装置が、第１のブロックのコーディングモードがマージモードであると決定するための手段と、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定するための手段と、第１のブロックのマージ候補リストを構築するための手段と、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える、第１のブロックを復号するために分数精度動きベクトル候補を選択するための手段と、整数ピクセル精度動きベクトルを決定するために、分数精度動きベクトル候補を丸めるための手段と、整数ピクセル精度動きベクトルを使用して第１のブロックの参照ブロックの位置を特定するための手段とを含む。
【００１１】
[0011]１つまたは複数の例の詳細は、添付の図面および以下の説明において記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]適応動きベクトル解像度をサポートするための本開示の技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】[0013]適応動きベクトル解像度をサポートするための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】[0014]符号化ビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。
【図４】[0015]フルピクセル位置に対する分数ピクセル位置を示す概念図。
【図５Ａ】[0016]対応するクロミナンスピクセル位置およびルミナンスピクセル位置を示す概念図。
【図５Ｂ】対応するクロミナンスピクセル位置およびルミナンスピクセル位置を示す概念図。
【図５Ｃ】対応するクロミナンスピクセル位置およびルミナンスピクセル位置を示す概念図。
【図６】[0017]デコーダサイド動きベクトル導出（ＤＭＶＤ）のための例示的なＬ字形状テンプレートマッチングの図。
【図７】[0018]例示的なミラーベースの双方向ＭＶ導出を示す概念図。
【図８】[0019]本開示に記載される技法に従ってビデオデータを符号化するための例示的な方法を示すフローチャート。
【図９】[0020]本開示に記載される技法に従ってビデオデータを復号するための例示的な方法を示すフローチャート。
【図１０】[0021]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１１】[0022]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１２】[0023]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１３】[0024]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１４】[0025]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１５】[0026]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１６】[0027]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【図１７】[0028]ビデオデータをコーディングするための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１３】
[0029]概して、本開示では、ビデオデータのブロックを符号化するために使用される動きベクトルの動きベクトル精度を適応的に選択するため、およびビデオエンコーダによって選択された動きベクトル精度と同じ動きベクトル精度をビデオデコーダによって決定するための技法について説明する。いくつかの技法によれば、ビデオデコーダは、符号化されたビデオビットストリームにおける明示的なシグナリングなしに、ビデオエンコーダによって選択された動きベクトル精度を導出し得る。他の技法によれば、ビデオエンコーダは、符号化されたビデオビットストリームにおいて、選択された動きベクトル精度をシグナリングし得る。本開示の技法は、分数ピクセル精度と呼ばれることがある、整数ピクセル精度と種々のレベルのサブ整数ピクセル精度との間で適応的に選択することを含み得る。たとえば、本技法は、整数ピクセル精度と、ビデオデータのブロックを符号化するために使用される動きベクトルのための１／４ピクセル精度または１／８ピクセル精度との間で適応的に選択することを含み得る。本開示中の「１／８ピクセル」精度という用語は、１ピクセルの１／８の精度、たとえば、フルピクセル位置（０／８）、１ピクセルの１／８、１ピクセルの２／８（すなわち１ピクセルの１／４）、１ピクセルの３／８、１ピクセルの４／８（すなわち１ピクセルの１／２および１ピクセルの２／４）、１ピクセルの５／８、１ピクセルの６／８（すなわち１ピクセルの３／４）、または１ピクセルの７／８のうちの１つを指すことを意図するものである。
【００１４】
[0030]従来のＨ．２６４およびＨ．２６５エンコーダおよびデコーダは、１／４ピクセル精度を有する動きベクトルをサポートする。そのようなピクセル精度はしかしながら、シグナリングも導出もされないが、その代わりに固定される。いくつかの事例では、１／８ピクセル精度は、１／４ピクセル精度または整数ピクセル精度に勝るいくつかの利点をもたらし得る。ただし、あらゆる動きベクトルを１／８ピクセル精度に符号化することは、非常に多くのコーディングビットを必要とし得、それは、さもなければ１／８ピクセル精度動きベクトルによってもたらされる利益を上回り得る。いくつかのタイプのビデオコンテンツに対しては、補間をまったく用いずに、言い換えれば整数ピクセル精度のみを使用して動きベクトルをコーディングすることが好ましくなり得る。
【００１５】
[0031]コンピュータによって生成されるコンテンツなどのスクリーンコンテンツは一般に、ピクセル値の鋭い変化が後に続く、すべてがまったく同じピクセル値を有する一連のピクセルを含む。たとえば、白色の背景上に青色のテキストを含んだスクリーンコンテンツでは、白色の背景がすべて同じピクセル値を有する一方で、青色の文字を形成するピクセルもまた、すべて同じピクセル値を有し得るが、白色のピクセル値は青色のピクセル値とは相当に異なり得る。カメラ収集コンテンツは対照的に、一般には、動き、シャドー、照度変化、および他の自然現象を原因とするピクセル値の緩慢な変化を含んでいる。スクリーンコンテンツおよびカメラ収集コンテンツは一般に、異なる特性を有しているので、一方に効果的なコーディングツールが必ずしも、もう一方に効果的となり得るとは限らない。一例として、インター予測符号化のためのサブピクセル補間は、カメラコンテンツのコーディングを改善し得るが、それに関連した複雑さおよびシグナリングオーバーヘッドが、スクリーンコンテンツに対して実際にコーディング品質および／または帯域幅効率を低下させ得る。
【００１６】
[0032]本開示の技法は、たとえばコーディングされているビデオのコンテンツに基づいて、動きベクトル精度を適応的に決定することを含む。いくつかの例では、本開示の技法は、エンコーダによって、コーディングされているビデオコンテンツに対して適切な動きベクトル精度を導出することを含む。同じ導出技法を使用して、ビデオデコーダもまた、動きベクトル精度を示しているシンタックス要素を受信することなく、いかなる動きベクトル精度がビデオデータを符号化するために使用されたかを決定し得る。他の例では、ビデオエンコーダは、符号化されたビデオビットストリームにおいて、ビデオエンコーダによって選択された動きベクトル精度をシグナリングし得る。
【００１７】
[0033]動きベクトル精度を適応的に選択することは、より高精度の動きベクトル（たとえば、１／４または１／８の精度の動きベクトル）の使用が、たとえばより良好なレートひずみのトレードオフを生じさせることによってビデオコーディング品質を改善させるビデオコンテンツに対して、そのようなより高精度の動きベクトルを使用できるようにすることによって、全体的なビデオコーディング品質を改善し得る。動きベクトル精度を適応的に選択することはまた、より高精度の動きベクトルの使用がビデオコーディング品質を改善せず、さらには悪化させるビデオコンテンツに対して、より低精度の動きベクトル（たとえば整数精度）の使用を可能にすることによって、全体的なビデオコーディング品質を改善し得る。
【００１８】
[0034]本開示での様々な技法については、ビデオコーダを参照しながら説明され得るが、このビデオコーダとは、ビデオエンコーダまたはビデオデコーダのどちらかを指し得る総称となることを意図するものである。別段に明記されていない限り、ビデオエンコーダまたはビデオデコーダに関して説明される技法が、ビデオエンコーダまたはビデオデコーダの他方によって実施され得ないことは想定されるべきではない。たとえば、多くの場合、ビデオデコーダは、符号化されたビデオデータを復号するために、ビデオエンコーダと同じ、または場合によっては逆のコーディング技法を実施する。多くの場合、ビデオエンコーダはまたビデオ復号ループを含み、したがって、ビデオエンコーダは、ビデオデータを符号化することの一部として、ビデオ復号を実施する。したがって、別段に記載されていない限り、本開示においてビデオデコーダに関して説明される技法はまたビデオエンコーダによっても実施され得、その逆も同様である。
【００１９】
[0035]本開示はまた、現在レイヤー、現在ブロック、現在ピクチャ、現在スライスなどの用語を使用することがある。本開示の文脈において、現在という用語は、たとえば、前にコーディングされたレイヤー、ブロック、ピクチャ、およびスライス、またはまだコーディングされていないブロック、ピクチャ、およびスライスとは対照的に、現在コーディングされているレイヤー、ブロック、ピクチャ、スライスなどを識別することを意図するものである。
【００２０】
[0036]図１は、適応動きベクトル解像度をサポートするための本開示の技法を利用し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されるように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイス、あるいは通信チャネル１６を介してビデオ情報を通信することができる任意のワイヤレスデバイスを備え得、その場合、通信チャネル１６はワイヤレスである。ただし、概して、動きベクトルの適応サブピクセル精度をサポートするための技法に関する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用され得る。したがって、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレス媒体またはワイヤード媒体の任意の組合せを備え得る。
【００２１】
[0037]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、動きベクトルの適応サブピクセル精度をサポートするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部のビデオソース１８からビデオデータを受信することができる。同様に、宛先デバイス１４は、統合されたディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてもよい。
【００２２】
[0038]図１の例示されたシステム１０は、一例にすぎない。動きベクトルの適応サブピクセル精度をサポートするための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、これらの技法は、通常は「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が、宛先デバイス１４に送信するためのコード化ビデオデータを生成するコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、もしくはビデオ電話のためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００２３】
[0039]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話またはビデオ付き電話を形成し得る。しかしながら、上記で述べたように、本開示で説明する技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび／またはワイヤードの応用例に適用され得る。各場合において、キャプチャされたビデオ、前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２４】
[0040]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。この場合も、ビデオ符号化プロセスは、動きベクトルの適応サブピクセル精度をサポートするための本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、マクロブロックおよび他のコード化ユニット、たとえば、ピクチャグループ（ＧＯＰ）の特性および／または処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちのいずれかを備え得る。
【００２５】
[0041]図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するための任意の好適な通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００２６】
[0042]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ：user datagram protocol）などの他のプロトコルに準拠し得る。
【００２７】
[0043]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、共同ビデオ部会（ＪＶＴ）として知られる共同パートナーシップの成果としてＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明される技法は、Ｈ．２６４規格に概ね準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ研究委員会（Study Group）による２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ばれることがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）は、Ｈ．２６４／ＡＶＣへの拡張に取り組み続けており、また、たとえばＨＥＶＣのための新しい規格を開発し続けている。
【００２８】
[0044]ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００２９】
[0045]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰに含まれるフレームの数を記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つもしくは複数のフレームのヘッダ、または他の場所に含む場合がある。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含む場合がある。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらのマクロブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
【００３０】
[0046]一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、または４×４、およびクロマ成分については８×８などの様々なブロックサイズでのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、ならびにクロマ成分については対応するスケーリングされたサイズなどの様々なブロックサイズでのインター予測をサポートする。本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」は、垂直寸法および水平寸法に関するブロックのピクセル寸法（たとえば、１６×（x）１６ピクセルまたは１６×（by）１６ピクセル）を指すために互換的に使用され得る。一般に、１６ｘ１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセル、水平方向にＮピクセルを有し、Ｎが非負の整数値を表す。ブロック中のピクセルは、行および列に配置され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有するとは限らない。たとえば、ブロックはＮ×Ｍピクセルを備え得、この場合、Ｍは必ずしもＮに等しいとは限らない。
【００３１】
[0047]１６×１６よりも小さいブロックサイズは、１６×１６マクロブロックのパーティションと呼ばれる場合がある。ビデオブロックは、ピクセル領域中のピクセルデータのブロックを備え得、あるいは、たとえば、コード化ビデオブロックと予測ビデオブロックとの間のピクセル差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００３２】
[0048]小さいビデオブロックほど、より良い解像度が得られ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。概して、マクロブロック、およびサブブロックと呼ばれることがある様々なパーティションは、ビデオブロックとみなされ得る。さらに、スライスは、マクロブロックおよび／またはサブブロックなど、複数のビデオブロックであるとみなされ得る。各スライスは、ビデオフレームの単独で復号可能なユニットであってよい。代替的に、フレーム自体が復号可能なユニットであってよく、またはフレームの他の部分が復号可能なユニットとして定義され得る。「コード化ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、または適用可能なコーディング技法に従って定義される別の単独で復号可能なユニットを指すことがある。
【００３３】
[0049]高効率ビデオコーディング（ＨＥＶＣ）と呼ばれる新しいビデオコーディング規格が最近に確定されている。スクリーンコンテンツコーディング拡張と呼ばれる拡張を含めて、ＨＥＶＣに対する様々な拡張を開発するための取り組みが現在、進行中である。ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスのモデルに基づいていた。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供する。
【００３４】
[0050]ＨＭは、ビデオデータのブロックをコーディングユニット（ＣＵ）と呼ぶ。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得るし、各サブＣＵはサブＣＵに分割され得る。ビットストリームのためのシンタックスデータは、ＣＵ深度と呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ）をも定義し得る。本開示はまた、「ブロック」という用語を使用して、ＣＵ、ＰＵ、またはＴＵのいずれをも指す。その上、本開示において、コーディングユニットまたはＣＵに関与する例に言及する場合、コーディングユニットの代わりにマクロブロックに関する他の例が与えられ得ることを理解されたい。
【００３５】
[0051]ＬＣＵは、４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割される場合、ＣＵに対応するノードは４つのリーフノードを含み、その各々は、サブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのためのシンタックスデータを与え得る。たとえば、４分木中のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示すスプリットフラグを含み得る。ＣＵのためのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００３６】
[0052]（たとえば、４分木データ構造中のリーフノードに対応する）分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含み得る。一般に、ＰＵは、対応するＣＵの全部または一部を表し、そのＰＵ用の参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵに関するイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵに関する動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、整数ピクセル精度、１／４ピクセル精度、１／８ピクセル精度）、動きベクトルが指し示す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。ＰＵを定義するＣＵ用のデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分化することを記述し得る。区分化モードは、ＣＵがコーディングされていないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なる場合がある。
【００３７】
[0053]１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ）を含み得る。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵ用の対応するＰＵよりも大きくてもまたは小さくてもよい。いくつかの例では、ＴＵの最大サイズは、ＴＵを含むＣＵのサイズに対応し得る。
【００３８】
[0054]本開示の技法によれば、ビデオエンコーダ２０は、異なるサブ整数ピクセル精度の動きベクトルを有する１つまたは複数のＰＵを使用してＣＵをインターモード符号化し得る。たとえば、ビデオエンコーダ２０は、符号化されているビデオデータのコンテンツに基づいて、ＰＵに対して、整数ピクセル精度または分数（たとえば１／４または１／８）ピクセル精度を有する動きベクトルを使用することの間で選択し得る。本開示のいくつかの技法によれば、ビデオエンコーダ２０は、符号化されたビデオデータのビットストリームに含めるために、ＰＵの動きベクトルに対するサブピクセル精度の指示（indication）を生成することを必要としない場合がある。代わりに、ビデオデコーダ３０は、ビデオエンコーダ２０によって使用されるものと同じ導出技法を使用して、動きベクトル精度を導出し得る。本開示の他の技法によれば、ビデオエンコーダ２０は、符号化されたビデオデータのビットストリーム内に、選択された動きベクトル精度を決定するためにビデオデコーダ３０が使用し得る１つまたは複数のシンタックス要素を含め得る。
【００３９】
[0055]サブ整数ピクセル位置の値を計算するために、ビデオエンコーダ２０は様々な補間フィルタを含み得る。たとえば、サブ整数ピクセル位置の値を計算するために双一次補間が使用され得る。ビデオエンコーダ２０は、ＰＵのルミナンスデータに関して動き探索を実行して、ＰＵのルミナンスデータを使用して動きベクトルを計算するように構成され得る。ビデオエンコーダ２０は、次いで、ＰＵのクロミナンスデータを符号化するために動きベクトルを再利用し得る。一般に、クロミナンスデータは、対応するルミナンスデータよりも低い解像度、たとえば、ルミナンスデータの１／４の解像度を有する。したがって、クロミナンスデータの動きベクトルは、ルミナンスデータの動きベクトルよりも高い精度を有し得る。たとえば、ルミナンスデータの１／４ピクセル精度動きベクトルは、クロミナンスデータに対して１／８ピクセル精度を有し得る。同様に、ルミナンスデータの１／８ピクセル精度動きベクトルは、クロミナンスデータに対して１／１６ピクセル精度を有し得る。
【００４０】
[0056]予測データと残差データとを生成するためのイントラ予測コーディングまたはインター予測コーディングの後に、および変換係数を生成するための（Ｈ．２６４／ＡＶＣにおいて使用される４×４または８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深度を低減し得る。たとえば、ｎビットの値は、量子化の間にｍビットの値に端数を丸められてよく、ここで、ｎはｍよりも大きい。
【００４１】
[0057]量子化の後に、たとえば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ：content adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context adaptive binary arithmetic coding）、または別のエントロピーコーディング方法に従って、量子化データのエントロピーコーディングが実行され得る。エントロピーコーディング用に構成された処理ユニット、または別の処理ユニットは、量子化係数のゼロランレングスコーディング、および／またはコード化ブロックパターン（ＣＢＰ：coded block pattern）値、マクロブロックタイプ、コーディングモード、ＬＣＵサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
【００４２】
[0058]宛先デバイス１４のビデオデコーダ３０は、本開示のビデオエンコーダ２０の技法のいずれかまたはすべてと同様の、概して対称的な技法を実行するように構成され得る。たとえば、ビデオデコーダ３０は、ＣＵのＰＵの動きベクトルのサブピクセル精度の指示が符号化されたコンテキストを定義する情報を受信するように構成され得る。ビデオエンコーダ２０は、ＣＵとＰＵとを含むＬＣＵのための４分木におけるコンテキスト情報を与え得、ビデオデコーダ３０は、そのコンテキスト情報を受信し得る。コンテキスト情報は、ＣＵおよび／またはＰＵについてのサイズ情報、たとえば、ＣＵの深さ、ＰＵのサイズ、および／またはＰＵのタイプに対応し得る。ビデオデコーダ３０は、たとえば、動きベクトルが１／４ピクセル精度を有するのか１／８ピクセル精度を有するのかを決定するために、コンテキスト情報を使用して、動きベクトルのサブピクセル精度の指示を復号し得る。たとえば、ビデオデコーダ３０は、動きベクトルのサブピクセル精度の指示をエントロピー復号するために、コンテキスト情報を使用して逆エントロピーコーディングプロセスを実行し得る。
【００４３】
[0059]ビデオエンコーダ２０およびビデオデコーダ３０は各々、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、種々の好適なエンコーダまたはデコーダ回路のいずれかとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれもが複合ビデオエンコーダ／デコーダ（コーデック）の一部として組み込まれ得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／または携帯電話などのワイヤレス通信デバイスを備える場合がある。
【００４４】
[0060]図２は、適応動きベクトル解像度をサポートするための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ＬＣＵとＣＵとＰＵとを含むビデオフレーム内のブロックのイントラ予測およびインター予測を実行し、ＴＵとして符号化され得る残差値を計算し得る。イントラコーディングは、空間的予測に依拠して、所与のビデオフレーム内のビデオにおける空間的冗長性を低減または除去する。インターコーディングは、時間的予測に依拠して、ビデオシーケンスの隣接するフレーム内のビデオにおける時間的冗長性を低減または除去する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指す場合があり、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指す場合がある。動き推定ユニット４２および動き補償ユニット４４はインター予測コーディングを実行し得、イントラ予測ユニット４６はイントラ予測コーディングを実行し得る。
【００４５】
[0061]図２に示されているように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、ビデオデータメモリ３８と、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、復号ピクチャバッファ６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構築されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングするための、デブロッキングフィルタ（図２に示されず）も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器６２の出力をフィルタ処理することになる。
【００４６】
[0062]ビデオデータメモリ３８は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ３８内に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。復号ピクチャバッファ６４は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３８および復号ピクチャバッファ６４は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３８および復号ピクチャバッファ６４は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ３８は、ビデオエンコーダ２０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【００４７】
[0063]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受け取る。フレームまたはスライスは、複数のビデオブロック（たとえば、ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、１つまたは複数の参照フレーム内の１つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行して、時間圧縮を実現する。イントラ予測ユニット４６は、空間圧縮を行うためにコード化されるブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する受信したビデオブロックのイントラ予測コーディングを実行し得る。
【００４８】
[0064]モード選択ユニット４０は、たとえば、誤差結果に基づいてコーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し、得られたイントラコーディングまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器５０に与え、参照フレームとして使用するための符号化されたブロックを再構成するために加算器６２に与え得る。モード選択ユニット４０がブロックのためにインターモード符号化を選択すると、解像度選択ユニット４８はそのブロックの動きベクトルの解像度を選択し得る。たとえば、解像度選択ユニット４８は、そのブロックの動きベクトルのために１／８ピクセル精度または１／４ピクセル精度を選択し得る。
【００４９】
[0065]一例として、解像度選択ユニット４８は、ブロックを符号化するために１／４ピクセル精度動きベクトルを使用することと、ブロックを符号化するために１／８ピクセル精度動きベクトルを使用することとの間の誤差差分を比較するように構成され得る。動き推定ユニット４２は、第１のコーディングパスにおいて１つまたは複数の１／４ピクセル精度動きベクトルを使用してブロックを符号化することと、第２のコーディングパスにおいて１つまたは複数の１／８ピクセル精度動きベクトルを使用してブロックを符号化することとを行うように構成され得る。動き推定ユニット４２は、さらに、第３の符号化パスにおいてブロックに対して１つまたは複数の１／４ピクセル精度動きベクトルと１つまたは複数の１／８ピクセル精度動きベクトルとの様々な組合せを使用し得る。解像度選択ユニット４８は、ブロックの各符号化パスのレートひずみ値を計算し、レートひずみ値間の差分を計算し得る。
【００５０】
[0066]差分がしきい値を超えると、解像度選択ユニット４８は、ブロックを符号化するために１／８ピクセル精度動きベクトルを選択し得る。解像度選択ユニット４８はまた、インターモード予測プロセス中にブロックを符号化するとき、動きベクトルに対して１／８ピクセル精度を使用すべきかまたは１／４ピクセル精度を使用すべきかを決定するために、レートひずみ情報を評価し、ビットバジェット（bit budget）を分析し、および／または他のファクタを分析し得る。インターモード符号化されるべきブロックに対して１／８ピクセル精度または１／４ピクセル精度を選択した後、モード選択ユニット４０または動き推定は、動きベクトルの選択された精度を示しているメッセージ（たとえば、信号）を動き推定ユニット４２に送り得る。
【００５１】
[0067]動き推定ユニット４２および動き補償ユニット４４は、高度に統合され得るが、概念上の目的から別々に示されている。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、たとえば、現在のフレーム（または、他のコード化ユニット）内のコード化されている現在ブロックに対する予測参照フレーム（または、他のコード化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００５２】
[0068]動き推定ユニット４２は、復号ピクチャバッファ６４においてビデオブロックを参照フレームのビデオブロックと比較することによって、インターコード化フレームのビデオブロックについての動きベクトルを計算する。動き補償ユニット４４はまた、参照フレーム、たとえば、ＩフレームまたはＰフレームのサブ整数ピクセルを補間し得る。例として、ＩＴＵ  Ｈ．２６４規格は、２つのリスト、すなわち、符号化されている現在のフレームよりも前の表示順序を有する参照フレームを含むリスト０と、符号化されている現在のフレームよりも後の表示順序を有する参照フレームを含むリスト１とを記述する。したがって、復号ピクチャバッファ６４に記憶されるデータは、これらのリストに従って編成され得る。
【００５３】
[0069]本開示の技法によれば、動き補償ユニット４４は、ＣＵのルミナンスデータの動きベクトルが１／８ピクセル精度を有するときに、ＣＵのクロミナンスデータの１／１６ピクセル位置の値を補間するように構成され得る。クロミナンスデータの１／１６ピクセル位置の値を補間するために、動き補償ユニット４４は双一次補間を利用し得る。したがって、加算器５０は、参照ブロックの１／１６ピクセル位置の双一次補間値に対するＣＵのクロミナンスデータの残差を計算し得る。このようにして、ビデオエンコーダ２０は、コーディングユニットのルミナンスデータが、ルミナンスデータに対して１／８ピクセル精度を有する動きベクトルを使用して符号化されたとき、双一次補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６ピクセル位置の値を計算し、参照ブロックの双一次補間値に基づいてコーディングユニットのクロミナンスデータを符号化し得る。
【００５４】
[0070]動き推定ユニット４２は、復号ピクチャバッファ６４からの１つまたは複数の参照フレームのブロックを現在のフレーム、たとえば、ＰフレームまたはＢフレームの符号化されるべきブロックと比較する。復号ピクチャバッファ６４内の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット４２および／または動き補償ユニット４４はまた、サブ整数ピクセル位置の値が復号ピクチャバッファ６４に記憶されていない場合、復号ピクチャバッファ６４に記憶された参照フレームのサブ整数ピクセル位置の値を計算するように構成され得る。動き推定ユニット４２は、計算された動きベクトルを、エントロピー符号化ユニット５６および動き補償ユニット４４に送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。
【００５５】
[0071]ビデオエンコーダ２０の動き推定ユニット４２、動き補償ユニット４４、モード選択ユニット４０、または別のユニットはまた、ブロックを符号化するために使用される動きベクトルについての１／４ピクセル精度の使用かまたは１／８ピクセル精度の使用かをシグナリングし得る。たとえば、動き推定ユニット４２は、動きベクトルのサブ整数ピクセル精度の指示をエントロピー符号化ユニット５６に送り得る。動き推定ユニット４２はまた、動きベクトルに対応するＰＵについてのサイズ情報に関係するコンテキスト情報をエントロピー符号化ユニット５６に与え得、サイズ情報は、ＰＵを含むＣＵの深さ、ＰＵのサイズ、および／またはＰＵのタイプのいずれかまたはすべてを含み得る。
【００５６】
[0072]動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。変換ユニット５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。
【００５７】
[0073]変換ユニット５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も使用され得る。いずれの場合も、変換ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化処理は、係数の一部またはすべてに関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって、変更され得る。
【００５８】
[0074]量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、または別のエントロピー符号化技法を実行することができる。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化ビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合、コンテキストは隣接マクロブロックに基づく場合がある。
【００５９】
[0075]場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、マクロブロックおよびパーティションのＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを実行し得る。特に、エントロピー符号化ユニット５６は、マクロブロックまたはパーティション中の変換係数を走査するためにジグザグ走査または他の走査パターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット５６はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。
【００６０】
[0076]本開示の技法によれば、サブピクセル精度が導出されるのではなくシグナリングされる場合では、エントロピー符号化ユニット５６は、たとえば、動きベクトルが整数ピクセル精度を有するのか、１／４ピクセル精度もしくは１／８ピクセル精度（または、様々な例において他のサブピクセル精度）などのサブピクセル精度を有するのかを示すための、動きベクトルのサブピクセル精度の指示を符号化するように構成され得る。エントロピー符号化ユニット５６は、ＣＡＢＡＣを使用して指示を符号化し得る。さらに、エントロピー符号化ユニット５６は、動きベクトルに対応するＰＵについてのサイズ情報を示す、ＣＡＢＡＣを実行するためのコンテキスト情報を使用して指示を符号化し得、サイズ情報は、ＰＵを含むＣＵの深さ、ＰＵのサイズ、および／またはＰＵのタイプのいずれかまたはすべてを含み得る。
【００６１】
[0077]ビデオエンコーダ２０は、次いで、動きベクトルを予測的にシグナリングし得る。ビデオエンコーダ２０によって実装され得る予測的なシグナリング技法の２つの例が、高度動きベクトル予測（ＡＭＶＰ）とマージモードシグナリングとを含む。ＡＭＶＰでは、ビデオエンコーダ２０とビデオデコーダ３０の両方が、すでにコード化されたブロックから決定された動きベクトルに基づいて、候補リストを収集する。ビデオエンコーダ２０は次いで、動きベクトル予測子（ＭＶＰ）を識別するためにインデックスを候補リストの中にシグナリングし、動きベクトル差分（ＭＶＤ）をシグナリングする。ビデオデコーダ３０は、ＭＶＤによって修正されたＭＶＰを使用して、たとえばＭＶＰ＋ＭＶＤに等しい動きベクトルを使用して、ブロックをインター予測する。
【００６２】
[0078]マージモードでは、ビデオエンコーダ２０とビデオデコーダ３０の両方が、すでにコード化されたブロックに基づいて候補リストを収集し、ビデオエンコーダ２０は、候補リスト内の候補のうちの１つに対してインデックスをシグナリングする。マージモードでは、ビデオデコーダ３０は、シグナリングされた参照ピクチャインデックスおよび候補の動きベクトルを使用して、現在ブロックをインター予測する。ＡＭＶＰおよびマージモードでは、ビデオエンコーダ２０とビデオデコーダ３０は、ブロックを符号化する方法を決定するときにビデオエンコーダ２０によって使用されるリストが、ブロックを復号する方法を決定するときにビデオデコーダ３０によって使用されるリストと一致するように、同じリスト構築技法を利用する。
【００６３】
[0079]逆量子化ユニット５８および逆変換ユニット６０は、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化と逆変換とを適用する。動き補償ユニット４４は、復号ピクチャバッファ６４のフレームのうちの１つの予測ブロックに残差ブロックを加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定での使用のためにサブ整数ピクセル値を計算するために、１つまたは複数の補間フィルタを再構築された残差ブロックに適用し得る。加算器６２は、復号ピクチャバッファ６４内に記憶するための再構成されたビデオブロックを生成するために、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償された予測ブロックに加算する。再構成されたビデオブロックは、後続ビデオフレーム中のブロックをインターコーディングするための参照ブロックとして、動き推定ユニット４２と動き補償ユニット４４とによって使用され得る。
【００６４】
[0080]図３は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、復号ピクチャバッファ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実施し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。
【００６５】
[0081]ビデオデータメモリ６８は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ６８に記憶されるビデオデータは、たとえば、コンピュータ可読媒体１６から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ６８は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する、コード化ピクチャバッファ（ＣＰＢ）を形成し得る。復号ピクチャバッファ８２は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ６８および復号ピクチャバッファ８２は、同期ＤＲＡＭ（ＳＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ６８および復号ピクチャバッファ８２は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ６８は、ビデオデコーダ３０の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【００６６】
[0082]エントロピー復号ユニット７０は、たとえばビデオデータメモリ６８から、符号化されたビットストリームを取り出し得る。符号化されたビットストリームはエントロピーコード化ビデオデータを含み得る。エントロピー復号ユニット７０は、エントロピーコーディングされたビデオデータを復号し得、そのエントロピー復号されたビデオデータから、動き補償ユニット７２は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含めて、動き情報を決定し得る。動き補償ユニット７２は、たとえば、上で説明したＡＭＶＰおよびマージモード技法を実施することによって、そのような情報を決定し得る。
【００６７】
[0083]動き補償ユニット７２は、ビットストリーム中で受信した動きベクトルを使用して、参照ピクチャメモリ８２中の参照フレーム中の予測ブロックを識別し得る。イントラ予測ユニット７４は、ビットストリーム内で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成することができる。逆量子化ユニット７６は、ビットストリーム内で与えられ、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、マクロブロックごとにエンコーダ20によって計算される量子化パラメータＱＰYの使用を含み得る。
【００６８】
[0084]逆変換ユニット５８は、ピクセル領域で残差ブロックを作るために、変換係数に逆変換、たとえば逆ＤＣＴ、逆整数変換、または概念的に類似する逆変換プロセスを適用する。動き補償ユニット７２は、動き補償されたブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度を有する動き推定に使用されるべき補間フィルタ用の識別子は、シンタックス要素に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。本開示の技法によれば、動き補償ユニット７２は、動きベクトルがルミナンスデータに対して１／８ピクセル精度を有するときに、参照ブロックのクロミナンスデータの１／１６ピクセル位置の値を補間し得る。たとえば、動き補償ユニット７２は、双一次補間を使用して、参照ブロックの１／１６ピクセル位置の値を補間し得る。
【００６９】
[0085]動き補償ユニット７２は、シンタックス情報のいくつかを使用して、符号化されたビデオシーケンスの（１つまたは複数の）フレームおよび／または（１つまたは複数の）スライスを符号化するために使用されたＬＣＵおよびＣＵのサイズと、符号化されたビデオシーケンスのフレームの各マクロブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ＣＵのための１つまたは複数の参照フレーム（および参照フレームリスト）と、符号化されたビデオシーケンスを復号するための他の情報とを決定する。
【００７０】
[0086]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニットによって生成された対応する予測ブロックと加算して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために復号されたブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。復号されたビデオブロックは、次いで、復号ピクチャバッファ８２に記憶され、復号ピクチャバッファ８２は、参照ブロックを後続の動き補償のために与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号されたビデオを生成する。
【００７１】
[0087]図４は、フルピクセル位置に対する分数ピクセル位置を示す概念図である。特に、図４は、フルピクセル（ペル）１００に対する分数ピクセル位置を示している。フルピクセル１００は、１／２ピクセル位置１０２Ａ〜１０２Ｃ（１／２ペル１０２）と、１／４ピクセル位置１０４Ａ〜１０４Ｌ（１／４ペル１０４）と、１／８ピクセル位置１０６Ａ〜１０６ＡＶ（１／８ペル１０６）とに対応する。
【００７２】
[0088]図４は、ブロックの１／８ピクセル位置１０６が随意に含まれ得ることを示すために、破線の輪郭を使用してこれらの位置を示している。すなわち、動きベクトルが１／８ピクセル精度を有する場合、動きベクトルは、フルピクセル位置１００、１／２ピクセル位置１０２、１／４ピクセル位置１０４、または１／８ピクセル位置１０６のいずれかをポイントし得る。しかしながら、動きベクトルが１／４ピクセル精度を有する場合、動きベクトルは、フルピクセル位置１００、１／２ピクセル位置１０２、または１／４ピクセル位置１０４のいずれかをポイントし得るが、１／８ピクセル位置１０６はポイントしないであろう。さらに、他の例では、他の精度、たとえば、１／１６ピクセル精度、１／３２ピクセル精度などが使用され得ることを理解されたい。
【００７３】
[0089]フルピクセル位置１００におけるピクセルの値は、対応する参照フレーム中に含まれ得る。すなわち、フルピクセル位置１００におけるピクセルの値は、概して、たとえば、参照フレームが表示されるときに最終的にレンダリングされ、表示される参照フレーム中のピクセルの実効値に対応する。（分数ピクセル位置と総称される）１／２ピクセル位置１０２、１／４ピクセル位置１０４、および１／８ピクセル位置１０６の値は、適応補間フィルタまたは固定補間フィルタ、たとえば、様々なウィーナーフィルタ（Wiener filter）、双一次フィルタ、または他のフィルタなど、様々な数の「タップ」（係数）のフィルタを使用して補間され得る。概して、分数ピクセル位置の値は、隣接するフルピクセル位置または前に決定された分数ピクセル位置の値に対応する１つまたは複数の隣接ピクセルから補間され得る。
【００７４】
[0090]本開示の技法によれば、ビデオエンコーダ２０などのビデオエンコーダは、たとえば、整数ピクセル精度または１／８ピクセル精度および１／４ピクセル精度などの分数ピクセル精度の間で、動きベクトルの精度を適応的に選択し得る。ビデオエンコーダ２０は、各動きベクトル、各ＣＵ、各ＬＣＵ、各スライス、各フレーム、各ＧＯＰ、またはビデオデータの他のコード化ユニットについてこの選択を行い得る。ビデオエンコーダ２０が動きベクトルに対して１／４ピクセル精度を選択するとき、動きベクトルは、フルピクセル位置１００、１／２ピクセル位置１０２、または１／４ピクセル位置１０４のいずれかを参照し得る。ビデオエンコーダ２０が動きベクトルに対して１／８ピクセル精度を選択するとき、動きベクトルは、フルピクセル位置１００、１／２ピクセル位置１０２、１／４ピクセル位置１０４、または１／８ピクセル位置１０６のいずれかを参照し得る。
【００７５】
[0091]図５Ａ〜図５Ｃは、対応するクロミナンスピクセル位置およびルミナンスピクセル位置を示す概念図である。図５Ａ〜図５Ｃはまた、ルミナンスデータについて計算された動きベクトルがどのようにクロミナンスデータのために再利用され得るかを示している。前置きとして、図５Ａ〜図５Ｃはピクセル位置の部分行を示している。実際には、フルピクセル位置は、図４に示したものなど、関連する分数ピクセル位置の矩形格子を有し得ることを理解されたい。図５Ａ〜図５Ｃの例は、本開示において説明する概念を示すものであり、分数クロミナンスピクセル位置と分数ルミナンスピクセル位置との間の対応の網羅的なリストとして意図されていない。
【００７６】
[0092]図５Ａ〜図５Ｃは、フルルミナンスピクセル位置１１０と、１／２ルミナンスピクセル位置１１６と、１／４ピクセル位置１１２と、１／８ルミナンスピクセル位置１１４Ａ、１１４Ｂとを含む、ルミナンスブロックのピクセル位置を示している。図５Ａ〜図５Ｃはまた、フルクロミナンスピクセル位置１２０と、１／４クロミナンスピクセル位置１２２と、１／８クロミナンスピクセル位置１２４と、１／１６クロミナンスピクセル位置１２６Ａ、１２６Ｂとを含む、クロミナンスブロックの対応するピクセル位置を示している。この例では、フルクロミナンスピクセル１２０はフルルミナンスピクセル１１０に対応する。さらに、この例では、クロミナンスブロックは、ルミナンスブロックに対して、水平および垂直に２分の１にダウンサンプリングされる。したがって、１／４クロミナンスピクセル１２２は１／２ルミナンスピクセル１１６に対応する。同様に、１／８クロミナンスピクセル１２４は１／４ルミナンスピクセル１１２に対応し、１／１６クロミナンスピクセル１２６Ａは１／８ルミナンスピクセル１１４Ａに対応し、１／１６クロミナンスピクセル１２６Ｂは１／８ルミナンスピクセル１１４Ｂに対応する。
【００７７】
[0093]Ｈ．２６４／ＡＶＣ、ＨＥＶＣ、ならびに潜在的にはＨ．２６４およびＨＥＶＣに対する後継コードなど、高度なビデオコードでは、動きベクトルをシグナリングするビットコストが増加し得る。このビットコストを低下させるために、デコーダサイドＭＶ導出（ＤＭＶＤ）が使用され得る。Ｓ．Ｋａｍｐ  Ａｎｄ  Ｍ．Ｗｉｅｎ、「Ｄｅｃｏｄｅｒ−ｓｉｄｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｄｅｒｉｖａｔｉｏｎ  ｆｏｒ  ｂｌｏｃｋ−ｂａｓｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈｎｏｌｏｇｙ、ｖｏｌ．２２、ｐｐ．１７３２−１７４５、Ｄｅｃ．２０１２には、Ｌ字形状のテンプレートマッチングに基づいたＤＭＶＤが提案されている。
【００７８】
[0094]図６は、ＤＭＶＤのための例示的なＬ字形状テンプレートマッチングの図である。図６の例では、現在ピクチャ１３４の現在ブロック１３２は、テンプレートマッチングを使用してインター予測されている。テンプレート１３６は、現在ブロック１３２のうちの復号済みの隣接ブロックをカバーする形状を規定する。ビデオデコーダ（たとえばビデオデコーダ３０）は、たとえば、まず、テンプレート１３６によってカバーされる復号済みの隣接ブロックに含まれるピクセル値を、参照ピクチャ１４０の参照ピクチャに位置するブロックをカバーする、コロケートされたテンプレート１３８によってカバーされる復号済みの隣接ブロックに含まれるピクセル値と、比較し得る。ビデオデコーダは次いで、参照ピクチャ内の他のロケーションへテンプレートを移動させ、テンプレートによってカバーされるピクセル値を、テンプレート１３６によってカバーされる復号済みの隣接ブロックに含まれるピクセル値と、比較し得る。
【００７９】
[0095]これらの多重比較に基づいて、ビデオデコーダは、図６の例に示される最良マッチ１４２などの最良マッチを決定し得る。ビデオデコーダは次いで、最良マッチとコロケートされたテンプレートとの間の変位を決定し得る。この変位（たとえば、図６の変位１４４）は、現在ブロック１３２を予測するために使用される動きベクトルに対応する。
【００８０】
[0096]図６に示すように、ブロックがＤＭＶＤモードでコーディングされるとき、ブロックのＭＶは、ビデオデコーダ３０へ直接シグナリングされるのとは対照的に、ビデオデコーダ３０によって探索される。テンプレートマッチングによる最小のひずみにつながるＭＶは、ブロックの最終ＭＶとして選択される。高いコーディング効率を保つためには、デコーダ３０が候補動きベクトルを、現在ブロックを復号するためのＭＶとして選択するために一定数のテンプレートマッチが必要となり得、それによって復号の複雑さが増大し得る。
【００８１】
[0097]ＤＭＶＤにおける復号の複雑さを低減するために、ミラーベースの双方向性ＭＶ導出法が、Ｙ．−Ｊ．Ｃｈｉｕ、Ｌ．Ｘｕ、Ｗ．Ｚｈａｎｇ、Ｈ．Ｊｉａｎｇ、「ＤＥＣＯＤＥＲ−ＳＩＤＥ  ＭＯＴＩＯＮ  ＥＳＴＩＭＡＴＩＯＮ  ＡＮＤ  ＷＩＥＮＥＲ  ＦＩＬＴＥＲ  ＦＯＲ  ＨＥＶＣ」、ＶＣＩＰ  ｗｏｒｋｓｈｏｐ  ２０１３、Ｍａｌａｙｓｉａ、１７−２０  Ｎｏｖ．、２０１３において提案されていた。
【００８２】
[0098]図７は、例示的なミラーベースの双方向ＭＶ導出を示す概念図である。図７に示すように、ミラーベースの双方向性ＭＶ導出は、デコーダサイドで分数サンプル確度にて、探索中心の周りの中心対称動き推定によって適用され得る。探索ウィンドウのサイズ／ロケーションは、あらかじめ規定され、ビットストリームにおいてシグナリングされ得る。図７では、ｄＭＶは、ＭＶペア、つまりＭＶ０とＭＶ１を生成するために、ＰＭＶ０に加算され、ＰＭＶ１から減算されるオフセットである。探索ウィンドウ内部のｄＭＶの値はすべてチェックされ得、Ｌ０参照とＬ１参照ブロックとの間の絶対差分和（ＳＡＤ）が、中心対称動き推定の測定値として使用され得る。最小のＳＡＤを有するＭＶペアが、ブロックの最終ＭＶとして選択され得る。
【００８３】
[0099]適応動きベクトル解像度に対し、サブピクセル動き補償は通常、整数ピクセル動き補償よりもはるかに効率的となり得る。超高周波を有するテクスチャまたはスクリーンコンテンツなど、いくつかのコンテンツに対しては、しかしながら、サブピクセル動き補償は、より優れたパフォーマンスを有し得ず、または場合によっては、さらに悪いパフォーマンスを有し得る。そのような場合、整数ピクセル精度を有するＭＶのみを有することが、より良好となり得る。
【００８４】
[0100]Ｌ．Ｇｕｏ、Ｐ．Ｙｉｎ、Ｙ．Ｚｈｅｎｇ、Ｘ．Ｌｕ、Ｑ．Ｘｕ、Ｊ．  Ｓｏｌｅ「Ａｄａｐｔｉｖｅ  ｍｏｔｉｏｎ  ｖｅｃｔｏｒ  ｒｅｓｏｌｕｔｉｏｎ  ｗｉｔｈ  ｉｍｐｌｉｃｉｔ  ｓｉｇｎａｌｉｎｇ」ＣＩＰ  ２０１０：２０５７−２０６０に記載されているように、適応ＭＶ解像度が、再構成された残差に基づいて提案されている。再構成された残差ブロックの変動がしきい値を超えたとき、１／４ピクセル動きベクトル精度が使用される。他の場合、１／２ピクセル動きベクトル精度が適用される。Ｊ．Ａｎ、Ｘ．Ｌｉ、Ｘ．Ｇｕｏ、Ｓ．Ｌｅｉ、「Ｐｒｏｇｒｅｓｓｉｖｅ  ＭＶ  Ｒｅｓｏｌｕｔｉｏｎ」、ＪＣＴＶＣ−Ｆ１２５、Ｔｏｒｉｎｏ、Ｉｔａｌｙ、Ｊｕｌ．  ２０１１に記載されているように、ＭＶ解像度は、シグナリングされたＭＶ差分の大きさに基づいて適応的に決定される。Ｙ．Ｚｈｏｕ、Ｂ．Ｌｉ、Ｊ．Ｘｕ、Ｇ．Ｊ．Ｓｕｌｌｉｖａｎ、Ｂ．Ｌｉｎ、「Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒ  Ｒｅｓｏｌｕｔｉｏｎ  Ｃｏｎｔｒｏｌ  ｆｏｒ  Ｓｃｒｅｅｎ  Ｃｏｎｔｅｎｔ  Ｃｏｄｉｎｇ」、ＪＣＴＶＣ−Ｐ０２７７、Ｓａｎ  Ｊｏｓｅ、ＵＳ、Ｊａｎ．  ２０１４に記載されているように、動きベクトル予測情報がスライスレベルでシグナリングされる。
【００８５】
[0101]これまで、デコーダサイド動きベクトル精度導出法は、特にスクリーンコンテンツコーディングに対して、非常に効率的であるとは証明されていない。加えて、カメラ収集コンテンツ、スクリーンコンテンツ、および他のタイプのコンテンツを含めて、すべてのタイプのコンテンツに対して効率的であると証明されたデコーダサイド動きベクトル精度導出法は１つもない。加えて、適応的動きベクトル精度法はこれまで、スクリーンコンテンツコーディングには効率的ではないと証明されてきた。
【００８６】
[0102]本開示で説明する技法を実装するいくつかの例では、デコーダサイド動きベクトル精度導出法がスクリーンコンテンツに対して提案される。この例では、動きベクトル精度は、デコーダサイドでのテンプレートマッチングの結果に依存し得る。整数ピクセル位置のテンプレートマッチングの結果とその隣接サブピクセル位置のテンプレートマッチングの結果とが大いに異なるとき、関連する領域はスクリーンコンテンツとみなされ得、整数ピクセル精度を有するＭＶが使用されるべきである。他の場合、サブピクセル動きベクトル精度が使用される。「大いに異なる」を定義するために、１つまたは複数の固定型または適応型のしきい値が使用され得る。
【００８７】
[0103]ビデオデコーダ３０は、たとえば、テンプレートマッチングに基づいて動きベクトル精度を決定することによって、ビデオデータを復号し得る。そのような例では、ビデオデコーダ３０は、コーディングされている現在ブロックに対し、すでにコード化された隣接ブロックの整数ピクセル位置を識別し、その整数ピクセル位置のロケーションに基づいて、複数の整数ピクセル位置を決定するためにテンプレートを適用し得る。ビデオデコーダ３０はまた、複数のサブピクセル位置を決定するために、複数のサブピクセル位置にテンプレートを適用し得る。テンプレートは、たとえば形状を規定し得、ビデオデコーダ３０は、現在ブロックに対する形状のロケーションに基づいて、複数の整数ピクセル位置を位置特定することによって、複数の整数ピクセル位置を決定するためにテンプレートをビデオデータに適用し得る。同様に、ビデオデコーダ３０は、現在ブロックに対する形状のロケーションに基づいて、複数のサブピクセルピクセル位置を位置特定することによって、複数のサブピクセル位置を決定するためにテンプレートをビデオデータに適用し得る。
【００８８】
[0104]ビデオデコーダ３０は、複数の整数ピクセル位置の１つまたは複数のピクセル値を、複数のサブピクセル位置の１つまたは複数のピクセル値と比較し、その比較に基づいて、動きベクトルの動きベクトル精度を決定し得る。ビデオデコーダ３０は、動きベクトルを使用して現在ブロックを復号し得る。ビデオデコーダ３０は、たとえば、マージモード、ＡＭＶＰモード、または他のそのようなモードを使用して、動きベクトルを決定し得る。
【００８９】
[0105]ビデオデコーダ３０は、複数の整数ピクセル位置の１つまたは複数のピクセル値と複数のサブピクセル位置の１つまたは複数のピクセル値との間のピクセル値の差の大きさに対応する差分値を決定するために、複数の整数ピクセル位置の１つまたは複数のピクセル値を複数のサブピクセル位置の１つまたは複数のピクセル値と比較することによって、動きベクトルの動きベクトル精度を決定し得る。差分値がしきい値よりも大きいことに応答して、ビデオデコーダ３０は、動きベクトル精度が整数ピクセル精度であると決定する。差分値がしきい値よりも低いことに応答して、ビデオデコーダ３０は、動きベクトル精度がサブピクセル精度であると決定し得る。しきい値は、固定値、適応値、または何らかの他のタイプの値であり得る。複数の整数ピクセル位置の１つまたは複数のピクセル値を複数のサブピクセル位置の１つまたは複数のピクセル値と比較するために、ビデオデコーダ３０は、たとえば、複数の整数ピクセル位置の１つまたは複数のピクセル値と複数のサブピクセル位置の１つまたは複数のピクセル値との間の絶対差分和を決定し得る。
【００９０】
[0106]本開示の他の技法によれば、動きベクトル精度は、空間的に隣接するブロック、時間的に隣接するブロック、またはその両方のプロパティ（先鋭度、階調度、または変換がスキップされるかどうかなど）に依存し得る。動きベクトル精度情報は、デコーダサイドで導出され得る。代替または追加として、動きベクトル精度は、空間的に隣接するブロック、時間的に隣接するブロック、またはその両方の動きベクトル精度に依存し得る。
【００９１】
[0107]ビデオデコーダ３０は、たとえば、隣接ブロックのプロパティに基づいて動きベクトル精度を決定し得る。隣接ブロックは、たとえば、少なくとも１つの空間的に隣接するブロックおよび／または少なくとも１つの時間的に隣接するブロックを含み得る。コード化されている現在ブロックに対し、ビデオデコーダ３０は、１つまたは複数の隣接ブロックの位置を特定し、その１つまたは複数の隣接ブロックのプロパティを決定し得る。そのプロパティは、たとえば、１つまたは複数の隣接ブロックがスキップモードでコーディングされた場合、１つもしくは複数の隣接ブロックの先鋭度、１つもしくは複数の隣接ブロックの階調度、および／または１つもしくは複数の隣接ブロックの動きベクトル精度のうちの１つまたは複数であり得る。１つまたは複数の隣接ブロックのプロパティに基づいて、ビデオデコーダ３０は、動きベクトルに対して動きベクトル精度を決定し、その動きベクトルを使用して現在ブロックを復号し得る。ビデオデコーダ３０は、たとえば、どのプロパティを決定すべきかをシグナリングなしに（たとえばコンテキストに基づいて）決定し得るか、固定されたプロパティを常に決定し得るか、または、どのプロパティを決定すべきかの指示を受信し得る。
【００９２】
[0108]本開示の別の例示的な技法では、どのデコーダサイド動きベクトル精度法が使用されるかに関するインジケータが、ビットストリームにてシグナリングされ得る。たとえば、インジケータは、直接的にビットストリームにてシグナリングされるか、または、スライスタイプおよび時間レベルなど、ビットストリーム中にコード化された他の情報から導出され得る。
【００９３】
[0109]ビデオデコーダ３０は、たとえば、符号化されたビデオビットストリームにて、動きベクトル精度シグナリングタイプの指示を受信し、その動きベクトル精度シグナリングタイプに基づいて、ビデオデータのブロックに対する動きベクトル精度を決定し得る。ビデオデコーダ３０は、ビデオデータのブロックに対する参照ブロックの位置を特定するために、決定された動きベクトル精度の動きベクトルを使用し得る。動きベクトル精度シグナリングタイプは、たとえば、（１）上記で説明したテンプレートマッチングタイプ、（２）上記で説明した隣接ブロックプロパティベースタイプ、または（３）以下でより詳細に説明するようなダイレクトシグナリングタイプのうちの１つであり得る。
【００９４】
[0110]ビデオデコーダ３０は、たとえば、スライスヘッダ、ＳＰＳ、ＰＰＳ、または何らかの他のレベルでその指示を受信し得る。その指示は、たとえばスライスタイプであり得る。言い換えれば、ビデオデコーダ３０は、特定のスライスに対してスライスタイプを決定し得、また、そのスライスタイプに基づいて、そのスライスのブロックを復号するために使用する動きベクトル精度を決定し得る。その指示は、たとえばスライスの時間レベルであり得る。言い換えれば、ビデオデコーダ３０は、スライスに対して時間レベルを決定し得、また、そのスライスの時間レベルに基づいて、そのスライスのブロックを復号するために使用する動きベクトル精度を決定し得る。
【００９５】
[0111]別の例では、動きベクトル精度情報は、最大コーディングユニットＬＣＵレベル、ＣＵレベルまたはＰＵレベルなどで、ビットストリームにてシグナリングされ得る。言い換えれば、ビデオエンコーダ２０は、符号化されたビデオデータのビットストリームに含めるための１つまたは複数のシンタックス要素を生成し得、ビデオデコーダ３０は、ビデオデータの特定のブロックに対して動きベクトル精度を決定するためにそれらのシンタックス要素を構文解析し得る。あるＣＵが、整数精度ＭＶを有することを指示されるとき、このＣＵ内部のすべてのＰＵが整数動きベクトル精度を有する。
【００９６】
[0112]一例では、マージ／スキップモードに対し、ビデオデコーダ３０は、動き補償を実施するときのみ、動きベクトルを整数精度に丸め得る。丸められていないＭＶは、後のブロックのＭＶ予測のために保存され得る。たとえば、ビデオデコーダ３０は、第１のブロックのコーディングモードがマージモードまたはスキップモードであると決定し得、また第１のブロックの動きベクトル精度が整数ピクセル精度であると決定し得る。ビデオデコーダ３０は、少なくとも１つの分数精度動きベクトル候補を含む、第１のブロックのマージ候補リストを構築し得る。ビデオデコーダ３０は、第１のブロックを復号するために分数精度動きベクトル候補を選択し、整数ピクセル精度動きベクトルを決定するために分数精度動きベクトル候補を丸め得る。ビデオデコーダ３０は、整数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定し得る。
【００９７】
[0113]第２のブロック（たとえば、第１のブロックの情報に基づいてコード化されたブロック）に対し、ビデオデコーダ３０は、第２のブロックの候補リスト（たとえば、マージ候補リストまたはＡＭＶＰ候補リスト）に整数精度動きベクトル候補を加え得る。他の例では、しかしながら、ビデオデコーダ３０は、第２のブロックの候補リストに分数精度動きベクトル候補を加え得る。
【００９８】
[0114]非マージ／スキップインターモードに対し、ＭＶ予測子は整数精度に丸められ得、ＭＶＤは、丸められたＭＶが後のブロックのＭＶ予測のために保存され得るように、整数精度でシグナリングされ得る。代替的にまたは追加として、丸め前のＭＶは、後のブロックのＭＶ予測に保存され得る。一例では、この場合、丸めは動き補償のためにのみ実施され得る。代替的にまたは追加として、丸められたＭＶは、動き補償で使用され得、後のブロックのＭＶ予測のために保存され得る。
【００９９】
[0115]たとえば、ビデオデコーダ３０は、第１のブロックのコーディングモードがマージモード以外のものであると決定し得、また第１のブロックの動きベクトル精度が整数ピクセル精度であると決定し得る。ビデオデコーダ３０は、第１のブロックの分数精度ＭＶＰを決定し、第１のブロックの整数ピクセル精度ＭＶＰを決定するためにその分数精度ＭＶＰを丸め得る。ビデオデコーダ３０は、整数ピクセル精度である、第１のブロックのＭＶＤを決定し得る。ビデオデコーダ３０は、整数ピクセル精度ＭＶＰおよび分数精度ＭＶＤに基づいて、整数ピクセル精度動きベクトルを決定し得る。ビデオデコーダ３０は、整数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定し得る。
【０１００】
[0116]ビデオデコーダ３０は、たとえば、第１のブロックのＡＭＶＰ候補リストを構築することによって、第１のブロックの分数精度ＭＶＰを決定し得る。ＡＭＶＰ候補リストは、分数精度動きベクトル候補を含み得る。ビデオデコーダ３０は、第１のブロックの分数精度ＭＶＰとして、分数精度動きベクトル候補を選択し得る。ビデオデコーダ３０は、第１のブロックの情報を使用して予測されることになる、第２のブロックの候補リストに、分数精度動きベクトル候補を加え得る。
【０１０１】
[0117]代替または追加として、一例では、ＭＶＤ精度情報がシグナリングされ得、サブピクセル精度ＭＶが、いくつかの例では常に使用され得る。ＭＶＤ精度は、ＬＣＵレベルで、ＣＵレベルで、またはＰＵレベルでシグナリングされ得る。一例では、あるＰＵ（またはＣＵ）が、整数精度ＭＶＤを有することを指示されるとき、ＰＵ（またはこのＣＵ内部のすべてのＰＵ）が整数ＭＶＤ精度を有し得る。ＡＭＶＰコード化ＰＵに対し、ＰＵのＭＶＤは整数ピクセル精度を有し得るが、予測されたＭＶおよびＰＵのＭＶはサブピクセル精度を有し得る。したがって、整数精度ＭＶＤをサブピクセル精度ＭＶＰに加えることにより、結果として、サブピクセル動きベクトルが得られる。
【０１０２】
[0118]たとえば、ビデオデコーダ３０は、第１のブロックのＭＶＤ精度が整数ピクセル精度であると決定し得る。ビデオデコーダ３０は、少なくとも１つの分数精度動きベクトル候補を含む、第１のブロックのＭＶＰのマージ候補リスト（たとえば、ＡＭＶＰ候補リスト）を構築し得る。ビデオデコーダ３０は、その候補リストから分数精度動きベクトル候補を選択し、分数精度動きベクトル候補および整数ピクセル精度ＭＶＤに基づいて分数ピクセル精度動きベクトルを決定し得る。ビデオデコーダ３０は、分数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定し得る。
【０１０３】
[0119]別の例では、動きベクトル精度フラグが、ＬＣＵまたはＣＵに部分的に適用され得る。たとえば、ＣＵの整数精度フラグは、マージおよびスキップなどの既定のコーディングモードを用いて、または非２Ｎ×２Ｎ区分などの既定の区分を用いて、またはトランスフォームスキップまたは無残差などの特殊なコーディングツールを用いてコーディングされたＰＵには適用されない。
【０１０４】
[0120]たとえば、ビデオデコーダ３０は、ビデオデータに対してデフォルト動きベクトル精度を決定し、ビデオデータのＰＵが特殊モードでコーディングされていることに応答して、デフォルト動きベクトル精度の動きベクトルを使用してＰＵの参照ブロックの位置を特定し得る。特殊モードは、たとえば、スキップモード、２Ｎ×２Ｎマージモード、マージモード、トランスフォームスキップモード、または非対称区分化モードのうちの１つまたは複数であり得る。ビデオデータの第２のＰＵが特殊モード以外のモードを使用してコーディングされていることに応答して、ビデオデコーダ３０は、ビデオデータの第２のＰＵに対し、シグナリングされた動きベクトル精度を決定し、そのシグナリングされた動きベクトル精度の動きベクトルを使用して第２のＰＵの参照ブロックの位置を特定し得る。ビデオデコーダ３０は、ビデオデータのＣＵに対し、デフォルト動きベクトル精度とは異なる、シグナリングされた動きベクトル精度を決定し得る。ＣＵは、たとえば、ＰＵおよび／または第２のＰＵを含み得る。一例では、デフォルト動きベクトル精度は分数動きベクトル精度であるが、シグナリングされた動きベクトル精度は整数ピクセル精度であり得る。他の例では、デフォルト動きベクトル精度は分数動きベクトル精度であり得る。
【０１０５】
[0121]一例では、ＭＶ／ＭＶＤ精度情報は、非ゼロのＭＶＤを有するＰＵまたはＣＵに対してのみシグナリングされ得る。ＭＶ／ＭＶＤ精度情報がシグナリングされていないとき、サブピクセルＭＶがＰＵまたはＣＵに対して使用され得る。ＭＶ／ＭＶＤ精度情報は、ＰＵまたはＣＵのＭＶＤの後にシグナリングされ得る。ゼロに等しいＭＶＤは、ＭＶＤの垂直成分とＭＶＤの水平成分の両方が０に等しいことを意味するために使用され得る。
【０１０６】
[0122]たとえば、ビデオデータの現在ブロックに対し、ビデオデコーダ３０は、あるＭＶＤ値を受信し、そのＭＶＤ値がゼロに等しいことに応答して、現在ブロックの動きベクトルがサブピクセル動きベクトル精度を有すると決定し得る。ＭＶＤ値がゼロに等しいことは、ＭＶＤ値のｘ成分とＭＶＤ値のｙ成分の両方がゼロに等しいことを指示し得る。ビデオデータの第２の現在ブロックに対し、ビデオデコーダ３０は、第２のＭＶＤ値を受信し、その第２のＭＶＤ値が非ゼロ値であることに応答して、第２の現在ブロックに対する第２の動きベクトルの動きベクトル精度の指示を受信し得る。ビデオデコーダ３０は、参照ピクチャにおいて、第２の動きベクトルを使用して第２の現在ブロックの参照ブロックの位置を特定し得る。第２の現在ブロックに対し、ビデオデコーダ３０は、第２のＭＶＤ値を受信した後に、動きベクトル精度の指示を受信し得る。
【０１０７】
[0123]ＭＶ／ＭＶＤ精度情報がＰＵレベルでシグナリングされるとき、以下の条件、つまり、（１）ＰＵがマージ／スキップモードを用いてコーディングされていること、（２）ＰＵがＡＭＶＰモードを用いてコーディングされており、ＰＵの各予測方向におけるＭＶＤがゼロに等しいこと、または（３）代替もしくは追加として、１つのＣＵがイントラコーディングされたＰＵとインターコーディングされたＰＵとをともに含み得る（これはＨＥＶＣでは認められない）場合、またＰＵがイントラコーディングされているとき、ＰＵレベルでのＭＶ／ＭＶＤ精度情報のシグナリングがスキップされること、のうちの１つまたは複数（たとえばいずれか）が真である場合、ＭＶ／ＭＶＤ精度情報はシグナリングされないことがある。
【０１０８】
[0124]ビデオデコーダ３０は、たとえば、ビデオデータの第１のブロック（たとえば第１のＰＵ）に対し、第１の動きベクトル精度情報を受信し得る。ビデオデータの第２のブロックがある条件を満たすことに応答して、ビデオデコーダ３０は、デフォルト精度に対応するように第２の動きベクトル情報を決定し得る。一例では、その条件は、第２のブロックがマージモードまたはスキップモードを使用してコーディングされることであり得る。別の例では、その条件は、第２のブロックがＡＭＶＰモードを使用してコーディングされており、第２のブロックの各予測方向のＭＶＤがゼロに等しいことであり得る。デフォルト精度は、たとえば、いくつかの例では分数精度、他の例では整数精度であり得る。第１および第２の動きベクトル精度情報は、たとえば、動きベクトル精度またはＭＶＤ精度の一方または両方であり得る。
【０１０９】
[0125]ＭＶ／ＭＶＤ精度情報がＣＵレベルでシグナリングされるとき、ＣＵ内のすべてのＰＵに対して、以下の条件、つまり、（１）ＰＵがイントラコーディングされていること、（２）ＰＵがマージ／スキップモードを用いてコーディングされていること、または（３）ＰＵがＡＭＶＰモードを用いてコーディングされており、ＰＵの各予測方向におけるＭＶＤがゼロに等しいこと、のうちの１つ（場合によっては１つまたは複数）が真である場合、ＭＶ／ＭＶＤ精度情報はシグナリングされないことがある。代替または追加として、動きベクトル精度情報がシグナリングされないとき、整数動きベクトル精度などのデフォルト動きベクトル精度が、ＰＵまたはＣＵに対して使用され得る。
【０１１０】
[0126]ビデオデコーダ３０は、たとえば、ビデオデータの第１のＣＵに対し、第１の動きベクトル精度情報を受信し、またビデオデータの第２のＣＵがある条件を満たすことに応答して、デフォルト精度に対応するように第２の動きベクトル情報を決定し得る。その条件は、たとえば、ＣＵ内のすべてのＰＵがイントラコーディングされること、ＣＵ内のすべてのＰＵがマージモードまたはスキップモードを使用してコーディングされること、ＣＵ内のすべてのＰＵが、ゼロに等しいすべてのＰＵの各方向に、ＡＭＶＰおよびＭＶＤを使用してコーディングされることであり得る。デフォルト精度は、たとえば分数精度であってもよく、または精度なしであってもよい。たとえば、あるブロックがイントラ予測される場合、そのブロックは、関連付けられる動きベクトルを有さず、したがって関連付けられる動きベクトル精度を有さない。第１および第２の動きベクトル精度情報は、たとえば、動きベクトル精度またはＭＶＤ精度の一方または両方を含み得る。
【０１１１】
[0127]現在のＡＭＶＰコード化ＰＵが、整数ピクセル動きベクトル精度と同様にシグナリング／導出されるとき、空間的な隣接ブロック、時間的な隣接ブロック、またはそれら両方からの１つまたは複数の（いくつかの例ではすべての）ＭＶ候補が、ＡＭＶＰリストの生成プロセスにおける刈り込みの前に、整数ピクセル精度に丸められ得る。整数ピクセルＭＶが、現在のマージ、スキップコーディングされたＣＵ／ＰＵ、またはそれら両方に使用されるようにシグナリング／導出されるとき、空間的な隣接ブロック、時間的な隣接ブロック、またはそれら両方からの１つまたは複数の（いくつかの例ではすべての）ＭＶ候補が、マージリストの生成プロセスにおける刈り込みの前に、整数ピクセル精度に丸められ得る。
【０１１２】
[0128]たとえば、ビデオデコーダ３０は、ブロックの候補リスト（たとえば、マージ候補リストまたはＡＭＶＰ候補リスト）に含めるための１つまたは複数の動きベクトル候補を識別し得る。１つまたは複数の動きベクトル候補は、たとえば、１つもしくは複数の空間的な隣接候補および／または１つもしくは複数の時間的な隣接候補を含み得る。１つまたは複数の動きベクトル候補は、少なくとも１つの分数精度動きベクトル候補を含み得る。ブロックの動きベクトル精度が整数ピクセル精度であることに応答して、ビデオデコーダ３０は、１つまたは複数の整数精度動きベクトル候補を決定するために、その１つまたは動きベクトル候補を丸め得る。ビデオデコーダ３０は、１つまたは複数の整数精度動きベクトル候補に対して、刈り込み操作を実施し得る。
【０１１３】
[0129]一例では、動きベクトル精度フラグが、他のシンタックス要素のＣＡＢＡＣコンテキストとして使用され得るか、または条件付きで使用され得る。すなわち、動きベクトル精度フラグに応じた異なるコンテキストモデルが、特定のシンタックス要素をコーディングするために使用され得る。一例では、ＰＵなどのブロックのＡＭＶＰ候補インデックスをコーディングするとき、ＰＵもしくは関連するＣＵまたは空間的に隣接するブロックもしくは時間的に隣接するブロックの動きベクトル精度フラグが、ＣＡＢＡＣコーディングコンテキストとして使用される。代替または追加として、いくつかの例では、ＡＭＶＰ候補インデックスが０に等しくなる初期化された可能性は、動きベクトル精度フラグが整数ピクセル動きベクトル精度を指示するとき、１の付近に設定され得る。代替または追加として、Ｂスライスにおいてのみ、または、スライスが一定の時間レベルにあるとき、もしくは量子化パラメータが、あらかじめ定義されたしきい値よりも大きいときのみなど、いくつかの場合には、動きベクトル精度フラグは、ＡＭＶＰ候補インデックスなど、他のシンタックス要素のＣＡＢＡＣコンテキストとして使用され得る。
【０１１４】
[0130]これらの例のうちの１つまたは複数が組み合わされ得る。たとえば、実際には、例の任意の部分の任意の組合せが新たな例として使用され得る。加えて、上記の例の２次的な例が以下で説明されている。
【０１１５】
[0131]いくつかの例は、スクリーンコンテンツのデコーダサイド動きベクトル精度導出に関する。一例では、再構築されたサンプルに対するＬ字形状または他の形状のテンプレートマッチングが使用され得る。動きベクトル精度は、ＳＡＤなどの整数ピクセル位置のテンプレートマッチング結果と、その隣接サブピクセル位置のマッチング結果との差に基づき得る。たとえば、整数ピクセル位置のマッチング結果がはるかに小さいとき、整数ピクセル精度が適用される。他の場合、サブピクセル精度が適用される。「はるかに小さい」を定義するために、しきい値が使用され得る。実際には、固定されたしきい値、適応的なしきい値、またはそれら両方が使用され得る。適応的なしきい値について言えば、適応的なしきい値は、ビットストリームにおいてシグナリングされるか、または、ビットストリームにおいてシグナリングされた、ブロックタイプもしくはＱＰなどの他の情報に基づいて導出され得る。加えて、「はるかに大きい」場合のしきい値もまた定義され得る。したがって、整数位置から隣接するサブピクセル位置のものを減じたマッチング結果が、「はるかに大きい」しきい値よりも大きいとき、１／４ピクセル精度が使用され得る。マッチングの差が、「はるかに小さい」のしきい値と「はるかに大きい」のしきい値との間にあるとき、１／２ピクセル精度が使用され得る。代替的にまたは追加として、ミラーベースの双方向性テンプレートマッチングなど、他のテンプレートマッチング法が、代わりに、上記の例で使用され得る。
【０１１６】
[0132]別の例では、動きベクトル精度情報は、階調度、先鋭度、または変換がブロックに対してスキップされるかどうかなど、空間的にまたは時間的に隣接するブロックのプロパティに基づいてデコーダサイドで導出され得る。しきい値情報は、ビットストリームにおいてシグナリングされるか、ビットストリームから導出されるか、またはそれら両方がなされ得る。
【０１１７】
[0133]いくつかの例はインジケータシグナリングに関係する。種々のコンテンツに適応的に適合するために、デコーダサイド動きベクトル精度導出（ＤＭＰＤ）の種々の方法の組合せが使用され得る。どの方法が使用されているかを指示するために、インジケータがビットストリームにおいてシグナリングされ得る。一例では、インジケータは、どのＤＭＰＤ法が使用されるかをデコーダに明示的に知らせるために、スライスレベル以上でシグナリングされ得る。別の例では、いくつかのＤＭＰＤ法の使用がビットストリームにおいてシグナリングされる一方で、他のＤＭＰＤ法の使用は、ビットストリームにおいて、スライスタイプおよびスライスの時間レベルなどの他の情報に基づいて導出される。
【０１１８】
[0134]いくつかの例は、シグナリングされる適応型動きベクトル精度に関する。そのような例では、動きベクトル精度は、ビットストリームにおいて、ＬＣＵ、ＣＵまたはＰＵレベルなどでシグナリングされ得る。整数精度、１／２ピクセル精度、１／４ピクセル精度、または他の精度など、動きベクトル精度を指示するために、フラグ／値が使用され得る。動きベクトル精度が、１つのブロックまたは１つのリージョン／スライスに対してシグナリングされるとき、このブロック／リージョン／スライス内のすべてのより小さなブロックは、同じ動きベクトル精度を共有し得る。さらに、ＭＶＤ情報がまた、シグナリングされた精度でシグナリングされ得る。動き補償の前に、ＭＶ（ＭＶ予測子＋ＭＶＤ）は、シグナリングされた精度に丸められ得る。その丸めは、正の無限大、負の無限大、ゼロ、または無限大（負値は負の無限大に丸められ、正値は正の無限大に丸められる）に向かい得る。代替的にまたは追加として、ＭＶ予測子は、最初は上述のように丸められ、次いでブロックのＭＶを形成し得る。動き補償の後、ブロックのＭＶは、後のブロックのＭＶ予測のために保存される。ＭＶを保存するとき、丸められたＭＶは、たとえば、その後に復号されるブロックのマージ候補またはＡＭＶＰ候補として後に使用されるように保存され得る。代替的にまたは追加として、丸められていないＭＶが、丸められた動きベクトルの代わりに保存され得、これにより、場合によっては動きフィールドがより正確に保たれ得る。
【０１１９】
[0135]別の例では、動きベクトル精度情報は、スキップモード、２Ｎ×２Ｎマージモード、またはそれら両方に対してシグナリングされない。そのような例では、動きベクトル精度情報はまた、マージされたＰＵに対してシグナリングされないこともある。代替または追加として、マージモードおよびスキップモードなどの特殊なコーディングモードで、または非対称パーティションなどの特殊なパーティションを用いて、または特殊なトランスフォーム深さを用いてもしくはトランスフォームスキップを用いてコーディングされているＰＵは、整数精度ＭＶがそれらのＣＵレベルでシグナリングされるときでも、１／４ペルなど、デフォルトの動きベクトル精度を保ち得る。代替または追加として、時間レベル、ＱＰ、ＣＵ深さなど、他のコーディングされた情報がまた、特殊なコーディングモードまたは特殊なコーディングツールとみなされ得る。
【０１２０】
[0136]ＣＡＢＡＣを用いて動きベクトル精度情報をエントロピーコーディングするとき、空間的に隣接するブロック／ＣＵ内にある動きベクトル精度情報以外のコンテキストは、ＣＵ深さ、ＰＵ区分化、ブロックサイズ、時間レベルなど、ラインバッファを保存するために使用され得る。
【０１２１】
[0137]図８は、本開示に記載される技法に従ってビデオデータを符号化するための例示的な方法を示すフローチャートである。図８の技法について、ビデオエンコーダ２０などのビデオエンコーダを参照しながら説明する。ビデオエンコーダ２０は、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定する（２０２）。ビデオエンコーダ２０は、第１のブロックのマージ候補リストを構築する（２０４）。マージ候補リストを構築することの一部として、ビデオエンコーダ２０は、分数精度動きベクトル候補をマージ候補リストに追加し得る。したがって、マージ候補リストは、分数精度動きベクトル候補を含み得る。ビデオエンコーダ２０は、第１のブロックを符号化するために分数精度動きベクトル候補を選択する（２０６）。マージモードを使用して第１のブロックをコーディングするため、ビデオエンコーダ２０は、第１のブロックの整数ピクセル精度動きベクトルを決定するために分数精度動きベクトル候補を丸める（２０８）。ビデオデコーダ２０は、整数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定する（２１０）。ビデオエンコーダ２０は、参照ブロックに基づいて第１のブロックを符号化する（２１２）。
【０１２２】
[0138]図９は、本開示に記載される技法に従ってビデオデータを復号するための例示的な方法を示すフローチャートである。図９の技法について、ビデオデコーダ３０などのビデオデコーダを参照しながら説明する。ビデオデコーダ３０は、第１のブロックのコーディングモードがマージモードであると決定する（２２０）。ビデオデコーダ３０は、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定する（２２２）。ビデオデコーダ３０は、第１のブロックのマージ候補リストを構築する（２２４）。ビデオデコーダ３０は、分数精度動きベクトル候補をマージ候補リストに追加することによって、マージ候補リストを構築する。ビデオデコーダ３０は、第１のブロックを復号するために分数精度動きベクトル候補を選択する（２２６）。分数精度動きベクトルを選択することに応答して、ビデオデコーダ３０は、第１のブロックの整数ピクセル精度動きベクトルを決定するために分数精度動きベクトル候補を丸める（２２８）。ビデオデコーダ３０は、整数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定する（２３０）。ビデオデコーダ３０は、参照ブロックに基づいて第１のブロックを復号する（２３２）。
【０１２３】
[0139]図１０は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１０の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。現在ピクチャでコーディングされている現在ブロックに対し、ビデオデコーダ３０は、すでにコーディングされている隣接ブロックの整数ピクセル位置を識別する（２３４）。整数ピクセル位置のロケーションに基づいて、ビデオデコーダ３０は、ピクチャにおける複数の整数ピクセル位置を決定するためにテンプレートを適用する（２３６）。ビデオデコーダ３０は、ピクチャにおける複数のサブピクセル位置を決定するために、複数のサブピクセル位置にテンプレートを適用する（２３８）。ビデオデコーダ３０は、複数の整数ピクセル位置の１つまたは複数のピクセル値を、複数のサブピクセル位置の１つまたは複数のピクセル値と比較する（２４０）。この比較に基づいて、ビデオデコーダ３０は、動きベクトルの動きベクトル精度を決定する（２４２）。ビデオデコーダ３０は、決定された動きベクトル精度を有する動きベクトルを使用して、現在ブロックをコーディングする（２４２）。
【０１２４】
[0140]図１１は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１１の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。コーディングされている現在ブロックに対し、ビデオデコーダ３０は、１つまたは複数の隣接ブロックの位置を特定する（２４６）。ビデオデコーダ３０は、１つまたは複数の隣接ブロックのプロパティを決定する（２４８）。この１つまたは複数の隣接ブロックのプロパティに基づいて、ビデオデコーダ３０は、動きベクトルの動きベクトル精度を決定する（２５０）。ビデオデコーダ３０は、決定された動きベクトル精度を有する動きベクトルを使用して、現在ブロックをコーディングする。
【０１２５】
[0141]図１２は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１２の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデコーダ３０は、第１のブロックのコーディングモードがマージモードであると決定する（２５４）。ビデオデコーダ３０は、第１のブロックの動きベクトル精度が整数ピクセル精度であると決定する（２５６）。ビデオデコーダ３０は第１のブロックのマージ候補リストを構築し、ここにおいて、マージ候補リストは分数精度動きベクトル候補を備える（２５８）。ビデオデコーダ３０は、第１のブロックを復号するために分数精度動きベクトル候補を選択する（２６０）。ビデオデコーダ３０は、整数ピクセル精度動きベクトルを決定するために分数精度動きベクトル候補を丸める（２６２）。ビデオデコーダ３０は、整数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定する。
【０１２６】
[0142]図１３は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１３の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデータの現在ブロックに対し、ビデオデコーダ３０は動きベクトル差分値を決定する（２６６）。動きベクトル差分値がゼロに等しいことに応答して、ビデオデコーダ３０は、現在ブロックの動きベクトルがサブピクセル動きベクトル精度を有すると決定する（２６８）。
【０１２７】
[0143]図１４は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１４の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデコーダ３０は、ビデオデータに対し、デフォルト動きベクトル精度を決定する（２７０）。ビデオデータのＰＵが特殊モードでコーディングされていることに応答して、ビデオデコーダ３０は、デフォルト動きベクトル精度の動きベクトルを使用してＰＵの参照ブロックの位置を特定する（２７２）。
【０１２８】
[0144]図１５は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１５の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデコーダ３０は、ブロックの候補リストに含めるための１つまたは複数の動きベクトル候補を識別し、ここにおいて、１つまたは複数の動きベクトル候補は、少なくとも１つの分数精度動きベクトル候補を備える（２７４）。ブロックの動きベクトル精度が整数ピクセル精度であることに応答して、ビデオデコーダ３０は、１つまたは複数の整数精度動きベクトル候補を決定するために、その１つまたは動きベクトル候補を丸める（２７６）。１つまたは複数の動きベクトル候補を丸めた後、ビデオデコーダ３０は、１つまたは複数の整数精度動きベクトル候補に対して刈り込み操作を実施する（２７８）。
【０１２９】
[0145]図１６は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１６の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデコーダ３０は、ビデオデータの第１のブロックおよびビデオデータの第２のブロックに対し、デフォルト精度を決定する（２８０）。ビデオデコーダ３０は、ビデオデータの第１のブロックに対し、第１の動きベクトル精度情報を決定する（２８２）。ビデオデータの第２のブロックがある条件を満たすことに応答して、デフォルト精度に対応するように第２の動きベクトル情報を決定すること（２８４）。第１および第２のブロックは、たとえば、第１および第２のＰＵまたは第１および第２のＣＵであり得る。
【０１３０】
[0146]図１７は、本開示に記載される技法に従ってビデオデータをコーディングするための例示的な方法を示すフローチャートである。図１７の技法について、ビデオデコーダ３０を参照しながら説明するが、これらの技法の多くはまた、ビデオエンコーダ２０などのビデオエンコーダによっても実施され得る。ビデオデコーダ３０は、第１のブロックの動きベクトル差分精度が整数ピクセル精度であると決定する（２８６）。ビデオデコーダ３０は第１のブロックの動きベクトル予測子の候補リストを構築し、ここにおいて、候補リストは分数精度動きベクトル候補を備える（２８８）。ビデオデコーダ３０は、候補リストから分数精度動きベクトル候補を選択する（２９０）。ビデオデコーダ３０は、分数精度動きベクトル候補および整数ピクセル精度動きベクトル差分に基づいて、分数ピクセル精度動きベクトルを決定する（２９２）。ビデオデコーダ３０は、分数ピクセル精度動きベクトルを使用して、第１のブロックの参照ブロックの位置を特定する（２９４）。
【０１３１】
[0147]説明を容易にするため、図８〜１７の技法は別々に提示されているが、説明された技法が互いに組み合わせて使用され得ることが企図される。加えて、いくつかの技法の一部分が、他の技法の一部分と組み合わせて使用され得ることが企図される。
【０１３２】
[0148]１つまたは複数の例では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実施され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の１つもしくは複数の命令またはコード上に記憶され、あるいはこれを介して伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従う、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実施のための命令、コードおよび／またはデータ構造を取り出すために、１つもしくは複数のコンピュータまたは１つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１３３】
[0149]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびｂｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
【０１３４】
[0150]命令は、１つもしくは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積回路またはディスクリート論理回路のような、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれかまたは本明細書で説明された技法の実装に適切な任意の他の構造を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され得る。また、本技法は、１つまたは複数の回路または論理素子において完全に実装され得る。
【０１３５】
[0151]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。様々なコンポーネント、モジュール、またはユニットは、開示されている技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。そうではなく、上で説明されたように、様々なユニットは、コーデックハードウェアユニット中で組み合わせられるか、または上で説明された１つまたは複数のプロセッサを含む、適切なソフトウェアおよび／またはファームウェアとともに相互動作可能なハードウェアユニットの集合体によって提供され得る。
【０１３６】
[0152]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
【図１】
2019080321.tif 000003
【図２】
2019080321.tif 000004
【図３】
2019080321.tif 000005
【図４】
2019080321.tif 000006
【図５Ａ】
2019080321.tif 000007
【図５Ｂ】
2019080321.tif 000008
【図５Ｃ】
2019080321.tif 000009
【図６】
2019080321.tif 000010
【図７】
2019080321.tif 000011
【図８】
2019080321.tif 000012
【図９】
2019080321.tif 000013
【図１０】
2019080321.tif 000014
【図１１】
2019080321.tif 000015
【図１２】
2019080321.tif 000016
【図１３】
2019080321.tif 000017
【図１４】
2019080321.tif 000018
【図１５】
2019080321.tif 000019
【図１６】
2019080321.tif 000020
【図１７】
2019080321.tif 000021
【手続補正書】
【提出日】平成31年1月8日(2019.1.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、前記方法は、
ビデオデータの第１のブロックのために、第１の動きベクトル差分値を決定することと、
前記第１の動きベクトル差分値がゼロに等しいことに応答して、前記第１のブロックの第１の動きベクトルがサブピクセル動きベクトル精度を有すると決定することと、
ビデオデータの第２のブロックのために、第２の動きベクトル差分値を決定することと、
前記第２の動きベクトル差分値が非ゼロ値であることに基づいて、および前記第２の動きベクトル差分値を決定した後に、前記第２のブロックの第２の動きベクトルの動きベクトル精度の指示を受信することと、
前記第２のブロックの参照ピクチャにおいて、前記第２の動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することと、
を備える、方法。
【請求項２】
前記第１のブロックの参照ピクチャにおいて、前記第１の動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記第１のブロックの前記参照ブロックと前記第２のブロックの前記参照ブロックとに基づいて、前記ビデオデータの１つまたは複数のピクチャを復号することと、前記１つまたは複数の復号されたピクチャを出力することと、
をさらに備える、請求項１に記載の方法。
【請求項３】
前記第２の動きベクトル差分値を決定することは、前記第２の動きベクトル差分値を受信することを備える、請求項１に記載の方法。
【請求項４】
前記第１の動きベクトル差分値がゼロに等しいことは、前記動きベクトル差分値のｘ成分がゼロに等しいことと、前記動きベクトル差分値のｙ成分がゼロに等しいこととを備える、請求項１に記載の方法。
【請求項５】
前記第１の動きベクトル差分値がゼロに等しいことに応答して、前記第１のブロックの前記第１の動きベクトルがサブピクセル動きベクトル精度を有すると決定することは、前記第１の動きベクトルの動きベクトル精度を示しているシグナリングを受信することなく、前記第１のブロックの前記第１の動きベクトルがサブピクセル動きベクトル精度を有していると決定することを備える、請求項１に記載の方法。
【請求項６】
前記第２の動きベクトルの動きベクトル精度の前記指示は、１つまたは複数のシンタックス要素を備え、前記１つまたは複数のシンタックス要素は、前記第２のブロックのブロックレベルシンタックスを備える、請求項１に記載の方法。
【請求項７】
ビデオデータの第３のブロックのために、ビデオデータの前記第３のブロックのコーディングモードがマージモードであると決定することと、
ビデオデータの前記第３のブロックの前記コーディングモードが前記マージモードであることに応答して、前記第３のブロックの動きベクトル精度を示すシグナリングを受信することなく、前記第３のブロックの動きベクトル精度を決定することと、
をさらに備える、請求項１に記載の方法。
【請求項８】
前記第３のブロックの動きベクトル精度の候補リストを構築することと、ここにおいて、前記候補リストは、サブピクセル精度動きベクトル候補と、整数精度動きベクトル候補とを備える、
前記第３のブロックの参照ピクチャにおいて、前記サブピクセル精度動きベクトル候補または前記整数精度動きベクトル候補のうちの１つを使用して前記第３のブロックの参照ブロックの位置を特定することと、
をさらに備える、請求項７に記載の方法。
【請求項９】
前記マージモードは、スキップモードを備える、請求項７に記載の方法。
【請求項１０】
ビデオデータの第３のブロックのために、ビデオデータの前記第３のブロックのコーディングモードが高度動きベクトル予測（ＡＭＶＰ）モードであると決定することと、
ビデオデータの前記第３のブロックの前記コーディングモードが前記ＡＭＶＰモードであることに応答して、およびビデオデータの前記第３のブロックの動きベクトル差分値がゼロに等しいことに応答して、前記第３のブロックの動きベクトル精度を示すシグナリングを受信することなく、前記第３のブロックの動きベクトル精度を決定することと、
をさらに備える、請求項１に記載の方法。
【請求項１１】
ワイヤレス通信デバイスの受信機において前記ビデオデータを受信することと、
前記ワイヤレス通信デバイスのメモリに前記ビデオデータを記憶することと、
前記ワイヤレス通信デバイスの１つまたは複数のプロセッサ上で前記ビデオデータを処理することと、
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記ワイヤレス通信デバイスは、電話ハンドセットを備え、前記ワイヤレス通信デバイスの前記受信機において前記ビデオデータを受信することは、ワイヤレス通信規格に従って、前記ビデオデータを備える信号を復調することを備える、請求項１１に記載の方法。
【請求項１３】
前記ビデオデータを復号する前記方法は、前記ビデオデータを符号化することの一部として実行される、請求項１に記載の方法。
【請求項１４】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータを記憶するように構成されたメモリと、
１つまたは複数のプロセッサと、を備え、前記１つまたは複数のプロセッサは、
ビデオデータの第１のブロックのために、第１の動きベクトル差分値を決定することと、
前記第１の動きベクトル差分値がゼロに等しいことに応答して、前記第１のブロックの第１の動きベクトルがサブピクセル動きベクトル精度を有すると決定することと、
ビデオデータの第２のブロックのために、第２の動きベクトル差分値を決定することと、
前記第２の動きベクトル差分値が非ゼロ値であることに基づいて、および前記第２の動きベクトル差分値を決定した後に、前記第２のブロックの第２の動きベクトルの動きベクトル精度の指示を受信することと、
前記第２のブロックの参照ピクチャにおいて、前記第２の動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することと、
を行うように構成された、デバイス。
【請求項１５】
前記デバイスは、ワイヤレス通信デバイスを備え、符号化されたビデオデータを受信するように構成された受信機をさらに備え、および／または、前記ワイヤレス通信デバイスは、電話ハンドセットを備え、前記受信機は、ワイヤレス通信規格に従って、前記符号化されたビデオデータを備える信号を復調するように構成される、請求項１４に記載のデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
[0152]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］符号化されたビデオデータを復号する方法であって、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストを構築することは、分数精度動きベクトル候補を前記マージ候補リストに加えることを備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記分数精度動きベクトルを選択することに応答して、前記第１のブロックの整数ピクセル精度動きベクトルを決定するために前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックに基づいて前記第１のブロックを復号することとを備える方法。
［Ｃ２］前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定することは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信することを備える、Ｃ１に記載の方法。
［Ｃ３］前記マージモードはスキップモードを備える、Ｃ１に記載の方法。
［Ｃ４］第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとをさらに備える、Ｃ１に記載の方法。
［Ｃ５］前記第２のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを備える、Ｃ４に記載の方法。
［Ｃ６］前記整数精度動きベクトルを第２のブロックの候補リストに追加することをさらに備える、Ｃ５に記載の方法。
［Ｃ７］前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、Ｃ１に記載の方法。
［Ｃ８］前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、Ｃ７に記載の方法。
［Ｃ９］ビデオデータを符号化する方法であって、
第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを符号化するために前記分数精度動きベクトル候補を選択することと、
マージモードを使用して前記第１のブロックをコーディングするため、前記第１のブロックの整数ピクセル精度動きベクトルを決定するために前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することとを備える方法。
［Ｃ１０］前記符号化されたビデオデータに含めるために、前記第１のブロックの動きベクトル精度が整数ピクセル精度であるという指示を生成することをさらに備える、Ｃ９に記載の方法。
［Ｃ１１］前記マージモードはスキップモードを備える、Ｃ９に記載の方法。
［Ｃ１２］第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックを前記マージモード以外のモードでコーディングするために、前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとをさらに備え、
前記参照ブロックに基づいて前記第１のブロックを符号化する、Ｃ９に記載の方法。
［Ｃ１３］前記第２のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを備える、Ｃ１２に記載の方法。
［Ｃ１４］前記整数精度動きベクトルを第２のブロックの候補リストに追加することをさらに備える、Ｃ１２に記載の方法。
［Ｃ１５］前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、Ｃ９に記載の方法。
［Ｃ１６］前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、Ｃ１５に記載の方法。
［Ｃ１７］ビデオ復号のためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記メモリに記憶されたビデオデータに基づいて、前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記第１のブロックの整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
を行うように構成された１つまたは複数のプロセッサを備えるビデオデコーダとを備えるデバイス。
［Ｃ１８］前記１つまたは複数のプロセッサは、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定するようにさらに構成され、前記１つまたは複数のプロセッサは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信するようにさらに構成される、Ｃ１７に記載のデバイス。
［Ｃ１９］前記マージモードはスキップモードを備える、Ｃ１７に記載のデバイス。
［Ｃ２０］前記１つまたは複数のプロセッサは、
第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することとを行うようにさらに構成される、Ｃ１７に記載のデバイス。
［Ｃ２１］前記第２のブロックの前記分数精度動きベクトル予測子を決定するために、前記１つまたは複数のプロセッサは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することとを行うようにさらに構成される、Ｃ２０に記載のデバイス。
［Ｃ２２］前記１つまたは複数のプロセッサは、
前記整数精度動きベクトルを第２のブロックの候補リストに追加することを行うようにさらに構成される、Ｃ２１に記載のデバイス。
［Ｃ２３］前記１つまたは複数のプロセッサは、
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することを行うようにさらに構成される、Ｃ１７に記載のデバイス。
［Ｃ２４］前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、Ｃ２３に記載のデバイス。
［Ｃ２５］１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
前記第１のブロックの整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。
［Ｃ２６］前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であると決定するために、前記１つまたは複数のプロセッサは、前記符号化されたビデオデータにおいて、前記第１のブロックの前記動きベクトル精度が整数ピクセル精度であるという指示を受信する、Ｃ２５に記載のコンピュータ可読記憶媒体。
［Ｃ２７］前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
第２のブロックのコーディングモードがマージモード以外であると決定することと、
前記第２のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第２のブロックの分数精度動きベクトル予測子を決定することと、
前記第２のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第２のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、前記第２のブロックの整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第２のブロックの参照ブロックの位置を特定することと
を行わせるさらなる命令を記憶する、Ｃ２５に記載のコンピュータ可読記憶媒体。
［Ｃ２８］前記第２のブロックの前記分数精度動きベクトル予測子を決定するために、前記１つまたは複数のプロセッサは、
前記第２のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは第２の分数精度動きベクトル候補を備える、
前記第２のブロックの前記分数精度動きベクトル予測子として、前記第２の分数精度動きベクトル候補を選択することと
を行う、Ｃ２７に記載のコンピュータ可読記憶媒体。
［Ｃ２９］前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
前記整数精度動きベクトルを第２のブロックの候補リストに追加することを行わせるさらなる命令を記憶する、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３０］前記１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することを行わせるさらなる命令を記憶する、Ｃ２５に記載のコンピュータ可読記憶媒体。
［Ｃ３１］ビデオデータをコーディングする方法であって、
現在ピクチャでコーディングされている現在ブロックに対し、すでにコーディングされている隣接ブロックの整数ピクセル位置を識別することと、
前記整数ピクセル位置のロケーションに基づいて、前記ピクチャにおける複数の整数ピクセル位置を決定するためにテンプレートを適用することと、
前記ピクチャにおける複数のサブピクセル位置を決定するために、複数のサブピクセル位置にテンプレートを適用することと、
前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、
前記比較に基づいて、動きベクトルの動きベクトル精度を決定することと、
前記決定された動きベクトル精度を有する前記動きベクトルを使用して、前記現在ブロックをコーディングすることと
を備える方法。
［Ｃ３２］前記動きベクトルの前記動きベクトル精度を決定することは、
差分値を決定するために、前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、ここにおいて、前記差分値は、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間におけるピクセル値の差の量に対応する、
前記差分値がしきい値よりも大きいことに応答して、整数ピクセル精度を備えるように前記動きベクトル精度を決定することと
を備える、Ｃ３１に記載の方法。
［Ｃ３３］前記動きベクトルの前記動きベクトル精度を決定することは、
差分値を決定するために、前記複数の整数ピクセル位置の１つまたは複数のピクセル値を、前記複数のサブピクセル位置の１つまたは複数のピクセル値と比較することと、ここにおいて、前記差分値は、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間におけるピクセル値の差の量に対応する、
前記差分値がしきい値よりも小さいことに応答して、サブピクセル精度を備えるように前記動きベクトル精度を決定することと
を備える、Ｃ３１に記載の方法。
［Ｃ３４］前記しきい値は固定値である、Ｃ３１に記載の方法。
［Ｃ３５］前記しきい値は適応値である、Ｃ３１に記載の方法。
［Ｃ３６］前記テンプレートはある形状を規定し、ここにおいて、前記複数の整数ピクセル位置を決定するために前記テンプレートを適用することは、現在ブロックに対する前記形状のロケーションに基づいて、前記複数の整数ピクセル位置を特定することを備える、Ｃ３１に記載の方法。
［Ｃ３７］前記テンプレートはある形状を規定し、ここにおいて、前記複数のサブピクセル位置を決定するために前記テンプレートを適用することは、現在ブロックに対する前記形状のロケーションに基づいて、前記複数のサブピクセルのピクセル位置を特定することを備える、Ｃ３１に記載の方法。
［Ｃ３８］前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値を前記複数のサブピクセル位置の前記１つまたは複数のピクセル値と比較することは、前記複数の整数ピクセル位置の前記１つまたは複数のピクセル値と前記複数のサブピクセル位置の前記１つまたは複数のピクセル値との間の絶対差分和を決定することを備える、Ｃ３１に記載の方法。
［Ｃ３９］候補動きベクトルの候補リストを収集することと、
前記候補リストにおいて候補動きベクトルを識別するインデックス値を受信することと、
前記識別された候補動きベクトルに基づいて、前記動きベクトルを決定することと、をさらに備える、Ｃ３１に記載の方法。
［Ｃ４０］前記候補リストはＡＭＶＰ候補リストを備える、Ｃ３９に記載の方法。
［Ｃ４１］前記候補リストはマージモード候補リストを備える、Ｃ３９に記載の方法。
［Ｃ４２］ビデオデータをコーディングする方法であって、
コーディングされている現在ブロックに対し、１つまたは複数の隣接ブロックの位置を特定することと、
前記１つまたは複数の隣接ブロックのプロパティを決定することと、
前記１つまたは複数の隣接ブロックの前記プロパティに基づいて、動きベクトルの動きベクトル精度を決定することと、
前記決定された動きベクトル精度を有する前記動きベクトルを使用して、前記現在ブロックをコーディングすることと、
を備える方法。
［Ｃ４３］前記プロパティは、前記１つまたは複数の隣接ブロックの先鋭度を備える、Ｃ４２に記載の方法。
［Ｃ４４］前記プロパティは、前記１つまたは複数の隣接ブロックの階調度を備える、Ｃ４２に記載の方法。
［Ｃ４５］前記プロパティは、スキップモードでコーディングされている前記１つまたは複数の隣接ブロックを備える、Ｃ４２に記載の方法。
［Ｃ４６］前記プロパティは、前記１つまたは複数の隣接ブロックの動きベクトル精度を備える、Ｃ４２に記載の方法。
［Ｃ４７］どのプロパティが決定されるかの指示を受信することをさらに備える、Ｃ４２に記載の方法。
［Ｃ４８］前記１つまたは複数の隣接ブロックは、少なくとも１つの空間的に隣接するブロックを備える、Ｃ４２に記載の方法。
［Ｃ４９］前記１つまたは複数の隣接ブロックは、少なくとも１つの時間的に隣接するブロックを備える、Ｃ４２に記載の方法。
［Ｃ５０］ビデオデータをコーディングする方法であって、
第１のブロックのコーディングモードがマージモードであると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックのマージ候補リストを構築することと、ここにおいて、前記マージ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックを復号するために前記分数精度動きベクトル候補を選択することと、
整数ピクセル精度動きベクトルを決定するために、前記分数精度動きベクトル候補を丸めることと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックを使用して前記第１のブロックをコーディングすることと、
を備える方法。
［Ｃ５１］前記マージモードはスキップモードを備える、Ｃ５０に記載の方法。
［Ｃ５２］前記整数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、Ｃ５０に記載の方法。
［Ｃ５３］前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、Ｃ５０に記載の方法。
［Ｃ５４］前記第２のブロックの前記候補リストはＡＭＶＰ候補リストを備える、Ｃ５２または５３に記載の方法。
［Ｃ５５］ビデオデータをコーディングする方法であって、
第１のブロックのコーディングモードがマージモード以外であると決定することと、
前記第１のブロックの動きベクトル精度が整数ピクセル精度であると決定することと、
前記第１のブロックの分数精度動きベクトル予測子を決定することと、
前記第１のブロックの整数ピクセル精度動きベクトル予測子を決定するために、前記分数精度動きベクトル予測子を丸めることと、
前記第１のブロックの動きベクトル差分を決定することと、ここにおいて、前記動きベクトル差分は整数ピクセル精度差分を備える、
前記整数ピクセル精度動きベクトル予測子および前記動きベクトル差分に基づいて、整数ピクセル精度動きベクトルを決定することと、
前記整数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
前記参照ブロックを使用して前記第１のブロックをコーディングすることと、
を備える方法。
［Ｃ５６］前記第１のブロックの前記分数精度動きベクトル予測子を決定することは、
前記第１のブロックのＡＭＶＰ候補リストを構築することと、ここにおいて、前記ＡＭＶＰ候補リストは分数精度動きベクトル候補を備える、
前記第１のブロックの前記分数精度動きベクトル予測子として、前記分数精度動きベクトル候補を選択することと、
を備える、Ｃ５５に記載の方法。
［Ｃ５７］前記分数精度動きベクトル候補を第２のブロックの候補リストに追加することをさらに備える、Ｃ５５に記載の方法。
［Ｃ５８］ビデオデータをコーディングする方法であって、
符号化されたビデオビットストリームにおいて、動きベクトル精度シグナリングタイプの指示を受信することと、
前記動きベクトル精度シグナリングタイプに基づいて、ビデオデータのブロックの動きベクトル精度を決定することと、
前記決定された動きベクトル精度の動きベクトルを使用して、ビデオデータの前記ブロックの参照ブロックの位置を特定することと、
備える方法。
［Ｃ５９］前記動きベクトル精度シグナリングタイプは、（１）テンプレートマッチングタイプ、（２）隣接ブロックプロパティベースタイプ、または（３）ダイレクトシグナリングタイプのうちの１つを備える、Ｃ５８に記載の方法。
［Ｃ６０］前記指示は、スライスヘッダ、シーケンスパラメータセット（ＳＰＳ）、またはピクチャパラメータセット（ＰＰＳ）のうちの１つにおいてシグナリングされる、Ｃ５８に記載の方法。
［Ｃ６１］前記指示はスライスタイプを備える、Ｃ５８に記載の方法。
［Ｃ６２］前記指示は、ビデオデータの前記ブロックを備えるスライスの時間レベルを備える、Ｃ５８に記載の方法。
［Ｃ６３］ビデオデータをコーディングする方法であって、
ビデオデータの現在ブロックに対し、動きベクトル差分値を決定することと、
前記動きベクトル差分値がゼロに等しいことに応答して、前記現在ブロックの動きベクトルがサブピクセル動きベクトル精度を有すると決定することと、
を備える方法。
［Ｃ６４］ビデオデータの第２の現在ブロックに対し、第２の動きベクトル差分値を受信することと、
前記第２の動きベクトル差分値が非ゼロ値であることに基づいて、前記第２の現在ブロックに対し、第２の動きベクトルの動きベクトル精度の指示を受信することと、
参照ピクチャにおいて、前記第２の動きベクトルを使用して前記第２の現在ブロックの参照ブロックの位置を特定することと、
をさらに備える、Ｃ６３に記載の方法。
［Ｃ６５］前記第２の動きベクトル差分値を受信した後に、前記動きベクトル精度の前記指示を受信することをさらに備える、Ｃ６４に記載の方法。
［Ｃ６６］前記動きベクトル差分値がゼロに等しいことは、前記動きベクトル差分値のｘ成分がゼロに等しいことと、前記動きベクトル差分値のｙ成分がゼロに等しいこととを備える、Ｃ６３に記載の方法。
［Ｃ６７］ビデオデータをコーディングする方法であって、
前記ビデオデータに対し、デフォルト動きベクトル精度を決定することと、
前記ビデオデータの予測ユニット（ＰＵ）が特殊モードでコーディングされていることに応答して、前記デフォルト動きベクトル精度の動きベクトルを使用して前記ＰＵの参照ブロックの位置を特定することと、
を備える方法。
［Ｃ６８］前記ビデオデータの第２のＰＵが前記特殊モード以外のモードを使用してコーディングされていることに応答して、前記ビデオデータの前記ＰＵに対し、シグナリングされた動きベクトル精度を決定することと、
前記シグナリングされた動きベクトル精度の動きベクトルを使用して、前記第２のＰＵの参照ブロックの位置を特定することと、
をさらに備える、Ｃ６７に記載の方法。
［Ｃ６９］前記特殊モードは、
スキップモード、
２Ｎ×２Ｎマージモード、
マージモード、
トランスフォームスキップモード、または
非対称区分化モード
のうちの１つまたは複数を備える、Ｃ６７に記載の方法。
［Ｃ７０］前記ビデオデータのコーディングユニット（ＣＵ）に対し、シグナリングされた動きベクトル精度を決定すること、ここにおいて、前記シグナリングされた動きベクトル精度は、前記デフォルト動きベクトル精度とは異なるものであり、ここにおいて、前記ＣＵは前記ＰＵを備える、
をさらに備える、Ｃ６７に記載の方法。
［Ｃ７１］前記シグナリングされた動きベクトル精度は整数ピクセル精度を備え、ここにおいて、前記デフォルト動きベクトル精度は分数動きベクトル精度を備える、Ｃ７０に記載の方法。
［Ｃ７２］ビデオデータをコーディングする方法であって、
第１のブロックの動きベクトル差分精度が整数ピクセル精度であると決定することと、
前記第１のブロックの動きベクトル予測子の候補リストを構築することと、ここにおいて、前記候補リストは分数精度動きベクトル候補を備える、
前記候補リストから前記分数精度動きベクトル候補を選択することと、
前記分数精度動きベクトル候補および前記整数ピクセル精度動きベクトル差分に基づいて、分数ピクセル精度動きを決定することと、
前記分数ピクセル精度動きベクトルを使用して前記第１のブロックの参照ブロックの位置を特定することと、
を備える方法。
［Ｃ７３］前記候補リストは備え、ＡＭＶＰ候補リスト、Ｃ７２に記載の方法。
［Ｃ７４］ビデオデータをコーディングする方法であって、
ブロックの候補リストに含めるための１つまたは複数の動きベクトル候補を識別することと、ここにおいて、前記１つまたは複数の動きベクトル候補は、少なくとも１つの分数精度動きベクトル候補を備える、
前記ブロックの動きベクトル精度が整数ピクセル精度であることに応答して、１つまたは複数の整数精度動きベクトル候補を決定するために、前記１つまたは動きベクトル候補を丸めることと、
前記１つまたは複数の動きベクトル候補を丸めた後、前記１つまたは複数の整数精度動きベクトル候補に対して刈り込み操作を実施することと、
を備える方法。
［Ｃ７５］前記候補リストはマージモード候補リストを備える、Ｃ７４に記載の方法。
［Ｃ７６］前記候補リストはＡＭＶＰ候補リストを備える、Ｃ７４に記載の方法。
［Ｃ７７］前記１つまたは複数の動きベクトル候補は空間隣接候補を備える、Ｃ７４に記載の方法。
［Ｃ７８］前記１つまたは複数の動きベクトルは時間隣接候補を備える、Ｃ７４に記載の方法。
［Ｃ７９］ビデオデータをコーディングする方法であって、
ビデオデータの第１のブロックおよびビデオデータの第２のブロックに対し、デフォルト精度を決定することと、
ビデオデータの前記第１のブロックに対し、第１の動きベクトル精度情報を決定することと、
ビデオデータの前記第２のブロックがある条件を満たすことに応答して、前記デフォルト精度に対応するように第２の動きベクトル情報を決定することと、
を備える方法。
［Ｃ８０］前記デフォルト精度は分数精度を備える、Ｃ７９に記載の方法。
［Ｃ８１］ビデオデータの前記第１のブロックは第１のＰＵを備える、Ｃ７９に記載の方法。
［Ｃ８２］前記第１の動きベクトル精度情報は動きベクトル精度を備える、Ｃ７９に記載の方法。
［Ｃ８３］前記第１の動きベクトル精度情報は動きベクトル差分精度情報を備える、Ｃ７９に記載の方法。
［Ｃ８４］前記条件は、前記第２のブロックがマージモードまたはスキップモードを使用してコーディングされていることを備える、Ｃ７９に記載の方法。
［Ｃ８５］前記条件は、前記第２のブロックがＡＭＶＰモードを使用してコーディングされていることと、前記第２のブロックの各予測方向の動きベクトル差分がゼロに等しいこととを備える、Ｃ７９に記載の方法。
［Ｃ８６］ビデオデータをコーディングする方法であって、
ビデオデータの第１のコーディングユニットおよびビデオデータの第２のコーディングユニットに対し、デフォルト精度を決定することと、
ビデオデータの前記第１のコーディングユニットに対し、第１の動きベクトル精度情報を決定することと、
ビデオデータの第２のコーディングユニットがある条件を満たすことに応答してデフォルト精度に対応するように第２の動きベクトル情報を決定することと、
を備える方法。
［Ｃ８７］前記デフォルト精度は分数精度を備える、Ｃ８６に記載の方法。
［Ｃ８８］前記デフォルト精度は精度を備えない、Ｃ８６に記載の方法。
［Ｃ８９］前記第１の動きベクトル精度情報は動きベクトル精度を備える、Ｃ８６に記載の方法。
［Ｃ９０］前記第１の動きベクトル精度情報は動きベクトル差分精度情報を備える、Ｃ８６に記載の方法。
［Ｃ９１］前記条件は、前記ＣＵ内のすべてのＰＵがイントラコーディングされることを備える、Ｃ８６に記載の方法。
［Ｃ９２］前記条件は、前記ＣＵ内のすべてのＰＵがマージモードまたはスキップモードを使用してコーディングされることを備える、Ｃ８６に記載の方法。
［Ｃ９３］前記条件は、前記ＣＵ内のすべてのＰＵがＡＭＶＰを使用してコーディングされていることと、すべてのＰＵの各予測方向の動きベクトル差分がゼロに等しいこととを備える、Ｃ８６に記載の方法。
［Ｃ９４］Ｃ３１から９３の任意の組合せを備える方法。
［Ｃ９５］１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、Ｃ３１から９３の任意の組合せの方法を実施させる命令を記憶するコンピュータ可読記憶媒体。
［Ｃ９６］ビデオコーディングデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
Ｃ３１から９３の任意の組合せの方法を実施するように構成された１つまたは複数のプロセッサを備えるビデオコーダと、
を備えるビデオコーディングデバイス。
［Ｃ９７］前記ビデオコーダはビデオエンコーダを備える、Ｃ９６に記載のビデオコーディングデバイス。
［Ｃ９８］前記ビデオコーダはビデオデコーダを備える、Ｃ９６に記載のビデオコーディングデバイス。
【外国語明細書】
2019080321000001.pdf