(57)【特許請求の範囲】
【請求項１】
ビデオ符号化プロセスにおいてビデオデータの変換係数を符号化する方法であって、前記方法はビデオエンコーダが実行し、
変換ユニット中の１つまたは複数の前に符号化された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを決定することと、
コンテキストベースエントロピー符号化プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを符号化することと、
を備える、方法。
【請求項２】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することをさらに備え、
前記ビン２コンテキストを決定することは、前記ベクトル中の１つまたは複数の前に符号化された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定することを備える、請求項１に記載の方法。
【請求項３】
前記コンテキストベースエントロピー符号化プロセスはコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）プロセスである、請求項１に記載の方法。
【請求項４】
前記ビン２コンテキストを決定することは、５つのビン２コンテキストを含んでいるコンテキストモデルから、前記ビン２コンテキストを決定することを備える、請求項１に記載の方法。
【請求項５】
走査順序に従って、前記変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
をさらに備える、請求項４に記載の方法。
【請求項６】
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
をさらに備える、請求項５に記載の方法。
【請求項７】
前記ビン２コンテキストを決定することは、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定することを備える、請求項１に記載の方法。
【請求項８】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
をさらに備える、請求項７に記載の方法。
【請求項９】
ビデオ符号化プロセスにおいてビデオデータの変換係数を符号化するための装置であって、
変換ユニット中の１つまたは複数の前に符号化された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルを符号化するためのビン２コンテキストを決定する手段と、
コンテキストベースエントロピー符号化プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを符号化する手段と、
を備える、装置。
【請求項１０】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段をさらに備え、
前記ビン２コンテキストを前記決定する手段は、前記ベクトル中の１つまたは複数の前に符号化された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定する手段を備える、請求項９に記載の装置。
【請求項１１】
前記コンテキストベースエントロピー符号化プロセスはコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）プロセスである、請求項９に記載の装置。
【請求項１２】
前記ビン２コンテキストを決定する手段は、５つのビン２コンテキストを含んでいるコンテキストモデルから、前記ビン２コンテキストを決定する手段を備える、請求項９に記載の装置。
【請求項１３】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段と、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定する手段と、
をさらに備える、請求項１２に記載の装置。
【請求項１４】
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定する手段と、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第５のビン２コンテキストを決定する手段と、
をさらに備える、請求項１３に記載の装置。
【請求項１５】
前記ビン２コンテキストを決定する手段は、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定する手段を含む、請求項９に記載の装置。
【請求項１６】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段と、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定する手段と、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定する手段と、
をさらに備える、請求項１５に記載の装置。
【請求項１７】
ビデオ符号化プロセスにおいて変換係数を符号化するための装置であって、
ビデオデータを記憶するように構成されたメモリと、
変換ユニット中の１つまたは複数の前に符号化された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルを符号化するためのビン２コンテキストを決定することと、
コンテキストベースエントロピー符号化プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを符号化することと、
を行うように構成されたビデオエンコーダと、
を備える、装置。
【請求項１８】
前記ビデオエンコーダは、走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査するようにさらに構成され、
前記ビン２コンテキストを前記決定するために前記ビデオエンコーダは、前記ベクトル中の１つまたは複数の前に符号化された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
前記コンテキストベースエントロピー符号化プロセスはコンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）プロセスである、請求項１７に記載の装置。
【請求項２０】
前記ビデオエンコーダは、５つのビン２コンテキストを含んでいるコンテキストモデルから、ビン２コンテキストを決定するようにさらに構成された、請求項１７に記載の装置。
【請求項２１】
前記ビデオエンコーダは、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項１７に記載の装置。
【請求項２２】
前記ビデオエンコーダは、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項２１に記載の装置。
【請求項２３】
前記ビデオエンコーダは、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定することを行うようにさらに構成された、請求項１７に記載の装置。
【請求項２４】
前記ビデオエンコーダは、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項２３に記載の装置。
【請求項２５】
前記ビデオエンコーダはプロセッサにおいて実装され、ここにおいて、前記装置は、ワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスはさらに、
送信機と、
前記ビデオデータを受信するように構成された受信機と、
を備える、請求項１７に記載の装置。
【請求項２６】
前記ワイヤレス通信デバイスはセルラー電話であり、ここにおいて、前記受信機は、前記ビデオデータを受信し、前記受信されたビデオデータをセルラー通信規格に従って復調するように構成された、請求項２５に記載の装置。
【請求項２７】
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
変換ユニット中の１つまたは複数の前に符号化された変換係数のビン２レベルに基づいて、ベクトル中のビデオデータの１つまたは複数の変換係数のビン２レベルを符号化するためのビン２コンテキストを決定することと、
コンテキストベースエントロピー符号化プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを符号化することと、
を行わせる、ビデオ符号化プロセスのための命令を記憶したコンピュータ可読記憶媒体。
【請求項２８】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
前記ベクトル中の１つまたは複数の前に符号化された変換係数の前記ビン２レベルに基づいて、前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定することと、
を前記１つまたは複数のプロセッサに行わせるための命令をさらに備える、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記コンテキストベースエントロピー符号化プロセスは、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）プロセスである、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記１つまたは複数のプロセッサに、
５つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定すること、
を行わせるための命令をさらに備える、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記１つまたは複数のプロセッサに、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に符号化された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に符号化された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に符号化された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に符号化された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
を行わせるための命令をさらに備える、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項３２】
ビデオ復号プロセスにおいてビデオデータの変換係数を復号する方法であって、前記方法はビデオデコーダが実行し、
変換ユニット中の１つまたは複数の前に復号された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを決定することと、
コンテキストベースエントロピー復号プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを復号することと、
を備える、方法。
【請求項３３】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することをさらに備え、
前記ビン２コンテキストを決定することは、前記ベクトル中の１つまたは複数の前に復号された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定することを備える、請求項３２に記載の方法。
【請求項３４】
前記コンテキストベースエントロピー復号プロセスはコンテキスト適応型バイナリ算術復号（ＣＡＢＡＣ）プロセスである、請求項３２に記載の方法。
【請求項３５】
前記ビン２コンテキストを決定することは、５つのビン２コンテキストを含んでいるコンテキストモデルから、前記ビン２コンテキストを決定することを備える、請求項３２に記載の方法。
【請求項３６】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
をさらに備える、請求項３５に記載の方法。
【請求項３７】
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
をさらに備える、請求項３６に記載の方法。
【請求項３８】
前記ビン２コンテキストを決定することは、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定することを備える、請求項３２に記載の方法。
【請求項３９】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
をさらに備える、請求項３８に記載の方法。
【請求項４０】
ビデオ復号プロセスにおいてビデオデータの変換係数を復号するための装置であって、
変換ユニット中の１つまたは複数の前に復号された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルを復号するためのビン２コンテキストを決定する手段と、
コンテキストベースエントロピー復号プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを復号する手段と、
を備える、装置。
【請求項４１】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段をさらに備え、
前記ビン２コンテキストを前記決定する手段は、前記ベクトル中の１つまたは複数の前に復号された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定する手段を備える、請求項４０に記載の装置。
【請求項４２】
前記コンテキストベースエントロピー復号プロセスはコンテキスト適応型バイナリ算術復号（ＣＡＢＡＣ）プロセスである、請求項４０に記載の装置。
【請求項４３】
前記ビン２コンテキストを決定する手段は、５つのビン２コンテキストを含んでいるコンテキストモデルから、前記ビン２コンテキストを決定する手段を備える、請求項４０に記載の装置。
【請求項４４】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段と、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定する手段と、
をさらに備える、請求項４０に記載の装置。
【請求項４５】
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定する手段と、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第５のビン２コンテキストを決定する手段と、
をさらに備える、請求項４４に記載の装置。
【請求項４６】
前記ビン２コンテキストを決定する手段は、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定する手段を含む、請求項４０に記載の装置。
【請求項４７】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査する手段と、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定する手段と、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定する手段と、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定する手段と、
をさらに備える、請求項４６に記載の装置。
【請求項４８】
ビデオ復号プロセスにおいて変換係数を復号するための装置であって、
ビデオデータを記憶するように構成されたメモリと、
変換ユニット中の１つまたは複数の前に復号された変換係数のビン２レベルに基づいて、ベクトル中の前記ビデオデータの１つまたは複数の変換係数のビン２レベルを復号するためのビン２コンテキストを決定することと、
コンテキストベースエントロピー復号プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを復号することと、
を行うように構成されたビデオデコーダと、
を備える、装置。
【請求項４９】
前記ビデオデコーダは、走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査するようにさらに構成され、
前記ビン２コンテキストを前記決定するために前記ビデオデコーダは、前記ベクトル中の１つまたは複数の前に復号された変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定するようにさらに構成される、請求項４８に記載の装置。
【請求項５０】
前記コンテキストベースエントロピー復号プロセスはコンテキスト適応型バイナリ算術復号（ＣＡＢＡＣ）プロセスである、請求項４８に記載の装置。
【請求項５１】
前記ビデオデコーダは、５つのビン２コンテキストを含んでいるコンテキストモデルから、ビン２コンテキストを決定するようにさらに構成された、請求項４８に記載の装置。
【請求項５２】
前記ビデオデコーダは、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項４８に記載の装置。
【請求項５３】
前記ビデオデコーダは、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項５２に記載の装置。
【請求項５４】
前記ビデオデコーダは、４つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定することを行うようにさらに構成された、請求項４８に記載の装置。
【請求項５５】
前記ビデオデコーダは、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つ以上の前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
を行うようにさらに構成された、請求項５４に記載の装置。
【請求項５６】
前記ビデオデコーダはプロセッサにおいて実装され、ここにおいて、前記装置は、ワイヤレス通信デバイスであり、前記ワイヤレス通信デバイスはさらに、
送信機と、
前記ビデオデータを受信するように構成された受信機と、
を備える、請求項４８に記載の装置。
【請求項５７】
前記ワイヤレス通信デバイスはセルラー電話であり、ここにおいて、前記受信機は、前記ビデオデータを受信し、前記受信されたビデオデータをセルラー通信規格に従って復調するように構成された、請求項４８に記載の装置。
【請求項５８】
１つまたは複数のプロセッサによって実行されたとき、前記１つまたは複数のプロセッサに、
変換ユニット中の１つまたは複数の前に復号された変換係数のビン２レベルに基づいて、ベクトル中のビデオデータの１つまたは複数の変換係数のビン２レベルを復号するためのビン２コンテキストを決定することと、
コンテキストベースエントロピー復号プロセスを使用して、前記決定されたビン２コンテキストに従って前記ベクトル中の前記１つまたは複数の変換係数の前記ビン２レベルを復号することと、
を行わせる、ビデオ復号プロセスのための命令を記憶したコンピュータ可読記憶媒体。
【請求項５９】
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
前記ベクトル中の１つまたは複数の前に復号された変換係数の前記ビン２レベルに基づいて、前記ベクトル中の現在変換係数のための前記ビン２コンテキストを決定することと、
を前記１つまたは複数のプロセッサに行わせるための命令をさらに備える、請求項５８に記載のコンピュータ可読記憶媒体。
【請求項６０】
前記コンテキストベースエントロピー復号プロセスは、コンテキスト適応型バイナリ算術復号（ＣＡＢＡＣ）プロセスである、請求項５８に記載のコンピュータ可読記憶媒体。
【請求項６１】
前記１つまたは複数のプロセッサに、
５つのビン２コンテキストを含んでいるコンテキストモデルから前記ビン２コンテキストを決定すること、
を行わせるための命令をさらに備える、請求項５８に記載のコンピュータ可読記憶媒体。
【請求項６２】
前記１つまたは複数のプロセッサに、
走査順序に従って、変換係数のブロックの少なくとも一部分を前記ベクトルへと走査することと、
現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の１つの前に復号された変換係数によって先行される場合、第２のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の２つの前に復号された変換係数によって先行される場合、第３のビン２コンテキストを決定することと、
前記現在変換係数が、２の値を有する、前記走査順序において前記ベクトル中の３つ以上の前に復号された変換係数によって先行される場合、第４のビン２コンテキストを決定することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序において前記ベクトル中の任意の前に復号された変換係数によって先行される場合、第５のビン２コンテキストを決定することと、
を行わせるための命令をさらに備える、請求項５８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本出願は、その各々の全体が参照により本明細書に組み込まれる、２０１１年６月２９日に出願された米国仮出願第６１／５０２，７３７号および２０１１年９月２９日に出願された米国仮出願第６１／５４０，９２４号の利益を主張する。
【技術分野】
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスにおいてエントロピーコーディングを実行するための技法に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信、受信および記憶するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、現在開発中の高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および／または時間的予測を含む。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化（Ｉ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。インターコード化（ＰまたはＢ）フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロック中の参照サンプルに対する空間的予測、あるいは他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。
【０００５】
[0005]インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、特定の順序で走査されて、エントロピーコーディングのための変換係数の１次元ベクトルが生成され得る。
【発明の概要】
【０００６】
[0006]概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示では、ビデオコーディングプロセスによって生成される残差変換係数のエントロピーコーディングのための技法について説明する。
【０００７】
[0007]本開示の一例では、ビデオコーディングプロセスにおいて変換係数をコーディングする方法は、走査順序に従ってベクトルへの変換係数を走査することと、エントロピーコーディングプロセスに従ってベクトル中の各変換係数のビン１レベルをコーディングするためのビン１コンテキストを選択することと、選択されたビン１コンテキストに従ってベクトル中の各変換係数のビン１レベルをコーディングすることと、エントロピーコーディングプロセスに従ってベクトル中の各変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択することと、選択されたビン２コンテキストに従ってベクトル中の各変換係数のビン２レベルをコーディングすることとを備え、ビン２コンテキストを選択することは、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択することを備える。
【０００８】
[0008]１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】有意性マップ（significance map）コーディングと係数レベルコーディングとのための逆方向走査順序を示す概念図。
【図２】コンテキスト適応型バイナリ算術コーディングプロセスにおける例示的なコンテキスト選択を示す概念図。
【図３】係数レベルコーディングのための例示的な走査順序を示す概念図。
【図４】例示的なビデオ符号化および復号システムを示すブロック図。
【図５】例示的なビデオエンコーダを示すブロック図。
【図６】例示的なビデオデコーダを示すブロック図。
【図７】本明細書で説明するシステムおよび方法による例示的な方法を示す流れ図。
【図８】本明細書で説明するシステムおよび方法による例示的な方法を示す流れ図。
【発明を実施するための形態】
【００１０】
[0017]概して、本開示では、ビデオデータをコーディングするための技法について説明する。特に、本開示では、ビデオコーディングプロセスによって生成される残差変換係数のエントロピーコーディングのための技法について説明する。
【００１１】
[0018]デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するためのビデオ圧縮技法を実装する。ビデオ圧縮は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（フレーム内）予測および／または時間的（フレーム間）予測技法を適用し得る。
【００１２】
[0019]ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって開発されている新しいビデオコーディング規格、すなわち、高効率ビデオコーディング（ＨＥＶＣ）がある。「ＨＥＶＣワーキングドラフト６」または「ＷＤ６」と呼ばれる、ＨＥＶＣ規格の最近のドラフトは、２０１２年６月１日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zipからダウンロード可能である、ドキュメントＪＣＴＶＣ−Ｈ１００３、Ｂｒｏｓｓら、「High efficiency video coding (HEVC) text specification draft 6」、Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）  ｏｆ  ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３  ａｎｄ  ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、８ｔｈ  Ｍｅｅｔｉｎｇ：  Ｓａｎ  Ｊｏｓｅ、Ｃａｌｉｆｏｒｎｉａ、ＵＳＡ、Ｆｅｂｒｕａｒｙ、２０１２に記載されている。
【００１３】
[0020]現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格に従うビデオコーディングでは、ビデオフレームが、コーディングユニットと、予測ユニットと、変換ユニットとに区分され得る。コーディングユニット（ＣＵ）は、概して、ビデオ圧縮のために様々なコーディングツールが適用される基本ユニットとして働く画像領域を指す。コーディングユニットは、一般に矩形であり、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４などの他のビデオコーディング規格の下でのいわゆるマクロブロックと同様であると見なされ得る。
【００１４】
[0021]より良好なコーディング効率を達成するために、コーディングユニットは、ビデオコンテンツに応じて可変サイズを有し得る。さらに、コーディングユニットは、予測または変換のためにより小さいブロックに分割され得る。具体的には、各コーディングユニットは、予測ユニットと変換ユニットとにさらに区分され得る。予測ユニットは、Ｈ．２６４規格などの他のビデオコーディング規格の下でのいわゆるパーティションと同様であると見なされ得る。変換ユニットは、変換係数を生成するために変換が適用される残差データのブロックを指す。
【００１５】
[0022]コーディングユニットは、通常、Ｙとして示される１つのルミナンス成分と、ＵおよびＶとして示される２つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、サンプルの数で表されるＵおよびＶ成分のサイズは、Ｙ成分のサイズと同じであるかまたはそれとは異なり得る。
【００１６】
[0023]ブロック（たとえば、ビデオデータの予測ユニット）をコーディングするために、ブロックの予測子が最初に導出される。予測子は、イントラ（Ｉ）予測（すなわち、空間的予測）あるいはインター（ＰまたはＢ）予測（すなわち、時間的予測）のいずれかを通して導出され得る。したがって、いくつかの予測ユニットは、同じフレーム中の隣接参照ブロックに対する空間的予測を使用してイントラコーディング（Ｉ）され得、他の予測ユニットは、他のフレーム中の参照ブロックに対してインターコーディング（ＰまたはＢ）され得る。
【００１７】
[0024]予測子が識別されると、元のビデオデータブロックとそれの予測子との間の差分が計算される。この差分は、予測残差とも呼ばれ、コーディングされるべきブロックと、参照ブロック、すなわち、予測子との間のピクセル差分を指す。より良好な圧縮を達成するために、予測残差は、概して、たとえば、離散コサイン変換（ＤＣＴ）、整数変換、カルーネンレーベ（Karhunen-Loeve）（Ｋ−Ｌ）変換、または他の変換を使用して変換され得る。
【００１８】
[0025]変換は、空間領域におけるピクセル差分値を、変換領域、たとえば、周波数領域における変換係数に変換する。変換係数は、通常、各変換ユニットについて２次元（２Ｄ）アレイに構成される。さらなる圧縮のために、変換係数は量子化され得る。エントロピーコーダは、次いで、量子化された変換係数に、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：Context Adaptive Variable Length Coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context Adaptive Binary Arithmetic Coding）、可変長コードワード（Ｖ２Ｖ）を用いたコンテキスト適応型確率間隔区分エントロピー（ＰＩＰＥ：probability interval partitioning entropy）コーディングなどのエントロピーコーディングを適用する。
【００１９】
[0026]概して、ＣＡＢＡＣを使用してデータシンボルをコーディングすることは、以下のステップのうちの１つまたは複数を伴う。
【００２０】
（１）２値化。コーディングされるべきシンボルが非２値化値である場合、そのシンボルは、いわゆる「ビン」のシーケンスにマッピングされる。各ビンは「０」または「１」の値を有することができる。
【００２１】
（２）コンテキスト割当て。（標準モードにおける）各ビンはコンテキストに割り当てられる。コンテキストモデルは、前に符号化されたシンボルの値またはビンナンバ（number）など、ビンについて利用可能な情報に基づいて所与のビンのコンテキストがどのように計算されるかを決定する。
【００２２】
（３）ビン符号化。ビンは算術エンコーダを用いて符号化される。ビンを符号化するために、算術エンコーダは、入力として、ビンの値の確率、すなわち、ビンの値が「０」に等しい確率と、ビンの値が「１」に等しい確率とを必要とする。各コンテキストの（推定された）確率は、「コンテキスト状態」と呼ばれる整数値によって表される。各コンテキストはある状態を有し、したがって、その状態（すなわち、推定された確率）は、１つのコンテキストに割り当てられたビンに対して同じであり、コンテキスト間で異なる。
【００２３】
（４）状態更新。選択されたコンテキストの確率（状態）は、ビンの実際のコード化値に基づいて更新される（たとえば、ビン値が「１」であった場合、「１」の確率が増加される）。
【００２４】
[0027]確率間隔区分エントロピーコーディング（ＰＩＰＥ：probability interval partitioning entropy coding）は、算術コーディングの原理と同様の原理を使用し、したがって、本開示の技法をも利用することができることに留意されたい。
【００２５】
[0028]Ｈ．２６４／ＡＶＣおよびＨＥＶＣにおけるＣＡＢＡＣは状態を使用し、各状態は暗黙的に確率に関係する。シンボル（「０」または「１」）の確率が直接使用される、すなわち、確率（またはそれの整数バージョン）が状態である、ＣＡＢＡＣの変形態が存在する。たとえば、ＣＡＢＡＣのそのような変形態は、以下において「ＪＣＴＶＣ−Ａ１１４」と呼ぶ、「Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor」、ＪＣＴＶＣ−Ａ１１４、１st  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｄｒｅｓｄｅｎ、ＤＥ、Ａｐｒｉｌ  ２０１０、および、以下において「ＪＣＴＶＣ−Ｆ２５４」と呼ぶ、Ａ．  ＡｌｓｈｉｎおよびＥ．  Ａｌｓｈｉｎａ、「Multi-parameter probability update for CABAC」、ＪＣＴＶＣ−Ｆ２５４、６th  ＪＣＴ−ＶＣ  Ｍｅｅｔｉｎｇ、Ｔｏｒｉｎｏ、ＩＴ、Ｊｕｌｙ  ２０１１に記載されている。
【００２６】
[0029]量子化された変換係数のブロックをエントロピーコーディングするために、ブロック中の量子化された変換係数の２次元（２Ｄ）アレイが、特定の走査順序に従って変換係数の順序付き１次元（１Ｄ）アレイ、すなわちベクトルにおいて処理されるように、走査プロセスが通常実行される。エントロピーコーディングは変換係数の１Ｄ順序で適用される。変換ユニット中の量子化された変換係数の走査は、エントロピーコーダのために変換係数の２Ｄアレイをシリアル化する。有意（すなわち、非０）係数の位置を示すための有意性マップが生成され得る。走査は、有意（すなわち、非０）係数のレベルを走査するために、および／または有意係数の符号をコーディングするために適用され得る。
【００２７】
[0030]一例として、ＤＣＴでは、しばしば、２Ｄ変換ユニットの左上隅（すなわち、低周波数領域）のほうが非０係数の確率がより高くなる。係数のシリアル化ランの一方の端部において非０係数を一緒にグループ化する確率を増加させる方法で係数を走査して、０値係数がシリアル化ベクトルの別の端部のほうへ一緒にグループ化され、ゼロのランとしてより効率的にコーディングされることを可能にすることが望ましいことがある。この理由で、走査順序は効率的なエントロピーコーディングのために重要であり得る。
【００２８】
[0031]一例として、ＨＥＶＣ規格において量子化変換係数を走査する際に使用するために、いわゆる対角（または波面（wavefront））走査順序が採用されている。代替的に、ジグザグ、水平、垂直、または他の走査順序が使用され得る。変換および量子化を通して、上述のように、変換がＤＣＴである例では、非０変換係数は、概して、ブロックの左上領域のほうの低周波数エリアに位置する。その結果、最初に左上領域を横断し得る対角走査プロセスの後に、非０変換係数は、通常、走査の前部分に位置する可能性が高くなる。最初に右下領域から横断する対角走査プロセスの場合、非０変換係数は、通常、走査の後ろ部分に位置する可能性が高くなる。
【００２９】
[0032]図１に、変換係数のブロック、すなわち、変換ブロックのための逆方向走査順序の例を示す。変換ブロックは、たとえば、離散コサイン変換（ＤＣＴ）など、変換を使用して形成され得る。逆方向対角パターン９、逆方向ジグザグパターン２９、逆方向垂直パターン３１、および逆方向水平パターン３３の各々は、変換ブロックの右下隅におけるより高い周波数の係数から、変換ブロックの左上隅におけるより低い周波数の係数に進むことに留意されたい。
【００３０】
[0033]Ｈ．２６４および新生のＨＥＶＣ規格では、ＣＡＢＡＣエントロピーコーダが使用されるとき、ブロック中の有意係数（すなわち、非０変換係数）の位置は、係数のレベルより前に符号化される。有意係数のロケーションをコーディングするプロセスは、有意性マップコーディングと呼ばれる。有意性マップは１および０のマップであり、１は有意係数のロケーションを示す。有意性マップは、一般に、高い割合のビデオビットレートを必要とする。
【００３１】
[0034]有意性マップが符号化された後に、各変換係数（すなわち、係数値）のレベル情報（絶対レベルおよび符号）が符号化される。一例では、絶対変換係数レベルのコーディングプロセスは、順方向ジグザグ走査を使用することによって８×８以上のサイズの各方形（または矩形）ブロックを４×４サブブロックの順序付きセット（たとえば、ベクトル）上にマッピングしながら、逆方向ジグザグ走査において１サブブロック内の変換係数レベルを処理することを含む。図３に、変換係数のレベル情報（すなわち、絶対値）を符号化するために従われる走査順序の一例を示す。他の例では、サブブロック内の変換係数レベル情報は、水平走査、垂直走査、対角走査など、他の走査パターンを使用して処理される。ＨＥＶＣなど、いくつかのシステムは、有意性マップとレベルコーディングとのために同じ走査を使用し得る。走査は、４×４サブブロック対角走査、およびサブブロック上の対角走査であり得る。水平走査と垂直走査とが使用されるとき、いくつかの例は、水平走査と垂直走査とにも従うレベルコーディングを使用し得る。
【００３２】
[0035]変換係数のレベル情報を走査する他の例では、係数の８×８以上のサブブロック内で走査するのではなく、係数は、走査順序に沿った係数のサブセット上の逆方向走査を使用して走査される。一例として、第１のサブセットは、逆方向対角走査順序に沿った変換ユニット中の第１の１６個の係数であり得る。したがって、このプロセス中で走査される係数は、必ずしも矩形サブブロック内にあるとは限らない。これにより、選定された走査順序に沿った係数のサブセットが潜在的により相関させられるので、より高いコーディング効率が可能になる。
【００３３】
[0036]Ｈ．２６４規格において前に規定されたＣＡＢＡＣプロセスでは、４×４サブブロックの処理の後に、変換係数レベルの各々が、たとえば、ユーナリーコード（unary code）に従って、２値化されて、一連のビンが生成される。一例では、０次の指数ゴロムコード（exponential-Golomb code of 0th order）をもつ短縮ユーナリー連結コード（truncated unary concatenated code）が使用され得る。各サブブロックのＣＡＢＡＣコンテキストモデルセットは、変換係数の絶対値を符号化するｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ＿ｏｎｅシンタックス要素の第１のビンと、（第１４のビンを含み、第１４のビンまでの）すべての残りのビンとの両方のための５つのモデルをもつ、２×６個のコンテキストモデルからなる。ＨＥＶＣについての現在の提案では、コンテキストモデルの選択は、Ｈ．２６４規格について提案された元のＣＡＢＡＣプロセスの場合と同様に実行される。ただし、異なるサブブロックのためにコンテキストモデルの異なるセットが選択され得る。特に、所与のサブブロックのためのコンテキストモデルセットの選定は、１つまたは複数の前にコーディングされたサブブロックのいくつかの統計値に依存する。ＨＥＶＣについての１つの現在の提案では、ビン１とビン２とのためにＣＡＢＡＣが使用されるが、残りのビンは、バイパスモードで指数ゴロムコードをもつライスゴロム結合コード（Rice-Golomb concatenated code）を使用する。
【００３４】
[0037]この手法は、表１および表２において以下で示すように分配された１０個のコンテキストの６つのセットという、６０個のコンテキストを使用する。４×４ブロックの場合、１０個のモデルが使用され得、５つのモデルはビン１のために、５つのモデルはビン２〜１４のために使用され得る。ＨＥＶＣのためのＣＡＢＡＣのいくつかの実施形態では、ビン１のための５つのモデルと、ビン２のための５つのモデルとがあり、残りのビン（たとえば、ビン３〜１４）は、それらが「バイパス」モードでコーディングされるので固定確率モデルを使用することに留意されたい。
【表１】
0005869115.tif 000002
【００３５】
[0038]前の４×４サブブロック中の１よりも大きい係数の数に応じて、これらの１０個のモデルの６つの異なるセットがある。表２に、各コンテキストセットの選択基準を示す。
【表２】
0005869115.tif 000003
【００３６】
[0039]ＨＥＶＣのドラフトでは、係数レベルのビン２のコーディングのためのコンテキストは、前にコーディングされた係数のビン１値に基づいて選択されるが（表１）、前にコーディングされた係数のビン２値に基づいて選択されない。これは、ビン１中の前にコーディングされた係数に基づいて選択される、ビン１のコンテキストとは異なる。すなわち、ビン１の特定の係数のために使用されるコンテキストは、ビン１中で前にコーディングされたトレイリング（trailing）「１」の数に依存する。ビン２コンテキストの選択基準は、利用可能なすべての関係するデータ（すなわち、前にコーディングされたビン２値）を利用するとは限らず、むしろ、１よりも大きい、前にコーディングされた係数の数だけに依拠する。この情報はビン１コーディングから知られるので、ビン２コンテキストの選択は、ビン２コーディングからの情報を使用しない。したがって、ビン２コンテキストの導出の選択基準は、その選択基準を用いてＣＡＢＡＣを実行するとき、潜在的に最適でないパフォーマンスを生じる。
【００３７】
[0040]本開示では、上記で説明した欠点の一部を減らすかまたはなくし得るいくつかの異なる特徴について説明する。概して、本開示は、ビン２走査において前にコーディングされた係数のコード化レベルに基づいてビン２コンテキストを導出することを提案する。本開示ではＣＡＢＡＣプロセスに関して説明するが、本開示の技法は、コンテキストモデルを利用する任意のエントロピーコーディングプロセスに適用可能である。
【００３８】
[0041]本開示の一例では、コンテキストの導出は、上記の表１に示すビン１に関して同様の様式であるが、トレイリング（trailing）「１」ではなく「２」の数を計数して行われ得る。表３にこの例を示す。ビン２走査において現在係数に適用すべきコンテキストを選択するために、２の値をもつ、前に符号化されたビン２係数の数が使用される。コンテキスト１は、２の値を有するビン２走査における初期係数のために使用される。コンテキスト２は、ただ１つの前にコーディングされた係数が、ビン２走査において２の値を有するものとしてコーディングされた係数のために使用される。コンテキスト３は、ただ２つの前にコーディングされた係数が、ビン２走査において２の値を有するものとしてコーディングされた係数のために使用される。コンテキスト４は、３つ以上の前にコーディングされた係数が、ビン２走査において２の値を有するものとしてコーディングされた係数のために使用される。コンテキスト０は、２よりも大きい値をもつ係数がビン２走査においてコーディングされた後、すべての後続の係数のために使用される。
【表３】
0005869115.tif 000004
【００３９】
[0043]表４に、ただ４つのコンテキストを有するビン２コンテキストモデルの代替実施形態を示す。
【表４】
0005869115.tif 000005
【００４０】
[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]ビデオエンコーダ２０およびビデオデコーダ３０は、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００６７】
[0071]図４には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００６８】
[0072]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００６９】
[0073]ビデオエンコーダ２０は、ビデオ符号化プロセスにおけるエントロピーコーディングのための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ３０は、ビデオコーディングプロセスにおけるエントロピーコーディングのためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指し得る。
【００７０】
[0074]ビデオコーディングプロセスにおいて変換係数をコーディングする例示的な方法は、ビデオエンコーダ２０およびビデオデコーダ３０によって実装され得る。例示的な方法では、ビデオエンコーダ２０またはビデオデコーダは、エントロピーコーディングプロセスに従ってベクトル中の各変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択するように構成され得る。ビデオエンコーダ２０またはビデオデコーダ３０は、選択されたビン２コンテキストに従ってベクトル中の各変換係数のビン２レベルをコーディングし得る。ビン２コンテキストを選択することは、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択することを含み得る。
【００７１】
[0075]以下の図５は、本開示で説明するエントロピーコーディングのための技法を使用し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０について、例示のためにＨＥＶＣコーディングのコンテキストにおいて説明するが、変換係数の走査を必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ２０は、ビデオフレーム内のＣＵのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指し得る。
【００７２】
[0076]図５に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図８の例では、ビデオエンコーダ２０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測モジュール４６と、参照フレームバッファ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。図５に示す変換モジュール５２は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、ＣＵの変換ユニット（ＴＵ）と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図５に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。
【００７３】
[0077]符号化プロセス中に、ビデオエンコーダ２０は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット（ＬＣＵ）に分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照フレーム中の１つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。
【００７４】
[0078]モード選択ユニット４０は、たとえば、各モードについての誤差（すなわち、ひずみ）結果に基づいて、コーディングモードのうちの１つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック（たとえば、予測ユニット（ＰＵ））を、残差ブロックデータを生成するために加算器５０に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器６２に与える。加算器６２は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール６０からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはＩフレームに指定され得、Ｉフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット４２によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール４６は、ＰフレームまたはＢフレーム中のブロックのイントラ予測符号化を実行し得る。
【００７５】
[0079]動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定（または動き探索）は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット４２は、予測ユニットを参照フレームバッファ６４に記憶された参照フレームの参照サンプルと比較することによってインターコード化フレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和（ＳＡＤ：sum of absolute difference）、２乗差分和（ＳＳＤ：sum of squared difference）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされているＰＵを含むＣＵの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック（たとえば、コーディングユニット）境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【００７６】
[0080]動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット４４は、たとえば、ＰＵの動きベクトルによって識別される参照サンプルを取り出すことによって、現在ＣＵの予測ユニットについての予測値を計算し得る。
【００７７】
[0081]イントラ予測モジュール４６は、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測モジュール４６は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測モジュール４６は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール４６は、符号化されているＣＵのサイズに基づいて、一定数の方向性予測モード、たとえば、３５個の方向性予測モードで構成され得る。
【００７８】
[0082]イントラ予測モジュール４６は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をＰＵ中の１つまたは複数のピクセル位置に適用するための機能を含み得る。ＰＵ中のすべてのピクセル位置の値が計算されると、イントラ予測ユニット４６は、ＰＵと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール４６は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール４６は、次いで、ＰＵを加算器５０に送り得る。
【００７９】
[0083]ビデオエンコーダ２０は、コーディングされている元のビデオブロックから、動き補償ユニット４４またはイントラ予測モジュール４６によって計算された予測データを減算することによって残差ブロックを形成する。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の２次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するＰＵ中のピクセルの数と同じである。残差ブロック中の値は、ＰＵ中のコロケート（co-located）ピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【００８０】
[0084]変換モジュール５２は、残差ブロックから１つまたは複数の変換ユニット（ＴＵ）を形成し得る。変換モジュール５２は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、１つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール５２は、次いで、選択された変換をＴＵに適用して、変換係数の２次元アレイを備えるビデオブロックを生成する。変換モジュール５２は、上記で説明した本開示の技法に従って変換パーティションを選択し得る。さらに、変換モジュール５２は、選択された変換パーティションを符号化ビデオビットストリーム中でシグナリングし得る。
【００８１】
[0085]変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット５６が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット５６が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット５４などの他の処理ユニットが走査を実行し得ることを理解されたい。
【００８２】
[0086]変換係数が１次元アレイに走査されると、エントロピー符号化ユニット５６は、ＣＡＶＬＣ、ＣＡＢＡＣ、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【００８３】
[0087]ＣＡＶＬＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構成され得る。このようにして、ＶＬＣを使用すると、たとえば、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビット節約が達成され得る。
【００８４】
[0088]ＣＡＢＡＣを実行するために、エントロピー符号化ユニット５６は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非０であるか否かに関係し得る。エントロピー符号化ユニット５６はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット５６は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および／または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。本開示の例によれば、エントロピー符号化ユニット５６は、エントロピーコーディングプロセスに従ってベクトル中の各変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択するように構成され得る。エントロピー符号化ユニット５６は、選択されたビン２コンテキストに従ってベクトル中の各変換係数のビン２レベルをコーディングし得る。ビン２コンテキストを選択することは、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択することを含み得る。
【００８５】
[0089]エントロピー符号化ユニット５６によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ３０などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【００８６】
[0090]場合によっては、エントロピー符号化ユニット５６またはビデオエンコーダ２０の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット５６は、ＣＵおよびＰＵのコード化ブロックパターン（ＣＢＰ：coded block pattern）値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は係数のランレングスコーディングを実行し得る。
【００８７】
[0091]逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームバッファ６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを、動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームバッファ６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８８】
[0092]以下の図６は、符号化ビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図８の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測モジュール７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームバッファ８２と、加算器８０とを含む。ビデオデコーダ３０は、いくつかの例では、ビデオエンコーダ２０（図５参照）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【００８９】
[0093]エントロピー復号ユニット７０は、変換係数の１次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ２０によって使用されたエントロピーコーディング（たとえば、ＣＡＢＡＣ、ＣＡＶＬＣなど）に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【００９０】
[0094]いくつかの例では、エントロピー復号ユニット７０（または逆量子化ユニット７６）は、ビデオエンコーダ２０のエントロピー符号化ユニット５６（または量子化ユニット５４）によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット７６において実行され得るが、走査については、例示のために、エントロピー復号ユニット７０によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ３０のエントロピー復号ユニット７０、逆量子化ユニット７６、および他のユニットの構造および機能は互いに高度に統合され得る。本開示の例によれば、エントロピー復号ユニット７０は、エントロピーコーディングプロセスに従ってベクトル中の各変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択するように構成され得る。エントロピー復号ユニット７０は、選択されたビン２コンテキストに従ってベクトル中の各変換係数のビン２レベルをコーディングし得る。ビン２コンテキストを選択することは、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択することを含み得る。
【００９１】
[0095]逆量子化ユニット７６は、ビットストリーム中で与えられ、エントロピー復号ユニット７０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、たとえば、ＨＥＶＣのために提案されたプロセスまたはＨ．２６４復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ＣＵについてビデオエンコーダ２０によって計算される量子化パラメータＱＰの使用を含み得る。逆量子化ユニット７６は、係数が１次元アレイから２次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【００９２】
[0096]逆変換モジュール７８は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール７８は、ビデオエンコーダ２０からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの１つまたは複数のコーディング特性から変換を推論することによって、逆変換を決定し得る。いくつかの例では、逆変換モジュール７８は、現在ブロックを含むＬＣＵのための４分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を決定し得る。代替的に、変換は、ＬＣＵ４分木中のリーフノードＣＵのためのＴＵ４分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール７８は、逆変換モジュール７８が、復号されている現在ブロックの変換係数に２つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【００９３】
[0097]さらに、逆変換ユニットは、逆変換を適用して、本開示の上記で説明した技法に従って変換ユニットパーティションを生成し得る。
【００９４】
[0098]イントラ予測モジュール７４は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【００９５】
[0099]取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償ユニットは現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【００９６】
[0100]動き補償ユニット７２は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子がシンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット７２は、受信されたシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【００９７】
[0101]さらに、動き補償ユニット７２およびイントラ予測モジュール７４は、ＨＥＶＣの例では、（たとえば、４分木によって与えられる）シンタックス情報の一部を使用して、符号化ビデオシーケンスの（１つまたは複数の）フレームを符号化するために使用されたＬＣＵのサイズを決定し得る。動き補償ユニット７２およびイントラ予測モジュール７４はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各ＣＵがどのように分割されるか（および、同様に、サブＣＵがどのように分割されるか）を記述する分割情報を決定し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード（たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード）と、各インター符号化ＰＵについての１つまたは複数の参照フレーム（および／またはそれらの参照フレームの識別子を含んでいる参照リスト）と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【００９８】
[0102]加算器８０は、残差ブロックを、動き補償ユニット７２またはイントラ予測モジュール７４によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。復号ビデオブロックは、次いで、参照フレームバッファ８２に記憶され、参照フレームバッファ８２は、その後の動き補償のための参照ブロックを与え、また、（図４のディスプレイデバイス３２などの）ディスプレイデバイス上での提示のために復号ビデオを生成する。
【００９９】
[0103]図７は、本明細書で説明するシステムおよび方法による、ビデオコーディングプロセスにおいて変換係数を符号化する例示的な方法を示す流れ図である。図７の方法は、たとえば、ビデオエンコーダ２０によって実装され得る。ステップ５００において、ビデオエンコーダ２０は、走査順序に従ってベクトルへの変換係数のブロックの少なくとも一部分を走査するように構成される。
【０１００】
[0104]ステップ５０２において、ビデオエンコーダ２０は、エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン１レベルをコーディングするためのビン１コンテキストを選択するように構成される。エントロピーコーディングプロセスはＣＡＢＡＣプロセスであり得る。
【０１０１】
[0105]ステップ５０４において、ビデオエンコーダ２０は、選択されたビン１コンテキストに従ってベクトル中の１つまたは複数の変換係数のビン１レベルを符号化するように構成される。ビデオエンコーダ２０は、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン１レベルに基づいてベクトル中の現在変換係数のためのビン１コンテキストを選択するように構成され得る。いくつかの例では、ビン１とビン２とのコーディングはインターリーブされ得る。
【０１０２】
[0106]ステップ５０６において、ビデオエンコーダ２０は、エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択するように構成される。ビデオエンコーダ２０は、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択するように構成され得る。ビン２コンテキストを選択することはまた、任意の数のビン２コンテキストを含んでいるコンテキストモデルからビン２コンテキストを選択することを含み得る。いくつかの具体的な例では、選択のために４つまたは５つのコンテキストがあり得る（たとえば、表３および表４参照）。さらに、ビン２コンテキストを選択することは、変換ユニット中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択することを含み得る。
【０１０３】
[0107]５つのコンテキストを含むコンテキストセットの例では、現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され得る。現在変換係数が、２よりも大きい値を有する、走査順序に沿ってベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストが選択され得る。
【０１０４】
[0108]４つのコンテキストを含むコンテキストセットの例では、現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され得る。現在変換係数が、２よりも大きい値を有する、走査順序に沿ってベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され得る。
【０１０５】
[0109]ステップ５０８において、ビデオエンコーダ２０は、選択されたビン２コンテキストに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするように構成される。
【０１０６】
[0110]図８は、本明細書で説明するシステムおよび方法による、ビデオコーディングプロセスにおいて変換係数を復号する例示的な方法を示す流れ図である。図８の方法は、たとえば、ビデオデコーダ３０によって実装され得る。
【０１０７】
[0111]ステップ６０２において、ビデオデコーダ３０は、エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン１レベルを復号するためのビン１コンテキストを選択するように構成される。エントロピーコーディングプロセスはＣＡＢＡＣプロセスであり得る。
【０１０８】
[0112]ステップ６０４において、ビデオデコーダ３０は、選択されたビン１コンテキストに従ってベクトル中の１つまたは複数の変換係数のビン１レベルを復号するように構成される。ビデオデコーダ３０は、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン１レベルに基づいてベクトル中の現在変換係数のためのビン１コンテキストを選択するように構成され得る。
【０１０９】
[0113]ステップ６０６において、ビデオデコーダ３０は、エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルを復号するためのビン２コンテキストを選択するように構成される。ビデオデコーダ３０は、ベクトル中の１つまたは複数の前にコーディングされた変換係数のビン２レベルに基づいてベクトル中の現在変換係数のためのビン２コンテキストを選択するように構成され得る。ビン２コンテキストを選択することはまた、任意の数のビン２コンテキストを含んでいるコンテキストモデルからビン２コンテキストを選択することを含み得る。いくつかの具体的な例では、選択のために４つまたは５つのコンテキストがあり得る（たとえば、表３および表４参照）。
【０１１０】
[0114]現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され得る。現在変換係数が、２よりも大きい値を有する、走査順序に沿ってベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストが選択され得る。
【０１１１】
[0115]別の例では、ビン２コンテキストを選択することは、４つのビン２コンテキストを含んでいるコンテキストモデルからビン２コンテキストを選択することを含む。
【０１１２】
[0116]別の例では、現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され得る。現在変換係数が、２の値を有する、走査順序に沿ってベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され得る。現在変換係数が、２よりも大きい値を有する、走査順序に沿ってベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され得る。
【０１１３】
[0117]ステップ６０８において、ビデオデコーダ３０は、選択されたビン２コンテキストに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするように構成される。
【０１１４】
[0118]ステップ６１０において、ビデオデコーダ３０は、走査順序に従って量子化変換係数の行列へと変換係数のブロックの少なくとも一部分を走査するように構成される。
【０１１５】
[0119]１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１１６】
[0120]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１１７】
[0121]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１１８】
[0122]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１１９】
[0123]様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  ビデオコーディングプロセスにおいて変換係数をコーディングする方法であって、
前記エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択することと、
前記選択されたビン２コンテキストに従って前記ベクトル中の１つまたは複数の変換係数の前記ビン２レベルをコーディングすることと、
を備え、
前記ビン２コンテキストを選択することは、変換ユニット中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、方法。
［２］  走査順序に従って、変換係数のブロックの少なくとも一部分をベクトルへと走査することをさらに備え、
前記ビン２コンテキストを選択することは、前記ベクトル中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、［１］に記載の方法。
［３］  前記エントロピーコーディングプロセスはＣＡＢＡＣプロセスである、［１］に記載の方法。
［４］  ビン２コンテキストを選択することは、５つのビン２コンテキストを含んでいるコンテキストモデルから、１つのビン２コンテキストを選択することを含む、［１］に記載の方法。
［５］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択される、
［４］に記載の方法。
［６］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストが選択される、［５］に記載の方法。
［７］  ビン２コンテキストを選択することは、４つのビン２コンテキストを含んでいるコンテキストモデルから１つのビン２コンテキストを選択することを含む、［１］に記載の方法。
［８］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択される、［７］に記載の方法。
［９］  前記ビデオコーディングプロセスはビデオ符号化プロセスである、［１］に記載の方法。
［１０］  前記ビデオコーディングプロセスはビデオ復号プロセスである、［１］に記載の方法。
［１１］  ビデオコーディングプロセスにおいて変換係数をコーディングするための装置であって、
エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択する手段と、
前記選択されたビン２コンテキストに従って前記ベクトル中の１つまたは複数の変換係数の前記ビン２レベルをコーディングする手段と、
を備え、
前記ビン２コンテキストを選択することは、変換ユニット中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、装置。
［１２］  走査順序に従って、変換係数のブロックの少なくとも一部分をベクトルへと走査する手段をさらに備え、
前記ビン２コンテキストを前記選択することは、前記ベクトル中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、［１１］に記載の装置。
［１３］  前記エントロピーコーディングプロセスはＣＡＢＡＣプロセスである、［１１］に記載の装置。
［１４］  ビン２コンテキストを選択する手段は、５つのビン２コンテキストを含んでいるコンテキストモデルから、１つのビン２コンテキストを選択する手段を含む、［１１］に記載の装置。
［１５］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択される、
［１４］に記載の装置。
［１６］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択され、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストが選択される、［１５］に記載の装置。
［１７］  ビン２コンテキストを選択する手段は、４つのビン２コンテキストを含んでいるコンテキストモデルからビン２コンテキストを選択する手段を含む、［１１］に記載の装置。
［１８］  前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストが選択され、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストが選択され、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択される、［１７］に記載の装置。
［１９］  ビデオコーディングプロセスにおいて変換係数をコーディングするための装置であって、
エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択することと、
前記選択されたビン２コンテキストに従って前記ベクトル中の１つまたは複数の変換係数の前記ビン２レベルをコーディングすることと、
を行うように構成されたビデオコーダを備え、
前記ビン２コンテキストを選択することは、変換ユニット中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、装置。
［２０］  前記ビデオコーダは、走査順序に従って、変換係数のブロックの少なくとも一部分をベクトルへと走査するようにさらに構成され、
前記ビン２コンテキストを前記選択することは、前記ベクトル中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、［１９］に記載の装置。
［２１］  前記エントロピーコーディングプロセスはＣＡＢＡＣプロセスである、［１９］に記載の装置。
［２２］  前記ビデオコーダは、５つのビン２コンテキストを含んでいるコンテキストモデルから、１つのビン２コンテキストを選択するようにさらに構成された、［１９］に記載の装置。
［２３］  前記ビデオコーダは、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストを選択することと、
を行うようにさらに構成された、［１９］に記載の装置。
［２４］  前記ビデオコーダは、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストを選択することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストを選択することと、
を行うようにさらに構成された、［２３］に記載の装置。
［２５］  前記ビデオコーダは、４つのビン２コンテキストを含んでいるコンテキストモデルから１つのビン２コンテキストを選択することを含む、ビン２コンテキストを選択することをさらに構成された、［１９］に記載の装置。
［２６］  前記ビデオコーダは、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストを選択することと、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストを選択することと、
を行うようにさらに構成された、［２５］に記載の装置。
［２７］  前記ビデオコーダはビデオエンコーダである、［１９］に記載の装置。
［２８］  前記ビデオコーダはビデオデコーダである、［１９］に記載の装置。
［２９］  前記ビデオコーダはプロセッサにおいて実装される、［１９］に記載の装置。
［３０］  前記プロセッサはモバイルデバイス中にある、［２９］に記載の装置。
［３１］  プロセッサによって実行されたとき、前記プロセッサに、
エントロピーコーディングプロセスに従ってベクトル中の１つまたは複数の変換係数のビン２レベルをコーディングするためのビン２コンテキストを選択することと、
前記選択されたビン２コンテキストに従って前記ベクトル中の１つまたは複数の変換係数の前記ビン２レベルをコーディングすることと、
を行わせる命令を記憶したコンピュータ可読記憶媒体であって、
前記ビン２コンテキストを選択することは、変換ユニット中の１つまたは複数の前にコーディングされた変換係数の前記ビン２レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン２コンテキストを選択することを備える、コンピュータ可読記憶媒体。
［３２］  走査順序に従って、変換係数のブロックの少なくとも一部分をベクトルへと走査すること
をプロセッサに行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［３３］  プロセッサに、
エントロピーコーディングプロセスに従って前記ベクトル中の係数を変換することと、
選択されたビン１コンテキストに従って前記ベクトル中の１つまたは複数の変換係数のビン１レベルをコーディングすることと、
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［３４］  前記プロセッサに、前記エントロピーコーディングプロセスをＣＡＢＡＣプロセスとして実施することを行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［３５］  プロセッサに、
前記ベクトル中の１つまたは複数の前にコーディングされた変換係数の前記ビン１レベルに基づいて前記ベクトル中の現在変換係数のための前記ビン１コンテキストを選択することを備える、前記ビン１コンテキストを選択すること
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読媒体。
［３６］  前記プロセッサに、
５つのビン２コンテキストを含んでいるコンテキストモデルから、１つのビン２コンテキストを選択することを含む、ビン２コンテキストを選択すること
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［３７］  プロセッサに、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つの前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の３つ以上の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストを選択することと、
を行わせるための命令をさらに備え、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第５のビン２コンテキストが選択される、［３１］に記載のコンピュータ可読記憶媒体。
［３８］  プロセッサに、
４つのビン２コンテキストを含んでいるコンテキストモデルからビン２コンテキストを選択することを含む、ビン２コンテキストを選択すること
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［３９］  プロセッサに、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の第１の変換係数である場合、第１のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の１つの前にコーディングされた変換係数によって先行される場合、第２のビン２コンテキストを選択することと、
前記現在変換係数が、２の値を有する、前記走査順序に沿って前記ベクトル中の２つ以上の前にコーディングされた変換係数によって先行される場合、第３のビン２コンテキストを選択することと、
を行わせるための命令をさらに備え、
前記現在変換係数が、２よりも大きい値を有する、前記走査順序に沿って前記ベクトル中の任意の前にコーディングされた変換係数によって先行される場合、第４のビン２コンテキストが選択される、［３１］に記載のコンピュータ可読記憶媒体。
［４０］  プロセッサに、
前記ビデオコーディングプロセスをビデオ符号化プロセスとして実施すること
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
［４１］  プロセッサに、
前記ビデオコーディングプロセスをビデオ復号プロセスとして実施すること
を行わせるための命令をさらに備える、［３１］に記載のコンピュータ可読記憶媒体。
【図１】
0005869115.tif 000006
【図２】
0005869115.tif 000007
【図３】
0005869115.tif 000008
【図４】
0005869115.tif 000009
【図５】
0005869115.tif 000010
【図６】
0005869115.tif 000011
【図７】
0005869115.tif 000012
【図８】
0005869115.tif 000013