(57)【特許請求の範囲】
【請求項１】
ディジタルネットワークに接続されるシンク機器群に対してクロックを送信するクロックソースと、
前記ディジタルネットワークに接続される前記シンク機器群に対して当該ディジタルネットワークを介してコンテンツを提供するコンテンツソースと、
前記コンテンツを再生するにあたり、コンテンツデータが前記シンク機器群に送られるときのネットワークディレイと当該シンク機器群におけるデコードディレイとに基づく遅延時間を前記コンテンツソースに対して提供するコントローラと
を備えたことを特徴とするネットワークシステム。
【請求項２】
前記クロックソースは、前記シンク機器群に対して所定時間ごとに時刻情報を送信することを特徴とする請求項１記載のネットワークシステム。
【請求項３】
前記コンテンツソースは、前記コントローラから提供された前記遅延時間に基づく遅延情報メッセージを作成し、コンテンツデータに伴って前記シンク機器群に対して配信することを特徴とする請求項１記載のネットワークシステム。
【請求項４】
ディジタルネットワークに接続される複数の機器にて出力の同期をとるためのネットワークシステムの同期方法であって、
前記ディジタルネットワークを介してクロックと共に時刻情報を受信し、
受信した前記クロックおよび前記時刻情報に基づいてクロックを調整し、
前記ディジタルネットワークを介してコンテンツソースとしてのネットワークアドレスの指定を受け、
コンテンツデータと共に当該コンテンツデータの再生を開始する時刻を示す情報を受信し、
受信した前記情報に基づき、前記ネットワークアドレスに対してなされるディレイの指示と、前記コンテンツデータをデコードする際に生じるディレイとに基づいてデコードの開始タイミングを決定し、
決定した前記開始タイミングによりデコードを開始して前記コンテンツデータを再生することを特徴とするネットワークシステムの同期方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の機器を備えたネットワークシステム等に係り、特に、ネットワークに接続された複数の機器において同期をとるネットワークシステム等に関する。
【０００２】
【従来の技術】
近年、通信ネットワークが企業、学校、家庭に浸透しつつ有り、このインフラを利用してオーディオビデオのコンテンツを配信しようという試みがなされている。  これをもう一歩進めて、家庭内のオーディオビデオの配線をネットワークで置き換えることが当然考えられる。しかしながら、新しい技術分野であるために、未だ充分な検討が行われていなかった。
【０００３】
家庭内のオーディオビデオの配線を通信ネットワークで置き換えることは、例えばＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ディスプレイ、スピーカなどをそれぞれ通信ネットワークに接続することを意味する。例えば、ＤＶＤを再生すると、ディジタル通信ネットワークを介してディスプレイ、スピーカからそれぞれ動画と音声が出力されるということになる。
【０００４】
【発明が解決しようとする課題】
しかしながら、現在の通信ネットワークでは、その上を流れるデータにおいて、配信されるタイミングが保証されないという問題点がある。即ち、複数の入出力機器間の入出力位相関係（時間的前後関係）にて、現在のディジタルネットワークでは、伝送遅延が固定ではないことから、十分に小さい位相誤差で出力されるという保証がない。また、ディジタル通信ネットワークを介した場合に、アナログ接続に比べて遅延の絶対値が大きくなる。かかる場合、上記の例では、ＤＶＤから発信されたコンテンツにおいて、ディスプレイや複数存在するスピーカに到着する時刻がまちまちになってしまう。これをそのまま再生すると、結果としてまちまちなタイミングで再生が行われることになる。
【０００５】
これは、即ち、アナログケーブルで接続されていた場合に実現されていた出力信号の同期が達成されないということになる。ディジタルネットワーク化によるメリットは数多く存在するが、ディスプレイとスピーカ、あるいはスピーカ同士の出力位相、更にはマイクとカメラの入力位相を合わせることが出来なければ、家庭内におけるオーディオビデオの配線をディジタル通信ネットワークで置き換えることは困難となる。
【０００６】
本発明は、以上のような技術的課題を解決するためになされたものであって、ディジタルネットワークに接続された各機器の間において、クロックを同期させると共に、入出力位相を一致させることを主たる目的とする。
【０００７】
【課題を解決するための手段】
かかる目的のもと、本発明は、複数の機器がディジタルネットワークに接続されるネットワークシステムであって、複数の機器に対してクロックを配信すると共に時刻情報を配信するクロック配信手段と、配信されたクロックおよび時刻情報に基づき各々の機器においてクロックを調整するクロック調整手段と、ディジタルネットワーク上をストリームが通信される際に生じるネットワークディレイ、複数の機器がストリームに関する変換に際して生じる変換ディレイを考慮して複数の機器に対してディレイ補正を施すディレイ補正手段とを備えたことを特徴としている。
【０００８】
また、本発明が適用されるネットワークシステムは、ディジタルネットワークに接続されるシンク機器群に対してクロックを送信するクロックソースと、このシンク機器群に対してディジタルネットワークを介してコンテンツを提供するコンテンツソースと、コンテンツを再生するにあたり、コンテンツデータがシンク機器群に送られるときのネットワークディレイとシンク機器群におけるデコードディレイとに基づく遅延時間をコンテンツソースに対して提供するコントローラとを備えたことを特徴としている。
【０００９】
ここで、このクロックソースは、シンク機器群に対して所定時間ごとに時刻情報を送信することを特徴とすれば、位相調整の前提として、クロックを同期させることができる点で好ましい。
また、このコンテンツソースは、コントローラから提供された遅延時間に基づく遅延情報メッセージを作成し、コンテンツデータに伴ってシンク機器群に対して配信することを特徴とすれば、各シンク機器群では、自らのデコードディレイを考慮してデコードを開始することで、シンク機器群の間における再生タイミングを合わせることが可能となる。
【００１０】
他の観点から把握すると、本発明は、ディジタルネットワークに接続され、このディジタルネットワークを介して提供されるコンテンツデータをデコードする出力機器であって、ディジタルネットワークを介して受信した基準時刻信号に基づいてクロックを再生するクロック再生手段と、ディジタルネットワークを介して受信したコンテンツデータに対して必要なディレイを施し、デコードして出力するストリーム再生手段とを備えたことを特徴としている。
【００１１】
ここで、内部にて用いられるクロックを発振するクロック発振手段とを更に備え、クロック再生手段は、受信された基準時刻信号とクロック発振手段からの出力の値とを比較して、クロック発振手段の発振周波数を調整することにより、クロックを再生することを特徴とすることができる。
【００１２】
一方、本発明を方法のカテゴリから把えると、本発明は、ディジタルネットワークに接続される複数の機器にて入力または出力の同期をとるためのネットワークシステムの同期方法であって、複数の機器に対してクロックと共に時刻情報を配信し、配信されるクロックと時刻情報とに基づいて、共通な時計を複数の機器で動作させ、ネットワークディレイおよび複数の機器におけるデコードディレイやエンコードディレイ等の変換ディレイを考慮して時計の時刻を用いた入力タイミングまたは出力タイミングを複数の機器に使用し、使用された入力タイミングまたは出力タイミングと各々の機器における変換ディレイとに基づいて、各々の機器における変換を開始することを特徴とすることができる。
【００１３】
また、本発明は、ネットワークに接続されるシンク機器にて適用される発明として把握できる。即ち、本発明におけるネットワークシステムの同期方法は、ディジタルネットワークを介してクロックと共に時刻情報を受信し、受信したクロックおよび時刻情報に基づいてクロックを調整し、コンテンツデータと共にコンテンツデータの再生を開始する時刻を示す情報を受信し、受信した情報に基づき、コンテンツデータをデコードする際に生じるディレイに基づいてデコードの開始タイミングを決定し、決定した開始タイミングによりデコードを開始してコンテンツデータを再生することを特徴としている。
【００１４】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて本発明を詳細に説明する。
図１は、本実施の形態におけるネットワークシステムの全体像を示した構成図である。図１に含まれる各機器は、ネットワーク１により相互に接続されている。リスニングポジション８は、特定の機器ではないが、このネットワークシステムにおけるユーザの存在位置を模式的に示したものである。ユーザは、リスニングポジション８にて操作用のリモコン７を用いてネットワークシステムに対する指令を行うことができる。
【００１５】
ネットワーク１には、システムにクロックを供給するクロックソース２、システム全体を制御するコントローラ３、コンテンツデータ（信号）を送り出すコンテンツソース４、ユーザに対して音声信号を供給する５つのスピーカ５（５−１〜５−５）、ユーザに対し映像信号を供するディスプレイ６、の各入出力機器が接続されている。ここで、ディスプレイ６とスピーカ５とを、コンテンツソース４に対して（コンテンツ）シンク機器群と呼ぶことができる。また、各スピーカ５は、図１に示すような位置、即ち、フロントレフト（５−１）、センター（５−２）、フロントライト（５−３）、リアレフト（５−４）、リアライト（５−５）の各位置に設置されている。各スピーカ５およびディスプレイ６は、各々ＬＥＤとプッシュスイッチを備えており、ＬＥＤを用いたユーザへの働きかけとプッシュスイッチによるユーザからの反応を得ることができる。
【００１６】
図２は、クロックソース２における第１の構成例を示した図である。この第１の構成例におけるクロックソース２は、クロック発振器１１、カウンタ１２、タイマ１３、ラッチ１４、およびネットワークインタフェース１５を備えており、このネットワークインタフェース１５を介してネットワーク１と接続されている。クロック発振器１１の出力はカウンタ１２とタイマ１３に各々入力される。カウンタ１２の出力（時刻信号）はラッチ１４に入力される。またラッチ１４の出力はネットワークインタフェース１５に入力される。更に、タイマ１３の出力（トリガ信号）は、ラッチ１４のラッチ信号端子とネットワークインタフェース１５の送信信号端子に入力されている。クロックソース２は、ネットワーク１によって相互に接続された機器に対し、このような構成を用いてクロックを送信している。
【００１７】
図３は、クロックソース２における第２の構成例を示した図である。この第２の構成例におけるクロックソース２は、クロック発振器２１、カウンタ２２、タイマ２３、およびラッチ２４を備えている。またクロックソース２は、制御装置としてのＣＰＵ２５、ＲＯＭ２７、ＲＡＭ２８を備えており、ネットワークインタフェース２６を介してネットワーク１と接続されている。このＣＰＵ２５とＲＯＭ２７、ＲＡＭ２８は、システムバス２０により相互に接続されたマイクロコンピュータを構成している。また、ネットワークインタフェース２６はシステムバス２０に接続されている。クロック発振器２１の出力はカウンタ２２とタイマ２３に入力される。カウンタ２２の出力（時刻信号）はラッチ２４に入力される。ラッチ２４の出力はシステムバス２０に接続されている。またタイマ２３の出力（トリガ信号）はラッチ２４のラッチ信号端子とＣＰＵ２５の割り込み端子に入力される。クロックソース２は、ネットワーク１によって相互に接続された機器に対し、このような構成を用いてクロックを送信している。
【００１８】
図４は、図１に示したコントローラ３の構成を説明するための図である。本実施の形態におけるコントローラ３は、ＣＰＵ３１、ＲＯＭ３２、およびＲＡＭ３３を備えており、これらはシステムバス３４により相互に接続されてマイクロコンピュータを構成している。また、コントローラ３は、システムバス３４に接続されるネットワークインタフェース３５を備え、このネットワークインタフェース３５を介してネットワーク１と接続されている。またコントローラ３はリモコン受光部３６を有しており、リモコン受光部３６はシステムバス３４に接続されている。このコントローラ３は、図１のシステム全体を制御する役割を担っており、具体的な制御は、システムの構成の設定や、システムの動作（コンテンツの再生）の制御等である。特に本実施の形態では、コンテンツ再生時におけるディレイの設定が機能として重要である。
【００１９】
図５は、図１に示したコンテンツソース４の構成を説明するための図である。本実施の形態におけるコンテンツソース４は、ネットワーク１に接続された機器に、ネットワーク１を経由して、コンテンツストリームを供給している。図５に示すように、コンテンツソース４は、ＣＰＵ４１、ＲＯＭ４２、およびＲＡＭ４３を備えており、これらはシステムバス４４により相互に接続されマイクロコンピュータを構成している。また、コンテンツソース４は、ネットワークインタフェース４５を介してネットワーク１と接続されている。ネットワークインタフェース４５はシステムバス４４に接続されている。
【００２０】
更に、本実施の形態におけるコンテンツソース４は、クロック発振器４６とカウンタ４７を備えている。クロック発振器４６の出力はカウンタ４７に入力されている。クロック発振器４６とカウンタ４７はそれぞれシステムバス４４に接続されている。また、コンテンツソース４は、ハードディスク装置４８、ビットストリーム解析器４９、バッファ５０を備えている。ハードディスク装置４８は、自身に格納されているコンテンツストリームをビットストリーム解析器４９に入力している。ビットストリーム解析器４９の出力はバッファ５０に入力され、その出力はシステムバス４４に供給されている。また、ハードディスク装置４８およびビットストリーム解析器４９は、それぞれシステムバス４４に接続されている。
【００２１】
尚、コンテンツソース４は、デコーダを持たないためデコードディレイという値には意味は無いが、デコードディレイとして０を持っている。このデコードディレイ値は、ＲＯＭ４２に記録され、ＣＰＵ４１から読み出すことができるようになっている。また、コンテンツソース４は、自身の種別を知っており、その種別は「コンテンツソース」である。この種別はＲＯＭ４２に記録され、ＣＰＵ４１から読み出すことができるようになっている。本実施の形態における種別として、ディスプレイ６は「ディスプレイ型」、各スピーカ５は「モノラルスピーカ型」の種別を持つものとする。この他にも、例えば「ステレオスピーカ型」、「ディスプレイ＋ステレオスピーカ一体型」、「スーパーウーファー型」、「オーディオソース型」などの種別が考えられる。
【００２２】
コンテンツソース４は、内部にクロックの再生機能を持ち、クロックソース２から供給される基準時刻信号からクロックを再生している。また、コントローラ３の制御を受けて、内部に蓄えているコンテンツストリームを供給している。このとき、コントローラ３から指定されるディレイ値と再生したクロックから、ストリームにタイムスタンプを付加する機能を備えている。
【００２３】
図６は、図１に示したスピーカ５（５−１〜５−５）の構成を説明するための図である。この図６に示す構成は、図１に示す５本のスピーカ５（５−１〜５−５）の全てに共通しており、これらは同一の内部構造（および動作）を備えている。スピーカ５は、ＣＰＵ５１、ＲＯＭ５２、およびＲＡＭ５３を備えており、これらはシステムバス５４により相互に接続されマイクロコンピュータを構成している。また、スピーカ５は、システムバス５４に接続されているネットワークインタフェース５５を介して、ネットワーク１と接続されている。
【００２４】
このスピーカ５は、システムバス５４に接続されるクロック発振器５６とカウンタ５７とを備えており、このクロック発振器５６の出力はカウンタ５７に入力されている。更に、スピーカ５は、バッファ５９、タイムスタンプ抽出器６０、デコーダ６１、アンプ６２、およびスピーカ６３を備えている。スピーカ５を流れるストリームデータは、システムバス５４からバッファ５９、タイムスタンプ抽出器６０を経てデコーダ６１に入力されてデコードされる。デコーダ６１の出力は、アンプ６２を経てスピーカ６３により、音声信号に変換されて出力される。タイムスタンプ抽出器６０、デコーダ６１、およびアンプ６２は、各々システムバス５４に接続されている。このデコーダ６１の内部は、後述するＭＰＥＧデコーダの構成をなしている。具体的にはデマルチプレクサ、オーディオバッファ、オーディオデコーダで構成されている。
【００２５】
スピーカ５は、更に、ボタン／ＬＥＤ操作器５８を備えている。ＣＰＵ５１は、システムバス５４経由で、ボタン／ＬＥＤ操作器５８のボタンが押されたか否かの情報を読み出すことができる。また、ＣＰＵ５１は、システムバス５４経由でボタン／ＬＥＤ操作器５８におけるＬＥＤの点滅を制御することができる。
【００２６】
ここで、スピーカ５は、自身のデコーダ６１におけるデコードディレイを知っている。ここでデコードディレイとは、デコーダ６１にデータが入力されてからデコードされたデータが出力されるまでの時間であり、各種のディレイである変換ディレイの中で代表的なものである。このデコードディレイ値はＲＯＭ５２に記録され、ＣＰＵ５１から読み出すことができるようになっている。また、スピーカ５は自身の種別を知っており、このスピーカ５の種別は「モノラルスピーカ」である。この種別はＲＯＭ５２に記録され、ＣＰＵ５１から読み出すことができるようになっている。
【００２７】
スピーカ５にて実行される動作は大きく３つに分けられる。この３つの動作とは、（１）クロックの再生、（２）ユーザインタフェース対応、（３）ストリームの再生、である。これらの動作は、ＣＰＵ５１上で動作するタスクと、それぞれ必要な構成要素とが組み合わされて成り立っている。なお、ＣＰＵ５１上で動作するこれらの３つのタスクは、ＣＰＵ５１で動作するマルチタスクオペレーティングシステムの上で独立に動作しているものとする。
【００２８】
上述した第１の動作である、（１）クロックの再生、では、クロックソース２から発信された基準時刻信号により、スピーカ５の内部にクロックが再生される。第２の動作である、（２）ユーザインタフェース対応、では、例えばコントローラ３の指示により内部のＬＥＤを発光させ、内部のボタンが押されたか否かの情報をコントローラ３に戻す動作がなされる。第３の動作である、（３）ストリームの再生、では、受け取ったコンテンツデータに必要なディレイが施され、デコードして出力される。
【００２９】
図７は、図１に示したディスプレイ６の構成を説明するための図である。このディスプレイ６の内部構成は、図６で説明したスピーカ５の内部構成に、ＯＳＤ（Ｏｎ  Ｓｃｒｅｅｎ  Ｄｉｓｐｌａｙ）８２、表示装置８３を加えたものとして把握することができる。即ち、図７に示すディスプレイ６は、ＣＰＵ７１、ＲＯＭ７２、およびＲＡＭ７３を備えており、これらはシステムバス７４により相互に接続されマイクロコンピュータを構成している。また、ディスプレイ６は、システムバス７４に接続されているネットワークインタフェース７５を介して、ネットワーク１と接続されている。
【００３０】
このディスプレイ６は、それぞれシステムバス７４に接続されているクロック発振器７６とカウンタ７７を備えており、クロック発振器７６の出力は、カウンタ７７に入力されている。更に、ディスプレイ６はバッファ７９、タイムスタンプ抽出器８０、デコーダ８１、ＯＳＤ８２、および表示装置８３を備えている。ディスプレイ６を流れるストリームデータは、システムバス７４からバッファ７９、タイムスタンプ抽出器８０を経てデコーダ８１に入力されてデコードされる。デコーダ８１からの出力は、ＯＳＤ８２の出力と混合された後に、表示装置８３に表示される。このタイムスタンプ抽出器８０、デコーダ８１およびＯＳＤ８２は、それぞれシステムバス７４に接続されている。尚、デコーダ８１の内部は、後述するＭＰＥＧデコーダの構成をなしている。具体的にはデマルチプレクサ、ビデオバッファ、ビデオデコーダで構成されている。
【００３１】
また、ディスプレイ６は、ボタン／ＬＥＤ操作器７８を備えている。ＣＰＵ７１は、システムバス７４経由でボタンが押されたか否かの情報を読み出すことができる。また、ＣＰＵ７１は、システムバス７４経由でＬＥＤの点滅を制御することができる。ディスプレイ６は自身のデコーダ８１におけるデコードディレイを知っている。ここでデコードディレイとは、デコーダ８１にデータが入力されてから、デコードされたデータが出力されるまでの時間である。このデコードディレイ値はＲＯＭ７２に記録され、ＣＰＵ７１から読み出すことができるようになっている。また、ディスプレイ６は、自身の種別を知っている。ディスプレイ６の種別は「ディスプレイ」である。この種別はＲＯＭ７２に記録され、ＣＰＵ７１から読み出すことができるように構成されている。
【００３２】
ディスプレイ６の行う動作は大きく３つに分けられる。この３つの動作とは、スピーカ５の動作と同様であり、（１）クロックの再生、（２）ユーザインタフェース対応、（３）ストリームの再生、である。これらの動作は、ＣＰＵ７１上で動作するタスクと、それぞれ必要な構成要素とが組み合わされて成り立っている。なお、ＣＰＵ７１上で動作するこれらの３つのタスクは、ＣＰＵ７１で動作するマルチタスクオペレーティングシステムの上で独立に動作しているとする。
【００３３】
この（１）クロックの再生、とは、クロックソース２から発信された基準時刻信号により、ディスプレイ６の内部にクロックを再生することである。（２）ユーザインタフェース対応、とは、例えばコントローラ３の指示により内部のＬＥＤを発光させ、内部のボタンが押されたか否かの情報をコントローラ３に戻すことである。（３）ストリームの再生、とは、受け取ったコンテンツデータに必要なディレイを施した後、デコードして出力することである。
【００３４】
次に、本実施の形態が適用されるネットワークシステムの全体の動作について説明する。図１に示すクロックソース２は、ネットワーク１で相互に接続された機器に対して、クロックを送信している。より具体的には、一定時間ごとの時刻情報（ここでは基準時刻信号’Ｔｓ’）を送信している。但し、この時刻情報の送信は、必ずしも決まった時間間隔である必要はなく、所定時間ごとに送信されるものとすることができる。クロックの受信側（スピーカ５（５−１〜５−５）、ディスプレイ６、コンテンツソース４）では、受け取った基準時刻情報と内部発振回路の出力の値とが比較されて、内部発振回路の発振周波数が調整され、クロックが再現される。
【００３５】
図１に示すコントローラ３は、システム構成を設定している。この動作は、コントローラ３の指示に従いディスプレイ６にて表示されるメッセージや、コントローラ３の指示に従い各スピーカ５が発光させるＬＥＤに反応して、ユーザが各スピーカ５の持つスイッチを押す事により達成される。また、コントローラ３は、ストリーム再生を制御している。この動作は、コントローラ３の指示に従い、コンテンツソース４がストリームを出力し、各スピーカ５およびディスプレイ６がストリームをデコードすることにより行われる。また、コントローラ３の指示により各スピーカ５の音声出力を調整することも行われる。
【００３６】
次に、クロックソース２が行うクロック配信について説明する。ここでは、図２および図３に示した２種類の構成のそれぞれに対して説明を行う。
まず、図２に示すクロックソース２の動作を説明する。ここでクロック発振器１１の発振周波数を’Ｕ’［Ｈｚ］とする。クロック発振器１１で発信されたクロックは、カウンタ１２とタイマ１３のそれぞれに入力される。カウンタ１２は、入力されたクロックにより自身のカウンタ１２をインクリメントし、時刻情報’Ｔ’を生成する。入力されるクロックが’Ｕ’［Ｈｚ］であるため、時刻情報’Ｔ’は’Ｕ’［Ｈｚ］の周波数でインクリメントされる。カウンタ１２の出力（時刻情報’Ｔ’）は、ラッチ１４に入力される。ラッチ１４は、ラッチ信号が入力された時に入力信号をラッチして出力する。ラッチ信号が入力されない場合には、直前にラッチした信号が保持される。
【００３７】
タイマ１３は、入力されたクロックを計数し、あらかじめ設定された設定値’Ｓ’ごとにトリガ信号を出力している。ここで、タイマ１３への入力クロックは’Ｕ’［Ｈｚ］であるので、トリガ信号は’Ｓ／Ｕ’［秒］ごとに出力される。言い換えると、トリガ信号の周期は’Ｓ／Ｕ’［秒］、あるいはトリガ信号の周波数は’Ｕ／Ｓ’［Ｈｚ］となる。タイマ１３から出力されるトリガ信号は、ラッチ１４のラッチ信号端子に入力されると同時に、ネットワークインタフェース１５の送信信号端子に入力される。
【００３８】
ラッチ１４は、ラッチ信号端子にタイマ１３からのトリガ信号が入力された時点で、カウンタ１２から入力されている時刻信号’Ｔ’をホールドして出力する。ラッチ１４の出力は、次のラッチ信号が入力されるまで変化しない。この値を基準時刻信号’Ｔｓ’とする。送信信号端子にトリガ信号を受け取ったネットワークインタフェース１５は、入力されているラッチ１４の出力信号’Ｔｓ’を読み取り、ブロードキャストパケットに格納してネットワーク１に送り出す。ブロードキャストパケットは宛先を指定しないために、ネットワーク１に接続されている各機器に到着する。
【００３９】
次に、図３に示すクロックソース２の動作を説明する。ここでクロック発振器２１の発振周波数を’Ｕ’［Ｈｚ］とする。クロック発振器２１で発信されたクロックは、カウンタ２２とタイマ２３のそれぞれに入力される。カウンタ２２は、入力されたクロックにより自身のカウンタをインクリメントして時刻情報’Ｔ’を生成する。入力されるクロックが’Ｕ’［Ｈｚ］であるため、時刻情報’Ｔ’は、’Ｕ’［Ｈｚ］の周波数でインクリメントされる。カウンタ２２の出力（時刻情報’Ｔ’）はラッチ２４に入力される。ラッチ２４は、ラッチ信号が入力された時に入力信号をラッチして出力する。ラッチ信号が入力されない場合には、直前にラッチした信号が保持される。
【００４０】
タイマ２３は、入力されたクロックを計数し、あらかじめ設定された設定値’Ｓ’ごとにトリガ信号を出力している。ここでタイマ２３への入力クロックは’Ｕ’［Ｈｚ］であるので、トリガ信号は’Ｓ／Ｕ’［秒］ごとに出力される。言い換えると、トリガ信号の周期は’Ｓ／Ｕ’［秒］、あるいはトリガ信号の周波数は’Ｕ／Ｓ’［Ｈｚ］となる。タイマ２３から出力されるトリガ信号は、ラッチ２４のラッチ信号端子に入力されると同時にＣＰＵ２５の割り込み端子に入力される。ラッチ２４は、ラッチ信号端子にタイマ２３からのトリガ信号が入力された時点で、カウンタ２２から入力されている時刻信号’Ｔ’をホールドして出力する。ラッチ２４の出力は、次のラッチ信号が入力されるまで変化しない。この値を基準時刻信号’Ｔｓ’とする。
【００４１】
割り込み端子にトリガ信号を受け取ったＣＰＵ２５は、システムバス２０を介して、ラッチ２４の値、即ち基準時刻信号’Ｔｓ’を読み出す。さらにＣＰＵ２５は、システムバス２０経由でネットワークインタフェース２６に指令し、ネットワーク１に接続されている各機器に対して、ラッチ２４から読み出した基準時刻信号’Ｔｓ’を送信させる。ネットワークインタフェース２６は、ＣＰＵ２５から受け取った指令に従い、基準時刻信号’Ｔｓ’をブロードキャストパケットに格納して、ネットワーク１に送り出す。ブロードキャストパケットは宛先を指定しないために、ネットワーク１に接続されている各機器に到着する。尚、ＣＰＵ２５は、ＲＯＭ２７に蓄えられているプログラムによりＲＡＭ２８を利用して動作している。
【００４２】
図８は、クロック配信におけるクロックソース２の動作を説明するための図である。ここでは、横軸に時刻をとり、縦軸はそれぞれの信号の値が割り当てられている。クロック発振器１１（あるいはクロック発振器２１）は、’Ｕ’［Ｈｚ］の周波数で発信している。カウンタ１２（あるいはカウンタ２２）の出力、即ち時刻情報’Ｔ’は、同じく’Ｕ’［Ｈｚ］の周波数でインクリメントされる。図８の横軸の原点’ｔ０’をタイマ１３（あるいはタイマ２３）のトリガ信号が出力された時刻にとり、その時点での時刻情報’Ｔ’を’Ｔ０’とする。
【００４３】
次のトリガ信号は、時刻’ｔ０’からクロック’Ｕ’の周波数で周期’Ｓ’だけ計数した時刻’ｔ１’に出力され、この時の時刻情報’Ｔ’は’Ｔ０＋Ｓ’となる。このとき、同時に時刻情報’Ｔ’はラッチ１４（あるいはラッチ２４）によりラッチされ、基準時刻信号’Ｔｓ’は’Ｔ０＋Ｓ’となる。その後、トリガ信号は’Ｕ’の周波数でクロック周期’Ｓ’ごとに出力され、基準時刻情報’Ｔｓ’はそれぞれ’Ｔ０＋２Ｓ’、’Ｔ０＋３Ｓ’と変化して行く。基準時刻信号’Ｔｓ’は、トリガ信号が発生する度にネットワーク１に対してブロードキャストされる。
【００４４】
次に、クロック再生の動作について、スピーカ５（５−１〜５−５）を例に挙げて説明する。このクロック再生は、コンテンツソース４およびディスプレイ６においても実行される。ここで「クロックの再生」とは、クロックソース２から送られたクロックをクライアント機器内部で再び発生させることを示している。
【００４５】
通常状態において、図６に示すクロック発振器５６の出力はカウンタ５７に入力され、カウンタ５７は、入力されたクロックにより自身のカウンタをインクリメントして時刻情報’Ｔｔ’を生成する。ＣＰＵ５１は、バス５４を経由してカウンタ５７の値（時刻情報’Ｔｔ’）を読み込むことができる。時刻情報’Ｔｔ’は、ＣＰＵ５１により読み出され、デコードのタイミング調整に使用される。クロック発振器５６は可変周波数発振器であり、ＣＰＵ５１がシステムバス５４を経由して指示を行うことにより、発振周波数を一定の範囲で変化させることができる。また、ＣＰＵ５１は、システムバス５４を経由して、カウンタ５７に所望の値を設定することができる。
【００４６】
クロックソース２からの基準時刻信号’Ｔｓ’は、例えば一定時刻ごとに受信され、その際、ＣＰＵ５１は、以下で説明する時計合わせのタスクを実行する。カウンタ５７は、クロック発振器５６の自走クロックで時刻情報’Ｔｔ’を生成する。クロックソース２の発信した基準時刻信号’Ｔｓ’は、スピーカ５のネットワークインタフェース５５で受信される。ネットワークインタフェース５５は、ＣＰＵ５１に基準時刻信号’Ｔｓ’の到着を伝える。ＣＰＵ５１では、この信号により時計合わせのタスクが起動される。
【００４７】
図９は、クロック再生における時刻合わせの処理を説明するためのフローチャートである。ＣＰＵ５１は、まず、ネットワークインタフェース５５に到着した基準時刻信号’Ｔｓ’を読み出す（ステップ１０１）。その後、カウンタ５７から時刻情報’Ｔｔ’を読み出す（ステップ１０２）。次に、基準時刻信号’Ｔｓ’と時刻信号’Ｔｔ’の差分を計算し（’Ｔｓ’−’Ｔｔ’）、変数  ’ｄｉｆｆ’に代入する（ステップ１０３）。ＣＰＵ５１は、’ｄｉｆｆ’の絶対値と定数ｋを比較し（ステップ１０４）、’ｄｉｆｆ’の絶対値の方が大きいと判断された場合には、’Ｔｓ’の値をカウンタ５７に代入して（ステップ１０５）、処理を終了する。ステップ１０４にて’ｄｉｆｆ’の絶対値の方が大きいと判断されなかった場合には、ステップ１０６に進む。
【００４８】
ステップ１０６にて、ＣＰＵ５１は、’ｄｉｆｆ’の値が０（ゼロ）であるか否かを確認し、’ｄｉｆｆ’の値が０でない場合にはステップ１０７へ進み、’ｄｉｆｆ’の値が０である場合には処理を終了する。ステップ１０７にて、ＣＰＵ５１は、’ｄｉｆｆ’の値と０（ゼロ）とを比較し、’ｄｉｆｆ’の値が０（ゼロ）より大きいと判断された場合（’Ｔｓ’＞’Ｔｔ’）にはステップ１０９に進み、そうでない（’Ｔｓ’＜’Ｔｔ’）と判断された場合にはステップ１０８へ進む。ステップ１０８において、ＣＰＵ５１は、クロック発振器５６に対して発振周波数を遅くするよう指令した後、処理を終了する。また、ステップ１０９においてＣＰＵ５１は、クロック発振器５６に対して発振周波数を速くするよう指令した後、処理を終了する。
【００４９】
以上のようなＣＰＵ５１のタスクにより、受信した基準時刻信号’Ｔｓ’と内部時刻情報’Ｔｔ’の差が大きい場合には受信した基準時刻信号’Ｔｓ’を内部時刻カウンタに代入し、内部時刻情報’Ｔｔ’が少し進んでいる時にはクロックを遅くし、また内部時刻情報’Ｔｔ’が少し遅れている時にはクロックを速める。これらの動作により、基準時刻信号’Ｔｓ’にあわせた内部時刻情報’Ｔｔ’を再生することができる。尚、上記の例では、クロック配信に際してブロードキャスト通信を使用したが、ユニキャスト（一対一通信）の通信を用いることも可能である。
【００５０】
次に、コントローラ３を中心に行われるシステム構成設定の動作について説明する。
図１０および図１１は、ネットワーク１に各機器が接続された直後からの処理を示したフローチャートである。図１０に示すように、まず、コントローラ３は、物理的にネットワーク１に接続されて電源が投入されると、ネットワーク１への接続を確認する。即ち、図４に示すコントローラ３のＣＰＵ３１は、まず、ネットワークインタフェース３５に対してネットワーク１に接続したことを確認させる（ステップ２０１）。そして、ネットワーク１に接続したと判断されるとステップ２０３に進み、ネットワーク１に接続したと判断されない場合にはステップＳ２０１に戻って確認を繰り返す（ステップ２０２）。
【００５１】
ステップ２０３において、ＣＰＵ３１は、「応答リクエストメッセージ」を作成し、ネットワークインタフェース３５に指令して、ネットワーク１に対して送信させる。この「応答リクエストメッセージ」は所定の文字列で構成されている。ネットワークインタフェース３５は、ＣＰＵ３１から受け取った指令に従い、「応答リクエストメッセージ」をブロードキャストパケットに格納してネットワーク１に送り出す。ブロードキャストパケットは、宛先を指定していないために、「応答リクエストメッセージ」はネットワーク１に接続されている各機器に到着する。「応答リクエストメッセージ」を受け取った各機器は、自身の種別およびデコードディレイ値を返答する。種別およびデコードディレイ値は各機器のＲＯＭに記録されている。例えばスピーカ５において、このメッセージはネットワークインタフェース５５に到着し、ＣＰＵ５１は、このメッセージを解読して、ＲＯＭ５２から種別とデコードディレイを読み取り、「応答」メッセージを作成し、ネットワークインタフェース５５に指令してコントローラ３に対して送信させる。各機器の返答したメッセージは、ネットワークインタフェース３５で受信され、ネットワークインタフェース３５は、ＣＰＵ３１にメッセージの到着を伝える。
【００５２】
ステップ２０４においてメッセージが到着していると判断される場合には、コントローラ３のＣＰＵ３１は、ステップ２０５に進む。メッセージが到着していないと判断された時には、ステップ２０８に進む。ステップ２０５において、ＣＰＵ３１は、ネットワークインタフェース３５に到着したメッセージを読み出す。その後、ＣＰＵ３１は、読み出したメッセージが各機器から返答された所定の「応答」であるかどうかを確認する（ステップ２０６）。所定の「応答」であった場合にはステップ２０７へ進む。所定の「応答」ではなかった場合には、ステップ２０８へ進む。
【００５３】
ステップ２０７において、ＣＰＵ３１は、受け取った「応答」をＲＡＭ３３に置かれた機器データベースに記録する。図１２は、機器データベースの構造を示した図である。機器データベースの先頭には、登録されているエントリの数が記録され、引き続いて、エントリの数だけ各機器のレコードが記録されている。機器のレコードには、その機器をネットワーク上で特定するためのネットワークアドレス、種別、役割、デコードディレイがそれぞれ記録される。「応答」を機器データベースに記録する際には、まず、エントリ数を１だけインクリメントする。そして、新しいレコードをリストの終りに追加する。その後、新しく追加したレコードに対して、受け取った「応答」の送り先の機器を特定するためのネットワークアドレス、種別、デコードディレイを記録する。役割の項はシステム構成設定動作の後半で記録される。
【００５４】
ステップ２０８において、ＣＰＵ３１では、ステップ２０３の「応答リクエストメッセージ」を送信してから、所定の時間が経過したかどうかが判断される。所定時間が経過したと判断された場合には、図１１に示すステップ２１０に進む。まだ所定時間が経過していないと判断された場合には、ステップ２０４に戻って、これまでの動作を繰り返す。
【００５５】
図１１に示すステップ２１０において、ＲＡＭ３３に置かれている機器データベースの内容は、図１３に示すような内容になっており、そのエントリの数は７となっている。７つあるレコードの内訳としては、まず、ディスプレイ６を示すネットワークアドレスを持ち、種別がディスプレイとなっているレコードが置かれる。また、５つのスピーカ５（５−１〜５−５）の各々を示すネットワークアドレスを持ち、種別がモノラルスピーカとなっているレコードが計５つ置かれている。最後に、コンテンツソース４を示すネットワークアドレスを持ち、種別がコンテンツソースとなっているレコードが置かれている。尚、レコードの順番は一例として示したものであり、図１３に示す順番になるものと決まっているものではない。
【００５６】
ステップ２１０において、ＣＰＵ３１は、ＲＡＭ３３に置かれている機器データベースから種別がディスプレイとなっているものを探す。この例では、図１３に示すように、最初に記録されているレコードの種別がディスプレイとなっている。ＣＰＵ３１は、最初のレコードに記録されているネットワークアドレスを持つ機器がディスプレイであることを認識する。その後、ＣＰＵ３１は、「システムを設定開始する」旨のメッセージを作成し、ネットワーク１経由でディスプレイ６に指令して表示させる（ステップ２２０）。前のステップにてディスプレイ手段を持つ機器としてディスプレイ６を認識したので、ＣＰＵ３１は、直接、ディスプレイ６（を示すネットワークアドレスを持つ機器）に対して指令を行う。具体的には、ＣＰＵ３１は、メッセージを作成し、ネットワークインタフェース３５に指令してディスプレイ６に対して送信させる。ディスプレイ６では、図７に示すネットワークインタフェース７５がメッセージを受信し、ＣＰＵ７１によってそのメッセージが読み取られて解読され、ＯＳＤ８２に指令してメッセージを出力して表示装置８３に表示させる。
【００５７】
次に、コントローラ３のＣＰＵ３１により「フロントレフト」が指定される（ステップ２３０）。即ち、「フロントレフトの位置に有るスピーカのスイッチを押して下さい」という旨のメッセージが作成され、ネットワーク１を経由してディスプレイ６に表示される。
【００５８】
その後、コントローラ３は、「ＬＥＤ点滅／ボタン待ち」を指令するメッセージを作成し、ＲＡＭ３３に置かれている機器データベースから種別がモノラルスピーカになっている機器の全て（スピーカ５（５−１〜５−５））に対して送出する。この「ＬＥＤ点滅／ボタン待ち」のメッセージを受信した機器は、ＬＥＤを点滅させ  （ステップ２３１）、ボタンが押されることを待ち受ける。スピーカ５においては、このメッセージはネットワークインタフェース５５に到着し、ＣＰＵ５１はこのメッセージを解読して、ボタン／ＬＥＤ操作器５８に指令してＬＥＤを点滅させる。またＣＰＵ５１は、ボタン／ＬＥＤ操作器５８にてボタンが押されたことを探知したら、コントローラ３に返答を返すべく、待ち受ける。
【００５９】
ユーザは、ＬＥＤの点滅しているスピーカ５（５−１〜５−５）の中から、フロントレフトの位置にあたるスピーカ５−１のスイッチを押す。スピーカ５−１では、ボタンを押されたことをボタン／ＬＥＤ操作器５８が感知し、ＣＰＵ５１に伝える。ＣＰＵ５１は、「ボタン押下」のメッセージを作成し、ネットワークインタフェース５５に指令してコントローラ３に対して送信させる。コントローラ３のＣＰＵ３１は、ステップ２３２にて「ボタン押下」のメッセージが受信されるまで待ち（ステップ２３２）、受信するとスピーカ５−１のＬＥＤを消灯する（ステップ２３３）。
【００６０】
その後、ＣＰＵ３１は、ネットワークインタフェース３５からメッセージを読み出し、「ボタン押下」メッセージ発信元のネットワークアドレスを読み取り、ＲＡＭ３３に記録されている機器データベースのレコードの中で、ネットワークアドレスが一致するもの、即ち、図１３の例では第２番目のレコードを探し出し、該当するレコードの役割のフィールドに「フロントレフト」の属性を書き込んで設定する（ステップ２３４）。最後にＣＰＵ３１は、役割のフィールドの内容、ここでは「フロントレフト」の属性を記述した「役割メッセージ」を作成し、ネットワーク１を経由して「ボタン押下」メッセージの発信元に送り返す（ステップ２３５）。「ボタン押下」メッセージの発信元（ここではスピーカ５−１）は、「役割メッセージ」を受信し、役割（ここでは「フロントレフト」の属性）を取り出してＲＡＭ５３に格納する。即ち、このメッセージは、ネットワークインタフェース５５に到着し、ＣＰＵ５１は、このメッセージを解読して、ＲＡＭ５３に記録する。以上のようなステップ２３０からステップ２３５の操作によって、「フロントレフト」の位置に設置されたスピーカ５はスピーカ５−１であるということがコントローラ３の機器データベースに記録される。また、スピーカ５−１は、自身の役割（ここではフロントレフト）を知り、自身のＲＡＭ５３に記録する。
【００６１】
以下同様に、ステップ２４０からステップ２４５の操作により「フロントライト」、ステップ２５０からステップ２５５の操作により「センター」、ステップ２６０からステップ２６５の操作により「リアレフト」、ステップ２７０からステップ２７５の操作により「リアライト」のそれぞれの位置に設置されたスピーカ５を知ることができる。更に、各スピーカ５（５−２〜５−５）は、自身の役割を知り自身のＲＡＭ５３に記録する。
【００６２】
最後に、コントローラ３のＣＰＵ３１は「システム設定が終了した」という旨のメッセージを作成し、ネットワーク１経由でディスプレイ６に指令して表示させる（ステップ２８０）。以上の手順により、物理的な配置とネットワーク１上でのアドレスの対応をとることができる。尚、ここでは説明しなかったが、ディスプレイ６が複数、存在する場合には、ディスプレイ６が持つボタン／ＬＥＤ操作器７８、あるいはリモコン７と画面表示などを用いて、上記と同様の設定を行うことができる。
【００６３】
次に、スピーカ５（５−１〜５−５）のデコーダ６１やディスプレイ６のデコーダ８１にて構成されるＭＰＥＧデコーダについて説明する。
図１４は、ＭＰＥＧ２システム（ＩＳＯ１３８１８‐１）に準拠したデコーダシステムの概略を示した図である。図１４に示すデコーダシステムでは、ストリーム入力９１からストリームが入力され、デマルチプレクサ９２にてビデオストリームとオーディオストリームとに振り分けられる。ビデオストリームは、ビデオバッファ９３に入力され、所定のディレイ時間を経過した後にビデオデコ−ダ９４に入力され、デコードされてビデオ出力９７から出力される。オーディオストリームは、オーディオバッファ９５に入力され、所定のディレイ時間を経過した後にオーディオデコ−ダ９６に入力され、デコードされてオーディオ出力９８から出力される。
【００６４】
図１５は、ＭＥＰＧデコーダに供給されるデータフォーマットの一例を示した図である。このフォーマットは、ＭＰＥＧ２の多重化ビットストリーム（Ｐｒｏｇｒａｍ  Ｓｔｒｅａｍ）として規定されているものである。図１５に示すように、多重化ビットストリームは、１つ以上のパック（ＰＡＣＫ）で構成され、各パックは１つ以上のパケット（ＰＡＣＫＥＴ）で構成される。パックの先頭にはパックヘッダ（ＰＡＣＫ  ＨＥＡＤＥＲ）が配置され、このパックヘッダにはパックの開始点を示すパックスタートコード（ＰＡＣＫ  ＳＴＡＲＴ  ＣＯＤＥ）、ＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）およびＭＵＸ  ＲＡＴＥが配置されている。ＳＣＲは、その最後のバイトがデマルチプレクサ９２に入力される時刻を表わしている。ＭＵＸ  ＲＡＴＥは、転送レートを示すものである。
【００６５】
図１５に示す例においては、パックヘッダに続いて、ビデオパケット（ＶＩＤＥＯ  ＰＡＣＫＥＴ）とオーディオパケット（ＡＵＤＩＯ  ＰＡＣＫＥＴ）とが配置されている。これらのパケットの先頭にもパケットヘッダが配置され、これらのパケットヘッダは、ビデオまたはオーディオのパケットの開始点を表すビデオパケットスタートコード（ＶＩＤＥＯ  ＰＡＣＫＥＴ  ＳＴＡＲＴ  ＣＯＤＥ）またはオーディオパケットスタートコード（ＡＵＤＩＯ  ＰＡＣＫＥＴ  ＳＴＡＲＴ  ＣＯＤＥ）と、ビデオまたはオーディオデータのデコード（表示）開始時刻を示すＤＴＳ（Ｖ）（ＰＴＳＶ（ＰＴＳｖｉｄｅｏ））またはＤＴＳ（Ａ）（ＰＴＳＡ（ＰＴＳａｕｄｉｏ））が配置されている。そして、この各パケットヘッダの次に、ビデオデータあるいはオーディオデータが配置されている。尚、これらＳＣＲ、ＰＴＳ（ＰＴＳＶまたはＰＴＳＡ）などのタイミングデータは、９０ｋＨｚの周波数からなるクロックのカウント値で表わされ、３３ビットの有効数字を有している。更に、システム表現のための簡略モデル化を行っているため、デコードにかかる時間は０となっている。このためデコード開始時刻と表示開始時刻が等しい。
【００６６】
図１６は、ＳＣＲとＰＴＳＶ（ＰＴＳｖｉｄｅｏ）、ＳＣＲとＰＴＳＡ（ＰＴＳａｕｄｉｏ）の関係を示した図である。パックヘッダがデマルチプレクサ９２を通過した時刻がｔ１であり、該当するパックに含まれるビデオとオーディオの表示時間がそれぞれｔ２とｔ３となる。ここでは、ＳＣＲからＰＴＳａｕｄｉｏまでの時間をΔＴａとし、ＳＣＲからＰＴＳｖｉｄｅｏまでの時間をΔＴｖとしている。ΔＴａとΔＴｖは、エンコード時に決まる任意の時間である。該当するパックがデマルチプレクサ９２に入力される時刻がＳＣＲであり、該当するパックに含まれるビデオデータとオーディオデータは、それぞれビデオバッファ９３とオーディオバッファ９５で所定の時間、遅延するために、そのデコード（表示）開始時刻はＳＣＲより遅くなる。また、一般的にビデオバッファ９３での遅延はオーディオバッファ９５での遅延より大きいため、同じタイミングでデマルチプレクサ９２を通過した場合でも、ビデオのデコード（表示）時刻はオーディオのデコード（表示）開始時刻より遅くなる。尚、前述したように、デコードにかかる時間は０であるので、ここでの遅延は、それぞれビデオバッファ９３とオーディオバッファ９５で発生している。
【００６７】
次に、本実施の形態におけるディレイ補償の考え方について説明する。
コントローラ３は、コンテンツの再生を行うにあたり、Δｔを設定してコンテンツソース４に知らせる。コンテンツソース４は、コンテンツデータの送信時刻に対して、Δｔだけ遅らせた時刻にコンテンツの出力されるべき時刻を設定してコンテンツデータを送り出す。コンテンツのシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）では、受け取ったコンテンツデータを指定された時刻に出力する。
【００６８】
Δｔは、コンテンツソース４からコンテンツのシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）に、コンテンツデータが送られた時のネットワークディレイ（通信ディレイ）のうち最大となる時間と、コンテンツのシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）の実際のデコードディレイのうち最大となる時間とを加えたものである。場合によっては、マージンを増やすために幾分かの余裕を加える場合がある。また、この２つ以外の要因によるディレイを加える場合もある。例えば、サブネットをまたぐ場合のルーターのディレイ等が考えられる。
【００６９】
更に、Δｔの値はシンク機器群の組み合わせによって変化することがある。即ち、コンテンツのシンク機器群の組み合わせが変化すると、その中での最大のネットワークディレイと最大のデコードディレイは変化する可能性がある。シンク機器群の組み合わせによってΔｔをその都度変えて制御する場合と、システム内で起こり得る最大のネットワークディレイと最大のデコードディレイとを用いて、即ち、Δｔの最大値を見積もってそれを使用する場合の二つの方法が考えられる。
【００７０】
図１７は、本実施の形態におけるディレイを説明するための図である。コンテンツソース４がストリーム先頭に対する発信を開始した時刻をｔ１０とする。ｔ１０に最大の通信ディレイ（ネットワークディレイ）を加えた時刻をｔ１１とする。コンテンツソース４から発信されたコンテンツデータは、遅くともｔ１１までには全てのコンテンツのシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）に到着している。即ち、通信のディレイに関しては、配信時刻から再生時刻を最大の通信ディレイだけ遅らせることで補償可能である。
【００７１】
次に、ｔ１１に最大のデコードディレイを加えた時刻、即ち、ｔ１０にΔｔを加えた時刻をｔ１２とする。ＭＰＥＧ系の多重化ストリームの場合には、デコード開始とはビットストリームの処理開始、即ちデマルチプレクス開始ということになる。このため、時刻ｔ１２は、該当するビットストリームのＳＣＲが対応することになる。図１６に示した数値を当てはめて考えると、デコーダではｔ１２がＳＣＲの時刻となるから、オーディオの出力開始時刻ＰＴＳａｕｄｉｏは、ｔ１２にΔＴａを加えた時刻ｔ２０となり、ビデオの出力開始時刻ＰＴＳｖｉｄｅｏは、ｔ１２にΔＴｖを加えた時刻ｔ２２となる。
【００７２】
ここで、実際のデコードディレイを考える。ディスプレイ６のデコーダ８１のデコードディレイをＤｖ、スピーカ５のデコーダ６１のデコードディレイをＤａとすると、ｔ２０にオーディオを出力するためには、ｔ２０よりＤａだけさかのぼった時刻ｔ２１にオーディオのデコードを開始する必要がある。また、同様に、ｔ２２にビデオを出力するためには、ｔ２２からＤｖだけさかのぼった時刻ｔ２３にビデオのデコードを開始する必要がある。
【００７３】
このとき、ΔＴａあるいはΔＴｖが非常に小さく与えられたとすると、ｔ２０あるいはｔ２２はｔ１２に限りなく近付くので、ｔ２１あるいはｔ２３はｔ１２からデコードディレイ分さかのぼった時刻になる。このため、ｔ１２から最大のデコードディレイ分をさかのぼった時刻が、ｔ１１の後になっていれば良い。繰り返すと、ｔ１１までデコード開始を待てばネットワークによるディレイは無視できる。更に、見かけ上のデコード開始時刻（ｔ１２、ＳＣＲ）を、ｔ１１から実際のデコードディレイにおける最大のものだけ遅らせることにより、デコードディレイの影響も無視できるようになる。このために、Δｔには最大のデコードディレイが加算されている。
【００７４】
次に、ストリーム再生動作について説明する。
図１にて、ユーザがリモコン７を使用して、再生モードの指定をコントローラ３に対して与えた場合を考える。ここではディスプレイ６とスピーカ５（５−１〜５−５）を使用するサラウンド再生を指定したものとする。このとき、リモコン信号は、コントローラ３のリモコン受光部３６で受信される。リモコン受光部３６は、ＣＰＵ３１に対して再生モード指定のコマンドを伝える。ＣＰＵ３１は、ＲＡＭ３３に記録されている機器データベースを参照し、シンク機器（スピーカ５（５−１〜５−５）、ディスプレイ６）から、デコードディレイの最大値を選び出し、更に、予め決まっているネットワークのディレイをＲＯＭ３２から読み出して加算し、Δｔとする。
【００７５】
ここで、ユーザがリモコン７を使用して、コンテンツ再生の命令をコントローラ３に対して与えた場合を考える。このリモコン信号は、コントローラ３のリモコン受光部３６で受信される。リモコン受光部３６は、ＣＰＵ３１にコンテンツ再生のコマンドを伝える。ＣＰＵ３１は、ＲＡＭ３３に記録されている機器データベースを参照して、コンテンツソースを探し出す。ここではコンテンツソース４を発見し、ネットワークアドレスを得る。コントローラ３は、コンテンツソース４に対して「コンテンツ再生開始」のメッセージを送出する。このとき、Δｔの値も同時に与える。また、通常では、ここでコンテンツの指定がなされる。
【００７６】
即ち、ＣＰＵ３１は、「コンテンツ再生開始メッセージ」を作成し、その中でΔｔを指定する。そして、ＣＰＵ３１は、ネットワークインタフェース３５に指令して、「コンテンツ再生開始メッセージ」をコンテンツソース４に対して送信させる。この「コンテンツ再生開始メッセージ」は、所定の文字列で構成される。
【００７７】
コントローラ３は、今回のシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）に対して、コンテンツソース４からのコンテンツデータを再生するように指示する。即ち、ＣＰＵ３１は、「コンテンツソース指定メッセージ」を作成し、その中でコンテンツソース４のネットワークアドレスを指定する。ＣＰＵ３１は、ネットワークインタフェース３５に指令して、今回のシンク機器群（スピーカ５（５−１〜５−５）、ディスプレイ６）に対して、一つづつ順番に「コンテンツソース指定メッセージ」を送信させる。この「コンテンツソース指定メッセージ」は、所定の文字列で構成される。
【００７８】
同時に、コントローラ３は、今回のシンク機器群の中で、スピーカ５群（スピーカ５−１〜５−５）に対してボリュームを設定する。即ち、ＣＰＵ３１は、「ボリューム設定メッセージ」を作成し、その中でボリュームの値を指定する。ＣＰＵ３１は、ネットワークインタフェース３５に指令して、シンク機器群の中の指定されたシンク機器であるスピーカ５（５−１〜５−５）に対して、一つづつ順番に「ボリューム設定メッセージ」を送信させる。この「ボリューム設定メッセージ」は、所定の文字列で構成されている。
【００７９】
次に、コンテンツソース４の動作について説明する。コンテンツソース４は、「コンテンツ再生開始メッセージ」を受信する。即ち、ネットワークインタフェース４５にメッセージが到着し、ＣＰＵ４１はこのメッセージを解読し、Δｔの値を受け取ると共に、コンテンツの再生を開始する。まず、ＣＰＵ４１は、ハードディスク装置４８に対して所定のコンテンツの出力を指示する。ハードディスク装置４８から出力したストリームは、ビットストリーム解析器４９にて解析され、先頭のＳＣＲの値が読み出される。ＳＣＲの数値はＣＰＵ４１によって読み出され、ストリームはそのままバッファ５０へ進む。
【００８０】
このとき、コンテンツソース４での時刻情報’Ｔｔ’が’Ｔ１０’、ストリーム先頭のＳＣＲの値が’Ｓ１０’であったとする。即ち、ビットストリームの’Ｓ１０’の値を持つタイムスタンプが、スピーカ５におけるデコーダ６１内の図示せぬデマルチプレクサ、あるいはディスプレイ６のデコーダ８１内の図示せぬデマルチプレクサにて処理される時刻’Ｔ１２’は、現在時刻’Ｔ１０’にコントローラ３より与えられた’Δｔ’を加えた時刻となる。
Ｔ１２＝Ｔ１０＋Δｔ
コンテンツソース４のＣＰＵ４１は、「タイムスタンプオフセットメッセージ」を作成し、’Ｓ１０’の値と’Ｔ１２’の値を指定する。ＣＰＵ４１は、ネットワークインタフェース４５に指令して、「タイムスタンプオフセットメッセージ」をネットワーク１にブロードキャストする。これにより、全てのシンク機器は、ＭＰＥＧ２のタイムスタンプと’クロック’の関係を知ることになる。
【００８１】
コンテンツソース４のＣＰＵ４１は、ネットワークインタフェース４５に指定して、バッファ５０の内容（ストリーム）をネットワーク１にブロードキャストさせる。ここではネットワーク１に対してブロードキャストするが、ユニキャスト（一対一通信）でも構わない。その際には、コントローラ３が、シンク機器の一覧をコンテンツソース４に伝える必要が有り、コンテンツソース４は、その一覧データに従ってデータを送信する。
【００８２】
次に、本実施の形態におけるスピーカ５の動作について説明する。スピーカ５のＣＰＵ５１は、コントローラ３の発信した「コンテンツソース指定メッセージ」のメッセージを受け取る。ＣＰＵ５１は、コンテンツソースとして指定されたネットワークアドレスをＲＡＭ５３に格納する。スピーカ５は、コントローラ３の指示により、コンテンツソース４からのコンテンツデータを待ち受ける。このメカニズムにより、同一ネットワーク上に、コンテンツソースとシンク機器の組み合わせが複数存在することができる。
【００８３】
また、スピーカ５のＣＰＵ５１は、コントローラ３の発信した「ボリューム設定メッセージ」のメッセージを受け取る。ＣＰＵ５１はアンプ６２に対してボリュームを設定する。更にスピーカ５は、コンテンツソース４の発信した「タイムスタンプオフセットメッセージ」を受け取る。この「タイムスタンプオフセットメッセージ」は、コンテンツデータに伴って送られるものであり、スピーカ５は、予めコンテンツソース４からのコンテンツデータを待ち受けていたので、このメッセージを受け入れた。この「タイムスタンプオフセットメッセージ」からＭＰＥＧのタイムスタンプと時刻情報の関係が判る。スピーカ５のＣＰＵ５１は、
差分オフセット値＝Ｓ１０−Ｔ１２
を計算する。これによりスピーカ５での時刻情報’Ｔｔ’にオフセット値を加えることで、ＭＰＥＧの時計であるところのＳＴＣ（システムタイムクロック）の値を計算することができる。また、ＭＰＥＧ系のタイムスタンプからオフセットを減じることで、時刻情報’Ｔｔ’の値を求めることができる。
【００８４】
スピーカ５は、コンテンツソース４の発信したストリームを受け取り、バッファ５９に入力する。バッファ５９に入ったストリームは、タイムスタンプ抽出器６０を経てデコーダ６１に入力される。ＣＰＵ５１は、タイムスタンプ抽出器６０からＳＣＲとＰＴＳａｕｄｉｏを読み出す。また、ＣＰＵ５１はデコードディレイＤａの値を知っている。デコーダ６１にはデコードディレイがあるために、名目上の出力開始時刻からＤａだけさかのぼって（前に）デコードを開始する必要がある。この調整を行うために、スピーカ５のＣＰＵ５１は以下の処理を行う。
【００８５】
まず、Ｔ１２からＤａだけさかのぼった時刻をＴ１１（実際のデマルチプレクス開始時刻）とする。ストリームの最初のＰＴＳａｕｄｉｏ（名目上のオーディオデコード／表示開始）をＴ２０とし、Ｔ２０からＤａだけさかのぼった時刻をＴ２１とする。即ちＴ１２は名目上のデマルチプレクス開始時刻であり、Ｔ１１はデコードディレイの分、前倒しにした実際のデマルチプレクス開始時刻となる。また、Ｔ２０は、ストリームの最初のＰＴＳａｕｄｉｏにおける名目上のデコード（表示）開始時刻であり、Ｔ２１はデコードディレイの分、前倒しにした実際のデコード開始時刻となる。ＣＰＵ５１はカウンタ５７から再生された時刻情報’Ｔｔ’を読み出し、時刻がＴ１１に等しくなった時点でデマルチプレクスを開始する。引き続いて時刻がＴ２１になった時点でデコードを開始する。これにより、Ｔ２０にオーディオの出力を開始することができる。
【００８６】
次に、本実施の形態におけるディスプレイ６の動作について説明する。ディスプレイ６のＣＰＵ７１は、コントローラ３の発信した「コンテンツソース指定メッセージ」のメッセージを受け取る。ＣＰＵ７１は、コンテンツソースとして指定されたネットワークアドレスをＲＡＭ７３に格納する。ディスプレイ６は、コントローラ３の指示により、コンテンツソース４からのコンテンツデータを待ち受ける。この仕掛けにより、同一ネットワーク上に、コンテンツソースとシンク機器の組み合わせが複数存在することができる。
【００８７】
ディスプレイ６は、コンテンツソース４の発信した「タイムスタンプオフセットメッセージ」を受け取る。この「タイムスタンプオフセットメッセージ」は、コンテンツデータに伴って送られるものであり、ディスプレイ６は、予めコンテンツソース４からのコンテンツデータを待ち受けていたのでこのメッセージを受け入れた。この「タイムスタンプオフセットメッセージ」からＭＰＥＧのタイムスタンプと時刻情報の関係が判る。ディスプレイ６のＣＰＵ７１は、
差分オフセット値＝Ｓ１０−Ｔ１２
を計算する。これによりディスプレイでの時刻情報’Ｔｔ’にオフセット値を加えることで、ＭＰＥＧの時計であるところのＳＴＣ（システムタイムクロック）の値を計算することができる。また、ＭＰＥＧ系のタイムスタンプからオフセットを減じることで、時刻情報’Ｔｔ’の値を求めることができる。
【００８８】
ディスプレイ６は、コンテンツソース４の発信したストリームを受け取り、バッファ７９に入力する。バッファ７９に入ったストリームは、タイムスタンプ抽出器８０を経てデコーダ８１に入力する。ＣＰＵ７１は、タイムスタンプ抽出器８０からＳＣＲとＰＴＳｖｉｄｅｏを読み出す。また、ＣＰＵ７１はデコードディレイＤｖの値を知っている。デコーダ８１にはデコードディレイがあるために、名目上の出力開始時刻からＤｖだけさかのぼって（前に）デコードを開始する必要がある。この調整を行うために、ディスプレイ６のＣＰＵ７１は以下の処理を行う。
【００８９】
まず、Ｔ１２からＤｖだけさかのぼった時刻をＴ１１（実際のデマルチプレクス開始時刻）とする。ストリームの最初のＰＴＳｖｉｄｅｏ（名目上のビデオデコード／表示開始）をＴ２２とし、Ｔ２２からＤｖだけさかのぼった時刻をＴ２３とする。即ちＴ１２は名目上のデマルチプレクス開始時刻であり、Ｔ１１はデコードディレイの分、前倒しにした実際のデマルチプレクス開始時刻となる。また、Ｔ２２はストリームの最初のＰＴＳｖｉｄｅｏにおける名目上のデコード（表示）開始時刻であり、Ｔ２３はデコードディレイの分、前倒しにした実際のデコード開始時刻となる。ＣＰＵ７１は、カウンタ７７から再生された時刻情報’Ｔｔ’を読み出し、時刻がＴ１１に等しくなった時点でデマルチプレクスを開始する。引き続いて時刻がＴ２３になった時点でデコードを開始する。これにより、Ｔ２２にビデオの出力を開始することができる。
【００９０】
最後に、位置補償の方法について説明する。
上記の例では、Δｔの要素として、ネットワークによるディレイとデコードディレイの二つを考えたが、このほかにもスピーカ５（５−１〜５−５）の位置によるディレイ調整が考えられる。例えば、スピーカ５−４がスピーカ５−５より１．７メートルだけリスニングポジション８に近いとする。音速はおよそ３４０メートル毎秒なので、１．７メートルの距離を進むのに約５ミリ秒かかる。即ち、スピーカ５−４とスピーカ５−５を同時に発した音は、スピーカ５−４からの音が５ミリ秒だけ早くリスニングポジション８に到達する。これを補償するために、スピーカ５−４に対して５ミリ秒のディレイを加えるという方法がある。言い換えれば、スピーカ５−４だけが１．７メートルだけリスニングポジション８に近い場合に、スピーカ５−４以外のスピーカに対して５ミリ秒だけ早く出力させるということになる。
【００９１】
本実施の形態では、かかる方法にも対応することが可能である。具体的には、上記例においてΔｔを計算する際に、「ネットワークディレイの最大値」と「デコードディレイの最大値」に加えて「位置補償ディレイの最大値」を加算する。即ち、上記例よりもΔｔは５ミリ秒だけ大きくなる。また、コントローラ３は、スピーカ５−４に対して０ミリ秒のディレイを指示し、スピーカ５−４以外のスピーカに対して５ミリ秒の前倒しを指示する。このとき、コントローラ３から発信される「コンテンツソース指定メッセージ」によって指定されたネットワークアドレスに基づいて、シンク機器毎にディレイの指示を受けることが可能である。また、コントローラ３のＣＰＵ３１により各スピーカ５の「位相補償ディレイ設定メッセージ」が作成され、各スピーカ５に送られることで、シンク機器毎にディレイを指示するように構成することも可能である。
【００９２】
図１８は、位置補償ディレイの最大値を考慮した場合のディレイを説明するための図である。コンテンツソース４は、コンテンツの送り出し時刻ｔ１０に対してΔｔを加え、名目上のデマルチプレクス開始時刻としてｔ１２を指定する。リアレフトであるスピーカ５−４では、最初のＳＣＲにあたるｔ１２から”デコードディレイＤａ＋０ミリ秒”だけさかのぼった時刻ｔ１１にデマルチプレクスを開始し、最初のＰＴＳａｕｄｉｏにあたるｔ２０から”デコードディレイＤａ＋０ミリ秒”だけさかのぼった時刻ｔ２１にデコードを開始する。これによって、ｔ２０に音声出力することができる。
【００９３】
スピーカ５−４以外のスピーカ５では、最初のＳＣＲにあたるｔ１２から”デコードディレイＤａ＋５ミリ秒”だけさかのぼった時刻ｔ３１にデマルチプレクスを開始し、最初のＰＴＳａｕｄｉｏにあたるｔ２０から”デコードディレイＤａ＋５ミリ秒”だけさかのぼった時刻ｔ３２にデコードを開始する。するとｔ２０から５ミリ秒前に音声出力することができる。即ち、これらの操作によりスピーカ５−４以外のスピーカ５からの出力は、スピーカ５−４からの出力よりも５ミリ秒だけ早く出力することができる。このようにしてスピーカ位置の補償が可能となる。
【００９４】
以上、詳述したように、本実施の形態では、まず、ソース機器とシンク機器における動作クロックの関係（結びつき）について対策を施している。即ち、両者のクロックが非同期である場合、両者のデータ処理速度、即ち同一サンプル数に対する処理時間が異なるため、結果として二つの機器の間に存在するバッファには破錠（アンダーフロー、オーバーフロー）をきたすことになる。本実施の形態では、クロックの配信を行い、受信した基準時刻信号と内部時刻情報との差が大きい場合には受信した基準時刻信号を内部時刻カウンタに代入し、内部時刻情報が進んでいるときにはクロックを遅くし、遅れているときにはクロックを速めるように構成した。これによって、ディジタルネットワークに接続された機器におけるクロックの同期をとることが可能となる。
【００９５】
また、ネットワークに接続された複数の入出力機器間の位相（タイミング）の関係について、ディジタルネットワークでは伝送遅延が固定ではないことから、十分に小さい位相誤差にて出力されるという保証が無い。また、アナログ接続に比べて遅延の絶対値が大きくなる。しかしながら、本実施の形態によれば、まず、上記のように、同じ時計を各機器で動作させ、入出力タイミングをその時計の時刻で指定することで、位相情報（入出力時刻／タイミング）配信を行っている。また、ネットワーク（通信）ディレイと末端機器におけるデコードディレイを考慮し、コンテンツの再生に際して生じるディレイ分を補正するように構成した。これによって、理想状態で位相を合わせた上で実際の位相調整を行うことが可能となる。
【００９６】
尚、本実施の形態にて説明したデコードディレイに代表される変換ディレイには、例えば、サンプリング周波数変換、ノイズフィルタ、また、サラウンド機能を通した場合のディレイ等の各種ディレイを含むことができる。
また、本実施の形態では、ストリームを再生して出力するデコーダを備える出力機器を中心に説明したが、例えば、ディジタルカメラやマイク、リモコン操作等を行うスイッチ等、各種入力機器がディジタルネットワークに接続された態様に対しても適用することができる。かかる態様の場合には、エンコードしてストリームを生成する際に生じるエンコードディレイを考慮し、位相の同期が図られる。
【００９７】
【発明の効果】
以上説明したように、本発明によれば、ディジタルネットワークに接続された各機器の間において、同期をとることが可能となる。
【図面の簡単な説明】
【図１】本実施の形態におけるネットワークシステムの全体像を示した構成図である。
【図２】クロックソースにおける第１の構成例を示した図である。
【図３】クロックソースにおける第２の構成例を示した図である。
【図４】図１に示したコントローラの構成を説明するための図である。
【図５】図１に示したコンテンツソースの構成を説明するための図である。
【図６】図１に示したスピーカの構成を説明するための図である。
【図７】図１に示したディスプレイの構成を説明するための図である。
【図８】クロック配信におけるクロックソースの動作を説明するための図である。
【図９】クロック再生における時刻合わせの処理を説明するためのフローチャートである。
【図１０】ネットワークに各機器が接続された直後からの処理を示したフローチャートである。
【図１１】ネットワークに各機器が接続された直後からの処理を示したフローチャートである。
【図１２】機器データベースの構造を示した図である。
【図１３】コントローラのＲＡＭに置かれている機器データベースの内容を示した図である。
【図１４】ＭＰＥＧ２システム（ＩＳＯ１３８１８‐１）に準拠したデコーダシステムの概略を示した図である。
【図１５】ＭＥＰＧデコーダに供給されるデータフォーマットの一例を示した図である。
【図１６】ＳＣＲとＰＴＳＶ（ＰＴＳｖｉｄｅｏ）、ＳＣＲとＰＴＳＡ（ＰＴＳａｕｄｉｏ）の関係を示した図である。
【図１７】本実施の形態におけるディレイを説明するための図である。
【図１８】位置補償ディレイの最大値を考慮した場合のディレイを説明するための図である。
【符号の説明】
１…ネットワーク、２…クロックソース、３…コントローラ、４…コンテンツソース、５（５−１〜５−５）…スピーカ、６…ディスプレイ、１１…クロック発振器、１２…カウンタ、１３…タイマ、１４…ラッチ、１５…ネットワークインタフェース、２０…システムバス、２１…クロック発振器、２２…カウンタ、２３…タイマ、２４…ラッチ、２５…ＣＰＵ、２６…ネットワークインタフェース、３１…ＣＰＵ、３２…ＲＯＭ、３３…ＲＡＭ、３４…システムバス、３５…ネットワークインタフェース、４１…ＣＰＵ、４４…システムバス、４５…ネットワークインタフェース、４６…クロック発振器、４７…カウンタ、４８…ハードディスク装置、４９…ビットストリーム解析器、５０…バッファ、５１…ＣＰＵ、５４…システムバス、５５…ネットワークインタフェース、５６…クロック発振器、５７…カウンタ、５９…バッファ、６０…タイムスタンプ抽出器、６１…デコーダ、７１…ＣＰＵ、７５…ネットワークインタフェース、７６…クロック発振器、７７…カウンタ、７９…バッファ、８０…タイムスタンプ抽出器、８１…デコーダ
【図１】
0003591493.tif 000002
【図２】
0003591493.tif 000003
【図３】
0003591493.tif 000004
【図４】
0003591493.tif 000005
【図５】
0003591493.tif 000006
【図６】
0003591493.tif 000007
【図７】
0003591493.tif 000008
【図８】
0003591493.tif 000009
【図９】
0003591493.tif 000010
【図１０】
0003591493.tif 000011
【図１１】
0003591493.tif 000012
【図１２】
0003591493.tif 000013
【図１３】
0003591493.tif 000014
【図１４】
0003591493.tif 000015
【図１５】
0003591493.tif 000016
【図１６】
0003591493.tif 000017
【図１７】
0003591493.tif 000018
【図１８】
0003591493.tif 000019