(57)【要約】  ビデオエンコーダが、ビデオデータを符号化するために使用される動きベクトルのためにサブ画素精度を適応的に選択するように構成され得る。ビデオエンコーダは、更に、コンテキスト適応型バイナリ算術符号化を使用してサブ画素精度の指標をエントロピー符号化し得、コンテキストは、動きベクトルのためのビデオデータのブロックのサイズに対応し得る。例えば、サイズは、符号化単位の深さ、符号化単位の予測単位のサイズ、及び／又は予測単位のタイプに対応し得る。ビデオエンコーダはまた、双線形補間を使用してクロミナンスデータの１／１６画素位置の値を補間し得る。ビデオエンコーダは、更に、動きベクトルのサブ画素精度に対応する符号化方式を使用して、動きベクトルの動きベクトル差分値を符号化し得る。ビデオデコーダは、ビデオデータを復号するための同様の逆の技法を使用し得る。
2013543713.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、
前記コンテキスト適応型バイナリ算術符号化に従って、決定された前記コンテキストを使用して前記指標をエントロピー符号化することと、
を備え、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、方法。
【請求項２】
前記第１のサブ画素精度が１／４画素精度を備え、前記第２のサブ画素精度が１／８画素精度を備える、請求項１に記載の方法。
【請求項３】
前記符号化単位が２Ｎ×２Ｎ画素のサイズを有し、前記予測単位の前記タイプが、２Ｎ×２Ｎ画素と、２Ｎ×Ｎ画素と、Ｎ×２Ｎ画素と、Ｎ×Ｎ画素とのうちの１つのサイズを有する前記予測単位に対応し、Ｎが、０よりも大きい整数値である、請求項１に記載の方法。
【請求項４】
前記予測単位を符号化することが、前記符号化単位のルミナンスデータの前記動きベクトルを計算することを備え、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を更に備える、請求項１に記載の方法。
【請求項５】
前記予測単位が第１の予測単位を備え、前記方法が、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、、
を更に備える、請求項１に記載の方法。
【請求項６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することは、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、
前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、
前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することと、
を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することは、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、
前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、
前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することと、
を備える、請求項５に記載の方法。
【請求項７】
前記第１の動きベクトル差分符号化方式が１／４画素精度に関連し、前記第２の動きベクトル差分符号化方式が１／８画素精度に関連する、請求項５に記載の方法。
【請求項８】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することが、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択することを備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することが、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択することを備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項５に記載の方法。
【請求項９】
ビデオデータを符号化する方法であって、
ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用して、ビデオデータの符号化単位の前記ルミナンスデータを符号化することと、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を備える、方法。
【請求項１０】
ビデオデータを符号化する方法であって、
ビデオデータの第１の予測単位を符号化するときに第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに第２の異なるサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、
を備える、方法。
【請求項１１】
ビデオデータを符号化するための装置であって、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化することとを行うように構成され、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、ビデオエンコーダを備える、装置。
【請求項１２】
前記ビデオエンコーダが、前記符号化単位のルミナンスデータの前記動きベクトルを計算することを行うように構成され、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、前記ビデオエンコーダが、双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することとを行うように構成された、請求項１１に記載の装置。
【請求項１３】
前記予測単位が第１の予測単位を備え、前記ビデオエンコーダが、前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、を行うように構成された、請求項１１に記載の装置。
【請求項１４】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することとを行うように構成され、前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することとを行うように構成された、請求項１３に記載の装置。
【請求項１５】
前記第１の動きベクトル差分符号化方式が１／４画素精度に関連し、前記第２の動きベクトル差分符号化方式が１／８画素精度に関連する、請求項１３に記載の装置。
【請求項１６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択するように構成され、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択するように構成され、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項１３に記載の装置。
【請求項１７】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダを含むワイヤレス通信機器と、
のうちの少なくとも１つを備える、請求項１１に記載の装置。
【請求項１８】
ビデオデータを符号化するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化するための手段と、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定するための手段と、
前記コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化するための手段と、
を備え、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、装置。
【請求項１９】
前記予測単位を符号化するための前記手段が、前記符号化単位のルミナンスデータの前記動きベクトルを計算するための手段を備え、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算するための手段と、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化するための手段と、
を更に備える、請求項１８に記載の装置。
【請求項２０】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算するための手段と、、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための手段と、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算するための手段と、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための手段と、
を更に備える、請求項１８に記載の装置。
【請求項２１】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための前記手段は、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化するための手段と、
を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための前記手段は、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較するための手段と、
前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化するための手段と、
前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化するための手段と、
を備える、請求項２０に記載の装置。
【請求項２２】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための前記手段が、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択するための手段を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための前記手段が、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択するための手段を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項２０に記載の装置。
【請求項２３】
実行されたとき、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、  コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化することと、
を、ビデオデータを符号化するための機器のプロセッサに行わせる命令を記憶し、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項２４】
前記予測単位を符号化することを前記プロセッサに行わせる前記命令が、前記符号化単位のルミナンスデータの前記動きベクトルを計算することを前記プロセッサに行わせる命令を備え、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を前記プロセッサに行わせる命令を更に備える、請求項２３に記載のコンピュータプログラム製品。
【請求項２５】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を更に備える、請求項２３に記載のコンピュータプログラム製品。
【請求項２６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令は、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令は、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、
前記第２の動きベクトル差分値が前記第２の閾値未満のときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、
前記第２の動きベクトル差分値が前記第２の閾値以上のときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令が、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令が、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
ビデオデータを復号する方法であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、
前記指標を復号するためのコンテキストを決定することと、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することと、
を備え、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、方法。
【請求項２９】
前記第１のサブ画素精度が１／４画素精度を備え、前記第２のサブ画素精度が１／８画素精度を備える、請求項２８に記載の方法。
【請求項３０】
前記符号化単位が２Ｎ×２Ｎ画素のサイズを有し、前記予測単位の前記タイプが、２Ｎ×２Ｎ画素と、２Ｎ×Ｎ画素と、Ｎ×２Ｎ画素と、Ｎ×Ｎ画素とのうちの１つのサイズを有する前記予測単位に対応し、Ｎが、０よりも大きい整数値である、請求項２８に記載の方法。
【請求項３１】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、前記方法が、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を更に備える、請求項２８に記載の方法。
【請求項３２】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項２８に記載の方法。
【請求項３３】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することは、
前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することと、
を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することは、
前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することと、
を備える、請求項３２に記載の方法。
【請求項３４】
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の前記第１の閾値未満かどうかを決定することは、前記第１の動きベクトル差分値が前記第１の閾値未満かどうかを示す情報を受信することを備え、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の前記第２の閾値未満かどうかを決定することは、前記第２の動きベクトル差分値が前記第２の閾値未満かどうかを示す情報を受信することを備える、請求項３３に記載の方法。
【請求項３５】
前記第１の動きベクトル差分復号方式が１／４画素精度に関連し、前記第２の動きベクトル差分復号方式が１／８画素精度に関連する、請求項３２に記載の方法。
【請求項３６】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することが、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択することを備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することが、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択することを備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項３２に記載の方法。
【請求項３７】
ビデオデータを復号する方法であって、
ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を備える、方法。
【請求項３８】
ビデオデータを復号する方法であって、
ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を備え、前記第１の動きベクトル差分値が第１のサブ画素精度を有し、前記第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、方法。
【請求項３９】
ビデオデータを復号するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、前記指標を復号するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することとを行うように構成され、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、ビデオデコーダを備える、装置。
【請求項４０】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、前記ビデオデコーダが、双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することとを行うように更に構成された、請求項３９に記載の装置。
【請求項４１】
前記予測単位が第１の予測単位を備え、前記ビデオデコーダが、前記第１の予測単位の第１の動きベクトル差分値を受信することと、前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、を行うように構成され、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項３９に記載の装置。
【請求項４２】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することとを行うように構成され、前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することとを行うように構成された、請求項４１に記載の装置。
【請求項４３】
前記第１の動きベクトル差分復号方式が１／４画素精度に関連し、前記第２の動きベクトル差分復号方式が１／８画素精度に関連する、請求項４１に記載の装置。
【請求項４４】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択するように構成され、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択するように構成され、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項４１に記載の装置。
【請求項４５】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信機器と、
のうちの少なくとも１つを備える、請求項３９に記載の装置。
【請求項４６】
ビデオデータを復号するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信するための手段と、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信するための手段と、
前記指標を復号するためのコンテキストを決定するための手段と、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号するための手段と、
を備え、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、装置。
【請求項４７】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算するための手段と、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号するための手段と、
を更に備える、請求項４６に記載の装置。
【請求項４８】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信するための手段と、
前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための手段と、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信するための手段と、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための手段と、
を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項４６に記載の装置。
【請求項４９】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための前記手段は、
前記第１の動きベクトル差分値を表す第１のコードワードを受信するための手段と、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号するための手段と、
を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための前記手段は、
前記第２の動きベクトル差分値を表す第２のコードワードを受信するための手段と、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定するための手段と、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号するための手段と、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号するための手段と、
を備える、請求項４８に記載の装置。
【請求項５０】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための前記手段が、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択するための手段を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための前記手段が、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択するための手段を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項４８に記載の装置。
【請求項５１】
実行されたとき、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、
前記指標を復号するためのコンテキストを決定することと、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することと、
を、ビデオデータを復号するための機器のプロセッサに行わせる命令を記憶し、前記コンテキストが、前記符号化単位の深さと、前記予測単位のサイズと、前記予測単位のタイプとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項５２】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を前記プロセッサに行わせる命令を更に備える、請求項５１に記載のコンピュータプログラム製品。
【請求項５３】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信することと、  前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を前記プロセッサに行わせる命令を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項５１に記載のコンピュータプログラム製品。
【請求項５４】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令は、
前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することと、
を前記プロセッサに行わせる命令を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令は、
前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することと、
を前記プロセッサに行わせる命令を備える、請求項５３に記載のコンピュータプログラム製品。
【請求項５５】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令が、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令が、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項５３に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオ符号化に関し、より詳細には、インター予測ビデオ符号化に関する。
【背景技術】
【０００２】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信及び受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実施する。
【０００３】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行する。ブロックベースのビデオ符号化の場合、ビデオフレーム又はスライスはマクロブロックに区分され得る。各マクロブロックは更に区分され得る。イントラ符号化（Ｉ）フレーム又はスライス中のマクロブロックは、隣接マクロブロックに対する空間的予測を使用して符号化される。インター符号化（Ｐ又はＢ）フレーム又はスライス中のマクロブロックは、同じフレーム又はスライス中の隣接マクロブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【発明の概要】
【０００４】
概して、本開示では、ビデオ符号化中の適応動きベクトル解像度、例えば、動き推定及び動き補償のための適応動きベクトル解像度選択をサポートするための技法について説明する。例えば、ビデオエンコーダが、ビデオデータのブロックを符号化するときに、動きベクトルのために異なるレベルのサブ整数画素精度、例えば、１／８画素精度又は１／４画素精度のいずれかを選択するように構成され得る。即ち、ビデオエンコーダによって生成されたブロックの動きベクトルは、選択に基づいて、１／８画素精度又は１／４画素精度を有し得る。ビデオエンコーダは、本開示の技法を使用して、動きベクトルのための１／８画素精度又は１／４画素精度の選択を信号伝達し得る。
【０００５】
一例として、ビデオエンコーダは、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）を使用して、動きベクトルが１／４画素精度を有するのか１／８画素精度を有するのかを表す値をエントロピー符号化し得る。値をエントロピー符号化するために、ビデオエンコーダは、ビデオデータのブロックのサイズに関係するコンテキストに基づいて確率モデルを選択し得る。コンテキストは、符号化単位の深さ、符号化単位の予測単位のサイズ、及び／又は予測単位のタイプのいずれか又は全てに基づいて決定され得、タイプは、符号化単位のサイズに対する予測単位の形状を指定し得る。ビデオエンコーダは、動きベクトルのサブ整数画素精度（例えば、１／４又は１／８画素精度）に基づいて、様々な方式を使用して動きベクトル自体をエントロピー符号化するように更に構成され得る。ビデオエンコーダはまた、ビデオエンコーダが、１／８画素精度を有する符号化単位のルミナンスデータの動きベクトルを計算するときに、双線形補間を使用して符号化単位のクロミナンスデータの１／１６画素位置の値を計算するように構成され得る。
【０００６】
一例では、ビデオデータを符号化する方法は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することであって、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを含む。
【０００７】
別の例では、ビデオデータを符号化する方法は、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用してビデオデータの符号化単位のルミナンスデータを符号化することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化することとを含む。
【０００８】
別の例では、ビデオデータを符号化する方法は、ビデオデータの第１の予測単位を符号化するときに第１の動きベクトル差分値を計算することであって、第１の動きベクトル差分値が第１のサブ画素精度を有する、計算することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を符号化することと、ビデオデータの第２の予測単位を符号化するときに第２の異なるサブ画素精度を有する第２の動きベクトル差分値を計算することと、第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して第２の動きベクトル差分値を符号化することとを含む。
【０００９】
別の例では、ビデオデータを符号化するための装置は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを行うように構成され、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、ビデオエンコーダを含む。
【００１０】
別の例では、ビデオデータを符号化するための装置は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化するための手段と、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定するための手段と、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化するための手段とを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える。
【００１１】
別の例では、コンピュータプログラム製品は、実行されたとき、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを、ビデオデータを符号化するための機器のプロセッサに行わせる命令を記憶し、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を含む。
【００１２】
別の例では、ビデオデータを復号する方法は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える。
【００１３】
別の例では、ビデオデータを復号する方法は、ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを復号することとを含む。
【００１４】
別の例では、ビデオデータを復号する方法は、ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を復号することと、ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して第２の動きベクトル差分値を復号することと、を含み、第１の動きベクトル差分値が第１のサブ画素精度を有し、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する。
【００１５】
別の例では、ビデオデータを復号するための装置は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することでと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを行うように構成されたビデオデコーダを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える。
【００１６】
別の例では、ビデオデータを復号するための装置は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信するための手段と、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信するための手段と、指標を復号するためのコンテキストを決定するための手段と、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号するための手段とを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える。
【００１７】
別の例では、コンピュータプログラム製品は、実行されたとき、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを、ビデオデータを復号するための機器のプロセッサに行わせる命令を記憶し、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を含む。
【図面の簡単な説明】
【００１８】
【図１】適応動きベクトル解像度をサポートするための本開示の技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】適応動きベクトル解像度をサポートするための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】符号化されたビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。
【図４】フル画素位置に対する分数画素位置を示す概念図。
【図５Ａ】対応するクロミナンス画素位置及びルミナンス画素位置を示す概念図。
【図５Ｂ】対応するクロミナンス画素位置及びルミナンス画素位置を示す概念図。
【図５Ｃ】対応するクロミナンス画素位置及びルミナンス画素位置を示す概念図。
【図６】本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャート。
【図７】動きベクトルのサブ整数画素精度の指標をエントロピー符号化するための例示的な方法を示すフローチャート。
【図８】動きベクトルが、対応するルミナンスデータに対して１／８画素精度を有するときに、クロミナンスデータの１／１６画素位置の値を計算するための例示的な方法を示すフローチャート。
【図９】動きベクトルのサブ画素精度に基づくエントロピー符号化方式を使用して、動きベクトルの動きベクトル差分値をエントロピー符号化するための例示的な方法を示すフローチャート。
【図１０】本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１９】
概して、本開示では、ビデオデータのブロックを符号化するために使用される動きベクトルのために動きベクトル精度を適応的に選択することと、動きベクトルの選択された動きベクトル精度を信号伝達することとのための技法について説明する。本技法は、分数画素精度と呼ばれることがある、異なるレベルのサブ整数画素精度間で適応的に選択することを含み得る。例えば、本技法は、ビデオデータのブロックを符号化するために使用される動きベクトルのために１／４画素精度と１／８画素精度との間で適応的に選択することを含み得る。本開示中の「１／８画素」精度という用語は、１画素の１／８の精度、例えば、フル画素位置（０／８）、１画素の１／８、１画素の２／８（即ち１画素の１／４）、１画素の３／８、１画素の４／８（即ち１画素の１／２及び１画素の２／４）、１画素の５／８、１画素の６／８（即ち１画素の３／４）、又は１画素の７／８のうちの１つを指すものとする。
【００２０】
従来のＨ．２６４エンコーダ及びデコーダは、１／４画素精度を有する動きベクトルをサポートする。幾つかの事例では、１／８画素精度は、１／４画素精度に勝る幾つかの利点を提供し得る。但し、あらゆる動きベクトルを１／８画素精度に符号化することは、非常に多くの符号化ビットを必要とし得、それは１／８画素精度動きベクトルの利益を上回り得る。本開示の技法は、適切な場合は１／８画素精度動きベクトルを使用することと、他の場合は１／４画素精度動きベクトルを使用することと、特定のブロックに対してエンコーダが使用した精度をデコーダが決定し得るように、動きベクトルが１／８画素精度を有するのか１／４画素精度を有するのかを信号伝達することとを含む。
【００２１】
動きベクトルが、例えば、１／４画素精度を有するのか１／８画素精度を有するのかを示すフラグとして、各動きベクトルのためのビットストリームにフルビットを追加することを回避するために、本開示は、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）などのバイナリ算術符号化方式を使用して、動きベクトルのサブ画素精度の指標を符号化することを提案する。ＣＡＢＡＣは、確率推定値を最適化するためにコンテキスト情報（例えば、近くの要素）を使用する確率モデルに基づいて、情報の分数ビットを符号化するための技法を与える。本開示の技法によれば、ビデオデータのブロック（例えば、符号化単位の予測単位）の動きベクトルのサブ画素精度の指標を符号化するためのコンテキストは、ブロックについてのサイズ情報に対応し得る。
【００２２】
符号化単位の予測単位（ＰＵ：prediction unit）についてのサイズ情報は、１つ以上のソースから導出され得る。高効率ビデオ符号化（ＨＥＶＣ：High Efficiency Video Coding）によれば、ビデオデータのピクチャは、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣにおけるマクロブロックと概念的に同様である複数の最大符号化単位（ＬＣＵ：largest coding unit）を含む。ＬＣＵは４つのサブＣＵ（サブ符号化単位）に区分され得、サブＣＵの各々は、更に、４つのサブＣＵに区分され得る。ＣＵが２Ｎ×２Ｎ画素のサイズを有すると仮定すると、ＣＵは、サブＣＵが重複しないように、Ｎ×Ｎ画素のサイズをそれぞれ有するサブＣＵに区分され得る。ＣＵの１つの属性は、現在のＣＵに到達するようになされた区分の数に概して対応するＣＵの「深さ」である。例えば、ＬＣＵが２Ｎ×２Ｎのサイズを有し、（ＬＣＵのサブＣＵを備える）現在のＣＵがＮ／４のサイズを有すると仮定すると、現在のＣＵの深さは３になる。
【００２３】
このようにして、符号化単位の深さは、以下の式に従って決定され得る。
【数１】
2013543713.tif 000003
【００２４】
上式で、ＬＣＵ及びＣＵは、水平方向及び垂直方向に等しい数の画素を有すると仮定され、ｓｉｚｅ（ＣＵ）は、ＣＵの水平方向画素の数を戻し、ＣＵは、ＬＣＵのサブＣＵを形成する。その上、サブＣＵとしてＣＵを含むＬＣＵのサイズが知られていると仮定すると、ＣＵのサイズは、以下の式に従って、ＣＵの深さに基づいて決定され得る。
【数２】
2013543713.tif 000004
【００２５】
予測単位についてのサイズ情報はまた、予測単位自体についてのサイズ情報を含み得る。例えば、サイズ情報は、予測単位の水平方向及び／又は垂直方向画素の数に対応し得る。サイズ情報は、予測単位のタイプの指標をも含み得る。タイプは、予測単位を含むＣＵのサイズに対する予測単位の形状及びサイズに対応し得る。例えば、ＣＵが２Ｎ×２Ｎ画素のサイズを有すると仮定すると、対称予測単位タイプは、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎを含み得、非対称予測単位タイプは、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２Ｎを含み得る。
【００２６】
非対称タイプでは、「ｎＸ」は、Ｘに対応する方向に沿った０．５Ｎと１．５Ｎの分割を指し、但し、Ｘ＝Ｕは、ＰＵの上側部分が０．５Ｎの高さを有することを指し、Ｘ＝Ｄは、ＰＵの下側部分が０．５Ｎの高さを有することを指し、Ｘ＝Ｌは、ＰＵの左側部分が０．５Ｎの幅を有することを指し、Ｘ＝Ｒは、ＰＵの右側部分が０．５Ｎの幅を有することを指す。例えば、２Ｎ×ｎＵタイプとして分割されたＰＵを有する２Ｎ×２Ｎ画素のＣＵの場合、ＣＵの上側非対称ＰＵは、２Ｎ×０．５Ｎ画素のサイズを有し、ＣＵの下側非対称ＰＵは、２Ｎ×１．５Ｎ画素のサイズを有することになる。
【００２７】
このようにして、ＣＵのＰＵの動きベクトルのサブ画素精度の指標を符号化するためのコンテキストは、（ＣＵを含むＬＣＵに対するＣＵの深さとして記述され得る）ＣＵのサイズと、ＰＵの画素次元に関して及び／又は（例えば、予測単位のタイプを使用して）ＣＵのサイズに対して記述され得るＰＵのサイズとのいずれか又は全てを含み得る。一例として、ＰＵのための動きベクトルは、１／８画素精度又は１／４画素精度のいずれかを有し得、指標は、動きベクトルが１／８画素精度を有するのか１／４画素精度を有するのかを示す１ビットフラグを備え得る。他の例では、他の精度が利用可能であり得る。
【００２８】
動きベクトルのサブ画素精度は、ＣＵのルミナンスデータに対して示され得る。概して、ＣＵのクロミナンスデータは、ＣＵのルミナンスデータよりも低い空間解像度を有する。例えば、クロミナンスデータは、水平方向と垂直方向の両方にルミナンスデータの１／２の解像度を有し得る。しかしながら、ルミナンスデータについて計算された動きベクトルは、クロミナンスデータを符号化するために再利用され得る。従って、動きベクトルは、ＣＵのルミナンスデータに対するよりもＣＵのクロミナンスデータに対して高い精度を有し得る。例えば、動きベクトルがルミナンスデータに対して１／８画素精度を有し、クロミナンスデータがルミナンスデータの１／２の水平及び垂直解像度を有する場合、動きベクトルは、クロミナンスデータに対して１／１６画素精度を有し得る。本開示は、双線形補間を使用してクロミナンスデータの１／１６画素位置の値を計算することを提案する。
【００２９】
動きベクトルを使用してルミナンスデータとクロミナンスデータとを符号化することに加えて、動きベクトル自体が符号化され得る。例えば、ビデオエンコーダは、動きベクトルと動き予測子（motion predictor）との間の差分を計算することによって動きベクトルを符号化し得る。ビデオエンコーダは、ビデオデータの近くのブロックの動きベクトルとして動き予測子を選択し得る。例えば、ビデオエンコーダは、動き予測子として動きベクトルの中央値を選択し、次いで、予測単位の動きベクトルと動き予測子との間の差分として動きベクトル差分を計算し得る。本開示は、更に、予測単位の動きベクトルのサブ画素精度に基づいて、予測単位の動きベクトル差分値を符号化するための技法を提供する。
【００３０】
一例として、動きベクトルの潜在的なサブ画素精度に対して、異なる動きベクトル差分符号化方式が定義され得る。例えば、動きベクトルが１／８画素精度又は１／４画素精度のいずれかを有し得るとき、１／８画素精度に対しては第１の動きベクトル差分符号化方式が定義され得、１／４画素精度に対しては第２の動きベクトル差分符号化方式が定義され得る。このようにして、ビデオエンコーダは、第１の動きベクトル差分符号化方式を使用して１／８画素精度動きベクトルの動きベクトル差分値を符号化し、第２の動きベクトル差分符号化方式を使用して１／４画素精度動きベクトルの動きベクトル差分値を符号化し得る。
【００３１】
一例として、動きベクトル差分符号化方式は、符号化方式に固有の閾値を含むように定義され得る。動きベクトル差分値が閾値を下回るとき、動きベクトル差分値は、第１のタイプのエントロピー符号化（例えば、ゴロム符号化(golomb coding)）を使用して符号化され得、動きベクトル差分が閾値に等しいか又はそれよりも大きいとき、動きベクトル差分値は、第２のタイプのエントロピー符号化（例えば、ゴロム符号化）を使用して符号化され得る。閾値は、動きベクトル差分値に対応する動きベクトルのサブ画素精度、例えば、１／４画素精度又は１／８画素精度に基づいて変動し得る。
【００３２】
図１は、適応動きベクトル解像度をサポートするための本開示の技法を利用し得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。例えば、システム１０は、動きベクトルに対応するビデオデータのブロックのサイズを含むコンテキスト情報に基づいて、動きベクトルのサブ画素精度の指標を符号化及び復号し得る。システム１０はまた、双線形補間を使用してクロミナンスデータの１／１６サブ画素位置の値を補間し得る。システム１０はまた、動きベクトル差分に対応する動きベクトルのサブ画素精度に対応する異なる動きベクトル差分符号化方式を利用し得る。
【００３３】
図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先機器１４に送信する発信源機器１２を含む。発信源機器１２及び宛先機器１４は、広範囲にわたる機器のいずれかを備え得る。場合によっては、発信源機器１２及び宛先機器１４は、ワイヤレスハンドセット、所謂セルラー無線電話又は衛星無線電話などのワイヤレス通信機器を備えるか、若しくは通信チャネル１６を介してビデオ情報を通信することができ、その場合、通信チャネル１６がワイヤレスである、任意のワイヤレス機器を備え得る。但し、概して、動きベクトルの適応サブ画素精度をサポートするための技法に関する本開示の技法は、必ずしもワイヤレスアプリケーション又は設定に限定されるとは限らない。例えば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用し得る。従って、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレス又はワイヤード媒体の任意の組合せを備え得る。
【００３４】
図１の例では、発信源機器１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先機器１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、発信源機器１２のビデオエンコーダ２０は、動きベクトルの適応サブ画素精度をサポートするための技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器１２は、外部カメラなどの外部ビデオ発信源１８からビデオデータを受信し得る。同様に、宛先機器１４は、一体型表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００３５】
図１の図示のシステム１０は一例にすぎない。動きベクトルの適応サブ画素精度をサポートするための技法は、任意のデジタルビデオ符号化及び／又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。更に、本開示の技法はビデオプリプロセッサによっても実行され得る。発信源機器１２及び宛先機器１４は、発信源機器１２が宛先機器１４に送信するための符号化ビデオデータを生成する、そのような符号化機器の例にすぎない。幾つかの例では、機器１２、１４の各々がビデオ符号化構成要素及び復号構成要素を含むので、機器１２、１４は、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオテレフォニーのためのビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートし得る。
【００３６】
発信源機器１２のビデオ発信源１８は、ビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、及び／又はビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオ発信源１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオ発信源１８がビデオカメラである場合、発信源機器１２及び宛先機器１４は、所謂カメラ付き携帯電話又はビデオ電話を形成し得る。但し、上述のように、本開示で説明する技法は、概してビデオ符号化に適用可能であり得、ワイヤレス及び／又はワイヤードアプリケーションに適用され得る。各場合において、撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータ生成ビデオはビデオエンコーダ２０によって符号化され得る。符号化されたビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先機器１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
【００３７】
宛先機器１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。この場合も、ビデオ符号化プロセスは、動きベクトルの適応サブ画素精度をサポートするための本明細書で説明する技法のうちの１つ以上を実施し得る。チャネル１６を介して通信される情報は、マクロブロック及び他の符号化単位、例えば、ピクチャグループ（ＧＯＰ）の特性及び／又は処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００３８】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つ以上の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体、又はワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータを発信源機器１２から宛先機器１４に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル１６は、発信源機器１２から宛先機器１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００３９】
ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定の符号化規格にも限定されない。他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びオーディオデコーダと統合され得、また、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００４０】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。幾つかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠する機器に適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではＨ．２６４規格又はＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格又は仕様と呼ぶことがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）は、Ｈ．２６４／ＡＶＣへの拡張に取り組み続けており、また、例えばＨＥＶＣのための新しい規格を開発し続けている。
【００４１】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実施され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバなどに統合され得る。
【００４２】
ビデオシーケンスは、一般に、一連のビデオフレームを含む。ピクチャグループ（ＧＯＰ）は、概して、一連の１つ以上のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる幾つかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つ以上のフレームのヘッダ、又は他の場所中に含み得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロック又はマクロブロックの区分に対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定の符号化規格に応じてサイズが異なり得る。各ビデオフレームは複数のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらのマクロブロックは、サブブロックとも呼ばれる区分に構成され得る。
【００４３】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、又は４×４、及びクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、１６×（x）１６画素又は１６×（by）１６画素を指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、概して、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、Ｎは、非負整数値を表す。ブロック中の画素は行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要はない。例えば、ブロックはＮ×Ｍ画素を備え得、Ｍは必ずしもＮに等しいとは限らない。
【００４４】
１６×１６よりも小さいブロックサイズは１６×１６マクロブロックの区分と呼ばれることがある。ビデオブロックは、画素領域中の画素データのブロックを備え得、又は、例えば、符号化ビデオブロックと予測ビデオブロックとの画素差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、若しくは概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００４５】
小さいビデオブロックほど、より良い解像度が得られ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロック、及びサブブロックと呼ばれることがある様々な区分は、ビデオブロックと見なされ得る。更に、スライスは、マクロブロック及び／又はサブブロックなど、複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化単位」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、又は適用可能な符号化技法に従って定義される別の単独で復号可能なユニットを指すことがある。
【００４６】
高効率ビデオ符号化（ＨＥＶＣ）と現在呼ばれる、新しいビデオ符号化規格を開発するための取り組みが現在進行中である。この今度の規格は、通称Ｈ．２６５とも呼ばれる。この規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオ符号化機器のモデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによる機器に勝るビデオ符号化機器の幾つかの能力を仮定する。例えば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供する。
【００４７】
ＨＭは、ビデオデータのブロックを符号化単位（ＣＵ：coding unit）と称する。ビットストリーム内のシンタックスデータは、画素の数に関する最大符号化単位（ＬＣＵ）である最大符号化単位を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。従って、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大符号化単位又はＬＣＵのサブＣＵを指すことがある。ＬＣＵはサブＣＵに分割され得、各サブＣＵはサブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小符号化単位（ＳＣＵ：smallest coding unit）をも定義し得る。本開示ではまた、ＣＵ、ＰＵ、又はＴＵのいずれかを指すために「ブロック」という用語を使用する。その上、本開示において、符号化単位又はＣＵに関与する例に言及する場合、符号化単位の代わりにマクロブロックに関する他の例が与えられ得ることを理解されたい。
【００４８】
ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。例えば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００４９】
（例えば、４分木データ構造中のリーフノードに対応する）分割されないＣＵは、１つ以上の予測単位（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部又は一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４画素精度又は１／８画素精度）、動きベクトルが指し示す参照フレーム、及び／又は動きベクトルの参照リスト（例えば、リスト０若しくはリスト１）を記述し得る。（１つ又は複数の）ＰＵを定義するＣＵのデータはまた、例えば、ＣＵを１つ以上のＰＵに区分することを記述し得る。区分モードは、ＣＵが符号化されないか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかとの間で異なり得る。
【００５０】
１つ以上のＰＵを有するＣＵは、１つ以上の変換ユニット（ＴＵ：transform unit）をも含み得る。ＰＵを使用した予測の後に、ビデオエンコーダは、ＰＵに対応するＣＵの部分の残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。従って、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。幾つかの例では、ＴＵの最大サイズは、ＴＵを含むＣＵのサイズに対応し得る。
【００５１】
本開示の技法によれば、ビデオエンコーダ２０は、異なるサブ整数画素精度の動きベクトルを有する１つ以上のＰＵを使用してＣＵをインターモード符号化し得る。例えば、ビデオエンコーダ２０は、ＰＵに対して１／４画素精度を有する動きベクトルを使用すること、又は１／８画素精度を有する動きベクトルを使用することの間で選択し得る。ビデオエンコーダ２０はまた、ＰＵの動きベクトルのサブ画素精度の指標を与え得る。ビデオエンコーダ２０は、ＣＡＢＡＣを使用して指標を符号化し得、ＣＡＢＡＣを使用してサブ画素精度の指標を符号化するためのコンテキストを選択し得る。コンテキストは、ＰＵについてのサイズ情報、例えば、ＰＵを含むＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプに対応し得る。
【００５２】
従って、コンテキストはＰＵについてのサイズ情報に対応し得る。これらの技法は、ＰＵが、異なるＣＵ深さにおいて異なるサイズを有し得ることを認識する。異なる動きベクトル解像度（即ち、動きベクトルのサブ整数画素精度）の使用についての統計値は、異なるサイズのＰＵでは異なり得る。例えば、１／４画素精度を有する動きベクトルの使用の可能性は、異なるＣＵサイズ、ＰＵサイズ、及びＰＵタイプ間で異なり得る。同様に、１／８画素精度を有する動きベクトルの使用の可能性は、異なるＣＵサイズ、ＰＵサイズ、及びＰＵタイプ間で異なり得る。従って、本開示は、ＰＵについてのサイズ情報に応じて独立したコンテキストモデリングを使用するための技法を提供する。ビデオエンコーダ２０は、動きベクトルのサブ整数画素精度の指標（例えば、適応動きベクトル解像度（ＡＭＶＲＥＳ：adaptive motion vector resolution）フラグ）を符号化するために１つ以上のコンテキストを使用し得る。コンテキストはＣＵ深さに依存し（また、幾つかのＣＵ深さによって共有され得）、ＰＵサイズに依存し（また、幾つかのＰＵサイズによって共有され得）、及び／又はＰＵタイプに依存し得る（また、幾つかのＰＵタイプによって共有され得る）。
【００５３】
このようにして、発信源機器１２は、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用してビデオデータの符号化単位のルミナンスデータを符号化することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化することとを行うように構成されたビデオエンコーダを含む装置の一例である。
【００５４】
ビデオエンコーダ２０はまた、例えば、動き予測子とも呼ばれる動きベクトル予測子に対する動きベクトルの動きベクトル差分値を計算することによって動きベクトルを符号化し得る。ビデオエンコーダ２０は、動きベクトルのサブ画素精度に基づいて、動きベクトル差分（ＭＶＤ：motion vector difference）値を別様に符号化し得る。即ち、ビデオエンコーダ２０は、各々が動きベクトルの異なる可能なサブ画素精度に対応する異なるＭＶＤ値符号化方式で構成され得る。例えば、ビデオエンコーダ２０が、動きベクトルのために１／４画素精度と１／８画素精度との間で選択することが可能である場合、ビデオエンコーダ２０は、１／４画素精度動きベクトルに対応するＭＶＤ値を符号化するための第１のＭＶＤ符号化方式と、１／８画素精度動きベクトルに対応するＭＶＤ値を符号化するための第２のＭＶＤ符号化方式とで構成され得る。このようにして、ビデオエンコーダ２０は、第１のＭＶＤ符号化方式を使用して、１／４画素精度を有する動きベクトルに対応するＭＶＤ値を符号化し得、第２のＭＶＤ符号化方式を使用して、１／８画素精度を有する動きベクトルに対応するＭＶＤ値を符号化し得る。
【００５５】
一例として、一般的なＭＶＤ符号化方式は閾値を含み得る。ＭＶＤ値が閾値よりも小さいとき、ビデオエンコーダ２０は、単項コードを使用してＭＶＤ値を符号化し得る。一方、ＭＶＤ値が閾値よりも大きいとき、ビデオエンコーダ２０は、ゴロムコードを使用してＭＶＤ値を符号化し得る。１／８画素精度を有する動きベクトルのＭＶＤ値は、１／４画素精度を有する同様の動きベクトルのＭＶＤ値の約２倍の大きさである。例えば、１／８画素精度において動きベクトルの垂直成分が１０であり、動き予測子が２０である場合、ＭＶＤ値は１０になる。一方、１／４画素精度における同じ動きベクトルは垂直成分５と動き予測子１０とを有し、従って、ＭＶＤ値は５になる。動きベクトル差分の統計値は、１／８画素精度に対して１／４画素精度では異なる可能性がある。従って、この例では、ビデオエンコーダ２０は、符号化されている動きベクトルのサブ整数画素精度に応じて異なる閾値を含み得る。
【００５６】
サブ整数画素位置の値を計算するために、ビデオエンコーダ２０は様々な補間フィルタを含み得る。例えば、サブ整数画素位置の値を計算するために双線形補間が使用され得る。ビデオエンコーダ２０は、ＰＵのルミナンスデータに関して動き探索を実行して、ＰＵのルミナンスデータを使用して動きベクトルを計算するように構成され得る。ビデオエンコーダ２０は、次いで、ＰＵのクロミナンスデータを符号化するために動きベクトルを再利用し得る。一般に、クロミナンスデータは、対応するルミナンスデータよりも低い解像度、例えば、ルミナンスデータの１／４の解像度を有する。従って、クロミナンスデータの動きベクトルは、ルミナンスデータの動きベクトルよりも高い精度を有し得る。例えば、ルミナンスデータの１／４画素精度動きベクトルは、クロミナンスデータに対して１／８画素精度を有し得る。同様に、ルミナンスデータの１／８画素精度動きベクトルは、クロミナンスデータに対して１／１６画素精度を有し得る。幾つかの例では、ビデオエンコーダ２０は、例えば、ビットストリーム中で、ＭＶＤ値がＭＶＤ符号化方式の閾値を超えるかどうかの指標を与え得る。
【００５７】
このようにして、発信源機器１２は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを行うように構成され、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、ビデオエンコーダを含む装置の一例である。
【００５８】
ＨＭは、クロミナンスデータを符号化するときに、ルミナンスデータの１／８画素精度動きベクトルを１／４画素精度に量子化するように構成されている。従って、ＨＭは、クロミナンスデータに対して１／８画素精度を有する動きベクトルを常に使用する。ＨＭの設計者は、１／１６画素精度を有する動きベクトルを使用することは著しくより複雑であると考えた。一方、本開示の技法は、動きベクトルが、対応するルミナンスデータに対して１／８画素精度を有するときに、１／１６画素精度動きベクトルを使用してクロミナンスデータを符号化することを提案する。ルミナンスデータの動きベクトルが１／８画素精度を有するときにクロミナンスデータを符号化するために、本開示は、双線形補間を使用して１／１６画素位置の値を補間することを提案する。本開示の技法を作り出すための経験的テストは、１／１６画素精度動きベクトルを使用することの複雑さは、クロミナンスデータの値を計算するために１／８画素精度動きベクトルを使用することの複雑さと同じであるという予期しない結果を示した。
【００５９】
このようにして、発信源機器１２は、ビデオデータの第１の予測単位を符号化するときに第１の動きベクトル差分値を計算することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を符号化することと、ビデオデータの第２の予測単位を符号化するときに第２の動きベクトル差分値を計算することと、第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して第２の動きベクトル差分値を符号化することと、を行うように構成され、第１の動きベクトル差分値が第１のサブ画素精度を有し、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、ビデオエンコーダを含む装置の一例である。
【００６０】
予測データと残差データとを生成するためのイントラ予測符号化又はインター予測符号化の後、及び変換係数を生成するための（Ｈ．２６４／ＡＶＣで使用される４×４又は８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、ｎはｍよりも大きい。
【００６１】
量子化の後に、例えば、コンテンツ適応型可変長符号化（ＣＡＶＬＣ：content adaptive variable length coding）、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）、又は別のエントロピー符号化方法に従って、量子化データのエントロピー符号化が実行され得る。エントロピー符号化用に構成された処理ユニット、又は別の処理ユニットは、量子化係数のゼロランレングス符号化、及び／又は符号化ブロックパターン（ＣＢＰ：coded block pattern）値、マクロブロックタイプ、符号化モード、ＬＣＵサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
【００６２】
宛先機器１４のビデオデコーダ３０は、本開示のビデオエンコーダ２０の技法のいずれか又は全てと同様の、概して対称的な技法を実行するように構成され得る。例えば、ビデオデコーダ３０は、ＣＵのＰＵの動きベクトルのサブ画素精度の指標が符号化されたコンテキストを定義する情報を受信するように構成され得る。ビデオエンコーダ２０は、ＣＵとＰＵとを含むＬＣＵのための４分木におけるコンテキスト情報を与え得、ビデオデコーダ３０は、そのコンテキスト情報を受信し得る。コンテキスト情報は、ＣＵ及び／又はＰＵについてのサイズ情報、例えば、ＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプに対応し得る。ビデオデコーダ３０は、例えば、動きベクトルが１／４画素精度を有するのか１／８画素精度を有するのかを決定するために、コンテキスト情報を使用して、動きベクトルのサブ画素精度の指標を復号し得る。例えば、ビデオデコーダ３０は、動きベクトルのサブ画素精度の指標をエントロピー復号するために、コンテキスト情報を使用して逆エントロピー符号化プロセスを実行し得る。
【００６３】
このようにして、宛先機器１４は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを行うように構成され、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、ビデオデコーダを含む装置の一例である。
【００６４】
上述のように、動きベクトルは、動きベクトルと動き予測子との間の差分として計算されるＭＶＤ値を使用して符号化され得る。ビデオデコーダ３０は、動き予測子を選択するためのビデオエンコーダ２０の技法と概して同様の技法で構成され得る。例えば、ビデオエンコーダ２０とビデオデコーダ３０の両方は、前に符号化された隣接ＰＵの動きベクトルの中央値として現在のＰＵのための動き予測子を選択するように構成され得る。従って、ビデオデコーダ３０は、動き予測子に動きベクトルのＭＶＤ値を追加することによって動きベクトルを復号し得る。
【００６５】
その上、本開示の技法によれば、ビデオデコーダ３０は、動きベクトルのサブ画素精度に基づいて、異なるＭＶＤ復号方式で構成され得る。従って、ビデオデコーダ３０は、上記で説明したサブ画素精度の受信された指標から決定された動きベクトルのサブ画素精度に基づいて、適用すべきＭＶＤ復号方式を選択し得る。例えば、ビデオデコーダ３０は、第１のＭＶＤ値が１／８画素精度の指標に対応するときに、第１のＭＶＤ値に第１のＭＶＤ符号化方式を適用し得、ビデオデコーダ３０は、第２のＭＶＤ値が１／４画素精度の指標に対応するときに、第２のＭＶＤ値に第２のＭＶＤ符号化方式を適用し得る。他の例では、他のＭＶＤ符号化方式が動きベクトルの他のサブ画素精度に対応し得る。
【００６６】
このようにして、宛先機器１４は、ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を復号することと、ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して第２の動きベクトル差分値を復号することと、を行うように構成されたビデオデコーダを含み、第１の動きベクトル差分値が第１のサブ画素精度を有し、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、装置の一例である。
【００６７】
更に、ビデオデコーダ３０は、ＣＵのクロミナンスデータを復号するために、ＣＵのルミナンスデータのために受信された動きベクトルを再利用するように構成され得る。この場合も、ルミナンスデータの動きベクトルが、例えば、１／８画素精度を有し、ＣＵのクロミナンスデータが１／４（水平方向と垂直方向の両方に１／２解像度）にダウンサンプリングされる場合、動きベクトルは、クロミナンスデータに対して１／１６画素精度を有し得る。ビデオデコーダ３０は、（ルミナンスデータの）１／８画素精度動きベクトルを１／４画素精度に量子化するのではなく、双線形補間を使用して１／１６画素精度位置の値を補間するように構成され得る。
【００６８】
このようにして、宛先機器１４は、ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを復号することとを行うように構成されたビデオデコーダを含む装置の一例である。
【００６９】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、適用可能なとき、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ又はデコーダ回路のいずれか、若しくはそれらの任意の組合せとして実施され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ以上のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０及び／又はビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、及び／又はセルラー電話などのワイヤレス通信機器を備え得る。
【００７０】
図２は、適応動きベクトル解像度をサポートするための技法を実施し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ＬＣＵとＣＵとＰＵとを含むビデオフレーム内のブロックのイントラ予測及びインター予測を実行し、ＴＵとして符号化され得る残差値を計算し得る。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、幾つかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）又は双方向予測（Ｂモード）などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。動き推定ユニット４２及び動き補償ユニット４４はインター予測符号化を実行し得、イントラ予測ユニット４６はイントラ予測符号化を実行し得る。
【００７１】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照フレーム記憶部６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００７２】
符号化プロセス中に、ビデオエンコーダ２０は符号化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロック（例えば、ＬＣＵ）に分割され得る。動き推定ユニット４２及び動き補償ユニット４４は、時間圧縮を行うために、１つ以上の参照フレーム中の１つ以上のブロックに対する受信したビデオブロックのインター予測符号化を実行する。イントラ予測ユニット４６は、空間圧縮を行うために、符号化されるべきブロックと同じフレーム又はスライス中の１つ以上の隣接ブロックに対する受信したビデオブロックのイントラ予測符号化を実行し得る。
【００７３】
モード選択ユニット４０は、例えば、誤差結果に基づいて符号化モード、即ち、イントラ又はインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラ符号化ブロック又はインター符号化ブロックを加算器５０に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラ符号化ブロック又はインター符号化ブロックを加算器６２に与え得る。モード選択ユニット４０がブロックのためにインターモード符号化を選択すると、解像度選択ユニット４８はそのブロックの動きベクトルの解像度を選択し得る。例えば、解像度選択ユニット４８は、そのブロックの動きベクトルのために１／８画素精度又は１／４画素精度を選択し得る。
【００７４】
一例として、解像度選択ユニット４８は、ブロックを符号化するために１／４画素精度動きベクトルを使用することと、ブロックを符号化するために１／８画素精度動きベクトルを使用することとの間の誤差差分を比較するように構成され得る。動き推定ユニット４２は、第１の符号化パスにおいて１つ以上の１／４画素精度動きベクトルを使用してブロックを符号化することと、第２の符号化パスにおいて１つ以上の１／８画素精度動きベクトルを使用してブロックを符号化することとを行うように構成され得る。動き推定ユニット４２は、更に、第３の符号化パスにおいてブロックに対して１つ以上の１／４画素精度動きベクトルと１つ以上の１／８画素精度動きベクトルとの様々な組合せを使用し得る。解像度選択ユニット４８は、ブロックの各符号化パスのレート歪み値を計算し、レート歪み値間の差分を計算し得る。
【００７５】
差分が閾値を超えると、解像度選択ユニット４８は、ブロックを符号化するために１／８画素精度動きベクトルを選択し得る。解像度選択ユニット４８はまた、インターモード予測プロセス中にブロックを符号化するとき、動きベクトルに対して１／８画素精度を使用すべきか又は１／４画素精度を使用すべきかを決定するために、レート歪み情報を評価し、ビットバジェット（bit budget）を分析し、及び／又は他のファクタを分析し得る。インターモード符号化されるべきブロックのために１／８画素精度又は１／４画素精度を選択した後、モード選択ユニット４０又は動き推定は、動きベクトルの選択された精度を示すメッセージ（例えば、信号）を動き推定ユニット４２に送り得る。
【００７６】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又は、他の符号化単位）内の符号化されている現在のブロックに対する予測参照フレーム（又は、他の符号化単位）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、又は他の差分メトリックによって決定され得る画素差分に関して、符号化されるべきブロックにぴったり一致することが分かるブロックである。動きベクトルはまた、マクロブロックの区分の変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックを取込む又は生成することに関与し得る。この場合も、幾つかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００７７】
動き推定ユニット４２は、ビデオブロックを参照フレーム記憶部６４中の参照フレームのビデオブロックと比較することによってインター符号化フレームのビデオブロックの動きベクトルを計算する。動き補償ユニット４４はまた、参照フレーム、例えば、Ｉフレーム又はＰフレームのサブ整数画素を補間し得る。一例として、ＩＴＵ  Ｈ．２６４規格には、符号化されている現在のフレームよりも前の表示順序を有する参照フレームを含むリスト０、及び符号化されている現在のフレームよりも後の表示順序を有する参照フレームを含むリスト１の２つのリストが記載されている。従って、参照フレーム記憶部６４に記憶されたデータは、これらのリストに従って編成され得る。
【００７８】
本開示の技法によれば、動き補償ユニット４４は、ＣＵのルミナンスデータの動きベクトルが１／８画素精度を有するときに、ＣＵのクロミナンスデータの１／１６画素位置の値を補間するように構成され得る。クロミナンスデータの１／１６画素位置の値を補間するために、動き補償ユニット４４は双線形補間（bilinear interpolation）を利用し得る。従って、加算器５０は、参照ブロックの１／１６画素位置の双線形補間値に対するＣＵのクロミナンスデータの残差を計算し得る。このようにして、ビデオエンコーダ２０は、符号化単位のルミナンスデータが、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用して符号化されたとき、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算し、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化し得る。
【００７９】
動き推定ユニット４２は、参照フレーム記憶部６４からの１つ以上の参照フレームのブロックを現在のフレーム、例えば、Ｐフレーム又はＢフレームの符号化すべきブロックと比較する。参照フレーム記憶部６４中の参照フレームがサブ整数画素の値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数画素位置を参照し得る。動き推定ユニット４２及び／又は動き補償ユニット４４はまた、サブ整数画素位置の値が参照フレーム記憶部６４に記憶されていない場合、参照フレーム記憶部６４に記憶された参照フレームのサブ整数画素位置の値を計算するように構成され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームブロックは予測ブロックと呼ばれることがある。
【００８０】
ビデオエンコーダ２０の動き推定ユニット４２、動き補償ユニット４４、モード選択ユニット４０、又は別のユニットはまた、ブロックを符号化するために使用される動きベクトルについての１／４画素精度の使用か又は１／８画素精度の使用かを信号伝達し得る。例えば、動き推定ユニット４２は、動きベクトルのサブ整数画素精度の指標をエントロピー符号化ユニット５６に送り得る。動き推定ユニット４２はまた、動きベクトルに対応するＰＵについてのサイズ情報に関係するコンテキスト情報をエントロピー符号化ユニット５６に与え得、サイズ情報は、ＰＵを含むＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプのいずれか又は全てを含み得る。
【００８１】
動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ２０は、符号化されている元のビデオブロックから、動き補償ユニット４４からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つ以上の構成要素を表す。変換ユニット５２は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。
【００８２】
変換ユニット５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。量子化ユニット５４は、ビットレートを更に低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００８３】
量子化の後、エントロピー符号化ユニット５６が量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテンツ適応型可変長符号化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）、又は別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化されたビデオは、別の機器に送信されるか、あるいは後で送信するか又は取り出すためにアーカイブされ得る。コンテキスト適応型バイナリ算術符号化の場合、コンテキストは隣接マクロブロックに基づき得る。
【００８４】
場合によっては、エントロピー符号化ユニット５６又はビデオエンコーダ２０の別のユニットは、エントロピー符号化に加えて他の符号化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット５６はマクロブロック及び区分のＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は、マクロブロック又はそれの区分中の係数のランレングス符号化を実行し得る。特に、エントロピー符号化ユニット５６は、マクロブロック又は区分中の変換係数を走査するためにジグザグ走査又は他の走査パターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット５６はまた、符号化されたビデオビットストリーム中での送信のために適切なシンタックス要素を用いてヘッダ情報を構成し得る。
【００８５】
本開示の技法によれば、エントロピー符号化ユニット５６は、例えば、動きベクトルが１／４画素精度を有するのか１／８画素精度を有するのか（様々な例では、他のサブ画素精度を有するのか）を示すための、動きベクトルのサブ画素精度の指標を符号化するように構成され得る。エントロピー符号化ユニット５６は、ＣＡＢＡＣを使用して指標を符号化し得る。更に、エントロピー符号化ユニット５６は、動きベクトルに対応するＰＵについてのサイズ情報を示す、ＣＡＢＡＣを実行するためのコンテキスト情報を使用して指標を符号化し得、サイズ情報は、ＰＵを含むＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプのいずれか又は全てを含み得る。
【００８６】
動き推定ユニット４２は、更に、動きベクトルの動きベクトル差分（ＭＶＤ）値を計算し、動きベクトル自体ではなくＭＶＤ値をエントロピー符号化ユニット５６に受け渡し得る。エントロピー符号化ユニット５６は、各々が動きベクトルのサブ画素精度に関係する様々なＭＶＤ符号化方式で構成され得る。従って、エントロピー符号化ユニット５６は、ＭＶＤ値に対応する動きベクトルのサブ画素精度に対応するＭＶＤ符号化方式を使用して、動きベクトルのＭＶＤ値を符号化し得る。
【００８７】
一例として、エントロピー符号化ユニット５６は、１／４画素精度のための第１のＭＶＤ符号化方式と１／８画素精度のための第２のＭＶＤ符号化方式とで構成され得る。第１のＭＶＤ符号化方式は、ＭＶＤ値が閾値よりも小さいときに単項コードワードを使用してＭＶＤ値を符号化することと、ＭＶＤ値が閾値よりも大きいかそれに等しいときにゴロムコードワードを使用してＭＶＤ値を符号化することとを備え得る。第１の符号化方式の閾値は、例えば、値１０を備え得る。第２のＭＶＤ符号化方式は、ＭＶＤ値が閾値よりも小さいときに単項コードワードを使用してＭＶＤ値を符号化することと、またＭＶＤ値が閾値よりも大きいかそれに等しいときにゴロムコードワードを使用してＭＶＤ値を符号化することとを備え得、第２のＭＶＤ符号化方式の閾値は、例えば、値５を備え得る。第１及び第２のＭＶＤ符号化方式における単項コードワードとゴロムコードワードとは、１／４及び１／８画素精度動きベクトルに対応するＭＶＤ値について収集された異なる統計値に基づいて異なり得る。エントロピー符号化ユニット５６は、ＭＶＤ値の符号化（例えば、単項又はゴロム）表現を出力し得る。幾つかの例では、エントロピー符号化ユニット５６は、ＭＶＤ値がそれの対応する閾値を超えたかどうかの（１ビットフラグなどの）指標を与え得、従って暗黙的に、符号化表現が単項コードワードを備えるのかゴロムコードワードを備えるのかについての指標を与え得る。
【００８８】
逆量子化ユニット５８及び逆変換ユニット６０は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレーム記憶部６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つ以上の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレーム記憶部６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するために動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８９】
このようにして、図２は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを行うように構成され、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、ビデオエンコーダの一例を表す。
【００９０】
同様に、図２は、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用してビデオデータの符号化単位のルミナンスデータを符号化することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化することとを行うように構成されたビデオエンコーダの一例を表す。
【００９１】
更に、図２は、ビデオデータの第１の予測単位を符号化するときに第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を符号化することと、ビデオデータの第２の予測単位を符号化するときに第２の異なるサブ画素精度を有する第２の動きベクトル差分値を計算することと、第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して第２の動きベクトル差分値を符号化することと、を行うように構成されたビデオエンコーダの一例を表す。
【００９２】
図３は、符号化されたビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレーム記憶部８２と、加算器８０とを含む。ビデオデコーダ３０は、幾つかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。
【００９３】
エントロピー復号ユニット７０は、例えば、ネットワーク、ブロードキャストを介して又は物理媒体から符号化されたビットストリームを受信し得る。符号化されたビットストリームはエントロピー符号化ビデオデータを含み得る。本開示の技法によれば、エントロピー符号化ビデオデータは、ＣＵのＰＵの動きベクトルのサブ整数画素精度のエントロピー符号化指標を含み得る。エントロピー符号化ビデオデータは、ＣＵとＰＵとを含むＬＣＵのための４分木データ構造をも含み得る。４分木データ構造は、ＰＵについてのサイズ情報、例えば、ＰＵを含むＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプを記述するデータを含み得る。エントロピー復号ユニット７０は、動きベクトルのサブ画素精度の指標をエントロピー復号するときにコンテキスト情報としてサイズ情報を使用し得る。このようにして、エントロピー復号ユニット７０は、動きベクトルのサブ整数画素精度の指標を復号し、その指標を動き補償ユニット７２に送り得る。
【００９４】
エントロピー復号ユニット７０はまた、ＰＵの符号化された動きベクトル差分（ＭＶＤ）値を受信し得る。エントロピー復号ユニット７０は、動きベクトルに対して決定されたサブ整数画素精度を使用して、ＰＵのＭＶＤ値に適用すべきエントロピー復号方式を決定し得る。特に、エントロピー復号ユニット７０は、各々が動きベクトルのそれぞれのサブ画素精度に関連する様々な異なるＭＶＤ復号方式で構成され得る。エントロピー復号ユニット７０は、ＭＶＤ値を復号するために、上記で説明したように復号された指標によって示されるサブ画素精度に関連するＭＶＤ復号方式を選択し得る。エントロピー復号ユニット７０は、復号されたＭＶＤ値を動き補償ユニット７２に送り得、動き補償ユニット７２は、例えば、前に符号化された隣接ＰＵの動きベクトルの中央値に対応し得る動き予測子に対するＰＵの動きベクトルを復号し得る。
【００９５】
動き補償ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、参照フレーム記憶部８２中の参照フレーム中の予測ブロックを識別し得る。イントラ予測ユニット７４は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、例えば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、各マクロブロックについてビデオエンコーダ２０によって計算される量子化パラメータＱＰYの使用を含み得る。
【００９６】
逆変換ユニット５８は、逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。本開示の技法によれば、動き補償ユニット７２は、動きベクトルがルミナンスデータに対して１／８画素精度を有するときに、参照ブロックのクロミナンスデータの１／１６画素位置の値を補間し得る。例えば、動き補償ユニット７２は、双線形補間を使用して、参照ブロックの１／１６画素位置の値を補間し得る。
【００９７】
動き補償ユニット７２は、シンタックス情報の幾つかを使用して、符号化されたビデオシーケンスの（１つ以上の）フレーム及び／又は（１つ以上の）スライスを符号化するために使用されたＬＣＵ及びＣＵのサイズと、符号化されたビデオシーケンスのフレームの各マクロブロックがどのように区分されるかを記述する区分情報と、各区分がどのように符号化されるかを示すモードと、各インター符号化ＣＵのための１つ以上の参照フレーム（及び参照フレームリスト）と、符号化されたビデオシーケンスを復号するための他の情報とを決定する。
【００９８】
加算器８０は、残差ブロックを、動き補償ユニット７２又はイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号されたブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号されたビデオブロックは、次いで、参照フレーム記憶部８２に記憶され、参照フレーム記憶部８２は、その後の動き補償のための参照ブロックを与え、また、表示装置（図１の表示装置３２など）上での提示のために復号されたビデオを生成する。
【００９９】
このようにして、図３は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することであって、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを行うように構成されたビデオデコーダの一例を表す。
【０１００】
図３はまた、ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを復号することとを行うように構成されたビデオデコーダの一例を表す。
【０１０１】
図３は、更に、ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を復号することと、ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して第２の動きベクトル差分値を復号することとを行うように構成され、第１の動きベクトル差分値が第１のサブ画素精度を有し、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、ビデオデコーダの一例を表す。
【０１０２】
図４は、フル画素位置に対する分数画素位置を示す概念図である。特に、図４は、フル画素（ペル）１００に対する分数画素位置を示している。フル画素１００は、１／２画素位置１０２Ａ〜１０２Ｃ（１／２ペル１０２）と、１／４画素位置１０４Ａ〜１０４Ｌ（１／４ペル１０４）と、１／８画素位置１０６Ａ〜１０６ＡＶ（１／８ペル１０６）とに対応する。
【０１０３】
図４は、ブロックの１／８画素位置１０６が随意に含まれ得ることを示すために、破線の輪郭を使用してこれらの位置を示している。即ち、動きベクトルが１／８画素精度を有する場合、動きベクトルは、フル画素位置１００、１／２画素位置１０２、１／４画素位置１０４、又は１／８画素位置１０６のいずれかをポイントし得る。しかしながら、動きベクトルが１／４画素精度を有する場合、動きベクトルは、フル画素位置１００、１／２画素位置１０２、又は１／４画素位置１０４のいずれかをポイントし得るが、１／８画素位置１０６はポイントしないであろう。更に、他の例では、他の精度、例えば、１／１６画素精度、１／３２画素精度などが使用され得ることを理解されたい。
【０１０４】
フル画素位置１００における画素の値は、対応する参照フレーム中に含まれ得る。即ち、フル画素位置１００における画素の値は、概して、例えば、参照フレームが表示されたときに最終的にレンダリングされ表示される、参照フレーム中の画素の実効値に対応する。（分数画素位置と総称される）１／２画素位置１０２、１／４画素位置１０４、及び１／８画素位置１０６の値は、適応補間フィルタ又は固定補間フィルタ、例えば、様々なウィーナーフィルタ（Wiener filter）、双線形フィルタ、又は他のフィルタなど、様々な数の「タップ」（係数）のフィルタを使用して補間され得る。概して、分数画素位置の値は、隣接するフル画素位置又は前に決定された分数画素位置の値に対応する１つ以上の隣接画素から補間され得る。
【０１０５】
本開示の技法によれば、ビデオエンコーダ２０などのビデオエンコーダは、例えば、１／８画素精度と１／４画素精度との間で動きベクトルのサブ画素精度を適応的に選択し得る。ビデオエンコーダ２０は、各動きベクトル、各ＣＵ、各ＬＣＵ、各スライス、各フレーム、各ＧＯＰ、又はビデオデータの他の符号化単位についてこの選択を行い得る。ビデオエンコーダ２０が動きベクトルに対して１／４画素精度を選択したとき、動きベクトルは、フル画素位置１００、１／２画素位置１０２、又は１／４画素位置１０４のいずれかを参照し得る。ビデオエンコーダ２０が動きベクトルに対して１／８画素精度を選択したとき、動きベクトルは、フル画素位置１００、１／２画素位置１０２、１／４画素位置１０４、又は１／８画素位置１０６のいずれかを参照し得る。
【０１０６】
図５Ａ〜図５Ｃは、対応するクロミナンス画素位置及びルミナンス画素位置を示す概念図である。図５Ａ〜図５Ｃはまた、ルミナンスデータについて計算された動きベクトルがどのようにクロミナンスデータのために再利用され得るかを示している。前置きとして、図５Ａ〜図５Ｃは画素位置の部分行を示している。実際には、フル画素位置は、図４に示したものなど、関連する分数画素位置の矩形格子を有し得ることを理解されたい。図５Ａ〜図５Ｃの例は、本開示において説明する概念を示すものであり、分数クロミナンス画素位置と分数ルミナンス画素位置との間の対応の網羅的なリストとして意図されていない。
【０１０７】
図５Ａ〜図５Ｃは、フルルミナンス画素位置１１０と、１／２ルミナンス画素位置１１６と、１／４画素位置１１２と、１／８ルミナンス画素位置１１４Ａ、１１４Ｂとを含む、ルミナンスブロックの画素位置を示している。図５Ａ〜図５Ｃはまた、フルクロミナンス画素位置１２０と、１／４クロミナンス画素位置１２２と、１／８クロミナンス画素位置１２４と、１／１６クロミナンス画素位置１２６Ａ、１２６Ｂとを含む、クロミナンスブロックの対応する画素位置を示している。この例では、フルクロミナンス画素１２０はフルルミナンス画素１１０に対応する。更に、この例では、クロミナンスブロックは、ルミナンスブロックに対して、水平及び垂直に２分の１にダウンサンプリングされる。従って、１／４クロミナンス画素１２２は１／２ルミナンス画素１１６に対応する。同様に、１／８クロミナンス画素１２４は１／４ルミナンス画素１１２に対応し、１／１６クロミナンス画素１２６Ａは１／８ルミナンス画素１１４Ａに対応し、１／１６クロミナンス画素１２６Ｂは１／８ルミナンス画素１１４Ｂに対応する。
【０１０８】
図５Ａに、フルルミナンス画素位置１１０を指し示すルミナンス動きベクトル１１８Ａの例を示す。ビデオエンコーダ２０又はビデオデコーダ３０などのビデオ符号化ユニットは、クロミナンスブロックに対して動き補償を実行するときにルミナンス動きベクトル１１８Ａを再利用し得る。従って、クロミナンス動きベクトル１２８Ａは、フルクロミナンス画素１２０とフルルミナンス画素１１０との間の対応により、フルクロミナンス画素１２０を指し示し得る。クロミナンス動きベクトル１２８Ａによってポイントされる画素の値は、フルクロミナンス画素１２０の値に等しくなり得る。従って、予測クロミナンスブロック中の各画素は、参照フレーム中の対応する画素に等しく設定され得る。
【０１０９】
図５Ｂに、１／４ルミナンス画素位置１１２を指し示すルミナンス動きベクトル１１８Ｂの例を示す。クロミナンス動きベクトル１２８Ｂは、今度は、１／８クロミナンス画素位置１２４を指し示す。ビデオ符号化ユニットは、１／８クロミナンス画素位置１２４に関連する補間フィルタを使用して１／８クロミナンス画素位置１２４の値を補間し得る。
【０１１０】
図５Ｃに、１／８ルミナンス画素位置１１４Ａを指し示すルミナンス動きベクトル１１８Ｃの例を示す。クロミナンス動きベクトル１２８Ｃは、今度は、１／１６クロミナンス画素位置１２６Ａを指し示す。ビデオ符号化ユニットは、本開示の技法によれば、双線形補間を使用して１／１６クロミナンス画素位置１２６Ａの値を補間し得る。例えば、ビデオエンコーダ２０は、ルミナンスデータについて計算された動きベクトル（例えば、ルミナンス動きベクトル１１８Ｃ）がルミナンスデータの１／８画素位置１１４Ａを参照するとき、ＣＵのクロミナンスデータを符号化するために、双線形補間を使用して１／１６画素位置１２６Ａの値を補間し得る。同様に、ビデオエンコーダ３０は、ルミナンスデータのために受信された動きベクトル（例えば、ルミナンス動きベクトル１１８Ｃ）がルミナンスデータの１／８画素位置１１４Ａを参照するとき、ＣＵのクロミナンスデータを復号するために、双線形補間を使用して１／１６画素位置１２６Ａの値を補間し得る。
【０１１１】
図６は、本開示の技法による、ビデオデータを符号化するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０（図１及び図２）に関して説明するが、図６の技法はいずれのビデオ符号化ユニットによっても実行され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図６に示すステップは異なる順序で実行され得、幾つかのステップは省略され得、追加のステップが追加され得る。
【０１１２】
初めに、ビデオエンコーダ２０がビデオデータのブロック（例えば、ＣＵ）を受信する（１５０）。解像度選択ユニット４８が、１／８画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきか、又は１／４画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきかを決定する（１５２）。例えば、ビデオエンコーダ２０は、１／８画素精度を使用する符号化パスと、１／４画素精度を使用する別の符号化パスの２つの符号化パスを実行し得、解像度選択ユニット４８は、２つの符号化パスから生じるレート歪み値を比較して、ＰＵを符号化するために１／８画素精度動きベクトルを使用すべきか１／４画素精度動きベクトルを使用すべきかを決定し得る。
【０１１３】
幾つかの例では、例えば、解像度選択ユニット４８が、１／８画素精度動きベクトルが使用されるべきと決定した場合、ビデオエンコーダ２０は、参照フレーム記憶部６４に記憶されたクロミナンス参照フレームの１／１６画素位置の値を双線形補間する（１５４）。ビデオエンコーダ２０は、１／１６画素位置の値を常に補間する必要はなく、従って、ステップ１５４は、このステップが随意であることを示すために破線の輪郭を用いて示されている。
【０１１４】
いずれの場合も、ビデオエンコーダ２０は、次いで、選択された精度の動きベクトルを使用してブロック（例えば、ＣＵ）を符号化する（１５６）。例えば、動き推定ユニット４２が、ＣＵのＰＵの動き探索を実行し、ＰＵのルミナンスデータを参照フレームのルミナンスデータと比較して、ルミナンスデータに対して選択された精度を有する動きベクトルを計算し得る。次いで、動き補償ユニット４４が、動きベクトルを使用してＰＵのルミナンスデータを取り出し、また、同じ動きベクトルを使用してＰＵのクロミナンスデータを取り出し得る。動き補償ユニット４４は、双線形補間を再び使用して、参照ブロックの１／１６画素位置の値を計算し得る。動き補償ユニット４４は、参照ブロックをＰＵの予測値として加算器５０に与えて、ＰＵの残差、例えば、予測値とＰＵの実効値との間の差を加算器５０に計算させ得る。
【０１１５】
このようにして、図６の方法は、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用してビデオデータの符号化単位のルミナンスデータを符号化することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化することとを含む方法の一例を表す。
【０１１６】
動き推定ユニット４２又は解像度選択ユニット４８は、動きベクトルの選択されたサブ画素精度の指標、及びＰＵについてのサイズ情報をエントロピー符号化ユニット５６に与え得る。ＰＵについてのサイズ情報は、例えば、ＰＵを含むＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプを含み得る。エントロピー符号化ユニット５６は、サイズ情報に基づいてＰＵのコンテキストを決定する（１５８）。エントロピー符号化ユニット５６は、ＰＵの決定されたコンテキストに基づいて、動きベクトルのサブ整数画素精度の指標をエントロピー符号化する（１６０）。
【０１１７】
このようにして、図６は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、方法の一例を表す。
【０１１８】
動き推定ユニット４２はまた、例えば、動き予測子に対する動きベクトルの動きベクトル差分値を計算する（１６２）。幾つかの例では、エントロピー符号化ユニット５６、動き補償ユニット４４、又はビデオエンコーダ２０の別のユニットが動きベクトル差分値を計算し得る。いずれの場合も、ビデオエンコーダ２０は、例えば、前に符号化された隣接ＰＵの動きベクトルの中央値として動き予測子を選択し得る。ビデオエンコーダ２０は、次いで、現在のＰＵの動きベクトルと動き予測子との間の差分を計算し得る。
【０１１９】
次いで、エントロピー符号化ユニット５６は、現在のＰＵの動きベクトルのサブ整数画素精度に基づいて、動きベクトル差分値を符号化するために使用すべき動きベクトル差分符号化方式を選択し得る。エントロピー符号化ユニット５６は、次いで、動きベクトルのサブ画素精度に基づく動きベクトル差分符号化方式を使用して動きベクトル差分値を符号化する（１６４）。
【０１２０】
図６の方法は複数回実行され得、本方法の各実行は、異なるサブ整数画素精度の動きベクトルに対応し得る。従って、図６の方法を実行することは、ビデオデータの第１の予測単位を符号化するときに第１の動きベクトル差分値を計算することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を符号化することと、ビデオデータの第２の予測単位を符号化するときに第２の動きベクトル差分値を計算することと、第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して第２の動きベクトル差分値を符号化することと、含み、第１の動きベクトル差分値が第１のサブ画素精度を有すし、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、方法の一例を備え得る。
【０１２１】
（符号化された動きベクトルを形成するための）動きベクトル差分値と動きベクトルのサブ整数画素精度の指標とを符号化した後に、エントロピー符号化ユニット５６は、符号化された動きベクトルと動きベクトルの精度の指標とを出力する（１６６）。幾つかの例では、例えば、様々な動きベクトル符号化方式が、それぞれのサブ整数画素精度に対応する異なる閾値を含むとき、エントロピー符号化ユニット５６は、動きベクトル差分がそれぞれの閾値を超えたかどうかの指標、例えば、１ビットフラグをも出力し得る。
【０１２２】
図７は、動きベクトルのサブ整数画素精度の指標をエントロピー符号化するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０（図１及び図２）に関して説明するが、図７の技法はいずれのビデオ符号化ユニットによっても実行され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図７に示すステップは異なる順序で実行され得、幾つかのステップは省略され得、追加のステップが追加され得る。
【０１２３】
初めに、ビデオエンコーダ２０がビデオデータのブロック（例えば、ＣＵ）を受信する（２００）。解像度選択ユニット４８が、１／８画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきか、又は１／４画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきかを決定する（２０２）。例えば、ビデオエンコーダ２０は、１／８画素精度を使用する符号化パスと、１／４画素精度を使用する別の符号化パスの２つの符号化パスを実行し得、解像度選択ユニット４８は、２つの符号化パスから生じるレート歪み値を比較して、ＰＵを符号化するために１／８画素精度動きベクトルを使用すべきか１／４画素精度動きベクトルを使用すべきかを決定し得る。
【０１２４】
ビデオエンコーダ２０は、次いで、選択された精度の動きベクトルを使用してＣＵを符号化する（２０４）。例えば、動き推定ユニット４２が、ＣＵのＰＵの動き探索を実行し、ＰＵのルミナンスデータを参照フレームのルミナンスデータと比較して、ルミナンスデータに対して選択された精度を有する動きベクトルを計算し得る。次いで、動き補償ユニット４４が、動きベクトルを使用してＰＵのルミナンスデータを取り出し、また、同じ動きベクトルを使用してＰＵのクロミナンスデータを取り出し得る。
【０１２５】
エントロピー符号化ユニット５６が、動きベクトルの選択された精度の指標、ならびにＣＵのＰＵについてのサイズ情報を受信する（２０６）。サイズ情報は、ＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプのいずれか又は全てを含み得る。エントロピー符号化ユニット５６は、サイズ情報に基づいて、動きベクトルの選択された精度の指標を符号化するためのコンテキストを決定する（２０８）。
【０１２６】
幾つかの例では、エントロピー符号化ユニット５６は、コンテキストと、コンテキストにおける動きベクトルの精度との各ペアリングについての統計値を収集し得る。このようにして、エントロピー符号化ユニット５６は、特定のコンテキストにおける動きベクトルの特定のサブ画素精度の可能性を決定し得る。これらの統計値に基づいて、エントロピー符号化ユニット５６は、動きベクトルのコンテキストに基づいて動きベクトルの精度の指標をエントロピー符号化する（２１０）。例えば、エントロピー符号化ユニット５６は、分数ビットを使用して指標を符号化するためにコンテキスト適応型バイナリ算術符号化を実行し得る。
【０１２７】
このようにして、図７は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用してビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することでと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー符号化することとを含み、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、方法の一例を表す。
【０１２８】
図８は、動きベクトルが、対応するルミナンスデータに対して１／８画素精度を有するときに、クロミナンスデータの１／１６画素位置の値を計算するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０（図１及び図２）に関して説明するが、図８の技法はいずれのビデオ符号化ユニットによっても実行され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図８に示すステップは異なる順序で実行され得、幾つかのステップは省略され得、追加のステップが追加され得る。
【０１２９】
初めに、ビデオエンコーダ２０がビデオデータのブロック（例えば、ＣＵ）を受信する（２２０）。図８の例では、解像度選択ユニット４８が、ＰＵの動きベクトルに対して１／８画素精度を使用してＣＵのＰＵを符号化することを決定する（２２２）。この決定に基づいて、動き補償ユニット４４が、参照フレーム記憶部６４によって記憶された参照フレーム中のルミナンスデータの１／８画素位置の値を計算する（２２４）。
【０１３０】
次いで、動き推定ユニット４２が、参照フレームのルミナンスデータに対するＰＵの動き探索を実行する（２２６）。例えば、動き推定ユニット４２は、ＰＵのルミナンスデータと参照フレームのルミナンスデータとの間の誤差を計算して、参照フレームの１／８画素位置ならびにフル画素位置を分析し得る。動き推定ユニット４２は、次いで、ＰＵのための参照ブロック、例えば、最も低い誤差を生じる参照ブロックを選択する（２２８）。
【０１３１】
次いで、ビデオエンコーダ２０は、参照ブロックのルミナンスデータに対するＰＵのルミナンスデータを符号化する（２３０）。例えば、加算器５０が、参照ブロックのルミナンスデータと、符号化されているＰＵとの間の画素ごとの差分を計算して、残差ブロックを形成し得る。ビデオエンコーダ２０は、次いで、例えば、残差ブロックを変換することと、変換されたブロックを量子化することと、量子化され変換されたブロックの係数を走査及び符号化することとによって、残差ブロックを符号化して変換ユニット（ＴＵ）を形成し得る。
【０１３２】
動き補償ユニット４４はまた、参照ブロックのクロミナンスデータの値を補間し得る。本開示の技法によれば、動き推定ユニット４２によって生成された動きベクトルが１／８画素精度を有するとき、動き補償ユニット４４は、双線形補間を使用して、参照ブロックのクロミナンスデータの１／１６画素位置の値を補間する（２３２）。次いで、ビデオエンコーダ２０は、補間された参照ブロックに対するＰＵのクロミナンスデータを符号化する（２３４）。例えば、加算器５０は、参照ブロックとＰＵのクロミナンス部分との間の画素ごとの差分として残差ブロックを計算し得る。この場合も、この残差ブロックは、ルミナンスブロックと同様の方法で、変換され、量子化され、走査され、エントロピー符号化され得る。
【０１３３】
このようにして、図８は、ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用してビデオデータの符号化単位のルミナンスデータを符号化することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを符号化することとを含む方法の一例を表す。
【０１３４】
図９は、動きベクトルのサブ画素精度に基づくエントロピー符号化方式を使用して、動きベクトルの動きベクトル差分値をエントロピー符号化するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０（図１及び図２）に関して説明するが、図９の技法はいずれのビデオ符号化ユニットによっても実行され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図９に示すステップは異なる順序で実行され得、幾つかのステップは省略され得、追加のステップが追加され得る。
【０１３５】
初めに、ビデオエンコーダ２０がビデオデータのブロック（例えば、ＣＵ）を受信する（２５０）。解像度選択ユニット４８が、１／８画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきか、又は１／４画素精度動きベクトルを使用してＣＵのＰＵを符号化すべきかを決定する（２５２）。例えば、ビデオエンコーダ２０は、１／８画素精度を使用する符号化パスと、１／４画素精度を使用する別の符号化パスの２つの符号化パスを実行し得、解像度選択ユニット４８は、２つの符号化パスから生じるレート歪み値を比較して、ＰＵを符号化するために１／８画素精度動きベクトルを使用すべきか１／４画素精度動きベクトルを使用すべきかを決定し得る。
【０１３６】
ビデオエンコーダ２０は、次いで、選択された精度の動きベクトルを使用してＣＵを符号化する（２５４）。例えば、動き推定ユニット４２が、ＣＵのＰＵの動き探索を実行し、ＰＵのルミナンスデータを参照フレームのルミナンスデータと比較して、ルミナンスデータに対して選択された精度を有する動きベクトルを計算し得る。次いで、動き補償ユニット４４が、動きベクトルを使用してＰＵのルミナンスデータを取り出し、また、同じ動きベクトルを使用してＰＵのクロミナンスデータを取り出し得る。
【０１３７】
次いで、エントロピー符号化ユニット５６が動きベクトル自体を符号化し得る。例えば、エントロピー符号化ユニット５６は、例えば、前に符号化された隣接ＰＵの動きベクトルの中央値として動きベクトルのための動き予測子を選択する（２５６）。エントロピー符号化ユニット５６は、次いで、受信されたＰＵの動きベクトルと動き予測子との間の動きベクトル差分（ＭＶＤ）を計算する（２５８）。
【０１３８】
エントロピー符号化ユニット５６は、次いで、現在のＰＵの動きベクトルの選択された精度に関連するＭＶＤ符号化方式を選択する（２６０）。エントロピー符号化ユニット５６は、次いで、選択されたＭＶＤ符号化方式を使用してＭＶＤを符号化する（２６２）。
【０１３９】
一例として、エントロピー符号化ユニット５６は、１／４画素精度動きベクトルに対応するＭＶＤ値を符号化するための第１のＭＶＤ符号化方式と、１／８画素精度動きベクトルに対応するＭＶＤ値を符号化するための第２のＭＶＤ符号化方式とを含み得る。エントロピー符号化ユニット５６が、動きベクトルが１／４画素精度を有するという指標を受信した場合、エントロピー符号化ユニット５６は、第１のＭＶＤ符号化方式を使用して動きベクトルのＭＶＤ値を符号化し得る。一方、エントロピー符号化ユニット５６が、動きベクトルが１／８画素精度を有するという指標を受信した場合、エントロピー符号化ユニット５６は、第２のＭＶＤ符号化方式を使用して動きベクトルのＭＶＤ値を符号化し得る。
【０１４０】
第１のＭＶＤ符号化方式は、ＭＶＤ値が閾値を下回るときは単項コードワードを使用してＭＶＤ値を符号化することと、他の場合はゴロムコードワードを使用してＭＶＤ値を符号化することとを備え得る。第１のＭＶＤ符号化方式の閾値は動きベクトルの１／４画素精度に対応し得る。同様に、単項コードワード及びゴロムコードワードは動きベクトルの１／４画素精度に対応し得る。従って、エントロピー符号化ユニット５６が、１／４画素精度を有する第１の動きベクトルを受信したとき、エントロピー符号化ユニット５６は、第１の動きベクトルのＭＶＤ値が第１のＭＶＤ符号化方式の閾値以上であるかどうかを決定し、それに応じて単項コードワード又はゴロムコードワードを使用してＭＶＤ値を符号化し得る。エントロピー符号化ユニット５６はまた、ＭＶＤ値が閾値を超えたかどうかの指標を与え得る。
【０１４１】
第２のＭＶＤ符号化方式は、ＭＶＤ値が閾値を下回るときは単項コードワード（unary codeword）を使用してＭＶＤ値を符号化することと、他の場合はゴロムコードワードを使用してＭＶＤ値を符号化することとを備え得る。第２のＭＶＤ符号化方式の閾値は動きベクトルの１／８画素精度に対応し得る。同様に、単項コードワード及びゴロムコードワードは動きベクトルの１／８画素精度に対応し得る。従って、エントロピー符号化ユニット５６が、１／８画素精度を有する第２の動きベクトルを受信したとき、エントロピー符号化ユニット５６は、第２の動きベクトルのＭＶＤ値が第２のＭＶＤ符号化方式の閾値以上であるかどうかを決定し、それに応じて単項コードワード又はゴロムコードワードを使用してＭＶＤ値を符号化し得る。エントロピー符号化ユニット５６はまた、ＭＶＤ値が閾値を超えたかどうかの指標を与え得る。
【０１４２】
このようにして、図９は、２回以上実行されるとき、ビデオデータの第１の予測単位を符号化するときに第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を符号化することとビデオデータの第２の予測単位を符号化するときに第２の異なるサブ画素精度を有する第２の動きベクトル差分値を計算することと、第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して第２の動きベクトル差分値を符号化することと、を含み得る方法の一例を表す。
【０１４３】
図１０は、本開示の技法による、ビデオデータを復号するための例示的な方法を示すフローチャートである。例としてビデオデコーダ３０（図１及び図３）に関して説明するが、図１０の技法はいずれのビデオ符号化ユニットによっても実行され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図１０に示すステップは異なる順序で実行され得、幾つかのステップは省略され得、追加のステップが追加され得る。
【０１４４】
初めに、ビデオデコーダ３０がビデオデータの符号化ブロック（例えば、ＣＵのＰＵ）を受信する（２８０）。ＣＵは、４分木データ構造に関連付けられ得るＬＣＵに対応し得る。４分木データ構造は、ＣＵについてのサイズ情報など、ＣＵの特性を記述し得る。サイズ情報は、例えば、ＣＵの深さ、ＰＵのサイズ、及び／又はＰＵのタイプを含み得る。このようにして、ビデオデコーダ３０は、ＣＵのＰＵについてのサイズ情報を受信する（２８２）。
【０１４５】
例として、ＰＵはＣＵのインター予測値に対応すると仮定する。従って、ＰＵは、特定のサブ整数画素精度を有する動きベクトルに関連し得る。従って、ビデオデコーダ３０は、更に、ＰＵの動きベクトルのサブ画素精度の符号化された指標を受信する（２８４）。動きベクトル自体が、例えば、動きベクトル差分（ＭＶＤ）値として符号化され得、従って、ビデオデコーダ３０は、更に、動きベクトルの符号化されたＭＶＤ値を受信する（２８６）。
【０１４６】
ビデオデコーダ３０は、例えば、ＣＡＢＡＣに従って、またコンテキストデータとしてＰＵについてのサイズ情報を使用して、動きベクトルのサブ整数画素精度の符号化された指標を復号する（２８８）。ビデオデコーダ３０はまた、動きベクトルの示されたサブ画素精度に関連するＭＶＤ復号方式を使用してＭＶＤ値を復号する（２９０）。ビデオデコーダ３０は、次いで、エンコーダによって適用された技法と同様の技法を使用して、動きベクトルのための動き予測子を選択し、動き予測子に動きベクトル差分値を追加して、動き予測子を再生し得る。
【０１４７】
ビデオデコーダ３０は、復号された動きベクトルを使用して、動きベクトルによって参照される参照ブロックに対する受信されたＣＵのルミナンスデータを復号する（２９２）。ビデオデコーダ３０は、動きベクトルのサブ整数画素精度に基づいて、参照ブロックのサブ整数画素位置の値を補間し得る。ビデオデコーダ３０は、ルミナンスデータの予測値として参照ブロックを使用し得る。ビデオデコーダ３０は、更に、例えば、ＴＵを逆走査し、逆量子化し、逆変換することによってＣＵのＴＵを復号して、ＣＵの残差ブロックを再生し得る。ビデオデコーダ３０は、残差ブロックと予測値とを組み合わせて、ＰＵに対応するＣＵの部分を復号し得る。
【０１４８】
動きベクトルが１／８画素精度を有するとき、ビデオデコーダ３０は、参照ブロックのクロミナンスデータの１／１６画素位置の値を双線形補間する（２９４）。このようにして、ビデオデコーダ３０は、ＣＵのクロミナンス部分の予測値を生成し得る。ルミナンスデータと同様に、ビデオデコーダ３０は、１／１６画素位置の値が計算された、動きベクトルによって参照される参照ブロックに対するＣＵのクロミナンスデータを復号する（２９６）。ビデオデコーダ３０は、次いで、復号されたクロミナンスデータとルミナンスデータとを含む復号されたＣＵを出力する（２９８）。
【０１４９】
このようにして、図１０は、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、動きベクトルが第１のサブ画素精度を有するのか第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、指標を復号するためのコンテキストを決定することであって、コンテキストが、符号化単位の深さと、予測単位のサイズと、予測単位のタイプとのうちの少なくとも１つを備える、決定することと、コンテキスト適応型バイナリ算術符号化に従って、決定されたコンテキストを使用して指標をエントロピー復号することとを含む方法の一例を表す。
【０１５０】
図１０はまた、ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、双線形補間を使用して、動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、参照ブロックの双線形補間値に基づいて符号化単位のクロミナンスデータを復号することとを含む方法の一例を表す。
【０１５１】
図１０は、更に、ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して第１の動きベクトル差分値を復号することと、ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して第２の動きベクトル差分値を復号することと、を含み、第１の動きベクトル差分値が第１のサブ画素精度を有し、第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、方法の一例を表す。
【０１５２】
１つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体など、有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、又は（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１５３】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１５４】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。更に、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に与えられ得、若しくは複合コーデックに組み込まれ得る。また、本技法は、１つ以上の回路又は論理要素において完全に実装され得る。
【０１５５】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実装され得る。本開示では、開示した技法を実行するように構成された機器の機能的態様を強調するために、様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明した１つ以上のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、若しくは相互動作ハードウェアユニットの集合によって与えられ得る。
【図１】
2013543713.tif 000005
【図２】
2013543713.tif 000006
【図３】
2013543713.tif 000007
【図４】
2013543713.tif 000008
【図５Ａ】
2013543713.tif 000009
【図５Ｂ】
2013543713.tif 000010
【図５Ｃ】
2013543713.tif 000011
【図６】
2013543713.tif 000012
【図７】
2013543713.tif 000013
【図８】
2013543713.tif 000014
【図９】
2013543713.tif 000015
【図１０】
2013543713.tif 000016
【手続補正書】
【提出日】平成25年6月17日(2013.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、
前記コンテキスト適応型バイナリ算術符号化に従って、決定された前記コンテキストを使用して前記指標をエントロピー符号化することと、
を備え、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、方法。
【請求項２】
前記第１のサブ画素精度が１／４画素精度を備え、前記第２のサブ画素精度が１／８画素精度を備える、請求項１に記載の方法。
【請求項３】
前記符号化単位が２Ｎ×２Ｎ画素のサイズを有し、前記予測単位のタイプが、２Ｎ×２Ｎ画素と、２Ｎ×Ｎ画素と、Ｎ×２Ｎ画素と、Ｎ×Ｎ画素とのうちの１つのサイズを有する前記予測単位に対応し、Ｎが、０よりも大きい整数値である、請求項１に記載の方法。
【請求項４】
前記予測単位を符号化することが、前記符号化単位のルミナンスデータの前記動きベクトルを計算することであって、前記ルミナンスデータが前記予測単位に対応する、計算することを備え、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を更に備える、請求項１に記載の方法。
【請求項５】
前記予測単位が第１の予測単位を備え、前記方法が、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、
を更に備える、請求項１に記載の方法。
【請求項６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することは、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、
前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、
前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することと、
を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することは、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、
前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、
前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することと、
を備える、請求項５に記載の方法。
【請求項７】
前記第１の動きベクトル差分符号化方式が１／４画素精度に関連し、前記第２の動きベクトル差分符号化方式が１／８画素精度に関連する、請求項５に記載の方法。
【請求項８】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することが、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択することを備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することが、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択することを備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項５に記載の方法。
【請求項９】
ビデオデータを符号化する方法であって、
ルミナンスデータに対して１／８画素精度を有する動きベクトルを使用して、ビデオデータの符号化単位の前記ルミナンスデータを符号化することと、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を備える、方法。
【請求項１０】
ビデオデータを符号化する方法であって、
ビデオデータの第１の予測単位を符号化するときに第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに第２の異なるサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、
を備える、方法。
【請求項１１】
ビデオデータを符号化するための装置であって、第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化することとを行うように構成され、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、ビデオエンコーダを備える、装置。
【請求項１２】
前記ビデオエンコーダが、前記符号化単位のルミナンスデータの前記動きベクトルを計算することを行うように構成され、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、前記ビデオエンコーダが、双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することとを行うように構成された、請求項１１に記載の装置。
【請求項１３】
前記予測単位が第１の予測単位を備え、前記ビデオエンコーダが、前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、を行うように構成された、請求項１１に記載の装置。
【請求項１４】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することとを行うように構成され、前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することとを行うように構成された、請求項１３に記載の装置。
【請求項１５】
前記第１の動きベクトル差分符号化方式が１／４画素精度に関連し、前記第２の動きベクトル差分符号化方式が１／８画素精度に関連する、請求項１３に記載の装置。
【請求項１６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択するように構成され、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するために、前記ビデオエンコーダが、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択するように構成され、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項１３に記載の装置。
【請求項１７】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダを含むワイヤレス通信機器と、
のうちの少なくとも１つを備える、請求項１１に記載の装置。
【請求項１８】
ビデオデータを符号化するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化するための手段と、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定するための手段と、
前記コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化するための手段と、
を備え、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、装置。
【請求項１９】
前記予測単位を符号化するための前記手段が、前記符号化単位のルミナンスデータの前記動きベクトルを計算するための手段を備え、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算するための手段と、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化するための手段と、
を更に備える、請求項１８に記載の装置。
【請求項２０】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算するための手段と、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための手段と、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算するための手段と、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための手段と、
を更に備える、請求項１８に記載の装置。
【請求項２１】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための前記手段は、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値よりも小さいときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値よりも大きいかそれに等しいときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化するための手段と、
を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための前記手段は、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較するための手段と、
前記第２の動きベクトル差分値が前記第２の閾値よりも小さいときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化するための手段と、
前記第２の動きベクトル差分値が前記第２の閾値よりも大きいかそれに等しいときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化するための手段と、
を備える、請求項２０に記載の装置。
【請求項２２】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化するための前記手段が、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択するための手段を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化するための前記手段が、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択するための手段を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項２０に記載の装置。
【請求項２３】
実行されたとき、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して、ビデオデータの符号化単位の予測単位を符号化することと、
コンテキスト適応型バイナリ算術符号化を使用して、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについての指標を符号化するためのコンテキストを決定することと、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー符号化することと、
を、ビデオデータを符号化するための機器のプロセッサに行わせる命令を記憶し、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項２４】
前記予測単位を符号化することを前記プロセッサに行わせる前記命令が、前記符号化単位のルミナンスデータの前記動きベクトルを計算することを前記プロセッサに行わせる命令を備え、前記ルミナンスデータが前記予測単位に対応し、前記動きベクトルが前記ルミナンスデータに対して１／８画素精度を有し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを符号化することと、
を前記プロセッサに行わせる命令を更に備える、請求項２３に記載のコンピュータプログラム製品。
【請求項２５】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位を符号化するときに前記第１のサブ画素精度を有する第１の動きベクトル差分値を計算することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することと、
前記ビデオデータの第２の予測単位を符号化するときに前記第２のサブ画素精度を有する第２の動きベクトル差分値を計算することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を更に備える、請求項２３に記載のコンピュータプログラム製品。
【請求項２６】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令は、
前記第１の動きベクトル差分値を、前記第１の符号化方式によって定義された第１の閾値と比較することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、第１の単項コードワードを使用して前記第１の動きベクトル差分値を符号化することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、第１のゴロムコードワードを使用して前記第１の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を備え、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令は、
前記第２の動きベクトル差分値を、前記第２の符号化方式によって定義された第２の閾値と比較することと、
前記第２の動きベクトル差分値が前記第２の閾値未満のときに、第２の単項コードワードを使用して前記第２の動きベクトル差分値を符号化することと、
前記第２の動きベクトル差分値が前記第２の閾値以上のときに、第２のゴロムコードワードを使用して前記第２の動きベクトル差分値を符号化することと、
を前記プロセッサに行わせる命令を備える、請求項２５に記載のコンピュータプログラム製品。
【請求項２７】
前記第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令が、前記第１の動きベクトル差分値をエントロピー符号化するために使用すべき第１のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分符号化方式を使用して前記第２の動きベクトル差分値を符号化することを前記プロセッサに行わせる前記命令が、前記第２の動きベクトル差分値をエントロピー符号化するために使用すべき第２のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項２５に記載のコンピュータプログラム製品。
【請求項２８】
ビデオデータを復号する方法であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、
前記指標を復号するためのコンテキストを決定することと、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することと、
を備え、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、方法。
【請求項２９】
前記第１のサブ画素精度が１／４画素精度を備え、前記第２のサブ画素精度が１／８画素精度を備える、請求項２８に記載の方法。
【請求項３０】
前記符号化単位が２Ｎ×２Ｎ画素のサイズを有し、前記予測単位のタイプが、２Ｎ×２Ｎ画素と、２Ｎ×Ｎ画素と、Ｎ×２Ｎ画素と、Ｎ×Ｎ画素とのうちの１つのサイズを有する前記予測単位に対応し、Ｎが、０よりも大きい整数値である、請求項２８に記載の方法。
【請求項３１】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、前記方法が、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を更に備える、請求項２８に記載の方法。
【請求項３２】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項２８に記載の方法。
【請求項３３】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することは、
前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することと、
を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することは、
前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することと、
を備える、請求項３２に記載の方法。
【請求項３４】
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の前記第１の閾値未満かどうかを決定することは、前記第１の動きベクトル差分値が前記第１の閾値未満かどうかを示す情報を受信することを備え、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の前記第２の閾値未満かどうかを決定することは、前記第２の動きベクトル差分値が前記第２の閾値未満かどうかを示す情報を受信することを備える、請求項３３に記載の方法。
【請求項３５】
前記第１の動きベクトル差分復号方式が１／４画素精度に関連し、前記第２の動きベクトル差分復号方式が１／８画素精度に関連する、請求項３２に記載の方法。
【請求項３６】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することが、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択することを備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することが、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択することを備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項３２に記載の方法。
【請求項３７】
ビデオデータを復号する方法であって、
ビデオデータの符号化単位のルミナンスデータに対して１／８画素精度を有する動きベクトルを受信することと、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を備える、方法。
【請求項３８】
ビデオデータを復号する方法であって、
ビデオデータの第１の予測単位の第１の動きベクトル差分値を受信することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分符号化方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を備え、前記第１の動きベクトル差分値が第１のサブ画素精度を有し、前記第２の動きベクトル差分値が第２の異なるサブ画素精度を有する、方法。
【請求項３９】
ビデオデータを復号するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、前記指標を復号するためのコンテキストを決定することと、コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することとを行うように構成され、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、ビデオデコーダを備える、装置。
【請求項４０】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、前記ビデオデコーダが、双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することとを行うように更に構成された、請求項３９に記載の装置。
【請求項４１】
前記予測単位が第１の予測単位を備え、前記ビデオデコーダが、前記第１の予測単位の第１の動きベクトル差分値を受信することと、前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、を行うように構成され、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項３９に記載の装置。
【請求項４２】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することとを行うように構成され、前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することとを行うように構成された、請求項４１に記載の装置。
【請求項４３】
前記第１の動きベクトル差分復号方式が１／４画素精度に関連し、前記第２の動きベクトル差分復号方式が１／８画素精度に関連する、請求項４１に記載の装置。
【請求項４４】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択するように構成され、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するために、前記ビデオデコーダが、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択するように構成され、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項４１に記載の装置。
【請求項４５】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信機器と、
のうちの少なくとも１つを備える、請求項３９に記載の装置。
【請求項４６】
ビデオデータを復号するための装置であって、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信するための手段と、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信するための手段と、
前記指標を復号するためのコンテキストを決定するための手段と、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号するための手段と、
を備え、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、装置。
【請求項４７】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算するための手段と、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号するための手段と、
を更に備える、請求項４６に記載の装置。
【請求項４８】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信するための手段と、
前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための手段と、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信するための手段と、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための手段と、
を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項４６に記載の装置。
【請求項４９】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための前記手段は、
前記第１の動きベクトル差分値を表す第１のコードワードを受信するための手段と、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号するための手段と、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号するための手段と、
を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための前記手段は、
前記第２の動きベクトル差分値を表す第２のコードワードを受信するための手段と、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定するための手段と、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号するための手段と、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号するための手段と、
を備える、請求項４８に記載の装置。
【請求項５０】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号するための前記手段が、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択するための手段を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号するための前記手段が、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択するための手段を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項４８に記載の装置。
【請求項５１】
実行されたとき、
第１のサブ画素精度又は第２の異なるサブ画素精度のうちの１つを有する動きベクトルを使用して符号化された、ビデオデータの符号化単位の符号化予測単位を受信することと、
前記動きベクトルが前記第１のサブ画素精度を有するのか前記第２のサブ画素精度を有するのかについてのコンテキスト適応型バイナリ算術符号化指標を受信することと、
前記指標を復号するためのコンテキストを決定することと、
コンテキスト適応型バイナリ算術符号化に従って、前記決定されたコンテキストを使用して前記指標をエントロピー復号することと、
を、ビデオデータを復号するための機器のプロセッサに行わせる命令を記憶し、前記コンテキストが、前記符号化単位の深さと前記予測単位のサイズとのうちの少なくとも１つを備える、コンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項５２】
前記指標は、前記動きベクトルが前記符号化単位のルミナンスデータに対して１／８画素精度を有することを示し、前記ルミナンスデータが前記予測単位に対応し、
双線形補間を使用して、前記動きベクトルによって識別される参照ブロックのクロミナンスデータの１／１６画素位置の値を計算することと、
前記参照ブロックの前記双線形補間値に基づいて前記符号化単位のクロミナンスデータを復号することと、
を前記プロセッサに行わせる命令を更に備える、請求項５１に記載のコンピュータプログラム製品。
【請求項５３】
前記予測単位が第１の予測単位を備え、
前記第１の予測単位の第１の動きベクトル差分値を受信することと、
前記第１のサブ画素精度に関連する第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することと、
前記ビデオデータの第２の予測単位の第２の動きベクトル差分値を受信することと、
前記第２のサブ画素精度に関連する第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することと、
を前記プロセッサに行わせる命令を更に備え、前記第１の動きベクトル差分値が前記第１のサブ画素精度を有し、前記第２の動きベクトル差分値が前記第２のサブ画素精度を有する、請求項５１に記載のコンピュータプログラム製品。
【請求項５４】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令は、
前記第１の動きベクトル差分値を表す第１のコードワードを受信することと、
前記第１の動きベクトル差分値が前記第１の動きベクトル差分復号方式の第１の閾値未満かどうかを決定することと、
前記第１の動きベクトル差分値が前記第１の閾値未満のときに、前記第１のコードワードを第１の単項コードワードとして復号することと、
前記第１の動きベクトル差分値が前記第１の閾値以上のときに、前記第１のコードワードを第１のゴロムコードワードとして復号することと、
を前記プロセッサに行わせる命令を備え、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令は、
前記第２の動きベクトル差分値を表す第２のコードワードを受信することと、
前記第２の動きベクトル差分値が前記第２の動きベクトル差分復号方式の第２の閾値未満かどうかを決定することと、
前記第２の動きベクトル差分値が前記第１の閾値未満のときに、前記第２のコードワードを第２の単項コードワードとして復号することと、
前記第２の動きベクトル差分値が前記第１の閾値以上のときに、前記第２のコードワードを第２のゴロムコードワードとして復号することと、
を前記プロセッサに行わせる命令を備える、請求項５３に記載のコンピュータプログラム製品。
【請求項５５】
前記第１の動きベクトル差分復号方式を使用して前記第１の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令が、前記第１の動きベクトル差分値をエントロピー復号するために使用すべき第１のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第１のコンテキストモデルが前記第１のサブ画素精度に関連し、
前記第２の動きベクトル差分復号方式を使用して前記第２の動きベクトル差分値を復号することを前記プロセッサに行わせる前記命令が、前記第２の動きベクトル差分値をエントロピー復号するために使用すべき第２のコンテキストモデルを選択することを前記プロセッサに行わせる命令を備え、前記第２のコンテキストモデルが前記第２のサブ画素精度に関連する、請求項５３に記載のコンピュータプログラム製品。
【国際調査報告】
2013543713.tif 000017
2013543713.tif 000018
2013543713.tif 000019
2013543713.tif 000020
2013543713.tif 000021
2013543713.tif 000022
2013543713.tif 000023