(57)【要約】  本開示は、コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化する技術について説明する。方法は、ビデオブロックの最後の非ゼロ係数を推定することと、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成することとを具備することができる。
2011514055.tif 000002
【特許請求の範囲】
【請求項１】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのための、ビデオブロックの係数を量子化する方法であって、
前記ビデオブロックの最後の非ゼロ係数を推定することと、
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという仮定に基づいて前記ビデオブロックの量子化係数のセットを生成することと、
を具備する方法。
【請求項２】
前記生成された量子化係数のセットを出力すること、をさらに具備する請求項１に記載の方法。
【請求項３】
前記生成された量子化係数のセットを受信することと、
前記生成された量子化係数のセットをビットストリームにエントロピー符号化するために、前記生成された量子化係数のセットに対して前記ＣＡＢＡＣを行うことと、
前記ビットストリームを出力することと、
をさらに具備する請求項２に記載の方法。
【請求項４】
前記最後の非ゼロ係数を推定することは、前記ＣＡＢＡＣによって前記ビデオブロックを符号化することに関連するコストを近似することを含み、前記近似されたコストのうちの異なるコストは、前記最後の非ゼロ係数である異なる係数に対応し、前記推定された最後の非ゼロ係数は、近似された最低コストを定義する請求項１に記載の方法。
【請求項５】
前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると連続的に見なすことによって前記近似されたコストのうちの前記異なるコストを連続的に定義すること、をさらに具備する請求項４に記載の方法。
【請求項６】
前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整することによって前記近似されたコストのうちの前記異なるコストを定義すること、をさらに具備する請求項５に記載の方法。
【請求項７】
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという前記仮定に基づいて前記ビデオブロックの量子化係数の前記セットを生成することは、
０、フロア値およびシーリング値に等しい値を有する、前記ビデオブロックの量子化係数の前記セット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算すること、
を具備する請求項１に記載の方法。
【請求項８】
前記フロア値は前記ビデオブロックの前記係数の個々の係数の絶対値と量子化パラメータと量子化行列とに基づいており、前記シーリング値は前記フロア値＋１からなる請求項７に記載の方法。
【請求項９】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスにおいて、実行時にデバイスにビデオブロックの係数を量子化させる命令を具備するコンピュータ可読媒体であって、前記命令は、前記デバイスに
前記ビデオブロックの最後の非ゼロ係数を推定することと、
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという仮定に基づいて前記ビデオブロックの量子化係数のセットを生成することと、
を行わせるコンピュータ可読媒体。
【請求項１０】
前記デバイスに前記生成された量子化係数のセットを出力させる命令をさらに具備する請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記デバイスに、
前記生成された量子化係数のセットを受信することと、
前記生成された量子化係数のセットをビットストリームにエントロピー符号化するために、前記生成された量子化係数のセットに対して前記ＣＡＢＡＣを行うことと、
前記ビットストリームを出力することと、
を行わせる命令をさらに具備する請求項９に記載のコンピュータ可読媒体。
【請求項１２】
前記デバイスに、前記ＣＡＢＡＣによって前記ビデオブロックを符号化することに関連するコストを近似することによって前記最後の非ゼロ係数を推定させる命令をさらに具備し、前記近似されたコストのうちの異なるコストは、前記最後の非ゼロ係数である異なる係数に対応し、前記推定された最後の非ゼロ係数は、近似された最低コストを定義する請求項９に記載のコンピュータ可読媒体。
【請求項１３】
前記デバイスに、前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると連続的に見なすことによって前記近似されたコストのうちの前記異なるコストを連続的に定義させる命令をさらに具備する請求項１２に記載のコンピュータ可読媒体。
【請求項１４】
前記デバイスに、前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整することによって、前記近似されたコストのうちの前記異なるコストを定義させる命令をさらに具備する請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記命令は、前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという前記仮定に基づいて、
０、フロア値およびシーリング値に等しい値を有する、前記ビデオブロックの量子化係数の前記セット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算すること、によって、前記デバイスに前記ビデオブロックの量子化係数の前記セットを生成させる請求項９に記載のコンピュータ可読媒体。
【請求項１６】
前記フロア値は前記ビデオブロックの前記係数の個々の係数の絶対値と量子化パラメータと量子化行列とに基づいており、前記シーリング値は前記フロア値＋１からなる請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するように構成された装置であって、
前記ビデオブロックの最後の非ゼロ係数を推定し、
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという仮定に基づいて前記ビデオブロックの量子化係数のセットを生成する量子化ユニットを具備する装置。
【請求項１８】
前記量子化ユニットは、前記生成された量子化係数のセットを出力する請求項１７に記載の装置。
【請求項１９】
前記生成された量子化係数のセットを受信し、
前記生成された量子化係数のセットをビットストリームにエントロピー符号化するために、前記生成された量子化係数のセットに対して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力するＣＡＢＡＣユニット、をさらに具備する請求項１８に記載の装置。
【請求項２０】
前記量子化ユニットは、前記ＣＡＢＡＣによって前記ビデオブロックを符号化することに関連するコストを近似することによって前記最後の非ゼロ係数を推定し、前記近似されたコストのうちの異なるコストは、前記最後の非ゼロ係数である異なる係数に対応し、前記推定された最後の非ゼロ係数は、近似された最低コストを定義する請求項１７に記載の装置。
【請求項２１】
前記量子化ユニットは、前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると連続的に見なすことによって、前記近似されたコストのうちの前記異なるコストを連続的に定義する請求項２０に記載の装置。
【請求項２２】
前記量子化ユニットは、前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整することによって前記近似されたコストのうちの前記異なるコストを定義する請求項２１に記載の方法。
【請求項２３】
前記量子化ユニットは、前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという前記仮定に基づき、
０、フロア値およびシーリング値に等しい値を有する、前記ビデオブロックの量子化係数の前記セット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算することによって、前記ビデオブロックの量子化係数の前記セットを生成する請求項１７に記載の装置。
【請求項２４】
前記フロア値は前記ビデオブロックの前記係数の個々の係数の絶対値と量子化パラメータと量子化行列とに基づいており、前記シーリング値は前記フロア値＋１からなる請求項２３に記載の装置。
【請求項２５】
集積回路を具備する請求項１７に記載の装置。
【請求項２６】
マイクロプロセッサを具備する請求項１７に記載の装置。
【請求項２７】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するデバイスであって、
前記ビデオブロックの最後の非ゼロ係数を推定する手段と、
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという仮定に基づいて前記ビデオブロックの量子化係数のセットを生成する手段と、
を具備するデバイス。
【請求項２８】
前記生成された量子化係数のセットを出力する手段をさらに具備する請求項２７に記載のデバイス。
【請求項２９】
前記生成された量子化係数のセットを受信する手段と、
前記生成された量子化係数のセットをビットストリームにエントロピー符号化するために、前記生成された量子化係数のセットに対して前記ＣＡＢＡＣを行う手段と、
前記ビットストリームを出力する手段と、
をさらに具備する請求項２８に記載のデバイス。
【請求項３０】
前記最後の非ゼロ係数を推定する手段は、前記ＣＡＢＡＣによって前記ビデオブロックを符号化することに関連するコストを近似する手段を含み、前記近似されたコストのうちの異なるコストは、前記最後の非ゼロ係数である異なる係数に対応し、前記推定された最後の非ゼロ係数は、近似された最低のコストを定義する請求項２７記載のデバイス。
【請求項３１】
前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると連続的に見なすことによって前記近似されたコストのうちの前記異なるコストを連続的に定義する手段をさらに具備する請求項３０に記載のデバイス。
【請求項３２】
前記ビデオブロックの前記係数の各々を前記最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整することによって前記近似されたコストのうちの前記異なるコストを定義する手段をさらに具備する請求項３１に記載のデバイス。
【請求項３３】
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという前記仮定に基づいて前記ビデオブロックの量子化係数の前記セットを生成する手段は、
０、フロア値およびシーリング値に等しい値を有する、前記ビデオブロックの量子化係数の前記セット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算する手段を含む請求項２７に記載のデバイス。
【請求項３４】
前記フロア値は前記ビデオブロックの前記係数の個々の係数の絶対値と量子化パラメータと量子化行列とに基づいており、前記シーリング値は前記フロア値＋１からなる請求項３３に記載のデバイス。
【請求項３５】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するように構成されたデバイスであって、前記デバイスは、量子化ユニットとＣＡＢＡＣユニットとを含む符号化ユニットと、送信機とを具備し、前記量子化ユニットは、
前記ビデオブロックの最後の非ゼロ係数を推定し、
前記推定された最後の非ゼロ係数が実際は前記ビデオブロックの前記最後の非ゼロ係数であるという仮定に基づいて前記ビデオブロックの量子化係数のセットを生成し、
前記生成された量子化係数のセットを出力し、
前記ＣＡＢＡＣユニットは、
前記生成された量子化係数のセットを受信し、
前記生成された量子化係数のセットをビットストリームにエントロピー符号化するために、前記生成された量子化係数のセットに対して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力し、
前記送信機は、前記ビットストリームを送信するデバイス。
【請求項３６】
無線通信デバイスを具備する請求項３５に記載のデバイス。
【請求項３７】
前記送信機が前記ビットストリームを送信するより前に前記ビットストリームを変調する変調器を具備する請求項３６に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その両方の内容全体が参照により本明細書に組み込まれる、２００８年１月８日に出願された米国特許仮出願第６１／０１９，８３０号、および２００８年２月２１日に出願された米国特許仮出願第６１／０３０，４５４号の優先権を主張する。
【０００２】
本開示は、デジタルビデオ符号化に関し、より詳しくはコンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのための量子化技術に関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビ、デジタル直接ブロードキャストシステム、無線ブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル録音デバイス、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオデバイスは、ＭＰＥＧ−２，ＭＰＥＧ−４，またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）などのビデオ圧縮技術を実装して、デジタルビデオをより効率的に送信および受信する。ビデオ圧縮技術では、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的予測および時間的予測を行う。
【０００４】
イントラ符号化は、空間的予測を利用して所定の符号化単位（coded unit）内のビデオブロック間の空間的冗長性を低減または除去し、当該符号化単位はビデオフレーム、ビデオフレームのスライス、画像のグループ、またはビデオブロックの別の定義された単位を含み得る。これに対し、インター符号化は、時間的予測を利用してビデオシーケンスの連続した符号化単位のビデオブロック間の時間的冗長性を低減または除去する。イントラ符号化の場合、ビデオエンコーダは空間的予測を行い、同じ符号化単位内の他のデータに基づいてデータを圧縮する。インター符号化の場合、ビデオエンコーダは動き推定および動き補償を行い、２つ以上の隣接する符号化単位の対応するビデオブロックの移動を追跡する。
【０００５】
符号化ビデオブロックは、予測ブロックを生成または識別するために使用できる予測情報と、符号化されているブロックと予測ブロックとの間の差を示すデータの残差ブロックとによって表される。インター符号化の場合は、１つまたは複数の動きベクトルを使用してデータの予測ブロックを識別するが、イントラ符号化の場合は、予測モードを使用して予測ブロックを生成することができる。イントラ符号化とインター符号化の両方は、符号化における異なるブロックサイズおよび／または使用される予測技術を定義するいくつかの異なる予測モードを定義することができる。また、符号化プロセスにおいて使用される符号化技術またはパラメータを制御または定義するために、追加のタイプのシンタクス要素を符号化ビデオデータの一部として含めることができる。
【０００６】
ブロックベースの予測符号化の後、ビデオエンコーダは変換、量子化およびエントロピー符号化プロセスを適用して、残差ブロックの通信に関連するビットレートをさらに低減することができる。変換技術は、離散コサイン変換または概念的に同様のプロセスを備えることができる。代替的に、ウェーブレット変換、整数変換または他のタイプの変換を使用することができる。離散コサイン変換（ＤＣＴ）プロセスでは、一例として変換プロセスは画素値のセットを周波数領域における画素値のエネルギーを表すことができる変換係数に変換する。量子化は変換係数に適用され、一般に任意の所定の変換係数に関連するビット数を制限するプロセスを必要とする。エントロピー符号化は、一連の量子化された変換係数を一括して圧縮する１つまたは複数のプロセスを備える。
【０００７】
コンテキストベース適応２進算術符号化（ＣＡＢＡＣ）は、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ４、ＡＶＣ規格などのいくつかの符号化規格において現在サポートされているエントロピー符号化技術の１つのタイプである。ＣＡＢＡＣは２値化、コンテキストモデル選択および２進算術符号化を含むいくつかのステージを含み得る。２値化では、任意の非２値シンボルを２値シーケンス（しばしばビン・ストリング（bin string）と呼ばれる）にマッピングする。コンテキストモデル化では、モデル確率分布を符号化されている要素（例えば、シンボル）に割り当てる。次いで、後続の２進算術符号化ステージにおいて、割り当てられたモデル確率分布に従って符号化される要素の符号化表現（coded representation）を形成する一連のビットを生成するために、割り当てられた確率分布を使用して符号化を行う。
【０００８】
ＣＡＢＡＣプロセスは、所定のコンテキスト中の要素の確率を知ることによってビデオストリームを定義する要素をロスレス圧縮することができる。ＣＡＢＡＣは、一般にコンテンツ適応型可変長符号化（ＣＡＶＬＣ）技術などの他のエントロピー符号化技術よりも効率的にデータを圧縮するが、デコーダ側で相当により複雑な処理を必要とすることがある。ＩＴＵ  Ｈ．２６４／ＡＶＣ設定におけるＣＡＢＡＣは、IEEE Translations on Circuits and Systems for Video Technology、第１３巻、第７号、２００３年７月に発行されたDetlev Marpe，Heiko SchwarzおよびThomas Wiegand著“Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard”という刊行物に、より詳しく記載されている。
【発明の概要】
【０００９】
一般に、本開示ではコンテキストベース適応２進算術符号化（ＣＡＢＡＣ）をサポートするビデオ符号化プロセスのための、ビデオブロックの係数を量子化するために使用される量子化技術について説明する。ここで説明する技術は、量子化プロセス中のＣＡＢＡＣステップのいくつかを実行および／または推定することによって、量子化プロセス中のＣＡＢＡＣを省くことができる。本技術を使用して、ビデオ符号化の量子化ステップにおける符号化レートと歪みとの間の望ましいバランスを達成することができる。本技術によれば、２パスプロセスを行うことができる。第１のパスにおいて、例えばビデオブロックの異なる係数を最後の非ゼロ係数であると見なす連続パスにおいて、ビデオブロックの最後の非ゼロ係数を推定する。次いで、第２のパスにおいて推定された最後の非ゼロ係数が実際は最後の非ゼロ係数であるという仮定に基づいて係数の全てを生成する。
【００１０】
一例では、本開示はＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化する方法を提供する。本方法は、ビデオブロックの最後の非ゼロ係数を推定することと、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成することと、を備える。
【００１１】
別の例では、本開示はＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するように構成された装置を提供する。本装置は、ビデオブロックの最後の非ゼロ係数を推定し、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成する量子化ユニットを備える。
【００１２】
別の例では、本開示はＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するデバイスを提供する。本デバイスは、ビデオブロックの最後の非ゼロ係数を推定する手段と、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成する手段とを備える。
【００１３】
別の例では、本開示はＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化するように構成されたデバイスを提供する。デバイスは、量子化ユニットとＣＡＢＡＣユニットとを含む符号化ユニットと、送信機とを備える。量子化ユニットは、ビデオブロックの最後の非ゼロ係数を推定し、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成し、生成された量子化係数のセットを出力する。ＣＡＢＡＣユニットは生成された量子化係数のセットを受信し、生成された量子化係数のセットに対してＣＡＢＡＣを行って、生成された量子化係数のセットをビットストリームにエントロピー符号化し、ビットストリームを出力する。送信機は、ビットストリームを送信する。
【００１４】
本開示で説明する技術は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの任意の組合せで実装できる。ソフトウェアで実装される場合、ソフトウェアはマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはデジタル信号プロセッサ（ＤＳＰ）などの、１つまたは複数のプロセッサで実行され得る。本技術を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶され、プロセッサにロードされて実行され得る。
【００１５】
従って、本開示はＣＡＢＡＣをサポートするビデオ符号化プロセスにおいて、デバイスにビデオブロックの係数を実行時に量子化させる命令を備えるコンピュータ可読媒体をも意図しており、命令はデバイスにビデオブロックの最後の非ゼロ係数を推定させ、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいてビデオブロックの量子化係数のセットを生成させる。
【００１６】
本開示の１つまたは複数の態様の詳細について、添付の図面および以下の説明において述べる。本開示で説明する技術の他の特徴、目的および利点は、これらの説明および図面ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１７】
【図１】ビデオ符号化および復号システムを示す例示的なブロック図。
【図２】本開示に一致するビデオエンコーダの例を示すブロック図。
【図３】４×４要素ビデオブロックのジグザグ走査を示す概念図。
【図４】本開示に一致するビデオデコーダの例を示すブロック図。
【図５】本開示に一致する技術を示すフローチャート。
【図６】本開示に一致する技術を示すフローチャート。
【図７】本開示に一致する技術を示すフローチャート。
【図８】本開示に一致する技術を示すフローチャート。
【図９】本開示に一致する技術を示すフローチャート。
【図１０】本開示に一致する技術を示すフローチャート。
【発明を実施するための形態】
【００１８】
図１は、本開示の技術を実装できる１つの例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示すように、システム１０は通信チャネル１５を介して符号化ビデオを宛先デバイス１６に送信するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１６は、広範囲のデバイスのいずれかを含み得る。ソースデバイス１２および宛先デバイス１６は、場合によってはいわゆるセルラー電話または衛星無線電話の無線ハンドセットなどの無線通信デバイスまたは通信チャネル１５を介してビデオ情報を伝達することができ、その場合は通信チャネル１５が無線である任意の無線デバイスを含む。ただし、量子化に関係する本開示の技術は、必ずしも無線適用例または設定に限定されるわけではない。
【００１９】
図１の例では、ソースデバイス１２はビデオソース２０とビデオエンコーダ２２と変調器／復調器（モデム）２３と送信機２４とを含むことができる。宛先デバイス１６は、受信機２６とモデム２７とビデオデコーダ２８とディスプレイデバイス３０とを含むことができる。本開示によれば、ソースデバイス１２のビデオエンコーダ２２は、コンテキスト適応型２進算術符号化（ＣＡＢＡＣ）の効果を考える量子化技術を適用するように構成され得る。このようにしてソースデバイス１２は量子化の望ましいレベルを達成し、それによって符号化プロセスを改善することができる。
【００２０】
図１の図示のシステム１０は、例示にすぎない。本開示の量子化技術は、ＣＡＢＡＣをサポートする任意の符号化デバイスによって実行され得る。ソースデバイス１２は、そのような符号化デバイスの一例にすぎない。本開示の量子化技術は、エントロピー符号化のためのＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化することを含み得る。この場合、ビデオエンコーダ２２はビデオブロックの量子化係数の複数のセットを生成することができ、量子化係数のセットの各々はビデオブロックの係数の特定の１つがビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される。最後の非ゼロ係数は、ジグザグ走査などの使用される走査順序に依存する。ビデオエンコーダ２２は、量子化係数のセットの異なるセットにそれぞれ基づく推定されるコストであって、ＣＡＢＡＣによってビデオブロックを符号化することに関連する複数のコストを推定し、最低コストに関連する量子化係数のセットの所定の１つを選択することができる。異なる係数をビデオブロックの最後の非ゼロ係数であると見なす単一のパスにおいて、量子化係数の異なるセットの各々について推定されるコストを生成する限り、この手法は１パス手法と呼ばれる
代替的に、本開示の量子化技術は２パス手法に従うことができる。この場合、本技術は第１のパスにおいてビデオブロックの最後の非ゼロ係数を推定することと、次に推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいて第２のパスにおいてビデオブロックの量子化係数のセットを生成することとを備える。本開示は、合成１パス手法と２パス手法の両方を提案する。合成１パス手法では、あらゆる可能な係数を最後の非ゼロ係数であると見なすことができ、最後の非ゼロ係数である異なる係数に対して、量子化係数の多くの可能なセットを生成することができる。しかしながら、２パス手法では推定技術を使用して最後の非ゼロ係数を推定し、推定された最後の非ゼロ係数が最後の非ゼロ係数として固定される唯一の場合にのみ量子化係数のセットが生成され、考慮され得る。合成１パス手法は、１パス手法よりも計算集約的であるが、場合によってはより正確な結果をもたらすことがある。様々な追加の技術を使用して、１パス手法の計算の複雑さを低減することができる。２パス手法は、１パス手法に対して複雑さをかなり低減することができ、多くの場合、２パス手法の符号化品質の低下は１パス手法に対して無視され得る。
【００２１】
一般に、ソースデバイス１２は宛先デバイス１６に送信するための符号化ビデオデータを生成する。ただし、場合によっては、デバイス１２、１６はほぼ対称に動作することができる。例えば、デバイス１２、１６の各々はビデオ符号化および復号構成要素を含み得る。従って、システム１０は例えばビデオストリーミング、ビデオ再生、ビデオブロードキャストまたはビデオ電話通信のためのビデオデバイス１２とビデオデバイス１６との間の一方向または双方向のビデオ送信をサポートすることができる。
【００２２】
ソースデバイス１２のビデオソース２０は、ビデオカメラ、あらかじめキャプチャされたビデオを含むビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオフィードなどのビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース２０はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとアーカイブされたビデオとコンピュータ生成ビデオとの組合せを生成することができる。場合によっては、ビデオソース２０がビデオカメラである場合、ソースデバイス１２および宛先デバイス１６は、いわゆるカメラ付き携帯電話またはビデオ電話を形成することができる。いずれの場合も、キャプチャされたビデオ、あらかじめキャプチャされたビデオ、またはコンピュータ生成されたビデオをビデオエンコーダ２２によって符号化することができる。次いで、符号化ビデオ情報は例えば符号分割多元接続（ＣＤＭＡ）または別の通信規格などの通信規格に従ってモデム２３によって変調され、送信機２４を介して宛先デバイス１６に送信される。モデム２３は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【００２３】
宛先デバイス１６の受信機２６はチャネル１５を介して情報を受信し、モデム２７は情報を復調する。ここでも、ビデオ符号化プロセスは量子化プロセスを改善するために本明細書で説明する技術を実装することができる。ビデオデコーダ２８によって実行されるビデオ復号プロセスは、ビデオシーケンスの再構成において逆量子化を行うことができる。ディスプレイデバイス２８は、復号されたビデオデータをユーザに対して表示し、陰極線管、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイまたは別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを含み得る。
【００２４】
図１の例では、通信チャネル１５は無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理的伝送線路などの無線または有線の任意の通信媒体、あるいは無線および有線の媒体の任意の組合せを含むことができる。通信チャネル１５は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。通信チャネル１５は、一般にビデオデータをソースデバイス１２から宛先デバイス１６に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。
【００２５】
ビデオエンコーダ２２およびビデオデコーダ２８は、代替的にMPEG-4,Part10,Advanced Video Coding（ＡＶＣ）として説明されるＩＴＵ−Ｔ  Ｈ．２６４規格など、ＣＡＢＡＣをサポートするビデオ圧縮規格に従って動作し得る。図１には示されていないが、いくつかの態様ではビデオエンコーダ２２およびビデオデコーダ２８はそれぞれオーディオエンコーダおよびデコーダと統合でき、適切なＭＵＸ−ＤＥＭＵＸユニットまたは他のハードウェアおよびソフトウェアを含み、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理することができる。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）など他のプロトコルに準拠することができる。
【００２６】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、ジョイントビデオチーム（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣの動画像専門家グループ（ＭＰＥＧ）とともにＩＴＵ−Ｔのビデオ符号化専門家グループ（ＶＣＥＧ）によって公式化された。いくつかの態様では、本開示で説明する技術は一般にＨ．２６４規格に準拠するデバイスに適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ研究グループによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４“Advanced Video Coding for generic audiovisual services”に記載されており、本明細書ではＨ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と呼ぶことがある。ジョイントビデオチーム（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張の取り組みを続けている。
【００２７】
ビデオエンコーダ２２およびビデオデコーダ２８は、それぞれ１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２２およびビデオデコーダ２８の各々を１つまたは複数のエンコーダまたはデコーダ中に含めることができ、そのいずれかは複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。
【００２８】
ビデオシーケンスは、一般に一連のビデオフレームを含む。ビデオエンコーダ２２は、ビデオデータを符号化するために個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは、サイズを固定することも変更することもでき、指定の符号化規格に応じてサイズが異なることがある。各ビデオフレームは、一連のスライスを含む。各スライスは一連のマクロブロックを含むことができ、それらはサブブロック中に配置され得る。一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、輝度成分では１６×１６，８×８または４×４、および色度成分では８×８など、様々なブロックサイズのイントラ予測、ならびに輝度成分では１６×１６，１６×８，８×１６，８×８，８×４，４×８および４×４、および色度成分では対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、画素データのブロック、または例えば離散コサイン変換もしくは概念的に同様の変換プロセスなどの変換プロセスの後の変換係数のブロックを含み得る。本開示の量子化技術は、一般に、変換されたビデオブロックの変換係数に適用される。
【００２９】
ビデオブロックは、小さいほどより良い解像度が得られ、高いディテールレベルを含むビデオフレームの位置決めに使用され得る。一般に、マクロブロック（ＭＢ）および様々なサブブロックをビデオブロックと見なすことができる。さらに、スライスはＭＢおよび／またはサブブロックなど一連のビデオブロックであると見なすことができる。各スライスは、ビデオフレームの単独で復号可能な単位とすることができる。予測の後に、８×８残差ブロックまたは４×４残差ブロック上で変換を行うことができ、イントラ１６×１６予測モードが使用される場合は、色度成分または輝度成分用の４×４ブロックのＤＣ係数に追加の変換を適用することができる。ここでも、変換の後のデータは依然としてビデオブロック、すなわち変換係数のブロックであると呼ばれることがある。「係数」という用語は、一般に変換係数を指すが、代替的に画素値または別のタイプの係数など、他のタイプの係数または値を指すことがある。
【００３０】
（Ｈ．２６４／ＡＶＣまたは離散コサイン変換ＤＣＴにおいて使用される４×４または８×８整数変換などの）イントラベースまたはインターベースの予測符号化および変換技術の後、量子化を行うことができる。量子化は、以下でより詳細に論じるが、一般に係数を表すために使用されるデータ量をできるだけ低減するように係数を量子化するプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減することができる。例えば、量子化中に８ビット値を７ビット値まで丸めることができる。本開示の量子化技術は、ＣＡＢＡＣが実行されることを省く。
【００３１】
特に、量子化の後、ＣＡＢＡＣ方法に従ってエントロピー符号化行うことができる。本開示は、レートと歪みとの望ましいバランスを達成することができるようにビデオブロックの係数を量子化するための技術を提供する。ここで説明する技術は、量子化を改善し、例えば通信レートの所定のビット配分において望ましい品質レベルを達成するためにＣＡＢＡＣの推定を実装する。
【００３２】
本開示の技術によれば、ビデオエンコーダ２２はビデオブロックの量子化係数の複数のセットを生成することができ、量子化係数のセットの各々はビデオブロックの係数の特定の１つがビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される。ビデオエンコーダ２２は、量子化係数セットの異なるセットにそれぞれ基づいて推定されるコストであって、ＣＡＢＡＣによってビデオブロックを符号化することに関連する複数のコストを推定し、最低コストに関連する量子化係数のセットの所定の１つを選択することができる。ビデオエンコーダ２２は、ビデオブロックの量子化のために、選択された量子化係数のセットを使用することができる。この手法は１パス手法と呼ばれる。
【００３３】
代替的に、本開示の量子化技術は２パス手法に従うことができる。この場合、ビデオエンコーダ２２は第１のパスにおいてビデオブロックの最後の非ゼロ係数を推定し、次いで推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいて、第２のパスにおいてビデオブロックの量子化係数のセットを生成することができる。２パス手法では、推定技術を使用して最後の非ゼロ係数を推定し、推定された最後の非ゼロ係数が実際は最後の非ゼロ係数である場合にのみ、量子化係数のセットを見なすことができる。別個の推定パスにより、最後の非ゼロ係数として正しい係数を有しない量子化係数のセットに関連する計算を行う必要がなくなる。
【００３４】
図２は、本開示に合致する、残差係数の量子化を行うレート歪み（ＲＤ）量子化ユニット４０を含むビデオエンコーダ５０の例を示すブロック図である。ビデオエンコーダ５０は、デバイス２０のビデオエンコーダ２２または異なるデバイスのビデオエンコーダに対応することがある。ビデオエンコーダ５０は、ビデオフレーム内のブロックのイントラ符号化およびインター符号化を行うことができる。イントラ符号化は、空間的予測を利用して所定のビデオフレーム内のビデオの空間的冗長性を低減または除去する。インター符号化は、時間的予測を利用してビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。インター符号化の場合、ビデオエンコーダ５０は動き推定を行い、２つ以上の隣接フレーム間でビデオブロックをマッチングさせる動作を追跡する。イントラモード（Ｉモード）は空間ベースの圧縮モードを指し、予測（Ｐモード）または双方向（Ｂモード）などのインターモードは、時間ベースの圧縮モードを指す。
【００３５】
図２に示すように、ビデオエンコーダ５０は符号化されるべきビデオフレーム内の現ビデオブロックを受信する。図２の例では、ビデオエンコーダ５０は、予測ユニット３２、参照フレーム記憶部３４、ブロック変換ユニット３８、ＲＤ量子化ユニット４０、逆量子化ユニット４２、逆変換ユニット４４およびＣＡＢＡＣ符号化ユニット４６を含む。ブロック境界をフィルタ処理してブロッキネスアーティファクトを除去するために、デブロッキングフィルタ（図示せず）を含めることもできる。ビデオエンコーダ５０は、また加算器４８と加算器５１を含む。予測ユニット３２は、一般にイントラ予測ユニットおよび／またはインター予測ユニットを表す。
【００３６】
符号化プロセス中に、ビデオエンコーダ５０は符号化されるべきビデオブロックを受信し、予測ユニット３２は予測符号化技術を実行する。インター符号化の場合、予測ユニット３２は予測ブロックを定義するために、符号化されるべきビデオブロックを１つまたは複数のビデオ参照フレームまたはスライス中の様々なブロックと比較する。イントラ符号化の場合、予測ユニット３２は同じ符号化単位内の隣接するデータに基づいて予測ブロックを生成する。予測ユニット３２は予測ブロックを出力し、加算器４８は符号化されているビデオブロックから予測ブロックを減算して残差ブロックを生成する。
【００３７】
インター符号化の場合、予測ユニット３２は予測ブロックを指す動きベクトルを識別し、動きベクトルに基づいて予測ブロックを生成する動き推定および動き補償ユニットを含むことができる。一般に、動き推定は動きを推定する動きベクトルを生成するプロセスと考えられる。例えば、動きベクトルは現フレーム内の符号化されている現ブロックに対する予測フレーム内の予測ブロックの変位（displacement）を示すことができる。動き補償は、一般に動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成するプロセスと考えられる。上記のように、イントラ符号化の場合、予測ユニット３２は同じ符号化単位内の隣接するデータに基づいて予測ブロックを生成する。１つまたは複数のイントラ予測モードは、イントラ予測ブロックをどのように定義できるかを定義し得る。
【００３８】
ビデオエンコーダ５０は、符号化されている元のビデオブロックから、予測ユニット３２によって生成された予測ビデオブロックを減算することによって、残差ビデオブロックを形成する。加算器４８がこの減算演算を行う。変換ユニット３８は、離散コサイン変換（ＤＣＴ）または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換ブロック係数を含むビデオブロックを生成する。変換ユニット３８は、例えば概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される他の変換を行うことができる。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換をも使用することができる。いずれの場合も、変換ユニット３８は変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素領域から周波数領域に変換することができる。
【００３９】
ＲＤ量子化ユニット４０（本明細書では「量子化ユニット４０」とも呼ぶ）は、ビットレートをさらに低減するために残差変換係数を量子化する。特に、量子化ユニット４０は、ＣＡＢＡＣユニット４６によって実行されるＣＡＢＡＣ符号化を省くために、以下でより詳細に説明する量子化技術の１つまたは複数を実行する。このようにして、量子化ユニット４０はレート歪みモデルを実装し、例えば所定のレートまたはビット配分に対して望ましい数のビットを達成する所望レベルの量子化を達成することができる。
【００４０】
ＣＡＢＡＣユニット４６は、量子化の後データをさらに圧縮するために、ＣＡＢＡＣ方法に従って、量子化された変換係数をエントロピー符号化する。ＣＡＢＡＣユニット４６によるエントロピー符号化の後、符号化ビデオを別のデバイスに送信するか、あるいは後で送信または検索するためにアーカイブすることができる。逆量子化ユニット４２および逆変換ユニット４４は、それぞれ逆量子化および逆変換を適用して、基準ブロックとして使用するために画素領域中の残差ブロックを再構成する。加算器５１は、再構成された残差ブロックを動き補償ユニット３６によって生成された動き補償された予測ブロックに加算して、参照フレーム記憶部３４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するための基準ブロックとして予測ユニット３２によって使用される。
【００４１】
予測誤差Ｅ（ｘ，ｙ）、すなわち符号化されているブロックＩ（ｘ，ｙ）と予測ブロックＰ（ｘ，ｙ）との間の差を変換基底関数ｆij（ｘ，ｙ）の重み付け和
【数１】
2011514055.tif 000003
【００４２】
として表すことができる。ここで、ｘおよびｙはビデオブロック内の所定の係数の位置を定義する。ｃijは重み係数であり、予測誤差係数とも呼ばれる。変換は、一般に８×８（Ｎ＝８）または４×４（Ｎ＝４）ブロックベースで行われる。その後、重みｃijは、
【数２】
2011514055.tif 000004
【００４３】
のように量子化され得る。ここで、ｌijは量子化係数または量子化レベルと呼ばれる。ＱＰは量子化パラメータであり、Ｑは量子化ステップサイズを定義する量子化行列である。量子化の演算は、情報の損失をもたらす。しかしながら、量子化係数をより少ない数のビットで表し、それによって伝送帯域幅、記憶スペースおよび処理リソースを節約することができる。圧縮（情報の損失）のレベルは、従来ではＱＰの値を調整することによって制御される。
【００４４】
量子化された変換係数は、動きベクトルおよび何らかの制御情報とともに、要素の完全な符号化シーケンスを形成することができる。これらの要素の全ては、符号化デバイスから復号デバイスに送信する前に、一般にそれらの表現に必要なビット数をさらに低減するようにエントロピー符号化される。
【００４５】
デコーダ側では、現フレーム中のブロックは、最初にエンコーダの場合と同じ方法でその予測値を構成し、圧縮された予測誤差を予測値に追加することによって得られる。圧縮された予測誤差は、次のように逆量子化係数に逆変換を適用することによって見いだされる。
【数３】
2011514055.tif 000005
【００４６】
ここで、ｒijは逆量子化係数（再構成係数とも呼ばれる）である。係数ｒijは、逆量子化
【数４】
2011514055.tif 000006
【００４７】
によって計算され得る。再構成されたフレームＲ（ｘ，ｙ）と元のフレームＩ（ｘ，ｙ）との間の差は、再構成誤差と呼ばれることがある。
【００４８】
従来では、ビデオコーデックにおける変換係数の量子化は通常、均一再構成量子化器（uniform-reconstruction quantizer）（ＵＲＱ）に基づく。データを量子化するための分類ルールは、エンコーダによって定義される。量子化の一例は、いわゆるデッドゾーン＋均一しきい値量子化（ＤＺ−ＵＴＱ）手法である。以下の式は、そのようなデッドゾーン量子化器を定義し、ｆ０は０≦ｆ0≦０．５でのデッドゾーンパラメータを示す。
【数５】
2011514055.tif 000007
【００４９】
ここで、ｌijは所定のＱＰに関連するレベルに対応する。
【００５０】
概念的に、レベルｌijに対応する再構成値ｒijは、ｌijに、対応するＱＰを乗算することによって導出され得る。
【数６】
2011514055.tif 000008
【００５１】
簡単にするために、対応する基底関数の正規化のための様々なスケーリングファクタを無視するので、式
【数７】
2011514055.tif 000009
【００５２】
は、ＭＰＥＧ−４  ＡＶＣで実際に規定されていることを数学的に簡略化したバージョンを表す。
【００５３】
Ｈ．２６４およびＭＰＥＧ−４  ＡＶＣでは、量子化を以下の式に従って行うことができる。
【数８】
2011514055.tif 000010
【００５４】
ここで、Ｑは量子化行列を表し、％はモジュラ除算を表す。ｆはイントラフレームの場合、２15+QP/6／３に等しく、インターフレームの場合、２15+QP/6／６に等しい。係数の逆量子化は、以下の式に従って行われ得る。
【数９】
2011514055.tif 000011
【００５５】
ここで、Ｒは逆量子化行列を表す。ＱＰ％６＝０．１，．．．，５の場合のＱおよびＲに関連する値は事前に計算され、記憶される。
【００５６】
所定のブロック中の係数は、ジグザグ走査または別の走査順序を使用して順序付けられ（走査され）、１次元の順序付き（ordered）係数ベクトルを生じる。ジグザグス走査などの走査は、ブロックによって定義される２次元のパターンとは対照的に、１次元の一連の係数を生成するという点でシリアライゼーションとも呼ばれる。４×４ブロックの例示的なジグザグ走査を図３に示す。ジグザグ走査は、一般に２次元（２Ｄ）変換を適用した後、最高のエネルギーを有する変換係数（すなわち、より高い値の係数）が低周波変換関数に対応し、図３に示すようにブロックの左上に配置されることを想定する。従って、ジグザグス走査によって生成される係数ベクトルにおいて、大きさが大きい係数ほど１次元の順序付き係数ベクトルの開始近くに現れる可能性が高くなる。量子化の後、大部分の低いエネルギー係数は０に等しくなることがある。
【００５７】
ＣＡＢＡＣは、Ｈ．２６４／ＡＶＣにおいて使用される変換係数を符号化する１つの方法である。図２のＣＡＢＡＣ符号化ユニット４６は、そのような符号化を行うことができる。一般に、ＣＡＢＡＣを使用して任意のデータシンボルを符号化することは、２値化、コンテキストモデル選択、算術符号化および確率更新のステージを必要とすることがある。２値化の場合、ＣＡＢＡＣユニット４６は算術符号化より前に任意の非２値シンボルを２進コードに変換する。コンテキストモデル選択では、例えば最近符号化されたデータシンボルに関連する統計に応じて、ＣＡＢＡＣユニット４６は利用可能なモデルの選択肢からコンテキストモデルを選択する。「コンテキストモデル」は、２値化されたシンボルの１つまたは複数のビン（bin）に対する確率モデルである。このモデルは、最近符号化されたデータシンボルの統計に応じて、利用可能なモデルの選択肢から選択され得る。コンテキストモデルは、各ビンが「１」または「０」である確率を記憶する。
【００５８】
算術符号化の場合、ＣＡＢＡＣユニット４６は選択された確率モデル（コンテキストモデルとも呼ばれる）に従って各ビンを符号化する。選択された確率モデルは、実際の符号化された値に基づいて更新（確率更新）される（例えば、ビン値が「１」であった場合、頻度カウント「１」を増加する）。ＣＡＢＡＣにおける確率推定は、有限状態機械（ＦＳＭ）を使用したテーブル駆動型推定器に基づくことができる。この場合、ＣＡＢＡＣにおける各確率モデルは、関連する確率値ｐを持つ１２８個の異なる状態から１つをとることができる。確率更新は、２つの２値決定「０」または「１」のうち最も確率が低い「劣勢シンボル（Least Probable Symbol）」に対して、６４個の別個の確率状態間の遷移プロセスによって実行される。コンテキストモデル選択、算術符号化および確率更新は、２値化シンボルのビット（または「ビン」）毎に繰り返される。
【００５９】
ＣＡＢＡＣユニット４６によってＣＡＢＡＣを使用する変換係数は、いわゆる重要度マップの符号化と、非ゼロ係数の符号化とを含む。ブロックが非ゼロ係数を有する場合、２値重要度マップ（binary-valued significance map）を符号化する。走査順序における係数毎に、１ビットシンボルsignificant_coeff_flagを送信する。significant_coeff_flagシンボルが１である場合、すなわち非ゼロ係数がそれぞれの走査位置に存在する場合、さらなる１ビットシンボルlast_significant_coeff_flagを送信する。このlast_significant_coeff_flagシンボルは、現在の非ゼロ係数がブロック内部で最後の非ゼロ係数である（last_significant_coeff_flag＝１）であるか、または非ゼロ係数がさらに続く（last_significant_coeff_flag＝０）であるかを示す。
【００６０】
重要度マップを符号化する場合、最高１５個の異なる確率モデルをsignificant_coeff_flagとlast_significant_coeff_flagの両方に対して使用することができる。モデルの選択、従って対応するコンテキストインデックスは、走査位置に依存することがある。０でないレベルcoeff_abs_level_minus1＝｜ｌij｜−１を符号化する場合、１０個のコンテキストを使用する。コンテキストのうちの５つは２値表現の第１のビットを符号化するためのものであり、他の５つは２〜１４番目のビットの符号化に専用のものである。ＣＡＢＡＣユニット４６によって、コンテキストを次のように選択することができる。
【００６１】
１．  パラメータＮｕｍＬｇ１およびＮｕｍＥｑ１をそれぞれ、それまでにブロック中で符号化された、１よりも大きい係数および１に等しい係数の数に等しく設定する。非ゼロレベルを符号化し、従ってパラメータＮｕｍＬｇ１およびＮｕｍＥｑ１を逆方向走査順序で更新し、すなわち高周波変換関数に対応する係数を最初に符号化する。
【００６２】
２．  ２値化シンボルの第１のビットのためのコンテキストを次のように決定することができる。
【数１０】
2011514055.tif 000012
【００６３】
３．  ２値化シンボルの２〜１４番目のビットのためのコンテキストを次のように選択することができる。
【数１１】
2011514055.tif 000013
【００６４】
ＣＡＢＡＣユニット４６は、固定の分布を持つバイパスモードをもサポートすることができる。coeff_abs_level_minus1の２値表現中の他のビットは、バイパスモードを通過することができる。最後に、非ゼロ係数の符号を非ゼロ係数毎に１ビットを使用して送信することができ、例えば１は正を示し０は負を示す（またはその逆）。
【００６５】
予測誤差Ｅ（ｘ，ｙ）と予測誤差の再構成バージョン  
【数１２】
2011514055.tif 000014
【００６６】
との間の平均２乗誤差（ＭＳＥ）歪みＤが係数を符号化するためのレートＲにおける制約を受けて最小限に抑えられるように、Ｎ×Ｎビデオブロック毎に、その変換係数ｃijがあるとすれば（再構成係数ｒijを決定する）対応する量子化係数ｌijを見いだすことが望ましい。言い換えれば、目的は以下の式を最小限に抑えることである。
【数１３】
2011514055.tif 000015
【００６７】
他の付加的な歪み測定基準、例えばアクティビティ重み付けＭＳＥをＭＳＥの代わりに使用することができる。上記の式を最小限に抑えるというレート制約問題は、ラグランジュ乗数λを使用してレートと歪みとを「マージする」ことによって、等価な制約なし問題に変換することにより解決され得る。この場合、制約なし問題は（一定のλに対する）係数レベルの決定になり、次のように定義される最小総ラグランジュコストを生じる。
【数１４】
2011514055.tif 000016
【００６８】
Ｈ．２６４の場合、２乗再構成誤差  
【数１５】
2011514055.tif 000017
【００６９】
は、所定のブロックに対して２乗量子化誤差  
【数１６】
2011514055.tif 000018
【００７０】
に比例する。レートＲは、量子化係数ｌijを符号化するために必要なビット数である。
【００７１】
以下で論じる提案されたアルゴリズムは、総ラグランジュコスト関数Ｊ（λ）の値がその最小値に近い量子化係数値ｌijを見いだす。
【００７２】
ＭＰＥＧ−４  ＡＶＣにおいて使用される変換が直交であるので、ラグランジュコストＪ（λ）は
【数１７】
2011514055.tif 000019
【００７３】
のように計算され得る。この場合、Ｊ（λ，ｃij，ｌij）はレベルｌijに量子化されたときの係数ｃijのラグランジュコストである。言い換えれば、
【数１８】
2011514055.tif 000020
【００７４】
である。量子化誤差ｅｒｒ（ｃij，ｌij）は、（ｒij−ｃij）2に比例する。
【数１９】
2011514055.tif 000021
【００７５】
ここでも、ＱＰは量子化パラメータであり、％はモジュラ除算を表す。Ｎ（ＱＰ％６，ｉ，ｊ）は、正規化行列を表す。ＱＰが小さくなるにつれて、符号化品質は一般に高まる。すなわち、一般にＱＰの値が小さくなるほど量子化が小さくなり、従って符号化品質が向上することに対応する。代替的に、ＱＰがそのような方法で定義された場合、ＱＰが小さくなるにつれて符号化品質が低下することがある。
【００７６】
量子化行列Ｑおよび逆量子化行列Ｒの場合、正規化行列の値Ｎ（ＱＰ％６，ｉ，ｊ）は、ｉおよびｊならびにＱＰ％６＝０，１，．．．，５の値によって規定されるブロック中の位置にのみ依存することがある。値ｌijを符号化するために必要なビット数（「ビット（ｌij）」）は、例えば、ＩＴＵ  Ｈ．２６４で定義されるＣＡＢＡＣの一部分を使用してｌijを符号化することによって計算され得る。しかしながら、ＣＡＢＡＣステップの全てを行うのではなく、ＲＤ量子化ユニット４０は量子化のためにＣＡＢＡＣの第１の２つのステップを行うだけでよい。これらの第１の２つのステップは、２値化およびコンテキストモデル選択を含む。次いで、２値算術符号化を行うために算術コーダを起動する代わりに、ＲＤ量子化ユニット４０は、各ビンを符号化するために必要なビット数を推定することができる。所定のビンに対して選択されたコンテキストが、有限状態機械における状態ｍに対応すると仮定すると、所定のビンを符号化するために必要な推定されたビット数を状態ｍに割り当てられた確率ｐのエントロピーとして表すことができる。ＲＤ量子化ユニット４０がマクロブロック当たり１回、ビン毎にコンテキストを決定することで十分である。
【００７７】
係数ｃij毎に、レベル｜Ｉij｜の多くて３つの可能な値０，ＩijfloorおよびＩijceilをテストすることができる。単一パスの例と同様に、この２パス手法では４×４ブロック値ＩijfloorおよびＩijceilを次のように計算することができる。
【数２０】
2011514055.tif 000022
【００７８】
所定のブロック中の係数がジグザグ走査を使用して順序付けられ（走査され）、１次元の順序付き係数ベクトルを生じると仮定する。順序付き係数は、ｃｉ，ただしｉ＝０，．．．，Ｍとして示され、例えばＭは４×４ブロックの場合は１５に等しく、８×８ブロックの場合は６３に等しい。
【００７９】
本開示によれば、ＲＤ量子化ユニット４０は、次のように量子化係数／レベルｌiを生成することができる。
【００８０】
１．係数ｃk，ｋ＝Ｍ，Ｍ−１，．．．，０がブロック中の最後の非ゼロ係数である、すなわち走査位置ｋのlast_significant_coeff_flagが１に等しいと仮定して、ラグランジュコストＪk（λ）を計算し、量子化係数ｌkのベクトルを生成する。
【００８１】
ａ．量子化された値ｌiがあらかじめ選択された値のセット、例えば０，ｌfloorおよびｌceilに等しいとき、係数ｃi，ｉ＝ｋ−１，．．．，０毎に、そのラグランジュコストＪ（λ，ｃi，ｌi）を計算する。
【００８２】
２．Ｊ（λ，ｃi，ｌi）が最小限に抑えられるｌiの値を取り上げ、ｌiの選択された値に対応するＪ（λ，ｃi，ｌi）を使用してラグランジュコストＪk（λ）を更新する。
【００８３】
ＲＤ量子化ユニット４０によって実行される量子化技術の速度は、次のように高められ得る。
【００８４】
１．（例えばｌfloatとｌfloorまたはｌceilとの間の絶対距離によって測定されるように）係数ｃiがｌceilよりもｌfloorに近い場合、値ｌfloorのみを上記のステップ１．ａにおいて考える。
【００８５】
２．係数ｃkがｌceilよりもｌfloorに近く、ｌfloorが０に等しい場合、係数ｃkを最後の非ゼロ係数とすることはできない。従って、この場合ラグランジュコストＪk（λ）の計算をこのｋの値に対してスキップする。
【００８６】
３．ｋが減少するとともにＪk（λ）が増加し始めるとき、Ｊk（λ）の計算を終了する。
【００８７】
要約すると、ＲＤ量子化ユニット４０はＣＡＢＡＣをサポートするビデオ符号化プロセスのためのビデオブロックの係数を量子化することができる。ＲＤ量子化ユニット４０は、量子化係数のセットの各々がビデオブロックの係数の特定の１つがビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される、ビデオブロックの量子化係数の複数のセットを生成し、量子化係数のセットの異なるセットにそれぞれ基づく推定されるコストであって、ＣＡＢＡＣによってビデオブロックを符号化することに関連する複数のコストを推定し、最低コストに関連する量子化係数のセットの所定の１つを選択し、量子化係数のセットの所定の１つをＣＡＢＡＣ符号化ユニット４６に出力することができる。次いで、ＣＡＢＡＣ符号化ユニット４６は量子化係数のセットの所定の１つに対してＣＡＢＡＣプロセスを実行して、量子化係数のセットの所定の１つをビットストリームにエントロピー符号化し、ビットストリームを出力することができる。
【００８８】
量子化ユニット４０は、レート歪みモデルに関連するラグランジュコスト関数を計算することによって、コストを推定することができる。量子化係数のセットの選択された１つに関連する特定のコストは、複数のコストに関連するビットの最低数を定義する。量子化ユニット４０は、特定のコストに関連するビットの最低数を示す値を記憶することができる。
【００８９】
ラグランジュコスト関数は、量子化係数のセット中の量子化係数の各々に関連する個々の係数ラグランジュコストのセットを定義することができる。量子化ユニット４０は、０、フロア値およびシーリング値に等しい量子化係数の値に対して、量子化係数のセット中の量子化係数に関連する個々の係数ラグランジュコストのセットを計算する。これらの値の例について上述した。一般に、フロア値はビデオブロックの係数の個々の係数の絶対値、量子化パラメータおよび量子化行列に基づいており、シーリング値はフロア値＋１からなる。
【００９０】
この量子化プロセスを加速するために、量子化ユニット４０は上述の技術のような加速技術を実装することができる。例えば、量子化係数の個々の１つについて、量子化係数の個々の１つがシーリング値よりもフロア値に近い場合、量子化ユニット４０はシーリング値に等しい値に対して量子化係数の個々の１つに関連する個々の係数ラグランジュコストの計算をスキップすることができる。
【００９１】
また、量子化係数のセットの１つに対するビデオブロックの最後の非ゼロ係数に対応する、ビデオブロックの係数の特定の１つがシーリング値よりもフロア値に近い値を定義した場合、およびフロア値が０に等しい場合、ＲＤ量子化ユニット４０は量子化係数セットのその１つに対してビデオブロックの符号化に関連する特定のコストを推定することをスキップすることができる。さらに、セットの特定の１つに関連する特定のラグランジュコストを定義する合計が、ビデオブロックの係数の値が減少するとともに増加し始めるとき、ＲＤ量子化ユニット４０はセットの特定の１つに関連する複数のコストを推定することを終了することができる。これらまたは他の技術を符号化ビデオの品質を劣化させることなく、量子化プロセスを加速するために使用することができる。
【００９２】
図４は、本明細書で説明する方法で符号化されたビデオシーケンスを復号するビデオデコーダ６０の例を示すブロック図である。ビデオデコーダ６０は、図３のＣＡＢＡＣユニット４６によって実行される符号化とは逆の復号機能を実行するＣＡＢＡＣ復号ユニット５２を含む。
【００９３】
ビデオデコーダ６０は、ビデオフレーム内のブロックのイントラ復号およびインター復号を実行することができる。図４の例では、ビデオデコーダ６０は（上述の）ＣＡＢＡＣ復号ユニット５２、動き補償ユニット５４、逆量子化ユニット５６、逆変換ユニット５８および参照フレーム記憶部６２を含む。ビデオデコーダ６０は、加算器６４をも含む。随意に、ビデオデコーダ６０は加算器６４の出力をフィルタ処理するデブロッキングフィルタ（図示せず）をも含み得る。図４は、ビデオブロックのインター復号のためのビデオデコーダ６０の時間的予測構成要素を示す。図４には示されていないが、ビデオデコーダ６０はいくつかのビデオブロックのイントラ復号のための空間的予測構成要素をも含むことができる。
【００９４】
ＣＡＢＡＣ復号ユニット５２によってＣＡＢＡＣ復号が実行された後、動き補償ユニット５４は動きベクトルと参照フレーム記憶部６２からの１つまたは複数の再構成された参照フレームを受信する。逆量子化ユニット５６は、量子化されたブロック係数を逆量子化、すなわち逆量子化する。逆量子化プロセスは、Ｈ．２６４復号によって定義された従来のプロセスとすることができる。逆変換ユニット５８は、変換係数に逆変換、例えば逆ＤＣＴまたは概念的に同様の逆変換プロセスを適用して、画素領域における残差ブロックを生成する。動き補償ユニット５４は、復号ブロックを形成するために加算器６４によって残差ブロックと加算される動き補償ブロックを生成する。必要に応じて、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタを適用して、復号ブロックをフィルタ処理することもできる。次いで、フィルタ処理されたブロックは参照フレーム記憶部６２中に置かれ、参照フレーム記憶部６２は動き補償からの基準ブロックを供給し、ドライブディスプレイデバイス（図１のデバイス２８など）に対して復号ビデオをも生成する。
【００９５】
図５は、ビデオエンコーダ５０によって実行される１パス技術を示すフローチャートである。図示のように、レート歪み（ＲＤ）量子化ユニット４０は、非ゼロ係数の仮定に基づいて量子化係数のセットを生成する（１０１）。特に、ＲＤ量子化ユニット４０は所定の係数が最後の非ゼロ係数であると仮定し、この仮定に基づいてビデオブロック用に係数のセットを計算する。次に、ＲＤ量子化ユニット４０は別の係数が最後の非ゼロ係数であると仮定し、この仮定に基づいてビデオブロック用に別の係数のセットを生成し、以下同様である。
【００９６】
量子化ユニットは、量子化係数のセット毎にラグランジュコスト関数に基づいてコストを推定する（１０２）。特に、ＲＤ量子化ユニット４０はセット毎に複数の可能な値、例えば０、フロア値およびシーリング値において係数毎に個々のラグランジュコスト関数を決定する。フロア値はビデオブロックの係数の個々の係数の絶対値、量子化パラメータおよび量子化行列（または、そのパラメータ）に基づいており、シーリング値はフロア値＋１からなる。
【００９７】
ＲＤ量子化ユニット４０は、最低の全ラグランジュコストを有する量子化係数のセットを選択する（１０３）。特に、ＲＤ量子化ユニット４０はセットの係数毎に最低の個々のラグランジュコストを加算し、可能なセット毎に同プロセスを繰り返す。ここでも、ラグランジュコストはレートと歪みとのコストのバランスをとる。ＲＤ量子化ユニット４０は最低の全ラグランジアンを有するセットを選択し（１０３）、ＲＤ量子化ユニット４０は選択された量子化係数のセットをＣＡＢＡＣ符号化ユニット４６に出力する（１０４）。ＣＡＢＡＣ符号化ユニット４６は、符号化されたビットストリームを生成するために、選択された量子化係数のセットおよび任意の他の構文パラメータに基づいてＣＡＢＡＣを実行し（１０５）、符号化されたビットストリームを出力する（１０６）。
【００９８】
図６は、コストを推定する例示的なプロセスをより詳細に示す別のフローチャートである。特に、量子化ユニット４０は０、フロア値およびシーリング値の値に対して係数毎に個々のラグランジュコスト関数を計算する。ここでも、フロア値はビデオブロックの係数の個々の係数の絶対値、量子化パラメータおよび量子化行列（または、行列からマッピングされたパラメータ）に基づいており、シーリング値はフロア値＋１からなる。
【００９９】
上記のように、ＲＤ量子化ユニット４０が、４×４ブロックの場合に係数ｃijに対してフロア値（ｌfloor）およびシーリング値（ｌceil）をどのように計算することができるかという１つの例を次に示す。
【数２１】
2011514055.tif 000023
【０１００】
ここでも、フロア演算（Ｉfloat）はＩfloatに関連する最低値を表し、ＱＰは量子化パラメータを表し、ＱはＨ．２６４／ＡＶＣで定義された量子化行列などの量子化行列を表す。行列Ｑからのパラメータを定義するために、ＱＰ％６、ｉおよびｊの値を使用することができる。関数％はモジュラ除算を表す。
【０１０１】
ＲＤ量子化ユニット４０は、係数毎に最低コストの個々の係数ラグランジュコスト関数を選択し（１１１）、例えば選択された個々の係数ラグランジュコストを加算することによって、セットの全ラグランジュコストを決定する（１１２）。考慮すべき別の量子化係数のセットがある場合（１１３のＹＥＳ分岐）、ＲＤ量子化ユニット４０はこれらステップ（１１０〜１１２）のプロセスを繰り返す。特に、所定の係数が最後の非ゼロ係数であるという仮定によって定義された係数のセット毎に、量子化ユニット４０はこれらステップ（１１０〜１１２）のプロセスを繰り返す。全ラグランジュコストが（最後の非ゼロ係数の仮定によって定義された）可能な量子化係数のセット毎に決定されると、ＲＤ量子化ユニット４０は最低の全ラグランジュコストを有する量子化係数のセットを選択する（１１４）。
【０１０２】
図７〜図９は、量子化係数の品質を実質的に犠牲にすることなく、量子化プロセスを加速するために使用できる随意の技術を示す。図７〜図９の技術は、個々に、または一括して使用され得る。図７〜図９の技術は、１パス量子化プロセスに最も適用可能であるが、これらの技術のいくつか（特に図７の技術）は、後でより詳細に扱われる２パス量子化でも有用である。図７に示すように、個々の量子化係数がシーリングよりもフロアに近い場合（１２１のＹＥＳ分岐）、ＲＤ量子化ユニット４０はシーリング値において個々の量子化係数に関連する個々の係数ラグランジュコストの計算をスキップする（１２２）。この場合、ＲＤ量子化ユニット４０は個々の量子化係数に関連する個々の係数ラグランジュコストが０またはフロア値のいずれかにおいて最小限に抑えられると仮定する。従ってこの場合、ＲＤ量子化ユニット４０はシーリング値において個々の量子化係数に関連するラグランジュコストの計算に関連する不要な計算を回避する。しかしながら、個々の量子化係数がシーリングよりもフロアに近くない場合（１２１のＮＯ分岐）、計算をスキップしない（１２３）。
【０１０３】
図８の技術では、ＲＤ量子化ユニット４０はフロア値が０に等しいかどうか（１３１）、および最後の非ゼロ係数に対応する特定の係数がシーリングよりもフロアに近いかどうか（１３２）を判断する。これらのコンティンジェンシの両方が真の場合（１３１のＹＥＳ分岐および１３２のＹＥＳ分岐）、ＲＤ量子化ユニット４０はその特定の最後の非ゼロ係数に関連する特定の量子化係数のセットに対してビデオブロックの符号化に関連する特定のコストを推定することをスキップする（１３３）。この場合、ＲＤ量子化ユニット４０はその特定の量子化係数のセットのための全ラグランジュコストが最小値を持たず、値が十分に計算された場合でも、選択されないと仮定する。従ってこの場合、特定のコストの計算をスキップする。しかしながら、これらのコンティンジェンシのいずれかが偽の場合（１３１のＮＯ分岐または１３２のＮＯ分岐）、ＲＤ量子化ユニット４０は特定のコストの推定をスキップしない。図８の技術は、ＲＤ量子化ユニット４０がいくつかの不要な計算を回避するための別の方法である。
【０１０４】
図９の技術では、ＲＤ量子化ユニット４０は特定のコストを定義する合計を監視、すなわち係数の所定のセットに関連する全ラグランジュコストを定義するために、量子化係数の各々について個々のラグランジュコストの合計を監視する。特定のコストの１つを定義する合計がビデオブロックの係数の値が減少するとともに増加し始める場合（１４１のＹＥＳ分岐）、ＲＤ量子化ユニット４０はそのセットに対する複数のコストの推定を終了する（１４２）。この場合、ＲＤ量子化ユニット４０は係数のその所定のセットに関連する全ラグランジュコストが全体的な最小値にならないと仮定する。従って、ステップ１４１のコンティンジェンシが識別されたとき計算を回避する（１４１のＹＥＳ分岐）。合計がビデオブロックの係数の値が減少するとともに増加しないとき（１４１のＮＯ分岐）、計算を終了しない（１４３）。
【０１０５】
上述のように、本開示は２パス手法をも意図している。２パス手法では、本開示の技術は第１のパスにおいてビデオブロックの最後の非ゼロ係数を推定することと、次いで、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいて、第２のパスにおいてビデオブロックの量子化係数のセットを生成することとを含み得る。別個の推定パスにより、最後の非ゼロ係数として正しい係数を有しない量子化係数のセットに関連する計算を実行する必要がなくなる。本開示によれば、ＲＤ量子化ユニット４０は以下でより詳細に概説する当該２パス手法に従って、量子化係数を生成することができる。
【０１０６】
単一のパス手法のように、以下で論じる提案された２パスアルゴリズムは総ラグランジュコスト関数Ｊ（λ）の値がその最小値に近い量子化係数値ｌijを見いだす。２パス手法は、網羅的な探索に基づいて総ラグランジュコスト関数Ｊ（λ）を最小限に抑える方法よりも複雑ではないことによって特徴付けられる。
【０１０７】
係数ｃij毎に、レベル｜Ｉij｜の多くて３つの可能な値０，ＩijfloorおよびＩijceilをテストすることができる。単一パスの例と同様に、この２パス手法では４×４ブロック値ＩijfloorおよびＩijceilを次のように計算することができる。
【数２２】
2011514055.tif 000024
【０１０８】
さらに、複雑さを低減するために、（例えばＩijfloorとＩijceilまたはＩijceil
との間の絶対距離によって測定されるように）係数ｃijがＩijceilよりもＩijfloorに近い場合、値Ｉijfloorのみを考える。ｃijは、レベル１よりもレベル０に近い場合、さらに分析することなくレベル０を割り当てられる。言い換えれば、図７の技術は２パス手法の第２のパス中に適用され得る。
【０１０９】
所定のブロック中の係数が（例えば、図３に示すように）ジグザグ走査を使用して順序付けられ（走査され）、１次元の順序付き係数ベクトルを生じると仮定する。順序付き係数は、ｃi，ただしｉ＝０，．．．，Ｍとして示され、例えばＭは４×４ブロックの場合１５に等しく、８×８ブロックの場合６３に等しい。
【０１１０】
ＲＤ量子化ユニット４０は、符号ビットに加えてｌiの値を符号化に必要なビットを計算するために、係数が０でないかどうかを示すsignificant_coeff_flag、最後の非ゼロ係数を識別するlast_significant_coeff_flag、および係数の絶対値−１を表すcoeff_abs_level_minus1のシンボルを使用することができる。significant_coeff_flagおよびlast_significant_coeff_flagの場合、コンテキスト、従ってシンボルを符号化するために必要なビットは、走査位置ｉにのみ依存することがある。しかしながら、coeff_abs_level_minus1のビンのためのコンテキスト（例えば、第１のビンのgreater_than_1シンボルを含む）は、逆順序で走査される他の０でないレベルの値に依存することがある。言い換えれば、ｌiのためのコンテキストは添字ｊ，ただしｊ＞ｉを持つ量子化係数の値に依存する。
【０１１１】
従って、ＲＤ量子化ユニット４０は２つの別個のパスにおいて量子化係数／レベルｌiを得ることができる。第１のパスにおいて、ＲＤ量子化ユニット４０はどの係数が最後の非ゼロ係数でなければならないかを推定することができる。この推定された最後の非ゼロ係数をｃkとして示すことができる。第２のパスにおいて、係数ｃkが実際はブロック中の最後の非ゼロ係数であると仮定すると、ＲＤ量子化ユニット４０は量子化係数の最後の値を決定し、生成することができる。
【０１１２】
実装形態では、ＲＤ量子化ユニット４０は、第１のパスにおいて係数ｃｉ0，ｃｉ1のみを考えればよく、ただし、ｉ1はＩijfloor＞０．５の場合のｉの最大値であり、
ｉ0はＩijfloor＞１の場合のｉの最大値であるか、または、そのようなインデックスが存在しない場合、ｉ0＝０である。
【０１１３】
さらに、複雑さを低減するために、係数ｃi，ｉ＝ｉ0，．．．，ｉ1が次のようにｌi＝０に量子化されるとき、Ｊsumの値を量子化誤差ｅｒｒ（ｃi，ｌi）の和として、事前に計算することができる。
【数２３】
2011514055.tif 000025
【０１１４】
ＲＤ量子化ユニット４０は、ビデオブロックの最後の非ゼロ係数を推定するために使用される、第１のパスにおける以下のステップの一部または全部を実行することができる。
【０１１５】
１）係数ｃｉ0について、Ｉi0floor＞１．５の場合、
ａ）Ｊsumの値を更新する。
【数２４】
2011514055.tif 000026
【０１１６】
ｂ）ｃi0
が、以下のように最後の非ゼロ係数であるとき、ブロックのラグランジュコストＪi0（λ）の近似値を計算する。
【数２５】
2011514055.tif 000027
【０１１７】
この場合、bitslast＝１はｃi0が最後の非ゼロ係数であることを示す必要があるビット数（すなわち、last_significant_coeff_flagを１に等しく符号化すべきビット数）の近似値である。さらに、bitslast＝０はｃi0が最後の非ゼロ係数ではないことを示す必要があるビット数（すなわち、last_significant_coeff_flagを０に等しく符号化すべきビット数）の近似値である。
【０１１８】
ｃ）開始インデックスｉ0をｉ0＝ｉ0＋１に更新する。
【０１１９】
２）係数ｃi、ただしｉ＝ｉ0，．．．，ｉ1について、
ａ）Ｊsumの値を更新する。
【数２６】
2011514055.tif 000028
【０１２０】
ｂ）ｃiが０に量子化されるとき、ラグランジュコストＪ（λ，ｃi，０）を見いだす。
【０１２１】
ｃ）係数ｃiが１よりも０に近い場合、以下のようにＪsumの更新値を計算する。
【数２７】
2011514055.tif 000029
【０１２２】
ｄ）係数ｃiが０よりも１に近い場合、ラグランジュコストの２つの追加の値を計算する。
【０１２３】
ｉ）Ｊlast=0（λ，ｃi，１）−ｃiは１に量子化され、最後の非ゼロ係数ではない。
【０１２４】
ｉｉ）Ｊlast=1（λ，ｃi，１）−ｃiは１に量子化され、最後の非ゼロ係数である。
【０１２５】
Ｊsumの値を更新する。
【数２８】
2011514055.tif 000030
【０１２６】
ｃiが最後の非ゼロ係数であるとき、ラグランジュコストＪi（λ）の近似値は、
【数２９】
2011514055.tif 000031
【０１２７】
である。量子化係数の値を１に等しく符号化することが必要とされるビットを計算するとき、ＲＤ量子化ユニット４０はgreater_than_1シンボルのためのコンテキストを５つの可能な値のうちの１つとなるように固定する。
【０１２８】
Ｊk（λ）の最小の対応する値をもつ係数ｃkは、ブロック中で最後の非ゼロ係数であると仮定される。
【０１２９】
上記のステップでは、ＲＤ量子化ユニット４０はあらゆる可能な最後の非ゼロ係数について、あらゆる可能なシナリオを明示的に考えることなく、ビデオブロックの最後の非ゼロ係数を推定する。この場合、ＲＤ量子化ユニット４０はＣＡＢＡＣによってビデオブロックを符号化することに関連するコストを近似することによって、最後の非ゼロ係数を推定する。近似されたコストのうちの異なる１つのコストは、最後の非ゼロ係数である異なる係数に対応する。最終の推定された最後の非ゼロ係数は、最低の近似されたコストを定義する。ステップ１は特殊な場合と考えられ、ステップ２は大部分の係数に対して実行される。
【０１３０】
上記のステップでは、ＲＤ量子化ユニット４０はビデオブロックの係数の各々を最後の非ゼロ係数であると連続的に見なすことによって、近似されたコストのうちの異なるコストを連続的に定義する。そうすることで、ＲＤ量子化ユニット４０はビデオブロックの係数の各々を最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整する。特に、ＪsumがＪsum＝Ｊsum−ｅｒｒ（ｃi，０）として更新される上記のステップ２（ａ）は、累積コストを低減することができる。この場合、ステップ２（ａ）はＪsumをより小さくすることができる。一方、Ｊsumの値がＪsum＝Ｊsum＋Ｊ（λ，ｃｉ，０）として、またはＪsum＝Ｊsum＋ｍｉｎ（Ｊ（λ，ｃｉ，０），Ｊlast=0（λ，ｃi，１））として更新されるステップ２（ｃ）および２（ｄ）は、累積コストをより大きくすることができる。従って、ＲＤ量子化ユニット４０はビデオブロックの係数の各々を最後の非ゼロ係数であると連続的に見なすことによって、近似されたコストのうちの異なるコストを連続的に定義し、そうすることで全コストを上下に調整して累積する。このようにして、ＲＤ量子化ユニット４０はあらゆる可能な最後の非ゼロ係数について、あらゆる可能なシナリオを明示的に考えることなくビデオブロックの最後の非ゼロ係数を推定する。
【０１３１】
ＲＤ量子化ユニット４０は、最後の非ゼロ係数を推定した後、推定された最後の非ゼロ係数が実際はビデオブロックの最後の非ゼロ係数であるという仮定に基づいて、ビデオブロックの量子化係数のセットを生成する第２のパスを実行することができる。特に、第２のパスにおいて、ＲＤ量子化ユニット４０は第１のパスにおいて選択された係数ｃkが実際はビデオブロック中の最後の非ゼロ係数であると仮定して、量子化係数毎に最終の値を決定する。この場合、係数ｃi，ｉ＝ｋ，．．．，０毎に、ＲＤ量子化ユニット４０はラグランジュコストＪ（λ，ｃi，ｌi）が最小限に抑えられるレベルｌiの値を見いだす。前述したように、レベルｌiの３つの異なる値、例えば０，ＩifloorおよびＩiceilを考えることができる。レベルｌiの値を符号化するときにコンテキストを計算するために、レベルｌj，ｊ＝ｋ，．．．，ｉ＋１のために既に選択された値を使用することができる。
【０１３２】
言い換えれば、量子化係数のセットを生成することは、０、フロア値およびシーリング値に等しい値を有する、ビデオブロックの量子化係数のセット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算することを含むことができる。ここでも、フロア値はビデオブロックの係数の個々の係数の絶対値、量子化パラメータおよび量子化行列に基づいており、シーリング値はフロア値＋１からなり得る。
【０１３３】
図１０は、上記で概説した２パス手法を使用することができる符号化技術を示すフローチャートである。この場合、ＲＤ量子化ユニット４０はビデオブロックの最後の非ゼロ係数を推定する（１５１）。上述のように、当該推定ステップ（１５１）はＣＡＢＡＣによってビデオブロックを符号化することに関連するコストを近似することを含むことができ、近似されたコストのうちの異なるコストは最後の非ゼロ係数である異なる係数に対応し得る。この場合、最終の推定された最後の非ゼロ係数は、最低の近似されたコストを定義する。
【０１３４】
その上、推定ステップ（１５１）中にＲＤ量子化ユニット４０はビデオブロックの係数の各々を最後の非ゼロ係数であると連続的に見なすことによって、近似されたコストのうちの異なるコストを連続的に定義することができる。そうすることで、ＲＤ量子化ユニット４０はビデオブロックの係数の各々を最後の非ゼロ係数であると見なすとき、連続的に累積コストを上下に調整する。
【０１３５】
次に、ＲＤ量子化ユニット４０は推定された最後の非ゼロ係数が実際は最後の非ゼロ係数であるという仮定に基づいて、量子化係数のセットを生成する（１５２）。生成ステップ（１５２）は０、フロア値およびシーリング値に等しい値を有する、ビデオブロックの量子化係数のセット中の可能な非ゼロ量子化係数の各々に関連するラグランジュコストを計算することを含み得る。ＲＤ量子化ユニット４０は、量子化係数のセットを生成した後、ＣＡＢＡＣユニット４６に出力することができ、ＣＡＢＡＣユニット４６は生成された量子化係数のセットをビットストリームにエントロピー符号化するために、生成された量子化係数のセットに対してＣＡＢＡＣを行う（１５３）。次いで、符号化ビットストリームを出力し、場合によっては変調して別のデバイスに送信することができる。
【０１３６】
本開示の技術は、無線ハンドセットおよび集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置で実施できる。機能的態様を強調するために与えられた任意の構成要素（コンポーネント）、モジュールまたはユニットについて説明したが、異なるハードウェアユニットなどによる実現を必ずしも必要とするわけではない。
【０１３７】
従って、本明細書で説明する技術は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。モジュールまたは構成要素として説明する機能は、集積論理デバイスに一緒に、またはディスクリートであるが相互運用可能な論理デバイスとして別々に実装できる。ソフトウェアで実装した場合、これらの技術は、実行されると、上記で説明した方法の１つまたは複数を実行する命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現できる。コンピュータ可読データ記憶媒体は、実装材料を含むことがあるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶媒体などを備えることができる。本技術は、追加または代替として、命令またはデータ構造の形態でコードを搬送または伝達し、コンピュータによってアクセス、読込み、および／または実行できるコンピュータ可読通信媒体によって、少なくとも部分的に実現できる。
【０１３８】
コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルロジックアレイ（ＦＰＧＡ）、または他の等価の集積回路またはディスクリート論理回路によって実行できる。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技術の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本明細書で説明する機能を、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供することができ、または複合ビデオエンコーダ／デコーダ（コーデック）に組み込むことができる。また、本技術は、１つまたは複数の回路または論理要素中に十分に実装できる。
【０１３９】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
【図１】
2011514055.tif 000032
【図２】
2011514055.tif 000033
【図３】
2011514055.tif 000034
【図４】
2011514055.tif 000035
【図５】
2011514055.tif 000036
【図６】
2011514055.tif 000037
【図７】
2011514055.tif 000038
【図８】
2011514055.tif 000039
【図９】
2011514055.tif 000040
【図１０】
2011514055.tif 000041
【国際調査報告】
2011514055.tif 000042
2011514055.tif 000043
2011514055.tif 000044