(57)【特許請求の範囲】
【請求項１】
一連の情報フレームを表す複数の情報セグメントを含んだ情報ストリームを処理する方法であって、
前記情報ストリームを第１の記憶装置に第１のフローレートで記憶するステップと、
記憶された前記情報ストリームを前記第１の記憶装置から第２のフローレートで検索するステップと、
前記第１の記憶装置の利用率の第１の指標を監視するステップと、
前記第１の記憶装置の利用率が第１のしきいレベルよりも大きいことを示す前記第１の指標に応答して、少なくとも一つの前記情報フレームを表す情報セグメントを前記情報ストリームから選択的に削除するステップと、
処理された前記情報ストリームを受け取る第２の記憶装置の利用率の第２の指標を監視するステップと、
前記第２の記憶装置の利用率が第３のしきいレベルよりも大きいことを示す前記第２の指標に応答して、少なくとも一つの前記情報フレームを表す情報セグメントを前記情報ストリームから選択的に削除するステップと、前記第２の記憶装置の利用率が第４のしきいレベルよりも小さいことを示す前記第２の指標に応答して、少なくとも一つの前記情報フレームを表す情報セグメントを前記情報ストリームに選択的に追加するステップと、
を備える方法。
【請求項２】
前記情報ストリームのバッファ要求指標を第２の情報ストリームのバッファ要求指標と比較するステップと、
これらのバッファ要求指標が実質的に等しい場合に検索された前記情報ストリームを送信するステップと、
を更に備える請求項１記載の方法。
【請求項３】
前記利用率の前記第１の指標は、前記第１のフローレートと第２のフローレートとの差分を示している、請求項１記載の方法。
【請求項４】
前記第２の記憶装置から第３のフローレートで情報が検索され、前記利用率の前記第２の指標が、前記第２フローレートと前記第３フローレートとの差分を示している、請求項１記載の方法。
【請求項５】
前記情報フレームがＭＰＥＧビデオアクセス単位を表している請求項１記載の方法。
【請求項６】
削除される前記情報フレームがＢ−フレームを備えている請求項５記載の方法。
【請求項７】
一連の情報フレームを表す圧縮情報ストリームを処理して出力情報ストリームを生成する装置であって、
前記圧縮情報ストリームおよびバッファ利用率の指標を受け取って制御信号を生成するコントローラと、
前記コントローラに結合され、前記圧縮情報ストリームを受け取るフレームシーケンス調整器であって、前記制御信号に応答して前記圧縮情報ストリームから情報フレームを追加および削除し、前記出力情報ストリームを生成する該フレームシーケンス調整器と、
を備え、
前記コントローラは、前記バッファ利用率が第１の所定しきいレベルよりも大きいことを示す前記指標に応答して、前記フレームシーケンス調整器に情報フレームを削除させ、
前記コントローラは、前記バッファ利用率が第２の所定しきいレベルよりも小さいことを示す前記指標に応答して、前記フレームシーケンス調整器に情報フレームを追加させ、
前記フレームシーケンス調整器は、前記圧縮情報ストリームの少なくとも一部分を記憶する記憶手段を更に備えており、
前記バッファ利用率の指標は、前記出力情報ストリームのフローレートの指標を含んでおり、
前記バッファ利用率の指標は、前記フレームシーケンス調整器の前記記憶手段の利用率の指標を含んでおり、
前記コントローラは、前記記憶手段の利用率が第３の所定しきいレベルよりも大きいことを示す前記指標に応答して、前記フレームシーケンス調整器に情報フレームを削除させ、
前記コントローラは、前記記憶手段の利用率が第４の所定しきいレベルよりも小さいことを示す前記指標に応答して、前記フレームシーケンス調整器に情報フレームを追加させる、
装置。
【請求項８】
前記バッファ利用率の指標は、前記出力情報ストリームのフローレートの指標を含んでいる、請求項７記載の装置。
【請求項９】
前記フレームシーケンス調整器は、前記記憶手段から削除されるべき情報フレームを取り除くことによって該情報フレームを削除し、
前記フレームシーケンス調整器は、情報フレームを繰り返すことによって情報フレームを追加する、
請求項７記載の装置。
【請求項１０】
前記圧縮情報ストリームは、バッファ利用率パラメータを含んでおり、
前記コントローラは、非選択動作モードにおいて、前記圧縮情報ストリームに含まれる前記バッファ利用率パラメータを現在選択されている情報ストリームに含まれるバッファ利用率パラメータと比較し、
前記バッファ利用率パラメータが実質的に等しい場合、前記コントローラは選択動作モードに入るようになっている、
請求項７記載の装置。
【請求項１１】
選択動作モードに入るときに第１の所定の型の情報フレームが出力に結合されるように、前記コントローラは、非選択動作モードで前記フレームシーケンス調整器に前記圧縮情報ストリームを記憶させる、請求項７又は１０記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的に通信システムに関し、特に情報ストリームのフレーム同期に関する。
【０００２】
【従来の技術】
受信ビットストリーム用の復号およびプレゼンテーションプロセスの同期は、リアルタイムのディジタルデータ通信および配信システムの特に重要な側面である。受信データは（そのデータが生成および送信されるレートに一致するように）特定のレートで処理されることが期待されるので、同期がとれないとデコーダでバッファのオーバーブローまたはアンダーフローのいずれかが発生し、結果としてプレゼンテーションの損失および／または同期ずれが発生する。
【０００３】
幾つかの通信システムでは、使用可能な帯域幅がより効率的に使用されるように、送信するデータが圧縮されている。例えば、動画専門家グループ（Moving Pictures Experts Group:MPEG）は、ディジタルデータ配信システムに関する幾つかの規格を提案している。ＭＰＥＧ−１として知られる第１の規格は、ＩＳＯ／ＩＥＣ規格１１１７２を指しており、この規格は参照文献として本明細書に組み込まれる。ＭＰＥＧ−２として知られる第２の規格は、ＩＳＯ／ＩＥＣ規格１３８１８を指しており、この規格も参照文献として本明細書に組み込まれる。
【０００４】
ＭＰＥＧに準拠したシステムは、映像、音声および補助データを含んだ完全なプレゼンテーションを生成および記憶するために使用されている。各ピクチャごとに生成されるデータの量は（ピクチャコーディングの方法および複雑さに基づいて）可変なので、タイミングをピクチャデータの開始から直接導き出すことはできない。したがって、プレゼンテーションの適切な表示にとって重要なタイミング信号は、生成時または記憶時にＭＰＥＧ情報ストリーム中に埋め込まれる。これらのタイミング信号は、ＭＰＥＧ準拠システムの受信側において情報を正確に表示するために使用される。
【０００５】
現在のアナログテレビジョンスタジオの実務では、入力信号をスタジオ基準タイミングに同期させている。これは、フレームシンクロナイザを使用することにより達成される。このフレームシンクロナイザは、信号源および宛先におけるタイミング基準の差に基づいてフレームを追加または削除する。アナログテレビジョンシステムのフレームシンクロナイザは、アナログテレビジョン信号に含まれる同期パルスを利用する。これらの同期パルスは、水平ライン、ピクチャフィールドおよびピクチャフレームを描く。
【０００６】
【発明が解決しようとする課題】
ＭＰＥＧに準拠した情報ストリームはアナログテレビジョン型の同期パルスを含まないので、このようなストリームのフレーム同期は特有の様々な問題をもたらす。例えば、ＭＰＥＧ準拠の送信ステーションはプログラムを符号化し、その符号化されたプログラムを、ローカル（すなわち、送信機）発振器に対して参照されるテレビジョン信号、例えば２７ＭＨｚステーションクロック、として送信する。自身のローカル発振器を有する受信機ステーションは、そのテレビジョン信号を受信して復号する。この受信機は、受信した信号をローカルタイミング基準（local timing reference）に同期させなければならない。一つの方法は、送信クロックと受信クロックとを同期させることである。これは費用が高く、また一方の（すなわち、送信または受信）ステーションがステーションクロックの制御を他方のステーションまたはステーション外部の基準にゆだねる必要があるという欠点もある。
【０００７】
従ってこの分野では、ＭＰＥＧ準拠情報ストリームなどの圧縮情報ストリーム内に含まれる映像および他の圧縮情報フレームを同期させる費用効果の高い方法および装置が必要とされている。また、送信ステーションのフレームレートと受信ステーションのフレームレートとの間に必要なフレーム同期を提供するとともにタイミング基準のローカル制御が維持されるようなフレーム同期方法および装置を提供することが望ましい。
【０００８】
【課題を解決するための手段】
従来技術に付随する上述の欠点は、非同期の圧縮情報ストリームをタイミング基準に適合させるのに適した本発明のタイミング同期方法および装置によって解決される。本発明は、バッファ利用率の一つ以上の指標（indicia）に応答して情報フレームを追加または削減する。第１の情報ストリームは、第１のタイミング基準に関連するタイミング情報と、第１タイミング基準に従って符号化された一連の圧縮情報フレームと、を備えている。第２の情報ストリームは、第１の情報ストリームに含まれるタイミング情報を用いて圧縮情報フレームを復号することにより形成される。この第２情報ストリームは、一般に、情報フレームを追加または削除することによって第２タイミング基準に同期させられる。したがって、第１タイミング基準と第２タイミング基準との間のタイミング差を補償するために調整を行ってもよい。また、第２情報ストリームを出力に結合する前に様々な整列（alignment）を行うことが望ましい場合もある。例えば、情報ストリームによって配信される情報の最終的な品質にとって重大でない情報フレームのみを削除することが望ましい。
【０００９】
ＭＰＥＧシンクロナイザは、タイミングユニットから受信した制御信号に応答し、あるいはフレームシンクロナイザ内の入力バッファにおけるオーバーフロー状態またはアンダーフロー状態の指標に応答して、ＭＰＥＧフレームまたはアクセス単位を選択的に追加または削減する。また、フレームシンクロナイザは、マルチプレクサによる入力ストリームの選択に先立って、そのストリームのフレーム整列及びビデオバッファベリファイヤ（ＶＢＶ）整列を実行してもよい。
【００１０】
送信システムクロックと受信システムクロックとの間のタイミングオフセットは、１）複合ＶＢＶバッファ（combined VBV buffer）および受信システム入力バッファ内に記憶されたフレームの数の増減に注目することによって、あるいは２）トランスポートストリームを受信する場合には、ＰＣＲオフセットの差、すなわちローカルＰＣＲと受信ＰＣＲとの差に注目することによって決定される。
【００１１】
【発明の実施の形態】
添付の図面とともに以下の詳細な説明を考察することによって、本発明の開示内容を容易に理解することができる。
【００１２】
理解を容易にするため、図面に共通の同一要素には可能な限り同一の参照番号を使用している。
【００１３】
情報処理システム内のＭＰＥＧ情報ストリームを処理するビデオフレームシンクロナイザに関連して本発明を説明する。本発明に従ってオーディオデータフレームシンクロナイザや補助データフレームシンクロナイザを構成してもよい。また、ここで述べる本発明の実施形態は、例えばセグメント化されたデータを含む非同期圧縮情報ストリームをタイミング基準に同期させなければならないような別の圧縮データシステムで使用するように修正を加えてもよいことに注意すべきである。
【００１４】
図１は、情報処理システム１００のブロック図を示している。トランスポートストリームデコーダ１１０は、２７ＭＨｚのスタジオ基準（ステーションクロック）、例えばリモート供給源、に対して非同期の入力トランスポートストリームＳＴＩＮを復号し、プログラムストリームＳＰを生成する。このプログラムストリームＳＰは、複数のパケット化基本ストリーム（packetized elementary stream:ＰＥＳ）から構成されている。ＰＥＳデマルチプレクサ１２０は、プログラムストリームＳＰを逆多重化し、オーディオストリームＳ１ＡおよびビデオストリームＳ１Ｖを含んだ複数の基本ＰＥＳストリームか複数のトランスポートパケット化ＰＥＳストリームのいずれかを生成する。当業者であれば分かるように、ＰＥＳストリームはトランスポートパケット構造内に埋め込まれている。したがって、以下の説明ではＰＥＳストリームのみを扱う。ＰＥＳストリームＳ１Ａ、Ｓ１Ｖは、２７ＭＨｚステーションクロックＳ１０に対して非同期のプレゼンテーションタイムスタンプ（ＰＴＳ）やデコードタイムスタンプ（ＤＴＳ）などのタイミング情報を含んでいる。ビデオＰＥＳストリームＳ１ＶおよびオーディオＰＥＳストリームＳ１Ａは、それぞれビデオフレームシンクロナイザ２００およびオーディオプロセッサ２０１に結合されている。
【００１５】
ビデオフレームシンクロナイザ２００については、図２を参照して以下でより詳細に説明する。簡単に説明すると、ビデオフレームシンクロナイザ２００は、受信システムデータレートを調整して確実にローカル出力データレートに一致させるように動作する。このフレームシンクロナイザは、下流側のシステム構成要素におけるバッファ利用率（buffer utilization）を示すバッファフロー制御信号Ｓ１２を監視し、それに応じてビデオフレームシンクロナイザ２００の出力ストリームＳ２ＰＶのデータレートを増減してバッファ利用率を適切なレベルに維持する。フレームを追加するか削減するかの決定は、受信回路内における経時的なフレーム数の変化に基づいている。ビデオフレームを追加するか削除するかの決定はオーディオプロセッサ２０１に結合され、この決定に応じて適切なオーディオフレームが追加または削除されるようになっている。ビデオフレームシンクロナイザ２００およびオーディオプロセッサ２０１は、フレーム同期ビデオＳ２ＰＶパケット化基本ストリーム（ＰＥＳ）およびフレーム同期オーディオＳ２ＰＡパケット化基本ストリーム（ＰＥＳ）をそれぞれ生成する。これらは、ＰＥＳスイッチャ１３０に結合される。バッファ管理機能に加えて、ビデオフレームシンクロナイザは、ＰＥＳスイッチャによるストリームの選択に先立ってそのストリームのビデオフレームを整列（align）させるので、ビデオフレームシンクロナイザによって提供される最初の二つのフレームは、アンカフレーム（anchor frame）、例えばＩ−フレームおよびＰ−フレーム、となる。
【００１６】
また、ＰＥＳスイッチャ１３０は、ビデオＳ３ＰＶパケット化基本ストリームおよびオーディオＳ３ＰＡパケット化基本ストリームの第２のペアをＰＥＳソース１４０（例えば、ディジタルビデオディスクプレーヤ、テーププレーヤ、カメラ、サーバなど）から受信する。このＰＥＳソース１４０は、下流側のシステム構成要素におけるバッファ利用率を示すバッファフロー制御信号Ｓ１２を監視し、それに応じてＰＥＳソース１４０の出力ストリームＳ３ＰＶ、Ｓ３ＰＡのデータレートを増減してバッファ利用率の適切なレベルを維持する。
【００１７】
制御信号（図示せず）に応答して、ＰＥＳスイッチャ１３０は、一対のビデオパケット化基本ストリームＳ４ＰＶおよびオーディオパケット化基本ストリームＳ４ＰＡを選択し、対応するビデオリタイミングユニット３００Ｖおよびオーディオリタイミングユニット３００Ａに結合させる。このビデオリタイミングユニット３００Ｖについては、図３を参照して以下でより詳細に説明する。簡単に説明しておくと、ビデオリタイミングユニット３００Ｖは、プログラムクロック基準ベース（Program Clock Reference Base:ＰＣＲＢ）信号Ｓ９から得られる新しいタイミング情報を用いて、ビデオストリームの古いプレゼンテーションタイムスタンプ（ＰＴＳ）およびデコードタイムスタンプ（ＤＴＳ）を復号およびリタイム（retime）する。オーディオリタイミングユニット３００Ａは、プログラムクロック基準ベース（ＰＣＲＢ）信号Ｓ９から得られる新しいタイミング情報を用いて、オーディオストリームの古いＰＴＳをリタイムする。ビデオリタイミングユニット３００Ｖおよびオーディオリタイミングユニット３００Ａは、それぞれリタイムビデオストリームＳ７ＰＶおよびリタイムオーディオストリームＳ７ＰＡを生成する。更に、ビデオリタイミングユニット３００Ｖは、多数の制御信号を生成する。バッファフロー制御信号Ｓ１２は、ビデオフレームシンクロナイザ２００およびＰＥＳソース１４０におけるデータ生成を調整するために使用される。このバッファフロー制御信号Ｓ１２は、図１ではビデオＰＴＳ−ＤＴＳリタイミングユニット３００Ｖによって生成されるように示されている。そのフラグに応じて、ビット数がそれぞれ増加又は減少する。ビデオＰＴＳ−ＤＴＳリタイミング回路での初期設定プロセス中に、ＶＢＶバッファのＶＢＶ遅延が入力ストリームのＶＢＶ遅延に整列させられる。ビデオＰＴＳ−ＤＴＳリタイミング回路で発生する信号Ｓ３３０は、整列プロセス（alignment process）の最後には入力ストリームのＶＢＶ遅延がＶＢＶバッファのＶＢＶ遅延と等しいことを示している。フレームを追加または削減する必要性を判断する際に使用するために、ビデオフレームシンクロナイザの複合ＶＢＶバッファ（combined VBV buffer）および入力ＦＩＦＯ中のフレーム数が記憶される。あるいは、トランスポートストリームが受信されている場合には、ＰＣＲオフセット（入力ＰＣＲとローカルＰＣＲとの差）を用いてフレームを追加または削減する必要性を判断してもよい。オーディオリタイミングユニット３００Ａはバッファフロー管理機能を含まないものの、それ以外の点では、ビデオリタイミングユニット３００Ｖとほぼ同じように動作するので、ここで更に説明をすることはしない。
【００１８】
ビデオリタイミングユニット３００Ｖおよびオーディオリタイミングユニット３００Ａとして使用するのに適した装置は、図３を参照して以下で述べる。また、このような装置は、本発明と同時に出願された米国特許出願（代理人整理番号１２３８９）にも記載されている。なお、この出願は参照文献として本明細書に組み込まれる。
【００１９】
トランスポートストリームエンコーダ（ＴＳＥ）１５０は、リタイムビデオＳ７ＰＶ ＰＥＳストリームおよびリタイムオーディオＳ７ＰＡ ＰＥＳストリームを受信し、これらのストリームを符号化して出力トランスポートストリームＳ１１を生成する。ＴＳＥ１５０は、２７ＭＨｚステーションクロック信号Ｓ１０を受信して出力トランスポートストリームＳ１１のＰＣＲスタンピングを実行するＰＣＲ発生器／リタイマ（PCR generator and retimer）を含む。また、このＰＣＲ発生器は、同期ＰＣＲベース基準信号Ｓ９を９０ＫＨｚのレート（２７ＭＨｚのステーションクロックを３００で割ったもの）で生成する。このＰＣＲＢ基準信号Ｓ９は、ＰＴＳ及びＤＴＳスタンピングプロセスに使用するために、リタイミングユニット３００Ｖ、３００Ａに戻される。
【００２０】
上述の情報処理システム１００は、新型テレビジョンシステム委員会（ＡＴＳＣ）によるディジタルテレビジョン規格文書Ａ／５３（参照文献として本明細書に組み込まれる）に記述されているシステムなどのディジタル通信システムに使用することができる。このようなシステムでは、多くの場合、滑らかな又は「シームレス（seamless）な」方法で（すなわち、好ましくない視覚的又は聴覚的影響を最小限に抑えるような方法で）第１の（すなわち、現在選択されている）ビデオソースおよび／またはオーディオソースから第２の（すなわち、次に選択される）ビデオソースおよび／またはオーディオソースに切り替わることが望ましい。
【００２１】
ＭＰＥＧストリーム間の滑らかな切り替えを確保するためには、以下の処理操作が望ましいことを本発明者は発見した。まず第１に、次に選択されるストリームには、切り替えの前にフレーム整列プロセスを施すべきである。このフレーム整列プロセスは、出力に結合された次に選択されるストリームの第１のフレームが確実に非予測フレーム、すなわちイントラフレーム（intraframe）または「Ｉ−フレーム」となるようにする。第２のフレームは、別のＩ−フレームであるか、あるいは第１フレームだけを用いて予測されたフレーム、すなわち前方向予測フレームまたは「Ｐ−フレーム」であるべきである。Ｉ−フレームの後に別のＩ−フレーム、または第１フレームだけを用いて予測されたフレーム、すなわち前方向予測フレームもしくは「Ｐ−フレーム」が続かない場合には、特別に符号化されたＰ−フレームを、以前から存在するＩ−フレームシリーズとＢ−フレームシリーズとの間に追加してもよい。これにより、整列プロセス中にエントリポイントがストリームに人為的に挿入される。このフレーム整列プロセスは、フレームシンクロナイザ２００によって実行される。第２に、ＰＴＳ−ＤＴＳリタイミングユニット３００ＶによってＶＢＶ遅延の整列が実行される。整列の結果は、図１の信号Ｓ３３０で示される。第３に、ＶＢＶ遅延およびバッファメモリ（例えば、遠端デコーダ（far-end decoder）入力バッファやＦＩＦＯ２２０）の利用率は、切り替えの前後に監視すべきである。Ｓ３３０がＶＢＶ遅延整列を知らせると、フレームシンクロナイザ２００中の複合ＶＢＶバッファおよび入力ＦＩＦＯ内に格納されたフレームの数の増減により、フレームを追加または削減する必要性が判断される。
【００２２】
図２は、図１に示される情報処理システムで使用するのに適した本発明に係るフレームシンクロナイザのブロック図を示している。このフレームシンクロナイザ２００は、パケット化基本ストリーム（ＰＥＳ）であるストリームＳ１Ｖ（ここでは一例としてビデオストリームである）を受信し、第１の動作モード（すなわち、「事前選択」モード）でこの受信ＰＥＳストリームを整列させ、第２の動作モード（すなわち、「選択済」モードまたは「定常状態」モード）でＰＥＳストリームを出力に結合する。更に、このフレームシンクロナイザは、第２動作モード中に様々なバッファ管理動作を実行する。オプションとして、コントローラ２３０は、信号ＳＷＩＴＣＨ ＣＯＮＴＲＯＬによってその動作モードを事前選択モードまたは選択済モードに強制変更させられる。更にまたオプションとして、このコントローラは、信号ＳＷＩＴＣＨを送信することによって、例えば「下流側」スイッチャ（例えばＰＥＳスイッチャ１３０）に切り替え動作を実行させる。
【００２３】
入力ビデオＰＥＳストリームＳ１Ｖは、クロック抽出器２１０、先入れ先出し（ＦＩＦＯ）メモリ２２０およびコントローラ２３０に結合されている。ＦＩＦＯ２２０は、理想的には、Ｉ−フレームと次のＩ−フレームまでの後続の全てのフレーム（次のＩ−フレームも含む）とを保持するのに十分な大きさを有している。ビデオストリームＳ１Ｖは、到着データに関連するロードクロック（load clock）Ｓ２Ｖを用いてＦＩＦＯ２２０に同期入力される。一時的に記憶された入力ビデオストリームＳ１Ｖを表すＦＩＦＯ出力ストリームＳ３Ｖは、フレーム追加／削減ユニット２４０に結合される。追加／削減ユニット２４０は、ＦＩＦＯ出力ストリームＳ３Ｖ（通過モード）、追加フレームが追加されたＦＩＦＯ出力ストリームＳ３Ｖ（フレーム追加モード）、又はフレームが削除されたＦＩＦＯ出力ストリームＳ３Ｖ（フレーム削減モード）を含む出力ビデオストリームＳ２ＰＶを生成する。追加／削減ユニット２４０の動作モードは、コントローラ２３０からの信号Ｓ６Ｖによって制御される。また、コントローラ２３０は、監視信号Ｓ５Ｖを介してＦＩＦＯ２２０を監視し、制御信号Ｓ４Ｖを介してＦＩＦＯ２２０を制御する。このコントローラは、下流側のシステム構成要素におけるバッファ利用率を表すバッファフロー制御信号Ｓ１２を受信する。このコントローラは、追加／削減ユニット２４０にビデオフレームを追加または削除させ、それによってリモートソースおよびローカルソースのタイミング同期を維持する。
【００２４】
コントローラ２３０は、入力ビデオストリームＳ１ＶおよびＦＩＦＯ２２０を監視する。また、このコントローラは、例えば記憶された入力ビデオストリームＳ１Ｖの全部または一部をＦＩＦＯ２２０に放棄させることにより、ＦＩＦＯの動作を制御する。説明のために、各ＰＥＳパケットは一つのビデオアクセス単位（すなわち、ビデオフレーム）を含むものと仮定する。このビデオストリームが（例えば、ＰＥＳスイッチャ１３０によって）切り替えられて出力ストリームとなる前に、切り替えのために整列を行わなければならない。ＭＰＥＧシーケンスヘッダはピクチャを復号するのに極めて重要な情報を含むので、あるストリームへの切り替えはシーケンスヘッダの直前で起こらなければならない。シーケンスヘッダがＩ−フレームの直前にないときに使用するために、ＦＩＦＯに入った最後のシーケンスヘッダが保存される。したがって、Ｉ−フレームがＦＩＦＯの出力に位置するようになるまでは、ＦＩＦＯは全てのデータをフラッシュ（flush）される。
【００２５】
切り替え点（switch point）における双方のアンカフレームの置換を保証するために、ビットストリームは、送信の順序においてＩ−フレームの次にＰ−フレームまたはＩ−フレームが続かなければならないという制約を有している。Ｉ−フレームの次にＢ−フレームが続く場合は、オプションとして、Ｐ−フレーム（これは、ゼロ動きベクトルを備えた非符号化マクロブロックから構成されている）がＩ−フレームとＢ−フレームとの間に挿入されてもよい。このＰ−フレームは、最後のフレームをリピートラストフレームコマンド（repeat lsat frame command）として動作する。リピートフレームがビデオ品質に与える視覚的な影響は、ストリームの切り替えと同時に起こるシーンチェンジ(scene change)によってマスクされる。このストリームへの切り替えの決定がなされるまでは、Ｉ−フレームがＦＩＦＯに入るたびにバッファフラッシュプロセスが継続する。Ｉ−フレームの直前にシーケンスヘッダがあれば、ＰＥＳパケット内のＰＥＳヘッダおよびシーケンスヘッダを用いて切り替えプロセスが継続する。Ｉ−フレームに対するＰＥＳパケットがシーケンスヘッダを含んでいなければ、最後に記憶されたシーケンスヘッダが多重化されてストリームにされる。この結果得られる出力ストリームは、Ｉ−フレームの直前にシーケンスヘッダを含んでいる。
【００２６】
切り替え点では、最低限二つのフレームがＦＩＦＯメモリ内に存在しなければならない。この状態は、切り替え点における時間基準（temporal reference）の計算を可能にする。オプションとして、Ｉ−フレームの出力に先立ってＧＯＰヘッダが挿入されてもよく、Ｉ−フレームの時間基準はゼロに設定される。入力時間基準および新しい値からのオフセットは、切り替え点において計算される。
【００２７】
本質的に、ストリームは、正しくない表示順序を有する可能性のある現在選択されているストリーム中の最後のフレームの結果を用いて任意の位置に残すことができる。視覚的な影響は、新しいビデオマテリアルへの自然なシフトによってマスクされる。現在選択されているストリームがアンカフレームの直前に残されても、フレームの再順序づけの影響は受けない。この時点で、現在選択されているストリームに属するフレームがデコーダバッファ内に更に多数存在している。デコーダバッファ内のフレームの数は、ＰＥＳリタイミング回路３００Ｖ内のフレームバイトカウンタによって追跡される。
【００２８】
ＭＰＥＧピクチャヘッダは、（ピクチャヘッダがデコーダのＶＢＶバッファに入った後で）ピクチャを復号する前にデコーダが待つべき時間量を表すＶＢＶ遅延数を含んでいる。したがって、ＶＢＶ遅延は、デコードタイムスタンプ（ＤＴＳ）−ＰＣＲＢに等しく、デコーダバッファ内のフレームの数に関係する。与えられた任意の瞬間におけるＶＢＶ遅延は、ＰＥＳリタイミング回路の出力においてこの式を用いて計算される。
【００２９】
入力ＭＰＥＧストリームは、ストリームが符号化またリタイムされたときに生成されたＶＢＶ遅延を含んでいる。次に選択されるストリームのＶＢＶ遅延および現在選択されているストリームのＶＢＶ遅延は、双方とも切り替え時には分かっている。一般に、これらの値は一致しない。ビデオ符号化中はできるかぎり多くのフレームをデコーダバッファ内に配置することが望ましいので、現在選択されているストリーム内の最後のフレームのＶＢＶ遅延は大きくなければならない。これは、次に選択されるストリームのＶＢＶ遅延をデコーダバッファ内の実際のＶＢＶ遅延に一致させる機会を与える。
【００３０】
次に選択されるストリームのＶＢＶ遅延および現在選択されているストリームのＶＢＶ遅延は、切り替え時にＰＥＳリタイミング回路３００Ｖにおいて比較される。これにより、デコーダバッファが過大な遅延を含んでいるか、あるいは過小の遅延を含んでいるかが最初に示される。入力ＶＢＶ遅延値を満足するには少なすぎる遅延がデコーダバッファに含まれている場合には、データは最大のレートで出力されるべきである。これにより、遅延を有する更に多くのフレームがデコーダバッファ内に配置される。このプロセスは、デコーダバッファ内のＶＢＶ遅延（すなわち、ＰＥＳリタイミング回路３００Ｖにおいて計算されたＶＢＶ遅延）が、選択されたばかりのストリームのＶＢＶ遅延に近くなるまで続く。入力ＦＩＦＯ２２０中のフレーム数は、このプロセスの間、監視される。ＦＩＦＯ２２０が空になりかけていれば、リピートフレームがリピートフレーム記憶装置からストリームに加えられる。過大な遅延がデコーダバッファ内にある場合には、適切な量の遅延がデコーダバッファ内に存在するようになるまで出力が停止される。ＦＩＦＯ２２０がオーバーフローしかけていれば、フレームがストリームから削減される。ＶＢＶ遅延が整列されると、出力レート制御は第２動作モードに切り替わる。
【００３１】
この第２動作モードは、ＰＥＳリタイミング回路３００Ｖによって制御される。入力ＦＩＦＯ内のフレーム数とデコーダバッファ内のフレーム数とを加算してフレーム周期を乗算すると、このシステムのエンドツーエンド遅延（end to end delay）が得られる。システムのエンドツーエンド遅延は、受信入力ＦＩＦＯの入力からＶＢＶバッファの出力に進むために個々のあるゆるバイトに対して必要となる時間量として定義することもできる。このエンドツーエンド遅延の値は、ローカル基準クロックからリモートソースのクロックタイミング差を求める際に使用するために記憶される。この値は、入力ＶＢＶ遅延がデコーダバッファ内のＶＢＶ遅延に整列させられたときに記憶される。このエンドツーエンド遅延値は、リモートクロックとローカルクロックとが正確に同じレートである場合には一定のままであると予想される。この他に、入力ＰＣＲとローカルＰＣＲとの間のオフセットを記憶するようにしてもよい。このオフセットは、リモートクロックとローカルクロックとが正確に同じレートである場合には一定のままであると予想される。ＰＥＳリタイミング回路は、データストリームに埋め込まれたフレームレートに基づいてＦＩＦＯからフレームを抽出する。デコーダバッファは、現在ストリーム中にあるＶＢＶ遅延を含んでいる。
【００３２】
コントローラ２３０は、ＦＩＦＯ２２０を監視し、ＦＩＦＯ２２０が満たされつつある（すなわち、リモートクロックがステーションクロックよりも速い）か、あるいは空になりつつある（すなわち、リモートクロックはステーションクロックよりも遅い）かを判断する。ＦＩＦＯが一杯になる傾向にある場合、コントローラは、これに応じて追加／削減ユニットに一以上のフレームを削減させることができる。ＦＩＦＯが空になる傾向にある場合、コントローラは、これに応じて追加／削減ユニットに一以上のフレームを追加させることができる。このＦＩＦＯを充填する動作又は空にする動作は、ＦＩＦＯが入力ビデオストリームＳ１Ｖの各フレームを簡易に記憶しており、かつＰＥＳスイッチャ１３０がリモートビデオストリームＳ２ＰＶおよびリモートオーディオストリームＳ２ＰＡを出力用に選択したときに、フレームシンクロナイザの第２動作モードで発生してもよい。
【００３３】
フレームの削減は、ピクチャ再順序づけ（picture reordering）方式や予測ピクチャ品質のいずれも劣化させることなくストリームから安全に除去することのできるフレームを選ぶことによって達成される。これには、この目的を実現するために一つ以上のフレームを削減することが含まれていてもよい。アンカフレームと次のアンカフレームの前にある全ての介在Ｂ−ピクチャとが削減される場合、予測ピクチャ品質は最小限の影響しか受けない。ストリーム中の他のピクチャの品質に影響を及ぼすことなく任意のＢ−ピクチャを削除することができる。
【００３４】
フレームの追加は、ゼロ動きベクトルを備えた非符号化マクロブロックを備えるＰ型またはＢ型フレームを挿入することによって達成される。このようなフレームは、ＭＰＥＧに準拠した構文手法において「リピートラストフレーム」コマンドとして動作する。追加されるフレームは、Ｐ−フレームまたはＢ−フレームのいずれであってもよいが、Ｐ−フレームが好ましい。なぜなら、追加フレームがＩ−フレームを繰り返す場合にピクチャ品質がもっとも良く保存されるからである。追加「ダミー」フレームは、コントローラ内または追加／削減ユニット内に記憶され、必要なときに挿入される。
【００３５】
リモートクロック周波数がローカルクロック周波数よりも一貫して高い場合には、エンドツーエンドシステム遅延が増加する。リモートクロック周波数がローカルクロック周波数よりも一貫して低い場合には、エンドツーエンドシステム遅延が減少する。現在の値がエンドツーエンド遅延用に記憶された値から１フレームに等しい値だけ異なっており、かつ、その他の外部基準を満足する場合、フレームは、そのときの状況に応じて削減あるいは追加される。
【００３６】
コントローラ２３０は、入力ＰＥＳストリームＳ１Ｖにおける外部基準を監視するために使用することができる。評価される外部基準の例としては、シーンチェンジ指標（例えば、多数のフレーム内符号化マクロブロック(intra-coded macroblock)）、黒フィールド指標、最小数の動き（minimal number motion）、アンカフレーム（すなわち、Ｉ−フレームまたはＰ−フレームが後に続くＩ−フレーム）の適切な検出が挙げられる。この外部基準を使用することにより、例えばビデオやオーディオの品質に及ぼす影響を最小限に抑えるような方法でフレームの追加および削減を実行することができる。
【００３７】
以下では、フレームシンクロナイザ２００の動作を図４を参照して説明する。この説明のために、リモート供給ＳＴＩＮを表すビデオストリームＳ２ＰＶおよびオーディオストリームＳ２ＰＡが、ＰＥＳスイッチャ１３０によって選択されていると仮定する。また、ビデオＰＴＳ−ＤＴＳリタイミングユニットが、選択されたビデオストリームＳ２ＰＶを監視しており、それに応じて制御信号を生成するものと仮定する。
【００３８】
図４は、本発明の理解に役立つフローチャートを示している。図２のフレームシンクロナイザ２００に関して上述したように、入力ビデオ信号Ｓ１Ｖは先入れ先出しメモリ２２０に結合される。ＦＩＦＯ２２０は、Ｉ−フレームを保持するのに十分な大きさを有しており、理想的には、次のＩ−フレームまでの全ての後続フレームと次のＩ−フレームとを更に保持するのに十分な大きさを有している。以下の説明において、アクセス単位“Ａ”はＦＩＦＯ２２０の出力におけるアクセス単位である。アクセス単位“Ｂ”は次のアクセス単位であり、以下同様である。フレームカウンタは、例えばコントローラ２３０内に実装されていてもよい。フレームカウンタは、ＦＩＦＯ２２０内に記憶されているアクセス単位の数を単純に計数する。
【００３９】
図４のフローチャートは、フレーム整列ルーチン（ステップ４０４〜４３０）、切り替えルーチン（ステップ４４０〜４６０）、およびフレーム追加／削減ルーチン（ステップ４７０〜４８６）という三つの相互に関連する制御ルーチンを備えている。整列ルーチン（ステップ４０４〜４３０）は、出力ストリームＳ２ＰＶとして入力ストリームＳ１Ｖが選択される前に、入力ストリームＳ１Ｖ内のビデオフレームまたはアクセス単位を整列させる。切り替えルーチン（ステップ４４０〜４６０）は、結果として得られるストリームＳ２ＰＶを出力として選択する動作が、現在選択されているストリーム（例えば、Ｓ３ＰＶ）に対して適切な時点に確実に行われるようにする。フレーム追加／削減ルーチン（ステップ４７０〜４８６）は、複合入力ＦＩＦＯ（combined input FIFO）および遠端デコーダバッファ内のフレーム数を増減するために使用される。これらのルーチンは、主として図２に示されるコントローラ２３０の制御下にある。これらのルーチンの一部分は、他のソースから受信されるデータに依存する。一例を挙げると、ＶＢＶ整列プロセス（ステップ４７０）は、例えばビデオＰＴＳ−ＤＴＳリタイミングユニット３００Ｖで行われる。下流側のバッファ状態を表すバッファフロー制御信号Ｓ１２は、コントローラに供給される。
【００４０】
整列ルーチン（ステップ４０４〜４３０）は、ステップ４０６から開始する。この好適な実施形態では、ＦＩＦＯを通過するストリーム（Ｓ１Ｖ）が（例えば、ＰＥＳスイッチャ１３０によって）出力に結合される前にＦＩＦＯ内に記憶された少なくとも二つのアクセス単位（例えば、複数のビデオフレーム）が存在しなければならない。更に、第１のアクセス単位は、Ｉ−フレームでなければならない。ＦＩＦＯ２２０内に記憶されたアクセス単位の数（ＣＮＴ）がしきい数値（ＳＷ ＣＮＴ）未満であれば、このルーチンは更なるアクセス単位がＦＩＦＯに入るのを待つ。アクセス単位の数（Ｆｒａｍｅ ＣＴＲ）がしきい数値（ステップ４０６におけるＳＷ ＣＮＴ）に等しい場合、第１のアクセス単位（すなわち、アクセス単位“Ａ”）が検査される。アクセス単位“Ａ”がシーケンスヘッダを含んでいる場合（ステップ４０８）、コントローラは、ストリーム切り替えルーチン（ステップ４４０〜４６０）において後で使用するためにシーケンスヘッダ（SEQ HEADER）を記憶し（ステップ４１０）、「シーケンスヘッダストアド（sequence header stored）」フラグがセットされる。アクセス単位“Ａ”がＩ−フレームでない場合（ステップ４１２）、アクセス単位“Ａ”はＦＩＦＯから消去（purge）され（ステップ４０４）、それによって残りのアクセス単位がＦＩＦＯ中の次の「位置（position）」に進められる。アクセス単位“Ａ”がＩ−フレームとなるまでステップ４０６〜４１２が繰り返される。
【００４１】
アクセス単位“Ａ”がＩ−フレームになると、次にアクセス単位“Ｂ”が検査される（ステップ４１４）。アクセス単位“Ｂ”がＢ−フレームであれば、オプションとして（ステップ４１７）、アクセス単位“Ａ”とアクセス単位“Ｂ”との間にＰ−フレームが挿入される（ステップ４１８）。Ｐ−フレームがオプションとして挿入されなければ（ステップ４１７）、アクセス単位“Ａ”はＦＩＦＯから消去され（ステップ４０４）、アクセス単位“Ａ”がＩ−フレームとなるまでステップ４０６〜４１２が繰り返される。挿入するフレームは、例えば、ゼロ動きベクトルを有する非符号化マクロブロックを備えたＰ−フレームとすることができる。このようなフレームは、「リピートラストフレーム」コマンドとして動作する（すなわち、アクセス単位“Ａ”を繰り返す）。
【００４２】
また、新しい時間基準値を計算する際に使用するために、アクセス単位“Ａ”およびアクセス単位“Ｂ”に対する時間基準（temporal reference）値も記憶される（ステップ４２０）。
【００４３】
シーケンスヘッダが記憶されなかった場合（ステップ４１０）、整列プロセス全体（ステップ４０６〜４２２）を繰り返さなければならない。これは、ストリームＳ１Ｖが選択される場合、シーケンスヘッダがアクセス単位“Ａ”に記憶されたＩ−フレームに先行する必要があるからである。最も新しいシーケンスヘッダが、シーケンスヘッダの直後ではないＩ−フレームの直前のストリームに挿入するために記憶される。シーケンスヘッダが記憶されている場合には、出力ストリームＳ２ＰＶがスイッチャ１３０によって選択できる状態にあり（すなわち、ステップ４２６によって示されるように、次に選択される又は切替用“ＴＯ”ストリームがレディ状態となり）、「レディフラグ（ready flag）」がセットされる。
【００４４】
入力ストリームＳ１Ｖがアクティブストリーム（すなわち、現在選択されているストリーム）の場合、このルーチンは待機状態となる（ステップ４２８）。入力ストリームＳ１Ｖがアクティブストリームでなく（ステップ４２８）、Ｉ−フレームがまだＦＩＦＯにロードされていない場合、このルーチンは待機状態となる。次のＩ−フレームとそれに続くフレームがＦＩＦＯによって受信されると、この受信Ｉ−フレームがアクセス単位“Ａ”の位置に記憶されるようにＦＩＦＯの内容がフラッシュされる。この後、整列プロセス全体（ステップ４０６〜４３０）が反復される。
【００４５】
切り替えルーチン（ステップ４４０〜４６０）は、ステップ４４０から開始する。この切り替えルーチンは、アクティブストリームの最後の完全なアクセス単位（理想的には“ＦＲＯＭ”ストリーム中のアンカフレームの直前のアクセス単位）が送信され（ステップ４４０）、出力ストリームＳ２ＰＶ（すなわち、“ＴＯ”ストリーム）の選択の準備が完了し（ステップ４４２）、デコーダバッファレディフラグがセット（ステップ４４４）されているときに開始する。
【００４６】
上述の条件が満足されているとき（ステップ４４０〜４４４）、コントローラ２３０は、記憶されたシーケンスヘッダ（ステップ４１０からのもの）がビデオストリームＳ２ＰＶの第１の出力として送信されるようにする（ステップ４４６）。更に、「シーケンスヘッダストアド」フラグがリセットされ、「アクティブストリーム識別子（active stream identifier）」フラグが変更される。この後、コントローラは、オプションとして（ステップ４４７）、ピクチャ群（a group of pictures:ＧＯＰ）ヘッダがビデオストリームＳ２ＰＶの次の出力として送信されるようにする（ステップ４４８）。このＧＯＰヘッダは、例えば遠端デコーダ内の時間基準カウンタをリセットするために使用される。この後、コントローラは、ＦＩＦＯに第１の記憶アクセス単位（すなわち、アクセス単位“Ａ”）を送信させる（ステップ４５０）。
【００４７】
ＧＯＰヘッダが検出されるまでは時間基準の補正が必要となる。ＧＯＰヘッダが整列済Ｉ−フレームの直前に検出されなければ（ステップ４５２）、送信されているアクセス単位の時間基準（ＴＲ）を計算しなければならない（ステップ４５４）。
【００４８】
オプションとしてＧＯＰがＩ−フレームの前に挿入されると、以下の操作が実行される。整列中、受信アクセス単位“Ｂ”がＩ−フレームまたはＰ−フレームであれば、全ての時間基準は、受信アクセス単位“Ａ”時間基準の値だけ減分されなければならない。受信アクセス単位“Ｂ”がＢ−フレーム（これは、リピートＰ−フレームの挿入を必要とする）である場合、第１に、アクセス単位“Ａ”時間基準がゼロに設定される。第２に、挿入されるＰ−フレーム時間基準は、アクセス単位“Ａ”の時間基準からアクセス単位“Ｂ”の時間基準を引いた時間基準差に１を足した値に設定される。第３に、Ｂ−フレームとそれに続くフレームとの時間基準は、“Ｂ”アクセス単位の時間基準を入力時間基準から引いて１を足すことにより計算される（ステップ４５４）。
【００４９】
ＧＯＰがオプションとしてＩ−フレームの前に挿入されない場合は、以下の操作が実行される。受信アクセス単位“Ｂ”がＩ−フレームまたはＰ−フレームの場合、全ての時間基準は、受信アクセス単位“Ａ”時間基準の値だけ減分された後、（“ＦＲＯＭ”ストリーム中の最後のアンカフレーム時間基準＋１）だけ増分されなければならない。受信アクセス単位“Ｂ”がＢ−フレームの場合、アクセス単位“Ａ”時間基準はゼロに設定された後、（“ＦＲＯＭ”ストリーム中の最後のアンカフレーム時間基準値＋１）だけ増分される。アクセス単位“Ｂ”はＢ−フレームなので、リピートＰ−フレームが挿入されなければならない。挿入されるＰ−フレームの時間基準は、アクセス単位“Ａ”の時間基準からアクセス単位“Ｂ”の時間基準を引いた時間基準差に１を足した値に設定された後、（“ＦＲＯＭ”ストリーム中の最後のアンカフレーム時間基準値＋１）だけ増分される。Ｂ−フレームとそれに続くフレームの時間基準は、“Ｂ”アクセス単位時間基準を入力時間基準から引いて１を足した後、（“ＦＲＯＭ”ストリーム中の最後のアンカフレーム時間基準値＋１）だけ増分することにより計算される（ステップ４５４）。
【００５０】
フレームインサート（frame insert）フラグがセットされている場合（ステップ４５６）、ゼロ動きベクトルを有する非符号化マクロブロックを備えたフレームが出力ストリームＳ２ＰＶに挿入される（ステップ４５８）。上述したように、このようなフレームは、「リピートラストフレーム」コマンドとして動作する。
【００５１】
「スイッチストリーム（switch stream）」コマンド（すなわち、当初選択されていたバッファに戻すコマンド）が発行されていなければ（ステップ４６０）、ステップ４５０〜４６０が繰り返される。このように、入力ストリームＳ１Ｖは、出力ビデオストリームＳ２ＰＶを生成するためにＦＩＦＯ２２０を介してフレーム追加／削減ユニット２４０に結合されている。
【００５２】
フレーム追加／削減ルーチン（ステップ４７０〜４８６）は、ステップ４７０から開始する。ビデオＰＴＳ−ＤＴＳリタイミングユニット３００Ｖは、以下のようにしてＶＢＶ遅延を整列させる。初期設定では、ＶＢＶバッファは空である。第１のフレームがＶＢＶバッファに出力されるとき、ＶＢＶバッファ中のバイトの実行総数(running total)は、フレームバイトカウンタ３５４によって維持される。この総数がＶＢＶバッファサイズに等しい場合、フレームバイトカウンタ３５４から論理演算装置３２５に送られる出力信号Ｓ３１７によって論理演算装置３２５は、データがＰＴＳ−ＤＴＳリタイミングユニット３００Ｖから出力されないようにする。
【００５３】
ＭＰＥＧ２仕様書の付属書類Ｃに記述されるように、二つのモードのＶＢＶバッファ動作が可能である。第１のモード（モードＡ）では、ＶＢＶ遅延を１６進数ＦＦＦＦに設定する必要がある。第２のモード（モードＢ）では、ＶＢＶ遅延を１６進数ＦＦＦＦに設定する必要はないが、その代わりに、ＶＢＶ遅延がＶＢＶバッファ中のＶＢＶ遅延の真の値を表す必要がある。
【００５４】
モードＡの初期設定中は、バッファが一杯になったことをフレームバイトカウンタ３５４が知らせてくるまでバイトがＶＢＶバッファに出力される。ＶＢＶバッファが一杯になると、ＭＰＥＧ２仕様書の付属書類Ｃに記述されているようにＶＢＶバッファからデータが抽出される。
【００５５】
モードＢの初期設定中は、ＶＢＶ遅延の計算値が入力ストリームＳ４Ｐ中のＶＢＶ遅延値以上になるまでバイトがＶＢＶバッファに出力される。この入力ストリームは、ストリームに含まれる値を用いてバッファがオーバーフロー／アンダーフローしないという点から、自己一貫性（self consistent）でＭＰＥＧ２準拠のものでなければならない。フレームバイトカウンタ３５４に含まれるＶＢＶバッファ満杯状態の計算値は、ＶＢＶバッファのアンダーフロー／オーバーフローを防止するために使用される。入力ストリームが何らかの理由で一定とならない場合は、この計算値を用いてＶＢＶバッファへのデータフローを調整することができる。ストリーム中のＤＴＳ−ＰＴＳ値は、ストリームに含まれるＶＢＶ遅延値と一致する必要がある。
【００５６】
あるストリームにモードＡで切り替える場合、“ＴＯ”ストリーム中のＶＢＶ遅延である１６進数ＦＦＦＦ値は、ＰＴＳ−ＤＴＳリタイミングセクションで維持される計算値で上書きされる。あるストリームにモードＢで切り替える場合、“ＴＯ”ストリーム中のＶＢＶ遅延の１６進数値は、必要であれば、計算されたＶＢＶバッファ値と“ＴＯ”ストリームのＶＢＶ遅延値とが整列されるまでＰＴＳ−ＤＴＳリタイミングセクション３００Ｖで維持される計算値で上書きされる。これ以外の場合は、ＶＢＶ遅延が整列するまで入力ストリームデータフローが保持される。このプロセスは、リタイミング回路に続くトランスポートストリームエンコーダで発生する再多重化（re-multiplexing）操作を利用する。整列期間中、ＶＢＶバッファ内のＶＢＶ遅延を増加させるために、データを最大のビデオビットレートでＶＢＶバッファに出力してもよい。このプロセスは、バッファが一杯にならない限り、ＶＢＶ遅延が整列されるまで継続することができる。
【００５７】
ＶＢＶ遅延整列の後、入力ＦＩＦＯ内のフレーム数とデコーダバッファ内のフレーム数とが加算され、その加算結果にフレーム周期が乗算されて、このシステムのエンドツーエンド遅延が生成される。このフレーム数は記憶される（ステップ４７２）。システムのエンドツーエンド遅延は固定されているので、ＦＩＦＯ２２０の適切な利用は、遠端デコーダにおける入力バッファの適切な利用に関係している。
【００５８】
定常状態では、ＦＩＦＯは、入力データストリームＳ１Ｖを受信し、ＦＩＦＯ出力ストリームＳ３Ｖを送信する。受信ストリーム（Ｓ１Ｖ）のデータレートが送信ストリーム（Ｓ３Ｖ）のデータレートを超えていると（ステップ４７４）、ＦＩＦＯは充填を開始する。この充填、すなわちＦＩＦＯの過剰利用は、エンドツーエンド遅延を増大させる傾向を持つ望ましくないオーバーフロー状態をもたらすことがある。同様に、送信ストリーム（Ｓ３Ｖ）のデータレートが受信ストリーム（Ｓ１Ｖ）のデータレートを超えていると（ステップ４７６）、ＦＩＦＯは空になり始める。この空隙化、すなわちＦＩＦＯの過少利用は、エンドツーエンド遅延を減少させる傾向を持つ望ましくないアンダーフロー状態をもたらすことがある。過剰利用状態に対処するために、フレーム削減操作（ステップ４８２および４８４）が実行される。また過少利用状態に対処するために、フレームインサートフラグがセットされ（ステップ４８０）、これにより切り替えルーチンにステップ４５８でフレームを挿入するように命令するようになっていてもよい。挿入／削除フレームによってもたらされるデータの増減は、リモート入力ＳＴＩＮとその結果として得られるトランスポートストリームＳ１１との間のフレーム同期を維持する。
【００５９】
ＦＩＦＯの利用は、以下のようにして監視および補正される。ＦＩＦＯメモリが過剰に利用されており、フレームの削減に関する全ての外部基準が満足されている場合、ＦＩＦＯの出力におけるフレーム（すなわち、アクセス単位“Ａ”）は、フレームがフレーム削減基準を満足するまで検査される（ステップ４８２）。アクセス単位“Ａ”がこの基準を満足する場合、アクセス単位“Ａ”を送信することなく全てのアクセス単位をＦＩＦＯ中で前方向にシフトする（すなわち、アクセス単位“Ａ”は放棄され、アクセス単位“Ｂ”がアクセス単位“Ａ”になり、以下も同様である）ことによって、アクセス単位“Ａ”は消去される。更に、影響を受けたフレームの時間基準が修正される。これがフレーム削減モード（frame drop mode）である。
【００６０】
ＦＩＦＯメモリが過少に利用されており、フレームの追加に関する全ての外部基準が満足されている場合（ステップ４７８）、フレームインサートフラグがセットされる。この後、切り替えルーチンは、ステップ４５６においてリピートフレームを挿入する。更に、影響を受けたフレームの時間基準が修正される。これがフレーム追加モード（frame add mode）である。ＦＩＦＯメモリの利用率が適切な範囲内にあれば（すなわち、過剰利用率よりも小さく過少利用率よりも大きい）、フレームが追加または削減されることもない。これが通過モード（pass-through mode）である。
【００６１】
選択されたストリームが再び切り替えられる場合（ステップ４８６）、非定常状態（すなわち、遷移状態）が存在し、ＶＢＶバッファを再整列させる必要があり、フレーム追加／削減ルーチンがステップ４７０で再び開始する。
【００６２】
図３は、図１の情報処理システムで使用するのに適したビデオＰＴＳ−ＤＴＳリタイミングシステムのブロック構成図を示している。このＰＴＳ−ＤＴＳリタイミングユニット３００Ｖは、ＰＥＳスイッチャ１３０からＰＥＳ入力ビットストリームＳ４Ｐを受信し、ＰＥＳ出力ビットストリームＳ７ＰをＴＳＥ１５０に送出する。このＴＳＥは、それの出力においてＰＣＲスタンピング（stamping）を行う。ＴＳＥは、同期ＰＣＲベース基準（Ｓ９）を９０ＫＨｚのレート（２７ＭＨｚのステーションクロックを３００で割ったもの）でフィードバックする。このＰＴＳ−ＤＴＳリタイミングユニットは、以下のように動作する。
【００６３】
ＰＣＲＢシリアル−パラレル変換器３１２は、ＴＳＥ１５０からのＰＣＲＢ信号Ｓ９を、加算器３１４および減算器３２２に結合されるパラレル（バイト）ストリームＳ３０１に変換する。加算器３１４は、パラレルＰＣＲＢ Ｓ３０１をデコーダ遅延時間Ｓ３０４に加算して、調整済ＰＣＲＢ時間基準Ｓ３０２を生成する。この調整済時間基準は、調整済時間基準レジスタ３１６に記憶される。最初のピクチャをビデオバッファから取り出して遠端デコーダで復号することができる場合、この調整済ＰＣＲＢ時間基準Ｓ３０２は、ＰＣＲＢカウントの値を表している。
【００６４】
ターンオン初期設定時には、初期設定コマンドＳ３０６によって、セレクタ３１８が、記憶時間基準Ｓ３０３を新しいタイムスタンプレジスタ３２０内に転送する。ＰＥＳヘッダが入力ビットストリームＳ４Ｐ中で復号されるたびに、フレームレート（ＦＲ）レジスタ３０８に記憶されたオフセット数が加算器３１０によって新しいタイムスタンプＳ３０８に加算される。この加算の結果は、セレクタ３１８を介して新しいタイムスタンプレジスタ３２０に戻される。
【００６５】
加算器３１０のオフセット数は、具体的には、一般的なフレームレートの１フレーム時間に含まれる９０ＫＨｚのサイクルの数である。加算器３１０のオフセット数は表１（第３列）に示されており、以下のようにして自動的に設定される。ＰＥＳ、シーケンス、ピクチャ、およびＶＢＶ遅延デコーダ３０２は、入力データストリームＳ４Ｐ中のシーケンス開始コードを検出し、シーケンス検出信号Ｓ３１２を生成する。フレームレートデコーダ３０４は、４ビットのフレームレートコードＳ３１０（表１の第１列）を抽出する。フレームレートコードＳ３１０の２進値は、ＡＴＳＣ仕様書に記載されるように、表１の第２列に列挙されたフレームレートに対応する。ルックアップテーブル（ＬＵＴ）３０６は、オフセット数Ｓ３１１（表１の第３列）をフレームレートレジスタ３０８に提供する。シーケンス検出信号Ｓ３１２に応答して、フレームレートレジスタ３０８は、記憶オフセット数を加算器３１０に提供する。ＰＥＳストリームは一連の混合フレームレートを複数有することがあるので、本発明のＰＴＳ−ＤＴＳリタイミングユニットは、全てのタイムスタンプ更新値を自動的に計算することに注意すべきである。
【００６６】
【表１】
0004157617.tif 000002
次のステップでは、新しいＰＴＳおよびＤＴＳを計算する。ＤＴＳ復号ユニット３２８は、入力データストリームＳ４Ｐ中にＤＴＳが存在すれば、そのＤＴＳを復号してＤＴＳ信号Ｓ３２１を生成する。ＤＴＳ復号ユニット３２８は、指示フラグ（indication flag）Ｓ３２３も提供する。この指示フラグは、入力データストリームＳ４ＰがＤＴＳを含む場合にはハイ（２進数の１）であり、ＰＴＳしか存在しない場合（すなわち、Ｂ−フレーム動作）にはロー（２進数の０）である。このＤＴＳ指示信号Ｓ３２３は、ＡＮＤユニット３３４およびＤＴＳ更新ユニット３４０に結合される。新しいＤＴＳ Ｓ３２７は、ＤＴＳフラグＳ３２３が入力データストリームＳ４Ｐ中にＤＴＳが存在することを知らせる場合にだけ、新しいタイムスタンプレジスタ３２０から得られる。
【００６７】
ＰＴＳ復号ユニット３２６は、入力データストリームＳ４Ｐ中のＰＴＳを復号し、ＰＴＳ信号Ｓ３２０を生成する。現在のＰＴＳ Ｓ３２０とＤＴＳ Ｓ３２１との間の差分Ｓ３２２は、減算器３３２によってＡＮＤユニット３３４に提供される。新しいＰＴＳ Ｓ３２６は、減算器３３２の出力数値Ｓ３２２を新しいタイムスタンプレジスタ３２０に記憶された数値Ｓ３０８に加算することによって計算される。この演算は、加算器３３６で行われる。ＤＴＳが存在しない（すなわち、ＤＴＳフラグ＝０）場合は、ＡＮＤユニット３３４から加算器３３６への入力Ｓ３２４は（ＡＮＤユニット３３４の動作に起因して）ゼロであり、新しいＰＴＳ Ｓ３２６は、新しいタイムスタンプレジスタ３２０に記憶された数値Ｓ３０８である。
【００６８】
新しいＰＴＳ Ｓ３２６および新しいＤＴＳ Ｓ３２７は、対応する更新レジスタ３３８、３４０に記憶される。多重ユニット３４４は、古い値の代わりに新しいＰＴＳ Ｓ３２６および新しいＤＴＳ Ｓ３２７の値を出力データストリームＳ７Ｐに挿入する。コントローラ３４３は、出力されるデータストリームＳ７Ｐ中の適切なビットの位置を追跡し、多重ユニット３４４が更新値をストリーム中の正しい位置に挿入するようにする。出力データストリームＳ７Ｐは、通常の方法でトランスポートストリームエンコーダ１５０に進む。
【００６９】
また、ＰＴＳ−ＤＴＳリタイミングユニット３００Ｖは、以下で説明するように、遠端デコーダ（例えば、セットトップ受信機）におけるバッファの振る舞いや、ビットストリームソース（例えば、フレームシンクロナイザ２００やＰＥＳソース１４０）におけるバッファの振る舞いやビットストリーム生成の振る舞いを考慮することによって、システム中のエンドツーエンド遅延を管理する能力を提供する。
【００７０】
ＰＥＳ、シーケンス、ピクチャ、およびＶＢＶ遅延デコーダ３０２は、入力データストリームＳ４Ｐ中のＰＥＳパケットの開始を検出し、新しいタイムスタンプレジスタ３２０に結合されるＰＥＳ検出信号Ｓ３１３を生成する。各ＰＥＳインターバルでは、新しいタイムスタンプレジスタ３２０が、一般的なフレームレートによって決定される固定値Ｓ３１８で更新される。新しいタイムスタンプレジスタ３２０の更新された内容Ｓ３０８は、比較器３２３によって、調整済時間基準レジスタ３１６の内容Ｓ３０３と比較される。比較の結果（すなわち、小さい、大きい、又は等しい）は、ＰＥＳデータが処理されるレート（すなわち、遅すぎる、速すぎる、又はちょうど良い）を表す。ＰＥＳストリームＳ４Ｐが例えばＰＥＳソース１４０によって余りに遅いレートで発行されている場合、ＰＥＳソース１４０の出力バッファ（図示せず）を最大のレートで読み出し、あるいは取り出すことができる。この比較が処理の進行が速すぎることを表す場合、エンコーダまたはサーバにおけるバッファの読出しを停止または抑制することができる。バッファフロー制御信号Ｓ１２は、フレームシンクロナイザ２００およびＰＥＳソース１４０に、それぞれの出力ストリームのビットレートを制御するために結合されている。
【００７１】
更に、通常は、ＴＳＥ１５０への入力にバッファ（図示せず）が存在する。ＴＳＥバッファが速すぎるレートでデータを受信している場合、ＴＳＥは、ＲＥＣＥＩＶＥＲ ＮＯＴ ＲＥＡＤＹ信号Ｓ８をＰＴＳ−ＤＴＳリタイミングユニット３００に供給してもよい。このＲＥＣＥＩＶＥＲ ＮＯＴ ＲＥＡＤＹ信号Ｓ８は、比較器３２３の出力において論理演算装置３２５に結合される。これに応じて、論理演算装置は、エンコーダ２１０、２２０のビットレート発生を停止または抑制するバッファフロー制御信号Ｓ１２を生成する。
【００７２】
図３のＰＴＳ−ＤＴＳリタイミングユニットは、ＶＢＶ遅延数Ｓ３１６を計算し、それを（マルチプレクサ３４４を介して）ピクチャヘッダ内の１６ビットフィールドに挿入することができる。ＰＣＲＢシリアル−パラレル変換器３１２の出力（すなわち、現在の時刻）は、減算器３２２において新しいタイムスタンプレジスタ３２０の内容から減算される。ＰＥＳ、シーケンス、ピクチャおよびＶＢＶ遅延デコーダ３０２は、入力データストリームＳ４Ｐ中のピクチャヘッダを検出し、ＶＢＶ遅延更新レジスタ３２４に結合される画像検出信号Ｓ３１４を生成する。画像検出信号Ｓ３１４に応答して、ＶＢＶ遅延更新レジスタ３２４は、減算器３２２の出力Ｓ３１５を記憶する。記憶されたこの数値Ｓ３１６は、ピクチャが遠端デコーダバッファ内に存在することになる時間、すなわちＶＢＶ遅延パラメータを９０ＫＨｚサイクルで表す。このように、本発明は、ＶＢＶ遅延フィールドが１６進数ＦＦＦＦに設定されるＡＴＳＣモードを用いることなく、ＡＴＳＣに準拠したビットストリームを生成する。
【００７３】
また、ピクチャヘッダ中の時間基準は、ＡＴＳＣ規格によって指定されるように、ピクチャ群（ＧＯＰ）中のピクチャの適切な表示順序を表すように調整する必要がある。入力データストリームＳ４Ｐが、ＧＯＰヘッダが後に続くシーケンスヘッダに切り替わると、時間基準は現在選択されているストリームにおいてゼロから開始するように適切に設定され、選択されたストリームが別のストリームに切り替わるときに調整が必要とならないようになっている。しかしながら、ＧＯＰヘッダがシーケンスヘッダの後に続かない場合、新しい時間基準値は、新しく選択されたストリーム中で適切に更新されなければならない。この新しい時間基準は、以前に選択されていたストリーム（すなわち、“ＦＲＯＭ”ストリーム）を監視することによって決定することができる。後に続く新しい時間基準値は、元の値の関係をフレーム単位で監視し、ストリームが切り替えられたときの時間基準値を指す値で新しい時間基準値を更新することによって決定することができる。この手法により、ピクチャが送信順に並んでいる場合であっても、時間基準の表示順序が維持されるという結果が得られる。
【００７４】
デコーダへのビデオストリームのフローを適切に制御するためには、ＶＢＶバッファの満杯状態も監視しなければならない。初期設定時（すなわち、初期設定コマンドＳ３０６がアサートされたとき）には、ＰＴＳ−ＤＴＳリタイミングユニット３００Ｖから出力されるバイトの数がフレーム単位で記憶される。現在の時刻、各フレームの復号時間、フレームごとのバイト数、およびＶＢＶバッファサイズを用いてＶＢＶバッファの満杯状態が判断される。
【００７５】
初期設定時には、ＶＢＶバッファは空である。第１のフレームがＶＢＶバッファに出力されると、ＶＢＶバッファ内のバイトの実行総数がフレームバイトカウンタ３５４によって維持される。この総数がＶＢＶバッファサイズに等しければ、フレームバイトカウンタ３５４から論理ユニット３２５への出力信号Ｓ３１７に応じて、論理ユニット３２５は、ＰＴＳ−ＤＴＳリタイミングユニットからデータが出力されないようにする。ＶＢＶバッファが満杯でなければ、データは、計算されたＶＢＶバッファ遅延が受信ストリーム（Ｓ４Ｐ）中のＶＢＶ遅延以上となるまで出力される。
【００７６】
定常状態の動作では、第１の期間のエンドツーエンド遅延が生じた後に、現在の時刻が復号タイムスタンプと一致すると、データフレームがＶＢＶバッファから取り出される。そのフレーム中のバイト数は、ＰＴＳ−ＤＴＳリタイミングユニット３００Ｖのフレームバイトカウンタで維持される実行総数から減算される。ＶＢＶバッファが満杯になっている場合は、ここで、より多くのデータを送信するために空間がつくられる。全てのエンドツーエンド遅延データがＶＢＶバッファ内に存在していた場合は、復号のときにＶＢＶバッファから出るフレームが次のフレームの送出を開始する。
【００７７】
上述のＶＢＶ遅延処理機能は、新しいＶＢＶ遅延数を計算し、入力ストリームＳ４Ｐ中に存在するＶＢＶ遅延数を上書きすることによって動作する。この方法は、フレーム単位でＶＢＶ遅延数を制御するものであり、通常は、出力ストリームＳ７ＰのＭＰＥＧ準拠を確保するのに極めて適している。より精密な制御を提供するために第２のＶＢＶ遅延処理機能（オプション）を導入し、これによって、現在選択されているストリームと次に選択されるストリームとの間でより滑らかに遷移が行われるようにしてもよい。
【００７８】
オプションの第２のＶＢＶ遅延処理機能は、次のようにしてＰＴＳ−ＤＴＳリタイミングユニット３００に組み込むことができる。ＰＥＳ、シーケンス、ピクチャー、およびＶＢＶ遅延デコーダ３０２は、入力データストリームＳ４ＰのＰＥＳピクチャヘッダ内に含まれるＶＢＶ遅延パラメータを検出する。この検出されたＶＢＶ遅延Ｓ３２９は、第２の比較器３２７に結合され、減算器３２２によって生成された更新済ＶＢＶ遅延数Ｓ３１５と比較される。この比較の結果Ｓ３３０は、二つのＶＢＶ遅延の相対的な均等性を表しており、フレーム同期に使用するために出力され、論理演算装置３２５に結合される。論理演算装置３２５では、デコーダバッファ利用率が更に計算される。この追加の計算は、二つのＶＢＶ遅延の差分の大きさに注目するものであり、それに応じて、比較器３２３の出力とともに動作しビデオ／オーディオエンコーダ（生のビットストリームの場合）やサーバ（記憶されたビットストリームの場合）におけるデータ生成を調整するバッファフロー制御信号Ｓ１２を生成する。
【００７９】
入力ストリーム中に存在するＶＢＶ遅延数は、デコーダにおけるバッファによって制御されるようなシステムのエンドツーエンド遅延を維持するために、エンコーダ（図示せず）によって最初に計算されている。減算器３２２によって生成されているＶＢＶ遅延と現在選択されているストリームＳ４Ｐで使用されるＶＢＶ遅延との変位を測定することによって、論理演算装置３２５は、バッファフロー制御信号Ｓ１２をより正確に調整することができる。バッファフロー制御信号Ｓ１２は、上述したように、ビットストリームソースのデータレートを加速または減速するために使用してもよい。
【００８０】
ここまで、情報処理システム内のＭＰＥＧ情報ストリームを処理するビデオフレームシンクロナイザに関連して本発明を説明してきた。当業者ではあれば分かるように、本発明は、一つ以上の情報ストリームを受信して処理する汎用コンピュータをプログラムすることによって実施することもできる。このような汎用コンピュータは、本発明に従ってプログラムされると特定用途コンピュータとなる。例えば、図２のＦＩＦＯ２２０は、メモリポインタ等を用いてアクセスされるアドレス指定可能記憶装置（addressable memory）であってもよい。フレームは、一つ以上のアクセス単位を表す一つ以上の記憶場所をスキップする（すなわち、飛ばす）ことによって削減してもよい。また、フレームは、一つ以上のアクセス単位を表す追加の記憶場所をポイントすることによって追加してもよい。これらの記憶場所は、各記憶場所またはフレームが次の場所またはフレームへのポインタを含んでいる、いわゆる「連結リスト（linked list）」として構成されていてもよい。ポインタを修正することによって、記憶場所またはフレームを出力ストリーム中で選択的にスキップしたり含めたりしてもよい。
【００８１】
更に、本明細書で述べた本発明の実施形態は、例えばセグメント化されたデータを含む非同期圧縮情報ストリームがタイミング基準に同期されていなければならないような他の圧縮データシステムで使用するために修正を加えてもよい。このような圧縮データシステムには、有線または無線のテレコムシステムや他の情報処理システムが含まれていてもよい。
【００８２】
図２のフレームシンクロナイザ２００および上述の方法は、フレームレートの変換用途で有用である。すなわち、このフレーム追加／削減方法によって、図３のフレームシンクロナイザおよびＰＴＳ−ＤＴＳリタイミングシステム３００は、効率の良いフレームレート変換器になることができる。例えば、６０フレーム／秒（ｆｐｓ）の順次走査ストリームを５９．９４ｆｐｓの順次走査ストリームに変換することができ、またその逆の変換も可能である。同様に、３０ｆｐｓインタレース走査ストリームを２９．９７ｆｐｓインタレース走査ストリームに変換することができ、またその逆の変換も可能である。６０ｆｐｓ順次走査入力ストリームを５９．９４ｆｐｓ順次走査出力ストリームに変換する場合、あるいは３０ｆｐｓインタレース走査入力ストリームを２９．９７ｆｐｓインタレース出力ストリームに変換する場合、出力ストリームのシーケンスヘッダ中のフレームレートコードを適切に変更しなければならない。これは、ＰＴＳやＤＴＳなど、他の関係を有する適切なタイムスタンピングを保証するものである。出力フレームレートは入力フレームレートよりも小さいので、ＦＩＦＯ中のフレームの数は、あらかじめ確立されたフレーム削減ルールおよびフレーム時間再順序づけ（temporal re-ordering）ルールに従ってフレームを削減しなければならない程度まで増加する。
【００８３】
５９．９４ｆｐｓ順次走査入力ストリームを６０ｆｐｓ順次走査出力ストリームに変換する場合、あるいは２９．９４ｆｐｓインタレース走査入力ストリームを３０ｆｐｓインタレース出力ストリームに変換する場合には、出力ストリームのシーケンスヘッダ中のフレームレートコードを前のように適切に変更しなければならない。出力フレームレートは入力フレームレートよりも大きいので、ＦＩＦＯ中のフレームの数は、あらかじめ確立されたフレーム繰返しルールおよびフレーム時間再順序づけルールを用いてフレームを追加しなければならない程度まで減少する。
【００８４】
いま述べたように、このフレームレートの変換は、連続入力ストリームを類似する走査型の出力ストリームに変換するために使用することができる。したがって、出入りの程度に関連する上述のルールに従い、上述の追加／削減方法を使用することによって、フレームシンクロナイザ２００を“ｆｒｏｍ”ストリームと“ｔｏ”ストリームとの間で切り替えることができる。類似していない走査型の場合には、出力ストリームは、選択された入力ストリームの走査型に従わなければならない。また、“ｔｏ”ストリームおよび“ｆｒｏｍ”ストリームが類似する走査型の場合は全て、“ｔｏ”ストリームは元のフレームレートのままであってもよく、あるいは“ｆｒｏｍ”ストリームのフレームレートに変更してもよい（すなわち、フレームレート変換器およびスイッチャの双方として動作する）。
【００８５】
本明細書では本発明の開示内容を含む種々の実施形態を詳細に示して説明してきたが、当業者は、これらの開示内容を依然として含む他の多くの変形例を容易に考案することができる。
【図面の簡単な説明】
【図１】図１は、本発明に係るフレームシンクロナイザを含んだ情報処理システムのブロック図である。
【図２】図１の情報処理システムで使用するのに適した本発明に係るフレームシンクロナイザのブロック図である。
【図３】図１の情報処理システムで使用するのに適したビデオＰＴＳ−ＤＴＳリタイミングシステムのブロック図である。
【図４】図２のフレームシンクロナイザを理解する際に便利なフローチャートである。
【符号の説明】
１００…情報処理システム、２００…ビデオフレームシンクロナイザ、２１０…クロック抽出器、２２０…ＦＩＦＯ、２３０…コントローラ、２４０…フレーム追加／削減ユニット。
【図１】
0004157617.tif 000003
【図２】
0004157617.tif 000004
【図３】
0004157617.tif 000005
【図４】
0004157617.tif 000006