(57)【要約】  トランスポートストリーム受信機が、受け取られたネットワークフレームからカプセル化されたコンテンツパケットのカプセル化を解除し、かつ選択されたコンテンツパケットを運ぶトランスポートストリームを送信する。トランスポートパケットのストリームで運ばれる選択されたコンテンツを受け取る方法は、トランスポートパケットの同期する第１のストリームの一部分を運ぶネットワークフレームを受け取るステップと、該ネットワークフレームで運ばれるコンテンツパケットのカプセル化を解除するように該ネットワークフレームを処理するステップと、トランスポートパケットの同期する第２のストリームを送信するステップであって、トランスポートパケットの同期する第２のストリームがネットワークフレームのストリームで運ばれるコンテンツパケットを含む、トランスポートパケットの同期する第２のストリームを送信するステップとを包含する。
2005515663.tif 000002
【特許請求の範囲】
【請求項１】
トランスポートパケットのストリームで運ばれる選択されたコンテンツを受け取る方法であって、該方法が、
トランスポートパケットの同期する第１のストリームの一部分を運ぶネットワークフレームのストリームを受け取るステップであって、該トランスポートパケットの第１のストリームがコンテンツパケットおよびヌルパケットから構成され、該ネットワークフレームのストリームによって運ばれる該トランスポートパケットの第１の該一部分が該コンテンツパケットから構成される、トランスポートパケットの同期する第１のストリームの一部分を運ぶネットワークフレームを受け取るステップと、
該ネットワークフレームで運ばれるコンテンツパケットのカプセル化を解除するように該ネットワークフレームを処理するステップと、
トランスポートパケットの同期する第２のストリームを送信するステップであって、該トランスポートパケットの同期する第２のストリームが該ネットワークフレームのストリームで運ばれる該コンテンツパケットを含む、トランスポートパケットの同期する第２のストリームを送信するステップと
を含む、方法。
【請求項２】
前記ネットワークフレームのストリームが前記トランスポートパケットの第１のストリームのためのストリーム情報を運ぶ、請求項１に記載の方法。
【請求項３】
前記ストリーム情報が前記トランスポートパケットの第１のストリームのトランスポートパケットの所与のセットの中の前記ヌルパケットの数を示す、請求項２に記載の方法。
【請求項４】
前記ストリーム情報が、前記トランスポートパケットの第１のストリームのトランスポートパケットの所与のセットの中のヌルパケットおよびコンテンツパケットのシーケンスを示す、請求項２に記載の方法。
【請求項５】
所与のネットワークフレームが前記トランスポートパケットの第１のストリームのトランスポートパケットの所与のセットのためのストリーム情報を含み、かつ、該ネットワークフレームを処理する前記ステップが、
該ストリーム情報を読むステップであって、該ストリーム情報が該所与のセットの中の前記ヌルパケットの数を特定する、該ストリーム情報を読むステップと、
置き換えトランスポートパケットの特定の数を生成するステップであって、該特定の数が該ストリーム情報によって特定される該ヌルパケットの数と等しい、置き換えトランスポートパケットの特定の数を生成するステップと
該生成される置き換えトランスポートパケットを前記トランスポートパケットの第２のストリームに含めるステップと
を含む、請求項２に記載の方法。
【請求項６】
前記所与のセットが、特定の順序で、少なくとも１つのコンテンツパケットおよび少なくとも１つのヌルパケットを含み、前記ストリーム情報が該所与のセットについてのシーケンス情報を含み、
該シーケンスが該所与のセットの該特定の順序に対応するように、生成された置き換えトランスポートパケットを有する少なくとも１つのコンテンツパケットを配置するステップをさらに含む、請求項５に記載の方法。
【請求項７】
構成メッセージに含まれる送信ビットレートを有する構成メッセージを受け取るステップと、
前記トランスポートパケットの第２のストリームが該構成メッセージに含まれる該送信ビットレートによって送信されるように送信機を初期化するステップと
をさらに含む、請求項１に記載の方法。
【請求項８】
トランスポートパケットのストリームで運ばれる選択されたコンテンツを受け取るための装置であって、該装置が、
ネットワークフレームの中にカプセル化されるゼロ以上のコンテンツパケットを有するネットワークフレームと、複数のトランスポートパケットを規定する、トランスポートパケットのセットのためのストリーム情報とを受け取るように適応される入力ポートであって、該トランスポートパケットのセットが該ゼロ以上のコンテンツパケットおよびゼロ以上の置き換えパケットを含み、該セットの複数のトランスポートパケットが該セットの複数のトランスポートパケットに対する特定の順序を有する、入力ポートと、
該トランスポートパケットのセットを複製するために該ゼロ以上のコンテンツトランスポートパケットを有する該ストリーム情報を処理するように適応されるプロセッサと
該トランスポートパケットの該複製されたセットを同期ストリームで送信することと
を含む装置。
【請求項９】
前記ストリーム情報が前記ネットワークフレームに含まれる、請求項８に記載の装置。
【請求項１０】
前記ストリーム情報が前記パケットのセットに含まれる置き換えトランスポートパケットの数を示す、請求項８に記載の装置。
【請求項１１】
前記複製トランスポートパケットのセットが所定の数のコンテンツパケットを含む、請求項８に記載の装置。
【請求項１２】
前記トランスポートパケットの複製セットが置き換えトランスポートパケットの数を含み、該置き換えトランスポートパケットの数が前記ストリーム情報によって特定される、請求項１１に記載の装置。
【請求項１３】
前記トランスポート情報がＭＰＥＧのトランスポートストリームであり、かつ前記置き換えトランスポートパケットがスタッフィングパケットである、請求項８に記載の方法。
【請求項１４】
前記ネットワークフレームが第１のコンテンツパケットおよび少なくとも第２のトランスポートパケットをカプセル化し、前記ストリーム情報が、該トランスポートパケットのセットの中の、該第１のコンテンツパケットと該少なくとも第２のトランスポートパケットとの間に置かれる前記置き換えトランスポートパケットの数を示す、請求項８に記載の装置。
【請求項１５】
前記ネットワークフレームが第１のコンテンツパケットをカプセル化し、前記ストリーム情報が、前記トランスポートパケットのセットの中の、該第１のコンテンツパケットに先立つ前記置き換えトランスポートパケットの数を示す、請求項８に記載の装置。
【請求項１６】
前記プロセッサが、連続するコンテンツパケットの間に置かれる前記置き換えトランスポートパケットの数を決定するために前記ストリーム情報を読み、該連続するコンテンツパケットの間に置かれる該置き換えトランスポートの数を生成し、かつ該連続するコンテンツパケットの間に置かれる該生成された置き換えトランスポートパケットを有する送信機を提供するようにさらに適応される、請求項８に記載の装置。
【請求項１７】
前記プロセッサが、前記送信機が前記トランスポートパケットのセットを特定の送信ビットレートで送信するように送信機を構成するようにさらに適応される、請求項８に記載の装置。
【請求項１８】
前記プロセッサが、前記特定の送信ビットレートを有する構成メッセージを受け取ることに応えるように前記送信機を構成する、請求項１７に記載の装置。
【請求項１９】
バッファに格納される複数のネットワークフレームを有するバッファと、
該バッファからネットワークフレームの群を抽出しかつ該ネットワークフレームの群がエラーのない群かどうかを決定し、該群はエラーがない群ではないとの決定に応えて、該ネットワークフレームの群のエラーを修正するように適応される、フォワードエラーコレクションモジュールと
をさらに含む、請求項８に記載の装置。
【請求項２０】
前記プロセッサがバッファの充満レベルを測定するようにさらに適応され、かつ所定の閾値を超える充満レベルに応えて、該プロセッサがクロックの該クロックレートを増すように適応され、かつ所定の閾値を下回る充満レベルに応えて、該プロセッサが該クロックの該クロックレートを減らすように適応される、請求項８に記載の装置。
【請求項２１】
前記トランスポートパケットのセットが、前記クロックの前記速度に相関する測定されたビットレートにおいて送信される、請求項２０に記載の装置。
【請求項２２】
前記ネットワークフレームが非シーケンシャルな順序で受け取られかつプロセッサが該ネットワークフレームをシーケンシャルな順序で処理するようにさらに適応される、請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、広帯域通信システムにおけるトランシーバに関し、特に、非同期ネットワークを介するトランスポート（輸送）ストリームの送信のための装置および方法に関する。
【０００２】
（関連する出願の相互参照）
本出願は、２００２年１月４日に出願された「Ａ  ＤＥＶＩＣＥ  ＦＯＲ  ＴＲＡＮＳＣＥＩＶＩＮＧ  ＭＰＥＧ−２  ＴＲＡＮＳＰＯＲＴ  ＳＴＲＥＡＭＳ  ＯＶＥＲ  ＩＰ  ＮＥＴＷＯＲＫＳ」という名称の、同時係属中の、米国仮出願第６０／３４５，３８８号に基づきその優先権を主張するものであり、その全体を本明細書において参照のため援用する。
【０００３】
本願は、「ＴＲＡＮＳＭＩＴＴＩＮＧ  ＳＴＲＥＡＭＳ  ＯＶＥＲ  ＡＳＹＮＣＨＲＯＮＯＵＳ  ＮＥＴＷＯＲＫＳ」という名称で、本願と同日に同一人の発明者を有して出願されている同時係属中の米国特許出願に関連し、その全体を本明細書において参照のため援用する。
【背景技術】
【０００４】
（本発明の背景）
従来の加入者テレビシステムは、音声（ａｕｄｉｏ）およびビデオ情報の圧縮のための確立された規格であるＭＰＥＧ−２などのデジタルフォーマットでのプログラムを提供する。従来の加入者電話システムに採用される配信メカニズムは、衛星、地上、およびケーブル通信ネットワークを含む。デジタルプログラム製品の配信に比較的新しく参入したのは広帯域パケット交換ネットワークである。
【０００５】
広帯域パケット交換ネットワーク界とテレビネットワーク界とは、従来から技術的に大きな隔たりがあることによって、区別され、分離されてきた。テレビのコンテンツの配信および放送は、従来からサービスにおいて高い信頼性を有する１方向技術であった。対照的に、パケット交換ネットワークは、完全に双方向通信が可能であり、元々高い信頼性またはＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を提供するように設計されなかった。
【０００６】
パケット交換ネットワークの例は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークであり、それは、「コネクションレス（ｃｏｎｎｅｃｔｉｏｎｌｅｓｓ  接続のない）」ネットワークである。コネクションレスネットワークでは、発信元が目的地と通信可能であることに先立ち何の接続もパスも確立されない。その代わり、パケット交換時、またはルータがパケットを受け取ったときに動的に決定されるパスまたはルートに基づき、パケット交換機またはルータが各パケットを転送する。その結果、パケット交換ネットワークでは、発信元から目的地に送信される各パケットは、ネットワークを介して異なるパスに従い得る。異なるパスに従うことからくる異なる遅れのため、パケット交換ネットワークにおけるパケットは、発信元によって送信されたパケットとは完全に異なる順序で目的地に到達し得る。
【発明の開示】
【課題を解決するための手段】
【０００７】
テレビ配信技術とパケット交換ネットワーク技術との間のギャップを埋めることへの要求がある。デジタルプログラムストリームは、通常ＤＶＢ／ＡＳＩ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔ／Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｓｅｒｉａｌ  Ｉｎｔｅｒｆａｃｅ）として公知である業界標準フォーマットのデジタルエンコーダまたはマルチプレキサから送り出される同期ストリームである。したがって、求められるのは、パケット交換ネットワークを介してトランスポートストリームを運びかつトランスポートストリームを再送信するための装置および方法である。求められるのはまた、パケット交換ネットワークを介して送信される、可変的に遅延するネットワークフレームのストリームを受け取りかつトランスポートパケットの同期ストリームを送り出すための装置および方法であり、トランスポートパケットがネットワークフレームストリームの中で運ばれる。さらに、求められるのは、トランスポートストリームを受け取りかつパケット交換ネットワークを介する送信のためにトランスポートストリームのコンテンツをネットワークフレームの中に選択的に含むための装置および方法である。
【０００８】
本発明の多くの局面は、以下の図面を参照することでより良く理解され得る。図面のコンポーネントは必ずしも一定の縮尺ではなく、むしろ本発明の原理を明確に示すことに重点が置かれる。さらに、図面では、このいくつかの図面全体を通して、同様の番号は対応する部分を示す。
【発明を実施するための最良の形態】
【０００９】
（好ましい実施形態の詳細な説明）
概して、本発明の好ましい実施形態は、ノイズ除去（ｆｉｌｔｅｒｉｎｇ  ｏｕｔ）によるコンテンツのカプセル化および空（ヌル）パケットの置き換えを含み、いくつかの実施形態では、ノイズ除去された数多くのパケットの表示を有する破棄プログラム（ｄｒｏｐｐｅｄ  ｐｒｏｇｒａｍ）パケットを含む。したがって、新しい送信機、受信機、およびシステムならびに関連する方法が本発明の範囲内に含まれる。
【００１０】
図１を参照すると、加入者テレビシステム１００が、ヘッドエンド１０２、配信ネットワーク１０６、および遠隔の加入者場所１０８に位置する複数のデジタル加入者通信端末（ＤＳＣＴ）１１０を含む。ＤＳＣＴ１１０は、加入者にヘッドエンド１０２と通信を行うための双方向インターフェースを提供する。典型的に、ＤＳＣＴは、ヘッドエンド１０２から送信されるプログラムおよびサービスを表示するためのテレビ１１２などの表示デバイスに接続される。当業者は、別の実施形態では、復号化およびさらなる信号処理のための機器は、ＤＳＣＴ、コンピュータ、ＴＶ、モニタ、または、中でもとりわけ、ＭＰＥＧデコーダを含むがこれらに限定されない、種々の機器に含まれることを理解する。
【００１１】
ヘッドエンド１０２は、デジタルネットワーク制御システム（図示せず）などの周知の要素、およびＶＯＤ（ｖｉｄｅｏ−ｏｎ−ｄｅｍａｎｄ）サーバ（図示せず）などの周知のサーバばかりでなく、非同期ストリームレシーバ（ＡＳＲ）１１４およびモジュレータ１１６を含む。ＡＳＲ１１４は、Ｅｔｈｅｒｎｅｔ（登録商標）フレームなどのネットワークフレームで運ばれる、ＭＰＥＧトランスポートストリームなどの、だがこれらに限定されないトランスポートストリームを受け取り、かつ少なくとも間接的にトランスポートストリーム１３６をモジュレータ１０６に送信するために、適応される。モジュレータ１１６は、当業者に周知の、ＱＡＭ（Ｑｕａｄｒａｔｕｒｅ  ａｍｐｌｉｔｕｄｅ  ｍｏｄｕｌａｔｉｏｎ）などの、だがこれらに限定されない技術を用いてトランスポートストリーム１３６の周波数を変調し、変調されたトランスポートストリームをネットワーク１０６を介して加入者の家屋１０８へ送信する。
【００１２】
ヘッドエンド１０２は、コンテンツプロバイダ１０４などの発信元から、当業者には通常ＩＰネットワークとして公知であるＢＤＮ（ｂｒｏａｄｂａｎｄ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｎｅｔｗｏｒｋ）１３０を介して、コンテンツを受け取る。コンテンツプロバイダ１０４は、とりわけ、ＡＳＴ（ａｓｙｃｈｒｏｎｏｕｓ−ｓｔｒｅａｍ−ｔｒａｎｓｍｉｔｔｅｒ）１１５、マルチレプキサ１１８、および制御システム１２４を使用して、プログラムをＳＴＳ１００に提供する。マルチプレキサ１１８は、複数のトランスポート１３２を複数のエンコーダ１２０から受け取り、トランスポートストリーム１３２を組み合わせて多重化されたトランスポートストリーム１２６とする。エンコーダ１２０のそれぞれは、カメラ１２２またはその他の発信元（図示せず）から信号を受け取り、その信号をＭＰＥＧフォーマットなどのデジタルフォーマットにコンバートする。
【００１３】
制御システム１２４は、通信リンク１３４を介してマルチプレキサ１１８およびＡＳＴ１１５と通信状態にある。とりわけ、制御システム１２４は、オペレータインターフェースをＡＳＴ１１５に提供し、「プログラムを破棄せよ」などのコマンドを発行する。シームレスなプログラム破棄の詳細が、以下に提供される。
【００１４】
ＡＳＴ１１５は同期トランスポートストリーム１２６を受け取り、ネットワークフレームの非同期ストリーム１２８を送信する。ＡＳＴ１１５は、トランスポートストリーム１２６の受け取り、トランスポートパケットをネットワークフレームに選択的にカプセル化し、ネットワークフレームをＢＤＮ１３０を介してＡＳＲ１１４に送信するように適応される。このＡＳＲ１１４はネットワークフレームのカプセル化を解除し、同期トランスポートストリームを送信する。１つの実施形態では、ＡＳＴ１１５は、Ｄｒｏｐ  Ｐｒｏｇｒａｍメッセージをシステムコントローラ１２４から受け取り、それに応じて、ネットワークストリーム１２８から特定のプログラムをシームレスに破棄する。別の実施形態では、ＡＳＲ１１４およびＡＳＴ１１５は、両方とも、（１）ネットワークフレームの非同期ストリームを受け取りトランスポートパケットの同期ストリームを送信し、かつ（２）トランスポートパケットの同期ストリームを受け取りネットワークフレームの非同期ストリームを送信することが可能であるように、対称的に構成される。
【００１５】
この開示の目的のために、発明者らは、ＡＳＴ１１５によって受け取られたトランスポートストリームは、コンテンツパケットと呼ばれるヌルパケットおよび非ヌルパケットから構成されると考える。典型的に、コンテンツパケットは、プログラミングの部分、システム情報、またはその他の情報を運ぶパケットを含む。ヌルパケットは、一般に、例えばＭＰＥＧトランスポートストリームである内容の詰まったパケットを伴う意味のないパケット、つまり、トランスポートストリームのフィラー（つなぎ）として使用されるものであると考えられる。本発明の１つの好ましい実施形態では、ヌルパケットはノイズ除去され、ノイズ除去されたヌルパケットの数を示すストリーム情報に置き換えられる。ヌルパケットに加え、選択的にノイズ除去され得るその他のパケットは、ＢＤＮ１３０を介して選択的に送信されない任意のパケットを含み、それらの任意のパケットの例は、破棄されるプログラムを運ぶパケットを含む。
【００１６】
ＡＳＲ１１４によって送信されるトランスポートストリームは、ＢＤＮ１３０を介して受け取られる置き換えトランスポートパケットおよびコンテンツパケットを含む。置き換えトランスポートパケットはＡＳＲ１１４によって生成されかつＡＳＲ１１４からトランスポートストリームで送信されるパケットである。ヌルパケットと同様に、置き換えトランスポートパケットはその内容が無視され得、結果として生じるトランスポートストリームにおいてフィラーとして使用される。ＡＳＲ１１４によって送信されるトランスポートストリームがＭＰＥＧストリームであるとき、置き換えトランスポートパケットは、中身を有する（ｓｔａｆｆｉｎｇ  スタッフィング）パケットである。
【００１７】
１つの好ましい実施形態では、ＡＳＴ１１５は、コンテンツパケットを選択的にネットワークフレームにカプセル化し、ストリーム情報と共にネットワークフレームをＡＳＲ１１４に送信し、ＡＳＲ１１４は、ストリーム情報と、その他の情報と、ネットワークフレームとを使用して同期トランスポートストリームを送信し、その同期トランスポートストリームは、ネットワークフレームによって運ばれるコンテンツパケットを含む。ＡＳＴ１１５が破棄プログラムを有さない限り、トランスポートストリーム１３６のトランスポートパケットのシーケンスは、好ましくは、基本的にトランスポートストリーム１２６のトランスポートパケットのシーケンスと同一である。しかし、ＡＳＴ１１５が破棄プログラムを有する場合、ストリーム１３６のトランスポートパケットのシーケンスは、ストリーム１２６のトランスポートパケットのシーケンスと同様であるが、ストリーム１３６では破棄プログラムのコンテンツパケットが置き換えトランスポートパケットに置き換えられる点が異なる。
【００１８】
１つの好ましい実施形態では、ＡＳＲ１１４およびＡＳＴ１１５はまた、ネットワークフレームストリームの送信エラーを修正するように適応される。１つの実施形態では、ネットワークフレームが、当業者には周知であるＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐａｃｋｅｔｓ）である。ＵＤＰパケットはコネクションレスプロトコルを用いてＢＤＮ１３０を介して送信され、ＴＣＰ／ＩＰなどのその他のプロトコルとは異なり、ＵＤＰは、どのようなＡＲＱ（ａｕｔｏｍａｔｉｃ  ｒｅｐｅａｔ  ｒｅｑｕｕｅｓｔ）メカニズムも提供しない。従来のネットワークでは、一旦ＵＤＰパケットがネットワークによって破棄されると、破棄されたパケットを受け取るためのメカニズムは何もなかった。しかし、本発明のこの実施形態では、破棄されたパケットを回復するために、パケットレベルのＦＥＣ（ｆｏｒｗａｒｄ／ｅｒｒｏｒ／ｃｏｒｒｅｃｔｉｏｎ  フォワードエラーコレクション）がＡＳＲ１１４ならびにＡＳＴ１１５および１１４によって実行される。
【００１９】
図２を参照すると、好ましい実施形態では、ＡＳＴ１１５は、トランスポートパケット２０４のストリーム１２６を受け取り、ネットワークフレーム２０２のストリーム１２８を送信し、またその逆も行うように適応される。この目的を明確にするために、トランスポートパケット２０４のストリーム１２６はＭＰＥＧストリームに関して説明されるが、これは例示の目的のためのみであり、本発明を制限するものとして解釈されるべきではない。同様に、ネットワークフレーム２０２は、ＩＰまたはＥｔｈｅｒｎｅｔ（登録商標）などのネットワークプロトコルを使用してさらにカプセル化され得るＵＤＰパケットとして説明されるが、この説明もまた例示の目的のためのみであり、本発明を限定するものとして解釈されるべきではない。
【００２０】
ＭＰＥＧパケットの簡単な説明が以下に提供されるが、さらなる詳細は、ＭＰＥＧ−１規格（ＩＳＯ／ＩＥＣ  １１１７２）において提供され、ＭＰＥＧ−２規格（ＩＳＯ／ＩＥＣ  １３８１８）およびＭＰＥＧ−４規格（ＩＳＯ／ＩＥＣ  １４４９６）はＩｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎの文書ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１Ｎ（ＭＰＥＧ−１に対して１９９６年６月、ＭＰＥＧ−２に対して１９９６年７月、ＭＰＥＧ−４に対して１９９８年１０月）に詳細が記載されており、それらは本明細書によって参照のために援用される。
【００２１】
簡単に言えば、ＭＰＥＧトランスポートパケット２０４は、１８８バイトの、サイズが固定されたものであり、それは４バイトサイズのヘッダ２０６を含み、とりわけ、ＭＰＥＧトランスポートパケット２０４はＰＩＤ（ｐａｃｋｅｔ  ｉｄｅｎｔｉｆｉｅｒ  パケット識別子）フィールドを含む。ＰＩＤフィールドはパケットのストリームの識別に使用される１３ビットのフィールドである。ＰＩＤ値は０から８，１９１まで（０および８，１９１を含む）変動する。ＳＴＳ１００では、いくつかのＰＩＤ値は、とりわけシステム専用の情報テーブルのために確保される。例えばＰＩＤ「０」はＰＡＴ（ｐｒｏｇｒａｍ  ａｓｓｏｃｉａｔｉｏｎ  ｔａｂｌｅｓ）のために、ＰＩＤ値１はＣＡＴ（Ｃｏｎｄｉｔｉｏｎａｌ  Ａｃｃｅｓｓ  Ｔａｂｌｅｓ）のために確保される。同様にＰＩＤ値８，１９１は、スタッフィングパケットのために確保される。
【００２２】
ＭＰＥＧパケット２０４はまた、適応フィールド２０８およびペイロード２１０を含む。適応フィールド２０８およびペイロード２１０は、それぞれに長さにおいて可変であるが、長さの総計は１８４バイトである。ヘッダ２０６はまた、適応フィールド２０８のサイズを示す適応サイズフィールドを含む。ほとんどのＭＰＥＧパケット２０４において、適応フィールド２０８のサイズはゼロバイトである。しかし、適応フィールド２０８がサイズにおいてゼロバイトではない場合、それは、とりわけ、スタッフィング２１４を運ぶために使用され、ペイロード２１０のサイズが１８４バイトより小さい場合、タイミング情報であるＰＣＲ（ｐｒｏｇｒａｍ  ｃｌｏｃｋ  ｒｅｆｅｒｅｎｃｅ）２１２を運ぶために使用される。
【００２３】
典型的に、ペイロード２１０は、デジタルサービスの一部分、またはテーブル、またはテーブルの一部分、またはその他のシステム情報である。ペイロード２１０がデジタルサービスの一部分を運ぶ場合、そのデジタルサービスの一部分は暗号化される。必要な資格およびペイロード２１０を解読するキーを有するＳＴＳ１００の正規の加入者のみがサービスにアクセスし得る。視聴料金不要のテレビ番組またはその他の番組などの選択されるサービスは暗号化されずに運ばれ得る。
【００２４】
テーブルおよびメッセージなどの、だがこれらに限定されないシステム情報はまた、ＭＰＥＧパケット２０４のペイロード２１０で運ばれ、かつ通常は暗号なしで運ばれる。とりわけ、システム情報は、ＰＡＴ、ＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）、およびＥＣＭ（Ｅｎｔｉｔｌｅｍｅｎｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ）を含む。ＰＡＴはトランスポートストリーム１２６によって運ばれるデジタルサービスをＰＭＴと関連づける。例えば、あるデジタルサービスのプログラム１はＰＩＤ１５３を有するＰＭＴと関連づけられ、異なるサービスのプログラム２０はＰＩＤ２９６を有するＰＭＴと関連づけられる。
【００２５】
ＰＭＴは、所与のサービスの基本ストリームをそれらのそれぞれのＰＩＤ値に関連づける。例えば、所与のサービスは、ＰＡＴにおいてプログラム１と識別され、そのプログラムに対するＰＭＴはＰＩＤ１５３を有する。この例では、この所与のサービスは、ビデオ、音声１、音声２などの種々の基本ストリームから成る映画、テレビプログラム、またはビデオサービスであり、ここで、異なる音声ストリームは異なる言語で行われるそのサービスの音声区域を運ぶ。したがって、ＰＩＤ１６７を有するＭＰＥＧパケット２０４は所与のサービスのためのビデオストリームを運び、ＰＩＤ１６９を有するＭＰＥＧ２０４は、所与のサービスのための音声区域１を運ぶ。なお、ＰＩＤ値は、異なるサービスまたは同一のサービスにおけるいかなる２つの基本ストリームも同一のＰＩＤ値を有さないように割り当てられることに留意すべきである。ＰＩＤ１５３によって表されるＰＭＴはまた、ＥＣＭ（ｅｎｔｉｔｌｅｍｅｎｔ  ｃｏｎｔｒｏｌ  ｍｅｓｓａｇｅｓ）をＰＩＤ１５４を有するパケットに関連づけ、プログラムのＰＣＲをＰＩＤ１６７を有するパケットに関連づける。
【００２６】
加入者がプログラムをリクエストするとき、ＤＳＣＴ１１０がトランスポートストリームからＰＡＴ（ＰＩＤ＝０）を抽出し、そのプログラムのためのＰＭＴを決定する。ＤＳＣＴは次にそのプログラムのためのＰＭＴを用いてＰＣＲのＰＩＤストリームおよびＥＣＭのＰＩＤストリームを含むプログラムのＰＩＤストリームを決定する。ＤＳＣＴ１１０は、プログラムが解読され得かつ加入者に表示され得るように適切な資格が与えられたかどうかを決定する。資格が与えられた場合、ＤＳＣＴ１１０は、プログラムの解読にＥＣＭを使用する。
【００２７】
ＰＣＲ２１２は、エンコーダの現地時間の時刻印を有するフィールドであり、その時刻印はフィールドが刻印されたときのものである。ＭＰＥＧ規格は、プログラムを受け取るＤＳＣＴ１１０またはＭＰＥＧデコーダがその内部時計（図示せず）をＭＰＥＧエンコーダ１２０の内部時計と合わせ得るように、エンコーダがＰＩＤストリームに、１００ミリ秒ごとまたはそれより短いミリ秒ごとに、ＰＣＲを挿入することを要求する。ＰＣＲ無しでは、ＤＳＣＴ１１０の内部時計はドリフトし、したがってＤＳＣＴ１１０は表示のためのプログラムの種々のＰＩＤストリームを同期化し得ない。したがって、ＤＳＣＴ１１０がジッタのないトランスポートストリームを受け取ることが重要である。つまり、連続するＰＣＲ間の時間差が、いくらかの動作許容範囲内でＤＳＣＴ１１０に到達する時間差に対応する。
【００２８】
最後に、スタッフィングパケットは、トランスポートストリームの空間フィラーである。ＤＳＣＴ１１０がスタッフィングパケットを受け取る場合、ＤＳＣＴ１１０はそれらを無視するが、それはスタッフィングパケットのペイロード２１０は、通常、すべて１または０から成り、ＤＳＣＴ１１０にとって意味を持たないからである。
【００２９】
図３Ａから３Ｃを参照すると、ネットワークフレーム２０２が、フレームヘッダ３０４およびネットワークフレームペイロード３０５を含み、このネットワークフレームペイロード３０５はネットワークフレーム２０２がカプセル化するコンテンツである。フレームヘッダ３０４は、送信者と、受信者情報と、当業者には公知のその他ネットウォーキング情報とを含む。さらに、送信者および受信者のアドレスに加え、フレームヘッダ３０４は、フレームシーケンス情報およびインターリーブ情報を含む。フレームシーケンス情報は新しいネットワークフレーム２０２が作成されるごとに、インクリメントされるフィールドである。ＵＤＰパケットに対して、フレームシーケンス情報の値はゼロから６５，５３５まで巡回する。インターリーブ情報はエポック（ｅｐｏｃｈ）およびインターリーブシーケンス番号の両方を含み、このことが以下に詳細に説明される。
【００３０】
可能なネットワークフレームペイロード３０５は図３Ａおよび図３Ｂに示されるパケットメッセージ３０２と図３Ｃに示される構成メッセージ３１０とを含む。図３Ａでは、ネットワークフレームペイロード３０５はパケットメッセージ３０２である。しかし、構成メッセージ３１０が送信されるとき、パケットメッセージ３０２のかわりに構成メッセージ３１０がネットワークフレームペイロード３０５で運ばれる。
【００３１】
図３Ｂおよび３Ｃはパケットメッセージ３０２および構成３１０のフォーマットをそれぞれ示す。パケットメッセージ３０２は選択されるトランスポートパケット２０４を含み、構成メッセージ３１０は、初期化および動作の情報を含む。構成メッセージ３１０が先ず説明され、次にパケットメッセージ３０２が説明される。
【００３２】
図３Ｃを参照すると、構成メッセージ３１０が以下のメタデータを含む。
【００３３】
・シーケンス番号：１のカウントによってインクリメントする、各構成メッセージを有する１６ビットのシーケンス番号
・メッセージＩＤ：８ビットのメッセージＩ．Ｄ．がメッセージを構成メッセージとして固有に識別する。
【００３４】
・ＦＥＣイネーブル：フォワードエラーコレクションがイネーブルかどうかを示し、イネーブルの場合はブロック内のパケット数を示す８ビットのフィールド。
【００３５】
・ＦＥＣリペア：ブロック内のリペアパケットの数を示す８ビットのフィールド。
【００３６】
・ＦＥＣエポック：異なるブロックのパケットのインターリーブを示す８ビットのフィールド
・ビット／秒：トランスポートストリームのビットレートを示す３２ビットのフィールド。
【００３７】
図３Ｂを参照すると、パケット３０２がメタデータ３０６およびメッセージペイロード３０８を含む。メッセージペイロード３０８は、スタッフィングカウントフィールド３１２およびコンテンツパケットフィールド３１４を含み、かつブラケット３１９によって封入されるスタッフィングカウントフィールド３１２およびコンテンツパケットフィールド３１４の数に応じてサイズが可変である。メタデータ３０６は、以下のフィールドを含む。
【００３８】
・シーケンス番号：１のカウントによってインクリメントする、各パケットメッセージを有する１６ビットのシーケンス番号。
【００３９】
・メッセージＩ．Ｄ．：メッセージがパケットメッセージであると固有に識別する、８ビットのメッセージＩ．Ｄ．
・パケットカウント：パケットメッセージ内のトランスポートパケットの数。
【００４０】
・スタッフィング有効カウント：パケットメッセージの中の有効なスタッフィングカウントの数。
【００４１】
メッセージペイロード３０８はスタッフィングパケットおよびコンテンツパケットに対するストリーム情報を含む。１つの好ましい実施形態では、メッセージペイロード３０８の交互のスタッフィング情報およびコンテンツパケットがストリーム情報を運ぶ。具体的には、メッセージペイロード３０８は、１６ビットのスタッフィングカウントフィールド３１２と１８８バイトのサイズのコンテンツパケットフィールド３１４との間で交互になる、一続きの交互のフィールドを含む。スタッフィングカウントフィールド３１２は、連続するコンテンツパケットの間に置かれるスタフィングパケットの数を示す。コンテンツパケットフィールド３１４はコンテンツパケットを運ぶ。交互のスタッフィングカウントフィールド３１２およびコンテンツパケットフィールド３１４はトランスポートパケットセットを複製するためのシーケンス情報を生じる。メタデータ３０６のパケットカウントおよびスタッフィング有効カウントフィールドはペイロード３０８の長さを決定する。
【００４２】
好ましい実施形態では、ＭＴＵ（ｍａｘｉｍｕｍ  ｔｒａｎｓｆｅｒａｂｌｅ  ｕｎｉｔ）がペイロード３０８の長さを決定し、一例として、Ｅｔｈｅｒｎｅｔ（登録商標）を介するＵＤＰパケットの長さは１．５キロバイトである。したがって、パケットメッセージ３０２は、パケットメッセージがＥｔｈｅｒｎｅｔ（登録商標）を介して運ばれるＵＤＰパケットの中にカプセル化される場合、ＭＴＵを超えることなく最大７つのコンテンツパケットを含み得る。しかし、このサイズの制限はネットワークの制限であり、本発明の制限ではないことは明らかであるべきである。
【００４３】
１８個のトランスポートパケット２０４の例示的セット４００が図４に示され、図５Ａおよび図５ＢはＵＤＰパケット内のセット４００の情報を運ぶための、パケットメッセージ３０２Ａおよび３０２Ｂそれぞれの２つの非制限例を示す。図４では、スタッフィングパケットは「Ｓ」で表され、コンテンツパケットは「Ｃ］で表される。まず、いかにしてセット４００がパケットメッセージ３０２Ａで運ばれるかが図５Ａを参照して提供され、ついでいかにしてセット４００がパケットメッセージ３０２Ｂで運ばれるかが図５Ｂを参照にして提供される。
【００４４】
パケットメッセージ３０２Ａでは、ペイロード３０８がストリーム情報およびコンテンツの両方を含む。具体的には、コンテンツパケットに先立ってセット４００のスタッフィングパケットの数があり（その後ろに）すぐそのコンテンツパケットが続く。例えば、最初のコンテンツパケット（Ｃ５）に先立ち４つのスタッフィングパケットがあり、２番目のコンテンツパケット（Ｃ６）に先立ちゼロのスタッフィングパケットがある。したがって、ペイロード３０８は最初の４つのスタッフィングパケットを表すスタッフィングカウント＝４、コンテンツパケット（Ｃ５）、セット４００の５番目と６番目の間に置かれるスタッフィングパケットがないことを表すスタッフィングカウント＝０、およびコンテンツパケット（Ｃ６）等々、７番目のコンテンツパケット（Ｃ１８）がペイロードに含まれるまで（のもの）を含む。ペイロード３０８に含まれる７つのコンテンツパケットがあるので、メタデータ３０６のパケットカウントフィールドは７つに設定される。同様に、各コンテンツパケットに先立ってスタッフィングパケットカウントがあるので、メタデータ３０６のスタッフィング有効フィールドは７に設定される。
【００４５】
図５Ｂを参照すると、例示的パケットメッセージ３０２Ｂでは、シーケンス情報５０２はペイロード３０８のコンテンツパケットと混合されない。その代わり、ペイロード３０８においてシーケンス情報がコンテンツパケットの先に来る。ここでシーケンス情報５０２はセット４００のスタッフィングパケットおよびコンテンツパケットの交互のブロックを表す。例えば、スタッフィングパケットの第１のブロックは４つのパケットから成り、コンテンツパケットの第１のブロックは２つのパケットから成り、スタッフィングパケットの第２のブロックは４つのパケットから成る、などである。メタデータヘッダ３０６は、パケットブロックカウントフィールドおよびスタッフィングブロックカウントフィールドを含み、それらのフィールドには、コンテンツブロックの総計およびスタッフィングブロックの総計がそれぞれ入力される。したがって、セット４００に対し、パケットブロックカウントフィールドは５に設定され、スタッフィングブロックカウントフィールドもまた同様に設定される。
【００４６】
パケットメッセージ３０２Ａおよび３０２Ｂは例示的であり、実施形態を制限するものではないことが強調される。当業者は、別々のメッセージの中でストリーム情報およびコンテンツパケットを提供するなどの、その他のしかしそれらに限定されない、ストリーム情報およびコンテンツパケットを提供する別の方法があり、それらの方法およびメッセージはすべて本発明の範囲の中にあると意図されることを理解する。さらに、パケットメッセージ３０２Ａおよび３０２Ｂが、ゼロから、通常ＭＴＵのサイズに依存する最大の番号の範囲で変化し得る数のコンテンツパケットを運ぶために使用され得ることが強調されるべきであり、かつパケットメッセージ３０２が可変の数のスタッフィングパケットに対するストリーム情報を運び得ることが強調されるべきである。
【００４７】
さらに、パケットメッセージ３０２Ａおよび３０２Ｂが、パケットメッセージに含まれる最後のコンテンツパケットに続くスタッフィングパケットを運び得ることに留意すべきである。例えば、発明者らがパケットメッセージ３０２Ａのセット４００の最初の１０個のスタッフィングパケットを送りたいと仮定すると、その場合、メタデータ３０６において、パケットカウントは２に設定され、スタッフィング有効カウントは３に設定され、ペイロード３０８が、スタッフィングカウント＝４、コンテンツパケット（Ｃ５）、スタッフィングカウント＝ゼロ、コンテンツ（Ｃ６）、およびスタッフィングカウント＝４から構成される。同様に、パケットメッセージ３０２Ｂに対して、メタデータ３０６において、パケットブロックカウントフィールドは１に設定され、スタッフィングブロックカウントフィールドは２に設定され、シーケンス情報５０２は、スタッフィングカウント＝４、コンテンツカウント＝２、スタッフィングカウント＝４である。ペイロードはしたがってコンテンツパケット（Ｃ５）および（Ｃ６）を含む。
【００４８】
図６を参照すると、ＡＳＲ１１４およびＡＳＴ１１５が対称的に構成される実施形態を示し、以後これらは「ＡＳＲ／ＡＳＴ」と呼ばれる。ＡＳＲ／ＡＳＴ６００はプロセッサ６０２、メモリ６０４、ＮＩＣ（ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ）６０６、およびトランスポートストリームＩ／Ｏ（入力／出力）デバイス６０８を含む。好ましい実施形態では、プロセッサ６０２、メモリ６０４、およびＮＩＣ６０６はパソコンで使用されるＰｅｎｔｉｕｍ（登録商標）ベースのマザーボードの標準コンポーネントであり、トランスポートストリームＩ／Ｏデバイス６０８は、Ｏｐｔｉｂａｓｅ  ｏｆ  Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ、ＣＡのＭｅｄｉａ  Ｐｕｍｐ５３３などの、しかしこれらに限定されない標準ＰＣＩ  ＤＶＢ／ＡＳＩアドインカードであるかまたはその他の当業者に公知のアドインカードである。他の実施形態は、送信機または受信機のいずれかとして専用に実行することを含み、また別の実施形態は、それらの機能のうちの１つとその他のネットワーク要素とを組み合わせることを含む。
【００４９】
示されるように、メモリ６０４は、バッファ６１０、送信ロジック６１２、受信ロジック６１４およびＦＥＣロジック６１６を含む。バッファ６１０は、プロセッサ６０２による処理の間、トランスポートパケット２０４およびネットワークフレーム２０２がバッファされる動作バッファである。プロセッサ６０２は、ＡＳＲ／ＡＳＴ６００が送信モードであるとき、送信ロジック６１２を実行し、ＡＳＲ／ＡＳＴ６００が受信モードであるとき、受信ロジック６１４を実行する。送信ロジック６１２は、トランスポートパケット２０４のセットをパケットメッセージ３０２の中に選択的にカプセル化するため、およびパケットメッセージ３０２および構成メッセージ３１０をネットワークフレームの中にカプセル化するためのロジックを含む。さらに、送信ロジック６１２は、受信されるトランスポートストリームのビットレートを計算するためのロジックとネットワークフレーム２０４をインターリーブするためのロジックとを含み、そのことを以下で説明する。
【００５０】
受信ロジック６１４は、構成メッセージ３１０に従ってＡＳＲ／ＡＳＴ６００を構成するためのロジックを含む。例えば、構成メッセージ３１０に応えて、プロセッサ６０２は、トランスポートストリームＩ／Ｏデバイス６０８の送信ビットレートを構成メッセージ３１０のビットレートに設定する。受信ロジック６１４はまた、ネットワークフレーム２０２のインターリーブを解除（ｄｅ−ｉｎｔｅｒｌｅａｖｉｎｇ）し、かつネットワークフレーム２０２のパケットメッセージ３０２から、カプセル化されたトランスポートパケット２０４のセットのカプセル化を解除する（ｄｅ−ｅｎｃａｐｓｕｌａｔｉｎｇ）ためのロジックを含む。
【００５１】
プロセッサ６０２は、破棄されたネットワークフレームに対してフォワード／エラー／コレクトを行うためにＦＥＣロジック６１６を実行する。送信モードでは、ＦＥＣロジック６１６がプロセッサ６０２によって実行され、受信ＡＳＲ／ＡＳＴ６００がそのエラーを修正するのに使用するエラー修正情報を作成する。受信モードでは、ＦＥＣロジック６１６がプロセッサ６０２によって実行され、破棄されたネットワークフレーム２０２に対し修正を行うために、エラー修正情報を使用する。
【００５２】
１つの好ましい実施形態では、ＡＳＲ／ＡＳＴ６００は、基本的に同時トランシーバゲートウェイとして働きながら、送信または受信ゲートウェイとして働くか、あるいは完全に両方の機能を果たす態様（ｆｕｌｌ  ｄｕｐｌｅｘ）で機能するように働くかのいずれかで働くように構成される。ＡＳＲ／ＡＳＴ６００Ａの機能は、以下に、別々の受信ゲートウェイＡＳＲ／ＡＳＴ６００Ａおよび送信ゲートウェイＡＳＲ／ＡＳＴ６００Ｂとしてそれぞれ説明されるが、そうする理由は、ＡＳＲ／ＡＳＴ６００が送信および受信のいずれのモードにおいても機能し得ることを明確にするためである。
【００５３】
図７では、ＡＳＲ／ＡＳＴ６００Ｂが送信モードにおいて示されかつＡＳＲ／ＡＳＴ６００Ａが受信モードにおいて示される。送信モードでは、プロセッサ６０２Ｂが、アナライザモジュール７０２、カプセル化モジュール（エンカプシュレータモジュール）７０４、およびインターリーバモジュール７０６を含む送信ロジック６１２を実行し、かつプロセッサはＦＥＣエンコーダモジュール７０８を含むＦＥＣロジック６１６を実行する。受信モードでは、プロセッサ６０２Ａが構成モジュール７１０、ディインターリーバモジュール７１２、およびディエンカプシュレータモジュール７１４を含む受信ロジック６１４を受け取り、かつプロセッサはＦＥＣデコーダモジュール７１６を含むＦＥＣロジック６１６を実行する。種々のモジュールのプロセスが、一般に、並行してまたは所定の順序で実行される。
【００５４】
メモリ６０４Ｂのバッファ６１０Ｂは、トランスポートパケットバッファ７１８、ネットワークフレームバッファ７２０、インターリーババッファ７２２、および出力バッファ７２４を含む。メモリ６０４Ａのバッファ６１０Ａは、ディインターリーババッファ７２６、ＦＥＣデコーダバッファ７２８、ネットワークフレームバッファ７３０、および出力バッファ７３２を含む。
【００５５】
トランスポートストリームＩ／Ｏデバイス６０８Ｂは、トランスポートストリーム１２６を受け取り、ストリームのトランスポートパケット２０４をトランスポートパケットバッファ７１８に送る。アナライザモジュール７０２はトランスポートパケットバッファ７１８をモニターし、かつ、特に、ネットワークフレーム２０２の中にカプセル化される構成メッセージ３１０を生成し、かつ、ネットワークインターフェースカード６０６ＢによるＡＳＲ／ＡＳＴ６０２Ａへの送信のために、構成メッセージを出力バッファ７２４に提供する。
【００５６】
アナライザモジュール７０２は、ストリームのＰＣＲ情報からトランスポートストリーム１３６のビットレートを決定し、構成メッセージ３０６におけるこの情報を、ＢＤＮ１３０を介しネットワークフレーム２０２を介して一定の間隔で、ＡＳＲ／ＡＳＴ６００Ａに提供する。構成メッセージを送信する目的はＡＳＲ／ＡＳＴ６００Ａの初期化のためである。以下に説明するように、受信ＡＳＲ／ＡＳＴ６００Ａは構成メッセ−ジを聞くことによって初期化されトランスポートストリームＩ／Ｏデバイス６０８Ａの出力ビットレートを構成メッセージ３０６に含まれるビットレートに設定する。アナライザ７０２は、同一のプログラムの連続するＰＣＲ間のビット数を単に数え、次にそれらのＰＣＲの時間差によって割ることによってビットレートを決定する。
【００５７】
さらに、アナライザ７０２は、ストリームのどのトランスポートパケットが送られるべき所望のプログラムなのか、どのパケットがスタッフィングパケットなのか、およびどのパケットがトランスポートストリーム１２６からシームレスにノイズ除去されるべきプログラムに所属しているかを決定する。アナライザ７０２は制御システム１２４からのドロッププログラムメッセージに応えてプログラムをシームレスにフィルタリングする。フィルタリングされるべきプログラムがトランスポートストリーム１２６に所在するところでは、アナライザ７０２は制御システム１２４からの情報を用いてそれらのプログラムのＰＩＤストリームを決定するか、あるいは、アナライザ７０２は、トランスポートストリーム１２６に含まれるそれらのプログラムのためのＰＡＴおよびＰＭＴを、それらのプログラムのＰＩＤストリームを決定するために使用し得る。アナライザは破棄される予定のＰＩＤストリームのＰＩＤを８，１９１の値のＰＩＤに再刻印する。したがって、それ以降、再刻印されたパケットはスタッフィングパケットとして扱われる。別の実施形態では、破棄されるべきＰＩＤストリームのＰＩＤを再刻印する代わりに、アナライザ７２０は、破棄されるストリームのＰＩＤを追跡し、それらをスタッフィングパケットであるかのように処理する。したがって、それらの実施形態に対し、図３Ａから図５Ｂにおける「スタッフィング」という表示は、中身の詰まった（ｓｔｕｆｆｉｎｇ）、フィルタリングされたコンテンツパケットを含む。
【００５８】
アナライザ７０２はトランスポートパケットバッファ７１８からトランスポートパケット２０４のセット４００を、ファーストイン−ファーストアウトのベースで抽出し、抽出されたパケットセットをエンカプシュレータ（ｅｎｃａｐｓｕｌａｔｏｒ）７０４に提供する。１つの好ましい実施形態では、アナライザモジュール７０２はトランスポートパケットバッファ７１８に所定の数（Ｎ）のコンテンツパケットがあるかどうかを決定し、それがある場合には、アナライザモジュールは現在のファーストインのパケットとＮ個目のコンテンツパケット（最初とＮ個目を含む）間のすべてのインターリーブパケットを抽出する。所定の数は、典型的に、ＭＴＵを超えるネットワークフレームを持たないネットワークフレームによって運ばれ得るコンテンツパケットの数である。アナライザ７０２は、そのパケットセットのためにストリーム情報を決定し、そのパケットセットのコンテンツパケットおよびストリーム情報をエンカプシュレータ７０４に提供する。
【００５９】
１つの実施形態では、本発明によって、可変の数のトランスポートパケットがカプセル化されることが可能となり、この可変の数は、入ってくるトランスポートストリームの中のスタッフィングパケットの密度に依存する。しかし、トランスポートパケットの数の可変性は、それらが予測不可能で変則的であるので、ネットワークフレームの流れにおいて問題となり得る。この問題に対抗するため、別の実施形態では、トランスポートパケットは、所定の時間遅延（ＴＢ）を超えないように、トランスポートパケットバッファ７１８でバッファされる。トランスポートストリーム１２６におけるスタッフィングパケットの密度が低い場合、一般に、現在のファーストインパケットがＴＢより長くバッファされているよりも前に、トランスポートパケットバッファ７１８でバッファされるＮ個のコンテンツパケットがある。その場合、アナライザモジュール７０２は、パケットセットを前述のように抽出する。しかし、スタッフィング密度およびトランスポートストリーム１２６が高いとき、現在のファーストインパケットの到着とＮ個目のコンテンツパケットとの間にＴＢより長い時間が流れ得る。その場合、現在のファーストインパケットのバッファからＴＢ時間の後で、アナライザモジュール７０２がトランスポートパケットバッファ７１８からすべてのパケットを抽出し、かつ抽出されたパケットセットのためのストリーム情報を決定する。ストリーム情報および抽出されたコンテンツパケットは、つぎに、エンカプシュレータモジュール７０４に提供される。
【００６０】
さらに別の実施形態では、カプセル化されるパケットに対するタイムウィンドウを規定する代わりに、アナライザモジュール７０２がトランスポートパケットバッファ７１８のパケットレベルに基き、かつトランスポートパケットバッファ７１８のコンテンツパケットの数に基きトランスポートパケットバッファ７１８からパケットセットを抽出する。つまり、トランスポートパケットバッファ７１８のパケットレベルが所定の閾値より低くかつコンテンツパケットの数がＮより少ない限り、アナライザモジュール７０２はトランスポートパケットバッファ７１８からパケットセットを抽出しない。しかし、一旦（ａ）コンテンツパケットの数がＮと等しいか、または（ｂ）パケットレベルが所定の閾値を超えるかのいずれかになると、そのときは、（ａ）の場合には、ファーストインコンテンツとＮ個目のコンテンツとの間（最初とＮを含む）にわたるパケットセットが抽出され、または（ｂ）の場合には、ファーストインとトランスポートパケットバッファ７１８の閾値にあるパケットとの間にわたるパケットセットが抽出される。
【００６１】
エンカプシュレータモジュール７０４は、アナライザモジュール７０２からのストリーム情報およびコンテンツパケットをパケットメッセージ３０２のペイロード３０８の中にカプセル化しメタデータ３０６のフィールドを埋める。エンカプシュレータモジュール７０４はフレームストリーム情報をフレームヘッダ３０４に刻印する。次に、エンカプシュレータモジュール７０４はパケットメッセージをネットワークフレーム２０２の中にカプセル化し、それは次にネットワークフレームバッファ７２０においてバッファされる。
【００６２】
ＦＥＣエンコーダモジュール７０８は、ネットワークフレームバッファ７２０から複数のネットワークフレーム２０２を除去し、基本的には１度にすべてのフレームを処理する。ＦＥＣエンコーダモジュール７０８が複数のフレームを処理した後、ＦＥＣエンコーダモジュール７０８は複数のフレームおよび処理の出力をインターリーバモジュール７０６に渡す。
【００６３】
インターリーバモジュール７０６は、ネットワークフレームがシーケンシャルな順序で送信されないように、インターリーババッファ７２２の受け取られたネットワークフレームをバッファし、インターリーブバッファ７２２からネットワークフレームを抽出する。抽出されたネットワークフレームは次に出力バッファ７２４においてバッファされる。インターリーバモジュール７０６およびＦＥＣエンコーダ７０８の完全な説明が以下に提供される。
【００６４】
ネットワークインターフェースカード（ＮＩＣ）６０６Ｂは出力バッファ７２４からネットワークフレームを受け取りかつネットワークフレームストリーム１２８をＡＳＲ／ＡＳＴ６００Ａに送信する。ＡＳＲ／ＡＳＴ６００Ａを説明する前に、ＦＥＣエンコーダモジュール７０８およびインターリーバモジュール７０６の、より完全な説明が提供される。
【００６５】
図８を参照すると、ＦＥＣエンコーダモジュール７０８がネットワークフレームバッファ７２０からネットワークフレームＮＢのブロックを取り、これらのネットワークフレームを復号化してＮＢ＋Ｒのネットワークフレームからなる復号化ブロックにする。ここで、Ｒは調整可能なパラメータである。ネットワークフレーム２０２のヘッダ３０４は、復号化されない。本来のブロックサイズであるＮＢは、構成メッセージ３１０のメタデータ３０６のＦＥＣイネーブルフィールドに含まれ、かつ調整可能なパラメータＲは構成メッセージ３１０のメタデータ３０６のＦＥＣリペア（Ｒｅｐａｉｒ）フィールドに含まれる。リペアサイズをＲ＝０に設定することがフォワードエラーコレクションをオフにする。Ｒフレームは、「リペア」フレームと呼ばれるが、その理由は、それらのフレームが、送信中に破棄されるリペア／置き換えフレームを生成するためにＦＥＣデコーダによって使用されるからである。
【００６６】
本発明のいくつかの実施形態は、破棄されるネットワークパケットに対するリペア／置き換えフレームを生成するが、別の実施形態では、ＦＥＣデコーダはまたビットレベルのＦＥＣを行い得る。パケットレベルのＦＥＣの符号化／復号化を行う従来のシステムでは、ＦＥＣエンコーダへの入力は、ブロックの各セグメントが同じサイズのデータのブロックであった。しかし、１つの好ましい実施形態で既に述べたように、エンカプシュレータモジュール７０４はゼロから所定の最大数の範囲で可変の数のコンテンツパケットをカプセル化する。したがって、ネットワークフレームバッファ７２０でバッファされるネットワークフレーム２０２は、同じサイズでなくてもよい。したがって、１つの好ましい実施形態では、ＦＥＣエンコーダモジュール７０８が、可変なサイズのネットワークフレームに対しＦＥＣを実行するために、図８に示されるステップを実行する。
【００６７】
まず、ステップ８０２において、ＦＥＣエンコーダモジュール７０８がＮＢのネットワークフレームで構成されるネットワークフレームのブロックをネットワークフレームバッファ７２０から抽出する。ステップ８０４では、ＦＥＣエンコーダモジュール７０８がネットワークフレームのどれが（どれどれが）最大のサイズであるかを決定し、かつステップ８０６では、ＦＥＣエンコーダモジュール７０８が、次に、より小さいネットワークフレームに付け足しをしてすべてのネットワークフレームを同じサイズにする。
【００６８】
次に、ステップ８０８では、ＦＥＣエンコーダモジュール７０８が今や等しいサイズであるネットワークフレームを処理し、そこから「Ｒ］のリペアフレームを生成する。Ｒ−リペアネットワークフレームは、等しいサイズである入力ネットワークフレームと同サイズである。
【００６９】
ステップ８１０では、ＦＥＣエンコーダ７０８がより小さい入力ネットワークフレームから付け足したものを除去し、本来のブロックのネットワークフレームのそれぞれのサイズが元のサイズに戻るようにする。
【００７０】
ＦＥＣエンコーダ７０８がＮＢのオリジナルフレームをステップ８０８で処理するとき、ＦＥＣエンコーダ７０８がＦＥＣヘッダをネットワークフレーム２０２に含める。ＦＥＣヘッダは、１からＮＢ＋Ｒの間（１とＮＢ＋Ｒを含む）で、ＮＢ＋Ｒのフレーム内でのそのフレームの位置を表すインデックス番号を含む。
【００７１】
ＦＥＣデコーダがＦＥＣの符号化されたブロックのＮＢ＋Ｒのフレームの中から少なくともＮＢのフレームを受け取る限り、ＦＥＣデコーダはオリジナルのＮＢフレームを生成し得る。ＦＥＣデコーダは、それが受け取る数（ＮＢ−Ｄ）と同数のオリジナルのＮＢフレームを使用する。ここでＤは最初のＮＢフレームの中で破棄されるフレームの数であり、デコーダは、破棄されたオリジナルフレームを生成するためにＤのリペアフレームを使用する。
【００７２】
ＦＥＣエンコーダ７０８は、符号化されたブロック（ＮＢ＋Ｒ）のネットワークフレームをインターリーバモジュール７０６に渡し、それは次にブロックのネットワークフレームをインターリーババッファ７２２のその他の符号化されたブロックとインターリーブする。図９は、インターリーバモジュール７０６およびディインターリーバモジュール７０８がそれぞれのバッファ７２２および７２６でどのように機能するかを示す。まず、発明者らは、インターリーブされるべきブロックの数をエポックとして規定し、それはｅに等しい、オペレータが調整可能なパラメータである。このエポックは構成メッセージ３１０のＡＳＲ／ＡＳＴ６００Ａに提供される。
【００７３】
インターリーバモジュール７０６はそのバッファ７２２を１度に１列埋めてネットワークフレームを行で抽出する。ネットワークフレームの１番目のブロックは、１番目の列に挿入され、２番目のブロックは２番目の列に挿入され等々、ｅ番目のブロックがｅ番目の列に挿入されるまで続けられ、列（またはブロック）内で、ネットワークフレームは１からＮＢ＋Ｒまでシーケンシャルに配置される。１番目のネットワークブロックの２番目のネットワークフレームが抽出される前に、符号化されたブロックのそれぞれの１番目のネットワークフレームが抽出されかつ出力バッファ７２４に提供される。つまり、１１−ｅ１によって表されるネットワークフレームが最初に抽出され、ついで１２−ｅ２によって表されるネットワークフレームが抽出され・・等々の抽出が行われる。ＦＥＣの符号化されたブロックをインターリーブすることの利点は、ＦＥＣデコーダモジュール７１６が破棄されるネットワークフレームのバーストによって生じる損傷を修復し得る可能性を高めることである。今、発明者らがインターリーブを何ら有さない、すなわち、ｅ＝１であり、発明者らはｘのネットワークフレームを破棄すると仮定する。ｘが、符号化されたＦＥＣブロックの中のリペアフレームの数であるＲより大きいと、その場合、デコーダは破棄されるネットワークフレームを再作成し得ない。しかし、発明者らがインターリーブを有しており、かつエポックが「ｅ」に等しくかつ破棄されるネットワークフレームの数であるｘが「ｅ」と等しいと、その場合、発明者らはバーストドロップの際に１ブロックあたり１ネットワークフレームを失うのみである。例えば、発明者らは１１からｅ１で表されるネットワークフレームを失い得、それらが点線ボックス９０２に示される。したがって、この例では、リペアフレームの数（Ｒ）がゼロより大きい限り、発明者らが「ｅ」のネットワークフレームを失うとしても発明者らはすべての破棄されるパケットの修正が可能である。
【００７４】
もう一度図７を参照すると、出力バッファ７２４においてバッファされるネットワークパケットは、ファーストイン−ファーストアウトベースでＮＩＣ６０６Ｂに渡される。ＮＩＣ６０６Ｂは、非同期ストリームであるネットワークフレーム１２８のストリームをＡＳＲ／ＡＳＴ６００Ａに送信する。受け取られたネットワークフレームはディインターリーババッファ７２６においてＮＩＣ６０６Ａによってバッファされる。初期化の間、構成７１０は、構成メッセージ３１０を受け取るまでインターリーババッファ７２６からパケットを取り出す。構成７１０はトランスポートストリームＩ／Ｏデバイス６０８Ａの出力ビットレートを、構成メッセージの中に含まれるビットレートに設定し、ディインターリーバモジュール７１２にエポックのサイズを教え、かつＦＥＣデコーダモジュール７１６にブロック中のネットワークフレームの数（ＮＢ）およびリペアフレームの数（Ｒ）を教える。ディインターリーバモジュール７１２はネットワークフレームのインターリーバを解除し、ＦＥＣバッファ７２８においてインターリーバが解除されたフレームをバッファする。ディインターリーバモジュール７１２は受け取られたネットワークフレームをシーケンシャルな順序に配置する。インターリーバモジュール７０６によってネットワークフレームをインターリーブするための修正に加え、ディインターリーバモジュール７１２は送信遅延を修正する。この送信遅延はネットワークフレームが正しくない順序で受け取られることを生じさせ、これはパケット交換ネットワークに共通する問題である。
【００７５】
ＦＥＣデコーダは図１０に示すステップを実行する。ステップ１００２では、ＦＥＣデコーダ７１６がＦＥＣバッファ７２８から同じブロックシーケンス番号を有するすべてのネットワークフレームを抽出する。ステップ１００４において、次に、ＦＥＣデコーダモジュール７１６が、符号化されたＦＥＣブロックの最初のＮＢフレームをすべて受け取ったかどうかを決定し、受け取っている場合、ステップ１０１４に進む。ＮＢフレームのいくつかが失われている場合、ＦＥＣデコーダモジュール７１６は、最初に、リペアフレームのサイズである受け取ったフレームの最大のサイズを決定する。ステップ１００８では、ＦＥＣデコーダ７１６がパッディング（ｐａｄｄｉｎｇ）を最大のサイズより小さいサイズのフレームに追加する。次にステップ１０１０では、ＦＥＣデコーダ７１６が、ＮＢフレームの合計が入力として使用されるように、破棄されなかった１番目のＮＢフレームのすべてと、必要とされるだけの多数のリペア／置き換えフレームとを入力として使用して、破棄されるフレームを生成する。ステップ１０１２では、ＦＥＣデコーダモジュール７１６が１番目のＮＢフレームからパッディングを取り除く。ＦＥＣデコーダモジュール７１６は、リペア／置き換えフレームのコンテンツをそれらのサイズに対して検討し、そこからすべてのパッディングを取り除く。次に、ステップ１０１４では、ＦＥＣデコーダモジュール７１６は、フレームの復号化ブロックの再作成されたネットワークフレーム含む１番目のＮＢネットワークフレームをネットワークフレームバッファ７３０においてバッファする。
【００７６】
再度図７を参照すると、ディエンカプシュレータ（ｄｅ−ｅｎｃａｐｓｕｌａｔｏｒ  カプセル化を解除する）モジュール７１４が、ファーストイン、ファーストアウトベースで、ネットワークフレームバッファ７３０からネットワークフレームを抽出する。ディエンカプシュレータモジュール７１４は、ネットワークフレーム２０２からカプセル化されたパケットメッセージ３０２のカプセル化を解除する。前述のように、パケットメッセージ３０２はメタデータ３０６およびペイロード３０８の両方を含む。このペイロード３０８は、コンテンツパケットおよびストリーム情報の両方を含み得るか、あるいはストリーム情報のみまたはコンテンツパケットのみを含み得る。いずれの場合も、ディエンカプシュレータ７１４は、トランスポートパケットセットを生成するようにメタデータ３０６およびペイロード３０２を処理する。このセットは、パケットメッセージ３０２の中にカプセル化されなかったスタッフィングパケットを含み得る。そのセットのトランスポートパケットは、ＡＳＲ／ＡＳＴ６００Ｂによって受け取られた順序に対応するようにシーケンシャルに配置される。もちろん、ＳＡＲ／ＡＳＴ６００Ｂがプログラムを破棄した場合には、そのプログラムを運んでいた任意のコンテンツパケットはスタッフィングパケットとして刻印され、したがってディエンカプシュレータがそれらの破棄されたコンテンツパケットに対しスタッフィングパケットを生成する。トランスポートパケットセットは次にシーケンシャルに出力バッファ７３２の中に格納される。
【００７７】
トランスポートストリームＩ／Ｏデバイス６０８Ａはトランスポートパケットを出力バッファ７３２からファーストイン、ファーストアウトのベースで受け取り、トランスポートパケットを同期トランスポートストリーム１３６として送信する。好ましい実施形態では、トランスポートパケット１３６は、基本的にトランスポートパケットストリーム１２６と同一であるが、破棄されたプログラムに対応するストリームが異なる。さらに、好ましい実施形態では、２つのストリームの送信速度は、トランスポートパケットストリーム１３６の２つの連続するＰＣＲを有するトランスポートパケット間の到着時間の差が基本的にトランスポートパケットストリーム１２６の同じ２つのトランスポートパケットの送信時間の差と同一であるように、基本的に整合される。しかし、別の実施形態では、ＳＴＳ１００のオペレータは、ディジッタリング（ｄｅ−ｊｉｔｔｅｒｉｎｇ）デバイス（図示せず）がトランスポートストリーム１３６を受け取りジッタの修正を行い得るので、トランスポートパケットストリーム１３６の中のジッタと関連し得ない。例示的ディジッタリングデバイスは米国特許第５，６４０，３８８号において説明され、この米国特許第５，６４０，３８８号は本明細書においてその全体を参照のため援用する。オペレータがジッタと関連しないとき、パケットメッセージ３０２はストリーム情報を全く有さないコンテンツパケットのみを含み得る。この実施形態では、ＡＳＲ／ＡＳＴ６００Ａは、出力バッファ７３２がアンダーフローしないようにスタッフィングパケットを出力バッファ７３２の中に挿入するように適応され得る。さらに別の実施形態では、ストリーム情報が、パケットメッセージ３０２によって運ばれるトランスポートパケットセットのスタッフィングパケットの数である、スタッフィング密度情報を含む。したがって、例えば、コンテンツパケットＣ５、Ｃ６、Ｃ１１、Ｃ１３、Ｃ１５およびＣ１８をカプセル化しかつスタッフィング密度を１１とすることによって、パケットメッセージ３０２が図４に示すパケットセット４００を運び得る。この実施形態では、ディカプシュレータモジュール７１４がスタッフィング密度の情報を読みかつ１１のスタフィングパケットを生成する。１１のスタッフィングパケットは次に受け取られたコンテンツパケットと共に送信される。したがって、トランスポートストリーム１３６の中のスタッフィングパケットの密度は破棄されたプログラミングを除きトランスポートストリーム１２６の中のスタッフィングパケットと同じである。ここでもまた、その後ディジッタリングデバイスのダウンストリームが、適切な順序に配置されるコンテンツパケットおよびスタッフィングパケットを有さないことによってもたらされるジッタを修正する。
【００７８】
しかし、１つの好ましい実施形態では、トランスポートパケットストリーム１３６がＡＳＲ／ＡＳＴ６００ＢおよびＡＳＲ／ＡＳＴ６００Ａの間の送信によってジッタされない。このことを達成するために、図示されないＡＳＲ／ＡＳＴ６００Ａのクロックが、ネットワークフレームバッファ７３０がオーバーフローしない、またはアンダーフローしないように同期化される。基本的に、ネットワークフレームバッファ７３０がオーバーフローし始めるとき、ＡＳＲ／ＡＳＴ６００Ａからのトランスポートパケットの送信速度を速くするようにＡＳＲ／ＳＡＳＴ６００Ａのクロックスピードが加速される。一方、ネットワークフレームバッファ７３０がアンダーフローし始めるとき、ＡＳＲ／ＡＳＴ６００Ａのクロックスピードは減速され、ＡＳＲ／ＡＳＴ６００Ａからのトランスポートパケットの送信速度が減速される。
【００７９】
１つの好ましい実施形態では、トランスポートストリームＩ／Ｏデバイス６０８はＪ−Ｉバッファされるデバイスであり、ここでＪはバッファの数であり、Ｉは１バッファ当たりのトランスポートパケットの数である。Ｊ−Ｉバッファ出力デバイスに対し、トランスポートストリームＩ／Ｏデヴァイス６０８が、構成メッセージ３１０を用いて構成７１０が初期化する初期化ビットレートでトランスポートパケットの出力を開始するようにトリガされる前に、ＪのバッファがＩ個のトランスポートパケット２０４で満たされる。例えば、トランスポートストリームＩ／Ｏデバイス６０８が１バッファ当たり１Ｋのトランスポートパケットを有するダブルバッファデバイス（ｄｏｕｂｌｅ−ｂｕｆｆｅｒｅｄ  ｄｅｖｉｃｅ）（２−１Ｋデバイス）である場合には、デバイスが出力するようトリガされる前に、出力が、２Ｘ１Ｋ＝２０４８のトランスポートパケットで満たされる。
【００８０】
トランスポートストリームＩ／Ｏデバイス６０８がトランスポートパケット２０４を出力するようにトリガされる前に、ネットワークフレームバッファ７３０は、特定のレベルに（なるように前もって）準備される。ＪＸＩ＋ＬのトランスポートパケットがＪ−Ｉ出力デバイスに転送される前に、ネットワークフレームバッファ７３０がこれらのパケットで満たされる。このことは、トランスポートストリームＩ／Ｏデバイス６０８が出力をトリガされるとき、ネットワークフレームバッファ７３０がＬのトランスポートパケットを含む結果となる。
【００８１】
ＡＳＲ／ＡＳＴ６００Ａは単にトランスポートストリーム１３６を送り出すだけなので、ただクロックの同期化の結果だけが、ネットワークフレームバッファ７３０がオーバーフローしないまたはアンダーフローしないことを保証する。この場合に限り、ＡＳＲ／ＡＳＴ６００ＡはＭＰＥＧ−２のトランスポートストリームを送り出す機能を実行し得る。トランスポートストリーム１３６のビットレートの正確さはＡＳＲ／ＡＳＴの６００Ａローカルクロックの正確さのスペックによって左右される。例えば、ＭＰＥＧ−２は０．０７５Ｈｚ／秒のドリフト速度を有する２７ＭＨｚ±８１０Ｈｚ（３０ｐｐｍ）のローカルクロックを特定する。ＡＳＲ／ＡＳＴの６００ＡローカルクロックはＡＳＲ／ＡＳＴ６００Ｂのローカルクロックともエンコーダ１２０のローカルクロックとも同期化されず、自由継続操作のままにおかれる場合、ネットワークフレームバッファ７３０は、最終的にオーバーフローまたはアンダーフローする。ネットワークフレームバッファ７３０のオーバーフローおよび／またはアンダーフローを回避するために以下のアプローチが取られる。（１）ネットワークフレームバッファ７３０の平均バッファレベルを計算する、（２）ネットワークフレームバッファ７３０のレベルの平均が変化するとき（増加または減少のいずれか）をＭのトランスポートパケットによって検出する、（ｃ）ネットワークフレームバッファ７３０のバッファレベルを回復するためにＡＳＲ／ＡＳＴ６００Ａのローカルクロックを調整する。
【００８２】
既に説明したように、ネットワークフレームバッファ７３０の充填およびトランスポートストリームＩ／Ｏデバイス６０８の最初の出力の後、ネットワークフレームバッファ７３０は初期レベルのＬトランスポートパケットを含む。ＡＳＲ／ＡＳＴ６００ＡのローカルクロックがＡＳＲ／ＡＳＴ６００Ｂのクロックより速く進む場合は、ネットワークフレームバッファ７３０の平均バッファレベルは時間と一緒に低下する。
【００８３】
ネットワークフレームバッファ７３０の瞬時バッファレベルは、いくらかはＢＤＮを介して受け取られるネットワークフレームの到着時間におけるジッタのために、いくらかはバッファされるトランスポートストリームＩ／Ｏデバイス６０８の出力のために、かなりの分散を有する。１つの実施形態では、トランスポートストリームＩ／Ｏデバイス６０８が出力バッファ７３２から複数のトランスポートパケットを１度に受け取りかつバッファし、そのことが以下に説明するように、鋸歯パターンに従ったネットワークフレームバッファ７３０のバッファレベルを生じることとなる。一旦、出力バッファ７３２が埋められると、プロセッサ６０２は、トランスポートストリームＩ／Ｏデバイス６０８が出力バッファ７３２の内容を受けつけ得るまで、つまり、ソフトウェアタスクの「ブロック」まで処理を停止する。この間、ディインターリーババッファ７２６はネットワークフレーム１２８のストリームからのネットワークフレーム２０２で満たされ続ける
トランスポートストリームＩ／Ｏデバイス６０８が出力バッファ７３２の内容を受けつけると、プロセッサ６０２は、ディインターリーババッファ７２６の中のインターリーバが解除された（ディインターリーブされた）ネットワークフレームをそっくりＦＥＣバッファ７２８に空ける。ＦＥＣバッファ７２８の中のネットワークフレーム２０４のすべてがＦＥＣデコードされ、ネットワークフレームバッファ７３０の中に置かれる。
【００８４】
ネットワークフレームバッファ７３０は、ネットワークフレーム２０２がＡＳＲ／ＡＳＴ６００Ｂによって「プッシュ」されかつＡＳＲ／ＡＳＴ６００ＡのトランスポートストリームＩ／Ｏデバイス６０８によって「プル」される、中間のバッファを表す。ＡＳＲ／ＡＳＴ６００ＡのクロックとＡＳＲ／ＡＳＴ６００Ｂのクロックとの間の関連するドリフトは経時的にネットワークフレームバッファ７３０の平均レベルにおける差を検出することによって予測される。ネットワークフレームバッファ７３０のバッファレベルは鋸歯状パターンに従うので、平均バッファレベルの決定に及ぼす鋸歯状パターンの影響を除去するように、バッファの瞬時レベルは鋸歯状パターンの同じポイントで計測される必要がある。出力バッファ７３２の内容がトランスポートストリームＩ／Ｏデバイス６０８によって受け付けられかつＦＥＣバッファ７２８がネットワークフレームバッファ７３０に空けられた後、ネットワークフレームバッファ７３０のレベルが直接サンプリングされる場合、これは、鋸歯状パターン曲線の既知のポイントを表す。数秒の期間のネットワークフレームバッファ７３０のバッファレベルの変動する平均は、ほんのいくつかのトランスポートパケットの変動を有する平均を生じる。
【００８５】
明確さのために、発明者らはネットワークフレームバッファ７３０の平均バッファレベルをＭＬ（ｔ）としてあらわし、かつ発明者らはＡＳＲ／ＡＳＴ６００ＡおよびＡＳＲ／ＡＳＴ６００Ｂのローカルクロックの周波数をそれぞれｆｒ（ｔ）およびｆｔ（ｔ）と表す。
【００８６】
すべてのｔに対し、ｆｒ（ｔ）＝ｆｔ（ｔ）である場合、つまり、ＡＳＲ／ＡＳＴ６００ＡおよびＡＳＲ／ＡＳＴ６００Ｂのローカルクロックがロックされている場合は、プッシュレートおよびプルレートが同期化されているので、ＭＬ（ｔ）は時間に対し一定である。しかし、クロックが同期化されない場合は、ＭＬ（ｔ）は時間に対して変化する。
【００８７】
発明者らは、閾値をＮｔと規定し、（例えば、仮に）ＡＢＳ（ＭＬ（ｔ２）−ＭＬ（ｔ１））≧Ｎｔであり、ここでＡＳＢ（ｘ）が絶対値ｘをとる場合、発明者らはＡＳＲ／ＡＳＴ６００Ａのローカルクロックを調整する。この閾値はＮｔのトランスポートパケットによってネットワークフレームバッファ７３０のレベルが上下することを表す。レベルの差が検出される時間の期間は
ΔＴ＝ｔ２−ｔ１
として与えられる。
【００８８】
時間の差から、ＡＳＲ／ＡＳＴ６００Ａのローカルクロックの標準相対周波数は、
Δｆ（ｔ２）＝（ｔｐ／ΔＴ）＊ｓｉｇｎ（ＭＬ（ｔ２）−ＭＬ（ｔ１））  式（１）
として予測され、ここでＴｐは特定のビットレートを有するトランスポートストリームのＮｔのトランスポートパケットの送信に要した時間の量である。したがって、ｔｐは既知の定数であり、ｓｉｇｎ（）は、因数がプラスであるかマイナスであるかに応じてそれぞれ、＋１または−１のいずれかを返す。したがって、例えば、ネットワークフレームバッファ７３０の平均バッファレベルがＮｔのパケットによって低下する場合、Δｆはマイナスである。
【００８９】
式（１）に従って、ＡＳＲ／ＡＳＴ６００Ａの標準相対周波数が予測された後、ＡＳＲ／ＡＳＴ６００Ａのローカルクロックが以下のように更新される。
【００９０】
Ｆｒ（ｔ）＝Ｆｒ（ｔ）＋Δｆ（ｔ２）Ｘ  Ｆｒｅｆ＋ＢＩＡＳ  Ｘ  ［ＭＬ（ｔ２）−ＭＬ（０）］        式（２）
ここでＢＩＡＳは、例えば５Ｈｚの調整可能な一定周波数と等しく、Ｆｒｅｆは周期におけるローカルクロックの１秒当たりの基準周波数と等しい。例えば、ＭＰＥＧ−２によって特定される基準周波数は２７ＭＨｚ±８１０Ｈｚである。
【００９１】
なお、式（２）の中の項［ＭＬ（ｔ２）−ＭＬ（０）］は、最初の平均が出されてから蓄積されたネットワークフレームバッファ７３０の、平均レベルにおけるトランスポートパケットの増加／減少の合計を表す。式（２）の項Δｆ（ｔ２）Ｘ  ＦｒｅｆはＡＳＲ／ＡＳＴ６００のクロックの相対ドリフトをゼロにする働きをし、一方、項ＢＩＡＳ  Ｘ  ［ＭＬ（ｔ２）−ＭＬ（０）］は時間ｔ２までの時間の期間にわたってドリフトした後、ネットワークフレームバッファ７３０をその本来の平均レベルに修復する働きをする。例えば、Δｆ（ｔ２）がゼロの場合、ＡＳＲ／ＡＳＴｓ６００のクロックの相対周波数は等しいことを示すが、［ＭＬ（ｔ２）−ＭＬ（０）］が−１０に等しい場合は、ＡＳＲ／ＡＳＴ６００Ａのローカルクロックの周波数は、−１０Ｘ  ＢＩＡＳによって調整され、そのことが、ＡＳＲ／ＡＳＴ６００Ａにより遅いストリームを送り出させ、ネットワークフレームの蓄積された−１０のドリフトが０に移動することを可能とする。
【００９２】
式（２）をＡＳＲ／ＡＳＴ６００Ａのローカルクロックへの適用は、０．０７５Ｈｚ／秒のクロックドリフトにおけるＭＰＥＧ−２のスペックを確認するステップにおいて達成される。式（２）の調整が達成されるまで、周波数は、各秒ごとに０．０７５Ｈｚ上下させて調整される。
【００９３】
あるいは、トランスポートストリームＩ／Ｏデバイス６０８が微細な変化をその内部クロックに提供しないが、その出力ビットレートに微細な変化を提供する場合、同じ目的を達成するために、内部クロックを調整するかわりに出力ビットレートが調整され得る。
【００９４】
上述の本発明の実施形態は、特に任意の「好ましい」実施形態は、単に実行が可能な例であり、単に本発明の原理の明確な理解のために説明されることが強調される。上述の本発明の実施形態に対し、本発明の意図および原則から実質的に逸脱することなく、多くの変更および改変がなされ得る。そのような改変および変更はすべて、本明細書において本開示および本発明の範囲内に含まれ、添付の請求項によって保護されることが意図される。
【００９５】
本発明を以上のように説明してきたが、少なくとも添付する請求項が請求される。
【図面の簡単な説明】
【００９６】
【図１】図１は、本発明の好ましい実施形態が採用され得る加入者テレビシステムなどの広帯域通信システムのブロック図である。
【図２】図２は、ＭＰＥＧトランスポートストリームのブロック図である。
【図３Ａ】図３Ａは、ＡＳＴによって生成されるメッセージのブロック図である。
【図３Ｂ】図３Ｂは、ＡＳＴによって生成されるメッセージのブロック図である。
【図３Ｃ】図３Ｃは、ＡＳＴによって生成されるメッセージのブロック図である。
【図４】図４は、トランスポートストリームのトランスポートパケットセットのブロック図である。
【図５Ａ】図５Ａは、図４のトランスポートパケットセットの一部分を運ぶメッセージのブロック図である。
【図５Ｂ】図５Ｂは、図４のトランスポートパケットセットの一部分を運ぶメッセージのブロック図である。
【図６】図６は、ＡＳＴのコンポーネントのブロック図である。
【図７】図７は、ＡＳＲおよびＡＳＴのコンポーネントのブロック図である。
【図８】図８は、フォワードエラーコレクタモジュールによって実行されるロジックのためのフローチャートである。
【図９】図９は、インタリーババッファにおけるネットワークフレームのバッファを表すブロック図である。
【図１０】図１０は、フォワードエラーコレクタモジュールによって実行されるロジックのためのフローチャートである。
【図１】
2005515663.tif 000003
【図２】
2005515663.tif 000004
【図３Ａ】
2005515663.tif 000005
【図３Ｂ】
2005515663.tif 000006
【図３Ｃ】
2005515663.tif 000007
【図４】
2005515663.tif 000008
【図５Ａ】
2005515663.tif 000009
【図５Ｂ】
2005515663.tif 000010
【図６】
2005515663.tif 000011
【図７】
2005515663.tif 000012
【図８】
2005515663.tif 000013
【図９】
2005515663.tif 000014
【図１０】
2005515663.tif 000015
【国際調査報告】
2005515663.tif 000016