(57)【要約】  ホスト装置１０およびクライアント装置１８の時刻は同期化されており、ホスト装置１０およびクライアント装置１８は、コンテンツ配信サーバ１６からコンテンツデータをプログレッシブダウンロードする。ホスト装置１０は、ホスト装置１０およびクライアント装置１８におけるダウンロード状況をもとに、ホスト装置１０およびクライアント装置１８の再生処理を同期させるように制御する。
2010023828.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ配信サーバとホスト装置と１つ以上のクライアント装置とがネットワークで接続された情報処理システムであって、
前記クライアント装置は、
前記コンテンツ配信サーバからダウンロードしたコンテンツデータを記憶する第１記憶部と、
前記第１記憶部に記憶されたコンテンツデータを再生する第１処理部と、
コンテンツデータのダウンロード状況を検出する第１検出部と、
検出したダウンロード状況を前記ホスト装置に通知する第１通知部と、
を備え、
前記ホスト装置は、
前記クライアント装置から通知されたダウンロード状況を取得する取得部と、
通知されたダウンロード状況をもとに、クライアント装置の再生処理を制御する制御部と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記ホスト装置は、
前記コンテンツ配信サーバからダウンロードしたコンテンツデータを記憶する第２記憶部と、
前記第２記憶部に記憶されたコンテンツデータを再生する第２処理部と、
コンテンツデータのダウンロード状況を検出する第２検出部と、をさらに備え、
前記制御部は、前記第１処理部および前記第２処理部による再生処理を同期させることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記第１通知部は、ダウンロード済みのデータ量を、ダウンロード状況として前記ホスト装置に通知し、
前記制御部は、
通知されたデータ量をもとに、同期再生可能な最終フレームを特定する導出部を有し、
前記ホスト装置は、
最終フレーム情報を前記クライアント装置に通知する第２通知部をさらに備えることを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記第１処理部は、前記第２通知部より通知される最終フレーム情報で特定されるフレームを再生すると、再生処理を停止することを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記第１処理部は、前記第２通知部から通知された最終フレーム情報を取得すると、保持している最終フレーム情報を更新することを特徴とする請求項３または４に記載の情報処理システム。
【請求項６】
前記第１通知部は、ダウンロード済みのデータのフレームに関する情報を、ダウンロード状況として前記ホスト装置に通知し、
前記制御部は、
通知された前記フレームに関する情報をもとに、同期再生可能なフレームを特定する導出部を有し、
前記ホスト装置は、
同期再生可能なフレームを特定するフレーム情報を、前記クライアント装置に通知する第２通知部をさらに備えることを特徴とする請求項１または２に記載の情報処理システム。
【請求項７】
前記第１処理部は、前記第２通知部より通知されるフレーム情報で特定される最終フレームを再生すると、再生処理を停止することを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記第１処理部は、前記第２通知部から通知されたフレーム情報を取得すると、保持しているフレーム情報を更新することを特徴とする請求項６または７に記載の情報処理システム。
【請求項９】
前記第１通知部は、所定の周期でダウンロード状況を前記ホスト装置に通知することを特徴とする請求項１から８のいずれかに記載の情報処理システム。
【請求項１０】
コンテンツ配信サーバからダウンロードしたコンテンツデータを記憶する記憶部と、
前記記憶部に記憶されたコンテンツデータを再生する処理部と、
コンテンツデータのダウンロード状況を検出する検出部と、
検出したダウンロード状況をホスト装置に通知する通知部と、を備えた情報処理装置であって、
前記処理部は、ホスト装置から通知される最終フレーム情報で特定されるフレームを再生すると、再生処理を停止することを特徴とする情報処理装置。
【請求項１１】
コンピュータに、
記憶部にダウンロードされたコンテンツデータを再生する機能と、
コンテンツデータのダウンロード状況を検出する機能と、
検出したダウンロード状況をホスト装置に通知する機能とを実現させるためのプログラムであって、
コンテンツデータの再生機能は、ホスト装置から通知される最終フレーム情報で特定されるフレームを再生すると、再生処理を停止することを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツデータを処理する情報処理装置で利用される技術に関し、特にネットワークに接続された複数の情報処理装置が同期してコンテンツデータを再生する技術に関する。
【背景技術】
【０００２】
インターネットを介して、映像（動画像）や音楽などのコンテンツデータを配信するサービスが普及している。特に近年では、高速なネットワーク環境が整備されたことにともなって、プログレッシブダウンロード方式のサービスが実用化され、映像データを、情報処理装置の大容量記憶装置にダウンロードしながら、同時に再生を行うことも可能となっている。【０００３】
また、多数の端末間で通信を行う際のアーキテクチャとして、ピアツーピア（Peer to Peer、以下「Ｐ２Ｐ」と呼ぶ）方式による通信技術が注目されている。Ｐ２Ｐ方式では、一般ユーザの端末装置に対して、他のユーザの端末装置が直接アクセスすることを特徴とし、サーバにトラフィックが集中するクライアント−サーバ方式と比較すると、端末数が膨大になっても回線帯域などに余裕がある限りにおいて通信を可能とする利点がある。近年では、Ｐ２Ｐ方式でコンテンツデータを配信するサービスも実用化されつつある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６５６３９９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現実世界では、友人同士で映画館に行ったり、また友人宅に集合して、映画鑑賞することがある。友人と一緒に映画を見ることで、一緒に感動を分かち合え、映画をより楽しめる。しかしながら、実際にはスケジュール調整など難しいことも多く、特に遠隔地の友人と集合することは難しい。そこでインターネットを利用して、仮想的な映画館を構築し、複数人で感動を共有できる環境を提供することが好ましい。【０００６】
そこで本発明は、複数の情報処理装置が同期してコンテンツデータを再生する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の情報処理システムは、コンテンツ配信サーバとホスト装置と１つ以上のクライアント装置とがネットワークで接続された情報処理システムである。クライアント装置は、コンテンツ配信サーバからダウンロードしたコンテンツデータを記憶する第１記憶部と、第１記憶部に記憶されたコンテンツデータを再生する第１処理部と、コンテンツデータのダウンロード状況を検出する第１検出部と、検出したダウンロード状況をホスト装置に通知する第１通知部とを備える。ホスト装置は、クライアント装置から通知されたダウンロード状況を取得する取得部と、通知されたダウンロード状況をもとに、クライアント装置の再生処理を制御する制御部とを備える。コンテンツデータは、動画像データであってよい。【０００８】
本発明の別の態様は、情報処理装置である。この装置は、コンテンツ配信サーバからダウンロードしたコンテンツデータを記憶する記憶部と、記憶部に記憶されたコンテンツデータを再生する処理部と、コンテンツデータのダウンロード状況を検出する検出部と、検出したダウンロード状況をホスト装置に通知する通知部とを備え、処理部は、ホスト装置から通知される最終フレーム情報で特定されるフレームを再生すると、再生処理を停止する。【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、複数の情報処理装置が同期してコンテンツデータを再生する技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例にかかる情報処理システムを示す図である。
【図２】（ａ）は出力装置に表示される映画再生画面の一例を示す図であり、（ｂ）は出力装置に表示される映画再生画面の別の例を示す図である。
【図３】チャット接続を確立する処理を示すシーケンス図である。
【図４】コンテンツデータの再生処理機能を備えたクライアント装置の構成を示す図である。
【図５】コンテンツデータの再生処理機能およびクライアント装置の制御機能を備えたホスト装置の構成を示す図である。
【図６】ホスト装置がクライアント装置との間の同期再生処理を制御するシーケンス図である。
【図７】（ａ）は、コンテンツデータをプログレッシブダウンロードしたときのダウンロード状況を示す図であり、（ｂ）は、コンテンツデータをＰ２Ｐ方式でダウンロードしたときのダウンロード状況を示す図である。
【図８】（ａ）は、コンテンツデータの動画ファイルを説明するための説明図であり、（ｂ）は、インデックスファイルを説明するための説明図である。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施例にかかる情報処理システム１を示す。情報処理システム１は、ホスト装置１０と、コンテンツ配信サーバ１６と、クライアント装置１８ａ、１８ｂ、１８ｃ（以下、総称する場合は「クライアント装置１８」と呼ぶ）と、ネットワークサーバ２０とを備える。ホスト装置１０、コンテンツ配信サーバ１６、クライアント装置１８およびネットワークサーバ２０は、ネットワーク１４で通信可能に相互に接続されている。ネットワーク１４は、たとえばＴＣＰ／ＩＰプロトコルを用いるインターネットであってよい。
【００１３】
クライアント装置１８ａ、１８ｂ、１８ｃおよびホスト装置１０のそれぞれは、処理結果を出力する出力装置１２ａ、１２ｂ、１２ｃ、１２ｄ（以下、総称する場合は「出力装置１２」と呼ぶ）を備える。出力装置１２は、画像を出力するディスプレイと、音声を出力するスピーカを有するテレビであってよい。
【００１４】
コンテンツ配信サーバ１６は、ビデオ配信会社などにより運営されて、ホスト装置１０およびクライアント装置１８に対して、コンテンツデータを提供する。たとえばコンテンツデータは、ＭＰＥＧ２形式で圧縮されたＡＶデータであってよい。ホスト装置１０およびクライアント装置１８は、コンテンツ配信サーバ１６から映画などのＡＶデータをプログレッシブダウンロード方式で取得する。これによりホスト装置１０およびクライアント装置１８は、ハードディスクドライブなどで構成される記憶部にＡＶデータをダウンロードしながら、同時に出力装置１２に映像および音声を出力できる。実施例の情報処理システム１は、複数の人間が別々の場所にいながら、あたかも一緒に映画鑑賞をしているような環境を提供する。
【００１５】
高速通信を可能とするブロードバンドネットワークの普及により、インターネットに接続した情報処理装置同士の間で、ビデオやオーディオなどのストリームや、テキストデータを送受信することが可能となっている。各情報処理装置が、受信したストリームやテキストデータを再生することで、仮想的な空間を共有するチャットシステムが構築される。情報処理システム１の１つの態様においては、ネットワークサーバ２０がチャットシステムを構築しつつ、ホスト装置１０が、映画などのコンテンツデータを、ホスト装置１０自身も含む複数の情報処理装置で同期して再生させることで、仮想的な映画館を構築する。
【００１６】
情報処理システム１において、ホスト装置１０は、クライアント装置１８とともに、映画などのコンテンツデータを同期再生する情報処理装置として動作する。ホスト装置１０は、コンテンツデータの再生処理機能に加えて、クライアント装置１８の再生処理を制御する役割をもつ。たとえば情報処理システム１において、複数のユーザが同じ映画を視聴しようとする場合に、一人のユーザの情報処理装置がホスト装置１０として動作し、残りのユーザの情報処理装置がクライアント装置１８として動作してもよい。なおホスト装置１０の機能は、ネットワーク１４に接続する管理サーバ（図示せず）により実現されてもよく、このとき管理サーバは、コンテンツデータの再生処理機能を有する必要はない。
【００１７】
図２（ａ）は、出力装置１２に表示される映画再生画面の一例を示す。出力装置１２の画面には、プログレッシブダウンロードしている映画が再生表示され、画面の一部に、同じ映画を視聴しているユーザを表示するビデオチャットウィンドウ２２が形成される。各ユーザはカメラおよびマイクを有し、カメラで撮影された画像データおよびマイクで取得された音声データは、ネットワーク１４を介して他のユーザの情報処理装置にストリーム配信される。図示されるようにビデオチャットウィンドウ２２には、自身以外のユーザの映像がリアルタイムに表示され、また音声がリアルタイムに出力される。このように情報処理システム１は、ビデオチャットシステムを構築することで、仮想的な映画館を実現でき、複数ユーザが同時に映画を楽しむことができる。なお情報処理システム１は、各情報処理装置から音声データのみをストリーム配信して、ボイスチャットシステムを構築してもよい。
【００１８】
図２（ｂ）は、出力装置１２に表示される映画再生画面の別の例を示す。出力装置１２の画面には、プログレッシブダウンロードしている映画が再生表示され、画面の一部に、他のユーザが入力したテキストデータを表示するテキストチャットウィンドウ２４が形成される。各ユーザはキーボードなどのテキスト入力装置を有し、テキスト入力装置から入力されたテキストデータは、ネットワーク１４を介して他のユーザの情報処理装置に送信される。このように情報処理システム１は、テキストチャットシステムを構築して、仮想的な映画館を実現してもよい。
【００１９】
実施例の情報処理システム１では、ホスト装置１０となる１台の情報処理装置が、チャット用の仮想的な部屋（チャットルーム）をネットワークサーバ２０に生成させる。ホスト装置１０のホストユーザは、チャットルームに招待するゲストユーザを指定して、そのゲストユーザの情報処理装置に対して招待メッセージをホスト装置１０から送信する。ゲストユーザが情報処理装置を介してチャットルームへの招待に同意し、チャットルームに入室すると、チャットルームに入室したユーザ同士の間でチャットシステムが構築される。
【００２０】
図３は、チャット接続を確立する処理を示すシーケンス図である。ネットワークサーバ２０は、情報処理システム１に参加する情報処理装置のネットワークＩＤ、アドレス情報およびユーザＩＤを対応づけて管理している。まずホスト装置１０が、チャットルームの生成要求を作成する（Ｓ１０）。チャットルームの生成要求はネットワークサーバ２０に送信され（Ｓ１２）、ネットワークサーバ２０は、チャットルームを生成する（Ｓ１４）。ホスト装置１０は、複数の他人のユーザＩＤを予め保持しており、チャットルームに招待するゲストユーザを選択して（Ｓ１６）、ゲストユーザのユーザＩＤおよび招待メッセージをネットワークサーバ２０に送信する（Ｓ１８）。
【００２１】
ネットワークサーバ２０は、ゲストユーザのユーザＩＤから、ゲストユーザの情報処理装置（クライアント装置１８）のネットワークＩＤを特定し（Ｓ２０）、そのネットワークＩＤに対応づけられているアドレスに招待メッセージを転送する（Ｓ２２）。クライアント装置１８は、招待メッセージに同意することを示す入室要求を生成し（Ｓ２４）、ネットワークサーバ２０に送信する（Ｓ２６）。それを受けてネットワークサーバ２０は、ゲストユーザのチャットルームへの入室を許可し（Ｓ２８）、ホスト装置１０にクライアント装置１８のアドレス情報を送信する（Ｓ３０）。ホスト装置１０は、送信されたアドレス情報をもとにクライアント装置１８にアクセスし、チャット接続を確立する（Ｓ３２）。これにより、ホスト装置１０のホストユーザと、クライアント装置１８のゲストユーザが、チャットすることが可能となる。
【００２２】
ホスト装置１０は、他の情報処理装置との間でも同様の処理をすることで、複数のゲストユーザがチャットルームに入室できる。チャットルームに入室した全てのユーザのアドレス情報が、それぞれのクライアント装置１８に通知されて、ホスト装置１０および各クライアント装置１８は、自分以外の入室ユーザに対して、ストリームデータまたはテキストデータを送信する。これにより、チャットルームに入室したユーザ同士の間でチャットすることが可能となる。
【００２３】
ホスト装置１０は、チャットルームに入室した全ユーザのアドレス情報を保持する。本実施例の情報処理システム１においては、ホスト装置１０が、コンテンツ配信サーバ１６に対して、ダウンロードを要求するコンテンツデータを特定する情報と、チャットルームに入室した全ユーザのアドレス情報を通知し、コンテンツ配信サーバ１６が、通知された全てのアドレスに、コンテンツデータを配信する。これにより、ホスト装置１０およびクライアント装置１８がコンテンツデータを同期再生する環境が整えられる。
【００２４】
なお、ホスト装置１０および各クライアント装置１８が、コンテンツ配信サーバ１６に対して、接続要求とともに、ダウンロードを要求するコンテンツデータを特定する情報をそれぞれ送信してもよい。コンテンツ配信サーバ１６は、接続要求を送信したホスト装置１０およびクライアント装置１８に対して、コンテンツデータを配信する。このようにして、ホスト装置１０およびクライアント装置１８がコンテンツデータを同期再生する環境が整えられてもよい。
【００２５】
このとき、ホスト装置１０がコンテンツ配信サーバ１６に対してチャットルームに入室した全ユーザのアドレス情報を予め通知しておき、ホスト装置１０およびクライアント装置１８が、コンテンツ配信サーバ１６に対して、接続要求とともに、ダウンロードを要求するコンテンツデータを特定する情報をそれぞれ送信してもよい。コンテンツ配信サーバ１６は、予め通知されたアドレス情報をもとに、ホスト装置１０またはクライアント装置１８から送信された接続要求に応答してよいか判定する。具体的にコンテンツ配信サーバ１６は、接続要求を送信した情報処理装置のアドレス情報が予め通知された複数のアドレス情報の中に存在していれば、接続要求に対して応答可能であることを判定して、その情報処理装置に対してコンテンツデータを配信してもよい。
【００２６】
図４は、コンテンツデータの再生処理機能を備えたクライアント装置１８の構成を示す。クライアント装置１８は、受信部４０、ダウンロード状況検出部６０、記憶部６２、再生処理部６４、通知部６６、要求入力部６８および送信部７０を備える。受信部４０は、コンテンツデータ取得部４２、指示取得部４４、クロック情報取得部４６および最終フレーム情報取得部４８を有する。
【００２７】
図５は、コンテンツデータの再生処理機能およびクライアント装置の制御機能を備えたホスト装置１０の構成を示す。ホスト装置１０は、受信部８０、ダウンロード状況検出部１００、記憶部１０２、再生処理部１０４、通知部１０６、要求入力部１０８、送信部１１０、ダウンロード指示部１１２および制御部１２０を備える。受信部８０は、コンテンツデータ取得部８２、クロック情報取得部８４、ダウンロード状況取得部８６、応答取得部８８および要求取得部９０を有する。制御部１２０は、エコー要求生成部１２２、再生指示生成部１２４、停止指示生成部１２６、早送り指示生成部１２８、巻戻し指示生成部１３０および最終フレーム情報導出部１３２を有する。
【００２８】
図４および図５において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２９】
既述したように、ホスト装置１０およびクライアント装置１８は、同一の処理機能を有する情報処理装置であってよい。したがって、情報処理装置がホスト装置１０として動作する場合には、情報処理装置に図５に示す機能ブロックが構築され、クライアント装置１８として動作する場合には、情報処理装置に図４に示す機能ブロックが構築される。本実施例のホスト装置１０は、クライアント装置１８と同様にコンテンツデータの再生処理機能を有しており、具体的には、図５に示すコンテンツデータ取得部８２、クロック情報取得部８４、ダウンロード状況検出部１００、記憶部１０２、再生処理部１０４などの構成が、再生処理機能を担当する。これらの構成は、図４に示すコンテンツデータ取得部４２、クロック情報取得部４６、ダウンロード状況検出部６０、記憶部６２、再生処理部６４などの構成と同じ動作を行う。記憶部６２および記憶部１０２は、ハードディスクドライブなどの大容量記憶装置により構成されてよい。
【００３０】
以下、図４および図５を参照して、クライアント装置１８およびホスト装置１０の動作を説明する。クライアント装置１８およびホスト装置１０は、それぞれクロック情報取得部４６およびクロック情報取得部８４においてＮＴＰ（Network Time Protocol）による時刻情報を受信し、ＵＴＣ（Universal Time Coordinated）を基準とする時刻同期がとられている。なお、ＮＴＰに基づくＵＴＣによる時刻同期は例示であって、クロック情報取得部４６およびクロック情報取得部８４は、ネットワーク１４上でシェア可能な他のクロック情報を取得して、時刻同期をとってもよい。またクライアント装置１８およびホスト装置１０のいずれか１つの装置のローカルなクロック情報を基準として、全装置における時刻同期がとられてもよい。
【００３１】
まずホストユーザが視聴するコンテンツを選択すると、ダウンロード指示部１１２が、選択されたコンテンツを特定する情報と、配信先となるホスト装置１０およびクライアント装置１８のアドレス情報を含むダウンロード指示を生成する。送信部１１０は、ダウンロード指示をコンテンツ配信サーバ１６に送信する。なお既述したように、このダウンロード指示は、情報処理装置のそれぞれから接続要求とともにコンテンツ配信サーバ１６に送信されてもよく、この場合は、クライアント装置１８が、ダウンロード指示部１１２を有して、コンテンツを特定する情報を含むダウンロード指示を生成し、送信部７０がダウンロード指示をコンテンツ配信サーバ１６に送信する。
【００３２】
コンテンツ配信サーバ１６は、ダウンロード指示を受信すると、ダウンロード指示に含まれるコンテンツ特定情報およびアドレス情報をもとに、コンテンツデータを、ホスト装置１０およびクライアント装置１８に配信する。これにより、ホスト装置１０およびクライアント装置１８は、コンテンツデータのダウンロードを開始する。
【００３３】
クライアント装置１８において、コンテンツデータ取得部４２は、ダウンロードしたコンテンツデータを取得し、記憶部６２に記憶する。このときダウンロード状況検出部６０は、コンテンツデータのダウンロード状況を検出する。たとえば映像のコンテンツデータがＭＰＥＧ２形式で圧縮されている場合、ダウンロード状況検出部６０は、ダウンロード済みのデータ量すなわちダウンロードサイズを、ダウンロード状況として検出する。通知部６６は、検出したダウンロード状況をホスト装置１０に送信部７０を介して所定の周期で通知する。通知部６６による通知周期は、ダウンロード状況検出部６０による検出周期と同じであってよく、たとえば数秒に設定される。
【００３４】
ホスト装置１０においても、コンテンツデータ取得部８２が、ダウンロードしたコンテンツデータを取得し、記憶部１０２に記憶する。ダウンロード状況検出部１００は、所定の周期でコンテンツデータのダウンロード状況を検出する。ダウンロード状況検出部６０と同様に、映像のコンテンツデータがＭＰＥＧ２形式で圧縮されている場合、ダウンロード状況検出部１００は、ダウンロード済みのデータ量をダウンロード状況として検出する。ダウンロード状況検出部１００は、ダウンロード状況検出部６０と同じタイミングでダウンロード状況を検出することが好ましい。これにより、情報処理システム１において、各情報処理装置の通信環境を反映したダウンロード状況が取得されることになる。
【００３５】
ホスト装置１０において、ダウンロード状況取得部８６は、クライアント装置１８から通知されたダウンロード状況を取得する。最終フレーム情報導出部１３２は、各クライアント装置１８から通知されたダウンロード状況、およびダウンロード状況検出部１００で検出されたダウンロード状況を監視し、同期再生可能な最終フレームを導出する。
【００３６】
情報処理システム１においては、ネットワーク１４における通信環境がホスト装置１０および複数のクライアント装置１８のそれぞれで異なっており、したがって、それぞれのダウンロードスピードも異なっている。ホスト装置１０および複数のクライアント装置１８がコンテンツデータを同期再生するためには、情報処理装置の再生処理を、ダウンロード状況が最も悪い情報処理装置の再生処理にあわせる必要がある。
【００３７】
そこで最終フレーム情報導出部１３２は、通知されたダウンロード状況からクライアント装置１８において再生可能な最終フレーム番号を計算により導出し、また自身のダウンロード状況からホスト装置１０において再生可能な最終フレーム番号を計算により導出する。たとえばホスト装置１０において再生可能な最終フレーム番号がＦ１、クライアント装置１８ａにおいて再生可能な最終フレーム番号がＦ２、クライアント装置１８ｂにおいて再生可能な最終フレーム番号がＦ３、クライアント装置１８ｃにおいて再生可能な最終フレーム番号がＦ４として導出された場合、最終フレーム情報導出部１３２は、同期再生可能な最終フレーム番号を以下のように導出する。なおコンテンツデータにおいて、再生するフレーム順にフレーム番号が付与されているものとする。
（同期再生可能な最終フレーム）＝Ｍｉｎ（Ｆ１，Ｆ２，Ｆ３，Ｆ４）
たとえばコンテンツデータがＭＰＥＧ２形式で圧縮されている場合には、フレームを特定する情報としてＰＴＳが利用されてもよい。このように、最終フレーム情報導出部１３２は、Ｆ１〜Ｆ４の最小値を導出することで、情報処理システム１において同期再生可能な最終フレームを特定する。
【００３８】
制御部１２０は、たとえばＴＣＰ／ＩＰネットワークにおけるｐｉｎｇを利用して、クライアント装置１８との間のラウンドトリップタイムなどを求め、ホスト装置１０とクライアント装置１８の間の回線状況を把握する。具体的にエコー要求生成部１２２が、接続するクライアント装置１８に対するエコー要求を生成する。送信部１１０はエコー要求をクライアント装置１８に送信し、応答取得部８８は、クライアント装置１８からのエコー応答を受信する。制御部１２０は、エコー要求の送信時刻およびエコー応答の受信時刻から、各クライアント装置１８との間の伝播遅延時間を導出する。制御部１２０はｐｉｎｇを利用することで、回線状況の最も悪いクライアント装置１８との間の伝播遅延時間を最大伝播遅延時間として求めることができる。
【００３９】
制御部１２０は、ホスト装置１０におけるダウンロード状況およびクライアント装置１８におけるダウンロード状況をもとに、ホスト装置１０およびクライアント装置１８の再生処理を同期させるように制御する。具体的に再生指示生成部１２４は、最終フレーム情報導出部１３２で導出される最終フレーム番号から、ホスト装置１０および各クライアント装置１８が再生するのに十分なサイズのコンテンツデータをダウンロードしているか判定する。
【００４０】
たとえば、
ＰＦＣ（Playable Frame Count）＝最終フレーム番号
とし、プログレッシブダウンロード時に同時再生するのに十分なストックであると考えられるフレーム数をＰＢＤ（Playable Back Determinant）としたとき、再生指示生成部１２４は、ＰＢＤ＜ＰＦＣが成立する場合に、ホスト装置１０およびクライアント装置１８での再生処理の開始を決定する。たとえばＰＢＤは、再生時間１分を確保できるフレーム数として設定されてもよい。
【００４１】
再生指示生成部１２４は、再生開始時刻と再生開始フレーム情報とを含めた再生指示を生成する。情報処理システム１において、ホスト装置１０およびクライアント装置１８の時刻は共有可能なクロック、たとえばＵＴＣを基準として同期化されており、再生開始時刻は、共有されたクロック時刻で表現される。このとき、再生指示生成部１２４は、ホスト装置１０とクライアント装置１８の間の最大伝播遅延時間と、各クライアント装置１８におけるデコード時間を加味して、再生開始時刻を設定する。再生開始フレーム情報は、再生を開始するフレーム番号であってよく、通常はフレーム番号０となる。通知部１０６は、生成された再生指示を送信部１１０を介してクライアント装置１８に通知する。
【００４２】
クライアント装置１８において、指示取得部４４が再生指示を取得する。再生処理部６４は、クロック情報取得部４６から供給される時刻情報を参照して、再生指示に含まれる再生開始時刻と再生開始フレーム情報をもとに、記憶部６２からコンテンツデータを読み出して、再生処理を実行する。ホスト装置１０においても同様に、再生処理部１０４は、クロック情報取得部８４から供給される時刻情報を参照して、再生指示生成部１２４で生成された再生指示に含まれる再生開始時刻と再生開始フレーム情報をもとに、記憶部１０２からコンテンツデータを読み出して、再生処理を実行する。
【００４３】
ホスト装置１０およびクライアント装置１８における再生処理が開始されたあとも、コンテンツデータ取得部８２およびコンテンツデータ取得部４２は、引き続きコンテンツ配信サーバ１６からコンテンツデータをダウンロードして取得し、それぞれ記憶部１０２および記憶部６２に記憶させる。ホスト装置１０において、ダウンロード状況検出部１００は周期的にコンテンツデータのダウンロード状況を検出し、最終フレーム情報導出部１３２に供給する。またクライアント装置１８においても、ダウンロード状況検出部６０は周期的にコンテンツデータのダウンロード状況を検出し、通知部６６がホスト装置１０に通知する。通知されたダウンロード状況は、ダウンロード状況取得部８６により取得され、最終フレーム情報導出部１３２に供給される。
【００４４】
最終フレーム情報導出部１３２は、ホスト装置１０およびクライアント装置１８のダウンロード状況、たとえばダウンロードサイズをもとに、同期再生可能な最終フレームを周期的に導出する。通知部１０６は、導出された最終フレームを特定する情報（最終フレーム情報）を、送信部１１０を介して周期的にクライアント装置１８に通知する。クライアント装置１８において、最終フレーム情報取得部４８は、通知された最終フレーム情報を取得し、再生処理部６４に供給する。再生処理部６４は、最終フレーム情報を保持するためのメモリ領域を有し、供給された最終フレーム情報をメモリ領域に記憶させる。再生処理部６４は、最終フレーム情報が供給されるたびに、保持している最終フレーム情報を上書き更新して記憶させる。ホスト装置１０においても同様に、再生処理部１０４が、最終フレーム情報を保持するためのメモリ領域を有し、最終フレーム情報導出部１３２で導出された最終フレーム情報をメモリ領域に記憶させる。再生処理部１０４は、最終フレーム情報が導出されるたびに、保持している最終フレーム情報を上書き更新して記憶させる。
【００４５】
再生処理部６４および再生処理部１０４は、保持している最終フレーム情報で特定されるフレームを再生すると、再生処理を停止する。これにより、全ての情報処理装置における再生処理が停止される。したがって通信環境が悪くコンテンツデータを十分にダウンロードできない１つの情報処理装置だけが再生できず、他の情報処理装置は再生を継続するという事態を回避でき、全ての情報処理装置における再生状況を同一にできる。
【００４６】
ホスト装置１０において、再生処理部１０４が最終フレームを再生すると、停止指示生成部１２６が、再生処理の一時停止指示を生成する。既述したように、各クライアント装置１８において、再生処理部６４は最終フレームを再生した後、再生処理を停止するが、制御部１２０は、再生処理の同期制御を行うために、各クライアント装置１８のステータスを管理する必要がある。そのため、停止指示生成部１２６が一時停止指示を生成して、通知部１０６が、生成された一時停止指示を送信部１１０を介してクライアント装置１８に通知するように動作する。なお、一時停止指示には、再生停止フレーム情報が含まれ、この場合、再生停止フレーム情報は、最終フレームを特定する情報となる。
【００４７】
ところで、情報処理システム１で実現する仮想的な映画館では、ユーザ同士の同意があれば、映画の進行を自由に操作できるようにしてもよい。たとえば映画の視聴中に喉が渇くこともあり、また電話がかかってくることもある。そのような場合は、再生処理を一時停止できることが好ましい。また、感動的なシーンを見逃してしまったような場合には、そのシーンに戻って再生できることが好ましい。そのような事情から、ホスト装置１０およびクライアント装置１８は、それぞれ要求入力部１０８および要求入力部６８を有し、ユーザが再生処理に関する要求を入力できるようにしている。要求入力部６８から入力された要求は、通知部６６から送信部７０を介してホスト装置１０に通知される。ホスト装置１０において、要求取得部９０は、クライアント装置１８から再生に関する要求を取得し、制御部１２０に供給する。なお、クライアント装置１８からの再生に関する要求は、ホスト装置１０においてホストユーザの許可を受けた後に、制御部１２０に供給されてもよい。またホストユーザにより要求入力部１０８から入力された再生に関する要求は、制御部１２０に供給される。再生に関する要求には、特定のフレーム（ターゲットフレーム）からの再生要求、一時停止要求、早送り再生要求、巻戻し再生要求がある。
【００４８】
再生指示生成部１２４は、ターゲットフレームからの再生要求を受けると、ターゲットフレームから最終フレームまでのフレーム数が再生するのに十分であるか判定する。このとき
ＰＦＣ＝最終フレーム番号−ターゲットフレーム番号
とし、プログレッシブダウンロード時に同時再生するのに十分なストックであると考えられるフレーム数をＰＢＤとしたとき、再生指示生成部１２４は、ＰＢＤ＜ＰＦＣが成立する場合に、ターゲットフレームからの再生指示を生成する。このとき再生指示生成部１２４は、再生開始時刻と、ターゲットフレーム情報とを含めた再生指示を生成する。通知部１０６は、生成された再生指示を送信部１１０を介してクライアント装置１８に通知する。
【００４９】
停止指示生成部１２６は、一時停止要求を受けると、再生停止フレーム情報を含む停止指示を生成する。通知部１０６は、生成された停止指示を送信部１１０を介してクライアント装置１８に通知する。
【００５０】
早送り指示生成部１２８は、早送り再生要求を受けると、現在フレームから最終フレームまでのフレーム数が早送り再生するのに十分であるか判定する。この場合、
ＰＦＣ＝最終フレーム番号−現在フレーム番号
であり、早送り再生するのに十分なフレーム数であると考えられるフレーム数は、
ＴＰＤ（Trick Play Determinant）＝ＰＢＤ×（早送り再生速度／再生速度）
となる。
早送り指示生成部１２８は、ＴＰＤ＜ＰＦＣが成立する場合に、ターゲットフレームからの早送り再生指示を生成する。具体的に早送り指示生成部１２８は、早送り再生開始時刻と、早送り再生開始フレーム情報と、早送り再生速度を特定する情報とを含めた早送り指示を生成する。早送り再生速度を特定する情報は、（早送り再生速度／再生速度）であってよい。早送り再生を開始するフレーム番号は、早送り指示生成部１２８が早送り指示を生成するまでに要する時間を加味して決定される。通知部１０６は、生成された早送り指示を送信部１１０を介してクライアント装置１８に通知する。
【００５１】
巻戻し指示生成部１３０は、巻戻し再生要求を受けると、巻戻し指示を生成する。具体的に巻戻し指示生成部１３０は、巻戻し再生開始時刻と、巻戻し再生開始フレーム情報と、巻戻し再生速度を特定する情報とを含めた巻戻し指示を生成する。巻戻し再生速度を特定する情報は、（巻戻し再生速度／再生速度）であってよい。巻戻し再生を開始するフレーム番号は、巻戻し指示生成部１３０が巻戻し指示を生成するまでに要する時間を加味して決定される。通知部１０６は、生成された巻戻し指示を送信部１１０を介してクライアント装置１８に通知する。
【００５２】
なお情報処理システム１においては、コンテンツデータを最初からではなく、途中からダウンロードすることも想定される。その場合、巻戻し指示生成部１３０は、ダウンロード済みのコンテンツデータの最初のフレームから現在フレームまでのフレーム数が巻戻し再生するのに十分であるか判定する。この場合、
ＰＦＣ＝現在フレーム番号−最初のフレーム番号
であり、巻戻し再生するのに十分なフレーム数であると考えられるフレーム数は、
ＴＰＤ（Trick Play Determinant）＝ＰＢＤ×（巻戻し再生速度／再生速度）
となる。
巻戻し指示生成部１３０は、ＴＰＤ＜ＰＦＣが成立する場合に、ターゲットフレームからの巻戻し再生指示を生成する。
【００５３】
以上のように、ホスト装置１０は、複数の情報処理装置におけるダウンロード状況から特定した最終フレーム番号をもとに、いわゆるトリックプレイを制御する。これにより、複数の情報処理装置の再生処理を同期化でき、全てのユーザが同一環境において映画を楽しむことが可能となる。
【００５４】
図６は、ホスト装置１０がクライアント装置１８との間の同期再生処理を制御するシーケンス図である。ホスト装置１０およびクライアント装置１８が、コンテンツデータのダウンロードを開始する（Ｓ４０、Ｓ４２）。ダウンロードの開始後は、ダウンロード状況検出部１００およびダウンロード状況検出部６０が、それぞれコンテンツデータのダウンロード状況を定期的に検出する（Ｓ４４、Ｓ４６）。クライアント装置１８において、通知部６６は、ダウンロード状況検出部６０が検出したダウンロード状況をホスト装置１０に通知する（Ｓ４８）。最終フレーム情報導出部１３２は、通知されたダウンロード状況と、ダウンロード状況検出部１００が検出したダウンロード状況をもとに、同期再生可能な最終フレームを導出する（Ｓ５０）。再生処理部１０４は、メモリ領域に最終フレーム情報を記憶させる（Ｓ５４）。ホスト装置１０の通知部１０６は、最終フレーム情報をクライアント装置１８に通知し（Ｓ５２）、再生処理部６４は、メモリ領域に最終フレーム情報を記憶させる（Ｓ５６）。
【００５５】
コンテンツの再生処理がまだ開始されていない場合（Ｓ５８のＮ、Ｓ６０のＮ）、再生指示生成部１２４は、最終フレーム情報をもとに、ダウンロードしたコンテンツデータが再生するのに十分なデータ量に達しているか判定する（Ｓ６２）。十分なデータ量に達していなければ、再生指示生成部１２４は、コンテンツデータを再生不能であることを判定する（Ｓ６２のＮ）。また再生指示が生成されないため、クライアント装置１８において、指示取得部４４が再生指示を取得しない（Ｓ６６のＮ）。したがってホスト装置１０は、Ｓ４４、Ｓ５０、Ｓ５２、Ｓ５４の処理を再実行し、またクライアント装置１８は、Ｓ４６、Ｓ４８、Ｓ５６の処理を再実行して、それぞれの最終フレーム情報が同一の最新値に更新される。一方、ダウンロードしたコンテンツデータが十分なデータ量に達していれば、再生指示生成部１２４は、コンテンツデータを再生可能であることを判定して（Ｓ６２のＹ）、再生指示を生成し、通知部１０６が再生指示をクライアント装置１８に通知する（Ｓ６４）。指示取得部４４が再生指示を取得し（Ｓ６６のＹ）、再生処理部１０４および再生処理部６４は、再生指示に含まれる再生開始時刻と再生開始フレーム情報にしたがって、コンテンツデータの再生処理を開始する（Ｓ６８、Ｓ７０）。
【００５６】
再生処理の開始後、再生処理部１０４および再生処理部６４が、最終フレームを再生しなければ（Ｓ７２のＮ、Ｓ７４のＮ）、ホスト装置１０は、Ｓ４４、Ｓ５０、Ｓ５２、Ｓ５４の処理を再実行し、またクライアント装置１８は、Ｓ４６、Ｓ４８、Ｓ５６の処理を再実行して、それぞれの最終フレーム情報が更新される。再生処理部１０４および再生処理部６４が、最終フレームを再生すると（Ｓ７２のＹ、Ｓ７４のＹ）、それぞれの再生処理を停止する（Ｓ７６、Ｓ７８）。これにより、１つの情報処理装置のみが再生を終了し、他の情報処理装置が再生を継続する事態を回避でき、ホスト装置１０およびクライアント装置１８の再生処理を同期制御できる。
【００５７】
なお、ホスト装置１０が、Ｓ４４、Ｓ５０、Ｓ５２、Ｓ５４の処理を継続して実行している最中に、ターゲットフレームからの再生要求を受け付けると、再生指示生成部１２４が、ＰＢＤ＜ＰＦＣが成立するか判定し、成立している場合に、ターゲットフレームからの再生指示を生成する。この再生指示はクライアント装置１８に通知され、再生処理部１０４および再生処理部６４は、再生指示に含まれる再生開始時刻と再生開始フレーム情報にしたがって、コンテンツデータの再生処理を実行する。
【００５８】
また、ホスト装置１０が、コンテンツデータの再生処理中に一時停止要求を受け付けると、停止指示生成部１２６が停止指示を生成する。この停止指示はクライアント装置１８に通知され、再生処理部１０４および再生処理部６４は、停止指示に含まれる再生停止フレーム情報にしたがって、コンテンツデータの再生処理を一時停止する。
【００５９】
また、ホスト装置１０が、Ｓ４４、Ｓ５０、Ｓ５２、Ｓ５４の処理を継続して実行している最中に、早送り再生要求を受け付けると、早送り指示生成部１２８が、ＴＰＤ＜ＰＦＣが成立するか判定し、成立している場合に、ターゲットフレームからの早送り再生指示を生成する。この早送り再生指示はクライアント装置１８に通知され、再生処理部１０４および再生処理部６４は、早送り再生指示に含まれる早送り再生開始時刻と早送り再生開始フレーム情報と早送り再生速度を特定する情報とにしたがって、コンテンツデータの早送り再生処理を実行する。
【００６０】
また、ホスト装置１０が、巻戻し再生要求を受け付けると、巻戻し指示生成部１３０がターゲットフレームからの巻戻し再生指示を生成する。この巻戻し再生指示はクライアント装置１８に通知され、再生処理部１０４および再生処理部６４は、巻戻し再生指示に含まれる巻戻し再生開始時刻と巻戻し再生開始フレーム情報と巻戻し再生速度を特定する情報とにしたがって、コンテンツデータの巻戻し再生処理を実行する。
【００６１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６２】
実施例において、最終フレーム情報導出部１３２が、同期再生可能な最終フレームを特定することとしたが、たとえば直接的に最終フレーム番号を特定するのではなく、間接的に最終フレームを特定してもよい。たとえば最終フレーム情報導出部１３２は、最終フレームが含まれるＧＯＰ（Group Of Pictures）を特定する情報を導出してもよく、また再生開始の先頭フレームからの再生時間を特定する情報を導出してもよい。
【００６３】
なお最終フレーム情報導出部１３２は、最終フレームの少し前のフレームを特定してもよい。最終フレーム情報導出部１３２が、ダウンロード済みのデータ量から最終フレームを導出する場合、導出された最終フレームからたとえば数秒前のフレームを特定し、それを最終フレームとして導出してもよい。これにより、最終フレームの導出誤差を吸収することができ、複数の情報処理装置における同期再生を確実にできる。なお、このような補正を行わない場合には、再生処理部１０４および再生処理部６４が、最終フレームよりも少し前に再生処理を停止してもよい。
【００６４】
また実施例の情報処理システム１では、コンテンツデータをダウンロードしたクライアント装置１８が、コンテンツデータの再生処理を実行することとした。情報処理システム１の変形例として、クライアント装置１８が、ダウンロードしたコンテンツデータを、別のクライアント装置に転送し、転送先のクライアント装置がコンテンツデータの再生処理を実行してもよい。この変形例の情報処理システムでは、たとえば転送先のクライアント装置が携帯端末装置であり、ユーザは、外にいてもコンテンツデータを楽しむことができる。このとき、クライアント装置１８および転送先のクライアント装置は、ホスト装置１０から見ると１つのクライアント装置と変わるところはなく、本明細書では、クライアント装置１８および転送先のクライアント装置が、協働して１つのクライアント装置を構成する。この場合、転送先のクライアント装置は、図４に示すコンテンツデータ取得部４２、クロック情報取得部４６、再生処理部６４および要求入力部６８の構成を少なくとも持つことになる。以下、転送先のクライアント装置を、「携帯端末装置」とよぶ。
【００６５】
なお、実施例の情報処理システム１では、ホスト装置１０の制御部１２０が、ｐｉｎｇを利用して、クライアント装置１８との間のラウンドトリップタイムを求め、ホスト装置１０とクライアント装置１８の間の回線状況を把握した。これはクライアント装置１８がコンテンツデータの再生処理を実行することを前提としたためであり、変形例のように、携帯端末装置がコンテンツデータを再生処理する場合には、携帯端末装置と、ホスト装置１０との間のラウンドトリップタイムを求める必要がある。したがって、クライアント装置１８は、図４に示す構成に加えて、図５に示すエコー要求生成部および応答取得部の機能をもつ制御部を備える。
【００６６】
具体的にクライアント装置１８において、エコー要求生成部が、携帯端末装置に対するエコー要求を生成する。送信部７０はエコー要求を携帯端末装置に送信し、応答取得部は、携帯端末装置からのエコー応答を受信する。制御部は、エコー要求の送信時刻およびエコー応答の受信時刻から、接続する携帯端末装置との間の伝播遅延時間を導出する。この伝播遅延時間は、送信部７０からホスト装置１０に送られる。ホスト装置１０において、制御部１２０は、ホスト装置１０とクライアント装置１８との間の伝播遅延時間と、クライアント装置１８と携帯端末装置との間の伝播遅延時間を加算することで、ホスト装置１０と携帯端末装置との間の伝播遅延時間を導出する。なお、クライアント装置１８が携帯端末装置にコンテンツデータを転送しないときには、ホスト装置１０とクライアント装置１８との間の伝播遅延時間を導出するだけでよい。このようにして、制御部１２０は、携帯端末装置の存在も加味して、回線状況の最も悪いクライアント装置との間の伝播遅延時間を最大伝播遅延時間として求めることができる。
【００６７】
実施例の情報処理システム１では、ホスト装置１０およびクライアント装置１８が、コンテンツ配信サーバ１６から映画などのＡＶデータをプログレッシブダウンロード方式で取得した。プログレッシブダウンロード方式によると、ネットワーク１４における通信環境がホスト装置１０および複数のクライアント装置１８のそれぞれの情報処理装置で大差ない場合には、各情報処理装置におけるダウンロード状況も大差ないことが想定される。一方、クライアントサーバモデルで、各情報処理装置がコンテンツ配信サーバ１６からＡＶデータをダウンロードすると、コンテンツ配信サーバ１６に負荷が集中し、また、ネットワーク１４における通信環境は、現実には各情報処理装置で異なる場合が多いことから、各情報処理装置のダウンロード状況に差が生じることがある。
【００６８】
そこで以下において、情報処理システム１の変形例として、Ｐ２Ｐ方式で映画などのＡＶデータをダウンロードする場合のコンテンツデータの再生処理について説明する。Ｐ２Ｐ方式によると、通信環境の影響を大きく受けることなく、情報処理装置は、ネットワーク１４に接続する複数の端末装置からコンテンツデータを取得可能なため、ダウンロード方式としてクライアントサーバモデルよりも優れた側面をもっている。
【００６９】
図７は、コンテンツデータのダウンロード状況の概念図を示す。ダウンロード済みのコンテンツデータには、ハッチングが施されている。以下では、コンテンツデータのダウンロード状況を特定するために、ファイルオフセット（以下、単に「オフセット」とも呼ぶ）を利用する。オフセットは、コンテンツデータのファイルの先頭からの位置を示す。
【００７０】
図７（ａ）は、コンテンツデータをプログレッシブダウンロードしたときのダウンロード状況を示す。この例では、オフセットｂ１からｂ２までのコンテンツデータがダウンロードされている。なお、プログレッシブダウンロード方式では、コンテンツデータをファイルの先頭からダウンロードするため、オフセットｂ１は、必ずゼロとなる。したがって実施例におけるホスト装置１０の最終フレーム情報導出部１３２は、各情報処理装置のダウンロード状況から、同期再生可能な最終フレームを導出すればよい。
【００７１】
図７（ｂ）は、コンテンツデータをＰ２Ｐ方式でダウンロードしたときのダウンロード状況を示す。この例では、オフセットｂ１からｂ２、オフセットｂ３からｂ４、オフセットｂ５からｂ＿ｅｎｄまでのコンテンツデータがダウンロードされている。Ｐ２Ｐ方式では、ネットワーク１４経由で、複数の端末装置からコンテンツデータがばらばらに送られてくる。クライアント装置１８は、ダウンロードの開始前に、たとえばコンテンツ配信サーバ１６から、コンテンツデータのインデックス情報を記録したインデックスファイルを予め取得しておく。以下、ＭＰＥＧ２形式で圧縮されたコンテンツデータの例で説明する。
【００７２】
インデックスファイルには、ヘッダ領域と、インデックスデータ領域とが含まれる。ヘッダ領域には、コンテンツデータの最初のＰＴＳ、最終のＰＴＳ、動画ファイルのサイズなど、コンテンツデータの全体の構成を示す情報が記録される。インデックスデータ領域には、各ＩフレームについてのＰＴＳ、ファイルオフセット、トランスポートストリーム（ＴＳ）パケットの長さ情報が記録されている。
【００７３】
Ｐ２Ｐ方式でのダウンロードにおいて、クライアント装置１８のダウンロード状況検出部６０、およびホスト装置１０のダウンロード状況検出部１００は、ダウンロード済みのデータのフレームに関する情報を、ダウンロード状況として検出する。クライアント装置１８において、通知部６６は、検出したダウンロード状況をホスト装置１０に通知する。
【００７４】
具体的にダウンロード状況検出部６０、１００は、ＴＳパケットに含まれるオフセットを取得して、ダウンロードしたコンテンツデータのオフセット情報を検出する。各ダウンロード状況検出部６０、１００は、ダウンロード済みのオフセット情報を、コンテンツデータのダウンロード状況として検出し、まだダウンロードされていないコンテンツデータのオフセット情報を特定する。図７（ｂ）の例では、オフセットｂ０からｂ１、オフセットｂ２からｂ３、オフセットｂ４からｂ５までのコンテンツデータのダウンロードが完了していないため、たとえばクライアント装置１８における送信部７０は、それらのコンテンツデータを保持している端末装置に対してダウンロード要求を送信する。コンテンツデータ取得部４２が、インデックスファイルに含まれる最初のＰＴＳから最終のＰＴＳまでのすべてのデータファイルを取得するまで、このダウンロード要求は送信される。以上の処理はホスト装置１０においても同じである。
【００７５】
以上のようにクライアント装置１８において、コンテンツデータ取得部４２は、ダウンロードしたコンテンツデータを取得し、記憶部６２に記憶する。このときダウンロード状況検出部６０は、ダウンロード済みのオフセット情報を、ダウンロード状況として検出する。通知部６６は、検出したダウンロード状況をホスト装置１０に送信部７０を介して所定の周期で通知する。図７（ｂ）の例では、通知するオフセット情報は、オフセットｂ１からｂ２、オフセットｂ３からｂ４、オフセットｂ５からｂ＿ｅｎｄまでのコンテンツデータがダウンロード済みであることを示す情報である。
【００７６】
ホスト装置１０においても、コンテンツデータ取得部８２が、ダウンロードしたコンテンツデータを取得し、記憶部１０２に記憶する。ダウンロード状況検出部１００は、ダウンロード済みのオフセット情報を、ダウンロード状況として検出する。ダウンロード状況検出部１００は、ダウンロード状況検出部６０と同じタイミングでダウンロード状況を検出することが好ましい。
【００７７】
ホスト装置１０において、ダウンロード状況取得部８６は、クライアント装置１８から通知されたダウンロード状況を取得する。情報処理システムにおいて、Ｐ２Ｐ方式でのダウンロードが行われる場合、ホスト装置１０は、最終フレーム情報導出部１３２の代わりに、同期再生可能フレーム情報導出部を備える。
【００７８】
同期再生可能フレーム情報導出部は、それぞれの情報処理装置におけるダウンロード状況から、それぞれの情報処理装置において再生可能なフレーム情報を導出する。ＭＰＥＧ２では、Ｉフレームから再生可能であり、同期再生可能フレーム情報導出部は、各情報処理装置のダウンロード済みであることを示すオフセット情報から、各情報処理装置において連続再生可能なフレーム範囲を導出する。
【００７９】
図７（ｂ）の例で、オフセット情報は、オフセットｂ１からｂ２、オフセットｂ３からｂ４、オフセットｂ５からｂ＿ｅｎｄまでのコンテンツデータがダウンロード済みであることを示す。連続するオフセットｂ１からｂ２のコンテンツデータのうち、再生可能なフレーム情報を導出する例を以下に示す。既述したように、インデックスファイルのインデックスデータ領域には、動画ファイルに含まれる全てのＩフレームについてのＰＴＳ、ファイルオフセット、ＴＳパケットの長さ情報が含まれている。以下、Ｉフレームのファイルオフセットをａ、長さ情報をｌとして説明する。
【００８０】
図８（ａ）は、コンテンツデータの動画ファイルを説明するための説明図である。図８（ａ）は、ＭＰＥＧ２においてトランスポートストリーム（ＴＳ）パケットで構成される符号化ストリームを示す。動画ファイルには、Ｉフレーム、Ｐフレーム、Ｂフレームの画像情報が含まれるが、図８（ａ）では、図８（ｂ）に示すインデックスファイルと関係するＩフレームのＴＳパケットを示している。Ｉフレームは、オフセットがａ、ＴＳパケット長がｌで特定される。なお１つのＴＳパケットは、基本的に固定長さ（バイト）であり、Ｉフレームを構成するＴＳパケットの数に応じて、ＴＳパケット長ｌが設定される。なお、ＴＳパケットには、オフセットａを特定する情報が含まれる。
【００８１】
図８（ｂ）は、インデックスファイルを説明するための説明図である。インデックスデータ領域には、各ＩフレームのＰＴＳ、オフセット、長さ情報が含まれる。インデックスファイルには、図８（ａ）に示す動画ファイルに含まれるＩフレームのインデックス情報が記録されている。
【００８２】
同期再生可能フレーム情報導出部は、インデックス情報を参照して、オフセットｂ１以上のＩフレームのオフセットの中で、一番小さいオフセットａ＿ｍｉｎを導出する。オフセットｂ１がＩフレームのオフセットであれば、ａ＿ｍｉｎ＝ｂ１である。オフセットｂ１がＩフレームのオフセットでなければ、ａ＞ｂ１を満足する最小のオフセットａ＿ｍｉｎが導出される。
【００８３】
また同期再生可能フレーム情報導出部は、インデックス情報を参照して、オフセットａに、長さｌを加算した値がｂ２以下となるＩフレームのオフセットの中で、一番大きいオフセットａ＿ｍａｘを導出する。つまり、ａ＋ｌ≦ｂ２を満足する最大のオフセットａ＿ｍａｘが導出される。
【００８４】
以上のように、オフセットｂ１からｂ２のコンテンツデータは、オフセットａ＿ｍｉｎからａ＿ｍａｘまでの範囲で連続再生可能であることが判定される。同期再生可能フレーム情報導出部は、オフセットｂ３からｂ４、オフセットｂ５からｂ＿ｅｎｄまでのコンテンツデータについても、それぞれ再生可能なオフセットａ＿ｍｉｎからａ＿ｍａｘを導出する。同期再生可能フレーム情報導出部は、この再生可能なオフセット範囲をフレーム情報に変換することで、再生可能なフレーム範囲を導出する。これにより、図７（ｂ）に示すオフセット情報から、再生可能なフレーム範囲が導出される。なお、このフレーム情報は、ＰＴＳで表現されてもよい。
【００８５】
同期再生可能フレーム情報導出部は、全てのクライアント装置１８から通知されたダウンロード状況をもとに、各クライアント装置１８における再生可能なフレーム範囲を導出する。また同期再生可能フレーム情報導出部は、自身のダウンロード状況から、ホスト装置１０において再生可能なフレーム範囲を導出する。
【００８６】
同期再生可能フレーム情報導出部は、それぞれの情報処理装置における再生可能なフレーム範囲から、重複するフレーム範囲を導出する。この重複するフレーム範囲は、複数の情報処理装置において同期再生可能なフレーム情報となる。通知部１０６は、導出されたフレーム情報を、送信部１１０を介して周期的にクライアント装置１８に通知する。クライアント装置１８では、通知されたフレーム情報を更新する。このようにＰ２Ｐ方式によるダウンロードの場合には、各情報処理装置のダウンロード状況から、複数の情報処理装置において同期再生可能なフレーム情報を導出することで、同期再生することが可能となる。
【００８７】
制御部１２０は、この同期再生可能なフレーム範囲をもとに、再生指示などの指示を生成する。同期再生可能なフレーム範囲は、実施例におけるフレーム番号０から最終フレーム番号までの範囲と同じであり、制御部１２０は、このフレーム範囲をもとに、実施例で説明した再生指示や、トリックプレイなどを実現することが可能である。
【００８８】
たとえば再生処理部６４および再生処理部１０４は、再生開始時刻と再生開始フレーム情報とを含めた再生指示に対して、同期再生可能なフレーム範囲で特定される最終フレームを再生すると、再生処理を停止する。これにより、全ての情報処理装置における再生処理が停止される。
【００８９】
以上、Ｐ２Ｐ方式によりコンテンツデータをダウンロードする場合に、同期再生可能なフレーム情報を導出する例について説明した。なおＰ２Ｐ方式として、上記した複数の端末装置からコンテンツデータをダウンロードする方式以外にも、複数のコンテンツ配信サーバ１６からコンテンツデータをダウンロードする方式や、複数のコンテンツ配信サーバ１６および複数の端末装置からコンテンツデータをダウンロードする方式も実現可能である。本明細書においてＰ２Ｐ方式は、端末装置やサーバを含む複数の装置のそれぞれから部分的なコンテンツデータを集める全ての方式を含む。
【００９０】
この技術の応用例について説明する。同一の映画であっても、出力装置１２の表示解像度（ＨＤ、ＳＤ）に応じて、ダウンロードするコンテンツデータは異なる。このような場合、たとえば高解像度のコンテンツデータには映画の前にＣＭが挿入されているが、低解像度のコンテンツデータには挿入されておらず、したがって、時刻同期がとられていても、表示画像の同期がとられていないような事態も発生しうる。そのため、ホスト装置１０が、高解像度および低解像度の映画データの先頭フレーム番号をそれぞれ把握しておき、ダウンロードしたデータに応じて、フレーム番号を補正することで、情報処理装置間で表示画像を同期化させることが可能となる。
【００９１】
たとえば、ホスト装置１０における同期再生可能フレーム情報導出部は、ＨＤのインデックスファイルと、ＳＤのインデックスファイルを保持しておく。コンテンツデータにＣＭのデータが含まれている場合、インデックスファイルのヘッダ領域には、ＣＭに関する情報、具体的にはＣＭの挿入期間を示す情報などが記述されている。インデックスファイルインデックスファイルを参照することで、ＨＤおよびＳＤの動画ファイルにおいて、たとえば映画データの先頭フレーム番号をＰＴＳで特定することができる。したがって、ＨＤおよびＳＤの映画データの先頭フレーム番号を認識しておくことで、同期再生可能フレーム情報導出部は、各情報処理装置において同期再生可能なフレーム情報を導出でき、複数の情報処理装置で映画データを同期再生することが可能となる。
【符号の説明】
【００９２】
１・・・情報処理システム、１０・・・ホスト装置、１２・・・出力装置、１４・・・ネットワーク、１６・・・コンテンツ配信サーバ、１８・・・クライアント装置、２０・・・ネットワークサーバ、２２・・・ビデオチャットウィンドウ、２４・・・テキストチャットウィンドウ、４０・・・受信部、４２・・・コンテンツデータ取得部、４４・・・指示取得部、４６・・・クロック情報取得部、４８・・・最終フレーム情報取得部、６０・・・ダウンロード状況検出部、６２・・・記憶部、６４・・・再生処理部、６６・・・通知部、６８・・・要求入力部、７０・・・送信部、８０・・・受信部、８２・・・コンテンツデータ取得部、８４・・・クロック情報取得部、８６・・・ダウンロード状況取得部、８８・・・応答取得部、９０・・・要求取得部、１００・・・ダウンロード状況検出部、１０２・・・記憶部、１０４・・・再生処理部、１０６・・・通知部、１０８・・・要求入力部、１１０・・・送信部、１１２・・・ダウンロード指示部、１２０・・・制御部、１２２・・・エコー要求生成部、１２４・・・再生指示生成部、１２６・・・停止指示生成部、１２８・・・早送り指示生成部、１３０・・・巻戻し指示生成部、１３２・・・最終フレーム情報導出部。
【産業上の利用可能性】
【００９３】
本発明によると、複数の情報処理装置が同期してコンテンツデータを再生する技術を提供することができる。
【図１】
2010023828.tif 000003
【図２】
2010023828.tif 000004
【図３】
2010023828.tif 000005
【図４】
2010023828.tif 000006
【図５】
2010023828.tif 000007
【図６】
2010023828.tif 000008
【図７】
2010023828.tif 000009
【図８】
2010023828.tif 000010
【国際調査報告】
2010023828.tif 000011
2010023828.tif 000012
2010023828.tif 000013
2010023828.tif 000014