(57)【特許請求の範囲】
【請求項１】
いくつかのチャンネルに渡ってメディアストリームを同時に処理するためのシステムであって、
データバス上のデータストリームを観察するための手段と、
処理することが出来るデータを識別するために当該データストリーム中の他のデータからメディアストリームを識別するための手段と、
関連するタグをメディアストリームデータにタグ付けすることにより、当該データストリーム内のメディアストリームデータを、それらのそれぞれのメディアストリームに関連付けるための手段と、
複数のチャンネルに渡って複数のメディアストリームからのデータを並列に処理するマルチチャンネルメディアストリームプロセッサと、
当該マルチチャンネルメディアストリームプロセッサが、第１のメディアストリームからのデータ処理から第２のメディアストリームからのデータ処理にスイッチしたときに、当該マルチチャンネルメディアストリームプロセッサのステートをモニタしかつ保存するための手段であって、当該マルチチャンネルメディアストリームプロセッサが、当該第１のメディアストリームからのデータ処理にスイッチバックすると、当該第１のメディアストリームに関連する前記プロセッサのステートが、当該プロセッサに再ロードされ、かつ当該マルチチャンネルメディアストリームプロセッサが当該第１のメディアストリームの処理を再開する手段とを、
備えるシステム。
【請求項２】
当該データストリームを観察するための当該手段が、さらに、システムインターフェイスを備える請求項１に記載のシステムであって、当該システムインターフェイスが、当該バス上のパッシブなスレーブクライアントであり、当該システムインターフェイスが、データフローに干渉せずに、当該データストリームを観察するシステム。
【請求項３】
当該システムインターフェイスが、特定のシステムに適合するよう調整されている請求項２に記載のシステムであって、当該調整が、プログラムスイッチとハードワイヤドエレメントのうちの1つによって遂行されるシステム。
【請求項４】
当該データバスが、システムバスとメモリバスのうちの1つである請求項２に記載のシステム。
【請求項５】
メディアストリームを識別するための当該手段が、さらに、メディアストリーム識別器を有している請求項１に記載のシステムであって、当該メディアストリーム識別器が、当該データストリーム内のデータに含まれているアドレス情報を用いて、当該データストリーム内のメディアストリームを区別する、システム。
【請求項６】
メディアストリームデータを、それらのそれぞれのメディアストリームに関連付けるための当該手段が、さらに、メディアIDジェネレータを備える請求項１に記載のシステムであって、当該メディアIDジェネレータが、メディアストリームデータにタグを割り付け、その結果、メディアストリームデータが、その元々のメディアストリームに関連付けられる、システム。
【請求項７】
当該マルチチャンネルメディアストリームプロセッサのステートをモニタしかつ保存するための当該手段が、さらに、マルチチャンネルステートエンジンを備える請求項１に記載のシステムであって、当該マルチチャンネルメディアストリームプロセッサが、第１のメディアストリームからのデータ処理から第２のメディアストリームからのデータ処理にスイッチしたときに、当該ステートエンジンが、複数のメディアストリームをモニタし、かつ当該マルチチャンネルステートを保存し、当該保存されたマルチチャンネルステートが、前記第１のメディアストリームに関連する第1のステートを備える、システム。
【請求項８】
当該プロセッサが、当該第1のステートに関連するメディアストリームにスイッチすると、当該ステートエンジンが、前記第1のステートを当該プロセッサに再ロードする請求項7に記載のシステム。
【請求項９】
当該処理されたメディアストリームが、ストレージデバイスに保存される請求項１に記載のシステム。
【請求項１０】
当該システムが、プログラム可能なロジックデバイスにより実施される請求項１に記載のシステム。
【請求項１１】
いくつかのチャンネルに渡って同時にメディアストリームを処理する方法であって、
データバス上のデータストリームを観察するステップと、
処理することが出来るデータを識別するために、メディアストリームを当該データストリーム中の他のデータから識別するステップと、
関連するタグをメディアストリームデータにタグ付けすることによって、当該データストリーム内のメディアストリームデータを、それらのそれぞれのメディアストリームに関連付けるステップと、
複数のチャンネルに渡って複数のメディアストリームからのデータを並列に処理するステップと、
メディア当該プロセッサが、第1のメディアストリームからのデータ処理から第2のメディアストリームからのデータ処理にスイッチしたときに、メディアプロセッサのステートをモニタしかつ保存するステップと、
当該メディアプロセッサが、当該第1のストリームからのデータ処理にスイッチバックすると、当該第1のストリームに関連する前記メディアプロセッサのステートを当該メディアプロセッサに再ロードして、当該メディアプロセッサが、当該第１のメディアストリームの処理を再開することを可能とするステップとを
備える方法。
【請求項１２】
当該データストリームを観察する当該ステップが、さらに、当該バス上のパッシブなスレーブクライアントであるシステムインターフェイスを提供するステップを備え、当該システムインターフェイスが、データフローに干渉せずに当該データストリームを観察する、請求項１１に記載の方法。
【請求項１３】
当該システムインターフェイスが、特定のシステムに適合するよう調整されている請求項１２に記載の方法であって、当該調整が、プログラム可能なスイッチとハードワイヤドエレメントのうちの1つによって遂行される方法。
【請求項１４】
当該データバスが、システムバスとメモリバスのうちの1つである請求項１２に記載の方法。
【請求項１５】
メディアストリームを識別する当該ステップが、当該データストリーム内のデータに含まれているアドレス情報を用いて当該データストリーム内のメディアストリームを区別するステップを、さらに、備える請求項１１に記載の方法。
【請求項１６】
メディアストリームデータを、それらのそれぞれのメディアストリームに関連付ける当該ステップが、さらに、メディアストリームデータにタグを割り付け、その結果、メディアストリームデータが、その元々のメディアストリームに関連付けられるステップを、備える請求項１１に記載の方法。
【請求項１７】
当該プロセッサのステートをモニタしかつ保存する当該ステップが、
複数のメディアストリームをモニタするステップと、
当該メディアプロセッサが、第１のメディアストリームからのデータ処理から第２のメディアストリームからのデータ処理にスイッチしたときに、前記第1のメディアストリームに関連する第1のステートを備える当該メディアプロセッサのステートを保存するステップとを、
備える請求項１１に記載の方法。
【請求項１８】
当該プロセッサのステートをモニタしかつ保存する当該ステップが、さらに、当該プロセッサが、第1のステートに関連するメディアストリームにスイッチすると、前記第1のステートを当該プロセッサに再ロードするステップを備える請求項１７に記載の方法。
【請求項１９】
当該処理されたメディアストリームをストレージデバイスに保存するステップを、さらに、備える請求項１１に記載の方法。
【請求項２０】
当該方法が、プログラム可能なロジックデバイスによって実施される請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テレビジョン放送信号のタイムシフティングに関するものである。より特定的には、本発明は、テレビジョン放送信号のリアルタイム捕獲、格納、および、表示に関するものである。
【背景技術】
【０００２】
ビデオカセットレコーダ(VCR)は、世界中のテレビジョン(TV)視聴者の生活を変えている。VCRは、視聴者に、TV番組を彼らの生活様式に一致するようにタイムシフトする柔軟性を提供して来ている。
【０００３】
視聴者は、VCRを用いて、磁気テープ上にTV番組を格納する。VCRは、視聴者に、格納されているプログラム素材をプレー、巻き戻し、早送り、停止する能力を与える。これらの機能は、視聴者が、自分の望むときにいつでも番組再生を停止し、望んでいない番組素材またはコマーシャルの間、早送りし、そして、気に入った場面を再生し直すことを可能にする。しかしながら、VCRは、情報の捕獲と再生の両方を同時に行うことはできない。
【０００４】
この問題の解決への1つのアプローチは、何個かのVCRを用いることである。例えば、2台のビデオテープレコーダが利用可能であれば、それら2つの間でのやりとりが可能かもしれない。この場合、第1のレコーダが、興味のある番組のはじまりで開始される。視聴者が放送を巻き戻したい場合には、第2のレコーダが、記録を始め、その一方で、第1のレコーダが中断され、該当の場所に巻き戻され、そして、再生が開始される。しかしながら、視聴者が、最初の巻き戻しを要求したときの後のある時点に早送りしたいと望めば、少なくとも第3のビデオテープレコーダが必要になる。この場合には、第3のレコーダが、放送ストリームの記録を開始し、その一方で、第2のレコーダが中断され、該当の箇所に巻き戻される。この行為を続けると、誰でも、その装置は、扱いにくく、信頼性が低く、高価で、操作が困難であり、そのうえ、望みの機能全てをサポートすることは決してできないということにすぐに気付くことができる。さらに、テープは長さが有限であり、終了しては困るときに終了してしまう可能性を持っており、それは、この解決の価値を徹底的に低下させる。
【０００５】
この問題を解決するためのデジタルコンピュータシステムの使用が、示唆されている。1994年12月6日にLoganらに付与された米国特許第5,371,551号は、ビデオ記録と再生とを同時に行う方法を教示している。それは、マイクロプロセッサにより制御される放送／再生デバイスを提示している。当該デバイスは、ハードディスクに、ビデオデータを圧縮して格納する。しかしながら、高ビデオレートに追随するためのプロセッサ要件が、デバイスを高価で問題のあるものにするから、このアプローチを実施することは困難である。マイクロプロセッサは、入ってくるビデオデータおよび出ていくビデオデータに追随するために、極めて高速でなければならない。
【０００６】
ユーザに、テレビ放送番組の記録と再生とを同時に行う能力を与えるマルチメディア信号処理システムを提供することは有益なことである。さらに、マイクロプロセッサを高ビデオデータレートから切り離し、それによって、マイクロプロセッサとシステムとの要件を低減するアプローチを利用するマルチメディア信号処理システムを提供することは有益なことであり、それは、大きな需要を持つ。
【０００７】
【特許文献１】
米国特許第5,371,551号
【発明の開示】
【課題を解決するための手段】
【０００８】
本発明は、マルチメディア信号処理システムを提供する。本発明は、ユーザがテレビジョン放送番組を見て、任意選択で、その番組内の以前の場面を即座に調べることを可能にする、操作容易で低価格のマルチメディア格納および表示システムを利用している。さらに、本発明は、ユーザが、同時に別の番組を見ている、または、調べているときに、そのユーザが、選択したテレビジョン放送番組を格納することを可能にする。
【０００９】
本発明の好適な一実施例は、多数の形式、例えば、National Television Standards Committee (NTSC)放送またはPAL放送のようなアナログ形式、および、Digital Satellite System (DSS)、Digital Broadcast Services (DBS)、または、Advanced Television Standards Committee (ATSC)のようなデジタル形式のテレビジョン(TV)入力ストリームを受け取る。アナログTVストリームは、内部転送および操作のために、Moving Pictures Experts Group (MPEG)フォーマットのストリームに変換され、一方、あらかじめフォーマットされているMPEGストリームは、デジタルTV信号から抽出されて、エンコードされたアナログストリームと同様のフォーマットで提示される。
【００１０】
本発明は、得られたMPEGストリームを解析し、それを、そのビデオ成分およびオーディオ成分に分離する。その後、それは、それらの成分を一時バッファに格納する。見出されている成分のタイプ、それが位置している場所、および、それが得られた時を指示するイベントが記録される。プログラムロジックが、イベントが生じていることを通知されて、データが、バッファから抽出される。
【００１１】
パーザおよびイベントバッファは、MPEGストリームを解析しなければならないことおよびデータストリームのリアルタイム性から、CPU を切り離す。この切り離しは、より低速のCPUおよびバス速度の使用を可能とし、それは、システムコストをより低くする。
【００１２】
ビデオ成分およびオーディオ成分は、格納デバイスに格納される。番組が、表示のために要求されたとき、ビデオ成分およびオーディオ成分が、格納デバイスから抽出され、そして、MPEGストリームに再び組み立てられる。MPEGストリームは、デコーダに送られる。デコーダは、そのMPEGストリームをTV出力信号に変換して、そのTV出力信号をTV受像機に配信する。
【００１３】
ユーザ制御コマンドが、受け取られて、システム中に送られる。これらのコマンドは、当該MPEGストリームのフローに影響を与え、ユーザが、少なくとも以下の機能：逆送り、高速順送り、プレー、停止、インデックス、高速／低速逆プレー、高速／低速プレーにより、格納されている番組を見ることを可能にする。
【００１４】
さらに、本発明は、本発明を、各々が異なるソースから入力信号を受信するように適合化されたいろいろの構成で提供することを可能にする多用途のシステムアーキテクチャを含む。その最も高度のレベルにおいて、このシステムボードは、1つの入力セクションおよび1つの出力セクションを有しており、その出力セクションは、コア機能コンポーネントを具備している。全ての構成に渡って、入力セクションは、信号のタイプおよびソースにしたがって変更されるが、出力セクションは、実質的に同じままであり、3つのコアコンポーネントを、3個の個別チップか、または、1個のチップセットとして組み込んでいる。このように、いくつかの構成は、各々がシステムボードに対するわずかの変更しか必要としないように、提供される。したがって、このシステムアーキテクチャは、デジタル衛星、デジタルケーブル、および、アナログケーブルのような異なる市場に合うユニットを作り出すことによって、提示される設計および製造上の課題を簡単にする。
【００１５】
本発明の出力セクションのコアコンポーネントは、以下のものを含んでいる：システムの他の部分のハードウェアコンポーネントを初期化し、制御する主たる機能を持つCPU；CPUと通信して、入力セクションから配信されるトランスポートストリームをデコードする実行能力を主として持つMPEG-2デコーダ/グラフィックスサブシステム；MPEG-2デコーダ/グラフィックスサブシステムと通信して、メディア処理、高速トランスポート出力、および、多方面に渡るI/O機能を含む様々な機能を持つメディアマネージャ。本発明は、さらに、入力セクションと出力セクションとの間のトランスポートストリームインターフェイス、いくつかのメモリコンポーネント、入力信号の個別のオーディオ成分およびビデオ成分を格納するための1つ以上のマスストレージデバイス、および本発明の種々のシステムコンポーネント間にデータを転送するためのシステムバスを具備している。本発明の他の観点および利点が、例として本発明の原理を例証する、添付の図面と組み合わせた以下の詳細な記述から明白になる。
【発明を実施するための最良の形態】
【００１６】
本発明は、マルチメディア信号処理システムで具体化される。本発明による一システムは、ユーザが、番組内の以前の場面を即座に見ることを任意に選択し、かつテレビジョン放送番組を見ることを可能にするマルチメディア格納／表示システムを提供する。本発明は、さらに、ユーザに、同時に他の番組を見ながら、または、調べながら、選択したテレビジョン放送番組を格納し、そして、格納した番組を、少なくとも、逆送り、高速順送り、プレー、停止、インデックス、高速／低速逆プレー、高速／低速プレー、の機能を使って見る能力を提供する。
【００１７】
図1を参照すると、本発明の好適な一実施例は、入力セクション101、メディアスイッチ102、および、出力セクション103を持っている。入力セクション101は、多数の形式、例えば、National Television Standards Committee (NTSC)放送またはPAL放送、および、Digital Satellite System (DSS), Digital Broadcast Services (DBS), Advanced Television Standards Committee (ATSC)のようなデジタル形式、のテレビジョン(TV)入力ストリームを取り込む。DBS, DSS, ATSCは、Moving Pictures Experts Group 2 (MPEG2)およびMPEG2トランスポートと呼ばれる標準に基づいている。MPEG2トランスポートは、番組が多重化された信号で見出されるように、TV受像機が、入力ストリームを分解することが出来るように、TVソース送信機からのデジタルデータストリームをフォーマットするための標準である。入力セクション101は、MPEGストリームを作り出す。MPEG2トランスポート多重化は、同じ放送チャンネルに、複数のビデオおよびオーディオ材料およびプライベートデータを持たせた、複数の番組をサポートする。入力セクション101は、チャンネルを特定の番組に同調させ、そこから特定のMPEG番組を抽出し、そしてそれをシステムの他の部分に供給する。アナログTV信号は、個別のビデオエンコーダおよびオーディオエンコーダを用いて、同様のMPEGフォーマットにエンコードされる。この際、システムの他の部分は、その信号がどのようにして得られたかについては、知らない。情報は、多くの標準的な仕方でアナログTV信号の垂直帰線消去期間(VBI)に変調することができる。例えば、North American Broadcast Teletext Standard (NABTS)は、情報をNTSC信号のライン10〜20上に変調するために用いることができるし、FCCは、ライン21が、クローズドキャプション(CC)サービスおよび拡張データサービス(EDS)に使用されることを規定している。このような信号は、入力セクションによってデコードされ、あたかも、それらが、MPEG2プライベートデータチャンネルを介して配信されたかのように、他のセクションに渡される。
【００１８】
メディアスイッチ102は、マイクロプロセッサCPU 106と、ハードディスクまたは格納装置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が、1つの番組を記録する。これは、別のストリームをディスク上に格納させていると同時に、1つのストリームを、そのディスクから抽出できることを意味する。
【００２１】
図3を参照すると、入ってくるMPEGストリーム301は、ビデオセグメント302, 305, 306とオーディオセグメント303, 304, 307によりインターリーブされている。それぞれ個別のビデオストリーム308およびオーディオストリーム309、即ち、バッファを作成するために、これらのエレメントを分離して、結合し直さなければならない。MPEGエレメントを、オーディオまたはビデオのアナログ成分に変換し直すために、それぞれ個別のデコーダが、用いられので、これが、必要である。デコーダが、信号の正確な再生のために適切に同期されるように、このような個別の配信には、タイムシーケンス情報を生成することが必要である。
【００２２】
メディアスイッチは、プログラムロジックが、適切なタイムシーケンス情報を、各セグメントに関連付け、恐らく、それをストリームに直接埋め込むことを可能にする。各セグメントに対するタイムシーケンス情報は、タイムスタンプと呼ばれる。これらのタイムスタンプは、単調に増加していき、かつシステムが起動する度にゼロから始まる。このことは、本発明が、任意の特定のビデオセグメントに、任意の特定のスポットを見出すことを可能にする。例えば、システムが、キャッシュされつつある、入ってくる連続的なビデオストリーム内の5秒間を読み出す必要がある場合には、そのシステムは、単に、そのストリームへの順方向の読み出しを開始し、そして該当するタイムスタンプを捜し出すだけでよい。
【００２３】
ストリーム内をインデックスするために、二分探索を、格納されているファイルに実行することができる。各ストリームは、タイムスタンピングが一様であるので、高速の二分探索を可能にする固定サイズのセグメントのシーケンスとして格納される。ユーザが番組の中途で開始したい場合には、システムは、格納されているセグメントの二分探索を実行して、該当のスポットを見つけ、最小の情報量で望みの結果を得る。そうではなくて、信号が、MPEGストリームとして格納されていれば、望みの位置を見つけ出すために、ストリームを、そのはじまりから直線的に解析することが必要となるであろう。
【００２４】
図4に関しては、メディアスイッチは、4つの入力直接メモリアクセス(DMA)エンジン402, 403, 404, 405を具備しており、各DMAエンジンは、それに連結されたバッファ410, 411, 412, 413を持っている。概念的に、各DMAエンジンは、ポインタ406、そのポインタに対するリミット407、次ポインタ408、および、次ポインタに対するリミット409を持っている。各DMAエンジンは、特定のタイプの情報、例えば、ビデオ402、オーディオ403、および、解析されたイベント405に対して専用である。バッファ410, 411, 412, 413は、サーキュラバッファであり、特定の情報を集める。DMAエンジンは、それに連結されたバッファ内で、リミット407に達するまでポインタ406をインクリメントし、次いで、次ポインタ408とリミット409をロードする。ポインタ406と次ポインタ408とを、対応するリミット値とともに、同じ値にセットすると、1つのサーキュラバッファが、作成される。次ポインタ408を異なるアドレスに対してセットして、ベクトルDMAを設けることができる。
【００２５】
入力ストリームは、パーザ401を通って流れる。パーザ401は、ビデオ、オーディオ、または、プライベートデータのセグメントの開始を指示するMPEG弁別イベントを捜すために、ストリームを解析する。例えば、パーザ401が、ビデオイベントを見出したときには、パーザ401は、ストリームを、ビデオDMAエンジン402に振り向ける。パーザ401は、データをバッファし、また、それを、ビデオDMAエンジン402を通して、ビデオバッファ410に直接メモリアクセスする。同時に、パーザ401は、イベントバッファ413にイベントを生成するイベントDMAエンジン405に、イベントを振り向ける。パーザ401が、オーディオイベントを見つけると、パーザ401は、そのバイトストリームを、オーディオDMAエンジン403に振り向け直し、そして、イベントバッファ413にイベントを生成する。同様に、パーザ401が、プライベートデータイベントを見つけると、パーザ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が一定のバッファサイズに達したとき、プログラムロジックは、補助制御情報を加えて、それらの論理セグメント603を順番に収容するPacketized Elementary Stream（PES：パケット化エレメンタリストリーム）605バッファと呼ばれる新しいバッファを生成する。各論理セグメントは、メディアスイッチ601によって満たされるサーキュラバッファ、例えば、ビデオバッファ613、を直接指し示す 604。その後、この新しいバッファは、そのバッファ中のストリームを、デコードするために提示する、または、格納媒体に書き込むというようないくつかの仕方でさらに処理することのできる他の論理コンポーネントに渡される。したがって、MPEGデータは、プロセッサによって、メモリ中の1つの位置から他の位置にコピーされることがない。これは、メモリ帯域幅とプロセッサ帯域幅がより低くて良いので、より費用効果の高い設計をもたらす。
【００２９】
MPEGストリームのPESバッファへの変換のユニークな1つの特徴は、上に示したように、論理セグメントに関連するデータが、そのバッファ自体内に存在する必要がないということである。PESバッファが、格納装置に書き込まれると、これらの論理セグメントは、それらが現われた論理的な順に格納媒体に書き込まれる。これは、ストリームのコンポーネントを、それらが、ビデオサーキュラバッファ内にあれ、オーディオサーキュラバッファ内にあれ、プライベートデータサーキュラバッファ内にあれ、格納媒体上のストリームデータの単一リニアバッファ内に集める効果を持つ。そのバッファは、格納媒体からの画一的な転送によって格納媒体から読み戻され、また、論理セグメント情報が、バッファ606内の実際の位置に一致するように更新される。より高いレベルのプログラムロジックは、論理セグメントしか扱わないので、この変換を認識しない。したがって、ストリームデータは、CPUによりDRAM内の位置間でそのデータをコピーする必要無しに、容易に管理される。
【００３０】
メディアスイッチのユニークな1つの観点は、高データレートを効果的かつ安価に扱う能力である。それは、ディスク内にビデオデータおよびオーディオデータを受け入れ、ディスクからビデオデータおよびオーディオデータを送り、ディスクにビデオデータおよびオーディオデータを送り、そして、ディスクから低価格プラットフォーム上にビデオデータおよびオーディオデータを抽出する機能を実行する。一般に、メディアスイッチは、CPUによる最小の介在で大量の情報を移動させるDMA能力を用いて、マイクロプロセッサCPUにより非同期かつ自律的に動作する。
【００３１】
図7を参照すると、メディアスイッチ701の入力側が、MPEGエンコーダ703に接続されている。さらに、メディアスイッチ701に供給されるMPEGオーディオデータ704、および垂直帰線消去期間(VBI)データ702に特定の回路も存在する。そうではなくて、デジタルTV信号が処理されている場合には、MPEGエンコーダ703が、MPEG2トランスポートデマルチプレクサに置き替えられ、また、MPEGオーディオエンコーダ704およびVBIデコーダ702が、取り除かれる。このデマルチプレクサは、ビデオ入力メディアスイッチポートを通して抽出されたオーディオ、ビデオ、および、プライベートデータチャンネルストリームを多重化する。
【００３２】
パーザ705は、MPEGエンコーダ703、オーディオエンコーダ704およびVBIデコーダ702からの、または、デジタルTVストリームの場合にはトランスポートデマルチプレクサからの、入力データストリームを解析する。パーザ705は、適切に再生し、かつストリームに特殊効果、例えば、早送り、逆送り、プレー、停止、高速／低速プレー、インデクシング、高速／低速逆プレーを実行するために、プログラムロジックが知る必要のある情報片、つまり、ビデオストリームまたはオーディオストリーム内の重要なイベントの全ての始まり、フレームの全ての開始、シーケンスヘッダの開始、の全てを検出する。
【００３３】
パーザ705は、ビデオセグメントかオーディオセグメントかを識別すると、または、プライベートデータが与えられると、FIFO 706にタグ707を置く。DMA 709は、これらのタグを、いつ、取り出されるかを制御する。セグメントのタグ707およびDMAアドレスが、イベントキュー708に置かれる。フレームタイプ情報は、それが、ビデオIフレーム、ビデオBフレーム、ビデオPフレーム、ビデオPES、オーディオPES、シーケンスヘッダ、オーディオフレーム、または、プライベートデータパケットのいずれの開始であっても、情報片が置かれた関連サーキュラバッファ中のオフセットと共にイベントキュー708に置かれる。CPU 713中で動作するプログラムロジックは、それがDRAM 714に転送された後、サーキュラバッファ内のイベントを調べる。
【００３４】
メディアスイッチ701は、CPU 713およびDRAM 714に接続されているデータバス711を持っている。さらに、アドレスバス712が、メディアスイッチ701、CPU 713、および、DRAM 714の間で共有されている。ハードディスクまたは格納素子710は、メディアスイッチ701のポートの1つに接続されている。メディアスイッチ701は、MPEGビデオデコーダ715、および、別個のオーディオデコーダ717にストリームを出力する。オーディオデコーダ717の信号は、リモートコントロール上のユーザコマンドまたは他の内部イベントに応答してシステムによって生成されるオーディオ合図を含んでいる。MPEGデコーダからのデコードされたオーディオ出力は、別のオーディオ信号とディジタル的に混合される 718。得られた信号は、ビデオ、オーディオ、および、オンスクリーンディスプレイを含んでおり、かつTV 716に送られる。
【００３５】
メディアスイッチ701は、8ビットデータを取り入れて、それをディスクに送ると同時に、ディスクから別のデータストリームを抽出して、それをMPEGデコーダ715に送る。上述のDMAエンジンの全ては、同時に作動させておくことができる。メディアスイッチ701は、フィールドプログラマブルゲートアレイ (FPGA)、ASIC、または、個別ロジックを用いて、ハードウェア的に実装することができる。
【００３６】
各フレームが存在するであろう場所の開始を捜すために、膨大なデータストリームの初めから終りまで解析する必要はなく、プログラムロジックは、DRAM 714内のサーキュライベントバッファを見さえすればよく、かつそれは、各フレームの開始がどこであるか、および、フレームタイプを示すことが出来る。このアプローチは、大量のCPUパワーを節約し、CPU 713のリアルタイム要求の重要性を低いものにする。CPU 713は、どの時点でも超高速である必要がない。メディアスイッチ701は、タスクを完了するために、CPU713に、可能な限り多くの時間を与える。解析機構705およびイベントキュー708は、CPU 713を、オーディオ、ビデオおよびバッファの解析、および、ストリームのリアルタイム性から切り離すが、これは、より低コストを可能にする。それは、また、そうでなければ必要となる場合よりもはるかに安価なメモリを用いて、はるかに低いクロックレートで動作するCPU環境でのバス構造の使用を可能にする。
【００３７】
CPU 713は、1つのDMA転送をキューアップする能力を持っており、その空き時間に次のDMA転送をセットアップすることができる。これは、CPU 713に、それがDMAコントローラ709に情報を提供することができる大きな時間間隔を与える。CPU 713は、大きな持ち時間が許可されているため、より大きな時間ウィンドウでDMA割り込みに応答することができる。MPEGストリームは、MPEG2トランスポートから抽出されたものであろうが、アナログテレビ信号からエンコードされたものであろうが、通常、可変ビットレートエンコーディング(VBR)と呼ばれる技術を用いてエンコードされる。この技術は、一連のイメージを表わすのに必要なデータの量を、それらのイメージ間の動き量によって変える。この技術は、信号のために必要な帯域幅を大きく低減することができるが、（バスケットボールゲームのような）すばやい動きの連続は、はるかに大きな帯域幅を必要としてエンコードされるであろう。例えば、HughディレクTV衛星システムは、フレーム毎に変化する、1〜10 Mb/sの任意の必要帯域幅で信号をエンコードする。どんなコンピュータシステムにとっても、この構造なしに、このようにすばやく変化するデータレートに遅れずに追随することは困難であろう。
【００３８】
図8に関しては、CPU内のプログラムロジックは、3つの概念的なコンポーネント：ソース801、トランスフォーム802、シンク803を持っている。ソース801は、データバッファを作り出す。トランスフォーム802は、データバッファを処理し、シンク803は、データバッファを使い果たす。トランスフォームは、それが動作するデータバッファを割り当て、また、キューに置く能力がある。バッファは、あたかも「空」であるかのように、データのソースに割り当てられ、データのソースは、バッファに「満杯」を返す。次に、バッファはキューに置かれ、「満杯」としてシンクに与えられ、シンクは、バッファに「空」を返す。
【００３９】
ソース801は、エンコーダ、例えば、デジタル衛星受信機、からデータを受け取る。それは、下流のトランスフォームから、このデータのためのバッファを取得し、バッファにデータを詰め、次に、上述したように、そのバッファをパイプラインに押し下げる。ソースオブジェクト801は、システムの他の部分に関して何も知らない。シンク803は、上流のトランスフォームからバッファを受け取り、デコーダにデータを送り、次に、再使用のためにバッファを放出して、バッファを使い果たす。
【００４０】
2つのタイプのトランスフォーム802：空間的トランスフォームおよび時間的トランスフォームが、用いられる。空間的トランスフォームは、例えば、通過しているバッファされたデータに画像畳み込みまたは圧縮／解凍を実行するトランスフォームである。時間的トランスフォームは、システムに行くバッファと、システムから来るバッファとの間に表現できる時間関係がないときに用いられる。このようなトランスフォームは、バッファを、格納媒体上のファイル804に書き込む。バッファは、その後で取り出され、パイプラインを下りに送られ、そして、ストリーム内に適切に並べられる。
【００４１】
図9には、プログラムロジックのC++クラス階層展開が、示されている。TiVoメディアカーネル(Tmk)904、908、913は、オペレーティングシステムカーネルとともに調停を行う。このカーネルは、メモリ割り当て、同期、および、スレッディングのような動作を備えている。Tmkコア 904, 908, 913は、メディアカーネルから取り込まれたメモリを、オブジェクトとして組み立てる。それは、オブジェクトを構築し、また、分解するために、オペレータを新しく備え、また、取り除く。各オブジェクト（ソース901、トランスフォーム902、シンク903）は、定義によってマルチスレッドされて、並列に走ることができる。
【００４２】
Tmkパイプラインクラス905, 909, 914は、システムを通してフロー制御の実行能力を持っている。パイプラインは、ソース901からシンク903までのフローにおいて、次のパイプラインと接点を持っている。パイプラインを停止するために、例えば、「停止」と呼ばれるイベントが、パイプライン中の最初のオブジェクトに送られる。このイベントは、パイプラインを下って、次のオブジェクト、更に次のオブジェクト等に中継されていく。このことは全て、パイプラインを通過しているデータに非同期に起こる。したがって、電話通信のような応用と同様に、MPEGストリームのフロー制御は、ストリーム自体とは非同期で、それから分離している。このことは、停止、巻戻し、高速送り、および、その他のものを含めて、前述の特徴をサポートするに、同時に十分に強力である、単純なロジック設計を可能にする。さらに、この構造は、バッファされたデータを単純に放棄し、デコーダを単一のイベントを用いてリセットでき、その後、新しいストリームからのデータが、パイプラインを伝わりおりるから、ストリームソース間の高速で効率的なスイッチングを可能にする。このような能力は、例えば、入力セクションによって捕獲されているチャンネルをスイッチングする場合、または、入力セクションからのライブ信号と格納されているストリームとをスイッチングする場合に必要である。
【００４３】
ソースオブジェクト901は、Tmkソース 906であり、また、トランスフォームオブジェクト902は、TmkXfrm 910である。これらは、パイプラインのクラスに対する標準的な振る舞いを定義する中間クラスである。概念的には、それらは、パイプラインを下ってバッファとハンドシェークする。ソースオブジェクト901は、メディアスイッチのような物理データソースからデータを取り込んで、それを、PESバッファに置く。バッファを得るために、ソースオブジェクト901は、自分のパイプラインの下流のオブジェクトにバッファを求める(allocEmptyBuf)。ソースオブジェクト901は、十分なメモリが存在するまでブロックされている。このことは、パイプラインが自動調整式であることを意味する。これは、自動フロー制御を持っている。ソースオブジェクト901が、バッファを満杯にすると、ソースオブジェクト901は、それを、pushFullBuf機能によってトランスフォーム902に返す。
【００４４】
シンク903も、同様にフロー制御される。それは、次に満杯になったバッファを受け入れる準備ができていることをトランスフォーム902に告げるnextFullBufを呼び出す。この動作は、バッファが用意されるまで、シンク903をブロックしておくことができる。シンク903が、バッファを使い終わる（即ち、それが、バッファ内のデータを使い果たす）と、それは、releaseEmptyBufを呼び出す。releaseEmptyBufは、そのバッファをトランスフォーム902に返す。そうすると、トランスフォーム902は、そのバッファを、例えば、ソースオブジェクト901に渡して、再び満杯にすることができる。これは、この方法が自動フロー制御される利益に加えて、さらに、トランスフォームによる固定バッファ割り当ての実施を可能にすることによって、バッファに専用のメモリ量に制限を与える。これは、費用効率の高い、制限されたDRAM環境を達成させる重要な特徴である。
【００４５】
メディアスイッチクラス909は、Tmkクリップキャッシュ 912オブジェクトのallocEmptyBuf法を呼び出して、それからPESバッファを受け取る。次に、それは、メディアスイッチハードウェア内のサーキュラバッファから出て、PESバッファを生成する。メディアスイッチクラス909は、バッファを満杯にして、それを、Tmkクリップキャッシュ 912オブジェクトに押し戻す。
【００４６】
Tmkクリップキャッシュ 912は、格納媒体上にキャッシュファイル918を保持する。それは、また、このキャッシュ内に2つのポインタ：ソース901から入ってくる次のバッファが、どこに挿入されるかを示すプッシュポインタ919、および、用いられている現在のバッファを指すカレントポインタ920、を保持する。
【００４７】
デマンドに応じて各バッファをメモリマネージャにより割り当てるメモリプールを用いて、バッファ体系を実行することができる。バッファは、リンクリスト918内で次のバフポインタによって互いにリンクし合っている。バッファが解放されると、それらは、メモリプールに戻されて自由になり、システム内の他のクラスまたはタスクに割り当てるために利用できる。プッシュポインタ919は、リンクリスト中の最後のバッファを指し、一方、カレントポインタ920は、用いられている現在のバッファを指す。
【００４８】
カレントポインタによって指されたバッファは、Velaデコーダクラス916に渡される。Velaデコーダクラス916は、ハードウェア内のデコーダ921と対話する。デコーダ921は、その後、NTSC, PAL、または、他のアナログフォーマットのアナログTV信号にエンコードされることになる、デコードされたテレビ信号を作り出す。Velaデコーダクラス916が、バッファを使い終わると、それは、releaseEmptyBufを呼び出す。
【００４９】
このクラス構造は、システムを、テストおよびデバッグし易くする。各レベルを別々にテストして、それを、適正な態様で確実に実行するようにでき、そして、それらのクラスを徐々に集めて、各オブジェクトを有効にテストする能力を維持しながら、望みの機能を達成することができる。
【００５０】
コントロールオブジェクト917は、ユーザからコマンドを受け取り、パイプラインにイベントを送って、パイプラインがなにを行うのかを制御する。例えば、ユーザが、リモートコントロールを持って、TVを見ているときに、ユーザが、停止を押すと、コントロールオブジェクト917が、シンク903に停止を告げるイベントを送る。シンク903は、新しいバッファを求めることを中止する。カレントポインタ920は、それが今あるところにそのままでいる。シンク903は、それが、それにプレーするように告げる別のイベントを受信したとき、バッファの取得を再開する。システムは、完全に同期されているので、それは、それが中止していたフレームから開始する。
【００５１】
リモートコントロールは、さらに、高速順送りキーを持っていてもよい。高速順送りキーが押されたとき、コントロールオブジェクト917は、トランスフォーム902に、順方向に2秒間移動するように告げるイベントを送る。トランスフォーム902は、2秒間のタイムスパンが、3つのバッファの順方向への移動を要求することを見出す。その後、それは、下流のパイプラインにリセットイベントを出し、その結果、ハードウェアデコーダ内に存在するかもしれない、如何なるキューに置かれているデータまたはステートも、洗い流される。MPEGストリームの構造は、複数のフレームのデータを通して、ステートの保存を必要とするので、これは、危機的なステップである。したがって、そのステートは、ポインタを置き換えることによって無効にされる。したがって、それは、3つのバッファの前方（順方向）にカレントポインタ920を移動させる。シンク903がnextFullBufを次に呼び出すときに、それは、新しいカレントバッファを得る。同じ方法が、トランスフォーム902がカレントポインタ920を後方（逆方向）に移動させる高速逆送りに対しても作動する。
【００５２】
システムクロックリファレンスが、デコーダ内に存在している。システムクロックリファレンスは、高速プレーに対して加速され、または、低速プレーに対して減速される。シンクは、クロック速度に依存して、全バッファに対して、単に、より高速、または、より低速を求めるだけである。
【００５３】
図10に関すると、TmkXfrmクラスに由来した他の2つのオブジェクトが、ディスクアクセスのためにパイプラインに置かれる。一方は、Tmkクリップリーダ 1003と呼ばれ、他方は、Tmkクリップライタ 1001と呼ばれる。バッファは、Tmkクリップライタ 1001に入り、そして、格納媒体1004上のファイルに押し出される。Tmkクリップリーダ 1003は、格納媒体1005上のファイルから取り除かれているバッファを求める。Tmkクリップリーダ 1003は、allocEmptyBuf法とpushFullBuf法しか備えておらず、一方、Tmkクリップライタ 1001は、nextFullBuf法とreleaseEmptyBuf法しか備えていない。Tmkクリップリーダ 1003は、したがって、Tmkクリップキャッシュ 1002の入力側、即ち、「プッシュ」側と同じ機能を実行し、一方、Tmkクリップライタ 1001は、したがって、Tmkクリップキャッシュ 1002の出力側、即ち、「プル」側と同じ機能を実行する。
【００５４】
図11には、複数の機能を遂行する好適な一実施例が、示されている。ソース1101は、TV信号入力を持っている。そのソースは、TmkXfrmに由来するトランスフォームであるプッシュスイッチ 1102にデータを送る。プッシュスイッチ 1102は、コントロールオブジェクト1114によってスイッチすることができる複数の出力を持っている。これは、ユーザの意志で、パイプラインの一部を中止し、かつ他のパイプラインを開始することができることを意味する。ユーザは、相異なる格納デバイスにスイッチすることができる。プッシュスイッチ 1102は、格納デバイス1107に至るTmkクリップライタ 1106に出力することができ、また、キャッシュトランスフォーム1103に書き込むこともできる。
【００５５】
この装置の重要な特徴は、それが、プログラムロジックの制御の下で、入ってくる信号の一部を選択的に捕獲することを容易に出来ることである。現在時刻のような情報、または、恐らく特定のタイムスパンのような情報、または、恐らく視聴者によるリモートコントロールボタン押下による情報に基づいて、信号の一部を記録するために、Tmkクリップライタ 1106のスイッチを入れ、そして、ある時間の後にスイッチを切ってもよい。このスイッチングは、通常、プッシュスイッチ 1102オブジェクトに「スイッチ」イベントを送ることによって生じる。
【００５６】
選択捕獲をトリガする他の方法は、VBI内の変調された情報、または、MPEGプライベートデータチャンネルに置かれた情報によることである。VBIまたはプライベートデータチャンネルからデコードされたデータが、プログラムロジックに渡される。プログラムロジックは、このデータを調べて、このデータが、以前に変調されていたテレビ信号の捕獲を始めるべきであることを、指示しているかどうかを決定する。同様に、この情報は、さらに、いつ記録を終了すべきかを指示してもよいし、または、他のデータアイテムを、捕獲を終了すべきときを指示する信号に変調してもよい。開始指標および終了指標を、その信号に明示的に変調してもよいし、または、標準的な様式で信号に置かれた他の情報を、この情報のエンコードのために用いてもよい。
【００５７】
図12には、プログラムロジックが、捕獲をトリガするための特定のワードまたはフレーズを用いて、開始時刻および終了時刻を決定するために、どのようにして、クローズドキャプション(CC)フィールド内に含まれているワードをスキャンするかを実証する一例が示されている。ここでは、NTSCまたはPALフィールドのストリーム1201が、表わされている。CCバイトは、各奇数フィールド1202から抽出され、かつワードパーザ1204による処理のために、（上述したようにメモリ割り当て体系を用いた）サーキュラバッファまたはリンクリスト1203に入れられる。ワードパーザ1204は、ワード境界、即ち、通常、スペース、ピリオド、または、他の区切り文字に遭遇するまで、文字を集める。上述のことから、MPEGオーディオセグメントおよびビデオセグメントは、一連の固定サイズのPESバッファに集められることを想記されたい。特別のセグメントが、CCフィールド1205から抽出されたワードを保持するために、各PESバッファに加えられる。したがって、CC情報を、オーディオおよびビデオに時間同期して保存し、そして、ストリームが表示されるときに、視聴者に正しく提示することが可能になる。これは、また、格納されているストリームを、プログラムロジックの空き時間にCC情報を得るために処理することも可能にする。これは、処理量を広げ、それによって、コストを縮小し、効率を改善する。このような場合には、特別のセグメントに格納されているワードが、ステートテーブルロジック1206に渡されるだけである。
【００５８】
当業者であれば、サーキュラバッファが、上記のエリアで特定的に挙げられたが、これに代えて、やはり上述したメモリプール割り当て体系を用いたリンクリストを、用いることができることを容易に認識するであろう。
【００５９】
ストリーム捕獲中、各ワードは、そのワードの認識についてとるべき行動を示すテーブル1206内に、その行動について参照される。この行動は、単に、レコグナイザステートマシン1207のステートを変更するだけであってもよいし、または、ステートマシン1207に、「捕獲開始」、「捕獲中止」、「知覚されたフレーズ(phrase seen)」等の要求のような行動要求を出させてもよい。実際、認識されたワードまたはフレーズが、パイプラインをスイッチしてもよい。例えば、番組の中で望ましくない言語が用いられるときには、異なるオーディオトラックを重ね合わせてもよい。
【００６０】
パージングステートテーブル1206およびレコグナイザステートマシン1207を、いつでも修正または変更してもよいことに注意されたい。例えば、異なるテーブルおよびステートマシンを、各入力チャンネルに対して備えてもよい。その代わりに、これらのエレメントを、時刻に依存させて、または、他のイベントによって、スイッチしてもよい。
【００６１】
図11を参照すると、シンク1105に出力するプルスイッチ1104が、追加されている。シンク1105は、プルスイッチ 1104からバッファを得る、または、返すために、nextFullBufおよびreleaseEmptyBufを呼び出す。プルスイッチ 1104は、任意の数の入力を持つことができる。その1つの入力は、アクションクリップ1113であってもよい。リモートコントロールは、入力ソース間をスイッチすることができる。コントロールオブジェクト1114は、プルスイッチ 1104にイベントを送って、それにスイッチするように告げる。それは、現在の入力ソースから、コントロールオブジェクトが選択するいかなる入力ソースにもスイッチする。
【００６２】
アクションクリップクラスは、予測可能でかつ制御可能な態様で、恐らくは、リモートコントロールにより視聴者が選択した制御を加えることによって、多くの異なる格納された信号を順番に並べるために設けられている。したがって、それは、次に格納される信号にスイッチングするための「スイッチ」イベントを受け取るTmkXfrmオブジェクトの派生物として現われる。
【００６３】
これは、プログラムロジックまたはユーザが、ビデオ出力のカスタムシーケンスを作成することを可能にする。任意の数のビデオセグメントを、あたかも、プログラムロジックまたはユーザが、放送スタジオビデオミキサを用いているかのように、一列に並べて、組み合わせることができる。Tmkクリップリーダ 1108、1109、1110が、割り当てられ、その各々が、プルスイッチ 1104につながれる。プルスイッチ 1104は、ビデオクリップおよびオーディオクリップを組み合わせるために、Tmkクリップリーダ 1108, 1109, 1110をスイッチする。フロー制御は、パイプラインが構築されている仕方のため、自動的である。プッシュプルスイッチは、放送スタジオにおけるビデオスイッチと同じである。
【００６４】
本明細書に記述される派生クラスおよび得られるオブジェクトを、TVストリームの格納、検索、スイッチング、および、視聴のために、多くの異なる有用な構成を作成するための任意の仕方と、組み合わせてもよい。例えば、複数の入力セクションおよび出力セクションが利用可能な場合には、他の1つの入力が格納される間に、1つの入力が視聴され、そして、第2の出力によって生成されたピクチャインピクチャウィンドウが、以前に格納されたストリームを試写するために用いられる。このような構成は、単一の費用効率の高いデバイスで、高価で複雑精巧なハードウェア解法に期待される機能を達成するために、ユニークで、新規なソフトウェア変換を適用することを表わしている。
【００６５】
図13には、VCRバックアップを実装しているハイレベルシステムビューが、示されている。出力モジュール1303が、VCR 1307にTV信号を送る。これは、ユーザが、ビデオテープにTV番組を直接記録することを可能にする。本発明は、ユーザが、ビデオテープに記録するためにディスクから番組をキューアップして、その番組をVCR 1307に送る時をスケジュール化することを可能にする。番組を送る前に、タイトルページ（EPGデータ）を、VCR 1307に送ることができる。長すぎる番組は、プレー速度を加速する、または、フレームを落とすことによって、より小さなビデオテープに適合するように縮小することができる。
【００６６】
VCR 1307の出力は、また、入力モジュール1301に戻すことができる。この構成では、VCRは、メディアスイッチ1302のためのバックアップシステムとして働く。如何なるオーバーフローした格納またはプライオリティの低いプログラミングも、後の検索のためにVCR 1307に送られる。
【００６７】
入力モジュール1301は、垂直帰線消去期間(VBI)上にエンコードされた情報をデコードして、システムの他の部分に渡すことができる。出力モジュール1303は、システムの他の部分によって供給されるデータを出力VBIにエンコードすることができる。出力信号に種々の種類の識別情報をエンコードするように、プログラムロジックを配置してもよく、この場合、その出力信号は、VCR 1307を用いてテープ上に記録される。このテープを入力に戻してプレーすることによって、プログラムロジックは、テープに録音されたTV信号が適切に扱われるように、この識別情報を読み返すことが可能になる。例えば、特定の番組を、それが記録されたときやソースネットワークなどに関する情報とともにテープに記録してもよい。この番組が、入力モジュール内で再生されるとき、この情報を、信号の格納、視聴者への提示などを制御するために用いることができる。
【００６８】
当業者であれば、プログラムロジックに、テレビジョン信号として考えるのは適切でない種々のデータアイテムを導入するために、このようなメカニズムを用いることができることを容易に認識するであろう。例えば、ソフトウェア更新等のデータを、システムに渡してもよい。テレビジョンストリームからこのデータを受信しているプログラムロジックは、ある認証シーケンスを要求するというような、および／または、ある以前に取得されたキーにしたがって埋め込まれた情報を解読するというように、どのようにしてデータを扱うかに対して制御を課してもよい。このような方法は、通常の放送信号に対しても同様に作動し、プログラムロジックに非TV制御情報およびデータを供給する効率的な手段をもたらす。
【００６９】
さらに、当業者であれば、VCRが、上で特定的に挙げられたが、これに代えて、如何なるマルチメディア記録デバイス（例えば、デジタルビデオディスク−ランダムアクセスメモリ (DVD-RAM)レコーダ）も、簡単に置き換えられることを容易に認識するであろう。
【００７０】
ここで、図14には、本発明のシステムアーキテクチャのトップレベルビューの線図的なブロックダイヤグラムが、与えられている。一般的に、本発明を具体化するシステムボード1400は、様々なソースのうちの1つから入力信号を受け取る入力セクション1401を具備している。以下に記述するように、入力セクション1401は、各々が異なるソースから入力を受け取るように適合化された種々のバージョンで提供される。出力セクション1402は、主として、本発明の様々なハードウェアコンポーネントの動作を初期化し、そして、制御するように機能するCPU 1403を具備している。上に言及したように、CPUは、ビデオ信号の高データレートから切り離されているので、プロセッサ要件が低減される。MPEG-2トランスポートストリームデコーダ／グラフィックスサブシステム1404は、入力セクション1401から、トランスポートストリームインターフェイス1406を通じて配信されたトランスポートストリームを受け取る。トランスポートストリームデコーダ／グラフィックスサブシステム1404は、ホストバス1408によってCPU 1403と通信する。トランスポートストリームデコーダ/グラフィックスサブシステムは、以下に詳細に記述するように、様々な機能に役立つが、その主要な機能は、入力セクションから受信したトランスポートストリームをデコードすることと、そのデコードされたストリームを、ビデオ信号としてテレビジョンセット（図示せず）に出力することである。
【００７１】
出力セクションは、さらに、メディアマネージャ1405を具備している。メディアマネージャは、多くの機能を備えているが、その主な機能は、それに組込まれているI/O機能の数およびタイプによって、システムコンポーネント間をブリッジするエレメントの機能である。例えば、メディアマネージャは、ユーザが本発明を操作するハンドヘルドリモートコントロールと結合するためのIR受信機/送信機インターフェイスを具備している。さらに、メディアマネージャは、重要なメディア処理機能に役立つ。前に指摘したように、トランスポート信号は、メディアマネージャによって、MPEG-2デコーダに送られ、かつ格納デバイスにセーブされる。メディアマネージャ1405は、システムバス1407を使って、MPEG-2トランスポートストリームデコーダ/グラフィックスサブシステム1404と通信する。本発明の好適な一実施例は、システムバスとしてPCIバスを用いる。出力セクションは、3つの個別チップ：CPU、MPEG-2デコーダ/グラフィックスサブシステム、メディアマネージャとして区分するのが好都合である。この区分構成の単純性は、初期設計・開発のために必要とされる時間および経費を劇的に低減することによって、相当低減されたユニット当りのコストを可能にする。さらに、当業者であれば、出力セクションを、単一のチップまたはチップセットとして設けてもよいということを認識するであろう。
【００７２】
図15は、出力セクション1402を、より非常に詳細に示している。出力セクションが、本発明のコアコンポーネント、即ち、CPU 1403、MPEG-2デコーダ/グラフィックスサブシステム1404、および、メディアマネージャ1405を包含することが認識されるであろう。CPU 1403は、主として、ミドルウェアおよびアプリケーションソフトウェアと同様に、システムソフトウェアを走らせる機能を果たす。システムソフトウェアは、OS（オペレーティングシステム）カーネルおよびデバイスドライバを含んでいる。システムソフトウェアは、システムの様々なハードウェアコンポーネントを初期化し、制御するように動作する。CPUの機能のより詳細な記述は、上に与えられている。システム内におけるほとんど全てのデータ移動は、CPUと関わらないDMA転送または専用の高速トランスポートインターフェイスに基づいている。様々なRISCプロセッサが、本発明で使用するのに適しているけれども、現実施例は、202MHzのクロック周波数で走り、32Kインストラクションキャッシュおよび32Kデータキャッシュを持つ64ビットMIPS RISCアーキテクチャを備えた、ニューヨークNYのNEC株式会社によって製造されたVR5432 CPUを使用している。このCPUは、システムバス1407を使って、MPEG-2デコーダ/グラフィックスサブシステム1404に接続されている。
【００７３】
例えば、Irvin CAのBroadcom株式会社によって供給されるBCM7020のような、MPEG-2デコーダ/グラフィックスサブシステム1404は、出力セクション1402の中心的なコンポーネントと考えることができる。実際、MPEG-2デコーダ/グラフィックスサブシステム1404は、以下を含むが、これらに限定されない多数の重要なコンポーネントを組み込んでいる。
・  ホストブリッジ
・  メモリコントローラ
・  MPEG-2トランスポートデマルチプレクサ
・  少なくとも1つのMPEG-2デコーダ
・  オーディオ／ビデオデコーダ
・  PCIブリッジ
・  バスコントローラ
・  モデムインターフェイス
・  スマートカードインターフェイス
【００７４】
上述したように、入力セクション1401によって生成されたトランスポートストリームは、トランスポートインターフェイス1406の1つに供給され、そこで、それは、個別のオーディオおよびビデオのパケット化エレメンタリストリーム(PES)にデマルチプレクスされる。その後、これらのストリームは、ハードディスクドライブ1505に格納され、出力1504を通して再生される。MPEG-2デコーダ/グラフィックスサブシステム1404に含まれているトランスポートストリームデマルチプレクサは、デマルチプレクシング動作の実行能力を有する。再生に先立って、オーディオおよびビデオのパケットストリームが、ハードディスクドライブから検索されて、トランスポートストリームに再び組み立てられる。その後、そのトランスポートストリームが、ビデオ信号にデコードされる。コンポーネント1404に含まれているMPEG-2トランスポートストリームデコーダは、MPEG-2トランスポートストリームのデコーディングを実行する能力を有する。コンポーネント1404は、さらに、対話型番組案内のような高品質のオンスクリーンディスプレイを生成するためのグラフィックスエンジンを具備している。コンポーネント1404の出力側は、Sビデオ、オーディオ、SPDIR (Stereo Paired Digital Interface)、CVBS（コンポジットビデオベースバンド信号）を含む、いくつかの出力を備えている。さらに、スマートカードインターフェイス1503、および、モデム1519がインターフェイスで接続されるモデムポート1506が、設けられている。スマートカードインターフェイスは、2個までのスマートカードリーダをサポートする。より多くのことが、スマートカードの機能に関して、以降に述べられる。
【００７５】
出力セクション1402は、さらに、OSカーネルの制御の下で、メモリエレメント1501を具備している。システムソフトウェアは、他の全てのデバイスドライバが、DMA（直接メモリアクセス）のために通常用いられる連続したメモリバッファを割り当てることを可能にする一個のデバイスドライバインターフェイスを備えている。そのメモリエレメントは、少なくとも32MBあることが好ましい、SDRAM（シンクロナスダイナミックランダムアクセスメモリ）であることが好ましい。しかしながら、他のメモリ構成も、完全に、本発明の精神および範囲内にある。さらに、以降に記述するように、本発明は、OSカーネルに制御されない、他のメモリエレメントを具備してもよい。
【００７６】
フラッシュPROM（プログラム可能な読み出し専用メモリ）1502は、ハードディスクドライブから、または、TCP/IPネットワーク接続を通じて、OSカーネルを起動するに先立って、システムボードステートを初期化するブートコードを含んでいる。メモリテストおよびPOST（パワーオンセルフテスト）のような基本的なシステム起動タスクの実行に加えて、PROM 1502は、PROM自身も、起動しているOSカーネルも書き換えられていないことを保証することによって、システムの物理アーキテクチャのキーコンポーネントとしても働く。これは、OSカーネルイメージ上のみならずPROMコード上でデジタルシグネチャを計算することによって遂行される。
【００７７】
前に指摘したように、PCIバス1407を使ってMPEG-2デコーダ/グラフィックスサブシステム1404に接続されたメディアマネージャ1405は、システムのハードウェアコンポーネントの多く、特に、CPU 1403、ハードディスクまたは格納デバイス1505、および、メモリ1501の間の橋渡し機能、または、調停機能を実行する。メディアマネージャ1405は、メディアマネージャ内部に集積された色々のインターフェイスおよびI/Oデバイスのおかげで、この機能を備える。本発明の好適な本実施例において、メディアマネージャは、ASIC（Application Specific Integrated Circuit：特定用途向け集積回路）に実装される。しかしながら、メディアマネージャを、プログラム可能なロジックデバイスに実装することもできるし、または、個別デバイスから構成することもできる。メディアマネージャ1405は、少なくとも以下のものを集積している。
・  データ暗号化を備えたIDEホストコントローラ
・  DMAコントローラ
・  IR受信機／送信機インターフェイス
・  複数のUART(Universal Asynchronous Receiver/Transmitter)
・  複数のI2C(Inter-IC)バス
・  複数のGPIO（General Purpose I/O：汎用入出力ポート）
・  PCIバスアービタ
・  MPEG-2メディアストリームプロセッサ
・  PCM（Pulse Code Modulation：パルス符号変調）オーディオミキサ
・  高速トランスポート出力インターフェイス
・  ファンスピードコントロール
・  前面パネルキーボードマトリックススキャナ
【００７８】
図15に示すように、メディアマネージャは、システム温度をモニタするために熱電対1507を具備している。その熱電対は、I2Cバス1508の1つを通して、メディアマネージャとインターフェイスする。順番に、ファン速度が、熱電対からの入力に基づいて、システムソフトによって、ファン1509を制御するファンコントロール1510によりコントロールされ、最適の動作温度にシステムを維持する。
【００７９】
前述したように、メディアマネージャは、また、CPU 1403、メモリ1501、および、ハードディスクドライブ1505間のメディアストリームの転送を調停する。これは、上に言及したメディアストリームプロセッサおよび高速トランスポート出力インターフェイスの働きを通して遂行される。
【００８０】
例えば、San Jose CAのATMEL株式会社によって供給されるAT90S3232Cのような、セキュアマイクロコントローラ1511が、UART 1512の1つを通して、メディアマネージャASIC 1405とインターフェイスで接続される。マイクロコントローラ1511は、暗号化と認証のような暗号応用のために特に設計されたものであることが好ましい。以下に記述するようにディスク暗号化のためのマスターキーを備えることに加えて、マイクロコントローラは、製造中に無作為に作成される、各ユニットに特有のプライベートキーも含んでいる。いったんコンポーネントに書き込まれると、そのキーは、読み出すことはできず、認証要求に応じるためにしか用いることができない。
【００８１】
図示されているように、2台までのハードディスクドライブ1505が、記録されたビデオプログラミングの格納のために設けられている。上述したように、IDEホストコントローラが、メディアマネージャASIC 1405に集積されており、転送単位でどちらのディスクドライブにでも適用できるディスク暗号化フィーチャを備えている。マイクロコントローラは、上述したように、ディスク暗号化のために、マスターキーを生成し、暗号化し、そして、解読する。
【００８２】
RS232ポート1514は、他の1つのUART 1513とインターフェイスする。前面パネルナビゲーションクラスタ1516が、GPIO 1515の1つを通してメディアマネージャASICとインターフェイスする。IR受信機／送信機1518が、IR受信機/送信機インターフェイス1517を通してメディアマネージャASICとインターフェイスする。IR受信機アセンブリが、以下でより非常に詳しく記述するように、透明な窓の裏側で、前面パネルナビゲーションクラスタにマウントされている。それは、ハンドヘルドリモートコントロールからの変調された信号を受信し、その信号をそのままメディアマネージャASICに出力する。メディアマネージャASICは、その信号を、さらに処理するためにCPUに送り出すか、IR送信機1518へのパススルーパス(pass-through path)に供給する。リアルタイムクロック（図示せず）が、I2Cポートの1つを通してメディアマネージャとインターフェイスされている。本発明は、ユーザが、指定したときに選択したものを記録するように、あらかじめシステムをプログラムすることができる、パーソナルビデオレコーダとして使用するように意図されているので、リアルタイムクロックは、基本的な要件である。
【００８３】
前述したように、入力信号は、入力セクション1401によって受け取られ、MPEG-2トランスポートストリームとして出力セクション1402に渡される。入力セクションは、信号を発生するソースのタイプにしたがって、いくつかの構成のうちの1つに定められる。入力セクション1401を、ソースのタイプに応じて区分して定め、一方、出力セクションを、全てのバージョンに渡って同じにすることによって、システムボードにわずかの修正しか伴わない種々の構成のユニットを作り出すことが可能である。このようにして、相異なる市場に合うようにユニットを作り出すことによって、起こり得る製造上の課題の程度が、相当に縮小される。ここで図16を参照すると、アナログ信号を受け取るように適合化された入力セクション1401aが、示されている。好適な本実施例において、アナログ入力セクションは、様々なフォーマット：コンポジットビデオ、NTSC、PAL、SECAM、または、Sビデオのアナログ信号を受け取る。
【００８４】
NTSC信号の場合には、San Jose CAのアルプス電気によって供給されるTMDH-2のようなチューナ／RF復調器1601が、望みのチャンネルに信号をセットする。チューナアセンブリが、同一のコンポーネントに、チューナ、RF復調器、および、RFバイパスを組み込むことが、好ましい。そのチューナアセンブリは、外部に向いたI2Cバスポートを通じてメディアマネージャASIC 1405によって制御される。
【００８５】
Freiburg（ドイツ）のMicronas Semiconductor社によって供給されるMSP4448Gのような、マルチスタンダードサウンドプロセッサ1603が、コンポジットオーディオコネクタまたはチューナ／RF復調器1601からアナログオーディオ入力を受け取る。さらに、それは、I2Sバスを通じてメディアマネージャASIC 1405からデジタルオーディオ入力を受け取る。生じるオーディオ信号が、I2Sバスを通じてMPEGエンコーダ1604に出力される。
【００８６】
デコーダ1602、即ち、例えば、Eindhoven（オランダ）のPhilips Semiconductor社によって供給されるSAA7114Hビデオデコーダのような、NTSC/PAL/SECAMビデオデコーダが、チューナ／RF復調器1601、コンポジットビデオ入力、Sビデオ入力のいずれかから入力を受け取り、それを、例えば、BROADCOM社によって供給されるBCM7040のような、MPEG-2エンコーダ1604に入力するために、CCIR 656（Comit&eacute; Consultatif International des Radiocommunications：国際無線通信諮問委員会, 勧告656）デジタルフォーマットに変換する。
【００８７】
MPEG-2エンコーダ1604は、NTSC/PAL/SECAMビデオデコーダ1602からの入力、および、前に言及したオーディオ入力を受け取って、MPEG-2トランスポートストリームを出力として作り出す。本発明の好適な本実施例において、エンコーダ1604は、固定ビットレート(CBR) MPEG-2トランスポートストリームに、オーディオ入力とビデオ入力とを多重化するようにプログラムされる。しかしながら、ディスク空き空間を保存するために、可変ビットレート(VBR)ストリームを作り出すように、エンコーダ1604をプログラムすることも可能である。続いて、トランスポートストリームを、デマルチプレクスし、さらなる処理を行うために、トランスポートインターフェイス1406を通じてデコーダ1404に配信する。入力セクション1401aは、さらに、OSカーネルの制御下にないメモリエレメント1605を具備している。図19は、入力セクション1401aと出力セクション1402とを組み込んでいるシステムボード1900のブロック線図を与えている。図示されているように、MPEG-2エンコーダは、PCIバス1407上で、クライアントとしてのMPEG-2デコーダ／グラフィックスサブアセンブリ1404に接続されている。
【００８８】
アナログフロントエンドの一変形例（図示せず）は、カムコーダまたはVCRから発生するコンテンツのためのコンポジットオーディオ／ビデオおよび／またはSビデオのコネクタの追加セットを介して二次的な入力を具備している。追加のハードウェアおよびソフトウェアのサポートが、その変形例を完全に可能にするために必要である。
【００８９】
ここで、図17を参照すると、入力セクション1401bが、デジタル衛星信号を受け取るように適合して示されている。デジタル衛星入力セクション1401bは、二重の衛星受信機1701から入力を受け取る。復調器1702は、入ってくるQPSK（四位相偏移変調）波を復調して、トランスポートストリームを生み出す。衛星トランスポートストリームが、完全にはMPEG-2そのものではないので、MPEG-2デコーダ／グラフィックスサブアセンブリ1404は、どちらのタイプのストリームもデコードする能力を持たなければならない。したがって、そのトランスポートストリームは、それ以上の修正または処理を行うことなくトランスポートインターフェイス1406を介して出力セクション1402に渡される。図20は、入力セクション1401bを組み込んだシステムボード2000のブロック図を与えている。
【００９０】
図18を参照すると、デジタルケーブル入力でもアナログケーブル入力でも受け取るように設計された入力セクション1401cが、示されている。その入力セクションは、ディジタルフォーマットおよびアナログフォーマットの、1つ以上のRF同軸コネクタ1801, 1802から入力を受け取る。そのアナログ部は、アナログ入力セクション1401aのそれと同様に機能する。ビデオ信号は、二重のNTSCデコーダ1602によってデコードされる。オーディオは、二重のマルチスタンダードサウンドプロセッサ1603によって処理されて、得られた出力が、二重MPEG-2エンコーダに供給される。入力セクションの現行バージョンでは、各コンポーネントが、全く同一の2つのもので与えられるということに注意されたい。デジタルケーブル信号が、二重の復調器1803に送られる。ケーブル信号変調に依存して、復調器は、DOCSIS(Data Over Cable Service Interface Specification)および／またはDAVIC(Digital Audio Visual Council)をサポートし、または、サポートしない、QAM（直交振幅変調）とQPSKのいずれか、または、両方であってもよい。図示されているように、デジタル信号復調器は、OSカーネルと無関係に制御されるメモリエレメント1804に連結されている。図21は、デジタルケーブル入力セクション1401cを組み込んでいるシステムボード2100のブロック図を与えている。前のバージョンにおけるように、トランスポートストリームが、トランスポートインターフェイス1406を介して出力セクション1402に渡される。デジタルケーブル入力セクション1401cは、PCIバス上でクライアントとしてのMPEG-2デコーダ／グラフィックスサブセクション1404に接続されている。
【００９１】
前述したように、本発明は、PVR（パーソナルビデオレコーダ）として用いるように意図されており、そこにおいて、ユーザは、選択したビデオストリームをリアルタイムで見ることも出来るし、また、巻き戻し、停止、プレー、休止、低速プレー、高速順送り等のような特徴を利用することによって、ビデオストリームを調べて、記録されたビデオストリームを見ることも出来る。さらに、記録するプログラミングを選択するための制御、および、付加的な記録パラメータを指定するための制御が、備えられる。この目的のために、本発明は、ユーザ制御インターフェイスを具備している。主として、本発明とのユーザ対話は、電池駆動のハンドヘルドIRリモートコントロールを手段とするものである。ユーザによって種々の制御がアクティブにされると、変調されたIRビームが、出射し、PVRによって受信される。IR受信機／送信機システムおよびインターフェイスは、前に詳細に記述されている。しかしながら、本発明の一代替実施例は、IR駆動のリモートコントロールに換えて、または、それに加えて、RFで動作可能になるリモートコントロール、受信機／送信機、および、インターフェイスを備えている。
【００９２】
リモートコントロールに加えて、ユーザは、ユニットの前面パネル上にボタンまたはキーを有するナビゲーションクラスタによって、本発明と対話してもよい。そのナビゲーションクラスタは、リモートコントロールの機能と実質的に同じにするのが有利である。したがって、ナビゲーションクラスタは、リモートコントロールが失われ、または、盗まれ、または、電池交換を必要としたとしても、本発明の制御を可能にする。上述したように、ナビゲーションクラスタのためのインターフェイスは、メディアマネージャASIC上に備えられる。
【００９３】
前に指摘したように、システムボードは、スマートカード機能をサポートしている。スマートカードリーダは、本発明の前面パネル上に設けられたスロットを通してアクセス可能である。スマートカードスロットは、ユーザ認証が、ペイパービュープログラミング、音楽セール、商品セール、および、その他同種のもののようなビリング（請求書・明細情報の照会）目的のために必要になる流通応用における使用を意図されている。
【００９４】
本発明は、マイクロエレクトロニクス設計および製造の当業者によく知られた従来の製造技術を用いて作り出される。
【００９５】
上述したように、メディアマネージャASICは、メディアストリームプロセッサを具備している。従来、メディアストリームプロセッサは、単一のチャンネルしか処理することができないので、システムのスループットに重大な障害を与えていた。これに関連する、広く使用されているアプリケーションは、この障害を取り除くマルチチャンネルメディアプロセッサについて記述している。さらに、従来のメディアストリームプロセッサは、それらが処理しているストリームのデータパス内に存在しなければならなかった。このような要求は、プロセッサをシステムボード上に集積化することを必要としたので、このことは、システムボードを交換せずに、メディアストリームプロセッサをアップグレードすることを非常に困難なものにさせていた。PVRのメディアストリームプロセッサの能力を、シングルチャンネルからマルチチャンネルにアップグレードするために、既存のハードウェアに柔軟に組み入れることができる、システムに依存しないデバイスを提供することは、大きな利点である。この目的のために、本発明は、システムに依存しないマルチチャンネルメディアストリームプロセッサを提供する。図22が示すように、マルチチャンネルメディアストリームプロセッサは、以下のものを具備している。
・  システムインターフェイス2201
・  メディアストリーム識別器2202
・  メディアストリームプロセッサコア2203
・  マルチチャンネルステートエンジン2204
・  メディアストリームIDジェネレータ2205
【００９６】
システムインターフェイス2201は、如何なる場合にも、データ転送に干渉せずに、バスを観察またはスニッフィング(sniffing：信号を傍受すること)するのみである、システムバス上の完全にパッシブなスレーブクライアントとして機能する。本発明のメディアストリームプロセッサの他の部分のコンポーネントは、システムに依存しない。一方、システムインターフェイス2201を、ハードワイヤドエレメントまたはプログラミングスイッチの使用により、特定のシステムに合わせるか、または、いくつかの異なるシステムに接続するように適合させてもよい。ユニークな（標準化されていない）システム、または、プロプリエタリ（proprietary：オープンされていない）システムの場合には、メモリバス上のハードウェアおよびプロトコルは、ほとんど例外なくユニバーサルに一様（uniform）であるという事実のために、このシステムインターフェイスを、上記に代えて、観察のためにメモリバス上に置くことができる。このシステムインターフェイスは、メディアプロセッサによるシステムバスの観察を可能とする接続を備えている。
【００９７】
システムデータは、処理する必要のあるデータを識別するために、メディアストリームを他のデータから区別するメディアストリーム識別器2202に送られる。メディアストリーム識別器は、ほとんどのシステムでハードワイヤド信号である送信元アドレスおよび送信先アドレスのような情報を用いて、メディアストリームを識別する。
【００９８】
メディアストリームが識別されると、メディアストリームIDジェネレータ2205が、メディアストリームデータオブジェクトにタグを付け、それによって、それらを、それらのそれぞれのメディアストリームと関連付けることができる。タグ付けに続いて、メディアストリームデータが、メディアストリームプロセッサコア2203に送られ、そこで、それは、一つのチャンネルでではなく、並列に処理される。このようにメディアストリームを並列処理することによって、スループットを4倍から8倍に増加させることが可能となる。
【００９９】
メディアストリームが複数の場合には、異なるメディアストリームIDが提示されたときに、マルチチャンネルステートエンジン2204が、メディアストリームがスイッチされた情報と共に、メディアプロセッサのステートを保存する。本来のメディアストリームが再び示されたとき、そのステートが、再ロードされて、本来のストリームの処理が、再開される。
【０１００】
得られた処理は、メディアデータ構造に保存される。このようなデータ構造は、一般に知られている。各ストリームが処理されると、それは、必要なときにシステムメモリに送られる。
【０１０１】
マルチチャンネルメディアストリームプロセッサが、本明細書ではアップグレードデバイスとして記述されているが、それを、メディアプロセッサとして未使用のシステムに組み入れることもできる。これは、システムボードの重大な入れ替えを要することなく、システムアーキテクチャに容易に組み込まれるという利点を備えている。
【０１０２】
マルチチャンネルメディアストリームプロセッサを、個別コンポーネントを用いて、または、プログラム可能なロジックデバイスで、このようなデバイスをプログラムする既知の方法を用いて実装してもよい。
【０１０３】
本発明が、本明細書において、あるいくつかの好適な実施例を参照して記述されているが、当業者であれば、他の応用を、本発明の精神および範囲から逸脱することなく、本明細書に示されている応用に置き換えることができることを容易に認識するであろう。したがって、本発明は、添付の請求項によってしか限定されるべきでない。
【図面の簡単な説明】
【０１０６】
【図１】本発明の好適な一実施例のハイレベルビューのブロック線図的なダイアグラムである。
【図２】複数の入力モジュールおよび出力モジュールを用いた、本発明の好適な一実施例のブロック線図的なダイアグラムである。
【図３】本発明によるMPEGデータストリーム、ビデオ成分、オーディオ成分の線図的なダイアグラムである。
【図４】本発明によるメディアスイッチに含まれるパーザおよび4つのDMA入力エンジンのブロック線図的なダイアグラムである。
【図５】本発明によるパケット化PESバッファの成分の線図的なダイアグラムである。
【図６】メディアスイッチ出力回路中の解析された成分からのPESバッファの構築の線図的なダイアグラムである。
【図７】本発明にしたがって通信する媒体スイッチと種々のコンポーネントのブロック線図的なダイアグラムである。
【図８】本発明によるプログラムロジックのハイレベルビューのブロック線図的なダイアグラムである。
【図９】本発明によるプログラムロジックのクラス階層のブロック線図的なダイアグラムである。
【図１０】本発明のクリップキャッシュコンポーネントの好適な一実施例のブロック線図的なダイアグラムである。
【図１１】放送スタジオビデオミキサと機能的に似た本発明の好適な一実施例のブロック線図的なダイアグラムである。
【図１２】本発明によるクローズドキャプションパーザのブロック線図的なダイアグラムである。
【図１３】VCRを必須コンポーネントとして利用する本発明の好適な一実施例のハイレベルビューのブロック線図的なダイアグラムである。
【図１４】本発明によるシステムアーキテクチャのハイレベルビューのブロック線図的なダイアグラムである。
【図１５】図14のシステムの出力セクションのブロック線図的なダイアグラムである。
【図１６】アナログ信号を受信するように適合化された、図14のシステムの入力セクションの第1バージョンのブロック線図的なダイアグラムである。
【図１７】デジタル衛星信号を受信するように適合化された、図14のシステムの入力セクションの第2バージョンのブロック線図的なダイアグラムである。
【図１８】デジタルケーブル信号を受信するように適合化された、図14のシステムの入力セクションの第3バージョンのブロック線図的なダイアグラムである。
【図１９】図14のシステムの第1の実施例のブロックダイヤグラムである。
【図２０】図14のシステムの第2の実施例のブロック線図的なダイアグラムである。
【図２１】図14のシステムの第3の実施例のブロック線図的なダイアグラムである。
【図２２】本発明による、複数のチャンネルに渡ってメディアストリームデータを並列に処理するためのシステムのブロック線図的なダイアグラムである。
【符号の説明】
【０１０７】
101, 1401  入力セクション
102, 205, 601, 701, 1302  メディアスイッチ
103, 1402  出力セクション
106, 713, 1403  CPU
703, 1604  MPEGエンコーダ
715  MPEGデコーダ
717  オーディオデコーダ
1404  MPEG-2トランスポートストリームデコーダ／グラフィックスサブシステム
1405  メデアマネージャ
1406  トランスポートストリームインターフェイス
1601  チューナ／RF復調器
1602  ビデオデコーダ
マルチスタンダードサウンドプロセッサ
【図１】
0004606738.tif 000002
【図２】
0004606738.tif 000003
【図３】
0004606738.tif 000004
【図４】
0004606738.tif 000005
【図５】
0004606738.tif 000006
【図６】
0004606738.tif 000007
【図７】
0004606738.tif 000008
【図８】
0004606738.tif 000009
【図９】
0004606738.tif 000010
【図１０】
0004606738.tif 000011
【図１１】
0004606738.tif 000012
【図１２】
0004606738.tif 000013
【図１３】
0004606738.tif 000014
【図１４】
0004606738.tif 000015
【図１５】
0004606738.tif 000016
【図１６】
0004606738.tif 000017
【図１７】
0004606738.tif 000018
【図１８】
0004606738.tif 000019
【図１９Ａ】
0004606738.tif 000020
【図１９Ｂ】
0004606738.tif 000021
【図２０Ａ】
0004606738.tif 000022
【図２０Ｂ】
0004606738.tif 000023
【図２１Ａ】
0004606738.tif 000024
【図２１Ｂ】
0004606738.tif 000025
【図２２】
0004606738.tif 000026