(57)【要約】【課題】テレビ放送番組の記録と再生とを同時に行う能力を与えるマルチメディア信号処理システムを提供し、さらに、高ビデオデータレートからマイクロプロセッサを切り離し、それによって、マイクロプロセッサとシステムとの要件を低減するアプローチを利用するマルチメディア信号処理システムを提供すること。【解決手段】マルチメディア信号処理システムが、ユーザがテレビジョン番組を見て、そして、その番組内の以前の場面を即座に調べることを可能にする、操作容易で低価格の記憶および表示システムを利用している。本発明は、さらに、ユーザが、同時に別の番組を見ている、または、調べているときに、選択した番組を記憶することを可能にする。多用途のシステムアーキテクチャが、本発明を、各々が異なるソースから入力信号を受信するように適合化された複数の構成で提供することを可能にする。その最も高度のレベルにおいて、そのシステムは、1つの入力セクションおよび1つの出力セクションを具備している。全ての構成に渡って、入力セクションは、信号のタイプおよびソースにしたがって変形するが、出力セクションは、実質的に同じのままである。したがって、いくつかの構成は、各々がわずかのシステムボードの修正しか必要としないように、提供される。したがって、このシステムアーキテクチャは、デジタル衛星、デジタルケーブル、および、アナログケーブルのような異なる市場にかなうようにユニットを作り出すことによって提示される設計および製造上の課題を簡単にする。【選択図】図１５
2005501485.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を取得して、チューニングするための入力セクションと、
出力セクションとを有する、マルチメディアデータを同時に記憶および再生するためのシステムであって、当該入力信号が、トランスポートストリームとして当該出力セクションに渡され、当該出力セクションが、
プロセッサと、
当該トランスポートストリームをデコードするための手段であって、第1のデータ転送エレメントによって当該プロセッサに接続された当該トランスポートストリームをデコードするための当該手段と、
第2のデータ転送エレメントによって、当該トランスポートストリームをデコードするための当該手段に接続されたブリッジングエレメントであって、複数のシステムコンポーネントとインターフェイスで接続するように動作する当該ブリッジングエレメントとを具備するシステムにおいて、
当該入力セクションが、ソースタイプにしたがって区分されるシステム。
【請求項２】
当該入力セクションが、アナログ入力信号を受け取るように適合化されている請求項1に記載のシステム。
【請求項３】
当該入力セクションが、RF同軸コネクタ、コンポジットオーディオ／ビデオコネクタ、Sビデオコネクタのいずれからでも当該アナログ入力信号を受け取る請求項2に記載のシステム。
【請求項４】
当該入力セクションが、
望みのチャンネルにチューニングするためのチューナと、
当該信号のビデオ成分をデジタル化するためのデコーダと、
当該信号のオーディオ成分を処理するためのマルチスタンダードサウンドプロセッサと、
MPEG-2エンコーダとを有する請求項2に記載のシステムであって、当該MPEG-2エンコーダが、当該デジタル化されたビデオ成分およびオーディオ成分を受信し、その結果、当該信号が、MPEG-2トランスポートストリームにエンコードされ、そして、多重化されるシステム。
【請求項５】
さらに、メモリエレメントを有する請求項4に記載のシステム。
【請求項６】
さらに、二次的な入力を有する請求項3に記載のシステムであって、当該二次的な入力が、RF同軸コネクタ、コンポジットオーディオ／ビデオコネクタ、または、Sビデオコネクタの第2のセットを有するシステム。
【請求項７】
当該入力セクションが、デジタル衛星入力信号を受け取るように適合化されている請求項1に記載のシステム。
【請求項８】
当該入力セクションが、
少なくとも1つの衛星チューナと、
前記デジタル衛星信号をMPEG-2トランスポートストリームに復調するための少なくとも1つの復調エレメントとを有する請求項7に記載のシステム。
【請求項９】
当該入力セクションが、少なくとも1つのRF同軸コネクタからアナログフォーマットとデジタルフォーマットとの両方の入力信号を受け取るように適合化されている請求項1に記載のシステム。
【請求項１０】
当該入力セクションが、
望みのチャンネルにチューニングするための少なくとも1つのチューナと、
当該信号のビデオ成分をデジタル化するための少なくとも1つのデコーダと、
当該信号のオーディオ成分を処理するための少なくとも1つのマルチスタンダードサウンドプロセッサと、
マルチストリームエンコード能力を持つMPEG-2エンコーダとを有する請求項9に記載のシステムであって、
当該MPEG-2エンコーダが、当該デジタル化されたビデオ成分およびオーディオ成分を受信し、その結果、当該信号が、MPEG-2トランスポートストリームにエンコードされ、そして、多重化されるシステム。
【請求項１１】
さらに、少なくとも1つのメモリエレメントを有する請求項10に記載のシステム。
【請求項１２】
当該出力セクションが、さらにトランスポートインターフェイスを有する請求項1に記載のシステムであって、当該トランスポートインターフェイスが、当該入力セクションから当該トランスポートストリームを受信するシステム。
【請求項１３】
トランスポートストリームをデコードするための当該手段が、MPEGトランスポートストリームデコーダ/グラフィックスサブシステムを有する請求項12に記載のシステムであって、当該第1のデータ転送エレメントが、ホストバスを有するシステム。
【請求項１４】
当該トランスポートストリームデコーダ/グラフィックスサブシステムが、
ホストブリッジと、
メモリコントローラと、
MPEG-2トランスポートデマルチプレクサと、
MPEG-2デコーダと、
オーディオ／ビデオデコーダと、
グラフィックスプロセッサと、
PCIブリッジと、
バスコントローラと、
スマートカードインターフェイスと、
モデムインターフェイスとを有する請求項13に記載のシステム
【請求項１５】
当該トランスポートストリームデコーダ/グラフィックスサブシステムが、さらに少なくとも1つのトランスポートストリームインターフェイスを有する請求項14に記載のシステムであって、当該トランスポートストリームインターフェイスが、当該入力セクションから当該トランスポートストリームを受信するシステム。
【請求項１６】
当該トランスポートストリームが、オーディオパケットストリームとビデオパケットストリームとにデマルチプレックスされる請求項14に記載のシステムであって、当該パケットストリームが、記憶され、そして、当該トランスポートストリームデコーダ／グラフィックスサブシステムの出力側を通して再生されるシステム。
【請求項１７】
当該トランスポートストリームデコーダ／グラフィックスサブシステムが、さらに複数の出力を有する請求項14に記載のシステムであって、当該デコードされた信号が、テレビジョンに出力され、当該出力が、
S-ビデオと、
オーディオと、
SPDIR (Stereo Paired Digital Interface)と、
CVBS（コンポジットビデオベースバンド信号）とのいずれでも含むシステム。
【請求項１８】
当該トランスポートストリームデコーダ/グラフィックスサブシステムにインターフェイスで接続された、少なくとも1つのスマートカードリーダを、さらに、有する請求項14に記載のシステム。
【請求項１９】
当該トランスポートストリームデコーダ/グラフィックスサブシステムに接続されたフラッシュPROMを、さらに、有する請求項14に記載のシステムであって、当該PROMが、オペレーティングシステムカーネルのローディングに先立って当該システムを初期化するブートコードを含んでいるシステム。
【請求項２０】
当該トランスポートストリームデコーダ/グラフィックスサブシステムに接続されたSDRAMを、さらに、有する請求項14に記載のシステム。
【請求項２１】
当該モデムインターフェイスに接続されたモデムを、さらに、有する請求項14に記載のシステム。
【請求項２２】
当該プロセッサが、MIPSプロセッサを有し、そして、当該第1のデータ転送エレメントが、ホストバスを有する請求項1に記載のシステム。
【請求項２３】
当該プロセッサが、システムソフトウェア、ミドルウェア、および、アプリケーションソフトを走らせるように動作する請求項1に記載のシステム。
【請求項２４】
当該システムソフトウェアが、少なくともオペレーティングシステムカーネルおよびデバイスドライバを含んでいる請求項23に記載のシステムであって、当該システムソフトウェアが、ハードウェアコンポーネントを初期化し、そして、制御するように動作するシステム。
【請求項２５】
当該ブリッジングエレメントが、メディアマネージャを有する請求項1に記載のシステムであって、当該メディアマネージャが、
データ暗号化を備えたIDEホストコントローラと、
DMAコントローラと、
IR受信機／送信機インターフェイスと、
少なくとも1つのUART (Universal Asynchronous Receiver/Transmitter)と、
少なくとも1つのI2Sバスと、
少なくとも1つのGPIO（General Purpose Input/Output）と、
PCIバスアービタと、
MPEGメディアストリームプロセッサと、
PCMオーディオミキサ（Pulse Code Modulation）と、
高速トランスポート出力インターフェイスと、
ファンコントロールと、
前面パネルナビゲーションキーボードクラスタのための走査インターフェイスとを有するシステム。
【請求項２６】
当該メディアマネージャが、ASIC（特定用途向け集積回路）またはプログラム可能なロジックデバイスに実装されている請求項25に記載のシステム。
【請求項２７】
当該ファンコントロールに結合された温度センサを、さらに、有する請求項25に記載のシステム。
【請求項２８】
当該ファンコントロールに接続されたファンを、さらに、有する請求項25に記載のシステム。
【請求項２９】
当該I2Sバスに接続されたリアルタイムクロックを、さらに、有する請求項25に記載のシステム。
【請求項３０】
当該UARTに接続されたセキュアマイクロコントローラを、さらに、有する請求項25に記載のシステムであって、当該マイクロコントローラが、認証および暗号化／解読を含む暗号応用において動作するシステム。
【請求項３１】
当該UARTに結合されたRS232ポートを、さらに、有する請求項25に記載のシステム。
【請求項３２】
当該メディアマネージャ上に集積されたIEEE1394インターフェイスを、さらに、有する請求項25に記載のシステム。
【請求項３３】
当該GPIOに結合された前面パネルLEDアレイを、さらに、有する請求項25に記載のシステム。
【請求項３４】
当該GPIOに結合された前面パネルナビゲーションクラスタを、さらに、有する請求項25に記載のシステム。
【請求項３５】
当該IR受信機／送信機に結合されたリモートコントロールを、さらに、有する請求項25に記載のシステム。
【請求項３６】
当該第2のデータ転送エレメントが、システムバスを有する請求項1に記載のシステム。
【請求項３７】
当該システムバスが、PCIバスを有する請求項36に記載のシステム。
【請求項３８】
当該PCIバスに結合されたUSB(UniversalSerial Bus)コントローラを、さらに、有する請求項37に記載のシステム。
【請求項３９】
当該システムが、システムボードとして実装されている請求項1に記載のシステム。
【請求項４０】
当該出力セクションが、複数のマイクロチップとして実装されている請求項1に記載のシステムであって、前記チップが、当該データ転送エレメントによって互いに接続されているシステム。
【請求項４１】
当該出力セクションが、単一のマイクロチップまたはチップセットのいずれかとして実装されている請求項1に記載のシステム。
【請求項４２】
同時にいくつかのチャンネルに渡ってメディアストリームを処理するためのシステムであって、
データバス上のデータストリームを観察するための手段と、
当該データストリーム中のメディアストリームを識別するための手段と、
メディアストリームデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるための手段と、
マルチチャンネルメディアストリームプロセッサであって、複数のチャンネルに渡って並列にメディアストリームデータを処理する当該メディアプロセッサと、
当該プロセッサが、本来のメディアストリームから次のメディアストリームにスイッチしたときに、当該プロセッサの状態をモニタして、保存するための手段であって、当該プロセッサが、当該本来のストリームにスイッチバックしたときに、当該本来のストリームと関連する状態が再ロードされる手段とを、有するシステム。
【請求項４３】
当該データストリームを観察するための当該手段が、システムインターフェイスを有する請求項42に記載のシステムであって、当該システムインターフェイスが、当該バス上にパッシブなスレーブクライアントを有し、当該システムインターフェイスが、データフローに干渉せずに、当該データストリームを観察するシステム。
【請求項４４】
当該システムインターフェイスが、特定のシステムタイプに区分される請求項43に記載のシステムであって、当該区分が、プログラム可能なスイッチとハードワイヤリングとのうちの1つによって遂行されるシステム。
【請求項４５】
当該データバスが、システムバスとメモリバスとのうちの1つである請求項43に記載のシステム。
【請求項４６】
メディアストリームを識別するための当該手段が、メディアストリーム識別器を有している請求項42に記載のシステムであって、当該メディアストリーム識別器が、送信元アドレスと送信先アドレスにしたがって、メディアストリームを、当該データストリームの残りから区別するシステム。
【請求項４７】
メディアデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるための当該手段が、メディアIDジェネレータを有する請求項42に記載のシステムであって、当該メディアIDジェネレータが、メディアストリームデータオブジェクトにタグを割り付け、その結果、いずれのデータオブジェクトも、その原初のストリームに関連付けられるシステム。
【請求項４８】
当該プロセッサの状態をモニタし、保存するための当該手段が、マルチチャンネルステートエンジンを有する請求項42に記載のシステムであって、当該ステートエンジンが、メディアストリーム識別器をモニタし、そして、当該次のメディアストリームと関連するメディアストリーム識別器が連結しているときに、当該プロセッサ状態を保存し、当該保存された状態が、第1の状態を有するシステム。
【請求項４９】
当該第1の状態と関連するメディアストリーム識別器が提示されたときに、当該ステートエンジンが、前記第1の状態を再ロードする請求項48に記載のシステム。
【請求項５０】
メディアストリームデータ構造を、さらに、有する請求項42に記載のシステムであって、当該処理されたメディアストリームが、当該データ構造に保存され、必要に応じてシステムメモリに送られるシステム。
【請求項５１】
当該システムが、プログラム可能なロジックデバイスに実装されている請求項42に記載のシステム。
【請求項５２】
同時にいくつかのチャンネルに渡ってメディアストリームを処理する方法であって、
データバス上のデータストリームを観察するステップと、
当該データストリーム中のメディアストリームを識別するステップと、
メディアストリームデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるステップと、
複数のチャンネルに渡って並列にメディアストリームデータを処理するステップと、
当該プロセッサが、本来のメディアストリームから次のメディアストリームにスイッチしたときに、メディアプロセッサの状態をモニタして、保存するステップと、
当該プロセッサが、当該本来のストリームにスイッチバックしたときに、当該本来のストリームに関連する状態を再ロードするステップとを有する方法。
【請求項５３】
当該データストリームを観察する当該ステップが、
システムインターフェイスを備えるステップを有する請求項52に記載の方法であって、当該システムインターフェイスが、当該バス上にパッシブなスレーブクライアントを有し、そして、
当該システムインターフェイスが、データフローに干渉せずに、当該データストリームを観察する方法。
【請求項５４】
当該システムインターフェイスが、特定のシステムタイプに区分される請求項53に記載の方法であって、当該区分が、プログラム可能なスイッチとハードワイヤリングとのうちの1つによって遂行される方法。
【請求項５５】
当該データバスが、システムバスとメモリバスとのうちの1つである請求項53に記載の方法。
【請求項５６】
メディアストリームを識別する当該ステップが、
送信元アドレスと送信先アドレスにしたがって、メディアストリームを、当該データストリームの残りから区別するステップを有する請求項52に記載の方法。
【請求項５７】
メディアデータオブジェクトを、それらのそれぞれのメディアストリームに関連付ける当該ステップが、
メディアストリームデータオブジェクトにタグを割り付け、その結果、いずれのデータオブジェクトも、その原初のストリームに関連付けられるステップを有する請求項52に記載の方法。
【請求項５８】
当該プロセッサの状態をモニタし、保存する当該ステップが、
メディアストリーム識別器をモニタするステップと、
当該次のメディアストリームと関連するメディアストリーム識別器が連結されているときに、当該プロセッサ状態を保存するステップであって、当該保存された状態が、第1の状態を有するステップとを有する請求項52に記載の方法。
【請求項５９】
当該プロセッサの状態をモニタし、保存する当該ステップが、さらに、
当該第1の状態に関連するメディアストリーム識別器が提示されたときに、前記第1の状態を再ロードするステップを有する請求項58に記載の方法。
【請求項６０】
当該処理されたメディアストリームをメディアデータ構造に保存するステップと、
必要に応じてシステムメモリに送るステップとを、さらに、有する請求項52に記載の方法。
【請求項６１】
当該方法が、プログラム可能なロジックデバイスによって実施される請求項52に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テレビジョン放送信号のタイムシフティングに関するものである。より特定的には、本発明は、テレビジョン放送信号のリアルタイム捕獲、記憶、および、表示に関するものである。
【背景技術】
【０００２】
ビデオカセットレコーダ(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 StandardsCommittee (NTSC)放送またはPAL放送のようなアナログ形式、および、Digital Satellite System (DSS)、DigitalBroadcast Services (DBS)、または、Advanced TelevisionStandards Committee (ATSC)のようなデジタル形式のテレビジョン(TV)入力ストリームを受け取る。アナログTVストリームは、内部転送および操作のために、Moving PicturesExperts Group (MPEG)フォーマットのストリームに変換され、一方、あらかじめフォーマットされているMPEGストリームは、デジタルTV信号から抽出されて、エンコードされたアナログストリームと同様のフォーマットで提示される。
【００１０】
本発明は、生じたMPEGストリームを構文解析し、それを、そのビデオ成分およびオーディオ成分に分離する。その後、それは、それらの成分を一時バッファに記憶する。見出されている成分のタイプ、それが位置している場所、および、それが生じた時を指示するイベントが記録される。プログラムロジックが、イベントが生じていることを通知されて、データが、バッファから抽出される。
【００１１】
パーザおよびイベントバッファが、CPU を、MPEGストリームを構文解析しなければならないことから、および、データストリームのリアルタイム性から切り離す。この切り離しは、より低速の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 StandardsCommittee (NTSC)放送またはPAL放送、および、DigitalSatellite System (DSS), Digital Broadcast Services (DBS), Advanced TelevisionStandards Committee (ATSC)のようなデジタル形式、のテレビジョン(TV)入力ストリームを取り込む。DBS, DSS, ATSCは、Moving Pictures ExpertsGroup 2 (MPEG2)およびMPEG2トランスポートと呼ばれる標準に基づいている。MPEG2トランスポートは、TV受像機が、入力ストリームを分解して、多重化された信号に番組を見つけ出すことができるように、TVソース送信機からのデジタルデータストリームをフォーマットするための標準である。入力セクション101は、MPEGストリームを作り出す。MPEG2トランスポート多重化は、同じ放送チャンネルに、複数のビデオおよびオーディオ材料およびプライベートデータを持つ、複数の番組をサポートする。入力セクション101は、特定の番組にチャンネルを同調させて、それから特定のMPEG番組を抽出し、それを、システムのその他の部分に供給する。アナログTV信号は、その信号がどのようにして得られたかについて、システムのその他の部分が意識しないような具合に、個別のビデオエンコーダおよびオーディオエンコーダを用いて、同様のMPEGフォーマットにエンコードされる。情報は、多くの標準的な仕方でアナログTV信号の垂直帰線消去期間(VBI)に変調することができる。例えば、North AmericanBroadcast Teletext Standard (NABTS)を、NTSC信号のライン10〜20上に情報を変調するために用いることができるし、FCCは、クローズドキャプション(CC)サービスおよび拡張データサービス(EDS)にライン21の使用を指令している。そのような信号は、入力セクションによってデコードされ、あたかも、それらが、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つの位置から他の位置にコピーされることがない。これは、より低いメモリ帯域幅とより低いプロセッサ帯域幅しか要しないから、より費用効果の高い設計に帰着する。
【００３０】
PESバッファへのMPEGストリームの変換のユニークな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は、ビデオセグメントかオーディオセグメントかを識別するとき、または、プライベートデータが与えられたときに、フィフォ706にタグ707を置く。DMA 709は、これらのタグを、いつ、取得するかを制御する。セグメントのタグ707およびDMAアドレスが、イベントキュー708に置かれる。フレームタイプ情報は、それが、ビデオIフレーム、ビデオBフレーム、ビデオPフレーム、ビデオPES、オーディオPES、シーケンスヘッダ、オーディオフレーム、または、プライベートデータパケットのいずれの開始であっても、情報片が置かれた関連サーキュラバッファ中のオフセットと共にイベントキュー708に置かれる。CPU 713中で動作するプログラムロジックは、サーキュラバッファ内のイベントを、それがDRAM 714に転送された後、調べる。
【００３５】
メディアスイッチ701は、CPU713およびDRAM 714に接続するデータバス711を持っている。さらに、アドレスバス712が、メディアスイッチ701、CPU713、および、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によってCPU1403と通信する。トランスポートストリームデコーダ/グラフィックスサブシステムは、以下に詳細に記述するように、様々な機能に役立つが、その主要な機能は、入力セクションから受信したトランスポートストリームをデコードすることと、そのデコードされたストリームを、ビデオ信号としてテレビジョンセット（図示せず）に出力することである。
【００７３】
出力セクションは、さらに、メディアマネージャ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株式会社によって製造されたVR5432CPUを使用している。そのCPUは、システムバス1407を使って、MPEG-2デコーダ/グラフィックスサブシステム1404に接続されている。
【００７５】
例えば、アーヴィン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（パワーオンセルフテスト）のような基本的なシステム起動タスクの実行に加えて、PROM1502は、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間のメディアストリームの転送を調停する。これは、上に言及したメディアストリームプロセッサおよび高速トランスポート出力インターフェイスの働きを通して遂行される。
【００８２】
例えば、サンノゼ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信号の場合には、サンノゼCAのアルプス電気によって供給されるTMDH-2のようなチューナ／RF復調器1601が、望みのチャンネルに信号をセットする。チューナアセンブリが、同一のコンポーネントに、チューナ、RF復調器、および、RFバイパスを組み込むことが好ましい。そのチューナアセンブリは、外部に向いたI2Cバスポートを通じてメディアマネージャASIC 1405によって制御される。
【００８７】
フライブルク（ドイツ）のMicronas Semiconductor社によって供給されるMSP4448Gのような、マルチスタンダードサウンドプロセッサ1603が、コンポジットオーディオコネクタまたはチューナ／RF復調器1601からアナログオーディオ入力を受け取る。さらに、それは、I2Sバスを通じてメディアマネージャASIC 1405からデジタルオーディオ入力を受け取る。生じるオーディオ信号が、I2Sバスを通じてMPEGエンコーダ1604に出力される。
【００８８】
デコーダ1602、即ち、例えば、アインドーフェン（オランダ）のPhilips Semiconductor社によって供給されるSAA7114Hビデオデコーダのような、NTSC/PAL/SECAMビデオデコーダが、チューナ／RF復調器1601、コンポジットビデオ入力、Sビデオ入力のいずれかから入力を受け取り、それを、例えば、BROADCOM社によって供給されるBCM7040のような、MPEG-2エンコーダ1604に入力するために、CCIR 656（Comit&eacute; Consultatif Internationaldes 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は、システムバス上の完全にパッシブなスレーブクライアントとして働いて、どのようにもデータ転送に干渉しないで、単にバスを観察しているか、「そのにおいをかいでいる」。本発明のメディアストリームプロセッサの残りのコンポーネントは、システムに依存しないが、システムインターフェイス2201を、ハードワイヤドエレメントによって、または、プログラミングスイッチの使用を通して、特定のシステムに合わせてもよく、または、いくつかの異なるシステムに接続するように適合させてもよい。独特の、または、私有のシステムの場合には、メモリバス上のハードウェアおよびプロトコルは、ほとんど例外なく一定であるという事実のために、システムインターフェイスを、換わって、メモリバス上で観察するように置くことができる。システムインターフェイスは、メディアプロセッサが、システムバスを観察することができる接続を備えている。
【００９９】
システムデータは、処理する必要のあるデータを識別するために、メディアストリームを他のデータから区別するメディアストリーム識別器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  ビデオデコーダ
マルチスタンダードサウンドプロセッサ
【図１】
2005501485.tif 000003
【図２】
2005501485.tif 000004
【図３】
2005501485.tif 000005
【図４】
2005501485.tif 000006
【図５】
2005501485.tif 000007
【図６】
2005501485.tif 000008
【図７】
2005501485.tif 000009
【図８】
2005501485.tif 000010
【図９】
2005501485.tif 000011
【図１０】
2005501485.tif 000012
【図１１】
2005501485.tif 000013
【図１２】
2005501485.tif 000014
【図１３】
2005501485.tif 000015
【図１４】
2005501485.tif 000016
【図１５】
2005501485.tif 000017
【図１６】
2005501485.tif 000018
【図１７】
2005501485.tif 000019
【図１８】
2005501485.tif 000020
【図１９Ａ】
2005501485.tif 000021
【図１９Ｂ】
2005501485.tif 000022
【図２０Ａ】
2005501485.tif 000023
【図２０Ｂ】
2005501485.tif 000024
【図２１Ａ】
2005501485.tif 000025
【図２１Ｂ】
2005501485.tif 000026
【図２２】
2005501485.tif 000027
【国際公開パンフレット】
2005501485.tif 000028
2005501485.tif 000029
2005501485.tif 000030
2005501485.tif 000031
2005501485.tif 000032
2005501485.tif 000033
2005501485.tif 000034
2005501485.tif 000035
2005501485.tif 000036
2005501485.tif 000037
2005501485.tif 000038
2005501485.tif 000039
2005501485.tif 000040
2005501485.tif 000041
2005501485.tif 000042
2005501485.tif 000043
2005501485.tif 000044
2005501485.tif 000045
2005501485.tif 000046
2005501485.tif 000047
2005501485.tif 000048
2005501485.tif 000049
2005501485.tif 000050
2005501485.tif 000051
2005501485.tif 000052
2005501485.tif 000053
2005501485.tif 000054
2005501485.tif 000055
2005501485.tif 000056
2005501485.tif 000057
2005501485.tif 000058
2005501485.tif 000059
2005501485.tif 000060
2005501485.tif 000061
2005501485.tif 000062
2005501485.tif 000063
2005501485.tif 000064
2005501485.tif 000065
2005501485.tif 000066
2005501485.tif 000067
2005501485.tif 000068
2005501485.tif 000069
2005501485.tif 000070
2005501485.tif 000071
2005501485.tif 000072
2005501485.tif 000073
2005501485.tif 000074
2005501485.tif 000075
2005501485.tif 000076
2005501485.tif 000077
2005501485.tif 000078
2005501485.tif 000079
2005501485.tif 000080
2005501485.tif 000081
2005501485.tif 000082
2005501485.tif 000083
2005501485.tif 000084
2005501485.tif 000085
2005501485.tif 000086
2005501485.tif 000087
【手続補正書】
【提出日】平成15年9月22日(2003.9.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同時にいくつかのチャンネルに渡ってメディアストリームを処理するためのシステムであって、
データバス上のデータストリームを観察するための手段と、
当該データストリーム中のメディアストリームを識別するための手段と、
メディアストリームデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるための手段と、
マルチチャンネルメディアストリームプロセッサであって、複数のチャンネルに渡って並列にメディアストリームデータを処理する当該メディアプロセッサと、
当該プロセッサが、本来のメディアストリームから次のメディアストリームにスイッチしたときに、当該プロセッサの状態をモニタして、保存するための手段であって、当該プロセッサが、当該本来のストリームにスイッチバックしたときに、当該本来のストリームと関連する状態が再ロードされる手段とを、有するシステム。
【請求項２】
当該データストリームを観察するための当該手段が、システムインターフェイスを有する請求項１に記載のシステムであって、当該システムインターフェイスが、当該バス上にパッシブなスレーブクライアントを有し、当該システムインターフェイスが、データフローに干渉せずに、当該データストリームを観察するシステム。
【請求項３】
当該システムインターフェイスが、特定のシステムタイプに区分される請求項2に記載のシステムであって、当該区分が、プログラム可能なスイッチとハードワイヤリングとのうちの1つによって遂行されるシステム。
【請求項４】
当該データバスが、システムバスとメモリバスとのうちの1つである請求項2に記載のシステム。
【請求項５】
メディアストリームを識別するための当該手段が、メディアストリーム識別器を有している請求項1に記載のシステムであって、当該メディアストリーム識別器が、送信元アドレスと送信先アドレスにしたがって、メディアストリームを、当該データストリームの残りから区別するシステム。
【請求項６】
メディアデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるための当該手段が、メディアIDジェネレータを有する請求項1に記載のシステムであって、当該メディアIDジェネレータが、メディアストリームデータオブジェクトにタグを割り付け、その結果、いずれのデータオブジェクトも、その原初のストリームに関連付けられるシステム。
【請求項７】
当該プロセッサの状態をモニタし、保存するための当該手段が、マルチチャンネルステートエンジンを有する請求項1に記載のシステムであって、当該ステートエンジンが、メディアストリーム識別器をモニタし、そして、当該次のメディアストリームと関連するメディアストリーム識別器が連結しているときに、当該プロセッサ状態を保存し、当該保存された状態が、第1の状態を有するシステム。
【請求項８】
当該第1の状態と関連するメディアストリーム識別器が提示されたときに、当該ステートエンジンが、前記第1の状態を再ロードする請求項7に記載のシステム。
【請求項９】
メディアストリームデータ構造を、さらに、有する請求項1に記載のシステムであって、当該処理されたメディアストリームが、当該データ構造に保存され、必要に応じてシステムメモリに送られるシステム。
【請求項１０】
当該システムが、プログラム可能なロジックデバイスに実装されている請求項1に記載のシステム。
【請求項１１】
同時にいくつかのチャンネルに渡ってメディアストリームを処理する方法であって、
データバス上のデータストリームを観察するステップと、
当該データストリーム中のメディアストリームを識別するステップと、
メディアストリームデータオブジェクトを、それらのそれぞれのメディアストリームに関連付けるステップと、
複数のチャンネルに渡って並列にメディアストリームデータを処理するステップと、
当該プロセッサが、本来のメディアストリームから次のメディアストリームにスイッチしたときに、メディアプロセッサの状態をモニタして、保存するステップと、
当該プロセッサが、当該本来のストリームにスイッチバックしたときに、当該本来のストリームに関連する状態を再ロードするステップとを有する方法。
【請求項１２】
当該データストリームを観察する当該ステップが、
システムインターフェイスを備えるステップを有する請求項11に記載の方法であって、当該システムインターフェイスが、当該バス上にパッシブなスレーブクライアントを有し、そして、
当該システムインターフェイスが、データフローに干渉せずに、当該データストリームを観察する方法。
【請求項１３】
当該システムインターフェイスが、特定のシステムタイプに区分される請求項52に記載の方法であって、当該区分が、プログラム可能なスイッチとハードワイヤリングとのうちの1つによって遂行される方法。
【請求項１４】
当該データバスが、システムバスとメモリバスとのうちの1つである請求項12に記載の方法。
【請求項１５】
メディアストリームを識別する当該ステップが、
送信元アドレスと送信先アドレスにしたがって、メディアストリームを、当該データストリームの残りから区別するステップを有する請求項11に記載の方法。
【請求項１６】
メディアデータオブジェクトを、それらのそれぞれのメディアストリームに関連付ける当該ステップが、
メディアストリームデータオブジェクトにタグを割り付け、その結果、いずれのデータオブジェクトも、その原初のストリームに関連付けられるステップを有する請求項11に記載の方法。
【請求項１７】
当該プロセッサの状態をモニタし、保存する当該ステップが、
メディアストリーム識別器をモニタするステップと、
当該次のメディアストリームと関連するメディアストリーム識別器が連結されているときに、当該プロセッサ状態を保存するステップであって、当該保存された状態が、第1の状態を有するステップとを有する請求項11に記載の方法。
【請求項１８】
当該プロセッサの状態をモニタし、保存する当該ステップが、さらに、
当該第1の状態に関連するメディアストリーム識別器が提示されたときに、前記第1の状態を再ロードするステップを有する請求項17に記載の方法。
【請求項１９】
当該処理されたメディアストリームをメディアデータ構造に保存するステップと、
必要に応じてシステムメモリに送るステップとを、さらに、有する請求項11に記載の方法。
【請求項２０】
当該方法が、プログラム可能なロジックデバイスによって実施される請求項11に記載の方法。
【国際調査報告】
2005501485.tif 000088
2005501485.tif 000089