(57)【要約】【課題】  ソフトウェア処理によって各受信装置のコンテンツ毎の再生開始時刻を同期させる。【解決手段】  送信装置は、各受信装置に対して、同時刻に同じコンテンツの同じコンテンツデータを送信する。従って、各受信装置は、同時刻に同じコンテンツの同じコンテンツデータを受信する。受信装置は、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定し、受信開始時刻に、各受信装置において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。受信装置は、再生開始時刻になると、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる。【選択図】図６
2013110477.tif 000002
【特許請求の範囲】
【請求項１】
送信装置と、前記送信装置とネットワーク経由で接続可能な複数の受信装置とを備え、複数のコンテンツを連続して再生するコンテンツ再生システムであって、
前記送信装置が、前記各受信装置に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する送信部を有し、
前記各受信装置が、
前記送信装置からコンテンツデータを受信する受信部と、
受信したコンテンツデータを再生する再生部と、
次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定する時刻特定部と、
前記受信開始時刻に、各受信装置において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する開始時刻設定部と、
再生開始時刻になったか否かを判断する時刻判断部と、
再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる再生制御部とを有する、コンテンツ再生システム。
【請求項２】
前記再生制御部が、再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツのコンテンツデータを記憶領域から全て削除させ、再生開始時刻になった次のコンテンツのコンテンツデータを記憶領域に格納させることにより、再生開始時刻になった次のコンテンツのコンテンツデータを再生開始させる、請求項１に記載のコンテンツ再生システム。
【請求項３】
前記送信部が、コンテンツと共に、フェードアウトすることを示す情報、又は、フェードインすることを示す情報を送信し、
前記再生部が、前のコンテンツの末尾部分をフェードアウトさせ、次のコンテンツの先頭部分をフェードインさせるように合成して再生し、
前記開始時刻設定部が、前記受信開始時刻に前記遅延時間を加算し、次のコンテンツのコンテンツデータを最初に受信したときのバッファに蓄積されている残り再生時間を減算し、前記再生開始時刻を設定する、請求項１または２に記載のコンテンツ再生システム。
【請求項４】
前記各受信装置が、再生開始時刻になったと判断された時点の現在再生中のコンテンツの残り再生時間を前記送信装置に送信する残り再生時間送信部をさらに有し、
前記送信装置が、再生開始時刻になったと判断された時点の現在再生中のコンテンツの残り再生時間を前記各受信装置から受信する残り再生時間受信部と、
前記各受信装置から受信した残り再生時間の最大値を特定し前記遅延時間に加算して、新たな前記遅延時間を算出する遅延時間算出部と、
算出された新たな前記遅延時間を前記各受信装置に送信する遅延時間送信部とをさらに有し、
前記各受信装置が、算出された新たな前記遅延時間を受信する遅延時間受信部をさらに有し、
前記開始時刻設定部が、前記受信開始時刻に、算出された新たな前記遅延時間を加算して、次のコンテンツの再生開始時刻を設定する、請求項１〜３のいずれかに記載のコンテンツ再生システム。
【請求項５】
前記複数のコンテンツが連続した音声信号であって、
前記受信装置が、前記送信装置から受信する基準クロックと、前記受信装置内で管理するクロックとの差情報を前記送信装置に送信する差情報送信部をさらに有し、
前記送信装置が、前記受信装置から差情報を受信する差情報受信部と、
受信した差情報が所定値以上であり、かつ、音声信号のレベルが無音と判断される所定レベル未満である場合に、当該箇所で別のコンテンツとして分離するコンテンツ分離部とをさらに有する、請求項１〜４のいずれかに記載のコンテンツ再生システム。
【請求項６】
送信装置と、前記送信装置とネットワーク経由で接続可能な受信装置とを備え、複数のコンテンツを連続して再生するコンテンツ再生システムであって、
前記送信装置が、前記受信装置および前記送信装置自身に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する送信部を有し、
前記受信装置及び前記送信装置が、
前記送信装置からコンテンツデータを受信する受信部と、
受信したコンテンツデータを再生する再生部と、
次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定する時刻特定部と、
前記受信開始時刻に、前記受信装置および前記送信装置において同じ時間に設定されている遅延時間を加算して、新たなコンテンツの再生開始時刻を設定する開始時刻設定部と、
再生開始時刻になったか否かを判断する時刻判断部と、
再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる再生制御部とを有する、コンテンツ再生システム。
【請求項７】
請求項１〜６のいずれかに記載のコンテンツ再生システムにおける前記送信装置。
【請求項８】
請求項１〜６のいずれかに記載のコンテンツ再生システムにおける前記受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置と受信装置とを備えるコンテンツ再生システムに関する。
【背景技術】
【０００２】
送信装置からネットワーク経由で複数の受信装置に対して、同じ時刻に同じコンテンツデータを送信することで、各受信装置で同時刻に同じコンテンツデータを一斉に再生するシステムが提案されている。ここで、各受信装置の再生クロックの周波数が異なっていると、送信装置が受信装置に同じ時刻に同じコンテンツデータを送信したとしても、受信装置が再生を継続するにつれて次第に、各受信装置のコンテンツの再生位置にずれが生じてくる。この問題を解決するために下記特許文献１においては、送信装置のクロックを基準にし、パケットに付加された時刻情報に基づいて、各受信装置が再生クロックをあわせる技術が提案されている。しかし、この技術ではクロックを合わせるためのハードウェア（ＶＣＸＯによる電圧−周波数変換や、ＰＬＬの分周逓倍比の変更）等を追加する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＵＳ２００７／００３８９９９
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は上記従来の課題を解決するためになされたものであり、その目的は、ソフトウェア処理によって各受信装置のコンテンツ毎の再生開始時刻を同期させることができるコンテンツ再生システムを提供することである。
本発明の別の目的は、ソフトウェア処理によって受信装置及び送信装置のコンテンツ毎の再生開始時刻を同期させることができるコンテンツ再生システムを提供することである。
本発明は、上記いずれか一方の課題を解決すればよい。
【課題を解決するための手段】
【０００５】
本発明の好ましい実施形態によるコンテンツ再生システムは、送信装置と、前記送信装置とネットワーク経由で接続可能な複数の受信装置とを備え、複数のコンテンツを連続して再生するコンテンツ再生システムであって、前記送信装置が、前記各受信装置に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する送信部を有し、前記各受信装置が、前記送信装置からコンテンツデータを受信する受信部と、受信したコンテンツデータを再生する再生部と、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定する時刻特定部と、前記受信開始時刻に、各受信装置において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する開始時刻設定部と、再生開始時刻になったか否かを判断する時刻判断部と、再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる再生制御部とを有する。
【０００６】
送信装置は、各受信装置に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する。従って、各受信装置は、ほぼ同時刻に同じコンテンツの同じ再生位置のコンテンツデータを受信する。受信装置は、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定し、受信開始時刻に、各受信装置において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。受信装置は、再生開始時刻になると、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる。従って、コンテンツの再生中に受信装置毎に再生位置が若干ずれたとしても、次のコンテンツの再生開始時刻は全ての受信装置で同期させることができる。
【０００７】
好ましい実施形態においては、前記再生制御部が、再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツのコンテンツデータを記憶領域から全て削除させ、再生開始時刻になった次のコンテンツのコンテンツデータを記憶領域に格納させることにより、再生開始時刻になった次のコンテンツのコンテンツデータを再生開始させる。
【０００８】
次のコンテンツの再生開始時刻になったときに、バッファに前のコンテンツのコンテンツデータが未だ格納されている場合に、前のコンテンツのコンテンツデータを全て削除し、次のコンテンツのコンテンツデータをバッファに格納することで、再生開始時刻に次のコンテンツを再生開始することができる。
【０００９】
好ましい実施形態においては、前記送信部が、コンテンツと共に、フェードアウトすることを示す情報、又は、フェードインすることを示す情報を送信し、前記再生部が、前のコンテンツの末尾部分をフェードアウトさせ、次のコンテンツの先頭部分をフェードインさせるように合成して再生し、前記開始時刻設定部が、前記受信開始時刻に前記遅延時間を加算し、次のコンテンツのコンテンツデータを最初に受信したときのバッファに蓄積されている残り再生時間を減算し、前記再生開始時刻を設定する。
【００１０】
前のコンテンツをフェードアウトさせ、次のコンテンツをフェードインさせる場合、次のコンテンツの再生開始時刻にバッファ内に残存する前のコンテンツのコンテンツデータを削除することができない。前のコンテンツの途中部分が再生されなくなるからである。本例では、次のコンテンツのコンテンツデータを最初に受信したときのバッファに蓄積されている前のコンテンツの残り再生時間を、次のコンテンツの再生開始時刻から減算することで、この問題を解決することができる。
【００１１】
好ましい実施形態においては、前記各受信装置が、再生開始時刻になったと判断された時点の現在再生中のコンテンツの残り再生時間を前記送信装置に送信する残り再生時間送信部をさらに有し、前記送信装置が、再生開始時刻になったと判断された時点の現在再生中のコンテンツの残り再生時間を前記各受信装置から受信する残り再生時間受信部と、前記各受信装置から受信した残り再生時間の最大値を特定し前記遅延時間に加算して、新たな前記遅延時間を算出する遅延時間算出部と、算出された新たな前記遅延時間を前記各受信装置に送信する遅延時間送信部とをさらに有し、前記各受信装置が、算出された新たな前記遅延時間を受信する遅延時間受信部をさらに有し、前記開始時刻設定部が、前記受信開始時刻に、算出された新たな前記遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。
【００１２】
受信装置は、再生開始時刻になったと判断された時点の現在再生中のコンテンツの残り再生時間（つまり再生できなかった残り再生時間）を送信装置に送信する。送信装置は、各受信装置から受信した残り再生時間の最大値を特定し遅延時間に加算して、新たな遅延時間を算出し、各受信装置に送信する。各受信装置は、新たな遅延時間を使用して再生開始時刻を設定する。従って、全ての受信装置がコンテンツを最後まで再生し終えることが出来るように、遅延時間を適宜補正することができる。
【００１３】
好ましい実施形態においては、前記複数のコンテンツが連続した音声信号であって、前記受信装置が、前記送信装置から受信する基準クロックと、前記受信装置内で管理するクロックとの差情報を前記送信装置に送信する差情報送信部をさらに有し、前記送信装置が、前記受信装置から差情報を受信する差情報受信部と、受信した差情報が所定値以上であり、かつ、音声信号のレベルが無音と判断される所定レベル未満である場合に、当該箇所で別のコンテンツとして分離するコンテンツ分離部とをさらに有する。
【００１４】
複数のコンテンツが連続した音声信号であっても、無音と判断される箇所で別のコンテンツとして分離することによって、上記のように別のコンテンツの再生開始時刻を受信装置間で同期させることができる。
【００１５】
本発明の別の好ましい実施形態によるコンテンツ再生システムは、送信装置と、前記送信装置とネットワーク経由で接続可能な受信装置とを備え、複数のコンテンツを連続して再生するコンテンツ再生システムであって、前記送信装置が、前記受信装置および前記送信装置自身に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する送信部を有し、前記受信装置及び前記送信装置が、前記送信装置からコンテンツデータを受信する受信部と、受信したコンテンツデータを再生する再生部と、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定する時刻特定部と、前記受信開始時刻に、前記受信装置および前記送信装置において同じ時間に設定されている遅延時間を加算して、新たなコンテンツの再生開始時刻を設定する開始時刻設定部と、再生開始時刻になったか否かを判断する時刻判断部と、再生開始時刻になったと判断された場合、前記再生部に、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる再生制御部とを有する。
【００１６】
送信装置は、受信装置及び送信装置自身に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する。従って、受信装置および送信装置は、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを受信する。受信装置および送信装置は、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定し、受信開始時刻に、受信装置及び送信装置において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。受信装置および送信装置は、再生開始時刻になると、現在再生中のコンテンツの再生を終了させ、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始させる。従って、コンテンツの再生中に受信装置および送信装置で再生位置が若干ずれたとしても、次のコンテンツの再生開始時刻は受信装置および送信装置で同期させることができる。
【発明の効果】
【００１７】
本発明の一実施形態によると、ソフトウェア処理によって各受信装置のコンテンツ毎の再生開始時刻を同期させることができるコンテンツ再生システムを提供することができる。
本発明の別の一実施形態によると、ソフトウェア処理によって受信装置及び送信装置のコンテンツ毎の再生開始時刻を同期させることができるコンテンツ再生システムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明のコンテンツ再生システムを示すブロック図である。
【図２】送信装置１００を示す図である。
【図３】受信装置２００を示す図である。
【図４】キュー管理テーブルを示す図である。
【図５】送信装置１００の送信処理を示すフローチャートである。
【図６】受信装置１００の受信処理を示すフローチャートである。
【図７】キューの状態の遷移を示す図である。
【図８】受信装置２００の再生処理を示すフローチャートである。
【図９】受信装置２００の再生開始待ち処理を示すフローチャートである。
【図１０】各受信装置２００の前の曲Ｘと次の曲Ｙとの再生を示す模式図である。
【図１１】受信装置２００の再生中処理を示すフローチャートである。
【図１２】フェードイン、フェードアウトを示す図である。
【図１３】バッファ残時間に応じてフェード時間の補正を示す図である。
【図１４】フェードイン、フェードアウト時の送信装置１００、受信装置の処理を示すシーケンス図である。
【図１５】送信装置１００の送信処理を示すフローチャートである。
【図１６】送信装置１００の曲送信処理を示すフローチャートである。
【図１７】受信装置２００の受信処理を示すフローチャートである。
【図１８】受信装置１００の再生開始待ち処理を示すフローチャートである。
【図１９】受信装置１００の再生中処理を示すフローチャートである。
【図２０】送信装置１００、受信装置２００の遅延時間補正処理を示すフローチャートである。
【図２１】送信装置１００の曲分離処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の好ましい実施形態について、図面を参照して具体的に説明するが、本発明はこれらの実施形態には限定されない。
【００２０】
図１は、コンテンツ再生システムを示すブロック図である。コンテンツ再生システムは、送信装置１００と、複数の受信装置２００（２００Ａ、２００Ｂ、２００Ｃ等）と、サーバ３００とを備え、これらはインターネット、ＬＡＮ等の任意のネットワークを介して相互に接続可能である。サーバ３００は、複数のコンテンツをＨＤＤ等の記憶媒体に格納している。コンテンツは、音楽（曲）データ、映像（画像）データ等の総称であるが、本例では曲データである。つまり、１つの曲のことを１つのコンテンツという。
【００２１】
送信装置１００は、サーバ３００からコンテンツデータを受信し、受信したコンテンツデータをパケット化して、各受信装置２００に対して、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する。つまり、送信装置１００は、曲データを各受信装置２００に対してマルチキャスト又はブロードキャスト配信する。なお、サーバ３００は、送信装置１００とネットワーク経由で接続されている必要はなく、音声ケーブル等で有線接続されていてもよい。また、サーバ３００の機能を送信装置１００が備えていても良い。
【００２２】
各受信装置２００は、同時刻に同じコンテンツの同じ再生位置のコンテンツデータを受信する。各受信装置２００は、受信したコンテンツデータを再生する。ここで、各受信装置は、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定し、受信開始時刻に、各受信装置２００において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。従って、各受信装置は、同時刻に送信装置１００からコンテンツデータを受信するので、各受信装置のコンテンツ毎の再生開始時刻が全て同じになるように設定される。各受信装置２００は、再生開始時刻になったか否かを判断し、再生開始時刻になったと判断された場合、現在再生中のコンテンツの再生を終了し、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始する。これにより、コンテンツ単位で、各受信装置は再生開始時刻を同期させることができる。すなわち、コンテンツを再生していくと、各受信装置の再生クロックの周波数の誤差によって、各受信装置２００が再生しているコンテンツの再生位置に若干の誤差が生じる場合があるが、次のコンテンツを再生開始するときに、コンテンツの再生位置を各受信装置２００で一致させることができる。
【００２３】
送信装置１００は、受信装置２００の機能を兼有していてもよい。つまり、送信装置１００は、各受信装置２００に加えて、送信装置１００にも同時刻に同じコンテンツの同じ再生位置のコンテンツデータを送信する。送信装置１００も、受信装置２００と同じように、次のコンテンツのコンテンツデータを最初に受信した受信開始時刻を特定し、受信開始時刻に、各受信装置２００および送信装置１００において同じ時間に設定されている遅延時間を加算して、次のコンテンツの再生開始時刻を設定する。送信装置１００は、再生開始時刻になったか否かを判断し、再生開始時刻になったと判断された場合、現在再生中のコンテンツの再生を終了し、再生開始時刻になった次のコンテンツのコンテンツデータの再生を開始する。これにより、コンテンツ単位で、送信装置も、各受信装置と再生開始時刻を同期させることができる。
【００２４】
図２は、送信装置１００の構成を示す概略ブロック図である（なお、送信装置１００における受信装置２００としての機能の説明は図３で記載する）。送信装置１００は、制御部１１と、メモリ（ＲＯＭ、ＲＡＭ等）１２と、ネットワークインターフェース１３と、受信バッファ１４と、デコーダ１５と、パケット化部１６と、送信バッファ１７とを概略備える。
【００２５】
制御部１１は、メモリ１２に格納されている送信装置１００の動作プログラムに基づいて送信装置１００の各部を制御するものであり、マイコンやＣＰＵ等である。ネットワークインターフェース１３は、サーバ３００や、受信装置２００とネットワーク経由で通信し、データやコマンドを送受信する。受信バッファ１４は、ネットワークインターフェースを介してサーバ３００から受信した曲データを一時的に格納し、その後、デコーダ１５に供給する。デコーダ１５は、曲データをデコードし、ＰＣＭデータ列に変換し、パケット化部１６に供給する。パケット化部１６は、ひとかたまりのＰＣＭデータ列を例えばＲＴＰ（Real-time Transport Protocol）等の任意のプロトコルを用いてパケットに変換する。パケット化部１６は、送信バッファ１７にパケットを一時的に格納する。制御部１１は、送信バッファ１７からパケットを取り出してタイムスタンプ及びＳＳＲＣを含むヘッダを追加して、ネットワークインターフェース１３を介して、各受信装置２００にパケットを送信する。ＳＳＲＣは、ＲＴＰにおいて定義されている曲を示す識別情報である。
【００２６】
図３は、各受信装置２００（及び送信装置１００の受信装置としての機能）の構成を示すブロック図である。受信装置２００は、制御部２１と、メモリ２２（ＲＯＭ、ＲＡＭ等）と、受信処理部２３と、キュー管理部２４と、再生処理部２５とを概略備える。制御部２１は、メモリ２２に格納されている受信装置２００の動作プログラムを実行することによって、受信装置２００の各部を制御するものであり、マイコンやＣＰＵ等である。
【００２７】
受信処理部２３は、送信装置１００からネットワーク経由で送信された曲データのパケットを受信し、チャンクを生成する。チャンクはひとかたまりのＰＣＭデータ列にヘッダを付加したものである。受信処理部２３は、パケット受信部２３Ａと、パケット解析部２３Ｂと、チャンク生成部２３Ｃと、キュー操作部２３Ｄとを有する。パケット受信部２３Ａは、ネットワーク経由で送信装置１００から送信されたパケットを受信し、パケット解析部２３Ｂに供給する。パケット解析部２３Ｂは、パケットのヘッダに含まれているＳＳＲＣを取得し、制御部２１に供給する。パケット解析部２３Ｂは、受信したパケットに含まれているＳＳＲＣが変更されたとき、すなわち、受信した曲が次の曲に変更されたとき、パケットを受信した時刻を受信開始時刻として特定し、制御部２１に供給する。チャンク生成部２３Ｃは、パケットからチャンクを生成し、キュー管理部２４に供給する。キュー操作部２３Ｄは、制御部２１の指示に基づいてキュー管理テーブルを更新制御する。
【００２８】
キュー管理部２４は、曲毎にキューを作成し、キューにチャンクを格納すると共に、キューの情報をキュー管理テーブルにおいて管理する。キュー管理部２４は、曲毎に生成されたキュー２４Ａと、キュー管理テーブル２４Ｂとを有する。キューは、次の曲のチャンクが受信処理部２３から供給されるときに、新たに生成される。キューに格納されたチャンクは、制御部２１の指示に応じて再生処理部２５によって読み出される。図４は、キュー管理テーブルの一例を示す図である。キュー管理テーブルには、キューインデックスと、キューＩＤ（識別番号）と、再生開始時刻と、キューの状態とが対応付けて登録される。これらの情報の詳細について後述する。
【００２９】
再生処理部２５は、キュー管理部２４から読み出したチャンクを再生し、音声信号を出力する。再生処理部２５は、チャンク処理部２５Ａと、ミキシング処理部２５Ｂと、音声出力部２５Ｃとを概略有する。チャンク処理部２５Ａは、キューからチャンクを読み出して、チャンクからＰＣＭデータ列を取り出す。ミキシング処理部２５は、後述する別の実施形態においてクロスフェード処理を実行する際に前の曲のＰＣＭデータと、後の曲のＰＣＭデータとを合成する。音声出力部２５Ｃは、チャンク処理部２５Ａ又はミキキング処理部２５ＢからのＰＣＭデータ列を自身が備えるバッファ（音声出力バッファ）に一時的に格納したあと、音声出力を実行する。
【００３０】
以上の構成を有するコンテンツ再生システムの動作を説明する。
図５は、送信装置１００の制御部１１の送信処理を示すフローチャートである。制御部１１は、サーバ３００から例えばネットワーク経由でコンテンツリストを取得し、メモリ１２に保存する（Ｓ１）。制御部１１は、コンテンツリストから曲を１つ選択する（Ｓ２）。制御部１１は、コンテンツリスト内の全ての曲について受信装置２００に送信済みであるか否かを判断する（Ｓ３）。送信済みであれば（Ｓ３でＹＥＳ）、処理を終了する。送信済みでなければ（Ｓ３でＮＯ）、制御部１１は選択された曲の例えば全データをサーバ３００からネットワーク経由で取得し、受信バッファ１４に格納する（Ｓ４）。
【００３１】
制御部１１は、選択された曲のＳＳＲＣを生成する（Ｓ５）。ＳＳＲＣは、ＲＴＰのヘッダに含まれている、曲を特定するための識別情報である。制御部１１は、受信バッファ１４内に格納されている曲データをペイロード長分読み出して、デコードし、パケット化し、送信バッファに格納する（Ｓ６）。ペイロード長とは、１つのパケットに含めることができる曲データの最大サイズである。制御部１１は、タイミング調整のために所定時間待機する（Ｓ７）。ここで、所定時間とは、受信装置２００に前回送信した曲データが受信装置２００側で消化されるまでに必要な時間であり、詳細には、（送信済みサンプル数の総和）／（サンプリング周波数）によって決定される。
【００３２】
制御部１１は、ヘッダにタイムスタンプとＳＳＲＣとを格納する（Ｓ８）。タイムスタンプは、主として、受信装置２００がパケットを受信できなかった場合に、欠落しているパケットの再生時間情報を確認するために使用される情報である。制御部１１は、曲データのパケットにヘッダを付加して、ネットワークインターフェース１３を介して、各受信装置２００に曲データのパケットを送信する（Ｓ９）。
【００３３】
制御部１１は、選択された曲の全曲データを送信完了したか否かを判断する（Ｓ１０）。送信完了していない場合（Ｓ１０でＮＯ）、処理はＳ６に戻って、曲データのパケットの送信を継続する。送信完了した場合（Ｓ１０でＹＥＳ）、制御部１１は、曲間パケットを送信しながら、所定時間待機する（Ｓ１１）。つまり、受信装置２００は、音声再生のクロック周波数が低い場合に、曲データの再生終了までの時間が遅くなる。従って、全ての受信装置２００が曲データを最後まで再生し終え、かつ、次の曲を再生開始するまでに多少の曲間が生じるように、次の曲データの送信を所定時間待機することが好ましい。待機している間、制御部１１は、曲間パケットを送信する。
【００３４】
曲間パケットは、ペイロードに曲データを含まず、ヘッダに曲間パケットであることを示す情報が含まれている。曲間パケットであることを示す情報は、例えば、曲間フラグが１にセットされることによって実現することができる。曲間パケットに含まれるＳＳＲＣは、直前に送信終了した曲のＳＳＲＣである。その後、処理はＳ２に戻って、制御部１１は、コンテンツリストから次の曲を選択し、上記各処理を再度実行する。
【００３５】
図６は、受信装置２００の制御部２１の受信処理を示す。制御部２１は、曲データのパケットの受信に必要な情報（例えばマルチキャストアドレス等）を取得する（Ｓ２１）。制御部２１は、受信処理部２３に曲データのパケットを受信開始させる（Ｓ２２）。パケットを受信した場合（Ｓ２３でＹＥＳ）、制御部２１は、チャンク生成部２３Ｃに、パケットからチャンクを生成させる（Ｓ２４）。チャンクは、再生処理部２５に送信するひとかたまりのＰＣＭデータ列にヘッダを付加したものである。必要に応じて、パケット内の曲データが圧縮データである場合にはデコードが実行される。
【００３６】
制御部２１は、パケット解析部２３Ｂに、パケットからＳＳＲＣを取得させる（Ｓ２５）。制御部２１は、取得したＳＳＲＣが前回受信したパケットのＳＳＲＣと異なっているか否かを判断する（Ｓ２６）。すなわち、受信した曲データが次の曲の曲データに変更されたか否かが判断される。ＳＳＲＣが同じである場合（Ｓ２６でＹＥＳ）、制御部２１は、チャンク生成部２３Ｃに、チャンクを現在再生中の曲に対応するキューに格納させる（Ｓ３１）。
【００３７】
一方、ＳＳＲＣが変更された場合（Ｓ２６でＮＯ）、制御部２１は、キュー管理部２４に新たな曲に対応するキューを生成させ、新たなキューのキューＩＤを設定する（Ｓ２７）。制御部２１は、新たに生成したキューに対してその再生開始時刻を設定する（Ｓ２８）。詳細には、制御部２１は、パケット解析部２３Ｂから、ＳＳＲＣが変更されたパケット（すなわち次の曲の先頭パケット）を受信した受信時刻を取得し、受信時刻に所定の遅延時間を加算し、キューの再生開始時刻を算出する。遅延時間は、例えば、各受信装置２００において同じ遅延時間に設定されており、好ましくは、全ての受信装置２００が曲データを最後まで再生し終えることができる遅延時間に設定されている。
【００３８】
制御部２１は、新たに設定したキューＩＤに対応するキューの状態として、「再生開始待ち」を設定する（Ｓ２９）。制御部２１は、キュー管理テーブルに、キューＩＤ、再生開始時刻、及び、キューの状態を登録する（Ｓ３０）。制御部２１は、受信処理部２３に、新たに生成したキューにチャンクを格納させる（Ｓ３１）。この時点では、前の曲（現在再生中の曲）のキューにもチャンクが格納されている状態であり、重複して前後の２つの曲のキューが生成されて、それぞれのキューにチャンクが格納された状態となる。その後、処理はＳ２３に戻って、上記の処理を繰り返す。
【００３９】
ここで、図７を参照し、キュー管理テーブルに設定されるキューの状態について説明する。「再生開始待ち」は、新たにキューが生成されたときから再生開示時刻に到達するまでの状態であり、キューにチャンクが格納されていくが、再生は開始されていない状態である。「再生中」は、再生開始時刻になり、キューからＰＣＭデータが音声出力部２５Ｃに出力される状態である。「廃棄待ち」は、次の曲のキューの再生開始時刻になったために、キューから音声出力部にチャンクが出力されなくなった状態であり、キューが廃棄されるのを待機している状態である。
【００４０】
図８は、受信装置２００の制御部２１の再生処理を示す。制御部２１は、音声出力部２５Ｃに音声出力設定（例えば、サンプリング周波数、量子化ビット数の設定）を実行する（Ｓ４１）。制御部２１は、音声出力部２５Ｃの音声出力バッファをクリアする（Ｓ４１）。制御部２１は、キュー管理テーブルのキューインデックスを０に初期化する（Ｓ４２）。
【００４１】
制御部２１は、キュー管理テーブルからキューインデックスに対応するキューの各情報（再生開始時刻、キューの状態）を読み出す（Ｓ４３）。制御部２１は、対応するキューが存在するか否かを判断する（Ｓ４４）。存在しなければ（Ｓ４４でＮＯ）、処理はＳ４２に戻る。存在する場合（Ｓ４４でＹＥＳ）、制御部２１は、キューの状態が「再生開始待ち」であるか否かを判断する（Ｓ４５）。「再生開始待ち」である場合（Ｓ４５でＹＥＳ）、再生開始待ち処理（後述）が実行され（Ｓ４６）、処理はＳ４９に進む。
【００４２】
一方、「再生開始待ち」ではない場合（Ｓ４５でＮＯ）、制御部２１は、キューの状態が「廃棄待ち」であるか否かを判断する（Ｓ４７）。「廃棄待ち」である場合（Ｓ４７でＹＥＳ）、処理はＳ４９に進む。一方、廃棄待ちでない場合（Ｓ４７でＮＯ）、制御部２１は、キューの状態が「再生中」であるので、再生中処理（後述）を実行し（Ｓ４８）、処理はＳ４９に進む。制御部２１は、キューインデックスを１加算し、Ｓ４３に戻って、上記の処理を繰り返す。つまり、キュー管理テーブルに登録されている各キューについてキューインデックスの順番に上記処理が実行される。
【００４３】
図９は、再生開始待ち処理（Ｓ４６）の詳細を示す。制御部２１は、現在時刻とキューの再生開始時刻とを比較する（Ｓ５１）。現在時刻は、受信装置２００自身が管理している時刻である。未だ再生開始時刻になってない場合（Ｓ５２でＮＯ）、処理を終了する。再生開始時刻になると（Ｓ５２でＹＥＳ）、制御部２１は、他のキューが存在する場合に、キュー管理部２４に、他のキューを全て廃棄させ、廃棄したキューの各情報をキュー管理テーブルから削除する（Ｓ５３）。すなわち、前の曲のチャンクを格納している、又は、格納していたキューを廃棄させる。
【００４４】
制御部２１は、音声出力部２５Ｃに音声出力バッファをクリアさせる（Ｓ５４）。クリアとは、バッファ内のデータを全て削除することである。これにより、前の曲データがバッファに残存する場合でも、バッファ内の曲データを全て削除する。従って、曲の再生開始時刻になると、直ちに曲データの再生を開始することができるので、再生開始時刻を同じ時刻に設定しておくことで、送信装置１００及び各受信装置２００において曲の再生開始時刻を同期させることが可能となる。
【００４５】
制御部２１は、キュー管理部２４にキューからチャンクを読み出させ、チャンク処理部２５Ａに供給させる（Ｓ５５）。チャンク処理部２５Ａは、制御部２１の指示で、チャンクからＰＣＭデータ列を取出し（Ｓ５６）、音声出力部２５Ｃの音声出力バッファに格納する（Ｓ５７）。制御部２１は、音声出力部２５Ｃに音声出力バッファに格納されているＰＣＭデータを再生開始させる（Ｓ５８）。制御部２１は、キュー管理テーブルにおけるキューの状態を「再生中」に変更する（Ｓ５９）。
【００４６】
図１０は、各受信装置２００における前の曲と次の曲の再生タイミングを模式的に示した図であり、横軸が時刻である。受信装置２００Ａ〜２００Ｃは共に同じ再生開始時刻に曲Ｙを再生開始しており、再生開始時刻が同期している。受信装置２００Ａおよび２００Ｃは、曲Ｙの再生開始時刻になる前に前の曲Ｘの再生を終了している。一方、受信装置２００Ｂは、曲Ｙの再生開始時刻迄に前の曲Ｘを再生し終えることが出来なかったので、曲Ｘの末尾部分の再生が行われることなく、次の曲Ｙが再生開始される。少なくとも、全ての受信装置２００において、曲の再生開始時刻を同期させることができる。
【００４７】
図１１は、再生中処理（Ｓ４８）の詳細を示す。制御部２１は、音声出力部２５Ｃの音声出力バッファがデータで満杯であるか否かを判断し（Ｓ６１）、満杯であれば（Ｓ６１でＹＥＳ）、処理を終了する。満杯でない場合（Ｓ６１でＮＯ）、制御部２１は、さらに、キュー管理部２４にキューからチャンクを読み出させ、チャンク処理部２５Ａに供給させる（Ｓ６２）。制御部２１は、キューからチャンクを取り出すことができないかを判断し（Ｓ６３）、取り出せない場合（Ｓ６３でＹＥＳ）、処理を終了する。取り出せる場合（Ｓ６３でＮＯ）、制御部２１は、チャンク処理部２５Ａに、チャンクからＰＣＭデータ列を取り出させる（Ｓ６４）。
【００４８】
制御部２１は、ＰＣＭデータ列を取り出せなかったかを判断し（Ｓ６５）、取り出せなかった場合（Ｓ６５でＹＥＳ）、曲間パケットであるので、キュー管理テーブルにおいてキューの状態を「廃棄待ち」に変更する（Ｓ６７）。取り出せた場合（Ｓ６５でＮＯ）、制御部２１は、ＰＣＭデータ列を音声出力２５Ｃの音声出力バッファに格納させる（Ｓ６６）。
【００４９】
以上のように、本実施形態によると、各受信装置２００が同時刻に曲の先頭パケットを受信し、その受信時刻に所定の遅延時間を加算して曲の再生開始時刻を設定し、再生開始時刻になると、前の曲が再生中であるかに関係なく、曲の再生を開始することで、曲単位で再生開始時刻を必ず同期させることができる。
【００５０】
次に本発明の別の好ましい実施形態を説明する。本例では、受信装置２００は、クロスフェード処理を実行する。つまり、図１２に示すように、前の曲Ｘの終わり付近で曲データの再生をフェードアウトさせ、かつ、次の曲Ｙの先頭部分をフェードアウト区間とオーバーラップするようにフェードインさせて、合成して音声出力する。合成して出力する時間をフェード時間ｔｆといい、例えば３秒である。本実施形態では、クロスフェードした場合に、各受信装置で曲毎に再生を同期させるために、図１３に示すように、次の曲Ｘの先頭パケットを受信した際に、音声出力バッファに残存しているデータの残り再生時間ｔｂだけ、次の曲Ｙの再生開始時刻を早めるように補正する。その結果、クロスフェードの開始時刻も音声出力バッファに残存しているデータの残り再生時間ｔｂだけ早めるように補正される。このように処理するのは、クロスフェード処理を実行する場合、先の実施形態のように音声出力バッファをクリアして再生開始時刻を同期させることができないからである。
【００５１】
図１４に示すように、送信装置１００から受信装置２００に送信されるパケットのヘッダは、フェードインフラグと、フェードアウトフラグと、フェードイン残量と、フェードアウト残量とを含む。フェードアウトフラグが１のときフェードアウトすることを意味し、フェードインフラグが１のときフェードインすることを意味する。Ｓ２０１において送信されるパケットは、前の曲（ＳＳＲＣ＝0ｘ11223344）のパケットであり、フェードアウトすること、及び、フェードアウト残量が３０００ｍｓｅｃであることを示す。Ｓ２０２において送信されるパケットは、次の曲（ＳＳＲＣ＝0ｘ34567890）のパケットであり、フェードインすること、及び、フェードイン残量が３０００ｍｓｅｃであることを示す。Ｓ２０３において送信されるパケットは、前の曲（ＳＳＲＣ＝0ｘ11223344）のパケットであり、フェードアウトすること、及び、フェードアウト残量が２９９５ｍｓｅｃであることを示す。Ｓ２０４において送信されるパケットは、次の曲（ＳＳＲＣ＝0ｘ34567890）のパケットであり、フェードインすること、及び、フェードイン残量が２９９５ｍｓｅｃであることを示す。このように、クロスフェード処理期間には、フェードアウトする前の曲のパケットと、フェードインする次の曲のパケットとが入り交じって送信される。
【００５２】
図１５は、送信装置１００の制御部１１の送信処理を示すフローチャートである。制御部１１は、サーバ３００から例えばネットワーク経由でコンテンツリストを取得し、メモリ１２に保存する（Ｓ７１）。制御部１１は、コンテンツリストから曲を１つ選択する（Ｓ７２）。制御部１１は、コンテンツリスト内の全ての曲について受信装置２００に送信済みであるか否かを判断する（Ｓ７３）。送信済みであれば（Ｓ７３でＹＥＳ）、処理を終了する。送信済みでなければ（Ｓ７３でＮＯ）、制御部１１は選択された曲の送信処理を開始する（Ｓ７４）。制御部１１は、選択された曲がフェードアウト処理中であるか否かを判断する（Ｓ７５）。フェードアウト処理中である場合（Ｓ７５でＹＥＳ）、処理はＳ７２に戻って次の曲の送信処理へと進む。
【００５３】
図１６は、曲送信処理（Ｓ７４）の詳細を示す。制御部１１は選択された曲の例えば全データをサーバ３００からネットワーク経由で取得し、受信バッファ１４に格納する（Ｓ８１）。制御部１１は、選択された曲のＳＳＲＣを生成する（Ｓ８２）。制御部１１は、受信バッファ１４内に格納されている曲データをペイロード長分読み出して、デコードし、パケット化し、送信バッファに格納する（Ｓ８３）。制御部１１は、タイミング調整のために所定時間待機する（Ｓ８４）。制御部１１は、ヘッダにタイムスタンプとＳＳＲＣとを格納する（Ｓ８５）。
【００５４】
制御部１１は、ヘッダにフェードイン、又は、フェードアウトに関する情報を格納する。詳細には、３秒間クロスフェードを実行する場合、曲の終わりから３秒前までのデータを送信するかを判断し、曲の終わりから３秒前迄のデータである場合、フェードアウトフラグを１に設定し、フェードアウト残量を設定する。同様に、制御部１１は、曲の先頭から３秒後までのデータであるかを判断し、曲の先頭から３秒後迄のデータである場合、フェードインフラグを１に設定し、フェードイン残量を設定する。上記の通り、フェードアウトする曲のパケットと、フェードインする曲のパケットとは交互に送信される。制御部１１は、曲データのパケットにヘッダを付加して、ネットワークインターフェース１３を介して、各受信装置２００に曲データのパケットを送信する（Ｓ８７）。
【００５５】
制御部１１は、選択された曲の全データを送信完了したか否かを判断する（Ｓ８８）。送信完了していない場合（Ｓ８８でＮＯ）、処理はＳ８３に戻って、曲データのパケットの送信を継続する。送信完了した場合（Ｓ８８でＹＥＳ）、制御部１１は、曲間パケットを送信しながら、所定時間待機する（Ｓ８９）。
【００５６】
図１７は、受信装置２００の制御部２１の受信処理を示す。制御部２１は、曲データのパケットの受信に必要な情報を取得する（Ｓ９１）。制御部２１は、受信処理部２３に曲データのパケットを受信開始させる（Ｓ９２）。パケットを受信した場合（Ｓ９３でＹＥＳ）、制御部２１は、チャンク生成部２３Ｃに、パケットからチャンクを生成させる（Ｓ９４）。
【００５７】
制御部２１は、パケット解析部２３Ｂに、パケットからＳＳＲＣを取得させる（Ｓ９５）。制御部２１は、取得したＳＳＲＣが前回受信したパケットのＳＳＲＣと異なっているか否かを判断する（Ｓ９６）。ＳＳＲＣが同じである場合（Ｓ９６でＹＥＳ）、制御部２１は、チャンク生成部２３Ｃに、チャンクを現在再生中の曲に対応するキューに格納させる（Ｓ１０２）。
【００５８】
一方、ＳＳＲＣが変更された場合（Ｓ９６でＮＯ）、制御部２１は、キュー管理部２４に新たな曲に対応するキューを生成させ、新たなキューのキューＩＤを設定する（Ｓ９７）。制御部２１は、音声出力部２５Ｃの音声出力バッファに残存する現在再生中の曲のデータ残時間を特定する（Ｓ９８）。データ残時間は、音声出力バッファに残存するデータを再生し終える迄にかかる時間である。制御部２１は、次の曲の再生開始時刻を、曲の受信開始時刻に所定の遅延時間を加算し、さらに音声出力バッファのデータ残時間を減算することで算出する（Ｓ９９）。
【００５９】
制御部２１は、キューの状態として、「再生開始待ち」を設定する（Ｓ１００）。制御部２１は、キュー管理テーブルに、キューＩＤ、再生開始時刻、及び、キューの状態を登録する（Ｓ１０１）。制御部２１は、受信処理部２３に、新たに生成したキューにチャンクを格納させる（Ｓ１０２）。
【００６０】
図１８は、再生開始待ち処理を示す。制御部２１は、現在時刻とキューの再生開始時刻とを比較する（Ｓ１１１）。未だ再生開始時刻になってない場合（Ｓ１１２でＮＯ）、処理を終了する。再生開始時刻になると（Ｓ１１２でＹＥＳ）、制御部２１は、キュー管理部２４にキューからチャンクを読み出させ、チャンク処理部２５Ａに供給させる（Ｓ１１３）。チャンク処理部２５Ａは、制御部２１の指示で、チャンクからＰＣＭデータ列を取出す（Ｓ１１４）。制御部２１は、ヘッダにフェードイン指示が含まれているか否かを判断する（Ｓ１１５）。含まれていない場合（Ｓ１１５でＮＯ）、処理はＳ１１８に進む。含まれている場合（Ｓ１１５でＹＥＳ）、制御部２１は、再生処理部２５にフェードイン処理を開始させる。フェードインは、音量レベルをフェードイン終了時点に向けてほぼ線形的に０から徐々に増加させる。従って、図１３に示す補正済みフェード時間ｔｆ’かけて音量レベルが０からユーザ設定値まで増加するように音量レベルが調整される。制御部２１は、再生処理部２５にＰＣＭデーア列にフェードイン処理を実行させる（Ｓ１１７）。
【００６１】
その後、制御部２１は、ミキシング処理部２５Ｂに、前の曲のＰＣＭデータ列と、再生開始時刻になった曲のＰＣＭデータ列とを合成させ（Ｓ１１８）、再生開始させる（Ｓ１１９）。制御部２１は、キュー管理テーブルにおけるキューの状態を「再生中」に変更する（Ｓ１２０）。
【００６２】
図１９は、再生中処理を示す。制御部２１は、音声出力部２５Ｃの音声出力バッファがデータで満杯であるか否かを判断し（Ｓ１２１）、満杯であれば（Ｓ１２１でＹＥＳ）、書き込みできるまで待つため、処理を終了する。満杯でない場合（Ｓ１２１でＮＯ）、制御部２１は、キュー管理部２４にキューからチャンクを読み出させ、チャンク処理部２５Ａに供給させる（Ｓ１２２）。チャンクを取り出すことができない場合（Ｓ１２３でＹＥＳ）、処理を終了する。取り出せる場合（Ｓ１２３でＮＯ）、制御部２１は、チャンク処理部２５Ａに、チャンクからＰＣＭデータ列を取り出させる（Ｓ１２４）。ＰＣＭデータ列を取り出せなかった場合（Ｓ１２５でＹＥＳ）、曲間パケットであるので、キュー管理テーブルにおいてキューの状態を「廃棄待ち」に変更する（Ｓ１３２）。
【００６３】
取り出せた場合（Ｓ１２５でＮＯ）、制御部２１は、ヘッダにフェードイン指示が含まれているか否かを判断する（Ｓ１２６）。含まれていない場合（Ｓ１２６でＮＯ）、Ｓ１２８に進む。含まれている場合（Ｓ１２６でＹＥＳ）、制御部２１は、ＰＣＭデータ列にフェードイン処理を実行させる（Ｓ１２７）。これは、Ｓ１１６、Ｓ１１７の処理と同じであり、残りフェードイン残量に応じて音量レベルが決定される。制御部２１は、ヘッダにフェードアウト指示が含まれているか否かを判断する（Ｓ１２８）。含まれていない場合（Ｓ１２８でＮＯ）、Ｓ１３０に進む。含まれている場合（Ｓ１２８でＹＥＳ）、制御部２１は、ＰＣＭデータ列にフェードアウト処理を実行させる（Ｓ１２９）。フェードアウトは、音量レベルをフェードアウト開始時点から曲の終わりにかけてほぼ線形的にユーザ設定値から０に徐々に減少させる。従って、図１３に示す補正済みフェード時間ｔｆ’かけて音量レベルがユーザ設定値から０まで減少するように音量レベルが調整される。つまり、残りフェードアウト残量に応じて音量レベルが決定される。制御部２１は、ミキシング処理部２５Ｂで前の曲のＰＣＭデータ列と、次の曲のＰＣＭデータ列とを合成させ（Ｓ１３０）、合成されたＰＣＭデータ列を音声出力バッファに転送させる（Ｓ１３１）。
【００６４】
以上の処理によって、クロスフェードを実行する場合にも、受信装置の再生時刻を同期させることが出来る。
【００６５】
次に、本発明のさらに別の実施形態を説明する。本実施形態では、受信装置２００が、曲の再生開始時刻になって、音声出力バッファをクリアする際に、音声出力バッファの残量（残時間）を特定し、送信装置１００に通知する。送信装置１００は、各受信装置２００から受信した音声出力バッファの残量（残時間）のうち、最大の残時間を特定し、特定した残時間を遅延時間に加算して新たな遅延時間を設定し、各受信装置２００に送信する。各受信装置２００は、受信した新たな遅延時間を使って上記実施形態における再生開始時刻を設定する。これにより、全ての受信装置２００が曲の最後まで再生し終えてから次の曲を再生開始できるように遅延時間を補正することが出来る。
【００６６】
図２０は本例の処理を示すフローチャートである。本処理は、Ｓ１４１、Ｓ１５１のように、例えば一定数の曲毎に定期的に実行されるとよい。各受信装置２００の制御部２１は、音声出力バッファをクリアする際の音声出力バッファの残時間を特定し、送信装置２００に送信する（Ｓ１５２）。音声出力バッファの残時間は、音声出力バッファに残存している（すなわちクリアされる）データを再生するのにかかる時間である。送信装置１００の制御部１１は、受信装置２００から音声出力バッファの残時間を受信し（Ｓ１４２）、メモリ２２に記憶する（Ｓ１４３）。送信装置１００の制御部１１は、全ての受信装置２００から音声出力バッファの残時間を受信したか否かを判断し（Ｓ１４４）、未だ受信していない場合（Ｓ１４４でＮＯ）、Ｓ１４２に戻る。受信した場合（Ｓ１４４でＹＥＳ）、制御部１１は、各受信装置２００から受信した音声出力バッファの残時間の中から、音声出力バッファの残時間の最大値を取得する（Ｓ１４５）。制御部１１は、取得した音声出力バッファの残時間の最大値を、現行の遅延時間に加算し、新たな遅延時間を設定する（Ｓ１４６）。制御部１１は、新たに設定した遅延時間を、各受信装置２００に送信する（Ｓ１４７）。各受信装置２００の制御部２１は、新たな遅延時間を受信して、メモリ２２に記憶し（Ｓ１５３）、これ以降、新たな遅延時間を使用して、再生開始時刻を設定する。
【００６７】
次に、本発明のさらに別の実施形態を説明する。送信装置１００が受信して各受信装置２００に送信するコンテンツがラジオ放送やアナログ音声信号のような複数の曲が連続した音声信号である場合、上記のような曲毎に再生開始位置を同期させることができず、再生時間の経過と共に受信装置２００間での再生位置のずれが顕著になる。これを解決するために、連続入力の音声信号であっても、無音区間を検出し、無音区間において曲間を形成し、ＳＳＲＣを変更し別の曲として送信する。
【００６８】
図２１に示すように、各受信装置２００の制御部２１は、送信装置１００から受信する基準クロック（これは、パケットのヘッダに含まれているタイムスタンプのことである）と、受信装置２００が自身で管理するクロック（これは受信中のＳＳＲＣで最初に受信したパケットに含まれていたタイムスタンプに、受信装置２００自身が発生するクロックを加算してカウントしたもの）とを比較し、その差（ずれ）を送信装置１００に送信する（Ｓ１７１）。クロックのずれは所定時間（例えば１０秒）毎に送信されると良い。
【００６９】
送信装置１００の制御部１１は、クロックのずれの情報を受信装置２００から受信する（Ｓ１６１）。制御部１１は、受信したクロックのずれが所定値以上であるか否かを判断する（Ｓ１６２）。所定値未満である場合（Ｓ１６２でＮＯ）、許容範囲内のずれであるので、曲間を形成することなく、処理はＳ１６１に戻る。所定値以上である場合（Ｓ１６２でＹＥＳ）、許容範囲を超えているので、曲間を形成する処理を実行する。制御部１１は、音声信号のレベル（振幅値）が無音と判断できる値（例えば−２０ｄＢ）未満である状態が所定時間（例えば１秒）継続するか否かを判断し、待機する（Ｓ１６３）。−２０ｄＢ未満である状態が１秒継続した場合（Ｓ１６３でＹＥＳ）、制御部１１は、当該箇所で曲間を形成し、ＳＳＲＣを変更し、別の曲（コンテンツ）として、パケットを各受信装置２００に送信する（Ｓ１６４）。従って、コンテンツがラジオ放送やアナログ音声信号のような複数の曲が連続した音声信号である場合でも、無音と判断される区間で仮想的に別の曲として各受信装置２００に送信することによって、別の曲の再生開始時刻を各受信装置２００で同期させることができる。
【００７０】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらの実施形態には限定されない。本発明の送信装置１００、受信装置２００を動作させるためのコンピュータプログラムまたはそのコンピュータプログラムを記録した記録媒体という形態で提供されてもよい。
【産業上の利用可能性】
【００７１】
本発明は送信装置と受信装置とを備えるコンテンツ再生システムに好適に適用され得る。
【符号の説明】
【００７２】
１００      送信装置
１１        制御部
１２        メモリ
１３        ネットワークインターフェース
１４        受信バッファ
１５        デコーダ
１６        パケット化部
１７        送信バッファ
２００      受信装置
２１        制御部
２２        メモリ
２３        受信処理部
２３Ａ      パケット受信部
２３Ｂ      パケット解析部
２３Ｃ      チャンク生成部
２３Ｄ      キュー操作部
２４        キュー管理部
２４Ａ      キュー
２４Ｂ      キュー管理テーブル
２５        再生処理部
２５Ａ      チャンク処理部
２５Ｂ      ミキシング処理部
２５Ｃ      音声出力部
３００      サーバ
【図１】
2013110477.tif 000003
【図２】
2013110477.tif 000004
【図３】
2013110477.tif 000005
【図４】
2013110477.tif 000006
【図５】
2013110477.tif 000007
【図６】
2013110477.tif 000008
【図７】
2013110477.tif 000009
【図８】
2013110477.tif 000010
【図９】
2013110477.tif 000011
【図１０】
2013110477.tif 000012
【図１１】
2013110477.tif 000013
【図１２】
2013110477.tif 000014
【図１３】
2013110477.tif 000015
【図１４】
2013110477.tif 000016
【図１５】
2013110477.tif 000017
【図１６】
2013110477.tif 000018
【図１７】
2013110477.tif 000019
【図１８】
2013110477.tif 000020
【図１９】
2013110477.tif 000021
【図２０】
2013110477.tif 000022
【図２１】
2013110477.tif 000023