JP2004215199A - 情報処理装置および方法、記録媒体、並びにプログラム - Google Patents

情報処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
JP2004215199A
JP2004215199A JP2003002773A JP2003002773A JP2004215199A JP 2004215199 A JP2004215199 A JP 2004215199A JP 2003002773 A JP2003002773 A JP 2003002773A JP 2003002773 A JP2003002773 A JP 2003002773A JP 2004215199 A JP2004215199 A JP 2004215199A
Authority
JP
Japan
Prior art keywords
rate
transmittable
packet
transmission
transmittable rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003002773A
Other languages
English (en)
Other versions
JP4140000B2 (ja
Inventor
Hiroshi Kusogami
宏 久曽神
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003002773A priority Critical patent/JP4140000B2/ja
Publication of JP2004215199A publication Critical patent/JP2004215199A/ja
Application granted granted Critical
Publication of JP4140000B2 publication Critical patent/JP4140000B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】ネットワークの状態の変化に対応して、効率よくデータを送受信する。
【解決手段】画像送信装置は、送信レートを設定するための基準となる閾値TH1と閾値TH2(TH2<TH1)を記憶している。画像送信装置は、送信可能レートTnを算出し(ステップS302)、現在設定されている送信可能レートTが閾値TH1より大きく(ステップS303でYES)、かつ算出した送信可能レートTnが閾値TH2より大きい(ステップS304でYES)場合、送信レートの変更を行わない。これにより、送信レートを減少させるタイミングをより的確にコントロールすることが可能となる。本発明は、ネットワークに接続される電子機器に適用することができる。
【選択図】 図12

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、ネットワークの輻輳状態の変化に対応して、効率よくデータを送受信できるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
送信端末装置から受信端末装置に対して、インターネットなどのネットワークを経由して、連続してパケットを送信する場合、受信端末装置から送信端末装置に対して、損失した(受信されなかった)パケットを特定する情報や、パケットの受信時刻などの情報を含む確認応答が通知される。送信端末装置は、受信端末装置から受信した確認応答に応じて、送信するパケットの送信間隔やパケットサイズを変更して、ネットワークの帯域の状態に最適な送信レートで、パケットを送信する。
【0003】
ネットワークの帯域の状態に従って、パケットの送信レートを制御するレート制御アルゴリズムは、通常、パケットロス率(送信端末装置から送信された全パケットに対する、受信端末装置に受信されずに損失したパケットの割合)や、RTT(Round Trip Time)を基に、ネットワークの帯域の状態を推測して、送信レートを制御している。
【0004】
例えば、TCP(Transmission Control Protocol)の送信レート制御には、TCP−TahoeやTCP−Renoがある。TCPはウィンドウフロー制御を行なっている。
【0005】
TCP−Tahoeの送信レート制御方式においては、まず、ウィンドウサイズが1の状態からスタートし、ウィンドウサイズを徐々に大きくしてゆく。そして、パケットロスが発生した場合、ウィンドウサイズを1に戻して、Slow Start Phaseにより、再度、徐々にウィンドウサイズを大きくしてゆく。TCP−Tahoeの送信レート制御方式においては、このウィンドウサイズの増減を周期的に繰り返すことにより、送信レートを制御している。
【0006】
TCP−Renoの送信レート制御方式においても、TCP−Tahoeの場合と同様、まず、ウィンドウサイズが1の状態からスタートし、ウィンドウサイズを徐々に大きくしてゆく。そして、パケットロスが発生した場合、タイムアウト前にパケットの再送(Fast Retransmit(RFC2581))が成功した場合、ウィンドウサイズをパケットロス発生直前の1/2に設定する(Fast Recovery(RFC2582))。図1は、TCP−Renoにおける送信レートの制御例を表している。
【0007】
図1において、縦軸は送信レートを表し、横軸は時間を表している。図1において、時刻t0のときウィンドウサイズを1として、そこから時間の経過と共に、ウィンドウサイズが大きくなっている(送信レートが高くなっている)。時刻t1でパケットロスが発生し、ウィンドウサイズがパケットロス直前の約1/2に設定される。その後、また徐々にウィンドウサイズを大きくし、時刻t2で再度パケットロスが発生すると、ウィンドウサイズがパケットロス直前の約1/2に設定される。その後も同様にして、ウィンドウサイズが周期的に変動する。
【0008】
UDP(User Datagram Protocol)の送信レート制御方式には、例えば、TFRC(TCP−Friendly Rate Control)がある。TFRCにおいては、送信端末装置は、輻輳状態に対応して、理想的な送信レートでパケットを送信する(例えば、非特許文献1参照)。
【0009】
また、送信端末装置が、受信端末装置に実時間データを送信中に、受信端末装置からデータ損失率を受信した場合、データ損失率が、予め設定された第1の閾値及び第2の閾値よりも低いときには送信レートを増加させ、データ損失率が第1の閾値よりも高く、第2の閾値よりも低いときには送信レートを変更せず、データ損失率が第1の閾値及び第2の閾値よりも高いときには送信レートを減少させるようにしたものがある(例えば、特許文献1参照)。
【0010】
【特許文献1】
特開2001−320440号公報(第6−8ページ、図5)
【非特許文献1】
Sally Floyd,Mark Handley,Jitendra Pandhye and Joerg Widmer,“Equation−Based Congestion Control for Unicast Applications”,Proceedings of ACMSIGCOMM 2000,May 2000 pp2
【0011】
【発明が解決しようとする課題】
しかしながら、従来、パケットロスが発生すると、必要以上に送信レートを急激に低下させてしまうことがあるという課題があった。
【0012】
例えば、パケットロスが発生した場合、TCP−Tahoeでは、ウィンドウサイズが1に初期化されてしまい、TCP−Renoでは、ウィンドウサイズが、パケットロス直前の1/2のサイズに縮小されてしまう。
【0013】
その結果、例えば、動画データや音声データを実時間送信していた場合、送信する動画や音声の品質が、急激に極端に低下してしまうことがあるという問題があった。
【0014】
本発明は、このような状況に鑑みてなされたものであり、ネットワークの輻輳状態の変化に対応して、より効率的にデータを送受信させることを目的とする。
【0015】
【課題を解決するための手段】
本発明の第1の情報処理装置は、送信可能レートを算出する算出手段と、算出手段により算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットを送信する送信手段と、送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、算出手段に送信可能レートを再計算させ、非連続でパケットロスが発生したとき、算出手段に送信可能レートを再計算させないように制御する制御手段とを備えることを特徴とする。
【0016】
本発明の第1の情報処理方法は、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットを送信する送信ステップと、送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、算出ステップの処理により送信可能レートを再計算させ、非連続でパケットロスが発生したとき、算出ステップにより送信可能レートを再計算させないように制御する制御ステップとを含むことを特徴とする。
【0017】
本発明の第1の記録媒体のプログラムは、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートによる、他の情報処理装置へのパケットの送信を制御する送信制御ステップと、送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、算出ステップの処理により送信可能レートを再計算させ、非連続でパケットロスが発生したとき、算出ステップにより送信可能レートを再計算させないように制御する制御ステップとを含むことを特徴とする。
【0018】
本発明の第1のプログラムは、他の情報処理装置との間でパケット通信を行なう情報処理装置を制御するコンピュータに、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートによる、他の情報処理装置へのパケットの送信を制御する送信制御ステップと、送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、算出ステップの処理により送信可能レートを再計算させ、非連続でパケットロスが発生したとき、算出ステップにより送信可能レートを再計算させないように制御する制御ステップとを実行させることを特徴とする。
【0019】
本発明の第2の情報処理装置は、送信可能レートを算出する算出手段と、算出手段により算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットを送信する送信手段と、現在設定されている送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、算出手段に送信可能レートを第2の送信可能レートとして算出させ、第1の送信可能レートが予め設定された第1の閾値より大きく、かつ第2の送信可能レートが、第1の閾値より小さい値である第2の閾値より大きいとき、送信レートを変更しないように制御する制御手段とを備えることを特徴とする。
【0020】
本発明の第2の情報処理方法は、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットを送信する送信ステップと、現在設定されている送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、算出ステップの処理により、送信可能レートを第2の送信可能レートとして算出させ、第1の送信可能レートが予め設定された第1の閾値より大きく、かつ第2の送信可能レートが、第1の閾値より小さい値である第2の閾値より大きいとき、送信レートを変更しないように制御する制御ステップとを含むことを特徴とする。
【0021】
本発明の第2の記録媒体のプログラムは、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートによる、他の情報処理装置へのパケットの送信を制御する送信制御ステップと、現在設定されている送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、算出ステップの処理により、送信可能レートを第2の送信可能レートとして算出させ、第1の送信可能レートが予め設定された第1の閾値より大きく、かつ第2の送信可能レートが、第1の閾値より小さい値である第2の閾値より大きいとき、送信レートを変更しないように制御する制御ステップとを含むことを特徴とする。
【0022】
本発明の第2のプログラムは、他の情報処理装置とパケット通信を行なう情報処理装置を制御するコンピュータに、送信可能レートを算出する算出ステップと、算出ステップの処理により算出された送信可能レート以下の送信レートによる、他の情報処理装置へのパケットの送信を制御する送信制御ステップと、現在設定されている送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、算出ステップの処理により、送信可能レートを第2の送信可能レートとして算出させ、第1の送信可能レートが予め設定された第1の閾値より大きく、かつ第2の送信可能レートが、第1の閾値より小さい値である第2の閾値より大きいとき、送信レートを変更しないように制御する制御ステップとを実行させることを特徴とする。
【0023】
本発明の第1の情報処理装置および方法、記録媒体、並びにプログラムにおいては、送信可能レートが算出され、算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットが送信され、送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、送信可能レートが再計算され、非連続でパケットロスが発生したとき、送信可能レートは再計算されない。
【0024】
本発明の第2の情報処理装置および方法、記録媒体、並びにプログラムにおいては、送信可能レートが算出され、算出された送信可能レート以下の送信レートで、他の情報処理装置にパケットが送信される。また、現在設定されている送信可能レートが第1の送信可能レートとして記憶されると共に、パケットロスが発生した場合、第2の送信可能レートが算出され、第1の送信可能レートが予め設定された第1の閾値より大きく、かつ第2の送信可能レートが、第1の閾値より小さい値である第2の閾値より大きいとき、送信レートは変更されない。
【0025】
本発明は、ネットワークに接続される電子機器に適用することができる。
【0026】
【発明の実施の形態】
図2は、本発明を適用した情報処理システムの一実施の形態の構成を示す図である。
【0027】
図2において、画像送信装置11および、画像受信装置13は、インターネットを含むネットワーク10を介して、接続されている。画像送信装置11は、撮像装置12により撮像された動画を、例えばMPEG(Moving Picture Experts Group)やJPEG(Joint Photographic Experts Group)2000動画などの符号化方式により符号化し、符号化された動画データを含むデータパケットを生成し、生成したデータパケットを、ネットワーク10を介して、画像受信装置13に実時間送信する。また、画像送信装置11は、画像受信装置13より、RTT(Round Trip Time)やパケットロス率などの情報を含むフィードバックパケットを受信し、フィードバックパケットに含まれている情報に基づいて、データパケットの送信レートを制御する。
【0028】
撮像装置12は、例えば、カメラ一体型ビデオテープレコーダやデジタルスチルカメラであり、被写体を撮像し、撮像した被写体の動画データを画像送信装置11に供給する。
【0029】
画像受信装置13は、画像送信装置11から受信したデータパケットから、動画データを取得し、取得した動画データを表示装置14に供給するとともに、RTTやパケットロス率などの情報を含むフィードバックパケットを生成し、このフィードバックパケットを、画像送信装置11に送信する。
【0030】
表示装置14は、例えば、CRT(CathodeRay Tube)やLCD(Liquid Crystal Display)により構成され、画像受信装置13から供給された動画データを表示する。
【0031】
次に、図3は、画像送信装置11の内部の構成例を表している。図3において、操作部101は、ユーザからの操作の入力を受け付け、受け付けられた操作に対応する操作情報を制御部102に通知する。制御部102は、予め設定されたプログラムや、操作部101からの操作情報に基づいて、画像送信装置11の各部の動作を制御する。
【0032】
映像入力部103は、撮像装置12より、動画データの入力を受け付け、入力された動画データをエンコーダ104に供給する。
【0033】
エンコーダ104は、映像入力部103から供給された動画データを、レート設定部122により設定されたフレームレート、および画質になるように、MPEGの符号化方式に従って符号化し、符号化されたデータ(以下の説明において、符号化されたデータを符号化データと称する)を、データパケット生成部105に供給する。
【0034】
データパケット生成部105は、エンコーダ104から供給された符号化データを、複数に分割してパケット化し、生成したデータパケットに、TCP/IP(Transmission Control Protocol/Internet Protocol)、またはUDP/IP(User Datagram Protocol/Internet Protocol)のパケットヘッダを付加して、データパケット送信部106に供給する。なお、パケットヘッダには、データパケットの個々を識別するための、シーケンス番号が含まれている。
【0035】
データパケット送信部106は、データパケット生成部105からデータパケットが供給されると、これを、レート設定部122により指定されたタイミングで、ネットワーク10を介して、画像受信装置13に送信する。なお、データパケット送信部106は、データパケットを送信するとき、データパケットの送信時刻として、現在時刻をパケットヘッダに記録する。
【0036】
フィードバックパケット受信部107は、画像受信装置13より、フィードバックパケットを受信すると、受信したフィードバックパケットをレート制御部108のレート設定部122に供給する。
【0037】
レート制御部108は、送信可能レート算出部121、およびレート設定部122により構成される。
【0038】
送信可能レート算出部121は、レート設定部122から、RTTおよびパケットロス率の情報が供給されると、供給された情報を基に、データパケットの理想的な送信レートを算出し、算出した理想的送信レートをレート設定部122に供給する。なお、以下の説明において、送信可能レート算出部121により算出される理想的な送信レートを送信可能レートと称する。
【0039】
レート設定部122は、適宜、フィードバックパケットから読み出したRTTおよびパケットロス率の情報を、送信可能レート算出部121に供給し、送信可能レート算出部121から、送信可能レートを取得する。そして、レート設定部122は、送信可能レートに基づいて、実際の送信レートを設定し、設定した送信レートに基づいて、エンコーダ104に、符号化する画像の画質やフレームレートを所定の値に設定するように指示するとともに、データパケット送信部106に、データパケットを送信する間隔を所定の値に設定するように指示する。
【0040】
次に、図4は、画像受信装置13の内部の構成例を表している。図4において、操作部151は、ユーザからの操作の入力を受け付け、受け付けられた操作に対応する操作情報を制御部152に通知する。制御部152は、予め設定されたプログラムや、操作部151からの操作情報に基づいて、画像受信装置13の各部の動作を制御する。
【0041】
データパケット受信部153は、画像送信装置11により送信されたデータパケットを、ネットワーク10を介して受信し、図示せぬ内部時計から受信時刻を取得する。そして、データパケット受信部153は、受信したデータパケットのパケットヘッダに含まれている情報(データパケットの送信時刻およびシーケンス番号を含む)、および取得した受信時刻情報を、状態測定部158に供給するとともに、データパケットをデータ再構成部154に供給する。
【0042】
データ再構成部154は、データパケット受信部153からデータパケットが供給されると、供給された複数のデータパケットから、元の符号化データを再構成する。すなわち、画像送信装置11は、符号化データを送信する際、複数に分割して、それぞれをパケット化して、画像受信装置13に送信するので、画像受信装置13は、受信した複数のデータパケットから、元の符号化データを復元する必要がある。データ再構成部154は、この再構成処理を行なう。データ再構成部154は、符号化データを再構成した後、再構成した符号化データをデコーダ155に供給する。
【0043】
デコーダ155は、データ再構成部154から、符号化データの供給を受け、供給された符号化データを復号して動画データを生成し、この動画データを記憶部156に供給する。
【0044】
記憶部156は、デコーダ155から供給された動画データを、一時的に記憶(バッファリング)する。記憶部156に記憶された動画データは、所定のタイミングでビデオ出力部157により読み出される。
【0045】
ビデオ出力部157は、所定のタイミングで、記憶部156から動画データを読み出し、読み出した動画データを表示装置14に表示可能な画像信号に変換して、表示装置14に供給する。
【0046】
状態測定部158は、データパケット受信部153から、データパケットのパケットヘッダに含まれている情報(データパケットの送信時刻およびシーケンス番号を含む)、およびデータパケットの受信時刻情報を取得する。そして、状態測定部158は、データパケットの送信時刻および受信時刻をRTT算出部159に供給し、RTT算出部159からRTTを取得する。また、状態測定部158は、データパケットのシーケンス番号が、その直前に受信したデータパケットのシーケンス番号と連続しているか否かを判定することにより、データパケットの損失の有無を判定する。なお、損失したデータパケットとは、画像送信装置11から送出されたものの、画像受信装置13に届いていないパケットのことである。その結果、損失したデータパケットが存在した場合(パケットロスが発生した場合)、状態測定部158は、損失したデータパケットのシーケンス番号(以下の説明において、損失したデータパケットのシーケンス番号のことを損失パケット番号と称する)を特定する。そして、状態測定部158は、損失パケット番号、損失したパケットの直前に最後に受信したデータパケットのシーケンス番号と受信時刻、および損失後に始めて受信したデータパケットのシーケンス番号と受信時刻を、ロス率算出部160に供給し、ロス率算出部160から、算出されたパケットロス率を取得する。状態測定部158は、取得したRTTやパケットロス率の情報をフィードバックパケット生成部161に供給する。
【0047】
RTT算出部159は、状態測定部158からデータパケットの送信時刻および受信時刻の情報が供給されると、これらに基づいてRTTを算出し、算出されたRTTを、状態測定部158に供給する。
【0048】
ロス率算出部160は、状態測定部158から、損失パケット番号、損失したパケットの直前に最後に受信したデータパケットのシーケンス番号と受信時刻、および損失後に始めて受信したデータパケットのシーケンス番号と受信時刻等の情報が供給されると、供給された情報に基づいて、パケットロス率を算出し、算出されたパケットロス率を状態測定部158に供給する。
【0049】
フィードバックパケット生成部161は、状態測定部158から、RTTが供給されると、このRTTを情報として含むフィードバックパケットを生成し、生成したフィードバックパケットをフィードバックパケット送信部162に供給する。なお、状態測定部158から、パケットロス率の情報も供給された場合、フィードバックパケット生成部161は、RTTと共に、パケットロス率も含むフィードバックパケットを生成し、フィードバックパケット送信部162に供給する。
【0050】
フィードバックパケット送信部162は、フィードバックパケット生成部161から、フィードバックパケットが供給されると、供給されたフィードバックパケットを、所定のタイミングで、ネットワーク10を介して、画像送信装置11に送信する。
【0051】
次に、図5のフローチャートを参照して、画像送信装置11の画像送信処理、および画像受信装置13の画像受信処理について説明する。
【0052】
撮像装置12により撮像された被写体の動画データは、映像入力部103に入力され、映像入力部103から、エンコーダ104に供給されている。図6のステップS1において、画像送信装置11のエンコーダ104は、映像入力部103から供給された動画データを符号化して、符号化データを生成し、生成された符号化データをデータパケット生成部105に供給する。なお、エンコーダ104は、レート設定部122により指示されたフレームレートおよび画質になるように、動画データを符号化する。
【0053】
ステップS1の処理の後、ステップS2において、データパケット生成部105は、エンコーダ104から供給された符号化データを分割して、分割したデータそれぞれを含むデータパケットを生成し、生成したデータパケットにシーケンス番号を含むパケットヘッダを付加する。データパケット生成部105は、パケットヘッダを付加した後、データパケットをデータパケット送信部106に供給する。
【0054】
ステップS2の処理の後、ステップS3において、データパケット送信部106は、データパケット生成部105から供給されたデータパケットを、レート設定部122により指定された所定のタイミングで、ネットワーク10を介して、画像受信装置13に送信する。なお、データパケット送信部106は、データパケットを送信する際に、図示せぬ内部時計から現在時刻を取得し、パケットヘッダに付加する。その後、処理はステップS1に戻り、ステップS1以降の処理が繰り返される。
【0055】
ステップS11において、画像受信装置13のデータパケット受信部153は、画像送信装置11がステップS3で送信したデータパケットを、ネットワーク10を介して受信し、データ再構成部154に供給する。
【0056】
画像送信装置11は、符号化データを複数個のデータパケットに分割して送信するため、データ再構成部154は、分割された複数個のデータパケットが揃わないと、符号化データを再構成することができない。そこで、ステップS11の後、ステップS12において、データ再構成部154は、符号化データを再構成できるだけのデータパケットが揃ったか否かを判定し、符号化データを再構成できるだけのデータパケットが揃っていない場合、後述するステップS13乃至ステップS14の処理はスキップされる。なお、データ再構成部154は、データパケットが揃うまでの間、データパケット受信部153から供給されたデータパケットを記憶しておく。
【0057】
そして、ステップS12において、データ再構成部154が、符号化データを再構成できるだけのデータパケットが揃ったと判定した場合、処理はステップS13に進む。
【0058】
ステップS13において、データ再構成部154は、記憶しておいた複数個のデータパケットから、分割された符号化データを抽出し、これらのデータを統合して、元の符号化データを再構成し、再構成した符号化データを、デコーダ155に供給する。
【0059】
ステップS13の後、ステップS14において、デコーダ155は、データ再構成部154から供給された符号化データを復号し、記憶部156に供給し、記憶させる。
【0060】
その後、処理はステップS11に戻り、ステップS11以降の処理が繰り返される。
【0061】
以上のようにして、画像送信装置11から画像受信装置13に動画データが送信される。なお、画像受信装置13のビデオ出力部157は、ステップS14の処理により記憶部156に記憶された動画データを、所定のタイミングで読み出し、表示用の画像信号に変換して、表示装置14に出力する。表示装置14は、ビデオ出力部157から出力された画像信号に対応する画像を表示する。
【0062】
なお、上述したステップS1乃至ステップS3の処理は、説明の便宜上、ステップS3の処理が終了後、ステップS1の処理が再度実行されるようになされているが、実際には、ステップS3の処理が終了してから、ステップS1の処理に戻るとは限らない。例えば、ステップS1において、エンコーダ104は、符号化データをデータパケット生成部105に供給した後、ステップS2およびステップS3の処理の完了を待たずに、次の動画データの符号化を実行し、データパケット生成部105は、生成したデータパケットをデータパケット送信部106に供給した後、ステップS3の処理の完了を待たずに、次の符号化データのパケット化を実行する。
【0063】
また、上述したステップS11乃至ステップS14の処理は、説明の便宜上、ステップS14の処理が終了した後(または、ステップS12でNOの場合)、ステップS11の処理が再度実行されるようになされているが、実際には、ステップS14の処理が終了する前に(または、ステップS12でNOの場合)、次のステップS11以降の処理が実行されることもあり得る。例えば、ステップS11において、データパケット受信部153は、データパケットを受信し、データ再構成部154に、受信したデータパケットを供給した後、ステップS12乃至ステップS14の処理の完了を待たずに、次のデータパケットを受信することも可能である。
【0064】
ところで、本発明においては、画像受信装置13から画像送信装置11に、フィードバックパケットが送信され、このフィードバックパケットに基づいて、データパケットの送信レートが制御される。
【0065】
そこで、次に、図6のフローチャートを参照して、画像受信装置13のフィードバックパケット送信処理、すなわち、画像受信装置13が、フィードバックパケットを作成し、画像送信装置11に送信する処理について説明する。
【0066】
画像受信装置13は、現在時刻を取得するために、図示せぬ内部時計を内蔵しており、図6のステップS101において、状態測定部158は、内部時計より現在時刻tを取得し、これを、基準時刻TMRとして記憶する。基準時刻TMRは、一定時間の経過を測定するための変数である。ステップS101の処理の後、処理はステップS102に進む。
【0067】
ステップS102において、状態測定部158は、データパケット受信部153から、パケットヘッダに含まれている情報(データパケットの送信時刻およびシーケンス番号を含む)、および受信時刻情報が供給されたか否かを判定することにより、データパケットを受信したか否かを判定し、パケットヘッダに含まれている情報、および受信時刻情報が供給されていない場合、データパケットを受信していなと判定し、ステップS102の処理を繰り返し実行する。そして、データパケット受信部153から、パケットヘッダに含まれている情報、および受信時刻情報が供給された場合、状態測定部158は、データパケットを受信したと判定し、処理はステップS103に進む。
【0068】
ステップS103において、状態測定部158は、データパケット受信部153から供給されたパケットヘッダに含まれている情報から、データパケットのシーケンス番号を抽出する。ステップS103の処理の後、処理はステップS104に進む。
【0069】
ステップS104において、状態測定部158は、ステップS103で抽出したシーケンス番号が、その直前に受信したデータパケットのシーケンス番号と連続しているか否かを判定することにより、パケットロスの有無を判定し、パケットロスが発生していた場合、処理はステップS105に進む。
【0070】
ステップS105において、状態測定部158は、損失パケット番号、損失したパケットの直前に最後に受信したデータパケットのシーケンス番号と受信時刻、および損失後に始めて受信したデータパケットのシーケンス番号と受信時刻を、ロス率算出部160に供給する。ロス率算出部160は、状態測定部158から供給されたこれらの情報に基づいて、パケットロス率を算出し、算出したパケットロス率を、状態測定部158に供給する。なお、パケットロス率の算出方法は、TFRCで規定された算出方法に従う。その後、処理はステップS106に進む。
【0071】
ステップS106において、状態測定部158は、ステップS102で受信したと判定したデータパケットの送信時刻および受信時刻を、RTT算出部159に供給する。RTT算出部159は、状態測定部158から供給された送信時刻および受信時刻に基づいて、RTTを算出し、算出したRTTを状態測定部158に供給する。
【0072】
なお、RTT算出部159は、例えば、データパケットの送信時刻および受信時刻から、以下の式により片道遅延時間(RTT/2)を計算し、その結果を2倍してRTTを算出する。
【0073】
片道遅延時間(RTT/2)=(受信時刻)−(送信時刻) (1)
【0074】
なお、この処理は、画像送信装置11と画像受信装置13の内部時計が同期していることが前提となる。内部時計の同期方法の説明は省略するが、インターネットで一般的に用いられているNTP(Network Time Protocol)あるいはNTPに代わる独自プロトコルを用いて、内部時計は同期させることができる。
【0075】
ステップS107において、状態測定部158は、ステップS105で算出されたパケットロス率、およびステップS106で算出されたRTTを、フィードバックパケット生成部161に供給する。フィードバックパケット生成部161は、状態測定部158から供給されたパケットロス率とRTTを情報として含むフィードバックパケットを生成し、フィードバックパケット送信部162に供給する。ステップS107の処理の後、処理はステップS111に進む。
【0076】
ステップS104に戻って、状態測定部158が、パケットロスは発生していないと判定した場合、処理はステップS108に進む。
【0077】
ステップS108において、状態測定部158は、ステップS102で受信したと判定したデータパケットの送信時刻および受信時刻を、RTT算出部159に供給する。RTT算出部159は、状態測定部158から供給された送信時刻および受信時刻に基づいて、RTTを算出し、算出したRTTを状態測定部158に供給する。その後、処理はステップS109に進む。
【0078】
ステップS109において、状態測定部158は、ステップS101で基準時刻TMRを設定してから、RTTより長い時間が経過したか否かを判定する。すなわち、状態測定部158は、まず、ステップS101で記憶しておいたTMRを読み出すとともに、内部時計より現在時刻tを取得し、(t−TMR)を算出する。そして、状態測定部158は、(t−TMR)とステップS108で算出されたRTTを比較する式(2)が成り立つか否かを判定する。
【0079】
RTT<(t−TMR) (2)
【0080】
そして、式(2)が成立しない場合、すなわち、ステップS101で基準時刻TMRを設定してから経過した時間が、RTT以下であると判定した場合、処理はステップS102に戻り、上述したステップS102以降の処理がくり返し実行される。
【0081】
ステップS109において、状態測定部158が、式(2)は成立する、なわち、ステップS101で基準時刻TMRを設定してから経過した時間が、RTTより長いと判定した場合、処理はステップS110に進む。
【0082】
ステップS110において、状態測定部158は、ステップS108で算出されたRTTを、フィードバックパケット生成部161に供給する。フィードバックパケット生成部161は、状態測定部158から供給されたRTTを情報として含むフィードバックパケットを生成し、フィードバックパケット送信部162に供給する。ステップS110の処理の後、処理はステップS111に進む。
【0083】
ステップS111において、フィードバックパケット送信部162は、フィードバックパケット生成部161から供給されたフィードバックパケットを、ネットワーク10を介して、画像送信装置11に送信する。その後、処理はステップS101に戻り、上述したステップS101以降の処理がくり返し実行される。なお、ステップS111の処理の後、再び実行されるステップS101の処理においては、状態測定部158は、既に記憶されているTMRを消去し、新たに現在時刻を取得して、これをTMRとして記憶する。
【0084】
以上のようにして、画像受信装置13のフィードバックパケット送信処理が実行される。
【0085】
画像送信装置11は、画像受信装置13から受信したフィードバックパケットに基づいて、データパケットの送信レートを制御する。
【0086】
次に、図7のフローチャートを参照して、画像送信装置11のレート制御処理、すなわち、データパケットの送信レートの制御について説明する。
【0087】
図7のステップS151において、画像送信装置11のレート設定部122は、フィードバックパケット受信部107からフィードバックパケットが供給されたか否かを判定することにより、フィードバックパケットが受信されたか否かを判定し、フィードバックパケット受信部107からフィードバックパケットが供給されるまで(フィードバックパケットが受信されるまで)、ステップS151の処理を繰り返して、待機する。そして、フィードバックパケット受信部107からフィードバックパケットが供給されたとき、レート設定部122は、フィードバックパケットを受信したと判定し、処理はステップS152に進む。
【0088】
ステップS152において、レート設定部122は、受信したフィードバックパケットから、パケットロス率とRTTを読み出し、読み出したパケットロス率とRTTを、送信可能レート算出部121に供給する。送信可能レート算出部121は、レート設定部122から供給されたパケットロス率とRTTをもとに、送信可能レートTを式(3)により算出する。
【0089】
【数1】
Figure 2004215199
【0090】
式(3)において、Tは送信可能レート(理想的な送信レート)、sはパケットサイズ、pはパケットロス率、tはTCPのタイムアウト時間(通常は、RTTの4倍)である。送信可能レート算出部121は、式(3)により、送信可能レートTを算出した後、算出した送信可能レートTを、レート設定部122に通知する。その後、処理はステップS153に進む。
【0091】
ステップS153において、レート設定部122は、送信レート変更処理を実行する。図8のフローチャートを参照して、図7のステップS153の送信レート変更処理について詳細に説明する。なお、以下の説明において、実際に設定する送信レートの設定値を設定値Xとする。画像送信装置11は、送信レートが設定値Xになるように、パケットを送信する。
【0092】
動画データの実時間ストリーミングを行なう場合、通常、送信する動画データの最低画質と最高画質を予め設定する。従って、設定可能な送信レートにも上限値Rmaxと下限値Rminが設定される。なお、勿論、Rmax>Rminである。
【0093】
例えば、最高画質時のフレームのサイズが、縦×横=1000×1000ピクセル、フレームレートが30fps、1画素当りのデータ量が1ビットであるとすると、設定可能な送信レートの上限値Rmaxは、式(4)のようになる。
【0094】
Rmax=(1000×1000)×30×1=30Mbps (4)
【0095】
また、最低画質時のフレームのサイズが、縦×横=1000×1000ピクセル、フレームレートが5fps、1画素当りのデータ量が0.5ビットであるとすると、設定可能な送信レートの下限値Rminは、式(5)のようになる。
【0096】
Rmin=(1000×1000)×5×0.5=2.5Mbps (5)
【0097】
そこで、レート設定部122は、設定可能な送信レートの上限値Rmax、および下限値Rminを予め内部に記憶しており、ステップS201において、送信可能レート算出部121から供給された送信可能レートTが、下限値Rminより小さいか否かを判定し、送信可能レート算出部121から供給された送信可能レートTが、下限値Rminより小さい場合、処理はステップS202に進む。
【0098】
ステップS202において、レート設定部122は、送信レートXをX=Rminに設定する。ステップS202の処理を実行後、送信レート変更処理が終了する。
【0099】
ステップS201において、レート設定部122が、送信可能レート算出部121から供給された送信可能レートTが、下限値Rminより小さくない(送信可能レート算出部121から供給された送信可能レートTは、下限値Rmin以上である)と判定した場合、処理はステップS203に進む。
【0100】
ステップS203において、レート設定部122は、送信可能レート算出部121から供給された送信可能レートTは、上限値Rmaxより大きいか否かを判定し、送信可能レート算出部121から供給された送信可能レートTが、上限値Rmaxより大きい場合、処理はステップS204に進む。
【0101】
ステップS204において、レート設定部122は、送信レートXをX=Rmaxに設定する。ステップS204の処理を実行後、送信レート変更処理が終了する。
【0102】
ステップS203において、レート設定部122が、送信可能レート算出部121から供給された送信可能レートTは、上限値Rmaxより大きくない(送信可能レート算出部121から供給された送信可能レートTは、上限値Rmax以下である)と判定した場合、処理はステップS205に進む。
【0103】
ステップS205において、現在設定されている送信レートXが、送信可能レートTより大きいか否かを判定し、現在設定されている送信レートXが、送信可能レートTより大きい場合、処理はステップS206に進む。
【0104】
ステップS206において、レート設定部122は、送信レートXを送信可能レートT以下の値に減少させる。ステップS206の処理を実行後、送信レート変更処理が終了する。
【0105】
ステップS205において、レート設定部122が、現在設定されている送信レートXが、送信可能レートTより大きくない(現在設定されている送信レートXは送信可能レートT以下である)と判定した場合、処理はステップS207に進む。
【0106】
ステップS207において、レート設定部122は、現在設定されている送信レートXが、送信可能レートTより小さいか否かを判定し、現在設定されている送信レートXが、送信可能レートTより小さい場合、処理はステップS208に進む。
【0107】
ステップS208において、レート設定部122は、送信レートXを送信可能レートT以下の範囲で、増加させる。ステップS208の処理を実行後、送信レート変更処理が終了する。
【0108】
ステップS207において、レート設定部122が、現在設定されている送信レートXが、送信可能レートTより小さくない(現在設定されている送信レートXは、送信可能レートT以上である)と判定した場合、送信レート変更処理が終了する。
【0109】
以上のようにして、ステップS153の送信レート変更処理が実行される。図7に戻って、ステップS153の送信レート変更処理が実行された後、処理はステップS151に戻り、ステップS151以降の処理が繰り返し実行される。
【0110】
図9は、図7の送信レート設定処理により設定される送信レートの経時変化を表している。
【0111】
図9において、縦軸は送信レートを表し、横軸は時間を表している。また、図中、送信可能レートTが、点線で表され、設定された送信レートXが、実線で表されている。さらに、設定可能な送信レートの上限値Rmaxおよび下限値Rminが、1点鎖線で示されている。
【0112】
図9において、時刻t0乃至t1の間は、送信可能レートTが、下限値Rminを下回っている。このとき、図8のステップS201でYESと判定され、ステップS202で送信レートXはX=Rminと設定されるため、図9において、送信レートXは、Rminとなっている。
【0113】
また、図9において、時刻t1乃至t2の間は、送信可能レートTは、下限値Rminと上限値Rmaxの間にあり、X<Tである。従って、図8のステップS201でNOと判定され、ステップS203でNOと判定され、ステップS205でNOと判定され、ステップS207でYESと判定され、ステップS208で送信レートXが、送信可能レートT以下の範囲で増加される。図9において、時刻t3乃至t4の間、時刻t5乃至t6の間、および時刻t7以降も時刻t1乃至t2の間と同様の処理により、送信レートXは、送信可能レートT以下の範囲で増加される。
【0114】
また、図9において、時刻t2乃至t3の間は、送信可能レートTは、上限値Rmaxを上回っている。従って、図8のステップS201でNOと判定され、ステップS203でYESと判定され、ステップS204で、送信レートXは、X=Rmaxに設定される。図9において、時刻t4乃至t5の間、時刻t6乃至t7の間も時刻t2乃至t3の間と同様の処理により、送信レートXは、上限値Rmaxに設定される。
【0115】
また、図9の時刻t3において、送信可能レートTは、上限値Rmaxより大きい値から、Rmaxより小さい値に減少している。このとき、図8のステップS201でNOと判定され、ステップS203でNOと判定され、ステップS205でYESと判定され、ステップS206で、送信レートXは、送信可能レートT以下の値に減少させられる。図9において、時刻t5および時刻t7においても、時刻t3と同様の処理により、送信レートXは、送信可能レートT以下の値に設定される。
【0116】
ところで、画像送信装置11は、図7に示したような送信レート設定処理により送信レートを設定することもできるが、図7以外の送信レート設定処理により送信レートを設定することもできる。次に、図10のフローチャートを参照して、図7とは異なる送信レート設定処理について説明する。
【0117】
図10のステップS251において、レート設定部122は、0または1に設定可能なステイタスを0に設定して記憶する。その後、処理はステップS252に進む。
【0118】
ステップS252において、レート設定部122は、フィードバックパケット受信部107を監視し、フィードバックパケットを受信したか否かを判定し、フィードバックパケットを受信するまで、ステップS252の処理を繰り返し実行して待機する。そして、フィードバックパケットを受信したとき、処理はステップS253に進む。
【0119】
レート設定部122は、設定可能な送信レートの上限値Rmaxより大きな値の閾値THを予め記憶しており、ステップS253において、現在記憶している送信可能レートTが閾値THより大きいか否かを判定し、現在記憶している送信可能レートTが閾値THより大きくない場合(現在記憶している送信可能レートTが閾値TH以下である場合)、処理はステップS254に進む。なお、送信レート設定処理を開始当初、レート設定部122は、送信可能レートTを記憶していないので、ステップS253において、NOと判定し、処理はステップS254に進む。
【0120】
ステップS254において、レート設定部122は、受信したフィードバックパケットから、パケットロス率とRTTを読み出し、読み出したパケットロス率とRTTを、送信可能レート算出部121に供給する。送信可能レート算出部121は、レート設定部122から供給されたパケットロス率とRTTをもとに、送信可能レートTを式(3)により算出する。送信可能レート算出部121は、式(3)により、送信可能レートTを算出した後、算出した送信可能レートTを、レート設定部122に通知する。レート設定部122は、送信可能レート算出部121から通知された送信可能レートTを記憶する。なお、以前算出された送信可能レートTが既に記憶されていた場合、レート設定部122は、それを消去し、新たに算出された送信可能レートTを記憶する。その後、処理はステップS255に進む。
【0121】
ステップS255において、レート設定部122は、送信レート変更処理を実行する。ステップS255の送信レート変更処理は、図8で説明した送信レート変更処理と同様であるので、説明を省略する。
【0122】
ステップS255の送信レート変更処理の後、処理はステップS256に進む。
【0123】
ステップS256において、レート設定部122は、ステイタスを0に設定して記憶する。なお、既に0に設定されていた場合、レート設定部122は、そのままのステイタスを保つ。ステップS256の処理の後、処理はステップS252に戻り、ステップS252以降の処理を繰り返し実行する。
【0124】
ステップS253において、レート設定部122が、現在記憶している送信可能レートTは、閾値THより大きいと判定した場合、処理はステップS257に進む。
【0125】
ステップS257において、レート設定部122は、受信したフィードバックパケットにパケットロス率が含まれているか否かを判定することにより、フィードバックパケットは、パケットロスの通知であるか否かを判定し、フィードバックパケットにパケットロス率が含まれていた場合(パケットロスの通知であった場合)、処理はステップS258に進む。
【0126】
ステップS258において、レート設定部122は、ステイタスが0か否かを判定し、ステイタスが0ではない場合(ステイタスが1の場合)、処理はステップS254に進み、上述したステップS254以降の処理を繰り返し実行する。
【0127】
ステップS258において、レート設定部122が、ステイタスが0であると判定した場合、処理はステップS259に進む。
【0128】
ステップS259において、レート設定部122は、ステイタスを1に設定して記憶する。その後、処理はステップS252に戻り、上述したステップS252以降の処理を繰り返し実行する。
【0129】
ステップS257において、レート設定部122が、受信したフィードバックパケットにパケットロス率が含まれていないと判定した場合(パケットロスの通知ではないと判定した場合)、処理はステップS260に進む。
【0130】
ステップS260において、レート設定部122は、ステイタスを0に設定して記憶する。その後、処理はステップS252に戻り、上述したステップS252以降の処理を繰り返し実行する。
【0131】
以上の処理により、送信可能レートTが、閾値THより大きい値である場合、連続的にパケットロスが発生したときのみ、送信レートを減少させることが可能となる。
【0132】
すなわち、連続的にパケットロスが発生した場合、以下のようになる。まず、1回目のパケットロスが発生すると、画像受信装置13から画像送信装置11に、パケットロス率を含むフィードバックパケットが受信される。そこで、レート設定部122は、ステップS252でYESと判定し、ステップS253でYESと判定し、ステップS257でYESと判定し、ステップS259でステイタスを1に設定する。その後、連続的に2回目のパケットロスが発生した場合、画像受信装置13から送信されるフィードバックパケットにはパケットロス率が含まれている。従って、このフィードバックパケットを受信した場合、レート設定部122は、ステップS252でYESと判定し、ステップS253でYESと判定し、ステップS257でYESと判定し、ステップS258でNOと判定し、ステップS254で送信可能レートTを算出し、ステップS255で送信レート変更処理を実行し、ステップS256でステイタスを0に戻す。
【0133】
これに対して、非連続で1回だけパケットロスが発生したとき、画像受信装置13から画像送信装置11に、パケットロス率を含むフィードバックパケットが受信される。そこで、レート設定部122は、ステップS252でYESと判定し、ステップS253でYESと判定し、ステップS257でYESと判定し、ステップS259でステイタスを1に設定する。非連続で1回だけパケットロスが発生した場合、次に画像受信装置13から送信されるフィードバックパケットにはパケットロス率は含まれていない。従って、このフィードバックパケットを受信した場合、レート設定部122は、ステップS252でYESと判定し、ステップS253でYESと判定し、ステップS257でNOと判定し、ステップS260で、ステイタスを0に設定する。
【0134】
以上のような処理により、連続的にパケットロスの通知があった場合のみ、送信レート変更処理が実行され、非連続でパケットロスの通知があっても、送信レート変更処理は実行されない。これにより、パケットロスが発生した場合、必要以上の送信レートの低下を防止することが可能となる。結果的に、より効率的に、データの送信を行なうことが可能となる。
【0135】
図11は、図10の送信レート設定処理により設定される送信レートの経時変化を表している。
【0136】
図11において、縦軸は送信レートを表し、横軸は時間を表している。また、図中、送信可能レートTが、点線で表され、設定された送信レートXが、実線で表されている。さらに、設定可能な送信レートの上限値Rmaxおよび下限値Rmin、並びに閾値THが1点鎖線で示されている。
【0137】
図11において、時刻t0乃至t1の間は、送信可能レートTが、下限値Rminを下回っている。このとき、画像受信装置13から画像送信装置11にフィードバックパケットが受信されると、図10のステップS253でNOと判定され、ステップS254で送信可能レートTが算出され、ステップS255の処理の中において、図8のステップS201でYESと判定され、ステップS202で送信レートXはX=Rminと設定されるため、図11において、送信レートXは、Rminとなっている。
【0138】
図11において、時刻t1乃至t2の間は、送信可能レートTは、下限値Rminと上限値Rmaxの間にあり、X<Tである。従って、画像受信装置13から画像送信装置11にフィードバックパケットが受信されると、図10のステップS253でNOと判定され、ステップS254で送信可能レートTが算出され、ステップS255の処理の中において、図8のステップS201でNOと判定され、ステップS203でNOと判定され、ステップS205でNOと判定され、ステップS207でYESと判定され、ステップS208で送信レートXが、送信可能レートT以下の範囲で増加される。
【0139】
図11において、時刻t2乃至t3の間は、送信可能レートTは、上限値Rmaxと閾値THの間にある。従って、画像受信装置13から画像送信装置11にフィードバックパケットが受信されると、図10のステップS253でNOと判定され、ステップS254で送信可能レートTが算出され、ステップS255の処理の中において、図8のステップS201でNOと判定され、ステップS203でYESと判定され、ステップS204で、送信レートXがX=Rmaxに設定される。
【0140】
図11において、時刻t3乃至t8の間は、送信可能レートTは、閾値THより大きい。従って、図10のステップS253で、YESと判定されるため、送信可能レートTは更新されない。また、図11の時刻t4、および時刻t5に、それぞれ、1回パケットロスが発生しているが、このとき送信レートの変更は行われない。これに対して、時刻t6およびt7で、連続的にパケットロスの通知が受信された場合、送信可能レートTが再計算され、送信レートXが送信可能レートT以下になるように設定される。
【0141】
ところで、図10の送信レート設定処理においては、閾値THを1つだけ設けて、閾値THに基づいて、送信レートを設定していたが、閾値を2つ設定して、送信レートを設定するようにすることもできる。
【0142】
次に、図12のフローチャートを参照して、閾値を2つ設定した場合の送信レート設定処理について説明する。なお、以下の説明において、2つの閾値のうち1つ目の閾値TH1を、設定可能な送信レートの上限値Rmaxより大きい値とし、もう1つの閾値TH2を、上限値Rmaxと下限値Rminの間の値とする。レート設定部122は、予め、これら閾値TH1および閾値TH2を記憶している。
【0143】
図12のステップS301において、レート設定部122は、フィードバックパケット受信部107を監視し、フィードバックパケットを受信したか否かを判定し、フィードバックパケットを受信するまで、ステップS301の処理を繰り返し実行して待機する。そして、フィードバックパケットを受信したとき、処理はステップS302に進む。
【0144】
ステップS302において、レート設定部122は、受信したフィードバックパケットから、パケットロス率とRTTを読み出し、読み出したパケットロス率とRTTを、送信可能レート算出部121に供給する。送信可能レート算出部121は、レート設定部122から供給されたパケットロス率とRTTをもとに、送信可能レートTを式(3)により算出する。送信可能レート算出部121は、式(3)により、送信可能レートTを算出した後、算出した送信可能レートTを、レート設定部122に通知する。レート設定部122は、通知された送信可能レートTを記憶する。
【0145】
なお、図12の送信レート設定処理を開始当初、レート設定部122は、送信可能レートTを記憶していないが、一旦、送信可能レートが算出されると、レート設定部122は、算出された送信可能レートTを記憶する。レート設定部122は、送信可能レートを記憶する2つの領域を備えており、1つ目の領域には、送信レートXの設定の基準として採用されている送信可能レートTが記憶され、2つ目の領域には、ステップS302で算出された直後の送信可能レートTが記憶される。以下の説明において、上記の1つ目の領域に記憶される送信可能レートを送信可能レートTと区別するために、2つ目の領域に記憶される送信可能レートを送信可能レートTnと称する。
【0146】
図12の送信レート設定処理の開始当初、上記の2つの領域には、ステップS302で算出された送信レートが記憶される(2つの領域には同じ値が記憶される)。そして、次回、ステップS302により送信可能レートTnが算出された場合、レート設定部122は、1つ目の領域に既に記憶されている送信可能レートTはそのまま保持し、新たに算出された送信可能レートTnを2つ目の領域に記憶する。
【0147】
ステップS302の処理の後、処理はステップS303に進む。
【0148】
ステップS303において、レート設定部122は、送信可能レートTが閾値TH1より大きいか否かを判定し、送信可能レートTが閾値TH1より大きい場合、処理はステップS304に進む。
【0149】
ステップS304において、レート設定部122は、送信可能レートTnが閾値TH2より大きいか否かを判定し、送信可能レートTnが閾値TH2より大きい場合、処理はステップS301に戻り、上述したステップS301以降の処理が繰り返し実行される。従って、この場合、送信レートは変更されない。
【0150】
ステップS304において、レート設定部122が、送信可能レートTnは閾値TH2より大きくないと判定した場合(送信可能レートTnが閾値TH2以下であると判定した場合)、処理はステップS305に進む。
【0151】
ステップS303において、レート設定部122が、送信可能レートTが閾値TH1より大きくない(送信可能レートTは閾値TH1以下である)と判定した場合、処理はステップS305に進む。
【0152】
ステップS305において、レート設定部122は、ステップS302で算出された送信可能レートTnを、送信可能レートTとして設定する。すなわち、レート設定部122は、2つ目の領域に記憶されている送信可能レートTnの値を、1つ目の領域に送信可能レートTとして記憶させる。その後、処理はステップS306に進む。
【0153】
ステップS306において、レート設定部122は、送信レート変更処理を実行する。ステップS306の送信レート変更処理の詳細は、図8のフローチャートを参照して説明した通りである。なお、レート設定部122は、1つ目の領域に記憶された送信可能レートTを利用して、図8のフローチャートの処理を実行する。ステップS306の送信レート変更処理の後、処理はステップS301に戻り、上述したステップS301以降の処理が繰り返し実行される。
【0154】
以上のようにして、送信レート設定処理が実行される。
【0155】
図12の送信レート設定処理においては、送信レートXの設定の基準として採用されている送信可能レートTが閾値TH1以下の場合、および送信可能レートTが閾値TH1より大きく、かつ、算出された送信可能レートTnが閾値TH2以下の場合、送信レート変更処理が実行され、送信可能レートTが閾値TH1よりも大きく、かつ、算出された送信可能レートTnが閾値TH2よりも大きい場合、送信レート変更処理を実行しない。
【0156】
以上のように、送信レートXの設定の基準として採用されている送信可能レートTが、閾値TH1よりも大きく、かつ、算出された送信可能レートTnが、閾値TH2よりも大きい場合、送信レートの変更を行なわないようにすることにより、パケットロスが発生した場合、必要以上に送信レートを低下させることを防止することができる。
【0157】
図13は、図12の送信レート設定処理により設定される送信レートの経時変化を表している。
【0158】
図13の時刻t0乃至t1の間において、送信可能レートTは、下限値Rminを下回っている。従って、送信レートXはX=Rminと設定される。
【0159】
図13の時刻t1乃至t2の間において、送信可能レートTは、下限値Rminと上限値Rmaxの間にあり、送信レートXが、送信可能レートT以下の範囲で増加される。
【0160】
図13の時刻t2乃至t7の間において、送信可能レートTは、上限値Rmaxを上回っている。従って、送信レートXがX=Rmaxに設定される。
【0161】
また、図13の時刻t3乃至t7の間において、送信可能レートTは、閾値TH1を上回っている。従って、時刻t4、t5、およびt6においてパケットロスが発生した場合、送信可能レートTnが算出され、閾値TH2と比較される。
その結果、時刻t4およびt5においては、図13に点線の矢印で図示されているように、送信可能レートTnが閾値TH2より大きい値であるため、送信可能レートTは新しい値に更新されないが、時刻t6においては、図13の点線の矢印で示されているように、送信可能レートTnが閾値TH2より小さい値であるため、送信可能レートTが更新され、更新された送信可能レートに従って、送信レートXの値も更新される。
【0162】
以上のように、本発明によれば、偶発したパケットロスに対しては、送信レートを低下させないようにすることができる。そのため、より効率的に、データを通信することが可能となる。従って、例えば、動画のストリーミングなどにおいて、送信する動画の画質が急激に低下することを防止することが可能となる。
【0163】
なお、以上の説明においては、撮像装置12で撮像された動画を、画像送信装置11から画像受信装置12に送信する場合を例にして説明したが、画像送信装置11から画像受信装置12に送信する動画は、予め記録媒体に記録されていても良い。
【0164】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【0165】
図14は、このような処理を実行するパーソナルコンピュータ400の内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)401は、ROM(Read Only Memory)402に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)403には、CPU401が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース405は、キーボードやマウスから構成される入力部406が接続され、入力部406に入力された信号をCPU401に出力する。また、入出力インタフェース405には、ディスプレイやスピーカなどから構成される出力部407も接続されている。
【0166】
さらに、入出力インタフェース405には、ハードディスクなどから構成される記憶部408、および、インターネットなどのネットワーク10を介して他の装置とデータの通信を行う通信部409も接続されている。ドライブ410は、磁気ディスク421、光ディスク422、光磁気ディスク423、半導体メモリ424などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【0167】
記録媒体は、図14に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク421(フレキシブルディスクを含む)、光ディスク422(CD−ROM(Compact Disc−Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク423(MD(Mini−Disc)(登録商標)を含む)、若しくは半導体メモリ424などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM402や記憶部408が含まれるハードディスクなどで構成される。
【0168】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0169】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0170】
【発明の効果】
以上のように、第1の本発明によれば、ネットワークを介して、情報を送信することができる。また、第1の本発明によれば、送信レートを減少させるタイミングを、より適切にコントロールし、必要以上の送信レートの低下を防ぐことができる。その結果、ストリーミング中の画像の画質が、急激に低下することを防ぐことが可能となる。
【0171】
第2の本発明によれば、ネットワークを介して、情報を送信することができる。また、第2の本発明によれば、送信レートを減少させるタイミングを、より適切にコントロールし、必要以上の送信レートの低下を防ぐことができる。その結果、ストリーミング中の画像の画質が、急激に低下することを防ぐことが可能となる。
【図面の簡単な説明】
【図1】従来のパケット通信における送信レートの制御を説明するための図である。
【図2】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図3】画像送信装置の構成例を示すブロック図である。
【図4】画像受信装置の構成例を示すブロック図である。
【図5】画像送信装置の画像送信処理、および画像受信装置の画像受信処理を説明するフローチャートである。
【図6】画像受信装置のフィードバックパケット送信処理を説明するフローチャートである。
【図7】画像送信装置の送信レート設定処理を説明するフローチャートである。
【図8】図7のステップS153、図10のステップS255、および図12のステップS306の処理を詳細に説明するフローチャートである。
【図9】図7のフローチャートの送信レート設定処理による送信レートの制御を説明するための図である。
【図10】画像送信装置の送信レート設定処理を説明する他のフローチャートである。
【図11】図10のフローチャートの送信レート設定処理による送信レートの制御を説明するための図である。
【図12】画像送信装置の送信レート設定処理を説明するさらに他のフローチャートである。
【図13】図12のフローチャートの送信レート設定処理による送信レートの制御を説明するための図である。
【図14】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
10 ネットワーク, 11 画像送信装置, 12 撮像装置, 13 画像受信装置, 14 表示装置, 101 操作部, 102 制御部, 103 映像入力部, 104 エンコーダ, 105 データパケット生成部, 106 データパケット送信部, 107 フィードバックパケット受信部, 108 レート制御部, 121 送信可能レート算出部, 122 レート設定部, 151 操作部, 152 制御部, 153 データパケット受信部, 154 データ再構成部, 155 デコーダ, 156 記憶部, 157 ビデオ出力部, 158 状態測定部, 159 RTT算出部, 160 ロス率算出部, 161 フィードバックパケット生成部, 162 フィードバックパケット送信部, 401 CPU, 421 磁気ディスク, 422 光ディスク, 423 光磁気ディスク, 424 半導体メモリ

Claims (8)

  1. 他の情報処理装置との間でパケット通信を行なう情報処理装置において、
    送信可能レートを算出する算出手段と、
    前記算出手段により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信手段と、
    前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出手段に前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出手段に前記送信可能レートを再計算させないように制御する制御手段とを備えることを特徴とする情報処理装置。
  2. 他の情報処理装置との間でパケット通信を行なう情報処理装置の情報処理方法において、
    送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信ステップと、
    前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップとを含むことを特徴とする情報処理方法。
  3. 他の情報処理装置との間でパケット通信を行なう情報処理装置用のプログラムであって、送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
    前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップとを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  4. 他の情報処理装置との間でパケット通信を行なう情報処理装置を制御するコンピュータに、
    送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
    前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップとを実行させることを特徴とするプログラム。
  5. 他の情報処理装置とパケット通信を行なう情報処理装置において、
    送信可能レートを算出する算出手段と、
    前記算出手段により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信手段と、
    現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出手段に前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御手段とを備えることを特徴とする情報処理装置。
  6. 他の情報処理装置とパケット通信を行なう情報処理装置の情報処理方法において、
    送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信ステップと、
    現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップとを含むことを特徴とする情報処理方法。
  7. 他の情報処理装置とパケット通信を行なう情報処理装置用のプログラムであって、
    送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
    現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップとを含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  8. 他の情報処理装置とパケット通信を行なう情報処理装置を制御するコンピュータに、
    送信可能レートを算出する算出ステップと、
    前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
    現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップとを実行させることを特徴とするプログラム。
JP2003002773A 2003-01-09 2003-01-09 情報処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP4140000B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003002773A JP4140000B2 (ja) 2003-01-09 2003-01-09 情報処理装置および方法、記録媒体、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003002773A JP4140000B2 (ja) 2003-01-09 2003-01-09 情報処理装置および方法、記録媒体、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2004215199A true JP2004215199A (ja) 2004-07-29
JP4140000B2 JP4140000B2 (ja) 2008-08-27

Family

ID=32820412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003002773A Expired - Fee Related JP4140000B2 (ja) 2003-01-09 2003-01-09 情報処理装置および方法、記録媒体、並びにプログラム

Country Status (1)

Country Link
JP (1) JP4140000B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319696A (ja) * 2005-05-13 2006-11-24 Sony Corp 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
JP2007097099A (ja) * 2005-09-30 2007-04-12 Hitachi Kokusai Electric Inc データ伝送装置
JP2010147713A (ja) * 2008-12-17 2010-07-01 Sony Corp 通信システム、通信方法、通信装置、およびプログラム
JP2011151571A (ja) * 2010-01-21 2011-08-04 Nec Corp 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
JP2012100264A (ja) * 2010-10-29 2012-05-24 Samsung Sds Co Ltd データ送信方法及び装置
CN103004154A (zh) * 2011-06-16 2013-03-27 松下电器产业株式会社 发送装置、发送方法、集成电路及其程序
WO2014115293A1 (ja) * 2013-01-25 2014-07-31 富士通株式会社 情報処理装置、情報処理方法及び情報処理システム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4742669B2 (ja) * 2005-05-13 2011-08-10 ソニー株式会社 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
US8422369B2 (en) 2005-05-13 2013-04-16 Sony Corporation Transmission and reception system, transmitter, transmission method, receiver, reception method, and program
JP2006319696A (ja) * 2005-05-13 2006-11-24 Sony Corp 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
JP2007097099A (ja) * 2005-09-30 2007-04-12 Hitachi Kokusai Electric Inc データ伝送装置
JP4702443B2 (ja) * 2008-12-17 2011-06-15 ソニー株式会社 通信システム、通信方法、通信装置、およびプログラム
US8270312B2 (en) 2008-12-17 2012-09-18 Sony Corporation Communication system, communication method, communication device, and program
JP2010147713A (ja) * 2008-12-17 2010-07-01 Sony Corp 通信システム、通信方法、通信装置、およびプログラム
JP2011151571A (ja) * 2010-01-21 2011-08-04 Nec Corp 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
JP2012100264A (ja) * 2010-10-29 2012-05-24 Samsung Sds Co Ltd データ送信方法及び装置
US8848736B2 (en) 2010-10-29 2014-09-30 Samsung Sds Co., Ltd. Method and apparatus for transmitting data
CN103004154A (zh) * 2011-06-16 2013-03-27 松下电器产业株式会社 发送装置、发送方法、集成电路及其程序
US8804803B2 (en) 2011-06-16 2014-08-12 Panasonic Corporation Transmitting device, transmitting method, integrated circuit, and program
CN103004154B (zh) * 2011-06-16 2015-12-02 松下电器产业株式会社 发送装置、发送方法、集成电路
WO2014115293A1 (ja) * 2013-01-25 2014-07-31 富士通株式会社 情報処理装置、情報処理方法及び情報処理システム

Also Published As

Publication number Publication date
JP4140000B2 (ja) 2008-08-27

Similar Documents

Publication Publication Date Title
US8711929B2 (en) Network-based dynamic encoding
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
US8675728B2 (en) Transmitting apparatus and method, and receiving apparatus and method
EP1622385A1 (en) Media transrating over a bandwidth-limited network
US20110123170A1 (en) Information processing apparatus and method
JP2015536594A (ja) 積極的なビデオフレームドロップ
CN105429983B (zh) 采集媒体数据的方法、媒体终端及音乐教学系统
JP2009284500A (ja) 画像伝送装置
JP2017069849A (ja) 映像制御装置、映像配信システムおよび映像制御方法
KR20230002784A (ko) 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버
JP4140000B2 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP4430596B2 (ja) 画像データ送受信システムの受信側装置及びそのプログラムを記憶した記憶媒体
JP2005322995A (ja) リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
JP2005086362A (ja) データ多重化方法、データ送信方法およびデータ受信方法
JP4586328B2 (ja) 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP5440839B2 (ja) 情報処理装置および方法、並びにプログラム
JP2008244957A (ja) 動画圧縮装置およびその動作制御方法
JP2004215201A (ja) 情報処理装置および情報処理方法、データ通信システム、記録媒体、並びにプログラム
JP2004266756A (ja) 送信制御装置および方法、記録媒体、並びにプログラム
JP2010171725A (ja) 通信装置、通信システム、プログラム、および通信方法
JP2010011287A (ja) 映像伝送方法および端末装置
JP2010081157A (ja) 映像品質推定装置、方法、およびプログラム
CN114025171A (zh) 一种视频处理方法、装置、终端设备和存储介质
Yunus et al. A rate control model of MPEG-4 encoder for video transmission over Wireless Sensor Network
KR101795958B1 (ko) 실시간 네트워크 카메라에서의 적응적 영상 제공 방법, 장치 및 사용자 단말기

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080528

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees