(57)【特許請求の範囲】
【請求項１】
マルチプロセッサエンコーダにより、並列に、複数のピクチュアをエンコードするのに先立ち、未来のある時点において、符号化されたピクチュアのバッファのフルネスの程度を推定することによって前記マルチプロセッサエンコーダを操作する方法であって、
第１のビデオエンコード手順を用いて複数のピクチュアのエンコードされたバージョンを表わすのに必要なビット数を予測する工程と、
前記未来のある時点に先行する第１の時点で符号化されたピクチュアのバッファのフルネスの程度を算出する工程と、
以前にエンコードされた複数のピクチュアのエンコードされたバージョンを表わすのに必要な以前に予測されたビット数を以前にエンコードされた複数のピクチュアを表わすのに必要な実際のビット数を比較することによって、不整合項を生成する工程と、
前記第１の時点で符号化されたピクチュアのバッファの算出されたフルネスの程度と前記第１のピクチュアのエンコードされたバージョンを表わすのに必要な予測されたビット数と前記不整合項を組み合わせて前記未来のある時点で符号化されたピクチュアのバッファの推定されたフルネスの程度を算出する工程を具備し、
前記将来の時点が前記第１のピクチュアのエンコードされたバージョンが符号化されたピクチュアにロードされる時点に対応すると共に、前記第１の時点が符号化されたピクチュアのバッファのフルネスの程度が正確に算出される最も近接する時点を現している方法。
【発明の詳細な説明】
【背景技術】
【０００１】
発明の背景
規格Ｈ．２６４が以下に特別に参照されるけれども、記載された思想や原理は特定のビデオコーディング規格に依存するものではなく、規格ＭＰＥＧ−２、規格ＩＳＯ  ＭＰＥＧ−４ｐａｒｔ１０、規格ＡＶＣ、又は、最近の規格ＳＭＰＴＥ  ＶＣ−１にとって等しく有効である。
【０００２】
映像圧縮部門においては、特にテレビジョン放送やビデオ会議のようなリアルタイム用途において、ビデオエンコードの効率を永続的に改善する絶え間ない要求が存在する。最近の規格ＩＴＵ−Ｔ  Ｈ．２６４は、この効率改善要求に合致するように設計されているが、それに応じてアルゴリズムの複雑さが増す犠牲を伴う。例えば、Ｈ．２６４は同じ画質を得るためにＭＰＥＧ−２ビデオストリームのビットレートの約半分を必要とするが、一方、Ｈ．２６４エンコーダの実装の複雑さはＭＰＥＧ−２エンコーダに比べて桁違いに大きくなる。
【０００３】
典型的な例では、一連のピクチュアからなる非圧縮ビデオストリームがビデオエンコーダによって受信され、そして、ビデオエンコーダはビデオシーケンス内の各ピクチュアのエンコードされたバージョンを生成し、それによって、非圧縮ビデオストリームのエンコードされたバージョンを生成する。そして、エンコードされたビデオストリームは固定ビットレート（ＣＢＲ）チャンネル上でビデオデコーダに送信され、そして、ビデオデコーダは、エンコードされたビデオストリームをデコードし、それによって、元の非圧縮ビデオストリームから理論上見た目に区別の付かない非圧縮ビデオストリームを生成する。
【０００４】
エンコーダがビデオシーケンスのピクチュアの圧縮されたバージョンを生成するために用いるビットが増えれば増えるほど、そのピクチュアの圧縮されたバージョンをＣＢＲチャンネル上で送信するにはより時間がかかってしまう。デコーダにおいて、エンコードされたピクチュアが受信されたときには、それらのピクチュアはデコーダのバッファにロードされてデコードのために待機する。エンコードされたピクチュアの各ビットは、到着した順に順次デコーダのバッファにロードされるが、ピクチュアのデコード時点において、全てのビットがバッファから同時に取り除かれる。
【０００５】
上記の単純化されたモデルにおいて、特定の期間に亘って、デコーダのバッファは、変動する数のピクチュアに対応して一定数のビットを受け取る。同じ期間に亘って、デコーダは、変動する数のビットに対応してデコーダのバッファから一定数のピクチュアを取り除く。その期間内においてエンコーダが比較的に大規模なピクチュアを数多く送信している場合には、その期間内において受信されるピクチュアの数は比較的に小さいものとなる。デコーダのバッファが新たなピクチュアを受け取るよりも早いレートでピクチュアを取り除くことがあるので、このことはデコーダのバッファを空にするか、又は、アンダーフローにしてしまう。反対に、その期間内においてエンコーダのバッファが比較的に小規模のピクチュアを数多く受信している場合には、その期間内において受信されるピクチュアの数は比較的に大きいものとなる。デコーダのバッファがピクチュアを取り除くよりも早いレートで新たなピクチュアを受け取ることがあるので、このことはデコーダのバッファをオーバーフローにしてしまう。アンダーフローもオーバーフローもデコーダによって生成された非圧縮ビデオストリームを崩壊させることがあり、したがって、アンダーフローもオーバーフローも生じることがないようにすべきである。よって、ビデオエンコーダがエンコードされたビデオストリームを生成している間に、ビデオエンコーダが下流のデコーダのバッファのフルネスを注視していることが重要である。しかし、デコーダはエンコーダと通信することができず、したがって、デコーダのバッファの実際のフルネスはエンコードにとって利用できない。このために、Ｈ．２６４のような圧縮ビデオ規格は、仮想参照デコーダ（ＨＲＤ）を規定し、ビデオエンコーダは、一般的に仮想バッファと呼ばれる、ＨＲＤの符号化されたピクチュアバッファの数学的モデルを保持している。仮想バッファが決してアンダーフロー／オーバーフローしないとしたら、デコーダのバッファは反対に決してオーバーフロー／アンダーフローをするものではない。そして、エンコーダはエンコードされたビデオストリームを調整して、ビデオストリームのピクチュアのエンコードされたバージョンのサイズを合わせてセーフレベルで仮想バッファのフルネスを維持することによって、下流のデコーダバッファのアンダーフロー又はオーバーフローを回避することができる。
【０００６】
より新しく、計算上より複雑な、映像符号化規格の計算要件に合致するために、並行処理を用いるマルチプロセッサ設計が実装されている。例えば、ある一つのプロセッサがＩピクチュアとＰピクチュアをエンコードするために指定され、そして、残りのプロセッサがＢピクチュアをエンコードするために指定されっている。Ｉ又はＰピクチュアをエンコードするためよりもＢピクチュアをエンコードするにはより多くの計算サイクルが必要であり、一般的に所定のビデオストリームにはＩピクチュアとＰピクチュアに比べて相当多くのＢピクチュアが存在するので、より多くのプロセッサがＢピクチュアのエンコードに使用される。話を単純にするために、この例において、他はＨ．２６４規格が適用されるけれども、基準のピクチュアとしてＢピクチュアが用いられないものと仮定する。以下のｇｒｏｕｐ  ｏｆ  ｐｉｃｔｕｒｅ（ＧＯＰ）構造記述において、下付の数字はデコード（エンコード）順を表している。すなわち、
Ｉ0Ｂ2Ｂ3Ｐ1Ｂ5Ｂ6Ｐ4Ｂ8Ｂ9Ｐ7Ｂ11Ｂ12Ｐ10Ｂ14Ｂ15Ｉ13・・・
表１は、上記ＧＯＰの各ピクチュアがマルチプロセッサエンコーダにおいてどのように配分されるのかを単純化された形で表示している。表１において、各タイムスロットｕは、３つのピクチュアのためのリアルタイムでの表示期間を表しており、入力がＮＴＳＣビデオであった場合、各タイムスロットは３００３／３００００秒間の期間を有する。
【０００７】
【表１】
0005410566.tif 000002
【０００８】
表１に示すように、プロセッサ１は、ＩピクチュアとＰピクチュアを含む全ての基準ピクチュアをエンコードするために用いられる。プロセッサ２、３、４、５は、Ｂピクチュアをエンコードするために用いられる。このように、表示された例にとっては、処理パイプラインがはじめに充填された後で、少なくとも２つタイムスロットのパイプライン遅延が存在する。各Ｂピクチュアが２つのタイムスロットに割り当てられるが、Ｉ又はＰピクチュアはそれぞれ１つのタイムスロットに割り当てられることに特に言及する。全て必要な基準ピクチュアのエンコードが完了するとすぐに、参照するＢピクチュアのエンコードが並列的に始まる。例えば、ピクチュアＰ4のエンコードが終了するとすぐに、ピクチュアＢ５とＢ6のエンコードがそれぞれプロセッサ４と５において並列的に始まる。プロセッサ１は、その他のプロセッサに活動に関わらず、Ｉ又はＰピクチュアのエンコードを継続する。表１の最下行は、エンコードされた各ピクチュアがエンコード順に利用可能なので、それらを示している。表１は簡略化された例である。実際は、非圧縮ピクチュアの受信やピクチュアのエンコードや再構成されたピクチュアの送信や再構成されたピクチュアの受信や必要な遅延などの、もっと多くの活動が考えられる。しかし、それらの詳細は本例にとって不可欠のものではないので、それらは省略される。
【０００９】
ビデオエンコーダの重要なタスクは、エンコードされたビデオストリームの所望の画質とビデオストリームが送信されているチャンネルのビットレート制限とデコーダのバッファのフルネスのセーフレベルを維持することとの間の適切なバランスを見いだすことである。エンコーダのレートコントロールアルゴリズムは、仮想バッファのフルネスと個々のピクチュアの相対的な複雑さを用いて、ビデオストリームの各ピクチュアに対する適切なビット割り当てを算出する。シーケンシャルエンコーディングにおいては、レートコントロールアルゴリズムが、後続のピクチュアのエンコードが始まる前において各ピクチュアのエンコードの完了時点で仮想バッファのフルネスをチェックする。パイプラインパラレルエンコーダの場合、仮想バッファのフルネスは、複数ピクチュアの同時及び非シーケンシャルエンコーディングによって引き起こされたパイプライン遅延のためにレートコントロールアルゴリズムにとって必ずしも直ぐに利用されるものではない。パイプラインパラレルエンコーダの全てのプロセッサが互いに独立して作動するので、「後続のピクチュア」の概念は「ある一定の遅延の後に続くピクチュア」に置き換えねばならず、その遅延の間に、いくつかの別のピクチュアがエンコードされて、仮想バッファのフルネスを変更する。例えば、レートコントロールアルゴリズムは、シーケンシャルなエンコード順に従って、ピクチュアＢ6のエンコードの完了後ピクチュアＰ7のエンコードの前に仮想バッファのフルネスをチェックする。ピクチュアＢ6とＰ7のエンコードが同時に始まりピクチュアＰ7のエンコードがピクチュアＢ6のエンコードの終了前に完了するので、このことは上記のパラレルエンコーダにとって不可能である。したがって、レートコントロールアルゴリズムは、現時点の値を単純にチェックするよりも、未来のある時点で仮想バッファのフルネスを予測する必要がある。レートコントロールアルゴリズムの条件を複雑にするパラレルエンコーダについての関連する問題は、充填ビットの潜在的な必要性である。エンコーダは、仮想バッファが空になるか又はそうなる危険性があるときに、エンコードされたビデオストリームに充填ビットを挿入する必要がある。シーケンシャルエンコーダのレートコントロールアルゴリズムは、ピクチュアのエンコードが完了すると直ぐに、どれくらいの数のビットを充填するのかが正確に分かる。しかし、パラレルエンコーダのレートコントロールアルゴリズムは、前記のパイプライン遅延による仮想バッファの真のフルネスの正確な測定が利用不可能であるために、別の方法で必要な数の充填ビットを算出する必要がある。パラレルレートコントロールアルゴリズムの別の要件は、いくつかのピクチュアに対するいくつかのビットレートターゲットを同時に決定する能力である。表１に示すように、例えば、タイムスロット４の始めにおいて、パラレルレートコントロールアルゴリズムはピクチュアＰ7とＢ5とＢ6のビットレートターゲットを決定する必要がある。
【００１０】
シングルパスエンコーディングに比べデュアルパスエンコーディングの方がより高度の符号化効率を提供することは画像圧縮部門において広く知られている。しかし、効率の改善は、デュアルパスアーチテクチュアと共に二つのパイプラインエンコーダを用いることによる比較的に大きなコストに勝るものではないので、デュアルパスエンコーディングは必ずしも実際の解決にはつながらない。
【００１１】
図１に関連して、シーケンシャルデュアルパスエンコーダ１は、非エンコードビデオストリームを入力として受信し、エンコードされたシングルプログラムトランスポートストリーム（ＳＰＴＳ）を（用途に応じて、変動ビットレート（ＶＢＲ）又は固定ビットレート（ＣＢＲ）の何れかで送信することが可能な）出力として送信するが、第１パスエンコーダ２と第２パスエンコーダ３と保管及び遅延ユニット４を具備する。第１パスエンコーダ２は第２パスエンコーダ３と比較して割合単純である。例えば、第１パスエンコーダ２への入力は、ダウンサンプリングされ、そして、第２パスエンコーダ３の入力に比較される。第１パスエンコーダ２と保管及び遅延ユニット４は、非エンコードビデオストリームを入力として受信する。保管及び遅延ユニット４は、ビデオストリームをバッファに保管する、一方、簡単な第１パスエンコーダ２はビデオストリームの各ピクチュアの複雑さの情報を算出する。そして、ビデオストリームの各ピクチュアと対応する複雑系統計は、第２パスエンコーダ３に送られる。第２パスエンコーダ３は、第１パスエンコーダ２によって生成されたその複雑さの情報を用いて、入力ビデオストリームのエンコードされたバージョンを生成する。入力において、より複雑なエンコーダの代わりに簡単な第１パスエンコーダ２を用いることによって、実装コストが抑えられて複雑なシングルパスエンコーダのそれに近づく。しかし、第１と第２のパスエンコーダの実装の相違のために、第１パスエンコーダ２によって生成されたその複雑さの情報は、比較的に複雑な第２パスエンコーダ３にとって正に望ましい情報ではない。
【００１２】
この欠陥にもかかわらず、第１パスエンコーディングにおけるピクチュアの複雑さ推定と第２パスエンコーディングにおけるピクチュアの複雑さ推定の間には相関関係が存在する。多くの場合、第１パスエンコーダ２にとって比較的に複雑／単純であるピクチュア又はＧＯＰは、また、第２パスエンコーダ３にとっても比較的に複雑／単純である。複雑系統計は、エラーに耐えられる状態で、一層各ピクチュアとマクロブロック（ＭＢ）の間の重要な関係を示している。したがって、複雑なシングルパスコーディングと比較して、デュアルパスエンコーダは、若干高価な実装コストのみを有するも画像符号化効率において優れている。
【発明の概要】
【００１３】
発明の要約
本発明の第１の側面に関連して、ビデオシーケンスを構成する一連のピクチュア群のうちのピクチュアのエンコードされたバージョンを生成するときに使用すべき好適な数のビットに対応するターゲットサイズを決定することによってマルチプロセッサビデオエンコーダを作動する方法であって、（イ）第１の時点で符号化されたピクチュアのバッファの第１のフルネスの程度を算出する工程と、（ロ）前記第１のフルネスの程度に作用して、第２の時点で前記符号化されたピクチュアのバッファの想定された第２のフルネスの程度に戻す工程と、（ハ）前記第２のフルネスの程度に作用して、前記ピクチュアの当初のターゲットサイズに戻す工程とからなり、前記第１の時点が、前記符号化されたピクチュアのバッファの正確なフルネスの程度が算出できるもっとも近接する時点に対応していると共に、前記第２の時点が前記第１の時点の後に生じる方法が提供される。
【００１４】
本発明の第２の側面に関連して、ビデオシーケンスのピクチュアをエンコードするマルチプロセッサビデオエンコーダを生成する方法であって、（イ）前記ピクチュアを受信する工程と、（ロ）第１の時点で符号化されたピクチュアのバッファの第１のフルネスの程度を算出する工程と、（ハ）前記第１のフルネスの程度に作用して、第２の時点で前記符号化されたピクチュアのバッファの第２のフルネスの程度に戻す工程と、（ニ）ある時間の間、その時間の前記ピクチュアを保管する工程と、（ホ）前記ピクチュアの複雑さの第１の程度を測定する工程と、（へ）前記ピクチュアの複雑さの第１の程度と前記第２のフルネスの程度に作用して、前記ピクチュアの好適なターゲットサイズに戻す工程と、（ト）工程（ニ）に引き続き、前記ピクチュアと前記好適なターゲットサイズを前記マルチプロセッサビデオエンコーダに提供する工程とからなり、前記第１の時点が、前記符号化されたピクチュアのバッファの正確なフルネスの程度が算出できるもっとも近接する時点に対応していると共に、前記第２の時点が前記第１の時点の後に生じる方法が提供される。
【００１５】
本発明の第３の側面に関連して、一連のピクチュアのうち単独のピクチュアを構成する一連のマクロブロックのうちの所定のマクロブロックをエンコードする時に使用する量子化パラメータの値を決定する方法であって、（イ）第１の時点で符号化されたピクチュアのバッファの第１のフルネスを推定する工程と、（ロ）前記一連のマクロブロックのうち、前記所定のマクロブロックに先行するマクロブロックの複雑さの累積単位を決定する工程と、（ハ）前記第１のフルネスの程度と前記複雑さの累積単位とターゲットビット数に作用して、第２の時点で前記符号化されたピクチュアのバッファの第２のフルネスの程度に戻す工程と、（ニ）前記第２のフルネスの程度に作用して、前記量子化パラメータの値に戻す工程とからなり、前記ターゲットビット数が、前記単一のピクチュアのエンコードされたバージョンを発生するときに前記一連のマクロブロックを分割するビット数に対応していると共に、前記第２の時点が前記第１の時点の後に生じる方法が提供される。
【００１６】
本発明の第４の側面に関連して、ビデオシーケンスのうち単独のピクチュアを構成する一連のマクロブロックの各マクロブロックをエンコードする時に使用する量子化パラメータの値を算出する方法であって、（イ）第１の時点で符号化されたピクチュアのバッファの第１のフルネスの程度を推定する工程と、（ロ）前記単独のピクチュアのエンコードされたバージョンのターゲットサイズを決定する工程と、（ハ）前記一連のマクロブロックの各マクロブロックに対して、（ハ―１）前記一連のマクロブロックのうち、先行するマクロブロックの複雑さの累積された程度を決定することと、（ハ―２）前記第１のフルネスの程度と前記複雑さの累積された程度と前記ターゲットサイズに作用して、第２の時点で前記符号化されたピクチュアのバッファの第２のフルネスの程度に戻すことと、（ハ―３）前記第２のフルネスの程度に作用して、前記所定のマクロブロックをエンコードするときに使用する量子化パラメータの値に戻すことを行う工程とからなり、前記ターゲットサイズが、前記単一のピクチュアのエンコードされたバージョンを発生するときに前記一連のマクロブロックを分割すべきビット数に対応しており、所定のマクロブロックのエンコードされたバージョンのビットサイズが前記マクロブロックをエンコードするときに用いる量子化パラメータの値の関数であり、前記第２の時点が前記第１の時点の後に生じる方法が提供される。
【００１７】
本発明の第５の側面に関連して、マルチプロセッサエンコーダにより、並列に、複数のピクチュアをエンコードするのに先立ち、未来のある時点において、符号化されたピクチュアのバッファのフルネスの程度を推定することによって前記マルチプロセッサエンコーダを操作する方法であって、
第１のビデオエンコード手順を用いて複数のピクチュアのエンコードされたバージョンを表わすのに必要なビット数を予測する工程と、
前記将来の時点に先行する第１の時点で符号化されたピクチュアのフルネスの程度を算出する工程と、
以前にエンコードされた複数のピクチュアのエンコードされたバージョンを表わすのに必要な以前に予測されたビット数を以前にエンコードされた複数のピクチュアを表わすのに必要な実際のビット数を比較することによって、不整合項を生成する工程と、
第１の時点で符号化されたピクチュアの算出されたフルネスの程度と前記第１のピクチュアのエンコードされたバージョンを表わすのに必要な予測されたビット数と前記不整合項を組み合わせて前記将来の時点で符号化されたピクチュアの推定されたフルネスの程度に戻る工程を具備し、
前記将来の時点が前記第１のピクチュアのエンコードされたバージョンが符号化されたピクチュアにロードされる時点に対応すると共に、前記第１の時点が符号化されたピクチュアのフルネスの程度が正確に算出される最も近接する時点を現している方法が提供される。
【００１８】
本発明の第６の側面に関連して、符号化されたピクチュアのバッファのアンダーフローを防ぐようにマルチプロセッサビデオエンコーダを操作する方法であって、第１のビット数を用いてビデオシーケンスのピクチュアをエンコードする工程と、ある時間の間前記ピクチュアのエンコードされたバージョンを保管する工程と、符号化されたピクチュアのバッファのフルネスの程度を算出する工程と、符号化されたピクチュアのバッファにアンダーフローの危険があるか否かを判定する工程と、符号化されたピクチュアのバッファがアンダーフローする危険性が存在する場合には、符号化されたピクチュアのバッファがもはやアンダーフローする危険性のないようなレベルに前記符号化されたピクチュアのバッファのフルネスを増やすのに必要な充填ビットの数を算出する工程と、前記数の充填ビットを前記ピクチュアのエンコードされたバージョンに付加して、それによって、第２のビット数まで前記ピクチュアのエンコードされたバージョンのサイズを増やす工程と、前記ピクチュアのエンコードされたバージョンを送信する工程を具備する方法が提供される。
【００１９】
本発明の第７の側面に関連して、複数のデュアルパスマルチプロセッサシングルチャンネルエンコーダを有するマルチチャンネルビデオエンコーダであって、各シングルチャンネルエンコーダが共通のビデオクロックを共有し第１のパスエンコーダと第２のパスエンコーダを有するものを操作する方法であって、複数のデュアルパスマルチプロセッサシングルチャンネルエンコーダのそれぞれが、複数の一連のピクチュアと組み込まれたビデオクロックを含む、単独の非エンコードプログラムビデオストリームを受信し、前記単独の非エンコードプログラムビデオストリームのコピーを生成し、前記単独の非エンコードプログラムビデオストリームを保管し、前記コピーの組み込まれたビデオクロックを修正してそれを共通のビデオクロックに同期させ、前記コピーに対して第１のパスエンコードを実施して、該コピーの複雑系統計を行う工程と、複雑系統計を行うことによって、それぞれの前記単独の非エンコードプログラムビデオストリームのピクチュアの好適なサイズを判定する工程と、前記複数のデュアルパスマルチプロセッサシングルチャンネルエンコーダのそれぞれが、入力として前記好適なターゲットサイズを用いて、前記単独の非エンコードプログラムビデオストリームに対し第２のパスエンコードを実施して、エンコードされた単独のプログラムビデオストリームを生成し、複数のエンコードされた単独のプログラムビデオストリームを互いに積算してマルチプログラムトランスポートストリームとし、そのマルチプログラムトランスポートストリームを送信する工程を具備する方法が提供される。
【図面の簡単な説明】
【００２０】
【図１】デュアルパスエンコーダのブロック図である。
【図２】本発明の実施の形態であるシングルチャンネルエンコーダのブロック図である。
【図３】本発明の実施の形態であるデュアルパスエンコーダにおける第１のパスエンコーダと第２のパスエンコーダの間の関係を示すタイミング図である。
【図４】本発明の実施の形態であるマルチチャンネルエンコーダのブロック図である。
【図５】図３のマルチチャンネルエンコーダに使用される本発明の実施の形態であるシングルチャンネルエンコーダユニットのブロック図である。
【図６】二つの異なるやり方で、単独のピクチュアのマクロブロックへの分割を図示する単独のピクチュアの二つのバージョンの略図である。
【図７】累積された第１パス複雑度とマップされた累積第２パス複雑度との間の関係を示すグラフ群である。
【好適な実施の形態の説明】
【００２１】
詳細な説明
以下の本発明の実施の形態のそれぞれは、いずれか一つのビデオコード規格に特定されるものではない。しかし、この明細書に関して、エンコードするために、問題のビデオコード規格が個別のピクチュア又はフレームをマクロブロックに分割し、複数の一連のピクチュアを分割してピクチュア群（ＧＯＰ）にするような従来の技術を利用しているものと仮定する。
【００２２】
図２に関連して、シングルチャンネルデュアルパスエンコーダ５は、入力として非エンコードビデオストリームＩＮを受信し、そして、出力としてエンコードされたＳＰＴＳ  ＯＵＴ（ＶＢＲ又はＣＢＲ）を送信する。デュアルパスエンコーダ５は、マルチプロセッサアーキテクチュアを有し、低複雑性の第１パスエンコーダ８と高複雑性の第２パスエンコーダ１２を具備する。第１パスエンコーダ８は、従来のシングルプロセッサエンコーダであり、第２パスエンコーダ１２は、上記のようなパイプラインパラレルエンコーダであり、ｍ個の処理ユニット１６-x（ｘ＝１・・・ｍ）を有する。ビデオストリームＩＮの各ピクチュアｊは、保管及び遅延ユニット２０とデシメーションユニット２４によって受信される。保管及び遅延ユニット２０は、ｄピクチュアの深さと入力ストリームのピクチュア用の先読みウィンドウを具備するＦＩＦＯ（ｆｉｒｓｔ−ｉｎ、ｆｉｒｓｔ−ｏｕｔ）型バッファとして作動する。
【００２３】
デシメーションユニット２４は、決められた量だけビデオストリームＩＮの各ピクチュアｊの解像度を下げて、第１パスエンコーダ８の図示しない処理ユニットの計算上の複雑さを第２パス処理ユニット１６-xのそれと比較して低くなるようにするために対応する低解像度バージョンｊｄを生成する。簡単な例として、デシメーションユニット２４がビデオストリームＩＮの解像度を水平方向と垂直方向の両方向において２分の一だけ下げるとすると、第１パスエンコーダ８の複雑さは第２パス処理ユニット１６-xの複雑さの四分の一しか必要でなくなるので、したがって、単独のピクチュアをエンコードするのにデュアルパスエンコーダ５にとって必要なトータルな計算上の複雑さはシングルパスエンコーダよりも約２５％大きい。
【００２４】
デシメートされたビデオストリームが第１パスエンコーダ８に入力され、そこで、第１パスエンコーダ８に実装された従来のエンコードプロセスの過程において、ピクチュアレベル及びマクロブロックレベルの複雑系統計が各デシメートされたピクチュアｊｄに対して計算される。複雑系統計が使用されて、各デシメートされたピクチュアｊｄに対して複雑度ｃｊとマクロブロックからマクロブロックまでの累積された複雑度を生成する。これら複雑系統計と複雑度は、下記の先読みウィンドウに記憶される。第２パスエンコーダ１２は、ビデオのピクチュアｊを受信する。そして、このピクチュアｊはエンコーディングのために処理ユニット１６-xに割り当てられる。第２パスエンコーダのパラレル設計のために、表１に示された例と同様に各タイムスロットｕの始めにおいて、複数のピクチュアが第２パスエンコーダにロードされうる。
【００２５】
デュアルパスエンコーダ５が図２に実線で囲まれているスタンドアローンシングルチャンネルエンコーダである場合、第２パスエンコーダ１２もコントロールユニットとして作動することができる。それとは別に、別のマスタコントロールユニット２８は、ピクチュアレベルレートコントロールアルゴリズムに対し、入力として、複雑度ｃjを用い、非デシメートピクチュアｊのエンコードされたバージョンのサイズに対するターゲット値Ｔjを選択する。ピクチュアレベルレートコントロールアルゴリズムは、また、Ｔjを用いてタイムスロットｕの終了時にデュアルパスエンコーダの仮想バッファのフルネスの推定値Ｂuを算出する。ピクチュアレベルレートコントロールアルゴリズムは、第１パスエンコーダ８内に実装されうる。
【００２６】
従って、第１パスエンコーダ８とピクチュアレベルレートコントロールアルゴリズムは、各タイムスロットｕの始めにおいて第２パスエンコーダ１２に同時に複数のターゲット値を提供するほど十分に早いレートでデシメートされたピクチュアを処理することができなければならない。第２パスエンコーダ５は、Ｔjを用いて、ピクチュアｊのエンコードされたバージョンを生成し、それがＶＢＲ又はＣＢＲのＳＰＴＳ  ＯＵＴの一部としてデュアルパスエンコーダユニット５から出力される。
【００２７】
第２パスエンコーダ１２は、移動平均ウィンドウ内においてエンコードされた各ピクチュアについての情報を一時的に記憶する。下記のように、レートコントロールアルゴリズムは、ピクチュアターゲットサイズを算出するときに先読みウィンドウと移動平均ウィンドウの双方に記憶されている情報を用いる。
【００２８】
シングルチャンネルエンコーダ５の出力がＣＢＲビデオストリームである場合、エンコーダの仮想バッファのフルネスがマイナスにならないようにビットをエンコーダの仮想バッファに充填することが時には必要となる。パイプライン遅延の後まで仮想バッファのフルネスの真の値が利用できないので、正しい数の充填ビットが付加できるように、充填ビットインサーター３０において圧縮された出力ストリームが少なくともｐ個のタイムスロットの間バッファされる。
【００２９】
次のビデオシーケンスは左（過去）から右（未来）に向かって表示順に示されている。下付数字は下記の表２に示すエンコード順を示している。
【００３０】
・・・Ｂ-5Ｂ-4Ｐ-6Ｂ-2Ｂ-1Ｐ-3Ｂ1Ｂ2Ｉ0Ｂ4Ｂ5Ｐ3Ｂ7Ｂ8Ｐ6Ｂ10Ｂ11Ｐ9Ｂ13Ｂ14Ｐ12Ｂ16Ｂ17Ｉ15・・・
マイナスの下付数字は、以前にエンコードされたピクチュアであることを示す。
【００３１】
表２は、ｕ＝１から始まる一連のタイムスロットにおいて図２に示すマルチプロセッサエンコーダの作業を示している。表１の場合と同様に、表２も単純化されておりエンコード作業のみを示している。非圧縮ピクチュアを受信する作業、再構成されたピクチュアを送信する作業、再構成されたピクチュアを受信する作業、必要な遅延などの作業は、それらがレートコントロールアルゴリズムの例示にとって不可欠ではないので、割愛されている。
【００３２】
【表２】
0005410566.tif 000003
【００３３】
図３は、デュアルパスエンコーダ５が表２の一部に示すビデオシーケンスをエンコードしている過程にあるときの第１パスエンコーダ８と第２パスエンコーダ１２の間の時間関係を示している。カレントタイムスロット（ｕ＝１）の開始時点において、エンコーダのレートコントロールアルゴリズムは、先読みウィンドウに記憶された前もって得られた第１パスデータと移動平均ウィンドウに記憶された前もって得られた第２パスデータを利用して、ピクチュアＩ0，Ｂ-2，Ｂ-1のターゲットサイズを算出する。先読みウィンドウに記憶された第１のパスデータは、第２パスエンコーダによってカレントにエンコードされているピクチュアと第１のパスエンコーダ８によって以前にエンコーダされてはいるがまだ第２パスエンコーダ１２に達していない後続のピクチュアに関連する。移動平均ウィンドウに記憶された第２パスデータは、最近第２パスエンコーダ１２によってエンコードされたピクチュアに関連する。先読みウィンドウと移動平均ウィンドウのサイズが、そこに記憶されるピクチュアの数に関して、大きければ大きいほど、レートコントロールアルゴリズムが第２パスエンコーダによってエンコードされるピクチュアのターゲットサイズをより正確に算出することができる。
【００３４】
以下の記号と変数のリストは、シングルチャンネルエンコーダ用のピクチュアレベルレートコントロールアルゴリズムを記述するときの明確化のために提供される。
【００３５】
ｉは、シングルチャンネルエンコーダユニットのためのインデックスとして、そして、マルチチャンネルエンコーダのシングルチャンネルエンコーダユニット内の対応するビデオストリーム用のインデックスとして、使用される。上記の図２に図示された実施の形態において、ｉは指定されていない。
【００３６】
ｊは、ピクチュア番号用のインデックスとして使用される。ピクチュアは１から始まって次のピクチュア毎に１ずつ増えていくように番号付けされる。
【００３７】
ｕは、タイムスロット用のインデックスとして使用され、特には第２パスエンコーダに関連して使用される。タイムスロットは、１から始まって後続のタイムスロット毎に１ずつ増えていくように番号付けされている。
【００３８】
Ｕｕは、タイムスロットｕの間に第２パスエンコーダによってエンコードされたピクチュアの集合を示すために使用される。表２に示された例においては、Ｕ5＝｛Ｐ12，Ｂ10，Ｂ11，Ｂ7，Ｂ8｝である。
【００３９】
ｋは、集合Ｕｕにおけるピクチュア用のインデックスとして使用される。集合Ｕｕの所定のピクチュアｋがビデオストリームに関して対応するインデックスｊを有することに特に言及する。使用されるインデックスは、コンテクストに依存する。
【００４０】
｜Ｂi｜は、シングルチャンネルエンコーダの仮想バッファのビットサイズである。例えば、ＭＰＥＧ−２エンコーダにおいては、仮想バッファはＶＢＶバッファであり、Ｈ．２６４エンコーダにおいては、仮想バッファは符号化ピクチュアバッファ（ＣＰＢ）である。｜Ｂi｜が特定の規格によって許容された最大のサイズではないが、希望のビットレートに基づくビデオストリームｉの実際の最大値であることに特に言及する。
【００４１】
Ｂi,uは、タイムスロットｕにおける第２パスエンコーダの全てのピクチュアのエンコーディングの直前においてビデオストリームｉのシングルチャンネルエンコーダの仮想バッファの推定フルネスである。
【００４２】
ｂi,jは、第１パスエンコーダによってエンコードされたときの、ビデオストリームｉからｊ番目のピクチュアのエンコードバージョンのビットサイズである。
【００４３】
ｑi,jは、ビデオストリームｉのピクチュアｊのために第１パスエンコーダによって使用される量子化器である。
【００４４】
Ｃi,j＝ｑi,jｂi,jは、第１パスエンコーダによって測定されたときのビデオストリームｉのピクチュアｊの複雑さを表す値である。Ｃi,jが第１パスエンコーダによって測定された後で、それは先読みウィンドウに記憶される。
【００４５】
0005410566.tif 000004
【００４６】
0005410566.tif 000005
【００４７】
0005410566.tif 000006
【００４８】
0005410566.tif 000007
【００４９】
0005410566.tif 000008
【００５０】
0005410566.tif 000009
【００５１】
0005410566.tif 000010
【００５２】
ｄは、保管及び遅延ユニットにおける先読みウィンドウの深さである。
【００５３】
ｐは、第２パスエンコーダのパイプラインの深さである。
【００５４】
ｅuは、タイムスロットｕ−ｐからタイムスロットｕ―１までにエンコードされたピクチュアの数である。
【００５５】
0005410566.tif 000011
【００５６】
Ｒiは、出力ビデオストリームｉにとってのピクチュア時間毎の総ターゲットビット数である。出力ビデオストリームｉがＣＢＲである場合には、Ｒiは定数である。
【００５７】
σiは、シングルチャンネルエンコーダの仮想バッファのフルネスが調節されるスピードにとっての感度因子である。それは以下に説明される。
【００５８】
0005410566.tif 000012
【００５９】
Ｔi,jは、ビデオストリームｉのピクチュアｊの調節されたターゲットサイズである。
【００６０】
Ｖuは、タイムスロットｕ−ｐからタイムスロットｕ―１までにエンコードされたピクチュアの総ビットレートターゲットの集合である。
【００６１】
0005410566.tif 000013
【００６２】
0005410566.tif 000014
【００６３】
ΩI,ΩP,ΩBは、ｗi,jの算出に使用される重み付け因子である。
【００６４】
Ｓi,kは、先読みウィンドウ内の全てのピクチュアの重み付けされた第１パス複雑度の総和である。総和Ｓi,kは、（第２パスエンコーダよって予めエンコードされたピクチュアに関連する）移動平均ウィンドウとは異なる第１パスエンコーダの先読みウィンドウに亘って実施されることに特に言及する。
【００６５】
Ｎは、移動平均ウィンドウ内のピクチュアの数である。ＮI・・・ＮP，ＮBは、同様の定義を有する。
【００６６】
ピクチュアレベルレートコントロールアルゴリズムは、各ピクチュアｋからｋ＋（ｄ−１）の第１パスエンコーディングから先読みウィンドウに記憶されたデータと移動平均ウィンドウに記憶された、第２パスエンコーダによって前もってエンコードされていた他のピクチュアからの第２パスデータを用いて、タイムスロットｕの始めに第２パスエンコーダに入る各ピクチュアｋに対する当初のターゲットビット数を算出する。当初のターゲット数は、式１によって算出される。
【００６７】
【数１】
0005410566.tif 000015
【００６８】
重み付けｗi,kは、ビデオストリームｉの移動平均ウィンドウ内のピクチュアに関する以前の第１パス複雑度と以前の第２パス複雑度の関数である。図２に示されたもののようなパイプライン実装において、エンコーディングのまだ終えていないピクチュアの第２パス複雑さは利用することができないことに特に言及する。
【００６９】
0005410566.tif 000016
それらは、全て一般式を有する。
【００７０】
【数２】
0005410566.tif 000017
【００７１】
【数３】
0005410566.tif 000018
【００７２】
【数４】
0005410566.tif 000019
【００７３】
0005410566.tif 000020
【００７４】
0005410566.tif 000021
【００７５】
ＮIが移動平均ウィンドウ内のＩタイプのピクチュアの数であるけれども、スタート
アップ時に、はじめのｐ＋ｄ個のピクチュアに対しては第２パス複雑度が利用できず、したがって、ｗikは第２パスピクチュアとデシメートされた第１パスピクチュアの複雑さの間が一定の比率となることに特に言及する。
【００７６】
0005410566.tif 000022
【００７７】
【数５】
0005410566.tif 000023
であり、ここで、Ｉ＿ｓｅｔ‘＝Ｉ＿ｓｅｔ―｛Ｋ0｝である。Ｐ＿ｓｅｔ及びＢ＿ｓｅｔに関して適切な定義を有するＰピクチュア及びＢピクチュアに対しても同じ式が存在する。
【００７８】
0005410566.tif 000024
【００７９】
【数６】
0005410566.tif 000025
【００８０】
ここで、ｄは、先読みウィンドウのサイズを表している。複雑比ｗi,kｃi,k／Ｓi,kは、集合Ｕuの他のピクチュアの近似された第２パス複雑度に比較した、ピクチュアｋの近似された第２パス複雑度の測定値を表す。
【００８１】
ピクチュアレベルレートコントロールアルゴリズムがビデオストリームｉのピクチュアｋのエンコードされたバージョンに対してＴi,kの適切な値を選択するために、該アルゴリズムはエンコーダの仮想バッファの現状のフルネスを明らかにする必要がある。
【００８２】
0005410566.tif 000026
【００８３】
従って、従前のタイムスロットからの情報に基づいて、推測された仮想バッファのフルネスＢi,uが、式１の実際の仮想バッファのフルネスに代って使用される。
【００８４】
【数７】
0005410566.tif 000027
【００８５】
定義により、Ｖuとｅuは、タイムスロット（ｕ−ｐ）からタイムスロット（ｕ−１）までにおけるターゲットとピクチュアに関連する。式６は、大部分、各種の圧縮規格において定義された仮想バッファのフルネス計算に対応しているが、以前の計算よりもむしろ仮想バッファのフルネスの以前の推定を使用する。
【００８６】
0005410566.tif 000028
【００８７】
【数８】
0005410566.tif 000029
【００８８】
所定のピクチュアの相対的な複雑性又は所定のタイムスロットにおけるバッファのフルネスにかかわらず、非マイナスのビット数が各ピクチュアに割り振られなければならない。所定のピクチュアｋの相対的な複雑性が決してマイナスとはならないので、式１の考察から、以下のような関係がピクチュアｋに対して真でなければならないということになる。
【００８９】
【数９】
0005410566.tif 000030
【００９０】
演算において、不整合項ｍi,u-1は、比較的に小さく、式８に対して十分な効果を有するものではない。従って、式８を解析するために、不整合項ｍi,u-1は無視されうる。式８によって定義されたルールは、仮想バッファが満杯である時、Ｂi,u＝｜Ｂi｜の時，に破られる最も大きな危険性があり、結果的に、
【００９１】
【数１０】
0005410566.tif 000031
となる。
【００９２】
当初のターゲットビット割り当てを非マイナスにするように単純に要求するよりはむしろ、本発明のより複雑な実施の形態は、最小のビット割り当て値εi,kを割り当てるが、それは、ピクチュアｋのピクチュアタイプに関して、どのようなビデオコード規格が第２パスエンコーダによって実現されたとしても必要な最小のビット数に比例する。
【００９３】
従って、式９は、
【００９４】
【数１１】
0005410566.tif 000032
のように書き換えられる。
【００９５】
ピクチュア特性とは独立してピクチュアレベルレートコントロールアルゴリズムによってピクチュアからピクチュアに調整されうる式１０の成分がσi,kのみであり、σi,kの適切なピクチュアタイプ依存値はσi,kについて式１０を解決することによって見つけることが可能である。
【００９６】
【数１２】
0005410566.tif 000033
【００９７】
0005410566.tif 000034
従って、当初のターゲットビット割り当ては、最小ビット数と比較され、より大きな数がピクチュアｋに対して最終ビット割り当てＴi,kとして使用される。例として、Ｈ．２６４の場合、
【００９８】
【数１３】
0005410566.tif 000035
であるが、ここで、αi,kはビットレート及び規格依存の重み付けであり、Ｉタイプ，Ｐタイプ，Ｂタイプのピクチュアに対して参照テーブルによって表される。
【００９９】
【数１４】
0005410566.tif 000036
【０１００】
図２に関連して、上記のピクチュアレベルレートコントロールアルゴリズムを利用することによって、シングルチャンネルエンコーダ５のコントロールユニットは、十分な精度を有して第２パスエンコーダの仮想バッファのフルネスを予測することができ、第２パスエンコーダのパラレルアーキテクチュアに固有のパイプライン遅延にかかわらず、ピクチュアレベルレートコントロールアルゴリズムが各ピクチュアに対してビット数を割り当てることが可能である。
【０１０１】
図２の実線で示されたエンコーダは、シングルチャンネルエンコーダであり、従って、インデックスｉは指定されない。図４に図示され、そして、図２に点線で示された本発明の他の実施の形態において、ｎ個のシングルチャンネルエンコーダ５−ｉ（ｉ＝１．．．ｎ）は、マルチチャンネルエンコーダ３２内に配置される。マルチチャンネルエンコーダ３２は、入力としてｎ個の非エンコードビデオストリームＩＮ−ｉ（ｉ＝１．．．ｎ）を受信し、そして、ｎ個のＳＰＴＳである出力ＯＵＴ−ｉ（ｉ＝１．．．ｎ）を所望の可変ビットレートでそれぞれ送信する。必要であれば、異なるビデオコードグ規格がチャンネル毎に使用されうる。エンコーダ３２は、マスタコントロールユニット２８と、各ビデオストリームｉの各ピクチュアｊに関連して、第１パス複雑値ｃi,jが、デュアルパスエンコーダ５−ｉからマスタコントロールユニット２８に送信される。ｃi,jが受信された時点で、マスタコントロールユニット２８は、ターゲット値Ｔi,jを算出し、このターゲット値をデュアルパスエンコーダ５−ｉに送り返す。ターゲット値Ｔi,jを受信した後で、デュアルパスエンコーダ５−ｉはピクチュアｊをエンコードしてそのエンコードされたバージョンを出力ＯＵＴ−ｉの一部として送信する。そして、ＳＰＴＳである出力ＯＵＴ−ｉは、マルチチャンネルエンコーダ３２から送信される。図３の図示された実施の形態のためのピクチュアレベルレートコントロールアルゴリズムは、ｉ＝１・・・ｎであること除いて、上記のピクチュアレベルレートコントロールアルゴリズムと同じである。
【０１０２】
図３において点線で示された本発明の他の実施の形態において、ｎ個のＳＰＴＳである出力ＯＵＴ−ｉは、マルチプレクサユニット３６によって一緒に統計的に多重送信されて総計固定ビットレート（ＣＢＲ）を有するシングルのマルチプログラムトランスポートストリーム（ＭＰＴＳ）Ｍ＿ＯＵＴを形成する可変ビットレートストリームである。出力Ｍ＿ＯＵＴが、図示しない、下流のマルチチャンネルデコーダに送られ、そこで、Ｍ＿ＯＵＴがバッファに保存され、デマルチプレックスされ、そして、デコードされる。ｎ個の入力ビデオストリームが大規模なマルチチャンネルデコーダバッファに結局全て一緒に保存されるので、マルチチャンネルエンコーダはｎ個のシングルチャンネルエンコーダすべてにとって共有する仮想バッファモデルを使用し、そして、ピクチュアレベルレートコントロールアルゴリズムは、ｎ個のビデオストリームに対して集団的にジョイントターゲットビット割り当て操作を実行しなければならない。上記の実施の形態におけるのと同様に、出力ＯＵＴ−ｉは、異なるビデオコーディング規格を用いてエンコードされうる。図４に関連して、シングルチャンネルエンコーダの出力ストリームＯＵＴ−ｉが多重送信されてＣＢＲ  ＭＰＴＳになるようにしている場合において、第１パスエンコーダ８への入力は、デシメーションユニット２４と第１パスエンコーダ８の間に配設された対応する時間ベースコレクタ（ＴＢＣ）ユニット４０によって、時間ベースに共通のビデオクロックに対して訂正される。レートコントロールアルゴリズムは、ｎ個のビデオストリームが共通のクロックに対して同期されない限り、ｎ個全てのビデオストリームに対してジョイントターゲットビットレート割り当てを正確に行うことはできない。しかし、第２パスエンコーダ１２の入力に対してビデオストリームを同様に同期することは必要ではない。第２パスエンコーダ１２に入力されている訂正されていないクロックが第１パスエンコーダ８に入力する訂正されたクロックとはるかにずれているとき、時には２つのピクチュアシーケンスの間に矛盾が生じることもある。このような矛盾は、第２パスエンコーダの入力に関し第１パスエンコーダの入力からピクチュアの脱落となるか、又は、その逆となる。第２パスエンコーダ２８は、容易にこのような矛盾を処理する。前者の場合、同じピクチュアタイプの以前のピクチュアをエンコードするのに使用されるパラメータは、現状のピクチュアをエンコードするために使用される。後者の場合、第２パスエンコーダ２８は単純に現状のピクチュアを無視する。
【０１０３】
充填ビットを用いてシングルチャンネルエンコーダのＣＢＲ出力に埋め込む場合と同様に、マルチチャンネルエンコーダのＭＰＴＳ出力に埋め込んでエンコーダの共有仮想バッファのフルネスがマイナスにならないようにすることも時には必要である。充填ビットの代わりに、ヌルトランスポートストリームパケットがシングルチャンネルエンコーディングのために上記と同様の方法で挿入されるが、その差は、ｎ個のＳＰＴＳが一緒に多重送信された後で挿入が起こることである。マルチプレクサ３６から出力された後で、出力Ｍ＿ＯＵＴはマルチチャンネルヌルパケットインサータ４６によって受信される。圧縮された出力ストリームが少なくともｍａｘ（ｐ１，ｐ２・・・ｐｎ）個のタイムスロットの間バッファに保存され、正確な数のヌルトランスポートストリームパケットが算出され加えられる。ここで、ｐｉ（ｉ＝１，２，・・・ｎ）はストリームｉに対する第２パスエンコーダのパイプラインの深さである。
【０１０４】
図４に示す実施の形態において、シングルチャンネルエンコーダユニット５−ｉは、図５の点線で示された適応プレフィルタ４２を具備することができる。第１パスエンコーダ２４から得られたピクチュアレベル複雑系統計が使用されて、第２パスエンコーディングの前で現状のＧＯＰに対するフィルタ４２の強度を制御する。適応プレフィルタ４２は、ローパスフィルタであり、その出力は所定のピクチュアのエンコードバージョンのサイズを減少するために選択される。第２パスエンコーダには、入力として、元の非圧縮ビデオソースか又は適応プレフィルタ４２の出力が与えられる。ピクチュアレベルレートコントロールアルゴリズムは、複雑系統計に基づいてこの決定を行う。たとえば、出願中の米国特許出願第１０／３１６，４８３号を参照してください。
【０１０５】
複数の個別のシングルチャンネルエンコーダのＶＢＲ出力が組み合わされて多重送信ＣＢＲストリームを形成する、統計的なマルチプレクシングを伴うマルチチャンネルエンコーディングの場合のピクチュアレベルレートコントロールアルゴリズムは、上記のピクチュアレベルレートコントロールアルゴリズムよりも若干より複雑である。統計的なマルチプレクシングを伴うピクチュアレベルレートコントロールのために、中央のマスタレートコントロールが使用される。
【０１０６】
各チャンネルは、異なるビデオ規格（ＭＰＥＧ−２，Ｈ．２６４，ＳＭＰＴＥ  ＶＣ−１など）を用いてエンコードされる。それぞれのシングルチャンネルエンコーダのアーキテクチュアは同じであるが、ピクチュアレベルターゲットビット割り当て式は式１とは若干異なる。
【０１０７】
以下の記号と変数のリストは、統計的多重送信（マルチプレクシング）によるマルチチャンネルエンコーダ用のピクチュアレベルレートコントロールアルゴリズムを記述するときの明確化のために提供される。
【０１０８】
ｎは、マルチチャンネルエンコーダが受信することのできるチャンネルの数である。
【０１０９】
Ｒは、多重送信された出力ストリームＭ＿ＯＵＴのためのピクチュア毎の一定のビットレートである。
【０１１０】
｜Ｂ｜は、ｎ個のシングルチャンネルエンコーダによって使用される共有仮想バッファのサイズである。
【０１１１】
Ｂuは、タイムスロットｕにおける共有仮想バッファの推定されるフルネスである。
【０１１２】
0005410566.tif 000037
【０１１３】
ｍuは、上記ｍi,uと同様の不整合項である。
【０１１４】
ピクチュアレベルレートコントロールアルゴリズムは、以下の式にしたがって、各タイムスロットｕの間ビデオストリームｉの各ピクチュアｋに対し、当初のターゲットビット数を算出する。
【０１１５】
【数１５】
0005410566.tif 000038
【０１１６】
Ｓkは、トータルな複雑度がこの場合、ｎ個のビデオチャンネルの全ての複雑度に依存しているので、式５と比べて異なって定義される。
【０１１７】
【数１６】
0005410566.tif 000039
同じく、ｍuは、ｍi,uとは異なる定義を有する。
【０１１８】
【数１７】
0005410566.tif 000040
【０１１９】
上記のように、ｎ個のチャンネルは、異なるビデオコード規格を用いてエンコードされうる。この場合、ｃi,jは、規格に依存しているが、ｗi,jは、第１パス複雑系から第２パス複雑系へ変換するのみならず、異なるビデオコーディング規格間の複雑度を共通のベース規格に標準化する。特定のピクチュアｋへのビットレート割り当ては、先読みウィンドウの深さｄとチャンネル数ｎと各チャンネルの先読みウィンドウにおける全てのピクチュアのトータルな複雑度の組み合わせにより決定される。多重送信された出力Ｍ＿ＯＵＴがＣＢＲであるので、各ＳＰＴＳ  ＯＵＴ−ｉはＶＢＲ  ＳＰＴＳとしてエンコードされる。ピクチュアレベルレートコントロールアルゴリズムは、ｎ個のＳＰＴＳのビットレートを組み合わせて所望のＣＢＲを形成することを確実にする。
【０１２０】
本発明の上記実施の形態の全てにおいて、シングルチャンネルエンコーダのデュアルパス特性がシングルチャンネルエンコーダの第２パスエンコーダにおけるＭＢレベルレートコントロールアルゴリズムを実現するのに使用される。ピクチュアレベルレートコントロールアルゴリズムによって提供されたターゲットビット割り当てＴi,kは、ピクチュアｋのＭＢに分割されねばならない。個々のＭＢの複雑度がＭＢからＭＢへ変化するので、例えばＴi,kをピクチュアｋのＭＢの数で割るような均一な割り当ては必ずしも最適な解決ではない。
【０１２１】
第１パスエンコーダは、エンコーディング処理中マクロブロックの複雑度を測定する。第１パスエンコーダの分解能とビットレートが第２パスエンコーダのそれらとは異なるので、そして、第２パスエンコーダのモード決定が第１パスエンコーダにおいてなされるモード決定とは独立しているので、第２パスエンコーダによって測定されるであろうほどには、ＭＢの複雑度の真の値は第１パスエンコーダのＭＢ複雑度の計測に基づいて正確には算出され得ない。しかし、重要なことはＭＢレベルの複雑度の真の値ではなく、マクロブロックの相対的な複雑度である。すなわち、ＭＢからＭＢへどのくらい複雑度が変動するかである。第１パスエンコーダがピクチュアの第１の領域をそのピクチュアの第２の領域に関連して単純化／複雑化されるものとして測定すると、第２パスエンコーダは、同様に、そのピクチュアの第１の領域をそのピクチュアの第２の領域に関連して単純化／複雑化されるものとして測定する。このマッピング関係は、以下に図５及び図６に関連して詳細に説明される。ＭＢレベルレートコントロールアルゴリズムは、この関係を有利に用いている。
【０１２２】
本発明の上記実施の形態の全てにおいてマクロブロックレベルレートコントロールアルゴリズムは同じである。ＭＢレベルレートコントロールの目的は、ａ）第２パスエンコーダによって生成されたときのピクチュアｊのエンコーダされたバージョンの実際のサイズがピクチュアレベルレートコントロールアルゴリズムによって割り当てられたターゲットサイズＴi,jに近づくことを確実にすることと、ｂ）利用可能なビットが相対的なＭＢ複雑度に基づいて各ＭＢに分配されることを確実にすることである。上記のように、ＭＢレベルのビット割り当てを決定するときには、ＭＢの複雑度の実際の値は特に重要なことではない。特定のＭＢの相対的な複雑度の方がはるかに意味のあることである。すなわち、ＭＢからＭＢへ複雑度がどの程度変動するかである。ピクチュアに対するＭＢからＭＢへの第２パス複雑度の変動は、第２パスＭＢを対応する第１パスＭＢにマッピングして関連のある第１パス複雑度の変動を比較することによって予測されうる。
【０１２３】
例示のために話を簡単にすると、デュアルパスエンコーダによって受信されたピクチュアが８×８アレイの６４個のＭＢからなっているものと仮定する。第１パスエンコーダへの入力はデシメートされ、第１パスエンコーダに入るピクチュアの解像度を水平方向と垂直方向の両方向において２分の一に減らす。従って、第１パスエンコーダに入るピクチュアは、図６に示すような４×４アレイの１６個のＭＢからなる。現実には、ピクチュアはその解像度に応じて何百又は何千すらのＭＢを有することも可能であるが、しかし、この簡単な例から導き出される結論や相関関係はいずれの解像度にも適用される。この単純化は欠くべからざるものにあらず。それは正に例示のためである。図６はピクチュアｊの２つのバージョンを示している。１つのバージョンにおいて、ピクチュアｊは、第１パスエンコーダによって、４×４アレイのマクロブロックに分解される。第２のバージョンにおいて、第２パスエンコーダによって、８×８アレイのマクロブロックに分解される。第１のバージョンにおいて、各ＭＢは単独の大文字（Ａ−Ｐ）によって示され、第２のバージョンにおいて、各ＭＢは小文字符字（ａ−ｐ）と接尾数字（１−４）によって示される。以下の記号と変数のリストは、図６に関連してＭＢレベルレートコントロールアルゴリズムを記述するときの明確化のために提供される。
【０１２４】
Ｎ１は、第１パスエンコーダによって生成された所定のピクチュアのエンコードされたバージョンにおけるマクロブロックの数である。図６に図示された例においては、Ｎ１は１６である。
【０１２５】
ｋは、第１パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの順序数のインデックスとして使用される。マクロブロックの順序数は、ゼロで始まり、すなわち、ｋ＝０・・・（Ｎ１−１）であり、図６に図示された例においては、ｋ＝０・・・１５である。
【０１２６】
ｖは、第１パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの行数である。Ｈ．２６４のようなある種のコーディング規格において必要とされるものではないが、マクロブロックが均等なサイズであると仮定すると、ｖはマクロブロックの行数に対応する。図６に図示された例においては、ｖ＝４である。
【０１２７】
ｉは、第１パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの順序数の行インデックスである。水平方向の順序数はゼロで始まり、すなわち、ｉ＝０・・・（ｖ−１）である。
【０１２８】
ｈは、第１パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの列数である。Ｈ．２６４のようなある種のコーディング規格において必要とされるものではないが、マクロブロックが均等なサイズであると仮定すると、ｈはマクロブロックの列数に対応する。図６に図示された例においては、ｈ＝４である。
【０１２９】
ｊは、第１パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの順序数の列インデックスである。垂直方向の順序数はゼロで始まり、すなわち、ｊ＝０・・・（ｈ−１）である。
【０１３０】
Ｎ２は、第２パスエンコーダによって生成されたピクチュアのエンコードされたバージョンにおけるマクロブロックの数である。図６に図示された例においては、Ｎ２は６４である。
【０１３１】
0005410566.tif 000041
【０１３２】
0005410566.tif 000042
【０１３３】
0005410566.tif 000043
【０１３４】
ｍhとｍvは、それぞれ水平方向と垂直方向における整数の乗数であるが、それらは第１パスエンコーダと第２パスエンコーダの間の解像度の相違を表す。ｍhｍv＝Ｎ２／Ｎ１である。図６に図示された例においては、第２パスエンコーダの解像度は水平方向と垂直方向の両方向において第１パスエンコーダの解像度の２倍であり、ｍh＝２とｍv＝２である。
【０１３５】
ｇkは、第１パスエンコーダによって測定された時のマクロブロックｋの複雑度である。それは、マクロブロックｋの第１パス複雑度としても知られている。
【０１３６】
γkは、マクロブロック０乃至ｋの累積された第１パス複雑値である。
【０１３７】
ｕkは、所定のピクチュアのマクロブロック数ｋ未満のマクロブロックをエンコードした後で第１パスエンコーダによって生成されたビットの数である。
【０１３８】
0005410566.tif 000044
【０１３９】
0005410566.tif 000045
【０１４０】
0005410566.tif 000046
【０１４１】
ａIは、ＩタイプのピクチュアのＭＢレベルコントロール感応度を調整する増幅因子である。
【０１４２】
ａPは、ＰタイプのピクチュアのＭＢレベルコントロール感応度を調整する増幅因子である。
【０１４３】
ａBは、ＢタイプのピクチュアのＭＢレベルコントロール感応度を調整する増幅因子である。
【０１４４】
Ｑkは、第２パスエンコーダによるマクロブロックｋのために使用される量子化器である。
【０１４５】
ｑmaxは、量子化器の最大値である。それは規格に依存する。Ｈ．２６４の場合、ｑmaxは５１である。
【０１４６】
ｖkは、マクロブロック数ｋ未満のマクロブロックをエンコードした後で第２パスエンコーダの仮想バッファの累積されたフルネスである。
【０１４７】
ｖfは、第２パスエンコーダの仮想バッファの当初のフルネスである。
【０１４８】
0005410566.tif 000047
【０１４９】
しかし、図６に示されているように、第１パスエンコーダによって受信されたデシメートされたビデオストリームは、第２パスエンコーダによって受信されたオリジナルのビデオストリームとは異なってエンコードされ、所定のピクチュアのそれぞれのエンコードされたバージョンのマクロブロックは同じものではない。
【０１５０】
0005410566.tif 000048
【０１５１】
【数１８】
0005410566.tif 000049
【０１５２】
【数１９】
0005410566.tif 000050
式１７と１８は、それぞれ第２パス行列順序を返す。そして、対応する第１パス行列順序は、
【０１５３】
【数２０】
0005410566.tif 000051
【０１５４】
【数２１】
0005410566.tif 000052
【０１５５】
【数２２】
0005410566.tif 000053
再び図６に言及して、ＭＢがｎ２の場合、
【０１５６】
【数２３】
0005410566.tif 000054
【０１５７】
0005410566.tif 000055
【０１５８】
【数２４】
0005410566.tif 000056
【０１５９】
第２パスＭＢ複雑度変動は、それによって、対応する第１パスＭＢの累積された複雑度を使って、予測されうる。
【０１６０】
【数２５】
0005410566.tif 000057
【０１６１】
ここでｘは、単純にインデックスである。例として、第１パスＭＢであるＡ，Ｂ，Ｃ，Ｄ（ｋ＝０，１，２，３）が、それぞれ、１８４と６６７と１９０と１２２の第１パス複雑値ｇkを有すると仮定する（これらの数値がサンプルイメージからとられた標準化された複雑値であり、そして、例としてのみ与えられたものであることに特に言及する）。
従って、これらのＭＢに対する累積された第１パス複雑度は、
【０１６２】
【数２６】
0005410566.tif 000058
である。
【０１６３】
【数２７】
0005410566.tif 000059
【０１６４】
0005410566.tif 000060
【０１６５】
【表３】
0005410566.tif 000061
【０１６６】
図７は、上記の例における、累積された第１パス複雑度とマップされた累積第２パス複雑度の間の関係を示している。
【０１６７】
ピクチュアｊの場合、Ｔjがピクチュアレベルレートコントロールアルゴリズムによって決定されたときのピクチュアｊのエンコードされたバージョンのターゲットサイズである場合には、マクロブロックｋ＝０・・・Ｎ２−１のための支配方程式は、ピクチュアタイプに応じて、以下のようになる。
【０１６８】
【数２８】
0005410566.tif 000062
【０１６９】
【数２９】
0005410566.tif 000063
【０１７０】
【数３０】
0005410566.tif 000064
である。
【０１７１】
量子化器Ｑkは、
【０１７２】
【数３１】
0005410566.tif 000065
によって算出されるが、ここで、
【０１７３】
【数３２】
0005410566.tif 000066
である。
【０１７４】
定義により、パイプライン遅延のために、エンコーダバッファフルネスの真の値が直ちには利用できないので、Ｖfが式６によって与えられたエンコーダバッファフルネスの推定値であるＢi,uのコピーである。ＭＢレベルアルゴリズムは、（シングルプロセッサアーキテクチュアの）シーケンシャルエンコーダ設計にも（マルチプロセッサアーキテクチュアの）パラレルエンコーダ設計にも適用する。シーケンシャルレートコントロールの場合、パイプライン遅延はゼロとなりＶfは全てのピクチュアのエンコード後に直ちに利用可能である。
【０１７５】
本発明は、記載された特定の実施の形態に制限されるものではないことは明らかであり、そして、添付の特許請求の範囲に記載された発明の範囲及びその均等の範囲を逸脱することなく改作が行われることも明らかである。例えば、図２のデシメーションユニットと第１パスエンコーダが、ＭＰＥＧ２とＨ．２６４のような第２パスエンコーダによって実現されたものとは別の比較的に単純なビデオコード規格を実現するように設計された第１パスエンコーダに置換されうることは明らかである。このような場合、ピクチュアレベルレートコントロールアルゴリズムは、上記の異なる解像度の場合とは反対に、異なるコード規格により生じたピクチュア複雑度における差異を補償する必要があるでしょう。それとは別に、非圧縮ビデオストリームを受信するエンコーダよりもむしろ、上記と同じアーキテクチュアとアルゴリズムがトランスコーディング能力の点で採用されるが、シングルチャンネルトランスコーダは第１のエンコード規格によりエンコードされたビデオストリームを受信し、上記実施の形態の第１パスエンコーダがエンコードされた入力ビデオストリームをデコードして、レートコントロールアルゴリズムによって必要な複雑さの情報を発生する第１パスデコーダに置換され、そして、上記の方法でデコーダによって集められた複雑さの情報を利用することにより、第２パスエンコーダが第２のビデオコード規格によりデコードされたビデオストリームをエンコードする。
【図１】
0005410566.tif 000067
【図２】
0005410566.tif 000068
【図３】
0005410566.tif 000069
【図４】
0005410566.tif 000070
【図５】
0005410566.tif 000071
【図６】
0005410566.tif 000072
【図７】
0005410566.tif 000073