(57)【特許請求の範囲】
【請求項１】
放送データストリームの第１の部分を、タイムシフトデータファイルとして格納するステップと、前記タイムシフトデータファイルはユーザがデータ損失無く生放送データストリームを一時停止することを可能であり且つ前記データストリームによりユーザが前方及び後方にシークをすることを可能であり、
前記放送データストリームの第２の部分を、記録データファイルとして格納するステップと、前記記録データファイルは前記タイムシフトデータファイルとは異なるデータ記録ステータスを有するものであり、
前記放送データストリームの前記第１の部分と前記放送データストリームの前記第２の部分とを識別するメタファイルを作成するステップであって、前記メタファイルは、ユーザがアクセスして、前記放送データストリームの前記第１の部分と前記放送データストリームの前記第２の部分とを、連続的に検索可能なステップと
を備えたことを特徴とするコンテンツを格納するための方法。
【請求項２】
前記放送データストリームの前記第１の部分および前記放送データストリームの前記第２の部分は、ハードディスクドライブ上に格納されることを特徴とする請求項１に記載の方法。
【請求項３】
前記放送データストリームの前記第１の部分および前記放送データストリームの前記第２の部分は、テレビ放送の一部であることを特徴とする請求項１に記載の方法。
【請求項４】
前記放送データストリームの前記第１の部分および前記放送データストリームの前記第２の部分は、ＩＰマルチキャストの一部であることを特徴とする請求項１に記載の方法。
【請求項５】
前記メタファイルにアクセスすることによって連続的なデータのストリームを検索するステップをさらに備え、前記連続的なデータのストリームは、前記放送データストリームの前記第１の部分と前記放送データストリームの前記第２の部分とを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記放送データストリームの前記第１の部分および前記放送データストリームの前記第２の部分は、放送の連続部分であることを特徴とする請求項１に記載の方法。
【請求項７】
前記放送データストリームの前記第１の部分を、所定の期間の後に削除するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項８】
前記放送データストリームの第２の部分を、記録データファイルとして格納するステップは、記録オペレーションに応答して実行されることを特徴とする請求項１に記載の方法。
【請求項９】
請求項１に記載の方法を実行するためのプロセッサによって実行可能であるコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ読み取り可能なメモリ。
【請求項１０】
放送データストリームをデータファイルに格納するステップであって、前記放送データストリームの少なくとも一部はタイムシフトデータとして格納され、前記タイムシフトデータはユーザがデータ損失無く生放送データストリームを一時停止可能であり且つ前記データストリームによりユーザが前方及び後方にシーク可能であり、前記タイムシフトデータは永続的記録データとは異なる一時的記録データの記録ステータスを使用して記憶され、一時的記録データの記録ステータスは永続的記録データのステータスに変更可能であるステップと、
前記データファイルの第１の部分に関連付けられた第１のメタファイルを作成するステップと、
前記データファイルの第２の部分に関連付けられた第２のメタファイルを作成するステップであって、前記第１のメタファイルおよび前記第２のメタファイルは前記データファイルの共通部分を含むステップと
を備えたことを特徴とするコンテンツを格納するための方法。
【請求項１１】
前記放送データストリームの一部は永続記録データとして格納されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記放送データストリームの一部は永続記録データとして格納され、前記データファイルの前記第１の部分は、タイムシフトデータおよび永続記録データの両方に関連付けられることを特徴とする請求項１０に記載の方法。
【請求項１３】
請求項１０に記載の方法を実行するためのプロセッサによって実行可能であるコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ読み取り可能なメモリ。
【請求項１４】
放送データストリームを受信するステップであって、前記受信されたデータストリームの少なくとも一部を一時的に記録し、前記一時的に記録されたデータストリームはユーザがデータ損失無く生放送データストリームを一時停止することを可能であり且つユーザが前方及び後方にシークをすることを可能であるステップと、
前記受信された放送データストリームを永続的に記録するステップであって、前記永続的に記録するステップと前記一時的に記録するステップとでは記録ステータスが異なり、前記一時的に記録された記録ステータスは前記永続的に記録するステータスに変更可能であるステップと、
前記放送データストリームの前記記録された部分を識別するメタファイルを作成するステップと
を備えたことを特徴とするコンテンツを格納するための方法。
【請求項１５】
前記メタファイルは、前記放送データストリームの前記記録を一時停止する前記要求がアクティブであった間に、受信された前記放送データストリームの前記部分を識別することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記メタファイルにアクセスすることによって連続的なデータのストリームを検索するステップをさらに備え、前記連続的なデータのストリームは、前記放送データストリームを一時停止する前記要求がアクティブであった間に、受信された前記放送データストリームの前記部分を除去することを特徴とする請求項１４に記載の方法。
【請求項１７】
請求項１４に記載の方法を実行するためのプロセッサによって実行可能であるコンピュータプログラムを含むことを特徴とする１つまたは複数のコンピュータ読み取り可能なメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ記録システムに関し、より詳細には、統合されたタイムシフトおよびデジタル記録のソリューションを提供し、かつ、先にタイムシフトされたデータとして格納されたデータを、後記録することができるシステムに関する。
【０００２】
【従来の技術】
この出願は、２００１年３月５日出願の米国特許仮出願第６０／２７３，９４３号の利点を主張し、その開示が参照により本明細書に組み込まれている。
【０００３】
タイムシフトは、データの放送ストリーム、すなわちフローコントロールされていないデータのストリーム上で、様々なオペレーションを実行する機能である。放送ストリームの例には、デジタルテレビ放送、デジタルラジオ放送、および、インターネットなどのネットワークを介したＩＰ（Internet Protocol）マルチキャストが含まれる。データの放送ストリームは、ビデオデータおよび／またはオーディオデータを含むことができる。タイムシフトにより、ユーザは、データの生放送ストリームを、データを損失することなく「一時停止」することができる。タイムシフトにより、ユーザは、データのストリーム中で前方あるいは後方にシークすることもでき、データのストリームを前方あるいは後方に任意の速度で再生することもできる。このタイムシフトは、ハードディスクドライブなどの記憶デバイスを使用して、受信されたデータのストリームを格納するために実施される。受信されたデータのストリームは通常、ハードディスクドライブ上のテンポラリ（temporary）ファイルに保存される。テンポラリファイルのために使用可能な記憶スペースは通常制限されており、テンポラリファイルの古いコンテンツが定期的に（あるいは場合によっては連続的に）廃棄されて、新しいデータのための記憶スペースが解放されるようになる。
【０００４】
ＤＶＲ（digital video recorderまたはＶＣＲ（video cassette recorder））は、テレビ放送など、データのストリームの長期格納を考慮に入れている。このデータの長期格納は、デジタル記録と呼ばれることがある。デジタル記録は、データストリームのパーマネント（permanent）アーカイブを作成し、ユーザがこの放送を後で視聴できるようにする。ＤＶＲはまた、ハードディスクドライブなどの記憶デバイスを使用して、受信されたデータのストリームを格納する。タイムシフトシステムおよびデジタル記録システムは、共通の記憶デバイスを共有して、１つまたは複数のデータストリームに関連付けられたデータを格納することができる。既存のデジタル記録システムでは、ユーザが記録を前もって（すなわち、放送が開始する前に）スケジュールするか、あるいは現在の時刻以降の記録を作成することが必要である。これらの既存のシステムは、すでにそれらにストリームされてしまったコンテンツを記録することはできない。データをテンポラリファイルから永続的な長期記憶ファイルへコピーしようと試みることは、時間のかかることであり、著しい処理および記憶リソースを必要とし、特に、放送が、タイムシフト中であるかあるいは同時にデジタル記録中である場合に、そうである。
【０００５】
図１は、例示的な従来技術のシステムを説明しており、これはタイムシフトデータおよびパーマネント記録データを記憶デバイス１１０上に格納する。タイムシフトシステム１０２は、タイムシフトデータを記憶デバイス１１０上のテンポラリファイル１０４に格納する。デジタル記録システム１０６は、デジタル記録データを記憶デバイス１１０上の１つまたは複数の記録ファイル１０８−１〜１０８−Ｒに格納する。図１のように、テンポラリファイル１０４は記録ファイル１０８−１〜１０８−Ｒから分離しており、それにより、記録ファイルに影響を与えることなくテンポラリファイルを廃棄することができる。テンポラリファイルにおける古いコンテンツは、新たに受信されたコンテンツまたは１つ若しくは複数の新しい記録ファイルのための記憶スペースを提供するために、廃棄される。
【０００６】
図１に例示したシステムは、１つのテンポラリファイル１０４を使用してすべてのタイムシフトデータを格納する。単一のテンポラリファイルは望ましくなく、これはタイムシフトオペレーションおよびデジタル記録オペレーションが統合されていないからである。その代りに、テンポラリファイルおよび記録ファイルは別々に処理される。たとえば、ユーザがテレビの生放送を視聴中であり、事前にスケジュールされたデジタル記録が８：３０に開始すると仮定する。単一のテンポラリファイルがタイムシフト用に使用される場合、そのユーザは、デジタル記録が開始すると、８：３０の前の時間をシークすることができない。同様に、デジタル記録が９：００に終了する場合、ユーザは、デジタル記録が終了した場合、９：００より前の時間をシークすることが不可能である。図１のシステムは一度に１ファイル、すなわちタイムシフト中にテンポラリファイル１０４、またはデジタル記録中に記録ファイル１０８−１〜１０８−Ｒの１つに、アクセスするように制限されている。
【０００７】
【発明が解決しようとする課題】
従来のシステムには上述したような種々の課題があり、さらなる改善が望まれている。
【０００８】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、多数のファイルをサポートし、かつタイムシフトおよびデジタル記録オペレーションを統合する、アーキテクチャを提供するシステムおよび方法を提供することにある。
【０００９】
また、本発明の目的は、タイムシフトおよびデジタル記録システムにより、ユーザが、先に視聴されたデータストリームを後記録することができるシステムおよび方法を提供することにある。
【００１０】
また、本発明の目的は、データストリームの重複記録も可能であるシステムおよび方法を提供することにある。
【００１１】
【課題を解決するための手段】
本明細書に記載するシステムおよび方法は、統合されたタイムシフトおよびデジタル記録のソリューションを提供し、これはテンポラリメディアコンテンツファイル（すなわち、タイムシフトデータファイル）およびパーマネントメディアコンテンツファイル（すなわち、デジタル記録データファイル）を一体にリンクする、データ記憶フォーマットを含む。このソリューションにより、ユーザは、後記録、すなわち、先に視聴されたデータストリームを遡及的に記録することができる。このソリューションにより、ユーザは、データストリームの重複記録を作成することもできる。たとえば、ユーザは、番組の１つ若しくは複数の、ハイライトまたは部分はもちろん、番組全体も記録することができ、これらに互いに独立してアクセスすることができる。これらのソリューションは、ストリームされたデータをコピーあるいは冗長的に格納する必要がなく、それによりリソースの不必要な使用を回避する。
【００１２】
一実施形態では、放送番組の一部がタイムシフトデータとして格納される。タイムシフトデータが検索され表示される。タイムシフトデータの一部が格納された後、放送番組を記録データとして記録する要求が受信される。次いで、放送番組が記録される。
【００１３】
もう１つの実施形態では、放送データストリームの第１の部分が、タイムシフトデータファイルとして格納される。放送データストリームの第２の部分が、記録データファイルとして格納される。放送データストリームの第１の部分および放送データストリームの第２の部分を識別する、メタファイルが作成される。このメタファイルは、リーダがアクセスして、放送データストリームの第１の部分および放送データストリームの第２の部分を連続的に検索することが可能である。
【００１４】
特定の実施形態は、放送データストリームをデータファイルに格納する。放送データストリームの少なくとも一部は、タイムシフトデータとして格納される。データファイルの第１の部分に関連付けられた第１のメタファイルが、データファイルの第２の部分に関連付けられた第２のメタファイルと共に作成される。第１のメタファイルおよび第２のメタファイルは、データファイルの共通部分を含む。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１６】
本明細書に記載するシステムおよび方法は、統合されたタイムシフトおよびデジタル記録のソリューションを提供し、これはテンポラリメディアコンテンツファイル（すなわち、タイムシフトデータファイル）およびパーマネントメディアコンテンツファイル（すなわち、デジタル記録データファイル）を一体にリンクする、データ記憶フォーマットを含む。本明細書に記載する記憶方式は、ストリームされたコンテンツ（ストリームされたデータとも呼ばれる）を、１つまたは複数のメディアファイルに格納する。各メディアファイルは、特定の量のストリームされたコンテンツ（たとえば、番組コンテンツの１０分）を格納する。メタファイルが使用されて、メディアファイルの順序が追跡され、メディアコンテンツが順番付けられる。メタファイルは、１つまたは複数の放送番組を含む、タイムシフトデータおよび記録データの両方を表す。この手法は、永続的記録の効率的な作成を、メディアコンテンツを複製することなく可能とし、本明細書で論じる後記録および重複記録などの特徴を提供する。メタファイルにより、ユーザは、メタファイルに関連付けられた多数のメディアコンテンツファイルに、メディアコンテンツファイルが永続的であるか一時的であるかに関わらず、シームレスにアクセスすることもできる。
【００１７】
本明細書に記載するシステムおよび方法は、ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ社から入手可能な、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＤｉｒｅｃｔＳｈｏｗ（登録商標）アプリケーションプログラミングインタフェースなど、様々なストリーミングマルチメディアアプリケーションを用いて動作することができる。特定の実施例がＤｉｒｅｃｔＳｈｏｗ（登録商標）マルチメディアアプリケーションに関して記載されるが、他のマルチメディアアプリケーションおよびアプリケーションプログラミングインタフェースを類似の方法で使用して、記載したタイムシフトおよびデジタル記録の機能性を提供することができる。
【００１８】
本明細書で使用するように、「放送データ」という用語はいかなるデータのストリームも指し、これらはテレビ放送、ラジオ放送、インターネットなどのネットワークを介したＩＰ（Internet Protocol）マルチキャスト、およびマルチメディアデータストリームなどである。データの放送ストリームは、いかなるタイプのデータも含むことができ、これにはビデオデータおよびオーディオデータなど、異なるタイプのデータの組み合わせが含まれる。放送データは、任意のタイプの通信媒体を介して、いかなる数のデータソースからも受信することができる。
【００１９】
図２は、多数の放送データのストリームをタイムシフトしかつ／または記録することができるシステム２００のブロック図を説明する。アプリケーション２０２は、ＡＰＩ（Application Programming Interface）２０４を介して、タイムシフトおよびデジタル記録デバイス２０６と通信する。タイムシフトおよびデジタル記録デバイス２０６は、データを１つまたは複数の放送データストリームから受信（あるいはキャプチャ）し、これらにデータ０、データ１、データ２、．．．、データＮというラベルが付けられる。異なるデータストリームが異なるデータソースから生じ、異なるデータのタイプを含み、異なるフォーマット（たとえば、異なる符号化アルゴリズム）を利用する可能性がある。１つまたは複数の出力データストリームを、タイムシフトおよびデジタル記録デバイス２０６によって生成することができる。これらの出力データストリームには、出力０、出力１、出力２、．．．、出力Ｎというラベルが付けられる。出力データストリームは、同じ放送からのものである可能性があり、１人または複数のユーザに提供される可能性がある。たとえば、出力１が、マルチメディアプレゼンテーションの途中からのデータを第２のユーザに提供中である間、出力０は、同じマルチメディアプレゼンテーションの始めからのデータを第１のユーザに提供中である可能性がある。別法として、出力データストリームを、タイムシフトおよびデジタル記録デバイス２０６によって格納された異なる放送に関連付けることができる。たとえば、出力２がマルチメディアプレゼンテーションからのデータを第２のユーザに提供中である間、出力１はテレビ放送からのデータを第１のユーザに提供中である可能性がある。１つの実施態様では、各放送は、デバイスの個別のインスタンスによって処理される。タイムシフトおよびデジタル記録デバイス２０６のオペレーションに関するさらなる詳細を、以下で提供する。
【００２０】
図３は、タイムシフトおよびデジタル記録の機能性を有するシステム３００のブロック図を説明する。システム３００の全部または一部は、セットトップボックス、ケーブルボックス、ＶＣＲ、デジタルテレビレコーダ、パーソナルコンピュータ、ゲームコンソールまたは他のデバイスに含めることができる。アプリケーション３０２は、キャプチャコントロールＡＰＩ３０４およびレンダーコントロールＡＰＩ３０６と通信する。たとえば、アプリケーション３０２は、「開始」、「停止」または「同調」命令をキャプチャコントロールＡＰＩ３０４に送信することができる。同様に、アプリケーション３０２は、「シーク」、「スキップ」、「巻き戻し」、「早送り」および「一時停止」命令をレンダーコントロールＡＰＩ３０６に送信することができる。一実施形態では、アプリケーション３０２は、様々なタイムシフトおよびデジタル記録機能を、ユーザ入力、事前にプログラムされた命令および／またはユーザの予測視聴習慣および好みに基づいてコントロールする。
【００２１】
キャプチャコントロールＡＰＩ３０４は、キャプチャグラフ３０８と通信し、これはキャプチャモジュール３１０、デマルチプレクサ３１２およびＤＶＲストリームシンク３１４を含む。キャプチャグラフ３０８は、放送ストリームに関連付けられる、あるタイプのＤｉｒｅｃｔＳｈｏｗ（登録商標）のフィルタグラフである。ＤｉｒｅｃｔＳｈｏｗ（登録商標）は、マルチメディアストリーミング仕様であり、フィルタおよびＣＯＭ（Component Object Model）インタフェースからなる。ＤｉｒｅｃｔＳｈｏｗ（登録商標）は、メディア再生、フォーマット変換およびキャプチャタスクをサポートする。ＤｉｒｅｃｔＳｈｏｗ（登録商標）は、ＣＯＭに基づいている。フィルタは、入力および出力メディアのタイプによって定義されるロジックのユニットであり、ＣＯＭインタフェースを介して構成かつ／または照会される。フィルタグラフは、接続されたＤｉｒｅｃｔＳｈｏｗ（登録商標）の複数のフィルタの、論理グループ化である。複数のフィルタは、１つのユニットとして動作、停止かつ一時停止される。フィルタは共通クロックも共有する。
【００２２】
キャプチャグラフ３０８は、放送ストリームに関連付けられる、ＤｉｒｅｃｔＳｈｏｗ（登録商標）のフィルタグラフの一種である。キャプチャモジュール３１０は、放送データストリームを、ＵＳＢ（Universal Serial Bus）などのバス３１６を介して受信する。キャプチャモジュール３１０によって受信された放送ストリームはデマルチプレクサ３１２へ供給され、これが放送ストリームを、ビデオコンポーネントおよびオーディオコンポーネントなど、別々のコンポーネントに分離する。次いで、別々のコンポーネントがＤＶＲストリームシンク３１４へ供給され、これがデータ記憶ＡＰＩ３１８を介してデータ記憶サブシステム３２２と通信する。データ記憶サブシステム３２２は、様々な情報を格納するための１つまたは複数のデータ記憶デバイス３２０を含み、これは１つまたは複数の放送ストリームに関連付けられたテンポラリデータとパーマネントデータとを含む。
【００２３】
レンダーコントロールＡＰＩ３０６はレンダーグラフ３２４と通信し、これはＤＶＲストリームソース３２６、ビデオデコーダ３２８、ビデオレンダラー３３０、オーディオデコーダ３３２およびオーディオレンダラー３３４を含む。レンダーグラフ３２４は、放送ストリームに関連付けられる、ＤｉｒｅｃｔＳｈｏｗ（登録商標）のフィルタグラフの別の一種である。ＤＶＲストリームソース３２６は、データ記憶ＡＰＩ３１８を介してデータ記憶サブシステム３２２と通信して、データ記憶デバイス３２０から格納された放送ストリームデータを検索する。ＤＶＲストリームソースによって検索されたデータのビデオコンポーネントは、ビデオデコーダ３２８へ供給され、データのオーディオコンポーネントはオーディオデコーダ３３２へ供給される。ビデオデコーダは、ビデオデータをデコードし、デコードされたビデオデータをビデオレンダラー３３０へ供給する。オーディオデコーダ３３２は、オーディオデータをデコードし、デコードされたオーディオデータをオーディオレンダラー３３４へ供給する。ビデオレンダラー３３０はビデオデータを表示するか、そうでない場合はレンダリングし、オーディオレンダラー３３４はオーディオデータをプレイするか、そうでない場合はレンダリングする。
【００２４】
タイムシフトおよびＤＶＲ記録は、ハードディスクドライブなどの補助記憶装置を必要とする。通常、データはハードディスクドライブ上の１つまたは複数のファイルに書き込まれる。コンテンツはファイルに書き込まれ、後で（あるいは同時に）、コンテンツはファイルからリードバックされて、デコードかつレンダリングされる。この補助記憶装置は有用であり、なぜならば、システムのコアメモリは一般に、高速マルチメディアコンテンツを、任意の持続時間に渡って、一時的に格納するためには不十分だからである。
【００２５】
図４は、記憶デバイス上のタイムシフトデータおよび記録データの格納を説明する。タイムシフトコントロール４０２、記録コントロール４０４およびレンダリングコントロール４０６は、ＡＰＩ４０８に結合され、これによりコントロール４０２〜４０６は、ハードディスクドライブなどの記憶デバイス４１０上に格納されたデータと対話することができる。図４に示すように、記憶デバイス４１０は、４つのメディアファイル４１２、４１４、４１６および４１８を含み、これらにそれぞれ「ファイル１」、「ファイル２」、「ファイル３」および「ファイル４」のラベルが付けられる。１つの実施態様では、各メディアファイル４１２〜４１８は、同じ量のコンテンツを格納し、これらは特定のバイト数のデータまたは特定の分数の放送番組などである。別法として、異なるメディアファイルが異なる量のコンテンツを格納してもよい。
【００２６】
タイムシフトコントロール４０２は、タイムシフト放送データに関係付けられたユーザからのコマンドを受信し、適切な命令をＡＰＩ４０８に送り、これが適切なメディアファイルを生成させる。記録コントロール４０４は、デジタル記録コマンドをユーザから受信し、適切な命令をＡＰＩ４０８に送り、これが適切なデータを１つまたは複数のメディアファイルに永続的に記録する。レンダリングコントロール４０６は、レンダリングコマンドをユーザから受信し、適切な命令をＡＰＩ４０８に送り、これが、要求されたデータを１つまたは複数のメディアファイルから検索し、ユーザの命令に従ってレンダリングする。
【００２７】
各メディアファイル４１２〜４１８は、タイムシフトデータ、デジタル記録データまたは両方の組み合わせを、タイムシフトコントロール４０２および記録コントロール４０４から受信されたコマンドに従い、格納することができる。たとえば、タイムシフトコマンドは、システムに、データストリームの格納（一時的なタイムシフトデータとして）を、メディアファイル４１２の始めから開始させることができる。このデータの格納は、ファイル４１２が「フル（full）」になるまで、すなわち、システムによって設定された記憶制限に達するまで、継続する。この実施例では、記憶制限は放送データ１０分である。次いで、データの格納は、ファイル４１４の始めで継続し、破線４２０によって示された時間まで継続する。その時に、ユーザは、放送データが永続的な記憶のためにデジタル記録されるべきであると指示している。ユーザは、記録動作を、線４２０によって示された時間に起動していたかもしれず、あるいはその特定の時間で記録するようにシステムを先にプログラムしていたかもしれない。デジタル記録データは、同じメディアファイル４１４において、先に格納されたタイムシフトデータと連続して、格納される。
【００２８】
データの格納は、メディアファイル４１４がフルになるまで継続し、次いで次のメディアファイル（４１６）へ継続し、それから次のメディアファイル（４１８）へ継続する。破線４２２によって示された時間に、ユーザは、放送データのデジタル記録が停止するべきであると指示している。この時間に、システムは、放送データをメディアファイル４１８内に、一時的なタイムシフトデータとして記録することを継続する。したがって、データのある部分は一時的なタイムシフトデータとして識別され、データの他の部分は永続的なデジタル記録データとして識別されるが、図４の４つのメディアファイル４１２〜４１８は、単一の連続した放送データのストリームを格納する。以下で論ずるメタファイルは、放送データのストリームを構成する様々なメディアファイルを参照するために使用される。
【００２９】
代替の実施形態では、メディアファイルのサイズはフレキシブルである。この実施形態では、メディアファイル４１４は、破線４２０によって示された時間で閉じられ、新しいメディアファイル（メディアファイル４１６）が、デジタル記録データを格納するために使用される。メディアファイル４１６は、プログラムデータを、破線４２２によって示された時間まで格納し、このとき、異なるメディアファイル（メディアファイル４１８）が、放送を一時記録として記録することを継続する。この実施形態は、テンポラリファイルをパーマネントファイルから分離するが、統合されたタイムシフトおよびデジタル記録のメカニズムを提供する。この統合されたタイムシフトおよびデジタル記録のメカニズムにより、ユーザは、格納されている放送のいかなる部分もシークあるいはそれをスキップすることができ、これは放送のその部分が、デジタル記録されたかあるいはタイムシフトされたかどうかに関わらず行われる。分離したファイルをデジタル記録のために使用することにより、その分離したファイルを、多数のファイルに及ぶ記録よりもより容易に共有かつ分散させることができる。
【００３０】
図５および図６は、タイムシフトデータとデジタル記録データの両方を含む例示的メタファイルを説明する。図５を参照すると、放送データのストリームは、２つのタイムシフトデータ部分５０２および５０４と、その後に続く記録データ部分５０６と、その後に続くもう１つのタイムシフトデータ部分５０８を含む。これらの４つの部分５０２〜５０８は、メタファイル５１０によって参照される５つのメディアファイル（「ファイル１」、「ファイル２」、「ファイル３」、「ファイル４」および「ファイル５」というラベルが付けられる）として格納される。メタファイル５１０における５つの各メディアファイルは、１つまたは複数のデータ部分５０２〜５０８の一部を格納する。メタファイル５１０は、メタファイル内に参照される各ファイルに関連付けられたデータ部分へのポインタを含む。特定のメタファイルは、１つまたは複数の放送データストリームからの任意の数のデータ部分を含むことができる。
【００３１】
図６を参照すると、放送データのストリームは、タイムシフトデータ部分６０２と、その後に続く記録データ部分６０４と、その後に続くもう１つのタイムシフトデータ部分６０６を含む。各部分に関連付けられたおよその開始および終了時間が、例示されている。メタファイル６１０は多数のファイル参照（「ファイル１」、「ファイル２」、「ファイル３」および「ファイル４」）を含み、これらが、３つの放送データ部分６０２〜６０６に関連付けられたメディアファイルに対応する。
【００３２】
図６の実施例では、データストリームはテレビ放送であり、ユーザは放送の視聴を約８：３０に開始し、そのとき新しい番組が開始する。８：３０には、システムは放送データを、一時的なタイムシフトデータとして記録中である。しかし、８：４５に、ユーザはこの番組全体を、自分自身または家族の別のメンバーが将来視聴するために、記録しようと決定する。番組の１５分間がすでにユーザに対して表示されているが、放送に関連付けられたメタファイルは、８：３０と８：４５との間に記録されたタイムシフトデータのステータスを変更することができる。このデータのステータスは記録データに変更される。この時点で、第２のメタファイルが作成され、これが記録データに関連付けられる。この第２のメタファイルは、記録の終了（９：００）まで継続して更新される。タイムシフトデータおよび記録データは連続してメディアファイルに格納されるので、一時的なタイムシフトデータと記録データとの間で切り替えるときに、データのレンダリングにおいて遅延あるいは中断がない。生放送ストリームを視聴しているユーザは、（生の視聴を一時停止して巻き戻しすることによって）記録データとタイムシフトデータとのセクション内へ、シークあるいはジャンプバックすることが、いかなる遅延や中断もなくできる。同様に、ユーザが記録番組を再生するとき（記録が進行中である間、あるいは記録が完了した後のいずれでも）、記録コマンドがユーザによって実行された番組への、１５分間の再生の中断がない。したがって、このシステムにより、ユーザは番組の一部または全部を視聴した後で、番組全体を記録することができる。これは「後記録（post-recording）」と呼ばれる。
【００３３】
加えて、２つのメタファイルの使用により、システムは、生放送のレンダリング時には第１のメタファイルを、記録番組のレンダリング時には第２のメタファイルを利用することができる。２つの異なるメタファイルが維持されるが、システムは、格納されたデータおよびユーザコマンドに応答して、メタファイル間をシームレスに切り替えることができる。
【００３４】
図７および図８は、同じテレビ放送番組に関連付けられた多数の重複したメタファイルを説明する。図７を参照すると、テレビ放送（ニュース番組）は、６：００に開始し、６：３０に終了する。テレビ放送は、４つのメディアファイル７０２、７０４、７０６および７０８を使用して格納され、それぞれはテレビ放送の７．５分を格納する。３つの別々のメタファイル７１０、７１２および７１４は、テレビ放送に関連付けられる。メタファイル７１０は、ニュース番組全体（すなわち、６：００と６：３０の間のテレビ放送全体）を表す。メタファイル７１２は、ニュース番組のヘッドライン部分（６：００から約６：０５まで）に関連付けられる。メタファイル７１４は、ニュース番組のスポーツ部分（約６：２０から約６：２４まで）に関連付けられる。各メタファイルは、適切なメディアファイル、および、テレビ放送の関連部分を表す各メディアファイル内の特定の時間への、ポインタを含む。３つのメタファイル７１０、７１２および７１４は、重複するコンテンツを含むが、実際のテレビ放送データは１度しか格納されず、メディアファイル７０２、７０４、７０６および７０８が使用される。したがって、データストリームのいかなる部分の重複コピーを必要とすることなく、多数の異なるメタファイルを同じデータストリームに関連付けることができる。
【００３５】
図８を参照して、各メタファイル７１０、７１２および７１４に関連付けられたポインタ情報の実施例を示す。メタファイル７１０、７１２および７１４を、特定のテレビ放送に関連付けられたメタファイルのグループ７２０と呼ぶことができる。各メタファイルは第１のオフセットおよび第２のオフセットを含み、これらがそれぞれ特定のメディアファイルに関連付けられる。各オフセットは、関連付けられたメディアファイルの始めからの分数を指す。たとえば、メタファイル７１０は、ファイル１（符号７２２）に関連付けられた第１のオフセット値のペア（０．０および７．５）を有する。「０．０」は、関連付けられたメディアファイルの始めを指し、「７．５」は、関連付けられたメディアファイルの終りを指す。メタファイル７１０は、ファイル２（符号７２４）に関連付けられた第２のオフセット値のペア（０．０および７．５）を有する。メタファイル７１０はまた、ファイル３（符号７２６）に関連付けられた第３のオフセット値のペア（０．０および７．５）も有する。加えて、メタファイル７１０は、ファイル４（符号７２８）に関連付けられた第４のオフセット値のペア（０．０および７．５）を含む。したがって、第１のメタファイル７１０はファイル１の始めで開始し、ファイル１、ファイル２、ファイル３およびファイル４のすべてを含み、ファイル４の終りで終了する。
【００３６】
同様に、メタファイル７１２では、第１のオフセット値（０．０）はファイル１の始めを指示し、第２のオフセット値（５．６）はファイル１への５．６分の位置を指示する。したがって、メタファイル７１２はテレビ放送の５．６分の部分に関連付けられる。メタファイル７１４は、ファイル３に関連付けられた、ファイル３への５分の位置を指示する第１のオフセット値（５．０）、およびファイル３の終りを指示する第２のオフセット値（７．５）を含む。加えて、メタファイル７１４は、ファイル４に関連付けられる第２のオフセット値のペアを含む。第１のオフセット値（０．０）はファイル４の始めを指示し、第２のオフセット値（１．５）はファイル４への１．５分の位置を指示する。図７および図８は、テレビ放送に関連付けられた３つの異なるメタファイルを説明するが、いかなる数のメタファイルをいかなるタイプのデータストリームと関連付けることもできる。
【００３７】
１つの実施態様では、放送データストリームが格納され、ＤｉｒｅｃｔＳｈｏｗのフィルタグラフによって読み取られ、これはデータ記憶ＡＰＩのサービスを使用することによって行われる。これにより、ＤｉｒｅｃｔＳｈｏｗのリーダ、ライタおよびタイムシフトフィルタグラフは、放送データストリームを連続したタイムラインとして見ることができる。これにより、タイムシフトデータおよびデジタル記録データを、一様の方法において処理することもできる。
【００３８】
図９は、タイムシフトデータを後記録するための手順８００を説明する流れ図である。最初に、この手順は、放送データストリームを一時的なタイムシフトデータとして格納することを開始する（ブロックＳ８０２）。次いで、この手順は、放送を記録する要求が受信されたかどうかを判定する（ブロックＳ８０４）。放送をデジタル記録する要求が受信されていない場合、この手順は、ブロックＳ８０２で、受信された放送ストリームをタイムシフトデータとして格納することを継続する。
【００３９】
ブロックＳ８０４で、放送全体をデジタル記録する要求が受信された場合、この手順８００は、先に格納されたタイムシフトデータのステータスをデジタル記録データに変換する（ブロックＳ８０６）。加えて、この手順は、記録データに関連付けられた新しいメタファイルを作成する。次いで、この手順は、放送データストリームの残りをデジタル記録データとして格納することを継続する（ブロックＳ８０８）。ブロックＳ８１０で、この手順は、放送の記録を停止する要求が受信されたかどうかを判定する。そうでなかった場合、この手順は、放送データストリームのデジタル記録を継続する。放送の記録を停止する要求が受信された場合、この手順はブロックＳ８０２へ戻り、放送データストリームをタイムシフトデータとして記録することを継続する。これは、タイムシフトデータの後記録の一実施例である。記録を一時停止するためのコマンドが受信された場合、この手順は、記録を継続するためのコマンドが受信されるまで、データストリームの記録を停止するが、記録が一時停止されている間に受信された放送データストリームは、タイムシフトデータとして継続して保存される。一時停止機能により、ユーザは、コマーシャルまたは他の望まないデータなど、特定のコンテンツを取り除くようにフィルタリングすることができる。
【００４０】
特定の実施態様では、２つ以上のデータストリームを同時に記録することができる。この実施態様では、記録された各データストリームは、別々のパーマネントファイルに格納される。
【００４１】
図１０は、タイムシフトデータおよび記録データに関連付けられたメタファイルを作成し、メタファイルにおける情報を使用して連続データストリームを検索するための手順９００を説明する流れ図である。最初に、この手順は、放送データストリームの第１の部分を一時的なタイムシフトデータとして格納すること、および放送に関連付けられた第１のメタファイルを作成することを開始する（ブロックＳ９０２）。次いで、この手順は、放送データストリームの第２の部分をデジタル記録データとして格納する（ブロックＳ９０４）。たとえば、この手順は、放送データストリームを記録するためのユーザコマンド（または事前にプログラムされたコマンド）に応答して、データをデジタル記録データとして格納するために変更することができる。
【００４２】
手順９００は、放送データストリームの第２の部分（すなわち、デジタル記録）に関連付けられた第２のメタファイルを作成する（ブロックＳ９０６）。たとえば、メタファイルを、図７および図８に関して上述したタイプにすることができる。ブロックＳ９０８で、この手順は、格納された放送データストリームを読み取る要求を受信する。この要求を、放送データストリームがなお記録中である間か、あるいは記録が終了した後に受信することができる。次いで、この手順は、要求されたデータを、タイムシフトデータおよびデジタル記録データの両方を含む連続データストリームとして検索する（ブロックＳ９１０）。この実施例では、元の放送データストリームは、タイムシフトデータおよびデジタル記録データを記憶デバイスから読み取ることによって再作成される。２つのメタファイルが使用されて、放送データストリームの開始点および終了点、ならびにデータストリームの個々の部分（たとえば、タイムシフトデータとして格納された部分、およびデジタル記録データとして格納された部分）が識別される。たとえば、２つの異なるコマンドが存在する、すなわち１コマンドが２つの各メタファイルに関連付けられてよい。第１のコマンド「生放送を視聴する」は、第１のメタファイルを使用して、タイムシフトデータにアクセスする。第２のコマンド「記録を視聴する」は、第２のメタファイルを使用して、デジタル記録データにアクセスする。
【００４３】
記録されたデータストリームを多数の部分および／または多数のメディアファイルに分離することは、システムのユーザに対して透過的である。加えて、メタファイルのコンテンツはユーザに対して透過的である。
【００４４】
タイムシフトおよびデジタル記録をシームレスに統合するため、ライタはリングバッファオブジェクトを作成し、名前をオブジェクトに関連付け、オブジェクトに書き込む。オブジェクトはこのデータを適切なデータ記憶ファイルに保存する。放送データに生でアクセスしたいリーダは、読み取りのためにこのオブジェクトを開き、キャプチャされた放送データを検索する。
【００４５】
記録を作成するため、ライタは記録オブジェクトを作成し、それによりユーザが記録を識別するためのディスクファイルの名前を設定し、記録オブジェクトをリングバッファオブジェクトに関連付ける。ライタは記録開始および停止コマンドを記録オブジェクトに対して発行する。これらのコマンドは、記録すべき番組の始めおよび終りを識別する。ライタは、記録オブジェクトではなくリングバッファオブジェクトに書き込む。リーダはデジタル記録を、記録が進行中である間かあるいは記録が終了した後のいずれでも、対応するファイル名を供給することによって開くことができる。リーダは放送データを、たとえばデータ記憶ＡＰＩを呼び出すことによって検索する。
【００４６】
各メタファイルは番組セグメントのリストを含む。各セグメントは、そのセグメント用の番組データを含むメディアファイルへのリンク、およびそのメディアファイルにおける開始および終了オフセットによって特徴付けられる。番組セグメントは、メディアファイルの部分をスキップすることができる（たとえば、コマーシャルをスキップするため）。
【００４７】
リーダが、リングバッファ（すなわち、生放送ストリーム）およびデジタル記録に、一様の方法でアクセスできるようにするため、データ記憶ＡＰＩは、デジタル記録およびリングバッファを、ハードディスクドライブなどの記憶デバイス上に保存されるメタファイルを使用して表す。実際の放送データは、１つまたは複数のメディアファイルに保存される。リングバッファに対応するメタファイルおよびメディアファイルは一時的である（すなわち、これらは、リングバッファオブジェクトが破棄されるときに削除される）。
【００４８】
ファイル管理コンポーネントは、各メディアファイルを参照するメタファイルの数を記録しておき、この情報を使用して、メディアファイルがテンポラリリングバッファに対応するか永続的デジタル記録に対応するかを判定する。この情報は永続的に記憶され続け、これが、タイムシフトおよびデジタル記録のアプリケーションが終了した後に使用可能な状態で残るようにする。これにより、システムはメディアファイルを、それらを参照するすべての関連付けられたデジタル記録が削除されたとき、メディアファイルを「クリーンアップ」することができる。
【００４９】
図１１は、本明細書に記載されたシステムおよび方法を実施することができる適切な動作環境の一実施例を説明する。例示した動作環境は、適切な動作環境の一実施例でしかなく、本発明の使用または機能性の範囲について、いかなる限定を示唆する意図はない。本発明に関する使用に適切かもしれない、他の周知のコンピューティングシステム、環境および／または構成には、それだけに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、ゲームコンソール、携帯電話、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００５０】
図１１は一般的な実施例のコンピュータ１０４２であり、これを本発明によって使用することができる。コンピュータ１０４２は、本明細書に記載した様々な機能を実行することができるコンピュータの１例として示されている。コンピュータ１０４２は、１つまたは複数のプロセッサまたは処理装置１０４４、システムメモリ１０４６、および、システムメモリ１０４６を含む様々なシステムコンポーネントをプロセッサ１０４４に結合するバス１０４８を含む。
【００５１】
バス１０４８は、いくつかのタイプのバス構造のいずれかの１つまたは複数を表し、これにはメモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、および様々なバスアーキテクチャのいずれかを使用したプロセッサまたはローカルバスが含まれる。システムメモリ１０４６は、ＲＯＭ（read only memory）１０５０およびＲＡＭ（random access memory）１０５２を含む。ＢＩＯＳ（Basic Input/Output System）１０５４は、起動中などに、情報をコンピュータ１０４２内の要素の間で転送するための助けとなる基本ルーチンを含み、ＲＯＭ１０５０に格納されている。コンピュータ１０４２はさらに、図示しないハードディスクから読み取りかつこれに書き込むためのハードディスクドライブ１０５６を含み、これはハードディスクドライブインタフェース１０５７（たとえば、ＳＣＳＩ（small computer system interface）、ＡＴＡ（advanced technology attachment）または他のタイプのインタフェース）を介してバス１０４８に接続され、さらにリムーバル磁気ディスク１０６０から読み取りかつこれに書き込むための磁気ディスクドライブ１０５８を含み、これは磁気ディスクドライブインタフェース１０６１を介してバス１０４８に接続され、さらにＣＤ−ＲＯＭ、ＤＶＤまたは他の光媒体などのリムーバル光ディスク１０６４から読み取りかつ／または書き込むための光ディスクドライブ１０６２を含み、これは光ドライブインタフェース１０６５を介してバス１０４８に接続される。ドライブおよびそれらの対応するコンピュータ読み取り可能な媒体は、コンピュータ１０４２用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの、不揮発性記憶装置を提供する。本明細書に記載した例示的環境は、ハードディスク、リムーバル磁気ディスク１０６０およびリムーバル光ディスク１０６４を使用するが、磁気カセット、フラッシュメモリカード、ＲＡＭ、ＲＯＭなど、コンピュータによりアクセス可能であるデータを格納することができる、他のタイプのコンピュータ読み取り可能な媒体も、この例示的動作環境において使用できることを、当業者には理解されたい。
【００５２】
いくつかのプログラムモジュールをハードディスク、磁気ディスク１０６０、光ディスク１０６４、ＲＯＭ１０５０またはＲＡＭ１０５２上に格納することができ、これには、オペレーティングシステム１０７０ａ、１０７０ｂ、１つまたは複数のアプリケーションプログラム１０７２ａ、１０７２ｂ、他のプログラムモジュール１０７４ａ、１０７４ｂ、およびプログラムデータ１０７６ａ、１０７６ｂが含まれる。ユーザは、コマンドおよび情報をコンピュータ１０４２へ、キーボード１０７８およびポインティングデバイス１０８０などの入力デバイスを介して、入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらおよび他の入力デバイスは、処理装置１０４４へ、システムバス（たとえば、シリアルポートインタフェース、パラレルポートインタフェース、ＵＳＢインタフェースなど）に結合されるインタフェース１０６８を介して接続される。モニタ１０８４または他のタイプの表示デバイスも、システムバス１０４８へ、ビデオアダプタ１０８６などのインタフェースを介して接続される。モニタに加えて、パーソナルコンピュータは通常、スピーカおよびプリンタなど、他の周辺出力デバイス（図示せず）を含む。
【００５３】
コンピュータ１０４２は、ネットワーク環境において、リモートコンピュータ１０８８など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作する。リモートコンピュータ１０８８は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードにすることができ、通常、コンピュータ１０４２に関して上述した要素の多くまたはすべてを含むが、メモリ記憶デバイス１０９０のみを図１０に例示した。図１０に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ（local area network））１０９２および広域ネットワーク（ＷＡＮ（wide area network））１０９４を含む。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。ある実施形態では、コンピュータ１０４２は、インターネットＷｅｂブラウザプログラム（これは、任意選択的にオペレーティングシステム１０７０ａ、１０７０ｂに統合することができる）を実行し、これはワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ社によって製作され配布される「Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（商標）」Ｗｅｂブラウザなどである。
【００５４】
ＬＡＮネットワーキング環境において使用するとき、コンピュータ１０４２は、ローカルネットワーク１０９２へ、ネットワークインタフェースまたはアダプタ１０９６を介して接続される。ＷＡＮネットワーキング環境において使用するとき、コンピュータ１０４２は通常、モデム１０９８、または、インターネットなどの、広域ネットワーク１０９４を介して通信を確立するための他の手段を含む。モデム１０９８は、内部あるいは外部にすることができ、システムバス１０４８へ、シリアルポートインタフェース１０６８を介して接続される。ネットワーク環境では、パーソナルコンピュータ１０４２に関して示したプログラムモジュールまたはその一部を、リモートメモリの記憶デバイスに格納することができる。図示のネットワーク接続は例示的であり、通信リンクをコンピュータの間で確立する他の方法が使用できることを理解されよう。
【００５５】
コンピュータ１０４２は通常、少なくとも何らかの形式のコンピュータ読み取り可能な媒体を含む。コンピュータ読み取り可能な媒体は、コンピュータ１０４２によってアクセスすることができる任意の使用可能な媒体でよい。例として、それだけに限定されるものではないが、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータのような、情報の格納のための、いずれかの方法または技術において実施される、揮発性および不揮発性、リムーバルおよび取外し不可能媒体が含まれる。コンピュータ記憶媒体には、それだけに限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（electrically erasable programmable read-only memory）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disk）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、かつコンピュータ１０４２によってアクセスすることができる他のいかなる媒体も含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調されたデータ信号中に包含し、いかなる情報送達媒体も含む。「変調されたデータ信号」という用語は、その特性の１つまたは複数が、信号内の情報を符号化するような方法で設定あるいは変更されている信号を意味する。例として、それだけに限定されるものではないが、通信媒体には、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、および音波、ＲＦ（radio frequencies）、赤外線などのワイヤレス媒体、並びに他のワイヤレス媒体が含まれる。上記のいずれの組み合せもまたコンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
【００５６】
本発明を、１つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的な状況である程度説明した。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データタイプを実装する。通常、プログラムモジュールの機能性は、様々な実施形態において望まれるように、結合あるいは分散させることができる。
【００５７】
本明細書に記載した方法およびシステムは、以下の状況に対するサポートを提供する。
【００５８】
この実施例では、ユーザはチューナー１を使用して生のテレビを見ている。ライタは、チューナー１に対応するリングバッファオブジェクトを作成し、これに書き込む。ライタはリングバッファオブジェクトを作成したとき、リングバッファのサイズを指定する。Ｉ／Ｏレイヤは、このリングバッファオブジェクトのためのテンポラリメタファイルを作成し、このメタファイルが参照することができるテンポラリメディアファイルの数を制限する。生のテレビを見るため、リーダは、チューナー１に対応するリングバッファオブジェクトを開き、マルチメディアデータを検索し、データをＤｉｒｅｃｔＳｈｏｗのグラフへ送り、データをレンダリングする。リーダは、ライタに影響を与えることなく生で一時停止することができ、すなわち、ライタはキャプチャされたストリームをリングバッファオブジェクトに書き込み続ける。リーダは、番組における異なるポイントをシークあるいはそれにジャンプすることもできる。ライタが書き込みを停止したとき、リングバッファは増大を停止する。しかし、メディアファイルおよびリングバッファのメタファイルは、リーダがリングバッファオブジェクトも閉じるまで、削除されない。そのため、リーダはメディアファイルを読み取り続けることができる。
【００５９】
チューナー１を使用してデジタル記録を作成するため、ライタは、チューナー１に対応するリングバッファオブジェクトを作成し、これに書き込む。次いで、ライタは記録オブジェクトを作成し、Ｐｒｏｇｒａｍ１．ｄｖｒなどの、ディスクファイルを作成して、ユーザが記録を識別できるようにする。次いで、ライタは記録開始および記録終了コマンドを記録オブジェクト上に発行して、番組の始めおよび終りを識別する。一実施態様では、Ｉ／Ｏレイヤは２つのメタファイルを作成し、一方がチューナー１に対応するリングバッファ用であり、他方がデジタル記録用である。ライタによって書かれるデータは、一度だけメディアファイルに書き込まれる。しかし、これらのメディアファイルは（記録された間隔内に含まれるデータ用の）両方のメタファイルに関連付けられ、いずれのメタファイルを介してでもアクセスすることができる。Ｉ／Ｏレイヤは、記録メタファイルによって参照されたメディアファイルに、永続的であるとして、マークを付け、リングバッファオブジェクトが破棄されるときにこれらを削除しない。
【００６０】
デジタル記録を視聴するため、リーダは、記録に対応するメタファイル（たとえば、Ｐｒｏｇｒａｍ１．ｄｖｒ）を開き、コンテンツをそこから読み取る。リーダは視聴を一時停止し、番組の異なる部分をシークあるいはそこへジャンプすることができる。リーダはファイルの終りに達したとき、視聴が終了する。Ｐｒｏｇｒａｍ１．ｄｖｒは、リーダがこのファイルを開くとき、記録中であってもよいことに留意されたい。
【００６１】
後記録を作成するため、ライタは「過去における」記録開始または停止時間を指定することができる。これにより、エンドユーザは生でテレビを見ることを開始し、次いで視聴されたばかりのショーを記録することができる。このデータがなおリングバッファに存在する場合、Ｐｒｏｇｒａｍ１．ｄｖｒ用のメタファイルはこれを参照することができる。ライタがリングバッファオブジェクトを終了し、破棄するとき、記録開始時間を過ぎたデータを含むメディアファイルは削除されず、これはデジタル記録がこれらのファイルを参照するからである。
【００６２】
重複記録を作成するため、ライタは多数の記録オブジェクトを開き、かつ重複記録間隔を指定することを許可される。Ｉ／Ｏレイヤは、多数のメタファイルを作成し、これらが同じセットのメディアファイルを参照する。したがって、重複記録を、マルチメディアデータをコピーすることなく作成することができる。これによりユーザは、たとえば、ある記録を介して番組全体に、及び別の記録を介して番組のハイライトにアクセスすることができる。
【００６３】
記録を一時停止かつ再開するため、ライタは、記録開始および停止時間の間のいずれかの時間を指定して、記録を一時停止かつ再開することができる。記録一時停止および再開コマンドは、記録開始および停止コマンドのように、事後に発行させることができ、すなわち、それらは過去における時間を参照できることに留意されたい。Ｉ／Ｏレイヤはメタファイルに新しいセグメントを作成して、記録が一時停止されている間にメディアデータのセクションをスキップする。（チューナー１のためのリングバッファオブジェクトを開くことによって）ＴＶを生で視聴中であるいかなるリーダも、関連付けられたレコーダ上に発行される記録一時停止および再開コマンドによって影響を受けない。記録一時停止および再開機能は、番組の望まない部分をフィルタリングするため、あるいは、番組の不連続セクションを、たとえば、番組のハイライトを含む、単一の記録にまとめてリンクするために有用である。
【００６４】
例示のため、プログラム、およびオペレーティングシステムなどの他の実行可能プログラムコンポーネントを、本明細書で個々のブロックとして例示しているが、このようなプログラムおよびコンポーネントが、コンピュータの異なる記憶コンポーネントにおいて様々な時点で存在し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００６５】
上記の説明は、構造的特徴および／または方法論的動作に特有である言語を使用するが、特許請求の範囲において定義された本発明が、記載した特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、本発明を実施する例示的形式として開示されている。
【００６６】
【発明の効果】
以上説明したように本発明によれば、タイムシフトおよびデジタル記録オペレーションを統合する、アーキテクチャを提供することができ、ユーザは、後記録、すなわち、先に視聴されたデータストリームを遡及的に記録することができる。また、本発明によれば、ユーザは、データストリームの重複記録を作成することもできる。本発明によれば、ストリームされたデータをコピーあるいは冗長的に格納する必要がなく、それによりリソースの不必要な使用を回避できる。
【図面の簡単な説明】
【図１】タイムシフトデータおよび記録データを記憶デバイス上に格納する、例示的な従来技術のシステムを説明する図である。
【図２】多数の放送データのストリームをタイムシフトかつ／または記録することができるシステムのブロック図である。
【図３】タイムシフトおよびＤＶＲの機能性を有するシステムのブロック図である。
【図４】記憶デバイス上のタイムシフトデータおよび記録データの格納を説明する図である。
【図５】タイムシフトデータおよび記録データの両方を含むメタファイルの実施例を説明する図である。
【図６】タイムシフトデータおよび記録データの両方を含むメタファイルの実施例を説明する図である。
【図７】同じテレビ放送番組に関連付けられた多数の重複したメタファイルを例示する図である。
【図８】同じテレビ放送番組に関連付けられた多数の重複したメタファイルを説明する図である。
【図９】タイムシフトデータを後記録するための手順を説明する流れ図である。
【図１０】タイムシフトデータおよび記録データを含むメタファイルを作成し、メタファイルにおける情報を使用して連続データストリームを検索するための、手順を説明する流れ図である。
【図１１】本明細書に記載されたシステムおよび方法を実施することができる、適切な動作環境の一実施例を説明する図である。
【符号の説明】
１０２  タイムシフトシステム
１０４  テンポラリファイル
１０６  デジタル記録システム
１０８−１  記録ファイル１
１０８−２  記録ファイル２
１０８−Ｒ  記録ファイルＲ
１１０  記憶デバイス
２００  システム
２０２  アプリケーション
２０４  ＡＰＩ
２０６  タイムシフトおよびデジタル記録デバイス
３００  システム
３０２  アプリケーション
３０４  キャプチャコントロールＡＰＩ
３０６  レンダーコントロールＡＰＩ
３０８  キャプチャグラフ
３１０  キャプチャモジュール
３１２  デマルチプレクサ
３１４  ＤＶＲストリームシンク
３１６  バス
３１８  データ記憶ＡＰＩ
３２０  データ記憶装置
３２２  データ記憶サブシステム
３２４  レンダーグラフ
３２６  ＤＶＲストリームソース
３２８  ビデオデコーダ
３３０  ビデオレンダラー
３３２  オーディオデコーダ
３３４  オーディオレンダラー
４０２  タイムシフトコントロール
４０４  記録コントロール
４０６  レンダリングコントロール
４０８  アプリケーションプログラミングインターフェイス
４１０  記憶デバイス
４１２、４１４、４１６、４１８  メディアファイル
４２０  デジタル記録開始
４２２  デジタル記録停止
５０２、５０４、５０８  タイムシフトデータ部分
５０６  記録データ部分
５１０  メタファイル
６０２、６０６  タイムシフトデータ部分
６０４  記録データ部分
６１０  メタファイル
７０２、７０４、７０６、７０８  メディアファイル
７１０、７１２、７１４  メタファイル
７２０  メタファイルのグループ
７２２  ファイル１
７２４  ファイル２
７２６  ファイル３
７２８  ファイル４
１０４２  コンピュータ
１０４４  処理装置
１０４６  システムメモリ
１０４８  バス
１０５０  ＲＯＭ
１０５２  ＲＡＭ
１０５４  ＢＩＯＳ
１０５６  ハードディスクドライブ
１０５７  ハードディスクドライブインタフェース
１０５８  磁気ディスクドライブ
１０６０  リムーバル磁気ディスク
１０６１  磁気ディスクドライブインタフェース
１０６２  光ディスクドライブ
１０６４  リムーバル光ディスク
１０６５  光ドライブインタフェース
１０６８  インタフェース
１０７０ａ、１０７０ｂ  オペレーティングシステム
１０７２ａ、１０７２ｂ、１０７２ｃ  アプリケーションプログラム
１０７４ａ、１０７４ｂ  他のプログラムモジュール
１０７６ａ、１０７６ｂ  プログラムデータ
１０７８  キーボード
１０８０  ポインティングデバイス
１０８４  モニタ
１０８６  ビデオアダプタ
１０８８  リモートコンピュータ
１０９０  メモリ記憶デバイス
１０９２  ローカルエリアネットワーク
１０９４  広域ネットワーク
１０９６  ネットワークインタフェース
１０９８  モデム
【図１】
0004396878.tif 000002
【図２】
0004396878.tif 000003
【図３】
0004396878.tif 000004
【図４】
0004396878.tif 000005
【図５】
0004396878.tif 000006
【図６】
0004396878.tif 000007
【図７】
0004396878.tif 000008
【図８】
0004396878.tif 000009
【図９】
0004396878.tif 000010
【図１０】
0004396878.tif 000011
【図１１】
0004396878.tif 000012