(57)【要約】本開示は、コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するための技術を説明する。方法は、ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択することと；を備えることができる。
2011509642.tif 000002
【特許請求の範囲】
【請求項１】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化する方法であって、前記方法は、
前記ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
前記コストの最低のものと関連づけられた量子化係数の前記セットのうちの所定の１つを選択することと；
備えている、
方法。
【請求項２】
量子化係数の前記セットのうちの前記所定の１つを出力することと、をさらに備えている請求項１に記載の方法。
【請求項３】
量子化係数の前記セットのうちの前記所定の１つを受信することと、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行することと、
前記ビットストリームを出力することと、
をさらに備えている請求項２に記載の方法。
【請求項４】
前記コストを推定することは、レート歪みモデルと関連づけられた、ラグランジュコスト関数を計算することを備えている、請求項１に記載の方法。
【請求項５】
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項４に記載の方法。
【請求項６】
前記最低数のビットを示す値を保存すること、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項５に記載の方法。
【請求項７】
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数のラグランジュコストのセットを定義する、請求項４に記載の方法。
【請求項８】
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算すること、をさらに備えている請求項７に記載の方法。
【請求項９】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項８に記載の方法。
【請求項１０】
前記量子化係数のうちの個々のものについて、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすること、
をさらに備えている請求項８に記載の方法。
【請求項１１】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすること、
をさらに備えている請求項８に記載の方法。
【請求項１２】
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了すること、をさらに備えている請求項８に記載の方法。
【請求項１３】
実行のときに、コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスでビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体であって、前記命令は、前記デバイスに、
前記ビデオブロックのための量子化係数の複数のセットを生成させ、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものは前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択させる；
コンピュータ可読媒体。
【請求項１４】
前記命令は、前記デバイスに、
量子化ユニットから、量子化係数の前記セットのうちの前記所定の１つを出力させる、
請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記命令は、前記デバイスに、
前記量子化ユニットから、量子化係数の前記セットのうちの所定の１つを受信させ、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行させ、
ＣＡＢＡＣユニットから前記ビットストリームを出力させる、
請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記命令は、前記デバイスに、レート歪みモデルと関連づけられたラグランジュコスト関数を計算させる、請求項１３に記載のコンピュータ可読媒体。
【請求項１７】
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記命令は、前記デバイスに前記最低数のビットを示す値を保存させ、そしてそれは、前記特定コストと関連づけられている、請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
前記命令は、前記デバイスに、
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算させる、
請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記量子化係数の個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合、前記命令は、前記デバイスに、前記シーリング値に近い値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップさせる、
請求項２０に記載のコンピュータ可読媒体。
【請求項２３】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、前記命令は、前記デバイスに、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップさせる、
請求項２０に記載のコンピュータ可読媒体。
【請求項２４】
前記命令は、前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記デバイスに、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了させる、請求項２０に記載のコンピュータ可読媒体。
【請求項２５】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成された装置であって、前記装置は、
前記ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択する；
量子化ユニット、
を備えている、
装置。
【請求項２６】
前記量子化ユニットは、量子化係数の前記セットのうちの前記所定の１つを出力する、請求項２５に記載の装置。
【請求項２７】
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力する、
ＣＡＢＡＣユニット、
をさらに備えている請求項２６に記載の装置。
【請求項２８】
前記コストを推定することは、レート歪みモデルと関連づけられたラグランジュコスト関数を計算することを備える、請求項２５に記載の装置。
【請求項２９】
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項２８に記載の装置。
【請求項３０】
前記量子化ユニットは、前記最低数のビットを示す値を保存し、そしてそれは前記特定コストと関連づけられる、請求項２９に記載の装置。
【請求項３１】
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項２８に記載の装置。
【請求項３２】
前記量子化ユニットは、
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算する、
請求項３１に記載の装置。
【請求項３３】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項３２に記載の装置。
【請求項３４】
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記量子化ユニットは、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップする、請求項３２に記載の装置。
【請求項３５】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、前記量子化ユニットは、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップする、請求項３２に記載の装置。
【請求項３６】
前記量子化ユニットは、
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了する、請求項３２に記載の装置。 
【請求項３７】
前記装置は、１つまたは複数の回路、集積回路（ＩＣ）チップあるいはＩＣチップセットを備えている、請求項２３に記載の装置。
【請求項３８】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイスであって、前記デバイスは、
前記ビデオブロックのための量子化係数の複数のセットを生成するための手段と、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択するための手段と；
を備えている、
デバイス。
【請求項３９】
量子化係数の前記セットのうちの前記所定の１つを出力するための手段、をさらに備えている請求項３８に記載のデバイス。
【請求項４０】
量子化係数の前記セットのうちの前記所定の１つを受信するための手段と、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行するための手段と、
前記ビットストリームを出力するための手段と、
をさらに備えている請求項３９に記載のデバイス。
【請求項４１】
前記コストを推定するための手段は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算するための手段を備えている、請求項３８に記載のデバイス。
【請求項４２】
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項４１に記載のデバイス。
【請求項４３】
前記最低数のビットを示す値を保存するための手段、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項４２に記載のデバイス。
【請求項４４】
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項４１に記載のデバイス。
【請求項４５】
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算するための手段、をさらに備える請求項４４に記載のデバイス。
【請求項４６】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項４５に記載のデバイス。
【請求項４７】
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップするための手段、
をさらに備えている請求項４５に記載のデバイス。
【請求項４８】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップするための手段、をさらに備えている請求項４５に記載のデバイス。
【請求項４９】
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了するための手段、をさらに備えている請求項４５に記載のデバイス。
【請求項５０】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスであって、前記デバイスは、コーディングユニットと送信機とを備えており、前記コーディングユニットは、量子化ユニットとＣＡＢＡＣユニットとを備えており、前記量子化ユニットは、
前記ビデオブロックのための量子化係数の複数のセットを計算し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択し；
量子化係数の前記セットのうちの前記所定の１つを出力し；
前記ＣＡＢＡＣユニットは、
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力し、
前記送信機は、前記ビットストリームを送信する、
デバイス。
【請求項５１】
前記デバイスは、無線通信デバイスを備える、請求項５０に記載のデバイス。
【請求項５２】
前記デバイスは、前記送信機が前記ビットストリームを送信する前に、前記ビットストリームを変調するモジュレータを含む、請求項５１に記載のデバイス。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、２００８年１月８日に出願された米国仮特許番号第６１／０１９，８３０号、及び２００８年２月２１日に出願された米国仮特許番号第６１／０３０，４５４号の利益を主張しており、それらの両方の全体の内容は、参照によってここにおいて組み込まれている。
【技術分野】
【０００２】
本開示は、デジタルビデオコーディング(digital video coding)に関し、より具体的には、コンテキストベースの適応バイナリ算術符号化(context-based adaptive binary arithmetic coding)（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのための量子化技術に関する。
【背景】
【０００３】
デジタルビデオ機能は、広範囲のデバイスに組み込まれることができ、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡｓ）、ラップトップあるいはデスクトップコンピュータ、デジタルカメラ、デジタルレコーディングデバイス、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラあるいは衛星無線電話、及び同様なもの、を含む。デジタルビデオデバイスは、より効率的に、デジタルビデオ情報を送信し受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、あるいはＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ−４ パート１０ アドバンスドビデオコーディング（ＡＶＣ）のようなビデオ圧縮技術をインプリメントする。ビデオ圧縮技術は、ビデオシーケンスに内在の冗長性を縮らすあるいは取り除くために、空間予測及び一時的な予測を実行する。
【０００４】
イントラコーディング(Intra-coding)は、ビデオフレーム、ビデオフレームのスライス(a slice of a video frame)、ピクチャのグループ(a group of pictures)を備えている与えられたコード化されたユニット(a given coded unit)、あるいは、ビデオブロックの別の定義されたユニット(another defined unit of video blocks)内の、ビデオブロック間の空間的冗長性を減らすあるいは取り除くために、空間予測に依存する。対照的に、インターコーディング(inter-coding)は、ビデオシーケンスの連続コード化されたユニット(successive coded units)のビデオブロック間の一時的な冗長性を減らすあるいは取り除くために、一時的な予測に依存する。イントラコーディングの場合、ビデオエンコーダは、同じコード化されたユニット内の他のデータに基づいて、データを圧縮するために、空間予測を実行する。インターコーディングの場合、ビデオエンコーダは、２以上の隣接しているコード化されたユニットの対応するビデオブロックの動きをトラッキングするために、動き推定及び動き補償を実行する。
【０００５】
コード化されたビデオブロックは、予測ブロックを作成するあるいは識別するために使用されることができる予測情報によって表されることができ、データの残差ブロックは、コード化されているブロックと予測ブロックとの間の差異(differences)を示す。インターコーディングの場合、１つまたは複数の動きベクトルがデータの予測ブロックを識別するために使用されているが、イントラコーディングの場合、予測モードは、予測ブロックを生成するために使用されることができる。イントラコーディングとインターコーディングの両方は、異なるブロックサイズ及び／またはコーディングにおいて使用される予測技術を定義することができる、いくつかの異なる予測モードを定義することができる。さらなるタイプのシンタクスエレメントはまた、コーディング技術あるいはコーディングプロセスで使用されるパラメータを制御するあるいは定義するために、エンコードされたビデオデータの一部として含まれることができる。
【０００６】
ブロックベースの予測コーディングの後で、ビデオエンコーダは、残差ブロックの通信と関連づけられたビットレートをさらに減らすために、変換、量子化、及びエントロピー符号化のプロセスを適用することができる。変換技術は、離散コサイン変換あるいは概念的に同様なプロセスを備えることができる。あるいは、ウェーブレット変換(wavelet transforms)、整数変換、あるいは他のタイプの変換が使用されることができる。離散コサイン変換(ＤＣＴ)プロセスでは、一例として、変換プロセスは、１セットのピクセル値を変換係数へと変換し、そしてそれは、周波数ドメインにおいてピクセル値のエネルギーを表わすことができる。量子化は変換係数に適用され、与えられた変換係数と関連づけられたビットの数を制限するプロセスを一般的に含む。エントロピー符号化(Entropy coding)は、１シーケンスの量子化変換係数を集約的に圧縮する、１つまたは複数のプロセスを備えることができる。
【０００７】
コンテキストベースの適応性のあるバイナリコーディング（ＣＡＢＡＣ）は、ＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ４、ＡＶＣ標準規格のような、いくつかのコードディング標準規格において現在サポートされる、１つのタイプのエントロピー符号化技術である。ＣＡＢＡＣは、２値化(binarization)、コンテキストモデル選択(context model selection)、及びバイナリ算術符号化(binary arithmetic coding)を含んでいる、いくつかのステージを含むことができる。２値化では、いずれのノンバイナリシンボルも、バイナリシーケンス(時々、ビン・ストリング(a bin string)と呼ばれる)にマッピングされる。コンテキストモデリングでは、モデル確率分布は、コード化されているエレメント(例、シンボル)に割り当てられる。そのあと、後続のバイナリ算術符号化ステージにおいて、その割り当てられた確率分布は、割当てられたモデル確率分布にしたがってコード化されているエレメントのコード化された表示を形成する１シーケンスのビットを生成するために、コーディングを実行するために使用される。
【０００８】
ＣＡＢＡＣプロセスは、与えられたコンテキストにおいてエレメントの確率を知ることによって、ビデオストリームを定義するエレメントを無損失で(losslessly)圧縮することができる。ＣＡＢＡＣは、一般的に、コンテンツ適応可変長符号化(content adaptive variable length coding)（ＣＡＶＬＣ）技術のような他のエントロピー符号化技術よりも、より効率的にデータを圧縮するが、デコーダサイド上で比較的より複雑な処理を必要とする可能性がある。ＩＴＵ Ｈ．２６４／ＡＶＣ設定におけるＣＡＢＡＣは、次の刊行物：ビデオ技術のための回路及びシステムに関するＩＥＥＥ翻訳で、第１３巻第７号で２００３年７月に発行された、Ｄｅｔｌｅｖ Ｍａｒｐｅ、Ｈｅｉｋｏ Ｓｃｈｗａｒｚ、そしてＴｈｏｍａｓ Ｗｉｅｇａｎｄ著の「Ｈ．２６４／ＡＶＣビデオ圧縮標準規格におけるコンテキストベースの適応バイナリ符号化(Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard)」でより詳細に説明されている。
【発明の概要】
【０００９】
一般的に、コンテキストベースの適応性のあるバイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化することに使用されることができる、量子化技術を、本開示は説明する。その説明された技術は、量子化プロセスの間にＣＡＢＡＣステップのうちのいくつかを実行する及び／または推定することによって、量子化プロセスの間のＣＡＢＡＣ(CABAC during the quantization process)を説明することができる。本技術は、ビデオコーディングの量子化ステップにおける歪みとコーディングレートとの間で、望ましいバランスを達成するために使用されることができる。本技術によれば、ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコスト(a plurality of costs)は、量子化係数の異なるセットについて推定されることができる。そのあとで、最低コスト(a lowest cost)と関連づけられた、量子化係数のセット(sets of quantized coefficients)は、量子化係数を定義するために選択されることができる。
【００１０】
一例では、本開示は、ＣＡＢＡＣをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化する方法を提供する。その方法は、ビデオブロックのための量子化係数の複数のセット(a plurality of sets of quantized coefficients)を生成することと、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のもの(a particular one)はビデオブロックの最後の非ゼロ係数(a last non-zero coefficient)に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、その推定されたコストは、量子化係数のセットのうちの異なるもの(different ones)にそれぞれ基づいている；コストのうちの最低のものと関連づけられた量子化係数のセットのうちの所定の１つ(a given one)を選択することと；を備えている。
【００１１】
別の例では、本開示は、ＣＡＢＡＣをサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化するように構成された装置(apparatus)を提供する。装置は、ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択する；量子化ユニット(quantization unit)を備えている。
【００１２】
別の例では、本開示は、ＣＡＢＡＣをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイス(device)を提供しており、そのデバイスは、ビデオブロックのための量子化係数の複数のセットを生成するための手段、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択するための手段と；を備えている。
【００１３】
別の例では、本開示は、コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスを提供しており、そのデバイスは、コーディングユニットと送信機を備えており、そのコーディングユニットは、量子化ユニットとＣＡＢＡＣユニットを含んでいる。その量子化ユニットは、ビデオブロックのための量子化係数の複数のセットを計算し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択し；量子化係数のセットのうちの所定の１つを出力する。ＣＡＢＡＣユニットは、量子化係数のセットのうちの所定の１つを受信し、量子化係数のセットのうちの所定の１つをビットストリームへとエントロピーコード化するために、量子化係数のセットのうちの所定の１つに関してＣＡＢＡＣを実行し、ビットストリームを出力し、送信機は、ビットストリームを送信する。
【００１４】
本開示で説明された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらのいずれの組み合わせ、でインプリメントされることができる。ソフトウェアでインプリメントされる場合には、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ(field programmable gate array)（ＦＰＧＡ）、あるいはデジタルシグナルプロセッサ(digital signal processor )（ＤＳＰ）、のような１つまたは複数のプロセッサで実行されることができる。本技術を実行するソフトウェアは、コンピュータ可読媒体(computer-readable medium)において最初に保存され、そして、プロセッサで、ロードされ、実行されることができる。
【００１５】
したがって、本開示はまた、実施のときに、ＣＡＢＡＣをサポートするビデオコーディングプロセスにおいてビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体を企図しており、その命令は、デバイスに、ビデオブロックのための量子化係数の複数のセットをデバイスに生成させ、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択させる。
【００１６】
本開示の１つまたは複数の態様の詳細は、添付図面と下記の説明の中で記載されている。本開示で説明された技術の他の特徴、目的及び利益は、説明と図面から、また特許請求の範囲から、明らかであろう。
【図面の簡単な説明】
【００１７】
【図１】図１は、ビデオコーディング及びデコーディングのシステムを説明する例示的なブロック図である。
【図２】図２は、本開示と一致したビデオエンコーダの例を図示するブロック図である。
【図３】図３は、４Ｘ４エレメントのビデオブロックのジグザグスキャンを図示する概念図である。
【図４】図４は、本開示と一致したビデオデコーダの例を図示するブロック図である。
【図５】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【図６】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【図７】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【図８】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【図９】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【図１０】図５−１０は、本開示と一致した技術を説明しているフロー図である。
【詳細な説明】
【００１８】
図１は、本開示の技術をインプリメントすることができる、１つの例示的なビデオコーディング及びデコーディングのシステム１０を説明するブロック図である。図１で示されているように、システム１０は、通信チャネル１５を介して、デスティネーションデバイス（destination device）１６に対して、エンコードされたビデオを送信する、ソースデバイス１２を含む。ソースデバイス１２及びデスティネーションデバイス１６は、いずれの広範囲なデバイスを備えることができる。ある場合では、ソースデバイス１２及びデスティネーションデバイス１６は、いわゆるセルラあるいは衛星無線電話と呼ばれる、無線ハンドセットのような無線通信デバイス、あるいは、通信チャネル１５上でビデオ情報を通信することができるいずれの無線デバイス、を備えており、その場合には、通信チャネル１５はワイヤレスである。しかしながら、量子化に関する本開示の技術は、必ずしも無線アプリケーションあるいは設定に限定されていない。
【００１９】
図１の例では、ソースデバイス１２は、ビデオソース２０、ビデオエンコーダ２２、モジュレータ／デモジュレータ（モデム）２３、及び送信機２４を含むことができる。デスティネーションデバイス１６は、受信機２６、モデム２７、ビデオデコーダ２８、及びディスプレイデバイス３０を含むことができる。本開示にしたがって、ソースデバイス１２のビデオエンコーダ２２は、コンテキスト適応バイナリ算術符号化（ＣＡＢＡＣ）の影響を考慮に入れる量子化技術を適用するように構成されることができる。このように、ソースデバイス１２は、望ましいレベルの量子化を達成することができ、それによってコーディングプロセスを改善する。
【００２０】
図１の図示されたシステム１０は、単なる例示である。本開示の量子化技術は、ＣＡＢＡＣをサポートするいずれのコーディングデバイスによって実行されることができる。ソースデバイス１２は、そのようなコーディングデバイスの単なる１つの例である。本開示の量子化技術は、エントロピー符号化のためにＣＡＢＡＣをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化することを含むことができる。この場合には、ビデオコーダ２２は、ビデオブロックのための量子化係数の複数のセットを生成することができ、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという想定に基づいて定義される。最後の非ゼロ係数は、例えばジグザグスキャンのような、使用されるスキャン順序(scanning order)に依存することができる。ビデオコーダ２２は、ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することができ、ここでは、その推定されたコストは量子化係数のセットのうちの異なるものにそれぞれ基づいており、そして、最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択することができる。このアプローチは、推定されたコストが、ビデオブロックの最後の非ゼロ係数であるものとして異なる係数を考慮する単独パスにおいて量子化係数のうちの異なるセットのそれぞれについて生成されている限り、１パスアプローチ(one-pass approach)と呼ばれることができる。
【００２１】
代替的に、本開示の量子化技術は、２パスアプローチ(two-pass approach)に従うことができる。この場合には、本技術は、第１パスにおいてビデオブロックの最後の非ゼロ係数を推定することと、その推定された最後の非ゼロ係数は実際にはビデオブロックの最後の非ゼロ係数であるという仮定に基づいて第２パスにおいてビデオブロックのための量子化係数のセットを生成することと、を含むことができる。本開示は、組み合わせられた１パスアプローチと、２パスアプローチと、の両方を提案する。組み合わせられた１パスアプローチでは、すべての可能ある係数は、最後の非ゼロ係数であると考えられることができ、多くの可能ある量子化係数のセットは、最後の非ゼロ係数である異なる係数のために生成されることができる。しかしながら、２パスアプローチでは、推定技術は、最後の非ゼロ係数を推定するために使用されており、量子化係数のセットは、推定された最後の非ゼロ係数が最後の非ゼロ係数として固定される単一の場合にのみ、生成され考慮されうる。組み合わせられた１パスアプローチは、１パスアプローチよりもコンピュータ上負荷が大きい可能性があるが(may be more computationally intensive)、いくつかの場合ではより正確な結果をもたらす可能性がある。様々なさらなる技術は、１パスアプローチのコンピュータ的な複雑さ(computational complexity)を縮らすために使用されることができる。２パスアプローチは、１パスアプローチと比べて複雑さを著しく減らすことができ、多くの場合には、２パスアプローチにおけるコーディング品質(coding quality)の縮小は、１パスアプローチと比べてごくわずかでありうる。
【００２２】
一般に、ソースデバイス１２は、デスティネーションデバイス１６への送信のために、コード化されたビデオデータを生成する。しかしながら、ある場合では、デバイス１２及び１６は、実体的に対称な方法で動作することができる。例えば、デバイス１２及び１６のそれぞれは、ビデオコーディングコンポーネント及びデコーディングコンポーネントを含むことができる。したがって、システム１０は、ビデオデバイス１２、１６間の１方向あるいは双方向の送信、例えばビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティング、あるいはビデオ電話、をサポートすることができる。
【００２３】
ソースデバイス１２のビデオソース２０は、ビデオキャプチャデバイス、例えば、ビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ(video archive containing previously captured video)、あるいは、ビデオコンテンツプロバイダからのビデオフィード(video feed from a video content provider)、を含むことができる。さらなる代替として、ビデオソース２０は、ソースビデオ、あるいは、ライブビデオ、アーカイブに保管されたビデオ、及びコンピュータ生成ビデオの組み合わせとして、コンピュータグラフィクスベースのデータを生成することができる。ある場合では、ビデオソース２０がビデオカメラである場合、ソースデバイス１２及びデスティネーションデバイス１６は、いわゆるカメラ電話(camera phones)あるいはテレビ電話(video phones)を形成することができる。各場合では、キャプチャされた、予めキャプチャされた、あるいは、コンピュータ生成された、ビデオは、ビデオエンコーダ２２によってエンコードされることができる。そのエンコードされたビデオ情報は、符号分割多元接続（ＣＤＭＡ）あるいは別の通信標準規格のような通信標準規格にしたがってモデム２３によって変調され、送信機２４を介してディスティネーションデバイス１６に対して送信されることができる。モデム２３は、様々なミキサ、フィルタ、増幅器、あるいは信号変調のために設計された他のコンポーネント、を含むことができる。送信機２４は、増幅器、フィルタ、及び１つまたは複数のアンテナ、を含んでいるデータを送信するために設計された回路、を含むことができる。
【００２４】
デスティネーションデバイス１６の受信機２６は、チャネル１５上で情報を受信し、モデム２７は、情報を復調する。再び、ビデオエンコーディングプロセスは、量子化プロセスを改善するために、ここで説明された技術をインプリメントすることができる。ビデオデコーダ２８によって実行されたビデオデコーディングプロセスは、ビデオシーケンスを再構築することにおいて、逆量子化を実行することができる。ディスプレイデバイス２８は、ユーザーに対して、デコードされたビデオデータをディスプレイし、陰極線管(a cathode ray tube)、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）(an organic light emitting diode)ディスプレイ、あるいは、別のタイプのディスプレイデバイス、のような様々なディスプレイデバイスのうちいずれかを備えることができる。
【００２５】
図１の例では、通信チャネル１５は、例えば無線周波数（ＲＦ）スペクトラムあるいは１つまたは複数の物理送信ラインあるいは無線及び有線のメディアのいずれの組み合わせ、のようないずれの無線あるいは有線の通信媒体を備えることができる。通信チャネル１５は、ローカルエリアネットワーク、広域ネットワーク、あるいはインターネットのようなグローバネットワークのようなパケットベースネットワークの一部を形成することができる。通信チャネル１５は、ソースデバイス１２からデスティネーションデバイス１６までビデオデータを送信するための、いずれの適切な通信媒体、あるいは、異なる通信媒体の集まり、を一般的に表わす。
【００２６】
ビデオエンコーダ２２及びビデオデコーダ２８は、ＩＴＵ−Ｔ Ｈ．２６４標準規格のようなＣＡＢＡＣ、あるいはＭＰＥＧ−４、Ｐａｒｔ１０、アドバンスドビデオコーディング（ＡＶＣ）(Advanced Video Coding)と説明される、をサポートするビデオ圧縮技術にしたがって動作することができる。図１に図示されていないが、いくつかの態様では、ビデオエンコーダ２２及びビデオデコーダ２８はそれぞれ、オーディオエンコーダ及びデコーダで統合されることができ、共通のデータストリームあるいは個別のデータストリームにおいて両方のオーディオ及びビデオのエンコーディングを扱う、適切なＭＵＸ−ＤＥＭＵＸユニット、あるいは、他のハードウェア及びソフトウェアを含むことができる。適用可能である場合には、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ．２２３マルチプレクサプロトコル、あるいはユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに合わせることができる。
【００２７】
ＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）標準規格は、Ｊｏｉｎｔ Ｖｉｄｅｏ Ｔｅａｍ（ＪＶＴ）として知られる集約的パートナーシップのプロダクトとして、ＩＳＯ／ＩＥＣ Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ（ＭＰＥＧ）と一緒にＩＴＵ−Ｔ Ｖｉｄｅｏ Ｃｏｄｉｎｇ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ（ＶＣＥＧ）によって公式化された。いくつかの態様では、本開示で説明された技術は、Ｈ．２６４標準規格に一般的に合わせるデバイスに適用されることができる。Ｈ．２６４標準規格は、２００５年３月付けの、ＩＴＵ−Ｔスタディグループによる、ＩＴＵ−Ｔ推奨Ｈ．２６４、一般的なオーディオビジュアルサービスのためのアドバンスドビデオコーディング、で説明されており、Ｈ．２６４標準規格あるいはＨ．２６４仕様、あるいは、Ｈ．２６４／ＡＶＣ標準規格あるいは仕様としてここでは指されることができる。ジョイントビデオチーム（ＪＶＴ）は、Ｈ．２６４／ＭＰＥＧ−４ ＡＶＣに対する拡張に取り組むことを続ける。
【００２８】
ビデオエンコーダ２２及びビデオデコーダ２８は、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰｓ）、特定用途向け集積回路（ＡＳＩＣｓ）、フィールドプログラム可能なゲートアレイ（ＦＰＧＡｓ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組み合わせとしてインプリメントされることができる。ビデオエンコーダ２２及びビデオデコーダ２８のそれぞれは、１つまたは複数のエンコーダあるいはデコーダに含まれてもよく、それらのいずれかは、個別のモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、あるいは同様なものにおいて、組み合わせられたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として組み込まれることができる。
【００２９】
ビデオシーケンスは、一般的には一連のビデオフレームを含む。ビデオコーダ２２は、ビデオデータをエンコードするために、個々のビデオフレーム(individual video frames)内のビデオブロック上で動作する。ビデオブロックは、固定されたあるいは変動するサイズを有してもよく、指定されたコーディング基準にしたがって、サイズが異なってもよい。各ビデオフレームは、一連のスライス(a series of slices)を含む。各スライスは、一連のマクロブロックを含むことができ、そしてそれは、サブブロックへと配列される(arranged)ことができる。一例として、ＩＴＵ−Ｔ Ｈ．２６４標準規格は、様々なブロックサイズにおけるイントラ予測、例えば輝度コンポーネントについては１６×１６、８×８、あるいは４×４、色度コンポーネントについては８×８、をサポートし、さらに様々なブロックサイズにおけるインター予測、例えば、輝度コンポーネントについては１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４、色度コンポーネントについては、対応するスケーリングされたサイズ、をサポートする。ビデオブロックは、例えば、離散コサイン変換あるいは概念的に同様な変換プロセスのような変換プロセスにしたがって、ピクセルデータのブロック、あるいは、変換係数のブロック、を備えることができる。本開示の量子化技術は、一般的に、変換されたビデオブロックの変換係数に適用する。
【００３０】
より小さなビデオブロックは、よりよい解像度を提供することができ、そして、高レベルの詳細(high levels of detail)を含むビデオフレームのロケーションに使用されることができる。一般的に、マクロブロック（ＭＢｓ）及び様々なサブブロックは、ビデオブロックであると考えられることができる。さらに、スライスは、ＭＢｓ及び／またはサブブロックのような一連のビデオブロックであると考えられることができる。各スライスは、ビデオフレームの独立デコード可能ユニット(an independently decodable unit)であってもよい。予測の後で、変換は、８×８残差ブロックあるいは４×４残差ブロック上で実行されることができ、追加変換は、ｉｎｔｒａ＿１６ｘ１６予測モードが使用される場合には色度コンポーネントあるいは輝度コンポーネントについての４×４ブロックのＤＣ係数に適用されうる。再び、変換にしたがって、データは、ビデオブロック、すなわち変換係数のブロック、であると呼ばれることができる。用語「係数(coefficients)」は、変換係数を一般的に指すが、代替的に、他のタイプの係数あるいは値、例えばピクセル値、あるいは別のタイプの係数を指すことができる。
【００３１】
イントラあるいはインターベースの予測符号化及び変換技術（例えば、Ｈ．２６４／ＡＶＣで使用される４ｘ４あるいは８ｘ８整数変換、あるいは、離散コサイン変換ＤＣＴ）にしたがって、量子化は、実行されることができる。量子化は、下記でより詳細に説明されているが、係数を表すために使用されるデータの量を出来る限り減らすために係数が量子化されるプロセスを一般的に指す。量子化プロセスは、係数のうちのいくつかあるいはすべてと関連づけられたビット深さを縮小することができる。例えば、８ビット値は、量子化の間に、７ビット値に丸められることができる。本開示の量子化技術は、ＣＡＢＡＣが実行されるという事実を説明する。
【００３２】
具体的には、下記の量子化、すなわちエントロピー符号化は、ＣＡＢＡＣ方法にしたがって実行されることができる。本開示は、歪み及びレートの望ましいバランスを達成することができる方法で、ビデオブロックの係数の量子化のための技術を提供する。説明された技術は、量子化を改善し、かつ、例えば通信レートのための与えられたビットバジェットで品質の望ましいレベル、を達成するために、ＣＡＢＡＣの推定をインプリメントする。
【００３３】
本開示の技術によれば、ビデオコーダ２２は、ビデオブロックのための量子化係数の複数のセットを生成することができ、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される。ビデオエンコーダ２２は、ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することができ、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいており、そして、最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択する。ビデオエンコーダ２２は、ビデオブロックの量子化のために量子化係数のうち選択されたセットを使用することが出来る。このアプローチは１パスアプローチと呼ばれる。
【００３４】
あるいは、本開示の量子化技術は、２パスアプローチに従うことができる。この場合では、ビデオエンコーダ２２は、第１パスにおいてビデオブロックの最後の非ゼロ係数を推定し、そして、その推定された非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、第２パスにおいてビデオブロックについての量子化係数のセットを生成することができる。２パスアプローチでは、推定技術は、最後の非ゼロ係数を推定するために使用され、量子化係数のセットは、その推定された最後の非ゼロ係数が実際に最後の非ゼロ係数である場合についてのみを考慮されることができる。個別の推定パスは、最後の非ゼロ係数として正しい係数を有さない量子化係数のセットと関連づけられたコンピューテーションを実行する必要を除去することができる。
【００３５】
図２は、本開示と一致する残差係数の量子化を実行する、レート歪み（ＲＤ）量子化ユニット４０を含んでいるビデオコーダ５０の例を図示するブロック図である。ビデオエンコーダ５０は、デバイス２０のビデオエンコーダ２２、あるいは異なるデバイスのビデオエンコーダに対応することができる。ビデオエンコーダ５０は、ビデオフレーム内で、ブロックのイントラコーディング及びインターコーディングを実行することができる。イントラコーディングは、与えられたビデオフレーム内のビデオにおける空間冗長性を減らすあるいは取り除くために、空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオにおける一時的な冗長性を縮小するあるいは取り除くために、一時的な予測に依存する。インターコーディングについては、ビデオエンコーダ５０は、２以上の隣接フレーム間のビデオブロックを整合する動きをトラッキングする、動き推定を実行する。イントラモード（Ｉ−モード）は、空間ベースの圧縮モードを指すことができ、予測（Ｐ−モード）あるいは双方向（Ｂ−モード）のようなインターモードは、一時的ベースの圧縮モードを指すことができる。
【００３６】
図２で示されるように、ビデオエンコーダ５０は、エンコードされる予定であるビデオフレーム内で現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ５０は予測ユニット３２、参照フレームストア３４、ブロック変換ユニット３８、ＲＤ量子化ユニット４０、逆量子化ユニット４２、逆変換ユニット４４、及びＣＡＢＡＣコーディングユニット４６、を含む。デブロッキングフィルタ（図示されず）もまた、ブロックノイズ副作用(blockiness artifacts)を取り除く、ブロック境界をフィルタにかけるために含まれることができる。ビデオエンコーダ５０はまた、加算器４８と加算器５１を含む。予測ユニット３２は、一般的に、イントラ予測ユニット及び／またはインター予測ユニットを表わす。
【００３７】
エンコーディングプロセスの間に、ビデオエンコーダ５０は、コード化されるべきビデオブロックを受信し、予測ユニット３２は、予測符号化技術を実行する。インターコーディングについては、予測ユニット３２は、予測ブロックを定義するために、１つまたは複数のビデオ参照フレームあるいはスライスにおいて様々なブロックにエンコードされるビデオブロックを比較する。イントラコーディングについては、予測ユニット３２は、同じコード化されたユニット内の近隣データに基づいて予測ブロックを生成する。予測ユニット３２は、予測ブロックを出力し、加算器４８は、残差ブロックを生成するためにコード化されているビデオブロックから予測ブロックを差し引く。
【００３８】
インターコーディングについては、予測ユニット３２は、予測ブロックを指摘しそして動きベクトルに基づいて予測ブロックを生成する動きベクトル、を識別する動き推定及び動き補償ユニットを備えることができる。一般的には、動き推定は、動きを推定する動きベクトルを生成するプロセスと考えられる。例えば、動きベクトルは、現在のフレーム内でコード化されている現在のブロックと関連する予測フレーム内の予測ブロックの置換(displacement)を示すことができる。動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチするあるいは生成するプロセスと典型的に考えられる。述べられているように、イントラコーディングについては、予測ユニット３２は、同じコード化されたユニット内の近隣データに基づいて、予測ブロックを生成する。１つまたは複数のイントラ予測モードは、どのようにイントラ予測ブロックが定義されることができるかを定義することができる。
【００３９】
ビデオエンコーダ５０は、コード化されているオリジナルビデオブロックから予測ユニット３２によって生成された予測ビデオブロックを差し引くことにより、残差ビデオブロックを形成する。加算器４８は、この減算オペレーションを実行する。変換ユニット３８は、残差ブロックに対して、変換、例えば離散コサイン変換（ＤＣＴ）あるいは概念的に同様な変換、を適用し、残差変換ブロック係数を備えているビデオブロックを生成する。例えば、変換ユニット３８は、ＤＣＴと概念的に同じである、Ｈ．２６４標準規格によって定義される他の変換を実行してもよい。ウェーブレット変換、整数変換、サブバンド変換、あるいは他のタイプの変換もまた使用されることができる。いずれの場合においても、変換ユニット３８は、残差ブロックに対して変換を適用し、残差変換係数のブロックを生成する。変換は、残差情報を、ピクセルドメインから周波数ドメインに変換することができる。
【００４０】
ＲＤ量子化ユニット４０（ここでは「量子化ユニット４０」とも呼ばれる）は、ビットレートをさらに減らすために、残差変換係数を量子化する。具体的には、量子化ユニット４０は、ＣＡＢＡＣユニット４６によって実行されるＣＡＢＡＣ符号化を説明するために、下記でより詳細に説明される量子化技術の１つまたは複数を実行する。このように、量子化ユニット４０は、レート歪みモデルをインプリメントし、例えば与えられたレートあるいはビットバジェット(bit budget)について望ましい数のビットを達成する、量子化の望ましいレベルを達成することができる。
【００４１】
量子化の後で、ＣＡＢＡＣユニット４６は、データをさらに圧縮するためにＣＡＢＡＣ方法にしたがって量子化変換係数をエントロピーコード化する。ＣＡＢＡＣユニット４６によるエントロピー符号化にしたがって、エンコードされたビデオは、別のデバイスに送信される、あるいは、後の送信あるいは検索のためにアーカイブに入れられることができる。逆量子化ユニット４２及び逆変換ユニット４４は、参照ブロックとして使用するためにピクセルドメインにおいて残差ブロックを再構築するために、それぞれ、逆量子化及び逆変換を適用する。加算器５１は、参照フレームストア３４における保存のために再構築されたビデオブロックを生成するために、動き補償ユニット３６によって生成された動き補償された予測ブロックに、その再構築された残差ブロックを追加する。その再構築されたビデオブロックは、後続ビデオフレームにおけるブロックをインターエンコードするために参照ブロックとして、予測ユニット３２によって使用されることができる。
【００４２】
予測エラーＥ（ｘ，ｙ）と、すなわちコード化されているブロックＩ（ｘ，ｙ）と、予測されたブロックＰ（ｘ，ｙ）との間の差異は、変換基本関数ｆｉｊ（ｘ，ｙ）の重み付けられた和として表されることができる：
【数１】
2011509642.tif 000003
【００４３】
なお、ｘ及びｙは、ビデオブロック内の与えられた係数のロケーションを定義し、ｃｉｊは、重み要因(weight factors)であり、ときどき、予測エラー係数(prediction error coefficients)と呼ばれる。変換は、８ｘ８（Ｎ＝８）あるいは４ｘ４（Ｎ＝４）ブロックベースで典型的には実行される。重みｃｉｊは、下記のように続いて量子化されることができる。
【数２】
2011509642.tif 000004
【００４４】
なお、ｌｉｊは、量子化係数あるいはレベルと呼ばれ、ＱＰは、量子化パラメータであり、Ｑは、量子化ステップサイズを定義する量子化マトリクスである。量子化のオペレーションは、情報の損失を導入する。しかしながら、量子化係数はより小さい数のビットで表されることができ、それによって、送信帯域幅、ストレージ空間(storage space)、及び処理リソース(processing resources)を節約する。圧縮のレベル（情報の損失）は、値ＱＰを調節することにより、従来、制御される。
【００４５】
量子化変換係数は、動きベクトル及びいくつかの制御情報と一緒に、エレメントの完全なコード化されたシーケンスを形成することができる。エンコーディングデバイスからでコーディングデバイスまでの送信の前に、これらのエレメントのすべては、それらの表示に必要とされるビットの数をさらに減らすために、一般的にエントロピーコード化される。
【００４６】
デコーダ側では、現在フレームにおけるブロックは、エンコーダにおけるのと同じ方法でその予測を最初に構築することによって、そして、その圧縮された予測エラーを予測に追加することによって、得られる。圧縮された予測エラーは、下記のように、逆量子化係数に対して逆変換を適用することによって見つけられる。
【数３】
2011509642.tif 000005
【００４７】
ｒｉｊは、逆量子化された（あるいは再構築されたと呼ばれる）係数である。係数ｒｉｊは、逆量子化によって計算されることができる：
【数４】
2011509642.tif 000006
【００４８】
再構築されたフレームＲ（ｘ，ｙ）とオリジナルフレームＩ（ｘ，ｙ）の間の差異は、再構築エラー(reconstruction error)と呼ばれることができる。
【００４９】
従来、ビデオコーデックにおける変換係数の量子化は、均一再構築量子化器(uniform-reconstruction quantizers)(ＵＲＱ)に大抵基づいている。データを量子化するための分類ルールは、エンコーダによって定義される。量子化の一例は、いわゆるデッドゾーン・プラス・均一しきい値量子化(dead-zone plus uniform threshold quantization)（ＤＺ−ＵＴＱ）である。下記の等式は、このようなデッドゾーン量子化器を定義しており、ここでは、ｆ０は、０≦ｆ０≦０．５を備えた、デッドゾーンパラメータを示す。
【数５】
2011509642.tif 000007
【００５０】
ｌｉｊは、与えられたＱＰと関連づけられたレベルに対応する。
【００５１】
概念的に、レベルｌｉｊに対応する再構築値ｒｉｊは、対応するＱＰでｌｉｊを乗算することによって、導出されることができる：
ｒｉｊ＝ｌｉｊ・ＱＰ
【数６】
2011509642.tif 000008
【００５２】
は、ＭＰＥＧ−４ ＡＶＣについて実際に規定されている数学的な簡略版を表しており、対応する基本関数の正規化についての異なるスケーリングファクタは簡潔のために無視されている。
【００５３】
Ｈ．２６４及びＭＰＥＧ−４ ＡＶＣにおいて、量子化は、下記の式にしたがって実行されることができる。
【数７】
2011509642.tif 000009
【００５４】
なお、Ｑは、量子化マトリクスを表し、％は、モジュラー分割を表し、ｆは、イントラフレームについては２１５＋ＱＰ／６／３、インターフレームについては２１５＋ＱＰ／６／６、に等しい。係数の逆量子化は、下記の式にしたがって実行されることができる。
【数８】
2011509642.tif 000010
【００５５】
Ｒは、逆量子化マトリクスを表す。値は、ＱＰ％６＝０．１，…，５についてＱ及びＲと関連づけられ、予め計算され、保存されることができる。
【００５６】
与えられたブロックにおける係数は、ジグザグスキャニングあるいは別のスキャニング順序を使用して、順序づけられる（スキャンされる）ことができ、一次元の順序づけられた係数ベクトル(one-dimensional ordered coefficient vector)を結果としてもたらす。ジグザグスキャニングのようなスキャニングは、ブロックによって定義される二次元パターンとは対照的に、一次元のシリーズの係数(one-dimensional series of coefficients)を生成するという点から、シリアル化とも呼ばれる。４ｘ４ブロックのためのジグザグスキャンの例が図３にある。ジグザグスキャニングは、二次元（２Ｄ）変換を適用した後で、ほとんどのエネルギー（すなわち、より高い値の係数）を有する変換係数は低周波数変換関数に対応し、図３で図示されるようなブロックの左上のほうに配置されているということを一般的に、推定する。したがって、ジグザグスキャニングを通じて生成された係数ベクトルでは、より高い大きさの係数は、一次元の順序づけられた係数ベクトルの開始のほうにおそらく最も現われる。量子化の後、低いエネルギー係数のほとんどは、０に等しくてもよい。
【００５７】
ＣＡＢＡＣは、Ｈ．２６４／ＡＶＣで使用される変換係数をコード化する１つの方法である。図２のＣＡＢＡＣエンコーディングユニット４６は、そのようなコード化を実行することができる。一般に、ＣＡＢＡＣを使用して、いずれのデータシンボルをコード化することは、次のステージである、２値化、コンテキストモデル選択、算術符号化及び確率アップデート、を含むことができる。２値化の場合、ＣＡＢＡＣユニット４６は、算術符号化の前に、いずれのノンバイナリ値シンボルをバイナリコードに変換する。コンテキストモデル選択では、ＣＡＢＡＣユニット４６は、例えば最近コード化されたデータシンボルと関連づけられた統計に依存して、利用可能なモデルの選択からコンテキストモデルを選ぶ。「コンテキストモデル(context model)」は、２値化されたシンボルの１つまたは複数のビンのための確率モデルである。このモデルは、最近コード化されたデータシンボルの統計に依存して、利用可能なモデルの選択から選択されることができる。コンテキストモデルは、「１」あるいは「０」である各ビンの確率を保存する。
【００５８】
算術符号化の場合、ＣＡＢＡＣユニット４６は、その選択された確率モデルにしたがって各ビンをエンコードする（コンテキストモデルとも呼ばれる）。その選択された確率モデルは、実際のコード化された値に基づいて、アップデートされる（確率アップデート）（例、ビン値が「１」であった場合、周波数カウント「１」が増加される）。ＣＡＢＡＣにおける確率推定は、有限状態機械(finite state machine)（ＦＳＭ）を使用して、テーブル駆動推定器(table-driven estimator)に基づいていてもよい。この場合では、ＣＡＢＡＣにおける各確率モデルは、関連づけられた確率値ｐを備えた１２８の異なる状態から１つを取り出すことが出来る。確率アップデートは、２つのバイナリ決定「０」あるいは「１」の発生確率の低いものである(the least probable)、「劣勢シンボル(Least Probable Symbol)」について６４の個別確率状態間の遷移プロセスによって実行されることができる。コンテキストモデル選択、算術エンコーディング、及び確率アップデートは、２値化されたシンボルの各ビット(あるいは「ビン」)について繰り返されることができる。
【００５９】
ＣＡＢＡＣユニット４６によってＣＡＢＡＣを使用する変換係数は、いわゆる有意マップ(significance map)のコード化と非ゼロ係数のコード化を含む。ブロックが非ゼロ係数を有する場合には、バイナリ値の有意マップ(a binary-valued significance map)がエンコードされる。スキャニング順序における各係数については、1ビットのシンボルｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送信される。ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇシンボルが1である場合、すなわち非ゼロ係数がそれぞれのスキャン位置に存在する場合、さらなる1ビットシンボルｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが送られる。このｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇシンボルは、現在の非ゼロ係数がブロック内の最後の非ゼロである場合（ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ＝１）、あるいは、さらに非ゼロ係数が続く場合（ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ＝０）、を示す。
【００６０】
有意マップをエンコードするために、最大１５の異なる確率モデルまでが、ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの両方に使用されることができる。モデルの選択、したがって対応するコンテキストインデクスは、スキャニング位置に依存してもよい。非ゼロレベルｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ １＝｜ｌｉｊ｜−１をエンコードするために、１０のコンテキストが使用されてもよく、コンテキストのうちの５つはバイナリ表示の第１ビットをコード化するためのものであり、他の５つは、第２番目ビットから第１４番目ビットまでをコード化することを対象としている。コンテキストは、ＣＡＢＡＣユニット４６によって、以下のように選択されることができる。
【００６１】
１．パラメータＮｕｍＬｇ１とパラメータＮｕｍＥｑ１は、それぞれ、１よりも大きい、そして、１に等しい、ブロックにおいて、今のところ、エンコードされる係数の数に、等しく設定される。非ゼロレベルがエンコードされ、したがって、パラメータＮｕｍＬｇ１とパラメータＮｕｍＥｑ１は、逆スキャン順序でアップデートされ、すなわち、高い周波数変換関数に対応する係数は最初にエンコードされる。
【００６２】
２．２値化されたシンボルの第１ビットについてのコンテキストは、
【数９】
2011509642.tif 000011
【００６３】
によって決定されることができる。
【００６４】
３．２値化されたシンボルの第２番目ビットから第１４番目ビットまでのコンテキストは、Ｃｔｘ２＝ｍｉｎ（４，ＮｕｍＬｇ１）によって選択されることができる。
【００６５】
ＣＡＢＡＣユニット４６はまた、固定された配信(fixed distribution)で、バイパスモードをサポートしてもよい。ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ １のバイナリ表示における他のビットは、バイパスモードを通じてパスすることができる。最終的に、非ゼロ係数のサイン(signs)は、各非ゼロ係数についての１ビットを使用して送信されることができ、例えば、１は正を示し、０は負を示す（あるいは、その逆であってもよい）。
【００６６】
各Ｎ×Ｎビデオブロックについて、その変換係数をｃｉｊだとすると、予測エラーＥ（ｘ，ｙ）と予測エラーの再構築バージョン
【数１０】
2011509642.tif 000012
【００６７】
との間の平均二乗誤差（ＭＳＥ）歪みＤが、係数をコード化するためのレートＲにおける制約を仮定して最小化されるような、対応する量子化係数ｌｉｊを見つけることが望ましい。言い換えると、目的は下記の式を最小化することである。
【数１１】
2011509642.tif 000013
【００６８】
他の追加歪みメトリクスは、ＭＳＥの代わりに、例えばアクティビティ重み付けられたＭＳＥ(activity-weighted MSE)、使用されることができる。上記の式を最小するレート制約問題は、ラグランジュ乗算子
【数１２】
2011509642.tif 000014
【００６９】
の使用を通じてレート及び歪みを「合併すること(merging)」によって、均等の制約されていない問題に変換されることによって解決されることができる。この場合では、制約されていない問題が係数レベルの決定（固定
【数１３】
2011509642.tif 000015
【００７０】
について）となり、そしてそれは、下記のように定義された最小合計ラグランジュコストをもたらす。
【数１４】
2011509642.tif 000016
【００７１】
Ｈ．２６４の場合では、与えられたブロックについての、二乗の再構築エラー
【数１５】
2011509642.tif 000017
【００７２】
は、二乗量子化エラー
【数１６】
2011509642.tif 000018
【００７３】
と比例する。レートＲは、量子化係数ｌｉｊをコード化するために必要とされたビットの数である。
【００７４】
下記で説明された、提案されたアルゴリズムは、合計ラグランジュコスト関数
【数１７】
2011509642.tif 000019
【００７５】
の値がその最小に近い、量子化係数値ｌｉｊを見つける。
【００７６】
ＭＰＥＧ−４ ＡＶＣで使用される変換が直交であるので、ラグランジュコスト
【数１８】
2011509642.tif 000020
【００７７】
は次のように計算されることができる:
【数１９】
2011509642.tif 000021
【００７８】
この場合、
【数２０】
2011509642.tif 000022
【００７９】
は、レベルｌｉｊに量子化されるときの、係数ｃｉｊについてのラグランジュコストである。言いかえれば、以下となる。
【数２１】
2011509642.tif 000023
【００８０】
量子化エラーｅｒｒ（ｃｉｊ，ｌｉｊ）は、（ｒｉｊ−ｃｉｊ）２と比例しており、
【数２２】
2011509642.tif 000024
【００８１】
である。
【００８２】
この場合も先と同様に、ＱＰは、量子化パラメータを表わしており、％は、モジュラー分割を表わす。Ｎ（ＱＰ％６、ｉ、ｊ）は、正規化マトリクスを表わす。エンコーディング品質は、ＱＰが小さくなると、一般的には増加する。すなわち、ＱＰのより小さな値は、より少ない量子化に一般的に対応しており、したがって、より高い品質エンコーディング(higher quality encoding)である。あるいは、ＱＰがこのような方法で定義される場合、エンコーディング品質はＱＰが小さくなると減少する可能性がある(could decrease)。
【００８３】
量子化及び逆量子化マトリックスＱ及びＲの場合では、正規化マトリックスＮ（ＱＰ％６、ｉ、ｊ）の値は、ｉ及びｊによって指定されるロケーションと値ＱＰ％６＝０，１，…，５にのみ依存することができる。値ｌｉｊをコード化するのに必要とされるビットの数（「ビット（ｌｉｊ）」）は、例えばＩＴＵ Ｈ．２６４について定義されるように、ＣＡＢＡＣの部分を使用して、ｌｉｊをエンコードすることによって計算されることができる。しかしながら、ＣＡＢＡＣステップをすべて実行することよりも、ＲＤ量子化ユニット４０は、量子化のために、ＣＡＢＡＣの最初の２ステップのみを実行することができる。これらの最初の２ステップは、２値化とコンテキストモデル選択を含む。その後、算術コーダを起動してバイナリ算術符号化を実行する代わりに、ＲＤ量子化ユニット４０は、各ビンをコード化するのに必要とされるビットの数を推定できる。与えられたビンについて選択されたコンテキストが有限状態機械における状態ｍに対応するということを想定して、与えられたビンをコード化するのに必要とされる、推定された数のビットは、状態ｍに割当てられた確率ｐのエントロピー(entropy)として表されることができる。それは、ＲＤ量子化ユニット４０が、マクロブロックごとに一度、各ビンについてのコンテキストを決定するのに、十分でありうる。
【００８４】
各係数ｃｉｊについて、レベル｜ｌｉｊ｜の最大３つの可能性ある値、０、
【数２３】
2011509642.tif 000025
【００８５】
がテストされることができる。単独パスの例に関しては、この２パスアプローチでは、４×４ブロック値
【数２４】
2011509642.tif 000026
【００８６】
が下記のように計算されることができる。
【数２５】
2011509642.tif 000027
【００８７】
与えられたブロックにおける係数は、ジグザグスキャニングを使用して順序づけられる（スキャニングされる）ということを想定することができ、そしてそれは、一次元の順序づけられた係数ベクトルを結果としてもたらす。順序づけられた係数は、ｃｉと示されることができ、ここでは、ｉ＝０，…，Ｍであり、例えば、Ｍは、４ｘ４ブロックについては１５に、８ｘ８ブロックについては６３に、等しい。
【００８８】
本開示にしたがって、ＲＤ量子化ユニット４０は、下記のように、量子化係数／レベルｌｉを生成することができる。
【００８９】
１．ラグランジュコスト
【数２６】
2011509642.tif 000028
【００９０】
を計算し、ｋ＝Ｍ，Ｍ−１，…，０である係数ｃｋがブロックにおける最後の非ゼロ係数である、すなわちスキャニングポジションｋについてのｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇが１に等しい、と仮定して、量子化係数ｌｋのベクトルを生成する。
【００９１】
ａ．ｉ＝ｋ−１，…，０である各係数cｉについては、量子化値が予め選択されたセットの値、例えば０、lｆｌｏｏｒ、及びｌｃｅｉｌに等しいとき、そのラグランジュコスト
【数２７】
2011509642.tif 000029
【００９２】
を計算する。
【００９３】
２．
【数２８】
2011509642.tif 000030
【００９４】
が最小化される、値ｌｉを選び、その選択された値ｌｉに対応する
【数２９】
2011509642.tif 000031
【００９５】
を使用してラグランジュコスト
【数３０】
2011509642.tif 000032
【００９６】
をアップデートする。
【００９７】
ＲＤ量子化ユニット４０によって実行された量子化技術の速度(speed)は、以下のように増加されることができる。
【００９８】
１．係数cｉが、ｌｃｅｉｌよりもｌｆｌｏｏｒに近い場合には（例えばｌfloatとｌｆｌｏｏｒまたはｌｃｅｉｌとの間の絶対距離によって測定される）、値ｌfloorのみが上記ステップ１．aで考慮されうる。
【００９９】
２．係数ckが、ｌｃｅｉｌよりもｌｆｌｏｏｒに近く、ｌｆｌｏｏｒが０に等しい場合には、係数ckは、最後の非ゼロ係数であることはできない。したがって、この場合では、ラグランジュコスト
【数３１】
2011509642.tif 000033
【０１００】
の計算は、この値ｋについてスキップされうる。
【０１０１】
３．
【数３２】
2011509642.tif 000034
【０１０２】
の計算は、ｋを減らしながら
【数３３】
2011509642.tif 000035
【０１０３】
が増加しはじめるとき、終了されることができる。
【０１０４】
要約すると、ＲＤ量子化ユニット４０は、ＣＡＢＡＣをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化することができる。ＲＤ量子化ユニット４０は、ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数の特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている；最低コストと関連づけられた量子化係数のセットのうちの所定の１つを選択し；ＣＡＢＡＣエンコーディングユニットに対して、量子化係数のセットのうちの所定の１つを出力することができる。その後で、ＣＡＢＡＣエンコーディングユニット４６は、量子化係数のセットのうちの所定の１つをビットストリームへとエントロピーコード化するために、量子化係数のセットのうちの所定の１つに関してＣＡＢＡＣを実行し、ビットストリームを出力する。
【０１０５】
量子化ユニット４０は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算することにより、コストを推定することができる。量子化係数のセットのうちの選択されたものと関連づけられた特定コストは、複数のコストと関連づけられた最低数のビットを定義する。量子化ユニット４０は、最低数のビットを示す値を保存してもよく、そしてそれは特定コストと関連づけられる。
【０１０６】
ラグランジュコスト関数は、量子化係数のセットにおいて量子化係数のそれぞれと関連づけられた、個々の係数ラグランジュコストのセット(sets of individual coefficient Lagrangian costs)を定義することができる。量子化ユニット４０は、０、フロア値(floor value)、シーリング値(ceiling value)に等しい量子化係数の値について、量子化係数のセットにおいて量子化係数と関連づけられた個々の係数ラグランジュコストのセットを計算する。これらの値の例は上記で説明されている。一般的に、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値(an absolute value of an individual one of the coefficients of the video block)と、量子化パラメータと、量子化マトリクスと、に基づいており、シーリング値は、フロア値に１足したものを備えている。
【０１０７】
この量子化プロセスを加速するために、量子化ユニット４０は、上記で言及されたもののような加速技術をインプリメントすることができる。例えば、量子化係数のうちの個々のものについては、量子化係数のうちの個々のものが、シーリング値よりもフロア値に近い場合には、量子化ユニット４０は、シーリング値に等しい値について、量子化係数のうちの個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすることができる。
【０１０８】
また、量子化係数のセットのうちの１つについてのビデオブロックの最後の非ゼロ係数に対応するビデオブロックの係数のうちの特定のものが、シーリング値よりもフロア値に近い値を定義する場合、そして、フロア値がゼロに等しい場合、ＲＤ量子化ユニット４０は、量子化係数のセットのうちのその１つについてのビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすることができる。さらに、ＲＤ量子化ユニット４０は、ビデオブロックの係数の値を減らしながら、セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、セットのうちの特定のものと関連づけられた複数のコストを推定することを終了することができる。これらあるいは他の技術は、エンコードされたビデオにおける品質を下げることなく、量子化プロセスを加速するために使用されることができる。
【０１０９】
図４は、ビデオデコーダ６０の一例を図示しているブロック図であり、そしてそれは、ここで説明された方法でエンコードされるビデオシーケンスをデコードする。ビデオデコーダ６０は、図３のＣＡＢＡＣユニット４６によって実行されるエンコーディングの相互デコーディング機能を実行するＣＡＢＡＣデコーディングユニット５２を含む。
【０１１０】
ビデオデコーダ６０は、ビデオフレーム内で、イントラ及びインターデコーディングを実行することができる。図４の例では、ビデオデコーダ６０は、ＣＡＢＡＣデコーディングユニット５２（上記で言及されている）、動き補償ユニット５４、逆量子化ユニット５６、逆変換ユニット５８、及び参照フレームストア６２を含む。ビデオデコーダ６０はまた、加算器６４を含む。オプションとして、ビデオデコーダ６０はまた、加算器６４の出力をフィルタにかける、デブロッキングフィルタ（図示されず）を含むことができる。図４は、ビデオブロックのインターデコーディングのためのビデオデコーダ６０の一時的な予測コンポーネントを図示する。図４で図示されていないが、ビデオデコーダ６０はまた、いくつかのビデオブロックのイントラデコーディングのための空間予測コンポーネントを含むことができる。
【０１１１】
ＣＡＢＡＣデコーディングユニット５２によって実行されるＣＡＢＡＣデコーディングにしたがって、動き補償ユニット５４は、参照フレームストア６２から、１つまたは複数の再構築された参照フレームと動きベクトルを受信する。逆量子化ユニット５６は、量子化されたブロック係数を、逆量子化する(inverse quantizes)、すなわち非量子化する(de-quantizes)。逆量子化プロセスは、Ｈ．２６４デコーディングによって定義されるような従来プロセスであってもよい。逆変換ユニット５８は、ピクセルドメインにおける残差ブロックを生成するために、変換係数に対して、逆変換、例えば逆ＤＣＴあるいは概念的に同様な逆変換プロセス、を適用する。動き補償ユニット５４は、デコードされたブロックを形成するために残差ブロックで加算器６４によって加算される、動き補償されたブロックを生成する。望まれる場合には、ブロックデブロッキングフィルタ(deblocking filter)はまた、ブロックノイズ副作用(blockiness artifacts)を取り除くために、デコードされたブロックをフィルタにかけるために適用されることができる。フィルタにかけられたブロックは、参照フレームストア６２に位置しており、そしてそれは、動き補償から参照ブロックを提供し、そして、駆動ディスプレイデバイス（例えば、図１のデバイス２８）に対してデコードされたビデオを生成する。
【０１１２】
図５は、ビデオエンコーダ５０によって実行された１パス技術を図示するフロー図である。示されているように、レート歪み（ＲＤ）量子化ユニット４０は、非ゼロ係数想定に基づいて、量子化係数のセットを生成する（１０１）。具体的に、ＲＤ量子化ユニット４０は、与えられた係数が最後の非ゼロ係数であるということを想定し、この想定に基づいて、ビデオブロックについてのセットの係数を計算する。ＲＤ量子化ユニット４０は、別の係数が最後の非ゼロ係数ということを次に想定し、この想定に基づいて、ビデオブロックについての別のセットの係数、等を生成する。
【０１１３】
量子化係数のセットのそれぞれについては、量子化ユニットは、ラグランジュコスト関数に基づいてコストを推定する（１０２）。具体的には、各セットについては、ＲＤ量子化ユニット４０は、複数の可能ある値(a plurality of possible values)、例えば０、フロア値、及びシーリング値で、各係数についての個々のラグランジュコスト関数を決定する。フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクス（あるいはそのパラメータ）と、に基づいており、シーリング値は、フロア値に１足したものを備えている。
【０１１４】
ＲＤ量子化ユニット４０は、最低の全体的なラグランジュコストを有する、量子化係数のセットを選択する（１０３）。具体的には、ＲＤ量子化ユニット４０は、セットのための各係数についての最低の個々のラグランジュコストを加算し、各可能性のあるセットについてこのプロセスを繰り返す。また、ラグランジュコストは、レート及び歪みのコストのバランスを取る。ＲＤ量子化ユニット４０は、全体的な最低ラグランジュ関数を有するセットを選択し（１０３）、ＲＤ量子化ユニット４０は、ＣＡＢＡＣエンコーディングユニット４６に対して量子化係数のうちの選択されたセットを出力する（１０４）。ＣＡＢＡＣエンコーディングユニット４６は、コード化されたビットストリームを生成するために、量子化係数のうちの選択されたセットと、いずれの他のシンタックスパラメータに基づいてＣＡＢＡＣを実行し（１０５）、コード化されたビットストリームを出力する（１０６）。
【０１１５】
図６は、より詳細に、コストを推定するプロセスの例を図示している別のフロー図である。具体的には、量子化ユニット４０は、０、フロア値、及びシーリング値の値について、各係数についての個々のラグラジアンコスト関数を計算する。また、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクス（あるいは、マトリクスからマッピングされたパラメータ）と、に基づいており、シーリング値は、フロア値に１足したものを備えている。
【０１１６】
上記で示されるように、どのようにＲＤ量子化ユニット４０が４×４ブロックの係数ｃijについて、フロア値（ｌｆｌｏｏｒ）とシーリング値（ｌｃｅｉｌ）を計算することができるかという例は下記の通りである。
【数３４】
2011509642.tif 000036
【０１１７】
再び、オペレーションフロア（Ｉｆｌｏａｔ）は、Ｉｆｌｏａｔと関連づけられた最低値を表わし、ＱＰは、量子化パラメータを表わし、また、Ｑは、Ｈ．２６４／ＡＶＣについて定義された量子化マトリックスのような量子化マトリックスを表わす。値ＱＰ％６、値ｉ、及び値ｊは、マトリックスＱからのパラメータを定義するために使用されることができる。関数％はモジュラー分割を表わす。
【０１１８】
ＲＤ量子化ユニット４０は、各係数についての最低コストの個々の係数ラグランジュコスト関数を選択し（１１１）、その選択された個々の係数ラグランジュコストを加算することによって、セットについての全体ラグランジュコストを決定する（１１２）。ＲＤ量子化ユニット４０は、考慮する量子化係数の別のセットがある場合には、このプロセスのステップを繰り返す（１１０−１１２）。具体的には、与えられた係数が最後の非ゼロ係数であるという仮定によって定義される各セットの係数については、量子化ユニット４０は、このプロセスのステップを繰り返す（１１０−１１２）。いったん全体ラグランジュコストが、量子化係数の各可能性のあるセット（最後の非ゼロ係数想定によって定義される）について決定されると、ＲＤ量子化ユニット４０は、最低の全体ラグランジュコストを有する量子化係数のセットを選択する（１１４）。
【０１１９】
図７−９は、量子化係数における品質を実質的に犠牲することなく、量子化プロセスを加速するために使用されることができるオプションの技術を図示する。図７−９の技術は、個々に、あるいは、共同で(collectively)、使用されることができる。図７−９の技術は、１パス量子化プロセスに対して最も適用可能であるが、これらの技術のいくつか（特に図７の技術）はまた、下記でさらに詳細に取り組まれる２パス量子化において有用でありうる。図７で示されているように、個々の量子化係数がシーリングよりもフロアに近い場合（１２１のｙｅｓ分岐）、量子化ユニット４０は、シーリング値で個々の量子化係数と関連づけられた個々の係数ラグランジュコストの計算をスキップすることができる。この場合では、ＲＤ量子化ユニット４０は、個々の量子化係数と関連づけられた個々の係数ラグランジュコストは０あるいはフロア値のいずれかで最小化されるということが想定することができる。したがって、この場合、ＲＤ量子化ユニット４０は、シーリング値で、個々の量子化係数と関連づけられたラグランジュコストの計算と関連づけられた不必要な計算を回避することができる。しかし、個々の量子化係数が、シーリングよりもフロアに近くない場合（１２１のｎｏ分岐）、計算はスキップされない（１２３）。
【０１２０】
図８の技術では、ＲＤ量子化ユニット４０は、フロア値がゼロに等しいかどうか（１３１）、そして、最後の非ゼロ係数に対応する特定の係数がシーリングよりもフロアに近いかどうか（１３２）を決定する。これらの不測自体の双方が真実である場合には（１３１のｙｅｓ分岐と１３２のｙｅｓ分岐）、ＲＤ量子化ユニット４０は、その特定の最後の非ゼロ係数と関連づけられた量子化係数のうちの特定セットについてビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすることができる（１３３）。この場合では、ＲＤ量子化ユニット４０は、量子化係数のその特定セットについての全体ラグランジュコストは、最小を備えず、値が十分にコンピュートされたとしても選択されないということを想定することができる。したがって、特定コストのコンピューテーションは、この場合では、スキップされてもよい。しかしながら、これらの不測事態のいずれかが誤りの場合（１３１のｎｏ分岐あるいは１３２のｎｏ分岐）、そのときには、ＲＤ量子化ユニット４０は、特定コストの推定をスキップしない。図８の技術は、いくつかの不必要なコンピューテーションを回避するＲＤ量子化ユニット４０のための別の方法である。
【０１２１】
図９の技術では、ＲＤ量子化ユニット４０は、特定コストを定義する加算をモニタしており、すなわち、与えられたセットの係数と関連づけられた全体ラグランジュコストを定義するために量子化係数のそれぞれについて個々のラグランジュコストの加算をモニタする。ビデオブロックの係数の値を減らしながら、特定コストのうちの１つを定義する加算が増加しはじめる場合（１４１のｙｅｓ分岐）、ＲＤ量子化ユニット４０は、そのセットについての複数のコストの推定を終了する。この場合では、ＲＤ量子化ユニット４０は、係数のちの与えられたセットと関連づけられた全体ラグランジュコストが全体的な最小でないということを想定することができる。したがって、ステップ１４１の不測事態が識別されるとき、コンピューテーションは回避されることができる（１４１のｙｅｓ分岐）。ビデオブロックの係数の値を減らしながら、加算が増加しないとき（１４１のｎｏ分岐）、コンピューテーションは終了されない（１４３）。
【０１２２】
上記で記載されているように、本開示はまた２パスアプローチを企図する。２パスアプローチでは、本開示の技術は、第１パスにおいてビデオブロックの最後の非ゼロ係数を推定することと、そのあとで、推定された最後の非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、第２パスにおいてビデオブロックについての量子化係数のセットを生成することと、を含むことができる。別個の推定パスは、最後の非ゼロ係数として正しい係数を有さない量子化係数のセットと関連づけられたコンピューテーションを実行する必要を除去することができる。本開示にしたがって、ＲＤ量子化ユニット４０は、下記でさらに詳細アウトラインされるように、この２パスアプローチにしたがって、量子化係数を生成することができる。
【０１２３】
単独パスアプローチ同様に、下記で説明される、提案された２パスアルゴリズムは、合計ラグランジュコスト関数
【数３５】
2011509642.tif 000037
【０１２４】
の値がその最小値に近い、量子化係数値lijを見つける。２パスアプローチは、網羅的なサーチに基づいて合計ラグランジュコスト関数
【数３６】
2011509642.tif 000038
【０１２５】
を最小化する方法よりも、より少ない複雑さによって特徴づけられることができる。
【０１２６】
各係数cijについては、レベル｜lij｜の最大３つの可能性ある値、０、
【数３７】
2011509642.tif 000039
【０１２７】
がテストされることができる。単独パスの例に関しては、この２パスアプローチにおいて、４×４ブロック値
【数３８】
2011509642.tif 000040
【０１２８】
は、下記のように計算されることができる。
【数３９】
2011509642.tif 000041
【数４０】
2011509642.tif 000042
【０１２９】
ｃijがレベル１よりもレベル０に近い場合には、さらなる分析なしにレベル０を割当てられうる。別の方法に置き換えると、図７の技術は、２パスアプローチの第２パスの間に適用されることができる。
【０１３０】
与えられたブックにおける係数はジグザグスキャニング（例、図３に示されるように）を使用して順序づけられる（スキャニングされる）ということを想定することができ、一次元の順序づけられた係数ベクトルを結果としてもたらす。順序づけられた係数は、ｃiとして示されることができ、ここでは、ｉ＝０，．．．，Ｍであり、例えば、Ｍは、４ｘ４ブロックについては１５に、８ｘ８ブロックについては６３に、等しい。
【０１３１】
ＲＤ量子化ユニット４０は、サインビットに加えて値ｌiをコード化するように必要とされるビットを計算するために、下記のシンボルを使用することができる。
【０１３２】
ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ（係数が非ゼロかどうかを示す）、ｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇ（最後の非ゼロ係数を識別する）、ｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１（係数の絶対値−１を表す）。
【０１３３】
ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇとｌａｓｔ＿ｓｉｇｎｉｆｉｃａｎｔ＿ｃｏｅｆｆ＿ｆｌａｇの場合では、コンテキスト、すなわち、シンボルをコード化するために必要とされるビットは、スキャニングポジションｉ上でのみ従属することができる。しかしながら、ビンについてのコンテキストｃｏｅｆｆ＿ａｂｓ＿ｌｅｖｅｌ＿ｍｉｎｕｓ１（第１ビン、ｇｒｅａｔｅｒ＿ｔｈａｎ＿１ ｓｙｍｂｏｌを含んでいる）は、逆の順序でスキャンされた他の非ゼロレベルの値に依存する。言い換えると、ｌiについてのコンテキストは、インデクスｊを備えた量子化係数の値に依存し、ここでは、j＞iである。
【０１３４】
したがって、ＲＤ量子化ユニット４０は、２つの個別のパスでの量子化された係数／レベルを得ることができる。第１のパスでは、ＲＤ量子化ユニット４０は、どの係数が最後の非ゼロ係数であるべきかを推定することができる。この推定された最後の非ゼロ係数はckと表わされることができる。第２のパスでは、ＲＤ量子化ユニット４０は、係数ckは実際ブロックにおける最後の非ゼロ係数であるということを想定して、量子化係数の最後の値を決定し、生成することができる。
【０１３５】
インプリメンテーションでは、係数
【数４１】
2011509642.tif 000043
【０１３６】
のみが、ＲＤ量子化ユニット４０によって第１のパスにおいて考慮されうる。
【数４２】
2011509642.tif 000044
【０１３７】
さらに、複雑さを減らすために、Ｊｓｕｍの値は、係数ｃｉ，ｉ＝ｉ０，…，ｉ１，が下記のようにｌｉ＝０に量子化されるとき、量子化エラーerr(ｃｉ，ｌｉ)の合計として予め計算されることができる。
【数４３】
2011509642.tif 000045
【０１３８】
ＲＤ量子化ユニット４０は、第１パスにおける下記のステップのうちのいくつかあるいはすべてを実行することができ、そしてそれは、ビデオブロックの最後の非ゼロ係数を推定するために使用される。
【数４４】
2011509642.tif 000046
【０１３９】
2011509642.tif 000047
【０１４０】
最小の対応値
【数４５】
2011509642.tif 000048
【０１４１】
を備えた係数ckは、ブロックにおける最後の非ゼロ係数であるように推定される。
【０１４２】
上記のステップでは、ＲＤ量子化ユニット４０は、各可能性のある最後の非ゼロ係数について各可能性のあるシナリオを明示的に考慮することなく、ビデオブロックの最後の非ゼロ係数を推定する。この場合では、ＲＤ量子化ユニット４０は、ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられたコストを近似することにより、最後の非ゼロ係数を推定する。近似されたコストのうちの異なるものは、最後の非ゼロ係数である異なる係数に対応する。最終の推定された最後の非ゼロ係数は、最小近似化されたコスト(lowest approximated cost)を定義する。ステップ１は、特別の場合を考慮されうるが、ステップ２は、ほとんどの係数に関して実行されることができる。
【０１４３】
上記のステップでは、ＲＤ量子化ユニット４０は、最後の非ゼロ係数であるビデオブロックの係数のそれぞれを連続的に考慮することにより、連続的な方法で近似されたコストのうちの異なるものを定義する。それをすることにより、ビデオブロックの係数のそれぞれを最後の非ゼロ係数であると考慮されるとき、ＲＤ量子化ユニット４０は、蓄積されたコストをアップワード及びダウンワードで調節する。具体的には、上記ステップ２（ａ）は、蓄積されたコストを縮小させることができ、なお、Ｊｓｕｍは、Ｊｓｕｍ＝Ｊｓｕｍ−ｅｒｒ（Ｃｊ，０）としてアップデートされる。この場合では、ステップ２（ａ）は、Ｊｓｕｍを小さくさせる。他方で、ステップ２（ｃ）及び２（ｄ）は、蓄積されたコストを大きくさせ、なお、ここでは、値Ｊｓｕｍは、
【数４６】
2011509642.tif 000049
【０１４４】
アップデートされる。したがって、量子化ユニット４０は、最後の非ゼロ係数であるビデオブロックの係数のそれぞれを連続的に考慮することによって、連続的な方法で近似されたコストのうちの異なるものを定義し、それをすることにおいて、アップワード調整とダウンワード調整で、全体コストを蓄積する。このように、ＲＤ量子化ユニット４０は、各可能性ある最後の非ゼロ係数についての各すべてのシナリオを明示的に考慮することなくビデオブロックの最後の非ゼロ係数を推定する。
【０１４５】
いったんＲＤ量子化ユニット４０が最後の非ゼロ係数を推定すると、ＲＤ量子化ユニット４０は、推定された最後の非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、ビデオブロックについての量子化係数のセットを生成する第２のパスを実行することができる。具体的には、第２パスでは、ＲＤ量子化ユニット４０は、第１パスで選択された係数ckは、実際ビデオブロックにおける最後の非ゼロ係数であるということを想定して、各量子化係数についての最終値を決定する。この場合では、i=k,…,0である各係数ｃiについては、ＲＤ量子化ユニット４０は、ラグランジュコスト
【数４７】
2011509642.tif 000050
【０１４６】
が最小化されるレベルliの値を見つける。上記で説明されているように、レベルliの３つの異なる値は、例えば、
【数４８】
2011509642.tif 000051
【０１４７】
と考えられることができる。レベルliの値をエンコードするときに、コンテキストを計算するために、j=k,…,i+1であるレベルlｊについてすでに選択された値が使用されることができる。
【０１４８】
言い換えると、量子化係数のセットを生成することは、ゼロ、フロア値、及びシーリング値に等しい値を有するものとして、ビデオブロックについての量子化係数のセットにおいて各可能性のある非ゼロ量子化係数と関連づけられたラグランジュコストを計算すること、を備えることができる。さらに、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、シーリング値は、フロア値に１足したものを備えることができる。
【０１４９】
図１０は、上記でアウトライン化された２パスアプローチを使用することができるエンコーディング技術を図示するフロー図である。この場合には、ＲＤ量子化ユニット４０は、ビデオブロックの最後の非ゼロ係数を推定する（１５１）。上記で説明されているように、この推定ステップ（１５１）は、ＣＡＢＡＣを介してビデオブロックをコード化することと関連づけられたコストを近似することを含むことができ、近似されたコストのうちの異なるものは、最後の非ゼロ係数である異なる係数に対応することができる。この場合では、最終の推定された最後の非ゼロ係数は、最小近似コストを定義する。
【０１５０】
さらに、推定ステップ（１５１）の間に、ＲＤ量子化ユニット４０は、最後の非ゼロ係数であると、ビデオブロックの係数のそれぞれを連続的に考慮することにより、連続的な方法で近似されたコストのうちの異なるものを定義することができる。そうすることで、ＲＤ量子化ユニット４０は、最後の非ゼロ係数であると、ビデオブロックの係数のそれぞれを考慮するときに、蓄積されたコストをアップワード及びダウンワードで連続的に調節する。
【０１５１】
次に、ＲＤ量子化ユニット４０は、推定された最後の非ゼロ係数が実際に最後の非ゼロ係数であるという想定に基づいて、量子化係数のセットを生成する（１５２）。その生成ステップ（１５２）は、０、フロア値、及びシーリング値に等しい値を有するものとして、ビデオブロックについての量子化係数のセットにおける各可能性のある非ゼロ量子化係数と関連づけられたラグランジュコストを計算することを含むことができる。いったん、生成されると、ＲＤ量子化ユニット４０は、ＣＡＢＡＣユニット４６に対して量子化係数のセットを出力することができ、そしてそれは、生成された量子化係数のセットをビットストリームへとエントロピーコード化するために量子化係数のうちの生成されたセットに関してＣＡＢＡＣを実行する（１５３）。エンコードされたビットストリームは出力されることができ、恐らく変調され、別のデバイスに対して送信されることができる。
【０１５２】
本開示の技術は、無線ハンドセット、集積回路（ＩＣ）、あるいは、ＩＣｓのセット（すなわち、チップセット）を含んでいる、広範囲のデバイスあるいは装置において具現化されてもよい。いずれのコンポーネント、モジュール、あるいはユニットも、機能態様を強調するように提供して説明されており、異なるハードウェアユニット等による実現を必ずしも必要としていない。
【０１５３】
したがって、ここにおいて説明された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせ、でインプリメントされることができる。モジュールあるいはコンポーネントとして説明されたいずれの特徴も、集積論理デバイスで一緒に、あるいはディスクリートであるが相互運用論理デバイスとして別々に、インプリメントされることができる。ソフトウェアでインプリメントされる場合には、本技術は、実施されるときに、上記で説明される方法のうちの１つまたは複数を実行する命令を備えているコンピュータ可読媒体によって少なくとも部分的に実現されることができる。コンピュータ可読データ保存媒体(computer-readable data storage medium)は、パッケージング材料を含むことができる、コンピュータプログラムプロダクト(computer program product)の一部を形成することができる。コンピュータ可読媒体は、ランダムアクセスメモリ（ＲＡＭ）、例えば、シンクロナス動的ランダムアクセスメモリ（ＳＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電子的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、磁気あるいは光学のデータストレージメディア、及び同様なもの、を備えることができる。本技術は、追加的に、あるいは、代替的に、命令あるいはデータ構造の形態でコードを搬送するあるいは通信する、そして、コンピュータによってアクセスされ、読み取られ、及び／または実行されることができる、コンピュータ可読通信媒体(computer-readable communication medium)によって、少なくとも部分的に実現されることができる。
【０１５４】
コードは、１つまたは複数のプロセッサ、例えば１つまたは複数のデジタル信号プロセッサ（ＤＳＰｓ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣｓ）、フィールドプログラマブル論理アレイ（ＦＰＧＡｓ）、あるいは他の同等な一体化された(integrated)あるいはディスクリートの論理回路素子、によって実行されることができる。したがって、ここで使用される用語「プロセッサ(processor)」は、前述の構造のうちのいずれか、あるいは、ここに説明される技術のインプリメンテーションに適したいずれの他の構造を意味することができる。さらに、いくつかの態様では、ここに説明される機能は、エンコーディングおよびデコーディングのために構成された専用のソフトモジュールあるいはハードウェアモジュール内で提供されてもよく、あるいは、組み合わせされたビデオコーダ−デコーダ(a combined video encoder-decoder)（ＣＯＤＥＣ）に組み込まれてもよい。また、本技術は、１つまたは複数の回路あるいは論理エレメントにおいて十分にインプリメントされることができるであろう。
【０１５５】
本開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。
【図１】
2011509642.tif 000052
【図２】
2011509642.tif 000053
【図３】
2011509642.tif 000054
【図４】
2011509642.tif 000055
【図５】
2011509642.tif 000056
【図６】
2011509642.tif 000057
【図７】
2011509642.tif 000058
【図８】
2011509642.tif 000059
【図９】
2011509642.tif 000060
【図１０】
2011509642.tif 000061
【手続補正書】
【提出日】平成22年9月3日(2010.9.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化する方法であって、前記方法は、
前記ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいており、前記複数のコストを推定することは、レート歪みモデルと関連づけられた、ラグランジュコスト関数を計算することを備え、前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数のラグランジュコストのセットを定義する；
ゼロ値、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算することと；
前記コストのうちの最低のものと関連づけられた量子化係数の前記セットのうちの所定の１つを選択することと、なお、量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する；
備えている、
方法。
【請求項２】
量子化係数の前記セットのうちの前記所定の１つを出力することと、をさらに備えている請求項１に記載の方法。
【請求項３】
量子化係数の前記セットのうちの前記所定の１つを受信することと、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行することと、
前記ビットストリームを出力することと、
をさらに備えている請求項２に記載の方法。
【請求項４】
前記最低数のビットを示す値を保存すること、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項１に記載の方法。
【請求項５】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項１に記載の方法。
【請求項６】
前記量子化係数のうちの個々のものについて、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすること、
をさらに備えている請求項１に記載の方法。
【請求項７】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすること、
をさらに備えている請求項１に記載の方法。
【請求項８】
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了すること、をさらに備えている請求項１に記載の方法。
【請求項９】
実行のときに、コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスでビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体であって、前記命令は、前記デバイスに、
前記ビデオブロックのための量子化係数の複数のセットを生成させ、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものは前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいており、前記複数のコストを推定することにおいて、前記命令は、前記デバイスに、レート歪みモデルと関連づけられたラグランジュコスト関数を計算させ、前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する；
ゼロ値、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算させ；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択させる、なお、量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する；
コンピュータ可読媒体。
【請求項１０】
前記命令は、前記デバイスに、
量子化ユニットから、量子化係数の前記セットのうちの前記所定の１つを出力させる、
請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記命令は、前記デバイスに、
前記量子化ユニットから、量子化係数の前記セットのうちの所定の１つを受信させ、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行させ、
ＣＡＢＡＣユニットから前記ビットストリームを出力させる、
請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記命令は、前記デバイスに前記最低数のビットを示す値を保存させ、そしてそれは、前記特定コストと関連づけられている、請求項９に記載のコンピュータ可読媒体。
【請求項１３】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項９に記載のコンピュータ可読媒体。
【請求項１４】
前記量子化係数の個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合、前記命令は、前記デバイスに、前記シーリング値に近い値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップさせる、
請求項９に記載のコンピュータ可読媒体。
【請求項１５】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、前記命令は、前記デバイスに、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップさせる、
請求項９に記載のコンピュータ可読媒体。
【請求項１６】
前記命令は、前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記デバイスに、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了させる、請求項９に記載のコンピュータ可読媒体。
【請求項１７】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成された装置であって、前記装置は、
前記ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいており、前記複数のコストを推定することにおいて、前記量子化ユニットは、レート歪みモデルと関連づけられたラグランジュコスト関数を計算し、前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する；
ゼロ値、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算し；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択する、なお、量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する；
量子化ユニット、
を備えている、
装置。
【請求項１８】
前記量子化ユニットは、量子化係数の前記セットのうちの前記所定の１つを出力する、請求項１７に記載の装置。
【請求項１９】
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力する、
ＣＡＢＡＣユニット、
をさらに備えている請求項１８に記載の装置。
【請求項２０】
前記量子化ユニットは、前記最低数のビットを示す値を保存し、そしてそれは前記特定コストと関連づけられる、請求項１７に記載の装置。
【請求項２１】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項１７に記載の装置。
【請求項２２】
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記量子化ユニットは、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップする、請求項１７に記載の装置。
【請求項２３】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、前記量子化ユニットは、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップする、請求項１７に記載の装置。
【請求項２４】
前記量子化ユニットは、
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了する、請求項１７に記載の装置。 
【請求項２５】
前記装置は、１つまたは複数の回路、集積回路（ＩＣ）チップあるいはＩＣチップセットを備えている、請求項１７に記載の装置。
【請求項２６】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイスであって、前記デバイスは、
前記ビデオブロックのための量子化係数の複数のセットを生成するための手段と、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいており、前記複数のコストを推定するための手段は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算するための手段を備え、前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する；
ゼロ値、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算するための手段と；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択するための手段と、なお、量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する；
を備えている、
デバイス。
【請求項２７】
量子化係数の前記セットのうちの前記所定の１つを出力するための手段、をさらに備えている請求項２６に記載のデバイス。
【請求項２８】
量子化係数の前記セットのうちの前記所定の１つを受信するための手段と、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行するための手段と、
前記ビットストリームを出力するための手段と、
をさらに備えている請求項２７に記載のデバイス。
【請求項２９】
前記最低数のビットを示す値を保存するための手段、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項２６に記載のデバイス。
【請求項３０】
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、請求項２６に記載のデバイス。
【請求項３１】
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップするための手段、
をさらに備えている請求項２６に記載のデバイス。
【請求項３２】
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップするための手段、をさらに備えている請求項２６に記載のデバイス。
【請求項３３】
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了するための手段、をさらに備えている請求項２６に記載のデバイス。
【請求項３４】
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスであって、前記デバイスは、コーディングユニットと送信機とを備えており、前記コーディングユニットは、量子化ユニットとＣＡＢＡＣユニットとを備えており、前記量子化ユニットは、
前記ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいており、前記複数のコストを推定することにおいて、前記量子化ユニットは、レート歪みモデルと関連づけられたラグランジュコスト関数を計算し、前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する；
ゼロ値、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算し；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択し、なお、量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する；
量子化係数の前記セットのうちの前記所定の１つを出力し；
前記ＣＡＢＡＣユニットは、
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力し、
前記送信機は、前記ビットストリームを送信する、
デバイス。
【請求項３５】
前記デバイスは、無線通信デバイスを備える、請求項３４に記載のデバイス。
【請求項３６】
前記デバイスは、前記送信機が前記ビットストリームを送信する前に、前記ビットストリームを変調するモジュレータを含む、請求項３５に記載のデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１５５
【補正方法】変更
【補正の内容】
【０１５５】
本開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[１]
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化する方法であって、前記方法は、
前記ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
前記コストの最低のものと関連づけられた量子化係数の前記セットのうちの所定の１つを選択することと；
備えている、
方法。
[２]
量子化係数の前記セットのうちの前記所定の１つを出力することと、をさらに備えている[１]に記載の方法。
[３]
量子化係数の前記セットのうちの前記所定の１つを受信することと、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行することと、
前記ビットストリームを出力することと、
をさらに備えている[２]に記載の方法。
[４]
前記コストを推定することは、レート歪みモデルと関連づけられた、ラグランジュコスト関数を計算することを備えている、[１]に記載の方法。
[５]
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、[４]に記載の方法。
[６]
前記最低数のビットを示す値を保存すること、をさらに備え、そしてそれは、前記特定コストと関連づけられる、[５]に記載の方法。
[７]
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数のラグランジュコストのセットを定義する、[４]に記載の方法。
[８]
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算すること、をさらに備えている[７]に記載の方法。
[９]
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、[８]に記載の方法。
[１０]
前記量子化係数のうちの個々のものについて、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすること、
をさらに備えている[８]に記載の方法。
[１１]
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすること、
をさらに備えている[８]に記載の方法。
[１２]
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了すること、をさらに備えている[８]に記載の方法。
[１３]
実行のときに、コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスでビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体であって、前記命令は、前記デバイスに、
前記ビデオブロックのための量子化係数の複数のセットを生成させ、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものは前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択させる；
コンピュータ可読媒体。
[１４]
前記命令は、前記デバイスに、
量子化ユニットから、量子化係数の前記セットのうちの前記所定の１つを出力させる、
[１３]に記載のコンピュータ可読媒体。
[１５]
前記命令は、前記デバイスに、
前記量子化ユニットから、量子化係数の前記セットのうちの所定の１つを受信させ、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行させ、
ＣＡＢＡＣユニットから前記ビットストリームを出力させる、
[１４]に記載のコンピュータ可読媒体。
[１６]
前記命令は、前記デバイスに、レート歪みモデルと関連づけられたラグランジュコスト関数を計算させる、[１３]に記載のコンピュータ可読媒体。
[１７]
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、[１６]に記載のコンピュータ可読媒体。
[１８]
前記命令は、前記デバイスに前記最低数のビットを示す値を保存させ、そしてそれは、前記特定コストと関連づけられている、[１７]に記載のコンピュータ可読媒体。
[１９]
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、[１６]に記載のコンピュータ可読媒体。
[２０]
前記命令は、前記デバイスに、
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算させる、
[１９]に記載のコンピュータ可読媒体。
[２１]
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、[２０]に記載のコンピュータ可読媒体。
[２２]
前記量子化係数の個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合、前記命令は、前記デバイスに、前記シーリング値に近い値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップさせる、
[２０]に記載のコンピュータ可読媒体。
[２３]
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、前記命令は、前記デバイスに、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップさせる、
[２０]に記載のコンピュータ可読媒体。
[２４]
前記命令は、前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記デバイスに、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了させる、[２０]に記載のコンピュータ可読媒体。
[２５]
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成された装置であって、前記装置は、
前記ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択する；
量子化ユニット、
を備えている、
装置。
[２６]
前記量子化ユニットは、量子化係数の前記セットのうちの前記所定の１つを出力する、[２５]に記載の装置。
[２７]
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力する、
ＣＡＢＡＣユニット、
をさらに備えている[２６]に記載の装置。
[２８]
前記コストを推定することは、レート歪みモデルと関連づけられたラグランジュコスト関数を計算することを備える、[２５]に記載の装置。
[２９]
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、[２８]に記載の装置。
[３０]
前記量子化ユニットは、前記最低数のビットを示す値を保存し、そしてそれは前記特定コストと関連づけられる、[２９]に記載の装置。
[３１]
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、[２８]に記載の装置。
[３２]
前記量子化ユニットは、
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算する、
[３１]に記載の装置。
[３３]
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、[３２]に記載の装置。
[３４]
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記量子化ユニットは、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップする、[３２]に記載の装置。
[３５]
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、前記量子化ユニットは、量子化係数の前記セットのうちの１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップする、[３２]に記載の装置。
[３６]
前記量子化ユニットは、
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了する、[３２]に記載の装置。 
[３７]
前記装置は、１つまたは複数の回路、集積回路（ＩＣ）チップあるいはＩＣチップセットを備えている、[２３]に記載の装置。
[３８]
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイスであって、前記デバイスは、
前記ビデオブロックのための量子化係数の複数のセットを生成するための手段と、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択するための手段と；
を備えている、
デバイス。
[３９]
量子化係数の前記セットのうちの前記所定の１つを出力するための手段、をさらに備えている[３８]に記載のデバイス。
[４０]
量子化係数の前記セットのうちの前記所定の１つを受信するための手段と、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行するための手段と、
前記ビットストリームを出力するための手段と、
をさらに備えている[３９]に記載のデバイス。
[４１]
前記コストを推定するための手段は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算するための手段を備えている、[３８]に記載のデバイス。
[４２]
量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、[４１]に記載のデバイス。
[４３]
前記最低数のビットを示す値を保存するための手段、をさらに備え、そしてそれは、前記特定コストと関連づけられる、[４２]に記載のデバイス。
[４４]
前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、[４１]に記載のデバイス。
[４５]
ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算するための手段、をさらに備える[４４]に記載のデバイス。
[４６]
前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に１足したものを備えている、[４５]に記載のデバイス。
[４７]
前記量子化係数のうちの個々のものについては、
前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップするための手段、
をさらに備えている[４５]に記載のデバイス。
[４８]
量子化係数の前記セットのうちの１つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその１つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップするための手段、をさらに備えている[４５]に記載のデバイス。
[４９]
前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了するための手段、をさらに備えている[４５]に記載のデバイス。
[５０]
コンテキストベースの適応バイナリ算術符号化（ＣＡＢＡＣ）をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスであって、前記デバイスは、コーディングユニットと送信機とを備えており、前記コーディングユニットは、量子化ユニットとＣＡＢＡＣユニットとを備えており、前記量子化ユニットは、
前記ビデオブロックのための量子化係数の複数のセットを計算し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される；
前記ＣＡＢＡＣを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている；
最低コストと関連づけられた量子化係数の前記セットのうちの所定の１つを選択し；
量子化係数の前記セットのうちの前記所定の１つを出力し；
前記ＣＡＢＡＣユニットは、
量子化係数の前記セットのうちの前記所定の１つを受信し、
量子化係数の前記セットのうちの前記所定の１つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の１つに関して前記ＣＡＢＡＣを実行し、
前記ビットストリームを出力し、
前記送信機は、前記ビットストリームを送信する、
デバイス。
[５１]
前記デバイスは、無線通信デバイスを備える、[５０]に記載のデバイス。
[５２]
前記デバイスは、前記送信機が前記ビットストリームを送信する前に、前記ビットストリームを変調するモジュレータを含む、[５１]に記載のデバイス。
【国際調査報告】
2011509642.tif 000062
2011509642.tif 000063
2011509642.tif 000064