(57)【要約】  本開示では、ビデオデータのブロックのための変換係数をコーディングするための技法について説明する。これらの技法によれば、ビデオコーダ（ビデオエンコーダまたはビデオデコーダ）は、第１のＶＬＣテーブルアレイ選択テーブル、ならびに第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示をメモリに記憶する。ビデオコーダは、第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差の記憶された指示を使用して、第１のＶＬＣテーブルアレイ選択テーブルに基づいて、第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成する。ビデオコーダは、ビデオデータの少なくとも１つのブロックをコーディングするために、第２のＶＬＣテーブルアレイ選択テーブルの再構成された少なくとも１つのエントリを使用する。
2014525180.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータのブロックをコーディングする方法であって、
第１のＶＬＣテーブルアレイ選択テーブルをメモリに記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示を記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の前記差の前記記憶された指示を使用して、前記第１のＶＬＣテーブルアレイ選択テーブルに基づいて、前記第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成することと、
ビデオデータの少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用することと
を備える、方法。
【請求項２】
ビデオデータの前記少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用することが、ビデオデータの前記少なくとも１つのブロックに関連する少なくとも１つのシンタックス要素をコーディングするために、ＶＬＣテーブルの複数のアレイのうちのＶＬＣテーブルのアレイを選択するために、前記再構成された少なくとも１つのエントリを使用することを備える、請求項１に記載の方法。
【請求項３】
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の前記指示を記憶することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の対応するエントリとは異なる前記第２のＶＬＣテーブルアレイ選択テーブル中の前記少なくとも１つのエントリの値を記憶することを備える、請求項１に記載の方法。
【請求項４】
前記第２のＶＬＣテーブルアレイ選択テーブルの前記少なくとも１つのエントリを再構成することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の前記対応するエントリを前記第２のＶＬＣテーブルアレイ選択テーブルの前記少なくとも１つのエントリと交換することを備える、請求項３に記載の方法。
【請求項５】
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の前記指示を記憶することが、前記第２のＶＬＣテーブルアレイ選択テーブル中の前記少なくとも１つのエントリと前記第１のＶＬＣテーブルアレイ選択テーブル中の少なくとも１つの対応するエントリとの間の差の値を記憶することを備える、請求項１に記載の方法。
【請求項６】
前記第２のＶＬＣテーブルアレイ選択テーブルを再構成することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の前記対応するエントリに前記差の前記値を加算するか、またはそこから減算することを備える、請求項５に記載の方法。
【請求項７】
前記方法が、コンピューティングデバイスのプロセッサによって実行される、請求項１に記載の方法。
【請求項８】
前記方法が、ビデオエンコーダによって実行される、請求項１に記載の方法。
【請求項９】
前記方法が、ビデオデコーダによって実行される、請求項１に記載の方法。
【請求項１０】
ビデオデータの少なくとも１つのブロックをコーディングするように構成されたデバイスであって、
第１のＶＬＣテーブルアレイ選択テーブルをメモリに記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示を記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の前記差の前記記憶された指示を使用して、前記第１のＶＬＣテーブルアレイ選択テーブルに基づいて、前記第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成することと、
ビデオデータの少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用することと
を行うように構成されたプロセッサ
を備える、デバイス。
【請求項１１】
ビデオデータの前記少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用することが、ビデオデータの前記少なくとも１つのブロックに関連する少なくとも１つのシンタックス要素をコーディングするために、ＶＬＣテーブルの複数のアレイのうちのＶＬＣテーブルのアレイを選択するために、前記再構成された少なくとも１つのエントリを使用することを備える、請求項１０に記載のデバイス。
【請求項１２】
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の前記指示を記憶することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の対応するエントリとは異なる前記第２のＶＬＣテーブルアレイ選択テーブル中の前記少なくとも１つのエントリの値を記憶することを備える、請求項１０に記載のデバイス。
【請求項１３】
前記第２のＶＬＣテーブルアレイ選択テーブルの前記少なくとも１つのエントリを再構成することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の前記対応するエントリを前記第２のＶＬＣテーブルアレイ選択テーブルの前記少なくとも１つのエントリと交換することを備える、請求項１２に記載のデバイス。
【請求項１４】
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の前記指示を記憶することが、前記第２のＶＬＣテーブルアレイ選択テーブル中の前記少なくとも１つのエントリと前記第１のＶＬＣテーブルアレイ選択テーブル中の少なくとも１つの対応するエントリとの間の差の値を記憶することを備える、請求項１０に記載のデバイス。
【請求項１５】
前記第２のＶＬＣテーブルアレイ選択テーブルを再構成することが、前記第１のＶＬＣテーブルアレイ選択テーブル中の前記対応するエントリに前記差の前記値を加算するか、またはそこから減算することを備える、請求項１４に記載のデバイス。
【請求項１６】
前記プロセッサがビデオエンコーダを備える、請求項１０に記載のデバイス。
【請求項１７】
前記プロセッサがビデオデコーダを備える、請求項１０に記載のデバイス。
【請求項１８】
コンピューティングデバイスに、
第１のＶＬＣテーブルアレイ選択テーブルをメモリに記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示を記憶することと、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の前記差の前記記憶された指示を使用して、前記第１のＶＬＣテーブルアレイ選択テーブルに基づいて、前記第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成することと、
ビデオデータの少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用することと
を行わせるように構成された命令を記憶するコンピュータ可読記憶媒体。
【請求項１９】
ビデオデータの少なくとも１つのブロックをコーディングするように構成されたデバイスであって、
第１のＶＬＣテーブルアレイ選択テーブルをメモリに記憶するための手段と、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示を記憶するための手段と、
前記第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の前記差の前記記憶された指示を使用して、前記第１のＶＬＣテーブルアレイ選択テーブルに基づいて、前記第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成するための手段と、
ビデオデータの少なくとも１つのブロックをコーディングするために、前記第２のＶＬＣテーブルアレイ選択テーブルの前記再構成された少なくとも１つのエントリを使用するための手段と
を備える、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その各々の内容全体が参照により本明細書に組み込まれる、以下の米国仮出願の優先権を主張する。
【０００２】
２０１１年７月１１日に出願された米国仮出願第６１／５０６，５４２号、および
２０１１年１０月２７日に出願された米国仮出願第６１／５５２，３６７号。
【０００３】
本開示は、ビデオコーディングおよび圧縮に関する。より詳細には、本開示は、ビデオデータの１つまたは複数のブロックのための変換係数を符号化するために可変長コーディング（ＶＬＣ）を使用する技法を対象とする。
【背景技術】
【０００４】
エントロピー符号化は、ビデオデータを圧縮するためにビデオコーディングにおいて広く採用されている方法である。例示的なエントロピー符号化方法では、ビデオエンコーダは、画像のピクセルを表す量子化変換係数の１次元ベクトルを生成するために、その変換係数の２次元行列を走査する。ビデオデコーダはビデオデータを復号する。復号プロセスの一部として、ビデオデコーダは、変換係数の２次元行列を再構成するために、変換係数の１次元ベクトルを走査する。
【発明の概要】
【０００５】
１つまたは複数の例の詳細を添付の図面および以下の説明に記載する。本発明の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
【０００６】
例としては、ビデオデータのブロックをコーディングする方法があり、この方法では、第１のＶＬＣテーブルアレイ選択テーブルと、第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示とがメモリに記憶され、第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差の記憶された指示を使用して、第１のＶＬＣテーブルアレイ選択テーブルに基づいて、第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリが再構成される。ビデオデータの少なくとも１つのブロックをコーディングするために、第２のＶＬＣテーブルアレイ選択テーブルの再構成された少なくとも１つのエントリが使用される。
【０００７】
別の例では、プロセッサが、第１のＶＬＣテーブルアレイ選択テーブルと、第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の少なくとも１つの差の指示とをメモリに記憶することと、第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差の記憶された指示を使用して、第１のＶＬＣテーブルアレイ選択テーブルに基づいて、第２のＶＬＣテーブルアレイ選択テーブルの少なくとも１つのエントリを再構成することとによって、ビデオデータの少なくとも１つのブロックをコーディングするように構成される。ビデオデータの少なくとも１つのブロックをコーディングするために、第２のＶＬＣテーブルアレイ選択テーブルの再構成された少なくとも１つのエントリが使用される。
【０００８】
別の実施形態は、上記の例の方法または本明細書で開示する他の技法を実行するために使用され得る、コンピューティングデバイスのプロセッサ、または特にエンコーダまたはデコーダを含む。他の実施形態は、プロセッサにそのような方法を実行させるための命令を記憶するコンピュータ可読媒体を含む。
【図面の簡単な説明】
【０００９】
【図１】本開示の技法に従って動作するように構成されたビデオ符号化および復号システムの一例を示すブロック図。
【図２】本開示の技法に従って動作するように構成されたビデオエンコーダの一例を示すブロック図。
【図３】本開示の技法に従って動作するように構成されたビデオデコーダの一例を示すブロック図。
【図４】本開示の技法によるビデオ符号化および復号の方法を示す２つの表。
【図５】本開示の技法によるビデオ符号化および復号方法の例を示す流れ図。
【発明を実施するための形態】
【００１０】
概して、本開示では、ビデオデータをコーディングするための技法について説明する。より詳細には、本明細書で説明する技法は、シンタックス要素のエントロピーコーディングを実行するために使用され得るＶＬＣテーブルアレイ選択テーブルを記憶するためにコーダによって使用されるメモリの量を低減することを対象とする。
【００１１】
一般的な適用例では、符号化ビデオデータは予測データと残差データとを含む。そのような場合、ビデオエンコーダは、イントラ予測モードまたはインター予測モードを使用して予測データを生成する。イントラ予測は、概して、あるピクチャのブロックを、同じピクチャの隣接する、前にコーディングされたブロックに対して予測することを伴う。インター予測は、概して、あるピクチャのブロックを、前にコーディングされたピクチャのデータに対して予測することを伴う。
【００１２】
イントラ予測またはインター予測の後に、ビデオエンコーダはブロックの残差値を計算する。この残差値は、概して、ブロックの予測データとブロックの真値との間の差に対応する。ブロックの残差値をさらに圧縮するために、残差値は、（「エネルギー」とも呼ばれる）できるだけ多くのデータをできるだけ少数の係数に構成する変換係数のセットに変換される。変換係数は、元のブロックと同じサイズである係数の２次元行列に対応する。言い換えれば、元のブロック中のピクセルとちょうど同数の変換係数がある。ただし、変換により、変換係数の多くは、一般に、０に等しい値を有す。
【００１３】
ビデオエンコーダは、量子化変換係数を表すために必要とされるデータの量を低減するためにさらにビデオデータを圧縮するために、しばしば変換係数を量子化する。量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む２次元行列から１次元ベクトルを生成する。ビデオエンコーダは、場合によっては、走査の前または後に０に等しいいくつかの係数を設定する。
【００１４】
ビデオエンコーダは、データをなお一層圧縮するために、得られたアレイをエントロピー符号化する。いくつかの例では、ビデオエンコーダは、たとえば、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）を使用して、アレイの様々な可能な量子化変換係数を表すために可変長コード（ＶＬＣ）を使用するように構成される。他の例では、ビデオエンコーダは、たとえば、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）を使用して、得られた量子化係数を符号化するためにバイナリ算術コーディングを使用するように構成される。他の例では、ビデオエンコーダは、得られた量子化係数を符号化するために確率間隔区分エントロピーコード（ＰＩＰＥ）を使用するように構成される。
【００１５】
本開示では、ビデオコーディングプロセス中に変換係数を走査することに関する技法について説明する。本技法は、ビデオ符号化および／または復号を実行するように構成されたビデオエンコーダ／デコーダ（コーデック）と処理ユニットとを含む、ビデオ符号化ユニットとビデオ復号ユニットの両方に適用可能である。「ビデオコーディングユニット」または「ビデオコーディングデバイス」への言及は、ビデオデータの符号化、復号、または符号化と復号の両方が可能なユニットまたはデバイスを指すものと理解されたい。
【００１６】
説明する技法は、ビデオコーディング、詳細には、ＶＬＣテーブルアレイ選択テーブルを記憶するためにコーダによって使用されるメモリの量を低減することを対象とする。本明細書で使用する「コーディングする」、「コーダ」、「コーディング」「コーディングされた」などの用語は、符号化および／または復号に適用可能な本発明の態様を指す。
【００１７】
図１は、本開示の技法を実装するように構成され得る例示的なビデオ符号化および復号システム１００を示すブロック図である。図１に示すように、システム１００は、通信チャネル１１５を介して符号化ビデオを宛先デバイス１０６に送信するソースデバイス１０２を含む。ソースデバイス１０２および宛先デバイス１０６は、広範囲のデバイスのうちのいずれかを備える。場合によっては、ソースデバイス１０２および宛先デバイス１０６は、いわゆるセルラーまたは衛星無線電話などのワイヤレス通信デバイスハンドセットを備える。しかしながら、ビデオデータの変換係数の符号化および復号に一般に適用される本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らず、ビデオ符号化および／または復号能力を含む多種多様な非ワイヤレスデバイスに潜在的に適用可能である。
【００１８】
図１の例では、ソースデバイス１０２は、ビデオソース１２０と、ビデオエンコーダ１２２と、変調器／復調器（モデム）１２４と、送信機１２６とを含む。宛先デバイス１０６は、受信機１２８と、モデム１３０と、ビデオデコーダ１３２と、ディスプレイデバイス１３４とを含む。本開示によれば、ソースデバイス１０２のビデオエンコーダ１２２は、（たとえば、各々が表示された画像のピクセルに対応する）変換係数を表す１次元ベクトルへの変換係数の２次元行列を含むビデオデータのブロックの変換係数を走査する。本開示のいくつかの実施形態によれば、ビデオエンコーダ１２２は、ビデオデータのブロックの第１の複数の係数を適応的に走査し、ブロックの第２の複数の係数のために固定走査を使用する。たとえば、第１の複数の変換係数について、ビデオエンコーダ１２２は、ビデオデータの少なくとも１つの前に符号化されたブロックの変換係数が走査された順序に応じて、第１の複数の変換係数が走査される順序を適応的に変更する。たとえば、ビデオエンコーダ１２２は、他の前に符号化されたブロック中の同じ位置における係数が非０係数である頻度に基づいて、変換係数が走査される順序を変更する。第２の複数の変換係数について、ビデオエンコーダ１２２は、ビデオデータの少なくとも１つの前に符号化されたブロックの走査順序に応じて、第２の複数の変換係数が走査される順序を適応的に変更しない。代わりに、ビデオエンコーダ１２２は、エンコーダによって符号化されるビデオデータの複数のブロックのために同じ走査順序を使用して第２の複数の係数を走査する。
【００１９】
宛先デバイス１０６のビデオデコーダ１３２はまた、逆変換係数復号を実行するように構成され得る。それらの状況下で、ビデオデコーダ１３２は、変換係数の２次元行列を再構成するために、ビデオデータのブロックを表す変換係数の１次元ベクトルの係数を変換係数の２次元行列内の位置にマッピングする。
【００２０】
図１の図示のシステム１００は例にすぎない。本開示の変換係数符号化および復号技法は任意の符号化デバイスまたは復号デバイスによって実行され得る。ソースデバイス１０２および宛先デバイス１０６は、そのような技法をサポートすることができるコーディングデバイスの例にすぎない。
【００２１】
この例では、ソースデバイス１０２のビデオエンコーダ１２２は、ビデオソース１２０から受信したビデオデータを符号化する。ビデオソース１２０は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードを備える。さらなる代替として、ビデオソース１２０は、場合によっては、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成する。場合によっては、ビデオソース１２０がビデオカメラである場合、ソースデバイス１０２および宛先デバイス１０６は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成する。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオまたはコンピュータ生成ビデオは、ビデオエンコーダ１２２によって符号化される。
【００２２】
例示的なシステム１００では、ビデオデータがビデオエンコーダ１２２によって符号化されると、符号化されたビデオ情報は、たとえば、符号分割多元接続（ＣＤＭＡ）あるいは他の通信規格または技法などの通信規格に従ってモデム１２４によって変調され、送信機１２６を介して宛先デバイス１０６に送信される。モデム１２４は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含む。この例の送信機１２６は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含む。宛先デバイス１０６の受信機１２８はチャネル１１５を介して情報を受信し、モデム１３０は情報を復調する。同じく、ビデオデコーダ１３２によって実行されるビデオ復号プロセスは、ビデオエンコーダ１２２によって実行される符号化技法と同様の（たとえば、逆）復号技法を含む。
【００２３】
本開示のいくつかの態様によれば、通信チャネル１１５は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理的伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体の任意の組合せを備える。そのような場合、通信チャネル１１５は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成する。通信チャネル１１５は、概して、ビデオデータをソースデバイス１０２から宛先デバイス１０６に送信するための好適な任意の通信媒体、または様々な通信媒体の集合を表す。
【００２４】
この場合も、図１は例にすぎず、本開示の技法は、必ずしも符号化デバイスと復号デバイスとの間のデータ通信を含むとは限らないビデオコーディング設定（たとえば、ビデオ符号化またはビデオ復号）に適用可能である。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化デバイスがデータを符号化し、メモリに記憶し、および／または復号デバイスがメモリからデータを取り出し、復号する。多くの場合、符号化および復号は、互いに通信しないが、単にメモリにデータを符号化し、および／またはメモリからデータを取り出し、復号する無関係なデバイスによって実行される。
【００２５】
図１には示されていないが、いくつかの態様では、ビデオエンコーダ１２２およびビデオデコーダ１３２は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、場合によっては、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００２６】
ビデオエンコーダ１２２およびビデオデコーダ１３２のいずれかまたは両方は、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せとして実装され得る。ビデオエンコーダ１２２およびビデオデコーダ１３２の各々は潜在的に１つまたは複数のエンコーダまたはデコーダ中に含まれ、それらのいずれも潜在的に複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合される。
【００２７】
場合によっては、デバイス１０２、１０６は、実質的に対称的に動作するように構成され得る。たとえば、デバイス１０２、１０６の各々は、場合によっては、ビデオ符号化および復号構成要素を含む。したがって、システム１００は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、またはビデオテレフォニーのためのビデオデバイス１０２とビデオデバイス１０６との間の一方向または双方向のビデオ送信をサポートすることができる。
【００２８】
符号化プロセス中に、ビデオエンコーダ１２２は、いくつかのコーディング技法または演算を実行する。概して、ビデオエンコーダ１２２は、ビデオブロックを符号化するために、個々のビデオフレーム（またはスライスなどの他の独立してコーディングされたユニット）内のビデオブロック上で動作する。フレーム、スライス、フレームの部分、ピクチャのグループ、または他のデータ構造は、複数のビデオブロックを含む独立したデータユニットとして定義され得、シンタックス要素は、そのような様々な独立したデータユニットに含まれ得る。独立したデータユニット内のビデオブロックは、固定サイズまたは可変サイズを有し、場合によっては、指定されたコーディング規格に応じてサイズが異なり得る。場合によっては、各ビデオフレームは、一連の単独で復号可能なスライスを含み、各スライスは、さらに、１つまたは複数のマクロブロックまたはＬＣＵを含むことができる。
【００２９】
再び図１を参照すると、ビデオエンコーダ１２２は、予測ブロックを識別するために、コーディングされているビデオブロックがビデオデータの別のブロックと比較される予測コーディングをしばしば実行する。予測コーディングのこのプロセスは、しばしば、動き推定および動き補償と呼ばれる。動き推定は、１つまたは複数の予測フレーム（または他のコーディングユニット）の１つまたは複数の予測ビデオブロックに対するビデオブロックの動きを推定する。動き補償は、１つまたは複数の予測フレームあるいは他のコーディングユニットから所望の予測ビデオブロックを生成する。動き補償は、分数ピクセル精度で予測データを生成するために補間フィルタ処理が実行される補間プロセスを含む。
【００３０】
予測ブロックを生成した後に、コーディングされている現在のビデオブロックと予測ブロックとの間の差は残差ブロックとしてコーディングされ、予測ブロックを識別するために（動きベクトルなどの）予測シンタックスが使用される。残差ブロックは、変換され、量子化される。変換技法は、場合によっては、ＤＣＴプロセスまたは概念的に同様のプロセス、整数変換、ウェーブレット変換、または他のタイプの変換を備える。ＤＣＴプロセスまたはＤＣＴ様プロセスでは、一例として、変換プロセスは、ピクセル値（たとえば、残差値）のセットを、たとえば、周波数領域におけるピクセル値のエネルギーを表す変換係数に変換する。量子化は、一般に変換係数に適用され、概して、所与の変換係数に関連するビット数を制限するプロセスを伴う。
【００３１】
多くの実施形態では、変換および量子化に続いて、変換され、量子化された残差ビデオブロックに対してエントロピーコーディングが実行される。シンタックス要素、様々なフィルタシンタックス情報、および符号化中に定義される予測ベクトルが、エントロピーコード化ビットストリーム中に含まれる。概して、エントロピーコーディングは、一連の量子化変換係数および／または他のシンタックス情報をまとめて圧縮する、１つまたは複数のプロセスを備える。２次元ビデオブロックから係数の１つまたは複数のシリアル化１次元ベクトルを定義するために、量子化された変換係数に対して固定または適応走査順序などの走査技法が実行される。たとえば、本明細書で説明する技法によれば、ビデオブロックの異なる係数のために、固定走査技法と適応走査技法の両方が使用され得る。１つまたは複数のシリアル化１次元ベクトルを生成するために走査されると、走査された係数は、次いで、任意のシンタックス情報とともにエントロピーコーディングされる。
【００３２】
符号化プロセスの一部として、符号化されたビデオブロックは、後続のビデオブロックの後続の予測ベースのコーディングのために使用されるビデオデータを生成するために復号される。この段階で、ビデオ品質を改善し、たとえば、復号されたビデオからブロッキネスまたは他のアーティファクトを除去するために、フィルタ処理が採用され得る。このフィルタ処理は、場合によっては、ループ内（in-loop）またはループ後（post loop）である。ループ内フィルタ処理の場合、再構成されたビデオデータのフィルタ処理はコーディングループ内で行われ、これは、フィルタ処理されたデータが、後続の画像データの予測において後で使用するためにエンコーダまたはデコーダによって記憶されることを意味する。対照的に、ループ後フィルタ処理の場合、再構成されたビデオデータのフィルタ処理はコーディングループ外で行われ、これは、データのフィルタ処理されていないバージョンが、後続の画像データの予測において後で使用するためにエンコーダまたはデコーダによって記憶されることを意味する。
【００３３】
図２は、本開示に一致する例示的なビデオエンコーダ２５０を示すブロック図である。ビデオエンコーダ２５０は、ソースデバイス１００のビデオエンコーダ１２２、または異なるデバイスのビデオエンコーダのいずれかに対応し得る。図２に示すように、ビデオエンコーダ２５０は、予測モジュール２４０と、加算器２４１および２４６と、メモリ２４５とを含む。ビデオエンコーダ２５０は、変換モジュール２４２および量子化モジュール２４３、ならびに逆量子化モジュール２４８および逆変換モジュール２４７をも含む。ビデオエンコーダ２５０はエントロピーコーディングモジュール２４４をも含む。エントロピーコーディングモジュール２４４は走査モジュール２６０を含む。
【００３４】
符号化プロセス中に、ビデオエンコーダ２５０は、コーディングされるべきビデオブロックを受信し、予測モジュール２４０は予測コーディング技法を実行する。インターコーディングの場合、予測モジュール２４０は、予測ブロックを定義するために、符号化されるべきビデオブロックを１つまたは複数のビデオ参照フレームまたはスライス中の様々なブロックと比較する。イントラコーディングの場合、予測モジュール２４０は、ビデオデータの同じフレーム、スライス、または他のユニット内の隣接するデータに基づいて予測ブロックを生成する。予測モジュール２４０は予測ブロックを出力し、加算器２４１は、残差ブロックを生成するために、コーディングされているビデオブロックから予測ブロックを減算する。
【００３５】
本開示のいくつかの態様によれば、インターコーディングの場合、予測モジュール２４０は、予測ブロックを指す動きベクトルを識別し、動きベクトルに基づいて予測ブロックを生成する、動き推定モジュールおよび動き補償モジュール（図２に図示せず）を備える。一般に、動き推定は、動きを推定する、動きベクトルを生成するプロセスと考えられる。たとえば、動きベクトルは、現在のフレーム内のコーディングされている現在のブロックに対する予測フレーム内の予測ブロックの変位を示すことができる。動き補償は、一般に、動き推定によって判断された動きベクトルに基づいて予測ブロックをフェッチまたは生成するプロセスと考えられる。イントラコーディングの場合、予測モジュール２４０は、ビデオデータの同じフレーム、スライス、または他のユニット内の隣接するデータに基づいて予測ブロックを生成する。１つまたは複数のイントラ予測モードは、潜在的に、イントラ予測ブロックがどのように定義され得るかを定義することができる。
【００３６】
いくつかの例では、インターコーディングのための動き補償は、サブピクセル解像度への補間を含む。予測モジュール２４０によって生成された補間予測データは、たとえば、１／２ピクセル解像度、１／４ピクセル解像度、またはさらにより精細な解像度に補間される。これにより、動き推定が、そのようなサブピクセル解像度へのビデオブロックの動きを推定することが可能になる。
【００３７】
予測モジュール２４０が予測ブロックを出力した後、および加算器２４１が、残差ブロックを生成するために、コーディングされているビデオブロックから予測ブロックを減算した後、変換モジュール２４２は残差ブロックに変換を適用する。変換は、場合によっては、離散コサイン変換（ＤＣＴ）、整数変換、またはＩＴＵ  Ｈ．２６４規格、ＨＶＥＣ規格などによって定義されるものなど、概念的に同様の変換を備える。いくつかの例では、変換モジュール２４２は、別様にサイズ決定された変換を実行し、コーディング効率および改善された圧縮のために異なるサイズの変換を選択する。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換モジュール２４２は、残差ピクセル値の残差ブロックに特定の変換を適用し、残差変換係数のブロックを生成する。変換は、残差ピクセル値情報をピクセル領域から周波数領域に変換する。
【００３８】
逆量子化モジュール２４８および逆変換モジュール２４７は、それぞれ逆量子化および逆変換を適用して、ピクセル領域において残差ブロックを再構成する。加算器２４６は、再構成された残差ブロックを、予測モジュール２４０によって生成された予測ブロックに加算して、メモリ２４５に記憶するための再構成されたビデオブロックを生成する。フィルタモジュール２４９は、場合によっては、再構成されたビデオブロックに対してループ内フィルタ処理またはループ後フィルタ処理を実行する。
【００３９】
いくつかの例では、メモリ２４５は、符号化されるべき他のフレームのブロックに関する動き推定において使用するためのブロックのフレームまたはスライスを記憶する。そのような記憶より前に、ループ内フィルタ処理の場合、フィルタモジュール２４９は、ビデオ品質を改善するためにビデオブロックにフィルタ処理を適用する。フィルタモジュール２４９によるそのようなフィルタ処理はブロッキネスまたは他のアーティファクトを低減する。さらに、フィルタ処理は、コーディングされているビデオブロックへの緊密な一致を備える予測ビデオブロックを生成することによって、圧縮を改善する。フィルタ処理はまた、フィルタ処理されたデータは復号データとして出力されるが、フィルタ処理されていないデータは予測モジュール２４０によって使用されるように、ループ後に実行され得る。
【００４０】
いくつかの例では、量子化モジュール２４３は、ビットレートをさらに低減するために（たとえば、変換モジュール２４２からの）残差変換係数を量子化する。量子化モジュール２４３は、たとえば、係数の各々をコーディングするために使用されるビット数を制限する。量子化の後に、エントロピー符号化モジュール２４４は、データを走査し、エントロピー符号化する。たとえば、エントロピー符号化モジュール２４４は、１つまたは複数のシリアル化１次元ベクトルを生成するために、２次元表現から量子化係数ブロックを走査することができる。たとえば、走査モジュール２６０は、量子化係数ブロックを表す２次元行列の走査を実行することができる。
【００４１】
この走査プロセスに続いて、エントロピー符号化モジュール２４４が、データをさらに圧縮するために、本明細書で説明するエントロピーコーディング方法に従って（シンタックス要素とともに）量子化変換係数を符号化する。この例では、エントロピー符号化ビットストリーム中に含まれるシンタックス情報は、インターコーディングのための動きベクトルまたはイントラコーディングのための予測モードなど、予測モジュール２４０からの予測シンタックスを含む。エントロピー符号化ビットストリーム中に含まれるシンタックス情報は、場合によっては、予測モジュール２４０による補間のために適用されるフィルタ情報またはフィルタモジュール２４９によって適用されるフィルタなど、フィルタ情報をも含む。さらに、エントロピーコード化ビットストリーム中に含まれるシンタックス情報はまた、シンタックス要素（または他の情報）のうちの１つまたは複数を表す１つまたは複数のＶＬＣコードワードを含むことができる。
【００４２】
エントロピー符号化モジュール２４４によるエントロピーコーディングに続いて、符号化されたビデオは、別のデバイスに送信されるか、あるいは後で送信または検索するためにアーカイブされる。たとえば、デコーダは、エントロピー符号化モジュール２４４によって生成された、符号化されたビデオの変換係数の１次元ベクトルを使用して、ビデオデータのブロックを表す２次元行列を再構成することができる。
【００４３】
図３は、本明細書で説明する方法で符号化されたビデオシーケンスを復号するビデオデコーダ３５０の一例を示すブロック図である。受信されたビデオシーケンスは、場合によっては、画像フレームの符号化されたセット、フレームスライスのセット、通常コード化ピクチャグループ（ＧＯＰ：group of pictures）、または符号化されたビデオブロックとそのようなビデオブロックを復号する方法を定義するためのシンタックス情報とを含む多種多様なコード化ビデオユニットを備える。
【００４４】
図３に表すビデオデコーダ３５０は、図２のエントロピー符号化モジュール２４４によって実行される符号化の逆である復号関数を実行するエントロピー復号モジュール３４４を組み込んでいる。いくつかの例では、エントロピー復号モジュール３４４は、１次元シリアル化フォーマットのエントロピー符号化ビデオブロックを変換して２次元ブロックフォーマットに戻す。ベクトルの数およびサイズ、ならびにビデオブロックのために定義された走査順序は、２次元ブロックがどのように再構成されるかを定義する。
【００４５】
図３に示すように、ビデオデコーダはフィルタモジュール３４９を含む。フィルタモジュール３４９は、再構成されたビデオブロックに対してループ内フィルタ処理またはループ後フィルタ処理を実行することができる。ビデオデコーダ３５０はまた、予測モジュール３４０と、逆量子化ユニット３４３と、逆変換モジュール３４２と、メモリ３４５と、加算器３４６とを含む。
【００４６】
多種多様なビデオ圧縮技術および規格は、入力ビデオ信号に固有の冗長性を低減または除去するために、空間的および時間的予測を実行する。上記で説明したように、入力ビデオブロックは、空間的予測（すなわち、イントラ予測）および／または時間的予測（すなわち、インター予測または動き推定）を使用して予測される。本明細書で説明する予測モジュールは、一般に、与えられた入力ビデオブロックのための望ましい予測モードを選定するために、モード決定モジュール（図示せず）を含む。モード選択は、ブロックがイントラコード化されたのかインターコード化されたのか、イントラコーディングが使用された場合の予測ブロックサイズおよび予測モード、ならびにインターコーディングが使用された場合に使用された動きパーティションサイズおよび動きベクトルなど、様々なファクタを考慮する。入力ビデオブロックから予測ブロックが減算され、次いで、上記で説明したように、残差ビデオブロック上に変換および量子化が適用される。
【００４７】
量子化係数は、モード情報とともに、ビデオビットストリームを形成するためにエントロピー符号化され得る。量子化係数はまた、再構成されたビデオブロックを形成するために予測ビデオブロック（選定されたコーディングモードに応じてイントラ予測されたブロックまたは動き補償ブロック）に再加算され得る再構成された残差ブロックを形成するために、逆量子化および逆変換され得る。再構成されたビデオ信号中の視覚的アーティファクトを低減するために、ループ内フィルタ処理方法またはループ後フィルタ処理方法が適用可能である。再構成されたビデオブロックは、最後に、将来のビデオブロックのコーディングを使用するために参照フレームバッファ（すなわち、メモリ）に記憶される。
【００４８】
いくつかの例では、ビデオフレームの所与のリーフレベルブロックの係数がジグザグ走査技法に従って順序付けられる（走査される）。そのような技法は、エンコーダ２５０によって１次元の順序付き係数ベクトルを生成するために使用される。ジグザグ走査技法は、ブロックの上部左端の係数において開始することと、ブロックの下部左端の係数までジグザグパターンで走査し続けることとを備える。
【００４９】
ジグザグ走査技法によれば、最も大きいエネルギーを有する変換係数（たとえば、最も大きい係数値）が低周波変換関数に対応し、ブロックの左上に配置されることが想定される。したがって、ジグザグ走査に基づいて生成される係数ベクトル（たとえば、１次元係数ベクトル）について、より大きい大きさの係数は、ベクトルの開始近くに現れる可能性が最も高いと仮定される。係数ベクトルが量子化された後、大部分の低いエネルギー係数が０に等しくなることも仮定される。いくつかの例では、係数コーディング中に係数走査が適応される。たとえば、非０係数がより頻繁に発生する位置に、走査中のより小さい番号が割り当てられる。
【００５０】
いくつかの例によれば、エンコーダ２５０は、変換係数の逆方向ジグザグ走査を実行する。逆方向ジグザグ走査を実行するために、エンコーダ２５０は、最後非０係数（たとえば、ブロックの左上位置から最も遠い非０係数）に対応するロケーションにおいて符号化を開始する。上記のジグザグ走査の例とは異なり、逆方向ジグザグ走査の例によれば、エンコーダ２５０は、最後非０係数から（すなわち、ブロックの右下位置において）ブロックの左上位置までジグザグパターンでコーディングする。いくつかの例では、エンコーダ２５０は、１つまたは複数のすでにコード化された係数の大きさに基づいて、ランコーディングモードとコーディングのレベルモードとの間を切り替えるように構成される。
【００５１】
変換係数の逆方向ジグザグ走査に従って、エンコーダ２５０は、最後非０係数（すなわち、逆方向走査順序の第１の非０係数）を示すｌａｓｔ＿ｐｏｓシンタックス要素を最初に符号化することによって、ビデオデータのブロックを走査する。いくつかの例では、エンコーダ２５０はまた、最後非０係数の大きさが１であるのかまたは１よりも大きいのかを示すｌｅｖｅｌ＿ＩＤシンタックス要素を符号化する。いくつかの例では、エンコーダ２５０は、ｌａｓｔ＿ｐｏｓおよびｌｅｖｅｌ＿ＩＤシンタックス要素を一緒にＶＬＣコードワードとして符号化する。
【００５２】
ラン符号化モードの例によれば、係数が０よりも大きい大きさを有する場合、エンコーダ２５０は、走査された係数のためのｌｅｖｅｌ＿ＩＤシンタックス要素をシグナリングする。ｌｅｖｅｌ＿ＩＤシンタックス要素は、係数が１または１よりも大きい振幅を有するかどうかを示すことができる。たとえば、エンコーダ２５０は、係数が１に等しい大きさを有する場合、ｌｅｖｅｌ＿ＩＤに０の値を割り当てることができる。しかしながら、係数が１よりも大きい値を有する場合、エンコーダ２５０は、ｌｅｖｅｌ＿ＩＤに１の値を割り当てることができる。いくつかの例では、ｌｅｖｅｌ＿ＩＤが１の値を有する場合、エンコーダはまた、変換係数の大きさを示すレベルシンタックス要素をシグナリングすることができる。
【００５３】
ランコーディングモードを使用してビデオデータのブロックをコーディングすることを開始するために、エンコーダ２５０は、走査の最後非０係数（ジグザグ走査順序による、逆方向ジグザグ走査順序の第１の係数）の位置を示すｌａｓｔ＿ｐｏｓシンタックス要素を最初にシグナリングすることができる。上記で説明したように、エンコーダ２５０はまた、走査の最後非０係数が１または１よりも大きい値を有するかどうかを示すｌｅｖｅｌ＿ＩＤシンタックス要素をシグナリングすることができる。エンコーダ２５０がｌａｓｔ＿ｐｏｓシンタックス要素と、ｌａｓｔ＿ｐｏｓシンタックス要素に関連するｌｅｖｅｌ＿ＩＤシンタックス要素とをシグナリングした後、エンコーダ２５０は、ランシンタックス要素と、走査の１つまたは複数の他の係数に関連するｌｅｖｅｌ＿ＩＤシンタックス要素とをシグナリングすることができる。
【００５４】
ランシンタックス要素は、走査順序において現在（符号化）係数と次の非０係数との間が０に近いかまたは０に等しい振幅をもついくつかの係数を示す。一例によれば、ランシンタックス要素は、０からｋ＋１までの範囲の値を有することができ、ｋは現在非０係数の位置である。
【００５５】
いくつかの例では、ランおよびｌｅｖｅｌ＿ＩＤシンタックス要素を表すＶＬＣコードワードを判断するために、エンコーダ２５０は、最初に、ランおよびｌｅｖｅｌ＿ＩＤシンタックス要素についての値を判断し、判断された値をコード番号ｃｎを判断するために使用する。エンコーダ２５０は、次いで、判断されたコード番号ｃｎをＶＬＣコードワードを判断するために使用する。
【００５６】
いくつかの例では、ｌｅｖｅｌ＿ＩＤおよびランシンタックス要素についての判断された値に基づいてコード番号ｃｎを判断するために、エンコーダ２５０は、ｌｅｖｅｌ＿ＩＤおよびランシンタックス要素とコード番号ｃｎとの間の関係を定義するメモリに記憶された複数のマッピングテーブルのうちのマッピングテーブルを使用する。そのようなマッピングテーブルは、ｌｅｖｅｌ＿ＩＤおよびランシンタックス要素についての値の各可能な組合せについて、それぞれのｌｅｖｅｌ＿ＩＤおよびランシンタックス要素の各々に対応するコード番号を定義する。これらの例によれば、エンコーダ２５０は、コード番号ｃｎを判断するために、選択されたマッピングテーブルに判断されたｌｅｖｅｌ＿ＩＤおよびランシンタックス要素値を入力する。
【００５７】
いくつかの例では、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素をコーディングするために、エンコーダ２５０は、ｌａｓｔ＿ｐｏｓおよびｌｅｖｅｌ＿ＩＤシンタックス要素についての値を判断し、判断された値をコード番号ｃｎを判断するために使用する。コード番号ｃｎは、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素を表すＶＬＣコードワードを判断するために、複数のＶＬＣテーブルのうちの選択されたＶＬＣテーブルに入力され得るエントリ値を備える。いくつかの例では、エンコーダ２５０は、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素とコード番号ｃｎとの間の関係を定義するメモリに記憶された複数のマッピングテーブルのうちのマッピングテーブルを使用することに基づいて、コード番号ｃｎを判断する。他の例では、エンコーダ２５０は、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素とコード番号ｃｎとの間の関係を定義する構造化マッピングに基づいて、コード番号ｃｎを判断する。
【００５８】
上記の例に記載されているように、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素を表すそのようなＶＬＣコードワードを判断するために、エンコーダ２５０は、メモリに記憶された複数のＶＬＣテーブルのうちのＶＬＣテーブルを選択し、ＶＬＣコードワードを判断するために、選択されたＶＬＣテーブルに判断されたコード番号ｃｎを入力する。いくつかの例では、エンコーダ２５０は、ＶＬＣテーブルインデックス値に基づいて複数のＶＬＣテーブルのうちのＶＬＣテーブルを選択する。ＶＬＣテーブルインデックス値は、ｌｅｖｅｌ＿ＩＤおよびｌａｓｔ＿ｐｏｓシンタックス要素を表すＶＬＣコードワードを判断するためにコード番号ｃｎを入力するために、エンコーダ２５０が複数のＶＬＣテーブルのいずれを使用すべきかを示す。
【００５９】
上記の例で説明したように、コーダ（たとえば、エンコーダ２５０および／またはデコーダ３５０）は、予測タイプ（たとえば、イントラ、インター）および／またはビデオデータのブロックのサイズなど、ビデオデータのブロックの特性に専用の複数の異なるＶＬＣテーブルアレイ選択テーブルを記憶するように構成される。たとえば、エンコーダ２５０は、８×８のサイズをもつイントラ予測モードブロックに専用の第１のＶＬＣテーブルアレイ選択テーブルと、１６×１６のサイズをもつイントラ予測モードに専用の第２のＶＬＣテーブルアレイ選択テーブルとを記憶する。選択されたテーブルアレイはＶＬＣコードワードｃｎを生成し、ＶＬＣコードワードｃｎは、ビデオデータのブロックに関連するシンタックス要素をコーディングするために使用され得るコードワードを生成するために使用される。
【００６０】
そのようなテーブルの一例を図４に示す。８×８サイズの変換ブロックのイントラコーディングのための第１のＶＬＣテーブルアレイ選択テーブル
【数１】
2014525180.tif 000003
【００６１】
および１６×１６またはより大きいサイズの変換ブロックのイントラコーディングのための第２のＶＬＣテーブルアレイ選択テーブル
【数２】
2014525180.tif 000004
【００６２】
について考える。
【００６３】
２つのＶＬＣテーブルアレイ選択テーブル間の差は、ベクトルとして図４に表される。
【００６４】
図４の例によれば、第１のＶＬＣテーブルアレイ選択テーブルおよび第２のＶＬＣテーブルアレイ選択テーブルの各々は、ビデオデータのブロック内の複数の異なる係数位置のために使用され得るＶＬＣアレイを定義する。たとえば、第１のＶＬＣテーブルは８の値を有し、複数のテーブルアレイのうちの第９のＶＬＣテーブルアレイが、８×８イントラコード化ブロックの第１の係数のために使用されるべきであることを示す。上記で同じく示したように、第１のＶＬＣテーブルアレイ選択テーブル中の次の４つのエントリは０の値を有し、複数のＶＬＣテーブルアレイのうちの第１のＶＬＣテーブルアレイが、８×８イントラコード化ブロックの２番目〜５番目の係数位置のために使用されるべきであることを示す。同じく図４に示すように、第１のＶＬＣテーブルアレイは、さらなるエントリを含み、その値は、８×８イントラコード化ブロックの他の係数位置のために使用されるべきである異なるＶＬＣテーブルアレイを示す。
【００６５】
図４の例に従って、第１のＶＬＣテーブルアレイ選択テーブルおよび第２のＶＬＣテーブルアレイ選択テーブルはそれぞれ、２９個のエントリを含む。したがって、上記で示した第１および第２のＶＬＣテーブルアレイ選択テーブルを記憶するために、コーダ２５０、３５０はそれぞれ、５８個のエントリを記憶する。いくつかの例では、コーダ２５０、３５０はまた、予測タイプ（イントラ、インター）および／またはブロックサイズの異なる可能な値に専用の他のＶＬＣテーブルアレイ選択テーブルを記憶し得る。したがって、いくつかの例では、詳細には、コーダ２５０、３５０にとって利用可能なメモリの量が限定される場合、コーダ２５０、３５０が複数のＶＬＣテーブルアレイ選択テーブルを記憶することは望ましくない。
【００６６】
本明細書で説明する技法は、上記で説明したように、ＶＬＣテーブルアレイ選択テーブルを記憶するためにコーダ２５０、３５０によって使用されるメモリの量を低減することを対象とする。これらの技法によれば、第１のビデオブロック特性（たとえば、イントラコード化８×８）を対象とする第１のＶＬＣテーブルアレイ選択テーブルと、第２のビデオブロック特性（たとえば、イントラコード化１６×１６）を対象とする第２のＶＬＣテーブルアレイ選択テーブルとを記憶する代わりに、エンコーダは、それぞれのテーブルのうちのただ１つを記憶する。これらの技法によれば、上記で説明したように第２のＶＬＣテーブルアレイ選択テーブルを記憶する代わりに、コーダ２５０、３５０は、図４中のベクトルによって表される第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差の指示を記憶する。コーダ２５０、３５０は、テーブル間の差の記憶された指示を使用して、第１のＶＬＣテーブルアレイ選択テーブルから第２のＶＬＣテーブルアレイ選択テーブルの少なくとも一部分を再構成する。このようにして、第１および第２のＶＬＣテーブルアレイ選択テーブル（ならびに他のＶＬＣテーブルアレイ選択テーブル）を記憶するために使用されるメモリの量は、他の技法と比較して有利に低減され得る。
【００６７】
再び図４の例を参照すると、第２のＶＬＣテーブルアレイ選択テーブルの単一のエントリ（最後のエントリ）のみが、第１のＶＬＣテーブルアレイ選択テーブルとは異なる。本明細書で説明する技法によれば、コーダ２５０、３５０は、第２のＶＬＣテーブルの最後のエントリの代替値の指示および／または第１のＶＬＣテーブルアレイ選択テーブルの最後のエントリと第２のＶＬＣテーブルの最後のエントリとの間の差、たとえば図４のベクトルを記憶する。コーダ２５０、３５０は、そのような指示に基づいて、記憶された第１のＶＬＣテーブルアレイ選択テーブルを使用して第２のＶＬＣテーブル選択テーブルを再構成する。他の例では、２つ以上のエントリが２つのＶＬＣテーブルアレイ選択テーブル間で異なるとき、同じ技法が適用される。
【００６８】
いくつかの例では、上記で説明した第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差のそのような指示は、それぞれのテーブル間の１つまたは複数の差の位置の指示、ならびに差を示す値を含む。たとえば、上記で説明した第１および第２のＶＬＣテーブルアレイ選択テーブルによれば、コーダ２５０、３５０は、第２のＶＬＣテーブルアレイ選択テーブルの位置２７が第１のＶＬＣテーブルアレイ選択テーブルの位置２７とは異なるという指示を記憶する。コーダ２５０、３５０は差の大きさの指示をも記憶する。たとえば、コーダ２５０、３５０は、第２のＶＬＣテーブルアレイ選択テーブル中の２８番目のエントリ（位置２７）の値が２の値を有するという指示を記憶する。別の例によれば、コーダ２５０、３５０は、それぞれのテーブル中の２８番目のエントリ間の差の指示を記憶する。次いで、第２のテーブルが第１のテーブルから数学的に再構成され得る。たとえば、図４では、コーダは、それぞれの２９番目のエントリ間の差が１（１＋１＝２）であるという指示を記憶する。
【００６９】
図５は、例としてエンコーダを使用して適用される上記で説明した方法をさらに示す。ブロックタイプを判断するエンコーダ２５０にビデオデータのブロック５０２を入力する。入力されたブロック５０２がイントラコード化８×８ブロックである場合、エンコーダは、ＶＬＣアレイテーブルを選択するために、記憶された第１のテーブル５０４（ｇ＿ａｕｉＶｌｃＴａｂｌｅ８ｘ８Ｉｎｔｒａ）を使用する。入力されたブロック５０２がイントラコード化１６×１６ブロックである場合、エンコーダは、ＶＬＣアレイテーブルを選択するために、第１のテーブル５０４から再構成された第２のテーブル５０６（ｇ＿ａｕｉＶｌｃＴａｂｌｅ１６ｘ１６Ｉｎｔｒａ）を使用する。いずれの例でも、テーブルアレイがＶＬＣコードワードｃｎを生成し、ＶＬＣコードワードｃｎは、ビデオデータのブロックに関連するシンタックス要素をコーディングするために使用され得るコードワードを生成するために使用され得る。コード化シンタックス要素はエンコーダ出力５０８を備える。
【００７０】
本明細書で説明する技法によれば、コーダ２５０、３５０がビデオデータの８×８イントラ予測モードブロックをコーディングする場合、コーダ２５０、３５０は上記で説明した第１のＶＬＣテーブルアレイ選択テーブルを使用する。しかしながら、コーダ２５０、３５０がデータの１６×１６イントラ予測モードブロックをコーディングする場合、コーダは、第２のＶＬＣテーブルアレイ選択テーブルを再構成するために、上記で説明したようにそれぞれの第１のＶＬＣテーブルアレイ選択テーブルと第２のＶＬＣテーブルアレイ選択テーブルとの間の差の指示にアクセスする。同じく上記で説明したように、コーダ２５０、３５０は、ビデオデータのブロックの少なくとも１つの変換係数をコーディングするために、メモリに記憶された複数のＶＬＣテーブルアレイのうちのＶＬＣテーブルアレイを選択するために、再構成された第２のＶＬＣテーブルアレイ選択テーブルを使用する。
【００７１】
下記は、本明細書で説明する技法に一致する、メモリに記憶された複数のＶＬＣテーブルアレイのうちのＶＬＣテーブルアレイを選択するためにデコーダ３５０によって使用される擬似コードの一例である。以下の擬似コードは、そのような技法の一例にすぎず、例示のために与えたものにすぎない。他の例では、本明細書で説明する技法を実装するために異なる擬似コードが使用される。
【数３】
2014525180.tif 000005
【００７２】
上記の擬似コードによれば、コーダ２５０、３５０は、ビデオデータのブロックの予測タイプを最初に判断する。上記のように、予測タイプがイントラ予測タイプである場合、コーダ２５０、３５０は、ビデオデータのイントラ予測８×８ブロックを対象とするＶＬＣテーブルアレイ選択テーブルｇ＿ａｕｉＶｌｃＴａｂｌｅ８ｘ８Ｉｎｔｒａを選択する。コーダ２５０、３５０はまた、コーディングされているビデオデータのブロックのサイズと、ブロックの現在係数の位置とを判断する。コーダ２５０、３５０はさらに、ブロックのサイズと係数位置とを、少なくとも１つの値と比較する。たとえば、上記の擬似コードにおいて示したように、コーダ２５０、３５０は、２７よりも小さいかまたはそれに等しい位置で、ビデオデータのブロックのサイズが８に等しい（すなわち、４×４ブロックサイズ）か、または１６よりも大きいかまたはそれに等しいかを判断する。これらの条件のいずれかかが当てはまる場合、コーダ２５０、３５０は、前に識別されたｇ＿ａｕｉＶｌｃＴａｂｌｅ８ｘ８Ｉｎｔｒａ  ＶＬＣテーブル選択テーブルを使用して、ＶＬＣテーブルアレイを判断する。コーダ２５０、３５０は、さらに、判断されたＶＬＣテーブルアレイのＶＬＣテーブルを選択し、選択されたＶＬＣテーブルにコード番号ｃｎを入力する（エンコーダ２５９の場合、デコーダ３５０は、コード番号ｃｎを判断するためにＶＬＣコードワードを入力する）。
【００７３】
上記の例示的な擬似コードに同じく示したように、上記で説明した条件が当てはまらない場合、コーダ２５０、３５０は、ビデオデータのブロックのサイズが１６×１６のブロックサイズよりも大きいかまたはそれに等しいかどうか、および位置ｋが２８に等しいかどうかを判断する。これらの条件の両方が当てはまる場合、コーダ２５０、３５０は、テーブルｇ＿ａｕｉＶｌｃＴａｂｌｅ８ｘ８Ｉｎｔｒａに基づいてＶＬＣテーブルアレイを選択する代わりに、ＶＬＣテーブルアレイを選択するために２９番目のエントリ（位置２８）における値２を使用する。
【００７４】
したがって、コーダ２５０、３５０は、それぞれのテーブル間の差の記憶された指示（すなわち、値２）に基づいて、記憶された第１のＶＬＣテーブルアレイ選択テーブルから第２のＶＬＣテーブルアレイ選択テーブルｇ＿ａｕｉＶｌｃＴａｂｌｅ１６ｘ１６Ｉｎｔｒａを再構成する。このようにして、第２のＶＬＣテーブルアレイ選択テーブルｇ＿ａｕｉＶｌｃＴａｂｌｅ１６ｘ１６Ｉｎｔｒａは、コーダ２５０、３５０によって記憶される必要がなく、それによって、ビデオデータのブロックをコーディングするためにコーダ２５０、３５０によって使用されるメモリの量を低減する。
【００７５】
１つまたは複数の例では、本明細書で説明した機能は、少なくとも部分的に特定のハードウェア構成要素またはプロセッサなどのハードウェアで実装される。より一般的には、それらの技術は、ハードウェア、プロセッサ、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装される。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含むことができる。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応する。データ記憶媒体は、場合によっては、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体である。コンピュータプログラム製品は、場合によっては、コンピュータ可読媒体を含む。
【００７６】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続も、コンピュータ可読媒体、すなわち、コンピュータ可読伝送媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、この場合、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）はデータをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００７７】
命令は、１つまたは複数の中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指すことができる。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれる。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【００７８】
本開示の技法は、場合によっては、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【００７９】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲に入る。
【図１】
2014525180.tif 000006
【図２】
2014525180.tif 000007
【図３】
2014525180.tif 000008
【図４】
2014525180.tif 000009
【図５】
2014525180.tif 000010
【国際調査報告】
2014525180.tif 000011