(57)【特許請求の範囲】
【請求項１】
各フレームが、低品質の基本層から順により高品質になる拡張層までの範囲を有する複数の層を有する複数階層フレームとしてビデオデータが表現される階層符号化技法による前記ビデオデータを符号化するための方法であって、
前のフレームの基本層を基準として使用して、元のイメージを動き補償して現行のフレームの低品質の予測イメージを形成すること、
前のフレームの拡張層を基準として使用して、元のイメージを動き補償して現行のフレームの高品質の予測イメージを形成すること、
前記現行のフレームの低品質の予測イメージと元のイメージの間の差を計算し、計算した差を離散コサイン変換によって変換して低品質の離散コサイン変換係数（ＬＱＰＤ）を形成し、前記ＬＱＰＤ係数を量子化して、現行のフレームの基本層を表す第１のビットストリームに符号化すること、
前記量子化したＬＱＰＤ係数を復号し、前記量子化する前のＬＱＰＤ係数と前記復号した後のＬＱＰＤ係数の差として、前記量子化による誤差を表す低品質の予測剰余を導出することであって、高品質の離散コサイン変換係数に対応する符号化された離散コサイン変換係数を予測することにより前記低品質の予測剰余の変動が最小限に抑えられていること、
前記低品質の予測剰余を現行のフレームの低品質の拡張層を表す第２のビットストリームに符号化すること、
前記符号化された低品質の予測剰余から、高品質の離散コサイン変換係数に対応する符号化された離散コサイン変換係数を予測すること、および、
前記現行のフレームの高品質の予測イメージと元のイメージの間の差を計算し、計算した差を離散コサイン変換によって変換して高品質の離散コサイン変換係数（ＨＱＰＤ）を形成し、前記形成したＨＱＰＤ係数と前記予測した符号化された離散コサイン変換係数の差として、現行のフレームの高品質剰余を導出し、前記高品質剰余を、現行のフレームの高品質の拡張層を表す第３のビットストリームに符号化すること
を含み、
高品質の離散コサイン変換係数に対応する符号化された離散コサイン変換係数を前記予測することは、前記符号化された低品質の予測剰余および前記２つの予測イメージに基づいて予測値を計算することを含むことを特徴とする方法。
【請求項２】
前記低品質の予測剰余を符号化することは、前記低品質の予測剰余を量子化して量子化された剰余を生成し、可変長符号化を使用して前記量子化された剰余を圧縮することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記低品質の予測剰余を符号化することは、前記低品質の予測剰余をビットプレーン符号化することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記高品質の離散コサイン変換係数に対応する符号化された離散コサイン変換係数を前記予測することは、２つの予測イメージ、および前記２つの予測イメージのどちらかの推定に基づいて予測値を計算することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
プロセッサ上で実行されたとき、コンピュータが請求項１に記載のステップを行うように導くコンピュータ実行可能なプログラムを記録したことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明はビデオデータを符号化するためのシステムおよび方法に関し、より詳細には、ファイングラニュラリティ階層符号化を使用する動き補償ベースのビデオ符号化スキームに関する。
【０００２】
（発明の背景）
インターネットがますます普及する中で、効率的で信頼の置けるビデオデータの送付が、ますます重要になっていきている。ビデオは、静的イメージおよびテキストよりもはるかに豊かなユーザ体験を提供するため、非常に魅力的である。例えば、飾り気のない印刷で出来事に関して読むよりも、勝ち越しのタッチダウンまたは大統領演説のビデオクリップを見る方が興味深い。残念ながら、ビデオデータは、インターネットを介して送付される他のデータタイプより相当に大きい。例として、１秒間の圧縮していないビデオデータが、１メガバイトまたはそれ以上のデータを消費する可能性がある。そのような大量のデータをインターネットや無線網などの誤りの起きやすいネットワークを介して送付することは、効率と信頼性の両方の点で困難な課題を有する。
【０００３】
効率的な送付を促進するため、ビデオデータは、通常、送付に先立って符号化して、ネットワークを介して実際に転送されるデータ量を低減する。圧縮の結果、イメージ品質が失われるが、そのような損失は、一般に、許容可能な転送速度を得るのに必要であるものとして許容される。いくつかのケースでは、品質の損失は、見る人にとって感知可能でさえない可能性がある。
【０００４】
ビデオ圧縮は、周知である。１つの一般的なタイプのビデオ圧縮が、動き補償ベースのビデオ符号化スキームであり、このスキームは、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６１、およびＨ．２６３などの符号化において使用される。
【０００５】
１つの特定のタイプの動き補償ベースのビデオ符号化が、ファイングラニュラリティ階層符号化である。階層符号化は、ソース情報が「層」と呼ばれるセットに区分される一系統の信号表現技法である。層は、最下層、つまり「基本層」が、了解度に関して最低限の情報を含むように編成される。「拡張層」と呼ばれるその他の層が、ビデオの全体的品質を増分式に向上させる追加の情報を含む。階層符号化では、ビデオデータのより下位の層を使用してビデオデータの１つ以上のより上位の層を予測する。
【０００６】
ネットワークを介してデジタルビデオデータを提供することができる品質には、符号化プロセスおよび伝送帯域幅を含む多数の要因に依存して、大きな幅がある。「クオリティオブサービス（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）」または「ＱｏＳ」が、ビデオを送付できる様々な品質レベルを一般的に表すのに使用する名称である。階層ビデオ符号化スキームは、様々なビデオ品質にアプリケーションが対応できるようにするある範囲のＱｏＳを提供する。例えば、インターネットを介して送信されたビデオデータを扱うように設計されたアプリケーション（例えば、マルチパーティビデオ会議）は、インターネットを形成する多数の異種のサブネットワークを介してデータを経路指定する際に固有の常に変化するデータ転送速度に迅速に対応しなければならない。受信側におけるビデオのＱｏＳが、現在利用可能などのような帯域幅にも、動的に適合されなければならない。階層ビデオ符号化は、この問題に対する効率的な手法である。その理由は、階層ビデオ符号化が、ビデオソースの単一の表現をある範囲の品質レベルで復号化して提示することが可能ないくつかの層に符号化するからである。
【０００７】
符号化効率の他に、階層符号化技法に関する別の問題が、信頼性である。階層符号化スキームでは、層のそれぞれに関する階層依存関係が存在する。より高位の層は、通常、より下位の層に関する、または前の予測フレームの中の同位の層に関するすべてのデータが存在しているときにだけ復号化することができる。ある層の情報が欠けている場合、同位の層またはより高位の層に関するどのデータも役立たない。ネットワークアプリケーションでは、この依存関係により、階層符号化スキームは、特に下位の層においてパケット損失の許容度が非常に低くなる。階層ストリームにおいて損失率が高い場合、受信側におけるビデオ品質は、非常に劣悪である。
【０００８】
図１が、「ファイングラニュラリティスケーラブル（Ｆｉｎｅ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｃａｌａｂｌｅ）」または「ＦＧＳ」として知られる従来の階層符号化スキーム２０を描いている。第１のイントラフレーム（ｉｎｔｒａｆｒａｍｅ）、つまりイントラフレーム２２と、それに続いてイントラフレーム２２から予測された２つの予測フレーム２４および２６を含む３つのフレームが示されている。フレームは、４つの層、基本層２８、第１の層３０、第２の層３２、および第３の層３４に符号化される。基本層は、通常、再生されたとき、見る人にとって最低限で許容可能なビデオデータを含む。各追加の層が、基本層を拡張するビデオデータの増分式に増える構成要素を含む。これにより、ビデオの品質が、各追加の層とともに向上する。この技法は、Ｗｅｉｐｉｎｇ  Ｌｉ著、「Ｆｉｎｅ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｃａｌａｂｉｌｉｔｙ  Ｕｓｉｎｇ  Ｂｉｔ−Ｐｌａｎｅ  Ｃｏｄｉｎｇ  ｏｆ  ＤＣＴ  Ｃｏｅｆｆｉｃｉｅｎｔｓ」という名称の論文、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、ＭＧＥＧ９８／Ｍ４２０４（１９９８年１２月）で説明されている。
【０００９】
階層符号化では、様々な層を別々のサブストリームとしてネットワークを介して送信することができ、ビデオの品質レベルは、各サブストリームが受信され、復号化されるにつれて向上する。基本層ビデオ２８は、誤りまたはパケット損失を最小限に抑えるようによく制御されたチャネルで伝送される。言い換えれば、基本層は、最小限のチャネル帯域幅に合うように符号化される。目標は、最低限の品質のビデオを提供するように少なくとも基本層２８を送付して復号化することである。ネットワーク条件がビデオ品質（例えば、表示サイズ、解像度、フレーム速度等）を向上させるのを許すにつれ、拡張３０〜３４層が送付され、復号化される。さらに、選好および能力に従って特定の品質を得るため、これらの層の特定の部分つまりサブセットを選択して復号化するようにデコーダを構成することができる。
【００１０】
示すＦＧＳ符号化スキームの一特徴は、拡張層３０〜３４が、基準フレームの中の基本層２８から予測式に符号化されることである。図１に示す通り、予測フレーム２４および２６の中の拡張層３０〜３４のそれぞれを先行するフレームの基本層から予測することができる。この例では、予測フレーム２４の拡張層をイントラフレーム２２の基本層から予測することができる。同様に、予測フレーム２６の拡張層を先行する予測フレーム２４の基本層から予測することができる。
【００１１】
ＦＧＳ符号化スキームは、時々生じるデータ損失からの誤り回復に関して良好な信頼性を提供する。基本層からすべての拡張層を予測することにより、伝送中の１つ以上の拡張層の損失または破壊を基本層からの拡張層の再構成によって修復することができる。例えば、フレーム２４に、伝送中、何らかの誤りが生じたと想定する。この場合、先行するイントラフレーム２２の基本層２８を使用してフレーム２４の基本層および拡張層を予測することができる。
【００１２】
残念ながら、ＦＧＳ符号化スキームは、予測が常に最低品質の基本層に基づくことから、符号化および圧縮の点で非常に非効率であるという相当な欠点を有する。したがって、誤り回復を犠牲にすることなく効率的である階層符号化スキームが、必要とされることに変わりない。
【００１３】
図２は、Ｊａｍｅｓ  Ｍａｃｎｉｃｏｌ、Ｍｉｃｈａｅｌ  Ｆｒａｔｅｒ、およびＪｏｈｎ  Ａｒｎｏｌｄ著、「Ｒｅｓｕｌｔｓ  ｏｎ  Ｆｉｎｅ  Ｇｒａｎｕｌａｒｉｔｙ  Ｓｃａｌａｂｉｌｉｔｙ」という名称の論文、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、ＭＰＥＧ９９／ｍ５１２２（１９９９年１０月）で紹介される技法を使用して３つのフレームが符号化されている別の従来の階層符号化スキーム４０を描いている。３つのフレームは、第１のフレーム４２と、それに続く第１のフレーム４２から予測された２つの予測フレーム４４および４６を含む。フレームは、４つの層、基本層４８、第１の層５０、第２の層５２、第３の層５４に符号化されている。このスキームでは、フレームの中の各層は、前のフレームの同位の層から予測される。例えば、予測フレーム４４の拡張層を前のフレーム４２の対応する層から予測することができる。同様に、予測フレーム４６の拡張層を前のフレーム４４の対応する層から予測することができる。
【００１４】
図２に示す符号化スキームは、符号化の点で非常に効率的であるという利点を有する。ただし、この符号化スキームは、データ損失から容易に回復することができないという重大な欠点を抱えている。拡張層において誤りまたはパケット損失が生じると、その誤りまたはパケット損失が、ＧＯＰ（予測フレームのグループ）の終りまで伝播し、後続の予測フレームのより高位の層において深刻なドリフトが引き起こされる。後に十分な帯域幅が存在していてさえも、デコーダは、別のＧＯＰが開始するまで最高品質を回復することができない。
【００１５】
したがって、帯域幅の変動に対応し、良好な誤り回復特性も示す効率的な階層ビデオ符号化スキームが、必要とされることに変わりない。
【００１６】
（発明の概要）
ビデオ符号化スキームが、プログレッシブファイングラニュラリティスケーラブル（ＰＦＧＳ）階層符号化を使用して、比較的低品質のビデオの基本層および順により高品質になるビデオの複数の拡張層を含む複数の層にビデオデータフレームを符号化する。現行のフレームの中の拡張層のいくつかが、基準フレームの中の少なくとも１つの同じ品質の層またはより低品質の層から予測され、より低品質の層は、必ずしも基本層ではない。
【００１７】
１つの説明する実施形態では、ビデオエンコーダが、基本層および複数の拡張層を含む複数の層にビデオデータのフレームを符号化する。基本層は、最低品質のビデオデータを含み、拡張層は、順により高品質になるビデオデータを含む。予測フレームの中の層は、基本層と１つ以上の拡張層の両方から予測される。
【００１８】
イメージフレーム予測からもたらされる剰余が、元のイメージと予測イメージの差として定義される。離散コサイン変換（ＤＣＴ）などの一次変換を使用する場合、予測された剰余の係数が、元のイメージのＤＣＴ係数と予測イメージのＤＣＴ係数の差に等しい。ＰＦＧＳ符号化スキームは、予測のための複数の基準層を使用するので、この符号化スキームは、複数のセットの予測ＤＣＴ係数をもたらす。予測ＤＣＴ係数は、予測のためにどのような基準層が使用されたかに応じてその品質に幅がある。より低品質の予測ＤＣＴ係数（または「ＬＱＰＤ」）が、基本層などのより低品質の基準層を使用することによってもたらされる。より高品質の予測ＤＣＴ係数（または「ＨＱＰＤ」）が、より高品質の拡張層を基準として使用することによってもたらされる。
【００１９】
予期されるのは、ＨＱＤＰ係数が、ＬＱＤＰ係数と比べてより低いＤＣＴ剰余をもたらすことである。この理由は、基準層が、より高品質であり、したがって、元のイメージにより近いからである。より低いＤＣＴ剰余は、符号化層の数がより少なくなることを意味し、これにより、より良好な符号化効率がもたらされる。この予期は、平均値の点では妥当であるが、ＤＣＴ剰余の様々な品質は、フレーム間の動き、およびその他の理由により変動する傾向がある。いくつかの場合、ＨＱＰＤ係数の中の個々のＤＣＴ剰余は、より低品質の層を基準として生成したＤＣＴ剰余（すなわち、ＬＱＤＰ係数の中の剰余）と比べて、実際に増大する。望ましくない変動および増大の結果、符号化の効率が低下する。
【００２０】
理想的には、異なる品質の複数の予測基準を使用することによって生じるＤＣＴ係数の変動をなくすため、ＨＱＰＤ係数は、基本層および低位の拡張層の一部であるか、または基本層および低位の拡張層に部分的に符号化しなければならない。ただし、実際には、より低品質のＬＱＰＤ係数だけが、基本層および低位の拡張層の中で符号化されている。
【００２１】
本明細書で説明するビデオ符号化が、基本層および低品質の拡張層の中に符号化されたＬＱＰＤ係数からＨＱＰＤ係数を予測することにより、これらの変動を効率的になくす。これらの予測ＨＱＰＤ係数、または予測ＨＱＰＤ係数から導出された高品質剰余をエンコーダとデコーダの両方において計算することができる。それでも最大限度を超えるＨＱＰＤ予測からのあらゆる剰余を例外として、基本層および低品質の拡張層を含むビットストリームを変更する必要がない。予測ＨＱＰＤ係数の使用が、符号化に先立つ大きな変動をなくすことにより、符号化効率を向上させる。
【００２２】
同じ要素および同じ特徴を指すのにすべての図面で同じ番号を使用する。
【００２３】
（好ましい実施形態の詳細な説明）
本開示は、動き補償ベースのビデオ符号化のシステムおよび方法において使用する階層ビデオ符号化スキームを説明する。符号化スキームは、インターネットまたは無線網などのネットワークを介してビデオデータを送付するコンテキストで説明する。ただし、階層ビデオ符号化スキームは、多種多様な環境に対する一般的適用可能性を有する。
【００２４】
例としてのシステムアーキテクチャ
図３は、コンテンツプロデューサ／プロバイダ６２が、ビデオを製作し、および／またはネットワーク６４を介してクライアント６６に配信するビデオ配信システム６０を示している。ネットワークは、インターネット、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストーレッジエリアネットワーク）および無線網（例えば、サテライト、セルラー、ＲＦ等）を含む多数の異なるタイプのネットワークを代表している。
【００２５】
コンテンツプロデューサ／プロバイダ６２は、ビデオデータをストア、処理、および配信するように構成された１つ以上のサーバコンピュータとしての形態を含め、多くの仕方で実装することができる。コンテンツプロデューサ／プロバイダ６２は、デジタルビデオファイル７２をストアするビデオストレージ７０、およびビデオデータを符号化し、ネットワーク６４を介してビデオデータを配信する配信サーバ７４を有する。サーバ７４は、プロセッサ７６、オペレーティングシステム７８（例えば、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｕｎｉｘ（登録商標）等）、およびビデオエンコーダ８０を有する。ビデオエンコーダ８０は、ソフトウェア、ファームウェア、および／またはハードウェアで実装することができる。エンコーダは、説明のため、別個の独立型モジュールとして示しているが、プロセッサ７６の一部として構成すること、またはオペレーティングシステム７８または他のアプリケーション（図示せず）に組み込むことも可能である。
【００２６】
ビデオエンコーダ８０は、動き補償ベースの符号化スキームを使用してビデオデータ７２を符号化する。より具体的には、エンコーダ８０は、プログレッシブファイングラニュラリティスケーラブル（ｐｒｏｇｒｅｓｓｉｖｅ  ｆｉｎｅ  ｇｒａｎｕｌａｒｉｔｙ  ｓｃａｌａｂｌｅ）（ＰＦＧＳ）階層符号化スキームを使用する。ビデオエンコーダ８０は、基本層および１つ以上の拡張層を含む複数の層にビデオを符号化する。「ファイングラニュラリティ」符号化とは、任意の２つの層の間の差が、小さい場合でさえ、デコーダによって使用されてイメージ品質を向上させるのが可能であることを意味する。ファイングラニュラリティ階層ビデオ符号化は、現行のビデオフレームのより低位の層からの次のビデオフレームの予測が、ビデオ符号化全体の効率を保つだけ十分に良好であることを確実にする。
【００２７】
ビデオエンコーダ８０は、ビデオデータを基本層に符号化する基本層符号化構成要素８２およびビデオデータを１つ以上の拡張層に符号化する拡張層符号化構成要素８４を有する。ビデオエンコーダは、ビデオデータを符号化し、現行フレームの中の拡張層のいくつかが、基準フレームの中の少なくとも１つの同品質の層またはより低品質の層から予測されるようにし、より低品質の層は、必ずしも基本層ではない。また、ビデオエンコーダ８０は、より高位の拡張層の中のデータを予測するビットプレーン符号化（ｂｉｔ−ｐｌａｎｅ  ｃｏｄｉｎｇ）構成要素８６も含む。ビデオエンコーダ８０の様々な実施形態を以下に図９、図１９、および図２１を参照してより詳細に説明する。
【００２８】
クライアント６６が、プロセッサ９０、メモリ９２、および１つ以上のメディア出力装置９４を備えている。メモリ９２は、プロセッサ９０上で実行されるオペレーティングシステム９６（例えば、Ｗｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステム）をストアする。オペレーティングシステム９６は、クライアント側ビデオデコーダ９８を実装して階層ビデオストリームを元のビデオに復号化する。データが損失した場合、デコーダ９８は、正常に転送されたフレームからビデオの欠落した部分を再構成することができる。クライアント側デコーダ９８は、基本層復号化構成要素９５、拡張層復号化構成要素９７、およびオプションとして、ビットプレーン符号化構成要素９９を有する。ビデオエンコーダ８０の様々な実施形態を以下に図２０および図２２を参照してより詳細に説明する。
【００２９】
復号化後、クライアントが、ビデオをメモリの中にストアし、および／またはメディア出力装置９４を介して再生する。クライアント２６は、コンピュータ、ハンドヘルドエンターテイメント装置、セットトップボックス、テレビジョン、特定用途向けＩＣ（ＡＳＩＣ）などを含む多くの異なる仕方で実現することができる。
【００３０】
例としてのＰＦＧＳ階層符号化スキーム
前述した通り、ビデオエンコーダ８０が、ビデオデータを複数の層に符号化し、現行のフレームの中の拡張層のいくつかが、必ずしも基本層ではない基準フレームの中の少なくとも１つのより低品質の層から予測されるようにする。このＦＰＧＳ階層符号化スキームを実装する多くの仕方が存在する。説明の目的で、またこのスキームの利点を指摘するために一例を図４に示す。
【００３１】
図４は、図３のビデオエンコーダ８０によって実装されるＰＦＧＳ階層符号化スキーム１００を概念的に示している。エンコーダ８０が、ビデオデータのフレームを基本層および複数の拡張層を含む複数の層に符号化する。説明の目的で、図４は、４つの層、基本層１０２、第１の層１０４、第２の層１０６、および第３の層１０８を示している。上位の３つの層１０４〜１０８が、基本ビデオ層１０２に対する拡張層である。本明細書で、層という用語は、空間的層またはＳＮＲ（品質層）、あるいはその両方を指す。５つの連続フレームを説明の目的で示している。
【００３２】
フレーム間毎に、元のイメージが、前の基本層および１つの拡張層を基準として予測イメージを形成することによって補償される。予測からもたらされた剰余が、元のイメージと予測イメージの間の差として定義される。例として、元のイメージを変換するのに使用する１つの一次変換が、離散コサイン変換（ＤＣＴ）である。その線形性のため、予測剰余のＤＣＴ係数は、元のイメージのＤＣＴ係数と予測イメージのＤＣＴ係数の差に等しい。
【００３３】
ＰＦＧＳ階層符号化スキームによって生成される層の数は、固定されておらず、剰余を符号化するのに必要な層の数に基づく。例えば、最大剰余を２進形式において５ビットで表すことができるものと想定する。この場合、そのような剰余を符号化するのに５つの拡張層が使用され、第１の層を使用して最上位ビットを符号化し、第２の層を使用して最上位の次のビットを符号化し、以下同様である。
【００３４】
符号化スキーム１００では、より高品質の層が、少なくとも１つの同品質の層またはより低品質の層から予測されるが、この層は、必ずしも基本層ではない。示す例では、基本層符号化を例外として、予測フレーム（Ｐフレーム）の中のいくつかの拡張層の予測は、再構成された基準フレームの１つ下の層に基づく。この場合、偶数フレームは、先行するフレームの偶数層から予測され、また奇数フレームは、先行するフレームの奇数層から予測される。例えば、偶数フレーム２が、先行するフレーム１の偶数層（すなわち、基本層１０２および第２の層１０６）から予測される。奇数フレーム３の層が、先行するフレーム２の奇数層（すなわち、第１の層１０４および第３の層１０６）から予測される。偶数フレーム４の層が、やはり、先行するフレーム３の偶数層から予測される。この交互パターンが、ビデオビットストリームの符号化全体にわたって続く。さらに、同一フレームの中のより低位の層と１つ高位の層の間の相関も、より高い符号化効率を得るのに利用することができる。
【００３５】
図４に示すスキームは、多くの異なる符号化スキームの１つに過ぎない。このスキームは、以下の関係式で一般的に表現されるクラスの符号化スキームにおける特殊例を例示するものである。
【００３６】
Ｌ  ｍｏｄ  Ｎ＝ｉ  ｍｏｄ  Ｍ
【００３７】
ただし、Ｌは、層を示し、Ｎは、層グループ深度を表し、ｉは、フレームを示し、またＭは、フレームグループ深度を示す。層グループ深度は、どれだけの数の層が、ある共通の基準層を基準としていることが可能かを定義する。フレームグループ深度は、予測目的で一緒にグループ化されるフレームまたは周期の数を示す。
【００３８】
この関係式は、符号化スキームにおける基準層を変更するために条件付きで使用される。方程式が真である場合、層は、先行する再構成されたフレームの中のより低位の基準層に基づいて符号化される。
【００３９】
図４の符号化スキームに関する関係式は、層グループ深度とフレームグループ深度がともに２であるときの特殊ケースである。したがって、この関係式は、Ｎ＝Ｍであるため、Ｌ  ｍｏｄ  Ｎ＝ｉ  ｍｏｄ  Ｎに変更することができる。Ｎ＝Ｍ＝２であるこのケースでは、フレームｉが２であり、層Ｌが１（すなわち、第１の層１０４）であるとき、値Ｌ  ｍｏｄ  Ｎは、ｉ  ｍｏｄ  Ｎの値に等しくなく、したがって、再構成された基準フレーム１の１つ低位の基準層（すなわち、基本層１０２）が使用される。フレームｉが２であり、層Ｌが２（すなわち、第２の層１０６）である場合、値Ｌ  ｍｏｄ  Ｎは、ｉ  ｍｏｄ  Ｎの値に等しく、したがって、基準フレームのより高位の層（すなわち、第２の拡張層１０６）が使用される。
【００４０】
一般的に言って、Ｎ＝Ｍ＝２であるケースの場合、この関係式は、偶数フレーム２および４に関して、先行するフレーム１および３の偶数層（すなわち、基本層１０２および第２の層１０６）がそれぞれ基準として使用され、一方、奇数フレーム３および５に関して、先行するフレーム２および４の奇数層（すなわち、第１の層１０４および第３の層１０８）がそれぞれ基準として使用されるものとする。
【００４１】
以上の符号化の説明は、各フレームの中で、より低位の層からより高位の層への予測パスがいくつかのフレームにわたって維持される限り、使用される予測をランダムに割り当てることができる、より一般的なケースのやはり特殊ケースである。
【００４２】
この符号化スキームは、高い符号化効率とともに良好な誤り回復を提供する。提案の符号化スキームは、インターネットまたは無線チャネルを介するビデオ伝送に提供するとき、特に有益である。１つの利点は、ドリフト問題なしに、符号化されたビットストリームをチャネルの利用可能な帯域幅に適合させるのが可能であることである。
【００４３】
図５は、図４の同じ符号化スキーム１００に関するこの帯域幅適合特性の例を示している。破線１０が、伝送されるビデオ層をたどっている。フレーム２および３において、帯域幅の減少が存在し、これにより、伝送できるデータの量が制限される。これら２つのフレームにおいて、サーバは、より高位の層のビットを単にドロップする（すなわち、第３の層１０８が、フレーム２からドロップされ、また第２の層１０６および第３の層１０８が、フレーム３からドロップされる）。ただし、フレーム３の後、帯域幅が再び増大し、サーバは、より多数の層のビデオビットを伝送する。フレーム５までに、クライアントにおけるデコーダは、最高品質のビデオ層を再び獲得することができる。
【００４４】
別の利点は、正常に伝送が終えられなかった可能性がある、または誤りを含む可能性があるより高位のビデオ層をいくつかの所定のフレームの後、より低位の層から回復できることである。図６は、フレーム３の第３の層および第４の層が、受信側クライアントにおいて正しく受信されない例を示している。この場合、破線の矢印で表す通り、フレーム３の第３の層１０６を先行する基準フレーム２の第１の層１０４から部分的に再構成することができる。この結果、ビデオビットストリームの符号化および伝送を全くやり直す必要がない。ビデオのすべての層が、単一のビットストリームの中に効率的に符号化され、埋め込まれる。
【００４５】
この符号化スキームの別の利点は、この符号化スキームが、マクロブロック（ｍａｃｒｏｂｌｏｃｋ）を符号化するために使用されるとき、非常に優れた誤り回復力特性（ｅｒｒｏｒ  ｒｅｓｉｌｉｅｎｃｅ  ｐｒｏｐｅｒｔｙ）を示すことである。誤りが生じやすいネットワーク（例えば、インターネット、無線チャネル等）では、ときとして極めて頻繁にパケット損失または誤りが生じる可能性が高い。どのようにこれらのパケット損失または誤りから優美に回復するかは、多くの活発な研究の主題となっている。図４の階層符号化スキーム１００では、基本層１０２にパケット損失または誤りが全くない限り、伝送をやり直すこと、またはドリフト問題なしに、より高位の層の中のパケット損失／誤りをいくつかのフレームを介して常に優美に回復できるのを示すことが可能である。
【００４６】
図７は、予測フレームの中のマクロブロック（ＭＢ）１２２の動きベクトル１２０が、基準フレームの中の基準マクロブロック１２４をポイントする例を示している。基準ＭＢ１２４は、基準フレームの中の元のＭＢの境界と必ずしも揃っていない。最悪ケースでは、基準ＭＢ１２４は、基準フレームの中の４つの隣接するＭＢ１２６、１２８、１３０、および１３２からのピクセルで構成される。
【００４７】
次に、４つの隣接するＭＢ１２６〜１３２のいくつかにパケット損失または誤りが生じ、ＭＢ１２６〜１３２のそれぞれが、最大限誤りのない層に再構成されていると想定する。例えば、ＭＢ１２６〜１３２が、層Ｍ１、Ｍ２、Ｍ３、およびＭ４においてそれぞれ再構成されている。基準ＭＢ１２４は、再構成された層のうち最低限の層（すなわち、ｍｉｎ（Ｍ１、Ｍ２、Ｍ３、Ｍ４））に等しい層において、基準フレームの中の再構成された４つの隣接するＭＢ１２６〜１３２からのピクセルで構成される。この結果、予測フレームの中で復号化されるＭＢ１２２は、
【００４８】
１＋ｍｉｎ（Ｍ１、Ｍ２、Ｍ３、Ｍ４）
【００４９】
に等しい最大限の層において復号化される。
【００５０】
この結果、ドリフトする誤りが導入されることがなく、エンコーダによって使用される層の数に依存して、いくつかのフレームを介して誤りのないフレームが再構成される。
【００５１】
図８は、サーバ側エンコーダ８０およびクライアント側デコーダ９８において実施される一般的階層符号化プロセスを示している。プロセスは、ハードウェアおよび／またはソフトウェアで実施することができる。このプロセスを図３を参照して説明する。
【００５２】
ステップ１５０で、エンコーダ８０が、基準フレームまたはイントラフレーム（または「Ｉフレーム」）の中の各マクロブロックを異なる層に符号化する。図４を参照して、フレーム１がＩフレームであり、またエンコーダ８０が基本層および３つの拡張層１０２〜１０８を形成するものと想定する。ステップ１５２で、エンコーダ８０が、各予測フレーム（または「Ｐフレーム」）を異なる層に符号化する。フレーム２がＰフレームであると想定する。エンコーダ８０は、従来の技法に従ってフレーム２の基本層１０２を符号化し、また関係式Ｌ  ｍｏｄ  Ｎ＝ｉ  ｍｏｄ  Ｍに従ってフレーム２の拡張層１０４〜１０８を符号化する。
【００５３】
ステップ１５４で、エンコーダは、Ｐフレームのグループ（ＧＯＰ）の中にさらにＰフレームが存在するかどうかを評価する。存在する場合（すなわち、ステップ１５４からの「はい」の分岐）、次のＰフレームが同じ仕方で符号化される。そうでない場合、グループに関するすべてのＰフレームが符号化されている（ステップ１５６）。
【００５４】
プロセスは、判定ステップ１５８で表す通り、すべてのＩフレームおよびＰフレームが符号化されるまで続く。その後、符号化されたビットストリームを圧縮形式でビデオストレージ７０の中にストアし、および／またはサーバ７４からネットワーク６４を介してクライアント６６に伝送することができる（ステップ１６０）。伝送の際、サーバは、割り振られた帯域幅の中で基本層を伝送して基本層の送付を確実にする。また、サーバは、帯域幅の可用性に応じて１つ以上の拡張層を伝送する。帯域幅の変動に応じて、サーバは、変化するネットワーク条件に対応するようにより多い、またはより少ない拡張層を伝送する。
【００５５】
クライアント６６が、伝送を受信し、デコーダ９８が、正常に伝送を終えた利用可能な層までＩフレームを復号化する（ステップ１６２）。次に、デコーダ９８が、利用可能な層まで各Ｐフレームの中の各マクロブロックを復号化する（ステップ１６４）。１つ以上の層が受信されなかった場合、または誤りを含んでいる場合、デコーダ９８が、同じフレームまたは前のフレームのより低位の層から層を再構成しようと試みる（ステップ１６６）。デコーダは、符号化されたビットストリームの中のすべてのＰフレームおよびＩフレームを復号化する（ステップ１６８〜１７２）。ステップ１７４で、クライアントが、復号化されたビットストリームをストアし、および／または再生する。
【００５６】
例としてのビデオエンコーダ
図９は、ネットワーク６４（図３）を介する配信に先立ってビデオデータファイルを符号化するようにサーバ７４によって使用されるビデオエンコーダ８０の例としての実施形態を示している。ビデオエンコーダ８０は、層グループ深度Ｎとフレームグループ深度Ｍがともに２に等しい図４に示した階層符号化スキームに従ってビデオデータを符号化するように構成されている。
【００５７】
ビデオエンコーダ８０は、破線のボックスで輪郭を描いた基本層エンコーダ８２および拡張層エンコーダ８４を有する。ビデオエンコーダ８０は、ビデオデータ入力ストリームを受信して、そのビデオデータをＩフレームとＰフレームに分離するフレーム分離器２０２を含む。Ｐフレームは、Ｉフレームの中の位置からＰフレームの中の別の位置へのオブジェクトの移動を推定する動き推定器（ｅｓｔｉｍａｔｏｒ）２０４に送られる。また、動き推定器２０４は、現行の入力に関する基準として、フレームメモリ０の中にストアされた前の再構成フレーム、ならびにフレームメモリ０ないしｎ−１の中にストアされた異なるＳＮＲ（信号対雑音比）解像度を有する基準層も受け取る。
【００５８】
図４に関連して前述した符号化スキームに従って、現行の層を先行する基準再構成フレームの１つ低位の層から予測して、動き予測を可能な限り正確にする。例えば、拡張層ｊが、フレームメモリｊ−１の中にストアされた基準再構成フレームの層ｊ−１によって予測される。動き推定器２０４は、結果を動き補償器（ｃｏｍｐｅｎｓａｔｏｒ）２０６に出力する。動き推定器２０４および動き補償器２０６は、従来のＭＰＥＧ符号化において使用される周知の構成要素である。
【００５９】
基本層符号化において、現行の入力と基準再構成フレームの基本層の間の変位させられたフレーム差（ＤＦＤ）が、８×８ブロックに分割される。時刻ｔにおける基本層の中のＤＦＤイメージのブロックｋが、以下の通り与えられる。
【００６０】
【数１】
0004842486.tif 000002
【００６１】
結果Δｆt,0（ｋ）は、要素が動き補償の剰余である８×８行列であり、ｆ（ｘ，ｙ）は、時刻ｔにおける元のイメージであり、またｆt-1,0（ｘ，ｙ）は、時刻ｔ−１における基準再構成イメージの基本層である。ベクトル（Δｘ，Δｙ）は、ｆt-1,0（ｘ，ｙ）を基準とするブロックｋの動きベクトルである。
【００６２】
動き補償の後の剰余イメージが、ＤＣＴ（離散コサイン変換）モジュール２０８によって変換され、次に、モジュール２１０において量子化関数Ｑによって量子化される。基本層のビットストリームは、以下の通り、可変長テーブル（ＶＬＴ）２１２を使用して量子化されたＤＣＴ係数を変換することによって生成される。
【００６３】
【数２】
0004842486.tif 000003
【００６４】
また、フレームの基本層は、モジュール２１４における復号（ｄｅｑｕａｎｔｉｚａｔｉｏｎ）関数Ｑ-1にも通す。したがって、基本層の中の復号されたＤＣＴ係数は、以下の通りである。
【００６５】
【数３】
0004842486.tif 000004
【００６６】
結果Ｒt,0（ｋ）は、要素がΔｆt,0（ｋ）のＤＣＴ係数である８×８行列である。このＤＣＴ係数は、ｎ個のフレームメモリステージに渡される。基本ステージ０を除くすべてのステージにおいて、ＤＣＴ係数は、拡張層エンコーダ８４からの係数に加算される。次の、この係数が逆ＤＣＴ（ＩＤＣＴ）モジュール２１６（０）、２１６（１）．．．２１６（ｎ−１）を通るようにし、結果が、フレームメモリ２１８（０）、２１８（１）．．．２１８（ｎ−１）の中にストアされる。フレームメモリ２１８の内容が、動き推定器２０４にフィードバックされる。
【００６７】
基本層符号化では、ＤＣＴ係数領域におけるブロックｋの剰余は、以下の通りである。
【００６８】
【数４】
0004842486.tif 000005
【００６９】
拡張層エンコーダ８４が、ＤＣＴモジュール２０８からの元のＤＣＴ係数出力、および量子化モジュール２１０からの量子化されたＤＣＴ係数を受け取り、拡張ビットストリームを生成する。８×８ブロックの中のすべてのＤＣＴ係数剰余を取り込んだ後、基準発見（ｆｉｎｄ  ｒｅｆｅｒｅｎｃｅ）モジュール２２０が、剰余の絶対値を表すランレングス記号を形成する。剰余ブロックの６４個の絶対値をジグザグな順序で１次元アレイに配列し、メモリ２２２の中にストアする。モジュール２２４が、すべての絶対値の最大値を以下の通り計算する。
【００７０】
【数５】
0004842486.tif 000006
【００７１】
２進形式で最大値ｍを表すのに必要な最小限のビット数が、各ブロックに関する拡張層の数を決める。この場合、可変長符号化（ＶＬＣ）を使用してｎ個の拡張層を符号化するｎ個のビットプレーン（ｂｉｔ−ｐｌａｎｅ）２２６（１）〜２２６（ｎ）が存在する。
【００７２】
時刻ｔにおける拡張層の中のＤＦＤイメージのブロックｋの剰余信号は、以下の通りである。
【００７３】
【数６】
0004842486.tif 000007
【００７４】
ただし、１≦ｉ≦ｎ。拡張層における符号化は、以下の通りである。
【００７５】
【数７】
0004842486.tif 000008
【００７６】
括弧内の演算［*］は、２ｎ−ｉのモジュロ値に基づくモジュロ演算である。拡張層ｉを符号化した後、ＤＣＴ係数領域の剰余は、以下の通りである。
【００７７】
【数８】
0004842486.tif 000009
【００７８】
拡張層の中で生成されるビットストリームは、以下の通りである。
【００７９】
【数９】
0004842486.tif 000010
【００８０】
時刻ｔで、基本層および拡張層の中で符号化されるブロックｋのＤＣＴ係数の合計値は、以下の通りである。
【００８１】
【数１０】
0004842486.tif 000011
【００８２】
図１０は、図９のビデオエンコーダによって実施される符号化プロセスを示している。ステップ３００で、ビデオエンコーダが、ＩフレームとＰフレームを区別する。Ｉフレームの符号化に関して、ビデオエンコーダは、対応するビットストリームを生成し、様々なフレームメモリ２１８（０）〜２１８（ｎ−１）を更新する。例えば、基本層を符号化してフレームメモリ０の中にストアする（ステップ３０２および３０４）。拡張層１を符号化してフレームメモリ１の中にストアする（ステップ３０６および３０８）。これが、すべての拡張層１ないしｎに関して続けられ、拡張層ｎ−１の符号化結果が、フレームメモリｎ−１の中にストアされる（ステップ３１０、３１２、および３１４）。
【００８３】
Ｐフレームの符号化に関して、ビデオエンコーダは、動き補償−動き変換符号化を行う。基本層と第１の拡張層はともに、フレームメモリ０の中の基本層を基準として使用する（ステップ３２０および３２２）。Ｐフレームの中のこれらの層の符号化結果が、フレームメモリ０を更新するのにも使用される。Ｐフレームの中の残りの拡張層は、符号化されてフレームメモリ１を更新するのに使用される拡張層２（ステップ３２４）、および符号化されたフレームメモリｎ−１を更新するのに使用される拡張層ｎ（ステップ３２６）で示される通り、１つ低位の層を基準として使用する。
【００８４】
図９のエンコーダおよび図１０の対応するプロセスは、構造を説明し、どのように階層化が実施されるかを明確に伝える目的で、ｎ個のフレームメモリ２１８（０）〜２１８（ｎー１）を描いていることに留意されたい。ただし、実施の際、フレームメモリ２１８の数をほどんど１／２に削減することが可能である。図４の符号化スキームでは、偶数フレーム（例えば、フレーム２および４）に関して、前のフレームの偶数層（例えば、フレーム１および３の第２の層）だけが予測のために使用され、奇数層は使用されない。したがって、エンコーダ８０は、予測のためにフレームメモリの中に前のフレームの偶数層をストアするだけでよい。同様に、奇数フレーム（例えば、フレーム３および５）に関して、前のフレームの奇数層（例えば、フレーム２および４の第１の層１０２および第３の層１０８）が予測のために使用され、偶数層は使用されない。その時点で、エンコーダ８０は、予測のためにフレームメモリの中に奇数層だけをストアしている。したがって、実際には、エンコーダにｎ／２個のフレームバッファを実装してより高位の拡張層の交互の符号化に対応することが可能である。さらに、エンコーダは、基本層のために１つの追加フレームを使用する。したがって、図４の符号化スキームを実施するのに必要なフレームメモリの総数は、（ｎ＋１）／２である。
【００８５】
複数の基準層からの予測に起因する符号化の非効率の可能性
前述したＰＦＧＳ階層符号化スキームでは、前のフレームからの基本層および拡張層を基準とすることにより、イメージが元のイメージから予測される。図４では、フレーム２の中の基本層および拡張層が、前のフレーム１の中の基本層および第２の拡張層を基準とする。フレーム３の中の基本層および拡張層は、前のフレーム２の中の基本層および第１の拡張層を基準とする。拡張層の品質は、基本層の品質より高いので、ＰＦＧＳ符号化スキームは、符号化効率を維持しながら、任意の所与のビデオ層に関して、動き予測を可能な限り正確にする。
【００８６】
イメージフレーム予測からもたらされる剰余が、元のイメージと予測イメージの間の差として定義される。一次ＤＣＴ変換を使用する場合、予測された剰余のＤＣＴ係数は、元のイメージのＤＣＴ係数と予測イメージのＤＣＴ係数の差に等しい。図４の符号化スキームは、予測のために２つの基準層を使用するので、この符号化スキームは、次の２組の予測されたＤＣＴ係数を生成する。（１）基本層などの低品質の基準層を基準とすることによって形成された予測イメージの第１のセットの予測されたＤＣＴ係数、および（２）拡張層などのより高品質の基準層を基準とすることによって形成された予測イメージの第２のセットの予測されたＤＣＴ係数。便宜のため、第１のセットのＤＣＴ係数を低品質予測ＤＣＴ（ＬＱＰＤ）係数と呼び、また第２のセットのＤＣＴ係数を高品質予測ＤＣＴ（ＨＱＰＤ）係数と呼ぶ。他の符号化スキームでは、２組より多くの予測されたＤＣＴ係数を生成するのも可能であることに留意されたい。
【００８７】
予期されるのは、ＨＱＰＤ係数が、より低いＤＣＴ剰余をもたらし、これにより、基準層が高品質であり、したがって、元のイメージにより近いため、より高い効率の符号化がもたらされることである。これは、平均の点からは真実であるが、より低品質の層を基準とすることによってもたらされるＤＣＴ剰余（すなわち、ＬＱＰＤ係数剰余）と比べて、実際に増大するＨＱＰＤ係数における個々のＤＣＴ剰余が存在する。この望ましくない増大は、フレーム間の動き、およびその他の理由によるものであり、剰余を符号化するのにより多くのデータが必要とされるため、結果として符号化の効率がより低くなる。
【００８８】
図１１〜図１７は、より高品質の基準の使用が、どのように予期しない高い剰余を導入する可能性があるか（より低品質の基準と比べて）の例を提示している。この例では、周知のＭＰＥＧ試験シーケンスである「コーストガード（Ｃｏａｓｔｇｕａｒｄ）」として知られるシーケンスの第３のフレームの第３９８のブロックからデータが選択されている。
【００８９】
図１１は、「コーストガード」シーケンスの第３のフレームの第３９８のブロックの中の基本層から予測された予測層４００の１組の低品質予測ＤＣＴ（ＬＱＰＤ）係数を示している。予測層４００は、８×８アレイのピクセルに関するＬＱＰＤ係数を含んでいる。このＬＤＰＤ係数は、ビットストリームに符号化されるのに先立って量子化される。
【００９０】
図１２は、７の量子化ステップで図１１のＬＱＰＤ係数を量子化することによって生成された予測基本層４０２を示している。層４０２の中の量子化されたＤＣＴ係数は、可変長符号化などの符号化プロセスを使用して基本層のビットストリームに圧縮される。層４０２の中の量子化されたＬＱＰＤ係数は、量子化誤りがどれほどの規模であるかを判定するため、続いて復号される。層４００の中のＬＱＰＤ係数と層４０２の中の復号されたＬＱＰＤ係数の差が、ＤＣＴ領域における剰余を形成する。このＤＣＴ剰余をビットプレーン符号化を使用して圧縮して、拡張層のビットストリームを形成する。ＤＣＴ剰余は、２進形式で表現され、したがって、その２進値に従っていくつかのビットプレーンの層に符号化することができる。ビットプレーンレベルの最大数は、最大剰余値を２進形式で表現するのに必要なビット数に設定される。
【００９１】
図１３は、層４００の中のＬＱＰＤ係数と層４０２の中の復号されたＬＱＰＤ係数の差からもたらされたＤＣＴ係数を符号化するのに使用される５つの拡張層４０４、４０６、４０８、４１０、および４１２を示している。この場合、最大ＤＣＴ剰余は、１６であり、この剰余は、５桁の２進数「１００００」で表すことができ、５つの拡張層４０４〜４１２を使用して符号化することができる。８×８アレイの位置（１，１）の係数を考慮されたい。層４００のＬＱＰＤ係数は、「３６」であり、基本層４０２の復号されたＬＱＰＤ係数は、「３５」である。差は「１」（すなわち、３６−３５＝１）であり、この差を５桁の２進値で「００００１」として表すことができる。したがって、各拡張層４０４〜４１２の位置（１，１）が、集合として値「００００１」を定義する。
【００９２】
基本層の中の各ＤＣＴ係数が、符号ビットとともに符号化される。拡張層において、絶対剰余値が、複数の層構造の中で符号化され、符号ビットが一回、符号化される。符号ビットは、別々に符号化され、したがって、図１３の層構造は、ＤＣＴ係数の絶対剰余を示す。一般に、各剰余値の符号ビットは、最上位ビットに続く１ビットで符号化される。２進数「１」が正を表し、２進数「０」が負を表す。例えば、位置（３，４）の符号ビットが、第１の拡張層４０４の中で「０」に符号化され、また位置（１，２）の符号ビットが、第２の拡張層４０６の中で「１」に符号化される。
【００９３】
図１３における層構造によれば、低位の拡張層（例えば、第１の拡張層４０４および第２の拡張層４０６）が、ＤＣＴ剰余のより大きいビット、つまりより上位のビットを効果的に符号化する。例えば、８（すなわち、４３−３５＝８）であるアレイ位置（１，２）に対応するＤＣＴ剰余を考慮されたい。この値は、「０１０００」として符号化され、第２の拡張層４０６の中の「１」ビットをもたらす。同様に、より大きい剰余が位置（３，４）に生じ、第１の拡張層４０４の中で「１」ビットがもたらされる。
【００９４】
基本層および１つ以上の拡張層の中に符号化されたすべてのＤＣＴ係数を集合的に「符号化されたＤＣＴ」または「ＥＣＤ」と呼ぶ。例えば、第１の拡張層４０４が、低位の拡張層として符号化されたと想定する。ＥＣＤ係数は、基本層４０２および第１の拡張層４０４の中のＤＣＴ係数の合計である。
【００９５】
図１４は、基本層４０２および第１の拡張層４０４の中の符号化されたＤＣＴ係数４２０を示している。第１の拡張層４０４は、８×８アレイの中の位置（３，４）に単一の２進数「１」を有することに留意されたい。この「１」ビットは、５ビット数「１××××」の中の最上位ビットであり、したがって、値１６を表す。基本層４０２の対応する位置（３，４）の値「０」に１６を加算することにより、位置（３，４）において符号化された層４２０の中で示される通り、「１６」の絶対符号化値がもたらされる。この場合も、次の１ビットにより、負の符号が規定される。この場合、次のビットは、「０」であり、負を示す。
【００９６】
図１５は、層４００の中のＬＱＰＤ係数（図１１）と層４２０の中のＥＣＤ係数（図１４）の差から導出された層４３０の中の低品質ＤＣＴ剰余を示している。この剰余は、位置（４，３）における１５の最大絶対値から０の最小絶対値までの範囲にある。
【００９７】
図１６は、「コーストガード」シーケンスの第３のフレームの第３９８のブロックの中の第２の拡張層から予測された予測拡張層４４０の例としての１組の高品質予測ＤＣＴ（ＨＱＰＤ）係数を示している。より高品質の拡張層が基準として使用されるため、予測イメージが元のイメージにより近くなるものと予期される。この結果、予期されるのは、ＨＱＰＤ係数に関連する剰余が、ＬＱＰＤ係数に関連する剰余より小さくなるはずであり、これにより、より高い符号化効率が可能になることである。ただし、常にそうなるわけではない。
【００９８】
図１７は、層４３０の中のＨＱＰＤ係数と層４２０の中のＥＣＤ係数の差から導出された層４５０の中の高品質ＤＣＴ剰余を示している。高品質ＤＣＴ剰余を層４３０の中の低品質ＤＣＴ剰余（図１５）と比較すると、剰余には大きな幅があることが明白である。つまり、異なる品質の層を基準として使用することによって引き起こされる剰余値の変動が存在する。また、すべての個々の高品質ＤＣＴ剰余が、対応する低品質ＤＣＴ剰余よりも小さいわけではないのも明白である。例えば、位置（２，１）および（１，２）における「２９」および「１０」の高品質ＤＣＴ剰余は、それぞれ、「１０」および「８」の対応する低品質ＤＣＴ剰余より大きい。さらに、位置（２，１）における高品質ＤＣＴ剰余は、「２９」であり、この剰余は、拡張層１が既にビットストリームの一部として形成されているため、剰余の４つのビットプレーンによって許容される符号化範囲を超える。この場合、符号化効率は、良好な方法により、運悪く、利用可能なビットプレーンの数を超過することがもたらされることに起因して、急速に低下する。高品質ＤＣＴ係数の自乗平均（ｍｅａｎ  ｓｑｕａｒｅ）は、低品質ＤＣＴ係数の自乗平均より小さいが、異なる品質の層を基準として使用することに起因して変動するいくつかの個々のＤＣＴ剰余が、やはり存在する。
【００９９】
符号化効率を向上させる事前予測ビットプレーン符号化
ビデオ配信システム６０（図２）を異なる品質の複数の予測基準を使用することによって引き起こされる変動を効率的になくすように構成する。理想的には、この変動をなくすため、ＨＱＰＤ係数も、基本層および低位の拡張層の中で符号化しなければならない。ただし、実際には、ＬＱＰＤ係数だけが、基本層および低位の拡張層の中で実際に符号化される。したがって、剰余の変動を効果的になくすため、基本層および拡張層の中に符号化されたＤＣＴ係数からＨＱＰＤ係数を予測しなければならない。
【０１００】
したがって、ビデオエンコーダ８０は、２つの基準層のＤＣＴ係数、および符号化ＤＣＴ（ＥＣＤ）係数からＨＱＰＤを予測するように構成する。ＨＱＰＤ係数は、デコーダ９８の中で明確に利用可能ではないが、基準層のＤＣＴ係数、および符号化ＤＣＴ係数は、エンコーダにおいても、デコーダにおいてもともに利用可能である。図３に示す通り、エンコーダ８０およびデコーダ９８は、それぞれ、ビットプレーン符号化に関するＨＱＰＤ係数の予測を行う、事前予測ビットプレーンコーダ（ＡＢＰＣ）８６および９９を備えている。
【０１０１】
以下の説明は、剰余の変動を最小限に抑える、またはなくすのに使用することができる係数を予測するための２つの可能な方法を提示する。第１の方法は、損失なしに再構成されたイメージを回復できる。第２の方法は、すべての層における再構成されたイメージに何らかの軽微な誤りをもたらすが、低い計算上の複雑さのため、リアルタイムの用途に非常に適している。
【０１０２】
Ａ．予測方法１
どのようにＨＱＰＤ係数が予測されるかを示すため、まず、以下の通り表すことのできるＬＱＰＤ係数を考慮されたい。
【０１０３】
ＬＱＰＤ＝ＤＣＴo−ＤＣＴl                              （１）
【０１０４】
ただし、ＤＣＴoは、元のイメージのＤＣＴ係数を表し、ＤＣＴlは、動き補償の後の前の基本層の予測イメージのＤＣＴ係数を表す。基本層および低位の拡張層の中で符号化された再構成されたＤＣＴ係数を以下の通り記述することができる。
【０１０５】
【数１１】
0004842486.tif 000012
【０１０６】
モジュラー関数
【０１０７】
【数１２】
0004842486.tif 000013
【０１０８】
は、複素量子化を表し、この量子化は、基本層の中のスカラ量子化、および低位の拡張層の中のビットプレーン量子化を含む。モジュラー関数
【０１０９】
【数１３】
0004842486.tif 000014
【０１１０】
は、複素量子化に関する逆量子化を表す。値Ｑは、スカラ量子化における量子化されたステップであるだけでなく、スカラ量子化およびビットプレーン量子化を含む量子化されたパラメータも表す。
【０１１１】
ＨＱＰＤ係数は、以下の通り表される。
【０１１２】
ＨＱＰＤ＝ＤＣＴo−ＤＣＴh                                （３）
ただし、ＤＣＴhは、動き補償の後の前の拡張層の予測イメージのＤＣＴ係数を表す。
【０１１３】
低品質予測と高品質予測の間の剰余の変動をなくすため、この符号化スキームは、ＨＱＰＤ係数に対応するＥＣＤ値、
【０１１４】
【数１４】
0004842486.tif 000015
【０１１５】
を予測する。
【０１１６】
【数１５】
0004842486.tif 000016
【０１１７】
方程式（１）、（２）、および（３）を方程式（４）に統合すると、予測ＥＣＤ値が、以下の通り得られる。
【０１１８】
【数１６】
0004842486.tif 000017
【０１１９】
方程式（５）から、予測値
【０１２０】
【数１７】
0004842486.tif 000018
【０１２１】
は、２つの部分から成る。第１の項は、符号化されたＤＣＴ値、ＥＣＤ、および２つの予測イメージのＤＣＴ係数、ＤＣＴoおよびＤＣＴhに関する。この第１の項の中の要素は、エンコーダ８０とデコーダ９８の両方において利用可能である。
【０１２２】
第２の項は、高位の拡張層の中で符号化されるＬＱＰＤ係数に対応する量子化された誤りである。この第２の項は、デコーダ９８にとって利用可能ではない。ただし、その確率密度分布を使用して
【０１２３】
【数１８】
0004842486.tif 000019
【０１２４】
を予測することができる。使用することができる２つの可能な分布は、ラプラス分布および一般ガウス密度（Ｇｅｎｅｒａｌｉｚｅｄ  Ｇａｕｓｓｉａｎ  Ｄｅｎｓｉｔｙ）（ＧＧＤ）分布である。ラプラス分布に関しては、Ｒ．Ｃ．ＲｅｉｎｉｎｇｅｒおよびＪ．Ｄ．Ｇｉｂｓｏｎ著、「Ｄｉｓｔｒｉｂｕｔｉｏｎ  ｏｆ  ｔｗｏ−ｄｉｍｅｎｔｉｏｎａｌ  ＤＣＴ  ｃｏｅｆｆｉｃｉｅｎｔｓ  ｆｏｒ  ｉｍａｇｅｓ」という名称の論文、ＩＥＥＥ  ｔｒａｎｓ．ｃｏｍ．Ｖｏｌ  ３１、８３５〜８３９ページ、（１９８３年）が、イメージのほどんどのＤＣＴ係数が相当によくラプラス分布としてモデル化されることをコルモゴロフ−スミルノフ（Ｋｏｌｍｏｇｒｏｖ−Ｓｍｉｒｎｏｖ）試験の使用が示すのを説明している。ＧＧＤは、Ｆ．Ｍｕｌｌｅｒ著、「Ｄｉｓｔｒｉｂｕｔｉｏｎ  ｓｈａｐｅ  ｏｆ  ｔｗｏ−ｄｉｍｅｎｓｉｏｎａｌ  ＤＣＴ  ｃｏｅｆｆｉｃｉｅｎｔｓ  ｏｆ  ｎａｔｕｒａｌ  ｉｍａｇｅ」という名称の論文、Ｅｌｅｃｔｒｏｎ．Ｌｅｔｔｅｒ、Ｖｏｌ  ２９、１９３５〜１９３６ページ、（１９９３年）で説明されており、著者は、ＧＧＤ関数でイメージのＤＣＴ係数をモデル化することが、ラプラシアンと比べて相当に小さい試験統計上のχ2をもたらすことを示している。
【０１２５】
フレーム間のＤＣＴ係数をゼロ平均ＧＤＤでモデル化することができるため、ＧＧＤ分布の方がより好ましい。一般ガウス密度関数は、以下の通り与えられることを思い起されたい。
【０１２６】
【数１９】
0004842486.tif 000020
ただし、
【０１２７】
【数２０】
0004842486.tif 000021
【０１２８】
上式で、σxは、標準偏差であり、ｖは、形状パラメータである。ガウス密度の場合、形状パラメータは、２（すなわち、ｖ＝２．０）であり、一方、ラプラス分布の場合、形状パラメータは、１（すなわち、ｖ＝１．０）である。導出したパラメータを使用して、１組のサンプルに関するＧＧＤソースを迅速かつ正確にモデル化することができる。ＧＧＤ形状における形状パラメータｖのこの柔軟性により、ＤＣＴ係数の多様な統計上の特性を効率的にキャプチャすることが可能となる。
【０１２９】
方程式（５）は、ＧＧＤ分布を有する記号Ｘとガウス分布を有する雑音εの合計として書き直すことが可能である。
【０１３０】
Ｙ＝Ｘ＋ε                                                    （７）
【０１３１】
ただし、Ｘ＝ＥＣＴ＋ＤＣＴl−ＤＣＴhかつε＝ＬＱＰＤ−ＥＣＤ
【０１３２】
雑音εは、デコーダにとっては未知の変数であるため、正確なＹは、デコーダにおいて入手可能ではない。予測値
【０１３３】
【数２１】
0004842486.tif 000022
【０１３４】
は、ゼロビン（ｂｉｎ）のステップおよびゼロではないビンのステップを含む統計分布特性を有する最適量子化Ｙから導出される。１つの問題は、ゼロビンのステップおよびゼロではないビンのステップをどのように計算するかに関する。
【０１３５】
【数２２】
0004842486.tif 000023
【０１３６】
ただし、θは、最適量子化されたパラメータである。
【０１３７】
最適量子化ビンは、以下のひずみ基準が最小化されるようにするものである。
【０１３８】
【数２３】
0004842486.tif 000024
ただし、
【０１３９】
【数２４】
0004842486.tif 000025
【０１４０】
パラメータσは、記号εの標準分散を表す。Ｘの一般ガウス分布のため、Ｓ．Ｇｒａｃｅ  Ｃｈａｎｇ、Ｂｉｎ  Ｙｕ、およびＭａｒｔｉｎ  Ｖｅｔｔｅｒｌｉ著、「Ｌｏｓｓｙ  Ｃｏｍｐｒｅｓｓｉｏｎ  ａｎｄ  Ｗａｖｅｌｅｔ  Ｔｈｒｅｓｈｏｌｄｉｎｇ  ｆｏｒ  Ｉｍａｇｅ  Ｄｅｎｏｉｓｉｎｇ」という名称の、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇに提出された論文で説明される方法は、以下の通り、ほぼ最適なしきい値を得る。
【０１４１】
【数２５】
0004842486.tif 000026
【０１４２】
ゼロビンのステップは、２にＴ（ｖ，σx）を掛けたものに等しい。量子化されたＹは、Ｔより大きい場合、ゼロではない。そうではない場合、量子化されたＹは、ゼロに設定される。パラメータσは、記号εから推定することができる。パラメータσxおよびｖは、Ｒ．Ｌ．ＪｏｓｈｉおよびＴ．Ｒ．Ｆｉｓｃｈｅｒ著、「Ｃｏｍｐａｒｉｓｏｎ  ｏｆ  ｇｅｎｅｒａｌｉｚｅｄ  Ｇａｕｓｉａｎ  ａｎｄ  Ｌａｐｌａｃｉａｎ  ｍｏｄｅｌｉｎｇ  ｉｎ  ＤＣＴ  ｉｍａｇｅ  ｃｏｄｉｎｇ」という名称の論文、ＩＥＥＥ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｌｅｔｔｅｒｓ、Ｖｏｌ  ２、ｎｏ  ５、８１〜８２ページ、（１９９５年）で説明される方法に従って記号Ｘから推定することができる。
【０１４３】
【数２６】
0004842486.tif 000027
ただし、
【０１４４】
【数２７】
0004842486.tif 000028
【０１４５】
記号Ｘは、エンコーダ８０とデコーダ９８の両方において利用可能である。パラメータσxおよびｖは、したがって、ビットストリームの一部として伝送するのではなく、同じ方法を使用してデコーダ９８の中で計算することができる。パラメータσは、デコーダ９８の中で推定することができないが、各層に関する何らかの値は、経験的に導出することができる。
【０１４６】
ゼロではないビンは、一様しきい値量子化器でＧＧＤランダム変数を量子化することによって判定することができる。図１８は、例としての一様しきい値量子化器４８０、再構成されたレベルを表す中心、およびこの中心の各側にあるΔの等間隔のｋ個のレベルを有するゼロではないビンを示している。境界ｂl-1およびｂlを有するｒlの再構成された値は、以下の通りである。
【０１４７】
【数２８】
0004842486.tif 000029
予測値
【０１４８】
【数２９】
0004842486.tif 000030
は、
【０１４９】
【数３０】
0004842486.tif 000031
【０１５０】
の復号に等しい。
【０１５１】
【数３１】
0004842486.tif 000032
【０１５２】
パラメータθは、ゼロビンに関してＴである。それ以外の場合、パラメータθは、ゼロではないビンに関してｂlに等しい。前述のプロセスは、変動を効果的になくすことができる統計的な意味で最適な値
【０１５３】
【数３２】
0004842486.tif 000033
【０１５４】
を得ることができる。高位の拡張層の中で符号化されるＤＣＴ係数は、ＨＱＰＤと予測値
【０１５５】
【数３３】
0004842486.tif 000034
【０１５６】
の間の差である。
【０１５７】
特別ケースでは、ＤＣＴ剰余は、それでも小さい確率のイベントとして変動する。例えば、Ｘ＝ＥＣＴ＋ＤＣＴl−ＤＣＴhが、しきい値Ｔより小さい値であるのが可能であるが、値ＬＱＰＤ−ＥＣＤは、それでも、剰余ビットプレーンによって示される最大値に近い可能性がある。そのような場合、合計は、剰余ビットプレーンによる最大値を超える可能性がある。Ｘが３に等しいと想定すると、予測値
【０１５８】
【数３４】
0004842486.tif 000035
【０１５９】
は、しきい値θより小さいため、ゼロである。ＬＱＰＤ−ＥＣＤが１５に等しい場合、合計は、１８に等しく、これは、４つの剰余ビットプレーンによって許容される符号化範囲１５を超える。このケースに関する解決策は、ＬＱＰＤ−ＥＣＤを先に進めて低位の拡張層に量子化することである。
【０１６０】
例えば、１５の値ＬＱＰＤ−ＥＣＤを５桁の２進値で「０１１１１」として表すことができ、最上位ビットは、拡張層４０６の中にある。値ＬＱＰＤ−ＥＣＤを１６として量子化して、その剰余は、「−１」である。この場合、値ＬＱＰＤ−ＥＣＤの最上位ビットは、拡張層４０４を先に進める。このことは、第１の拡張層の中で値１６が符号化され、最後の拡張層の中で値−１が符号化されることを意味する。コストとして、変動が最大範囲を超えるのを回避するため、２つの符号ビットが符号化される。前述した通り、符号ビットは、ＭＳＢに続いて符号化する。２つの符号ビットが存在する場合、第１の符号ビットは、低位の拡張層の中で符号化し、また第２の符号ビットは、基準を変更する層の中で符号化する。
【０１６１】
２つの符号ビットは、２つの先行条件で高い効率で符号化することができる。第１に、第２の符号ビットは、ＭＳＢが低位の層の中で符号化されている係数の中でだけ現れる。第２に、第２の符号は、最大範囲を超える変動が小さい確率のイベントであるため、ほとんど場合、第１の符号と同じである。
【０１６２】
予測されるプロセスは、以下の通り示される。
【０１６３】
（１）設定する
【０１６４】
ＤＣＴlh＝ＤＣＴl−ＤＣＴh  ΔＤＣＴ＝ＥＣＤ＋（ＤＣＴl−ＤＣＴh）
【０１６５】
しきい値：Ｔｈ＝２k+1、ｋは、基準が変るインデックス層である。
Ｑは、基本層のスカラ量子化されたパラメータである。
最適予測パラメータ：ｑ＝θ
【０１６６】
（２）予測する
【０１６７】
【数３５】
0004842486.tif 000036
【０１６８】
【数３６】
0004842486.tif 000037
【０１６９】
（３）ＨＱＰＤ−
【０１７０】
【数３７】
0004842486.tif 000038
【０１７１】
が、最大範囲を超える場合、
ＥＣＤを調整し、次に（２）に行く
【０１７２】
Ｂ．予測方法２
事前予測ビットプレーン符号化に基づく第２の方法は、基本層が、スカラ量子化されたＬＱＰＤに関してＤＣＴ係数を符号化することである。すべての拡張層が、ＨＱＰＤ係数と復号されたＬＱＰＤ係数の差を符号化する。この方法の違いは、低位の拡張層の中で符号化されるＤＣＴ係数が、ＬＱＰＤ係数ではなく、ＨＱＰＤ係数から導出されることである。この解決策は、基準を変更する最中にコストの高い予測動作を回避することができるため、計算上の複雑さの点で低コストのものである。同時に、何らかの誤りが、低位の拡張層の中にもたらされる。低位の拡張層の中で、ＨＱＰＤ係数と復号されたＬＱＰＤ係数の差が、ＬＱＰＤ係数と復号されたＬＱＰＤ係数の差に取って代って符号化され、伝送される。この置換が小さな誤りを導入する。
【０１７３】
何らかの軽微な誤りが、低位の拡張層の中であらわれるが、基本層の中に全く誤りが存在しないのが幸いである。この結果、低位の拡張層の中の軽微な誤りは、ＰＦＧＳの誤り回復における優れた特性のため、１つまたは２つのフレームの中でだけ伝播する。例えば、図４のフレーム２の拡張層１０４の中の何らかの誤りは、フレーム３のすべての拡張層、ならびにフレーム４の拡張層１０６および１０８だけに影響を与える。この解決策は、計算上の複雑さの点で低コストのため、リアルタイムの用途に関して見合うものである。
【０１７４】
事前予測ビットプレーン符号化を使用する例としてのエンコーダ
図１９は、サーバ７４によって実装されて、図３のエンコーダ８０によって示される通り、ネットワーク６４を介して配信するのに先立ってビデオデータファイルを符号化することができるビデオエンコーダの一例としての実施形態を示している。図１９で、ビデオエンコーダは、図９のエンコーダ８０と区別するため、一般的に番号８０′が付けられている。図９のエンコーダ８０と同様に、ビデオエンコーダ８０′は、ＰＦＧＳ階層符号化スキームに従ってビデオデータを符号化するように構成されている。ただし、エンコーダ８０とは異なり、ビデオエンコーダ８０′は、ＨＱＰＤ係数を予測し、ＨＱＰＤ係数に基づいて高品質の剰余を符号化して剰余の変動を除去または低減し、これにより、符号化効率を向上させる。
【０１７５】
ビデオエンコーダ８０′は、イメージ予測のために複数の基準層を使用するように設計されている。詳細には、示すアーキテクチャは、２つの再構成された層が基準として使用される図４のＰＦＧＳ階層符号化スキームを実施する。ビデオエンコーダ８０′は、２つのフレームバッファ５０２および５０４を使用し、これにより、符号化効率と、メモリおよび計算上の複雑さの間で良好なトレードオフが提供される。第１のフレームバッファ５０２を使用して、再構成された基本層を予測フレームの基本層および低位の拡張層のための基準として保存する。第２のフレームバッファ５０４を使用して、前のフレームの中の再構成された拡張層をより高品質の拡張層のための基準として保存する。
【０１７６】
ビデオエンコーダ８０′は、基本層を符号化されたビットストリームに符号化する基本層エンコーダ５０６、および１つ以上の拡張層を符号化されたビットストリームに符号化する２つの拡張層エンコーダ５０８および５０９を有する。また、ビデオエンコーダは、方程式（５）で与えられる予測符号化値
【０１７７】
【数３８】
0004842486.tif 000039
【０１７８】
の第１の項を生成する事前予測ビットプレーンコーダ（ＡＰＢＩＣ）５１０も有する。予測符号化値
【０１７９】
【数３９】
0004842486.tif 000040
【０１８０】
が、ＨＱＰＤ係数の良好な予測を提供する。
【０１８１】
ビデオエンコーダ８０′が、ビデオデータ入力ストリームを受信し、着信するイメージフレームを動き推定器２０４に導き、フレームの中のオブジェクトの移動を推定する。動き推定器２０４が、現行の入力に関する基準として、フレームバッファ５０２の中にストアされた前の再構成されたフレームを受け取る。動き推定器２０４は、結果を２つの動き補償器２０６および２０７に出力し、次に、動き補償器２０６および２０７が、予測イメージを生成する。第１の動き補償器２０６は、フレームバッファ５０２の中の再構成された基本層を基準とすることによってイメージを予測する。第２の動き補償器２０７は、フレームバッファ５０４の中の再構成された拡張層を基準とすることによってイメージを予測する。２つの補償器を示しているが、この２つを単一の構成要素として統合することも可能である。動き推定器２０４および動き補償器２０６、２０７は、従来のＭＰＥＧ符号化において使用される周知の構成要素である。
【０１８２】
予測イメージの低品質の基本層と元のイメージの間の差が、合計５２０において計算される。この差が、一次離散コサイン変換（ＤＣＴ）５２２を使用して変換され、方程式（１）で前述した通り、動き補償からもたらされる低品質予測ＤＣＴ（ＬＱＰＤ）剰余が生成される。ＬＱＰＤ係数が量子化器（すなわち、「Ｑ」モジュール）５２４によって量子化され、可変長コーダ（ＶＬＣ）５２６によって基本層のビットストリームに圧縮される。
【０１８３】
また、量子化器５２４によって出力された量子化されたＬＱＰＤ係数が、復号器（すなわち、「Ｑ-1」モジュール）５２８によって復号される。復号されたＬＱＰＤ係数が、逆ＤＣＴ（ＩＤＣＴ）５３０を通るようにされ、基本層が再構成される。再構成された基本層をフレームバッファ５０２の中にストアする。
【０１８４】
拡張層エンコーダ５０８が、ＬＱＰＤ係数（例えば、層４００の中の係数）および復号されたＬＱＰＤ（例えば、層４０２の中の係数）を基本層エンコーダ５０６から受け取る。これらの係数の差が、合計５４０において計算されて、図１３に示す通りビットプレーン符号化を使用して拡張層のビットストリームに符号化することができるＤＣＴ剰余が形成される。「最大発見（ｆｉｎｄ  ｍａｘ）」モジュール５４２が、ＤＣＴ剰余の中のすべての絶対値の最大値を計算して、その剰余を表現するのに必要なビットプレーンの数を判定する。次に、ＤＣＴ剰余は、ビットプレーンコーダ５４４によって複数のビットプレーンに符号化され、可変長コーダ（ＶＬＣ）５４６によって拡張層のビットストリームに圧縮される。複数のＶＬＣを示しているが、基本層のデータおよび拡張層のデータに対して行われるすべての圧縮に関して共通のＶＬＣを使用できることに留意されたい。
【０１８５】
合計５５０が、ビットプレーンコーダ５４４から出力される１つ以上のビットプレーンに含まれるＤＣＴ剰余、および基本層エンコーダ５０６からの復号されたＬＱＰＤ係数を合計する。これは、基本的に図１４に示す動作であり、基本層４０２の復号されたＤＣＴ係数が第１の拡張層４０４に加算されて、符号化ＤＣＴ（ＥＣＤ）係数４２０が生成される。逆ＤＣＴ５５２が、ＥＣＤ係数に関する逆変換を計算して拡張層を再構成する。再構成された拡張層は、スイッチ５５６の位置に依存して、動き補償器２０６からの予測基本層、または動き補償器２０７からの予測拡張層と合計５５４において合計される。
【０１８６】
予測イメージの高品質の拡張層と元のイメージの間の差が、合計５６０において計算される。この差がＤＣＴ変換５６２を使用して変換されて、方程式（３）で前述した通り、動き補償からもたらされる高品質予測ＤＣＴ（ＨＱＰＤ）剰余が生成される。ＨＱＰＤ係数は、合計５６４に入力される。
【０１８７】
事前予測ビットプレーンコーダ５１０が、動き補償器２０６からの基本層、動き補償器２０７からの拡張層、および合計５５０からのＥＣＤ係数を受け取る。ＤＣＴモジュール５７０および５７２が、その基本層および拡張層を変換してＤＣＴ係数を生成し、次に、このＤＣＴ係数がＥＣＤ係数とともに予測モジュール５７４に入力される。
【０１８８】
予測モジュール５７４は、方程式（５）の予測値
【０１８９】
【数４０】
0004842486.tif 000041
【０１９０】
の第１の項を計算し、この第１の項は、２つの予測イメージＤＣＴlおよびＤＣＴhのＥＣＤ係数およびＤＣＴ係数を含む。予測モジュール５７４の出力が、予測されたＨＱＰＤ係数である。
【０１９１】
合計５６４が、ＨＱＰＤ係数と予測値
【０１９２】
【数４１】
0004842486.tif 000042
【０１９３】
の第１の項の差を計算して１組の高品質ＤＣＴ剰余を生成する。これは、基本的に図１７に示す動作であり、例外は、符号化されたＤＣＴ層が、予測された
【０１９４】
【数４２】
0004842486.tif 000043
【０１９５】
係数を含むことである。合計５６４によって出力される高品質ＤＣＴ剰余は、より小さい剰余および相当に少ない変動を示す。
【０１９６】
「最大発見」モジュール５８０が、高品質ＤＣＴ剰余の中のすべての絶対値の最大値を計算して、その剰余を表現するのに必要なビットプレーン（ｂｉｔ−ｐｌａｎｅｓ）の数を判定する。次に、この高品質のＤＣＴ剰余が、ビットプレーンコーダ５８２によって複数のビットプレーンに符号化され、可変長コーダ（ＶＬＣ）５８４によって拡張層のビットストリームに圧縮される。
【０１９７】
図２０は、ネットワーク６４（図３）を介して受信されたビデオデータファイルを復号化する、クライアント６６によって実装されることが可能な補完的ビデオデコーダ９８′を示している。デコーダ９８′は、基本層に関してビットストリームを復号化するビット層デコーダ６０２、およびビットストリームを復号化して拡張層を回復する２つの拡張層デコーダ６０４および６０６を有する。また、デコーダ９８′は、基本的に図１９のエンコーダ側ＡＰＢＩＣ５１０と同一である事前予測ビットプレーンコーダ（ＡＰＢＩＣ）６１０も有する。
【０１９８】
可変長デコーダ（ＶＬＤ）モジュール６２０が、基本層に関するビットストリームを復号化して量子化されたＬＱＰＤ係数を回復する。復号化からの動きベクトル（ＭＶ）が、動き補償器６２２および６２４に渡される。これらの係数が、復号器（すなわち、「Ｑ-1」モジュール）６２６によって復号され、次に、逆ＤＣＴ（ＩＤＣＴ）変換６２８を通るようにされて、基本層が再構成される。再構成された基本層は、合計６３０を介して動き補償器６２２からの予測された基本層と合計され、クリッピング（ｃｌｉｐｐｉｎｇ）モジュール６３２によってクリップされ、出力される。また、再構成された基本層は、フレームバッファ６３４の中にストアされる。
【０１９９】
ＶＬＤとビットプレーンデコーダの組み合わせのモジュール６４０が、低品質のＤＣＴ剰余を搬送するビットストリームを復号化する。回復されたＤＣＴ係数が、合計６４２を介して、基本層デコーダ６０２からの復号されたＬＱＰＤ係数と合計されて、符号化ＤＣＴ（ＥＤＣ）係数が再現される。このＥＣＤ係数が、ＩＤＣＴ変換器６４４に渡されて拡張層が再構成される。再構成された拡張層は、合計６４６を介して、スイッチ６４８の位置に依存して、動き補償器６２２からの予測された基本層または動き補償器６２４からの予測された拡張層と合計される。補償された拡張層が、クリッピングモジュール６５０によってクリップされ、出力される。また、再構成された拡張層は、フレームバッファ６５２の中にストアされる。
【０２００】
予測ビットプレーンコーダ６１０が、動き補償器６２２からの基本層、動き補償器６２４からの拡張層、および合計６４２からのＥＣＤ係数を受け取る。ＤＣＴモジュール６６０および６６２が、基本層および拡張層を変換してＤＣＴ係数を生成し、次に、このＤＣＴ係数がＥＣＤ係数とともに予測モジュール６６４に入力される。予測モジュール６６４は、方程式（５）の予測値
【０２０１】
【数４３】
0004842486.tif 000044
【０２０２】
の第１の項を計算し、この第１の項は、２つの予測イメージＤＣＴlおよびＤＣＴhのＥＣＤ係数およびＤＣＴ係数を含む。
【０２０３】
ＶＬＤとビットプレーンデコーダの組み合わせのモジュール６７０が、高品質のＤＣＴ剰余を搬送するビットストリームを復号化する。合計６７２が、高品質のＤＣＴ係数と予測値
【０２０４】
【数４４】
0004842486.tif 000045
【０２０５】
の第１の項を合計してＨＱＰＤ係数を生成する。逆ＤＣＴ変換器６７４が、このＨＱＰＤ係数から拡張層を再構成する。再構成された拡張層が、合計６７６において動き補償器６２４の出力によって補償され、次に、クリッピングモジュール６７８によってクリップされる。
【０２０６】
図２１は、事前予測ビットプレーン符号化スキームに基づくが、図１９のエンコーダ８０′の単純化したバージョンである別の例としてのビデオエンコーダ８０″を示している。すなわち、エンコーダ８０′とは異なり、図２１のビデオエンコーダ８０″は、拡張層の中で符号化されるＤＣＴ剰余が、ＨＱＰＤ係数と基本層の再構成されたＤＣＴ係数の差と等しくなるように変更されている。すべての拡張層が、ＨＱＰＤ係数と基本層の中の復号された係数の間の剰余を符号化する。この結果、予測は全く使用されない。したがって、このエンコーダ８０″は、コストの高い予測動作が取り除かれるため、計算上の複雑さの点で低コストの解決策である。
【０２０７】
ただし、拡張層の中で何らかの誤りがもたらされる。低位の拡張層の中で、ＬＱＰＤ係数とＥＣＤ係数の差ではなく、ＨＱＰＤ係数とＥＣＤ係数の差が、符号化中に何らかの誤りを導入する。幸いなことに、基本層の中に全く誤りが存在しないため、この誤りは抑え込まれる。ＰＦＧＳの誤り回復の優れた特性のため、拡張層の中の誤りは、１つまたは２つのフレームの中でしか伝播しない。この第２の解決策は、計算上の複雑さの点で低コストのため、リアルタイムの用途における可用性が高い。
【０２０８】
図２２は、図２１のビデオエンコーダ８０″に対応する補完的ビデオデコーダ９８″を示している。
【０２０９】
例としての符号化動作
図２３は、図１９および図２１のビデオエンコーダ８０′および８０″によってそれぞれ実施される例としてのビデオ符号化プロセスを示している。このビデオ符号化プロセスは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実施することが可能である。このプロセスを図１９および図２１のエンコーダにさらに参照して説明する。
【０２１０】
このプロセスは、一般に、基本層エンコーダ５０６の動作、低品質拡張層エンコーダ５０８の動作、および高品質拡張層エンコーダ５０９の動作の組み合わせとして説明することができる。ステップ７００で、基本層エンコーダ５０６が基本層を表すビットストリームを符号化する。ステップ７０２で、低品質拡張層エンコーダ５０８が、低品質の拡張層を表すビットストリームを符号化する。これは、動き補償されたイメージの低品質の予測からもたらされる低品質の剰余を符号化することによって行われる。ステップ７０４で、高品質拡張層エンコーダ５０９が、基本層および低品質の拡張層から予測された値に部分的に基づき、高品質の拡張層を表すビットストリームを符号化する。これは、部分的に低品質の剰余から予測された予測高品質剰余を符号化することによって実施することができる。ビットストリームは、ディスク上にストアすること、および／またはネットワークを介してクライアントに伝送することが可能である。
【０２１１】
ステップ７１０〜７１６は、基本層符号化ステップ７００を実施するための１つのサブプロセスを示している。ステップ７１０で、基本層エンコーダ５０６が、フレームバッファ５０２の中にストアされた低品質の再構成された層から、低品質の予測イメージを予測する。この予測イメージは、動き推定器２０４および動き補償器２０６によって判定されるイメージの中のオブジェクトの動きに起因して、元のイメージとは相当に異なる。
【０２１２】
ステップ７１２で、基本層エンコーダ５０６が、一次離散コサイン変換５２２などの変換を使用して低品質の予測イメージを変換して、低品質予測ＤＣＴ（ＬＱＰＤ）係数を生成する。このＬＱＰＤ係数が、量子化器５２４によって量子化され（ステップ７１４）、可変長コーダ５２６によって圧縮される（ステップ７１６）。
【０２１３】
ステップ７２０〜７２６は、低品質拡張層符号化ステップ７０２を実施するための１つのサブプロセスを示している。ステップ７２０で、基本層エンコーダ５０６が、量子化されたＬＱＰＤ係数を復号する。低品質拡張層エンコーダ５０８が、低品質のイメージの予測からもたらされる低品質の剰余を導出する（ステップ７２２）。この低品質の剰余は、ＬＱＰＤ係数と復号されたＬＱＰＤ係数の差として計算される。
【０２１４】
ステップ７２４で、低品質の剰余が、ビットプレーンコーダ５４４を介して符号化されて、符号化ＤＣＴ（ＥＣＤ）係数が形成される。ステップ７２６で、低品質拡張層エンコーダ５０８が、可変長コーダ５４６を使用してそのＥＣＤ係数を圧縮する。
【０２１５】
ステップ７３０〜７４２は、高品質拡張層符号化ステップ７０４を実施するための１つのサブプロセスを示している。ステップ７３０で、高品質拡張層エンコーダ５０９が、第２のフレームバッファ５０４の中にストアされた高品質の再構成されたイメージから、高品質の予測イメージを予測する。この予測イメージは、動き推定器２０４および動き補償器２０７によって判定されるイメージの中のオブジェクトの動きに起因して、元のイメージとは相当に異なっている。ステップ７３２で、高品質拡張層エンコーダ５０９が、一次離散コサイン変換５６２などの変換を使用して高品質の予測イメージを変換して、高品質予測ＤＣＴ（ＨＱＰＤ）係数を生成する。
【０２１６】
この時点で、プロセスは、図１９のエンコーダ８０′が使用されるか、図２１のエンコーダ８０″が使用されるかに依存して、わずかに異なる。エンコーダ８０′が使用される場合、ＡＰＢＩＣ５１０が、ＥＣＤ係数から１組の予測ＨＱＰＤ係数を予測する（ステップ７３４）。次に、高品質拡張層エンコーダ５０９が、ＨＱＰＤ係数と予測ＨＱＰＤ係数の差として高品質の剰余を導出する（ステップ７３６）。
【０２１７】
反対に、エンコーダ８０″が使用される場合、ＡＰＢＩＣ５１０は、取り除かれる。したがって、高品質拡張層エンコーダ５０９は、ＨＱＰＤ係数とＥＣＤ係数の差として高品質の剰余を導出する（ステップ７３８）。
【０２１８】
ステップ７４０で、高品質拡張層エンコーダ５０９が、ビットプレーンコーダ５８２を介して高品質の剰余を符号化する。この符号化された高品質の剰余が、可変長コーダ５８４を使用して圧縮される（ステップ７４２）。
【０２１９】
クライアントが、コンテンツプロバイダからビットストリームを受信する。クライアントにおけるビデオデコーダが、そのビットストリームを復号化して基本層、低品質の剰余、および高品質の剰余を回復する。このデータから、デコーダは、元のビデオイメージを再キャプチャすることができる。
【０２２０】
結論
本発明を構造上の特徴および／または方法上のステップに特有の言葉使いで説明してきたが、頭記の特許請求の範囲で定義される本発明は、説明した特定の特徴またはステップに必ずしも限定されないことを理解されたい。むしろ、特定の特徴およびステップは、請求する発明を実施する好ましい形態として開示している。
【図面の簡単な説明】
【図１】  すべてのより高品質の層を最低品質層つまり基本品質層から予測することができる従来技術の階層符号化スキームを示す図である。
【図２】  フレームが、イントラフレームまたは基準フレームの中の対応する品質の層の構成要素から予測される従来技術の階層符号化スキームを示す図である。
【図３】  コンテンツプロデューサ／プロバイダが、ビデオデータを符号化し、ネットワークを介して符号化したビデオデータをクライアントに転送するビデオ配信システムを示すブロック図である。
【図４】  コンテンツプロデューサ／プロバイダによってビデオデータを符号化するのに使用される階層符号化スキームを示す図である。
【図５】  図４と同様であり、ネットワークを介して伝送される層の数をどのように帯域幅の可用性に応じて動的に変更できるかをさらに示す図である。
【図６】  図４と同様であり、欠落している層または誤りが蔓延している層をどのように再構成したフレームの中の基準層から再構成できるかをさらに示す図である。
【図７】  動きベクトルに従って基準フレームの中の基準マクロブロックから予測された予測フレームの中のマクロブロックを示す図である。
【図８】  図４に示す階層符号化スキームを使用してビデオデータを符号化するための方法を示す流れ図である。
【図９】  コンテンツプロデューサ／プロバイダにおいて実装される例としてのビデオエンコーダを示すブロック図である。
【図１０】  図９のビデオエンコーダによって実施されるビデオデータを符号化するための方法を示す流れ図である。
【図１１】  符号化される例としての元の低品質予測ＤＣＴ係数を示す図である。
【図１２】  量子化後の図１１の層を示す図である。
【図１３】  図１１の層の係数と図１２の層の係数の差からもたらされる剰余を符号化するのに使用する複数の拡張層を示す図である。
【図１４】  基本層および第１の拡張層の中で符号化された１組の係数を示す図である。
【図１５】  図１１の層の係数と図１４の層の係数の差からもたらされる１組の剰余を示す図である。
【図１６】  拡張層などの高品質のイメージ層から予測された層を示す図である。
【図１７】  図１６の層の係数と図１４の層の係数の差からもたらされる１組の剰余を示す図である。
【図１８】  一様しきい値量子化器（ｕｎｉｆｏｒｍ  ｔｈｒｅｓｈｏｌｄ  ｑｕａｎｔｉｚｅｒ）によって実施される量子化レベルを示す図である。
【図１９】  コンテンツプロデューサ／プロバイダにおいて実装される別の例としてのビデオエンコーダを示すブロック図である。
【図２０】  図１９のビデオエンコーダに対して補完的なクライアントにおいて実装される例としてのビデオデコーダを示すブロック図である。
【図２１】  コンテンツプロデューサ／プロバイダにおいて実装されるさらに別の例としてのビデオエンコーダを示すブロック図である。
【図２２】  図２１のビデオエンコーダに補完的なクライアントにおいて実装される別の例としてのビデオデコーダを示すブロック図である。
【図２３】  図１９および図２１のビデオエンコーダによって実施されるビデオ符号化プロセスを示す流れ図である。
【図１】
0004842486.tif 000046
【図２】
0004842486.tif 000047
【図３】
0004842486.tif 000048
【図４】
0004842486.tif 000049
【図５】
0004842486.tif 000050
【図６】
0004842486.tif 000051
【図７】
0004842486.tif 000052
【図８】
0004842486.tif 000053
【図９】
0004842486.tif 000054
【図１０】
0004842486.tif 000055
【図１１】
0004842486.tif 000056
【図１２】
0004842486.tif 000057
【図１３】
0004842486.tif 000058
【図１４】
0004842486.tif 000059
【図１５】
0004842486.tif 000060
【図１６】
0004842486.tif 000061
【図１７】
0004842486.tif 000062
【図１８】
0004842486.tif 000063
【図１９】
0004842486.tif 000064
【図２０】
0004842486.tif 000065
【図２１】
0004842486.tif 000066
【図２２】
0004842486.tif 000067
【図２３】
0004842486.tif 000068