(57)【特許請求の範囲】
【請求項１】
圧縮画像シーケンス（ＯＵＴ）が形成されるように、画像群（ＧＯＰ）情報構造にしたがって画像シーケンス（ＩＮ）をエンコードするシステム中で、画像フレームを処理する方法であって、
処理される前記画像フレームを含む前記画像シーケンスの１つ以上の画像のフレームレートが、３：２プルダウン検出プロセスにしたがって修正されているかどうか、を決定するステップと、
前記決定に応じて、現在のＧＯＰにおけるビット割り当て内に残るビット数を示すＧＯＰビット割り当てパラメータ（Ｒ）を適合させるステップと、
前記ＧＯＰビット割り当てパラメータを使用し且つ前記ＧＯＰ情報構造にしたがって、処理される前記画像フレームをエンコードするステップと、
処理される前記画像フレームを含む前記画像シーケンスの１つ以上の画像のフレームレートが３：２プルダウン検出プロセスにしたがって修正されているという決定に応じて、繰り返されたフィールドを前記画像シーケンスからドロップすることにより、前記システムの動作モードを２４フレーム／秒（ｆｐｓ）動作モードとするステップと、
処理される前記画像フレームを含む前記画像シーケンスの１つ以上の画像のフレームレートが３：２プルダウン検出プロセスにしたがって修正されていないという決定に応じて、前記システムの動作モードを３０フレーム／秒（ｆｐｓ）動作モードとするステップと、
を備え、
前記３０ｆｐｓモードを終了して前記２４ｆｐｓモードを開始した後に処理される最初の画像フレームに関し、以下の方程式にしたがって、前記ＧＯＰビット割り当てパラメータ（Ｒ）が計算される、画像フレーム処理方法。
Ｒ＝ＢＩＴＲＡＴＥ×（ｎ３０＋ｎＢｏ）／３０＋ｎ２０／２０＋（ｎＰｕ＋ｎＢｕ）／２４＋ＲSLACK−ＧＯＰBITS
ここで、
ＲSLACKは、直前にエンコードされたＧＯＰのビット使用オーバーランもしくはアンダーランであり；
「ＢＩＴＲＡＴＥ」は、前記圧縮画像シーケンスを含むエンコードされた結果のビットストリームのビットレートであり；
ＧＯＰBITSは、現在のＧＯＰ内の画像フレームをエンコードするために既に使用されたビット総数を示し；
ｎ２０は、２４ｆｐｓ動作モード中にエンコードされた現在のＧＯＰ内のフレーム数であり；
ｎ３０は、３０ｆｐｓ動作モード中にエンコードされた現在のＧＯＰ内のフレーム数であり；
ｎＢｕは、３０ｆｐｓモードでこれからコード化される現在のＧＯＰ内のＢ−フレーム数であり；
ｎＰｕは、３０ｆｐｓモードでこれからコード化されるＰ−フレーム数であり；
ｎＢｏは、２４ｆｐｓモードでこれからコード化されるＢ−フレーム数である。
【請求項２】
前記現在のＧＯＰがエンコードされた後に、ＧＯＰ使用パラメータ（ＲSLACK）を計算するステップを更に備え、
前記ＧＯＰ使用パラメータ（ＲSLACK）は、前記現在のＧＯＰをエンコードするのに利用可能なビット数のオーバーランもしくはアンダーランを示している、
請求項１に記載の方法。
【請求項３】
エンコードされる次のＧＯＰに関連付けられたＧＯＰビット割り当てパラメータ（Ｒ）を調整するステップを更に備え、
前記次のＧＯＰビット割り当てパラメータ（Ｒ）は、前記現在のＧＯＰに関連付けられた前記オーバーランもしくはアンダーランだけ増減される、
請求項２に記載の方法。
【請求項４】
前記システムは、フィールドモード画像フレームのトップフィールドおよびボトムフィールドが繰り返されるという決定が形成された時に、３０ｆｐｓモードを終了して２４ｆｐｓモードを開始し、前記決定は以下のステップにしたがって形成される、
（ａ）第１のフィールドのピクセルブロックおよび第２のフィールドの対応するピクセルブロックに関し、前記対応するピクセルブロックの第１の列間での絶対差の総計（ＳＡＤ）を第１の閾値と比較し、
（ｂ）前記第１の閾値を超えている場合には、その後、前記単一の列ＳＡＤを第２の閾値レベルと比較し、第２の閾値レベルを超えている場合には、その後、前記第１のフィールドが前記第２のフィールドによって繰り返されず、
（ｃ）前記第１のフィールドの前記ピクセルブロックおよび前記第２のフィールドの前記対応するピクセルブロックに関し、前記対応するピクセルブロックの全ての列間の絶対差の総計（ＳＡＤ）を第３の閾値と比較し、第３の閾値を超えている場合には、その後、前記第１のフィールドが前記第２のフィールドによって繰り返されない、
請求項１に記載の方法。
【請求項５】
量子化器を有するＭＰＥＧビデオエンコーダに使用される装置であって、
前記量子化器を制御するための速度コントローラを備え、
前記速度コントローラは、処理される画像フレームを含む画像シーケンス（ＩＮ）の１つ以上の画像のフレームレートが、３：２プルダウン検出プロセスにしたがって修正されているかどうか、を決定し、
前記速度コントローラは、前記決定に応じて、現在のＧＯＰにおけるビット割り当て内に残るビット数を示すＧＯＰビット割り当てパラメータ（Ｒ）を適合させ、３０フレーム／秒（ｆｐｓ）モードを終了して２４フレーム／秒（ｆｐｓ）モードを開始した後に処理される最初の画像フレームに関し、以下の方程式にしたがって、前記ＧＯＰビット割り当てパラメータ（Ｒ）が計算されることを特徴とし、
Ｒ＝ＢＩＴＲＡＴＥ×（ｎ３０＋ｎＢｏ）／３０＋ｎ２０／２０＋（ｎＰｕ＋ｎＢｕ）／２４＋ＲSLACK−ＧＯＰBITS
ここで、
ＲSLACKは、直前にエンコードされたＧＯＰのビット使用オーバーランもしくはアンダーランであり；
「ＢＩＴＲＡＴＥ」は、前記圧縮画像シーケンスを含むエンコードされた結果のビットストリームのビットレートであり；
ＧＯＰBITSは、現在のＧＯＰ内の画像フレームをエンコードするために既に使用されたビット総数を示し；
ｎ２０は、２４ｆｐｓモード中にエンコードされた現在のＧＯＰ内のフレーム数であり；
ｎ３０は、３０ｆｐｓモード中にエンコードされた現在のＧＯＰ内のフレーム数であり；
ｎＢｕは、３０ｆｐｓモードでこれからコード化される現在のＧＯＰ内のＢ−フレーム数であり；
ｎＰｕは、３０ｆｐｓモードでこれからコード化されるＰ−フレーム数であり；
ｎＢｏは、２４ｆｐｓモードでこれからコード化されるＢ−フレーム数であり、
前記速度コントローラは、前記ＧＯＰビット割り当てパラメータに応じて、且つ、圧縮画像シーケンス（ＯＵＴ）を形成するためのＧＯＰ情報構造にしたがって、処理される前記画像フレームの量子化ステップサイズを適合させ、
前記速度コントローラは、処理される前記画像フレームを含む前記画像シーケンス（ＩＮ）の１つ以上の画像のフレームレートが３：２プルダウン検出プロセスにしたがって修正されているという決定に応じて、繰り返されたフィールドを前記画像シーケンスからドロップすることにより、前記システムの動作モードを前記２４ｆｐｓモードとし、
前記速度コントローラは、処理される前記画像フレームを含む前記画像シーケンス（ＩＮ）の１つ以上の画像のフレームレートが３：２プルダウン検出プロセスにしたがって修正されていないという決定に応じて、前記システムの動作モードを前記３０ｆｐｓモードとし、
前記速度コントローラは、フィールドモード画像フレームのトップフィールドおよびボトムフィールドが繰り返されるという決定が形成された時に、３０ｆｐｓモードを終了して２４ｆｐｓモードを開始し、
前記速度コントローラは、前記トップフィールドが繰り返されるという決定が形成された時に、２４ｆｐｓモードを終了して、前記ボトムフィールドが繰り返されるという決定が形成されるのを待つ第１の曖昧なモードを開始し、
前記速度コントローラは、前記ボトムフィールドが繰り返されないという決定が形成された時に、前記第１の曖昧なモードを終了して３０ｆｐｓモードを開始し、
前記速度コントローラは、前記ボトムフィールドが繰り返されるという決定が形成された時に、２４ｆｐｓモードを終了して、前記トップフィールドが繰り返されるという決定が形成されるのを待つ第２の曖昧なモードを開始し、
前記速度コントローラは、前記トップフィールドが繰り返されないという決定が形成された時に、前記第２の曖昧なモードを終了して３０ｆｐｓモードを開始し、
前記速度コントローラは、前記ボトムフィールドが繰り返されるという決定が形成された時に、前記第１の曖昧なモードを終了して前記第２の曖昧なモードを開始し、
前記速度コントローラは、前記トップフィールドが繰り返されるという決定が形成された時に、前記第２の曖昧なモードを終了して前記第１の曖昧なモードを開始する、
装置。
【請求項６】
前記速度コントローラは、現在のＧＯＰがエンコードされた後に、エンコードされる次のＧＯＰに関連付けられた前記ＧＯＰビット割り当てパラメータ（Ｒ）を計算するために用いられる前記ビット使用オーバーランもしくはアンダーラン（ＲSLACK）を計算し、
当該ビット使用オーバーランもしくはアンダーラン（ＲSLACK）は、前記現在のＧＯＰをエンコードするのに利用可能なビット数のオーバーランもしくはアンダーランを示している、
請求項５に記載の装置。
【請求項７】
前記速度コントローラは、
エンコードされる次のＧＯＰに関連付けられた前記ＧＯＰビット割り当てパラメータ（Ｒ）が、現在のＧＯＰに関連付けられた前記オーバーランもしくはアンダーランだけ増減するように、当該次のＧＯＰに関連付けられたＧＯＰビット割り当てパラメータ（Ｒ）であって、圧縮画像シーケンス（ＯＵＴ）が形成されるように画像シーケンス（ＩＮ）をエンコードするための当該ＧＯＰビット割り当てパラメータ（Ｒ）、を調整する、
請求項６に記載の装置。
【発明の詳細な説明】
【０００１】
この出願は、１９９８年４月３日に出願された仮出願Ｎｏ．６０／０８０，５３６の利益を主張している。
【０００２】
【発明の属する技術分野】
本発明は、一般に、情報圧縮システムに係わり、特に、３：２プルダウン技術にしたがって処理されたビデオ情報の存在及び/又は不存在に対してビデオ情報エンコーディングシステムを適合させる方法および装置に関する。
【０００３】
【従来の技術】
幾つかの通信システムにおいて、伝送されるデータは、利用可能な帯域幅がより有効に使用されるように圧縮される。例えば、映画専門家グループ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ））は、デジタルデータ配送システムに関する幾つかの普及された標準を有している。第１に、ＭＰＥＧ−１として知られているものは、ＩＳＯ／ＩＥＣ標準１１１７２と称されており、これを参照することにより本願に組み込まれる。第２に、ＭＰＥＧ−２として知られているものは、ＩＳＯ／ＩＥＣ標準１３８１８と称されており、これを参照することにより本願に組み込まれる。圧縮デジタルビデオシステムは、高品位テレビシステム委員会（Ａｄｖａｎｃｅｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ（ＡＴＳＣ））デジタルテレビ標準文書Ａ／５３に説明されており、これを参照することにより本願に組み込まれる。
【０００４】
前述した標準は、ビデオ、音楽、また固定長もしくは可変長デジタル通信システムを使用する他の情報、の圧縮および送信に良く適したデータ処理技術および操作技術について説明している。特に、前述した標準や他の「ＭＰＥＧ適合型（ＭＰＥＧ−ｌｉｋｅ）」標準および技術は、具体的には、イントラ・フレームコーディング技術（ランレングスコーディング、ハフマンコーディング等）およびインター・フレームコーディング技術（順逆予測コーディング（ｆｏｒｗａｒｄ  ａｎｄ  ｂａｃｋｗａｒｄ  ｐｒｅｄｉｃｔｉｖｅ  ｃｏｄｉｎｇ）、動き補償等）を使用して、ビデオ情報を圧縮する。具体的には、ビデオ処理システムの場合において、ＭＰＥＧおよびＭＰＥＧ適合型ビデオ処理システムは、イントラ・フレームやインター・フレーム動き補償エンコーディングを用いた或いは用いないビデオフレームの予測を基本とした圧縮エンコーディングを特徴としている。
【０００５】
フィルムのような２４プログレッシブフレーム／秒（ｆｐｓ）ビデオ材料を、ＮＴＳＣフォーマットのような３０インターレースフレーム／秒（ｆｐｓ）ビデオフォーマット（６０フィールド／秒）に変換することは、時として必要である。このような変換は、良く知られた３：２プルダウン技術を使用して行なわれる。この場合、代わりのフレームが４つのプログレッシブフレームから１０フィールドを得る（すなわち、２４フレームから６０フィールドを得る）ために、プログレッシブフィルム材料のトップフィールドおよびボトムフィールドが交互に繰り返される。３：２プルダウン技術を使用して形成されたフィールドシーケンスは、以下の通りである（この場合、Ｔがトップフィールドを表わし、Ｂがボトムフィールドを表わす）。すなわち、Ｔ０、Ｂ０、Ｔ９、Ｂ１、Ｔ１、Ｂ２、Ｔ２、Ｂ２、Ｔ３、Ｂ３、Ｔ４、Ｂ４、Ｔ４…。
【０００６】
ＭＰＥＧ適合型エンコーダにおいては、オリジナルの２４ｆｐｓ材料だけが（プログレッシブフレームとして）エンコードされるように、繰り返されたフィールドをその後に除去することができるため、エンコードされるビデオ材料が３：２プルダウン技術を使用して処理されたかどうかを決定することが望ましい。プルダウン情報は、ＭＰＥＧ−２対応フラグを使用してデコーダに送ることができる。そのような検出がない場合、繰り返されたフィールドは再びコード化され、性能すなわち圧縮において最大２０％の損失が生じる。残念ながら、現在の３：２プルダウン検出器は、過度の処理量とメモリ・リソースを必要とする。また、例えば、ビデオ信号の３：２プルダウンプロセス中に形成されるトランスコーディング（ｔｒａｎｓｃｏｄｉｎｇ）エラーに起因して、現在の３：２プルダウン検出器は、ビデオ信号の次のエンコーディングにマイナスの影響を与える「誤検出」を頻繁に形成する。
【０００７】
ＴＭ−５推奨速度制御アルゴリズムを使用するＭＰＥＧ−２エンコーダは、「ミックス・モード」ビデオ信号、すなわち、３：２プルダウン技術によって形成された材料およびオリジナルの３０ｆｐｓもしくは６０ｆｐｓ材料を含むビデオ信号を正確にエンコードしない。このような場合（完璧な３：２プルダウン検出をもってさえ）、ＭＰＥＧ−２エンコーダは、せいぜい、３：２プルダウン処理された材料を非効率的にエンコードする程度である。
【０００８】
【発明が解決しようとする課題】
したがって、エンコードされるビデオ情報ストリーム内に３：２プルダウン処理されたビデオ情報が存在するか及び/又は否かに対して、ＭＰＥＧ適合型エンコーダの動作を向上させて適合させる方法及びそれに付随する装置を提供することによって、前述した問題を扱うことが望ましいと考えられる。また、エンコードされるビデオ情報ストリームが３：２プルダウンプロセスに晒されたか否かを決定するために、強力で且つコンピュータを利用した有効な方法及びこれに付随する装置を提供することが望ましいと考えられる。
【０００９】
【課題を解決するための手段】
本発明は、エンコードされるビデオ情報ストリーム内に３：２プルダウン処理されたビデオ情報が存在するか及び/又は否かに対して、ＭＰＥＧ適合型エンコーダの動作を向上させて適合させる方法および装置を備える。具体的には、ＭＰＥＧ適合型エンコーダ内の速度コントローラは、ミックス・モードビデオ材料のようなエンコードされる材料の３：２プルダウンプロセスの検出に応じて、画像群（ＧＯＰ）にビット束を動的に割り当てる。
【００１０】
具体的には、圧縮画像シーケンスを形成するために、画像群（ＧＯＰ）情報構造にしたがって画像フレームを連続してエンコードするシステムにおいて、本発明に係る方法は、処理される前記画像フレームを含む前記画像シーケンスの１つ以上の画像のフレームレートが、フレームレート修正プロセスにしたがって増加されているかどうかを決定するステップと、前記決定に応じて、現在のＧＯＰにおけるビット割り当て内に残るビット数を示すＧＯＰビット割り当てパラメータを適合させるステップと、前記ＧＯＰビット割り当てパラメータを使用し且つ前記ＧＯＰ情報構造にしたがって、処理される前記画像フレームをエンコードするステップと、によって画像フレームを処理する。
【００１１】
【発明の実施の形態】
添付図面を参照しながら、以下の詳細な説明を考慮すれば、本発明の技術を容易に理解することができる。
【００１２】
理解を容易にするため、図面中、共通する同一の構成要素については、可能な限り、同一の参照符号が付されている。
【００１３】
図１は本発明に係るＭＰＥＧ適合型のエンコーディングシステム１００を示している。ＭＰＥＧ適合型のエンコーディングシステム１００は、具体的には圧縮されていない複数の情報フレームとビデオ情報ストリームを形成する画像シーケンスとを含む入力情報ストリームＩＮを受けてエンコードし、画像群（ＧＯＰ）データ構造に名目上適合するエンコードされた出力情報ストリームＯＵＴを形成する。各ＧＯＰデータ構造は、各アンカーフレーム（例えば、Ｉ−フレームやＰ−フレーム）と１つ以上のノンアンカーフレーム（例えば、Ｂ−フレーム）とを有する複数のサブＧＯＰを備える。
【００１４】
ＭＰＥＧ適合型のエンコーディングシステム１００は、加算器１５６と、モード決定モジュール１０５と、離散的コサイン変換（ＤＣＴ）モジュール１１０と、量子化器（Ｑ）モジュール１１５と、可変長コーディング（ＶＬＣ）モジュール１２０と、逆量子化器（Ｑ’）１２５と、逆離散的コサイン変換（ＤＣＴ-1）モジュール１３０と、サブトラクタ（ｓｕｂｔｒａｃｔｏｒ）１５５と、出力バッファ１６０と、速度制御モジュール１４０と、任意の３：２プルダウン検出器１４２と、動き補償モジュール１４５と、動き評価モジュール１５０と、アンカーフレーム記憶モジュール１７０とを備えている。ＭＰＥＧ適合型のエンコーディングシステム１００は複数のモジュールを備えているが、様々なモジュールによって実行される機能が図１に示されるように別個のモジュールに分けられる必要がないことは、当業者において自明であろう。例えば、動き補償モジュール１４５と逆量子化器１２５と逆ＤＣＴモジュール１３０とを備える一組のモジュールは、組み込み式デコーダとして一般に知られている。
【００１５】
入力情報ストリームＩＮがビデオ情報ストリームを含む場合、ビデオ情報ストリームは、入力信号パスＩＮ上で画像シーケンスを示す。具体的には、画像シーケンスは、デジタル化され且つＭＰＥＧ標準にしたがった輝度信号Ｙおよび色差信号Ｃr、Ｃbとして示される。これらの信号は、さらに、各画像（フレーム）が複数のマクロブロックによって表わされるような複数の階層（シーケンス、画像群、画像、スライス、マクロブロック、ブロック）に分割される。各マクロブロックは、４つの輝度ブロックと、１つのＣrブロックと、１つのＣbブロックとを備えている。この場合、１つのブロックは８×８のサンプル配列として規定されている。画像をブロック単位に分割すると、２つの連続する画像間の変化を識別する能力が向上するとともに、低振幅変換係数（後述する）を通じて画像圧縮が向上する。適当なウインドウ、解像度、入力フォーマットを選択するために、デジタル化された信号は、フォーマット変換のような任意な予備的処理を受けても良い。
【００１６】
サブトラクタ１５５は、信号パスＩＮ上の入力マクロブロックから信号パスＰＦ上の予測されたマクロブロックを差し引くことによって、残留信号（この技術分野では、単に残留もしくは残留マクロブロックと称されている）を形成する。
【００１７】
モード決定モジュール１０５は、サブトラクタ１５５から残留マクロブロック（すなわち、予測されたマクロブロック）を受けるとともに、信号パスＩＮから入力マクロブロックを受ける。予測されたマクロブロックが入力マクロブロックと実質的に同じである場合（すなわち、残留が比較的小さく且つ非常に僅かなビットを使用して容易にコード化される場合）には、モード決定モジュール１０５は、インターコーディング用にサブトラクタ１５５から残留信号を選択する。すなわち、マクロブロックは、動き補償されたマクロブロックとして、つまり、動きベクトルおよび対応残留として、エンコードされる。しかしながら、予測されたマクロブロックと入力マクロブロックとの間に相当な差がある場合には、残留をコード化することが難しい。したがって、システムは、動き補償された残留マクロブロックをコード化することなく、入力マクロブロックを直接コード化することにより更に効果的に動作する。
【００１８】
前述した選択プロセスはコーディングモードの選択として知られている。入力マクロブロックのコード化はイントラコーディングと称され、一方、残留のコード化はインターコーディングと称されている。これら２つのモード間の選択はイントラ−インター決定（ＩＩＤ）として知られている。一般に、ＩＩＤは、残留マクロブロックの変化（Ｖａｒ  Ｒ）と入力マクロブロックの変化（Ｖａｒ  Ｉ）とを最初に計算することによって算出される。コーディング決定はこれらの値に基づいている。この決定をなすために、複数の機能を使用することができる。例えば、最も簡単な機能を使用すると、Ｖａｒ  ＲがＶａｒ  Ｉよりも小さい場合には、ＩＩＤはインターモードを選択する。逆に、Ｖａｒ  ＩがＶａｒ  Ｒよりも小さい場合には、ＩＩＤはイントラモードを選択する。
【００１９】
随意的に、モード決定モジュール１０５は、情報ストリームの切れ目の存在又は不存在を示す出力信号ＭＤを供給する。コントローラの動作については、図２および図３を参照しながら詳細に後述することとする。
【００２０】
選択されたブロック（すなわち、入力マクロブロックまたは残留マクロブロック）には、その後、離散的コサイン変換プロセスが施される。このプロセスは、受けられるマクロブロックの各ブロックに対して施され、これにより、具体的には、８×８ブロックのＤＣＴ係数のセットが形成される。ＤＣＴを基本とする機能すなわちサブバンド分解によれば、量子化の次のステップにおいて重要なサイコビジュアル標準を有効に使用することができる。一般に、ＭＰＥＧ適合型の圧縮システムにおいては８×８ブロックサイズが使用されるが、ＤＣＴモジュールは、任意のサイズのブロックすなわちマクロブロックを処理するようになっていても良いことは言うまでもない。ＤＣＴモジュール１１０によって形成されるＤＣＴ係数は、量子化器モジュール１１５に送られる。
【００２１】
量子化器モジュール１１５は、受け取られたＤＣＴ係数を量子化して、量子化された出力ブロックを形成する。適当な端数計算をもってＤＣＴ係数を量子化値のセットで割ることにより整数値を形成してＤＣＴ係数を表わすといった精密さは、この量子化プロセスによって低減される。量子化値は、基本機能の可視性（画像加重量子化として知られる）に基づく標準を使用して、各ＤＣＴ係数のため、個々に設定することができる。すなわち、量子化値は、所定の基本機能の可視性に関する閾値すなわち人間の目によって認知可能な係数較差（係数振幅）に対応している。この値をもってＤＣＴ係数を量子化することにより、多くのＤＣＴ係数が値「０」に変換され、これにより、画像圧縮効率が向上する。量子化プロセスは、重要な操作であり、所定の画質を得るとともにエンコーダを制御してその出力を所定のビットレートにマッチさせる（速度制御）ための重要なツールである。異なる量子化値を各ＤＣＴ係数に適用することができるため、一般に、輝度量子化テーブルやクロミナンス量子化テーブルなどの標準テーブルとして、「量子化マトリクス」が定められる。したがって、エンコーダは、変換されたブロックにおける各周波数係数がどのように量子化されるのかを決定する量子化マトリクスを選択する。
【００２２】
速度制御モジュール１４０の主要なタスクは、トランスミッション・チャンネルに一定の出力ビットレートを供給する出力バッファ１６０の残容量すなわち使用レベルを管理することである。各画像や画像シーケンスの量に応じてエンコーディングレートが著しく変化する場合でも、一定のビットレートが維持されなければならない。出力バッファ１６０は、出力バッファ１６０の使用レベルを示す速度制御信号ＲＣを形成する。
【００２３】
速度制御モジュール１４０は、ＤＣＴ係数を量子化するために使用される量子化スケール（ステップサイズ）やシステムによってコード化されるＤＣＴ係数の数といったエンコーディングプロセスの様々なパラメータに適合するように、速度制御信号ＲＣを使用する。このような方法で、速度制御モジュール１４０は、ＶＬＣ１２０によって形成された出力情報ストリームのビットレートを制御し、これによって、出力バッファ１６０の使用レベルを適切に維持する。
【００２４】
速度制御モジュール１４０は、例えばコーディングレートを制御しながらビデオ画像の全体の質を維持するような方法で、各フレームのための量子化スケールを選択することにより、ＶＬＣ１２０の出力ビットレートを調節する。すなわち、画像シーケンス全体にわたって均一な画質を維持しながら画像の目標となるビットレートが達成されるように、各フレームに関して量子化スケールが選択される。このようにして、速度制御モジュール１４０は、出力情報ストリームＯＵＴの送信後に、デコーダ側（例えば、図示しない受信器もしくは目標記憶装置）でバッファがオーバーフロー状態およびアンダーフロー状態とならないように動作する。
【００２５】
速度制御モジュール１４０の他の重要なタスクは、エンコーダによって形成されるビットストリームが、出力情報ストリームＯＵＴを含む送信を受けるデコーダ（例えば、図示しない受信器もしくは目標記憶装置）内の入力バッファからオーバーフローもしくはアンダーフローしないようにすることである。オーバーフローおよびアンダーフロー制御は、エンコーダ内の仮想バッファを維持および監視することによって行なわれる。仮想バッファは、ビデオバッファ計量器（ＶＢＶ）として知られている。適切なデコーダ入力バッファビット制御を行なうために、エンコーダの速度制御プロセスは、各画像に対して行なわれ、また、各画像、ビット割当量（以下、ビット束という）を含むピクセルの各マクロブロックに対して行なわれる。各ビット束内にある各ビット数を使用して画像全体をコード化するとともにブロックをコード化すれば、ＶＢＶはオーバーフローもしくはアンダーフローしない。ＶＢＶはデコーダの入力バッファの動作を反映するため、ＶＢＶがアンダーフローもしくはオーバーフローしなければ、デコーダの入力バッファはアンダーフローもしくはオーバーフローしない。
【００２６】
このようなバッファ制御を行なうために、速度コントローラは、現在の画像が先の画像に若干類似しているように見えるという標準となる仮定を、ビデオコーディングにおいて形成する。この仮定が正しければ、画像におけるピクセルのブロックは、コーディング法によって動き補償され、一旦補償されると、エンコードするために非常に僅かなビットを必要とする。このような方法は、画像をコード化するために必要な実際のビット数が画像に割り当てられた目標ビット数に近ければ、すなわち、実際に使用されるビット数がその画像に関するビット割当量の範囲内にあれば、非常に有効である。
【００２７】
量子化モジュール１１５によって形成された量子化されたＤＣＴ係数（例えば、８×８ブロックの量子化されたＤＣＴ係数）は、可変長コーディング（ＶＬＣ）モジュールに送られる。この場合、量子化された係数の２次元ブロックは、ジグザグ状態で走査され、量子化されたＤＣＴ係数の１次元列に変換される。このジグザグ走査順序は、最も低い空間周波数から最も高い空間周波数に向かうＤＣＴ係数のほぼ連続した順序である。その後、可変長コーディング（ＶＬＣ）モジュール１２０は、可変長コーディングおよびランレングスコーディングを使用して、量子化されたＤＣＴ係数の列およびマクロブロックに関する全てのサイド情報をエンコードする。
【００２８】
動き予測および動き補償を行なうために、第１のエンコーディングモジュール１０１は、エンコードされたアンカーフレームが、基準フレームとして使用されるように再形成する。具体的には、量子化モジュール１１５によって形成された量子化されたＤＣＴ係数（例えば、８×８ブロックの量子化されたＤＣＴ係数）が逆量子化器（Ｑ’）１２５に送られる。この場合、逆量子化プロセスが各マクロブロックに対して行なわれる。結果として逆量子化されたＤＣＴ係数（例えば、８×８ブロックの逆量子化されたＤＣＴ係数）は、逆ＤＣＴ（ＤＣＴ-1）モジュール１３０に送られる。この場合、デコードされたエラー信号を形成するために、逆ＤＣＴプロセスが各マクロブロックに対して行なわれる。ＤＣＴ-1モジュール１３０によって形成されたエラー信号は、加算器１５６の入力部に送られる。
【００２９】
動き評価モジュール１５０は、入力情報ストリームＩＮと、記憶されたアンカーフレーム情報ストリームＡＯＵＴとを受ける。記憶されたアンカーフレーム情報ストリームＡＯＵＴは、アンカーフレーム記憶モジュール１７０によって供給される。アンカーフレーム記憶モジュール１７０は入力アンカーフレーム情報ストリームＡＩＮを記憶し、入力アンカーフレーム情報ストリームＡＩＮは第２のエンコーディングモジュール１０２によって供給される。これについては後述する。簡単に言えば、記憶されたアンカーフレーム情報ストリームＡＯＵＴは、第２のエンコーディングモジュール１０２（および第１のエンコーディングモジュール１０１）により現在エンコードされるＧＯＦまたはＧＯＰのイントラコーディングがなされた最初のアンカーフレームのデコードされたバージョンを示している。
【００３０】
動き評価モジュール１５０は、入力情報ストリームＩＮおよび記憶されたアンカーフレーム情報ストリームＡＯＵＴを使用して、動きベクトルを評価する。動きベクトルは、現在の画像内のブロックの座標位置から基準フレーム内の座標位置へとオフセットするために動き補償によって使用される２次元ベクトルである。基準フレームは、順方向の予測コード化フレーム（Ｐ−フレーム）、もしくは、双方向（すなわち、順方向および逆方向）の予測フレーム（Ｂ−フレーム）となり得る。動きベクトルを使用すると、チャンネル上で伝達される情報量が減少し、画像圧縮が飛躍的に高まる。これは、現在のフレームと基準フレームとの間の変化だけがコード化されて伝達されるためである。動きベクトルは、動き補償モジュール１４５およびＶＬＣモジュール１２０に送られる。
【００３１】
動き補償モジュール１４５は、受け取られた動きベクトルを使用して、サンプル値の予測能力を向上させる。動き補償は、予測エラーを形成するために使用される先にデコードされたサンプル値を含む過去や未来の基準フレームへとオフセットするために動きベクトルを使用する予測を含んでいる。すなわち、動き補償モジュール１４５は、先にデコードされたフレームと動きベクトルとを使用して、現在のフレームの評価を構築する。また、動き評価モジュールおよび動き補償モジュールによって実行される機能を、１つの結合モジュール、例えば単一のブロック動き補償器において実行できることは言うまでもない。
【００３２】
所定のマクロブロックに関して動き補償予測を行なう前に、コーディングモードを選択しなければならない。コーディングモード決定の場において、ＭＰＥＧ標準およびＭＰＥＧのような標準は、複数の異なるマクロブロックコーディングモードを提供する。具体的には、ＭＰＥＧ−２は、イントラモード、非動き補償モード（ＮｏＭＣ）、順／逆／平均インターモード、フィールド／フレームＤＣＴモードを含むマクロブロックコーディングモードを提供する。
【００３３】
コーディングモードが選択されると、動き補償モジュール１４５は、過去や未来の基準画像に基づいて、ブロックのコンテンツのパスＰＦ上に、動き補償された予測フレーム（例えば予測された画像）を形成する。このパスＰＦ上の動き補償された予測フレームは、エラー信号もしくは予測残留信号を形成するために、サブトラクタ１５５によって現在のマクロブロックにおける入力情報フレームＩＮ（例えば、ビデオ画像）から差し引きされる。予測残留信号の形成によって、入力ビデオ画像内の余分な情報が効果的に除去される。先に述べたように、予測残留信号は、更なるプロセスのために、モード決定モジュール１０５に送られる。
【００３４】
ＶＬＣエンコーダ１２０によって形成されるＶＬＣデータストリームは、バッファ１３５に受けられる。具体的には、ＶＬＣデータストリームは、ＧＯＰデータ構造にしたがって少なくとも１つのエンコードされたサブＧＯＰで保持可能な先入れ先出し（ＦＩＦＯ）バッファに受けられる。バッファ１３５内に記憶されたＶＬＣデータストリームは、セレクタ１０４を介して、出力バッファ１６０、具体的にはＦＩＦＯバッファに選択的に連結される。
【００３５】
異なる画像形式および可変長コーディングを使用する結果、出力バッファ１６０に向かう全てのビットレートが変化する。すなわち、各フレームをコード化するために使用されるビット数は異なる。出力情報ストリームＯＵＴを例えば記憶媒体や遠距離通信チャンネルに連結するための定率チャンネルを含む適用においては、ビットレートをスムーズにするためのチャンネルにエンコーダ出力を適合させるために出力バッファ１６０が使用される。したがって、ＦＩＦＯバッファ１６０の出力信号ＯＵＴは、入力情報ストリームＩＮの圧縮された形となる。
【００３６】
任意の３：２プルダウン検出器１４２は、入力ビデオ情報ストリームＩＮを受けて、３：２プルダウン処理されたビデオ情報が入力ビデオ情報ストリームＩＮ内に存在する（例えば、ネイティブ２４ｆｐｓ）か或いは存在しない（例えば、ネイティブ３０ｆｐｓ）かを示す出力制御信号ＭＯＤＥを形成する。３：２プルダウン検出器１４２は「フィールド・ディファレンシング（ｆｉｅｌｄ  ｄｉｆｆｅｒｅｎｃｉｎｇ）」法を使用する。このフィールド・ディファレンシング法においては、内在するビデオ情報の３：２プルダウン処理を示すような形態でフィールドが繰り返されるかどうかを決定するために、入力ビデオ情報ストリームＩＮ内の連続したフィールドが比較される。典型的なフィールド・ディファレンシングを基本とする３：２プルダウン検知ルーチンについては図４を参照しながら後述する。フィールド対フィールド比較を行なうために必要な計算量を減らすため、絶対差合計法（ａ  ｓｕｍ  ｏｆ  ａｂｓｏｌｕｔｅ  ｄｉｆｆｅｒｅｎｃｅｓ  （ＳＡＤ）  ｍｅｔｈｏｄ）を使用することにより部分比較が行なわれる。典型的なフィールド・ディファレンシング・ルーチンについては図５を参照しながら後述する。
【００３７】
図１に示される速度制御モジュール１４０は、マイクロプロセッサ１４０−４とメモリ１４０−８とを備えている。メモリ１４０−８は、同時エンコーディング、適応フレーム切換えルーチン２００や即時回答エンコーディング、適応フレーム切換えルーチン４００を記憶する。マイクロプロセッサ１４０−４は、電源装置、クロック回路、キャッシュメモリ等といった従来のサポート回路や、ソフトウエアルーチンの実行をアシストする回路と協働する。したがって、ソフトウエアプロセスとしてここで述べられている幾つかのプロセスステップが、例えばマイクロプロセッサ１４０−４と協働して様々なステップを実行する回路などのハードウエア内で実行されても構わない。また、コントローラ１４０は、様々なエンコーディングモジュール（１０１、１０２）とセレクタ（１０４）との間のインターフェイスを形成する入／出力回路１４０−２を有している。コントローラ１４０は、本発明にしたがって様々な制御機能を実行するようにプログラムされた多目的コンピュータとして示されているが、本発明は、特定用途向け集積回路（ＡＳＩＣ）のようなハードウエア内で実行することもできる。したがって、ここに述べられている任意のプロセスもしくは方法ステップ（例えば図２Ａおよび図２Ｂ）は、ソフトウエハやハードウエアもしくはこれらの組み合わせによって同等に実行されるものとして広く解釈されるように意図されている。
【００３８】
本発明の一実施形態において、速度制御モジュール１４は出力制御信号ＭＯＤＥに応答する。この出力制御信号ＭＯＤＥは、３：２プルダウン検出器１４２によって形成され、３：２プルダウン処理されたビデオ情報が入力ビデオ情報ストリームＩＮ内に存在する（例えば、ネイティブ２４ｆｐｓ）か或いは存在しない（例えば、ネイティブ３０ｆｐｓ）かを示す。
【００３９】
本発明の他の実施形態においては、３：２プルダウン検出器１４２が図１のエンコーダ１００内に設けられておらず、速度制御モジュール１４０内、具体的には、３：２プルダウン検出ルーチン４００内に３：２プルダウン検出機能が組み込まれている。
【００４０】
図２Ａおよび図２Ｂは、図１のＭＰＥＧ適合型エンコーディングシステム１００における使用に適した本発明に係る適応速度制御ルーチン２００を示している。図２Ａおよび図２Ｂは、全体のルーチンを一緒に見ることができるように、図２に線図で示されるように配列されることを意図している。以下の説明は、ＭＰＥＧ適合型エンコーディングシステム１００が、フレームレートとは無関係に、所定の画像群（ＧＯＰ）情報構造にしたがって受け取られたビデオ情報ストリームＩＮをエンコードすることを想定している。この場合、一定のビットレート出力ストリームＯＵＴが出力バッファ１６０によって形成されるように、所定のビット数（Ｒ）が各ＧＯＰに割り当てられる。すなわち、２つのＩ−フレーム間の距離Ｎと２つの連続する基準フレーム間の距離Ｍは、エンコーディングプロセスの全体にわたって同一のままである。また、任意の２つの連続する基準フレーム間で１つのモード変化の最大が生じるものと想定している。
【００４１】
図２Ａおよび図２Ｂの速度制御ルーチン２００は、ＧＯＰビット割り当て内に残るビット数を示すために、ＴＭ−５速度制御アルゴリスムによって使用される速度制御パラメータ（Ｒ）を、受け取られたビデオ情報ストリームＩＮ内のモード変化（すなわち、２４ｆｐｓ←→３０ｆｐｓ）の検出に応じて修正する。このような方法で、ＴＭ−５速度制御アルゴリスムは、そのようなモード変化の存在下で、適切に機能するようになっていても良い。
【００４２】
例えば、図１のＭＰＥＧ適合型エンコーディングシステム１００がエンコーディングのためにビデオ情報ストリームＩＮを受けると、ステップ２０５でルーチン２００が開始される。その後、ルーチン２００はステップ２１０に進む。ここでは、複数のＧＯＰの列の最初のＧＯＰを処理する前に、変数ＲSLACKが０に初期設定される。変数ＲSLACKは、先にエンコードされたＧＯＰのビットオーバー／アンダーランを示すために使用される。すなわち、ＲＳＬＡＣＫは、先のＧＯＰが割り当て量よりも少ないビット（アンダーラン）でエンコードされたこと、あるいは、割り当て量よりも多いビット（オーバーラン）でエンコードされたことを示す。したがって、現在処理されるＧＯＰは、先のビットオーバー／アンダーランを補正する（必ずしも補正されるとは限らない）ような形態でエンコードされる。その後、ルーチン２００はステップ２１２に進む。
【００４３】
ステップ２１２では、３つの変数（ｎ２０、ｎ３０、ＧＯＰBITS）が０に初期設定される。第１の変数ｎ２０は、２４ｆｐｓモード動作中にエンコード処理される１つのＧＯＰ内のフレームの数を示すために使用される。第２の変数ｎ３０は、３０ｆｐｓモード動作中にエンコード処理される１つのＧＯＰ内のフレームの数を示すために使用される。第３の変数ＧＯＰBITSは、処理されるＧＯＰ内のビデオフレームをエンコードするためにこれまで使用されたビット総数を表わしている。変数はＮ２０、Ｎ３０、ＧＯＰBITSである。この情報は、エンコードされるビデオストリームのフォーマット変化によって生じる動作モード間の移行中にＧＯＰの持続時間を動的に更新するために使用される。その後、ルーチン２００はステップ２１５に進む。
【００４４】
ステップ２１５では、受け取られたビデオ情報ストリームＩＮのモードが照会される。すなわち、現在、入力ビデオストリームＩＮがネイティブ３０ｆｐｓビデオストリーム（例えば、標準的なＮＴＳＣストリーム）を含むのか、あるいは、ネイティブ２４ｆｐｓビデオストリーム（例えば、３０ｆｐｓストリームを形成するために、３：２プルダウンプロセスにしたがって処理された２４ｆｐｓ映画）を含むのかについて問い合わせを行なう。受け取られた情報ストリームのモードを確認する典型的な方法については、図３、４、５を参照しながら後述する。
【００４５】
ステップ２１５の照会によって、受け取られたビデオ情報ストリームＩＮが３０ｆｐｓビデオ材料を含むことが判明したら、その後、ルーチン２００はステップ２２５に進む。ここでは、変数ＦＲＡＭＥＲＡＴＥが３０に初期設定される。その後、ルーチン２００はステップ２３０に進む。また、ステップ２１５の照会によって、受け取られたビデオ情報ストリームＩＮが２４ｆｐｓビデオ材料を含むことが判明したら、その後、ルーチン２００はステップ２２０に進む。ここでは、変数ＦＲＡＭＥＲＡＴＥが２４に初期設定される。その後、ルーチン２００はステップ２３０に進む。
【００４６】
ステップ２３０では、処理される画像群（ＧＯＰ）内に残るビット数（Ｒ）が以下の方程式１にしたがって計算される。また、ＴＭ−５リアクションパラメータ（ｒ）が以下の方程式２にしたがって計算される。
ここで、
「Ｒ」は、現在のＧＯＰにおけるビット割り当て内に残るビット数であり、
「ＲSLACK」は、先にエンコードされたＧＯＰのビットオーバー／アンダーランであり、
「ＮP」は、現在のＧＯＰ内に残るＰ−フレームの数であり、
「ＮB」は、現在のＧＯＰ内に残るＢ−フレームの数であり、
「ＢＩＴＲＡＴＥ」は、エンコードされた結果のビットストリームのビットレートであり、
「ＦＲＡＭＥＲＡＴＥ」は、ステップ２１５から２２５につき、２４または３０であり、
「ｒ」は、ＴＭ−５速度制御アルゴリズムで使用されるリアクションパラメータである。
【方程式１】
0004344476.tif 000002
【方程式２】
0004344476.tif 000003
【００４７】
現在のＧＯＰ（Ｒ）およびリアクションパラメータ（ｒ）に関してビット割り当て内に残るビット数を計算したら、その後、変数ＧＯＰSTARTが計算された値Ｒと等しく設定され、ルーチン２００がステップ２３５に進む。ここでは、モード変化が生じたか否か（すなわち、２４ｆｐｓ→３０ｆｐｓまたは３０ｆｐｓ→２４ｆｐｓ）が照会される。ステップ２３５の照会によって、モード変化が２４ｆｐｓモードから３０ｆｐｓモードへと生じたことが判明したら、その後、ルーチン２００はステップ２３６に進む。ステップ２３５の照会によって、モード変化が３０ｆｐｓモードから２４ｆｐｓモードへと生じたことが判明したら、その後、ルーチン２００はステップ２３７に進む。ステップ２３５の照会によって、モード変化が生じていないことが判明したら、その後、ルーチン２００はステップ２３８に進む。
【００４８】
ステップ２３８で、変数ＲがＧＯＰSTART−ＧＯＰBITSと等しく設定される。すなわち、ＧＯＰビット割り当て内に残るビット数（Ｒ）は、初期のビット割り当て量（ＧＯＰSTART）から使用されたビット数（ＧＯＰBITS）を差し引いた数と等しく設定される。その後、ルーチン２００はステップ２６０に進む。
【００４９】
ステップ２６０では、現在処理されたＧＯＰ内の現在処理されたビデオフレームを形成する各マクロブロックに関して、量子化パラメータが計算される。その後、ルーチン２００はステップ２６５に進む。ここでは、例えばＴＭ−５速度制御アルゴリズムにしたがって、フレームがエンコードされる。また、変数ＮP（現在のＧＯＰ内に残るＰ−フレームの数）の値および変数ＮB（現在のＧＯＰ内に残るＢ−フレームの数）の値が必要に応じて調整される。その後、ルーチン２００はステップ２６６に進む。ここでは、現在のエンコーディングモード、すなわち、ステップ２６５でエンコードされたフレームが２４ｆｐｓネイティブモードフレームなのか或いは３０ｆｐｓネイティブモードフレームなのかが照会される。
【００５０】
ステップ２６６での問い合わせにおいて、ステップ２６５でエンコードされたフレームが３０ｆｐｓフレームであるという答えが示されたら、その後、ルーチン２００はステップ２６７に進み、ここで、変数ｎ３０が１だけ増加される。その後、ルーチン２００はステップ２７０に進む。ステップ２６６での問い合わせにおいて、ステップ２６５でエンコードされたフレームが２４ｆｐｓフレームであるという答えが示されたら、その後、ルーチン２００はステップ２６８に進み、ここで、変数ｎ２０が１だけ増加される。その後、ルーチン２００はステップ２７０に進む。
【００５１】
ステップ２７０では、変数ＧＯＰBITSが調整される。変数ＧＯＰBITSは、処理されるＧＯＰ内のビデオフレームをエンコードするためにこれまで使用されたビット総数を表わしている。したがって、ＧＯＰBITSの値は、処理されるＧＯＰ内の最も新しいフレームを処理するために使用されるビット数（ヘッダ情報や他のビット消費情報を含む）だけ増加される。その後、ルーチン２００はステップ２７５に進む。
【００５２】
ステップ２７５では、最も新しいエンコードされたフレームが処理されるＧＯＰの最後のフレーム（すなわち、ＧＯＰフレームの最後）であるか否かが照会される。ステップ２７５の照会に対する答えが否定的である場合には、ルーチン２００はステップ２１５に進む。
【００５３】
ステップ２７５の照会に対する答えが肯定的である場合には、ルーチン２００はステップ２８０に進む。ここでは、変数ＲSLACKがＲと等しく設定される。Ｒは、処理されるＧＯＰに関するビット割り当て内に残るビット数を示しているため、また、ＧＯＰは現在処理されているため、任意の０でない値Ｒは、割り当てられたビット束の過小使用（Ｒ＞０）もしくは過剰使用（Ｒ＜０）を表わしている。このビット割り当てに関するオーバー／アンダーフローは、先にエンコードされたＧＯＰから残存する任意のオーバー／アンダーフローに加えられる。これにより、エンコーディングプロセス中、利用可能な帯域幅を最大限に使用することができる。例えば、過小使用されたビット束は、増加されたビット数をもって次のＧＯＰのＩ−フレームをエンコードすることによって、次の量子化されたビデオフレームにおける量子化ステップサイズを減らすことによって、また、エンコーディングプロセスを質的に高める他の既知の方法によって、使用しても良い。その後、ルーチン２００はステップ２１２に進む。
【００５４】
各ステップ２３６、２３７においては、３つの変数の値が計算される。具体的には、第１の変数ｎＢｕは、新しい動作モード（すなわち、モード変化の検出後に開始されるモード）でコード化されるＢ−フレームの数を示す値と等しく設定される。第２の変数ｎＰｕは、新しい動作モードでコード化されるＰ−フレームの数を示す値と等しく設定される。第３の変数ｎＢ0は、旧動作モード（すなわち、モード変化の検出前のモード）でコード化されるＢ−フレームの数を示す値と等しく設定される。ステップ２３６が実行された後、ルーチン２００はステップ２４０に進む。ステップ２３７が実行された後、ルーチン２００はステップ２５０に進む。
【００５５】
ステップ２４０においては、以下の方程式３にしたがって、現在処理されるＧＯＰ内に残っているビット数（Ｒ）が計算される。一方、ステップ２５０においては、以下の方程式４にしたがって、現在処理されるＧＯＰ内に残っているビット数（Ｒ）が計算される。ここで、
「ｎ２０」は、２４ｆｐｓ動作モード中にエンコードされた現在のＧＯＰ内のフレーム数であり、
「ｎ３０」は、３０ｆｐｓ動作モード中にエンコードされた現在のＧＯＰ内のフレーム数であり、
「ｎＢｕ」は、新しい動作モード（すなわち、モード変化の検出後）でコード化されるＢ−フレーム数であり、
「ｎＰｕ」は、新しい動作モードでコード化されるＰ−フレーム数であり、
「ｎＢ0」は、旧モードでコード化されるＢ−フレーム数である。
【方程式３】
0004344476.tif 000004
【方程式４】
0004344476.tif 000005
【００５６】
ステップ２４０で、現在処理されるＧＯＰ内に残っているビット数（Ｒ）を計算したら、その後、ルーチン２００はステップ２４５に進む、ここでは、以下の方程式５にしたがって、リアクションパラメータ（ｒ）が計算される。その後、ルーチン２００はステップ２６０に進む。
【方程式５】
0004344476.tif 000006
【００５７】
ステップ２５０で、現在処理されるＧＯＰ内に残っているビット数（Ｒ）を計算したら、その後、ルーチン２００はステップ２５５に進む、ここでは、以下の方程式６にしたがって、リアクションパラメータ（ｒ）が計算される。その後、ルーチン２００はステップ２６０に進む。
【方程式６】
0004344476.tif 000007
【００５８】
図３は、フィールド・ディファレンシング方法論を使用した典型的な３：２プルダウン検出法によりトラバースされた種々の状態を示す状態図である。具体的には、図３は、３：２プルダウン検出器１４２によって或いは図４を参照して後述するようなフィールド・ディファレンシング方法論を使用した等価の３：２プルダウン検出ルーチンによってトラバースされた種々の状態を示す状態図３００である。状態図３００は、ミックス・モードビデオ情報すなわち２４ｆｐｓモード（映画モード）情報および３０ｆｐｓモード（ＮＴＳＣモード）情報を含む入力ビデオシーケンス（例えば、図１の入力ビデオ情報ストリームＩＮ）の処理時にトラバースされた状態を示している。
【００５９】
具体的には、図３の状態図は、２４ｆｐｓ状態（すなわち、２４ｆｐｓモードもしくは映画モード）３１０と、３０ｆｐｓ状態（すなわち、３０ｆｐｓモードもしくはＮＴＳＣモード）３３０と、２つの曖昧な状態３２０Ａ、３２０Ｂとを示している。曖昧な状態とは、モードを決定することができない状態のことである。これは、例えば１つの映画モードから他の映画モードへの移行時や、映画モードからＮＴＳＣモードへの移行時に生じる。
【００６０】
３０ｆｐｓ状態にある間、処理されるフレームのトップフィールドまたはボトムフィールドが監視されて、フレームのトップフィールドまたはボトムフィールドが次のフレームによって繰り返されるかどうかが決定される。繰り返されたトップフィールドまたはボトムフィールドの検出時、２４ｆｐｓ状態への移行（３３０−ＴＢ）が形成される。
【００６１】
２４ｆｐｓ状態にある間、トップが繰り返されるという決定が成された場合には、第１の曖昧な状態３２０Ａへの移行（３１０−Ｔ）が形成される。同様に、ボトムフｘ−ルドが繰り返されるという決定が成された場合には、第２の曖昧な状態３２０Ｂへの移行（３１０−Ｂ）が形成される。
【００６２】
第１の曖昧な状態３２０Ａへの移行時に、ボトムフィールドが繰り返されるか否かについて決定が成される。ここで、ボトムフィールドが繰り返されないという決定が成された場合には、３０ｆｐｓ状態への移行（３２０Ａ−Ｎ）が形成される。また、ボトムフィールドが繰り返されるという決定が成された場合には、第２の曖昧な状態３２０Ｂへの移行（３２０Ａ−Ｙ）が形成される。
【００６３】
第２の曖昧な状態３２０Ｂへの移行時に、トップフィールドが繰り返されるか否かについて決定が成される。ここで、トップフィールドが繰り返されないという決定が成された場合には、３０ｆｐｓ状態への移行（３２０Ｂ−Ｎ）が形成される。また、トップフィールドが繰り返されるという決定が成された場合には、第１の曖昧な状態３２０Ａへの移行（３２０Ｂ−Ｙ）が形成される。
【００６４】
３０ｆｐｓ状態において、各フレームの各フィールドは、例えば図１のＭＰＥＧ適合型エンコーダ１００によってエンコードされる。これに対して、２４ｆｐｓ状態では、繰り返されない（例えば、３：２プルダウン処理に起因して）フィールドだけがエンコードされる。曖昧な状態においては、受け取られたビデオフレームがインターレースフィールドとしてエンコードされる。しかしながら、奇数フィールドのエンコーディング（例えば、２４ｆｐｓ状態でフィールドをドロッピングした後の３０ｆｐｓ状態への移行）を避けるために、図では、次のフレームでのボトムの繰り返しをチェックする（すなわち、パス３２０Ｂ−Ｙ）ことによって、第２の曖昧な状態３２０Ｂ（２４ｆｐｓ状態から開始された場合）が奇数フィールドを超えて続くようになっている。同様に、この状態図では、次のフレームでのトップの繰り返しをチェックする（すなわち、パス３２０Ａ−Ｙ）ことによって、第１の曖昧な状態３２０Ａ（２４ｆｐｓ状態から開始された場合）が奇数フィールドを超えて続くようになっている。
【００６５】
図４は、図１のＭＰＥＧ適合型エンコーディングシステム１００の３：２プルダウン検出器１４２もしくは速度コントローラ１４０のいずれかにおいての使用に適した本発明に係る３：２プルダウン検出ルーチンのフローチャートを示している。具体的には、３：２プルダウン検出ルーチンは、図３の状態図３００を実行する。図４の３：２プルダウン検出ルーチン４００は、画像フレームのシーケンス、具体的には、図１のＭＰＥＧ適合型システムの入力ビデオ情報ストリームＩＮを介して受けられる画像フレームのシーケンスが、ネイティブ３０ｆｐｓビデオ材料もしくはネイティブ２４ｆｐｓビデオ材料（例えば、前述した３：２プルダウンプロセスにしたがって処理されたビデオ）を備えているかを決定する。
【００６６】
例えば、図１のシステム１００の３：２プルダウン検出器１４２もしくは速度コントローラ１４０によってビデオ情報ストリームＩＮが受け取られると、ステップ４０１でルーチン４００が開始される。その後、ルーチン４００はステップ４０２に進む。ここでは、インデックス変数ＦＲＡＭＥ ＮＵＭが１に初期設定される。その後、ルーチン４００はステップ４０４に進む。
【００６７】
ステップ４０４においては、現在のビデオフレーム（例えば、ＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報と、先のビデオフレーム（例えば、１だけ減少されたＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報とが比較される。すなわち、ＦＲＡＭＥ ＮＵＭフレームのトップフィールドおよびボトムフィールド内の輝度情報が、ＦＲＡＭＥ ＮＵＭ−１フレームのトップフィールドおよびボトムフィールド内の各輝度情報と比較され、トップフィールドとボトムフィールドのいずれが繰り返されるのかが決定される。その後、ルーチン４００はステップ４０６に進む。
【００６８】
ステップ４０６においては、トップフィールドが繰り返されるか否かが照会される。ステップ４０６での照会に対する答えが否定的である場合には、その後、ルーチン４００はステップ４０８に進む。ステップ４０６での照会に対する答えが肯定的である場合には、その後、ルーチン４００はステップ４２２に進む。
【００６９】
ステップ４０８においては、ボトムフィールドが繰り返されるか否かが照会される。ステップ４０８での照会に対する答えが否定的である場合には、その後、ルーチン４００はステップ４０９に進む。このステップ４０９では、入力ビデオ情報ストリームＩＮが３０ｆｐｓモードであることを示すように、変数ＭＯＤＥが設定される。その後、ルーチン４００はステップ４１６に進み、ここでインデックス変数ＦＲＡＭＥ ＮＵＭが増大されて、ステップ４０４に進む。
【００７０】
ステップ４０８での照会に対する答えが肯定的である場合には、その後、ルーチン４００はステップ４１０に進む。ここでは、処理される次のビデオフレームの後に続くビデオフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ＋２）の輝度情報と、それに続くフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ＋３）の輝度情報とが比較される。これらのフレームを比較する目的は、現在のフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ）のボトムフィールドをドロッピングすることによって、奇数のフィールドがエンコードされるかどうかを決定することである。その後、ルーチン４００はステップ４１２に進む。
【００７１】
ステップ４１２においては、ＦＲＡＭＥ ＮＵＭ＋２フレームのトップフィールドがＦＲＡＭＥ ＮＵＭ＋３フレームによって繰り返されるか否かが照会される。このステップ４１２での照会に対する答えが否定的である場合には、その後、ルーチン４００はステップ４１４に進む。
【００７２】
ステップ４１４においては、繰り返されたボトムフィールドをドロップすることができない。これは、繰り返されたボトムフィールドが、繰り返されないトップフィールドと関連付けられているためである。したがって、繰り返されたボトムフィールドはエンコーディングのための奇数フィールドを備えている。すなわち、ステップ４１２での問い合わせにおいて、トップフィールドが繰り返されないことが示された場合、これは、２４ｆｐｓモードと３０ｆｐｓモードとの間の移行が原因であり、ドロップされる場合（すなわち、エンコードされない場合）、ボトムフィ−ルドは結果として奇数フィールドがエンコードされることとなる。その後、ルーチン４００はステップ４１６に進み、ここで、変数ＦＲＡＭＥ ＮＵＭが増大され、ステップ４０４に進む。
【００７３】
ステップ４１２での照会に対する答えが肯定的である場合には、その後、ルーチン４００はステップ４１８に進む。このステップ４１８では、現在のフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ）のボトムフィールドがドロップされ（すなわち、エンコードされず）、インデックス変数ＦＲＡＭＥ ＮＵＭが２だけ増加される。その後、ルーチン４００はステップ４２０に進む。
【００７４】
ステップ４２０においては、現在のビデオフレーム（例えば、ＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報と、先のビデオフレーム（例えば、１だけ減少されたＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報とが比較される。その後、ルーチン４００はステップ４２４に進む。
【００７５】
ステップ４０６での照会が肯定的である場合には、その後、ルーチン４００はステップ４２２に進む。このステップ４２２では、処理される次のビデオフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ＋１）の輝度情報と、それに続くフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ＋２）の輝度情報とが比較される。これらのフレームを比較する目的は、現在のフレーム（すなわち、ＦＲＡＭＥ ＮＵＭ）のトップフィールドをドロッピングすることによって、奇数のフィールドがエンコードされるかどうかを決定することである。その後、ルーチン４００はステップ４２４に進む。
【００７６】
ステップ４２４においては、ボトムフィールドが繰り返されるか否かが照会される。このステップ４２４での照会に対する答えが否定的である場合には、その後、ルーチン４００はステップ４２６に進む。このステップ４２４での照会に対する答えが肯定的である場合には、その後、ルーチン４００はステップ４２５に進む。
【００７７】
ステップ４２６においては、繰り返されたトップフィールドをドロップすることができない。これは、繰り返されたトップフィールドが、繰り返されないボトムフィールドと関連付けられているためである。したがって、繰り返されたトップフィールドはエンコーディングのための奇数フィールドを備えている。その後、ルーチン４００はステップ４２８に進み、ここで変数ＦＲＡＭＥ ＮＵＭが増大され、ステップ４０４に進む。
【００７８】
ステップ４２５においては、モード標識が２４ｆｐｓと等しく設定される。これは、入力ビデオストリームが、３０ｆｐｓビデオ材料を形成するために３：２プルダウンプロセスにしたがって処理されるネイティブ２４ｆｐｓビデオを備えていることを示す。その後、ルーチン４００はステップ４３０に進む。このステップ４３０では、繰り返されたトップフィールドがドロップされ、インデックス変数ＦＲＡＭＥ ＮＵＭが３だけ増加される。その後、ルーチン４００はステップ４３２に進む。ここでは、現在のビデオフレーム（例えば、ＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報と、先のビデオフレーム（例えば、１だけ減少されたＦＲＡＭＥ ＮＵＭ変数によって索引が付けられる）の輝度情報とが比較される。その後、ルーチン４００はステップ４１２に進む。
【００７９】
図５は、図１のＭＰＥＧ適合型エンコーディングシステム１００および図４の３：２プルダウン検出ルーチンの使用に適した本発明に係るフィールド・ディファレンシングルーチンのフローチャートを示している。具体的には、図５は、図４の３：２プルダウン検出ルーチンにおける例えばステップ４０４、４１０、４２０、４２２、４３２を実行するのに適したフィールドディファレンシング（すなわち、比較ルーチン）のフローチャート５００を示している。
【００８０】
ルーチン５００はステップ５０１で始まり、ステップ４０２に進む。このステップ５０２では、変数ＭＢ ＮＵＭが０に初期設定される。その後、ルーチン５００はステップ５０４に進み、ここで、ＭＢ ＮＵＭをＭＢ ＭＡＸと等しくするかどうかを照会する。ここで、ＭＢ ＮＵＭは、現在操作されるマクロブロックの数を示しており、一方、ＭＢ ＭＡＸは、操作されるフレームの最後のマクロブロックの数を示している。ＭＢ ＭＡＸは、処理されるビデオのフォーマットに大きく依存する。
【００８１】
ステップ５０４での照会に対する答えが否定的である場合には、ルーチン５００はステップ５１４に進む。ここでは、同じパリティの２つの連続するフィールド間の絶対差の総計が、１６×１６マクロブロック内の１つのピクセル列にわたって蓄積されるとともに、オーバーラップされない１６×１６マクロブロックにフレームが分割される。ＳＡＤ ＭＢ ＲＯＷを計算した後、ルーチン５００はステップ５１６に進む。ここでは、ＳＡＤ ＭＢ ＲＯＷがＴ ＭＢ ＬＯＷよりも小さいか否かが照会される。好ましい実施形態において、Ｔ ＭＢ ＬＯＷは、１４４の閾レベルを示している。
【００８２】
ステップ５１６での照会に対する答えが肯定的である場合には、その後、ルーチン５００はステップ５１８に進む。ここでは、変数ＣＵＭＳＡＤが変数ＳＡＤ ＭＢ ＲＯＷだけ増加され、変数ＭＢ ＮＵＭが１だけ増加される。その後、ルーチン５００はステップ５０４に進む。
【００８３】
ステップ５１６での照会に対する答えが否定的である場合には、その後、ルーチン５００はステップ５２０に進む。ここでは、ＳＡＤ ＭＢ ＲＯＷがＴ ＭＢ ＨＩＧＨよりも大きいか否かが照会される。典型的な実施形態において、Ｔ ＭＢ ＨＩＧＨは、５１２の閾レベルを示している。ステップ５２０での照会に対する答えが肯定的である場合には、その後、ルーチン５００はステップ５２２に進む。ここでは、現在検査されたマクロブロックを含むフィールドが、繰り返されないフィールドとして分類される。その後、ルーチン５００は終了を示すステップ５２４に進む。
【００８４】
ステップ５２０での照会に対する答えが否定的である場合には、その後、ルーチン５００はステップ５２６に進む。ここでは、２つのフィールド間の絶対差の総計がマクロブロック全体にわたって計算されるとともに、これが８倍されて、変数ＳＡＤ ＭＢとして記憶される。その後、ルーチン５００はステップ５２８に進む。ここでは、ＳＡＤ ＭＢがＴ ＭＢ ＨＩＧＨよりも大きいか否かが照会される。このステップ５２８での照会に対する答えが肯定的である場合には、その後、ルーチン５００はステップ５２２に進む。ステップ５２８での照会に対する答えが否定的である場合には、その後、ルーチン５００はステップ５３０に進む。ステップ５３０では、変数ＣＵＭ ＳＡＤがＳＡＤ ＭＢだけ増加され、ＭＢ ＮＵＭが１だけ増加される。その後、ルーチン５００はステップ５０４に進む。
【００８５】
ステップ５０４での照会に対する答えが肯定的である場合には、ルーチン５００はステップ５０６に進む。典型的な実施形態において、このステップ５０６では、Ｔ ＦＲが、マクロブロックの幅とマクロブロックの高さとを乗じた２．５に相当する閾値となるか否かが照会される。ステップ５０６での照会に対する答えが否定的である場合には、その後、ルーチン５００はステップ５０８に進む。このステップ５０８では、現在検査されたフィールドが、繰り返されないフィールドとして分類される。ステップ５０６での照会に対する答えが肯定的である場合には、その後、ルーチン５００はステップ５１０に進む。このステップ５１０では、現在検査されたフィールドが、繰り返されるフィールドとして分類される。ルーチン５００は、いずれかのステップ５０８、５１０から、ルーチン５００の終了を示すステップ５１２に進む。
【００８６】
フィールド・ディファレンシングの計算を促進させるとともに、メモりの帯域幅を減少させるため、３：２プルダウン検出器（ｌｕｍａ  ｒｅｐｅａｔ  ｆｉｅｌｄ  ｄｅｔｅｃｔｏｒと称される）は、以下の方法にしたがって、２つのフィールドを比較する。すなわち、まず第１に、例えば、各マクロブロック（例えば、１マクロブロック＝８列×１６ピクセル）の１つの列に沿った同じパリティの連続する輝度フィールド内の絶対差の総計（ＳＡＤ）が計算される。第２に、計算された絶対差の総計（ＳＡＤ）が上側の閾レベルＴ ＭＢ ＨＩＧＨよりも大きい場合には、その後、第２のフィールドは第１のフィールドの繰り返しとはならず、方法が終了する。第３に、計算されたＳＡＤが上側の閾レベルＴ ＭＢ ＨＩＧＨよりも小さい場合には、その後、フィールド内の次のマクロブロックに進み、ステップ１から３を繰り返す。第４に、計算されたＳＡＤが上側の閾レベルＴ ＭＢ ＨＩＧＨ以下で且つ下側の閾レベルＴ ＭＢ ＬＡＷ以上である場合には、その後、マクロブロック全体にわたってＳＡＤを計算する。第５に、ＳＡＤがマクロブロックＴ ＭＢにわたって１つの閾値を超えている場合、その後、第２のフィールドは第フィールドの繰り返しとはならない。それ以外は、次のマクロブロックに進み、前述したステップを繰り返す。最後に、全てのマクロブロックが処理され、全てのＳＡＤがフレームＴ ＦＲの全体にわたって１つの閾値を超えていない場合には、次いで、第２のフィールドは第１のフィールドの繰り返しとなる。
【００８７】
このような多層構成閾値決めによって、フォールス・アラームの可能性を低くすることができる。また、閾値によって、我々は、フィールドが正確な繰り返しとなることを妨げるトランスコーディングエラーを捕らえることができる。閾値は、３：２プルダウン材料の大きなセットに基づいて、経験的に到達することができる。
【００８８】
発明者らの実験によれば、エンコードされるビデオストリームからプルダウンプロセスを取り除くために本発明を使用すると、輝度情報に関しては０．９から１．５ｄＢの量的向上が得られ、クロミナンス情報に関しては０．５から１．２ｄＢの量的向上が得られることが分かった。また、標準的なＴＭ−５速度制御アルゴリズムが障害を受ける可能性があるミックス・モードシーケンスにおいて、速度制御は、良好に実行され、２４ｆｐｓ（すなわち、ムービーモード）におけるフレームの質を同じ量だけ向上する。
【００８９】
本発明の一実施形態において、ＭＰＥＧ標準におけるシンタックスは、繰り返されたフィールドの確認を助けるために使用される。具体的には、以下の表１に示されるように、トップ フィールド ファーストフラグおよびリピート ファースト フィールドフラグは、どのフィールドが繰り返されるのかを決定するために使用されても良い。
【表１】
0004344476.tif 000008
【００９０】
したがって、前述したトップ フィールド ファーストフラグおよびリピート ファースト フィールドフラグを含む受け取られた情報ストリームをエンコードする（もしくは、トランスコーディングする）場合には、エンコーディング前に冗長情報（すなわち、繰り返されたフィールド）がドロップされても良い。
【００９１】
本発明は、コンピュータ実行プロセスや、このプロセスを実行する装置の形態で具体化することができる。また、本発明は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライバ、コンピュータで読むことができる他の任意の記憶媒体のような有形の媒体で具現化されるコンピュータプログラムコードの形態で具体化することもできる。この場合、コンピュータプログラムコードがロードされてコンピュータによって実行されると、コンピュータは本発明を実行する装置となる。また、本発明は、例えば、記憶媒体に記憶されてロードされたり、コンピュータによって実行され、あるいは、電線、ケーブル、光ファイバ、電磁放射線といった幾つかの伝達媒体によって伝達されるようなコンピュータプログラムコードの形態で具体化することもできる。この場合、コンピュータプログラムコードがロードされてコンピュータによって実行されると、コンピュータは本発明を実行する装置となる。多目的マイクロプロセッサ上で実行されると、コンピュータプログラムコードのセグメントは、特定のロジック回路を形成するように、マイクロプロセッサを構成する。
【００９２】
ここでは、本発明の技術を具体化した様々な実施形態を示して詳細に説明してきたが、当業者であれば、これらの技術を具体化した他の多くの変形例を容易に考え出すことができるであろう。
【図面の簡単な説明】
【図１】  本発明に係る装置を有するＭＰＥＧ適合型エンコーディングシステム１００を示す図である。
【図２Ａ】  図１のＭＰＥＧ適合型エンコーディングシステムの使用に適した本発明に係る速度制御ルーチンを示す図である。
【図２Ｂ】  図１のＭＰＥＧ適合型エンコーディングシステムの使用に適した本発明に係る速度制御ルーチンを示す図である。
【図３】  フィールド・ディファレンシング方法論を使用した典型的な３：２プルダウン検出法によってトラバースされた種々の状態を示す状態図である。
【図４】  図１のＭＰＥＧ適合型エンコーディングシステムの使用に適した本発明に係る３：２プルダウン検出ルーチンのフローチャートである。
【図５】  図４の３：２プルダウン検出ルーチンおよび図１のＭＰＥＧ適合型エンコーディングシステムの使用に適した本発明に係るフィールド・ディファレンシングルーチンのフローチャートである。
【図１】
0004344476.tif 000009
【図２】
0004344476.tif 000010
【図２Ａ】
0004344476.tif 000011
【図２Ｂ】
0004344476.tif 000012
【図３】
0004344476.tif 000013
【図４】
0004344476.tif 000014
【図５】
0004344476.tif 000015