(57)【特許請求の範囲】
【請求項１】
各パケットが１つ又は複数のパケットに共通な識別子を有し、情報の複数のパケットを含むデジタルデータストリームを受信するための手段と、
受信したデジタルデータストリームから選択されるべき指定されているパケットのリストを記憶するための手段とを含み、前記リストが、各パケットに割り当てられている優先順位を示す優先順位情報を含み、
受信データストリームから前記リストに指定されているパケットを抽出するための手段と、
出力データストリームを生成するために抽出されたパケットを処理すると共に、出力データストリーム内に、さらに低い優先順位が設定されている抽出パケットに優先してさらに高い優先順位が設定されている抽出パケットを含むことによって出力データストリーム内の抽出されたパケットの数を選択的に削減するための処理手段と、
を備えることを特徴とするデジタルデータストリームを処理するための装置。
【請求項２】
アプリケーションの制御のもとで、デバイスマネージャを介して動作するように構成されている受信機／デコーダ内のデバイスという形での請求項１記載の装置。
【請求項３】
複数の情報のパケットを含むデジタルデータストリームを受信する工程であって、各パケットが１つ又は複数のパケットに共通な識別子を有し、
受信されたデジタルデータストリームから選択されるべき指定パケットのリストを記憶する工程であって、前記リストが各パケット識別子に割り当てられている優先順位を示す優先順位情報を含み、
受信データストリームから前記リストに指定されているパケットを抽出する工程と、
出力データストリームを生成するために抽出パケットを処理する工程と、
出力データストリーム内に、さらに低い優先順位が設定されている抽出パケットに優先してさらに高い優先順位が設定されている抽出パケットを含むことによって出力データストリーム内の抽出されたパケットの数を選択的に削減するための工程と、
を含むことを特徴とするデジタルデータストリームを処理する方法。
【発明の詳細な説明】
【０００１】
本発明は、特に、独占的ではないが、デジタルテレビシステム用受信機／デコーダに関して、アプリケーションプログラムを物理デバイスにインターフェースすることに関する。
【０００２】
デジタルトランスミッションシステムの出現により、異なる目的のためにこのようなシステムを使用する可能性を広げている。これらの一つは、エンドユーザーに対話形式を提供することである。ここに用いられているように、「デジタルトランスミッションシステム」という用語は、例えば主に視聴覚、またはマルチメディアデジタルデータを送信したり、またはブロードキャストするためのあらゆるトランスミッションシステムを含む。本発明は、特に、ブロードキャストデジタルテレビシステムに適用可能であると同時に、本発明は、さらに、マルチメディアインターネットアプリケーションのための固定通信ネットワークや閉回路テレビなどにも適用可能である。ここに用いられているように、「デジタルテレビシステム」という用語は、あらゆるサテライト、地上、ケーブル、およびその他のシステムなどを含む。
【０００３】
本発明は、受信信号が受信機を通して受信機／デコーダに渡され、それから、テレビ受像機へと渡されるブロードキャストデジタルテレビシステム用のアプリケーションを見出している。ここに用いられている「受信機／デコーダ」という用語は、例えば、別の手段によってブロードキャストされるか、または送信されるテレビおよび／または無線信号のコード化された、またはコード化されない信号のいずれかを受信する受信機を意味する。この用語は、受信信号をデコードするデコーダを意味することもある。このような受信機／デコーダの実施の形態は、物理的に分離した受信機と連携動作して機能するデコーダ、またはウェブブラウザやビデオレコーダ、テレビなどの追加の機能を備えるデコーダのような、例えば、「セットトップボックス」の受信信号をデコードする受信機と一体化するデコーダを含む場合もある。
【０００４】
受信機／デコーダは、圧縮ＭＰＥＧタイプ信号をテレビ用テレビ信号にデコードする。それは、セットトップボックスまたはＳＴＢとして知られている受信機／デコーダのインターフェースを通して、リモートコントローラハンドセットによって制御される。ＭＰＥＧという用語は、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄs  Ｏｒｇａｎｉｚａｔｉｏｎ（インターナショナル  スタンダード  オーガナイゼーション）ワーキンググループの「Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ（モーション  ピクチャ  エクスパート  グループ）」によって開発されたデータトランスミッション標準方式に関連し、特に独占的ではないが、デジタルテレビアプリケーションのために開発されたＭＰＥＧ−２標準方式に関連し、ＩＳＯ  １３８１８−１やＩＳＯ  １３８１８−２、ＩＳＯ  １３８１８−３、およびＩＳＯ  １３８１８−４などの書類に述べられている。本特許出願の文脈において、用語は、デジタルデータトランスミッションの分野に適用可能であるＭＰＥＧフォーマットのあらゆる変形や変更、開発を含む。
【０００５】
上述の対話形式を提供する一つの方法は、テレビ信号が受信される受信機／デコーダにアプリケーションを実行することである。種々のアプリケーションが透過的方法で種々の物理デバイスと通信できることが望ましい。われわれの係属出願のＰＣＴ／ＥＰ９７／０２１１５およびＰＣＴ／ＥＰ９７／０２１１６には、一つ以上のアプリケーションが、受信機／デコーダによってダウンロードされることが可能であり、かつ各デバイスおよび総合デバイスマネージャ用デバイスドライバによって、パラレルインターフェースおよびシリアルインターフェース、またスマートカードなどの受信機／デコーダの物理デバイスと通信可能であるシステムについて記述している。ここに用いられているように、「スマートカード」という用語は、そのように独占的でなく、あらゆるチップベースのカードデバイス、または、例えば、マイクロプロセッサおよび／またはメモリ記憶などを処理する同様の機能および性能のオブジェクトを含む。この用語には、カードに他の物理フォームを有するデバイス、例えば、ＴＶデコーダシステムに使用されることが多いキー形状デバイスが含まれている。
【０００６】
本発明により、受信データストリームからデジタル出力ストリームを供給する、例えば、デジタルビデオレコーダを使用して、受信プログラムおよびデータのデジタル記憶を可能にしたり、あるいは、例えば、ＴＣＰ／ＩＰネットワークによって他のデバイスとのデータ通信を促進するなどのセットトップボックスの可能性を提供することが提案されている。
【０００７】
このようなデジタル出力ストリームを供給することに伴う問題は、受信データストリームが、一般にかなり高いビットレートでのＭＰＥＧデータを含み、かつ完全受信データストリームを格納することが非実用的なことである。さらに、受信データストリームは、視聴者に重要でない情報を多く含んでいる。受信機／デコーダは、従来のアナログビデオレコーダを介して、レコードされることが可能であるアナログディスプレイのためのシングルチャネルを提供するために、受信データストリームの一部分をデマルチプレクシングし、また必要な場合、デスクランブリングする装置を含んでいる。しかし、従来の装置は、順応性に欠け、デジタル記憶に適するデータストリームを供給することができない。
【０００８】
本発明の態様は、デジタルビデオレコーダに記憶するのに適するデジタルデータストリームを供給する新規テクニックを提案している。本発明は、デジタルビデオレコーダへのトランスミッションに適当な出力ストリームを生成するために、若干のテレビプログラムと、受信機／デコーダ（ケーブルまたはさらに好ましくはサテライト用）によって受信されるその他のデータを含むＭＰＥＧデータストリームを処理するのにきわめて有利であることを提示しているが、本発明が、その他のデータストリームを処理するのに適用されることが可能であり、かつデジタルビデオのリアルタイム編集を提供することが可能であることは本発明者によって明白にされた。
【０００９】
第一の態様において、本発明は、
情報の複数のパケットを含むデジタルデータストリームを受信する手段と、
受信デジタルデータストリームから選択される指定されているパケットのリストを格納する手段と、前記リストが、各パケットに割り当てられる優先順位を表示する優先順位情報を含み、
受信データストリームから前記リストに指定されるパケットを抽出する手段と、
出力データストリームを生成するために抽出パケットを処理し、かつ低い優先順位を有する抽出パケットに優先して、出力データストリームに高い優先順位を有する抽出パケットを含むことによって出力データストリームの抽出パケットの数を選択的に削減する処理手段と、
を備えるデジタルデータストリームを処理する装置を提供する。
【００１０】
本発明のこの態様は、
複数の情報のパケットを含むデジタルデータストリームを受信することと、
受信デジタルデータストリームから選択される指定されているパケットのリストを格納することと、前記リストが、各パケットに割り当てられる優先順位を表示する優先順位情報を含み、
受信データストリームから前記リストに指定されるパケットを抽出することと、
出力データストリームを生成するために抽出パケットを処理することと、
低い優先順位を有する抽出パケットに優先して、出力データストリームに高い優先順位を有する抽出パケットを含むことによって出力データストリームの抽出パケットの数を選択的に削減することと、
を備えるデジタルデータストリームを処理する方法にまで及んでいる。
【００１１】
このように、本発明のこの態様にあっては、指定されているパケットは、受信データストリーム（オリジナルトランスポートストリームと呼ばれる場合もある）と、例えば、抽出されて、出力データストリームにコンパイルされる重要性のある一つ以上のプログラムに対応する選択された部分（部分トランスポートストリームと呼ばれる場合もある）とから直接に抽出されることが可能である。
【００１２】
装置が、変化しないいくつかのチャネル用データを含むオリジナルトランスポートストリームをコピーしたり、またはデータの個々のパケットを選択したりするために単に用いられる場合、装置はかなりの順応性を提示することは明白であろう。
【００１３】
リストが、各パケットに割り当てられる優先順位を表示する優先順位情報を含むとき、例えば、重要性の少ないプログラムと関連するさほど重要でない情報は、放棄されることが可能であり、そのプログラムの品質を悪化させることになり、同時に、別のプログラムがさらに確実にレコードされる。
【００１４】
一つの実施の形態において、処理手段は、含まれる抽出パケットの数が出力ストリームのデータハンドリング能力に対して多すぎる場合、出力データストリームの抽出パケットの数を選択的に削減するのに適している。パケットは、いくつかの理由により排除される場合がある。例えば、パケットが出力される記憶媒体のデータハンドリング能力に対して、または出力データストリームを受信するデバイスまたは出力ポートのデータハンドリング能力に対して、パケットの数が多すぎる場合、パケットは排除される場合がある。
【００１５】
処理手段は、例えば、出力データストリームのデータハンドリング能力が増大する場合、排除された抽出パケットを出力データストリームに選択的に再挿入されるのに適している。
【００１６】
パケットは、一般に、複数のセクションを備えている。抽出セクションを処理する手段は、カプセルに封じる若干のオペレーションの一つ、または適当なフォーマットでＭＰＥＧセクションに受信されるパッケージを実行できることが好ましい。簡単な実施の形態において、抽出セクションを処理することにより、オンワードトランスミッションのための「未使用」データを抽出するために、好ましくは、始めか、または終りに、例えば、セグメントの部分を削除することによって、ＭＰＥＧヘッダ情報、または他のデータをセクションからストリップすることを簡単に備えている。このような場合、通信プロトコル特定ヘッダなどの追加は、例えば、既製のＴＣＰ／ＩＰパケットを送信することによって、送信エンドで実行される必要がある。
【００１７】
抽出セクションを処理する手段は、受信データストリームの通信プロトコルよりほかの通信プロトコルに適合するデータストリームを供給するために、少なくとも一つのヘッダおよびフッタを、好ましくは、両方を、受信セクションに追加する手段を備えることが好ましい。セクション処理手段は、フレームチェックシーケンスをデータに追加する手段を備えている。このような特徴を含むことにより、トランスミッタで要求される処理の量と、送信される必要のあるデータの量とを減少する。さらに、通信プロトコルは、受信機／デコーダで変化されることが可能である。
【００１８】
おのおのの場合、受信デジタルデータストリームは、それぞれのパケットの識別子（ＰＩＤｓとも呼ばれる）を有する一続きのパケットを含むＭＰＥＧデータストリーム（それによって基本のＭＰＥＧフォーマット、好ましくはＭＰＥＧ−２のデータストリームのあらゆる変形や変更、開発などをすることになっている）であることが好ましい。
【００１９】
特に（独占的ではないが）、リストは、受信データストリームから選択されるパケット識別子のリストを含むことが好ましい。
【００２０】
特に（独占的ではないが）、リストが、セクションのリストを含む場合、各セクションは、セクションの指定フィールドの数値により識別される。セクションは、識別されたポイント、好ましくは、セクションのスタートからビットの第二の予め定められた番号のオフセットに、ビットの第一のあらかじめ定められた番号のフィールドを形成することによって指定されることが好ましい。
【００２１】
装置は、受信されたセクションの識別子をログする手段を備えている。ログ手段は、ビットマップを形成する手段と、このビットマップの各ビットは受信されるか、または受信される予定であるセクションに対応し、またそのセクションの受信を知らせるために受信されたセクションに対応するビットのステートを変更する手段とを備えている。
【００２２】
装置は、パケット識別子の少なくとも一つの別のリストを格納し、かつ例えば、デスクランブルするなどの一つ以上の指定処理オペレーションを、出力データストリームに包含するに先だって、リストまたは各別のリストに指定されるパケットに付与する手段を備えることが好ましい。これにより、例えば、スクランブルされたプログラムをデスクランブルさせるか、またはデスクランブルされたフォームで格納させる。
【００２３】
装置は、さらに、例えば、パケットなどの別のデータを出力データストリームに挿入する手段を備えることが好ましい。装置は、アプリケーションから別のデータを受信するように配置されることが好ましい。これにより、例えば、出力データストリームに含まれるプログラムを識別する情報などの他の情報を格納させることを可能にし、またはオリジナルトランスポートストリームを受信するアプリケーションによって生成される他のデータを格納させることを可能にする。
【００２４】
装置は、例えば、われわれの係属出願であるＰＣＴ／ＥＰ９７／０２１０６−０２１１７に記述されているようなデジタルサテライトシステム用受信機／デコーダにおけるデバイスとしてさらに実行されることが好ましい。そのような実行において、デバイスは、出力データストリームの構成を制御するために重宝で、かつ順応性のある配置を供給するデバイスマネージャを介してアプリケーションの制御のもとで動作可能である。デバイスは、われわれの欧州特許出願番号９７４０１７９３．１に記述されているが、あらゆる適当なデジタルインターフェースと共に使用されることが可能であるような適当なデバイスドライバを使用するＩＥＥＥ１３９４インターフェースなどの高速デジタルインターフェースを使用してデジタルビデオレコーダと通信するように配置されることが好ましい。
【００２５】
装置は、ＴＣＰ／ＩＰデータストリームをコンピュータに供給するために、ブロードキャストＭＰＥＧパケットを受信し、かつパケットをパケット化することによって、コンピュータに仮想のＴＣＰ／ＩＰ結合を供給するように配置される。このような場合、通信は、シリアルまたはパラレルポートを、好ましくは、拡張または双方向性パラレルポートを媒介とする。
【００２６】
この第三の態様において、本発明は、出力ストリームを生成するために、受信デジタルデータストリームを処理するアプリケーションの制御のもとで動作するデバイスを提供し、このデバイスは、
情報の複数のパケットを含むデジタルデータストリームを受信する手段と、
受信デジタルデータストリームから選択される指定されているパケットのリストをコンパイルするアプリケーション情報を受信する手段と、前記リストが、各パケットに割り当てられる優先順位を表示する優先順位情報を含み、
受信データストリームから前記リストに指定されるパケットを抽出する手段と、
出力データストリームを生成するために抽出パケットを処理し、かつ低い優先順位を有する抽出パケットに優先して、出力データストリームに高い優先順位を有する抽出パケットを含むことによって出力データストリームの抽出パケットの数を選択的に削減する処理手段と、
を備えている。
【００２７】
デバイスは、出力ストリームが生成されない休止モードと、データがデバイスを通過する実行モードとの二つのモードの一つで動作されることが好ましい。出力ストリームの生成は、含有のためのノー・パケットを指定することによって簡単にストップされることが可能であるが、休止モードの供給により、システムリソースをさらに効率的に使用させる。デバイスは、さらに、出力ストリーム生成をスタートおよびストップする（モード同士間をスイッチするために）アプリケーションからコマンドを受信する手段を備えることが好ましい。
【００２８】
前記休止モードにおいて、デバイスは、出力ストリームにコピーされる全てのパケット識別子の初期リストの形態に前記リストをコンパイルする情報を受信するように配置されることが好ましい。これにより、初期リストを効率的にセットさせる。その後、実行モードにおいて、デバイスは、現在のリストに追加されたり、または現在のリストから削除されるパケット識別子のリストを受信するように配置されることが好ましい。このように、リストを更新するために、だんだん長くなるリストをハンドルし、また以前の全パケット識別子のトラックを保持する必要がない；これにより、実行モード処理が、休止モード処理よりさらに時間クリティカルであるとき、特に有利である。
【００２９】
休止モードにコピーされるパケット識別子のリストの初期格納、そして実行モードへのエントリの追加また削除に関する同様な方法において、デバイスは、好ましくは、ディスプレイ用プログラムをデスクランブルするのに使用される受信機／デコーダのデスクランブリング手段によって、デスクランブルされるパケット識別子の別のリストを維持するように配置されることが好ましい。さらに、デバイスは、好ましくは、デスクランブルされるパケット識別子の初期リストをセットする手順の一部として、アプリケーションからスクランブルするのに使用する情報を受信するように配置されることが好ましい。
【００３０】
デバイスは、さらに、アプリケーションによって挿入されるＭＰＥＧセクションのリストを格納する手段を備えることが好ましい。デバイスは、出力ストリームのセクションのリピートを制御するアプリケーションからパラメータを受信するように配置されることが好ましく、かつデバイスは、このパラメータに基づいてセクションをリピートするように配置されることが好ましい。これにより、アプリケーションから比較的少量の入力を有する複雑なデータストリームを生成させる。例えば、アプリケーションは、出力ストリームに含まれるプログラムを識別するセクションを挿入するために単純コマンドを送信可能であり、またこれは、規則的な間隔でデバイスにより出力ストリームに自動的に挿入されることが可能である。
【００３１】
デバイスは、出力ストリームに含まれる現在選択されたパケット識別子に関するアプリケーション情報にリターンする手段を備えることが好ましい。
【００３２】
デバイスの機能は、ハードウェアで、例えば、専用の集積回路で実行されてもよい、これにより、オペレーションの拡張速度が得られる。しかし、少なくともいくつかのデバイスドライバは、ソフトウェアで実行されることが好ましく、アプリケーションを実行する処理手段によって実行されることが好ましい；これにより、順応性をさらに高め、コンポーネントの必要性を少なくし、デバイスドライバをさらに容易に更新させる。
【００３３】
第四の態様において、本発明は、
少なくとも一つのアプリケーションを実行するランタイムエンジン手段と、
ブロードキャストデジタルデータストリームを受信する手段と、
アプリケーションまたは各アプリケーションの制御のもとで受信デジタルデータストリームを処理する、好ましくは、上記に定義されるようなデバイスと、
デバイスによって出力されるデータストリームを出力インターフェースに供給する手段と、
を備えるデータ処理システムを提供する。
【００３４】
第一と第二の態様の好ましい特徴は、第三と第四の態様に適用される。
【００３５】
データ処理システムは、サテライト受信機またはケーブルからのブロードキャストデジタルデータストリームやデジタルビデオレコーダ（この用語は、データが実際に格納される物理媒体に関係なく、テレビプログラム用データを格納可能なあらゆる適当に構成されたデジタル記憶デバイスを備えることを含んでいる）に結合されるように配置されるインターフェース、受信データの少なくとも一部分のディスプレイまたは記憶のためのデジタルディスプレイデバイスまたはコンピュータなどを受信する手段を備える受信機／デコーダ（例えば、セットトップボックス）で実行されることが好ましい。デバイスは、高速（１００キロビット／秒以上、好ましくは、少なくとも１メガビット／秒、１０メガビット／秒またはそれ以上）デジタルインターフェースにまで出力データストリームを出力するデバイスドライバと連携動作するように配置されることが好ましい。
【００３６】
インターフェースは、ＩＥＥＥ１３９４標準方式、その変形またはその変更に従うことが好ましい。
【００３７】
システムが、デジタルビデオレコーダに結合するように配置される受信機／デコーダで実行される所に、受信機／レコーダが、デジタルビデオレコーダに出力するための二つ以上のテレビプログラムを含む受信データストリームの部分（パケットまたはセクション）を選択するために、デバイスを制御するように配置されるアプリケーションを含むことが好ましく、またプログラムを識別する出力データストリームに情報を追加する手段を備えることが好ましい。このように、ユーザーは、遅い時間に見るために、レコーディングのため二つ以上のプログラムを選択してよい、これにより、従来通り、二つ以上のアナログビデオレコーダと、二つ以上の受信機／デコーダが必要となるであろう。アプリケーションは、例えば、われわれの欧州特許出願番号９７４０１７９３．１に記述されているようなビデオレコーダを制御する手段を備えてよい。その開示は、ここに参照として組み込まれている。
【００３８】
この特徴は、独立して第五の態様において提供され、第五の態様において、本発明は、ブロードキャストデジタルデータストリームを受信する手段を有する受信機／デコーダと、デジタル記憶媒体に結合されるインターフェースと、デジタル記憶媒体への供給のための出力データストリームを生成するために受信デジタルデータストリームを処理する手段とのためのアプリケーションを提供し、アプリケーションは、二つ以上のブロードキャストプログラムに対応する受信デジタルデータストリームの部分を選択するために、かつその後、プログラムをプレイバックさせることを可能にする形態で記憶のためデジタル記憶媒体にその部分を出力する手段を備え、アプリケーションは、低い優先順位を有する部分に優先してデジタル記憶媒体への出力に高い優先順位を有する受信デジタルデータストリームの部分を含むことによって出力データストリームの部分の数を選択的に削減するのに適している。
【００３９】
アプリケーションは、インタープリタ型言語で実行されることが好ましく、またデバイスドライバが、コンパイルされることが好ましい。
【００４０】
発明の実施の形態
本発明の好ましい特徴を組み込んでいる実施の形態は、添付の図面を参照にして例示によって、以下に説明される。
【００４１】
受信機／デコーダベーシック
デバイスを理解させるために、デバイスが動作する好ましいプラットフォーム、われわれのデジタルサテライト受信機／デコーダが、先ず簡単に述べられている。
【００４２】
図１を参照すると、受信機／デコーダ２０２０または実施の形態のデバイスドライバが設置される予定であるデジタル対話型テレビシステムに使用するセットトップボックスが概略的に記述されている。適当なデジタル対話型テレビシステムの詳細は、参照にしているわれわれの係属出願ＰＣＴ／ＥＰ９７／０２１０６−０２１１７に示されており、またその開示は、ここに参照として組み込まれている。参照なので、前述の明細書にさらに詳細に記述される部分は、一般に、これらの明細書に使用されている参照符号によって示されている。
【００４３】
前述の明細書にさらに詳細に記述されているように、図１を参照にすると、受信機／デコーダ２０２０は、いくつかのインターフェース、特に、ＭＰＥＧ信号フロー用チューナー４０２８と、シリアルインターフェース４０３０と、パラレルインターフェース４０３２と、システムのスマートカード形成部分用カードリーダおよびバンクカード（払込やホームバンキングなどに使用される）または別のスマートカード用カードリーダの二つのカードリーダ４０３６とを含む。受信機／デコーダは、さらに、テレビ信号プロデューサへのモデムバックチャネル４００２にインターフェース４０３４を含むので、ユーザーが、テレビ信号（プログラム）プロデューサに選好などを表示可能である。受信機は、さらに、ランタイムエンジン４００８と、デバイスマネージャ４０６８と、一つ以上のアプリケーション４０５６を実行する複数のデバイス４０６２とを備えている。
【００４４】
この明細書のために、アプリケーションは、好ましくは、受信機／デコーダ２０２０の高水準機能を制御する一つのコンピュータコードである。例えば、エンドユーザーが、テレビ２０２２のスクリーン上に示されるボタンオブジェクトにリモートコントローラの焦点を置いて、バリデーションキーを押すとき、ボタンと関連するインストラクションシーケンスが実行される。
【００４５】
対話型アプリケーションは、メニューを提案して、エンドユーザーの要求でコマンドを実行し、アプリケーションの目的に関連するデータを提供する。アプリケーションは、常駐アプリケーションであるか、すなわち、受信機／デコーダ２０２０のＲＯＭ（またはＦＬＡＳＨ、または他の不揮発性メモリ）に格納されるか、あるいは受信機／デコーダ２０２０のＲＡＭまたはＦＬＡＳＨメモリにブロードキャストされたり、ダウンロードされたりするかのいずれかである。
【００４６】
前述のアプリケーションでさらに詳細に記述されたいくつかの例のアプリケーションは：
受信機／デコーダ２０２０をＭＰＥＧ−２環境で即時に動作可能にするモジュールの適応性コレクションである初期アプリケーション（Ｉｎｉｔｉａｔｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ）。
・  ダウンロードされるか、あるいは常駐であるかのいずれかのあらゆるアプリケーションを受信機／デコーダ２０２０で実行させるスタートアップアプリケーション。
・  プログラミングについての全情報を供給する対話型アプリケーションであるプログラムガイド。
・  エンドユーザーがカレントイベントを購入することを可能にするために、デジタルＴＶブーケの各ＰＰＶチャネルで入手可能な対話型サービスであるペイパービューアプリケーション。
・  エンドユーザーがＰＣダウンロードアプリケーションを使用してコンピュータソフトウェアをダウンロードすることを可能にするＰＣダウンロードアプリケーション。
・  オンスクリーンボタンを介してエンドユーザー航行で映像の巡回ビデオブロードキャストを備えるマガジンブラウザアプリケーション
・  販売製品の申し込みを受信機／デコーダ２０２０に送信させることを可能にし、かつユーザーが購入する特定アイテムを選択することを可能にするテレショッピングアプリケーション。
【００４７】
アプリケーションは、受信機／デコーダ２０２０のメモリ記憶位置に格納されて、リソースファイルとして表わす。リソースファイルは、上記明細書にさらに詳細に記述されるように、グラフィックスオブジェクト記述ユニットファイルと、可変ブロックユニットファイルと、インストラクションシーケンスファイルと、アプリケーションファイルと、データファイルとを含む。
【００４８】
ＭＰＥＧデータストリームにおいて、各モジュールは、ＭＰＥＧテーブルのグループを含む。各ＭＰＥＧテーブルは、若干のセクションとしてフォーマットされる。ＭＰＥＧデータストリームにおいて、各セクションは、４キロバイトまでの「サイズ」を有する。シリアルおよびパラレルポートによるデータ転送について、例えば、モジュールは、同様に、テーブルと、セクションとに分割され、セクションのサイズは、転送媒体によっていろいろ変わる。
【００４９】
モジュールは、例えば、ビデオデータストリームやオーディオデータストリーム、文字放送データストリームなどのそれぞれのタイプのデータストリーム内で、一般に１８８バイトのデータパケットの形態で、ＭＰＥＧデータストリームにトランスポートされる。各パケットは、１３ビットのパケット識別子（ＰＩＤ）に先行され、パケット毎の一つのＰＩＤは、ＭＰＥＧデータストリームにトランスポートされる。プログラムマップテーブル（ＰＭＴテーブル）は、異なるデータストリームのリストを含み、そしてそれぞれのＰＩＤによる各データストリームの内容を形成する。ＰＩＤは、デバイスをデータストリームのアプリケーションの存在に変えて、ＰＩＤは、ＰＭＴテーブルを使用して識別される。
【００５０】
デコーダは、ＲＡＭボリュームと、ＦＬＡＳＨボリュームと、ＲＯＭボリュームとに分割されるメモリを含んでいるが、この物理編成は、論理編成とは異なる。
【００５１】
メモリは、さらに、様々なインターフェースと関連するメモリボリュームに分割される。一つの観点によると、メモリは、ハードウェアとは別個として見られるシステム全体をサポートするか、または含有するものとして考えられることが可能である。
【００５２】
システムは、仮想コンピュータ４００７の部分を形成するランタイムエンジン４００８に集中されると考えられることが可能である。これにより、下記で論じられる様々な中間論理ユニットを介して、一つの側（「高水準」側）と、もう一つの側（「低水準」側）とのアプリケーションを受信機／デコーダ４０６１に結合される。受信機／デコーダのハードウェアは、上述のように様々なポートまたはインターフェース（ハンドセット２０２６用インターフェース２０３０やＭＰＥＧストリームインターフェース４０２８、シリアルインターフェース４０３０、パラレルインターフェース４０３２、カードリーダ４０３６に対するインターフェース、モデムバックチャネル４００２に対するインターフェース４０３４など）を含むと考えられることが可能である。
【００５３】
図２を参照すると、様々なアプリケーション４０５６は、ユニット４００７に結合される、いくつかのより一般に使用されるアプリケーションは、４０５７で表示されるように、だいたい永久にシステムに常駐するが、その他は、例えば、ＭＰＥＧデータストリームから、または要求されるように他のポートからシステムにダウンロードされる。
【００５４】
ユニット４００７は、ランタイムエンジン４００８のほかに、ツールボックス４０５８を含むいくつかの常駐ライブラリファンクション４００６を含む。ライブラリは、エンジン４００８によって使用されるＣ言語に種々雑多なファンクションを含む。これらは、データ構造や線描写などの圧縮や拡張、比較などのデータ操作を含む。ライブラリ４００６は、さらに、ハードウェアおよびソフトウェアバージョン番号や可変ＲＡＭスペースなどの受信機／デコーダ２０２０のファームウェア４０６０についての情報と、新しいデバイス４０６２をダウンロードするときに使用されるファンクションとを含む。ファンクションは、ＦｌａｓｈまたはＲＡＭメモリに格納されるライブラリにダウンロードされることが可能である。
【００５５】
ランタイムエンジン４００８は、デバイスマネージャ４０６８に結合され、これは、デバイス４０６２のセットに結合され、これは、デバイスドライバ４０６０に結合され、順番にポートまたはインターフェースに結合される。広義では、デバイスドライバは、論理インターフェースを形成すると考えられることが可能なので、二つの異なるデバイスドライバは、コモン物理ポートに結合される場合がある。デバイスは、通常、一つ以上のデバイスドライバに結合される；デバイスが、シングルデバイスドライバに結合される場合、デバイスは、通常、通信に必要とされる完全な機能性を組み込むように設計されているので、分離デバイスドライバの必要性が、回避される。特定のデバイスがそれらの間同士で通信する。
【００５６】
後述されるように、デバイス４０６４からランタイムエンジンまで、以下の３つの形式の通信がある。つまり、変数、バッファ、およびイベント待ち行列のセットに渡されるイベントによってである。
【００５７】
受信機／デコーダ２０２０の各機能は、デバイス４０６２として表されている。デバイスは、ローカルまたはリモートのどちらかとなる場合がある。ローカルデバイス４０６４は、スマートカード、ＳＣＡＲＴコネクタ信号、モデム、シリアルインタフェースとパラレルインタフェース、ＭＰＥＧビデオ／音声プレーヤー、およびＭＰＥＧセクション／テーブル抽出装置を含む。リモートロケーションで実行されるリモートデバイス４０６６は、ポートおよびプロシジャが、受信機／デコーダ製造メーカによって提供され、設計されているデバイスおよびデバイスドライバによってよりむしろ、システム当局（ａｕｔｈｏｒｉｔｙ）または設計者によって定められなければならないという点で、ローカルデバイスとは異なる。
【００５８】
新規デバイス４０６２が作成されると、それは、ブロードキャストセンターから関連するアプリケーション４０５６をダウンロードすることによって、既存の受信機／デコーダ２０２０にインストールすることができる。このダウンロードは、ハードウェアとソフトウェアのバージョンをチェックし、正しい場合に新規デバイス４０６２を表しているソフトウェアモジュールをロードし、ライブラリ４００６のプロシジャに（フレッシュメモリ内の）ファームウェア内部に新規デバイスコードをインストールするように依頼するアプリケーション４０５６によって受信機／デコーダ２０２０内で実行される。これにより、ソフトウェアの残りに影響を及ぼさずに、受信機／デコーダ２０２０内で順応かつ安全な新規機能のインストールを実現することができる。
【００５９】
デバイスマネージャ４０６８は、アプリケーション４０５６と受信機／デコーダ２０３０の特殊機能の間の共通ソフトウェアインタフェースである。デバイスマネージャ４０６８は、デバイス４０６２へのアクセスを制御し、予期されていないイベントの受信を宣言し、共用メモリを管理する。
【００６０】
ランタイムエンジン４００８は、マイクロプロセッサおよび共通アプリケーションプログラミングインタフェースの制御のもとで実行する。それらは、すべての受信機／デコーダ２０２０が、アプリケーションの観点から同一であるようにあらゆる受信機／デコーダ２０２０にインストールされる。
【００６１】
エンジン４００８は、受信機／デコーダ２０２０でアプリケーション４０５６を実行する。それは、対話型アプリケーション４０５６を実行し、受信機／デコーダ２０２０の外部からイベントを受信し、グラフィックスおよびテキストを表示し、デバイスにサービスを要求し、特殊な計算のためにエンジン４００８に接続されているライブラリ４００６の機能を使用する。
【００６２】
ランタイムエンジン４００８は、各受信機／デコーダ２０２０にインストールされている実行可能コードであり、アプリケーションを解釈し、実行するためのインタプリタを含む。エンジン４００８は、（ＭＳ−ＤＯＳなどの）単一タスクオペレーティングシステムを含む、任意のオペレーティングシステムに適応可能である。エンジン４００８は、（多様な動作を実行するために、キープレスなどの多様なイベントを取る）プロセスシーケンサ装置に基づき、さまざまなハードウェアインタフェースからイベント待ち行列を管理するために専用のスケジューラを備える。それは、グラフィックスおよびテキストのディスプレイも処理する。プロセスシーケンサ装置は、動作グループのセットを備える。各イベントによって、プロセスシーケンサ装置は、イベントの性質に依存して、その現在の動作グループから別の動作グループに移動し、新規動作グループの動作を実行する。
【００６３】
エンジン４００８は、アプリケーション４０５６を受信機／デコーダメモリ２０２８の中にロードし、ダウンロードするためのコードローダを備える。最適使用を保証するために、必要なコードだけがＲＡＭまたはフラッシュメモリの中にロードされる。ダウンロードされたデータは、アプリケーション４０５６の修正または許可されていないアプリケーションの実行を妨げるために、認証機構により検証される。エンジン４００８は、さらに、デコンプレッサ（ｄｅｃｏｍｐｒｅｓｓｏｒ）を備える。アプリケーションコード（中間コードの１形式）は、空間の節約およびＭＰＥＧ−２トランスポートストリームからの、または内蔵受信機／デコーダモードを介する高速ダウンロードのために圧縮されているので、該コードは、ＲＡＭにロードする前に復元されなければならない。エンジン４００８は、アプリケーションコードを解釈し、多様な変数値を更新し、ステータス変化を判定するためのインタプリタ、およびエラーチェッカも備える。
【００６４】
任意のデバイス４０６２のサービスを使用する前に、（アプリケーションインストラクションシーケンスなどの）プログラムは、「クライアント」、つまりデバイス４０６２またはデバイスマネージャ４０６８への論理アクセス路として宣言されなければならない。マネージャは、クライアントに、デバイスへのすべてのアクセスで参照されるクライアント番号を与える。デバイス４０６２は、複数のクライアントを持つことができ、デバイス４０６２あたりのクライアント数は、デバイス４０６２の型に応じて指定されている。クライアントは、プロシジャ「Ｄｅｖｉｃｅ：Ｏｐｅｎ  Ｃｈａｎｎｅｌ（デバイス：チャネルを開く）」によってデバイス４０６２に導入される。このプロシジャが、クライアント番号をクライアントに割り当てる。クライアントは、プロシジャ「Ｄｅｖｉｃｅ：Ｃｌｏｓｅ  Ｃｈａｎｎｅｌ（デバイス：チャネルを閉じる）」によってデバイスマネージャ４０６８クライアントリストから取り出すことができる。
【００６５】
デバイスマネージャ４０６８によって提供されているデバイス４０６２へのアクセスは、同期または非同期のどちらかである。同期アクセスの場合、プロシジャ「Ｄｅｖｉｃｅ：Ｃａｌｌ（デバイス：呼出し）」が使用される。これは、すぐに使用できるデータにアクセスする手段、または希望されている応答を待機することを含まない機能性である。非同期アクセスの場合、プロシジャ「Ｄｅｖｉｃｅ：Ｉ／Ｏ（デバイス：Ｉ／Ｏ）」が使用される。これは、応答を待機すること、例えば、チューナー周波数を走査し、多重送信電子システムを見つけること、またはＭＰＥＧストリームからテーブルを取り戻すことを含む、データにアクセスする手段である。要求されている結果が使用できるとき、イベントはエンジンの待ち行列に入れられ、その到着を信号で知らせる。追加プロシジャ「Ｄｅｖｉｃｅ：Ｅｖｅｎｔ（デバイス：イベント）」が、予期されていないイベントを管理する手段を提供する。
【００６６】
前記に注記されるように、ランタイムエンジンのメインループは、多岐に渡るプロセスシーケンサ装置に結合され、メインループが適切なイベントに遭遇すると、制御は一時的にプロセスシーケンサ装置の１つに転送される。
【００６７】
図３を参照すると、デバイスマネージャは、一時的な格納のためにその中にデバイスからのイベントが渡される待ち行列１００を備える。適切な間隔で、仮想マシンがこの待ち行列に信号を送信し、その中から第１項目を抽出する。このイベント項目は、仮想マシンの中の待ち行列構造１０１に移動される。イベント項目の優先順位のレベルに応じて、それは５つの待ち行列０から４の内の適切な１つに挿入される。イベント項目は、待ち行列セレクタ装置１０２によって、ランタイムエンジンの制御のもとで、待ち行列構造１０１から抽出される。
イベントが待ち行列構造１０１から選択されると、それは、プロセスシーケンサ装置ドライバ１０５およびプロセスシーケンサ装置１０６のセットから成り立っているプロセスシーケンサ装置エンジン１０４に渡される。各プロセスシーケンサ装置は、まとめてリンクされている動作グループのセットであるため、１つの動作グループから次の動作グループへの各ステップは、通常、現在の動作グループおよびイベントの性質に依存している。さまざまなプロセスシーケンサ装置は、「次の」動作グループ、つまりシステムがイベントに応えて進む先の動作グループが、イベントの性質だけに依存しているが、現在の動作グループとは無関係であるものを含み、異なるサイズと複雑さを有する。また、プロセスシーケンサ装置ブロックの右側に図示されているように、例えば、単一ポートを通して同一のプロトコルを使用して複数の別個のデータストリームを処理するために、プロセスシーケンサ装置の複数のコピー、つまり複数の同一のプロセスシーケンサユニットがあってよい。
【００６８】
イベントが選択されると、それは適切なプロセスシーケンサ装置に渡される。これは、プロセスシーケンサ装置での現在の動作グループからの適切な出口を選択する。この結果、適切な次の動作グループが選択され、例えば、デバイスマネージャに対してメッセージを送信することやインストラクションシーケンスの実行を含むその動作グループの動作が実行される。プロセスシーケンサ装置の動作グループは、イベントメッセージをその他のプロセスシーケンサ装置に送信することもできる。
【００６９】
インストラクションシーケンスが選択されると、インストラクションシーケンスの識別がインストラクションシーケンスセレクタ１０７に送信される。これが、インストラクションシーケンスメモリ１０８から希望されているインストラクションシーケンスを入手し、それを、インストラクションシーケンスを実行するインストラクションシーケンスインタプリタ１０９に渡す。
【００７０】
システムは、例えば、プロセスシーケンサ装置１０６からのイベント型がロードされているフィルタ１１０も含む。イベント項目がデバイスマネージャの中の待ち行列１００から仮想マシンの待ち行列構造１０１に渡されると、その型または文字が、フィルタ１１０内のリストに突き合わされ、それが認識されていない型である場合、それは拒絶される。これにより、例えば、デバイスマネージャまたはキーボードが、仮想マシンが対処できない型のイベントを生成すると、それらのイベントが待ち行列構造１０１に渡されないことを確実にする。（この種のイベントが待ち行列構造１０１に渡されると、それらはその待ち行列構造の中に蓄積されるか、あるいはそれらはプロセスシーケンサ装置エンジン１０４の誤動作を引き起こす可能性があるかのどちらかだろう。）
したがって、私達の基本システムが、アプリケーションが多岐に渡るデバイスと通信できるようにする上でかなりの順応性を持ったプラットフォームを提供することが分かる。
【００７１】
信号処理デバイス
本発明を実現する２つの信号処理デバイスが説明されるだろう。該２つのデバイスは、ともに、同じ受信機／デコーダ内で同時に備えられてよく、各デバイスは、わずかに異なる機能を提供するように適応されている。
【００７２】
多重分離されている受信済みのトランスポートストリームを再多重化し（ｒｅｍｕｌｔｉｐｌｅｘｅｓ）、典型的には、オリジナルトランスポートストリームの中のいくらかであるがすべてではない情報、およびおそらく追加情報を含んでいる出力部分トランスポートストリームを作り出す第１の信号処理デバイスが、ここで、図４に関して説明されるだろう。参照を容易にするために、デバイスは以下でＴＳ＿ＲＥＭＵＸデバイス（トランスポートストリームＲＥ−ＭＵｌｔｉｌｅＸｅｒの省略語）として参照されるだろう。
【００７３】
ＴＳ  ＲＥＭＵＸデバイス
Ｔｓ＿Ｒｅｍｕｘデバイスは、これ以降コマンドと呼ばれている多くの機能単位を備えると考えることができる。さらに、理解されるように、該デバイスは、多様なコマンドによって実行されている機能を実際に実現するための根元的な機能性を備える。例えば、受信データストリームからの実際の選択は、データをフィルタリングし、定められているパケット識別子に一致するパケットを抽出する専用ハードウェアによって実現されてよく、パケット識別子のリストは、後述されるコマンドの内の１つを介してアプリケーションによって指定されている情報に基づきソフトウェア制御のもとで供給されている。以下の説明においては、コマンド名の大文字バージョンと小文字バージョンがともに同じコマンドを指すことが意図されることに注意する必要がある。
【００７４】
多様な機能、およびハードウェアとソフトウェア間の分散の正確な詳細は、作成者にとっての選択の問題であり、詳細には説明されないだろう。しかしながら、ＭＰＥＧデータストリームでフィルタリング動作を実行することができる専用集積回路は、市販されており、これらをハードウェアアクセラレータ用の基礎として使用することができるか、あるいはさらに好ましくは専用ハードウェアアクセラレータを作り出し、必要とされている多様なパケット選択動作を実現し、それによってソフトウェアを実行するために必要とされている処理電力を削減するために修正することができることに注意する。しかしながら、必要とされている動作は、十分な処理電力が使用できる場合にはソフトウェア内で実現されてよい。
【００７５】
デバイスは、２つのモード、つまり何の出力も作り出されていない休止モードと、データが出力データストリームに伝えられている実行モードの内の１つで動作するように装置されている。理解されるように、実行モードでは、さらに多くのシステムリソースがデバイスによって要求される。後述されているコマンドの動作は、動作のモードに依存してよく、特に、大部分のコマンドが１つのモードだけで動作し、他のモードでアクセスされるとエラーを返すだろう。
【００７６】
各コマンドは、他のデバイスに共通である、前述された３つの標準プロシジャの内の１つによってデバイスマネージャ４０６８の制御のもとでアプリケーションとインタフェースする。情報は、パラメータテーブルによってアプリケーションとデバイスの間で渡されてよい。参照を容易にするために、３つの基本的なプロシジャが以下に簡略に要約されている。
（１）Ｄｅｖｉｃｅ：Ｃａｌｌ。このコマンドは、同期コマンドまたはデータ転送を実行するためのアプリケーションによって使用することができる。アプリケーションの実行は、デバイスドライバによる動作が完了したときに制御が戻されるまで中断される。これにより、厳密な順序で実行されなければならない動作を確実に制御できるようになる。
（２）Ｄｅｖｉｃｅ：Ｉ／Ｏ。このコマンドは非同期動作を可能にする。すなわち、アプリケーションは、デバイスドライバによって実行されるデータ転送または特定の機能に対する要求を送信することができ、アプリケーションの実行は、データ転送または機能がデバイスドライバによって実行されている間に続行することができる。
（３）Ｄｅｖｉｃｅ：Ｅｖｅｎｔ。イベントトラップ機能は、イベントをデバイスによってアプリケーションに信号で知らせることを可能にし、コードとは無関係にイベントに応えてアプリケーションによって講じられる特定の処置の場合、アプリケーションは、イベントが信号で知らされるときに実行中である。実際には、アプリケーションは中断されている。イベントには、優先順位を付けてよい。イベントは、バスリセットなどのインタフェース上で発生しているイベントを信号で知らせるために、または例えば要求されているデータ転送の完了を信号で知らせることなどによって非同期コマンドの監視を提供するために使用されてよい。
【００７７】
本発明を実現しているデバイスで提供されているコマンドが、ここで説明されるだろう。各コマンドは、前記３つの標準プロシジャの内の１つを介してパラメータとしてコマンドの識別子を渡すことにより、アプリケーションによってアクセスされてよい。後述されているコマンドのすべてが提供される必要はなく、コマンドの機能は改変されてよい。理解されるように、コマンドは独立して提供されるか、改変されてよいが、説明されているコマンドによって提供されている結合された機能性から一定の共同の恩恵が生じる。
【００７８】
コマンドは、オプションの特徴および好ましい特徴とともに、各コマンドによって提供されている特徴および機能という点で説明されるだろう。情報が与えられ、仕様が提供されている場合、これらの特徴の実際のインプリメンテーションは、当業者にとって簡単でなければならず、正確な詳細は作成者に委ねられる。一例として、各コマンドは、好ましくはＣプログラミング言語で作成され、好ましくはアプリケーションを実行するために使用されているプロセッサ上で実行するようにコンパイルされているソフトウェアで実現できるだろう。しかしながら、デバイスドライバは、別個のプロセッサで実行されてよく、いくつかのコマンドまたはすべてのコマンドは、専用ハードウェアによって実現されてよい。Ｃａｌｌ（呼出し）コマンドおよび入出力（ＩＯ）コマンドは、そのアドレスがデバイスに渡される、メモリ内に記憶されているパラメータテーブルに値を設定することにより、情報を信号で知らせたり、アプリケーションにパラメータを戻してよい。
【００７９】
コマンド：ＴＳ  ＲＥＭＵＸ  ＳＥＴ  ＰＩＤ
このコマンドは、休止モードだけで動作する。図８に関して、コマンドは、パケット識別子（ＰＩＤ）２００の初期リストを受け取るように構成される。リスト２００は、入力トランスポートストリームからコピーされなければならないＰＩＤの数（ＮＢ＿ＰＩＤ）を含み、各ＰＩＤ（ＰＩＤ）の値は、入力データストリームから出力データストリームにコピーされ、優先順位値（ＰＲＩＯＲＩＴＹ）が各ＰＩＤに割り当てられている。優先順位値は、好ましくは、値０から２５５の範囲の単一バイトであり、０は優先順位の最低レベルを示し、２５５は優先順位の最高レベルを示す。
【００８０】
出力データストリームのビット伝送速度容量が、入力データストリームからコピーされる、一覧表示されているパケットのすべてを含むデータストリームのビット伝送速度より低い可能性がある。その場合、最低優先順位値が設定されているＰＩＤを有するパケットは、データストリームのビット伝送速度が、出力データストリームのビット伝送速度容量以下であるレベルに削減されるまで、出力データストリームから代わりに排除される。
【００８１】
パケットが出力データストリームから排除される場合、これらのパケットのＰＩＤ（複数の場合がある）はリスト２００から削除されていない。出力データストリームのビット伝送速度容量が、追加パケットが出力データストリームに追加できるように増加するのであれば、最高の優先順位が設定されている排除済みパケットは、出力データストリームのビット伝送速度容量に達するまで、代わりに出力データストリームの中に含まれる。
【００８２】
該コマンドは、好ましくは、Ｄｅｖｉｃｅ：Ｃａｌｌプロシジャによって同期してアクセスされる。
【００８３】
コマンド：ＴＳ  ＲＥＭＵＸ  ＳＥＴ  ＳＣＲ  ＰＩＤ
図９を参照して、このコマンドは、前述されたＳｅｔ＿ＰＩＤコマンドに類似して動作し、出力データストリームの中に入れられる前に、デスクランブルされるためのパケットのパケット識別子のリスト３００を指定するために使用される。パケット識別子（ＰＩＤ）および優先順位（ＰＲＩＯＲＩＴＹ）のリストに加えて、コマンドは、パケットをデスクランブルするために必要な情報を受信する。この情報は、各パケットで実行される処理の種類を指定するモードインジケータ（ＭＯＤＥ）、セッション番号（Ｓｅｓｓｉｏｎ番号）、およびインデックス番号（Ｉｎｄｅｘ番号）、オペレータ参照（ＯＰＩ）、デスクランブルされるパケットのＰＩＤ（ＰＩＤ）、およびデスクランブルで使用するためのＥＣＭを含むパケットのＰＩＤ（ＰＩＤ＿ＥＣＭ）を含んでよい。
【００８４】
コマンド：ＴＳ  ＲＥＭＵＸ  ＳＥＴ  ＤＡＴＡ  ＰＩＤ
このコマンドは、前述されたＳｅｔ＿ＰＩＤコマンドに類似して動作し、出力データストリームに含まれるアプリケーションからＭＰＥＧセクションのパケット識別子を指定するために使用される。
【００８５】
コマンド：ＴＳ  ＲＥＭＵＸ  ＳＥＴ  ＳＥＣＴＩＯＮ
このコマンドは、前述されたＳｅｔ＿ＰＩＤコマンドと類似して動作し、出力データストリームに含まれるＭＰＥＧセクションのパケット識別子を指定するために使用される。さらに、アプリケーションは、実行モードの開始からの遅延を指定するＯＦＦＳＥＴ、セクションが繰り返される回数を指定するＲＥＰＥＡＴパラメータ、セクションのパケット間のＤＥＬＡＹ、１つのセクションの開始から該セクションの次の繰り返しまでの時間を指定するＣＹＣＬＥパラメータ、および繰り返しの１つのシリーズの開始から繰り返しの次のシリーズの開始までの時間を指定するＣＹＣＬＥ＿２パラメータを含む、数多くのパラメータを指定することができる。これらのパラメータの機能は、図５に関してさらによく理解されるだろう。
コマンド：ＴＳ  ＲＥＭＵＸ  ＡＤＤ  ＰＩＤ
前述されたように、Ｓｅｔ＿ＰＩＤコマンドは、休止モードだけで動作する。実行モードでは、Ａｄｄ＿ＰＩＤコマンドによって、アプリケーションが、出力ストリームにコピーするために指定されているＰＩＤのカレントリストにＰＩＤを追加できるようになる。デバイスは、ＰＩＤをカレントリストから削除する補足コマンドＴｓ＿Ｒｅｍｕｘ＿Ｓｔｏｐ＿ＰＩＤを含む。ＰＩＤは、好ましくは、各コマンドの優先順位を含む、Ｓｅｔ＿ＰＩＤコマンドと同じように指定されている。リスト内のＰＩＤの編集には、デバイスが実行モードにあるときにリストを更新するのにいくらかの時間が必要になる可能性があるため、これらのコマンドは、好ましくは、Ｄｅｖｉｃｅ：Ｉ／Ｏプロシジャを介して非同期でアクセスされる。
【００８６】
さらに、アナログプロシジャが、Ｔｓ＿Ｒｅｍｕｘ＿｛Ａｄｄ；Ｓｔｏｐ｝＿｛ＳＣＲ＿ＰＩＤ；Ｄａｔａ＿ＰＩＤ；Ｓｅｃｔｉｏｎ｝コマンドによって、デスクランブルされるパケット、コピーされるセクション、または挿入されるセクションのリストに動的に追加、またはそれから削除するために提供されている。
【００８７】
休止モードから実行モードに切り替えるためには、コマンドＴｓ＿Ｒｅｍｕｘ＿Ｓｔａｒｔが提供され、実行モードから休止モードに切り替えるためには、コマンドＴｓ＿Ｒｅｍｕｘ＿Ｓｔｏｐが提供される。これらのコマンドの両方は、好ましくは、Ｄｅｖｉｃｅ：Ｉ／Ｏプロシジャを介して非同期でアクセスされる。
【００８８】
さらに、ＰＩＤに関する情報、暗号化されているＰＩＤおよびカレント出力ストリームに含まれているセクションを戻すためには、コマンドＴｓ＿Ｒｅｍｕｘ＿ＰＩＤ＿Ｉｎｆｏ、Ｔｓ＿Ｒｅｍｕｘ＿ＥＣＭ＿ＩｎｆｏおよびＴｓ＿Ｒｅｍｕｘ＿Ｉｎｆｏ＿Ｓｅｃｔｉｏｎが提供される。これらは、対応するＳｅｔコマンドまたはＡｄｄコマンドを使用してアプリケーションによって供給されるものと類似したフォーマットでカレントＰＩＤのリストを戻す。
【００８９】
アプリケーションがデバイスにコマンドを送信できるようにするコマンドに加えて、デバイスは、アプリケーションに、デバイスマネージャのイベント処理機能を介して一定のイベントを信号で知らせるように装置されている。デバイスは、以下のイベントを実現する。
【００９０】
イベント：ＥＶ  ＴＳ  ＲＥＭＵＸ  ＥＣＭ
このイベントは、ＲＳＭによるＥＣＭの拒絶を信号で知らせるために使用される。デバイスは、ＥＣＭが発見されたパケットのＰＩＤおよび拒絶されたＥＣＭを記憶しているバッファのアドレスを、ステータスワードとともに渡す。
【００９１】
イベント：ＥＶ  ＴＳ  ＲＥＭＵＸ  ＧＥＴＡＬＬ
このイベントは、ＥＣＭがＲＳＭに送信されるときのＲＳＭのアプリケーションへの応答を信号で知らせるために使用される。
【００９２】
イベント：ＥＶ  ＴＳ  ＲＥＭＵＸ  ＢＡＤ  ＮＢ
このイベントは、予期されていないセッションまたはインデックス番号が設定されているＥＣＭの受信を信号で知らせる。該ＥＣＭはＲＳＭに送信されない。
【００９３】
イベント：ＥＶ  ＴＳ  ＲＥＭＵＸ  ＳＴＲＥＡＭ
このイベントは、ＰＩＤに関連している優先順位が、出力ストリームでのＰＩＤの省略または追加を制御するために使用されてきたときに、ストリーム構成の変化を信号で知らせるために使用されている。
【００９４】
発明を実現する第２デバイスが、ここで図６および図７を参照して説明される。このデバイスはＭＣＯＭ（ＭＰＥＧ通信の省略形）と呼ばれ、おもに受信されたＭＰＥＧセクションをパケット化し、仮想ＴＣP／ＩＰデータソースをサテライトリンクから提供することを目的にしている。
【００９５】
ＭＣＯＭ  ＤＥＶＩＣＥ
ＴＳ＿ＲＥＭＵＸデバイスのようなこのデバイスは、数多くのコマンドから構成されている。コマンドの多くは、ＴＳ＿ＲＥＭＵＸデバイスのコマンドに類似した機能を実行するため、詳細には説明されないだろう。ＴＳ＿ＲＥＭＵＸデバイスのように、ＭＣＯＭでバイスは、好ましくは、実行モードまたは休止モードのどちらかで動作し、モードの間で切り替えるためのコマンドを有する。パケットを出力データストリームに追加し、それから削除するためのコマンドの代わりに、ＭＣＯＭデバイスは、入れられるセクションを選択するため、セクションの部分を削除するため（あるいは別の見方をすれば、含まれるセクションの部分を抽出するため）、および（存在する場合）ヘッダ、（存在する場合）フッタ、および（存在する場合）受信済みセクション（つまり、出力データストリームに含まれるその部分）に追加できるデータチェックを改変するためのコマンドを備える。デバイスは、任意の数のプロトコルのどれかを、実行中にアプリケーションによって必要とされている最小の対話でシミュレーションできるようにすることによって順応性を提供する。
【００９６】
デバイスは、受信されているデータで実行されるフィルタリングを定義した後に、セクションが、すべての予期されているセクションが受信されるまで、出力に従って自動的に待ち行列に入れられる自動モードで動作できる可能性がある。代わりに、デバイスは、アプリケーションの制御のもとで各セクションが転送される手動モードで動作してもよい。
【００９７】
ＭＣＯＭデバイスの記述は、ＴＳ＿ＲＥＭＵＸデバイスで特徴付けられているものとは大幅に異なるコマンドに集中するだろう。
【００９８】
コマンド：ＭＣＯＭ  ＩＮＩＴ  ＣＯＭＭ
このコマンドは、通信ポートを構成するために使用され、ポート型識別子および該ポート用の特殊データを含んでいるバッファによりＣＡＬＬされる。このコマンドは、ＭＣＯＭデバイスが、特殊情報がデバイス内で他のコマンドともに使用されることを必要としないで、多岐に渡る通信ポート（たとえば、シリアル、パラレル、ＩＥＥＥ１３９４）とともに動作できるようにするため有用である。
【００９９】
コマンド：ＭＣＯＭ  ＩＮＩＴ  ＦＩＬＴＥＲ
このコマンドは、セクション識別子が見つけられなければならないＭＰＥＧセクションの始まりからｍビットで始まるｎビットの長さの数値フィールドを定義するためにＣＡＬＬされる。
【０１００】
定義されているフィールドは、０から（２ｎ−１）という数値ｃを含むことがある。
【０１０１】
このコマンドに続いて、２ｎビットのビットマップがメモリ内で定義され、各ビットが受信するセクションに一致する。例えば、ｎ＝８の場合、２５６ビット（３２バイト）のビットマップが定義され、２５６の別々のセクションの受信にフラグを立てる。デマルチプレクサからセクションを受信中に、このフィールドの数値Cが抽出され、ビットマップの（ｃ−１）番目のビットが試験される。ビットがセットされると、そのセクションは戻される。したがって、セットビットを使用して、セクションがすでに受信されていること、または対応するセクションが予期されるべきではないセクションの自動フィルタリングを実行することができる。言うまでもなく、ビットはリセットされてよいか、あるいはセクションの受信には違う方法でフラグが立てられてよい。
【０１０２】
該コマンドを使用すると、初期ビットマップを定義できるようになる。すべてのビットが設定またはリセットされてよいか、あるいは指定されているビットマップが初期ビットマップとして設定されてよい。
【０１０３】
対応するコマンドが、例えば実行モードでフィルタを動的に変更するため、あるいはフィルタの現在の状態を調べるために提供される。
【０１０４】
ビットマップ（またはその他のフラグテーブル）は、すべての予期されているセクションが受け取られるまで、パケットが自動的に待ち行列に入れられるのを制御するために使用されてよい。
【０１０５】
このコマンドは、自動フィルタリングでデバイスによって処理することができるＭＰＥＧセクションのフォーマットに優る大きな順応性を可能とする上で有用である。
【０１０６】
コマンド：ＭＣＯＭ  ＰＡＣＫＥＴ  ＤＥＬ
このコマンドは、パケット化プロセスの一部として除去されるＭＰＥＧセクションの部分を定義するためにＣＡＬＬされる。例えば、開始オフセットｐとオフセットｑが定義されてよく、ＭＰＥＧセクションは開始からｐバイトを、終わりからｑバイトを削除することによって「トップアンドテイルド」されてよい。
【０１０７】
このコマンドおよび関連する機能性により、重要なデータを通信し、ＭＰＥＧセクションの真中に自由に配置することができるようになる。
【０１０８】
コマンド：ＭＣＯＭ  ＰＡＣＫＥＴ  ＨＥＡＤＥＲ
このコマンドは、定義されているフォーマットのヘッダを受信済みセクションに追加できるようにする。ヘッダは、例えばＴＣＰ／ＩＰなどの特定の通信プロトコルに準拠している情報を含んでよい。図7に示されるように、このコマンドは、ヘッダだけが追加されているＵＳＥ＿ＨＥＡＤＥＲモード、およびコマンドがパケット化されているパケットの長さ、例えば定義されている付加的な定数にセクションの長さを足したものに関する情報も追加するＵＳＥ＿ＬＧ＿ＨＥＡＤＥＲモードという２つのモードの内の１つで動作してよい。
【０１０９】
同様にして、デバイスは、フレームチェックシーケンス、例えば、１６ビットまたは３２ビットのＣＲＣ（サイクリック冗長性チェック）、あるいはパケットの定められているセクションに対するＬＲＣを追加するためのコマンドを含み、例えばバイトの開始オフセット番号の後に開始し、最後からバイトの終了オフセット番号まで続行し、計算された値がチェックされたセクションの直後に挿入される。
【０１１０】
また、デバイスは、文字、例えば「拡張される（ｅｓｃａｐｅｄ）」（つまり、定められている拡張文字と定義されている値を含む１組の文字によって置き換えられる）文字のリストを変換するためのコマンドも含む。
【０１１１】
前記コマンドおよびイベントは単に例示的にすぎず、本発明は多岐に渡る方法で実現されてよく、特に、いくつかのコマンドは、類似機能を実行するそれ以外のものと組み合わされてよいか、あるいはいくつかは簡略化されているインプリメンテーションで省略されてよい。機能のそれぞれのハードウェアおよびソフトウェアのインプリメンテーションは、コマンドの間、および単一コマンドの中の両方で自由に混合されてよい。
【０１１２】
ハードウェア、コンピュータソフトウェアおよび類似するものによって実行されている機能が、電気信号および類似する信号で、または電気信号および類似する信号を使用して実行される。ソフトウェアインプリメンテーションはＲＯＭまたはＦＬＡＳＨで記憶されてよいか、あるいはＦＬＡＳＨでパッチされてよい。
【０１１３】
本発明は、純粋に例証としてだけ前述され、詳細の修正を本発明の範囲内で加えることができることが理解されるだろう。
【０１１４】
説明で開示されている各特徴、および（適宜な場合）クレームおよび図面は、無関係に、または任意の適切な組み合わせで提供されてよい。
【図面の簡単な説明】
【図１】  受信機／デコーダのインターフェイスのブロック図である。
【図２】  レシーバ／デコーダの機能ブロック図である。
【図３】  仮想マシンとランタイムエンジンのより詳細な部分図である。
【図４】  本発明を実現する第１の装置による機能の外観を示す図である。
【図５】  リピートセクションの出力データストリームへの挿入を説明する図である。
【図６】  本発明を実現する第２の装置による機能の外観を示す図である。
【図７】  図６の具体例により生成されたデータを示す図である。
【図８】  入力データストリームから出力データストリームの直接コピーされたパケット識別子のリストを示す図である。
【図９】    入力データストリームから出力データストリームへ直接コピーされる前に、デスクランブルされたパケット識別子のリストを示す図である。
【符号の説明】
１００  待ち行列
１０１  待ち行列構造
１０２  キューセレクタユニット
１０４  シーケンサユニットエンジン
１０５  シーケンサユニットドライバ
１０７  インストラクションシーケンスセレクタ
１０８  インストラクションシーケンスメモリ
１０９  インストラクションシーケンスインタープリータ
１１０  フィルタ
２０２０  受信機／デコーダ
２０２２  テレビジョンセット
２０２６  ハンドセット
４００６  常駐のライブラリ
４００７  仮想マシン
４００８  ランタイムエンジン
４０２８  ＭＰＥＧインターフェイス
４０３０  シリアルインターフェイス
４０３２  パラレルインターフェイス
４０３６  カードリーダ
４０５６  アップリケーション
４０５８  ツールボックス
４０６０  デバイスドライバ
４０６１  レシーバ／デコーダハードウエア
４０６４  ローカルデバイス
４０６６  リモートデバイス
４０６８  デバイスマネ−ジャ
ＰＩＤ    パケット識別子
【図１】
0004201975.tif 000002
【図２】
0004201975.tif 000003
【図３】
0004201975.tif 000004
【図４】
0004201975.tif 000005
【図５】
0004201975.tif 000006
【図６】
0004201975.tif 000007
【図７】
0004201975.tif 000008
【図８】
0004201975.tif 000009
【図９】
0004201975.tif 000010