(57)【特許請求の範囲】
【請求項１】
可変長コーディング（ＶＬＣ）の方法であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、前記ラン情報が、連続するゼロ係数の数を示すことと、
マルチレベルＶＬＣテーブルを定義するデータを記憶することであって、前記マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングすることと、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せの場合、前記第１のシンボル組合せに第１のコードワードを割り当てることであって、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備えることと、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第１のタイプのコードワードを割り当てることであって、前記第１のタイプのコードワードが、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備えることと、
を備える方法。
【請求項２】
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第２のコードワードを割り当てることであって、前記第２のコードワードが、前記第１レベルＶＬＣテーブルからのものであること、をさらに備える、請求項１に記載の方法。
【請求項３】
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のシンボル組合せに第２のタイプのコードワードを割り当てることであって、前記第２のタイプのコードワードが、前記第３のラン情報を備えることをさらに備える、請求項１に記載の方法。
【請求項４】
前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、請求項３に記載の方法。
【請求項５】
候補シンボル組合せの集合に関するコーディング統計を収集することと、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整することとをさらに備える、請求項１に記載の方法。
【請求項６】
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項５に記載の方法。
【請求項７】
前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項１に記載の方法。
【請求項８】
複数のマルチレベルＶＬＣテーブルを定義するデータを記憶することと、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別することとをさらに備える、請求項１に記載の方法。
【請求項９】
前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、請求項８に記載の方法。
【請求項１０】
前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項８に記載の方法。
【請求項１１】
前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項８に記載の方法。
【請求項１２】
前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、請求項１に記載の方法。
【請求項１３】
前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、請求項１に記載の方法。
【請求項１４】
前記方法がビデオ符号化デバイスによって実施される、請求項１に記載の方法。
【請求項１５】
前記方法がビデオ復号デバイスによって実施される、請求項１に記載の方法。
【請求項１６】
ビデオデータをコーディングするためのビデオコーディングデバイスであって、
マルチレベルＶＬＣテーブルを定義するデータを記憶するように構成された可変長コード（ＶＬＣ）テーブルモジュールであって、前記マルチレベルテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングする、モジュールと、
ＶＬＣコーディングモジュールであって、前記ＶＬＣコーディングモジュールは、
第１のシンボル組合せに第１のコードワードを割り当てるように構成され、ここにおいて、前記第１のシンボル組合せが、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備え、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備え、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せに、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備える第１のタイプのコードワードを割り当てるように構成される、モジュールと、
を備えるビデオコーディングデバイス。
【請求項１７】
前記ＶＬＣコーディングモジュールが、
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せに、前記第１レベルＶＬＣテーブルからのものである第２のコードワードを割り当てるようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項１８】
前記ＶＬＣコーディングモジュールが、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せに、前記第３のラン情報を備える第２のタイプのコードワードを割り当てるようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項１９】
前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、請求項１８に記載のビデオコーディングデバイス。
【請求項２０】
候補シンボル組合せの集合に関するコーディング統計を収集するように構成された統計分析モジュールと、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するように構成されたＶＬＣ適応モジュールとをさらに備える、請求項１６に記載のビデオコーディングデバイス。
【請求項２１】
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項２０に記載のビデオコーディングデバイス。
【請求項２２】
前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項１６に記載のビデオコーディングデバイス。
【請求項２３】
前記ＶＬＣテーブルモジュールが、複数のマルチレベルＶＬＣテーブルを定義するデータを記憶するようにさらに構成され、
前記ＶＬＣコーディングモジュールが、特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記特定のシンボル組合せ向けのコンテキストに基づいて識別するようにさらに構成される、請求項１６に記載のビデオコーディングデバイス。
【請求項２４】
前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、請求項２３に記載のビデオコーディングデバイス。
【請求項２５】
前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項２３に記載のビデオコーディングデバイス。
【請求項２６】
前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項２３に記載のビデオコーディングデバイス。
【請求項２７】
前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、請求項１６に記載のビデオコーディングデバイス。
【請求項２８】
前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、請求項１６に記載のビデオコーディングデバイス。
【請求項２９】
前記ビデオ復号デバイスがビデオ符号器である、請求項１６に記載のビデオコーディングデバイス。
【請求項３０】
前記ビデオ復号デバイスがビデオ復号器である、請求項１６に記載のビデオコーディングデバイス。
【請求項３１】
ビデオコーディング装置であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、前記ラン情報が、連続するゼロ係数の数を示す、手段と、
マルチレベルＶＬＣテーブルを定義するデータを記憶するための手段であって、前記マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングする、手段と、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せに対して、前記第１のシンボル組合せに第１のコードワードを割り当てるための手段であって、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備える、手段と、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第１のタイプのコードワードを割り当てるための手段であって、前記第１のタイプのコードワードが、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備える、手段と、
を備えるビデオコーディング装置。
【請求項３２】
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第２のコードワードを割り当てる手段であって、前記第２のコードワードが、前記第１レベルＶＬＣテーブルからのものである、手段をさらに備える、請求項３１に記載のビデオコーディング装置。
【請求項３３】
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のシンボル組合せに第２のタイプのコードワードを割り当てることであって、前記第２のタイプのコードワードが、前記第３のラン情報を備えることをさらに備える、請求項３１に記載のビデオコーディング装置。
【請求項３４】
前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、請求項３３に記載のビデオコーディング装置。
【請求項３５】
候補シンボル組合せの集合に関するコーディング統計を収集するための手段と、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するための手段とをさらに備える、請求項３１に記載のビデオコーディング装置。
【請求項３６】
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項３５に記載のビデオコーディング装置。
【請求項３７】
前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項３１に記載のビデオコーディング装置。
【請求項３８】
複数のマルチレベルＶＬＣテーブルを定義するデータを記憶するための手段と、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別するための手段とをさらに備える、請求項３１に記載のビデオコーディング装置。
【請求項３９】
前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、請求項３８に記載のビデオコーディング装置。
【請求項４０】
前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項３８に記載のビデオコーディング装置。
【請求項４１】
前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項３８に記載のビデオコーディング装置。
【請求項４２】
前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、請求項３１に記載のビデオコーディング装置。
【請求項４３】
前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、請求項３１に記載のビデオコーディング装置。
【請求項４４】
前記ビデオコーディング装置がビデオ符号器の一部である、請求項３１に記載のビデオコーディング装置。
【請求項４５】
前記ビデオコーディング装置がビデオ復号器の一部である、請求項３１に記載のビデオコーディング装置。
【請求項４６】
１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、
シンボル組合せにコードワードをマッピングする第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備えるマルチレベルＶＬＣテーブルを定義するデータを記憶させ、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せの場合、前記第１レベルＶＬＣテーブルからのエスケープコードを備える第１のコードワードを、前記第１のシンボル組合せに割り当てさせ、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備える第１のタイプのコードワードを前記第２のシンボル組合せに割り当てさせる、
１つまたは複数の命令を有形に記憶するコンピュータ可読記憶媒体。
【請求項４７】
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第１レベルＶＬＣテーブルからのものである第２のコードワードを、前記第２のシンボル組合せに割り当てさせる１つまたは複数の追加命令を有形に記憶する、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項４８】
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のラン情報を備える第２のタイプのコードワードを前記第３のシンボル組合せに割り当てさせる、１つまたは複数の追加命令を有形に記憶する、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項４９】
前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、請求項４８に記載のコンピュータ可読記憶媒体。
【請求項５０】
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
候補シンボル組合せの集合に関するコーディング統計を収集させ、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整させる、１つまたは複数の追加命令を有形に記憶する、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項５１】
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項５０に記載のコンピュータ可読記憶媒体。
【請求項５２】
前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項５３】
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
複数のマルチレベルＶＬＣテーブルを定義するデータを記憶させ、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別させる、１つまたは複数の追加命令を有形に記憶する、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項５４】
前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５５】
前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５６】
前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５７】
前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項５８】
前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項５９】
前記１つまたは複数のプロセッサがビデオ符号器の一部である、請求項４６に記載のコンピュータ可読記憶媒体。
【請求項６０】
前記１つまたは複数のプロセッサがビデオ復号器の一部である、請求項４６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権の主張］
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１０年４月９日に出願された米国仮出願第６１／３２２，６４１号の利益を主張する。
【０００２】
本開示の態様は概して、ビデオコーディングに関し、より詳細には、ブロックベースのビデオコーディングに関する。
【背景技術】
【０００３】
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＨ．２６４／ＭＰＥＧ−４  アドバンスト・ビデオコーディング（Advanced Video Coding）（ＡＶＣ）など、ビデオ圧縮技法を実装する。ビデオ圧縮技法では、ビデオ信号に固有の冗長性を低減または除去するために空間的予測および時間的予測を実行する。
【０００４】
ビデオ符号化では、ビデオ圧縮は概して、空間的予測、動き推定および動き補償を含む。特に、イントラコーディング（intra-coding）は、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディング（inter-coding）は、隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオ符号器は、２つ以上の隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。動き推定は、１つまたは複数のリファレンスフレーム（reference frames）中の対応するビデオブロックに対するビデオブロックの変位を示す動きベクトルを生成する。動き補償は、その動きベクトルを使用して、リファレンスフレームから予測ビデオブロックを生成する。動き補償の後、元のビデオブロックから予測ビデオブロックを減算することによって残差ビデオブロックが形成される。
【０００５】
ビデオ符号器は、残差ブロックのビットレートをさらに低減するために、変換、量子化およびエントロピーコーディングのプロセスを適用する。エントロピーコーディングは、一般に、変換演算および量子化演算によって生成される残差係数をさらに圧縮するために算術コード（arithmetic codes）または可変長コード（variable length codes）（ＶＬＣ）を適用することを含む。例として、一部の符号器において代替エントロピーコーディングモードとして使用され得る、コンテキスト適応型バイナリ算術コーディング（context-adaptive binary arithmetic coding）（ＣＡＢＡＣ）およびコンテキスト適応型可変長コーディング（context-adaptive variable length coding）（ＣＡＶＬＣ）がある。ビデオ復号器は、逆演算を実施して、ブロックそれぞれに関する動き情報と残差情報とを使って、符号化されたビデオを再構成する。
【発明の概要】
【０００６】
本開示の態様は、可変長コード（ＶＬＣ）を使う、変換ブロック係数および残差データなどのデジタルビデオデータのためのコーディング方式を含む。各デジタルビデオブロックからの係数は、一定順で走査し、順序付き配列に並べることができる。本開示は、一態様において、１つまたは複数のＶＬＣパラメータを表すシンボル組合せ（symbol combinations）を使って、デジタルビデオブロック係数のＶＬＣコーディングを実施するように構成された可変長コード（ＶＬＣ）ユニットを備えるビデオコーディングデバイスを提供する。ＶＬＣパラメータは、係数配列中の係数のラン（run）情報、レベル情報、およびブロック終結（end of block）（ＥＯＢ）情報を含む。本開示は、マルチレベルＶＬＣテーブル（multi-level VLC table）をさらに提供し、第１レベルＶＬＣテーブルは、シンボル組合せの生起確率に基づいて、シンボル組合せをコードワード（codewords）にマッピングし、第２レベルＶＬＣテーブルは、動的に生成することができるとともに記憶される必要がない構造化コードを備える。特定のシンボル組合せによって表されるラン情報（run information）に基づいて、シンボル組合せは、第１レベルＶＬＣテーブルからのコードワードとしても、第１レベルＶＬＣテーブルからのエスケープコード（escape code）および第２レベルＶＬＣテーブルからのコードワードとしてもコーディングすることができる。第１レベルＶＬＣテーブル中のコードワードにマッピングされる候補である、可能なシンボル組合せの数を制限することによって、コーディング効率および全体的なシステム性能が向上され得る。
【０００７】
ある例では、本開示は、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、ラン情報が、連続するゼロ係数の数を示すことと、マルチレベルＶＬＣテーブルを定義するデータを記憶することであって、マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、第１レベルＶＬＣテーブルが、コードワードをシンボル組合せにマッピングすることと、ならびに連続するゼロ係数の第１の数がカットオフラン値（cut-off-run value）より大きいことを示す第１のラン情報を備える第１のシンボル組合せに対して、第１のコードワードを第１のシンボル組合せに割り当てることであって、第１のコードワードが、第１レベルＶＬＣテーブルからのエスケープコードを備えることとを含む方法を提供する。
【０００８】
別の実施例では、本開示は、マルチレベルＶＬＣテーブルを定義するデータを記憶するように構成された可変長コード（ＶＬＣ）テーブルモジュールであって、マルチレベルテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、第１レベルＶＬＣテーブルが、コードワードをシンボル組合せにマッピングする、モジュールと、第１のシンボル組合せに第１のコードワードを割り当てるように構成されたＶＬＣコーディングモジュールであって、第１のシンボル組合せが、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備え、第１のコードワードが、第１レベルＶＬＣテーブルからのエスケープコードを備える、モジュールとを含む、ビデオデータをコーディングするためのビデオコーディングデバイスを提供する。
【０００９】
ある例では、本開示は、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、ラン情報が、連続するゼロ係数の数を示す、手段と、マルチレベルＶＬＣテーブルを定義するデータを記憶するための手段であって、マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、第１レベルＶＬＣテーブルが、コードワードをシンボル組合せにマッピングする、手段と、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せに対して、第１のコードワードを第１のシンボル組合せに割り当てるための手段であって、第１のコードワードが、第１レベルＶＬＣテーブルからのエスケープコードを備える、手段とを含むビデオコーディング装置を提供する。
【００１０】
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサで実行できる。本技法を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶し、プロセッサにロードして実行することができる。
【００１１】
したがって、本開示は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、コードワードをシンボル組合せにマッピングする第１レベルＶＬＣテーブルと、第２レベルＶＬＣテーブルとを備えるマルチレベルＶＬＣテーブルを定義するデータを記憶させ、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せに対して、第１レベルＶＬＣテーブルからのエスケープコードを備える第１のコードワードを第１のシンボル組合せに割り当てさせる、１つまたは複数の命令を有形に記憶する、非一時的コンピュータ可読記憶媒体も企図する。
【００１２】
本開示で説明する技法の１つまたは複数の態様の詳細を添付の図面および以下の説明に示す。本開示の態様の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１】本開示の様々な態様を実装するビデオ符号化および復号システムを示すブロック図。
【図２】図１に示すビデオ符号器の一例を示すブロック図。
【図３】図１に示すビデオ復号器の一例を示すブロック図。
【図４】本開示の態様を実装するように構成されたエントロピー符号化ユニットを示すブロック図。
【図５】本開示の態様を実装するように構成されたエントロピー復号ユニットを示すブロック図。
【図６】本開示で説明するコーディング技法を示すフローチャート。
【図７】本開示で説明するコーディング技法を示すフローチャート。
【図８】本開示で説明するコーディング技法を示すフローチャート。
【図９】ジグザグ走査方式（zig-zag scanning scheme）の例を示す図。
【図１０】変換ブロックの例を示す図。
【詳細な説明】
【００１４】
本開示の態様は概して、ビデオコーディングに関し、より詳細には、ブロックベースのビデオコーディングに関する。ソースデバイスから受信デバイスに送信されるのに先立って、ビデオブロックの変換係数などのデジタルビデオブロック係数と、残差ビデオデータとを表す１つまたは複数のシンボルパターンを生成することができる。シンボルパターンは、非ゼロ係数に先行し、または続く、連続するゼロ係数の数を表す、数などの情報を表し得る。この、連続するゼロの数は一般に、ランレングス（run length）と呼ばれる。シンボルパターンによって表される情報は、特定の非ゼロ係数が、１もしくは１以外のどれかの値をもつか否かも含んでよく、１以外の値は、１超過（greater-than-one）（ＧＴＯ）とも呼ばれ、特定の係数がデータブロック中の最後の非ゼロ係数である場合は、一般にブロック終結（end-of-block）（ＥＯＢ）と呼ばれる。シンボルパターンから、受信デバイスは、各ブロック係数が別々に送られ、シンボルパターンを使わずにシグナリングされた場合よりも少ないデータビットを使って、データブロックを再構成することができる。ソースデバイスから受信デバイスに送信されるビットの数をさらに低減するために、シンボルパターンは、送信されるのに先立って、一般に「エントロピーコーディング（entropy coding）」と呼ばれるロスレス統計型コーディング（lossless statistical coding）の形を受ければ（undergo）よい。エントロピーコーディングは、所与のデータセット、この事例では１組のシンボルパターンのシンボル分布プロパティ（symbol distribution property）を使用し、概して、データセット中で頻繁に生起するシンボルパターンには、より短いコードワードを、データセット中で頻繁には生起しないシンボルパターンには、より長いコードワードを割り当てる。本開示の態様は、より大きいデータブロック用のシンボルパターンを生成し、そうしたシンボルパターンにコードワードを割り当てる、改善された方法およびシステムを提供することができる。
【００１５】
シンボルは、情報理論のコンテキストでは、固有または識別可能なビットパターンを指す。例示的シンボルは、文字「ａ」に対するアスキーコードなどのキャラクタを表すのに使われるビットでよい。本開示で使われるように、シンボルパターンは一般に、１つまたは複数のシンボルを表すビットパターンを指し、ここで１つまたは複数のシンボルは、ランレングス、ＧＴＯ、またはＥＯＢなど、１つの情報を表す。本開示で使われるように、シンボル組合せは、１つまたは複数のシンボルパターンの情報を表すビットパターンを指す。それゆえ、シンボル組合せは、たとえば、ランレングスまたはＥＯＢを表すビットパターンでよいが、シンボル組合せは、ランレングスとＥＯＢの両方またはランレングスと、ＥＯＢと、ＧＴＯとを表すビットパターンでもよい。
【００１６】
図１は、本開示の様々な態様を実装するビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオデータを受信デバイス１４に送信するソースデバイス１２を含む。ソースデバイス１２は、ビデオソース１８とビデオ符号器２０と送信機２２とを含み得る。受信デバイス１４は、受信機２４と、ビデオ復号器２６と、ビデオディスプレイデバイス２８とを含み得る。システム１０は、本開示で説明する様々な技法を実装するように構成され得る。
【００１７】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理的伝送線路など、ワイヤレスまたは有線の任意の通信媒体、あるいはワイヤレスおよび有線の媒体の任意の組合せを含むことができる。チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル１６は、一般に、ビデオデータをソースデバイス１２から受信デバイス１４に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。
【００１８】
ソースデバイス１２は、受信デバイス１４に送信するためのビデオを生成する。ただし、場合によっては、デバイス１２、１４は、実質的に対称に動作することができる。たとえば、デバイス１２、１４の各々は、ビデオ符号化および復号構成要素を含むことができる。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオブロードキャスト、またはビデオ電話のためのビデオデバイス１２とビデオデバイス１４との間の一方向または双方向のビデオ送信をサポートし得る。したがって、本開示の態様は、ソースデバイス１２、受信デバイス１４のいずれでも、または両方で実装することができる。
【００１９】
ビデオソース１８は、１つまたは複数のビデオカメラなどのビデオキャプチャデバイス（video capture device）、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダから供給されたライブビデオ、を含み得る。さらなる代替として、ビデオソース１８はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとコンピュータ生成ビデオ（computer-generated video）との組合せを生成し得る。場合によっては、ビデオソース１８がカメラである場合、ソースデバイス１２および受信デバイス１４は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、送信機２２とチャネル１６と受信機２４とを介してビデオソースデバイス１２からビデオ受信デバイス１４のビデオ復号器２６に送信するために、ビデオ符号器２０によって符号化され得る。ディスプレイデバイス２８は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイまたは有機発光ダイオード（ＯＬＥＤ）ディスプレイなどの様々なディスプレイデバイスのいずれかを含み得る。
【００２０】
ビデオ符号器２０およびビデオ復号器２６は、空間、時間および／または信号対雑音比（ＳＮＲ）スケーラビリティのためのスケーラブル・ビデオコーディング（scalable video coding）（ＳＶＣ）をサポートするように構成され得る。いくつかの態様では、ビデオ符号器２０およびビデオ復号器２６は、ＳＶＣのためのファイン・グラニュラリティＳＮＲスケーラビリティ（fine granularity SNR scalability）（ＦＧＳ）コーディングをサポートするように構成できる。いくつかの例では、デオ符号器２０およびビデオ復号器２６は、ベースレイヤおよび１つまたは複数のスケーラブル・エンハンスメント・レイヤ（scalable enhancement layers）の符号化、送信および復号をサポートすることによって様々な程度のスケーラビリティをサポートすることができる。スケーラブル・ビデオコーディングの場合、ベースレイヤは最小品質レベルでビデオデータを搬送する。１つまたは複数のエンハンスメントレイヤは追加のビットストリームを搬送して、より高い空間的レベル、時間的レベルおよび／またはＳＮＲレベルをサポートする。
【００２１】
ビデオ符号器２０およびビデオ復号器２６は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４  アドバンスト・ビデオコーディング（Advanced Video Coding）（ＡＶＣ）などのビデオ圧縮規格に従って動作し得る。ビデオ符号器２０およびビデオ復号器２６は、ＩＴＵ−Ｔ  Ｈ．２６５などの次世代ビデオコーディング標準に従って動作してもよい。
【００２２】
ビデオ符号器２０およびビデオ復号器２６はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装できる。ビデオ符号器２０およびビデオ復号器２６の各々を１つまたは複数の符号器または復号器中に含めることができ、そのいずれかは複合符号器／復号器（combined encoder/decoder）（コーデック（ＣＯＤＥＣ））の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。さらに、ソースデバイス１２および受信デバイス１４はそれぞれ、符号化ビデオの送信および受信のために適切な変調、復調、周波数変換、フィルタ処理、および増幅器構成要素を含み、適用可能な場合、ワイヤレス通信をサポートするために十分な無線周波数（ＲＦ）ワイヤレス構成要素およびアンテナを含むことができる。ただし、説明しやすいように、そのような構成要素は図１に示していない。
【００２３】
ビデオシーケンスは一連のビデオフレームを含む。ビデオ符号器２０は、ビデオデータを符号化するために個々のビデオフレーム内のピクセルのブロックに作用する。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。各ビデオフレームは一連のスライス（slices）を含む。各スライスは一連のマクロブロックを含むことができ、それらはサブブロック中に配置することができる。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分（luma components）については１６×１６、８×８、４×４、およびクロマ成分（chroma components）については８×８など、様々なブロックサイズのイントラ予測（intra prediction）をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８および４×４、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測（inter prediction）をサポートする。
【００２４】
ビデオブロックは、小さいほどより良い解像度が得られ、より高い詳細レベルを含むビデオフレームの位置特定に使用することができる。一般に、マクロブロック（ＭＢ）および様々なサブブロックをビデオブロックと考えることができる。さらに、スライスは、ＭＢおよび／またはサブブロックなど一連のビデオブロックであると考えることができる。各スライスは単独で復号可能なユニットであり得る。予測の後、ビデオ符号器２０は、８×８残差ブロックまたは４×４残差ブロックに変換を適用する。イントラ（intra）＿１６×１６予測モードが使われる場合、クロマ成分またはルーマ成分に対する４×４ブロックのＤＣ係数に追加の変換を適用することができる。本開示の態様は、スライスレベルでの説明目的で記載される場合があるが、同じ技法を、ピクチャレベルで適用することもできる。
【００２５】
概して、ビデオ符号器２０は、ブロックに離散コサイン変換（ＤＣＴ）を適用し、変換係数とも呼ばれ、またはより一般的にはデジタルビデオブロック係数と呼ばれるＤＣＴ係数を生成する。ＤＣＴは、非ゼロ値をもつ、結果として生じるＤＣＴ係数が、グループにまとめられように、および、ゼロ値をもつものがグループにまとめられるように、全体として順序付けられるＤＣＴ係数を生成する。ビデオ符号器２０は次に、特定の走査順（scanning order）またはパターンに従って、結果として生じるＤＣＴ係数を走査することを伴う形のシリアライゼーション（serialization）を実施する。ジグザグ走査を、図９の例を参照して以下で示すが、ゼロおよび非ゼロＤＣＴ係数のグループを抽出するように、垂直、水平または他の走査パターンなど、様々な走査パターンが利用され得る。
【００２６】
抽出されると、ビデオ符号器２０は、シリアル化された後に連続する（すなわち、相互に隣接する）ゼロＤＣＴ係数の総数（すなわち、いわゆる「ラン（run）」）の計算を通常は伴う、一般に「ランレングスコーディング（run-length coding）」と呼ばれるものを実施する。図９、１０の例とともに以下でより詳しく示すように、シリアル化ＤＣＴ係数（serialized DCT coefficients）を記述する１つまたは複数のシンボル組合せを生成することができる。シンボル組合せは、受信デバイス１４によって、シリアル化ＤＣＴ係数を再構成するのに使われ得るランレングス、ＧＴＯ、ＥＯＢ、および他の情報などの情報を表すことができる。シンボル組合せを使って、受信デバイス１４は、シリアル化ＤＣＴ係数を再構成することができ、シンボル組合せを使わずに各ＤＣＴ係数が別々に送られシグナリングされた場合よりも少ないデータビットを使って、最終的にはデータブロックを再構成することができる。
【００２７】
次に、ビデオ符号器２０は、一般にエントロピーコーディング（entropy coding）と呼ばれる統計的ロスレスコーディング（statistical lossless coding）を実施する。エントロピーコーディングは、受信デバイス１４がＤＣＴ係数の集合を再構成するためにソースデバイス１２から受信デバイス１４に送信される必要があるビットの数をさらに低減するのに使われるロスレスプロセス（lossless process）である。エントロピーコーディングは、所与のシンボル組合せ集合のシンボル分布プロパティを使用し、概して、より頻繁に生起するシンボル組合せには、より短いコードワードを、比較的頻繁には生起しないシンボル組合せには、より長いコードワードを割り当てる。
【００２８】
ビデオ符号器２０およびビデオ復号器２６は、いくつかの動的実装形態では、それぞれ、所与のコンテキストに対して、そのコンテキストにおける、最も頻繁に生起するシンボル組合せが、より短いコードワードにマッピングされ得るように、いくつかのシンボル組合せの生起確率（occurrence probabilities）を追跡する機能性を含む。シンボル生起確率は、特定のシンボル組合せが生起した合計回数、または特定のシンボル組合せが生起した重み付き合計回数に基づいて追跡することができ、より最近生起したシンボル組合せは、より以前に生起したシンボル組合せより重く重み付けられる。シンボル生起確率は、Ｔ個の最も直近のシンボル組合せなど、特定のシンボル組合せが特定のウィンドウ中に生起した合計回数、または重み付き合計回数に基づいて追跡することもできる。
【００２９】
コードワードへのシンボル組合せのマッピングは、ビデオ符号器２０およびビデオ復号器２６において、複数のＶＬＣテーブルまたは他のどのタイプのデータ構造にでも記憶することができる。ＶＬＣテーブルに記憶されたマッピングは、シンボル組合せに関する、追跡される生起確率が変動したとき、コードワードへのシンボル組合せのマッピングも変動し得るように適応可能であり得る。一部のシンボル組合せの生起確率が、他のシンボル組合せの生起よりも可能性が高く、または低くなった場合、ビデオ符号器２０およびビデオ復号器２６は、本動的実装形態では、シンボル組合せの一部を、その生起確率に基づいて、より長いまたはより短いコードワードのいずれかに再マッピングすることによって、ＶＬＣテーブルを更新すればよい。ビデオ符号器２０およびビデオ復号器２６は、こうした動的実装形態では、ビデオ符号器２０において生起する、ＶＬＣテーブルへの変動が、その変動を反映するデータがソースデバイス１２と受信デバイス１４との間で送られることなく、ビデオ復号器２６において反映され得るように、同じデータ処理技法を実装するように構成され得る。
【００３０】
以下でより詳細に説明するように、Ｈ．２６４／ＭＰＥＧ−４ ＡＶＣ標準は、変換係数をコーディングするための、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）と呼ばれる形のエントロピーコーディングを定義する。ＣＡＶＬＣは特に、４×４変換サイズ向けに設計されるが、４×４より大きい変換に対しては常に効果があるわけではない。具体的には、４×４より大きい変換は通常、単一のＶＬＣテーブルにマッピングされるべき、はるかに大きい数の可能なシンボル組合せをもつ。したがって、ビデオ符号器２０が生起確率を追跡しなければならないシンボル組合せの数もはるかに大きくなり得るので、上記で言及したような動的実装形態におけるシンボル適応の効率を低下させる可能性がある。シンボル適応の効率が低下した結果、全体的なコーディング効率および全体的なシステム性能も低下し得る。
【００３１】
ビデオの一部分に対するコンテンツ統計が比較的一定であると仮定すると、ビデオ符号器２０およびビデオ復号器２６が、十分に多数のシンボル組合せを処理すると、シンボル組合せに関する、追跡される生起確率は概して、比較的安定な値に達する。このようなケースでは、ＶＬＣテーブル中で維持されるシンボル組合せへのコードワードのマッピングも比較的安定になり、ビデオ符号器２０およびビデオ復号器２６は、シンボル組合せをコードワードに再マッピングすることによって、記憶されたＶＬＣテーブルを時々更新する必要があるだけである。ただし、エントロピーコーディングの初期段階またはビデオの一部分に関するコンテンツ統計に大幅な変動があったとき、ＶＬＣテーブルに記憶されたいくつかのシンボル組合せに関する生起確率は、そのビデオ部分に関する実際の生起確率を反映することができず、そのためコーディング効率が悪化し得る。より大きい数の可能なシンボル組合せが、４×４より大きい変換に関連づけられると、シンボル組合せの生起回数がその実際の生起確率を表すようになる前に、ビデオ符号器２０によって処理されるのに必要とされるシンボル組合せの数が大幅に増える可能性があり、したがって、こうした、非効率なエントロピーコーディングの期間を長引かせる。本開示の態様は、ＶＬＣテーブルの構築および維持を改善し、したがって、こうした非効率なエントロピーコーディング期間が全体的コーディング効率に対して与える影響を減らすことによって、コーディング効率を向上させることができる。
【００３２】
さらに、ＣＡＶＬＣは、４×４変換サイズ向けに特に設計されるので、ＣＡＶＬＣは、高解像度またはいわゆる高精細度（ＨＤ）ビデオデータを符号化したいという要望を満たすことができない場合がある。ＨＤビデオデータはしばしば、良好なコーディング効率を達成するために、４×４変換より大幅に大きい変換を利用する。可能なシンボル組合せの数は、適用される変換のサイズに直接比例する、符号化されるデータのサイズとともに増えるので、より大きい変換サイズは、より多くの潜在的シンボル組合せを生じる。この点において、ＣＡＶＬＣは、可能な組合せおよびそれらに関連づけられたコードワードをすべて記憶するための、はるかに大きいテーブルを必要とすることになる。したがって、上記で論じたＶＬＣコードワードマッピングの遅い適応に加え、この高解像度またはＨＤビデオデータを符号化するためのＣＡＶＬＣの拡張は結果として、生起確率の追跡に専用の、大幅に多くの計算資源と、一般に「コードブック」と呼ばれる、こうしたより大きいテーブルを記憶するための大幅に多くのメモリ消費とを生じ得る。
【００３３】
本開示の態様によると、すべての可能なシンボル組合せに対して単一レベルＶＬＣテーブルを維持するのではなく、ビデオ符号器２０は、１つまたは複数のマルチレベルＶＬＣテーブルを定義するデータを記憶し、マルチレベルＶＬＣテーブルの第１のレベルに対する候補であるシンボル組合せを、特定のシンボル組合せによって表される、連続するゼロ係数の数（すなわち、ランレングス）に基づいて制限する。マルチレベルＶＬＣテーブルのこの第１のレベルは、一般的ＶＬＣ技法を利用して、シンボル組合せをコードワードに関連づけることができる。マルチレベルＶＬＣテーブルの第２のレベルは、ゴロムライスコード（Golomb-Rice codes）などの構造化ＶＬＣコードを使用することができる。第２レベルＶＬＣテーブルの構造化性質により、マルチレベルＶＬＣテーブルのこの第２のレベルを記憶する必要はない。というのは、一例として、ゴロムライスコードは、符号器と復号器の両方にとって既知であるいくつかのパラメータに基づいて動的に決定され得るからである。本開示のマルチレベルＶＬＣテーブルの第１のレベルは、シンボル組合せと、最も頻繁に生起するシンボル組合せに対するコードワードとの間のマッピングを記憶するものとして特徴づけられ得る。本開示で説明するマルチレベルＶＬＣテーブルの第２のレベルは、いかなる実際のテーブルもメモリに記憶することなく、比較的頻繁には生起しないシンボル組合せに対するコードワードを動的に決定するやり方を提供するものとして特徴づけられ得る。
【００３４】
この点について、本開示の態様は、４×４より大きいサイズの変換の適用から生成された変換係数に対する符号化および復号効率を向上させることができ、第２のレベルの構造化コードを提供することによって、メモリ消費も改善する。コーディング効率の向上は、従来のＣＡＶＬＣがこのように拡張されていないときに、４×４より大きいサイズの変換の適用から得られた変換係数へのＶＬＣの適用の結果であり得る。特定のシンボル組合せによって表される連続するゼロ係数の数に基づいて、マルチレベルＶＬＣテーブルの第１のレベルに対する候補であるシンボル組合せを制限することにより、ビデオ符号器２０が生起確率を追跡する必要があるシンボル組合せの総数が減少し、それによって追跡確率をより素早く適応させることができ、したがって、上記で論じた非効率なエントロピーコーディングの期間が短縮する。さらに、コードブックによって消費されるメモリの量も、記憶されたどのコードブックも生じさせる必要がない第２のレベルの構造化コードワードに依拠した結果、低減することができる。符号化および復号効率の向上により、受信デバイス１４のビデオ復号器２６が変換係数集合を再構成するために、ソースデバイス１２から受信デバイス１４に送られるのに必要とされるビットの数を低減することができる。さらに、コーディングおよび復号効率の向上は、より効率的な電力使用を促進するが、このことは、いわゆる「スマートフォン」を含む、ハンドセットまたは他のセルラーホンなど、バッテリ駆動携帯デバイスのコンテキストでは特に重要であり得る。
【００３５】
こうした技法を例示するために、ビデオ符号器２０は、複数の変換係数に関して、連続しているとともにゼロの値をもつ係数の数を示すラン情報を判断すればよい。ビデオ符号器２０は、上記で述べ、後でより詳しく説明するように、マルチレベルＶＬＣテーブルを定義するデータを記憶する。マルチレベルＶＬＣテーブルは、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備える。第１レベルＶＬＣテーブルは、上述したようにして、コードワードをシンボル組合せにマッピングする。カットオフラン値より大きいラン値（run value）を表すシンボル組合せを識別したことに応答して、ビデオ符号器２０は、第１レベルＶＬＣテーブルからのエスケープコードと、第２レベルＶＬＣテーブルからのコードワードとを、シンボル組合せに割り当てる。
【００３６】
ラン値は概して、使われるコーディング方式に依存して、非ゼロ係数に先行し、または続く、連続するゼロ係数の数を指す。カットオフラン値は概して、特定のシンボル組合せのラン値に基づいて、その特定のシンボル組合せがどのようにコーディングされるべきかを決定する閾値を指す。たとえば、カットオフラン値は、５にセットされ得る。それゆえ、使われるコーディング方式に依存して、６個のゼロ係数が非ゼロ係数に先行し、または続くことを示すシンボル組合せは、エスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングされ得る。
【００３７】
ビデオ復号器２６は、エスケープコードを検出すると、第２レベルＶＬＣテーブルからのコードワードをさらに復号する。シンボル組合せを、エスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングすることは概して、シンボル組合せを、第１レベルＶＬＣテーブルからのコードワードとしてコーディングするよりも多くのビットを必要とする。それゆえ、本開示の態様は、より頻繁に生起するシンボル組合せを、第１レベルＶＬＣテーブル中のコードワードとしてコーディングし、比較的頻繁には生起しないシンボル組合せを、エスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングすることを含む。
【００３８】
図２は、図１に示すビデオ符号器２０などのビデオ符号器２０の一例を示すブロック図である。ビデオ符号器２０は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。インターコーディングの場合、ビデオ符号器２０は、隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。
【００３９】
図２に示すように、ビデオ符号器２０は、符号化すべきビデオフレーム内のカレントビデオブロック（current video block）３０を受信する。図２の例では、ビデオ符号器２０は、動き推定ユニット３２と、リファレンスフレームストア３４と、動き補償ユニット３６と、ブロック変換ユニット３８と、量子化ユニット４０と、逆量子化ユニット４２と、逆変換ユニット４４と、エントロピーコーディングユニット（entropy coding unit）４６とを含む。ブロッキングアーティファクト(blocking artifacts)を除去するために、インループ・デブロッキングフィルタ（in-loop deblocking filter）（図示せず）をフィルタブロックに適用することができる。ビデオ符号器２０はまた、加算器４８と加算器５０とを含む。図２は、ビデオブロックのインターコーディングのためのビデオ符号器２０の時間的予測構成要素を示す。説明しやすいように図２には示されていないが、ビデオ符号器２０は、いくつかのビデオブロックのイントラコーディングのための空間的予測構成要素をも含み得る。
【００４０】
動き推定ユニット３２は、１つまたは複数の動きベクトルを生成するためにビデオブロック３０を１つまたは複数の隣接ビデオフレーム中のブロックと比較する。以前に符号化されたブロックから再構成されたビデオブロックを記憶するために任意のタイプのメモリまたはデータ記憶デバイスを含み得るリファレンスフレームストア３４から、１つまたは複数の隣接フレームが検索され得る。動き推定は、可変サイズ、たとえば、３２×３２、３２×１６、１６×３２、１６×１６、１６×８、８×１６、８×８またはより小さいブロックサイズのブロックに対して実施することができる。動き推定ユニット３２は、たとえば、レートひずみモデルに基づいてカレントビデオブロック３０に最もぴったり一致する隣接フレーム中の１つまたは複数のブロックを識別し、隣接フレーム中のブロックとカレントビデオブロックとの間の変位を判断する。これに基づいて、動き推定ユニット３２は、カレントビデオブロック３０と、カレントビデオブロック３０をコーディングするために使用されるリファレンスフレームからの１つまたは複数の一致するブロックとの間の変位の大きさおよび軌道（trajectory）を示す、１つまたは複数の動きベクトル（ＭＶ）を生成する。
【００４１】
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有することができ、それによりビデオ符号器２０は、整数ピクセルロケーション（integer pixel locations）よりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。端数の（fractional）ピクセル値をもつ動きベクトルを使用するとき、動き補償ユニット３６中で補間演算が実行される。動き推定ユニット３２は、レートひずみモデルなど、いくつかの基準を使用して、ビデオブロックについての最良のブロック分割（block patitions）および１つまたは複数の動きベクトルを識別する。たとえば、双方向予測の場合、複数の動きベクトルがあり得る。得られたブロック分割および動きベクトルを使用して、動き補償ユニット３６は予測ビデオブロックを形成する。
【００４２】
ビデオ符号器２０は、加算器４８において、元のカレントビデオブロック３０から、動き補償ユニット３６によって生成された予測ビデオブロックを減算することによって残差ビデオブロックを形成する。ブロック変換ユニット３８は、４×４または８×８などの変換を残差ブロックに適用して、残差変換ブロック係数を生成する。量子化ユニット４０は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する。エントロピーコーディングユニット４６は、量子化された係数をエントロピーコーディングして、ビットレートをなお一層低減する。
【００４３】
図４を参照して以下でより詳しく説明する本開示の態様によると、エントロピー符号化ユニット（entropy encoding unit）４６は、量子化されたブロック係数にＶＬＣコーディングを適用するための可変長コーディング（ＶＬＣ）ユニットとして動作する。詳細には、エントロピー符号化ユニット４６は、図１に関して上記で、図９、１０に関して以下で説明する技法による、デジタルビデオブロック係数のＶＬＣコーディングを実施するように構成され得る。エントロピーコーディングユニット４６は、ある形のロスレス統計型コーディングを実施し、この理由により、エントロピーコーディングユニット４６は、「ロスレス統計型コーディングユニット４６」とも呼ばれ得る。概して、図３、５により詳しく記載するビデオ復号器２６は、符号化ビデオを復号し再構成するための、ＶＬＣ復号を含む逆演算を実施する。
【００４４】
逆量子化ユニット４２および逆変換ユニット４４はそれぞれ、逆量子化および逆変換を適用して残差ブロックを再構成する。加算器５０は、再構成された残差ブロックを、動き補償ユニット３６によって生成された動き補償された予測ブロックに加算して、リファレンスフレームストア３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット３２および動き補償ユニット３６によって使用される。
【００４５】
図３は、図１のビデオ復号器２６などのビデオ復号器の一例を示すブロック図である。ビデオ復号器２６はビデオフレーム内のブロックのイントラ復号およびインター復号を実行することができる。図１に示すように、ビデオ復号器２６は、ビデオ符号器２０によって符号化された符号化ビデオビットストリームを受信する。図３の例では、ビデオ復号器２６は、エントロピー復号ユニット５２と、動き補償ユニット５４と、再構成ユニット５６と、逆変換ユニット５８と、リファレンスフレームストア６２とを含む。ビデオ復号器２６は、加算器６４の出力をフィルタ処理するインループ・デブロッキングフィルタ（in-loop deblocking filter）（図示せず）をも含み得る。ビデオ復号器２６は加算器６４も含む。図３は、ビデオブロックのインター復号のためのビデオ復号器２６の時間的予測構成要素を示す。図３には示されていないが、ビデオ復号器２６は、いくつかのビデオブロックのイントラ復号のための空間的予測構成要素も含むことができる。
【００４６】
エントロピー復号ユニット５２は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化された残差係数、マクロブロックコーディングモード、および動きベクトルとブロック分割とを含むことができる動き情報を復号する。したがって、エントロピー復号ユニット５２は、ＶＬＣ復号ユニットとして機能する。たとえば、符号化ビットストリームから、量子化された残差係数を復号するために、図３のエントロピー復号ユニット５２は、図１を参照して上記で説明し、図９、１０を参照して以下で説明する本開示の態様を実装するように構成され得る。しかしながら、エントロピー復号ユニット５２は、符号化ビットストリームから量子化されたブロック係数を取り出すために、図２のエントロピー符号化ユニット４６に対して実質的に逆の方法でＶＬＣ復号を実施することができる。
【００４７】
動き補償ユニット５４は、リファレンスフレームストア６２からの１つまたは複数の再構成されたリファレンスフレームと、 動きベクトルと、ブロック分割と、を受信して、予測ビデオブロックを生成する。再構成ユニット５６は、量子化されたブロック係数を逆量子化（inverse quantize）、すなわち量子化解除（de-quantize）する。逆変換ユニット５８は、逆変換、たとえば、逆ＤＣＴ、または逆４×４もしくは８×８整数変換を上記係数に適用して、残差ブロックを生成する。次いで、予測ビデオブロックは、加算器６４によって残差ブロックと加算されて、復号ブロックを形成する。復号ブロックをフィルタ処理してブロッキングアーティファクトを除去するために、デブロッキングフィルタ（図示せず）が適用され得る。フィルタ処理されたブロックは次いでリファレンスフレームストア６２に入れられ、リファレンスフレームストア６２は、後続のビデオフレームの復号のためにリファレンスフレームを与え、また、ディスプレイデバイス２８（図１）を駆動するために復号ビデオを生成する。
【００４８】
図４は、図２のエントロピー符号化ユニット４６をより詳しく示すブロック図である。エントロピー符号化ユニット４６は、図１、２のビデオ符号器２０内に常駐し得る。図２に示すように、エントロピー符号化ユニット４６は、量子化された残差ブロック係数を、たとえば、量子化ユニット４０（図２）から受信し、復号用の別のデバイスへの送信用の、エントロピーコーディングされたビットストリームを生成する。図４の例では、エントロピー符号化ユニット４６は、ＶＬＣ符号化モジュール９８と、統計分析モジュール１００と、ＶＬＣ適応モジュール１０２と、ＶＬＣテーブルモジュール１０４とを含む。ＶＬＣテーブルモジュール１０４は、図１を参照して上記で説明し、図９、１０を参照して以下で説明するように、マルチレベルＶＬＣテーブルを定義するデータを記憶する。ＶＬＣテーブルモジュール１０４は、たとえば、コードワードをシンボル組合せにマッピングする第１レベルＶＬＣテーブルを定義するデータを記憶することができる。ＶＬＣテーブルモジュール１０４は、本開示を通して第２レベルＶＬＣテーブルとも呼ばれる、記憶される必要がない構造化コードを動的に生成するようにも構成され得る。統計分析モジュール１００は、候補シンボル組合せの集合に関するコーディング統計を収集する。統計分析モジュール１００は、所与のコンテキストに対するシンボル組合せの生起確率を追跡し、統計分析モジュール１００によって収集されたコーディング統計に基づいて、ＶＬＣ適応モジュール１０２は、第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せ集合の部分集合との間のマッピングを調整することができる。
【００４９】
図５は、本開示で説明する様々な技法を実装するように構成されたエントロピー復号ユニット５２のブロック図である。図１、５の例において上記で示したように、エントロピー復号ユニット５２は、ビデオ復号器２６内に常駐する。この例示的構成を参照して説明するが、エントロピー復号ユニット５２は、統計的ロスレスコーディングを実施することが可能な、どのデバイス内に常駐してもよい。この点において、本技法は、本開示に示す例に限定されるべきではない。図３に示すように、エントロピー復号ユニット５２は、符号化ビデオビットストリームを、たとえば、チャネル１６（図１）を介してソースデバイス１２から受信し、そのビットストリームをエントロピー復号して、量子化された残差係数を生成する。
【００５０】
図５の例では、エントロピー復号ユニット５２は、ＶＬＣ復号モジュール１０６と、統計分析モジュール１０８と、ＶＬＣ適応モジュール１１０と、ＶＬＣテーブルモジュール１１２とを含む。ＶＬＣテーブルモジュール１１２は、たとえば、コードワードをシンボル組合せにマッピングする第１レベルＶＬＣテーブルを定義するデータを記憶することができる。ＶＬＣテーブルモジュール１１２は、本開示を通して第２レベルＶＬＣテーブルとも呼ばれる、記憶される必要がない構造化コードを動的に復号するようにも構成され得る。ＶＬＣテーブルモジュール１１２によって維持される第１レベルおよび第２レベルＶＬＣテーブルは、ビデオ符号器２０において割り当てられたコードワードがビデオ復号器２６において復号され得るように、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルをマッチングする。統計分析モジュール１０８は、所与のコンテキストに対するシンボル組合せの生起確率を追跡し、特定のシンボル組合せの生起が、比較的可能性が高く、または低くなった場合、ＶＬＣ適応モジュール１１０は、その特定のシンボル組合せを、ＶＬＣテーブルモジュール１１２によって維持されるＶＬＣテーブル中の、より短いまたはより長いコードワードいずれかに再マッピングする。
【００５１】
エントロピーコーディングは、所与のデータセットを表すのに必要とされるビットの数をさらに低減するのに使われるロスレスプロセスである。エントロピーコーディングは、所与のデータセットのシンボル分布プロパティを使用し、概して、データセットのうち、より頻繁に生起するメンバに、より短いコードワードを割り当てる。この例では、所与のデータセットは、可能なシンボル組合せ集合であり、より短いコードワードが概して、最も頻繁に生起する特定のシンボル組合せに割り当てられる。エントロピー符号化ユニット４６の統計分析モジュール１００およびエントロピー復号ユニット５２の統計分析モジュール１０８は、特定のシンボル組合せの生起確率を追跡し維持することができ、そうすることによって、所与のコンテキストに対して、そのコンテキストにおける最も頻繁に生起するシンボル組合せが、より短いコードワードにマッピングする。一部のシンボル組合せの生起が、他のシンボル組合せの生起よりも可能性が高く、または低くなった場合、一部のシンボル組合せを、その生起確率に基づいて、より長いまたはより短いコードワードいずれかに再マッピングすることによって、エントロピー符号化ユニット４６のＶＬＣ適応モジュール１０２は、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルを更新し、エントロピー復号ユニット５２のＶＬＣ適応モジュール１１０は、ＶＬＣテーブルモジュール１１２によって維持されるＶＬＣテーブルを更新する。統計分析モジュール１００およびＶＬＣ適応モジュール１０２は、統計分析モジュール１０８およびＶＬＣ適応モジュール１１０と同じデータ処理技法を実装するように構成され得る。したがって、エントロピー符号化ユニット４６において起こる、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルへの変動は、その変動を反映するデータがエントロピー符号化ユニット４６とエントロピー復号ユニット５２との間で送られることなく、エントロピー復号ユニット５２にあるＶＬＣテーブルモジュール１１２によって維持されるＶＬＣテーブルにおいて反映することができる。
【００５２】
エントロピーコーディングに先立って、ブロックからの変換係数が、エントロピー符号化ユニット４６によって使われる走査順に基づいて、順序付き１次元配列に並べ替えられる。図９、１０の例を参照して以下でより詳しく示すように、変換係数は、１つまたは複数のシンボル組合せを使って記述することができる。エントロピー符号化ユニット４６のＶＬＣ符号化モジュール９８は、シンボル組合せを特定の形でコーディングし、エントロピー復号ユニット５２は、コーディングされたデータを復号して、シンボル組合せを再生し、最終的には変換ブロックを再生する。ＶＬＣテーブルモジュール１０４、１１２によって維持されるＶＬＣテーブルなどのＶＬＣテーブルは、ビデオ符号器２０のエントロピー符号化ユニット４６とビデオ復号器２６のエントロピー復号ユニット５２の両方において記憶され、ＶＬＣテーブルからの各コードワードは、ある特定のコンテキストにおけるある特定のシンボル組合せを表す。
【００５３】
４×４より大きい変換のためのすべての可能なシンボル組合せをカバーするために、ＶＬＣテーブルモジュール１０４、１１２によって維持されるＶＬＣテーブルには、多数のコードワードが必要とされ得る。ただし、より大きいサイズのＶＬＣテーブルは、コードワードを保存するのに、より多くのメモリを必要とする。このような要件を緩和するために、本開示の態様は、２つ以上のレベルをもつＶＬＣテーブルを維持するＶＬＣテーブルモジュール１０４、１１２を含む。２レベルのテーブルでは、たとえば、第１のレベルは、１つの可変長コードがエスケープコードを表す、いくつかの可変長コードからなってよい。第２のレベルは、ゴロムライスコードなど、構造化ＶＬＣコードのグループからなってよい。その構造化性質により、第２レベルＶＬＣコードは、エントロピー符号化ユニット４６とエントロピー復号ユニット５２の両方において、実行中に（on-the-fly）動的に決定することができ、したがって、記憶される必要はない。
【００５４】
２レベルのＶＬＣテーブルを使うと、可能なシンボル組合せの部分集合のみが、第１レベルＶＬＣテーブル中の可変長コードにマッピングされる。エントロピー符号化ユニット４６は、シンボル組合せの残部を、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングする。
【００５５】
可能なシンボル組合せの数は、第１レベルＶＬＣテーブル中の可変長コードの数より大きくてよい。この場合、可能なシンボル組合せはすべて、第１レベルＶＬＣテーブル中の可変長コードにマッピングされるべき候補シンボル組合せでよい。あるコンテキストの下での生起確率に基づいて、エントロピー符号化ユニット４６は、生起確率が最も高い候補シンボル組合せのみを、第１レベルＶＬＣテーブル中のコードワードにマッピングすればよい。エントロピー符号化ユニット４６は、候補組合せの残部を、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングすることができる。
【００５６】
たとえば、Ｎが、可能なシンボル組合せの数を表し、Ｍが、第１レベルＶＬＣテーブル中の可変長コードエントリの数を表し、Ｎの値がＭより大きい場合、Ｎ個のシンボル組合せはすべて、候補シンボル組合せでよい。Ｎ個の候補シンボル組合せのどれが、第１レベルＶＬＣテーブル中の可変長コードにマッピングされるかは、各候補シンボル組合せの生起確率に基づいて決定することができる。エントロピー符号化ユニット４６は、Ｎ個の可能な組合せのうち、（Ｍ−１）個のシンボル組合せだけを、第１レベルＶＬＣテーブル中の可変長コードにマッピングし、残りの（Ｎ−Ｍ＋１）個のシンボル組合せを、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングする。
【００５７】
本開示の態様は、第１レベルＶＬＣテーブル中のコードワードにマッピングされる候補であるシンボル組合せの総数を低減することによって、コーディング効率を向上させることができる。上述したように、シンボル組合せへのコードワードのマッピングはしばしば、ビデオコーディングの初期段階中に、またはコーディングされるビデオのコンテンツが、ビデオの一部分に、事前コーディングされた部分とは大幅に異なるコンテンツ統計をもたせる変動を受けるとき、準最適（sub-optimal）であり得る。第１レベルＶＬＣテーブルに対する候補組合せを、単一のカットオフラン値または複数のカットオフラン値に基づいて制限することにより、ＶＬＣテーブルモジュール１０４、１１２によって維持されるＶＬＣテーブルに、コーディングの初期段階中およびコンテンツ統計が変動するときに生起するシンボル組合せの変動生起確率をより素早く追跡させることによって、特に４×４より大きい変換ブロックに対して、コーディングおよび復号効率を向上することができる。
【００５８】
さらに、本開示の態様は、統計分析モジュール１００および統計分析モジュール１０８が生起確率を追跡する必要があるシンボル組合せの数を制限することによって、コーディング効率を向上させることができる。たとえば、４×４より大きい変換ブロックが、数千または１万をも超える可能なシンボル組合せをもつ場合がある。本開示の態様は、最も頻繁に生起するシンボル組合せを含むと思われる可能な総シンボル組合せの部分集合を識別することを含む。すると、統計分析モジュール１００および統計分析モジュール１０８は、すべての可能なシンボル組合せではなく、可能なシンボル組合せの部分集合に関する生起確率を追跡するだけでよく、したがって、統計分析モジュール１００および統計分析モジュール１０８に専用である必要がある処理資源の量が低減される。頻繁に生起する一部のシンボル組合せが、可能なシンボル組合せの部分集合から除外される場合であっても、統計分析モジュール１００および統計分析モジュール１０８によって使用される処理資源の低減は、依然として、全体的システム性能において全体として肯定的であり得る。
【００５９】
良好なコーディング効率のために、ＶＬＣテーブルモジュール１０４およびＶＬＣテーブルモジュール１１２は、いくつかの要素に基づいて複数のＶＬＣテーブルを維持すればよく、そうすることによって所与の状況（またはコンテキスト）の場合、コードワード長がその所与の状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるＶＬＣテーブルを使うことができる。
【００６０】
図６は、本開示の態様を実施するビデオ符号化方法を示すフローチャートである。こうした態様は、たとえば、図１〜５に示すデバイスによって実施することができ、図１〜５に示すデバイスに関して説明する。ソースデバイス１２のビデオ符号器２０などのビデオ符号化デバイスの符号器において、ビデオデータのフレームが符号化され、受信デバイス１４などのビデオ復号デバイスに送信され得る。ビデオ符号器２０は、ビデオデータのフレームを予測ブロックに分割し、予測ブロックを変換し量子化する（ブロック６０１）。ビデオ符号器２０は、変換ブロックの変換係数を表すための１つまたは複数のシンボル組合せからなる集合を判断する（ブロック６０２）。各シンボル組合せは、変換ブロックの変換係数の一部分に関するラン情報、ＧＴＯ情報、および／またはＥＯＢ情報を示し得る。様々なサイズの変換ブロックに対して、ビデオ符号器２０は、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルなど、１つまたは複数のマルチレベルＶＬＣテーブルを定義するデータをエントロピー符号化ユニット４６に記憶する。コーディングされるべきシンボル組合せに対して、ビデオ符号器２０は、コーディングされるべきシンボル組合せに関連づけられたコンテキストならびに変換ブロックのサイズに基づいて、ＶＬＣテーブルモジュール１０４によって維持される特定のＶＬＣテーブルを識別する（ブロック６０３）。ビデオ符号器２０は、たとえば、シンボル組合せに関連づけられたゼロのラン（a run of zeros）の第１のゼロ係数の位置索引、変換ブロックに関する事前コーディングされたランおよびレベル値に基づいてコンテキストを判断してもよく、または、コンテキストがスライスヘッダーに入れられてシグナリングされてもよい。
【００６１】
カットオフラン値より大きいランを示すラン情報を示すシンボル組合せを識別したことに応答して（ブロック６０４、ｙｅｓのパス）、ビデオ符号器２０は、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルのコードワードの連結を備えるコードワードを、シンボル組合せに割り当てる（ブロック６０５）。第２レベルＶＬＣテーブルは、たとえば、ゴロムライスコードなどの構造化ＶＬＣコードを含み得る。特定の変換ブロックに対するカットオフラン値は、変換ブロックのサイズに基づいて決定することができる。たとえば、８×８変換ブロックのシンボル組合せをコーディングするときのカットオフラン値は、１６×１６変換ブロックまたは８×１６変換ブロックのシンボル組合せをコーディングするときのカットオフラン値とは異なってよい。
【００６２】
カットオフラン値以下のラン示すラン情報を示すシンボル組合せを識別したことに応答して（ブロック６０３、ｎｏのパス）、ビデオ符号器２０は、そのシンボル組合せに、第１レベルＶＬＣテーブルからのコードワードを割り当てる（ブロック６０６）。いくつかの実装形態では、シンボル組合せが、やはり第２のカットオフラン値以下であるランを示すラン情報を含む場合、第１レベルＶＬＣテーブルからのコードワードは、ラン情報、ＧＴＯ情報、およびＥＯＢ情報を含んでもよいが、シンボル組合せが、第２のカットオフラン値より大きいランを示すラン情報を含む場合、第１レベルＶＬＣテーブルからのコードワードは、ラン情報のみ、またはラン情報、一部のＧＴＯ情報、ＥＯＢ情報のみを含んでよい。
【００６３】
図７は、本開示で説明する技法を実施するビデオ符号化方法を示すフローチャートである。こうした技法は、たとえば、図１〜５に示すデバイスによって実施することができ、図１〜５に示すデバイスに関して説明する。図７に示す技法は、図６および図８の技法とともに、または単独で実装することができる。ソースデバイス１２のビデオ符号器２０などのビデオ符号化デバイスの符号器において、変換ブロックの複数のデジタルビデオブロック係数を表すための複数のシンボル組合せを決定することができる。ＶＬＣ符号化モジュール９８は、複数のシンボル組合せに関するラン情報を識別する（ブロック７０１）。ラン情報は、使われるコーディング方式に依存して、非ゼロ係数に先行し、またはその後に続く、連続するゼロ係数の数を示す。符号化プロセス中、エントロピー符号化ユニット４６は、マルチレベルＶＬＣテーブルを定義するデータを記憶する（ブロック７０２）。マルチレベルＶＬＣテーブルは、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを含む。第１レベルＶＬＣテーブルは、コードワードをシンボル組合せにマッピングする。
【００６４】
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を含む第１のシンボル組合せの場合、ＶＬＣ符号化モジュール９８は、第１のシンボル組合せに第１のコードワードを割り当てる（ブロック７０３）。第１のコードワードは、第１レベルＶＬＣテーブルからのエスケープコードを含む。連続するゼロ係数の第２の数が上記カットオフラン値以下であることを示す第２のラン情報を含む第２のシンボル組合せの場合、ＶＬＣ符号化モジュール９８は、第２のシンボル組合せに第２のコードワードを割り当てる（ブロック７０４）。第２のコードワードは、第１レベルＶＬＣテーブルからのものである。連続するゼロ係数の第３の数が上記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第３のラン情報を備える第３のシンボル組合せの場合、第３のシンボル組合せに第１のタイプのコードワードを割り当てる（ブロック７０５）。第１のタイプのコードワードは、１超過情報と、ブロック終結情報と、第３のラン情報とを含む。連続するゼロ係数の第４の数が上記カットオフラン値以下であり、第２のカットオフラン値より大きいことを示す第４のラン情報を備える第４のシンボル組合せの場合、第４のシンボル組合せに第２のタイプのコードワードを割り当てる（ブロック７０６）。第２のタイプのコードワードは、第４のラン情報を含み、１超過情報およびブロック終結情報は含んでも含まなくてもよい。
【００６５】
図８は、本開示で説明する技法を実施するビデオ符号化方法を示すフローチャートである。こうした技法は、たとえば、図１〜５に示すデバイスによって実施することができ、図１〜５に示すデバイスに関して説明する。図８に示す技法は、図７および図８の技法とともに、または単独で実装することができる。図６、７に関して説明したＶＬＣコーディング方法などのＶＬＣコーディングを実施する間（ブロック８０１）、ビデオ符号器２０のエントロピー符号化ユニット４６は、複数のマルチレベルＶＬＣテーブルを定義するデータを記憶することができる（ブロック８０２）。マルチレベルＶＬＣテーブルは、シンボル組合せをコードワードにマッピングする第１レベルＶＬＣテーブルを含み得る。統計分析モジュール１００は、候補シンボル組合せの集合の生起確率に関する統計を維持し（ブロック８０３）、収集された統計に基づいて、ＶＬＣ適応モジュール１０２は、第１レベルＶＬＣテーブル中で、シンボル組合せへのコードワードのマッピングを調整する（ブロック８０４）。上記でより詳しく説明し、図９、１０の例に関して以下で説明するように、エントロピー符号化ユニット４６は、単一のカットオフラン値または複数のカットオフラン値に基づいて、候補シンボル組合せの集合を制限することができる。図８に関して説明した技法の態様も、エントロピー復号ユニット５２の統計分析モジュール１０８およびＶＬＣ適応モジュール１１０によって、受信デバイス１４において同時に実施することができ、そうすることによって、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルにおける、シンボル組合せとコードワードとのマッピングへの変動が、その変動を記述するデータも、変動を記述する限られたデータのみも、ソースデバイス１２から受信デバイス１４に転送されることなく、ＶＬＣテーブルモジュール１１２によって維持されるＶＬＣテーブルに対して同時に実施される。
【００６６】
図１０は、４×４変換ブロックを示し、各正方形中の数字は、変換係数を表す。図１〜５の様々なモジュールおよびユニットの機能性についてここで、図１０の例示的４×４変換ブロックに関して説明する。図９に示す走査順に従って、図１０の変換ブロック用の変換係数の１次元配列が、ビデオ符号器２０によって、［０，３，０，−１，０，０，１，０，０，０，０，０，０，０，０，０］のように生成されることになる。説明を簡単にするために、この例では、４×４変換ブロックを使うが、本開示の態様は、４×４より大きい変換ブロックにも、適用可能でよく、特に有利であり得る。さらに、説明目的のために、この例では変換係数に言及するが、本開示の態様は、残差データなど、他のタイプのビデオブロックデータにも適用可能であり得る。
【００６７】
図１０の例示的変換ブロックと同様に、変換ブロックは、多数のゼロ係数を含むことが多い。その結果、「ラン」または「ランレングス」とも呼ばれる、各非ゼロ係数に先行する、連続するゼロの数はしばしば、ブロック中の非ゼロ係数のロケーション情報を伝える際に使われる。量子化された非ゼロ係数の絶対振幅（absolute amplitude）は、係数の「レベル」と呼ばれる。普通、順序付き係数配列の終結は、ゼロの値をもつ、かなりの数の連続する変換係数を含む。こうしたゼロを明示的にコーディングするのではなく、ビデオ符号器２０のエントロピー符号化ユニット４６は、変換ブロック中の残りの変換係数がすべてゼロであることをシグナリングするように、ブロック終結（ＥＯＢ）シンボルパターンをコーディングすればよい。あるいは、エントロピー符号化ユニット４６は、非ゼロ変換係数の数が受信された後の、残りの変換係数がすべてゼロであると仮定され得るように、非ゼロ変換係数の数をコーディングすればよい。
【００６８】
Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣは、変換係数をコーディングするためのコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）方式を定義する。ＣＡＶＬＣは主に、可変長コードで以下の情報をコーディングすることを含む。
【００６９】
１．ブロック中の非ゼロ係数および後続係数（trailing ones）（すなわち、振幅が１または−１のいずれかである係数）の数。
【００７０】
２．各後続係数の符号。
【００７１】
３．残りの非ゼロ係数のレベル。
【００７２】
４．最終係数の前のゼロの総数。
【００７３】
５．ゼロの各ラン（each run of zeros）。
【００７４】
上記情報をコーディングするとき、コードワード長は、その時点で使用可能な他の情報に基づいて適応可能に決定される。これは、一般に、コンテキスト適応型ＶＬＣ（ＣＡＶＬＣ）と呼ばれる。このコーディング方式は、１６個の変換係数を有する４×４変換ブロック向けに特に設計され、したがってそれらに対してよく機能する。ただし、この方式は、コーディング効率の大幅な損失を招くことなしには、より大きいサイズの変換ブロックに容易には拡張されない。ビデオコーディングの最近の焦点は高解像度コンテンツにあるので、より大きいサイズの予測ブロックならびに変換が、コーディング効率を向上させる上では有益であると思われる。その結果、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ  ＣＡＶＬＣ技法は、そうしたケースにおいて、競争力のあるコーディング性能を提供するのに十分に柔軟でない場合がある。
【００７５】
他の理由の中でも、本開示の態様は、４×４より大きいブロックを変換するように適合され得るので、本開示の態様は、Ｈ．２６４／ＭＰＥＧ−４標準におけるＣＡＶＬＣよりも有利であり得る。たとえば、本開示の態様は、８×８、１６×１６、３２×３２、８×１６、１６×３２、および他の様々なサイズの変換ブロックに対するコーディング効率を向上させ得る。１６×１６変換ブロックは、たとえば、４×４ブロックの１６個の変換係数と比較して、２５６個の変換係数をもち、したがって可能性としては、Ｈ．２６４／ＭＰＥＧ−４  ＣＡＶＬＣ技法を、より大きいブロックサイズに対しては非効率にさせる。本開示の態様によると、ビデオ符号器２０は、ソースデバイス１２が受信デバイス１４にデータを送信するのに先立って、変換ブロックからの係数配列のラン情報、レベル情報およびＥＯＢ情報を、可変長コードを使って一緒にコーディングする。各可変長コードは、ラン情報、レベル情報、およびＥＯＢ情報のある特定のステータスを表す。より詳細には、各非ゼロ係数に対して、可変長コードワードは、以下の情報の一部または全部を表す。
【００７６】
ａ）ラン（run）：係数に先行する、連続するゼロの数
ｂ）１超過（greater-than-one）（ＧＴＯ）：非ゼロ係数のレベルが１より大きいかを示す
ｃ）ブロック終結（end of block）（ＥＯＢ）：コーディングされる非ゼロ係数が、１次元の係数配列中の最後の非ゼロ係数であるかを示す。
【００７７】
図１０の変換ブロックと図９の走査順とを例として使い、係数のコーディング順が走査順と同じ（すなわち、１次元配列において左から右）である場合、ビデオ符号器２０によってコーディングされ、受信デバイス１４に送信されるべきシンボル組合せは、１次元のジグザグ走査列［０，３，０，−１，０，０，１，０，０，０，０，０，０，０，０，０］に対して、（ラン，ＧＴＯ，ＥＯＢ）の形で、（１，１，０），（１，０，０），（２，０，１）のようになる。
【００７８】
この例の第１のシンボル組合せ（１，１，０）は、１のラン値を含み、第１の非ゼロ係数の左に１つのゼロがあることを表明する。第１のシンボル組合せは、１のＧＴＯ値を含み、非ゼロ係数が、１より大きい値をもつことを示し、この事例では３に等しい。第１のシンボル組合せは、第１のシンボル組合せが、１次元配列の最後の非ゼロ係数を含まないことを示す、０のＥＯＢ値を含む。第１のシンボル組合せに基づいて、ビデオ復号器２６のエントロピー復号ユニット５２は、１次元配列の［０，３，．．．］部分を再構成することができる。
【００７９】
第２のシンボル組合せ（１，０，０）は、１のラン値を含み、次の非ゼロ変換係数（この例では、−１）の左に１つのゼロがあることを示す。第２のシンボル組合せは、非ゼロ変換係数が、１より大きい値をもたないことを示す、０のＧＴＯ値を含み、第２のシンボル組合せは、第２のシンボル組合せが、１次元配列の最後の非ゼロ係数を含まないことを示す、０のＥＯＢ値を含む。第２のシンボル組合せに基づいて、エントロピー復号ユニット５２は、１次元配列の［．．．０，−１，．．．］部分を再構成することができる。
【００８０】
第３のシンボル組合せ（２，０，１）は２のラン値を含み、この事例では１である非ゼロ変換係数の左に２つのゼロがあることを示す。第３のシンボル組合せは、非ゼロ変換係数が１であることを示す、０のＧＴＯ値と、非ゼロ変換係数が、１次元配列中の最後の非ゼロ変換係数であることを示す、１のＥＯＢ値とを含む。第３のシンボル組合せに基づいて、エントロピー復号ユニット５２は、配列の［．．．０，０，１，０，０，０，０，０，０，０，０，０］部分を再構成することができ、したがって、３つすべてのシンボル組合せに基づいて、１次元配列全体が再構成され得る。ビデオ符号器２０において使われる走査順を知ることによって、ビデオ復号器２６は、変換ブロックを同じ順序で再構成することができる。
【００８１】
ビデオ符号器２０およびビデオ復号器２６は、ＶＬＣテーブルを同時に構成し、管理することができ、ＶＬＣテーブルからの各コードワードは、（ラン，ＧＴＯ，ＥＯＢ）のある特定のステータスを表す。図１０の例の場合、たとえば、３つのコードワード、すなわち３つのシンボル組合せそれぞれに１つのコードワードで、上記で言及した情報をすべて、ソースデバイス１２から受信デバイス１４に伝えるのに十分である。
【００８２】
あるいは、係数のコーディングは、逆走査順で実施することもできる。このような事例では、コーディングされるべきシンボル組合せは、（ラン，ＧＴＯ，ＥＯＢ）の形で、（２，０，０）、（１，０，０）、（１，１，１）のようになる。この逆走査順例では、第１のシンボル組合せ（２，０，０）は、第１の非ゼロ係数の左に２つのゼロ係数があることを表明する、２のラン値をもち、この事例では、第１の移動は、１次元配列中で右から左の方向である。第１のシンボル組合せは、非ゼロ変換係数が、１の値をもつことを示す、０のＧＴＯ値と、非ゼロ係数が、１次元配列中の最後の非ゼロ係数ではないことを示す、０のＥＯＢ値とをもつ。第１のコードワードに基づいて、エントロピー復号ユニット５２は、１次元配列の［．．．０，０，１．．．］部分を再構成することができる。
【００８３】
第２のシンボル組合せ（１，０，０）は、１のラン値をもち、この場合では−１である次の非ゼロ係数の左に１つのゼロがあることを示す。第２のシンボル組合せは、非ゼロ変換係数が、１以下のレベルをもつことを表明する、０のＧＴＯ値をもち、第２のシンボル組合せは、非ゼロ変換係数が、１次元配列中の最後の非ゼロ変換係数ではないことを示す、０のＥＯＢ値をもつ。第２のコードワードに基づいて、エントロピー復号ユニット５２は、１次元配列の［．．．０，−１．．．］部分を再構成することができる。
【００８４】
第３のシンボル組合せ（１，１，１）は、１のラン値をもち、次の非ゼロ係数の左に１つのゼロがあることを示す。第３のシンボル組合せは、非ゼロ変換係数が、１より大きいレベルをもつことを示す、１のＧＴＯ値をもち、第３のシンボル組合せは、非ゼロ変換係数が、１次元配列中の最後の非ゼロ変換係数ではないことを示す、１のＥＯＢ値をもつ。第３のシンボル組合せに基づいて、エントロピー復号ユニット５２は、１次元配列の［０，３，．．．．］部分を再構成することができる。ビデオ符号器２０において使われる走査順を知ることによって、ビデオ復号器２６は、変換ブロックを再構成することができる。
【００８５】
上記の例は、（ラン，ＧＴＯ，ＥＯＢ）のある特定のステータスを表す単一のシンボル組合せを提示するが、シンボル組合せは、ラン、ＧＴＯ、およびＥＯＢ情報のどの組合せも含み得る。たとえば、（ラン，ＧＴＯ，ＥＯＢ）のある特定のステータスは、ラン情報を表す第１のシンボル組合せと、ＧＴＯおよびＥＯＢ情報を表す第２のシンボル組合せとによって表すことができる。第１および第２のシンボル組合せは、別々にエントロピーコーディングし、送信することができる。別の実施例では、シンボル組合せは、ラン情報と、ＧＴＯもしくはＥＯＢ情報のいずれかを表すことができ、または、後で説明するように、一部のＧＴＯおよびＥＯＢ情報とともにラン情報を含むことができる。
【００８６】
上記情報に加え、レベルが１より大きい複数の係数に対して、ソースデバイス１２は、そのレベルの値を別々にコーディングし、受信デバイス１４にその値を送信することができる。さらに、ソースデバイス１２は、１ビットを使って、各非ゼロ係数の符号をコーディングし、受信デバイス１４にその符号を送信することができる。より多数の非ゼロ変換係数が１に等しいことにより、この技法は、非ゼロ変換係数に関するレベル情報を転送するのに必要とされるビットの数を低減することによって、コーディング効率をさらに向上させることができる。
【００８７】
所与のサイズの変換ブロック用のラン、ＧＴＯ、および／またはＥＯＢに対するすべての可能なシンボル組合せをカバーするために、特に変換サイズが大きいとき、多数のコードワードが、ビデオ符号器２０およびビデオ復号器２６におけるＶＬＣテーブルに対して必要とされ得る。ただし、より大きいサイズのＶＬＣテーブルは、コードワードを保存するのに、より多くのメモリを必要とする。このような要件を緩和するために、本開示の態様は、２つ以上のレベルを含むＶＬＣテーブルを使用することを含む。２レベルのＶＬＣテーブルでは、たとえば、第１レベルのテーブルは、１つの可変長コードが１つのエスケープコードを表す、いくつかの可変長コードを含んでよい。第２レベルのテーブルは、ゴロムライスコードなど、構造化ＶＬＣコードのグループを含んでよい。その構造化性質により、第２レベルＶＬＣコードは、ＶＬＣテーブルモジュール１０４およびＶＬＣテーブルモジュール１１２によって、それぞれ、ビデオ符号器２０とビデオ復号器２６の両方において動的に生成することができるので、第２レベルＶＬＣコードを保存する必要はない。エスケープコードは、第１レベルＶＬＣテーブルとは反対に、第２レベルＶＬＣテーブルを使って特定のコードワードを復号するよう、ビデオ復号器２６に知らせる。
【００８８】
２レベルのＶＬＣテーブルを使うと、本開示で説明したように、ラン、ＧＴＯ、および／またはＥＯＢのシンボル組合せの部分集合のみが、第１レベルＶＬＣテーブル中の可変長コードにマッピングされる。ビデオ符号器２０は、シンボル組合せの残部を、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングする。エスケープコードを検出すると、ビデオ復号器２６は、第２レベルＶＬＣテーブルを使ってコードワードを復号する。
【００８９】
ラン、ＧＴＯ、および／またはＥＯＢに対する可能なシンボル組合せの数は、第１レベルＶＬＣテーブル中の可変長コードの数より大きくてよい。そのような場合、可能なシンボル組合せはすべて、第１レベルＶＬＣテーブル中の可変長コードにマッピングされるべき候補シンボル組合せでよい。ある特定のコンテキストの下での生起確率に基づいて、最もしばしば生起する候補シンボル組合せのみが、それぞれ、第１レベルＶＬＣテーブル中の可変長コードにマッピングされればよい。候補シンボル組合せの残部は、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングすることができる。
【００９０】
たとえば、Ｎが、可能なシンボル組合せの数を表し、Ｍが、第１レベルＶＬＣテーブル中の可変長コードエントリの数を表し、Ｎの値がＭより大きい場合、Ｎ個のシンボル組合せはすべて、候補シンボル組合せでよい。Ｎ個の候補シンボル組合せのどれが、第１レベルＶＬＣテーブル中の可変長コードにマッピングされるかは、各候補シンボル組合せの生起確率に基づいて決定することができる。最終的に、Ｎ個の可能な組合せのうち、ラン、ＧＴＯ、および／またはＥＯＢに対する（Ｍ−１）個のシンボル組合せのみが、第１レベルＶＬＣテーブル中の可変長コードにマッピングされる。ビデオ符号器２０は、残りの（Ｎ−Ｍ＋１）個のシンボル組合せを、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングする。
【００９１】
本開示のある態様は、ビデオ符号器２０が、（ラン，ＧＴＯ，ＥＯＢ）ステータスの成分を別々にコーディングして、ＶＬＣテーブルに対する候補シンボル組合せの数を低減することを含む。たとえば、ビデオ符号器２０は、（ラン，ＧＴＯ，ＥＯＢ）ステータスのラン情報を、第１レベルＶＬＣテーブルから、または第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結として、ＶＬＣテーブルからのコードワードを使ってコーディングするだけでよい。ビデオ符号器２０は、ＧＴＯおよびＥＯＢ情報を、ラン情報とは別々にコーディングしてよい。別の実施例では、ビデオ符号器２０は、ラン情報のみを、第１レベルＶＬＣテーブルからのコードワードを使って、ＧＴＯおよびＥＯＢについての一部の情報と一緒にコーティングすればよい。このような一部の情報の例は、ＯＲ（ＧＴＯ，ＥＯＢ）でよく、ここでＯＲは、論理ＯＲ演算を表す。その結果、ランおよびＯＲ（ＧＴＯ，ＥＯＢ）の値を、ＶＬＣテーブルからのコードワードを使って一緒にコーディングすることができる。ＧＴＯおよびＥＯＢについてのより詳細な情報は、別々にコーディングすることができる。ＧＴＯ値およびＥＯＢ値のいずれかまたは両方が非ゼロである（すなわち、ＯＲ演算が真である）場合、ビデオ復号器２６は、より詳細な情報を処理する。ＧＴＯ値とＥＯＢ値の両方がゼロである（すなわち、ＯＲ演算が偽である）場合、ビデオ復号器２６は、どの追加情報も、復号される必要がないことを知る。
【００９２】
本開示の態様は、第１レベルＶＬＣテーブル中のコードワードにマッピングされる候補であるシンボル組合せの総数を低減することによって、コーディング効率を向上させることができる。一態様では、カットオフラン値は、異なる各サイズの変換ブロックごとに定義され得る。次に、変換ブロックサイズおよび関連づけられたカットオフラン値に基づいて、カットオフラン値以下であるランに関連づけられたシンボル組合せのみが、第１レベルＶＬＣテーブル中の可変長コードワードにマッピングされ得る候補組合せである。カットオフラン値より大きいランに関連づけられたシンボル組合せは、第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結としてコーディングすることができる。第１のシンボル組合せが、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す場合、エントロピー符号化ユニット４６のＶＬＣ符号化モジュール９８は、第１レベルＶＬＣテーブルからのエスケープコードを含む第１のコードワードを、第１のシンボル組合せに割り当てる。第２のシンボル組合せが、連続するゼロ係数の第２の数がカットオフラン値以下であることを示す場合、エントロピー符号化ユニット４６のＶＬＣ符号化モジュール９８は、第２のシンボル組合せに第２のコードワードを割り当てる。第２のコードワードは、第１レベルＶＬＣテーブルからのコードワードである。
【００９３】
別の態様では、２つのカットオフラン値、すなわちｒｕｎ１およびｒｕｎ２（ｒｕｎ１≦ｒｕｎ２）を、異なる各サイズの変換ブロック用に定義することができる。次に、変換ブロックサイズおよび関連づけられたカットオフラン値に基づいて、エントロピー符号化ユニット４６は、ｒｕｎ２以下のランに関連づけられたシンボル組合せのみを、第１レベルＶＬＣテーブル中の可変長コードワードを使ってコーディングされ得る候補シンボル組合せとして扱う。ただし、エントロピー符号化ユニット４６は、ｒｕｎ１以下のランに関連づけられたシンボル組合せの成分のみを、ジョイント方式でコーディングする（すなわち、ラン、ＧＴＯ、およびＥＯＢが、１つのコードワードとして一緒にコーディングされ得る）。エントロピー符号化ユニット４６は、ｒｕｎ１より大きいランに関連づけられたシンボル組合せの成分を別々にコーディングする。たとえば、エントロピー符号化ユニット４６は、ＶＬＣテーブルを使って（第１レベルＶＬＣテーブル中のコードワードいずれかで、または第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結として）、シンボル組合せのラン情報のみをコーティングし、シンボル組合せに対するＧＴＯおよびＥＯＢ情報を、ラン情報とは別々にコーディングすればよい。
【００９４】
２つのカットオフラン値（ｒｕｎ１およびｒｕｎ２）を使用するとき、エントロピー符号化ユニット４６のＶＬＣ符号化モジュール９８は、連続するゼロ係数の数がｒｕｎ１以下であり、ｒｕｎ２以下であることを示すラン情報をもつシンボル組合せに、第１のタイプのコードワードを割り当てる。第１のタイプのコードワードは、たとえば、１超過情報と、ブロック終結情報と、ラン情報とを含み得る。エントロピー符号化ユニット４６のＶＬＣ符号化モジュール９８は、連続するゼロ係数の数がｒｕｎ２以下であり、ｒｕｎ１より大きいことを示すラン情報を備えるシンボル組合せに、第２のタイプのコードワードを割り当てる。第２のタイプのコードワードは、ラン情報を含み、一部の１超過情報およびブロック終結情報も含み得る。
【００９５】
別の態様では、ｒｕｎ１より大きいがｒｕｎ２以下のランをもつシンボル組合せに対して、エントロピー符号化ユニット４６は、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルからのコードワードを、第１レベルＶＬＣテーブル中のコードワードとして、または第１レベルＶＬＣテーブルからのエスケープコードおよび第２レベルＶＬＣテーブルからのコードワードの連結として使って、ＧＴＯおよびＥＯＢについての一部の情報と一緒に、ラン情報のみをコーディングする。このような一部の情報の一例は、ＯＲ（ＧＴＯ，ＥＯＢ）で表すことができ、ここでＯＲは、論理ＯＲ演算を表す。その結果、エントロピー符号化ユニット４６は、ＶＬＣテーブルモジュール１０４によって維持されるＶＬＣテーブルからのコードワードを使って、ランと、ＯＲ（ＧＴＯ，ＥＯＢ）の値とを一緒にコーディングし、ＧＴＯおよびＥＯＢについてのより詳細な情報を別々にコーディングする。
【００９６】
単一のカットオフラン値または複数のカットオフラン値に基づく、第１レベルＶＬＣテーブルに対する候補シンボル組合せの数の制限など、本開示の態様は、特に４×４より大きい変換ブロックに対して、コーディングおよび復号効率を向上させることができる。
【００９７】
さらに、本開示の態様は、ビデオ符号器２０およびビデオ復号器２６が生起確率を追跡しなければならないシンボル組合せの数を制限することによって、コーディング効率を向上させることができる。たとえば、４×４より大きい変換ブロックが、ラン、ＧＴＯ、およびＥＯＢに対して数千または１万をも超える可能なシンボル組合せをもつ場合がある。本開示の態様は、最も頻繁に生起するシンボル組合せを含むと思われる可能な総シンボル組合せの部分集合を識別するのに用いることができる。すると、ビデオ符号器２０およびビデオ復号器２６は、すべての可能なシンボル組合せではなく、部分集合に関する生起確率を追跡するだけでよく、したがって、生起確率の追跡に専用とされる処理資源の量が低減される。頻繁に生起する一部のシンボル組合せが、部分集合から除外される場合であっても、生起確立の追跡に専用とされる処理資源の低減は、依然として、全体的システム性能において全体として肯定的であり得る。
【００９８】
良好なコーディング効率のために、ビデオ符号器２０は、いくつかの要素に基づいて複数のＶＬＣテーブルから適切なＶＬＣテーブルを選択すればよく、そうすることによって所与の状況（またはコンテキスト）の場合、コードワード長がその所与の各状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるＶＬＣテーブルを使うことができる。
【００９９】
別の態様は、符号化プロセス中に、ＶＬＣ符号化モジュール９８が、コーディングされるべきシンボル組合せに関連づけられたランの第１のゼロ係数の位置索引に基づいて、ＶＬＣテーブルモジュール１０４によって維持される特定のテーブルＶＬＣテーブルを選択することを含む。コーディングは、係数配列中の第１の係数から始まる。シンボル組合せをコーディングするために、シンボル組合せに関連づけられたランの第１のゼロ係数の位置索引が調べられる。次に、走査順の位置索引値に基づいて、カレント・シンボル組合せをコーディングするためのＶＬＣテーブルが選択される。再度一例として図３を使うと、コーディングされるべきシンボル組合せは、（１，１，０）、（１，０，０）、（２，０，１）である。シンボル組合せ（１，１，０）の場合、ランの第１のゼロ係数の位置索引値は０である。同様に、（１，０，０）および（２，０，１）の場合、位置索引値は、それぞれ２、４である。ＶＬＣコードワードを受信したことに応答して、ＶＬＣ復号モジュール１０６は、ＶＬＣテーブル１１２内で、ＶＬＣ符号化モジュール９８によって使われる特定のＶＬＣテーブルを識別し、ＶＬＣコードワードからシンボル組合せを判断するように構成され得る。
【０１００】
本開示の別の態様は、ＶＬＣ符号化モジュール９８が、ブロック中の事前コーディングされたランおよびレベル値の両方に基づいて、ＶＬＣテーブルモジュール１０４によって維持される特定のＶＬＣテーブルを選択することを含む。コーディングは、係数配列中の最後の非ゼロ係数から始まり、逆走査順で実施される。カレント・シンボル組合せをコーディングするために、ブロック中のすべての事前コーディングされたシンボル組合せのレベル、ならびに事前コーディングされたシンボル組合せのランが調べられる。１のレベルをもつ、事前コーディングされたシンボル組合せの数が、事前コーディングされたシンボル組合せのランと一緒に、カレント・シンボル組合せをコーディングするコンテキストとして使われる。ただし、カレント・ブロックの事前コーディングされたシンボル組合せが、１より大きいレベルを少なくとも含む場合、事前コーディングされたシンボル組合せのランのみが、カレント・シンボル組合せをコーディングするコンテキストとして使われる。具体的には、ブロック中の第１のシンボル組合せをコーディングするコンテキストを形成するとき、１のレベルをもつ、事前コーディングされたシンボル組合せの数が１にセットされ、事前コーディングされたシンボル組合せのランが、いくつかの事前コーディングされたブロック中の、第１のコーディングされたシンボル組合せのランの平均としてセットされる。
【０１０１】
上述したコンテキスト適応型ＶＬＣテーブルは、様々なコーディング条件の下での変換係数用に設計し、構成することができる。それゆえ、各コンテキストに対して複数のＶＬＣテーブルが使用可能であり得る。本開示で説明する一技法の態様は、各コンテキスト向けの最良のＶＬＣテーブルの索引を、スライスヘッダーに入れてシグナリングすることを含む。さらに、各コンテキストの下でのシンボル組合せの生起確率は、スライス中のブロックがコーディングされている間、たとえば、統計分析モジュール１００によって累積することができる。各コンテキストの下でのシンボル分布確率は、カレント・スライス中で一定数のブロックがコーディングされるたびに、評価し直し、更新することができる。次に、更新されたシンボル分布プロパティに基づいて、ＶＬＣテーブル中のコードワードが、各コンテキスト向けの様々なシンボル組合せに再マッピングされ得る。このようなシンボル組合せの生起確率の累積および再マッピングは、ビデオ符号器２０の統計分析モジュール１００およびＶＬＣ適応モジュール１０２と、ビデオ復号器２６の統計分析モジュール１０８およびＶＬＣ適応モジュール１１０とによって同じやり方で実施することができる。その結果、どの追加情報も、ビデオ符号器２０からビデオ復号器２６にシグナリングされる必要がない。
【０１０２】
本開示で説明する技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。たとえば、こうした技法の様々な態様は、１つもしくは複数のマイクロプロセッサ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、または他のどの均等な統合型もしくは個別論理回路、ならびに、符号器、ラップトップ、デスクトップまたはハンドヘルドコンピュータ、ワイヤレスモバイルハンドセット、セットトップボックス、または他のデバイスでも実施されるこのような構成要素のどの組合せにおいても実装することができる。「プロセッサ」または「処理回路」という用語は、一般に、単独で、あるいは他の論理回路または他の等価回路との組合せで上記の論理回路のいずれかを指すことがある。
【０１０３】
本開示で説明する技法の態様は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。モジュールまたは構成要素として説明する機能は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装できる。ソフトウェアで実装される場合、本開示で説明したシステムおよびデバイスに帰因する機能性は、ＲＡＭ、ＳＤＲＡＭ、ＲＯＭ、ＮＶＲＡＭ、ＥＥＰＲＯＭ、フラッシュメモリ、磁気媒体、光学媒体などのような非一時的コンピュータ可読記憶媒体上の命令として実施することができる。「非一時的」という用語は、記憶媒体が、搬送波または伝搬信号では具現化されないことを示し得る。ただし、「非一時的」という用語は、記憶媒体が非移動性であることを意味するものと解釈されるべきでない。一例として、記憶媒体は、あるデバイスから取り外され、別のデバイスに移され得る。別の例として、記憶媒体は、あるデバイスに差し込むことができる。いくつかの例では、非一時的記憶媒体は、時間経過に伴って変動し得るデータを（たとえば、ＲＡＭに）記憶することができる。命令は、本開示で説明した機能性の１つまたは複数の態様をサポートするように実行することができる。
【０１０４】
プログラムコードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価の集積回路または個別論理回路によって実行され得る。したがって、本開示で使用する「プロセッサ」という用語は、前述の構造、または説明した技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本開示で説明する機能を、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアユニット内に提供することができ、または複合ビデオ符号器／復号器（コーデック（ＣＯＤＥＣ））に組み込むことができる。
【０１０５】
本開示の多くの態様について説明した。特許請求の範囲から逸脱することなく、様々な改変を行い得る。これらおよび他の態様は以下の特許請求の範囲内に入る。
なお、本願の出願当初の請求項と同一の記載を以下に付記する。
［Ｃ１］  可変長コーディング（ＶＬＣ）の方法であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、前記ラン情報が、連続するゼロ係数の数を示すことと、
マルチレベルＶＬＣテーブルを定義するデータを記憶することであって、前記マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングすることと、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せの場合、前記第１のシンボル組合せに第１のコードワードを割り当てることであって、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備えることと、を備える方法。
［Ｃ２］  連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第２のコードワードを割り当てることであって、前記第２のコードワードが、前記第１レベルＶＬＣテーブルからのものであること、をさらに備える、Ｃ１に記載の方法。
［Ｃ３］  連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第１のタイプのコードワードを割り当てることであって、前記第１のタイプのコードワードが、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備えることと、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のシンボル組合せに第２のタイプのコードワードを割り当てることであって、前記第２のタイプのコードワードが、前記第３のラン情報を備えることとをさらに備える、Ｃ１に記載の方法。
［Ｃ４］  前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、Ｃ３に記載の方法。
［Ｃ５］  候補シンボル組合せの集合に関するコーディング統計を収集することと、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整することとをさらに備える、Ｃ１に記載の方法。
［Ｃ６］  候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、Ｃ５に記載の方法。
［Ｃ７］  前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、Ｃ１に記載の方法。
［Ｃ８］  複数のマルチレベルＶＬＣテーブルを定義するデータを記憶することと、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別することとをさらに備える、Ｃ１に記載の方法。
［Ｃ９］  前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、Ｃ８に記載の方法。
［Ｃ１０］  前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、Ｃ８に記載の方法。
［Ｃ１１］  前記コンテキストがスライスヘッダーに入れてシグナリングされる、Ｃ８に記載の方法。
［Ｃ１２］  前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、Ｃ１に記載の方法。
［Ｃ１３］  前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、Ｃ１に記載の方法。
［Ｃ１４］  前記方法がビデオ符号化デバイスによって実施される、Ｃ１に記載の方法。
［Ｃ１５］  前記方法がビデオ復号デバイスによって実施される、Ｃ１に記載の方法。
［Ｃ１６］  ビデオデータをコーディングするためのビデオコーディングデバイスであって、
マルチレベルＶＬＣテーブルを定義するデータを記憶するように構成された可変長コード（ＶＬＣ）テーブルモジュールであって、前記マルチレベルテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングする、モジュールと、
第１のシンボル組合せに第１のコードワードを割り当てるように構成されたＶＬＣコーディングモジュールであって、前記第１のシンボル組合せが、連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備え、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備える、モジュールと、
を備えるビデオコーディングデバイス。
［Ｃ１７］  前記ＶＬＣコーディングモジュールが、
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せに、前記第１レベルＶＬＣテーブルからのものである第２のコードワードを割り当てるようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ１８］  前記ＶＬＣコーディングモジュールが、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せに、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備える第１のタイプのコードワードを割り当て、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せに、前記第３のラン情報を備える第２のタイプのコードワードを割り当てるようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ１９］  前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、Ｃ１８に記載のビデオコーディングデバイス。
［Ｃ２０］  候補シンボル組合せの集合に関するコーディング統計を収集するように構成された統計分析モジュールと、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するように構成されたＶＬＣ適応モジュールとをさらに備える、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ２１］  候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、Ｃ２０に記載のビデオコーディングデバイス。
［Ｃ２２］  前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ２３］  前記ＶＬＣテーブルモジュールが、複数のマルチレベルＶＬＣテーブルを定義するデータを記憶するようにさらに構成され、
前記ＶＬＣコーディングモジュールが、特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記特定のシンボル組合せ向けのコンテキストに基づいて識別するようにさらに構成される、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ２４］  前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、Ｃ２３に記載のビデオコーディングデバイス。
［Ｃ２５］  前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、Ｃ２３に記載のビデオコーディングデバイス。
［Ｃ２６］  前記コンテキストがスライスヘッダーに入れてシグナリングされる、Ｃ２３に記載のビデオコーディングデバイス。
［Ｃ２７］  前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ２８］  前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ２９］  前記ビデオ復号デバイスがビデオ符号器である、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ３０］  前記ビデオ復号デバイスがビデオ復号器である、Ｃ１６に記載のビデオコーディングデバイス。
［Ｃ３１］  ビデオコーディング装置であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、前記ラン情報が、連続するゼロ係数の数を示す、手段と、
マルチレベルＶＬＣテーブルを定義するデータを記憶するための手段であって、前記マルチレベルＶＬＣテーブルが、第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備え、前記第１レベルＶＬＣテーブルが、シンボル組合せにコードワードをマッピングする、手段と、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せに対して、前記第１のシンボル組合せに第１のコードワードを割り当てるための手段であって、前記第１のコードワードが、前記第１レベルＶＬＣテーブルからのエスケープコードを備える、手段とを備えるビデオコーディング装置。
［Ｃ３２］  連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第２のコードワードを割り当てる手段であって、前記第２のコードワードが、前記第１レベルＶＬＣテーブルからのものである、手段をさらに備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ３３］  連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第２のシンボル組合せに第１のタイプのコードワードを割り当てることであって、前記第１のタイプのコードワードが、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備えることと、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のシンボル組合せに第２のタイプのコードワードを割り当てることであって、前記第２のタイプのコードワードが、前記第３のラン情報を備えることとをさらに備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ３４］  前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、Ｃ３３に記載のビデオコーディング装置。
［Ｃ３５］  候補シンボル組合せの集合に関するコーディング統計を収集するための手段と、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するための手段とをさらに備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ３６］  候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、Ｃ３５に記載のビデオコーディング装置。
［Ｃ３７］  前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、Ｃ３１に記載のビデオコーディング装置。
［Ｃ３８］  複数のマルチレベルＶＬＣテーブルを定義するデータを記憶するための手段と、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別するための手段とをさらに備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ３９］  前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、Ｃ３８に記載のビデオコーディング装置。
［Ｃ４０］  前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、Ｃ３８に記載のビデオコーディング装置。
［Ｃ４１］  前記コンテキストがスライスヘッダーに入れてシグナリングされる、Ｃ３８に記載のビデオコーディング装置。
［Ｃ４２］  前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ４３］  前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、Ｃ３１に記載のビデオコーディング装置。
［Ｃ４４］  前記ビデオコーディング装置がビデオ符号器の一部である、Ｃ３１に記載のビデオコーディング装置。
［Ｃ４５］  前記ビデオコーディング装置がビデオ復号器の一部である、Ｃ３１に記載のビデオコーディング装置。
［Ｃ４６］  １つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、
シンボル組合せにコードワードをマッピングする第１レベルＶＬＣテーブルと第２レベルＶＬＣテーブルとを備えるマルチレベルＶＬＣテーブルを定義するデータを記憶させ、
連続するゼロ係数の第１の数がカットオフラン値より大きいことを示す第１のラン情報を備える第１のシンボル組合せの場合、前記第１レベルＶＬＣテーブルからのエスケープコードを備える第１のコードワードを、前記第１のシンボル組合せに割り当てさせる、１つまたは複数の命令を有形に記憶するコンピュータ可読記憶媒体。
［Ｃ４７］  前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
連続するゼロ係数の第２の数が前記カットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、前記第１レベルＶＬＣテーブルからのものである第２のコードワードを、前記第２のシンボル組合せに割り当てさせる１つまたは複数の追加命令を有形に記憶する、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ４８］  前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
連続するゼロ係数の第２の数が前記カットオフラン値以下であり、第２のカットオフラン値以下であることを示す第２のラン情報を備える第２のシンボル組合せの場合、１超過情報と、ブロック終結情報と、前記第２のラン情報とを備える第１のタイプのコードワードを前記第２のシンボル組合せに割り当てさせ、
連続するゼロ係数の第３の数が前記カットオフラン値以下であり、前記第２のカットオフラン値より大きいことを示す第３のラン情報を備える第３のシンボル組合せの場合、前記第３のラン情報を備える第２のタイプのコードワードを前記第３のシンボル組合せに割り当てさせる、１つまたは複数の追加命令を有形に記憶する、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ４９］  前記第２のタイプのコードワードが、一部の１超過情報およびブロック終結情報をさらに備える、Ｃ４８に記載のコンピュータ可読記憶媒体。
［Ｃ５０］  前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
候補シンボル組合せの集合に関するコーディング統計を収集させ、
前記第１レベルＶＬＣテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整させる、１つまたは複数の追加命令を有形に記憶する、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ５１］  候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、Ｃ５０に記載のコンピュータ可読記憶媒体。
［Ｃ５２］  前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ５３］  前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
複数のマルチレベルＶＬＣテーブルを定義するデータを記憶させ、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルＶＬＣテーブルのうち特定のマルチレベルＶＬＣテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別させる、１つまたは複数の追加命令を有形に記憶する、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ５４］  前記コンテキストが、シンボルに関連づけられたゼロのランの第１のゼロ係数の位置索引に基づいて決定される、Ｃ５３に記載のコンピュータ可読記憶媒体。
［Ｃ５５］  前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、Ｃ５３に記載のコンピュータ可読記憶媒体。
［Ｃ５６］  前記コンテキストがスライスヘッダーに入れてシグナリングされる、Ｃ５３に記載のコンピュータ可読記憶媒体。
［Ｃ５７］  前記第２レベルＶＬＣテーブルが構造化ＶＬＣコードを備える、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ５８］  前記第２レベルＶＬＣテーブルがゴロムライスコードを備える、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ５９］  前記１つまたは複数のプロセッサがビデオ符号器の一部である、Ｃ４６に記載のコンピュータ可読記憶媒体。
［Ｃ６０］  前記１つまたは複数のプロセッサがビデオ復号器の一部である、Ｃ４６に記載のコンピュータ可読記憶媒体。
【図１】
0005547335.tif 000002
【図２】
0005547335.tif 000003
【図３】
0005547335.tif 000004
【図４】
0005547335.tif 000005
【図５】
0005547335.tif 000006
【図６】
0005547335.tif 000007
【図７】
0005547335.tif 000008
【図８】
0005547335.tif 000009
【図９】
0005547335.tif 000010
【図１０】
0005547335.tif 000011