説明

同報通信データを記録するための方法、および、装置

【課題】特定のフォーマットを有するデータストリームに制限されないタイム
シフティングおよびDVRシステムを提供すること。
【解決手段】システムは、任意の符号化フォーマットを使用して符号化される
同報通信データストリームを受信し、受信した同報通信データストリームは、逆
多重化され、記憶装置上に格納し、格納した同報通信データストリームを再生す
るコマンドに応答して、格納したデータストリームを取り出し、再生コマンドに
対応する方式でレンダリングし、複数のシステムが、格納した同報通信データス
トリームを同時に取り出すことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ記録システムに関し、より詳細には、タイムシフティング操作および記録操作を実行するために様々なフォーマットでデータを記録することができるシステムに関する。
【0002】
本願は、2001年3月5日出願の仮米国出願第60/273919号の特典を主張し、この開示を参照により本明細書に組み込む。
【背景技術】
【0003】
タイムシフティングは、データの同報通信ストリーム、すなわちフロー制御されないデータのストリームに対して様々な操作を実行する能力である。例示的な同報通信ストリームには、デジタルテレビジョン同報通信、デジタル無線同報通信、およびインターネットなどのネットワーク間のインターネットプロトコル(IP)マルチキャストが含まれる。データの同報通信ストリームは、ビデオデータおよび/または音声データを含むことができる。タイムシフティングにより、ユーザは、データを失うことなくデータの実況同報通信ストリームを「一時停止」することが可能となる。タイムシフティングにより、ユーザは、データのストリームを介して順方向および逆方向にシークし、任意の速度でデータのストリームを順方向または逆方向にプレイバックすることも可能となる。このタイムシフティングは、受信したデータのストリームを格納するために、ハードディスクドライブなどの記憶装置を用いて達成される。
【0004】
DVR(デジタルビデオレコーダまたはデジタルVCR)は、テレビジョン同報通信などのデータのストリームを長期間格納できるようにする。DVRは、受信したデータのストリームを格納するために、ハードディスクドライブなどの記憶装置も使用する。タイムシフティング装置およびDVRは、1つまたは複数のデータストリームを格納するために共通記憶装置を共有することができる。
【0005】
既存のタイムシフティングおよびDVRシステムは、トランスポート/ファイルフォーマット層を操作し、単一符号化フォーマット(一般にはMPEG−2)をサポートする。したがって、これらの既存システムは、MPEG−2フォーマットを使用して符号化されたデータのストリームを処理することに制限される。これらのシステムは、異なるフォーマットを使用して符号化されたデータストリームの処理のために使用することができず、MPEG−2ファイル中に格納される定義方式を有するコンテントしか処理することができないので、その有用性が制限される。新しい、または修正された符号化フォーマットが将来一般的になった場合、このシステムでは、その新しい符号化フォーマットを利用するデータストリームを受信する前に、異なる符号化フォーマットをサポートするための修正が必要となることになる。あるいは、ある既存のシステムを、その新しい符号化フォーマットを使用するデータストリームを処理できる新しいシステムで置き換える必要のある可能性もある。
【0006】
図1は、MPEG−2同報通信データを処理することが可能な、例示的な従来技術のタイムシフティングシステム100のブロック図を示す。取込み装置102は、MPEG−2フォーマットの同報通信データのストリームを受信する。取込み装置102は、取り込んだMPEG−2データをタイムシフティング装置104に供給し、タイムシフティング装置104は、そのデータをMPEG−2フォーマットで記憶装置106上に格納する。
【0007】
記憶装置106は、ハードディスクドライブである。タイムシフティングデバイス104は、格納したデータを記憶装置106から取り出し、そのデータをデマルチプレクサ108に供給することもでき、デマルチプレクサ108は、同報通信データの様々な構成要素(例えば、音声構成要素およびビデオ構成要素)を分離する。
【0008】
次いで、この様々な構成要素は、復号器110に供給され、復号器110はこのデータを復号化し、復号化したデータをレンダリングまたはその他の復号化したデータを処理する装置(図示せず)に、復号化したデータを供給する。図1に示すように、システム100は、MPEG−2を用いて符号化されたデータストリームの処理専用である。システム100は、MPEG−2以外の符号化フォーマットを有するデータストリームを処理することができない。
【発明の開示】
【発明が解決しようとする課題】
【0009】
本明細書で説明するシステムおよび方法は、特定のフォーマットを有するデータストリームに制限されないタイムシフティングおよびDVRシステムを提供することによって、これらの制限に対処する。
【課題を解決するための手段】
【0010】
本明細書で説明するシステムおよび方法は、同報通信データストリームを生成するために使用される符号化手順の如何に関わらず、同報通信データストリームに対して様々なタイムシフティング機能およびDVR機能を実装する。本明細書で説明するタイムシフティング機能およびDVR機能は、後に開発されるフォーマットを含めて、様々な異なるフォーマットと共に使用することができる。本明細書で説明する手順およびシステムは、任意の符号化フォーマットを用いて符号化される全てのデータストリームに適用可能であるように、符号化コンテントを扱う。
【0011】
一実施形態では、任意の符号化フォーマットを用いて符号化される同報通信データストリームが受信される。この受信した同報通信データストリームは逆多重化され、記憶装置上に格納される。次いでこの同報通信データストリームはタイムシフティングされる。
【0012】
別の実施形態では、デジタルデータストリームが受信され、構成要素に分離される。このデジタルデータストリームの構成要素は記憶装置上に格納される。このデジタルデータストリームをプレイバックするためのコマンドが受信され、格納された構成要素が記憶装置から取り出される。このデジタルデータストリームの取り出された構成要素は、プレイバックコマンドに対応する方式でレンダリングされる。
【0013】
ここで説明する実施形態では、記憶装置はハードディスクドライブである。
【0014】
特定の実施形態では、データストリームは、ハードディスクドライブ上の複数の一時ファイル中に格納される。
【0015】
特定の実施形態では、複数のシステムが、格納されたデータストリームを同時に取り出す。
【発明の効果】
【0016】
本発明によると、システムは、任意の符号化フォーマットを使用して符号化される同報通信データストリームを受信し、受信した同報通信データストリームは、逆多重化され、記憶装置上に格納し、格納した同報通信データストリームを再生するコマンドに応答して、格納したデータストリームを取り出し、再生コマンドに対応する方式でレンダリングし、複数のシステムが、格納した同報通信データストリームを同時に取り出すことができるので、特定のフォーマットを有するデータストリームに制限されないタイムシフティングおよびDVRシステムを提供することができる。
【発明を実施するための最良の形態】
【0017】
本明細書で説明するシステムおよび方法は、受信したデータの同報通信ストリームに関連するフォーマットとは無関係に実行されるタイムシフティング操作およびDVR操作の実装を提供する。
【0018】
本明細書で説明するタイムシフティング操作およびDVR操作は、データ源や、同報通信の前にデータをフォーマットするために使用される符号化技法の如何に関わらず、どんなデータのストリーム上でも実行することができる。従って、このシステムおよび方法は、まだ開発されていない将来の符号化フォーマットを含む、様々な異なる符号化フォーマットと共に使用することができる。任意のデータ源からの、インターネット同報通信またはマルチキャストを含むどんなストリーミングデータおよび/または同報通信データも、本明細書で開示される手順を使用して取り込み、処理することができる。本明細書で説明するタイムシフティング機能およびDVR機能は、マルチメディアコンテントサブストリーム自体に対して動作し、それによって記憶フォーマットまたは符号化フォーマットからタイムシフティング機能および記録機能が分離する。本明細書で説明する方法およびシステムは、どんなタイプのデジタルデータに対しても動作する。
【0019】
本明細書で説明するタイムシフティングおよびDVRシステムおよび方法は、米国ワシントン州レドモンドのMicrosoft Coporationから入手可能なMicrosoft(登録商標)DirectShow(登録商標)アプリケーションプログラミングインターフェースなどの様々なストリーミングマルチメディアアプリケーションと共に動作することができる。DirectShow(登録商標)マルチメディアアプリケーションに関して特定の実施例を説明するが、他のマルチメディアアプリケーションおよびアプリケーションプログラミングインターフェースを同様に使用して、ここで説明するタイムシフティング機能およびDVR機能を実現することもできる。
【0020】
本明細書では、用語「同報通信データ」は、テレビジョン同報通信、無線同報通信、ならびにインターネットおよびマルチメディアデータストリームなどのネットワーク間のインターネットプロトコル(IP)マルチキャストなど、任意のデータのストリームを指す。データの同報通信ストリームは、ビデオデータ、音声データ、およびインターネットプロトコル(IP)データ(例えばIPパケット)などの異なるタイプのデータの組合せを含む、どんなタイプのデータも含むことができる。任意の数のデータ源から、任意のタイプの通信媒体を介して同報通信データを受信することができる。
【0021】
図2は、同報通信データの多重ストリームをタイムシフティングし、かつ/または記録することができるシステム200のブロック図を示す。アプリケーション202は、アプリケーションプログラミングインターフェース(API)204を介してタイムシフティングおよびDVR装置206と通信する。タイムシフティングおよびDVR装置206は、データ0、データ1、データ2、...、データNと符号を付けた1つまたは複数の同報通信データストリームからデータを受信する(または取り込む)。異なるデータストリームは、異なるデータ源を発生源とすることができ、異なるタイプのデータを含むことができ、異なるフォーマット(例えば異なる符号化アルゴリズム)を使用することができる。
【0022】
1つ又は複数の出力データストリームは、タイムシフティングおよびDVR装置206によって生成することができる。これらの出力データストリームに出力0、出力1、出力2、...、出力Nと符号を付ける。この出力データストリームは、同じ同報通信によって同報通信することができ、1人または複数のユーザに提供することができる。例えば、出力0が第1ユーザに対するマルチメディア表現の先頭からのデータを提供すると共に、出力1が同じマルチメディア表現の中間からのデータを第2ユーザに提供するようにできる。あるいは、この出力データストリームを、タイムシフティングおよびDVR装置206によって格納される、異なる同報通信と関連付けることもできる。例えば、出力1がテレビジョン同報通信によるデータを第1ユーザに提供すると共に、出力2がマルチメディア表現によるデータを第2ユーザに提供するようにできる。1つの実装では、各同報通信は、装置の別々のインスタンスによって処理される。タイムシフティングおよびDVR装置206の動作に関する追加の詳細を以下に与える。
【0023】
図3は、タイムシフティング機能およびDVR機能を有するシステム300のブロック図を示す。システム300の全部又は一部を、セットトップボックス、ケーブルボックス、VCR、デジタルテレビジョンレコーダ、パーソナルコンピュータ、ゲームコンソール、又は他の装置中に含めることができる。アプリケーション302は、取込み制御API 304およびレンダリング制御API 306と通信する。例えば、アプリケーション302は、取込み制御API 304に対して「スタート」、「停止」、または「同調」命令を送ることができる。同様に、アプリケーション302は、レンダリング制御API 306に対して、「シーク」、「スキップ」、「巻戻し」、「高速順送り」、および「一時停止」命令を送ることができる。一実施形態では、アプリケーション302は、ユーザ入力、事前プログラミング命令、および/またはユーザの予測される視聴習慣および好みに基づいて、様々なタイムシフティング機能およびDVR機能を制御する。
【0024】
取込み制御API 304は、取込みモジュール310、デマルチプレクサ312、およびDVRストリーム受信装置314を含む取込みグラフ308と通信する。取込みグラフ308は、同報通信ストリームと関連するDirectShow(登録商標)フィルタグラフの一種である。DirectShow(登録商標)は、フィルタおよびCOMインターフェースからなるマルチメディアストリーミングの仕様である。DirectShow(登録商標)は、メディアプレイバック、フォーマット変換、および取込みタスクをサポートする。DirectShow(登録商標)は、コンポーネントオブジェクトモデル(COM)に基づく。フィルタは、入力媒体および出力媒体のタイプによって定義される論理ユニットであり、COMインターフェースを介して構成され、かつ/または照会される。フィルタグラフは、接続したDirectShow(登録商標)フィルタの論理的組分けである。フィルタはユニットとして動作し、停止し、一時停止する。フィルタは共通クロックも共有する。
【0025】
取込みグラフ308は、同報通信ストリームに関連するDirectShow(登録商標)フィルタグラフの一種である。取込みモジュール310は、汎用シリアルバス(USB)などのバス316を介して同報通信データストリームを受信する。取込みモジュール310が受信する同報通信ストリームは、デマルチプレクサ312に供給され、デマルチプレクサ312は、ビデオ構成要素および音声構成要素などの別々の構成要素に同報通信ストリームを分離する。次いでこの別々の構成要素は、DVRストリーム受信装置314に供給され、DVRストリーム受信装置314は、データ記憶API 318を介してデータ記憶サブシステム322と通信する。データ記憶サブシステム322は、1つまたは複数の同報通信ストリームに関連する一時データおよび永続データを含む、様々な情報を格納するための1つまたは複数のデータ記憶装置320を含む。
【0026】
レンダリング制御API306は、DVRストリーム源326、ビデオ復号器328、ビデオレンダラ(video renderer)330、音声復号器332、および音声レンダラ334を含むレンダリンググラフ324と通信する。レンダリンググラフ324は、同報通信ストリームと関連する別のタイプのDirectShow(登録商標)フィルタグラフである。DVRストリーム源326は、データ記憶API 318を介してデータ記憶サブシステム322と通信し、格納された同報通信ストリームデータをデータ記憶装置320から取り出す。DVRストリーム源が取り出したデータのビデオ構成要素は、ビデオ復号器328に供給され、データの音声構成要素は、音声復号器332に供給される。ビデオ復号器はビデオデータを復号化し、復号化ビデオデータをビデオレンダラ330に供給する。音声復号器332は音声データを復号化し、復号化音声データを音声レンダラ334に供給する。ビデオレンダラ330はビデオデータを表示またはレンダリングし、音声レンダラ334は音声データを再生またはレンダリングする。
【0027】
図4は、受信したデータストリームからデータを取り込み、格納するための手順400を示す流れ図である。例えば、データストリームを取り込むための手順は、取込みグラフ308(図3)によって実行することができる。最初に、手順400は、「スタート」コマンドを受け取ったかどうかを判定する(ブロック402)。例えば、ユーザ入力または事前プログラミングしたコマンドに基づいて、アプリケーション302からこのようなコマンドを受け取ることができる。「スタート」コマンドを受け取っていない場合、この手順はブロック402に戻る。「スタート」コマンドを受け取った場合、取込みモジュールがデータストリームを受信し(ブロック404)、デマルチプレクサがデータストリーム構成要素を分離する(ブロック406)。データストリーム構成要素は、例えば音声データおよびビデオデータを含むことができる。次にDVRストリーム受信装置が、データストリーム構成要素をデータ記憶APIに書き込む(ブロック408)。加えて、DVRストリーム受信装置は、データストリーム構成要素と共に、ある属性および他のデータをデータ記憶APIに書き込むことができる。次いでデータ記憶APIは、後の検索のためにデータ記憶装置にデータストリーム構成要素を格納する。
【0028】
ブロック410では、手順400が「停止」コマンドを受け取ったかどうかを判定する。「停止」コマンドを受け取った場合、取込みモジュールはデータストリームの受信を停止する(ブロック412)。次いでこの手順はブロック402に戻り、別の「スタート」コマンドを待つ。「停止」コマンドを受け取っていない場合、この手順はブロック404に戻り、引き続きデータストリームを受信し、処理する。
【0029】
図5は、データ記憶装置上に格納されたデータストリーム中に含まれるデータをレンダリングするための手順500を示す流れ図である。最初に、手順500は、プレイバック制御コマンドを受け取ったかどうかを判定する(ブロック502)。プレイバック制御コマンドは、「一時停止」、「再生」、「高速順送り」、「巻戻し」、「順方向スローモーション」、「逆方向スローモーション」、「シーク」、「順方向スキップ」、「逆方向スキップ」、およびデータストリームのレンダリングに影響を与える他のコマンドを含むことができる。プレイバック制御コマンドを受け取っていない場合、この手順はブロック502に分岐し、プレイバック制御コマンドを待つ。プレイバック制御コマンドを受け取った場合、DVRストリーム源は、プレイバック制御コマンドに基づいてデータ記憶装置からデータストリームを読み取る(ブロック504)。例えば、プレイバックコマンドが「再生」である場合、DVRストリーム源は、「一時停止」コマンドを受け取る前に読み取ったデータなど、最後に読み取ったデータから始まるデータを読み取る。プレイバックコマンドが「逆方向スローモーション」である場合、DVRストリーム源は、同じ位置から始まるデータを読み取るが、逆方向に読み取る(すなわち、時間の逆方向に進む)。
【0030】
ブロック506では、この手順は、データストリーム構成要素を復号化する(例えば、音声構成要素を復号化し、ビデオ構成要素を復号化する)。次に、ブロック508でデータストリーム構成要素をレンダリングする。ブロック510では、手順500は新しいプレイバック制御コマンドを取り出したかどうかを判定する。取り出さなかった場合、この手順はブロック504に戻り、最新のプレイバック制御コマンドに基づいて、引き続きデータ記憶装置からデータストリームを読み取る。新しいプレイバック制御コマンドを受け取った場合、DVRストリーム源は、その新しいプレイバック制御コマンドに基づいて、引き続きデータ記憶装置からデータストリームを読み取り、処理する(ブロック512)。しかし、この新しいプレイバック制御コマンドが「一時停止」または「停止」である場合、DVRストリーム源は、データストリームの読取りを要求する新しいプレイバック制御コマンドを受け取るまで、データストリームの読取りを停止する。
【0031】
レンダリング制御は、取込み制御とは無関係であり、したがってレンダリング制御(例えばプレイバックの休止、高速順送り、または巻戻し)は、同報通信データストリームの取込みに影響を与えない。同様に、同報通信データストリームの取込みを停止することによって、以前に格納したデータストリーム構成要素を取り出し、レンダリングするレンダリング制御の能力は変更されない。
【0032】
図6は、単一の取込みグラフと、複数のレンダリンググラフとを有するシステム600のブロック図を示す。アプリケーション602は、取込み制御API 604、ならびに複数のレンダリング制御API 614、618、および622と通信する。取込み制御API 604は、上記で論じた取込みグラフ308に類似の取込みグラフ606と通信する。取込みグラフ606は、データ記憶API 608と通信することによってデータ記憶装置に同報通信データストリームを格納し、データ記憶API 608は、データ記憶サブシステム610と通信する。複数のレンダリンググラフ616、620、および624は、データ記憶API 608と通信することによってデータ記憶装置からデータを取り出すように構成される。各レンダリンググラフは、アプリケーション602から受け取ったプレイバック制御コマンドに基づいて、異なるデータストリーム(データ0、データ1、データ2)を生成する。各レンダリンググラフ616、620、および624は、特定のユーザと関連付けることができ、各ユーザが、同じ同報通信データストリームの異なる部分を閲覧し、または異なる同報通信データストリーム(例えば、記憶装置中に記録された、異なるテレビジョンプログラム)を閲覧することが可能となる。
【0033】
図7は、IPマルチキャストデータストリームをバッファリングするためのバッファリング機能を有するシステム700のブロック図を示す。アプリケーションプログラム702により、IPマルチキャストデータストリームの取込みおよびレンダリングをユーザが制御することが可能となる。例えば、IPマルチキャストデータストリームは、インターネットラジオ局からのデータストリームとすることができる。この例では、遅延またはネットワーク輻輳が、IPマルチキャストデータストリームを受信する速度に影響を与える可能性がある。したがって、インターネットからデータを受信する際の小さい遅延が、音声レンダラによって生成される音声信号に影響を与えないように、データバッファリングシステムを使用してデータをバッファリングまたはプリロードする。バッファを大きくすれば、音声信号に影響を与える前にシステムによって処理することができる遅延を大きくすることができる。
【0034】
アプリケーションプログラム702は、取込み制御API 704およびレンダリング制御API 706と通信する。取込み制御API 704は、IPマルチキャスト受信機712、音声分析モジュール714、およびデータストリーム受信装置716を含む取込みグラフ708と通信する。IPマルチキャスト受信機712は、インターネットまたは他のデータ通信ネットワークを介してIPマルチキャストデータストリームを受信する。IPマルチキャスト受信機712は、受信したデータストリームを音声分析モジュール714に供給し、音声分析モジュール714は、タイムスタンプ、クリーンポイントフラグ、および不連続性などの属性で、受信したデータストリームをマークする。これらの様々な属性に関する追加の詳細を以下で議論する。
【0035】
データストリーム受信装置716は、(音声分析モジュール714によって加えられた属性を含む)受信したデータストリームをバッファAPI 718に書き込み、バッファAPI 718はバッファサブシステム720と通信する。バッファサブシステム720は、1つまたは複数のIPマルチキャストデータストリームに関係した様々なデータを格納するデータバッファ722を含む。
【0036】
レンダリング制御API 706は、データストリーム源724、音声復号器726、および音声レンダラ728を含むレンダリンググラフ710と通信する。データストリーム源724は、バッファAPI 718にコマンドを発行することによってデータバッファ722からバッファリングしたデータストリームを取り出す。音声復号器726は、取り出したデータストリームに対応する音声信号を音声レンダラ728が適切にレンダリングすることができるように、取り出したデータストリーム中の音声データを復号化する。
【0037】
タイムシフティングおよびDVR記録は、ハードディスクドライブなどの補助記憶装置を必要とする。一般に、データは、ハードディスクドライブ上の1つまたは複数のファイルに書き込まれる。コンテントはファイルに書き込まれ、後に(または並行して)そのコンテントは、復号化およびレンダリングのためにファイルから読み出される。システムコアメモリは、一般に高速マルチメディアコンテントを任意の期間一時的に格納するには不十分であるので、この補助記憶装置は有用である。特定の解決策では、リングバッファを使用して、データストリームで受信したデータを格納する。この例では、データはハードディスク上の複数のファイルに書き込まれ、受信したコンテントは、ハードディスクドライブ上の複数のファイルにわたって分散する。
【0038】
図8は、ハードディスクドライブなどの記憶装置上の複数の一時ファイルへの、テレビジョン同報通信のバッファリングを示す。図8のシステムは、4つの一時ファイル(Temp1、Temp2、Temp3、Temp4と符号を付ける)によって戻された30分の論理リングバッファ802を表す。リングバッファ802は、データ記憶API 804を介して一時ファイルと通信する。各一時ファイルは、開始(ファイルのスタート)および終了(ファイルの終了)を有する。リングバッファは、論理リングバッファ802によって論理的に結合する4つの一時ファイルからなる。一時ファイルのそれぞれは、データ記憶API 804を介してアクセスされる。論理リングバッファ802は、データの仮想ストリームをファイルおよびファイルオフセットに変換する。シーク操作は、時間の点から実行されるので、リングバッファは、各一時ファイルについてのスタート時間を追跡する。仮想時間オフセットが要求されたとき、リングバッファ802は、仮想時間オフセットをファイルおよびファイル時間オフセットに変換する。
【0039】
例えば、特定のリングバッファは、図8に示す4つの一時ファイルを、各一時ファイルが同報通信データの7.5分を格納するように編成することができる。したがって論理リングバッファを構成する4つのファイルは、同報通信データの30分の記憶を実現する。20分シークするシーク要求を受け取った場合、システムは、この要求を、一時ファイルTemp3中の時間オフセット5分のシークに変換する。
【0040】
図8の例では、7:05を起点としてテレビジョン同報通信ストリームが取り込まれ、それにより、第4一時ファイル(Temp4)は7:35に一杯になる。この時点で、システムはラップアラウンドして戻り、引き続き第1一時ファイル(Temp1)を用いて記録し、それによって、以前に第1一時ファイル中に格納したデータを上書きする。このプロセスは、8:05まで30分間続き、8:05にシステムは再びラップアラウンドして、引き続き第1一時ファイルの先頭から記録する。
【0041】
取り込んだデータの、複数の一時ファイルへの分割は、システムのユーザに対して透過的である。加えて、最後の複数のファイルから最初に戻ることはユーザに対して透過的であり、同報通信データストリームのレンダリングを妨害しない。
【0042】
図9は、複数の一時ファイルへのテレビジョン同報通信のバッファリングと、特定のテレビジョン番組のDVR記録とを示す。論理リングバッファ902は、データ記憶API 904と通信し、データ記憶API 904は、記憶装置(図示せず)上に格納された様々な一時ファイルおよび永続ファイルと通信する。図9のシステムは、図8に関して上記で論じたのと同様に、タイムシフティング機能のために4つの一時ファイル(Temp1、Temp2、Temp3、およびTemp4)を使用する。加えて、図9のシステムは、1つまたは複数のプログラムファイルを使用して、DVR記録要求(例えば、特定のプログラムまたは一連のプログラムを永続的に格納する要求)に基づいてプログラムを格納する。
【0043】
図9は、バックグラウンド記録操作が8:00と8:30の間に行われるようにスケジューリングされ、そのことが、同報通信ストリームがレンダリングされ、閲覧されるセッションの間(すなわち7:45〜8:30以降)にある状況を示す。図9のシステムは、4つの一時ファイルおよび1つの永続ファイル(Program1)を結びつけ、単一の記録した同報通信ストリームをシステムのユーザに提示する。この永続ファイルは、一時ファイルが削除または上書きされるときに、削除または上書きされない。
【0044】
特定の実施形態では、マルチメディアコンテントがその符号化方法に関係なく処理される。その代わり、マルチメディアコンテントは、属性を有するバイトバッファとして処理される。マルチメディアコンテントを理解する構成要素(例えばAPI)は、1)バッファの第1バイトに適用される「クリーンポイント」フラグ、2)バッファの第1バイトに適用される提示タイムスタンプ、3)バッファの第1バイトがシステムに提示される時を表すストリームタイムスタンプ、および4)以前に受け取ったデータとの接続があるかどうかを示す不連続フラグなどの様々な属性および/またはフラグで、バッファをタグ付けする。「クリーンポイント」は、再生スタート点であり、「キーフレーム」とも呼ばれる。ある圧縮スキーマは、あるフレームから次のフレームへの冗長構成を活用する。完全なフレームを送る代わりに、予測データだけを送る。
【0045】
復号器は、以前に受け取った完全なフレームおよび予測データに基づいて、完全なフレームを再構築する。予測データは、基準とする完全なフレームがなければ有用ではないので、完全な各フレームは、「クリーンポイント」としてフラグが立てられる。これは、連続するシーク要求に対して有用であり、これにより、プレイバックを再開する開始点が供給される。ビデオは、1つの基準フレームおよびいくつかの派生フレームを有するピクチャのグループ(GOP)として受け取られるので、不連続フラグは、例えばMPEG−2で有用である。不連続がGOP中で生じる場合、復号器は、次のGOPの基準フレームを受け取るまで、すべての後続のフレームを廃棄することになる。
【0046】
データをデータ記憶サブシステムに格納する時、システムは、より高レベルのフラグおよび属性を、データ記憶APIによって要求されたものに変換する。次いでシステムは、そのコンテントを受け取ることになるデータ記憶サブシステム中の特定のファイルを決定する。最後に、このコンテントは、データ記憶APIを介して、関連するフラグおよび属性と共にファイルに書き込まれる。
【0047】
データをデータ記憶サブシステムから取り出すとき、システムは、各リーダについてのコンテキストを維持する。システムは、取り出すべきデータを含むファイルを決定する。データはそのフラグおよび属性と共に取り出される。次いでこのフラグおよび属性は、より高レベルのマルチメディア層が必要とするものに変換される。次いで読取り呼び出しは完了する。
【0048】
順方向および逆方向のシークは、現在(すなわち現在時間)に対する時間に基づく。現在からの相対時間に基づいて、システムはデータを読み取るファイルを決定する。次いで絶対時間オフセットは、ファイル固有の時間オフセットに変換される。次いでシステムは、データ記憶APIを介して、計算した時間オフセットをシークする。次いで、このデータは、上記で論じた手順を用いて取り出される。
【0049】
データ記憶APIにより、以下のような様々な操作を実行することができるようになる。
【0050】
・複数のストリームをファイルに多重化すること(および各ストリームを他から識別すること)
・データ検索順序がデータ格納順序と一致することを保証すること
・タイムスタンプをデータと関連付け、データの検索時にそのタイムスタンプを取り出すこと
・1つまたは複数の可変サイズの属性をデータに関連付け、データの検索時にその属性を取り出すこと
・汎用マーカを特定のデータと関連付け、そのマーカをシークすること
・時間に関して索引付けし、その時間に基づいてデータをシークすること
・Digital Rights Managementフレームワークに対するサポートを提供すること
【0051】
1つの実装では、米国ワシントン州レドモンドのMicrosoft Coporationから入手可能なWindows(登録商標) Media SDK APIが、上記で論じたデータ記憶APIとして使用される。加えて、データは、ストリーミング媒体に関する定義を指定するファイルフォーマットであるAdvanced Streaming Format(ASF)を用いてデータ記憶サブシステム中に格納される。
【0052】
図10は、本明細書で説明するデータ記録システムおよび方法を実装することのできる適切な動作環境の例を示す。図示した動作環境は、適切な動作環境の単なる一例であって、本発明の使用または機能の範囲に関する何らかの制限を意味するものではない。本発明と共に使用することに適した他の周知のコンピューティングシステム、環境、および/または構成には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル消費者向け電子機器、ゲーミングコンソール、セル電話、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【0053】
図10は、本発明に従って使用することができるコンピュータ1042の一般的な例を示す。本明細書で説明する様々な機能を実行することができるコンピュータの例として、コンピュータ1042を示す。コンピュータ1042は、1つまたは複数のプロセッサまたは処理装置1044と、システムメモリ1046と、システムメモリ1046を含む様々なシステム構成要素をプロセッサ1044に結合するバス1048とを含む。
【0054】
バス1048は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、ならびに様々なバスアーキテクチャのうちのいずれかを用いるプロセッサまたはローカルバスを含む、いくつかのタイプのバス構造のうちのいずれか1つまたは複数を表す。システムメモリ1046は、読取り専用メモリ(ROM)1050およびランダムアクセスメモリ(RAM)1052を含む。起動時などにコンピュータ1042内の要素間の情報を転送する助けとなる基本ルーチンを含む基本入出力システム(BIOS)1054は、ROM 1050中に格納される。コンピュータ1042は、ハードディスクドライブインターフェース1057(例えば、SCSI、ATA、または他のタイプのインターフェース)を介してバス1048に接続される、ハードディスク(図示せず)を読み書きするためのハードディスクドライブ1056と、磁気ディスクドライブインターフェース1061を介してバス1048に接続される、取外し可能磁気ディスク1060を読み書きするための磁気ディスクドライブ1058と、光ドライブインターフェース1065を介してバス1048に接続される、CD ROM、DVD、または他の光媒体などの取外し可能光ディスク1064を読み書きするための光ディスクドライブ1062とをさらに含む。ドライブおよびその関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ1042に関する他のデータの不揮発性記憶が実現される。本明細書で説明する例示的環境は、ハードディスク、取外し可能磁気ディスク1060、および取外し可能光ディスク1064を使用するが、磁気カセット、フラッシュメモリカード、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)などの、コンピュータがアクセス可能な、データを格納することのできる他のタイプのコンピュータ可読媒体も、この例示的動作環境で使用できることを当業者は理解されたい。
【0055】
ハードディスク、磁気ディスク1060、光ディスク1064、ROM1050、またはRAM1052上に、オペレーティングシステム1070、1つまたは複数のアプリケーションプログラム1072、他のプログラムモジュール1074、およびプログラムデータ1076を含むいくつかのプログラムモジュールを格納することができる。ユーザは、キーボード1078およびポインティングデバイス1080などの入力装置を介してコンピュータ1042にコマンドおよび情報を入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。これらの入力装置および他の入力装置は、システムバスに結合するインターフェース1068(例えば、シリアルポートインターフェース、パラレルポートインターフェース、汎用シリアルバス(USB)インターフェースなど)を介して処理装置1044に接続される。モニタ1084または他のタイプのディスプレイ装置も、ビデオアダプタ1086などのインターフェースを介してシステムバス1048に接続される。モニタに加えて、パーソナルコンピュータは、一般にスピーカおよびプリンタなどの他の周辺出力装置(図示せず)を含む。
【0056】
コンピュータ1042は、リモートコンピュータ1088などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作する。リモートコンピュータ1088は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共通ネットワークノードでよく、一般に、コンピュータ1042に関して上記で説明した要素のうちの多くまたは全部を含むが、図10にはメモリ記憶装置1090だけを示している。図10に示す論理接続は、ローカルエリアネットワーク(LAN)1092およびワイドエリアネットワーク(WAN)1094を含む。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。ある実施形態では、コンピュータ1042は、ワシントン州レドモンドのMicrosoft Corporationによって製造され、配布されている「Internet Explorer」ウェブブラウザなどの(オペレーティングシステム1070に任意選択で組み込むことができる)インターネットウェブブラウザプログラムを実行する。
【0057】
LANネットワーキング環境で使用する際には、コンピュータ1042は、ネットワークインターフェースまたはアダプタ1096を介してローカルネットワーク1092に接続される。WANネットワーキング環境で使用する際には、コンピュータ1042は、一般に、モデム1098、またはインターネットなどのワイドエリアネットワーク1094を介して通信を確立する他の手段を含む。モデム1098は、内蔵または外付けとすることができるが、シリアルポートインターフェース1068を介してシステムバス1048に接続される。ネットワーク環境では、パーソナルコンピュータ1042に関して示したプログラムモジュールまたはその部分は、リモートメモリ記憶装置中に格納することができる。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立するための他の手段も使用できることを理解されたい。
【0058】
コンピュータ1042は、一般に、少なくとも何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ1042がアクセスすることができる、利用可能などんな媒体でもよい。限定はしないが、一例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を格納するための何らかの方法または技術で実装される揮発性および不揮発性媒体、取外し可能および取外し不能媒体が含まれる。コンピュータ記憶媒体には、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ1042がアクセスすることができる他の何らかの媒体が含まれる。通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの被変調データ信号で具体化し、どんな情報送達媒体も含む。用語「被変調データ信号」は、信号の特性の組のうちの1つまたは複数を有し、またはその信号中の情報を符号化するように変更された信号を意味する。限定はしないが、一例として、通信媒体には、有線ネットワークまたはダイレクトワイヤード接続などの有線媒体、ならびに音響、RF、赤外線、および他のワイヤレス媒体などのワイヤレス媒体が含まれる。上記のいずれの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0059】
一部分、本発明を、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラムモジュールなどコンピュータ実行可能命令の一般的な状況において説明した。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一般に、プログラムモジュールの機能は、様々な実施形態において望み通りに組み合わせ、または分散させることができる。
【0060】
例示の目的で、本明細書では、プログラム、およびオペレーティングシステムなどの他の実行可能プログラム構成要素を離散的ブロックして示したが、このようなプログラムおよび構成要素は、様々な時点でコンピュータの異なる記憶構成要素中に常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【0061】
上記の説明では、構造的特徴および/または操作に固有な言い回しを使用しているが、添付の特許請求の範囲で定義される本発明は、説明した特有の特徴または操作に限定されない。むしろ、特有の機能および操作を、本発明を実装する例示的形態として開示する。
【図面の簡単な説明】
【0062】
【図1】MPEG−2同報通信データを処理することができる、例示的な従来技術のタイムシフティングシステムのブロック図である。
【図2】同報通信データの多重ストリームをタイムシフティングし、かつ/または記録することができるシステムのブロック図である。
【図3】タイムシフティング機能およびDVR機能を有するシステムのブロック図である。
【図4】受信したデータストリームからデータを取り込み、格納するための手順を示す流れ図である。
【図5】データ記憶装置上に格納されたデータストリーム中に含まれるデータをレンダリングするための手順を示す流れ図である。
【図6】単一の取込みグラフと、複数のレンダリンググラフとを有するシステムのブロック図である。
【図7】IPマルチキャストデータストリームをバッファリングするためのバッファリング機能を有するシステムのブロック図である。
【図8】複数の一時ファイルへのテレビジョン同報通信のバッファリングを示す図である。
【図9】複数の一時ファイルへのテレビジョン同報通信のバッファリングと、特定のテレビジョン番組のDVR記録とを示す図である。
【図10】本明細書で説明するデータ記録システムおよび方法を実装することのできる適切な動作環境の例を示す図である。
【符号の説明】
【0063】
100 タイムシフティングシステム
102 取込み装置
104 タイムシフティング装置
106 記憶装置
108 デマルチプレクサ
110 復号器
202 アプリケーション
204 アプリケーションプログラミングインターフェース
206 タイムシフティングおよびDVR装置
300 システム
302 アプリケーション
304 取込み制御API
306 レンダリング制御API
308 取込みグラフ
310 取込みモジュール
312 デマルチプレクサ
314 DVRストリーム受信装置
316 バス
318 データ記憶API
320 データ記憶装置
322 データ記憶サブシステム
324 レンダリンググラフ
326 DVRストリーム源
328 ビデオ復号器
330 ビデオレンダラ
332 音声復号器
334 音声レンダラ
600 システム
602 アプリケーション
604 取込み制御API
606 取込みグラフ
608 データ記憶API
610 データ記憶サブシステム
614 レンダリング制御API
616 レンダリンググラフ
618 レンダリング制御API
620 レンダリンググラフ
622 レンダリング制御API
624 レンダリンググラフ
700 システム
702 アプリケーションプログラム
704 取込み制御API
706 レンダリング制御API
708 取込みグラフ
710 レンダリンググラフ
712 IPマルチキャスト受信機
714 音声分析モジュール
716 データストリーム受信装置
718 バッファAPI
720 バッファサブシステム
722 データバッファ
724 データストリーム源
726 音声復号器
728 音声レンダラ
802 論理リングバッファ
804 データ記憶API
902 論理リングバッファ
904 データ記憶API
1042 コンピュータ
1044 処理装置
1046 システムメモリ
1048 システムバス
1050 読取り専用メモリ
1052 ランダムアクセスメモリ
1054 基本入出力システム
1056 ハードディスクドライブ
1057 ハードディスクドライブインターフェース
1058 磁気ディスクドライブ
1060 取外し可能磁気ディスク
1061 磁気ディスクドライブインターフェース
1062 光ディスクドライブ
1064 取外し可能光ディスク
1065 光ドライブインターフェース
1068 インターフェース
1070 オペレーティングシステム
1072 アプリケーションプログラム
1074 他のプログラムモジュール
1076 プログラムデータ
1078 キーボード
1080 ポインティングデバイス
1084 モニタ
1086 ビデオアダプタ
1088 リモートコンピュータ
1090 メモリ記憶装置
1092 ローカルエリアネットワーク
1094 ワイドエリアネットワーク
1096 ネットワークインターフェース
1098 モデム

