(57)【要約】【課題】  データ通信における送信レートを最適にすることができるようにする。【解決手段】  データ読出部１０１が、ストリーム情報保存部１０７から供給される動画像のフレームレートに基づいてハードディスクからデータを読み出す。データ読出速度測定部１０５は、１フレーム分のデータの読み出しに要した読出時間を測定し、読出制御情報設定部１０６に出力する。読出制御情報設定部１０６は、フレームレートに基づく１フレーム分のデータの再生時間と、データ読出速度測定部１０５により測定された時間に基づいて、データの読出間隔または読出レイヤを適切に設定する。本発明は、ビデオサーバに適用することができる。【選択図】図３
2006303749.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置であって、
送信するデータが記憶されている記憶部と、
前記データを所定の期間だけ保持する保持部と、
前記記憶部に記憶されているデータの再生速度に関する属性情報を取得する取得手段と、
前記データを、予め設定された単位量だけ前記記憶部から前記保持部に、繰り返し読み出す読出手段と、
前記読出手段が、前記単位量のデータを読み出すのに要した読出時間を測定する測定手段と、
前記取得手段により取得された前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出手段が、前記データを読み出す時間間隔を設定する設定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段は、前記データの再生速度に関する属性情報に基づいて、前記単位量のデータが再生されるのに要する再生時間を算出し、
前記測定された読出時間が、前記再生時間を超えている場合、前記データを読み出す時間間隔を、より長い時間間隔に設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記読出手段は、前記設定手段により設定された前記時間間隔に基づいて、所定の順番の前記データの読み出しをスキップする
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記データは動画像のデータであり、前記単位量は前記動画像の１フレーム分のデータ量であり、所定の順番のフレームがスキップされて読み出される
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ネットワークの帯域状態に応じて、前記データを読み出す時間間隔を設定する帯域対応設定手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記他の情報処理装置に送信されるデータの送信経路における主たる遅延の発生箇所が前記ネットワークである場合、前記読出手段は、前記他の設定手段により設定された時間間隔でデータを読み出す
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置の情報処理方法であって、
前記データを、予め設定された単位量だけ、送信するデータが記憶されている記憶部から前記データを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップと、
前記読出ステップの処理により、前記単位量のデータが読み出されるのに要した読出時間を測定する測定ステップと、
前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出ステップの処理により、前記データが読み出される時間間隔を設定する設定ステップと
を含むことを特徴とする情報処理方法。
【請求項８】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、
前記データを、予め設定された単位量だけ、送信するデータが記憶されている記憶部から前記データを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップと、
前記読出制御ステップの処理により、前記単位量のデータが読み出されるのに要した読出時間の測定を制御する測定ステップと、
前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出制御ステップの処理により、前記データが読み出される時間間隔の設定を制御する設定制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムが記録されている記録媒体。
【請求項１０】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置であって、
送信するデータが記憶されている記憶部と、
前記データを所定の期間だけ保持する保持部と、
前記記憶部に記憶されているデータの再生速度に関する属性情報を取得する取得手段と、
前記データを、予め設定された時間間隔で前記記憶部から前記保持部に、繰り返し読み出す読出手段と、
前記読出手段が、前記データを読み出すのに要した読出時間を測定する測定手段と、
前記取得手段により取得された前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出手段が、前記データを読み出す単位量を設定する設定手段と
を備えることを特徴とする情報処理装置。
【請求項１１】
前記測定された読出時間が、前記再生時間を超えている場合、
前記設定手段は、前記データを読み出す単位量を、より少ない単位量に設定する
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記データが階層化された動画像のデータであり、前記単位量は、前記設定手段が前記動画像において再生に利用される階層を選択することにより定まる
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記ネットワークの帯域状態に応じて、前記データを読み出す単位量を設定する帯域対応設定手段をさらに備える
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１４】
前記他の情報処理装置に送信されるデータの送信経路における主たる遅延の発生箇所が前記ネットワークである場合、前記読出手段は、前記他の設定手段により設定された単位量でデータを読み出す
ことを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置の情報処理方法であって、
前記データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部から前記データを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップと、
前記読出ステップの処理により、前記データが読み出されるのに要した読出時間を測定する測定ステップと、
前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出ステップの処理により、前記データが読み出される単位量を設定する設定ステップと
を含むことを特徴とする情報処理方法。
【請求項１６】
ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、
前記データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部から前記データを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップと、
前記読出制御ステップの処理により、前記データが読み出されるのに要した読出時間の測定を制御する測定制御ステップと、
前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出制御ステップの処理により、前記データが読み出される単位量の設定を制御する設定制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１７】
請求項１６に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、データ通信における送信レートを最適にすることができるようにする情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
従来、パケット通信を利用して、送信装置から受信装置に、例えば、動画データの実時間ストリーミングを行う情報処理システムがある。この情報処理システムにおいては、送信装置が、撮像装置により撮影された動画データをエンコードし、ネットワークを介して受信装置に送信する。受信装置は、送信装置から受信した動画データをデコードして、表示装置に出力する。
【０００３】
このような情報処理システムにおいて、送信装置から送信したパケットが、受信装置に届かずに損失したり、再生時刻よりも遅れて受信装置に到着することがあり、その結果、動画の再生中に、映像が静止したり、動画を再生できなかったりすることがあるという問題があった。
【０００４】
そこで、動画像などのデータを、インターネットなどのネットワークを経由して、送受信する処理において、受信装置から送信装置に対して、損失した（受信されなかった）パケットを特定する情報や、パケットの受信時刻などの情報を含む確認応答が通知され、送信装置が、受信装置から受信した確認応答に応じて、送信するパケットの送信間隔やパケットサイズを変更するようにして、輻輳の発生などネットワークの帯域の状態に応じて送信レートを制御することが行われている。
【０００５】
例えば、送信装置は、パケットの損失を検知した場合、パケットの送信間隔を長くしたり、パケットサイズを小さくして、ネットワーク上を流れるデータの量を減少させる。
【０００６】
また、例えばJPEG（Joint Photographic Experts Group）2000などの階層性を有する符号化方式で符号化された動画像データの送信レートを制御する方法も提案されている（例えば、特許文献１参照。）
【０００７】
【特許文献１】特開２００４−１９３９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、近年のブロードバンドネットワークの普及に伴って送信レートの制御方法を見直す必要に迫られている。すなわち、従来、インターネットなど、例えば個人が利用する安価なネットワークの帯域（伝送速度）は、数十Kbps〜数百Kbpsが主流であったが、近年のブロードバンドネットワークでは、１Gbpsに近い帯域が充分安価に利用可能となっており、従来と比してネットワーク上で利用できる帯域は飛躍的に拡大した。
【０００９】
一方で、送信装置内でのデータの伝送速度は大きく拡大していない。例えば、送信すべき大量のデータを記憶する記憶部は、従来よりハードディスクなどの記録媒体が用いられることが多く、通常、送信装置は、記録媒体から送信すべきデータを都度読み出して送信しているが、記録媒体からのデータの読み出し速度は、従来と比して飛躍的に向上しているとはいい難い。
【００１０】
従って、従来、送信装置から受信装置に送信されるパケットの損失や、遅れは、主に送信装置と受信装置の間に存在するネットワークによるものとして、上述した送信レートの制御などの対策がとられていたが、今後は、送信装置内部における伝送遅延も考慮して送信レートを制御する必要がある。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、データ通信における送信レートを最適にすることができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の第１の情報処理装置は、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置であって、送信するデータが記憶されている記憶部と、データを所定の期間だけ保持する保持部と、記憶部に記憶されているデータの再生速度に関する属性情報を取得する取得手段と、データを、予め設定された単位量だけ記憶部から保持部に、繰り返し読み出す読出手段と、読出手段が、単位量のデータを読み出すのに要した読出時間を測定する測定手段と、取得手段により取得されたデータの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出手段が、データを読み出す時間間隔を設定する設定手段とを備えることを特徴とする。
【００１３】
前記設定手段は、データの再生速度に関する属性情報に基づいて、単位量のデータが再生されるのに要する再生時間を算出し、測定された読出時間が、再生時間を超えている場合、データを読み出す時間間隔を、より長い時間間隔に設定するようにすることができる。
【００１４】
前記読出手段は、設定手段により設定された時間間隔に基づいて、所定の順番のデータの読み出しをスキップするようにすることができる。
【００１５】
前記データは動画像のデータであり、単位量は動画像の１フレーム分のデータ量であり、所定の順番のフレームがスキップされて読み出されるようにすることができる。
【００１６】
前記ネットワークの帯域状態に応じて、データを読み出す時間間隔を設定する帯域対応設定手段をさらに備えるようにすることができる。
【００１７】
前記他の情報処理装置に送信されるデータの送信経路における主たる遅延の発生箇所がネットワークである場合、読出手段は、他の設定手段により設定された時間間隔でデータを読み出すようにすることができる。
【００１８】
本発明の第１の情報処理方法は、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置の情報処理方法であって、データを、予め設定された単位量だけ、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップと、読出ステップの処理により、単位量のデータが読み出されるのに要した読出時間を測定する測定ステップと、データの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出ステップの処理により、データが読み出される時間間隔を設定する設定ステップとを含むことを特徴とする。
【００１９】
本発明の第１のプログラムは、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、データを、予め設定された単位量だけ、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップと、読出制御ステップの処理により、単位量のデータが読み出されるのに要した読出時間の測定を制御する測定ステップと、データの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出制御ステップの処理により、データが読み出される時間間隔の設定を制御する設定制御ステップとをコンピュータに実行させることを特徴とする。
【００２０】
本発明の第１の情報処理装置および方法、並びに第１のプログラムにおいては、データが、予め設定された単位量だけ、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出され、単位量のデータが読み出されるのに要した読出時間が測定され、データの再生速度に関する属性情報と、測定された読出時間とに基づいて、データが読み出される時間間隔が設定される。
【００２１】
本発明の第２の情報処理装置は、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置であって、送信するデータが記憶されている記憶部と、データを所定の期間だけ保持する保持部と、記憶部に記憶されているデータの再生速度に関する属性情報を取得する取得手段と、データを、予め設定された時間間隔で記憶部から保持部に、繰り返し読み出す読出手段と、読出手段が、データを読み出すのに要した読出時間を測定する測定手段と、取得手段により取得されたデータの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出手段が、データを読み出す単位量を設定する設定手段とを備えることを特徴とする。
【００２２】
前記測定された読出時間が、再生時間を超えている場合、設定手段は、データを読み出す単位量を、より少ない単位量に設定するようにすることができる。
【００２３】
前記データが階層化された動画像のデータであり、単位量は、設定手段が動画像において再生に利用される階層を選択することにより定まるようにすることができる。
【００２４】
前記ネットワークの帯域状態に応じて、データを読み出す単位量を設定する帯域対応設定手段をさらに備えるようにすることができる。
【００２５】
前記他の情報処理装置に送信されるデータの送信経路における主たる遅延の発生箇所がネットワークである場合、読出手段は、他の設定手段により設定された単位量でデータを読み出すようにすることができる。
【００２６】
本発明の第２の情報処理方法は、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置の情報処理方法であって、データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップと、読出ステップの処理により、データが読み出されるのに要した読出時間を測定する測定ステップと、データの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出ステップの処理により、データが読み出される単位量を設定する設定ステップとを含むことを特徴とする。
【００２７】
本発明の第２のプログラムは、ネットワークを介して接続される他の情報処理装置にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップと、読出制御ステップの処理により、データが読み出されるのに要した読出時間の測定を制御する測定制御ステップと、データの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、読出制御ステップの処理により、データが読み出される単位量の設定を制御する設定制御ステップとをコンピュータに実行させることを特徴とする。
【００２８】
本発明の第２の情報処理装置および方法、並びに第２のプログラムにおいては、データが、予め設定された時間間隔で、送信するデータが記憶されている記憶部からデータを所定の期間だけ保持する保持部に、繰り返し読み出され、データが読み出されるのに要した読出時間が測定され、データの再生速度に関する属性情報と、測定手段により測定された読出時間とに基づいて、データが読み出される単位量が設定される。
【発明の効果】
【００２９】
本発明によれば、データ通信における送信レートを最適にすることができるようにする。
【発明を実施するための最良の形態】
【００３０】
以下に本発明の実施の形態を説明するが、本明細書に記載した発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が明細書に記載されていることを確認するためのものである。従って、明細書には記載されているが、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００３１】
さらに、この記載は、明細書に記載されている発明が、全て請求されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願、または追加される発明の存在を否定するものではない。
【００３２】
請求項１に記載の情報処理装置は、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置であって、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）と、前記データを所定の期間だけ保持する保持部（例えば、図２のメモリ３３）と、前記記憶部に記憶されているデータの再生速度に関する属性情報（例えば、フレームレート）を取得する取得手段（例えば、図３のストリーム情報保存部１０７）と、前記データを、予め設定された単位量（例えば、１フレーム分）だけ前記記憶部から前記保持部に、繰り返し読み出す読出手段（例えば、図３のデータ読出部１０１）と、前記読出手段が、前記単位量のデータを読み出すのに要した読出時間を測定する測定手段（例えば、図３のデータ読出速度測定部１０５）と、前記取得手段により取得された前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出手段が、前記データを読み出す時間間隔を設定する設定手段（例えば、図３の読出制御情報設定部１０６）とを備える。
【００３３】
請求項２に記載の情報処理装置は、前記設定手段が、前記データの再生速度に関する属性情報に基づいて、前記単位量のデータが再生されるのに要する再生時間を算出し（例えば、Ｉ＝１／Ｆとして算出し）、前記測定された読出時間が、前記再生時間を超えている場合、前記データを読み出す時間間隔を、より長い時間間隔に設定するようにすることができる。
【００３４】
請求項５に記載の情報処理装置は、前記ネットワークの帯域状態に応じて、前記データを読み出す時間間隔を設定する帯域対応設定手段（例えば、図９のレート制御部１０８）をさらに備えるようにすることができる。
【００３５】
請求項７に記載の情報処理方法は、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置の情報処理方法であって、前記データを、予め設定された単位量（例えば、１フレーム分）だけ、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）から前記データを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップ（例えば、図４のステップＳ１０３の処理）と、前記読出ステップの処理により、前記単位量のデータが読み出されるのに要した読出時間を測定する測定ステップ（例えば、図４のステップＳ１０５の処理）と、前記データの再生速度に関する属性情報（例えば、フレームレート）と、前記測定手段により測定された読出時間とに基づいて、前記読出ステップの処理により、前記データが読み出される時間間隔を設定する設定ステップ（例えば、図４のステップＳ１０６の処理）とを含む。
【００３６】
請求項８に記載のプログラムは、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、前記データを、予め設定された単位量（例えば、１フレーム分）だけ、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）から前記データを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップ（例えば、図４のステップＳ１０３の処理）と、前記読出制御ステップの処理により、前記単位量のデータが読み出されるのに要した読出時間の測定を制御する測定ステップ（例えば、図４のステップＳ１０５の処理）と、前記データの再生速度に関する属性情報（例えば、フレームレート）と、前記測定手段により測定された読出時間とに基づいて、前記読出制御ステップの処理により、前記データが読み出される時間間隔の設定を制御する設定制御ステップ（例えば、図４のステップＳ１０６の処理）とをコンピュータに実行させる。
【００３７】
請求項１０に記載の情報処理装置は、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置であって、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）と、前記データを所定の期間だけ保持する保持部（例えば、図２のメモリ３３）と、前記記憶部に記憶されているデータの再生速度に関する属性情報（例えば、フレームレート）を取得する取得手段（例えば、図３のストリーム情報保存部１０７）と、前記データを、予め設定された時間間隔で前記記憶部から前記保持部に、繰り返し読み出す読出手段（例えば、図３のデータ読出部１０１）と、前記読出手段が、前記データを読み出すのに要した読出時間を測定する測定手段（例えば、図３のデータ読出速度測定部１０５）と、前記取得手段により取得された前記データの再生速度に関する属性情報と、前記測定手段により測定された読出時間とに基づいて、前記読出手段が、前記データを読み出す単位量（例えば、読出レイヤ）を設定する設定手段（例えば、図３の読出制御情報設定部１０６）とを備える。
【００３８】
請求項１２に記載の情報処理装置は、前記データが階層化された動画像のデータ（例えば、JPEG2000のデータ）であり、前記単位量は、前記設定手段が前記動画像において再生に利用される階層を選択することにより定まるようにすることができる。
【００３９】
請求項１３に記載の情報処理装置は、前記ネットワークの帯域状態に応じて、前記データを読み出す単位量を設定する帯域対応設定手段（例えば、図９のレート制御部１０８）をさらに備えるようにすることができる。
【００４０】
請求項１５に記載の情報処理方法は、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置の情報処理方法であって、前記データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）から前記データを所定の期間だけ保持する保持部に、繰り返し読み出す読出ステップ（例えば、図７のステップＳ１５４の処理）と、前記読出ステップの処理により、前記データが読み出されるのに要した読出時間を測定する測定ステップ（例えば、図７のステップＳ１５６の処理）と、前記データの再生速度に関する属性情報（例えば、フレームレート）と、前記測定手段により測定された読出時間とに基づいて、前記読出ステップの処理により、前記データが読み出される単位量を設定する設定ステップ（例えば、図７のステップＳ１５７の処理）とを含む。
【００４１】
請求項１６に記載のプログラムは、ネットワークを介して接続される他の情報処理装置（例えば、図１の受信装置１２）にデータを送信する情報処理装置に情報処理を実行させるプログラムであって、前記データを、予め設定された時間間隔で、送信するデータが記憶されている記憶部（例えば、図２のハードディスク３２）から前記データを所定の期間だけ保持する保持部に、繰り返し読み出すように制御する読出制御ステップ（例えば、図７のステップＳ１５４の処理）と、前記読出制御ステップの処理により、前記データが読み出されるのに要した読出時間の測定を制御する測定制御ステップ（例えば、図７のステップＳ１５６の処理）と、前記データの再生速度に関する属性情報（例えば、フレームレート）と、前記測定手段により測定された読出時間とに基づいて、前記読出制御ステップの処理により、前記データが読み出される単位量の設定を制御する設定制御ステップ（例えば、図７のステップＳ１５７の処理）とをコンピュータに実行させる。
【００４２】
以下、図面を参照して、本発明の実施の形態について説明する。
【００４３】
図１は、本発明を適用した通信システムの一実施形態に係る構成例を示す図である。
【００４４】
図１において、通信システム１は、送信装置１１、受信装置１２、およびインターネットなどのネットワーク１０により構成され、送信装置１１と受信装置１２がネットワーク１０を介してデータを送受信するシステムである。例えば、送信装置１１は、動画像などのデータをパケット化して、受信装置１２にストリーミング送信し、受信装置１２がパケットを受信して動画像を再生する。なお、受信装置１２は、送信装置１１がパケットを送信した送信時刻やパケットロス率などの情報を含む確認応答のパケット（応答パケット）を、送信装置１１に送信する。
【００４５】
図２は、通信システム１におけるパケットの経路とともに、送信装置１１の内部構成例を示すブロック図である。
【００４６】
同図において、送信装置１１の内部には、CPU（Central Processing Unit）３１、例えば、JPEG（Joint Photographic Experts Group）2000などのイントラフレーム符合化方式により符号化された動画像のデータを記憶するハードディスク（HDD（Hard Disk Drive））３２、RAM（Random Access Memory）などにより構成されるメモリ３３、ネットワーク１０との通信インタフェースであるネットワークインタフェースカード３４、およびCPU３１乃至ネットワークインタフェースカード３４を相互に接続するデータバス３５により構成されている。なお、送信装置１１は、実際には、この他にも、例えば入出力インタフェースなどを備える構成とされるが、ここでは説明を簡単にするため、上述した機能ブロックのみが示されている。
【００４７】
送信装置１１がパケットを送信する場合、ＣＰＵ３１が受信装置１２に送信すべきデータであって、所定のサイズ（例えば、１フレーム分）のデータを、ハードディスク３２からメモリ３３に読み出す。この行程は、図中点線で示される矢印５１に対応する。
【００４８】
その後、ＣＰＵ３１は、メモリ３３に保持されているデータに所定のヘッダや制御情報などを付加して生成されるパケットをネットワークインタフェースカード３４に出力する。この行程は、図中点線で示される矢印５２に対応する。
【００４９】
そして、パケットがネットワークインタフェースカード３４からネットワーク１０に送信され、ネットワーク１０を経由して受信装置１２により受信される。この行程は、図中点線で示される矢印５３に対応する。
【００５０】
さらに、上述した行程が繰り返されることにより、送信装置１１から受信装置１２に動画像などのデータが伝送される。すなわち、通信システム１において、矢印５１乃至５３の経路（行程）を経てデータが伝送されることになる。この経路上で何らかの遅延が発生し、送信装置１１から送信したパケットが、受信装置１２に届かずに損失したり、そのパケットのデータを再生すべき時刻よりも遅れて受信装置に到着すると、動画の再生中に、映像が静止したり、動画を再生できなかったりする。
【００５１】
従来の狭帯域ネットワークを利用する場合、通信システム１において、最も遅延が発生しやすい部分（主たる遅延の発生箇所）であるボトルネックは、矢印５３で示される経路（行程）であり、例えば、大量のデータが伝送されることによりネットワーク１０において輻輳が発生するなどして、受信装置１２にパケットが遅れて到着することなどに起因して遅延が発生していた。
【００５２】
しかし、近年のブロードバンドネットワークの普及に伴って、ネットワーク１０の帯域は充分広くなっており、大量のデータが伝送されても、ネットワーク１０において輻輳が発生する可能性は小さいため、データの送信レート（単位時間あたりに送信されるデータ量）を高く設定することが可能となってきている。データの送信レートが高くなると、例えば、送信装置１１が複数の処理を実行するなどして処理負荷が高くなっている場合、ハードディスク３２からのデータの読出しが遅れるなどして、送信装置１１の内部（矢印５１または５２）で遅延が発生する可能性がある。
【００５３】
そこで、本発明では、矢印５１に対応する経路（行程）における遅延に注目して、データの送信レートを制御する。なお、実際の送信装置１１の内部の遅延としては、矢印５２に対応する経路（行程）に要する時間に含まれるが、矢印５２に対応する経路（行程）に要する時間は、矢印５１に対応する経路（行程）と比較して充分に小さく無視することができる。
【００５４】
図３は、ＣＰＵ３１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【００５５】
同図において、データ読出部１０１は、ハードディスク３２からメモリ３３へのデータの読出しを制御する。パケット生成部１０２は、データ読出部１０１が読み出したデータに基づいて、ネットワーク１０（受信装置１２）に送信するパケットを生成する。ＲＴＰ（Real-time Transport Protocol）ヘッダ処理部１０３は、音声や映像などのデータをストリーミング再生するための伝送プロトコルであるＲＴＰに基づく制御情報などで構成されるヘッダをパケットに付加する。パケット送信部１０４は、ＲＴＰヘッダ処理部１０３による処理を経たパケットをネットワークインタフェースカード３４に出力し、パケットの送信を制御する。
【００５６】
データ読出速度測定部１０５は、送信装置１１が内蔵するタイマなどの出力値に基づいて、データ読出部１０１により行われるハードディスク３２からメモリ３３へのデータの読出しにかかる時間を測定し、単位時間あたりのデータ読出速度を算出（測定）する。
【００５７】
読出制御情報設定部１０６は、データ読出速度測定部１０５により測定された速度（または読出しにかかる時間）に基づいて、データ読出部１０１によるハードディスク３２からメモリ３３へのデータの読出し間隔または読出し（データ）量を制御する制御情報を設定する。
【００５８】
ストリーム情報保存部１０７は、送信するデータのストリーム情報であって、例えば、動画像データのフレームレート（単位時間あたりのフレーム数）、レイヤ数（階層化されているデータのレイヤに関する情報）、データの中のフレームの数、フレームの境界位置などに関する情報をメモリ３３の所定の領域へ記憶（保存）させるように制御する。また、ストリーム情報保存部１０７は、読出制御情報設定部１０６により設定された制御情報も必要に応じてメモリ３３の所定の領域へ記憶（保存）させるように制御し、保存されたデータを、データ読出部１０１または読出制御情報設定部１０６に供給する。
【００５９】
次に、図４のフローチャートを参照して、読出間隔調整処理について説明する。この処理は、送信装置１１によるデータ送信の処理に伴って実行される。
【００６０】
ステップＳ１０１において、ストリーム情報保存部１０７は、読出間隔Ｉを初期化する。このとき、例えば、ハードディスク３２に記憶される動画像データに付された属性情報に基づいて、当該データのフレームレートを取得する。フレームレートをＦとすると、読出間隔Ｉは、次式により求めることができる。
【００６１】
Ｉ＝１／Ｆ
【００６２】
すなわち、フレームレートＦの逆数である読出間隔Ｉは、動画像データの１フレーム分の再生に要する時間と等しい時間として初期化される。
【００６３】
ステップＳ１０２において、データ読出速度測定部１０５は、変数Ｔｓに現在時刻Ｔをセットする。
【００６４】
ステップＳ１０３において、データ読出部１０１は、１フレーム分のデータを、ハードディスク３２からメモリ３３に読み出す。
【００６５】
ステップＳ１０４において、データ読出速度測定部１０５は、変数Ｔｅに現在時刻Ｔをセットする。
【００６６】
ステップＳ１０５において、データ読出速度測定部１０５は、変数ＴｅとＴｓの差分を変数ΔＴとして算出する。上述した変数Ｔｓは、１フレーム分のデータを、ハードディスク３２からメモリ３３に読み出すにあたっての読出し開始時刻であり、上述した変数Ｔｅは、１フレーム分のデータを、ハードディスク３２からメモリ３３に読み出すにあたっての読出し終了時刻であるので、変数ΔＴは、１フレーム分のデータの読出しに要した時間となる。すなわち、変数ΔＴは、図２の矢印５１に対応する行程に要した時間となる。
【００６７】
ステップS１０６において、読出制御情報設定部１０６は、図５を参照して後述するレート設定処理を実行する。これにより、読出間隔Ｉが新たに設定される。
【００６８】
ここで、図５のフローチャートを参照して、図４のステップＳ１０６のレート設定処理の詳細について説明する。
【００６９】
ステップＳ１２１において、読出制御情報設定部１０６は、読出間隔Ｉの値と変数ΔＴの値を比較し、読出間隔Ｉの値が変数ΔＴの値を超えているか否かを判定する。
【００７０】
ここで、Ｉは、上述したようにフレームレートＦの逆数として設定された読出間隔であり、例えば、受信装置１２において１フレーム分のデータが再生されるのに要する時間である。換言すれば、受信装置１２の再生処理において、再生する第２フレーム目のデータの取得は、第１フレーム目のデータの再生が開始されてから時間Ｉだけ遅れてもよいことになる。一方、変数ΔＴは、上述したように１フレーム分のデータの読出しに要した時間であり、１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である場合、受信装置１２では、動画像を正常に再生できないことになる。
【００７１】
すなわち、ステップＳ１２１において、読出間隔Ｉの値が変数ΔＴの値を超えていない（１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である）と判定された場合、フレームレートと読出間隔を新たに設定する必要があるため、処理は、ステップＳ１２２に進む。
【００７２】
ステップＳ１２２において、読出制御情報設定部１０６は、次式により新たなフレームレートＦ´を算出する。
【００７３】
Ｆ´＝（Ｉ／ΔＴ）Ｆ
【００７４】
ステップＳ１２３において、読出制御情報設定部１０６は、ステップＳ１２２で算出したフレームレートＦ´の小数点以下の値を切り捨てて、ストリーム情報保存部１０７に保存させる。
【００７５】
ステップＳ１２４において、読出制御情報設定部１０６は、ステップＳ１２３の処理により設定されたフレームレートＦ´の逆数を算出し、読出間隔Ｉの値を更新する。
【００７６】
一方、ステップＳ１２１において、読出間隔Ｉの値が変数ΔＴの値を超えていると判定された場合、フレームレートと読出間隔を新たに設定する必要はないため、処理は、ステップＳ１２５に進み、読出制御情報設定部１０６は、読出間隔Ｉと、変数ΔＴ（実際に読出しに要した時間）の差分の時間だけ待機する。
【００７７】
ステップＳ１２４またはステップＳ１２５の処理の後、処理は、図４のステップＳ１０７に進む。
【００７８】
ステップＳ１０７において、データ読出部１０１は、フレームのスキップの制御を行う。例えば、上述したステップＳ１２３の処理で新たなフレームレートＦ´が設定された場合、フレームの読出間隔Ｉは、本来のフレームレートＦに対応する読出間隔と比較して長い時間となるので、所定の間隔でフレームをスキップしないと、受信装置１２により動画データを正常に再生することができなくなる。このため、データ読出部１０１は、ストリーム情報保存部からフレームレートＦとＦ´を取得して、必要な分だけフレームをスキップしてデータの読出しを行う。
【００７９】
これにより、単位時間あたりに（Ｆ−Ｆ´）フレームがスキップされ、データの読出しが行われるように制御される。例えば、Ｆが３０フレーム／秒であり、Ｆ´が２９フレーム／秒である場合、１秒あたり１フレームがスキップされる。このような場合、例えば、メモリ３３の所定のエリアに、データ読出部１０１が読み出したデータのフレーム数をカウントするカウンタが設けられるようにし、データ読出部１０１が１フレーム分のデータを読み出す都度カウンタがインクリメントされ、２９のフレームが読み出された後、１のフレームがスキップされるように制御すればよい。
【００８０】
ステップＳ１０７の処理の後、処理は、ステップＳ１０２に戻り、それ以後の処理が繰り返し実行される。
【００８１】
このようにして、送信装置１１におけるデータの読出間隔の調整が行われる。このようにすることで、送信装置１１の内部で遅延が発生しても、受信装置１２において受信したデータが正常に再生可能となるように、送信装置１１の送信レートを適切に制御することができる。受信装置１２においては、例えば、３０フレームあたり１フレーム分のデータがスキップされるものの、動画像が停止したり再生できなくなったりすることなく、受信したデータに基づいて動画像を再生することができる。
【００８２】
ところで、JPEG2000により符号化された動画像のデータは、階層性を有しており、階層を選択することにより、１フレーム分のデータ量を調整することができる。すなわち、MPEGが、前後のフレームの違い部分を差分情報として利用して符号化するのに対し、JPEG2000動画においては、フレームの１枚1枚をそれぞれ符号化してから、それらを連続して格納するため、１フレーム分のデータ量を間引くことができる。
【００８３】
図６は、JPEG2000により階層符号化された1フレーム分のデータの構成例を表している。図６においては、例として、JPEG2000の階層符号化データが、４つの階層により階層符号化されており、１つの階層分のデータを送信するために５個のパケットを必要とする場合を表している。この場合、４つの階層全体の階層符号化データでは、４×５＝２０個のパケットを必要とする。
【００８４】
図６において、左側の記載「レイヤL1」、「レイヤL２」、「レイヤL３」、および「レイヤL４」は、４つの層を表している。レイヤＬ１が、最下位の階層であり、レイヤＬ２、レイヤＬ３、レイヤＬ４の順番でより上位の階層になる。
【００８５】
図６において、「レイヤL1」、「レイヤL２」、「レイヤL３」、および「レイヤL４」の記載の右側のブロックは、それぞれパケットを表している。すなわち、「P1」、「P２」、「P３」、「P４」、「P５」、「P６」、「P７」、「P８」、「P９」、「P1０」、「P１1」、「P１２」、「P１３」、「P１４」、「P１５」、「P１６」、「P１７」、「P１８」、「P１９」、および「P２０」と記載された各ブロックは、それぞれが、パケットを表している。
【００８６】
図６においては、レイヤL1のデータが、「P1」、「P２」、「P３」、「P４」、および「P５」のパケットに分割され、レイヤL２のデータが、「P６」、「P７」、「P８」、「P９」、および「P1０」のパケットに分割され、レイヤL３のデータが、「P１1」、「P１２」、「P１３」、「P１４」、および「P１５」のパケットに分割され、レイヤL４のデータが、「P１６」、「P１７」、「P１８」、「P１９」、および「P２０」のパケットに分割されている。
【００８７】
JPEG2000においては、レイヤL1のデータのみをデコードして、表示した場合、粗い画像（この画像を画像１と称する）が表示され、レイヤL１とレイヤL２のデータをデコードして、表示した場合、画像１より精細な画像（この画像を画像２と称する）が表示され、レイヤL１、レイヤL２、およびレイヤL３のデータをデコードして、表示した場合、画像２より精細な画像（この画像を画像３と称する）が表示され、レイヤL１、レイヤL２、レイヤL３、およびレイヤL４のデータをデコードして、表示した場合、画像３より精細な画像（この画像を画像４と称する）が表示される。
【００８８】
すなわち、JPEG2000方式で符号化された動画像のデータは、デコードされる階層数を多くしてデータ量を多くすれば、画質の高い動画像として再生することができ、デコードされる階層数を少なくしてデータ量を少なくすれば、画質の低い動画像として再生することができる。
【００８９】
図４と図５を参照して上述した処理においては、送信装置１１の内部で記録媒体（いまの場合、ハードディスク３２）からのデータの読み出しの間隔を調整することで送信レートを制御している。すなわち、記録媒体からのデータの読み出しが間に合わない場合、データの読み出しの単位量（いまの場合１フレーム分）は変更されずに、単位量のデータの読み出し時間が長くなるように変更される。
【００９０】
一方、例えば、JPEG2000方式で符号化され、階層性を有する動画像のデータであれば、記録媒体からのデータの読み出しが間に合わない場合、データの読み出しの単位量が小さくなるように変更され、単位量のデータの読み出し時間は変更されないようにすることも可能である。
【００９１】
図７のフローチャートを参照して、階層性を有する動画像のデータを送信する場合の、読出量調整処理について説明する。この処理は、送信装置１１によるデータ送信の処理に伴って実行される。
【００９２】
ステップＳ１５１において、ストリーム情報保存部１０７は、読出間隔Ｉを設定する。このとき、例えば、ハードディスク３２に記憶される動画像データに付された属性情報に基づいて、当該データのフレームレートFが取得され、フレームレートＦの逆数（動画像データの１フレーム分の再生にかかる時間）が読出間隔Ｉとして設定される。
【００９３】
ステップS１５２において、ストリーム情報保存部１０７は、読出レイヤLを初期化する。このとき、例えば、ハードディスク３２に記憶される動画像データに付された属性情報に基づいて、当該データの階層数が取得され、最上位の階層が読出レイヤLとして初期化される。例えば、ハードディスク３２に記憶される動画像データが図６に示されるようにレイヤL１乃至L４の４階層で構成されている場合、レイヤＬ４に対応する階層（すなわち４）が読出レイヤLとして初期化される。
【００９４】
ステップＳ１５３において、データ読出速度測定部１０５は、変数Ｔｓに現在時刻Ｔをセットする。
【００９５】
ステップＳ１５４において、データ読出部１０１は、１フレーム分のデータであって、レイヤＬ１乃至Ｌ４までのデータを、ハードディスク３２からメモリ３３に読み出す。
【００９６】
ステップＳ１５５において、データ読出速度測定部１０５は、変数Ｔｅに現在時刻Ｔをセットする。
【００９７】
ステップＳ１５６において、データ読出速度測定部１０５は、変数ＴｅとＴｓの差分を変数ΔＴとして算出する。上述した変数Ｔｓは、１フレーム分のデータを、ハードディスク３２からメモリ３３に読み出すにあたっての読出し開始時刻であり、上述した変数Ｔｅは、１フレーム分のデータを、ハードディスク３２からメモリ３３に読み出すにあたっての読出し終了時刻であるので、変数ΔＴは、１フレーム分のデータの読出しに要した時間となる。すなわち、変数ΔＴは、図２の矢印５１に対応する行程に要した時間となる。
【００９８】
ステップＳ１５７において、読出制御情報設定部１０６は、図８を参照して後述するレイヤ設定処理を実行する。これにより、読出レイヤＬが新たに設定される。
【００９９】
ここで、図８のフローチャートを参照して、図７のステップＳ１５７のレイヤ設定処理の詳細について説明する。
【０１００】
ステップＳ１７１において、読出制御情報設定部１０６は、読出間隔Ｉの値と変数ΔＴの値を比較し、読出間隔Ｉの値が変数ΔＴの値を超えているか否かを判定する。
【０１０１】
ここで、Ｉは、上述したようにフレームレートＦの逆数として設定された読出間隔であり、変数ΔＴは、上述したように１フレーム分のデータの読出しに要した時間であり、１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である場合、受信装置では、動画像を正常に再生できないことになる。
【０１０２】
すなわち、ステップＳ１７１において、読出間隔Ｉの値が変数ΔＴの値を超えていない（１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である）と判定された場合、読出レイヤを新たに設定する必要があるため、処理は、ステップＳ１７２に進む。
【０１０３】
ステップＳ１７２において、読出制御情報設定部１０６は、読出レイヤＬを１階層だけデクリメントする。これにより、例えば、読出レイヤＬが４から３にデクリメントされ、次回にステップＳ１５４でハードディスク３２から読み出されるデータは、１フレーム分のデータであって、レイヤＬ１乃至Ｌ３までのデータとなる。このようにすることで、次回ステップS１５４の処理でハードディスク３２から読み出されるデータのデータ量はより少ないものとなり、当然、次回の１フレーム分のデータの読出し時間（ΔＴ）もより短くなる。
【０１０４】
また、ステップＳ１７２においては、読出間隔Ｉと変数ΔＴの比（Ｉ／ΔＴ）の値に基づいて、新たなレイヤが選択されるようにしてもよい。
【０１０５】
なお、読出制御情報設定部１０６は、ステップＳ１７２で算出した読出レイヤＬの値を、ストリーム情報保存部１０７に保存させる。
【０１０６】
一方、ステップＳ１７１において、読出間隔Ｉの値が変数ΔＴの値を超えていると判定された場合、読出レイヤを新たに設定する必要はないため、処理は、ステップＳ１７３に進み、読出制御情報設定部１０６は、読出間隔Ｉと、変数ΔＴ（実際に読出しに要した時間）の差分の時間だけ待機する。
【０１０７】
ステップＳ１７２またはステップＳ１７３の処理の後、処理は、図７のステップＳ１５８に進む。
【０１０８】
ステップＳ１５８において、データ読出部１０１は、フレームの境界までのスキップの制御を行う。例えば、上述したステップＳ１７２の処理で読出レイヤＬが４から３に変更された場合、レイヤＬ１乃至Ｌ３のデータを読み出した後、レイヤＬ４のデータは読み出さず、次のフレームのレイヤＬ１を読み出すことになるので、データ読出部１０１は、読出レイヤＬに対応する階層のデータを読み出した後、次のフレームとの境界位置まで、例えば読出し用のポインタなどをスキップさせておく。
【０１０９】
ステップＳ１５８の処理の後、処理は、ステップＳ１５３に戻り、それ以後の処理が繰り返し実行される。
【０１１０】
このようにして、送信装置１１におけるデータの読出量の調整が行われる。このようにすることで、送信装置１１の内部で遅延が発生しても、受信装置１２において受信したデータが正常に再生可能となるように、送信装置１１の送信レートを適切に制御することができる。受信装置１２においては、例えば、画質が低下するものの、動画像が停止したり再生できなくなったりすることなく、受信したデータに基づいて動画像を再生することができる。
【０１１１】
図３乃至図８を参照して説明した送信レートの制御の方法を、他の送信レートの制御の方法と組み合わせて利用することも可能である。例えば、輻輳の発生などネットワークの帯域の状態に応じて送信レートを制御する方法と、図３乃至図８を参照して説明した送信レートの制御の方法とを組み合わせて利用し、送信装置１１の内部で発生する遅延と、ネットワーク上で発生する遅延の双方に応じて送信レートを制御することもできる。
【０１１２】
図９は、ネットワークの帯域の状態に応じて送信レートを制御する方法と組み合わせて送信レートの制御を行う場合の、ＣＰＵ３１により実行されるソフトウェアの機能的構成例を示すブロック図である。同図は、図３に対応するブロック図であり、図３と対応する部分には同一の符号が付されている。
【０１１３】
図９の例では、図３の場合と異なり、レート制御部１０８が設けられている。レート制御部１０８は、ネットワークの帯域の状態に応じて、送信装置１１によるデータの送信レートを制御する機能ブロックであり、例えば、受信装置１２から送信され、受信した応答パケットであって、送信装置１１がパケットを送信した送信時刻やパケットロス率などの情報を含む確認応答のパケットの情報に基づいてデータの送信レートを制御するための制御情報を読出制御情報設定部１０６に供給する。
【０１１４】
図１０は、レート制御部１０８のさらに詳細な機能的構成例を示すブロック図である。同図において、レート制御部１０８は、レート算出部１３１、および制御情報生成部１３２により構成されている。
【０１１５】
レート算出部１３１は、送信装置１１の図示せぬパケット受信部から、確認応答パケットに含まれている情報、および確認応答パケットの受信時刻が供給されると、供給された情報を基に、送信装置１１から送信されるデータパケットの理想的な送信レートを算出し、算出した理想的送信レートを、制御情報生成部１３２に供給する。制御情報生成部１３２は、レート算出部１３１から理想的送信レートが供給されると、供給された理想的送信レートに基づいて、例えば、新たに設定すべきフレームレート、読出レイヤなどの値を含む制御情報を生成して出力する。
【０１１６】
次に、図１１のフローチャートを参照して、レート制御部１０８の処理の例について説明する。
【０１１７】
ステップＳ１０１において、レート算出部１３１は、図示せぬパケット受信部が応答パケットを受信するまで待機する。そして、確認応答パケットを受信したとき、処理はステップＳ２０２に進む。なお、レート算出部１３１は、受信した確認応答パケットの受信時刻を、内蔵するタイマなどから取得しておく。
【０１１８】
ステップＳ２０２において、確認応答パケット、および取得した確認応答パケットの受信時刻に基づいて応答パケットのRTT（Round Trip Time）を算出する。
【０１１９】
なお、RTTは、送信装置１１から送信されたデータのパケットが受信装置１２により受信されるまでの時間（この時間をＴ１とする）と、受信装置１２から送信された確認応答パケットが送信装置１１により受信されるまでの時間（この時間をＴ２とする）の和（Ｔ１＋Ｔ２）として求められる。時間Ｔ１は、データのパケットの受信時刻からデータのパケットの送信時刻を引いて求められる。また、時間Ｔ２は、確認応答パケットの受信時刻から確認応答パケットの送信時刻を引いて求められる。
【０１２０】
ステップＳ２０２の処理の後、ステップＳ２０３において、レート算出部１３１は、受信した確認応答パケットから、損失パケット番号を読み出し、損失パケット番号に基づいて、単位時間あたりのパケットロス率を算出する。
【０１２１】
ステップＳ２０３の処理の後、ステップＳ２０４において、レート算出部１３１は、理想的な送信レートＴを算出する。送信レートの算出方法には、例えば、TFRC（TCP-Friendly Rate Control）を利用することができる。なお、TFRCについては、S.Floyd,M.Handley,J.Pandhye and J.Widmer，“Equation-Based Congestion Control for Unicast Applications”，Proceedings of ACM SIGCOMM 2000，May 2000に詳細な説明がある。TFRCにおいては、パケットロス率とRTTを利用して、送信装置１１からデータパケットを送信する理想的な送信レートを、以下の式（この式を式（１）とする）により予測する。
【０１２２】
【数１】
2006303749.tif 000003
【０１２３】
式（１）において、Ｔは理想的な送信レート、ｓはパケットサイズ、ｐはパケットロス率、ｔはTCP（Transmission Control Protocol）のタイムアウト時間（通常は、RTTの４倍）である。レート算出部１３１は、式（１）により、送信レートＴを算出した後、算出した送信レートＴを、制御情報生成部１３２に通知する。その後、処理はステップＳ２０５に進む。
【０１２４】
ステップＳ２０５において、制御情報生成部１３２は、ステップＳ２０４で算出された送信レートＴに対応するフレームレートＦｒ、または読出レイヤＬｒを特定する。フレームレートＦｒ、または読出レイヤＬｒの特定については、例えば、送信レートＴに対応するフレームレートまたは読出レイヤが予め図示せぬ記憶部に記憶されているようにし、算出された送信レートＴに対応するフレームレートまたは読出レイヤが選択されて特定されるようにしてもよいし、現在の送信レートと、算出された送信レートＴとの比または差に基づいて、単位時間内に送信可能なデータ量などが演算され、その演算結果に基づいて適当なフレームレートまたは読出レイヤが特定されるようにしてもよい。
【０１２５】
ステップＳ２０６において、制御情報生成部１３２は、ステップＳ２０５の処理により特定されたフレームレートＦｒ、または読出レイヤＬｒを含む制御情報を生成して、読出制御情報設定部１０６に出力する。
【０１２６】
このようにして、ネットワークの帯域の状態に応じて、フレームレートまたは読出レイヤが変更され、制御情報として供給される。なお、レート制御部１０８の構成および動作は、図１０および図１１を参照して上述したものに限られるものではなく、これとは異なる構成を有し、その構成に対応して動作するようにしてもよい。例えば、ネットワーク１０内に設けられた中継ノード（例えば、ルータなど）から送信されるネットワークの輻輳に関する情報などに基づいて、レームレートＦｒ、または読出レイヤＬｒが特定されるようにすることも可能である。
【０１２７】
レート制御部１０８が設けられている（図９のブロック図）場合、読出間隔調整処理は、やはり図４を参照して上述したように実行されるが、ステップＳ１０６のレート設定処理の詳細が、図５を参照して上述したものとは異なったものになる。
【０１２８】
図１２は、図９のブロック図に対応する読出間隔調整処理におけるステップＳ１０６のレート設定処理の詳細を説明するフローチャートである。
【０１２９】
ステップＳ２５１において、読出制御情報設定部１０６は、読出間隔Ｉの値と変数ΔＴの値を比較し、読出間隔Ｉの値が変数ΔＴの値を超えているか否かを判定する。
【０１３０】
変数ΔＴは、上述したように１フレーム分のデータの読出しに要した時間であり、１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である場合、受信装置１２では、動画像を正常に再生できないことになるので、ステップＳ２５１において、読出間隔Ｉの値が変数ΔＴの値を超えていない（１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である）と判定された場合、フレームレートと読出間隔を新たに設定する必要があるため、処理は、ステップＳ２５２に進む。
【０１３１】
ステップＳ２５２において、読出制御情報設定部１０６は、次式により新たなフレームレートＦ´を算出する。
【０１３２】
Ｆ´＝（Ｉ／ΔＴ）Ｆ
【０１３３】
ステップＳ２５３において、読出制御情報設定部１０６は、ステップＳ２５２で算出したフレームレートＦ´の小数点以下の値を切り捨てて、ストリーム情報保存部１０７に保存させる。
【０１３４】
ステップＳ２５３の処理の後、ステップＳ２５４において、読出制御情報設定部１０６は、ステップＳ２５３の処理により設定されたフレームレートＦ´と、レート制御部１０８により供給される制御情報に含まれるフレームレートＦｒを比較し、ＦｒがＦ´を超えているか否かを判定する。
【０１３５】
ステップＳ２５４において、レート制御部１０８により供給される制御情報に含まれるフレームレートＦｒがステップＳ２５３の処理により設定されたフレームレートＦ´を超えていないと判定された場合、送信装置１１の内部（図２の矢印５１に対応する経路）の遅延より、ネットワーク１０上（図２の矢印５３に対応する経路）の遅延の方が大きいと考えられるため、処理は、ステップＳ２５５に進み、読出制御情報設定部１０６は、読出間隔Ｉを次式により算出する
【０１３６】
Ｉ＝１／Ｆｒ
【０１３７】
すなわち、ボトルネックがネットワーク１０上である場合、レート制御部１０８から供給されるフレームレートＦｒに基づいて読出間隔Ｉが設定される。
【０１３８】
ステップＳ２５４において、レート制御部１０８により供給される制御情報に含まれるフレームレートＦｒがステップＳ２５３の処理により設定されたフレームレートＦ´を超えていると判定された場合、送信装置１１の内部（図２の矢印５１に対応する経路）の遅延の方が、ネットワーク１０上（図２の矢印５３に対応する経路）の遅延より大きいと考えられるため、処理は、ステップＳ２５６に進み、読出制御情報設定部１０６は、読出間隔Ｉを次式により算出する
【０１３９】
Ｉ＝１／Ｆ´
【０１４０】
すなわち、ボトルネックが送信装置１１の内部である場合、読出制御情報設定部１０６が算出したフレームレートＦ´に基づいて読出間隔Ｉが設定される。
【０１４１】
一方、ステップＳ２５１において、読出間隔Ｉの値が変数ΔＴの値を超えていると判定された場合、フレームレートと読出間隔を新たに設定する必要はないため、処理は、ステップＳ２５７に進み、読出制御情報設定部１０６は、読出間隔Ｉと、変数ΔＴ（実際に読出しに要した時間）の差分の時間だけ待機する。
【０１４２】
ステップＳ２５７の処理の後、処理は、ステップＳ２５８に進み、読出制御情報設定部１０６は、読出間隔Ｉを次式により算出する
【０１４３】
Ｉ＝１／Ｆｒ
【０１４４】
すなわち、ステップＳ２５１において、読出間隔Ｉの値が変数ΔＴの値を超えていると判定された場合、ボトルネックは、送信装置１１の内部ではないので、レート制御部１０８から供給されるフレームレートＦｒに基づいて読出間隔Ｉが設定される。
【０１４５】
ステップＳ２５５、Ｓ２５６またはＳ２５８の処理の後、処理は図４のステップＳ１０７に進む。
【０１４６】
このようにしてフレームレートの設定と、読出間隔の設定が行われる。このようにすることで、ボトルネックが、送信装置１１の内部であっても、ネットワーク１０上であっても、適正なフレームレートと読出間隔を設定することができる。
【０１４７】
また、レート制御部１０８が設けられている（図９のブロック図）場合、読出量調整処理は、やはり図７を参照して上述したように実行されるが、ステップＳ１５７のレイヤ設定処理の詳細が、図８を参照して上述したものとは異なったものになる。
【０１４８】
図１３は、図９のブロック図に対応する読出量調整処理におけるステップＳ１５７のレート設定処理の詳細を説明するフローチャートである。
【０１４９】
ステップＳ２８１において、読出制御情報設定部１０６は、読出間隔Ｉの値と変数ΔＴの値を比較し、読出間隔Ｉの値が変数ΔＴの値を超えているか否かを判定する。
【０１５０】
変数ΔＴは、上述したように１フレーム分のデータの読出しに要した時間であり、１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である場合、受信装置１２では、動画像を正常に再生できないことになるので、ステップＳ２８１において、読出間隔Ｉの値が変数ΔＴの値を超えていない（１フレーム分のデータの読出し時間（ΔＴ）が時間Ｉ以上である）と判定された場合、読出レイヤを新たに設定する必要があるため、処理は、ステップＳ２８２に進む。
【０１５１】
ステップＳ２８２において、読出制御情報設定部１０６は、読出レイヤＬを１階層だけデクリメントする。また、ステップＳ２８２においては、読出間隔Ｉと変数ΔＴの比（Ｉ／ΔＴ）の値に基づいて、新たなレイヤが選択されるようにしてもよい。
【０１５２】
なお、読出制御情報設定部１０６は、ステップＳ２８２で算出した読出レイヤＬの値を、ストリーム情報保存部１０７に保存させる。
【０１５３】
一方、ステップＳ２８１において、読出間隔Ｉの値が変数ΔＴの値を超えていると判定された場合、読出レイヤを新たに設定する必要はないため、処理は、ステップＳ２８３に進み、読出制御情報設定部１０６は、読出間隔Ｉと、変数ΔＴ（実際に読出しに要した時間）の差分の時間だけ待機する。
【０１５４】
ステップＳ２８２またはステップＳ２８３の処理の後、処理は、ステップＳ２８４に進み、読出制御情報設定部１０６は、制御部１０８から供給される制御情報に含まれる読出レイヤＬｒは、読出レイヤＬを超えているか否かを判定する。
【０１５５】
ステップＳ２８４において、レート制御部１０８により供給される制御情報に含まれる読出レイヤＬｒが読出レイヤＬを超えていないと判定された場合、送信装置１１の内部（図２の矢印５１に対応する経路）の遅延より、ネットワーク１０上（図２の矢印５３に対応する経路）の遅延の方が大きいと考えられるため、処理は、ステップＳ２８５に進み、読出制御情報設定部１０６は、読出レイヤＬをレート制御部１０８により供給される制御情報に含まれる読出レイヤＬｒと等しく設定する。
【０１５６】
すなわち、ボトルネックがネットワーク１０上である場合、レート制御部１０８から供給される読出レイヤＬｒを読出レイヤとして設定する。
【０１５７】
ステップＳ２８４において、レート制御部１０８により供給される制御情報に含まれる読出レイヤＬｒが読出レイヤＬを超えていると判定された場合、送信装置１１の内部（図２の矢印５１に対応する経路）の遅延の方が、ネットワーク１０上（図２の矢印５３に対応する経路）の遅延より大きいと考えられるため、処理は、ステップＳ２８５の処理はスキップされる。
【０１５８】
すなわち、ボトルネックが送信装置１１の内部である場合、レート制御部１０８から供給される読出レイヤＬｒは無視される。
【０１５９】
ステップＳ２８４において、レート制御部１０８により供給される制御情報に含まれる読出レイヤＬｒが読出レイヤＬを超えていると判定された場合、またはステップＳ２８５の処理の後、処理は、図７のステップＳ１５８に進む。
【０１６０】
このようにして読出レイヤの設定が行われる。このようにすることで、ボトルネックが、送信装置１１の内部であっても、ネットワーク１０上であっても、適正な読出レイヤを設定することができる。
【０１６１】
以上においては、送信装置１１と受信装置１２が動画像のデータを送受信する例について説明したが、送受信されるデータは動画像のデータに限られるものではない。また、ネットワーク１０は、インターネットなどの有線設備を伴うネットワークに限られるものではなく、例えば、Bluetoothなどの無線通信技術により実現されるネットワークであってもよい。
【０１６２】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１４に示されるような汎用のパーソナルコンピュータ５００などに、ネットワークや記録媒体からインストールされる。
【０１６３】
図１４において、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)などよりなるディスプレイ、並びにスピーカなどよりなる出力部５０７、ハードディスクなどより構成される記憶部５０８、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部５０９が接続されている。通信部５０９は、インターネットを含むネットワークを介しての通信処理を行う。
【０１６６】
入出力インタフェース５０５にはまた、必要に応じてドライブ５１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部５０８にインストールされる。
【０１６７】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア５１１などからなる記録媒体からインストールされる。
【０１６８】
なお、この記録媒体は、図１４に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フロッピディスク（登録商標）を含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア５１１により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM５０２や、記憶部５０８に含まれるハードディスクなどで構成されるものも含む。
【０１６９】
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１７０】
【図１】本発明を適用した通信システムの一実施形態に係る構成例を示す図である。
【図２】図１の通信システムにおけるパケットの経路と、送信装置の内部構成例を示すブロック図である。
【図３】図２のＣＰＵで実行されるソフトウェアの機能的構成例を示すブロック図である。
【図４】読出間隔調整処理の例を説明するフローチャートである。
【図５】レート設定処理の例を説明するフローチャートである。
【図６】JPEG2000により階層符号化された1フレーム分のデータの構成例を示す図である。
【図７】読出量調整処理の例を示すフローチャートである。
【図８】レイヤ設定処理の例を説明するフローチャートである。
【図９】図２のＣＰＵで実行されるソフトウェアの別の機能的構成例を示すブロック図である。
【図１０】図９のレート制御部の詳細な構成例を示すブロック図である。
【図１１】レート制御部の処理の例を説明するフローチャートである。
【図１２】レート設定処理の別の例を説明するフローチャートである。
【図１３】レイヤ設定処理の別の例を説明するフローチャートである。
【図１４】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１７１】
１  通信システム，  １０  ネットワーク，  １１  送信装置，  １２  受信装置，  ３１  ＣＰＵ，  ３２  ハードディスク，  ３３  メモリ，  ３４  ネットワークインタフェースカード，  １０１  データ読出部，  １０２  パケット生成部，  １０３  ＲＴＰヘッダ処理部，  １０５  データ読出速度測定部，  １０６  読出制御情報設定部，  １０７  ストリーム情報保存部，  １０８  レート制御部
【図１】
2006303749.tif 000004
【図２】
2006303749.tif 000005
【図３】
2006303749.tif 000006
【図４】
2006303749.tif 000007
【図５】
2006303749.tif 000008
【図６】
2006303749.tif 000009
【図７】
2006303749.tif 000010
【図８】
2006303749.tif 000011
【図９】
2006303749.tif 000012
【図１０】
2006303749.tif 000013
【図１１】
2006303749.tif 000014
【図１２】
2006303749.tif 000015
【図１３】
2006303749.tif 000016
【図１４】
2006303749.tif 000017