(57)【特許請求の範囲】
【請求項１】
スケーラブルビデオ符号化を用いてビデオデータを復号する方法であって、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号することと、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号することと、
それぞれの非ゼロ係数の大きさを１に等しく設定することとを備え、
前記改良版は、追加の係数、および、既存の係数の改良版のうちの少なくとも１つであり、
前記拡張レイヤを復号することは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号することを含む方法。
【請求項２】
前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号することをさらに備える、請求項１に記載の方法。
【請求項３】
それぞれの係数の前記復号されたランと、それぞれの係数の前記符号（sign）と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成することをさらに備える、請求項２に記載の方法。
【請求項４】
前記ビデオブロックの前記改良版を復号することは、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号することを備える、請求項１に記載の方法。
【請求項５】
単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号することをさらに備える、請求項１に記載の方法。
【請求項６】
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、請求項５に記載の方法。
【請求項７】
スケーラブルビデオ符号化を用いて、ビデオデータを復号するためのデバイスであって、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号し、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号し、
それぞれの非ゼロ係数の大きさを１に等しく設定する少なくとも１個のデコーダを備え、
前記改良版は、既存の係数に対する追加の係数または改良版のうちの少なくとも１つであり、
前記少なくとも１個のデコーダは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号するデバイス。
【請求項８】
前記少なくとも１個のデコーダは、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号する、請求項７に記載のデバイス。
【請求項９】
前記少なくとも１個のデコーダは、それぞれの係数の前記復号されたランと、それぞれの係数の前記符号と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成する、請求項８に記載のデバイス。
【請求項１０】
前記少なくとも１個のデコーダは、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号する、請求項７に記載のデバイス。
【請求項１１】
前記少なくとも１個のデコーダは、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号する、請求項７に記載のデバイス。
【請求項１２】
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、請求項１１に記載のデバイス。
【請求項１３】
前記少なくとも１個のデコーダは、
前記第１の品質で前記ビデオブロックを取得するために、前記基本レイヤビットストリームを復号する基本レイヤデコーダと、
前記ビデオブロックの前記改良版を取得するために、前記拡張レイヤビットストリームを復号する拡張レイヤデコーダとを備える、請求項１１に記載のデバイス。
【請求項１４】
前記デバイスは、無線通信デバイスを備える、請求項１１に記載のデバイス。
【請求項１５】
前記デバイスは、集積回路デバイスを備える、請求項１１に記載のデバイス。
【請求項１６】
１つまたは複数のプロセッサに、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号させ、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号させ、
それぞれの非ゼロ係数の大きさを１に等しく設定させるための命令を備えたコンピュータ可読媒体であって、
前記改良版は、既存の係数に対する追加の係数または改良版のうちの少なくとも１つであり、
前記命令は、前記１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号（sign）とを復号させるコンピュータ可読媒体。
【請求項１７】
前記命令は、１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号させる、請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記命令は、１つまたは複数のプロセッサに、それぞれの係数の前記復号されたランと、それぞれの係数の前記符号と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成させる、請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記命令は、１つまたは複数のプロセッサに、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号させる、請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
前記命令は、１つまたは複数のプロセッサに、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号させる、請求項１６に記載のコンピュータ可読媒体。
【請求項２１】
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
スケーラブルビデオ符号化を用いてビデオデータを復号するためのデバイスであって、
第１の品質でビデオブロックを取得するために、基本レイヤビットストリームを復号する第１の手段と、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号する第２の手段と、
それぞれの非ゼロ係数の大きさを１に等しく設定する手段とを備え、
前記改良版は、既存の係数に対する追加の係数または改良版のうちの少なくとも１つであり、
前記第２の復号手段は、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、 少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号するデバイス。
【請求項２３】
前記第２の復号手段は、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号する、請求項２２に記載のデバイス。
【請求項２４】
それぞれの係数の前記復号されたランと、それぞれの係数の前記符号（sign）と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて、前記ビデオブロックの前記改良版に関する係数のベクトルを生成する手段をさらに備える、請求項２３に記載のデバイス。
【請求項２５】
前記第２の復号手段は、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号する、請求項２２に記載のデバイス。
【請求項２６】
前記第２の復号手段は、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号する、請求項２２に記載のデバイス。
【請求項２７】
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、請求項２６に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００７年１０月１５に出願された米国仮出願第６０／９７９，９１９号、および２００７年１０月１６に出願された米国仮出願第６０／９４０，２１４号の利益を主張する。これらの出願のそれぞれの内容は、参照により本明細書に組み込まれている。
【０００２】
本開示は、ディジタルビデオ符号化に関し、より詳細にはビデオデータのスケーラブルビデオ符号化に関する。
【背景技術】
【０００３】
ディジタルビデオ機能は、ディジタルテレビ、ディジタルダイレクトブロードキャストシステム、無線通信デバイス、無線ブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、ディジタルカメラ、ディジタル録音デバイス、ビデオゲームデバイス、ビデオゲームコンソール、セルラ無線電話または衛星無線電話などを含めて、幅広いデバイスに組み込まれ得る。ディジタルビデオデバイスは、ディジタルビデオをより効率的に送受信するために、ＭＰＥＧ(Motion Pictures Expert Group）−２、ＭＰＥＧ−４、または国際電気通信連合  電気通信標準化部門（International Telecommunication Union Standardization Sector）（ＩＴＵ−Ｔ）Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）（以下、「Ｈ．２６４／ＭＰＥＧ−４  パート１０  ＡＶＣ」標準）などのビデオ圧縮技術を実装する。ビデオ圧縮技術は、ビデオシーケンスの固有の冗長性を削減または除去するために、空間的予測および時間的予測を行う。
【０００４】
ビデオ符号化において、ビデオ圧縮は一般に予測ビデオブロックを生成するための空間的予測、および／または動き推定および動き補償を含む。イントラ符号化は、所定の符号化ユニット内のビデオブロック、例えばフレームもしくはスライスの間の空間的冗長性を削減または除去するために、空間的予測に依存する。すなわち、ビデオエンコーダは同じ符号化ユニット内の他のデータに基づいてデータを圧縮するために、空間的予測を行う。一方、インター符号化はビデオシーケンスの連続するビデオフレームのビデオブロック間の時間的冗長性を削減または除去するために、時間的予測に依存する。従って、インター符号化では、ビデオエンコーダは２個以上の隣接する符号化ユニットの一致するビデオブロックの動きを追跡するために、動き推定および動き補償を行う。
【０００５】
空間的予測または時間的予測の後で、符号化されている原ビデオブロックから予測ビデオブロックを減じることによって、残差係数のブロック（残差ブロックまたは残差情報と呼ばれる）が生成される。この残差ブロックは、予測ビデオブロックと原ブロックとの間の差を量子化した係数値の二次元行列であり得る。ビデオエンコーダは、残差ブロックの通信に関連するビットレートをさらに削減するために、残差ブロックに対して変換プロセス、量子化プロセス、およびエントロピー符号化プロセスを適用することが可能である。これらの変換技術は、離散コサイン変換（ＤＣＴ）、ウェーブレット変換、整数変換、またはその他のタイプの変換を備え得る。
【０００６】
ＤＣＴ変換の場合、例えば変換プロセスは画素領域係数（pixel-domain coefficients）のセットを画素領域係数のエネルギーを周波数領域または変換領域の形で表す変換係数に変換する。量子化変換係数を生成するために、変換係数に量子化が適用される。量子化は、一般に任意の所定の係数に関連するビットの数を制限する。ビデオエンコーダは、量子化変換係数をさらに圧縮するために、量子化変換係数をエントロピー符号化する。ビデオエンコーダは、可変長符号化（ＶＬＣ）、算術演算符号化、固定長符号化、またはそれらの組合せを用いて、これらの係数をエントロピー符号化することが可能である。ビデオデコーダは、ビデオシーケンスを再構成するために逆演算を行うことが可能である。
【０００７】
ＭＰＥＧ−２など、いくつかのビデオ符号化標準は比較的一定の品質、ビットレート、または空間分解能でビデオを符号化する。そのような技術は、類似のデコーダ能力（例えば、メモリリソース、もしくは処理リソース）および／または接続品質を有するデバイスにビデオアプリケーションを提供するのに十分な場合がある。しかし、より最新のビデオ伝送システムは、一般に様々なデコーダ能力および／または接続品質を有するデバイスを含む。そのようなシステムでは、比較的一定の品質、ビットレート、または空間分解能で符号化されたビデオを送信することは、ビデオアプリケーションが適切なデコーダ能力および／または接続品質を有するデバイスに関して作用し、適切なデコーダ能力および／または接続品質を有さないデバイスに関して作用しない結果をもたらす。無線の関連で、例えばビデオ伝送のソースの近くに配置されたデバイスは、ソースから離れて配置されたデバイスよりも高い品質の接続を有することが可能である。従って、ソースから離れて配置されたデバイスは、一定の品質、ビットレート、または空間分解能で送信された、符号化されたビデオを受信することができない可能性がある。
【０００８】
その他のビデオ符号化標準は、これらの課題を克服するためにスケーラブル符号化技術を利用する。例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣの拡張によれば、スケーラブルビデオ符号化（ＳＶＣ）は、ビデオシーケンスが基本レイヤ（base layer）および１つまたは複数のスケーラブル拡張レイヤ（enhancement layer）として符号化されるビデオ符号化を指す。ＳＶＣの場合、基本レイヤは一般に基本的な空間レベル、時間レベルおよび／または品質レベルで ビデオデータを運ぶ。１つまたは複数の拡張レイヤは、より高い空間レベル、時間レベルおよび／または品質レベルをサポートするために、追加のビデオデータを運ぶ。拡張レイヤは、例えばフレームレート全体を高めるために空間分解能を基本レイヤのフレームに追加することが可能であるか、または追加のフレームを加えることが可能である。場合によっては、基本レイヤは拡張レイヤの伝送よりも確実な形で送信され得る。従って、符号化されたビデオのソースから離れて配置されたデバイス、またはより低いデコーダ能力を有するデバイスは、最低の空間レベル、時間レベルおよび／または品質レベルであっても、基本レイヤ、従ってビデオシーケンスを受信することが可能であり得る。
【発明の概要】
【０００９】
本開示は、単一の符号化パス内で拡張レイヤビットストリームのエントロピー符号化を可能にするスケーラブルビデオ符号化技術を説明する。通常、拡張レイヤビットストリームは、複数の符号化パスを用いて符号化される。拡張レイヤのそれぞれのビデオブロックに関して、例えば第１の符号化パスは、ブロックをエントロピー符号化するための符号化テーブル（すなわち、コードブック）を選択する際に使用するためのブロックに関する統計を収集することが可能であり、第２の符号化パスは、選択された符号化テーブルを用いてブロックをエントロピー符号化することが可能である。しかし、本開示における技術によれば、拡張レイヤビットストリームのビデオブロックは、ビデオ符号化テーブルの選択において使用するための統計を収集するための第１の符号化パスを実行することなくエントロピー符号化される。
【００１０】
代わりに、拡張レイヤは、単一の符号化パス内において係数単位ベースで拡張レイヤの係数を符号化する符号化技術を用いて符号化される。一例では、ビデオエンコーダは拡張レイヤビデオブロックの非ゼロ係数のそれぞれに関して、エンドオブブロック（ＥＯＢ）シンボルと、ランレングスと、符号（sign）とを符号化する。ビデオエンコーダは、拡張レイヤのビデオブロックを符号化するために単一の符号化テーブルのみを使用することが可能であり、それにより符号化テーブルを選択する際に使用されることになる統計を収集するための第１の符号化パスを実行する必要を除去する。
【００１１】
加えて、ビデオエンコーダは拡張レイヤ内の非ゼロ係数の大きさを符号化しなくてもよい。このように、拡張レイヤのすべての非ゼロ係数の大きさは１の大きさに制限され得る。拡張レイヤの係数の大きさを符号化しないことは、結果としてピーク信号対雑音比（ＰＳＮＲ）に何らかの損失をもたらす可能性があるが、拡張レイヤを符号化するために使用されるビットの数を削減する。本開示の技術は、いくつかの利点を提供し得る。例えば、これらの技術は符号化効率を維持しながら、拡張レイヤビットストリームの符号化について符号化の複雑さ、符号化遅延、およびメモリ要件を減じることが可能である。
【００１２】
一態様では、スケーラブルビデオ符号化を用いてビデオデータを符号化する方法は、ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化することを備える。本方法は、第１の品質で符号化されたビデオブロックと組み合わされたとき、結果として第１の品質よりも高い第２の品質を有するビデオブロックをもたらすビデオブロックの改良版（refinements）を少なくとも１つの拡張レイヤビットストリームの一部として符号化することも含む。本方法は、ビデオブロックの改良版が単一の符号化パス内で符号化されることも含む。
【００１３】
もう１つの態様では、スケーラブルビデオ符号化を用いてビデオデータを符号化するためのデバイスは、ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化し、第１の品質で符号化されたビデオブロックと組み合わされたとき、結果として第１の品質よりも高い第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化する、少なくとも１個のエンコーダを備える。ビデオブロックの改良版は、単一の符号化パス内で符号化される。
【００１４】
もう１つの態様では、コンピュータ可読媒体は１つまたは複数のプロセッサに、ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化させて、第１の品質で符号化されたビデオブロックと組み合わされたとき、結果として第１の品質よりも高い第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化させるための命令を備える。ビデオブロックの改良版は、単一の符号化パス内で符号化される。
【００１５】
もう１つの態様では、スケーラブルビデオ符号化を用いてビデオデータを符号化するためのデバイスは、ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化する第１の手段と、第１の品質で符号化されたビデオブロックと組み合わされたとき、結果として第１の品質よりも高い第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化する第２の手段とを備える。ビデオブロックの改良版は、単一の符号化パス内で符号化される。
【００１６】
もう１つの態様では、スケーラブルビデオ符号化を用いてビデオデータを復号する方法は、ビデオブロックを第１の品質で取得するために、基本レイヤビットストリームを復号することと、第１の品質で復号されたビデオブロックと組み合わされたとき、結果として第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号することとを備える。拡張レイヤを復号することは、ビデオブロックの改良版のそれぞれの非ゼロ係数に関して、少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルと、非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、非ゼロ係数の符号（sign）とを復号することを含む。
【００１７】
もう１つの態様では、スケーラブルビデオ符号化を用いてビデオデータを復号するためのデバイスは、ビデオブロックを第１の品質で取得するために、基本レイヤビットストリームを復号して、第１の品質で復号されたビデオブロックと組み合わされたとき、結果として第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号する、少なくとも１個のデコーダを備える。この少なくとも１個のデコーダは、ビデオブロックの改良版のそれぞれの非ゼロ係数に関して、少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルと、非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、非ゼロ係数の符号とを復号する。
【００１８】
もう１つの態様では、コンピュータ可読媒体は、１つまたは複数のプロセッサに、ビデオブロックを第１の品質で取得するために基本レイヤビットストリームを復号させて、第１の品質で復号されたビデオブロックと組み合わされたとき、結果として第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号させるための命令を備える。これらの命令は、１つまたは複数のプロセッサに、ビデオブロックの改良版のそれぞれの非ゼロ係数に関して少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルと、非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、非ゼロ係数の符号とを復号させる。
【００１９】
もう１つの態様では、スケーラブルビデオ符号化を用いてビデオデータを復号するためのデバイスは、ビデオブロックを第１の品質で取得するために、基本レイヤビットストリームを復号するための第１の手段と、第１の品質で復号されたビデオブロックと組み合わされたとき、結果として第２の品質を有するビデオブロックをもたらすビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号するための第２の手段とを備える。第２の復号手段は、ビデオブロックの改良版のそれぞれの非ゼロ係数に関して、少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルと、非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、非ゼロ係数の符号とを復号する。
【００２０】
本開示において説明される技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形で実装され得る。ソフトウェアの形で実装される場合、ソフトウェアはマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、もしくはディジタル信号プロセッサ（ＤＳＰ）、またはその他の均等の統合論理回路、あるいはディスクリート論理回路など、１つもしくは複数のプロセッサと呼ばれる場合があるプロセッサ内で実行され得る。これらの技術を実行するための命令を備えるソフトウェアは、当初、コンピュータ可読媒体内に格納され、プロセッサによってロードされ、実行され得る。
【００２１】
従って、本開示はプロセッサに本開示において説明される様々な技術のいずれかを実行させる命令を備えたコンピュータ可読媒体も企図する。場合によっては、コンピュータ可読媒体は製造会社に販売されかつ／またはデバイス内で使用され得るコンピュータプログラム製品の一部を形成し得る。コンピュータプログラム製品は、コンピュータ可読媒体を含むことが可能であり、場合によっては、実装材料を含むことも可能である。
【００２２】
本開示の１つまたは複数の態様の詳細は、添付の図面および下の説明において記載される。本開示で説明する技術のその他の特徴、対象および利点は、説明および図面ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】ビデオスケーラビリティをサポートするビデオ伝送システムを例示するブロック図。
【図２】図１の符号化システムのソースデバイスおよび宛先デバイスをさらに詳細に例示するブロック図。
【図３】例示的な基本レイヤエンコーダおよび拡張レイヤエンコーダをさらに詳細に示すブロック図。
【図４】例示的な基本レイヤエントロピーエンコーダおよび拡張レイヤエントロピーエンコーダをさらに詳細に示すブロック図。
【図５】基本レイヤデコーダおよび拡張レイヤデコーダの例をさらに詳細に示すブロック図。
【図６】例示的な基本レイヤエントロピーデコーダおよび拡張レイヤエントロピーデコーダをさらに詳細に示すブロック図。
【図７】４×４係数ブロックのジグザグ走査を例示する概念図。
【図８】拡張レイヤビデオブロックの係数のブロックの仮説例を示す概念図。
【図９】本開示のスケーラブルビデオ符号化技術を実行しているビデオエンコーダの例示的な動作を示す流れ図。
【図１０】本開示の一態様による、拡張レイヤビデオブロックの残差係数を符号化している拡張レイヤエンコーダの例示的な動作を示す流れ図。
【図１１】残差変換係数ベクトルを取得するために拡張レイヤビットストリームを復号している拡張レイヤデコーダの例示的な動作を示す流れ図。
【図１２】本開示によるスケーラブルビデオ符号化において使用するためのエンコーダおよび／またはデコーダの異なる構成を例示するブロック図。
【図１３】本開示によるスケーラブルビデオ符号化において使用するためのエンコーダおよび／またはデコーダの異なる構成を例示するブロック図。
【図１４】本開示によるスケーラブルビデオ符号化において使用するためのエンコーダおよび／またはデコーダの異なる構成を例示するブロック図。
【図１５】本開示によるスケーラブルビデオ符号化において使用するためのエンコーダおよび／またはデコーダの異なる構成を例示するブロック図。
【発明を実施するための形態】
【００２４】
図１は、ビデオスケーラビリティをサポートするビデオ伝送システム１０を例示するブロック図である。図１の例では、ビデオ伝送システム１０はソースデバイス１２と、複数の宛先デバイス１４Ａ、１４Ｂ（まとめて「宛先デバイス１４」と呼ぶ）とを含む。ソースデバイス１２は、１つまたは複数のソースからディジタルビデオコンテンツを取得し、宛先デバイス１４への伝送のために当該ビデオコンテンツを符号化する。このビデオコンテンツについては、例えば、リアルタイムで、またはニアリアルタイムでキャプチャすること、アーカイブすること（例えば、事前にキャプチャすること）、コンピュータにより生成すること、またはそれらの組合せが可能である。それぞれの場合、ビデオコンテンツは通信チャネルを経由して宛先デバイス１４に送信するために、ソースデバイス１２によって符号化され得る。ソースデバイス１２は、通信チャネルを経由して符号化されたビデオを配信する目的で、１つもしくは複数のアンテナを駆動させるための適切な無線周波数（ＲＦ）変調、フィルタリング、および増幅器の構成要素を有する送信機を含むか、または当該送信機に結合され得る。
【００２５】
スケーラブルビデオをサポートするために、ソースデバイス１２は基本レイヤビットストリーム（すなわち、基本レイヤ）および１つまたは複数のスケーラブル拡張レイヤビットストリーム（すなわち、拡張レイヤ）として、ソースビデオを符号化する。基本レイヤビットストリームは、一般に基本的な品質レベルを有するビデオデータを運ぶ。１つまたは複数の拡張レイヤは、さらに高い品質レベルをサポートするために、ここで改良版と呼ばれる追加のビデオデータを運ぶ。拡張レイヤにおいて符号化された改良版は、例えば追加のさらに高い周波数係数を提供することによって、または既存の係数をさらに改良することによって、忠実度（例えば、視覚的な品質）を段階的に高めることが可能である。場合によっては、基本レイヤは拡張レイヤの伝送よりも確実な形で、例えばより低いパケット誤り率（ＰＥＲ）で送信され得る。
【００２６】
図１に示す例では、説明を簡単にするために１つのチャネルの基本レイヤおよび単一の拡張レイヤが示される。しかし、ソースデバイス１２はチャネルの追加のビデオデータを運んでいる２つ以上の拡張レイヤを符号化することが可能である。場合によっては、ソースデバイス１２は宛先デバイス１４に関連するユーザによる選択のために異なるチャネルをサポートする目的で、別々のビットストリーム内でソースビデオを符号化することが可能である。これらのチャネルは、宛先デバイス１４が任意の時点での鑑賞のために異なるチャネルを選択することができるように、一般に同時に送信される。従って、宛先デバイス１４はユーザ制御の下でテレビ鑑賞経験のようにスポーツを鑑賞するために１つのチャネルを選択し、ニュースまたはいくつかのその他のスケジュールされたプログラミングイベントを鑑賞するためにもう１つのチャネルを選択することが可能である。一般に、それぞれのチャネルは基本レイヤおよび１つまたは複数の拡張レイヤとして符号化され得る。
【００２７】
さらに、本開示の技術は例示のために、品質スケーラビリティ（信号対雑音比（ＳＮＲ）スケーラビリティとも呼ばれる）という状況に関して説明される。しかし、これらの技術は空間スケーラビリティに拡張され得る。空間スケーラビリティアプリケーションでは、基本レイヤは基本的な空間分解能でビデオデータを運び、拡張レイヤはさらに高い空間分解能をサポートするために、追加のビデオデータを運ぶ。場合によっては、システム１０はＳＮＲ、空間スケーラビリティ、および／または時間スケーラビリティを組み合わせるビデオスケーラビリティを利用することが可能である。
【００２８】
ソースデバイス１２は、例えばＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準のＳＶＣ拡張に従って、基本レイヤとしてソースビデオを符号化すること、および本開示で説明する技術に従って拡張レイヤとしてソースビデオを符号化することが可能である。従って、本開示で説明するこれらの技術は、いくつかの態様においてその他の点ではＨ．２６４標準に準拠するデバイス向けのビデオスケーラビリティ拡張を実装するために適用され得る。実際に、本開示のこれらの技術はＨ．２６４標準、またはその他の標準の将来のバージョンもしくは将来の拡張に関する潜在的な修正を表す可能性がある。しかし、これらの技術はＭＰＥＧ−１およびＭＰＥＧ−２、ＩＴＵ−Ｔ  Ｈ．２６３標準、米国映画テレビ技術者協会（ＳＭＰＴＥ）４１２Ｍビデオコーデック標準（一般に、「ＶＣ−１」と呼ばれる）、中国オーディオビデオ符号化標準作業部会によって定義された標準（一般に、「ＡＶＳ」と呼ばれる）、ならびに、標準団体によって定義された、または独自仕様標準として、団体によって構築された任意のその他のビデオ符号化標準など、様々なその他のビデオ圧縮標準のいずれかと共に使用され得る。
【００２９】
宛先デバイス１４は、符号化されたビデオの有線受信および／または無線受信をサポートすることが可能である。宛先デバイス１４は、無線通信デバイス、例えばセルラ無線電話または衛星無線電話、無線ブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、ディジタルカメラ、ディジタル記録デバイス、ビデオゲームデバイス、ビデオゲームコンソール、ディジタルテレビ、ディジタルダイレクトブロードキャストシステムなど、ディジタルビデオデータを受信および復号することが可能な任意のデバイスを備えることが可能である。図１の例では、２個の宛先デバイス１４Ａ、１４Ｂが示される。しかし、システム１０は任意の数の宛先デバイス１４を含むこが可能である。宛先デバイス１４は、上で説明された様々なビデオ圧縮標準のいずれかに従って動作することも可能である。
【００３０】
図１は、符号化されたビデオを送信するソースデバイス１２に対する宛先デバイス１４のポジショニングを表す。特に、宛先デバイス１４Ａは送信源、すなわち図１のソースデバイス１２にさらに近接し、宛先デバイス１４Ｂは送信源からさらに離れている。 基本レイヤがより低いＰＥＲで符号化される場合、宛先デバイス１４Ａおよび１４Ｂは両方とも基本レイヤを確実に受信して復号することが可能である。ソースデバイス１２にさらに近く位置する宛先デバイス１４Ａは、拡張レイヤを確実に受信することも可能である。しかし、ソースデバイス１２からさらに離れて位置する宛先デバイス１４Ｂは、例えばネットワーク状態またはチャネル状態により、拡張レイヤを確実に受信しない場合がある。
【００３１】
従って、基本レイヤデータおよび拡張レイヤデータの両方が利用可能であるため、さらに近接する宛先デバイス１４Ａはさらに高い品質のビデオが可能であり、一方、宛先デバイス１４Ｂは、基本レイヤデータによって提供された最低品質レベルのみを表すことが可能である。従って、宛先デバイス１４によって取得されたビデオは、拡張レイヤの追加のビットが復号され、復号されたビデオの信号対雑音比（ＳＮＲ）を高める目的で基本レイヤビットストリームに追加され得るという意味において、スケーラブルである。しかし、スケーラビリティは拡張レイヤデータが存在するときのみ可能である。従って、「品質」という用語は、本開示で使用される場合、客観的な視覚品質および／または主観的な視覚品質を指す場合がある。すなわち、拡張レイヤの改良版は、結果として原データのさらに高い品質の複製であるビデオデータをもたらす。このようにビデオの忠実度は、拡張レイヤによって増大され得る。
【００３２】
その他の場合、ネットワーク状態またはチャネル状態は、宛先デバイス１４Ａおよび１４Ｂの両方が基本レイヤならびに拡張レイヤを受信するのに十分であり得る。しかし、宛先デバイス１４Ａおよび１４Ｂは、宛先デバイス１４Ａおよび１４Ｂのうちの１つがさらに高い品質のビデオを作成するために拡張レイヤの追加のビデオデータを使用することを妨げる、異なるデコーダ能力を有する可能性がある。宛先デバイス１４のうちの１つが例えば、移動体ハンドセットまたはその他の小型のポータブルデバイスなどのクライアントデバイスである場合、演算上の複雑さおよびメモリ要件による制限が存在する可能性がある。従って、スケーラブルビデオ符号化は、制限された演算リソースまたはメモリリソースを有する宛先デバイス１４が基本レイヤのみを復号することが可能なように指定され得る。このように、より良好なネットワーク状態もしくはチャネル状態、および／またはさらに高いデコーダ能力を有する宛先デバイス１４は、拡張レイヤの追加のビデオデータを用いて、さらに高いビデオ品質を有するビデオを再構成することが可能になる。
【００３３】
本開示で説明する技術は、拡張レイヤビットストリームの効率的な符号化を促すエントロピー符号化技術を利用する。本開示のエントロピー符号化技術は、例えば単一の符号化パス内の拡張レイヤビットストリーム内の改良版の形をとる、追加のビデオデータのコーディングを可能にし、それにより、コーディングの複雑さ、符号化遅延、およびメモリ要件を削減する。さらに詳細に説明するように、ソースデバイス１２は場合によっては任意の後続の係数、すなわち符号化されている現在の非ゼロ係数の後続の任意の係数の知識なしに、拡張レイヤの係数ベクトルのそれぞれの非ゼロ係数を符号化することが可能である。単一のパス内で拡張レイヤを符号化することは、係数ベクトルを解析するための第１のパスおよびその解析に基づいて、係数ベクトルを符号化するための第２のパスを実行する必要を除去することが可能である。
【００３４】
例えば、いくつかの通常のエントロピーエンコーダは、シンボルのうちの少なくともいくつかが２つ以上の非ゼロ係数を表す状態で、係数ベクトルを表すためのシンボルを生成するために第１の符号化パスを実行することが可能である。すなわち、係数ベクトルの非ゼロ係数を符号化するために、後続の係数の知識が必要とされる。さらに、または別法として、いくつかの通常のエントロピーエンコーダは第１の符号化パスまたは後続の符号化パスの間に、シンボルを符号化する際に使用するためのＶＬＣテーブルを選択することも可能である。一態様では、ＶＬＣテーブルは生成されたシンボルに基づいて選択され得る。あるいは、第１の符号化パスの間に係数ベクトルを解析することによって、統計が収集されることが可能であり、ＶＬＣテーブルはこれらの収集された統計に基づいて選択され得る。
【００３５】
次いで、第１の符号化パスの間に実行された解析に基づいて、係数ベクトルをエントロピー符号化するために、通常のエントロピーエンコーダによって第２の符号化パスが実行される。一例として、いくつかの通常のエントロピーエンコーダは、第２の符号化パスの間に、生成されたシンボルまたはその他の統計に基づいて選択されたＶＬＣテーブルを用いて、第１のパスの間に生成されたシンボルを符号化することが可能である。２つ以上の非ゼロ係数を表すシンボルを生成すること、および／またはそれらの生成されたシンボルもしくはその他の統計に基づいてＶＬＣテーブルを選択することは、係数ベクトルのより効率的な符号化を可能にし得る。
【００３６】
本開示の技術を行うことは、拡張レイヤを符号化するための２つ以上の符号化パスの必要をなくするだけでなく、本開示のエントロピー符号化技術はさらに結果として基本レイヤのビデオデータの係数情報を格納することと、当該情報にアクセスこととを伴わずに拡張レイヤを符号化し、さらに演算上の複雑さおよびメモリ要件を削減する。
【００３７】
ソースデバイス１２、宛先デバイス１４、もしくはそれらの両方は、上で説明されたように無線通信デバイスであってよく、または有線通信デバイスであってもよい。また、ソースデバイス１２、宛先デバイス１４、またはそれらの両方は、無線通信デバイス内または有線通信デバイス内、あるいはディジタルメディアプレーヤ、携帯情報端末（ＰＤＡ）、ディジタルテレビなど、ディジタルビデオアプリケーションをサポートしているその他のタイプのデバイス内に組み込まれることが可能な、集積回路チップ、またはチップセットなど、集積回路デバイスとして実装され得る。
【００３８】
図２は、符号化システム１０のソースデバイス１２および宛先デバイス１４をより詳細に例示するブロック図である。宛先デバイス１４は、例えば図１の宛先デバイス１４Ａまたは１４Ｂのどちらかであり得る。図２に示すように、ソースデバイス１２はビデオソース１８とビデオエンコーダ２０と送信機２２とを含み得る。ソースデバイス１２のビデオソース１８は、ビデオカメラ、これまでキャプチャされたビデオを含むビデオアーカイブ、またはビデオコンテンツプロバイダからのビデオ供給など、ビデオキャプチャデバイスを含み得る。別の代替案として、ビデオソース１８はソースビデオなどのコンピュータグラフィックベースのデータ、またはライブビデオとコンピュータにより生成されたビデオの組合せを生成することが可能である。場合によっては、ソースデバイス１２はビデオソース１８がビデオカメラであり得る、いわゆるカメラ電話またはビデオ電話であり得る。それぞれの場合、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータにより生成されたビデオは、送信機２２および通信チャネル１６を経由してソースデバイス１２から宛先デバイス１４に送信するために、ビデオエンコーダ２０によって符号化され得る。
【００３９】
ビデオエンコーダ２０は、ビデオソース１８からビデオデータを受信し、基本レイヤビットストリームおよび１つまたは複数の拡張レイヤビットストリームとしてビデオデータを符号化する。図２に示された例では、ビデオエンコーダ２０は基本レイヤエンコーダ３０と拡張レイヤエンコーダ３２とを含む。基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、ビデオソース１８から共通のビデオデータを受信する。基本レイヤエンコーダ３０は、第１の品質レベルでビデオの基本レイヤビットストリームを生成するために、第１のビットレートでビデオデータを符号化する。拡張レイヤエンコーダ３２は、基本レイヤのビットレベルに追加されたとき、ビデオを第２のさらに高い品質レベルに拡張する１つまたは複数の拡張レイヤを生成するために追加のビットを符号化する。すなわち、拡張レイヤは基本レイヤに追加されるとき、さらに高い品質レベルを提供する第２のさらに高いビットレートを提供する。従って、拡張レイヤは基本レイヤにおいて符号化されたビデオデータの改良版を符号化すると見なされ得る。これらの改良版は、例えば既存の係数に対する追加の係数および／または改良版であり得る。拡張レイヤにおいて符号化された改良版は、ビデオデータが復号されるにつれて拡張レイヤ内の改良版がビデオデータの品質を段階的に高めるという意味で階層的であり得る。従って、すべての拡張レイヤの改良版の復号は、例えば結果として最高のビットレートと最高の品質とをもたらすことになり、一方、第１の拡張レイヤの改良版のみの復号は、基本レイヤのみの復号と比べてビットレートおよび品質において増分的な増大（incremental increase）を生み出すことになる。
【００４０】
ビデオソース１８から受信されたビデオデータは、一連のビデオフレームであり得る。基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、この一連のフレームを符号化されたユニットに分割し、その一連のビデオフレームを符号化するために、それらの符号化されたユニットを処理する。符号化ユニットは、例えばフレーム全体であってよく、またはフレームのスライスなど、フレームの一部であってもよい。基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、それぞれの符号化されたユニットを画素ブロック（ここでは、ビデオブロックまたはブロックと呼ばれる）に分割し、ビデオデータを符号化するために、個々の符号化されたユニット内のそれらのビデオブロックに関して演算する。従って、ビデオデータは複数のフレームを含むことが可能であり、フレームは複数のスライスを含むことが可能であり、スライスは複数のビデオブロックを含むことが可能である。
【００４１】
ビデオブロックは固定サイズを有してよく、または様々なサイズを有してもよく、指定された符号化標準に従ってサイズの点で異なってもよい。例として、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣは、輝度成分（luma component）に関して１６×１６、８×８、または４×４、および色成分（chroma component）に関して８×８など、様々なブロックサイズでイントラ予測をサポートすると同様に、輝度成分に関して１６×１６、１６×８、８×１６、８×８、８×４、４×８、および４×４、ならびに色成分に関して対応する基準化されたサイズなど、様々なブロックサイズでインター予測をサポートする。Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣでは、マクロブロック（ＭＢ）と呼ばれることがあるそれぞれのビデオブロックは、固定サイズまたは様々なサイズのサブブロックに細分割され得る。すなわち、符号化されたユニットは、同じサイズのサブブロックまたは異なるサイズのサブブロックを含み得る。一般に、ＭＢおよび様々なサブブロックはビデオブロックと見なされ得る。従って、ＭＢはビデオブロックと見なされ得、分割またはサブ分割された場合、ＭＢ自体がビデオブロックのセットを規定すると見なされ得る。
【００４２】
エンコーダ３０、３２は、フレームのビデオブロックのイントラ符号化およびインター符号化を行う。イントラ符号化は、所定の符号化ユニット内、例えばフレーム内またはスライス内のビデオデータの空間的冗長性を削減または除去するために、空間的予測に依存する。イントラ符号化の場合、エンコーダ３０、３２は符号化されている現ブロックと同じフレーム内の１つまたは複数の予め符号化されたブロックに基づいて空間的予測ブロックを形成する。予測ブロックは、符号化されている現ビデオブロックの予測バージョンであり得る。基本レイヤエンコーダ３０は、例えば現フレームの基本レイヤ内の１つまたは複数の予め符号化されたブロックの画素値を用いて、（当該ブロックに関連するイントラ符号化モードに従って）補間を行うことにより、フレーム内の１つまたは複数の予め符号化されたブロックに基づいて予測ブロックを生成することが可能である。拡張レイヤエンコーダ３２は、フレーム内の１つまたは複数の予め符号化されたブロックに基づいて予測ブロックを生成することが可能である。拡張レイヤエンコーダ３２は、例えばフレーム内の基本レイヤおよび拡張レイヤからの１つまたは複数の予め符号化されたビデオブロックに基づいて予測ブロックを生成することが可能である。例えば、拡張レイヤエンコーダ３２は、基本レイヤからの少なくとも１つの予め符号化されたビデオブロック、および拡張レイヤからの少なくとも１つの予め符号化されたビデオブロックからの画素値の重み付けされた和を用いて予測ブロックを生成することが可能である。
【００４３】
インター符号化は、ビデオシーケンスの隣接するフレーム内の時間的冗長性を削除または除去するために、時間的予測に依存する。インター符号化の場合、エンコーダ３０、３２は符号化されたユニット内の２つ以上の隣接するフレームの間の厳密に一致するビデオブロックの動きを追跡するために、動き推定を行う。インター予測の場合、エンコーダ３０、３２は符号化されたユニット内のその他のフレームからの１つまたは複数の予め符号化されたブロックに基づいて時間的予測ブロックを生成することが可能である。エンコーダ３０、３２は、例えば現ビデオブロックと最も厳密に一致する、隣接するフレーム内のブロック、例えば、最小平均２乗誤差（ＭＳＥ）、差分２乗和（ＳＳＤ）、差分絶対値和（ＳＡＤ）、またはその他の異なる測定基準を有する１つまたは複数の隣接するフレーム内のブロックを識別するために、現ビデオブロックを１つまたは複数の隣接するビデオフレーム内のブロックと比較することが可能である。エンコーダ３０、３２は、予測ブロックとして隣接するフレーム内で識別されたブロックを選択する。基本レイヤエンコーダ３０は、現ビデオブロックを基本レイヤの１つまたは複数の隣接するフレーム内のブロックと比較する。拡張レイヤエンコーダ３２は、現ビデオブロックを基本レイヤ内および／または拡張レイヤ内の１つもしくは複数の隣接するフレーム内のブロックと比較することが可能である。
【００４４】
ビデオブロックのイントラ予測またはインター予測に続いて、エンコーダ３０、３２は符号化されている原ビデオブロックから生成された予測ブロックを減じることによって、残差ブロックを生成する。残差ブロックは、従って予測ブロックと符号化されている現ブロックとの間の差を示す。エンコーダ３０、３２は、残差ブロックの通信に関連するビットレートをさらに削減するために変換プロセス、量子化プロセスおよびエントロピー符号化プロセスを適用することが可能である。離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、方向変換、またはその他の変換動作を含み得る変換技術は、画素差分値のセットを周波数領域における画素差分値のエネルギーを表す残差変換係数に変更する。エンコーダ３０、３２は、一般に任意の所定の係数に関連するビットの数を制限するプロセスを必要とする量子化を残差変換係数に適用する。エンコーダ３０、３２は、残差係数をさらに圧縮する目的で係数の一次元ベクトルを生成して係数ベクトルをエントロピー符号化するために、二次元残差ブロックを走査する。エントロピー符号化は、例えば可変長符号化（ＶＬＣ）、算術演算符号化、固定長符号化、コンテキスト適応ＶＬＣ（ＣＡＶＬＣ）、コンテキスト適応バイナリ算術演算符号化（context-adaptive binary arithmetic coding）（ＣＡＢＡＣ）、および／またはその他のエントロピー符号化技術を含む。
【００４５】
ＳＮＲスケーラビリティは、残差量子化によって達成され得る。詳細には、基本レイヤエンコーダ３０は第１の量子化パラメータ（ＱＰ）を用いて残差変換係数を量子化することが可能であり、拡張レイヤエンコーダ３２は第２のＱＰを用いて残差変換係数を量子化することが可能である。ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−１０  ＡＶＣでは、より大きなＱＰは通常、結果としてより少ない数のビットを用いて、より低い品質でビデオデータを符号化し、一方、より小さなＱＰは結果としてより多い数のビットを用いて、さらに高い品質でビデオデータを符号化する。従って、最低の品質レベルでビデオデータを符号化する基本レイヤエンコーダ３０は、拡張レイヤの係数を量子化するために、拡張レイヤエンコーダ３２によって使用されるＱＰ値よりも大きなＱＰ値を用いて基本レイヤの係数を量子化することが可能である。結果として、基本レイヤ符合器３０からの量子化された残差変換係数は、第１の品質でビデオシーケンスを表し、拡張レイヤエンコーダからの量子化された残差変換係数は、基本レイヤと組み合わされたとき、ビデオシーケンスの品質を第２のさらに高い品質に高める、ビデオシーケンスの既存の係数に対する追加の係数または改良版を表す。
【００４６】
エンコーダ３０、３２はそれぞれ、それぞれ基本レイヤおよび拡張レイヤの量子化された残差変換係数を表す一次元の係数ベクトルを受信する。すなわち、基本レイヤエンコーダ３０は基本レイヤの係数のベクトルを受信し、拡張レイヤエンコーダ３２は対応する拡張レイヤの係数のベクトルを受信する。エンコーダ３０、３２は、同じ原ビデオデータを受信するが、係数のベクトルは異なる可能性がある。これは、基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２が異なる予測ブロックを生成していることに起因し得る。例えば、基本レイヤエンコーダ３０は１つまたは複数の予め符号化された基本レイヤブロックから予測ブロックを生成し、拡張レイヤエンコーダ３２は１つまたは複数の予め符号化された基本レイヤブロックおよび拡張レイヤブロックから予測ブロックを生成する。
【００４７】
基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、それぞれ基本レイヤビットストリームおよび少なくとも１つの拡張レイヤビットストリームを生成するために、それぞれの係数ベクトルを符号化する。本開示の技術によれば、基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、異なる符号化技術を用いてそれぞれの係数ベクトルを符号化する。基本レイヤエンコーダ３０は、基本レイヤエンコーダ３０が少なくとも１つの符号化パスの間に係数ベクトルを解析し、その解析に基づいて少なくとも１つの後続の符号化パスの間に係数ベクトルを符号化する、複数の符号化パスプロセスを用いて係数ベクトルを符号化することが可能である。一例では、基本レイヤエンコーダ３０はＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣに従って、基本レイヤ係数ベクトルの量子化された残差変換係数を符号化することが可能である。Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣは、複数の符号化パスを用いて基本レイヤ係数ベクトルを符号化することが可能である。
【００４８】
第１の符号化パスの間、基本レイヤエンコーダ３０はその少なくともいくつかが２つ以上の非ゼロ係数、および、場合によっては係数ベクトルの係数のすべてを表す係数ベクトルを表すためのシンボルを生成することが可能である。基本レイヤエンコーダ３０は、例えばＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣに従って、係数ベクトル内の係数の総数（“TotalCoeffs”）、係数ベクトル内のいくつかのトレイリングワン（trailing ones）（“Ｔ１ｓ”）、任意のトレイリングワンの符号（sign）、トレイリングワン以外の非ゼロ係数の大きさ（またはレベル）、すべてのランの和（“sumRuns”）、およびそれぞれの非ゼロ係数の前のランを表すシンボルを生成する。TotalCoeffおよびsumRunsなど、シンボルのいくつかを生成するために、基本レイヤエンコーダ３０は係数ベクトル全体を解析することが可能である。
【００４９】
第１の符号化パスの間に、基本レイヤエンコーダ３０は係数ベクトルの解析に基づいて後続の符号化パスの間に使用するためのＶＬＣテーブルを選択することも可能である。場合によっては、基本レイヤエンコーダ３０は第１の符号化パスの間に生成されたシンボルに基づいて後続の（例えば、第２の）符号化パスの間に使用するためのＶＬＣテーブルを選択することが可能である。例えば、基本レイヤエンコーダ３０はブロック内の係数の総数（TotalCoeffs）の値とsunRunsシンボルの値との間に何らかの関係が存在するため、ブロック内の係数の総数（TotalCoeffs）に基づいて、sunRumsシンボルを符号化するときに使用するためのＶＬＣテーブルを選択することが可能である。詳細には、TotalCoeffsが増大するとsumRunsは減少し、TotalCoeffsが減少するとsumRunsは増大する。この場合も、ブロック内の係数の総数（TotalCoeffs）に基づいて、sumRunsシンボルを符号化するときに使用するためのＶＬＣテーブルを選択することは、基本レイヤエンコーダ３０がsumRunsをより効率的に符号化するＶＬＣテーブルを選択することを可能にし得る。類似のＶＬＣテーブルの選択が、符号化されることになるその他のシンボルに関して、またはその他の収集された統計を用いて実行され得る。
【００５０】
基本レイヤエンコーダ３０は、第２の符号化パスまたはその他の後続の符号化パスの間に、係数ベクトル内の非ゼロ係数の総数（TotalCoeff）を表すシンボルと、（Ｔ１ｓと呼ばれる）いくつかのトレイリングワンを表すシンボルとを符号化する。トレイリングワンの数は、係数ベクトルが逆の順序で、すなわち係数ベクトルの終端から開始して読み取られるときに、２以上の大きさを有する係数が発生する前に係数ベクトル内で発生する１の大きさを有する係数の数である。基本レイヤエンコーダ３０は、予測された数の非ゼロ係数に基づいて、Total CoeffシンボルおよびＴ１シンボルを符号化する際に使用するためのＶＬＣテーブルを選択し、その選択されたＶＬＣテーブルを用いてTotalCoeffシンボルおよびＴ１シンボルを符号化することが可能である。非ゼロ係数の予測数に基づいて、TotalCoeffシンボルおよびＴ１シンボルを符号化する際に使用するためのＶＬＣテーブルを選択することは、基本レイヤエンコーダ３０が、TotalCoeffシンボルおよびＴ１シンボルをより効率的に符号化するＶＬＣテーブルを選択することを可能にし得る。従って、異なるＶＬＣテーブルは非ゼロ係数の異なる予測数に関してより効率的な可能性がある。一例では、基本レイヤエンコーダ３０は１つまたは複数の予め符号化されたビデオブロック、例えば、上隣接（upper neighboring）ビデオブロックおよび左隣接（left neighboring）ビデオブロックの非ゼロ係数の数に基づいて、現ブロック内の非ゼロ係数の数を予測することが可能である。
【００５１】
基本レイヤエンコーダ３０は、任意のトレイリングワンの符号（sign）を符号化することが可能である。例えば、基本レイヤエンコーダ３０はトレイリングワンのそれぞれに関して、トレイリングワンの符号が正である場合、「１」を符号化し、トレイリングワンの符号が負である場合、「０」を符号化することが可能である。従って、基本レイヤエンコーダ３０はそれらの符号に関して、ＶＬＣテーブル選択を行う必要がない可能性がある。基本レイヤエンコーダ３０は、トレイリングワン以外の非ゼロ係数の大きさを符号化することが可能である。基本レイヤエンコーダ３０は、ＶＬＣテーブル、固定長符号化、またはその他のタイプのエントロピー符号化を用いて、非ゼロ係数のレベルを符号化することが可能である。例えば、基本レイヤエンコーダ３０はバイナリ符号化を用いて非ゼロ係数のレベルを符号化することが可能である。
【００５２】
基本レイヤエンコーダ３０は、最後の非ゼロ係数の前に係数ベクトル内で発生するゼロ値係数の数（sumRuns）を表すシンボルを符号化することが可能である。上で説明したように、ブロック内の係数の総数（TotalCoeffs）の値とsumRunsシンボルの値との間に何らかの関係が存在するため、基本レイヤエンコーダ３０はブロック内の係数の総数（TotalCoeffs）に基づいて、sumRunsシンボルを符号化するときに使用するためのＶＬＣテーブルを選択することが可能である。
【００５３】
基本レイヤエンコーダ３０は、係数ベクトルの最後の非ゼロ係数から始めて、それぞれの非ゼロ係数の前に発生するラン（すなわち、ランレングス）を符号化することが可能である。ランレングスは、非ゼロ係数に先行するゼロ値係数の数である。従って、基本レイヤエンコーダ３０は係数ベクトルの第１の非ゼロ係数の前のランが符号化されるまで、まず係数ベクトルの最後の非ゼロ係数の前のランレングス（すなわち、ゼロ値係数の数）と、その後に続く、先行する非ゼロ係数の前のランレングス、等々を符号化することが可能である。
【００５４】
基本レイヤエンコーダ３０は、ランレングスのそれぞれを別々に符号化するために使用するためのＶＬＣテーブルを選択することが可能である。基本レイヤエンコーダ３０は、ランの和（sumRuns）シンボルと、これまで符号化されたランの和とに基づいて、現在のラン値を符号化するためのＶＬＣテーブルを選択することが可能である。例として、係数ベクトルが８のランの和（sumRuns）を有し、符号化された最後の非ゼロ係数の前に符号化されたランが６であった場合、すべての残りのランは０、１、または２でなければならない。それぞれの追加のランが符号化されるにつれて、可能なランレングスは段階的に短くなるため、基本レイヤエンコーダ３０はランを表す目的で使用されるビットの数を削減するために、より効率的なＶＬＣテーブルを選択することが可能である。
【００５５】
このように基本レイヤエンコーダ３０は、例えばシンボルを生成するため、かつ／またはＶＬＣテーブルを選択するために、基本レイヤ残差ブロックの係数ベクトルを解析するための第１のパスおよびその解析に基づいて、係数ベクトルを符号化するための第２の符号化パスを含めて基本レイヤ係数を符号化するために、複数のパス符号化を実行する。基本レイヤエンコーダ３０は、Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣを用いて量子化された残差変換係数を符号化するとして上で説明するが、基本レイヤエンコーダ３０は量子化された残差変換係数を符号化するためにその他の符号化方法論を使用することが可能である。
【００５６】
拡張レイヤエンコーダ３２は、係数ベクトルの形をとり得る拡張レイヤの量子化された残差変換係数を符号化する。拡張レイヤエンコーダ３２は、基本レイヤの量子化された残差係数とは異なる量子化された残差係数を生成することが可能である。量子化の間の異なるＱＰの使用により、拡張レイヤの量子化された残差係数は基本レイヤの量子化された残差係数とは異なる可能性がある。加えて、残差ブロックは原ビデオブロックと基本レイヤおよび拡張レイヤから予め符号化されたブロックを用いて生成された予測ブロックとの間の差を表すため、量子化された残差変換係数は基本レイヤの量子化された残差変換係数とは異なる可能性がある。基本レイヤの残差ブロックは、原ビデオブロックと基本レイヤから予め符号化されたブロックのみを用いて生成された予測ブロックとの間で異なる。従って、拡張レイヤは既存の係数に対する追加の係数および／または改良版を含み得る。この意味で、拡張レイヤ内のビデオブロックの量子化された残差変換係数は、基本レイヤ内で第１の品質で符号化されたビデオブロックに対する改良版を表し、基本レイヤに追加されるとき、さらに高い品質のビデオデータを提供する。
【００５７】
拡張レイヤエンコーダ３２は、利用可能なビットレートに応じて、符号化の間に係数ベクトルの量子化された残差係数のうちの１つまたは複数を破棄することが可能である。例えば、拡張レイヤエンコーダ３２は高周波変換基底関数に対応する係数、例えば、図３に例示されるジグザグ走査を用いて係数走査が行われたとき、係数ベクトルの終端に向けて配置された係数を破棄することが可能である。符号化されることになるシンボルの少なくともいくつか、例えばTotalCoeffsおよびsumRunsは、ブロック内のすべての係数を指すため、Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣに従って、量子化された残差係数を符号化することは、拡張レイヤエンコーダ３２が係数を破棄することを可能にしない場合がある。拡張レイヤエンコーダ３２が係数ベクトルの係数のうちの１つまたは複数を破棄する場合、受信情報は冗長になり、従ってより低い符号化効率をもたらすことになる。さらに、デコーダはＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣを用いて符号化するとき、ジグザグ走査においてそれぞれの係数の位置を適切に復号することが可能であるように、ブロック内のすべての非ゼロ係数に関するランを受信しなければならないため、拡張レイヤエンコーダ３２は拡張レイヤの係数ベクトルからの係数を破棄することができない場合がある。
【００５８】
従って、拡張レイヤエンコーダ３２は本開示の符号化技術に従って１つまたは複数の拡張レイヤの係数を符号化する。拡張レイヤエンコーダ３２は、単一の符号化パス内で、係数ベクトルの量子化された残差変換係数を符号化する。すなわち、拡張レイヤエンコーダ３２は、係数ベクトルを解析するための第１のパスを実行し、次いでその解析に基づいて第２のパスの間にシンボルを符号化することを行わない。代わりに、拡張レイヤエンコーダ３２は係数ベクトルの始めから開始して単一の符号化パス内で非ゼロ係数のそれぞれを１つずつ符号化する。このように、拡張レイヤエンコーダ３２は、係数ベクトル内の任意の後続の係数を解析することなく、すなわち係数ベクトルの任意の後続の係数の知識なしに、非ゼロ係数のそれぞれを符号化することが可能である。
【００５９】
一態様では、拡張レイヤエンコーダ３２は非ゼロ係数のそれぞれに関して、係数ベクトル内に少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルを符号化することが可能である。シンボルは、例えばエンドオブブロック（ＥＯＢ）シンボルであり得る。拡張レイヤエンコーダ３２は、単一のビットを用いてこのシンボルを符号化することが可能である。例えば、拡張レイヤエンコーダ３２は少なくとも１つの残りの非ゼロ係数、例えば少なくとも現在の非ゼロ係数が存在するときゼロを符号化し、それ以上の残りの非ゼロ係数が存在しないとき１を符号化することが可能である。
【００６０】
それぞれの係数のＥＯＢシンボルに続いて、拡張レイヤエンコーダ３２は現在の非ゼロ係数の前のランを符号化する。上で説明したように、ランは係数ベクトルのこれまでの非ゼロ係数、また第１の非ゼロ係数の場合、係数ベクトルの始めと現在の非ゼロ係数との間で発生するゼロ値係数の数を表す。拡張レイヤエンコーダ３２は、単一のＶＬＣテーブルを用いてランを符号化することが可能である。一例では、拡張レイヤエンコーダ３２はTotalCoeffsが１に等しいとき、sumRunsを符号化するためにＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣで使用されたＶＬＣテーブルを用いてランを符号化することが可能である。すなわち、拡張レイヤエンコーダ３２はビデオエンコーダ２０によってすでに維持されたＶＬＣテーブルのうちの１つを再使用することが可能である。その他の場合、拡張レイヤエンコーダ３２は、ランを符号化するためにビデオエンコーダ２０によってすでに維持されたその他のＶＬＣテーブルのうちの１つを使用することが可能である。あるいは、拡張レイヤエンコーダ３２は、特に拡張レイヤの係数ベクトルのランを符号化するように設計された個別のＶＬＣテーブルを維持することが可能である。いずれの場合も、拡張レイヤエンコーダ３２はランを符号化するために使用するためのＶＬＣテーブルを順応的に選択する必要がない可能性がある。代わりに、拡張レイヤエンコーダ３２は単一のＶＬＣテーブルを使用することが可能であり、これによりＶＬＣテーブルを選択するために使用される統計を収集するための第１のパスの必要を除去する。
【００６１】
それぞれの係数の符号化されたランに続いて、拡張レイヤエンコーダ３２は非ゼロ係数の符号（sign）を符号化する。拡張レイヤエンコーダ３２は、例えば非ゼロ係数の符号が正である場合は「１」を符号化し、非ゼロ係数の符号が負である場合は「０」を符号化することが可能である。拡張レイヤエンコーダ３２は、非ゼロ係数の大きさを１に設定することによって、非ゼロ係数の大きさを調整することが可能である。場合によっては、拡張レイヤエンコーダ３２は非ゼロ係数の大きさを符号化しなくてよい。このように拡張レイヤエンコーダ３２は、非ゼロ係数の大きさを１に制限することが可能である。次いで、宛先デバイス１４は１に等しい大きさを有するように改良版内で識別されたすべての非ゼロ係数を復号するように構成される。拡張レイヤの係数の大きさを符号化しないことは、結果としてピーク信号対雑音比（ＰＳＮＲ）に何らかの損失をもたらす可能性があるが、係数を符号化するために使用されるビットの数を削減する。
【００６２】
このように拡張レイヤエンコーダ３２は、例えば係数ベクトルの任意の後続の係数の知識なしに、単一のパス内で拡張レイヤビットストリームの係数を符号化することが可能である。拡張レイヤエンコーダ３２は、例えばベクトルの２つ以上の非ゼロ係数を表すシンボルを生成するために、またはシンボルを符号化するためのＶＬＣテーブルを選択するために、係数ベクトルを解析する必要がないため、１つの符号化パスのみが実行される。通常のエンコーダは、一般に少なくとも２つのパスを実行する。すなわち、（１）係数ベクトルを解析するための第１のパス、および（２）その解析に基づいて係数ベクトルを符号化するための第２のパスである。加えて、拡張レイヤエンコーダ３２は単一のＶＬＣテーブルを用いて拡張レイヤの係数を符号化することが可能であり、これにより符号化テーブルを順応的に選択する際に使用するためのシンボルを形成するために、符号化パスを実行する必要を除去する。このように拡張レイヤエンコーダ３２は、符号化の複雑さ、符号化遅延、およびメモリ要件を削減することが可能である。さらに、本開示のエントロピー符号化技術は、さらに結果として基本レイヤの係数情報を格納することと当該情報にアクセスすることとを伴わずに、拡張レイヤの係数を符号化することが可能であり、演算上の複雑さおよびメモリ要件をさらに削減する。
【００６３】
ソースデバイス１２は、送信機２２を経由して、符号化されたビデオデータを宛先デバイス１４に送信する。宛先デバイス１４は、受信機２４とビデオデコーダ２６とディスプレイデバイス２８とを含み得る。受信機２４は、チャネル１６を経由して、符号化されたビデオビットストリームをソースデバイス１２から受信する。上で説明したように、符号化されたビデオビットストリームは基本レイヤビットストリームと１つまたは複数の拡張レイヤビットストリームとを含む。ビデオデコーダ２６は、ビデオデータを取得するために、基本レイヤおよび、利用可能な場合１つまたは複数の拡張レイヤを復号する。
【００６４】
詳細には、ビデオデコーダ２６は基本レイヤデコーダ３４と拡張レイヤデコーダ３６とを含む。基本レイヤデコーダ３４は、ディスプレイデバイス２８上で表示する目的で第１の品質でビデオデータを作成するために、チャネル１６を経由して受信された基本レイヤビットストリームを復号する。拡張レイヤデコーダ３６は、追加のビデオデータ、例えば復号されたビデオデータの品質を第２のさらに高い品質に高める改良版を取得するために、１つまたは複数の拡張レイヤのビットストリームを復号する。この場合も、宛先デバイス１４によって受信された拡張レイヤの数、例えば１、２、３またはそれ以上の数は、チャネル状態またはその他の制限に依存し得る。加えて、拡張レイヤデコーダ３６によって処理された受信拡張レイヤの数はデコーダの制限に依存し得る。一般に、基本レイヤの符号化および復号は、選択された数の拡張レイヤと共に、復号されたビデオのＳＮＲ品質の増分的な改善を可能にする。
【００６５】
基本レイヤデコーダ３４は、基本レイヤの量子化された残差係数のベクトルを表すシンボルを取得するために基本レイヤを復号する。基本レイヤデコーダ３４は、ブロック内の非ゼロ係数の総数、ブロックのトレイリングワンの数、トレイリングワンの符号、トレイリングワン以外の係数の大きさ、すべてのランの和および非ゼロ係数のそれぞれの前のランを取得するために基本レイヤを復号することが可能である。基本レイヤデコーダ３４は、基本レイヤシンボルを復号する際に使用するためのＶＬＣテーブルを識別するために、基本レイヤビットストリームをさらに復号することが可能である。すなわち、基本レイヤデコーダ３４は予め復号されたシンボルに基づいて、使用するためのＶＬＣテーブルを選択することが可能である。基本レイヤデコーダ３４は、復号されたシンボルを用いて基本レイヤの係数ベクトルを再構成することが可能である。
【００６６】
拡張レイヤデコーダ３６は、例えば既存の残差係数に対する追加の残差係数または改良版のベクトルの形をとる拡張レイヤの改良版を取得するために、拡張レイヤのビットストリームを復号する。詳細には、拡張レイヤデコーダ３６はＥＯＢシンボルがそれ以上の非ゼロ係数が残っていないことを示すまで、拡張レイヤエンコーダ３２によって使用された同じＶＬＣテーブルを用いて、拡張レイヤ係数のランおよび符号を復号する。拡張レイヤデコーダ３６は、復号されたシンボルを用いて拡張レイヤブロックの係数ベクトルを再構成する。
【００６７】
デコーダ３４、３６は、復号された量子化された残差係数を用いて、符号化されたユニットのブロックのそれぞれを再構成する。デコーダ３４、３６は、係数ベクトルを生成した後、量子化された残差係数の二次元ブロックを生成するために係数ベクトルを逆走査する。デコーダ３４、３６は、量子化された残差係数を逆量子化、すなわち量子化解除して、画素値の残差ブロックを作成するために、量子化解除された残差係数に逆変換、例えば逆ＤＣＴ、逆整数変換、逆ウェーブレット変換、または逆方向変換を適用する。  デコーダ３４、３６は、それぞれ再構成された基本レイヤビデオブロックおよび拡張レイヤビデオブロックを形成するために、画素値の残差ブロックを用いて、デコーダ３４、３６によって生成された予測ブロッを合計する。基本レイヤビデオブロックおよび拡張レイヤビデオブロックは、さらに高い分解能を有するビデオブロックを形成するために組み合わされる。デコーダ３４、３６は、エンコーダ３０、３２に関して上で説明したのと同じように予測ブロックを生成する。宛先デバイス１４は、ディスプレイデバイス２８を経由して、再構成されたビデオブロックをユーザに表示することが可能である。ディスプレイデバイス２８は、ブラウン管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、発光ダイオード（ＬＥＤ）ディスプレイ、有機ＬＥＤディスプレイ、または別のタイプのディスプレイユニットなど、様々なディスプレイデバイスのいずれかを備え得る。
【００６８】
場合によっては、ビデオエンコーダ２０およびビデオデコーダ２６は、任意に切り捨可能なスケーラブル拡張ビットストリームを提供するように構成される。従って、システム１０はスケーラビリティを達成するために、全体が符号化されなければならないディスクリート拡張レイヤの使用を回避することが可能である。しかし、いくつかの実施形態ではシステム１０は例えば選択ベースで一般化された密な粒度のスケーラビリティ（fine granularity scalability）（ＦＧＳ）手法、またはディスクリート拡張レイヤを用いてスケーラビリティをサポートするように構成され得る。
【００６９】
ソースデバイス１２および宛先デバイス１４は、実質的に対称的な形で動作することが可能である。例えば、ソースデバイス１２および宛先デバイス１４は、それぞれビデオ符号化およびビデオ復号構成要素を含むことが可能である。従って、システム１０は例えばビデオストリーミング、ビデオブロードキャスティング、もしくはビデオ電話に関して、デバイス１２、１４の間で一方向ビデオ伝送または双方向ビデオ伝送をサポートすることが可能である。
【００７０】
いくつかの態様では、ビデオブロードキャスティングに関して、本開示で説明する技術は技術標準ＴＩＡ−１０９９として２００７年７月に発表された順方向リンクオンリー（ＦＬＯ）無線インターフェース仕様書、“Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast”（「ＦＬＯ仕様書」）を用いて、地上モバイルマルチメディアマルチキャスト（terrestrial mobile multimedia multicast）（ＴＭ３）システムにおいてリアルタイムのビデオサービスを配信するために、拡張Ｈ．２４６ビデオ符号化に適用され得る。すなわち、通信チャネル１６はＦＬＯ仕様書などに従って、無線ビデオ情報をブロードキャストするために使用される無線情報チャネルを備え得る。ＦＬＯ仕様書は、ＦＬＯ無線インターフェースに適したビットストリームシンタックスおよびセマンティックス、ならびに復号プロセスを定義する例を含む。
【００７１】
あるいは、ビデオはＤＶＢ−Ｈ（ディジタルビデオブロードキャストハンドヘルド）、ＩＳＤＢ−Ｔ（統合サービスディジタルブロードキャスト−地上（integrated services digital broadcast - terrestrial）、またはＤＭＢ（ディジタルメディアブロードキャスト）など、その他の基準に従ってブロードキャストされ得る。従って、ソースデバイス１２は移動体無線端末、ビデオストリーミングサーバ、またはビデオブロードキャストサーバであり得る。しかし、本開示で説明する技術は、任意の特定のタイプのブロードキャストシステム、マルチキャストシステムまたはポイントツーポイントシステムに限定されない。ブロードキャストの場合、ソースデバイス１２はビデオデータのいくつかのチャネルをそのそれぞれが図１の宛先デバイス１４に類似し得る複数の宛先デバイスにブロードキャストすることが可能である。従って、ビデオブロードキャスティングに関して単一の宛先デバイス１４が図１に示されるが、ソースデバイス１２は通常、ビデオコンテンツを多くの宛先デバイスに同時にブロードキャストすることになる。
【００７２】
その他の例では、送信機２２、通信チャネル１６および受信機２４は、イーサネット（登録商標）、電話（例えばＰＯＴＳ）、ケーブル、電線、および光ファイバシステム、および／または符号分割多元接続（ＣＤＭＡもしくはＣＤＭＡ２０００（登録商標））通信システム、周波数分割多元接続（ＦＤＭＡ）システム、直交周波数分割多元（ＯＦＤＭ）接続システム、ＧＳＭ（登録商標）（移動体通信用グローバルシステム）、ＧＰＲＳ（汎用パケット無線サービス）、もしくはＥＤＧＥ（拡張データのＧＳＭ環境）などの時分割多元接続（ＴＤＭＡ）システム、ＴＥＴＲＡ（地上基盤無線）移動体電話システム、広帯域符号分割多元接続（ＷＣＤＭＡ）システム、ハイデータレート１×ＥＶ−ＤＯ（第１世代エボリューションデータオンリー）もしくは１×ＥＶ−ＤＯゴールドマルチキャストシステム、ＩＥＥＥ４０２．１８システム、ＭｅｄｉａＦＬＯ（商標）システム、ＤＭＢシステム、ＤＶＢ−Ｈシステム、または２つ以上のデバイスの間のデータ通信向けの別の方式の１つもしくは複数を備える無線システムのうちの１つもしくは複数を含めて、任意の有線通信システムまたは無線通信システムに従って通信するように構成され得る。
【００７３】
ビデオエンコーダ２０およびビデオデコーダ２６は、それぞれ１つもしくは複数のマイクロプロセッサ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０およびビデオデコーダ２６のそれぞれは、それらのいずれかがそれぞれの移動体デバイス、加入者デバイス、ブロードキャストデバイス、サーバなどの中で組み合わされたエンコーダ／デコーダ（コーデック）の一部として統合され得る１つもしくは複数のエンコーダまたはデコーダの中に含まれ得る。加えて、ソースデバイス１２および宛先デバイス１４は、それぞれ無線通信をサポートするのに十分な無線周波数（ＲＦ）無線構成要素およびアンテナを含めて、適用可能な場合、符号化されたビデオの送受信に関して適切な変調、復調、周波数変換、フィルタリングおよび増幅構成要素を含むことが可能である。しかし、例を簡単にするために、そのような構成要素は図１におけるソースデバイス１２の送信機２２および宛先デバイス１４の受信機２４として要約される。
【００７４】
図３は、例示的な基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２をさらに詳細に示すブロック図である。図３の例では、基本レイヤエンコーダ３０は予測ユニット３３Ａ、フレーム格納部３５Ａ、変換ユニット３８Ａ、量子化ユニット４０Ａ、係数走査ユニット４１Ａ、逆量子化ユニット４２Ａ、逆変換ユニット４４Ａ、基本レイヤエントロピーエンコーダ４６、ならびに加算器４８Ａおよび４８Ｂ（「加算器４８」）を含む。図３において異なる特徴をユニットとして示すことは、例示されるデバイスの異なる機能的態様を強調することが意図され、そのようなユニットが個別のハードウェアまたはソフトウェア構成要素によって実現されなければならないことを意味するとは限らない。むしろ、１つもしくは複数のユニットに関連する機能性は、共通のハードウェアまたはソフトウェア構成要素、あるいは個別のハードウェアまたはソフトウェア構成要素の中に組み込まれ得る。
【００７５】
予測ユニット３３Ａは、イントラ予測またはインター予測を用いて予測ブロックを生成する。予測ブロックは、符号化されている現ビデオブロックの予測バージョンであり得る。上で説明したように、予測ユニット３３Ａは符号化されている現ブロックと同じフレーム内の基本レイヤの１つまたは複数の予め符号化されたブロックに基づいて、イントラ予測を用いて予測ブロックを生成することが可能である。あるいは、予測ユニットは基本レイヤの１つまたは複数の隣接するフレーム内の１つまたは複数の予め符号化されたブロックに基づいて、インター予測を用いて予測ブロックを生成することが可能である。予測ユニット３３Ａは、フレーム格納部３５Ａから予め符号化されたブロックを取り出すことが可能である。
【００７６】
ビデオブロックのイントラベースの予測またはインターベースの予測に続いて、基本レイヤエンコーダ３０は加算器４８Ａにおいて現ビデオブロックから予測ユニット３３Ａによって作成された予測ブロックを減じることによって、残差ブロックを生成する。この残差ブロックは、現ビデオブロックの画素値と予測ブロックの画素値との間の差分を量子化する画素差分値のセットを含む。この残差ブロックは、二次元ブロック形態（例えば、二次元行列または画素値のアレイ）の形で表され得る。すなわち、残差ブロックは画素値の二次元表示である。
【００７７】
変換ユニット３８Ａは、残差変換係数を作成するために残差ブロックに変換を適用する。 変換ユニット３８Ａは、例えばＤＣＴ、整数変換、方向変換、ウェーブレット変換、またはそれらの組合せを適用することが可能である。画素値の残差ブロックに変換を適用した後で、量子化ユニット４０Ａはビットレートをさらに削減するために、変換係数を量子化する。量子化に続いて、逆量子化ユニット４２Ａおよび逆変換ユニット４４Ａは残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用することが可能である。加算器４８Ｂは、フレーム格納部３５Ａ内の格納のために再構成されたビデオブロックを作成する目的で、再構成された残差ブロックを予測ユニット３３Ａによって作成された予測ブロックに追加する。フレーム格納部３４内に格納された、再構成されたビデオブロックは、後続のビデオブロックをイントラ符号化またはインター符号化するために、基本レイヤエンコーダ３０の予測ユニット３２によって使用され得る。加えて、下でより詳細に説明するように、フレーム格納部３５Ａ内に格納された、再構成されたビデオブロックは、拡張レイヤ内のビデオブロックの改良版をイントラ符号化またはインター符号化するために、拡張レイヤエンコーダ３２の予測ユニット３３Ｂによって使用され得る。
【００７８】
量子化に続いて、係数走査ユニット４１Ａは二次元ブロック形態から一次元ベクトル形態に係数を走査し、プロセスはしばしば係数走査と呼ばれる。係数走査ユニット４１Ａは、例えば図７においてさらに説明するジグザグ走査順序を用いて、係数の二次元ブロックを走査することが可能である。走査に続いて、基本レイヤエントロピーエンコーダ４６は一次元ベクトルの係数をエントロピー符号化する。基本レイヤエンコーダ４６は、例えばＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義され、図２に関して上で詳細に説明したＣＡＶＬＣを用いて、係数ベクトルの係数をエントロピー符号化することが可能である。
【００７９】
拡張レイヤエンコーダ３２は、予測ユニット３３Ｂ、フレーム格納部３５Ｂ、変換ユニット３８Ｂ、量子化ユニット４０Ｂ、係数走査ユニット４１Ｂ、逆量子化ユニット４２Ｂ、逆変換ユニット４４Ｂ、拡張レイヤエントロピーエンコーダ４９、ならびに加算器４８Ｃおよび４８Ｄ（「加算器４８」）を含む。拡張レイヤエンコーダ３２のユニットは、基本レイヤエンコーダ３０の同類番号付けされたユニットのユニットに本質的に類似する。従って、違いだけを説明することになる。
【００８０】
拡張レイヤエンコーダ３２の予測ユニット３３Ｂは、現ビデオブロックの予測バージョンである予測ブロックを生成する。予測ブロックを生成するために、基本レイヤの予め符号化されたブロックのみを使用する、基本レイヤエンコーダ３０の予測ユニット３３Ａと異なり、拡張レイヤエンコーダ３２の予測ユニット３３Ｂは基本レイヤおよび拡張レイヤの１つまたは複数の予め符号化されたブロックに基づいて予測ブロックを生成することが可能である。すなわち、予測ユニット３３Ｂは基本レイヤから再構成されたビデオブロックと拡張レイヤの再構成されたビデオブロックとを用いて、予測ブロックを生成することが可能である。例えば、予測ユニット３３Ｂは第２のさらに高い品質で予測ブロックを生成するために、基本レイヤの再構成されたビデオブロックを拡張レイヤの再構成されたブロックと組み合わせることが可能である。
【００８１】
予測ユニット３３Ｂによって生成された予測ブロックは、基本レイヤおよび拡張レイヤ両方の再構成されたビデオブロックに基づいて生成されるため、加算器４８Ｃにおいて生成された残差ブロックは、現ビデオブロックと基本レイヤおよび拡張レイヤから、すなわち第２のさらに高い視覚的品質で構成された、予め符号化されたブロックとの間の差分を表す。
【００８２】
拡張レイヤエンコーダ３２の量子化ユニット４０Ｂは、基本レイヤエンコーダ３０の量子化ユニット４０Ａと動作的に類似するが、変換係数を量子化するために異なるＱＰを使用することが可能である。図２に関して上で説明したように、ＳＮＲスケーラビリティは、異なる量子化パラメータを用いて達成され得る。例えば、基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２がＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−１０  ＡＶＣに従って動作するとき、量子化ユニット４０Ａは量子化ユニット４０Ｂによって使用されるＱＰ値よりも大きなＱＰ値を用いてビデオデータを符号化することが可能である。結果として、基本レイヤエンコーダ３０からの量子化された残差変換係数は、第１の品質でビデオシーケンスを表し、拡張レイヤエンコーダ３２からの量子化された残差変換係数は、基本レイヤと組合されるときビデオシーケンスの品質を第２のさらに高い視覚的品質に高める、ビデオ係数の既存の係数の追加の係数または改良版を表す。
【００８３】
さらに、図２に関してより詳細に説明したように、拡張レイヤエントロピーエンコーダ４９は、単一の符号化パス内で量子化された残差変換係数を符号化する。すなわち、拡張レイヤエントロピーエンコーダ４９は係数ベクトルの任意の後続の係数の知識なしに、拡張レイヤの係数ベクトルのそれぞれの非ゼロ係数を符号化することが可能である。単一のパス内で拡張レイヤを符号化することは、係数ベクトルを解析するための第１のパス、およびその解析に基づいて係数ベクトルを符号化するための第２のパスを実行する必要を除去することが可能である。代わりに、拡張レイヤエントロピーエンコーダ４９は、係数ベクトルの始めから開始して単一の符号化パス内で係数のそれぞれを１つずつ符号化する。拡張レイヤのエントロピー符号化に関するさらなる詳細については、図４に関して以下に説明する。
【００８４】
図４は、例示的な基本レイヤエントロピーエンコーダ４６および拡張レイヤエントロピーエンコーダ４９をより詳細に示すブロック図である。基本レイヤエントロピーエンコーダ４６は、解析ユニット５０、複数のＶＬＣテーブル５２Ａ〜５２Ｎ（「ＶＬＣテーブル５２」）、総係数エンコーダ５４、トレイリングワン（Ｔ１ｓ）エンコーダ５６、符号エンコーダ５８、係数の大きさエンコーダ６０、ランの和エンコーダ６２およびランレングスエンコーダ６４を含み得る。拡張レイヤエントロピーエンコーダ４９は、ＥＯＢシンボルエンコーダ６６、ランレングスエンコーダ６８、符号エンコーダ７０およびＶＬＣテーブル６９を含み得る。
【００８５】
基本レイヤエントロピーエンコーダ４６は、複数の符号化パスを実行することによって第１の品質でビデオブロックを表す係数ベクトルを符号化する。Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されるＣＡＶＬＣに従って、例えば基本レイヤエントロピーエンコーダ４６は、例えば係数ベクトルを表すシンボルを生成するため、および／またはＶＬＣテーブルを選択するために、係数ベクトルを解析するための第１の符号化パスおよびその解析に基づいて、係数ベクトルを符号化するための第２の符号化パスを実行することが可能である。
【００８６】
例として、基本レイヤエントロピーエンコーダ４６の解析ユニット５０は係数ブロックを表す１つまたは複数のシンボルを生成するために、係数ベクトルを解析することが可能である。解析ユニット５０は、例えばＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準に従って、ブロック内の総係数の数（TotalCoeff）、トレイリングワンの数（T1s）、それぞれのトレイリングワンの符号、それぞれの非ゼロ係数の大きさ、ランの総和（sumRuns）およびそれぞれの非ゼロ係数に先行するランレングスを決定することが可能である。解析ユニット５０によって生成されるシンボルの少なくともいくつか、例えばTotalCoeffおよびsumRunsは、係数ベクトルの係数のすべてを表すことが可能である。解析ユニット５０は、その他の場合、より多くのシンボルまたはより少ないシンボルを生成することが可能である。
【００８７】
さらに、または別法として解析ユニット５０は第１の符号化パスまたは後続の符号化パスの間に、シンボルを符号化する際に使用するためのＶＬＣテーブル５２のサブセットを選択することが可能である。一態様では、解析ユニット５０は生成されたシンボルに基づいてＶＬＣテーブル５２のサブセットを選択することが可能である。あるいは、解析ユニット５０は係数ベクトルの解析の間に統計を収集して、それらの収集された統計に基づいてＶＬＣテーブル５２のサブセットを選択することが可能である。例えば、ブロック内の係数の総数（TotalCoeffs）の値とsumRunsシンボルの値の間に何らかの関係が存在するため、基本レイヤエンコーダ３０はブロック内の係数の総数（TotalCoeffs）に基づいてsumRunsシンボルを符号化するときに使用するためのＶＬＣテーブルを選択することが可能である。下で詳細に説明するように、生成されたシンボルまたはその他の統計に基づいてＶＬＣテーブル５２のサブセットを選択することは、係数ベクトルを表すシンボルのより効率的な符号化を可能にし得る。
【００８８】
基本レイヤエントロピーエンコーダ４６は、第２の符号化パスまたはその他の後続の符号化パスの間に、係数ベクトルを符号化する。詳細には、総係数エンコーダ５４は係数ベクトル内の非ゼロ係数の総数（TotalCoeff）を符号化する。総係数エンコーダ５４は、現在の係数ベクトルの非ゼロ係数の数の予測に基づいて選択されたＶＬＣテーブル５２のうちの１つを用いてTotalCoeffを符号化することが可能である。一例では、現在の係数ベクトルの非ゼロ係数の数の予測は１つまたは複数の予め符号化されたビデオブロック、例えば上隣接ビデオブロックおよび左隣接ビデオブロックの非ゼロ係数の数に基づいて行われ得る。このように基本レイヤエントロピーデコーダは、予め復号されたブロックに基づいて同じＶＬＣテーブルを選択することが可能である。
【００８９】
総係数エンコーダ５４が非ゼロ係数の総数を符号化した後で、Ｔ１ｓエンコーダ５６はＴ１ｓシンボルを符号化する。Ｔ１ｓエンコーダ５６は、例えば総係数エンコーダ５４に関して上で説明したのと同じ形で、非ゼロ係数の予測数に基づいて選択されたＶＬＣテーブル５２のうちの１つを用いてＴ１ｓシンボルを符号化することが可能である。
【００９０】
符号エンコーダ５８は、任意のトレイリングワンの符号（sign）を符号化する。例えば、符号エンコーダ５８はトレイリングワンのそれぞれに関してトレイリングワンの符号が正である場合、「１」を符号化し、トレイリングワンの符号が負である場合、「０」を符号化することが可能である。係数の大きさエンコーダ６０は、トレイリングワン以外の非ゼロ係数のレベル（例えば、大きさ）を符号化する。係数の大きさエンコーダ６０は、ＶＬＣテーブル、固定長符号化またはその他のタイプのエントロピー符号化を用いて非ゼロ係数のレベルを符号化することが可能である。
【００９１】
ランの和エンコーダ６２は、最後の非ゼロ係数の前に係数ベクトル内で発生するゼロ値係数の数を表すシンボル、すなわち、sumRunsシンボルを符号化することが可能である。ランの和エンコーダ６２は、ブロック内の係数の総数（TotalCoeffs）に基づいて選択されたＶＬＣテーブル５２のうちの１つを用いてsumRunsシンボルを符号化する。この場合も、ブロック内の係数の総数（TotalCoeffs）に基づいてsumRunsシンボルを符号化するときに使用するためのＶＬＣテーブルを選択することは、ランの和エンコーダ６２がsumRunsをより効率的に符号化するＶＬＣテーブルを選択することを可能にし得る。
【００９２】
ランレングスエンコーダ６４は、係数ベクトルのランレングスを符号化する。ランレングスエンコーダ６４は、係数ベクトルの第１の非ゼロ係数の前のランレングスが符号化されるまで、まず係数ベクトルの最後の非ゼロ係数のランレングスと、その後に続く先行する非ゼロ係数のランレングス、等々を符号化することが可能である。すなわち、ランレングスエンコーダはまず最後のランレングスの符号化を始めることが可能である。ランレングスエンコーダ６４は、係数ベクトルの総ランの和（sumRuns）と、これまで符号化されたランの和とに基づいて選択されたＶＬＣテーブル５２を用いてランレングスのそれぞれを符号化することが可能である。例として、係数ベクトルが８のランの和（sumRuns）を有し、符号化された最後の非ゼロ係数の前に符号化されたランが６であった場合、すべての残りのランは０、１、または２でなければならない。それぞれの追加のランが符号化されるに従って可能なランレングスは段階的に短くなるため、ランレングスエンコーダ６４はランを表すために使用されるビットの数を削減するために、より効率的なＶＬＣテーブルを選択することが可能である。このようにランレングスエンコーダ６４によって使用されるＶＬＣテーブル５２は、ランレングスのそれぞれに関して異なり得る。
【００９３】
拡張レイヤエントロピーエンコーダ４９は、拡張レイヤを形成するために単一の符号化パス内のビデオブロックに、例えば既存の係数に対する追加の係数または改良版の形をとる改良版を表す係数ベクトルを符号化する。より詳細に説明するように、ソースデバイス１２は、場合によっては任意の後続の係数の知識なしに拡張レイヤの係数ベクトルのそれぞれの非ゼロ係数を符号化することが可能である。拡張レイヤエントロピーエンコーダ４９は、係数ベクトルの始めから開始して単一の符号化パス内で係数のそれぞれを１つずつ符号化することが可能である。このように拡張レイヤエンコーダ４９は、係数ベクトル内で後に発生する係数を解析することなく、係数単位ベースで係数ベクトルを符号化する。単一のパス内で拡張レイヤを符号化することは、係数ベクトルを解析するための第１のパスおよびその解析に基づいて、係数ベクトルを符号化するための第２のパスを実行する必要を除去することが可能である。
【００９４】
非ゼロ係数のそれぞれに関して、ＥＯＢシンボルエンコーダ６６は係数ベクトル内に少なくとも１つの残りの非ゼロ係数が存在することを示すＥＯＢシンボルを符号化する。例えば、ＥＯＢシンボルエンコーダ６６は少なくとも１つの残りの非ゼロ係数、例えば少なくとも現在の非ゼロ係数が存在する場合、０を符号化し、それ以上の残りの非ゼロ係数が存在しない場合、１を符号化することが可能である。
【００９５】
それぞれの係数のＥＯＢシンボルを符号化することに続いて、ランレングスエンコーダ６８は非ゼロ係数に先行するランレングスを符号化する。上で説明したように、ランレングスは現在の非ゼロ係数に先行するゼロ値係数の数を表す。ランレングスエンコーダ６８は、単一のＶＬＣテーブル６９を用いてランレングスを符号化することが可能である。一例では、ＶＬＣテーブル６９は基本レイヤエントロピーエンコーダ４６のＶＬＣテーブル５２のうちの１つと同じであり得る。あるいは、ランレングスエンコーダ６８は、詳細には拡張レイヤの係数ベクトルのランを符号化するように設計された、個別のＶＬＣテーブルを維持することが可能である。いずれの場合も、ランレングスエンコーダ６８はランを符号化するために使用するためのＶＬＣテーブルを順応的に選択する必要がない可能性がある。代わりに、ランレングスエンコーダ６８は単一のＶＬＣテーブルを使用することが可能であり、それによりＶＬＣテーブルを選択するために使用される統計を収集するための第１のパスの必要を除去する。
【００９６】
それぞれの係数の符号化されたランレングスに続いて、符号エンコーダ７０は非ゼロ係数の符号を符号化する。符号エンコーダ７０は、例えば非ゼロ係数の符号が正である場合、「１」を符号化し、非ゼロ係数の符号が負である場合、「０」を符号化することが可能である。拡張レイヤエントロピーエンコーダ４９は、拡張レイヤの非ゼロ係数の大きさを符号化しなくてよく、これは結果としてピーク信号対雑音比（ＰＳＮＲ）に何らかの損失をもたらす可能性があるが、係数を符号化するために使用されるビットの数を削減する。
【００９７】
本開示のエントロピー符号化技術は、拡張レイヤエントロピーエンコーダ４９が単一のパス内で拡張レイヤビットストリームの係数を符号化することを可能にし得る。拡張レイヤエントロピーエンコーダ４９は、例えばシンボルを生成するためおよび／またはＶＬＣテーブルを選択するために係数ベクトルを解析しないので、１つの符号化パスのみが必要とされる。通常のエンコーダは、一般に２つのパスを実行する。すなわち、（１）係数ベクトルを解析するための第１のパスおよび（２）その解析に基づいて、係数ベクトルを符号化するための第２のパスである。加えて、拡張レイヤエントロピーエンコーダ４９は単一のＶＬＣテーブルを用いて拡張レイヤの係数を符号化することが可能であり、それにより様々なＶＬＣテーブルから選択するために符号化パスを実行する必要を除去する。このように拡張レイヤエントロピーエンコーダ４９は、符号化の複雑さ、符号化遅延およびメモリ要件を削減することが可能である。さらに、本開示のエントロピー符号化技術は、さらに結果として基本レイヤの係数情報を格納することと、当該情報にアクセスすることとを伴わずに、拡張レイヤの係数の符号化することが可能であり、さらに演算上の複雑さおよびメモリ要件を低減する。
【００９８】
図５は、基本レイヤデコーダ３４および拡張レイヤデコーダ３６の例をさらに詳細に示すブロック図である。基本レイヤデコーダ３４は基本レイヤエントロピーデコーダ７２、係数走査ユニット７４Ａ、逆量子化ユニット７６Ａ、逆変換ユニット７８Ａ、予測ユニット８０Ａ、フレーム格納部８２Ａおよび加算器８４Ａを含む。拡張レイヤデコーダ３４は、拡張レイヤエントロピーデコーダ８６、係数走査ユニット７４Ａ、逆量子化ユニット７６Ａ、逆変換ユニット７８Ａ、予測ユニット８０Ａ、フレーム格納部８２Ａおよび加算器８４Ａを含む。
【００９９】
基本レイヤエントロピーデコーダ７２は、ディスプレイデバイス上で表示する目的で第１の品質でビデオデータを作成するために、受信された基本レイヤビットストリームを復号する。基本レイヤエントロピーデコーダ７２は、基本レイヤビットストリームを受信して、残差情報（例えば、量子化された残差係数の一次元ベクトルの形をとる）およびヘッダ情報（例えば、１つまたは複数のヘッダシンタックス要素の形をとる）を取得するために、基本レイヤビットストリームを復号する。基本レイヤエントロピーデコーダ７２は、図３および４の基本レイヤエントロピーエンコーダ４６によって実行された符号化とは逆の復号機能を実行する。
【０１００】
詳細には、基本レイヤエントロピーデコーダ７２は基本レイヤの量子化された残差係数のベクトルを表すシンボルを取得するために基本レイヤを復号する。例えば、Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣを用いて符号化するとき、基本レイヤエントロピーデコーダ７２はブロック内の非ゼロ係数の総数（TotalCoeff）、ブロックのトレイリングワンの数（T1s）、トレイリングワンの符号、トレイリングワン以外の係数の大きさ、すべてのランの和（sumRuns）および非ゼロ係数のそれぞれの前のランを取得するために基本レイヤを復号することが可能である。場合によっては、復号のために選択されたＶＬＣテーブルは予め復号されたブロックまたは現ブロックの予め復号されたシンボルに基づいて選択され得る。その他の場合、基本レイヤエントロピーデコーダ３４は基本レイヤシンボルを復号する際に使用するためのＶＬＣテーブルを識別するために、基本レイヤビットストリームを復号することが可能である。復号されたシンボルを用いて、基本レイヤデコーダ３４は基本レイヤの係数ベクトルを再構成することが可能である。
【０１０１】
係数ベクトルを生成した後で、係数走査ユニット７４Ａは量子化された残差係数の二次元ブロックを生成するために係数ベクトルを逆走査する。逆量子化ユニット７６Ａは、量子化された残差係数を逆量子化、すなわち量子化解除し、変換ユニット７８Ａは画素値の残差ブロックを作成するために、量子化解除された残差係数に逆変換、例えば逆ＤＣＴ、逆整数変換、逆ウェーブレット変換または逆方向変換を適用する。
【０１０２】
予測ユニット８０Ａは、イントラ予測の場合は共通のフレーム内の１つもしくは複数の隣接するブロックを用いて、またはインター予測の場合は隣接するフレーム内の１つもしくは複数のブロックを用いて、予測ブロックを生成する。予測ユニットは、基本レイヤからの予め符号化されたブロックのみを用いて予測ブロックを生成する。加算器８４Ａは、再構成された基本レイヤビデオブロックを形成するために、画素値の残差ブロックを用いて予測ユニット８０Ａによって生成された予測ブロックを合計する。基本レイヤビデオブロックは、後続の予測ブロックを生成する目的で使用されるために、フレーム格納部８２Ａ内に格納される。
【０１０３】
拡張レイヤデコーダ３６は、例えば既存の残差係数に対する追加の残差係数または改良版のベクトルの形をとる、ビデオデータの改良版を取得するために、拡張レイヤビットストリームを復号する。拡張レイヤエントロピーデコーダ８６は、ＥＯＢシンボルがそれ以上の非ゼロ係数が残っていないことを示すまで、拡張レイヤエントロピーエンコーダ４９によって使用されたのと同じＶＬＣテーブルを用いて拡張レイヤ係数のランおよび符号を復号する。復号されたシンボルを用いて、 拡張レイヤエントロピーデコーダ８６は拡張レイヤブロックの係数ベクトルを再構成する。復号された係数ベクトルは、基本レイヤのビットと組み合わされたとき、復号されたビデオデータの品質を第２のさらに高い品質に高める改良版を表す追加のビットを表す。
【０１０４】
係数ベクトルを生成した後で、係数走査ユニット７４Ｂは量子化された残差係数の二次元ブロックを生成するために、係数ベクトルを逆走査する。逆量子化ユニット７６Ｂは量子化された残差係数を逆量子化、すなわち量子化解除し、逆変換ユニット７８Ｂは画素値の残差ブロックを作成するために、量子化解除された残差係数に逆変換、例えば逆ＤＣＴ、逆整数変換、逆ウェーブレット変換または逆方向変換を適用する。
【０１０５】
予測ユニット８０Ｂは、イントラ予測の場合は共通のフレーム内の１つもしくは複数の隣接するブロックを用いて、またはインター予測の場合は隣接するフレーム内の１つもしくは複数のブロックを用いて、予測ブロックを生成する。予測ユニットは、基本レイヤおよび拡張レイヤの両方からの予め符号化されたブロックを用いて予測ブロックを生成する。加算器８４Ｂは、再構成された拡張レイヤビデオブロックを形成するために、画素値の残差ブロックを用いて予測ユニット８０Ｂによって生成された予測ブロックを合計する。拡張レイヤビデオブロックは、後続の予測ブロックを生成する際に、予測ユニット８０Ｂによる使用のためにフレーム格納部８２Ｂ内に格納される。再構成された基本レイヤビデオブロックおよび再構成された拡張レイヤビデオブロックは、さらに高い品質を有するビデオブロックを形成するために、加算器８４Ｃにおいて組み合わされる。
【０１０６】
図６は、例示的な基本レイヤエントロピーデコーダ７２および拡張レイヤエントロピーデコーダ８６をより詳細に示すブロック図である。基本レイヤエントロピーデコーダ７２は、複数のＶＬＣテーブル５２Ａ〜５２Ｎ（「ＶＬＣテーブル５２」）、総係数デコーダ９０、トレイリングワン（Ｔ１ｓ）デコーダ９２、符号デコーダ９４、係数の大きさデコーダ９６、ランの和デコーダ９８およびランレングスデコーダ１００を含み得る。拡張レイヤエントロピーデコーダ８６は、ＥＯＢシンボルデコーダ１０２、ランレングスデコーダ１０４、符号デコーダ１０６およびＶＬＣテーブル６９を含み得る。
【０１０７】
基本レイヤエントロピーデコーダ７２は、基本的な品質レベルでビデオブロックの係数ベクトルを示すシンボルを取得するために、基本レイヤビットストリームを復号する。総係数デコーダ９０は、係数ベクトル内の非ゼロ係数の総数（TotalCoeff）を取得するために、ＶＬＣテーブル５２のうちの１つを用いてビットストリームを復号する。総係数デコーダ９０は、現在の係数ベクトルの非ゼロ係数の数の予測に基づいて、例えば１つまたは複数の予め復号されたビデオブロックの非ゼロ係数の数に基づいて、TotalCoeffを復号するためのＶＬＣテーブル５２を選択することが可能である。このように総係数デコーダ９０は、TotalCoeffシンボルを符号化するために総係数エンコーダ５４によって使用されたのと同じＶＬＣテーブル５２を選択することが可能である。
【０１０８】
総係数デコーダ９０が非ゼロ係数の総数を復号した後で、Ｔ１ｓデコーダ９２はＴ１ｓシンボルを復号する。Ｔ１ｓシンボルは、逆の順序で係数ベクトルが読み取られたとき、２以上の大きさを有する係数に遭遇する前に遭遇する、１の大きさを有する係数の数を表す。Ｔ１ｓデコーダ９２は、非ゼロ係数の予測数に基づいて選択されたＶＬＣテーブル５２のうちの１つを用いてＴ１ｓシンボルを復号することが可能である。
【０１０９】
符号デコーダ９４は、任意のトレイリングワンの符号を復号する。例えば、符号デコーダ９４はトレイリングワンのそれぞれに関して「１」が受信されたとき、係数の符号が正であることを決定し、「０」が受信されたとき、係数の符号が負であることを決定することが可能である。係数の大きさデコーダ９６は、トレイリングワン以外の非ゼロ係数の大きさを復号する。係数の大きさデコーダ９６は、ＶＬＣテーブル、固定長符号化、またはその他のタイプのエントロピー符号化を用いて、非ゼロ係数のレベルを復号することが可能である。
【０１１０】
ランの和デコーダ９８は、最後の非ゼロ係数の前の係数ベクトル内で発生するゼロ値係数の数を表すシンボル、すなわちsumRunsシンボルを復号することが可能である。ランの和デコーダ９８は、総係数デコーダ９０によって予め復号された、ブロック内の係数の総数（TotalCoeffs）に基づいて選択されたＶＬＣテーブル５２のうちの１つを用いてsumRunsシンボルを復号する。この場合も、ブロック内の係数の総数（TotalCoeffs）に基づいて、sumRunsシンボルを復号するときに使用するためのＶＬＣテーブルを選択することは、ランの和デコーダ９８がsumRunsをより効率的に復号するＶＬＣテーブルを選択することを可能にし得る。
【０１１１】
ランレングスデコーダ１００は、係数ベクトルのランレングスを復号する。ランレングスデコーダ１００は、係数ベクトルの第１の非ゼロ係数の前のランレングスが復号されるまで、まず係数ベクトルの最後の非ゼロ係数のランレングスとその後に続く先行する非ゼロ係数のランレングス、等々を復号することが可能である。すなわち、ランレングスデコーダ１００は、まず最後のランレングスの復号を始めることが可能である。ランレングスデコーダ６４は、係数ベクトルの総ランの和（sumRuns）とこれまでに符号化されたランの和とに基づいて選択されたＶＬＣテーブル５２を用いてランレングスのそれぞれを復号することが可能である。sumRunsシンボルは、ランの和デコーダ９８によって予め復号される。しかし、ランレングスデコーダ１００は、これまで復号されたランの和に関する統計を収集することが可能である。それぞれの追加のランが復号されるにつれて可能なランレングスは段階的に短くなるため、ランレングスデコーダ１００はランを表すために使用されるビットの数を削減するために、より効率的なＶＬＣテーブルを選択することが可能である。このようにランレングスデコーダ１００によって使用されるＶＬＣテーブル５２は、ランレングスのそれぞれに関して異なり得る。
【０１１２】
拡張レイヤエントロピーデコーダ８６は、例えば既存の係数に対する追加の係数または改良版の形をとる、ビデオブロックに関する改良版を取得するために、拡張レイヤのビットストリームを復号する。ＥＯＢシンボルデコーダ１０２は、少なくとも１つの残りの非ゼロ係数が存在するかどうかをＥＯＢシンボルが示すかどうかを決定する。少なくとも１つの残りの非ゼロ係数が存在するとき、ランレングスデコーダ１０４は、 次の非ゼロ係数に先行するランレングスを復号する。ランレングスデコーダ１０４は、ランレングスエンコーダ６８によって使用されたＶＬＣテーブルと同じであるＶＬＣテーブル６９を用いて、次の非ゼロ係数のランレングスを復号することが可能である。符号エンコーダ１０６は、非ゼロ係数の符号を復号する。例えば、符号エンコーダ１０６は「１」が受信されたとき、係数の符号が正になり、「０」が受信されたとき、負になることを決定することが可能である。拡張レイヤエントロピーデコーダ８６は、残りの非ゼロ係数が存在しないことをＥＯＢシンボルデコーダ１０２が示すまで非ゼロ係数を復号し続ける。
【０１１３】
図７は、４×４係数ブロック４０のジグザグ走査を例示する概念図である。図７に示されるジグザグ走査は、図２のエンコーダ３０、３２によって実行され得る。図７に示される、このようなジグザグ走査に関する走査順序はビデオブロック１１０を通して矢印をたどり、係数ｃ１〜ｃ１６は走査順序でラベル付けされている。詳細には、図７に示される数値は系列一次元ベクトル内の係数の位置を示し、係数の実際の値を示さない。図７に例示されるジグザグ走査の結果は、一次元係数ベクトルＸである。ここで、
【数１】
0005456867.tif 000002
【０１１４】
であり、ｃ１〜ｃ１６は係数の二次元アレイ内の係数の位置を表す。
【０１１５】
本開示の技術は、任意の特定の走査順序または技術に限定されない。例えば、本開示で使用される走査順序は図７に示されるジグザグ走査順序であってよい。あるいは、本開示で使用される走査順序は水平走査、垂直走査または任意のその他の走査技術など、その他の走査順序であってもよい。
【０１１６】
図８は、拡張レイヤの係数の係数ブロック１２０の仮説例を示す概念図である。この例では、図８に示される数値は位置にある係数の実際の値を示す。係数ブロック１２０の実際の係数値は、量子化された残差係数、量子化を伴わない変換係数または拡張レイヤ内のビデオブロックのその他のタイプの係数を表し得る。図８示される例では、係数ブロック１２０は４×４ブロックである。しかし、本開示の技術は任意のサイズのブロックに適用するために拡張され得る。図３に例示されるジグザグ走査に従って係数ブロック１２０を走査した後で、結果として生じる係数ベクトルＶは、
【数２】
0005456867.tif 000003
【０１１７】
である。
【０１１８】
拡張レイヤエンコーダ３２は、本開示で説明する技術に従って係数ベクトルＶの係数のそれぞれを符号化する。例として、係数ベクトルＶの非ゼロ係数のそれぞれに関して拡張レイヤエンコーダ３２はＥＯＢシンボルとランレングスおよび符号を符号化する。上で詳細に説明したように、ＥＯＢシンボルは係数ベクトル内に任意の残りの非ゼロ係数が存在するかどうかを示し、ランレングスは係数ベクトルの現在の非ゼロ係数の前に発生するゼロ値係数の数を表し、符号は係数値が正であるか、または負であるかを示す。
【０１１９】
本開示の一態様によれば、拡張レイヤエンコーダ３２は係数の大きさを符号化しなくてよい。代わりに、拡張レイヤエンコーダ３２は非ゼロ係数のすべての大きさが１に等しかった場合と同様に、非ゼロ係数のそれぞれを符号化することが可能である。このように、拡張レイヤエンコーダ３２はＶの代わりに以下の係数ベクトルＶ’を符号化すると見なされ得る。
【数３】
0005456867.tif 000004
【０１２０】
拡張レイヤエンコーダ３２は、０に等しいＥＯＢと０のランに関する符号語と１に等しい符号とを用いて第１の係数（すなわち、係数ベクトルＶ内の４または係数ベクトルＶ’内の１）を符号化すること、０に等しいＥＯＢと２のランに関する符号語と０に等しい符号とを用いて、第２の係数（すなわち、係数ベクトルＶ内の−２または係数ベクトルＶ’内の−１）を符号化すること、および０に等しいＥＯＢと１のランに関する符号語と１に等しい符号（sign）と、その後に続く１に等しいＥＯＢシンボルとを用いて、第３の非ゼロ係数（すなわち、係数ベクトルＶ内または係数ベクトルＶ’内の１）を符号化することが可能である。上で説明したように、ランを符号化するために使用される符号語はＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＶＬＣテーブルから取得され得る。
【０１２１】
この例示的な符号化されたビットストリームは、例示のために説明される。拡張レイヤエンコーダ３２は、本開示の範囲から逸脱することなく、異なる形で係数ベクトルＶ，Ｖ’を符号化することが可能である。例えば、ＥＯＢシンボルはブロック内で追加の非ゼロ係数を表すために１として符号化され得るし、残りの非ゼロ係数が存在しないことを表すために０として符号化され得る。同様に、符号シンボルは正の非ゼロ係数を表すために０として符号化され得るし、負の非ゼロ係数を表すために１として符号化され得る。もう１つの例として、それぞれの非ゼロ係数に関して符号化されたＥＯＢシンボルは、現在の係数がベクトルの最後の非ゼロ係数であるかどうかを表すことが可能である。従って、符号化されたビットストリームの終端においてＥＯＢシンボルが存在しない可能性がある。代わりに、現在の係数が最後の非ゼロ係数であることをＥＯＢシンボルが示すとき、ビデオデコーダは現在の係数のランおよびシンボルを復号した後でブロックの追加の係数が存在しないことをわかっている。
【０１２２】
図９は、本開示のスケーラブルビデオ符号化技術を実行している、図２のビデオエンコーダ２０などのビデオエンコーダの例示的な動作を示す流れ図である。ビデオエンコーダ２０の基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、ビデオソース１８からビデオデータを取得する（１３０）。上で説明したように、基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は同じ原ビデオデータを取得する。ビデオソース１８から取得されたビデオデータは、例えば一連のビデオフレームであり得る。
【０１２３】
それぞれのビデオブロックに関して、基本レイヤエンコーダ３０は複数の符号化パスを実行する符号化技術を用いて基本レイヤを符号化する（１３２）。基本レイヤは、第１の品質レベルでビデオブロックを符号化する。基本レイヤエンコーダ３０は、第１の品質でビデオブロックを表す係数ベクトルを生成して基本レイヤを生成するために、当該ブロックの残差変換係数を符号化することが可能である。基本レイヤエンコーダ３０はＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣに従って基本レイヤを生成するために、係数ベクトルを符号化することが可能である。図２に関して上で詳細に説明したように、基本レイヤエンコーダ３０は係数ベクトルを解析するための第１の符号化パスおよびその解析に基づいて、係数ベクトルを符号化するための第２のパスを実行することが可能である。
【０１２４】
それぞれのビデオブロックに関して、拡張レイヤエンコーダ３２は単一の符号化パスを実行する符号化技術を用いて拡張レイヤとして追加のビットを符号化する（１３４）。拡張レイヤビットストリームの追加のビットは、基本レイヤビットストリームに追加されたとき、ビデオを第２のさらに高い品質レベルに高める改良版を符号化する。拡張レイヤエンコーダ３２は、この例において単一の拡張レイヤのみを符号化するとして説明するが、拡張レイヤエンコーダ３２は２つ以上の拡張レイヤビットストリームを符号化することが可能である。その場合、拡張レイヤが復号されるにつれて拡張レイヤは段階的にさらに高い品質を提供するという意味で、拡張レイヤは階層的であり得る。
【０１２５】
拡張レイヤエンコーダ３２によって使用される第２のエントロピー符号化技術は、拡張レイヤの係数ベクトルの非ゼロ係数のそれぞれに関してＥＯＢシンボルとランと符号とを符号化することが可能である。上で詳細に説明したように、ＥＯＢシンボルは任意の残りの非ゼロ係数が存在するかどうかを示すことが可能であり、ランレングスは非ゼロ係数に先行して発生するゼロ値係数の数を示し、符号は係数値が正であるか、または負であるかを示す。最後の非ゼロ係数の符号に続いて、拡張レイヤエンコーダ３２は残りの非ゼロ係数が存在しないことを示すために、ＥＯＢシンボルを符号化することが可能である。
【０１２６】
基本レイヤエンコーダ３０および拡張レイヤエンコーダ３２は、それぞれ符号化された基本レイヤビットストリームおよび符号化された拡張レイヤビットストリームを出力する（１３６）。拡張レイヤエンコーダ３２によって使用されるエントロピー符号化技術は、符号化効率性の損失をあまり伴わずに、さらに低い演算上および実装上の複雑さを伴って、拡張レイヤの残差係数の符号化を可能にし得る。本開示のエントロピー符号化技術は、単一の符号化パス内の拡張レイヤビットストリーム内で、例えば改良版の形をとる追加のビデオデータの符号化を可能にし、それにより符号化の複雑さ、符号化遅延、およびメモリ要件を削減することが可能である。例えば、拡張レイヤエンコーダ３２は、任意の後続の係数の知識なしに拡張レイヤの係数ベクトルのそれぞれの非ゼロ係数を符号化することが可能であり、それにより単一のパス内で係数ベクトルの符号化を可能にして、係数ベクトルを解析するための第１のパスおよびその解析に基づいて、係数ベクトルを符号化するための第２のパスを実行する必要を除去する。
【０１２７】
図１０は、本開示の一態様に従って拡張レイヤのビデオブロックの残差係数を符号化している、図２の拡張レイヤエンコーダ３２などの拡張レイヤエンコーダの例示的な動作を示す流れ図である。拡張レイヤエンコーダ３２は、拡張レイヤブロックの係数ベクトル内の第１の非ゼロ係数を識別する（１４０）。拡張レイヤエンコーダ３２は、拡張レイヤブロックの係数ベクトル内に少なくとも１つの残りの非ゼロ係数が存在することを示すＥＯＢシンボルを符号化する（１４２）。拡張レイヤエンコーダ３２は、単一のビットを用いてＥＯＢシンボルを符号化すること、例えば少なくとも１つの残りの非ゼロ係数が存在するとき０を符号化し、それ以上の残りの非ゼロ係数が存在しないとき１を符号化することが可能である。
【０１２８】
拡張レイヤエンコーダ３２は、非ゼロ係数に先行するゼロ値係数の数を示すランを符号化する（１４４）。拡張レイヤエンコーダ３２は、場合によってはＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣに関して既に格納されたＶＬＣテーブルを用いてランを符号化することが可能である。例えば、拡張レイヤエンコーダ３２は係数の総数（TotalCoeffs）が１に等しいとき、ランの総和（sumRuns）を符号化するために使用されるＶＬＣテーブルを用いてランを符号化することが可能である。あるいは、拡張レイヤエンコーダ３２は、特に拡張レイヤの係数ベクトルのランを符号化するように設計された個別のＶＬＣテーブルを維持することが可能である。
【０１２９】
拡張レイヤエンコーダ３２は、非ゼロ係数の符号を符号化することが可能である（１４６）。拡張レイヤエンコーダ３２は、例えば非ゼロ係数の符号が正である場合は「１」を符号化し、非ゼロ係数の符号が負である場合は「０」を符号化することが可能である。場合によっては、拡張レイヤエンコーダ３２は非ゼロ係数の大きさを符号化しなくよてい。このように拡張レイヤエンコーダ３２は、非ゼロ係数の大きさを１に制限することが可能である。従って、２以上の大きさを有する任意の非ゼロ係数は、１に等しく設定される。拡張レイヤの非ゼロ係数の大きさを符号化しないことは、結果として、ピーク信号対雑音比（ＰＳＮＲ）に何らかの損失をもたらす可能性があるが、非ゼロ係数を符号化するために使用されるビットの数を削減する。
【０１３０】
拡張レイヤエンコーダ３２は、拡張レイヤブロック内に任意の残りの非ゼロ係数が存在するかどうかを決定する（１４８）。拡張レイヤブロック内に少なくとも１つの残りの非ゼロ係数が存在する場合、拡張レイヤエンコーダ３２は残りの非ゼロ係数のそれぞれに関して、ＥＯＢとランと符号とを符号化し続ける。拡張レイヤブロック内に残りの非ゼロ係数が存在しないとき、拡張レイヤエンコーダ３２は拡張レイヤブロックの係数ベクトル内に残りの非ゼロ係数が存在しないことを示すためのＥＯＢシンボルを符号化する（１４９）。上で説明したように、拡張レイヤは基本レイヤに沿って送信される。
【０１３１】
図１０で説明された拡張レイヤ符号化技術は、２つ以上の係数を指すシンボルを符号化しないため、拡張レイヤ符号化技術は拡張レイヤエンコーダ３２が利用可能なビットレートに応じて符号化の間に係数ベクトルの量子化された残差係数のうちの１つまたは複数を破棄することを可能にし得る。さらに、拡張レイヤ符号化技術は符号化の複雑さおよび実装を削減する。
【０１３２】
図１１は、残差変換係数のベクトルを取得するために拡張レイヤビットストリームを復号している、図２の拡張レイヤデコーダ３６などの拡張レイヤデコーダの例示的な動作を示す流れ図である。拡張レイヤデコーダ３６は、拡張レイヤビットストリームを取得する（１５０）。拡張レイヤデコーダ３６は、任意の残りの非ゼロ係数が存在するかどうかを決定するために、ＥＯＢシンボルを解析する（１５２）。拡張レイヤデコーダ３６は、例えばＥＯＢシンボルが０に等しいとき少なくとも１つの残りの非ゼロ係数が存在することを決定し、ＥＯＢシンボルが１に等しいとき残りの非ゼロ係数が存在しないことを決定することが可能である。
【０１３３】
拡張レイヤデコーダ３６が少なくとも１つの残りの非ゼロ係数が存在すること、例えばＥＯＢシンボルが０に等しいことを決定するとき、拡張レイヤデコーダ３６は次の非ゼロ係数に関連するランを復号する（１５４）。次の非ゼロ係数に関連するランは、非ゼロ係数に先行するゼロ値係数の数を表す。拡張レイヤデコーダ３６は、拡張レイヤエンコーダ３２によって使用された同じＶＬＣテーブルを用いて、ランを復号する。一例では、拡張レイヤデコーダ３６は係数の総数（TotalCoeffs）が１に等しいときランの総和（sumRuns）を符号化する際に使用するために、Ｈ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義されたＣＡＶＬＣで使用されたＶＬＣテーブルを用いてランを復号することが可能である。しかし、拡張レイヤエンコーダ３２によって使用されたのと同じテーブルである限り、その他のＶＬＣテーブルが使用されることも可能である。拡張レイヤデコーダ３６は、係数の数を０に等しい非ゼロ係数に先行するランレングスに等しく設定する（１５６）。例えば、ランレングスが２に等しい場合、拡張レイヤデコーダ３６は非ゼロ係数に先行する２つの係数を０に等しく設定することが可能である。
【０１３４】
拡張レイヤデコーダ３６は、非ゼロ係数の符号を復号する（１５８）。非ゼロ係数の符号は、符号シンボルが１に等しいとき正として復号され、符号シンボルが０に等しいとき負として復号され得る。非ゼロ係数の符号を復号した後で、拡張レイヤデコーダ３６は復号された符号に基づいて非ゼロ係数をプラスマイナス１に等しく設定することが可能である（１６０）。上で説明したように、拡張レイヤは、拡張レイヤの係数の大きさを符号化しなくてもよい。従って、拡張レイヤデコーダ３６はすべての非ゼロ係数の大きさを１に等しく設定するように構成され得る。
【０１３５】
拡張レイヤデコーダ３６は、拡張レイヤデコーダ３６が残りの非ゼロ係数が存在しないこと、例えばＥＯＢシンボルが１に等しいことを決定するまで、非ゼロ係数のランおよび符号を復号し続ける。この時点で、拡張レイヤデコーダ３６は何らかの係数が残っている場合、ベクトルの残りの係数を０に等しく設定する（１６２）。図２に関してより詳細に説明したように、拡張レイヤデコーダ３６はディスプレイ２８に表示する目的でビデオブロックを再構成するために、予測ブロックおよびその他のデータに加えて係数ベクトルを使用する。
【０１３６】
図１２〜１５は、スケーラブルビデオ符号化において使用するためのエンコーダおよび／またはデコーダの異なる構成を例示するブロック図である。これらの例示的なエンコーダおよびデコーダは、その中で本開示の技術が利用され得るエンコーダのタイプを例示するためである。しかし、例示的な構成は決して説明される技術に限定されるべきではない。これらの技術は、任意のスケーラブルビデオエンコーダにおいて使用され得る。
【０１３７】
図１２〜１５に示される例示的なビデオエンコーダおよびビデオデコーダのそれぞれは、拡張レイヤビットストリームの効率的な符号化を促すために、本開示で説明するエントロピー符号化技術を利用することが可能である。本開示のエントロピー符号化技術は、単一の符号化パス内の拡張レイヤビットストリーム内で、例えば改良版の形をとる、追加のビデオデータの符号化を可能にし、それにより符号化の複雑さ、符号化遅延、およびメモリ要件を削減する。さらに詳細に説明するように、拡張レイヤの係数ベクトルのそれぞれの非ゼロ係数は任意の後続の係数、すなわち現在復号されている非ゼロ係数に続く任意の係数の知識なしに符号化され得る。単一のパス内で拡張レイヤを符号化することは、係数ベクトルを解析するための第１のパスおよびその解析に基づいて、係数ベクトルを符号化するための第２のパスを実行する必要を除去することが可能である。
【０１３８】
図１２は、例示的なスケーラブルビデオエンコーダ１７０を示すブロック図である。スケーラブルビデオエンコーダ１７０は、例えば図２のビデオエンコーダ２０に対応し得る。図１２の例では、スケーラブルビデオエンコーダ１７０は基本レイヤエンコーダ３０を含み、予測ユニット１７２、フレーム格納部１７３、変換ユニット１７４、量子化ユニット１７５Ａおよび１７５Ｂ、逆量子化ユニット１７６Ａおよび１７６Ｂ、逆変換ユニット１７７、多重化モジュール１７８および加算器１７９Ａ〜１７９Ｃを含む。図３において、ユニットとして異なる特徴を示すことは、例示されたデバイスの異なる機能的態様を強調することが意図され、そのようなユニットが個別のハードウェアまたはソフトウェア構成要素によって実現されなければならないことを意味するとは限らない。むしろ、１つもしくは複数のユニットに関連する機能性は、共通のハードウェアまたはハードウェア構成要素、あるいは個別のハードウェアまたはソフトウェア構成要素の中に組み込まれ得る。
【０１３９】
予測ユニット１７２は、イントラ予測またはインター予測を用いて予測ブロックを生成する。予測ブロックは、符号化されている現ビデオブロックの予測バージョンであり得る。上で説明したように、予測ユニット１７２は符号化されている現ブロックと同じフレーム内の基本レイヤの１つまたは複数の予め符号化されたブロックに基づき、イントラ予測を用いて予測ブロックを生成することが可能である。あるいは、予測ユニットは基本レイヤの１つまたは複数の隣接するフレーム内の１つまたは複数の予め符号化されたブロックに基づきインター予測を用いて予測ブロックを生成することが可能である。予測ユニット１７２は、フレーム格納部１７３から予め符号化されたブロックを取り出すことが可能である。
【０１４０】
ビデオブロックのイントラ予測またはインター予測に続いて、基本レイヤエンコーダ３０は加算器１７９Ａにおいて現ビデオブロックからの予測ユニット１７２によって作成された予測ブロックを減じることによって残差ブロックを生成する。この残差ブロックは、現ビデオブロックの画素値と予測ブロックの画素値との間の差分を量子化する画素差分値のセットを含む。この残差ブロックは、二次元ブロック形態（例えば、二次元行列または画素値のアレイ）の形で表され得る。すなわち、残差ブロックは画素値の二次元表示である。
【０１４１】
変換ユニット１７４は、残差変換係数を作成するために残差ブロックに変換を適用する。変換ユニット１７４は、例えばＤＣＴ、整数変換、方向変換、ウェーブレット変換、またはそれらの組合せを適用することが可能である。画素値の残差ブロックに変換を適用した後で、量子化ユニット１７５Ａはビットレートをさらに削減するために変換係数を量子化する。基本レイヤに関連する量子化された係数に対応する量子化ユニット１７５Ａの出力は、多重化モジュール１７８に提供される。
【０１４２】
量子化に続いて、逆量子化ユニット１７６Ａは変換係数の残差ブロックの再構成されたバージョンを作成するために逆量子化を適用する。加算器１７９Ｂは、変換ユニット１７４から出力された変換係数の原残差ブロックから、逆量子化ユニット１７６Ａから出力された変換係数の残差ブロックの再構成されたバージョンを減じる。本明細書において変換差分ブロックと呼ばれるこのブロックは、量子化ユニット１７５Ｂに提供される。量子化ユニット１７５Ｂは、ビットレートをさらに減じるために変換係数を量子化する。拡張レイヤに関連する量子化された係数に対応する、量子化ユニット１７５Ｂの出力は、多重化モジュール１７８に提供される。一例では、量子化ユニット１７５Ａは第１のＱＰを用いて残差係数を量子化することが可能であり、 量子化ユニット１７５Ｂは第２のＱＰを用いて残差係数差分を量子化することが可能である。第２のＱＰは、例えば第１のＱＰの値の半分、すなわち、ＱＰ／２であってよい。
【０１４３】
量子化ユニット１７５Ｂによる量子化に続いて、逆量子化ユニット１７６Ｂは変換差分ブロックの再構成されたバージョンを生成するために逆量子化を適用する。加算器１７９Ｃは、再構成された残差ブロックを生成するために逆量子化ユニット１７６Ｂから出力された変換差分ブロックの再構成されたバージョンに、逆量子化ユニット１７６Ａから出力された変換係数の残差ブロックの再構成されたバージョンを追加する。
【０１４４】
逆変換ユニット１７７は、ビデオブロックの再構成されたバージョンに逆変換を適用する。フレーム格納部１７３内に格納されたビデオブロックの再構成されたバージョンは、後続のビデオブロックをイントラ符号化またはインター符号化するために予測ユニット１７２によって使用され得る。予測ユニット１７２は、動きベクトル、分割サイズ、イントラ符号化モードなどの制御データを多重化モジュール１７８に提供することが可能である。多重化モジュール１７８は、基本レイヤデータと拡張レイヤデータとを組み合わせることが可能である。場合によっては、多重化モジュール１７８は基本レイヤデータおよび拡張レイヤデータをエントロピー符号化するためのエントロピーエンコーダを含み得る。その他の場合、基本レイヤエンコーダおよび拡張レイヤエンコーダは、多重化モジュールから分離し得る。
【０１４５】
図１３は、例示的なスケーラブルビデオデコーダ１８０を示すブロック図である。スケーラブルビデオデコーダ１８０は、例えば図２のビデオデコーダ２６に対応し得る。図１３のスケーラブルビデオデコーダ１８０は、逆多重化モジュール（demultiplex module）１８１、逆量子化ユニット１８２Ａおよび１８２Ｂ、逆変換ユニット１８３、予測ユニット１８４、フレーム格納部１８５ならびに加算器１８６Ａおよび１８６Ｂを含む。
【０１４６】
逆多重化モジュール１８１は、スケーラブル符号化されたビデオを受信して信号を逆多重化する。場合によっては、逆多重化モジュール１８１は基本レイヤデータおよび拡張レイヤデータをエントロピー復号するためのエントロピーデコーダを含み得る。その他の場合、基本レイヤデコーダおよび拡張レイヤデコーダは、逆多重化モジュールから分離し得る。
【０１４７】
逆量子化ユニット１８２Ａは基本レイヤに関連する量子化された残差係数を逆量子化、すなわち量子化解除し、逆量子化ユニット１８２Ｂは拡張レイヤに関連する量子化された残差係数を量子化解除する。一例では、逆量子化ユニット１８２Ａは第１のＱＰを用いて残差係数を量子化することが可能であり、逆量子化ユニット１８２Ｂは第２のＱＰを用いて残差係数差分を量子化することが可能である。第２のＱＰは、例えば第１のＱＰの値の半分、すなわちＱＰ／２であってよい。逆量子化ユニット１８２Ａおよび１８２Ｂによって出力された、量子化解除された変換係数のそれぞれのセットは、再構成された残差変換ブロックを生成するために、加算器１８６Ａにおいて加算される。上で説明したように、逆量子化ユニット１８２Ａによって出力された、量子化解除された変換係数は、基本的な品質レベルに対応することが可能であり、逆量子化ユニット１８２Ｂによって出力された、量子化解除された変換係数は、逆量子化ユニット１８２Ｂのアウトプットに追加されたとき、結果として品質レベルの増大をもたらす。
【０１４８】
逆変換ユニット１８３は、画素値の残差ブロックを作成するために量子化解除された残差係数ブロックの和に逆変換、例えば逆ＤＣＴ、逆整数変換、逆ウェーブレット変換または逆方向変換を適用する。加算器１８６Ｂは、再構成された基本レイヤビデオブロックを形成するために、画素値の残差ブロックに予測ユニット１８４によって生成された予測ブロックを追加する。上で詳細に説明したように、予測ユニット１８４はイントラ予測の場合は共通のフレーム内の１つもしくは複数の隣接するブロックを用いて、またはインター予測の場合はフレーム格納部１８５内に格納され得る、隣接するフレーム内の１つもしくは複数のブロックを用いて、予測ブロックを生成することが可能である。
【０１４９】
図１４は、もう１つの例示的なスケーラブルビデオデコーダ１９０を示すブロック図である。スケーラブルビデオデコーダ１９０は、例えば図２のビデオデコーダ２６に対応し得る。図１４のスケーラブルビデオデコーダ１９０は、逆多重化モジュール１９１、逆量子化ユニット１９２Ａおよび１９２Ｂ、逆変換ユニット１９３Ａおよび１９３Ｂ、予測ユニット１９４、フレーム格納部１９５ならびに加算器１９６Ａおよび１９６Ｂを含む。
【０１５０】
逆多重化モジュール１９１は、スケーラブル符号化されたビデオを受信して、信号を逆多重化する。場合によっては、逆多重化モジュール１８１は、基本レイヤデータおよび拡張レイヤデータをエントロピー復号するためのエントロピーデコーダを含み得る。その他の場合、基本レイヤデコーダおよび拡張レイヤデコーダは、逆多重化モジュールから分離し得る。
【０１５１】
逆量子化ユニット１９２Ａおよび逆変換ユニット１９３Ａは、基本レイヤの残差ブロックの再構成されたバージョンを取得するために、基本レイヤに関連する復号された残差係数に逆量子化動作、すなわち量子化解除動作と、逆変換動作とを適用する。逆量子化ユニット１９２Ｂおよび逆変換ユニット１９３Ｂは、拡張レイヤの残差ブロックの再構成されたバージョンを取得するために、拡張レイヤに関連する復号された残差係数に逆量子化動作、すなわち量子化解除動作と、逆変換動作とを適用する。一例では、逆量子化ユニット１９２Ａは第１のＱＰを用いて残差係数を量子化することが可能であり、逆量子化ユニット１９２Ｂは第２のＱＰを用いて残差係数差分を量子化することが可能である。第２のＱＰは、例えば、第１のＱＰの値の半分、すなわち、ＱＰ／２であってよい。
【０１５２】
予測ユニット１９４は、イントラ予測の場合は共通のフレーム内の１つもしくは複数の隣接するブロックを用いて、またはインター予測の場合はフレーム格納部１９５内に格納され得る、隣接するフレーム内の１つもしくは複数のブロックを用いて、予測ブロックを生成することが可能である。加算器１９６Ａは、基本的な品質レベルで復号されたビデオデータを生成するために、逆変換ユニット１９３Ａから出力された、再構成された残差ブロックに、予測ユニット１９４によって生成された予測ブロックを追加する。基本的な品質レベルを有する復号されたビデオデータは、スケーラブルビデオエンコーダ１９０から出力される。
【０１５３】
基本的な品質レベルを有する復号されたビデオデータは、加算器１９６Ｂにも提供される。加算器１９６Ｂは、第２のさらに高い品質レベルで復号されたビデオデータを生成するために、逆変換ユニット１９３Ｂから出力された拡張レイヤの残差ブロックの再構成されたバージョンに、加算器１９６Ａのアウトプットを追加する。基本的な品質レベルを有する復号されたビデオデータは、スケーラブルビデオエンコーダ１９０から出力される。
【０１５４】
図１５は、もう１つの例示的なビデオエンコーダ２００を示すブロック図である。図１５の例では、基本レイヤエンコーダ３０は、予測ユニット３３Ａ、フレーム格納部３５Ａ、変換ユニット３８Ａ、量子化ユニット４０Ａ、係数走査ユニット４１Ａ、逆量子化ユニット４２Ａ、逆変換ユニット４４Ａ、基本レイヤエントロピーエンコーダ４６、加算器４８Ａ〜４８Ｃおよびイントラ予測ユニット４０Ａを含む。図３において、ユニットとして異なる特徴を示すことは、例示されたデバイスの異なる機能的態様を強調することが意図され、そのようなユニットが個別のハードウェアまたはソフトウェア構成要素によって実現されなければならないことを意味するとは限らない。むしろ、１つもしくは複数のユニットに関連する機能性は、共通のハードウェアまたはソフトウェア構成要素、あるいは個別のハードウェアもしくはソフトウェア構成要素の中に組み込まれ得る。
【０１５５】
予測ユニット３３Ａはインター予測、例えば動き補償予測を用いて、予測ブロックを生成する。予測ブロックは、符号化されている現ビデオブロックの予測バージョンであり得る。上で説明したように、予測ユニット３３Ａは基本レイヤの１つまたは複数の隣接するフレーム内の１つまたは複数の予め符号化されたブロックに基づき、インター予測を用いて予測ブロックを生成することが可能である。予測ユニット３３Ａは、フレーム格納部３５Ａから、予め符号化されたブロックを取り出すことが可能である。
【０１５６】
ビデオブロックのインターベースの予測に続いて、基本レイヤエンコーダ３０は加算器４８Ａにおいて現ビデオブロックから予測ユニット３３Ａによって作成された予測ブロックを減じることによって、残差ブロックを生成する。この残差ブロックは、現ビデオブロックの画素値と、予測ブロックの画素値との間の差分を量子化する画素差分値のセットを含む。この残差ブロックは、二次元ブロック形態（例えば、二次元行列または画素値のアレイ）の形で表され得る。すなわち、残差ブロックは画素値の二次元表示である。
【０１５７】
変換ユニット３８Ａは、残差変換係数を作成するために残差ブロックに変換を適用する。変換ユニット３８Ａは、例えばＤＣＴ、整数変換、方向変換、ウェーブレット変換、またはそれらの組合せを適用することが可能である。画素値の残差ブロックに変換を適用した後で、量子化ユニット４０Ａはビットレートをさらに削減するために、変換係数を量子化する。量子化に続いて、逆量子化ユニット４２Ａおよび逆変換ユニット４４Ａは残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用することが可能である。加算器４８Ｂは、フレーム格納部３５Ａ内に格納するために再構成されたビデオブロックを作成するために、予測ユニット３３Ａによって作成された予測ブロックに再構成された残差ブロックを追加する。フレーム格納部３４内に格納された、再構成されたビデオブロックは、後続のビデオブロックをイントラ符号化またはインター符号化するために、基本レイヤエンコーダ３０の予測ユニット３２によって使用され得る。加えて、下でより詳細に説明するように、フレーム格納部３５Ａ内に格納された、再構成されたビデオブロックは、拡張レイヤ内のビデオブロックの改良版をイントラ符号化またはインター符号化するために、拡張レイヤエンコーダ３２の予測ユニット３３Ｂによって使用され得る。
【０１５８】
量子化に続いて、加算器４８Ｃは量子化された残差係数からイントラ予測ユニット４０Ａによって生成されたイントラ予測ブロックを減じる。イントラ予測ユニット４０Ａは、符号化されている現ブロックと同じフレーム内の１つまたは複数の予め符号化されたブロックに基づき、イントラ予測を用いて予測ブロックを生成することが可能である。基本レイヤエントロピーエンコーダ４６は、例えばＨ．２６４／ＭＰＥＧ−４、パート１０、ＡＶＣ標準において定義され、図２に関して上で詳細に説明したＣＡＶＬＣを用いて加算器４８Ｃから出力された係数をエントロピー符号化する。
【０１５９】
拡張レイヤエンコーダ３２は、予測ユニット３３Ｂ、フレーム格納部３５Ｂ、変換ユニット３８Ｂ、量子化ユニット４０Ｂ、係数走査ユニット４１Ｂ、逆量子化ユニット４２Ｂ、逆変換ユニット４４Ｂ、拡張レイヤエントロピーエンコーダ４９および加算器４８Ｄ〜４８Ｆを含む。拡張レイヤエンコーダ３２のユニットは、基本レイヤエンコーダ３０の同類番号付けされたユニットのユニットに本質的に類似する。従って、違いのみが説明する。
【０１６０】
拡張レイヤエンコーダ３２の予測ユニット３３Ｂは、現ビデオブロックの予測バージョンである予測ブロックを生成する。予測ブロックを生成するために、基本レイヤの予め符号化されたブロックを使用する、基本レイヤエンコーダ３０の予測ユニット３３Ａと異なり、拡張レイヤエンコーダ３２の予測ユニット３３Ｂは、拡張レイヤの１つまたは複数の予め符号化されたブロックに基づいて予測ブロックを生成することが可能である。拡張レイヤの再構成されたビデオブロックは、第２の、基本レイヤの予測ブロックよりも高い品質であり得る。
【０１６１】
拡張レイヤエンコーダ３２と基本レイヤエンコーダ３０との間のさらなる差は、拡張レイヤエンコーダ３２の逆量子化ユニット４２Ｂの出力が加算器４８Ｆにおいて拡張レイヤエンコーダ３０の逆量子化ユニット４２Ａの出力と組み合わされることである。逆量子化ユニット４２Ａおよび４２Ｂの出力を加えることは、さらに高い品質の再構成されたビデオブロックを生成し、それにより上で説明した予測ユニットによるさらに良好な予測を可能にする。
【０１６２】
本開示で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形で実装され得る。ユニットもしくは構成要素として説明した任意の特徴は、統合論理素子内で実装されることが可能であり、または離散的であるが、相互運用可能な論理素子として別々に実装されることも可能である。ソフトウェアの形で実装される場合、これらの技術は実行されたとき上で説明した方法のうちの１つまたは複数を実行する命令を備えたコンピュータ可読媒体によって、少なくとも部分的に実現され得る。このコンピュータ可読媒体は、実装材料を含み得るコンピュータプログラム製品の一部を形成し得る。このコンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読出し専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気データ記憶媒体または光データ記憶媒体などのランダムアクセスメモリ（ＲＡＭ）を備え得る。これらの技術は、さらに、または別法として、命令もしくはデータ構造の形をとるコードを運ぶか、または当該コードを通信し、かつコンピュータによってアクセス、読取り、および／あるいは実行されることが可能な、コンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１６３】
当該コードは、１つもしくは複数のディジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、またはその他の均等な統合論理回路あるいはディスクリート論理回路など、１つもしくは複数のプロセッサによって実行され得る。従って、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造、または本明細書で説明した技術の実装に適した任意のその他の構造のいずれかを指す場合がある。加えて、いくつかの態様では、本明細書で説明した機能性は、符号化もしくは復号するように構成された専用のソフトウェアユニット内または専用のハードウェアユニット内に提供されることが可能であり、あるいは組み合わされたビデオエンコーダ−デコーダ（コーデック）内に組み込まれることも可能である。ユニットとして異なる特徴を示すことは、例示されたデバイスの異なる機能的態様を強調することが意図され、そのようなユニットが個別のハードウェア構成要素またはソフトウェア構成要素によって実現されなければならないことを意味するとは限らない。むしろ、１つもしくは複数のユニットに関連する機能性は、共通のハードウェア構成要素またはソフトウェア構成要素、あるいは個別のハードウェア構成要素またはソフトウェア構成要素の中に組み込まれ得る。
【０１６４】
様々な実施形態が説明されている。これらの実施形態およびその他の実施形態は、以下の特許請求の範囲内である。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
スケーラブルビデオ符号化を用いてビデオデータを符号化する方法であって、
ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化することと、
前記第１の品質で符号化された前記ビデオブロックと組み合わされたとき、結果として前記第１の品質よりも高い第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化することとを備え、前記ビデオブロックの前記改良版が単一の符号化パス内で符号化される方法。
［Ｃ２］
前記ビデオブロックの前記改良版を符号化することは、任意の後続の係数を解析することなく前記改良版のそれぞれの非ゼロ係数を符号化することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記ビデオブロックの前記改良版を符号化することは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１つの残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを符号化することを備える、Ｃ１に記載の方法。
［Ｃ４］
最後の非ゼロ係数を符号化した後に、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示すシンボルを符号化することをさらに備える、Ｃ３に記載の方法。
［Ｃ５］
前記ビデオブロックの前記改良版の前記非ゼロ係数の大きさを１に等しくなるように調整することをさらに備える、Ｃ３に記載の方法。
［Ｃ６］
前記ビデオブロックの前記改良版の前記非ゼロ係数のそれぞれの前記大きさを１に等しくなるように調整することは、前記係数の大きさを符号化することなく前記非ゼロ係数を符号化することを備える、Ｃ５に記載の方法。
［Ｃ７］
前記ビデオブロックの前記改良版を前記拡張レイヤビットストリームの一部として符号化することは、前記ビデオブロックの前記改良版の係数が、前記基本レイヤビットストリームの一部として前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく復号可能なように、前記ビデオブロックの前記改良版を符号化することを備える、Ｃ１に記載の方法。
［Ｃ８］
単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を符号化することをさらに備える、Ｃ１に記載の方法。
［Ｃ９］
前記ビデオブロックを前記基本レイヤの一部として前記第１の品質で符号化することは、第１の符号化パス内で前記ビデオブロックの係数ベクトルを解析する符号化技術を用いて前記第１の品質で前記ビデオブロックを符号化することと、前記解析に基づいて前記第２の符号化パス内で前記係数ベクトルを符号化することとを備える、Ｃ１に記載の方法。
［Ｃ１０］
前記ビデオブロックを前記第１の品質で符号化することは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準に従いコンテキスト適応可変長符号化（ＣＡＶＬＣ）プロセスを用いて前記第１の品質で前記ビデオブロックを符号化することを備え、
前記ビデオブロックの前記改良版を符号化することは、前記ＣＡＶＬＣプロセスにおいて定義された前記ＶＬＣテーブルのうちの１つを用いて前記ビデオブロックの前記改良版を符号化することを備える、Ｃ９に記載の方法。
［Ｃ１１］
前記第１の品質および前記第２の品質は、第１および第２の信号対雑音比（ＳＮＲ）ならびに第１および第２の空間分解能のうちの１つを備える、Ｃ１に記載の方法。
［Ｃ１２］
スケーラブルビデオ符号化を用いてビデオデータを符号化するためのデバイスであって、
ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化し、  前記第１の品質で符号化された前記ビデオブロックと組み合わされたとき、結果として前記第１の品質よりも高い第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化する、少なくとも１個のエンコーダを備え、前記ビデオブロックの前記改良版が単一の符号化パス内で符号化されるデバイス。
［Ｃ１３］
前記少なくとも１個のエンコーダは、任意の後続の係数を解析することなく前記改良版のそれぞれの非ゼロ係数を符号化する、Ｃ１２に記載のデバイス。
［Ｃ１４］
前記少なくとも１個のエンコーダは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１つ残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを符号化する、Ｃ１２に記載のデバイス。
［Ｃ１５］
前記少なくとも１個のエンコーダは、最後の非ゼロ係数を符号化した後で、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示すシンボルを符号化する、Ｃ１４に記載のデバイス。
［Ｃ１６］
前記少なくとも１個のエンコーダは、前記ビデオブロックの前記改良版の前記非ゼロ係数の大きさを１に等しくなるように調整する、Ｃ１４に記載のデバイス。
［Ｃ１７］
前記少なくとも１個のエンコーダは、前記係数の大きさを符号化することなく前記非ゼロ係数を符号化する、Ｃ１６に記載のデバイス。
［Ｃ１８］
前記少なくとも１個のエンコーダは、前記ビデオブロックの前記改良版の係数が、前記基本レイヤビットストリームの一部として前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく復号可能なように前記ビデオブロックの前記改良版を符号化する、Ｃ１２に記載のデバイス。
［Ｃ１９］
前記少なくとも１個のエンコーダは、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を符号化する、Ｃ１２に記載のデバイス。
［Ｃ２０］
前記少なくとも１個のエンコーダは、第１の符号化パス内で前記ビデオブロックの係数ベクトルを解析する符号化技術を用いて前記第１の品質で前記ビデオブロックを符号化し、前記解析に基づいて前記第２の符号化パス内で前記係数ベクトルを符号化する、Ｃ１２に記載のデバイス。
［Ｃ２１］
前記少なくとも１個のエンコーダは、
前記第１の品質で前記ビデオブロックを符号化してＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準に従いコンテキスト適応可変長符号化（ＣＡＶＬＣ）プロセスを用いて前記第１の品質で前記ビデオブロックを符号化することを備え、
前記ビデオブロックの前記改良版を符号化して前記ＣＡＶＬＣプロセスにおいて定義された前記ＶＬＣテーブルのうちの１つを用いて前記ビデオブロックの前記改良版を符号化することを備える、Ｃ２０に記載のデバイス。
［Ｃ２２］
前記第１の品質および前記第２の品質は、第１および第２の信号対雑音比（ＳＮＲ）ならびに第１および第２の空間分解能のうちの１つを備える、Ｃ１２に記載のデバイス。
［Ｃ２３］
前記少なくとも１個のエンコーダは、
前記ビデオブロックを基本レイヤビットストリームの一部として前記第１の品質で符号化する基本レイヤエンコーダと、
前記第１の品質で符号化された前記ビデオブロックと組み合わされたとき、結果として前記第１の品質よりも高い前記第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を前記少なくとも１つの拡張レイヤビットストリームの一部として符号化する拡張レイヤエンコーダとを備える、Ｃ１２に記載のデバイス。
［Ｃ２４］
前記デバイスは、無線通信デバイスを備える、Ｃ１２に記載のデバイス。
［Ｃ２５］
前記デバイスは、集積回路デバイスを備える、Ｃ１２に記載のデバイス。
［Ｃ２６］
１つまたは複数のプロセッサに、
ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化させ、  前記第１の品質で符号化された前記ビデオブロックと組み合わされたとき、結果として前記第１の品質よりも高い第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化させるための命令を備えたコンピュータ可読媒体であって、前記ビデオブロックの前記改良版が単一の符号化パス内で符号化されるコンピュータ可読媒体。
［Ｃ２７］
前記命令は、１つまたは複数のプロセッサに任意の後続の係数を解析することなく前記改良版のそれぞれの非ゼロ係数を符号化させる、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ２８］
前記命令は、１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１つ残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを符号化させる、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ２９］
前記命令は、１つまたは複数のプロセッサに、最後の非ゼロ係数を符号化した後に前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示すためのシンボルを符号化させる、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３０］
前記命令は、１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版の前記非ゼロ係数の大きさを１に等しくなるように調整させる、Ｃ２８に記載のコンピュータ可読媒体。
［Ｃ３１］
前記命令は、１つまたは複数のプロセッサに、前記係数の大きさを符号化することなく前記非ゼロ係数を符号化させる、Ｃ３０に記載のコンピュータ可読媒体。
［Ｃ３２］
前記命令は、１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版の係数が前記基本レイヤビットストリームの一部として、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく復号可能なように、前記ビデオブロックの前記改良版を符号化させる、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ３３］
前記命令は、１つまたは複数のプロセッサに、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を符号化させる、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ３４］
前記命令は、１つまたは複数のプロセッサに、第１の符号化パス内で前記ビデオブロックの係数ベクトルを解析する符号化技術を用いて前記第１の品質で前記ビデオブロックを符号化させ、前記解析に基づいて前記第２の符号化パス内で前記係数ベクトルを符号化させる、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ３５］
前記命令は、１つまたは複数のプロセッサに、
前記第１の品質で前記ビデオブロックを符号化させ、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準に従って、コンテキスト適応可変長符号化（ＣＡＶＬＣ）プロセスを用いて前記第１の品質で前記ビデオブロックを符号化することを備え、
前記ビデオブロックの前記改良版を符号化させ、前記ＣＡＶＬＣプロセスにおいて定義された前記ＶＬＣテーブルのうちの１つを用いて、前記ビデオブロックの前記改良版を符号化することを備える、Ｃ３４に記載のコンピュータ可読媒体。
［Ｃ３６］
前記第１の品質および前記第２の品質は、第１および第２の信号対雑音比（ＳＮＲ）ならびに第１および第２の空間分解能のうちの１つを備える、Ｃ２６に記載のコンピュータ可読媒体。
［Ｃ３７］
スケーラブルビデオ符号化を用いてビデオデータを符号化するためのデバイスであって、
ビデオブロックを基本レイヤビットストリームの一部として第１の品質で符号化する第１手段と、
前記第１の品質で符号化された前記ビデオブロックと組み合わされたとき、結果として前記第１の品質よりも高い第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を少なくとも１つの拡張レイヤビットストリームの一部として符号化する第２の手段とを備え、前記ビデオブロックの前記改良版が単一の符号化パス内で符号化されるデバイス。
［Ｃ３８］
前記第２の符号化手段は、任意の後続の係数を解析することなく前記改良版のそれぞれの非ゼロ係数を符号化する、Ｃ３７に記載のデバイス。
［Ｃ３９］
前記第２の符号化手段は、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１つ残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを符号化する、Ｃ３７に記載のデバイス。
［Ｃ４０］
前記第２の符号化手段は、最後の非ゼロ係数を符号化した後で前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示すためのシンボルを符号化する、Ｃ３８に記載のデバイス。
［Ｃ４１］
前記第２の符号化手段は、前記ビデオブロックの前記改良版の前記非ゼロ係数の大きさを１に等しくなるように調整する、Ｃ３８に記載のデバイス。
［Ｃ４２］
前記第２の符号化手段は、前記係数の大きさを符号化することなく前記非ゼロ係数を符号化する、Ｃ４０に記載のデバイス。
［Ｃ４３］
前記第２の符号化手段は、前記ビデオブロックの前記改良版の係数が前記基本レイヤビットストリームの一部として、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく復号可能なように、前記ビデオブロックの前記改良版を符号化する、Ｃ３７に記載のデバイス。
［Ｃ４４］
前記第２の符号化手段は、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を符号化する、Ｃ３７に記載のデバイス。
［Ｃ４５］
前記ビデオブロックを前記基本レイヤの一部として前記第１の品質で符号化する前記第１の符号化手段は、第１の符号化パス内で前記ビデオブロックの係数ベクトルを解析する符号化技術を用いて前記第１の品質で前記ビデオブロックを符号化することと、前記解析に基づいて前記第２の符号化パス内で前記係数ベクトルを符号化することとを備える、Ｃ３７に記載のデバイス。
［Ｃ４６］
前記第１の符号化手段は、
前記第１の品質で前記ビデオブロックを符号化して、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準に従いコンテキスト適応可変長符号化（ＣＡＶＬＣ）プロセスを用いて前記第１の品質で前記ビデオブロックを符号化することを備え、
前記ビデオブロックの前記改良版を符号化して、前記ＣＡＶＬＣプロセスにおいて定義された前記ＶＬＣテーブルのうちの１つを用いて前記ビデオブロックの前記改良版を符号化することを備える、Ｃ４５に記載のデバイス。
［Ｃ４７］
前記第１の品質および前記第２の品質は、第１および第２の信号対雑音比（ＳＮＲ）ならびに第１および第２の空間分解能のうちの１つを備える、Ｃ３７に記載のデバイス。
［Ｃ４８］
スケーラブルビデオ符号化を用いてビデオデータを復号する方法であって、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号することと、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号することとを備え、
前記拡張レイヤを復号することは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号することを含む方法。
［Ｃ４９］
前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号することをさらに備える、Ｃ４８に記載の方法。
［Ｃ５０］
それぞれの係数の前記復号されたランと、それぞれの係数の前記符号（sign）と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成することをさらに備える、Ｃ４９に記載の方法。
［Ｃ５１］
前記係数のベクトルのそれぞれの非ゼロ係数の大きさを１に等しく設定することをさらに備える、Ｃ５０に記載の方法。
［Ｃ５２］
前記ビデオブロックの前記改良版を復号することは、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号することを備える、Ｃ４８に記載の方法。
［Ｃ５３］
単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号することをさらに備える、Ｃ４８に記載の方法。
［Ｃ５４］
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、Ｃ５３に記載の方法。
［Ｃ５５］
スケーラブルビデオ符号化を用いて、ビデオデータを復号するためのデバイスであって、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号し、  前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号する少なくとも１個のデコーダを備え、
前記少なくとも１個のデコーダは、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号するデバイス。
［Ｃ５６］
前記少なくとも１個のデコーダは、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号する、Ｃ５５に記載のデバイス。
［Ｃ５７］
前記少なくとも１個のデコーダは、それぞれの係数の前記復号されたランと、それぞれの係数の前記符号と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成する、Ｃ５６に記載のデバイス。
［Ｃ５８］
前記少なくとも１個のデコーダは、前記係数のベクトルのそれぞれの非ゼロ係数の大きさを１に等しく設定する、Ｃ５７に記載のデバイス。
［Ｃ５９］
前記少なくとも１個のデコーダは、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号する、Ｃ５５に記載のデバイス。
［Ｃ６０］
前記少なくとも１個のデコーダは、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号する、Ｃ５５に記載のデバイス。
［Ｃ６１］
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、Ｃ６０に記載のデバイス。
［Ｃ６２］
前記少なくとも１個のデコーダは、
前記第１の品質で前記ビデオブロックを取得するために、前記基本レイヤビットストリームを復号する基本レイヤデコーダと、
前記ビデオブロックの前記改良版を取得するために、前記拡張レイヤビットストリームを復号する拡張レイヤデコーダとを備える、Ｃ５５に記載のデバイス。
［Ｃ６３］
前記デバイスは、無線通信デバイスを備える、Ｃ５５に記載のデバイス。
［Ｃ６４］
前記デバイスは、集積回路デバイスを備える、Ｃ５５に記載のデバイス。
［Ｃ６５］
１つまたは複数のプロセッサに、
第１の品質でビデオブロックを取得するために基本レイヤビットストリームを復号させ、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために拡張レイヤビットストリームを復号させるための命令を備えたコンピュータ可読媒体であって、
前記命令は、前記１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号（sign）とを復号させるコンピュータ可読媒体。
［Ｃ６６］
前記命令は、１つまたは複数のプロセッサに、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号させる、Ｃ６５に記載のコンピュータ可読媒体。
［Ｃ６７］
前記命令は、１つまたは複数のプロセッサに、それぞれの係数の前記復号されたランと、それぞれの係数の前記符号と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて前記ビデオブロックの前記改良版に関する係数のベクトルを生成させる、Ｃ６６に記載のコンピュータ可読媒体。
［Ｃ６８］
前記命令は、１つまたは複数のプロセッサに、前記係数のベクトルのそれぞれの非ゼロ係数の大きさを１に等しく設定させる、Ｃ６７に記載のコンピュータ可読媒体。
［Ｃ６９］
前記命令は、１つまたは複数のプロセッサに、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号させる、Ｃ６５に記載のコンピュータ可読媒体。
［Ｃ７０］
前記命令は、１つまたは複数のプロセッサに、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号させる、Ｃ６５に記載のコンピュータ可読媒体。
［Ｃ７１］
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、Ｃ７０に記載のコンピュータ可読媒体。
［Ｃ７２］
スケーラブルビデオ符号化を用いてビデオデータを復号するためのデバイスであって、  第１の品質でビデオブロックを取得するために、基本レイヤビットストリームを復号する第１の手段と、
前記第１の品質で復号された前記ビデオブロックと組み合わされたとき、結果として第２の品質を有する前記ビデオブロックをもたらす前記ビデオブロックの改良版を取得するために、拡張レイヤビットストリームを復号する第２の手段とを備え、
前記第２の復号手段は、前記ビデオブロックの前記改良版のそれぞれの非ゼロ係数に関して、 少なくとも１個の残りの非ゼロ係数が存在することを示すシンボルと、前記非ゼロ係数に先行するゼロ値係数の数を示すランレングスと、前記非ゼロ係数の符号とを復号するデバイス。
［Ｃ７３］
前記第２の復号手段は、前記ビデオブロックの前記改良版内に残りの非ゼロ係数が存在しないことを示す、最後の非ゼロ係数に続くシンボルを復号する、Ｃ７２に記載のデバイス。
［Ｃ７４］
それぞれの係数の前記復号されたランと、それぞれの係数の前記符号（sign）と、残りの非ゼロ係数が存在しないことを示す前記シンボルとを用いて、前記ビデオブロックの前記改良版に関する係数のベクトルを生成する手段をさらに備える、Ｃ７３に記載のデバイス。
［Ｃ７５］
前記係数のベクトルのそれぞれの非ゼロ係数の大きさを１に等しく設定する手段をさらに備える、Ｃ７４に記載のデバイス。
［Ｃ７６］
前記第２の復号手段は、前記第１の品質で符号化された前記ビデオブロックの係数情報にアクセスすることなく前記ビデオブロックの前記改良版を復号する、Ｃ７２に記載のデバイス。
［Ｃ７７］
前記第２の復号手段は、単一の可変長符号化（ＶＬＣ）テーブルのみを用いて前記ビデオブロックの前記改良版を復号する、Ｃ７２に記載のデバイス。
［Ｃ７８］
前記単一のＶＬＣテーブルは、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、パート１０、アドバンストビデオ符号化（ＡＶＣ）標準において定義されたＣＡＶＬＣで指定された前記ＶＬＣテーブルのうちの１つを備える、Ｃ７７に記載のデバイス。
【図１】
0005456867.tif 000005
【図２】
0005456867.tif 000006
【図３】
0005456867.tif 000007
【図４】
0005456867.tif 000008
【図５】
0005456867.tif 000009
【図６】
0005456867.tif 000010
【図７】
0005456867.tif 000011
【図８】
0005456867.tif 000012
【図９】
0005456867.tif 000013
【図１０】
0005456867.tif 000014
【図１１】
0005456867.tif 000015
【図１２】
0005456867.tif 000016
【図１３】
0005456867.tif 000017
【図１４】
0005456867.tif 000018
【図１５】
0005456867.tif 000019