(57)【要約】　　　（修正有）【課題】メディアデータパケットの同期再生を提供する。【解決手段】デジタルオーディオ送信システムでは、メディアデータパケット１０２１、１０２２がメディアソース１０１からメディアシンク１、２（例えば、ラウドスピーカ）に送られる。メディアデータパケット１０２１、１０２２は、同期して再生されなければならない。異なるメディアシンク１、２でメディアデータパケット１０２１、１０２２を同期再生することを確実にするためには、共通再生時間１０５がメディアソース１０１又はメディアシンク１、２で決定され、メディアデータパケット１０２１、１０２２は、この共通再生時間１０５になるまでバッファされる。メディアソース１０１又はメディアシンク１、２は、サンプルクロック時間に応じて計算された、グローバルウォールクロック時間に応じて共通再生時間１０５を決定する。【選択図】図１
2004104796.tif 000002
【特許請求の範囲】
【請求項１】
　１又は複数の受信メディアシンクへメディアデータパケットを送出するメディアソースにおいて、
　タイムスタンプ付きメディアデータパケットを複数送出可能であり、
　再生時間のオフセットを決定し、
　前記再生時間のオフセットを前記１又は複数の受信メディアシンクに送出するよう構成されており、
　前記各メディアデータパケットのタイムスタンプは、該メディアデータパケットの生成の時間を表していることを特徴とするメディアソース。
【請求項２】
　サンプルクロック時間を決定できるサンプルクロックを備え、
　グローバルウォールクロック時間を決定可能であり、
　コントロールパケットを前記１又は複数の受信メディアシンクへ送出するよう構成されており、
　前記コントロールパケットは時間的に同じ瞬間を表す２つのコントロールパケットタイムスタンプを備えるもので、その第１のコントロールパケットタイムスタンプは前記グローバルウォールクロック時間の時間単位で測定又は定められ、第２のコントロールパケットタイムスタンプは前記サンプルクロック時間の時間単位で測定又は定められることを特徴とする請求項１に記載のメディアソース。
【請求項３】
　前記メディアデータパケットのタイムスタンプは、前記サンプルクロック時間の時間単位で前記タイムスタンプ付きメディアデータパケットの生成の時間を表すことを特徴とする請求項２に記載のメディアソース。
【請求項４】
　２つ以上の異なる受信メディアシンクに同じメディアデータパケットを送り出すよう構成されていることを特徴とする請求項１乃至３のいずれか１項に記載のメディアソース。
【請求項５】
　メディアソースからメディアデータパケットを受信するメディアシンクにおいて、
　前記メディアソースからタイムスタンプ付きメディアデータパケットを受信するよう構成されており、
　再生時間オフセットを決定し、
　グローバルウォールクロック時間を決定し、
　前記再生時間オフセットと前記タイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を加えることにより、前記受信されたタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定し、
　前記受信されたタイムスタンプ付きメディアデータパケットに対して決定された共通再生時間となった時点で各々受信されたタイムスタンプ付きメディアデータパケットを再生することが可能であることを特徴とするメディアシンク。
【請求項６】
　前記メディアソースから前記再生時間オフセットを一回受信することを特徴とする請求項５に記載のメディアシンク。
【請求項７】
　少なくとも他の１つのメディアシンクと前記再生時間オフセットを交渉するように構成されていることを特徴とする請求項５に記載のメディアシンク。
【請求項８】
　前記メディアソースから、サンプルクロック時間の時間単位で測定又は定められた時間的な瞬間を表す第１のコントロールパケットタイムスタンプと、グローバルウォールクロック時間の時間単位で測定又は定められた時間的に同じ瞬間を表す第２のコントロールパケットタイムスタンプとを含むコントロールパケットを受信し、
　前記第１及び第２のコントロールパケットタイムスタンプの情報に基づいて、前記サンプルクロック時間の単位で測定又は定められたタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を、前記グローバルウォールクロック時間の単位で測定又は定められた時間に変換することが可能であることを特徴とする請求項５乃至７のいずれか１項に記載のメディアシンク。
【請求項９】
　前記共通再生時間に達するまで、前記メディアデータパケットを格納するよう構成されたバッファを備えていることを特徴とする請求項５乃至８のいずれか１項に記載のメディアシンク。
【請求項１０】
　請求項１乃至４のいずれか１項に記載のメディアソースと、
　請求項５乃至９のいずれか１項に記載のメディアシンクとを備えることを特徴とするメディア処理システム。
【請求項１１】
　１又は複数の受信メディアシンクへメディアデータパケットを送出するメディアソースにおいて、
　再生時間オフセットを決定し、該決定した再生時間オフセットを現在の時間に加えることで共通再生時間を決定し、
　前記１又は複数の受信メディアシンクにタイムスタンプ付きのメディアデータパケットを送出するよう構成されており、
　前記タイムスタンプ付きのメディアデータパケットのタイムスタンプは、前記メディアデータパケットの前記共通再生時間を示していることを特徴とするメディアソース。
【請求項１２】
　サンプルクロック時間を決定可能なサンプルクロックを備え、
　グローバルウォールクロック時間を一度だけ計時し、該一度だけ計時したグローバルウォールクロック時間に前記サンプルクロック時間により得られた時間間隔を加えることで、前記現在の時間を算出するよう構成されていることを特徴とする請求項１１に記載のメディアソース。
【請求項１３】
　同一のメディアデータパケットを異なる複数のメディアシンクに送出することを特徴とする請求項１１又は１２に記載のメディアソース。
【請求項１４】
　メディアソースからのメディアデータパケットを受信するメディアシンクにおいて、
　タイムスタンプ付きのメディアデータパケットを受信するよう構成されるとともに、
　グローバルウォールクロック時間を決定し、
　タイムスタンプ付きメディアデータパケットのタイムスタンプに示されている時間である、受信した各タイムスタンプ付きメディアデータパケットの共通再生時間を決定することが可能であることを特徴とするメディアシンク。
【請求項１５】
　前記共通再生時間に達するまで前記メディアデータパケットを格納するよう構成されているバッファを備えていることを特徴とする請求項１４に記載のメディアシンク。
【請求項１６】
　請求項１１乃至１３のいずれか１項に記載のメディアソースと、
　請求項１４乃至１５のいずれか１項に記載のメディアシンクとを備えるメディア処理システム。
【請求項１７】
　複数のメディアデータパケットを同時再生する場合のメディアソース側での方法において、
　タイムスタンプ付きメディアデータパケットを１又は複数の受信メディアシンクに送出するステップと、
　再生時間オフセットを決定するとステップと、
　前記再生時間オフセットを前記１又は複数の受信メディアシンクへ送出するステップとを有し
　前記各メディアデータパケットのタイムスタンプが、該各メディアデータパケットの生成の時間を表していることを特徴とする方法。
【請求項１８】
　サンプルクロック時間を決定するステップと、
　グローバルウォールクロック時間を決定するステップと、
　コントロールパケットを前記１又は複数の受信メディアシンクに送出するステップとを有し、
　前記コントロールパケットは時間的に同じ瞬間を表す２つのコントロールパケットタイムスタンプを有し、その第１のコントロールパケットタイムスタンプは前記グローバルウォールクロック時間の時間単位で測定又は定められ、第２のコントロールパケットタイムスタンプは前記サンプルクロック時間の時間単位で測定又は定められることを特徴とする請求項１７に記載の方法。
【請求項１９】
　前記メディアデータパケットのタイムスタンプは、前記サンプルクロック時間の時間単位で表した該タイムスタンプ付きメディアデータパケットの生成の時間であることを特徴とする請求項１７又は１８に記載の方法。
【請求項２０】
　同一のメディアデータパケットを、複数の異なる受信メディアシンクに送出することを特徴とする請求項１７乃至１９のいずれか１項に記載の方法。
【請求項２１】
　複数のメディアデータパケットを同時再生する場合のメディアシンク側での方法において、
　メディアソースからタイムスタンプ付きメディアデータパケットを受信するステップと、
　再生時間オフセットを決定するステップと、
　グローバルウォールクロック時間を決定するステップと、
　前記再生時間オフセットと前記タイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間とを加えることにより、受信したタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定するステップと、
　前記受信されたタイムスタンプ付きメディアデータパケットに対して決定された共通再生時間に達した時点で各受信されたタイムスタンプ付きメディアデータパケットを再生するステップとを有する方法。
【請求項２２】
　前記再生時間オフセットを前記メディアソースから一回受信することを特徴とする請求項２１に記載の方法。
【請求項２３】
　少なくとも他の１つのメディアシンクと前記再生時間オフセットを交渉することを特徴とする請求項２１に記載の方法。
【請求項２４】
　前記メディアソースから、サンプルクロック時間の時間単位で測定又は定められた時間的な瞬間を表す第１のコントロールパケットタイムスタンプとグローバルウォールクロック時間の時間単位で測定又は定められた時間的に同じ瞬間を表す第２のコントロールパケットタイムスタンプとを含むコントロールパケットを受信し、
　前記サンプルクロック時間の単位で測定又は定められたタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を、前記グローバルウォールクロック時間の単位で測定又は定められた時間に、前記第１及び第２のコントロールパケットタイムスタンプの情報に基づいて変換することを特徴とする請求項２１乃至２３のいずれか１項に記載の方法。
【請求項２５】
　前記共通再生時間に達するまで前記メディアデータパケットをバッファに保存することを特徴とする請求項２１乃至２４のいずれか１項に記載の方法。
【請求項２６】
　メディアデータパケットを同期再生するメディア処理システムの方法において、
　前記請求項１７乃至２０のいずれか１項に記載のメディアソース側の方法と、
　前記請求項２１乃至２５のいずれか１項に記載のメディアシンク側の方法とを有する方法。
【請求項２７】
　メディアデータパケットの同期再生を可能にするメディアソース側の方法において、
　再生時間オフセットを決定し、該決定された再生時間オフセットを現在の時間に加えることにより共通再生時間を決定するステップと、
　タイムスタンプ付きメディアデータパケットを１又は複数の受信メディアシンクに送出するステップとを有し、
　前記タイムスタンプ付きメディアデータパケットのタイムスタンプが、該メディアデータパケットの前記共通再生時間を表していることを特徴とする方法。
【請求項２８】
　サンプルクロック時間を決定するステップと、
　グローバルウォールクロック時間を一回だけ読み取り、該一回だけ読み取られたグローバルウォールクロック時間に前記サンプルクロックから与えられた時間期間を加えることにより前記現在の時間を算出するステップとを有する請求項２７に記載の方法。
【請求項２９】
　同一のメディアデータパケットを複数の異なる受信メディアシンクに送出することを特徴とする請求項２７又は２８に記載の方法。
【請求項３０】
　メディアデータパケットを同期再生するメディアシンク側の方法において、
　タイムスタンプ付きメディアデータパケットをメディアソースから受信するステップと、
　グローバルウォールクロック時間を決定するステップと、
　タイムスタンプ付きメディアデータパケットのタイムスタンプが示す時間である、受信されたタイムスタンプ付きメディアデータパケット毎の共通再生時間を決定するステップとを有する方法。
【請求項３１】
　前記共通再生時間に達するまで、前記メディアデータパケットをバッファに保存することを特徴とする請求項３０に記載の方法。
【請求項３２】
　メディアデータパケットの同期再生を可能にするメディア処理システムの方法において、
　前記請求項２７乃至２９のいずれか１項に記載のメディアソース側の方法と、
　前記請求項３０乃至３１のいずれか１項に記載のメディアシンク側の方法とを有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、メディアデータパケットの同期再生を可能にする方法、メディアソース、メディアシンク及びメディア処理システムに関する。
【背景技術】
【０００２】
　人は、音の２つのパラメータを用いて、音源の位置を決定する。すなわち、音の振幅と位相である。音の強度は、空中を伝搬するにつれて低下するので、音源から離れている方の耳は音源に近い方の耳より低いレベルの音を聞く。さらに、音は空中を伝搬するには時間がかかり、遠い方の耳には、近い方の耳より遅れて音が聞こえる。実験から、２つのチャンネル間の位相差が６〜２０マイクロ秒（μｓ）より長い場合、それを人は音源の変位として感知し、２つの信号が３５〜４０ミリ秒（ｍｓ）以上の位相差をもつ場合、２つの別の音として感知されることが分かっている。
【０００３】
　リアルタイムトランスポートプロトコル（Real Time Transport Protocol）については非特許文献１に説明されている。
【０００４】
【非特許文献１】「RFC1889」Network Working Group Request for Comments: 1889
【発明の開示】
【発明が解決しようとする課題】
【０００５】
　オーディオサウンドを再生（出力）するオーディオシステムの場合、これは、マルチチャンネル信号（例えばステレオ信号）のうち、１つのチャンネルに属するオーディオ信号が、同じマルチチャンネル信号（例えば同じステレオ信号）に属する他のオーディオ信号と共に、正確に同じ時間、すなわち時間的に正確に同じ瞬間に、演奏されることを意味している。言い換えれば、マルチチャンネル信号の異なるチャンネル間の時間的な関係が出力時に満足されるよう、異なるオーディオ出力装置（例えばラウドスピーカ）間での厳密な同期が必要になる。同様の必要性は、例えば、ドルビーサラウンドシステムやオーディオビデオアプリケーションなどのような、他のオーディオアプリケーションでも生じることが考えられる。
【０００６】
　前述の厳密な同期は、オーディオ信号がメディアソース（media source）からオーディオ出力装置（一般的にメディアシンク（media sink）と呼ばれ、受信したマルチチャンネル信号を任意の他の方式で処理する装置も含む）に、メディアデータパケット（メディアパケットとも呼ばれる）の形態で伝送される、デジタル伝送オーディオシステムにおいても実現しなければならない。各オーディオ出力装置は正確に適正な時間に、すなわち別のメディア出力装置が対応するメディアデータパケット（例えば、同じステレオ信号に属するが別のチャンネルのもの）を再生する瞬間に、メディアデータパケットの音を再生（メディアデータパケットを再生）しなければならない。メディアデータパケットが正確に同期して再生されない場合、すなわち、同じステレオ信号に属するが異なるチャンネルに対応するメディアデータパケットが、異なるメディア出力装置において異なる時間に再生される場合に、前述の問題が生じる、すなわち、ステレオ音が別の方向からくるように実質的に感知されるか、又は、実際に２つの別の音が感知される（これらの問題は以下に示すように聴覚歪みと呼ばれる）。
【０００７】
　インターネットエンジニアリングタスクフォース（ＩＥＴＦ）は、次のようにリアルタイムトランスポートプロトコル（Real Time Transport Protocol：以下、ＲＴＰという。）と呼ばれる、コメントＲＦＣ１８８９に対する要請においてリアルタイムアプリケーション用のトランスポートプロトコルを提供している。リアルタイムトランスポートプロトコル（ＲＴＰ）は、データ送信者からの同期情報とデータ受信者からのフィードバック情報とを提供する、リアルタイム制御プロトコル（Real Time Control Protocol：以下、ＲＴＣＰという。）を含んでいる。メディア配信用ストリームの同期に関して、このプロトコルは、サンプリングクロックとグローバルクロックとの間の相関関係を提供する所謂送信者レポート（Sender Report：以下、ＳＲという。）を提供する。
【０００８】
　送信者レポート（ＳＲ）は、メディアソースからメディアシンクに送られるが、２つのタイムスタンプを含んでいる。一方のタイムスタンプは、ローカルサンプリングクロックによる時間単位で表された瞬間（ローカルサンプリングクロック時間）を表し、他方は、グローバルクロックによる時間単位で表された同じ瞬間（グローバルクロック時間）を表している。ＳＲのタイムスタンプは共に同じ瞬間に作られる。グローバルクロック時間は、メディアストリームが送られるメディアシンクとメディアソースとで使用可能であるという前提において設定されている。したがって、メディアシンクは、グローバルクロック時間に対するアクセスが可能であるため、そのローカルサンプリングクロックをグローバルクロックに対して調整することができる。
【０００９】
　ＲＴＰの主な目的は、インターネットでビデオ会議を行う手段を提供し、同じ単一のメディアシンク上で別々なストリームとして受信されるオーディオとビデオとを再び同期させることにある。ＲＴＰは、デジタル伝送オーディオシステムにおける別のメディアシンク間でのメディアデータパケットの同期再生を保証するためのものではない。したがって、メディアシンクにメディアデータパケットを送る場合にこのＲＴＰを用いても、メディアデータパケットは、異なるメディアシンクで正確に同期再生することができない、すなわち、同じステレオ信号に属するメディアデータパケットは、異なるメディアシンク、例えばラウドスピーカで、同じ瞬間に再生できない。したがって、前述の聴覚歪みは、デジタル伝送オーディオシステムにおいてＲＴＰだけを用いる場合に生じる。
【００１０】
　聴覚歪みの問題は、パーソナルコンピュータ（以下、ＰＣという。）又はパーソナルデジタルアシスタント（以下、ＰＤＡという。）のように、殆どの非リアルタイムソース装置に存在する低信頼性で不正確なクロック情報にも起因していると考えられる。これらの装置は、グローバルクロック情報（グローバルクロック時間）がアプリケーションシナリオによって設定された全ての要求事項に適合することを想定している。しかし、これは、そのようなケースではないと考えられる。非リアルタイム装置は、通常、外部接続部（例えばＵＳＢ又はＲＳ２３２）を介して、メディアデータパケットに適したタイムスタンプを生成するための実際の時間（グローバルクロック時間）を得ている。この種類の外部接続部に一般的に用いられるバスシステムは非常に僅かな保証配信時間（guaranteed delivery time）での伝送を可能にするように設計されていない。このため、例えば、メディアデータパケットに適したタイムスタンプを決定するために、クロック情報（グローバルクロック時間）をＰＣ又はＰＤＡで用いる場合には、その正確性が失われると考えられる。これは、メディアデータパケットのタイムスタンプが表すグローバルクロック時間は、メディアデータパケットが実際に送り出される実際のグローバルクロック時間に関して間違っていることを意味している。さらに、２つのタイムスタンプが表す２つの時間間の時間差は、２つの対応する実際のグローバルクロック時間間の時間差が変動しない場合でも変動するかもしれない。この理由は、アプリケーションにグローバルクロック情報を伝送するために外部接続部が必要とする時間が変動する場合があるためである。メディアシンクでは一般的に、メディアデータパケットのタイムスタンプが、パケット毎に再生時間を決定するために用いられる。このため、メディアデータパケットのタイムスタンプが表す不正確で統計学的に変動する時間が原因となり、同じステレオ信号に属するメディアデータパケットが、異なるメディアシンクで異なる時に再生されると考えられる。この結果、前述の聴覚歪みが生じると考えられる。
【００１１】
　本発明の目的は、メディアデータパケットの同期再生を可能にするメディアソース、メディアシンク、メディア処理システムを提供することにある。本発明の他の目的は、サウンドが異なるメディアシンクで演奏される場合に聴覚歪みが回避されるように、上述の装置が作用させるための方法を提供することにある。
【課題を解決するための手段】
【００１２】
　本発明の目的を達成する本発明の第１の実施形態に基づくメディアソースが請求項１に、メディアシンクが請求項５に、メディア処理システムが請求項１０に記載されている。さらに、第１の実施形態に対応する方法が請求項１７、２１、２６に記載されている。さらに、好ましい実施形態が、各独立請求項に続く従属項に各々記載されている。本発明の目的を達成する本発明の第２の実施形態に基づくメディアソースが請求項１１に、メディアシンクが請求項１４に、メディア処理システムが請求項１６に記載されている。さらに、第２の実施形態に対応する方法が、請求項２７、３０、３２に記載されている。さらに、好ましい実施形態が、各独立請求項に続く従属項に各々記載されている。
【００１３】
　すなわち、本発明の目的は、単一の発明の概念を共有する２つの異なる実施形態によって解決される。これら両実施形態においては、共通再生時間が各メディアデータパケットに相応して決定される。メディアデータパケットはメディアシンクにおいて、この共通再生時間に正確に再生される。第１の実施形態では、共通再生時間は、メディアデータパケットのタイムスタンプが表す時間に再生時間オフセットを加えて、メディアシンクによって決定される。再生時間オフセットは、メディアソースで決定され、メディアシンクに送られる。第２の実施形態では、共通再生時間が、パケット毎にメディアソースによって決定され、対応するタイムスタンプの形態で各メディアデータパケットと共に送り出される。
【００１４】
　本発明の第１の実施形態に基づく解決手段
　本発明に基づくメディアソースは、タイムスタンプ付きメディアデータパケットを、特に１又は複数の受信メディアシンクへ、以下に示すようにして送り出すことができる。各メディアデータパケットのタイムスタンプは、各メディアデータパケットの生成の時間を表しており、再生時間オフセットを決定するように構成され、再生時間オフセットを、特に１又は複数の受信メディアシンクへ、以下に示すようにして送り出すようにさらに構成されている。
【００１５】
　好ましくは、本発明に基づくメディアソースは、サンプルクロック時間を決定できるサンプルクロックを備えており、グローバルウォールクロック時間（global wallclock time）を決定できて、コントロールパケットを時々、特に１又は複数の受信メディアシンクへ向けて、以下に示すようにして送り出すよう構成されている。コントロールパケットは時間的に同じ瞬間を表す２つのコントロールパケットタイムスタンプを備え、その第１のコントロールパケットタイムスタンプはグローバルウォールクロック時間の時間単位で測定又は定められ、その第２のコントロールパケットタイムスタンプはサンプルクロック時間の時間単位で測定又は定められる。
【００１６】
　さらに、好ましくは、メディアデータパケットのタイムスタンプは、サンプルクロック時間の時間単位でタイムスタンプ付きメディアデータパケットの生成の時間を表している。また、メディアソースは、２つ以上の異なる受信メディアシンクへ、同じメディアデータパケットを送り出すように構成されていることが好ましい。
【００１７】
　本発明に基づくメディアシンクは、特にメディアソースから、タイムスタンプ付きメディアデータパケットを受信するように構成され、さらに、再生時間オフセットを決定し、グローバルウォールクロック時間を正確に決定し、再生時間オフセットとタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を加えることにより、受信されたタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定し、受信されたタイムスタンプ付きメディアデータパケットに対して決定された共通再生時間になった時にちょうど各受信されたタイムスタンプ付きメディアデータパケットを再生するように構成されている。
【００１８】
　好ましくは、メディアシンクは、前述のように特にメディアソースから、再生時間オフセットを一回受信し、少なくとも１つの他のメディアシンクと再生時間オフセットを交渉するように構成されている。また代わりに、メディアシンクは、前述のように特にメディアソースから、コントロールパケットを受信し、サンプルクロック時間の時間単位で測定又は定められた時間的なある瞬間を表す第１のコントロールパケットタイムスタンプとグローバルウォールクロック時間の時間単位で測定又は定められた時間的に同じ瞬間を表す第２のコントロールパケットタイムスタンプとを含むことができて、サンプルクロック時間の単位で測定又は定められたタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を、グローバルウォールクロック時間の単位で測定又は定められた時間に、第１及び第２のコントロールパケットタイムスタンプの情報に基づき変換することができる。
【００１９】
　好ましい実施形態では、メディアシンクは、共通再生時間になるまで、メディアデータパケットを保存するよう構成されたバッファを備えている。
【００２０】
　本発明に基づくメディア処理システムは、前述のように構成されたメディアソースと前述のように構成されたメディアシンクとを備えている。
【００２１】
　本発明の第１の実施形態に基づくメディアソースに対応した方法は、タイムスタンプ付きメディアデータパケットを、特に１又は複数の受信メディアシンクに送り出し、各メディアデータパケットのタイムスタンプが各メディアデータパケットの生成の時間を表していて、再生時間オフセットを決定し、再生時間オフセットを、特に１又は複数の受信メディアシンクへ、送り出すステップを有する。
【００２２】
　好ましくは、以下に示す各ステップが実行される。すなわち、サンプルクロック時間を決定し、グローバルウォールクロック時間を決定し、コントロールパケットを時々、特に１又は複数の受信メディアシンクに送り出すステップが行われる。コントロールパケットは時間的に同じ瞬間を表す２つのコントロールパケットタイムスタンプを備え、その第１のコントロールパケットタイムスタンプはグローバルウォールクロック時間の時間単位で測定又は定められ、その第２のコントロールパケットタイムスタンプはサンプルクロック時間の時間単位で測定又は定められる。
【００２３】
　さらに、好ましくは、メディアデータパケットのタイムスタンプは、サンプルクロック時間の時間単位でタイムスタンプ付きメディアデータパケットの生成の時間を表す。さらにまた、好ましくは、同じメディアデータパケットが、２つ以上の異なる受信メディアシンクに送り出される。
【００２４】
　メディアデータパケットの同期再生を可能にする本発明の第１の実施形態に基づく、メディアシンクに対応した方法は、以下に示すように、特にメディアソースから、タイムスタンプ付きメディアデータパケットを受信し、再生時間オフセットを決定し、グローバルウォールクロック時間を正確に決定し、再生時間オフセットとタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間とを加えることにより、受信したタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定し、受信されたタイムスタンプ付きメディアデータパケットに対して決定された共通再生時間になった時点ちょうどに、各々受信されたタイムスタンプ付きメディアデータパケットを再生するステップを有している。
【００２５】
　好ましくは、再生時間オフセットが、特にメディアソースから、一回受信されるか、又はそれが少なくとも１つの他のメディアシンクと交渉される。
【００２６】
　さらに、好ましくは、以下に示すステップが実行される。すなわち、特に請求項１乃至４のいずれか１項に記載のメディアソースからコントロールパケットを受信し、サンプルクロック時間の時間単位で測定又は定められた時間的なある瞬間を表す第１のコントロールパケットタイムスタンプとグローバルウォールクロック時間の時間単位で測定又は定められた時間的に同じ瞬間を表す第２のコントロールパケットタイムスタンプとを含み、サンプルクロック時間の単位で測定又は定められたタイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間を、グローバルウォールクロック時間の単位で測定又は定められた時間に、第１及び第２のコントロールパケットタイムスタンプの情報に基づき変換する。
【００２７】
　好ましくは、メディアデータパケットが、共通再生時間になるまで、バッファに保存される。
【００２８】
　メディアデータパケットの同期再生を可能にする本発明の第１の実施形態に基づく、メディア処理システムに対応する方法において、前述のように定めたメディアソースに対応する方法のステップと前述のように定めたメディアシンクに対応する方法のステップとが行われる。
【００２９】
　本発明の第２の実施形態に基づく解決手段
　本発明の目的を実現する本発明の第２の実施形態に基づくメディアソースは、再生時間オフセットを決定し、決定された再生時間オフセットを現在の時間に加えることにより共通再生時間を決定するように構成されていて、タイムスタンプ付きメディアデータパケットを、特に１又は複数の受信メディアシンクに、以下に定めるようにして送り出すように構成されている。タイムスタンプ付きメディアデータパケットのタイムスタンプはメディアデータパケットの共通再生時間を表している。
【００３０】
　好ましくは、メディアソースは、サンプルクロック時間を決定できるサンプルクロックを備えていて、グローバルウォールクロック時間を一回だけ読み取り、一回だけ読み取られたグローバルウォールクロック時間にサンプルクロックから与えられた時間期間を加えることにより現在の時間を計算するように構成されている。さらに、好ましくは、メディアソースは、２つ以上の異なる受信メディアシンクに、同じメディアデータパケットを送り出すように構成されている。
【００３１】
　本発明の第２の実施形態に基づくメディアシンクは、タイムスタンプ付きメディアデータパケットを、特にメディアソースから、以下に定めるようにして受信するよう構成されていて、グローバルウォールクロック時間を正確に決定できて、タイムスタンプ付きメディアデータパケットのタイムスタンプが表す時間である受信されたタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定できる。さらに、メディアシンクは、共通再生時間になるまでメディアデータパケットを保存するように構成されているバッファを有している。
【００３２】
　本発明の第２の実施形態に基づくメディア処理システムは、本発明の第２の実施形態について前述のように定めたメディアソースと、本発明の第２の実施形態について前述のように定めたメディアシンクとを有している。
【００３３】
　メディアデータパケットの同期再生を可能にする本発明の第２の実施形態に基づく、メディアソースに対応する方法は、以下に示すステップを実行する。すなわち、再生時間オフセットを決定し、決定された再生時間オフセットを現在の時間に加えることにより共通再生時間を決定し、タイムスタンプ付きメディアデータパケットを、特に１又は複数の受信メディアシンクへ、送り出すステップを有している。タイムスタンプ付きメディアデータパケットのタイムスタンプは、メディアデータパケットの共通再生時間を表している。
【００３４】
　好ましくは、以下に示すステップを実行する。すなわち、サンプルクロック時間を決定し、グローバルウォールクロック時間を一回だけ読み取り、一回だけ読み取られたグローバルウォールクロック時間にサンプルクロックから与えられた時間期間を加えることにより現在の時間を計算するステップが含まれている。さらに、好ましくは、同じメディアデータパケットを２つ以上の異なる受信メディアシンクに送り出す。
【００３５】
　本発明の第２の実施形態に基づいてメディアデータパケットの同期再生を可能にする、メディアシンクに対応する方法は、以下に示すステップを実行する。すなわち、タイムスタンプ付きメディアデータパケットを、特にメディアソースから、受信し、グローバルウォールクロック時間を正確に決定し、タイムスタンプ付きメディアデータパケットのタイムスタンプが示す時間である受信されたタイムスタンプ付きメディアデータパケット毎に共通再生時間を決定するステップを有している。
【００３６】
　好ましくは、メディアデータパケットは、共通再生時間になるまでバッファに保存される。
【００３７】
　本発明の第２の実施形態に基づいてメディアデータパケットの同期再生を可能にする、メディア処理システムに対応する方法は、前述したメディアソースに対応する方法のステップと、前述したメディアシンクに対応する方法のステップとを有している。
【発明の効果】
【００３８】
　本発明によれば、メディアシンクは正確に同期されたメディアデータパケットを再生できる。なぜならば、共通再生時間が各々のメディアデータパケットに相応して決定され、メディアデータパケットがメディアシンク毎に、この再生時間に正確に再生されるからである。メディアシンクによる時間的に正確な再生は、メディアシンクがグローバルウォールクロック時間を正確に決定するために可能になる。これは、一般的にメディアシンクが処理時間が長くならない特別なハードウェアを用いている、すなわち、メディアシンクがグローバルウォールクロック時間に厳密に結合しているからである。共通再生時間が一度読み取られたグローバルウォールクロック時間に結合しているので、前述の従来技術のシステムの場合のように、異なるメディアデータパケットの２つのタイムスタンプが表す２つの時間の間に時間差がない。本発明に基づくメディアソースは、一方で、正確性に関してグローバルウォールクロック時間に対して非常に限定されたアクセスをもつことになる。なぜならば、加えられた再生時間オフセットは、この不正確さが任意のケースで補正されるように選択できるからである。
【発明を実施するための最良の形態】
【００３９】
　図１は、２つの同期したメディアシンク（media sink）、すなわち第１のメディアシンク１と第２のメディアシンク２とをもつメディア配信セッションの基本的な状態を示す。メディアソース（media source）１０１は、第１のタイムスタンプ付きメディアデータパケット１０２１を第１のメディアシンク１に、第２のタイムスタンプ付きメディアデータパケット１０２２を第２のメディアシンク２に送信する。メディアデータパケットのタイムスタンプは、メディアソースがメディアデータパケットを生成した時間を表している。第１のメディアシンク１と第２のメディアシンク２は、データがエンコードされている場合、メディアデータパケット１０２１、１０２２をデコードする。次にデータは、各々のパケットの共通再生時間１０５になるまで、各々のバッファ、すなわち、第１のメディアシンク１の第１のバッファ１０４１と、第２のメディアシンク２の第２のバッファ１０４２とに保存される。この共通再生時間１０５は、メディアデータパケットのタイムスタンプが表す時間に、一度決定された再生時間オフセットを加えることにより、パケット毎にメディアシンクにより決定される。パケットの共通再生時間１０５に達した場合、メディアデータパケットがメディアシンクで再生される。図１の具体例では、第１のメディアデータパケット１０２１と第２のメディアデータパケット１０２２とのタイムスタンプが、時間的に同じ瞬間を表している。したがって、これらのメディアデータパケット１０２１、１０２２は、正確に同じ瞬間に第１のメディアシンク１と第２のメディアシンク２とで再生される。
【００４０】
　再生時間オフセットは、伝送にかかる時間の期間と、デコードにかかる時間の期間と、利用可能なバッファサイズと、グローバルウォールクロック時間（global wallclock time）に対するメディアソース１０１の実質的に緩い同期（eventual lax synchronization）とを考慮して、メディアソース１０１とメディアセッションの全シンク（ここでは、第１のメディアシンク１と第２のメディアシンク２）のなかで交渉を行う必要がある。
【００４１】
　クロックに関して、メディアストリーミング装置では、２つのクロック、すなわちサンプルクロックとグローバルウォールクロックが使用できる（アクセスできる）ことが想定されている。サンプルクロックは、メディアストリームで固有なクロックである。オーディオストリームのソースの具体例として例えばコンパクトディスク（Compact Disc：以下、ＣＤという。）の場合、サンプルクロックは、４４．１ｋＨｚでランしている。グローバルウォールクロックは、メディアセッションに加わる全てのソースとシンクの装置で読み取りすることができる。インターネットプロトコル（Internet Protocol：以下、ＩＰという。）ネットワークの場合、ネットワークタイムプロトコル（Network Time Protocol：以下、ＮＴＰという。）は、ＮＴＰクロックがネットワーク全体でどのように維持されるかを規定している。しかし、厳密な規定をもつアプリケーションの場合、２つのステレオチャンネルの同期のように、このようなＮＴＰクロックの精度とクロック分解能は十分でないと考えられる。したがって、より高い精度と分解能をもったクロックの利用が前提となっている。これは例えば、同期した周波数ホッピングを実行するために、全てのピア（peer）間で共通のクロックが必要となる一部の無線システムのケースが該当する。このような無線システムの一例としては、ブルートゥースの仕様が挙げられる。ここでは、ピコネット（piconet）の全加入者が共通のクロックを維持する。共通のクロックの時間は、グローバルウォールクロック時間としてメディアアプリケーションで使用できる。通常は、サンプルクロック時間とグローバルウォールクロック時間が、異なる単位で測定される。例えば、グローバルウォールクロックはミリ秒の単位で刻むが、サンプルクロックの最小単位はそのサンプルの一単位で刻まれている。
【００４２】
　タイムスタンプの場合、原則的には、それらがリアルタイムトランスポートプロトコル（Real Time Transport Protocol：以下、ＲＴＰという。）で規定されているように用いられることを前提としている。これは、メディアデータパケットのタイムスタンプは、パケットの第１のサンプルがサンプルクロックの時間単位で生成された時の瞬間を指定することを意味している。ＲＴＰに基づくメディアデータパケットを送信するメディアストリームに加えて、コントロールパケットが、加入者間で、すなわちストリームのメディアソースとメディアシンクとのなかで交換される。これらのコントロールパケットはメディアデータを含んでいないが、その他の情報として、時間的に同じ瞬間を示す２つのタイムスタンプを備えている。一方のタイムスタンプはサンプルクロックの時間単位で時間を表し、他のタイムスタンプはグローバルウォールクロック時間の時間単位で時間的に同じ瞬間を表している。この情報により、メディアシンクは、グローバルウォールクロック時間が与えられるとサンプルクロック時間を決定でき、逆の場合には、サンプルクロック時間が与えられるとグローバルウォールクロック時間を決定できる。したがって、コントロールパケットは、ソースサンプルクロック時間をグローバルウォールクロック時間に関連付ける機能を実現している。したがって、メディアシンクは、同じクロックの時間単位で与えられるメディアデータパケットのタイムスタンプが表す時間を変換することにより、メディアデータパケットがグローバルウォールクロック時間の時間単位で生成された時間的な瞬間を決定できる。
【００４３】
　図２では、メディアソース２０２と全てのｎ個のメディアシンク、すなわちメディアシンク２０３−１、２０３−２〜２０３−ｎに利用できるグローバルウォールクロック時間２０１があると想定されている。このグローバルウォールクロック時間は、例えば、デジタルバスシステム又は無線デジタル伝送システムで用いるクロックの時間とすることができる。さらに、このクロックは、所望の同期精度と分解能に関する時間的な要求とを満たすことが想定されている。一般的に、このようなクロックは、物理的なレイヤの非常に近くに、例えばこのような送信システムのベースバンドに位置している。メディアソース２０２がパーソナルコンピュータ（以下、ＰＣという。）又はパーソナルデジタルアシスタント（以下、ＰＤＡという。）のような汎用装置の場合、これは、このようなクロックが外部にあり、外部接続部２０４、例えばＵＳＢ又はＲＳ２３２を介してアクセスできるにすぎない、ということを意味している。この一例として、ＵＳＢを介してＰＣに接続するブルートゥースモジュールがある。ブルートゥースベースバンドクロックは、このクロック情報を用いて全てのピコネット加入者の周波数ホッピングを同期するので、ピコネット内の全装置で自動的に同期される。このネィティブのブルートゥースクロック情報（native Bluethooth clock information）は、次に、ＵＳＢバスシステムを介してブルートゥースモジュールからＰＣに伝送しなければならない。
【００４４】
　この種類の外部接続に一般的に用いるバスシステムは、ごく僅かな保証配信時間での伝送を可能にするように必ずしも設計されていない。このため、クロック情報は、このようなバスシステムを経由して伝送するときに、その精度（有効性）を低下させるかもしれない。例えば、数ミリ秒の精度のクロック情報を、数ミリ秒の遅延を招くバスシステムを経由して伝送する場合、特にこの遅延が数ミリ秒の不規則な変動に晒される場合には、その値の信頼度が低下することが多く、すなわち、例えばタイムスタンプの生成に用いる時間は、もはや有効でなくなる。そのうえ、ＰＣやＰＤＡのような汎用装置で一般的にランしている非リアルタイムオペレーティングシステム２０５は、更なる不確実性をクロック情報に招くことになる。図２では、メディアソース２０２のレイヤを介するジグザグ形の矢印２０６は、メディアアプリケーションが受信するクロック情報における、この不確実性と不正確性とを表している。
【００４５】
　一方で、メディアシンク、すなわちｎ個のメディアシンク２０３−１、２０３−２〜２０３−ｎとして、一般的に単一機能装置（埋込み装置）、例えばラウドスピーカを用いている。このような単一機能装置によれば、埋込みシステムを構成できる。これは、グローバルウォールクロック時間に対する更なる直接的なパスを可能にする。すなわち、グローバルウォールクロック時間が高い精度で決定できる。例えば、メディアアプリケーション２０７は、伝送システムのベースバンドプロセッサ上でランできる。これは、メディアアプリケーションが、大きな遅延や大きな不確実性なしにクロックに対して非常に直接的なアクセスを有することができることを意味している。したがって、数ミリ秒の正確さという高精度クロック情報が、遅いバスシステムを介して転送されないため、メディアシンク２０３−１、２０３−２〜２０３−ｎのメディアアプリケーション２０７に利用できる。図２のｎ個のメディアシンク２０３−１、２０３−２〜２０３−ｎ内の直線状の矢印２０８は、この直接アクセスを示している。
【００４６】
　図２に示したように、本発明では、マルチプルメディアシンク、すなわちｎ個のメディアシンクが、グローバルクロックに対し直接アクセスすることにより非常に厳密に互いに同期することができるが、ソース装置の場合、シンク装置との緩やかな同期も許容できるという事実を用いている。例えば、ステレオオーディオデータをＣＤプレーヤから２つのラウドスピーカにストリーミングする場合、スピーカで再生するまでＣＤプレーヤからパケットを送る際の遅延は数ミリ秒と考えられるが、左右のスピーカ間の遅延は数マイクロ秒にすぎないと考えられる。したがって、メディアシンクにおける適切なバッファ作用により、ソース側のクロック情報の不確実性を補正することができる。メディアソース上で利用できるクロック情報は、メディアシンク上より正確性で劣り、信頼性も低いので、これに基づいて行われる同期は“非対称性の同期”と呼ぶことができる。
【００４７】
　グローバルウォールクロック時間は、グローバルウォールクロック時間にサンプルクロックを結合するために、ストリーミングセッションの開始時にソース側で一回だけ読み取られることが好ましい。このクロック情報は、メディアシンクに送信される第１のコントロールパケットのタイムスタンプをコンパイルするために使用できる。しかし、続くコントロールパケットのグローバルウォールクロックタイムスタンプの場合、時間的な差は、再びグローバルウォールクロック時間を読み取るより、むしろサンプルの数をカウントすることにより計算できる。これは、グローバルウォールクロック情報の配信時間の変動が、一般的に非常に大きいので、シンク側の再生にギャップ又はジャンプを招くという事実によるものである。
【００４８】
　図３において、メディアソース１０１は、メディアデータパケットを第１のメディアシンク１と第２のメディアシンク２とに送る。この手順の開始時に、再生時間オフセットを交渉（決定）しなければならない（ステップ３０４）。この交渉した再生時間オフセットは、両方のメディアシンク、すなわち第１のメディアシンク１と第２のメディアシンク２とに送信され、パケット毎に共通再生時間を決定するためにメディアシンク１、２でさらに用いられる。メディアデータパケットタイムスタンプは、パケットをサンプルクロックの時間単位で生成した時間的な瞬間を表している。共通再生時間、すなわち、メディアシンクがメディアデータパケットを物理的に再生しなければならない時間的な瞬間を決定するために、メディアデータパケットのタイムスタンプが表す時間は、グローバルウォールクロック時間の時間単位でグローバルウォールクロック時間に変換され、交渉した再生時間オフセットがグローバルウォールクロック時間に追加される。再生時間オフセットの交渉の場合、予想される送信時間、潜在的なデコード時間及び利用可能なメディアシンクのバッファサイズを考慮しなければならない。ソース側のグローバルウォールクロック時間情報は不正確で統計的な変動に晒されるので、ソースは、最悪ケースの変動時間を再生時間オフセットに加えなければならない。これにより、一度メディアデータパケットがシンクに達すると、共通再生時間が既に経過しているという状況を回避する。
【００４９】
　メディアソース１０１のグローバルウォールクロック時間が前述の変動の影響を受ける場合でも、グローバルウォールクロック時間にソースサンプルクロックを結合するために、メディアストリーミングセッションの開始時にそれを一回読み取る（ステップ３０５）。次のステップ３０６では、２つのタイムスタンプをもつコントロールパケットが、第１のメディアシンク１と第２のメディアシンク２とに送信される。コントロールパケットのタイムスタンプは共に、時間的に同じ瞬間を表していて、一方のタイムスタンプはソースサンプルクロックの時間単位で時間的な瞬間を表し、他方のタイムスタンプはグローバルウォールクロック時間の時間単位で時間的な瞬間を表している。したがって、このコントロールパケットを受信するメディアシンクは、メディアデータパケットがグローバルウォールクロック時間の時間単位で生成された時間的な瞬間を、サンプルクロックの時間単位でメディアデータパケットのタイムスタンプが表す時間を用いて決定できる。
【００５０】
　次のステップ３０７では、メディアシンク毎のメディアデータパケットが、コンパイルされ、ソースサンプルクロックの時間単位でそれらの生成の時間に従ってタイムスタンプされる。別のストリームがメディアシンク毎に送られる場合、これはストリーム毎に実施しなければならない。あるストリームがマルチプルメディアシンクにマルチキャストされる場合、これは、ストリームに対して実施しなければならない。図３の具体例では、両方のメディアシンク１、２に送られるストリームが１つだけ存在する。したがって、ステップ３０８で、ストリームのメディアデータパケットが、第１のメディアシンク１と第２のメディアシンク２とに送り出される。
【００５１】
　次のステップ３０９では、データがエンコードされている場合、各メディアシンク１、２はデータをデコードする。また、このステップ３０９では、メディアシンク１、２は受信されたメディアデータパケットのタイムスタンプが表す時間を、グローバルウォールクロック時間の単位での時間に変換する。次に、各メディアシンク１、２は、受信されたメディアデータパケットのタイムスタンプが表す変換された時間に、グローバルウォールクロック時間の単位で与えられている、交渉済みの再生時間オフセットを加えて、共通再生時間を決定する。次のステップ３１０で、各メディアシンク１、２は、上記決定された共通再生時間になるまでメディアデータをバッファリングする。メディアシンク１、２のこれらのバッファリングは、メディアソース１０１のクロック情報の不規則な変動と、伝送遅延の不規則な変動と、デコード遅延に関して可能性のある変動とを十分に補正できる大きさでなければならない。共通再生時間１０５に達した時点で、各メディアシンク１、２はメディアを物理的に再生する（ステップ３１１）。
【００５２】
　第１のメディアシンク１と第２のメディアシンク２とにメディアソース１０１から後で送信される、任意のメディアデータパケットのタイムスタンプにおいて、メディアソース１０１は、再びグローバルウォールクロック時間を読む代わりに、ステップ３１２でサンプルクロック時間を用いてタイムスタンプの時間を決定する。これは、ソースメディアアプリケーションのウォールクロック時間の不正確さのために、ギャップ又はジャンプがメディアシンク側で生じないことを保証する。ステップ３１３では、サンプルクロック時間が、メディアソース１０１からメディアシンク１、２に送られる次のメディアデータパケットのタイムスタンプに対して読み取られるウォールクロック時間の代わりに用いられる。ステップ３１４では、メディアデータパケットが、ソースサンプルクロックから与えられた、それらの生成の時間を表すタイムスタンプにより、各メディアシンク、すなわち第１のメディアシンク１と第２のメディアシンク２とに送られる。メディアデータパケットのタイムスタンプは、ヘッダ情報として通常はメディアデータパケットに含まれているが、別のタイムスタンプパケットで送られる場合もある。
【００５３】
　図３から分かるように、ステップ３１２、３１３、３１４は、セッションの全てのメディアデータパケットが送り出されるまで、すなわち、新しいタイムスタンプが計算され、メディアデータパケットがこれらのタイムスタンプでコンパイルされて、これらのメディアデータパケットがメディアシンクに送り出されるまで繰り返される。
【００５４】
　このような手順の結果として、ソースメディアアプリケーションは、グローバルウォールクロック時間に緩く結合する必要があるだけであるが、各メディアシンクはグローバルウォールクロック時間に厳密に結合している。したがって、ＰＣ又はＰＤＡのような非リアルタイム装置をメディアソースとして用い、ラウドスピーカをメディアシンクとして用いると、ラウドスピーカは、それらのなかで非常に厳密に同期できる。この結果、空間的オーディオに対する人の感性にかかる厳しい基準を満たすことができる。
【００５５】
　図４は、本発明に基づく手順を適用可能な一例を示している。ブルートゥースを装備しているＰＣ４００は、ステレオオーディオストリームをメディアデータパケットの形態で２つのブルートゥースラウドスピーカ、すなわち第１のブルートゥースラウドスピーカ４０２１と第２のブルートゥースラウドスピーカ４０２２とに、２つのブルートゥースリンク、すなわち第１のブルートゥースリンク４０１１と第２のブルートゥースリンク４０１２とを介してマルチキャスティングしている。各リンク４０１１、４０１２において、ステレオ信号の１つのオーディオ信号のメディアデータパケットが、各々のブルートゥースラウドスピーカ４０２１、４０２２に送信される。
【００５６】
　ＰＣ４００上のブルートゥースモジュールはＵＳＢを介して接続されているが、第１のブルートゥースラウドスピーカ４０２１と第２のブルートゥースラウドスピーカ４０２２とは、ブルートゥースがシステム設計に直接埋込みされている。ＰＣ４００とブルートゥースラウドスピーカ４０２１、４０２２とで用いるグローバルウォールクロック時間は、ブルートゥースベースバンドの構成毎に固有なブルートゥースベースバンドクロックである。このブルートゥースベースバンドクロックは、ブルートゥースピコネットの全加入者のなかで非常に正確に同期している。
【００５７】
　オーディオストリームのメディアソースとしてのＰＣ４００は、ＲＴＰで定められているようにコントロールパケットが提供する情報を用いて、第１のブルートゥースラウドスピーカ４０２１と第２のブルートゥースラウドスピーカ４０２２とに対するブルートゥース送信の品質と遅延とを評価することから始まる。さらに、ＰＣ４００は、デコードのために必要な時間と、適切な信号送信コマンドを用いる各ブルートゥースラウドスピーカ４０２１、４０２２からのバッファ機能とを尋ねる。この情報と、ＰＣ４００のクロック情報の不規則な変動、すなわち最も可能性のある変動とから、ＰＣ４００は、再生時間オフセットを決定できる。この再生時間オフセットは、第１のブルートゥースラウドスピーカ４０２１と第２のブルートゥースラウドスピーカ４０２２とに一度送信され、メディアストリームの各メディアデータパケットのタイムスタンプが表す時間に加えられて、各メディアデータパケットの共通再生時間を得る。本発明の代替実施形態では、共通再生時間は、メディアデータパケット毎に、メディアソース、ここではＰＣ４００で決定でき、以下で図６に関連して説明するように、各メディアデータパケットと共に送信することができる。
【００５８】
　ストリームのメディアソースとしてのＰＣ４００はタイムスタンプを生成する。ＲＴＰメディアデータパケットが送られるときに、メディアデータパケットのタイムスタンプは、パケットがサンプルクロックの時間単位で生成された時間的な瞬間を記している。グローバルウォールクロック時間とのリンクは、ここでは、ブルートゥースベースバンドクロックは、ＲＴＣＰコントロールパケットにおいて時間的に同じ瞬間の２つのタイムスタンプを送ることで構築される。一方のタイムスタンプはサンプルクロックの単位で時間的な瞬間を、他方はグローバルウォールクロックの単位で、前述のように表している。しかし、ＰＣ側で利用できるクロック情報の不正確さのために、ベースバンドクロックは、第１のコントロールパケットに対してだけ実際に読み取られることが好ましい。連続するコントロールパケットの場合、グローバルウォールクロックタイムスタンプ用の時間情報は、最後のコントロールパケットから通過したサンプルの数をカウントし、次にこのサンプル数をグローバルウォールクロックの単位で時間に変換して生成される。前述のように、コントロールパケットは、グローバルウォールクロック時間の時間単位で時間的な瞬間を表すグローバルウォールクロックタイムスタンプと、サンプルクロック時間の時間単位で時間的に同じ瞬間を表すサンプルクロックタイムスタンプとを有している。したがって、メディアデータパケットとコントロールパケットとに存在する種々のタイムスタンプが提供する情報を組み合わせて、各ブルートゥースラウドスピーカは、パケットがメディアデータパケットのタイムスタンプからのグローバルウォールクロック時間の時間単位でのソースが生成された時間的な瞬間を決定でき、それはサンプルクロックの時間単位での生成の時間を表している。交渉済みの再生時間オフセットを加えることにより、各メディアデータパケットからのサンプルを再生しなければならない時間が決まる。各シンクはブルートゥースベースバンドクロックに直接アクセスできるので、全てのシンクが、それらのサンプル再生クロックをブルートゥースベースバンドクロックに厳密に同期することができる。
【００５９】
　クロック情報はソース側で或る程度不正確なので、第１のブルートゥースラウドスピーカ４０２１と第２のブルートゥースラウドスピーカ４０２２は、オーディオのメディアシンクとして、適正なバッファサイズにより、この不正確さを補正しなければならない。例えば、ＰＣ４００は、クロック情報が、２ｍｓの最大変動を有していることが知られている。したがって、一度メディアデータパケットがメディアシンクに達したら、メディアデータパケットの再生時間が既に経過する状況を避けるために、これらの２ｍｓを交渉済みの再生時間オフセットに含んでいる。２ｍｓ変動により、メディアソースが生成したタイムスタンプは、最悪のケースで１ｍｓ早くなるか又は１ｍｓ遅れることになる。したがって、メディアシンクは、安全性を維持するために、ソース装置によって常に加えられるこのような最悪ケースの時間期間に対してデータを十分にバッファできるメモリを備えなければならない。
【００６０】
　図５は、本発明に基づくメディアソース１０１における送信処理とメディアシンク１における受信処理とを示すフローチャートであり、そこでは、メディアデータパケット毎の再生時間をメディアシンク１が決定する。この具体例はＲＴＰ規格に準拠している。第１のステップ６０３Ｓで、再生時間オフセットは、伝送時間の期間と、デコード時間の期間と、メディアストリーミングセッションに加入するメディアシンク１に関して利用できるバッファサイズとを考慮して、メディアソース１０１によって決定（交渉）される。メディアソース１０１はメディアシンク１に要求してこれらの情報を得る。次に、再生時間オフセットは、メディアシンク１に送信されたデータコントロールパケット６０４Ｓの形態になる。このデータコントロールパケット６０４Ｓは、グローバルウォールクロックの時間単位で再生時間オフセットを含んでいる。メディアシンク１は、メディアソース１０１が送り出したデータコントロールパケット６０４Ｓに対応する、送信されたデータコントロールパケット６０４Ｒを受信する。メディアシンク１は、以下に示すようにして、後で受信されるメディアデータパケットの再生時間を決定するために、グローバルウォールクロック時間の単位で再生時間オフセットを保存する。
【００６１】
　任意のメディアデータパケットがメディアソース１０１からメディアシンク１に送られる前に、送信者レポートパケットがメディアソース１０１からメディアシンク１に送られる。したがって、次のステップ６０５Ｓでは、送信者レポートパケット６０６Ｓが生成される。送信者レポートパケット６０６Ｓは、２つのタイムスタンプ、すなわちサンプルクロックの時間単位で時間的な瞬間を表すサンプルクロックタイムスタンプ６０７Ｓと、グローバルウォールクロックの時間単位で時間的に同じ瞬間を表すグローバルウォールクロックタイムスタンプ６０８Ｓとを含んでいる。送信者レポートパケット６０６Ｓは、メディアソース１０１からメディアシンク１に時々送信される。それは、全てのメディアストリーミングセッションの前に少なくとも一度送信される。しかし、それは、メディアストリーミングセッションの途中でも送信できる。メディアシンク１は、送信されたサンプルクロックタイムスタンプ６０７Ｒと送信されたグローバルウォールクロックタイムスタンプ６０８Ｒとを含む、送信された送信者レポートパケット６０６Ｒを次に受信する。これらのタイムスタンプの両方が時間的に同じ瞬間を表しているので、次のステップ６０９Ｒで、メディアシンク１は、サンプルクロック時間をグローバルウォールクロック時間に関連付けることができる。これは、後で受信するタイムスタンプの際に、メディアシンク１が、グローバルウォールクロック時間が各々のタイムスタンプから与えられる場合にサンプルクロック時間を決定でき、逆に、サンプルクロック時間が与えられる場合には、グローバルウォールクロック時間を決定できることを意味している。
【００６２】
　続くデータ作成ステップ６０９Ｓで、メディアソース１０１は、メディアデータパケット６１０Ｓを生成する。このメディアデータパケット６１０Ｓは、サンプルクロックの時間単位でメディアデータパケット６１０Ｓの生成時間を表すサンプルクロックタイムスタンプ６１１Ｓを含むとともに、メディアデータ６１２Ｓを含んでいる。このメディアデータパケット６１０Ｓがメディアシンク１に送信される。メディアシンク１は、サンプルクロックの時間単位で送信されたメディアデータパケット６１０Ｒの生成時間を表す送信されたサンプルクロックタイムスタンプ６１１Ｒを含んでいる送信されたメディアデータパケット６１０Ｒと、送信されたメディアデータ６１２Ｒとを受信する。メディアシンク１は、先に受信した、送信者レポートパケット６０６Ｒが提供する情報を用いて、グローバルウォールクロック時間の時間単位での生成時のグローバルウォールクロック時間を、第１の計算ステップ６１３Ｒで計算する。第２の計算ステップ６１４Ｒで、再生時間は、生成に関して計算されたグローバルウォールクロック時間と再生時間オフセットを加えることにより、グローバルウォールクロック時間の時間単位で決定できる。次に、バッファステップ６１５Ｒで、送信されたメディアデータ６１２Ｒは、グローバルウォールクロック時間の時間単位で計算された再生時間になるまでバッファリングされる。最後に、再生ステップ６１６Ｒでは、メディアデータが決定された再生時間ちょうどに、メディアシンク１により物理的に再生される。この段階では、上記決定された再生時間は、グローバルウォールクロック時間の時間単位で表されている。前述のように、時間的に正確な再生は、メディアシンク１がグローバルウォールクロック時間に対する直接的な（厳密な）アクセスを有するため可能になる。
【００６３】
　メディアストリーミングセッションにおいて、上記に続くメディアデータパケットに対しては、データ作成ステップ６０９Ｓと、メディアソース１０１からメディアシンク１へのメディアデータパケットの送信と、第１の計算ステップ６１３Ｒと、第２の計算ステップ６１４Ｒと、バッファステップ６１５Ｒと、再生ステップ６１６Ｒとが繰り返し行われる。また前述のように、このようなメディアストリーミングセッション内で、送信者レポートパケット６０６Ｓが時々メディアソース１０１からメディアシンク１に送られることも可能である。
【００６４】
　図６は、本発明の第１の代替実施形態に基づく、メディアソース５０１における送信処理とメディアシンク５０２における受信処理とを示すフローチャートであり、ここで、パケット毎の再生時間が、メディアソース５０１で決定され、各メディアデータパケットと共に送信される。図示した処理は、メディアソース（ＳＲＣ）５０１からメディアシンク（ＳＮＫ）５０２に送られるメディアデータパケット毎に実行される。図６がメディアストリーミングセッションに加入する唯一のメディアシンク５０２における処理を示していることに注目すべきである。同じ処理が、同じメディアセッションに加入する他のメディアシンクでも実行される。
【００６５】
　第１のステップ５１０では、再生時間は次に送り出されるメディアデータパケット５１１に対して生成される。再生時間は、メディアソース５０１のクロック情報の不規則な変動と、伝送時間の期間と、デコード時間の期間と、メディアストリーミングセッションに加入するメディアシンク５０２の利用可能なバッファサイズとに依存する。前述のように、これらの情報は、メディアソース５０１とメディアシンク５０２との間で交渉される。メディアデータパケット５１１は、グローバルウォールクロック時間の単位でメディアデータパケット５１１の再生時間を表すグローバルウォールクロックタイムスタンプ５１２とメディアデータ５１３とを含んでいる。このメディアデータパケット５１１はメディアシンク５０２に送信される。送信されたメディアデータパケット５１４は、メディアソース５０１が送り出した、各々のグローバルウォールクロックタイムスタンプ５１２とメディアデータ５１３とに対応するグローバルウォールクロックタイムスタンプ５１５とメディアデータ５１６とを含んでいる。送信されたメディアデータパケット５１４の受信後、処理ステップ５１７では、メディアシンク５０２が、送信されたグローバルウォールクロックタイムスタンプ５１５が表す再生時間になるまで、メディアデータ５１６をバッファリングする。次に、再生ステップ５１８で、メディアシンク５０２によりメディアデータが、グローバルウォールクロックタイムスタンプ５１５が表している上記決定された再生時間ちょうどに物理的に再生される。前述のように、時間的に正確な再生は、メディアシンク５０２がグローバルウォールクロック時間に対する直接的な（厳密な）アクセスを有しているため可能になる。厳密なタイミング基準によるユーザシナリオの場合、ステレオ信号の配信における左右のチャンネルの同期のように、このクロック情報に対するアクセスが重要な点になる。
【００６６】
　再生時間を交渉（スケジュールを設定）するために、全装置が、共通時間基準と同じクロック情報（グローバルウォールクロック時間）に対するアクセスを必要とする。次に、メディアソースは、メディアデータパケットのスケジュールを設定できる。また、全てのメディアシンクは、スケジュール設定されたグローバルウォールクロック時間になるまで、メディアデータパケットをバッファリングしなければならない。
【００６７】
　図７は、本発明の第２の代替実施形態を示し、そこでは、メディアシンク同士が再生時間オフセットを交渉している。この第２の代替実施形態では、第３のメディアシンク７１と第４のメディアシンク７２が、伝送時間の期間と、デコード時間の期間と、利用可能なバッファサイズと、グローバルウォールクロック時間に対するメディアソース１０１の実質的に緩やかな同期とを考慮して、再生時間オフセットを交渉する。第３のメディアシンク７１と第４のメディアシンク７２とは、再生時間オフセットを直接データリンク７３（直接通信チャンネル）を介して交渉するか、又は、再生時間オフセットを第１のデータリンク７４と第２のデータリンク７５とを介してメディアソース１０１（間接通信チャンネル）上で交渉する。第１のデータリンク７４はメディアソース１０１と第３のメディアシンク７１とを接続し、第２のデータリンク７５はメディアソース１０１と第４のメディアシンク７２とを接続する。再生時間オフセットを第３のメディアシンク７１と第４のメディアシンク７２とが交渉した後に、メディアソース１０１は、タイムスタンプ付きメディアデータパケットを第１のデータリンク７４と第２のデータリンク７５とを介して送信することを始める。図７の具体例で、第３のタイムスタンプ付きメディアデータパケット７６は第１のデータリンク７４を介して送られ、第４のタイムスタンプ付きメディアデータパケット７７は第２のデータリンク７５を介して送られる。メディアデータパケットのタイムスタンプは、グローバルウォールクロック時間の時間単位でそれらの生成の時間を表すか、又はサンプルクロック時間の時間単位でそれらの生成の時間を表している。後者の場合、図５に基づく手順は、メディアデータパケットの送信前に実行しなければならない、すなわち、コントロールパケットは、第３のメディアシンク７１と第４のメディアシンク７２とがグローバルウォールクロック時間の時間単位でメディアデータパケットの生成の時間を決定できるように、第３のメディアシンク７１と第４のメディアシンク７２とにメディアソース１０１から送られなければならない。第３のメディアシンク７１又は第４のメディアシンク７２或いはその両方がメディアデータパケットを受信した後に、それらは、メディアデータパケットのタイムスタンプが表す時間に交渉済みの再生時間オフセットを加えることにより、受信されたメディアデータパケットの再生時間を決定する。この具体例では、第３のメディアシンク７１が、この第３のタイムスタンプ付きメディアデータパケット７６のタイムスタンプが表す時間に交渉済みの再生時間オフセットを加えることにより、第３のタイムスタンプ付きメディアデータパケット７６の再生時間を決定し、この決定された再生時間にちょうど第３のタイムスタンプ付きメディアデータパケット７６を再生する。さらに、第４のメディアシンク７２は、この第４のタイムスタンプ付きメディアデータパケット７７のタイムスタンプが表す時間に交渉済みの再生時間オフセットを加えることにより、第４のタイムスタンプ付きメディアデータパケット７７の再生時間を決定し、この決定された再生時間にちょうど第４のタイムスタンプ付きメディアデータパケット７７を再生する。
【００６８】
　要約すると、本発明によれば、デジタルオーディオ送信システムでは、メディアデータパケットが効果的にメディアソースからメディアシンク（例えば、ラウドスピーカ）に送られる。メディアデータパケットが、メディアシンクによって受信され、例えばステレオ信号等のオーディオ信号に属するオーディオデータを含んでいる場合、このメディアデータパケットが、他のメディアシンクが受信した、上記と同じステレオ信号のオーディオ信号を含んでいるメディアデータパケットと同じ瞬間に再生されることが重要である、すなわち、メディアデータパケットが同期して再生されなければならない。異なるメディアシンク間でのメディアデータパケットの同期再生を保証するために、共通再生時間がメディアソース又はメディアシンクで決定され、メディアデータパケットは、この共通再生時間になるまでバッファリングされる。メディアソース又はメディアシンクは、サンプルクロック時間に応じて計算された、グローバルウォールクロック時間に基づく共通再生時間を決定する。
【図面の簡単な説明】
【００６９】
【図１】メディアソースがタイムスタンプ付きメディアデータパケットを２つのメディアシンクに送る様子を示す説明図である。
【図２】同じグローバルウォールクロック時間に対するｎ個のメディアシンクとメディアソースのアクセスを示す説明図である。
【図３】メディアデータパケットを受信して処理する２つのメディアシンクにメディアソースからメディアデータパケットを送る処理を示すフローチャートである。
【図４】ＰＣをメディアソースとして用い、２つのラウドスピーカをメディアシンクとして用いる、例を示す説明図である。
【図５】ＲＴＰ基準に基づくコントロールパケットが用いられている、メディアシンクとメディアソースの相互作用を示すフローチャートである。
【図６】本発明の第１の代替実施形態に基づくメディアシンクとメディアソースの相互作用を示すフローチャートである。
【図７】メディアシンク間で再生時間オフセットを交渉をしている本発明の第２の代替実施形態を示す説明図である。
【符号の説明】
【００７０】
　１　第１のメディアシンク、２　第２のメディアシンク、５　共通再生時間、１０１　メディアソース、１０２１　第１のタイムスタンプ付きメディアデータパケット、１０２２　第２のタイムスタンプ付きメディアデータパケット、１０４１　バッファ、１０４２　バッファ
【図１】
2004104796.tif 000003
【図２】
2004104796.tif 000004
【図３】
2004104796.tif 000005
【図４】
2004104796.tif 000006
【図５】
2004104796.tif 000007
【図６】
2004104796.tif 000008
【図７】
2004104796.tif 000009