【特許請求の範囲】
【請求項1】
デジタルデータストリームを受信するステップと、
前記デジタルデータストリームの構成要素を分離するステップと、
前記デジタルデータストリームの構成要素を記憶装置上に格納するステップと、
コマンドを受け取って前記デジタルデータストリームをプレイバックするステップと、
前記格納したデジタルデータストリームの構成要素のうちの少なくとも1つを前記記憶装置から取り出すステップと、
前記受け取ったプレイバックコマンドに対応する方式で、前記デジタルデータストリームの構成要素をレンダリングするステップと
を具えたことを特徴とする方法。
【請求項2】
コマンドを受け取って、前記デジタルデジタルデータストリームのプレイバックを一時停止するステップと、
一時停止コマンドに応答して、前記デジタルデータストリームの構成要素のレンダリングを停止するステップと
をさらに含むことを特徴とする請求項1記載の方法。
【請求項3】
前記プレイバックコマンドは、再生コマンドであることを特徴とする請求項1記載の方法。
【請求項4】
前記プレイバックコマンドは、巻戻しコマンドであることを特徴とする請求項1記載の方法。
【請求項5】
前記プレイバックコマンドは、高速順送りコマンドであることを特徴とする請求項1記載の方法。
【請求項6】
前記プレイバックコマンドは、シークコマンドであることを特徴とする請求項1記載の方法。
【請求項7】
前記プレイバックコマンドは、スローモーション再生コマンドであることを特徴とする請求項1記載の方法。
【請求項8】
前記プレイバックコマンドは、順方向スキップコマンドであることを特徴とする請求項1記載の方法。
【請求項9】
前記プレイバックコマンドは、逆方向スキップコマンドであることを特徴とする請求項1記載の方法。
【請求項10】
前記デジタルデータストリームの構成要素を記憶装置上に格納するステップは、デジタルデータストリームの構成要素をアプリケーションプログラミングインターフェースに書き込むステップを含むことを特徴とする請求項1記載の方法。
【請求項11】
前記記憶装置は、ハードディスクドライブであることを特徴とする請求項1記載の方法。
【請求項12】
前記記憶装置は、ハードディスクドライブであり、
前記デジタルデータストリームの構成要素は、該ハードディスクドライブ上の少なくとも1つの一時ファイル又は少なくとも1つの永続ファイル中に格納されることを特徴とする請求項1記載の方法。
【請求項13】
前記デジタルデータストリームは、任意の符号化フォーマットを使用して符号化することを特徴とする請求項1記載の方法。
【請求項14】
前記デジタルデータストリームは、任意のデータフォーマットを使用することを特徴とする請求項1記載の方法。
【請求項15】
複数の装置は、前記格納したデジタルデータストリームの構成要素を同時に取り出すことを特徴とする請求項1記載の方法。
【請求項16】
前記格納したデジタルデータストリームの構成要素を取り出すステップは、
前記記憶装置上に記憶される第1データストリームに関連するデータを第1装置が取り出すステップと、
前記記憶装置上に記憶される第2データストリームに関連するデータを第2装置が同時に取り出すステップと
を含むことを特徴とする請求項1記載の方法。
【請求項17】
前記格納したデジタルデータストリームの構成要素を取り出すステップは、
前記デジタルデータストリーム中の第1位置から、第1装置がデータを取り出すステップと、
前記デジタルデータストリーム中の第2位置から、第2装置がデータを同時に取り出すステップと
を含むことを特徴とする請求項1記載の方法。
【請求項18】
前記デジタルデータストリームの構成要素を分離するステップは、前記デジタルデータストリームからビデオデータおよび音声データを逆多重化するステップを含むことを特徴とする請求項1記載の方法。
【請求項19】
デジタルデータストリームの構成要素を分離するステップは、前記デジタルデータストリームからインターネットプロトコルデータを逆多重化するステップを含むことを特徴とする請求項1記載の方法。
【請求項20】
プロセッサによって実行可能であり、請求項1記載の方法が実行されるコンピュータプログラムを含むことを特徴とする1つ又は複数のコンピュータ読取可能なメモリ。
【請求項21】
コンピュータプログラムが格納されている1つまたは複数のコンピュータ可読媒体であって、
前記コンピュータプログラムは、1つまたは複数のプロセッサによって実行されたとき前記1つまたは複数のプロセッサに、
同報通信データストリームの構成要素を分離させ、
前記同報通信データストリームの構成要素をハードディスクドライブ上に格納させ、
前記格納した同報通信データストリームの構成要素をプレイバックする要求を受け取らせ、
前記格納した同報通信データストリームの構成要素をハードディスクドライブから取り出させ、
前記同報通信ストリームの構成要素をレンダリングさせることを特徴とする1つ又は複数のコンピュータ読取可能な媒体。
【請求項22】
前記同報通信ストリームの構成要素をレンダリングするステップは、受け取った再生要求に対応する方式で、該同報通信ストリームの構成要素をレンダリングするステップを含むことを特徴とする請求項21記載の1つ又は複数のコンピュータ読取可能な媒体。
【請求項23】
前記同報通信ストリームの構成要素をレンダリングするステップは、該同報通信ストリームの複数のコピーを同時にレンダリングするステップを含むことを特徴とする請求項21記載の1つ又は複数のコンピュータ読取可能な媒体。
【請求項24】
前記同報通信データストリームは、テレビジョン同報通信であることを特徴とする請求項21記載の1つ又は複数のコンピュータ読取可能な媒体。
【請求項25】
前記同報通信データストリームの別々の構成要素は、音声データおよびビデオデータであることを特徴とする請求項21記載の1つ又は複数のコンピュータ読取可能な媒体。
【請求項26】
前記同報通信データストリームの別々の構成要素は、インターネットプロトコルデータを含むことを特徴とする請求項21記載の1つ又は複数のコンピュータ読取可能な媒体。
【請求項27】
データストリームを取込みように構成された取込みモジュールであって、
複数の異なるデータフォーマットでデータストリームを表すことができる取込みモジュールと、
前記取り込んだデータストリームを格納するように構成されたデータ記憶モジュールと、
前記データ記憶モジュール上に格納されたデータから、前記データストリームをレンダリングするように構成されたレンダリングモジュールと
を具えたことを特徴とする装置。
【請求項28】
前記データストリームは、任意の符号化フォーマットを使用して符号化されることを特徴とする請求項27記載の装置。
【請求項29】
前記データ記憶モジュールは、前記取り込んだデータストリームを復号化する前に、該取り込んだデータストリームを格納することを特徴とする請求項27記載の装置。
【請求項30】
前記取込みモジュールは、前記データストリームの構成要素を分離するようにさらに構成され、
前記データ記憶モジュールは、前記データストリームの別々の構成要素の各々を格納するようにさらに構成されたことを特徴とする請求項27記載の方法。
【請求項31】
前記データ記憶モジュールは、少なくとも1つのハードディスクドライブを含むことを特徴とする請求項27記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−243367(P2008−243367A)
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願番号】特願2008−127169(P2008−127169)
【出願日】平成20年5月14日(2008.5.14)
【分割の表示】特願2002−43775(P2002−43775)の分割
【原出願日】平成14年2月20日(2002.2.20)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】