(57)【特許請求の範囲】
【請求項１】
複数のデータ圧縮チャネルを有するデータ圧縮アッセンブリを制御する方法であって、各データ圧縮チャネルが、
−  入力データを圧縮して圧縮データを取得するデータ圧縮器と、
−  その圧縮データを一時的に格納するとともに、前記圧縮データを出力データストリームの形態で発生させるバッファメモリスペースとを具える、方法において、
各データ圧縮チャネルに対する圧縮の程度に対する圧縮データ品質の目安を確立するステップと、
前記目安に依存して各出力データストリーム全体に亘るトータル出力ビットレートを区分するステップと、
前記出力データストリームのビットレート及び前記バッファメモリスペースに格納された圧縮データ量に基づいて、各データ圧縮チャネルにおける圧縮の程度を個別に制御するステップとを具えることを特徴とする方法。
【請求項２】
各データ圧縮チャネルに対して、
−  圧縮の程度に対する圧縮データ品質の目安を確立する第１データ圧縮ステップと、
−  前記出力データストリームの一部を形成する圧縮データを発生させる第１データ圧縮ステップとを具えることを特徴とする請求項１記載の方法。
【請求項３】
複数のデータ圧縮チャネルを有するデータ圧縮アッセンブリであって、各データ圧縮チャネルが、
−  入力データを圧縮して圧縮データを取得するデータ圧縮器と、
−  その圧縮データを一時的に格納するとともに、前記圧縮データを出力データストリームの形態で発生させるバッファメモリスペースとを具えるデータ圧縮アッセンブリにおいて、
各データ圧縮チャネルを、
−  前記出力データストリームのビットレート及び前記バッファメモリスペースに格納された圧縮データ量に基づいて、圧縮量を個別に制御し、
−  圧縮の程度に対する圧縮データ品質の目安を確立するように配置し、
前記データ圧縮アッセンブリが、前記目安に依存して各出力データストリーム全体に亘るトータル出力ビットレートを区分する結合ビットレートコントローラを具えることを特徴とするデータ圧縮アッセンブリ。
【請求項４】
複数のデータ圧縮チャネルを有するデータ圧縮アッセンブリに対するコンピュータプログラムプロダクトであって、各データ圧縮チャネルが、
−  入力データを圧縮して圧縮データを取得するデータ圧縮器と、
−  その圧縮データを一時的に格納するとともに、前記圧縮データを出力データストリームの形態で発生させるバッファメモリスペースと、
−  制御回路とを具える、コンピュータプログラムプロダクトにおいて、
前記制御回路にロードされる際に、前記データ圧縮アッセンブリに請求項１記載の方法を実施させる命令のセットを具えることを特徴とするコンピュータプログラムプロダクト。
【請求項５】
複数のビデオ符号化チャネルを有するビデオ符号化アッセンブリを制御する方法であって、各ビデオ符号化チャネルが、
−  ビデオデータを符号化して符号化ビデオデータを取得するビデオ符号化回路と、
−  前記符号化ビデオデータを一時的に格納するとともに、前記符号化ビデオデータを出力データストリームの形態で発生させるバッファメモリスペースとを具える、方法において、
−  各ビデオ符号化チャネルに対して、前記ビデオ符号化チャネルによって符号化すべき画像の平均の複雑性に関連する画像の複雑性の目安を確立するステップと、
−  その画像の複雑性の目安に依存して各出力データストリーム全体に亘るトータル出力ビットレートを区分するステップとを具え、
各ビデオ符号化チャネル内で、
−  前記ビデオ符号化チャネルの出力データストリームのビットレート及び前記バッファメモリスペース内に含まれる符号化ビデオデータ量に基づいて、符号化すべき画像群に対するターゲットを決定するステップと、
−  前記画像群に対するターゲットから符号化すべき現在の画像に対するターゲットを取り出すステップと、
−  前記現在の画像に対するターゲットに基づいて前記ビデオ符号化回路を制御し、前記現在の画像の符号化によって、前記ターゲットにほぼ等しい符号化ビデオデータ量を発生させるステップとを具えることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【技術の分野】
本発明は、複数のデータ圧縮チャネルを有するデータ圧縮アッセンブリに関するものである。データ圧縮チャネルを、例えば、エムペグ（ＭＰＥＧ）の規格に従って互いに相違するプログラムを符号化するエンコーダとする。符号化されたプログラムを多重して、いわゆるブーケ(bouquet)を形成する。その後、ブーケを受信器に伝送し、その受信器は、ブーケから特定のプログラムを選択するとともに選択したプログラムを復号化する。
【０００２】
【背景技術】
出願番号９６／２０５６８（代理人整理番号ＰＨＢ３３，９４５）の下で刊行された国際出願は、二つ以上のビデオ信号を符号化するビデオ信号符号化装置を記載している。この装置は、各ビデオ信号に対する符号化段を具える。符号化段は、符号化ビデオフレームごとのデータビットの数としてビデオ信号を符号化する。符号化段は、符号化ビデオ信号を、指定されたデータビットの数によって決定したビットレートで符号化ビデオ信号を出力する。ターゲット設定によって、各符号化段に対する指定されたデータビットの数が設定されて、各符号化段の出力ビットレートの総和がほぼ一定の状態になる。各符号化ビデオ信号は、バッファメモリに書き込まれ、指定された出力レートでそれぞれバッファメモリから順次読み出される。
【０００３】
このようなターゲット設定によって、結合ビットレート制御が行われる。個別のチャネルビットレートの変動にもかかわらず、全体に亘る出力ビットレートは一定に維持される。ターゲット設定は、各符号化段から受信したビデオイメージフレームの各情報成分に関連する比率を取り出す。指定されたビット数は、チャネル間で利用できるトータルビット数を比率に従って除算することによって設定される。
【０００４】
【発明の開示】
データ圧縮アッセンブリが複数のデータ圧縮チャネルを有すると仮定する。データ圧縮チャネルがデータ圧縮器及びバッファメモリスペースを具えるとも仮定する。データ圧縮器は、入力データを圧縮して圧縮データを取得する。バッファメモリスペースは、圧縮データを一時的に格納するとともに、出力データストリームの形態で圧縮データを発生させる。従来の符号化装置は、そのようなデータ圧縮アッセンブリの一例である。
【０００５】
本発明の目的は、データ圧縮アッセンブリが比較的良好な品質の圧縮データを発生させることである。このために、本発明は以下の態様を考慮する。
【０００６】
圧縮データ品質は、一般に、データが圧縮される程度が増大するに従って悪化し及びデータが圧縮される程度が減少するに従って良好になる。例えば、ＭＰＥＧビデオ符号化において、画像が圧縮される程度は量子化パラメータに依存する。符号化画像は、量子化パラメータが高い値を有する場合には比較的少ないビット数を有する。しかしながら、この場合、符号化画像は比較的小さい解像度を有する。それに対して、量子化パラメータが低い値を有する場合、符号化画像は比較的良好な解像度を有する。しかしながら、この場合、符号化画像は比較的多くのビット数を有する。
【０００７】
圧縮の程度は、例えばターゲットによって制御される。これは従来行われている。ターゲットは、符号化画像に対して所望のビット数となる。量子化パラメータは、ターゲットがほとんど達成されるように制御される。画像を符号化する際、量子化パラメータは、ターゲットを達成するために比較的高い値を有する必要がある。この場合、画像の圧縮が困難であるといえる。それに対して、ターゲットを、比較的低い値を有する量子化パラメータによって達成することができる。この場合、画像の圧縮が容易であるといえる。したがって、固定されたターゲットが存在すると仮定し、圧縮が容易な画像は、一度それが符号化されると、比較的良好な品質を有し、それに対して、圧縮が困難な画像は、比較的良好でない品質を有する。
【０００８】
従来技術は、以下の原理を適用すると考えられる。互いに相違する符号化チャネルで符号化すべきコンカレント画像の連続するセットの各々に対するトータルターゲットが存在する。トータルターゲットを、各エンコーダ段の出力ビットレートの和がほぼ一定となるように設定する。したがって、トータルターゲットを、コンカレント画像の各セットに対して同一にする必要がある。各セットに対して、どの画像が比較的容易に圧縮され及びどの画像が比較的困難に圧縮されるかを確立する。トータルターゲットを、以下のようにして画像間で区分する。比較的圧縮が困難な画像には、比較的高い個別のターゲットが与えられる。それに対して、比較的圧縮が容易な画像には、比較的低い個別のターゲットが与えられる。したがって、既に説明したように、コンカレント画像のセットを符号化するのに要すべきビット数に関して固定されたブーケが存在する。ブーケを、コンカレント圧縮画像がほぼ一様な品質を有するように区分する。
【０００９】
従来適用される原理は以下の不都合を有する。所定の瞬時に、圧縮が困難な画像が比較的多数存在し、他の瞬時において、この種の画像が比較的少数しか存在しない事態が発生する。トータルターゲットが一定であるので、圧縮が困難な画像は、所定の瞬時では比較的低い個別のターゲットを有し、それに対して、これら画像は、他の瞬時において比較的高い個別のターゲットを有する。その結果、圧縮画像の品質は時間変化する。
【００１０】
本発明によれば、圧縮の程度に対する圧縮データ品質の目安は、各データ圧縮チャネルに対して確立される。トータル出力ビットレートを、その目安に依存して各出力データストリーム全体に亘って区分する。各データ圧縮チャネルの圧縮の程度は、出力データストリームのビットレート及びバッファメモリスペースに格納された圧縮データ量に基づいて個別に制御される。
【００１１】
本発明によれば、各データ圧縮チャネルの圧縮の程度を個別に制御するので、データ圧縮チャネルは、将来の所定の期間全体に亘って、対応するデータに対して要するビット数に関するそれ自体のブーケを有する。ブーケは、出力データストリームのビットレート及びバッファメモリスペースに格納された符号化データ量によって決定される。データ圧縮チャネルが、圧縮困難なデータを受信すると、そのデータ圧縮チャネルの出力データストリームのビットレートを増大させることができる。その結果、ブーケが増大する。特定のデータ部分を符号化するのに要されるビット数は、データ圧縮チャネルによって個別に決定される。
【００１２】
したがって、本発明によれば、各符号化チャネルは、フレキシブルなブーケと、ブーケを局所的に作る方法の決定とを有する。それに対して、従来では、固定されたブーケ及びブーケを集中的に作る方法の決定が存在する。したがって、本発明は、データ圧縮制御の際に更にフレキシブルになる。その結果、本発明によって、各データ圧縮チャネルは、圧縮データの品質をほぼ一定に維持しやすくなる。
【００１３】
本発明及びそれを好適に実施するために任意に用いることができる他の形態は、後に説明するように添付図面を参照して明らかになる。
【００１４】
【発明を実施するための最良の形態】
以下の説明は参照符号に関するものである。図面中、同様なものに同様な参照文字を付すものとする。複数の同様なものが単一の図に出現する場合がある。この場合、数字又は接尾辞を参照文字に添付して、同様なものを区別する。便宜上数字又は接尾辞を省略することもあり、又は値が重要でない（値に注意しない）場合にはアスタリスクに置換することもある。
【００１５】
図１は、本発明の基本形態を実線で示す。データ圧縮アッセンブリは、複数のデータ圧縮チャネルＤＣＣを有する。データ圧縮チャネルは、データ圧縮器ＣＭＰ及びバッファメモリスペースＢＵＦを具える。データ圧縮器は、入力データＤを圧縮して、圧縮データＤｃを得る。バッファメモリスペースは、圧縮データを一時的に格納するとともに、圧縮データを出力データストリームＤＳの形態で発生させる。
【００１６】
圧縮の程度Ｅ[ＣＭＰ]に対する圧縮データ品質Ｑ[Ｄｃ]の目安ＩＮＤは、各データ圧縮チャネルに対して確立される。結合ビットレートコントローラ(joint bit-rate controller)ＪＢＲＣは、その目安に依存して各出力データストリームＤＳ全体に亘る全出力ビットレートＲｔｏｔを区分する。各データ圧縮チャネルの圧縮の程度は、出力データストリームのビットレートＲ及びバッファメモリスペースに格納された圧縮データ量Ｆに基づいて個別に制御される。
【００１７】
図１に示した形態を好適に実現するために、以下の態様を考慮する。所定の圧縮データ品質に対して比較的小さい程度でデータ部分が圧縮される場合、すなわち、圧縮データ品質が所定の圧縮の程度に対して比較的良好でない場合、データ部分を圧縮するのが困難となる。圧縮の程度に対する圧縮データ品質の目安を確立するのに種々の方法がある。例えば、その目安を、現在の圧縮経験に基づいて確立する。この場合、以前のデータ部分を圧縮するのが困難であった場合にはデータ部分を圧縮するのが困難となり、又は以前のデータ部分を圧縮するのが容易であった場合にはデータ部分を圧縮するのが容易となると仮定される。このアプローチは、圧縮の困難性に関してのみ緩慢に変化する場合に十分な結果となる。
【００１８】
図２は、図１に示した形態に加えて任意に適用することができる以下の形態を示す。データ圧縮チャネルＤＣＣは、２タイプのデータ圧縮を交互に実行する。第１のデータ圧縮ＤＣ１は、圧縮の程度Ｅ[ＣＭＰ]に対する圧縮データ品質Ｑ[Ｄｃ]の目安ＩＮＤを確立する。第２のデータ圧縮ＤＣ２は、出力データストリームＤＳの一部を形成する圧縮データＤｃを発生させる。
【００１９】
図２に示した形態は、以下の利点を提供する。目安は、データストリームの一部を形成するために、まだ圧縮されていないデータに対する圧縮経験を有する。その結果、目安は、更に新しいものとなり、以前のデータの圧縮のみに基づく目安よりも正確なものとなる。目安が更に正確なものとなるので、トータルビットレートを、データストリーム間で更に正確に区分することができる。すなわち、トータルビットレートの区分は、ビット数に関するデータ圧縮チャネルの必要に更によく整合する。その結果、図２の形態は、十分な品質に寄与する。
【００２０】
図３は、図１及び２を参照して既に説明した形態を組み込んだビデオエンコーダアッセンブリの一例を示す。このビデオエンコーダアッセンブリは、複数のビデオプログラムＶＰを受信し、それに応答して多重ＭＰＥＧデータストリームＭＭＤＳを発生させる。多重ＭＰＥＧデータストリームＭＭＤＳは、各ビデオプログラムＶＰのＭＰＥＧ符号化形態を有する。ビデオエンコーダアッセンブリは、複数のエンコーダＥＮＣと、マルチプレクサＭＵＸと、結合ビットレートコントローラＪＢＲＣとを具える。
【００２１】
ビデオエンコーダアッセンブリは、基本的には次のようにして動作する。各エンコーダＥＮＣは、種々のビデオプログラムを符号化し、ＭＰＥＧデータストリームＭＤＳをマルチプレクサに供給する。マルチプレクサはＭＰＥＧデータストリームを結合して、マルチプレクサＭＰＥＧデータストリームＭＭＤＳを得る。各エンコーダは、エンコーダが符号化するビデオプログラムの各画像を有するビットレート制御の目安ＩＮＤも確立する。ビットレート制御の目安は、現在の画像及びそれに続く画像の符号化の困難さの予測となる。所定の品質に対して、画像の符号化によって比較的多くのビット数が生じる場合には、画像の符号化は困難となり、画像の符号化によって比較的少ないビット数が生じる場合には、画像の符号化は容易となる。
【００２２】
結合ビットレートコントローラは、それが受信するビットレート制御の目安に基づいて、ビデオエンコーダ間でトータルビットレートＲｔｏｔを区分する。すなわち、結合ビットレートコントローラは所定のビットレートＲを各エンコーダに割り当て、これらビットレートの和はトータルビットレートとなる。エンコーダは、割り当てられたビットレートでＭＰＥＧデータストリームをマルチプレクサに供給する。結合ビットレートコントローラは、符号化が困難な画像を受信するエンコーダに対して、符号化が容易な画像を受信するエンコーダのビットレートより高いビットレートを割り当てる。これによって、結合ビットレートコントローラは、各エンコーダから発生した符号化画像間でほぼ一定の品質比率(quality ratio)を維持する。さらに、結合ビットレートコントローラは、ほぼ一定の品質の連続的な符号化画像を発生させるように各エンコーダを補助する。これを後に詳細に説明する。
【００２３】
図４は、図３に示したビデオエンコーダアッセンブリの一部を形成するエンコーダＥＮＣを示す。エンコーダは、符号化回路ＥＣと、出力バッファＯＢＵＦと、コントローラＣＯＮとを具える。エンコーダは、基本的には次のように動作する。符号化回路は、量子化パラメータＱＰに依存して、連続する画像Ｐを符号化する。符号化回路は、符号化画像Ｐｅを出力バッファＯＢＵＦに供給する。出力バッファは、ビットレートＲのＭＰＥＧデータストリームの形態の符号化画像を出力する。
【００２４】
どの画像を符号化するかに応じた３タイプの符号化：Ｉタイプ符号化、Ｐタイプ符号化及びＢタイプ符号化がある。以後、Ｉタイプ、Ｐタイプ又はＢタイプ符号化した画像をそれぞれ、Ｉピクチャ、Ｐピクチャ及びＢピクチャと称する。さらに、適用される符号化のタイプには周期的なパターンがある。各サイクルは、Ｉタイプ符号化によって開始され、それに１個以上のＰタイプ符号化及びＢタイプ符号化が続く。１サイクルはＮ個の画像をカバーし、Ｎを整数とする。例えば、Ｎ＝６に対して、周期的な符号化パターンはＩ−Ｂ−Ｂ−Ｐ−Ｂ−Ｂとなる。
【００２５】
コントローラは、それが結合ビットレートコントローラから受信する結合ビットレート制御メッセージＪＢＲＣＭに基づいてビットレートを制御する。結合ビットレート制御メッセージは、エンコーダに対するビットレートを規定し、このビットレートを適用する必要があるときを規定する。したがって、基本的には、結合ビットレート制御メッセージは、エンコーダに対するビットレートプロファイルを規定する。コントローラは、ビットレートプロファイルに従ってビットレートを制御する。それは、符号化画像データが出力バッファから読み出されるレートを決定するビットレート制御信号ＲＣによって行われる。
【００２６】
量子化パラメータは、符号化画像の品質をほとんど決定する。画像を符号化する間にその値が小さくなるに従って、符号化画像の品質が高くなるが、符号化画像のビット数が増大する。好適には、量子化パラメータは、ＭＰＥＧデータストリームを受信するデコーダの入力バッファにアンダーフロー又はオーバーフローが生じることのないほぼ一定のできるだけ小さい値を有する。
【００２７】
コントローラは、複数のパラメータに基づいて量子化パラメータを制御する。あるパラメータを、結合ビットレート制御メッセージによって規定されるようなビットレートプロファイルとする。他のパラメータを、入力バッファに含まれる符号化データ量Ｆとする。これら二つのパラメータは、ビット数に関して、画像群を符号化するのに利用できる空間を規定する。量子化パラメータ制御に用いられる他のパラメータを、符号化結果ＥＲとする。符号化結果は、量子化パラメータがほぼ一定の値を有するように画像間で利用できる空間を区分する方法についての情報を提供する。画像又はその部分に対する符号化結果を、次のように表現することができる。適用された量子化パラメータ値を乗算した画像又はその部分の符号化によって発生したビット数。以後、この積を複雑性と称する。
【００２８】
エンコーダは、ワンパスモード又はダブルパスモードで動作する。ワンパスモードにおいて、符号化回路は画像を一度だけ符号化する。すなわち、画像は符号化回路を一度しか通過しない。このようなワンパス中、コントローラは、以前の画像のみに関連する符号化結果を用いて量子化パラメータを制御する。ダブルパスモードにおいて、符号化回路は画像を二度符号化する。すなわち、画像は符号化回路を二度通過する。１回目の通過において、コントローラが固定量子化パラメータを発生させる間に画像が符号化される。１回目の通過は、画像に関連する符号化結果を得るように作用する。２回目の通過において、コントローラは、既に説明したような１回目の通過で得られた符号化結果を用いて量子化パラメータを制御する。したがって、量子化パラメータ制御は、一般にワンパスモードの場合よりもダブルパスモードの場合の方が良好に行われる。
【００２９】
コントローラは、符号化すべき各画像を有するビットレート制御の目安ＩＮＤも確立する。ワンパスモードにおいて、エンコーダは、先行する画像のみに関連する符号化結果に基づいてビットレート制御の目安を確立する。ダブルパスモードにおいて、エンコーダは、現在の画像の符号化結果を有する符号化結果に基づいてビットレート制御の目安を確立する。
【００３０】
図５は、図３に示したビデオエンコーダアッセンブリに対する結合ビットレート制御方法を示す。初期化ステップＧＳ１において、結合ビットレートコントローラは、ターゲットビットレートＲｔａｒｇｅｔを各エンコーダＥＮＣに割り当てる。ターゲットビットレートＲｔａｒｇｅｔは、関連のエンコーダから供給された符号化画像の平均品質を決定する。
【００３１】
以下の一例のステップを繰り返し実行する。例えば、これらステップを画像期間ごとに実行する。
【００３２】
目安計算ステップＧＳ２において、各エンコーダは、ビットレート制御の目安ＩＮＤを計算し、ビットレート制御の目安を結合ビットレートコントローラに供給する。ビットレート制御目安を次のようにして計算する。ビットレート制御の目安を、エンコーダに対するターゲットビットレートを平均の画像複雑性ＡＶＸに乗算したものを輝度エントロピーの目安ＡＣＴによって除算したものとする。平均の画像複雑性を次のようにして計算する。Ｎ−１個の順次の画像に対して、Ｉ画像、Ｐ画像及びＢ画像の各々は、最近符号化したＩ画像及びＢ画像の複雑性をそれぞれ有する。この場合、平均の画像複雑性は、現在の画像及びそれに続くＮ−１個の画像の平均の複雑性となる。輝度エントロピーは、ワンパスモードの以前の画像又はダブルパスモードの現在の画像である最近の符号化画像中のマクロブロックアクティビティの平均となる。マクロブロックアクティビティは、１９９３年４月に刊行された文書ＩＳＯ／ＩＥＣ ＪＴＣ１／ＳＣ２９／ＷＧ１１／Ｎ０４００の“Ｔｅｓｔ Ｍｏｄｅｌ ５，Ｄｒａｆｔ Ｒｅｖｉｓｉｏｎ ２”，ｓｅｃｔｉｏｎ５．２．２の６０頁に規定されている。
【００３３】
ビットレート計算ステップＧＳ３において、結合ビットレートコントローラは、各エンコーダに対して、理想的にエンコーダに割り当てるべき最適ビットレートＲｏｐｔを計算する。エンコーダに対する最適ビットレートを、全てのビットレート制御の目安の和によって除算したエンコーダのビットレート制御の目安にトータルビットレートを乗算したものとする。したがって、基本的には、最適ビットレートは、トータルビットレートの一部となる。その部分のサイズは、全てのビットレート制御の目安の和に対するビットレート制御の目安の寄与に対応する。
【００３４】
スイッチングタイム検査ステップＧＳ４において、種々のスイッチングタイムＴｓｗを検査する。スイッチングタイムを、各ＭＰＥＧデータストリームのビットレートを変更させる瞬時とする。一部又は全てのスイッチングタイムを、現在の瞬時に一定の端末間遅延を加えたものより早くしてもよい。一定の端末間遅延を、符号化画像がエンコーダの出力バッファに書き込まれる瞬時と、エンコーダに直接結合した仮想的なデコーダの入力バッファから符号化画像が読み出される瞬時との間の差とする。すなわち、エンコーダと仮想的なデコーダとの間には伝送遅延が存在しない。
【００３５】
スイッチングタイム検査ステップＧＳ４は、スイッチングタイムごとに個別に実行される２サブステップを具える。
【００３６】
ビットレートクリッピングサブステップＧＳ４ａにおいて、結合ビットレートコントローラは、以下のようにして、各エンコーダに対するクリップされた最適ビットレートＲｏｐｔｃを確立する。結合ビットレートコントローラは、先ず、エンコーダのＭＰＥＧ−２コンプライアンスに対する新たな最高ビットレートＲｍａｘ及び新たな最低ビットレートＲｍｉｎを計算する。エンコーダは、エンコーダから発生するＭＰＥＧデータストリームによってデコーダ入力バッファにアンダーフローもオーバーフローもしない場合、ＭＰＥＧ−２に従う。新たなビットレートが新たな最高ビットレートを超える場合にはオーバーフローが生じ、新たなビットレートが最低ビットレートよりも下である場合にはアンダーフローが生じる。結合ビットレートコントローラが新たな最低ビットレート及び新たな最高ビットレートを計算する方法を、後に詳細に説明する。クリップした最適ビットレートは、その最適ビットレートによってアンダーフロー又はオーバーフローが発生しない場合、既に説明したようにして規定した最適ビットレートとなる。この場合、クリップした最適ビットレートはそれぞれ、最低ビットレート又は最高ビットレートになる。
【００３７】
デルタレート計算サブステップＧＳ４において、結合ビットレートコントローラは、各エンコーダに対してデルタレートΔＲを計算する。ビットレートを、調査中のスイッチングタイムでクリップされた最適ビットレートに切り替えるものと仮定する。結合ビットレートコントローラは、現在の画像及びそれに続くＮ−１個の画像をカバーする時間間隔に亘って得られる平均ビットレートを計算する。デルタレートを、最適ビットレートとこのように計算した平均ビットレートとの間の差とする。理想的には、デルタレートを、各エンコーダに対して零にする。
【００３８】
スイッチングタイム選択ステップＧＳ５において、調査したスイッチングタイムのうちの一つを、以下のようにして選択する。スイッチングタイムの各々に対して、どのデルタレートが最高値を有するかを確立する。このデルタレートを最高デルタレートと称する。デルタレートが高くなるに従って、関連のビットレートが最適ビットレートからはずれる度合いが高くなり、したがって、ＭＰＥＧデータストリーム間の所望の品質比率からの偏差が大きくなる。最高デルタレートが最低値を有するスイッチング時間を選択する。
【数１】
Ｔｓｗｓｅｌ＝Ｔｓｗ⇒ＭＩＮ（ＭＡＸ（ΔＲ））
【００３９】
ビットレート制御ステップＧＳ６において、結合ビットレートコントローラは、結合ビットレート制御メッセージＪＢＲＣＭを各エンコーダに送信する。結合ビットレート制御メッセージは、選択したスイッチングタイムを指定する。それは、選択したスイッチングタイムに適用するエンコーダに対してクリップした最適ビットレートも指定する。したがって、結合ビットレートコントローラは、選択したスイッチングタイムに一度到達するとクリップした最適ビットレートでＭＰＥＧデータストリームを発生させるように、各エンコーダをプログラムする。そのときまで、各エンコーダは、以前のビットレート制御メッセージ中に規定したようなＭＰＥＧデータストリームを出力する。
【００４０】
図６は、図３に示したビデオエンコーダアッセンブリ中のエンコーダに対する、エンコーダの出力バッファを通じた符号化データの遷移及び仮想的なデコーダの入力バッファを通じた符号化データの遷移を示す。図６は、時間Ｔを横軸に表すとともにエンコーダによって発生した符号化データＮＢのビット数に関する量を縦軸に表すグラフである。縦軸は、符号化データがどの画像Ｐに属するかも表す。符号化データの量は、符号化された連続する画像Ｐの各々とともに増大する。
【００４１】
図６に示したグラフは、三つの曲線Ａ，Ｂ及びＣを具える。曲線Ａは、エンコーダの出力バッファに書き込まれる符号化データを表す。例えば、曲線Ａは、画像Ｐ[ｉ]に属する符号化データが瞬時Ｔ[ｉ]で出力バッファに書き込まれることを示す。画像期間Ｔｐｐごとに、新たな画像が出力バッファに書き込まれる。
【００４２】
曲線Ｂは、ＭＰＥＧデータストリームを形成するように出力バッファから読み出される符号化データを表す。曲線Ｂの勾配は、ＭＰＥＧデータストリームのビットレートによって規定される。曲線Ｂは、例えば、瞬時Ｔ[ｉ]に対する遅延ΔＴｏｂの後、画像Ｐ[ｉ]に属する符号化データが出力バッファから読み出されることを示す。任意の伝送遅延なく仮想的なデコーダがＭＰＥＧデータストリームを受信すると仮定する。その結果、曲線Ｂは、このデコーダの入力バッファに書き込まれる符号化データも表す。すなわち、画像Ｐ[ｉ]は、瞬時Ｔ[ｉ]＋ΔＴｏｂで入力バッファに書き込まれる。
【００４３】
曲線Ｃは、仮想的なデコーダの入力バッファから読み出される符号化データを表す。画素が瞬時的に入力バッファから読み出されると仮定する。すなわち、画像を読み出すのに時間を要しない。例えば、曲線Ｃは、画像Ｐ[ｉ]に属する符号化データが瞬時Ｔ[ｉ]＋ΔＴｅｅｄで入力バッファから読み出されることを示す。ΔＴｅｅｄは、一定の端末間遅延を表す。したがって、一定の端末間遅延は、画像がエンコーダの出力バッファに書き込まれる瞬時と画像が仮想的なデコーダの入力バッファから読み出される瞬時との間の差となる。それは、
【数２】
ΔＴｅｅｄ＝ΔＴｏｂ＋ΔＴｉｂ
となり、ΔＴｉｂは入力バッファ遅延を表す。入力バッファ遅延は、画像をデコーダの入力バッファから読み出すべきときを規定する。
【００４４】
任意の瞬時において、仮想的なデコーダの入力バッファに含まれるデータ量は、その瞬時における曲線Ｂと曲線Ｃとの間の差となる。ＭＰＥＧコンプリアンスに対して、このデータ量は上限と下限との間にある。この場合、ＭＰＥＧデータストリームを受信するＭＰＥＧに従う任意のデコーダは、アンダーフローもオーバーフローもしない。これに関して、エンコーダとデコーダとの間の任意の伝送遅延は何の役割も果たさない。この理由は、ＭＰＥＧデータストリームが、入力バッファから画像を読み出す必要があるときを各画像に対して規定する制御ワードを具えるからである。その制御ワードは、
【数３】
ΔＴｏｂ＋ΔＴｉｂ＝ΔＴｅｅｄ
となるように各画像に対してΔＴｉｂを規定する。その結果、遅延ΔＴｔｒａｎｓ後、仮想的なデコーダの入力バッファに含まれるデータ量が常に実際のデコーダの入力バッファに含まれるようになり、ΔＴｔｒａｎｓを、伝送遅延とする。仮想的なデコーダの入力バッファが決してアンダーフローもオーバーフローもしない場合、実際のデコーダの入力バッファもアンダーフローもオーバーフローもしない。
【００４５】
現在の時間を瞬時Ｔ[ｉ]とし、画像Ｐ[ｉ]を、符号化しようとし、その結果、エンコーダの出力バッファに書き込もうとしていると仮定する。これは、Ｔ[ｉ]より後の任意の瞬時が未来であることを意味する。既に説明したように、出力バッファに書き込まれる任意の符号化画像は、遅延ΔＴｅｅｄの後に入力バッファから読み出される。その結果、曲線Ｃの将来を、現在の時間からΔＴｅｅｄ延在する時間間隔内で正確に予測することができる。それは、アンダーフローとオーバーフローのうちのいずれかが存在し又はいずれも存在しない同一時間間隔内の曲線Ｂの将来にのみに依存する。曲線Ｂの将来は、ＭＰＥＧデータストリームに対するビットレートプロファイルによって規定される。ビットレートプロファイルは、図５を参照して説明したように、結合ビットレートコントローラによって決定される。
【００４６】
図７は、図３のビデオエンコーダアッセンブリのエンコーダに対する新たな最低ビットレート及び新たな最高ビットレートを計算する方法を示す。この計算は、将来の瞬時Ｔ[ｉ]＋ΔＴｓｗにおけるビットレート切替に適用され、ΔＴｓｗを、０とΔＴｅｅｄとの間にする。図７は、図６に示したグラフの形態を想起させるグラフである。簡単のために、ビットレートを、ほぼ一定にし、Ｔ[ｉ]＋ΔＴｓｗまでＲ１とする。入力バッファのアンダーフローより下のデータ量を零と仮定する。入力バッファのオーバーフローより上のデータ量をＯＶＲと仮定する。図７に示したグラフは、曲線ＣをＯＶＲに等しい量だけ引き上げた曲線Ｃ＋を具える。
【００４７】
曲線Ｂを、二つの勾配Ｒｍｉｎ及びＲｍａｘで延在させる。勾配Ｒｍｉｎは、アンダーフローが生じる場合より下の新たな最低ビットレートを表す。勾配Ｒｍｉｎは、曲線Ｃの１点しか接触しない。勾配Ｒｍｉｎの勾配が更に緩慢になると、アンダーフローが生じる。勾配Ｒｍａｘは、オーバーフローが生じる場合より上の新たな最大ビットレートを表す。勾配Ｒｍａｘは、曲線Ｃ＋の１点のみに接触する。勾配Ｒｍａｘの勾配が更に急峻になると、オーバーフローが生じる。
【００４８】
結合ビットレートコントローラは、エンコーダから供給されたメッセージに基づいて各エンコーダに対する曲線Ｃ及びＣ＋を計算する。メッセージは、例えば、符号化画像に含まれる符号化データ量及び仮想的なデコーダの入力バッファから符号化画像が読み出される瞬時を表す。また、結合ビットレートコントローラは、エンコーダのビットレートプロファイルに基づいて、瞬時Ｔ[ｉ]＋ΔＴｓｗまで曲線Ｂを計算する。ビットレートプロファイルは、結合ビットレートコントローラそれ自体によって決定される。したがって、曲線Ｂを計算するに当たり、結合ビットコントローラは、最近エンコーダに供給されたビットレート制御メッセージを記憶すれば十分である。一度、曲線Ｃ及びＣ＋がＴ[ｉ]とＴ[ｉ]＋ΔＴｅｅｄとの間の時間間隔に対して計算され、かつ、曲線ＢがＴ[ｉ]とＴ[ｉ]＋ΔＴｓｗとの間の時間間隔に対して計算されると、結合ビットレートコントローラは、スイッチングタイムＴ[ｉ]＋ΔＴｓｗに適用される新たな最低ビットレート及び新たな最高ビットレートを計算することができる。
【００４９】
図８は、図４に示したエンコーダでの量子化パラメータ制御の方法を示す。この方法は、各画像Ｐに対して実行される複数のステップＳ１−Ｓ９を具える。ステップＳ１−Ｓ９を、画像Ｐの各スライスに対しても実行することができる。エンコーダが上記ワンパスモードで動作すると仮定する。ＭＰＥＧにおいて、三つの相違するタイプの画像符号化、すなわち、Ｉタイプ符号化、Ｐタイプ符号化及びＢタイプ符号化がある。Ｉタイプ符号化、Ｐタイプ符号化及びＢタイプ符号化が行われる画像を、Ｉ画像、Ｐ画像及びＢ画像と称する。
【００５０】
ステップＳ１において、画像の複雑性ＰＣＸを、画像Ｉ、画像Ｐ及び画像Ｂの各タイプに対して計算する。各画像の複雑性ＰＣＸは、最近の符号化によって発生したビット数ＮＯＢ及び最近の符号化によって用いられた量子化パラメータ値ＱＰＡＲの積となる。各画像の複雑性ＰＣＸは、実際には、関連の符号化のタイプに対する以前の符号化経験となる。それを、所定の量子化パラメータ値ＱＰＡＲに対して、次の画像が符号化される場合に得られる出力ビット数を予測するのに用いることができる。使用すべき符号化タイプに対する画像の複雑性ＰＣＸを、量子化パラメータ値ＱＰＡＲによって除算する。この除算結果は、以前の符号化経験に基づく得られた出力ビット数の予測となる。
【００５１】
ステップＳ２において、画像群(group of picture)の複雑性ＧＣＸを計算する。画像群の複雑性ＧＣＸは３項の和となる。各項は、相違する画像タイプに関するものであり、関連のタイプの画像の複雑性ＰＣＸに画像群内の関連のタイプの画像数Ｍを乗算したものに関連のタイプの重み付け係数Ｋによって除算したものとなる。画像群の複雑性ＧＣＸも、実際には、量子化パラメータＱＰＡＲに対する値を計算するのに使用することができる画像の複雑性ＰＣＸよりも広い以前の符号化経験となる。例えば、画像群の複雑性ＧＣＸを、それに続くＮ個の画像に対して得られる所望の出力ビット数によって除算される。したがって、量子化パラメータＱＰＡＲに対する値が得られ、以前の量子化経験に基づいて、それに続くＮ個の画像によって所望のビット数を発生させる。しかしながら、後者はそのようにする必要がない。
【００５２】
ステップＳ３において、画像符号化予測ＰＣＥを、画像Ｉ，Ｐ及びＢの各タイプに対して計算する。画像符号化予測ＰＣＥを、第１項及び第２項の積とする。第１項を、関連のタイプの重み付け係数Ｋによって除算した関連のタイプの画像の複雑性ＰＣＸとする。第２項を、群符号化ターゲットＧＣＴに対する初期値ＶＡＬｉｎｔをステップＳ２で計算した画像群の複雑性ＧＣＸによって除算したものとする。群符号化ターゲットＧＣＴを、現在の画像及びそれに続くＮ−１個の画像を符号化することによって得られるビット数とする。群符号化ターゲットＧＣＴに対する初期値ＶＡＬｉｎｔを、現在の画像及びそれに続くＮ−１個の画像をカバーする期間中に出力バッファから出力されるビット数とする。したがって、画像符号化推定ＰＣＥは以下のターゲットに基づくものである。出力バッファＯＢＵＦに通じるデータ量を、関連の期間中に出力バッファＯＢＵＦから除去されるデータ量に等しくする必要がある。画像符号化推定ＰＣＥの第２項は、以前の符号化経験に基づいてこのターゲットを達成すべき量子化パラメータＱＰＡＲに対する値を表す。
【００５３】
群符号化ターゲットＧＣＴの初期値ＶＡＬｉｎｔは、エンコーダによって受信した結合ビットレート制御メッセーシに依存する。図３を参照して既に説明したように、その結合ビットレート制御メッセージは、エンコーダに対するビットレートプロファイルを規定する。ビットレートプロファイルは、現在の画像及びそれに続くＮ−１個の画像をカバーする期間中に出力バッファＯＢＵＦから出力されるビット数を決定する。このビット数が群符号化ターゲットＧＣＴであるので、結合ビットレート制御メッセージはこのようにしてこのターゲットを決定する。その結果、画像符号化推定ＰＣＥは、結合ビットレート制御メッセージに依存する。
【００５４】
ステップＳ４において、次のＩ画像における予測バッファ充填量ＢＦ[ｎｅｘｔＩ]を計算する。予測されるバッファ充填量ＢＦ[ｎｅｘｔＩ]は、群符号化ターゲットＧＣＴに対する初期値ＶＡＬｉｎｔ及びそれから得られる画像符号化推定ＰＣＥに基づく。予測されるバッファ充填量ＢＦ[ｎｅｘｔＩ]を、出力バッファの現在の充填量ＢＦ[ｎｏｗ]に、次のＩ画像までの各画像に対する画像符号化推定ＰＣＥを具える画像符号化推定の和Σを加算するとともに、次のＩ画像までに出力バッファから出力されるビット数ＯＵＴ[ｎｅｘｔＩ]を減算したものとなる。
【００５５】
ステップＳ５において、バッファ充填残余ΔＢＦを計算する。バッファ充填残余ΔＢＦを、予測されるバッファ充填量ＢＦ[ｎｅｘｔＩ]と次のＩ画像における所望のバッファ充填量ＢＦ[ｄｅｓ]との間の差とする。好適には、所望のバッファ充填量ＢＦ[ｄｅｓ]を、Ｉ画像を復号化する直前に十分なデータを充填した復号化端末の入力バッファに対応するように規定する。
【００５６】
ステップＳ６において、群符号化ターゲットＧＣＴに対する適合値ＶＡＬａｄｐを計算する。群符号化ターゲットＧＣＴに対する適合値ＶＡＬａｄｐを、現在の画像とそれに続くＮ−１個の画像をカバーする期間中に出力バッファから出力されるビット数となる群符号化ターゲットＧＣＴに対する初期値ＶＡＬｉｎｔからバッファ充填残余ΔＢＦを減算したものとなる。
【００５７】
ステップＳ７において、画像符号化ターゲットＰＣＴを、現在の画像を符号化する際に計算する。画素の符号化ターゲットＰＣＴは、画像符号化推定ＰＣＥが群符号化ターゲットＧＣＴの初期値ＶＡＬｉｎｔに基づくのと同様に群符号化ターゲットＧＣＴの適合値ＶＡＬａｄｐに基づく。画像符号化ターゲットＰＣＴを、第１項と第２項との積とする。第１項を、符号化すべき画像のタイプＩ，Ｂ又はＰに属する画像の複雑性ＰＣＸをそのタイプに使用される重み付け係数Ｋによって除算したものとする。第２項を、群符号化ターゲットＧＣＴに対する適合値ＶＡＬａｄｐを画像群の複雑性ＧＣＸによって除算したものとする。
【００５８】
ステップＳ８において、画像符号化ターゲットＰＣＴを確認して、確認した画像符号化ターゲットＰＣＴｖｅｒを得るようにする。このステップにおいて、現在の画像を符号化することによって、画像符号化ターゲットＰＣＴに等しいビット数が発生する場合にアンダーフロー又はオーバーフローが発生するか否か検査する。アンダーフローもオーバーフローもない場合、確認した画像符号化ターゲットＰＣＴｖｅｒが画像符号化ターゲットＰＣＴに等しくなる。すなわち、画像符号化ターゲットＰＣＴは変化しない。しかしながら、画像符号化ターゲットＰＣＴによってアンダーフロー又はオーバーフローが発生する場合、画像符号化ターゲットＰＣＴは、アンダーフローもオーバーフローも発生しない値に置換する際に有効にクリップされる。
【００５９】
ステップＳ９において、量子化パラメータ値ＱＰＡＲは、現在の画像の符号化中に次のようにして制御される。量子化パラメータ値ＱＰＡＲは、第１項と第２項との和となる。第１項を、関連のタイプの画像の複雑性ＰＣＴを確認された画像符号化ターゲットＰＣＴｖｅｒによって除算したものとする。第２項を、ターゲットからの偏差ΔＴＧＴと応答パラメータＲＰとの積とする。ターゲットからの偏差ΔＴＧＴを、確認した画像符号化ターゲットＰＣＴｖｅｒに現在の画像の符号化中にこれまで経過した時間ｔ−ｔ０及び画像期間Ｔｐを乗算したものを現在の画像の符号化によってこれまで発生したビット数ＮＯＢから減算したものとする。応答パラメータＲＰを、ＭＰＥＧデータストリームＤＳのビットレートＲによって５１２を除算したものとする。
【００６０】
量子化パラメータ制御ＱＰＡＲに関して以下説明する。第１項を、量子化パラメータ値ＱＰＡＲを制御するための大域又は長期ストラテジとする。画像符号化ターゲットがクリップされないと仮定し、それは、確認された画像符号化ターゲットＰＣＴｖｅｒが画像符号化ターゲットＰＣＴに等しいことを意味する。この場合、第１項は、関連の画像に対する重み付け係数に画像群の複雑性ＧＣＸを乗算したものに群符号化ターゲットＧＣＴの適合値ＶＡＬａｄｐを除算したものに相当する。群画像の複雑性ＧＣＸは、「実際に最近発生したビット数」と「適用された量子化パラメータ」との積の総和からなる。したがって、第１項は、以前の経験に基づいて所望のビット数の結果となるように予測される量子化パラメータＱＰＡＲに対する値を有効に表す。第２項を、量子化パラメータＱＰＡＲを調整するための局所的又は短期ストラテジとする。それは、確認した画像符号化ターゲットＰＣＴｖｅｒのターゲットビット数から比較的大きく逸脱するビット数を符号化によって発生させるのを防止する安全目安の一種である。
【００６１】
図面及びこれまでの説明は本発明を限定するものではない。添付した請求の範囲内にある種々の変更例があることは明らかである。これに関して、以下説明する。
【００６２】
種々のユニットに亘る複数の物理的に展開する機能又は機能要素がある。これに関して、図面は線図的であり、本発明のあり得る実施の形態の一つのみを表す。したがって、図面が、相違するブロックとして相違する機能素子を示すが、これは、単一の物理ユニットとして一部又は全ての機能要素を実現することを除外するものではない。例えば、図３に示すエンコーダの出力バッファを、国際出願番号９６／２０５６８号（代理人整理番号ＰＨＢ３３，９４５）の下で発行された国際出願に記載されたような単一の記憶回路として実現することもできる。
【００６３】
図８が出力ビットレートに基づく量子化パラメータ制御の方法の一例を示すが、これは、他の量子化パラメータ制御方法を除外するものではない。重要なことは、図８の方法においてターゲットによって制御される圧縮の程度を出力ビットレートに基づいて計算することである。
【図面の簡単な説明】
【図１】  請求項１に係る本発明の基本形態を示す概念図である。
【図２】  請求項２に係る本発明の基本形態を示す概念図である。
【図３】  本発明によるビデオエンコーダアッセンブリの一例を示すブロック図である。
【図４】  図３に示すビデオエンコーダアッセンブリの一部を形成するエンコーダを示すブロック図である。
【図５】  図３に示すビデオエンコーダアッセンブリに対する結合ビットレート制御方法を示すフローチャートである。
【図６】  図３に示すビデオエンコーダアッセンブリ中のエンコーダに対する、エンコーダの出力バッファを通じた符号化データの転送及び仮想的なデコーダの入力バッファを通じた符号化データの転送を示すグラフである。
【図７】  図３のビデオエンコーダアッセンブリのエンコーダに対する新たな最低ビットレート及び新たな最高ビットレートを計算する方法を示すグラフである。
【図８】  図４に示すエンコーダに対する量子化パラメータ制御の方法の一例を示すフローチャートである。
【図１】
0004270754.tif 000002
【図２】
0004270754.tif 000003
【図３】
0004270754.tif 000004
【図４】
0004270754.tif 000005
【図５】
0004270754.tif 000006
【図６】
0004270754.tif 000007
【図７】
0004270754.tif 000008
【図８】
0004270754.tif 000009