(57)【要約】ビデオ圧縮に関連する情報を符号化および復号する方法およびシステムを説明する。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロックで処理される。現在のフレームにおいて、マクロブロックの一部である元のビデオ信号の予測は、ビデオ・シーケンスから構築される。残差信号は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。残差信号の特徴を定義する少なくとも一つの構文要素のシンボルが識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
2009531997.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ圧縮に関連する情報を符号化する方法であって、
ビデオ・シーケンスを受信し、
複数のフレームにおいて前記ビデオ・シーケンスを処理し、
前記複数のフレームの各フレームを複数のマクロブロックで処理し、
現在のフレームにおいて、前記ビデオ・シーケンスからマクロブロックの一部である元のビデオ信号の予測を構築し、
前記現在のフレームにおいて、前記元のビデオ信号から前記元のビデオ信号の前記予測を差し引くことによって残差信号を形成し、
前記残差信号に変換を適用し、
複数の変換係数を量子化し、
前記残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別し、そして
同じカテゴリーの前記少なくとも一つの構文要素のシンボルをまとめて符号化することと、
を含む方法。
【請求項２】
前記少なくとも一つの構文要素の前記シンボルを符号化することは、符号化ブロック・パターンを符号化することを含む、請求項１に記載の方法。
【請求項３】
前記符号化ブロック・パターンを符号化することは、ゼロのランおよび非ゼロ値のランを符号化することを含む、請求項２に記載の方法。
【請求項４】
前記符号化されたゼロのランと非ゼロ値のランの初期値を示すために、前記初期値シンボルを符号化することを含む、請求項３に記載の方法。
【請求項５】
前記符号化ブロック・パターンを符号化することは、ゼロのランのみを符号化することを含む、請求項２に記載の方法。
【請求項６】
現在のシンボルのラン中のシンボルの値が、前記少なくとも一つの構文要素の次のシンボルのラン中のシンボルの値にどのように変化するのかを示すために、遷移シンボルを挿入することをさらに含む、請求項１に記載の方法。
【請求項７】
前記少なくとも一つの構文要素を符号化することは、マクロブロック・スキップ・シンボルを符号化することを含む、請求項１に記載の方法。
【請求項８】
前記少なくとも一つの構文要素を符号化することは、マクロブロック・タイプ・シンボルを符号化することを含む、請求項１に記載の方法。
【請求項９】
前記少なくとも一つの構文要素を符号化することは、デルタ量子化パラメータ・シンボルを符号化することを含む、請求項１に記載の方法。
【請求項１０】
符号化される前記少なくとも一つの構文要素の前記シンボルの最大ランレングスを定義することをさらに含む、請求項１に記載の方法。
【請求項１１】
前記少なくとも一つの構文要素の前記シンボルを多数のパターンでスキャンすることをさらに含む、請求項１に記載の方法。
【請求項１２】
スキップ・フラグ・ビットを定義し、前記少なくとも一つの構文要素のシンボルの特定のセットの前記符号化を抜かすことをさらに含む、請求項１に記載の方法。
【請求項１３】
上位レイヤにおいて前記スキップ・フラグ・ビットを定義することをさらに含む、請求項１２に記載の方法。
【請求項１４】
上位レイヤ内の前記少なくとも一つの構文要素の前記シンボルを、基本レイヤ内の前記構文要素の対応するシンボルに基づいて符号化することをさらに含む、請求項１に記載の方法。
【請求項１５】
ビデオ圧縮に関連する情報を符号化するように構成された装置であって、前記装置は、
プロセッサと、
前記プロセッサと電気的に通信するメモリと、
前記メモリに格納されている命令であって、前記命令は、
ビデオ・シーケンスを受信することと、
複数のフレームで前記ビデオ・シーケンスを処理することと、
前記複数のフレームの各フレームを複数のマクロブロックで処理することと、
現在のフレームにおいて、前記ビデオ・シーケンスからマクロブロックの一部である元のビデオ信号の予測を構築することと、
前記現在のフレームにおいて、前記元のビデオ信号から前記元のビデオ信号の前記予測を差し引くことによって残差信号を形成することと、
前記残差信号に変換を適用することと、
複数の変換係数を量子化することと、
前記残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別することと、
同じカテゴリーの前記少なくとも一つの構文要素のシンボルをまとめて符号化することと、
を実行することができる命令と、
を備える装置。
【請求項１６】
前記少なくとも一つの構文要素は、符号化ブロック・パターンを備える、請求項１５に記載の装置。
【請求項１７】
前記符号化ブロック・パターンは、ゼロのランおよび非ゼロ値のランを備える、請求項１６に記載の装置。
【請求項１８】
ビデオ圧縮に関連する情報を符号化する実行可能命令を備えるコンピュータ可読媒体であって、前記命令は、
ビデオ・シーケンスを受信し、
複数のフレームで前記ビデオ・シーケンスを処理し、
前記複数のフレームの各フレームを複数のマクロブロックで処理し、
現在のフレームにおいて、前記ビデオ・シーケンスからマクロブロックの一部である元のビデオ信号の予測を構築し、
前記現在のフレームにおいて、前記元のビデオ信号から前記元のビデオ信号の前記予測を差し引くことによって残差信号を形成し、
前記残差信号に変換を適用し、
複数の変換係数を量子化し、
前記残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別し、そして
同じカテゴリーの前記少なくとも一つの構文要素のシンボルをまとめて符号化することと、
を含むコンピュータ可読媒体。
【請求項１９】
前記少なくとも一つの構文要素は、符号化ブロック・パターンを含む、請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記符号化ブロック・パターンは、ゼロのランおよび非ゼロ値のランを含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
ビデオ圧縮に関連する情報を復号する方法であって、
符号化されたビデオ・シーケンス受信し、
同じカテゴリーの複数のシンボルをまとめて復号し、
複数の変換係数を逆量子化し、
残差信号に逆変換を適用し、そして
復号されたビデオ・シーケンスを構築することと、
を含む方法。
【請求項２２】
ビデオ圧縮に関連する情報を復号するように構成された電子デバイスであって、前記電子デバイスは、
プロセッサと、
前記プロセッサと電気的に通信するメモリと、
前記メモリに格納されている命令であって、前記命令は、
符号化されたビデオ・シーケンス受信し、
同じカテゴリーの複数のシンボルをまとめて復号し、
複数の変換係数を逆量子化し、
残差信号に逆変換を適用し、そして
復号されたビデオ・シーケンスを構築することと、
を実行することができる命令と、
を備える電子デバイス。
【請求項２３】
ビデオ圧縮に関連する情報を符号化するように構成された装置であって、前記装置は、
処理をする手段と、
ビデオ・シーケンスを受信する手段と、
複数のフレームで前記ビデオ・シーケンスを処理する手段と、
前記複数のフレームの各フレームを複数のマクロブロックで処理する手段と、
現在のフレームにおいて、前記ビデオ・シーケンスからマクロブロックの一部である元のビデオ信号の予測を構築する手段と、
前記現在のフレームにおいて、前記元のビデオ信号から前記元のビデオ信号の前記予測を差し引くことによって残差信号を形成する手段と、
前記残差信号に変換を適用する手段と、
複数の変換係数を量子化する手段と、
前記残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別する手段と、
同じカテゴリーの前記少なくとも一つの構文要素のシンボルをまとめて符号化する手段と、
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本特許出願は、本願と同一の譲受人に譲渡された「ビデオ圧縮において構文要素を効率的に符号化する方法および装置（Method and Apparatus for Efficient Coding of Syntax Elements in Video Compression）」と題する２００６年３月２７日出願の米国仮特許出願第６０／７８６，７９９号の優先権を主張するものであり、その内容を本願明細書中で参照として援用する。
【０００２】
［技術の分野］
本システムおよび方法は、一般的にビデオ処理に関する。特に本システムおよび方法は、ビデオ圧縮技術に関する情報の符号化および復号化に関する。
【０００３】
［背景］
ビデオ圧縮とは、デジタル・ビデオ・データの圧縮のことをいう。ビデオ圧縮は、ビデオ・データをビデオ・ファイル形式に効率的に符号化し、ビデオ形式をストリーミングおよびブロードキャスティングするために使用される。圧縮とは、より効率的に保存または送信できるように、ビット数のより少ない形式にデータを変換することである。圧縮の逆は解凍であり、これは元のデータの複製をつくる。
【０００４】
今日のビデオ圧縮方法では、離散コサイン変換（Discrete Cosine Transform：ＤＣＴ）のような特定のタイプの離散変換を利用して、時間予測技術または空間予測技術のいずれかを使用して生成される予測残差（prediction residual）における残りの空間的冗長性を減らすものもある。ビデオ圧縮技術の中には量子化を含むものもある。量子化は、スカラー量子化、またはベクトル量子化のいずれかとすることができる。量子化の後、量子化係数は、エントロピー符号化され圧縮されたビデオ・ビットストリームに配置さればよい。続いて、圧縮されたビットストリームはビデオ復号器に送信される。ビデオ復号器は、ビットストリームを解凍し、元のビデオ・データの近似値を復元する。
【０００５】
ビデオ圧縮技術は、様々な形式の媒体の消費者にとって役立つであろう。例えば、放送エンジニアリングでは、ビデオ圧縮によりデジタル・テレビが実用化されるであろう。テレビ局は、高精細度テレビジョン（High-Definition television：ＨＤＴＶ）の多数の仮想チャネルを同じ物理チャネル上で放送できる。デジタル・ビデオ放送は、ＭＰＥＧ−２規格のビデオ圧縮形式のようなムービング・ピクチャー・エクスパーツ・グループ（Moving Picture Experts Group：ＭＰＥＧ）規格を使用してもよいが、Ｈ．２６４／ＭＰＥＧ−４およびＶＣ−１がビデオ圧縮の新しい規格として現れつつある。
【０００６】
残念ながら、情報をビデオ圧縮に符号化する既知のシステムおよび方法では、様々な難点を持つことがある。よって、情報をビデオ圧縮に符号化するシステムおよび方法が改善されれば、有用となるであろう。
【発明の開示】
【０００７】
［詳細な説明］
ビデオ圧縮に関連する情報を符号化する方法およびシステムを説明する。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロック（macroblocks）で処理される。現在のフレームにおいて、マクロブロックの一部である元のビデオ信号の予測は、ビデオ・シーケンスから構築される。残差信号（residual signal）は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルが、残差信号の特徴を定義する少なくとも一つの構文要素（syntax element）であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
【０００８】
符号化ブロック・パターンが符号化されてもよい。符号化ブロック・パターンは、ゼロのラン（runs of zeros）およびゼロ以外の値のランとして符号化されてもよい。符号化ブロック・パターンは、ゼロのランのみとして符号化されてもよい。符号化されたゼロのランの初期値とゼロ以外の値のランの初期値を示すために、初期値シンボルが符号化されてもよい。遷移シンボル（transition symbol）が挿入されて、現在のランのシンボルの値が、次の少なくとも一つの構文要素のシンボルのランでのシンボルの値にどのように変化するかを示してもよい。符号化される少なくとも一つの構文要素のシンボルについて最大ランレングス（maximum run length）が定義されてもよい。
【０００９】
マクロブロック・スキップ・シンボル（macroblock skip symbol）が符号化されてもよい。マクロブロック・タイプ・シンボル（macroblock type symbol）が符号化されてもよい。デルタ量子化パラメータ・シンボルが（delta quantization parameter）符号化されてもよい。
【００１０】
少なくとも一つの構文要素のシンボルは、多数のパターンでスキャンされてもよい。スキップ・フラグ・ビット（skip flag bit）が定義され、少なくとも一つの構文要素シンボルの特定のセットの符号化が抜かされてもよい。スキップ・フラグ・ビットは、上位レイヤ（enhancement layer）で定義されてもよい。上位レイヤ内の少なくとも一つの構文要素のシンボルは、基本レイヤ（base layer）内の構文要素の対応するシンボルに基づいて符号化されてもよい。
【００１１】
ビデオ圧縮に関連する情報を符号化するように構成された装置も開示される。この装置は、プロセッサと、プロセッサと電気的に通信するメモリとを含む。メモリには、命令が格納される。ビデオ・シーケンスが受信される。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロック（macroblocks）で処理される。マクロブロックの一部である元のビデオ信号の予測は、現在のフレームにおいてビデオ・シーケンスから構築される。残差信号は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルは、残差信号の特徴を定義する少なくとも一つの構文要素であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
【００１２】
ビデオ圧縮に関連する情報を符号化する実行可能命令を含むコンピュータ可読媒体も開示される。ビデオ・シーケンスが受信される。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロックにおいて処理される。マクロブロックの一部である元のビデオ信号の予測は、現在のフレームにおいてビデオ・シーケンスから構築される。残差信号は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルは、残差信号の特徴を定義する少なくとも一つの構文要素であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
【００１３】
ビデオ圧縮に関連する情報を復号する方法も開示される。符号化されたビデオ・シーケンスが受信される。同じカテゴリーの複数のシンボルがまとめて復号される。複数の変換係数が逆量子化（dequantized）される。残差信号への逆変換が適用される。復号されたビデオ・シーケンスが構築される。
【００１４】
ビデオ圧縮に関連する情報を復号するように構成された電子デバイスも開示される。この電子デバイスは、プロセッサと、プロセッサと電気的に通信するメモリとを含む。メモリには、命令が格納される。符号化されたビデオ・シーケンスが受信される。同じカテゴリーの複数のシンボルがまとめて復号される。複数の変換係数が逆量子化される。残差信号への逆変換が適用される。復号されたビデオ・シーケンスが構築される。
【００１５】
ビデオ圧縮に関連する情報を符号化するように構成された装置が開示される。この装置は、処理する手段と、ビデオ・シーケンスを受信する手段とを含む。複数のフレームでビデオ・シーケンスを処理する手段と、複数のフレームの各フレームを複数のマクロブロックで処理する手段とが開示される。マクロブロックの一部である元のビデオ信号の予測を、ビデオ・シーケンスから現在のフレーム中に構築する手段と、現在のフレームにおいて、元のビデオ信号から元のビデオ信号の予測を差し引いて残差信号を形成する手段とが開示される。残差信号に変換を適用する手段と、複数の変換係数を量子化する手段とが開示される。残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別する手段と、同じカテゴリーの少なくとも一つの構文要素のシンボルをまとめて符号化する手段も開示される。
【００１６】
ここで図面を参照しながらシステムおよび方法の様々な特徴を説明するが、同じ参照符号は同じ要素、または機能的に同様な要素を示している。本願明細書の図面に全般的に記載され例示されるような本システムのシステムおよび方法の特徴は、多種多様の異なる構成にアレンジし設計することもできる。したがって、以下の詳細な説明は、本出願にかかるシステムおよび方法の範囲を制限するものではなく、単にシステムおよび方法の典型例を示すものである。
【００１７】
本願明細書で開示される構成の多くの機能は、コンピュータ・ソフトウェア、電子ハードウェア、またはそれら両方の組み合わせとして実装されてもよい（図１１を参照）。このハードウェアとソフトウェアとの互換性を明らかに例示するために、様々なコンポーネントを、概してその機能の観点から説明する。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課された設計制約によって決まる。当業者は、ここで説明された機能を各アプリケーションについて様々な方法で実装することもできるが、このように実装を決定することは、本システムおよび方法の範囲を逸脱していると解釈されるべきではない。
【００１８】
説明される機能はコンピュータ・ソフトウェアとして実装される場合、このようなソフトウェアは、メモリ・デバイス内に置かれる、および／またはシステム・バスもしくはネットワーク上で電子信号として送信される任意のタイプのコンピュータ命令またはコンピュータ／マシン実行コードを含んでいればよい。本願明細書に記載のコンポーネントに関連する機能を実装するソフトウェアは、単一の命令または多くの命令を備えていてもよく、いくつかの異なるコード・セグメント、様々なプログラム間、いくつかのメモリ・デバイスにわたって分散されてもよい。
【００１９】
ビデオ符号化では、ビデオ・フレームは階層的に符号化される。フレームは、マクロブロックに分割される。各マクロブロックは、一般的に１６×１６のサイズの輝度ブロック（Ｙ）から構成される。マクロブロックは、色差（chrominance）Ｃｂのブロックと、色差Ｃｒのブロックから構成される。色差ブロックのサイズは、カラー・フォーマット（color format）によって決まる。ＹＣｂＣｒ４２０カラー・フォーマットでは、各色差ブロックのサイズは８×８になる。本出願の目的では、ビデオはフォーマットＹＣｂＣｒ４２０を用いてＹＣｂＣｒ色空間で符号化される。ただし、本システムおよび方法は、他の色空間およびカラー・フォーマットにも適用されてもよい。
【００２０】
ビデオ符号器では、予測、変換、および量子化などの一般的なビデオ圧縮処理の後の次のステップでは、構文要素および量子化係数についてエントロピー符号化を実行して、ビットストリームを形成する。ビデオ復号器では、逆の処理が行われる。構文要素および量子化係数は、ビットストリームから復号される。続いて、逆量子化および逆変換が行われる。最後に、再構築された残差が予測に追加され、ビデオ信号が再構築される。
【００２１】
この構文要素の一つの例には、符号化ブロック・パターン（coded block pattern：ＣＢＰ）がある。ＣＢＰは、マクロブロック中に非ゼロ量子化係数があるか、およびそれらがブロック・レベルでどのように分散されるかを示す。Ｈ．２６４／アドバンス・ビデオ符号化（Advanced Video Coding：ＡＶＣ）規格では、マクロブロックが符号器によってスキップされなければ、ビットストリームの中で輝度（luma）ＣＢＰおよび色差（chroma）ＣＢＰが送信される。輝度ＣＢＰは、一つのビットが四つの８×８ブロックの各々に対応する４ビットで構成される。輝度ＣＢＰビットがゼロの場合、対応する８×８ブロックには非ゼロ係数がないことを意味する。よって、輝度ＣＢＰは、０〜１５の値を持つことができ、色差ＣＢＰは０〜２の値を持つことができる。マクロブロックＣＢＰは、輝度ＣＢＰと色差ＣＢＰとから形成され、符号番号（code number）にマッピングされる。この符号番号は、例えば指数ゴロム（Exponential Golomb）符号を使用して符号化され、ビットストリームに追加される。ただし、各マクロブロックＣＢＰが個別に送信されるので、隣接のマクロブロックの符号化ブロック・パターン間の相関性が活用されないため、この符号方法は最適ではないことがある。
【００２２】
現在、ＩＳＯ／ＩＥＣ  ＭＰＥＧおよびＩＴＵ−Ｔ  ＶＣＥＧからのビデオ符号化の専門家で構成される共同ビデオチーム（Joint Video Team：ＪＶＴ）は、Ｈ．２６４／ＡＶＣへのスケーラブル・ビデオ符号化（Scalable Video Coding：ＳＶＣ）の拡張に取り組んでいる。ＪＶＴにより進められている最新の開発は、粗ＳＮＲ（Signal-to-noise）スケーラビリティ、細粒度ＳＮＲスケーラビリティ（fine granularity SNR scalability：ＦＧＳ）、空間スケーラビリティ、および時間スケーラビリティを持つビットストリームを可能にするものである。粗ＳＮＲスケーラビリティおよび時間スケーラビリティ・レイヤでは、輝度ＣＢＰおよび色差ＣＢＰは、基本レイヤで符号化されるのと同じ方法で符号化されるため、これらのレイヤは基本レイヤでの問題と同様の問題を抱える。
【００２３】
ＦＧＳレイヤでの輝度符号化ブロック・パターンを符号化する一つの方法は、基本レイヤ中の輝度ＣＢＰに基づいて、マクロブロック内の四つの輝度ＣＢＰビットを二つのグループに分割するものである。基本レイヤでの対応する輝度ＣＢＰビットがゼロである上位レイヤの輝度ＣＢＰビット（タイプ０  ＣＢＰビット）は、基本レイヤでの対応する輝度ＣＢＰビットが非ゼロ上位レイヤの輝度ＣＢＰビット（タイプ１  ＣＢＰビット）とは別に符号化される。基本レイヤの輝度ＣＢＰの値に基づいて、タイプ０ビットおよびタイプ１ビットの数は、一つのマクロブロックから別のマクロブロックへ固定されなくてもよい。ある技術では、グループのビット数が３未満の場合、固定長の符号を使用してタイプ０ビットまたはタイプ１ビットのいずれかを符号化する。グループのビットの数が３以上の場合、可変長符号化（variable length coding：ＶＬＣ）が使用されてもよい。さらに、この符号化方式では、タイプ０ビットおよびタイプ１ビットのいずれかを符号化するのに使用されるＶＬＣテーブルが、現在の確率推定に基づいて選択されるので、ＣＢＰビットの確率が維持されることが必要になる。この符号化方式は、スケーラブル・ビデオ符号化（ＳＶＣ）の初期のバージョンにあった。
【００２４】
ＦＧＳレイヤの輝度ＣＢＰのような構文要素用のこのような符号化方式での問題は、その複雑さにある。輝度ＣＢＰビットのグループ化、確率モデルの維持、およびＶＬＣテーブルの選択のような操作には、多くの演算を要することがある。隣接するマクロブロック中の類似する構文要素間の相関性が利用されないため、符号化の効率は低くなることがある。
【００２５】
図１は、情報を符号化する方法１００を示すフローチャートである。一つの態様では、符号化される情報はビデオ・シーケンスを備えている。方法１００はビデオ符号器内で実施されればよく、方法１００の逆はビデオ復号器によって実行されればよい。符号器は、信号またはデータを符号化されたストリームに変えるために使用されるデバイスである。次いで、復号器がその符号から元の信号またはデータの再構築されたバージョンを生成すればよい。損失のない圧縮では、元の信号またはデータの再構築されたバージョンは、元の信号またはデータと一致する。損失のある圧縮では、元の信号またはデータの再構築されたバージョンは、元の信号またはデータの近似である。符号器および復号器は、まとめてビデオ・コーデックと称されてもよく、これはソース画像またはビデオ・シーケンスを圧縮された形式に符号化し、圧縮された形式を復号して複製またはソース・シーケンスの近似を生成する。ここでの説明では、符号器の観点から特定の構成の態様をいくつか取り上げる。ビデオ圧縮の当業者であれば、復号器は逆の処理を行って符号器によって符号化された信号またはデータを再構築できることは容易に分かるだろう。
【００２６】
方法１００は、符号器がビデオ・シーケンスを受信することから開始する１０２。ビデオ・シーケンスは、複数のフレームに処理される１０４。複数のフレーム内の各フレームは、さらに複数のマクロブロックで処理される１０５。符号器は、隣接するビデオ・フレーム間または同じフレーム中のピクセル間の類似性を利用してビデオ・シーケンスの圧縮を開始し、現在のビデオ・フレーム中のマクロブロックの一部である元のビデオ信号の予測を構築する１０６。予測が１つ以上の過去のまたは未来のフレームから形成される場合、これを時間予測という。予測が同じフレーム中のピクセルから形成される場合、これを空間予測という。符号化された信号から予測信号を差し引くことによって、残差信号が形成される１０８。
【００２７】
方法１００は、残差信号に変換を適用して１１０、残りの空間冗長性を減らす。この変換では、予測残差サンプルを、変換係数によって表される別の領域に変換する。これらの係数は、残差信号のさらにコンパクトな表現を提供するわずかな重要な係数を残し、重要でない値を削除するために、量子化される１１２。
【００２８】
予測、変換、および量子化の後、符号器は、残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別する１１４。例えば、構文要素は、残差信号の量子化後にマクロブロックに非ゼロ係数があるかどうかを示す符号化ブロック・パターンを含んでいてもよい。
【００２９】
符号器は、同じカテゴリーの構文要素の識別されたシンボルをまとめて符号化する１１６。一つの態様では、エントロピー復号器がエントロピー符号化を行う。エントロピー符号器は、ビデオ・シーケンスの構文要素を表す一連のシンボル変換し、それらを送信または保存に適した圧縮されたビットストリームに含める１１８。構文要素の例には、ｍｂ＿ｓｋｉｐ＿ｆｌａｇ（マクロブロックが符号器によってスキップされるかどうかを示す。マクロブロックがスキップされる場合、復号器が隣接するマクロブロックの（複数の）動きベクトルからそれらの動きベクトルを導き出し、マクロブロック用のすべての量子化係数を０に設定する。）、ｍｂ＿ｔｙｐｅ（マクロブロックがイントラ・モードまたはインター・モードで符号化されるかを決める。マクロブロックの分割サイズを決める。）、ｓｕｂ＿ｍｂ＿ｔｙｐｅ（各サブマクロブロックに対しサブマクロブロックの分割サイズを決める。）、ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ（非ゼロ変換係数がどのように分散されるかを識別する。）、ｍｂ＿ｑｐ＿ｄｅｌｔａ（量子化器のパラメータを変える。）、および残差（量子化後の残差サンプルに対応する符号化された量子化変換係数）が含まれる。
【００３０】
方法１００は、同じカテゴリーの構文要素シンボルまとめて符号化し１１６、符号化された情報をビットストリームに含める１１８。一つの構成では、符号器は同じカテゴリーの多数の構文要素をまとめて符号化する。例えば、ビデオ符号化およびエントロピー符号モード用のＨ．２６４規格がコンテキストベース適応可変長符号化（Context-based Adaptive Variable Length Coding：ＣＡＶＬＣ）の状況では、個々のマクロブロックに対してｍｂ＿ｓｋｉｐ＿ｆｌａｇを送信する代わりに、構文要素ｍｂ＿ｓｋｉｐ＿ｒｕｎが使用される。ｍｂ＿ｓｋｉｐ＿ｒｕｎが「ｎ」の値を持つとき、「ｎ」個のスキップされたマクロブロックの後にスキップされない一つのマクロブロックが続く。この情報は、圧縮されたビットストリーム中に符号なし数値の「ｎ」の指数ゴロム符号を含めることによって伝えられる。指数ゴロム符号の定義は、Ｈ．２６４／ＡＶＣの仕様書の９．１節に記載されていると思われる。同じカテゴリーの多数の構文要素をまとめて符号化するエントロピー符号器のさらなる例が、図２に示されている。
【００３１】
図２は、図１で説明した方法に従って、交互ランレングス（Alternating Run Length）符号化を使用して圧縮されてもよいバイナリ・シンボル２００の列の一つの構成である。図示されているように、列２００は、六つの連続したゼロ２０２、七つの１（２０４）、三つのゼロ２０６、および一つの１（２０８）のランを含んでいる。六つのゼロ２０２のランはまとめてグループ化され、ランレングスＲ＝６を提供する。次いで、Ｒはエントロピー符号器によって符号化される。Ｒの最小値が１であり、Ｈ．２６４／ＡＶＣの規則によって、指数ゴロム符号を使用して、０から始まる負ではない数が符号化に使用されるため、一つの態様では「Ｒ−１」が指数ゴロム符号を使用して符号化される。例えば、値が「６」のＲは、指数ゴロム符号を使用して「００１１０」として符号化されるだろう。七つの連続したゼロ２０４のランはまとめてグループ化され、ランレングスＲ＝７を提供する。次いでこのランレングスは、指数ゴロム符号を使用してエントロピー符号器によって「００１１１」として符号化される。三つのゼロ２０６のランおよび一つの１（２０８）を含むランも同様の方法で符号化される。バイナリ・シンボルの列２００は、「００１１０  ００１１１  ０１１  １」を構成するビットストリームに圧縮される。続いてこのビットストリームは、復号器よって読み出され、バイナリ・シンボルの列が再現される。復号器では、ビットストリームから復号されるシンボル「Ｓ」を、式Ｒ＝Ｓ＋１を使用してランレングスＲに変換することができる。
【００３２】
図２が示すように、非ゼロ値のラン（runs of nonzero values）と同様に、ゼロのランはまとめて符号化される。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用してランレングスを符号化する。二つのめの構成では、ランレングスは、別のタイプの可変長符号に符号化されてもよく、別の符号化方式を使用して符号化されてもよい。
【００３３】
交互ランレングス符号化では、図２で説明されるように、初期値を符号化して、最初のランに符号化されるバイナリ・シンボルの値を導き出すのに役立ててもよい。一つの構成では、この初期値は、最初のランに符号化されるバイナリ・シンボルの逆と等しくなるように設定される。例えば、最初のランに符号化されるバイナリ・シンボルが０の場合、初期値は１に設定されることになる。構文要素の復号処理において、バイナリ・シンボルの値は新しいランが復号される度に変わるので、初期値を符号化することは有効である。図２で提供された例に従うと、符号化される初期値は１である。復号器が初期値の後に六つのシンボル２０２の新しいランを検出すると、構文要素の値は初期値１から０へ変更され、復号器は六つの値をゼロとして復号する。七つのシンボル２０４の新しいランを検出すると、構文要素の値は０から１に変更され、復号器は七つの値のランをそれぞれ１として復号する。この処理は、復号器が復号するシンボルのランを検出しなくなるまで続く。
【００３４】
図３は、図１で説明した方法に関連して使用されてもよい符号化方式の別の態様である。このさらなる態様は、ゼロラン（Zero Runs）符号化と称してもよい。この方式は、Ｈ．２６４／ＡＶＣでｍｂ＿ｓｋｉｐ＿ｆｌａｇフラグを符号化する際に使用されている。図３に示されているように、バイナリ値の列３００が圧縮されようとしている。ゼロラン符号化を使用して、非ゼロ値の前のゼロのランだけが符号化される。一つの構成では、指数ゴロム符号を使用してゼロランを符号化する。図示されているように、最初の非ゼロ値３０４の前に四つのゼロ値３０２がある。四つのゼロ値３０２および最初の非ゼロ値３０４は、指数ゴロム符号を使用して「００１０１」と符号化される値「４」を割り当てられる。続いてこの符号は、ビットストリームに追加される。次の五つのゼロ値３０６およびこれに続く２番目の非ゼロ値３０８は、値「５」を割り当てられ、指数ゴロム符号を使用して「００１１０」と符号化される。この符号は同様に、復号器に送信されるビットストリームに追加される。図示されているように、２番目の非ゼロ値３０８の直後に３番目の非ゼロ値３１０が続く。３番目の非ゼロ値３１０は、「０」の値を割り当てられる。これは、指数ゴロム符号を使用して「１」として符号化され、ビットストリームに追加されればよい。残りの二つのゼロ値３１２およびこれに続く４番目の非ゼロ値３１４は、値「２」を割り当てられ、指数ゴロム符号を使用して「０１０」と符号化される。結果、復号器に送信されるビットストリームは「００１０１  ００１１０  １  ０１１」である。図３に示されるようなゼロラン符号化では、初期フラグ値をビットストリームに送信する必要がない。
【００３５】
図４は、符号化されるランレングスを制限する一つの構成４００を示している。高解像度のビデオでは、いくつかの構文要素の最大ランレングスが非常に長いことがある。例えば、解像度１９２０×１０８０のビデオでは、輝度ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ（ＣＢＰ）の最大ランレングスは、（１９２０×１０８０）／６４＝３２，４００となるであろう。エントロピー符号器が指数ゴロム符号を使用してこのシンボルのランを符号化すると、符号は２９ビットで構成されることになる。一つの態様では、符号化される最大ランレングス（maximum run length：ＭＲ）に上限が定義されてもよい。
【００３６】
復号器によって復号されたランレングスが定義されたＭＲよりも大きい場合、例えば「ＭＲ＋１」の場合、実際のランレングスは、ＭＲにビットストリーム中の次の符号化シーケンスから復号された追加のランレングスを加えたものなどとなる。例えば、図４は、指数ゴロム符号を使用して符号化される、五つの様々な長さのラン４０２、４０４、４０６、４０８、および４１０を示している。これらのシンボルのランは、三つのゼロ４０２、１３個の１（４０４）、１４個のゼロ４０６、１５個の１（４０８）、および３１個のゼロ４１０で構成されている。一つの構成では、一つの符号化シンボルから復号できる上限ＭＲは、１４の制限に設定される。三つのゼロ４０２のランシーケンスは、「０１１」として符号化されてもよい。１３個の１（４０２）のランシーケンスは、「０００１１０１」として符号化されてもよい。１４個のゼロ４０６のランは、「０００１１１０」として符号化されてもよい。１５個の１（４０８）および３１個のゼロ４１０の残りの二つのランは、上限ＭＲの１４よりも大きい。一つの構成では、１５個の１（４０８）のランレングスは、二つの指数ゴロム符号「０００１１１１  １」として符号化される。最初の符号から復号されるランレングス「０００１１１１」は１５である。しかし、上限ＭＲは１４と定義されている。復号された値１５というのは、現在のランレングスは少なくとも１４で、実際のランレングスを得るためにはさらなる指数ゴロム符号を復号しなければならないことを意味している。次の符号から復号されるさらなるランレングスは１である。復号後、実際のランレングスはＭＲ、つまり１４と、１などのさらに復号されたランレングスとを加えたものである。したがって、復号されるランレングスは１５になる。
【００３７】
さらなる例として、３１個のゼロ４１０のランシーケンスが符号化される場合を考える。３１個のゼロ４１０のランレングスは、三つの指数ゴロム符号「００１１１１  ０００１１１１  ０１１」として符号化される。最初の符号から復号されるランレングスは１５である。上限ＭＲは１４と定義されているので、復号された値１５というのは、実際のランレングスは少なくとも１４で、指数ゴロム符号をさらに復号し、以前に復号されたランレングスに追加されなければならないことを意味している。２番目の符号から復号されるランレングスも１５であり、これは、実際のランレングスは少なくとも２８（１４＋１４）で、指数ゴロム符号をさらに復号し、以前に復号されたランレングスに追加されなければならないことを意味している。３番目の符号から復号されるランレングスは３である。これは、上限ＭＲの１４を下回るので、このランシーケンスの復号は終了する。続いて、復号されたランレングスは合計され（１４＋１４＋３）、３１個のゼロのランシーケンスが再現される。
【００３８】
図５は、図１および図２で説明した交互ランレングス符号化方式を使用して、特定のタイプの構文要素ｃｏｄｅｄ＿ｂｌｏｃｋ＿ｐａｔｔｅｒｎ（ＣＢＰ）を符号化する一つの構成５００を示すブロック図である。以下の図面および説明のいくつかでは、ＣＢＰ構文要素の符号化を取り上げるが、本システムおよび方法が、このような構文要素の符号化および復号化のみに限定されることを意味するものではない。
【００３９】
前述のように、ＣＢＰ構文要素は、どの８×８ブロック（輝度および色差）が符号化された非ゼロ変換係数を含んでいるかを識別する。図５は、五つのマクロブロック５０４、５０６、５０８、５１０、および５１２中の五つの別々の１６×１６輝度ブロックを示している。各１６×１６輝度ブロックは、さらに四つの８×８輝度ブロックに分割される。各８×８輝度ブロックは、符号化された非ゼロ変換係数を含んでいてもいなくてもよい。隣接する相関関係のために、隣接する８×８ブロックの輝度ＣＢＰビットはしばしば同じ値になる。図示された構成では、エントロピー符号器を使用して、８×８輝度ブロックが符号化された変換係数を含んでいるか否かを示しているシンボルのランシーケンスを符号化する。一つの構成では、「０」のシンボルは、特定の８×８輝度ブロックが符号化された変換係数を含んでいないことを示し、「１」のシンボルは、輝度ブロックが符号化された非ゼロ変換係数を含んでいるかもしれないことを示している。一つの態様では、エントロピー符号器は、指数ゴロム符号を使用してシンボルのランを符号化する。
【００４０】
図５に示されるように、エントロピー符号器は、ジグザグ・タイプのパターンによってシンボルのランシーケンスを符号化する。マクロブロック５０４の最初の三つの８×８輝度ブロックは、シンボル「０」を含んでおり、これはこれらのブロックが符号化された変換係数を含んでいないことを示す。エントロピー符号器は、指数ゴロム符号を使用してラン「３」を符号化し、結果として符号「０１１」がビットストリームに追加される。最初の１６×１６のマクロブロック５０４の４番目の８×８輝度ブロックは、シンボル「１」を含んでおり、これは８×８輝度ブロックが符号化された非ゼロ変換係数を含んでいるかもしれないことを示す。図示されているように、マクロブロック５０６の四つのすべての８×８輝度ブロック、およびマクロブロック５０８の最初の８×８輝度ブロックは、シンボル「１」を含んでいる。エントロピー符号器は、指数ゴロム符号を使用してラン「６」を「００１１０」として符号化し、この符号がビットストリームに追加される。ラン「６」は、１の連続したランがジグザグ・パターンを使用して六つの８×８輝度ブロックにわたって存在するので符号化される。エントロピー符号器は、マクロブロック５０８の残りの８×８輝度ブロック中のシンボルの符号化を続ける。ランシーケンスは、「１」として符号化されるシンボル「０」を持つ一つの８×８輝度ブロック、「１」として符号化されるシンボル「１」を持つ一つの８×８輝度ブロックで構成される。マクロブロック５０８の最後の８×８輝度ブロックのほか、マクロブロック５１０および５１２の残りの八つの８×８輝度ブロックはすべて、シンボル「０」を含んでいる。したがって、シンボル「０」を持つ九つの８×８輝度ブロックのランシーケンスがある。エントロピー符号器は、指数ゴロム符号を使用してラン「９」を「０００１００１」として符号化する。
【００４１】
エントロピー符号器が、図示された五つのマクロブロックの輝度ＣＢＰを符号化した後、復号器にビットストリーム「１  ０１１  ００１１０  １  １  ０００１００１」が送信される。ビットストリームの最初の値「１」は、初期輝度ＣＢＰビット５０２を表し、これは値１の１ビットのフラグである。一つの構成では、初期ＣＢＰ５０２の値は、復号される最初のランシーケンス中のバイナリ・シンボルの値の反転である。
【００４２】
図５で符号化されたビットストリームの復号処理は、復号器がビットストリームから初期ＣＢＰ５０２の値を読み出すことによって開始する。この初期値は、符号器が、最初のランシーケンス中のシンボルの値を引き出すのに役立つ。復号された次の値は「０１１」であり、これはスキャン順（scanning order）中の三つのＣＢＰビットのランレングスがゼロであることを示す。次に復号された値は「００１１０」であり、これはスキャン順中の六つのＣＢＰビットのランレングスが「１」であることなどを示す。
【００４３】
図６は、複数のマクロブロック６０４、６０６、６０８、６１０、および６１２内のＣＢＰビットをスキャンする別の構成６００を示すブロック図である。エントロピー符号器は、図５で説明した方法と同じ方法でランシーケンスを符号化するが、エントロピー符号器は、ランレングスを統計的に増やし、符号化されるランの数を減らすために、一つの８×８ブロックから別のブロックまでの距離が最小になるようにマクロブロックを違った方法でスキャンしてもよい。最初のランシーケンスの値を示すために、初期値６０２も符号化され、ビットストリームに追加される。
【００４４】
図７は、ＳＮＲ上位レイヤなどの上位レイヤにおいて輝度ＣＢＰを符号化する方法７００の一つの構成を示すフローチャート図である。以下の説明では、ＳＮＲ上位レイヤは、ＦＧＳ  ＳＮＲレイヤまたは粗粒度ＳＮＲレイヤのいずれかとすることができる。符号化される輝度ＣＢＰがＳＮＲ上位レイヤにある場合、この上位レイヤのＣＢＰは、基本レイヤのＣＢＰとの強い相関関係を持つ。図７に示される方法７００は、上位レイヤの輝度ＣＢＰが符号化されるか否かを示している。
【００４５】
この方法は、７０２で開始し、上位レイヤの現在の８×８ブロックに対応する基本レイヤの８×８ブロックに非ゼロ変換係数があるかどうかを判断する７０４。基本レイヤの対応する８×８ブロックに、非ゼロ係数があることを示す「１」のシンボルがある場合、この方法は、引き続き上位レイヤの現在の８×８ブロックがさらに四つのサブブロックとして符号化されるかどうかを判断する７０６。上位レイヤの現在の８×８ブロックがさらに四つのサブブロックに符号化される場合、現在の８×８ブロックの輝度ＣＢＰビットは符号化されない７０８。そうでない場合、７０４、７０６の二つの条件のいずれかが満たされなければ、現在の８×８ブロックの輝度ＣＢＰビットは明示的に符号化される７１０。
【００４６】
基本レイヤの８×８ブロックは、基本レイヤの８×８ブロックに非ゼロ係数があることを示すシンボル「１」を含んでいてもよい。ＳＮＲ上位レイヤの輝度ＣＢＰビットが符号化されず、「１」の値があると推測されると、１ビットが保存される。これは、この値が明示的に符号化される必要がなかったためである。しかし、上位レイヤの輝度ＣＢＰの実際の値が「０」の場合、上位レイヤの輝度ＣＢＰの値の誤予測がさらに低い構文レベルにおいて修正されてもよい。上位レイヤの８×８ブロックが、各サブブロックについて四つのサブブロックとして符号化される場合、サブブロックに非ゼロ係数があるかどうかを示すために、さらなる構文要素がビットストリーム中で符号化される。８×８ブロック・レベルでのこの上位レイヤの輝度ＣＢＰビットの誤予測は、サブブロック・レベルにて比較的小さいオーバーヘッドで修正されてもよい。図７の方法７００によって示されるさらなる制約では、基本レイヤの８×８の対応するブロックに、非ゼロ係数を示す輝度ＣＢＰビットがあることが必要であるほか、上位レイヤの８×８ブロックが、上位レイヤの８×８ブロックＣＢＰビットが符号化されないことになる前に、四つのサブブロックとして符号化されることが必要になる。
【００４７】
一つの構成では、基本レイヤの対応する輝度ＣＢＰビットがゼロであるか、８×８ブロックが四つのサブブロックとして符号化されないので上位レイヤ輝度ＣＢＰビットが明示的に符号化されなければならないかのいずれかの場合に、交互ランレングス符号化が上位レイヤの輝度ＣＢＰビットに適用される。一つの構成では、符号化されることになる上位レイヤの輝度ＣＢＰビットは、二つの別のスキャンによって符号化されてもよい。ＦＧＳレイヤで輝度ＣＢＰを符号化する一つのシステムでは、基本レイヤの対応する輝度ＣＢＰビットが０である輝度ＣＢＰビットは、タイプ０輝度ＣＢＰビットといい、基本レイヤの対応する輝度ＣＢＰビットが１である輝度ＣＢＰビットはタイプ１輝度ＣＢＰビットという。各スキャンでは、輝度ＣＢＰビットの一つのタイプが、交互ランレングス符号化を使用して符号化される。二つのスキャンは順に行われても、同時に行われてもよい。別の構成では、基本レイヤのＣＢＰ情報は、上位レイヤでの輝度ＣＢＰの符号化では無視される。
【００４８】
図８は、図７に従って説明した方法７００の一つの構成８００を示すブロック図である。図示されているように、ＳＮＲ上位レイヤのマクロブロック８０４、８０６、８０８、８１０、および８１２内の五つの１６×１６輝度ブロックがエントロピー符号器によって符号化される。一つの構成では、エントロピー符号器は、マクロブロックの各８×８ブロック用の輝度ＣＢＰビットを符号化する。示されているように、最初のマクロブロック８０４の三つの８×８ブロックにはシンボル「０」があり、これらの８×８ブロックに非ゼロ係数がないことを示している。最初のマクロブロック８０４内の４番目の８×８ブロック８０４Ａは、非ゼロ係数があることを示すシンボル「１」のを持つ基本レイヤ中の８×８ブロックに対応する。一つの構成では、４番目の８×８ブロック８０４Ａは、さらにサブブロックに符号化される（図示せず）。図示されているように、エントロピー符号器は、この４番目の８×８ブロック８０４Ａを抜かして、この４番目の８×８ブロック８０４Ａに関連する輝度ＣＢＰビットを明示的に符号化しない。基本レイヤの対応する８×８ブロックに「１」のＣＢＰビットがあり、８×８ブロック８０４Ａはさらにサブブロックに分割されるので、輝度ＣＢＰビットはシンボル「１」を持っていると推測される。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用して、三つのゼロのランシーケンスを「０１１」として符号化し、これをビットストリームに含める。
【００４９】
エントロピー符号器は、さらにマクロブロック８０６中の２番目の１６×１６輝度ブロックをスキャンする。四つの８×８ブロックのうち三つに、非ゼロ係数があることを示すシンボル「１」がある。４番目の８×８ブロック８０６Ａは、非ゼロ係数が基本レイヤにあることを示しているシンボル「１」を持つ、基本レイヤ中の８×８ブロックに対応する。一つの構成では、この４番目の８×８ブロック８０６Ａは、さらにサブブロックに符号化される（図示せず）。エントロピー符号器は、この４番目の８×８ブロック８０６Ａを抜かして、このようなブロックに関連する輝度ＣＢＰを明示的に符号化しない。エントロピー符号器は、マクロブロック中の残りの８×８ブロックをスキャンし、サブブロックとしてさらに符号化され基本レイヤの対応する８×８ブロックにシンボル「１」のある８×８ブロック８１０Ａを抜かして、同様の方法で符号化を続ける。初期ビット８０２が「１」に設定されたビットストリーム「１  ０１１  ００１０１  ０００１００１」が復号器に送信される。これは初めに符号化された輝度ＣＢＰビットの値の反転である。
【００５０】
図９は、上位レイヤで交互ランレングス符号を利用する一つの構成９００のブロック図を示している。ここでは、ｍｂ＿ｓｋｉｐ＿ｆｌａｇビットが定義され、マクロブロック９１０全体の符号化を抜かしている。図９に示されるマクロブロック９０４、９０６、および９０８中の最初の三つの１６×１６輝度ブロックは、図８に示されたものと同じである。エントロピー符号器は、８×８ブロックがさらにサブブロックに符号化されず、基本レイヤの対応する８×８ブロックに「１」の値がない限り、マクロブロックの各８×８ブロックをスキャンし、輝度ＣＢＰビット値を符号化する。先に図７および図８で説明したように、これらの８×８ブロック９０４Ａおよび９０６Ａは抜かされ、それらの対応する輝度ＣＢＰビットは符号化されない。一つの構成では、マクロブロック９１０の１６×１６輝度ブロック全体がエントロピー符号器によって抜かされてもよい。ｍｂ＿ｓｋｉｐ＿ｆｌａｇビットが定義され、その値が１の場合、符号器は現在のマクロブロックを飛ばす。マクロブロックが飛ばされた場合、輝度ＣＢＰビットおよび色差ＣＢＰビットの両方がゼロであると推測される。一つの構成では、エントロピー符号器は、現在のマクロブロックが完全に飛ばされるということを示すｍｂ＿ｓｋｉｐ＿ｆｌａｇ９０９をスキャンする。次の図では、エントロピー符号器が３番目のマクロブロック９０８に関連する輝度ＣＢＰビットのスキャンを完了すると、この復号器は４番目のマクロブロック９１０を飛ばし、５番目のマクロブロック９１２の輝度ＣＢＰビットのスキャンを続ける。輝度ＣＢＰに関連する結果のビットストリームは、初期ＣＢＰビット９０２が「１」である「１  ０１１  ００１０１  ００１１０」となる。これは最初のランで輝度ＣＢＰビットが符号化された値の反転である。このビットストリームは、復号器に送信される前に他の構文要素から形成されたビットストリームでインターリーブされてもよい。
【００５１】
説明したように、ｍｂ＿ｓｋｉｐ＿ｆｌａｇが、粗粒度上位レイヤまたは細粒度ＳＮＲ上位レイヤとすることができるであろう上位レイヤの符号化において使用されてもよい。上位レイヤのスライスがイントラ予測（intra-predicted）されない場合。非スケーラブル・ビデオの符号化では、イントラ予測されたスライスが、現在のスライス内でのサンプルに基づいて予測されたスライスである。スケーラブル・ビデオ符号化では、上位レイヤのイントラ予測されたスライスは、予測が基本レイヤの対応するフレーム中のサンプルから構築できるように定義されてもよい。可変長符号化（ＶＬＣ）がエントロピー符号化の方法として使用されるときには、ｍｂ＿ｓｋｉｐ＿ｆｌａｇ’ｓは、Ｈ．２６４／ＡＶＣ規格で定義されている方法と同じ方法を使用して、ｍｂ＿ｓｋｉｐ＿ｒｕｎ’ｓとして符号化される。別の態様では、ｍｂ＿ｓｋｉｐ＿ｆｌａｇは、先に説明したように交互ランレングス符号化を使用して符号化される。
【００５２】
図１０は、交互ランレングス符号化および遷移フラグ（transition flags）を使用して色差符号化されたブロック・パターンを符号化する一つの構成１０００を示すブロック図である。図１０のブロック図は、先に説明した色差ブロックに関連するさらなる構文要素を符号化するために使用されてもよい。四つのバイナリ・シンボルで構成される輝度ＣＢＰとは異なり、色差ＣＢＰは０〜２の範囲の値を持ってもよい。Ｈ．２６４／ＡＶＣおよびそのＳＶＣの拡張では、ＣｂブロックおよびＣｒブロックの両方に対し、単一の色差ＣＢＰが定義される。以下の説明では、特に示されない限り、色差ブロックはＣｂブロックおよびＣｒブロックの両方のことをいう。説明した方式と同じ方式を拡張して、別の定義を用いて色差ＣＢＰを符号化してもよい。色差ＣＢＰの取り得る値は三つのみであるため、特定の色差ＣＢＰは、一つの値から、他の二つの値のうちの一つの値にしか変わることができない。例えば、ランシーケンスの最後に現在の色差ＣＢＰが１の場合、次のランの色差ＣＢＰの値は０か２でなくてはならない。一つの構成では、１ビットの遷移フラグが新しい色差ＣＢＰの値を伝える。
【００５３】
図示されているように、最初の六つの色差ブロック１００４は０の値の色差ＣＢＰを持ち、次の七つの色差ブロック１００６は値２を持ち、次の四つの色差ブロック１００８は値０を持ち、残りの五つの色差ブロック１０１０は値１を持っている。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用してこれらの値を符号化する。六つのゼロ１００４の最初のランは、「００１１０」として符号化される。値２を持つ七つのブロック１００６のランは、「００１１１」として符号化される。１ビットの遷移フラグ（図示せず）は、これら二つの符号化されたランの間に挿入される。一つの構成では、遷移フラグは、値０または１を割り当てられて、次の符号化された色差ランシーケンスの色差ＣＢＰ値を示してもよい。例えば、値１の遷移フラグが、ゼロの値を持つ色差ＣＢＰのランの後に挿入され、次の色差ＣＢＰのランが２の値を持つことを示してもよい。七つの連続したブロック１００６のランに続き、エントロピー符号器は四つのゼロ１００８のランのほか、五つの１（１０１０）のランも符号化する。値１の遷移フラグが、値２（１００６）の色差ＣＢＰのランの後にビットストリームに挿入され、次の色差ＣＢＰ１００８のランが０の値を持つことなどを示してもよい。値０の遷移フラグが、値ゼロ１００８の色差ＣＢＰのランの後にビットストリームに挿入され、次の色差ＣＢＰ１０１０のランが１の値を持つことを示してもよい。一つの構成では、復号器は、最後の色差ＣＢＰおよび遷移フラグから新しい色差ＣＢＰ値を次のように導き出す。新しい色差Ｃｂｐ＝（最後の色差Ｃｂｐ＋遷移フラグ＋１）％３
遷移フラグは、別の方法で定義されてもよい。一つの構成では、遷移フラグは、符号器の最後の色差Ｃｂｐおよび新しい色差Ｃｂｐによってインデックスされるルックアップ・テーブルから取り出されてもよい。復号器では、最後の色差Ｃｂｐおよび遷移フラグから新しい色差Ｃｂｐを導き出すのに使用できる、整合するルックアップ・テーブルが定義される。最初のランの色差ＣＢＰの値を導き出すのに役立つよう、色差ＣＢＰに関連する他の何らかの情報が符号化される前に、ビットストリームに初期値が格納される。
【００５４】
さらなる態様では、値１の色差ＣＢＰのランおよび値２の色差ＣＢＰのランは区別されない。ゼロ色差ＣＢＰのランおよび非ゼロ色差ＣＢＰのランが符号化される。ランレングスを「ｎ」と想定して、非ゼロ色差ＣＢＰの各ランが復号された後、それぞれの「ｎ個の」色差ＣＢＰ値が１であるか、２であるかを識別するためにさらなる「ｎ個の」ビットが復号される。初期値は、色差ＣＢＰに関連する他の何らかの情報が符号化される前に、ビットストリームに格納される。交互ランレングス符号化を使用して最初の符号化される色差ＣＢＰが非ゼロ場合、初期値として０の値が使用される。それ以外の場合、初期値として１の値が使用される。
【００５５】
さらなる態様では、色差ＣＢＰのランは、図３で説明したゼロラン符号化方式に従って符号化されてもよい。非ゼロ色差ＣＢＰの前のゼロのランは、指数ゴロム符号を使用して符号化されてもよい。さらなる１ビットフラグが、非ゼロ色差ＣＢＰ値が１か２であるかを示すために符号化される。この特徴は、連続した非ゼロ色差ＣＢＰ値がまとめてグループ化されないという点で、前述の構成とは異なる。
【００５６】
図１１は、デジタル画像および／またはデジタル・ビデオを処理するように構成されたデバイス１１００を示している。デバイス１１００は、デジタル・テレビ、デジタル・ダイレクト・ブロードキャスト・システム（digital direct broadcast system）、無線通信デバイス、パーソナル・デジタル・アシスタント（ＰＤＡ）、ラップトップ・コンピュータ、デスクトップ・コンピュータ、デジタル・カメラ、デジタル記録デバイス、ネットワーク可能なデジタル・テレビ、携帯電話もしくは衛星ラジオ電話（satellite radio telephone）、またはビデオ電話通信（video telephony：ＶＴ）機能のある任意の電気通信デバイスを表すか、それらに実装されてもよい。
【００５７】
デバイス１１００は、画像データおよび／またはビデオ・データを処理、符号化、復号化、伝送すればよい。ビデオ・データは、ビデオ・キャプチャ・ユニット（またはイメージ・センサ）１１１２のようなビデオ・カメラによってキャプチャされるか、ビデオ・アーカイブから取り込まれるか、別の方法で取得されてもよい。デバイス１１００のビデオ符号化ユニット１１１０は、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４、または他の何らかのビデオ符号化規格のようなビデオ符号化規格を使用してもよい。ビデオ符号化ユニット１１１０は、動き推定および動き補償などのフレーム間符号化（inter-frame coding）技術、ならびに空間推定およびイントラ予測符号化技術などのフレーム内符号化（intra-frame coding）技術をサポートしていればよい。
【００５８】
デバイス１１００は、カメラまたはビデオ・カメラのような画像／ビデオ・キャプチャ・デバイス１１１２を含み、画像またはビデオ・シーケンスをキャプチャし、キャプチャした画像またはシーケンスをメモリ１１１４に格納すればよい。画像／ビデオ処理ユニット１１０２は、画像および／またはビデオ・シーケンスを処理すればよい。メモリ１１０４は、このような処理の前後に画像および／またはビデオ・シーケンスを格納すればよい。
【００５９】
トランシーバ１１１６は、符号化されたビデオ・シーケンスを別のデバイスに対して送信および／または受信すればよい。トランシーバ１１１６は、符号分割多元接続（code division multiple access：ＣＤＭＡ）などの無線通信規格を使用すればよい。ＣＤＭＡ規格の例には、ＣＤＭＡ  ＩｘＥＶ−ＤＯ、広帯域符号分割多元接続（Wideband Code Division Multiple Access：ＷＣＤＭＡ）などを含む。
【００６０】
デバイス１１００の１つ以上の要素は、通信バス１１１８を介して通信可能に接続されればよい。図１に示される要素に加えて、またはそれらの要素の代わりに、デバイス１１００に他の要素が含められてもよい。図１に図示されたアーキテクチャは、単に例にすぎない。本願明細書に記載の技術は、他の様々なアーキテクチャによって実装されてもよい。
【００６１】
メモリ１１１４は、比較的大きいメモリ空間を持っていればよい。メモリ１１１４は、ダイナミック・ランダム・アクセス・メモリ（dynamic random access memory：ＤＲＡＭ）、またはＦＬＡＳＨメモリを備えていればよい。メモリ１１１４は、「ＮＯＲ」もしくは「ＮＡＮＤ」ゲート・メモリ技術、または他の何らかのデータ記憶技術を備えていてもよい。他の例では、メモリ１１１４は、不揮発性メモリまたは他の何らかのタイプのデータ記憶ユニットを備えていてもよい。
【００６２】
画像／ビデオ処理ユニット１１０２は、移動無線電話機または他の移動デバイス用のチップセットを備えていればよく、これにはハードウェア、ソフトウェア、ファームウェア、および／または１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（digital signal processors：ＤＳＰｓ）、特定用途向け集積回路（application specific integrated circuits：ＡＳＩＣｓ）、フィールド・プログラマブル・ゲートアレイ（field programmable gate arrays：ＦＰＧＡｓ）、またはそれらの様々な組み合わせを含めてもよい。処理ユニット１１０２は、フロントエンド画像／ビデオ処理ユニット１１０８および画像／ビデオ符号化ユニット１１１９に接続されたローカル・メモリ１１０４を含んでいてもよい。この符号化ユニット１１１９は、デジタル・ビデオ・データを符号化（すなわち圧縮）および復号（すなわち解凍）する符号器／復号器（コーデック）を備えていてもよい。
【００６３】
ローカル・メモリ１１０４は、メモリ１１１４と比べて小さく高速なメモリを備えていてもよい。例えば、ローカル・メモリ１１０４は、同期ダイナミックランダム・アクセス・メモリ（synchronous dynamic random access memory：ＳＤＲＡＭ）を備えていてもよい。ローカル・メモリ１１０４は、処理ユニット１１０２の他のコンポーネントとともに組み込まれる「オンチップ」メモリを備え、プロセッサを駆使する符号化処理の間のデータへの高速なアクセスを提供してもよい。なお、メモリ１１１４および１１０４を一つのメモリに結合してもよく、他の多くの構成に実装されてもよい。メモリ・コントローラ１１０６は、ローカル・メモリ１１０４に対するメモリ・フェッチおよびライト・バックを制御してもよい。
【００６４】
フロントエンド画像／ビデオ処理ユニット１１０８は、ビデオ・シーケンスのフレーム上で１つ以上の画像処理技術を実行して画像品質を向上させ、これによってビデオ・シーケンスの品質を向上させる。例えば、フロントエンド画像／ビデオ処理ユニット１１０８は、デモザイキング（demosaicing）、レンズロールオフ補正（lens rolloff correction）、スケーリング、色補正、色変換、および空間フィルタリング（spatial filtering）のような技術を行えばよい。フロントエンド画像／ビデオ処理ユニット１１０８は、他の技術を実行してもよい。一般的に、ユニット１１０８によって行われる技術は、「フロントエンド」画像処理技術という。これは、この技術が画像／ビデオ符号化ユニット１１１０による符号化の前に行われるからである。
【００６５】
画像／ビデオ・キャプチャ・ユニット１１１２は、センサの表面に配置されたカラー・フィルタ・アレイ（color filter arrays：ＣＦＡｓ）を含むイメージ・センサを備えていればよい。ユニット１１０８によって行われるフロントエンド画像処理は、キャプチャ・ユニット１１１２によってキャプチャされるビデオ・シーケンスの品質を向上させればよい。例えば、フロントエンド処理ユニット１１０８および／または符号化ユニット１１１０は、キャプチャ・ユニット１１１２によってキャプチャされた画像を処理するようにプログラムされたデジタル信号プロセッサ（ＤＳＰ）を備えていてもよい。メモリ１１０４（またはメモリ１１１４）の同じ領域が、フロントエンド画像処理目的および他の記憶目的の両方に使用されてもよい。
【００６６】
画像／ビデオ符号化ユニット１１１０は、フレーム間圧縮および／またはフレーム内圧縮のような１つ以上のビデオ圧縮技術を含めばよい、画像および／またはビデオ符号化を行ってもよい。例えば、符号化ユニット１１１０は、フレーム間圧縮を提供するために、時間的またはフレーム間データの相関性を利用する動き推定および動き補償技術を実装してもよい。代替的に、または付加的に、符号化ユニット１１１０は、フレーム内圧縮を提供するために、空間的またはフレーム内データの相関性を利用する空間推定およびイントラ予測技術を実装してもよい。動き補償（すなわちイントラ予測）の出力は、「残差」といい、符号化される現在のビデオ・ブロックと動き推定または空間推定によって識別される予測ブロックとの間の差を示すデータのブロックを備えていればよい。
【００６７】
符号化ユニット１１１０が動き補償（すなわちイントラ予測）を行って残差ができた後、残差をさらに符号化し、データをさらに圧縮するためのさらなるステップが行われてもよい。さらなるステップは、使用される符号化の規格によって異なることがあるが、一般的に「残差符号化（residual coding）」と称される。符号化ユニット１１１０は、これらのビデオ圧縮技術のうち１つ以上を行い、ビデオ・シーケンスのトランシーバ１１１６を介した他のデバイスとの通信に必要になるデータの量を減らしてもよい。
【００６８】
情報および信号は、任意の様々なテクノロジーおよび技術を使用して表されてもよい。例えば、上記説明全体にわたり参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁粒子（particle）、光場（optical fields）もしくは光粒子、またはそれらの任意の組み合わせによって表されてもよい。
【００６９】
さらに、本願明細書で開示された構成と関連して説明された、様々な例としての論理ブロック、モジュール、回路、およびアルゴリズム・ステップは、電子的ハードウェア、コンピュータ・ソフトウェア、またはその両方の組み合わせとして実装されればよい。このハードウェアおよびソフトウェアの互換性を明らかに例示するために、上記において様々な例としてのコンポーネント、ブロック、モジュール、回路、およびステップを概してその機能の観点から説明した。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課された設計制約によって決まる。当業者は、ここで説明された機能を各特定のアプリケーションについて様々な方法で実装することもできるが、このように実装を決定することは、本システムおよび方法の範囲を逸脱していると解釈されるべきではない。
【００７０】
本願明細書で開示された構成と関連する、様々な例としての論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲートアレイ信号（field programmable gate array signal：ＦＰＧＡ）もしくは他のプログラマブル・ロジック・デバイス、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または本願明細書に記載の機能を実行するように設計されたそれらの組み合わせとともに実装または実行されればよい。汎用プロセッサは、マイクロプロセッサであってもよいが、別の方法ではプロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、またはステート・マシンのいずれでもよい。プロセッサは、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つ以上のマイクロプロセッサ、または他の何らかのこのような構成の組み合わせのような、コンピューティング・デバイスの組み合わせとして実装されてもよい。
【００７１】
本願明細書での開示される構成に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェア・モジュール、またはその二つの組み合わせの中に直接具現化されてもよい。ソフトウェア・モジュールは、ランダム・アクセス・メモリ（random access memory：ＲＡＭ）、フラッシュ・メモリ、リード・オンリー・メモリ（read-only memory：ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリ（erasable programmable read-only memory：ＥＰＲＯＭ）、電気的消去可能プログラマブル・リード・オンリー・メモリ（electrically erasable programmable read-only memory：ＥＥＰＲＯＭ）、レジスタ、ハードディスク、リームーバブル・ディスク、コンパクト・ディスク・リード・オンリー・メモリ（compact disc read-only memory：ＣＤ−ＲＯＭ）、または当技術分野で周知の他の形式の記憶媒体の中ににあってもよい。例としての記憶媒体は、プロセッサが記憶媒体に対し情報を読み出し、および書き込みできるようにプロセッサに接続される。別の方法では、記憶媒体は、プロセッサに一体化されていてもよい。プロセッサおよび記憶媒体は、ＡＳＩＣの中にあってもよい。ＡＳＩＣは、ユーザ端末内にあってもよい。別の方法では、プロセッサおよび記憶媒体は、ユーザ端末内のディスクリート・コンポーネントとしてあってもよい。
【００７２】
本願明細書で開示された方法は、説明された方法を実現するための１つ以上のステップまたは行為を備える。この方法ステップおよび／または行為は、本システムおよび方法の範囲を逸脱することなく、互いに入れ換えられてもよい。つまり、構成を適切に動作させるために必要とされない限り、ステップまたは行為の特定の順序が特定のステップおよび／または行為の順序および／または使用は、本システムおよび方法の範囲を逸脱することなく変更されてもよい。
【００７３】
本システムおよび方法の特定の構成および適用が例示され説明されたが、このシステムおよび方法は本願明細書で開示された厳密な構成およびコンポーネントに限定されるものではないことは分かるであろう。本願明細書で開示された方法およびシステムの配置、動作、および詳細に対し、システムおよび方法の精神および範囲から逸脱することなく、当業者であれば分かる様々な変更、改変、および変形をしてもよい。
【図面の簡単な説明】
【００７４】
【図１】情報を符号化する方法を示すフローチャート。
【図２】交互ランレングス符号化を使用して圧縮され得るバイナリ・シンボルの列の一つの構成を示す図。
【図３】本システムおよび方法に従って使用され得る符号化方式のさらなる構成を示す図。
【図４】符号化されるランレングスを制限する一つの構成を示すブロック図。
【図５】特定のタイプの構文要素を符号化する一つの構成を示すブロック図。
【図６】特定のタイプの構文要素を符号化するさらなる態様を示すブロック図。
【図７】上位レイヤで輝度符号化ブロック・パターン（ＣＢＰ）ビットを符号化する方法の一つの構成を示すフローチャート図。
【図８】図７に従って説明される方法の一つの構成を示すブロック図。
【図９】上位レイヤでの交互ランレングス符号化のさらなる構成を示すブロック図。
【図１０】交互ランレングス符号化を使用して色差ＣＢＰを符号化するさらなる態様を示すブロック図。
【図１１】デジタル画像および／またはデジタル・ビデオを処理するために一般的に使用される主なハードウェア・コンポーネントを示すブロック図。
【図１】
2009531997.tif 000003
【図２】
2009531997.tif 000004
【図３】
2009531997.tif 000005
【図４】
2009531997.tif 000006
【図５】
2009531997.tif 000007
【図６】
2009531997.tif 000008
【図７】
2009531997.tif 000009
【図８】
2009531997.tif 000010
【図９】
2009531997.tif 000011
【図１０】
2009531997.tif 000012
【図１１】
2009531997.tif 000013
【国際調査報告】
2009531997.tif 000014
2009531997.tif 000015
2009531997.tif 000016