(57)【要約】【課題】  より確実にクライアントが指定時刻にコンテンツを再生できるコンテンツ再生システムを提供すること。【解決手段】  サーバは、シーケンス番号と指定時刻とを含む同期情報をクライアントに送信する。クライアントは、同期情報を受信すると、シーケンス番号で特定されるパケットの再生開始予定時刻を現在再生中のパケットや各パケットのサイズを参照することで算出する。クライアントは、再生開始予定時刻と指定時刻とを比較し、これらが一致しない場合、シーケンス番号で特定されるパケットの再生開始時刻を指定時刻に同期させる。【選択図】図７
2008147973.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、該サーバに接続可能なクライアントとを備え、
該サーバが、
複数のコンテンツを蓄積する蓄積手段と、
該コンテンツを該クライアントにパケット単位で送信するコンテンツ送信手段と、
再生時刻を調整すべきパケットのシーケンス番号と、該シーケンス番号で特定されるパケットの指定時刻とを含む同期情報を送信する同期情報送信手段とを有し、
該クライアントが、
該コンテンツ及び該同期情報を受信する受信手段と、
該コンテンツを再生する再生手段と、
該シーケンス番号で特定されるパケットの再生開始予定時刻を算出する手段と、
該再生開始予定時刻と該指定時刻とを比較する比較手段と、
該比較手段の比較結果に応じて、該再生開始予定時刻が該指定時刻よりも早い場合、該シーケンス番号で特定されるパケットの再生開始時刻を該指定時刻まで遅らせ、該再生開始予定時刻が該指定時刻よりも遅い場合、該シーケンス番号で特定されるパケットの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する、コンテンツ再生システム。
【請求項２】
サーバと、該サーバに接続可能なクライアントとを備え、
該サーバが、
複数のコンテンツを蓄積する蓄積手段と、
各々がヘッダ情報を含むコンテンツを該クライアントに送信するコンテンツ送信手段と、
再生時刻を調整すべきコンテンツの指定時刻を含む同期情報を、再生時刻を調整すべきコンテンツの１つ前に送信されるコンテンツのヘッダ情報に含めて送信する同期情報送信手段とを有し、
該クライアントが、
該コンテンツ及び該同期情報を受信する受信手段と、
該コンテンツを再生する再生手段と、
該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始予定時刻を算出する手段と、
該再生開始予定時刻と該指定時刻とを比較する比較手段と、
該比較手段の比較結果に応じて、該再生開始予定時刻が該指定時刻よりも早い場合、該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始時刻を該指定時刻まで遅らせ、該再生開始予定時刻が該指定時刻よりも遅い場合、該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する、コンテンツ再生システム。
【請求項３】
サーバと、該サーバに接続可能なクライアントとを備え、
該サーバが、
複数のコンテンツ及び時刻調整コンテンツを蓄積する蓄積手段と、
該コンテンツ、及び、再生時刻を調整すべきコンテンツの１つ前に送信され、ビットレート及びサンプリング周波数の組合せが他のコンテンツとは重複しない該時刻調整コンテンツを該クライアントに送信するコンテンツ送信手段と、
該時刻調整コンテンツのビットレート及びサンプリング周波数と、時刻補正精度とを含む同期情報を送信する同期情報送信手段とを有し、
該クライアントが、
該コンテンツ、該時刻調整コンテンツ及び該同期情報を受信する受信手段と、
該コンテンツを再生する再生手段と、
該時刻調整コンテンツの再生終了予定時刻を算出する手段と、
該時刻調整コンテンツの再生終了予定時刻と、該時刻補正精度とに基づいて、指定時刻を算出する手段と、
該再生終了予定時刻と該指定時刻とを比較する比較手段と、
該比較手段の比較結果に応じて、該再生終了予定時刻が該指定時刻よりも早い場合、該時刻調整コンテンツの次のコンテンツの再生開始時刻を該指定時刻まで遅らせ、該再生終了予定時刻が該指定時刻よりも遅い場合、該時刻調整コンテンツの次のコンテンツの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する、コンテンツ再生システム。
【請求項４】
請求項１〜３のいずれかに記載のコンテンツ再生システムに使用されるサーバ。
【請求項５】
請求項１〜３のいずれかに記載のコンテンツ再生システムに使用されるクライアント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバからクライアントにコンテンツを配信するコンテンツ再生システムであり、クライアントにおけるコンテンツ再生時刻を調整するコンテンツ再生システムに関する。
【背景技術】
【０００２】
近年、インターネットの発展により、サーバからクライアントへのコンテンツ（音楽又は映像データ）の配信が、ダウンロード形式ではなく、リアルタイム性の高いストリーミング形式で行われるようになっている。音切れ等の再生コンテンツの枯渇の問題を解消するために、クライアントはバッファにコンテンツを蓄積しながら再生する。その結果、正確にはリアルタイムではなく、サーバの運営者が想定しているクライアントにおけるコンテンツの再生時刻と、実際のクライアントにおけるコンテンツの再生時刻との間に少なくとも数秒程度のずれが生じる。また、クラアイント同士の間でも、各クライアントのネットワーク状況等に応じて、再生時刻に多少のずれが生じる。この問題は、コンテンツとしてＴＶ放送やラジオ放送等のように特にリアルタイム性を必要とするサービスをクライアントに提供する上で顕著な問題になる。
【０００３】
また、RTP(Realtime
Transport Protcol)では、コンテンツのヘッダの中に、そのコンテンツの再生時刻を記述して配信を行うことが提案されている。しかし、この方法で再生時間を指定した場合、パケット到着時には、すでに、指定時刻を過ぎている場合がたぶんにあり、実用的ではない。
【０００４】
また、SMIL (Synchronized
Multimedia Integration Language)では、再生開始からのタイミングを同期させることはできるが、あくまで相対的なタイミングであり、実際の時刻との絶対的な同期ではない。また、タイミングがずれた場合の対処方法については記述されていない。
【０００５】
【特許文献１】特開２００５−２９５１００号
【特許文献２】特開２００６−２２９６０６号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、より確実にクライアントが指定時刻にコンテンツを再生できるコンテンツ再生システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の好ましい実施形態によるコンテンツ再生システムは、サーバと、該サーバに接続可能なクライアントとを備える。該サーバは、複数のコンテンツを蓄積する蓄積手段と、該コンテンツを該クライアントにパケット単位で送信するコンテンツ送信手段と、再生時刻を調整すべきパケットのシーケンス番号と、該シーケンス番号で特定されるパケットの指定時刻とを含む同期情報を送信する同期情報送信手段とを有する。該クライアントは、該コンテンツ及び該同期情報を受信する受信手段と、該コンテンツを再生する再生手段と、該シーケンス番号で特定されるパケットの再生開始予定時刻を算出する手段と、該再生開始予定時刻と該指定時刻とを比較する比較手段と、該比較手段の比較結果に応じて、該再生開始予定時刻が該指定時刻よりも早い場合、該シーケンス番号で特定されるパケットの再生開始時刻を該指定時刻まで遅らせ、該再生開始予定時刻が該指定時刻よりも遅い場合、該シーケンス番号で特定されるパケットの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する。
【０００８】
サーバは、シーケンス番号と指定時刻とを含む同期情報をクライアントに送信する。クライアントは、同期情報を受信すると、シーケンス番号で特定されるパケットの再生開始予定時刻を現在再生中のパケットや各パケットのサイズを参照することで算出する。クライアントは、再生開始予定時刻と指定時刻とを比較し、これらが一致しない場合、シーケンス番号で特定されるパケットの再生開始時刻を指定時刻に同期させる。従って、同期情報をシーケンス番号で特定されるパケットよりも前にクライアントに送信することにより、クライアントはシーケンス番号で特定されるパケットの再生開始時刻をサーバの運営者が意図する時刻に合わせることができる。さらに、パケットのシーケンス番号で再生時刻を合わせるデータ位置を特定しているので、コンテンツ単位ではなく、パケット単位（すなわち、コンテンツの途中からでも）で再生時刻の同期をとることができる。
【０００９】
本発明の別の好ましい実施形態によるコンテンツ再生システムは、サーバと、該サーバに接続可能なクライアントとを備える。該サーバは、複数のコンテンツを蓄積する蓄積手段と、各々がヘッダ情報を含むコンテンツを該クライアントに送信するコンテンツ送信手段と、再生時刻を調整すべきコンテンツの指定時刻を含む同期情報を、再生時刻を調整すべきコンテンツの１つ前に送信されるコンテンツのヘッダ情報に含めて送信する同期情報送信手段とを有する。該クライアントは、該コンテンツ及び該同期情報を受信する受信手段と、該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始予定時刻を算出する手段と、該再生開始予定時刻と該指定時刻とを比較する比較手段と、該比較手段の比較結果に応じて、該再生開始予定時刻が該指定時刻よりも早い場合、該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始時刻を該指定時刻まで遅らせ、該再生開始予定時刻が該指定時刻よりも遅い場合、該同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する。
【００１０】
サーバは、指定時刻を含む同期情報を、再生時刻を調整すべきコンテンツの１つ前のコンテンツのヘッダ情報に含めて送信する。クライアントは、同期情報を受信すると、同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツ（同期対象コンテンツという）の再生開始予定時刻を、同期情報がヘッダ情報に含まれているコンテンツの再生開始時刻と当該コンテンツの長さとに基づいて、算出する。クライアントは、再生開始予定時刻と指定時刻とを比較し、これらが一致しない場合、同期対象コンテンツの再生開始時刻を指定時刻に同期させる。従って、同期情報を同期対象コンテンツの１つ前のコンテンツのヘッダ情報に含めて送信することにより、ＲＴＰのように指定時刻より遅れて同期情報が届くことがなく、確実にクライアントは同期対象コンテンツの再生開始時刻をサーバの運営者が意図する時刻に合わせることができる。また、同期対象コンテンツを同期情報がヘッダ情報に含まれているコンテンツの次のコンテンツとしたことにより、同期情報内で同期対象コンテンツを特定する情報を含める必要がない。
【００１１】
本発明の別の好ましい実施形態によるコンテンツ再生システムは、サーバと、該サーバに接続可能なクライアントとを備える。該サーバは、複数のコンテンツ及び時刻調整コンテンツを蓄積する蓄積手段と、該コンテンツ、及び、再生時刻を調整すべきコンテンツの１つ前に送信され、ビットレート及びサンプリング周波数の組合せが他のコンテンツとは重複しない該時刻調整コンテンツを該クライアントに送信するコンテンツ送信手段と、該時刻調整コンテンツのビットレート及びサンプリング周波数と、時刻補正精度とを含む同期情報を送信する同期情報送信手段とを有する。該クライアントは、該コンテンツ、該時刻調整コンテンツ及び該同期情報を受信する受信手段と、該時刻調整コンテンツの再生終了予定時刻を算出する手段と、該時刻調整コンテンツの再生終了予定時刻と、該時刻補正精度とに基づいて、指定時刻を算出する手段と、該再生終了予定時刻と該指定時刻とを比較する比較手段と、該比較手段の比較結果に応じて、該再生終了予定時刻が該指定時刻よりも早い場合、該時刻調整コンテンツの次のコンテンツの再生開始時刻を該指定時刻まで遅らせ、該再生終了予定時刻が該指定時刻よりも遅い場合、該時刻調整コンテンツの次のコンテンツの再生開始時刻を該指定時刻まで早める時刻調整手段とを有する。
【００１２】
サーバは、時刻調整コンテンツと、時刻調整コンテンツのビットレート、サンプリング周波数及び時刻補正精度を含む同期情報をクライアントに送信する。クライアントは、これらを受信すると、時刻調整コンテンツの再生終了予定時刻を、時刻調整コンテンツの再生開始時刻と時刻調整コンテンツの長さとに基づいて、算出する。クライアントは、時刻調整コンテンツの再生終了予定時刻と、時刻補正精度とに基づいて、指定時刻を算出する。クライアントは、時刻調整コンテンツの再生終了予定時刻と指定時刻とを比較し、これらが一致しない場合、時刻調整コンテンツの次のコンテンツ（同期対象コンテンツという）の再生開始時刻を指定時刻に同期させる。従って、クライアントは同期対象コンテンツの再生開始時刻をサーバの運営者が意図する時刻に合わせることができる。指定時刻を時刻調整コンテンツの再生終了時刻に基づいてその都度算出するので、同期情報を１回だけクライアントに送信すれば、クライアントは時刻調整コンテンツを受信する毎に同期対象コンテンツの再生開始時刻を調整できる。従って、サーバからクライアントにヘッダ情報を１回しか送れないマルチキャスト方式において再生時刻の同期をとることができる。
【発明の効果】
【００１３】
本発明によると、より確実に、クライアントが再生時刻の同期をとることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の好ましい実施形態について、図面を参照して具体的に説明するが、本発明はこれらの実施形態には限定されない。図１は、本発明の好ましい実施形態によるコンテンツ再生システム１の構成を示すブロック図である。コンテンツ再生システム１は、サーバＳＶ、及び、一または複数のクライアントＣＬ（本例では、３つのクライアントＣＬ１〜ＣＬ３）を備える。サーバＳＶ、及び、クライアントＣＬは例えばインターネット５０等のネットワークを介して接続されている。クライアントＣＬはサーバＳＶにコンテンツを要求する。サーバＳＶは、クライアントＣＬからの要求に応じて、時刻と当該時刻に再生すべきコンテンツとを関連づけた番組表などのコンテンツリストに基づいて、コンテンツをクライアントＣＬに送信する。クライアントＣＬは、サーバＳＶからコンテンツを受信して再生する。
【００１５】
図２はサーバＳＶの構成を示す概略ブロック図である。サーバＳＶは、ＨＤＤ（ハードディスクドライブ）等の蓄積手段２１、ＣＰＵ処理部等の制御手段２２、及び通信部２３を備える。ＨＤＤ２１は、複数のコンテンツや時刻調整コンテンツ（後述）を蓄積する。コンテンツとは、曲（音楽）、映像及び／又は静止画等のデータの総称であるが、本例では曲データの場合を例に説明する。
【００１６】
ＣＰＵ処理部２２は、サーバＳＶ全体の動作を制御するものであり、データベース管理部２４、ネットワークプロトコル処理部２５およびシステム動作部２６を有する。データベース管理部２４は、ＨＤＤ２１を管理する。具体的には、データベース管理部２４は、図３に示すサーバＳＶの運営者によって生成されたコンテンツリスト（番組表）に基づいて、ＨＤＤ２１内のコンテンツを選択する。ネットワークプロトコル処理部２５は、入出力されるデータに対してプロトコル処理を実行する。システム動作部２６は、ＨＤＤ２１に蓄積されたサーバプログラムを読み出し、後述するサーバＳＶの各種処理を実行する。例えば、システム動作部２６は、後述する各同期情報を生成して、クライアントＣＬに送信する。通信部２３は、サーバＳＶとインターネットとの間で信号を送受信する。
【００１７】
図４はクライアントＣＬの構成を示す概略ブロック図である。クライアントＣＬは、マイコン処理部３１等の制御手段と、バッファ３２と、ＲＯＭ及びＲＡＭ等のメモリ３３と、圧縮デジタルコンテンツをデコードして非圧縮デジタルコンテンツを生成する音声処理部３４と、デジタルコンテンツをアナログコンテンツに変換するＤ／Ａ変換器（ＤＡＣ）３５と、通信部３６と、ユーザ操作を受け付ける入力装置３７と、コンテンツ情報等を表示するＬＣＤなどの表示装置３８とを備える。
【００１８】
マイコン処理部３１は、クライアントＣＬ全体の動作を制御するものであり、ネットワークプロトコル処理部３９およびシステム動作部３０を有する。ネットワークプロトコル処理部３９は、入出力されるデータに対してプロトコル処理を実行する。システム動作部３０は、例えばメモリ３３に格納されたクライアントプログラムに基づいて、後述するクライアントの各種処理を実行する。例えば、システム動作部３０は、サーバから同期情報を受信して、同期情報に基づいて後述の再生時刻の同期処理を実行する。また、システム動作部３０は、ＮＴＰサーバにアクセスすることにより、図示しない内部システム時計を正確な時刻に調整する。通信部３６は、クライアントＣＬとインターネット５０との間で信号を送受信する。
【００１９】
以上の構成を有するコンテンツ再生システムの動作を説明する。
［実施例１］
本例では、サーバＳＶからクライアントＣＬへ送信されるコンテンツは、パケット単位で送信され、各データパケットの先頭にはそのパケットの詳細を示すヘッダ情報（以下、ヘッダという）が設けられている。図５は、ヘッダのデータ構造を示す図である。ヘッダは、シーケンス番号（Sequence number）と、パケットＩＤ（Packet
ID）と、UDP Sequence/TCP
flagsと、パケットの長さ（すなわち、再生時間）（Packet
length）とを含む。シーケンス番号は、パケット毎に順番に付与される通し番号である。
【００２０】
サーバＳＶは、コンテンツのストリームとは別に、同期情報を含むパケットをクライアントＣＬに対して送信する。同期情報は、同期対象コンテンツよりも十分前に（少なくとも同期情報を解析する時間が取れる程度）送信される。同期情報は、同期情報内で指定されるシーケンス番号のパケットを再生開始する時刻を調整するための情報であり、つまり、クライアントＣＬの再生時刻の同期をとるための情報である。同期情報を受信したクラアイントＣＬは、指定されたシーケンス番号のパケットを指定時刻に再生することで、コンテンツ全体の再生時刻の同期をとる。同期情報は全てのパケットについて送信されるのではなく、適当な間隔を空けて一部のパケットについて送信されれば十分である。
【００２１】
図６は、同期情報を示す図である。同期情報は、有効期限と、チャンネル情報と、指定時刻と、シーケンス番号と、最大補正時間と、最大補正時間を超える際の処理とを含む。有効期限は、当該同期情報を使ってクライアントＣＬが指定されたパケットの再生時刻を合わせる処理の有効期限（時刻）であり、例えば、有効期限よりも遅れて同期情報を受信した場合には、当該同期情報を無視して、同期処理を実行しない。チャンネル情報は、サーバＳＶからクラアイントＣＬに送信されるコンテンツが複数のチャンネルを含む場合に、どのチャンネルに対する同期情報であるかを示すものである。指定時刻は、シーケンス番号で特定されるパケットの再生開始時刻をサーバ側から指定するものである。シーケンス番号は、再生時刻を調整するパケットを特定する情報であり、図５に示すヘッダ内のシーケンス番号に対応している。
【００２２】
最大補正時間は、シーケンス番号で特定されるパケットの再生開始予定時刻と、同期情報内の指定時刻との差の最大値である。最大補正時間を超える際の処理は、当該パケットの再生開始予定時刻と、同期情報内の指定時刻との差が最大補正時間を越える場合の処理を示し、本例では、バッファ３２に蓄積されたコンテンツのパケットを一旦全てクリアし、サーバＳＶからコンテンツを取得し直す等である。当該パケットの再生開始予定時刻と指定時刻との差が大きすぎる場合、バッファ３２への蓄積を一度リセットし、その時刻からのコンテンツを新たに取得し直した方が、再生時刻の同期がとり易いからである。
【００２３】
図７は、クラアイントＣＬの再生開始時刻の同期処理を示すフローチャートである。ＣＰＵ処理部２２は、同期情報パケットの受信を待機しており（Ｓ１１）、同期情報パケットを受信した場合（Ｓ１１：ＹＥＳ）、同期情報は有効か否かを判断する（Ｓ１２）。すなわち、現在時刻が同期情報に含まれる有効期限の時刻を過ぎていないかを判断する。有効でなければ（Ｓ１２：ＮＯ）、処理を終了する。有効であれば（Ｓ１２：ＹＥＳ）、ＣＰＵ処理部２２は、ＮＴＰサーバにアクセスすることにより、クライアントＣＬのシステム時刻を補正する（Ｓ１３）。
【００２４】
続いて、ＣＰＵ処理部２２は、現在再生中のパケットのシーケンス番号を確認する（Ｓ１４）。現在再生中のシーケンス番号とは、バッファ３２に蓄積されたパケットのうちバッファ３２から取り出され、音声処理部３４及びＤＡＣ３５で処理されているパケットのシーケンス番号である。
【００２５】
次に、ＣＰＵ処理部２２は、同期情報に含まれているシーケンス番号で特定されるパケットの再生開始予定時刻を算出する（Ｓ１５）。詳細には、例えば、１つのパケットのサイズが全て同一（例えば、４バイト）である場合、ＣＰＵ処理部２２は、現在再生中のパケットから同期情報に含まれているシーケンス番号で特定されるパケットまでの間に存在するパケット数をカウントする。現在再生中のシーケンス番号が１０で同期情報内のシーケンス番号が２０であれば、２０−１０で１０となる。そして、パケット数に１パケットの再生時間（例えば、４バイトの場合、０．３秒）を乗算する。最後に、算出した時間を現在時刻に加算することにより、同期情報に含まれているシーケンス番号の再生開始予定時刻が算出される。また、パケット毎に長さが異なる場合、図５に示すヘッダに含まれるパケットの長さに基づいて、再生開始予定時刻が算出される。
【００２６】
次に、ＣＰＵ処理部２２は、同期情報内の指定時刻を抽出する（Ｓ１６）。そして、ＣＰＵ処理部２２は、再生開始予定時刻と指定時刻とを比較する（Ｓ１７、Ｓ１８、Ｓ２０、Ｓ２２）。
【００２７】
まず、再生開始予定時刻と指定時刻との差が、同期情報に含まれている最大補正時間を超える場合（Ｓ１８：ＹＥＳ）、ＣＰＵ処理部２２は、バッファ３２に蓄積されているパケットの全てを消去して、サーバＳＶから現在配信されている曲のパケットを取得し直す。先述の通り、再生開始予定時刻と指定時刻との際があまり大きすぎる場合には、再生時刻の同期を取るために、指定されたシーケンス番号のパケットの再生時刻をかなりの時間早める又は遅らせる必要あり、ユーザに不快感を与える可能性があるからである。
【００２８】
以下、再生開始予定時刻と指定時刻との差が、同期情報に含まれている最大補正時間を超えない場合を説明する。
【００２９】
再生開始予定時刻が指定時刻よりも早い場合（Ｓ２０：ＹＥＳ）、このまま再生を継続すると指定時刻よりも早くシーケンス番号のパケットが再生されてしまう。そのため、ＣＰＵ処理部２２は、同期情報内のシーケンス番号のパケットの再生を、指定時刻まで待って再生を開始する（再生時刻を指定時刻まで遅らせる）（Ｓ２１）。例えば、再生開始予定時刻が１８時５９分５５秒であり、指定時刻が１９時００分００秒であれば、１８時５９分５５秒から１９時００分００秒までの間は何も再生しないか、あるいは、前のパケットを５秒間繰り返して再生する。そして、１９時００分００秒になっときに、ＣＰＵ処理部２２は同期情報に含まれているシーケンス番号で特定されるパケットの再生を開始する。その結果、コンテンツの再生時刻が５秒間早い場合に、再生時刻５秒遅らせて、シーケンス番号で特定されるパケットを再生することで、コンテンツ全体の再生時刻の同期をとることができる。
【００３０】
一方、再生開始予定時刻が指定時刻よりも遅い場合（Ｓ２２：ＹＥＳ）、このまま再生を継続すると指定時刻よりも遅れてシーケンス番号のパケットが再生されてしまう。そのため、ＣＰＵ処理部２２は、前のシーケンス番号のパケットを再生しないことにより、同期情報内のシーケンス番号のパケットを指定時刻に再生開始できるようにする（再生開始時刻を指定時刻まで早める）（Ｓ２３）。例えば、再生開始予定時刻が１９時００分０５秒であり、指定時刻が１９時００分００秒であれば、本来１９時００分００秒から１９時００分０５秒までに再生する予定であったパケットをバッファ３２からクリアする。そして、１９時００分００秒になっときに、ＣＰＵ処理部２２は同期情報に含まれているシーケンス番号で特定されるパケットの再生を開始する。その結果、コンテンツの再生時刻が５秒間遅い場合に、再生時刻５秒早めて、シーケンス番号で特定されるパケットの再生時刻を調整することにより、コンテンツ全体の再生時刻の同期をとることができる。
【００３１】
なお、再生開始予定時刻と指定時刻とが同じである場合（Ｓ２２：ＮＯ）、指定されているシーケンス番号のパケットの同期がとれており、コンテンツ全体の再生時刻の同期がとれているので、ＣＰＵ処理部２２はそのまま再生を継続する。
【００３２】
以上のように、本例ではコンテンツのストリームとは別にサーバから送信される同期情報に基づいて、同期情報に含まれるシーケンス番号で特定されるパケットを同期情報に含まれる指定時刻に再生開始するように制御することで、再生時刻の同期をとることができる。
【００３３】
［実施例２］
本例は、サーバＳＶとクライアントＣＬとが１対１で通信するユニキャストに好適に採用される。ユニキャストでは、図８に示すとおり、サーバＳＶからクライアントＣＬへ送信されるコンテンツのストリームには、各コンテンツの先頭に、各コンテンツの詳細を示すヘッダ情報（以下、ヘッダという）が設けられている。ヘッダは、例えば、フォーマット情報（Format Tag）と、チャンネル情報（Channels）と、サンプリング周波数（Samples/Seconds）と、平均ビットレート（Average Bitrate）と、タイトル（Title）と、アーティスト名（Author）と、タイムスタンプ（Time
Stump）と、再生時間（Play Time）とを含む。
【００３４】
サーバＳＶは、同期情報パケットを図８のストリームのヘッダに含めて、クライアントＣＬに送信する。詳細には、同期情報パケットは、再生開始時刻を調整すべきコンテンツの１つ前のコンテンツのヘッダに含めて送信される。これにより、再生開始時刻を調整すべきコンテンツを再生開始するときに、確実に同期情報を解析しておくことができる。すなわち、同期情報は、同期情報がヘッダに含まれているコンテンツの次のコンテンツを再生開始する時刻を調整するための情報であり、クライアントＣＬの再生時刻の同期をとるための情報である。同期情報は全てのコンテンツのヘッダに含まれるのではなく、適当な間隔を空けて一部のコンテンツのヘッダに含めて送信すればよい。また、必要に応じて、再生時刻の同期を取る際の確認用として、再生開始時刻を調整すべきコンテンツのヘッダにも同期情報を含めてもよい。
【００３５】
図９は、本例の同期情報を示す図であり、（ａ）は再生開始時刻を調整すべきコンテンツの１つ前のコンテンツのヘッダに含まれる同期情報、（ｂ）は再生開始時刻を調整すべきコンテンツのヘッダに含まれる確認用の同期情報である。まず、（ａ）の同期情報は、有効期限と、指定時刻と、コンテンツの長さ（再生時間）と、非同期時の処理とを含む。有効期限は、当該同期情報を使ってクライアントＣＬが指定されたコンテンツの再生時刻を合わせる処理の有効期限（時刻）であり、例えば、有効期限よりも遅れて同期情報を受信した場合には、当該同期情報を無視して、同期処理を実行しない。指定時刻は、当該同期情報を含むコンテンツの次のコンテンツのサーバ側によって指定された再生開始時刻であり、つまり、当該同期情報を含むコンテンツの再生終了時刻である。コンテンツの長さ（時間）は、当該同期情報を含むコンテンツの再生時間であり、次のコンテンツの再生開始予定時刻を算出するために使用される。非同期時の処理は、再生開始予定時刻と指定時刻とが異なる場合の処理を示す。例えば、非同期時の処理は、再生開始予定時刻が指定時刻よりも早い場合、指定時刻まで何も再生しない、又は、指定時刻まで当該コンテンツを繰り返して再生する等である。又は、再生開始予定時刻が指定時刻よりも遅い場合、当該コンテンツの一部（最後でも、中間でも良い）を再生しない、又は、指定時刻までにフェードアウトする等である。
【００３６】
図９（ｂ）に示す同期情報は、指定時刻を含む。指定時刻は、当該同期情報を含むコンテンツのサーバによって指定された再生開始時刻であり、当該コンテンツの再生開始時刻を調整する際に、図９（ａ）の指定時刻と一致するか否かを確認するための情報である。
【００３７】
図１０は、クラアイントＣＬの再生開始時刻の同期処理を示すフローチャートである。本例では、図３に示すコンテンツリストのコンテンツＤの再生開始時刻を調整する場合を例に説明する。ＣＰＵ処理部２２は、同期情報の受信を待機しており（Ｓ３１）、コンテンツＣのヘッダを受信したときそのヘッダの中に含まれている図９（ａ）に示す同期情報を受信する（Ｓ３１：ＹＥＳ）。次に、ＣＰＵ処理部２２は、同期情報は有効か否かを判断する（Ｓ３２）。すなわち、現在時刻が同期情報に含まれる有効期限の時刻を過ぎていないかを判断する。有効でなければ（Ｓ３２：ＮＯ）、処理を終了する。有効であれば（Ｓ３２：ＹＥＳ）、ＣＰＵ処理部２２は、ＮＴＰサーバにアクセスすることにより、クライアントＣＬのシステム時刻を補正する（Ｓ３３）。
【００３８】
ＣＰＵ処理部２２は、同期情報がヘッダに含まれているコンテンツＣの再生開始を待機する（Ｓ３４）。コンテンツＣが再生開始したとき（Ｓ３４：ＹＥＳ）、ＣＰＵ処理部２２は、コンテンツＣの再生開始時刻をメモリに記憶する（Ｓ３５）。次に、ＣＰＵ処理部２２は、同期情報の中からコンテンツの長さ（時間）を抽出する（Ｓ３６）。
【００３９】
次に、ＣＰＵ処理部２２は、コンテンツＤの再生開始予定時刻、すなわち、コンテンツＣの再生終了予定時刻を算出する（Ｓ３７）。詳細には、Ｓ３５で記憶したコンテンツＣの再生開始時刻にＳ３６で取得したコンテンツＣの長さ（再生時間）を加算することで、コンテンツＤの再生開始予定時刻が得られる。
【００４０】
次に、ＣＰＵ処理部２２は、同期情報内の指定時刻を抽出する（Ｓ３８）。そして、ＣＰＵ処理部２２は、コンテンツＤの再生開始予定時刻と同期情報から抽出した指定時刻とを比較する（Ｓ３９、Ｓ４１、Ｓ４３）。
【００４１】
なお、コンテンツＤのヘッダを受信したときに、ヘッダに含まれる図９（ｂ）に示す同期情報を抽出して、当該同期情報に含まれる指定時刻がＳ３８でコンテンツＣのヘッダに含まれている同期情報から抽出した指定時刻と同じであるかを確認する（Ｓ４０）。指定時刻が異なる場合（Ｓ４０：ＮＯ）、コンテンツＤの再生時刻を指定時刻に合わせずに、そのまま再生を継続する（Ｓ４５）。
【００４２】
以下は、指定時刻が同じである場合（Ｓ４０：ＹＥＳ）について説明する。
【００４３】
コンテンツＤの再生開始予定時刻が指定時刻よりも早い場合（Ｓ４１：ＹＥＳ）、このまま再生を継続すると指定時刻よりも早くコンテンツＤが再生されてしまう。そのため、ＣＰＵ処理部２２は、コンテンツＤの再生を指定時刻まで待って再生を開始する（再生開始時刻を指定時刻まで遅らせる）（Ｓ４２）。例えば、再生開始予定時刻が１８時５９分５５秒であり、指定時刻が１９時００分００秒であれば、１８時５９分５５秒から１９時００分００秒までの間は何も再生しない、あるいは、前のコンテンツＣを５秒間繰り返して再生する。これらの処理の選択は、同期情報内の「非同期時の処理」に基づいて実行される。そして、１９時００分００秒になっときに、ＣＰＵ処理部２２はコンテンツＤの再生を開始する。その結果、コンテンツの再生時刻が５秒間早い場合に、再生時刻５秒遅らせてることで、全コンテンツの再生時刻の同期をとることができる。
【００４４】
一方、再生開始予定時刻が指定時刻よりも遅い場合（Ｓ４３：ＹＥＳ）、このまま再生を継続すると指定時刻よりも遅れてコンテンツＤが再生されてしまう。そのため、ＣＰＵ処理部２２は、前のコンテンツＣの一部を再生しないことにより、コンテンツＤを指定時刻に再生開始できるようにする（再生開始時刻を指定時刻まで早める）（Ｓ４４）。例えば、再生開始予定時刻が１９時００分０５秒であり、指定時刻が１９時００分００秒であれば、本来１９時００分００秒から１９時００分０５秒までに再生する予定であったコンテンツＣの一部をバッファ３２からクリアする。これらの処理の選択は、同期情報内の「非同期時の処理」に基づいて実行される。そして、１９時００分００秒になっときに、ＣＰＵ処理部２２はコンテンツＤの再生を開始する。その結果、コンテンツの再生時刻が５秒間遅い場合に、再生時刻５秒早めて、全コンテンツの再生時刻の同期をとることができる。
【００４５】
なお、再生開始予定時刻と指定時刻とが同じである場合（Ｓ４３：ＮＯ）、コンテンツ再生の同期がとれているので、ＣＰＵ処理部２２はそのまま再生を継続する（Ｓ４５）。
【００４６】
以上のように、本例では再生開始時刻を合わすべきコンテンツの１つ前のコンテンツのヘッダに含まれる同期情報に基づいて、同期情報に含まれる指定時刻にコンテンツを再生開始するように制御することで、再生時刻の同期をとることができる。
【００４７】
［実施例３］
本例は、サーバＳＶが複数のクラアイントＣＬと同時通信するマルチキャストに採用される。マルチキャストでは、実施例２のようにコンテンツ毎にヘッダを送信することができず、クライアントＣＬがサーバＳＶに接続したときにＮＳＣファイル（マルチキャスト情報ファイル）にヘッダを含めてクライアントＣＬに送信する。本例では、図１１に示すとおり、再生時刻を調整すべきコンテンツＤの１つ前に時刻調整コンテンツが送信される。時刻調整コンテンツは、コンテンツＤの再生時刻を調整するために、再生時刻を遅らせる場合には繰り返して再生され、再生時刻を早める場合には一部が再生されないコンテンツである。時刻調整コンテンツは、例えば放送局自身の広告等であるので、このような処理が行われても、視聴者に不快感を与えることはない。時刻調整コンテンツのビットレート及びサンプリング周波数の組合せは、他のコンテンツのそれと重複しないようになっており、コンテンツが時刻調整コンテンツであるか否かは、コンテンツのビットレート及びサンプリング周波数で判別できるようになっている。
【００４８】
図１２は同期情報を示す図であり、同期情報はＮＳＣファイルの中に含まれている。これにより、再生開始時刻を調整すべきコンテンツＤを再生開始するときに、確実に同期情報を解析しておくことができる。同期情報は、時刻調整コンテンツの次のコンテンツを再生開始する時刻を調整するための情報であり、クライアントＣＬの再生時刻の同期をとるための情報である。同期情報はＮＳＣファイル内に１つしか存在しないが、サーバＳＶから時刻調整コンテンツが複数配信されることにより、各時刻調整コンテンツの次のコンテンツの再生開始時刻が同じ同期情報を参照して調整されるようになっている。すなわち、詳細後述するが、本例の同期情報には指定時刻が含まれておらず、クライアント側がその都度指定時刻を算出する。
【００４９】
同期情報は、ビットレートと、サンプリング周波数と、時刻補正精度と、最大補正時間と、コンテンツの長さ（再生時間）と、非同期時の処理とを含む。ビットレート及びサンプリング周波数は、上記の通り、時刻調整コンテンツを特定するために使用される、時刻調整コンテンツのビットレート及びサンプリング周波数である。
【００５０】
時刻補正精度は、指定時刻をその都度算出するための情報であり、時間単位、分単位、又は秒単位のいずれかである。ここで、時刻補正精度を使った指定時刻の算出方法を、図１３を参照して詳細に説明する。指定時刻は、時刻調整コンテンツの再生終了予定時刻を、時刻補正精度以下の単位を００にするような最も近い時刻である。例えば、時刻調整コンテンツの再生終了予定時刻が１９時００分５０秒であるとき、時刻補正精度が秒単位であれば、指定時刻は秒が００になる時刻のうち時刻調整コンテンツの終了予定時刻から最も近い時刻となり、この場合（１）のように１９時０１分００秒になる。（一方、時刻調整コンテンツの終了予定時刻が１９時００分２０秒の場合は、指定時刻が１９時００分００秒になる）。次に、時刻補正精度が分単位であれば、指定時刻は分及び秒が００になる時刻のうち時刻調整コンテンツの終了予定時刻から最も近い時刻となり、この場合（２）のように１９時００分００秒になる。次に、時刻補正精度が時間単位であれば、指定時刻は時間、分及び秒が００になる時刻のうち時刻調整コンテンツの終了予定時刻から最も近い時刻となり、この場合（３）のように００時００分００秒になる。なお、時刻補正精度に日単位を含めてもよい。
【００５１】
コンテンツの長さ（時間）は、時刻調整コンテンツの再生時間であり、再生時刻を調整すべきコンテンツの再生開始予定時刻を算出するために使用される。非同期時の処理は、再生開始予定時刻と指定時刻とが異なる場合の処理を示す。例えば、非同期時の処理は、再生開始予定時刻が指定時刻よりも早い場合、指定時刻まで何も再生しない、又は、指定時刻まで時刻調整コンテンツを繰り返して再生する等である。又は、再生開始予定時刻が指定時刻よりも遅い場合、時刻調整コンテンツの一部（最後でも、中間でも良い）を再生しない、又は、指定時刻までにフェードアウトする等である。
【００５２】
図１４は、クラアイントＣＬの再生開始時刻の同期処理を示すフローチャートである。本例では、図１１に示すようにコンテンツリストのコンテンツＤの前に時刻調整コンテンツが含まれており、コンテンツＤの再生開始時刻を調整する場合を例に説明する。
【００５３】
ＣＰＵ処理部２２は、時刻調整コンテンツの再生開始を待機している（Ｓ５１）。時刻調整コンテンツが再生開始したことは、再生中のコンテンツのビットレート及びサンプリング周波数をチェックすることで判断される。時刻調整コンテンツが再生開始したとき（Ｓ５１：ＹＥＳ）、ＣＰＵ処理部２２は、時刻調整コンテンツの再生開始時刻をメモリに記憶する（Ｓ５２）。次に、ＣＰＵ処理部２２は、同期情報の中から時刻調整コンテンツの長さ（再生時間）を抽出する（Ｓ５３）。
【００５４】
次に、ＣＰＵ処理部２２は、コンテンツＤの再生開始予定時刻、すなわち、時刻調整コンテンツの再生終了予定時刻を算出する（Ｓ５４）。詳細には、Ｓ５２で記憶した時刻調整コンテンツの再生開始時刻にＳ５３で取得した時刻調整コンテンツの長さ（再生時間）を加算することで、コンテンツＤの再生開始予定時刻が得られる。
【００５５】
次に、ＣＰＵ処理部２２は、時刻補正精度及び時刻調整コンテンツの再生終了予定時刻に基づいて指定時刻を算出する（Ｓ５５）。詳細には、まず、同期情報内の時刻補正精度を抽出する。上記の通り、図１３を参照して、Ｓ５４で算出した時刻調整コンテンツの再生終了予定時刻が１９時００分５０秒であり、時刻補正精度が例えば分単位であれば、指定時刻は１９時００分００秒になる。そして、ＣＰＵ処理部２２は、コンテンツＤの再生開始予定時刻とＳ５５で算出した指定時刻とを比較する（Ｓ５６、Ｓ５７、Ｓ５８）。
【００５６】
コンテンツＤの再生開始予定時刻が指定時刻よりも早い場合（Ｓ５７：ＹＥＳ）、このまま再生を継続すると指定時刻よりも早くコンテンツＤが再生されてしまう。そのため、ＣＰＵ処理部２２は、指定時刻まで待ってコンテンツＤの再生を開始する（Ｓ５８）。例えば、図１３の（１）に示すとおり、再生開始予定時刻が１９時００分５０秒であり、算出した指定時刻が１９時０１分００秒であれば、１９時００分５０秒から１９時０１分００秒までの間は何も再生しないか、あるいは、時刻調整コンテンツを１０秒間繰り返して再生する。これらの処理の選択は、同期情報内の「非同期時の処理」に基づいて実行される。そして、１９時０１分００秒になっときに、ＣＰＵ処理部２２はコンテンツＤの再生を開始する。その結果、コンテンツの再生時刻が１０秒間早い場合に、再生時刻１０秒遅らせて、コンテンツの再生時刻の同期をとることができる。
【００５７】
一方、再生開始予定時刻が指定時刻よりも遅い場合（Ｓ５９：ＹＥＳ）、このまま再生を継続すると指定時刻よりも遅れてコンテンツＤが再生されてしまう。そのため、ＣＰＵ処理部２２は、時刻調整コンテンツの一部を再生しないことにより、コンテンツＤを指定時刻に再生開始できるようにする（Ｓ６０）。例えば、図３の（２）のように再生開始予定時刻が１９時００分５０秒であり、指定時刻が１９時００分００秒であれば、本来１９時００分００秒から１９時００分５０秒までに再生する予定であった時刻調整コンテンツの一部をバッファ３２からクリアする。これらの処理の選択は、同期情報内の「非同期時の処理」に基づいて実行される。そして、１９時００分００秒になっときに、ＣＰＵ処理部２２はコンテンツＤの再生を開始する。その結果、コンテンツの再生時刻が５０秒間遅い場合に、再生時刻５０秒早めて、コンテンツの再生時刻の同期をとることができる。
【００５８】
なお、再生開始予定時刻と指定時刻とが同じである場合（Ｓ５９：ＮＯ）、コンテンツ再生の同期がとれているので、ＣＰＵ処理部２２はそのまま再生を継続する（Ｓ６１）。
【００５９】
以上のように、本例ではＮＳＣファイルに含まれる同期情報に基づいて、時刻調整コンテンツを識別して、時刻調整コンテンツの再生を制御することで、時刻調整コンテンツの次のコンテンツを算出した指定時刻に再生開始する。その結果、マルチキャストのようにコンテンツ毎にヘッダを付与できない場合でも、再生時刻の同期を取ることができる。指定時刻を時刻調整コンテンツの終了予定時刻と時刻補正精度とからその都度算出しているので、１つの同期情報で複数回に渡り再生時刻を調整することができるからである。
【００６０】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらの実施形態には限定されない。本発明は、上記のサーバ及びクライアントを動作させるためのコンピュータプログラムまたはそのコンピュータプラグラムを記録した記録媒体という形態で提供されてもよい。
【産業上の利用可能性】
【００６１】
本発明はインターネットのストリーミングを使用した放送に好適に適用され得る。
【図面の簡単な説明】
【００６２】
【図１】本発明の好ましい実施形態によるコンテンツ再生装置１の構成を示すブロック図である。
【図２】サーバＳＶの構成を示すブロック図である。
【図３】コンテンツリストを示す図である。
【図４】クライアントＣＬの構成を示すブロック図である。
【図５】実施例１のパケットのヘッダ情報を示す図である。
【図６】実施例１の同期情報を示す図である。
【図７】実施例１の再生時刻の調整処理を示すフローチャートである。
【図８】実施例２のストリームを示す図である。
【図９】実施例２の同期情報を示す図である。
【図１０】実施例２の再生時刻の調整処理を示すフローチャートである。
【図１１】実施例３のコンテンツリストを示すフローチャートである。
【図１２】実施例３の同期情報を示す図である。
【図１３】実施例３の指定時刻を算出する方法を示す図である。
【図１４】実施例３の再生時刻の調整処理を示すフローチャートである。
【符号の説明】
【００６３】
１          コンテンツ再生装置
２１        ＨＤＤ
２２        ＣＰＵ処理部
２３        通信部
３１        マイコン処理部
３２        バッファ
３３        メモリ
３４        音声処理部
３５        ＤＡＣ
３６        通信部
３７        入力装置
３８        表示装置
ＳＶ        サーバ
ＣＬ        クラアイント
【図１】
2008147973.tif 000003
【図２】
2008147973.tif 000004
【図３】
2008147973.tif 000005
【図４】
2008147973.tif 000006
【図５】
2008147973.tif 000007
【図６】
2008147973.tif 000008
【図７】
2008147973.tif 000009
【図８】
2008147973.tif 000010
【図９】
2008147973.tif 000011
【図１０】
2008147973.tif 000012
【図１１】
2008147973.tif 000013
【図１２】
2008147973.tif 000014
【図１３】
2008147973.tif 000015
【図１４】
2008147973.tif 000016