(57)【特許請求の範囲】
【請求項１】
ビデオ圧縮エンジンと該ビデオ圧縮エンジンの出力にバッファを介して結合されたビデオエンコーダとを備えているコード化システムにおいて用いられ、該ビデオエンコーダへの該バッファの出力レートが該ビデオ圧縮エンジンの出力レートに一致するように該ビデオエンコーダへの該バッファの出力レートを調整する方法であって、該ビデオ圧縮エンジンは、ビデオ信号内のビデオイメージを圧縮し、該圧縮されたビデオ信号を第１のビットストリームとして出力し、該ビデオエンコーダは、該第１のビットストリームをトランスポートストリームとしてコード化し、該コード化された第１のビットストリームを第２のビットストリームとして出力し、該方法は、
該ビデオ圧縮エンジンからの該第１のビットストリームを構文解析して、少なくとも該ビデオ信号のデコード時間と、該第１のビットストリーム内のイメージのバッファリングと該第１のビットストリーム内のイメージのデコードとの間の時間間隔を表すバッファ時間遅延とを識別することであって、該デコード時間および該バッファ時間遅延の各々は、該第１のビットストリームに埋め込まれている、ことと、
該バッファ時間遅延が該デコード時間を超えて広がる超過時間量を決定することと、該ビデオ圧縮エンジンの出力レートに該超過時間量を適用することにより、該超過時間量内の該ビデオ圧縮エンジンにより生成される１フレームあたりのビット量を決定することとにより、該ビデオエンコーダへの該バッファの出力レートと該ビデオ圧縮エンジンの出力レートとの間のビットエラー偏差を決定することであって、該ビット量は、該ビットエラー偏差を表す、ことと、
該ビデオエンコーダへの該バッファの出力レートが該ビデオ圧縮エンジンの出力レートに一致するように、該出力レートを該ビットエラー偏差と結合することにより、該ビデオエンコーダへの該バッファの出力レートを調整することと
を包含する、方法。
【請求項２】
前記ビットストリームは、ＭＰＥＧ−２ビットストリームである、請求項１に記載の方法。
【請求項３】
前記デコード時間は、ＭＰＥＧ−２タイムスタンプである、請求項２に記載の方法。
【請求項４】
前記ＭＰＥＧ−２タイムスタンプは、デコードタイムスタンプ（ＤＴＳ）である、請求項３に記載の方法。
【請求項５】
前記ＭＰＥＧ−２タイムスタンプは、プレゼンテーションタイムスタンプ（ＰＴＳ）である、請求項３に記載の方法。
【請求項６】
前記バッファ時間遅延は、ビデオバッファベリファイヤ遅延（ＶＢＶ＿ｄｅｌａｙ）値である、請求項１に記載の方法。
【請求項７】
前記ビデオエンコーダは、前記コード化システムのローカル時間を表すシステムタイムクロック（ＳＴＣ）を含むクロックを含む、請求項１に記載の方法。
【請求項８】
前記超過時間量（Ｔｅｒｒｏｒ）が、以下の式：
Ｔｅｒｒｏｒ（秒）＝（ＶＢＶ＿ｄｅｌａｙ−（ＤＴＳ−ＳＴＣ））／９０，０００
で計算され、
ここで、ＶＢＶ＿ｄｅｌａｙは、ビデオバッファベリファイ遅延値を表し、ＤＴＳは、デコードタイムスタンプを表し、ＳＴＣは、前記コード化システムのローカル時間を表すシステムタイムクロックを表す、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、概して、可変レートビットストリームの伝送に関し、より具体的には、起こり得る帯域幅オーバーフローを検出し、防ぐ方法に関する。特に、本発明は、非同期コード化システムにおける、コード化されたビットストリームの適応性のある高精度ビットレート制御に関する。
【背景技術】
【０００２】
（発明の背景）
近年、データ、特にビデオデータの伝送は、ビデオデータがしばしば高帯域幅を必要とし、バースト的（ｂｕｒｓｔｙ）であり、時間的制約があるいうことに関連する問題点を提示して来た。従来、データ伝送は、電話会社によって提供される公衆変換回線網またはパケットネットワークで行われてきた。公衆変換回線網は、双方向音声用途用に設計されており、従って、厳しい時間的制約を満たす比較的低い帯域幅の回路を提供する。パケットネットワークは、コンピュータシステム間のデータ転送用に設計されている。唯一の制約は、データが最終的にその宛先に到達するということである。転送に関して利用可能な帯域幅は、ネットワークにおける輻輳の程度に依存する。従って、典型的には、パケットネットワークは、大量のデータのうちのあるデータが、いつ宛先に到達するかを保証しないし、どのような順序で到達するかということさえ保証しない。
【０００３】
従って、電話ネットワークもパケットネットワークも、時間的制約がある、高帯域幅のバーストデータの処理に良好に適応していないことが認識され得る。このようなデータの一例は、ＩＳＯ／ＩＥＣ１３８１８−１および１３８１８−２に示されるように、Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（「ＭＰＥＧ」）ＭＰＥＧ−２規格に従って圧縮されたデジタルテレビである。
【０００４】
ＭＰＥＧ−２規格は、ビデオのデジタル表現を圧縮するためのコード化方式を定義する。そのコード化方式は、概して、ビデオイメージの空間的かつ時間的な冗長性が高いということを利用している。所与のビデオイメージは、領域全体が同じ外観である部分を複数有しているので、空間的冗長性がある。領域が広くなり、領域の数が増大するにつれ、イメージにおける空間的冗長度はより高くなる。シーケンス内のある所与のビデオイメージとその前後のイメージとの間に大きな変化がないことが多いので、時間的冗長性がある。２つのビデオイメージ間の変化が少なければ少ないほど、時間的冗長度はより高くなる。１イメージにおける空間的冗長度が高くなり、そのイメージが属するイメージシーケンス内の時間的冗長度が高くなるほど、その次に続くイメージを表すために必要になる情報のビットはより少なくなる。
【０００５】
ＭＰＥＧ−２圧縮方式は、圧縮されたピクチャのシーケンスとしてビデオイメージのシーケンスを提示し、各ピクチャは特定のときにデコードされる必要がある。ピクチャを圧縮し得る方法は三つある。第１の方法はイントラコーディングと呼ばれ、他のピクチャを参照することなく圧縮が行われる方法である。このコード化技術は、空間的冗長性を低減するが、時間的冗長性は低減されない。得られるピクチャは、概して、コード化によって空間的かつ時間的冗長性がともに低減したピクチャよりも大きい。この方法でコード化されたピクチャはＩ−ピクチャと呼ばれる。ある程度の数のＩ−ピクチャがシーケンスにおいて必要とされる。これは、第１に、シーケンス内の最初のピクチャはＩ−ピクチャである必要があり、第２に、Ｉ−ピクチャは伝送エラーからの復元を可能にするからである。
【０００６】
時間的冗長性は、前方または後方または両方のピクチャからの変化のセットとしてピクチャをコード化することによって低減される。ＭＰＥＧ−２においては、これは、移動補償された前方予測および後方予測を用いて実行される。ピクチャが前方移動補償予測のみを使用する場合、そのピクチャは予測コード化ピクチャ（Ｐｒｅｄｉｃｔｉｖｅ−ｃｏｄｅｄ  ｐｉｃｔｕｒｅ）またはＰピクチャと呼ばれる。ピクチャが前方移動補償予測および後方移動補償予測の両方を用いる場合、２方向予測コード化ピクチャ（ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ  ｐｒｅｄｉｃｔｉｖｅ−ｃｏｄｅｄ  ｐｉｃｔｕｒｅ）、または、省略してＢピクチャと呼ばれる。概して、ＰピクチャはＩピクチャよりもビットが少なく、Ｂピクチャは最もビット数が少ない。従って、所与のピクチャシーケンスをＭＰＥＧ−２フォーマットでコード化するために必要なビット数は、ピクチャ内容自体だけでなく、上述のピクチャコード化タイプの分布に依存する。前述の記載から明らかなように、ニュース番組のメインキャスターのイメージをコード化するために必要なピクチャのシーケンスは、ＭＴＶでの曲の演奏のために必要なシーケンスよりも、Ｉ−ピクチャの数も少なく、大きさも小さく、ＢピクチャおよびＰピクチャも小さい。結果として、ニュース番組のメインキャスターのイメージのＭＰＥＧ−２表現は、ＭＴＶのシーケンスのイメージのＭＰＥＧ−２表現よりもずっと小さくなる。
【０００７】
ＭＰＥＧ−２ピクチャは、典型的には、民生電子デバイス、すなわち、ケーブルテレビ（「ＣＡＴＶ」）サービスプロバイダによって提供されるデジタルテレビやセットトップボックスなどの受信器によって受信される。デバイスの制約によって、ＭＰＥＧ−２ピクチャを格納するために利用可能なメモリの量が制限され得る。さらに、そのピクチャは、動画を生成するために用いられている。結果として、ＭＰＥＧ−２ピクチャは、次のＭＰＥＧ−２ピクチャが必要なときに利用可能であり、現在送信されているピクチャを入れる空間がメモリ内にあるように、適切な順序でかつ時間間隔で、受信器に到達する必要がある。この技術において、データが足りなくなってしまったメモリはアンダーフローしたと言われ、一方保持できるデータよりも多いデータを受け取ってしまったメモリはオーバーフローしたと言われる。アンダーフローの場合、ＴＶピクチャの動きは次のＭＰＥＧ−２ピクチャが到達するまで停止する必要があり、オーバーフローの場合、メモリに納まらなかったデータは単に失われるだけである。
【０００８】
また、ＭＰＥＧ−２が、可変かつバースト的なビデオデータストリームと可変ビットレートコード化ストリームとの区別を理解することが重要である。実際、ＭＰＥＧ−２のもとでは、一定ビットレートストリーム（「ＣＢＲ」）と可変ビットレートストリーム（「ＶＢＲ」）が定義される。コード化されたＣＢＲビデオシーケンスにおいては、比較的に動きの少ないテレビのニュースキャスターは、依然として、規定されたビットレートでコード化される。ＣＢＲシステムの制約は、ビデオ「パイプ（ｐｉｐｅ）」が満たされていることを要求するので、Ｉピクチャ、ＰピクチャおよびＢピクチャはすべて依然として比較的大きい。ＶＢＲにおいては、ビデオパイプを満たすというシステムの要求はないので、伝送されるピクチャは必要とされるだけの大きさである。
【０００９】
図１は、テレビイメージのシーケンスのＭＰＥＧ−２ビットストリーム表現を搬送するチャネル１６によって接続されているデジタルピクチャソース１２およびテレビ１４を含むシステム１０を表す。デジタルピクチャソース１２は、イメージの非圧縮デジタル表示（「ＵＤＲ」）１８を生成し、ＵＤＲ１８は、可変ビットレート（「ＶＢＲ」）エンコーダ２０に送られる。ＶＢＲエンコーダ２０は、非圧縮デジタル表現をコード化して、可変レートビットストリーム（「ＶＲＢＳ」）２２を生成する。可変レートビットストリーム２２は、可変長の圧縮デジタルピクチャ２４（ａ．．．ｎ）のシーケンスである。ＭＰＥＧ−２規格に従ってコード化されるとき、ピクチャの長さは、イメージの複雑さと、Ｉ−ピクチャ、Ｐ−ピクチャまたはＢ−ピクチャのいずれであるかということとに依存する。さらに、ピクチャの長さは、ＶＢＲエンコーダ２０のコード化レートに依存する。そのレートは、変更され得る。概して、より多くのビットが用いられてピクチャがコード化されるほど、画質は、より良好になる。
【００１０】
ＶＲＢＳ２２は、チャネル１６を介してＶＢＲデコーダ２６に転送される。ＶＢＲデコーダ２６は、圧縮デジタルピクチャ２４（ａ．．．ｎ）をデコードして、非圧縮デジタルピクチャ２８を生成する。次に、非圧縮デジタルピクチャ２８は、テレビ１４に供給される。テレビ１４がデジタルテレビである場合、直接供給される。そうでない場合には、非圧縮デジタルピクチャ（「ＵＤＰ」）２８を標準アナログテレビ信号に変換し、これらの信号をテレビ１４に供給する他の要素がある。当然、１つのエンコーダ２０の出力を受け取るＶＢＲデコーダ２６の数は、任意の数であり得る。
【００１１】
図１において、チャネル１６は、ＶＲＢＳ２２を、パケット３０のシーケンスとして転送する。パケットのシーケンスは、ＭＰＥＧ−２規格関連で、パケット基本ストリーム、または「ＰＥＳ」として公知である。従って、圧縮デジタルピクチャ２４は、図１において、パケット３０の可変長シーケンスとして表されている。従って、ピクチャ２４（ａ）は「ｎ」個のパケットを有し得、ピクチャ２４（ｎ）は、「ｋ」個のパケットを有する。各ピクチャ２４には、タイミング情報３２が含まれる。タイミング情報は、２種類の情報、すなわち、クロック情報およびタイムスタンプを含む。クロック情報は、デコーダ２６をエンコーダ２０と同期化させるために用いられる。ＭＰＥＧ−２規格は、このクロック情報のことを、プログラムクロック基準（「ＰＣＲ」）と呼ぶ。タイムスタンプは、いつピクチャがデコードされるかを規定するデコードタイムスタンプ（「ＤＴＳ」）と、いつピクチャが実際に表示されるかを規定するプレゼンテーションタイムスタンプ（「ＰＴＳ」）とを含む。タイムスタンプにおいて規定される時間は、クロック情報に関して規定される。ＶＢＲデコーダ２６は、ピクチャ２４をデコードし、これをＴＶ１４に供給するまで格納する、比較的少量のメモリを含む。このメモリを、図１において参照符号３４で示し、以下、デコーダのビットバッファと呼ぶ。ビットバッファ３４の大きさは、少なくとも、最大限のあり得るＭＰＥＧ−２ピクチャを保持するために十分な大きさである必要がある。さらに、デコーダ２６が、ＴＶ１４にとって適切なときにピクチャ２４を利用可能にすることができ、ビットバッファ３４が決してオーバーフローまたはアンダーフローしないように、チャネル１６はピクチャ２４をビットバッファ３４に供給する必要がある。ビットバッファ３４は、デコーダがピクチャのタイムスタンプにおいてピクチャのデコードを開始する時間として規定される時間までに、ピクチャ２４内のビットの全てがビットバッファに到達しなかった場合に、アンダーフローする。
【００１２】
次に、図２を参照すると、ここに典型的なＭＰＥＧ−２エンコーダインプリメンテーションの概念的なブロック図が示されている。このインプリメンテーションにおいて固有の問題点は、以下により詳細に説明されるが、ビデオコード化エンジンからの可変ＰＥＳビットレートがシステムレートと一致しないことに関する。この不一致によって生じる問題点は、明らかになる。図２に示すように、生のビデオ入力４０は、ビデオコード化エンジン４２に結合され、ビデオコード化エンジン４２において、例えば、ＭＰＥＧ−２コード化アルゴリズムによって圧縮される。一定ビットレート（ＣＢＲ）コード化システムにおいて、ＭＰＥＧ−２コード化エンジンは、コード化ビットバッファ４４にあるコード化されたビットが、一定ビットレートＲｕで、コード化システム、すなわち、ＦＰＧＡトランスポートパケット化器４６に伝えられると想定している。このビットレートは、コード化ビットバッファレベルまたはシステムがコード化されたデータをコード化ビットストリームバッファから取り出す速度とは無関係に、ビデオコード化エンジンの内部ビットレート計算に依存する。この取り出す速度は、Ｒｊとして公知である。
【００１３】
図２に示すように、コード化ビットストリームは、コード化ビットストリームバッファ４４からトランスポートパケット化器４６に、ビットレートＲｊで伝えられる。トランスポートパケット化器４６においてトランスポートパケットヘッダを追加することに起因して、トランスポートストリームパケット化器出力レートＲｔは、Ｒｊと異なる（Ｒｔ＞Ｒｊ）。ＣＢＲリアルタイムデジタルコード化システムにおいて、コード化されたビットが、デコーダ入力ビットバッファ（図１の３４）に、生成された元のビットレートで連続的に供給されることがきわめて重要である。ＲｕがＲｊと等しい場合、デコーダのバッファの制限は破られない。すなわち、オーバーフローまたはアンダーフローという結果のいずれにもならない。反対に、ビットが、Ｒｕ以外のビットレートでデコーダの入力ビットバッファに入る場合、デコーダバッファのオーバーフローまたはアンダーフローが起き、デコーダの出力におけるビデオの乱れが引き起こされる。可能な解決策の１つとして、コード化エンジンおよびコード化ビットストリーム処理回路の両方の制御に１つのシステムクロックを用いることを要求することである。しかし、図２に示す、現実世界におけるインプリメンテーションにおいて、この理想的な条件は満たされない。
【発明の開示】
【課題を解決するための手段】
【００１４】
従って、デコーダのオーバーフローおよびアンダーフローがいずれも発生しないことを確実にするように、ビットレートＲｕとビットレートＲｊが十分に一致することを確実にする改善された方法および装置に対するニーズがある。これは、特に、ＣＢＲシステムに適用される場合に有用であり得る。このような解決策は、上記のようにさらなるクロックレートを用いるのではなく、システムに組み込まれた既に存在するクロックレートを利用する必要がある。
（項目１）  非同期コード化システムにおいて、コード化ビットストリームの出力ビットレートを制御する方法であって、該非同期コード化システムは、第１のクロックを有し、ビットストリームを第１のレートで出力するビデオ圧縮エンジンと、第２のクロックを有し、ビットストリームを第２のレートで出力するビデオエンコーダとを含み、該方法は、
該ビデオ圧縮エンジンからの該ビットストリーム出力を構文解析して、少なくとも、該ビットストリームにおける第１および第２の時間パラメータを識別する、工程と、
該ビデオコード化システムによるビデオ出力の各フレームについてビットエラー偏差を判定する工程であって、該ビットエラー偏差は、該第１および第２の時間パラメータから計算される、工程と、
該ビットエラー偏差に基づいて、該ビデオ圧縮エンジンの出力を調整する工程と
を包含する、方法。
（項目２）  前記ビットストリームは、ＭＰＥＧ−２ビットストリームである、項目１に記載の方法。
（項目３）  前記第１の時間パラメータは、ＭＰＥＧ−２タイムスタンプである、項目２に記載の方法。
（項目４）  前記ＭＰＥＧ−２タイムスタンプは、デコードタイムスタンプ（ＤＴＳ）である、項目３に記載の方法。
（項目５）  前記ＭＰＥＧ−２タイムスタンプは、プレゼンテーションタイムスタンプ（ＰＴＳ）である、項目３に記載の方法。
（項目６）  前記第２の時間パラメータは、ビデオバッファベリファイヤ遅延（ＶＢＶ＿ｄｅｌａｙ）値である、項目１に記載の方法。
（項目７）  前記第２のクロックは、前記コード化システムのローカル時間を表すシステムタイムクロック（ＳＴＣ）である、項目１に記載の方法。
（項目８）  前記ビットエラー偏差は、タイムエラー偏差に基づく、項目１に記載の方法。
（項目９）  前記タイムエラー偏差（Ｔｅｒｒｏｒ）が、以下の式：
Ｔｅｒｒｏｒ（秒）＝（ＶＢＶ＿ｄｅｌａｙ−（ＤＴＳ−ＳＴＣ））／９０，０００
で計算される、項目８に記載の方法。
（項目１０）  ビットエラー偏差（Ｂｅｒｒｏｒ）は、各フレームについて、以下の式：
Ｂｅｒｒｏｒ（ビット）＝（Ｔｅｒｒｏｒ＊Ｒｕ）／フレームレート
で計算されるが、ここで、Ｒｕは、ビデオ圧縮エンジンがビットストリームを出力するレートを表す、項目９に記載の方法。
【発明を実施するための最良の形態】
【００１５】
（好適な実施形態の詳細な説明）
本明細書は、新規とみなされる本発明の特徴を規定する請求の範囲を結論付けるが、本発明は図面に関連して以下の説明の考察からよりよく理解されると考えられている。図面では、同様の参照符号が繰返し使用されている。
【００１６】
ここで図３を参照すると、デジタルビデオエンコーダにおいて３つの主要な機能ブロックおよびタイムベースを示した、クロック周波数にしたがう周波数ブロック図が図示される。これらの三つのブロックは、異なる周波数で、かつ、そのクロックの任意の一つ同士の間で位相ロックすることなく、クロックされている。デジタルビデオエンコーダ５０は、第１のブロック（それは、ビデオストリームを特定のビットレートＲｕでＰＥＳストリームにコード化するビデオ圧縮エンジン５２である）を含む。この実施形態において、ビデオ圧縮エンジン５２は、ＭＰＥＧ−２ビデオ圧縮エンジンプロセッサであり、１００メガへヘルツ（「ＭＨｚ」）クロック入力によってクロックされる。第２のブロックは、ＰＥＳパイプラインまたはビデオコード化システム５４によって表され、２７ＭＨｚの第２の周波数で動作する。第３のブロック５６は、第３の周波数（一般的には４．０９６ＭＨｚ）で動作する、本発明による制御プロセッサを図示する。これは、ＭＰＥＧ  ＩＩビデオ圧縮プロセッサＲｕのコード化レートおよびＰＥＳパイプラインの臨界出力スロットレートＲｊに設定する。したがって、図３に図示されたコード化システムは、ブロック５２、５４、５６において使用されるクロックが、それぞれ、異なった独立の周波数を有し得るという観点から非同期コード化システムであることが認識され得る。さらに、任意の一つのブロックの動作は、他のブロックの任意のものの異なるタイミング周波数に依存しない。しかし、これは、本発明によってのみ解決される課題の原因である。より詳細には、ＭＰＥＧ−２ビデオ圧縮プロセッサはビデオＰＥＳデータを圧縮し、１００ＭＨｚプロセッサクロックから派生するそれ自体の計算だけに基づくレートＲｊでビデオＰＥＳデータを出力する。逆に、ＰＥＳパイプラインは、圧縮ＰＥＳビデオデータを、別個の２７ＭＨｚクロックから派生するそれ自体のビットレート計算だけに基づくコード化システムの残りに転送している。したがって、理想的な状況では、Ｒｊは、Ｒｕに等しく、すなわち、ＲｊとＲｕとの一致が、ビデオ圧縮エンジンからのビットレートを出力ＰＥＳパイプラインにロックすることになる。上述したように、この問題を解決するための一つ方法は、単一のシステムクロックを用いて、コード化エンジンおよびコード化ビットストリーム処理回路の両方を制御することである。しかしながら、実世界のインプリメンテーションでは、これは、実用的ではなく、商業的に可能でもない。
【００１７】
したがって、ビットレートＲｕおよびＲｊを一致させる目的で、非同期適応レート制御方法を説明する。この非同期適応レート制御方法は、ＭＰＥＧ−２データストリームに既に組み込まれたタイミング情報を使用して、適切な時間を計算して、ビデオ圧縮エンジンレートＲｕと正確に一致するように、ＰＥＳパイプライン出力レートＲｊを適応的に調整し、それにより、ＭＰＥＧビデオビットストリームは、意図した時間においてデコーダに送達される。
【００１８】
ここで、図４を参照すると、ここでは、本発明による適応レート制御方法の概念的ブロック図が示されている。そのブロック図６０は、適応レート制御方法を図示している。その方法では、ＭＰＥＧビデオ圧縮エンジン６２のＰＥＳビデオデータストリーム出力は調べられ、二つのビデオＭＰＥＧデータストリームエレメントを比較し、引き出された差を、ＰＥＳビデオフィールドプログラム可能ゲートアレイ（ＦＰＧＡ）ストリームパーサ６６における適応的に調整されたデジタル「フライホイール」に対して使用する。Ｒ’ｊの一致された出力レートがＲ’ｕと等しくするようにＭＰＥＧビデオエンコーダ６２の出力レートをＰＥＳパイプラインＦＩＦＯ６４に正確に一致させるために、このデジタル「フライホイール」は、制御プロセッサ６８にインプリメントされ、ビデオストリームタイミング情報は、ＰＥＳビデオＦＰＧＡストリームパーサ６６から出力され、適応レート制御アルゴリズム（本明細書において以下で詳細に説明する）および制御プロセッサ６８に影響され、ＰＥＳパイプラインＦＩＦＯ６４に入力される。
【００１９】
ここで、図５を参照すると、ここでは、本発明による適応レート制御を行うように適応された装置の実施形態のブロック図を示す。デジタルビデオエンコーダ７０は、ビデオ入力７２で生ビデオ入力を供給し、それをビデオ圧縮エンジン７４に供給する。そのビデオ圧縮エンジンは、生ビデオ入力を受け取り、特定のビデオ圧縮アルゴリズムまたはプロトコルにしたがってそれをコード化する。その例は、ＭＰＥＧ−２ビデオ圧縮コード化アルゴリズムである。制御プロセッサ７６は、本明細書の下記で詳細に説明する適応レート制御アルゴリズムに準拠するコード化パラメータを設定し、モニタし、かつ、調整する。その圧縮されたコード化ビットストリームは、ビデオ圧縮エンジン７４を出て、出力パイプラインに入力し、出力パイプライにおいて、それは、ＰＥＳ  ＦＩＦＯビットストリームバッファ８０においてバッファリングされ、パケット化された例示的なストリームからトランスポートストリームに変換される。
【００２０】
さらに詳細には、ビデオ圧縮エンジン７４に対する物理インターフェースは、周辺部品相互接続（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）（「ＰＣＩ」）バス７７である。これは、パーソナルコンピュータで使用されるのと同じバス規格であり、ＰＣＩバス７７は、ビデオ圧縮エンジン７４をＰＣＩターゲット７８に接続する。ＰＣＩターゲット７８は、圧縮ビデオデータストリームの物理「ターゲット」である。ＰＣＩターゲットに接続されるのは、フィールドプログラム可能ゲートアレイ（「ＦＧＰＡ」）ＰＣＩターゲットコントローラ８２である。ＦＰＧＡ  ＰＣＩターゲットコントローラ８２は、ステートマシーンと制御信号とを有するカスタムプログラム化ＦＰＧＡである。これは、ＰＣＩターゲットから圧縮ビデオデータを読み出し、ＰＥＳ  ＦＩＦＯビットストリームバッファ８０にそれを書きこむ。ＰＥＳ  ＦＩＦＯビットストリームバッファ８２は、圧縮ビデオデータを格納する大きなＦＩＦＯアレイである。そのＰＥＳ  ＦＩＦＯビットストリームバッファ８２は重要な機能を提供する。なぜなら、ビデオ圧縮エンジン７４とＰＣＩターゲット７８との間に配置されたＰＣＩバス７７は非決定的であるからである。すなわち、圧縮ビデオデータは、ＰＣＩバス７７にわたって極めてバースト的である。ときどき、ＰＣＩバスにわたってバースト転送される、極めて大きな「Ｉ」ピクチャが存在する。他のときには、そのバスをわたって何も転送されない。ＰＥＳ  ＦＩＦＯビットストリームバッファは、このバーストのいくらかを吸収する。
【００２１】
このＦＰＧＡ  ＰＣＩターゲットコントローラに接続されるのは、ＦＰＧＡ  ＰＥＳパイプラインコントローラ８４である。ＦＰＧＡ  ＰＥＳパイプラインコントローラ８４は、ステートマシーンと制御信号とを有する別のカスタムプログラム化ＦＰＧＡである。これは、ＰＥＳ  ＦＩＦＯビットストリームバッファ８０からデータを読み出し、それをＦＰＧＡトランスポートパケット化器８６に転送する。ＦＰＧＡ  ＰＥＳパイプラインコントローラ８４は、ＰＥＳ  ＦＩＦＯビットストリームバッファ８０からデータが取り出されるレートを制御する。ＦＰＧＡトランスポートパケット化器８６は、ＰＥＳストリームをトランスポートパケットストリームに変換する。ＦＰＧＡトランスポートパケット化器８６は、また、ビデオバッファベリファイ遅延（「ＶＢＶ ｄｅｌａｙ）およびデコードタイムスタンプ（「ＤＴＳ」）の値のために圧縮ビデオデータを構文解析を行う。制御プロセッサ７６を用いて、ＦＰＧＡトランスポートパケット化器８６を一意のプログラム識別子（ＰＩＤ）で設定し、ビデオトランスポートパケットのＰＣＲ挿入間隔を設定する。その制御プロセッサ７６は、また、上述のＦＰＧＡのそれぞれにおいて他のパラメータを関係させ、設定し得る。
【００２２】
図４および図５に対して上で示したように適応レート制御を提供するためには、ビットストリームの少なくとも第１の時間パラメータおよび第２の時間パラメータを特定するように、ビデオ圧縮エンジンからのビットストリーム出力を構文解析を行うことが必要である。好ましくは、時間パラメータは、ビットストリーム内に組み込れ、コード化ＭＰＥＧ−２ビデオデータストリーム内の２つのタイミングエレメントである。ＭＰＥＧ−２ビデオ圧縮によってビデオデータストリーム内に組み込まれたこれらの二つのデータ値は、例えば、ＤＴＳおよびＶＢＶ
ｄｅｌａｙである。これらの値は、例えば、ＭＰＥＧビデオデコーダによって用いられ、適切な時間において各ビデオフレームをデコードし、表示する。第３のパラメータ、システム時間クロック（「ＳＴＣ」）は、コード化システムの現地時間である。これらの時間パラメータを用いて、下記にさらに詳細に本発明を説明するが、そのビデオストリーム内に組み込まれた他の時間パラメータもまた使用され得ることが理解されるべきである。例えば、上述したように、プログラムクロック基準および提示時間スタンプは、両方とも代替的であり、それらは、本発明に関連して使用され得る。ビデオ圧縮アルゴリズムおよびプロトコルに精通するものは他のものも理解する。
【００２３】
ＰＥＳパケット定義およびＤＴＳ位置は、以下に示すように特定され得る。
【００２４】
【表１】
0004303775.tif 000002
同様に、ピクチャヘッダ定義およびＶＢＶ ｄｅｌａｙ位置が以下のように特定される。
【００２５】
【表２】
0004303775.tif 000003
ＶＢＶ ｄｅｌａｙおよびＤＴＳ−ＳＴＣとの間の差異によって決定される適応レート制御方法およびアルゴリズムは、以下の式にしたがって、ＭＰＥＧ−２ビデオコード化レートＲｕおよびビデオコード化システムレートＲｊとの偏差を決定する。
【００２６】
Ｔｅｒｒｏｒ（秒）＝（ＶＢＶ ｄｅｌａｙ−（ＤＴＳ−ＳＴＣ））４／９０，０００
ここで、Ｔｅｒｒｏｒレートは、各フレームに対するビットエラー偏差またはエラー差異に変換される。このビットエラーレートはＢｅｒｒｏｒとよばれる。これは、ビデオコード化レートＲｕとコード化システムレートＲｊとの間でフレームごとのビットの差異である。したがって、
Ｂｅｒｒｏｒ（ｂｉｔｓ）＝（Ｔｅｒｒｏｒ＊ＲＵ）／ｆｒａｍｅ ｒａｔｅこのｆｒａｍｅ ｒａｔｅは、秒毎のフレーム数（例えば、ＮＴＳＣ信号に対して秒毎に２９．９７回およびＰＡＬ信号に対して秒毎に２５回）に基づく。このＢｅｒｒｏｒ差異または偏差を用いて、図４および図５に説明されたデジタルフライホイール、および、そのデータがビデオ圧縮エンジンとビデオコード化システムとの間で転送されるレートを制御する、ビデオエンコーダパイプラインＦＰＧＡを調整する。Ｒ’ｊは、ビデオエンコーダビットレート出力Ｒｕを正確に一致させる新たな調整出力レートである。したがって、
Ｒ’ｊ＝Ｒｊ＋Ｂｅｒｒｏｒ
一定の構文解析、フィードバック、出力レート調整は、ビデオコード化プロセッサの出力をビデオコード化システムに対して高い精度で一致させる。図７−１０は、適応レート制御アルゴリズムの精度を図示する。
【００２７】
ここで、図６を参照すると、本発明による適応レート制御アルゴリズム１００のフローチャートが図示される。そのフローチャートは、コード化およびＰＥＳ
ＦＩＦＯ出力レートを初期出力レートに設定するボックス１０２から始まる。ここで、Ｒｕ＝Ｒｊ−Ｒｊ＊０．００１５である。０．００１５の値は、秒毎にスキップされるデ＝ータの所定のパーセント（０．１５％）であり、所定の数のバイトが、ＰＥＳ  ＦＩＦＯビットストリームバッファ８０からＦＰＧＡトランスポートパッケージ化器８６に転送される。同様に、ＲｕおよびＲｊは、ともに、ビットレートのこの減少を反映するように設定される。したがって、デジタルカウンタは一定の周波数で固定される。
【００２８】
続くボックス１０４には、ビデオコード化プロセスを初期化し、ＦＩＦＯを初期レベル限界まで満たすステップが示される。このステップは、公知のパラメータに基づいて、システムによって設定された初期限界までＦＩＦＯを満たすことによって、規定される。ＰＥＳ  ＦＩＦＯは、ＰＥＳビットストリームバッファに書きこまれている圧縮ビデオデータのバースト性に起因して、初期の満たされたレベルに設定される。初期のＦＩＦＯレベルにより、データは、ＦＩＦＯから連続的に読み出される一方で、エンプティおよびアンダーフローとなる（ビデオ破壊を生じる）ような可能性をＦＩＦＯに作成して、ＦＩＦＯに書き込まれる圧縮データがない期間もある。
【００２９】
ここで、ボックス１０６を参照すると、ＶＢＶ ｄｅｌａｙ時間パラメータおよびＤＴＳ時間パラメータを特定し、調べるために、パッケージ化エレメンタリビデオストリームの構文解析を行うステップが示される。この情報は、各離散フレームに対して構文解析を行い、一つ一つのフレームに対して繰り返される。
【００３０】
ボックス１０８は、エンコーダシステム時間クロックまたはＳＴＣを読み出す工程を示す。その後、ボックス１１０に示されるように、そのアルゴリズムは、引用した式に対して上で示したように、時間エラー差異、Ｔｅｒｒｏｒを計算する。その後、ボックス１１２において、上で引用した式にしたがって、時間エラー（Ｔｅｒｒｏｒ）をビットレートエラー（Ｂｅｒｒｏｒ）に変換するステップが示される。
【００３１】
次いで、ボックス１１４は、上で開示したように、Ｒ’ｊ＝Ｒｊ＋ＢｅｒｒｏｒとなるようにＰＥＳ出力レートを調整することによってＰＥＳ  ＦＩＦＯ出力を調整するステップを示す。次いで、ステップ１１６は、プロセスが、コード化されるべきビデオ情報の次のフレームに続き、ステップ１０４とステップ１０６との間のステージにそのプロセスを戻すことを示す。ここで、次のビデオフレームは、ステップ１０６において説明された構文解析ステップを受ける。
【００３２】
本発明などの適応レート制御方法なしで、システムに固有の問題点を理解するために、具体的には、図７は、適応制御方法なしでＭＰＥＧコード化システムにおいてＶＢＶ ｄｅｌａｙとＤＴＳ−ＳＴＣとの間の相違を示す。ミリ秒で測定された時間はＹ軸で示され、フレームに関するピクチャはＸ軸で示される。トレース１３０はミリ秒のＶＢＶ ｄｅｌａｙを示し、一方、トレース１３２はミリ秒のＤＴＳ−ＳＴＣを示す。ＶＢＶ ｄｅｌａｙ曲線とＤＴＳ−ＳＴＣ曲線との間の差異は、ＲｕおよびＲｊとの間のビットレート差異におけるエラーである。
【００３３】
このコンテキストにおいて、図８は、図７からのＶＢＶ：ＤＴＳエラー差異を示す。理想的には、エラー差異は、ゼロであるか、ゼロに極めて近い。しかし、図７の例において、偏差エラーは、３２．０ミリ秒から５３．０ミリ秒の範囲である。ＭＰＥＧ−２エンコーダのコンテキストにおいて、このＶＢＶ：ＤＴＳ−ＳＴＣエラーの量は重要である。実際には、ＤＴＳからＶＢＶ ｄｅｌａｙの任意の偏差は、圧縮ビデオデータストリームのデコーダへの転送におけるエラーを表す。任意の所与のビデオシーケンスに対して、デコーダの内部バッファがオーバーフローまたはアンダーフローする前に、デコーダによって耐久できるエラーの量を明示的に説明することは困難であり得る。これは、さらに、ビデオソース材料の複雑性にしたがってエラー差異が大きく変動するという事実によってさらに複雑化され、したがって、予想することは困難である。
【００３４】
ここで、図９を参照すると、本発明の適応レート制御方法を用いたビデオストリームレート制御が示される。図９は、適応レート制御方法をイネーブルにした条件での、絶対的なＶＢＶ ｄｅｌａｙ値およびＤＴＳ−ＳＴＣ値を示す。図７で示されたのと同じスケールで、ライン１４２はＶＢＶ ｄｅｌａｙを示し、ライン１４４はＤＴＳ−ＳＴＣ遅延を示す。図９を精読すると認識され得るように、ＶＢＶ ｄｅｌａｙおよびＤＴＳ−ＳＴＣは同時発生し、理想に極めて近い。さらなる展望に関して、図１０は、適応レート制御でのＶＢＶ ｄｅｌａｙおよびＤＴＳ−ＳＴＣの図９からの絶対エラー差異が理想的なゼロに近いことを示す。これらのグラフの重要性は、それらが、コード化されたデータをエンコーダからデコーダに送達する際のタイミングエラーを表すエラー差異を示すことである。デコーダ内の異なるバッファレベル下で、圧縮ビデオデータの送達におけるこれらのタイミングエラーは、バッファオーバーフローおよびバッファアンダーフローを引き起こす。適応レート制御にともない、そのエンコーダは、必要とされる時間において圧縮ビデオデータを送達する。これにより、エンコーダシステムに、相互互換性およびロバスト性の利点が生じる。
【００３５】
最終的には、本システムの利点を示すために、図１１は、ライン１５４によって示された、非適応レート制御を伴うコード化システムに対する、ライン１５０およびライン１５２によって示された、適応レート制御を伴うコード化潜在時間システムを示す。潜在時間は、Ｙ軸に沿って示され、ミリ秒で測定される一方、秒当たりのメガビットで測定されたビットレートはＸ軸に沿ってプロットされる。したがって、ライン１５０およびライン１５２によって示された本発明の適応レート制御システムの重要な利点は、特に低いビットレートにおいて、潜在時間を１／２から２／３だけ減少させることであると認識され得る。システム潜在時間を短くすることがカスタマーアプリケーションの観点から強く望まれているため、これは重要である。例えば、デジタル衛星ニュース集合セットアップにおいて、システム潜在時間の増加は、スタジオと遠隔地との間の望ましくない遅延を引き起こす（遠隔地は、コード化し、送信する一方で、ローカルスタジオは受け取り、デコードする）。これは、異なる場所の間で「生」の質疑応答通信を邪魔する。
【００３６】
本発明が、レシーバにおけるオーバーフローまたはアンダーフローを避けるようにビットストリームを出力するための装置の製造方法および使用方法に関することを、上記の（詳細な説明）は当業者に開示している。これらの理由に対して、（詳細な説明）は、全ての点で限定的ではなく、例示的であり、本明細書で開示される本発明の範囲は、（詳細な説明）から決定されるべきではなく、むしろ、特許法によって認められた十分な範囲で解釈されるように特許請求の範囲から決定されるべきである。
【００３７】
本発明の好適な実施形態を図示し、説明してきたが、本発明はそのように限定されないことは明らかである。上掲の特許請求の範囲によって規定される本発明の意図および範囲から逸脱することなく、多くの改変、変更、変形、置換および均等が当業者には明らかである。
【図面の簡単な説明】
【００３８】
【図１】図１は、デジタルテレビピクチャがどのようにコード化され、伝送され、デコードされるかを示すブロック図である。
【図２】図２は、典型的なＭＰＥＧ−２エンコーダインプリメンテーションの概念的ブロック図である。
【図３】図３は、本発明による、コード化システムのクロック周波数を示す周波数ブロック図である。
【図４】図４は、本発明による、適応性レート制御フィードバックの概念的ブロック図である。
【図５】図５は、本発明による、適応性レート制御フィードバックループの一実施形態のブロック図である。
【図６】図６は、本発明による、適応性レート制御アルゴリズムを示すフローチャートである。
【図７】図７は、適応性レート制御方法なしのＭＰＥＧコード化システムにおける、ビデオバッファベリファイヤ遅延とデコード化タイムスタンプ−システムタイムクロックとの間の発散を示す図である。
【図８】図８は、図７に示すような、ビデオバッファベリファイヤとデコードタイムスタンプ−システムタイムクロックとの間のタイムクロックエラーの差を示す図である。
【図９】図９は、図７に示すようなものと同様であるが、本発明による、適応性レート制御方法が可能になった、ビデオバッファベリファイヤ遅延およびデコードタイムスタンプ−システムタイムクロックの絶対値を示す図である。
【図１０】図１０は、図８からのビデオバッファベリファイヤ遅延の絶対値のエラーの差対デコードタイムスタンプ−システムタイムクロックのエラー差を示す図である。
【図１１】図１１は、適応性レート制御方法が可能になったコード化システムの待ち時間対適応性レート制御方法が可能になっていないコード化システムの待ち時間を示す図である。
【図１】
0004303775.tif 000004
【図２】
0004303775.tif 000005
【図３】
0004303775.tif 000006
【図４】
0004303775.tif 000007
【図５】
0004303775.tif 000008
【図６】
0004303775.tif 000009
【図７】
0004303775.tif 000010
【図８】
0004303775.tif 000011
【図９】
0004303775.tif 000012
【図１０】
0004303775.tif 000013
【図１１】
0004303775.tif 000014