(57)【特許請求の範囲】
【請求項１】
それぞれネットワークを介してストリームを送信する複数のデータ送信部と、
各ストリームのネットワークトラフィック状況情報としてのパケットロス率および往復遅延時間を取得する情報取得部と、
上記情報取得部で取得された各ストリームのパケットロス率の平均値ｐと上記情報取得部で取得された各ストリームの往復遅延時間の平均値ＲＴＴとを算出する統計処理部と、
上記統計処理部で算出された上記パケットロス率の平均値ｐおよび上記往復遅延時間の平均値ＲＴＴを用いて、
【数１】
0004600513.tif 000005
のＴＣＰスループット方程式により総合伝送レートＴを求める演算部と、
上記演算部で求められた総合伝送レートＴおよび予め設定された割り当て比率に基づいて、各ストリームの送信レートを設定する送信レート設定部と
を備えるデータ送信装置。
【請求項２】
それぞれネットワークを介してストリームを送信する複数のデータ送信部を備えるデータ送信装置におけるレート制御方法であって、
各ストリームのネットワークトラフィック状況情報としてのパケットロス率および往復遅延時間を取得する情報取得ステップと、
上記情報取得ステップで取得された各ストリームのパケットロス率の平均値ｐと上記情報取得ステップで取得された各ストリームの往復遅延時間の平均値ＲＴＴとを算出する統計処理ステップと、
上記統計処理ステップで算出された上記パケットロス率の平均値ｐおよび上記往復遅延時間の平均値ＲＴＴを用いて、
【数２】
0004600513.tif 000006
のＴＣＰスループット方程式により総合伝送レートＴを求める演算ステップと、
上記演算ステップで求められた総合伝送レートＴおよび予め設定された割り当て比率に基づいて、各ストリームの送信レートを設定する送信レート設定ステップと
を有する送信レート制御方法。
【請求項３】
それぞれネットワークを介してストリームを送信する複数のデータ送信部を備えるデータ送信装置を制御するコンピュータを、
各ストリームのネットワークトラフィック状況情報としてのパケットロス率および往復遅延時間を取得する情報取得手段と、
上記情報取得手段で取得された各ストリームのパケットロス率の平均値ｐと上記情報取得手段で取得された各ストリームの往復遅延時間の平均値ＲＴＴとを算出する統計処理手段と、
上記統計処理手段で算出された上記パケットロス率の平均値ｐおよび上記往復遅延時間の平均値ＲＴＴを用いて、
【数３】
0004600513.tif 000007
のＴＣＰスループット方程式により総合伝送レートＴを求める演算手段と、
上記演算手段で求められた総合伝送レートＴおよび予め設定された割り当て比率に基づいて、各ストリームの送信レートを設定する送信レート設定手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ送信装置、送信レート制御方法およびプログラムに関する。詳しくは、この発明は、各ストリームのネットワークトラフィック状況情報の統計処理結果に基づいて総合伝送レートを求め、当該総合伝送レートおよび予め設定された割り当て比率に基づいて各ストリームの送信レートを設定することにより、マルチストリーム伝送時のレート制御を良好に行い得るようにしたデータ送信装置等に係るものである。
【背景技術】
【０００２】
近年、インターネット上のデータ転送において、従来から利用されているダウンロード型伝送方式に加えて、ストリーム型伝送方式によるサービスが増加してきている。ここで、映像ファイルや音声ファイルといったマルチメディアの伝送を例に採って考える。前者のダウンロード型伝送方式では、配信サーバからデータファイルを一旦受信側端末にダウンロードして、その後に再生する。そのため、この方式ではファイル転送が完全に終わるまでは再生できず、長時間再生やリアルタイム再生などには不向きである。
【０００３】
後者のストリーム型伝送方式では、送信側から受信側端末にデータ転送がされている間に、受信データを再生できる。そのため、インターネット電話、遠隔テレビ会議、ビデオオンデマンドといったインターネットサービスに利用されている。
【０００４】
ストリーム型伝送方式に適したインターネット技術に、IETF RFC3550で規定されているＲＴＰ（Realtime TransportProtocol）がある。ＲＴＰによるデータ転送では、パケットに時間情報としてタイムスタンプを付加しておき、これによって送信側と受信側の時間的関係を把握することで、パケット転送の遅延ゆらぎ（ジッター）などの影響を受けずに同期をとって再生することができる。
【０００５】
ＲＴＰは実時間のデータ転送を保証しているものではない。パケット配送の優先度や設定、管理などは、ＲＴＰが提唱するトランスポートサービスの範疇ではない。そのため、ＲＴＰパケットは他のパケットと同様に配送遅延やパケット損失がおきる可能性がある。このような事態が起こっても、受信側は期待する時間内に到着したパケットだけを利用してデータを再生することが可能である。これは、映像や音声データが多少のデータ損失が  あったとしても、ある程度再生できるからである。
【０００６】
ＲＴＰを用いてデータ転送の信頼性を向上させる手法として、ＲＦＣ３４４８に記載されたＴＦＲＣ（TCP Friendly Rate Control ）をベースとしたアルゴリズムによって、送信レートの制御を行うことが提案されている（例えば、特許文献１参照）。ＴＦＲＣをベースとしてレート制御を行うものとして、例えば、ＡＲＣ（Adaptive Rate Control）方式がある。
【０００７】
さらに、リアルタイム伝送の多様性も進んでおり、映像などをマルチストリームで伝送することも普及している。例として、テレビ会議などの場合は、映像と共にプレゼンテーションデータを伝送すること、あるいはデュアルビデオ（Dual Video）伝送などがある。マルチストリーム伝送では、独立にレート制御を行うのが通常であり、上述のＴＦＲＣは，複数のストリーミングの場合でも特に問題なく機能する。
【特許文献１】特開２００４−１９３９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように複数のストリームのレート制御を独立して行うと、例えば、一方のストリームのレートが大きく変動する場合に、その変動が他方のストリームにも影響するという問題がある。
【０００９】
例えば、ストリーム１においてパケットロスが大量に出た場合そのストリームに関してレートが下がり、それにより生じた空き状況をストリーム２が利用するということが考えられる。この場合、ストリーム２のレートが急に上がるだけでなく、その影響でストリーム１のレートを回復することも難しくなる。また、互いに独立してレート制御を行っているので、二つのレートの比率を制御することも難しくなる。図８は、ストリーム１，２のレート制御を独立して行っている場合のレート変動の一例を示している。
【００１０】
この発明の目的は、マルチストリーム伝送時のレート制御を良好に行うことにある。
【課題を解決するための手段】
【００１１】
この発明の概念は、
それぞれネットワークを介してストリームを送信する複数のデータ送信部と、
各ストリームのネットワークトラフィック状況情報としてのパケットロス率および往復遅延時間を取得する情報取得部と、
上記情報取得部で取得された各ストリームのパケットロス率の平均値ｐと上記情報取得部で取得された各ストリームの往復遅延時間の平均値ＲＴＴとを算出する統計処理部と、
上記統計処理部で算出された上記パケットロス率の平均値ｐおよび上記往復遅延時間の平均値ＲＴＴを用いて、
【数４】
0004600513.tif 000002
のＴＣＰスループット方程式により総合伝送レートＴを求める演算部と、
上記演算部で求められた総合伝送レートＴおよび予め設定された割り当て比率に基づいて、各ストリームの送信レートを設定する送信レート設定部と
を備えるデータ送信装置にある。
【００１２】
この発明においては、複数のデータ送信部により、それぞれネットワーク、例えばインターネットを介してストリームが送信される。すなわち、複数のデータ送信部により、マルチストリーム伝送が行われる。
【００１３】
情報取得部により、各ストリームのネットワークトラフィック状況情報が取得される。ネットワークトラフィック状況情報には、例えば、少なくとも、パケットロス率、往復遅延時間（ＲＴＴ：Round TripTime）、前回の送信レートまたは受信レートの情報が含まれる。後述するように、IETF RFC3448におけるＴＣＰスループット方程式によって総合伝送レートを算出する場合、ネットワークトラフィック状況情報には、少なくとも、パケットロス率および往復遅延時間の情報が含まれることになる。
【００１４】
統計処理部により、各ストリームのネットワークトラフィック状況情報が統計処理される。統計処理とは、平均値を求める処理、加算値を求める処理等を意味する。例えば、各ストリームのパケットロス率、往復遅延時間に関しては、平均値を求める処理が行われる。また、例えば、各ストリームの受信レート、前回の送信レートに関しては、総和を求める処理が行われる。
【００１５】
演算部により、統計処理部の処理結果に基づいて総合伝送レートが求められる。例えば、ネットワークトラフィック状況情報としてパケットロス率および往復遅延時間を用いる場合、各ストリームのパケットロス率、往復遅延時間の平均値が用いられて、IETF RFC3448におけるＴＣＰスループット方程式によって、総合伝送レートが算出される。
【００１６】
送信レート設定部により、総合伝送レートおよび割り当て比率に基づいて、各ストリームの送信レートが設定される。割り当て比率は予め設定されている。各データ送信部では、このように設定された各ストリームの送信レートで、ストリーム送信が行われる。
【００１７】
この発明においては、各ストリームのネットワークトラフィック状況情報の統計処理結果に基づいて総合伝送レートを求め、当該総合伝送レートおよび予め設定された割り当て比率に基づいて各ストリームの送信レートを設定するものである。そのため、ネットワークの有効帯域に適したマルチストリーム伝送が可能となる。また、ネットワークに流す総合トラフィックを制御でき、ネットワークにおける輻輳を制御することが可能となる。また、各ストリームの送信レート比率を保つことが可能となる。
【発明の効果】
【００１８】
この発明によれば、各ストリームのネットワークトラフィック状況情報の統計処理結果に基づいて総合伝送レートを求め、当該総合伝送レートおよび予め設定された割り当て比率に基づいて各ストリームの送信レートを設定するものであり、マルチストリーム伝送時のレート制御を良好に行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら、この発明の実施の形態について説明する。図１は、実施の形態としてのデータ通信システム１００の構成例を示している。このデータ通信システム１００は、データ送信装置２００およびデータ受信装置３００からなっている。これらデータ送信装置２００およびデータ受信装置３００は、ネットワークとしてのインターネット４００を介して接続されている。このデータ通信システム１００は、２つのストリームを並行して伝送することができる。
【００２０】
データ送信装置２００について説明する。このデータ送信装置２００は、エンコーダ２０１ａ，２０１ｂと、パケタイズ部２０２ａ，２０２ｂと、ＲＴＰ送信部２０３ａ，２０３ｂと、ＲＴＣＰ通信部２０４ａ，２０４ｂと、レート制御部２０６とを有している。なお、データ送信装置２００からデータ受信装置３００に伝送するデータとしては、ビデオデータ、オーディオデータ等があるが、以下の説明では、ビデオデータを伝送する構成を中心として説明する。
【００２１】
エンコーダ２０１ａ，２０１ｂは、伝送データとしてのビデオデータに対して符号化処理、例えばＭＰＥＧ２、ＭＰＥＧ４、ＪＰＥＧ２０００等の圧縮処理を行う。パケタイズ部２０２ａ，２０２ｂは、エンコーダ２０１ａ，２０１ｂで生成された符号化データをパケット化してデータパケットを生成する。パケタイズ部２０２ａ，２０２ｂは、ＲＴＰに従ったデータパケット（以下、適宜、「パケット」と称する）を生成する。このＲＴＰは、IETF RFC1889で規定されている。パケタイズ部２０２ａ，２０２ｂは、符号化データをペイロードとしたパケットを生成する処理を実行する。ペイロードデータに対してＲＴＰパケットヘッダを付加してパケット化する。
【００２２】
図２は、ＲＴＰパケットの構成を示している。ＲＴＰヘッダには、ヴァージョン番号（ｖ）、パディング（Ｐ）、拡張ヘッダの有無を示す拡張ビット、送信元数（Counter）、マーカ情報（marker bit）、ペイロードタイプ（Payload type）、シーケンス番号、タイムスタンプ（ＴＩＭＥＳＴＡＭＰ）、同期ソース（送信元）識別子（ＳＳＲＣ）および貢献ソース（送信元）識別子（ＣＳＲＣ）の各フィールドが配されている。
【００２３】
データ受信側において、ＲＴＰヘッダに付与されたタイムスタンプによりＲＴＰパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または、音声の再生制御が可能となる。なお、例えば、動画像データの符号化データを格納したＲＴＰパケットにおいては、１つのビデオフレームに属する複数のＲＴＰパケットに共通のタイムスタンプが設定され、各フレームを構成する終端パケットには、終端であることを示す識別フラグがＲＴＰヘッダに格納される。
【００２４】
図１に戻って、ＲＴＰ送信部２０３ａ，２０３ｂは、パケタイズ部２０２ｂから供給されるＲＴＰパケットを、ＩＰヘッダを付与した後に、インターネット（ＩＰ網）４００に送信する。エンコーダ、パケタイズ部およびＲＴＰ送信部は、データ送信部を構成している。この場合、エンコーダ２０１ａ、パケタイズ部２０２ａおよびＲＴＰ送信部２０３ａは、ビデオストリーム１を送信するデータ送信部を構成する。また、エンコーダ２０１ｂ、パケタイズ部２０２ｂおよびＲＴＰ送信部２０３ｂは、ビデオストリーム２を送信するデータ送信部を構成する。
【００２５】
図３は、ＩＰヘッダのフォーマットを示している。ＩＰヘッダには、ＩＰｖ４、ＩＰｖ６等のヴァージョンを示すヴァージョン、ヘッダ長、さらに、優先度情報を格納したＴＯＳ（Type of Service）フィールド、パケットの長さ、パケットの識別子、フラグが配されている。フラグは、ＩＰ層でのデータ分割（フラグメント）に関する制御情報である。また、ＩＰヘッダには、分割（フラグメント）されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すＴＴＬ（Time to Live）、上位層で利用されるプロトコル（例：TCP=6，UDP=17）、ヘッダのチェックサム、送信元ＩＰアドレス、宛て先ＩＰアドレスが配されている。
【００２６】
ＲＴＣＰ部２０４ａ，２０４ｂは、データ受信装置３００との間で、ＲＴＣＰ（Real-time Transport Control Protocol）パケットの通信を行う。このＲＴＣＰは、IETF RFC1889で規定されている。図４は、ＲＴＣＰパケットのフォーマットを示している。ＲＴＣＰパケットは、ＲＴＣＰヘッダおよびＲＴＣＰデータからなる。ＲＴＣＰヘッダには、ヴァージョン情報（Version：Ｖ）、パディング（Padding：Ｐ）、サブタイプ（subtype）、パケットタイプ（Packet Type）、レングス（Length）情報、ＳＳＲＣ／ＣＳＲＣ識別子、アスキー（ASCII）で記述されるＮａｍｅが記述されている。さらに、この後に、アプリケーション固有の情報が付加される。
【００２７】
ＲＴＣＰ通信部２０４ａ，２０４ｂは、ＲＴＣＰパケットとして、少なくとも、各ストリームのパケットロス率の情報を含んだＲＴＣＰパケットを、データ受信装置３００から受信する。
【００２８】
ＲＴＣＰ通信部２０４ａ，２０４ｂは、ＲＴＴ（Round Trip Time）算出部２０５ａ，２０５ｂを備えている。ＲＴＴ算出部２０５ａ，２０５ｂは、例えば、ＳＲ（Sender Report）ブロックを含むＲＴＣＰ パケットを送信してからＲＲ（ReceiverReport）ブロックを含むＲＴＣＰ パケットを受信するまでの時間に基づいて、各ストリームのＲＴＴを算出する。
【００２９】
各ストリームのパケットロス率およびＲＴＴは、各ストリームのネットワークトラフィック状況情報を構成している。この意味で、ＲＴＣＰ通信部２０４ａ，２０４ｂは、情報取得部を構成している
【００３０】
レート制御部２０６は、ＲＴＣＰ通信部２０４ａで取得されるビデオストリーム１のパケットロス率（PktLoss1）およびＲＴＴ（RTT1）と、ＲＴＣＰ通信部２０４ｂで取得されるビデオストリーム２のパケットロス率（PktLoss2）およびＲＴＴ（RTT2）に基づいて、各ストリームのレートを制御する。このレート制御部２０６におけるレート制御の詳細については、後述する。
【００３１】
次に、データ受信装置３００について説明する。このデータ受信装置３００は、ＲＴＰ受信部３０１ａ，３０１ｂと、デパケタイズ部３０２ａ，３０２ｂと、デコーダ３０３ａ，３０３ｂと、パケットロス率算出部３０４ａ，３０４ｂと、ＲＴＣＰ通信部３０５ａ，３０５ｂとを有している。
【００３２】
ＲＴＰ受信部３０１ａ，３０１ｂは、データ送信装置２００のＲＴＰ送信部２０１ａ，２０１ｂからインターネット（ＩＰ網）４００を介して送られてくるＲＴＰパケットを受信する。ここで、ＲＴＰ受信部３０１ａは、ビデオストリーム１に係るＲＴＰパケットを受信する。また、ＲＴＰ受信部３０１ｂは、ビデオストリーム２に係るＲＴＰパケットを受信する。
【００３３】
デパケタイズ部３０２ａ，３０２ｂは、ＲＴＰ受信部３０１ａ，３０１ｂで受信されたＲＴＰパケットを解析する。デパケタイズ部３０２ａ，３０２ｂは、ＲＴＰパケット内のヘッダ、ペイロードについての解析を実行し、パケット化前の符号化データを再構成する。デコーダ３０３ａ，３０３ｂは、デパケタイズ部３０２ａ，３０２ｂで再構成された符号化データに対して復号化処理を施し、ビデオデータを得る。
【００３４】
パケットロス率算出部３０４ａ，３０４ｂは、ＲＴＰ受信部３０１ａ，３０１ｂで受信された各ストリームのパケットロス率を算出する。すなわち、パケットロス率算出部３０４ａ，３０４ｂは、ＲＴＰ受信部３０１ａ，３０１ｂから供給される受信されたＲＴＰパケットのシーケンス番号に基づいて、損失したパケットのシーケンス番号を特定して、パケットロス率を算出する。
【００３５】
ＲＴＣＰ通信部３０５ａ，３０５ｂは、データ送信装置２００のＲＴＣＰ通信部２０４ａ，２０４ｂとの間で、ＲＴＣＰパケットの通信を行う。ＲＴＣＰ通信部３０５ａ，３０５ｂは、ＲＴＣＰパケットとして、少なくとも、上述したように、パケットロス率算出部３０４ａ，３０４ｂで算出された各ストリームのパケットロス率の情報を含んだＲＴＣＰパケットを、データ送信装置２００に送信する。
【００３６】
図１に示すデータ通信システム１００の動作を説明する。
【００３７】
データ送信装置２００のエンコーダ２０１ａには、図示しないデータソースから伝送すべきビデオデータＶａが供給される。エンコーダ２０１ａでは、ビデオデータＶａに対してＭＰＥＧ等の圧縮符号化処理が施されて、符号化データが生成される。この符号化データは、パケタイズ部２０２ａに供給される。
【００３８】
パケタイズ部２０２ａでは、符号化データがパケット化され、ＲＴＰに従ったデータパケット（ＲＴＰパケット）が生成される。このデータパケットは、ＲＴＰ送信部２０３ａに供給される。データストリーム１の各パケットは、ＲＴＰ送信部２０３ａから、インターネット（ＩＰ網）４００を介して、データ受信装置３００のＲＴＰ受信部３０１ａに送信される。
【００３９】
このように、エンコーダ２０１ａ、パケタイズ部２０２ａおよびＲＴＰ送信部２０３ａからなるデータ送信部により、ビデオデータＶａに係るビデオストリーム１が、インターネットを介して、データ受信装置３００に送信される。
【００４０】
データ受信装置３００のＲＴＰ受信部３０１ａでは、上述したようにデータ送信装置２００のＲＴＰ送信部２０３ａから送信されてくるＲＴＰパケットが受信される。ＲＴＰ受信部３０１ａで受信されたＲＴＰパケットは、デパケタイズ部３０２ａに供給される。
【００４１】
デパケタイズ部３０２ａでは、ＲＴＰパケット内のヘッダ、ペイロードについての解析が実行されて、パケット化前の符号化データの再構成が行われる。再構成された符号化データはデコーダ３０３ａに供給される。デコーダ３０３ａでは、符号化データに対して復号化処理が施され、ビデオストリーム１に係るビデオデータＶａが取得される。
【００４２】
また、データ送信装置２００のエンコーダ２０１ｂには、図示しないデータソースから伝送すべきビデオデータＶｂが供給される。エンコーダ２０１ｂでは、ビデオデータＶｂに対してＭＰＥＧ等の圧縮符号化処理が施されて、符号化データが生成される。この符号化データは、パケタイズ部２０２ｂに供給される。
【００４３】
パケタイズ部２０２ｂでは、符号化データがパケット化され、ＲＴＰに従ったデータパケット（ＲＴＰパケット）が生成される。このデータパケットは、ＲＴＰ送信部２０３ｂに供給される。データストリーム２の各パケットは、ＲＴＰ送信部２０３ｂから、インターネット（ＩＰ網）４００を介して、データ受信装置３００のＲＴＰ受信部３０１ｂに送信される。
【００４４】
このように、エンコーダ２０１ｂ、パケタイズ部２０２ｂおよびＲＴＰ送信部２０３ｂからなるデータ送信部により、ビデオデータＶｂに係るビデオストリーム２が、インターネットを介して、データ受信装置３００に送信される。
【００４５】
データ受信装置３００のＲＴＰ受信部３０１ｂでは、上述したようにデータ送信装置２００のＲＴＰ送信部２０３ｂから送信されてくるＲＴＰパケットが受信される。ＲＴＰ受信部３０１ｂで受信されたＲＴＰパケットは、デパケタイズ部３０２ｂに供給される。
【００４６】
デパケタイズ部３０２ｂでは、ＲＴＰパケット内のヘッダ、ペイロードについての解析が実行されて、パケット化前の符号化データの再構成が行われる。再構成された符号化データはデコーダ３０３ｂに供給される。デコーダ３０３ｂでは、符号化データに対して復号化処理が施され、ビデオストリーム２に係るビデオデータＶｂが取得される。
【００４７】
次に、データ送信装置２００における各ストリームの送信レート制御の動作について説明する。
【００４８】
データ受信装置３００のパケットロス率算出部３０４ａには、ＲＴＰ受信部３０１ａから、当該ＲＴＰ受信部３０１ａで受信されたＲＴＰパケットのシーケンス番号が供給される。パケットロス率算出部３０４ａでは、ＲＴＰ受信部３０１ａから供給されるＲＴＰパケットのシーケンス番号に基づいて、損失したパケットのシーケンス番号が特定され、ビデオストリーム１のパケットロス率PktLoss1が算出される。
【００４９】
このパケットロス率PktLoss1は、ＲＴＣＰ通信部３０５ａに供給される。ＲＴＣＰ通信部３０５ａでは、このパケットロス率PktLoss1の情報を含むＲＴＣＰパケットが生成され、当該ＲＴＣＰパケットはインターネット（ＩＰ網）４００を介してデータ送信装置２００のＲＴＣＰ通信部２０４ａに送信される。
【００５０】
データ送信装置２００のＲＴＣＰ通信部２０４ａでは、上述したようにデータ受信装置３００のＲＴＣＰ通信部３０５ａから送られてくる、パケットロス率PktLoss1の情報を含むＲＴＣＰパケットが受信される。ＲＴＣＰ通信部２０４ａでは、当該ＲＴＰパケットからビデオストリーム１のパケットロス率PktLoss1が取得される。
【００５１】
また、データ送信装置２００のＲＴＣＰ通信部２０４ａでは、ＲＴＴ算出部２０５ａにより、ＳＲ（Sender Report）ブロックを含むＲＴＣＰ パケットを送信してからＲＲ（ReceiverReport）ブロックを含むＲＴＣＰ パケットを受信するまでの時間に基づいて、ビデオストリーム１の往復遅延時間RTT1が算出される。
【００５２】
また、データ受信装置３００のパケットロス率算出部３０４ｂには、ＲＴＰ受信部３０１ｂから、当該ＲＴＰ受信部３０１ｂで受信されたＲＴＰパケットのシーケンス番号が供給される。パケットロス率算出部３０４ｂでは、ＲＴＰ受信部３０１ｂから供給されるＲＴＰパケットのシーケンス番号に基づいて、損失したパケットのシーケンス番号が特定され、ビデオストリーム２のパケットロス率PktLoss2が算出される。
【００５３】
このパケットロス率PktLoss2は、ＲＴＣＰ通信部３０５ｂに供給される。ＲＴＣＰ通信部３０５ｂでは、このパケットロス率PktLoss2の情報を含むＲＴＣＰパケットが生成され、当該ＲＴＣＰパケットはインターネット（ＩＰ網）４００を介してデータ送信装置２００のＲＴＣＰ通信部２０４ｂに送信される。
【００５４】
データ送信装置２００のＲＴＣＰ通信部２０４ｂでは、上述したようにデータ受信装置３００のＲＴＣＰ通信部３０５ｂから送られてくる、パケットロス率PktLoss2の情報を含むＲＴＣＰパケットが受信される。ＲＴＣＰ通信部２０４ｂでは、当該ＲＴＰパケットからビデオストリーム２のパケットロス率PktLoss2が取得される。
【００５５】
また、データ送信装置２００のＲＴＣＰ通信部２０４ｂでは、ＲＴＴ算出部２０５ｂにより、ＳＲ（Sender Report）ブロックを含むＲＴＣＰ パケットを送信してからＲＲ（ReceiverReport）ブロックを含むＲＴＣＰ パケットを受信するまでの時間に基づいて、ビデオストリーム２の往復遅延時間RTT2が算出される。
【００５６】
データ送信装置２００において、上述したようにＲＴＣＰ通信部２０４ａで取得されるビデオストリーム１のパケットロス率（PktLoss1）およびＲＴＴ（RTT1）は、レート制御部２０６に供給される。また、データ送信装置２００において、上述したようにＲＴＣＰ通信部２０４ｂで取得されるビデオストリーム２のパケットロス率（PktLoss2）およびＲＴＴ（RTT2）は、レート制御部２０６に供給される。
【００５７】
レート制御部２０６では、各ストリームのパケットロス率およびＲＴＴに基づいて、各ストリームの送信レートの制御が、以下のように行われる。すなわち、レート制御部２０６では、最初に、各ストリームのパケットロス率、ＲＴＴの統計処理が行われる。この意味で、レート制御部２０６は、統計処理部を構成している。ここで、パケットロス率については、平均値を求める処理が行われ、平均値ｐ＝（PktLoss1＋PktLoss2）／２が得られる。ＲＴＴについても、平均値を求める処理が行われ、平均値RTT＝（RTT1＋RTT2）／２が得られる。
【００５８】
レート制御部２０６では、次に、上述の統計処理結果に基づいて、総合伝送レートＴが求められる。この意味で、レート制御部２０６は、演算部を構成している。この総合伝送レートＴは、例えば、（１）式（IETF RFC3448におけるＴＣＰスループット方程式参照）によって算出される。（１）式において、Ｔは総合伝送レート、ｓはパケットサイズ、ｐはパケットロス率（平均値）、ｔはＴＣＰ（Transmission Control Protocol）のタイムアウト時間（通常は、ＲＴＴの４倍）である。
【００５９】
【数１】
0004600513.tif 000003
【００６０】
レート制御部２０６では、次に、総合伝送レートおよび予め設定された割り当て比率に基づいて、各ストリームの送信レートが設定される。この意味で、レート制御部２０６は、送信レート設定部を構成している。例えば、ビデオストリーム１とビデオストリーム２の割り当て比率が１：１である場合には、双方のビデオストリームの送信レートはＴ／２に設定される。なお、ビデオストリーム１とビデオストリーム２の割り当て比率は、予め設定される。
【００６１】
ビデオストリーム１を送信するデータ送信部を構成するエンコーダ２０１ａ、パケタイズ部２０２ａ、ＲＴＰ送信部２０３ａは、レート制御部２０６により制御される。この場合、エンコーダ２０１ａにおけるデータ圧縮率、パケタイズ部２０２ａにおけるパケットサイズ、ＲＴＰ送信部２０３ａにおけるパケット送信間隔等が設定されることで、ビデオストリーム１の送信レートが設定される。
【００６２】
同様に、ビデオストリーム２を送信するデータ送信部を構成するエンコーダ２０１ｂ、パケタイズ部２０２ｂ、ＲＴＰ送信部２０３ｂは、レート制御部２０６により制御される。この場合、エンコーダ２０１ｂにおけるデータ圧縮率、パケタイズ部２０２ｂにおけるパケットサイズ、ＲＴＰ送信部２０３ｂにおけるパケット送信間隔等が設定されることで、ビデオストリーム２の送信レートが設定される。
【００６３】
図５のフローチャートは、上述したレート制御部２０６におけるレート制御の手順を示している。まず、レート制御部２０６は、ステップＳＴ１において、ＲＴＣＰ通信部２０４ａ，２０４ｂから供給される各ストリームのパケットロス率、ＲＴＴに対して統計処理（平均化処理）を行う。
【００６４】
次に、レート制御部２０６は、ステップＳＴ２において、統計処理結果、すなわち各ストリームのパケットロス率、ＲＴＴの平均値を用い、例えばIETF RFC3448におけるＴＣＰスループット方程式によって、総合伝送レートを求める。
【００６５】
次に、レート制御部２０６は、ステップＳＴ３において、総合伝送レートと各ストリームの割り当て比率に基づいて、各ストリームの送信レートを設定する。
【００６６】
なお、ＲＴＣＰ通信部２０４ａ，２０４ｂからレート制御部２０６には各ストリームのパケットロス率、ＲＴＴが例えば周期的に供給され、レート制御部２０６では図５のフローチャートに示すレート制御が行われる。これにより、データストリーム１，２のネットワークトラフィック状況情報に応じて、各ストリームの送信レートが自動的に制御される。
【００６７】
上述したように、図１に示すデータ通信システム１００のデータ送信装置２００において、レート制御部２０６では、各ストリームのパケットロス率、ＲＴＴの統計処理結果（平均値）に基づいて総合伝送レートＴが求められ、当該総合伝送レートＴおよび予め設定された割り当て比率に基づいて各ストリームの送信レートが設定される。そのため、ネットワークの有効帯域に適したマルチストリーム伝送を行うことができる。また、ネットワークに流す総合トラフィックを制御でき、ネットワークにおける輻輳を制御できる。また、各ストリームの送信レート比率を保つことができる。
【００６８】
なお、上述実施の形態においては、２個のストリームを並行して伝送するデータ通信システム１００にこの発明を適用したものであるが、この発明はさらに多くのストリームを並行して伝送するデータ通信システムにも同様に適用できる。
【００６９】
図６は、ｋ個のストリームを並行して伝送するデータ通信システムの概略構成を示している。この場合、レート制御部では、各ストリームのネットワークトラフィック状況情報が統計処理され、その結果に基づいて総合伝送レートが算出され、さらに総合伝送レートおよび各ストリームの割り当て比率に基づいて、各ストリームの送信レートが設定される。
【００７０】
また、上述実施の形態においては、各ストリームのネットワークトラフィック状況情報としてパケットロス率およびＲＴＴを用いたものであるが、ネットワークトラフィック状況情報はこれらに限定されるものではない。例えば、各ストリームのネットワークトラフィック状況情報として、パケットロス率およびＲＴＴの他に、前回の送信レート、受信レート等も考えられる、これら前回の送信レート、受信レートに対する統計処理は、例えば、総和を求める処理とされる。
【００７１】
（２）式〜（５）式は、それぞれ、ｋ個のストリームにおけるパケットロス率、ＲＴＴ、前回の送信レート、受信レートの統計処理例を示している。ＲＴＴi は、ストリームiのＲＴＴである。PktLossiは、ストリームiのパケットロス率である。RcvRate i は、ストリームiの受信レートである。PreviousRate i は、ストリームiの前回の送信レートである。
【００７２】
【数２】
0004600513.tif 000004
【００７３】
なお、上述実施の形態におけるデータ送信装置２００およびデータ受信装置３００の各機能部は、ハードウェアおよびソフトウェアのいずれによっても実現できる。ソフトウェアで実現する場合には、コンピュータが、ＲＯＭまたはハードディスクに格納されているプログラムに基づいて、各機能部の処理を実行する。
【００７４】
図７は、このような処理を実行するコンピュータ５００の内部構成例を示す図である。ＣＰＵ（Central Processing Unit）５０１は、ＲＯＭ（Read OnlyMemory）５０２に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random AccessMemory）５０３には、ＣＰＵ５０１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。
【００７５】
入出力インタフェース５０５は、上述したＣＰＵ５０１、ＲＯＭ５０２およびＲＡＭ５０３と共に、バス５０４に接続されている。入出力インタフェース５０５には、キーボードやマウスから構成される入力部５０６が接続されている。この入出力インタフェース５０５は、入力部５０６から入力された信号をＣＰＵ５０１に出力する。また、入出力インタフェース５０５には、ディスプレイやスピーカなどから構成される出力部５０７も接続されている。
【００７６】
また、入出力インタフェース５０５には、ハードディスクなどから構成される記憶部５０８、および、インターネット４００などのネットワークを介して他の装置とデータの通信を行う通信部５０９も接続されている。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の記録媒体からデータを読み出し、あるいはそれにデータを書き込むときに用いられる。
【産業上の利用可能性】
【００７７】
この発明は、マルチストリーム伝送時のレート制御を良好に行い得るものであり、ビデオデータ、オーディオデータなどをマルチストリーム伝送するデータ通信システムに適用できる。
【図面の簡単な説明】
【００７８】
【図１】実施の形態としてのデータ通信システムの構成例を示すブロック図である。
【図２】ＲＴＰパケットのフォーマットを示す図である。
【図３】ＩＰヘッダのフォーマットを示す図である。
【図４】ＲＴＣＰパケットのフォーマットを示す図である。
【図５】データ送信装置のレート制御部におけるレート制御の手順を示すフローチャートである。
【図６】ｋ個のストリームを並行して伝送するデータ通信システムの概略構成を示すブロック図である。
【図７】データ送信装置およびデータ受信装置の各機能部の処理を実行するコンピュータの内部構成例を示すブロック図である。
【図８】ストリーム１，２のレート制御を独立して行っている場合のレート変動の一例を示す図である。
【符号の説明】
【００７９】
１００・・・データ通信システム、２００・・・データ送信装置、２０１ａ，２０１ｂ・・・エンコーダ、２０２ａ，２０２ｂ・・・パケタイズ部、２０３ａ，２０３ｂ・・・ＲＴＰ送信部、２０４ａ，２０４ｂ・・・ＲＴＣＰ通信部、２０５ａ，２０５ｂ・・・ＲＴＴ算出部、２０６・・・レート制御部、３００・・・データ受信装置、３０１ａ，３０１ｂ・・・ＲＴＰ受信部、３０２ａ，３０２ｂ・・・デパケタイズ部、３０３ａ，３０３ｂ・・・デコーダ、３０４ａ，３０４ｂ・・・パケットロス率算出部、３０５ａ，３０５ｂ・・・ＲＴＣＰ通信部、４００・・・インターネット（ＩＰ網）、５００・・・コンピュータ、５０１・・・
ＣＰＵ、５０２・・・ＲＯＭ、５０３・・・ＲＡＭ、５０４・・・バス、５０５・・・入出力インタフェース、５０６・・・入力部、５０７・・・出力部、５０８・・・記憶部、５０９・・・通信部、５１０・・・ドライブ
【図１】
0004600513.tif 000008
【図２】
0004600513.tif 000009
【図３】
0004600513.tif 000010
【図４】
0004600513.tif 000011
【図５】
0004600513.tif 000012
【図６】
0004600513.tif 000013
【図７】
0004600513.tif 000014
【図８】
0004600513.tif 000015