ビデオ番組の一部を視聴者に再生するステップと、前記ビデオ番組の前記一部を表示する間に、アイコンを前記視聴者に表示するステップと、前記アイコンの表示に応じて、第一入力を受信するステップと、前記第一入力の受信に応じて、前記ビデオ番組の再生を一時停止し、ウェブページまたは前記視聴者との対話メニュの何れかを表示し、視聴者の前記ウェブページ又は前記対話メニュとの対話を示す視聴者の入力を受信するステップと、前記ビデオ番組の再生を再開するステップとを備える方法。前記ビデオ番組の再生を再開するステップが、前記ビデオ番組の再生が一時停止されたポイントでの前記再生を再開するステップを備える、請求項1に記載の方法。前記ビデオ番組の再生を再開するステップが、第二入力の受信に応答して行われる、請求項1に記載の方法。前記ビデオ番組の再生を再開するステップが、前記視聴者の対話が完全であることを示すコマンドを受信してから行われる、請求項1に記載の方法。前記第一入力の受信に応答して、視聴者情報を放送者に送信するステップをさらに備える、請求項1に記載の方法。前記第一入力に応答して、リードを生成する製造者に直接又は間接に視聴者情報を送信するステップをさらに備える、請求項1に記載の方法。アイコンを表示するステップが、前記ビデオ番組を備える放送ストリーム内に埋め込まれた特定タグの検出に応答して実行される、請求項1に記載の方法。前記アイコンの表示が、前記ビデオ番組の、前記特定タグに関連する特定ポイントから開始される、請求項7に記載の方法。ビデオ番組の一部を視聴者に再生する手段と、前記ビデオ番組の前記一部を表示する間に、アイコンを前記視聴者に表示する手段と、前記アイコンの表示に応じて、第一入力を受信する手段と、前記第一入力の受信に応じて、前記ビデオ番組の再生を一時停止し、ウェブページまたは前記視聴者との対話メニュの何れかを表示し、視聴者の前記ウェブページ又は前記対話メニュとの対話を示す視聴者の入力を受信する手段と、前記ビデオ番組の再生を再開する手段とを備える装置。前記ビデオ番組の再生を再開する手段が、前記ビデオ番組の再生が一時停止されたポイントでの前記再生を再開することを備える、請求項9に記載の装置。前記ビデオ番組の再生を再開する手段が、第二入力の受信に応答する、請求項9に記載の装置。前記ビデオ番組の再生を再開する手段が、前記視聴者の対話が完全であることを示すコマンドを受信してから行われる、請求項9に記載の装置。前記第一入力の受信に応答して、視聴者情報を放送者に送信する手段をさらに備える、請求項9に記載の装置。前記第一入力に応答して、リードを生成する製造者に直接又は間接に視聴者情報を送信する手段をさらに備える、請求項9に記載の装置。アイコンを表示する手段が、前記ビデオ番組を備える放送ストリーム内に埋め込まれた特定タグの検出に応答して実行される、請求項9に記載の装置。前記アイコンの表示が、前記ビデオ番組の、前記特定タグに関連する特定ポイントから開始される、請求項15に記載の装置。ビデオ番組の一部を視聴者に再生するステップと、前記ビデオ番組の前記一部を表示する間に、アイコンを前記視聴者に表示するステップと、前記アイコンの表示に応じて、第一入力を受信するステップと、前記第一入力の受信に応じて、前記ビデオ番組の再生を一時停止し、ウェブページまたは前記視聴者との対話メニュの何れかを表示し、視聴者の前記ウェブページ又は前記対話メニュとの対話を示す視聴者の入力を受信するステップと、前記ビデオ番組の再生を再開するステップとを、1個以上のプロセッサに実行させる命令を格納するコンピュータ可読媒体。前記ビデオ番組の再生を再開するステップが、前記ビデオ番組の再生が一時停止されたポイントでの前記再生を再開するステップを備える、請求項17に記載のコンピュータ可読媒体。前記ビデオ番組の再生を再開するステップが、第二入力の受信に応答して行われる、請求項17に記載のコンピュータ可読媒体。前記ビデオ番組の再生を再開するステップが、前記視聴者の対話が完全であることを示すコマンドを受信してから行われる、請求項17に記載のコンピュータ可読媒体。前記第一入力の受信に応答して、視聴者情報を放送者に送信するステップをさらに備える、請求項17に記載のコンピュータ可読媒体。前記第一入力に応答して、リードを生成する製造者に直接又は間接に視聴者情報を送信するステップをさらに備える、請求項17に記載のコンピュータ可読媒体。アイコンを表示するステップが、前記ビデオ番組を備える放送ストリーム内に埋め込まれた特定タグの検出に応答して実行される、請求項17に記載のコンピュータ可読媒体。前記アイコンの表示が、前記ビデオ番組の、前記特定タグに関連する特定ポイントから開始される、請求項23に記載のコンピュータ可読媒体。本発明は、クローズドキャプションタグ付けシステムを提供する。本発明によって、コンテンツプロバイダが放送媒体にわたってビデオおよびオーディオテレビストリームに統合されたフレーム特定データおよびコマンドを送信することが出来る。更に、本発明によって受信機がダイナミックに視聴者と対話し、かつビデオおよびオーディオストリームコンテンツに基づいてそれ自身を構成することが出来る。本発明の好適な実施例は、タグをオーディオまたはビデオのテレビ放送ストリームに挿入するためのメカニズムを提供する。タグは、送信の前にまたはその時点で放送ストリームに挿入される。タグには、受信機が変換しかつそれに基づいて作動するコマンドとコントロール情報が含まれる。受信機は、放送ストリームを受信し、かつ放送ストリームの範囲内でタグを検出しそして処理する。放送ストリームは、受信機に設けられた格納装置に格納される。放送ストリームからの番組マテリアルは、視聴者に対し、格納装置から再生される。タグ処理ステージの間、受信機はタグに応じて適切なアクションを行う。タグは、コンテンツプロバイダまたはシステム管理者に、無制限の量の動作を作成する大きなフレキシビリティを提供する。タグは、番組セグメントの開始および終了ポイントを示す。受信機は、視聴者が遠隔入力装置上のボタンを押していることに応じた再生の間、番組セグメントをスキップする。受信機は、また、視聴者の嗜好に従い番組セグメントを自動的にスキップする。コマーシャルのような番組セグメントは、受信機によって、新規の番組セグメントへ自動的に置き換えられる。新規の番組セグメントは、その地域、時刻、番組マテリアル、視聴者の視聴習慣、視聴者の番組嗜好またはその視聴者の個人情報のような様々な基準に基づいて選択される。新規の番組セグメントは、その受信機に遠隔からまたは局所的に格納される。メニュ、アイコンおよびウェブページは、タグに含まれる情報に基づいて視聴者に示される。視聴者は、入力装置により、そのメニュ、アイコンまたはウェブページと対話する。受信機は、そのメニュ、アイコンまたはウェブページおよび視聴者の入力と関連するアクションを行う。メニュまたはアクションは、視聴者が番組マテリアルの再生を終了することを必要とすると、受信機は退出ポイントをセーブし、かつ視聴者が対話セッションを完了した時の、同じ退出ポイントに視聴者を戻す。メニュおよびアイコンは、リードを発生させ、セールを発生させ、および番組のレコーディングの予定を入れるために使用される。ワンタッチレコーディングオプションが、提供される。広告されている番組が将来レコーディング可能であることを視聴者に知らせるアイコンが、視聴者に示される。視聴者は、受信機にレコーディングするための番組を予定に入れさせる入力装置上のシングルボタンを押す。受信機は、また、タグに含まれる情報に基づいて格納装置に放送ストリーム内の現在の番組もレコーディングするであろう。タグは、番組マテリアルのインデックスを作成するために使用される。これによって、視聴者が番組内の特定のインデックスにジャンプすることが出来る。本発明の他の観点および利点は、具体例により、本発明の原理を例示する添付の図面と共に以下の詳細な説明から明らかになるであろう。本発明は、クローズドキャプションタグ付けシステムにおいて実施される。本発明のシステムによって、コンテンツプロバイダが放送媒体にわたってフレーム特定データおよびビデオおよびオーディオのテレビストリームに統合されたコマンドを送信することが出来る。本発明によって、さらに受信機がダイナミックに視聴者と対話してかつビデオおよびオーディオのストリームコンテンツに基づいてそれ自身を構成することが出来る。本発明の好適な実施例は、コンテンツプロバイダが、フレーム特定方法で、テレビ放送媒体で送信されるビデオおよびオーディオのストリームにタグ付けをすることが出来るタグ付けおよび解釈システムを提供する。受信機は、受信されたストリームに埋め込まれたタグを解釈し、かつそれに基づいて作動する。タグデータによって、受信機は、メニュおよびアクションアイコンを通してダイナミックに視聴者と対話することが出来る。タグは、また、受信機のダイナミックな構成も提供する。図1を参照すると、本発明の好適な実施例は、入力セクション101、メディアスイッチ102および出力セクション103を有する。入力セクション101は、多数の形例えば、NTSC放送またはPAL放送で、およびDSS、DBSまたはATSCのようなデジタルの形でテレビ入力ストリームを取り込む。DBS、DSS、およびATSCは、MPEG2標準およびMPEG2トランスポートに基づく。MPEG2トランスポートは、テレビ受像機が入力ストリームを分解して多重化信号内の番組を見つけ出すことを可能にする、TVソーストランスミッタからのデジタルデータストリームをフォーマットするための標準である。入力セクション101は、MPEGストリームを生成する。MPEG2トランスポートマルチプレックスは、マルチプルのビデオおよび音声の送りと個人的なデータを有する同じ放送チャネル内のマルチプル番組をサポートする。入力セクション101は、チャネルを特定の番組にチューニングさせて、それからの特定のMPEG番組を抽出し、かつ他のシステムにそれを送る。アナログTV信号は、別個のビデオおよびオーディオのエンコーダを使用して、類似したMPEG形式にエンコードされる。その結果、システムの残りの部分は、どのようにしてその信号が得られたかを知らない。情報は、多数の標準方法でアナログTV信号のVBIに変調することが出来る。例えば、FCCがCCおよびEDSのためにライン21の使用を強制するが、NABTSを、NTSC信号のライン10から20へ情報を変調するために使用することが出来る。このような信号は、あたかもそれらがMPEG2の個人的なデータチャネルを介して配信されたように、入力セクションによってデコ―ドされ、かつ他のセクションにパスされる。メディアスイッチ102は、マイクロプロセッサCPU106、ハードディスクまたは格納装置105とメモリ104との間に介在する。入力ストリームは、MPEGストリームに変換されて、メディアスイッチ102に送信される。メディアスイッチ102は、メモリにMPEGストリームをバッファする。ユーザがリアルタイムTVを見ている場合、それは、その時、2つの動作を行う。ストリームが、出力セクション103に送信され、かつそれは、同時に、ハードディスクまたは格納装置105に書き込まれる。出力セクション103は、入MPEGストリームを取り込み、かつNTSC、PALまたは他の要求されるTV標準に従ってアナログTV信号を生成する。出力セクション103は、MPEGデコーダ、OSDジェネレータ、アナログTVエンコーダおよびオーディオロジックを含む。OSDジェネレータによって、プログラムロジックは、結果的に得られるアナログTV信号の上に重ね書きされる画像を供給することが出来る。更に、出力セクションは、出力信号のVBI上へ、NABTS、CCおよびEDS含む多数の標準形式でプログラムロジックによって供給される情報を変調することが出来る。図2に示されるように、本発明は、各々が異なるタイプの入力にチューニングすることが出来るマルチプル入力セクションチューナ201、202、203、204に適応させるように、容易に拡張することができる。マルチプル出力モジュールデコーダ206、207、208、209も、同様に加えられる。ピクチャインピクチャのような特殊効果は、マルチプルデコーダによって実施することが出来る。メディアスイッチ205は、ユーザがある番組を見ている間、他の番組をレコーディングする。これは、あるストリームがディスク上に格納されている間に、他のストリームを、ディスクから抽出することが出来ることを意味する。図3に示されるように、入MPEGストリーム301は、インタリーブ配置されたビデオ302、305、306およびオーディオ303、304、307セグメントを有する。これらの要素は、別個のビデオ308およびオーディオ309のストリームまたはバッファを作成するために、分離され、かつ再結合されなければならない。このことは、別個のデコーダが、MPEG要素をオーディオまたはビデオのアナログコンポーネントへ逆変換するために使用されるので、必要となる。このような別個の配信は、デコーダを信号の正確な再生のために適切に同期させることが出来るように、時間シーケンス情報を発生させることを必要とする。メディアスイッチにより、プログラムロジックがおそらくそれをストリームに直接埋め込む各々のセグメントを適切な時間シーケンス情報に関連付けることが可能になる。これらのタイムスタンプは、単調に増加し、かつシステムが立ち上がるごとに、ゼロから開始する。これによって、本発明は、いかなる特定のビデオセグメントにおいても任意の特定のスポットを見つけ出すことが出来る。例えば、システムが、キャッシュされつつある入力の連続ビデオストリームに、5秒間読み込むことを必要とする場合、システムは、単に、このストリームの先に読み込みを開始し、かつ適切なタイムスタンプを調べさえすれば良い。バイナリサーチは、ストリームにインデックスを付ける格納されたファイル上で行うことが出来る。各ストリームは、一様なタイムスタンピングの故に、速いバイナリサーチを可能にする固定サイズセグメントのシーケンスとして格納される。ユーザが番組を途中から開始させたい場合、システムは、それが適切なスポットを見つけ出し、最小の情報量で所望の結果を得るまで、格納されたセグメントのバイナリサーチを行う。これに代えて、信号がMPEGストリームとして格納される場合、所望の位置を見つけ出すために、始めからストリームを線形に解析することが必要であろう。図4に示されるように、メディアスイッチは、各DMAエンジンが関連したバッファ410、411、412、413を有する、4つの入力DMAエンジン402、403、404、405を含む。概念的には、各DMAエンジンは、ポインタ406、そのポインタのためのリミット407、次のポインタ408および次のポインタのためのリミット409を有する。各DMAエンジンは、特定のタイプの情報例えば、ビデオ402、オーディオ403および解析されたイベント405の専用である。バッファ410、411、412、413は、循環性であり、かつ特定情報を集める。DMAエンジンは、それがリミット407に達して、次のポインタ408およびリミット409をロードするまで、関連したバッファへのポインタ406を増大させる。ポインタ406および次のポインタ408を同じ値にセットすることにより、対応するリミットの値とともに、循環バッファが作成される。次のポインタ408は、ベクトルDMAを提供するために異なるアドレスにセットすることが出来る。入力ストリームは、パーサ401を通って流れる。パーサ401は、ビデオ、オーディオまたは個人的なデータセグメントの開始を示すMPEGにより区別されたイベントを捜すために、ストリームを解析する。例えば、パーサ401がビデオイベントを見つけた場合、それは、ストリームをビデオDMAエンジン402に向ける。パーサ401は、ビデオDMAエンジン402を介してビデオバッファ410にデータをバッファし、かつそれをダイレクトメモリアクセスする。同時に、パーサ401は、イベントバッファ413にイベントを発生させるイベントDMAエンジン405にイベントを向ける。パーサ401がオーディオイベントを認識する場合、それはバイトストリームをオーディオDMAエンジン403に向け直し、かつイベントをイベントバッファ413に発生させる。同様に、パーサ401が個人的なデータイベントを認識する場合、それはバイトストリームを個人的なデータDMAエンジン404に向け、かつイベントをイベントバッファ413に向ける。イベントがイベントバッファに配置される場合、メディアスイッチは、割り込みメカニズムを介してプログラムロジックに通知する。図4および5を参照すると、イベントバッファ413は、パーサ401によってイベントで満たされる。イベントバッファ内の各イベント501は、オフセット502、イベントタイプ503、およびタイムスタンプフィールド504を有する。パーサ401は、各イベントのタイプおよびオフセットを、それがバッファの中へ配置されるように、提供する。例えば、オーディオイベントが生じる場合、イベントタイプフィールドは、オーディオイベントにセットされ、かつオフセットは、オーディオバッファ411内の位置を示す。プログラムロジックは、オーディオバッファ411が開始し、かつストリーム内のイベントを見つけ出すためにオフセットを加える場所を知っている。アドレスオフセット502は、プログラムロジックに次のイベントが生じた場所を知らせるが、それが終わった場所は知らせない。前のイベントは、セグメントの長さと同じく、現在のイベントの終了を、見つけることが出来るように、キャッシュされる。図5および6に示されるように、プログラムロジックは、メディアスイッチ601によって割り込まれると、イベントバッファ602に蓄積されたイベントを読み込む。これらのイベントから、プログラムロジックは、解析されたMPEGセグメント615に対応するロジカルセグメント603のシーケンスを発生させる。プログラムロジックは、オフセット502を各セグメントの実アドレス610に変換し、かつ最後にキャシュされたイベントを使用してイベントの長さ609をレコーディングする。ストリームがアナログ信号をエンコードすることによって生成された場合、それは、結果として生じる出力を適切に提示するためにデコーダによって使用されるPTS値を含まないであろう。このように、プログラムロジックは、発生されたタイムスタンプ504を使用して、各セグメント用にシミュレートされたPTSを算出し、かつロジカルセグメントタイムスタンプ607内にそれを配置する。デジタルTVストリームの場合、PTS値は、ストリーム内にすでにエンコードされている。プログラムロジックは、この情報を抽出し、かつロジカルセグメントタイムスタンプ607内にそれを配置する。プログラムロジックは、それが固定されたバッファサイズに達するまで、ロジカルセグメント603を集め続ける。これが生じる場合、プログラムロジックは、これらのロジカルセグメント603を順番に、さらに補助的制御情報を含んでいるPESバッファ605と呼ばれる新規のバッファを発生させる。各ロジカルセグメントポイント604は、直接循環バッファ例えば、ビデオバッファ613にメディアスイッチ601によって満たされる。この新規のバッファは、次に、バッファ内のストリームを、格納媒体にそれをデコ―ドするまたは書き込むためにそれを提示するような何らかの方法で、更に処理することが出来る、他のロジックコンポーネントにパスされる。このように、MPEGデータは、プロセッサによって、メモリのある位置から他の位置にコピーされない。より小さいメモリ帯域幅およびプロセッサ帯域幅しか必要でないので、これは、より経済的な設計になる。PESバッファへのMPEGストリームトランスフォーメーションの固有の特徴は、上記したように、ロジカルセグメントと関連するデータがバッファそれ自体に存在する必要がないことである。PESバッファが格納に書き込まれる場合、これらのロジカルセグメントは、それらが現れる格納媒体にロジカルな順番で書き込まれる。これは、それらが、ビデオ、オーディオまたは個人的なデータ循環バッファ内にあるにせよ、格納媒体上のストリームデータのシングルリニアバッファにストリームのコンポーネントを集める効果を有する。バッファは、格納媒体からの一度の転送で格納媒体から読み出され、かつロジカルセグメント情報は、バッファ606の実際の位置と対応するようにアップデートされる。よりハイレベルなプログラムロジックは、それがロジカルセグメントしか取り扱わないので、この変換を知らない。このように、ストリームデータは、データが、CPUによってDRAM内の位置の間で繰り返してコピーされることを必要とせず、容易に管理される。メディアスイッチの固有の観点は、効果的、および安価に高データ速度を取り扱う能力である。これは、ビデオおよびオーディオのデータを取り込む、ビデオおよびオーディオのデータを外へ送信する、ディスクにビデオおよびオーディオのデータを送信する、およびビデオおよびオーディオデータを低コストプラットホーム上のディスクから抽出する機能を持つ。通常、メディアスイッチは、マイクロプロセッサCPUによる最小の介入で多量の情報を移動するそのDMA能力を使用して、CPUとは非同期でかつ独立して動く。図7に示されるように、メディアスイッチ701の入力側は、MPEGエンコーダ703に接続されている。また、MPEGオーディオ704およびメディアスイッチ701に送るVBIデータ702に対する専用回路も存在する。この代わりに、デジタルTV信号が処理される場合、MPEGエンコーダ703は、MPEG2トランスポートデマルチプレクサTransportDemultiplexorに置き換えられ、かつMPEGオーディオエンコーダ704およびVBIデコーダ702は除去される。デマルチプレクサは、ビデオ入力メディアスイッチポートを通して抽出されたオーディオ、ビデオおよび個人的なデータチャネルストリームを多重送信する。パーサ705は、MPEGエンコーダ703、オーディオエンコーダ704およびVBIデコーダ702から、入力データストリームを解析し、また、デジタルTVストリームの場合、トランスポートデマルチプレクサから、入力データストリームを解析する。パーサ705は、ビデオまたはオーディオのストリーム内の重要なイベントの全部の開始、フレームの全部の開始、シーケンスヘッダの開始を検出する。すなわち、それは、プログラムロジックが、適切に再生し、かつストリーム上の特殊効果例えば速送り、逆再生、再生、停止、高速/低速再生、インデクシング、および高速/低速逆再生を行うために知る必要がある情報の全部を検出する。パーサ705は、それがビデオまたはオーディオのセグメントを識別した場合、またはそれに個人的なデータが与えられた場合、FIFO706にタグ707を配置する。DMA709は、これらのタグが何時外へ取り出されるかを制御する。セグメントのタグ707およびDMAアドレスは、イベント待ち行列708に配置される。フレーム型情報は、それがビデオIフレーム、ビデオBフレーム、ビデオPフレーム、ビデオPES、オーディオPES、シーケンスヘッダ、オーディオフレームまたは個人的なデータパケットの開始であるにせよ、情報が配置された関連する循環バッファ内のオフセットとともにイベント待ち行列708に配置される。CPU713内で動作しているプログラムロジックは、それがDRAM714に転送された後、循環バッファ内のイベントを検討する。メディアスイッチ701は、CPU713およびDRAM714に接続されているデータバス711を有する。アドレスバス712は、また、メディアスイッチ701、CPU713、およびDRAM714との間で共有されている。ハードディスクまたは格納装置710は、メディアスイッチ701のポートの内の一つに接続されている。メディアスイッチ701は、MPEGビデオデコーダ715および別個のオーディオデコーダ717にストリームを出力する。オーディオデコーダ717の信号は、遠隔制御上のユーザのコマンドまたは他の内部イベントに応じてシステムによって発生させるオーディオキューを含む。MPEGデコーダからのデコードされたオーディオ出力は、デジタル方式で別個のオーディオ信号とミキシングされる。結果として生じる信号は、ビデオ、オーディオおよびスクリーン上の表示を含み、かつTV716に送信される。メディアスイッチ701は、ディスクから他のデータのストリームを抽出し、同時に、MPEGデコーダ715にそれを送信しながら、8ビットデータを取り込み、かつディスクにそれを送信する。上記したDMAエンジンは、全て、同時に、動作することが出来る。メディアスイッチ701は、FPGA、ASIC、またはディスクリートなロジックを使用して、ハードウェアにより実施させることが出来る。各フレームが存在するであろう所の開始を調べるために巨大なデータストリームを解析する必要はなく、プログラムロジックは、単に、DRAM714の循環性のイベントバッファに注目しさえすれば良く、かつそれは、各フレームの開始が在る所およびフレームタイプを知らせることが出来る。このアプローチは、CPU713のリアルタイム要求を小さく保って、大量のCPU電源を節約する。CPU713は、時間内の全てのポイントで非常に高速である必要はない。メディアスイッチ701は、CPU713に、作業を完了するためにできるだけ多くの時間を与える。解析メカニズム705およびイベント待ち行列708は、CPU713から、オーディオ、ビデオ、およびバッファとストリームのリアルタイム性質の解析を切り離し、これにより、低コスト化が可能になる。これは、また、他の方法の場合よりもはるかに安いメモリで、非常に低いクロックレートで動作するCPU環境でのバス構造の使用も可能にする。CPU713は、一つのDMA転送に待ち行列を作る能力を有し、かつその合間に次のDMA転送を準備することが出来る。これは、CPU713に、それがDMAコントローラ709にサービスを提供することが出来る大きい時間間隔を与える。CPU713は、大きい待ち時間を可能にするので、より大きい時間窓の範囲内でDMA割り込みに応答することが出来る。MPEGストリームは、MPEG2トランスポートから抽出される、またはアナログTV信号からエンコードされるにせよ、典型的には、VBRと呼ばれる技法を使用して、エンコードされる。この技法は、これらの画像間の動きの量によって画像シーケンスを表すために必要とされるデータ量を変化させる。バスケットボールゲームのような急速な動きを有するシーケンスは、より大きい帯域幅要求でエンコードされるものの、この技法は、信号に対する要求帯域幅を大きく減らすことが出来る。例えば、ヒューズディレクTVHughesDirecTVサテライトシステムは、どこにでも1~10Mbsのフレームごとに異なって要求帯域幅で信号をエンコードする。いかなるコンピューターシステムも、この構造無しで、このように迅速に変化しているデータレートについていくことは、困難であろう。図8を参照すると、CPUの範囲内のプログラムロジックは、3つの概念上のコンポーネント、ソース801、トランスフォーム802、およびシンク803を有する。ソース801は、データのバッファを生成する。トランスフォーム802は、データのバッファを処理し、かつシンク803は、データのバッファを消費する。トランスフォームは、それが動作するデータのバッファを、割り当てかつ待ち行列に入れる働きをする。バッファは、データのソースに対し空であるように、割り当てられ、このことは、それらに逆に満を与える。バッファは、次に、待ち行列に入れられ、かつシンクに満として与えられ、そしてシンクは、空のバッファを戻すであろう。ソース801は、エンコーダ例えば、デジタル衛星受信機から、データを受け取る。それは、ダウンストリームトランスフォームからこのデータに対するバッファを得て、バッファにデータをパッケージ化し、次いで、上述のようにパイプラインへバッファをプッシュする。ソースオブジェクト801は、システムの残りの部分について何も知らない。シンク803は、アップストリームトランスフォームからのバッファを取り込み、デコーダにデータを送信し、次で、再使用のためのバッファをリリースして、バッファを消費する。使用されるトランスフォーム802には、空間および時間の2つのタイプがある。空間トランスフォームは、例えば、パスしているバフッァされたデータで画像の畳込み、または圧縮解凍を行うトランスフォームである。時間トランスフォームは、システムに入ってくるバッファとシステムから出て行くバッファとの間に表現できる時間関係がない場合に、使用される。このようなトランスフォームは、バッファを格納媒体上のファイル804に書き込む。バッファは、後で引き出され、パイプラインへ送信され、そしてストリームの範囲内で適切に順番付けられる。図9には、プログラムロジックのCクラス階層導出が、示されている。Tmk904、908、913は、オペレーティングシステムカーネルで介在する。カーネルは、例えば、記憶割当て、同期、およびスレッディングの動作を提供する。TmkCore904、908、913は、オブジェクトとして媒体カーネルから取り込まれるメモリを構築する。これは、オブジェクトを構成しかつ分解するために、新規および削除をオペレータに提供する。各オブジェクトソース901、トランスフォーム902およびシンク903は、定義によってマルチスレッドさせ、かつ並列に実行することが出来る。TmkPipelineクラス905、909、914は、システムを通るフローの制御を行う。パイプラインは、ソース901からシンク903までフローの中で次のパイプラインを指す。例えば、パイプラインを一時停止するために、一時停止と呼ばれているイベントが、パイプラインの第一のオブジェクトに送信される。イベントは、パイプラインの次のオブジェクト以降に中継される。このことは、非同期でパイプラインを通過している全てのデータに起こる。このように、電話のようなアプリケーションに類似して、MPEGストリームのフローの制御は、非同期であり、かつストリーム自体から分離されている。これは、同時に、一時停止、巻戻し、早送り等を含む前述した特徴をサポートするのに十分強力でシンプルな論理設計を可能にする。更に、この構成は、バッファされたデータを単純に破棄することが出来、かつデコーダがシングルイベントを使用してリセットするので、ストリームソース間の高速かつ効率的なスイッチングと、その後、新規のストリームからのデータがパイプラインをパスすることを可能とする。例えば、このような能力は、入力セクションによって取り込まれているチャネルを切替える場合、または入力セクションからのライブ信号と格納されたストリームとの間をスイッチングする場合、必要である。ソースオブジェクト901は、TmkSource906であり、かつトランスフォームオブジェクト902は、TmkXfrm910である。これらは、パイプライン内のクラスに対する標準動作を定義する中間的クラスである。ソースオブジェクト901は、メディアスイッチのような、物理的なデータソースから、データを取り込み、かつそれをPESバッファに配置する。バッファを得るために、ソースオブジェクト901は、バッファに彼のパイプラインのダウンストリームオブジェクトを要求する。充分なメモリになるまで、ソースオブジェクト901は、ブロックされる。これは、パイプラインが自己制御式であることを意味する。すなわち、これは、自動フロー制御を有する。ソースオブジェクト901がバッファを満たすと、これは、pushFullBuf機能によりトランスフォーム902にそれを渡し戻す。シンク903には、フロー制御も行われる。これは、nextFullBufを呼び出し、次の満たされたバッファの準備ができていることを、トランスフォーム902に知らせる。バッファの準備ができるまで、この動作はシンク903をブロックすることが出来る。シンク903がバッファを使い終えるすなわち、それがバッファ内のデータを消費すると、これはreleaseEmptyBufを呼び出す。ReleaseEmptyBufは、トランスフォーム902にバッファを与える。トランスフォーム902は、次いで、再び満たすため、例えば、ソースオブジェクト901にそのバッファを手渡すことが出来る。この方法の自動フロー制御の利便性に加えて、これは、また、トランスフォームによってバッファの固定された割当ての実施を可能にすることよって、バッファに確保されたメモリの量を制限する。これは、経済的に制限されたDRAM環境を達成する場合、重要な特徴である。MediaSwitchクラス909は、TmkClipCache912のオブジェクトのallocEmptyBuf方法を呼び出し、かつそれからPESバッファを受信する。これは、次いで、メディアスイッチハードウェア内の循環バッファに出て行き、そしてPESバッファを発生させる。MediaSwitchクラス909は、バッファを満たしかつそれをTmkClipCache912のオブジェクトへプッシュする。TmkClipCache912は、格納媒体上のキャッシュファイル918を保持する。これは、また、このキャッシュに2つのポインタ、ソース901から来ている次のバッファが挿入される場所を示すプッシュポインタ919と、使用された現在のバッファを指すカレントポインタ920とを保持する。カレントポインタによって指されるバッファは、Velaデコーダクラス916に手渡される。Velaデコーダクラス916は、ハードウェア内のデコーダ921と通信する。デコーダ921は、NTSC、PALなどのアナログフォーマットでアナログTV信号にその後エンコードされる復号化されたTV信号を生成する。Velaデコーダクラス916がバッファを使い終えると、これはreleaseEmptyBufを呼び出す。クラスの構成は、システムがテストおよびデバッグすることを容易にする。各レベルは、それが適切な方法で実行することを確実にするために別々に試験することが出来、かつクラスは、効果的に各オブジェクトを試験する能力を保持しながら所望の機能を達成するために徐々に集合させることが出来る。制御オブジェクト917は、ユーザからのコマンドを受け取り、かつパイプラインにイベントを送信してパイプラインが行っていることを制御する。例えば、ユーザが遠隔制御を有し、かつTVを見ている場合、ユーザが一時停止を押すと、制御オブジェクト917は、それに一時停止を知らせるイベントをシンク903に送信する。シンク903は、新規のバッファを要求することを停止する。カレントポインタ920は、現在の場所に留まる。シンク903は、それが、それにプレイすることを知らせる他のイベントを受信すると、再びバッファの取り込みを開始する。システムは、完全に同期している。これは、停止したフレームから開始する。遠隔制御は、早送りボタンを有することも出来る。早送りボタンが押されると、制御オブジェクト917は、トランスフォーム902に、2秒先に移動することをそれに知らせるイベントを送信する。トランスフォーム902は、2秒の時間範囲により3つのバッファ前に移動させなければならないことを見つけ出す。これは、次に、ダウンストリームパイプラインにリセットイベントを出し、その結果、ハードウェアデコーダに存在することが出来るいかなる待ち行列化されたデータまたは状態もフラッシュされる。MPEGストリームの構成がデータのマルチプルフレームにわたる状態のメンテナンスを必要とするので、これは、クリティカルステップであり、そしてこの状態はポインタを再位置付けすることによって無効になるであろう。これは、次に、カレントポインタ920を3つのバッファ前に移動させる。シンク903がnextFullBufを呼び出す次の時、これは新規の現在のバッファを得る。同じ方法は、トランスフォーム902がカレントポインタ920を後方に移動させて、高速逆再生として機能する。システムクロックリファレンスは、デコーダ内に存在する。システムクロックリファレンスは、高速プレイに対し速度を上げ、また低速プレイに対し速度を下げる。シンクは、単に、クロックスピードに応じて、より速くまたはより遅くなることを、全バッファに要求する。図10に示されるように、TmkXfrmクラスから得られる2つの異なったオブジェクトが、ディスクアクセスに対しパイプラインに配置される。一方は、TmkClipReader1003と呼ばれ、かつ、他方はTmkClipWriter1001と呼ばれる。バッファは、TmkClipWriter1001に入り、そして格納媒体1004上のファイルに送られる。TmkClipReader1003は、格納媒体1005上のファイルの中から取り込まれるバッファを要求する。TmkClipWriter1001が、nextFullBufおよびreleaseEmptyBuf方法のみを提供するのに対し、TmkClipReader1003は、allocEmptyBufおよびpushFullBuf方法のみを提供する。従って、TmkClipWriter1001が、TmkClipCache1002の出力またはプル側と同じ機能を行うのに対し、TmkClipReader1003は、TmkClipCache1002の入力またはプッシュ側と同じ機能を行う。図11には、マルチプル機能を達成する好適な実施例が、示されている。ソース1101は、TV信号入力を有する。ソースは、TmkXfrmから得られるトランスフォームであるPushSwitch1102にデータを送信する。PushSwitch1102は、制御オブジェクト1114によって切替えられることが出来るマルチプル出力を有する。これは、ユーザの意志で、パイプラインの一部分を、止めることが出来、かつ他の部分を、開始させることが出来ることを意味する。ユーザは、異なる格納装置に切り替えることが出来る。PushSwitch1102は、TmkCiipWriter1106に出力することが出来、これは、格納装置1107に進む、またはキャッシュトランスフォーム1103に書き込む。この装置の重要な特徴は、これがプログラムロジックの制御の下で入力信号の部分を選択的に取り込むことが出来る容易さである。現在の時刻またはおそらく特定の時間範囲のような情報に基づいて、またはおそらく視聴者による遠隔制御のボタンプレスにより、TmkClipWriter1106は、一部の信号をレコーディングするためにスイッチをオンにし、そして後でスイッチをオフにすることが出来る。このスイッチングは、典型的には、PushSwitch1102のオブジェクトにスイッチイベントを送信することによって行われる。選択的キャプチャをトリガするための更なる方法は、VBIに変調されたまたはMPEGの個人的なデータチャネルに配置された情報による。VBIまたは個人的なデータチャネルからデコ―ドされるデータは、プログラムロジックにパスされる。プログラムロジックは、このデータを検討し、データがそれが変調されたTV信号のキャプチャを開始すべきことを示しているか否かを決定する。同様に、この情報は、また、レコーディングが、いつ終わるべきかを示すことが出来、または他のデータ項目は、キャプチャがいつ終わるべきかを示している信号に変調することが出来る。開始および終了のインジケータは、明示的に信号に変調することが出来、また、標準の仕方で信号に配置される他の情報は、この情報をエンコードするために使用することが出来る。図12には、プログラムロジックが、キャプチャをトリガするための特定のワードまたはフレーズを用いて、開始および終了時点を決定するために、CCフィールド内に含まれるワードをどのようにスキャンするかを示す具体例が、示されている。NTSCまたはPALフィールド1201のストリームが、示されている。CCバイトは、各奇数のフィールド1202から抽出され、かつワードパーサ1204による処理のために循環バッファ1203に入力される。ワードパーサ1204は、それがワード境界通常は、スペース、ピリオドまたは他の描いた文字に遭遇するまで、文字を集める。MPEGのオーディオおよびビデオのセグメントが、一連の固定サイズのPESバッファに集められることが、上述から想起される。CCフィールド1205から抽出されたワードを保持するために、特別なセグメントが、各PESバッファに加えられる。このように、CC情報は、オーディオおよびビデオと時間同期させて保存されるので、ストリームが表示される時、視聴者に正しく提示することが出来る。これにより、格納されたストリームをプログラムロジックの合間にCC情報に対し処理することが可能になり、この結果、ロードは広がり、コストは削減され、かつ効率が改善される。このような場合、特別なセグメントに格納されたワードは、単に、ステートテーブルロジック1206にパスされるだけである。ストリームをキャプチャする間、各ワードは、テーブル1206内で調べられる。このテーブルは、そのワードを認識するためのアクションを示す。このアクションは、単に、レコグナイザステートマシン1207の状態を変化させるのみ、または、ステートマシン1207に、キャプチャの開始、キャプチャの停止、フレーズシーン等のアクション要求を出させるのみである。実際に、認識されたワードまたはフレーズにより、パイプラインを切替えることが出来る。例えば、望ましくない言葉が番組に使用されている場合には、異なるオーディオトラックを重ね書きすることが出来る。解析状態テーブル1206およびレコグナイザステートマシン1207は、何時でも変更または修正することが出来ることに、留意されたい。例えば、異なるテーブルおよびステートマシンを、各入力チャネルに対し提供することが出来る。これに代えて、これらの要素は、時刻に応じ、または他のイベント故に、切替えることが出来る。図11に示されるように、シンク1105に出力を与えるPullSwitch1104が、加えられている。シンク1105は、PullSwitch1104からバッファを得るまたは戻すためにnextFullBufおよびreleaseEmptyBufを呼び出す。PuIlSwitch1104は、かなりの数の入力を有することが出来る。一つの入力を、ActionClip1113とすることが出来る。遠隔制御により、入力ソースを切替えることが出来る。制御オブジェクト1114は、PullSwitch1104に、切り替えを知らせるイベントを送信する。これは、現在の入力ソースから制御オブジェクトが選択する如何なる入力ソースにも切替わるであろう。ActionClipクラスは、予測できるおよび制御可能な方法で、おそらく遠隔制御を介して視聴者の選択の加えられた制御で、多数の異なる格納された信号のシーケンスを提供する。従って、これは、次の格納された信号に切替えるためのスイッチイベントを受け取るTmkXfrmオブジェクトの派生物として現れる。これにより、プログラムロジックまたはユーザは、ビデオ出力のカスタムシーケンスを作成することが出来る。いかなる数のビデオセグメントも、あたかもプログラムロジックまたはユーザが放送スタジオビデオミキサを使用しているかのように、ラインアップさせ、かつ結合させることが出来る。TmkClipReaders1108、1109、1110は、割り当てられ、かつ、各々は、PullSwitch1104にフックされる。PullSwitch1104は、ビデオおよびオーディオクリップを結合するためにTmkClipReaders1108、1109、1110を切り替える。パイプラインが構成されるので、フロー制御は、自動的である。PushおよびPullSwitchesは、放送スタジオにおけるビデオスイッチと同じものである。本明細書で記載されている派生クラスおよび結果として生じるオブジェクトは、TVストリームの格納、検索、切替およびの視聴のための多数の異なる役立つ構成を作成する任意の方法で、結合させることが出来る。例えば、マルチプル入出力セクションが利用可能であるならば、一つの入力を、他の入力が格納されている間に、視聴し、かつ、第二の出力によって発生させたピクチャインピクチャのウィンドウを、前に格納されたストリームをプレビュするために使用する。このような構成は、高価で、精巧なハードウェアソリューションに期待される機能を、単一の経済的な装置内で達成するソフトウェアトランスフォーメーションの独特かつ新規な応用を表す。図13には、VCRバックアップを実施する上位システム概念が、示されている。出力モジュール1303は、VCR1307にTV信号を送信する。これにより、ユーザはビデオテープにテレビ番組を直接レコーディングすることが出来る。本発明によって、ユーザは、ディスクからビデオテープにレコーディングされる番組の待ち行列を作ることが出来、かつ番組が、VCR1307に送信される時間の予約を入れることが出来る。番組が送信される前に、タイトルページEPGデータを、VCR1307に送信することが出来る。より長い番組は、プレイ速度の速度を上げること、またはフレームを落とすことにより、より短いビデオテープにフィットさせて縮小させることが出来る。VCR1307の出力は、入力モジュール1301に戻るようルートを決めることも出来る。この構成の場合、VCRは、メディアスイッチ1302に対するバックアップシステムとして作動する。いかなるオーバーフロー記憶、またはより低い優先順位プログラミングも、後の検索のためにVCR1307に送信される。入力モジュール1301は、デコードすることが出来、かつ垂直同期間隔VBI上のエンコードされたシステム情報の残りにパスすることが出来る。出力モジュール1303は、システムの残りによって提供された出力VBIデータに、エンコードすることが出来る。プログラムロジックは、様々な種類の識別情報を出力信号にエンコードするように構成することが出来、これは、VCR1307を使用して、テープにレコーディングされるであろう。入力へこのテープを再生することによって、プログラムロジックは、このテープにレコーディングされたTV信号が、適切に取り扱われているなどのこの識別情報を読み込むことが出来る。例えば、特定の番組は、それがいつレコーディングされたか、ソースネットワーク等について情報と共にテープにレコーディングすることが出来る。この番組が入力モジュールで再生される場合、この情報は、信号、視聴者への表現等の記憶を制御するために使用することが出来る。当業者は、このようなメカニズムが、適切なテレビジョン信号とは考えられない様々なデータ項目をプログラムロジックに導入するために使用することが出来ることを、容易に理解するであろう。例えば、ソフトウェアアップデートまたは他のデータを、システムにパスすることが出来る。テレビストリームからこのデータを受信しているプログラムロジックは、データが取り扱われる方法に関する制御、例えば、ある認証シーケンスを必要すること、および/または埋め込まれた情報を解読することを、前に獲得したあるキーに従って、課すことが出来る。このような方法は、通常の放送信号に対しても機能し、プログラムロジックに非TV制御情報およびデータを提供する効率的な手段となる。さらに、前述の説明において、特に、VCRが述べられたが、いかなるマルチメディアのレコーディング装置例えば、デジタルビデオディスク-ランダムアクセスメモリレコーダも、これに置き換えることが出来ることは、当業者には、容易に理解されるであろう。本発明が、本明細書において好適な実施例に関して記載されているが、当業者は、他の応用が本発明の精神および範囲から逸脱することなく、本明細書において記載されるものと代えることが出来ることを、容易に理解するであろう。例えば、本発明は、ギャンブルカジノ犯罪の検出に使用することが出来る。本発明の入力セクションは、カジノのビデオ監視システムに接続される。レコーディングされたビデオは、キャシュされ、かつ外部VCRに同時に出力される。ユーザは、いかなるビデオフィードにも切替えることが出来、かつ、外部VCRにリアルタイム入力ビデオがロードされている間、レコーディングされたビデオの特定セグメントを検討すなわち巻戻し、プレイ、低速プレイ、早送り等することが出来る。ビデオストリームタグアーキテクチャ再び図12を参照すると、タグは、テレビストリーム1201で生じるアブストラクトイベントである。これらは、アナログ信号のVBIにまたはMPEG2マルチプレックスの個人的なデータチャネルに埋め込むことが出来る。上述したように、タグは、クローズドキャプションフィールドに埋め込むことが出来、かつ循環バッファ1203または記憶割当てスキーマ内に抽出することが出来る。ワードパーサ1204は、CCデータのその走査の間、固有のタグを識別する。タグは、標準CC制御コードと共に点在する。タグは、例えば、現在の時刻および視聴されている番組に基づいて、暗示的に発生させることも出来る。本発明は、放送の前にビデオストリームにタグTiVoタグを挿入するためのTVTAGシステムと呼ばれるメカニズムを提供する。図1416、および17に示されるように、TVTAGシステムは、ビデオ出力ソース1401と、VBIにクローズド‐キャプショニング情報を挿入しかつ見出しをつけられたビデオ1402を出力する互換装置と、ビデオモニタ1405と、クローズドキャプション情報で形成されたタグデータオブジェクトをビデオストリーム1406に取り入れるためのVBI挿入装置を制御するためのソフトウェアプログラムとから成る。タグ付されたビデオは、すぐに、1404に再送信され、または、後の送信のために適切な媒体1403に格納される。その最も基本的な実施の場合、TVTAGソフトウェア1406は、VBI挿入装置1402を制御する役割を果たす。TVTAGソフトウェア1406は、標準コンピュータインターフェースおよびデバイスコントロールコードプロトコルによってVBI挿入装置1402と通信する。ビデオモニタ1405を観察するオペレータが、所望のタグ挿入ポイントが近づいたと決定すると、彼は、キーを押す。これにより、TiVoタグデータオブジェクトが、発生され、VBI挿入装置1402に送信され、そして送信1404または記憶1403のためにビデオストリームに取り入れられる。TVTAGソフトウェアは、ビデオ入力ソース1401およびビデオ出力格納装置1403を制御する追加機能を有する。オペレータは、特定のビデオ1602を選択し、かつモニタ上のグラフィック要素1702を重ね書きし、かつポインティングデバイス例えば、マウスによってそれを配置するのを容易にするために、ビデオ入力ストリームを一時停止させる能力を有する。グラフィック要素1702のポジショニングは、また、オペレータインタフェース1601によっても行われる。オペレータは、Xポジション1605およびYポジション1604を使用して、グラフィックのポジションを入力する。グラフィック要素およびポジショニング情報は、次に、以下で述べられるTiVoタグデータオブジェクトおよび記述されたビデオの時間コードまたはフレームに取り入れられる。オペレータの要求が満たされると、再生およびレコーディングが再開される。タグは、その時、最高度の正確度で、挿入装置により発行される。図15に示されるように、TVTAGシステムの他の好適な実施例の場合、ソフトウェアプログラムは、オペレータ1505に表示した標準インターネットプロトコルウェブページという形をとる。ウェブページは、TiVoタグオブジェクトを、リモートサーバ1504上のスクリプト実行によって発生させる。サーバ1504は、VBI挿入装置1502、ビデオソース1501、およびレコーディング装置1503を制御する。遠隔オペレータ1505は、サーバ1504から、タグ挿入のためのリファレンスとして使用されるビデオストリームの狭帯域または広帯域のバージョンを受信することが出来る。一旦必要なタグデータオブジェクト情報が発生しかつ送信されると、これは、サーバ1504によって後でバッチ処理することが出来る。他の本発明の好適な実施例の場合、プラグイン形としてソフトウェアをポピュラーな非線形ビデオ編集システムと統合し、このことにより、TiVoタグデータオブジェクトをビデオ生産プロセスの間、挿入することを可能にしている。本実施例の場合、この非線形編集システムは、ソースおよび記憶システムコントローラとして機能し、かつTiVoタグデータオブジェクトのフレーム正確配置を可能にするグラフィック配置機能も提供する。図18に示されるように、タグは、ビデオソース1801において、またはそれより前で、ビデオストリームに統合される。ビデオストリームは、次いで、サテライト1802、ケーブルまたは他の地上の送信方法1803を介して送信される。受信機1804は、ビデオストリームを受信し、タグを認識し、かつタグに応じて適切なアクションを行う。視聴者は、モニタまたはテレビジョン受信機1805を介して結果として得られたビデオストリームを見る。本発明は、ビデオストリーム内のタグに基づいて様々なアクションを取り込むことをサポートするアーキテクチャを提供する。TiVoタグが提供するフレキシビリティのいくつかの具体例は、以下の通りである。いつか将来の時点でプログラムをレコーディングするためのオプションが視聴者に与えられるように、ネットワークプロモーションが、見られている時を知ることは、望ましい。番組が放送される場合、日付、時間およびチャネルを示すプロモーションに、TiVoタグが、加えられる。アクティブなプロモーションは、下記に詳述されている。一般的な問題は、野球試合の時間超過問題である。VCRおよびDVRは、ゲームが予告されたタイムスロット超えてしまうと、野球の試合の終り部分をカットしてしまう。TiVoタグは、レコーディングを続ける必要があることを示すためにビデオストリームに送信される。TiVoタグは、また、ゲームが終わったので、システムにレコーディングを止めることを知らせるために、送信される。ボクシングの試合は、しばしば急に終わり、VCRおよびDVRに確保された時間の残りの間を埋める番組をレコーディングさせる。TiVoタグは、番組が終わったことを示すために送信され、このレコーディングを止めることをシステムに知らせる。図19に示されるように、ローカルにまたは遠隔操作で格納された広告が、全国広告または領域外の広告の代わりに示すことが出来るように、広告には、タグが付けられる。ビデオストリーム1901の範囲で、重ね書きされた番組セグメント1902コマーシャルまたは他の番組セグメントは、上述されたTVTAGシステムのような技法を使用して、タグ付けされる。TiVoタグは、本発明1905に旧番組セグメント1902の開始および終了ポイントを知らせる。本発明1905に、旧番組セグメント1902の持続時間を知らせるシングルタグ1903を、加えることが出来る。また、タグが、旧番組セグメントの開始1903および終了1904でセグメント1902の開始および終了を示すために加えられる。TiVoタグが検出されると、本発明1905は、新規の番組セグメント1906を見つけ出し、かつ旧番組セグメント1902の代わりにそれを単に再生し、再生が完了すると、オリジナルの番組1901に戻る。視聴者1907は、トランジションに決して気がつかない。ここで、3つのオプションがある。1システム1905は、オリジナルの番組をキャシュし続けることが出来るので、視聴者1907が番組1901を巻き戻し、かつ再びそれを再生するならば、彼は上書きされたセグメントを見る。2旧番組セグメント1902は、キャッシュの場合も置き換えられるので、視聴者はセグメントが上書きされていることに決して気づかない。3システムは、オリジナルのセグメント1902をキャシュし、かつ再生時にタグを再解釈する。しかしながら、インテリジェントタグを先取りしない場合には、これは、視聴者が、システムが上書きされたセグメントの第一のタグを認識するように、十分な時間をバックアップする場合のみ、正しく働く。この問題は、開始1903および終了1904のタグに、旧番組セグメントの長さを加えることによって解決される。他のアプローチは、開始タグ1903がシステムに対して終了タグ1904を識別するように、タグを突き合わせることである。システム1905は、それが、速送り、または巻き戻す時、タグのうちの一つを越えて他のタグを調べるべきであることを知っている。タグ1903、1904のペアは、一意の名前を含む。システム1905は、次に、突き合わされたタグの先または後を検索し、かつ旧番組を置き換えることが出来る。システムが先取りを行うことが出来るフレームの時間または長さの量には制限がある。これは、タグに含めることが出来、または標準化することが出来る。タグ内に制限を含むことは、最もフレキシブルなアプローチである。再生される番組セグメントは、例えば、地域、時刻、番組マテリアルに基づいて、または出願人によって所有される出願番号第09422121号に記載される嗜好エンジンに基づいて選択される。嗜好エンジンを使用して、局所的記憶またはサーバ記憶1906からの適切な番組セグメントが、視聴者のプロファイルによって選択される。プロファイルは、視聴者の視聴習慣、番組嗜好、およびその他個人情報を含む。格納された番組セグメント1906は、嗜好ベクトルに最もマッチするように検索されるそれらの特徴を記載している番組オブジェクトも有する。明らかに、広告見疲れを避けるためにコマーシャル間の回転メカニズムが、なければならない。嗜好ベクトルは、現在見られている番組のための番組データに対して誤りベクトルを発生させ、かつこの誤りベクトルを使用して、更にバイアスすることが出来、ディスク1906上のコマーシャルの在庫に対するマッチにバイアスを加える。例えば、視聴者が昼メロを見ていて、かつこの視聴者の嗜好ベクトルがスポーツショーに向いているならば、本発明は、おしめコマーシャルよりビールコマーシャルを選択するであろう。タグは、また、条件つきの選択をするためにも使用することが出来る。タグは、自身の嗜好重み付けを含む。この場合、この嗜好重み付けは、嗜好ベクトルと比較され、高い相関は、本発明にそのコマーシャルのみを残させる。低い相関は、上記の本方法を呼び出す。注意:これらの場合の全てにおいて、システム1905は、意思決定をするための充分な時間があった。パイプラインの構成は、通常ビデオの12秒をバッファし、ストリームを変化させるために入力と出力の間に多くの時間を与える。より多くの時間が必要であるならば、バッファをパイプラインに加える。ディスクを離れて再生するならば、システムはストリームの先を読み取ることよって同じ時間遅延を作成する。コマーシャルが、また本出願人が所有する名称アナログビデオタッギングおよびエンコーディングシステムの米国特許出願第09187967号に記載されている方法を使用して検出出来ることにも留意されたい。上記した置換と同じタイプは、上述した適用を記載されているタグが使用される場合、使用することが出来る。図19および22に示されるように、タグは、コマーシャルの飛ばしの取込みを可能にする。タグは、コマーシャルの開始1903および終了1904のポイントをマークするために使用することが出来るので、これらは、スキップして先取りすることが出来る。視聴者は、遠隔制御2201上の飛越しボタン2205を押すだけである。システムは、終了タグを検索し、および、タグと関連するフレームに続くフレームにおいて再生を再開する。スキップされるコマーシャルの数は、バッファされるビデオストリームの量に依存する。視聴者の予め設定された嗜好に従い、システム1905それ自身は、メモリ1906内に格納されたライブまたは予めレコーディングしてある番組上のコマーシャルをスキップすることが出来る。ライブのビデオ上のコマーシャルをスキップすることは、上述したようにパイプライン内のバッファリングのより大きい量を必要とする。システムがレコーディングされた番組上のコマーシャルをスキップすることができることは、視聴者にいかなるコマーシャルの割込みもない番組の連続表示を提供する。タグは、インデックスとして作動するために番組マテリアルに加えられる。例えば、視聴者は、遠隔制御2201上のジャンプボタン2205を押すことによって番組の範囲内で各インデックスにジャンプすることが出来る。タグは、また、システム機能のために使用される。上述したように、システムは局所的にそれ自身の使用のための番組マテリアルを格納する。システム1905は、何らかの方法で、番組マテリアルを受信しなければならない。これは、オフタイムで特定のチャネルへのチューニングによって行われる。システム1905は、ストリーム1901内に、それにレコーディングを開始することを知らせるタグを検索する。レコーディングは、コンテンツおよびおそらく嗜好ベクトルを識別するタグ1903、1904によって区切られた多数の番組セグメントから成る。ストリームの終わりのタグは、レコーディングを停止することをシステム1905に知らせる。番組セグメントは、局所的に1906に格納され、かつ、上述のように後の使用のためにインデックスが付される。本発明は、以下の設計点を取り入れる。設計は、メカニズムとポリシの明白な分離を提供する。タグは、内部的には、ポリシモジュールをトリガするアブストラクトイベントと見られる。受信されたタグ情報をこれらの内部アブストラクトにマッピングすることは、ソースパイプラインオブジェクトの役割である。アブストラクトタグは、それらがあたかも他のセグメントであるかのように、PesBufストリームに格納される。これは、任意のサイズ設定をされたタグを正確なタイミング情報で処理することを可能にする。タグをレコーディングされた番組の一部として残すことが出来るので、いつ番組が見られても、正しいアクションが取り込まれる。タグは、現在の番組、将来の番組等について情報をアップデートすることが出来る。この情報は、レコーディングされた番組に対して保存される。タグは、それらがシステムを通過するように、ログすることが出来る。この情報をアップロードすることも可能である。タグに関連する全ての情報を保存することは必要ない。タグは、別個の時刻表に基づいて発生することが出来る。例えば、タグを発生させるためにネットワーク局のログを使用することは、見られている時間およびネットワークに基づく。時間に基づくタグは、レコーディングされたストリーム内に保存される。時間に基づくタグ図20に示されるように、時間に基づくタグは、時間に基づいたタグ認識器によって取り扱われる。このオブジェクト2012は、チャネル変更イベントを聞き、かつ公知のネットワークが切替えられると、このネットワークに対する時間ログを読み出そうとする。一つが存在するならば、オブジェクト2012は、現在の時刻に基づいてタグスケジュールを構築する。各タグごとに時間が生じるたびに、オブジェクト2012は、挿入されるタグを示しているソースオブジェクト2001に、イベントを送信する。ソースオブジェクト2001は、作成中の現在のPesBuf内に次の利用可能なポジションにタグを挿入する。次の利用可能なポジションは、フレーム境界または他の条件に基づいて決定することが出来る。ソースオブジェクトの役割ソースオブジェクト2001は、それが生成するPesBufストリームに、タグを挿入する役割を果たす。これは、アナログ入力およびデジタルTVソースのための別個のソースオブジェクトがあると仮定している。アナログストリーム内に、タグが現れる可能性には多数の異なる場合がある:EDSフィールドの範囲内。CCフィールドの暗黙の使用。おそらくATVEFスペックを使用したVBIのへの変調。時間に基づく。デジタルTVストリーム内またはアナログからMPEGへの変換の後:TiVoTaggingTechnologyを使用したバンド内。MPEG2の個人的なデータチャネル。MPEG2のストリーム特徴フレーム境界等。時間に基づくタグ。ソースオブジェクト2001には、タグを解析する機能も無いし、いかなるアクションも取り込む機能も無い。その代わりに、ソースオブジェクト2001は、単独でストリーム内にポテンシャルタグを認識し、かつそれらをPesBufストリームに加える機能を持つべきである。タグ認識およびアクション概念的には、全てのタグは、2つの広いグループに分解することが出来る。番組をレコーディングするような、受信に応じてアクションを必要とするもの、および、番組提供、すなわち、番組が見られるとき、に応じてアクションを必要とするものである。受信タグ処理受信に応じてアクションを必要とするタグは、次のように取り扱われる:TmkPushSwitchクラス2002の新規の受信タグメカニズムサブクラス2003が、作成される。入力ストリームが、ソースオブジェクト2001と番組キャッシュトランスフォーム2013との間でこのクラス2003を通過するので、クラス2003は、受信タグを認識しかつ適切なアクションを取り込む。受信タグは、一般に一度取り扱われ、次は使用禁止にされる。番組提供タグの処理番組提供に応じてアクションを必要とするタグは、次のように取り扱われる:TmkPullSwitchクラス2008の新規の提示タグメカニズムサブクラス2007が、作成される。出力ストリームが番組キャッシュトランスフォーム2013およびシンクオブジェクト2011との間でこのクラス2007を通過すると、クラス2007は番組提供タグを認識し、かつ適切なアクションを取る。タグポリシの処理現在のチャネルを示すTagReceptionPolicyオブジェクト2009が存在する場合には、タグ受信処理のみが許可される。ソースチャネルのためのTagPresentationPolicyオブジェクト2010が存在する場合には、番組提供タグの処理のみが許可される。TagPolicyオブジェクトは、どのタグが、認識されるべきか、かつ何のアクションが可能であるかを記述する。入力チャネルが変更されると、受信タグオブジェクトが、通知され、かつ、それは、もしあればそのチャネルのためのTagReceptionPolicyオブジェクト2009をフェッチし、定義されたポリシに従う。出力チャネルが変更されると、番組提供タグオブジェクトが、通知され、かつ、それはもしあればそのチャネルのためのTagPresentationPolicyオブジェクト2010をフェッチし、定義されたポリシに従う。タグロギングタグの受信は、データベースにログすることが出来る。TagReceptionPolicyオブジェクト2009が存在する場合のみ、これは、生じ、かつタグロギング属性が、セットされる。例えば、ロギング属性は、セットされるかもしれないが、受信アクションは、行うことが出来ない。これは、入力ストリーム内で受動ロギングのアクティビティを可能にする。パイプラインの処理変更現在の上映について情報のアップデートをサポートすることは、重要である。以下の方策が、提案される:入力ソースが変更される、または新規の上映が開始されるときはいつでも、開示オブジェクトのコピーが作られ、そしてパイプラインでの全ての更なる動作は、このコピーとは別に働く。アップデートされるタグは、受信タグであるポリシによって許可されるならば、コピーされた上映オブジェクトは、アップデートされる。現在の上映がレコーディングされる場合には、上映オブジェクトのコピーもセーブされる。その結果、セーブされた番組は、その番組にセーブされた正しい情報を有する。オリジナルの上映オブジェクトは、このプロセスによって変更されない。レコーダは、上映オブジェクトへの変更を認識していなければならないので、レコーダが、例えば、野球の試合の終了前にカットしてしまうことは無い。タグ解釈対タグステートマシン一旦、TagPolicyオブジェクトが有効なタグを識別するために使用されると、標準化されたアブストラクトタグがタグインタープリータ2005によって解釈され、かつ動作のタグがTiVoタグステートマシン2006によって実行されるという点で、タグは極めてフレキシブルである。解釈されたタグは、定義済みのアクションのセットをトリガする。アクションの各セットは、システムに前もってプログラムされている。ステートマシンタグは、実行可能コードを伝えないが、プログラムステップを実行する演算タグである。これは、タグ発信者が、これらのタグを結合させて、TiVoシステム上のカスタマイズされたアクションを行うことを可能にする。ステートマシンタグは、解釈されたタグと同じ結果を達成するために使用することが出来るが、実行されたアクションのセットをダイナミックに変化させるフレキシビリティを有する。アブストラクト解釈されたタグ利用可能なアブストラクトタグのセットは、タグ/アクションテーブルと呼ばれるテーブル内で規定される。このテーブルは、典型的には、データベースオブジェクト内に格納される。小量のアブストラクトアクションが、規定されている。これらのアクションは、3つの一般領域に分けられる。視聴者管理下のアクション対話を含むことが出来る。ストリームチャネル、時間、持続時間等についてのメタ情報。TiVo制御タグ。ディスク上のデータベースに変更を生じさせ、または暗示的なレコーディングを生じさせるタグは、確認されなければならない。これは、制御タグにより行われる。視聴者管理下のタグメニュこのタグは、視聴者に選択が提示されることになっていることを示す。タグと関連するデータは、選択が何であるかおよび提示スタイルのような、他の興味のあるデータを示す。メニュは、関連した不活動タイムアウトを有する。メニュタグの観念は、視聴者に選択が提供されるということである。視聴者が存在しないまたは興味を持たないならば、メニュはすぐに消えるべきである。メニュポリシは、現在の番組を一時停止させまたはそれを解除させることが出来る。メニュの提示は、リストである必要はない。プッシュ代替番組条件このタグは、ある代替番組がある条件が真理であるならば、再生されるべきであることを示す。条件は、ポリシモジュールによって分析される。これを、常に真とすることが出来る。ポップ代替番組条件このタグは、前の番組に戻る。番組が終わると、代替番組スタックが自動的にポップされる。チャネルが変化する、または視聴者がTiVoCentralメニュ領域に入ると、全ての代替番組が、ポップされる。代替番組は、見られたストリームに任意のシーケンスを挿入する方法である。条件データは、トップレベルで評価されない。これに代えて、ポリシモジュールは選択をするためにこのデータを検討しなければならない。例えば、これはテレスコーピング広告を作成するために使用することが出来る。ショーインジケータ条件このタグにより、指示はスクリーンに描かれる。インジケータには名前がつけられ、そしてアクティブインジケータのセットは、いつでも問い合わせることが出来る。タグまたはタグポリシは、インジケータが導かれた時のタイムアウト値を示すことが出来る。クリアインジケータ条件このタグにより、アクティブな指示が除去される。全てのインジケータは、チャネルが変更され、または視聴者がTiVoCentralメニュ領域に入ると、クリアされる。インジケータは、番組フローに割り込みを行わず視聴者に選択を提供する他の方法である。それらは、また、興味を引くことが出来るストリーム内の条件を示すために使用することも出来る。例えば、ActivePromoは、タグデータの一部として、その番組を選択することが出来る番組オブジェクトIDを提供することによって作成される。視聴者が、インジケータが現れている間に、特定のキーを打つと、番組は、レコーディングする予定に入れられる。メタ情報タグ現在の上映情報このタグは、現在の上映についての情報のための一般的なバケットである。各タグは、典型的に1つの情報例えば、開始時刻、終了時間、持続時間等を伝える。このタグは、イベントのレコーディングを長くするために使用することが出来る。将来の上映情報このタグは、上記のものに類似しているが、将来の上映についての情報を含む。興味を引く2つの環境がある:この情報は、データベース内にすでに常駐する上映を参照する。データベースオブジェクトは、適切に、アップデートされる。この情報は、存在しない上映を参照する。新規の上映オブジェクトは、作成され、かつタグから初期化される。TiVo制御タグ修正許可このタグは、一般に、今月のセキュリティキーによって暗号化される。認可の寿命は、ポリシーによって、おそらく1、2時間にセットされる。従って、ローカルTiVoシステム状態に対する修正が許可される場合、タグは絶えず再放送されることが必要となる。このタグの観念は、EDSのような本質的に不安定なタグメカニズムを使用して、不当なまたは偶然の攻撃を避けることである。ネットワークがEDS情報を提供すると、我々は最初に彼らのタグが正確であること、およびタグ配送システムへの攻撃がありそうもないことの保証を得たい。そして、我々は、そのネットワークに認可タグを周期的に与える認可システムを提供するそのネットワークを使用するであろう。未許可のタグは、ソースオブジェクトによってPESストリームに決して挿入されるべきでない。現在のレコーディング条件このタグは、現在の番組のディスクへのセーブをこのポイントから開始させる。現在の番組が終わると、レコーディングは終わるであろう。現在のレコーディング停止条件このタグは、現在の番組のレコーディングを停止する。将来のレコーディング条件上映オブジェクトIDが、提供されるおそらく、将来の放映タグ内に送信される。番組は、明示的な視聴者の選択より低いバックグラウンド優先順位で、レコーディングする予定に入れられる。将来のレコーディングキャンセル条件上映オブジェクトIDが、提供される。レコーディングがそのオブジェクト用の前のタグによって予約が入れられた場合、レコーディングはキャンセルされる。これらのタグおよび将来の放映タグは、暗号化された、安全なフォーマットで挿入することが出来る。これらが適切に有効化されると、ソースオブジェクトは、PESストリーム内にこれらのタグを挿入するのみである。これらのタグの目的の一つは、TiVo在庫例えば、ループセット、広告、割込み、などのレコーディングを自動的にトリガーすることである。後でのダウンロードにより、この在庫はインストールされ、かつ利用可能となるであろう。ファイルのセーブ条件このタグは、ディスクに格納されるストリームを通してデータをパスするために使用される。例えば、放送ウェブページは、このメカニズムによりパスされるであろう。オブジェクトのセーブ条件このタグは、ディスクに格納されるストリームを通してオブジェクトをパスするために使用される。オブジェクトを格納することは、ルールをアップデートしている標準オブジェクトに従う。以下は、ストリームのCC部分に挿入された上映タグを使用している実施の具体例である。信号が送信され、デジタル化され、そしてデコードされる時、それが保存されるので、それがユーザ受信機に達する前に、ストリームのCC部は選ばれた。残りのVBI信号については、保証はない。サテライトシステムの多くは、MPEG2にエンコードする時、クローズドキャプショニング以外のすべてを取り除く。CCストリームには、厳しい帯域幅制限がある。CCストリームに対するデータレートは、ビデオフレーム毎の2つの7ビットバイトである。さらに、制御コードとの衝突を避けるために、データは0x20で開始する必要がある。したがって、それは、効果的に約65ビットバイトに制限される簡潔さのための6ビットバイトに、切り捨てる。ゆえに、帯域幅は、およそ360ビット秒である。チャネルが実CCデータと共有される場合、このレートは、更に減少する。更に、特別な制御コードが、CC可能にされたテレビがCCテキストとしてTiVoタグを表示しようとするのを防止するために、送信される必要がある。基本的なタグレイアウトこのセクションは、タグがクローズドキャプショニングストリーム内にどのように配置されるかについて記述する。これは、決定的なものではないが、それは、一般的にクローズドキャプショニング仕様を良く知っていることを前提とする。タグを見えなくすることストリームに配置されるTiVoTagは、クローズドキャプショニングが可能にされたテレビ上の表示に影響を及ぼすべきでない。これは、最初に再開キャプションローディングコマンドを失敗許容のため2度送信し、タグを記載する文字列が続き、イレーズノンディスプレイドメモリコマンドが失敗許容のため2度続くことによって達成される。これが行うことは、テキストをオフスクリーンメモリへロードし、次に、メモリをクリアすることである。可能にされるクローズドキャプショニングを有する正規のTVは、EIA701の標準に従ってこのテキストを表示しない。クローズドキャプショニングデコーダがロール‐アップまたはスクロールモード内にない限り、これは働く。このモードの場合、再開キャプションローディングコマンドによって、テキストが消去されるであろう。この問題を解決するために、それらが第二のクローズドキャプショニングチャネルに送信される場合であっても、TiVoTagsは受け取られ、認識されるであろう。このように、クローズドキャプショニングチャネル1がテキストをスクロールする準備である場合であっても、我々はクローズドキャプショニングチャネル2を通してなおタグを送信することが出来る。タグエンコーディングTiVoTagによって送信されるテキストは、英字Ttと、それに続くタグの長さ示すシングル文字と、それに続くタグコンテンツと、それに続くタグコンテンツのためのCRCとから成る。英字Ttは、通常のCCデータ内では遭遇しそうにないほど十分に独特である。さらに、通常のCCデータは、常に、テキストがスクリーン上のどこに表示されるかを示す位置制御コードによって開始される。我々がオンスクリーンを表示していないので、この位置決めデータのためのニーズがない。ゆえに、再開キャプションローディング制御コードの直後にTtに遭遇する可能性は極めてまれで、我々は、この組合せがTiVoタグであることをほとんど保証することが出来るしかし実施は、これが真であることには基づかないであろう。タグの長さを示しているシングル文字は、タグ長さを0x20に加えることによって計算される。長さが3文字である場合、例えば、使用される長さ文字は、0x23である。実施を95の長さに制限せずに文字セットには96文字しかないので、最大長は、63として定義される。より長いタグが必要な場合、その長さ文字のための他の32の可能な値に関する解釈を加えることが出来る。タグそれ自身のための可能な値は、下記のタグタイプの項で定義される。CRCは、16ビットCRCCCITTすなわち、多項式x16x12x51である。これは、3つの別個の文字としてストリーム内に配置される。第一の文字は、0x20をCRCの最上位の6ビットに加えることによって計算される。次の文字は、0x20をCRCの次の6ビットに加えることによって計算される。最後の文字は、0x20をCRCの最後の4ビットに加えることによって計算される。タグタイプこの項は、TiVoTagの具体例を詳述する。すべてのタグシーケンスがタグタイプを示す少なくとも一つのバイトから始まることに留意されたし。iPreviewタグ図17を参照すると、iPreviewタグは、4つの情報を含む。第一のタグは、予告されている番組の32ビットプログラムIDである。第二のタグは、プロモーションがどれくらい長く続くかと言う情報を含む。第三部分は、スクリーン1701上のどこにiPreviewアラート1702を配置するかと言う情報、および、最後の部分は、どのサイズのiPreviewアラートを使用するかと言う情報を含む。iPreviewアラートのためのスクリーン位置は、幅および高さでの画面解像度の分数である。X座標は幅を分けるために9ビットを使用し、そして、最終的な座標は、xxvalとして与えられる。CCIR656解像度を使用する720×486スクリーン上で、xvalが10として与えられる場合、X座標は14となるであろう。Y座標は、高さを分けるために8ビットを使用し、最終的な座標は、Yyvalとして与えられる。XY座標は、バググラフィックの左上コーナーの位置を示す。XおよびYの値が最大可能な値すなわちx511、y255に設定される場合、これは作者がシステムにそのポジションを決定するジョブを与えていることを示す。システムは、既定のデフォルトの位置にバグを配置する。最大値をデフォルトのポジションを示すために使用する理由は、それが全てのバググラフィックをオフスクリーンに配置するであろうから、実ポジションがこれらの値にセットされるであろうことが、決して期待されないからである。サイズフィールドは、任意のアラートグラフィックがどのようなサイズかを示す4ビット数である。このフィールドの16の可能な値は、セットトップボックスが提供する用意が出来ている定義済みのグラフィックサイズと一致する。タイムアウトは、プロモーション内に残されるフレームの数を示している10ビットの数である。これは、このタグに34秒の寿命制限を課す。プロモーションがより長い場合、タグは繰り返す必要がある。エラーに対する露光を制限するために、タイムアウトは、10ビットに人為的に、制限されていることに留意されたい。これは、作者がタグ内に出来そこないのタイムアウトを設定すると、それが、続くコマーシャルに及ぼす効果を制限することである。バージョンは、プロモーションそれ自身を識別するために使用されるバージョンナンバである。この数をビットパッキングするしたがって、それを6ビットに制限する代わりに、全部のクローズドキャプショニング文字セットを使うこれは、64の代わりに96の可能性になる。バージョンナンバは、したがって、095の範囲内にあることが必要である。予備文字は、現在使っていない。制御コードが、最後には2バイト境界に適切に配置されるために、この文字は存在することを必要とする。iPreviewタグの第一の文字は、常にiである。データフィールドの全ては、ビット境界に一緒にパックされ、次いで、0x20を加えることによって文字に変換される6ビット値に分解され、そして送信される。フィールドの順番は、次の通りである:32ビット:プログラムID9ビット:X位置8ビット:Y位置4ビット:グラフィックサイズ10ビット:タイムアウト1文字:バージョン1文字:予備データフィールドは、送信するための11の文字バージョンのための1つの文字と予備の1つの文字とを必要とする全66のビットである。各文字の正確なコンテンツは、以下の通りである:10x20ID31:2620x20ID25:2030x20ID19:1440x20ID13:850x20ID7:260x20ID1:0X8:570x20X4:0Y780x20Y6:190x20Y0size3:0100x20Y0size3:0timeout9110x20timeout8:3120x20timeout2:0130x20version14予備第一の文字iを含むと、iPreviewタグの長さは、14文字3CRC文字である。タグヘッダ3文字によって、これは、10フレームで送信出来る20文字の全長を作る。二度再開キャプションローディングを送信しかつ二度イレーズノンディスプレードメモリを送信するために4つの他のフレームを加えることは、iPreviewタグが、放送に4フレーム047秒必要とすることを意味する。完全なPreviewタグは、以下のように構成される:ResumecaptionloadingResumecaptionloadingTt1I3characterCRCErasenondisplayedmemoryErasenondisplayedmemoryパリティデバッグ文字現在、パリティビットはパリティビットとして使用されている。しかしながら、CRCがすでに含まれているので、パリティビットのエラーチェック能力に対するニーズはない。これに、あるステップを更に取り込むと、パリティビットを巧妙な方法で使用することが出来る。クローズドキャプショニング受信機は、不正確なパリティビットを有するいかなる文字も無視すべきであるから、制限された帯域幅CCチャネルは、間違ったパリティを意図的に使用することによって、より上手く使用できる。これにより、再開キャプションローディングおよびイレーズノンディスプレイメモリの文字の消去が可能となり、さらにTiVoタグを既存のCCデータの間に点在させることをより容易にする。iPreview視聴者対話図17、20、21、および22に示されるように、iPreviewタグは、タグインタープリータ2005に、iPreviewアラート1702をスクリーン1701に表示させる。iPreviewアラート1702は、視聴者に、アクティブなプロモーションが利用可能であることを知らせることが出来、かつ視聴者は、TiVoシステムに、将来の上映をレコーディングすることを知らせることが出来る。視聴者は、遠隔制御2201上の選択ボタン2204を押すことによってiPreviewアラート1702に応答する。タグインタープリータ2005は、ユーザ入力を待つ。視聴者が予め設定した嗜好に応じて、選択ボタン2204のプレスにより、タグインタープリータ2005によってワンタッチレコーディングになり、自動的に番組のレコーディング予約が入れられるか、または、視聴者に、レコードオプションスクリーン2101が提示される。視聴者は、レコーディング予約が入れられた番組を有するようにレコードメニュ項目2102を強調表示し、そして選択ボタン2204を押す。タグそれ自身は、タグインタープリータ2005によって解釈された。タグインタープリータ2005は、遠隔制御2201によるいかなる視聴者の入力も待つ。一旦、視聴者が選択ボタン2204を押すと、タグインタープリータ2005は、iPreviewタグ内に32ビットプログラムIDによって記載されている番組のレコーディングの予約を入れることをTiVoシステムに知らせる。図20、22、および23に示されるように、iPreviewタグは、他の目的のためにも使用される。各使用は、番組マテリアルのコンテクストおよび表示されたスクリーンアイコンによって指示される。明らかに、システムは番組マテリアルを解釈することはできないが、プログラムIDと組み合わされたアイコンは、タグインタープリータ2005にどんなアクションを取るべきかを知らせる。2つの具体例は、リードとセールの生成である。リードを発生させるプロセスは、例えば、自動車広告がプレイされているとき、生じる。iPreviewアイコンが、スクリーン上の2301に現れ、そして視聴者は、彼が選択ボタン2204を押して対話型のメニュに入ることができることを知る。メニュ画面2302は、タグインタープリータ2005によって表示され、より多くの情報2303を得るまたは自動車2304のビデオを見るための選択をユーザに、与える。視聴者は、ライブのTVボタン2202を押すことによっていつでも退出することが出来る。視聴者が、上下矢印ボタン2203と選択ボタン2204によってより多くの情報2303を選択すると、視聴者の情報はタグインタープリータ2005によってメーカ2305に送信され、このことによりリードが発生する。視聴者は、選択ボタン2204を押すことによって番組に戻る。製品例えば、音楽アルバムの広告が広告されるとき、セールの発生が生じる。iPreviewアイコン2301は、スクリーンに現れる。視聴者は、選択ボタン2204を押し、そしてメニュ画面2307が、タグインタープリータ2005によって表示される。メニュ画面2307は、視聴者に製品を買う2308、または退出する2309ための選択を与える。視聴者が製品を買うためにイエス2308を選択すると、Taglnterpreter2005は、メーカに視聴者の購入情報2310とともに注文を送信する。これが音楽アルバム広告である場合、視聴者に、アーティストによる音楽ビデオを視聴する選択肢を提示することも出来る。視聴者が退出から戻って番組を視聴するときは常に、システムは、視聴者が退出したときの元の正確なポイントに戻る。これは、視聴者に番組が連続している感覚を与える。再指定の概念は、容易にインターネットに拡大される。iPreviewアイコンは、上述のように現れる。視聴者が遠隔制御2201上の選択ボタン2204を押すと、ウェブページが、視聴者に表示される。視聴者は、次いで、ウェブページと対話し、そして終了すると、システムは、視聴者が退出してきた正確なポイントで彼が見ていた番組に、視聴者を戻す。上述したように、嗜好エンジンを使用すると、リードまたはセール生成の間、視聴者に示される情報は、容易に特定の視聴者向けに適合化される。視聴者に提示された、視聴者の視聴習慣、番組嗜好、および個人情報は、メニュ、選択、およびスクリーンを選択するために使用される。各メニュ、選択、およびスクリーンは、視聴者の嗜好ベクトルと比較される関連した番組オブジェクトを有する。例えば、視聴者が男性で、かつプロモーションがシボレに対するものである場合、視聴者が選択ボタンを押すと、トラックの静止画が表示される。視聴者が女性である場合、オープンカーの静止画が表示されるであろう。後述するタグステートマシン2006が、上記の具体例のタグインタープリータ2005と同じステップを充分に行うことができることに留意されたい。TiVoタグステートマシン再び図20を参照すると、本発明の好適な実施例は、TiVoReceiverによって視聴者が見ることが出来るアクションになることが出来るアブストラクトTiVoタグを処理するためのメカニズムであるTSM2006を提供する。シンプルな具体例は、アクティブプロモーションの作成である。前に示したように、アクティブプロモーションでは、やがて公開されるショーのための番組が放送され、かつ視聴者には、すぐに、それが実際に放送される時、TiVoシステムにその番組をレコーディングさせるオプションが与えられる。このシンプルな具体例には、以下の隠された複雑さが存在する:視聴者に機会をアラートするために、あるインジケータを、発生させなければならないインジケータは、見えるようにしなければならない、また正確に消去しなければならない問題となっている番組の正確な情報が、提供されなければならないそして、アクティブプロモーションが現れる番組は、それが放送された時と全く異なる時間で視聴することが出来る。TiVoタグの作成管理も、また、課題化されている。既存の放送の実施および技術に可能な限り変更を加えないことが、重要である。これは、メカニズムを、放送ストリームへの統合化の容易さと、堅牢で信頼できる動作の両方のために、可能な限りシンプルに保つことを意味する。タグの原理上述したように、タグを送信するために利用できる帯域幅には制約があるものと仮定されている。例えば、VBIは、厳しい競走下にある利用可能なスペースを制限した。信号の大部分の消費者が主にテレビ番組オプションに集中するであろうから、ディジタルテレビジョン信号においてさえ、送信される帯域外データの量は、少ない。タグは、この場合、わずか数バイトのサイズのシンプルなオブジェクトである。より多くの複雑なアクションは、シーケンスにマルチプルタグを送信することによって構築される。放送配信の性質は、タグが、信号問題、太陽黒点等のために消失することを暗示する。TSMは、失われたタグを取り扱い、かつ失われたタグに起因する予想外のアクションが取り込まれないことを保証するためのメカニズムを取り入れる。一般に、視聴者管理下のタグアクションは、それらが受信されるチャネルにのみ関連する。すなわちチャネル変更の後、タグ状態は破棄されるものと仮定する。物理的タグは、物理的なタグを受信するソースオブジェクト1901によってアブストラクトタグに変換される。タグは、それらが、実行可能なコードを伝えない点で、アクティブなエージェントではない。TSMを機能化することは、視聴者管理下のアーチファクトおよび変更と言う結果になるが、TiVo受信機システムの基本的な動作は、タグのシーケンスによって影響を受けないままであろう。タグが実行可能なコード例えば、ATVEFによって検討されたJava登録商標バイトストリームを含むことができる場合、TiVo視聴体験の完全性は、不十分に書かれたまたは不当なソフトウェアによって危うくなるかもしれない。全てのタグアクションは、現在のチャネルにマッチしたポリシオブジェクトによって支配される。いかなる、または全てのアクションは、このオブジェクトによって使用可能または使用不可にすることが出来、ポリシオブジェクトの不在は、全てのタグアクションを抑制する。基本的なアブストラクトタグ全てのアブストラクトタグは、一般的なインフラストラクチャを有する。以下のコンポーネントは、いかなるアブストラクトタグ内にも存在する:タグタイプ1バイトタイプ0は、認められない。ある将来の時点で、254より大きいタグ値が、必要とされる場合、タイプ255は、エクステンションタグを示す。タグシーケンス1バイトこの符号が付されていないフィールドは、シーケンスの一部である各タグのために増加される。シーケンスの一部でないタグは、このフィールドをゼロにセットしなければならない。一つのタグシーケンスは、新規のシーケンスの開始を示すシーケンスは、概念的にいかなる長さとなることも出来るが、それは順番付けられた255以下のタグのセグメントで構成される。各タグタイプは、暗示的なシーケンス長さゼロとなることも可能であるを有するシーケンス番号は、ストリームでのドロップアウトまたは他の形のタグロスを取り扱うために導入される。一般に、シーケンス誤りが生じた場合、全てのタグシーケンスは破棄され、ステートマシンのリセットが起きる。タグは、物理的なドメイン内でチェックサムされるべきである。チェックサムがマッチしない場合、タグはソースオブジェクトによって破棄される。これにより、シーケンス誤りとステートマシンのリセットとなる。タグタイムスタンプ8バイトこれは、タグが、認識されたTVストリームの範囲内の同期時間である。この時間は、TiVoReceiverによって発生される全ての他の提示時間に同期する。このコンポーネントは、決して送信されないが、受信機自身によって発生される。タグデータ長2バイトこれは、タグと関連する任意のデータの長さである。このデータの解釈は、タグタイプに基づく。物理的なドメイントランスレータは、データ上のある最小のエラー検査を行うべきである。タグステートマシンTSMは、ビデオ再生とインラインであるTagPresentationMechanismの一部である。概念的には、TSMは、少なくとも32ビットの精度またはオブジェクトIDを保持するのに充分なサイズを有する整数値のアブストラクトスタックを管理する。オブジェクトIDは、アブストラクトであり、かつTiVoReceiverに実オブジェクトを示すことが出来えうまたは出来ない。これは、さもなくば、正しいオブジェクトにマップされることが必要となる。スタックは、サービス不能攻撃を制限するためにサイズが255のエントリに制限される。TSMは、変数のプールも管理する。変数は、2バイト整数によって名前が付けられる。変数名0は、予備とされる。ユーザ変数1と2151との間にあるは、タグシーケンスによって操作することが出来る。システム変数は、TSMによって保持され、かつ現在のTiVoReceiverに関する値例えば、現在の番組オブジェクトID;TSMの改定;および他の有益な情報を含む。これらの変数は、215と2161との間に名前を有する。ユーザ変数の数値は、TSMの範囲内に制限することが出来る;TSM変数は、この制限が何であるかを示す。タグデータは、連続したTSMコマンドである。これらのコマンドの実行は、前記タグが認識されかつ許可される時、開始される。TSMコマンドはバイトオリエンティッドであり、そしてあるコマンドは、それらの機能をサポートするために更なるバイトを有することが出来る。利用可能なTSMコマンドは、いくつかのクラスに分解することが出来る:データ移動コマンドpushbyte-スタック上へコマンドに続くバイトをプッシュする。pushshort-スタック上へコマンドに続くショートをプッシュする。pushword-スタック上へコマンドに続くワードをプッシュする。変数アクセスコマンドpushvar-コマンドに続く16ビット量で名づけられた変数をプッシュする。popvar-コマンドに続く16ビット量で名づけられた変数へポップする。copyvar-スタックからコマンドに続く16ビット量で名づけられた変数にコピーする。スタック操作コマンドswap-トップの2つのスタック値を交換する。pop-トップのスタック値をトスする。算術コマンドaddbyte-コマンドに続く符号が付けられたバイトをスタックのトップに加える。addshort-スタックのトップにコマンドに続く符号が付けられたショートを加える。addword-コマンドに続く符号が付けられたワードをスタックのトップに加える。and-トップと次のスタックエントリの論理積をとり、スタックをポップし、かつ新規の値をプッシュする。or-トップと次のスタックエントリの論理和をとり、スタックをポップし、かつ新規の値をプッシュする。条件コマンド符号が付けられていない比較のみbrifzero-スタックのトップがゼロである場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。brifnz-スタックのトップがゼロでない場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。brifgt-スタックのトップが次のスタックエントリより大きい場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。brifge-スタックのトップが次のスタックエントリ以上の場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。brifle-スタックのトップが次のスタックエントリ以下の場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。briflt-スタックのトップが次のスタックエントリ未満の場合、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。brifset-ビットセットが、トップと次のスタックのエントリが一緒に論理積されるとき、コマンドに続く符号が付けられた16ビットのオフセットに分岐する。アクションコマンドexec-スタックのトップに名づけられたオブジェクトID上のタグアクションを実行する。fin-アクションしていないタグを終了する。システム変数32768現在のタグの値。GMT内の時間:32769現在の年0から。32770現在の月112。32771月の日131。32772曜日17、日曜日から開始。32773日の時間023。32774時間の分059。32775分の秒059。TiVo受信機状態:32800ソフトウェアリリースバイト表記xxxで。32801現在チューニングされたネットワークのオブジェクトID。32802現在チューニングされた番組のオブジェクトID。32803出力パイプラインの現在の状態:0通常の再生1一時停止2低速プレイ10速度1での巻戻し11速度2での巻戻し20速度1での早送り21速度2での早送りタグ実行状態:32900表示する、または取り込むためのインジケータナンバ。32901タグが実行する間のパイプラインの状態。32902プレイスタックにプッシュする代替番組オブジェクトID。32903インジケータが選択される場合、レコーディングするための番組オブジェクトID。33000メニュ項目1のためのストリングオブジェクトナンバ。33001メニュ項目2のためのストリングオブジェクトナンバ。33009メニュ項目9のためのストリングオブジェクトナンバ。33100メニュ項目1のためのピクチャオブジェクトナンバ。33101メニュ項目2のためのピクチャオブジェクトナンバ。33109メニュ項目10のためのピクチャオブジェクトナンバ。33200メニュ項目が選択される場合、レコーディングするための番組オブジェクトID。33201メニュ項目が選択される場合、レコーディングするための番組オブジェクトID。33209メニュ項目が選択される場合、レコーディングするための番組オブジェクトID。タグ代替番組をプッシュする代替番組をポップする番組の終了での自動ポップインジケータを上げるインジケータを下げるメニュタグ実行ポリシ実行ポリシは、TSMによって決定される。いくつかの候補は、以下の通りである:メニュ標準TiVoメニュガイドラインに従ってメニュは配置される。一般に、メニュはライブのビデオに重なって現れる。項目の選択は、典型的にレコードダイアログを呼び出す。メニュ動作の間、パイプラインを一時停止することは、ベストであることができる。インジケータ図17と22に示されるように、インジケータ1702は、小さいアイコンとしてのディスプレイの一番下に整列して並べられている。通常の視聴状態の間、遠隔制御2201上の上向き矢印と下向き矢印のキー2203は、何も行わない。インジケータに関し、上向き矢印2203は、インジケータを通して左に、下向き矢印は、右に円を描く。選択されたインジケータは、それを囲んで描かれる小さい四角を有する。プッシュ選択2204は、アクションを始める。新規のインジケータは、デフォルトで選択されるインジケータが消去されると、もしあれば、前に選択されたインジケータは強調表示される。代替番組代替番組は、ビデオストリームの一部として現れ、かつ全部の早送り/巻き戻し制御を有するべきである。ライブのボタン2202に対するスキップは、最初に空にするために代替番組スタックをポップする。本明細書では、クローズドキャプションストリームが、特に、言及されたが、EDSフィールド、VBI、MPEG2個人的データチャネル等のような他のトランスポート方法を使用することが可能であることは、当業者であれば、容易に理解するであろう。本発明が、好適な実施例に関して本明細書において記載されているが、当業者は、ほかの応用が本発明の精神および範囲から逸脱することなく、本明細書において記載されるそれらのために代えることが出来ることを容易に理解するであろう。