(57)【特許請求の範囲】
【請求項１】
マルチメディアデータを同時に記憶及び再生する方法において、
テレビジョン（ＴＶ）放送信号であって、非限定的に、全米テレビジョン方式委員会（ＮＴＳＣ）の放送、ＰＡＬ放送、衛星送信、ＤＳＳ、ＤＢＳ、又は、ＡＴＳＣを含む、多くの基準に基づくテレビジョン（ＴＶ）放送信号を受信する段階と、
前記ＴＶ信号を特定の番組に同調する段階と、
内部転送及び操作のために前記特定の番組をＭＰＥＧ（エムペグ）形式のストリームに変換する、少なくとも１つの入力セクションを提供する段階と、
前記ＭＰＥＧストリームを分解して、そのビデオ成分とオーディオ成分とに分離させるメディアスイッチを備える段階と、
前記ビデオ成分及びオーディオ成分を記憶装置に記憶する段階と、
前記ビデオ成分及びオーディオ成分を記憶装置から引き出し、ＭＰＥＧストリーム内に集め、該ＭＰＥＧストリームをデコーダへ送る、少なくとも１つの出力セクションを備える段階と、
システムを通して送られ、前記ＭＰＥＧストリームの流れに影響を及ぼす制御指令を使用者から受け入れる段階とを含み、
前記デコーダは、前記ＭＰＥＧストリームをＴＶ出力信号に変換し、
前記デコーダは、前記ＴＶ出力信号をＴＶ受像機に配信し、
前記ビデオ成分及びオーディオ成分を記憶する段階及び前記記憶装置から引き出す段階は、同時に実行される、
ことを特徴とする、マルチメディアデータの同時記憶及び再生方法。
【請求項２】
前記入力セクションは、前記ＭＰＥＧストリームを前記制御指令により示される宛先へ差し向けることを特徴とする請求項１に記載の方法。
【請求項３】
前記出力セクションは、前記ビデオ及びオーディオ成分を前記制御指令により示される記憶装置から引き出すことを特徴とする請求項１に記載の方法。
【請求項４】
使用者又はプログラム制御により指定される、使用者固有のビデオ出力シーケンスを作る段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記メディアスイッチは、時間刻印値を計算するか、又は、デジタルＴＶストリームから取り出し、前記時間刻印値を前記ビデオ及びオーディオ成分に論理的に結びつけることを特徴とする請求項１に記載の方法。
【請求項６】
前記ビデオ成分を円状ビデオバッファ内に置く段階と、
前記オーディオ成分を円状オーディオバッファ内に置く段階と、
ビデオ又はオーディオ成分が見つかったことの表示と、前記円状ビデオ又はオーディオバッファにおける前記ビデオ又はオーディオ成分の位置とを包含するイベントを、円状イベントバッファに掲示する段階と、
前記イベントを掲示する段階の通知を送る段階と、
前記通知を受け取る段階と、
前記イベントを掲示する段階を前記イベントバッファから取り出す段階と、
前記イベントバッファにおけるタイプと位置情報とにより示される適切なバッファ内に索引を付ける段階と、
各々が対応するオーディオ又はビデオ成分が置かれていた適切な円状バッファの位置を向く論理オーディオ又はビデオセグメントを、補助的情報も含めて、順番に包含するバッファを生成する段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
早い再生、早いリバース再生、遅い再生、又は、遅いリバースのために、デコーダシステムの時計の早さを増加又は減少する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
システムのオーディオ待ち行列とオンスクリーン表示とを前記ＴＶ出力信号に結合する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ＴＶ信号からの垂直ブランキング間隔（ＶＢＩ）データ又はプライベートデータチャネル情報を復号化する段階と、
特定な番組の開始又は終了インジケータを決めるために前記データを調べる段階と、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
番組の開始及び終了時間を判断するために字幕（ＣＣ）フィールド内に包含される単語を走査する段階と、
特定な単語が前記ＣＣ情報に見つかった時、特定な行動を実行する段階と、
を更に含み、
特定番組の記録を開始するために特別な単語又は言い回しが使われ、
字幕（ＣＣ）情報は、オーディオ及びビデオと時間同期して保存され、ストリームが表示される時、視聴者に正しく提示することができる、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記メディアスイッチは、ＣＰＵとは非同期かつ自律的に作動し、
前記メディアスイッチは、ＣＰＵを直接メモリアクセス（ＤＭＡ）転送の待ち行列に入れる、
ことを特徴とする請求項１に記載の方法。
【請求項１２】
マルチメディア記録装置であって、前記使用者が前記ＴＶ出力信号を記録できるように前記デコーダの出力側に取付けられた、非限定的にビデオカセットレコーダ（ＶＣＲ）又はデジタルビデオディスク−ランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）装置を含むマルチメディア記録装置を提供する段階を更に含み、
前記使用者は、前記ディスクからの番組を、前記記録装置上に記憶するために待ち行列に入れ、
前記使用者は、前記番組を前記記録装置へ送る予定時間を設定し、
記憶される番組を前記記録装置に送る前に、タイトルページを前記記録装置へ送ることができ、
前記記録装置に許される磁気テープよりも時間的により長い番組は、目標とする時間制限内に合わせるためにスピードアップされるか、又は、目標とする時間制限内に合わせるために番組からいくらかのフレームが除かれ、
前記記録装置の出力は、前記入力セクションへ配送されて前記記録装置を記憶バックアップシステムとして働かせ、前記記録装置は、後で読み出して前記入力セクションへ送られる、記憶容量オーバーフロー、ＴＶ番組、ソフトウェア更新、又は、他のデータを受け入れる、
ことを特徴とする請求項１に記載の方法。
【請求項１３】
マルチメディアデータを同時に記憶及び再生する方法において、
入力装置からの放送データを受け入れ、前記放送データからのビデオ及びオーディオデータを分解し、前記ビデオ及びオーディオデータを一時的に記憶する、物理的データソースを備える段階と、
前記物理的データソースからビデオ及びオーディオデータを取り出すソース・オブジェクトを備える段階と、
ＭＰＥＧストリームを記憶装置上に記憶し、読み出す変換オブジェクトを備える段階と、
前記変換オブジェクトからＭＰＥＧストリームバッファを取得し、前記ストリームをビデオ及びオーディオデコーダに出力するシンク・オブジェクトを備える段階と、
使用者から、システムを通る放送データの流れを制御する指令を受信する制御オブジェクトを備える段階と、
を含み、
前記ソース・オブジェクトは、前記変換オブジェクトからバッファを取得し、ビデオデータをＭＰＥＧストリームに変換して前記バッファを前記ストリームで満たし、
前記ソース・オブジェクトは、前記変換オブジェクトにより自動的に流れを制御され、
前記デコーダは、前記ストリームをＴＶ信号に変換して前記信号をＴＶ受像機に送り、
前記シンク・オブジェクトは、前記変換オブジェクトにより自動的に流れを制御され、
前記制御オブジェクトは、流れ指令イベントを前記ソース、変換、及び、シンクの各オブジェクトに送る、
ことを特徴とする、マルチメディアデータの同時記憶及び再生方法。
【請求項１４】
マルチメディアデータを同時に記憶及び再生する装置において、
テレビジョン（ＴＶ）放送信号であって、非限定的に、全米テレビジョン方式委員会（ＮＴＳＣ）の放送、ＰＡＬ放送、衛星送信、ＤＳＳ、ＤＢＳ、又は、ＡＴＳＣを含む、多くの基準に基づくテレビジョン（ＴＶ）放送信号を受信するモジュールと、
前記ＴＶ信号を特定の番組に同調するモジュールと、
前記特定の番組を、内部転送及び操作のために、ＭＰＥＧ（エムペグ）形式のストリームに変換する少なくとも１つの入力セクションを備えるモジュールと、
前記ＭＰＥＧストリームを分解して、そのビデオ及びオーディオ成分に分離させるメディアスイッチを備えるモジュールと、
前記ビデオ及びオーディオ成分を記憶装置上に記憶するモジュールと、
前記ビデオ及びオーディオ成分を記憶装置から引き出し、ＭＰＥＧストリーム内に集め、前記ＭＰＥＧストリームをデコーダへ送る、少なくとも１つの出力セクションを備えるモジュールと、
システムを通して送られ、前記ＭＰＥＧストリームの流れに影響を及ぼす制御指令を使用者から受け入れるモジュールとを含み、
前記デコーダは、前記ＭＰＥＧストリームをＴＶ出力信号に変換し、
前記デコーダは、前記ＴＶ出力信号をＴＶ受像機に配送し、
前記ビデオ及びオーディオ成分を記憶する段階及び前記記憶装置から引き出す段階は、同時に実行できる、
ことを特徴とする、マルチメディアデータの同時記憶及び再生装置。
【請求項１５】
前記入力セクションは、前記ＭＰＥＧストリームを前記制御指令により示される宛先へ差し向けることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記出力セクションは、前記ビデオ及びオーディオ成分を前記制御指令により示される記憶装置から引き出すことを特徴とする請求項１４に記載の装置。
【請求項１７】
使用者又はプログラム制御により指定される、使用者固有のビデオ出力シーケンスを作るモジュールを更に含むことを特徴とする請求項１４に記載の装置。
【請求項１８】
前記メディアスイッチは、時間刻印値を計算するか、又は、デジタルＴＶストリームから取り出し、前記時間刻印値を前記ビデオ及びオーディオ成分に論理的に結びつけることを特徴とする請求項１４に記載の装置。
【請求項１９】
前記ビデオ成分を円状ビデオバッファ内に置くモジュールと、
前記オーディオ成分を円状オーディオバッファ内に置くモジュールと、
ビデオ又はオーディオ成分が見つかったことの表示と、前記円状ビデオ又はオーディオバッファにおける前記ビデオ又はオーディオ成分の位置とを包含するイベントを、円状イベントバッファに掲示するモジュールと、
前記イベントを掲示する段階の通知を送るモジュールと、
前記通知を受け取るモジュールと、
前記イベントを掲示する段階を前記イベントバッファから取り出すモジュールと、
前記イベントバッファにおけるタイプと位置情報とにより示される適切なバッファ内に索引を付けるモジュールと、
各々が対応するオーディオ又はビデオ成分が置かれていた適切な円状バッファの位置を向く論理オーディオ又はビデオセグメントを、補助的情報も含めて、順番に包含するバッファを生成するモジュールと、
を更に含むことを特徴とする請求項１４に記載の装置。
【請求項２０】
早い再生、早いリバース再生、遅い再生、又は、遅いリバースのために、デコーダシステムの時計の早さを増加又は減少するモジュールを更に含むことを特徴とする請求項１４に記載の装置。
【請求項２１】
システムのオーディオ待ち行列とオンスクリーン表示とを前記ＴＶ出力信号に結合するモジュールを更に含むことを特徴とする請求項１４に記載の装置。
【請求項２２】
前記ＴＶ信号からの垂直ブランキング間隔（ＶＢＩ）データ又はプライベートデータチャネル情報を復号化するモジュールと、
特定な番組の開始又は終了インジケータを決めるために前記データを調べるモジュールと、
を更に含むことを特徴とする請求項１４に記載の装置。
【請求項２３】
番組の開始及び終了時間を判断するために字幕（ＣＣ）フィールド内に包含される単語を走査するモジュールと、
特定な単語が前記ＣＣ情報に見つかった時、特定な行動を実行するモジュールと、
を更に含み、
特定番組の記録を開始するために特別な単語又は言い回しが使われ、
字幕（ＣＣ）情報は、オーディオ及びビデオと時間同期して保存され、ストリームが表示される時、視聴者に正しく提示することができる、
ことを特徴とする請求項１４に記載の装置。
【請求項２４】
前記メディアスイッチは、ＣＰＵとは非同期かつ自律的に作動し、
前記メディアスイッチは、ＣＰＵを直接メモリアクセス（ＤＭＡ）転送の待ち行列に入れる、
ことを特徴とする請求項１４に記載の装置。
【請求項２５】
非限定的に、ビデオカセットレコーダ（ＶＣＲ）又はデジタルビデオディスク−ランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）装置を含み、前記使用者が前記ＴＶ出力信号を記録できるように前記デコーダの出力側に取付けられた、マルチメディア記録装置、
を更に含み、
前記使用者は、前記ディスクからの番組を、前記記録装置上に記憶するために待ち行列に入れ、
前記使用者は、前記番組を前記記録装置へ送る予定時間を設定し、
記憶される番組を前記記録装置に送る前に、タイトルページを前記記録装置へ送ることができ、
前記記録装置に許される磁気テープよりも時間的により長い番組は、目標とする時間制限内に合わせるためにスピードアップされるか、又は、目標とする時間制限内に合わせるために番組からいくらかのフレームが除かれ、
前記記録装置の出力は、前記入力セクションへ配送されて前記記録装置を記憶バックアップシステムとして働かせ、前記記録装置は、後で読み出して前記入力セクションへ送られる、記憶容量オーバーフロー、ＴＶ番組、ソフトウェア更新、又は、他のデータを受け入れる、
ことを特徴とする請求項１４に記載の装置。
【請求項２６】
マルチメディアデータを同時に記憶及び再生する装置において、
入力装置からの放送データを受け入れ、前記放送データからのビデオ及びオーディオデータを分解し、前記ビデオ及びオーディオデータを一時的に記憶する、物理的データソースと、
前記物理的データソースからビデオ及びオーディオデータを取り出すソース・オブジェクトと、
ＭＰＥＧストリームを記憶装置上に記憶し、読み出す変換オブジェクトと、
前記変換オブジェクトからＭＰＥＧストリームバッファを取得し、前記ストリームをビデオ及びオーディオデコーダに出力するシンク・オブジェクトと、
使用者から、システムを通る放送データの流れを制御する指令を受信する制御オブジェクトとを含み、
前記ソース・オブジェクトは、前記変換オブジェクトからバッファを取得し、ビデオデータをＭＰＥＧストリームに変換して前記バッファを前記ストリームで満たし、
前記ソース・オブジェクトは、前記変換オブジェクトにより自動的に流れを制御され、
前記デコーダは、前記ストリームをＴＶ信号に変換して前記信号をＴＶ受像機に送り、
前記シンク・オブジェクトは、前記変換オブジェクトにより自動的に流れを制御され、
前記制御オブジェクトは、流れ指令イベントを前記ソース、変換、及び、シンクの各オブジェクトに送る、
ことを特徴とする、マルチメディアデータの同時記憶及び再生装置。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、テレビジョン放送信号の時間をシフトすることに関する。より詳細には、本発明は、テレビジョン放送信号の実時間の捕捉、記憶、及び、表示に関する。
【０００２】
（背景技術）
ビデオカセットレコーダ（ＶＣＲ）が全世界でテレビジョン（ＴＶ）視聴者の生活を変えている。ＶＣＲは、視聴者が自由に彼等のライフスタイルに合わせてＴＶ番組を時間シフトすることを可能にしている。
視聴者は、ＶＣＲを使って磁気テープ上にＴＶの番組を記憶する。ＶＣＲを使って視聴者は、記憶された番組素材を再生、巻戻し、早送り、及び、中断することが可能になった。これらの機能は、視聴者が望む時にはいつでも番組を中断して再生したり、望まない番組素材、又は、コマーシャルをかなり早送りしたり、好きなシーンを再生したりすることを可能にする。しかし、ＶＣＲは、情報の捕捉と再生との両方を同時に行うことはできない。
【０００３】
この問題を解決する１つの方法は、いくつかのＶＣＲを使用することである。例えば、もし２台のビデオテープレコーダが使えるならば、２台の間でやりとりすることが恐らく可能であろう。この場合には、第１のレコーダが興味ある番組の初めに開始される。もし視聴者が放送を巻戻すことを望めば、第２のレコーダが記録を開始し、一方で第１のレコーダは止められ、適当な位置まで巻戻され、そして再生が開始される。しかし、もし視聴者が最初の巻戻しが要求された後で時間上のどこかの点まで早送りすることを望んだとしたら、少なくとも第３のビデオテープレコーダが必要になる。この場合には、第２のレコーダが止められ、適当な位置まで巻戻される一方で、第３のビデオテープレコーダが放送のストリームの記録を開始する。この動きを続けると、この機器は全ての目標とする機能を決してサポートしない一方で、実際的でなく、信頼できず、高価で、操作しにくいことがすぐに分かる。加えて、テープの長さは有限であり、不都合な時に終わる可能性があって、解決策の価値を著しく低下させる。
【０００４】
この問題を解決するために、デジタルコンピュータシステムを使用することが示唆されている。１９９４年１２月６日にローガンらに附与された米国特許第５、３７１、５５１号は、同時に起こるビデオの記録と再生とに対する方法を教示し、マイクロプロセッサ制御による放送及び再生の装置を呈示している。前記装置は、ビデオデータを圧縮してハードディスク上に記憶する。しかし、高速のビデオ速度に追いつくためのプロセッサの条件が、装置を高価で問題があるものにするので、この方法の実行は難しい。マイクロプロセッサは、ビデオデータの入出力の速度に合わせるために、極端に高速でなければならない。
使用者にＴＶ放送番組の記録と再生とを同時に行う能力を与える、マルチメディアの時間ワーピングシステムを備えることは有利なことであろう。マイクロプロセッサを高いビデオデータ速度から切り離し、マイクロプロセッサ及びシステムへの要求条件を減らすという重要な方法を活用するマルチメディアの時間ワーピングシステムを備えることは、もっと有利なことであろう。
【０００５】
（発明の開示）
本発明は、マルチメディアの時間ワープを行うシステムを備える。本発明は、操作が容易で、低コストなマルチメディアの記憶及び表示システムを有効に利用して、使用者がテレビジョン放送の番組を見ながらその番組の中の前のシーンをすぐにでも再生することを可能にする。更に、本発明は、使用者が他の番組を同時に見たり、又は、再生したりしながら選択したテレビジョン放送番組を記憶することを可能にする。
本発明の好ましい実施形態は、例えば、全米テレビジョン方式委員会（ＮＴＳＣ）、又は、ＰＡＬ放送のようなアナログ形式、及び、デジタル衛星システム（ＤＳＳ）、デジタル放送サービス（ＤＢＳ）、又は、上級テレビジョン方式委員会（ＡＴＳＣ）のようなデジタル形式など、多くの形式のテレビジョン（ＴＶ）入力ストリームを受け入れる。アナログのＴＶストリームは、内部転送及び処理のために、ＭＰＥＧ（エムペグ）フォーマットのストリームに変換される一方、プリフォーマットされたＭＰＥＧストリームは、デジタルＴＶ信号から引き出されて、符号化されたアナログストリームに対して同様のフォーマットで提供される。
【０００６】
本発明は、この結果生じたＭＰＥＧストリームを分解して、それをビデオとオーディオとの成分に分離する。そして、その成分を一時的なバッファに記憶する。見つかった成分のタイプ、それが置かれている位置、及び、それが起こった時間を示すイベントが記録される。プログラム論理がイベントが発生したことを知り、データがバッファから引き出される。
パーサとイベントバッファとが、ＭＰＥＧストリームを分解する仕事と、データストリームの実時間性とからＣＰＵを切り離す。この切り離しは、ＣＰＵとバス速度とをより低速にして、システムコストをより低いものにしている。
【０００７】
ビデオ及びオーディオ成分は、記憶装置に記憶される。番組を表示するように要求されると、ビデオとオーディオ成分とが記憶装置から引き出され、ＭＰＥＧストリームに再集成される。ＭＰＥＧストリームは、デコーダへ送られる。デコーダは、ＭＰＥＧストリームをＴＶ映像信号に変換し、ＴＶ映像信号をＴＶ受像機に渡す。
使用者の制御指令が受信され、システムを通して送られる。これらの指令は、前記ＭＰＥＧストリームの流れに影響を与え、使用者が少なくとも次の機能、リバース、早送り、再生、中断、割出、早い／遅いリバース再生、及び、早い／遅い再生、によって記憶された番組を見ることを可能とする。
本発明の他の態様及び利点は、本発明の本質を例示的に示す添付図面と共に、以下の詳細な説明から明らかになるであろう。
【０００８】
（発明を実施するための最良の形態）
本発明は、マルチメディアの時間ワーピングシステムにより具体化される。本発明によるシステムは、使用者がテレビの放送番組を見ながらその番組の前のシーンをいつでもすぐに再現できるマルチメディアの記憶ならびに表示システムを備える。本発明は、更に、使用者が同時に他の番組を見たり再生したりしながら、選択されたテレビの放送番組を記憶し、少なくとも次の機能、リバース、早送り、再生、中断、割出、早い／遅いリバース再生、及び、早い／遅い再生、を備え、記憶された番組を見ることを可能にするものである。
【０００９】
図１を参照すると、本発明の好ましい実施形態は、入力セクション１０１、メディアスイッチ１０２、及び、出力セクション１０３を持っている。入力セクション１０１は、例えば、全米テレビジョン方式委員会（ＮＴＳＣ）、又は、ＰＡＬ放送、更に、デジタル衛星システム（ＤＳＳ）、デジタル放送サービス（ＤＢＳ）のようなデジタル形式、又は、上級テレビジョン方式委員会（ＡＴＳＣ）の形式によるテレビジョン（ＴＶ）入力ストリームなど、多くの形式を受け入れる。ＤＢＳ、ＤＳＳ、及び、ＡＴＳＣは、ＭＰＥＧ２（エムペグ２）と呼ばれる基準とＭＰＥＧ２搬送とに基づいている。ＭＰＥＧ２搬送は、ＴＶ受像機が入力ストリームを分解し、多重化信号の中に番組を見つけることができるように、ＴＶ送信機からのデジタルデータストリームをフォーマット化するための基準である。入力セクション１０１は、ＭＰＥＧストリームを作り出す。ＭＰＥＧ２搬送マルチプレックスは、同じ放送チャンネルにおいて多数のビデオ及びオーディオの供給、及び、プライベートデータを持つ多数の番組をサポートするものである。入力セクション１０１は、特別な番組のチャンネルに同調してそこから特別なＭＰＥＧプログラムを抽出し、更にそれをシステムの残りの部分へ供給する。アナログのＴＶ信号は、その信号がどのようにして得られたかについてシステムの残りの部分では分からないように、別々のビデオ及びオーディオのエンコーダを使用して、類似のＭＰＥＧフォーマットに符号化される。多くの標準的な方法で、情報は、アナログＴＶ信号の垂直ブランキング間隔（ＶＢＩ）に変調され得る。例えば、ＮＴＳＣ信号の走査線１０から走査線２０上に情報を変調するために、北米文字多重放送基準（ＮＡＢＴＳ）が使われてもよいし、また一方では、ＦＣＣは、字幕（ＣＣ）及び拡張データサービス（ＥＤＳ）に対して、走査線２１の使用を勧告している。その様な信号は、入力セクションによって復号化され、まるでＭＰＥＧ２のプライベートデータチャネルを経由して送られたかのように他のセクションへ転送される。
【００１０】
メディアスイッチ１０２は、マイクロプロセッサＣＰＵ１０６、ハードディスク又は記憶装置１０５、及び、メモリ１０４の間に介在している。入力ストリームは、ＭＰＥＧストリームに変換されてメディアスイッチ１０２へ送られる。メディアスイッチ１０２は、ＭＰＥＧストリームをメモリの中へ一時記憶する。次に、それは、もし使用者が実時間のＴＶを見ていれば２つの作動を遂行する。すなわち、ストリームが出力セクション１０３へ送られると同時に、ハードディスク又は記憶装置１０５に書き込まれる。
出力セクション１０３は、ＭＰＥＧストリームを入力として受け取り、ＮＴＳＣ、ＰＡＬ、又は、他の要求されるＴＶ基準に従うアナログのＴＶ信号を作り出す。出力セクション１０３は、ＭＰＥＧデコーダ、オンスクリーン表示（ＯＳＤ）発生器、アナログＴＶエンコーダ、及び、オーディオ論理を含んでいる。ＯＳＤ発生器は、出力されるアナログＴＶ信号の上に重ねられるであろう映像を、プログラム論理が供給できるようにするものである。更に、出力セクションは、ＮＡＢＴＳ、ＣＣ、及び、ＥＤＳを含む多くの基準フォーマットにより、映像信号のＶＢＩ上にプログラム論理から供給される情報を変調することができる。
【００１１】
図２を参照すると、本発明は、容易に拡張されて、多くの入力セクション（同調器）２０１、２０２、２０３、及び、２０４を収容し、その各々は、異なったタイプの入力に同調することができる。多くの出力モジュール（デコーダ）２０６、２０７、２０８、及び、２０９も同様に追加されている。映像の中の映像のような特殊効果は、多くのデコーダを使って実施できる。メディアスイッチ２０５は、使用者が別のプログラムを見ている時に他のプログラムを記録する。これは、他のストリームがディスク上に記憶されている時、別のストリームをディスクから引き出すことができるということを意味している。
図３を参照すると、入ってくるＭＰＥＧストリーム３０１は、ビデオセグメント３０２、３０５、及び、３０６、及び、オーディオセグメント３０３、３０４、及び、３０７を交互配置している。これらの要素は、別々のビデオ３０８及びオーディオ３０９のストリーム、又は、バッファを作るために、分離され再結合される必要がある。これは、ＭＰＥＧの要素をオーディオ、又は、ビデオのアナログ成分に変換するのに別々のデコーダが使用されているために必要になる。そのような分離した配送は、デコーダが信号を正確に再生するために正しく同期できるような時刻情報が作り出されることを必要とする。
【００１２】
メディアスイッチは、プログラム論理が適切な時刻情報を、恐らくはそれを直接ストリームの中に埋め込むことで、各セグメントと関連づけができるようにしている。各セグメントに対する時刻情報は、時間刻印と呼ばれている。この時間刻印は、単調に増加し、システムがブートアップするたびにゼロから開始する。このことは、本発明がいかなる特定のビデオセグメントにおける、いかなる特定の位置も見つけることを可能にしている。例えば、システムが、貯蔵されつつある次の入力ビデオストリームにおいて５秒間読む必要があれば、システムは、単純にストリームの中を前方へ読み始め、適切な時間刻印を探すことになる。
ストリームの中に索引を付けるために、記憶されたファイル上で２等分探索を実施することができる。各ストリームは、一定な時間刻印による速い２等分探索が可能なように、連続した一定サイズのセグメントとして記憶されている。使用者が番組の中間から開始することを望む場合、システムは、適当な位置を見つけるまで記憶されたセグメントの２等分探索を実行し、最小限の情報量で目標とする結果を得る。信号が代りにＭＰＥＧストリームとして記憶されている場合、目標とする位置を見つけるためには、ストリームを最初から線型的に分解することが必要となるであろう。
【００１３】
図４を参照すると、メディアスイッチは、４つの入力用直接メモリアクセス（ＤＭＡ）装置４０２、４０３、４０４、及び、４０５を含み、各ＤＭＡは、関連のバッファ４１０、４１１、４１２、及び、４１３を持っている。概念上は、各ＤＭＡ装置は、ポインタ４０６、そのポインタに対する制限値４０７、次のポインタ４０８、及び、次のポインタに対する制限値４０９を持っている。各ＤＭＡ装置は、例えばビデオ４０２、オーディオ４０３、及び、分解された結果４０５といった特定なタイプの情報の専用にされている。バッファ４１０、４１１、４１２、及び、４１３は、円状であり、特定の情報を収集する。ＤＭＡ装置は、関連バッファ内にポインタ４０６を区分し、その制限値４０７に届くと、次に、次のポインタ４０８と制限値４０９にロードする。ポインタ４０６と次のポインタ４０８とを、対応する制限値と共に、同じ値に設定することが、円状バッファを作り出す。次のポインタ４０８は、ベクトルＤＭＡをもたらすために、異なるアドレスに設定することができる。
【００１４】
入力ストリームは、パーサ４０１を通って流れている。パーサ４０１は、ストリームを分解し、ビデオ、オーディオ、又は、プライベートデータのセグメントを示すＭＰＥＧにより識別されたイベントを探す。例えば、パーサ４０１がビデオイベントを見つけた時は、それは、ストリームをビデオＤＭＡ装置４０２へ差し向ける。パーサ４０１は、データをバッファして、ビデオＤＭＡ装置４０２を通してビデオバッファ４１０の中にそれをＤＭＡする。同時に、パーサ４１０は、イベントをイベントバッファ４１３の中に作り出すイベントＤＭＡ装置４０５へイベントを差し向ける。パーサ４０１がオーディオイベントを見つけた時は、それは、バイトストリームをオーディオＤＭＡ装置４０３へ差し向け、イベントをイベントバッファ４１３の中に作り出す。同様に、パーサ４０１がプライベートデータのイベントを見つけた時は、それは、バイトストリームをプライベートデータＤＭＡ装置４０４へ差し向け、更に、イベントをイベントバッファ４１３に差し向ける。メディアスイッチは、イベントがイベントバッファに置かれた時、割込機構を通してプログラム論理に通知する。
【００１５】
図４及び図５を参照すると、イベントバッファ４１３は、パーサ４０１によってイベントで満たされる。イベントバッファにおける各イベント５０１は、オフセット５０２、イベントタイプ５０３、及び、時間刻印フィールド５０４を持っている。パーサ４０１は、イベントがバッファ内に置かれるのに伴って各イベントのタイプとオフセットを用意する。例えば、オーディオイベントが生じた時は、イベントタイプフィールドは、オーディオイベントに設定され、更に、オフセットは、オーディオバッファ４１１における位置を示している。プログラム論理は、オーディオバッファ４１１が開始する位置を知っており、ストリームのイベントを見つけるためにオフセットを付け加える。アドレスオフセット５０２は、次のイベントがどこで起きるかをプログラム論理に教えているが、それが終わる位置は教えていない。前のイベントが記憶されて、それで現在のイベントの終わりをセグメントの長さと共に見出すことができる。
【００１６】
図５及び図６を参照すると、プログラム論理は、メディアスイッチ６０１によって割込されると、イベントバッファ６０２に積重ねられたイベントを読み取る。これらのイベントから、プログラム論理は、分解されたＭＰＥＧセグメント６１５に対応する一連の論理セグメント６０３を作り出す。プログラム論理は、オフセット５０２を各セグメントの実アドレス６１０に変換し、最後に貯蔵されたイベントを使ってイベントの長さ６０９を記録する。ストリームがアナログ信号を符号化することによって作り出された場合、得られる出力を正しく表わすためにデコーダによって使用される、プログラム時間刻印（ＰＴＳ）値を含まないであろう。従って、プログラム論理は、各セグメントに対する模擬ＰＴＳを計算するために作り出されている時間刻印５０４を使用して、それを論理セグメントの時間刻印６０７の中に置く。デジタルのＴＶストリームの場合には、ＰＴＳ値は、既にストリームに符号化されている。プログラム論理は、この情報を引き出し、それを論理セグメントの時間刻印６０７に置く。
【００１７】
プログラム論理は、それが決められたバッファサイズに到達するまで論理セグメント６０３を集め続ける。これが起こると、プログラム論理は、これらの論理セグメント６０３を順番通りに含み、更に、従属的な制御情報を含むパケット化された基本ストリーム（ＰＥＳ）６０５バッファと呼ばれる新しいバッファを作り出す。各々の論理セグメント６０４は、メディアスイッチ６０１によって書込まれた円状バッファ、即ちビデオバッファ６１３に直接向いている。この新しいバッファは、それから他の論理構成要素に渡され、その論理構成要素は、バッファにあるストリームを復号化するとか、又は、記憶媒体に書き込むとか、なんらかの方法で更に処理をすることができる。こうして、ＭＰＥＧデータは、メモリの１つの場所から他の場所へプロセッサによってコピーされない。このことは、より低いメモリ帯域幅及びプロセッサ帯域幅しか必要としないため、更にコスト効果のある設計をもたらす。
【００１８】
ＭＰＥＧストリームをＰＥＳバッファに変換することにおける独特な特徴は、論理セグメントに関連するデータが、上記の通り、バッファ自体に存在する必要がないことである。ＰＥＳバッファが記憶のために書込まれる時は、これらの論理セグメントは、これらが現れる論理的順番で記憶媒体に書込まれる。これは、ストリームの構成要素を、それらがビデオ、オーディオ、又は、プライベートデータの円状バッファのどこにあろうと、記憶媒体のストリームデータのシングル線型バッファ内に集める効果を持っている。バッファは、記憶媒体からの１つの情報転送によって記憶媒体から再び読まれ、論理セグメント情報は、バッファ６０６にある実際の場所に合わせて更新される。より高いレベルのプログラム論理は、それが論理セグメントのみを扱うためにこの変換には気付かず、こうし試験リームデータは、データがＤＲＡＭ内の場所の間でＣＰＵにより１度もコピーされる必要もなく、容易に管理される。
【００１９】
メディアスイッチの独特な態様は、効果的にかつ安価に、高速のデータ速度を処理するその能力である。それは、低コスト基盤のもとで、ビデオ及びオーディオデータを取り込むこと、ビデオ及びオーディオデータを配送すること、ビデオ及びオーディオデータをディスクへ送り込むこと、及び、ビデオ及びオーディオデータをディスクから引き出すことの各機能を遂行する。通常、メディアスイッチは、大量の情報をＣＰＵの最小限の介在で動かすために、それ自身のＤＭＡ機能を使い、マイクロプロセッサのＣＰＵとは非同期で自律的に作動する。
図７を参照すると、メディアスイッチ７０１の入力側は、ＭＰＥＧエンコーダ７０３に接続されている。また、メディアスイッチ７０１の中に送り込んでいるＭＰＥＧのオーディオ７０４と垂直ブランキング間隔（ＶＢＩ）データ７０２とに特有の回路もある。デジタルＴＶ信号が代わりに処理されている場合、ＭＰＥＧエンコーダ７０３は、ＭＰＥＧ２搬送デマルチプレクサで置換えられ、更に、ＭＰＥＧオーディオエンコーダ７０４とＶＢＩデコーダ７０２とは除去される。該デマルチプレクサは、ビデオ入力のメディアスイッチポートを通って引き出されたオーディオ、ビデオ、及び、プライベートデータチャネルの各ストリームを多重化する。
【００２０】
パーサ７０５は、ＭＰＥＧエンコーダ７０３からの入力データストリームであるオーディオエンコーダ７０４及びＶＢＩデコータ７０２、又は、デジタルＴＶストリームの場合には搬送デマルチプレクサからのそれらを分解する。パーサ７０５は、ビデオ又はオーディオストリームの全ての重要なイベントの始まり、全てのフレームの開始、シーケンスヘッダの開始など、プログラム論理が正しい再生と、例えば、早送り、リバース、再生、中断、早い／遅い再生、割出、及び、早い／遅いリバース再生のような、ストリームへ及ぼす特別な効果の実行との両方を行うために知る必要がある情報の全ての細切れを検出する。
パーサ７０５は、ビデオ又はオーディオセグメントを認識するか、又は、プライベートデータを与えられた時は、タグ７０７をＦＩＦＯ７０６の中に置く。ＤＭＡ７０９は、これらのタグをいつ取り出すかを制御している。セグメントのタグ７０７とＤＭＡアドレスとは、イベント待ち行列７０８に入れられる。フレームタイプの情報は、それがＩ−フレーム、ビデオＢ−フレーム、ビデオＰ−フレーム、ビデオＰＥＳ、オーディオＰＥＳ、シーケンスヘッダ、オーディオフレーム、又は、プライベートデータパケットの開始であるかどうかに関わらず、その情報の細切れが置かれた関連する円状バッファのオフセットと共に、イベント待ち行列７０８に置かれる。ＣＰＵ７１３で作動しているプログラム論理は、円状バッファにあるイベントを、円状バッファがＤＲＡＭ７１４へ転送された後で調べる。
【００２１】
メディアスイッチ７０１は、ＣＰＵ７１３及びＤＲＡＭ７１４に接続するデータバス７１１を持っている。また、アドレスバス７１２は、メディアスイッチ７０１、ＣＰＵ７１３、及び、ＤＲＡＭ７１４の間で共有されている。ハードディスク又は記憶装置７１０は、メディアスイッチ７０１のポートの１つに接続されている。メディアスイッチ７０１は、ＭＰＥＧビデオデコーダ７１５と別のオーディオデコーダ７１７にストリームを出力する。オーディオデコーダ７１７の信号は、遠隔制御による使用者の指令、又は、他の内部イベントに応答してシステムにより作り出されたオーディオ待ち行列を含んでいる。ＭＰＥＧデコーダからの復号化されたオーディオ出力は、デジタル的に別のオーディオ信号と混合される７１８。得られた信号は、ビデオ、オーディオ、及び、オンスクリーン表示を含んでおり、ＴＶ７１６へ送られる。
メディアスイッチ７０１は、８ビットでデータを受け取り、それをディスクへ送っているが、一方では、同時にディスクから他のデータストリームを引き出して、それをＭＰＥＧデコーダ７１５へ送っている。上述された全てのＤＭＡ装置は、同時に動くことができる。メディアスイッチ７０１は、フィールドプログラム可能ゲートアレー（ＦＰＧＡ）、ＡＳＩＣ、又は、離散論理を使って、ハードウェアで実現することができる。
【００２２】
各フレームの開始を探して莫大なデータストリームを分解することよりもむしろ、プログラム論理は、単にＤＲＡＭ７１４にある円状イベントバッファを調べ、各フレームの開始がある位置とフレームタイプとを通知することができる。この方法は、大量のＣＰＵ電力の節約になり、ＣＰＵ７１３の実時間条件を小さくしている。ＣＰＵ７１３は、どんな時でも非常に高速であるべきであるということではない。メディアスイッチ７０１は、ＣＰＵ７１３にタスクを完遂するためにできるだけ多くの時間を与えている。パーサ機構７０５及びイベント待ち行列７０８は、オーディオ、ビデオ、及び、バッファを分解することから、更に、ストリームの実時間性からＣＰＵ７１３を切り離し、そのことがより低いコストを可能にする。それはまた、そうでなければ必要であったはずのものよりかなり安価なメモリを使い、かなり低いクロック速度で作動するＣＰＵ環境でのバス構造の使用を可能にする。
【００２３】
ＣＰＵ７１３は、１つのＤＭＡ転送の待ち行列を作ることができ、その空き時間に、次のＤＭＡ転送を始めることができる。このことは、ＣＰＵ７１３に対して、その間にＤＭＡ制御装置７０９を助けることができる大きな時間間隔を与える。ＣＰＵ７１３は、大きな遅延が許されるために、比較的大きな時間ウインドウ内でＤＭＡ割込に応答できるであろう。ＭＰＥＧストリームは、それがＭＰＥＧ２搬送から引き出されたものであろうと、アナログのＴＶ信号から符号化されたものであろうと、一般に可変ビット速度符号化（ＶＢＲ）と呼ばれる技術を使って符号化される。この技術は、画像間の動きの量により、連続する画像を表現するために必要とされるデータ量を変動させるものである。この技術は、信号に対する必要な帯域幅をかなり減少させるが、速い動き（バスケットボールゲームのような）の連続は、かなり大きな帯域幅を要して符号化されるであろう。例えば、ヒューズのディレクＴＶサテライトシステムは、必要な帯域幅である１から１０メガバイト毎秒の、フレームからフレームで変わるそのどこかを使って信号を符号化している。この構成を使うことなしにそのように速く変化するデータ速度に追随することは、いかなるコンピュータシステムでも困難であろう。
【００２４】
図８を参照すると、ＣＰＵ内のプログラム論理は、３つの概念上の要素、ソース８０１、変換８０２、及び、シンク８０３を持っている。ソース８０１は、データのバッファを作り出す。変換８０２は、データのバッファを処理し、シンク８０３は、データのバッファを消費する。該変換は、それが操作するデータのバッファを割り当てて、待ち行列を作る責任がある。バッファは、あたかも「空」であるかのようにデータソースに割り当てられ、該データソースは、バッファを「満杯」に戻す。バッファは、次に待ち行列に並べられ、「満杯」としてシンクに与えられ、該シンクは、バッファを「空」に戻すことになる。
ソース８０１は、エンコーダ、例えばデジタルの衛星受信機からデータを受取り、下流方向変換からこのデータのためのバッファを取得し、バッファ内にデータを詰めて、上述のように、パイプラインにバッファを押しやる。ソース・オブジェクト８０１は、システムの残りについては何も知らない。シンク８０３は、バッファを消費し、上流方向変換からバッファを取って、データをデコーダへ送り、そして次に再使用のためにバッファを解放する。
【００２５】
使用される変換８０２は、２つのタイプ、空間的変換と時間的変換とがある。空間的変換は、例えば通り抜けるバッファされたデータに画像のねじれ、又は、圧縮／伸張を行う変換である。時間的変換は、システムに入るバッファとシステムから出るバッファとの間で、はっきりした時間的関係がない時に使用される。そのような変換は、記憶媒体上のファイル８０４へバッファを書き込んでいる。該バッファは、その後で引き出され、パイプラインを通って送られ、ストリームの中に正しく並べられる。
図９を参照すると、プログラム論理のＣ＋＋クラスの階層的な派生が示されている。ティボメディアカーネル（Ｔｍｋ）９０４、９０８、及び、９１３がオペレーティングシステムのカーネルと共に介在している。該カーネルは、メモリ割当て、同期処理、及び、スレッディングのような操作をもたらす。Ｔｍｋコア９０４、９０８、及び、９１３は、メディアカーネルから取ったメモリをオブジェクトとして構成する。それは、該オブジェクトを構成及び分解するための演算子、ニュー及びデリートを備える。各々のオブジェクト（ソース９０１、変換９０２、及び、シンク９０３）は、定義によってマルチスレッドされており、並行して実行することができる。
【００２６】
Ｔｍｋパイプラインクラス９０５、９０９、及び、９１４は、システムを通り抜ける流れ制御に責任を負っている。パイプラインは、ソース９０１からシンク９０３に至る流れにおいて、次のパイプラインに向いている。例えば、パイプラインを中断するためには、「ポーズ」と呼ばれるイベントがパイプラインの初めのオブジェクトに送られる。このイベントは、次のオブジェクトに中継されてパイプラインを下っていく。これらの全ては、パイプラインを通り抜けるデータとは非同期で起きている。このように、遠隔通話のような応用と同様に、ＭＰＥＧストリームの流れ制御は、非同期であり、ストリーム自体から分離している。このことが、中断、巻戻し、早送り、及び、その他を含む、前述の特徴をサポートするのに十分強力であると同時に、平易な論理設計を可能にしている。加えて、この構成は、新しいストリームからのデータがパイプラインを通り下った後で、バッファされたデータが簡単に破棄でき、更に、デコーダが１つのイベントを使ってリセットするので、ストリームのソース間の早くて効率的な切換を可能にする。例えば、入力セクションによって捕捉されているチャンネルを切換える時、又は、入力セクションからのライブ信号と記憶されたストリームとの間で切換える時には、その様な機能が必要である。
【００２７】
ソース・オブジェクト９０１は、Ｔｍｋソース９０６であり、変換オブジェクト９０２は、ＴｍｋＸｆｒｍ９１０である。これらは、パイプラインの中のクラスに対する基準的な動きを決める中間のクラスである。概念的には、これらは、パイプラインを下るバッファと連携している。ソース・オブジェクト９０１は、メディアスイッチのような物理的なデータソースからデータを受け取り、それをＰＥＳバッファに入れる。バッファを得るために、ソース・オブジェクト９０１は、バッファを求めてそのパイプラインで下り、ストリームのオブジェクトを探す（ａｌｌｏｃＥｍｐｔｙＢｕｆ）。ソース・オブジェクト９０１は、十分なメモリが存在するまでブロックされる。このことは、パイプラインが自己調整であり、自動的な流れ制御を持っていることを意味している。ソース・オブジェクト９０１がバッファを満たすと、それは、全バッファ押出し（ｐｕｓｈＦｕｌｌＢｕｆ）機能を通して、変換９０２にバッファを渡して戻す。
シンク９０３もまた流れ制御される。それは、次の満杯のバッファに対する準備ができていることを変換９０２に知らせる、ｎｅｘｔＦｕｌｌＢｕｆを呼ぶ。この作動により、バッファが準備されるまでシンク９０３をブロックすることができる。シンク９０３がバッファを終了した（即ち、それがバッファにあるデータを使い切った）時、それは、ｒｅｌｅａｓｅＥｍｐｔｙＢｕｆを呼ぶ。該ｒｅｌｅａｓｅＥｍｐｔｙＢｕｆは、変換９０２にバッファを返す。変換９０２は、次にそのバッファを、例えば、再び満杯とするためにソース・オブジェクト９０１へ渡すことができる。この方法の自動流れ制御の利点に加えて、変換によるバッファの一定な割当てを実行することにより、バッファに専有されるメモリ量を制限している。これは、コスト効果のある制限されたＤＲＡＭ環境を達成する重要な形態である。
【００２８】
ＭｅｄｉａＳｗｉｔｃｈクラス９０９は、ＴｍｋＣｌｉｐＣａｃｈｅ９１２オブジェクトのａｌｌｏｃＥｍｐｔｙＢｕｆの方法を呼び、そこからＰＥＳバッファを受け取る。それは次に、メディアスイッチハードウェアの円状バッファに出て行き、ＰＥＳバッファを作り出す。ＭｅｄｉａＳｗｉｔｃｈクラス９０９がバッファを満たし、それをＴｍｋＣｌｉｐＣａｃｈｅ９１２オブジェクトに返す。
ＴｍｋＣｌｉｐＣａｃｈｅ９１２は、記憶媒体上でキャッシュファイル９１８を保持している。それはまた、このキャッシュに対する２つのポインタ、ソース９０１から来る次のバッファが挿入される位置を示すプッシュポインタ９１９と、使われている現在のバッファを向いている現在のポインタ９２０とを保持している。
現在のポインタによって示されたバッファは、ベラ・デコーダクラス９１６へ渡される。ベラ・デコーダクラス９１６は、ハードウェアのデコーダ９２１と会話する。デコーダ９２１は、ＮＴＳＣ、ＰＡＬ、又は、他のアナログ形式でアナログＴＶ信号に引き続き符号化される、復号化されたＴＶ信号を作り出す。ベラ・デコーダクラス９１６がバッファを終了した時、それは、ｒｅｌｅａｓｅＥｍｐｔｙＢｕｆを呼ぶ。
【００２９】
クラスの構成は、システムを試験しデバッグすることを容易にしている。各レベルは、それが適切に作動することを確かめるために別々に試験することができ、そしてクラスは、各オブジェクトを効率的に試験する能力を保持する一方で、目標とする全機能を達成するために、徐々にひとかたまりにすることができる。  制御オブジェクト９１７は、使用者からの指令を受け入れ、パイプラインが行っていることを制御するために、パイプラインにイベントを送り込む。例えば、もし使用者が遠隔制御を持ち、ＴＶを見ているとすれば、使用者が中断を押すと、制御オブジェクト９１７がイベントをシンク９０３へ送り、シンク９０３に中断するように命令する。シンク９０３は、新しいバッファを探すのを中止する。現在のポインタ９２０は、それがあった位置に留まっている。シンク９０３は、再生を通知する他のイベントを受け取ると、再びバッファを取り出し始める。システムは、完全に周期化されており、それが止まったフレームから開始する。
【００３０】
遠隔制御はまた、早送りキーを持ち得る。早送りキーが押されると、制御オブジェクト９１７が変換９０２にイベントを送り、２秒間ほど前に進むように命令する。変換９０２は、２秒の時間間隔は３バッファほど前へ進む必要があることを見出す。次にそれは、下流方向のパイプラインにリセットイベントを配送し、その結果、ハードウェアデコーダに存在しているあらゆる待ち行列のデータ又は状態が一掃される。これは、ＭＰＥＧストリームの構成がデータの多くのフレームに亘って状態保持を必要とし、その状態がポインタの再位置合わせによって無効とされることになるから、きわどい段階である。次にそれは、現在のバッファ９２０を３バッファ前に進める。次に、シンク９０３が新しい現在のバッファを得ることになるｎｅｘｔＦｕｌｌＢｕｆを呼ぶ。同じ方法が早いリバースに使われ、変換９０２が現在のポインタ９２０を後進させる。
システム時計の基準がデコーダに存在している。このシステム時計の基準は、早い再生に対してスピードアップされ、遅い再生のためにスローダウンされる。シンクは単に、時計の早さによって、より早く、又は、より遅く満杯のバッファを探すだけである。
【００３１】
図１０を参照すると、ＴｍｋＸｆｒｍクラスから派生した２つの他のオブジェクトがディスクアクセスのためのパイプラインに置かれている。１つは、ＴｍｋＣｌｉｐＲｅａｄｅｒ１００３と呼ばれ、他の１つは、ＴｍｋＣｌｉｐＷｒｉｔｅｒ１００１と呼ばれる。バッファがＴｍｋＣｌｉｐＷｒｉｔｅｒ１００１に入り、記憶媒体１００４上のファイルへ押される。ＴｍｋＣｌｉｐＲｅａｄｅｒ１００３は、記憶媒体１００５上でファイルから離されるバッファを探す。ＴｍｋＣｌｉｐＲｅａｄｅｒ１００３は、ａｌｌｏｃＥｍｐｔｙＢｕｆ及びｐｕｓｈＦｕｌｌＢｕｆの方法のみを与え、一方、ＴｍｋＣｌｉｐＷｒｉｔｅｒ１００１は、ｎｅｘｔＦｕｌｌＢｕｆ及びｒｅｌｅａｓｅＥｍｐｔｙＢｕｆの方法のみを与える。それ故に、ＴｍｋＣｌｉｐＲｅａｄｅｒ１００３は、入力と同じ機能、又は、ＴｍｋＣｌｉｐＣａｃｈｅ１００２の「プッシュ」側を遂行し、一方、ＴｍｋＣｌｉｐＷｒｉｔｅｒ１００１は、それ故に出力と同じ機能、又は、ＴｍｋＣｌｉｐＣａｃｈｅ１００２の「プル」側を遂行する。
【００３２】
図１１を参照すると、多くの機能を完遂する好ましい実施形態が示されている。ソース１１０１は、ＴＶ信号入力を持っている。該ソースは、ＴｍｋＸｆｒｍから派生した変換であるＰｕｓｈＳｗｉｔｃｈ１１０２へデータを送る。該ＰｕｓｈＳｗｉｔｃｈ１１０２は、制御オブジェクト１１１４によって切り換えることができる多くの出力を持っている。このことは、パイプラインの１つを止めて他のパイプラインを使用者の好みで開始できることを意味している。使用者は、異なる記憶装置へ切り換えることができる。ＰｕｓｈＳｗｉｔｃｈ１１０２は、記憶装置１１０７上に向かうＴｍｋＣｌｉｐＷｒｉｔｅｒ１１０６へ出力されるか、又は、キャッシュ変換１１０３へ書込まれることができるであろう。
この装置の重要な形態は、プログラム論理の制御のもとで、入力信号の各部分を選択的に捕捉することが容易にできることである。現在の時間、またおそらくは特定の時間間隔、またおそらくは視聴者による遠隔制御のボタン押下のような情報にもとづいて、ＴｍｋＣｌｉｐＷｒｉｔｅｒ１１０６は、信号の一部を記録するためにスイッチが入れられ、しばらく経ってスイッチを切ることができる。この切換は、ＰｕｓｈＳｗｉｔｃｈ１１０２オブジェクトに「スイッチ」イベントを送ることにより、通常、引き起こされる。
【００３３】
選択的な捕捉を開始するための他の方法は、ＶＢＩに変調されているか、又は、ＭＰＥＧのプライベートデータチャネルに置かれている情報を通すことである。ＶＢＩ、又は、プライベートデータチャネルから復号化されたデータは、プログラム論理へ渡される。プログラム論理は、その中にデータが変調されたＴＶ信号の捕捉を始める必要があることをそのデータが示しているかどうかを判断するために、そのデータを調べる。同様に、この情報はまた、記録操作がいつ終わるべきかを示すことができるし、また、他のデータ項目を、捕捉がいつ終わるべきかを示している信号の中に変調することもできる。開始と終了とのインジケータを該信号の中にはっきりと変調することができるし、また、該信号の中に標準的方法で置かれている他の情報を前記情報を符号化するために使用できる。
【００３４】
図１２を参照すると、プログラム論理が開始と終了との時間を決めるために、捕捉を引き起こす特別な単語、又は、言い回しを使い、字幕（ＣＣ）フィールドの中に含められている単語をどのように走査するかについて説明する例が示されている。ＮＴＳＣ、又は、ＰＡＬフィールド１２０１のストリームが示される。ＣＣバイトが各奇数フィールド１２０２から引き出されており、単語パーサ１２０４による処理のため、円状バッファ１２０３に入れられる。単語パーサ１２０４は、通常はスペース、ピリオド、又は、他の区切り文字である単語の境に出会うまで文字を集める。ＭＰＥＧのオーディオ及びビデオセグメントが一続きの一定サイズのＰＥＳバッファに集められていることを上記から想起されたい。特別なセグメントは、ＣＣフィールド１２０５から引き出された単語を保持するために、各ＰＥＳバッファに付け加えられる。こうして、ＣＣ情報は、オーディオ及びビデオと時間同期して保存され、ストリームが表示される時に視聴者に正しくもたらされる。これはまた、記憶されているストリームがプログラム論理の空き時間にＣＣ情報に合わせて処理されることを可能にし、これが負荷を分散して、コストを減少させ、更に効率を改善する。そのようなケースでは、特別なセグメントに記憶された単語は、単に状態テーブル論理１２０６に渡されるだけである。
【００３５】
ストリーム捕捉中は、その単語が認識された時に取るべき行動を示すテーブル１２０６で各単語は調べられる。この行動は、単に、レコグナイザ状態マシン１２０７の状態を変えるか、又は、状態マシン１２０７に対して、「捕捉開始」、「捕捉停止」、「言い回しが見つかった」などの行動要求、又は、他の類似な要求を出させることができる。もちろん、例えば、もし望ましくない言葉が番組で使われていれば、異なるオーディオトラックで覆うために、認識された単語又は言い回しは、パイプラインを切り換えることができる。
分解状態テーブル１２０６、及び、レコグナイザ状態マシン１２０７は、いつでも修正されるか、又は、変更され得ることに注意されたい。例えば、異なるテーブルと状態マシンとが各入力チャネルに与えられ得る。代わりに、これらの要素は、日中の時間によって、又は、他のイベントのために切り換えることができる。
【００３６】
図１１を参照すると、シンク１１０５に出力するＰｕｌｌＳｗｉｔｃｈが追加されている１１０４。シンク１１０５は、ＰｕｌｌＳｗｉｔｃｈ１１０４からバッファを得るか、又は、返すためにｎｅｘｔＦｕｌｌＢｕｆ及びｒｅｌｅａｓｅＥｍｐｔｙＢｕｆを呼ぶ。ＰｕｌｌＳｗｉｔｃｈ１１０４は、どのような数の入力でも持つことができる。１つの入力は、ＡｃｔｉｏｎＣｌｉｐ１１１３であり得る。遠隔制御は、入力ソース間を切り換えできる。制御オブジェクト１１１４は、ＰｕｌｌＳｗｉｔｃｈ１１０４に、それが切り換えることを命令するイベントを送る。ＰｕｌｌＳｗｉｔｃｈ１１０４は、現在の入力ソースから制御オブジェクトが選択するどのような入力ソースにでも切り換えるであろう。
ＡｃｔｉｏｎＣｌｉｐクラスは、予想及び制御可能な方法で、恐らく遠隔制御を経由する視聴者選択の追加された制御と共に、多くの異なる記憶された信号を順に並べる段階を備える。すなわち、それは、次の記憶された信号へ切換えるための「スイッチ」イベントを受け入れるＴｍｋＸｆｒｍオブジェクトの派生物として現れる。
【００３７】
これは、プログラム論理又は使用者が、ビデオ出力の使用者固有のシーケンスを作ることを可能とする。どんな数のビデオセグメントも並べることができ、プログラム論理又は使用者が、あたかも放送スタジオのビデオミクサを使用しているかのようにつなぎ合わせることができる。ＴｍｋＣｌｉｐＲｅａｄｅｒ１１０８、１１０９、及び、１１１０が配置され、各々は、ＰｕｌｌＳｗｉｔｃｈ１１０４に掛けられている。ＰｕｌｌＳｗｉｔｃｈ１１０４は、ビデオ及びオーディオクリップを結合するために、ＴｍｋＣｌｉｐＲｅａｄｅｒ１１０８、１１０９、及び、１１１０の間で切り換える。流れ制御は、パイプラインが構築されるその方法のため、自動的である。プッシュ及びプルスイッチは、放送スタジオにおけるビデオスイッチと同じである。
ここで述べられている派生されたクラスと得られたオブジェクトは、ＴＶストリームの記憶、読み出し、スイッチ、及び、視聴に対する多くの異なった有用な構成を作るために自由に結合することができる。例えば、多くの入出力セクションが用意されている場合、１つの入力が視聴される一方で、他の入力が記憶されており、第２の出力によって作られた影像の中の影像ウインドウが、以前に記憶されたストリームをプレビューするために使用される。そのような構成は、高価で洗練されたハードウェアによる解決策から期待される機能性を、１つのコスト効果のある装置の範囲内で達成できる固有で斬新なソフトウェア変換の適用例を表わしている。
【００３８】
図１３を参照すると、ＶＣＲバックアップを行うシステムの概観図が示されている。出力モジュール１３０３は、ＴＶ信号をＶＣＲ１３０７へ送る。これは、使用者がＴＶ番組を直接ビデオテープ上へ記録することを可能にする。本発明は、使用者が記録されているディスクからビデオテープへ番組を並べ替えること、及び、その番組がＶＣＲ１３０７へ送られる時間をあらかじめ予定することを可能にする。タイトルページ（ＥＰＧデータ）は、番組が送られる前にＶＣＲ１３０７へ送られる。より長い番組は、再生速度をスピードアップするか、又は、いくつかのフレームを削除することによって、短いビデオテープ上に合うように縮小することができる。
ＶＣＲ１３０７の出力はまた、入力モジュール１３０１の中に差し戻すことができる。この構成において、ＶＣＲは、メディアスイッチ１３０２に対するバックアップシステムとして働いている。いかなる記憶容量オーバーフローや低優先度番組は、後日の読み出しのため、ＶＣＲ１３０７へ送られる。
【００３９】
入力モジュール１３０１は、垂直ブランキング間隔（ＶＢＩ）上に符号化されている情報を復号化し、システムの残りの部分へ渡すことができる。出力モジュール１３０３は、システムの残りの部分によって与えられたデータを、出力されたＶＢＩの中に符号化することができる。プログラム論理は、ＶＣＲ１３０７を使ってテープ上に記録されることになる出力信号の中に、様々な種類の識別信号を符号化するように備えることができる。このテープを再生して入力の中へ戻すことにより、プログラム論理が、テープ上に記録されたＴＶ信号を正しく処理するために、この識別情報を読み返すことを可能にする。例えば、特定の番組は、それが記録された時間やソースネットワークなどについての情報と共にテープに記録されてもよい。この番組が入力モジュールの中に再生される時、この情報は、信号の記憶や視聴者への提示などを制御するために使用することができる。
【００４０】
当業者であれば、そのような機構がテレビジョン信号として必ずしも適切に表現されていない様々なデータ項目をプログラム論理へ導入するために使用できることをすぐに理解するであろう。例えば、ソフトウェア更新又は他のデータがシステムに渡されてもよい。プログラム論理は、テレビジョンストリームからこのデータを受け取ると、ある認証シーケンスを要求すること、及び／又は、何か以前に承認されたキーによって埋め込まれた情報を解読することなど、データがどのように処理されるかについての制御を強制することができる。そのような方法は、正規の放送信号に対してもまた有効であり、非ＴＶの制御情報とデータとをプログラム論理へ与えるための効率の良い手段へと導く。
更に、当業者は、上記においてＶＣＲが特に述べられているが、マルチメディアのあらゆる記録装置（例えば、デジタルビデオディスク−ランダムアクセスメモリ（ＤＶＤ−ＲＡＭ）レコーダ）が容易にＶＣＲの位置で代用されることをすぐに理解するであろう。
【００４１】
本発明は、ここで好ましい実施形態に関連して述べられているが、当業者は、前記の諸々に対して他の適用例が、本発明の精神と範囲とから逸脱することなく、代用され得ることをすぐに理解するであろう。例えば、本発明は、賭博カジノの犯罪を見つけることに使うことができる。その場合、本発明の入力セクションがカジノのビデオ監視システムに接続され、記録されたビデオは、記憶されて同時に外部ＶＣＲに出力される。使用者は、どのようなビデオ供給にも切り換えることができ、その外部ＶＣＲが実時間でビデオ入力を詰め込まれながら、記録されたビデオの特定セグメント（即ち、巻戻し、再生、遅い再生、早送り等）を調べることができる。従って、本発明は、添付請求項によってのみ限定されるべきである。
【図面の簡単な説明】
【図１】本発明の好ましい実施形態を概観する概略ブロック図である。
【図２】本発明による多数の入出力モジュールを使用する、本発明の好ましい実施形態を示す概略ブロック図である。
【図３】本発明によるＭＰＥＧ（エムペグ）データストリーム、及び、そのビデオ／オーディオ成分を示す概略図である。
【図４】本発明によるメディアスイッチに包含される、パーサ及び４つの直接メモリアクセス（ＤＭＡ）入力装置を示す概略ブロック図である。
【図５】本発明によるパケット化された基本ストリーム（ＰＥＳ）バッファの構成要素を示す概略図である。
【図６】メディアスイッチの出力円状バッファにある分解された構成要素からのＰＥＳバッファの構築を示す概略図である。
【図７】本発明によるメディアスイッチと、それが通信する様々な構成要素を示す概略ブロック図である。
【図８】本発明によるプログラム論理を概観する概略ブロック図である。
【図９】本発明によるプログラム論理のクラス階層を示す概略ブロック図である。
【図１０】本発明のクリップキャッシュ構成要素の実施形態を示す概略ブロック図である。
【図１１】本発明により放送スタジオのビデオミクサをエミュレートする、本発明の好ましい実施形態を示す概略ブロック図である。
【図１２】本発明による字幕パーサを示す概略ブロック図である。
【図１３】本発明に欠くことのできない構成要素としての本発明のＶＣＲを利用する本発明の好ましい実施形態を概観する概略ブロック図である。
【図１】
0003615486.tif 000002
【図２】
0003615486.tif 000003
【図３】
0003615486.tif 000004
【図４】
0003615486.tif 000005
【図５】
0003615486.tif 000006
【図６】
0003615486.tif 000007
【図７】
0003615486.tif 000008
【図８】
0003615486.tif 000009
【図９】
0003615486.tif 000010
【図１０】
0003615486.tif 000011
【図１１】
0003615486.tif 000012
【図１２】
0003615486.tif 000013
【図１３】
0003615486.tif 000014