(57)【要約】一例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置が開示され、本装置は、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングするように構成されたビデオコーダを含む。
2013545415.tif 000002
【特許請求の範囲】
【請求項１】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすることと、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングすることと、
を備える方法。
【請求項２】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項１に記載の方法。
【請求項３】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項１に記載の方法。
【請求項４】
前記走査順序が、前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングすること、をさらに備える、
請求項１に記載の方法。
【請求項５】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項４に記載の方法。
【請求項６】
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定することをさらに備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングすることを備える、請求項１に記載の方法。
【請求項７】
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新すること、
をさらに備える、請求項６に記載の方法。
【請求項８】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行すること、を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、
請求項６に記載の方法。
【請求項９】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングすること
を備える、請求項８に記載の方法。
【請求項１０】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記方法は、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングすることをさらに備える、請求項１に記載の方法。
【請求項１１】
前記走査順序を識別する情報をコーディングすること、
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記ブロック内の他の非ゼロ係数の位置を識別する情報をコーディングすること、
をさらに備える、請求項１１に記載の方法。
【請求項１３】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすること、を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングすることは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングすることと、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングすることと、
を備える、方法。
【請求項１４】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングすることは、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項１３に記載の方法。
【請求項１５】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングする
ように構成されたビデオコーダを備える装置。
【請求項１６】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項１５に記載の装置。
【請求項１７】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項１５に記載の装置。
【請求項１８】
前記ビデオコーダは、
前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングするようにさらに構成された、請求項１５に記載の装置。
【請求項１９】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項１８に記載の装置。
【請求項２０】
前記ビデオコーダは、
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定するようにさらに構成され、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングするように構成された、
請求項１５に記載の装置。
【請求項２１】
前記ビデオコーダは、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新する
ようにさらに構成された、請求項２０に記載の装置。
【請求項２２】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、請求項２０に記載の装置。
【請求項２３】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダが、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む、前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングする
ように構成された、請求項２２に記載の装置。
【請求項２４】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングするようにさらに構成された、請求項１５に記載の装置。
【請求項２５】
前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、請求項１５に記載の装置。
【請求項２６】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングするように構成されたビデオコーダを備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングするために、前記ビデオコーダは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングし、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングし、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングするように構成された、装置。
【請求項２７】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項２６に記載の装置。
【請求項２８】
前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、請求項２６に記載の装置。
【請求項２９】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングする手段と、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングする手段と、
を備えるデバイス。
【請求項３０】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項２９に記載のデバイス。
【請求項３１】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項２９に記載のデバイス。
【請求項３２】
前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングする手段、をさらに備える請求項２９に記載のデバイス。
【請求項３３】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項３２に記載のデバイス。
【請求項３４】
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定する手段をさらに備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする手段は、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングする手段を備える、
請求項２９に記載のデバイス。
【請求項３５】
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新する手段
をさらに備える、請求項３４に記載のデバイス。
【請求項３６】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする前記手段は、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用する手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、請求項３４に記載のデバイス。
【請求項３７】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用する前記手段を含む前記コンテキスト適応型エントロピーコーディングプロセスを実行する前記手段を備える、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする前記手段は、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングする手段
を備える、請求項３６に記載のデバイス。
【請求項３８】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記デバイスは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングする手段をさらに備える、請求項２９に記載のデバイス。
【請求項３９】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングする手段を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々が、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングする手段は、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングする手段と、
を備える、デバイス。
【請求項４０】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングする前記手段は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用するための手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項３９に記載のデバイス。
【請求項４１】
実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングさせ、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングさせる、
コンピュータ可読媒体。
【請求項４２】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項４１に記載のコンピュータ可読媒体。
【請求項４３】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項４１に記載のコンピュータ可読媒体。
【請求項４４】
前記プロセッサに、
前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングさせる命令をさらに備える、請求項４１に記載のコンピュータ可読媒体。
【請求項４５】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項４４に記載のコンピュータ可読媒体。
【請求項４６】
前記プロセッサに、
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定させる命令をさらに備え、
前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングさせる命令を備える、
請求項４１に記載のコンピュータ可読媒体。
【請求項４７】
前記プロセッサに、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新させる命令をさらに備える、
請求項４６に記載のコンピュータ可読媒体。
【請求項４８】
前記プロセッサに、前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、
請求項４６に記載のコンピュータ可読媒体。
【請求項４９】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行させる前記命令を備える、前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングさせる命令
を備える請求項４８に記載のコンピュータ可読媒体。
【請求項５０】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記コンピュータ可読媒体は、前記プロセッサに、
インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングさせる命令をさらに備える、請求項４１に記載のコンピュータ可読媒体。
【請求項５１】
実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングさせ、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記プロセッサに、前記ｘ座標およびｙ座標をコーディングさせる前記命令は、前記プロセッサに、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングさせ、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングさせる命令を備える、
コンピュータ可読媒体。
【請求項５２】
前記プロセッサに、前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングさせる前記命令は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項５１に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１０年１２月３日に出願された米国仮出願第６１／４１９，７４０号、２０１０年１２月２２日に出願された米国仮出願第６１／４２６，４２６号、２０１０年１２月２２日に出願された米国仮出願第６１／４２６，３６０号、および２０１０年１２月２２日に出願された米国仮出願第６１／４２６，３７２号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオブロックの係数に関係するシンタックス情報のコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することにより、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）は、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャにおける参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間的または時間予測により、コーディングされるべきブロックのための予測ブロックが生じる。残差データは、コーディングされるべき元のブロックと、予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は２次元アレイで構成され、変換係数の１次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]本開示は、ビデオデータのブロックに関連する走査順序に従うブロック内の最後非ゼロまたは最後「有効」係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報をコーディングするための技法を含む、ビデオコーディングプロセス中にブロックに関連する係数をコーディングするための技法について説明する。本開示の技法は、ビデオデータのブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報に基づいて特定のブロックの最後有効係数位置情報をコーディングすることによって、ブロックをコーディングするために使用されるブロックのための最後有効係数位置情報のコーディングの効率を改善し得る。言い換えれば、本技法は、ブロックの最後有効係数位置情報がコーディングされるとき、この情報の圧縮を改善し得る。本開示の技法はまた、ブロックの最後有効係数位置情報をコーディングするとき、複数の走査順序のうちの１つがブロックをコーディングするために使用されるときに共通の統計値を使用して特定のブロックの最後有効係数位置情報をコーディングすることによって、コーディングシステムが他のシステムに対してより少ない複雑さを有することを可能にし得る。
【０００７】
[0007]一例では、ビデオデータの特定のブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標をコーディングすること、ならびに、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す「スワップ」または交換されたｘ座標およびｙ座標をコーディングすることによって、コーディング効率は改善され、コーディングシステムの複雑さは低減され得る。
【０００８】
[0008]この例では、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。第１の走査順序と第２の走査順序との間の対称性のために、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。言い換えれば、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、コンテキスト適応型エントロピーコーディングのために共通の統計値を使用してコーディングされ得、その結果、他のシステムと比較してより少ない複雑さを有するコーディングシステムを使用することになり得る。さらに、共通の統計値は、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて更新され得、これにより、他の技法を使用して更新された同様の統計値よりも統計値が正確になり得、したがって、それぞれの座標のコーディングがより効率的になり得る。
【０００９】
[0009]別の例では、コーディング効率は、必要な程度まで、増分的にビデオデータのブロックの最後有効係数位置情報をコーディングすることによって改善され得、それにより、この情報のコーディングがより効率的になり得る。さらに、この情報を全体としてコーディングすることが必要である場合、情報をコーディングするために使用される統計値が、ブロックに関連する走査順序に少なくとも部分的に基づいて選択されるように、コンテキスト適応型エントロピーコーディングを使用して情報をコーディングすることによってコーディング効率は改善され得る。このように情報をコーディングすることにより、他の方法を使用したときよりも正確な統計値を使用し得、この場合も、ブロックの最後有効係数位置情報のコーディングがより効率的になり得る。
【００１０】
[0010]本開示の技法は、ＣＡＢＡＣ、確率間隔区分エントロピーコーディング（ＰＩＰＥ：probability interval partitioning entropy coding）、または別のコンテキスト適応型エントロピーコーディング方法を含む、任意のコンテキスト適応型エントロピーコーディング方法とともに使用され得る。本開示では、例示のためにＣＡＢＡＣについて説明するが、本開示で広く説明する技法に関して限定されない。また、本技法は、たとえば、ビデオデータに加えて、他のデータのタイプのコーディングに一般に適用され得る。
【００１１】
[0011]したがって、本開示の技法は、ビデオデータの１つまたは複数のブロックのための最後有効係数位置情報をコーディングするとき、他の方法に対してより効率的な符号化方法を使用することと、他のシステムに対してより少ない複雑さを有するコーディングシステムを使用することとを可能にし得る。このようにして、本開示の技法を使用すると、この情報を含むコード化ビットストリームの相対的ビット節約と、この情報をコーディングするために使用されるシステムの複雑さの相対的低減とが存在し得る。
【００１２】
[0012]一例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法は、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすることと、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングすることと、を含む。
【００１３】
[0013]別の例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置は、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすることと、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングすることと、を行うように構成されたビデオコーダを含む。
【００１４】
[0014]別の例では、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスは、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングする手段と、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする手段と、を含む。
【００１５】
[0015]本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。ハードウェアで実装する場合、装置は、集積回路、プロセッサ、ディスクリート論理、またはそれらの任意の組合せとして実現され得る。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサで実行され得る。本技法を実行するソフトウェアは、最初に有形コンピュータ可読媒体に記憶され、プロセッサにロードされ、実行され得る。
【００１６】
[0016]したがって、本開示はまた、実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、これらの命令は、プロセッサに、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングさせ、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングさせる、コンピュータ可読媒体を企図する。
【００１７】
[0017]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１８】
【図１】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための技法を実装し得るビデオ符号化および復号システムの一例を示すブロック図。
【図２】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための技法を実装し得るビデオエンコーダの一例を示す図。
【図３】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための技法を実装し得るビデオデコーダの一例を示すブロック図。
【図４Ａ】ビデオデータのブロックの一例を示す概念図。
【図４Ｂ】対応する有効係数位置情報の一例を示す概念図。
【図４Ｃ】対応する最後有効係数位置情報の一例を示す概念図。
【図５Ａ】ジグザグ走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。
【図５Ｂ】水平走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。
【図５Ｃ】垂直走査順序を使用して走査されるビデオデータのブロックの例を示す概念図。
【図６Ａ】本開示の技法に一致する、走査順序情報に基づいてそれの最後有効係数位置情報がコーディングされるビデオデータのブロックの例を示す概念図。
【図６Ｂ】本開示の技法に一致する、走査順序情報に基づいてそれの最後有効係数位置情報がコーディングされるビデオデータのブロックの例を示す概念図。
【図６Ｃ】本開示の技法に一致する、走査順序情報に基づいてそれの最後有効係数位置情報がコーディングされるビデオデータのブロックの例を示す概念図。
【図７】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための方法の一例を示すフローチャート。
【図８】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための方法の一例を示すフローチャート。
【図９】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための方法の一例を示すフローチャート。
【図１０】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための方法の別の例を示すフローチャート。
【図１１】本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための方法の別の例を示すフローチャート。
【発明を実施するための形態】
【００１９】
[0029]本開示は、ビデオデータのブロックに関連する走査順序に従うブロック内の最後非ゼロまたは最後「有効」係数の位置を識別する情報、すなわち、ブロックの最後有効係数位置情報をコーディングするための技法を含む、ビデオコーディングプロセス中にブロックに関連する係数をコーディングするための技法について説明する。本開示の技法は、ビデオデータのブロックに関連する走査順序を識別する情報、すなわち、ブロックの走査順序情報に基づいて特定のブロックの最後有効係数位置情報をコーディングすることによって、ブロックをコーディングするために使用されるブロックのための最後有効係数位置情報のコーディングの効率を改善し得る。言い換えれば、本技法は、情報がコーディングされるとき、ブロックの最後有効係数位置情報の圧縮を改善し得る。本開示の技法はまた、ブロックの最後有効係数位置情報をコーディングするとき、複数の走査順序のうちの１つがブロックをコーディングするために使用されるときに共通の統計値を使用して特定のブロックの最後有効係数位置情報をコーディングすることによって、他のシステムに対して複雑さがより少ないコーディングシステムを使用することを可能にし得る。
【００２０】
[0030]本開示では、「コーディング」という用語は、エンコーダにおいて行われる符号化、またはデコーダにおいて行われる復号を指す。同様に、「コーダ」という用語は、エンコーダ、デコーダ、または複合エンコーダ／デコーダ（「コーデック」）を指す。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致するビデオデータのコーディング（符号化および／または復号）のために設計された特定の機械を指す。
【００２１】
[0031]概して、これらの技法の開発において実行された経験的テストにより、ビデオデータのブロックのための最後有効係数位置情報と走査順序情報との間の相関関係が証明されている。たとえば、ブロックに関連する走査順序、すなわち、ブロックをコーディングするために使用される走査順序に従うビデオデータのブロック内の最後有効係数の位置は、走査順序に依存し得る。言い換えれば、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値は、ブロックをコーディングするためにどの走査順序が使用されるか応じて変動し得る。したがって、ブロックの最後有効係数位置情報をコーディングするために使用される統計値が、ブロックの走査順序情報に少なくとも部分的に基づいて選択されるように、コンテキスト適応型エントロピーコーディングを使用して最後有効係数位置情報をコーディングすることにより、統計値がより正確になり得、したがって、最後有効係数位置情報のコーディングがより効率的になり得る。
【００２２】
[0032]さらに、本開示の技法によれば、ビデオデータのブロックの最後有効係数位置情報は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を使用してコーディングされ得る。これらの場合、上記で説明した統計値は、走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。いくつかの走査順序、たとえば、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの「スワップ」または交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、共通の統計値を使用してコーディングされ得る。
【００２３】
[0033]したがって、共通の統計値を使用して、走査順序が第１の走査順序を備えるときにｘ座標およびｙ座標をコーディングすることと、走査順序が第２の走査順序を備えるときに交換されたｘ座標およびｙ座標をコーディングすることとにより、コーディングシステムの複雑さが低減され得る。さらに、また、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて共通の統計値を更新することにより、より正確な統計値が生じ得、それによって、この場合も、最後有効係数位置情報のコーディングがより効率的になり得る。
【００２４】
[0034]一例として、本開示の技法は、ビデオデータの特定のブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標をコーディングすることと、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標をコーディングすることとによって、コーディング効率を改善し、コーディングシステムの複雑さを低減し得る。
【００２５】
[0035]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、コンテキスト適応型エントロピーコーディングのために共通の統計値を使用してコーディングされ得、それにより、他のシステム、たとえば、ビデオデータのブロックをコーディングするためにシステム内で使用され得る走査順序ごとに別個の統計値を含むシステムに対してより少ない複雑さを有するコーディングシステムを使用することになり得る。さらに、共通の統計値は、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて更新され得、これにより、他の技法を使用して更新された同様の統計値、たとえば、ビデオデータのブロックをコーディングするためにシステム内で使用され得る特定の走査順序のために更新された統計値よりも統計値が正確になり得る。その結果、ｘ座標およびｙ座標、ならびに交換されたｘ座標およびｙ座標、すなわち、ブロックの最後有効係数位置情報は、他の方法を使用してコーディングされた同様の情報よりも効率的にコーディングされ得る。
【００２６】
[0036]別の例として、本開示の技法は、必要な程度まで、増分的に（in an incremental manner）ビデオデータのブロックの最後有効係数位置情報をコーディングすることによってコーディング効率を改善し得る。その結果、最後有効係数位置情報は、他の技法、たとえば、常に全体としてブロックの最後有効係数位置情報をコーディングすることを使用したときよりも、少ない情報を使用してコーディングされ得る。さらに、最後有効係数位置情報を全体としてコーディングすることが必要である場合、この情報をコーディングするために使用される統計値が、ブロックの走査順序情報に少なくとも部分的に基づいて選択されるように、コンテキスト適応型エントロピーコーディングを使用して情報をコーディングすることによって、コーディング効率は改善され得る。このようにして最後有効係数位置情報をコーディングすることにより、他の方法、たとえば、ブロックの走査順序情報を考慮することなしに統計値を選択することを使用したときよりも、正確な統計値を使用することになり得、この場合も、最後有効係数位置情報のコーディングがより効率的になり得る。
【００２７】
[0037]上記で説明した例では、統計値を使用してビデオデータのブロックの最後有効係数位置情報をコーディングするために、この情報は、１つまたは複数のコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含む、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）プロセスを実行することによってコーディングされ得る。他の例では、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、確率間隔区分エントロピーコーディング（ＰＩＰＥ）、および他のコンテキスト適応型エントロピーコーディングプロセスなど、他のコンテキスト適応型エントロピーコーディングプロセスでも本開示の技法を使用し得る。本開示では、例示のためにＣＡＢＡＣについて説明するが、本開示で広く説明する技法に関して限定されない。また、本技法は、たとえば、ビデオデータに加えて、他のデータのタイプのコーディングに一般に適用され得る。
【００２８】
[0038]上記で説明した方法でビデオデータの１つまたは複数のブロックのための最後有効係数位置情報をコーディングすることにより、他の方法に対してより効率的なコーディング方法を使用することと、他のシステムに対してより少ない複雑さを有するコーディングシステムを使用することとが可能になり得る。このようにして、本開示の技法を使用すると、この情報を含むコード化ビットストリームの相対的ビット節約と、この情報をコーディングするために使用されるシステムの複雑さの相対的低減とが存在し得る。
【００２９】
[0039]図１は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための技法を実装し得るビデオ符号化および復号システム１０の一例を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレスハンドセット、いわゆるセルラー無線電話または衛星無線電話などのワイヤレス通信デバイス、あるいは通信チャネル１６を介してビデオ情報を通信することができる任意のワイヤレスデバイスを備え得、その場合、通信チャネル１６はワイヤレスである。
【００３０】
[0040]ただし、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングすることに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。これらの技法は、オーバージエアテレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、ストリーミングインターネットビデオ送信、記憶媒体上に符号化されるかまたは記憶媒体から取り出され、復号される符号化デジタルビデオ、あるいは他のシナリオを含む、符号化または復号が実行される任意のシナリオに一般的に適用され得る。したがって、通信チャネル１６は必要とされず、本開示の技法は、たとえば、符号化デバイスと復号デバイスとの間のデータ通信なしに、符号化が適用されるかまたは復号が適用される設定に適用され得る。
【００３１】
[0041]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示に従って、ソースデバイス１２のビデオエンコーダ２０および／または宛先デバイス１４のビデオデコーダ３０は、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなど、外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００３２】
[0042]図１の図示のシステム１０は一例にすぎない。ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。その上、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのための、ビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００３３】
[0043]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００３４】
[0044]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。この場合も、上記で説明したビデオ符号化プロセスは、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするために本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、ビデオデータのブロック（たとえば、マクロブロック、またはコーディングユニット）の特性および／または処理を記述するシンタックス要素、たとえば、ブロックの最後有効係数位置情報および／または走査順序情報、ならびに他の情報を含む、ビデオエンコーダ２０によって定義され、ビデオデコーダ３０によっても使用されるシンタックス情報を含み得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３５】
[0045]図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。他の例では、符号化または復号デバイスは、そのようなデバイス間の通信なしに本開示の技法を実装し得る。たとえば、符号化デバイスは、本開示の技法に一致する符号化ビットストリームを符号化し、記憶し得る。代替的に、復号デバイスは、符号化ビットストリームを受信するかまたは取り出し、本開示の技法に一致するビットストリームを復号し得る。
【００３６】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例には、ＭＰＥＧ−２、ＩＴＵ−Ｔ  Ｈ．２６３、および現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格がある。概して、本開示の技法について、ＨＥＶＣに関して説明するが、これらの技法は、同様に他のビデオコーディング規格と併せて使用され得ることを理解されたい。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３７】
[0047]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよびデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００３８】
[0048]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ（ＧＯＰ：group of pictures）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれるいくつかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ中、ＧＯＰの１つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ、たとえば、ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ＩＴＵ−Ｔ  Ｈ．２６４規格によれば、ビデオブロックは、マクロブロックまたはマクロブロックのパーティションに対応し得る。他の規格、たとえば、以下でさらに詳細に説明するＨＥＶＣによれば、ビデオブロックは、コーディングユニット（たとえば、最大コーディングユニット）、またはコーディングユニットのパーティションに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。各ビデオフレームは、複数のスライス、すなわち、ビデオフレームの部分を含み得る。各スライスは複数のビデオブロックを含み得、それらのビデオブロックは、サブブロックとも呼ばれるパーティションに構成され得る。
【００３９】
[0049]指定のコーディング規格に応じて、ビデオブロックは、１６×１６、８×８、４×４、２×２など、様々な「Ｎ×Ｎ」サブブロックサイズに区分され得る。本開示では、「Ｎ×Ｎ」と「Ｎ by Ｎ」は、垂直寸法および水平寸法に関するブロックのピクセル寸法、たとえば、１６×１６ピクセルまたは１６ by １６ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備え得、ただし、Ｍは必ずしもＮに等しいとは限らない。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格では、サイズが１６×１６ピクセルであるブロックはマクロブロックと呼ばれることがあり、１６×１６ピクセルよりも小さいブロックは、１６×１６マクロブロックのパーティションと呼ばれることがある。他の規格、たとえば、ＨＥＶＣでは、ブロックは、より一般的にそれらのサイズに関して、たとえば、各々が固定サイズではなく可変サイズを有する、コーディングユニットおよびそれのパーティションとして定義され得る。
【００４０】
[0050]ビデオブロックは、ピクセル領域におけるピクセルデータのブロックを備え得、あるいは、たとえば、所与のビデオブロックのための残差データへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後の、変換領域における変換係数のブロックを備え得、残差データは、ブロックのビデオデータと、ブロックのために生成される予測データとの間のピクセル差分を表す。場合によっては、ビデオブロックは、変換領域における量子化変換係数のブロックを備え得、所与のビデオブロックのための残差データへの変換の適用後に、得られた変換係数も量子化される。
【００４１】
[0051]ブロック区分は、ブロックベースのビデオコーディング技法において重要な目的をはたす。ビデオデータをコーディングするためにより小さいブロックを使用すると、高レベルのディテールを含むビデオフレームのロケーションのためのデータの予測がより良くなり得、したがって、残差データとして表される得られた誤差（すなわち、ソースビデオデータからの予測データの偏差）が低減し得る。ただし、潜在的に残差データは低減されるが、そのような技法では、より小さいブロックがビデオフレームに対してどのように区分されるかを示すための追加のシンタックス情報が必要とされ得、コード化ビデオビットレートの増加が生じ得る。したがって、いくつかの技法では、ブロック区分は、追加のシンタックス情報によるコード化ビデオデータのビットレートの得られる増加に対して、残差データの望ましい減少を平衡させることに依存し得る。
【００４２】
[0052]概して、ブロック、およびそれの様々なパーティション（すなわち、サブブロック）は、ビデオブロックと見なされ得る。さらに、スライスは、複数のビデオブロック（たとえば、マクロブロック、もしくはコーディングユニット）、および／またはサブブロック（マクロブロックのパーティション、またはサブコーディングユニット）であると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、またはフレームの他の部分が復号可能なユニットとして定義され得る。さらに、シーケンスとも呼ばれるＧＯＰが、復号可能なユニットとして定義され得る。
【００４３】
[0053]高効率ビデオコーディング（ＨＥＶＣ）と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。新生のＨＥＶＣ規格はＨ．２６５と呼ばれることもある。この規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣによるデバイスに勝るビデオコーディングデバイスのいくつかの能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは、たとえば、イントラ予測コーディングされるブロックのサイズに基づいて、３５個ものイントラ予測符号化モードを与える。
【００４４】
[0054]ＨＭは、ビデオデータのブロックをコーディングユニット（ＣＵ）と呼ぶ。ＣＵは、圧縮のために様々なコーディングツールがそれに適用される基本ユニットとして働く矩形画像領域を指し得る。Ｈ．２６４では、それはマクロブロックと呼ばれることもある。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。概して、ＣＵは、ＣＵがサイズの差異を有しないことを除いて、Ｈ．２６４のマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに区分または「分割」され得る。
【００４５】
[0055]ＬＣＵは、ＬＣＵがどのように区分されるかを示す４分木（quadtree）データ構造に関連し得る。概して、４分木データ構造は、ＬＣＵのＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応し、他のノードはＬＣＵのサブＣＵに対応する。所与のＣＵが４つのサブＣＵに分割された場合、分割されたＣＵに対応する４分木中のノードは４つの子ノードを含み、子ノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックス情報を与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵが４つのサブＣＵに分割されるかどうかを示す、ＣＵのための分割フラグを含み得る。所与のＣＵのシンタックス情報は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００４６】
[0056]分割されないＣＵ（すなわち、末端に対応するＣＵ、または所与の４分木中の「リーフ」ノード）は、１つまたは複数の予測ユニット（ＰＵ）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部を表し、ＣＵの予測を実行するためにそのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＣＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＣＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルがポイントする参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。ＣＵの１つまたは複数のＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかとの間で異なり得る。
【００４７】
[0057]１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。上記で説明したように、１つまたは複数のＰＵを使用したＣＵの予測の後に、ビデオエンコーダは、１つまたは複数のＰＵに対応するＣＵのそれぞれの部分のために１つまたは複数の残差ブロックを計算し得る。残差ブロックは、ＣＵのビデオデータと、１つまたは複数のＰＵのための予測データとの間のピクセル差分を表し得る。残差値のセットは、変換され、走査され、量子化されて、量子化変換係数のセットが定義され得る。ＴＵは、ＣＵに関して上記で説明した４分木データ構造と実質的に同様である変換係数のパーティション情報を示すパーティションデータ構造を定義し得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズに対応し得る。一例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用してより小さいユニットに再分割され得る。この場合、ＲＱＴのリーフノードは、対応する残差サンプルがそれについて変換され、量子化され得る、ＴＵとして参照され得る。
【００４８】
[0058]予測データと残差データとを生成するためのイントラ予測符号化またはインター予測符号化の後に、および変換係数を生成するための（Ｈ．２６４／ＡＶＣにおいて使用される４×４または８×８整数変換、あるいは離散コサイン変換ＤＣＴなどの）任意の変換の後に、変換係数の量子化が実行され得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ得、ただし、ｎはｍよりも大きい。
【００４９】
[0059]量子化の後に、量子化データ（すなわち、量子化変換係数）のエントロピーコーディングが実行され得る。エントロピーコーディングは、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングすることに関して本開示の技法に準拠し得、また、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、ＣＡＢＡＣ、ＰＩＰＥ、または別のエントロピーコーディング方法など、他のエントロピーコーディング技法を使用し得る。たとえば、量子化変換係数の大きさおよび対応する符号（たとえば、「＋１」、または「−１」）として表される係数値が、エントロピーコーディング技法を使用して符号化され得る。
【００５０】
[0060]上記で説明した予測、変換、および量子化は、指定のコーディング規格に応じて、ビデオデータの任意のブロックについて、たとえば、ＣＵのＰＵおよび／またはＴＵに、またはマクロブロックに対して実行され得ることに留意されたい。したがって、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングすることに関係する本開示の技法は、ビデオデータの任意のブロックに、たとえば、マクロブロック、またはＣＵのＴＵを含む、量子化変換係数の任意のブロックに適用され得る。さらに、ビデオデータのブロック（たとえば、マクロブロック、またはＣＵのＴＵ）は、対応するビデオデータのルミナンス成分（Ｙ）と、第１のクロミナンス成分（Ｕ）と、第２のクロミナンス成分（Ｖ）との各々を含み得る。したがって、本開示の技法は、ビデオデータの所与のブロックのＹ、Ｕ、およびＶ成分の各々について実行され得る。
【００５１】
[0061]上記で説明したようにビデオデータのブロックを符号化するために、所与のブロック内の有効係数の位置に関する情報も生成され、符号化され得る。その後、上記で説明したように、有効係数の値が符号化され得る。Ｈ．２６４／ＡＶＣおよび新生のＨＥＶＣ規格では、コンテキスト適応型エントロピーコーディングプロセス、たとえば、ＣＡＢＡＣプロセスを使用するとき、ビデオデータのブロック内の有効係数の位置は、有効係数の値を符号化するより前に符号化され得る。ブロック内の有効係数のうちのすべての位置を符号化するプロセスは、有効性マップ（ＳＭ：significance map）符号化と呼ばれることがある。以下でより詳細に説明する図４Ａ〜図４Ｃは、量子化変換係数の４×４ブロック、および対応するＳＭデータの一例を示す概念図である。
【００５２】
[0062]典型的なＳＭ符号化プロシージャは、以下のように説明され得る。ビデオデータの所与のブロックについて、ブロック内に少なくとも１つの有効係数がある場合のみ、ＳＭは符号化され得る。ビデオデータの所与のブロック内の有効係数の存在は、ビデオデータ中のピクセルのエリアに関連する（ルミナンスブロックおよびクロミナンスブロックなどの）ブロックのセットのためにコーディングされた２進値である、（たとえば、シンタックス要素「coded_block_pattern」またはＣＢＰを使用して）コード化ブロックパターンにおいて示され得る。ＣＢＰ中の各ビットは、（たとえば、シンタックス要素「coded_block_flag」に対応する）コード化ブロックフラグと呼ばれ、それの対応するブロック内に少なくとも１つの有効係数があるかどうかを示すために使用される。言い換えれば、コード化ブロックフラグは、変換係数の単一のブロック内に有効係数があるかどうかを示す１ビットシンボルであり、ＣＢＰは、関係するビデオデータブロックのセットのためのコード化ブロックフラグのセットである。
【００５３】
[0063]対応するブロック内に有効係数が存在しないことをコード化ブロックフラグが示す（たとえば、フラグが「０」に等しい）場合、ブロックのためのさらなる情報は符号化されなくてよい。しかしながら、対応するブロック内に少なくとも１つの有効係数が存在することをコード化ブロックフラグが示す（たとえば、フラグが「１」に等しい）場合、ブロックのＳＭが、ブロックに関連する係数走査順序に従うことによって符号化され得る。走査順序は、ＳＭ符号化の一部としてブロック内の各係数の有効性が符号化される順序を定義し得る。言い換えれば、走査は、係数の有効性を判断するために、係数の２次元ブロックを１次元表現に直列化し得る。様々な走査順序（たとえば、ジグザグ、水平、および、垂直）が使用され得る。同じく以下でより詳細に説明する図５Ａ〜図５Ｃが、ビデオデータの８×８ブロックのための使用され得る様々な走査順序のうちのいくつかの例を示している。ただし、本開示の技法は、対角走査順序、ジグザグ、水平、垂直、および／または対角走査順序の組合せである走査順序、ならびに、部分的にジグザグであり、部分的に水平であり、部分的に垂直であり、および／または部分的に対角である走査順序を含む、多種多様な他の走査順序に対しても適用され得る。さらに、本開示の技法はまた、ビデオデータの前にコーディングされたブロック（たとえば、コーディングされている現在ブロックと同じブロックサイズまたはコーディングモードを有するブロック）に関連する統計値に基づいてそれ自体で適応的である走査順序を考慮し得る。たとえば、適応走査順序は、場合によっては、ブロックに関連する走査順序であり得る。
【００５４】
[0064]所与のブロック内に少なくとも１つの有効係数が存在することを示すコード化ブロックフラグと、ブロックの走査順序とを仮定すれば、ブロックのＳＭは以下のように符号化され得る。量子化変換係数の２次元ブロックは、最初に、走査順序を使用して１次元アレイにマッピングされ得る。アレイ中の各係数について、走査順序に従って、（たとえば、シンタックス要素「significant_coeff_flag」に対応する）１ビット有効係数フラグが符号化され得る。すなわち、アレイ中の各位置に２進値が割り当てられ得、この２進値は、対応する係数が有効である場合は「１」に設定され、対応する係数が非有効（すなわち、０）である場合は「０」に設定され得る。所与の有効係数フラグが、対応する係数が有効であることを示す「１」に等しい場合、対応する係数がアレイ内の（すなわち、走査順序を仮定すれば、ブロック内の）最後有効係数であるかどうかを示し得る、（たとえば、シンタックス要素「last_significant_coeff_flag」に対応する）追加の１ビット最後有効係数フラグも符号化され得る。特に、各最後有効係数フラグは、対応する係数がアレイ内の最後有効係数である場合は「１」に設定され、そうでない場合は「０」に設定され得る。このようにして最後アレイ位置に達し、ＳＭ符号化プロセスが、「１」に等しい最後有効係数フラグによって終了されなかった場合、アレイ（したがって、走査順序を仮定すれば、ブロック）中の最後係数は有効であると推測され得、最後アレイ位置について最後有効係数フラグは符号化されなくてよい。
【００５５】
[0065]図４Ｂ〜図４Ｃは、アレイ形式ではなくマップで提示された、図４Ａに示すブロックのＳＭデータに対応する、有効係数フラグと最後有効係数フラグとのセットの例をそれぞれ示す概念図である。他の例では、上記で説明した有効係数フラグおよび最後有効係数フラグは異なる値に設定され得ることに留意されたい（たとえば、有効係数フラグは、対応する係数が有効である場合は「０」に設定され、対応する係数が非有効である場合は「１」に設定され得、最後有効係数フラグは、対応する係数が最後有効係数である場合は「０」に設定され、対応する係数が最後有効係数でない場合は「１」に設定され得る）。
【００５６】
[0066]ＳＭが符号化された後に、上記で説明したように、ブロック中の各有効係数の値（すなわち、たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の大きさおよび符号）も符号化され得る。
【００５７】
[0067]いくつかの技法によれば、上記で説明したように、ビデオデータのブロックをコーディングするために、固定走査順序、たとえば、ジグザグ走査順序が使用され得る。他の技法によれば、ブロックをコーディングするために複数の走査順序が使用され得る。いくつかの例では、時間にわたって走査順序が適応され、所与の時間に係数の特定のブロックをコーディングするために現在適応されている走査順序が使用される、「適応係数走査」（ＡＣＳ：adaptive coefficient scanning）が使用され得る。さらに他の技法では、ビデオエンコーダ２０は、１つまたは複数の圧縮効率メトリックに基づいていくつかの走査順序をテストし、ブロックを符号化するために最良の走査順序を選択し得る。さらに、ビデオエンコーダ２０は、（たとえば、ジグザグ走査順序ではインデックス０を、水平走査順序では１を、および垂直走査順序では２を使用して）いくつかの走査順序のうちのいずれか１つを表し得るＡＣＳインデックスを符号化することによってビデオデコーダ３０に走査順序を示し得る。
【００５８】
[0068]いくつかの技法によれば、ビデオエンコーダ２０は、最後有効係数が走査順序において（一般に「ＤＣ」位置と呼ばれるブロック内の左上位置に対応する）最初の位置にないときのみ、ＡＣＳインデックスを符号化し得る。以下でもより詳細に説明する図５および図６に示すように、すべての可能な走査順序はＤＣ位置から開始し得るので、ブロック内の最後（唯一）有効係数がＤＣ位置にある場合、ビデオデコーダ３０は、ビデオエンコーダ２０によって使用された走査順序の指示を必要としないので、ビデオエンコーダ２０はこのようにしてＡＣＳインデックスを符号化し得る。
【００５９】
[0069]ブロック内の最後有効係数がＤＣ位置にない場合、ビデオエンコーダ２０は以下の方法でＡＣＳインデックスを符号化し得る。ビデオエンコーダ２０は、走査順序がジグザグ走査順序（たとえば、ｂｉｎ１＝「０」）であるか否（たとえば、ｂｉｎ１＝「１」）かを示す第１の信号（たとえば、「ｂｉｎ１」）を符号化し得る。走査順序がジグザグ走査順序でない場合、ビデオエンコーダ２０は、走査順序が水平走査順序であるか（たとえば、ｂｉｎ２＝「０」）垂直走査順序であるか（たとえば、ｂｉｎ２＝「１」）を示す第２の信号（たとえば、「ｂｉｎ２」）を符号化し得る。同様に、ビデオデコーダ３０は、ＡＣＳインデックスを判断するために、第１の信号と第２の信号とを受信し、復号し得る。したがって、ＡＣＳインデックスを常にコーディングするのではなく、ビデオエンコーダ２０および／またはビデオデコーダ３０は、最後有効係数がＤＣ位置にないときのみ、ＡＣＳインデックスをコーディングし得る。
【００６０】
[0070]前に説明したように、本開示の技法によれば、ビデオデータの特定のブロックのための最後有効係数位置情報は、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を使用してコーディングされ得る。いくつかの例では、ｘ座標は、ブロック内の位置の列番号に対応し得、ｙ座標は、ブロック内の位置の行番号に対応し得る。たとえば、行番号および列番号は、ブロック内の基準または「オリジン」位置、たとえば、ＤＣ位置に対応する行番号および列番号に関係し得る。したがって、これらの技法によれば、ビデオデータのブロックの最後有効係数位置情報は、前に説明したように、ＳＭコーディングを使用するのではなく、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置のｘ座標およびｙ座標を明示的にコーディングすることによってコーディングされ得る。そのような技法によれば、ｘ座標およびｙ座標は、ブロックのための残りのＳＭデータ（すなわち、有効係数フラグ、または有効係数位置情報）とは無関係にコーディングされ得る。たとえば、ｘ座標およびｙ座標は、ブロックの有効係数位置情報をコーディングするより前にコーディングされ得る。
【００６１】
[0071]本開示の技法に一致するいくつかの例では、ｘ座標およびｙ座標をコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。特に、統計値は、走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、統計値を決定し、その統計値に基づいて、たとえば、コンテキスト適応型エントロピーコーディングを使用してｘ座標およびｙ座標をコーディングし得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの前にコーディングされたブロックの最後有効係数位置情報、たとえば、前にコーディングされたブロックのｘ座標およびｙ座標の値を使用して統計値を決定し得る。他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、それぞれの座標が特定の値を備える確率を反映するようにｘ座標およびｙ座標に基づいて統計値を更新し得る。前に説明したように、統計値は、ブロックをコーディングするためにどの走査順序が使用されるかに応じて変動し得る。
【００６２】
[0072]本開示の技法に一致する一例として、統計値に基づいてｘ座標およびｙ座標をコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、統計値を含む特定のコンテキストモデルを選択するために走査順序を使用し得る。すなわち、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックをコーディングするために特定の走査順序を使用するとき、ｘ座標およびｙ座標をコーディングするために一意の統計値を選択し得る。
【００６３】
[0073]さらに、一方の座標（たとえば、ｙ座標）が他方の座標（たとえば、ｘ座標）の後にコーディングされる場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コンテキストとして前にコーディングされた他方の座標の値を使用して座標をコーディングし得る。すなわち、ｘ座標およびｙ座標のうち前にコーディングされた座標の値を使用して、他方の現在コーディングされている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによってｘ座標およびｙ座標をコーディングし得る。
【００６４】
[0074]本開示の技法に一致する別の例として、ｘ座標およびｙ座標は、１つまたは複数のビット、または「ビン」のシーケンスを備える単項（unary）コードワードを使用してそれぞれ表され得る。言い換えれば、ｘ座標およびｙ座標は「２値化」され得る。したがって、統計値に基づいてｘ座標およびｙ座標をコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンをコーディングし得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、たとえば、前に説明したように、前にコーディングされたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前にコーディングされたブロックのための対応するビン、たとえば、前にコーディングされたブロックのためのｘ座標およびｙ座標に対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標に基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンをコーディングし得る。
【００６５】
[0075]上記で説明した技法の１つの欠点は、ビデオデータのブロックの最後有効係数位置情報をコーディングするとき、ビデオエンコーダ２０および／またはビデオデコーダ３０が、ブロックをコーディングするためにビデオエンコーダ２０および／またはビデオデコーダ３０によって使用される走査順序に応じて異なる統計値を使用し得ることである。言い換えれば、ビデオエンコーダ２０および／またはビデオデコーダ３０はそれぞれ、ブロックをコーディングするために複数の走査順序が使用されるとき、ビデオデータのブロックの最後有効係数位置情報をコーディングするために、統計値の複数のセットを決定し、保守（たとえば、更新）し得る。場合によっては、互いに対して対称的である走査順序のために決定され、保守される統計値のセットは、前に説明したように、同じまたは同様の情報を含み得る。これらの場合、統計値のセットを決定し、保守することにより、コーディングシステムリソースの非効率的な使用と、不要なコーディングシステム複雑さとがもたらされ得る。
【００６６】
[0076]上記で説明した技法の別の欠点は、ビデオエンコーダ２０および／またはビデオデコーダ３０が共通の統計値を使用してビデオデータのブロックの最後有効係数位置情報をコーディングするとき、ブロックをコーディングするために使用される走査順序にかかわらず、統計値が、走査順序ごとに個々に決定され、保守（たとえば、更新）された統計値ほど正確でないことがあることである。すなわち、共通の統計値は、ビデオデータの所与のブロックをコーディングするために使用される特定の走査順序のために個々に決定され、保守された統計値よりも不正確に、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の位置の確率を示し得る。これらの場合、共通の統計値を使用して最後有効係数位置情報をコーディングすることにより、コーディング効率が低減され得る。
【００６７】
[0077]上記で説明した技法のさらに別の欠点は、場合によっては、ビデオエンコーダ２０および／またはビデオデコーダ３０が、ビデオデータのブロック内の共通の位置、たとえば、ＤＣ位置において始まる複数の走査順序のうちの１つを使用してブロックをコーディングし得ることである。これらの場合、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置が共通の位置に対応するとき、共通の位置にある係数を超えてブロック内に他の有効係数はない。したがって、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロック内の最後有効係数の位置をコーディングする必要はない。言い換えれば、たとえば、前に説明したようにｘ座標およびｙ座標を使用して表される、全体としてブロックの最後有効係数位置情報をコーディングすることは、これはこの場合もコーディング効率が低減し得るので、この場合は必要でないことがある。
【００６８】
[0078]さらに、上記の例では、ブロック内の最後有効係数の位置が共通の位置に対応せず、ブロックの最後有効係数位置情報がそれの全体としてコーディングされなければならないとき、この情報は、場合によっては、正確でない統計値、たとえば、ブロックの最後有効係数位置情報と走査順序情報との間の前に説明した相関関係を利用しない統計値を使用してコーディングされ得、それにより、この場合もコーディング効率が低減し得る。
【００６９】
[0079]したがって、本開示では、他の技法に対してより効率的にビデオデータのブロックの最後有効係数位置情報をコーディングすることと、他のシステムに対してより少ない複雑さを有するコーディングシステムを使用することとを可能にし得る技法について説明する。一例として、最後有効係数位置情報は、ブロックをコーディングするために複数の走査順序のうちの１つが使用されるとき、共通の統計値を使用してこの情報をコーディングすることによって、たとえば、ブロックをコーディングするために使用される走査順序に応じて、この情報を示すｘ座標およびｙ座標ならびに交換されたｘ座標およびｙ座標をコーディングすることによって、他のシステムに対してより少ない複雑さを有するコーディングシステムを使用してコーディングされ得る。この例によれば、最後有効係数位置情報はまた、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて共通の統計値を更新し、それによってより正確な統計値を生じることにより、より効率的にコーディングされ得る。別の例として、最後有効係数位置情報は、必要な程度まで、増分的にこの情報をコーディングすること、および、全体としてこの情報をコーディングするときに走査順序に基づいてそのように行うこと、たとえば、コンテキストとして走査順序を使用することにより、より効率的にコーディングされ得る。
【００７０】
[0080]いくつかの例では、ソースデバイス１２のビデオエンコーダ２０は、ビデオデータのいくつかのブロック（たとえば、１つまたは複数のマクロブロック、あるいはＣＵのＴＵ）を符号化するように構成され得、宛先デバイス１４のビデオデコーダ３０は、ビデオエンコーダ２０から、たとえば、モデム２８および受信機２６から、符号化されたビデオデータを受信するように構成され得る。本開示の技法によれば、一例として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの特定のブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標をコーディングするように構成され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標をコーディングするように構成され得る。たとえば、第２の走査順序は、第１の走査順序とは異なり得る。
【００７１】
[0081]この例では、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得、水平走査順序と垂直走査順序とは、ブロック内の共通の位置において始まる。たとえば、共通の位置は、前に説明したように、ＤＣ位置であり得る。
【００７２】
[0082]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定するように構成され得、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングすることは、この統計値に基づいてコーディングすることを備える。たとえば、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とをコーディングするために使用され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とをコーディングするために使用され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新するように構成され得る。たとえば、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを使用して更新され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを使用して更新され得る。
【００７３】
[0083]一例として、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオエンコーダ２０および／またはビデオデコーダ３０が少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。
【００７４】
[0084]いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序が第３の走査順序を備えるとき、ｘ座標およびｙ座標をコーディングするように構成され得ることに留意されたい。たとえば、第３の走査順序は、第１の走査順序および第２の走査順序とは異なり得る。一例として、第３の走査順序は、ジグザグ走査順序、または対角走査順序であり得、ジグザグ走査順序または対角走査順序はまた、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【００７５】
[0085]この例では、場合によっては、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報をコーディングするように構成され得る。さらに、場合によっては、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、ブロック内の他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報をコーディングするように構成され得る。
【００７６】
[0086]別の例として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの特定のブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標をコーディングするように構成され得る。たとえば、走査順序は、複数の走査順序のうちの１つであり得、複数の走査順序の各々は、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【００７７】
[0087]この例では、ｘ座標およびｙ座標をコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｘ座標が共通の位置に対応するかどうかを示す情報をコーディングすることと、ｙ座標が共通の位置に対応するかどうかを示す情報をコーディングすることと、ｘ座標が共通の位置に対応せず、ｙ座標が共通の位置に対応しない場合、走査順序を識別する情報をコーディングすることとを行うように構成され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、ｘ座標が共通の位置に対応しない場合、走査順序に基づいてｘ座標をコーディングすることと、ｙ座標が共通の位置に対応しない場合、走査順序に基づいてｙ座標をコーディングすることとを行うように構成され得る。
【００７８】
[0088]この例では、走査順序に基づいてｘ座標およびｙ座標をコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオエンコーダ２０および／またはビデオデコーダ３０が少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは走査順序を含み得る。
【００７９】
[0089]いずれの場合も、上記で説明した方法で、ブロックの最後有効係数位置情報、ならびに、場合によっては、走査順序情報および有効係数位置情報、すなわち、ＳＭデータをコーディングした後に、ビデオエンコーダ２０および／またはビデオデコーダ３０はまた、ブロック内の各有効係数の値（たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の大きさおよび符号（sign））をコーディングし得る。
【００８０】
[0090]したがって、本開示の技法により、ビデオエンコーダ２０および／またはビデオデコーダ３０は、他の方法を使用したときよりも効率的にブロックの最後有効係数位置情報をコーディングすることが可能になり得、ビデオエンコーダ２０および／またはビデオデコーダ３０は、他のシステムに対してより少ない複雑さを有することが可能になり得る。このようにして、本開示の技法を使用すると、最後有効係数位置情報を含むコード化ビットストリームの相対的ビット節約と、この情報をコーディングするために使用されるビデオエンコーダ２０および／またはビデオデコーダ３０の複雑さの相対的低減とが存在し得る。
【００８１】
[0091]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００８２】
[0092]図２は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、マクロブロック、ＣＵ、およびそれのパーティションまたはサブパーティションを含む、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラ（I）モードは、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００８３】
[0093]図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内のビデオデータの現在ブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、メモリ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００８４】
[0094]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して所与の受信ビデオブロックのインター予測コーディングを実行し得る。イントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して所与の受信ビデオブロックのイントラ予測コーディングを実行し得る。
【００８５】
[0095]モード選択ユニット４０は、コーディング結果（たとえば、得られたコーディングレートおよびひずみレベル）に基づいて、ならびにコーディングされている所与の受信ブロックを含むフレームまたはスライスのためのフレームまたはスライスタイプに基づいて、コーディングモードのうちの１つ、すなわち、１つのモードあるいは複数のイントラまたはインターコーディングモードを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に与え、参照フレームまたは参照スライス中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に与え得る。概して、イントラ予測は、隣接する、前にコーディングされたブロックに対して現在ブロックを予測することを伴い、一方、インター予測は、現在ブロックを時間的に予測するために、動き推定および動き補償を伴う。
【００８６】
[0096]動き推定ユニット４２および動き補償ユニット４４は、ビデオエンコーダ２０のインター予測要素を表す。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム（または他のコード化ユニット）内でコーディングされている現在ブロックに対する予測参照フレーム（または他のコード化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、ブロックのパーティションの変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【００８７】
[0097]動き推定ユニット４２は、ビデオブロックをメモリ６４中の参照フレームのビデオブロックと比較することによってインターコード化フレームのビデオブロックの動きベクトルを計算し得る。動き補償ユニット４４はまた、この比較のために、参照フレーム、たとえば、ＩフレームまたはＰフレームのサブ整数ピクセルを補間し得る。一例として、ＩＴＵ  Ｈ．２６４規格には、符号化されている現在フレームよりも前の表示順序を有する参照フレームを含むリスト０、および符号化されている現在フレームよりも後の表示順序を有する参照フレームを含むリスト１という２つのリストが記載されている。したがって、メモリ６４に記憶されるデータは、これらのリストに従って編成され得る。
【００８８】
[0098]動き推定ユニット４２は、メモリ６４からの１つまたは複数の参照フレームのブロックを、現在フレーム、たとえば、ＰフレームまたはＢフレームの符号化されるべきブロックと比較し得る。メモリ６４中の参照フレームがサブ整数ピクセルの値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数ピクセルロケーションを参照し得る。動き推定ユニット４２および／または動き補償ユニット４４はまた、サブ整数ピクセル位置の値がメモリ６４に記憶されていない場合、メモリ６４に記憶された参照フレームのサブ整数ピクセル位置の値を計算するように構成され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送り得る。動きベクトルによって識別される参照フレームブロックは、インター予測ブロック、または、より一般的に、予測ブロックと呼ばれることがある。動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。
【００８９】
[0099]イントラ予測モジュール４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測モジュール４６は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測モジュール４６は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測モジュール４６（または、いくつかの例では、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。たとえば、イントラ予測モジュール４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（または誤差）の量、ならびに符号化されたブロックを生成するために使用されるビットレート（すなわち、ビット数）を決定する。イントラ予測モジュール４６は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックについてのひずみおよびレートから比を計算し得る。
【００９０】
[0100]たとえば、イントラ予測またはインター予測を使用して、現在ブロックを予測した後、ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ビデオブロックを形成し得る。加算器５０は、この減算演算を実行し得る１つまたは複数の構成要素を表す。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成し得る。変換モジュール５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義された変換など、他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル領域から周波数領域などの変換領域に変換し得る。量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【００９１】
[0101]量子化の後に、エントロピー符号化ユニット５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、ＰＩＰＥまたは別のエントロピーコーディング技法を含み得る、量子化変換係数をエントロピー符号化し得る。エントロピー符号化ユニット５６によるエントロピーコーディングの後に、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００９２】
[0102]場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、上記で説明したように量子化変換係数をエントロピーコーディングすることに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、符号化されたビデオビットストリーム中で送信するための適切なシンタックス要素とともに、ブロック（たとえば、マクロブロック、ＣＵ、またはＬＣＵ）、あるいはブロックを含んでいるビデオフレームのためのヘッダ情報を構築し得る。いくつかのコーディング規格によれば、そのようなシンタックス要素は、前に説明したように、ブロック（たとえば、マクロブロック、またはＣＵのＴＵ）の最後有効係数位置情報を含み得る。前にも説明したように、最後有効係数位置情報は、非効率的にコーディングされた場合、全体的な圧縮ビデオビットレートの高い割合を消費し得る。したがって、本開示では、他の方法を使用したときよりも効率的にブロックの最後有効係数位置情報をコーディングすることを可能にし得る技法について説明する。さらに、本開示では、ブロックの最後有効係数位置情報をコーディングするとき、他のシステムに対してより少ない複雑さを有するコーディングシステムを使用することについて説明する。
【００９３】
[0103]いくつかの例では、ビデオエンコーダ２０のエントロピー符号化ユニット５６は、ビデオデータのいくつかのブロック（たとえば、１つまたは複数のマクロブロック、またはＣＵのＴＵ）を符号化するように構成され得る。本開示の技法によれば、一例として、エントロピー符号化ユニット５６は、ビデオデータの特定のブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を符号化するように構成され得る。エントロピー符号化ユニット５６は、さらに、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標を符号化するように構成され得る。たとえば、第２の走査順序は、第１の走査順序とは異なり得る。
【００９４】
[0104]この例では、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得、水平走査順序と垂直走査順序とは、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【００９５】
[0105]特に、第１の走査順序および第２の走査順序はそれぞれ、エントロピー符号化ユニット５６によってブロックを符号化するために使用され得る走査順序であり得る。たとえば、第１の走査順序および第２の走査順序は、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内で、ビデオエンコーダ２０によってビデオデータのブロックを符号化するために使用され、ビデオデコーダ３０によってブロックを復号するために使用される走査順序であり得る。いくつかの例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される走査順序のうちのいくつかのみであり得る。他の例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される唯一の走査順序であり得る。
【００９６】
[0106]さらに、また、交換されたｘ座標およびｙ座標は、ブロックの最後有効係数位置情報に対応するが、前に説明したように、他の技法を使用したときよりも効率的にこの情報を符号化することを可能にするために、エントロピー符号化ユニット５６によってさらに処理される、すなわち、交換される。特に、交換されたｘ座標およびｙ座標により、前にも説明したように、ブロックの最後有効係数位置情報を示す、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために共通の統計値を使用することが可能になり得る。
【００９７】
[0107]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、さらに、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定するように構成され得、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化することは、この統計値に基づいて符号化することを備える。たとえば、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを符号化するために使用され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを符号化するために使用され得る。
【００９８】
[0108]概して、統計値は、走査順序が第１の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示し得る。特に、統計値は、走査順序が第１の走査順序を備えるときに走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。
【００９９】
[0109]前に説明したように、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、統計値は、交換されたｘ座標およびｙ座標の各々が所与の値を備える確率をさらに示し得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックの最後有効係数位置情報、たとえば、前に符号化されたブロックのｘ座標およびｙ座標ならびに交換されたｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０１００】
[0110]エントロピー符号化ユニット５６は、ｘ座標が所与の値を備える確率が、ｘ座標と、交換されたｙ座標とを使用して更新され、ｙ座標が所与の値を備える確率が、ｙ座標と、交換されたｘ座標とを使用して更新されるように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新するようにさらに構成され得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で符号化されるブロックの最後有効係数位置情報を符号化するために使用され得る。
【０１０１】
[0111]一例として、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６が少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。前述のように、ＣＡＢＡＣに加えて、コーディングのためにｘ座標およびｙ座標を交換することについて説明する技法は、ＣＡＶＬＣ、ＰＩＰＥ、または他のコンテキスト適応型エントロピーコーディング技法など、他のコンテキスト適応型エントロピーコーディング技法においても使用され得る。
【０１０２】
[0112]この例では、エントロピー符号化ユニット５６は、走査順序、たとえば、水平走査順序または垂直走査順序を使用して、統計値を含む特定のコンテキストモデルを選択し得る。すなわち、エントロピー符号化ユニット５６は、ブロックを符号化するために第１の走査順序を使用するときにｘ座標およびｙ座標を符号化することと、ブロックを符号化するために第２の走査順序を使用するときに交換されたｘ座標およびｙ座標を符号化することとのために同じ統計値を選択し得る。さらに、ある座標（たとえば、ｙ座標）が別の座標（たとえば、ｘ座標）の後に符号化される場合、エントロピー符号化ユニット５６は、コンテキストとして他方の前に符号化された座標の値を使用して座標を符号化し得る。すなわち、ブロックを符号化するために使用される走査順序に応じた、ｘ座標およびｙ座標、または交換されたｘ座標およびｙ座標のうち前に符号化された座標の値を使用して、他方の現在符号化されている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。エントロピー符号化ユニット５６は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化し得る。
【０１０３】
[0113]前にも説明したように、この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、１つまたは複数のビンのシーケンスを備える単項（unary）コードワードを使用してそれぞれ表され得る、すなわち、「２値化」され得る。したがって、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを符号化し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、たとえば、前に説明したように、前に符号化されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に符号化されたブロックのための対応するビン、たとえば、前に符号化されたブロックのためのｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー符号化ユニット５６は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを符号化し得る。
【０１０４】
[0114]別の例として、場合によっては、一方の（たとえば、ｘ）座標のための単項コードワードのビンの値が異なると、他方の（たとえば、ｙ）座標のための単項コードワードの対応するビンの確率推定値が異なり得る。したがって、上記で説明したように、一方の座標のための単項コードワードのビンに対応する確率推定値を使用してそのビンを符号化するときに、他方の座標のための単項コードワードのビン、たとえば、対応するビンの値に関する情報を含む確率推定値を使用すると、確率推定値が正確になり得、したがって、効率的な符号化が可能になり得る。たとえば、他方の座標のための単項コードワードのビンは、一方の座標のための単項コードワードのビンに対応するビンであり得、たとえば、ビンは、それらのそれぞれのコードワード内の同じまたは同様のビン位置にあり得る。コンテキストとして前に符号化されたビンを使用して、この「インターリーブ」式に、ｘ座標およびｙ座標、ならびに交換されたｘ座標およびｙ座標（または、一般に、ビデオデータのブロックの最後有効係数位置情報を示すｘ座標およびｙ座標）を符号化することにより、それぞれのｘ座標およびｙ座標の相互情報を使用することが可能になり得、それにより、座標をより効率的に符号化することが可能になり得る。
【０１０５】
[0115]他の例では、エントロピー符号化ユニット５６は、概して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するように構成され得る。いくつかの例では、エントロピー符号化ユニット５６は、インターリーブ式に、それぞれのｘ座標およびｙ座標のためのコードワードの個々のビンを符号化するように構成され得る。他の例では、エントロピー符号化ユニット５６は、インターリーブ式に、コードワードのビンのグループを符号化するように構成され得る。たとえば、ｘ座標およびｙ座標の各々のためのコードワードのいくつかのビンは、第１のコーディングモード（たとえば、標準コーディングモード）を使用して符号化され得、コードワードの残りのビンは、第２のコーディングモード（たとえば、バイパスコーディングモード）を使用して符号化され得る。したがって、エントロピー符号化ユニット５６は、第１の（たとえば、標準）コーディングモードを使用してコーディングされる他方の座標に対応するコードワードの１つまたは複数のビンを符号化するより前に、第１のコーディングモードを使用してコーディングされる座標のうちの１つに対応するコードワードの１つまたは複数のビンを符号化し、その後、第２の（たとえば、バイパス）コーディングモードを使用してコーディングされる他方の座標に対応するコードワードの１つまたは複数のビンを符号化するより前に、第２のコーディングモードを使用してコーディングされる一方の座標に対応するコードワードの１つまたは複数のビンを符号化するように構成され得る。他の例では、エントロピー符号化ユニット５６は、一緒に第２のコーディングモードを使用してコーディングされるコードワードのビンを符号化するように構成され得る。
【０１０６】
[0116]したがって、上記で説明した方法でｘ座標およびｙ座標の各々のためのコードワードのビンの符号化を分離することにより、一緒に特定のコーディングモード（たとえば、バイパスモード）を使用して符号化されるビンをグループ化することが可能になり得、それによってコーディングスループットが改善され得る。
【０１０７】
[0117]言い換えれば、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備える場合、エントロピー符号化ユニット５６は、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とのうちの１つに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するように構成され得る。エントロピー符号化ユニット５６は、他方の座標に対応するシーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを符号化することによって、それぞれのｘ座標およびｙ座標を符号化するように構成され得る。さらに、エントロピー符号化ユニット５６は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを符号化するように構成され得る。
【０１０８】
[0118]したがって、最後有効係数位置情報を符号化するために、エントロピー符号化ユニット５６は、コンテキストとして前に符号化されたビンを使用して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するように構成され得る。すなわち、エントロピー符号化ユニット５６は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することによって所与の座標のための単項コードワードの各ビンを符号化するように構成され得、少なくとも１つのコンテキストは、前に説明したように、単項コードワード内のビンの位置と、他方の座標のための単項コードワードの１つまたは複数の前に符号化されたビンの値とを含み得る。さらに、エントロピー符号化ユニット５６は、概して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するように構成され得る。
【０１０９】
[0119]本開示の技法に一致する他の例では、他のタイプのコードワード、たとえば、短縮単項（truncated unary）コードワード、指数ゴロムコードワード、連結コードワード、ならびに様々なコーディング技法の組合せが使用され得ることに留意されたい。
【０１１０】
[0120]また、いくつかの例では、エントロピー符号化ユニット５６は、さらに、走査順序が第３の走査順序を備えるとき、ｘ座標およびｙ座標を符号化するように構成され得ることに留意されたい。たとえば、第３の走査順序は、第１の走査順序および第２の走査順序とは異なり得る。一例として、第３の走査順序は、ジグザグ走査順序、または対角走査順序であり得、ジグザグ走査順序または対角走査順序はまた、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１１１】
[0121]この例では、エントロピー符号化ユニット５６は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化するように構成され得る。代替的に、前に説明したように、エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６がブロックを符号化するために適応走査順序を使用するとき、ブロックの走査順序情報を符号化することを省略し得る。さらに、場合によっては、エントロピー符号化ユニット５６は、さらに、ブロック内のすべての他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を符号化するように構成され得る。
【０１１２】
[0122]たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを符号化することによって符号化され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０１１３】
[0123]コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で符号化されるブロックの有効係数位置情報を符号化するために使用され得る。
【０１１４】
[0124]別の例として、エントロピー符号化ユニット５６は、ビデオデータの特定のブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を符号化するように構成され得る。たとえば、走査順序は、複数の走査順序のうちの１つであり得、複数の走査順序の各々は、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１１５】
[0125]この例では、ｘ座標およびｙ座標を符号化するために、エントロピー符号化ユニット５６は、ｘ座標が共通の位置に対応するかどうかを示す情報を符号化することと、ｙ座標が共通の位置に対応するかどうかを示す情報を符号化することと、ｘ座標が共通の位置に対応せず、ｙ座標が共通の位置に対応しない場合、走査順序を識別する情報を符号化することとを行うように構成され得る。エントロピー符号化ユニット５６は、さらに、ｘ座標が共通の位置に対応しない場合、走査順序に基づいてｘ座標を符号化することと、ｙ座標が共通の位置に対応しない場合、走査順序に基づいてｙ座標を符号化することとを行うように構成され得る。
【０１１６】
[0126]この例では、走査順序に基づいてｘ座標およびｙ座標を符号化するために、エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６が少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは走査順序を含み得る。
【０１１７】
[0127]さらに、一例として、エントロピー符号化ユニット５６は、ある座標（たとえば、ｙ座標）を別の座標（たとえば、ｘ座標）の後に符号化するように構成され得、エントロピー符号化ユニット５６は、コンテキストとして他方の前に符号化された座標の値を使用して一方の座標を符号化するように構成され得る。ｘ座標およびｙ座標の各々が１つまたは複数のビンのシーケンスを備える別の例として、エントロピー符号化ユニット５６は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを符号化するように構成され得る。さらに、エントロピー符号化ユニット５６は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを符号化するように構成され得る。
【０１１８】
[0128]いずれの場合も、上記で説明した方法で、ブロックの最後有効係数位置情報、ならびに、場合によっては、走査順序情報および有効係数位置情報、すなわち、ＳＭデータを符号化した後に、エントロピー符号化ユニット５６はまた、ブロック内の各有効係数の値（たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の大きさおよび符号（sign））を符号化し得る。
【０１１９】
[0129]したがって、本開示の技法により、エントロピー符号化ユニット５６は、他の方法を使用したときよりも効率的にブロックの最後有効係数位置情報を符号化することが可能になり得、エントロピー符号化ユニット５６は、他のシステムに対してより少ない複雑さを有することが可能になり得る。このようにして、本開示の技法を使用すると、最後有効係数位置情報を含むコード化ビットストリームの相対的ビット節約と、この情報を符号化するために使用されるエントロピー符号化ユニット５６の複雑さの相対的低減とが存在し得る。
【０１２０】
[0130]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックをメモリ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、メモリ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１２１】
[0131]このように、ビデオエンコーダ２０は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングするように構成されたビデオコーダの一例を表す。
【０１２２】
[0132]図３は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための技法を実装し得るビデオデコーダ３０の一例を示すブロック図。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測モジュール７４と、逆量子化ユニット７６と、逆変換ユニット７８と、メモリ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。
【０１２３】
[0133]いくつかの例では、ビデオデコーダ３０は、ビデオエンコーダ２０から符号化ビデオデータ（たとえば、１つまたは複数のマクロブロック、あるいはＣＵのＴＵ）を受信するように構成され得る。本開示の技法によれば、一例として、エントロピー復号ユニット７０は、ビデオデータの特定のブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を復号するように構成され得る。エントロピー復号ユニット７０は、さらに、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標を復号するように構成され得る。たとえば、第２の走査順序は、第１の走査順序とは異なり得る。
【０１２４】
[0134]この例では、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得、水平走査順序と垂直走査順序とは、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１２５】
[0135]特に、第１の走査順序および第２の走査順序はそれぞれ、エントロピー復号ユニット７０によってブロックを復号するために使用され得る走査順序であり得る。たとえば、第１の走査順序および第２の走査順序は、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内で、ビデオエンコーダ２０によってビデオデータのブロックを符号化するために使用され、ビデオデコーダ３０によってブロックを復号するために使用される走査順序であり得る。いくつかの例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される走査順序のうちのいくつかのみであり得る。他の例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される唯一の走査順序であり得る。
【０１２６】
[0136]さらに、また、交換されたｘ座標およびｙ座標は、ブロックの最後有効係数位置情報に対応するが、前に説明したように、他の技法を使用したときよりも効率的にこの情報を復号することを可能にするために、エントロピー復号ユニット７０によってさらに処理される、すなわち、交換される。特に、交換されたｘ座標およびｙ座標により、前にも説明したように、ブロックの最後有効係数位置情報を示す、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するために共通の統計値を使用することが可能になり得る。
【０１２７】
[0137]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するために、エントロピー復号ユニット７０は、さらに、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定するように構成され得、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号することは、この統計値に基づいて復号することを備える。たとえば、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを復号するために使用され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを復号するために使用され得る。
【０１２８】
[0138]概して、統計値は、走査順序が第１の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示し得る。特に、統計値は、走査順序が第１の走査順序を備えるときに走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。
【０１２９】
[0139]前に説明したように、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、統計値は、交換されたｘ座標およびｙ座標の各々が所与の値を備える確率をさらに示し得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックの最後有効係数位置情報、たとえば、前に復号されたブロックのｘ座標およびｙ座標ならびに交換されたｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０１３０】
[0140]エントロピー復号ユニット７０は、さらに、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新するように構成され得る。たとえば、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを使用して更新され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを使用して更新され得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で復号されるブロックの最後有効係数位置情報を復号するために使用され得る。
【０１３１】
[0141]一例として、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するために、エントロピー復号ユニット７０は、エントロピー復号ユニット７０が少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。前述のように、ＣＡＢＡＣに加えて、コーディングのためにｘ座標およびｙ座標を交換することについて説明する技法は、ＣＡＶＬＣ、ＰＩＰＥ、または他のコンテキスト適応型技法など、他のコンテキスト適応型コーディング技法においても使用され得る。
【０１３２】
[0142]この例では、エントロピー復号ユニット７０は、走査順序、たとえば、水平走査順序または垂直走査順序を使用して、統計値を含む特定のコンテキストモデルを選択し得る。すなわち、エントロピー復号ユニット７０は、ブロックを復号するために第１の走査順序を使用するときにｘ座標およびｙ座標を復号することと、ブロックを復号するために第２の走査順序を使用するときに交換されたｘ座標およびｙ座標を復号することとのために同じ統計値を選択し得る。さらに、ある座標（たとえば、ｙ座標）が別の座標（たとえば、ｘ座標）の後に復号される場合、エントロピー復号ユニット７０は、コンテキストとして前に復号された別の座標の値を使用して座標を復号し得る。すなわち、ブロックを復号するために使用される走査順序に応じた、ｘ座標およびｙ座標、または交換されたｘ座標およびｙ座標のうち前に復号された座標の値を使用して、他方の現在復号されている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。エントロピー復号ユニット７０は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号し得る。
【０１３３】
[0143]前にも説明したように、この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、「２値化」され得る。したがって、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するために、エントロピー復号ユニット７０は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを復号し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、たとえば、前に説明したように、前に復号されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に復号されたブロックのための対応するビン、たとえば、前に復号されたブロックのためのｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー復号ユニット７０は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを復号し得る。
【０１３４】
[0144]別の例として、場合によっては、一方の（たとえば、ｘ）座標のための単項コードワードのビンの値が異なると、他方の（たとえば、ｙ）座標のための単項コードワードの対応するビンの確率推定値が異なり得る。したがって、上記で説明したように、一方の座標のための単項コードワードのビンに対応する確率推定値を使用してそのビンを復号するときに、他方の座標のための単項コードワードのビン、たとえば、対応するビンの値に関する情報を含む確率推定値を使用すると、確率推定値が正確になり得、したがって、効率的な復号が可能になり得る。たとえば、他方の座標のための単項コードワードのビンは、一方の座標のための単項コードワードのビンに対応するビンであり得、たとえば、ビンは、それらのそれぞれのコードワード内の同じまたは同様のビン位置にあり得る。
【０１３５】
[0145]コンテキストとして前に復号されたビンを使用して、この「インターリーブ」式に、ｘ座標およびｙ座標、ならびに交換されたｘ座標およびｙ座標（または、一般に、ビデオデータのブロックの最後有効係数位置情報を示すｘ座標およびｙ座標）を復号することにより、それぞれのｘ座標およびｙ座標の相互情報を使用することが可能になり得、それにより、座標をより効率的に復号することが可能になり得る。
【０１３６】
[0146]他の例では、エントロピー復号ユニット７０は、概して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するように構成され得る。いくつかの例では、エントロピー復号ユニット７０は、インターリーブ式に、それぞれのｘ座標およびｙ座標のためのコードワードの個々のビンを復号するように構成され得る。他の例では、エントロピー復号ユニット７０は、インターリーブ式に、コードワードのビンのグループを復号するように構成され得る。たとえば、ｘ座標およびｙ座標の各々のためのコードワードのいくつかのビンは、第１のコーディングモード（たとえば、標準コーディングモード）を使用して復号され得、コードワードの残りのビンは、第２のコーディングモード（たとえば、バイパスコーディングモード）を使用して復号され得る。したがって、エントロピー復号ユニット７０は、第１の（たとえば、標準）コーディングモードを使用してコーディングされる他方の座標に対応するコードワードの１つまたは複数のビンを復号するより前に、第１のコーディングモードを使用してコーディングされる座標のうちの１つに対応するコードワードの１つまたは複数のビンを復号し、その後、第２の（たとえば、バイパス）コーディングモードを使用してコーディングされる他方の座標に対応するコードワードの１つまたは複数のビンを復号するより前に、第２のコーディングモードを使用してコーディングされる一方の座標に対応するコードワードの１つまたは複数のビンを復号するように構成され得る。他の例では、エントロピー復号ユニット７０は、一緒に第２のコーディングモードを使用してコーディングされるコードワードのビンを復号するように構成され得る。
【０１３７】
[0147]したがって、上記で説明した方法でｘ座標およびｙ座標の各々のためのコードワードのビンの復号を分離することにより、一緒に特定のコーディングモード（たとえば、バイパスモード）を使用して復号されるビンをグループ化することが可能になり得、それによってコーディング効率も改善され得る。
【０１３８】
[0148]言い換えれば、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備える場合、エントロピー復号ユニット７０は、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とのうちの１つに基づく統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するように構成され得る。エントロピー復号ユニット７０は、他方の座標に対応するシーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを復号することにより、それぞれのｘ座標およびｙ座標を復号するように構成され得る。さらに、エントロピー復号ユニット７０は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを復号するように構成され得る。
【０１３９】
[0149]したがって、最後有効係数位置情報を復号するために、エントロピー復号ユニット７０は、コンテキストとして前に復号されたビンを使用して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号するように構成され得る。すなわち、エントロピー復号ユニット７０は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することによって所与の座標のための単項コードワードの各ビンを復号するように構成され得、少なくとも１つのコンテキストは、前に説明したように、単項コードワード内のビンの位置と、他方の座標のための単項コードワードの１つまたは複数の前に復号されたビンの値とを含み得る。さらに、エントロピー符号化ユニット５６は、概して、インターリーブ式に、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するように構成され得る。
【０１４０】
[0150]本開示の技法に一致する他の例では、他のタイプのコードワード、たとえば、短縮単項コードワード、指数ゴロムコードワード、連結コードワード、ならびに様々なコーディング技法の組合せが使用され得ることに留意されたい。
【０１４１】
[0151]また、いくつかの例では、エントロピー復号ユニット７０は、さらに、走査順序が第３の走査順序を備えるとき、ｘ座標およびｙ座標を復号するように構成され得ることに留意されたい。たとえば、第３の走査順序は、第１の走査順序および第２の走査順序とは異なり得る。一例として、第３の走査順序は、ジグザグ走査順序、または対角走査順序であり得、ジグザグ走査順序または対角走査順序はまた、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１４２】
[0152]この例では、場合によっては、エントロピー復号ユニット７０は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を復号するように構成され得る。代替的に、前に説明したように、エントロピー復号ユニット７０は、エントロピー復号ユニット７０がブロックを復号するために適応走査順序を使用するとき、ブロックの走査順序情報を復号することを省略し得る。さらに、場合によっては、エントロピー復号ユニット７０は、さらに、ブロック内の他の有効係数の位置を識別する情報、すなわち、ブロックの有効係数位置情報を復号するように構成され得る。
【０１４３】
[0153]たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを復号することにより復号され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０１４４】
[0154]この場合も、コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で復号されるブロックの有効係数位置情報を復号するために使用され得る。
【０１４５】
[0155]別の例として、エントロピー復号ユニット７０は、ビデオデータの特定のブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を復号するように構成され得る。たとえば、走査順序は、複数の走査順序のうちの１つであり得、複数の走査順序の各々は、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１４６】
[0156]この例では、ｘ座標およびｙ座標を復号するために、エントロピー復号ユニット７０は、ｘ座標が共通の位置に対応するかどうかを示す情報を復号することと、ｙ座標が共通の位置に対応するかどうかを示す情報を復号することと、ｘ座標が共通の位置に対応せず、ｙ座標が共通の位置に対応しない場合、走査順序を識別する情報を復号することとを行うように構成され得る。エントロピー復号ユニット７０は、さらに、ｘ座標が共通の位置に対応しない場合、走査順序に基づいてｘ座標を復号することと、ｙ座標が共通の位置に対応しない場合、走査順序に基づいてｙ座標を復号することとを行うように構成され得る。
【０１４７】
[0157]この例では、走査順序に基づいてｘ座標およびｙ座標を復号するために、エントロピー復号ユニット７０は、エントロピー復号ユニット７０が少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行するように構成され得る。たとえば、少なくとも１つのコンテキストは走査順序を含み得る。
【０１４８】
[0158]さらに、一例として、エントロピー復号ユニット７０は、一方の座標（たとえば、ｙ座標）を他方の座標（たとえば、ｘ座標）の後に復号するように構成され得、エントロピー復号ユニット７０は、コンテキストとして前に復号された当該他方の座標の値を使用して当該一方の座標を復号するように構成され得る。ｘ座標およびｙ座標の各々が１つまたは複数のビンのシーケンスを備える別の例として、エントロピー復号ユニット７０は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することにより、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを復号するように構成され得る。さらに、エントロピー復号ユニット７０は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを復号するように構成され得る。
【０１４９】
[0159]いずれの場合も、上記で説明した方法で、ブロックの最後有効係数位置情報、ならびに、場合によっては、走査順序情報および有効係数位置情報、すなわち、ＳＭデータを復号した後に、エントロピー復号ユニット７０はまた、ブロック内の各有効係数の値（たとえば、それぞれシンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」によって示される、各有効係数の大きさおよび符号）を復号し得る。
【０１５０】
[0160]したがって、本開示の技法により、エントロピー復号ユニット７０は、他の方法を使用したときよりも効率的にブロックの最後有効係数位置情報を復号することが可能になり得、エントロピー復号ユニット７０は、他のシステムに対してより少ない複雑さを有することが可能になり得る。このようにして、本開示の技法を使用すると、最後有効係数位置情報を含むコード化ビットストリームの相対的ビット節約と、この情報を復号するために使用されるエントロピー復号ユニット７０の複雑さの相対的低減とが存在し得る。
【０１５１】
[0161]動き補償ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、メモリ８２中の参照フレーム中の予測ブロックを識別し得る。イントラ予測モジュール７４は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
【０１５２】
[0162]イントラ予測モジュール７４は、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックのイントラ予測モードの指示を使用し得る。ブロックがインター予測モード符号化される例では、動き補償ユニット７２は、符号化ブロックについての動き補償予測データを取り出すために、動きベクトルを定義する情報を受信し得る。いずれの場合も、動き補償ユニット７２またはイントラ予測モジュール７４は、予測ブロックを定義する情報を加算器８０に与え得る。
【０１５３】
[0163]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格によって定義される、またはＨＥＶＣテストモデルによって実行されるなど、従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、各ブロックについてビデオエンコーダ２０によって計算される量子化パラメータＱＰＹの使用を含み得る。
【０１５４】
[0164]逆変換モジュール７８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用して、ピクセル領域において残差ブロックを生成する。動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１５５】
[0165]動き補償ユニット７２は、符号化ブロックのためのシンタックス情報のいくつかを使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるブロックのサイズと、符号化ビデオシーケンスのフレームまたはスライスの各ブロックがどのように区分されるかを記述するパーティション情報と、各パーティションがどのように符号化されるかを示すモードと、各インター符号化ブロックまたはパーティションのための１つまたは複数の参照フレーム（および参照フレームリスト）と、符号化ビデオシーケンスを復号するための他の情報とを決定する。イントラ予測モジュール７４はまた、上記で説明したように、たとえば、隣接する、前に復号されたブロックのピクセルを使用して、符号化ブロックをイントラ予測するために符号化ブロックのシンタックス情報を使用し得る。
【０１５６】
[0166]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合計して、復号ブロックを形成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理し得る。復号ビデオブロックは、次いで、メモリ８２に記憶され、メモリ８２は、参照ブロックを後続の動き補償に与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【０１５７】
[0167]このように、ビデオデコーダ３０は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすることと、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングすることと、を行うように構成されたビデオコーダの一例を表す。
【０１５８】
[0168]図４Ａ〜図４Ｃは、ビデオデータのブロックと、対応する有効係数位置情報と、最後有効係数位置情報との一例を示す概念図である。図４Ａに示すように、ビデオデータのブロック、たとえば、マクロブロック、またはＣＵのＴＵは、量子化変換係数を含み得る。たとえば、図４Ａに示すように、ブロック４００は、前に説明した予測、変換、および量子化技法を使用して生成された量子化変換係数を含み得る。この例では、ブロック４００が２Ｎ×２Ｎのサイズを有すると仮定し、ただし、Ｎは２に等しい。したがって、ブロック４００は、図４Ａに同じく示すように、４×４のサイズを有し、１６個の量子化変換係数を含む。さらに、以下でより詳細に説明する図５Ａに示すように、ブロック４００に関連する走査順序がジグザグ走査順序であると仮定する。
【０１５９】
[0169]この例では、ジグザグ走査順序に従うブロック４００内の最後有効係数は、ブロック４００内の位置４０６にある、「１」に等しい量子化変換係数である。他の例では、上記で説明したように、ブロックは、ブロック４００のサイズよりも小さいまたは大きいサイズを有し得、ブロック４００よりも多いまたは少ない量子化変換係数を含み得る。さらに他の例では、ブロック４００に関連する走査順序は、異なる走査順序、たとえば、水平走査順序、垂直走査順序、対角走査順序、または別の走査順序であり得る。
【０１６０】
[0170]図４Ｂは、前に説明したように、有効係数フラグデータ、すなわち、マップまたはブロック形式で表された有効係数フラグの一例を示している。図４Ｂの例において、ブロック４０２は、図４Ａに示すブロック４００に対応し得る。言い換えれば、ブロック４０２の有効係数フラグはブロック４００の量子化変換係数に対応し得る。図４Ｂに示すように、「１」に等しいブロック４０２の有効係数フラグは、ブロック４００の有効係数に対応する。同様に、「０」に等しいブロック４０２の有効係数フラグは、ブロック４００の０または非有効係数に対応する。
【０１６１】
[0171]この例では、ジグザグ走査順序に従うブロック４００内の最後有効係数に対応するブロック４０２の有効係数フラグは、ブロック４０２内の位置４０８にある、「１」に等しい有効係数フラグである。他の例では、有効係数または非有効係数を示すために使用される有効係数フラグの値は変えられ得る（たとえば、「０」に等しい有効係数フラグが有効係数に対応し得、「１」に等しい有効係数フラグが非有効係数に対応し得る）。
【０１６２】
[0172]図４Ｃは、前にも説明したように、最後有効係数フラグデータ、すなわち、マップまたはブロック形態で表された最後有効係数フラグの一例を示している。図４Ｃの例において、ブロック４０４は、それぞれ、図４Ａおよび図４Ｂに示すブロック４００およびブロック４０２に対応し得る。言い換えれば、ブロック４０４の最後有効係数フラグは、ブロック４００の量子化変換係数と、ブロック４０２の有効係数フラグとに対応し得る。
【０１６３】
[0173]図４Ｃに示すように、ブロック４０４内の位置４１０にある、「１」に等しいブロック４０４の最後有効係数フラグは、ブロック４００の最後有効係数と、ジグザグ走査順序に従う、「１」に等しいブロック４０２の有効係数フラグのうちの最後有効係数フラグとに対応する。同様に、「０」に等しいブロック４０４の最後有効係数フラグ（すなわち、すべての残りの最後有効係数フラグ）は、ブロック４００の０または非有効係数と、ジグザグ走査順序に従うそのような有効係数フラグのうちの最後有効係数フラグ以外の「１」に等しいブロック４０２のすべての有効係数フラグとに対応する。
【０１６４】
[0174]走査順序に従う最後有効係数を示すために使用される最後有効係数フラグの値は変えられ得る（たとえば、「０」に等しい最後有効係数フラグが、走査順序に従う最後有効係数に対応し得、「１」に等しい最後有効係数フラグが、すべての残りの係数に対応し得る）。いずれの場合も、ブロック４０２の有効係数フラグと、ブロック４０４の最後有効係数フラグとは、ブロック４００のためのＳＭデータと総称されることがある。
【０１６５】
[0175]上記で説明したように、ビデオデータのブロックの有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの有効係数フラグを、図４Ｂに示すブロック４０２に示されている２次元ブロック表現から１次元アレイに直列化することによって示され得る。図４Ａ〜図４Ｂに示すブロック４００〜４０２の例では、この場合もジグザグ走査順序を仮定すると、ブロック４００の有効係数位置情報は、ブロック４０２の有効係数フラグを１次元アレイに直列化することによって示され得る。すなわち、ブロック４００の有効係数位置情報は、ジグザグ走査順序に従ってブロック４０２の有効係数フラグのシーケンスを生成することによって示され得る。
【０１６６】
[0176]この例では、生成シーケンスは、ジグザグ走査順序に従ってブロック４０２の最初の６つの有効係数フラグを表す、値「１１１１１１」に対応し得る。生成シーケンスは、ブロック４００内のブロック位置の範囲に対応する有効係数フラグを含み、ジグザグ走査順序における最初のブロック位置（すなわち、ＤＣ位置）から開始し、ジグザグ走査順序に従うブロック４００の最後有効係数に対応する（すなわち、ブロック４０４の「１」に等しい最後有効係数フラグに対応する）ブロック位置で終了することに留意されたい。
【０１６７】
[0177]上記でも説明したように、ブロックの最後有効係数位置情報は、ブロックに関連する走査順序を使用して、ブロックの最後有効係数フラグを、図４Ｃに示すブロック４０４に示されている２次元ブロック表現から１次元アレイに直列化することによって示され得る。図４Ａ〜図４Ｃに示すブロック４００〜４０４の例では、この場合もジグザグ走査順序を仮定すると、ブロック４００の最後有効係数位置情報は、ブロック４０４の最後有効係数フラグを１次元アレイに直列化することによって示され得る。すなわち、ブロック４００の最後有効係数位置情報は、ジグザグ走査順序に従ってブロック４０４の最後有効係数フラグのシーケンスを生成することによって示され得る。この例では、生成シーケンスは、ジグザグ走査順序に従ってブロック４０４の最初の６つの最後有効係数フラグを表す、値「０００００１」に対応し得る。
【０１６８】
[0178]この場合も、生成シーケンスは、ジグザグ走査順序における最初のブロック位置から開始し、ジグザグ走査順序に従うブロック４００の最後有効係数に対応する（すなわち、ブロック４０４の「１」に等しい最後有効係数フラグに対応する）ブロック位置で終了する、ブロック４００内のブロック位置の範囲に対応する最後有効係数フラグを含み得ることに留意されたい。したがって、この例では、シーケンス中に、ジグザグ走査順序による「１」に等しい最後有効係数フラグの後に最後有効係数フラグは含まれない。概して、ビデオデータのブロックに関連する走査順序に従う「１」に等しい最後有効係数フラグの後の最後有効係数フラグは、ブロックの最後有効係数位置情報を示すことを必要とされないことがある。したがって、いくつかの例では、これらのフラグは、この情報を示すために使用される最後有効係数フラグの生成シーケンスから省略される。
【０１６９】
[0179]また、上記で説明したように、最後有効係数が走査順序に従う最後ブロック位置（たとえば、右下ブロック位置）内に位置する場合、その位置はブロックの最後有効係数を含んでいると推測され得るので、生成シーケンスは、最後ブロック位置に対応する最後有効係数フラグを含まなくてよいことに留意されたい。したがって、この例では、生成シーケンスは、値「０００００００００００００００」に対応し得、最後ブロック位置に対応する最後有効係数フラグは、シーケンス中に含まれず、「１」に等しいと推測される。
【０１７０】
[0180]図５Ａ〜図５Ｃは、それぞれ、ジグザグ走査順序と、水平走査順序と、垂直走査順序とを使用して走査されるビデオデータのブロックの例を示す概念図である。図５Ａ〜図５Ｃに示すように、ビデオデータの８×８ブロック、たとえば、マクロブロック、またはＣＵのＴＵは、円で示された対応するブロック位置において６４個の量子化変換係数を含み得る。たとえば、ブロック５００〜５０４はそれぞれ、同じく前に説明した予測、変換、および量子化技法を使用して生成された６４個の量子化変換係数を含み得、各対応するブロック位置は円で示されている。この例では、ブロック５００〜５０４が２Ｎ×２Ｎのサイズを有すると仮定し、ただし、Ｎは４に等しい。したがって、ブロック５００〜５０４は８×８のサイズを有する。
【０１７１】
[0181]図５Ａに示すように、ブロック５００に関連する走査順序はジグザグ走査順序である。ジグザグ走査順序は、図５Ａの矢印によって示されるように対角的にブロック５００の量子化変換係数を走査する。同様に、図５Ｂおよび図５Ｃに示すように、ブロック５０２および５０４に関連する走査順序は、それぞれ水平走査順序および垂直走査順序である。同じく図５Ｂおよび図５Ｃの矢印によって示されるように、水平走査順序は、水平線ごとに、または「ラスタ」的にブロック５０２の量子化変換係数を走査するが、垂直走査順序は、垂直線ごとに、または「回転されたラスタ」的にブロック５０４の量子化変換係数を走査する。
【０１７２】
[0182]他の例では、上記で説明したように、ブロックは、ブロック５００〜５０４のサイズよりも小さいまたは大きいサイズを有し得、より多いまたはより少ない量子化変換係数と、対応するブロック位置とを含み得る。これらの例では、ブロックに関連する走査順序は、図５Ａ〜図５Ｃの８×８ブロック５００〜５０４の例に示すのと実質的に同様の方法でブロックの量子化変換係数を走査し得、前に説明した走査順序のいずれかに従って、たとえば、４×４ブロック、または１６×１６ブロックが走査され得る。
【０１７３】
[0183]前に説明したように、本開示の技法は、対角走査順序、ジグザグ、水平、垂直、および／または対角走査順序の組合せである走査順序、ならびに、部分的にジグザグであり、部分的に水平であり、部分的に垂直であり、および／または部分的に対角である走査順序を含む、多種多様な他の走査順序に対しても適用され得る。さらに、本開示の技法はまた、ビデオデータの前にコーディングされたブロック（たとえば、コーディングされている現在ブロックと同じブロックサイズまたはコーディングモードを有するブロック）に関連する統計値に基づいてそれ自体で適応的である走査順序を考慮し得る。たとえば、適応走査順序は、場合によっては、ビデオデータのブロックに関連する走査順序であり得る。
【０１７４】
[0184]図６Ａ〜図６Ｃは、本開示の技法に一致する、走査順序情報に基づいてそれの最後有効係数位置情報がコーディングされるビデオデータのブロックの例を示す概念図である。図６Ａに示すように、ブロック６００は、矢印によって示され、図５Ｂを参照しながら上記で説明したように、水平走査順序に従って０から１５に順序付けられた１６個のブロック位置を含み得る。１６個のブロック位置の各々は、図４Ａを参照しながら上記で説明したように、量子化変換係数を含んでいることがある。図６Ａに同じく示すように、位置「２」に対応する、水平走査順序に従うブロック６００内の第３の位置は、位置６０６と呼ぶことがある。この例では、位置６０６は、ｘ座標が「２」に等しく、ｙ座標が「０」に等しい、ｘおよびｙ座標（２，０）を使用して表され得、ｘおよびｙ座標（０，０）に対応する基準位置または「原点」は、上記で説明したように、ブロック６００の左上隅、すなわち、ＤＣ位置にある。この例では、位置６０６は、水平走査順序に従ってブロック６００内の最後有効係数の位置に対応すると仮定する。
【０１７５】
[0185]さらに、ブロック６００について、水平走査順序に従うブロック６００内の最後有効係数の位置に対応する、ブロック６００内の所与の位置の確率を示す統計値が存在すると仮定する。特に、統計値は、水平走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標（２，０）の各々が所与の値を備える確率を示し得る。
【０１７６】
[0186]さらに、いくつかの例では、ｘ座標およびｙ座標は、たとえば、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによって、統計値に基づいてコーディングされ得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、走査順序、たとえば、水平走査順序は、統計値を含む特定のコンテキストモデルを選択するために使用され得る。さらに、一方の座標（たとえば、ｙ座標）が他方の座標（たとえば、ｘ座標）の後にコーディングされる場合、当該一方の座標は、コンテキストとして前にコーディングされた当該他方の座標の値を使用してコーディングされ得る。すなわち、ｘ座標およびｙ座標のうち前にコーディングされた座標の値を使用して、他方の現在コーディングされている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。
【０１７７】
[0187]さらに、いくつかの例では、ｘ座標およびｙ座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、「２値化」され得る。したがって、統計値に基づいてｘ座標およびｙ座標をコーディングするために、特定の座標に対応するコードワードの各ビンは、コンテキスト適応型エントロピーコーディングプロセスを実行することによってコーディングされ得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。
【０１７８】
[0188]図６Ｂにさらに示すように、ブロック６０２はまた、この場合も０から１５に順序付けられた１６個のブロック位置を含み得るが、この場合は、矢印によって示され、図５Ｃを参照しながら上記で説明したように、垂直走査順序に従う。１６個のブロック位置の各々は、図４Ａを参照しながら上記で説明したように、量子化変換係数を含んでいることがある。図６Ｂに同じく示すように、位置「２」に対応する、垂直走査順序に従うブロック６０２内の第３の位置は、位置６０８と呼ぶことがある。この例では、位置６０８は、ｘ座標が「０」に等しく、ｙ座標が「２」に等しい、ｘおよびｙ座標（０，２）を使用して表され得、ｘおよびｙ座標（０，０）に対応する基準位置または「原点」は、上記で説明したように、この場合もブロック６０２の左上隅、すなわち、ＤＣ位置にある。この例では、位置６０８は、垂直走査順序に従ってこの場合もブロック６０２内の最後有効係数の位置に対応すると仮定する。
【０１７９】
[0189]図６Ａ〜図６Ｂの例において、ブロック６００の水平走査順序は、水平走査順序に従うブロック６００内の最後有効係数の位置のｘ座標「２」が所与の値を備える確率が、垂直走査順序に従うブロック６０２内の最後有効係数の位置のｙ座標「２」が同じ値を備える確率と同じまたは同様であるように、ブロック６０２の垂直走査順序に関して対称的であり得、その逆も同様である。同様に、水平走査順序に従うブロック６００内の最後有効係数の位置のｙ座標「０」が所与の値を備える確率は、垂直走査順序に従うブロック６０２内の最後有効係数の位置のｘ座標「０」が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、ブロック６００内の位置６０６のｘ座標およびｙ座標（２，０）はそれぞれ、ブロック６０２内の位置６０８の交換されたｘ座標およびｙ座標（０，２）とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。図６Ｂの破線矢印によって示されるように、ブロック６０２内の位置６０８の交換されたｘ座標およびｙ座標（０，２）は、ｘ座標およびｙ座標（２，０）を使用して表され得るブロック６０２内の位置６１０に対応し得る。
【０１８０】
[0190]したがって、本開示の技法によれば、水平走査順序に従うブロック６００内の最後有効係数の位置に対応するブロック６００内の所与の位置の確率を示す共通の統計値は、前に説明したように、ブロック６００内の位置６０６のｘ座標およびｙ座標（２，０）、ならびにブロック６０２内の位置６０８の交換されたｘ座標およびｙ座標（０，２）をコーディングするために使用され得る。
【０１８１】
[0191]図６Ｃにさらに示すように、ブロック６０４はまた、この場合も０から１５に順序付けられた１６個のブロック位置を含み得るが、この場合は、矢印によって示され、図５Ａを参照しながら上記で説明したように、ジグザグ走査順序に従う。１６個のブロック位置の各々は、図４Ａを参照しながら上記で説明したように、量子化変換係数を含み得る。図６Ｃに同じく示すように、位置「２」に対応する、ジグザグ走査順序に従うブロック６０４内の第３の位置は、位置６１２と呼ぶことがある。この例では、位置６１２は、ｘ座標が「０」に等しく、ｙ座標が「１」に等しい、ｘおよびｙ座標（０，１）を使用して表され得、ｘおよびｙ座標（０，０）に対応する基準位置または「原点」は、上記で説明したように、この場合もブロック６０４の左上隅、すなわち、ＤＣ位置にある。この例では、位置６１２は、ジグザグ走査順序に従ってこの場合もブロック６０４内の最後有効係数の位置に対応すると仮定する。
【０１８２】
[0192]図６Ｃの例では、ブロック６０４のジグザグ走査順序は、それぞれブロック６００およびブロック６０２の水平走査順序または垂直走査順序に関して対称的でないことがある。したがって、ブロック６００またはブロック６０２内の最後有効係数の位置に対応するｘ座標およびｙ座標と、ブロック６０４内の最後有効係数の位置に対応するｘ座標およびｙ座標との間には、上記で説明した確率の一致または類似性が存在しないことがある。とはいえ、ブロック６０４内の最後有効係数の位置に対応するｘ座標およびｙ座標は、図６Ａ〜図６Ｂの例を参照しながら上記で説明した共通の統計値を使用してコーディングされ得る。たとえば、ｘ座標およびｙ座標をコーディングするために共通の統計値を使用すると、それぞれの座標が特定の値を備える確率を正確に反映しないことがあるが、とはいえ、このように座標をコーディングすると、前に説明したように、別々の統計値ではなく、共通の統計値を使用することによりコーディング効率が改善され、それにより潜在的にシステム複雑さが低減され得る。
【０１８３】
[0193]図７は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的にコーディングするための方法の一例を示すフローチャートである。図７の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図７の技法について、ビデオエンコーダ２０（図１および図２）および／またはビデオデコーダ３０（図１および図３）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図７に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０１８４】
[0194]初めに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータのブロックに関連する走査順序が第１の走査順序であるか第２の走査順序であるかを判断する（７００）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。さらに、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、前にも説明したように、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得、水平走査順序と垂直走査順序とは、ブロック内の共通の位置、たとえば、ＤＣ位置において始まる。
【０１８５】
[0195]特に、第１の走査順序および第２の走査順序はそれぞれ、ビデオエンコーダ２０および／またはビデオデコーダ３０によってブロックをコーディングするために使用され得る走査順序であり得る。たとえば、第１の走査順序および第２の走査順序は、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内で、ビデオエンコーダ２０によってビデオデータのブロックを符号化するために使用され、ビデオデコーダ３０によってブロックを復号するために使用される走査順序であり得る。いくつかの例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される走査順序のうちのいくつかのみであり得る。他の例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される唯一の走査順序であり得る。このようにして、図７の例示的な方法は、ビデオデータのブロックをコーディングするために複数の走査順序を使用する任意のコーディングシステムに適用可能であり得る。
【０１８６】
[0196]ビデオエンコーダ２０は、直接的に、たとえば、ブロックを符号化することの一部として、走査順序が第１の走査順序であるか第２の走査順序であるかの決定を行い得る。ビデオデコーダ３０は、ブロックの走査順序情報を復号することによってこの決定を行い得る。たとえば、ビデオエンコーダ２０は、図８の例示的な方法においてより詳細に説明するように走査順序情報を符号化し得、ビデオデコーダ３０は、図９の例示的な方法において同じくより詳細に説明するようにその情報を復号し得る。
【０１８７】
[0197]走査順序が第１の走査順序である場合（７０２）、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標、すなわち、ブロックの最後有効係数位置情報をコーディングする（７０４）。しかしながら、走査順序が第２の走査順序である場合（７０２）、ビデオエンコーダ２０および／またはビデオデコーダ３０は、代わりに、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする（７０６）。この例では、また、交換されたｘ座標およびｙ座標は、ブロックの最後有効係数位置情報に対応するが、前に説明したように、他の技法を使用したときよりも効率的にこの情報をコーディングすることを可能にするために、ビデオエンコーダ２０および／またはビデオデコーダ３０によってさらに処理される、すなわち、交換される。特に、交換されたｘ座標およびｙ座標により、前にも説明したように、ブロックの最後有効係数位置情報を示す、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために共通の統計値を使用することが可能になり得る。いずれの場合も、ｘ座標およびｙ座標を使用して表されるか、交換されたｘ座標およびｙ座標を使用して表されるかにかかわらず、ブロックの最後有効係数位置情報は、ビデオエンコーダ２０の場合には符号化され得、ビデオデコーダ３０の場合には復号され得る。
【０１８８】
[0198]ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、さらに、走査順序が第１の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。特に、統計値は、走査順序が第１の走査順序を備えるときに走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。
【０１８９】
[0199]第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、統計値は、交換されたｘ座標およびｙ座標の各々が所与の値を備える確率をさらに示し得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの前にコーディングされたブロックの最後有効係数位置情報、たとえば、前にコーディングされたブロックの、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標との値を使用して統計値を決定し得る。
【０１９０】
[0200]この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングし得る。たとえば、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ｘ座標が所与の値を備える確率が、ｘ座標と、交換されたｙ座標とをコーディングするために使用され、ｙ座標が所与の値を備える確率が、ｙ座標と、交換されたｘ座標とをコーディングするために使用されるように、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングし得る。さらに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、それぞれの座標が特定の値を備える確率を反映するように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新し得る。この例では、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを使用して更新され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを使用して更新され得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後でコーディングされるブロックの最後有効係数位置情報をコーディングするために使用され得る。
【０１９１】
[0201]いくつかの例では、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、走査順序、たとえば、水平走査順序または垂直走査順序を使用して、統計値を含む特定のコンテキストモデルを選択し得る。すなわち、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ブロックをコーディングするために第１の走査順序を使用するときにｘ座標およびｙ座標をコーディングすることと、ブロックをコーディングするために第２の走査順序を使用するときに交換されたｘ座標およびｙ座標をコーディングすることとのために同じ統計値を選択し得る。
【０１９２】
[0202]さらに、一方の座標（たとえば、ｙ座標）が他方の座標（たとえば、ｘ座標）の後にコーディングされる場合、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コンテキストとして当該他方の前にコーディングされた座標の値を使用して当該一方の座標をコーディングし得る。すなわち、ブロックをコーディングするために使用される走査順序に応じた、ｘ座標およびｙ座標、または交換されたｘ座標およびｙ座標のうち前にコーディングされた座標の値を使用して、他方の現在コーディングされている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングし得る。
【０１９３】
[0203]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、１つまたは複数のビットまたはビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、２値化され得る。したがって、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために、ビデオエンコーダ２０および／またはビデオデコーダ３０は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンをコーディングし得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、たとえば、前に説明したように、前にコーディングされたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前にコーディングされたブロックのための対応するビン、たとえば、前にコーディングされたブロックのための、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。ビデオエンコーダ２０および／またはビデオデコーダ３０は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンをコーディングし得る。
【０１９４】
[0204]別の例として、ビデオエンコーダ２０および／またはビデオデコーダ３０は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンをコーディングすることによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングし得る。さらに、ビデオエンコーダ２０および／またはビデオデコーダ３０は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとをコーディングするように構成され得る。
【０１９５】
[0205]最後に、いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、走査順序に従うブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報をコーディングする（７０８）。たとえば、ブロックの有効係数位置情報は、前に説明したように、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグをコーディングすることによりコーディングされ得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０１９６】
[0206]この例では、コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、ビデオエンコーダ２０および／またはビデオデコーダ３０は、ビデオデータの前にコーディングされたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、ビデオエンコーダ２０および／またはビデオデコーダ３０はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後でコーディングされるブロックの有効係数位置情報をコーディングするために使用され得る。
【０１９７】
[0207]このように、図７の方法は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする方法の一例を表す。
【０１９８】
[0208]図８は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための方法の一例を示すフローチャートである。図８の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図８の技法について、エントロピー符号化ユニット５６（図２）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図８に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０１９９】
[0209]初めに、エントロピー符号化ユニット５６が、ビデオデータのブロックを受信する（８００）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。エントロピー符号化ユニット５６は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標、すなわち、ブロックの最後有効係数位置情報を決定する（８０２）。たとえば、走査順序は、エントロピー符号化ユニット５６によってブロックを符号化するために使用される走査順序であり得、前に説明したように、ブロック内の共通の位置において始まる複数の走査順序のうちの１つであり得る。前にも説明したように、共通の位置はＤＣ位置に対応し得る。さらに、ｘ座標およびｙ座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る。
【０２００】
[0210]エントロピー符号化ユニット５６は、さらに、走査順序が第１の走査順序であるか第２の走査順序であるかを決定する（８０４）。たとえば、第１の走査順序および第２の走査順序は、前に説明したように、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内で、エントロピー符号化ユニット５６によってビデオデータのブロックを符号化するために使用され得る走査順序であり得る。いくつかの例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用され得る走査順序のうちのいくつかのみであり得る。他の例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される唯一の走査順序であり得る。前に説明したように、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得る。エントロピー符号化ユニット５６は、直接的に、たとえば、ブロックを符号化することの一部として、走査順序が第１の走査順序であるか第２の走査順序であるかの決定を行い得る。
【０２０１】
[0211]走査順序が第１の走査順序である場合（８０６）、エントロピー符号化ユニット５６は、さらに、ｘ座標およびｙ座標を符号化する（８０８）。しかしながら、走査順序が第２の走査順序である場合（８０６）、エントロピー符号化ユニット５６は、代わりに、ｘ座標とｙ座標とを交換し、交換されたｘ座標およびｙ座標を符号化する（８１０）。前に説明したように、また、交換されたｘ座標およびｙ座標は、ブロックの最後有効係数位置情報に対応するが、他の技法を使用したときよりも効率的にこの情報を符号化することを可能にするために、エントロピー符号化ユニット５６によってさらに処理される、すなわち、交換される。特に、交換されたｘ座標およびｙ座標により、前にも説明したように、ブロックの最後有効係数位置情報を示す、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために共通の統計値を使用することが可能になり得る。いずれの場合も、エントロピー符号化ユニット５６は、ｘ座標およびｙ座標として表されるか交換されたｘ座標およびｙ座標として表されるかにかかわらず、ブロックの最後有効係数位置情報を符号化し得る。
【０２０２】
[0212]ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、さらに、走査順序が第１の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。特に、統計値は、走査順序が第１の走査順序を備えるときに走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。
【０２０３】
[0213]第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、統計値は、交換されたｘ座標およびｙ座標の各々が所与の値を備える確率をさらに示し得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックの最後有効係数位置情報、たとえば、前に符号化されたブロックのｘ座標およびｙ座標ならびに交換されたｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０２０４】
[0214]この例では、エントロピー符号化ユニット５６は、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化し得る。たとえば、エントロピー符号化ユニット５６は、ｘ座標が所与の値を備える確率が、ｘ座標と、交換されたｙ座標とを符号化するために使用され、ｙ座標が所与の値を備える確率が、ｙ座標と、交換されたｘ座標とを符号化するために使用されるように、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化し得る。さらに、エントロピー符号化ユニット５６は、それぞれの座標が特定の値を備える確率を反映するように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新し得る。この例では、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを使用して更新され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを使用して更新され得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で符号化されるブロックの最後有効係数位置情報を符号化するために使用され得る。
【０２０５】
[0215]いくつかの例では、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、エントロピー符号化ユニット５６は、走査順序、たとえば、水平走査順序または垂直走査順序を使用して、統計値を含む特定のコンテキストモデルを選択し得る。すなわち、エントロピー符号化ユニット５６は、ブロックを符号化するために第１の走査順序を使用するときにｘ座標およびｙ座標を符号化することと、ブロックを符号化するために第２の走査順序を使用するときに交換されたｘ座標およびｙ座標を符号化することとのために同じ統計値を選択し得る。
【０２０６】
[0216]さらに、ある座標（たとえば、ｙ座標）が別の座標（たとえば、ｘ座標）の後に符号化される場合、エントロピー符号化ユニット５６は、コンテキストとして他方の前に符号化された座標の値を使用して座標を符号化し得る。すなわち、ブロックを符号化するために使用される走査順序に応じた、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とのうち前に符号化された座標の値を使用して、他方の現在符号化されている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。エントロピー符号化ユニット５６は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化し得る。
【０２０７】
[0217]この例では、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、２値化され得る。したがって、統計値に基づいて、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化するために、エントロピー符号化ユニット５６は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを符号化し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、たとえば、前に説明したように、前に符号化されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に符号化されたブロックのための対応するビン、たとえば、前に符号化されたブロックのためのｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー符号化ユニット５６は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを符号化し得る。
【０２０８】
[0218]前に説明したように、別の例として、エントロピー符号化ユニット５６は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを符号化することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを符号化し得る。さらに、エントロピー符号化ユニット５６は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを符号化し得る。
【０２０９】
[0219]いずれの場合も、エントロピー符号化ユニット５６は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化する（８１２）。走査順序が、ビデオデータのブロックをコーディングするためにシステム１０内で使用される２つの走査順序のうちの１つを含む、いくつかの例では、エントロピー符号化ユニット５６は、単一のビンを使用して走査順序情報を符号化し得る。たとえば、エントロピー符号化ユニット５６は、走査順序が第１の走査順序であるか（たとえば、ｂｉｎ＝「０」）、第２の走査順序であるか（ｂｉｎ＝「１」）を示すための単一のビンを符号化し得る。走査順序が、システム１０によってビデオデータのブロックをコーディングするために使用され得る３つの走査順序のうちの１つを含む、他の例では、エントロピー符号化ユニット５６は、１つと２つとの間のビンを使用して走査順序情報を符号化し得る。たとえば、エントロピー符号化ユニット５６は、走査順序が第１の走査順序であるかどうかを示すための第１のビンを符号化し得る（たとえば、走査順序が第１の走査順序である場合はｂｉｎ１＝「０」であり、他の場合はｂｉｎ１＝「１」である）。第１のビンは走査順序が第１の走査順序でないことを示す場合、エントロピー符号化ユニット５６は、走査順序が第２の走査順序であるか（たとえば、ｂｉｎ２＝「０」）、第３の走査順序であるか（たとえば、ｂｉｎ２＝「１」）を示すための第２のビンを符号化し得る。他の例では、ビンの他の値を使用することを含む、ブロックの走査順序情報を符号化する他の方法が使用され得る。いくつかの例では、エントロピー符号化ユニット５６は、ビットストリーム中で直接各ビンをシグナリングし得る。他の例では、エントロピー符号化ユニット５６は、さらに、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とのうちの１つに対応するコードワードのビンを符号化することに関して上記で説明したのと同様の方法でコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を使用して各ビンを符号化し得る。代替的に、前に説明したように、エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６がブロックを符号化するために適応走査順序を使用するとき、ブロックの走査順序情報を符号化することを省略し得る。
【０２１０】
[0220]いくつかの例では、エントロピー符号化ユニット５６は、さらに、走査順序に従うブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を符号化する（８１４）。前に説明したように、たとえば、ブロックの有効係数位置情報は、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを符号化することにより符号化され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０２１１】
[0221]コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で符号化されるブロックの有効係数位置情報を符号化するために使用され得る。
【０２１２】
[0222]最後に、エントロピー符号化ユニット５６は、ブロックの走査順序情報に基づいて最後有効係数位置情報を符号化することを停止する（８１６）。たとえば、エントロピー符号化ユニット５６は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。
【０２１３】
[0223]このように、図８の方法は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする方法の一例を表す。
【０２１４】
[0224]図９は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための方法の一例を示すフローチャートである。図９の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図９の技法について、エントロピー復号ユニット７０（図３）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図９に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０２１５】
[0225]初めに、エントロピー復号ユニット７０が、ビデオデータのブロックのための符号化された有効性データを受信する（９００）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。エントロピー復号ユニット７０は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示す座標、すなわち、ブロックの最後有効係数位置情報を決定するために有効性データを復号する（９０２）。走査順序は、エントロピー符号化ユニット、たとえば、図２のエントロピー符号化ユニット５６によってブロックを符号化するために使用される走査順序であり得、前に説明したように、ブロック内の共通の位置において始まる複数の走査順序のうちの１つであり得る。前にも説明したように、共通の位置はＤＣ位置に対応し得る。さらに、決定された座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る。
【０２１６】
[0226]図８の例を参照しながら上記で説明したように、決定された座標は、走査順序に応じて、走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標または交換されたｘ座標およびｙ座標に対応し得る。たとえば、座標は、走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標に対応し得、走査順序が第２の走査順序を備えるとき、交換されたｘ座標およびｙ座標に対応し得る。ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、ブロックの最後有効係数位置情報に対応するが、交換されたｘ座標およびｙ座標は、他の技法を使用したときよりも効率的にこの情報をコーディングすることを可能にするためにさらに処理される、すなわち、交換される。特に、交換されたｘ座標およびｙ座標により、前にも説明したように、ブロックの最後有効係数位置情報を示す、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とをコーディングするために共通の統計値を使用することが可能になり得る。
【０２１７】
[0227]いずれの場合も、図８のエントロピー符号化ユニット５６の例を参照しながら前に説明したのと同様の方法で、座標を決定するように有効性データを復号するために、エントロピー復号ユニット７０は、さらに、走査順序が第１の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。特に、走査順序が第１の走査順序を備えるときに走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が統計値は、所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。
【０２１８】
[0228]第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得るので、走査順序が第１の走査順序を備えるときにｘ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｙ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。同様に、走査順序が第１の走査順序を備えるときにｙ座標が所与の値を備える確率は、走査順序が第２の走査順序を備えるときにｘ座標が同じ値を備える確率と同じまたは同様であり得、その逆も同様である。すなわち、走査順序が第１の走査順序を備えるときのｘ座標およびｙ座標はそれぞれ、走査順序が第２の走査順序を備えるときの交換されたｘ座標およびｙ座標とそれぞれ同じまたは同様である、所与の値を備える確率を有し得る。したがって、統計値は、交換されたｘ座標およびｙ座標の各々が所与の値を備える確率をさらに示し得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックの最後有効係数位置情報、たとえば、前に復号されたブロックのｘ座標およびｙ座標ならびに交換されたｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０２１９】
[0229]この例では、エントロピー復号ユニット７０は、統計値に基づいて、座標、すなわち、ｘ座標およびｙ座標、または交換されたｘ座標およびｙ座標を決定するために、有効性データを復号し得る。たとえば、エントロピー復号ユニット７０は、ｘ座標が所与の値を備える確率が、ｘ座標と、交換されたｙ座標とを決定するように有効性データを復号するために使用され、ｙ座標が所与の値を備える確率が、ｙ座標と、交換されたｘ座標とを決定するように有効性データを復号するために使用されるように、統計値に基づいてｘ座標およびｙ座標または交換されたｘ座標およびｙ座標を決定するために有効性データを復号し得る。さらに、エントロピー復号ユニット７０は、それぞれの座標が特定の値を備える確率を反映するように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新し得る。この例では、ｘ座標が所与の値を備える確率は、ｘ座標と、交換されたｙ座標とを使用して更新され得、ｙ座標が所与の値を備える確率は、ｙ座標と、交換されたｘ座標とを使用して更新され得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で復号されるブロックの有効係数位置情報を決定するように有効性データを復号するために使用され得る。
【０２２０】
[0230]いくつかの例では、統計値に基づいてｘ座標およびｙ座標または交換されたｘ座標およびｙ座標を決定するように有効性データを復号するために、エントロピー復号ユニット７０は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、エントロピー復号ユニット７０は、走査順序、たとえば、水平走査順序または垂直走査順序を使用して、統計値を含む特定のコンテキストモデルを選択し得る。すなわち、エントロピー復号ユニット７０は、ブロックを復号するために第１の走査順序を使用するときにｘ座標およびｙ座標を決定し、ブロックを復号するために第２の走査順序を使用するときに交換されたｘ座標およびｙ座標を決定するように、有効性データを復号するために同じ統計値を選択し得る。
【０２２１】
[0231]ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、２値化され得る。したがって、統計値に基づいてｘ座標およびｙ座標または交換されたｘ座標およびｙ座標を判断するように有効性データを復号するために、エントロピー復号ユニット７０は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを決定するために有効性データを復号し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、たとえば、前に説明したように、前に復号されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に復号されたブロックのための対応するビン、たとえば、前に復号されたブロックのためのｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とに基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー復号ユニット７０は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを決定するために有効性データを復号し得る。
【０２２２】
[0232]前に説明したように、別の例として、エントロピー復号ユニット７０は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを復号することによって、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とを復号し得る。さらに、エントロピー復号ユニット７０は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを復号し得る。
【０２２３】
[0233]エントロピー復号ユニット７０は、さらに、ブロックのための符号化された走査順序データを受信する（９０４）。エントロピー復号ユニット７０は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を決定するために走査順序データを復号する（９０６）。代替的に、前に説明したように、エントロピー復号ユニット７０は、エントロピー復号ユニット７０がブロックを復号するために適応走査順序を使用するとき、ブロックのための符号化された走査順序データを受信および復号しなくてよい。いずれの場合も、エントロピー復号ユニット７０は、さらに、走査順序が第１の走査順序であるか第２の走査順序であるかを決定する（９０８）。たとえば、第１の走査順序および第２の走査順序は、前に説明したように、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内で、エントロピー復号ユニット７０によってビデオデータのブロックを復号するために使用され得る走査順序であり得る。第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用され得る走査順序のうちのいくつかのみであり得る。他の例では、第１の走査順序および第２の走査順序は、ブロックをコーディングするためにシステム１０内で使用される唯一の走査順序であり得る。場合によっては、第１の走査順序と第２の走査順序とは、互いに対して対称的（または少なくとも部分的に対称的）であり得る。たとえば、第１の走査順序は水平走査順序であり得、第２の走査順序は垂直走査順序であり得る。エントロピー復号ユニット７０は、ブロックの判断された走査順序情報を使用して走査順序が第１の走査順序であるか第２の走査順序であるかの決定を行い得る。
【０２２４】
[0234]走査順序が第１の走査順序である場合（９１０）、エントロピー復号ユニット７０は、決定されたｘ座標およびｙ座標を使用してブロックを復号し続け得る。いくつかの例では、エントロピー復号ユニット７０は、さらに、ブロックのための残りの符号化された有効性データを受信する（９１４）。エントロピー復号ユニット７０は、さらに、走査順序に従うブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を決定するために残りの有効性データを復号する（９１６）。前に説明したように、たとえば、ブロックの有効係数位置情報は、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、残りの有効性データは、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを決定するように残りの有効性データを復号することにより有効係数位置情報を決定するために復号され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０２２５】
[0235]コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で復号されるブロックの有効係数位置情報を決定するように残りの有効性データを復号するために使用され得る。
【０２２６】
[0236]しかしながら、走査順序が第２の走査順序である場合（９１０）、エントロピー復号ユニット７０は、ステップ（９１４）および（９１６）に関して上記で説明したのと同様の方法で、決定されたｘ座標とｙ座標とを交換し（９１２）、交換されたｘ座標およびｙ座標を使用してブロックを復号し続け得る。前に説明したように、ｘ座標およびｙ座標と、交換されたｘ座標およびｙ座標とは、ブロックの最後有効係数位置情報に対応するが、交換されたｘ座標およびｙ座標は、他の技法を使用したときよりも効率的にこの情報をコーディングすることを可能にするためにさらに処理される。
【０２２７】
[0237]最後に、エントロピー復号ユニット７０は、ブロックの走査順序情報に基づいて最後有効係数位置情報を復号することを停止する（９１８）。たとえば、エントロピー復号ユニット７０は、上記で説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。
【０２２８】
[0238]このように、図９の方法は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする方法の一例を表す。
【０２２９】
[0239]図１０は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて最後有効係数位置情報を効率的に符号化するための方法の別の例を示すフローチャートである。図１０の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図１０の技法について、エントロピー符号化ユニット５６（図２）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図１０に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０２３０】
[0240]初めに、エントロピー符号化ユニット５６が、ビデオデータのブロックを受信する（１０００）。たとえば、ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。エントロピー符号化ユニット５６は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標、すなわち、ブロックの最後有効係数位置情報を決定する（１００２）。たとえば、走査順序は、エントロピー符号化ユニット５６によってブロックを符号化するために使用される走査順序であり得、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０内でビデオデータのブロックをコーディングするために使用される複数の走査順序のうちの１つであり得る。たとえば、複数の走査順序の各々は、ブロック内の共通の位置、たとえば、ＤＣ位置において始まり得る。さらに、前にも説明したように、ｘ座標およびｙ座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る。
【０２３１】
[0241]エントロピー符号化ユニット５６は、さらに、ｘ座標およびｙ座標がそれぞれブロック内の共通の位置に対応するかどうかを決定する（１００４）。この共通の位置はＤＣ位置に対応し得る。エントロピー符号化ユニット５６は、上記で説明したように、直接的に、たとえば、ｘ座標およびｙ座標を決定することの一部として上記の決定を行い得る。
【０２３２】
[0242]エントロピー符号化ユニット５６は、さらに、ｘ座標が共通の位置に対応するかどうかの指示を符号化する（１００６）。同様に、エントロピー符号化ユニット５６は、さらに、ｙ座標が共通の位置に対応するかどうかの指示を符号化する（１００８）。エントロピー符号化ユニット５６は、単一のビンを使用して各指示を符号化し得る。たとえば、エントロピー符号化ユニット５６は、ｘ座標が共通の位置に対応するか（たとえば、ｂｉｎ１＝「１」）そうでないか（ｂｉｎ１＝「０」）を示す第１のビンと、ｙ座標が共通の位置に対応するか（たとえば、ｂｉｎ２＝「１」）そうでないか（ｂｉｎ２＝「０」）を示す第２のビンとを符号化し得る。いくつかの例では、エントロピー符号化ユニット５６は、ビットストリーム中で直接各ビンをシグナリングし得る。他の例では、エントロピー符号化ユニット５６は、さらに、たとえば、コンテキストに基づいてコンテキストモデルを適用することを含むＣＡＢＡＣプロセスを実行することによって、図７〜図９を参照しながら上記で説明したのと同様の方法でコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンを符号化し得る。
【０２３３】
[0243]ｘ座標およびｙ座標がそれぞれ共通の位置に対応する場合（１０１０）、エントロピー符号化ユニット５６は、ブロックの走査順序情報に基づいて最後有効係数位置情報を符号化することを停止する（１０２４）。言い換えれば、ｘ座標およびｙ座標がそれぞれ共通の位置に対応する場合、走査順序に従うブロック内の最後（唯一）有効係数を超えるさらなる有効係数はブロック内に存在しない。そのような場合、エントロピー符号化ユニット５６は、ブロックについて、さらなる最後有効係数位置情報、あるいは走査順序情報または有効係数位置情報を符号化する必要がない。そのような場合、エントロピー符号化ユニット５６は、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。
【０２３４】
[0244]ｘ座標およびｙ座標がそれぞれ共通の位置に対応しない場合（１０１０）、エントロピー符号化ユニット５６は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を符号化する（１０１２）。走査順序が、ビデオデータのブロックをコーディングするためにシステム１０内で使用される２つの走査順序のうちの１つを含む、いくつかの例では、エントロピー符号化ユニット５６は、単一のビンを使用して走査順序情報を符号化し得る。たとえば、エントロピー符号化ユニット５６は、走査順序が第１の走査順序であるか（たとえば、ｂｉｎ＝「０」）、第２の走査順序であるか（ｂｉｎ＝「１」）を示すための単一のビンを符号化し得る。走査順序が、システム１０によってビデオデータのブロックをコーディングするために使用され得る３つの走査順序のうちの１つを含む、他の例では、エントロピー符号化ユニット５６は、１つと２つとの間のビンを使用して走査順序情報を符号化し得る。たとえば、エントロピー符号化ユニット５６は、走査順序が第１の走査順序であるかどうかを示すための第１のビンを符号化し得る（たとえば、走査順序が第１の走査順序である場合はｂｉｎ１＝「０」であり、他の場合はｂｉｎ１＝「１」である）。第１のビンは走査順序が第１の走査順序でないことを示す場合、エントロピー符号化ユニット５６は、走査順序が第２の走査順序であるか（たとえば、ｂｉｎ２＝「０」）、第３の走査順序であるか（たとえば、ｂｉｎ２＝「１」）を示すための第２のビンを符号化し得る。他の例では、ビンの他の値を使用することを含む、ブロックの走査順序情報を符号化する他の方法が使用され得る。いくつかの例では、エントロピー符号化ユニット５６は、ビットストリーム中で直接各ビンをシグナリングし得る。他の例では、エントロピー符号化ユニット５６は、さらに、たとえば、コンテキストに基づいてコンテキストモデルを適用することを含むＣＡＢＡＣプロセスを実行することによって、図７〜図９を参照しながら上記で説明したのと同様の方法でコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンを符号化し得る。代替的に、前に説明したように、エントロピー符号化ユニット５６は、エントロピー符号化ユニット５６がブロックを符号化するために適応走査順序を使用するとき、ブロックの走査順序情報を符号化しなくてよい。
【０２３５】
[0245]いずれの場合も、ｘ座標が共通の位置に対応しない場合（１０１４）、エントロピー符号化ユニット５６は、さらに、走査順序に基づいてｘ座標を符号化する（１０１６）。同様に、ｙ座標が共通の位置に対応しない場合（１０１８）、エントロピー符号化ユニット５６は、さらに、走査順序に基づいてｙ座標を符号化する（１０２０）。ｘ座標およびｙ座標を符号化するために、エントロピー符号化ユニット５６は、さらに、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。特に、統計値は、走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックの最後有効係数位置情報、たとえば、前に符号化されたブロックのｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０２３６】
[0246]いくつかの例では、統計値は、走査順序に応じて変動し得る。特に、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率は、走査順序に応じて変動し得る。すなわち、走査順序が異なると、ブロックの最後有効係数位置情報のための統計値が異なり得る。したがって、統計値に基づいてブロックの最後有効係数位置情報を符号化するとき、走査順序に少なくとも部分的に基づいて統計値を選択することにより、正確な統計値を使用することになり得、したがって、効率的な符号化が可能になり得る。したがって、エントロピー符号化ユニット５６は、統計値に基づいてｘ座標およびｙ座標を符号化し得、エントロピー符号化ユニット５６は、走査順序に少なくとも部分的に基づいて統計値を選択する。したがって、エントロピー符号化ユニット５６は、走査順序に基づいてｘ座標およびｙ座標を符号化し得る。さらに、エントロピー符号化ユニット５６は、それぞれの座標が特定の値を備える確率を反映するようにｘ座標およびｙ座標に基づいて統計値を更新し得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で符号化されるブロックの最後有効係数位置情報を符号化するために使用され得る。
【０２３７】
[0247]いくつかの例では、統計値に基づいてｘ座標およびｙ座標を符号化するために、エントロピー符号化ユニット５６は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、エントロピー符号化ユニット５６は、統計値を含む特定のコンテキストモデルを選択するために走査順序を使用し得る。このようにして、エントロピー符号化ユニット５６は、走査順序に基づいてｘ座標およびｙ座標を符号化し得る。さらに、一方の座標（たとえば、ｙ座標）が他方の座標（たとえば、ｘ座標）の後に符号化される場合、エントロピー符号化ユニット５６は、コンテキストとして前に符号化された当該他方の座標の値を使用して当該一方の座標を符号化し得る。すなわち、ｘ座標およびｙ座標のうち前に符号化された座標の値を使用して、他方の現在符号化されている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。エントロピー符号化ユニット５６は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによってｘ座標およびｙ座標を符号化し得る。
【０２３８】
[0248]この例では、ｘ座標およびｙ座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、２値化され得る。したがって、統計値に基づいてｘ座標およびｙ座標を符号化するために、エントロピー符号化ユニット５６は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを符号化し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、たとえば、前に説明したように、前に符号化されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に符号化されたブロックのための対応するビン、たとえば、前に符号化されたブロックのためのｘ座標およびｙ座標に対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標に基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー符号化ユニット５６は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを符号化し得る。
【０２３９】
[0249]前に説明したように、別の例として、エントロピー符号化ユニット５６は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを符号化することによって、ｘ座標およびｙ座標を符号化し得る。さらに、エントロピー符号化ユニット５６は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを符号化し得る。
【０２４０】
[0250]いくつかの例では、各座標を符号化するより前に、エントロピー符号化ユニット５６は、他の方法を使用したときよりも座標が効率的にコーディングされることを可能にするために各座標から値「１」を減算し得る。たとえば、エントロピー符号化ユニット５６は、座標をコーディングするために使用される情報の量を低減するために、座標を符号化するより前に各座標から値「１」を減算し得る。同様に、エントロピー復号ユニット、たとえば、図１１の例においてより詳細に説明するエントロピー復号ユニット７０は、座標を決定するために、座標を復号した後に各座標に値「１」を加算し得る。
【０２４１】
[0251]いくつかの例では、エントロピー符号化ユニット５６は、さらに、走査順序に従うブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を符号化する（１０２２）。前に説明したように、ブロックの有効係数位置情報は、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを符号化することにより符号化され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０２４２】
[0252]この例では、コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー符号化ユニット５６は、ビデオデータの前に符号化されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー符号化ユニット５６はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で符号化されるブロックの有効係数位置情報を符号化するために使用され得る。
【０２４３】
[0253]最後に、エントロピー符号化ユニット５６は、ブロックの走査順序情報に基づいて最後有効係数位置情報を符号化することを停止する（１０２４）。たとえば、エントロピー符号化ユニット５６は、前に説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の符号化に進み得る。
【０２４４】
[0254]このように、図１０の方法は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする方法の一例を表す。
【０２４５】
[0255]図１１は、本開示の技法に一致する、ビデオデータのブロックの走査順序情報に基づいて符号化された最後有効係数位置情報を効率的に復号するための方法の別の例を示すフローチャートである。図１１の技法は、概して、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれで実装されるかにかかわらず、任意の処理ユニットまたはプロセッサによって実行され得、ソフトウェアまたはファームウェアで実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図１１の技法について、エントロピー復号ユニット７０（図３）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図１１に示すステップは、異なる順序でまたは並列に実行され得、本開示の技法から逸脱することなく、追加のステップが追加され、いくつかのステップが省略され得る。
【０２４６】
[0256]初めに、エントロピー復号ユニット７０は、ビデオデータのブロックのための第１の信号を受信する（１１００）。ブロックは、前に説明したように、マクロブロック、またはＣＵのＴＵであり得る。エントロピー復号ユニット７０は、さらに、ブロックに関連する走査順序に従うブロック内の最後有効係数の位置を示すｘ座標が共通の位置に対応するかどうかの指示を決定するために第１の信号を復号する（１１０２）。同様に、エントロピー復号ユニット７０は、さらに、ブロックのための第２の信号を受信する（１１０４）。エントロピー復号ユニット７０は、さらに、走査順序に従うブロック内の最後有効係数の位置を示すｙ座標が共通の位置に対応するかどうかの指示を決定するために第２の信号を復号する（１１０６）。
【０２４７】
[0257]たとえば、走査順序は、エントロピー符号化ユニット、たとえば、エントロピー符号化ユニット５６によってブロックを符号化するために使用される走査順序であり得、ビデオエンコーダ２０とビデオデコーダ３０とを備える対応するコーディングシステム１０においてビデオデータのブロックをコーディングするために使用される複数の走査順序のうちの１つであり得る。たとえば、複数の走査順序の各々は、前に説明したように、共通の位置において始まり得る。この共通の位置はＤＣ位置に対応し得る。
【０２４８】
[0258]さらに、各指示は単一のビンを備え得る。たとえば、エントロピー復号ユニット７０は、ｘ座標が共通の位置に対応するか（たとえば、ｂｉｎ１＝「１」）そうでないか（ｂｉｎ１＝「０」）を示す第１のビンを決定するために第１の信号を復号し、ｙ座標が共通の位置に対応するか（たとえば、ｂｉｎ２＝「１」）そうでないか（ｂｉｎ２＝「０」）を示す第２のビンを決定するために第２の信号を復号し得る。いくつかの例では、エントロピー復号ユニット７０は、ビットストリーム中で直接各ビンを受信し得る。すなわち、第１の信号および第２の信号は、それぞれ第１のビンおよび第２のビンを備え得る。他の例では、エントロピー復号ユニット７０は、たとえば、コンテキストに基づいてコンテキストモデルを適用することを含むＣＡＢＡＣプロセスを実行することによって、図７〜図９を参照しながら上記で説明したのと同様の方法でコンテキスト適応型エントロピーコーディングプロセスを使用してそれぞれのビンを決定するために第１の信号および第２の信号を復号し得る。
【０２４９】
[0259]ｘ座標およびｙ座標がそれぞれ共通の位置に対応する場合（１１０８）、エントロピー復号ユニット７０は、ブロックの走査順序情報に基づいて、符号化された最後有効係数位置情報を復号することを停止する（１１３０）。言い換えれば、ｘ座標およびｙ座標がそれぞれ共通の位置に対応する場合、走査順序に従うブロック内の最後（唯一）有効係数を超えるさらなる有効係数はブロック内に存在しない。そのような場合、エントロピー復号ユニット７０は、ブロックについて、さらなる最後有効係数位置情報、あるいは走査順序情報または有効係数位置情報を復号する必要がない。たとえば、そのような場合、エントロピー復号ユニット７０は、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。
【０２５０】
[0260]ｘ座標およびｙ座標がそれぞれ共通の位置に対応しない場合（１１０８）、エントロピー復号ユニット７０は、さらに、ブロックのための符号化された走査順序データを受信する（１１１０）。エントロピー復号ユニット７０は、さらに、走査順序を識別する情報、すなわち、ブロックの走査順序情報を決定するために走査順序データを復号する（１１１２）。走査順序が、ビデオデータのブロックをコーディングするためにシステム１０内で使用される２つの走査順序のうちの１つを含む、いくつかの例では、エントロピー復号ユニット７０は、単一のビンを決定するために走査順序データを復号し得る。たとえば、単一のビンは、走査順序が第１の走査順序であるか（たとえば、ｂｉｎ＝「０」）、第２の走査順序であるか（ｂｉｎ＝「１」）を示し得る。走査順序が、システム１０内でビデオデータのブロックをコーディングするために使用され得る３つの走査順序のうちの１つを含む、他の例では、エントロピー復号ユニット７０は、１つと２つとの間のビンを決定するために走査順序データを復号し得る。たとえば、エントロピー復号ユニット７０は、走査順序が第１の走査順序であるかどうかを示す第１のビンを決定し得る（たとえば、走査順序が第１の走査順序である場合はｂｉｎ１＝「０」であり、他の場合はｂｉｎ１＝「１」である）。第１のビンは走査順序が第１の走査順序でないことを示す場合、エントロピー復号ユニット７０は、走査順序が第２の走査順序であるか（たとえば、ｂｉｎ２＝「０」）、第３の走査順序であるか（たとえば、ｂｉｎ２＝「１」）を示す第２のビンを決定し得る。他の例では、ビンの他の値を使用することを含む、ブロックの走査順序情報を決定する他の方法が使用され得る。いくつかの例では、エントロピー復号ユニット７０は、ビットストリーム中で直接各ビンを受信し得る。すなわち、走査順序データは１つまたは複数のビンを備え得る。他の例では、エントロピー復号ユニット７０は、たとえば、コンテキストに基づいてコンテキストモデルを適用することを含むＣＡＢＡＣプロセスを実行することによって、図７〜図９を参照しながら上記で説明したのと同様の方法でコンテキスト適応型エントロピーコーディングプロセスを使用して各ビンを判断するために走査順序データを復号し得る。代替的に、前に説明したように、エントロピー復号ユニット７０は、エントロピー復号ユニット７０がブロックを復号するために適応走査順序を使用するとき、ブロックのための符号化された走査順序データを受信し、復号しなくてよい。
【０２５１】
[0261]いずれの場合も、ｘ座標が共通の位置に対応しない場合（１１１４）、エントロピー復号ユニット７０は、さらに、符号化されたｘ座標を受信し（１１１６）、走査順序に基づいてｘ座標を復号する（１１１８）。同様に、ｙ座標が共通の位置に対応しない場合（１１２０）、エントロピー復号ユニット７０は、さらに、符号化されたｙ座標を受信し（１１２２）、走査順序に基づいてｙ座標を復号する（１１２４）。前に説明したように、符号化されたｘ座標およびｙ座標を復号するために、エントロピー復号ユニット７０は、さらに、エントロピー符号化ユニット５６に関して上記で説明したのと実質的に同様の方法で、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率を示す統計値を決定し得る。統計値は、走査順序に従うブロック内の最後有効係数の位置に対応する座標、たとえば、ｘ座標またはｙ座標が所与の値（たとえば、「０」、「１」、「２」など）を備える確率を示し得る。言い換えれば、統計値は、前に説明したｘ座標およびｙ座標の各々が所与の値を備える確率を示し得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックの最後有効係数位置情報、たとえば、前に復号されたブロックのｘ座標およびｙ座標の値を使用して統計値を決定し得る。
【０２５２】
[0262]いくつかの例では、統計値は、走査順序に応じて変動し得る。特に、走査順序に従うブロック内の最後有効係数の位置に対応するブロック内の所与の位置の確率は、走査順序に応じて変動し得る。すなわち、走査順序が異なると、ブロックの最後有効係数位置情報のための統計値が異なり得る。したがって、統計値に基づいてブロックのための符号化された最後有効係数位置情報を復号するとき、走査順序に少なくとも部分的に基づいて統計値を選択することにより、正確な統計値を使用することになり得、したがって、効率的な復号が可能になり得る。したがって、エントロピー復号ユニット７０は、統計値に基づいて、符号化されたｘ座標およびｙ座標を復号し得、エントロピー復号ユニット７０は、走査順序に少なくとも部分的に基づいて統計値を選択する。したがって、エントロピー復号ユニット７０は、走査順序に基づいて、符号化されたｘ座標およびｙ座標を復号し得る。さらに、エントロピー復号ユニット７０は、それぞれの座標が特定の値を備える確率を反映するようにｘ座標およびｙ座標に基づいて統計値を更新し得る。たとえば、更新された統計値は、上記で説明した方法でビデオデータの後で復号されるブロックのための符号化された最後有効係数位置情報を復号するために使用され得る。
【０２５３】
[0263]いくつかの例では、統計値に基づいて、符号化されたｘ座標およびｙ座標を復号するために、エントロピー復号ユニット７０は、少なくとも１つのコンテキストに基づいて統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行し得る。たとえば、少なくとも１つのコンテキストは、ｘ座標およびｙ座標と、走査順序とのうちの１つを含み得る。この例では、エントロピー復号ユニット７０は、統計値を含む特定のコンテキストモデルを選択するために走査順序を使用し得る。このようにして、エントロピー復号ユニット７０は、走査順序に基づいて、符号化されたｘ座標およびｙ座標を復号し得る。さらに、ある符号化された座標（たとえば、ｙ座標）が、別の符号化された座標（たとえば、ｘ座標）の後に復号される場合、エントロピー復号ユニット７０は、コンテキストとして他方の前に復号された座標の値を使用して座標を復号し得る。すなわち、ｘ座標およびｙ座標のうち前に復号された座標の値を使用して、他方の現在復号されている座標が所与の値を備える確率を示すコンテキストモデル内の統計値をさらに選択し得る。エントロピー復号ユニット７０は、次いで、選択された統計値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって、符号化されたｘ座標およびｙ座標を復号し得る。
【０２５４】
[0264]ｘ座標およびｙ座標は、１つまたは複数のビンのシーケンスを備える単項コードワードを使用してそれぞれ表され得る、すなわち、２値化され得る。したがって、統計値に基づいて、符号化されたｘ座標およびｙ座標を復号するために、エントロピー復号ユニット７０は、コンテキスト適応型エントロピーコーディングプロセスを実行することによって特定の座標に対応するコードワードの各ビンを復号し得る。この例では、座標が所与の値を備える確率を示す、コンテキストモデル中に含まれる統計値は、座標に対応するコードワードの各ビンが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。さらに、統計値は、コードワード内のそれぞれのビンの位置に応じて、コードワードのビンごとに異なる確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、たとえば、前に説明したように、前に復号されたブロックの最後有効係数位置情報に基づいて統計値を決定することの一部として、ビデオデータの前に復号されたブロックのための対応するビン、たとえば、前に復号されたブロックのためのｘ座標およびｙ座標に対応するコードワードのビンの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、たとえば、前にも説明したように、ｘ座標およびｙ座標に基づいて統計値を更新することの一部として、各ビンの値を使用して確率推定値を更新し得る。エントロピー復号ユニット７０は、確率推定値を使用して、コンテキスト適応型エントロピーコーディングプロセスを実行することによって各ビンを復号し得る。
【０２５５】
[0265]前に説明したように、別の例として、エントロピー復号ユニット７０は、他方の座標に対応するシーケンスの少なくとも１つのビン、たとえば、対応するビンの値に少なくとも部分的に基づいてコンテキストモデルから統計値を選択することによって、座標のうちの１つに対応するシーケンスの少なくとも１つのビンを復号することによって、ｘ座標およびｙ座標を復号し得る。さらに、エントロピー復号ユニット７０は、インターリーブ式に、座標のうちの１つに対応するシーケンスの１つまたは複数のビンと、他方の座標に対応するシーケンスの１つまたは複数のビンとを復号し得る。
【０２５６】
[0266]各座標を復号すると、エントロピー復号ユニット７０は、他の方法を使用したときよりも座標が効率的にコーディングされることを可能にするために各座標に値「１」を加算し得る。たとえば、前にも説明したように、エントロピー符号化ユニット、たとえば、エントロピー符号化ユニット５６は、座標をコーディングするために使用される情報の量を低減するために、最初に各座標から値「１」を減算することによってｘ座標およびｙ座標を符号化し得る。したがって、エントロピー復号ユニット７０は、座標を判断するために、座標を復号した後に各座標に値「１」を加算し得る。
【０２５７】
[0267]いくつかの例では、エントロピー復号ユニット７０は、さらに、ブロックのための符号化された有効性データを受信する（１１２６）。これらの例では、エントロピー復号ユニット７０は、走査順序に従うブロック内のすべての他の有効係数の位置を示す情報、すなわち、ブロックの有効係数位置情報を決定するために有効性データを復号する（１１２８）。前に説明したように、ブロックの有効係数位置情報は、有効係数フラグのシーケンスを使用して表され得る。前にも説明したように、有効係数位置情報は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実行することによってシーケンスの各有効係数フラグを復号することにより復号され得、少なくとも１つのコンテキストは、走査順序に従うブロック内のフラグの位置を含み得る。
【０２５８】
[0268]この例では、コンテキストモデルは、各フラグが所与の値（たとえば、「０」または「１」）を備える確率を示す確率推定値を含み得る。いくつかの例では、エントロピー復号ユニット７０は、ビデオデータの前に復号されたブロックのための対応する有効係数フラグの値を使用して確率推定値を決定し得る。他の例では、エントロピー復号ユニット７０はまた、フラグが所与の値を備える確率を反映するために各フラグの値を使用して確率推定値を更新し得る。たとえば、更新された確率推定値は、上記で説明した方法でビデオデータの後で復号されるブロックのための符号化された有効係数位置情報を復号するために使用され得る。
【０２５９】
[0269]最後に、エントロピー復号ユニット７０は、ブロックの走査順序情報に基づいて、符号化された最後有効係数位置情報を復号することを停止する（１１３０）。たとえば、エントロピー復号ユニット７０は、前に説明したように、他のコーディングタスク、たとえば、当該のブロックまたは後続のブロックのための他のシンタックス要素の復号に進み得る。
【０２６０】
[0270]このように、図１１の方法は、ビデオデータのブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、走査順序が第１の走査順序とは異なる第２の走査順序を備えるとき、走査順序に従うブロック内の最後非ゼロ係数の位置を示す交換されたｘ座標およびｙ座標をコーディングする方法の一例を表す。
【０２６１】
[0271]したがって、本開示の技法によれば、符号化ビットストリームは、ビデオデータのブロックのための、すなわち、そのブロックに関連する係数のための最後有効係数位置情報を備え得る。特に、ビデオエンコーダ２０は、ブロックに関連する走査順序が第１の走査順序を備えるとき、その走査順序に従うブロック内の最後有効係数の位置を示すｘ座標およびｙ座標を符号化し、走査順序が第２の走査順序を備えるとき、走査順序に従うブロック内の最後有効係数の位置を示す交換されたｘ座標およびｙ座標を符号化し得る。たとえば、第２の走査順序は、第１の走査順序とは異なり得る。ビデオデコーダ３０は、今度は、ブロックの最後有効係数位置情報を復号し得る。特に、ビデオデコーダ３０は、走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標を復号し得、走査順序が第２の走査順序を備えるとき、交換されたｘ座標およびｙ座標を復号し得る。
【０２６２】
[0272]したがって、本開示はまた、符号化ビットストリームを含む、その上に記憶されたデータ構造を備えるコンピュータ可読媒体を企図する。コンピュータ可読媒体に記憶された符号化ビットストリームは、特定のフォーマットを使用して符号化されたビデオデータと、ｘ座標およびｙ座標を使用して表される、ビデオデータのブロックに関連する走査順序に従うブロック内の最後有効係数の位置を識別する符号化情報とを備え得る。ビットストリーム内でｘ座標およびｙ座標が符号化される特定の順序は、ブロックに関連する走査順序が第１の走査順序を備えるか第２の走査順序を備えるかに依存する。より詳細には、走査順序が第１の走査順序を備える場合、ビットストリームは、ｘ座標およびｙ座標を使用して符号化されたブロックの最後有効係数位置情報を含み得る。この場合、ブロックの最後有効係数位置情報は復号され得、得られたｘ座標およびｙ座標は、ブロックを復号するために直接使用され得る。代替的に、走査順序が第２の走査順序を備える場合、ビットストリームは、交換されたｘ座標およびｙ座標を使用して符号化されたブロックの最後有効係数位置情報を含み得る。この場合、最後有効係数位置情報は復号され得、交換されたｘ座標およびｙ座標はさらに交換され、得られたｘ座標およびｙ座標を使用してブロックが復号され得る。
【０２６３】
[0273]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０２６４】
[0274]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０２６５】
[0275]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２６６】
[0276]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２６７】
[0277]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１】
2013545415.tif 000003
【図２】
2013545415.tif 000004
【図３】
2013545415.tif 000005
【図４Ａ】
2013545415.tif 000006
【図４Ｂ】
2013545415.tif 000007
【図４Ｃ】
2013545415.tif 000008
【図５Ａ】
2013545415.tif 000009
【図５Ｂ】
2013545415.tif 000010
【図５Ｃ】
2013545415.tif 000011
【図６Ａ】
2013545415.tif 000012
【図６Ｂ】
2013545415.tif 000013
【図６Ｃ】
2013545415.tif 000014
【図７】
2013545415.tif 000015
【図８】
2013545415.tif 000016
【図９】
2013545415.tif 000017
【図１０】
2013545415.tif 000018
【図１１】
2013545415.tif 000019
【手続補正書】
【提出日】平成25年8月2日(2013.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定することと、前記ｘ座標およびｙ座標は、前記走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示し、前記走査順序は、前記第１の走査順序、および前記第１の走査順序とは異なる第２の走査順序のうちの１つを備え、
前記走査順序が前記第１の走査順序を備えるとき、前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングすることと、
前記走査順序が前記第２の走査順序を備えるとき、前記ｘ座標と前記ｙ座標とを交換し、前記統計値に基づいて前記交換されたｘ座標およびｙ座標をコーディングすることと、
を備え、
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、
前記ｘ座標と、前記交換されたｙ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標が前記所与の値を備える前記確率を使用することと、
前記ｙ座標と、前記交換されたｘ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標が前記所与の値を備える前記確率を使用することと、
を備える、方法。
【請求項２】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項１に記載の方法。
【請求項３】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項１に記載の方法。
【請求項４】
前記走査順序は、前記第１の走査順序、前記第２の走査順序、ならびに前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序のうちの１つをさらに備え、前記方法は、
前記走査順序が前記第３の走査順序を備えるとき、前記走査順序が前記第１の走査順序を備えるときに前記ｘ座標およびｙ座標の各々が前記所与の値を備える前記確率を示す前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングすること
をさらに備える、請求項１に記載の方法。
【請求項５】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項４に記載の方法。
【請求項６】
前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標と、前記交換されたｙ座標とを使用して、前記ｘ座標が前記所与の値を備える前記確率を更新することと、
前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標と、前記交換されたｘ座標とを使用して、前記ｙ座標が前記所与の値を備える前記確率を更新することと、
を含む、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新すること、をさらに備える、請求項１に記載の方法。
【請求項７】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングすることは、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標のうちの異なる１つと、前記交換されたｘ座標およびｙ座標のうちの異なる１つと、前記走査順序とのうちの１つを含む、
請求項１に記載の方法。
【請求項８】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標のうちの前記異なる１つと、前記交換されたｘ座標およびｙ座標のうちの前記異なる１つとに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングすることは、
前記ｘ座標およびｙ座標のうちの前記異なる１つ、または前記交換されたｘ座標およびｙ座標のうちの前記異なる１つに対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記それぞれの座標に対応する前記シーケンスの少なくとも１つのビンをコーディングすること、を備える
請求項７に記載の方法。
【請求項９】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記方法は、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングすることをさらに備える、請求項１に記載の方法。
【請求項１０】
前記走査順序を識別する情報をコーディングすること、
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記ブロック内の他の非ゼロ係数の位置を識別する情報をコーディングすること、
をさらに備える、請求項１ゼロに記載の方法。
【請求項１２】
コーディングすることは、符号化することを備え、前記方法は、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化することと、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力することと、
をさらに備える、請求項１に記載の方法。
【請求項１３】
コーディングすることは、復号することを備え、前記方法は、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信することと、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号することと、
をさらに備える、請求項１に記載の方法。
【請求項１４】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示すｘ座標およびｙ座標をコーディングすること、を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングすることは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングすることと、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングすることと、
を備える、方法。
【請求項１５】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングすることは、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項１４に記載の方法。
【請求項１６】
コーディングすることは、符号化することを備え、前記方法は、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化することと、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力することと、
をさらに備える、請求項１４に記載の方法。
【請求項１７】
コーディングすることは、復号することを備え、前記方法は、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信することと、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号することと、
をさらに備える、請求項１４に記載の方法。
【請求項１８】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定することと、前記ｘ座標およびｙ座標は、前記走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示し、前記走査順序は、前記第１の走査順序、および前記第１の走査順序とは異なる第２の走査順序のうちの１つを備え、
前記走査順序が前記第１の走査順序を備えるとき、前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングすることと、
前記走査順序が前記第２の走査順序を備えるとき、前記ｘ座標と前記ｙ座標とを交換し、前記統計値に基づいて前記交換されたｘ座標およびｙ座標をコーディングすることと、
を行うように構成されたビデオコーダを備え、
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、
前記ｘ座標と、前記交換されたｙ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標が前記所与の値を備える前記確率を使用することと、
前記ｙ座標と、前記交換されたｘ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標が前記所与の値を備える前記確率を使用することと、
を行うように構成された、装置。
【請求項１９】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項１８に記載の装置。
【請求項２０】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項１８に記載の装置。
【請求項２１】
前記走査順序は、前記第１の走査順序、前記第２の走査順序、ならびに前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序のうちの１つをさらに備え、前記ビデオコーダは、
前記走査順序が前記第３の走査順序を備えるとき、前記走査順序が前記第１の走査順序を備えるときに前記ｘ座標およびｙ座標の各々が前記所与の値を備える前記確率を示す前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングする
ようにさらに構成された、請求項１８に記載の装置。
【請求項２２】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項２１に記載の装置。
【請求項２３】
前記ビデオコーダは、
前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標と、前記交換されたｙ座標とを使用して、前記ｘ座標が前記所与の値を備える前記確率を前記ビデオコーダが更新することと、
前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標と、前記交換されたｘ座標とを使用して、前記ｙ座標が前記所与の値を備える前記確率を前記ビデオコーダが更新することと、
を含む、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新することを行うようにさらに構成された、請求項１８に記載の装置。
【請求項２４】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するようにさらに構成され、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標のうちの異なる１つと、前記交換されたｘ座標およびｙ座標のうちの異なる１つと、前記走査順序とのうちの１つを含む、
請求項１８に記載の装置。
【請求項２５】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダが、前記ｘ座標およびｙ座標のうちの前記異なる１つと、前記交換されたｘ座標およびｙ座標のうちの前記異なる１つとに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングするために、前記ビデオコーダは、
前記ｘ座標およびｙ座標のうちの前記異なる１つ、または前記交換されたｘ座標およびｙ座標のうちの前記異なる１つに対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記それぞれの座標に対応する前記シーケンスの少なくとも１つのビンをコーディングする
ように構成された、請求項２４に記載の装置。
【請求項２６】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングするようにさらに構成された、請求項１８に記載の装置。
【請求項２７】
前記ビデオコーダはビデオエンコーダを備え、前記ビデオエンコーダは、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化することと、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力することと、
を行うようにさらに構成された、請求項１８に記載の装置。
【請求項２８】
前記ビデオコーダはビデオデコーダを備え、前記ビデオデコーダは、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信することと、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号することと、
を行うようにさらに構成された、請求項１８に記載の装置。
【請求項２９】
前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、請求項１８に記載の装置。
【請求項３０】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示すｘ座標およびｙ座標をコーディングするように構成されたビデオコーダを備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々が、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングするために、前記ビデオコーダは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングし、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングし、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングするように構成された、装置。
【請求項３１】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項３０に記載の装置。
【請求項３２】
前記ビデオコーダはビデオエンコーダを備え、前記ビデオエンコーダは、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化し、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力する
ようにさらに構成された、請求項３０に記載の装置。
【請求項３３】
前記ビデオコーダはビデオデコーダを備え、前記ビデオデコーダは、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信し、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号する
ようにさらに構成された、請求項３０に記載の装置。
【請求項３４】
前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、請求項３０に記載の装置。
【請求項３５】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定する手段と、前記ｘ座標およびｙ座標は、前記走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示し、前記走査順序は、前記第１の走査順序、および前記第１の走査順序とは異なる第２の走査順序のうちの１つを備え、
前記走査順序が前記第１の走査順序を備えるとき、前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングする手段と、
前記走査順序が前記第２の走査順序を備えるとき、前記ｘ座標と前記ｙ座標とを交換し、前記統計値に基づいて前記交換されたｘ座標およびｙ座標をコーディングする手段と、
を備え、
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする前記手段は、
前記ｘ座標と、前記交換されたｙ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標が前記所与の値を備える前記確率を使用する手段と、
前記ｙ座標と、前記交換されたｘ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標が前記所与の値を備える前記確率を使用する手段と、
を備えるデバイス。
【請求項３６】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項３５に記載のデバイス。
【請求項３７】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項３５に記載のデバイス。
【請求項３８】
前記走査順序は、前記第１の走査順序、前記第２の走査順序、ならびに前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序のうちの１つをさらに備え、前記デバイスは、
前記走査順序が前記第３の走査順序を備えるとき、前記走査順序が前記第１の走査順序を備えるときに前記ｘ座標およびｙ座標の各々が前記所与の値を備える前記確率を示す前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングする手段
をさらに備える、請求項３５に記載のデバイス。
【請求項３９】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項３８に記載のデバイス。
【請求項４０】
前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標と、前記交換されたｙ座標とを使用して、前記ｘ座標が前記所与の値を備える前記確率を更新する手段と、
前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標と、前記交換されたｘ座標とを使用して、前記ｙ座標が前記所与の値を備える前記確率を更新する手段と、
を含む、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新する手段をさらに備える、請求項３５に記載のデバイス。
【請求項４１】
前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングする前記手段は、
少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用する手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標のうちの異なる１つと、前記交換されたｘ座標およびｙ座標のうちの異なる１つと、前記走査順序とのうちの１つを含む、請求項３５に記載のデバイス。
【請求項４２】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標のうちの前記異なる１つと、前記交換されたｘ座標およびｙ座標のうちの前記異なる１つとに基づいて前記統計値を含む前記コンテキストモデルを適用する前記手段を含む前記コンテキスト適応型エントロピーコーディングプロセスを実行する前記手段を備える、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングするための前記手段は、
前記ｘ座標およびｙ座標のうちの前記異なる１つ、または前記交換されたｘ座標およびｙ座標のうちの前記異なる１つに対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記それぞれの座標に対応する前記シーケンスの少なくとも１つのビンをコーディングする手段
を備える、請求項４１に記載のデバイス。
【請求項４３】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記デバイスは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングする手段をさらに備える、請求項３５に記載のデバイス。
【請求項４４】
コーディングする前記手段は、符号化する手段を備え、前記デバイスは、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化する手段と、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力する手段と、
をさらに備える、請求項３５に記載のデバイス。
【請求項４５】
コーディングする前記手段は、復号する手段を備え、前記デバイスは、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信する手段と、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号する手段と、
をさらに備える、請求項３５に記載のデバイス。
【請求項４６】
ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示すｘ座標およびｙ座標をコーディングする手段を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々が、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングする前記手段は、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングする手段と、
を備える、デバイス。
【請求項４７】
前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングする前記手段は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用する手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項４６に記載のデバイス。
【請求項４８】
コーディングする前記手段は、符号化するための手段を備え、前記デバイスは、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化する手段と、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力する手段と、
をさらに備える、請求項４６に記載のデバイス。
【請求項４９】
コーディングする前記手段は、復号する手段を備え、前記デバイスは、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信する手段と、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号する手段と、
をさらに備える、請求項４６に記載のデバイス。
【請求項５０】
実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、ｘ座標およびｙ座標の各々が所与の値を備える確率を示す統計値を決定させ、前記ｘ座標およびｙ座標は、前記走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示し、前記走査順序は、前記第１の走査順序、および前記第１の走査順序とは異なる第２の走査順序のうちの１つを備え、
前記走査順序が前記第１の走査順序を備えるとき、前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングさせ、
前記走査順序が前記第２の走査順序を備えるとき、前記ｘ座標と前記ｙ座標とを交換し、前記統計値に基づいて前記交換されたｘ座標およびｙ座標をコーディングさせ、
前記プロセッサに、前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、
前記プロセッサに、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標が前記所与の値を備える前記確率を使用させ、
前記ｙ座標と、前記交換されたｘ座標とをコーディングするために、前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標が前記所与の値を備える前記確率を使用させる
命令を備える、コンピュータ可読媒体。
【請求項５１】
前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、請求項５０に記載のコンピュータ可読媒体。
【請求項５２】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、請求項５０に記載のコンピュータ可読媒体。
【請求項５３】
前記走査順序は、前記第１の走査順序、前記第２の走査順序、ならびに前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序のうちの１つをさらに備え、前記コンピュータ可読媒体は、さらに、前記プロセッサに、
前記走査順序が前記第３の走査順序を備えるとき、前記走査順序が前記第１の走査順序を備えるときに前記ｘ座標およびｙ座標の各々が前記所与の値を備える前記確率を示す前記統計値に基づいて前記ｘ座標およびｙ座標をコーディングさせる命令を備える、請求項５０に記載のコンピュータ可読媒体。
【請求項５４】
前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、請求項５３に記載のコンピュータ可読媒体。
【請求項５５】
前記プロセッサに、前記走査順序が前記第１の走査順序を備えるとき、前記ｘ座標と、前記交換されたｙ座標とを使用して、前記ｘ座標が前記所与の値を備える前記確率を更新させる命令と、
前記プロセッサに、前記走査順序が前記第１の走査順序を備えるとき、前記ｙ座標と、前記交換されたｘ座標とを使用して、前記ｙ座標が前記所与の値を備える前記確率を更新させる命令と、
を含む、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を前記プロセッサに更新させる命令をさらに備える、請求項５０に記載のコンピュータ可読媒体。
【請求項５６】
前記プロセッサに、前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングさせる前記命令は、
前記プロセッサに、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令をさらに備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標のうちの異なる１つと、前記交換されたｘ座標およびｙ座標のうちの異なる１つと、前記走査順序とのうちの１つを含む、請求項５０に記載のコンピュータ可読媒体。
【請求項５７】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記プロセッサに、前記ｘ座標およびｙ座標のうちの前記異なる１つと、前記交換されたｘ座標およびｙ座標のうちの前記異なる１つとに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行させる前記命令を備える、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々をコーディングさせる前記命令は、
前記プロセッサに、前記ｘ座標およびｙ座標のうちの前記異なる１つ、または前記交換されたｘ座標およびｙ座標のうちの前記異なる１つに対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記それぞれの座標に対応する前記シーケンスの少なくとも１つのビンをコーディングさせる命令を備える、請求項５６に記載のコンピュータ可読媒体。
【請求項５８】
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記プロセッサに、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングさせる命令をさらに備える、請求項５０に記載のコンピュータ可読媒体。
【請求項５９】
コーディングすることは、符号化することを備え、前記コンピュータ可読媒体は、前記プロセッサに、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化させ、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力させる
命令をさらに備える、請求項５０に記載のコンピュータ可読媒体。
【請求項６０】
コーディングすることは、復号することを備え、前記コンピュータ可読媒体は、前記プロセッサに、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信させ、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号させる
命令をさらに備える、請求項５０に記載のコンピュータ可読媒体。
【請求項６１】
実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の水平位置および垂直位置をそれぞれ示すｘ座標およびｙ座標をコーディングさせる命令を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々が、前記ブロック内の共通の位置において始まり、
前記プロセッサに、前記ｘ座標およびｙ座標をコーディングさせる前記命令は、前記プロセッサに、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングさせ、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングさせる
命令を備える、コンピュータ可読媒体。
【請求項６２】
前記プロセッサに、前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングさせる前記命令は、
前記プロセッサに、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、請求項６１に記載のコンピュータ可読媒体。
【請求項６３】
コーディングすることは、符号化することを備え、前記コンピュータ可読媒体は、前記プロセッサに、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて、ビデオデータの前記ブロックに関連する非ゼロ係数の値を符号化させ、
ビットストリーム中に前記非ゼロ係数の前記符号化された値を出力させる
命令をさらに備える、請求項６１に記載のコンピュータ可読媒体。
【請求項６４】
コーディングすることは、復号することを備え、前記コンピュータ可読媒体は、前記プロセッサに、
ビットストリーム中でビデオデータの前記ブロックに関連する非ゼロ係数の符号化された値を受信させ、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記それぞれの１つに基づいて前記非ゼロ係数の前記符号化された値を復号させる
命令をさらに備える、請求項６１に記載のコンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２６７
【補正方法】変更
【補正の内容】
【０２６７】
[0277]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすることと、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングすることと、
を備える方法。
［２］  前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、［１］に記載の方法。
［３］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、［１］に記載の方法。
［４］  前記走査順序が、前記第１の走査順序および前記第２の走査順序とは異なる第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングすること、をさらに備える、［１］に記載の方法。
［５］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、［４］に記載の方法。
［６］  前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定することをさらに備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングすることを備える、［１］に記載の方法。
［７］  前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新すること、
をさらに備える、［６］に記載の方法。
［８］  前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行すること、を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、
［６］に記載の方法。
［９］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングすることは、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングすること
を備える、［８］に記載の方法。
［１０］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記方法は、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングすることをさらに備える、［１］に記載の方法。
［１１］  前記走査順序を識別する情報をコーディングすること、
をさらに備える、［１］に記載の方法。
［１２］  前記ブロック内の他の非ゼロ係数の位置を識別する情報をコーディングすること、
をさらに備える、［１１］に記載の方法。
［１３］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングする方法であって、前記方法は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングすること、を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングすることは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングすることと、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングすることと、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングすることと、
を備える、方法。
［１４］  前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングすることは、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行することを備え、前記少なくとも１つのコンテキストは前記走査順序を含む、［１３］に記載の方法。
［１５］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングし、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングする
ように構成されたビデオコーダを備える装置。
［１６］  前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、［１５］に記載の装置。
［１７］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、［１５］に記載の装置。
［１８］  前記ビデオコーダは、
前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングするようにさらに構成された、［１５］に記載の装置。
［１９］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、［１８］に記載の装置。
［２０］  前記ビデオコーダは、
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定するようにさらに構成され、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングするように構成された、［１５］に記載の装置。
［２１］  前記ビデオコーダは、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新する
ようにさらに構成された、［２０］に記載の装置。
［２２］  前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、［２０］に記載の装置。
［２３］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々が、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダが、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む、前記コンテキスト適応型エントロピーコーディングプロセスを実行することによって、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングするために、前記ビデオコーダは、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングする
ように構成された、［２２］に記載の装置。
［２４］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ビデオコーダは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングするようにさらに構成された、［１５］に記載の装置。
［２５］  前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、［１５］に記載の装置。
［２６］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするための装置であって、前記装置は、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングするように構成されたビデオコーダを備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングするために、前記ビデオコーダは、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングし、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングし、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングし、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングするように構成された、装置。
［２７］  前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングするために、前記ビデオコーダは、前記ビデオコーダが少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行するように構成され、前記少なくとも１つのコンテキストは前記走査順序を含む、［２６］に記載の装置。
［２８］  前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと、
のうちの少なくとも１つを備える、［２６］に記載の装置。
［２９］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングする手段と、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングする手段と、
を備えるデバイス。
［３０］  前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、［２９］に記載のデバイス。
［３１］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、［２９］に記載のデバイス。
［３２］  前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングする手段、をさらに備える［２９］に記載のデバイス。
［３３］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、［３２］に記載のデバイス。
［３４］  前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定する手段をさらに備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする手段は、前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングする手段を備える、
［２９］に記載のデバイス。
［３５］  前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新する手段
をさらに備える、［３４］に記載のデバイス。
［３６］  前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする前記手段は、少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用する手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、［３４］に記載のデバイス。
［３７］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用する前記手段を含む前記コンテキスト適応型エントロピーコーディングプロセスを実行する前記手段を備える、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングする前記手段は、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングする手段
を備える、［３６］に記載のデバイス。
［３８］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記デバイスは、インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングする手段をさらに備える、［２９］に記載のデバイス。
［３９］  ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングするためのデバイスであって、前記デバイスは、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングする手段を備え、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々が、前記ブロック内の共通の位置において始まり、
前記ｘ座標およびｙ座標をコーディングする手段は、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングする手段と、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングする手段と、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングする手段と、
を備える、デバイス。
［４０］  前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングする前記手段は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用するための手段を含むコンテキスト適応型エントロピーコーディングプロセスを実行する手段を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、［３９］に記載のデバイス。
［４１］  実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序が第１の走査順序を備えるとき、前記走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングさせ、
前記走査順序が前記第１の走査順序とは異なる第２の走査順序を備えるとき、前記走査順序に従う前記ブロック内の前記最後非ゼロ係数の前記位置を示す交換されたｘ座標およびｙ座標をコーディングさせる、
コンピュータ可読媒体。
［４２］  前記第１の走査順序と前記第２の走査順序とは互いに対して対称的である、［４１］に記載のコンピュータ可読媒体。
［４３］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記水平走査順序と前記垂直走査順序とは、前記ブロック内の共通の位置において始まる、［４１］に記載のコンピュータ可読媒体。
［４４］  前記プロセッサに、
前記走査順序が第３の走査順序を備えるとき、前記ｘ座標およびｙ座標をコーディングさせる命令をさらに備える、［４１］に記載のコンピュータ可読媒体。
［４５］  前記第１の走査順序は水平走査順序を備え、前記第２の走査順序は垂直走査順序を備え、前記第３の走査順序はジグザグ走査順序を備え、前記水平走査順序と、前記垂直走査順序と、前記ジグザグ走査順序とは、前記ブロック内の共通の位置において始まる、［４４］に記載のコンピュータ可読媒体。
［４６］  前記プロセッサに、
前記ｘ座標およびｙ座標のそれぞれが所与の値を備える確率を示す統計値を決定させる命令をさらに備え、
前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とをコーディングするために使用され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とをコーディングするために使用されるように、前記統計値に基づいてコーディングさせる命令を備える、
［４１］に記載のコンピュータ可読媒体。
［４７］  前記プロセッサに、
前記ｘ座標が所与の値を備える前記確率が、前記ｘ座標と、前記交換されたｙ座標とを使用して更新され、前記ｙ座標が所与の値を備える前記確率が、前記ｙ座標と、前記交換されたｘ座標とを使用して更新されるように、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とに基づいて前記統計値を更新させる命令をさらに備える、
［４６］に記載のコンピュータ可読媒体。
［４８］  前記プロセッサに、前記統計値に基づいて、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
少なくとも１つのコンテキストに基づいて前記統計値を含むコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令を備え、
前記少なくとも１つのコンテキストは、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標と、前記走査順序とのうちの１つを含む、
［４６］に記載のコンピュータ可読媒体。
［４９］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とのうちの前記１つに基づいて前記統計値を含む前記コンテキストモデルを適用することを含む前記コンテキスト適応型エントロピーコーディングプロセスを実行させる前記命令を備える、前記プロセッサに、前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標とをコーディングさせる前記命令は、前記プロセッサに、
他方の座標に対応する前記シーケンスの少なくとも１つのビンの値に少なくとも部分的に基づいて前記コンテキストモデルから前記統計値を選択することによって、前記座標のうちの１つに対応する前記シーケンスの少なくとも１つのビンをコーディングさせる命令
を備える［４８］に記載のコンピュータ可読媒体。
［５０］  前記ｘ座標およびｙ座標と、前記交換されたｘ座標およびｙ座標との各々は、１つまたは複数のビンのシーケンスを備え、
前記コンピュータ可読媒体は、前記プロセッサに、
インターリーブ式に、前記座標のうちの１つに対応する前記シーケンスの前記１つまたは複数のビンと、前記他方の座標に対応する前記シーケンスの前記１つまたは複数のビンとをコーディングさせる命令をさらに備える、［４１］に記載のコンピュータ可読媒体。
［５１］  実行されたとき、プロセッサに、ビデオコーディングプロセス中にビデオデータのブロックに関連する係数をコーディングさせる命令を備えるコンピュータ可読媒体であって、前記命令は、前記プロセッサに、
前記ブロックに関連する走査順序に従う前記ブロック内の最後非ゼロ係数の位置を示すｘ座標およびｙ座標をコーディングさせ、
前記走査順序は複数の走査順序のうちの１つを備え、前記複数の走査順序の各々は、前記ブロック内の共通の位置において始まり、
前記プロセッサに、前記ｘ座標およびｙ座標をコーディングさせる前記命令は、前記プロセッサに、
前記ｘ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｙ座標が前記共通の位置に対応するかどうかを示す情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応せず、前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序を識別する情報をコーディングさせ、
前記ｘ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｘ座標をコーディングさせ、
前記ｙ座標が前記共通の位置に対応しない場合、前記走査順序に基づいて前記ｙ座標をコーディングさせる命令を備える、
コンピュータ可読媒体。
［５２］  前記プロセッサに、前記走査順序に基づいて前記ｘ座標および前記ｙ座標をコーディングさせる前記命令は、少なくとも１つのコンテキストに基づいてコンテキストモデルを適用することを含むコンテキスト適応型エントロピーコーディングプロセスを実行させる命令を備え、前記少なくとも１つのコンテキストは前記走査順序を含む、［５１］に記載のコンピュータ可読媒体。
【国際調査報告】
2013545415.tif 000020
2013545415.tif 000021
2013545415.tif 000022
2013545415.tif 000023