(57)【特許請求の範囲】
【請求項１】
ビデオ符号化プロセス中に第１のビデオデータブロックに関連付けられた変換係数を符号化する方法であって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記方法が、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を符号化することと、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断することと、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を符号化するのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって前記それぞれのｘまたはｙ座標を符号化することと、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を符号化しないこととを備える、方法。
【請求項２】
第２のブロックの前記幅または前記高さのうちの１つが、前記幅または前記高さのうちの前記１つが２つのブロック位置を備えることを判断する「２」に等しい場合、前記第２のブロックの前記幅または前記高さのうちの別の１つが、前記幅または前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、
「２」に等しい、前記幅または前記高さのうちの前記１つに対応する、前記ｘまたはｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅または前記高さのうちの前記別の１つに対応する、前記ｘまたはｙ座標のうちの前記別の１つを符号化するのに使われる前記１つまたは複数のコンテキストをさらに判断することをさらに備える、請求項１に記載の方法。
【請求項３】
前記方法が、
前記ビデオデータブロックを符号化して、残差データを生成することと、
前記残差データを変換して、前記変換係数を生成することとをさらに備える、請求項１に記載の方法。
【請求項４】
ビデオ符号化プロセス中にビデオデータブロックに関連付けられた変換係数を符号化する方法であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記方法が、
前記ブロック内の非ゼロ係数の位置を識別する情報を符号化することを備え、前記情報を符号化することが、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を符号化するのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化することと、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換することとを備える、方法。
【請求項５】
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロックを転置することをさらに備え、
前記情報を符号化するのに先立って前記ブロックを転置することが、前記ブロックの前記幅が前記ブロックの高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの幅よりも大きい場合、前記ブロックを転置することのうちの１つを備える、請求項４に記載の方法。
【請求項６】
前記ブロックが第１のブロックであり、前記方法が、
第２のブロック内の非ゼロ係数の位置を識別する情報を符号化することであって、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有することをさらに備え、前記情報を符号化することが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化することを備える、請求項４に記載の方法。
【請求項７】
前記第１のブロックの幅および高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断することと、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングすることとをさらに備える、請求項６に記載の方法。
【請求項８】
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートすることをさらに備える、請求項６に記載の方法。
【請求項９】
前記ブロックが所定の数またはより少ない係数を備えるとき、前記ブロックに関連付けられたイントラ予測モードに基づいて、前記ブロックに関連付けられた走査順序として、走査順序のグループから、ある走査順序を選択することと、
前記ブロックが前記所定の数よりも多い係数を備えるとき、前記ブロックに関連付けられた前記走査順序として、固定走査順序を選択することと、
前記ブロックに関連付けられた、前記選択された走査順序を使って前記変換係数を符号化することとをさらに備える、請求項４に記載の方法。
【請求項１０】
前記所定の数の係数が６４個の係数を備える、請求項９に記載の方法。
【請求項１１】
前記走査順序グループおよび前記固定走査順序が各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備える、請求項９に記載の方法。
【請求項１２】
前記対角線走査順序が、前記ブロックの幅および高さのうちの小さい方、ならびに前記ブロックの前記幅および前記高さのうちの大きい方のうちの１つから開始して、前記ブロックを走査する、請求項１１に記載の方法。
【請求項１３】
前記ブロック内の非ゼロ変換係数の値を識別する情報を符号化することであって、
前記ブロックに関連付けられた走査順序を使って、前記ブロックに関連付けられた前記変換係数をシリアル化することと、
前記シリアル化された変換係数を、所定の数の前記シリアル化された変換係数を各々が含む１つまたは複数のグループに区分することと、
各グループ内の非ゼロ係数の値を識別する情報を符号化することとを含むことをさらに備える、請求項４に記載の方法。
【請求項１４】
前記所定の数の係数が１６個の係数を備える、請求項１３に記載の方法。
【請求項１５】
前記ブロック内の前記非ゼロ変換係数の前記値を識別する前記情報を符号化することが、前記ブロックの幅および高さのうちの少なくとも１つが、「４」の整数倍である値に等しくないとき、前記情報を符号化することを備える、請求項１３に記載の方法。
【請求項１６】
前記方法が、
前記ビデオデータブロックを符号化して、残差データを生成することと、
前記残差データを変換して、前記変換係数を生成することとをさらに備える、請求項４に記載の方法。
【請求項１７】
ビデオ符号化プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を符号化するように構成された装置であって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記装置が、
前記第１のビデオデータブロックを記憶するように構成されたビデオメモリと、
ビデオエンコーダとを備え、前記ビデオエンコーダが、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を符号化するように構成され、ここにおいて、前記ｘまたはｙ座標のうちの前記１つまたは複数を符号化するために、前記ビデオエンコーダが、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断し、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を符号化するのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって前記それぞれのｘまたはｙ座標を符号化し、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を符号化しないように構成される、装置。
【請求項１８】
前記ビデオエンコーダが、
第２のブロックの前記幅または前記高さのうちの１つが、前記幅または前記高さのうちの前記１つが２つのブロック位置を備えることを判断する「２」に等しい場合、ならびに前記第２のブロックの前記幅または前記高さのうちの別の１つが、前記幅または前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい、前記幅または前記高さのうちの前記１つに対応する、前記ｘまたはｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅または前記高さのうちの前記別の１つに対応する、前記ｘまたはｙ座標のうちの前記別の１つを符号化するのに使われる前記１つまたは複数のコンテキストをさらに判断するように構成される、請求項１７に記載の装置。
【請求項１９】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、請求項１７に記載の装置。
【請求項２０】
前記ビデオエンコーダが、
前記ビデオデータブロックを符号化して、残差データを生成し、
前記残差データを変換して、前記変換係数を生成するようにさらに構成される、請求項１７に記載の装置。
【請求項２１】
ビデオ符号化プロセス中にビデオデータブロックに関連付けられた変換係数を符号化するように構成された装置であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記装置が、
前記ビデオデータブロックを記憶するように構成されたメモリと、
ビデオエンコーダとを備え、前記ビデオエンコーダが、
前記ブロック内の非ゼロ係数の位置を識別する情報を符号化し、ここにおいて、前記情報を符号化するために、前記ビデオエンコーダが、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を符号化するのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化するように構成され、
ここにおいて、前記ビデオエンコーダが、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するようにさらに構成される、装置。
【請求項２２】
前記ビデオエンコーダが、
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロックを転置するようにさらに構成され、
前記情報を符号化するのに先立って前記ブロックを転置するために、前記ビデオエンコーダが、前記ブロックの幅が前記ブロックの前記高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの前記幅よりも大きい場合、前記ブロックを転置することのうちの１つを実施するように構成される、請求項２１に記載の装置。
【請求項２３】
前記ブロックが第１のブロックであり、前記ビデオエンコーダが、
第２のブロック内の非ゼロ係数の位置を識別する情報を符号化するようにさらに構成され、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、前記情報を符号化するために、前記ビデオエンコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化するように構成される、請求項２１に記載の装置。
【請求項２４】
前記ビデオエンコーダが、
前記第１のブロックの幅および高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断し、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするようにさらに構成される、請求項２３に記載の装置。
【請求項２５】
前記ビデオエンコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートするようにさらに構成される、請求項２３に記載の装置。
【請求項２６】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオエンコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、請求項２２に記載の装置。
【請求項２７】
前記ビデオエンコーダが、
前記ビデオデータブロックを符号化して、残差データを生成し、
前記残差データを変換して、前記変換係数を生成するようにさらに構成される、請求項２２に記載の装置。
【請求項２８】
ビデオ符号化プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を符号化するように構成されたデバイスであって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記デバイスが、
前記第１のブロックに関連付けられた走査順序に従って、前記ブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を符号化するための手段を備え、前記ｘまたはｙ座標のうちの前記１つまたは複数を符号化するための前記手段が、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断するための手段と、
前記それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、それぞれのｘまたはｙ座標を符号化するのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記それぞれのｘまたはｙ座標を符号化するための手段と、ここにおいて、符号化するための前記手段が、前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を符号化しない、を含む、デバイス。
【請求項２９】
前記ｘおよびｙ座標のうちの前記１つまたは複数を符号化するための前記手段が、
第２のブロックの前記幅または前記高さのうちの１つが「２」に等しい場合、前記幅または前記高さのうちの前記１つが２つのブロック位置を備えると判断するための手段と、前記第２のブロックの前記幅または前記高さのうちの別の１つが、前記幅または前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、
「２」に等しい、前記幅または前記高さのうちの前記１つに対応する、前記ｘまたはｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅または前記高さのうちの前記別の１つに対応する、前記ｘまたはｙ座標のうちの前記別の１つを符号化するのに使われる前記１つまたは複数のコンテキストを判断するための手段とを備える、請求項２８に記載のデバイス。
【請求項３０】
ビデオ符号化プロセス中に、ビデオデータブロックに関連付けられた変換係数を符号化するように構成されたデバイスであって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記デバイスが、
前記ブロック内の非ゼロ係数の位置を識別する情報を符号化するための手段を備え、ここにおいて、前記情報を符号化するための前記手段が、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を符号化するのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化するための手段と、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するための手段とを備える、デバイス。
【請求項３１】
前記ブロックが第１のブロックであり、
第２のブロック内の非ゼロ係数の位置を識別する情報を符号化するための手段であって、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有する手段をさらに備え、前記情報を符号化するための前記手段が、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化するための手段を備える、請求項３０に記載のデバイス。
【請求項３２】
前記第１のブロックの前記幅および前記高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断するための手段と、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするための手段とをさらに備える、請求項３１に記載のデバイス。
【請求項３３】
実行されると、１つまたは複数のプロセッサに、ビデオ符号化プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を符号化させる命令を記憶するコンピュータ可読記憶媒体であって、ここにおいて、前記第１のブロックが、幅および高さで定義される非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を符号化させ、前記１つまたは複数のプロセッサに、前記ｘまたはｙ座標のうちの前記１つまたは複数を符号化させる前記命令が、前記１つまたは複数のプロセッサに、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断させ、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を符号化するのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって前記それぞれのｘまたはｙ座標を符号化させ、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を符号化させない、コンピュータ可読記憶媒体。
【請求項３４】
実行されると、１つまたは複数のプロセッサに、ビデオ符号化プロセス中に、ビデオデータブロックに関連付けられた変換係数を符号化させる命令を記憶するコンピュータ可読記憶媒体であって、ここにおいて、前記ブロックが幅および高さで定義される非正方形状を有し、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロック内の非ゼロ係数の位置を識別する情報を符号化させ、ここにおいて、前記１つまたは複数のプロセッサに、前記情報をコーディングさせる前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を符号化するのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化させ、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換させる、コンピュータ可読記憶媒体。
【請求項３５】
前記ブロックが第１のブロックであり、前記１つまたは複数のプロセッサに、
第２のブロック内の非ゼロ係数の位置を識別する情報を符号化させる命令をさらに備え、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、前記１つまたは複数のプロセッサに、前記情報を符号化させる前記命令が、前記１つまたは複数のプロセッサに、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を符号化するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー符号化プロセスを実施することによって、前記情報を符号化させる命令を備える、請求項３４に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記１つまたは複数のプロセッサに、
前記第１のブロックの幅および高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断させ、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングさせる命令をさらに備える、請求項３５に記載のコンピュータ可読記憶媒体。
【請求項３７】
ビデオ復号プロセス中に第１のビデオデータブロックに関連付けられた変換係数を復号する方法であって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記方法が、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を復号することと、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断することと、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を復号するのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって前記それぞれのｘまたはｙ座標を復号することと、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を復号しないこととを備える、方法。
【請求項３８】
第２のブロックの前記幅または前記高さのうちの１つが「２」に等しい場合、前記幅または前記高さのうちの前記１つが２つのブロック位置を備えると判断し、前記第２のブロックの前記幅または前記高さのうちの別の１つが、「２」よりも大きい値に等しい場合、前記幅または前記高さのうちの前記別の１つが、２つより多いブロック位置を備えることを示すことと、
「２」に等しい、前記幅または前記高さのうちの前記１つに対応する、前記ｘまたはｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅または前記高さのうちの前記別の１つに対応する、前記ｘまたはｙ座標のうちの前記別の１つを復号するのに使われる前記１つまたは複数のコンテキストをさらに判断することとをさらに備える、請求項３７に記載の方法。
【請求項３９】
前記変換係数を逆変換して、残差データを生成することと、
前記残差データを復号して、前記ビデオデータブロックを生成することとをさらに備える、請求項３７に記載の方法。
【請求項４０】
ビデオ復号プロセス中にビデオデータブロックに関連付けられた変換係数を復号する方法であって、ここにおいて、前記ブロックが、幅および高さで定義される非正方形状を有し、前記方法が、
前記ブロック内の非ゼロ係数の位置を識別する情報を復号することを備え、前記情報を復号することが、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を復号するのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号化することと、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換することとを備える、方法。
【請求項４１】
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロックを転置することと、
前記情報を復号するのに先立って前記ブロックを転置することが、前記ブロックの前記幅が前記ブロックの高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの幅よりも大きい場合、前記ブロックを転置することのうちの１つをさらに備える、請求項４０に記載の方法。
【請求項４２】
前記ブロックが第１のブロックであり、前記方法が、
第２のブロック内の非ゼロ係数の位置を識別する情報を復号することをさらに備え、ここにおいて、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、ここにおいて、前記情報を復号することが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号することを備える、請求項４０に記載の方法。
【請求項４３】
前記第１のブロックの幅および高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断することと、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングすることとをさらに備える、請求項４２に記載の方法。
【請求項４４】
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートすることをさらに備える、請求項４２に記載の方法。
【請求項４５】
前記ブロックが所定の数またはより少ない係数を備えるとき、前記ブロックに関連付けられたイントラ予測モードに基づいて、前記ブロックに関連付けられた走査順序として、走査順序のグループから、ある走査順序を選択することと、
前記ブロックが前記所定の数よりも多い係数を備えるとき、前記ブロックに関連付けられた前記走査順序として、固定走査順序を選択することと、
前記ブロックに関連付けられた、前記選択された走査順序を使って前記変換係数を復号することとをさらに備える、請求項４０に記載の方法。
【請求項４６】
前記所定の数の係数が６４個の係数を備える、請求項４５に記載の方法。
【請求項４７】
前記走査順序グループおよび前記固定走査順序が各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備える、請求項４５に記載の方法。
【請求項４８】
前記対角線走査順序が、前記ブロックの幅および高さのうちの小さい方、ならびに前記ブロックの前記幅および前記高さのうちの大きい方のうちの１つから開始して、前記ブロックを走査する、請求項４７に記載の方法。
【請求項４９】
前記ブロック内の非ゼロ変換係数の値を識別する情報を復号することをさらに備え、前記復号することが、
前記ブロックに関連付けられた走査順序を使って、前記ブロックに関連付けられた前記変換係数をシリアル化することと、
前記シリアル化された変換係数を、所定の数の前記シリアル化された変換係数を各々が含む１つまたは複数のグループに区分することと、
各グループ内の非ゼロ変換係数の値を識別する情報を復号することとを含む、請求項４０に記載の方法。
【請求項５０】
前記所定の数の係数が１６個の係数を備える、請求項４９に記載の方法。
【請求項５１】
前記ブロック内の前記非ゼロ変換係数の前記値を識別する前記情報を復号することが、前記ブロックの幅および高さのうちの少なくとも１つが、「４」の整数倍である値に等しくないとき、前記情報を復号することを備える、請求項４９に記載の方法。
【請求項５２】
前記変換係数を逆変換して、残差データを生成することと、
前記残差データを復号して、前記ビデオデータブロックを生成することとをさらに備える、請求項４０に記載の方法。
【請求項５３】
ビデオ復号プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を復号するように構成された装置であって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記装置が、
前記第１のビデオデータブロックを記憶するように構成されたビデオメモリと、
ビデオデコーダとを備え、前記ビデオデコーダが、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を復号するように構成され、ここにおいて、前記ｘまたはｙ座標のうちの前記１つまたは複数を復号するために、前記ビデオデコーダが、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断し、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を復号するのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって前記それぞれのｘまたはｙ座標を復号し、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を復号しないように構成される、装置。
【請求項５４】
前記ビデオデコーダが、
第２のブロックの幅または高さのうちの１つが「２」に等しい場合、幅または高さのうちの前記１つが２つのブロック位置を備えると判断し、前記第２のブロックの幅または高さのうちの別の１つが、幅または高さのうちの前記別の１つが、２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい幅または高さのうちの前記１つに対応する、ｘまたはｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい幅または高さのうちの前記別の１つに対応する、ｘまたはｙ座標のうちの前記別の１つを復号するのに使われる前記１つまたは複数のコンテキストをさらに判断するように構成される、請求項５３に記載の装置。
【請求項５５】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、請求項５３に記載の装置。
【請求項５６】
前記ビデオデコーダが、
前記変換係数を逆変換して、残差データを生成し、
前記残差データを復号して、前記ビデオデータブロックを生成するようにさらに構成される、請求項５３に記載の装置。
【請求項５７】
ビデオ復号プロセス中にビデオデータブロックに関連付けられた変換係数を復号するように構成された装置であって、ここにおいて、前記ブロックが、幅および高さで定義される非正方形状を有し、前記装置が、
前記ビデオデータブロックを記憶するように構成されたメモリと、
前記ブロック内の非ゼロ係数の位置を識別する情報を復号するように構成されたビデオデコーダとを備え、ここにおいて、前記情報を復号するために、前記ビデオデコーダが、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を復号するのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号し、ここにおいて、前記ビデオデコーダが、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するようにさらに構成される、装置。
【請求項５８】
前記ビデオデコーダが、
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロックを転置するようにさらに構成され、
前記情報を復号するのに先立って前記ブロックを転置するために、前記ビデオデコーダが、前記ブロックの幅が前記ブロックの前記高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの前記幅よりも大きい場合、前記ブロックを転置することのうちの１つを実施するように構成される、請求項５７に記載の装置。
【請求項５９】
前記ブロックが第１のブロックであり、前記ビデオデコーダが、
第２のブロック内の非ゼロ係数の位置を識別する情報を復号するようにさらに構成され、ここにおいて、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、前記情報を復号するために、前記ビデオデコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号するように構成される、請求項５７に記載の装置。
【請求項６０】
前記ビデオデコーダが、
前記第１のブロックの幅および高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断し、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするようにさらに構成される、請求項５９に記載の装置。
【請求項６１】
前記ビデオデコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートするようにさらに構成される、請求項５９に記載の装置。
【請求項６２】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオデコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、請求項５７に記載の装置。
【請求項６３】
前記ビデオデコーダが、
前記変換係数を逆変換して、残差データを生成し、
前記残差データを復号して、前記ビデオデータブロックを生成するようにさらに構成される、請求項５７に記載の装置。
【請求項６４】
ビデオ復号プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を復号するように構成されたデバイスであって、ここにおいて、前記第１のブロックが、幅および高さによって定義された非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記デバイスが、
前記第１のブロックに関連付けられた走査順序に従って、前記ブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を復号するための手段を備え、前記ｘまたはｙ座標のうちの前記１つまたは複数を復号するための前記手段が、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断するための手段と、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を復号するのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記それぞれのｘまたはｙ座標を復号するための手段と、ここにおいて、復号するための前記手段が、前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を復号しないように構成される、を含む、デバイス。
【請求項６５】
ビデオ復号プロセス中に、ビデオデータブロックに関連付けられた変換係数を復号するように構成されたデバイスであって、ここにおいて、前記ブロックが、幅および高さで定義される非正方形状を有し、前記デバイスが、
前記ブロック内の非ゼロ係数の位置を識別する情報を復号するための手段を備え、前記情報を復号するための前記手段が、
前記ブロックの前記非ゼロ係数のｘ座標およびｙ座標に少なくとも部分的に基づいて、前記情報を復号するのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号するための手段と、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するための手段とを備える、装置。
【請求項６６】
実行されると、１つまたは複数のプロセッサに、ビデオ復号プロセス中に、第１のビデオデータブロックに関連付けられた変換係数を復号させる命令を記憶するコンピュータ可読記憶媒体であって、ここにおいて、前記第１のブロックが幅および高さで定義される非正方形状を有し、前記ブロックの前記幅または高さのうちの１つが、「１」のブロック位置に等しく、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックに関連付けられた走査順序に従って、前記第１のブロック内の最後の非ゼロ係数の位置を示すｘまたはｙ座標のうちの１つまたは複数を復号させ、ここにおいて、前記１つまたは複数のプロセッサに、前記ｘまたはｙ座標のうちの前記１つまたは複数を復号させる前記命令が、前記１つまたは複数のプロセッサに、
前記幅または前記高さのうちの前記１つが単一のブロック位置を備えると判断させ、
それぞれのｘまたはｙ座標に対応する前記単一のブロック位置をもたない前記ブロックの前記幅または前記高さに少なくとも部分的に基づいて、前記それぞれのｘまたはｙ座標を復号するのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって前記それぞれのｘまたはｙ座標を復号させ、
前記単一のブロック位置を有する前記ブロックの前記幅または高さに対応する前記それぞれのｘまたはｙ座標を復号させない、コンピュータ可読記憶媒体。
【請求項６７】
実行されると、１つまたは複数のプロセッサに、ビデオ復号プロセス中に、ビデオデータブロックに関連付けられた変換係数を復号させる命令を記憶するコンピュータ可読記憶媒体であって、ここにおいて、前記ブロックが幅および高さで定義される非正方形状を有し、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロック内の非ゼロ係数の位置を識別する情報を復号させ、ここにおいて、前記１つまたは複数のプロセッサに、前記情報を復号させる前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックの前記非ゼロ係数の前記ｘ座標および前記ｙ座標に少なくとも部分的に基づいて、前記情報を復号するのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピー復号プロセスを実施することによって、前記情報を復号させ、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報を復号するのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年７月１日に出願された米国仮出願第６１／５０３，７１６号、および２０１１年１１月１日に出願された米国仮出願第６１／５５４，３０１号の利益を主張する。
【０００２】
本開示は、ビデオコーディングに関し、より詳細には、ビデオコーディングプロセスによって生じる残差変換係数のブロックのコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、かつ／または記憶することができる。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的（イントラピクチャ）予測および／または時間的（インターピクチャ）予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部）はビデオブロックに区分され得、これらのビデオブロックは、ツリーブロック、コーディングユニット（ＣＵ：coding unit）および／またはコーディングノードと呼ばれることがある。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコード化ブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。最初は２次元アレイに構成される、量子化された変換係数は、変換係数の１次元ベクトルを生じるために走査され得る。次いで、エントロピーコーディングが適用されて、なお一層の圧縮を達成することができる。
【発明の概要】
【０００６】
本開示は、ビデオコーディングプロセス中に非正方ビデオデータブロックの残差変換係数をコーディングするための技法を記載する。本明細書で説明する技法は、以下の技法のうちの１つまたは複数を含み得る。すなわち、（１）非正方ビデオデータブロックの残差変換係数を走査する走査順序を選択するための技法、（２）非正方ビデオデータブロックについての最終有効係数位置情報をエントロピーコーディングするためのコンテキスト（文脈）を判断するための技法、（３）非正方ビデオデータブロックについての有効係数位置情報をエントロピーコーディングするためのコンテキストを判断するための技法、および（４）非正方ビデオデータブロックの残差変換係数の値、または「レベル」をコーディングするための技法である。
【０００７】
本開示の技法は、他の方法と比較して、非正方ビデオデータブロックの残差変換係数をコーディングする効率を向上させ得る。特に、これらの技法は、非正方ブロックの残差変換係数および関連シンタックス情報（関連構文情報）がコーディングされるとき、係数および情報の圧縮を向上させることができる。さらに、本開示の技法は、係数と関連シンタックス情報とをコーディングするための他のシステムと比較して、より複雑でないコーディングシステムを使うことを可能にし得る。このように、本開示の技法を使用すると、コード化係数と関連シンタックス情報とを含むコード化ビットストリームのビットが相対的に節約され、係数と関連シンタックス情報とをコーディングするために使用されるシステムの複雑さが相対的に低減され得る。
【０００８】
一例では、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法であって、ブロックが、幅および高さで定義される非正方形状を有する方法は、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数の各々をコーディングすることを含み、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングすることは、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、それぞれの座標をコーディングすることとを含む。
【０００９】
別の例では、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法であって、ブロックが、幅および高さで定義される非正方形状を有する方法は、ブロック内の非ゼロ係数の位置を識別する情報をコーディングすることを備え、情報をコーディングすることは、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングすることとを含む。
【００１０】
本開示の技法はまた、これらの技法を実施するための手段を備える装置、デバイス、および実行されると、１つまたは複数のプロセッサにこれらの技法を実施させる命令を記憶するコンピュータ可読記憶媒体に関して記載される。
【００１１】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数をコーディングするための技法を実施することができるビデオ符号化および復号システムの例を示すブロック図。
【図２】本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数を符号化するための技法を実施することができるビデオ符号器の例を示すブロック図。
【図３】本開示の技法と一致する、符号化された非正方ビデオデータブロックの残差変換係数を復号するための技法を実施することができるビデオ復号器の例を示すブロック図。
【図４Ａ】対角線順序を使って走査される正方ビデオデータブロックの例を示す概念図。
【図４Ｂ】水平走査順序を使って走査される正方ビデオデータブロックの例を示す概念図。
【図４Ｃ】垂直走査順序を使って走査される正方ビデオデータブロックの例を示す概念図。
【図５Ａ】本開示の技法と一致する、非正方ビデオデータブロック、ならびに対応する有効係数位置情報および最終有効係数位置情報の例を示す概念図。
【図５Ｂ】本開示の技法と一致する、非正方ビデオデータブロック、ならびに対応する有効係数位置情報および最終有効係数位置情報の例を示す概念図。
【図５Ｃ】本開示の技法と一致する、非正方ビデオデータブロック、ならびに対応する有効係数位置情報および最終有効係数位置情報の例を示す概念図。
【図６Ａ】本開示の技法と一致する、ジグザグ走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図６Ｂ】本開示の技法と一致する、ジグザグ走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図６Ｃ】本開示の技法と一致する、水平走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図６Ｄ】本開示の技法と一致する、垂直走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図６Ｅ】本開示の技法と一致する、対角線走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図６Ｆ】本開示の技法と一致する、対角線走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図。
【図７Ａ】本開示の技法と一致する、転置された非正方ビデオデータブロックの例を示す概念図。
【図７Ｂ】本開示の技法と一致する、転置された非正方ビデオデータブロックの例を示す概念図。
【図８Ａ】本開示の技法と一致する、共通の１つまたは複数のコンテキストを使って有効係数位置情報がコーディングされる正方ビデオデータブロックの例を示す概念図。
【図８Ｂ】本開示の技法と一致する、共通の１つまたは複数のコンテキストを使って有効係数位置情報がコーディングされる非正方ビデオデータブロックの例を示す概念図。
【図９Ａ】本開示の技法と一致する、対角線走査順序により残差変換係数がグループ化された非正方ビデオデータブロックの例を示す概念図。
【図９Ｂ】本開示の技法と一致する、対角線走査順序により残差変換係数がグループ化された非正方ビデオデータブロックの例を示す概念図。
【図１０Ａ】本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数をコーディングする方法の例を示すフローチャート。
【図１０Ｂ】本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数をコーディングする方法の例を示すフローチャート。
【発明を実施するための形態】
【００１３】
本開示は、ビデオコーディングプロセス中に非正方ビデオデータブロックの残差変換係数をコーディングするための技法を記載する。本明細書で説明する技法は、以下の技法のうちの１つまたは複数を含み得る。すなわち、（１）非正方ビデオデータブロックの残差変換係数を走査する走査順序を選択するための技法、（２）非正方ビデオデータブロックについての最終有効係数位置情報をエントロピーコーディングするためのコンテキストを判断するための技法、（３）非正方ビデオデータブロックについての有効係数位置情報をエントロピーコーディングするためのコンテキストを判断するための技法、および（４）非正方ビデオデータブロックの残差変換係数の値、または「レベル」をコーディングするための技法である。
【００１４】
本開示の技法は、他の方法と比較して、非正方ビデオデータブロックの残差変換係数をコーディングする効率を向上させ得る。特に、これらの技法は、非正方ブロックの残差変換係数および関連シンタックス情報がコーディングされるとき、係数および情報の圧縮を向上させることができる。さらに、本開示の技法は、係数と関連シンタックス情報とをコーディングするための他のシステムと比較して、より複雑でないコーディングシステムを使うことを可能にし得る。このように、本開示の技法を使用すると、コード化係数と関連シンタックス情報とを含むコード化ビットストリームのビットが相対的に節約され、係数と関連シンタックス情報とをコーディングするために使用されるシステムの複雑さが相対的に低減され得る。
【００１５】
図１は、本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数をコーディングするための技法を実施することができるビデオ符号化および復号システムの例を示すブロック図である。図１に示すように、システム１０は、宛先デバイス１４によって後で復号するための符号化されたビデオデータを生じるソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００１６】
宛先デバイス１４は、リンク１６を介して復号するための符号化されたビデオデータを受信することができる。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化されたビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信できるようにするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【００１７】
代替的に、符号化データは、出力インターフェース２２からストレージデバイス２４に出力され得る。同様に、符号化データは、入力インターフェース２６によってストレージデバイス２４からアクセスされ得る。ストレージデバイス２４は、ハードドライブ、ブルーレイ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス２４は、ソースデバイス１２によって生じた符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス２４から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、または両方の組合せを含み得る。ストレージデバイス２４からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００１８】
本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、単方向または二方向のビデオ送信をサポートするように構成され得る。
【００１９】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオ符号器２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生じるためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００２０】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ発生ビデオはビデオ符号器２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化ビデオデータは、さらに（または代替として）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス２４上に記憶され得る。
【００２１】
宛先デバイス１４は、入力インターフェース２６と、ビデオ復号器３０と、ディスプレイデバイス２８とを含む。場合によっては、入力インターフェース２６は、受信機および／またはモデムを含むことができる。宛先デバイス１４の入力インターフェース２６は、リンク１６を介して符号化ビデオデータを受信する。リンク１６を介して通信され、またはストレージデバイス２４上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオ復号器３０など、ビデオ復号器が使用するためのビデオ符号器２０によって生じる様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体によって送信された、記憶媒体またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。
【００２２】
ディスプレイデバイス２８は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス２８は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００２３】
ビデオ符号器２０およびビデオ復号器３０は、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって現在開発中の高効率ビデオコーディング（ＨＥＶＣ）規格およびＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）などのビデオ圧縮規格に従って動作してよく、ＨＥＶＣテストモデル（ＨＭ）に準拠してよい。代替的に、ビデオ符号器２０およびビデオ復号器３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ６」または「ＷＤ６」と呼ばれる、ＨＥＶＣ規格の最新の草案は、ＪＣＴＶＣ−Ｈ１００３、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  （ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ６」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３およびＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、８ｔｈ  Ｍｅｅｔｉｎｇ：米国カリフォルニア州サンノゼ、２０１２年２月の文書に記載されており、この文書は、２０１２年６月１日の時点で、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／８＿Ｓａｎ％２０Ｊｏｓｅ／ｗｇ１１／ＪＣＴＶＣ−Ｈ１００３−ｖ２２．ｚｉｐからダウンロード可能である。
【００２４】
図１には示されていないが、いくつかの態様では、ビデオ符号器２０およびビデオ復号器３０は、それぞれオーディオ符号器およびオーディオ復号器と統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２５】
ビデオ符号器２０およびビデオ復号器３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な符号器回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法がソフトウェアで部分的に実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオ符号器２０およびビデオ復号器３０の各々は１つまたは複数の符号器または復号器中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合符号器／復号器（コーデック）の一部として統合され得る。
【００２６】
ＨＥＶＣの規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを提供するが、ＨＭは３３個ものイントラ予測符号化モードを提供し得る。
【００２７】
一般に、ＨＭの作業モデルは、ビデオフレームまたはピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロックまたは最大コーディングユニット（ＬＣＵ）に分割され得ることを記載する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続的なツリーブロックを含む。ビデオフレームまたはピクチャは、１つまたは複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコーディングユニット（ＣＵ）に分割され得る。たとえば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割され得、各子ノードは、次に、親ノードとなり、別の４つの子ノードに分割され得る。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連するシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。
【００２８】
ＣＵは、コーディングノードと、コーディングノードに関連する予測ユニット（ＰＵ）および変換ユニット（ＴＵ）とを含む。ＣＵのサイズは、コーディングノードのサイズに対応し、正方形でなければならない。ＣＵのサイズは、８×８ピクセルから最大６４×６４以上のピクセルを有するツリーブロックのサイズまでに及び得る。各ＣＵは、１つまたは複数のＰＵと、１つまたは複数のＴＵとを含み得る。ＣＵに関連するシンタックスデータは、たとえば、ＣＵを１つまたは複数のＰＵに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。ＰＵは、非正方形に区分され得る。ＣＵに関連するシンタックスデータは、たとえば、４分木に従って、ＣＵを１つまたは複数のＴＵに区分することも記述し得る。ＴＵは、形状が正方形または非正方形であり得る。
【００２９】
ＨＥＶＣ規格は、ＣＵごとに異なり得るＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。ＴＵは、一般に、ＰＵと同じサイズであるかまたはＰＵよりも小さい。いくつかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ：residual quad tree）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードは変換ユニット（ＴＵ）と呼ばれることがある。ＴＵに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【００３０】
一般に、ＰＵは、予測プロセスに関連したデータを含む。たとえば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵについてのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４ピクセル精度もしくは１／８ピクセル精度）、動きベクトルが指す参照ピクチャ、および／または動きベクトルの参照ピクチャリスト（たとえば、リスト０、リスト１、もしくはリストＣ）を記述し得る。
【００３１】
一般に、ＴＵは、変換プロセスと量子化プロセスとに使用される。１つまたは複数のＰＵを有する所与のＣＵは、１つまたは複数の変換ユニット（ＴＵ）をも含み得る。予測の後、ビデオ符号器２０は、ＰＵに対応する残差値を計算することができる。残差値は、エントロピーコーディングのためのシリアル化変換係数（serialized transform coefficient）を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示は、一般に、ＣＵのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノードならびにＰＵおよびＴＵを含む、ツリーブロック、すなわち、ＬＣＵまたはＣＵを指す「ビデオブロック」という用語も使用し得る。
【００３２】
ビデオシーケンスは、一般的に、一連のビデオフレームまたはピクチャを含む。ピクチャのグループ（ＧＯＰ）は、一般に、一連の１つまたは複数のビデオピクチャを備える。ＧＯＰは、ＧＯＰ内に含まれるいくつかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、１つまたは複数のピクチャのヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオ符号器２０は、一般的に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコーディングノードに対応し得る。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。
【００３３】
一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２ＮまたはＮ×ＮのＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、またはＮ×Ｎの対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、およびｎＲ×２ＮのＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、または「Ｒｉｇｈｔ」という表示によって示される。したがって、たとえば「２Ｎ×ｎＵ」は、上部に２Ｎ×０．５Ｎ  ＰＵと下部に２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分される２Ｎ×２Ｎ  ＣＵを指す。
【００３４】
本開示では、「Ｎ×Ｎ（NxN）」および「Ｎ×Ｎ（N by N）」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、１６×１６（16x16）ピクセルまたは１６×１６（16 by 16）ピクセルを指すために互換的に使用され得る。概して、１６×１６ブロックは、垂直方向に１６ピクセルを有し（ｙ＝１６）、水平方向に１６ピクセルを有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮピクセルを有し、水平方向にＮピクセルを有し、ここで、Ｎは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックは、Ｎ×Ｍピクセルを備え得、Ｍは必ずしもＮに等しいとは限らない。
【００３５】
ＣＵのＰＵを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオ符号器２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（ピクセル領域とも呼ばれる）空間領域においてピクセルデータを備え得、ＴＵは、変換、たとえば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、ＰＵに対応する予測値との間のピクセル差分に対応し得る。ビデオ符号器２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００３６】
変換係数を生成するための任意の変換の後、ビデオ符号器２０は、変換係数の量子化を実行することができる。量子化は、概して、さらなる圧縮を提供する、係数を表すために使用されるデータの量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。たとえば、量子化中にｎビット値をｍビット値に切り捨てることができ、ここでｎはｍよりも大きい。
【００３７】
いくつかの例では、ビデオ符号器２０は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオ符号器２０は、適応型走査を実行し得る。量子化変換係数を走査して１次元ベクトルを形成した後に、ビデオ符号器２０は、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コーディング、または別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオ符号器２０はまた、ビデオデータを復号する際にビデオ復号器３０が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【００３８】
ＣＡＢＡＣを実行するために、ビデオ符号器２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非ゼロであるか否かに関係し得る。ＣＡＶＬＣを実行するために、ビデオ符号器２０は、送信されるべきシンボルの可変長コードを選択し得る。ＶＬＣにおけるコードワードは、相対的により短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、ＶＬＣの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率判断は、シンボルに割り当てられるコンテキストに基づき得る。
【００３９】
Ｈ．２６４および新生のＨＥＶＣ規格では、ＣＡＢＡＣエントロピーコーディングが使われるとき、ビデオデータブロック内の有効（すなわち、非ゼロ）残差変換係数の位置は、係数の絶対値、または「レベル」をコーディングするのに先立ってコーディングされる。ブロック内の有効係数の位置をコーディングするプロセスは、有効性マップ（ＳＭ）コーディングと呼ばれる。ビデオデータのブロックについてのＳＭは、概して２進値、すなわち、１および０の２Ｄアレイとして表され、１は、ブロック内の有効係数の位置を示し、０は、ブロック内の無効な、または０値の係数の位置を示す。１および０は「有効係数フラグ」と呼ばれ得る。いくつかのケースでは、ビットストリーム中でシグナリングされる１および０のみ、たとえば、後で説明するように、ブロックに関連付けられた走査順序により最終有効係数フラグに先行し、最終有効係数フラグ自体を含むことがある１および０が、「有効係数フラグ」と呼ばれ得る。
【００４０】
さらに、いくつかの場合には、ＳＭはさらに、１および０の別の２Ｄアレイを使って表すことができ、１は、ブロックに関連する走査順序に応じたブロック内の最終有効係数の位置を示し、０は、ブロック内のすべての他の係数の位置を示す。これらの場合、１および０は「最終有効係数フラグ」と呼ばれ得る。やはり、いくつかの例では、ビットストリーム中でシグナリングされる１および０のみが、「最終有効係数フラグ」と呼ばれ得る。たとえば、順序（たとえば、走査順序に従ってシリアル化された２Ｄアレイの複数の０と１つの１からなるストリング）を使って最終有効係数の位置が表されるケースでは、走査順序に従って１に先行する０のみ、および１自体が、「最終有効係数フラグ」と呼ばれ得る。他の例では、ブロックが走査順序に従う状態で、最終有効係数の位置は、最終有効係数の座標、たとえば、ｘおよびｙ座標を使って表すことができる。
【００４１】
概して、ビデオデータブロックのためのＳＭコーディングは通常、ブロックをコーディングするのに使われるビデオビットレートのかなりの割合を消費する。たとえば、いくつかの技法（たとえば、ＨＥＶＣ）では、以下の３つの走査順序をＳＭコーディングのために使うことができ、すなわち、図４Ａ〜図４Ｃ内の対応するブロックで示すように、対角線走査順序４００、水平走査順序４０２、および垂直走査順序４０４である。
【００４２】
ブロックについてのＳＭがコーディングされた後、ブロックの各非ゼロ残差変換係数の値、または「レベル」（たとえば、絶対値および符号として表される）がコーディングされる。たとえば、Ｈ．２６４規格においてあらかじめ指定されたＣＡＢＡＣプロセスを使って、ビデオデータブロックについてのＳＭ情報と残差変換係数レベルとをコーディングするために、各非ゼロ残差変換係数の絶対値が、たとえば、単項（たとえば、短縮単項（truncated unary））および／または１つもしくは複数のビット、すなわち「ビン」を備えるゴロム（たとえば、指数ゴロム、またはライスゴロム）コードワードを使って、２進の形にコンバートされ、または「２値化」される。ブロックについての各有効係数フラグおよび最終有効係数フラグ（上で説明したように、有効係数フラグのうちの１つでよい）は、単一ビンをすでに備えるので、２値化は迂回する。ブロックの各有効係数についての（たとえば、各有効係数フラグおよび最終有効係数フラグについての）ＣＡＢＡＣコンテキスト導出は、ブロックのタイプ（たとえば、ブロックサイズ）、およびブロック内の係数の位置（たとえば、それぞれのフラグに対応する）、さらに可能性としてはブロックに関連付けられた走査順序による係数の位置、ならびにあらかじめコーディングされた係数の値の検討を含む。２値化された残差変換係数絶対値の各ビンについてのＣＡＢＡＣコンテキストは、単項（たとえば、短縮単項）内のビンの位置および／または係数の絶対値を表すゴロム（たとえば、指数ゴロム、またはライスゴロム）コードワードと、あらかじめコーディングされた係数の値とを含む。
【００４３】
いくつかのビデオコーディング技法によると、ブロックベースのイントラコーディングは、ＣＵからなるＮ×Ｎの正方区画をＰＵとして使ってよい。いくつかの例では、ＰＵの所与の正方区画の内側のピクセルは、隣接する再構成されたＰＵの境界（すなわち、縁部ピクセル）から予測することができるが、たとえば、ＰＵの右下部分では、ＰＵの他の部分よりもピクセルの不良予測が生じることがある。
【００４４】
空間相関をより良好に利用するために、いわゆる「短距離イントラ予測」（ＳＤＩＰ）コーディング技法が提案されている。たとえば、ＳＤＩＰ技法は、Ｎ×Ｎの正方ブロックを、いくつかの直線、または方形形状を有する非正方ブロックに区分することを含み得る。ブロック中で、ピクセルは、直線単位または方形単位で予測および再構成することができる。その結果、予測距離は短縮することができる。
【００４５】
ＳＤＩＰを使ういくつかの技法では、ＣＵは、直線または方形形状を有する非正方ブロックとしてのＰＵに区分することができる。たとえば、３２×３２ＣＵは、４個の８×３２ＰＵ、または４個の３２×８ＰＵに区分することができる。同様に、１６×１６ＣＵは、４個の８×８ＰＵに、ならびに４個の４×１６ＰＵ、または４個の１６×４ＰＵに区分することができる。さらに、４×１６または１６×４ＰＵは、４個の１×１６ＰＵ、または４個の１６×１ＰＵにさらに区分することができる。また、８×８ＣＵは、４個の２×８ＰＵ、または４個の８×２ＰＵに区分することもできる。
【００４６】
さらに、いくつかの技法では、非正方ＴＵも使うことができる。たとえば、いわゆるインター「非正方変換」、すなわちインターＮＳＱＴを含む技法が、非正方ＴＵを使うことができる。したがって、いくつかのコーディング技法において、インターＮＳＱＴおよび上述したＳＤＩＰ技法は、それぞれ、インター予測およびイントラ予測のための非正方変換（ＮＳＱＴ）と、より全般的には、非正方ビデオデータブロックとを採り入れることができる。
【００４７】
非正方ビデオデータブロックが使われるいくつかのそのような技法によると、非正方ビデオデータブロックをコーディングするとき、特定の非正方ブロックの残差変換係数は、前述したように、係数をエントロピーコーディングする目的で、非正方ブロックから正方ブロックにマッピングされ得る。そのようなマッピングは、特定の技法において使われるエントロピーコーディングプロセスが、正方ブロックを扱うように構成されるだけでよいので、必要になり得る。言い換えると、前述した予測、変換、および量子化ステップは、上述したのと同様に非正方ブロックに対して実施することができるが、非正方ブロックを使う技法は、ブロックの残差変換係数が、係数のエントロピーコーディングに先立って正方ブロックにマッピングされることを要求し得る。
【００４８】
上述した手法には、いくつかの欠点がある。一例として、上述したマッピングは、ビデオデータブロックの残差変換係数を、ブロック内での係数の位置に基づいてコーディングし得るＣＡＢＡＣプロセスを使うときに問題がある。たとえば、係数をエントロピーコーディングする目的での、非正方ブロックから正方ブロックへの、非正方ブロックの残差変換係数のマッピングの結果、非正方ブロックにおいて固有に存在する、係数の間の相関が失われる場合がある。一例として、非ゼロ残差変換係数は、非正方ブロックのサブセット内に、たとえば、一般に「ＤＣ」位置と呼ばれる、ブロックの左上隅の近くに集中され、またはグループ化され得る。非正方ブロックの残差変換係数を正方ブロックにマッピングすることにより、このような集中、またはグループ化をなくすことができる。ただし、そのようなグループ化は、ブロックをコーディングするのに使われる走査順序を選択するときに有利な場合がある。たとえば、グループ化のおかげで、他の走査順序よりも効率的にブロックをコーディングするための特定の走査順序を使うことができる。別の例として、上述した手法により、係数のエントロピー符号化に先立つ、非正方ブロックから正方ブロックへの、続いて、係数のエントロピーコーディングの後の、正方ブロックから非正方ブロックへの、非正方ブロックの残差変換係数のマッピングに関連付けられたコーディングプロセスが複雑になる。
【００４９】
本開示では、上記で説明した欠点の一部を、いくつかの場合において減らし、またはなくし得るいくつかの技法を記載する。特に、本明細書に記載する技法は、コンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣ、ＰＩＰＥなど）を実施するとき、非正方ビデオデータブロックの残差変換係数の効率的エントロピーコーディングを可能にし得る。さらに、本開示の技法は、コーディングシステムを、係数をコーディングするための他のシステムと比較して、より複雑でなくすることを可能にし得る。
【００５０】
一例として、本開示は、非正方ビデオデータブロックの残差変換係数をコーディングするのに使われる走査順序を判断するための技法を提案する。たとえば、いくつかのビデオコーディング技法（たとえば、ＨＥＶＣ）によると、ビデオデータブロックをコーディングするのに使われる走査順序には概して、前述したように、ジグザグ、水平、対角線、および垂直走査順序がある。本開示の技法は、図６Ａ〜図６Ｆに示すように、ブロックをコーディングするのに使われるイントラ予測モードに依存して、ジグザグ、水平、対角線、または垂直走査順序を使って、特定の非正方ビデオデータブロックをコーディングすることを提案する。さらに、本開示の技法は、ブロックをコーディングするのに使われるイントラ予測モードにかかわらず、ブロックが６４個またはそれよりも少ない残差変換係数を含むとき、ジグザグ、水平、対角線、または垂直走査順序を使ってブロックをコーディングすることを提案する。他の例示的技法は、ブロックをコーディングするのに使われるイントラ予測モードにかかわらず、ブロックが６４個よりも多い残差変換係数を含むとき、単一の、固定走査順序を使ってブロックをコーディングすることを含む。
【００５１】
別の例として、本開示は、コンテキストを判断するのにブロックの幅および高さのうちの１つまたは複数が使われるコンテキスト適応型エントロピーコーディング（たとえば、ＣＡＢＡＣ）を使って、ブロックに関連付けられた走査順序により、非正方ビデオデータブロック内の最終有効係数の位置をコーディングするための技法も提案する。一般的な例として、２Ｄブロックのｘおよびｙ座標を使ってブロックについての最終有効係数位置がコーディングされるケースでは、各座標をコーディングするために使われるコンテキストは、ブロックの対応する次元の、ブロック位置の数に対応する長さを使って判断してよい。たとえば、ｘ座標をコーディングするためのコンテキストは、ブロックの水平次元におけるブロック位置の数（すなわち、幅）を含み得るが、ｙ座標をコーディングするためのコンテキストは、ブロックの垂直次元におけるブロック位置の数（すなわち、高さ）を使って判断してよい。ブロックに関連付けられた走査順序による、非正方ビデオデータブロック内の最終有効係数の位置、ならびに非正方ブロック、および非正方ブロック自体についての有効性マップ（ＳＭ）の例を、図５Ａ〜図５Ｃに示す。
【００５２】
ブロックの次元のうちの１つが単一位置を含み（たとえば、ブロックが単一行または列を備え）、ブロックの他の次元が複数の位置（たとえば、複数の行または列）を含む例では、複数の位置を有する次元に対応する座標のみがコーディングされる。たとえば、Ｍ個の列と単一行とを備えるＭ×１ブロックの場合、ｘ座標のみがコーディングされ得る。同様に、１列とＮ行とを備える１×Ｎブロックの場合、ｙ座標のみがコーディングされ得る。
【００５３】
ブロックの次元のうちの１つが２つの位置を含み（たとえば、ブロックが２つの行または列を備え）、ブロックの他の次元が、たとえば、２つより多い位置を含む例では、２つより多い位置を含む次元に対応する座標が、２つの位置を含む次元に対応する座標の値を使って判断されたコンテキストを使ってコーディングされる。たとえば、Ｍ列と２行とを備えるＭ×２ブロックの場合、コンテキストを判断するためにｙ座標が第１または第２の行に対応するかを示す情報を使って、ｘ座標がコーディングされ得る。同様に、２列とＮ行とを備える２×Ｎブロックの場合、コンテキストを判断するためにｘ座標が第１または第２の列に対応するかを示す情報を使って、ｙ座標がコーディングされ得る。これらの例では、各座標をコーディングするために使われるコンテキストの判断は、前述したように、ブロックの対応する次元の長さの検討をさらに含み得る。
【００５４】
さらに別の例として、本開示は、コンテキスト適応型エントロピーコーディング（たとえば、ＣＡＢＡＣ）を使って、非正方ビデオデータブロックについての有効性マップをコーディングするための技法を提案する。特に、本開示は、コンテキスト適応型エントロピーコーディングを使って、ブロックについての、有効係数フラグ、すなわち、有効係数位置情報をコーディングする技法を提案する。ブロックについての有効係数位置情報をコーディングするのに使われるコンテキストモデル、すなわち、１つまたは複数のコンテキストは、異なるサイズの他のブロックについての有効係数位置情報をコーディングするときに共有することができる。たとえば、Ｎ×ＭおよびＭ×Ｎブロックについての有効係数位置情報をコーディングするとき、共通コンテキストモデルを使うことができる。Ｎ×Ｍブロックについての有効係数位置情報をコーディングするために、共通コンテキストモデルを直接適用してよく、すなわち、Ｎ×Ｍブロックについての有効係数位置情報をコーディングするのに、１つまたは複数のコンテキストを直接使ってよい。一方、Ｍ×Ｎブロックについての有効係数位置情報をコーディングするために、図７Ａ〜図７Ｂに示すように、Ｍ×Ｎブロックを、Ｎ×Ｍブロックに類似させるように転置することによって、共通コンテキストモデルおよびそれに含まれる１つまたは複数のコンテキストを適用することができる。この場合、ブロックの転置次元、および走査順序によるブロック内の各有効係数の転置位置は、共通コンテキストモデルおよびそれに含まれる１つまたは複数のコンテキストに対応し得る。さらに、共通コンテキストモデルおよび１つまたは複数のコンテキストは、Ｎ×ＭブロックとＭ×Ｎブロックの両方についての有効係数位置情報を使ってアップデートすることができる。やはり、Ｍ×Ｎブロックのケースでは、共通コンテキストモデルは、元のではなく転置されたＭ×Ｎブロックについての有効係数位置情報を使ってアップデートすることができ、または逆も同様である。別の例では、Ｍ×Ｎブロック自体を転置するのではなく、上述したように、ブロックについての有効係数位置情報をコーディングするのに先立って、Ｍ×Ｎブロックの各係数のｘおよびｙ座標を転置し、または「入れ換える」ことができる。
【００５５】
この提案される技法は、有効係数を含むそれぞれのブロック内の各位置の確率を示す、Ｎ×ＭブロックとＭ×Ｎブロックとについての統計の間で経験的検証中に発見される類似を利用する。この類似により、Ｎ×ＭブロックとＭ×Ｎブロックの両方をコーディングするのに使われる統計を含む共通コンテキストモデル（およびその中に含まれる１つまたは複数のコンテキスト）を使うことが可能になる。複数のサイズの非正方ブロックについての有効係数位置情報をコーディングするのに共通コンテキストモデルを共有する結果として、対応するコーディングシステム内で非正方ビデオデータブロックをコーディングするのに使われるコンテキストモデル（およびコンテキスト）の数を、他のコーディングシステムと比較して削減することができ、したがってシステムリソースのより効率的な使用が可能になる。
【００５６】
一例では、６４個またはそれよりも少ない残差変換係数を含む非正方ブロックについての有効係数位置情報のコーディングは、コンテキストを判断するのに、ブロック内の各係数の位置を使う。別の例では、６４個またはそれよりも少ない残差変換係数を含む非正方ブロックについての有効係数位置情報のコーディングは、コンテキストを判断するのに、ブロックに関連付けられた走査順序による、ブロック内の各係数の位置を使う。１６個よりも多い係数を含むブロックの場合、有効係数位置情報のコーディングは、複数の隣接する係数について判断されたコンテキストのコーディングを使う。たとえば、４つの隣接係数が、共通コンテキストを共有し得る。このようにして、より小さいブロック内の係数に対応する有効係数フラグについて個々に判断されたコンテキストは、より大きいブロック内の複数の隣接係数に対応する有効係数フラグをコーディングするのに使われる、より大きいブロックに「マッピング」することができる。６４個よりも多い係数を含むブロックの場合、有効係数位置情報のコーディングは、有効な隣接する係数の数によって判断されたコンテキストのコーディングを使う。たとえば、５つの隣接する係数の有効性が加算されて、コンテキストが計算される。
【００５７】
別の例として、１６列と単一行とを備える１６×１ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、ブロックに関連付けられた走査順序による、ブロック内の対応する係数の位置に対応する列番号を使って判断され得る。この場合、走査順序は、左端ブロック位置から右端位置に進む水平走査順序である。単一列と１６行とを備える１×１６ブロックの場合、ブロックについての有効係数フラグをコーディングするのに先立って、ブロックが、１６×１ブロックに類似するように転置されるので、特定の有効係数フラグをコーディングするためのコンテキストは上述したのと同じであり得る。この例では、１６×１ブロックまたは転置された１×１６ブロックのいずれかについての特定の有効係数フラグをコーディングするためのコンテキストは、以下の関係を使って導出することができる。
【数１】
0005869114.tif 000002
【００５８】
上式で、ｃｔｘ（ｘ）は、コーディングされる特定の有効係数フラグについてのコンテキスト索引を示し、「ｘ」は、ブロック内のフラグに対応する係数の位置のｘ座標を示す。
【００５９】
別の例として、８列と２行とを備える８×２ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、以下の関係を使って導出することができる。
【数２】
0005869114.tif 000003
【００６０】
上式で、ｃｔｘ（ｘ，ｙ）は、コーディングされる特定の有効係数フラグについてのコンテキスト索引を示し、「＜＜」は左シフト演算子を示し、「ｙ」は、ブロック内のフラグに対応する係数の位置のｙ座標を示す。言い換えると、ｃｔｘ（ｘ，ｙ）は、コーディングされる有効係数フラグについてのコンテキスト索引を示し、フラグは、ｘおよびｙ座標で示されるブロック内の位置に置かれた係数に対応する。したがって、特定の有効係数フラグをコーディングするためのコンテキストは、ブロック内のフラグに対応する係数の位置のｘおよびｙ座標を使って導出することができる。同様に、２列と８行とを備える２×８ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、やはり、前述したように、ブロックが、８×２ブロックに類似するように転置された後、同じ関係を使って導出することができる。
【００６１】
さらに別の例として、１６列と４行とを備える１６×４ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、以下の関係を使って導出することができる。
【数３】
0005869114.tif 000004
【００６２】
上式で、「＞＞」は右シフト演算子を示す。
【００６３】
この関係で示されるように、コンテキストは、１６×４ブロックの異なるサブセット、またはサブブロック中に配置された係数に対応する有効係数フラグについては異なるように判断される。たとえば、コンテキストは、コーディングされる特定の有効係数フラグに対応する係数が、ブロック内のｘおよびｙ座標（０，０）、（０，１）、（１，０）および（１，１）で示されるブロック内のＤＣ位置で始まる２×２サブブロック中に置かれるかどうかに依存して変わり得る。コンテキストは、２×２サブブロックの外側であるが、８未満のｘ座標で定義されるサブブロック内に置かれた係数に対応するフラグに対して、およびブロック内の他のすべての位置に対してさらに変わり得る。同様に、４列と１６行とを備える４×１６ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、やはり、前述したように、ブロックが、１６×４ブロックに類似するように転置された後、同じ関係を使って導出することができる。
【００６４】
上述したのと同様に、３２列と８行とを備える３２×８ブロック、およびその相対物８×３２ブロックの場合、特定の有効係数フラグをコーディングするためのコンテキストは、前述したように、現時点でＨＥＶＣにおいて実施されているのと同様にして計算することができる。
【００６５】
さらに、図８Ａ〜図８Ｂを参照してより詳細に説明するように、本開示は、共通コンテキストモデル、すなわち、同じ１つまたは複数のコンテキストを使って、正方ビデオデータブロックおよび非正方ビデオデータブロックの各々についての有効係数位置情報をコーディングするための技法も提案する。
【００６６】
最終に、本開示は、図９Ａ〜図９Ｂに示すように、非正方ビデオデータブロックの残差変換係数の値、または「レベル」情報（たとえば、絶対値および符号として表される）をコーディングするための技法も提案する。たとえば、いくつかのビデオコーディング技法（たとえば、ＨＥＶＣ）によると、正方ブロックの残差変換係数レベルをコーディングするために、ブロックは、各々が１６個の係数を備える４×４サブブロックに分割される。各４×４サブブロック内の係数は続いて、サブブロックに関連付けられた走査順序によりコーディングされる。本開示は、最初に、ブロックに関連付けられた走査順序を使って係数をシリアル化し、次いで、シリアル化された係数を、走査順序に沿って１６個の係数からなるグループに分割することによって、非正方ビデオデータブロックの残差変換係数レベルをコーディングすることを提案する。係数レベルは次いで、各グループ内でコーディングされる。
【００６７】
したがって、本開示の技法に一致するいくつかの例では、ソースデバイス１２のビデオ符号器２０は、ビデオデータのいくつかのブロック（たとえば、ＣＵの１つまたは複数のＴＵ）を符号化するように構成することができ、宛先デバイス１４のビデオ復号器３０は、ビデオ符号器２０から符号化ビデオデータを受信するように構成することができる。一例として、ビデオ符号器２０および／またはビデオ復号器３０は、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。たとえば、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックに関連する走査順序に従うブロック内の最終非ゼロ係数の位置を示すｘ座標およびｙ座標のうちの１つまたは複数をコーディングするように構成され得る。この例では、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成してよい。ビデオ符号器２０および／またはビデオ復号器３０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによってそれぞれの座標をコーディングするようにさらに構成してよい。
【００６８】
別の例として、ビデオ符号器２０および／またはビデオ復号器３０は、やはり、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。たとえば、ビデオ符号器２０および／またはビデオ復号器３０は、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするように構成してよく、情報をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成してよい。ビデオ符号器２０および／またはビデオ復号器３０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングするようにさらに構成してよい。
【００６９】
上述した例では、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて判断されるｘおよびｙ座標のそれぞれの１つをコーディングするのに使われる１つまたは複数のコンテキスト、およびブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて判断される、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに使われる１つまたは複数のコンテキストは、他の技法を使って判断された確率推定値と比較して、より正確である、各例の１つまたは複数のコンテキストに含まれる確率推定値を生じ得る。その結果、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数の各々と、ブロック内の非ゼロ係数の位置を識別する情報とを、より効率的にコーディングすることができる。たとえば、ビデオ符号器２０および／またはビデオ復号器３０は、座標と情報とをコーディングするための他の技法、たとえば、ブロックの幅および高さを考慮せず、より正確でない確率推定値を生じ得る技法を使うときよりも少ないビットを使って、ｘおよびｙ座標と情報とをコーディングすることができる。
【００７０】
さらに、図２および図３を参照して以下でより詳細に説明するように、本開示の技法は、特に、共通コンテキストを使って転置次元（たとえば、４×８および８×４）、または異なる次元（たとえば、４×４および２×８）を有する複数のブロックの各々についての情報をコーディングすることによって、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするとき、ビデオ符号器２０および／またはビデオ復号器３０を、他のシステムと比較して複雑でなくするのも可能にし得る。さらに、本開示は、やはり図２および図３を参照して以下でより詳細に説明するように、非正方ビデオデータブロックの変換係数を走査するための新規技法、ならびにブロック内の非ゼロ係数の値、または「レベル」を識別する情報をコーディングするための技法をさらに含む。
【００７１】
したがって、本開示の技法により、ビデオ符号器２０および／またはビデオ復号器３０は、他の方法を使用したときよりも効率的に、ブロックに関連付けられた変換係数をコーディングすることが可能になり得る。特に、これらの技法は、ブロックの変換係数および関連シンタックス情報（たとえば、ブロックについての最終有効係数位置情報および有効係数位置情報）がコーディングされるとき、係数および情報の圧縮を向上させ得る。さらに、これらの技法は、ビデオ符号器２０および／またはビデオ復号器３０が、係数と関連シンタックス情報とをコーディングするための他のシステムと比較してより複雑でなくなるのを可能にし得る。このように、本開示の技法を使用すると、コード化係数および関連シンタックス情報を含むコード化ビットストリームのビットが相対的に節約され、コード化係数および関連シンタックス情報をコーディングするために使用されるビデオ符号器２０および／またはビデオ復号器３０の複雑さが相対的に低下され得る。
【００７２】
ビデオ符号器２０およびビデオ復号器３０はそれぞれ、適用可能なとき、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適な符号器または復号器回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。ビデオ符号器２０およびビデオ復号器３０の各々は１つまたは複数の符号器または復号器中に含まれ得、そのいずれも複合ビデオ符号器／復号器（コーデック）の一部として統合され得る。ビデオ符号器２０および／またはビデオ復号器３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラー電話などのワイヤレス通信デバイスを備え得る。
【００７３】
図２は、非正方ビデオデータブロックの残差変換係数のコーディングに関連した、本開示に記載する技法を実装することができるビデオ符号器２０の例を示すブロック図である。ビデオ符号器２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測（Ｐモード）または双方向予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指し得る。
【００７４】
図２の例では、ビデオ符号器２０は、区分ユニット３５と、予測モジュール４１と、参照ピクチャメモリ６４と、加算器５０と、変換モジュール５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測モジュール４１は、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測モジュール４６とを含む。ビデオブロック再構成のために、ビデオ符号器２０はまた、逆量子化ユニット５８と、逆変換モジュール６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理することになる。また、デブロッキングフィルタに加えて追加のループフィルタ（ループ内またはループ後）が使用され得る。
【００７５】
図２に示すように、ビデオ符号器２０はビデオデータを受信し、区分ユニット３５はデータをビデオブロックに区分する。この区分は、たとえば、ＬＣＵおよびＣＵの４分木構造に応じて、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオ符号器２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測モジュール４１は、誤り結果（たとえば、コーディングレートおよびひずみレベル）に基づいて現在ビデオブロックのために、複数のイントラコーディングモードのうちの１つ、または複数のインターコーディングモードのうちの１つなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測モジュール４１は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生じさせるために加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器６２に与え得る。
【００７６】
予測モジュール４１内のイントラ予測モジュール４６は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測モジュール４１内の動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【００７７】
動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを判断するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをＰスライス、Ｂスライス、またはＧＰＢスライスに指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生じさせるプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【００７８】
予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、または他の差分メトリックによって判断され得るピクセル差分に関して、コーディングすべきビデオブロックのＰＵにぴったり一致することがわかるブロックである。いくつかの例では、ビデオ符号器２０は、参照ピクチャメモリ６４に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオ符号器２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【００７９】
動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、参照ピクチャメモリ６４に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【００８０】
動き補償ユニット４４によって実行される動き補償は、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生じさせること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在のビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、参照ピクチャリストのうちの１つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオ符号器２０は、コーディングされる現在のビデオブロックのピクセル値から、予測ブロックのピクセル値を減算し、ピクセル差値を形成することによって、残差ビデオブロックを形成する。ピクセル差値は、ブロックの残差データを形成し、ルーマおよびクロマの両方の差分成分を含み得る。加算器５０は、この減算演算を実行する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオ復号器３０が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生じ得る。
【００８１】
イントラ予測モジュール４６は、上記で説明したように、動き推定ユニット４２と動き補償ユニット４４とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測モジュール４６は、現在のブロックの符号化に使用するためのイントラ予測モードを決定することができる。いくつかの例では、イントラ予測モジュール４６は、たとえば、別々の符号化パスの間など、様々なイントラ予測モードを使用して、現在のブロックを符号化することができ、イントラ予測モジュール４６（または、いくつかの例において、モード選択ユニット４０）は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測モジュール４６は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中の最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ（またはエラー）の量、ならびに、符号化されたブロックを生成するために使用されたビットレート（すなわち、ビット数）を決定する。イントラ予測モジュール４６は、どのイントラ予測モードがブロックについての最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックについてのひずみおよびレートから比率を計算することができる。
【００８２】
いずれの場合も、あるブロックについてのイントラ予測モードを選択した後、イントラ予測モジュール４６は、エントロピー符号化ユニット５６にブロックについての選択されたイントラ予測モードを示す情報を提供することができる。エントロピー符号化ユニット５６は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化することができる。ビデオ符号器２０は、送信されたビットストリーム中に構成データを含み得、そのデータは複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル（コードワードマッピングテーブルとも呼ばれる）と、様々なブロックのコンテキストを符号化する定義と、コンテキストの各々のために使用すべき最優勢イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る。
【００８３】
予測モジュール４１が、インター予測またはイントラ予測のいずれかにより現在ビデオブロックのための予測ブロックを発生させた後、ビデオ符号器２０は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換モジュール５２に適用され得る。変換モジュール５２は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【００８４】
変換モジュール５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減させることができる。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００８５】
量子化の後、エントロピー符号化ユニット５６は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングまたは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後に、符号化ビットストリームは、ビデオ復号器３０に送信されるか、またはビデオ復号器３０が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【００８６】
逆量子化ユニット５８および逆変換モジュール６０は、それぞれ逆量子化および逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照ピクチャメモリ６４に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２および動き補償ユニット４４によって参照ブロックとして使用され得る。
【００８７】
一例として、ビデオ符号器２０は、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。この例では、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【００８８】
たとえば、ビデオ符号器２０は、ブロックに関連する走査順序に従うブロック内の最終非ゼロ係数の位置（すなわち、ブロックについての最終有効係数位置情報）を示すｘ座標およびｙ座標のうちの１つまたは複数をコーディングするように構成され得る。ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオ符号器２０は、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成してよい。ビデオ符号器２０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実施することによってそれぞれの座標をコーディングするようにさらに構成してよい。
【００８９】
いくつかの例では、ブロックの幅はｘ座標に対応してよく、ブロックの高さはｙ座標に対応してよい。言い換えると、ｘ座標をコーディングするために、ビデオ符号器２０は、ｘ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの幅を使うように構成すればよい。同様に、ｙ座標をコーディングするために、ビデオ符号器２０は、ｙ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの高さを使うように構成すればよい。
【００９０】
他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ符号器２０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが単ブロック位置を備えることを示す「１」に等しい場合、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つをコーディングしないように構成すればよい。
【００９１】
さらに他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ符号器２０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが２つのブロック位置を備えることを示す「２」に等しい場合、およびブロックの幅および高さのうちの別の１つが、幅および高さのうちの別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、幅および高さのうちの別の１つに対応する、ｘおよびｙ座標のうちの別の１つをコーディングするのに使われる１つまたは複数のコンテキストをさらに判断するように構成すればよい。
【００９２】
別の例として、ビデオ符号器２０は、やはり、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。この例では、繰返しになるが、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【００９３】
たとえば、ビデオ符号器２０は、ブロック内の非ゼロ係数の位置を識別する情報（すなわち、ブロックについての有効係数位置情報）をコーディングするように構成してよく、情報をコーディングするために、ビデオ符号器２０は、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成してよい。ビデオ符号器２０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実施することによって情報をコーディングするようにさらに構成してよい。
【００９４】
いくつかの例では、ビデオ符号器２０は、ブロック内の非ゼロ係数の位置のうちの１つまたは複数の各々について、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロック内のそれぞれの位置を示すｘおよびｙ座標を交換するようにさらに構成してよい。
【００９５】
他の例では、ビデオ符号器２０は、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロックを転置するようにさらに構成してよい。これらの例では、ブロックの幅および高さのうちの１つまたは複数は、転置ブロックの幅および高さのうちの１つまたは複数を備え得る。一例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ符号器２０は、ブロックの幅がブロックの高さよりも大きい場合、ブロックを転置するように構成してよい。別の例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ符号器２０は、ブロックの高さがブロックの幅よりも大きい場合、ブロックを転置するように構成してよい。
【００９６】
いくつかの例では、ブロックは第１のブロックであってよい。これらの例では、ビデオ符号器２０は、第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングするようにさらに構成してよく、ここで第２のブロックは第１のブロックとは異なり、第２のブロックは、サイズで定義される正方形状を有する。これらの例では、情報をコーディングするために、ビデオ符号器２０は、第１のブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに使われる、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、情報をコーディングするように構成してよい。
【００９７】
このようにして、前述したように、ビデオ符号器２０は、特に、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするとき、他のシステムと比較して、より複雑でなくなり得る。具体的には、上述したように、ビデオ符号器２０は、同じ１つまたは複数のコンテキストを使って、転置次元、または異なる次元を有する複数のブロック内の非ゼロ係数の位置を識別する情報をコーディングすることができる。
【００９８】
これらの例では、ビデオ符号器２０は、第１のブロックの幅および高さに、ならびに第２のブロックのサイズに基づいて、第１のブロックおよび第２のブロックが同じ数の係数を含むと判断し、第１のブロック内の係数の少なくとも１つの位置と、第２のブロック内の係数の少なくとも１つの位置とを、判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするようにさらに構成してよい。また、これらの例では、ビデオ符号器２０は、第１のブロック内の非ゼロ係数の位置を識別する情報および第２のブロック内の非ゼロ係数の位置を識別する情報に基づいて、判断された１つまたは複数のコンテキストをアップデートするようにさらに構成してよい。
【００９９】
さらなる例において、ビデオ符号器２０は、ブロックが所定の数またはより少ない係数を備えるとき、ブロックに関連付けられたイントラ予測モードに基づいて、走査順序のグループから、ブロックに関連付けられた走査順序として、ある走査順序を選択し、ブロックが所定の数よりも多い係数を備えるとき、ブロックに関連付けられた走査順序として、固定走査順序を選択するようにも構成してよい。ビデオ符号器２０は、ブロックに関連付けられた、選択された走査順序を使って変換係数をコーディングするようにさらに構成してよい。
【０１００】
いくつかの例では、所定の数の係数は、６４個の係数を備え得る。他の例では、走査順序グループおよび固定走査順序は各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備え得る。一例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの小さい方から開始して走査することができる。別の例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの大きい方から開始して走査することができる。
【０１０１】
さらに他の例では、ビデオ符号器２０は、ブロック内の非ゼロ変換係数の値を識別する情報をコーディングするようにも構成してよく、コーディングは、ブロックに関連付けられた走査順序を使って、ブロックに関連付けられた変換係数をシリアル化することと、シリアル化された変換係数を、所定の数のシリアル化された変換係数を各々が含む１つまたは複数のグループに区分することと、各グループ内の非ゼロ変換係数の値を識別する情報をコーディングすることとを含む。
【０１０２】
いくつかの例では、所定の数の係数は、１６個の係数を備え得る。他の例では、ブロック内の非ゼロ変換係数の値を識別する情報をコーディングするために、ビデオ符号器２０は、ブロックの幅および高さのうちの少なくとも１つが「４」の整数倍である値に等しくないとき、情報をコーディングするように構成すればよい。
【０１０３】
したがって、上で説明したように、本開示の技法は、ビデオ符号器２０が、ブロックに関連付けられた変換係数を、他の方法を使うときよりも効率的に符号化することを可能にし得る。特に、これらの技法は、ブロックの変換係数および関連シンタックス情報（すなわち、ブロックについての最終有効係数位置情報および有効係数位置情報）が符号化されるとき、係数および情報の圧縮を向上させ得る。さらに、これらの技法は、ビデオ符号器２０が、係数と関連シンタックス情報とを符号化するための他のシステムと比較して、より複雑でなくなるのを可能にし得る。このように、本開示の技法を使用すると、符号化係数および関連シンタックス情報を含むコード化ビットストリームのビットが相対的に節約され、係数および関連シンタックス情報を符号化するために使用されるビデオ符号器２０の複雑さが相対的に低下され得る。
【０１０４】
このように、ビデオ符号器２０は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングするための装置内に含まれるビデオコーダの例を表し、ブロックは幅および高さで定義される非正方形状を有し、ビデオコーダは、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングするように構成され、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオコーダは、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断し、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによってそれぞれの座標をコーディングするように構成される。さらに、ビデオ符号器２０は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングするための装置内に含まれるビデオコーダの例も表し、ブロックは、幅および高さで定義される非正方形状を有し、ビデオコーダは、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするように構成され、情報をコーディングするために、ビデオコーダは、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断し、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングするように構成される。
【０１０５】
図３は、非正方ビデオデータブロックの残差変換係数のコーディングに関連した、本開示に記載する技法を実装することができるビデオ復号器３０の例を示すブロック図である。図３の例では、ビデオ復号器３０は、エントロピー復号ユニット８０と、予測モジュール８１と、逆量子化ユニット８６と、逆変換ユニット８８と、加算器９０と、参照ピクチャメモリ９２とを含む。予測モジュール８１は、動き補償ユニット８２と、イントラ予測モジュール８４とを含む。ビデオ復号器３０は、いくつかの例では、図２のビデオ符号器２０に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【０１０６】
復号プロセス中に、ビデオ復号器３０は、ビデオ符号器２０から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオ復号器３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他のシンタックス要素を生じさせるためにビットストリームをエントロピー復号する。エントロピー復号ユニット８０は、予測モジュール８１に動きベクトルと他のシンタックス要素とを転送する。ビデオ復号器３０は、ビデオスライスレベルおよび／またはビデオブロックレベルでシンタックス要素を受信し得る。
【０１０７】
ビデオスライスがイントラコーディング（Ｉ）スライスとしてコーディングされるとき、予測モジュール８１のイントラ予測モジュール８４は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生じ得る。ビデオフレームがインターコーディング（すなわち、Ｂ、ＰまたはＧＰＢ）スライスとしてコーディングされるとき、予測モジュール８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから生成され得る。ビデオ復号器３０は、参照ピクチャメモリ９２に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト０およびリスト１を構成し得る。
【０１０８】
動き補償ユニット８２は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックについての予測情報を判断し、予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）、インター予測スライスタイプ（たとえば、Ｂスライス、Ｐスライス、またはＧＰＢスライス）、スライスの参照ピクチャリストのうちの１つまたは複数についての構成情報、スライスの各インター符号化ビデオブロックについての動きベクトル、スライスの各インターコード化ビデオブロックについてのインター予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を判断するために、受信されたシンタックス要素のいくつかを使用する。
【０１０９】
動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、ビデオブロックの符号化中にビデオ符号器２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット８２は、受信されたシンタックス要素からビデオ符号器２０によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１１０】
逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された、量子化変換係数を逆量子化（inverse quantize）、すなわち、逆量子化（de-quantize）する。逆量子化プロセスは、ビデオスライス中の各ビデオブロックについてビデオ符号器２０によって計算される量子化パラメータを使用して量子化の程度を判断し、同様に、適用すべき逆量子化の程度を判断することを含み得る。逆変換モジュール８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１１１】
動き補償ユニット８２が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生じさせた後、ビデオ復号器３０は、逆変換モジュール８８からの残差ブロックを動き補償ユニット８２によって生じさせられた対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９０は、この加算演算を実施する１つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号されたブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、またはさもなければビデオ品質を改善するために、（コーディングループ内またはコーディングループ後の）他のループフィルタも使用され得る。所与のフレームまたはピクチャの復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ９２に記憶される。参照ピクチャメモリ９２はまた、図１のディスプレイデバイス２８などのディスプレイデバイス上での後の表示のための、復号されたビデオを記憶する。
【０１１２】
一例として、ビデオ復号器３０は、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。この例では、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【０１１３】
たとえば、ビデオ復号器３０は、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置（すなわち、ブロックについての最終有効係数位置情報）を示すｘおよびｙ座標のうちの１つまたは複数をコーディングするように構成してよく、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオ復号器３０は、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成してよい。ビデオ復号器３０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実施することによってそれぞれの座標をコーディングするようにさらに構成してよい。
【０１１４】
いくつかの例では、ブロックの幅はｘ座標に対応してよく、ブロックの高さはｙ座標に対応してよい。言い換えると、ｘ座標をコーディングするために、ビデオ復号器３０は、ｘ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの幅を使うように構成すればよい。同様に、ｙ座標をコーディングするために、ビデオ復号器３０は、ｙ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの高さを使うように構成すればよい。
【０１１５】
他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ復号器３０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが単ブロック位置を備えることを示す「１」に等しい場合、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つをコーディングしないように構成すればよい。
【０１１６】
さらに他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ復号器３０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが２つのブロック位置を備えることを示す「２」に等しい場合、およびブロックの幅および高さのうちの別の１つが、幅および高さのうちの別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、幅および高さのうちの別の１つに対応する、ｘおよびｙ座標のうちの別の１つをコーディングするのに使われる１つまたは複数のコンテキストをさらに判断するように構成すればよい。
【０１１７】
別の例として、ビデオ復号器３０は、やはり、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成してよく、ブロックは、幅および高さで定義される非正方形状を有する。この例では、繰返しになるが、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【０１１８】
たとえば、ビデオ復号器３０は、ブロック内の非ゼロ係数の位置を識別する情報（すなわち、ブロックについての有効係数位置情報）をコーディングするように構成してよく、情報をコーディングするために、ビデオ復号器は、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断するように構成される。ビデオ復号器３０は、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセス（たとえば、ＣＡＢＡＣプロセス）を実施することによって情報をコーディングするようにさらに構成してよい。
【０１１９】
いくつかの例では、ビデオ復号器３０は、ブロック内の非ゼロ係数の位置のうちの１つまたは複数の各々について、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロック内のそれぞれの位置を示すｘおよびｙ座標を交換するようにさらに構成してよい。
【０１２０】
他の例では、ビデオ復号器３０は、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロックを転置するようにさらに構成してよい。これらの例では、ブロックの幅および高さのうちの１つまたは複数は、転置ブロックの幅および高さのうちの１つまたは複数を備え得る。一例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ復号器３０は、ブロックの幅がブロックの高さよりも大きい場合、ブロックを転置するように構成してよい。別の例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ復号器３０は、ブロックの高さがブロックの幅よりも大きい場合、ブロックを転置するように構成してよい。
【０１２１】
いくつかの例では、ブロックは第１のブロックであってよい。これらの例では、ビデオ復号器３０は、第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングするようにさらに構成してよく、ここで第２のブロックは第１のブロックとは異なり、第２のブロックは、サイズで定義される正方形状を有する。これらの例では、情報をコーディングするために、ビデオ復号器３０は、第１のブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに使われる、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、情報をコーディングするように構成してよい。
【０１２２】
このようにして、前述したように、ビデオ復号器３０は、特に、ブロック内の非ゼロ係数の位置を識別する情報を符号化するとき、他のシステムと比較して、より複雑でなくなり得る。具体的には、上述したように、ビデオ復号器３０は、同じ１つまたは複数のコンテキストを使って、転置次元、または異なる次元を有する複数のブロック内の非ゼロ係数の位置を識別する情報をコーディングすることができる。
【０１２３】
これらの例では、ビデオ復号器３０は、第１のブロックの幅および高さに、ならびに第２のブロックのサイズに基づいて、第１のブロックおよび第２のブロックが同じ数の係数を含むと判断し、第１のブロック内の係数の少なくとも１つの位置と、第２のブロック内の係数の少なくとも１つの位置とを、判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするようにさらに構成してよい。また、これらの例では、ビデオ復号器３０は、第１のブロック内の非ゼロ係数の位置を識別する情報および第２のブロック内の非ゼロ係数の位置を識別する情報に基づいて、判断された１つまたは複数のコンテキストをアップデートするようにさらに構成してよい。
【０１２４】
さらなる例において、ビデオ復号器３０は、ブロックが所定の数またはより少ない係数を備えるとき、ブロックに関連付けられたイントラ予測モードに基づいて、走査順序のグループから、ブロックに関連付けられた走査順序として、ある走査順序を選択し、ブロックが所定の数よりも多い係数を備えるとき、固定走査順序をブロックに関連付けられた走査順序として選択するようにも構成してよい。ビデオ復号器３０は、ブロックに関連付けられた、選択された走査順序を使って変換係数をコーディングするようにさらに構成してよい。
【０１２５】
いくつかの例では、所定の数の係数は、６４個の係数を備え得る。他の例では、走査順序グループおよび固定走査順序は各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備え得る。一例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの小さい方から開始して走査することができる。別の例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの大きい方から開始して走査することができる。
【０１２６】
さらに他の例では、ビデオ復号器３０は、ブロック内の非ゼロ変換係数の値を識別する情報をコーディングするようにも構成してよく、コーディングは、所定の数の変換係数を各々が含む１つまたは複数のグループの各々内の非ゼロ変換係数の値を識別する情報をコーディングすることと、１つまたは複数のグループについての値を結合して１つのシリアル化された値にすることと、ブロックに関連付けられた走査順序を使って値を非シリアル化することとを含む。
【０１２７】
いくつかの例では、所定の数の係数は、１６個の係数を備え得る。他の例では、ブロック内の非ゼロ係数の値を識別する情報をコーディングするために、ビデオ復号器３０は、ブロックの幅および高さのうちの少なくとも１つが「４」の整数倍である値に等しくないとき、情報をコーディングするように構成すればよい。
【０１２８】
したがって、上で説明したように、本開示の技法は、ビデオ復号器３０が、ブロックに関連付けられた、符号化された変換係数を、他の方法を使うときよりも効率的に復号することを可能にし得る。特に、これらの技法は、ブロックの変換係数および関連シンタックス情報（すなわち、ブロックについての最終有効係数位置情報および有効係数位置情報）が符号化され、続いて復号されるとき、係数および情報の圧縮を向上させ得る。さらに、これらの技法は、ビデオ復号器３０が、係数と関連シンタックス情報とを復号するための他のシステムと比較してより複雑でなくなるのを可能にし得る。このようにして、本開示の技法を使用すると、符号化係数および関連シンタックス情報を含むコード化ビットストリームのビットが相対的に節約され、コード化ビットストリームから符号化係数および関連シンタックス情報をデコードするために使用されるビデオ復号器３０の複雑さが相対的に低下され得る。
【０１２９】
このようにして、ビデオ復号器３０は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングするための装置内に含まれるビデオコーダの例を表し、ブロックは幅および高さで定義される非正方形状を有し、ビデオコーダは、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングするように構成され、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオコーダは、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断し、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによってそれぞれの座標をコーディングするように構成される。さらに、ビデオ復号器３０は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングするための装置内に含まれるビデオコーダの例も表し、ブロックは、幅および高さで定義される非正方形状を有し、ビデオコーダは、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするように構成され、情報をコーディングするために、ビデオコーダは、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断し、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングするように構成される。
【０１３０】
図５Ａ〜図５Ｃは、本開示の技法と一致する、非正方ビデオデータブロックの例と、対応する有効係数位置情報および最終有効係数位置情報とを示す概念図である。図５Ａ〜図５Ｃの例において、ブロック５００は、図６Ｅに示す対角線走査順序を使って走査される８×４ブロックである。Ｎ×Ｎビデオデータブロックを参照して上述したのと同様に、ブロック５０２および５０４は、それぞれ、ブロック５００についての有効係数フラグおよび最終有効係数フラグのブロックである。たとえば、ブロック５００内のブロック位置５０６は、対角線走査順序による、ブロック５００内の最終有効係数に対応する。さらに、ブロック位置５０８は、対角線走査順序による、ブロック５０２の「１」に等しい有効係数フラグの最終ものに対応する。同様に、ブロック位置５１０は、ブロック５０４の「１」に等しい最終有効係数フラグに対応する。
【０１３１】
図６Ａ〜図６Ｆは、本開示の技法と一致する、ジグザグ、水平、垂直、および対角線走査順序を使って走査される非正方ビデオデータブロックの例を示す概念図である。図６Ａ〜図６Ｆは、本開示の技法の一態様として、Ｎ列とＭ行とを備えるＮ×Ｍビデオデータブロックをコーディングするのに使うことができるジグザグ、水平、垂直、および対角線走査順序の例を示し、ＮおよびＭは、異なる値を有する（すなわち、ブロックは非正方である）。
【０１３２】
たとえば、図６Ａ〜図６Ｅの各々に示すブロック、すなわち、ブロック６００〜６０８は、８×４ブロックである。別の例として、図６Ｆに示すブロック、すなわち、ブロック６１０は、４×８ブロックである。図６Ａ〜図６Ｆに示す走査順序の各々は、ブロック６００〜６１０のそれぞれの１つにおいて、一般に「ＤＣ」位置と呼ばれる左上隅位置で始まり、ブロック内のＤＣ位置から右下位置に進む。たとえば、各ブロック内の矢印で示されるように、ブロック６００は、ジグザグ走査順序の一変形を使って走査され、ブロック６０２は、ジグザグ走査順序の別の変形を使って走査され、ブロック６０４は、水平走査順序を使って走査され、ブロック６０６は、垂直走査順序を使って走査され、ブロック６０８および６１０は、対角線走査順序を使って走査される。他の例では、本開示の技法と一致する、ジグザグ、水平、垂直、および対角線走査順序の他の変形、または他の走査順序が、非正方ビデオデータブロックをコーディングするのに使われ得る。
【０１３３】
図７Ａ〜図７Ｂは、本開示の技法と一致する、転置された非正方ビデオデータブロックの例を示す概念図である。図７Ａ〜図７Ｂに示すように、８×４ビデオデータブロック、すなわちブロック７００は、４×８ビデオデータブロック、すなわちブロック７０２を生じさせるように転置することができる。図７Ａ〜図７Ｂの例は、非正方ビデオデータブロックを転置する一例にすぎない。他の例では、本開示の技法と一致する、非正方ビデオデータブロックを転置するための異なる技法を使うことができる。
【０１３４】
図８Ａ〜図８Ｂは、本開示の技法と一致する、共通の１つまたは複数のコンテキストを使って有効係数位置情報がコーディングされる正方ビデオデータブロックおよび非正方ビデオデータブロックの例を示す概念図である。たとえば、上で説明したように、本開示の技法の別の態様によると、異なるジオメトリ（たとえば、正方および非正方）、ならびに／あるいは向き（たとえば、垂直および水平）を有するが、残差変換係数が同じ数であるビデオデータブロックは、同じコンテキストモデル、すなわち同じ１つまたは複数のコンテキストを共有することができる。一例として、本開示の技法は、特定のブロックの各有効係数フラグをエントロピーコーディングするためのコンテキストを判断するのに使うことができる、ブロックの間でのマッピングを提供する。たとえば、マッピングは、様々なジオメトリおよび／または向きを有する、ブロックの各々内の特定の位置に、同じまたは同様の確率（もしくは頻度）値を割り当てることができる。前述したように、確率、または頻度値は、コンテキストインデックスを使って示すことができる。
【０１３５】
Ｎ×Ｎ（すなわち、正方）ビデオデータブロックを使ういくつかの技法によると、特定のブロックの各有効係数フラグをエントロピーコーディングするのに使われるコンテキストは、ブロックに関連付けられた走査順序による、ブロック内のフラグの位置に依存する。一例として、４×４ビデオデータブロックおよび水平走査順序の場合、特定の有効係数フラグをコーディングするためのコンテキストは、以下の関係を使って導出することができる。
【数４】
0005869114.tif 000005
【０１３６】
ＣｔｘＩｎｃは、コーディングされる特定の有効係数フラグについてのコンテキストインデックスを示し、「ＰｏｓＹ」および「ＰｏｓＸ」は、それぞれ、Ｎ×Ｎブロック内のフラグに対応する係数の位置のｙ座標とｘ座標とを示す。
【０１３７】
本開示の技法によると、以下の関係が、８×２および２×８ブロックについての上述したマッピングの例を定義する。
【数５】
0005869114.tif 000006
【０１３８】
このマッピングでは、非正方ブロックが高さよりも長い幅を有すると仮定するが、他の例では、非正方ブロックが、幅よりも長い高さを有する場合がある。
【０１３９】
図８Ａは、上述した関係（すなわち、「ＣｔｘＩｎｃ＝４＊ＰｏｓＹ＋ＰｏｓＸ」）を使って、４×４ブロック、すなわちブロック８００の有効係数フラグについて判断されたコンテキストインデックスを示す。図８Ｂは、やはり上述した関係（すなわち、「Ｉｆ（ＰｏｓＸ＜４）ＣｔｘＩｎｃ＝４＊ＰｏｓＹ＋ＰｏｓＸ；そうでない場合、ＣｔｘＩｎｃ＝４＋４＊ＰｏｓＹ＋ＰｏｓＸ」）を使って、８×２ブロック、すなわちブロック８０２の有効係数フラグについて判断されたコンテキストインデックスを示す。
【０１４０】
上述した技法はまた、６４個の係数、または任意の数の係数を含む非正方ブロックの有効係数フラグをエントロピーコーディングするためのコンテキストを判断するのに使うことができる。
【０１４１】
２の因数（たとえば、２、４、８、１６など）での乗算は、「左ビットシフト」演算を使って遂行され得ることに留意されたい。たとえば、左ビットシフト演算「ａ＜＜３」は、「８＊ａ」と等価である。同様に、２の因数での除算は、「右ビットシフト」演算を使って遂行することができる。たとえば、右ビットシフト演算「ａ＞＞３」は、「ａ／８」と等価であり、より低い整数に丸める。一例として、８×８ブロックについて上述したコンテキストを判断するために、いくつかの技法では、以下の関係を使うことができる。
【数６】
0005869114.tif 000007
【０１４２】
本開示の技法によると、１６×４および４×１６ブロックについての上述したコンテキストは、以下の関係を使って判断することができる。
【数７】
0005869114.tif 000008
【０１４３】
同様に、３２×２ブロックについての上述したコンテキストは、以下の関係を使って判断することができる。
【数８】
0005869114.tif 000009
【０１４４】
このようにして、各コンテキストに対応する確率、または頻度は、３２×２および２×３２ブロックについて、ならびに１６×４および４×１６ブロックについて、８×８ブロックのものとかなりぴったりと合致し得る。したがって、本開示の技法と一致して、上記ブロックサイズすべてについてのコンテキストが共有され得る。
【０１４５】
図９Ａ〜図９Ｂは、本開示の技法と一致する、対角線走査順序により残差変換係数がグループ化された非正方ビデオデータブロックの例を示す概念図である。図９Ａに示すように、８×４ビデオデータブロック、すなわちブロック９００は、ブロックのより小さい次元（すなわち、高さ）から始まってブロック９００を走査する対角線走査順序を使って走査される。他の例では、対角線走査順序は、より大きい次元（すなわち、長さ）から始まって、ブロック９００を走査することができる。図９Ｂに示すように、ブロック９００の係数は、２つの係数グループ、すなわちグループ９０２およびグループ９０４にシリアル化され、各グループは、この例では、ブロック９００の１６個の係数を備える。他の例では、ブロック９００は、より多いまたは少ない係数を備えてよく、これらの係数は、任意の数の係数を各々が備える、より多いまたは少ないグループにグループ化することができる。いずれの場合にも、各グループ、この例では、グループ９０２およびグループ９０４内の有効係数の値、または「レベル」（たとえば、絶対値および符号）は、続いて、上述したようにコーディングすればよい。
【０１４６】
図１０Ａ〜図１０Ｂは、本開示の技法と一致する、非正方ビデオデータブロックの残差変換係数をコーディングする方法の例を示すフローチャートである。図１０Ａ〜図１０Ｂの技法は、一般に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せのいずれに実装されようと、任意の処理ユニットまたはプロセッサによって実施することができ、ソフトウェアまたはファームウェアに実装されるとき、ソフトウェアまたはファームウェアのための命令を実行するために、対応するハードウェアが提供され得る。例として、図１０Ａ〜図１０Ｂの技法について、ビデオ符号器２０（図１および図２）ならびに／あるいはビデオ復号器３０（図１および図３）に関して説明するが、他のデバイスが同様の技法を実行するように構成され得ることを理解されたい。その上、図１０Ａ〜図１０Ｂに示されるステップは、本開示の技法から逸脱することなく、異なる順序でまたは並行して実施されてもよく、追加のステップが追加されたり、いくつかのステップが省略されたりしてもよい。
【０１４７】
いくつかの例では、ビデオ符号器２０および／またはビデオ復号器３０は、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングすることができ、ブロックは、幅および高さで定義される非正方形状を有する。たとえば、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【０１４８】
最初に、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックに関連する走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘ座標およびｙ座標のうちの１つまたは複数をコーディングすればよい。たとえば、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断することができる（１０００Ａ）。ビデオ符号器２０および／またはビデオ復号器３０はさらに、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによってそれぞれの座標をコーディングすることができる（１００２Ａ）。
【０１４９】
いくつかの例では、ブロックの幅はｘ座標に対応してよく、ブロックの高さはｙ座標に対応してよい。言い換えると、ｘ座標をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ｘ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの幅を使うことができる。同様に、ｙ座標をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ｙ座標をコーディングするための１つまたは複数のコンテキストを判断するのに、ブロックの高さを使うことができる。
【０１５０】
他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが単ブロック位置を備えることを示す「１」に等しい場合、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つをコーディングしなくてよい。
【０１５１】
さらに他の例では、ｘおよびｙ座標のうちの１つまたは複数をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅および高さのうちの１つが、幅および高さのうちの１つが２つのブロック位置を備えることを示す「２」に等しい場合、およびブロックの幅および高さのうちの別の１つが、幅および高さのうちの別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい、幅および高さのうちの１つに対応する、ｘおよびｙ座標のうちの１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、幅および高さのうちの別の１つに対応する、ｘおよびｙ座標のうちの別の１つをコーディングするのに使われる１つまたは複数のコンテキストをさらに判断することができる。
【０１５２】
最終に、いくつかの例では、ビデオ符号器２０および／またはビデオ復号器３０は、さらに、ブロック内の非ゼロ係数の位置を識別する情報（すなわち、ブロックの有効係数位置情報）をコーディングすればよい（１００４Ａ）。
【０１５３】
他の例では、ビデオ符号器２０および／またはビデオ復号器３０は、やはり、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングすることができ、ブロックは、幅および高さで定義される非正方形状を有する。これらの例では、繰返しになるが、ブロックは、前に説明したように、ＣＵのＴＵであり得る。
【０１５４】
最初に、いくつかの例では、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックに関連する走査順序による、ブロック内の最終非０係数の位置を識別する情報（すなわち、ブロックの最終有効係数位置情報）をコーディングすればよい（１０００Ｂ）。
【０１５５】
さらに、ビデオ符号器２０および／またはビデオ復号器３０は、ブロック内の非ゼロ係数の位置を識別する情報（すなわち、ブロックについての有効係数位置情報）をコーディングすることができ、情報をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断することができる（１００２Ｂ）。ビデオ符号器２０および／またはビデオ復号器３０はさらに、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングすることができる（１００４Ｂ）。
【０１５６】
いくつかの例では、ビデオ符号器２０および／またはビデオ復号器３０はさらに、ブロック内の非ゼロ係数の位置のうちの１つまたは複数の各々について、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロック内のそれぞれの位置を示すｘおよびｙ座標を交換することができる。
【０１５７】
他の例では、ビデオ符号器２０および／またはビデオ復号器３０はさらに、ブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに先立って、ブロックを転置することができる。これらの例では、ブロックの幅および高さのうちの１つまたは複数は、転置ブロックの幅および高さのうちの１つまたは複数を備え得る。一例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅がブロックの高さよりも大きい場合、ブロックを転置することができる。別の例として、情報をコーディングするのに先立ってブロックを転置するために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの高さがブロックの幅よりも大きい場合、ブロックを転置することができる。
【０１５８】
いくつかの例では、ブロックは第１のブロックであってよい。これらの例では、ビデオ符号器２０および／またはビデオ復号器３０はさらに、第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングすることができ、ここで第２のブロックは第１のブロックとは異なり、第２のブロックは、サイズで定義される正方形状を有する。これらの例では、情報をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、第１のブロック内の非ゼロ係数の位置を識別する情報をコーディングするのに使われる、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、情報をコーディングすることができる。
【０１５９】
これらの例では、ビデオ符号器２０および／またはビデオ復号器３０はさらに、第１のブロックの幅および高さに、ならびに第２のブロックのサイズに基づいて、第１のブロックおよび第２のブロックが同じ数の係数を含むと判断し、第１のブロック内の係数の少なくとも１つの位置と、第２のブロック内の係数の少なくとも１つの位置とを、判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングすることができる。また、これらの例では、ビデオ符号器２０および／またはビデオ復号器３０はさらに、第１のブロック内の非ゼロ係数の位置を識別する情報および第２のブロック内の非ゼロ係数の位置を識別する情報に基づいて、判断された１つまたは複数のコンテキストをアップデートすることができる。
【０１６０】
さらなる例において、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックが所定の数またはより少ない係数を備えるとき、ブロックに関連付けられたイントラ予測モードに基づいて、走査順序のグループから、ブロックに関連付けられた走査順序として、ある走査順序を選択し、ブロックが所定の数よりも多い係数を備えるとき、ブロックに関連付けられた走査順序として、固定走査順序を選択することもできる。ビデオ符号器２０および／またはビデオ復号器３０はさらに、ブロックに関連付けられた、選択された走査順序を使って変換係数をコーディングすることができる。
【０１６１】
いくつかの例では、所定の数の係数は、６４個の係数を備え得る。他の例では、走査順序グループおよび固定走査順序は各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備え得る。一例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの小さい方から開始して走査することができる。別の例として、対角線走査順序は、ブロックを、ブロックの幅および高さのうちの大きい方から開始して走査することができる。
【０１６２】
さらに他の例では、ビデオ符号器２０および／またはビデオ復号器３０は、ブロック内の非ゼロ変換係数の値を識別する情報をコーディングすることもでき、コーディングは、ブロックに関連付けられた走査順序を使って、ブロックに関連付けられた変換係数をシリアル化することと、シリアル化された変換係数を、所定の数のシリアル化された変換係数を各々が含む１つまたは複数のグループに区分することと、各グループ内の非ゼロ変換係数の値を識別する情報をコーディングすることとを含む。
【０１６３】
いくつかの例では、所定の数の係数は、１６個の係数を備え得る。他の例では、ブロック内の非ゼロ変換係数の値を識別する情報をコーディングするために、ビデオ符号器２０および／またはビデオ復号器３０は、ブロックの幅および高さのうちの少なくとも１つが「４」の整数倍である値に等しくないとき、情報をコーディングすることができる。
【０１６４】
このように、図１０Ａの方法は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法の例を表し、ここでブロックは幅および高さで定義される非正方形状を有し、この方法は、ブロックに関連付けられた走査順序による、ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングすることを備え、ｘおよびｙ座標のうちの１つまたは複数の各々をコーディングすることは、座標に対応する、ブロックの幅および高さのうちの１つに少なくとも部分的に基づいて、それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、それぞれの座標をコーディングすることとを含む。さらに、図１０Ｂの方法は、ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法の例を表し、ここでブロックは、幅および高さで定義される非正方形状を有し、この方法は、ブロック内の非ゼロ係数の位置を識別する情報をコーディングすることを備え、情報をコーディングすることは、ブロックの幅および高さのうちの１つまたは複数に少なくとも部分的に基づいて、情報をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって情報をコーディングすることとを備える。
【０１６５】
さらに、本開示の技法と一致して、非正方ビデオデータブロックの残差変換係数のコーディングに関連して上述した技法はすべて、別個に、一緒に、またはそれらのどの組合せでも実施され得ることに留意されたい。
【０１６６】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、または（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１６７】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１６８】
命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１６９】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実施するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１７０】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
【Ｃ１】
ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記方法が、
前記ブロックに関連付けられた走査順序による、前記ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングすることを備え、前記ｘおよびｙ座標のうちの前記１つまたは複数の各々をコーディングすることが、
前記座標に対応する、前記ブロックの前記幅および前記高さのうちの１つに少なくとも部分的に基づいて、前記それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記それぞれの座標をコーディングすることとを含む方法。
【Ｃ２】
前記ブロックの前記幅が前記ｘ座標に対応し、前記ブロックの前記高さが前記ｙ座標に対応する、Ｃ１に記載の方法。
【Ｃ３】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングすることが、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが単ブロック位置を備えることを示す「１」に等しい場合、
前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの１つをコーディングしないことを備える、Ｃ１に記載の方法。
【Ｃ４】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングすることが、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが２つのブロック位置を備えることを示す「２」に等しい場合、前記ブロックの前記幅および前記高さのうちの別の１つが、前記幅および前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、
「２」に等しい、前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅および前記高さのうちの前記別の１つに対応する、前記ｘおよびｙ座標のうちの前記別の１つをコーディングするのに使われる前記１つまたは複数のコンテキストをさらに判断することを備える、Ｃ１に記載の方法。
【Ｃ５】
コーディングすることが、符号化することを備え、前記方法が、
前記ビデオデータブロックを符号化して、残差データを生成することと、
前記残差データを変換して、前記変換係数を生成することとをさらに備える、Ｃ１に記載の方法。
【Ｃ６】
コーディングすることが、復号することを備え、前記方法が、
前記変換係数を逆変換して、残差データを生成することと、
前記残差データを復号して、前記ビデオデータブロックを生成することとをさらに備える、Ｃ１に記載の方法。
【Ｃ７】
ビデオコーディングプロセス中にビデオデータブロックに関連付けられた変換係数をコーディングする方法であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記方法が、
前記ブロック内の非ゼロ係数の位置を識別する情報をコーディングすることを備え、前記情報をコーディングすることが、
前記ブロックの前記幅および前記高さのうちの１つまたは複数に少なくとも部分的に基づいて、前記情報をコーディングするのに使われる１つまたは複数のコンテキストを判断することと、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングすることとを備える方法。
【Ｃ８】
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換することをさらに備える、Ｃ７に記載の方法。
【Ｃ９】
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロックを転置することであって、前記ブロックの前記幅および前記高さのうちの前記１つまたは複数が、前記転置ブロックの幅および高さのうちの１つまたは複数を備えることをさらに備え、
前記情報をコーディングするのに先立って前記ブロックを転置することが、前記ブロックの前記幅が前記ブロックの前記高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの前記幅よりも大きい場合、前記ブロックを転置することのうちの１つを備える、Ｃ７に記載の方法。
【Ｃ１０】
前記ブロックが第１のブロックであり、前記方法が、
第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングすることであって、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有することをさらに備え、前記情報をコーディングすることが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングすることを備える、Ｃ７に記載の方法。
【Ｃ１１】
前記第１のブロックの前記幅および前記高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断することと、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングすることとをさらに備える、Ｃ１０に記載の方法。
【Ｃ１２】
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートすることをさらに備える、Ｃ１０に記載の方法。
【Ｃ１３】
前記ブロックが所定の数またはより少ない係数を備えるとき、前記ブロックに関連付けられたイントラ予測モードに基づいて、前記ブロックに関連付けられた走査順序として、走査順序のグループから、ある走査順序を選択することと、
前記ブロックが前記所定の数よりも多い係数を備えるとき、前記ブロックに関連付けられた前記走査順序として、固定走査順序を選択することと、
前記ブロックに関連付けられた、前記選択された走査順序を使って前記変換係数をコーディングすることとをさらに備える、Ｃ７に記載の方法。
【Ｃ１４】
前記所定の数の係数が６４個の係数を備える、Ｃ１３に記載の方法。
【Ｃ１５】
前記走査順序グループおよび前記固定走査順序が各々、ジグザグ走査順序、水平走査順序、垂直走査順序、および対角線走査順序のうちの少なくとも１つを備える、Ｃ１３に記載の方法。
【Ｃ１６】
前記対角線走査順序が、前記ブロックの前記幅および前記高さのうちの小さい方、ならびに前記ブロックの前記幅および前記高さのうちの大きい方のうちの１つから開始して、前記ブロックを走査する、Ｃ１５に記載の方法。
【Ｃ１７】
前記ブロック内の非ゼロ変換係数の値を識別する情報をコーディングすることであって、
前記ブロックに関連付けられた走査順序を使って、前記ブロックに関連付けられた前記変換係数をシリアル化することと、
前記シリアル化された変換係数を、所定の数の前記シリアル化された変換係数を各々が含む１つまたは複数のグループに区分することと、
各グループ内の非ゼロ係数の値を識別する情報をコーディングすることとを含むことをさらに備える、Ｃ７に記載の方法。
【Ｃ１８】
前記所定の数の係数が１６個の係数を備える、Ｃ１７に記載の方法。
【Ｃ１９】
前記ブロック内の前記非ゼロ変換係数の前記値を識別する前記情報をコーディングすることが、前記ブロックの前記幅および前記高さのうちの少なくとも１つが、「４」の整数倍である値に等しくないとき、前記情報をコーディングすることを備える、Ｃ１７に記載の方法。
【Ｃ２０】
コーディングすることが、符号化することを備え、前記方法が、
前記ビデオデータブロックを符号化して、残差データを生成することと、
前記残差データを変換して、前記変換係数を生成することとをさらに備える、Ｃ７に記載の方法。
【Ｃ２１】
コーディングすることが、復号することを備え、前記方法が、
前記変換係数を逆変換して、残差データを生成することと、
前記残差データを復号して、前記ビデオデータブロックを生成することとをさらに備える、Ｃ７に記載の方法。
【Ｃ２２】
ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成された装置であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記装置が、
前記ブロックに関連付けられた走査順序による、前記ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングするように構成されたビデオコーダを備え、前記ｘおよびｙ座標のうちの前記１つまたは複数の各々をコーディングするために、前記ビデオコーダが、
前記座標に対応する、前記ブロックの前記幅および前記高さのうちの１つに少なくとも部分的に基づいて、前記それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記それぞれの座標をコーディングするように構成される装置。
【Ｃ２３】
前記ブロックの前記幅が前記ｘ座標に対応し、前記ブロックの前記高さが前記ｙ座標に対応する、Ｃ２２に記載の装置。
【Ｃ２４】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングするために、前記ビデオコーダが、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが単ブロック位置を備えることを示す「１」に等しい場合、前記幅および前記高さのうちの前記１つに対応する前記ｘおよびｙ座標のうちの１つをコーディングしないように構成される、Ｃ２２に記載の装置。
【Ｃ２５】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングするために、前記ビデオコーダが、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが２つのブロック位置を備えることを示す「２」に等しい場合、ならびに前記ブロックの前記幅および前記高さのうちの別の１つが、前記幅および前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、「２」に等しい、前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅および前記高さのうちの前記別の１つに対応する、前記ｘおよびｙ座標のうちの前記別の１つをコーディングするのに使われる前記１つまたは複数のコンテキストをさらに判断するように構成される、Ｃ２２に記載の装置。
【Ｃ２６】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、Ｃ２２に記載の装置。
【Ｃ２７】
前記ビデオコーダがビデオ符号器を備え、前記ビデオ符号器が、
前記ビデオデータブロックを符号化して、残差データを生成し、
前記残差データを変換して、前記変換係数を生成するようにさらに構成される、Ｃ２２に記載の装置。
【Ｃ２８】
前記ビデオコーダがビデオ復号器を備え、前記ビデオが、
前記変換係数を逆変換して、残差データを生成し、
前記残差データを復号して、前記ビデオデータブロックを生成するようにさらに構成される、Ｃ２２に記載の装置。
【Ｃ２９】
ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成された装置であって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記装置が、
前記ブロック内の非ゼロ係数の位置を識別する情報をコーディングするように構成されたビデオコーダを備え、前記情報をコーディングするために、前記ビデオコーダが、
前記ブロックの前記幅および前記高さのうちの１つまたは複数に少なくとも部分的に基づいて、前記情報をコーディングするのに使われる１つまたは複数のコンテキストを判断し、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングするように構成される装置。
【Ｃ３０】
前記ビデオコーダが、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するようにさらに構成される、Ｃ２９に記載の装置。
【Ｃ３１】
前記ビデオコーダが、
前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロックを転置するようにさらに構成され、前記ブロックの前記幅および前記高さのうちの前記１つまたは複数が、前記転置ブロックの幅および高さのうちの１つまたは複数を備え、
前記情報をコーディングするのに先立って前記ブロックを転置するために、前記ビデオコーダが、前記ブロックの前記幅が前記ブロックの前記高さよりも大きい場合、前記ブロックを転置すること、および前記ブロックの前記高さが前記ブロックの前記幅よりも大きい場合、前記ブロックを転置することのうちの１つを実施するように構成される、Ｃ２９に記載の装置。
【Ｃ３２】
前記ブロックが第１のブロックであり、前記ビデオコーダが、
第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングするようにさらに構成され、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、前記情報をコーディングするために、前記ビデオコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングするように構成される、Ｃ２９に記載の装置。
【Ｃ３３】
前記ビデオコーダが、
前記第１のブロックの前記幅および前記高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断し、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするようにさらに構成される、Ｃ３２に記載の装置。
【Ｃ３４】
前記ビデオコーダが、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報および前記第２のブロック内の前記非ゼロ係数の前記位置を識別する前記情報に基づいて、前記判断された１つまたは複数のコンテキストをアップデートするようにさらに構成される、Ｃ３２に記載の装置。
【Ｃ３５】
前記装置が、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスとのうちの少なくとも１つを備える、Ｃ２９に記載の装置。
【Ｃ３６】
前記ビデオコーダがビデオ符号器を備え、前記ビデオ符号器が、
前記ビデオデータブロックを符号化して、残差データを生成し、
前記残差データを変換して、前記変換係数を生成するようにさらに構成される、Ｃ２９に記載の装置。
【Ｃ３７】
前記ビデオコーダがビデオ復号器を備え、前記ビデオが、
前記変換係数を逆変換して、残差データを生成し、
前記残差データを復号して、前記ビデオデータブロックを生成するようにさらに構成される、Ｃ２９に記載の装置。
【Ｃ３８】
ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成されたデバイスであって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記デバイスが、
前記ブロックに関連付けられた走査順序による、前記ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングするための手段を備え、前記ｘおよびｙ座標のうちの前記１つまたは複数の各々をコーディングするための前記手段が、
前記座標に対応する、前記ブロックの前記幅および前記高さのうちの１つに少なくとも部分的に基づいて、前記それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記それぞれの座標をコーディングするための手段とを備えるデバイス。
【Ｃ３９】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングするための前記手段が、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが単ブロック位置を備えることを示す「１」に等しい場合、
前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの１つをコーディングしないための手段を備える、Ｃ３８に記載のデバイス。
【Ｃ４０】
前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングするための前記手段が、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが２つのブロック位置を備えることを示す「２」に等しい場合、および前記ブロックの前記幅および前記高さのうちの別の１つが、前記幅および前記高さのうちの前記別の１つが２つより多いブロック位置を備えることを示す「２」よりも大きい値に等しい場合、
「２」に等しい、前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの前記１つに少なくとも部分的に基づいて、「２」よりも大きい値に等しい、前記幅および前記高さのうちの前記別の１つに対応する、前記ｘおよびｙ座標のうちの前記別の１つをコーディングするのに使われる前記１つまたは複数のコンテキストをさらに判断するための手段を備える、Ｃ３８に記載のデバイス。
【Ｃ４１】
ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングするように構成されたデバイスであって、前記ブロックが、幅および高さで定義される非正方形状を有し、前記デバイスが、
前記ブロック内の非ゼロ係数の位置を識別する情報をコーディングするための手段を備え、前記情報をコーディングするための前記手段が、
前記ブロックの前記幅および前記高さのうちの１つまたは複数に少なくとも部分的に基づいて、前記情報をコーディングするのに使われる１つまたは複数のコンテキストを判断するための手段と、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングするための手段とを備えるデバイス。
【Ｃ４２】
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換するための手段をさらに備える、Ｃ４１に記載のデバイス。
【Ｃ４３】
前記ブロックが第１のブロックであり、
第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングするための手段であって、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有する手段をさらに備え、前記情報をコーディングするための前記手段が、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングするための手段を備える、Ｃ４１に記載のデバイス。
【Ｃ４４】
前記第１のブロックの前記幅および前記高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断するための手段と、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングするための手段とをさらに備える、Ｃ４３に記載のデバイス。
【Ｃ４５】
実行されると、１つまたは複数のプロセッサに、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングさせる命令を記憶するコンピュータ可読記憶媒体であって、前記ブロックが幅および高さで定義される非正方形状を有し、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックに関連付けられた走査順序による、前記ブロック内の最終非ゼロ係数の位置を示すｘおよびｙ座標のうちの１つまたは複数をコーディングさせ、前記１つまたは複数のプロセッサに、前記ｘおよびｙ座標のうちの前記１つまたは複数の各々をコーディングさせる前記命令が、前記１つまたは複数のプロセッサに、
前記座標に対応する、前記ブロックの前記幅および前記高さのうちの１つに少なくとも部分的に基づいて、前記それぞれの座標をコーディングするのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって前記それぞれの座標をコーディングさせる命令を備えるコンピュータ可読記憶媒体。
【Ｃ４６】
前記１つまたは複数のプロセッサに、前記ｘおよびｙ座標のうちの前記１つまたは複数をコーディングさせる前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックの前記幅および前記高さのうちの１つが、前記幅および前記高さのうちの前記１つが単ブロック位置を備えることを示す「１」に等しい場合、
前記幅および前記高さのうちの前記１つに対応する、前記ｘおよびｙ座標のうちの１つをコーディングさせない命令を備える、Ｃ４５に記載のコンピュータ可読記憶媒体。
【Ｃ４７】
実行されると、１つまたは複数のプロセッサに、ビデオコーディングプロセス中に、ビデオデータブロックに関連付けられた変換係数をコーディングさせる命令を記憶するコンピュータ可読記憶媒体であって、前記ブロックが幅および高さで定義される非正方形状を有し、前記命令が、前記１つまたは複数のプロセッサに、
前記ブロック内の非ゼロ係数の位置を識別する情報をコーディングさせ、前記１つまたは複数のプロセッサに、前記情報をコーディングさせる前記命令が、前記１つまたは複数のプロセッサに、
前記ブロックの前記幅および前記高さのうちの１つまたは複数に少なくとも部分的に基づいて、前記情報をコーディングするのに使われる１つまたは複数のコンテキストを判断させ、
前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングさせる命令を備えるコンピュータ可読記憶媒体。
【Ｃ４８】
前記１つまたは複数のプロセッサに、
前記ブロック内の前記非ゼロ係数の前記位置のうちの１つまたは複数の各々について、前記ブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに先立って、前記ブロック内の前記それぞれの位置を示すｘおよびｙ座標を交換させる命令をさらに備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
【Ｃ４９】
前記ブロックが第１のブロックであり、前記１つまたは複数のプロセッサに、
第２のブロック内の非ゼロ係数の位置を識別する情報をコーディングさせる命令をさらに備え、前記第２のブロックが前記第１のブロックとは異なり、前記第２のブロックが、サイズで定義される正方形状を有し、前記１つまたは複数のプロセッサに、前記情報をコーディングさせる前記命令が、前記１つまたは複数のプロセッサに、
前記第１のブロック内の前記非ゼロ係数の前記位置を識別する前記情報をコーディングするのに使われる、前記判断された１つまたは複数のコンテキストに少なくとも部分的に基づいて、コンテキスト適応型エントロピーコーディングプロセスを実施することによって、前記情報をコーディングさせる命令を備える、Ｃ４７に記載のコンピュータ可読記憶媒体。
【Ｃ５０】
前記１つまたは複数のプロセッサに、
前記第１のブロックの前記幅および前記高さに、ならびに前記第２のブロックの前記サイズに基づいて、前記第１のブロックおよび前記第２のブロックが同じ数の係数を含むと判断させ、
前記第１のブロック内の係数の少なくとも１つの位置および前記第２のブロック内の係数の少なくとも１つの位置を、前記判断された１つまたは複数のコンテキストのうちの少なくとも１つの共通コンテキストにマッピングさせる命令をさらに備える、Ｃ４９に記載のコンピュータ可読記憶媒体。
【図１】
0005869114.tif 000010
【図２】
0005869114.tif 000011
【図３】
0005869114.tif 000012
【図４Ａ】
0005869114.tif 000013
【図４Ｂ】
0005869114.tif 000014
【図４Ｃ】
0005869114.tif 000015
【図５Ａ】
0005869114.tif 000016
【図５Ｂ】
0005869114.tif 000017
【図５Ｃ】
0005869114.tif 000018
【図６Ａ】
0005869114.tif 000019
【図６Ｂ】
0005869114.tif 000020
【図６Ｃ】
0005869114.tif 000021
【図６Ｄ】
0005869114.tif 000022
【図６Ｅ】
0005869114.tif 000023
【図６Ｆ】
0005869114.tif 000024
【図７Ａ】
0005869114.tif 000025
【図７Ｂ】
0005869114.tif 000026
【図８Ａ】
0005869114.tif 000027
【図８Ｂ】
0005869114.tif 000028
【図９Ａ】
0005869114.tif 000029
【図９Ｂ】
0005869114.tif 000030
【図１０Ａ】
0005869114.tif 000031
【図１０Ｂ】
0005869114.tif 000032