(57)【特許請求の範囲】
【請求項１】
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムであり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有し、
前記サーバリストによって選択されたマスターサーバは、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行する構成を有し、
前記スレーブサーバは、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システム。
【請求項２】
前記サーバリストは、
同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする請求項１に記載のデータ通信システム。
【請求項４】
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ受信装置であり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有することを特徴とするデータ受信装置。
【請求項５】
前記サーバリストは、
同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする請求項４に記載のデータ受信装置。
【請求項６】
前記データ受信装置は、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較部と、
前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部と、
を有する構成であることを特徴とする請求項４に記載のデータ受信装置。
【請求項７】
前記データ受信装置は、
前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Ａを算出するとともに、
前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Ｂを算出するタイムスタンプ比較部と、
前記差異Ａに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Ａと、前記差異Ｂとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする請求項４に記載のデータ受信装置。
【請求項８】
前記複数のサーバ中、少なくとも１つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の１つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、
前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする請求項４に記載のデータ受信装置。
【請求項９】
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ通信方法であり、
前記データ受信装置において、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行し、
前記サーバリストによって選択されたマスターサーバにおいて、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行し、
前記スレーブサーバにおいて、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法。
【請求項１０】
前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする請求項９に記載のデータ通信方法。
【請求項１１】
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおける受信データ制御処理方法であり、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を有することを特徴とする受信データ制御処理方法。
【請求項１２】
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を具備することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、ストリーミングデータ転送における同期処理の改善を図ったデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等のデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。ダウンロード型伝送方式においては、映像ファイルや音声ファイルといったマルチメディアデータを伝送する場合、配信サーバからデータファイルを一旦受信側端末の記憶媒体にダウンロードして、その後、記憶媒体から再生することになる。よって、この方式ではファイルを完全に転送が終わるまでは再生できず、長時間再生やリアルタイム再生などには不向きである。
【０００３】
一方、後者のストリーム型伝送方式では、送信側から受信端末にデータ転送が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議・ビデオオンデマンドといったインターネットサービスに利用されている。
【０００４】
ストリーム型伝送方式は、例えば画像データのＭＰＥＧ圧縮処理により生成されるＭＰＥＧストリームをＩＰ（Internet Protocol）パケットに格納してインターネット上を転送させて、ＰＣやＰＤＡ、携帯電話等の各通信端末において受信するシステム等において使用され、開発が進んでいる。このような技術は、ビデオオンデマンドやライブ映像のストリーミング配信、あるいはビデオ会議、テレビ電話などのリアルタイム通信において有効となる。
【０００５】
このようなストリーム型伝送方式に適したインターネット技術に、IETF RFC1889で規定されているプロトコル：ＲＴＰ(Realtime Transport Protocol)がある。ＲＴＰに従ったデータ転送では、時間情報としてパケットにタイムスタンプを付加し、タイムスタンプの参照により送信側と受信側の時間的関係の把握を行ない、データ受信側において、パケット転送の遅延ゆらぎ（ジッター）などの影響を受けずに同期をとった再生を可能としている。
【０００６】
このようなパケットを利用したデータ転送において、複数の異なるデータ配信サーバから異なるデータをそれぞれ配信して１つの受信端末において、これらの複数信号の同期した再生を行なうシステムがある。例えば画像データと音声データとを異なるデータ配信サーバから送信し、ＰＣ、携帯端末等の受信端末装置においてこれらの信号を受信して、画像データと音声データとの同期をとった再生を実行するような構成である。
【０００７】
インターネットにおいて、データ送信サイトから受信端末へ、データをストリーミング配信して、受信端末において再生しようとするとき、データ送信サイトと受信端末のシステムクロックが同期している場合は、メディア再生が時間のずれなく可能となるが、データ送信サイトと受信端末のシステムクロックが同期していない場合、データ送信サイトのデータ転送レートと受信端末のデータ出力レートが異なることになり、受信端末においてデータ一時保管用のバッファのデータ溢れによる受信データの蓄積不能、すなわちバッファオーバーフローが生じたり、再生用データの受信、バッファ蓄積が間に合わない、すなわちバッファアンダーランが生じることがある。
【０００８】
データ受信端末では、これらのエラー回復処理として、例えばバッファアンダーランの場合は、受信端末において同じ情報を再度表示あるいは出力し、また、バッファオーバーフローの場合には、一旦受信したものの蓄積不能として廃棄したパケットの再送要求をデータ送信サイトに要求するなどの処理を実行しなくてはならない状態に陥る。また、このとき、送信者側でのメディアの送信時刻と、受信者側での再生時刻が異なるなどの不都合が生じる。
【０００９】
複数のデータ送信サイトから複数の受信端末へそれぞれ、複数の異なるメディア、例えば画像データと音声データとをストリーミング配信して、受信端末においてこれら複数のメディアの同期再生を実行しようとするとき、上記のバッファオーバーフロー、バッファアンダーフローの問題が複数のメデイア配信サイトと受信端末間でそれぞれ発生し、さらに、複数の配信メディア間のずれという新たな問題が発生することになる。
【００１０】
それぞれ異なるメディア（例えば画像、音声）を配信する複数のデータ送信サイト間のシステムクロック（サンプリングレート）が同期していることが保証されない場合は、複数のデータ送信サイトからそれぞれ配信されるメディア間の時間関係を受信者側で再現することが不可能であり、メディア間の同期が取れないという事態が発生する。
【００１１】
このような複数の異なるデータ配信サイト（サーバ）から受信する複数の異なるデータ（メディア）を同期再生するための構成が種々、提案されている。例えば、特開平６−３０３２５４には、ＡＴＭ網クロックを利用してデータ配信サーバのクロック（ソースクロック）をデータ受信装置としての再生側で再生可能とするソースクロック再生回路をデータ受信端末に構成して、メディア間同期を実現する構成を開示している。しかし、この方法では、データ受信端末は、同期処理のために常にＡＴＭ網のクロックを受信しなくてはならないという問題がある。
【００１２】
さらに、特開平１１−６９３２７では、ビデオ信号と、音声信号の同期再生を実現するために、ビデオ信号の再生タイミングに合わせて音声信号の再生タイミングを調整し、特に、音声信号の無音状態を検知し、その無音時に音声情報の出力時刻を変更するスライド処理を実行することにより音声の途切れないメディア間同期を実現する構成を開示している。しかし、この方法は、画像信号の大幅な遅れによる音声情報のバッファ溢れ、すなわちバッファオーバーフローの問題は何ら解決されない。また、音声信号のスライドを無音部分で行なおうとする構成は、無音部分の少ない音楽などのメディアには適用することができない。
【００１３】
さらに、特開平９−５５７５４では、各メディアの送信端末が、送信端末から受信端末までのデータ伝送時間を計測して、データとともに伝送時間情報を受信端末に送信し、受信端末において、各データ送信端末からの伝送時間情報中、最も長い最長伝送時間情報を選択して、最長伝送時間に従って送信されるデータの再生に合わせて、他のデータ再生処理を遅らせて各メディア間の同期再生を実現する構成を開示している。しかし、この手法では、各送信端末は、送信端末から受信端末までのデータ伝送時間を計測して受信端末に送信する処理が必要となり、また、受信端末では、複数の送信端末から受信する伝送時間情報を解析する処理が必要となり、常に遅延時間を監視しなくてはならないという問題がある。
【００１４】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、例えばインターネット等のデータ通信網を介してストリーミングデータを転送する構成において、複数のデータ送信サイトとしてのデータ送信サーバから送信されるデータ（メディア）の受信端末における同期再生を、複数サーバ間の処理に基づいて実現するデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明の第１の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムであり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有し、
前記サーバリストによって選択されたマスターサーバは、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行する構成を有し、
前記スレーブサーバは、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システムにある。
【００１７】
さらに、本発明のデータ通信システムの一実施態様において、前記サーバリストは、同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする。
【００２０】
さらに、本発明のデータ通信システムの一実施態様において、前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする。
【００２７】
さらに、本発明の第４の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ受信装置であり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有することを特徴とするデータ受信装置にある。
【００２８】
さらに、本発明のデータ受信装置の一実施態様において、前記サーバリストは、同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする。
【００２９】
さらに、本発明のデータ受信装置の一実施態様において、前記データ受信装置は、マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較部と、前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部と、を有する構成であることを特徴とする。
【００３０】
さらに、本発明のデータ受信装置の一実施態様において、前記データ受信装置は、前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Ａを算出するとともに、前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Ｂを算出するタイムスタンプ比較部と、前記差異Ａに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Ａと、前記差異Ｂとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする。
【００３１】
さらに、本発明のデータ受信装置の一実施態様において、前記複数のサーバ中、少なくとも１つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の１つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする。
【００３２】
さらに、本発明の第５の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ通信方法であり、
前記データ受信装置において、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行し、
前記サーバリストによって選択されたマスターサーバにおいて、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行し、
前記スレーブサーバにおいて、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法にある。
【００３７】
さらに、本発明のデータ通信方法の一実施態様において、前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする。
【００４０】
さらに、本発明の第７の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおける受信データ制御処理方法であり、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を有することを特徴とする受信データ制御処理方法にある。
【００４４】
さらに、本発明の第９の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
同期再生処理対象となる異なるデータを送信する複数のサーバから１つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を具備することを特徴とするコンピュータ・プログラムにある。
【００４５】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００４６】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００４７】
【発明の実施の形態】
［システム及びデータ送受信概要］
まず、図１を参照して、本発明のシステム概要及びデータ送受信処理の概要について説明する。
【００４８】
図１のデータ通信システムにおいて、マスターメディアの送信を実行するマスターサーバ１２０、スレーブメディアの送信を実行するスレーブサーバ１３０は、それぞれ異なるメディア、例えば画像メディアと、音声メディア等、異なるデータを送信するサーバであり、データ受信端末１４０、１５０に対してそれぞれのメディア・データをパケット通信網１１０を介して送信する。データ受信端末１４０、１５０では、マスターサーバ１２０、スレーブサーバ１３０から受信するメディア（データ）を受信し、同期再生を実現する。
【００４９】
これらのデータ転送は、ストリーム型伝送方式により実行され、マスターサーバ１２０、スレーブサーバ１３０からデータ受信端末１４０、１５０に対するデータ転送処理と並列してデータ受信端末１４０、１５０におけるデータ再生処理が実行される。
【００５０】
図１に示す構成において、マスターサーバ１２０、スレーブサーバ１３０、受信端末１４０，１５０の各々は、それぞれ独自のシステムクロック１２５，１３５，１４５，１５５を有し、これらの各システムクロック１２５，１３５，１４５，１５５の各々は同期せずに動作しているものとする。
【００５１】
なお、マスターサーバ１２０、スレーブサーバ１３０は、初期的にはどちらがマスターであるかスレーブであるかの区別はなく、データ受信端末に対するメディア配信のためのデータ受信端末とのセッション確立後に、データ受信端末から各サーバに対して送付されるサーバリストに基づいて、マスターであるかスレーブであるかが設定される。
【００５２】
なお、１つのデータ配信アプリケーションシステムにつき、マスターサーバは１つ設定され、マスターサーバに並列して異なるメディアを送信する１以上のサーバがスレーブサーバとして設定される。本実施例ではスレーブサーバは１台であるが、２台以上のスレーブサーバを設定する構成としてもよい。
【００５３】
例えば音声と動画を２つのメディアとしてそれぞれ異なるサーバから送信し、受信端末において、音声と動画を合わせて再生するシステム例を想定すると、データ受信端末から各サーバに対して送付されるサーバリストには、音声をストリーミング配信するサーバをマスターサーバ、動画をストリーミング配信するサーバをスレーブサーバとした設定情報を格納するか、あるいはその逆の設定情報を格納して各サーバに送付する。
【００５４】
データ受信端末からサーバリストを受信した各データ配信サーバは、自己がマスターサーバであるかスレーブサーバであるかをリストに基づいて識別する。
【００５５】
データ受信端末からのサーバリストにより、自己がマスターサーバであると指定されている場合は、マスターサーバとしての処理、すなわち、自己のシステムクロックに基づく転送レートに従ったデータ受信端末に対するマスターメディアのデータ配信を実行するとともに、サーバリストにリストアップされたスレーブサーバに対してタイムスタンプを付加したパケット（同期パケット）を定期的に送信する。
【００５６】
一方、データ受信端末からのサーバリストにより、自己がスレーブサーバであると指定されている場合は、スレーブサーバとしての処理、すなわち、マスターサーバから受信する同期パケットに基づいて、データ受信端末に対するデータ転送レートを、マスターサーバのシステムクロックに同期するように変更する処理を実行して、データ受信端末に対するスレーブメディアのデータ配信を実行する。
【００５７】
なお、図１に示す例では、データ受信端末１４０、１５０の２つの端末のみを示しているが、１以上の任意数の受信端末が存在可能であり、任意数の端末において、マスターサーバ１２０、スレーブサーバ１３０からのデータ受信処理を行なう構成が可能である。ただし、この場合、複数のデータ受信端末から異なるサーバリストが各サーバに配信される可能性があるが、各サーバに最初に到着したリストに従って、マスターサーバ、スレーブサーバの設定を行なう等のリスト選別処理によって１つのリストを選択採用して、１つのサーバリストに基づいてマスターサーバ、スレーブサーバの設定を実行する。
【００５８】
［データ受信端末装置の構成および処理］
次に、マスターサーバからマスターメディアを受信し、スレーブサーバからスレーブメディアを受信して、受信した複数のメデイアの同期再生処理を実行するデータ受信端末装置の構成および処理について説明する。
【００５９】
図２にデータ受信端末装置の構成を説明するブロック図を示す。なお、図２においては、マスターサーバからの受信データ処理部と、スレーブサーバからの受信データ処理部とを区別して示してあるが、これは、理解を容易にするために区別して記載したものであり、同一機能を実行する複数の処理部は、単一の処理部として構成して両受信データの処理を実行する構成としてもよい。
【００６０】
図２のデータ受信端末装置の構成に従ってデータ再生処理について説明する。データ受信端末４００は、マスターサーバ１２０として設定されたサーバからのマスターメディア格納パケットをデータ受信部４１１において受信するとともに、スレーブサーバ３００として設定されたサーバからのスレーブメディア格納パケットをデータ受信部４２１において受信する。それぞれの受信パケットは、それぞれのバッファ４１２，４２２に格納される。
【００６１】
メディア格納パケットは、画像、音声等の各種メディアをペイロードとしたパケットであり、マスターサーバがマスターメディアを格納したパケットを生成してデータ受信端末に送信し、スレーブサーバがスレーブメディアを格納したパケットを生成してデータ受信端末に送信する。各サーバが送信するメディアは、例えばビデオカメラによって取得された画像、音声データ、ＣＤ，ＤＶＤ等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等である。これらのデータは、符号化、例えばＭＰＥＧ圧縮処理等による符号化がなされて、パケットに格納された構成であってもよい。
【００６２】
データ受信端末が各サーバから受信するパケットは、例えば、リアルタイム・トランスポート・プロトコル：ＲＴＰ（Real-time Transport Protocol）に従ったデータ・パケット（以下パケットと称する）である。
【００６３】
パケットは、画像、音声データ等の各種メディア（例えば符号化データ）をペイロードデータとし、ＲＴＰヘッダを付加しパケット化されたものである。ＲＴＰパケット構成を図３に示す。ＲＴＰヘッダには、バージョン番号（ｖ）、パディング（Ｐ）、拡張ヘッダ（Ｘ）の有無、送信元数（Ｃｏｕｎｔｅｒ）、マーカ情報（Ｍ：ｍａｒｋｅｒ  ｂｉｔ）、ペイロードタイプ（Ｐａｙｌｏａｄ  ｔｙｐｅ）、シーケンス番号、タイムスタンプ、同期ソース（送信元）識別子（ＳＳＲＣ）および貢献ソース（送信元）識別子（ＣＳＲＣ）の各フィールドが設けられている。データ受信側において、ＲＴＰヘッダに付与されたタイムスタンプによりＲＴＰパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御を行なうことが可能となる。なお、例えば動画像データの符号化データを格納したＲＴＰパケットにおいては、１つの画像フレームに属する複数のＲＴＰパケットに共通のタイムスタンプが設定される。
【００６４】
なお、タイムスタンプは、各サーバ、すなわち各メディアを送信するマスターサーバおよびスレーブサーバ各々のシステムクロックの制御の下に設定されるサンプリングレート基づいて各パケット（例えばＲＴＰパケット）に付与される。例えば、サーバのシステムクロック２０６が９０ＫＨｚクロックのクロックであるとき、動画像データについて、３０ｆｐｓ（フレーム／秒）のレートでサンプリングして符号化データをＲＴＰパケットに格納して送信すると仮定すると、ＲＴＰパケットのタイムスタンプの値は、９０Ｋ/３０＝３０００ずつカウントアップされ、第ｎフレームの符号化データを格納したパケットに設定されるタイムスタンプが１２０００であるとき、ｎ＋１フレームのデータを格納したパケットのタイムスタンプは１５０００として設定する等の手法により、各ＲＴＰパケットにタイムスタンプが付与される。
【００６５】
ＲＴＰヘッダを付加されたパケットはさらにＩＰヘッダが付与される。図４にＩＰパケットの構成中のＩＰヘッダの詳細を示す。ＩＰｖ４、ＩＰｖ６等のバージョンを示すバージョン、ヘッダ長、さらに、優先度情報を格納したＴＯＳ（Type of Service）フィールド、パケットの長さ、パケットの識別子、ＩＰ層でのデータ分割（フラグメント）に関する制御情報としてのフラグ、分割（フラグメント）されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すＴＴＬ（Time to Live）、上位層で利用されるプロトコル（４：ＩＰ，ＴＣＰ：７，ＵＤＰ：１７…）ヘッダのチェックサム、送信元ＩＰアドレス、宛て先ＩＰアドレスを有する。
【００６６】
各サーバにおいて生成されたパケットは、インターネット等のパケット通信網１１０を介してデータ受信端末に送信される。
【００６７】
マスターサーバ１２０から送信されバッファ４１２に格納されたマスターメディア格納パケットは、タイムスタンプ比較部４１３において、各パケットに設定されたタイムスタンプ情報が取り出され、マスターサーバ１２０から受信する各パケットのパケット受信間隔と、各パケットに設定されたタイムスタンプとの差が比較される。パケット受信間隔は、データ受信端末のシステムクロック４５０から供給されるクロック情報に従って計測される。
【００６８】
マスターメディアを格納したパケットに設定されるタイムスタンプは、マスターサーバ１２０のシステムクロック１２５に基づいて設定されるタイムスタンプであり、設定されたタイムスタンプとパケット受信間隔とが対応するべきであるが、データ受信端末４００のシステムクロック４５０は、マスターサーバ１２０のシステムクロック１２５との同期がとれていないものであり、マスターサーバ１２０のシステムクロック１２５に基づいて設定される各パケットのタイムスタンプの差と、データ受信端末４００のシステムクロック４５０によって計測されるパケット受信間隔にはずれが発生する。このずれは、データ受信端末４００のシステムクロック４５０と、マスターサーバ１２０のシステムクロック１２５との差に相当する。
【００６９】
データ受信端末４００では、データ受信端末４００のシステムクロック４５０と、マスターサーバ１２０のシステムクロック１２５との差を考慮してデータ再生を実行する。このクロック差を考慮しないで、データ再生を実行すると、例えばデータ受信速度より早い再生を実行すると、バッファ４１２のデータの不足、すなわちバッファのアンダーランが発生し、データ受信速度より遅い再生を実行すると、バッファ４１２のデータ溢れ、すなわちバッファのオーバーフローが発生することになる。
【００７０】
タイムスタンプ比較部４１３において算出されたデータ受信端末４００のシステムクロック４５０と、マスターサーバ１２０のシステムクロック１２５との差分を示す情報は、マスターメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部４１４、およびスレーブメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部４２４の双方に出力され、それぞれのメデイアに関するサンプリングレート設定処理が実行される。
【００７１】
すなわち、マスターメディア、スレーブメディア双方のデータ再生は、タイムスタンプ比較部４１３において算出されたデータ受信端末４００のシステムクロック４５０と、マスターサーバのシステムクロックとの差分に基づくデータ出力時刻調節処理によって実行されることになる。
【００７２】
図５を参照してマスターメディアのサンプリングレート設定処理について説明する。図５に示す例は、マスターサーバが１０ｍｍ秒毎に１つのデータ処理単位（例えば画像フレーム）のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間（ｔ）であり、各処理単位パケットには、マスターサーバ１２０のシステムクロック１２５に基づいて設定されたタイムスタンプ［１０〜４０］が設定されている。マスターサーバ１２０は、付加するタイムスタンプを１ｍｍ秒毎に１づつインクリメントしており、図に示す最初の処理単位パケットには、１０のタイムスタンプが設定され、後続の処理単位パケットには、１０ｍｍ秒後に出力されるので、１０＋１０＝２０のタイムスタンプが設定される。以下、３０、４０とタイムスタンプが設定されたパケットが送信される。
【００７３】
一方、このパケットデータを受信するデータ受信端末４００では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部４１３で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ［４０］の設定されたパケットは、タイムスタンプ［１０］の設定されたパケット受信から、３０ｍｍ秒後に受け取るはずである。しかし、データ受信端末４００のシステムクロック４５０の供給クロックに基づいてタイムスタンプ比較部４１３における測定結果として、タイムスタンプ［１０］の設定パケットからタイムスタンプ［４０］の設定パケットの到着間隔が３５ｍｍ秒として計測されたとする。
【００７４】
これは、データ受信端末４００のシステムクロック４５０がマスターサーバ１２０のシステムクロック１２５に対して、（到着時刻間隔／タイムスタンプの差）だけ、すなわち、３５／３０だけ早いことに起因するものであると判定される。
【００７５】
この状態で、データ受信端末４００がデータ受信端末４００のシステムクロック４５０に基づいてマスターサーバ１２０から受信するマスターメディアを再生すると、データ受信端末４００のクロック差に起因して、マスターサーバ１２０のパケット転送レートよりも早いスピードで再生することになり、データ受信端末４００のマスターメディアのバッファ４１２がアンダーランしてしまう。
【００７６】
アンダーランの発生を防ぐためには、データ受信端末４００における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末４００のサンプリングレート設定部４１４は、データ受信端末４００のシステムクロック４５０と、マスターサーバのシステムクロックとの差に基づいて、再生時のサンプリングレートを変更する。この場合は、サンプリングレートを３５／３０に変更する処理を実行する。
【００７７】
この変更したサンプリングレートに基づいて出力時刻調節部４１５が各パケットの出力処理部４１６に対する出力タイミングを決定し出力することで、マスターサーバ１２０のシステムクロック１２５に同期したマスターメディア再生処理が実行される。
【００７８】
出力処理部４１６は、バッファ４１２から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。
【００７９】
データ受信端末４００には、さらに、マスターサーバ１２０へ、マスター／スレーブの設定情報としてのサーバリスト、さらに、制御パケットとして応答確認を示すＡＣＫパケット、再送要求等のパケット、あるいはセッション開始要求等を送信するためのデータ送信部４１７を有する。
【００８０】
一方、スレーブサーバ１３０から受信し、バッファ４２２に格納されたスレーブメディアを格納したパケットの出力時刻調節は、サンプリングレート設定部４２４の設定するサンプリングレートに基づいて行われる。
【００８１】
図６を参照してスレーブメディアのサンプリングレート設定処理について説明する。図６に示す例は、スレーブサーバ１３０が２０ｍｍ秒毎に１つのデータ処理単位（例えば画像フレーム）のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間（ｔ）であり、各処理単位パケットには、スレーブサーバ１３０のシステムクロック１３５に基づいて設定されたタイムスタンプ［３０〜９０］が設定されている。スレーブサーバは、付加するタイムスタンプを１ｍｍ秒毎に１づつインクリメントしており、図に示す最初の処理単位パケットには、３０のタイムスタンプが設定され、後続の処理単位パケットには、２０ｍｍ秒後に出力されるので、３０＋２０＝５０のタイムスタンプが設定される。以下、７０、９０とタイムスタンプが設定されたパケットが送信される。
【００８２】
一方、このパケットデータを受信するデータ受信端末４００では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部４２３で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ［９０］の設定されたパケットは、タイムスタンプ［３０］の設定されたパケット受信から、６０ｍｍ秒後に受け取るはずである。しかし、データ受信端末４００のシステムクロック４５０の供給クロックに基づいてタイムスタンプ比較部４２３における測定結果として、タイムスタンプ［３０］の設定パケットからタイムスタンプ［９０］の設定パケットの到着間隔が８０ｍｍ秒として計測されたとする。
【００８３】
これは、データ受信端末４００のシステムクロック４５０がスレーブサーバ１３０のシステムクロック１３５に対して、（到着時刻間隔／タイムスタンプの差）だけ、すなわち、８０／６０だけ早いことに起因するものであると判定される。
【００８４】
この状態で、データ受信端末４００がデータ受信端末４００のシステムクロック４５０に基づいてスレーブサーバから受信するスレーブメディアを再生すると、データ受信端末４００のクロック差に起因して、スレーブサーバ１３０のパケット転送レートよりも早いスピードで再生することになり、データ受信端末４００のスレーブメディアのバッファ４２２がアンダーランしてしまう。
【００８５】
アンダーランの発生を防ぐためには、データ受信端末４００における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末４００のサンプリングレート設定部４２４は、データ受信端末４００のシステムクロック４５０と、スレーブサーバのシステムクロック２０６との差に基づいて、再生時のサンプリングレートを変更することが必要となる。この場合は、サンプリングレートを８０／６０に変更する処理を実行することで、スレーブサーバのシステムクロック２０６に同期した再生が可能となる。
【００８６】
しかし、この処理では、マスターサーバから受信するマスターメディアをマスターサーバのシステムクロックに同期させて再生し、スレーブサーバから受信するスレーブメディアをスレーブサーバのシステムクロックに同期させて再生することになる。しかし、マスターサーバのシステムクロックと、スレーブメディアをスレーブサーバのシステムクロックとは同期しておらず、マスターメディアとスレーブメディアの同期した再生は不可能となる。
【００８７】
ここで、マスターメディアとスレーブメディアの同期した再生を行なうため、スレーブメディアの再生をマスターサーバのシステムクロックを基準として再生を行なう。サンプリングレート設定部４２４は、データ受信端末４００のシステムクロック４５０と、スレーブサーバ１３０のシステムクロック１３５との差に基づくサンプリングレート変更用データとしての［８０／６０］と、受信端末４００のシステムクロック４５０と、マスターサーバ１２０のシステムクロック１２５との差に基づくサンプリングレート変更用データとしての［３５／３０］との両データを用いて、スレーブメディアのサンプリングレートを［（３５／３０）／（８０／６０）］を設定する処理を実行する。
【００８８】
このサンプリングレート［（３５／３０）／（８０／６０）］に基づいて出力時刻調節部４２５がスレーブメディアを格納したパケットを保持したバッファ４２２から順次、パケットを出力処理部４２６に出力する。出力処理部４２６は、バッファ４２２から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。この処理により、マスターサーバ１２０のシステムクロック１２５に同期したスレーブメディア再生処理が実行される。
【００８９】
上記処理の結果、マスターメディア、スレーブメディアの双方ともマスターサーバ１２０のシステムクロック１２５に同期した再生が行なわれ、異なるサーバから送信される異なるメディアの同期再生が実現される。
【００９０】
しかし、この状態で再生を継続すると、マスターメディアの再生は、マスターサーバ１２０のシステムクロック１２５に基づいて再生されるので、マスターメディアを格納したバッファ４１２には、オーバーフロー、アンダーフローの問題は生じないが、スレーブメディアを格納したバッファ４２２には、オーバーフロー、アンダーフローの問題が生じることになる。なぜなら、受信端末の再生サンプリングレートは、スレーブサーバ１３０のシステムクロック１３５に基づくサンプリングレートと一致していないからである。
【００９１】
この不一致を解消するために、本発明のシステムでは、サーバリストによって設定されたマスターサーバ１２０が定期的にスレーブサーバに対して同期パケットを送信する。同期パケットには、スレーブサーバがデータ受信端末に対して送信するデータの転送レートをマスターサーバのシステムクロックに同期させるための情報が格納され、スレーブサーバは、この情報に基づいて転送レートを変更する処理を実行する。これらの処理については、後段で説明する。
【００９２】
次に、図７を参照して、データ受信端末において実行するデータ配信各サーバとのセッション確立処理、各サーバに対するサーバリストの送信処理手順について説明する。
【００９３】
ステップＳ１０１では、例えば音声情報を伴う動画像配信アプリケーションの実行セッション、音声情報、字幕情報を伴う動画像配信アプリケーションの実行セッション等、様々なセッションに対して設定されたセッション記述ファイルを取得し、そのセッション記述ファイルからアプリケーション実行に必要となるセッション確立サーバ、すなわち画像、音声、字幕情報等の各種メディアを送信するデータ送信サーバの情報を取得し、各メディアを送信する複数のサーバから１つのマスターサーバを決定する。セッション記述ファイルは、例えば下記に示す情報からなる。
【００９４】
v=0
o=- 2890844526 2890842807 IN IP4 192.16.24.202
s=RTSP Session
m=audio 0 RTP/AVP 0
a=control:rtsp://10.0.1.1/twister/audio.en
m=video 0 RTP/AVP 33
a=control:rtsp://10.0.1.2/twister/video
【００９５】
上記セッション記述ファイルの例は、音声（ａｕｄｉｏ）と、画像（Ｖｉｄｅｏ）の配信サーバについてのアドレス情報、配信するデータがＲＴＰパケットによって配信されこと、制御情報がＲＴＳＰに従って配信されること等、セッションの基本情報を示すものである。
【００９６】
データ受信端末は、例えば上記の如きセッション記述ファイルから、画像、音声、字幕情報等の各種メディアを送信するデータ送信サーバの情報を取得し、各メディアを送信する複数のサーバから１つのマスターサーバを決定する。設定した１つのマスターサーバ以外のすべてのサーバはスレーブサーバとして設定される。
【００９７】
ステップＳ１０２では、データ受信端末は、設定したマスターサーバ、およびスレーブサーバとの間でセッション確立処理を実行する。セッション確立処理には、例えばＲＴＳＰ(Real Time Streaming Protocol)等が適用可能である。データ受信端末は、各サーバとのセッション確立の過程で，サーバのポート（port）番号、セッションＩＤ（Session ID）等の情報を取得する。
【００９８】
ステップＳ１０３では、セッション記述ファイル、およびセッション確立処理において取得した情報に基づいて、サーバリストを生成し、生成したリストをサーバリスト保持部４６０に格納する。
【００９９】
サーバリストの例を図８に示す。図８の例に示すように、リストは、各メディアを送信するサーバのＩＰアドレス、画像、音声等のメディアの種類をコードとして示したメディアタイプ、各サーバのポート番号、およびセッションＩＤの各情報、および、データ受信端末の設定したマスター／スレーブの区別（Ｍ／Ｓ）の設定情報からなる。
【０１００】
リストの上段がマスターサーバとして設定されたサーバであり、マスターサーバのポート番号は１０８０、セッションＩＤは２２２０３、スレーブサーバのポート番号は２２４４、セッションＩＤは４４４４１である。このような各サーバの情報がサーバリストとして生成され、サーバリスト保持部４６０に格納される。なお、サーバリストのＩＰアドレスと、メディアタイプは、セッション記述ファイルから取得可能なデータである。
【０１０１】
次に、データ受信端末は、ステップＳ１０４において、サーバリストに含まれる各サーバ、すなわち１つのマスターサーバ、１つ以上のスレーブサーバに対して、サーバリストを送信する。サーバリストには、マスター／スレーブの設定情報が含まれ、サーバリストを受信した各サーバは、自己の設定がマスターであるかスレーブであるかをリストに基づいて判定する。
【０１０２】
次に、ステップＳ１０６において、データ受信端末は、マスターサーバからマスターメディアを受信し、スレーブサーバからはスレーブメディアを受信し、各受信メディアの同期再生を実行する。
【０１０３】
各サーバからのメデイア、例えば画像データ、音声データ等のメディアは先に説明したタイムスタンプを付与したＲＴＰパケットに格納されて順次送信され、データ受信端末は、これらのパケットを受信し、再生処理を実行する。
【０１０４】
再生処理の手順について、図９の処理フローを参照して説明する。データ受信端末は、サーバから受信するＲＴＰパケットに設定されたタイムスタンプの比較処理を予め定めた時間間隔毎に行なう。バッファオーバーフローや、アンダーフローは、データ送信側と再生側の非同期状態が所定時間継続した場合に発生する問題であるから、所定間隔毎に行なえば十分であり、例えば５分間隔にタイムスタンプの比較処理を実行する。ステップＳ２０１は、このタイムスタンプ比較時間を設定したタイマの更新処理ステップであり、ステップＳ２０２のタイムスタンプ比較時間に達するまで、タイマの更新を行なう。
【０１０５】
ステップＳ２０２でタイマがタイムスタンプの比較処理間隔、例えば５分に達したとき、ステップＳ２０３に進む。ステップＳ２０３では、マスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【０１０６】
ステップＳ２０４では、ステップＳ２０３で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、マスターメディアのサンプリングレートを設定する。マスターメディアの再生は、この設定されたサンプリングレートに基づいて実行される。
【０１０７】
次に、ステップＳ２０５では、スレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【０１０８】
ステップＳ２０６では、ステップＳ２０５で算出したスレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差、および、ステップＳ２０３で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、スレーブメディアのサンプリングレートを設定する。スレーブメディアの再生は、この設定されたサンプリングレートに基づいて実行される。
【０１０９】
ステップＳ２０７では、上記処理により設定されたサンプリングレートに従って、マスターメディアとスレーブメディアの同期再生を実行する。
【０１１０】
以上の処理で、データ受信端末は、マスターメディアとスレーブメディアの同期再生が可能となる。なお、スレーブサーバは、後述するマスターサーバから定期的に受信する同期パケットに基づいて、スレーブメディアのデータ受信端末に対するデータ転送レートをマスターサーバのシステムクロックに同期させるレート変更処理を実行しているので、その結果、マスターサーバのデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【０１１１】
なお、上述の実施例では、１つのスレーブサーバに対する処理のみを示しているが、１つのマスターサーバに対して複数のスレーブサーバがある場合も、サーバリストに従って選択された１つのマスターサーバは、複数のスレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、１つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、１つのマスターサーバと複数のスレーブサーバからそれぞれ１つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【０１１２】
［サーバの構成および処理］
（サーバ構成）
次にマスターメディア、またはスレーブメディアの送信処理を実行する図１におけるマスターサーバ１２０、またはスレーブサーバ１３０の構成および処理について説明する。まず、サーバの構成について、図１０を参照して説明する。前述したように、サーバは、初期的には、マスターメディアを送信するマスターサーバとなるか、スレーブメディアを送信するスレーブサーバとなるかの設定はなされておらず、これらの設定は、先に図８を参照して説明したデータ受信端末から送信されるサーバリストに従って行なわれる。従って、各サーバは、マスターサーバとしての処理機能、スレーブサーバとしての処理機能をあわせ持つ構成を有する。
【０１１３】
図１０にサーバ２００の構成を説明するブロック図を示す。サーバ２００は、メディア供給部２０１、パケット生成部２０２、バッファ２０３、転送レート調節部２０４、データ送信部２０５、システムクロック２０６、サンプリングレート設定部２０７、データ受信部２０８、タイムスタンプ比較部２０９、転送レート変更情報格納部２１０、時刻情報付加部２１１を有する。
【０１１４】
メディア供給部２０１は、画像、音声等、送信すべきマスターメディアまたはスレーブメディアをパケット生成部に供給する。メディアは、例えばビデオカメラによって取得された画像、音声データ等である。なお、メディアは、ＣＤ，ＤＶＤ等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等であってもよい。なお、ここでは省略してあるが、これらのデータは、符号化、例えばＭＰＥＧ圧縮処理等による符号化がなされて、パケット生成部２０２に供給され、パケット生成部２０２において、符号化データをペイロードとして格納したパケットが生成される。
【０１１５】
パケット生成部２０２で生成するパケットは、例えば先に図３を参照して説明した、リアルタイム・トランスポート・プロトコル：ＲＴＰ（Real-time Transport Protocol）に従ったデータ・パケット（以下パケットと称する）である。
【０１１６】
パケット生成部２０２は、メディア供給部２０１から供給されるデータ（例えば符号化データ）をペイロードデータとし、ＲＴＰヘッダを付加しパケット化する。ＲＴＰパケット構成は図３に示す通りであり、ヘッダに、バージョン番号（ｖ）、パディング（Ｐ）、拡張ヘッダ（Ｘ）の有無、送信元数（Ｃｏｕｎｔｅｒ）、マーカ情報（Ｍ：ｍａｒｋｅｒ  ｂｉｔ）、ペイロードタイプ（Ｐａｙｌｏａｄ  ｔｙｐｅ）、シーケンス番号、タイムスタンプ、同期ソース（送信元）識別子（ＳＳＲＣ）および貢献ソース（送信元）識別子（ＣＳＲＣ）の各フィールドを有する。データ受信側において、ＲＴＰヘッダに付与されたタイムスタンプによりＲＴＰパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御を行なうことが可能となる。
【０１１７】
タイムスタンプは、図１０に示すシステムクロック２０６の制御の下にサンプリングレート設定部２０７の設定するサンプリングレートに基づいて各パケット（例えばＲＴＰパケット）に設定する。例えば、システムクロック２０６が９０ＫＨｚクロックのクロックであるとき、動画像データについて、３０ｆｐｓ（フレーム／秒）のレートでサンプリングして符号化データをＲＴＰパケットに格納して送信すると仮定すると、ＲＴＰパケットのタイムスタンプの値は、９０Ｋ/３０＝３０００ずつカウントアップされ、第ｎフレームの符号化データを格納したパケットに設定されるタイムスタンプが１２０００であるとき、ｎ＋１フレームのデータを格納したパケットのタイムスタンプは１５０００として設定する。ＲＴＰヘッダを付加されたパケットはさらにＩＰヘッダ（図４参照）が付与され、ヘッダに付された宛て先ＩＰアドレスに向けて送信されることになる。
【０１１８】
パケット生成部２０２において生成されたパケットは、バッファ２０３に格納された後、システムクロック２０６のクロック供給を受ける転送レート調節部２０４において、転送レートが制御され、データ送信部２０５を介してインターネット等のパケット通信網１１０に送出される。
【０１１９】
データ受信端末からサーバに向けて送付されるサーバリストに基づいて、マスターサーバとして設定された場合は、上記処理により、システムクロック２０６のクロック供給を受け、転送レート調節部２０４において転送レートが制御されることになるが、サーバリストに基づいて、スレーブサーバとして設定された場合には、データ受信部２０８がマスターサーバから受信する同期パケットに格納されたタイムスタンプと、システムクロック２０６において計測する同期パケット受信時刻との比較をタイムスタンプ比較部２０９において実行し、この比較処理の結果として算出されるマスターサーバと自己（スレーブ）サーバのクロック差データを転送レート変更情報格納部２１０に格納し、転送レート調節部２０４が、転送レート変更情報格納部２１０に格納されたマスターサーバと自己（スレーブ）サーバのクロック差データに基づく転送レート変更処理を実行する。
【０１２０】
スレーブサーバにおいては、マスターサーバのシステムクロックに同期したデータ転送を行なうように転送レートの変更処理が実行される。この処理については、後段で詳細に説明する。
【０１２１】
データ受信部２０８は、データ受信端末からのサーバリストの受信処理、さらに制御パケット、例えば応答確認としてのＡＣＫパケット、再送要求等のパケット、あるいはセッション開始要求を受信する処理を実行する。また、スレーブサーバである場合は、マスターサーバからの同期パケットの受信処理を実行する。
【０１２２】
転送レート調節部２０４の詳細構成を図１１に示す。転送レート調節部２０４は、サーバがマスターサーバとして設定された場合と、スレーブサーバとして設定された場合とでは異なる処理を実行する。以下、マスターサーバと、スレーブサーバとの処理について、それぞれ説明する。
【０１２３】
（１）マスターサーバとしての処理
まず、マスターサーバとして設定された場合の処理について説明する。最初に、マスターサーバとして設定された場合の転送レート調節部の処理について図１１を参照して説明する。カウンタ２２１は、システムクロック２０６のクロック供給を受け、クロック供給に応じてカウンタ値を増加させる。
【０１２４】
カウンタ補正部２２３は、自己がスレーブサーバである場合にカウンタ値を補正する処理を実行する。自己がスレーブサーバである場合、タイムスタンプ比較部が、マスターサーバから受信する同期パケットと、システムクロック２０６との差分データを算出し、この算出データを転送レート変更情報格納部２１０に格納する。カウンタ補正部２２３は、この格納情報を適用したカウンタ値補正を実行する。この補正処理については、後段で詳細に説明する。
【０１２５】
自己がマスターサーバとして設定されている場合は、マスターサーバから受信する同期パケットはなく、転送レート変更情報格納部２１０には差分データが格納されておらず、カウンタ補正部２２３は、カウンタ２２１からの入力カウンタ値：Ｃの補正処理を実行せず、カウンタ２２１からの入力カウンタ値：Ｃをそのまま、データ出力制御部２２２に出力する。
【０１２６】
データ出力制御部２２２は、カウンタ２２１のカウンタ値：Ｃに応じてバッファ２０３に格納されたパケットをデータ送信部に渡す処理を実行する。データ出力制御部２２２は、カウンタ２２１のカウンタ値：Ｃが、あらかじめ定められたカウンタ値：Ｖａに達したとき、バッファからパケットを順次取り出して、データ送信部２０５に出力する処理を実行する。
【０１２７】
マスターサーバとして設定された場合の転送レート調節部２０４の処理フローを図１２に示す。ステップＳ３０１においてカウンタ値＝０にリセットし、ステップＳ３０２においてカウンタ２２１をシステムクロックからのクロック供給に従ってインクリメントする。ステップＳ３０３において、カウンタ値と、予め定めた閾値：Ｖａと比較を実行して、カウンタ値＝Ｖａとなったことを条件として、ステップＳ３０４において、データ（パケット）をバッファ２０３から取り出して、データ送信部２０５へ出力し、ステップＳ３０５において、さらにバッファ２０３に送信対象の蓄積データ（パケット）があるか否かを判定し、ある場合は、ステップＳ３０１以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、転送レートが一定に保たれる。
【０１２８】
マスターサーバとして設定された場合におけるデータ送信処理の流れを図１３に示すフローチャートに従って説明する。まず、マスターサーバは、ステップＳ４０１において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(Ｓ４０２でＹｅｓ)すると、ステップＳ４０３へ進み、メディア供給部２０１から送信するメディア（データまたは符号化データ）をペイロードとしたパケットをパケット生成部において生成する。
【０１２９】
なお、このパケット生成においては、システムクロック２０６のクロック供給の下にサンプリングレート設定部２０７の設定したサンプリングレートに基づくタイムスタンプがパケットヘッダに設定される（図３参照）。
【０１３０】
ステップとＳ４０４では、パケット化されたデータをバッファ２０３に蓄積する。バッファ２０３に蓄積されたデータは、ステップＳ４０５において、図１２のフローを参照して説明したように、クロック２０６のクロック供給に従って増分されるカウンタ２２１のカウンタ値が所定値：Ｖａになる毎に順次、データ送信部に出力され、ステップＳ４０６において、データ送信部２０５からパケット通信網に出力される。
【０１３１】
さらに、ステップＳ４０７において、送信すべきデータの有無を判定し、有りの場合は、ステップＳ４０５以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップＳ４０７においてデータ終了を示すＥＯＳ（End of Stream）パケットを送信し、処理を終了する。
【０１３２】
次に、マスターサーバが実行するスレーブサーバに対する同期パケットの送信処理について説明する。同期パケットは、スレーブサーバからデータ受信端末に対するデータ送信を、マスターサーバのシステムクロックに同期した送信として実行するためのスレーブサーバにおける転送レート変更処理情報を格納したパケットである。
【０１３３】
図１４にマスターサーバが生成し、スレーブサーバに対して送信する同期パケットのフォーマット例を示す。同期パケットは、例えばＲＴＣＰ（Real-time Transport Control Protocol）に従って生成され、図１４に示すように、バージョン番号（ｖ）、パディング（Ｐ）、コマンド（ｃｏｍｍａｎｄ）であることを示すペイロードタイプ（Ｐａｙｌｏａｄ  ｔｙｐｅ）情報、メッセージ長、送信者同期ソース（送信元）識別子（ＳＳＲＣ）、さらに、この同期パケットによって転送レートを調節すべきアプリケーションを識別するためのアプリケーション名、さらに、時刻情報付加部２１１によって付加されるタイムスタンプを持つ。
【０１３４】
同期パケットのタイムスタンプは、初期的には、外部の時刻サーバとしてのＮＴＰ（Network Time Protocol）時刻（例えば３２ｂｉｔ）を時刻情報付加部２１１を介してパケット生成部２０２において同期パケットに設定し、その後の同期パケットには、マスターサーバのシステムクロック２０６で計測した時間間隔に基づく時刻情報を設定する。従って、マスターサーバが送信する複数の同期パケットのタイムスタンプ間隔は、マスターサーバのシステムクロックの計測時間に基づくデータとなる。
【０１３５】
マスターサーバは、図１４に示すフォーマットを持つ同期パケットを定期的、例えば５分間隔毎に生成してスレーブサーバに対して送信する。２つ以上のスレーブサーバが存在する場合は、全てのスレーブサーバに対して同様の同期パケットを定期的に送信する。
【０１３６】
マスターサーバで実行する同期パケットの送信処理について、図１５のフローを参照して説明する。ステップＳ５０１において、同期パケット転送間隔を計測するタイマを更新する。マスターサーバからスレーブサーバに対する同期パケットの送信は、所定時間間隔、例えば５分間隔に実行する。ステップＳ５０１は、この時間を設定したタイマの更新処理ステップであり、ステップＳ５０２の同期パケット転送時間に達するまで、タイマの更新を行なう。
【０１３７】
ステップＳ５０２でタイマが同期パケットの転送処理時刻に達したと判定されると、ステップＳ５０３に進む。ステップＳ５０３では、パケット生成部において、図１４を参照して説明したタイムスタンプを格納した同期パケットを生成し、ステップＳ５０４において、生成した同期パケットをスレーブサーバに対して送信する。
【０１３８】
（２）スレーブサーバとしての処理
次に、データ受信端末から受信するサーバリストによって、自己がスレーブサーバとして設定された場合の処理について説明する。最初に、スレーブサーバとして設定された場合の転送レート調節部の処理について図１１を参照して説明する。カウンタ２２１は、システムクロック２０６のクロック供給を受け、クロック供給に応じてカウンタ値を増加させる。
【０１３９】
カウンタ補正部２２３は、自己がスレーブサーバである場合にカウンタ値を補正する処理を実行する。スレーブサーバである場合、タイムスタンプ比較部２０９が、マスターサーバから受信する同期パケットと、システムクロック２０６との差分データを算出し、この算出データを転送レート変更情報格納部２１０に格納する。カウンタ補正部２２３は、この格納情報を適用したカウンタ値補正を実行する。
【０１４０】
スレーブサーバにおいて、マスターサーバから受信する同期パケットに基づくカウンタ補正処理について説明する。スレーブサーバは、先に図１４を参照して説明した同期パケットを受信すると、タイムスタンプ比較部２０９において、同期パケット受信時刻と同期パケットに付加されているタイムスタンプを記録する。さらに、その後マスターサーバから受信する同期パケットの受信時刻と、それに付加されていたタイムスタンプをさらに記録し、これら複数の受信同期パケットに関する記録情報に基づいてマスターサーバとスレーブサーバとのクロックの差を求める。クロックの差を求める方法について、図１６を参照して説明する。
【０１４１】
図１６は、横軸が時間軸であり、上段がマスターサーバにおける２つの同期パケットの送信間隔を示し、下段がスレーブサーバにおける２つの同期パケットの受信間隔を示している。それぞれの同期パケットには、タイムスタンプ＝１２００００、および１２０５００が設定されている。このタイムスタンプは、マスターサーバが設定したタイムスタンプであり、タイムスタンプ＝１２００００は、１２時００分００秒にマスターサーバがパケットを送信したことを示し、また、タイムスタンプ＝１２０５００は、それから５分後、１２時０５分００秒にマスターサーバがパケットを送信したことを示している。スレーブサーバは、タイムスタンプ＝１２００００の同期パケットを１２時００分０１秒に受信し、また、タイムスタンプ＝１２０５００の同期パケットを１２時０５分０４秒に受信していることを示している。スレーブサーバの同期パケットの受信時刻は、スレーブサーバのシステムクロック２０６において計測した時間である。
【０１４２】
図１６に示す例では、２つの同期パケットに設定されたタイムスタンプの差は、５分、すなわち３００秒であり、スレーブサーバのシステムクロック２０６において計測したこれら２つの同期パケットの受信間隔は３０３秒である。スレーブサーバのタイムスタンプ比較部２０９は、スレーブサーバのシステムクロックの、マスターサーバに対する差、すなわちクロック差データとして、３０３／３００を算出する。
【０１４３】
スレーブサーバは、タイムスタンプ比較部２０９の算出したクロック差データ［３０３／３００］を転送レート変更情報格納部２１０に格納する。
【０１４４】
要約すると、タイムスタンプ比較部２０９は、同期パケットに基づいて、マスターサーバとスレーブサーバのクロック差データを下式に従って求める。
クロック差＝（スレーブサーバのシステムクロックで計測した複数の同期パケットの受信間隔）／（受信間隔を測定した複数の同期パケットのタイムスタンプ間隔）
【０１４５】
タイムスタンプ比較部２０９において、上記式によって算出されたクロック差データが転送レート変更情報格納部２１０に格納される。
【０１４６】
スレーブサーバにおける転送レート調節部２０４では、上述の転送レート変更情報格納部２１０に格納されたマスターサーバとスレーブサーバとのクロック差データに基づく転送レート変更処理が実行される。図１１に示す転送レート調節部２０４の構成を参照してスレーブサーバにおける転送レート調整処理について説明する。
【０１４７】
転送レート調節部２０４は、システムクロック２０６のクロック供給を受け、クロック供給に応じてカウンタ値を増加させるカウンタ２２１、カウンタ値に応じてバッファ２０３に格納されたパケットをデータ送信部に渡すデータ出力制御部２２２を有し、さらに、転送レート変更情報格納部２１０に格納されたマスターサーバとスレーブサーバとのクロック差データに従ってカウンタ２２１のカウンタ値を補正して補正したカウンタ値をデータ出力制御部２２２に渡すカウンタ補正部２２３を有する。
【０１４８】
カウンタ補正部２２３は、例えば、転送レート変更情報格納部２１０に格納されたクロック差データとして、［３０３／３００］が格納されている場合、カウンタ２２１のカウンタ値Ｃに転送レート変更用データ［３０３／３００］の逆数：３００／３０３を乗じて補正したカウンタ値Ｃ’を生成してデータ出力制御部２２２に渡す。すなわち、
補正カウンタ値Ｃ’＝（３００／３０３）×実カウンタ値Ｃ
として、補正処理を実行し、補正値Ｃ’をデータ出力制御部２２２に渡す。
【０１４９】
データ出力制御部２２２は、補正カウンタ値Ｃ’に基づいて、補正カウンタ値Ｃ’が、あらかじめ定められたカウンタ値：Ｖａに達したとき、バッファからパケットを順次取り出して、データ送信部２０５に出力する処理を実行する。
【０１５０】
スレーブサーバにおいて、マスターサーバから送信される同期パケットに基づいて算出するクロック差データに基づく補正処理を実行する場合の転送レート調節部２０４の処理フローを図１７に示す。ステップＳ６０１においてカウンタ値＝０にリセットし、ステップＳ６０２においてカウンタ２２１をシステムクロックからのクロック供給に従ってインクリメントする。ステップＳ６０３において、カウンタのカウンタ値をマスターサーバから受信した同期パケットに基づいてタイムスタンプ比較部２０９において算出し、転送レート変更情報格納部２１０に格納された、マスターサーバとスレーブサーバとのクロック差に従って補正する。
【０１５１】
次にステップＳ６０４において、補正カウンタ値と、予め定めた閾値：Ｖａと比較を実行して、補正カウンタ値＝Ｖａとなったことを条件として、ステップＳ６０５において、データ（パケット）をバッファ２０３から取り出して、データ送信部２０５へ出力し、ステップＳ６０６において、さらにバッファ２０３に送信対象の蓄積データ（パケット）があるか否かを判定し、ある場合は、ステップＳ６０１以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、補正された転送レートによってスレーブメディアの送信処理が実行される。
【０１５２】
スレーブサーバのデータ送信処理の流れを図１８に示すフローチャートに従って説明する。スレーブサーバは、ステップＳ７０１において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(Ｓ７０２でＹｅｓ)すると、ステップＳ７０３へ進み、メディア供給部２０１から送信するメディア（データまたは符号化データ）をペイロードとしたパケットをパケット生成部において生成する。
【０１５３】
ステップとＳ７０４では、パケット化されたデータをバッファ２０３に蓄積する。ステップＳ７０５では、転送レート変更情報格納部２１０にマスターサーバとスレーブサーバとのクロック差データが格納されているか否かを判定し、無い場合は、ステップＳ７０６に進み、システムクロック２０６のクロック供給に従って増分される転送レート調節部２０４のカウンタ２２１の実カウンタ値に基づいて、カウンタ値が所定値：Ｖａになる毎に順次、データ送信部に出力され、ステップＳ７０７において、データ送信部２０５からパケット通信網に出力される。
【０１５４】
一方、転送レート変更情報格納部２１０にマスターサーバとスレーブサーバとのクロック差データが格納されている場合は、ステップＳ７１１に進み、クロック２０６のクロック供給に従って増分される転送レート調節部２０４のカウンタ２２１の実カウンタ値：Ｃに対して、上述したマスターサーバとスレーブサーバとのクロック差データに基づく補正を実行して補正カウンタ値：Ｃ’を算出する。ステップＳ７１２では、補正カウンタ値：Ｃ’が所定値：Ｖａになる毎に順次、データ送信部２０５に出力され、ステップＳ７０７において、データ送信部２０５からパケット通信網に出力される。
【０１５５】
さらに、ステップＳ７０８において、送信すべきデータの有無を判定し、有りの場合は、ステップＳ７０５以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップＳ７０９においてデータ終了を示すＥＯＳ（End of Stream）パケットを送信し、処理を終了する。
【０１５６】
このように、スレーブサーバでは、マスターサーバからの同期パケットを受信し、同期パケットに基づくマスターサーバとスレーブサーバとのクロック差データが転送レート変更情報格納部２１０に格納されている場合は、転送レート調節部において、実カウンタ値：Ｃに対してマスターサーバとスレーブサーバとのクロック差データに基づく補正を実行して補正カウンタ値：Ｃ’を算出し、補正カウンタ値：Ｃ’に基づいて転送レートを決定する構成であり、マスターサーバのクロックに同期したデータ転送、すなわち、マスターサーバにおけるマスターメディア転送レートに同期したスリーブサーバにおけるスレーブメディアのデータ送信が可能となる。
【０１５７】
この結果、スレーブサーバのデータ転送レートは、マスターサーバのデータ転送レートに同期することとなり、その結果、マスターサーバのデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末では、マスターサーバから受信するマスターメディア格納パケットを一時記憶するバッファ４１２、スレーブサーバから受信するスレーブメディア格納パケットを一時記憶するバッファ４２２にバッファオーバーフロー、あるいはアンダーフローの問題が発生することがなく、安定した同期再生処理が実行可能となる。
【０１５８】
なお、上述の実施例では、１つのスレーブサーバに対する処理を中心として説明したが、１つのマスターサーバに対して複数のスレーブサーバがある場合も、各スレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、１つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、１つのマスターサーバと複数のスレーブサーバからそれぞれ１つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【０１５９】
［データ送受信装置構成例］
上述の実施例で述べた一連の処理は、ハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたデータ処理装置内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータやマイクロコンピュータ等にインストールされる。
【０１６０】
図１９に、上述の実施例で述べた一連の処理を実行するデータ送信装置としてのマスターサーバ、スレーブサーバ、およびデータ受信端末装置のシステム構成例を示す。本発明のシステムで送受信されるデータの一例は、符号化データであり、データ送信装置ではエンコード（符号化）処理が実行され、データ受信装置ではデコード（復号）処理が実行される。符号化されたデータはパケットとしてネットワークを介して送受信する。そのため、データ送信側では、パケット生成（パケタイズ処理）を実行し、データ受信側ではパケット展開（デパケタイズ処理）を実行する。
【０１６１】
図１９に示すデータ送受信装置（ｅｘ．ＰＣ）８５０は、エンコード（符号化）処理、デコード（復号）処理を実行するとともにパケット生成、展開処理を実行するコーデック８５１、通信ネットワークとのインタフェースとして機能するネットワークインタフェース８５２、マウス８３７、キーボード８３６等の入力機器との入出力インタフェース８５３、ビデオカメラ８３３、マイク８３４、スピーカ８３５等のＡＶデータ入出力機器からのデータ入出力を行なうＡＶインタフェース８５４、ディスプレイ８３２に対するデータ出力インタフェースとしてのディスプレイ・インタフェース８５５、各データ入出力インタフェース、コーデック８５１、ネットワークインタフェース８５２間のデータ転送制御、その他各種プログラム制御を実行するＣＰＵ８５６、ＣＰＵ８５６により制御実行される各種プログラムの格納、データの格納、ＣＰＵ８５６のワークエリアとして機能するＲＡＭ、ＲＯＭからなるメモリ８５７、データ格納、プログラム格納用の記憶媒体としてのＨＤＤ８５８を有し、それぞれＰＣＩバス８５９に接続され、相互のデータ送受信が可能な構成を持つ。
【０１６２】
コーデック８５１は、図１９に示すように、例えばビデオカメラ８３３からの画像データ、マイク８３４からの音声データを入力し、符号化処理、パケット生成処理（パケタイズ）を実行し、最終的に符号化データをペイロードとしたパケットを生成する。生成されたパケットは、ＰＣＩバス８５９上に出力され、ネットワークインタフェース８５２を介してネットワークに出力され、パケットのヘッダに設定された宛先アドレスに配信される。
【０１６３】
また、ＨＤＤ８５８またはメモリ８５７に格納されたソフトウェアエンコードプログラムに従ってＣＰＵ８５６の制御により、ビデオカメラ８３３からの画像データ、マイク８３４からの音声データを符号化してネットワークインタフェース８５２を介してネットワークに出力する処理も実行する構成としてもよい。
【０１６４】
一方、ネットワークを介して入力するパケット化されたデータは、ネットワークインタフェース８５２を介して、バス８５６上に出力されて、コーデック８５１に入力される。コーデック８５１では入力データのパケット展開処理（デパケタイズ）を実行し、ペイロードとして格納された符号化データを抽出後、復号処理を実行して、ディスプレイ８３２、スピーカ８３５において再生、出力する。
【０１６５】
上述の実施例における処理対象となる画像等のデータは、カメラ他の入力機器、例えばスキャナ等のデータ入力装置、あるいはフロッピーディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体から入力可能である。
【０１６６】
また、ＣＰＵ８５６は、ＲＯＭ格納プログラムに限らず、ハードディスクに格納されているプログラム、衛星若しくはネットワークから転送され、受信されてインストールされたプログラム等を、ＲＡＭ(Random Access Memory)等のメモリにロードして実行することも可能である。
【０１６７】
ここで、本明細書において、プログラムは、１つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１６８】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１６９】
【発明の効果】
以上、説明してきたように、本発明によれば、それぞれ異なるシステムクロックに基づくサンプリングレートに従って画像、音声等、異なるメディアを送信する複数サーバからの送信メディアをデータ受信装置において受信して再生する構成において、データ受信端末が複数サーバの１つをマスターサーバとして指定したサーバリストを各サーバに送信し、マスターサーバとして設定されたサーバがスレーブサーバに対して、マスターサーバとスレーブサーバとのクロック差を算出するためのタイムスタンプ情報を格納した同期パケットを送信し、スレーブサーバが同期パケットに基づいてマスターサーバとスレーブサーバとのクロック差を算出して、算出値に基づいて、データ受信端末に対するスレーブメディアの転送レートを変更する構成としたので、データ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【０１７０】
さらに、本発明の構成によれば、１つのマスターサーバに対して複数のスレーブサーバがあり、様々なメディアを配信する構成においても、各スレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、１つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、１つのマスターサーバと複数のスレーブサーバからそれぞれ１つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、および複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【図面の簡単な説明】
【図１】本発明のデータ通信システムの構成概要を示す図である。
【図２】本発明のデータ通信システムのデータ受信端末装置の構成を示す図である。
【図３】本発明のデータ通信システムにおいて転送されるＲＴＰパケットフォーマットを示す図である。
【図４】本発明のデータ通信システムにおいて転送されるＩＰパケットヘッダフォーマットを示す図である。
【図５】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図６】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図７】本発明のデータ通信システムのデータ受信端末装置におけるサーバリスト生成、および再生処理について説明するフロー図である。
【図８】本発明のデータ通信システムのデータ受信端末装置の生成するサーバリストの例を示す図である。
【図９】本発明のデータ通信システムのデータ受信端末装置における再生処理について説明するフロー図である。
【図１０】本発明のデータ通信システムにおけるサーバの構成を示すブロック図である。
【図１１】本発明のデータ通信システムにおけるサーバの転送レート調節部の構成を示す図である。
【図１２】本発明のデータ通信システムにおけるマスターサーバの転送レート調節部の処理を説明するフローを示す図である。
【図１３】本発明のデータ通信システムにおけるマスターサーバの処理を説明するフロー図である。
【図１４】本発明のデータ通信システムにおけるマスターサーバが生成し、スレーブサーバに送信する同期パケットフォーマットを示す図である。
【図１５】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の処理を説明するフローを示す図である。
【図１６】本発明のデータ通信システムにおける同期パケットに基づくスレーブサーバの転送レート変更処理を説明する図である。
【図１７】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の処理を説明するフローを示す図である。
【図１８】本発明のデータ通信システムにおけるスレーブサーバの処理を説明するフロー図である。
【図１９】データ送信端末装置およびデータ受信端末装置のシステム構成例を示す図である。
【符号の説明】
１１０  パケット通信網
１２０  マスターサーバ
１２５  システムクロック
１３０  スレーブサーバ
１３５  システムクロック
１４０，１５０  データ受信端末
１４５，１５５  システムクロック
２００  サーバ
２０１  メディア供給部
２０２  パケット生成部
２０３  バッファ
２０４  転送レート調節部
２０５  データ送信部
２０６  システムクロック
２０７  サンプリングレート設定部
２０８  データ受信部
２０９  タイムスタンプ比較部
２１０  転送レート変更情報格納部
２１１  時刻情報付加部
２２１  カウンタ
２２２  データ出力制御部
２２３  カウンタ補正部
４００  データ受信端末装置
４１１，４２１  データ受信部
４１２，４２２  バッファ
４１３，４２３  タイムスタンプ比較部
４１４，４２４  サンプリングレート設定部
４１５，４２５  出力時刻調節部
４１６，４２６  出力処理部
４１７，４２７  データ送信部
４５０  システムクロック
４６０  サーバリスト保持部
８０９  ＰＣＩバス
８３２  ディスプレイ
８３３  ビデオカメラ
８３４  マイク
８３５  スピーカ
８３７  マウス
８３８  キーボード
８５０  データ送受信装置
８５１  コーデック
８５２  ネットワークインタフェース
８５３  入出力インタフェース
８５４  ＡＶインタフェース
８５５  ディスプレイインタフェース
８５６  ＣＰＵ
８５７  メモリ
８５８  ＨＤＤ
【図１】
0003906678.tif 000002
【図２】
0003906678.tif 000003
【図３】
0003906678.tif 000004
【図４】
0003906678.tif 000005
【図５】
0003906678.tif 000006
【図６】
0003906678.tif 000007
【図７】
0003906678.tif 000008
【図８】
0003906678.tif 000009
【図９】
0003906678.tif 000010
【図１０】
0003906678.tif 000011
【図１１】
0003906678.tif 000012
【図１２】
0003906678.tif 000013
【図１３】
0003906678.tif 000014
【図１４】
0003906678.tif 000015
【図１５】
0003906678.tif 000016
【図１６】
0003906678.tif 000017
【図１７】
0003906678.tif 000018
【図１８】
0003906678.tif 000019
【図１９】
0003906678.tif 000020