(57)【要約】【課題】安定した品質のコンテンツを提供できるようにする。【解決手段】ステップＳ２１において、ホールディング時間が経過するまでホールド状態が保持される。ホールディング時間内にネットワークの輻輳が検知された場合、ステップＳ２２において、状態はダウン状態に遷移され、ホールディング時間が経過した場合、ステップＳ２３において、状態はアップ状態に遷移される。ダウン状態でネットワークの輻輳がなくなったと判定された場合、ステップＳ２５で、ホールド状態に遷移される。アップ状態において、伝送レートが最大ビットレートに達したと判定された場合、ステップＳ２７において、状態はホールド状態に遷移され、ネットワークの輻輳が検知された場合、ステップＳ２８で、状態はダウン状態に遷移される。本発明は、パーソナルコンピュータに適用できる。【選択図】      図４
2004297565.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してデータを送信する第１の情報処理装置と、前記ネットワークを介して、前記第１の情報処理装置から前記データを受信する第２の情報処理装置からなるデータ通信システムにおいて、
前記第１の情報処理装置はアクセスリンクの上り伝送レートを計測し、
前記第２の情報処理装置はアクセスリンクの下り伝送レートを計測し、
前記第１の情報処理装置と前記第２の情報処理装置のうち、伝送レートを動的に制御する方は、他方から計測された伝送レートを受信して、２つの伝送レートのうち小さい方に基づいて、伝送レートの最大値を決定し、前記最大値以下の範囲で伝送レートを決定し、
前記第１の情報処理装置は、決定された伝送レートで前記データを前記第２の情報処理装置に送信する
ことを特徴とするデータ通信システム。
【請求項２】
他の情報処理装置に、ネットワークを介して、データを送信するか、または前記他の情報処理装置から前記データを受信する情報処理装置において、
前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得手段と、
前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定手段と、
前記基準値設定手段により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御手段と
を備えることを特徴とする情報処理装置。
【請求項３】
前記基準値設定手段は、前記他の情報処理装置に前記データを送信する場合、前記第１の情報として取得された前記他の情報処理装置の下りの伝送路の最大の伝送レートと、前記情報処理装置の上りの伝送路の最大の伝送レートのうち、小さい方を選択し、選択された前記伝送レートに基づいて、前記最大の基準値を設定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記基準値設定手段は、前記第１の情報として取得された前記他の情報処理装置の受信能力の最大のビットレートと、前記情報処理装置の送信能力の最大のビットレートのうち、小さい方をさらに選択し、選択された前記ビットレートと、選択された前記伝送レートのうち小さい方に基づいて、前記最大の基準値を設定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記基準値設定手段は、前記他の情報処理装置から前記データを受信する場合、前記第１の情報として取得された前記他の情報処理装置の上りの伝送路の最大の伝送レートと、前記情報処理装置の下りの伝送路の最大の伝送レートのうち、小さい方に基づいて、前記伝送レートの最大の基準値を設定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記基準値設定手段は、前記第１の情報として取得された前記他の情報処理装置の送信能力の最大のビットレートと、前記情報処理装置の受信能力の最大のビットレートのうち、小さい方をさらに選択し、選択された前記ビットレートと、選択された前記伝送レートのうち小さい方に基づいて、前記最大の基準値を設定する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記基準値設定手段は、伝送レートの最小の基準値をさらに設定し、
前記伝送レート制御手段は、前記基準値設定手段により設定された前記最大の基準値と最小の基準値の範囲内において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項８】
前記伝送レート制御手段は、伝送レートを下げる場合、前記最大の基準値に対する割合に基づいて、前記伝送レートの下げ幅を変化させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項９】
前記伝送レート制御手段は、前記最大の基準値に達するまでの時間が一定となるように、前記伝送レートを上げる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
他の情報処理装置に、ネットワークを介して、データを送信するか、または前記他の情報処理装置から前記データを受信する情報処理装置の情報処理方法において、
前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、
前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、
前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップと
を含むことを特徴とする情報処理方法。
【請求項１１】
他の情報処理装置に、ネットワークを介して、データを送信するか、または前記他の情報処理装置から前記データを受信する情報処理装置を制御するプログラムであって、
前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、
前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、
前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１２】
他の情報処理装置に、ネットワークを介して、データを送信するか、または前記他の情報処理装置から前記データを受信する情報処理装置を制御するプログラムであって、
前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、
前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、
前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システム、情報処理装置および情報処理方法、並びに、プログラムに関し、特に、ネットワークを介して、安定した品質の画像を提供できるようにしたデータ通信システム、情報処理装置および情報処理方法、並びに、プログラムに関する。
【０００２】
【従来の技術】
ＲＴＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）／ＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を用いたデータの送受信における適応的レート制御方法としては、例えば、データ受信側の装置が、データ送信側の装置に対してパケット損失率やジッタなどを通知するＲＴＣＰのＲＲ（Ｒｅｃｅｉｖｅｒ  Ｒｅｐｏｒｔ）パケットに記載されている情報を基に、送信側の装置でデータの伝送状態を推定し、送信レートを制御するという方法が提案されている（例えば、特許文献１参照）。
【０００３】
また、データ送信側の装置が、パケットの到着遅延からネットワークの輻輳を検出し、検出結果を基に、データ送信レートを制御するという方法が提案されている（例えば、特許文献２参照）。
【０００４】
さらに、送信側のレートを上下させながら、最適なレートを探し出すという方法が提案されている（例えば、特許文献３参照）。
【０００５】
この方法も、基本的には特許文献２に示される場合と同じ様に、ＲＴＣＰのＳＲ（Ｓｅｎｄｅｒ  Ｒｅｐｏｒｔ）パケットおよびＲＲパケットを用いて、受信側からの情報を基に、送信側でパケットの伝送遅延（ＲＴＴを基準とした遅延）を検出することにより、送信レートを制御するものである。
【０００６】
更に、データ受信側で、ネットワークの伝送帯域を推定し、これに基づいて、データ受信側がデータ送信側に対して、伝送制御指示を送信することにより、データ伝送レートを制御する技術がある（例えば、特許文献４参照）。
【０００７】
【特許文献１】
特開平２００２−２０４２７８号公報
【特許文献２】
特開平１１−３０８２７１号公報
【特許文献３】
特開平１１−３４１０６４号公報
【特許文献４】
特開２０００−１１５２４５号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上記したいずれの方法も、基本的に送信レートを上昇させ、ネットワークの輻輳が発生した時点で送信レートを下げ、その後、しばらくしたら、再び送信レートを上げることで、動的に伝送レートを制御するものである。しかしその結果、ネットワークが輻輳状態になるまで送信レートを上げてしまうため、定期的に輻輳状態になり、ネットワークを介して画像データを送受信している場合、提供される画像の品質が劣化してしまう課題があった。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、安定した品質のコンテンツを提供することができるようにするものである。
【００１０】
【課題を解決するための手段】
本発明のデータ通信システムは、ネットワークを介してデータを送信する第１の情報処理装置と、ネットワークを介して、第１の情報処理装置からデータを受信する第２の情報処理装置からなるデータ通信システムであって、第１の情報処理装置はアクセスリンクの上り伝送レートを計測し、第２の情報処理装置はアクセスリンクの下り伝送レートを計測し、第１の情報処理装置と第２の情報処理装置のうち、伝送レートを動的に制御する方は、他方から計測された伝送レートを受信して、２つの伝送レートのうち小さい方に基づいて、伝送レートの最大値を決定し、最大値以下の範囲で伝送レートを決定し、第１の情報処理装置は、決定された伝送レートでデータを第２の情報処理装置に送信することを特徴とする。
【００１１】
本発明の情報処理装置は、他の情報処理装置から伝送レートに関する第１の情報を取得する取得手段と、他の情報処理装置の第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定手段と、基準値設定手段により設定された最大の基準値以下の範囲において、他の情報処理装置との間におけるデータの送信または受信の伝送レートを制御する伝送レート制御手段とを備えることを特徴とする。
【００１２】
前記基準値設定手段は、他の情報処理装置にデータを送信する場合、第１の情報として取得された他の情報処理装置の下りの伝送路の最大の伝送レートと、情報処理装置の上りの伝送路の最大の伝送レートのうち、小さい方を選択し、選択された伝送レートに基づいて、最大の基準値を設定するようにすることができる。
【００１３】
前記基準値設定手段は、第１の情報として取得された他の情報処理装置の受信能力の最大のビットレートと、情報処理装置の送信能力の最大のビットレートのうち、小さい方をさらに選択し、選択されたビットレートと、選択された伝送レートのうち小さい方に基づいて、最大の基準値を設定するようにすることができる。
【００１４】
前記基準値設定手段は、他の情報処理装置からデータを受信する場合、第１の情報として取得された他の情報処理装置の上りの伝送路の最大の伝送レートと、情報処理装置の下りの伝送路の最大の伝送レートのうち、小さい方に基づいて、伝送レートの最大の基準値を設定するようにすることができる。
【００１５】
前記基準値設定手段は、第１の情報として取得された他の情報処理装置の送信能力の最大のビットレートと、情報処理装置の受信能力の最大のビットレートのうち、小さい方をさらに選択し、選択されたビットレートと、選択された伝送レートのうち小さい方に基づいて、最大の基準値を設定するようにすることができる。
【００１６】
前記基準値設定手段は、伝送レートの最小の基準値をさらに設定し、伝送レート制御手段は、基準値設定手段により設定された最大の基準値と最小の基準値の範囲内において、他の情報処理装置との間におけるデータの送信または受信の伝送レートを制御するようにすることができる。
【００１７】
前記伝送レート制御手段は、伝送レートを下げる場合、最大の基準値に対する割合に基づいて、伝送レートの下げ幅を変化させるようにすることができる。
【００１８】
前記伝送レート制御手段は、最大の基準値に達するまでの時間が一定となるように、伝送レートを上げるようにすることができる。
【００１９】
本発明の情報処理方法は、他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、他の情報処理装置の第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、基準値設定ステップの処理により設定された最大の基準値以下の範囲において、他の情報処理装置との間におけるデータの送信または受信の伝送レートを制御する伝送レート制御ステップとを含むことを特徴とする。
【００２０】
本発明の記録媒体に記録されているプログラムは、他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、他の情報処理装置の第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、基準値設定ステップの処理により設定された最大の基準値以下の範囲において、他の情報処理装置との間におけるデータの送信または受信の伝送レートを制御する伝送レート制御ステップとを含むことを特徴とする。
【００２１】
本発明のプログラムは、他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップと、他の情報処理装置の第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップと、基準値設定ステップの処理により設定された最大の基準値以下の範囲において、他の情報処理装置との間におけるデータの送信または受信の伝送レートを制御する伝送レート制御ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２２】
本発明のデータ通信システムにおいては、第１の情報処理装置でアクセスリンクの上り伝送レートが計測され、第２の情報処理装置でアクセスリンクの下り伝送レートが計測され、第１の情報処理装置と第２の情報処理装置のうち、伝送レートを動的に制御する方で、伝送レートの最大値が決定され、最大値以下の範囲で伝送レートが決定され、第１の情報処理装置で、決定された伝送レートでデータが第２の情報処理装置に送信される。
【００２３】
本発明の情報処理装置および方法、記録媒体、並びにプログラムにおいては、他の情報処理装置から伝送レートに関する第１の情報が取得され、他の情報処理装置の第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値が設定され、設定された最大の基準値以下の範囲において、他の情報処理装置との間におけるデータの送信または受信の伝送レートが制御される。
【００２４】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２５】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２６】
請求項１に記載のデータ通信システムは、ネットワークを介してデータを送信する第１の情報処理装置（例えば、図１の情報処理装置１−１）と、前記ネットワークを介して、前記第１の情報処理装置から前記データを受信する第２の情報処理装置（例えば、図１の情報処理装置１−２）からなるデータ通信システムであって、前記第１の情報処理装置はアクセスリンクの上り伝送レートを計測し（例えば、図１０のステップＳ１２１乃至ステップＳ１２３）、前記第２の情報処理装置はアクセスリンクの下り伝送レートを計測し（例えば、図９のステップＳ１０１乃至ステップＳ１０４）、前記第１の情報処理装置と前記第２の情報処理装置のうち、伝送レートを動的に制御する方（例えば、図１の情報処理装置１−２）は、他方から計測された伝送レートを受信して、２つの伝送レートのうち小さい方に基づいて、伝送レートの最大値を決定し（例えば、図１１のステップＳ１４３）、前記最大値以下の範囲で伝送レートを決定し（例えば、図５のステップＳ４８，ステップＳ５２）、前記第１の情報処理装置は、決定された伝送レートで前記データを前記第２の情報処理装置に送信する（例えば、図３のステップＳ３）ことを特徴とする。
【００２７】
請求項２に記載の情報処理装置（例えば、図１の情報処理装置１−２）は、前記他の情報処理装置から伝送レートに関する第１の情報（例えば、図１の情報処理装置１−１の上りの伝送レート）を取得する取得手段（例えば、図１１のステップＳ１４２の処理を実行する図２のデータ受信部４１）と、前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報（例えば、図１の情報処理装置１−２の下りの伝送レート）に基づいて、伝送レートの最大の基準値を設定する基準値設定手段（例えば、図８のステップＳ７５またはステップＳ７６の処理を実行する図２の経路最大レート決定部５１）と、前記基準値設定手段により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御手段（例えば、図５のステップＳ４８またはステップＳ５２の処理を実行する図２の送信レート設定部４６）とを備えることを特徴とする。
【００２８】
請求項３に記載の情報処理装置の前記基準値設定手段は、前記他の情報処理装置に前記データを送信する場合、前記第１の情報として取得された前記他の情報処理装置の下りの伝送路の最大の伝送レートと、前記情報処理装置の上りの伝送路の最大の伝送レートのうち、小さい方を選択し、選択された前記伝送レートに基づいて、前記最大の基準値を設定する（例えば、図１１のステップＳ１４３）ことを特徴とする。
【００２９】
請求項４に記載の情報処理装置の前記基準値設定手段は、前記第１の情報として取得された前記他の情報処理装置の受信能力の最大のビットレートと、前記情報処理装置の送信能力の最大のビットレートのうち、小さい方をさらに選択し（例えば、図１２のステップＳ１６３）、選択された前記ビットレートと、選択された前記伝送レートのうち小さい方に基づいて、前記最大の基準値を設定する（例えば、図５のステップＳ７４乃至ステップＳ７６）ことを特徴とする。
【００３０】
請求項５に記載の情報処理装置の前記基準値設定手段は、前記他の情報処理装置から前記データを受信する場合、前記第１の情報として取得された前記他の情報処理装置の上りの伝送路の最大の伝送レートと、前記情報処理装置の下りの伝送路の最大の伝送レートのうち、小さい方に基づいて、前記伝送レートの最大の基準値を設定する（例えば、図１１のステップＳ１４３）ことを特徴とする。
【００３１】
請求項６に記載の情報処理装置の前記基準値設定手段は、前記第１の情報として取得された前記他の情報処理装置の送信能力の最大のビットレートと、前記情報処理装置の受信能力の最大のビットレートのうち、小さい方をさらに選択し（例えば、図１２のステップＳ１６３）、選択された前記ビットレートと、選択された前記伝送レートのうち小さい方に基づいて、前記最大の基準値を設定する（例えば、図５のステップＳ７４乃至ステップＳ７６）ことを特徴とする。
【００３２】
請求項７に記載の情報処理装置の前記基準値設定手段は、伝送レートの最小の基準値をさらに設定し（例えば、図５のステップＳ７７）、前記伝送レート制御手段は、前記基準値設定手段により設定された前記最大の基準値と最小の基準値の範囲内において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する（例えば、ステップＳ４７，ステップＳ４８，ステップＳ５１、またはステップＳ５２）ことを特徴とする。
【００３３】
請求項８に記載の情報処理装置の前記伝送レート制御手段は、伝送レートを下げる場合、前記最大の基準値に対する割合に基づいて、前記伝送レートの下げ幅を変化させる（例えば、図６に示されるように変化させる）ことを特徴とする。
【００３４】
請求項９に記載の情報処理装置の前記伝送レート制御手段は、前記最大の基準値に達するまでの時間が一定となるように、前記伝送レートを上げる（例えば、図７に示されるように上げる）ことを特徴とする。
【００３５】
請求項１０に記載の情報処理方法は、前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップ（例えば、図１１のステップＳ１４２）と、前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップ（例えば、図８のステップＳ７５またはステップＳ７６）と、前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップ（例えば、図５のステップＳ４８またはステップＳ５２）とを含むことを特徴とする。
【００３６】
請求項１１に記載の記録媒体は、前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップ（例えば、図１１のステップＳ１４２）と、前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップ（例えば、図８のステップＳ７５またはステップＳ７６）と、前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップ（例えば、図５のステップＳ４８またはステップＳ５２）を含むことを特徴とする。
【００３７】
請求項１２に記載のプログラムは、前記他の情報処理装置から伝送レートに関する第１の情報を取得する取得ステップ（例えば、図１１のステップＳ１４２）と、前記他の情報処理装置の前記第１の情報と自分自身の伝送レートに関する第２の情報に基づいて、伝送レートの最大の基準値を設定する基準値設定ステップ（例えば、図８のステップＳ７５またはステップＳ７６）と、前記基準値設定ステップの処理により設定された前記最大の基準値以下の範囲において、前記他の情報処理装置との間における前記データの送信または受信の伝送レートを制御する伝送レート制御ステップ（例えば、図５のステップＳ４８またはステップＳ５２）とを含む処理をコンピュータに実行させることを特徴とする。
【００３８】
以下に、本発明の実施の形態について図面を参照して説明する。
【００３９】
図１は、本発明を適用した通信システムを説明する図である。
【００４０】
図１においては、情報処理装置１−１、情報処理装置１−２、および計測サーバ４が、それぞれネットワークとしてのインターネット３に接続されている。
【００４１】
情報処理装置１−１は、アクセスリンク２−１を介してインターネット３に接続されており、情報処理装置１−２は、アクセスリンク２−２を介してインターネット３に接続されている。アクセスリンク２−１およびアクセスリンク２−２は、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）等とされる。
【００４２】
基幹リンク５を介してインターネット３に接続されている計測サーバ４は、情報処理装置１−１，１−２がそれぞれ対応するアクセスリンク２−１，２−２のリンクスピード（伝送レート）を計測するためのサーバである。
【００４３】
情報処理装置１−１は、上りの伝送レートを計測するとき、所定のサイズのパケット１１を、アクセスリンク２−１からインターネット３を介して計測サーバ４に送信する。情報処理装置１−１は、パケット１１を計測サーバ４に送信するときの速度に基づき、上りの伝送レートを求める。また、情報処理装置１−２は、下りの伝送レートを計測するとき、計測サーバ４から所定のサイズのパケット２１を、インターネット３およびアクセスリンク２−２を介して受信する。情報処理装置１−２は、データパケット２１を計測サーバ４から受信するときの速度に基づき、下りの伝送レートを求める。
【００４４】
情報処理装置１−２から情報処理装置１−１にデータを送信するときは、同様に、情報処理装置１−２の上りの速度と、情報処理装置１−１の下りの速度が計測される。
【００４５】
以下、例えば、パーソナルコンピュータよりなる情報処理装置１−１と情報処理装置１−２を個々に区別する必要がない場合、単に情報処理装置１と称し、アクセスリンク２−１とアクセスリンク２−２を個々に区別する必要がない場合、単にアクセスリンク２と称する。
【００４６】
図２は、情報処理装置１の機能的構成を示す機能ブロック図である。情報処理装置１は、データを送信する機能とデータを受信する機能を有している。
【００４７】
情報処理装置１は、データ受信部４１、データ再生部４２、輻輳判定部４３、モード設定部４４、送信レート判定部４５、送信レート設定部４６、タイマ４７、速度計測部４８、データ送信部４９、データ記録部５０、経路最大レート決定部５１、最大ビットレート設定部５２、および最大値最小値決定部５３により構成される。
【００４８】
データ受信部４１は、インターネット３（およびアクセスリンク２）を介してデータを受信する。受信されたデータは、データ再生部４２、輻輳判定部４３、送信レート設定部４６、速度計測部４８、データ記録部５０、経路最大レート決定部５１、または最大ビットレート設定部５２に供給される。
【００４９】
輻輳判定部４３は、データ受信部４１から受信したデータと、送信レート設定部４６からの情報に基づいて、輻輳があるか否かを判定する。輻輳判定部４３による判定結果は、モード設定部４４と送信レート判定部４５に供給される。
【００５０】
モード設定部４４は、輻輳判定部４３による判定結果と、タイマ４７により計時される時刻に基づいて、所定のモードを設定する。設定されるモード（状態）は、ホールド状態、アップ状態、およびダウン状態の３つの状態のいずれかである。設定されたモードは、送信レート判定部４５に供給される。このモード（状態）の詳細は、図４を参照して後述する。
【００５１】
送信レート判定部４５は、輻輳判定部４３の判定結果、モード設定部４４により設定されたモード（状態）に基づいて、送信レートを判定する。例えば、いまの送信レートが、レート制御の最小値であるか否かを判定したり、いまの送信レートが、レート制御の最大値であるか否かを判定する。送信レート判定部４５による送信レートの判定結果は、送信レート設定部４６に供給される。
【００５２】
このシステムの場合、送信レートは受信側で動的に制御される。そこで、送信レート設定部４６は、自分自身が送信側である場合、他の情報処理装置（受信側の情報処理装置）により送信され、データ受信部４１により受信された受信レートを調べ、現在の送信レートを設定する（送信レートと受信レートは同じになる）。設定された送信レートは、輻輳判定部４３およびデータ送信部４９に供給される。
【００５３】
タイマ４７は、計時動作を実行し、計時した時刻をモード設定部４４、速度計測部４８、および輻輳判定部４３に出力する。速度計測部４８は、タイマ４７から取得した現在時刻と、データ受信部４１が受信したデータ量に基づいて、下りの伝送レート（データを受信するときの伝送レート）を計測する。また、速度計測部４８は、タイマ４７から取得した現在時刻と、データ送信部４９が送信しているデータ量に基づいて、上りの伝送レート（送信するときの伝送レート）を計測する。計測された速度は、経路最大レート決定部５１に出力される。
【００５４】
データ送信部４９は、自分自身が送信側である場合、送信レート設定部４６により設定された送信レートに基づいて、データ記録部５０に記録されているコンテンツデータ（例えば、音声、画像、テキストデータ、または、これらを混合したデータ）を読み出し、ストリームデータとして、受信側の情報処理装置に送信する。また、データ送信部４９は、上りの伝送レートを計測するとき、送信するデータの情報（データの量）を、速度計測部４８に出力する。データ送信部４９はさらに、自分自身が受信側である場合、経路最大レート決定部５１により決定され、供給された経路の最大レートと、最大ビットレート設定部５２により設定され、供給された最大ビットレートを、送信側の情報処理装置に送信する。
【００５５】
自分自身が受信側である場合、データ記録部５０は、データ受信部４１により受信されたコンテンツデータを記録する。自分自身が受信側である場合、データ記録部５０は、記録されているコンテンツデータを読み出して、データ送信部４９に出力する。
【００５６】
経路最大レート決定部５１は、自分自身が受信側である場合、データ受信部４１により受信された送信側の上りの伝送レートの情報、並びに速度計測部４８により計測された速度（自分自身（受信側）の下りの伝送レート）に基づいて、経路の最大レートを決定する（図１１を参照して後述する）。決定された経路の最大レートは、データ送信部４９に出力されるとともに、最大値最小値決定部５３に出力される。
【００５７】
最大ビットレート設定部５２は、データ受信部４１により受信された送信側の最大ビットレートと自分自身の受信可能な最大ビットレートに基づいて、ストリームの最大ビットレートを設定し、設定した最大ビットレートを、データ送信部４９と最大値最小値決定部５３に出力する（図１２を参照して後述する）。
【００５８】
最大値最小値決定部５３は、経路最大レート決定部５１により決定された経路の最大レートと、最大ビットレート設定部５２により設定された最大ビットレートに基づいて、ストリームの最大ビットレートと、最小ビットレートを決定する（図８を参照して後述する）。決定された最大ビットレートと最小ビットレートは、送信レート設定部４６に出力される。
【００５９】
以下、受信側の機器（例えば、情報処理装置１−２）が、送信側の機器（例えば、情報処理装置１−１）の伝送レートを設定する場合について説明する。
【００６０】
図３は、送信側のレート制御処理を説明するフローチャートである。例えば、情報処理装置１−１が所定のデータ（データパケット）を、情報処理装置１−２に送信する場合、情報処理装置１−１が送信側となり、情報処理装置１−２が受信側となる。従って、図３の処理は、送信側の情報処理装置１−１により実行される。
【００６１】
ステップＳ１において、情報処理装置１−１のデータ受信部４１は、受信側の情報処理装置１−２から送信レートを受信したか否かを判定し、受信したと判定されるまで待機する。すなわち、このシステムでは送信レートは受信側で制御されるため、受信側の情報処理装置１−２から送信レートが送信されてくる（後述する図５のステップＳ４９またはステップＳ５３）ので、送信側の情報処理装置１−１のデータ受信部４１は、インターネット３を介して、これを受信する。
【００６２】
ステップＳ１において、送信レートを受信したと判定された場合、ステップＳ２において、送信レート設定部４６は、送信レートを、データ受信部４１が受信した値（送信レートの値）に設定する。
【００６３】
ステップＳ３において、データ送信部４９は、データ記録部５０に記録されているコンテンツデータを読み出し、ステップＳ２の処理により設定された送信レートで、インターネット３を介して受信側の情報処理装置１−２に送信する。
【００６４】
このように、送信側の情報処理装置１−１は、受信側の情報処理装置１−２から取得した送信レートに基づいて、送信レートを制御する。なお、いまの例の場合、送信側を情報処理装置１−１としたが、送信側を情報処理装置１−２とすることも、勿論可能である。その場合、図３の処理は、情報処理装置１−２が実行する。
【００６５】
次に、受信側の装置における伝送レートの動的制御について説明する。このシステムの場合、モード設定部４４は、図４に示されるように、３つのモード（状態）のいずれかにモード（状態）を遷移させることで、伝送レートを制御する。
【００６６】
３つのモード（状態）とは、データ伝送レートを上げるように制御するＵＰ状態（以下、アップ状態と称する）、データ伝送レートを下げるように制御するＤｏｗｎ状態（以下、ダウン状態と称する）、および、データ伝送レートを変更しないように制御するＨｏｌｄ状態（以下、ホールド状態と称する）である。
【００６７】
制御のはじめにおいて、状態はホールド状態とされる。ステップＳ２１において、予め設定されているＨｏｌｄｉｎｇ  Ｔｉｍｅ（以下、ホールディング時間と称する）が経過するまでホールド状態が保持される。ホールディング時間内にネットワークの輻輳が検知された場合、ステップＳ２２において、状態はダウン状態に遷移され、ホールディング時間が経過した場合、ステップＳ２３において、状態はアップ状態に遷移される。
【００６８】
ダウン状態では、伝送レートが下げられる。伝送レートが予め設定された最小値となった場合、伝送レートは、最小値以下には下げられない。従って、実質的にはホールドされるが、状態はダウン状態のままとされる。ダウン状態でネットワークの輻輳があると判定された場合、ステップＳ２４で、状態はそのままダウン状態とされる。ダウン状態において、ネットワークの輻輳がなくなったと判定された場合、ステップＳ２５で、状態はダウン状態からホールド状態に遷移される。
【００６９】
アップ状態においては、伝送レートが上げられる。アップ状態において、ネットワークに輻輳がないと判定された場合、ステップＳ２６で、状態はアップ状態に保持される。アップ状態において、伝送レートが、予め設定されている最大ビットレートに達したと判定された場合、ステップＳ２７において、ホールディング時間が無限大（∞）とされ、状態はホールド状態に遷移される。アップ状態において、ネットワークの輻輳が検知された場合、ステップＳ２８で、状態はダウン状態に遷移される。
【００７０】
このようにして、３つの状態に基づいて、データ伝送レートが制御されることにより、データ伝送レートは、そのときのデータ伝送路の条件により最適に制御される。
【００７１】
以上の３つのモード（状態）による受信側のレート制御処理をフローチャートに示すと、図５のようになる。次に、この図５のフローチャートを参照して、受信側のレート制御について説明する。
【００７２】
ステップＳ４１において、受信側の情報処理装置１−２のモード設定部４４は、状態をホールド状態に設定する。上述したように、ホールド状態では、データ伝送レートは、変更されない。モード設定部４４は、また、タイマ４７から現在時刻を取得する。
【００７３】
ステップＳ４２において、輻輳判定部４３は、ネットワークの輻輳があるか否かを判定する。ステップＳ４２において、輻輳がないと判定された場合、ステップＳ４３において、モード設定部４４は、ホールディング時間が経過したか否かを判定する。具体的には、モード設定部４４は、タイマ４７から現在時刻を取得し、取得した現在時刻と、ステップＳ４１においてホールド状態を設定した時刻との差が、予め設定されているホールディング時間より大きいか否か（ホールディング時間が経過したか否か）を判定する。ステップＳ４３において、ホールディング時間が経過していないと判定された場合、ステップＳ４２に戻り、それ以降の処理が繰り返される。
【００７４】
ステップＳ４３において、ホールディング時間が経過したと判定された場合、ステップＳ４４において、モード設定部４４は、状態をアップ状態に設定する。上述したように、アップ状態では、データ伝送レートが上げられる。
【００７５】
ステップＳ４５において、輻輳判定部４３は、ネットワークの輻輳があるか否かを判定する。
【００７６】
ステップＳ４５において、輻輳があると判定された場合、またはステップＳ４２において、輻輳があると判定された場合、ステップＳ４６において、モード設定部４４は、状態をダウン状態に設定する。上述したように、ダウン状態では、データ伝送レートが下げられる。
【００７７】
ステップＳ４７において、送信レート判定部４５は、送信レートが予め設定されている最小値か否かを判定する。送信レートが最小値ではない（最小値より大きい）と判定された場合、ステップＳ４８において、送信レート設定部４６は、送信レートを、その値が大きいほど、大きい変化幅となるように下げる。
【００７８】
この送信レートを下げる場合の例を、図６を参照して説明する。図６において、横軸は、時刻ｔを表し、縦軸は、ビットレート（送信レート）を表す。また、ＲＭは、最大ビットレートを表す。最大ビットレートの求め方は、図８のフローチャートを参照して後述する。図６の例の場合、ストリームＡが、データ受信部４１により受信されている。
【００７９】
ストリームＡは、ピーク点Ｐ１に達するまで、ホールド状態とアップ状態が繰り返される。ストリームＡは、ピーク点Ｐ１において、ダウン状態とされる（ステップＳ４６の処理）。送信レート設定部４６は、ストリームＡのピーク点Ｐ１が、最大ビットレートＲＭに近いため、ストリームＡのビットレートを、変化幅Ｄ２だけ下げる。
【００８０】
一方、データ受信部４１が受信しているのが、図６に示されるような伝送レートが低いストリームＢである場合、ピーク点Ｐ１２からダウンされるとき、ピーク点Ｐ１２の値は、最大ビットレートＲＭより充分小さいので、より小さい変化幅１２だけ下げられる。
【００８１】
具体的には、ピーク点Ｐ１におけるストリームＡのビットレートの変化幅Ｄ２と、ピーク点Ｐ１２におけるストリームＢのビットレートの変化幅Ｄ１２は、Ｄ２＞Ｄ１２となるように設定される。例えば、送信レートが最大ビットレートＲＭに近いストリームＡは、送信レートがピーク点Ｐ１の７０％に下げられる（３０％だけ下げられる）のに対し、ストリームＢは、送信レートがピーク点Ｐ１２の８５％に下げられる。
【００８２】
従って、図６に示されるように、ストリームＡの、より小さい値のピーク点Ｐ３における変化幅Ｄ４（Ｄ２＞Ｄ３）は、変化幅Ｄ２より小さい幅とされる。ストリームＢにおいても同様に、より大きいピーク点Ｐ１１における変化幅Ｄ１４は、変化幅Ｄ１２より大きい値とされる。
【００８３】
このように、最大ビットレートに対する受信レートの割合が高いストリームほど、大きな割合でビットレートが下げられる。
【００８４】
図５に戻って、ステップＳ４９において、データ送信部４９は、ステップＳ４８の処理により下げられた（設定された）送信レートを、インターネット３を介して送信側に通知する。いまの例の場合、情報処理装置１−１が送信側とされるので、情報処理装置１−１は、上述した図３の処理により、送信レートを受信し、設定する。
【００８５】
ステップＳ４７において、送信レートがレート制御の最小値であると判定された場合、またはステップＳ４９の後、処理はステップＳ５０に進み、輻輳判定部４３は、ネットワークの輻輳があるか否かを判定する。ステップＳ５０において、輻輳があると判定された場合、処理はステップＳ４７に戻り、それ以降の処理が繰り返される。すなわち、再び、ステップＳ４７において、送信レートがレート制御の最小値でないと判定された場合、ステップＳ４８において、さらに、送信レートが下げられる。
【００８６】
ステップＳ５０において、輻輳があると判定された場合、処理はステップＳ４１に戻り、それ以降の処理が繰り返される。すなわち、再び、ホールド状態とされ（ステップＳ４１）、輻輳の有無とホールディング時間に基づいて、アップ状態に設定される（ステップＳ４４）。
【００８７】
ステップＳ４５において、アップ状態で輻輳があると判定された場合、ステップＳ５１において、送信レート判定部４５は、現在の送信レートが最大値であるか否かを判定する。送信レートがレート制御の最大値でないと判定された場合、ステップＳ５２において、送信レート設定部４６は、送信レートを、その値が大きいほど、小さい変化幅になるように上げる。
【００８８】
具体的には、図６の例の場合、最大値ＲＭに近いストリームＡのビットレートがピーク点Ｐ２からピーク点Ｐ１まで上げられるときの変化幅Ｄ１は、最大値ＲＭより充分小さいストリームＢのビットレートがピーク点Ｐ１４からピーク点Ｐ１２まで上げられるときの変化幅Ｄ１１より小さい。
【００８９】
同様に、ストリームＡのピーク点Ｐ４からピーク点Ｐ３までの変化幅Ｄ３は、ストリームＢのピーク点Ｐ１３からピーク点Ｐ１１までの変化幅Ｄ１３より小さい。
【００９０】
ステップＳ５３において、データ送信部４９は、送信レート設定部４６により上げられた（設定された）送信レートを、インターネット３を介して送信側に通知する。これに対し、送信側の情報処理装置１−１は、上述した図３に示されるように、送信レートを受信し、設定する。ステップＳ５３の処理の後、処理はステップＳ４５に進み、同様の処理が繰り返される。
【００９１】
ステップＳ５１において、送信レートが最大値であると判定された場合、ステップＳ５４において、輻輳判定部４３は、ホールディング時間を無限大に設定する。その後、処理はステップＳ４１に戻り、それ以降の処理が繰り返される。これにより、送信レートが最大値を超えないように制御することができる。
【００９２】
図５の処理により、受信側において、ネットワークの状況に応じて、動的に送信レートを制御することができる。
【００９３】
このように、図５の処理の繰り返しにより、ストリームＡの送信レートと、ストリームＢの送信レートが相互に近づく（一致する）ようになる。
【００９４】
なお、ステップＳ５２の送信レートを上げる処理は、図７に示されるようにすることもできる。
【００９５】
図７に示される例では、送信レート設定部４６は、伝送レートが大きいストリームＣも、伝送レートが小さいストリームＤも、最大ビットレートＲＭに達するまでの時間Ｔが一定（固定）となるように、送信レートを上げる。これにより、ホールド状態（ステップＳ４１）とアップ状態（ステップＳ４４）の繰り返しにより時間Ｔが経過した場合に、ストリームＣとストリームＤの送信レートを最大ビットレートＲＭに設定することができる。
【００９６】
また、伝送路の伝送容量に余裕があったとしても、伝送レートを、予め設定されている最大値ＲＭより大きい値に設定しないようにすることで、安定した品質のコンテンツを提供することが可能となる。
【００９７】
このように、このシステムでは、伝送レートに最大値と最小値が設定される。次に、図８乃至図１２のフローチャートを参照して、この最大値と最小値を決定する処理を説明する。この処理は、受信側の情報処理装置１−２において（コンテンツデータの受信処理を開始する直前に）行なわれる。
【００９８】
ステップＳ７１において、速度計測部４８は、下りの伝送レートを計測する。下りの伝送レートは、例えば、図９のフローチャートに示される処理により求められる。
【００９９】
ステップＳ１０１において、データ送信部４９から計測サーバ４にアクセスし、計測用パケットの送信を要求する。この要求に基づいて、計測サーバ４は、計測用パケット２１を送信してくる。この計測用パケット２１は、基幹リンク５、インターネット３、アクセスリンク２−２を介して伝送されてくる。
【０１００】
ステップＳ１０２において、データ受信部４１は、計測サーバ４から送信された計測用パケット２１を受信する。この所定のデータは、伝送レートを計測するためのものであるので、決まったデータ量のものであればよい。
【０１０１】
ステップＳ１０３において、速度計測部４８は、データ受信部４１が、最初のデータを受信してから、Ｋバイト目（Ｋ：アクセスリンクの速度にあわせた適当なサイズのデータ）のデータを受信するまでの時間Ｔｄを、タイマ４７により計時される時刻に基づいて計測する。
【０１０２】
ステップＳ１０４において、速度計測部４８は、「Ｋ／Ｔｄ」を演算し、これを下りの伝送レートＶｄとする（すなわち、「Ｖｄ＝Ｋ／Ｔｄ」を演算する）。
【０１０３】
計測サーバ４は、計測機能を実現するために、充分広い（少なくともアクセスリンク２−１，２−２より広い）帯域の基幹リンク５に接続されている。従って、この伝送レートＶｄの値は、基幹リンク５とアクセスリンク２−２よりなる伝送路のうちのボトルネックとしてのアクセスリンク２−２の速度となる。
【０１０４】
図９の処理により、情報処理装置１−２の下りの伝送レートＶｄが求められる。
【０１０５】
一方、送信側である情報処理装置１−１は、上りの伝送レートを予め計測する。以下に、上りの伝送レート計測処理を、図１０のフローチャートを参照して説明する。
【０１０６】
ステップＳ１２１において、情報処理装置１−１のデータ送信部４９は、アクセスリンク２−１とインターネット３を介して、計測サーバ４にアクセスし、計測を要求し、計測用パケット１１を送信する。このパケットは、伝送レートを計測するためのものであるので、データ量が明らかなものであればよい。
【０１０７】
ステップＳ１２２において、速度計測部４８は、データ送信部４９が、最初のデータを送信してから、Ｌバイト目（Ｌ：アクセスリンクの速度にあわせた適当なサイズのデータ）のデータを送信するまでの時間Ｔｕを、タイマ４７により計時される時刻に基づいて計測する。
【０１０８】
ステップＳ１２３において、速度計測部４８は、「Ｌ／Ｔｕ」を演算し、これを情報処理装置１−１の上りの伝送レートＶｕとする（すなわち、「Ｖｕ＝Ｌ／Ｔｕ」を演算する）。
【０１０９】
ステップＳ１２４において、データ送信部４９は、速度計測部４８により演算された伝送レートＶｕを、受信側（情報処理装置１−２）からの要求に応じて送信する。
【０１１０】
アクセスリンク２−１に較べて基幹リンク５は充分広い帯域を有するので、伝送レートＶｕは、アクセスリンク２−１と基幹リンク５よりなる伝送路のうちのボトルネックとしてのアクセスリンク２−１の速度ということになる。
【０１１１】
図１０の処理により、上りの伝送レートＶｕが求められ、受信側からの要求に応じて、送信される。
【０１１２】
図８に戻って、ステップＳ７２において、受信側の情報処理装置１−２の経路最大レート決定部５１は、経路最大レートを決定する。経路最大レートは、例えば、図１２に示されるような処理により決定される。
【０１１３】
ステップＳ１４１において、データ送信部４９は、送信側に上りの伝送レートの通知を要求する。いまの場合、データ送信部４９は、情報処理装置１−１に上りの伝送レートの通知を要求する。情報処理装置１−１は、上述した図１０のステップＳ１２３の処理により、上りの伝送レートＶｕを求めており、情報処理装置１−２のこの要求（ステップＳ１４１の要求）に対応して、上りの伝送レートＶｕを送信してくる（ステップＳ１２４の処理）。
【０１１４】
そこで、ステップＳ１４２において、情報処理装置１−２のデータ受信部４１は、情報処理装置１−１（相手先）から送信されてきた上りの伝送レートＶｕの通知を受信する。上りの伝送レートＶｕは、経路最大レート決定部５１に出力される。
【０１１５】
ステップＳ１４３において、経路最大レート決定部５１は、自分自身の下りの伝送レートＶｄ（図９の処理により求めた、情報処理装置１−２の下りの伝送レートＶｄ）と、相手側（情報処理装置１−１）の上りの伝送レートＶｕのうち、小さい方に基づいて、経路最大レートを求める。例えば、下りの伝送レートＶｄが１２００Ｋｂｐｓであり、上りの伝送レートＶｕが５００Ｋｂｐｓである場合、小さいレートは、上りの伝送レートＶｕである。経路最大レート決定部５１は、この上りの伝送レートＶｕを、例えば０．８倍する（１より小さい、所定の係数を乗算する）ことにより、経路最大レートを求める。これは、経路最大レートを実際のレートより少し低くすることで、ネットワークの輻輳が起らないようにするためである。この場合、４００Ｋｂｐｓ（＝５００Ｋｂｐｓ×０．８）が、経路最大レートとなる。
【０１１６】
図１１の処理により、経路最大レートが求められる。
【０１１７】
図８に戻って、ステップＳ７３において、最大ビットレート設定部５２は、処理能力により規定される伝送レートとしてのストリームの最大ビットレートを獲得する。ストリームの最大ビットレートの獲得は、例えば、図１２のフローチャートに示される処理により行なわれる。
【０１１８】
ステップＳ１６１において、データ送信部４９は、送信側に、送信のストリームの最大ビットレートの通知を要求する。いまの例の場合、送信側である情報処理装置１−１に、送信ストリームの最大ビットレートの通知が要求される。送信ストリームの最大ビットレートは、例えば、ストリームの送信側（いまの例の場合、情報処理装置１−１）のデータ送信部４９の処理能力（送信能力）によって異なる。情報処理装置１−１は、この要求（ステップＳ１６１の処理）に対応して、自分自身の能力に対応する送信のストリームの最大ビットレートを送信する。
【０１１９】
そこで、ステップＳ１６２において、情報処理装置１−２のデータ受信部４１は、送信側（いまの例の場合、情報処理装置１−１）から送信のストリームの最大ビットレートの通知を受信する。
【０１２０】
ステップＳ１６３において、情報処理装置１−２の最大ビットレート設定部５２は、データ受信部４１の受信可能なストリームの最大ビットレートと、送信側（いまの例の場合、情報処理装置１−１）の送信のストリームの最大ビットレートのうち、小さい方を、下りのストリームの最大ビットレートとする。すなわち、受信のストリームの最大ビットレートは、ストリームを受信する側（いまの例の場合、情報処理装置１−２）のデータ受信部４１の能力によって異なる。最大ビットレート設定部５２は、このデータ受信部４１の最大ビットレートと、送信側である情報処理装置１−１の送信のストリームの最大ビットレートのうち、小さい方を、下りのストリームの最大ビットレートとする。
【０１２１】
これにより、ストリームの最大ビットレート（送受信する装置の処理能力により規定される伝送レート）が獲得される。
【０１２２】
図８に戻って、ステップＳ７４において、最大値最小値決定部５３は、経路最大レート決定部５１により決定された経路最大レート（図１１の処理により決定された経路最大レート）と、最大ビットレート設定部５２により獲得されたストリームの最大ビットレート（図１２の処理により決定されたストリームの最大ビットレート）の大きさを比較し、経路最大レートが、最大ビットレートより小さいか否かを判定する（経路最大レート＜最大ビットレートであるか否かを判定する）。
【０１２３】
ステップＳ７４において、経路最大レートが、最大ビットレートより小さいと判定された場合、ステップＳ７５において、最大値最小値決定部５３は、最大ビットレートＲＭに、経路最大レートを設定する。また、ステップＳ７４において、経路最大レートが、最大ビットレートより小さくない（すなわち、経路最大レートが、最大ビットレートより大きい）と判定された場合、ステップＳ７６において、最大値最小値決定部５３は、最大ビットレートＲＭに、ストリームの最大ビットレートを設定する。
【０１２４】
ステップＳ７５またはステップＳ７６の処理の後（すなわち、最大ビットレートが設定された後）、ステップＳ７７において、最大値最小値決定部５３は、最大ビットレートＲＭに基づいて、最小ビットレートＲＬを決定する。最小ビットレートＲＬは、ストリームに依存するが、例えば、最大値（最大ビットレートＲＭ）の１／５倍とされる。すなわち、「ＲＬ＝ＲＭ×１／５」が演算される。なお、この倍率は、１／５倍に限らず、他の倍率としてもよい。
【０１２５】
図８乃至図１２の処理により、最大ビットレートＲＭと最小ビットレートＲＬが決定される。これらの値が、上述した図５のステップＳ４７，Ｓ５１で使用される。
【０１２６】
以上の処理により、図１３に示されるようなビットレートの伝送レートでストリームが伝送される。
【０１２７】
図１３の例の場合、時刻ｔ０において伝送レートがアップ状態とされ、ストリーム２５１のビットレートは、最大ビットレートＲＭまで上げられる（例えば、図５のステップＳ５２）。時刻ｔ１において、ホールド状態とされ、ストリーム２５１のビットレートは、一定に保たれる（例えば、図５のステップＳ５１において、送信レートが最大値になったと判定されたため）。時刻ｔ２において、ストリーム２５１以外に、ストリーム２５２が伝送されるようになり、いずれの伝送レートもダウン状態とされ、ストリーム２５１とストリーム２５２のビットレートは、下げられる。これは、ストリーム２５２が、伝送され始め、輻輳が検出されたためである（例えば、図５のステップＳ４２において、輻輳があると判定されたためである）。
【０１２８】
時刻ｔ３において、状態はホールド状態とされ、ストリーム２５１とストリーム２５２のビットレートは、一定に保たれる（例えば、図５のステップＳ４１）。時刻ｔ４において、状態はアップ状態とされ、ストリーム２５１とストリーム２５２のビットレートは、上げられる。時刻ｔ５において、状態はダウン状態とされ、ストリーム２５１とストリーム２５２のビットレートは、下げられる。時刻ｔ６において、状態はホールド状態とされ、ストリーム２５１とストリーム２５２のビットレートは、一定に保たれる。
【０１２９】
その後、ストリーム２５２の伝送が終了し、ホールディング時間が経過した後（ストリーム２５２の終了後、ホールディング時間が経過したとき）（例えば、図５のステップＳ４３において、ＹＥＳとされたとき）、時刻ｔ７において、状態はアップ状態とされる（例えば、図５のステップＳ４４）。その後、送信レートがレート制御の最大値（ＲＭ）となったため、時刻ｔ８において、ホールド状態とされる。
【０１３０】
このように、ストリームの伝送レートが最大値と最小値の範囲内において、動的に制御される。
【０１３１】
これにより、広い帯域を必要とする装置と、狭い帯域でよい装置に、図１４に示されるように、的確に帯域が割り当てられる。図１４の例の場合、ストリーム２６１のレート制御の最大値が、ストリーム２６２のレート制御の最大値より小さい、すなわち、ストリーム２６１の帯域は狭い帯域でよいのに対し、ストリーム２６２の帯域は広い帯域を必要とする。
【０１３２】
図６の例の場合、ストリームＡの最大ビットレートＲＭとストリームＢの最大ビットレートは、同一となっている。このことは、図８乃至図１２の処理により求められた最大ビットレートＲＭが、ストリームＡとストリームＢで等しくなったことを表わしている。しかしながら、最大ビットレートＲＭがストリームＡとストリームＢで異なる場合も勿論ある（図１４の例が、これに該当する）。その場合には、図１４に示されるように、それぞれの最大ビットレートＲＭに基づいて、帯域が配分される。
【０１３３】
これにより、ストリーム２６１の帯域Ｄ５１より、ストリーム２６２の帯域Ｄ５２が広く割り当てられるので、広い帯域を必要とするストリーム２６２の画質と、狭い帯域を必要とするストリーム２６１の画質は、ほぼ均等の画質となる。すなわち、広い帯域を必要とするストリーム２６２の画質が大幅に低下するのを防ぐことができる。
【０１３４】
この点、図１５に示されるように、広い帯域を必要とする装置と、狭い帯域でよい装置に、同じ幅の帯域が割り当てられてしまうと、ストリーム２７１は、必要以上に帯域を占有するのに対し（それによって画質がより向上する訳でもない）、広い帯域を必要とするストリーム２７２の画質が大幅に低下してしまう。
【０１３５】
本実施の形態の場合、このような広い帯域を必要とするストリームの画質が、大幅に低下するのを防ぐことができる。
【０１３６】
なお、図５のステップＳ４２、ステップＳ４５、またはステップＳ５０の処理における、輻輳の検出であるが、ここでは特にそれを限定しない。
【０１３７】
一般的にネットワークの輻輳の検出では、パケットロスや、送信側と受信側のＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）等が用いられる。この例では、データ受信部でパケットの番号（ＲＴＰのシーケンスナンバ）を輻輳判定部４３に絶えず送ることで、輻輳判定部でパケットロスを検出する。輻輳判定部４３からは、一定時間に閾値以上のパケットロスが発生した場合、モード設定部４４に輻輳検出信号が出力される。図５のステップＳ４２、ステップＳ４５、およびステップＳ５０の輻輳判定処理は、この輻輳検出信号に基づいて行なわれる。
【０１３８】
以上の処理により、送信側の情報処理装置１−１は、受信した送信レートに基づいた送信レートで、受信側の情報処理装置１−２にデータを送信することができる。
【０１３９】
情報処理装置１−２が送信側となり、情報処理装置１−１が受信側となる場合にも、立場を変更するだけで、同様の処理が行なわれる。
【０１４０】
また、動的レート制御の最大ビットレートを決めることにより、最大ビットレートに達すると、送信レートの変更を行なわない（アップ状態からホールド状態となる）ので、最大ビットレート以上の空き帯域がある場合でも、送信レートが安定し、パケットロスやネットワーク遅延が長くなるのを防ぐことができる。
【０１４１】
さらに、動的レート制御の最初ビットレートを決めることにより、最小ビットレート以下に送信レートを下げないので、著しく送信レートが下がるのを防ぐことができる。
【０１４２】
また、受信ビットレートの最大ビットレートの割合に基づいて、送信レートを下げることにより、最大ビットレートが同じストリームの送信レートを、ほぼ同じレートに安定させることができるとともに、最大ビットレートが異なるストリームは均等な画質劣化で帯域が配分されるようにすることができる。
【０１４３】
さらに、最大ビットレートに達する時間を固定（例えば、図７に示されるように）とすることにより、最大ビットレートが同じストリームを、より迅速に、同じ帯域に安定させることができる。
【０１４４】
また、データ送信側の装置とデータ受信側の装置が、ネットワークの状況に応じた伝送レートで情報を授受することができる。
【０１４５】
さらに、データ受信側の装置が、ネットワークの状況（輻輳、レート制御の最大値、最小値、およびホールディング時間等）に応じて、伝送レートを設定することができる。
【０１４６】
以上においては、情報処理装置１を、送信と受信の両方ができる装置としたが、送信と受信の一方のみができるように構成してもよい。また、伝送レートを受信側で制御するようにしたが、送信側で制御するようにしてもよい。この場合、送信側が速度を決定し、決定した速度でデータを送信する。
【０１４７】
さらに、上りと下りの伝送レートの計測を、情報処理装置１と計測サーバ４の間で行なうようにしたが（図９と図１０）、計測サーバ４を使用せずに、送信側の情報処理装置１−１と受信側の情報処理装置１−２の間で、直接計測するようにしてもよい。
【０１４８】
また、ネットワークとしては、インターネット以外にＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、その他の各種のネットワークを利用することができる。
【０１４９】
上述した一連の処理は、ソフトウェアにより実行することもできる。この場合情報処理装置１は、図１６に示されるように構成される。この情報処理装置１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４２に記憶されているプログラム、またはＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）３４８から、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４３にロードされたプログラムに従って、上述したような各種の処理を実行する。ＲＡＭ３４３にはまた、ＣＰＵ３４１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１５０】
ＣＰＵ３４１、ＲＯＭ３４２、およびＲＡＭ３４３は、内部バス３４４を介して相互に接続されている。この内部バス３４４にはまた、入出力インタフェース３４５も接続されている。
【０１５１】
入出力インタフェース３４５には、キーボード、マウスなどよりなる入力部３４６、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、およびＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部３４７、ハードディスクにより構成されるＨＤＤ３４８、モデム、ターミナルアダプタなどより構成されるネットワークインターフェース３４９が接続されている。ネットワークインターフェース３４９は、例えば、インターネット３などのネットワークを介しての通信処理を行う。
【０１５２】
入出力インタフェース３４５にはまた、必要に応じてドライブ３５１が接続され、磁気ディスク４０１、光ディスク４０２、光磁気ディスク４０３、または、半導体メモリ４０４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてＨＤＤ３４８にインストールされる。
【０１５３】
このプログラムを提供する記録媒体は、図１６に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク４０１（フレキシブルディスクを含む）、光ディスク４０２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク４０３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリ４０４などよりなるパッケージメディアなどにより構成される。
【０１５４】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５５】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１５６】
【発明の効果】
以上の如く、第１の本発明によれば、２つの装置において、データを送受信することができる。特に、安定した品質のコンテンツを送受信可能なシステムを実現することができる。また、送信側の上りの伝送レートと受信側の下りの伝送レートに基づいて、伝送レートを決定することができる。
【０１５７】
第２の本発明によれば、データを送信または受信することができる。特に、安定した品質のコンテンツを送信または受信することができる。また、個々のコンテンツに適した伝送レートでコンテンツを提供することができる。
【図面の簡単な説明】
【図１】本発明を適用した通信システムを説明する図である。
【図２】図１の情報処理装置の機能的構成を示すブロック図である。
【図３】送信側のレート制御処理を説明するフローチャートである。
【図４】状態遷移について説明する図である。
【図５】受信側のレート制御処理を説明するフローチャートである。
【図６】レートの変化の例を説明する図である。
【図７】レートの変化の他の例を説明する図である。
【図８】最大値最小値決定処理を説明するフローチャートである。
【図９】下りの伝送レート計測処理を説明するフローチャートである。
【図１０】上りの伝送レート計測処理を説明するフローチャートである。
【図１１】経路最大レートの決定処理を説明するフローチャートである。
【図１２】ストリームの最大ビットレートの獲得処理を説明するフローチャートである。
【図１３】レートの変化のさらに他の例を説明する図である。
【図１４】ストリームに割り当てられる帯域を説明する図である。
【図１５】ストリームに割り当てられる帯域を説明する図である。
【図１６】図１の情報処理装置の構成例を示すブロック図である。
【符号の説明】
１−１，１−２  情報処理装置，  ２−１，２−２  アクセスリンク，  ３  インターネット，  ４  計測サーバ，  ４１  データ受信部，  ４３  輻輳判定部，  ４４  モード設定部，  ４５  送信レート判定部，  ４６  送信レート設定部，  ４７  タイマ，  ４８  速度計測部，  ４９  データ送信部，  ５１  経路最大レート決定部，  ５２  最大ビットレート設定部，  ５３  最大値最小値決定部
【図１】
2004297565.tif 000003
【図２】
2004297565.tif 000004
【図３】
2004297565.tif 000005
【図４】
2004297565.tif 000006
【図５】
2004297565.tif 000007
【図６】
2004297565.tif 000008
【図７】
2004297565.tif 000009
【図８】
2004297565.tif 000010
【図９】
2004297565.tif 000011
【図１０】
2004297565.tif 000012
【図１１】
2004297565.tif 000013
【図１２】
2004297565.tif 000014
【図１３】
2004297565.tif 000015
【図１４】
2004297565.tif 000016
【図１５】
2004297565.tif 000017
【図１６】
2004297565.tif 000018
【手続補正書】
【提出日】平成16年4月23日(2004.4.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
一方、データ受信部４１が受信しているのが、図６に示されるような伝送レートが低いストリームＢである場合、ピーク点Ｐ１２からダウンされるとき、ピーク点Ｐ１２の値は、最大ビットレートＲＭより充分小さいので、より小さい変化幅Ｄ１２だけ下げられる。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
従って、図６に示されるように、ストリームＡの、ピーク点Ｐ１より小さい値のピーク点Ｐ３における変化幅Ｄ４は、変化幅Ｄ２より小さい幅とされる（Ｄ２＞Ｄ４）。ストリームＢにおいても同様に、ピーク点Ｐ１２より大きいピーク点Ｐ１１における変化幅Ｄ１４は、変化幅Ｄ１２より大きい値とされる。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
ステップＳ５０において、輻輳がないと判定された場合、処理はステップＳ４１に戻り、それ以降の処理が繰り返される。すなわち、再び、ホールド状態とされ（ステップＳ４１）、輻輳の有無とホールディング時間に基づいて、アップ状態に設定される（ステップＳ４４）。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
ステップＳ４５において、アップ状態で輻輳がないと判定された場合、ステップＳ５１において、送信レート判定部４５は、現在の送信レートが最大値であるか否かを判定する。送信レートがレート制御の最大値でないと判定された場合、ステップＳ５２において、送信レート設定部４６は、送信レートを、その値が大きいほど、小さい変化幅になるように上げる。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１１２
【補正方法】変更
【補正の内容】
【０１１２】
図８に戻って、ステップＳ７２において、受信側の情報処理装置１−２の経路最大レート決定部５１は、経路最大レートを決定する。経路最大レートは、例えば、図１１に示されるような処理により決定される。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１４１
【補正方法】変更
【補正の内容】
【０１４１】
さらに、動的レート制御の最小ビットレートを決めることにより、最小ビットレート以下に送信レートを下げないので、著しく送信レートが下がるのを防ぐことができる。


【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2004297565.tif 000019