(57)【特許請求の範囲】
【請求項１】
コンテンツを再生する再生装置と、前記再生装置に接続されるコントローラとを備えたネットワークＡＶシステムであって、
前記再生装置は、
データ圧縮されたコンテンツファイルに基づいて前記コンテンツを指定された再生速度で再生する再生手段と、
再生中のコンテンツの再生位置を特定する特定手段とを備え、
前記コントローラは、
前記再生装置が指定された再生速度と、前記再生中のコンテンツの予想再生位置とを記憶するための記憶手段と、
前記記憶手段に記憶された前記再生速度と前記予想再生位置とに基づいて、前記再生中のコンテンツの予想再生位置を時系列に演算する演算手段と、
前記演算するごとに、前記記憶手段に記憶された予想再生位置を前記演算された予想再生位置に更新する登録手段と、
前記再生装置から前記特定された再生位置を随時取得する取得手段と、
前記特定された再生位置を取得するごとに、前記記憶手段に記憶された予想再生位置を前記特定された再生位置と同期する同期手段と、
前記記憶手段に記憶された予想再生位置を表示する表示手段とを備えることを特徴とするネットワークＡＶシステム。
【請求項２】
請求項１に記載のネットワークＡＶシステムであって、
前記取得手段は、前記再生速度が通常再生時の再生速度と異なる場合、前記再生位置を随時取得することを特徴とするネットワークＡＶシステム。
【請求項３】
請求項１又は請求項２に記載のネットワークＡＶシステムであって、
前記再生装置はさらに、
外部からの指示により前記再生速度を変更するとき、変更された再生速度を前記コントローラに通知する通知手段を備え、
前記登録手段はさらに、
前記通知手段による通知を受けたとき、前記記憶手段に記憶された再生速度を前記変更された再生速度に更新することを特徴とするネットワークＡＶシステム。
【請求項４】
請求項３に記載のネットワークＡＶシステムであって、
前記コントローラはさらに、
前記通知手段による通知を受けたとき、前記変更された再生速度が通常再生時の再生速度と同じか否かを判断する判断手段を備え、
前記取得手段はさらに、
前記変更された再生速度が通常再生時の再生速度と同じであるとき、前記再生装置から前記特定された再生位置を取得し、前記取得した後、前記判断手段が前記変更された再生速度が通常再生時の再生速度と異なると判断するまで前記再生位置の取得を停止することを特徴とするネットワークＡＶシステム。
【請求項５】
データ圧縮されたコンテンツファイルに基づいてコンテンツを指定された再生速度で再生し、かつ、再生中のコンテンツの再生位置を特定できる再生装置に接続可能なコントローラであって、
前記再生装置が指定された再生速度と、前記再生中のコンテンツの予想再生位置とを記憶するための記憶手段と、
前記記憶手段に記憶された前記再生速度と前記予想再生位置とに基づいて、前記再生中のコンテンツの予想再生位置を時系列に演算するする演算手段と、
前記演算するごとに、前記記憶手段に記憶された予想再生位置を前記演算された予想再生位置に更新する登録手段と、
前記再生装置により特定された再生位置を随時取得する取得手段と、
前記特定された再生位置を取得するごとに、前記記憶手段に記憶された予想再生位置を前記特定された再生位置と同期する同期手段と、
前記記憶手段に記憶された予想再生位置を表示する表示手段とを備えることを特徴とするコントローラ。
【請求項６】
請求項５に記載のコントローラであって、
前記取得手段は、前記再生速度が通常再生時の再生速度と異なる場合、前記再生位置を随時取得することを特徴とするコントローラ。
【請求項７】
請求項５又は請求項６に記載のコントローラであってさらに、
外部からの指示に応じて前記再生装置が再生速度を変更するときに前記再生装置が送信する前記変更された再生速度の通知を受信する受信手段を備え、
前記登録手段はさらに、
前記通知手段による通知を受けたとき、前記記憶手段に記憶された再生速度を前記変更された再生速度に更新することを特徴とするコントローラ。
【請求項８】
請求項７に記載のコントローラであってさらに、
前記受信手段が前記通知を受けたとき、前記変更された再生速度が通常再生時の再生速度と同じか否かを判断する判断手段を備え、
前記取得手段はさらに、
前記変更された再生速度が通常再生時の再生速度と同じであるとき、前記再生装置から前記特定された再生位置を取得し、前記取得した後、前記判断手段が前記変更された再生速度が通常再生時の再生速度と異なると判断するまで前記再生位置の取得を停止することを特徴とするコントローラ。
【請求項９】
請求項５〜請求項８のいずれか１項に記載の手段をコンピュータに実現させるコントローラプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークＡＶシステム及びコントローラに関し、さらに詳しくは、データ圧縮されたコンテンツファイルに基づいてコンテンツを再生する再生装置と、再生装置を監視するコントローラとを備えたネットワークＡＶシステム及びコントローラに関する。
【背景技術】
【０００２】
家庭内のパーソナルコンピュータや周辺機器、家電製品等をネットワークを介して相互に接続し、互いの機能を提供しあうためのプロトコルとしてＵＰｎＰ（Universal Plug and Play：ユニバーサルプラグアンドプレイ）がある。ＵＰｎＰは、ＡＶ機器の制御に関するデバイス及びサービスの定義仕様であるＵＰｎＰＡＶを含む。
【０００３】
ＵＰｎＰＡＶを利用すれば、ＡＶ機器を遠隔で操作できる。ＵＰｎＰでは、コントロールポイントと呼ばれるコントローラが、映像や音楽といったコンテンツを蓄積するソースデバイスであるメディアサーバと、コンテンツを再生する再生装置（シンクデバイス）であるメディアレンダラとを制御する。コントロールポイントは、メディアサーバが蓄積する複数のコンテンツに関する情報を取得し、所望のコンテンツを再生するようメディアレンダラに指示する。メディアレンダラは、メディアサーバに所望のコンテンツを要求する。メディアサーバは、要求に応じて所望のコンテンツをストリーミング配信し、メディアレンダラは、ストリーミング配信されたコンテンツを再生する。メディアレンダラは、通常再生、早送り再生、巻き戻し再生等の現在の再生状態（以下、ステータスという）をコントロールポイントに通知し、これによりコントロールポイントはメディアレンダラのステータスを監視する。ＵＰｎＰＡＶでは、コントロールポイントは複数のメディアレンダラのステータスを監視できる。
【０００４】
メディアレンダラが早送り再生や巻き戻し再生といった特殊再生を行う場合、コントロールポイントが、メディアレンダラで特殊再生中のコンテンツの現在の再生位置を正確に表示するのは困難である。コントロールポイントで表示される再生位置と、実際の再生位置との間にずれが生じるためである。以下、この点について詳述する。
【０００５】
メディアサーバに蓄積される映像や音声等のコンテンツファイルは、ＭＰＥＧ方式等によりデータ圧縮されたものである。データ圧縮されたコンテンツが特殊再生される場合、ファイルを構成する複数のフレームの中から特定のフレームを時系列に順次抽出して再生する。たとえば、メディアレンダラが３倍速の早送り再生を指示された場合、メディアレンダラはＭＰＥＧファイル内の複数のフレーム（Ｉピクチャ、Ｂピクチャ、Ｐピクチャ）のうち、単独で再生可能なＩピクチャを順次抽出して再生する。このとき、メディアレンダラは、再生速度が３倍速になるようにＩピクチャを適宜抽出する。しかしながら、３倍速に相当する配列位置にＩピクチャが常に配置されているとは限らない。なぜなら、データ圧縮時の圧縮率によりＩピクチャの配列位置及び数が異なるからである。したがって、メディアレンダラは指示された３倍速になるようにＩピクチャを抽出して再生するものの、再生速度を正確に３倍速とすることはできず、実際には３倍速からずれた再生速度、たとえば３．１倍速で再生する。要するに、データ圧縮ファイルを特殊再生する場合、実際の再生速度は、指示された再生速度からずれる。コンテンツファイルの圧縮率は、コンテンツを圧縮する機器（トランスコーディングするデバイス）によりそれぞれ異なるため、実際の再生速度と指示された再生速度とのずれは、各コンテンツファイルにより異なる。
【０００６】
このように、実際の再生速度が指示された再生速度とずれた場合であっても、メディアレンダラがフレームを再生するごとにその再生位置をコントロールポイントに通知すれば、コントロールポイントで正確な再生位置を表示できる。しかしながら、メディアレンダラとコントロールポイントとの間の通信頻度が増大し、メディアレンダラ及びコントロールポイントの負荷が増大する。
【特許文献１】国際公開ＷＯ０３／１０２９１９号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、再生装置とコントローラとの間の通信頻度を抑えつつ、再生装置での実際の再生位置とコントローラで表示される再生位置とのずれを抑えることができるネットワークＡＶシステムを提供することである。
【課題を解決するための手段及び発明の効果】
【０００８】
本発明によるネットワークＡＶシステムは、コンテンツを再生する再生装置と、再生装置に接続されるコントローラとを備える。再生装置は、再生手段と、特定手段とを備える。再生手段は、データ圧縮されたコンテンツファイルに基づいてコンテンツを指定された再生速度で再生する。特定手段は、再生中のコンテンツの再生位置を特定する。コントローラは、記憶手段と、演算手段と、登録手段と、取得手段と、同期手段と、表示手段とを備える。記憶手段は、再生装置が指定された再生速度と、再生中のコンテンツの予想再生位置とを記憶する。演算手段は、記憶手段に記憶された再生速度と予想再生位置とに基づいて、再生中のコンテンツの予想再生位置を時系列に演算する。登録手段は、演算するごとに、記憶手段に記憶された予想再生位置を演算された予想再生位置に更新する。取得手段は、再生装置から特定された再生位置を随時取得する。同期手段は、特定された再生位置を取得するごとに、記憶手段に記憶された予想再生位置を特定された再生位置と同期する。表示手段は、記憶手段に記憶された予想再生位置を表示する。
【０００９】
本発明によるネットワークＡＶシステムでは、コントローラは、再生装置が指示された再生速度に基づいて、再生装置が再生中のコンテンツの再生位置を時系列に演算し、予想再生位置として記憶する。さらに、コントローラは再生装置から特定された再生位置を随時取得し、予想再生位置を取得された再生位置と同期する。予想再生位置の演算を繰り返すうちに、予想再生位置と再生装置での実際の再生位置との間にずれが生じる場合があるが、予想再生位置を再生装置から取得した再生位置と同期することにより、ズレを随時補正できる。そのため、コントローラと再生装置との通信頻度を抑えつつ、実際の再生位置とコントローラで表示される再生位置とのずれを抑えることができる。
【００１０】
好ましくは、取得手段は、再生速度が通常再生時の再生速度と異なる場合、再生位置を随時取得する。
【００１１】
再生装置が指示された再生速度が、通常再生時の再生速度と異なる場合、つまり、たとえば早送り再生や巻き戻し再生といった特殊再生の場合に、予想再生位置と再生装置での実際の再生位置との間にずれが生じる。したがって、特殊再生の場合に再生位置を随時取得し、同期することによりそのずれを補正できる。
【００１２】
好ましくは、再生装置はさらに、通知手段を備える。通知手段は、外部からの指示により再生速度を変更するとき、変更された再生速度をコントローラに通知する。登録手段はさらに、通知手段による通知を受けたとき、記憶手段に記憶された再生速度を変更された再生速度に更新する。
【００１３】
これにより、再生装置が指示された再生速度が変更された場合であっても、コントローラは変更された再生速度を取得でき、変更された再生速度に基づいて予想再生位置を求めることができる。
【００１４】
好ましくは、コントローラはさらに、判断手段を備える。判断手段は、通知手段による通知を受けたとき、変更された再生速度が通常再生時の再生速度と同じか否かを判断する。取得手段はさらに、変更された再生速度が通常再生時の再生速度と同じであるとき、再生装置から特定された再生位置を取得し、取得した後、判断手段が、変更された再生速度が通常再生時の再生速度と異なると判断するまで再生位置の取得を停止する。
【００１５】
再生速度が通常再生時の再生速度である場合、予想再生位置は実際の再生位置とずれない。したがって、通常再生時、通常再生を開始したときの再生位置を再生装置から取得すれば、その後は演算により再生位置を正確に求めることができる。
【００１６】
本発明によるコントローラは、上述のネットワークＡＶシステムに利用されるコントローラであり、本発明によるコントローラプログラムは、上述のコントローラの手段をコンピュータに実現させるためのプログラムである。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００１８】
［全体構成］
図１を参照して、本実施の形態によるネットワークＡＶシステムは、コントローラとして機能するコントロールポイント１と、メディアサーバ２と、再生装置として機能するメディアレンダラ３とを備える。これらは、ＵＰｎＰにより相互に接続される。図１では、１つのコントロールポイントに対して１つのメディアサーバ及び１つのメディアレンダラを示したが、コントローラ、メディアサーバ及びメディアレンダラは各々複数であってもよい。
【００１９】
メディアサーバ２は、データ圧縮された複数のコンテンツ（ファイル）を格納し、要求に応じてコンテンツをメディアレンダラ３にストリーミング配信する。メディアレンダラ３は、ストリーミング配信されたコンテンツを受け、コンテンツを再生する。
コントロールポイント１は、メディアサーバ２及びメディアレンダラ３を制御する。コントロールポイント１は、メディアサーバ２が蓄積する複数のコンテンツの中から所望のコンテンツを選択し、選択されたコンテンツの再生をメディアレンダラ３に指示する。コントロールポイント１はまた、メディアレンダラ３が再生中のコンテンツの再生位置を監視し、自身のディスプレイ上に表示する。以下、メディアサーバ２、メディアレンダラ３、コントロールポイント１の構成をそれぞれ説明する。
【００２０】
［メディアサーバ］
メディアサーバ２は、コンテントディレクトリサービス２１と、コネクションマネージャサービス２２と、データ圧縮された複数のコンテンツファイルを格納したコンテンツデータベース２３と、複数のコンテンツ情報を格納したコンテンツ情報データベース２４とを備える。データ圧縮されたコンテンツファイルはたとえばＭＰＥＧファイルである。コンテンツ情報はコンテンツデータベース２３に格納された各コンテンツファイルに関する情報であり、各コンテンツファイルの所在を示す情報であるURIと、各コンテンツのメタデータとを含む。
【００２１】
コンテントディレクトリサービス２１は、コンテンツデータベース２３を管理し、コンテンツファイルをメディアレンダラ３にストリーミング配信する。コンテントディレクトリサービス２１はまた、コンテンツ情報をコントロールポイント１に送信する。
【００２２】
コネクションマネージャサービス２２は、メディアサーバ２からメディアレンダラ３にコンテンツをストリーミング配信するためのコネクションを確立し、管理する。
メディアサーバ２は、たとえばコンピュータ装置である。また、ＤＶＤプレーヤ、ＨＤＤプレイヤー、テレビチューナ、ラジオチューナであってもよく、ＣＤプレイヤやＭＰ３プレイヤ等のオーディオプレイヤであってもよい。
【００２３】
［メディアレンダラ］
メディアレンダラ３は、コネクションマネージャサービス３１と、ＡＶトランスポートサービス３２とを含む。コネクションマネージャサービス３１は、メディアサーバ２からコンテンツをダウンロードするためのコネクションを確立し、管理する。
ＡＶトランスポートサービス３２は、所望のコンテンツをストリーミング配信するようメディアサーバ２に要求する。ＡＶトランスポートサービス３２はまた、ストリーミング配信されたコンテンツの再生を制御する。具体的には、コントロールポイント１により指示された再生速度に応じて、コンテンツを再生する。また、再生中のコンテンツの再生位置を特定する。
メディアレンダラ３は、たとえばコンピュータ装置である。また、テレビ、ステレオ、スピーカ、オーディオプレイヤであってもよい。
【００２４】
［コントロールポイント］
図２を参照して、コントロールポイント１は、ＣＰＵ１１と、メモリ１２と、キーボードやマウス等の入力部１３と、コントローラプログラムを格納するハードディスクドライブ（ＨＤＤ）１４と、外部と通信するための通信部（Ｉ／Ｆ）１５と、ディスプレイ１６とを備える。これらはバスで相互に接続される。コントローラプログラムをメモリ１２にロードしてＣＰＵ１１で実行することにより、コントロールポイント１は、以下の動作を実行する。
【００２５】
コントロールポイント１は、ネットワーク上のメディアサーバ２及びメディアレンダラ３を捜しだし、図３に示すように、ディスプレイ１６の画面１００内のメディアレンダラリスト表示ウィンドウ１０１に表示する。図３では、２つのメディアレンダラ（ＭＲ１及びＭＲ２）が表示されており、ネットワークＡＶシステム上に２つのメディアレンダラ３が存在することを示している。
【００２６】
コントロールポイント１はまた、メディアサーバ２からコンテンツ情報を取得する。コントロールポイント１は、取得されたコンテンツ情報に基づいて、コンテナツリー表示ウィンドウ１０２に「アーティスト」、「アルバム」、「ジャンル」といった複数のコンテナをツリー状に表示する。コントロールポイント１はまた、選択されたコンテナ内のメタデータ（図３では曲名）のリストをコンテンツリスト表示ウィンドウ１０３に表示する。
【００２７】
ユーザ操作に基づいてメディアレンダラリスト表示ウィンドウ１０１内の複数のメディアレンダラ３の中から所望のメディアレンダラ３（たとえば「ＭＲ１」）が選択されると、選択されたメディアレンダラ３のステータスを監視ウィンドウ１０４に表示する。ここでいうステータスとはメディアレンダラ３の再生状態であり、たとえば、「停止」１０６や、「通常再生」１０５、「一時停止」１０７、「早送り」１０９や「巻き戻し」１０８である。たとえば、メディアレンダラ３が通常再生中のとき、コントロールポイント１は通常再生ボタン１０５を強調して表示する。メディアレンダラ３が早送り再生中のとき、コントロールポイント１は通常再生ボタン１０５と早送りボタン１０９とを強調して表示する。コントロールポイント１はまた、再生中、コンテンツの予想再生位置を再生位置表示部１１０に表示する。予想再生位置は、たとえば、コンテンツファイルの頭からの再生時間で表示される。
【００２８】
ユーザ操作に基づいてコンテンツリスト表示ウィンドウ１０３内の所望の曲名が選択され、かつ、選択された曲名のコンテンツの通常再生が選択されたとき、コントロールポイント１は、選択されたコンテンツを通常再生するようメディアレンダラ３に指示する。このとき、コントロールポイント１は、選択されたコンテンツの所在地を示すAVTransportURIと再生コマンドであるPlayActionと、再生速度（通常再生の場合、再生速度＝１倍）とを選択されたメディアレンダラ３に送信する。
【００２９】
コントロールポイント１は、選択されたメディアレンダラ３に関する情報を図４に示すステータスデータベースに登録する。
【００３０】
図４を参照して、ステータスデータベース内のPlayStateフィールドには、再生(PLAYING)、停止(STOPPED)、一時停止(PAUSED_PLAYBACK)といったステータスが登録される。PlaySpeedフィールドには、メディアレンダラ３が指示された再生速度が登録される。この再生速度は上述したとおり、コントロールポイント１によりメディアレンダラ３に指示される。URIフィールドには、選択されたコンテンツの所在場所を示すAVTransportURIが登録される。URIMetaDataフィールドには、選択されたコンテンツのメタデータが登録される。ステータスデータベースに登録されるステータス、再生速度、コンテンツの所在場所及びメタデータは、メディアレンダラ３から通知される。
【００３１】
TimeElapsedフィールドにはメディアレンダラ３で再生中のコンテンツの再生位置に関連した情報が登録される。TimeElapsed内のDispTimeフィールドには、メディアレンダラ３が再生中のコンテンツの予想再生位置が登録される。SysTimeフィールドには、DispTimeフィールドに登録された予想再生位置をディスプレイ１６に表示した時刻が登録される。ReqTimeフィールドには、コントロールポイント１がメディアレンダラ３に実際の再生位置を問い合わせた時刻が登録される。ステータスデータベースはメモリ１２に格納されている。
【００３２】
［動作］
上述のネットワークＡＶシステムの動作の概要について説明する。
【００３３】
図５を参照して、メディアレンダラ３は、メディアサーバ２からストリーミング配信されたコンテンツを受信し、通常再生（再生速度＝１倍）していると仮定する。コントロールポイント１がメディアレンダラ３に早送り再生（たとえば再生速度＝３倍）を指示したとき、メディアレンダラ３は早送り再生の指示を受け、再生速度が３倍となるように、バッファリングされた複数のフレームの中からＩピクチャ（フレーム）を順次抽出し、再生する。早送り再生を開始したとき、メディアレンダラ３はLastChange Stateをコントロールポイント１に送信する（図中（１））。LastChange Stateとは、メディアレンダラ３のステータスが変更したときに送信される変数(StateVariable)であり、再生速度（３倍）を含む。コントロールポイントはこれらの情報をステータスデータベースに登録する。
【００３４】
メディアレンダラ３がコンテンツを再生中、コントロールポイント１はステータスデータベースに登録された再生位置及び再生速度に基づいて、再生中のコンテンツの予想再生位置を時系列に演算し、演算するごとに予想再生位置を再生位置表示部１１０に表示する（図中（２））。これにより、再生位置表示部１１０に表示される予想再生位置は順次更新される。
【００３５】
データ圧縮されたコンテンツファイルを早送り再生する場合、上述のとおり、指示された再生速度どおりに早送り再生することができない。コンテンツファイル中のＩピクチャが必ずしも指示された再生速度に相当する位置に配列されているとは限らないためである。そのため、予想再生位置の演算を繰り返すほど、演算された予想再生位置は、メディアレンダラ３での実際の再生位置からずれる。
【００３６】
コントロールポイント１は、このような予想再生位置と実際の再生位置とのずれを補正するため、所定期間ごとにメディアレンダラ３に実際の再生位置を要求し、取得する（図中（３）及び（４））。そして、コントロールポイント１は、予想再生位置を取得した実際の再生位置と同期して、予想再生位置を補正する（図中（５））。
このように、コントロールポイント１は、予想再生位置を演算により求めて表示するが、メディアレンダラ３から実際の再生位置を随時取得して、予想再生位置を実際の再生位置と同期する。これにより、通信頻度を抑えつつ、コントロールポイント１で表示される再生位置と実際の再生位置とのずれを抑制できる。
上述の動作概要の詳細についてフロー図を用いて以下に説明する。
【００３７】
［監視処理］
コントロールポイント１は図６に示す監視処理を実行する。コントロールポイント１は、メディアレンダラ３のステータスが変化したか否かを監視し（Ｓ１）、メディアレンダラが現在再生中か否かを監視する（Ｓ３）。メディアレンダラ３のステータスが変化したとき、つまり、メディアレンダラ３からLastChangeを受信したとき（Ｓ１でＹＥＳ）、コントロールポイントはLastChange受信処理を実行する（Ｓ２）。LastChange受信処理では、メディアレンダラ３のステータスの変化をステータスデータベースに登録する。
【００３８】
一方、メディアレンダラ３が現在再生中のとき、つまり、ステータスデータベース内の"PlayState"フィールドが"Playing：再生"であるとき（Ｓ３）、コントロールポイント１は、再生位置更新処理を実行する（Ｓ４）。再生位置更新処理では、予想再生位置を順次演算し、再生位置表示部１１０に表示する。
【００３９】
以下、LastChange受信処理（Ｓ２）、再生位置更新処理（Ｓ４）について詳述する。
【００４０】
［LastChange受信処理］
図７を参照して、メディアレンダラ３からLastChangeを受信したとき、コントロールポイント１はまず、ステータスデータベースに登録されている情報（ステータス、再生速度、コンテンツ、メタデータ）のうち、どの情報が変更されたのかを判断する（Ｓ２０１〜Ｓ２０４）。変更された情報は、LastChange内のStateVariableに記述されている。
【００４１】
［メディアレンダラがステータスを変更した場合］
StateVariableが"TransportState"である場合（Ｓ２０１でＹＥＳ）、メディアレンダラ３のステータスが変更されたことを示す。そこで、コントロールポイント１はTransportStateの値を調べ（Ｓ２０６〜Ｓ２０８）、どのステータス（再生、停止、一時停止）に変更されたのかを判断する。
【００４２】
TransportStateの値が"PLAYING"である場合（Ｓ２０６でＹＥＳ）、コントロールポイント１は、メディアレンダラ３のステータスが再生に変更されたと判断する。このとき、コントロールポイント１は、再生に変更される直前のメディアレンダラ３のステータスを確認する。具体的には、コントロールポイント１はステータスデータベースのPlayStateの値が"PAUSED_PLAYBACK"であるか否かを判断する（Ｓ２１０）。"PAUSED_PLAYBACK"である場合（Ｓ２１０でＹＥＳ）、コントロールポイント１は、メディアレンダラ３が直前まで一時停止していたが、一時停止を解除して再生を再開したと判断する。このとき、コントロールポイント１は、監視ウィンドウ１０４内の再生ボタン１０５を強調して表示する（Ｓ２１３）。コントロールポイント１のユーザは、監視ウィンドウ１０４を見れば、メディアレンダラ３が再生を再開したことを一見して把握できる。表示後、ステータスデータベース内のPlayStateフィールドに"PLAYING（再生）"を登録する（Ｓ２０９）。
【００４３】
一方、ステップＳ２１０の判断の結果、ステータスデータベースのPlayStateの値が"PAUSED_PLAYBACK"でない場合（Ｓ２１０でＮＯ）、コントロールポイント１は、メディアレンダラ３がコンテンツを最初から再生すると判断する。そのため、コントロールポイント１は、TimeElapsed内の予想再生位置（DispTime）をリセットし、SysTime及びReqTimeに現在の時刻（LastChange受信処理を実施した時刻）を登録する（Ｓ２１４）。これらのTimeElapsed情報は、後述する再生位置更新処理（Ｓ４）で予想再生位置を演算するときに利用される。登録後、コントロールポイント１は再生ボタン１０５を強調して表示し（Ｓ２１３）、ステータスデータベース内のPlayStateフィールドに"PLAYING"を登録する（Ｓ２０９）。
【００４４】
ステップＳ２０６での判断の結果、TransportStateの値が"STOPPED"である場合（Ｓ２０６でＮＯ、Ｓ２０７でＹＥＳ）、コントロールポイント１は、メディアレンダラ３がコンテンツの再生を停止したと判断する。そのため、コントロールポイント１は、停止ボタン１０６を強調して表示し（Ｓ２１１）、ステータスデータベース内のPlayStateフィールドに"STOPPED（停止）"を登録する（Ｓ２０９）。
【００４５】
TransportStateの値が"PAUSED_PLAYBACK"である場合（Ｓ２０６及びＳ２０７でＮＯ、Ｓ２０８でＹＥＳ）、コントロールポイント１は、メディアレンダラ３がコンテンツの再生を一時停止したと判断する。そのため、コントロールポイント１は、一時停止ボタン１０７を強調して表示し（Ｓ２１２）、ステータスデータベース内のPlayStateフィールドに"PAUSED_PLAYBACK（一時停止）"を登録する（Ｓ２０９）。
【００４６】
［メディアレンダラが再生速度を変更した場合］
StateVariableが"TransportPlaySpeed"である場合（Ｓ２０１でＮＯ、Ｓ２０２でＹＥＳ）、メディアレンダラ３の再生速度が変更されたことを示す。このとき、コントロールポイント１はTransportPlaySpeedの値を調べる（Ｓ２１５）。TransportPlaySpeedの値が"１"でない場合（Ｓ２０６でＮＯ）、コントロールポイント１は、メディアレンダラ３が早送り再生、巻き戻し再生等の特殊再生を開始したと判断する。そのため、コントロールポイント１は、TransportPlaySpeedの値（たとえば、３倍速であれば"３"）をステータスデータベース内のPlaySpeedに登録する（Ｓ２１９）。再生位置更新処理（Ｓ４）において、PlaySpeedを用いて予想再生位置を演算するためである。なお、コントロールポイント１は、早送り再生時には監視ウィンドウ１０４内の再生ボタン１０５と早送りボタン１０９とを強調して表示し、巻き戻し再生時には再生ボタン１０５と巻き戻しボタン１０８とを強調して表示する。
【００４７】
一方、TransportStateの値が「１」である場合（Ｓ２１５でＹＥＳ）、コントロールポイント１は、メディアレンダラ３が特殊再生を終了し通常再生を開始したと判断する。このとき、コントロールポイント１は、メディアレンダラ３が再生中のコンテンツの現在の再生位置を要求し、取得する（Ｓ２１６）。具体的には、コントロールポイント１はGetPositionInfoアクションをメディアレンダラ３に送信する。メディアレンダラ３は、GetPositionInfoアクションを受信し、再生中のコンテンツの現在の再生位置を特定する。メディアレンダラ３は特定された再生位置を示すRelTimeをコントロールポイント１に送信する。
【００４８】
RelTimeを受信したコントロールポイント１は、ステータスデータベース内のTimeElapsedを更新する（Ｓ２１８）。コントロールポイント１は、DispTime内の予想再生位置をステップＳ２１６で受信したRelTimeに更新する。要するに、予想再生位置を実際の再生位置と同期する。また、SysTime及びReqTimeに、現在の時刻（つまり、LastChange受信処理を実施した時刻）を登録する。この動作により、特殊再生中の予想再生位置がメディアレンダラ３での実際の再生位置とずれていても、通常再生時に、そのずれを補正できる。通常再生の場合、後述する再生位置更新処理により演算された予想再生位置は実際の再生位置からずれない。なぜなら、通常再生ではＭＰＥＧファイル内の全てのフレーム（Ｉ、Ｂ、Ｐピクチャ）を再生するため、指示された再生速度（＝１倍）と実際の再生速度とがずれないためである。そのため、通常再生開示時の再生位置をメディアレンダラ３から取得すれば、取得された再生位置に基づいて演算された予想再生位置は、実際の再生位置からずれることなく、コントロールポイント１は、正確な再生位置を表示できる。
【００４９】
ステップＳ２１８でTimeElapsedを更新後、コントロールポイント１は、ステータスデータベース内のPlaySpeedにTransportPlaySpeedの値（つまり「１」）を登録する（Ｓ２１９）。再生位置更新処理（Ｓ４）において、予想再生位置を演算するためである。
【００５０】
［メディアレンダラが再生するコンテンツを変更した場合］
State VariableがAVTransportURIである場合（Ｓ２０１及びＳ２０２でＮＯ、Ｓ２０３でＹＥＳ）、コントロールポイント１は、メディアレンダラ３が新たなコンテンツを再生の対象にしたと判断する。そのため、コントロールポイント１は、ステータスデータベース内のURIフィールドに受信したAVTransportURIを登録する（Ｓ２１７）。これにより、コントロールポイント１はメディアレンダラ３が再生するコンテンツを特定できる。
State VariableがAVTransportURIMetaDataである場合（Ｓ２０１〜Ｓ２０３でＮＯ、Ｓ２０４でＹＥＳ）、コントロールポイント１は、ステータスデータベース内のURIMetaDataフィールドに受信したAVTransportURIMetaDataの値を登録する（Ｓ２０５）。これにより、コントロールポイント１はメディアレンダラ３が再生するコンテンツのメタデータを記憶する。
【００５１】
［再生位置更新処理］
図６中のＳ３において、ステータスデータベース内のPlayStateがPlaying（再生）である場合、メディアレンダラ３は通常再生中又は特殊再生中である。このとき、コントロールポイント１は再生位置表示部１１０に表示された予想再生位置を順次更新して表示するため、再生位置更新処理を所定期間ごとに実行する（Ｓ４）。
【００５２】
図８を参照して、コントロールポイント１はまず、ステータスデータベース内のPlaySpeedの値が「１」であるか否かを判断する（Ｓ４０１）。つまり、メディアレンダラ３が現在通常再生中か特殊再生中かを判断する。
【００５３】
［メディアレンダラが通常再生中である場合］
PlaySpeedの値が「１」のとき、つまりメディアレンダラ３が通常再生中である場合、コントロールポイント１は演算処理（Ｓ４２０）を実行し、予想再生位置を演算して表示する。
演算処理ではまず、以下の式（１）に基づいて予想再生位置（DispTime）を演算する（Ｓ４２１）。
DispTime=DispTime+PlaySpeed×(SystemTime-SysTime)  （１）
ここで、右辺の"DispTime"は、ステータスデータベース内のDispTimeに登録されている予想再生位置である。"PlaySpeed"はステータスデータベース内のPlaySpeedに登録されている値である。"SysTime"はステータスデータベース内のSysTimeに登録されている値である。また、"SystemTime"は、ステップ４２１の実行時の時刻である。
【００５４】
演算後、コントロールポイント１は、演算により求めた予想再生位置を、ステータスデータベース内のDispTimeフィールドに登録する（Ｓ４２２）。また、Ｓ４２１で利用したSystemTimeをステータスデータベース内のSysTimeフィールドに登録する（Ｓ４２３）。登録後、コントロールポイント１はＳ４２２で登録された予想再生位置を再生位置表示部１１０に表示する（Ｓ４２４）。
【００５５】
要するに、メディアレンダラ３が通常再生中の場合、コントロールポイント１は、演算により予想再生位置を求め、表示する。通常再生中は、メディアサーバ２はコンテンツファイル内の全てのフレームを再生する。そのため、演算された予想再生位置は、メディアレンダラ３で実際に再生中のコンテンツの再生位置と一致し、ずれない。
【００５６】
［メディアレンダラが特殊再生中である場合］
ステップＳ４０１の判断の結果、PlaySpeedの値が「１」以外の場合、つまり、メディアレンダラ３が早送り再生や巻き戻し再生といった特殊再生中である場合、コントロールポイント１は、演算処理を実行するとともに（Ｓ４２０）、同期処理も実行する（Ｓ４１０）。
【００５７】
演算処理（Ｓ４２０）は、PlaySpeedが「１」の場合と同様である。しかしながら、メディアレンダラ３が特殊再生中の場合、演算処理により演算された予想再生位置と、メディアレンダラ３で実際に特殊再生中のコンテンツの再生位置とがずれる場合が生じる。同期処理（Ｓ４１０）は、このようなずれを補正し、コントロールポイント１が記憶する予想再生位置を実際の再生位置と同期する（Ｓ４１０）。
【００５８】
同期処理ではまず、以下の式（２）を満たすか否かを判断する（Ｓ４１１）。
ReqTime<SystemTime−しきい値  （２）
ここで、ReqTimeはステータスデータベース内のReqTimeの値である。要するに、Ｓ４１１では、ReqTimeから所定期間（しきい値）が経過したか否かを判断する。
【００５９】
式（２）を満足しなかったとき、つまり、所定期間を経過していないとき（Ｓ４１１でＮＯ）、コントロールポイント１は同期処理を終了し、演算処理（Ｓ４２０）を実行する。
【００６０】
一方、Ｓ４１１で式（２）を満足したとき、つまり、ReqTimeから所定期間が経過したとき（Ｓ４１１でＹＥＳ）、コントロールポイント１は、ステータスデータベース内のDispTimeの値、つまり、予想再生位置を、メディアレンダラ３での実際の再生位置と同期する（Ｓ４１２及びＳ４１３）。コントロールポイント１は、GetPositionInfoアクションをメディアレンダラ３に送信する。メディアレンダラ３はGetPositionInfoアクションに応じて現在の再生位置を特定し、特定された再生位置を示すRelTimeを送信する。以上の動作により、コントロールポイント１はRelTimeを取得する（Ｓ４１２）。
【００６１】
コントロールポイント１は、取得したRelTimeの値をステータスデータベース内のDispTimeフィールドに登録する。つまり、予想再生位置を実際の再生位置と同期する。コントロールポイント１はまた、SysTime及びReqTimeの値を現在時刻（SystemTime）に更新する（Ｓ４１３）。所定期間経過後に再びRelTimeを取得するためである。
【００６２】
以上の動作により、メディアレンダラ３が特殊再生中の場合、ステータスデータベース内の予想再生位置を定期的に実際の再生位置に更新する。そのため、演算された予想再生位置が実際の再生位置からずれても、所定期間ごとに実際の再生位置に同期される。そのため、メディアレンダラ３及びコントロールポイント１に通信負荷をかけることなくコントロールポイント１に表示される再生位置の精度を上げることができる。
【００６３】
以上、本実施の形態では、特殊再生の一例として早送り再生時の再生位置更新処理について説明したが、巻き戻し再生時の再生位置更新処理も早送り再生時の場合と同様である。また、特殊再生の一例として、メディアレンダラ３がバッファリングされた複数のフレームの中からＩピクチャを抽出して再生するとしたが、特殊再生時にメディアサーバがＩピクチャを抽出し、抽出されたＩピクチャをメディアレンダラ３に順次ストリーミング配信してもよい。この場合、メディアレンダラ３が受信したフレームを順次再生すれば、特殊再生が実行される。
本実施の形態では、コントロールポイント１がメディアレンダラ３に対して再生速度を指示するとしたが、たとえば、ユーザ操作に基づいてメディアレンダラ３に直接再生速度指示が入力されてもよい。この場合、メディアレンダラ３は、入力された再生速度をLastChangeに含めてコントロールポイント１に送信する。
また、メディアレンダラ３がメディアサーバ２からコンテンツのストリーミング配信を受け、コンテンツを再生するとしたが、メディアレンダラ３がデータ圧縮ファイルを蓄積しており、蓄積されたファイルを再生してもよい。
本実施の形態では、コントロールポイント１と、メディアサーバ２と、メディアレンダラ３とを互いに独立したデバイスとしたが、１つのデバイスがコントロールポイント１とメディアサーバ２とを備えていてもよいし、１つのデバイスがコントロールポイント１とメディアレンダラ３とを備えていてもよい。
また、本実施の形態では、データ圧縮方式をＭＰＥＧ方式としたが、他の方式であってもよい。たとえば、ＡＶＩ(Audio Video Interleaved)ファイル、ＭＰ３ファイル等であってもよい。
【００６４】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態によるネットワークＡＶシステムの構成を示す機能ブロック図である。
【図２】図１中のコントロールポイントの構成の詳細を示す機能ブロック図である。
【図３】図２中のディスプレイに表示される画面の一例を示す模式図である。
【図４】図２中のメモリに格納されるステータスデータベースのデータ構造を示す図である。
【図５】図１に示したネットワークＡＶシステムの動作の概要を示す模式図である。
【図６】図１中のコントロールポイントの監視処理の詳細を示すフロー図である。
【図７】図６中のステップＳ２の動作の詳細を示すフロー図である。
【図８】図６中のステップＳ４の動作の詳細を示すフロー図である。
【符号の説明】
【００６６】
１  コントロールポイント
２  メディアサーバ
３  メディアレンダラ
１６  ディスプレイ
２１  コンテントディレクトリサービス
２３  コンテンツデータベース
２４  コンテンツ情報データベース
３２  ＡＶトランスポートサービス
【図１】
0004830542.tif 000002
【図２】
0004830542.tif 000003
【図３】
0004830542.tif 000004
【図４】
0004830542.tif 000005
【図５】
0004830542.tif 000006
【図６】
0004830542.tif 000007
【図７】
0004830542.tif 000008
【図８】
0004830542.tif 000009