ネットワーク化パーソナル・ビデオ録画システム
【課題】ネットワーク化パーソナル・ビデオ録画(「PVR」)システムを提供すること。
【解決手段】このシステムは、ネットワークを介して複数のクライアントを1つまたは複数のPVRメディア・サーバに結合する。1つまたは複数のPVRメディア・サーバは、テレビジョン信号を調整するためのテレビジョン・チューナを含む。記憶媒体は、PVR機能を実施するためにテレビジョン信号をバッファリングする。例えば、PVRメディア・サーバはテレビジョン番組をクライアント用に録画する。クライアントはテレビジョン・チューナに割り当てられ、クライアントは割り当てられたチューナで受信したテレビジョン番組を表示する。ネットワークはバッファリングされたテレビジョン信号をクライアントに転送する。
【解決手段】このシステムは、ネットワークを介して複数のクライアントを1つまたは複数のPVRメディア・サーバに結合する。1つまたは複数のPVRメディア・サーバは、テレビジョン信号を調整するためのテレビジョン・チューナを含む。記憶媒体は、PVR機能を実施するためにテレビジョン信号をバッファリングする。例えば、PVRメディア・サーバはテレビジョン番組をクライアント用に録画する。クライアントはテレビジョン・チューナに割り当てられ、クライアントは割り当てられたチューナで受信したテレビジョン番組を表示する。ネットワークはバッファリングされたテレビジョン信号をクライアントに転送する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ録画の分野に関し、特にネットワーク化パーソナル・ビデオ録画システムに関する。
【背景技術】
【0002】
通常、パーソナル・ビデオ・レコーダ(「PVR」)には、ハード・ディスク・ドライブなどのストレージ・デバイスとテレビジョン入力が含まれる。ビデオ・カセット・レコーダと同様に、PVRシステムはユーザがテレビジョン番組を録画できるようにするものである。より詳細に説明すると、PVRシステムは、テレビジョン信号のデジタル表現をユーザが後で再生するためにストレージ・デバイスに格納する。PVRシステムは、また、ライブ・テレビジョンもバッファリングする。この用途では、テレビジョン信号はストレージ・デバイスに格納され、ユーザが視聴するためにテレビジョンに出力される。テレビジョンをバッファリングする機能により、ユーザは表面上ライブのテレビジョンを操作することができる。例えば、ユーザは、ライブのテレビジョン信号を一時停止、巻き戻し、および限られた範囲内で早送りすることができる。多数の機能および特徴により、PVRシステムはかなり普及してきている。しかし、これらのPVRシステムは、通常、後に単一のテレビジョンで表示するために単一のテレビジョン信号で動作する。
【発明の概要】
【課題を解決するための手段】
【0003】
したがって、1つまたは複数のテレビジョン入力をテレビジョン・ネットワークに効果的に統合するPVRシステムの開発が望まれる。
ネットワーク化パーソナル・ビデオ録画(「PVR」)システムは、ネットワークを介して複数のクライアントを1つまたは複数のPVRメディア・サーバに結合するものである。PVRメディア・サーバは複数のテレビジョン信号を受信し、それぞれのテレビジョン信号を調整するためのテレビジョン・チューナを含む。一実施形態では、PVRメディア・サーバは、単一のPVRメディア・サーバ内に配置された複数のチューナを備える。他の実施形態では、チューナは複数のPVRメディア・サーバ内に配置される。記憶媒体は、PVR機能を実施するためにテレビジョン信号をバッファリングする。テレビジョン・チューナにクライアントが割り当てられ、クライアントは割り当てられたチューナで受信されたテレビジョン番組を表示する。ネットワークは、バッファリングされたテレビジョン信号をクライアントに転送する。
一実施形態では、PVRメディア・サーバは少なくとも1つのテレビジョン番組をクライアント用に録画する。番組を録画するために、システムはクライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中にテレビジョン信号を記憶媒体に格納する。システムは、また、テレビジョン番組を録画するために使用可能なチューナを割り当てる際に生じる競合も解決する。一実施形態では、システムは、チューナの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは、テレビジョン信号を受信するためにそのチューナを割り当てる。使用可能でない場合、システムは潜在的に使用可能なチューナがあるかどうかを判別し、そのチューナに割り当てられたクライアントに対して、クライアントがテレビジョン番組の録画キャンセルを希望するかどうかを判別するために照会する。クライアントがキャンセルしない場合、システムは、テレビジョン番組の録画用にテレビジョン信号を受信するチューナを割り当てる。
【0004】
PVRメディア・サーバは、メディア・ストリームに対して少なくとも2つの独立したバッファ位置を生成する。PVRメディア・サーバは、少なくとも1つのメディア・ストリームを受信するための少なくとも1つの入力と、少なくとも一部のメディア・ストリームを格納するための記憶媒体とを含む。PVRメディア・サーバは、メディア・ストリームを表示することが可能な複数のクライアントに(例えば、ネットワークを介して)結合される。PVRメディア・サーバは、第1の位置を使用して第1のクライアント用のメディア・ストリーム内の場所を識別し、第2の位置を使用して第2のクライアント用のメディア・ストリーム内の場所を識別する。位置は互いに独立している。メディア・ストリームは、第1の位置に基づいて第1のクライアントへ、および第2の位置に基づいて第2のクライアントへ、ネットワークを介して配信される。
PVRシステムは、複数のソースからのテレビジョン番組情報を集約する。PVRシステムは、少なくとも1つのPVRメディア・サーバを含む。ネットワークは、複数のクライアントをPVRメディア・サーバに結合する。PVRメディア・サーバは、複数のチューナでテレビジョン信号を調整する。テレビジョン信号は、記憶媒体にバッファリングされる。テレビジョン番組情報を集約するために、クライアントは、ネットワーク上のそれぞれのPVRメディア・サーバに対してテレビジョン番組のリストの要求を生成する。これに応答して、PVRメディア・サーバは、それぞれのPVRメディア・サーバを介して使用可能なテレビジョン番組のリストを伝送する。要求元のクライアントは、PVRシステム内で使用可能なテレビジョン番組情報のリストを集約する。
【0005】
一実施形態では、PVRシステムは、複数のPVRメディア・サーバ、複数のテレビジョン・チューナ、および/または複数のテレビジョン・サービス・プロバイダをまたがって、テレビジョン番組のリストを集約する。テレビジョン番組情報は、ライブ・テレビジョン、または以前に記憶媒体に格納されたテレビジョン番組の、いずれかを識別することができる。PVRシステムは、テレビジョン番組を集約して、情報をチャネル別、時間帯別、テレビジョン・ショーのジャンル別、テレビジョン・ショーの連続番組(episode)別、およびテレビジョン・ショーに登場する俳優別に情報を表示することができる。
PVRシステムは、複数のクライアントに関するリソースを管理する。システムは、少なくとも1つのPVRメディア・サーバを含む。PVRメディア・サーバは、テレビジョン信号を調整するためのチューナと、テレビジョン信号をバッファリングするための記憶媒体とを含む。クライアントは、ネットワークを介してPVRメディア・サーバに結合される。クライアントは、PVRシステム・サービスに関する要求を生成する。一実施形態では、クライアントは、テレビジョン番組を録画する旨およびバッファリングされたライブ・テレビジョンを視聴する旨の要求を生成する。システムは、要求に応答して、クライアントにサービスを配信するためにPVRシステムのリソースを適宜クライアントに割り振る。例えば、クライアントがバッファリングされたライブ・テレビジョンを視聴したい場合、システムは、クライアントにチューナを割り当て、クライアント側でテレビジョン信号を再生するために、テレビジョン信号内のある場所を識別するためのバッファ位置を生成し、そのバッファ位置を使用してテレビジョン信号を配信する。クライアントがテレビジョン番組を録画したい場合、システムは、クライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中に記憶媒体にテレビジョン信号を格納する。
【0006】
一実施形態では、システムはシステム・リソースに関する競合を解決するよう試みる。例えば、クライアントが選択したチャンネルでバッファリングされたライブ・テレビジョンを視聴する旨要求した場合、システムはチューナのうちの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは選択したチャンネルでテレビジョン信号を受信するためのチューナを割り当てる。使用可能でない場合、システムは、チューナの現在のチャンネルを選択されたチャンネルに変更するようにクライアントが希望するかどうかを判別するために、潜在的に使用可能なチューナに割り当てられたクライアントに照会することによって、ならびに、現在のチャンネルの変更をどのクライアントもキャンセルしない場合、選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てることによって、どのチューナが潜在的に使用可能であるかを判別する。他の実施形態では、システムは、テレビジョン番組を録画するために、チューナのうちの1つがテレビジョン信号を受信するために使用可能であるかどうかを判別することによって、割り当てリソースの競合を解決するように試みる。使用可能である場合、システムはテレビジョン信号を受信するためにチューナを割り当てる。使用可能でない場合、システムは、どのチューナが潜在的に使用可能であるかを判別し、クライアントがテレビジョン番組の録画のキャンセルを希望するかどうかを判別するために潜在的に使用可能なチューナに割り当てられたクライアントに照会し、テレビジョン番組の録画をキャンセルするクライアントがいない場合、テレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てる。
例えば、本発明は以下の項目を提供する。
(項目1)
システム(200)であって、
テレビジョン信号を表示するための複数のクライアント(クライアント1〜クライアントn)と、
複数のテレビジョン信号を受信するために結合された、少なくとも1つのPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)であって、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、
上記クライアント(クライアント1〜クライアントn)のうちの少なくとも2台をテレビジョン・チューナ(チューナ1〜チューナn)のうちの1つまたは複数に割り当てるように、上記テレビジョン信号のそれぞれを調整するための複数のテレビジョン・チューナ(チューナ1〜チューナn)と、
上記テレビジョン信号をバッファリングするために上記テレビジョン・チューナ(チューナ1〜チューナn)に結合された記憶媒体(220、230、または240)とを備える少なくとも1つのPVRメディア・サーバと、
上記クライアント(クライアント1〜クライアントn)を上記PVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)に結合するため、および上記バッファリングされたテレビジョン信号を上記クライアント(クライアント1〜クライアントn)に転送するためのネットワーク(210)とを備えるシステム(200)。
(項目2)
上記少なくとも1つのPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)が、複数のチューナ(チューナ1〜チューナn)を備える単一のPVRメディア・サーバ(PVRメディア・サーバ1)を備える、項目1に記載のシステム(200)。
(項目3)
上記少なくとも1つのPVRメディア・サーバが、複数のPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)に配置された複数のチューナ(チューナ1〜チューナn)を備える、項目1に記載のシステム(200)。
(項目4)
さらに、上記記憶媒体(220、230、または240)が、上記テレビジョン番組を録画するように少なくとも1つのテレビジョン信号を格納するためのものである、項目1に記載のシステム(200)。
(項目5)
さらに、上記システム(200)が、チューナ(チューナ1〜チューナn)を上記クライアント(クライアント1〜クライアントn)に割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体(220、230、または240)上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体(220、230、または240)に格納するためのものである、項目4に記載のシステム(200)。
(項目6)
さらに、上記システム(200)が、上記テレビジョン信号に使用可能なチューナ(チューナ1〜チューナn)を割り当てるために競合を解決するためのものである、項目4に記載のシステム(200)。
(項目7)
さらに、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ(チューナ1〜チューナn)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目6に記載のシステム(200)。
(項目8)
さらに、第1のクライアント(クライアント1)に関して上記バッファリングされたテレビジョン信号のうちの選択された1つのうちのある場所を識別するために第1の位置を生成するため、および第2のクライアント(クライアント2)に関して上記選択されたバッファリングされたテレビジョン信号のうちのある場所を識別するために第2の位置を生成するためのものであり、上記第2の位置は上記第1の位置から独立している、項目4に記載のシステム(200)。
(項目9)
パーソナル・ビデオ録画(「PVR」)メディア・サーバ(PVRメディア・サーバ1)であって、
複数のテレビジョン信号を受信するための入力と、
上記テレビジョン信号のそれぞれを調整するための複数のチューナ(チューナ1〜チューナn)と、
上記テレビジョン信号をバッファリングするための記憶媒体(220)と、
ネットワーク(210)を介して複数のクライアント(クライアント1〜クライアントn)をPVRメディア・サーバ(PVRメディア・サーバ1)に結合するためのネットワーク・インタフェースとを備え、
上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記PVRシステムの少なくとも1つのサービスに関して少なくとも2台のクライアント(クライアント1〜クライアントn)のそれぞれから少なくとも1つの要求を受信するため、および上記サービスを上記クライアント(クライアント1〜クライアントn)に送達するために上記PVRシステム(PVRメディア・サーバ1)のリソースを上記クライアント(クライアント1〜クライアントn)に適宜割り振るためのものであるPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目10)
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記テレビジョン番組を録画するためのチューナを割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体(220)上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体(220)に格納するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目11)
さらに、上記入力が、バッファリングされたライブ・テレビジョンを視聴するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記バッファリングされたライブ・テレビジョンを視聴するためのチューナを割り当てるため、クライアント(クライアント1〜クライアントn)で上記テレビジョン信号を再生するために上記テレビジョン信号内のある場所を識別するためのバッファ位置を生成するため、および上記バッファ位置を使用して上記テレビジョン信号を送達するように、上記テレビジョン信号を上記クライアント(クライアント1〜クライアントn)に転送するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目12)
さらに、上記入力が、特定のテレビジョン・サービス・プロバイダからテレビジョン信号を受信するための要求を受信するステップを含む、少なくとも1つの要求を受信するためものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記テレビジョン・サービス・プロバイダからテレビジョン信号を受信するために結合された1つまたは複数のチューナ(チューナ1〜チューナn)を識別するため、および識別された上記チューナ(チューナ1〜チューナn)からのチューナ(チューナ1)を上記クライアント(クライアント1〜クライアントn)に割り当てるためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目13)
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記クライアント(クライアント1〜クライアントn)へのリソースの割り当てにおける競合を解決するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目14)
さらに、上記入力が、バッファリングされたライブ・テレビジョンを選択されたチャンネルで視聴するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記選択されたチャンネルで上記テレビジョン信号を受信するために上記チューナ(チューナ1)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記チューナ(チューナ1〜チューナn)の現在のチャンネルを上記選択されたチャンネルに変更したいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記現在のチャンネルの変更をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目15)
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ(チューナ1〜チューナn)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目16)
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、クライアント(クライアント1〜クライアントn)に割り当てられていないチューナ(チューナ1〜チューナn)に対して完全にフリーのチューナ状態を割り当てるため、クライアント(クライアント1〜クライアントn)に割り当てられているが現在はスケジューリングされた録画を実行していないチューナ(チューナ1〜チューナn)に対しておそらくフリーのチューナ状態を割り当てるため、および現在スケジューリングされた録画を実行しているチューナ(チューナ1〜チューナn)に対してビジーのチューナ状態を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
【図面の簡単な説明】
【0007】
【図1】本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。
【図2】本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。
【図3】ネットワーク化PVRシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。
【図4】ネットワーク化PVRシステムにおけるバッファに関する一実施形態を示すブロック図である。
【図5】ネットワーク化PVRシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。
【図6】本発明のネットワーク化PVRシステムを使用するための一実施形態を示すフローチャートである。
【図7】本発明のネットワーク化PVRシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。
【図8】番組を録画するための一実施形態を示すフローチャートである。
【図9】本発明の一実施形態に従ったメディアのクライアント・デバイス集約を示す図である。
【図10】ネットワークを介したクライアント・メディア集約に関する一実施形態を示すフローチャートである。
【図11】ネットワーク化PVRシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。
【図12】ネットワーク化PVRシステムに関するホーム・ネットワークの一例を示すブロック図である。
【図13】ネットワーク化PVRシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。
【図14】ネットワーク化PVRシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。
【図15】ネットワーク化PVRシステムを介したデータ・ストアへのアクセスの一実施形態を示すブロック図である。
【発明を実施するための形態】
【0008】
図1は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。この実施形態では、ホーム・エンターテイメント・システムが「n」台のクライアントおよび「m」台のパーソナル・ビデオ録画(「PVR」)メディア・サーバを含む(すなわち、「n」および「m」は1より大きいかまたは1に等しい任意の整数値である)。本明細書で使用するクライアントとは、メディアを再生する任意のデバイスのことである。例えば、クライアントがビデオおよびライブ・テレビジョンを再生するためのテレビジョンを有することができる。本明細書で使用するサーバとは、メディアを格納または獲得する任意のデバイスを意味する。PVRメディア・サーバとは、テレビジョン信号を獲得し、クライアントが視聴するためにテレビジョン信号をバッファリングするデバイスを含む、ビデオをネットワークに配信する任意のデバイスを意味する。例えば、PVRメディア・サーバは、特にコストを最低限に抑えるように設計されたストレージを備えたデバイスを備えることができるか、またはPVRメディア・サーバはパーソナル・コンピュータを備えることができる。
図1に示すように、テレビジョン信号を含む様々なタイプのメディアが各PVRメディア・サーバに入力される。PVRメディア・サーバは、クライアントがアクセスするためのオーディオおよびビデオを含むメディアを格納することができる。さらに、PVRメディア・サーバは、ライブ・テレビジョンをバッファリングする。各クライアント(例えば、クライアント1、クライアント2、およびクライアントn)は、ネットワーク110を介してPVRメディア・サーバ上に格納またはバッファリングされたメディアにアクセスすることができる。ネットワーク110は、無線ネットワークを含む任意のタイプのネットワークを有することができる。例えば、ネットワーク110は、IEEE 802.3、カテゴリ5のイーサネット(登録商標)10/100、HPNA、Home Plug、IEEE 802.11x、IEEE 1394、およびUSB 1.1/2.0などの規格に従って実施されるネットワークを有することができる。
図1に示すネットワーク化システム100は、住宅内で実施することができる。例えば、各クライアントは、格納されたビデオおよびテレビジョンを視聴するためのテレビジョンで構成することができる。こうしたホーム・システムの一例では、居間に配置されたクライアント・テレビジョンと、寝室に配置された1つまたは複数のクライアント・テレビジョンと、台所に配置されたクライアント・テレビジョンを含むことができる。一般に、システム100は、いずれかのPVRメディア・サーバを介して格納または獲得されたメディア(例えば、ビデオ)を任意のクライアントが再生できるようにする。PVRメディア・サーバは、様々なソースからテレビジョン信号を獲得するように構成できる。例えば、PVRメディア・サーバ1は衛星テレビジョン・システムからテレビジョン信号を獲得し、一方、PVRメディア・サーバ2は、ケーブル・テレビジョン・システムからテレビジョン信号を獲得することができる。PVRメディア・サーバは、永続ストレージ(例えば、ハード・ディスク・ドライブ)と少なくとも1つのテレビジョン・チューナとを含む。それ故、システム100は、任意のPVRメディア・サーバ上に格納された任意のチューナまたはメディアからのメディアに、任意のクライアントがアクセスできるようにする。
【0009】
図2は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。図1のシステム100と同様に、システム200は、少なくとも2台のテレビジョンを含む「n」台のクライアントを含む。このシステム例では、3台のPVRメディア・サーバ(PVRメディア・サーバ1、PVRメディア・サーバ2、およびPVRメディア・サーバ3)がある。クライアントはネットワーク210を介してメディア(例えば、ビデオ)にアクセスする。各PVRメディア・サーバは、ストレージ(220、230、および240)と、「n」台のチューナ(すなわち、「n」は1より大きいかまたは1に等しい任意の整数を表す)とを含む。PVRメディア・サーバはテレビジョン信号を受信する。この例では、PVRメディア・サーバ1およびPVRメディア・サーバ2はテレビジョン・サービス・プロバイダ1から信号を受信し、PVRメディア・サーバ3はテレビジョン・サービス・プロバイダ2からテレビジョン信号を受信する。この構成の下では、任意のクライアント(すなわち、クライアント1、クライアント2、およびクライアントn)が、任意のチューナ(すなわち、PVRメディア・サーバ1、PVRメディア・サーバ2、およびPVRメディア・サーバ3からの「n」台のチューナのうちの任意の1台)によって復調された出力ビデオ信号を受信することができる。
【0010】
図3は、ネットワーク化PVRシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。あらゆるチューナが連続するリング・バッファを有する。一実施形態では、リング・バッファのサイズはフレキシブルであり、構成可能である。例えば、リング・バッファは60分のテレビジョンを格納することができる。次に各クライアントは、システム内で使用可能なあらゆるリング・バッファおよび格納済みビデオに関する独立したバッファ位置を有する。図3は、「n」台のチューナを備えたネットワーク化PVRシステムの一例を示す。「n」台のチューナは、1台または複数台のPVRメディア・サーバと共に実施可能である。図3に示すように、各チューナの出力が対応するバッファ(例えば、リング・バッファ)に入力される。各クライアント、すなわちクライアント1〜nは、各チューナ−バッファのペアについて関連するバッファ位置を有する。具体的には、図3に示すように、クライアント1はチューナ1、チューナ2、およびチューナnに関するバッファ位置を有する。同様に、クライアントnもチューナ1〜nに関する独立したバッファ位置を有する。一般に、バッファ位置は、ビデオ内のある位置またはチューナ・バッファ内のある位置を指すポインタを有することができる。図3での各チューナ・バッファ位置はタイムラインとして示され、ここで開始および終了ライン・セグメントはバッファの長さを表し、中央ライン・セグメントはクライアントの現在のバッファ位置を表す。
ネットワーク化PVRシステムにおけるバッファは、1つの書き込みタップおよび複数の読み取りタップを含む。図4は、ネットワーク化PVRシステムにおけるバッファに関する一実施形態を示すブロック図である。チューナ410は、バッファ420に格納するためのデータ(例えば、MPEG符号化ビデオ)を出力する。一実施形態では、バッファはハード・ディスク・ドライブを有する。チューナ410は、ファイル・システムを使用してハード・ディスク・ドライブに書き込むことができる。他の実施形態では、チューナ410はハード・ディスク・ドライブ上で直接書き込み操作を実行することができる。バッファは複数の読み取りタップを有する。図4に示された例では、バッファは「n」個の読み取りタップを有する(すなわち、「n」は1より大きいかまたは1に等しい任意の整数を表す)。各読み取りタップは独立したバッファ位置をサポートする。例えば、読み取りタップ1はチューナ・バッファ位置1をサポートし、読み取りタップ2はチューナ・バッファ位置2をサポートし、読み取りタップnはチューナ・バッファ位置nをサポートする。ソフトウェアの一実施形態では、ソフトウェアは1ファイル上で複数の読み取り操作を実行し、複数のタップを生成する。
一実施形態では、システムは読み取りおよび書き込みバッファ・タップの相対的な位置で境界条件を設定する。1つの境界条件では、読み取りタップが書き込みタップよりもバッファ長さを超えて遅れないことを要求する。例えば、クライアントは、バッファ済みテレビジョン番組を第1のバッファ位置(すなわち、読み取りタップ)を使用して視聴することができる。この例では、クライアントはテレビジョン番組の視聴を一時停止することができる。この場合、第1のバッファ位置は一定である(すなわち、第1のバッファ位置は進行しない)。しかし、テレビジョン信号が受信されるにつれて書き込み位置は進行する。それ故、書き込みバッファ位置と読み取りバッファ位置との間の距離は増加する。読み取りバッファ位置と書き込みバッファ位置との間の距離がバッファの長さを超えた場合、イベントが生成される。イベントへの応答は、読み取りバッファ位置の進行とすることができる。また他のシナリオでは、読み取りバッファ位置が対応する書き込みバッファ位置まで前進した場合、読み取りバッファ位置が書き込みバッファ位置の場所になる(すなわち、読み取りバッファ位置は書き込みバッファ位置を越えて進行しない)。例えば、クライアントは現在の書き込み位置までバッファ・テレビジョン番組を早送りすることができる。
【0011】
図5は、ネットワーク化PVRシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。最初にユーザは、ライブTVを視聴するため、またはPVRメディア・サーバからメディアを選択するために、クライアント・テレビジョン上に表示されたメニュー・オプションを受信する(図5、ブロック520)。クライアントはライブ・テレビジョンの視聴を選択しないと、PVRメディア・サーバに格納されたメディアを選択する(図5、ブロック520および530)。次に、以下で論じるように、クライアントはシステムを介してバッファ位置を設定する。ユーザがライブ・テレビジョンの視聴を選択すると、クライアントはテレビジョン・サービス・プロバイダを選択する(図5、ブロック510)。クライアントが使用できるテレビジョン・サービス・プロバイダが1つだけの場合、システムはブロック510の機能を省略する。一実施形態では、サービス・プロバイダの選択はセットアップ・モード時に構成することができる。例えば、居間のテレビジョンは、衛星システムからテレビジョン信号を常時受信するように構成することができる。システムは、クライアント用のチューナを選択する(図5、ブロック540)。一実施形態では、システムは使用可能なチューナをクライアント・テレビジョンに自動的に割り振る。
ユーザは、クライアントで番組を視聴する(図5、ブロック580)。ユーザが番組を変更したい場合、クライアントは、クライアントで表示される電子番組ガイドから番組を選択する(図5、ブロック555および550)。ユーザが番組を変更したくない場合、ユーザは潜在的にバッファ位置を設定する。ユーザが既存のバッファ位置を有し、番組を既存のバッファ位置に設定したい場合、ユーザはメニューを介して既存のバッファ位置を選択する(図5、ブロック570および572)。クライアントが既存のバッファ位置を有していない場合、システムはファイル/メディアの先頭にバッファ位置を設定する(図5、ブロック570および574)。ユーザは、バッファ位置を既存のバッファ位置に変更したい場合がある(図5、ブロック560)。ユーザが番組を既存のバッファ位置に設定したい場合、ユーザはシステムを介してバッファ位置を変更する(ブロック565、図6を参照)。例えば、ユーザはすでに進行中の番組を選択する場合がある。このシナリオの場合、ユーザは番組を最初から視聴したい場合がある。これを実施する場合、ユーザは番組の最初から開始するために新しいバッファ位置を選択する。次に、ユーザはクライアントで番組を視聴する(図5、ブロック580)。
【0012】
一実施形態では、PVRメディア・サーバは、電子番組ガイド(「EPG」)と呼ばれる番組データをEPGコンテンツ・プロバイダから獲得する。EPGデータ・セットは、対応するテレビジョン・サービス・プロバイダから入手可能なチャンネルおよび時間を含む番組のリストを提供する。通常、EPGデータはサービスごとにEPGコンテンツ・プロバイダから提供される。PVRメディア・サーバは、EPGコンテンツ・プロバイダに接触して更新された番組データを獲得する。PVRシステムは、EPGデータを利用して番組のスケジューリングならびにクライアントへの番組メニューの提供を行う。それ故、この実施形態では、PVRシステム・スケジューラはEPGデータ・セットに特有のものである。しかし、家庭用メディア・ネットワーク化システムは、異なるEPGコンテンツ・プロバイダを利用する、したがって異なるEPGデータ・セットを使用して動作するサーバを含むことができる。この実施形態では、ユーザは基礎となるEPGデータ・セットに基づいてチャンネル選択メニューを視聴するだけである。それ故、クライアントで提示されるメニューは基礎となるPVRメディア・サーバに依存する。
一実施形態では、PVRシステムは、クライアントがテレビジョン・チューナの概念を理解する必要なしにテレビ番組を選択できるようにするものである。例えば、2台のクライアントが同じチューナから信号を受信している場合がある。このシナリオでは、クライアントのうちの一方が、他方のクライアントが現在のプログラムを視聴できることに影響を与えずに、異なる番組を視聴するためにチャンネルを変更したい場合がある。PVRシステムは、ユーザが追加の番組を選択できるようにするメニューを提供する。一実施形態では、番組メニューは特定のテレビジョン・サービス・プロバイダおよび対応するEPGコンテンツ・プロバイダに基づく。
一実施形態では、ユーザはテレビジョン・サービス・プロバイダ−EPGコンテンツ・データ・セット内の番組を選択する。クライアントは、好ましいテレビジョン・サービス・プロバイダを自動的に選択するようにシステムをセットアップすることができる。ユーザが新しいチューナを必要とする操作を実行する場合、ユーザは以前に選択されたEPGコンテンツ・プロバイダから番組を選択する。ユーザが新しい番組を選択した後、システムはユーザにチューナを割り振る。このシナリオでは、ユーザはチューナの概念を理解する必要がない。代わりに、クライアントは番組を選択するか、またはチューナの使用権を獲得するためにイベントを取り消すのみである。チューナがユーザへの割り振りに使用できない場合、システムは所定の「競合管理」手順を介して競合を解決する。ネットワーク化PVRシステムで発生する一定の競合を解決するための一実施形態について、以下でより詳細に説明する。
【0013】
ネットワーク化PVRシステムは、ユーザが異なるクライアントからバッファ位置を選択できるようにする。例えば、第1のクライアント(例えば、居間のテレビジョン)で番組を視聴しているユーザが別の部屋に行って、第2のクライアント(例えば、台所のテレビジョン)から第1のクライアントでの視聴が終わったその番組を選択する場合がある。このシナリオでは、ユーザは居間のクライアントで再生されている番組を、その後台所のクライアントで視聴するために一時停止することができる。図6は、本発明のネットワーク化PVRシステムを使用するための一実施形態を示すフローチャートである。このシナリオでは、ユーザはクライアントから視聴するための番組を選択する(図6、ブロック610)。その後ユーザは、その番組を異なるクライアントから選択したい場合がある。これを実施するために、ユーザは、選択された番組にチャンネルが合わされた他のクライアントを決定するために、PVRシステムに照会する(図6、ブロック620)。他のクライアントのチャンネルが選択された番組に合わされた場合、システムはその番組にチャンネルが合わされたクライアントのリストを表示する(図6、ブロック630および640)。上記のシナリオでは、ユーザは、居間で一時停止された番組を選択するように、台所のクライアントからPVRシステムに照会する場合がある。一実施形態では、ユーザは、「選択された番組を誰が視聴しているか」を決定するためにあるクライアントからメニュー項目を引き出す。これに応答して、PVRシステムは、選択された番組を現在再生しているクライアントの場所のメニューを表示する。上記の例の場合、PVRシステムは、選択された番組が現在居間で再生されていることを識別するために「居間のクライアント」を表示する。別の方法として、選択された番組にチャンネルが合わされているクライアントが他にない場合、バッファ位置はプログラムの先頭に設定される(図6、ブロック630および655)。
ユーザが他のクライアントのバッファ位置を選択したい場合、PVRシステムは、ユーザのクライアントのバッファ位置として使用するために選択されたクライアントからバッファ位置をコピーする(図6、ブロック650および660)。上記の例の場合、台所のクライアントにいるユーザは、一時停止された番組の位置で選択された番組をピックアップするために、居間のクライアントのバッファ位置を選択する。別の方法として、ユーザは選択された番組を番組の先頭から視聴したい場合がある(図6、ブロック650および655)。一実施形態では、PVRシステムは、2台のクライアントで同時に再生するために2つのバッファ位置を同期させることができる。例えば、ユーザは、家の中でより広い領域にわたって音楽を流すために、2台の異なるクライアントで音楽ビデオを再生したい場合がある。
【0014】
一実施形態では、PVRシステムはテレビジョン・チューナに状態を割り当てる。この実施形態では、テレビジョン・チューナは、ビジー(busy)、おそらくフリー(maybe free)、および完全にフリー(totally free)の状態のうちの1つを含む。ビジー状態とは、現在サーバがチューナを使用して番組を録画中であることを示す。おそらくフリー状態は、クライアントがチューナを使用して番組を視聴中である可能性があることを示す。例えば、ユーザは、クライアントでプログラムを視聴するように選択する場合がある。その後、PVRシステムは、ユーザがまだその番組を視聴しているかどうかを実際には知らない(例えば、ユーザがモニタの電源をオフにしたばかりの可能性があるため)。このシナリオでは、チューナは「おそらくフリー」と指定される。チューナが「完全にフリー」と指定された場合、チューナはスケジューラによって割り振られておらず、クライアントはチューナを使用して番組を視聴していなかったことになる。以下で詳細に説明するように、チューナの状態を使用してチューナが割り振られる。
一実施形態では、PVRシステムはスケジューラを利用する。一般に、スケジューラはシステムにとって「しなければならないことのリスト」としての役割を果たす。例えば、スケジューラは、システム・ユーザが選択した番組を録画するためのプロセスを実行する。番組は録画するために個々に選択するか、または予約申し込みに基づいて録画するためにスケジューリングすることができる。スケジューラは、番組を録画するためのリソースを割り振るために競合管理の問題を解決する。
【0015】
一実施形態では、PVRシステムは「予約申し込み」をサポートする。一般に、予約申し込みでは、システムは選択された番組の放送を繰り返し録画する。予約申し込みを使用すれば、ユーザは予約申し込みをする番組を選択するだけで、その番組のすべての放送が録画される。一実施形態では、PVRメディア・サーバのスケジューラが予約申し込みを実行するためのイベントを識別する。例えば、ユーザは、テレビジョン・ショー「Reality Television」の予約申し込みを選択することができる。PVRメディア・サーバのスケジューラは、EPGデータ・セットからテレビジョン・ショー「Reality Television」のすべての固有の連続番組を決定する。スケジューラはイベントを録画するために、識別されたそれぞれの固有の連続番組について1イベントのイベントを生成する。一実施形態では、予約申し込みは単一のPVRメディア・サーバ内でスケジューリングされる。しかし、他の実施形態では、予約申し込みを他のPVRメディア・サーバに送る(push)ことができる。例えば、第1のPVRメディア・サーバのスケジューラが予約申し込みに関連するイベントを含むことができる。第1のPVRメディア・サーバがその予約申し込みの1つまたは複数のイベントで競合する場合、予約申し込み全体のイベントを第2のPVRメディア・サーバに割り当てることができる。この場合、第2のPVRメディア・サーバのスケジューラが(例えば、第1のPVRメディア・サーバ用のスケジューラと同じ方法で)予約申し込みを実行する。例えば、第1のPVRメディア・サーバのスケジューラからのイベントを第2のPVRメディア・サーバのスケジューラに転送することができる。さらに、第2のPVRメディア・サーバのスケジューラは、その予約申し込みに関する今後のイベントのスケジューリング・タスクも想定することができる。また、あるPVRメディア・サーバがネットワークから除去された場合、複数のPVRメディア・サーバ間で予約申し込みを送ることができる。
図7は、本発明のネットワーク化PVRシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。第1に、ユーザはメニューを介して録画する番組を個々に、または予約申し込みによって選択する(図7、ブロック710)。これに応答して、システムはイベントの時間帯中に使用可能なチューナを選択する(図7、ブロック720)。さらに、システムは、スケジューリングされた番組に対して記憶媒体上の記憶域を割り振る(図7、ブロック730)。システム内でイベントの「再スケジューリング」が発生すると、使用可能なチューナおよび使用可能な記憶域の両方を割り振るためにプロセスが繰り返される(図7、ブロック740、720、および730)。一実施形態では、電子番組ガイドデータがPVRメディア・サーバにダウンロードされた場合、「再スケジューリング」イベントが発生する。再スケジューリング・イベントは、ユーザがスケジューラから項目を削除した場合にも発生する。例えば、ユーザは、番組を録画するために、前の予約申し込みから別の番組を以前にキャンセルしたイベントを削除する場合がある。このシナリオでは、ユーザが競合する番組をキャンセルしたため、システムは前の予約申し込みを再スケジューリングする。
スケジューリングされたイベントをセットアップする時間(例えば、スケジューリングされたイベントの時間より前の時間)に達すると、システムはスケジューリングされたイベントの録画を開始するためのプロセスを始動する(図7、ブロック750および760)。チューナ・リソースの競合解決を含む、スケジューリングされたイベントの録画に関する一実施形態について、図8の説明と共に以下で詳細に説明する。イベントがキャンセルされると、システムはチューナを解放し、キャンセルされたイベントに関する記憶媒体上のスペースを割り振り解除する(図7、ブロック770および775)。またスケジューラは、その時間帯を埋めるために何らかの新しい割り振りの決定を実行する(図7、ブロック785)。一実施形態では、システムはユーザがイベントをキャンセルする代わりに再スケジューリングもできるようにする。別の方法として、イベントがキャンセルされない場合、スケジューリングされたイベントが録画される(図7、ブロック770および780)。
【0016】
一実施形態では、PVRシステムはチューナを使用するすべてのクライアントに対して等しい所有権を割り当てる。例えば、3台のクライアントが同じチューナを使用することが可能である(すなわち、3台のクライアントすべてが、潜在的には番組の異なる部分であるが同じ番組を視聴している)。1台のクライアントがチューナのチャンネルを変更すると、チューナは新しいチャンネルにセットされ、その結果3台のクライアントすべてのチャンネルが新しい番組に合わされる。
PVRシステムは、ネットワーク化PVRシステム内で生じる可能性のあるいくつかの競合を解決する(すなわち、「競合管理」と呼ばれる)。ネットワーク化PVRシステム内で生じる競合の一部には、新しい番組を録画する不適切な記憶域、スケジューリングされた番組を録画するには不十分な数のチューナ、スケジューリングされたイベントを録画する場合のチャンネル変更要求を含む一貫性のない入力、およびイベントを録画するには不十分な数のチューナが含まれる。
一実施形態では、スケジューリングされたイベントを録画するのに十分な記憶域がPVRメディア・サーバにない場合、システムは録画に先立って自動的にコンテンツを削除する。コンテンツ削除の優先順位を割り当てるための一実施形態について、以下でより詳細に説明する。
図8は、番組を録画するための一実施形態を示すフローチャートである。スケジューリングされたイベントの時間の直前に、PVRシステムはチューナが使用可能かどうかを判別する(図8、ブロック810および820)。チューナが使用可能な(すなわち、チューナが「完全にフリー」と指定された)場合、チューナは番組を録画するように割り当てられる(図8、ブロック820および880)。PVRメディア・サーバ上で「完全にフリー」と指定されたチューナがない場合、システムは、チューナを備えた何らかの他のPVRメディア・サーバがあるかどうかを判別する(図8、ブロック822)。ある場合は、他のPVRメディア・サーバが選択され、システムは選択されたPVRメディア・サーバが使用可能なチューナを有するかどうかを判別する(図8、ブロック825および820)。このプロセスは、ネットワーク上のすべてのPVRメディア・サーバに対して反復される。
【0017】
使用可能なチューナがない(すなわち、ネットワーク上のすべてのチューナが「ビジー」または「おそらくフリー」として指定されている)場合、システムは、クライアントがスケジュールされたイベントをキャンセルしたいかどうかを判別するために、チューナに割り振られたかまたは潜在的に割り振られたクライアントに照会する(図8、ブロック830)。例えば、一実施形態では、クライアントに照会するために、PVRシステムは各クライアントにメニュー画面を表示して、システムがスケジューリングされたイベントを進行すべきかどうかを尋ねる。チューナに割り振られたすべてのクライアントがこの照会を受け取る。例えば、スクリーン画面で「システムは時間Yに番組Xを録画するようにチャンネルを変更する必要がありますが、よろしいですか?」と尋ねる場合がある。この照会に対してすべてのクライアントが「はい」と応答した場合、システムはスケジューリングされたイベントの録画に進む。所定の時間内にこの照会に回答しなかったクライアントがあった場合も、システムはスケジューリングされたイベントの録画に進む。
PVRシステムは、クライアントから回答を取り出す(図8、ブロック840)。クライアントのいずれか1つがイベントをキャンセルした場合、システムは、スケジューリングされたイベントを記録するために割り振るチューナを備えた追加のPVRメディア・サーバがあるかどうかを判別する(図8、ブロック850および860)。追加のPVRメディア・サーバがない場合、スケジューリングされたイベントはキャンセルされる(図8、ブロック860および870)。別の方法として、システム内に追加のPVRメディア・サーバがある場合、使用可能なチューナを割り振るためのプロセスが反復される(図8、ブロック860、820、830、840、および850)。チューナを割り当てるためのこのプロセスは、システム内のすべてのPVRメディア・サーバについて反復される。
【0018】
図8のプロセスは、スケジューリングされた複数のイベントに対して同時にチューナを割り振るために使用することができる。例えば、3つの番組を、あるインスタンスで適時に録画するようにスケジューリングすることができる。このプロセスは各番組について反復される。例えば、クライアントが第1のスケジューリングされた番組をキャンセルした場合、その番組は、システム内に他の使用可能なPVRメディア・サーバがあればこれに送られる。その後、すべての関連するクライアントが第2の番組のスケジューリングに関する別の照会を受け取る。ここでも、いずれかのクライアントが第2の番組をキャンセルした場合、第2の番組のスケジューリングは潜在的に他のPVRメディア・サーバに移行される。
一実施形態では、PVRネットワーク・システムはユーザに対して「チューナをロックする」ための機能を有する。例えば、ユーザが数時間にわたるTVショー(例えば、野球の試合、アカデミー賞など)を視聴している場合、ユーザは、以前にスケジューリングされたイベントにチャンネルを変更するための複数の要求を受け取りたくない可能性がある。一実施形態では、ユーザはチャンネルを変更するための照会を迂回するように、システム内のオプションを選択する可能性がある。実行可能になった場合、システムは、ユーザの番組中にチューナ・リソースの競合を解決するためにチューナを再割り振りするための照会を表示しない。
一実施形態では、ネットワーク化PVRシステムが高度な競合管理を含む。一般に、高度な競合管理は、スケジューリングされたイベントをキャンセルするためにユーザに照会する以外の手段を使用して、ユーザが競合を解決するのを補助する。例えば、高度な競合管理は、同一のテレビジョン連続番組の代替のプレゼンテーションを自動的に探し出し、競合が生じない場合はシステムがその番組を録画するためのオプションをユーザに提示することができる。それ故、ユーザが2つのショーを同時に録画しようとすると、システムは「4チャンネルで午後9時に録画するように設定した「お気に入りのショー」の連続番組が、7チャンネルの午後11時に録画するように設定されています」という旨のメッセージを戻すことができる。
ユーザは、スケジューリングされたイベントを現在録画しているチューナのチャンネルを変更するよう試みることができる。このシナリオでは、システムはスケジューリングされたイベントをキャンセルするようにユーザに指示する。またユーザは、システム内で使用可能なチューナが他にない場合に、番組を録画するよう試みることもできる。このシナリオでは、ユーザはネットワーク全体からキャンセルするためのイベントのリストを受け取る。例えば、システムは3台のチューナを有している場合がある。第1のチューナは第1のスケジューリングされたイベントを録画し、第2のチューナは第2のスケジューリングされたイベントを録画し、第3のチューナは少なくとも1台のクライアントが使用するために割り振ることができる。ユーザが別の番組を録画しようと試みると、システムは3台のチューナに現在割り振られている3つの番組を表示する。依然として新しい番組を録画したい場合、ユーザはこれに応答して、表示されたイベントのうちの1つをキャンセルする。
【0019】
一実施形態では、PVRシステムは「削除マネージャ」を含む。一般に、削除マネージャは、PVRメディア・サーバに格納されたコンテンツを削除する優先順位を決定する。一実施形態では、削除マネージャは日付ベースの削除システムを利用する。日付ベースの削除システムでは、第1の録画された番組が削除用にスケジューリングされた第1の番組でもある。所定の時間が経過すると、その番組が削除可能であることをユーザに伝えるために、メニュー上の項目にタグが付けられる。追加のアイコンを使用して、潜在的な番組削除に関してユーザに伝えることもできる。例えば、別のアイコンを使用してその項目が削除可能であることをユーザに伝えることが可能であり、異なるアイコンを使用してその番組が削除されない予定であることをユーザに伝えることも可能である。
一実施形態では、削除マネージャは、「先(sooner)」または「後(later)」フラグに基づく優先順位システムを使用する。このシステムでは、ユーザはコンテンツに「先」または「後」に削除するマークを付ける。削除マネージャはコンテンツを分析して、「先」のマークが付けられた項目を「後」のマークが付けられた項目よりも先に削除する。このシステムは、前述の日付ベースの削除システムと共に使用することができる。他の実施形態では、ユーザは範囲(例えば、1〜5)に従った削除の優先順位でコンテンツをランク付けする。
【0020】
クライアント・デバイスの集約
ネットワーク化PVRシステムは、「ピアツーピア」アーキテクチャを利用する。メディア・プラットフォーム上のすべてのクライアント・デバイスが、複数のクライアント・デバイスおよび複数のPVRメディア・サーバを含む、他のデバイスと通信できる機能を有する。このアーキテクチャでは、デバイスがテレビジョン信号を含むネットワーク上で入手可能なすべてのメディアを取得すること、およびそのデバイス上で表示するためにメディアを集約することが可能である。
クライアント・デバイスまたはサーバ・デバイスを含むデバイスは、いつでもホーム・ネットワークに入ることおよび/またはホーム・ネットワークから出ること、ならびに依然としてすべての機能を維持することが可能である。それ故、あるデバイスの電源がオフになった場合、そのデバイスがホーム・ネットワーク上でもはや使用可能でないことを他のデバイスが自動的に認識する。新しいデバイスが追加されるかまたはポータブル・デバイスがネットワークに加わった場合、他のノードはその新しいデバイスを自動的に認識する。他のノードは、追加されたデバイス上のサービスを利用することができる。新しいPVRメディア・サーバも、少なくとも1つの他のPVRメディア・サーバが現在ネットワーク上にある限りは、新しいデバイスを自動的に認識することができる。
図9は、本発明の一実施形態に従ったテレビジョン信号のクライアント・デバイス集約を示す図である。この例では、3台のPVRメディア・サーバ(910、920、および930)がホーム・ネットワーク940に結合される。図9に示すように、各PVRメディア・サーバは少なくとも1台のチューナを有する。例えば、PVRメディア・サーバ930は3台のチューナ(932、934、および936)を有する。さらに、PVRメディア・サーバは様々なメディア・アイテムを格納することができる(例えば、ビデオ、オーディオ、写真など)。またこの例では、クライアント・デバイス950はホーム・メディア・ネットワーク940上に常駐する。クライアント・デバイス950はテレビジョンを備えることができる。
発見プロセスが完了すると、クライアント・デバイス950はホーム・ネットワーク940上で入手可能な番組を決定する。その結果、クライアント・デバイス950は、クライアント・デバイス950で使用するためにすべてのチューナからの番組を集約する。図9に示すように、クライアント・デバイス950はPVRメディア・サーバ910、920、および930を介して入手可能なすべての番組を集約する。
【0021】
ネットワーク化PVRシステムは、すべての番組を固有として識別する機能を提供する。例えば、「コメディ」のジャンルに分類されたすべての番組がそのようなものと認識され、システムはそれに応じて表示する。同じ名前の2人以上の俳優が存在する場合がある。ネットワーク化PVRシステムは、システムが固有の番組を区別できるようにする分散型データベースを利用する。それ故、2つの異なるテレビジョン・サービス・プロバイダにわたって1つの番組が提供されている場合、クライアント・デバイスを集約する際に、クライアント・デバイスは単一の番組のみを認識する。図9の例では、映画「アメリカ最高の映画」はPVRメディア・サーバ920およびPVRメディア・サーバ910の両方を介して提供される。クライアントの番組集約の際、クライアント・デバイス950は、PVRメディア・サーバ910および920の両方を介して提供される映画「アメリカ最高の映画」を同じ番組として認識する。それ故、クライアント・デバイス350は、映画「アメリカ最高の映画」を単一の番組としてのみ認識する。
基礎となるプロトコルは、クライアント・デバイスがホーム・ネットワーク上のデバイスからの番組を集約できないようにするだけのものである。プロトコルそのものは、分散型システムをサポートするための要件を有していない。ネットワーク化PVRシステムのこの実施形態では、集約論理は非分散型プロトコルを使用して分散型システムを作成する。集約論理は、複数のプロトコルを使用してホーム・ネットワーク上でデバイスを統合する。
図10は、ネットワークを介した番組のクライアント集約に関する一実施形態を示すフローチャートである。最初にクライアント・デバイスは、ホーム・ネットワーク上のデバイス(例えば、PVRメディア・サーバ)を発見する(図10、ブロック1010)。ホーム・ネットワーク上のデバイスを発見するための一実施形態について、以下でより詳細に説明する。クライアント・デバイスは、発見プロセスで習得した情報に基づいて、開発されたデバイスに関する状態情報を構築する(図10、ブロック420)。クライアント・デバイスは、メディア・アイテムに関する要求を受け取る(図10、ブロック430)。集約論理は、集約論理の上で動作するソフトウェア構成要素から要求を受け取る。例えば、クライアント・デバイスは、ユーザ・インタフェースを動作させるテレビジョンを備えることができる。ユーザはリモート・コントロール・デバイスを使用して、ホーム・ネットワーク上で入手可能な、ライブであるかまたは事前に録画されたかのいずれかの、すべてのテレビ番組のリストを要求することができる。この例では、ユーザ・インタフェース上のアプリケーション論理が番組に関する要求を変換し、この要求を集約論理に転送する。
クライアント・デバイスの集約論理は、選択された番組を提供するすべてのPVRメディア・サーバから番組の情報を獲得する。例えば、クライアントが特定のジャンル(例えば、コメディ)にテレビジョン番組を要求した場合、クライアント・デバイスはすべてのPVRメディア・サーバから入手可能なそのジャンルに分類されたすべての番組を獲得する。この動作は、図10に示されている(ブロック1040、1050、1060、1070、および1080)。より詳細に説明すると、特定のPVRメディア・サーバを選択するための識別子(すなわち、n=0)が設定される(図10、ブロック440)。クライアント・デバイスは、発見プロセス中に獲得した状態情報を使用して、選択されたPVRメディア・サーバ(例えば、PVRメディア・サーバ[0])に接続する(図10、ブロック1050)。より詳細に説明すると、クライアント・デバイスは番組に関する要求を選択されたPVRメディア・サーバによってサポートされるプロトコルに変換し、この要求をPVRメディア・サーバに転送する。一実施形態では、クライアント・デバイスは選択されたPVRメディア・サーバ上のサービスを呼び出して番組を取得する(図10、ブロック1060)。一実施形態では、クライアント・デバイスは、PVRメディア・サーバ上のコンテンツ管理サービスを呼び出して、入手可能なプログラムのリストを獲得する。ホーム・ネットワーク上で入手可能なPVRメディア・サーバが他にもある場合、クライアント・デバイスは新しいPVRメディア・サーバを識別して番組を獲得する(図10、ブロック1070および1080)。クライアント・デバイスがすべての使用可能なPVRメディア・サーバから番組のリストを獲得すると、プロセスは完了する。
【0022】
図11は、ネットワーク化PVRシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。ソフトウェア構成要素500は、最高位にアプリケーション・ソフトウェア502を含む。アプリケーション・ソフトウェア502は、基礎となるデバイスの機能を実施する。例えば、アプリケーション・ソフトウェア502は、DVDプレーヤの機能を実施することができる。図11に示すように、アプリケーション・ソフトウェア502の下に集約論理520がある。前述のように、集約論理520は、クライアント・デバイスがホーム・ネットワーク上のメディア・アイテムおよびテレビジョン番組を集約できるようにするものである。
ソフトウェア構成要素500は、ユーザ・インタフェース(「UI」)レンダリング論理510も含む。UIレンダリング構成要素510は、シーン情報をクライアント・デバイス上での表示に好適な表示情報に変換する。UIレンダリング構成要素510は、表示データもレンダリングする。例えば、基礎となるクライアント・デバイスがテレビジョン・ディスプレイ(例えば、CRT)を含む場合、UIレンダリング・エンジン510はシーン情報からグラフィックス・データを生成し、このグラフィックス・データをテレビジョン・ディスプレイ上でレンダリングする。
図11に示すように、クライアント・デバイスは1つまたは複数のネットワーク・プロトコルおよびリモート・プロシージャ・コール(「RPC」)メカニズムを組み込む。例えば、図11は、ネットワーク・プロトコルA(1125)、ネットワーク・プロトコルB(1130)、およびネットワーク・プロトコルn(1135)をサポートするクライアント・デバイスを示す。この例では、クライアント・デバイス・ソフトウェア500はRPCメカニズムA(1140)、RPCメカニズムB(1145)、およびRPCメカニズムn(1150)をサポートする。
クライアント・デバイス・ソフトウェア500は1つまたは複数のサービスをサポートする。図11に示すように、インタフェースを介してサービスの1つまたは複数の方法にアクセス可能である。一般に、方法は呼び出されると、基礎となるサービスに特有の機能を提供する。この例では、クライアント・デバイス・ソフトウェア500はサービスA(555)、サービスB(560)、およびサービスn(565)を含む。各サービスは1つまたは複数の方法(すなわち、方法(1)〜方法(n))に関連付けられる。
【0023】
一実施形態では、ネットワーク化PVRシステムは複数の基礎となるプロトコルをサポートする。一般に、プロトコルは、コマンド、RPCメカニズム、およびサービスへのインタフェースを定義する。一実施形態では、ネットワーク化PVRシステムは、業界定義のUPnPプロトコルをサポートする。一般に、UPnPプロトコルは、IPネットワークを介した発見、RPCメカニズム、およびサービスを活動化するためのインタフェースを定義する。UPnPサービスには、コンテンツ・ディレクトリ・サービス、接続マネージャ・サービス、オーディオ/ビデオ(「A/V」)トランスポート・サービス、およびA/Vコントロール・サービスが含まれる。 一実施形態では、ネットワーク化PVRシステムは独自所有プロトコル(すなわち、非業界標準プロトコル)もサポートする。この実施形態では、独自所有プロトコルはネットワーク発見プロセス、RPCメカニズム、およびサービスへのインタフェースを定義する。サービスには、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびPVRコントロール・インタフェースが含まれる。コンテンツ・マネージャ・サービスによって、クライアント・デバイスはデータベースにインタフェースすることができる。より詳細に説明すると、クライアント・デバイスはコンテンツ・マネージャ・サービスを使用して、他のネットワーク・デバイス上のデータベースから情報(例えば、メディアを識別するためのURL、メタデータなど)を抽出することができる。それ故、コンテンツ・マネージャ・サービスは、ネットワーク化PVRシステムのデバイスにデータベースを照会するための手段を提供する。メディア・プレーヤ・サービスは、再生機能を可能にするインタフェースを定義する(例えば、メディア・ストリームの始動およびコントロール)。PVRコントロール・インタフェースは、非格納オブジェクト上でのメディアのストリーミングを可能にする。さらに、PVRコントロール・インタフェースは、ユーザが現在の番組の録画ならびに今後の番組の録画スケジューリングをできるようにする。 一実施形態では、独自所有プロトコルでの発見プロセスが非同期ベースのメッセージングを実施する。発見プロトコルは、パケット・ベースのメッセージングをサポートする任意のネットワーク上、または直列化ネットワーク上で動作する。一実施形態では、発見プロトコルは、「announce」コマンド、「discovery」コマンド、および「bye−bye」コマンドを含む。announceコマンドは、デバイスがその存在をホーム・メディア・ネットワーク上に告知するために使用される。discoveryコマンドは、告知の要求である(すなわち、何らかのクライアント・デバイスがホーム・ネットワーク上にあるかどうかを照会する)。「bye−bye」コマンドは、クライアント・デバイスがネットワークから離れることを告知するために、クライアント・デバイスによって使用される。一実施形態では、2種類の告知と2種類の「bye−bye」コマンドとがあり、1つはデバイス用、1つはサービス用である。
【0024】
一時実施形態では、独自所有プロトコルによってサポートされるRPCメカニズムはパケット・ベースのプロトコルを使用する。サービスは、ホーム・ネットワーク上のデバイスが適切な引数でRPCベースのパケットを構築できるようにするための、方法および識別番号を含む。一般に、RPCメカニズムは、デバイスがネットワーク上の他のデバイスをコントロールできるようにするものである。プロトコルは、要求および応答を介して達成される。RPCパケットはヘッダを含む。一実施形態では、ヘッダは、バージョン情報、コマンド・クラス(特定サービスへのマップ)、コマンド(デバイスが要求している方法、または方法からの応答)、識別(要求の識別、または要求に対応する応答の識別)、および長さを含む。RPCプロトコル・フォーマットは、ヘッダの次にデータ(すなわち、要求に関する引数および応答に関する戻り値)を指定する。
図12は、ネットワーク化PVRシステムに関するホーム・ネットワークの一例を示すブロック図である。この例では、ホーム・ネットワークはPVRメディア・サーバ1250、DVDプレーヤ1240、およびPVRメディア・サーバ1230を含む。テレビジョンを含むクライアント・デバイス(1210)はホーム・ネットワーク620に入り、サポートしているプロトコルを使用して3つのデバイス(例えば、PVRメディア・サーバ1250、DVDプレーヤ1240、およびPVRメディア・サーバ1230)を発見する。図12に示すように、クライアント・デバイス1210は、ホーム・ネットワーク1220上で発見されたそれぞれのデバイスに関する状態情報を格納する。より詳細に説明すると、クライアント・デバイス1210は、デバイス1(PVRメディア・サーバ1230)についての、サポートしているネットワーク・プロトコル(すなわち、ネットワーク・プロトコルA)ならびにデバイスによってサポートされるサービス(すなわち、サービスAおよびサービスC)のリストを格納する。ネットワーク・プロトコルは、PVRメディア・サーバ1230上でリモート・プロシージャ・コールを実行するためのRPCメカニズムも指定する。同様に、デバイス2(すなわち、DVDプレーヤ1240)についての状態情報は、デバイス2がネットワーク・プロトコルAをサポートし、サービスAおよびサービスBを実施することを示す。デバイス3、すなわちPVRメディア・サーバ1250は、ネットワーク・プロトコルCをサポートし、サービスAおよびサービスBを実施する。
図12に示すように、各サービス(例えば、サービスA、サービスB、およびサービスC)はインタフェースをサポートする。インタフェースは、サービス内の方法またはコマンドにアクセスするための手段を提供するための仕様を定義する。したがって、クライアント・デバイス1210は、それぞれのインタフェースを介してPVRメディア・サーバ1250上のサービス(サービスAまたはサービスB)を利用する。PVRメディア・サーバ1230、DVDプレーヤ1240、およびPVR−サーバ1250は、すべてサービスAを実施することに留意されたい。サービスAに対する各インタフェースは同一であり、サービスへの均一のアクセス可能性を許可する。しかし、各デバイスでのサービスAの実施は異なる場合がある。
【0025】
一実施形態では、ネットワーク化PVRシステムの実施によってセキュリティが提供される。この実施形態では、announcementコマンドがオープン・エンドであるため、プロトコルは通信に関する最低限の仕様のみを定義する。したがって、告知プロトコルは、TCPおよびsecure socket layer(「SSL」)を含む、複数のネットワーク仕様をサポートすることができる。プロトコルは、TCP/IPネットワーク上での実施をサポートする。さらに、プロトコルは、TCP/IPネットワーク上で動作するSSLもサポートする。SSLは、認証を含む、ネットワーク上での2当事者間のセキュアな通信を可能にする。
独自所有プロトコルは、部分的なセキュリティを使用する実施も可能にする。この実施形態では、サービスはセキュアな通信を必要とするいくつかの方法と、セキュアな通信を必要としない他の方法とを含むことができる。それ故、いくつかの方法では、SSL技術を利用して、ホーム・ネットワーク上の2つのデバイス間でのセキュアな通信を実現する。
【0026】
発見
図13は、ネットワーク化PVRシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。新しいデバイス(すなわち、現在ネットワークに接続されていないデバイス)がホーム・メディア・ネットワークに接続される(図13、ブロック1310)。ネットワーク上で通信するために、新しいデバイスはネットワーク・アドレスを取得する(図13、ブロック1320)。例えば、IPネットワークでは、クライアントはIPアドレスを必要とする。基礎となるネットワークがTCP/IPをサポートする場合、クライアント・デバイスはDHCPサーバがあるかどうかを判別する。DHCPサーバがある場合、これが新しいデバイスにIPアドレスを割り当てる。DHCPサーバがない(すなわち、新しいデバイスにIPアドレスを割り当てる際にDHCPサーバが使用できない)場合、新しいデバイスはプールからIPアドレスを選択し、ホーム・ネットワーク上の任意の他のデバイスがそのIPアドレスを有するかどうかを判別する。そのIPアドレスを有する他のデバイスがネットワーク上にない場合、クライアント・デバイスはこのIPアドレスを使用する。この自動IPアドレス指定のプロセスによって、単一サブネット内でホーム・ネットワーク上の通信が可能になる。 新しいデバイスは、ネットワークを介して「announcement」コマンドを伝送する(図13、ブロック1330)。announcementコマンドのフォーマットは、デバイスがサポートするプロトコルに準じる。新しいデバイスは、ネットワークを介してannouncementコマンドをブロードキャストまたはマルチキャストすることができる。例えば、IPネットワークでは、新しいデバイスは、ホーム・ネットワークがゲートウェイを含む場合、サブネットを拡張するためにannouncementをマルチキャストすることができる。マルチキャスト・フォーマットを使用して、特定のIPアドレスを指定する(例えば、新しいデバイスに関連するかまたはこれに適合する、ネットワーク上のデバイスにのみ、announcementを伝送する)。本明細書で使用する適合デバイスとは、クライアント・デバイスとの通信に関与できるデバイスのことである。
新しいデバイスのannouncementコマンドに応答して、新しいデバイスは状態情報を構築する。一般に、状態情報は、ネットワーク上で使用可能なデバイスに関する詳細を提供する。状態情報には、それらのデバイスによってサポートされるプロトコルおよびサービスが含まれる。ネットワーク上の適合デバイスがannouncementコマンドを受け取ると、それらの適合デバイスはannouncementコマンドに封入された情報をローカル・キャッシュに追加することができる。 ネットワーク上に適合デバイスがない場合、または新しいデバイスがネットワーク上のサービスの利用を望まない場合、プロセスは終了する。例えば、新しいデバイスがテレビジョンである場合、適合デバイスは、ビデオ(例えば、DVD、MPEGなど)を格納しており、ライブまたは事前に録画されたテレビジョンを提供する、PVRメディア・サーバを含む。ネットワーク上に他の適合デバイスがある場合、それらのデバイスは新しいデバイスに1つまたは複数のサービスを公表する(図13、ブロック1350)。ネットワーク上のサービスを発見するために、新しいデバイスはdiscoveryコマンドを伝送し、応答を待つ。この例では、ライブ・テレビジョンを提供するPVRメディア・サーバが、新しいデバイスがPVRメディア・サーバによって提供される番組(例えば、テレビジョン・サービス・プロバイダによって提供される番組)を集約できるようにするためのインタフェースを公表する。
【0027】
要求(例えば、新しいデバイス・アプリケーション論理)に応答して、新しいデバイスはサポート・プロトコルを介して適合デバイスに接続する(図13、ブロック760)。より詳細に説明すると、デバイスは状態情報を使用して該当するデバイス用のプロトコルを変換する。例えば、適合デバイスが業界標準プロトコルをサポートする場合、新しいデバイスはそのデバイスと通信するための業界標準プロトコルを選択する。新しいデバイスは、適合デバイス上のサービスを利用する(図13、ブロック1370)。
ホーム・ネットワークに入るPVRメディア・サーバは、発見プロセスの一例である。この例では、PVRメディア・サーバはネットワーク・アドレスを取得した後、ネットワークを介してannouncementコマンドを伝送する。PVRメディア・サーバはサポートしているサービス(例えば、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびPVRコントロール・インタフェース)を告知し、それらのサービスにアクセスできるようにするためにネットワーク・クライアントへのインタフェースを公表する。デバイスはネットワークに入ると、サーバからの告知を待つ。クライアントはPVRメディア・サーバを識別すると、announcementコマンドでサーバが指定したプロトコルを介してPVRメディア・サーバに接続する。このプロセスにより、クライアント・デバイスは、PVRメディア・サーバ上のメディアおよび番組をナビゲートすることができる。クライアント・デバイスは、サポート・プロトコルを使用して再生デバイス(例えば、テレビジョン)それ自体または他の再生デバイスに接続し、PVRメディア・サーバ上で入手可能な番組からユーザが選択した番組を再生するように、再生デバイスに指示する。
【0028】
ネットワーク化PVRデータ・モデル
ネットワーク化PVRシステムは、データ・モデルと共に動作する。基礎となるデータベースのフォーマットおよび配置構成は、ネットワーク化PVRシステムによって定義されるものではない。データ・モデルでは、オブジェクト(例えば、メディア・アイテム)がデータベース内に固有の識別を有する。オブジェクトは関連する「タイプ」(例えば、チャンネル、時間帯、連続番組、およびショー)も有する。データ・モデルは、オブジェクトおよびタイプ間での構造および階層を定義するための関係を定義する。
図14は、ネットワーク化PVRシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。この実施形態では、多くのサービス・プロバイダが単一のMSOパッケージにマッピングされる。一般に、MSOパッケージはテレビジョン番組に関するデータ(例えば、時間、チャンネル、コンテンツなど)を定義する。データはMSOパッケージをチャンネルにマッピングするために抽出される。チャンネル・データ・オブジェクトは、使用可能なすべてのチャンネルを定義する。図14に示すように、各チャンネルが複数の時間帯にマッピングする。連続番組データ・オブジェクトは、1つまたは複数の時間帯にマッピングされる。連続番組データ・オブジェクトは、ある番組の個々の連続番組それぞれを識別する。次に、連続番組データ・オブジェクトは1つまたは複数の連続番組を1つのショーにマッピングする。俳優データ・オブジェクトは、俳優を識別するために各連続番組にマッピングされる。また、ジャンル・データ・オブジェクトを使用して、ショーがジャンル別に分類される(例えば、コメディ、ドラマ、アクション、スポーツなど)。
一実施形態では、ネットワーク化PVRシステム用のデータベースは、リレーショナル・データベース(例えば、キー値ペア・データベースまたは標準照会言語(「SQL」)データベース)を備える。この実施形態では、データベースはリレーショナル・データベースに格納するためにオブジェクトをマッピングする。ネットワーク化PVRシステムの一実施形態ではリレーショナル・データベースを利用するが、本発明の精神または範囲を逸脱することなく他のデータベースを使用することができる。
【0029】
図15は、ネットワーク化PVRシステムでのデータ・ストアへのアクセスの一実施形態を示すブロック図である。クライアント・デバイス1510はホーム・ネットワーク1520に接続される。図15に示すように、デバイス1530およびデバイス1540もホーム・ネットワーク1520に結合される。デバイス1540は、図15でデータベースBとラベル表示された永続データ・ストアを含む。同様に、デバイス1530は永続データ・ストア、データベースAを含む。デバイス1530および1540は、永続データ・ストア内の情報にアクセスできるサービスをサポートする。一実施形態では、コンテンツ・マネージャ・サービスが使用される。より詳細に説明すると、コンテンツ・マネージャ・サービスAの第1の実施はデータベースAへのアクセスをサポートし、コンテンツ・マネージャ・サービスBの第2の実施はデータベースBへのアクセスをサポートする。
クライアント・デバイス1510は、データベースAおよびデータベースBから情報を取得することができる。データベースBを照会するために、クライアント・デバイス1510は、前述のような形でデバイス1540への接続を取得する。クライアント・デバイス1510は、コンテンツ・マネージャ・サービスBのインタフェースを介して方法を呼び出す。例えば、クライアント・デバイス1510は、ネットワーク化PVRシステムによって認識されるすべてのジャンルのリストを取得したい場合がある。この情報はデータベースBに格納されている可能性がある。クライアント・デバイス1510は、コンテンツ・マネージャ・サービスBのインタフェースに指定されたデータ・モデル・パラメータを使用して、要求を生成する。前述の例では、クライアント・デバイス1510はタイプ「ジャンル」のすべてのオブジェクトを識別するために、コンテンツ・マネージャ・サービスBへの要求を生成する。この要求に応答して、クライアント・マネージャ・サービスBは、「ジャンル」のデータ・モデル概念をデータベースBに適合する照会に変換する。例えば、データベースBがSQLをサポートしている場合、コンテンツ・マネージャ・サービスBは、タイプ「ジャンル」のテーブル内のすべての記録を取得するために、データベースBへのSQL要求を生成する。
コンテンツ・マネージャ・サービスの実施は、ネットワーク化PVRシステム・データ・モデルから基礎となるデータベース実施への変換を実行する。図15に示された例では、コンテンツ・マネージャ・サービスAはデータベースAへの第1の変換をサポートし、コンテンツ・マネージャ・サービスBはデータベースBに格納されたデータに関する要求の第2の変換をサポートする。したがって、クライアント・デバイス1510は、両方のコンテンツ・マネージャ・サービス上のインタフェースによって定義されたものと同じ要求を使用して、異なるデータベース実施(例えば、データベースAおよびデータベースB)にアクセスする。
【0030】
一実施形態では、ネットワーク化PVRシステムはデータベースを使用して実施される。一般に、データベースは、オブジェクトと、それらのオブジェクトに関連付けられた属性と、それらのオブジェクト間の関連とを格納する。例えば、データベースは、メディア・スペース内で入手可能なテレビジョン番組の識別を格納する。データベースは各オブジェクトに関する1つまたは複数の属性を関連付けるために、複数の属性を格納する。一実施形態では、オブジェクトは含む。それ故、あるトラックを1つまたは複数のアルバム、1人または複数のアーティスト、1つまたは複数のジャンル、および1つまたは複数のプレイリストに関連付けることができる。属性には、タイトル、作成日、および複数の関連するメディア・ファイルが含まれる。それ故、トラックは、関連するアルバム・アート、歌詞などを有することができる。
ネットワーク化PVRシステム・データベースは、オーディオ・トラックを非常に多様な形で分類することができる。例えば、ユーザは、ユーザが音楽を2つの異なるタイプのジャンル(例えば、ロックおよびブルース)と関連付けているために、トラックまたはアルバム(すなわち、トラックの集まり)を複数のジャンルに分類したい場合がある。また、ある音楽トラックは、2人のアーティスト間のコラボレーションの結果である場合がある。このトラックを適切に分類するために、ネットワーク化PVRシステムのユーザは、トラックを2人の異なるアーティストに関連付けることができる。上記の例で示すように、ネットワーク化PVRシステムは、音楽の分類および編成に柔軟性を提供する。
ネットワーク化PVRシステムは、各分類または項目を別個のオブジェクトとして扱う。例えば、音楽アプリケーションの場合、プレイリスト、ジャンル、アーティスト、アルバム、およびトラックは、すべて個々のオブジェクトとして扱われる。項目の編成および分類に対して独立したオブジェクトをサポートするこの機能では、音楽の編成および分類に柔軟性を提供する。例えば、ユーザは、第1のプレイリスト全体が第2のプレイリストに含まれるような、ネストされたプレイリストを作成することができる。従来技術の音楽システムでは、プレイリストをトラックごとに処理するのみである。こうした従来技術のシステムでは、プレイリストはトラックのみで構成される。ネットワーク化PVRシステムでは、プレイリストはどのような「オブジェクト」を含むこともできる。それ故、プレイリストは1つまたは複数のアーティスト、ジャンル、アルバム、または他のプレイリストから作成することができる。
【0031】
音楽の編成および再生でオブジェクトを使用することによって、同じ名前のアーティストを異なる者として扱うこともできる。従来技術のデジタル音楽システムは、アーティストを識別するためにメタデータを格納する。ユーザがこれら従来技術のシステムを使用してメタデータ上で検索を実行する場合、システムが同じ名前のアーティストを区別する方法はない。ネットワーク化PVRシステムでは、各アーティストは1つのオブジェクトとして扱われる。それ故、同じ名前の2人のアーティストは2つの別個のオブジェクトであり、2人の別々のアーティストとして操作することができる。 ネットワーク化PVRシステムは、分散型反復器(iterator)を利用する。データベースへの照会に対する応答によって、大量のデータが生成される可能性がある。一実施形態では、ネットワーク化PVRシステム・プロトコルは、データの一部を伝送し、送信されたデータを識別するためのポインタを維持することをサポートする。一実施形態では、プロトコルは反復器を使用する。ネットワーク化PVRシステムが反復器を使用することで、システムは1つのデバイスから他のデバイスへ転送されたデータの一部(例えば、リスト)を追跡することができる。反復器は、データの転送中にデータベース内の項目が変更された場合、反復器が動的に変化するように実施される。一般に、反復器は、アレイ内の位置を指定する。リストはデータベースからの結果である。例えば、データベースに対する照会への応答によって、オーディオ・トラックのリストを生成することができる。そのため、例示的な照会の一部として抽出されたオーディオ・トラックを削除することができる。他のシナリオでは、照会によって指定されたオーディオ・トラックをデータベースに追加することができる。
ネットワーク化PVRシステムが独自所有プロトコルおよびTCP/IPネットワークを使用して実施された場合、システムはデータベース情報に関する要求に状態を関連付ける。この状態情報が反復器情報を維持するために利用される。 以上、本発明について特定の例示的実施形態に関して説明してきたが、当業者であれば、本発明の精神および範囲を逸脱することなく、様々な修正および変更が可能であることを理解されよう。
【技術分野】
【0001】
本発明は、ビデオ録画の分野に関し、特にネットワーク化パーソナル・ビデオ録画システムに関する。
【背景技術】
【0002】
通常、パーソナル・ビデオ・レコーダ(「PVR」)には、ハード・ディスク・ドライブなどのストレージ・デバイスとテレビジョン入力が含まれる。ビデオ・カセット・レコーダと同様に、PVRシステムはユーザがテレビジョン番組を録画できるようにするものである。より詳細に説明すると、PVRシステムは、テレビジョン信号のデジタル表現をユーザが後で再生するためにストレージ・デバイスに格納する。PVRシステムは、また、ライブ・テレビジョンもバッファリングする。この用途では、テレビジョン信号はストレージ・デバイスに格納され、ユーザが視聴するためにテレビジョンに出力される。テレビジョンをバッファリングする機能により、ユーザは表面上ライブのテレビジョンを操作することができる。例えば、ユーザは、ライブのテレビジョン信号を一時停止、巻き戻し、および限られた範囲内で早送りすることができる。多数の機能および特徴により、PVRシステムはかなり普及してきている。しかし、これらのPVRシステムは、通常、後に単一のテレビジョンで表示するために単一のテレビジョン信号で動作する。
【発明の概要】
【課題を解決するための手段】
【0003】
したがって、1つまたは複数のテレビジョン入力をテレビジョン・ネットワークに効果的に統合するPVRシステムの開発が望まれる。
ネットワーク化パーソナル・ビデオ録画(「PVR」)システムは、ネットワークを介して複数のクライアントを1つまたは複数のPVRメディア・サーバに結合するものである。PVRメディア・サーバは複数のテレビジョン信号を受信し、それぞれのテレビジョン信号を調整するためのテレビジョン・チューナを含む。一実施形態では、PVRメディア・サーバは、単一のPVRメディア・サーバ内に配置された複数のチューナを備える。他の実施形態では、チューナは複数のPVRメディア・サーバ内に配置される。記憶媒体は、PVR機能を実施するためにテレビジョン信号をバッファリングする。テレビジョン・チューナにクライアントが割り当てられ、クライアントは割り当てられたチューナで受信されたテレビジョン番組を表示する。ネットワークは、バッファリングされたテレビジョン信号をクライアントに転送する。
一実施形態では、PVRメディア・サーバは少なくとも1つのテレビジョン番組をクライアント用に録画する。番組を録画するために、システムはクライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中にテレビジョン信号を記憶媒体に格納する。システムは、また、テレビジョン番組を録画するために使用可能なチューナを割り当てる際に生じる競合も解決する。一実施形態では、システムは、チューナの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは、テレビジョン信号を受信するためにそのチューナを割り当てる。使用可能でない場合、システムは潜在的に使用可能なチューナがあるかどうかを判別し、そのチューナに割り当てられたクライアントに対して、クライアントがテレビジョン番組の録画キャンセルを希望するかどうかを判別するために照会する。クライアントがキャンセルしない場合、システムは、テレビジョン番組の録画用にテレビジョン信号を受信するチューナを割り当てる。
【0004】
PVRメディア・サーバは、メディア・ストリームに対して少なくとも2つの独立したバッファ位置を生成する。PVRメディア・サーバは、少なくとも1つのメディア・ストリームを受信するための少なくとも1つの入力と、少なくとも一部のメディア・ストリームを格納するための記憶媒体とを含む。PVRメディア・サーバは、メディア・ストリームを表示することが可能な複数のクライアントに(例えば、ネットワークを介して)結合される。PVRメディア・サーバは、第1の位置を使用して第1のクライアント用のメディア・ストリーム内の場所を識別し、第2の位置を使用して第2のクライアント用のメディア・ストリーム内の場所を識別する。位置は互いに独立している。メディア・ストリームは、第1の位置に基づいて第1のクライアントへ、および第2の位置に基づいて第2のクライアントへ、ネットワークを介して配信される。
PVRシステムは、複数のソースからのテレビジョン番組情報を集約する。PVRシステムは、少なくとも1つのPVRメディア・サーバを含む。ネットワークは、複数のクライアントをPVRメディア・サーバに結合する。PVRメディア・サーバは、複数のチューナでテレビジョン信号を調整する。テレビジョン信号は、記憶媒体にバッファリングされる。テレビジョン番組情報を集約するために、クライアントは、ネットワーク上のそれぞれのPVRメディア・サーバに対してテレビジョン番組のリストの要求を生成する。これに応答して、PVRメディア・サーバは、それぞれのPVRメディア・サーバを介して使用可能なテレビジョン番組のリストを伝送する。要求元のクライアントは、PVRシステム内で使用可能なテレビジョン番組情報のリストを集約する。
【0005】
一実施形態では、PVRシステムは、複数のPVRメディア・サーバ、複数のテレビジョン・チューナ、および/または複数のテレビジョン・サービス・プロバイダをまたがって、テレビジョン番組のリストを集約する。テレビジョン番組情報は、ライブ・テレビジョン、または以前に記憶媒体に格納されたテレビジョン番組の、いずれかを識別することができる。PVRシステムは、テレビジョン番組を集約して、情報をチャネル別、時間帯別、テレビジョン・ショーのジャンル別、テレビジョン・ショーの連続番組(episode)別、およびテレビジョン・ショーに登場する俳優別に情報を表示することができる。
PVRシステムは、複数のクライアントに関するリソースを管理する。システムは、少なくとも1つのPVRメディア・サーバを含む。PVRメディア・サーバは、テレビジョン信号を調整するためのチューナと、テレビジョン信号をバッファリングするための記憶媒体とを含む。クライアントは、ネットワークを介してPVRメディア・サーバに結合される。クライアントは、PVRシステム・サービスに関する要求を生成する。一実施形態では、クライアントは、テレビジョン番組を録画する旨およびバッファリングされたライブ・テレビジョンを視聴する旨の要求を生成する。システムは、要求に応答して、クライアントにサービスを配信するためにPVRシステムのリソースを適宜クライアントに割り振る。例えば、クライアントがバッファリングされたライブ・テレビジョンを視聴したい場合、システムは、クライアントにチューナを割り当て、クライアント側でテレビジョン信号を再生するために、テレビジョン信号内のある場所を識別するためのバッファ位置を生成し、そのバッファ位置を使用してテレビジョン信号を配信する。クライアントがテレビジョン番組を録画したい場合、システムは、クライアントにチューナを割り当て、テレビジョン番組を録画するために記憶媒体上のスペースを割り振り、テレビジョン番組用にスケジューリングされた時間中に記憶媒体にテレビジョン信号を格納する。
【0006】
一実施形態では、システムはシステム・リソースに関する競合を解決するよう試みる。例えば、クライアントが選択したチャンネルでバッファリングされたライブ・テレビジョンを視聴する旨要求した場合、システムはチューナのうちの1つがテレビジョン信号の受信に使用可能であるかどうかを判別する。使用可能である場合、システムは選択したチャンネルでテレビジョン信号を受信するためのチューナを割り当てる。使用可能でない場合、システムは、チューナの現在のチャンネルを選択されたチャンネルに変更するようにクライアントが希望するかどうかを判別するために、潜在的に使用可能なチューナに割り当てられたクライアントに照会することによって、ならびに、現在のチャンネルの変更をどのクライアントもキャンセルしない場合、選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てることによって、どのチューナが潜在的に使用可能であるかを判別する。他の実施形態では、システムは、テレビジョン番組を録画するために、チューナのうちの1つがテレビジョン信号を受信するために使用可能であるかどうかを判別することによって、割り当てリソースの競合を解決するように試みる。使用可能である場合、システムはテレビジョン信号を受信するためにチューナを割り当てる。使用可能でない場合、システムは、どのチューナが潜在的に使用可能であるかを判別し、クライアントがテレビジョン番組の録画のキャンセルを希望するかどうかを判別するために潜在的に使用可能なチューナに割り当てられたクライアントに照会し、テレビジョン番組の録画をキャンセルするクライアントがいない場合、テレビジョン信号を受信するために潜在的に使用可能なチューナを割り当てる。
例えば、本発明は以下の項目を提供する。
(項目1)
システム(200)であって、
テレビジョン信号を表示するための複数のクライアント(クライアント1〜クライアントn)と、
複数のテレビジョン信号を受信するために結合された、少なくとも1つのPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)であって、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、
上記クライアント(クライアント1〜クライアントn)のうちの少なくとも2台をテレビジョン・チューナ(チューナ1〜チューナn)のうちの1つまたは複数に割り当てるように、上記テレビジョン信号のそれぞれを調整するための複数のテレビジョン・チューナ(チューナ1〜チューナn)と、
上記テレビジョン信号をバッファリングするために上記テレビジョン・チューナ(チューナ1〜チューナn)に結合された記憶媒体(220、230、または240)とを備える少なくとも1つのPVRメディア・サーバと、
上記クライアント(クライアント1〜クライアントn)を上記PVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)に結合するため、および上記バッファリングされたテレビジョン信号を上記クライアント(クライアント1〜クライアントn)に転送するためのネットワーク(210)とを備えるシステム(200)。
(項目2)
上記少なくとも1つのPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)が、複数のチューナ(チューナ1〜チューナn)を備える単一のPVRメディア・サーバ(PVRメディア・サーバ1)を備える、項目1に記載のシステム(200)。
(項目3)
上記少なくとも1つのPVRメディア・サーバが、複数のPVRメディア・サーバ(PVRメディア・サーバ1〜PVRメディア・サーバ3)に配置された複数のチューナ(チューナ1〜チューナn)を備える、項目1に記載のシステム(200)。
(項目4)
さらに、上記記憶媒体(220、230、または240)が、上記テレビジョン番組を録画するように少なくとも1つのテレビジョン信号を格納するためのものである、項目1に記載のシステム(200)。
(項目5)
さらに、上記システム(200)が、チューナ(チューナ1〜チューナn)を上記クライアント(クライアント1〜クライアントn)に割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体(220、230、または240)上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体(220、230、または240)に格納するためのものである、項目4に記載のシステム(200)。
(項目6)
さらに、上記システム(200)が、上記テレビジョン信号に使用可能なチューナ(チューナ1〜チューナn)を割り当てるために競合を解決するためのものである、項目4に記載のシステム(200)。
(項目7)
さらに、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ(チューナ1〜チューナn)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目6に記載のシステム(200)。
(項目8)
さらに、第1のクライアント(クライアント1)に関して上記バッファリングされたテレビジョン信号のうちの選択された1つのうちのある場所を識別するために第1の位置を生成するため、および第2のクライアント(クライアント2)に関して上記選択されたバッファリングされたテレビジョン信号のうちのある場所を識別するために第2の位置を生成するためのものであり、上記第2の位置は上記第1の位置から独立している、項目4に記載のシステム(200)。
(項目9)
パーソナル・ビデオ録画(「PVR」)メディア・サーバ(PVRメディア・サーバ1)であって、
複数のテレビジョン信号を受信するための入力と、
上記テレビジョン信号のそれぞれを調整するための複数のチューナ(チューナ1〜チューナn)と、
上記テレビジョン信号をバッファリングするための記憶媒体(220)と、
ネットワーク(210)を介して複数のクライアント(クライアント1〜クライアントn)をPVRメディア・サーバ(PVRメディア・サーバ1)に結合するためのネットワーク・インタフェースとを備え、
上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記PVRシステムの少なくとも1つのサービスに関して少なくとも2台のクライアント(クライアント1〜クライアントn)のそれぞれから少なくとも1つの要求を受信するため、および上記サービスを上記クライアント(クライアント1〜クライアントn)に送達するために上記PVRシステム(PVRメディア・サーバ1)のリソースを上記クライアント(クライアント1〜クライアントn)に適宜割り振るためのものであるPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目10)
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記テレビジョン番組を録画するためのチューナを割り当てるため、上記テレビジョン番組を録画するために上記記憶媒体(220)上のスペースを割り振るため、および上記テレビジョン番組に関してスケジューリングされた時間中に上記テレビジョン信号を上記記憶媒体(220)に格納するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目11)
さらに、上記入力が、バッファリングされたライブ・テレビジョンを視聴するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記バッファリングされたライブ・テレビジョンを視聴するためのチューナを割り当てるため、クライアント(クライアント1〜クライアントn)で上記テレビジョン信号を再生するために上記テレビジョン信号内のある場所を識別するためのバッファ位置を生成するため、および上記バッファ位置を使用して上記テレビジョン信号を送達するように、上記テレビジョン信号を上記クライアント(クライアント1〜クライアントn)に転送するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目12)
さらに、上記入力が、特定のテレビジョン・サービス・プロバイダからテレビジョン信号を受信するための要求を受信するステップを含む、少なくとも1つの要求を受信するためものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記テレビジョン・サービス・プロバイダからテレビジョン信号を受信するために結合された1つまたは複数のチューナ(チューナ1〜チューナn)を識別するため、および識別された上記チューナ(チューナ1〜チューナn)からのチューナ(チューナ1)を上記クライアント(クライアント1〜クライアントn)に割り当てるためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目13)
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記クライアント(クライアント1〜クライアントn)へのリソースの割り当てにおける競合を解決するためのものである、項目9に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目14)
さらに、上記入力が、バッファリングされたライブ・テレビジョンを選択されたチャンネルで視聴するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記選択されたチャンネルで上記テレビジョン信号を受信するために上記チューナ(チューナ1)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記チューナ(チューナ1〜チューナn)の現在のチャンネルを上記選択されたチャンネルに変更したいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記現在のチャンネルの変更をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記選択されたチャンネルでテレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目15)
さらに、上記入力が、テレビジョン番組を録画するための要求を受信するためのものであり、
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、上記チューナ(チューナ1〜チューナn)のうちの1つが上記テレビジョン信号を受信するために使用可能であるかどうかを判別するためのものであり、
使用可能である場合、
上記テレビジョン信号を受信するために上記チューナ(チューナ1〜チューナn)を割り当てるためのものであり、
使用可能でない場合、
どのチューナ(チューナ1〜チューナn)が潜在的に使用可能であるかを判別するため、クライアント(クライアント1〜クライアントn)が上記テレビジョン番組の録画をキャンセルしたいかどうかを判別するために潜在的に使用可能な上記チューナ(チューナ1〜チューナn)に割り当てられた上記クライアント(クライアント1〜クライアントn)に照会するため、および上記テレビジョン番組の録画をキャンセルするクライアント(クライアント1〜クライアントn)がない場合、上記テレビジョン信号を受信するために潜在的に使用可能なチューナ(チューナ1〜チューナn)を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
(項目16)
さらに、上記PVRメディア・サーバ(PVRメディア・サーバ1)が、クライアント(クライアント1〜クライアントn)に割り当てられていないチューナ(チューナ1〜チューナn)に対して完全にフリーのチューナ状態を割り当てるため、クライアント(クライアント1〜クライアントn)に割り当てられているが現在はスケジューリングされた録画を実行していないチューナ(チューナ1〜チューナn)に対しておそらくフリーのチューナ状態を割り当てるため、および現在スケジューリングされた録画を実行しているチューナ(チューナ1〜チューナn)に対してビジーのチューナ状態を割り当てるためのものである、項目13に記載のPVRメディア・サーバ(PVRメディア・サーバ1)。
【図面の簡単な説明】
【0007】
【図1】本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。
【図2】本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。
【図3】ネットワーク化PVRシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。
【図4】ネットワーク化PVRシステムにおけるバッファに関する一実施形態を示すブロック図である。
【図5】ネットワーク化PVRシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。
【図6】本発明のネットワーク化PVRシステムを使用するための一実施形態を示すフローチャートである。
【図7】本発明のネットワーク化PVRシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。
【図8】番組を録画するための一実施形態を示すフローチャートである。
【図9】本発明の一実施形態に従ったメディアのクライアント・デバイス集約を示す図である。
【図10】ネットワークを介したクライアント・メディア集約に関する一実施形態を示すフローチャートである。
【図11】ネットワーク化PVRシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。
【図12】ネットワーク化PVRシステムに関するホーム・ネットワークの一例を示すブロック図である。
【図13】ネットワーク化PVRシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。
【図14】ネットワーク化PVRシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。
【図15】ネットワーク化PVRシステムを介したデータ・ストアへのアクセスの一実施形態を示すブロック図である。
【発明を実施するための形態】
【0008】
図1は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。この実施形態では、ホーム・エンターテイメント・システムが「n」台のクライアントおよび「m」台のパーソナル・ビデオ録画(「PVR」)メディア・サーバを含む(すなわち、「n」および「m」は1より大きいかまたは1に等しい任意の整数値である)。本明細書で使用するクライアントとは、メディアを再生する任意のデバイスのことである。例えば、クライアントがビデオおよびライブ・テレビジョンを再生するためのテレビジョンを有することができる。本明細書で使用するサーバとは、メディアを格納または獲得する任意のデバイスを意味する。PVRメディア・サーバとは、テレビジョン信号を獲得し、クライアントが視聴するためにテレビジョン信号をバッファリングするデバイスを含む、ビデオをネットワークに配信する任意のデバイスを意味する。例えば、PVRメディア・サーバは、特にコストを最低限に抑えるように設計されたストレージを備えたデバイスを備えることができるか、またはPVRメディア・サーバはパーソナル・コンピュータを備えることができる。
図1に示すように、テレビジョン信号を含む様々なタイプのメディアが各PVRメディア・サーバに入力される。PVRメディア・サーバは、クライアントがアクセスするためのオーディオおよびビデオを含むメディアを格納することができる。さらに、PVRメディア・サーバは、ライブ・テレビジョンをバッファリングする。各クライアント(例えば、クライアント1、クライアント2、およびクライアントn)は、ネットワーク110を介してPVRメディア・サーバ上に格納またはバッファリングされたメディアにアクセスすることができる。ネットワーク110は、無線ネットワークを含む任意のタイプのネットワークを有することができる。例えば、ネットワーク110は、IEEE 802.3、カテゴリ5のイーサネット(登録商標)10/100、HPNA、Home Plug、IEEE 802.11x、IEEE 1394、およびUSB 1.1/2.0などの規格に従って実施されるネットワークを有することができる。
図1に示すネットワーク化システム100は、住宅内で実施することができる。例えば、各クライアントは、格納されたビデオおよびテレビジョンを視聴するためのテレビジョンで構成することができる。こうしたホーム・システムの一例では、居間に配置されたクライアント・テレビジョンと、寝室に配置された1つまたは複数のクライアント・テレビジョンと、台所に配置されたクライアント・テレビジョンを含むことができる。一般に、システム100は、いずれかのPVRメディア・サーバを介して格納または獲得されたメディア(例えば、ビデオ)を任意のクライアントが再生できるようにする。PVRメディア・サーバは、様々なソースからテレビジョン信号を獲得するように構成できる。例えば、PVRメディア・サーバ1は衛星テレビジョン・システムからテレビジョン信号を獲得し、一方、PVRメディア・サーバ2は、ケーブル・テレビジョン・システムからテレビジョン信号を獲得することができる。PVRメディア・サーバは、永続ストレージ(例えば、ハード・ディスク・ドライブ)と少なくとも1つのテレビジョン・チューナとを含む。それ故、システム100は、任意のPVRメディア・サーバ上に格納された任意のチューナまたはメディアからのメディアに、任意のクライアントがアクセスできるようにする。
【0009】
図2は、本発明のネットワーク化PVRシステムに関する一実施形態を示すブロック図である。図1のシステム100と同様に、システム200は、少なくとも2台のテレビジョンを含む「n」台のクライアントを含む。このシステム例では、3台のPVRメディア・サーバ(PVRメディア・サーバ1、PVRメディア・サーバ2、およびPVRメディア・サーバ3)がある。クライアントはネットワーク210を介してメディア(例えば、ビデオ)にアクセスする。各PVRメディア・サーバは、ストレージ(220、230、および240)と、「n」台のチューナ(すなわち、「n」は1より大きいかまたは1に等しい任意の整数を表す)とを含む。PVRメディア・サーバはテレビジョン信号を受信する。この例では、PVRメディア・サーバ1およびPVRメディア・サーバ2はテレビジョン・サービス・プロバイダ1から信号を受信し、PVRメディア・サーバ3はテレビジョン・サービス・プロバイダ2からテレビジョン信号を受信する。この構成の下では、任意のクライアント(すなわち、クライアント1、クライアント2、およびクライアントn)が、任意のチューナ(すなわち、PVRメディア・サーバ1、PVRメディア・サーバ2、およびPVRメディア・サーバ3からの「n」台のチューナのうちの任意の1台)によって復調された出力ビデオ信号を受信することができる。
【0010】
図3は、ネットワーク化PVRシステムに関するテレビジョン信号のバッファリングの一実施形態を示すブロック図である。あらゆるチューナが連続するリング・バッファを有する。一実施形態では、リング・バッファのサイズはフレキシブルであり、構成可能である。例えば、リング・バッファは60分のテレビジョンを格納することができる。次に各クライアントは、システム内で使用可能なあらゆるリング・バッファおよび格納済みビデオに関する独立したバッファ位置を有する。図3は、「n」台のチューナを備えたネットワーク化PVRシステムの一例を示す。「n」台のチューナは、1台または複数台のPVRメディア・サーバと共に実施可能である。図3に示すように、各チューナの出力が対応するバッファ(例えば、リング・バッファ)に入力される。各クライアント、すなわちクライアント1〜nは、各チューナ−バッファのペアについて関連するバッファ位置を有する。具体的には、図3に示すように、クライアント1はチューナ1、チューナ2、およびチューナnに関するバッファ位置を有する。同様に、クライアントnもチューナ1〜nに関する独立したバッファ位置を有する。一般に、バッファ位置は、ビデオ内のある位置またはチューナ・バッファ内のある位置を指すポインタを有することができる。図3での各チューナ・バッファ位置はタイムラインとして示され、ここで開始および終了ライン・セグメントはバッファの長さを表し、中央ライン・セグメントはクライアントの現在のバッファ位置を表す。
ネットワーク化PVRシステムにおけるバッファは、1つの書き込みタップおよび複数の読み取りタップを含む。図4は、ネットワーク化PVRシステムにおけるバッファに関する一実施形態を示すブロック図である。チューナ410は、バッファ420に格納するためのデータ(例えば、MPEG符号化ビデオ)を出力する。一実施形態では、バッファはハード・ディスク・ドライブを有する。チューナ410は、ファイル・システムを使用してハード・ディスク・ドライブに書き込むことができる。他の実施形態では、チューナ410はハード・ディスク・ドライブ上で直接書き込み操作を実行することができる。バッファは複数の読み取りタップを有する。図4に示された例では、バッファは「n」個の読み取りタップを有する(すなわち、「n」は1より大きいかまたは1に等しい任意の整数を表す)。各読み取りタップは独立したバッファ位置をサポートする。例えば、読み取りタップ1はチューナ・バッファ位置1をサポートし、読み取りタップ2はチューナ・バッファ位置2をサポートし、読み取りタップnはチューナ・バッファ位置nをサポートする。ソフトウェアの一実施形態では、ソフトウェアは1ファイル上で複数の読み取り操作を実行し、複数のタップを生成する。
一実施形態では、システムは読み取りおよび書き込みバッファ・タップの相対的な位置で境界条件を設定する。1つの境界条件では、読み取りタップが書き込みタップよりもバッファ長さを超えて遅れないことを要求する。例えば、クライアントは、バッファ済みテレビジョン番組を第1のバッファ位置(すなわち、読み取りタップ)を使用して視聴することができる。この例では、クライアントはテレビジョン番組の視聴を一時停止することができる。この場合、第1のバッファ位置は一定である(すなわち、第1のバッファ位置は進行しない)。しかし、テレビジョン信号が受信されるにつれて書き込み位置は進行する。それ故、書き込みバッファ位置と読み取りバッファ位置との間の距離は増加する。読み取りバッファ位置と書き込みバッファ位置との間の距離がバッファの長さを超えた場合、イベントが生成される。イベントへの応答は、読み取りバッファ位置の進行とすることができる。また他のシナリオでは、読み取りバッファ位置が対応する書き込みバッファ位置まで前進した場合、読み取りバッファ位置が書き込みバッファ位置の場所になる(すなわち、読み取りバッファ位置は書き込みバッファ位置を越えて進行しない)。例えば、クライアントは現在の書き込み位置までバッファ・テレビジョン番組を早送りすることができる。
【0011】
図5は、ネットワーク化PVRシステムにおいてビデオを視聴するための一実施形態を示すフローチャートである。最初にユーザは、ライブTVを視聴するため、またはPVRメディア・サーバからメディアを選択するために、クライアント・テレビジョン上に表示されたメニュー・オプションを受信する(図5、ブロック520)。クライアントはライブ・テレビジョンの視聴を選択しないと、PVRメディア・サーバに格納されたメディアを選択する(図5、ブロック520および530)。次に、以下で論じるように、クライアントはシステムを介してバッファ位置を設定する。ユーザがライブ・テレビジョンの視聴を選択すると、クライアントはテレビジョン・サービス・プロバイダを選択する(図5、ブロック510)。クライアントが使用できるテレビジョン・サービス・プロバイダが1つだけの場合、システムはブロック510の機能を省略する。一実施形態では、サービス・プロバイダの選択はセットアップ・モード時に構成することができる。例えば、居間のテレビジョンは、衛星システムからテレビジョン信号を常時受信するように構成することができる。システムは、クライアント用のチューナを選択する(図5、ブロック540)。一実施形態では、システムは使用可能なチューナをクライアント・テレビジョンに自動的に割り振る。
ユーザは、クライアントで番組を視聴する(図5、ブロック580)。ユーザが番組を変更したい場合、クライアントは、クライアントで表示される電子番組ガイドから番組を選択する(図5、ブロック555および550)。ユーザが番組を変更したくない場合、ユーザは潜在的にバッファ位置を設定する。ユーザが既存のバッファ位置を有し、番組を既存のバッファ位置に設定したい場合、ユーザはメニューを介して既存のバッファ位置を選択する(図5、ブロック570および572)。クライアントが既存のバッファ位置を有していない場合、システムはファイル/メディアの先頭にバッファ位置を設定する(図5、ブロック570および574)。ユーザは、バッファ位置を既存のバッファ位置に変更したい場合がある(図5、ブロック560)。ユーザが番組を既存のバッファ位置に設定したい場合、ユーザはシステムを介してバッファ位置を変更する(ブロック565、図6を参照)。例えば、ユーザはすでに進行中の番組を選択する場合がある。このシナリオの場合、ユーザは番組を最初から視聴したい場合がある。これを実施する場合、ユーザは番組の最初から開始するために新しいバッファ位置を選択する。次に、ユーザはクライアントで番組を視聴する(図5、ブロック580)。
【0012】
一実施形態では、PVRメディア・サーバは、電子番組ガイド(「EPG」)と呼ばれる番組データをEPGコンテンツ・プロバイダから獲得する。EPGデータ・セットは、対応するテレビジョン・サービス・プロバイダから入手可能なチャンネルおよび時間を含む番組のリストを提供する。通常、EPGデータはサービスごとにEPGコンテンツ・プロバイダから提供される。PVRメディア・サーバは、EPGコンテンツ・プロバイダに接触して更新された番組データを獲得する。PVRシステムは、EPGデータを利用して番組のスケジューリングならびにクライアントへの番組メニューの提供を行う。それ故、この実施形態では、PVRシステム・スケジューラはEPGデータ・セットに特有のものである。しかし、家庭用メディア・ネットワーク化システムは、異なるEPGコンテンツ・プロバイダを利用する、したがって異なるEPGデータ・セットを使用して動作するサーバを含むことができる。この実施形態では、ユーザは基礎となるEPGデータ・セットに基づいてチャンネル選択メニューを視聴するだけである。それ故、クライアントで提示されるメニューは基礎となるPVRメディア・サーバに依存する。
一実施形態では、PVRシステムは、クライアントがテレビジョン・チューナの概念を理解する必要なしにテレビ番組を選択できるようにするものである。例えば、2台のクライアントが同じチューナから信号を受信している場合がある。このシナリオでは、クライアントのうちの一方が、他方のクライアントが現在のプログラムを視聴できることに影響を与えずに、異なる番組を視聴するためにチャンネルを変更したい場合がある。PVRシステムは、ユーザが追加の番組を選択できるようにするメニューを提供する。一実施形態では、番組メニューは特定のテレビジョン・サービス・プロバイダおよび対応するEPGコンテンツ・プロバイダに基づく。
一実施形態では、ユーザはテレビジョン・サービス・プロバイダ−EPGコンテンツ・データ・セット内の番組を選択する。クライアントは、好ましいテレビジョン・サービス・プロバイダを自動的に選択するようにシステムをセットアップすることができる。ユーザが新しいチューナを必要とする操作を実行する場合、ユーザは以前に選択されたEPGコンテンツ・プロバイダから番組を選択する。ユーザが新しい番組を選択した後、システムはユーザにチューナを割り振る。このシナリオでは、ユーザはチューナの概念を理解する必要がない。代わりに、クライアントは番組を選択するか、またはチューナの使用権を獲得するためにイベントを取り消すのみである。チューナがユーザへの割り振りに使用できない場合、システムは所定の「競合管理」手順を介して競合を解決する。ネットワーク化PVRシステムで発生する一定の競合を解決するための一実施形態について、以下でより詳細に説明する。
【0013】
ネットワーク化PVRシステムは、ユーザが異なるクライアントからバッファ位置を選択できるようにする。例えば、第1のクライアント(例えば、居間のテレビジョン)で番組を視聴しているユーザが別の部屋に行って、第2のクライアント(例えば、台所のテレビジョン)から第1のクライアントでの視聴が終わったその番組を選択する場合がある。このシナリオでは、ユーザは居間のクライアントで再生されている番組を、その後台所のクライアントで視聴するために一時停止することができる。図6は、本発明のネットワーク化PVRシステムを使用するための一実施形態を示すフローチャートである。このシナリオでは、ユーザはクライアントから視聴するための番組を選択する(図6、ブロック610)。その後ユーザは、その番組を異なるクライアントから選択したい場合がある。これを実施するために、ユーザは、選択された番組にチャンネルが合わされた他のクライアントを決定するために、PVRシステムに照会する(図6、ブロック620)。他のクライアントのチャンネルが選択された番組に合わされた場合、システムはその番組にチャンネルが合わされたクライアントのリストを表示する(図6、ブロック630および640)。上記のシナリオでは、ユーザは、居間で一時停止された番組を選択するように、台所のクライアントからPVRシステムに照会する場合がある。一実施形態では、ユーザは、「選択された番組を誰が視聴しているか」を決定するためにあるクライアントからメニュー項目を引き出す。これに応答して、PVRシステムは、選択された番組を現在再生しているクライアントの場所のメニューを表示する。上記の例の場合、PVRシステムは、選択された番組が現在居間で再生されていることを識別するために「居間のクライアント」を表示する。別の方法として、選択された番組にチャンネルが合わされているクライアントが他にない場合、バッファ位置はプログラムの先頭に設定される(図6、ブロック630および655)。
ユーザが他のクライアントのバッファ位置を選択したい場合、PVRシステムは、ユーザのクライアントのバッファ位置として使用するために選択されたクライアントからバッファ位置をコピーする(図6、ブロック650および660)。上記の例の場合、台所のクライアントにいるユーザは、一時停止された番組の位置で選択された番組をピックアップするために、居間のクライアントのバッファ位置を選択する。別の方法として、ユーザは選択された番組を番組の先頭から視聴したい場合がある(図6、ブロック650および655)。一実施形態では、PVRシステムは、2台のクライアントで同時に再生するために2つのバッファ位置を同期させることができる。例えば、ユーザは、家の中でより広い領域にわたって音楽を流すために、2台の異なるクライアントで音楽ビデオを再生したい場合がある。
【0014】
一実施形態では、PVRシステムはテレビジョン・チューナに状態を割り当てる。この実施形態では、テレビジョン・チューナは、ビジー(busy)、おそらくフリー(maybe free)、および完全にフリー(totally free)の状態のうちの1つを含む。ビジー状態とは、現在サーバがチューナを使用して番組を録画中であることを示す。おそらくフリー状態は、クライアントがチューナを使用して番組を視聴中である可能性があることを示す。例えば、ユーザは、クライアントでプログラムを視聴するように選択する場合がある。その後、PVRシステムは、ユーザがまだその番組を視聴しているかどうかを実際には知らない(例えば、ユーザがモニタの電源をオフにしたばかりの可能性があるため)。このシナリオでは、チューナは「おそらくフリー」と指定される。チューナが「完全にフリー」と指定された場合、チューナはスケジューラによって割り振られておらず、クライアントはチューナを使用して番組を視聴していなかったことになる。以下で詳細に説明するように、チューナの状態を使用してチューナが割り振られる。
一実施形態では、PVRシステムはスケジューラを利用する。一般に、スケジューラはシステムにとって「しなければならないことのリスト」としての役割を果たす。例えば、スケジューラは、システム・ユーザが選択した番組を録画するためのプロセスを実行する。番組は録画するために個々に選択するか、または予約申し込みに基づいて録画するためにスケジューリングすることができる。スケジューラは、番組を録画するためのリソースを割り振るために競合管理の問題を解決する。
【0015】
一実施形態では、PVRシステムは「予約申し込み」をサポートする。一般に、予約申し込みでは、システムは選択された番組の放送を繰り返し録画する。予約申し込みを使用すれば、ユーザは予約申し込みをする番組を選択するだけで、その番組のすべての放送が録画される。一実施形態では、PVRメディア・サーバのスケジューラが予約申し込みを実行するためのイベントを識別する。例えば、ユーザは、テレビジョン・ショー「Reality Television」の予約申し込みを選択することができる。PVRメディア・サーバのスケジューラは、EPGデータ・セットからテレビジョン・ショー「Reality Television」のすべての固有の連続番組を決定する。スケジューラはイベントを録画するために、識別されたそれぞれの固有の連続番組について1イベントのイベントを生成する。一実施形態では、予約申し込みは単一のPVRメディア・サーバ内でスケジューリングされる。しかし、他の実施形態では、予約申し込みを他のPVRメディア・サーバに送る(push)ことができる。例えば、第1のPVRメディア・サーバのスケジューラが予約申し込みに関連するイベントを含むことができる。第1のPVRメディア・サーバがその予約申し込みの1つまたは複数のイベントで競合する場合、予約申し込み全体のイベントを第2のPVRメディア・サーバに割り当てることができる。この場合、第2のPVRメディア・サーバのスケジューラが(例えば、第1のPVRメディア・サーバ用のスケジューラと同じ方法で)予約申し込みを実行する。例えば、第1のPVRメディア・サーバのスケジューラからのイベントを第2のPVRメディア・サーバのスケジューラに転送することができる。さらに、第2のPVRメディア・サーバのスケジューラは、その予約申し込みに関する今後のイベントのスケジューリング・タスクも想定することができる。また、あるPVRメディア・サーバがネットワークから除去された場合、複数のPVRメディア・サーバ間で予約申し込みを送ることができる。
図7は、本発明のネットワーク化PVRシステムにおいてイベントをスケジューリングするための一実施形態を示すフローチャートである。第1に、ユーザはメニューを介して録画する番組を個々に、または予約申し込みによって選択する(図7、ブロック710)。これに応答して、システムはイベントの時間帯中に使用可能なチューナを選択する(図7、ブロック720)。さらに、システムは、スケジューリングされた番組に対して記憶媒体上の記憶域を割り振る(図7、ブロック730)。システム内でイベントの「再スケジューリング」が発生すると、使用可能なチューナおよび使用可能な記憶域の両方を割り振るためにプロセスが繰り返される(図7、ブロック740、720、および730)。一実施形態では、電子番組ガイドデータがPVRメディア・サーバにダウンロードされた場合、「再スケジューリング」イベントが発生する。再スケジューリング・イベントは、ユーザがスケジューラから項目を削除した場合にも発生する。例えば、ユーザは、番組を録画するために、前の予約申し込みから別の番組を以前にキャンセルしたイベントを削除する場合がある。このシナリオでは、ユーザが競合する番組をキャンセルしたため、システムは前の予約申し込みを再スケジューリングする。
スケジューリングされたイベントをセットアップする時間(例えば、スケジューリングされたイベントの時間より前の時間)に達すると、システムはスケジューリングされたイベントの録画を開始するためのプロセスを始動する(図7、ブロック750および760)。チューナ・リソースの競合解決を含む、スケジューリングされたイベントの録画に関する一実施形態について、図8の説明と共に以下で詳細に説明する。イベントがキャンセルされると、システムはチューナを解放し、キャンセルされたイベントに関する記憶媒体上のスペースを割り振り解除する(図7、ブロック770および775)。またスケジューラは、その時間帯を埋めるために何らかの新しい割り振りの決定を実行する(図7、ブロック785)。一実施形態では、システムはユーザがイベントをキャンセルする代わりに再スケジューリングもできるようにする。別の方法として、イベントがキャンセルされない場合、スケジューリングされたイベントが録画される(図7、ブロック770および780)。
【0016】
一実施形態では、PVRシステムはチューナを使用するすべてのクライアントに対して等しい所有権を割り当てる。例えば、3台のクライアントが同じチューナを使用することが可能である(すなわち、3台のクライアントすべてが、潜在的には番組の異なる部分であるが同じ番組を視聴している)。1台のクライアントがチューナのチャンネルを変更すると、チューナは新しいチャンネルにセットされ、その結果3台のクライアントすべてのチャンネルが新しい番組に合わされる。
PVRシステムは、ネットワーク化PVRシステム内で生じる可能性のあるいくつかの競合を解決する(すなわち、「競合管理」と呼ばれる)。ネットワーク化PVRシステム内で生じる競合の一部には、新しい番組を録画する不適切な記憶域、スケジューリングされた番組を録画するには不十分な数のチューナ、スケジューリングされたイベントを録画する場合のチャンネル変更要求を含む一貫性のない入力、およびイベントを録画するには不十分な数のチューナが含まれる。
一実施形態では、スケジューリングされたイベントを録画するのに十分な記憶域がPVRメディア・サーバにない場合、システムは録画に先立って自動的にコンテンツを削除する。コンテンツ削除の優先順位を割り当てるための一実施形態について、以下でより詳細に説明する。
図8は、番組を録画するための一実施形態を示すフローチャートである。スケジューリングされたイベントの時間の直前に、PVRシステムはチューナが使用可能かどうかを判別する(図8、ブロック810および820)。チューナが使用可能な(すなわち、チューナが「完全にフリー」と指定された)場合、チューナは番組を録画するように割り当てられる(図8、ブロック820および880)。PVRメディア・サーバ上で「完全にフリー」と指定されたチューナがない場合、システムは、チューナを備えた何らかの他のPVRメディア・サーバがあるかどうかを判別する(図8、ブロック822)。ある場合は、他のPVRメディア・サーバが選択され、システムは選択されたPVRメディア・サーバが使用可能なチューナを有するかどうかを判別する(図8、ブロック825および820)。このプロセスは、ネットワーク上のすべてのPVRメディア・サーバに対して反復される。
【0017】
使用可能なチューナがない(すなわち、ネットワーク上のすべてのチューナが「ビジー」または「おそらくフリー」として指定されている)場合、システムは、クライアントがスケジュールされたイベントをキャンセルしたいかどうかを判別するために、チューナに割り振られたかまたは潜在的に割り振られたクライアントに照会する(図8、ブロック830)。例えば、一実施形態では、クライアントに照会するために、PVRシステムは各クライアントにメニュー画面を表示して、システムがスケジューリングされたイベントを進行すべきかどうかを尋ねる。チューナに割り振られたすべてのクライアントがこの照会を受け取る。例えば、スクリーン画面で「システムは時間Yに番組Xを録画するようにチャンネルを変更する必要がありますが、よろしいですか?」と尋ねる場合がある。この照会に対してすべてのクライアントが「はい」と応答した場合、システムはスケジューリングされたイベントの録画に進む。所定の時間内にこの照会に回答しなかったクライアントがあった場合も、システムはスケジューリングされたイベントの録画に進む。
PVRシステムは、クライアントから回答を取り出す(図8、ブロック840)。クライアントのいずれか1つがイベントをキャンセルした場合、システムは、スケジューリングされたイベントを記録するために割り振るチューナを備えた追加のPVRメディア・サーバがあるかどうかを判別する(図8、ブロック850および860)。追加のPVRメディア・サーバがない場合、スケジューリングされたイベントはキャンセルされる(図8、ブロック860および870)。別の方法として、システム内に追加のPVRメディア・サーバがある場合、使用可能なチューナを割り振るためのプロセスが反復される(図8、ブロック860、820、830、840、および850)。チューナを割り当てるためのこのプロセスは、システム内のすべてのPVRメディア・サーバについて反復される。
【0018】
図8のプロセスは、スケジューリングされた複数のイベントに対して同時にチューナを割り振るために使用することができる。例えば、3つの番組を、あるインスタンスで適時に録画するようにスケジューリングすることができる。このプロセスは各番組について反復される。例えば、クライアントが第1のスケジューリングされた番組をキャンセルした場合、その番組は、システム内に他の使用可能なPVRメディア・サーバがあればこれに送られる。その後、すべての関連するクライアントが第2の番組のスケジューリングに関する別の照会を受け取る。ここでも、いずれかのクライアントが第2の番組をキャンセルした場合、第2の番組のスケジューリングは潜在的に他のPVRメディア・サーバに移行される。
一実施形態では、PVRネットワーク・システムはユーザに対して「チューナをロックする」ための機能を有する。例えば、ユーザが数時間にわたるTVショー(例えば、野球の試合、アカデミー賞など)を視聴している場合、ユーザは、以前にスケジューリングされたイベントにチャンネルを変更するための複数の要求を受け取りたくない可能性がある。一実施形態では、ユーザはチャンネルを変更するための照会を迂回するように、システム内のオプションを選択する可能性がある。実行可能になった場合、システムは、ユーザの番組中にチューナ・リソースの競合を解決するためにチューナを再割り振りするための照会を表示しない。
一実施形態では、ネットワーク化PVRシステムが高度な競合管理を含む。一般に、高度な競合管理は、スケジューリングされたイベントをキャンセルするためにユーザに照会する以外の手段を使用して、ユーザが競合を解決するのを補助する。例えば、高度な競合管理は、同一のテレビジョン連続番組の代替のプレゼンテーションを自動的に探し出し、競合が生じない場合はシステムがその番組を録画するためのオプションをユーザに提示することができる。それ故、ユーザが2つのショーを同時に録画しようとすると、システムは「4チャンネルで午後9時に録画するように設定した「お気に入りのショー」の連続番組が、7チャンネルの午後11時に録画するように設定されています」という旨のメッセージを戻すことができる。
ユーザは、スケジューリングされたイベントを現在録画しているチューナのチャンネルを変更するよう試みることができる。このシナリオでは、システムはスケジューリングされたイベントをキャンセルするようにユーザに指示する。またユーザは、システム内で使用可能なチューナが他にない場合に、番組を録画するよう試みることもできる。このシナリオでは、ユーザはネットワーク全体からキャンセルするためのイベントのリストを受け取る。例えば、システムは3台のチューナを有している場合がある。第1のチューナは第1のスケジューリングされたイベントを録画し、第2のチューナは第2のスケジューリングされたイベントを録画し、第3のチューナは少なくとも1台のクライアントが使用するために割り振ることができる。ユーザが別の番組を録画しようと試みると、システムは3台のチューナに現在割り振られている3つの番組を表示する。依然として新しい番組を録画したい場合、ユーザはこれに応答して、表示されたイベントのうちの1つをキャンセルする。
【0019】
一実施形態では、PVRシステムは「削除マネージャ」を含む。一般に、削除マネージャは、PVRメディア・サーバに格納されたコンテンツを削除する優先順位を決定する。一実施形態では、削除マネージャは日付ベースの削除システムを利用する。日付ベースの削除システムでは、第1の録画された番組が削除用にスケジューリングされた第1の番組でもある。所定の時間が経過すると、その番組が削除可能であることをユーザに伝えるために、メニュー上の項目にタグが付けられる。追加のアイコンを使用して、潜在的な番組削除に関してユーザに伝えることもできる。例えば、別のアイコンを使用してその項目が削除可能であることをユーザに伝えることが可能であり、異なるアイコンを使用してその番組が削除されない予定であることをユーザに伝えることも可能である。
一実施形態では、削除マネージャは、「先(sooner)」または「後(later)」フラグに基づく優先順位システムを使用する。このシステムでは、ユーザはコンテンツに「先」または「後」に削除するマークを付ける。削除マネージャはコンテンツを分析して、「先」のマークが付けられた項目を「後」のマークが付けられた項目よりも先に削除する。このシステムは、前述の日付ベースの削除システムと共に使用することができる。他の実施形態では、ユーザは範囲(例えば、1〜5)に従った削除の優先順位でコンテンツをランク付けする。
【0020】
クライアント・デバイスの集約
ネットワーク化PVRシステムは、「ピアツーピア」アーキテクチャを利用する。メディア・プラットフォーム上のすべてのクライアント・デバイスが、複数のクライアント・デバイスおよび複数のPVRメディア・サーバを含む、他のデバイスと通信できる機能を有する。このアーキテクチャでは、デバイスがテレビジョン信号を含むネットワーク上で入手可能なすべてのメディアを取得すること、およびそのデバイス上で表示するためにメディアを集約することが可能である。
クライアント・デバイスまたはサーバ・デバイスを含むデバイスは、いつでもホーム・ネットワークに入ることおよび/またはホーム・ネットワークから出ること、ならびに依然としてすべての機能を維持することが可能である。それ故、あるデバイスの電源がオフになった場合、そのデバイスがホーム・ネットワーク上でもはや使用可能でないことを他のデバイスが自動的に認識する。新しいデバイスが追加されるかまたはポータブル・デバイスがネットワークに加わった場合、他のノードはその新しいデバイスを自動的に認識する。他のノードは、追加されたデバイス上のサービスを利用することができる。新しいPVRメディア・サーバも、少なくとも1つの他のPVRメディア・サーバが現在ネットワーク上にある限りは、新しいデバイスを自動的に認識することができる。
図9は、本発明の一実施形態に従ったテレビジョン信号のクライアント・デバイス集約を示す図である。この例では、3台のPVRメディア・サーバ(910、920、および930)がホーム・ネットワーク940に結合される。図9に示すように、各PVRメディア・サーバは少なくとも1台のチューナを有する。例えば、PVRメディア・サーバ930は3台のチューナ(932、934、および936)を有する。さらに、PVRメディア・サーバは様々なメディア・アイテムを格納することができる(例えば、ビデオ、オーディオ、写真など)。またこの例では、クライアント・デバイス950はホーム・メディア・ネットワーク940上に常駐する。クライアント・デバイス950はテレビジョンを備えることができる。
発見プロセスが完了すると、クライアント・デバイス950はホーム・ネットワーク940上で入手可能な番組を決定する。その結果、クライアント・デバイス950は、クライアント・デバイス950で使用するためにすべてのチューナからの番組を集約する。図9に示すように、クライアント・デバイス950はPVRメディア・サーバ910、920、および930を介して入手可能なすべての番組を集約する。
【0021】
ネットワーク化PVRシステムは、すべての番組を固有として識別する機能を提供する。例えば、「コメディ」のジャンルに分類されたすべての番組がそのようなものと認識され、システムはそれに応じて表示する。同じ名前の2人以上の俳優が存在する場合がある。ネットワーク化PVRシステムは、システムが固有の番組を区別できるようにする分散型データベースを利用する。それ故、2つの異なるテレビジョン・サービス・プロバイダにわたって1つの番組が提供されている場合、クライアント・デバイスを集約する際に、クライアント・デバイスは単一の番組のみを認識する。図9の例では、映画「アメリカ最高の映画」はPVRメディア・サーバ920およびPVRメディア・サーバ910の両方を介して提供される。クライアントの番組集約の際、クライアント・デバイス950は、PVRメディア・サーバ910および920の両方を介して提供される映画「アメリカ最高の映画」を同じ番組として認識する。それ故、クライアント・デバイス350は、映画「アメリカ最高の映画」を単一の番組としてのみ認識する。
基礎となるプロトコルは、クライアント・デバイスがホーム・ネットワーク上のデバイスからの番組を集約できないようにするだけのものである。プロトコルそのものは、分散型システムをサポートするための要件を有していない。ネットワーク化PVRシステムのこの実施形態では、集約論理は非分散型プロトコルを使用して分散型システムを作成する。集約論理は、複数のプロトコルを使用してホーム・ネットワーク上でデバイスを統合する。
図10は、ネットワークを介した番組のクライアント集約に関する一実施形態を示すフローチャートである。最初にクライアント・デバイスは、ホーム・ネットワーク上のデバイス(例えば、PVRメディア・サーバ)を発見する(図10、ブロック1010)。ホーム・ネットワーク上のデバイスを発見するための一実施形態について、以下でより詳細に説明する。クライアント・デバイスは、発見プロセスで習得した情報に基づいて、開発されたデバイスに関する状態情報を構築する(図10、ブロック420)。クライアント・デバイスは、メディア・アイテムに関する要求を受け取る(図10、ブロック430)。集約論理は、集約論理の上で動作するソフトウェア構成要素から要求を受け取る。例えば、クライアント・デバイスは、ユーザ・インタフェースを動作させるテレビジョンを備えることができる。ユーザはリモート・コントロール・デバイスを使用して、ホーム・ネットワーク上で入手可能な、ライブであるかまたは事前に録画されたかのいずれかの、すべてのテレビ番組のリストを要求することができる。この例では、ユーザ・インタフェース上のアプリケーション論理が番組に関する要求を変換し、この要求を集約論理に転送する。
クライアント・デバイスの集約論理は、選択された番組を提供するすべてのPVRメディア・サーバから番組の情報を獲得する。例えば、クライアントが特定のジャンル(例えば、コメディ)にテレビジョン番組を要求した場合、クライアント・デバイスはすべてのPVRメディア・サーバから入手可能なそのジャンルに分類されたすべての番組を獲得する。この動作は、図10に示されている(ブロック1040、1050、1060、1070、および1080)。より詳細に説明すると、特定のPVRメディア・サーバを選択するための識別子(すなわち、n=0)が設定される(図10、ブロック440)。クライアント・デバイスは、発見プロセス中に獲得した状態情報を使用して、選択されたPVRメディア・サーバ(例えば、PVRメディア・サーバ[0])に接続する(図10、ブロック1050)。より詳細に説明すると、クライアント・デバイスは番組に関する要求を選択されたPVRメディア・サーバによってサポートされるプロトコルに変換し、この要求をPVRメディア・サーバに転送する。一実施形態では、クライアント・デバイスは選択されたPVRメディア・サーバ上のサービスを呼び出して番組を取得する(図10、ブロック1060)。一実施形態では、クライアント・デバイスは、PVRメディア・サーバ上のコンテンツ管理サービスを呼び出して、入手可能なプログラムのリストを獲得する。ホーム・ネットワーク上で入手可能なPVRメディア・サーバが他にもある場合、クライアント・デバイスは新しいPVRメディア・サーバを識別して番組を獲得する(図10、ブロック1070および1080)。クライアント・デバイスがすべての使用可能なPVRメディア・サーバから番組のリストを獲得すると、プロセスは完了する。
【0022】
図11は、ネットワーク化PVRシステム・デバイス上で動作するソフトウェア構成要素に関する一実施形態を示すブロック図である。ソフトウェア構成要素500は、最高位にアプリケーション・ソフトウェア502を含む。アプリケーション・ソフトウェア502は、基礎となるデバイスの機能を実施する。例えば、アプリケーション・ソフトウェア502は、DVDプレーヤの機能を実施することができる。図11に示すように、アプリケーション・ソフトウェア502の下に集約論理520がある。前述のように、集約論理520は、クライアント・デバイスがホーム・ネットワーク上のメディア・アイテムおよびテレビジョン番組を集約できるようにするものである。
ソフトウェア構成要素500は、ユーザ・インタフェース(「UI」)レンダリング論理510も含む。UIレンダリング構成要素510は、シーン情報をクライアント・デバイス上での表示に好適な表示情報に変換する。UIレンダリング構成要素510は、表示データもレンダリングする。例えば、基礎となるクライアント・デバイスがテレビジョン・ディスプレイ(例えば、CRT)を含む場合、UIレンダリング・エンジン510はシーン情報からグラフィックス・データを生成し、このグラフィックス・データをテレビジョン・ディスプレイ上でレンダリングする。
図11に示すように、クライアント・デバイスは1つまたは複数のネットワーク・プロトコルおよびリモート・プロシージャ・コール(「RPC」)メカニズムを組み込む。例えば、図11は、ネットワーク・プロトコルA(1125)、ネットワーク・プロトコルB(1130)、およびネットワーク・プロトコルn(1135)をサポートするクライアント・デバイスを示す。この例では、クライアント・デバイス・ソフトウェア500はRPCメカニズムA(1140)、RPCメカニズムB(1145)、およびRPCメカニズムn(1150)をサポートする。
クライアント・デバイス・ソフトウェア500は1つまたは複数のサービスをサポートする。図11に示すように、インタフェースを介してサービスの1つまたは複数の方法にアクセス可能である。一般に、方法は呼び出されると、基礎となるサービスに特有の機能を提供する。この例では、クライアント・デバイス・ソフトウェア500はサービスA(555)、サービスB(560)、およびサービスn(565)を含む。各サービスは1つまたは複数の方法(すなわち、方法(1)〜方法(n))に関連付けられる。
【0023】
一実施形態では、ネットワーク化PVRシステムは複数の基礎となるプロトコルをサポートする。一般に、プロトコルは、コマンド、RPCメカニズム、およびサービスへのインタフェースを定義する。一実施形態では、ネットワーク化PVRシステムは、業界定義のUPnPプロトコルをサポートする。一般に、UPnPプロトコルは、IPネットワークを介した発見、RPCメカニズム、およびサービスを活動化するためのインタフェースを定義する。UPnPサービスには、コンテンツ・ディレクトリ・サービス、接続マネージャ・サービス、オーディオ/ビデオ(「A/V」)トランスポート・サービス、およびA/Vコントロール・サービスが含まれる。 一実施形態では、ネットワーク化PVRシステムは独自所有プロトコル(すなわち、非業界標準プロトコル)もサポートする。この実施形態では、独自所有プロトコルはネットワーク発見プロセス、RPCメカニズム、およびサービスへのインタフェースを定義する。サービスには、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびPVRコントロール・インタフェースが含まれる。コンテンツ・マネージャ・サービスによって、クライアント・デバイスはデータベースにインタフェースすることができる。より詳細に説明すると、クライアント・デバイスはコンテンツ・マネージャ・サービスを使用して、他のネットワーク・デバイス上のデータベースから情報(例えば、メディアを識別するためのURL、メタデータなど)を抽出することができる。それ故、コンテンツ・マネージャ・サービスは、ネットワーク化PVRシステムのデバイスにデータベースを照会するための手段を提供する。メディア・プレーヤ・サービスは、再生機能を可能にするインタフェースを定義する(例えば、メディア・ストリームの始動およびコントロール)。PVRコントロール・インタフェースは、非格納オブジェクト上でのメディアのストリーミングを可能にする。さらに、PVRコントロール・インタフェースは、ユーザが現在の番組の録画ならびに今後の番組の録画スケジューリングをできるようにする。 一実施形態では、独自所有プロトコルでの発見プロセスが非同期ベースのメッセージングを実施する。発見プロトコルは、パケット・ベースのメッセージングをサポートする任意のネットワーク上、または直列化ネットワーク上で動作する。一実施形態では、発見プロトコルは、「announce」コマンド、「discovery」コマンド、および「bye−bye」コマンドを含む。announceコマンドは、デバイスがその存在をホーム・メディア・ネットワーク上に告知するために使用される。discoveryコマンドは、告知の要求である(すなわち、何らかのクライアント・デバイスがホーム・ネットワーク上にあるかどうかを照会する)。「bye−bye」コマンドは、クライアント・デバイスがネットワークから離れることを告知するために、クライアント・デバイスによって使用される。一実施形態では、2種類の告知と2種類の「bye−bye」コマンドとがあり、1つはデバイス用、1つはサービス用である。
【0024】
一時実施形態では、独自所有プロトコルによってサポートされるRPCメカニズムはパケット・ベースのプロトコルを使用する。サービスは、ホーム・ネットワーク上のデバイスが適切な引数でRPCベースのパケットを構築できるようにするための、方法および識別番号を含む。一般に、RPCメカニズムは、デバイスがネットワーク上の他のデバイスをコントロールできるようにするものである。プロトコルは、要求および応答を介して達成される。RPCパケットはヘッダを含む。一実施形態では、ヘッダは、バージョン情報、コマンド・クラス(特定サービスへのマップ)、コマンド(デバイスが要求している方法、または方法からの応答)、識別(要求の識別、または要求に対応する応答の識別)、および長さを含む。RPCプロトコル・フォーマットは、ヘッダの次にデータ(すなわち、要求に関する引数および応答に関する戻り値)を指定する。
図12は、ネットワーク化PVRシステムに関するホーム・ネットワークの一例を示すブロック図である。この例では、ホーム・ネットワークはPVRメディア・サーバ1250、DVDプレーヤ1240、およびPVRメディア・サーバ1230を含む。テレビジョンを含むクライアント・デバイス(1210)はホーム・ネットワーク620に入り、サポートしているプロトコルを使用して3つのデバイス(例えば、PVRメディア・サーバ1250、DVDプレーヤ1240、およびPVRメディア・サーバ1230)を発見する。図12に示すように、クライアント・デバイス1210は、ホーム・ネットワーク1220上で発見されたそれぞれのデバイスに関する状態情報を格納する。より詳細に説明すると、クライアント・デバイス1210は、デバイス1(PVRメディア・サーバ1230)についての、サポートしているネットワーク・プロトコル(すなわち、ネットワーク・プロトコルA)ならびにデバイスによってサポートされるサービス(すなわち、サービスAおよびサービスC)のリストを格納する。ネットワーク・プロトコルは、PVRメディア・サーバ1230上でリモート・プロシージャ・コールを実行するためのRPCメカニズムも指定する。同様に、デバイス2(すなわち、DVDプレーヤ1240)についての状態情報は、デバイス2がネットワーク・プロトコルAをサポートし、サービスAおよびサービスBを実施することを示す。デバイス3、すなわちPVRメディア・サーバ1250は、ネットワーク・プロトコルCをサポートし、サービスAおよびサービスBを実施する。
図12に示すように、各サービス(例えば、サービスA、サービスB、およびサービスC)はインタフェースをサポートする。インタフェースは、サービス内の方法またはコマンドにアクセスするための手段を提供するための仕様を定義する。したがって、クライアント・デバイス1210は、それぞれのインタフェースを介してPVRメディア・サーバ1250上のサービス(サービスAまたはサービスB)を利用する。PVRメディア・サーバ1230、DVDプレーヤ1240、およびPVR−サーバ1250は、すべてサービスAを実施することに留意されたい。サービスAに対する各インタフェースは同一であり、サービスへの均一のアクセス可能性を許可する。しかし、各デバイスでのサービスAの実施は異なる場合がある。
【0025】
一実施形態では、ネットワーク化PVRシステムの実施によってセキュリティが提供される。この実施形態では、announcementコマンドがオープン・エンドであるため、プロトコルは通信に関する最低限の仕様のみを定義する。したがって、告知プロトコルは、TCPおよびsecure socket layer(「SSL」)を含む、複数のネットワーク仕様をサポートすることができる。プロトコルは、TCP/IPネットワーク上での実施をサポートする。さらに、プロトコルは、TCP/IPネットワーク上で動作するSSLもサポートする。SSLは、認証を含む、ネットワーク上での2当事者間のセキュアな通信を可能にする。
独自所有プロトコルは、部分的なセキュリティを使用する実施も可能にする。この実施形態では、サービスはセキュアな通信を必要とするいくつかの方法と、セキュアな通信を必要としない他の方法とを含むことができる。それ故、いくつかの方法では、SSL技術を利用して、ホーム・ネットワーク上の2つのデバイス間でのセキュアな通信を実現する。
【0026】
発見
図13は、ネットワーク化PVRシステムにおいてデバイスを発見するための一実施形態を示すフローチャートである。新しいデバイス(すなわち、現在ネットワークに接続されていないデバイス)がホーム・メディア・ネットワークに接続される(図13、ブロック1310)。ネットワーク上で通信するために、新しいデバイスはネットワーク・アドレスを取得する(図13、ブロック1320)。例えば、IPネットワークでは、クライアントはIPアドレスを必要とする。基礎となるネットワークがTCP/IPをサポートする場合、クライアント・デバイスはDHCPサーバがあるかどうかを判別する。DHCPサーバがある場合、これが新しいデバイスにIPアドレスを割り当てる。DHCPサーバがない(すなわち、新しいデバイスにIPアドレスを割り当てる際にDHCPサーバが使用できない)場合、新しいデバイスはプールからIPアドレスを選択し、ホーム・ネットワーク上の任意の他のデバイスがそのIPアドレスを有するかどうかを判別する。そのIPアドレスを有する他のデバイスがネットワーク上にない場合、クライアント・デバイスはこのIPアドレスを使用する。この自動IPアドレス指定のプロセスによって、単一サブネット内でホーム・ネットワーク上の通信が可能になる。 新しいデバイスは、ネットワークを介して「announcement」コマンドを伝送する(図13、ブロック1330)。announcementコマンドのフォーマットは、デバイスがサポートするプロトコルに準じる。新しいデバイスは、ネットワークを介してannouncementコマンドをブロードキャストまたはマルチキャストすることができる。例えば、IPネットワークでは、新しいデバイスは、ホーム・ネットワークがゲートウェイを含む場合、サブネットを拡張するためにannouncementをマルチキャストすることができる。マルチキャスト・フォーマットを使用して、特定のIPアドレスを指定する(例えば、新しいデバイスに関連するかまたはこれに適合する、ネットワーク上のデバイスにのみ、announcementを伝送する)。本明細書で使用する適合デバイスとは、クライアント・デバイスとの通信に関与できるデバイスのことである。
新しいデバイスのannouncementコマンドに応答して、新しいデバイスは状態情報を構築する。一般に、状態情報は、ネットワーク上で使用可能なデバイスに関する詳細を提供する。状態情報には、それらのデバイスによってサポートされるプロトコルおよびサービスが含まれる。ネットワーク上の適合デバイスがannouncementコマンドを受け取ると、それらの適合デバイスはannouncementコマンドに封入された情報をローカル・キャッシュに追加することができる。 ネットワーク上に適合デバイスがない場合、または新しいデバイスがネットワーク上のサービスの利用を望まない場合、プロセスは終了する。例えば、新しいデバイスがテレビジョンである場合、適合デバイスは、ビデオ(例えば、DVD、MPEGなど)を格納しており、ライブまたは事前に録画されたテレビジョンを提供する、PVRメディア・サーバを含む。ネットワーク上に他の適合デバイスがある場合、それらのデバイスは新しいデバイスに1つまたは複数のサービスを公表する(図13、ブロック1350)。ネットワーク上のサービスを発見するために、新しいデバイスはdiscoveryコマンドを伝送し、応答を待つ。この例では、ライブ・テレビジョンを提供するPVRメディア・サーバが、新しいデバイスがPVRメディア・サーバによって提供される番組(例えば、テレビジョン・サービス・プロバイダによって提供される番組)を集約できるようにするためのインタフェースを公表する。
【0027】
要求(例えば、新しいデバイス・アプリケーション論理)に応答して、新しいデバイスはサポート・プロトコルを介して適合デバイスに接続する(図13、ブロック760)。より詳細に説明すると、デバイスは状態情報を使用して該当するデバイス用のプロトコルを変換する。例えば、適合デバイスが業界標準プロトコルをサポートする場合、新しいデバイスはそのデバイスと通信するための業界標準プロトコルを選択する。新しいデバイスは、適合デバイス上のサービスを利用する(図13、ブロック1370)。
ホーム・ネットワークに入るPVRメディア・サーバは、発見プロセスの一例である。この例では、PVRメディア・サーバはネットワーク・アドレスを取得した後、ネットワークを介してannouncementコマンドを伝送する。PVRメディア・サーバはサポートしているサービス(例えば、コンテンツ・マネージャ、メディア・プレーヤ・サービス、およびPVRコントロール・インタフェース)を告知し、それらのサービスにアクセスできるようにするためにネットワーク・クライアントへのインタフェースを公表する。デバイスはネットワークに入ると、サーバからの告知を待つ。クライアントはPVRメディア・サーバを識別すると、announcementコマンドでサーバが指定したプロトコルを介してPVRメディア・サーバに接続する。このプロセスにより、クライアント・デバイスは、PVRメディア・サーバ上のメディアおよび番組をナビゲートすることができる。クライアント・デバイスは、サポート・プロトコルを使用して再生デバイス(例えば、テレビジョン)それ自体または他の再生デバイスに接続し、PVRメディア・サーバ上で入手可能な番組からユーザが選択した番組を再生するように、再生デバイスに指示する。
【0028】
ネットワーク化PVRデータ・モデル
ネットワーク化PVRシステムは、データ・モデルと共に動作する。基礎となるデータベースのフォーマットおよび配置構成は、ネットワーク化PVRシステムによって定義されるものではない。データ・モデルでは、オブジェクト(例えば、メディア・アイテム)がデータベース内に固有の識別を有する。オブジェクトは関連する「タイプ」(例えば、チャンネル、時間帯、連続番組、およびショー)も有する。データ・モデルは、オブジェクトおよびタイプ間での構造および階層を定義するための関係を定義する。
図14は、ネットワーク化PVRシステムの要素に関するデータ・モデルの一実施形態を示すブロック図である。この実施形態では、多くのサービス・プロバイダが単一のMSOパッケージにマッピングされる。一般に、MSOパッケージはテレビジョン番組に関するデータ(例えば、時間、チャンネル、コンテンツなど)を定義する。データはMSOパッケージをチャンネルにマッピングするために抽出される。チャンネル・データ・オブジェクトは、使用可能なすべてのチャンネルを定義する。図14に示すように、各チャンネルが複数の時間帯にマッピングする。連続番組データ・オブジェクトは、1つまたは複数の時間帯にマッピングされる。連続番組データ・オブジェクトは、ある番組の個々の連続番組それぞれを識別する。次に、連続番組データ・オブジェクトは1つまたは複数の連続番組を1つのショーにマッピングする。俳優データ・オブジェクトは、俳優を識別するために各連続番組にマッピングされる。また、ジャンル・データ・オブジェクトを使用して、ショーがジャンル別に分類される(例えば、コメディ、ドラマ、アクション、スポーツなど)。
一実施形態では、ネットワーク化PVRシステム用のデータベースは、リレーショナル・データベース(例えば、キー値ペア・データベースまたは標準照会言語(「SQL」)データベース)を備える。この実施形態では、データベースはリレーショナル・データベースに格納するためにオブジェクトをマッピングする。ネットワーク化PVRシステムの一実施形態ではリレーショナル・データベースを利用するが、本発明の精神または範囲を逸脱することなく他のデータベースを使用することができる。
【0029】
図15は、ネットワーク化PVRシステムでのデータ・ストアへのアクセスの一実施形態を示すブロック図である。クライアント・デバイス1510はホーム・ネットワーク1520に接続される。図15に示すように、デバイス1530およびデバイス1540もホーム・ネットワーク1520に結合される。デバイス1540は、図15でデータベースBとラベル表示された永続データ・ストアを含む。同様に、デバイス1530は永続データ・ストア、データベースAを含む。デバイス1530および1540は、永続データ・ストア内の情報にアクセスできるサービスをサポートする。一実施形態では、コンテンツ・マネージャ・サービスが使用される。より詳細に説明すると、コンテンツ・マネージャ・サービスAの第1の実施はデータベースAへのアクセスをサポートし、コンテンツ・マネージャ・サービスBの第2の実施はデータベースBへのアクセスをサポートする。
クライアント・デバイス1510は、データベースAおよびデータベースBから情報を取得することができる。データベースBを照会するために、クライアント・デバイス1510は、前述のような形でデバイス1540への接続を取得する。クライアント・デバイス1510は、コンテンツ・マネージャ・サービスBのインタフェースを介して方法を呼び出す。例えば、クライアント・デバイス1510は、ネットワーク化PVRシステムによって認識されるすべてのジャンルのリストを取得したい場合がある。この情報はデータベースBに格納されている可能性がある。クライアント・デバイス1510は、コンテンツ・マネージャ・サービスBのインタフェースに指定されたデータ・モデル・パラメータを使用して、要求を生成する。前述の例では、クライアント・デバイス1510はタイプ「ジャンル」のすべてのオブジェクトを識別するために、コンテンツ・マネージャ・サービスBへの要求を生成する。この要求に応答して、クライアント・マネージャ・サービスBは、「ジャンル」のデータ・モデル概念をデータベースBに適合する照会に変換する。例えば、データベースBがSQLをサポートしている場合、コンテンツ・マネージャ・サービスBは、タイプ「ジャンル」のテーブル内のすべての記録を取得するために、データベースBへのSQL要求を生成する。
コンテンツ・マネージャ・サービスの実施は、ネットワーク化PVRシステム・データ・モデルから基礎となるデータベース実施への変換を実行する。図15に示された例では、コンテンツ・マネージャ・サービスAはデータベースAへの第1の変換をサポートし、コンテンツ・マネージャ・サービスBはデータベースBに格納されたデータに関する要求の第2の変換をサポートする。したがって、クライアント・デバイス1510は、両方のコンテンツ・マネージャ・サービス上のインタフェースによって定義されたものと同じ要求を使用して、異なるデータベース実施(例えば、データベースAおよびデータベースB)にアクセスする。
【0030】
一実施形態では、ネットワーク化PVRシステムはデータベースを使用して実施される。一般に、データベースは、オブジェクトと、それらのオブジェクトに関連付けられた属性と、それらのオブジェクト間の関連とを格納する。例えば、データベースは、メディア・スペース内で入手可能なテレビジョン番組の識別を格納する。データベースは各オブジェクトに関する1つまたは複数の属性を関連付けるために、複数の属性を格納する。一実施形態では、オブジェクトは含む。それ故、あるトラックを1つまたは複数のアルバム、1人または複数のアーティスト、1つまたは複数のジャンル、および1つまたは複数のプレイリストに関連付けることができる。属性には、タイトル、作成日、および複数の関連するメディア・ファイルが含まれる。それ故、トラックは、関連するアルバム・アート、歌詞などを有することができる。
ネットワーク化PVRシステム・データベースは、オーディオ・トラックを非常に多様な形で分類することができる。例えば、ユーザは、ユーザが音楽を2つの異なるタイプのジャンル(例えば、ロックおよびブルース)と関連付けているために、トラックまたはアルバム(すなわち、トラックの集まり)を複数のジャンルに分類したい場合がある。また、ある音楽トラックは、2人のアーティスト間のコラボレーションの結果である場合がある。このトラックを適切に分類するために、ネットワーク化PVRシステムのユーザは、トラックを2人の異なるアーティストに関連付けることができる。上記の例で示すように、ネットワーク化PVRシステムは、音楽の分類および編成に柔軟性を提供する。
ネットワーク化PVRシステムは、各分類または項目を別個のオブジェクトとして扱う。例えば、音楽アプリケーションの場合、プレイリスト、ジャンル、アーティスト、アルバム、およびトラックは、すべて個々のオブジェクトとして扱われる。項目の編成および分類に対して独立したオブジェクトをサポートするこの機能では、音楽の編成および分類に柔軟性を提供する。例えば、ユーザは、第1のプレイリスト全体が第2のプレイリストに含まれるような、ネストされたプレイリストを作成することができる。従来技術の音楽システムでは、プレイリストをトラックごとに処理するのみである。こうした従来技術のシステムでは、プレイリストはトラックのみで構成される。ネットワーク化PVRシステムでは、プレイリストはどのような「オブジェクト」を含むこともできる。それ故、プレイリストは1つまたは複数のアーティスト、ジャンル、アルバム、または他のプレイリストから作成することができる。
【0031】
音楽の編成および再生でオブジェクトを使用することによって、同じ名前のアーティストを異なる者として扱うこともできる。従来技術のデジタル音楽システムは、アーティストを識別するためにメタデータを格納する。ユーザがこれら従来技術のシステムを使用してメタデータ上で検索を実行する場合、システムが同じ名前のアーティストを区別する方法はない。ネットワーク化PVRシステムでは、各アーティストは1つのオブジェクトとして扱われる。それ故、同じ名前の2人のアーティストは2つの別個のオブジェクトであり、2人の別々のアーティストとして操作することができる。 ネットワーク化PVRシステムは、分散型反復器(iterator)を利用する。データベースへの照会に対する応答によって、大量のデータが生成される可能性がある。一実施形態では、ネットワーク化PVRシステム・プロトコルは、データの一部を伝送し、送信されたデータを識別するためのポインタを維持することをサポートする。一実施形態では、プロトコルは反復器を使用する。ネットワーク化PVRシステムが反復器を使用することで、システムは1つのデバイスから他のデバイスへ転送されたデータの一部(例えば、リスト)を追跡することができる。反復器は、データの転送中にデータベース内の項目が変更された場合、反復器が動的に変化するように実施される。一般に、反復器は、アレイ内の位置を指定する。リストはデータベースからの結果である。例えば、データベースに対する照会への応答によって、オーディオ・トラックのリストを生成することができる。そのため、例示的な照会の一部として抽出されたオーディオ・トラックを削除することができる。他のシナリオでは、照会によって指定されたオーディオ・トラックをデータベースに追加することができる。
ネットワーク化PVRシステムが独自所有プロトコルおよびTCP/IPネットワークを使用して実施された場合、システムはデータベース情報に関する要求に状態を関連付ける。この状態情報が反復器情報を維持するために利用される。 以上、本発明について特定の例示的実施形態に関して説明してきたが、当業者であれば、本発明の精神および範囲を逸脱することなく、様々な修正および変更が可能であることを理解されよう。
【特許請求の範囲】
【請求項1】
明細書に記載のシステム。
【請求項1】
明細書に記載のシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−217419(P2011−217419A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−169530(P2011−169530)
【出願日】平成23年8月2日(2011.8.2)
【分割の表示】特願2006−517843(P2006−517843)の分割
【原出願日】平成16年7月1日(2004.7.1)
【出願人】(597095197)ロヴィ・ソリューションズ・コーポレーション (53)
【Fターム(参考)】
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2011−169530(P2011−169530)
【出願日】平成23年8月2日(2011.8.2)
【分割の表示】特願2006−517843(P2006−517843)の分割
【原出願日】平成16年7月1日(2004.7.1)
【出願人】(597095197)ロヴィ・ソリューションズ・コーポレーション (53)
【Fターム(参考)】
[ Back to top ]