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

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

Info

Publication number
JP4042396B2
JP4042396B2 JP2001375222A JP2001375222A JP4042396B2 JP 4042396 B2 JP4042396 B2 JP 4042396B2 JP 2001375222 A JP2001375222 A JP 2001375222A JP 2001375222 A JP2001375222 A JP 2001375222A JP 4042396 B2 JP4042396 B2 JP 4042396B2
Authority
JP
Japan
Prior art keywords
data
server
transfer rate
slave
packet
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
JP2001375222A
Other languages
English (en)
Other versions
JP2003179662A5 (ja
JP2003179662A (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 JP2001375222A priority Critical patent/JP4042396B2/ja
Publication of JP2003179662A publication Critical patent/JP2003179662A/ja
Publication of JP2003179662A5 publication Critical patent/JP2003179662A5/ja
Application granted granted Critical
Publication of JP4042396B2 publication Critical patent/JP4042396B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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つのサーバをマスターサーバとし、他のサーバをスレーブサーバとした設定であるとともに、各サーバは各々のシステムクロックに基づいて設定する転送レートに従ったタイムスタンプ付与パケットの送信処理を実行する構成を有し、
前記データ受信装置は、
各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出し、該クロック差データを格納したメッセージのスレーブサーバに対する送信処理を実行する構成を有し、
前記スレーブサーバは、
前記メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システムにある。
【0021】
さらに、本発明のデータ通信システムの一実施態様において、前記複数のサーバがデータ受信装置に対して送信するデータは、データ転送プロトコルとしてのRTPに従ったフォーマットを有し、前記データ受信装置から前記スレーブサーバに対するメッセージは、制御プロトコルとしてのRTCPに従ったフォーマットを有することを特徴とする。
【0022】
さらに、本発明のデータ通信システムの一実施態様において、前記複数のサーバ中、少なくとも1つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の1つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする。
【0023】
さらに本発明の第2の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおけるスレーブサーバとしてのデータ送信装置であり、
該データ送信装置は、
データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを、データ受信装置から受信し、該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ送信装置にある。
【0024】
さらに、本発明のデータ送信装置の一実施態様において、前記データ送信装置は、システムクロックからの供給クロックに基づいて動作するカウンタと、前記メッセージに基づく前記カウンタの補正値を算出するカウンタ補正部とを有し、前記カウンタ補正部の補正カウンタ値に基づいてデータ転送制御を実行することにより転送レート変更処理を実行する構成であることを特徴とする。
【0025】
さらに、本発明のデータ送信装置の一実施態様において、前記データ送信装置は、複数のデータ受信装置から異なるクロック差データを格納した複数のメッセージを受信した場合において、データ転送におけるパケット間隔ジッタが最小であるデータ受信装置からのメッセージを選択して、該メッセージに格納されたクロック差データに従った転送レート変更処理を実行する構成であることを特徴とする。
【0026】
さらに、本発明の第3の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおけるデータ受信装置において、
各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較部と、
前記タイムスタンプ比較部において算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成部と、
前記転送レート変更メッセージ生成部において生成した転送レート変更メッセージをスレーブサーバに対して送信する送信部と、
を有することを特徴とするデータ受信装置にある。
【0027】
さらに、本発明のデータ受信装置の一実施態様において、前記タイムスタンプ比較部は、各サーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、各サーバのシステムクロックとの差異を算出する構成であり、前記転送レート変更メッセージ生成部は、前記タイムスタンプ比較部の算出値に基づいて算出されるマスターサーバとスレーブサーバ間のシステムクロック差を示すデータをデータ転送レート変更用データとして格納した転送レート変更メッセージを生成する構成であることを特徴とする。
【0028】
さらに、本発明のデータ受信装置の一実施態様において、前記タイムスタンプ比較部は、マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出する構成であり、前記データ受信装置は、さらに、前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部を有することを特徴とする。
【0029】
さらに、本発明のデータ受信装置の一実施態様において、前記タイムスタンプ比較部は、前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Aを算出するとともに、前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Bを算出する構成を有し、前記データ受信装置は、さらに、前記差異Aに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Aと、前記差異Bとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする。
【0030】
さらに、本発明のデータ受信装置の一実施態様において、前記転送レート変更メッセージ生成部は、マスターサーバとスレーブサーバ間のクロック差データと、前記データ受信装置が再生実行中のアプリケーション識別データとを含む構成であることを特徴とする。
【0031】
さらに、本発明のデータ受信装置の一実施態様において、前記転送レート変更メッセージ生成部は、転送レート変更メッセージを、制御プロトコルとしてのRTCPフォーマットに従って生成する構成であることを特徴とする。
【0032】
さらに、本発明の第4の側面は、
各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるシステムにおけるデータ通信方法であり、
前記複数のサーバにおいて、
1つのサーバをマスターサーバとし、他のサーバをスレーブサーバとした設定であるとともに、各サーバは各々のシステムクロックに基づいて設定する転送レートに従ったタイムスタンプ付与パケットの送信処理を実行し、
前記データ受信装置において、
各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出し、該クロック差データを格納したメッセージのスレーブサーバに対する送信処理を実行し、
前記スレーブサーバにおいて、
前記メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法にある。
【0040】
さらに本発明の第5の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステム中のスレーブサーバにおけるデータ送信方法であり、
データ受信装置から、データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを受信し、該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ送信方法にある。
【0043】
さらに、本発明の第6の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理方法であり、
各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおいて算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成ステップと、
前記転送レート変更メッセージ生成ステップにおいて生成した転送レート変更メッセージをスレーブサーバに対して送信する送信ステップと、
を有することを特徴とする受信データ処理方法にある。
【0049】
さらに本発明の第7の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステム中のスレーブサーバにおけるデータ送信処理を実行するコンピュータ・プログラムであって、
データ受信装置から、データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを受信するステップと、
該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行するステップと、
を具備することを特徴とするコンピュータ・プログラムにある。
【0050】
さらに、本発明の第8の側面は、
マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較ステップと、
前記タイムスタンプ比較ステップにおいて算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成ステップと、
前記転送レート変更メッセージ生成ステップにおいて生成した転送レート変更メッセージをスレーブサーバに対して送信する送信ステップと、
を具備することを特徴とするコンピュータ・プログラムにある。
【0051】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0052】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0053】
【発明の実施の形態】
[システム及びデータ送受信概要]
まず、図1を参照して、本発明のシステム概要及びデータ送受信処理の概要について説明する。
【0054】
図1のデータ通信システムにおいて、マスターメディアの送信を実行するマスターサーバ200、スレーブメディアの送信を実行するスレーブサーバ300は、それぞれ異なるメディア、例えば画像メディアと、音声メディア等、異なるデータを送信するサーバであり、データ受信端末400、500に対してそれぞれのメディア・データをパケット通信網100を介して送信する。データ受信端末400、500では、マスターサーバ200、スレーブサーバ300から受信するメディア(データ)を受信し、同期再生を実現する。
【0055】
これらのデータ転送は、ストリーム型伝送方式により実行され、マスターサーバ200、スレーブサーバ300からデータ受信端末400、500に対するデータ転送処理と並列してデータ受信端末400、500におけるデータ再生処理が実行される。
【0056】
なお、1システムにつき、マスターサーバは1つ存在し、マスターサーバに並列に異なるメディアを送信するサーバがスレーブサーバになる。本実施例ではスレーブサーバは1台であるが、2台以上のスレーブサーバを持つ構成としてもよい。
【0057】
例えば音声と動画を2つのメディアとしてそれぞれ異なるサーバから送信し、受信端末において、音声と動画を合わせて再生するシステム例を想定すると、音声をストリーミング配信するサーバをマスターサーバ、動画をストリーミング配信するサーバをスレーブサーバとする。あるいはその逆としてもよい。
【0058】
なお、図1に示す例では、データ受信端末400、500の2つの端末のみを示しているが、1以上の任意数の受信端末が存在可能であり、任意数の端末において、マスターサーバ200、スレーブサーバ300からのデータ受信処理を行うものとする。また、複数のメディア、例えば画像、音声等の様々なメデイアの中から、どのメディアをマスターメディアとするかは、すべての受信者側において一意なものとして予め定められているものとする。例えば音声と動画を2つのメディアとしてそれぞれ異なるサーバから送信するシステム例で、音声をストリーミング配信するサーバをマスターサーバとした設定においては、すべてのデータ受信端末において、音声メディアをマスターメディアとして扱い、動画をストリーミング配信するサーバをマスターサーバとした設定においては、すべてのデータ受信端末において、動画メディアをマスターメディアとして扱う。
【0059】
図1に示す構成において、マスターサーバ200、スレーブサーバ300、受信端末400,500の各々は、それぞれ独自のシステムクロック250,350,450,550を有し、これらの各システムクロック250,350,450,550の各々は同期せずに動作しているものとする。
【0060】
[マスターサーバの構成および処理]
次にマスターメディアの送信処理を実行する図1におけるマスターサーバ200の構成および処理について説明する。
【0061】
図2にマスターサーバ200の構成を説明するブロック図を示す。マスターサーバ200は、メディア供給部201、パケット生成部202、バッファ203、転送レート調節部204、データ送信部205、システムクロック250、サンプリングレート設定部207、データ受信部208を有する。
【0062】
メディア供給部201は、画像、音声等、送信すべきマスターメディアをパケット生成部に供給する。メディアは、例えばビデオカメラによって取得された画像、音声データ等である。なお、メディアは、CD,DVD等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等であってもよい。なお、ここでは省略してあるが、これらのデータは、符号化、例えばMPEG圧縮処理等による符号化がなされて、パケット生成部202に供給され、パケット生成部202において、符号化データをペイロードとして格納したパケットが生成される。
【0063】
パケット生成部202で生成するパケットは、例えば、リアルタイム・トランスポート・プロトコル:RTP(Real-time Transport Protocol)に従ったデータ・パケット(以下パケットと称する)である。
【0064】
パケット生成部202は、メディア供給部201から供給されるデータ(例えば符号化データ)をペイロードデータとし、RTPヘッダを付加しパケット化する。RTPパケット構成を図3に示す。RTPヘッダには、バージョン番号(v)、パディング(P)、拡張ヘッダ(X)の有無、送信元数(Counter)、マーカ情報(M:marker bit)、ペイロードタイプ(Payload type)、シーケンス番号、タイムスタンプ、同期ソース(送信元)識別子(SSRC)および貢献ソース(送信元)識別子(CSRC)の各フィールドが設けられている。データ受信側において、RTPヘッダに付与されたタイムスタンプによりRTPパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御を行うことが可能となる。なお、例えば動画像データの符号化データを格納したRTPパケットにおいては、1つの画像フレームに属する複数のRTPパケットに共通のタイムスタンプが設定される。
【0065】
なお、タイムスタンプは、図2に示すシステムクロック250の制御の下にサンプリングレート設定部207の設定するサンプリングレートに基づいて各パケット(例えばRTPパケット)に設定する。例えば、システムクロック250が90KHzクロックのクロックであるとき、動画像データについて、30fps(フレーム/秒)のレートでサンプリングして符号化データをRTPパケットに格納して送信すると仮定すると、RTPパケットのタイムスタンプの値は、90K/30=3000ずつカウントアップされ、第nフレームの符号化データを格納したパケットに設定されるタイムスタンプが12000であるとき、n+1フレームのデータを格納したパケットのタイムスタンプは15000として設定する。
【0066】
RTPヘッダを付加されたパケットはさらにIPヘッダが付与される。図4にIPパケットの構成中のIPヘッダの詳細を示す。IPv4、IPv6等のバージョンを示すバージョン、ヘッダ長、さらに、優先度情報を格納したTOS(Type of Service)フィールド、パケットの長さ、パケットの識別子、IP層でのデータ分割(フラグメント)に関する制御情報としてのフラグ、分割(フラグメント)されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すTTL(Time to Live)、上位層で利用されるプロトコル(4:IP,TCP:7,UDP:17…)ヘッダのチェックサム、送信元IPアドレス、宛て先IPアドレスを有する。
【0067】
パケット生成部202において生成されたパケットは、バッファ203に格納された後、システムクロック250のクロック供給を受ける転送レート調節部204において、転送レートが制御され、データ送信部205を介してインターネット等のパケット通信網100に送出される。
【0068】
マスターサーバ200は、さらに、データ受信端末からの制御パケット、例えば応答確認としてのACKパケット、再送要求等のパケット、あるいはセッション開始要求を受信するためのデータ受信部208を有する。
【0069】
転送レート調節部204の詳細構成を図5に示す。転送レート調節部204は、システムクロック250のクロック供給を受け、クロック供給に応じてカウンタ値を増加させるカウンタ211、カウンタ211のカウンタ値に応じてバッファ203に格納されたパケットをデータ送信部に渡すデータ出力制御部212を有する。データ出力制御部212は、カウンタ211のカウンタ値が、あらかじめ定められたカウンタ値:Vaに達したとき、バッファからパケットを順次取り出して、データ送信部205に出力する処理を実行する。
【0070】
転送レート調節部204の処理フローを図6に示す。ステップS101においてカウンタ値=0にリセットし、ステップS102においてカウンタ211をシステムクロックからのクロック供給に従ってインクリメントする。ステップS103において、カウンタ値と、予め定めた閾値:Vaと比較を実行して、カウンタ値=Vaとなったことを条件として、ステップS104において、データ(パケット)をバッファ203から取り出して、データ送信部205へ出力し、ステップS105において、さらにバッファ203に送信対象の蓄積データ(パケット)があるか否かを判定し、ある場合は、ステップS101以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、転送レートが一定に保たれる。
【0071】
マスターサーバのデータ送信処理の流れを図7に示すフローチャートに従って説明する。まず、マスターサーバは、ステップS201において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(S202でYes)すると、ステップS203へ進み、メディア供給部201から送信するメディア(データまたは符号化データ)をペイロードとしたパケットをパケット生成部において生成する。
【0072】
なお、このパケット生成においては、システムクロック250のクロック供給の下にサンプリングレート設定部207の設定したサンプリングレートに基づくタイムスタンプがパケットヘッダに設定される(図3参照)。
【0073】
ステップとS204では、パケット化されたデータをバッファ203に蓄積する。バッファ203に蓄積されたデータは、ステップS205において、図6のフローを参照して説明したように、クロック250のクロック供給に従って増分されるカウンタ211のカウンタ値が所定値:Vaになる毎に順次、データ送信部に出力され、ステップS206において、データ送信部205からパケット通信網に出力される。
【0074】
さらに、ステップS207において、送信すべきデータの有無を判定し、有りの場合は、ステップS204以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップS207においてデータ終了を示すEOS(End of Stream)パケットを送信し、処理を終了する。
【0075】
[スレーブサーバの構成および処理]
次にスレーブメディアの送信処理を実行する図1におけるスレーブサーバ300の構成および処理について説明する。
【0076】
図8にスレーブサーバ300の構成を説明するブロック図を示す。スレーブサーバ300は、メディア供給部301、パケット生成部302、バッファ303、転送レート調節部304、データ送信部305、システムクロック350、サンプリングレート設定部307、データ受信部309、さらに、転送レート変更メッセージ格納部308を有する。
【0077】
メディア供給部301は、画像、音声等、送信すべきデータをパケット生成部に供給する。メディアは、例えばビデオカメラによって取得された画像、音声データ等である。ただし、スレーブサーバ300の送信するメディアは、上述のマスターサーバ200の送信するマスターメディアとは異なるメディアであり、データ受信端末400,500において、マスターメディアに併せて再生されるスレーブメディアである。なお、メディアは、CD,DVD等の記憶媒体から入力されるデータ、あるいは外部ネットワーク、衛星等から受信するデータ等であってもよい。なお、ここでは省略してあるが、これらのデータは、符号化、例えばMPEG圧縮処理等による符号化がなされて、パケット生成部302に供給され、パケット生成部302において、符号化データをペイロードとして格納したパケットが生成される。
【0078】
パケット生成部302で生成するパケットは、上述のマスターサーバと同様、例えば、リアルタイム・トランスポート・プロトコル:RTP(Real-time Transport Protocol)に従ったデータ・パケット(以下パケットと称する)が適用可能である。
【0079】
パケット生成部302において生成されたパケットは、バッファ303に格納された後、システムクロック350のクロック供給を受ける転送レート調節部304において、転送レートが制御され、データ送信部305を介してインターネット等のパケット通信網300に送出される。
【0080】
スレーブサーバ300は、さらに、転送レート調節部304において、転送レート変更メッセージ格納部308に格納された転送レート変更メッセージに基づく出力レート変更処理を実行する。転送レート変更メッセージは、データ受信端末からの制御パケットとしてデータ受信部309を介して受信するメッセージである。データ受信部309は、データ受信応答確認としてのACKパケット、再送要求等のパケット、あるいはセッション開始要求パケット等の他に、上述の転送レート変更メッセージを受信し、受信した転送レート変更メッセージを転送レート変更メッセージ格納部308に格納する。
【0081】
転送レート変更メッセージは、マスターサーバ200からのマスターメディアと、スレーブサーバ300からのスレーブメディアの双方を受信し、同期再生を実行する受信端末400,500が生成してスレーブサーバ300に対して送信する制御用のメッセージ格納パケットであり、例えばRFC1889 で規定されているRTCP(Real-time Transport Control Protocol)に従って生成される。
【0082】
データ受信端末が生成し、スレーブサーバに送信する転送レート変更メッセージパケットの構成例を図9に示す。図9に示すように、転送レート変更メッセージパケットは、バージョン番号(v)、パディング(P)、ペイロードの種類としてのコマンド(command)が設定され、ペイロードタイプ(Payload type)として転送レート変更メッセージであることを示すタイプデータ=204、メッセージ長、パケット送信元、すなわちデータ受信端末の同期ソース識別子、受信中のデータを識別するための識別しとしてのアプリケーションの名前、および転送レート変更用データ(例えば32ビット)が格納される。
【0083】
図9に示す転送レート変更メッセージパケットの例では、転送レート変更用データとして、[103/100]が格納されている。これは、スレーブサーバからデータ受信端末に対するデータ送信レートを[103/100]に変更することを要求するメッセージであることを示す。この転送レート変更メッセージパケットのデータ受信端末における生成処理については、後段で説明する。
【0084】
スレーブサーバは、データ受信端末から図9に示すような転送レート変更メッセージパケットを受信すると、転送レート変更メッセージを転送レート変更メッセージ格納部308に格納する。転送レート変更メッセージが転送レート変更メッセージ格納部308に格納されると、転送レート調節部304は、格納された転送レート変更メッセージに基づいて出力レートを変更する。
【0085】
転送レート調節部304の詳細構成を図10に示す。転送レート調節部304は、システムクロック350のクロック供給を受け、クロック供給に応じてカウンタ値を増加させるカウンタ311、カウンタ値に応じてバッファ203に格納されたパケットをデータ送信部に渡すデータ出力制御部212を有する。さらに、スレープサーバにおいては、転送レート変更メッセージ格納部308に格納された転送レート変更メッセージに従ってカウンタ311のカウンタ値を補正して補正したカウンタ値をデータ出力制御部212に渡すカウンタ補正部313を有する。
【0086】
カウンタ補正部313は、例えば、変更メッセージ格納部308に格納された転送レート変更メッセージに、図9に示すように、転送レート変更用データとして、[103/100]が格納されている場合、カウンタ311のカウンタ値Cに転送レート変更用データ[103/100]の逆数:100/103を乗じて補正したカウンタ値C’を生成してデータ出力制御部312に渡す。すなわち、
補正カウンタ値C’=(100/103)×実カウンタ値C
として、補正処理を実行し、補正値C’をデータ出力制御部212に渡す。
【0087】
データ出力制御部312は、補正カウンタ値C’に基づいて、補正カウンタ値C’が、あらかじめ定められたカウンタ値:Vaに達したとき、バッファからパケットを順次取り出して、データ送信部305に出力する処理を実行する。
【0088】
スレーブサーバ300において、転送レート変更メッセージに基づく補正処理を実行する場合の転送レート調節部304の処理フローを図11に示す。ステップS301においてカウンタ値=0にリセットし、ステップS302においてカウンタ211をシステムクロックからのクロック供給に従ってインクリメントする。ステップS303において、カウンタのカウンタ値をデータ受信端末から受信した転送レート変更メッセージに従って変更補正する。
【0089】
次にステップS304において、補正カウンタ値と、予め定めた閾値:Vaと比較を実行して、補正カウンタ値=Vaとなったことを条件として、ステップS305において、データ(パケット)をバッファ303から取り出して、データ送信部305へ出力し、ステップS306において、さらにバッファ303に送信対象の蓄積データ(パケット)があるか否かを判定し、ある場合は、ステップS301以下の処理を繰り返し実行し、データが無い場合は、処理を終了する。この処理により、補正された転送レートによってスレーブメディアの送信処理が実行される。
【0090】
スレーブサーバのデータ送信処理の流れを図12に示すフローチャートに従って説明する。スレーブサーバは、ステップS401において、データ受信端末からのセッション開始要求を待機する。データ受信端末からのセッション開始要求を受信(S402でYes)すると、ステップS403へ進み、メディア供給部301から送信するメディア(データまたは符号化データ)をペイロードとしたパケットをパケット生成部において生成する。
【0091】
なお、このパケット生成においては、システムクロック350の供給の下にサンプリングレート設定部307の設定したサンプリングレートに基づくタイムスタンプがパケットヘッダに設定される(図3参照)。
【0092】
ステップとS404では、パケット化されたデータをバッファ303に蓄積する。ステップS405では、転送レート変更メッセージ格納部308に転送レート変更メッセージが格納されているか否かを判定し、無い場合は、ステップS406に進み、クロック250のクロック供給に従って増分される転送レート調節部304のカウンタ311の実カウンタ値に基づいて、カウンタ値が所定値:Vaになる毎に順次、データ送信部に出力され、ステップS407において、データ送信部305からパケット通信網に出力される。
【0093】
一方、転送レート変更メッセージ格納部308に転送レート変更メッセージが格納されている場合は、ステップS411に進み、クロック250のクロック供給に従って増分される転送レート調節部304のカウンタ311の実カウンタ値:Cに対して、上述した転送レート変更メッセージに基づく補正を実行して補正カウンタ値:C’を算出する。ステップS412では、補正カウンタ値:C’が所定値:Vaになる毎に順次、データ送信部に出力され、ステップS407において、データ送信部305からパケット通信網に出力される。
【0094】
さらに、ステップS408において、送信すべきデータの有無を判定し、有りの場合は、ステップS405以下を繰り返し、送信すべきデータが無しと判定された時点で、ステップS409においてデータ終了を示すEOS(End of Stream)パケットを送信し、処理を終了する。
【0095】
このように、スレーブサーバでは、データ受信端末からの転送レート変更メッセージがある場合は、転送レート調節部において、実カウンタ値:Cに対して転送レート変更メッセージに基づく補正を実行して補正カウンタ値:C’を算出し、補正カウンタ値:C’に基づいて転送レートを決定する構成であり、データ受信端末の要求に応じた転送レートによるデータ送信が可能となる。
【0096】
[データ受信端末装置の構成および処理]
次にマスターサーバからマスターメディアを受信し、スレーブサーバからスレーブメディアを受信して、受信した複数のメデイアの同期再生処理を実行するデータ受信端末装置の構成および処理について説明する。
【0097】
図13にデータ受信端末装置の構成を説明するブロック図を示す。なお、図13においては、マスターサーバからの受信データ処理部と、スレーブサーバからの受信データ処理部とを区別して示してあるが、これは、理解を容易にするために区別して記載したものであり、同一機能を実行する複数の処理部は、単一の処理部として構成して両受信データの処理を実行する構成としてもよい。
【0098】
図13のデータ受信端末装置の構成に従ってデータ再生処理について説明する。データ受信端末400は、マスターサーバ200からのマスターメディア格納パケットをデータ受信部411において受信するとともに、スレーブサーバ300からのスレーブメディア格納パケットをデータ受信部421において受信する。それぞれの受信パケットは、それぞれのバッファ412,422に格納される。
【0099】
バッファ412に格納されたマスターメディア格納パケットは、タイムスタンプ比較部413において、各パケットに設定されたタイムスタンプ情報が取り出され、マスターサーバ200から受信する各パケットのパケット受信間隔と、各パケットに設定されたタイムスタンプとの差が比較される。パケット受信間隔は、データ受信端末のシステムクロック450から供給されるクロック情報に従って計測される。
【0100】
マスターメディアを格納したパケットに設定されるタイムスタンプは、マスターサーバ200のシステムクロック250に基づいて設定されるタイムスタンプであり、設定されたタイムスタンプとパケット受信間隔とが対応するべきであるが、データ受信端末400のシステムクロック450は、マスターサーバ200のシステムクロック250との同期がとれていないものであり、マスターサーバ200のシステムクロック250に基づいて設定される各パケットのタイムスタンプの差と、データ受信端末400のシステムクロック450によって計測されるパケット受信間隔にはずれが発生する。このずれは、データ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差に相当する。
【0101】
データ受信端末400では、データ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差を考慮してデータ再生を実行する。このクロック差を考慮しないで、データ再生を実行すると、例えばデータ受信速度より早い再生を実行すると、バッファ412のデータの不足、すなわちバッファのアンダーランが発生し、データ受信速度より遅い再生を実行すると、バッファ412のデータ溢れ、すなわちバッファのオーバーフローが発生することになる。
【0102】
タイムスタンプ比較部413において算出されたデータ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差分を示す情報は、マスターメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部414、およびスレーブメディアの再生に関するサンプリングレートの設定を実行するサンプリングレート設定部424の双方に出力され、それぞれのメデイアに関するサンプリングレート設定処理が実行される。
【0103】
すなわち、マスターメディア、スレーブメディア双方のデータ再生は、タイムスタンプ比較部413において算出されたデータ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差分に基づくデータ出力時刻調節処理によって実行されることになる。
【0104】
図14を参照してマスターメディアのサンプリングレート設定処理について説明する。図14に示す例は、マスターサーバが10mm秒毎に1つのデータ処理単位(例えば画像フレーム)のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間(t)であり、各処理単位パケットには、マスターサーバ200のシステムクロック250に基づいて設定されたタイムスタンプ[10〜40]が設定されている。マスターサーバは、付加するタイムスタンプを1mm秒毎に1づつインクリメントしており、図に示す最初の処理単位パケットには、10のタイムスタンプが設定され、後続の処理単位パケットには、10mm秒後に出力されるので、10+10=20のタイムスタンプが設定される。以下、30、40とタイムスタンプが設定されたパケットが送信される。
【0105】
一方、このパケットデータを受信するデータ受信端末400では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部413で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ[40]の設定されたパケットは、タイムスタンプ[10]の設定されたパケット受信から、30mm秒後に受け取るはずである。しかし、データ受信端末400のシステムクロック450の供給クロックに基づいてタイムスタンプ比較部413における測定結果として、タイムスタンプ[10]の設定パケットからタイムスタンプ[40]の設定パケットの到着間隔が35mm秒として計測されたとする。
【0106】
これは、データ受信端末400のシステムクロック450がマスターサーバ200のシステムクロック250に対して、(到着時刻間隔/タイムスタンプの差)だけ、すなわち、35/30だけ早いことに起因するものであると判定される。
【0107】
この状態で、データ受信端末400がデータ受信端末400のシステムクロック450に基づいてマスターサーバから受信するマスターメディアを再生すると、データ受信端末400のクロック差に起因して、マスターサーバ200のパケット転送レートよりも早いスピードで再生することになり、データ受信端末400のマスターメディアのバッファ412がアンダーランしてしまう。
【0108】
アンダーランの発生を防ぐためには、データ受信端末400における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末400のサンプリングレート設定部414は、データ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差に基づいて、再生時のサンプリングレートを変更する。この場合は、サンプリングレートを35/30に変更する処理を実行する。
【0109】
この変更したサンプリングレートに基づいて出力時刻調節部415が各パケットの出力処理部416に対する出力タイミングを決定し出力することで、マスターサーバ200のシステムクロック250に同期したマスターメディア再生処理が実行される。
【0110】
出力処理部416は、バッファ412から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。
【0111】
データ受信装置には、さらに、マスターサーバ200への制御パケット、例えば応答確認としてのACKパケット、再送要求等のパケット、あるいはセッション開始要求を送信するためのデータ送信部417を有する。
【0112】
一方、スレーブサーバ300から受信し、バッファ422に格納されたスレーブメディアを格納したパケットの出力時刻調節は、サンプリングレート設定部424の設定するサンプリングレートに基づいて行われる。
【0113】
図15を参照してスレーブメディアのサンプリングレート設定処理について説明する。図15に示す例は、スレーブサーバが20mm秒毎に1つのデータ処理単位(例えば画像フレーム)のパケットを生成するサンプリングレートでタイムスタンプをパケットに付加して受信者にデータを転送している場合の処理例である。横軸が時間(t)であり、各処理単位パケットには、スレーブサーバ300のシステムクロック350に基づいて設定されたタイムスタンプ[30〜90]が設定されている。スレーブサーバは、付加するタイムスタンプを1mm秒毎に1づつインクリメントしており、図に示す最初の処理単位パケットには、30のタイムスタンプが設定され、後続の処理単位パケットには、20mm秒後に出力されるので、30+20=50のタイムスタンプが設定される。以下、70、90とタイムスタンプが設定されたパケットが送信される。
【0114】
一方、このパケットデータを受信するデータ受信端末400では、これらのパケットの到着間隔と、そのパケットに付加されているタイムスタンプをタイムスタンプ比較部423で比較する。図に示す例では、本来、データ受信端末はタイムスタンプ[90]の設定されたパケットは、タイムスタンプ[30]の設定されたパケット受信から、60mm秒後に受け取るはずである。しかし、データ受信端末400のシステムクロック450の供給クロックに基づいてタイムスタンプ比較部423における測定結果として、タイムスタンプ[30]の設定パケットからタイムスタンプ[90]の設定パケットの到着間隔が80mm秒として計測されたとする。
【0115】
これは、データ受信端末400のシステムクロック450がスレーブサーバ300のシステムクロック350に対して、(到着時刻間隔/タイムスタンプの差)だけ、すなわち、80/60だけ早いことに起因するものであると判定される。
【0116】
この状態で、データ受信端末400がデータ受信端末400のシステムクロック450に基づいてマスターサーバから受信するマスターメディアを再生すると、データ受信端末400のクロック差に起因して、スレーブサーバ300のパケット転送レートよりも早いスピードで再生することになり、データ受信端末400のスレーブメディアのバッファ422がアンダーランしてしまう。
【0117】
アンダーランの発生を防ぐためには、データ受信端末400における再生時のサンプリングレートを変更することが必要となる。そこで、データ受信端末400のサンプリングレート設定部424は、データ受信端末400のシステムクロック450と、スレーブサーバ300のシステムクロック350との差に基づいて、再生時のサンプリングレートを変更することが必要となる。この場合は、サンプリングレートを80/60に変更する処理を実行することで、スレーブサーバ300のシステムクロック350に同期した再生が可能となる。
【0118】
しかし、この処理では、マスターサーバから受信するマスターメディアをマスターサーバのシステムクロックに同期させて再生し、スレーブサーバから受信するスレーブメディアをスレーブサーバのシステムクロックに同期させて再生することになる。しかし、マスターサーバのシステムクロックと、スレーブメディアをスレーブサーバのシステムクロックとは同期しておらず、マスターメディアとスレーブメディアの同期した再生は不可能となる。
【0119】
ここで、マスターメディアとスレーブメディアの同期した再生を行うため、スレーブメディアの再生をマスターサーバのシステムクロックを基準として再生を行う。サンプリングレート設定部424は、データ受信端末400のシステムクロック450と、スレーブサーバ300のシステムクロック350との差に基づくサンプリングレート変更用データとしての[80/60]と、受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差に基づくサンプリングレート変更用データとしての[35/30]との両データを用いて、スレーブメディアのサンプリングレートを[(35/30)/(80/60)]を設定する処理を実行する。
【0120】
このサンプリングレート[(35/30)/(80/60)]に基づいて出力時刻調節部425がスレーブメディアを格納したパケットを保持したバッファ422から順次、パケットを出力処理部426に出力する。出力処理部426は、バッファ422から変更したサンプリングレートに基づいて順次入力されるパケットに格納された符号化データの復号を実行した後、ディスプレイ、スピーカ等の出力装置に出力する。この処理により、マスターサーバ200のシステムクロック250に同期したスレーブメディア再生処理が実行される。
【0121】
上記処理の結果、マスターメディア、スレーブメディアの双方ともマスターサーバ200のシステムクロック250に同期した再生が行なわれ、異なるサーバから送信される異なるメディアの同期再生が実現される。
【0122】
しかし、この状態で再生を継続すると、マスターメディアの再生は、マスターサーバ200のシステムクロック250に基づいて再生されるので、マスターメディアを格納したバッファ412には、オーバーフロー、アンダーフローの問題は生じないが、スレーブメディアを格納したバッファ422には、オーバーフロー、アンダーフローの問題が生じることになる。なぜなら、受信端末の再生サンプリングレートは、スレーブサーバ300のシステムクロック350に基づくサンプリングレートと一致していないからである。
【0123】
この不一致を解消するために、転送レート変更メッセージ生成部428は、マスターサーバ200のシステムクロック250と、スレーブサーバ300のシステムクロック350との差に基づく転送レート変更用データを格納した転送レート変更メッセージを生成して、データ送信部427を介してスレーブサーバに送信する。
【0124】
上記例の場合、すなわち、
データ受信端末400のシステムクロック450と、マスターサーバ200のシステムクロック250との差が35/30、
データ受信端末400のシステムクロック450と、スレーブサーバ300のシステムクロック350との差が80/60、
である場合、
マスターサーバ200のシステムクロック250と、スレーブサーバ300のシステムクロック350との差は、(35/30)/(80/60)=0.875となる。
【0125】
転送レート変更メッセージ生成部428は、この[0.875]を転送レート変更用データとして格納し、その他、再生処理に係るアプリケーション情報等、必要情報を格納し、先に図9を参照して説明したフォーマットを持つ転送レート変更メッセージを生成して、データ送信部427を介してスレーブサーバに送信する。
【0126】
スレーブサーバは、データ受信端末から転送レート変更メッセージを受信すると、転送レート変更メッセージに格納された転送レート変更用データを取り出して、図8、図10に示す転送レート調節部304のカウンタ補正部313においてカウンタ値を補正して、補正カウンタ値C’に基づくデータ転送を開始する。この処理は、先に図11のフローを参照して説明した通りである。
【0127】
スレーブサーバ300が、上記例のように、[0.875]を転送レート変更用データとして格納した転送レート変更メッセージを受信した場合、転送レート調節部304のカウンタ補正部313におけるカウンタ値の補正は、実際のカウンタ値:Cに対して補正カウンタ値:C’を下記式に従って設定する。
補正カウンタ値C’=(1/0.875)C
【0128】
上記式に従って、補正処理を実行し、スレーブサーバ300のデータ出力制御部312は、補正カウンタ値C’に基づいて、補正カウンタ値C’が、あらかじめ定められたカウンタ値:Vaに達したとき、バッファからパケットを順次取り出して、データ送信部305に出力する処理を実行する。
【0129】
この結果、スレーブサーバ300のデータ転送レートは、マスターサーバ200のデータ転送レートに同期することとなり、その結果、マスターサーバ200のデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末400では、マスターサーバ200から受信するマスターメディア格納パケットを一時記憶するバッファ412、スレーブサーバ300から受信するスレーブメディア格納パケットを一時記憶するバッファ422にバッファオーバーフロー、あるいはアンダーフローの問題が発生することがない。
【0130】
図16にデータ受信端末において実行するマスターメディアおよびスレーブメディアのサンプリングレート設定処理および、転送レート変更メッセージの生成、送信処理についてまとめたフローを示す。処理フローの各ステップについて説明する。
【0131】
データ受信端末は、タイムスタンプの比較処理を予め定めた時間間隔毎に行う。バッファオーバーフローや、アンダーフローは、データ送信側と再生側の非同期状態が所定時間継続した場合に発生する問題であるからであり、例えば5分間隔にタイムスタンプの比較処理を実行する。ステップS501は、このタイムスタンプ比較時間を設定したタイマの更新処理ステップであり、ステップS502のタイムスタンプ比較時間に達するまで、タイマの更新を行う。
【0132】
ステップS502でタイマがタイムスタンプの比較処理間隔、例えば5分に達したとき、ステップS503に進む。ステップS503では、マスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【0133】
ステップS504では、ステップS503で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、マスターメディアのサンプリングレートを設定する。マスターメディアの再生は、この設定されたサンプリングレートに基づいて実行される。
【0134】
次に、ステップS505では、スレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差を算出する。
【0135】
ステップS506では、ステップS505で算出したスレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差、および、ステップS503で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差に基づいて、スレーブメディアのサンプリングレートを設定する。スレーブメディアの再生は、この設定されたサンプリングレートに基づいて実行される。この処理により、マスターメディアとスレーブメディアの同期再生が可能となる。
【0136】
次に、ステップS507では、マスターサーバと、スレープサーバの各システムクロックの差を算出する。これは、ステップS503で算出したマスターサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差と、ステップS505で算出したスレーブサーバから受信するパケットのタイムスタンプと、受信端末のシステムクロックで計測したパケット間隔との差とに基づいて算出する。算出した値は、転送レート変更メッセージに格納する転送レート変更用データとする。
【0137】
ステップS508では、ステップS507で算出した転送レート変更用データを格納した転送レート変更メッセージを生成し、ステップS509において、生成した転送レート変更メッセージをスレーブサーバに対して送信する。
【0138】
以上の処理でスレーブサーバに送信された転送レート変更メッセージに従って、スレーブサーバのデータ転送レートが、マスターサーバのデータ転送レートに同期するよう変更され、その結果、マスターサーバのデータ転送レートに従ってデータ再生処理を実行しているデータ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0139】
なお、上述の実施例では、1つのスレーブサーバに対する処理のみを示しているが、1つのマスターサーバに対して複数のスレーブサーバがある場合も、各スレーブサーバに対して、転送レート変更メッセージを送信することにより、各スレーブサーバは、1つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、1つのマスターサーバと複数のスレーブサーバからそれぞれ1つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0140】
[複数の受信端末からの転送レート変更メッセージ受信時の処理]
図1に示すマスターサーバ200、およびスレーブサーバ300が複数の受信端末に対して、それぞれマスターメディア、スレーブメディアの送信処理を実行している場合、スレーブサーバ300は、複数の受信端末から異なる転送レート変更用データを格納した複数の転送レート変更メッセージを受信する場合がある。
【0141】
この場合、スレーブサーバ300は、異なる転送レート変更用データを格納した複数の転送レート変更メッセージから最適な唯一の転送レート変更用データを格納した転送レート変更メッセージを選択して、選択したメッセージに従った転送レート変更処理、すなわち転送レート変更用データに基づくカウンタ値の補正を行う必要がある。
【0142】
このメッセージ選択処理のの1つの手法について説明する。データ送信サーバであるスレーブサーバと、各データ受信端末の間では、データの受信状態を確認する制御パケットが転送される。例えばRTCP(Real-time Transport Control Protocol)に従って生成されるRTCPレシーバレポート(RTCP Receiver Report)で各受信端末からスレーブサーバに対して送信される。
【0143】
図17にRTCPレシーバレポート(RTCP Receiver Report)のフォーマットを示す。RTCPレシーバレポート(RTCP Receiver Report)は、バージョン番号(v)、パディング(P)、ペイロードタイプ(Payload type)、メッセージ長、同期ソース(送信元)識別子(SSRC)、さらに、各受信端末において計測したパケット喪失率、累積喪失パケット数、最大受信シーケンス番号、パケット間隔のゆらぎを示すパケット間隔ジッタ、最新送信レポート時刻、送信レポート経過時間の各項目が格納される。
【0144】
スレーブサーバは、図17に示すRTCPレシーバレポートを各受信端末から受信する。スレーブサーバは、受信した複数のRTCPレシーバレポート中から最小のパケット間隔ジッタ値を持つレポートを選択し、そのレポートの送信元の受信者からの転送レート変更メッセージを最適メッセージ、すなわち信頼度の高いメッセージとして選択し、その転送レート変更メッセージに格納された転送レート変更用データに基づいて転送レートの変更処理を実行する。
【0145】
上記処理は、パケット間隔ジッタ値が最小の受信端末が、パケット毎のネットワーク遅延のばらつきが少ない受信端末であるとの判断に基づく処理であり、パケット毎の受信間隔のばらつきの少ない受信状況において計測された転送レート変更用データを信頼度の高いデータとして取り扱うものである。
【0146】
上述した処理により、マスターサーバ、およびスレーブサーバが複数の受信端末に対して、それぞれマスターメディア、スレーブメディアの送信処理を実行している場合において、スレーブサーバが、複数の受信端末から異なる転送レート変更用データを格納した複数の転送レート変更メッセージを受信しても、その中から最も信頼度の高い転送レート変更用データを選択して、転送レートの変更処理を実行することが可能となる。
【0147】
[データ送受信装置構成例]
上述の実施例で述べた一連の処理は、ハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたデータ処理装置内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータやマイクロコンピュータ等にインストールされる。
【0148】
図18に、上述の実施例で述べた一連の処理を実行するデータ送信装置としてのマスターサーバ、スレーブサーバ、およびデータ受信端末装置のシステム構成例を示す。本発明のシステムで送受信されるデータの一例は、符号化データであり、データ送信装置ではエンコード(符号化)処理が実行され、データ受信装置ではデコード(復号)処理が実行される。符号化されたデータはパケットとしてネットワークを介して送受信する。そのため、データ送信側では、パケット生成(パケタイズ処理)を実行し、データ受信側ではパケット展開(デパケタイズ処理)を実行する。
【0149】
図18に示すデータ送受信装置(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に接続され、相互のデータ送受信が可能な構成を持つ。
【0150】
コーデック851は、図18に示すように、例えばビデオカメラ833からの画像データ、マイク834からの音声データを入力し、符号化処理、パケット生成処理(パケタイズ)を実行し、最終的に符号化データをペイロードとしたパケットを生成する。生成されたパケットは、PCIバス859上に出力され、ネットワークインタフェース852を介してネットワークに出力され、パケットのヘッダに設定された宛先アドレスに配信される。
【0151】
また、HDD858またはメモリ857に格納されたソフトウェアエンコードプログラムに従ってCPU856の制御により、ビデオカメラ833からの画像データ、マイク834からの音声データを符号化してネットワークインタフェース852を介してネットワークに出力する処理も実行する構成としてもよい。
【0152】
一方、ネットワークを介して入力するパケット化されたデータは、ネットワークインタフェース852を介して、バス856上に出力されて、コーデック851に入力される。コーデック851では入力データのパケット展開処理(デパケタイズ)を実行し、ペイロードとして格納された符号化データを抽出後、復号処理を実行して、ディスプレイ832、スピーカ835において再生、出力する。
【0153】
上述の実施例における処理対象となる画像等のデータは、カメラ他の入力機器、例えばスキャナ等のデータ入力装置、あるいはフロッピーディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体から入力可能である。
【0154】
また、CPU856は、ROM格納プログラムに限らず、ハードディスクに格納されているプログラム、衛星若しくはネットワークから転送され、受信されてインストールされたプログラム等を、RAM(Random Access Memory)等のメモリにロードして実行することも可能である。
【0155】
ここで、本明細書において、プログラムは、1つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0156】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0157】
【発明の効果】
以上、説明してきたように、本発明によれば、それぞれ異なるシステムクロックに基づくサンプリングレートに従って画像、音声等、異なるメディアを送信する複数サーバからの送信メディアをデータ受信装置において受信して再生する構成において、データ受信端末装置が、1つのマスターサーバのクロックとその他のスレーブサーバのクロック差を各サーバから受信するパケットのタイムスタンプに基づいて算出し、算出した値を転送レート変更用データとして格納した転送レート変更メッセージを生成して、スレーブサーバに送信し、スレーブサーバにおいて、転送レート変更メッセージに従って、転送レートを変更する構成としたので、データ受信端末は、マスターメディア格納パケットを記憶するバッファ、スレーブメディア格納パケットを記憶するバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【0158】
さらに、本発明の構成によれば、1つのマスターサーバに対して複数のスレーブサーバがあり、様々なメディアを配信する構成においても、各スレーブサーバに対して、転送レート変更メッセージを送信することにより、各スレーブサーバは、1つのマスターサーバのシステムクロックに同期したデータ送信処理を実行することが可能となり、1つのマスターサーバと複数のスレーブサーバからそれぞれ1つのマスターメディアと、複数のスレーブメディアを受信する受信端末では、マスターメディア格納パケットを記憶するバッファ、および複数の異なるスレーブメディア格納パケットを記憶する複数のバッファについてのオーバーフロー、あるいはアンダーフローを発生させることなく、安定した同期再生処理を実行することが可能となる。
【図面の簡単な説明】
【図1】本発明のデータ通信システムの構成概要を示す図である。
【図2】本発明のデータ通信システムのマスターサーバの構成を示す図である。
【図3】本発明のデータ通信システムにおいて転送されるRTPパケットフォーマットを示す図である。
【図4】本発明のデータ通信システムにおいて転送されるIPパケットヘッダフォーマットを示す図である。
【図5】本発明のデータ通信システムにおけるマスターサーバの転送レート調節部の構成を示す図である。
【図6】本発明のデータ通信システムにおけるマスターサーバの転送レート調節部の処理を説明するフローを示す図である。
【図7】本発明のデータ通信システムにおけるマスターサーバの処理を説明するフロー図である。
【図8】本発明のデータ通信システムのスレーブサーバの構成を示す図である。
【図9】本発明のデータ通信システムのスレーブサーバの受信する転送レート変更メッセージパケットのフォーマットを示す図である。
【図10】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の構成を示す図である。
【図11】本発明のデータ通信システムにおけるスレーブサーバの転送レート調節部の処理を説明するフローを示す図である。
【図12】本発明のデータ通信システムにおけるスレーブサーバの処理を説明するフロー図である。
【図13】本発明のデータ通信システムのデータ受信端末装置の構成を示す図である。
【図14】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図15】本発明のデータ通信システムのデータ受信端末装置におけるサンプリングレート設定処理について説明する図である。
【図16】本発明のデータ通信システムのデータ受信端末装置における処理について説明するフロー図である。
【図17】本発明のデータ通信システムのデータ受信端末装置からスレーブサーバに対して送信されるRTCPレシーバレポートのフォーマットを示す図である。
【図18】データ送信端末装置およびデータ受信端末装置のシステム構成例を示す図である。
【符号の説明】
100 パケット通信網
200 マスターサーバ
250 システムクロック
300 スレーブサーバ
350 システムクロック
400,500 データ受信端末
450,550 システムクロック
201 メディア供給部
202 パケット生成部
203 バッファ
204 転送レート調節部
205 データ送信部
207 サンプリングレート設定部
208 データ受信部
211 カウンタ
212 データ出力制御部
301 メディア供給部
302 パケット生成部
303 バッファ
304 転送レート調節部
305 データ送信部
307 サンプリングレート設定部
308 転送レート変更メッセージ格納部
309 データ受信部
311 カウンタ
312 データ出力制御部
313 カウンタ補正部
411,421 データ受信部
412,422 バッファ
413,423 タイムスタンプ比較部
414,424 サンプリングレート設定部
415,425 出力時刻調節部
416,426 出力処理部
417,427 データ送信部
428 転送レート変更メッセージ生成部
809 PCIバス
832 ディスプレイ
833 ビデオカメラ
834 マイク
835 スピーカ
837 マウス
838 キーボード
850 データ送受信装置
851 コーデック
852 ネットワークインタフェース
853 入出力インタフェース
854 AVインタフェース
855 ディスプレイインタフェース
856 CPU
857 メモリ
858 HDD

Claims (17)

  1. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるデータ通信システムであり、
    前記複数のサーバは、
    1つのサーバをマスターサーバとし、他のサーバをスレーブサーバとした設定であるとともに、各サーバは各々のシステムクロックに基づいて設定する転送レートに従ったタイムスタンプ付与パケットの送信処理を実行する構成を有し、
    前記データ受信装置は、
    各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出し、該クロック差データを格納したメッセージのスレーブサーバに対する送信処理を実行する構成を有し、
    前記スレーブサーバは、
    前記メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ通信システム。
  2. 前記複数のサーバがデータ受信装置に対して送信するデータは、データ転送プロトコルとしてのRTPに従ったフォーマットを有し、前記データ受信装置から前記スレーブサーバに対するメッセージは、制御プロトコルとしてのRTCPに従ったフォーマットを有することを特徴とする請求項1に記載のデータ通信システム。
  3. 前記複数のサーバ中、少なくとも1つのサーバは、動画像データのデータ受信装置に対する送信処理を実行し、前記複数のサーバ中、少なくとも他の1つのサーバは、音声データの該データ受信装置に対する送信処理を実行する構成であり、
    前記データ受信装置は、各サーバから受信する動画像データおよび音声データの同期再生処理を実行する構成であることを特徴とする請求項1に記載のデータ通信システム。
  4. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおけるスレーブサーバとしてのデータ送信装置であり、
    該データ送信装置は、
    データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを、データ受信装置から受信し、該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行する構成を有することを特徴とするデータ送信装置。
  5. 前記データ送信装置は、
    システムクロックからの供給クロックに基づいて動作するカウンタと、
    前記メッセージに基づく前記カウンタの補正値を算出するカウンタ補正部とを有し、
    前記カウンタ補正部の補正カウンタ値に基づいてデータ転送制御を実行することにより転送レート変更処理を実行する構成であることを特徴とする請求項4に記載のデータ送信装置。
  6. 前記データ送信装置は、
    複数のデータ受信装置から異なるクロック差データを格納した複数のメッセージを受信した場合において、
    データ転送におけるパケット間隔ジッタが最小であるデータ受信装置からのメッセージを選択して、該メッセージに格納されたクロック差データに従った転送レート変更処理を実行する構成であることを特徴とする請求項4に記載のデータ送信装置。
  7. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおけるデータ受信装置において、
    各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較部と、
    前記タイムスタンプ比較部において算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成部と、
    前記転送レート変更メッセージ生成部において生成した転送レート変更メッセージをスレーブサーバに対して送信する送信部と、
    を有することを特徴とするデータ受信装置。
  8. 前記タイムスタンプ比較部は、
    各サーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、各サーバのシステムクロックとの差異を算出する構成であり、
    前記転送レート変更メッセージ生成部は、
    前記タイムスタンプ比較部の算出値に基づいて算出されるマスターサーバとスレーブサーバ間のシステムクロック差を示すデータをデータ転送レート変更用データとして格納した転送レート変更メッセージを生成する構成であることを特徴とする請求項7に記載のデータ受信装置。
  9. 前記タイムスタンプ比較部は、
    マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異を算出する構成であり、
    前記データ受信装置は、さらに、
    前記タイムスタンプ比較部の算出値に基づいてマスターサーバからの受信データの再生サンプリングレートを設定するサンプリングレート設定部を有することを特徴とする請求項7に記載のデータ受信装置。
  10. 前記タイムスタンプ比較部は、
    前記マスターサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、マスターサーバのシステムクロックとの差異Aを算出するとともに、
    前記スレーブサーバからの受信パケットのタイムスタンプと、該データ受信装置のシステムクロックに基づいて計測したパケット受信間隔とに基づいて、該データ受信装置のシステムクロックと、スレーブサーバのシステムクロックとの差異Bを算出する構成を有し、
    前記データ受信装置は、さらに、
    前記差異Aに基づいてマスターサーバからの受信データの再生サンプリングレートを設定するとともに、前記差異Aと、前記差異Bとに基づいて、スレーブサーバからの受信データの再生サンプリングレートを、マスターサーバのシステムクロックに同期したレートとして設定するサンプリングレート設定部を有することを特徴とする請求項7に記載のデータ受信装置。
  11. 前記転送レート変更メッセージ生成部は、
    マスターサーバとスレーブサーバ間のクロック差データと、前記データ受信装置が再生実行中のアプリケーション識別データとを含む構成であることを特徴とする請求項7に記載のデータ受信装置。
  12. 前記転送レート変更メッセージ生成部は、
    転送レート変更メッセージを、制御プロトコルとしてのRTCPフォーマットに従って生成する構成であることを特徴とする請求項7に記載のデータ受信装置。
  13. 各々が異なるデータを送信するデータ送信装置としての複数のサーバと、該複数のサーバからの送信データを受信するデータ受信装置とからなるシステムにおけるデータ通信方法であり、
    前記複数のサーバにおいて、
    1つのサーバをマスターサーバとし、他のサーバをスレーブサーバとした設定であるとともに、各サーバは各々のシステムクロックに基づいて設定する転送レートに従ったタイムスタンプ付与パケットの送信処理を実行し、
    前記データ受信装置において、
    各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出し、該クロック差データを格納したメッセージのスレーブサーバに対する送信処理を実行し、
    前記スレーブサーバにおいて、
    前記メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ通信方法。
  14. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステム中のスレーブサーバにおけるデータ送信方法であり、
    データ受信装置から、データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを受信し、該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行することを特徴とするデータ送信方法。
  15. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理方法であり、
    各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較ステップと、
    前記タイムスタンプ比較ステップにおいて算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成ステップと、
    前記転送レート変更メッセージ生成ステップにおいて生成した転送レート変更メッセージをスレーブサーバに対して送信する送信ステップと、
    を有することを特徴とする受信データ処理方法。
  16. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステム中のスレーブサーバにおけるデータ送信処理を実行するコンピュータ・プログラムであって、
    データ受信装置から、データ受信装置がマスターサーバとスレーブサーバからの受信パケットのタイムスタンプに基づいて算出したマスターサーバとスレーブサーバ間のクロック差データを格納したメッセージを受信するステップと、
    該受信メッセージに基づいて、データ転送レートを前記マスターサーバのシステムクロックに同期させる転送レート変更処理を実行するステップと、
    を具備することを特徴とするコンピュータ・プログラム。
  17. マスターサーバおよびスレーブサーバの各々がデータ受信装置に対して異なるデータを送信し、データ受信装置において各サーバからの受信データの同期再生処理を実行するシステムにおける受信データ処理を実行するコンピュータ・プログラムであって、
    各サーバからの受信パケットのタイムスタンプに基づいて、マスターサーバとスレーブサーバ間のクロック差を算出するタイムスタンプ比較ステップと、
    前記タイムスタンプ比較ステップにおいて算出したクロック差データを格納したメッセージを生成する転送レート変更メッセージ生成ステップと、
    前記転送レート変更メッセージ生成ステップにおいて生成した転送レート変更メッセージをスレーブサーバに対して送信する送信ステップと、
    を具備することを特徴とするコンピュータ・プログラム。
JP2001375222A 2001-12-10 2001-12-10 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム Expired - Fee Related JP4042396B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
JP2003179662A JP2003179662A (ja) 2003-06-27
JP2003179662A5 JP2003179662A5 (ja) 2005-07-21
JP4042396B2 true JP4042396B2 (ja) 2008-02-06

Family

ID=19183633

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4042396B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220070242A1 (en) * 2020-09-01 2022-03-03 Verizon Media Inc. Synchronization of streaming content using live edge offsets

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10030357A1 (de) * 2000-06-21 2002-01-17 Heidenhain Gmbh Dr Johannes Verfahren und Vorrichtung zur seriellen Datenübertragung zwischen einem Positionsmesssystem und einer Verarbeitungseinheit
JP2005328280A (ja) 2004-05-13 2005-11-24 Canon Inc データ処理装置
US7660366B2 (en) * 2004-08-30 2010-02-09 Harmonic Inc. Message synchronization over a stochastic network
JP4537169B2 (ja) * 2004-10-08 2010-09-01 キヤノン株式会社 ホスト装置及びその制御方法
JP4809256B2 (ja) 2007-01-31 2011-11-09 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. データストリーミング方法
JP2009237470A (ja) * 2008-03-28 2009-10-15 Yamaha Corp 電子音楽制作・再生装置およびその制御方法を実現するためのプログラム
KR101644619B1 (ko) * 2014-08-22 2016-08-01 주식회사 문화방송 시간 동기화 시스템 및 그 방법
US9871609B2 (en) 2015-07-08 2018-01-16 Mitsubishi Electric Corporation Network system, time master station, and time slave station
KR101907438B1 (ko) * 2016-12-08 2018-10-15 현대오트론 주식회사 차량용 게이트웨이의 주기 메시지 송수신 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220070242A1 (en) * 2020-09-01 2022-03-03 Verizon Media Inc. Synchronization of streaming content using live edge offsets
US11652860B2 (en) * 2020-09-01 2023-05-16 Yahoo Assets Llc Synchronization of streaming content using live edge offsets

Also Published As

Publication number Publication date
JP2003179662A (ja) 2003-06-27

Similar Documents

Publication Publication Date Title
US10264070B2 (en) System and method for synchronizing media presentation at multiple recipients
EP1398931B1 (en) Synchronous play-out of media data packets
US7606928B2 (en) Method and device for controlling receiver buffer fullness level in multimedia streaming
US7680153B2 (en) Method and device for stream synchronization of real-time multimedia transport over packet network
US7724780B2 (en) Synchronization of one or more source RTP streams at multiple receiver destinations
US8208460B2 (en) Method and system for in-band signaling of multiple media streams
US9621682B2 (en) Reduced latency media distribution system
JP3922047B2 (ja) データ受信装置、および受信データ処理方法、並びにコンピュータ・プログラム
JP4042396B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP4600513B2 (ja) データ送信装置、送信レート制御方法およびプログラム
WO2011057588A1 (zh) 媒体流切换同步方法和流媒体服务器
JP3906678B2 (ja) データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP5082715B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP3977784B2 (ja) リアルタイムパケット処理装置及びその方法
JP4506222B2 (ja) 通信システム、送信装置および方法、並びにプログラム
JP2006067410A (ja) 送信装置および方法、プログラム、並びに送受信システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20061003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071009

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: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131122

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees