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