(57)【特許請求の範囲】
【請求項１】
エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置において、
設定された第１のレートでデータをエンコードして出力するエンコード手段と、
前記エンコード手段によりエンコードされた前記データを一時的に保持する保持手段と、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持手段に保持された前記データを、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置に送信する送信手段と、
前記保持手段に保持されている前記データの時間的な変化を検出する検出手段と、
前記検出手段により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御手段と
を備え、
前記検出手段は、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線の傾きを演算し、
前記制御手段は、前記傾きが基準値より小さい場合、前記第１のレートを所定の割合だけ大きくし、前記傾きが前記基準値より大きい場合、前記第１のレートを前記傾きと一致する分だけ小さくする
ことを特徴とする送信装置。
【請求項２】
前記保持手段に保持された前記データのデータ量を第１の基準値と比較する比較手段をさらに備え、
前記制御手段は、前記保持手段に保持された前記データのデータ量が前記第１の基準値より小さい場合には前記第１のレートの変更を禁止する
ことを特徴とする請求項１に記載の送信装置。
【請求項３】
前記比較手段は、前記保持手段に保持された前記データのデータ量を、前記第１の基準値より大きい第２の基準値とさらに比較し、
前記制御手段は、前記保持手段に保持された前記データのデータ量が前記第２の基準値より大きい場合、前記第１のレートの値が、そのときの値の１／２になるように制御する
ことを特徴とする請求項２に記載の送信装置。
【請求項４】
前記検出手段により検出された前記時間的な変化を前記第１のレートと比較する比較手段をさらに備え、
前記制御手段は、前記検出手段により検出された前記時間的な変化が前記第１のレートより小さい場合、前記第１のレートの値が、そのときの値の１／２になるように制御する
ことを特徴とする請求項１に記載の送信装置。
【請求項５】
エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置の送信方法において、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、
前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップと、
前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップと
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値より小さい場合、前記第１のレートが所定の割合だけ大きくされ、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる
ことを特徴とする送信方法。
【請求項６】
エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置のプログラムであって、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、
前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップと、
前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップと
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値より小さい場合、前記第１のレートが所定の割合だけ大きくされ、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項７】
エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置のプログラムであって、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、
前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップと、
前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップと
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値より小さい場合、前記第１のレートが所定の割合だけ大きくされ、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、送信装置および方法、記録媒体、並びにプログラムに関し、特に、簡単かつ確実に、パケットロスを軽減することができるようにした送信装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
最近、インターネットが普及し、インターネットを介して各種のコンテンツを配信することが実用化されている。インターネットを介してコンテンツを提供する場合の問題について、各種の提案もなされている。例えば、特許文献１には、音楽データをダウンロードする際に、バッファの容量制限のために、複数回に分けてデータの転送を要求する場合、ストリーミング再生におけるバッファの使用状況に応じて、効率的にダウンロードを実施することが提案されている。
【０００３】
ところで、映像データを配信する場合、映像データをRTP(Real Time Transport Protocol)のパケットにパケット化して、それをUDP(User Datagram Protocol)上で送信するという方法が多く用いられている。
【０００４】
しかしながら、UDPが用いられる場合、図１に示されるように、送信装置１と受信装置２との間にファイアウォール３が存在すると、多くの場合、ファイアウォール３は、UDPパケットを通さないように構成されているため、RTP/UDPでの映像配信を行うことができない。
【０００５】
そこで、ファイアウォール３の外部の送信装置１がファイアウォール３の内部の受信装置２との間で映像配信を行う場合、まず、装置間でTCP(Transport Control Protocol)でコネクションを張り、そのTCPコネクション上で映像データの配信が行われる。ファイアウォール３では、HTTP(Hyper Text Transfer Protocol)プロキシサーバが動作していることが多く、HTTPはTCPの上位プロトコルであるため、TCPコネクションが張れる結果、HTTPでのアクセスが許可される。その結果、送信装置１は、ファイアウォール３を介して受信装置２に映像データを送信することができる。
【０００６】
【公知文献１】
特開２００２−２１５５１６公報
【０００７】
【発明が解決しようとする課題】
送信装置１がTCPプロトコルを用いて、画像データを配信する場合、送信装置１は、例えば、図２に示されるように構成される。すなわち、エンコーダ２１は、図示せぬビデオカメラから入力された映像ソースをエンコードし、バッファ２２を介してTCP制御部２３に供給する。TCP制御部２３は、バッファ２２を介して入力されたデータを、TCPプロトコルに基づいて、インターネットなどのネットワークを介して受信装置２に配信する。
【０００８】
TCP制御部２３は、輻輳制御処理を行う。すなわち、TCP制御部２３は、ネットワークの帯域に応じたビットレートでデータを送信する。その結果、ネットワークで輻輳が発生した場合、ビットレートは低下する。
【０００９】
このように、TCP制御部２３の輻輳制御に基づいて映像データを配信すると、ネットワークに輻輳がなければ、図２に示されるように、バッファ２２に蓄積されるデータ量は充分小さい。これに対して、ネットワークに輻輳が発生すると、図３に示されるように、バッファ２２には、多くのデータが蓄積されることになる。
【００１０】
エンコーダ２１は、予め設定されている固定のビットレートでエンコード処理を行っているため、バッファ２２のデータの蓄積量に係わらず、エンコード処理が行われる。その結果、ネットワークに輻輳が発生すると、ついにはバッファ２２がオーバーフローしてしまい、受信装置２に送信されるべき映像データの一部が欠落してしまうことがある。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、簡単かつ確実に、映像データを欠落させることなく、送信することができるようにするものである。
【００１２】
【課題を解決するための手段】
本発明の送信装置は、設定された第１のレートでデータをエンコードして出力するエンコード手段と、エンコード手段によりエンコードされたデータを一時的に保持する保持手段と、ネットワークの輻輳状態に基づき、ネットワークへ送信するデータの第２のレートを設定する輻輳制御を行い、保持手段に保持されたデータを、輻輳制御で設定された第２のレートで、ネットワークを介して相手側の装置に送信する送信手段と、保持手段に保持されているデータの時間的な変化を検出する検出手段と、検出手段により検出された時間的な変化に基づいて第１のレートを制御する制御手段とを備え、検出手段は、データの時間的な変化として、データの時間的な変化を表す近似直線の傾きを演算し、制御手段は、傾きが基準値より小さい場合、第１のレートを所定の割合だけ大きくし、傾きが基準値より大きい場合、第１のレートを傾きと一致するだけ小さくすることを特徴とする。
【００１６】
前記保持手段に保持されたデータのデータ量を第１の基準値と比較する比較手段をさらに備え、制御手段は、保持手段に保持されたデータのデータ量が第１の基準値より小さい場合には第１のレートの変更を禁止することができる。
【００１７】
前記比較手段は、保持手段に保持されたデータのデータ量を、第１の基準値より大きい第２の基準値とさらに比較し、制御手段は、保持手段に保持されたデータのデータ量が第２の基準値より大きい場合、第１のレートの値が、そのときの値の１／２になるように制御することができる。
【００１８】
前記検出手段により検出された時間的な変化を第１のレートと比較する比較手段をさらに備え、制御手段は、検出手段により検出された時間的な変化が第１のレートより小さい場合、第１のレートの値が、そのときの値の１／２になるように制御することができる。
【００１９】
本発明の送信方法は、設定された第１のレートでデータをエンコードして出力するエンコードステップと、エンコードステップの処理によりエンコードされたデータを一時的に保持させる保持ステップと、ネットワークの輻輳状態に基づき、ネットワークへ送信するデータの第２のレートを設定する輻輳制御を行い、保持ステップの処理により保持されたデータの、輻輳制御で設定された第２のレートで、ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、保持ステップの処理により保持されているデータの時間的な変化を検出する検出ステップと、検出ステップの処理により検出された時間的な変化に基づいて第１のレートを制御する制御ステップとを含み、検出ステップにおいては、データの時間的な変化として、データの時間的な変化を表す近似直線の傾きが演算され、制御ステップにおいては、傾きが基準値より小さい場合、第１のレートが所定の割合だけ大きくされ、傾きが基準値より大きい場合、第１のレートが傾きと一致する分だけ小さくされることを特徴とする。
【００２０】
本発明の記録媒体のプログラムは、エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置のプログラムであって、設定された第１のレートでデータをエンコードして出力するエンコードステップと、エンコードステップの処理によりエンコードされたデータを一時的に保持させる保持ステップと、ネットワークの輻輳状態に基づき、ネットワークへ送信するデータの第２のレートを設定する輻輳制御を行い、保持ステップの処理により保持されたデータの、輻輳制御で設定された第２のレートで、ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、保持ステップの処理により保持されているデータの時間的な変化を検出する検出ステップと、検出ステップの処理により検出された時間的な変化に基づいて第１のレートを制御する制御ステップとを含み、検出ステップにおいては、データの時間的な変化として、データの時間的な変化を表す近似直線の傾きが演算され、制御ステップにおいては、傾きが基準値より小さい場合、第１のレートが所定の割合だけ大きくされ、傾きが基準値より大きい場合、第１のレートが傾きと一致する分だけ小さくされることを特徴とする。
【００２１】
本発明のプログラムは、エンコードされたデータを、ネットワークを介して受信側の装置に送信する送信装置のプログラムであって、設定された第１のレートでデータをエンコードして出力するエンコードステップと、エンコードステップの処理によりエンコードされたデータを一時的に保持させる保持ステップと、ネットワークの輻輳状態に基づき、ネットワークへ送信するデータの第２のレートを設定する輻輳制御を行い、保持ステップの処理により保持されたデータの、輻輳制御で設定された第２のレートで、ネットワークを介して相手側の装置への送信を制御する送信制御ステップと、保持ステップの処理により保持されているデータの時間的な変化を検出する検出ステップと、検出ステップの処理により検出された時間的な変化に基づいて第１のレートを制御する制御ステップとを含み、検出ステップにおいては、データの時間的な変化として、データの時間的な変化を表す近似直線の傾きが演算され、制御ステップにおいては、傾きが基準値より小さい場合、第１のレートが所定の割合だけ大きくされ、傾きが基準値より大きい場合、第１のレートが傾きと一致する分だけ小さくされる処理をコンピュータに実行させることを特徴とする。
【００２２】
本発明においては、設定された第１のレートでデータがエンコードして出力され、エンコードされたデータが一時的に保持され、送信手段によって、ネットワークの輻輳状態に基づき、ネットワークへ送信するデータの第２のレートを設定する輻輳制御が行なわれ、保持手段に保持されたデータが、輻輳制御で設定された第２のレートで、ネットワークを介して相手側の装置に送信され、保持手段に保持されているデータの時間的な変化を検出され、その変化に基づいて、送信手段の第１のレートが制御される。そして、データの時間的な変化として、データの時間的な変化を表わす近似直線の傾きが演算され、その傾きが基準値よりも小さい場合、第１のレートが所定の割合だけ大きくされ、その傾きが基準値よりも大きい場合、第１のレートが傾きと一致する分だけ小さくされる。
【００２３】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２５】
［請求項１］  エンコードされたデータを、ネットワーク（例えば、図４のインターネット５１）を介して受信側の装置（例えば、図４の受信装置５３）に送信する送信装置において、
設定された第１のレートでデータをエンコードして出力するエンコード手段（例えば、図５のエンコーダ８２）と、
前記エンコード手段によりエンコードされた前記データを一時的に保持する保持手段（例えば、図５のバッファ８３）と、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持手段に保持された前記データを、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置に送信する送信手段（例えば、図５のTCP制御部８４）と、
前記保持手段に保持されている前記データの時間的な変化を検出する検出手段（例えば、図９の演算部１４４）と、
前記検出手段により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御手段（例えば、図１３の指示部１６４）と
を備え、
前記検出手段は、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線（例えば、図１２の近似直線Lの傾き）の傾きを演算し、
前記制御手段は、前記傾きが基準値（例えば、図１２の閾値量UPL）より小さい場合、前記第１のレートを所定の割合（例えば2％）だけ大きくし（例えば、図１４のステップＳ４２，Ｓ４４の処理）、前記傾きが前記基準値より大きい場合、前記第１のレートを前記傾きと一致する分だけ小さくする（例えば、図１４のステップＳ４７，Ｓ４９の処理）
ことを特徴とする送信装置。
［請求項２］  前記保持手段に保持された前記データのデータ量を第１の基準値（例えば、図１１の基準値Min_b）と比較する比較手段（例えば、図１０のステップS22の処理を実行する図９のバッファ量判定部１４２）をさらに備え、
前記制御手段は、前記保持手段に保持された前記データのデータ量が前記第１の基準値より小さい場合には前記第１のレートの変更を禁止する（例えば、図１０のステップS22において、バッファ量が基準値Min_bより小さいと判定された場合、ステップＳ２３乃至Ｓ２８をスキップする処理）
ことを特徴とする請求項１に記載の送信装置。
［請求項３］  前記比較手段は、前記保持手段に保持された前記データのデータ量を、前記第１の基準値より大きい第２の基準値（例えば、図１１の基準値Max_b）とさらに比較し、
前記制御手段は、前記保持手段に保持された前記データのデータ量が前記第２の基準値より大きい場合（例えば、図１０のステップS21でバッファ量が基準値Max_bより大きいと判定された場合）、前記第１のレートの値が、そのときの値の１／２になるように制御する（例えば、図１０のステップS28の処理を実行する）
ことを特徴とする請求項２に記載の送信装置。
［請求項４］  前記検出手段により検出された前記時間的な変化を前記第１のレートと比較する比較手段（例えば、図１０のステップS26の処理を実行する図９のバッファ量判定部１４２）をさらに備え、
前記制御手段は、前記検出手段により検出された前記時間的な変化が前記第１のレートより小さい場合（例えば、図１０のステップS26で、バッファの増加率UPRが第１のレートより小さいと判定された場合）、前記第１のレートの値が、そのときの値の１／２になるように制御する（例えば、図１０のステップS28の処理を実行する）
ことを特徴とする請求項１に記載の送信装置。
［請求項５］  エンコードされたデータを、ネットワーク（例えば、図４のインターネット５１）を介して受信側の装置（例えば、図４の受信装置５３）に送信する送信装置（例えば、図４の送信装置５２）の送信方法において、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップ（例えば、図６のステップS1,S2,S3,S4）と、
前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップ（例えば、図１０のステップS24）と、
前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップ（例えば、図１０のステップS25,S27,S28）と
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線（例えば、図１２の近似直線Lの傾き）の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値（例えば、図１２の閾値量UPL）より小さい場合、前記第１のレートが所定の割合（例えば2％）だけ大きくされ（例えば、図１４のステップＳ４２，Ｓ４４の処理）、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる（例えば、図１４のステップＳ４７，Ｓ４９の処理）
ことを特徴とする送信方法。
［請求項６］  エンコードされたデータを、ネットワーク（例えば、図４のインターネット５１）を介して受信側の装置（例えば、図４の受信装置５３）に送信する送信装置（例えば、図４の送信装置５２）のプログラムであって、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップ（例えば、図６のステップS1,S2,S3,S4）と、
前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップ（例えば、図１０のステップS24）と、
前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップ（例えば、図１０のステップS25,S27,S28）と
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線（例えば、図１２の近似直線Lの傾き）の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値（例えば、図１２の閾値量UPL）より小さい場合、前記第１のレートが所定の割合（例えば2％）だけ大きくされ（例えば、図１４のステップＳ４２，Ｓ４４の処理）、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる（例えば、図１４のステップＳ４７，Ｓ４９の処理）
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
［請求項７］  エンコードされたデータを、ネットワーク（例えば、図４のインターネット５１）を介して受信側の装置（例えば、図４の受信装置５３）に送信する送信装置（例えば、図４の送信装置５２）のプログラムであって、
設定された第１のレートでデータをエンコードして出力するエンコードステップと、
前記エンコードステップの処理によりエンコードされた前記データを一時的に保持させる保持ステップと、
前記ネットワークの輻輳状態に基づき、前記ネットワークへ送信する前記データの第２のレートを設定する輻輳制御を行い、前記保持ステップの処理により保持された前記データの、前記輻輳制御で設定された第２のレートで、前記ネットワークを介して相手側の装置への送信を制御する送信制御ステップ（例えば、図６のステップS1,S2,S3,S4）と、前記保持ステップの処理により保持されている前記データの時間的な変化を検出する検出ステップ（例えば、図１０のステップS24）と、前記検出ステップの処理により検出された前記時間的な変化に基づいて前記第１のレートを制御する制御ステップ（例えば、図１０のステップS25,S27,S28）と
を含み、
前記検出ステップにおいては、前記データの時間的な変化として、前記データの時間的な変化を表す近似直線（例えば、図１２の近似直線Lの傾き）の傾きが演算され、
前記制御ステップにおいては、前記傾きが基準値（例えば、図１２の閾値量UPL）より小さい場合、前記第１のレートが所定の割合（例えば2％）だけ大きくされ（例えば、図１４のステップＳ４２，Ｓ４４の処理）、前記傾きが前記基準値より大きい場合、前記第１のレートが前記傾きと一致する分だけ小さくされる（例えば、図１４のステップＳ４７，Ｓ４９の処理）
処理をコンピュータに実行させることを特徴とするプログラム。
【００２６】
次に、図面を参照して本発明の実施の形態について説明する。
【００２７】
図４は、本発明を適用したネットワークシステムの構成例を表している。このシステムにおいては、インターネット５１に送信装置５２と受信装置５３−１，５３−２が接続されている。送信装置５２は、図示せぬビデオカメラで撮像された画像データをインターネット５１を介して、受信装置５３−１，５３−２にライブ配信する。
【００２８】
なお、図４のシステムでは、受信装置が２台のみ示されているが、実際には、より多くの台数の受信装置が、インターネット５１を介して送信装置５２が配信する画像データを受信する。
【００２９】
なお、受信装置５３−１，５３−２は、それらを個々に区別する必要がない場合、単に受信装置５３と称する。
【００３０】
図５は、送信装置５２の構成例を表している。入力部８１は、例えば、ビデオカメラなどにより構成され、配信する画像データをリアルタイムで撮像し、出力する。もちろん、入力部８１は、ビデオカメラ以外の任意のソースからの画像データを入力するようにしてもよい。
【００３１】
エンコーダ８２は、入力部８１から入力された画像データを、例えば、MPEG(Moving Picture Experts Group)２，４などの方式に従って、予め設定された固定ビットレートで（出力のビットレートが、予め設定されている固定された値になるように）エンコードし、出力する。
【００３２】
エンコーダ８２によりエンコードされた画像データは、画像データを一時的に保持するバッファ８３を介してTCP制御部８４に供給される。TCP制御部８４は、バッファ８３を介して入力された画像データを、TCPに基づいてパケット化し、インターネット５１を介して受信装置５３に配信する。TCP制御部８４は、インターネット５１の状態に応じた輻輳制御処理を行う。
【００３３】
レート制御部８５は、バッファ８３に蓄積されるデータの変化量を検出し、その変化量に基づいて、エンコーダ８２の設定されている固定ビットレートの値を、所定の値に制御する。
【００３４】
次に、図６のフローチャートを参照して、TCP制御部８４における輻輳制御処理について説明する。
【００３５】
最初に、ステップＳ１において、TCP制御部８４は、ウインドウサイズＷ（図７）を最小値にセットする。次に、ステップＳ２において、TCP制御部８４は、予め設定されている時間内に、受信装置５３からACK（Acknowledge信号）が到着したか否かを判定する。ACK信号が予め設定されている時間内に到着した場合には、インターネット５１に輻輳が発生していないので、ステップＳ３において、TCP制御部８４は、ウインドウサイズＷを大きい値に設定する。これに対して、時間内にACK信号が到着しなかったと、ステップＳ２において判定された場合には、ステップＳ４に進み、TCP制御部８４は、ウインドウサイズＷを小さい値に設定する。
【００３６】
ステップＳ３またはステップＳ４の処理の後、ステップＳ２に戻り、それ以降の処理が繰り返し実行される。
【００３７】
ウインドウサイズＷは、図７に示されるように、ACK信号が到着するのを待たずに、先送りした場合においても、パケットを受信側に確実に送信することが可能な範囲を意味する。
【００３８】
図７Ａに示されるように、番号１のパケットに関するACK信号が返ってきた場合には、ウインドウサイズＷの範囲内の番号２乃至６までの５個のパケットを、次のACK信号が到着する前に、送信することが可能である。
【００３９】
これに対して、図７Ｂに示されるように、番号２と番号３に示されるパケットに対応するACK信号が返ってきた場合には、番号４乃至番号８までのウインドウサイズＷ内に位置するパケットを送信することが可能である。
【００４０】
このウインドウサイズＷの大きさを大きくすればするだけ、TCPで送信可能なビットレートも大きくなり、逆に、ウインドウサイズＷの大きさを小さくした場合には、送信可能なスループットが小さくなる。このようにして、ACK信号の到着のタイミングに基づいて、輻輳制御が行われる。
【００４１】
以上のようにして、TCP制御部８４は、入力部８１から入力され、エンコーダ８２によりエンコードされた画像データを、バッファ８３を介して取り込み、インターネット５１を介して受信装置５３に配信する。
【００４２】
TCP制御部８４は、インターネット５１が輻輳した場合、受信装置５３から受け取るACK信号の間隔が長くなることに伴って、ウインドウサイズを小さい値に設定する。これに対して、ACK信号が制限時間内に受け取られた場合には、ウインドウサイズを大きくすることで、レート制御が行われる。その結果、このままでは、上述した場合と同様に、インターネット５１が輻輳した場合、エンコーダ８２は予め設定されている固定レートで入力部８１から入力される画像データをエンコードし、出力するため、バッファ８３がオーバーフローする恐れがある。
【００４３】
そこで、本発明においては、レート制御部８５がバッファ８３のデータの蓄積量の変化を検出し、その検出結果に基づいてエンコーダ８２の送信レートの制御が行われる。
【００４４】
図８の状態遷移図は、レート制御部８５が行うレート制御での状態の遷移を表す。図８に示されるように、この例ではホールド状態(HOLD)、アップ状態(UP)、ダウン状態(DOWN)、アップウエイト状態(UP_WAIT)、ダウンウエイト状態(DOWN_WAIT)の５つの状態が用意される。その詳細は、図１４のフローチャートを参照して後述するが、バッファ８３に蓄積される画像データの増加率UPR(UP_rate)に基づいて、所定の状態から他の状態に、状態が遷移する。レート制御部８５は、バッファ８３の増加率UPRを計算するために、図９に示されるような機能的構成を有している。
【００４５】
読取部１４１は、バッファ８３に蓄積されている画像データのデータ量を読み取り、バッファ量判定部１４２に出力する。バッファ量判定部１４２は、読取部１４１により読み取られたバッファ量を基準値と比較し、その比較結果を抽出部１４３に出力する。また、バッファ量判定部１４２は、バッファ量を基準値と比較した結果に基づいて、レート設定部１４５を制御し、増加率UPRとして所定の値を設定させる。
【００４６】
抽出部１４３は、バッファ８３に蓄積された過去の所定時間分（例えば、過去数秒分）の画像データを蓄積する。そして、バッファ量判定部１４２から所定の判定結果が入力されたとき、抽出部１４３は、演算対象とする過去数秒分の画像データを抽出して演算部１４４に供給する。演算部１４４は、抽出部１４３から供給された画像データに基づいて、その変化率を演算する。具体的には、それらの画像データで表される近似直線が演算され、その近似直線の傾きが演算される。
【００４７】
レート設定部１４５は、演算部１４４により演算された傾きに対する値になるように、増加率UPRを設定する。記憶部１４６は、レート設定部１４５により設定されたその時点における送信レートを記憶する。この記憶部１４６に記憶されている送信レートに基づいて、エンコーダ８２の送信レートが制御される。
【００４８】
比較部１４７は、演算部１４４により演算された増加率UPRと、記憶部１４６に記憶されている、その時点における送信レートの大きさを比較し、その比較結果に基づいて、レート設定部１４５に増加率UPRとして所定の値を設定させる。
【００４９】
次に、図１０のフローチャートを参照して、図９に示されるレート制御部８５により実行されるバッファ８３の増加率UPRの計算処理について説明する。この処理は、予め設定されている一定の時間毎に周期的に繰り返し実行される。
【００５０】
ステップＳ２１において、読取部１４１は、バッファ８３に蓄積されている画像データのデータ量を読み取り、バッファ量としてバッファ量判定部１４２に供給する。バッファ量判定部１４２は、読取部１４１により読み取られたバッファ量が予め設定されている基準値Max_b以上であるか否かを判定する。図１１に示されるように、この基準値Max_bは、この基準値を超えると、バッファ８３がオーバーフローする恐れがある値に設定されている。ステップＳ２１において、バッファ量が基準値Max_b以上であると判定された場合、ステップＳ２８に進み、バッファ量判定部１４２は、レート設定部１４５に制御信号を出力する。このとき、レート設定部１４５は、記憶部１４６にそのとき設定されている送信レートの１／２の値を、増加率UPRに設定させる。
【００５１】
ステップＳ２１において、バッファ８３から読み取られたバッファ量が基準値Max_bより小さいと判定された場合、ステップＳ２２に進み、バッファ量判定部１４２は、バッファ８３から読み取られたバッファ量が基準値Min_b以下であるか否かを判定する。この基準値Min_bは、図１１に示されるように、基準値Max_bより小さい値に設定されている。
【００５２】
ステップＳ２２において、バッファ量が基準値Min_bより大きいと判定された場合、ステップＳ２３に進み、抽出部１４３は、過去数秒分のバッファ量で基準値Min_bを超える値を抽出する。
【００５３】
例えば、図１１に示される例では、期間Ｔ1は、バッファ８３のバッファ量は基準値Min_bより小さく、オーバーフローする恐れがほとんどない安定した期間となっている。これに対して、期間Ｔ2においては、バッファ８３に蓄積されるデータ量であるバッファ量が基準値Min_bより次第に大きくなっている。このような場合には、基準値Min_bより大きくなったバッファ量の過去数秒分の値が図１２に示されるように抽出される。
【００５４】
例えば、エンコーダ８２が４００Kbpsで画像データをデコードし、出力しており、TCP制御部８４が３００Kbpsでインターネット５１を介して画像データを配信しているとすると、バッファ８３には１００kbpsの速度で画像データが増加することになる。すなわち、１秒間に１００Kbitのデータがバッファ８３に蓄積されることになる。
【００５５】
ステップＳ２４において、演算部１４４は、図１２に示されるように、抽出部１４３により抽出されたバッファ量の近似直線Ｌを演算すると共に、その近似直線Ｌの傾きを演算する。近似直線Ｌは、各サンプリング時刻におけるバッファ量との誤差の和が最小となる直線として求めることができる。
【００５６】
ステップＳ２５において、レート設定部１４５は、ステップＳ２４の処理で演算部１４４により演算された傾きを、バッファ８３の増加率UPRとして設定する。演算して求められた傾きは、そのままバッファ８３に蓄積される単位時間当たりのデータ量を表すことになる。
【００５７】
次に、ステップＳ２６において、比較部１４７は、演算部１４４により演算された増加率UPRの値が、記憶部１４６に記憶されている、その時点における送信レートの値より大きいか否かを判定する。バッファの増加率UPRが送信レートより大きい場合には、ステップＳ２７に進み、比較部１４７は、レート設定部１４５を制御し、ステップＳ２５の処理で設定された増加率UPRの値を、記憶部１４６に記憶させる。
【００５８】
ステップＳ２６において、バッファの増加率UPRが送信レートより小さいと判定された場合、ダウン状態で送信レート以上に下げることができないので、ステップＳ２７に進み、比較部１４７は、レート設定部１４５を制御し、バッファの増加率UPRとして、そのとき設定されている送信レート（記憶部１４６に記憶されている増加率UPRの値）の１／２の値を設定させる。そして、その値を記憶部１４６に記憶させる。
【００５９】
ステップＳ２２において、バッファ量が基準値Min_b以下であると判定された場合、ステップＳ２３乃至ステップＳ２８の処理はスキップされる。これにより、図１１に示される期間Ｔ1におけるサンプリングデータを近似直線Ｌの傾きを求めるデータに加えることにより、近似直線Ｌの傾きが必要以上に小さい値となってしまうようなことが防止される。すなわち、傾きをより正確に求めることが可能になる。
【００６０】
以上の処理が、一定の周期で繰り返し実行されることで、記憶部１４６には、バッファ８３の増加率UPRの値が記憶され、順次最新の値に更新されることになる。
【００６１】
以上のようにして、一定のサンプリング周期でバッファ８３に蓄積される画像データの増加率UPRをサンプリングしつつ、レート制御部８５は、図８に示されるような状態遷移に従って、エンコーダ８２の送信レートを制御する。このため、レート制御部８５は、図１３に示されるような機能的構成をさらに有している。
【００６２】
状態設定部１６１は、図８に示されるホールド状態、アップ状態、ダウン状態、アップウエイト状態、およびダウンウエイト状態の５つの状態のいずれかの状態を設定する。増加率判定部１６２は、図９に示した記憶部１４６に記憶されている増加率UPRを、予め設定されている基準値としての閾値量UPLと比較、判定する処理を行う。時間判定部１６３は、各状態における経過時間を、予め設定されている各状態での基準時間と比較する処理を行う。指示部１６４は、エンコーダ８２に対して、送信レートの変更を指示する。
【００６３】
次に、図１４のフローチャートを参照して、レート制御部８５によるエンコーダ８２の送信レート制御処理について説明する。この処理は、送信装置５２において、エンコーダ８２が入力部８１から供給された画像データをエンコードし、バッファ８３を介してTCP制御部８４に供給し、TCP制御部８４から、インターネット５１を介して各受信装置５３に配信する場合に実行される。
【００６４】
ステップＳ４１において、状態設定部１６１は、状態をホールド状態に初期設定する。ステップＳ４２において、増加率判定部１６２は、増加率UPRが予め設定されている閾値量UPL(Up_limit)より小さいか否かを判定する。増加率UPRは、図１０のフローチャートに示される処理を一定のサンプリング周期で実行することで、記憶部１４６に記憶されている。そして、閾値UPLは、図１２に示されるように、近似直線Ｌの傾きに対応する基準値である。近似直線Ｌに所定の傾きが発生するということは、バッファ８３にデータが次第に蓄積されていくことを意味する。しかしながら、傾きの値がそれ程大きくなければ送信レートをより大きい値とし、送信効率を向上させることが可能である。
【００６５】
そこで、ステップＳ４２において、増加率UPRが閾値量UPLより小さいと判定された場合、バッファ８３が直ちにオーバーフローする恐れはないので、ステップＳ４３において、時間判定部１６３により、ホールド状態に設定されてからの経過時間Stが、予め設定されているホールディング時間HT以上であるか否かが判定される。経過時間Stがホールディング時間HTより小さい場合には、まだバッファ８３がオーバーフローする恐れがないので、ステップＳ４２に戻り、再び増加率UPRが閾値量UPLより小さいか否かが判定される。ステップＳ４３において、経過時間Stがホールディング時間HTと等しいか、それよりも大きいと判定された場合、増加率UPRが閾値量UPLより小さい状態で、ホールディング時間HTより長い時間が経過したので、より効率的にデータを伝送すべく、ステップＳ４４において、状態設定部１６１は、状態をアップ状態に設定する。すなわち、このときホールド状態からアップ状態に状態が遷移することになる。
【００６６】
指示部１６４は、状態設定部１６１より状態がアップ状態になったことの通知を受けると、図１５に示される送信レート制御処理を実行する。
【００６７】
すなわち、指示部１６４は、そのときエンコーダ８２に指示されている送信レートの値を２パーセントだけ上げるようにエンコーダ８２に指示を出す。
【００６８】
なお、もちろんここで上昇させる割合は２パーセントに限られず、所定の値に設定することが可能である。
【００６９】
その結果、エンコーダ８２は、レート制御部８５より指示された送信レートを基準とする固定レートの基準の値として設定する。これにより、エンコーダ８２は、今までより高速にエンコード処理を実行し、バッファ８３に出力することになる。その結果、バッファ８３の増加率が変化することになり、その増加率が上述したように、図１０のフローチャートの処理で検出され、記憶部１４６に記憶されることになる。
【００７０】
ステップＳ４５において、増加率判定部１６２は、その時点における増加率UPRを記憶部１４６から読み出し、その増加率UPRと予め設定されている閾値量UPLと比較する。増加率UPRが閾値量UPLより小さい場合には、増加率UPRをもっと大きい値に設定することが可能である。そこで、この場合、ステップＳ４６に進み、状態設定部１６１は、状態をアップウエイト状態に設定する。
【００７１】
次に、ステップＳ４７において、増加率判定部１６２は、増加率UPRが閾値量UPLより小さいか否かを判定する。増加率UPRが閾値量UPLより小さい場合には、ステップＳ４８に進み、時間判定部１６３は、アップウエイト状態に遷移してからの経過時間Stが、予め設定されているアップウエイティング時間UWT以上であるか否かを判定する。経過時間Stがアップウエイティング時間UWTより小さい場合には、TCP制御部８４による制御によりバッファ８３の増加率UPRが変化するまで待機する。このため、状態設定部１６１は、再びステップＳ４６に戻り、状態をアップウエイト状態に維持させる。
【００７２】
ステップＳ４７において、増加率判定部１６２により増加率UPRが基準値UPLより小さいか否かが再び判定される。増加率UPRが閾値量UPLより小さいと判定された場合、ステップＳ４８に戻り、時間判定部１６３は、アップウエイト状態における経過時間Stがアップウエイティング時間UWT以上になったか否かを再び判定する。経過時間Stがアップウエイティング時間UWT以上になったと判定された場合、ステップＳ４４に戻り、状態設定部１６１は、状態を再びアップウエイト状態からアップ状態に遷移させる。
【００７３】
これにより、再び指示部１６４は、図１５のステップＳ７１の処理を実行し、送信データを現在の送信レートから２パーセントだけ大きい値になるように、エンコーダ１２を制御する。これにより、エンコーダ８２は、さらに高速にエンコード処理を実行するようになる。バッファ８３には、その結果、より多くのデータが入力されるようになる。
【００７４】
以上の処理が繰り返し実行されることで、エンコーダ８２の送信レートの値は次第に大きい値に設定されるようになる。
【００７５】
ステップＳ４７において、増加率UPRが閾値量UPLと等しいか、それより大きくなったと判定された場合、バッファ８３がオーバーフローする恐れがあるので、ステップＳ４９において、状態設定部１６１は、状態をダウン状態に設定する。この処理は、ステップＳ４５において、アップ状態で増加率UPRが閾値量UPL以上であると判定された場合、並びにステップＳ４２において、ホールド状態で増加率UPRが閾値量UPL以上であると判定された場合にも実行される。
【００７６】
ステップＳ４９において、ダウン状態が設定されると、指示部１６４は、図１６に示される送信レート制御処理を実行する。すなわち、このとき指示部１６４は、記憶部１４６に記憶されている増加率UPRの分だけ送信レートを下げるように、エンコーダ８２に指示する。この指示に基づいて、エンコーダ８２は、基準となる送信レートを指示された増加率UPRだけ小さい値に設定し、そのレートを基準として固定レートでエンコード処理を実行する。従って、バッファ８３に供給されるデータ量は、それまでより少なくなる。
【００７７】
ステップＳ４９において、ダウン状態が設定されると、次にステップＳ５０において、状態設定部１６１は、状態をダウン状態からダウンウエイト状態に自動的に遷移させる。ステップＳ５１において、時間判定部１６３は、ダウンウエイト状態に設定されてからの経過時間Stが、予め設定されているダウンウエイティング時間DWT以上であるか否かを判定する。経過時間Stがダウンウエイティング時間DWTより小さい場合には、ステップＳ５０に戻り、状態設定部１６１は状態をダウンウエイト状態のままとさせる。
【００７８】
ステップＳ５１において、経過時間Stがダウンウエイティング時間DWT以上になったと判定された場合、処理はステップＳ５２に進む。すなわち、ダウンウエイト状態においては、単にダウンウエイティング時間DWTだけ時間が経過するだけの処理が行われることになる。
【００７９】
ステップＳ５１において、経過時間Stがダウンウエイティング時間DWT以上になったと判定された場合、ステップＳ５２において、増加率判定部１６２は、増加率UPRが閾値量UPLより小さいか否かを判定する。いま、ステップＳ４９でダウン状態が設定されたため、エンコーダ８２による送信レートは、それまでより小さい値に設定されていることになる。この状態においても、増加率UPRが閾値量UPLと等しいか、それより大きい場合には、さらに送信レートを小さい値に設定する必要がある。このため、この場合には、ステップＳ４９に戻り、状態設定部１６１は、再び状態をダウン状態に設定する。その結果、指示部１６４により、図１６のステップＳ９１の処理が実行され、送信レートがさらに増加率UPRの分だけ小さい値になるように指示される。その結果、バッファ８３にエンコーダ８２より供給されるデータ量は、さらに小さい値となる。
【００８０】
ステップＳ５２において、増加率UPRが閾値量UPLより小さいと判定された場合には、処理はステップＳ４１に戻り、状態設定部１６１は、状態をホールド状態に設定する。そして、以下、上述した場合と同様の処理が繰り返し実行される。
【００８１】
以上のレート制御部８５による制御とは独立に、TCP制御部８４により、インターネット５１の状態に対応したデータの転送処理が実行される。この制御は、インターネット５１の輻輳状態に基づいてのみ制御される。すなわち、インターネット５１が混雑している場合には、その転送レートは小さい値に設定され、空いている場合には、より多くのデータが転送されるように制御される。TCP制御部８４は、バッファ８３自体のデータ記憶量を監視していない。従って、TCP制御部８４の制御だけでは、インターネット５１が混雑してきた場合、TCP制御部８４の輻輳制御に基づき、転送レートが低下されるため、バッファ８３がオーバーフローする恐れがある。
【００８２】
そこで、レート制御部８５がバッファ８３の増加率に基づいて、エンコーダ８２の送信レートを制御する。その結果、バッファ８３オーバーフローすることが防止される。これにより、インターネット５１の状態に係わらず、画像データを欠落させずに、受信装置５３に確実に配信することが可能となる。
【００８３】
また、TCP制御部８４とレート制御部８５を一体化することも理論的には可能であるが、そのようにすると、TCP制御部８４として既存のものを利用することができない。そこで、TCP制御部８４と独立にレート制御部８５を設け、レート制御部８５には、インターネット５１の状況に係わらず、バッファ８３の増加率だけに基づいて、エンコーダ８２の送信レートを制御させる。これにより、簡単かつ確実に、低コストでデータ配信することが可能となる。
【００８４】
以上のようにして、図１２に示されるように、近似直線Ｌの傾きが、閾値量UPLより大きい角度の範囲Ａ１にあるとき送信レートは低下され、閾値量UPLより小さい角度の範囲Ａ２にあるとき増加される。
【００８５】
なお、以上においては、インターネット５１に対してデータを配信するプロトコルをTCPとしたが、無線プロトコルである８０２．１１ｂやブルートゥース（商標）などのプロトコルを用いることも可能である。要は、これらのプロトコルは、ネットワークの状態に応じて、送信側で送信可能なスループットが変化するプロトコルであればよい。また、本発明で送信されるデータは、画像データに限らず、オーディオデータ、その他各種のコンテンツデータとすることができる。
【００８６】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。この場合、例えば、送信装置５２は、図１７に示されるようなパーソナルコンピュータにより構成される。
【００８７】
図１７において、CPU（Central  Processing  Unit）２２１は、ROM（Read  Only  Memory）２２２に記憶されているプログラム、または記憶部２２８からRAM（Random  Access  Memory）２２３にロードされたプログラムに従って各種の処理を実行する。RAM２２３にはまた、CPU２２１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００８８】
CPU２２１、ROM２２２、およびRAM２２３は、バス２２４を介して相互に接続されている。このバス２２４にはまた、入出力インタフェース２２５も接続されている。
【００８９】
入出力インタフェース２２５には、キーボード、マウスなどよりなる入力部２２６、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部２２７、ハードディスクなどより構成される記憶部２２８、モデムなどより構成される通信部２２９が接続されている。通信部２２９は、インターネット５１を含むネットワークを介しての通信処理を行う。
【００９０】
入出力インタフェース２２５にはまた、必要に応じてドライブ２３０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２３１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部２２８にインストールされる。
【００９１】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【００９２】
この記録媒体は、図１７に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２２２や、記憶部２２８に含まれるハードディスクなどで構成される。
【００９３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００９４】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００９５】
【発明の効果】
以上のごとく本発明によれば、データを確実に受信側に送信することが可能となる。特に、データを欠落させることなく、簡単な構成で低コストで配信することが可能となる。
【図面の簡単な説明】
【図１】従来の通信システムの構成例を示すブロック図である。
【図２】図１の送信装置の構成例を示すブロック図である。
【図３】図１の送信装置の構成例を示すブロック図である。
【図４】本発明を適用したネットワークシステムの構成例を示すブロック図である。
【図５】図４の送信装置の構成例を示すブロック図である。
【図６】図５のTCP制御部の動作を説明するフローチャートである。
【図７】ウインドウを説明する図である。
【図８】図５のレート制御部のレート制御動作における状態遷移を表す状態遷移図である。
【図９】図５のレート制御部の機能的構成例を示すブロック図である。
【図１０】図５のレート制御部の増加率計算処理を説明するフローチャートである。
【図１１】バッファの増加率を説明する図である。
【図１２】近似直線の例を示す図である。
【図１３】図５のレート制御部の機能的構成例を示すブロック図である。
【図１４】図５のレート制御部の送信レート制御処理を説明するフローチャートである。
【図１５】アップ状態における送信レート設定処理を説明するフローチャートである。
【図１６】ダウン状態における送信レート設定処理を説明するフローチャートである。
【図１７】本発明を適用したコンピュータの構成例を示すブロック図である。
【符号の説明】
５１  インターネット，  ５２  送信装置，  ５３−１，５３−２  受信装置，  ８１  入力部，  ８２  エンコーダ，  ８３  バッファ，  ８４  TCP制御部，  ８５  レート制御部
【図１】
0003988682.tif 000002
【図２】
0003988682.tif 000003
【図３】
0003988682.tif 000004
【図４】
0003988682.tif 000005
【図５】
0003988682.tif 000006
【図６】
0003988682.tif 000007
【図７】
0003988682.tif 000008
【図８】
0003988682.tif 000009
【図９】
0003988682.tif 000010
【図１０】
0003988682.tif 000011
【図１１】
0003988682.tif 000012
【図１２】
0003988682.tif 000013
【図１３】
0003988682.tif 000014
【図１４】
0003988682.tif 000015
【図１５】
0003988682.tif 000016
【図１６】
0003988682.tif 000017
【図１７】
0003988682.tif 000018