(57)【特許請求の範囲】
【請求項１】
ビデオデータを復号するための方法であって、
ビデオデータのブロックに関連する変換係数の直列化された１次元アレイを受信することと、
前記変換係数の数が所定のしきい値を超えたときに前記変換係数とは別の少なくとも１つのシンタックス要素を受信し、前記変換係数の前記数が前記所定のしきい値を超えないときに前記少なくとも１つのシンタックス要素を受信しないことと、前記シンタックス要素はビデオデータの前記ブロックに関連する走査順序を識別し、
前記走査順序は、前記変換係数が２次元アレイから、前記直列化された１次元アレイに直列化されている順序を示し、
前記識別された走査順序に従って変換係数の前記２次元アレイを再構成するために変換係数の前記直列化された１次元アレイを逆走査することと、
を備える方法。
【請求項２】
ビデオデータの第２のブロックに関連する変換係数の第２の直列化された１次元アレイを受信することと、
変換係数の前記第２の直列化された１次元アレイに関連する変換係数の前記数が前記所定のしきい値を超えないときに前記識別された走査順序とは異なるデフォルト走査順序に従って変換係数の第２の２次元アレイを再構成するためにビデオデータの前記第２のブロックに関連する変換係数の前記第２の直列化された１次元アレイを逆走査することと、
をさらに備える、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記識別された走査順序を識別するインデックス値である、請求項１に記載の方法。
【請求項４】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項１に記載の方法。
【請求項５】
変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定することをさらに備える、請求項１に記載の方法。
【請求項６】
ビデオデータの前記ブロックを含むビットストリームが前記少なくとも１つのシンタックス要素を含むかどうかを決定することをさらに備える、請求項１に記載の方法。
【請求項７】
ビデオデータの前記ブロックの隣接ブロックに関連する情報に基づいて選択されたコンテキストモデルを使用して前記少なくとも１つのシンタックス要素を復号することをさらに備える、請求項１に記載の方法。
【請求項８】
ビデオデータを復号するための装置であって、
ビデオデータのブロックに関連する変換係数の直列化された１次元アレイを受信し、
前記変換係数の数が所定のしきい値を超えたときに前記変換係数とは別の少なくとも１つのシンタックス要素を受信し、前記変換係数の前記数が前記所定のしきい値を超えないときに前記少なくとも１つのシンタックス要素を受信せず、前記シンタックス要素はビデオデータの前記ブロックに関連する走査順序を識別し、
前記走査順序は、前記変換係数が２次元アレイから、前記直列化された１次元アレイに直列化されている順序を示し、
前記識別された走査順序に従って変換係数の前記２次元アレイを再構成するために変換係数の前記直列化された１次元アレイを逆走査する
ように構成されたビデオデコーダを備える装置。
【請求項９】
前記ビデオデコーダは、
ビデオデータの第２のブロックに関連する変換係数の第２の直列化された１次元アレイを受信し、
変換係数の前記第２の直列化された１次元アレイに関連する変換係数の前記数が前記所定のしきい値を超えないときに前記識別された走査順序とは異なるデフォルト走査順序に従って変換係数の第２の２次元アレイを再構成するためにビデオデータの前記第２のブロックに関連する変換係数の前記第２の直列化された１次元アレイを逆走査する
ようにさらに構成された、請求項８に記載の装置。
【請求項１０】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記識別された走査順序を識別するインデックス値である、請求項８に記載の装置。
【請求項１１】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項８に記載の装置。
【請求項１２】
前記ビデオデコーダは、変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定するようにさらに構成された、請求項８に記載の装置。
【請求項１３】
前記ビデオデコーダは、ビデオデータの前記ブロックを含むビットストリームが前記少なくとも１つのシンタックス要素を含むかどうかを決定するようにさらに構成された、請求項８に記載の装置。
【請求項１４】
前記ビデオデコーダは、ビデオデータの前記ブロックの隣接ブロックに関連する情報に基づいて選択されたコンテキストモデルを使用して前記少なくとも１つのシンタックス要素を復号するようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
前記装置は、
集積回路、
マイクロプロセッサ、または
前記ビデオデコーダを含むワイヤレス通信デバイス、
のうちの少なくとも１つである、請求項８に記載の装置。
【請求項１６】
ビデオデータを復号するための装置であって、
ビデオデータのブロックに関連する変換係数の直列化された１次元アレイを受信する手段と、
前記変換係数の数が所定のしきい値を超えたときに前記変換係数とは別の少なくとも１つのシンタックス要素を受信し、前記変換係数の前記数が前記所定のしきい値を超えないときに前記少なくとも１つのシンタックス要素を受信しない手段と、前記シンタックス要素はビデオデータの前記ブロックに関連する走査順序を識別し、
前記走査順序は、前記変換係数が２次元アレイから、前記直列化された１次元アレイに直列化されている順序を示し、
前記識別された走査順序に従って変換係数の前記２次元アレイを再構成するために変換係数の前記直列化された１次元アレイを逆走査する手段と、
を備える装置。
【請求項１７】
ビデオデータの第２のブロックに関連する変換係数の第２の直列化された１次元アレイを受信する手段と、
変換係数の前記第２の直列化された１次元アレイに関連する変換係数の前記数が前記所定のしきい値を超えないことを第２のシンタックス要素が示すときに前記識別された走査順序とは異なるデフォルト走査順序に従って変換係数の第２の２次元アレイを再構成するためにビデオデータの前記第２のブロックに関連する変換係数の前記第２の直列化された１次元アレイを逆走査する手段と、
をさらに備える請求項１６に記載の装置。
【請求項１８】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記識別された走査順序を識別するインデックス値である、請求項１６に記載の装置。
【請求項１９】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項１６に記載の装置。
【請求項２０】
変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定する手段をさらに備える、請求項１６に記載の装置。
【請求項２１】
ビデオデータの前記ブロックを含むビットストリームが前記少なくとも１つのシンタックス要素を含むかどうかを決定する手段をさらに備える、請求項１６に記載の装置。
【請求項２２】
実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオデータのブロックに関連する変換係数の直列化された１次元アレイを受信させ、
前記変換係数の数が所定のしきい値を超えたときに前記変換係数とは別の少なくとも１つのシンタックス要素を受信させ、前記変換係数の前記数が前記所定のしきい値を超えないときに前記少なくとも１つのシンタックス要素を受信させず、前記シンタックス要素はビデオデータの前記ブロックに関連する走査順序を識別し
前記走査順序は、前記変換係数が２次元アレイから、前記直列化された１次元アレイに直列化されている順序を示し、
前記識別された走査順序に従って変換係数の前記２次元アレイを再構成するために変換係数の前記直列化された１次元アレイを逆走査させる、
命令を記憶したコンピュータ可読記憶媒体。
【請求項２３】
実行されたとき、前記プロセッサに、
ビデオデータの第２のブロックに関連する変換係数の第２の直列化された１次元アレイを受信させ、
変換係数の前記第２の直列化された１次元アレイに関連する変換係数の前記数が前記所定のしきい値を超えないときに前記識別された走査順序とは異なるデフォルト走査順序に従って変換係数の第２の２次元アレイを再構成するためにビデオデータの前記第２のブロックに関連する変換係数の前記第２の直列化された１次元アレイを逆走査させる
命令をさらに備える、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記識別された走査順序を識別するインデックス値である、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２６】
実行されたとき、前記プロセッサに、変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定させる命令をさらに備える、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記命令は、前記プロセッサに、さらに、ビデオデータの前記ブロックを含むビットストリームが前記少なくとも１つのシンタックス要素を含むかどうかを決定させる、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２８】
ビデオデータを符号化するための方法であって、
ビデオデータのブロックに関連する変換係数の数を決定することと、
変換係数の前記数が所定のしきい値を超えるかどうかを決定することに基づいて走査順序をシグナリングすべきかどうかを決定することと、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
前記走査順序を決定し、前記決定された走査順序に従って前記変換係数を走査することと、
変換係数の前記数が前記所定のしきい値を超えたときに、ビットストリーム中に含むための少なくとも１つのシンタックス要素をビデオデータの前記ブロックと関連付けることによって、前記決定された走査順序を示す、前記変換係数とは別の少なくとも１つのシンタックス要素をシグナリングすることと、前記変換係数の前記数が前記所定のしきい値を超えないときに、前記少なくとも１つのシンタックス要素をシグナリングしないことと、
を備える方法。
【請求項２９】
ビデオデータの第２のブロックに関連する変換係数の数を決定することと、
ビデオデータの前記第２のブロックに関連する変換係数の前記数が前記所定のしきい値を超えないときに前記シグナリングされた走査順序とは異なるデフォルト走査順序に従ってビデオデータの前記第２のブロックに関連する前記変換係数を走査することと、
をさらに備え、前記デフォルト走査順序は対応するシンタックス要素を使用してシグナリングされない、請求項２８に記載の方法。
【請求項３０】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記シグナリングされた走査順序を識別するインデックス値である、請求項２８に記載の方法。
【請求項３１】
前記所定のしきい値は、所定の行列サイズしきい値である、請求項２８に記載の方法。
【請求項３２】
前記所定の行列サイズしきい値は８×８行列である、請求項３１に記載の方法。
【請求項３３】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項２８に記載の方法。
【請求項３４】
変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定することをさらに備える、請求項２８に記載の方法。
【請求項３５】
前記走査順序をシグナリングすることは、ビデオデータの前記ブロックの隣接ブロックに関連する情報に基づいて選択されたコンテキストモデルを使用して前記少なくとも１つのシンタックス要素をエントロピー符号化することを備える、請求項２８に記載の方法。
【請求項３６】
ビデオデータを符号化するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定し、
変換係数の前記数が所定のしきい値を超えるかどうかを決定することに基づいて走査順序をシグナリングすべきかどうかを決定し、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
前記走査順序を決定し、前記決定された走査順序に従って前記変換係数を走査し、
変換係数の前記数が前記所定のしきい値を超えたときに、ビットストリーム中に含むための少なくとも１つのシンタックス要素をビデオデータの前記ブロックと関連付けることによって、前記決定された走査順序を示す、前記変換係数とは別の少なくとも１つのシンタックス要素をシグナリングし、前記変換係数の前記数が前記所定のしきい値を超えないときに、前記少なくとも１つのシンタックス要素をシグナリングしない
ように構成されたビデオエンコーダを備える、装置。
【請求項３７】
前記ビデオエンコーダは、
ビデオデータの第２のブロックに関連する変換係数の数を決定し、
ビデオデータの前記第２のブロックに関連する変換係数の前記数が、前記所定のしきい値を超えないときに前記シグナリングされた走査順序とは異なるデフォルト走査順序に従ってビデオデータの前記第２のブロックに関連する前記変換係数を走査する
ようにさらに構成され、前記デフォルト走査順序は対応するシンタックス要素を使用してシグナリングされない、請求項３６に記載の装置。
【請求項３８】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記シグナリングされた走査順序を識別するインデックス値である、請求項３７に記載の装置。
【請求項３９】
前記所定のしきい値は、所定の行列サイズしきい値である、請求項３６に記載の装置。
【請求項４０】
前記所定の行列サイズしきい値は８×８行列である、請求項３９に記載の装置。
【請求項４１】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項３６に記載の装置。
【請求項４２】
前記ビデオエンコーダは、変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定するようにさらに構成された、請求項３６に記載の装置。
【請求項４３】
前記走査順序をシグナリングするために、前記ビデオエンコーダは、ビデオデータの前記ブロックの隣接ブロックに関連する情報に基づいて選択されたコンテキストモデルを使用して前記少なくとも１つのシンタックス要素をエントロピー符号化するように構成された、請求項３６に記載の装置。
【請求項４４】
前記ビデオエンコーダは、
集積回路、
マイクロプロセッサ、または
前記ビデオエンコーダを含むワイヤレス通信デバイス、
のうちの少なくとも１つである、請求項３６に記載の装置。
【請求項４５】
ビデオデータを符号化するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定する手段と、
変換係数の前記数が所定のしきい値を超えるかどうかを決定することに基づいて走査順序をシグナリングすべきかどうかを決定する手段と、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
前記走査順序を決定し、前記決定された走査順序に従って前記変換係数を走査する手段と、
変換係数の前記数が前記所定のしきい値を超えたときに、ビットストリーム中に含むための少なくとも１つのシンタックス要素をビデオデータの前記ブロックと関連付けることによって、前記決定された走査順序を示す、前記変換係数とは別の少なくとも１つのシンタックス要素をシグナリングし、前記変換係数の前記数が前記所定のしきい値を超えないときに、前記少なくとも１つのシンタックス要素をシグナリングしない手段と、
を備える装置。
【請求項４６】
ビデオデータの第２のブロックに関連する変換係数の数を決定する手段と、
ビデオデータの前記第２のブロックに関連する変換係数の前記数が、前記所定のしきい値を超えないときに前記シグナリングされた走査順序とは異なるデフォルト走査順序に従ってビデオデータの前記第２のブロックに関連する前記変換係数を走査する手段と
をさらに備え、前記デフォルト走査順序は対応するシンタックス要素を使用してシグナリングされない、請求項４５に記載の装置。
【請求項４７】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記シグナリングされた走査順序を識別するインデックス値である、請求項４５に記載の装置。
【請求項４８】
前記所定のしきい値は、所定の行列サイズしきい値である、請求項４５に記載の装置。
【請求項４９】
前記所定の行列サイズしきい値は８×８行列である、請求項４８に記載の装置。
【請求項５０】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項４５に記載の装置。
【請求項５１】
変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定する手段をさらに備える、請求項４５に記載の装置。
【請求項５２】
実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオデータのブロックに関連する変換係数の数を決定させ、
変換係数の前記数が所定のしきい値を超えるかどうかを決定することに基づいて走査順序をシグナリングすべきかどうかを決定させ、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
前記走査順序を決定させ、前記決定された走査順序に従って前記変換係数を走査させ、
変換係数の前記数が前記所定のしきい値を超えたときに、ビットストリーム中に含むための少なくとも１つのシンタックス要素をビデオデータの前記ブロックと関連付けることによって、前記決定された走査順序を示す、前記変換係数とは別の少なくとも１つのシンタックス要素をシグナリングさせ、前記変換係数の前記数が前記所定のしきい値を超えないときに、前記少なくとも１つのシンタックス要素をシグナリングさせない
命令を記憶したコンピュータ可読記憶媒体。
【請求項５３】
前記命令は、前記プロセッサに、さらに
ビデオデータの第２のブロックに関連する変換係数の数を決定させ、
ビデオデータの前記第２のブロックに関連する変換係数の前記数が、前記所定のしきい値を超えないときに前記シグナリングされた走査順序とは異なるデフォルト走査順序に従ってビデオデータの前記第２のブロックに関連する前記変換係数を走査させ、前記デフォルト走査順序は対応するシンタックス要素を使用してシグナリングされない、請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５４】
前記少なくとも１つのシンタックス要素は、走査順序の予め定義されたテーブルから前記シグナリングされた走査順序を識別するインデックス値である、請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５５】
前記所定のしきい値は、所定の行列サイズしきい値である、請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５６】
前記所定の行列サイズしきい値は８×８行列である、請求項５５に記載のコンピュータ可読記憶媒体。
【請求項５７】
前記変換係数は、非ゼロ変換係数であり、前記所定のしきい値は、所定の非ゼロ変換係数しきい値である、請求項５２に記載のコンピュータ可読記憶媒体。
【請求項５８】
前記プロセッサに、変換係数の前記数が前記所定のしきい値を超えるかどうかを、ビデオデータの前記ブロックに関連する変換ユニット（ＴＵ）の最後の有効係数フラグ、前記ＴＵに関連する有効変換係数の数、前記ＴＵに関連する前記最後の有効変換係数の相対位置、および前記ＴＵに関連する有効性マップからなるグループの１つ以上に基づいて決定させる命令をさらに備える、請求項５２に記載コンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その全体が参照により本明細書に組み込まれる、２０１０年１０月２２日に出願された米国仮出願第６１／４０６，０３９号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、今度の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがコーディングユニットに区分され得、コーディングユニットも概してブロックと呼ばれ得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接参照ブロックに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
【発明の概要】
【０００５】
[0005]概して、本開示では、ビデオデータをコーディングするための技法について説明する。本開示では、ビデオコーディングプロセス中に残差ビデオデータを変換し、変換係数を走査するための技法について説明する。概して、コーディングされるべきピクチャのブロックは、イントラモード符号化される（たとえば、同じピクチャの他のブロックの参照サンプルに対して符号化される）かまたはインターモード符号化され得る（たとえば、前にコーディングされたピクチャの参照ブロックに対して符号化され得る）。いずれの場合も、ビデオエンコーダは、コーディングされるべきブロックのための予測データを形成する。ブロックの予測データと実際のデータとの間の差分は残差データによって表される。ビデオエンコーダは、残差データを、たとえば空間領域から変換領域に変換し、それによっていくつかの変換係数を作成し得る。
【０００６】
[0006]本開示の技法は、概して、エントロピーコーディングのために変換係数を２次元ブロックから１次元アレイに直列化するために使用される変換係数走査順序を決定することに関係する。本開示の態様によれば、ビデオエンコーダは、直列化されている変換係数の数に基づいて走査順序をシグナリングすべきかどうかを決定し得る。特に、直列化されている変換係数の数が所定のしきい値を超えた場合、ビデオエンコーダは、特定の走査順序を決定し、明示的にシグナリングし得る。または、直列化されている変換係数の数が所定のしきい値を超えない場合、ビデオエンコーダは、特定の走査順序をシグナリングしなくてよい。この例では、ビデオエンコーダは、変換係数を走査するために予め定義された、またはデフォルトの走査順序を使用し得る。
【０００７】
[0007]一例では、ビデオデータを復号するための方法は、ビデオデータのブロックに関連する変換係数の数を決定することと、変換係数の数が所定のしきい値を超えるかどうかを決定することとを含む。本方法はまた、変換係数の数が所定のしきい値を超えたときに走査順序を識別することを含み、走査順序は、変換係数が２次元アレイから１次元アレイに直列化された順序を示す。本方法はまた、ビデオデータのブロックに関連する変換係数の数を逆走査するために走査順序を適用することを含む。
【０００８】
[0008]別の例では、ビデオデータを復号するための装置は、ビデオデータのブロックに関連する変換係数の数を決定することと、変換係数の数が所定のしきい値を超えるかどうかを決定することとを行うように構成されたビデオデコーダを備える。ビデオデコーダはまた、変換係数の数が所定のしきい値を超えたときに、変換係数が２次元アレイから１次元アレイに直列化された順序を示す走査順序を識別し、ビデオデータのブロックに関連する変換係数の数を逆走査するために走査順序を適用するように構成される。
【０００９】
[0009]別の例では、ビデオデータを復号するための装置は、ビデオデータのブロックに関連する変換係数の数を決定する手段と、変換係数の数が所定のしきい値を超えるかどうかを決定する手段とを備える。本装置はまた、変換係数の数が所定のしきい値を超えたときに走査順序を識別する手段と、ここで、走査順序は変換係数が２次元アレイから１次元アレイに直列化された順序を示し、ビデオデータのブロックに関連する変換係数の数を逆走査するために走査順序を適用する手段と、を備える。
【００１０】
[0010]別の例では、実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、ビデオデータのブロックに関連する変換係数の数を決定させ、変換係数の数が所定のしきい値を超えるかどうかを決定させ、変換係数の数が所定のしきい値を超えたときに、変換係数が２次元アレイから１次元アレイに直列化された順序を示す走査順序を識別させ、ビデオデータのブロックに関連する変換係数の数を逆走査するために走査順序を適用させる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品が提供される。
【００１１】
[0011]別の例では、ビデオデータを符号化するための方法は、ビデオデータのブロックに関連する変換係数の数を決定することと、変換係数の数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定することとを備え、走査順序は変換係数が２次元アレイから１次元アレイに直列化される順序を示す。本方法はまた、変換係数の数が所定のしきい値を超えたときに走査順序をシグナリングすることを備える。
【００１２】
[0012]別の例では、ビデオデータを符号化するための装置は、ビデオデータのブロックに関連する変換係数の数を決定し、変換係数の数が所定のしきい値を超えるかどうかに基づいて、変換係数が２次元アレイから１次元アレイに直列化される順序を示す走査順序をシグナリングすべきかどうかを決定するように構成されたビデオエンコーダを備える。ビデオエンコーダはまた、変換係数の数が所定のしきい値を超えたときに走査順序をシグナリングするように構成される。
【００１３】
[0013]別の例では、ビデオデータを符号化するための装置は、ビデオデータのブロックに関連する変換係数の数を決定する手段と、変換係数の数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定する手段とを備え、走査順序は変換係数が２次元アレイから１次元アレイに直列化される順序を示す。本装置はまた、変換係数の数が所定のしきい値を超えたときに走査順序をシグナリングする手段を備える。
【００１４】
[0014]別の例では、実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、ビデオデータのブロックに関連する変換係数の数を決定させ、変換係数の数が所定のしきい値を超えるかどうかに基づいて、変換係数が２次元アレイから１次元アレイに直列化される順序を示す走査順序をシグナリングすべきかどうかを決定させ、変換係数の数が所定のしきい値を超えたときに走査順序をシグナリングさせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品が提供される。
【００１５】
[0015]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１】コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】本開示において説明するコーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための技法のいずれかまたはすべてを実装し得る例示的なビデオエンコーダを示すブロック図。
【図３】符号化ビデオシーケンスを復号するビデオデコーダの一例を示すブロック図。
【図４】変換係数の例示的なジグザグ走査を示す概念図。
【図５】本開示の態様による、変換係数を走査するための走査順序をシグナリングすべきかどうかを決定するための例示的な方法を示すフローチャート。
【図６】本開示の態様による、変換係数を走査するための走査順序をシグナリングすべきかどうかを決定するための別の例示的な方法を示すフローチャート。
【図７】適応走査を実行するための例示的な方法を示すフローチャート。
【図８】適応的に走査される係数を記述するシンタックス要素を走査およびエントロピー符号化するときに使用すべきコンテキストモデルを選択するための例示的な方法を示すフローチャート。
【図９】本開示の態様による、変換係数を逆走査するための走査順序を識別すべきかを決定するための例示的な方法を示すフローチャート。
【図１０】本開示の態様による、変換係数を逆走査するための走査順序を識別すべきかを決定するための別の例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００１７】
[0026]概して、本開示では、ビデオデータをコーディングするための技法について説明する。より詳細には、本開示では、ビデオコーディングプロセス中にデータを変換し、変換係数を走査することに関係する技法について説明する。符号化ビデオデータは予測データと残差データとを含み得る。ビデオエンコーダは、イントラ予測モードまたはインター予測モード中に予測データを生成し得る。イントラ予測は、概して、あるピクチャのブロック中のピクセル値を、同じピクチャの隣接する、前にコーディングされたブロック中の参照サンプルに対して予測することを伴う。インター予測は、概して、ピクチャのブロックのピクセル値を、前にコーディングされたピクチャ中の参照ブロックのデータに対して予測することを伴う。
【００１８】
[0027]イントラ予測またはインター予測の後に、ビデオエンコーダはブロックの残差ピクセル値を計算し得る。残差値は、概して、ブロックの予測ピクセル値データと、ブロックの真のピクセル値データとの間の差分に対応する。たとえば、残差値は、コード化ピクセルと予測ピクセルとの間の差分を示すピクセル差分値を含み得る。いくつかの例では、コード化ピクセルは、コーディングされるべきピクセルのブロックに関連し得、予測ピクセルは、コード化ブロックを予測するために使用されるピクセルの１つまたは複数のブロックに関連し得る。ブロックの残差値をさらに圧縮するために、残差値は、変換領域における変換係数のセットに変換され得る。理想的には、変換係数は、できるだけ多くの（「エネルギー」とも呼ばれる）データをできるだけ少数の係数に圧縮する。この変換は、ピクセルの残差値を空間領域から変換領域に変換する。変換係数は、元のブロックと通常同じサイズである係数の２次元行列に対応する。言い換えれば、通常、元のブロック中のピクセルとちょうど同数の変換係数がある。ただし、変換により、変換係数の多くは、０に等しい値を有し得る。
【００１９】
[0028]ビデオエンコーダは、次いで、ビデオデータをさらに圧縮するために変換係数を量子化し得る。量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化された変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を０に低減し得る。量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化された変換係数を含む２次元行列から１次元ベクトルを生成し得る。
【００２０】
[0029]ビデオエンコーダは、次いで、データをなお一層圧縮するために、得られたアレイをエントロピー符号化し得る。いくつかの例では、ビデオエンコーダは、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable-length coding）を使用して、アレイの様々な可能な量子化変換係数を表すために可変長コード（ＶＬＣ：variable length code）を使用するように構成され得る。他の例では、ビデオエンコーダは、たとえば、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）を使用して、得られた量子化係数を符号化するためにバイナリ算術コーディングを使用するように構成され得る。
【００２１】
[0030]本開示では、ビデオコーディングプロセス中に変換係数を走査し、エントロピー符号化することに関係するいくつかの技法について説明する。特に、本開示では、変換係数行列のサイズによって決定され得る、変換係数の数に基づいて、変換係数行列を走査するための走査順序を識別し、明示的にシグナリングすべきかどうかを判断することに関係するいくつかの技法について説明する。本技法は、ビデオ符号化および／または復号を実行するように構成されたビデオエンコーダ／デコーダ（コーデック）と処理ユニットとを含む、ビデオ符号化ユニットとビデオ復号ユニットの両方によって適用され得る。
【００２２】
[0031]高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）と現在呼ばれる、新しいビデオコーディング規格を開発するための取り組みが現在進行中である。今度の規格は、非公式にＩＴＵ−Ｔ  Ｈ．２６５と呼ばれることもあるが、そのような名称は公式になされたものでない。この規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）と呼ばれるビデオコーディングデバイスのモデルに基づく。提案されたＨＥＶＣ規格は、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従って構成された他のデバイスに勝るビデオコーディングデバイスのいくつかの能力を前提とする。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、提案されたＨＥＶＣ規格は３５個ものイントラ予測符号化モードを与える。
【００２３】
[0032]提案されたＨＥＶＣ規格は、ビデオデータのブロックをコーディングユニット（ＣＵ：coding unit）と称する。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ：largest coding unit）を定義し得る。概して、ＣＵは、ＣＵがサイズ差異を有しないことを除いて、Ｈ．２６４に従ってコーディングされたマクロブロックと同様の目的を有する。したがって、ＣＵはサブＣＵに分割され得る。概して、本開示におけるＣＵへの言及は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指すことがある。ＬＣＵは複数のサブＣＵに分割され、各サブＣＵは複数のサブＣＵに分割され得る。ビットストリームのためのシンタックスデータは、ＣＵ深さと呼ばれる、ＬＣＵが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小コーディングユニット（ＳＣＵ：smallest coding unit）をも定義し得る。
【００２４】
[0033]ＬＣＵは４分木データ構造に関連付けられ得る。概して、４分木データ構造はＣＵごとに１つのノードを含み、ルートノードはＬＣＵに対応する。ＣＵが４つのサブＣＵに分割された場合、ＣＵに対応するノードは４つのリーフノードを含み、リーフノードの各々はサブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを与え得る。たとえば、４分木のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含み得る。ＣＵのシンタックス要素は、再帰的に定義され、ＣＵがサブＣＵに分割されるかどうかに依存し得る。
【００２５】
[0034]分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ：prediction unit）を含み得る。概して、ＰＵは、対応するＣＵの全部または一部分を表し、そのＰＵの参照サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照フレーム、および／または動きベクトルの参照リスト（たとえば、リスト０もしくはリスト１）を記述し得る。（１つまたは複数の）ＰＵを定義するＣＵのデータはまた、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵがコーディングされないか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかの間で異なり得る。
【００２６】
[0035]１つまたは複数のＰＵを有するＣＵはまた、１つまたは複数の変換ユニット（ＴＵ：transform unit）を含み得る。ＰＵを使用した予測の後に、ビデオエンコーダはＰＵの残差値を計算し得る。残差値は変換され、量子化され、走査され得る。ＴＵは、必ずしもＰＵのサイズに制限されるとは限らない。したがって、ＴＵは、同じＣＵの対応するＰＵよりも大きいことも小さいこともある。したがって、ＰＵは、単一のＴＵまたは複数のＴＵを有し得る。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズであり得る。本開示ではまた、ＣＵ、ＰＵ、またはＴＵのいずれかを指すために「ブロック」という用語を使用する。
【００２７】
[0036]概して、上述のように、本開示の技法は、ビデオデータを変換し、量子化し、走査し、エントロピー符号化することに関係する。いくつかの例では、本開示の技法は、たとえば、ビデオデータのブロックに関連する変換係数の数に基づいて、変換係数の走査順序をシグナリングすべきかどうかを決定することを含む。すなわち、一例では、本開示の態様は、ＴＵのサイズに基づいて、ＴＵに関連する変換係数を走査するための走査順序をシグナリングすべきかどうかを決定することに関係し、ＴＵのサイズは、ＴＵに関連する変換係数の数の指示（インジケーション）を与える。別の例では、本開示の態様は、ＴＵに関連する有効変換係数の数に基づいてＴＵの走査順序をシグナリングすべきかどうかを決定することに関係する。さらに別の例では、本開示の態様は、ＴＵの最後の有効変換係数の相対位置に基づいてＴＵの走査順序をシグナリングすべきかどうかを決定することに関係する。この例では、最後の有効係数の相対位置は、以下でより詳細に説明するように、最後の有効係数フラグに基づいて識別され得る。
【００２８】
[0037]本開示では、概して、「走査順序」を、量子化変換係数が、たとえば、２次元ブロックまたは行列から１次元アレイに直列化される順序のことを言う。走査順序は、変換係数が直列化されるときに、２次元行列中の変換係数の相対位置を参照することによって変換係数が直列化されるシーケンスを識別し得る。本開示ではまた、「走査パターン」を、量子化変換係数が２次元行列から１次元アレイに直列化されるパターンのことを言うことがある。すなわち、走査パターンは、２次元行列を通る追跡パターン（たとえば、ジグザグパターン）を参照することによって変換係数が直列化されるシーケンスを識別し得る。したがって、「走査順序」と「走査パターン」という用語は両方とも、どのように変換係数の２次元行列が直列化されるかを説明するために使用され得、本明細書では互換的に使用され得る。
【００２９】
[0038]一例では、本開示の技法は、現在符号化されているＣＵに関連する変換ユニット（ＴＵ）のサイズを検査することにより、変換係数の数に基づいて、変換係数の走査順序を生成し、シグナリングすべきかどうかを決定することを含む。たとえば、１６×１６ＴＵは、正方行列に構成され得る２５６個の個々の関連する変換係数を有する。本開示のいくつかの態様によれば、ビデオエンコーダは、所定のサイズしきい値を超えるＴＵのみの走査順序を生成し、明示的にシグナリングし得る。ＴＵが所定のサイズしきい値を超えない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するとき、所定のまたはデフォルトの走査順序を使用し得る。この例では、ビデオエンコーダは、所定の（予め定められた）走査順序をビデオデコーダにシグナリングしなくてよい。
【００３０】
[0039]別の例では、本開示の技法は、ＴＵ中に含まれる有効係数の数を決定することにより、変換係数の数に基づいて、走査順序を生成し、シグナリングすべきかどうかを決定することを含む。たとえば、上述のように、変換後に、係数は、一般に、ビデオデータをさらに圧縮するために量子化される。場合によっては、量子化はいくつかの値を０に低減し得る。したがって、量子化後に（および直列化の前に）、ＴＵは、非ゼロ値を有する１つまたは複数の変換係数を含むが、１つまたは複数の他の変換係数はゼロ値を有し得る。残りの非ゼロ量子化変換係数は「有効（significant）」変換係数と呼ばれることがある。本開示の技法は、有効変換係数の数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定することを含む。有効変換係数の数が所定のしきい値を超えない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するとき、所定のまたはデフォルトの走査順序を使用し得る。この例では、ビデオエンコーダは、所定の走査順序をビデオデコーダにシグナリングしなくてよい。
【００３１】
[0040]本開示の技法はまた、ＴＵ中に含まれる最後の有効係数の位置を識別することによって、変換係数の数に基づいて、走査順序を生成およびシグナリングすべきかどうかを決定することを含む。すなわち、いくつかの例によれば、ビデオコーダは、ＴＵのための有効性マップを生成し、有効性マップは、ＴＵの有効係数の相対位置を識別し得る。一例では、有効性マップは、ＴＵと同じサイズであり、各変換係数に対応するフラグから構成され得る。その位置における対応する変換係数が非ゼロである場合、ビデオコーダは有効性フラグを「１」の値に設定し得る。代替的に、その位置における対応する変換係数がゼロ値である場合、ビデオコーダは有効性フラグを「０」の値に設定し得る。いくつかの例では、ビデオエンコーダは、変換係数と同じ方法で有効性マップを直列化し、エントロピー符号化し得る。別の例では、ビデオエンコーダは、変換係数に対して逆順に有効性を直列化し得る。
【００３２】
[0041]その上、ビデオエンコーダは、予め定義された走査順序（たとえば、ジグザグ走査順序）に従って変換係数行列を走査するように構成され得る。したがって、行列の各変換係数には、所与の変換係数が行列の他の変換係数に対していつ走査されることになるかを識別する位置が割り当てられ得る。変換係数位置が与えられれば、ビデオエンコーダは、最終の非ゼロ変換係数、たとえば、最後の「有効」係数の位置を識別し得る。概して、本開示では、特定の変換係数が他の変換係数位置よりも時間的に後で走査される場合、その特定の変換係数位置は当該他の変換係数位置「よりも大きい」と呼ぶことがある。
【００３３】
[0042]本開示のいくつかの態様によれば、ビデオエンコーダは、所定のしきい値位置よりも大きい最後の有効係数を有するＴＵのみの走査順序を生成し、シグナリングし得る。ＴＵが、所定のしきい値位置よりも大きい位置において１つまたは複数の有効な、すなわち、非ゼロの変換係数を有しない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するとき、所定のまたはデフォルトの走査順序を使用し得る。この例では、ビデオエンコーダは、所定の走査順序をビデオデコーダにシグナリングしなくてよい。
【００３４】
[0043]ビデオエンコーダに関して説明したが、そのような技法はビデオデコーダによっても実装され得ることを理解されたい。すなわち、ビデオデコーダは、ビットストリーム中で受信された変換係数の数に基づいて、受信されたビットストリームが走査順序の指示を含むかどうかを判断し得る。たとえば、ビデオデコーダは、（たとえば、ビットストリーム中に含まれる変換係数の数に基づく）受信されたＴＵのサイズ、受信されたＴＵの有効係数の数、および／または受信されたＴＵの最後の有効係数の位置に基づいて、ビットストリームが走査順序の指示を含むかどうかを決定し得る。受信されたビットストリームが走査順序の指示（たとえば、走査順序を定義する１つまたは複数のシンタックス要素など）を含むとビデオデコーダが決定した場合、ビデオデコーダは、走査順序を識別し、走査順序に従って変換係数を走査（または逆走査）し得る。すなわち、ビデオデコーダは、受信されたビットストリームの直列化アレイから変換係数の２次元アレイを生成するために、シグナリングされた走査順序を適用し得る。受信されたビットストリームが走査順序の指示を含まないとビデオデコーダが決定した場合、ビデオデコーダは、デフォルトの予め定義された走査順序（たとえば、ビデオエンコーダによって適用されるのと同じデフォルト走査順序）を適用し得る。
【００３５】
[0044]本開示の技法は、ビデオデータのインター予測ブロックに関連する変換係数、ならびにビデオデータのイントラ予測ブロックに関連する変換係数を直列化するための走査順序を生成およびシグナリングすべきかどうかを決定することを含む。さらに、走査順序を明示的にシグナリングするとき、本開示の態様は、そのようなシグナリングを最適化することに関係する。すなわち、たとえば、本開示の技法は、走査順序シグナリングを改善するためにコンテキスト情報を使用することを含む。
【００３６】
[0045]本開示の態様によれば、走査される必要がある変換係数の数に基づいて、特定の走査順序を生成し、明示的にシグナリングすべきかどうかの決定を行うことにより、ビデオエンコーダは、特定の走査順序を潜在的に最も効率的なときにシグナリングし得る。すなわち、本開示の技法は、特定の走査順序を生成およびシグナリングすることに関連する計算量的コストおよびシグナリングコストと、特定の走査順序を実装することによってエントロピーコーディング中に達成される全体的なシグナリング効率の潜在的な増加との間のバランスをとる。
【００３７】
[0046]たとえば、ビデオデータのブロックを符号化するとき、ビデオエンコーダは、特定の走査順序を識別することによって計算リソースを費やす。さらに、ビデオエンコーダは、特定の走査順序をビデオデコーダにシグナリングすることによってシグナリングリソースを費やす。すなわち、ビデオエンコーダは、特定の走査順序をビデオデコーダにシグナリングする必要があり、それにより、ビデオデコーダに送られるビットストリーム中のビット数が増加し得る。
【００３８】
[0047]しかしながら、変換係数の数が比較的大きい場合、走査順序を実装し、明示的にシグナリングすることに関連する計算量的コストおよびシグナリングコストは、エントロピーコーディング段階における効率の増加によって相殺され得る。たとえば、変換係数の数が比較的大きい場合、特定の走査順序を実装すると、非ゼロ変換係数を変換係数の直列化アレイの前部のほうへパックする可能性が増加し、それによってエントロピーコーディング効率が増加し得る。その上、特定の走査順序を実装すると、ゼロ値変換係数の比較的長いランを作成する可能性が増加し、それによってエントロピーコーディング効率がさらに増加し得る。すなわち、非ゼロ変換係数を変換係数の直列化アレイの前部のほうへパックすること、ならびにゼロ値変換係数のランを増加させることにより、より少ないビットで変換係数がシグナリングされることが可能になり得る。
【００３９】
[0048]関連する変換係数および／または有効変換係数が比較的少数であるビデオデータの比較的小さいブロックを符号化するとき、特定の走査順序を生成し、明示的にシグナリングすることは有益でないことがある。たとえば、変換係数が比較的少数である場合、ゼロ値変換係数の比較的長いランを作成する機会が減少する。したがって、特定の走査順序を実装し、シグナリングすることによってエントロピーコーディング段階において得られる効率は、走査順序をシグナリングするために必要とされるビットによって相殺され得る。この例では、ビデオエンコーダは、予め定義されたまたは固定の走査順序を適用し、これはビデオデコーダにシグナリングされる必要がなくてよい。たとえば、単純な場合、ビデオエンコーダとビデオデコーダとは、変換係数を直列化するときに一定の走査順序を適用するように対称的にプリプログラムされる。
【００４０】
[0049]上述のように、本開示の技法は、直列化されている変換係数の数に基づいて、特定の走査順序を明示的にシグナリングすべきかどうかを決定することを含む。本開示のいくつかの態様によれば、ビデオエンコーダは、量子化変換係数行列のサイズに従って変換係数の数を決定する。すなわち、ビデオエンコーダは、ＣＵに関連するＴＵのサイズを検査することによって変換係数の数を決定する。本開示の他の態様によれば、ビデオエンコーダは、有効係数の数、または最後の有効係数の相対位置に従って変換係数の数を決定する。
【００４１】
[0050]いくつかの例では、ビデオエンコーダは、ＴＵのサイズが所定のしきい値サイズを超えたときのみ、特定の走査順序を生成およびシグナリングし得る。一例では、しきい値サイズは変換係数の８×８行列であり得るが、様々な他のしきい値サイズが使用され得る（たとえば、４×４、１６×１６など）。すなわち、ビデオエンコーダは、ＴＵのサイズが変換係数の８×８行列を超えたときのみ、特定の走査順序を生成し、シグナリングし得る。ＴＵがサイズしきい値を超えない場合、ビデオエンコーダは、デフォルトのまたは予め定義された走査順序（たとえば、ジグザグ走査順序）を使用し得る。この場合、ビデオエンコーダは、走査順序をビデオデコーダにシグナリングする必要がない。
【００４２】
[0051]代替または追加として、ビデオエンコーダは、有効変換係数の数が所定のしきい値を超えたときのみ、特定の走査順序を生成し、シグナリングし得る。一例では、しきい値位置は８であり得るが、様々な他のしきい値位置が使用され得る（たとえば、６、１０、２０など）。すなわち、ビデオエンコーダは、少なくとも８つの有効変換係数がある場合のみ、特定の走査順序を生成し、シグナリングし得る。ＴＵが、しきい値よりも多くの有効変換係数を含まない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するときに、所定のまたはデフォルトの走査順序を使用し、この走査順序をビデオデコーダにシグナリングする必要がない。
【００４３】
[0052]代替または追加として、ビデオエンコーダは、最後の有効係数の位置が所定のしきい値位置よりも大きいときのみ、特定の走査順序を生成し、シグナリングし得る。一例では、しきい値位置は８であり得るが、様々な他のしきい値位置が使用され得る。すなわち、ビデオエンコーダは、最後の有効変換係数より前に８つの変換係数がある場合のみ、特定の走査順序を生成し、シグナリングし得る。ＴＵが、所定のしきい値位置よりも大きい位置において１つまたは複数の有効な、すなわち、非ゼロの変換係数を有しない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するときに、所定のまたはデフォルトの走査順序を使用し、この走査順序をビデオデコーダにシグナリングする必要がない。
【００４４】
[0053]本開示の態様は、ビデオデータのインター予測ブロック、ならびにビデオデータのイントラ予測ブロックのための走査順序を生成し、シグナリングすべきかどうかを決定することに関係する。上述のように、ビデオエンコーダは、前にコーディングされたピクチャのデータに対してビデオデータのブロックをインター予測し得る。概して、予測データに特有の不整合により、変換係数行列中の非ゼロ変換係数のロケーションを予想することは難しいことがある。すなわち、非ゼロ変換係数は所与の変換係数行列全体にわたって散乱され得る。
【００４５】
[0054]したがって、ビデオエンコーダは、変換係数を走査するために予め定義あれたまたは固定の走査パターン（たとえば、ジグザグ走査パターン）を適用し得る。別の例では、インター予測ブロックの場合、ビデオエンコーダは、変換係数を走査するために適応走査パターンを適用し得る。すなわち、ビデオエンコーダは、初めに固定走査パターンを実施するが、ピクチャのブロックを符号化している間に走査パターンを適応させるかまたは更新し得る。ビデオエンコーダは、たとえば、ロケーションにおける係数がゼロ値化される傾向があるかどうかを示す統計値を収集し、特定のロケーションにおける係数が通常ゼロ値化される場合、ビデオエンコーダは、通常非ゼロ値を有する他の係数よりも後にその係数を走査することを選択し得る。
【００４６】
[0055]本開示の技法は、直列化されている変換係数の数に基づいて、インター予測ブロックのための走査順序を生成または識別し、明示的にシグナリングすべきかどうかを決定することを含む。本開示の態様によれば、ビデオエンコーダは、現在符号化されているブロックに関連するＴＵが一定のサイズを超えたときのみ、特定の走査順序を明示的にシグナリングし得る。すなわち、走査順序を選択する前に、ビデオエンコーダは、符号化されているブロックに関連するＴＵのサイズが所定のしきい値サイズを超えるかどうかを決定する。
【００４７】
[0056]本開示のいくつかの態様によれば、ＴＵのサイズが所定のしきい値サイズを超えない場合、ビデオエンコーダは、予め定義された固定の走査順序（たとえば、ジグザグ走査パターン）を利用し得る。この場合、ビデオエンコーダは走査順序をシグナリングしなくてよい。しかし、ＴＵのサイズがしきい値サイズを超えた場合、ビデオエンコーダは、エントロピーコーディング効率を増加させようと試みて、走査順序を識別または生成し、明示的にシグナリングし得る。たとえば、ビデオエンコーダは、あるロケーションにおける係数がゼロ値である傾向があるかどうかを示す統計値を使用して適応走査パターンを生じ得る。他の例では、ビデオエンコーダは、様々な予め定義された走査順序をテストし、最も効率的な走査順序を選択することによって走査順序を動的に選択し得る。そのような例では、ビデオエンコーダは、適応または選択された走査順序をビデオデコーダにシグナリングし得る。
【００４８】
[0057]他の例では、ビデオエンコーダは、有効変換係数の数が所定のしきい値を超えたときか、または最後の有効係数の相対位置が所定のしきい値位置よりも大きいときのみ、特定の走査順序を生成し、シグナリングし得る。すなわち、走査順序を選択する前に、ビデオエンコーダは、最後の有効係数位置が所定のしきい値位置よりも大きいかどうかを決定し得る。最後の有効係数位置がしきい値を超えない場合、ビデオエンコーダは、シグナリングされない、予め定義された、固定の走査順序を利用し得る。しかしながら、最後の有効係数位置がしきい値を超えた場合、ビデオエンコーダは、エントロピーコーディング効率を増加させようと試みて、走査順序を識別または生成し、明示的にシグナリングし得る。
【００４９】
[0058]ビデオデータのイントラ予測ブロックに関して、上述のように、ビデオエンコーダは、特定のイントラ予測モードを使用してブロックをイントラ予測し得る。たとえば、提案されたＨＥＶＣ規格に準拠するビデオエンコーダは、最高３５個のイントラ予測モードを用いて構成され得る。いくつかの例では、ビデオエンコーダは、単一の固定走査パターン（たとえば、ジグザグパターン）を使用してイントラ予測ブロックに関連する変換係数を走査し得る。他の例では、ビデオエンコーダは、別のコーディングプロセスに基づいて走査パターンを選択し得る。
【００５０】
[0059]たとえば、イントラ予測の後に、ビデオコーダは、予測のために使用されたイントラ予測モードに基づいて変換係数を走査し得る。すなわち、分離可能な方向性変換が残差値の２次元行列に適用された後でも、得られた２次元変換係数行列は、依然として何らかの方向性を示し得る。たとえば、垂直イントラ予測モードを使用してビデオデータのブロックを予測することを考えられたい。予測、変換、および量子化の後に、ブロックに関連する非ゼロ量子化変換係数は水平方向に沿って（たとえば、２次元行列の相対的上部に沿って）存在する傾向があり得る。したがって、ビデオコーダは、２次元行列中の非ゼロ係数が、得られる１次元ベクトルの始点のほうへさらに集中するように、水平方向に変換係数を走査し得る。
【００５１】
[0060]本開示の技法は、直列化されている変換係数の数に基づいて、ビデオデータのイントラ予測ブロックのための走査順序を生成または識別し、明示的にシグナリングすべきかどうかを決定することを含む。本開示の態様によれば、ビデオエンコーダは、現在符号化されているブロックに関連するＴＵが一定のサイズを超えたときのみ、特定の走査順序を明示的にシグナリングし得る。別の例では、ビデオエンコーダは、現在符号化されているＴＵの有効変換係数の数が所定のしきい値を超えたときのみ、特定の走査順序を明示的にシグナリングし得る。別の例では、ビデオエンコーダは、現在符号化されているＴＵの最後の有効係数の相対位置が所定のしきい値位置を超えたときのみ、特定の走査順序を明示的にシグナリングし得る。
【００５２】
[0061]ビデオエンコーダは、エントロピーコーディング効率を増加させようと試みて、走査順序を識別または生成し、明示的にシグナリングし得る。たとえば、ビデオエンコーダは、様々な走査順序をテストし、（たとえば、レートひずみ、または効率を示す他の特性に従って）ビデオデータのそのブロックのために最も効率的な走査順序を選択することによって走査順序を動的に選択するか、あるいはあるロケーションにおいて係数がゼロ値である傾向があるかどうかを示す統計値に基づく適応走査順序を使用し得る。
【００５３】
[0062]本開示のいくつかの態様によれば、ビデオエンコーダが特定の走査順序を生成しない場合、ビデオエンコーダは、予め定義された固定の走査順序（たとえば、ジグザグ走査パターン）を利用し得る。この場合、ビデオエンコーダは走査順序をシグナリングしなくてよい。
【００５４】
[0063]このように、直列化されている変換係数の数に基づいて特定の走査順序を生成し、シグナリングすべきかどうかを決定することは、走査順序を識別し、明示的にシグナリングすることに関連する計算量的コストおよびシグナリングコストを、エントロピーコーディング段階において実現される利得と平衡させるのを助け得る。本開示のいくつかの態様は、変換ユニット（ＴＵ）に関連する変換係数（または有効変換係数）の数に基づいて、走査順序を生成し、シグナリングすべきかどうかを決定することに関係するが、本開示の技法は、概して、走査順序を判断し、シグナリングすることに関連する計算量的コストおよびシグナリングコストを、特定の走査順序を使用することによって達成されるエントロピーコーディング効率の増加が上回り得るかどうかを決定することに関係することを理解されたい。したがって、いくつかの例では、特定の走査順序を生成し、シグナリングすることが効率的になり得るかどうかを決定するために、他のコーディングメトリックが使用される。たとえば、ＴＵのサイズを検査するのではなく、ビデオエンコーダは、符号化されているＣＵに関連する変換係数の量に基づいて、走査順序を生成し、シグナリングすべきかどうかを決定する。別の例では、ビデオエンコーダは、ビデオデータをコーディングするために必要な変換係数の数の指示を間接的に与える、ＣＵまたはＰＵのサイズに基づいて、走査順序を生成し、シグナリングすべきかどうかを決定する。すなわち、ＣＵまたはＰＵは有効変換係数の数の指示を与えないが、相対的により大きいＣＵまたはＰＵは、より大きい数の有効変換係数を含む可能性が高くなる。
【００５５】
[0064]本開示の技法はまた、走査順序を明示的にシグナリングするとき、そのようなシグナリングを最適化することを含む。たとえば、上述のように、変換係数の２次元行列を走査すると１次元ベクトルが生成され、次いで、その１次元ベクトルはエントロピー符号化される。いくつかの例では、ビデオエンコーダは、可変長コード、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、および他のエントロピーコーディング方法を使用して変換係数をエントロピー符号化する。そのような例では、ビデオエンコーダはまた、たとえば、有効係数フラグおよび最後の係数フラグなど、シンタックス要素をエントロピー符号化する。本開示の態様によれば、ビデオエンコーダはまた、変換係数の走査順序をエントロピー符号化し得る。すなわち、たとえば、本開示は、コンテキストベースの可変長コード（ＶＬＣ）テーブル、および／または現在符号化されているＣＵのコーディング情報からのコンテキスト情報もしくは隣接ＣＵのコンテキスト情報（たとえば、予測モード／方向、予測ユニットサイズ、非ゼロ係数の数など）に依拠する算術コーディング方法を使用して走査順序をシグナリングするための技法を提供する。
【００５６】
[0065]図１は、コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための技法を利用する例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレスハンドセット、いわゆるセルラー電話または衛星無線電話などのワイヤレス通信デバイス、あるいは通信チャネル１６を介してビデオ情報を通信することができる任意のワイヤレスデバイスを備え得、その場合、通信チャネル１６はワイヤレスである。
【００５７】
[0066]ただし、コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定することに関係する本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。たとえば、これらの技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、または他のシナリオに適用される。したがって、通信チャネル１６は、符号化ビデオデータの送信または記憶に好適なワイヤレスまたはワイヤード媒体の任意の組合せを備え得る。
【００５８】
[0067]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先デバイス１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオエンコーダ２０は、本開示の変換ユニットの符号化および復号のための技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先デバイス１４は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【００５９】
[0068]図１の図示のシステム１０は一例にすぎない。コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための技法は、任意のデジタルビデオ符号化および／または復号デバイスによって実行され得る。概して、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス１２、１４は、デバイス１２、１４の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。
【００６０】
[0069]ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオ情報は、次いで、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先デバイス１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００６１】
[0070]宛先デバイス１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８はその情報を復調する。この場合も、ビデオ符号化プロセスは、コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための本明細書で説明する技法のうちの１つまたは複数を実装し得る。チャネル１６を介して通信される情報は、ビデオエンコーダ２０によって定義され、また、ビデオデコーダ３０によって使用されるシンタックス情報を含み、シンタックス情報は、コード化ビデオデータのコーディングユニットまたは他のユニット、たとえば、ピクチャのグループ（ＧＯＰ：group of pictures）、スライス、フレームなどの特性および／または処理を記述するシンタックス要素を含む。４分木データ構造は、最大コーディングユニットのためのシンタックス情報の一部を形成し得る。すなわち、各ＬＣＵは、４分木の形態のシンタックス情報を含み、このシンタックス情報は、ＬＣＵがどのようにサブＣＵに分割されるか、ならびにＬＣＵとサブＣＵとがどのように符号化されるかに関するシグナリング情報を示している。
【００６２】
[0071]ビデオデコーダ３０は、４分木を使用して、受信されたピクチャのＣＵをどのように復号すべきかを判断し得る。ビデオデコーダ３０は、次いで、ＣＵを復号し、復号されたビデオデータをディスプレイデバイス３２に送り得る。ディスプレイデバイス３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００６３】
[0072]図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル１６は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス１２から宛先デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１６は、ソースデバイス１２から宛先デバイス１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００６４】
[0073]ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。別の例として、ビデオエンコーダ２０およびビデオデコーダ３０は、高効率ビデオコーディング（ＨＥＶＣ）規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。ただし、本開示の技法は、特定のコーディング規格に限定されず、現在利用可能であるかまたは将来出現し得るＨＥＶＣまたは他の規格または専用の（proprietary）コーディングプロセスに適用され得る。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００６５】
[0074]ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。いくつかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Advanced Video Coding for generic audiovisual services」に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ぶことがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００６６】
[0075]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令を実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバなどに統合され得る。
【００６７】
[0076]ビデオシーケンスは、一般に一連のビデオフレームを含む。ピクチャのグループ（ＧＯＰ）は、概して、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる多数のフレームを記述するシンタックスデータを、ＧＯＰのヘッダ中、ＧＯＰの１つまたは複数のフレームのヘッダ中、または他の場所に含み得る。各フレームは、それぞれのフレームのための符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のコーディングユニットに対して動作する。コーディングユニットはＬＣＵまたはサブＣＵに対応し、ＣＵという用語はＬＣＵまたはサブＣＵを指し得る。ＬＣＵのヘッダ情報は、ＬＣＵのサイズ、ＬＣＵが分割され得る回数（本開示ではＣＵ深さと呼ぶ）、および他の情報を記述し得る。各ビデオフレームは複数のスライスを含み、各スライスは複数のＬＣＵを含み得る。
【００６８】
[0077]一例として、ＨＥＶＣテストモデル（ＨＭ）は、様々なＣＵサイズでの予測をサポートする。ＬＣＵのサイズはシンタックス情報によって定義され得る。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、２Ｎ×２ＮまたはＮ×Ｎのサイズでのイントラ予測がサポートされ、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称サイズでのインター予測がサポートされる。
【００６９】
[0078]本開示では、「Ｎ×Ｎ」と「Ｎ by Ｎ」は、垂直次元と水平寸法とに関するブロック（たとえば、ＣＵ、ＰＵ、またはＴＵ）のピクセル寸法、たとえば、１６×１６ピクセルまたは１６ by １６ピクセルを指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ただし、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはＮ×Ｍピクセルを備え得、Ｍは必ずしもＮに等しいとは限らない。
【００７０】
[0079]ＣＵのＰＵは、（ピクセル領域とも呼ばれる）空間領域におけるピクセルデータを備え得、一方、ＣＵのＴＵは、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換などの変換の適用後に変換領域における係数を備え得る。残差データは、概して、ＰＵの値と、入力ビデオデータからのコロケート非符号化ピクセルの値との間のピクセル差分を表す。ＴＵは、変換領域における量子化値を含み得る。ＴＵの係数を変換するためにＤＣＴが使用されるとき、ＴＵの係数は周波数領域にあると言われることがある。
【００７１】
[0080]ビデオエンコーダ２０は、コーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するために本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、変換係数を走査するためにデフォルト走査順序以外の特定の走査順序が使用されたかどうかを決定するためにこれらの技法のいずれかまたはすべてを実装し得る。
【００７２】
[0081]ビデオエンコーダ２０は、ＬＣＵを受信し、そのＬＣＵを、各々がサブＣＵを備える４つの象限（quadrant）に分割すべきかどうか、またはそのＬＣＵを分割せずに符号化すべきかどうかを決定し得る。ＬＣＵをサブＣＵに分割すると決定した後に、ビデオエンコーダ２０は、各サブＣＵを、各々がサブＣＵを備える４つの象限に分割すべきかどうかを決定し得る。ビデオエンコーダ２０は、ＬＣＵ深さによって示される分割の最大数を用いて、ＣＵを分割すべきかどうかを再帰的に決定し続ける。ビデオエンコーダ２０は、ＬＣＵとそのＬＣＵのサブＣＵとの分割を示す４分木データ構造を与え得る。ＬＣＵは４分木のルートノードに対応し得る。４分木の各ノードはＬＣＵの１つのＣＵに対応し得る。その上、各ノードは、対応するＣＵが分割されるかどうかを示す分割フラグ値を含み得る。
【００７３】
[0082]ＬＣＵが分割される場合、たとえば、ビデオエンコーダ２０は、ＬＣＵが分割されることを示すためにルートノードにおいて分割フラグの値を設定する。次いで、ビデオエンコーダ２０は、もしあれば、ＬＣＵのサブＣＵのうちのどれが分割されるのかを示すためにルートノードの子ノードの値を設定し得る。分割されないＣＵは４分木データ構造のリーフノードに対応し、リーフノードは子ノードを有しない。
【００７４】
[0083]ビデオエンコーダ２０は、４分木データ構造中のリーフノードに対応するＬＣＵの各サブＣＵを符号化し得る。例として、本開示では、イントラ予測符号化に関係する技法について説明する。したがって、この仮定の下で、ビデオエンコーダ２０は、４分木データ構造中のリーフノードに対応する各ＣＵのための（複数の）予測ユニット（ＰＵ）を形成し得る。いくつかの例では、ビデオエンコーダ２０は、ＬＣＵのための３５個の異なるイントラ予測モードのうちの１つを選択し、４分木のルートノードにおいてその選択されたイントラ予測モードをシグナリングし得る。次いで、リーフノードに対応する各ＣＵについて、ビデオエンコーダ２０は、ＣＵと同じサイズを有する１つのＰＵを形成すべきか、またはＣＵの象限を表す４つのＰＵを形成すべきかを決定し得る。各ＰＵは、選択されたイントラ予測モードに従って前にコーディングされた隣接するＣＵから取り出された予測データに対応する。
【００７５】
[0084]イントラ予測コーディングまたはインター予測コーディングを行ってＣＵのためのＰＵを生成した後に、ビデオエンコーダ２０は、残差データを計算して残差値を生成し、次いで、ＣＵのための１つまたは複数の変換ユニット（ＴＵ）に変換を適用し得る。残差データは、符号化されていないピクチャのピクセルと、ＣＵのＰＵの予測値との間のピクセル差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含む１つまたは複数のＴＵを形成し得る。ビデオエンコーダ２０は、次いで、それらのＴＵを変換し得る。ビデオエンコーダ２０は、ＣＵのためのＰＵをイントラモード予測するために使用されるイントラ予測モードに基づいて変換を選択し得る。いくつかの例では、ビデオエンコーダ２０は、２つ以上の変換、すなわち、カスケード変換をＴＵに適用するように構成され得る。
【００７６】
[0085]ＴＵのための残差データを変換することによって、ビデオエンコーダ２０は変換係数の行列を生成する。この行列は、概して、変換への入力ブロックと同じサイズを有する。概して、変換プロセスは数学的変換を使用して残差データを変換する。変換の後には、一般に、データをさらに圧縮する量子化が続く。量子化は、概して、係数を表すために使用されるデータの量ができるだけ低減されるように変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深さを低減し得る。たとえば、量子化中にｎビット値がｍビット値に切り捨てられ、ただし、ｎはｍよりも大きい。
【００７７】
[0086]いくつかの例では、ビデオエンコーダ２０は、エントロピー符号化されるベクトルを生成するために、予め定義された走査順序を利用して量子化変換係数を走査し得る。すなわち、ビデオエンコーダ２０は、ジグザグ走査順序などの予め定義された走査順序を使用して量子化変換係数を直列化し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。適応走査を実行するために、ビデオエンコーダ２０は、変換係数の行列中の特定の位置が有効である（たとえば、非ゼロである）可能性がより高いかより低いかを示す統計値を追跡し得る。ビデオエンコーダ２０は、走査パターンがこれらの統計的可能性に対応するように、走査パターンを経時的に適応させ得る。すなわち、適応走査パターンにより、有効である（たとえば、非ゼロである）確率が相対的により高い変換係数が、有効である確率が相対的により低い変換係数の前に走査されることを保証することが試みられ得る。
【００７８】
[0087]本開示の態様によれば、ビデオエンコーダ２０は、直列化されている変換係数の数に基づいて、特定の走査順序を生成およびシグナリングすべきかどうかを決定し、それは、符号化されているビデオデータのブロックに関連する変換ユニット（ＴＵ）のサイズに従って決定され得る。たとえば、ビデオエンコーダ２０は、ＴＵのサイズが所定のしきい値サイズを超えたときのみ、特定の走査順序をシグナリングし得る。一例では、ビデオエンコーダは、ＴＵのサイズが変換係数の８×８行列を超えたときのみ、特定の走査順序を生成およびシグナリングするが、他のサイズも使用され得る（たとえば、４×４行列、１６×１６行列など）。
【００７９】
[0088]いくつかの例では、ＴＵがサイズしきい値を超えた場合、ビデオエンコーダ２０は、デフォルトまたは所定の走査順序以外の走査順序を適用し、シグナリングする。すなわち、一例では、ビデオエンコーダ２０は、適応走査順序を適用し、その適応走査順序をビデオデコーダ３０にシグナリングする。別の例では、ビデオエンコーダ２０は、２つ以上のプリプログラムされた走査順序をテストし、最も効率的な走査順序、たとえば、最も多くの有効変換係数を変換係数の直列化アレイの前部のほうへパックし、および／またはゼロ値変換係数の長いランを作成する走査順序を選択し得る。走査順序を選択した後に、ビデオエンコーダ２０は、選択された走査順序をビデオデコーダ３０にシグナリングし得る。
【００８０】
[0089]ＴＵがサイズしきい値を超えない場合、ビデオエンコーダ２０は予め定義された走査順序を使用し得る。その上、この場合、ビデオエンコーダ２０は走査順序をシグナリングしなくてよい。ビデオデコーダ３０は、以下でより詳細に説明するように、同じ予め定義された走査順序を適用するように構成され得る。
【００８１】
[0090]本開示の態様によれば、ビデオエンコーダ２０はまた、直列化されている有効変換係数の数に基づいて、またはＴＵに関連する最後の有効係数フラグの位置を決定することによって、特定の走査順序を生成およびシグナリングすべきかどうかを決定し得る。たとえば、ビデオエンコーダ２０は、所定のしきい値位置よりも大きい最後の有効係数を有するＴＵの走査順序だけを生成し、明示的にシグナリングする。ＴＵが、所定のしきい値位置よりも大きい位置において１つまたは複数の有効な、すなわち、非ゼロの変換係数を有しない場合、ビデオエンコーダは、ＴＵに関連する変換係数を走査するとき、所定のまたはデフォルトの走査順序を使用し得る。この例では、ビデオエンコーダは、所定の走査順序をビデオデコーダ３０にシグナリングしなくてよい。
【００８２】
[0091]特定の走査順序をシグナリングするとき、ビデオエンコーダ２０は、走査順序を明示的にシグナリングすることによって走査順序を示し得る。すなわち、ビデオエンコーダ２０は、ビットストリーム中に、走査順序を定義する１つまたは複数のシンタックス要素を含み得る。別の例では、ビデオエンコーダ２０は、インデックス値を使用して特定の走査順序を示し得る。すなわち、ビデオエンコーダ２０は、走査順序の予め定義されたテーブル（たとえば、走査順序のルックアップテーブル）中で特定の走査順序を識別するインデックス値をビットストリーム中で与え得る。この例では、ビデオデコーダ３０は走査順序の同様のテーブルを含み、それにより、ビデオデコーダ３０は、インデックスを受信したときに特定の走査順序を選択することが可能になり得る。
【００８３】
[0092]いくつかの例では、適応走査を使用するか所定の走査を使用するかにかかわらず、ビデオエンコーダ２０は、走査の後にアレイ中の係数をゼロアウトする。すなわち、ビデオエンコーダ２０は、アレイの位置Ｎから終端までの係数の値を０に等しく設定し得る。Ｎの値はＣＵのサイズおよび／またはＴＵのサイズに関係し得る。いくつかの例では、ビデオエンコーダ２０は、走査するより前に、行列中のいくつかの変換係数、たとえば、行列の左上隅にある係数以外の行列中のすべての係数をゼロアウトし得る。
【００８４】
[0093]１次元ベクトルを形成するために変換行列を走査した後に、ビデオエンコーダ２０は、たとえば、コンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、または別のエントロピーコーディング方法に従って、１次元ベクトルをエントロピー符号化し得る。
【００８５】
[0094]ＣＡＶＬＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【００８６】
[0095]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非ゼロか否かに関係し得る。ビデオエンコーダ２０はまた、適応走査を実行するときに生成される有効係数フラグおよび最後の係数フラグなど、シンタックス要素をエントロピー符号化し得る。
【００８７】
[0096]本開示の技法によれば、ビデオエンコーダ２０が特定の走査順序を識別したとき（たとえば、変換係数の数がしきい値を超えた場合）、ビデオエンコーダ２０は走査順序をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、現在符号化されているＣＵのコーディング情報からのコンテキスト情報もしくは隣接ＣＵのコンテキスト情報（たとえば、予測モード／方向、予測ユニットサイズ、非ゼロ係数の数など）に依拠するコンテキストベースの可変長コード（ＶＬＣ）テーブルおよび／または算術コーディング方法を使用して走査順序をシグナリングし得る。
【００８８】
[0097]ビデオデコーダ３０は、符号化されたＰＵデータとＴＵデータとを含む符号化されたＣＵを表す、エントロピー符号化されたデータを受信し得る。ビデオデコーダ３０は、この受信データを逆エントロピー符号化して符号化量子化係数を形成し得る。ビデオエンコーダ２０が可変長コードアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ３０は、受信コードワードに対応するシンボルを決定するために１つまたは複数のＶＬＣテーブルを使用し得る。ビデオエンコーダ２０が算術コーディングアルゴリズムを使用してデータをエントロピー符号化したとき、ビデオデコーダ３０は、コンテキストモデルを使用してデータを符号化し、それはビデオエンコーダ２０によって使用されたのと同じコンテキストモデルに対応し得る。
【００８９】
[0098]ビデオデコーダ３０は、次いで、ビデオエンコーダ２０によって使用された走査をミラーリングする逆走査を使用して、復号された係数を逆走査し得る。係数を適応的に逆走査するために、ビデオデコーダ３０は、有効係数フラグと最後の係数フラグとを含むシンタックス要素を復号し得る。このようにして、ビデオデコーダ３０は、ビデオエンコーダ２０によって適応走査を実行するために使用された統計値を再生成し得る。ビデオデコーダ３０は、それによって、エントロピー復号プロセスから得られた１次元ベクトルから２次元行列を形成し得る。
【００９０】
[0099]本開示の態様によれば、ビデオデコーダ３０は、（たとえば、ビデオエンコーダ２０によって適用された所定の走査順序と対称の）所定のデフォルト逆走査順序を適用するか、またはビデオエンコーダ２０によってシグナリングされた逆走査順序を適用するように構成され得る。すなわち、ビデオデコーダ３０は、ビデオエンコーダ２０によって特定の逆走査順序がシグナリングされた場合、その逆走査順序を利用し得るが、走査順序がビデオエンコーダ２０によってシグナリングされない場合、予め定義されたデフォルト走査順序を使用し得る。
【００９１】
[0100]いくつかの例では、特定の逆走査順序を復号し、適用すべきかどうかを判断するために、ビデオデコーダ３０は、ビデオエンコーダ２０によって適用されたのと同じ走査順序シグナリング制限を適用し得る。すなわち、ビデオデコーダ３０は、走査されている変換係数の数に基づいて、特定の逆走査順序を識別し（たとえば、特定の走査順序が適用されたという指示を識別し）、適用するかどうかを決定し得る。
【００９２】
[0101]たとえば、本開示の態様によれば、ビデオデコーダ３０は、現在復号されているブロックに関連するＴＵがあるサイズを超えたときのみ、特定の走査順序を識別する。別の例では、ビデオデコーダ３０は、現在符号化されているＴＵの有効変換係数の数が所定のしきい値を超えたときのみ、特定の走査順序を識別する。別の例では、ビデオデコーダ３０は、現在符号化されているＴＵの最後の有効係数の相対位置が所定のしきい値位置を超えたときのみ、特定の走査順序を識別する。そのような例では、ビデオデコーダ３０が特定の走査順序（たとえば、ビデオエンコーダによってシグナリングされた走査順序）を識別しない場合、ビデオデコーダ３０は、変換係数を走査するために、プリプログラムされたデフォルトの走査順序を適用する。
【００９３】
[0102]次に、ビデオデコーダ３０は、逆走査によって生成された２次元行列中の係数を逆量子化し得る。ビデオデコーダ３０は、次いで、２次元行列に１つまたは複数の逆変換を適用し得る。逆変換は、ビデオエンコーダ２０によって適用された変換に対応し得る。ビデオデコーダ３０は、たとえば、ＰＵを形成するために使用されるイントラ予測モードに基づいて、特定のサイズのＴＵのために複数の変換が利用可能である場合は、現在復号されているＣＵに対応する４分木のルートにおいてシグナリングされる情報に基づいて、適用すべき逆変換を決定する。
【００９４】
[0103]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダまたはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ、そのいずれも複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０および／またはビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００９５】
[0104]図２は、本開示において説明するコーディングユニットのための走査順序を明示的にシグナリングすべきかどうかを決定するための技法のいずれかまたはすべてを実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在のフレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラ（Ｉ）モードは、いくつかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００９６】
[0105]図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、参照フレームストア６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、係数走査ユニット５５と、エントロピーコーディングユニット５６とを含む。図２に示す変換ユニット５２は、実際の変換を実行するユニットであり、ＣＵのＴＵと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００９７】
[0106]符号化プロセス中に、ビデオエンコーダ２０はコーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。
【００９８】
[0107]モード選択ユニット４０は、たとえば、誤差結果またはレートひずみ計算に基づいて、コーディングモード、すなわちイントラまたはインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器５０に供給し、参照フレーム中で使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器６２に供給し得る。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索がブロックの予測に不十分であったとき、イントラ予測ユニット４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００９９】
[0108]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在のフレーム中の予測ユニットの変位を示し得る。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of square difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックである。動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ユニットの値をフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット４２と動き補償ユニット４４とは機能的に統合され得る。
【０１００】
[0109]動き推定ユニット４２は、予測ユニットを参照フレームストア６４に記憶された参照フレームの参照サンプルと比較することによって、インターコード化フレームの当該予測ユニットの動きベクトルを計算する。いくつかの例では、ビデオエンコーダ２０は、参照フレームストア６４に記憶された参照フレームのサブ整数ピクセル位置の値を計算する。たとえば、ビデオエンコーダ２０は、参照フレームの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を計算し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。動き推定ユニット４２は、計算された動きベクトルをエントロピーコーディングユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれる。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在のＣＵの予測ユニットについての予測値を計算する。
【０１０１】
[0110]イントラ予測ユニット４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックをイントラ予測符号化し得る。イントラ予測ユニット４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右、上から下への符号化順序を仮定すると、現在のブロックの上ブロック、右上ブロック、左上ブロック、または左ブロックに対して受信ブロックを符号化し得る。イントラ予測ユニット４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測ユニット４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３５個の方向性予測モードで構成され得る。
【０１０２】
[0111]イントラ予測ユニット４６は、たとえば、様々なイントラ予測モードの誤差値またはレートひずみを計算し（たとえば、所定のひずみを超えることなしに圧縮を最大にすることを試み）、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測ユニット４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測ユニット４６は、次いで、ＰＵを加算器５０に送り得る。
【０１０３】
[0112]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測ユニット４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックは２次元行列の値に対応し、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケートピクセルと、コーディングされるべき元のブロック中のコロケートピクセルとの間の差分に対応し得る。
【０１０４】
[0113]変換ユニット５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換ユニット５２は、離散コサイン変換（ＤＣＴ）、方向性変換、または概念的に同様の変換などの変換をＴＵに適用して、変換係数を備えるビデオブロックを生成する。したがって、変換ユニット５２は、イントラ予測ユニット４６から受信されたイントラ予測モードの指示に基づいてＴＵに適用すべき変換を選択し得る。
【０１０５】
[0114]変換ユニット５２は、得られた変換係数を量子化ユニット５４に送る。量子化ユニット５４は、次いで、その変換係数を量子化する。上述のように、量子化は、概して、相対的に大きい範囲内の値を相対的に小さい範囲中の値にマッピングし、それによって、量子化された変換係数を表すために必要とされるデータの量を低減することを伴う。場合によっては、量子化はいくつかの値を０に低減し得る。
【０１０６】
[0115]量子化の後に、係数走査ユニット５５は、量子化変換係数を走査して量子化変換係数を２次元行列から１次元アレイに直列化する。概して、係数走査ユニット５５は、（図４に関して図示および説明する）ジグザグパターンなど、量子化変換係数を走査するために固定の予め定義された走査パターンを適用し得る。他の例では、係数走査ユニット５５は、イントラ予測ユニット４６または変換ユニット５２から選択されたイントラ予測モードの指示を受信し、イントラ予測モードに基づいて走査パターンを適用し得る。係数走査ユニット５５はまた、たとえば、ブロックタイプ（インターもしくはイントラ）および／またはＴＵに適用される変換のタイプ（たとえば、ＤＣＴもしくはＫＬＴ）など、現在のＴＵの様々な特性に基づいて特定の走査を選択および適用し得る。さらに他の例では、係数走査ユニット５５は、いくつかの走査順序から特定の走査順序を選択し得る。すなわち、たとえば、係数走査ユニット５５は、いくつかの予め定義された走査順序から、エントロピーコーディング効率を増加させる可能性が最も高い走査順序（たとえば、変換係数をアレイの前部のほうへパックする走査順序）を選択する。
【０１０７】
[0116]別の例では、係数走査ユニット５５は適応走査を実行するように構成され得る。初めに（たとえば、現在のフレームの第１のＴＵについて）、係数走査ユニット５５は所定の走査パターンを使用し得る。時間とともに、係数走査ユニット５５は走査パターンを更新して適応走査を実行し得る。概して、適応走査の目的は、特定の変換係数が非ゼロになる確率を決定することである。その場合、走査順序は、概して、非ゼロである確率が最も高い係数から非ゼロである確率が最も低い係数に進む。係数走査ユニット５５は、様々な統計値および計算を使用して経時的にこれらの確率を決定し得る。その上、係数走査ユニット５５は、イントラ予測モード、変換、カスケード変換、またはそれらの任意の組合せごとに別々の統計値を追跡し得る。
【０１０８】
[0117]本開示の態様によれば、係数走査ユニット５５は、直列化されている変換係数の数に基づいて、特定の走査順序を生成および適用すべきかどうかを決定し、
それは、符号化されているビデオデータのブロックに関連する変換ユニット（ＴＵ）のサイズ、有効変換係数の数に従って、または最後の有効係数の位置に従って決定され得る。いくつかの例では、係数走査ユニット５５は、特定の走査順序を生成および適用すべきかどうかを決定することを担い、エントロピーコーディングユニット５６のようなビデオエンコーダ２０の別のユニットが、走査順序をシグナリングすること、すなわち、ビデオデコーダなどの別のデバイスに送られるべきビットストリームを生成することを担う。
【０１０９】
[0118]いくつかの例では、係数走査ユニット５５は、量子化変換係数の数がしきい値を超えたときのみ、特定の走査順序を生成および／または適用し、それは、走査されているＴＵのサイズが所定のしきい値サイズを超えるかどうかに従って決定され得る。一例では、ビデオエンコーダ２０は、ＴＵのサイズが変換係数の８×８行列を超えたときのみ、特定の走査順序を生成および／または適用するが、他のサイズも使用され得る（たとえば、４×４行列、１６×１６行列など）。
【０１１０】
[0119]ＴＵがサイズしきい値を超えた場合、係数走査ユニット５５は、デフォルトのまたは所定の走査順序以外の走査順序を選択し、適用し得る。一例では、係数走査ユニット５５は、たとえば、ブロックタイプ（インターもしくはイントラ）、（イントラ予測ブロックの）予測モード、および／またはＴＵに適用される変換のタイプ（たとえば、ＤＣＴもしくはＫＬＴ）など、現在のＴＵの様々な特性に基づいて走査順序を選択する。他の例では、係数走査ユニット５５は、いくつかの走査パターンから、エントロピーコーディング効率を増加させる可能性が最も高い走査パターンを選択する。係数走査ユニット５５はまた、変換係数を走査するために適応走査順序を生じ、適用し得る。特定の走査順序を選択し、適用することに加えて、係数走査ユニット５５はまた、選択された走査順序をシグナリングし、または、選択された走査順序をシグナリングするように、エントロピーコーディングユニット５６など、ビデオエンコーダ２０の別のユニットに促し得る。上述のように、走査順序は、明示的にシグナリングされるか、または予め定義された走査順序のルックアップテーブルと対応するインデックス値を使用して指示され得る。
【０１１１】
[0120]代替的に、ＴＵがサイズしきい値を超えない場合、係数走査ユニット５５は、デフォルトのまたは所定の走査順序を適用し得る。この場合、係数走査ユニット３３は、特定の走査順序をシグナリングしないか、または、エントロピーコーディングユニット５６のようなビデオエンコーダの別のユニットに特定の走査順序をシグナリングするように促さない。
【０１１２】
[0121]別の例では、係数走査ユニット５５は、有効変換係数の数を示す最後の有効係数を有するＴＵが所定のしきい値位置（たとえば、しきい値位置８）よりも大きいときのみ、特定の走査順序を生成および／または適用し得る。ＴＵが、所定のしきい値位置よりも大きい位置において１つまたは複数の有効変換係数を有しない場合、係数走査ユニット５５は、シグナリングされないデフォルトのまたは所定の走査順序を適用し得る。
【０１１３】
[0122]本開示のいくつかの態様によれば、走査順序を明示的にシグナリングすべきかどうかを決定することのような、係数走査ユニット５５に起因するいくつかの技法は、ビデオエンコーダ２０の別のユニットによって実行され得る。たとえば、代替構成では、エントロピーコーディングユニット５６または量子化ユニット５４は、走査順序を選択し、明示的にシグナリングすべきかどうかを決定するように構成される。
【０１１４】
[0123]エントロピーコーディングユニット５６は、直列化された量子化変換係数、ならびにそれらの係数のシンタックス要素をエントロピー符号化し得る。本開示のいくつかの態様によれば、エントロピーコーディングユニット５６は係数走査ユニットと並行して動作し得る。すなわち、たとえば、係数走査ユニット５５が走査を実行している間、エントロピーコーディングユニット５６は、直列化された変換係数とシンタックス要素とをエントロピー符号化する。シンタックス要素は、特定の係数が有効である（たとえば、非ゼロである）かどうかを示す有効係数フラグと、特定の係数が適応走査中に走査される最後の係数であるかどうかを示す最後係数フラグとを含み得る。ビデオデコーダは、エントロピーコーディングユニット５６によって符号化された係数を逆走査するためにこれらのシンタックス要素を使用し得る。いくつかの例では、ビデオデコーダは、ビデオデコーダがエントロピーコーディングユニット５６によって符号化された係数を逆走査することができるように、これらのシンタックス要素を使用して動的更新走査テーブルを再構成し得る。
【０１１５】
[0124]シンタックス要素をエントロピー符号化するために、エントロピーコーディングユニット５６は、ＣＡＢＡＣを実行し、たとえば、前に走査されたＮ個の係数の中の有効係数の数に基づいてコンテキストモデルを選択し得、ただし、Ｎは、走査されているブロックのサイズに関係し得る整数値である。エントロピーコーディングユニット５６はまた、変換係数のブロックに変換された残差データを計算するために使用される予測モードと、その残差データを変換係数のブロックに変換するために使用される変換のタイプとに基づいてコンテキストモデルを選択し得る。対応する予測データがイントラ予測モードを使用して予測されたとき、エントロピーコーディングユニット５６はさらに、イントラ予測モードの方向に基づいてコンテキストモデルの選択を行い得る。
【０１１６】
[0125]本開示の態様によれば、エントロピーコーディングユニット５６は、変換係数の走査順序をコーディングするためにエントロピー符号化を実行し得る。すなわち、たとえば、エントロピーコーディングユニット５６は、現在符号化されているＣＵのコーディング情報からのコンテキスト情報もしくは隣接ＣＵのコンテキスト情報（たとえば、予測モード／方向、予測ユニットサイズ、非ゼロ係数の数など）に依拠するコンテキストベースの可変長コード（ＶＬＣ）テーブルおよび／または算術コーディング方法を使用して走査順序をシグナリングし得る。
【０１１７】
[0126]場合によっては、エントロピーコーディングユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて他のコーディング機能を実行するように構成され得る。たとえば、エントロピーコーディングユニット５６はマクロブロックおよびパーティションのＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピーコーディングユニット５６は、マクロブロックまたはそれのパーティション中の係数のランレングスコーディングを実行し得る。
【０１１８】
[0127]逆量子化ユニット５８および逆変換ユニット６０は、それぞれ逆量子化および逆変換を適用して、たとえば、予測コーディングのための参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームストア６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームストア６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１１９】
[0128]図３は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームストア８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット７２は、エントロピー復号ユニット７０から受信された動きベクトルに基づいて予測データを生成し得る。イントラ予測ユニット７４は、シグナリングされたイントラ予測モードと、現在のフレームの前に復号されたブロックからのデータとに基づいて現在のフレームの現在のブロックについての予測データを生成し得る。
【０１２０】
[0129]いくつかの例では、エントロピー復号ユニット７０または逆量子化ユニット７６は、ビデオエンコーダ２０によって使用された走査をミラーリングする走査を使用して受信値を走査し得る。図３の例では、ビデオデコーダ３０は、（たとえば、ビデオエンコーダ２０によって適用された所定の走査順序と対称の）所定のデフォルトの逆走査順序を適用するか、またはビデオエンコーダ２０によってシグナリングされた走査順序に基づいて逆走査順序を適用するように構成され得る。すなわち、ビデオデコーダ３０は、ビデオエンコーダ２０によって特定の逆走査順序がシグナリングされた場合、その逆走査順序を利用し得るが、走査順序がビデオエンコーダ２０によってシグナリングされない場合、予め定義されたデフォルトｎ走査順序を使用し得る。
【０１２１】
[0130]いくつかの例では、特定の逆走査順序を復号し、適用すべきかどうかを決定するために、ビデオデコーダ３０は、ビデオエンコーダ２０によって適用されたのと同じ走査順序シグナリング制限を適用し得る。すなわち、ビデオデコーダ３０は、走査されている変換係数の数に基づいて、特定の逆走査順序を識別すべきかどうかを決定し得る。いくつかの例では、ビデオデコーダ３０は、逆走査されている変換係数の数がしきい値よりも大きい場合のみ、特定の逆走査順序を識別し得る。すなわち、たとえば、ビデオデコーダ３０は、逆走査されている変換係数の数がしきい値よりも大きい場合、特定の逆走査順序を識別するが、変換係数の数がしきい値以下である場合、予め定義されたデフォルトの走査順序を使用し得る。
【０１２２】
[0131]ビデオエンコーダによってシグナリングされた走査順序を復号するとき、ビデオデコーダ３０は、ビデオエンコーダ３０と対称の方法で動作し得る。たとえば、係数を適応的に逆走査するために、ビデオデコーダ３０は、ビデオエンコーダ２０によって適応走査を実行するために使用された統計値を再生成するために、有効係数フラグおよび最後の係数フラグを含むシンタックス要素を復号し得る。ビデオデコーダ３０は、それによって、エントロピー復号プロセスから得られた１次元ベクトルから２次元行列を形成し得る。別の例では、ビデオデコーダ３０は、いくつかの逆走査からある逆走査を選択するために、ビデオエンコーダ２０と同じ基準を使用し得る。
【０１２３】
[0132]逆量子化ユニット７６は、ビットストリーム中で供給され、エントロピー復号ユニット７０によって復号された量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、Ｈ．２６４復号規格またはＨＥＶＣによって定義された従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。
【０１２４】
[0133]逆変換ユニット５８は、逆変換、たとえば、逆ＤＣＴ、逆整数変換、逆回転変換、または逆方向性変換を適用する。いくつかの例では、逆変換ユニット７８は、受信されたイントラ予測符号化ブロックについてシグナリングされるイントラ予測モードに基づいて逆変換を決定し得る。イントラ予測モードに基づいて、ブロックが、２つ以上の変換が可能であるサイズである場合、逆変換ユニット７８は、現在のブロックを含むＬＣＵのための４分木のルートノードにおいてシグナリングされた変換に基づいて現在のブロックに適用すべき変換を決定し得る。いくつかの例では、逆変換ユニット７８は、カスケード逆変換を適用し得、たとえば、最初に逆回転変換を適用し、続いて逆方向性変換を適用し得る。
【０１２５】
[0134]動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１２６】
[0135]動き補償ユニット７２およびイントラ予測ユニット７４は、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されるＬＣＵのサイズと、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報と、各分割がどのように符号化されるかを示すモード（たとえば、イントラ予測またはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを判断する。
【０１２７】
[0136]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して復号ブロックをフィルタ処理することもある。復号されたビデオブロックは、次いで、参照フレームストア８２に記憶され、参照フレームストア８２は、参照ブロックを後続の動き補償に与え、また、（図１のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【０１２８】
[0137]図４は、ビデオデータ１２０Ａ〜１２０Ｐ（位置１２０）のブロックに関連する位置の例示的なジグザグ走査を示す概念図である。いくつかの例では、各位置１２０は、関連する変換係数を含み得る。ビデオエンコーダ２０は、たとえば、残差ブロックへのＤＣＴの適用の後に、図４のジグザグ走査を使用して係数のブロックを走査するように構成され得る。この例では、ジグザグ走査は、位置１２０Ａから開始し、次いで位置１２０Ｂに進み、次いで位置１２０Ｅに進み、次いで位置１２０Ｉに進み、次いで位置１２０Ｆに進み、次いで位置１２０Ｃに進み、次いで位置１２０Ｄに進み、次いで位置１２０Ｇに進み、次いで位置１２０Ｊに進み、次いで位置１２０Ｍに進み、次いで位置１２０Ｎに進み、次いで位置１２０Ｋに進み、次いで位置１２０Ｈに進み、次いで位置１２０Ｌに進み、次いで位置１２０Ｏに進み、最後に位置１２０Ｐに進む。
【０１２９】
[0138]この走査を実行することによって、変換係数の２次元構成は、位置１２０の各々の値を含む１次元アレイに変換され得る。これらの値は、アレイ中に走査順に構成され得る。たとえば、位置１２０Ａの値がアレイ中の最初にあり、その後に位置１２０Ｂ、１２０Ｅ、１２０Ｉ、１２０Ｆなどの値が続く。
【０１３０】
[0139]図４のジグザグ走査は、変換係数を形成するために残差ブロックに適用されるＤＣＴに関連付けられ得る。概して、ＤＣＴは、位置１２０のエネルギーを変換ブロックの左上隅に圧縮する。したがって、最低周波数係数は、概して、ＤＣＴ後に左上隅の近くに生じ得、最高周波数係数は、概して、ＤＣＴ後に右下隅の近くに生じ得る。したがって、ジグザグ走査は、アレイ中でより低い周波数係数がより高い周波数係数よりも早く配置されることを保証することを試みるように構成され得る。このようにして、ビデオエンコーダは、より高い周波数係数に対応するはずである、アレイ中の後のほうの係数をゼロアウトすることによって、データを圧縮し得る。
【０１３１】
[0140]他の変換のために他の予め定義された走査パターンも定義され得る。たとえば、各方向性変換は、方向性変換から生じる低い周波数係数を、より高い周波数係数よりも早くアレイ中に配置するように設計された走査パターンに関連付けられ得る。方向性変換のうちの１つは、より低い周波数係数が変換係数のブロックの左端の列に沿って生じ得、その場合には、位置１２０Ａから開始し、次いで位置１２０Ｅ、次に位置１２０Ｉ、次に位置１２０Ｍ、次に１２０Ｂなどに進むように定義された走査に対応する。別の例として、方向性変換のうちの別の１つは、より低い周波数係数が変換係数のブロックの最上行に沿って生じ得、その場合には、係数１２０Ａから開始し、次いで位置１２０Ｂ、次に位置１２０Ｃ、次に位置１２０Ｄ、次に位置１２０Ｅなどに進むように定義された走査に対応する。
【０１３２】
[0141]いくつかの例では、ビデオエンコーダ２０は、予め定義された走査ではなく、適応走査を実行するように構成され得る。適応走査は、特定の係数（すなわち、位置１２０に対応する係数）が有効であるかどうかを示す統計値に基づいて時間とともに変化し得る。さらに、ビデオエンコーダ２０は、たとえば、ブロックを予測するために選択されるイントラ予測モード、初期変換の後に適用すべき回転変換のインデックス、または他のファクタに基づいて、統計値の別個のセットを計算し得る。
【０１３３】
[0142]本開示の態様によれば、ビデオエンコーダ２０は、量子化変換係数の数がしきい値を超えたときのみ、特定の走査順序を適用し、シグナリングし得る。いくつかの例では、量子化変換係数の数は、走査されているＴＵのサイズに従って決定される。たとえば、走査されている量子化変換係数の数が所定のしきい値を超えない場合、ビデオエンコーダ２０は、図４に示すジグザグ走査順序など、所定のデフォルトび走査順序を適用する。この場合、ビデオエンコーダ２０は走査順序をシグナリングしなくてよい。代替的に、走査されている量子化変換係数の数が所定のしきい値を超えた場合、ビデオエンコーダ２０は特定の走査順序を選択し、シグナリングする。
【０１３４】
[0143]他の例では、量子化変換係数の数は、最後の有効係数の位置に従って決定される。たとえば、最後の有効係数の位置が所定のしきい値位置を超えない場合、ビデオエンコーダ２０は、走査順序をシグナリングすることなしに、図４に示すジグザグ走査順序など、所定のデフォルトの走査順序を適用する。代替的に、最後の有効係数の位置が所定のしきい値位置よりも大きい場合、ビデオエンコーダは特定の走査順序を選択し、シグナリングする。
【０１３５】
[0144]ビデオエンコーダ２０が特定の走査順序を適用し、シグナリングするとき、ビデオエンコーダ２０は、たとえば、ブロックタイプ（インターもしくはイントラ）、（イントラ予測ブロックの）予測モード、および／またはＴＵに適用される変換のタイプ（たとえば、ＤＣＴもしくはＫＬＴ）など、現在のＴＵの様々な特性に基づいて走査順序を選択する。他の例では、ビデオエンコーダ２０は、いくつかの走査順序から、エントロピーコーディング効率を増加させる可能性が最も高い走査順序を選択する。さらに他の例では、ビデオエンコーダ２０は、上記で説明したように、適応走査順序を生じ、適用し、シグナリングする。
【０１３６】
[0145]本開示の技法は、走査されているＴＵのサイズに基づいて、特定の走査順序を適用し、シグナリングすべきかどうかを決定することに関係する。本開示のいくつかの態様によれば、ビデオエンコーダ２０は、ＴＵのサイズが変換係数の８×８行列を超えたときのみ、特定の走査順序を適用し、シグナリングするが、他のサイズも使用され得る（たとえば、４×４行列、１６×１６行列など）。走査されているＴＵがサイズしきい値以下である場合、ビデオエンコーダ２０はデフォルトのまたは所定の走査順序を適用し得る。この例では、ビデオエンコーダ２０は特定の走査順序をシグナリングせず、ビデオデコーダ３０などのビデオデコーダは、同じデフォルトのまたは所定の走査順序を適用するように構成され得る。代替的に、走査されているＴＵがサイズしきい値を超えた場合、ビデオエンコーダ２０は、上記で説明したように、デフォルトのまたは所定の走査順序以外の走査順序を適用し、シグナリングする。
【０１３７】
[0146]本開示の技法はまた、最後の有効係数の位置に基づいて、特定の走査順序を適用し、シグナリングすべきかどうかを決定することに関係する。本開示のいくつかの態様によれば、ビデオエンコーダ２０は、最後の有効係数の位置が８つの係数を超えたときのみ、特定の走査順序を適用し、シグナリングし得るが、他の係数位置も使用され得る（たとえば、１６、３２など）。最後の有効係数位置が位置しきい値以下である場合、ビデオエンコーダ２０は、走査順序をシグナリングすることなしに、デフォルトのまたは所定の走査順序を適用する。代替的に、最後の有効係数位置が位置を超えた場合、ビデオエンコーダ２０は、上記で説明したように、デフォルトのまたは所定の走査順序以外の走査順序を適用し、シグナリングする。
【０１３８】
[0147]図５は、本開示の態様による、変換係数のための走査順序をシグナリングすべきかどうかを決定するための例示的な方法１４０を示すフローチャートである。図５に示す例では、本方法は、概して、符号化されているＴＵのサイズに基づいて、ＴＵに関連する変換係数のための走査順序をシグナリングすべきかどうかを決定することを含む。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図５の方法を実行するように構成され得ることを理解されたい。
【０１３９】
[0148]図５に示す例示的な方法１４０は、変換係数を受信することから始まる（１４２）。たとえば、係数走査ユニット５５など、ビデオエンコーダの構成要素が、現在符号化されているＴＵに関連する変換係数の２次元行列を受信し得る。すなわち、ビデオエンコーダ２０の係数走査ユニット５５は、量子化ユニット５４から、２次元変換ユニット（ＴＵ）に関連する量子化変換係数行列を受信し得る。本開示の態様によれば、係数走査ユニット５５は、エントロピー符号化され得る変換係数の１次元アレイを生成するために変換係数を直列化することを担当する。
【０１４０】
[0149]係数走査ユニット５５は、変換係数の数が所定のしきい値を超えるかどうかを決定する（１４４）。一例では、ビデオエンコーダ２０は、現在符号化されているＴＵのサイズに基づいて、変換係数の数がしきい値を超えるかどうかを決定し得る。一例では、係数走査ユニット５５は、変換係数行列のサイズが所定のしきい値の８×８変換係数を超えるかどうかを決定し得るが、他のしきい値も使用され得る（たとえば、４×４、１６×１６など）。変換係数行列のサイズがしきい値行列サイズ以下である場合、係数走査ユニット５５はデフォルトの走査順序を使用して変換係数行列を走査する（１４６）。さらに、エントロピーコーディングユニット５６は、走査順序をシグナリングすることなしに、走査された係数をエントロピー符号化する（１４８）。
【０１４１】
[0150]しかしながら、変換係数の数のサイズがしきい値を超えた場合、係数走査ユニット５５は変換係数のための走査順序を選択する（１５０）。本開示の態様によれば、係数走査ユニット５５は、たとえば、ブロックタイプ（インターもしくはイントラ）、予測モード／方向、および／またはＴＵに適用される変換のタイプなど、符号化されているＴＵの様々な特性に基づいて特定の走査を選択する。他の例では、図７に関してより詳細に説明するように、係数走査ユニット５５は適応走査を選択する。
【０１４２】
[0151]係数走査ユニット５５は、次いで、選択された走査順序を使用して変換係数を走査する（１５２）。さらに、エントロピーコーディングユニット５６は、走査された変換係数をエントロピー符号化し、ならびに変換係数を走査するために使用される走査順序をシグナリングする（１５４）。本開示の態様によれば、以下の図８に関してより詳細に説明するように、エントロピーコーディングユニット５６は、コンテキストモデルを使用して走査順序をシグナリングし得る。すなわち、エントロピーコーディングユニット５６は、現在符号化されているＣＵまたは隣接ＣＵのコーディング情報からのコンテキスト情報（たとえば、予測モード／方向、予測ユニットサイズ、非ゼロ係数の数など）に依拠するコンテキストベースの可変長コード（ＶＬＣ）テーブルおよび／または算術コーディング方法を使用して走査順序をシグナリングし得る。
【０１４３】
[0152]また、図５に関して図示および説明するステップは一例として与えたものにすぎないことを理解されたい。たとえば、図５において図示および説明するしきい値比較はＴＵに関連するが、特定の走査順序をシグナリングすべきかどうかを決定するためにＴＵサイズ以外のコーディングメトリックが使用され得る。たとえば、ＴＵのサイズを検査するのではなく、ビデオエンコーダ２０は、同じく変換係数の数の指示を間接的に与え得る、ＣＵまたはＰＵのサイズに基づいて、走査順序をシグナリングすべきかどうかを決定し得る。
【０１４４】
[0153]さらに、図５のいくつかの態様について、ビデオエンコーダ２０の係数走査ユニット５５によって実行されるものとして一般的に説明したが、エントロピーコーディングユニット５６など、様々な他のユニットまたはモジュールがそのような態様を実行するように構成され得ることを理解されたい。その上、図５の方法のステップは必ずしも図５に示す順序で実行される必要はなく、より少ないか、追加であるか、または代替であるステップが実行され得る。
【０１４５】
[0154]図６は、本開示の態様による、変換係数のための走査順序をシグナリングすべきかどうかを決定するための別の例示的な方法１８０を示すフローチャートである。図６に示す例では、本方法は、概して、ＴＵの最後の有効係数の位置に基づいて、ＴＵに関連する変換係数のための走査順序をシグナリングすべきかどうかを決定することを含む。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図６の方法を実行するように構成され得ることを理解されたい。
【０１４６】
[0155]図６に示す例示的な方法１８０は、変換係数を受信することから始まる（１８２）。たとえば、係数走査ユニット５５など、ビデオエンコーダの構成要素が、現在符号化されているＴＵに関連する変換係数の２次元行列を受信し得る。すなわち、ビデオエンコーダ２０の係数走査ユニット５５は、量子化ユニット５４から、２次元変換ユニット（ＴＵ）に関連する量子化変換係数行列を受信し得る。本開示の態様によれば、係数走査ユニット５５が、エントロピー符号化され得る変換係数の１次元アレイを生成するために変換係数を直列化することを担当する。
【０１４７】
[0156]係数走査ユニット５５は、次いで、現在の変換係数行列の最後の有効係数の位置が所定のしきい値位置よりも大きいかどうかを決定する（１８４）。一例では、係数走査ユニット５５は、最後の有効係数の位置が８よりも大きいかどうかを決定するが、ＴＵ中に含まれる有効変換係数の数の指示（indication）を与え得る他のしきい値位置が使用され得る（たとえば、１６、３２など）。変換係数の最後の有効係数の位置がしきい値位置以下である場合、係数走査ユニット５５はデフォルトの走査順序を使用して変換係数を走査する（１８６）。さらに、エントロピーコーディングユニット５６は、走査順序をシグナリングすることなしに、走査された係数をエントロピー符号化する（１８８）。
【０１４８】
[0157]しかしながら、変換係数の最後の有効係数の位置がしきい値位置よりも大きい場合、係数走査ユニット５５は変換係数のための走査順序を選択する（１９０）。上記の図５に関して説明したように、係数走査ユニット５５は、符号化されているＴＵの様々な特性に基づいて特定の走査を選択するか、または適応走査を選択し得る。係数走査ユニット５５は、次いで、選択された走査順序を使用して変換係数を走査する（１９２）。さらに、図５のステップ（１５４）に関して説明したように、エントロピーコーディングユニット５６は、走査された変換係数をエントロピー符号化し、ならびに変換係数を走査するために使用される走査順序をシグナリングする（１９４）。
【０１４９】
[0158]また、図６に関して図示および説明するステップは一例として与えたものにすぎないことを理解されたい。たとえば、図６のいくつかの態様について、概して、ビデオエンコーダ２０の係数走査ユニット５５によって実行されるものとして説明したが、エントロピーコーディングユニット５６など、様々な他のユニットまたはモジュールがそのような態様を実行するように構成され得ることを理解されたい。その上、図６の方法のステップは必ずしも図６に示す順序で実行される必要はなく、より少ないか、追加であるか、または代替であるステップが実行され得る。
【０１５０】
[0159]図７は、適応走査を実行するための例示的な方法２１０を示すフローチャートである。説明のためにビデオエンコーダ２０（図２）の構成要素によって実行されるものとして一般的に説明するが、プロセッサ、処理ユニット、エンコーダ／デコーダ（コーデック）などのハードウェアベースのコーディングユニットなど、他のビデオ符号化ユニットも図７の方法を実行するように構成され得ることを理解されたい。
【０１５１】
[0160]本開示の技法によれば、図７に示す係数を適応的に走査するための技法は、図５のステップ１５０〜１５４または図６のステップ１９０〜１９４に対応し得る。すなわち、たとえば、係数を適応的に走査するための技法は、ＴＵサイズが所定のしきい値サイズを超えたとき、またはＴＵの最後の有効係数が所定のしきい値位置を超えたときに適用され得る。そのような例では、ビデオエンコーダ２０は、図７に示す例示的な方法２１０に従って、適応走査を生成し、シグナリングし得る。ただし、図７に示す方法は一例として与えたものにすぎないことを理解されたい。たとえば、ビデオエンコーダ２０はまた、たとえば、ブロックタイプ（インターもしくはイントラ）、予測モード／方向、および／またはＴＵに適用される変換のタイプなど、符号化されているＴＵの様々な特性に基づいて走査順序を選択し得る。その上、図７のステップは必ずしも図７に示す順序で実行される必要はなく、より少ないか、追加のまたは代替のステップが実行され得る。
【０１５２】
[0161]図７に示すように、基本適応走査を実行するために、係数走査ユニット５５は、現在ブロックの対応する予測モードのために定義された初期走査順序に従ってブロックの係数を走査する（２１２）。ビデオエンコーダ２０の観点からは、走査は、変換係数の２次元ブロックを１次元係数アレイに変換する。しかしながら、ビデオデコーダ３０の観点からは、この走査は、１次元係数アレイを２次元変換係数ブロックに変換することになる。一例として、対応する予測モードの初期走査順序はジグザグ走査順序であり得る。ジグザグ走査は唯一の可能な初期走査順序ではない。水平走査、垂直走査、または任意の他の初期走査順序が初期走査順序として使用され得る。
【０１５３】
[0162]係数走査ユニット５５は、１つまたは複数のブロックの統計値を収集する（２１４）。特に、走査されるブロックの各々について、係数走査ユニット５５は、たとえば、カウンタを用いて、２次元ブロック内の係数位置の各々がそこにおいて非ゼロ係数である頻度を追跡する統計値を収集し得る。係数走査ユニット５５は、走査順序を評価すべきかどうかを決定する（２１６）。係数走査ユニット５５は、固定間隔で（たとえば、ブロック境界ごとにまたはｎ個のブロック境界後に）、あるいは非固定間隔で（たとえば、ブロック内の位置のカウント値のうちの１つがしきい値を超えたときに）走査順序を評価し得る。
【０１５４】
[0163]係数走査ユニット５５が走査順序を評価しないと決定した場合、係数走査ユニット５５は、初期走査順序に従って後続のブロックを走査する（２１２）。係数走査ユニット５５が走査順序を評価すると決定した場合、たとえば、ｎ個のブロックが符号化／復号された後に、係数走査ユニットは、収集された統計値に基づいて走査順序を適応させる（２１８）。たとえば、係数走査ユニット５５は、ブロックの係数位置をそれらのカウント値に基づいて降順に走査するように走査順序を適応させ、カウント値は、所与の位置が非ゼロ係数を有する可能性を反映する。走査順序を適応させた後に、係数走査ユニット５５は、いくつかの事例では、統計値のいずれかのカウント値がしきい値を超えたかどうかを決定する（２２０）。係数位置のうちの１つが、しきい値を超える対応するカウント値を有する場合、係数走査ユニット５５は、収集された統計値、たとえば、係数カウント値を正規化する（２２２）。たとえば、係数走査ユニット５５は、所定の係数で、たとえば、カウント値の各々を１／２だけ低減するために係数２で、カウント値の各々を低減することによって、またはカウント値を初期カウント値のセットにリセットすることによって、係数カウント値を正規化し得る。係数カウント値を正規化することにより、ビデオエンコーダ２０がより迅速にローカル係数統計値に適応することが可能になり得る。
【０１５５】
[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]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１８１】
[0190]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１８２】
[0191]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１８３】
[0192]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを復号するための方法であって、
ビデオデータのブロックに関連する変換係数の数を決定することと、
変換係数の前記数が所定のしきい値を超えるかどうかを決定することと、
変換係数の前記数が前記所定のしきい値を超えたときに走査順序を識別することと、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化されている順序を示し、
ビデオデータのブロックに関連する前記数の変換係数を逆走査するために前記走査順序を適用することと、
を備える方法。
［Ｃ２］
変換係数の前記数が前記所定のしきい値を超えないときにデフォルト走査順序を識別することと、前記数の変換係数を逆走査するために前記デフォルト走査順序を適用することとをさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記デフォルト走査順序を前記識別することは、プリプログラムされた走査順序を識別することを備える、Ｃ２に記載の方法。
［Ｃ４］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ１に記載の方法。
［Ｃ５］
非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定することをさらに備える、Ｃ４に記載の方法。
［Ｃ６］
前記走査順序を識別することは、前記走査順序の指示を含むビットストリームを復号することを備える、Ｃ１に記載の方法。
［Ｃ７］
隣接ブロックのイントラ予測モードを備えるコンテキストモデルに基づいて前記走査順序を識別することをさらに備える、Ｃ６に記載の方法。
［Ｃ８］
ビデオデータを復号するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定し、
変換係数の前記数が所定のしきい値を超えるかどうかを決定し、
変換係数の前記数が前記所定のしきい値を超えたときに走査順序を識別し、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化されている順序を示し、
ビデオデータのブロックに関連する前記数の変換係数を逆走査するために前記走査順序を適用する
ように構成されたビデオデコーダを備える装置。
［Ｃ９］
前記ビデオデコーダは、変換係数の前記数が前記所定のしきい値を超えないときにデフォルト走査順序を識別し、前記数の変換係数を逆走査するために前記デフォルト走査順序を適用するようにさらに構成された、Ｃ８に記載の装置。
［Ｃ１０］
前記デフォルト走査順序を前記識別することは、プリプログラムされた走査順序を識別することを備える、Ｃ９に記載の装置。
［Ｃ１１］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ８に記載の装置。
［Ｃ１２］
前記ビデオデコーダは、非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定するようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１３］
前記走査順序を識別することは、前記走査順序の指示を含むビットストリームを復号することを備える、Ｃ８に記載の装置。
［Ｃ１４］
前記ビデオデコーダは、隣接ブロックのイントラ予測モードを備えるコンテキストモデルに基づいて前記走査順序を識別するようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ１５］
前記装置は、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと、のうちの少なくとも１つを備える、Ｃ８に記載の装置。
［Ｃ１６］
ビデオデータを復号するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定する手段と、
変換係数の前記数が所定のしきい値を超えるかどうかを決定する手段と、
変換係数の前記数が前記所定のしきい値を超えたときに走査順序を識別する手段と、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化されている順序を示し、
ビデオデータのブロックに関連する前記数の変換係数を逆走査するために前記走査順序を適用する手段と、
を備える装置。
［Ｃ１７］
変換係数の前記数が前記所定のしきい値を超えないときにデフォルト走査順序を識別する手段と、前記数の変換係数を逆走査するために前記デフォルト走査順序を適用する手段と、をさらに備えるＣ１６に記載の装置。
［Ｃ１８］
前記デフォルト走査順序を前記識別することは、プリプログラムされた走査順序を識別することを備える、Ｃ１７に記載の装置。
［Ｃ１９］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ１６に記載の装置。
［Ｃ２０］
非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定する手段をさらに備える、Ｃ１９に記載の装置。
［Ｃ２１］
前記走査順序を識別することは、前記走査順序の指示を含むビットストリームを復号することを備える、Ｃ１６に記載の装置。
［Ｃ２２］
実行されたとき、ビデオデータを復号するためのデバイスのプロセッサに、
ビデオデータのブロックに関連する変換係数の数を決定させ、
変換係数の前記数が所定のしきい値を超えるかどうかを決定させ、
変換係数の前記数が前記所定のしきい値を超えたときに走査順序を識別させ、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化されている順序を示し、
ビデオデータのブロックに関連する前記数の変換係数を逆走査するために前記走査順序を適用させる、
命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［Ｃ２３］
実行されたとき、前記プロセッサに、変換係数の前記数が前記所定のしきい値を超えないときにデフォルト走査順序を識別させ、前記数の変換係数を逆走査するために前記デフォルト走査順序を適用させる命令をさらに備える、Ｃ２２に記載のコンピュータプログラム製品。
［Ｃ２４］
前記デフォルト走査順序を前記識別することは、プリプログラムされた走査順序を識別することを備える、Ｃ２３に記載のコンピュータプログラム製品。
［Ｃ２５］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ２２に記載のコンピュータプログラム製品。
［Ｃ２６］
実行されたとき、前記プロセッサに、非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定させる命令をさらに備える、Ｃ２５に記載のコンピュータプログラム製品。
［Ｃ２７］
前記走査順序を識別することは、前記走査順序の指示を含むビットストリームを復号することを備える、Ｃ２２に記載のコンピュータプログラム製品。
［Ｃ２８］
ビデオデータを符号化するための方法であって、
ビデオデータのブロックに関連する変換係数の数を決定することと、
変換係数の前記数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定することと、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
変換係数の前記数が前記所定のしきい値を超えたときに前記走査順序をシグナリングすることと、
を備える方法。
［Ｃ２９］
変換係数の前記数が前記所定のしきい値を超えない場合、前記数の変換係数を走査するためにデフォルト走査順序を適用することをさらに備える、Ｃ２８に記載の方法。
［Ｃ３０］
前記デフォルト走査順序はシグナリングされない、Ｃ２９に記載の方法。
［Ｃ３１］
変換係数の数が所定のしきい値を超えるかどうかを決定することは、変換係数の前記数が所定の行列サイズしきい値を超えるかどうかを決定することを備える、Ｃ２８に記載の方法。
［Ｃ３２］
前記所定の行列サイズしきい値は８×８行列である、Ｃ３１に記載の方法。
［Ｃ３３］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ２８に記載の方法。
［Ｃ３４］
非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定することをさらに備える、Ｃ３３に記載の方法。
［Ｃ３５］
前記走査順序をシグナリングすることは、隣接ブロックのイントラ予測モードを備えるコンテキストモデルに基づいて前記走査順序をシグナリングすることを備える、Ｃ２８に記載の方法。
［Ｃ３６］
ビデオデータを符号化するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定し、
変換係数の前記数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定し、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
変換係数の前記数が前記所定のしきい値を超えたときに前記走査順序をシグナリングする
ように構成されたビデオエンコーダを備える、装置。
［Ｃ３７］
前記ビデオエンコーダは、変換係数の前記数が前記所定のしきい値を超えない場合、前記数の変換係数を走査するためにデフォルト走査順序を適用するようにさらに構成された、Ｃ３６に記載の装置。
［Ｃ３８］
前記デフォルト走査順序はシグナリングされない、Ｃ３７に記載の装置。
［Ｃ３９］
変換係数の数が所定のしきい値を超えるかどうかを決定することは、変換係数の前記数が所定の行列サイズしきい値を超えるかどうかを決定することを備える、Ｃ３６に記載の装置。
［Ｃ４０］
前記所定の行列サイズしきい値は８×８行列である、Ｃ３９に記載の装置。
［Ｃ４１］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ３６に記載の装置。
［Ｃ４２］
前記ビデオエンコーダは、非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定するようにさらに構成された、Ｃ４１に記載の装置。
［Ｃ４３］
前記走査順序をシグナリングすることは、隣接ブロックのイントラ予測モードを備えるコンテキストモデルに基づいて前記走査順序をシグナリングすることを備える、Ｃ３６に記載の装置。
［Ｃ４４］
前記ビデオエンコーダは、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスと、のうちの少なくとも１つを備える、Ｃ３６に記載の装置。
［Ｃ４５］
ビデオデータを符号化するための装置であって、
ビデオデータのブロックに関連する変換係数の数を決定する手段と、
変換係数の前記数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定する手段と、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
変換係数の前記数が前記所定のしきい値を超えたときに前記走査順序をシグナリングする手段と、
を備える装置。
［Ｃ４６］
変換係数の前記数が前記所定のしきい値を超えない場合、前記数の変換係数を走査するためにデフォルト走査順序を適用する手段をさらに備える、Ｃ４５に記載の装置。
［Ｃ４７］
前記デフォルト走査順序はシグナリングされない、Ｃ４６に記載の装置。
［Ｃ４８］
変換係数の数が所定のしきい値を超えるかどうかを決定することは、変換係数の前記数が所定の行列サイズしきい値を超えるかどうかを決定することを備える、Ｃ４５に記載の装置。
［Ｃ４９］
前記所定の行列サイズしきい値は８×８行列である、Ｃ４８に記載の装置。
［Ｃ５０］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ４５に記載の装置。
［Ｃ５１］
非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定することをさらに備える、Ｃ５０に記載の装置。
［Ｃ５２］
実行されたとき、ビデオデータを符号化するためのデバイスのプロセッサに、
ビデオデータのブロックに関連する変換係数の数を決定させ、
変換係数の前記数が所定のしきい値を超えるかどうかに基づいて走査順序をシグナリングすべきかどうかを決定させ、前記走査順序は、前記変換係数が２次元アレイから１次元アレイに直列化される順序を示し、
変換係数の前記数が前記所定のしきい値を超えたときに前記走査順序をシグナリングさせる
命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
［Ｃ５３］
変換係数の前記数が前記所定のしきい値を超えない場合、前記数の変換係数を走査するためにデフォルト走査順序を適用することをさらに備える、Ｃ５２に記載のコンピュータプログラム製品。
［Ｃ５４］
前記デフォルト走査順序はシグナリングされない、Ｃ５３に記載のコンピュータプログラム製品。
［Ｃ５５］
変換係数の数が所定のしきい値を超えるかどうかを決定することは、変換係数の前記数が所定の行列サイズしきい値を超えるかどうかを決定することを備える、Ｃ５２に記載のコンピュータプログラム製品。
［Ｃ５６］
前記所定の行列サイズしきい値は８×８行列である、Ｃ５５に記載のコンピュータプログラム製品。
［Ｃ５７］
変換係数の前記数が所定のしきい値を超えるかどうかを決定することは、非ゼロ変換係数の数が所定の非ゼロ変換係数しきい値を超えるかどうかを決定することをさらに備える、Ｃ５２に記載のコンピュータプログラム製品。
［Ｃ５８］
非ゼロ変換係数の前記数が前記所定の非ゼロ変換係数しきい値を超えるかどうかを最後の有効係数フラグに基づいて決定することをさらに備える、Ｃ５７に記載のコンピュータプログラム製品。
【図１】
0005628438.tif 000002
【図２】
0005628438.tif 000003
【図３】
0005628438.tif 000004
【図４】
0005628438.tif 000005
【図５】
0005628438.tif 000006
【図６】
0005628438.tif 000007
【図７】
0005628438.tif 000008
【図８】
0005628438.tif 000009
【図９】
0005628438.tif 000010
【図１０】
0005628438.tif 000011