JP3906678B2 - データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム - Google Patents

データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP3906678B2
JP3906678B2 JP2001362259A JP2001362259A JP3906678B2 JP 3906678 B2 JP3906678 B2 JP 3906678B2 JP 2001362259 A JP2001362259 A JP 2001362259A JP 2001362259 A JP2001362259 A JP 2001362259A JP 3906678 B2 JP3906678 B2 JP 3906678B2
Authority
JP
Japan
Prior art keywords
data
server
servers
packet
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001362259A
Other languages
English (en)
Other versions
JP2003163691A5 (ja
JP2003163691A (ja
Inventor
健治 山根
智 普天間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001362259A priority Critical patent/JP3906678B2/ja
Publication of JP2003163691A publication Critical patent/JP2003163691A/ja
Publication of JP2003163691A5 publication Critical patent/JP2003163691A5/ja
Application granted granted Critical
Publication of JP3906678B2 publication Critical patent/JP3906678B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。さらに詳細には、ストリーミングデータ転送における同期処理の改善を図ったデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
昨今、インターネット通信など、様々な通信媒体を介した画像、音声データ等のデータ転送が盛んに行われている。特に、近年においては、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。ダウンロード型伝送方式においては、映像ファイルや音声ファイルといったマルチメディアデータを伝送する場合、配信サーバからデータファイルを一旦受信側端末の記憶媒体にダウンロードして、その後、記憶媒体から再生することになる。よって、この方式ではファイルを完全に転送が終わるまでは再生できず、長時間再生やリアルタイム再生などには不向きである。
【0003】
一方、後者のストリーム型伝送方式では、送信側から受信端末にデータ転送が行われている間に、並列して受信データの再生処理を実行するものであり、インターネット電話・遠隔テレビ会議・ビデオオンデマンドといったインターネットサービスに利用されている。
【0004】
ストリーム型伝送方式は、例えば画像データのMPEG圧縮処理により生成されるMPEGストリームをIP(Internet Protocol)パケットに格納してインターネット上を転送させて、PCやPDA、携帯電話等の各通信端末において受信するシステム等において使用され、開発が進んでいる。このような技術は、ビデオオンデマンドやライブ映像のストリーミング配信、あるいはビデオ会議、テレビ電話などのリアルタイム通信において有効となる。
【0005】
このようなストリーム型伝送方式に適したインターネット技術に、IETF RFC1889で規定されているプロトコル:RTP(Realtime Transport Protocol)がある。RTPに従ったデータ転送では、時間情報としてパケットにタイムスタンプを付加し、タイムスタンプの参照により送信側と受信側の時間的関係の把握を行ない、データ受信側において、パケット転送の遅延ゆらぎ(ジッター)などの影響を受けずに同期をとった再生を可能としている。
【0006】
このようなパケットを利用したデータ転送において、複数の異なるデータ配信サーバから異なるデータをそれぞれ配信して1つの受信端末において、これらの複数信号の同期した再生を行なうシステムがある。例えば画像データと音声データとを異なるデータ配信サーバから送信し、PC、携帯端末等の受信端末装置においてこれらの信号受信して、画像データと音声データとの同期をとった再生を実行するような構成である。
【0007】
インターネットにおいて、データ送信サイトから受信端末へ、データをストリーミング配信して、受信端末において再生しようとするとき、データ送信サイトと受信端末のシステムクロックが同期している場合は、メディア再生が時間のずれなく可能となるが、データ送信サイトと受信端末のシステムクロックが同期していない場合、データ送信サイトのデータ転送レートと受信端末のデータ出力レートが異なることになり、受信端末においてデータ一時保管用のバッファのデータ溢れによる受信データの蓄積不能、すなわちバッファオーバーフローが生じたり、再生用データの受信、バッファ蓄積が間に合わない、すなわちバッファアンダーランが生じることがある。
【0008】
データ受信端末では、これらのエラー回復処理として、例えばバッファアンダーランの場合は、受信端末において同じ情報を再度表示あるいは出力し、また、バッファオーバーフローの場合には、一旦受信したものの蓄積不能として廃棄したパケットの再送要求をデータ送信サイトに要求するなどの処理を実行しなくてはならない状態に陥る。また、このとき、送信者側でのメディアの送信時刻と、受信者側での再生時刻が異なるなどの不都合が生じる。
【0009】
複数のデータ送信サイトから複数の受信端末へそれぞれ、複数の異なるメディア、例えば画像データと音声データとをストリーミング配信して、受信端末においてこれら複数のメディアの同期再生を実行しようとするとき、上記のバッファオーバーフロー、バッファアンダーフローの問題が複数のメデイア配信サイトと受信端末間でそれぞれ発生し、さらに、複数の配信メディア間のずれという新たな問題が発生することになる。
【0010】
それぞれ異なるメディア(例えば画像、音声)を配信する複数のデータ送信サイト間のシステムクロック(サンプリングレート)が同期していることが保証されない場合は、複数のデータ送信サイトからそれぞれ配信されるメディア間の時間関係を受信者側で再現することが不可能であり、メディア間の同期が取れないという事態が発生する。
【0011】
このような複数の異なるデータ配信サイト(サーバ)から受信する複数の異なるデータ(メディア)を同期再生するための構成が種々、提案されている。例えば、特開平6−303254には、ATM網クロックを利用してデータ配信サーバのクロック(ソースクロック)をデータ受信装置としての再生側で再生可能とするソースクロック再生回路をデータ受信端末に構成して、メディア間同期を実現する構成を開示している。しかし、この方法では、データ受信端末は、同期処理のために常にATM網のクロックを受信しなくてはならないという問題がある。
【0012】
さらに、特開平11−69327では、ビデオ信号と、音声信号の同期再生を実現するために、ビデオ信号の再生タイミングに合わせて音声信号の再生タイミングを調整し、特に、音声信号の無音状態を検知し、その無音時に音声情報の出力時刻を変更するスライド処理を実行することにより音声の途切れないメディア間同期を実現する構成を開示している。しかし、この方法は、画像信号の大幅な遅れによる音声情報のバッファ溢れ、すなわちバッファオーバーフローの問題は何ら解決されない。また、音声信号のスライドを無音部分で行なおうとする構成は、無音部分の少ない音楽などのメディアには適用することができない。
【0013】
さらに、特開平9−55754では、各メディアの送信端末が、送信端末から受信端末までのデータ伝送時間を計測して、データとともに伝送時間情報を受信端末に送信し、受信端末において、各データ送信端末からの伝送時間情報中、最も長い最長伝送時間情報を選択して、最長伝送時間に従って送信されるデータの再生に合わせて、他のデータ再生処理を遅らせて各メディア間の同期再生を実現する構成を開示している。しかし、この手法では、各送信端末は、送信端末から受信端末までのデータ伝送時間を計測して受信端末に送信する処理が必要となり、また、受信端末では、複数の送信端末から受信する伝送時間情報を解析する処理が必要となり、常に遅延時間を監視しなくてはならないという問題がある。
【0014】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、例えばインターネット等のデータ通信網を介してストリーミングデータを転送する構成において、複数のデータ送信サイトとしてのデータ送信サーバから送信されるデータ(メディア)の受信端末における同期再生を、複数サーバ間の処理に基づいて実現するデータ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明の第1の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムであり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有し、
前記サーバリストによって選択されたマスターサーバは、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行する構成を有し、
前記スレーブサーバは、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システムにある。
【0017】
さらに、本発明のデータ通信システムの一実施態様において、前記サーバリストは、同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする。
【0020】
さらに、本発明のデータ通信システムの一実施態様において、前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする。
【0027】
さらに、本発明の第4の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ受信装置であり、
前記データ受信装置は、
同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有することを特徴とするデータ受信装置にある。
【0028】
さらに、本発明のデータ受信装置の一実施態様において、前記サーバリストは、同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする。
【0029】
さらに、本発明のデータ受信装置の一実施態様において、前記データ受信装置は、マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較部と、前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部と、を有する構成であることを特徴とする。
【0030】
さらに、本発明のデータ受信装置の一実施態様において、前記データ受信装置は、前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Aを算出するとともに、前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Bを算出するタイムスタンプ比較部と、前記差異Aに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Aと、前記差異Bとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする。
【0031】
さらに、本発明のデータ受信装置の一実施態様において、前記複数のサーバ中、少なくとも1つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の1つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする。
【0032】
さらに、本発明の第5の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ通信方法であり、
前記データ受信装置において、
同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行し、
前記サーバリストによって選択されたマスターサーバにおいて、
自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行し、
前記スレーブサーバにおいて、
前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法にある。
【0037】
さらに、本発明のデータ通信方法の一実施態様において、前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする。
【0040】
さらに、本発明の第7の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおける受信データ制御処理方法であり、
同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を有することを特徴とする受信データ制御処理方法にある。
【0044】
さらに、本発明の第9の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
を具備することを特徴とするコンピュータ・プログラムにある。
【0045】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0046】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0047】
【発明の実施の形態】
[システム及びデータ送受信概要]
まず、図1を参照して、本発明のシステム概要及びデータ送受信処理の概要について説明する。
【0048】
図1のデータ通信システムにおいて、マスターメディアの送信を実行するマスターサーバ120、スレーブメディアの送信を実行するスレーブサーバ130は、それぞれ異なるメディア、例えば画像メディアと、音声メディア等、異なるデータを送信するサーバであり、データ受信端末140、150に対してそれぞれのメディア・データをパケット通信網110を介して送信する。データ受信端末140、150では、マスターサーバ120、スレーブサーバ130から受信するメディア(データ)を受信し、同期再生を実現する。
【0049】
これらのデータ転送は、ストリーム型伝送方式により実行され、マスターサーバ120、スレーブサーバ130からデータ受信端末140、150に対するデータ転送処理と並列してデータ受信端末140、150におけるデータ再生処理が実行される。
【0050】
図1に示す構成において、マスターサーバ120、スレーブサーバ130、受信端末140,150の各々は、それぞれ独自のシステムクロック125,135,145,155を有し、これらの各システムクロック125,135,145,155の各々は同期せずに動作しているものとする。
【0051】
なお、マスターサーバ120、スレーブサーバ130は、初期的にはどちらがマスターであるかスレーブであるかの区別はなく、データ受信端末に対するメディア配信のためのデータ受信端末とのセッション確立後に、データ受信端末から各サーバに対して送付されるサーバリストに基づいて、マスターであるかスレーブであるかが設定される。
【0052】
なお、1つのデータ配信アプリケーションシステムにつき、マスターサーバは1つ設定され、マスターサーバに並列して異なるメディアを送信する1以上のサーバがスレーブサーバとして設定される。本実施例ではスレーブサーバは1台であるが、2台以上のスレーブサーバを設定する構成としてもよい。
【0053】
例えば音声と動画を2つのメディアとしてそれぞれ異なるサーバから送信し、受信端末において、音声と動画を合わせて再生するシステム例を想定すると、データ受信端末から各サーバに対して送付されるサーバリストには、音声をストリーミング配信するサーバをマスターサーバ、動画をストリーミング配信するサーバをスレーブサーバとした設定情報を格納するか、あるいはその逆の設定情報を格納して各サーバに送付する。
【0054】
データ受信端末からサーバリストを受信した各データ配信サーバは、自己がマスターサーバであるかスレーブサーバであるかをリストに基づいて識別する。
【0055】
データ受信端末からのサーバリストにより、自己がマスターサーバであると指定されている場合は、マスターサーバとしての処理、すなわち、自己のシステムクロックに基づく転送レートに従ったデータ受信端末に対するマスターメディアのデータ配信を実行するとともに、サーバリストにリストアップされたスレーブサーバに対してタイムスタンプを付加したパケット(同期パケット)を定期的に送信する。
【0056】
一方、データ受信端末からのサーバリストにより、自己がスレーブサーバであると指定されている場合は、スレーブサーバとしての処理、すなわち、マスターサーバから受信する同期パケットに基づいて、データ受信端末に対するデータ転送レートを、マスターサーバのシステムクロックに同期するように変更する処理を実行して、データ受信端末に対するスレーブメディアのデータ配信を実行する。
【0057】
なお、図1に示す例では、データ受信端末140、150の2つの端末のみを示しているが、1以上の任意数の受信端末が存在可能であり、任意数の端末において、マスターサーバ120、スレーブサーバ130からのデータ受信処理を行なう構成が可能である。ただし、この場合、複数のデータ受信端末から異なるサーバリストが各サーバに配信される可能性があるが、各サーバに最初に到着したリストに従って、マスターサーバ、スレーブサーバの設定を行なう等のリスト選別処理によって1つのリストを選択採用して、1つのサーバリストに基づいてマスターサーバ、スレーブサーバの設定を実行する。
【0058】
[データ受信端末装置の構成および処理]
次に、マスターサーバからマスターメディアを受信し、スレーブサーバからスレーブメディアを受信して、受信した複数のメデイアの同期再生処理を実行するデータ受信端末装置の構成および処理について説明する。
【0059】
図2にデータ受信端末装置の構成を説明するブロック図を示す。なお、図2においては、マスターサーバからの受信データ処理部と、スレーブサーバからの受信データ処理部とを区別して示してあるが、これは、理解を容易にするために区別して記載したものであり、同一機能を実行する複数の処理部は、単一の処理部として構成して両受信データの処理を実行する構成としてもよい。
【0060】
図2のデータ受信端末装置の構成に従ってデータ再生処理について説明する。データ受信端末400は、マスターサーバ120として設定されたサーバからのマスターメディア格納パケットをデータ受信部411において受信するとともに、スレーブサーバ300として設定されたサーバからのスレーブメディア格納パケットをデータ受信部421において受信する。それぞれの受信パケットは、それぞれのバッファ412,422に格納される。
【0061】
メディア格納パケットは、画像、音声等の各種メディアをペイロードとしたパケットであり、マスターサーバがマスターメディアを格納したパケットを生成してデータ受信端末に送信し、スレーブサーバがスレーブメディアを格納したパケットを生成してデータ受信端末に送信する。各サーバが送信するメディアは、例えばビデオカメラによって取得された画像、音声データ、CD,DVD等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等である。これらのデータは、符号化、例えばMPEG圧縮処理等による符号化がなされて、パケットに格納された構成であってもよい。
【0062】
データ受信端末が各サーバから受信するパケットは、例えば、リアルタイム・トランスポート・プロトコル:RTP(Real-time Transport Protocol)に従ったデータ・パケット(以下パケットと称する)である。
【0063】
パケットは、画像、音声データ等の各種メディア(例えば符号化データ)をペイロードデータとし、RTPヘッダを付加しパケット化されたものである。RTPパケット構成を図3に示す。RTPヘッダには、バージョン番号(v)、パディング(P)、拡張ヘッダ(X)の有無、送信元数(Counter)、マーカ情報(M:marker bit)、ペイロードタイプ(Payload type)、シーケンス番号、タイムスタンプ、同期ソース(送信元)識別子(SSRC)および貢献ソース(送信元)識別子(CSRC)の各フィールドが設けられている。データ受信側において、RTPヘッダに付与されたタイムスタンプによりRTPパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御を行なうことが可能となる。なお、例えば動画像データの符号化データを格納したRTPパケットにおいては、1つの画像フレームに属する複数のRTPパケットに共通のタイムスタンプが設定される。
【0064】
なお、タイムスタンプは、各サーバ、すなわち各メディアを送信するマスターサーバおよびスレーブサーバ各々のシステムクロックの制御の下に設定されるサンプリングレート基づいて各パケット(例えばRTPパケット)に付与される。例えば、サーバのシステムクロック206が90KHzクロックのクロックであるとき、動画像データについて、30fps(フレーム/秒)のレートでサンプリングして符号化データをRTPパケットに格納して送信すると仮定すると、RTPパケットのタイムスタンプの値は、90K/30=3000ずつカウントアップされ、第nフレームの符号化データを格納したパケットに設定されるタイムスタンプが12000であるとき、n+1フレームのデータを格納したパケットのタイムスタンプは15000として設定する等の手法により、各RTPパケットにタイムスタンプが付与される。
【0065】
RTPヘッダを付加されたパケットはさらにIPヘッダが付与される。図4にIPパケットの構成中のIPヘッダの詳細を示す。IPv4、IPv6等のバージョンを示すバージョン、ヘッダ長、さらに、優先度情報を格納したTOS(Type of Service)フィールド、パケットの長さ、パケットの識別子、IP層でのデータ分割(フラグメント)に関する制御情報としてのフラグ、分割(フラグメント)されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すTTL(Time to Live)、上位層で利用されるプロトコル(4:IP,TCP:7,UDP:17…)ヘッダのチェックサム、送信元IPアドレス、宛て先IPアドレスを有する。
【0066】
各サーバにおいて生成されたパケットは、インターネット等のパケット通信網110を介してデータ受信端末に送信される。
【0067】
マスターサーバ120から送信されバッファ412に格納されたマスターメディア格納パケットは、タイムスタンプ比較部413において、各パケットに設定されたタイムスタンプ情報が取り出され、マスターサーバ120から受信する各パケットのパケット受信間隔と、各パケットに設定されたタイムスタンプとの差が比較される。パケット受信間隔は、データ受信端末のシステムクロック450から供給されるクロック情報に従って計測される。
【0068】
マスターメディアを格納したパケットに設定されるタイムスタンプは、マスターサーバ120のシステムクロック125に基づいて設定されるタイムスタンプであり、設定されたタイムスタンプとパケット受信間隔とが対応するべきであるが、データ受信端末400のシステムクロック450は、マスターサーバ120のシステムクロック125との同期がとれていないものであり、マスターサーバ120のシステムクロック125に基づいて設定される各パケットのタイムスタンプの差と、データ受信端末400のシステムクロック450によって計測されるパケット受信間隔にはずれが発生する。このずれは、データ受信端末400のシステムクロック450と、マスターサーバ120のシステムクロック125との差に相当する。
【0069】
データ受信端末400では、データ受信端末400のシステムクロック450と、マスターサーバ120のシステムクロック125との差を考慮してデータ再生を実行する。このクロック差を考慮しないで、データ再生を実行すると、例えばデータ受信速度より早い再生を実行すると、バッファ412のデータの不足、すなわちバッファのアンダーランが発生し、データ受信速度より遅い再生を実行すると、バッファ412のデータ溢れ、すなわちバッファのオーバーフローが発生することになる。
【0070】
タイムスタンプ比較部413において算出されたデータ受信端末400のシステムクロック450と、マスターサーバ120のシステムクロック125との差分を示す情報は、マスターメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部414、およびスレーブメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部424の双方に出力され、それぞれのメデイアに関するサンプリングレート設定処理が実行される。
【0071】
すなわち、マスターメディア、スレーブメディア双方のデータ再生は、タイムスタンプ比較部413において算出されたデータ受信端末400のシステムクロック450と、マスターサーバのシステムクロックとの差分に基づくデータ出力時刻調節処理によって実行されることになる。
【0072】
図5を参照してマスターメディアのサンプリングレート設定処理について説明する。図5に示す例は、マスターサーバが10mm秒毎に1つのデータ処理単位(例えば画像フレーム)のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間(t)であり、各処理単位パケットには、マスターサーバ120のシステムクロック125に基づいて設定されたタイムスタンプ[10〜40]が設定されている。マスターサーバ120は、付加するタイムスタンプを1mm秒毎に1づつインクリメントしており、図に示す最初の処理単位パケットには、10のタイムスタンプが設定され、後続の処理単位パケットには、10mm秒後に出力されるので、10+10=20のタイムスタンプが設定される。以下、30、40とタイムスタンプが設定されたパケットが送信される。
【0073】
一方、このパケットデータを受信するデータ受信端末400では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部413で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ[40]の設定されたパケットは、タイムスタンプ[10]の設定されたパケット受信から、30mm秒後に受け取るはずである。しかし、データ受信端末400のシステムクロック450の供給クロックに基づいてタイムスタンプ比較部413における測定結果として、タイムスタンプ[10]の設定パケットからタイムスタンプ[40]の設定パケットの到着間隔が35mm秒として計測されたとする。
【0074】
これは、データ受信端末400のシステムクロック450がマスターサーバ120のシステムクロック125に対して、(到着時刻間隔/タイムスタンプの差)だけ、すなわち、35/30だけ早いことに起因するものであると判定される。
【0075】
この状態で、データ受信端末400がデータ受信端末400のシステムクロック450に基づいてマスターサーバ120から受信するマスターメディアを再生すると、データ受信端末400のクロック差に起因して、マスターサーバ120のパケット転送レートよりも早いスピードで再生することになり、データ受信端末400のマスターメディアのバッファ412がアンダーランしてしまう。
【0076】
アンダーランの発生を防ぐためには、データ受信端末400における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末400のサンプリングレート設定部414は、データ受信端末400のシステムクロック450と、マスターサーバのシステムクロックとの差に基づいて、再生時のサンプリングレートを変更する。この場合は、サンプリングレートを35/30に変更する処理を実行する。
【0077】
この変更したサンプリングレートに基づいて出力時刻調節部415が各パケットの出力処理部416に対する出力タイミングを決定し出力することで、マスターサーバ120のシステムクロック125に同期したマスターメディア再生処理が実行される。
【0078】
出力処理部416は、バッファ412から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。
【0079】
データ受信端末400には、さらに、マスターサーバ120へ、マスター/スレーブの設定情報としてのサーバリスト、さらに、制御パケットとして応答確認を示すACKパケット、再送要求等のパケット、あるいはセッション開始要求等を送信するためのデータ送信部417を有する。
【0080】
一方、スレーブサーバ130から受信し、バッファ422に格納されたスレーブメディアを格納したパケットの出力時刻調節は、サンプリングレート設定部424の設定するサンプリングレートに基づいて行われる。
【0081】
図6を参照してスレーブメディアのサンプリングレート設定処理について説明する。図6に示す例は、スレーブサーバ130が20mm秒毎に1つのデータ処理単位(例えば画像フレーム)のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間(t)であり、各処理単位パケットには、スレーブサーバ130のシステムクロック135に基づいて設定されたタイムスタンプ[30〜90]が設定されている。スレーブサーバは、付加するタイムスタンプを1mm秒毎に1づつインクリメントしており、図に示す最初の処理単位パケットには、30のタイムスタンプが設定され、後続の処理単位パケットには、20mm秒後に出力されるので、30+20=50のタイムスタンプが設定される。以下、70、90とタイムスタンプが設定されたパケットが送信される。
【0082】
一方、このパケットデータを受信するデータ受信端末400では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部423で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ[90]の設定されたパケットは、タイムスタンプ[30]の設定されたパケット受信から、60mm秒後に受け取るはずである。しかし、データ受信端末400のシステムクロック450の供給クロックに基づいてタイムスタンプ比較部423における測定結果として、タイムスタンプ[30]の設定パケットからタイムスタンプ[90]の設定パケットの到着間隔が80mm秒として計測されたとする。
【0083】
これは、データ受信端末400のシステムクロック450がスレーブサーバ130のシステムクロック135に対して、(到着時刻間隔/タイムスタンプの差)だけ、すなわち、80/60だけ早いことに起因するものであると判定される。
【0084】
この状態で、データ受信端末400がデータ受信端末400のシステムクロック450に基づいてスレーブサーバから受信するスレーブメディアを再生すると、データ受信端末400のクロック差に起因して、スレーブサーバ130のパケット転送レートよりも早いスピードで再生することになり、データ受信端末400のスレーブメディアのバッファ422がアンダーランしてしまう。
【0085】
アンダーランの発生を防ぐためには、データ受信端末400における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末400のサンプリングレート設定部424は、データ受信端末400のシステムクロック450と、スレーブサーバのシステムクロック206との差に基づいて、再生時のサンプリングレートを変更することが必要となる。この場合は、サンプリングレートを80/60に変更する処理を実行することで、スレーブサーバのシステムクロック206に同期した再生が可能となる。
【0086】
しかし、この処理では、マスターサーバから受信するマスターメディアをマスターサーバのシステムクロックに同期させて再生し、スレーブサーバから受信するスレーブメディアをスレーブサーバのシステムクロックに同期させて再生することになる。しかし、マスターサーバのシステムクロックと、スレーブメディアをスレーブサーバのシステムクロックとは同期しておらず、マスターメディアとスレーブメディアの同期した再生は不可能となる。
【0087】
ここで、マスターメディアとスレーブメディアの同期した再生を行なうため、スレーブメディアの再生をマスターサーバのシステムクロックを基準として再生を行なう。サンプリングレート設定部424は、データ受信端末400のシステムクロック450と、スレーブサーバ130のシステムクロック135との差に基づくサンプリングレート変更用データとしての[80/60]と、受信端末400のシステムクロック450と、マスターサーバ120のシステムクロック125との差に基づくサンプリングレート変更用データとしての[35/30]との両データを用いて、スレーブメディアのサンプリングレートを[(35/30)/(80/60)]を設定する処理を実行する。
【0088】
このサンプリングレート[(35/30)/(80/60)]に基づいて出力時刻調節部425がスレーブメディアを格納したパケットを保持したバッファ422から順次、パケットを出力処理部426に出力する。出力処理部426は、バッファ422から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。この処理により、マスターサーバ120のシステムクロック125に同期したスレーブメディア再生処理が実行される。
【0089】
上記処理の結果、マスターメディア、スレーブメディアの双方ともマスターサーバ120のシステムクロック125に同期した再生が行なわれ、異なるサーバから送信される異なるメディアの同期再生が実現される。
【0090】
しかし、この状態で再生を継続すると、マスターメディアの再生は、マスターサーバ120のシステムクロック125に基づいて再生されるので、マスターメディアを格納したバッファ412には、オーバーフロー、アンダーフローの問題は生じないが、スレーブメディアを格納したバッファ422には、オーバーフロー、アンダーフローの問題が生じることになる。なぜなら、受信端末の再生サンプリングレートは、スレーブサーバ130のシステムクロック135に基づくサンプリングレートと一致していないからである。
【0091】
この不一致を解消するために、本発明のシステムでは、サーバリストによって設定されたマスターサーバ120が定期的にスレーブサーバに対して同期パケットを送信する。同期パケットには、スレーブサーバがデータ受信端末に対して送信するデータの転送レートをマスターサーバのシステムクロックに同期させるための情報が格納され、スレーブサーバは、この情報に基づいて転送レートを変更する処理を実行する。これらの処理については、後段で説明する。
【0092】
次に、図7を参照して、データ受信端末において実行するデータ配信各サーバとのセッション確立処理、各サーバに対するサーバリストの送信処理手順について説明する。
【0093】
ステップS101では、例えば音声情報を伴う動画像配信アプリケーションの実行セッション、音声情報、字幕情報を伴う動画像配信アプリケーションの実行セッション等、様々なセッションに対して設定されたセッション記述ファイルを取得し、そのセッション記述ファイルからアプリケーション実行に必要となるセッション確立サーバ、すなわち画像、音声、字幕情報等の各種メディアを送信するデータ送信サーバの情報を取得し、各メディアを送信する複数のサーバから1つのマスターサーバを決定する。セッション記述ファイルは、例えば下記に示す情報からなる。
【0094】
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
【0095】
上記セッション記述ファイルの例は、音声(audio)と、画像(Video)の配信サーバについてのアドレス情報、配信するデータがRTPパケットによって配信されこと、制御情報がRTSPに従って配信されること等、セッションの基本情報を示すものである。
【0096】
データ受信端末は、例えば上記の如きセッション記述ファイルから、画像、音声、字幕情報等の各種メディアを送信するデータ送信サーバの情報を取得し、各メディアを送信する複数のサーバから1つのマスターサーバを決定する。設定した1つのマスターサーバ以外のすべてのサーバはスレーブサーバとして設定される。
【0097】
ステップS102では、データ受信端末は、設定したマスターサーバ、およびスレーブサーバとの間でセッション確立処理を実行する。セッション確立処理には、例えばRTSP(Real Time Streaming Protocol)等が適用可能である。データ受信端末は、各サーバとのセッション確立の過程で,サーバのポート(port)番号、セッションID(Session ID)等の情報を取得する。
【0098】
ステップS103では、セッション記述ファイル、およびセッション確立処理において取得した情報に基づいて、サーバリストを生成し、生成したリストをサーバリスト保持部460に格納する。
【0099】
サーバリストの例を図8に示す。図8の例に示すように、リストは、各メディアを送信するサーバのIPアドレス、画像、音声等のメディアの種類をコードとして示したメディアタイプ、各サーバのポート番号、およびセッションIDの各情報、および、データ受信端末の設定したマスター/スレーブの区別(M/S)の設定情報からなる。
【0100】
リストの上段がマスターサーバとして設定されたサーバであり、マスターサーバのポート番号は1080、セッションIDは22203、スレーブサーバのポート番号は2244、セッションIDは44441である。このような各サーバの情報がサーバリストとして生成され、サーバリスト保持部460に格納される。なお、サーバリストのIPアドレスと、メディアタイプは、セッション記述ファイルから取得可能なデータである。
【0101】
次に、データ受信端末は、ステップS104において、サーバリストに含まれる各サーバ、すなわち1つのマスターサーバ、1つ以上のスレーブサーバに対して、サーバリストを送信する。サーバリストには、マスター/スレーブの設定情報が含まれ、サーバリストを受信した各サーバは、自己の設定がマスターであるかスレーブであるかをリストに基づいて判定する。
【0102】
次に、ステップS106において、データ受信端末は、マスターサーバからマスターメディアを受信し、スレーブサーバからはスレーブメディアを受信し、各受信メディアの同期再生を実行する。
【0103】
各サーバからのメデイア、例えば画像データ、音声データ等のメディアは先に説明したタイムスタンプを付与したRTPパケットに格納されて順次送信され、データ受信端末は、これらのパケットを受信し、再生処理を実行する。
【0104】
再生処理の手順について、図9の処理フローを参照して説明する。データ受信端末は、サーバから受信するRTPパケットに設定されたタイムスタンプの比較処理を予め定めた時間間隔毎に行なう。バッファオーバーフローや、アンダーフローは、データ送信側と再生側の非同期状態が所定時間継続した場合に発生する問題であるから、所定間隔毎に行なえば十分であり、例えば5分間隔にタイムスタンプの比較処理を実行する。ステップS201は、このタイムスタンプ比較時間を設定したタイマの更新処理ステップであり、ステップS202のタイムスタンプ比較時間に達するまで、タイマの更新を行なう。
【0105】
ステップS202でタイマがタイムスタンプの比較処理間隔、例えば5分に達したとき、ステップS203に進む。ステップS203では、マスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【0106】
ステップS204では、ステップS203で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、マスターメディアのサンプリングレートを設定する。マスターメディアの再生は、この設定されたサンプリングレートに基づいて実行される。
【0107】
次に、ステップS205では、スレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【0108】
ステップS206では、ステップS205で算出したスレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差、および、ステップS203で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、スレーブメディアのサンプリングレートを設定する。スレーブメディアの再生は、この設定されたサンプリングレートに基づいて実行される。
【0109】
ステップS207では、上記処理により設定されたサンプリングレートに従って、マスターメディアとスレーブメディアの同期再生を実行する。
【0110】
以上の処理で、データ受信端末は、マスターメディアとスレーブメディアの同期再生が可能となる。なお、スレーブサーバは、後述するマスターサーバから定期的に受信する同期パケットに基づいて、スレーブメディアのデータ受信端末に対するデータ転送レートをマスターサーバのシステムクロックに同期させるレート変更処理を実行しているので、その結果、マスターサーバのデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0111】
なお、上述の実施例では、1つのスレーブサーバに対する処理のみを示しているが、1つのマスターサーバに対して複数のスレーブサーバがある場合も、サーバリストに従って選択された1つのマスターサーバは、複数のスレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、1つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、1つのマスターサーバと複数のスレーブサーバからそれぞれ1つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0112】
[サーバの構成および処理]
(サーバ構成)
次にマスターメディア、またはスレーブメディアの送信処理を実行する図1におけるマスターサーバ120、またはスレーブサーバ130の構成および処理について説明する。まず、サーバの構成について、図10を参照して説明する。前述したように、サーバは、初期的には、マスターメディアを送信するマスターサーバとなるか、スレーブメディアを送信するスレーブサーバとなるかの設定はなされておらず、これらの設定は、先に図8を参照して説明したデータ受信端末から送信されるサーバリストに従って行なわれる。従って、各サーバは、マスターサーバとしての処理機能、スレーブサーバとしての処理機能をあわせ持つ構成を有する。
【0113】
図10にサーバ200の構成を説明するブロック図を示す。サーバ200は、メディア供給部201、パケット生成部202、バッファ203、転送レート調節部204、データ送信部205、システムクロック206、サンプリングレート設定部207、データ受信部208、タイムスタンプ比較部209、転送レート変更情報格納部210、時刻情報付加部211を有する。
【0114】
メディア供給部201は、画像、音声等、送信すべきマスターメディアまたはスレーブメディアをパケット生成部に供給する。メディアは、例えばビデオカメラによって取得された画像、音声データ等である。なお、メディアは、CD,DVD等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等であってもよい。なお、ここでは省略してあるが、これらのデータは、符号化、例えばMPEG圧縮処理等による符号化がなされて、パケット生成部202に供給され、パケット生成部202において、符号化データをペイロードとして格納したパケットが生成される。
【0115】
パケット生成部202で生成するパケットは、例えば先に図3を参照して説明した、リアルタイム・トランスポート・プロトコル:RTP(Real-time Transport Protocol)に従ったデータ・パケット(以下パケットと称する)である。
【0116】
パケット生成部202は、メディア供給部201から供給されるデータ(例えば符号化データ)をペイロードデータとし、RTPヘッダを付加しパケット化する。RTPパケット構成は図3に示す通りであり、ヘッダに、バージョン番号(v)、パディング(P)、拡張ヘッダ(X)の有無、送信元数(Counter)、マーカ情報(M:marker bit)、ペイロードタイプ(Payload type)、シーケンス番号、タイムスタンプ、同期ソース(送信元)識別子(SSRC)および貢献ソース(送信元)識別子(CSRC)の各フィールドを有する。データ受信側において、RTPヘッダに付与されたタイムスタンプによりRTPパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御を行なうことが可能となる。
【0117】
タイムスタンプは、図10に示すシステムクロック206の制御の下にサンプリングレート設定部207の設定するサンプリングレートに基づいて各パケット(例えばRTPパケット)に設定する。例えば、システムクロック206が90KHzクロックのクロックであるとき、動画像データについて、30fps(フレーム/秒)のレートでサンプリングして符号化データをRTPパケットに格納して送信すると仮定すると、RTPパケットのタイムスタンプの値は、90K/30=3000ずつカウントアップされ、第nフレームの符号化データを格納したパケットに設定されるタイムスタンプが12000であるとき、n+1フレームのデータを格納したパケットのタイムスタンプは15000として設定する。RTPヘッダを付加されたパケットはさらにIPヘッダ(図4参照)が付与され、ヘッダに付された宛て先IPアドレスに向けて送信されることになる。
【0118】
パケット生成部202において生成されたパケットは、バッファ203に格納された後、システムクロック206のクロック供給を受ける転送レート調節部204において、転送レートが制御され、データ送信部205を介してインターネット等のパケット通信網110に送出される。
【0119】
データ受信端末からサーバに向けて送付されるサーバリストに基づいて、マスターサーバとして設定された場合は、上記処理により、システムクロック206のクロック供給を受け、転送レート調節部204において転送レートが制御されることになるが、サーバリストに基づいて、スレーブサーバとして設定された場合には、データ受信部208がマスターサーバから受信する同期パケットに格納されたタイムスタンプと、システムクロック206において計測する同期パケット受信時刻との比較をタイムスタンプ比較部209において実行し、この比較処理の結果として算出されるマスターサーバと自己(スレーブ)サーバのクロック差データを転送レート変更情報格納部210に格納し、転送レート調節部204が、転送レート変更情報格納部210に格納されたマスターサーバと自己(スレーブ)サーバのクロック差データに基づく転送レート変更処理を実行する。
【0120】
スレーブサーバにおいては、マスターサーバのシステムクロックに同期したデータ転送を行なうように転送レートの変更処理が実行される。この処理については、後段で詳細に説明する。
【0121】
データ受信部208は、データ受信端末からのサーバリストの受信処理、さらに制御パケット、例えば応答確認としてのACKパケット、再送要求等のパケット、あるいはセッション開始要求を受信する処理を実行する。また、スレーブサーバである場合は、マスターサーバからの同期パケットの受信処理を実行する。
【0122】
転送レート調節部204の詳細構成を図11に示す。転送レート調節部204は、サーバがマスターサーバとして設定された場合と、スレーブサーバとして設定された場合とでは異なる処理を実行する。以下、マスターサーバと、スレーブサーバとの処理について、それぞれ説明する。
【0123】
(1)マスターサーバとしての処理
まず、マスターサーバとして設定された場合の処理について説明する。最初に、マスターサーバとして設定された場合の転送レート調節部の処理について図11を参照して説明する。カウンタ221は、システムクロック206のクロック供給を受け、クロック供給に応じてカウンタ値を増加させる。
【0124】
カウンタ補正部223は、自己がスレーブサーバである場合にカウンタ値を補正する処理を実行する。自己がスレーブサーバである場合、タイムスタンプ比較部が、マスターサーバから受信する同期パケットと、システムクロック206との差分データを算出し、この算出データを転送レート変更情報格納部210に格納する。カウンタ補正部223は、この格納情報を適用したカウンタ値補正を実行する。この補正処理については、後段で詳細に説明する。
【0125】
自己がマスターサーバとして設定されている場合は、マスターサーバから受信する同期パケットはなく、転送レート変更情報格納部210には差分データが格納されておらず、カウンタ補正部223は、カウンタ221からの入力カウンタ値:Cの補正処理を実行せず、カウンタ221からの入力カウンタ値:Cをそのまま、データ出力制御部222に出力する。
【0126】
データ出力制御部222は、カウンタ221のカウンタ値:Cに応じてバッファ203に格納されたパケットをデータ送信部に渡す処理を実行する。データ出力制御部222は、カウンタ221のカウンタ値:Cが、あらかじめ定められたカウンタ値:Vaに達したとき、バッファからパケットを順次取り出して、データ送信部205に出力する処理を実行する。
【0127】
マスターサーバとして設定された場合の転送レート調節部204の処理フローを図12に示す。ステップS301においてカウンタ値=0にリセットし、ステップS302においてカウンタ221をシステムクロックからのクロック供給に従ってインクリメントする。ステップS303において、カウンタ値と、予め定めた閾値:Vaと比較を実行して、カウンタ値=Vaとなったことを条件として、ステップS304において、データ(パケット)をバッファ203から取り出して、データ送信部205へ出力し、ステップS305において、さらにバッファ203に送信対象の蓄積データ(パケット)があるか否かを判定し、ある場合は、ステップS301以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、転送レートが一定に保たれる。
【0128】
マスターサーバとして設定された場合におけるデータ送信処理の流れを図13に示すフローチャートに従って説明する。まず、マスターサーバは、ステップS401において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(S402でYes)すると、ステップS403へ進み、メディア供給部201から送信するメディア(データまたは符号化データ)をペイロードとしたパケットをパケット生成部において生成する。
【0129】
なお、このパケット生成においては、システムクロック206のクロック供給の下にサンプリングレート設定部207の設定したサンプリングレートに基づくタイムスタンプがパケットヘッダに設定される(図3参照)。
【0130】
ステップとS404では、パケット化されたデータをバッファ203に蓄積する。バッファ203に蓄積されたデータは、ステップS405において、図12のフローを参照して説明したように、クロック206のクロック供給に従って増分されるカウンタ221のカウンタ値が所定値:Vaになる毎に順次、データ送信部に出力され、ステップS406において、データ送信部205からパケット通信網に出力される。
【0131】
さらに、ステップS407において、送信すべきデータの有無を判定し、有りの場合は、ステップS405以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップS407においてデータ終了を示すEOS(End of Stream)パケットを送信し、処理を終了する。
【0132】
次に、マスターサーバが実行するスレーブサーバに対する同期パケットの送信処理について説明する。同期パケットは、スレーブサーバからデータ受信端末に対するデータ送信を、マスターサーバのシステムクロックに同期した送信として実行するためのスレーブサーバにおける転送レート変更処理情報を格納したパケットである。
【0133】
図14にマスターサーバが生成し、スレーブサーバに対して送信する同期パケットのフォーマット例を示す。同期パケットは、例えばRTCP(Real-time Transport Control Protocol)に従って生成され、図14に示すように、バージョン番号(v)、パディング(P)、コマンド(command)であることを示すペイロードタイプ(Payload type)情報、メッセージ長、送信者同期ソース(送信元)識別子(SSRC)、さらに、この同期パケットによって転送レートを調節すべきアプリケーションを識別するためのアプリケーション名、さらに、時刻情報付加部211によって付加されるタイムスタンプを持つ。
【0134】
同期パケットのタイムスタンプは、初期的には、外部の時刻サーバとしてのNTP(Network Time Protocol)時刻(例えば32bit)を時刻情報付加部211を介してパケット生成部202において同期パケットに設定し、その後の同期パケットには、マスターサーバのシステムクロック206で計測した時間間隔に基づく時刻情報を設定する。従って、マスターサーバが送信する複数の同期パケットのタイムスタンプ間隔は、マスターサーバのシステムクロックの計測時間に基づくデータとなる。
【0135】
マスターサーバは、図14に示すフォーマットを持つ同期パケットを定期的、例えば5分間隔毎に生成してスレーブサーバに対して送信する。2つ以上のスレーブサーバが存在する場合は、全てのスレーブサーバに対して同様の同期パケットを定期的に送信する。
【0136】
マスターサーバで実行する同期パケットの送信処理について、図15のフローを参照して説明する。ステップS501において、同期パケット転送間隔を計測するタイマを更新する。マスターサーバからスレーブサーバに対する同期パケットの送信は、所定時間間隔、例えば5分間隔に実行する。ステップS501は、この時間を設定したタイマの更新処理ステップであり、ステップS502の同期パケット転送時間に達するまで、タイマの更新を行なう。
【0137】
ステップS502でタイマが同期パケットの転送処理時刻に達したと判定されると、ステップS503に進む。ステップS503では、パケット生成部において、図14を参照して説明したタイムスタンプを格納した同期パケットを生成し、ステップS504において、生成した同期パケットをスレーブサーバに対して送信する。
【0138】
(2)スレーブサーバとしての処理
次に、データ受信端末から受信するサーバリストによって、自己がスレーブサーバとして設定された場合の処理について説明する。最初に、スレーブサーバとして設定された場合の転送レート調節部の処理について図11を参照して説明する。カウンタ221は、システムクロック206のクロック供給を受け、クロック供給に応じてカウンタ値を増加させる。
【0139】
カウンタ補正部223は、自己がスレーブサーバである場合にカウンタ値を補正する処理を実行する。スレーブサーバである場合、タイムスタンプ比較部209が、マスターサーバから受信する同期パケットと、システムクロック206との差分データを算出し、この算出データを転送レート変更情報格納部210に格納する。カウンタ補正部223は、この格納情報を適用したカウンタ値補正を実行する。
【0140】
スレーブサーバにおいて、マスターサーバから受信する同期パケットに基づくカウンタ補正処理について説明する。スレーブサーバは、先に図14を参照して説明した同期パケットを受信すると、タイムスタンプ比較部209において、同期パケット受信時刻と同期パケットに付加されているタイムスタンプを記録する。さらに、その後マスターサーバから受信する同期パケットの受信時刻と、それに付加されていたタイムスタンプをさらに記録し、これら複数の受信同期パケットに関する記録情報に基づいてマスターサーバとスレーブサーバとのクロックの差を求める。クロックの差を求める方法について、図16を参照して説明する。
【0141】
図16は、横軸が時間軸であり、上段がマスターサーバにおける2つの同期パケットの送信間隔を示し、下段がスレーブサーバにおける2つの同期パケットの受信間隔を示している。それぞれの同期パケットには、タイムスタンプ=120000、および120500が設定されている。このタイムスタンプは、マスターサーバが設定したタイムスタンプであり、タイムスタンプ=120000は、12時00分00秒にマスターサーバがパケットを送信したことを示し、また、タイムスタンプ=120500は、それから5分後、12時05分00秒にマスターサーバがパケットを送信したことを示している。スレーブサーバは、タイムスタンプ=120000の同期パケットを12時00分01秒に受信し、また、タイムスタンプ=120500の同期パケットを12時05分04秒に受信していることを示している。スレーブサーバの同期パケットの受信時刻は、スレーブサーバのシステムクロック206において計測した時間である。
【0142】
図16に示す例では、2つの同期パケットに設定されたタイムスタンプの差は、5分、すなわち300秒であり、スレーブサーバのシステムクロック206において計測したこれら2つの同期パケットの受信間隔は303秒である。スレーブサーバのタイムスタンプ比較部209は、スレーブサーバのシステムクロックの、マスターサーバに対する差、すなわちクロック差データとして、303/300を算出する。
【0143】
スレーブサーバは、タイムスタンプ比較部209の算出したクロック差データ[303/300]を転送レート変更情報格納部210に格納する。
【0144】
要約すると、タイムスタンプ比較部209は、同期パケットに基づいて、マスターサーバとスレーブサーバのクロック差データを下式に従って求める。
クロック差=(スレーブサーバのシステムクロックで計測した複数の同期パケットの受信間隔)/(受信間隔を測定した複数の同期パケットのタイムスタンプ間隔)
【0145】
タイムスタンプ比較部209において、上記式によって算出されたクロック差データが転送レート変更情報格納部210に格納される。
【0146】
スレーブサーバにおける転送レート調節部204では、上述の転送レート変更情報格納部210に格納されたマスターサーバとスレーブサーバとのクロック差データに基づく転送レート変更処理が実行される。図11に示す転送レート調節部204の構成を参照してスレーブサーバにおける転送レート調整処理について説明する。
【0147】
転送レート調節部204は、システムクロック206のクロック供給を受け、クロック供給に応じてカウンタ値を増加させるカウンタ221、カウンタ値に応じてバッファ203に格納されたパケットをデータ送信部に渡すデータ出力制御部222を有し、さらに、転送レート変更情報格納部210に格納されたマスターサーバとスレーブサーバとのクロック差データに従ってカウンタ221のカウンタ値を補正して補正したカウンタ値をデータ出力制御部222に渡すカウンタ補正部223を有する。
【0148】
カウンタ補正部223は、例えば、転送レート変更情報格納部210に格納されたクロック差データとして、[303/300]が格納されている場合、カウンタ221のカウンタ値Cに転送レート変更用データ[303/300]の逆数:300/303を乗じて補正したカウンタ値C’を生成してデータ出力制御部222に渡す。すなわち、
補正カウンタ値C’=(300/303)×実カウンタ値C
として、補正処理を実行し、補正値C’をデータ出力制御部222に渡す。
【0149】
データ出力制御部222は、補正カウンタ値C’に基づいて、補正カウンタ値C’が、あらかじめ定められたカウンタ値:Vaに達したとき、バッファからパケットを順次取り出して、データ送信部205に出力する処理を実行する。
【0150】
スレーブサーバにおいて、マスターサーバから送信される同期パケットに基づいて算出するクロック差データに基づく補正処理を実行する場合の転送レート調節部204の処理フローを図17に示す。ステップS601においてカウンタ値=0にリセットし、ステップS602においてカウンタ221をシステムクロックからのクロック供給に従ってインクリメントする。ステップS603において、カウンタのカウンタ値をマスターサーバから受信した同期パケットに基づいてタイムスタンプ比較部209において算出し、転送レート変更情報格納部210に格納された、マスターサーバとスレーブサーバとのクロック差に従って補正する。
【0151】
次にステップS604において、補正カウンタ値と、予め定めた閾値:Vaと比較を実行して、補正カウンタ値=Vaとなったことを条件として、ステップS605において、データ(パケット)をバッファ203から取り出して、データ送信部205へ出力し、ステップS606において、さらにバッファ203に送信対象の蓄積データ(パケット)があるか否かを判定し、ある場合は、ステップS601以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、補正された転送レートによってスレーブメディアの送信処理が実行される。
【0152】
スレーブサーバのデータ送信処理の流れを図18に示すフローチャートに従って説明する。スレーブサーバは、ステップS701において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(S702でYes)すると、ステップS703へ進み、メディア供給部201から送信するメディア(データまたは符号化データ)をペイロードとしたパケットをパケット生成部において生成する。
【0153】
ステップとS704では、パケット化されたデータをバッファ203に蓄積する。ステップS705では、転送レート変更情報格納部210にマスターサーバとスレーブサーバとのクロック差データが格納されているか否かを判定し、無い場合は、ステップS706に進み、システムクロック206のクロック供給に従って増分される転送レート調節部204のカウンタ221の実カウンタ値に基づいて、カウンタ値が所定値:Vaになる毎に順次、データ送信部に出力され、ステップS707において、データ送信部205からパケット通信網に出力される。
【0154】
一方、転送レート変更情報格納部210にマスターサーバとスレーブサーバとのクロック差データが格納されている場合は、ステップS711に進み、クロック206のクロック供給に従って増分される転送レート調節部204のカウンタ221の実カウンタ値:Cに対して、上述したマスターサーバとスレーブサーバとのクロック差データに基づく補正を実行して補正カウンタ値:C’を算出する。ステップS712では、補正カウンタ値:C’が所定値:Vaになる毎に順次、データ送信部205に出力され、ステップS707において、データ送信部205からパケット通信網に出力される。
【0155】
さらに、ステップS708において、送信すべきデータの有無を判定し、有りの場合は、ステップS705以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップS709においてデータ終了を示すEOS(End of Stream)パケットを送信し、処理を終了する。
【0156】
このように、スレーブサーバでは、マスターサーバからの同期パケットを受信し、同期パケットに基づくマスターサーバとスレーブサーバとのクロック差データが転送レート変更情報格納部210に格納されている場合は、転送レート調節部において、実カウンタ値:Cに対してマスターサーバとスレーブサーバとのクロック差データに基づく補正を実行して補正カウンタ値:C’を算出し、補正カウンタ値:C’に基づいて転送レートを決定する構成であり、マスターサーバのクロックに同期したデータ転送、すなわち、マスターサーバにおけるマスターメディア転送レートに同期したスリーブサーバにおけるスレーブメディアのデータ送信が可能となる。
【0157】
この結果、スレーブサーバのデータ転送レートは、マスターサーバのデータ転送レートに同期することとなり、その結果、マスターサーバのデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末では、マスターサーバから受信するマスターメディア格納パケットを一時記憶するバッファ412、スレーブサーバから受信するスレーブメディア格納パケットを一時記憶するバッファ422にバッファオーバーフロー、あるいはアンダーフローの問題が発生することがなく、安定した同期再生処理が実行可能となる。
【0158】
なお、上述の実施例では、1つのスレーブサーバに対する処理を中心として説明したが、1つのマスターサーバに対して複数のスレーブサーバがある場合も、各スレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、1つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、1つのマスターサーバと複数のスレーブサーバからそれぞれ1つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0159】
[データ送受信装置構成例]
上述の実施例で述べた一連の処理は、ハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたデータ処理装置内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータやマイクロコンピュータ等にインストールされる。
【0160】
図19に、上述の実施例で述べた一連の処理を実行するデータ送信装置としてのマスターサーバ、スレーブサーバ、およびデータ受信端末装置のシステム構成例を示す。本発明のシステムで送受信されるデータの一例は、符号化データであり、データ送信装置ではエンコード(符号化)処理が実行され、データ受信装置ではデコード(復号)処理が実行される。符号化されたデータはパケットとしてネットワークを介して送受信する。そのため、データ送信側では、パケット生成(パケタイズ処理)を実行し、データ受信側ではパケット展開(デパケタイズ処理)を実行する。
【0161】
図19に示すデータ送受信装置(ex.PC)850は、エンコード(符号化)処理、デコード(復号)処理を実行するとともにパケット生成、展開処理を実行するコーデック851、通信ネットワークとのインタフェースとして機能するネットワークインタフェース852、マウス837、キーボード836等の入力機器との入出力インタフェース853、ビデオカメラ833、マイク834、スピーカ835等のAVデータ入出力機器からのデータ入出力を行なうAVインタフェース854、ディスプレイ832に対するデータ出力インタフェースとしてのディスプレイ・インタフェース855、各データ入出力インタフェース、コーデック851、ネットワークインタフェース852間のデータ転送制御、その他各種プログラム制御を実行するCPU856、CPU856により制御実行される各種プログラムの格納、データの格納、CPU856のワークエリアとして機能するRAM、ROMからなるメモリ857、データ格納、プログラム格納用の記憶媒体としてのHDD858を有し、それぞれPCIバス859に接続され、相互のデータ送受信が可能な構成を持つ。
【0162】
コーデック851は、図19に示すように、例えばビデオカメラ833からの画像データ、マイク834からの音声データを入力し、符号化処理、パケット生成処理(パケタイズ)を実行し、最終的に符号化データをペイロードとしたパケットを生成する。生成されたパケットは、PCIバス859上に出力され、ネットワークインタフェース852を介してネットワークに出力され、パケットのヘッダに設定された宛先アドレスに配信される。
【0163】
また、HDD858またはメモリ857に格納されたソフトウェアエンコードプログラムに従ってCPU856の制御により、ビデオカメラ833からの画像データ、マイク834からの音声データを符号化してネットワークインタフェース852を介してネットワークに出力する処理も実行する構成としてもよい。
【0164】
一方、ネットワークを介して入力するパケット化されたデータは、ネットワークインタフェース852を介して、バス856上に出力されて、コーデック851に入力される。コーデック851では入力データのパケット展開処理(デパケタイズ)を実行し、ペイロードとして格納された符号化データを抽出後、復号処理を実行して、ディスプレイ832、スピーカ835において再生、出力する。
【0165】
上述の実施例における処理対象となる画像等のデータは、カメラ他の入力機器、例えばスキャナ等のデータ入力装置、あるいはフロッピーディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体から入力可能である。
【0166】
また、CPU856は、ROM格納プログラムに限らず、ハードディスクに格納されているプログラム、衛星若しくはネットワークから転送され、受信されてインストールされたプログラム等を、RAM(Random Access Memory)等のメモリにロードして実行することも可能である。
【0167】
ここで、本明細書において、プログラムは、1つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0168】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0169】
【発明の効果】
以上、説明してきたように、本発明によれば、それぞれ異なるシステムクロックに基づくサンプリングレートに従って画像、音声等、異なるメディアを送信する複数サーバからの送信メディアをデータ受信装置において受信して再生する構成において、データ受信端末が複数サーバの1つをマスターサーバとして指定したサーバリストを各サーバに送信し、マスターサーバとして設定されたサーバがスレーブサーバに対して、マスターサーバとスレーブサーバとのクロック差を算出するためのタイムスタンプ情報を格納した同期パケットを送信し、スレーブサーバが同期パケットに基づいてマスターサーバとスレーブサーバとのクロック差を算出して、算出値に基づいて、データ受信端末に対するスレーブメディアの転送レートを変更する構成としたので、データ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0170】
さらに、本発明の構成によれば、1つのマスターサーバに対して複数のスレーブサーバがあり、様々なメディアを配信する構成においても、各スレーブサーバに対して、同期パケットを送信することにより、各スレーブサーバは、1つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、1つのマスターサーバと複数のスレーブサーバからそれぞれ1つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、および複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【図面の簡単な説明】
【図1】本発明のデータ通信システムの構成概要を示す図である。
【図2】本発明のデータ通信システムのデータ受信端末装置の構成を示す図である。
【図3】本発明のデータ通信システムにおいて転送されるRTPパケットフォーマットを示す図である。
【図4】本発明のデータ通信システムにおいて転送されるIPパケットヘッダフォーマットを示す図である。
【図5】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図6】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図7】本発明のデータ通信システムのデータ受信端末装置におけるサーバリスト生成、および再生処理について説明するフロー図である。
【図8】本発明のデータ通信システムのデータ受信端末装置の生成するサーバリストの例を示す図である。
【図9】本発明のデータ通信システムのデータ受信端末装置における再生処理について説明するフロー図である。
【図10】本発明のデータ通信システムにおけるサーバの構成を示すブロック図である。
【図11】本発明のデータ通信システムにおけるサーバの転送レート調節部の構成を示す図である。
【図12】本発明のデータ通信システムにおけるマスターサーバの転送レート調節部の処理を説明するフローを示す図である。
【図13】本発明のデータ通信システムにおけるマスターサーバの処理を説明するフロー図である。
【図14】本発明のデータ通信システムにおけるマスターサーバが生成し、スレーブサーバに送信する同期パケットフォーマットを示す図である。
【図15】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の処理を説明するフローを示す図である。
【図16】本発明のデータ通信システムにおける同期パケットに基づくスレーブサーバの転送レート変更処理を説明する図である。
【図17】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の処理を説明するフローを示す図である。
【図18】本発明のデータ通信システムにおけるスレーブサーバの処理を説明するフロー図である。
【図19】データ送信端末装置およびデータ受信端末装置のシステム構成例を示す図である。
【符号の説明】
110 パケット通信網
120 マスターサーバ
125 システムクロック
130 スレーブサーバ
135 システムクロック
140,150 データ受信端末
145,155 システムクロック
200 サーバ
201 メディア供給部
202 パケット生成部
203 バッファ
204 転送レート調節部
205 データ送信部
206 システムクロック
207 サンプリングレート設定部
208 データ受信部
209 タイムスタンプ比較部
210 転送レート変更情報格納部
211 時刻情報付加部
221 カウンタ
222 データ出力制御部
223 カウンタ補正部
400 データ受信端末装置
411,421 データ受信部
412,422 バッファ
413,423 タイムスタンプ比較部
414,424 サンプリングレート設定部
415,425 出力時刻調節部
416,426 出力処理部
417,427 データ送信部
450 システムクロック
460 サーバリスト保持部
809 PCIバス
832 ディスプレイ
833 ビデオカメラ
834 マイク
835 スピーカ
837 マウス
838 キーボード
850 データ送受信装置
851 コーデック
852 ネットワークインタフェース
853 入出力インタフェース
854 AVインタフェース
855 ディスプレイインタフェース
856 CPU
857 メモリ
858 HDD

Claims (12)

  1. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムであり、
    前記データ受信装置は、
    同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有し、
    前記サーバリストによって選択されたマスターサーバは、
    自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行する構成を有し、
    前記スレーブサーバは、
    前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システム。
  2. 前記サーバリストは、
    同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする請求項1に記載のデータ通信システム。
  3. 前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする請求項1に記載のデータ通信システム。
  4. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ受信装置であり、
    前記データ受信装置は、
    同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行する構成を有することを特徴とするデータ受信装置。
  5. 前記サーバリストは、
    同期再生処理対象となる異なるデータを送信する複数のサーバのアドレス情報を含む構成であることを特徴とする請求項に記載のデータ受信装置。
  6. 前記データ受信装置は、
    マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較部と、
    前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部と、
    を有する構成であることを特徴とする請求項に記載のデータ受信装置。
  7. 前記データ受信装置は、
    前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Aを算出するとともに、
    前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Bを算出するタイムスタンプ比較部と、
    前記差異Aに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Aと、前記差異Bとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする請求項に記載のデータ受信装置。
  8. 前記複数のサーバ中、少なくとも1つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の1つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、
    前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする請求項に記載のデータ受信装置。
  9. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおけるデータ通信方法であり、
    前記データ受信装置において、
    同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行し、
    前記サーバリストによって選択されたマスターサーバにおいて、
    自己のシステムクロックで計測した時間情報に基づくタイムスタンプを格納した同期パケットのスレーブサーバに対する送信処理を実行し、
    前記スレーブサーバにおいて、
    前記データ受信装置に対する送信データの転送レートを、前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法。
  10. 前記マスターサーバから前記スレーブサーバに対する同期パケットは、タイムスタンプと、転送レート変更対象となるアプリケーション識別データとを含む構成であることを特徴とする請求項に記載のデータ通信方法。
  11. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムにおける受信データ制御処理方法であり、
    同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
    マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
    前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
    を有することを特徴とする受信データ制御処理方法。
  12. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
    同期再生処理対象となる異なるデータを送信する複数のサーバから1つのサーバをマスターサーバとして選択し、その他のサーバをスレーブサーバとしたサーバリストを生成して前記複数のサーバに送信する処理を実行するステップと、
    マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出するタイムスタンプ比較ステップと、
    前記タイムスタンプ比較ステップにおける算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定ステップと、
    を具備することを特徴とするコンピュータ・プログラム。
JP2001362259A 2001-11-28 2001-11-28 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム Expired - Fee Related JP3906678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001362259A JP3906678B2 (ja) 2001-11-28 2001-11-28 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001362259A JP3906678B2 (ja) 2001-11-28 2001-11-28 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム

Publications (3)

Publication Number Publication Date
JP2003163691A JP2003163691A (ja) 2003-06-06
JP2003163691A5 JP2003163691A5 (ja) 2005-07-14
JP3906678B2 true JP3906678B2 (ja) 2007-04-18

Family

ID=19172791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001362259A Expired - Fee Related JP3906678B2 (ja) 2001-11-28 2001-11-28 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP3906678B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676876B2 (en) 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US8296778B2 (en) 2006-06-27 2012-10-23 International Business Machines Corporation Computer data communications in a high speed, low latency data communications environment
JP4809256B2 (ja) 2007-01-31 2011-11-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. データストリーミング方法
KR101204445B1 (ko) 2011-12-07 2012-11-26 시큐아이닷컴 주식회사 마스터 장치와 슬레이브 장치 간 시간 동기화 시스템 및 시간 동기화 방법
JP2014230154A (ja) * 2013-05-23 2014-12-08 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
KR101644619B1 (ko) * 2014-08-22 2016-08-01 주식회사 문화방송 시간 동기화 시스템 및 그 방법

Also Published As

Publication number Publication date
JP2003163691A (ja) 2003-06-06

Similar Documents

Publication Publication Date Title
US10264070B2 (en) System and method for synchronizing media presentation at multiple recipients
US7606928B2 (en) Method and device for controlling receiver buffer fullness level in multimedia streaming
EP1398931B1 (en) Synchronous play-out of media data packets
JP4000905B2 (ja) 情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
JP3912091B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及***
US8208460B2 (en) Method and system for in-band signaling of multiple media streams
US20080259966A1 (en) Synchronization of one or more source RTP streams at multiple receiver destinations
US9621682B2 (en) Reduced latency media distribution system
KR20150055031A (ko) 재생 동기화
JP3922047B2 (ja) データ受信装置、および受信データ処理方法、並びにコンピュータ・プログラム
US20070009071A1 (en) Methods and apparatus to synchronize a clock in a voice over packet network
JP4600513B2 (ja) データ送信装置、送信レート制御方法およびプログラム
JP4042396B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP3906678B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004159101A (ja) データ伝送方法、データ送信装置、データ受信装置、及びデータ伝送システム
JP5082715B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP2002152307A (ja) データ受信装置、データ送信装置、データ通信システム、データ受信方法、データ送信方法、データ通信方法、並びにプログラム記憶媒体
JP3977784B2 (ja) リアルタイムパケット処理装置及びその方法
JP4876427B2 (ja) 通信システム、送信装置、送信方法、受信装置、受信方法、およびプログラム
JP2019211638A (ja) 処理装置、出力装置、同期制御システム、及びこれらの制御方法、並びにプログラム
JP4506222B2 (ja) 通信システム、送信装置および方法、並びにプログラム
JP2006067410A (ja) 送信装置および方法、プログラム、並びに送受信システム
JP2001320407A (ja) データ通信装置、データ通信用拡張ボード及びデータ通信方法
JP2004304271A (ja) データ送信装置およびデータ受信装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100126

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140126

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees