(57)【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてコンピュータが実行する、ビデオシーケンス内の複数のビデオフレームを復号化する方法であって、前記複数のビデオフレームの各々は複数のマクロブロックを含み、
ビットストリーム内の圧縮ビデオデータを受信する受信ステップであって、該ビットストリームは複数の構文レベルを持つ符号化構文を有し、該複数の構文レベルはフレームレベルとマクロブロックレベルとを含む受信ステップと、
インターフレーム復号化を使用して前記複数のビデオフレームの予測されるビデオフレームを復号化する復号化ステップであって、
復号器が、前記予測されるビデオフレームの前記ビットストリームからのフレームレベルの符号化構文情報を検索する第１の検索ステップと、
前記第１の検索ステップにおいて前記ビットストリームから検索された前記フレームレベルの符号化構文情報から、マクロブロックが省略されるか否かを示す複数のビットが前記ビットストリーム内に存在するか否かを前記復号器が判定する判定ステップであって、前記複数のビットの各単一のビットが、前記予測されるビデオフレームの対応するマクロブロックが省略されるか否かを示し、差動運動ベクトル情報および符号化ブロックパターン情報は省略されるマクロブロックの前記ビットストリーム内に存在せず、差動運動ベクトル情報および符号化ブロックパターン情報は省略されないマクロブロックの前記ビットストリーム内に存在する判定ステップと、
前記判定ステップにおいて前記複数のビットが前記ビットストリーム内に存在すると判定された場合、前記復号器が、差動運動ベクトル情報と符号化ブロックパターン情報とを、省略されない前記予測されるビデオフレームの前記複数のマクロブロックのいくつかに対して検索し、前記複数のビットも検索する第２の検索ステップと
を含む復号化ステップと
を備えたことを特徴とする方法。
【請求項２】
前記判定ステップにおいて前記複数のビットが前記ビットストリーム内に存在しないと判定された場合、前記復号器が、差動運動ベクトル情報と符号化ブロックパターン情報とを、前記ビデオフレームの前記複数のマクロブロックの各々に対して検索し、前記第２の検索ステップが除かれる第３の検索ステップをさらに備えた
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の検索ステップにおいて前記ビットストリームから検索された前記フレームレベルの符号化構文情報は単一ビットである
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記複数のマクロブロックの各々は、画素の４つの８×８輝度ブロックと、画素の２つの８×８クロミナンスブロックとを含む
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数のビットは前記ビットストリーム内の前記マクロブロックレベルにある
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記第１の検索ステップにおいて前記ビットストリームから検索された前記フレームレベルの符号化構文情報の使用は、マクロブロックが省略されるか否かを示す複数のビットの必要性を選択的になくすことによって、前記圧縮ビデオデータのビット伝送速度を全体として下げる
ことを特徴とする請求項１に記載の方法。
【請求項７】
コンピュータシステムにおいてコンピュータが実行する、ビデオシーケンス内の複数のビデオフレームを復号化する方法であって、前記複数のビデオフレームの各々は複数のマクロブロックを含み、
ビットストリーム内の圧縮ビデオデータを受信する受信ステップであって、該ビットストリームは複数の構文レベルを持つ符号化構文を有し、該複数の構文レベルはフレームレベルとマクロブロックレベルとを含む受信ステップと、
インターフレーム復号化を使用して前記複数のビデオフレームの予測されるビデオフレームを復号化する復号化ステップであって、
復号器が、前記予測されるビデオフレームの前記ビットストリームからのフレームレベルの符号化構文情報を検索する第１の検索ステップと、
検索された前記フレームレベルの符号化構文情報から、マクロブロックが省略されるか否かを示す複数のビットが前記ビットストリーム内に前記マクロブロックレベルで存在するか否かを前記復号器が判定する第１の判定ステップと、
前記第１の判定ステップにおいて複数のビットが前記ビットストリーム内に存在する場合、前記ビデオフレームの前記複数のマクロブロックの各々のマクロブロックに対して、
前記復号器が、前記マクロレベルで前記複数のビットの単一のビットを検索する第２の検索ステップと、
検索された前記単一のビットに基づいて、前記復号器が、前記マクロブロックが省略されるか否かを判定する第２の判定ステップであって、差動運動ベクトル情報および符号化ブロックパターン情報は省略されるマクロブロックの前記ビットストリーム内に存在せず、差動運動ベクトル情報および符号化ブロックパターン情報は省略されないマクロブロックの前記ビットストリーム内に存在する第２の判定ステップと、
前記マクロブロックが省略されない場合、前記復号器が、差動運動ベクトル情報と符号化ブロックパターン情報とを前記マクロブロックに対して検索する第３の検索ステップと
を含む復号化する復号化ステップと
を備えたことを特徴とする方法。
【請求項８】
前記複数のマクロブロックの各々は、画素の４つの８×８輝度ブロックと、画素の２つの８×８クロミナンスブロックとを含む
ことを特徴とする請求項７に記載の方法。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、ビデオ符号化、具体的にはビデオ符号器とビデオ復号器に使用される改良型ビデオ符号化方法に関する。
【０００２】
（発明の背景）
アナログビデオ信号に基づくフルモーションビデオディスプレイは、長い間テレビという形で使用可能であった。近年コンピュータの処理能力が向上して入手しやすくなったことにより、デジタルビデオ信号に基づくフルモーションビデオディスプレイはより広範囲に利用できるようになりつつある。デジタルビデオシステムによって、従来型アナログビデオシステムを、フルモーションビデオシーケンスの作成、変更、送信、保存、および再生という点で有意義に改良することができる。
【０００３】
デジタルビデオディスプレイには、３０〜７５Ｈｚの周波数で連続的に再生または描画される数多くのイメージフレームが含まれる。各イメージフレームは、特定のシステムの表示解像度に基づく配列された画素により形成された静止画像である。たとえば、ＶＨＳベースのシステムには３２０×４８０画素の表示解像度があり、ＮＴＳＣベースのシステムには７２０×４８６画素の表示解像度があり、開発中の高精細度テレビジョン（ＨＤＴＶ）システムには１３６０×１０２４画素の表示解像度がある。
【０００４】
ビデオシーケンスに含まれる未処理デジタル情報の量は膨大である。従来型のパーソナルコンピュータ装置では、このように大量のビデオ情報を保存、送信することは不可能である。たとえば、３２０×４８０画素の解像度を有する、比較的低解像度のＶＨＳイメージフォーマットのデジタル化された形態について検討する。この解像度における上映時間２時間の省略なし映画は、１００ギガバイトのデジタルビデオ情報に相当する。比較すると、従来型コンパクト光ディスクには約０．６ギガバイトの容量があり、磁気ハードディスクには１〜２ギガバイトの容量があり、開発中のコンパクト光ディスクには最大８ギガバイトの容量がある。
【０００５】
そのような大量のデジタルビデオ情報を保存または送信する際の制限に対処するために、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＨ．２６Ｘなどを含む様々なビデオ圧縮規格またはプロセスが確立された。これらのビデオ圧縮技術では、時間相関関係またはインターフレーム（ｉｎｔｅｒｆｒａｍｅ）相関関係と呼ばれる連続したイメージフレーム間での類似性を利用して、インターフレーム圧縮を行う。インターフレーム圧縮では、動画データとエラー信号を使用してフレーム間の変化を符号化する。
【０００６】
さらに、従来型ビデオ圧縮技術では、空間相関関係またはイントラフレーム（ｉｎｔｒａｆｒａｍｅ）相関関係と呼ばれるイメージフレーム内の類似性を利用してイントラフレーム圧縮を行う。イントラフレーム圧縮では、イメージフレーム内のイメージサンプルが圧縮される。イントラフレーム圧縮は、離散コサイン変換（ＤＣＴ）符号化などの、静止画像を圧縮する従来型プロセスに基づく。この種類の符号化は、時として「テクスチャ」または「変換」符号化と呼ばれる。一般に、「テクスチャ」は、クロミナンス（ｃｈｒｏｍｉｎａｎｃｅ）値と輝度値の配列またはアルファ（不透明度）値の配列などの、イメージサンプル値の２次元配列を意味する。この文脈での用語「変換」は、イメージサンプルが符号化プロセス中に空間周波数成分に変換される方法を意味する。用語「変換」のこのような使用は、一部のインターフレーム圧縮方法におけるシーンの変化の推定に使用される幾何学的変換と区別する必要がある。
【０００７】
インターフレーム圧縮は、一般に動き推定と移動補償を利用してフレーム間のシーンの変化を符号化する。動き推定は、フレーム間におけるイメージサンプル（たとえば、画素）の動きを推定するためのプロセスである。動き推定を使用して、符号器は１つのフレーム内の画素ブロックをもう１つのフレーム内の対応する画素と照合しようと試みる。所与のサーチエリア内で最も類似したブロックを見付けた後、対応する画素がある画素位置の位置の変化は、運動ベクトルのような動きデータとして見積もられ表現される。移動補償は、予測されるイメージを確定してから、予測されるイメージと最初のイメージとの間のエラーを計算するプロセスである。移動補償を使用して、符号器は動きデータをイメージに適用して、予測されるイメージを計算する。予測されるイメージと入力イメージとの間の相違は、エラー信号と呼ばれる。エラー信号は、単にイメージサンプル値間における相違を表す値の配列であるため、イメージサンプルのイントラフレーム符号化に使用される方法と同じテクスチャ符号化方法を使用して圧縮することができる。
【０００８】
特定の実施では相違しているが、ＭＰＥＧ−１、ＭＰＥＧ−２、およびＨ．２６Ｘのビデオ圧縮規格にはいくつかの類似点がある。ＭＰＥＧ−２ビデオ圧縮規格に関する以下の記述は、一般に他の規格についても当てはまる。
【０００９】
ＭＰＥＧ−２は、ビデオイメージ内にある正方形ブロックまたは画素の配列に基づくインターフレーム圧縮とイントラフレーム圧縮を提供する。ビデオイメージは、１６×１６画素の寸法を有する、マクロブロック（ｍａｃｒｏｂｌｏｃｋ）と呼ばれるイメージサンプルブロックに分割される。ＭＰＥＧ−２では、マクロブロックは、４つの輝度ブロック（各ブロックは８×８輝度サンプル（Ｙ））と、２つのクロミナンスブロック（ＣｂとＣｒごとに１つの８×８サンプルブロック）から成る。
【００１０】
ＭＰＥＧ−２では、インターフレーム符号化はマクロブロックで実行される。ＭＰＥＧ−２符号器は、動き推定と移動補償を実行して運動ベクトルとブロックエラー信号を計算する。各ブロックＭNに関しては、イメージフレームＮで、次に続くビデオフレームのイメージＮ＋１または先行するイメージフレームＮ−１をまたがってサーチが実行され（すなわち、双方向に）、最も類似したブロックＭN+1またはＭN-1をそれぞれ特定する。ブロックＭNを基準とする最も類似したブロックの位置は、運動ベクトル（ＤＸ、ＤＹ）によって符号化される。運動ベクトルは、次に予測されるサンプル値のブロックの計算に使用される。これらの予測されるサンプル値はブロックＭNと比較され、ブロックエラー信号が求められる。エラー信号は、離散コサイン変換（ＤＣＴ）符号化などのテクスチャ符号化方法を使用して圧縮される。
【００１１】
オブジェクトベースのビデオ符号化技術は、従来型フレームベースの符号化規格の改良として提案された。オブジェクトベースの符号化では、任意の形成済みイメージの特徴は、「セグメンテーション」と呼ばれる方法を使用してビデオシーケンス内でフレームから分離される。ビデオオブジェクトまたは「セグメント」は、別個に符号化される。オブジェクトベースの符号化は、連続したフレーム内ではビデオオブジェクト間のインターフレーム相関関係が増すため、圧縮率を改善することができる。さらに、オブジェクトベースの符号化は、ビデオシーケンス内でオブジェクトにアクセスして追跡することが要求されるさまざまなアプリケーションにとって有利である。
【００１２】
ＭＰＥＧ−４規格に対して提案されたオブジェクトベースのビデオ符号化方法では、ビデオオブジェクトの形状、動き、およびテクスチャは別個に符号化される。オブジェクトの形状は、ビデオフレーム内にある任意の形成済みオブジェクトの境界を定義するバイナリまたはアルファマスクによって表される。オブジェクトの動きは、ＭＰＥＧ−２の動きデータに類似している。ただし、矩形フレームからセグメント化されたオブジェクトの任意の形成済みイメージに適用することを例外とする。動き推定と移動補償は、フレーム全体というよりも「ビデオオブジェクト平面」のブロック上で実行される。ビデオオブジェクト平面は、単一フレーム内にあるオブジェクトの形成済みイメージの名前である。
【００１３】
ビデオオブジェクトのテクスチャは、オブジェクトの形状の範囲に収まる、ビデオオブジェクト平面内のイメージサンプル情報である。オブジェクトのイメージサンプルとエラー信号のテクスチャ符号化は、フレームベースの符号化方法と同様のテクスチャ符号化方法を使用して実行される。たとえば、セグメント化されたイメージは、マクロブロックによって形成された境界矩形に組み込むことができる。境界矩形によって形成された矩形イメージはまさに矩形フレームのように圧縮することができる。ただし、例外は透明のマクロブロックは符号化の必要がないことである。部分的に透明のブロックは、「パディング（ｐａｄｄｉｎｇ）」と呼ばれる技術におけるサンプル値を有するオブジェクトの形状境界から外れた、ブロックの部分に組み込まれた後に符号化される。
【００１４】
ＭＰＥＧ−２やＨ２６Ｘなどのフレームベースの符号化技術、およびＭＰＥＧ−４について提案されるオブジェクトベースの符号化技術は、マクロブロック上でイントラフレーム符号化とインターフレーム符号化が実行される場合の符号化技術と類似している。これらの技術に使用されるインターフレーム符号化フォーマットでは、インターフレームマクロブロックが符号化されるかどうかを示す特別なビットが使用される。この特別なビットは、時々ＣＯＤビットまたは「非符号化」ビットと呼ばれる。一貫性を持たせるために、このタイプのパラメータをＣＯＤビットまたはＣＯＤパラメータと呼ぶ。ＣＯＤビットは、符号化されたマクロブロックに動きデータとテクスチャ符号化エラーデータが含まれるかどうかを示す。動きデータとエラー信号データが０である場合、ＣＯＤビットはマクロブロックの符号化に必要な情報を削減する。その理由は、運動ベクトルとテクスチャデータが符号化されないことを示すために送信するのは、複数の追加ビットではなく１ビットのみだからである。
【００１５】
ＣＯＤビットに加えて、マクロブロックに使用する符号化構文には、マクロブロックのためにクロミナンスと輝度の符号化変換係数が送信されるかどうかを示す、符号化ブロックパラメータ（ＣＢＰ）が含まれる。変換係数がブロックに対してすべて０である場合、ブロックのテクスチャデータを送信する必要はない。クロミナンスの符号化ブロックパラメータ（ＣＢＰＣ）は２ビットであり、符号化されたテクスチャデータが２つのクロミナンスブロックにそれぞれ送信されるかどうかを示す。輝度の符号化ブロックパターン（ＣＢＰＹ）は４ビットであり、符号化テクスチャデータが４つの輝度ブロックにそれぞれ送信されるかどうかを示す。
【００１６】
ＣＢＰＣビットは、マクロブロックの量子化の種類に関する情報を提供する別のフラグとともに符号化される。これらのフラグは組み合わせることによってＭＣＢＰＣと呼ばれるパラメータを形成し、ＭＣＢＰＣはハフマン符号化または算術符号化などのエントロピー（ｅｎｔｒｏｐｙ）符号化方法を使用してエントロピー符号化される。さらに、ＣＢＰＹフラグも、ハフマン符号化または算術符号化のいずれかを使用してエントロピー符号化される。
【００１７】
ＣＯＤビットは、動きが非常に小さいシーンを符号化する場合には利点があるが、頻繁に変化したり、０運動ベクトル（すなわち、０動きを示す運動ベクトル）を有するマクロブロックがほんの僅かであるシーンにとっては非効率である。したがって、これらのタイプのシーンに対してはＣＯＤビットをより効率的に適用する必要がある。
【００１８】
ＣＢＰＹの可変長コードは、イントラフレームマクロブロックには非符号化ブロックよりも多くの符号化輝度ブロックが含まれる（インターマクロ（inter-Macro）ブロックではその反対も真である）という仮定に基づく。この仮定は場合によっては成り立たず、その結果ＣＢＰＹフラグの符号化の効率が損なわれる。
【００１９】
（発明の概要）
本発明では、動き推定と移動補償を使用して符号化されたビデオシーケンスのブロックパラメータを符号化するための、改良した方法が提供される。本発明の１つの態様は、インターフレームマクロブロックのためにテクスチャと動きデータが符号化されるかどうかを示すＣＯＤパラメータを適応的に符号化する方法である。本発明の別の態様は、クロミナンスの符号化ブロックパラメータに基づいて、輝度の符号化ブロックパラメータに対してエントロピー符号化モードを適応的に選択する方法である。これらの機能の両方とも、オブジェクトベースのビデオ符号化とフレームベースのビデオ符号化に適用する。
【００２０】
ＣＯＤパラメータの適応的符号化によって、多くのビデオ符号化アプリケーションの、特に０動きを有するマクロブロックがわずかしかないシーンの符号化効率が改善される。ＣＯＤパラメータの適応的符号化は、ＣＯＤパラメータを、ビデオイメージ内の非符号化マクロブロックの数に基づいて選択的に無効にする方法を意味する。ＣＯＤパラメータの適応的符号化は、０テクスチャまたは０動きを有するイメージ内のマクロブロック（省略されるマクロブロック）の数を求めることによって符号器内で実施される。省略されるマクロブロックの数がしきい値よりも少ないとき、ＣＯＤパラメータはイメージ内のインターフレームマクロブロックに対して無効にされる。
【００２１】
しきい値の数は、イメージ内のマクロブロックの総数、および動きデータとテクスチャデータがすべて０であるインターフレームマクロブロック内の動きとテクスチャの符号化に必要なビット数から導き出される。しきい値の箇所では、すべてのマクロブロックをＣＯＤパラメータなしで符号化するのに必要なビットの数はさらに少ない。その理由は、テクスチャデータと動きデータが０であるインターフレームブロックに関しては、動きデータとテクスチャデータを符号化するのに必要なビットの数よりも多くのＣＯＤビットがあるためである。たとえば、マクロブロックに対して０動きと０テクスチャを符号化するのに５ビットが必要な場合、しきい値の数はイメージに対するマクロブロックの総数の１／５である。
【００２２】
ＣＯＤパラメータの適応的無効化は、インターフレームイメージごとに提供されるＣＯＤ無効化フラグを使用して表される。このフラグは、イメージ内の各マクロブロックにＣＯＤパラメータが含まれるかどうかを示す。イメージに対して動き推定、移動補償、およびテクスチャ符号化が実行された後、符号器によってこのフラグの値が確定される。なぜならば、これらのプロセスは０のテクスチャと動きデータから成るマクロブロックを有するブロックの数を示すからである。復号器は、ＣＯＤ無効化フラグを使用して、マクロブロックごとにＣＯＤパラメータを複合化するかどうかを確定する。
【００２３】
符号化の効率は、クロミナンス（ＣＢＰＣ）の符号化ブロックパターンに基づいて、輝度の符号化ブロックパターン（ＣＢＰＹ）に対するエントロピー符号化モードを適応的に選択することによって、さらに改善することができる。この改良型符号化方法では、マクロブロックに対してＣＢＰＣビットが設定されるかどうかに基づいて、インターフレームマクロブロック内のＣＢＰＹに対するエントロピー符号化が選択される。インターフレームマクロブロック内でＣＢＰＣビットが（「１１」）に設定される場合、輝度ブロックは０以外の変換係数を持つ可能性が高くなる。そういうものとして、エントロピー符号化は、符号化輝度ブロックに対するＣＢＰＹの符号化に使用されるビットの数がさらに少なくなるように選択される。逆に、ＣＢＰＣビットの１つが設定されない場合、エントロピー符号化は、非符号化輝度ブロックに対するＣＢＰＹの符号化に使用されるビットの数がさらに少なくなるように選択される。
【００２４】
上記に要約した方法では、０動きを有するマクロブロックがわずかであり、フレームからフレームへの変化が頻繁なビデオシーンのインターフレームマクロブロックに対する符号化効率が改善される。ＣＯＤパラメータの適応的無効化によって、低ビット伝送速度のアプリケーションでは総ビット伝送速度の最大２〜３％を節約することができる。インターフレームブロックのＣＢＰＹ符号化モードの適応的選択によって、ＣＢＰＹの符号化に必要なビット数が２５％よりも多く削減できることが示された。これらの方法によって、符号器と復号器の設計を一層複雑にせずに、または互換性の問題を発生させずに符号化の効率が改善される。
【００２５】
本発明のさらなる機能と利点は、本発明の実施に関する以下の詳細な説明と添付図面からさらに明らかになる。
【００２６】
（詳細な説明）
概説
以下の最初の節では、ビデオ符号器と復号器について説明する。その後の節では、次によって符号化を改良する方法について説明する。１）ブロックに対して動きとテクスチャが符号化されるかどうかを示すブロックパラメータを適応的に有効にする。および、２）マクロブロックに対して輝度ブロックが符号化されるかどうかを示すブロックパラメータのエントロピー符号化を改良する。
【００２７】
本発明は、フレームベースのビデオ符号化とオブジェクトベースのビデオ符号化の両方に適用する。本発明は、イメージがフレームのシーケンスまたはフレーム全体から導き出されたビデオオブジェクト平面を表すか否かにかかわらず、イメージのシーケンスの符号化を改良する。オブジェクトベースの符号化には、形状の符号化のみでなく、フレームベースの符号化に使用されるのと同様の動きおよびテクスチャの符号化成分が含まれる。本発明に関連したブロック構文は、フレームベースとオブジェクトベースの両方の符号化で類似している。したがって、次の節で説明する符号器と復号器はオブジェクトベースであるが、それらはフレームベースとオブジェクトベースの両方の符号化方式による本発明の実施方法を説明するのに十分な基礎を提供する。
【００２８】
符号器と復号器の例の説明
図１は、オブジェクトベースのビデオ符号器の実現を示すブロック図である。符号器への入力３０には、一連のオブジェクト、それらの形状情報、および境界矩形が含まれる。したがって、形状情報は符号器がテクスチャまたは動きのデータを符号化する前に使用可能である。フレームベースの符号化は、フレーム全体が形状情報なしで符号化されるという点で異なる。
【００２９】
形状符号化モジュール３２は、その境界を示す矩形を含むオブジェクトの定義を受信して、その境界を示す矩形をマクロブロックの整数倍に拡大する。オブジェクトの形状情報は、マスクまたは「アルファ平面」から成る。形状符号化モジュール３２は、たとえばオブジェクトの輪郭を符号化するための従来型チェイン符号化方法を使用して、このマスクを読み取って圧縮する。
【００３０】
動き推定モジュール３４は、その境界を示す矩形と前に復元されたイメージ１６３６を含むオブジェクトを読み取り、１つのフレームからもう１つのフレームまでのオブジェクトの動きを予測する目的で使用される動き推定データを計算する。動き推定モジュール１６３４は、現在のイメージのマクロブロックごとに復元されたイメージ内で最も類似したマクロブロックをサーチして、マクロブロックごとに動きデータを計算する。動き推定モジュール１６３４から得られる動きデータの特定フォーマットは、使用される動き推定方法によって異なる場合がある。たとえば、動きデータには、マクロブロック動きの予測に使用されるアフィン（ａｆｆｉｎｅ）変換係数などの、運動ベクトルまたは幾何変換係数が含まれることがある。標準の動き符号化では、動きデータには、マクロブロックごとに１つの運動ベクトルが含まれるか、またはマクロブロック内の４つの輝度ブロックに対応した４つの運動ベクトルが含まれる。
【００３１】
移動補償モジュール３８は、動き推定モジュールによって計算された動きデータと、前に復元されたイメージ３６を読み取り、現在のフレームに対して予測されるイメージを計算する。符号器は、入力３０内で指定された入力イメージブロック内のイメージサンプル値と、移動補償モジュール３８内で計算された予測されるイメージブロックにおける対応するサンプル値との間の相違を見出し、マクロブロックのエラー信号を確定する。
【００３２】
テクスチャ符号化モジュール４０は、インターフレーム符号化オブジェクトに対してこのエラー信号を圧縮して、イントラフレーム符号化オブジェクトの入力データストリーム３０からオブジェクトに対するイメージサンプル値を圧縮する。テクスチャ符号化モジュール４０からのフィードバックパス４２は、エラー信号を表す。符号器は、移動補償モジュールからの予測されるイメージブロックとともにエラー信号ブロックを使用して、前に復元されたイメージ３６を計算する。
【００３３】
テクスチャ符号化モジュール４０は、様々な静止画像圧縮技術のいずれかを使用して、オブジェクトに対するイントラフレームおよびエラー信号データを符号化する。圧縮技術の例には、ＤＣＴ、ウェーブレット、およびその他の従来型画像圧縮方法が含まれる。
【００３４】
圧縮ビデオシーケンスのビットストリーム（ｂｉｔｓｔｒｅａｍ）には、形状符号化モジュール、動き推定モジュール、およびテクスチャ符号化モジュールから得られる形状、動き、およびテクスチャの符号化情報が含まれる。マルチプレクサ４４は、このデータを合成して適切な構文にフォーマットしてから、それをバッファ４６に出力する。
【００３５】
符号器はハードウェアまたはソフトウェアで実施することができるが、最も一般的にはソフトウェアで実施される。ソフトウェアによる実施では、符号器内のモジュールはソフトウェアルーチンを表し、コンピュータのメモリ内およびビデオデータの保存に使用されるメモリ内で実行する。ソフトウェア符号器は、さまざまな従来型コンピュータ可読媒体上に保存して配布することができる。ハードウェアによる実施では、符号器モジュールはデジタルロジック内に、好ましくは集積回路内に実施される。符号器機能のいくつかは、コンピュータ周辺機器に組み込まれる専用デジタルロジックデバイス内で最適化して、ホストコンピュータに加わる処理負荷を軽減することができる。
【００３６】
図２は、オブジェクトベースのビデオ符号化方法を使用した復号器を示すブロック図である。デマルチプレクサ６０は、オブジェクトについての、圧縮されたビデオシーケンス、分離形状、動き、およびテクスチャの符号化データをオブジェクトベースで表すビットストリームを受信する。形状復号化モジュール６４は、処理される現在のオブジェクトの形状または輪郭を復号化する。これを達成するために、形状復号化モジュール６４は、図２の符号器に使用される形状符号化方法の逆を実施する形状復号器を使用する。その結果作成される形状データは、オブジェクトの形状を表すバイナリアルファ平面またはグレースケールアルファ平面などのマスクである。
【００３７】
動き復号化モジュール６６は、ビットストリーム内の動き情報を復号化する。復号化された動き情報には、マクロブロック／ブロックの運動ベクトルまたは幾何変換係数などの動きデータが含まれ、符号器に使用された推定方法のタイプに依存する。動き復号化モジュール６６は移動補償モジュール６８にこの動き情報を提供し、移動補償モジュール６８は前に復元されたオブジェクトデータ７０に動きデータを適用する。
【００３８】
テクスチャ復号化モジュール７４は、インターフレーム符号化テクスチャデータのエラー信号と、イントラフレームテクスチャデータのカラー値の配列を復号化してから、復元されたイメージの計算と蓄積のためにこの情報をモジュール７２に渡す。インターフレーム符号化オブジェクトに関しては、このモジュール７２は、エラー信号データを移動補償モジュールから得られた予測されるイメージ出力に適用して、現在のフレームに対する復元済みオブジェクトを計算する。イントラフレーム符号化オブジェクトに関しては、テクスチャ復号化モジュール７４は、オブジェクトのイメージサンプル値を復号化して、復元されたオブジェクトを復元オブジェクトモジュール７２に配置する。前に復元されたオブジェクトは、オブジェクトメモリ７０に一時的に保存され、他のフレームのオブジェクトを構築する目的で使用される。
【００３９】
符号器のように、復号器はハードウェアやソフトウェアによって、または両方の組み合わせで実施することができる。ソフトウェアによる実施では、復号器内のモジュールはソフトウェアルーチンであり、コンピュータのメモリ内およびビデオデータの保存に使用されるメモリ内で実行する。ソフトウェア復号器は、さまざまな従来型コンピュータ可読媒体上に保存して配布することができる。ハードウェアによる実施では、復号器モジュールはデジタルロジック内に、好ましくは集積回路内に実施される。復号器機能のいくつかは、コンピュータ周辺機器に組み込まれる専用デジタルロジックデバイス内で最適化して、ホストコンピュータに加わる処理負荷を軽減することができる。
【００４０】
ＣＯＤパラメータの改良型符号化
現行のおよび提案されたビデオ符号化規格では、ＣＯＤパラメータの目的は、インターフレームマクロブロックのために動きとテクスチャが符号化されるかどうかを示すことである。ＣＯＤビットの使用は、低運動シーンを非常に低いビット伝送速度で符号化するように最適化される。多くのアプリケーション、および特にインターネットアプリケーションに関しては、このようなＣＯＤビットの使用は効率的ではない場合がある。たとえば、これらのアプリケーションでは、
・  ビデオに関して利用可能なビット伝送速度は、一般に秒あたり１０＋キロビット（ｋｂｐｓ）である。
・  ピクチャーサイズは一般にＱＣＩＦである（ＱＣＩＦは９９マクロブロックを有する標準のフレームサイズである）。
・  フレーム速度は一般に秒あたり５＋である。
・  シーンの変化は頻繁であり、フレーム間の動きはほとんどゼロ以外である。
【００４１】
これらの条件のもとでは、マクロブロック／ブロックのテクスチャデータの大部分はノンゼロ係数を有する。ＣＯＤビットはこれらの情況では有効ではない。なぜならば、符号化が省略されるのはわずかなマクロブロックに対してのみであるが、符号化が省略されるか否かにかかわらず、ＣＯＤパラメータはすべてのインターフレームマクロブロックに対して送信されるためである。ＣＯＤパラメータのビット伝送速度は、約０．５ｋｂｐｓである。以下に詳述する方法では、ＣＯＤビットを適応的に無効にするため、潜在的に総ビット伝送速度の２〜３％が節約される。
【００４２】
ＣＯＤパラメータの効率を改善するために、符号器は、非符号化マクロブロックの数がしきい値を超えたインターフレーム符号化イメージに対してこのパラメータを適応的に無効にする。オブジェクトベースの符号化では、符号器はビデオオブジェクト平面レベルで符号化構文にフラグを追加して、ビデオオブジェクト平面内のすべてのインターフレームマクロブロックに対してＣＯＤパラメータが無効にされたかどうかを示す。ビデオオブジェクト平面は、フレーム内のオブジェクトを表すイメージである。
【００４３】
フレームベースの符号化では、符号器はフレームレベルで符号化構文にフラグを追加して、フレーム内のすべてのマクロブロックに対してＣＯＤパラメータが無効にされたかどうかを示す。オブジェクトベースのアプローチとフレームベースのアプローチの両方とも、インターフレームマクロブロックに対してＣＯＤパラメータが無効にされることに注意する必要がある。
【００４４】
図１のビデオ符号器は、ビデオイメージを２つの主要な段階を通じて符号化する。第１段階は動き推定と移動補償を実行することであり、第２段階は適切な符号化構文によるビットストリームを復元することである。したがって、運動ベクトルとテクスチャデータがすべて０であるマクロブロックの数は第１段階で求められる。これらのマクロブロックの数に基づいて、第２段階ではビデオイメージ内のすべてのマクロブロックに対してＣＯＤパラメータを無効にするかどうかが確定される。
【００４５】
図３は、ビデオイメージの符号化中にＣＯＤパラメータを適応的に無効にするためのプロセスを示すフローチャートである。符号器は動き推定と移動補償（１００、１０２）を実行して、運動ベクトルが０であるかどうかを確認する。符号器は、インターフレームマクロブロックとブロック（１０４）ごとに変換符号化を実行するとき、マクロブロックに対するＤＣＴ変換係数がすべて０であるかどうかを確認する。これは、マクロブロック内のイメージサンプルのすべてについてエラー値が０であるかまたはほぼ０である場合に発生する可能性がある。
【００４６】
イメージに対する動きとテクスチャの符号化が完了したとき、符号器の第２段階は運動ベクトルと変換係数がすべて０であるブロックの数を求めることである（１０６）。運動ベクトルと変換係数の符号化がこれらのマクロブロックに対して省略されるため、これらのブロックは時々省略されるブロックと呼ばれる。省略されるマクロブロックの数がしきい値を超える場合、マクロブロックごとにＣＯＤパラメータを使用して、マクロブロックが符号化されるかどうかを示すことは効率的である。この場合、ＣＯＤパラメータは、イメージのＣＯＤ無効化フラグをクリアすることによって有効化される（１１０）。別の方法では、ＣＯＤ無効化フラグはイメージに対して設定される。
【００４７】
イメージの符号化構文には、マクロブロック構文にＣＯＤパラメータが含まれるかどうかを示すＣＯＤ無効化フラグが含まれる。インターマクロブロックの変換係数がすべて０である場合、ＣＯＤパラメータは１に設定される。その他の場合は０に設定される。
【００４８】
次の表は、ＣＯＤ無効化フラグがどのようにイメージの符号化効率を改善するかを示すのに役立つ。インターフレームマクロブロックの構文は、次のとおりである。
【００４９】
【表１】
0003689334.tif 000002
【００５０】
ＣＯＤビットが設定される場合、ブロックに対してＭＣＢＰＣ、ＣＢＰＹ、ＭＶＤ（運動ベクトルデータ）、およびＤＣＴブロックは送信されない。これは省略されるマクロブロックと呼ばれる。逆に、ＣＯＤビットが従来の符号化規格で設定されないとき、マクロブロックにはＭＣＢＰＣとＣＢＰＹのエントロピー符号化ビット、単一の符号化運動ベクトルまたは複数の符号化運動ベクトル（ＭＶＤ）、および少なくとも１つのＤＣＴブロックが含まれる。運動ベクトルは、一般に差動運動ベクトルとして符号化される。差動運動ベクトルは、現在と前のマクロブロックにおける運動ベクトル間の相違など、２つの運動ベクトル間の相違を表すベクトル量である（たとえば、垂直成分と水平成分を有する）。
【００５１】
０動きを有するマクロブロックがわずかしかない、およびフレームからフレームまでの変化が頻繁なマクロブロックがわずかしかないシーンには、おそらく省略されるマクロブロックはほんのわずかしかない。これらの情況のもとでは、マクロブロックには余分なビットが追加されるため、ＣＯＤビットは効率が悪い。ＣＯＤパラメータが無効にされる場合、各々の符号化マクロブロックが有するビットの数は、ＣＯＤが有効にされる場合と比較して１つ少ない。たとえば、ハフマン符号化はＭＣＢＰＣとＣＢＰＹの符号化に使用され、０動きを有する各マクロブロックまたはテクスチャデータには、ＭＣＢＰＣ（１ビット）、ＣＢＰＹ（２ビット）、およびＭＶＤ（２ビット以上）のための追加ビットが含まれると仮定する。このタイプのマクロブロックの動きとテクスチャには、符号化するために少なくとも５ビット（ＭＣＢＰＣ  ＋  ＣＢＰＹ  ＋  ＭＶ＞  ５）が必要である。したがって、ＣＯＤパラメータを無効にすることによって、このマクロブロックの符号化には少なくとも５ビットが必要となる。それに対して、ＣＯＤを有効にした場合に必要なのは単に１ビットである。
【００５２】
省略されるマクロブロックのしきい値の数は、イメージ内のマクロブロックの総数、および０動きとテクスチャデータを有するがＣＯＤパラメータがないマクロブロックの符号化に必要なビットに基づいて分析的に評価することができる。以下の数式はしきい値の例を示す。
【００５３】
【数１】
（１／ｘ）ＭＢtotal＞ＭＢskipped
【００５４】
ここで、ＭＢskippedは省略されるマクロブロックの数であり、ＭＢtotalはイメージ内のマクロブロックの総数であり、ｘは動きとテクスチャデータがすべて０であるときにマクロブロックの符号化に必要なビットの数である。しきい値の数は次のとおりである。
【００５５】
【数２】
（１／ｘ）ＭＢtotal
【００５６】
このしきい値は例にすぎないことを強調することは重要である。０動きとテクスチャデータを有するマクロブロックの符号化に必要なビットの数は、特定の符号化方法によって変化する可能性がある。たとえば、ハフマン符号化が使用される場合、上記の例で示されるようにＭＣＢＰＣとＣＢＰＹの符号化に必要なビットの数を推定することはさらに容易である。算術符号化が使用される場合は、０動きとテクスチャデータを有するマクロブロックの符号化に必要なビットの数を計算することはより困難である。しかし、上記に示される同様のアプローチは、０テクスチャと動きデータを有するマクロブロックのパラメータの符号化に必要なビットの数の控えめな推定を使用することによって、算術符号化の場合にも使用することができる。
【００５７】
しきい値の選択には、さまざまな発見的および分析的方法がある。１つの方法は、フレームに対して０動きとテクスチャデータを有するマクロブロックの符号化に必要なビットの数を計算した後、上記に示される方法と同様の公式（たとえば、（１／ｘaverage）ＭＢtotal）を使用してフレームに対するしきい値を計算することである。別の方法は、フレームを対象に、ＣＯＤパラメータのあるフレームおよびＣＯＤパラメータのないフレームを符号化するのに必要なビットの数をフレームベースで比較した後、より少ないビットを使用するアプローチを選択することである。
【００５８】
復号器は、ＣＯＤパラメータを適応的に有効にしたり無効にしたりすることをサポートするように変更する必要がある。図４は、ＣＯＤパラメータが有効にされたおよび無効にされたマクロブロックを復号器が解釈する方法を示すフローチャートである。フレームベースのアプローチでは、ＣＯＤ無効化フラグはフレームレベルで符号化される。すなわち、各フレームには単一のフラグしかない。オブジェクトベースのアプローチでは、ＣＯＤ無効化フラグは、好ましくはビデオオブジェクト平面レベルで符号化される。言い換えれば、それぞれのインターフレーム符号化オブジェクトにはフレームごとにＣＯＤ無効化フラグがある。復号器がフレームレベルまたはオブジェクトレベルのパラメータを復号化する場合、復号器はＣＯＤ無効化フラグを復号化して（１２０）、ＣＯＤパラメータが有効にされたかどうかまたは無効にされたかどうかを確認する（１２２）。
【００５９】
ＣＯＤパラメータが有効にされる場合、マクロブロックレベルのパラメータは、イメージ内のマクロブロックごとにＣＯＤパラメータを有しているものとして解釈される（１２４）。この場合、復号器は、ＣＯＤパラメータが設定されるマクロブロックごとに運動ベクトルと符号化ブロックパラメータを選択的に復号化する。
【００６０】
ＣＯＤパラメータが無効にされる場合、マクロブロックレベルのパラメータは、マクロブロックごとにＣＯＤパラメータを有していないものとして解釈される（１２８）。そういうものとして、復号器はマクロブロックごとに運動ベクトルと符号化ブロックパラメータのデータを復号化する。
【００６１】
ＣＢＰＹの適応的符号化
０動きを有するマクロブロックがわずかしかないシーンの符号化効率は、ＣＢＰＣビットに基づいてＣＢＰＹビットに対するエントロピー符号化モードを適応的に選択することによって改善することができる。図５は、ＣＢＰＣの値に基づいて、符号器プロセスがＣＢＰＹのエントロピー符号化を管理する方法を示すフローチャートである。
【００６２】
符号器は、マクロブロックごとにＣＢＰＣビットを評価する（１３０）。クロミナンスブロックごとに１ビットであり、合計２ビットある。両方のビットが設定された場合、両方のクロミナンスブロックはノンゼロ変換係数を有することを意味しており、４つある輝度ブロックの少なくとも１つはおそらく同様にノンゼロ変換係数を有する。符号器は、ＣＢＰＣパラメータの値に基づいてＣＢＰＹに対するエントロピーコードを適応的に選択する。ＣＢＰＣビットが設定された場合、符号器は、符号化輝度ブロックにさらに高い確率を割当てるエントロピー符号化モードを選択する（１３４）。逆に、ＣＢＰＣビットの少なくとも１つが設定されなかった場合、符号器は、非符号化輝度ブロックにさらに高い確率を割当てるエントロピー符号化モードを選択する（１３６）。このアプローチは、ＣＢＰＣビットに基づいて、インターフレームマクロブロックに対して２つのエントロピー符号化テーブルの中から適応的に選択することによって実現される。
【００６３】
Ｈ２６３などの提案された規格における従来型アプローチでは、第１のエントロピー符号化テーブル（たとえば、ハフマンテーブル）を使用してすべてのイントラフレームマクロブロックに対するエントロピーコードを作成してから、第２のエントロピー符号化テーブルを使用してすべてのインターフレームマクロブロックに対するエントロピーコードを作成する。以下の表は、可変長コード（ＶＬＣ）の計算に使用されるエントロピー符号化テーブルの例を示す。テーブル１は、イントラタイプのマクロブロックに使用される従来型ＶＬＣのテーブルであり、テーブル２はインタータイプのマクロブロックに使用される従来型ＶＬＣのテーブルである。ＣＢＰＹビットの値は、符号化ブロックの場合は１であり、非符号化ブロックの場合は（０）である。非符号化ブロックはインターマクロブロックにさらに多く発生すると考えられるため、符号化ブロックの場合よりも短いコードで符号化されることに注意する必要がある。逆に、符号化ブロックはイントラマクロブロックにさらに多く発生すると考えられるため、符号化ブロックの場合よりも短いコードで符号化される。
【００６４】
【表２】
0003689334.tif 000003
【００６５】
ＣＢＰＹを符号化するための改良された方法では、ＣＢＰＣブロックが両方とも符号化されたとき、インターフレームマクロブロックに対してテーブル１を選択する。それに対して、ＣＢＰＣブロックの少なくとも１つが符号化されなかったときは、インターフレームマクロブロックに対してテーブル２を選択する。実験では、インターフレームマクロブロックに対するテーブル１とテーブル２の適応的選択によって、標準テストビデオシーケンスでのＣＢＰＹの符号化に必要なビットの数が、約数パーセントから２６％を超える割合で減少したことが示された。フレームからフレームまでの変化がほとんどないテストケースＡｋｉｙｏでは、ＣＢＰＹテーブルの適応的選択によってＣＢＰＹのビット数がわずかに増加した（０．１％未満）。ＣＢＰＹに対するこの改良された符号化の利点は、さらに小さな量子化ステップサイズとさらに複雑なシーンにとっては一層有意義である。
【００６６】
ＣＢＰＹの適応的符号化に関する上記の記述は、１つの可能な実施のみを示すことに注意することは重要である。ＣＢＰＹの適応的符号化の文脈では、ＣＢＰＣビットに対して次の３つの可能な状態があることに注意すること。（１）両方とも設定された状態（ＣＢＰＣ＝１１）、（２）両方とも設定されていない状態（ＣＢＰＣ＝００）、および（３）１つのビットは設定されているが、もう１つのビットは設定されていない状態（ＣＢＰＣ＝０１または１０）。上記の実施では、状態（１）に対しては１つのエントロピー符号化モードが使用され、状態（２）と状態（３）に対しては第２のエントロピー符号化モードが使用される。一部のアプリケーションでは、状態（１）に使用するエントロピー符号化モードで状態（２）をグループ化することが有利である。エントロピー符号化モードとＣＢＰＣの状態のさまざまな異なる組み合わせが可能であり、さらに２つを超えるエントロピー符号化モードを使用することもできる。たとえば、ＣＢＰＣの３つの異なる状態に対して、３つの異なる符号化モードを使用することができる。
【００６７】
ＣＯＤとＣＢＰＹの適応的符号化は、一緒に使用することができる。ＣＢＰＹの適応的符号化はすでにマクロブロックフォーマットとなっているＣＢＰＣビットに基づくため、この機能が有効になっているかどうかを示す追加のフラグを加える必要はない。しかし、ＣＢＰＹの適応的符号化は、ＣＢＰＹ適応的符号化フラグを使用することによってオンにしたりオフにしたりすることができる。このフラグを実施する１つの方法は、このフラグをＣＯＤ無効化フラグと組み合わせることである。この場合、ＣＯＤとＣＢＰＹの適応的符号化は、一緒に有効にしたり無効にしたりすることができる。
【００６８】
ＣＢＰＹの適応的符号化は、ＣＢＰＣビットに基づくＣＢＰＹの復号化に使用されるテーブルを選択することによって、復号器内に実施することができる。図６は、ＣＢＰＣパラメータの値に基づいて、復号器がインターフレームマクロブロックのＣＢＰＹパラメータを解釈する方法を示すフローチャートである。典型的な復号化動作では、復号器はマクロブロックのＣＢＰＣビットを復号化する（１４０）。次に、復号器はＣＢＰＣ＝１１であるかどうかを確認する（１４２）。そうであれば、復号器はテーブル１を使用してＣＢＰＹのＶＬＣを復号化する。そうでなければ、復号器はテーブル２を使用してＣＢＰＹを復号化する。
【００６９】
上記の説明のように実施した場合、ＣＢＰＹの改良型符号化によって符号器または復号器がさらに複雑になることはなく、また起動コードエミュレーションの問題が生じることもない。「起動コードエミュレーション」は、「起動コード」と呼ばれる同期化に使用されるコードと混同する可能性がある、符号化フォーマットを使用することによって引き起こされる互換性の問題を意味する。
【００７０】
結論
上記に説明した符号化方法は、インターフレームブロックの符号化効率を次の２つの方法で改善する。１）０動きを有するマクロブロックがわずかであるシーンのＣＯＤを適応的に無効にすることによる。および、２）ＣＢＰＣを動きのインジケータまたはシーンの変化として使用して、ＣＢＰＹのエントロピー符号化を適応的に選択することによる。本発明は特定のパラメータに関連して説明されるが、これらのパラメータのフォーマットと定義は実施によって変化する可能性がある。上記に使用した特定の定義は、それらが現行のおよび提案されたビデオ符号化規格と一貫性があるため有益である。しかし、異なる構文を使用するビデオ符号化方法によって本発明を使用することも可能である。
【００７１】
本発明の数多くの可能な実施を考慮すると、上記に説明した実施は単に本発明の例にすぎず、本発明の適用範囲を制限するものとして見なしてはならないことを認識しなければならない。むしろ、本発明の適用範囲は前述の特許請求の範囲によって定義される。したがって、我々は、これらの請求項の適用範囲であり趣旨の範囲内でもあるすべてを我々の発明として請求する。
【図面の簡単な説明】
【図１】  ビデオ符号器のブロック図である。
【図２】  ビデオ復号器のブロック図である。
【図３】  インターフレームマクロブロックのＣＯＤパラメータを適応的に無効にするための符号器プロセスを示すフローチャートである。
【図４】  ＣＯＤパラメータが有効にされたおよび無効にされたマクロブロックを復号器が解釈する方法を示すフローチャートである。
【図５】  ＣＢＰＣパラメータの値に基づいて、符号器プロセスがＣＢＰＹパラメータのエントロピー符号化を管理する方法を示すフローチャートである。
【図６】  ＣＢＰＣパラメータの値に基づいて、復号器がインターフレームマクロブロックのＣＢＰＹパラメータを解釈する方法を示すフローチャートである。
【図１】
0003689334.tif 000004
【図２】
0003689334.tif 000005
【図３】
0003689334.tif 000006
【図４】
0003689334.tif 000007
【図５】
0003689334.tif 000008
【図６】
0003689334.tif 000009