JP4140000B2 - Information processing apparatus and method, recording medium, and program - Google Patents

Information processing apparatus and method, recording medium, and program Download PDF

Info

Publication number
JP4140000B2
JP4140000B2 JP2003002773A JP2003002773A JP4140000B2 JP 4140000 B2 JP4140000 B2 JP 4140000B2 JP 2003002773 A JP2003002773 A JP 2003002773A JP 2003002773 A JP2003002773 A JP 2003002773A JP 4140000 B2 JP4140000 B2 JP 4140000B2
Authority
JP
Japan
Prior art keywords
rate
transmittable
transmission
transmittable rate
information processing
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.)
Expired - Fee Related
Application number
JP2003002773A
Other languages
Japanese (ja)
Other versions
JP2004215199A (en
Inventor
宏 久曽神
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/en
Publication of JP2004215199A publication Critical patent/JP2004215199A/en
Application granted granted Critical
Publication of JP4140000B2 publication Critical patent/JP4140000B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

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 ACM SIGCOMM 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 0004140000
【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 半導体メモリ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus and method, a recording medium, and a program, and in particular, an information processing apparatus and method, a recording medium, and a program that can efficiently transmit and receive data in response to changes in the congestion state of a network. About.
[0002]
[Prior art]
When packets are continuously transmitted from a transmitting terminal device to a receiving terminal device via a network such as the Internet, lost (not received) packets are transmitted from the receiving terminal device to the transmitting terminal device. An acknowledgment including information to be specified and information such as the reception time of the packet is notified. The transmitting terminal device changes the transmission interval and packet size of the packets to be transmitted according to the acknowledgment received from the receiving terminal device, and transmits the packets at a transmission rate that is optimal for the state of the network bandwidth.
[0003]
The rate control algorithm that controls the packet transmission rate according to the state of the network bandwidth usually has a packet loss rate (the ratio of packets lost without being received by the receiving terminal device to the total packets transmitted from the transmitting terminal device) Also, based on RTT (Round Trip Time), the transmission rate is controlled by estimating the state of the network bandwidth.
[0004]
For example, transmission rate control of TCP (Transmission Control Protocol) includes TCP-Tahoe and TCP-Reno. TCP performs window flow control.
[0005]
In the TCP-Tahoe transmission rate control method, first, the window size is started from 1, and the window size is gradually increased. When packet loss occurs, the window size is returned to 1, and the window size is gradually increased again by the Slow Start Phase. In the TCP-Tahoe transmission rate control method, the transmission rate is controlled by periodically repeating the increase / decrease of the window size.
[0006]
Also in the TCP-Reno transmission rate control method, as in the case of TCP-Tahoe, first, the window size is started from 1, and the window size is gradually increased. If packet loss occurs and if retransmission of the packet succeeds before timeout (Fast Retransmit (RFC2581)), the window size is set to ½ immediately before the occurrence of packet loss (Fast Recovery (RFC2582)). FIG. 1 shows an example of transmission rate control in TCP-Reno.
[0007]
In FIG. 1, the vertical axis represents the transmission rate, and the horizontal axis represents time. In FIG. 1, the window size is set to 1 at time t0, and the window size increases with the passage of time (the transmission rate increases). A packet loss occurs at time t1, and the window size is set to about ½ immediately before the packet loss. After that, when the window size is gradually increased again and packet loss occurs again at time t2, the window size is set to about ½ immediately before the packet loss. In the same manner, the window size varies periodically thereafter.
[0008]
As a transmission rate control method of UDP (User Datagram Protocol), for example, there is TFRC (TCP-Friendly Rate Control). In TFRC, a transmission terminal apparatus transmits packets at an ideal transmission rate in response to a congestion state (see, for example, Non-Patent Document 1).
[0009]
In addition, when the transmission terminal device receives the data loss rate from the reception terminal device while transmitting real-time data to the reception terminal device, the data loss rate is greater than the first threshold value and the second threshold value set in advance. Is lower, the transmission rate is increased, the data loss rate is higher than the first threshold value, and when it is lower than the second threshold value, the transmission rate is not changed, and the data loss rate is higher than the first threshold value and the second threshold value. In some cases, the transmission rate is decreased when the value is higher (see, for example, Patent Document 1).
[0010]
[Patent Document 1]
Japanese Patent Laid-Open No. 2001-320440 (page 6-8, FIG. 5)
[Non-Patent Document 1]
Sally Floyd, Mark Handley, Jitendra Pandhye and Joerg Widmer, “Equation-Based Congestion Control for Unicast Applications”, Proceedings of ACM SIGCOMM 2000, May 2000 pp2
[0011]
[Problems to be solved by the invention]
However, conventionally, when packet loss occurs, there has been a problem that the transmission rate may be drastically reduced more than necessary.
[0012]
For example, when a packet loss occurs, the window size is initialized to 1 in TCP-Tahoe, and the window size is reduced to half the size immediately before the packet loss in TCP-Reno.
[0013]
As a result, for example, when moving image data and audio data are transmitted in real time, there is a problem that the quality of the moving image and sound to be transmitted may be drastically reduced.
[0014]
The present invention has been made in view of such a situation, and an object thereof is to more efficiently transmit and receive data in response to a change in the congestion state of a network.
[0015]
[Means for Solving the Problems]
The first information processing apparatus of the present invention includes a calculation unit that calculates a transmittable rate, a transmission unit that transmits a packet to another information processing apparatus at a transmission rate that is equal to or lower than the transmittable rate calculated by the calculation unit, When the transmittable rate is larger than a preset threshold, when packet loss occurs continuously, the calculation unit recalculates the transmittable rate, and when discontinuous packet loss occurs, the calculation unit transmits the transmittable rate. And control means for controlling so as not to recalculate.
[0016]
The first information processing method of the present invention includes a calculation step for calculating a transmittable rate, and a transmission step for transmitting a packet to another information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step. When the transmittable rate is larger than a preset threshold, when packet loss occurs continuously, the transmittable rate is recalculated by the processing of the calculation step, and when packet loss occurs discontinuously, the calculation step And a control step for controlling so as not to recalculate the transmittable rate.
[0017]
The program of the first recording medium of the present invention includes a calculation step for calculating a transmittable rate, and packet transmission to another information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the processing of the calculation step. When the transmission control step to be controlled and the transmittable rate are larger than the preset threshold, when the packet loss occurs continuously, the transmittable rate is recalculated by the processing of the calculation step, and the packet loss occurs discontinuously And a control step for controlling so that the transmittable rate is not recalculated by the calculating step.
[0018]
A first program of the present invention is a computer that controls an information processing apparatus that performs packet communication with another information processing apparatus, a calculation step of calculating a transmittable rate, and a transmission calculated by processing of the calculation step A transmission control step for controlling the transmission of packets to other information processing devices at a transmission rate that is less than or equal to the possible rate, and a calculation when packet loss occurs continuously if the transmittable rate is greater than a preset threshold. The transmission rate is recalculated by the processing of the step, and when a packet loss occurs discontinuously, a control step is executed to control so that the transmission rate is not recalculated by the calculation step.
[0019]
The second information processing apparatus of the present invention includes a calculating means for calculating a transmittable rate, a transmitting means for transmitting a packet to another information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculating means, The currently set transmittable rate is stored as the first transmittable rate, and when packet loss occurs, the calculation means calculates the transmittable rate as the second transmittable rate, and the first transmittable rate Control means for controlling so as not to change the transmission rate when is greater than a preset first threshold and the second transmittable rate is greater than a second threshold, which is a value smaller than the first threshold. It is characterized by providing.
[0020]
A second information processing method according to the present invention includes a calculation step of calculating a transmittable rate, and a transmission step of transmitting a packet to another information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step. And the currently set transmittable rate is stored as the first transmittable rate, and when packet loss occurs, the process of the calculation step calculates the transmittable rate as the second transmittable rate, The transmission rate is not changed when the transmittable rate of 1 is greater than a preset first threshold and the second transmittable rate is greater than a second threshold which is a value smaller than the first threshold. And a control step for controlling.
[0021]
The program of the second recording medium of the present invention includes a calculation step for calculating a transmittable rate, and packet transmission to another information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the processing of the calculation step. The transmission control step to be controlled and the currently set transmittable rate are stored as the first transmittable rate, and when packet loss occurs, the transmittable rate is set to the second transmittable rate by the process of the calculation step. When the first transmittable rate is greater than a preset first threshold and the second transmittable rate is greater than a second threshold that is smaller than the first threshold, the transmit rate And a control step for controlling so as not to change.
[0022]
A second program of the present invention includes a calculation step for calculating a transmittable rate for a computer that controls an information processing apparatus that performs packet communication with another information processing apparatus, and a transmittable rate that is equal to or lower than the transmittable rate calculated by the calculation step process. The transmission control step for controlling the transmission of packets to other information processing devices according to the transmission rate of the current and the currently set transmittable rate are stored as the first transmittable rate, and when packet loss occurs, By the processing of the calculation step, the transmittable rate is calculated as the second transmittable rate, the first transmittable rate is greater than a preset first threshold, and the second transmittable rate is the first transmittable rate. A control step for controlling the transmission rate so as not to change when the second threshold value is greater than the second threshold value. The features.
[0023]
In the first information processing apparatus and method, recording medium, and program of the present invention, a transmittable rate is calculated, and a packet is transmitted to another information processing apparatus at a transmission rate equal to or less than the calculated transmittable rate. When the transmittable rate is larger than a preset threshold, the transmittable rate is recalculated when packet loss occurs continuously, and the transmittable rate is not recalculated when packet loss occurs discontinuously.
[0024]
In the second information processing apparatus and method, recording medium, and program of the present invention, a transmittable rate is calculated, and a packet is transmitted to another information processing apparatus at a transmission rate that is equal to or less than the calculated transmittable rate. . In addition, the currently set transmittable rate is stored as the first transmittable rate, and when a packet loss occurs, the second transmittable rate is calculated and the first transmittable rate is set in advance. The transmission rate is not changed when the second transmittable rate is larger than the second threshold, which is larger than the first threshold and the second transmittable rate is smaller than the first threshold.
[0025]
The present invention can be applied to an electronic device connected to a network.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 2 is a diagram showing a configuration of an embodiment of an information processing system to which the present invention is applied.
[0027]
In FIG. 2, an image transmission device 11 and an image reception device 13 are connected via a network 10 including the Internet. The image transmission device 11 encodes the moving image captured by the imaging device 12 by an encoding method such as MPEG (Moving Picture Experts Group) or JPEG (Joint Photographic Experts Group) 2000 moving image, and the encoded moving image data. The generated data packet is generated, and the generated data packet is transmitted to the image receiving device 13 through the network 10 in real time. Further, the image transmission device 11 receives a feedback packet including information such as an RTT (Round Trip Time) and a packet loss rate from the image reception device 13, and based on the information included in the feedback packet, Control the transmission rate.
[0028]
The imaging device 12 is, for example, a camera-integrated video tape recorder or a digital still camera, images a subject, and supplies moving image data of the captured subject to the image transmission device 11.
[0029]
The image receiving device 13 acquires moving image data from the data packet received from the image transmitting device 11, supplies the acquired moving image data to the display device 14, and generates a feedback packet including information such as an RTT and a packet loss rate. Then, this feedback packet is transmitted to the image transmission device 11.
[0030]
The display device 14 is composed of, for example, a CRT (Cathode Ray Tube) or an LCD (Liquid Crystal Display), and displays the moving image data supplied from the image receiving device 13.
[0031]
Next, FIG. 3 illustrates an internal configuration example of the image transmission apparatus 11. In FIG. 3, the operation unit 101 receives an operation input from the user, and notifies the control unit 102 of operation information corresponding to the received operation. The control unit 102 controls the operation of each unit of the image transmission apparatus 11 based on a preset program and operation information from the operation unit 101.
[0032]
The video input unit 103 receives input of moving image data from the imaging device 12 and supplies the input moving image data to the encoder 104.
[0033]
The encoder 104 encodes the moving image data supplied from the video input unit 103 according to the MPEG encoding method so that the frame rate and the image quality set by the rate setting unit 122 are obtained, and the encoded data (hereinafter referred to as “encoded data”). In this description, the encoded data is referred to as encoded data) to the data packet generator 105.
[0034]
The data packet generation unit 105 divides the encoded data supplied from the encoder 104 into a plurality of packets and converts the encoded data into TCP / IP (Transmission Control Protocol / Internet Protocol) or UDP / IP (User A packet header of (Datagram Protocol / Internet Protocol) is added and supplied to the data packet transmitting unit 106. The packet header includes a sequence number for identifying each data packet.
[0035]
When the data packet is supplied from the data packet generation unit 105, the data packet transmission unit 106 transmits the data packet to the image reception device 13 via the network 10 at the timing specified by the rate setting unit 122. The data packet transmission unit 106 records the current time in the packet header as the transmission time of the data packet when transmitting the data packet.
[0036]
When receiving the feedback packet from the image receiving device 13, the feedback packet receiving unit 107 supplies the received feedback packet to the rate setting unit 122 of the rate control unit 108.
[0037]
The rate control unit 108 includes a transmittable rate calculation unit 121 and a rate setting unit 122.
[0038]
When the RTT and the packet loss rate information are supplied from the rate setting unit 122, the transmittable rate calculation unit 121 calculates an ideal transmission rate of the data packet based on the supplied information, and calculates the calculated ideal The target transmission rate is supplied to the rate setting unit 122. In the following description, an ideal transmission rate calculated by the transmittable rate calculation unit 121 is referred to as a transmittable rate.
[0039]
The rate setting unit 122 appropriately supplies information on the RTT and packet loss rate read from the feedback packet to the transmittable rate calculation unit 121, and acquires the transmittable rate from the transmittable rate calculation unit 121. Then, the rate setting unit 122 sets the actual transmission rate based on the transmittable rate, and sets the image quality and frame rate of the image to be encoded to a predetermined value in the encoder 104 based on the set transmission rate. And instructing the data packet transmitting unit 106 to set the data packet transmission interval to a predetermined value.
[0040]
Next, FIG. 4 illustrates an example of the internal configuration of the image receiving device 13. In FIG. 4, the operation unit 151 receives an operation input from the user and notifies the control unit 152 of operation information corresponding to the received operation. The control unit 152 controls the operation of each unit of the image reception device 13 based on a preset program and operation information from the operation unit 151.
[0041]
The data packet receiving unit 153 receives the data packet transmitted from the image transmission device 11 via the network 10 and acquires the reception time from an internal clock (not shown). Then, the data packet receiving unit 153 supplies the information (including the transmission time and sequence number of the data packet) included in the packet header of the received data packet and the acquired reception time information to the state measuring unit 158. At the same time, the data packet is supplied to the data reconstruction unit 154.
[0042]
When the data packet is supplied from the data packet receiving unit 153, the data reconstruction unit 154 reconstructs the original encoded data from the supplied plurality of data packets. That is, when transmitting the encoded data, the image transmitting device 11 divides the data into a plurality of pieces, packetizes each of them, and transmits them to the image receiving device 13. It is necessary to restore the original encoded data. The data reconstruction unit 154 performs this reconstruction process. The data reconstruction unit 154 reconstructs the encoded data, and then supplies the reconstructed encoded data to the decoder 155.
[0043]
The decoder 155 receives supply of encoded data from the data reconstruction unit 154, decodes the supplied encoded data to generate moving image data, and supplies the moving image data to the storage unit 156.
[0044]
The storage unit 156 temporarily stores (buffers) the moving image data supplied from the decoder 155. The video data stored in the storage unit 156 is read by the video output unit 157 at a predetermined timing.
[0045]
The video output unit 157 reads the moving image data from the storage unit 156 at a predetermined timing, converts the read moving image data into an image signal that can be displayed on the display device 14, and supplies the image signal to the display device 14.
[0046]
The state measuring unit 158 acquires information (including the transmission time and sequence number of the data packet) included in the packet header of the data packet and the reception time information of the data packet from the data packet receiving unit 153. Then, the state measurement unit 158 supplies the transmission time and reception time of the data packet to the RTT calculation unit 159, and acquires the RTT from the RTT calculation unit 159. Further, the state measuring unit 158 determines whether or not the data packet is lost by determining whether or not the sequence number of the data packet is continuous with the sequence number of the data packet received immediately before. The lost data packet is a packet that has been transmitted from the image transmission device 11 but has not reached the image reception device 13. As a result, when there is a lost data packet (when a packet loss occurs), the state measuring unit 158 determines the sequence number of the lost data packet (in the following description, the sequence number of the lost data packet is lost). (Referred to as packet number). Then, the state measuring unit 158 calculates the loss rate by calculating the lost packet number, the sequence number and reception time of the data packet last received immediately before the lost packet, and the sequence number and reception time of the data packet received first after the loss. The calculated packet loss rate is acquired from the loss rate calculation unit 160. The state measurement unit 158 supplies the acquired RTT and packet loss rate information to the feedback packet generation unit 161.
[0047]
When the information on the transmission time and the reception time of the data packet is supplied from the state measurement unit 158, the RTT calculation unit 159 calculates the RTT based on these information, and supplies the calculated RTT to the state measurement unit 158.
[0048]
The loss rate calculation unit 160 receives the lost packet number, the sequence number and reception time of the data packet last received immediately before the lost packet from the state measurement unit 158, and the sequence number and reception time of the data packet received for the first time after the loss. Is supplied, the packet loss rate is calculated based on the supplied information, and the calculated packet loss rate is supplied to the state measurement unit 158.
[0049]
When the RTT is supplied from the state measurement unit 158, the feedback packet generation unit 161 generates a feedback packet including the RTT as information, and supplies the generated feedback packet to the feedback packet transmission unit 162. When the packet loss rate information is also supplied from the state measurement unit 158, the feedback packet generation unit 161 generates a feedback packet including the packet loss rate together with the RTT and supplies the feedback packet to the feedback packet transmission unit 162.
[0050]
When the feedback packet is supplied from the feedback packet generation unit 161, the feedback packet transmission unit 162 transmits the supplied feedback packet to the image transmission device 11 via the network 10 at a predetermined timing.
[0051]
Next, the image transmission processing of the image transmission device 11 and the image reception processing of the image reception device 13 will be described with reference to the flowchart of FIG.
[0052]
The moving image data of the subject imaged by the imaging device 12 is input to the video input unit 103 and is supplied from the video input unit 103 to the encoder 104. In step S <b> 1 of FIG. 6, the encoder 104 of the image transmission device 11 encodes the moving image data supplied from the video input unit 103 to generate encoded data, and the generated encoded data is used as the data packet generation unit 105. To supply. The encoder 104 encodes the moving image data so that the frame rate and the image quality specified by the rate setting unit 122 are obtained.
[0053]
After the process of step S1, in step S2, the data packet generation unit 105 divides the encoded data supplied from the encoder 104, generates a data packet including each of the divided data, and sequences the generated data packet. Add a packet header containing a number. The data packet generator 105 adds the packet header and then supplies the data packet to the data packet transmitter 106.
[0054]
After the processing of step S2, in step S3, the data packet transmission unit 106 transmits the data packet supplied from the data packet generation unit 105 via the network 10 at a predetermined timing designated by the rate setting unit 122. The image is transmitted to the image receiving device 13. Note that the data packet transmission unit 106 acquires the current time from an internal clock (not shown) and transmits the data packet to the packet header when transmitting the data packet. Thereafter, the process returns to step S1, and the processes after step S1 are repeated.
[0055]
In step S <b> 11, the data packet reception unit 153 of the image reception device 13 receives the data packet transmitted by the image transmission device 11 in step S <b> 3 via the network 10 and supplies the data packet to the data reconstruction unit 154.
[0056]
Since the image transmission apparatus 11 transmits the encoded data by dividing it into a plurality of data packets, the data reconstruction unit 154 reconstructs the encoded data if the plurality of divided data packets are not prepared. I can't. Therefore, after step S11, in step S12, the data reconstruction unit 154 determines whether or not there are enough data packets to reconstruct the encoded data, and there are enough data packets to reconstruct the encoded data. If there is not, processing in steps S13 to S14 described later is skipped. The data reconstruction unit 154 stores the data packet supplied from the data packet reception unit 153 until the data packets are ready.
[0057]
If the data reconstruction unit 154 determines in step S12 that there are enough data packets to reconstruct the encoded data, the process proceeds to step S13.
[0058]
In step S13, the data reconstruction unit 154 extracts the divided encoded data from the plurality of stored data packets, integrates these data, and reconstructs the original encoded data. The reconstructed encoded data is supplied to the decoder 155.
[0059]
After step S13, in step S14, the decoder 155 decodes the encoded data supplied from the data reconstruction unit 154, supplies the decoded data to the storage unit 156, and stores it.
[0060]
Thereafter, the process returns to step S11, and the processes after step S11 are repeated.
[0061]
As described above, moving image data is transmitted from the image transmission device 11 to the image reception device 13. Note that the video output unit 157 of the image receiving device 13 reads the moving image data stored in the storage unit 156 by the process of step S14 at a predetermined timing, converts it into an image signal for display, and outputs it to the display device 14. To do. The display device 14 displays an image corresponding to the image signal output from the video output unit 157.
[0062]
In addition, for the sake of convenience of explanation, the processing of step S1 is performed again after the processing of step S3 is completed. However, in actuality, the processing of step S3 is performed. After the end, the process does not always return to the process of step S1. For example, in step S1, the encoder 104 supplies the encoded data to the data packet generation unit 105, and then performs encoding of the next moving image data without waiting for the completion of the processing in steps S2 and S3. The packet generation unit 105 supplies the generated data packet to the data packet transmission unit 106, and then packetizes the next encoded data without waiting for the completion of the process of step S3.
[0063]
Further, for the sake of convenience of explanation, the processing of step S11 to step S14 described above is performed again after the processing of step S14 is completed (or NO in step S12). However, in practice, before the process of step S14 ends (or in the case of NO at step S12), the process after the next step S11 may be executed. For example, in step S11, the data packet receiving unit 153 receives the data packet, supplies the received data packet to the data reconstructing unit 154, and then waits for the completion of the processing in steps S12 to S14. It is also possible to receive the data packet.
[0064]
By the way, in the present invention, a feedback packet is transmitted from the image receiving device 13 to the image transmitting device 11, and the transmission rate of the data packet is controlled based on the feedback packet.
[0065]
Next, with reference to the flowchart of FIG. 6, feedback packet transmission processing of the image reception device 13, that is, processing in which the image reception device 13 creates a feedback packet and transmits it to the image transmission device 11 will be described.
[0066]
The image receiving device 13 incorporates an internal clock (not shown) in order to acquire the current time. In step S101 in FIG. 6, the state measuring unit 158 acquires the current time t from the internal clock, And stored as the reference time TMR. The reference time TMR is a variable for measuring the passage of a certain time. After the process of step S101, the process proceeds to step S102.
[0067]
In step S102, the state measurement unit 158 determines whether the information (including the transmission time and sequence number of the data packet) and the reception time information included in the packet header are supplied from the data packet reception unit 153. It is determined whether or not the data packet has been received. If the information included in the packet header and the reception time information are not supplied, it is determined that the data packet has not been received. Repeat the process. When the information included in the packet header and the reception time information are supplied from the data packet reception unit 153, the state measurement unit 158 determines that the data packet has been received, and the process proceeds to step S103.
[0068]
In step S103, the state measurement unit 158 extracts the sequence number of the data packet from the information included in the packet header supplied from the data packet reception unit 153. After the process of step S103, the process proceeds to step S104.
[0069]
In step S104, the state measurement unit 158 determines whether or not there is a packet loss by determining whether or not the sequence number extracted in step S103 is continuous with the sequence number of the data packet received immediately before that, If a packet loss has occurred, the process proceeds to step S105.
[0070]
In step S105, the state measurement unit 158 displays the lost packet number, the sequence number and reception time of the data packet last received immediately before the lost packet, and the sequence number and reception time of the data packet received for the first time after the loss. This is supplied to the rate calculation unit 160. The loss rate calculation unit 160 calculates a packet loss rate based on these pieces of information supplied from the state measurement unit 158, and supplies the calculated packet loss rate to the state measurement unit 158. The packet loss rate calculation method follows the calculation method defined by TFRC. Thereafter, the process proceeds to step S106.
[0071]
In step S106, the state measurement unit 158 supplies the RTT calculation unit 159 with the transmission time and reception time of the data packet determined to have been received in step S102. The RTT calculation unit 159 calculates the RTT based on the transmission time and the reception time supplied from the state measurement unit 158, and supplies the calculated RTT to the state measurement unit 158.
[0072]
Note that the RTT calculation unit 159 calculates the one-way delay time (RTT / 2) from the transmission time and reception time of the data packet by the following equation, for example, and calculates the RTT by doubling the result.
[0073]
One-way delay time (RTT / 2) = (Reception time)-(Transmission time) (1)
[0074]
This process is based on the premise that the internal clocks of the image transmission device 11 and the image reception device 13 are synchronized. Although the description of the method of synchronizing the internal clock is omitted, the internal clock can be synchronized using an NTP (Network Time Protocol) generally used on the Internet or a unique protocol replacing NTP.
[0075]
In step S107, the state measurement unit 158 supplies the packet loss rate calculated in step S105 and the RTT calculated in step S106 to the feedback packet generation unit 161. The feedback packet generation unit 161 generates a feedback packet including the packet loss rate and RTT supplied from the state measurement unit 158 as information, and supplies the feedback packet to the feedback packet transmission unit 162. After the process of step S107, the process proceeds to step S111.
[0076]
Returning to step S104, if the state measurement unit 158 determines that no packet loss has occurred, the process proceeds to step S108.
[0077]
In step S108, the state measurement unit 158 supplies the RTT calculation unit 159 with the transmission time and reception time of the data packet determined to have been received in step S102. The RTT calculation unit 159 calculates the RTT based on the transmission time and the reception time supplied from the state measurement unit 158, and supplies the calculated RTT to the state measurement unit 158. Thereafter, the process proceeds to step S109.
[0078]
In step S109, the state measurement unit 158 determines whether or not a time longer than RTT has elapsed since the reference time TMR was set in step S101. That is, the state measurement unit 158 first reads the TMR stored in step S101, obtains the current time t from the internal clock, and calculates (t−TMR). Then, the state measurement unit 158 determines whether or not Expression (2) for comparing (t−TMR) with the RTT calculated in Step S108 is established.
[0079]
RTT <(t-TMR) (2)
[0080]
And when Formula (2) is not materialized (ie, when it determines with the time which passed since setting the reference time TMR in step S101 being RTT or less, a process returns to step S102 and after step S102 mentioned above) The process is repeatedly executed.
[0081]
In step S109, when the state measurement unit 158 determines that the expression (2) is satisfied, that is, the time elapsed after setting the reference time TMR in step S101 is longer than RTT, the process proceeds to step S110. move on.
[0082]
In step S110, the state measurement unit 158 supplies the RTT calculated in step S108 to the feedback packet generation unit 161. The feedback packet generation unit 161 generates a feedback packet including the RTT supplied from the state measurement unit 158 as information, and supplies the feedback packet to the feedback packet transmission unit 162. After the process of step S110, the process proceeds to step S111.
[0083]
In step S <b> 111, the feedback packet transmission unit 162 transmits the feedback packet supplied from the feedback packet generation unit 161 to the image transmission device 11 via the network 10. Thereafter, the process returns to step S101, and the processes after step S101 described above are repeatedly executed. In the process of step S101, which is executed again after the process of step S111, the state measurement unit 158 deletes the already stored TMR, newly acquires the current time, and stores this as the TMR. To do.
[0084]
As described above, the feedback packet transmission process of the image reception device 13 is executed.
[0085]
The image transmission device 11 controls the transmission rate of the data packet based on the feedback packet received from the image reception device 13.
[0086]
Next, the rate control process of the image transmission apparatus 11, that is, the control of the transmission rate of the data packet will be described with reference to the flowchart of FIG.
[0087]
In step S151 of FIG. 7, the rate setting unit 122 of the image transmission device 11 determines whether or not a feedback packet is received by determining whether or not a feedback packet is supplied from the feedback packet receiving unit 107, Until the feedback packet is supplied from the feedback packet receiving unit 107 (until the feedback packet is received), the process of step S151 is repeated and waits. When the feedback packet is supplied from the feedback packet receiving unit 107, the rate setting unit 122 determines that the feedback packet has been received, and the process proceeds to step S152.
[0088]
In step S152, the rate setting unit 122 reads the packet loss rate and RTT from the received feedback packet, and supplies the read packet loss rate and RTT to the transmittable rate calculation unit 121. The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3) based on the packet loss rate and RTT supplied from the rate setting unit 122.
[0089]
[Expression 1]
Figure 0004140000
[0090]
In Equation (3), T is a transmittable rate (ideal transmission rate), s is a packet size, p is a packet loss rate, and t is a TCP timeout time (usually 4 times RTT). The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3), and then notifies the rate setting unit 122 of the calculated transmittable rate T. Thereafter, the process proceeds to step S153.
[0091]
In step S153, the rate setting unit 122 executes transmission rate change processing. With reference to the flowchart of FIG. 8, the transmission rate change process in step S153 of FIG. 7 will be described in detail. In the following description, the transmission rate setting value that is actually set is referred to as a setting value X. The image transmission device 11 transmits the packet so that the transmission rate becomes the set value X.
[0092]
When real-time streaming of moving image data is performed, usually the minimum image quality and the maximum image quality of the moving image data to be transmitted are set in advance. Accordingly, the upper limit value Rmax and the lower limit value Rmin are also set for the settable transmission rates. Of course, Rmax> Rmin.
[0093]
For example, if the frame size at the highest image quality is vertical × horizontal = 1000 × 1000 pixels, the frame rate is 30 fps, and the data amount per pixel is 1 bit, the upper limit value Rmax of the settable transmission rate is Equation (4) is obtained.
[0094]
Rmax = (1000 × 1000) × 30 × 1 = 30 Mbps (4)
[0095]
Further, assuming that the frame size at the lowest image quality is vertical × horizontal = 1000 × 1000 pixels, the frame rate is 5 fps, and the data amount per pixel is 0.5 bits, the lower limit value Rmin of the settable transmission rate. Is as shown in Equation (5).
[0096]
Rmin = (1000 × 1000) × 5 × 0.5 = 2.5 Mbps (5)
[0097]
Therefore, the rate setting unit 122 stores therein an upper limit value Rmax and a lower limit value Rmin of a settable transmission rate in advance, and the transmittable rate T supplied from the transmittable rate calculating unit 121 is determined in step S201. Then, it is determined whether or not it is smaller than the lower limit value Rmin, and if the transmittable rate T supplied from the transmittable rate calculation unit 121 is smaller than the lower limit value Rmin, the process proceeds to step S202.
[0098]
In step S202, the rate setting unit 122 sets the transmission rate X to X = Rmin. After executing the process of step S202, the transmission rate change process ends.
[0099]
In step S201, the rate setting unit 122 does not have the transmittable rate T supplied from the transmittable rate calculating unit 121 smaller than the lower limit value Rmin (the transmittable rate T supplied from the transmittable rate calculating unit 121 is the lower limit). If it is determined that the value is equal to or greater than the value Rmin, the process proceeds to step S203.
[0100]
In step S <b> 203, the rate setting unit 122 determines whether the transmittable rate T supplied from the transmittable rate calculating unit 121 is greater than the upper limit value Rmax, and the transmittable rate supplied from the transmittable rate calculating unit 121. If the rate T is greater than the upper limit value Rmax, the process proceeds to step S204.
[0101]
In step S204, the rate setting unit 122 sets the transmission rate X to X = Rmax. After executing the process of step S204, the transmission rate change process ends.
[0102]
In step S203, the transmittable rate T supplied by the rate setting unit 122 from the transmittable rate calculating unit 121 is not greater than the upper limit value Rmax (the transmittable rate T supplied from the transmittable rate calculating unit 121 is the upper limit value). If it is determined that the value is equal to or less than the value Rmax, the process proceeds to step S205.
[0103]
In step S205, it is determined whether or not the currently set transmission rate X is greater than the transmittable rate T. If the currently set transmission rate X is greater than the transmittable rate T, the process proceeds to step S206. move on.
[0104]
In step S206, the rate setting unit 122 decreases the transmission rate X to a value equal to or lower than the transmittable rate T. After executing the process of step S206, the transmission rate changing process ends.
[0105]
When the rate setting unit 122 determines in step S205 that the currently set transmission rate X is not greater than the transmittable rate T (the currently set transmission rate X is less than or equal to the transmittable rate T), The process proceeds to step S207.
[0106]
In step S207, the rate setting unit 122 determines whether or not the currently set transmission rate X is smaller than the transmittable rate T, and if the currently set transmission rate X is smaller than the transmittable rate T. The process proceeds to step S208.
[0107]
In step S208, the rate setting unit 122 increases the transmission rate X within a range equal to or lower than the transmittable rate T. After executing the process of step S208, the transmission rate change process ends.
[0108]
When the rate setting unit 122 determines in step S207 that the currently set transmission rate X is not smaller than the transmittable rate T (the currently set transmission rate X is greater than or equal to the transmittable rate T). Then, the transmission rate change process ends.
[0109]
As described above, the transmission rate changing process in step S153 is executed. Returning to FIG. 7, after the transmission rate changing process of step S153 is executed, the process returns to step S151, and the processes after step S151 are repeatedly executed.
[0110]
FIG. 9 shows a change with time of the transmission rate set by the transmission rate setting process of FIG.
[0111]
In FIG. 9, the vertical axis represents the transmission rate, and the horizontal axis represents time. In the figure, the transmittable rate T is represented by a dotted line, and the set transmission rate X is represented by a solid line. Furthermore, the upper limit value Rmax and the lower limit value Rmin of the settable transmission rate are indicated by a one-dot chain line.
[0112]
In FIG. 9, the transmittable rate T is below the lower limit value Rmin between times t0 and t1. At this time, YES is determined in step S201 in FIG. 8, and the transmission rate X is set to X = Rmin in step S202. Therefore, in FIG. 9, the transmission rate X is Rmin.
[0113]
In FIG. 9, between the times t1 and t2, the transmittable rate T is between the lower limit value Rmin and the upper limit value Rmax, and X <T. Accordingly, NO is determined in step S201 in FIG. 8, NO is determined in step S203, NO is determined in step S205, YES is determined in step S207, and the transmission rate X is equal to or lower than the transmittable rate T in step S208. Increased in the range. In FIG. 9, the transmission rate X is increased in a range equal to or lower than the transmittable rate T by the same processing as during the time t3 to t4, during the time t5 to t6, and after the time t7 between the time t1 and t2. The
[0114]
In FIG. 9, the transmittable rate T exceeds the upper limit value Rmax between times t2 and t3. Accordingly, NO is determined in step S201 in FIG. 8, YES is determined in step S203, and the transmission rate X is set to X = Rmax in step S204. In FIG. 9, the transmission rate X is set to the upper limit value Rmax between time t4 and t5 and between time t6 and t7 by the same processing as during time t2 to t3.
[0115]
Further, at time t3 in FIG. 9, the transmittable rate T decreases from a value larger than the upper limit value Rmax to a value smaller than Rmax. At this time, NO is determined in step S201 in FIG. 8, NO is determined in step S203, YES is determined in step S205, and the transmission rate X is decreased to a value equal to or lower than the transmittable rate T in step S206. . In FIG. 9, at time t5 and time t7, the transmission rate X is set to a value equal to or lower than the transmittable rate T by the same processing as at time t3.
[0116]
By the way, the image transmission apparatus 11 can set the transmission rate by the transmission rate setting process as shown in FIG. 7, but can also set the transmission rate by the transmission rate setting process other than FIG. Next, a transmission rate setting process different from that in FIG. 7 will be described with reference to the flowchart in FIG.
[0117]
In step S251 of FIG. 10, the rate setting unit 122 sets the status that can be set to 0 or 1 to 0 and stores it. Thereafter, the process proceeds to step S252.
[0118]
In step S252, the rate setting unit 122 monitors the feedback packet receiving unit 107, determines whether or not a feedback packet has been received, and repeats the process of step S252 and waits until a feedback packet is received. When the feedback packet is received, the process proceeds to step S253.
[0119]
The rate setting unit 122 stores in advance a threshold value TH that is larger than the upper limit value Rmax of the settable transmission rate. If it is determined and the currently stored transmittable rate T is not greater than the threshold value TH (if the currently stored transmittable rate T is less than or equal to the threshold value TH), the process proceeds to step S254. Since the rate setting unit 122 does not store the transmittable rate T at the beginning of the transmission rate setting process, it determines NO in step S253, and the process proceeds to step S254.
[0120]
In step S254, the rate setting unit 122 reads the packet loss rate and RTT from the received feedback packet, and supplies the read packet loss rate and RTT to the transmittable rate calculation unit 121. The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3) based on the packet loss rate and RTT supplied from the rate setting unit 122. The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3), and then notifies the rate setting unit 122 of the calculated transmittable rate T. The rate setting unit 122 stores the transmittable rate T notified from the transmittable rate calculating unit 121. If the previously calculated transmittable rate T has already been stored, the rate setting unit 122 deletes it and stores the newly calculated transmittable rate T. Thereafter, the process proceeds to step S255.
[0121]
In step S255, the rate setting unit 122 executes transmission rate change processing. The transmission rate change process in step S255 is the same as the transmission rate change process described with reference to FIG.
[0122]
After the transmission rate change process in step S255, the process proceeds to step S256.
[0123]
In step S256, the rate setting unit 122 sets the status to 0 and stores it. If it has already been set to 0, the rate setting unit 122 maintains the status as it is. After the process of step S256, the process returns to step S252, and the processes after step S252 are repeatedly executed.
[0124]
In step S253, if the rate setting unit 122 determines that the currently transmittable rate T stored is greater than the threshold value TH, the process proceeds to step S257.
[0125]
In step S257, the rate setting unit 122 determines whether or not the feedback packet is a packet loss notification by determining whether or not the received feedback packet includes a packet loss rate. If the packet loss rate is included in (when it is a packet loss notification), the process proceeds to step S258.
[0126]
In step S258, the rate setting unit 122 determines whether or not the status is 0. When the status is not 0 (when the status is 1), the process proceeds to step S254, and the processes after step S254 described above are repeated. Execute.
[0127]
In step S258, when the rate setting unit 122 determines that the status is 0, the process proceeds to step S259.
[0128]
In step S259, the rate setting unit 122 sets the status to 1 and stores it. Thereafter, the process returns to step S252, and the processes after step S252 described above are repeatedly executed.
[0129]
In step S257, when the rate setting unit 122 determines that the received feedback packet does not include a packet loss rate (when it is determined that it is not a packet loss notification), the process proceeds to step S260.
[0130]
In step S260, the rate setting unit 122 sets the status to 0 and stores it. Thereafter, the process returns to step S252, and the processes after step S252 described above are repeatedly executed.
[0131]
With the above processing, when the transmittable rate T is a value larger than the threshold value TH, it is possible to reduce the transmission rate only when packet loss occurs continuously.
[0132]
That is, when packet loss occurs continuously, the following occurs. First, when the first packet loss occurs, a feedback packet including a packet loss rate is received from the image reception device 13 to the image transmission device 11. Therefore, the rate setting unit 122 determines YES in step S252, determines YES in step S253, determines YES in step S257, and sets the status to 1 in step S259. Thereafter, when the second packet loss occurs continuously, the feedback packet transmitted from the image receiving device 13 includes the packet loss rate. Therefore, when this feedback packet is received, the rate setting unit 122 determines YES in step S252, determines YES in step S253, determines YES in step S257, determines NO in step S258, and step S254. In step S255, the transmission rate T is calculated. In step S255, the transmission rate change process is executed. In step S256, the status is returned to zero.
[0133]
On the other hand, when a packet loss occurs only once in a discontinuous manner, a feedback packet including a packet loss rate is received from the image reception device 13 to the image transmission device 11. Therefore, the rate setting unit 122 determines YES in step S252, determines YES in step S253, determines YES in step S257, and sets the status to 1 in step S259. When packet loss occurs only once in a discontinuous manner, the packet loss rate is not included in the feedback packet transmitted from the image receiving apparatus 13 next time. Accordingly, when this feedback packet is received, the rate setting unit 122 determines YES in step S252, determines YES in step S253, determines NO in step S257, and sets the status to 0 in step S260. .
[0134]
Through the above processing, the transmission rate changing process is executed only when there is a continuous notification of packet loss, and the transmission rate changing process is not executed even when there is a discontinuous notification of packet loss. Thereby, when packet loss occurs, it is possible to prevent a decrease in transmission rate more than necessary. As a result, data can be transmitted more efficiently.
[0135]
FIG. 11 shows the change with time of the transmission rate set by the transmission rate setting process of FIG.
[0136]
In FIG. 11, the vertical axis represents the transmission rate, and the horizontal axis represents time. In the figure, the transmittable rate T is represented by a dotted line, and the set transmission rate X is represented by a solid line. Furthermore, the upper limit value Rmax and lower limit value Rmin of the settable transmission rate, and the threshold value TH are indicated by a one-dot chain line.
[0137]
In FIG. 11, between the times t0 and t1, the transmittable rate T is lower than the lower limit value Rmin. At this time, when a feedback packet is received from the image receiving device 13 to the image transmitting device 11, NO is determined in step S253 in FIG. 10, a transmittable rate T is calculated in step S254, and the processing in step S255 is performed. 8, YES is determined in step S201, and the transmission rate X is set to X = Rmin in step S202. Therefore, in FIG. 11, the transmission rate X is Rmin.
[0138]
In FIG. 11, between the times t1 and t2, the transmittable rate T is between the lower limit value Rmin and the upper limit value Rmax, and X <T. Therefore, when a feedback packet is received from the image receiving device 13 to the image transmitting device 11, NO is determined in step S253 in FIG. 10, a transmittable rate T is calculated in step S254, and in the process of step S255, In step S201 in FIG. 8, NO is determined, in step S203 NO is determined, in step S205 NO is determined, in step S207 YES is determined, and in step S208, the transmission rate X is within the transmittable rate T or less. Increased by
[0139]
In FIG. 11, between the times t2 and t3, the transmittable rate T is between the upper limit value Rmax and the threshold value TH. Therefore, when a feedback packet is received from the image receiving device 13 to the image transmitting device 11, NO is determined in step S253 in FIG. 10, a transmittable rate T is calculated in step S254, and in the process of step S255, In step S201 of FIG. 8, NO is determined, YES is determined in step S203, and in step S204, the transmission rate X is set to X = Rmax.
[0140]
In FIG. 11, between the times t3 and t8, the transmittable rate T is larger than the threshold value TH. Therefore, since YES is determined in step S253 of FIG. 10, the transmittable rate T is not updated. Further, a packet loss occurs once at each of time t4 and time t5 in FIG. 11, but at this time, the transmission rate is not changed. On the other hand, when packet loss notifications are continuously received at times t6 and t7, the transmittable rate T is recalculated and the transmit rate X is set to be equal to or less than the transmittable rate T.
[0141]
Incidentally, in the transmission rate setting process of FIG. 10, only one threshold value TH is provided and the transmission rate is set based on the threshold value TH. However, two threshold values are set and the transmission rate is set. It can also be.
[0142]
Next, a transmission rate setting process when two threshold values are set will be described with reference to the flowchart of FIG. In the following description, the first threshold value TH1 of the two threshold values is set to a value larger than the settable upper limit value Rmax, and the other threshold value TH2 is set between the upper limit value Rmax and the lower limit value Rmin. The value of The rate setting unit 122 stores the threshold value TH1 and the threshold value TH2 in advance.
[0143]
In step S301 of FIG. 12, the rate setting unit 122 monitors the feedback packet receiving unit 107, determines whether or not the feedback packet has been received, and repeatedly executes the process of step S301 until the feedback packet is received. stand by. When the feedback packet is received, the process proceeds to step S302.
[0144]
In step S <b> 302, the rate setting unit 122 reads the packet loss rate and RTT from the received feedback packet, and supplies the read packet loss rate and RTT to the transmittable rate calculation unit 121. The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3) based on the packet loss rate and RTT supplied from the rate setting unit 122. The transmittable rate calculation unit 121 calculates the transmittable rate T using Equation (3), and then notifies the rate setting unit 122 of the calculated transmittable rate T. The rate setting unit 122 stores the notified transmittable rate T.
[0145]
In addition, at the beginning of the transmission rate setting process of FIG. 12, the rate setting unit 122 does not store the transmittable rate T, but once the transmittable rate is calculated, the rate setting unit 122 calculates The transmittable rate T is stored. The rate setting unit 122 includes two areas for storing a transmittable rate, and the first area stores a transmittable rate T that is adopted as a reference for setting the transmission rate X. In the eye area, the transmittable rate T immediately after the calculation in step S302 is stored. In the following description, in order to distinguish the transmittable rate stored in the first area from the transmittable rate T, the transmittable rate stored in the second area is referred to as a transmittable rate Tn.
[0146]
At the beginning of the transmission rate setting process of FIG. 12, the transmission rates calculated in step S302 are stored in the above two areas (the same value is stored in the two areas). Next, when the transmittable rate Tn is calculated in the next step S302, the rate setting unit 122 keeps the transmittable rate T already stored in the first area as it is, and newly calculated transmittable The rate Tn is stored in the second area.
[0147]
After the process of step S302, the process proceeds to step S303.
[0148]
In step S303, the rate setting unit 122 determines whether or not the transmittable rate T is greater than the threshold value TH1, and if the transmittable rate T is greater than the threshold value TH1, the process proceeds to step S304.
[0149]
In step S304, the rate setting unit 122 determines whether or not the transmittable rate Tn is greater than the threshold value TH2. If the transmittable rate Tn is greater than the threshold value TH2, the process returns to step S301, and the above-described steps after step S301 are performed. The process is executed repeatedly. Therefore, in this case, the transmission rate is not changed.
[0150]
In step S304, when the rate setting unit 122 determines that the transmittable rate Tn is not greater than the threshold value TH2 (when it is determined that the transmittable rate Tn is equal to or less than the threshold value TH2), the process proceeds to step S305.
[0151]
In step S303, when the rate setting unit 122 determines that the transmittable rate T is not greater than the threshold value TH1 (the transmittable rate T is equal to or less than the threshold value TH1), the process proceeds to step S305.
[0152]
In step S305, the rate setting unit 122 sets the transmittable rate Tn calculated in step S302 as the transmittable rate T. That is, the rate setting unit 122 stores the value of the transmittable rate Tn stored in the second area as the transmittable rate T in the first area. Thereafter, the process proceeds to step S306.
[0153]
In step S306, the rate setting unit 122 executes transmission rate change processing. Details of the transmission rate change processing in step S306 are as described with reference to the flowchart of FIG. Note that the rate setting unit 122 executes the process of the flowchart of FIG. 8 using the transmittable rate T stored in the first area. After the transmission rate change process in step S306, the process returns to step S301, and the processes after step S301 described above are repeatedly executed.
[0154]
The transmission rate setting process is executed as described above.
[0155]
In the transmission rate setting process of FIG. 12, when the transmittable rate T adopted as a reference for setting the transmit rate X is equal to or less than the threshold TH1, the transmittable rate T is greater than the threshold TH1, and the calculated transmission When the possible rate Tn is less than or equal to the threshold value TH2, a transmission rate change process is executed. When the possible transmission rate T is greater than the threshold value TH1 and the calculated transmittable rate Tn is greater than the threshold value TH2, the transmission rate change process is performed. Do not execute.
[0156]
As described above, when the transmittable rate T adopted as the reference for setting the transmission rate X is larger than the threshold value TH1 and the calculated transmittable rate Tn is larger than the threshold value TH2, the transmission rate By preventing the change, it is possible to prevent the transmission rate from being lowered more than necessary when packet loss occurs.
[0157]
FIG. 13 shows the change with time of the transmission rate set by the transmission rate setting process of FIG.
[0158]
Between times t0 and t1 in FIG. 13, the transmittable rate T is below the lower limit value Rmin. Therefore, the transmission rate X is set as X = Rmin.
[0159]
Between times t1 and t2 in FIG. 13, the transmittable rate T is between the lower limit value Rmin and the upper limit value Rmax, and the transmission rate X is increased in a range equal to or lower than the transmittable rate T.
[0160]
Between times t2 and t7 in FIG. 13, the transmittable rate T exceeds the upper limit value Rmax. Therefore, the transmission rate X is set to X = Rmax.
[0161]
Further, the transmittable rate T is higher than the threshold value TH1 between times t3 and t7 in FIG. Accordingly, when packet loss occurs at times t4, t5, and t6, the transmittable rate Tn is calculated and compared with the threshold value TH2. As a result, at the times t4 and t5, as shown by the dotted arrows in FIG. 13, since the transmittable rate Tn is a value greater than the threshold value TH2, the transmittable rate T is not updated to a new value. At time t6, as shown by the dotted arrow in FIG. 13, since the transmittable rate Tn is smaller than the threshold value TH2, the transmittable rate T is updated, and transmission is performed according to the updated transmittable rate. The value of rate X is also updated.
[0162]
As described above, according to the present invention, it is possible to prevent the transmission rate from being lowered for an accidental packet loss. Therefore, data can be communicated more efficiently. Therefore, for example, in streaming of moving images, it is possible to prevent the image quality of the moving images to be transmitted from suddenly decreasing.
[0163]
In the above description, the case where the moving image captured by the imaging device 12 is transmitted from the image transmission device 11 to the image reception device 12 has been described as an example. However, the image transmission device 11 transmits the moving image to the image reception device 12. The moving image may be recorded in advance on a recording medium.
[0164]
The series of processes described above can be executed by hardware, or can be executed by software as described above. When a series of processing is executed by software, various functions can be executed by installing a computer in which the programs that make up the software are installed in dedicated hardware, or by installing various programs. For example, it is installed from a recording medium or the like into a general-purpose personal computer or the like.
[0165]
FIG. 14 is a diagram showing an example of the internal configuration of a personal computer 400 that executes such processing. A CPU (Central Processing Unit) 401 of the personal computer executes various processes according to a program stored in a ROM (Read Only Memory) 402. A RAM (Random Access Memory) 403 appropriately stores data and programs necessary for the CPU 401 to execute various processes. The input / output interface 405 is connected to an input unit 406 including a keyboard and a mouse, and outputs a signal input to the input unit 406 to the CPU 401. The input / output interface 405 is also connected with an output unit 407 including a display, a speaker, and the like.
[0166]
Further, a storage unit 408 constituted by a hard disk or the like and a communication unit 409 that performs data communication with other devices via the network 10 such as the Internet are also connected to the input / output interface 405. The drive 410 is used when data is read from or written to a recording medium such as the magnetic disk 421, the optical disk 422, the magneto-optical disk 423, and the semiconductor memory 424.
[0167]
As shown in FIG. 14, the recording medium is distributed to provide a program to the user separately from the personal computer, and a magnetic disk 421 (including a flexible disk) on which the program is recorded, an optical disk 422 (CD -Package media including ROM (Compact Disc-Read Only Memory), DVD (including Digital Versatile Disc), magneto-optical disc 423 (including MD (Mini-Disc) (registered trademark)), or semiconductor memory 424 In addition to being configured, it is configured by a ROM 402 storing programs and a hard disk including the storage unit 408 provided to the user in a state of being pre-installed in a computer.
[0168]
In this specification, the steps for describing the program provided by the medium are performed in parallel or individually in accordance with the described order, as well as the processing performed in time series, not necessarily in time series. The process to be executed is also included.
[0169]
Further, in this specification, the system represents the entire apparatus constituted by a plurality of apparatuses.
[0170]
【The invention's effect】
As described above, according to the first aspect of the present invention, information can be transmitted via a network. Further, according to the first aspect of the present invention, it is possible to more appropriately control the timing for reducing the transmission rate, and to prevent the transmission rate from being lowered more than necessary. As a result, it is possible to prevent the image quality of the image being streamed from rapidly decreasing.
[0171]
According to the second aspect of the present invention, information can be transmitted via a network. Further, according to the second aspect of the present invention, it is possible to more appropriately control the timing at which the transmission rate is reduced, and to prevent the transmission rate from being lowered more than necessary. As a result, it is possible to prevent the image quality of the image being streamed from rapidly decreasing.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining transmission rate control in conventional packet communication;
FIG. 2 is a block diagram showing a configuration example of an information processing system to which the present invention is applied.
FIG. 3 is a block diagram illustrating a configuration example of an image transmission apparatus.
FIG. 4 is a block diagram illustrating a configuration example of an image receiving device.
FIG. 5 is a flowchart illustrating image transmission processing of the image transmission device and image reception processing of the image reception device.
FIG. 6 is a flowchart for describing feedback packet transmission processing of the image receiving apparatus.
FIG. 7 is a flowchart illustrating transmission rate setting processing of the image transmission apparatus.
8 is a flowchart for explaining in detail processing in step S153 in FIG. 7, step S255 in FIG. 10, and step S306 in FIG.
FIG. 9 is a diagram for explaining transmission rate control by transmission rate setting processing in the flowchart of FIG. 7;
FIG. 10 is another flowchart illustrating the transmission rate setting process of the image transmission apparatus.
FIG. 11 is a diagram for explaining transmission rate control by transmission rate setting processing in the flowchart of FIG. 10;
FIG. 12 is still another flowchart illustrating a transmission rate setting process of the image transmission apparatus.
13 is a diagram for explaining transmission rate control by transmission rate setting processing in the flowchart of FIG. 12;
FIG. 14 is a block diagram illustrating a configuration example of an embodiment of a computer to which the present invention has been applied.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 Network, 11 Image transmission apparatus, 12 Imaging apparatus, 13 Image reception apparatus, 14 Display apparatus, 101 Operation part, 102 Control part, 103 Image input part, 104 Encoder, 105 Data packet generation part, 106 Data packet transmission part, 107 Feedback packet receiving unit, 108 rate control unit, 121 transmittable rate calculation unit, 122 rate setting unit, 151 operation unit, 152 control unit, 153 data packet receiving unit, 154 data reconstruction unit, 155 decoder, 156 storage unit, 157 Video output unit, 158 state measurement unit, 159 RTT calculation unit, 160 loss rate calculation unit, 161 feedback packet generation unit, 162 feedback packet transmission unit, 401 CPU, 421 magnetic disk, 422 optical disk, 423 magneto-optical disk 424 semiconductor memory

Claims (8)

他の情報処理装置との間でパケット通信を行なう情報処理装置において、
送信可能レートを算出する算出手段と、
前記算出手段により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信手段と、
前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出手段に前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出手段に前記送信可能レートを再計算させないように制御する制御手段と
を備えることを特徴とする情報処理装置。
In an information processing apparatus that performs packet communication with another information processing apparatus,
A calculating means for calculating a transmittable rate;
Transmitting means for transmitting packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculating means;
When the transmittable rate is larger than a preset threshold, when the packet loss occurs continuously, the calculation unit recalculates the transmittable rate, and when the packet loss occurs discontinuously, the calculation unit And a control means for controlling the transmission rate so as not to recalculate.
他の情報処理装置との間でパケット通信を行なう情報処理装置の情報処理方法において、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信ステップと、
前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップと
を含むことを特徴とする情報処理方法。
In an information processing method of an information processing apparatus that performs packet communication with another information processing apparatus,
A calculation step of calculating a transmittable rate;
A transmission step of transmitting a packet to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
When the transmittable rate is larger than a preset threshold, when the packet loss occurs continuously, the transmittable rate is recalculated by the processing of the calculation step, and when the packet loss occurs discontinuously, And a control step of controlling so that the transmittable rate is not recalculated by the calculating step.
他の情報処理装置との間でパケット通信を行なう情報処理装置用のプログラムであって、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
A program for an information processing apparatus that performs packet communication with another information processing apparatus,
A calculation step of calculating a transmittable rate;
A transmission control step for controlling transmission of packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
When the transmittable rate is larger than a preset threshold, when the packet loss occurs continuously, the transmittable rate is recalculated by the processing of the calculation step, and when the packet loss occurs discontinuously, And a control step of controlling so that the transmittable rate is not recalculated by the calculating step. A recording medium on which a computer-readable program is recorded.
他の情報処理装置との間でパケット通信を行なう情報処理装置を制御するコンピュータに、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
前記送信可能レートが予め設定された閾値より大きい場合、連続してパケットロスが発生したとき、前記算出ステップの処理により前記送信可能レートを再計算させ、非連続でパケットロスが発生したとき、前記算出ステップにより前記送信可能レートを再計算させないように制御する制御ステップと
を実行させることを特徴とするプログラム。
A computer that controls an information processing apparatus that performs packet communication with another information processing apparatus,
A calculation step of calculating a transmittable rate;
A transmission control step for controlling transmission of packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
When the transmittable rate is larger than a preset threshold, when the packet loss occurs continuously, the transmittable rate is recalculated by the processing of the calculation step, and when the packet loss occurs discontinuously, And a control step for performing control so that the transmittable rate is not recalculated by the calculating step.
他の情報処理装置とパケット通信を行なう情報処理装置において、
送信可能レートを算出する算出手段と、
前記算出手段により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信手段と、
現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出手段に前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御手段と
を備えることを特徴とする情報処理装置。
In an information processing apparatus that performs packet communication with other information processing apparatuses,
A calculating means for calculating a transmittable rate;
Transmitting means for transmitting packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculating means;
The currently set transmittable rate is stored as a first transmittable rate, and when a packet loss occurs, the calculation means calculates the transmittable rate as a second transmittable rate, and the first The transmission rate is not changed when the transmission possible rate is greater than a preset first threshold value and the second transmission possible rate is greater than a second threshold value that is smaller than the first threshold value. An information processing apparatus comprising control means for controlling the information processing apparatus.
他の情報処理装置とパケット通信を行なう情報処理装置の情報処理方法において、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートで、前記他の情報処理装置にパケットを送信する送信ステップと、
現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップと
を含むことを特徴とする情報処理方法。
In an information processing method of an information processing apparatus that performs packet communication with another information processing apparatus,
A calculation step of calculating a transmittable rate;
A transmission step of transmitting a packet to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
The currently set transmittable rate is stored as the first transmittable rate, and when packet loss occurs, the process of the calculating step causes the transmittable rate to be calculated as the second transmittable rate, The transmission rate when the first transmittable rate is greater than a preset first threshold and the second transmittable rate is greater than a second threshold that is less than the first threshold. And a control step for controlling so as not to change the information processing method.
他の情報処理装置とパケット通信を行なう情報処理装置用のプログラムであって、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
A program for an information processing apparatus that performs packet communication with another information processing apparatus,
A calculation step of calculating a transmittable rate;
A transmission control step for controlling transmission of packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
The currently set transmittable rate is stored as the first transmittable rate, and when packet loss occurs, the process of the calculating step causes the transmittable rate to be calculated as the second transmittable rate, The transmission rate when the first transmittable rate is greater than a preset first threshold and the second transmittable rate is greater than a second threshold that is less than the first threshold. And a control step for controlling so as not to change the recording medium.
他の情報処理装置とパケット通信を行なう情報処理装置を制御するコンピュータに、
送信可能レートを算出する算出ステップと、
前記算出ステップの処理により算出された前記送信可能レート以下の送信レートによる、前記他の情報処理装置へのパケットの送信を制御する送信制御ステップと、
現在設定されている前記送信可能レートを第1の送信可能レートとして記憶すると共に、パケットロスが発生した場合、前記算出ステップの処理により、前記送信可能レートを第2の送信可能レートとして算出させ、前記第1の送信可能レートが予め設定された第1の閾値より大きく、かつ前記第2の送信可能レートが、前記第1の閾値より小さい値である第2の閾値より大きいとき、前記送信レートを変更しないように制御する制御ステップと
を実行させることを特徴とするプログラム。
To a computer that controls an information processing apparatus that performs packet communication with other information processing apparatuses,
A calculation step of calculating a transmittable rate;
A transmission control step for controlling transmission of packets to the other information processing apparatus at a transmission rate equal to or lower than the transmittable rate calculated by the calculation step;
The currently set transmittable rate is stored as the first transmittable rate, and when packet loss occurs, the process of the calculating step causes the transmittable rate to be calculated as the second transmittable rate, The transmission rate when the first transmittable rate is greater than a preset first threshold and the second transmittable rate is greater than a second threshold that is less than the first threshold. And a control step for controlling so as not to change the program.
JP2003002773A 2003-01-09 2003-01-09 Information processing apparatus and method, recording medium, and program Expired - Fee Related JP4140000B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003002773A JP4140000B2 (en) 2003-01-09 2003-01-09 Information processing apparatus and method, recording medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003002773A JP4140000B2 (en) 2003-01-09 2003-01-09 Information processing apparatus and method, recording medium, and program

Publications (2)

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

Family

ID=32820412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003002773A Expired - Fee Related JP4140000B2 (en) 2003-01-09 2003-01-09 Information processing apparatus and method, recording medium, and program

Country Status (1)

Country Link
JP (1) JP4140000B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4742669B2 (en) * 2005-05-13 2011-08-10 ソニー株式会社 Transmission / reception system, transmission apparatus and transmission method, reception apparatus and reception method, and program
JP2007097099A (en) * 2005-09-30 2007-04-12 Hitachi Kokusai Electric Inc Data transmitter
JP4702443B2 (en) * 2008-12-17 2011-06-15 ソニー株式会社 COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND PROGRAM
JP5521570B2 (en) * 2010-01-21 2014-06-18 日本電気株式会社 Information processing apparatus, information processing system, information processing method, and program
KR101173382B1 (en) 2010-10-29 2012-08-10 삼성에스디에스 주식회사 Method and Apparatus for Transmitting Data
CN103004154B (en) * 2011-06-16 2015-12-02 松下电器产业株式会社 Dispensing device, sending method, integrated circuit
WO2014115293A1 (en) * 2013-01-25 2014-07-31 富士通株式会社 Information processing device, information processing method, and information processing system

Also Published As

Publication number Publication date
JP2004215199A (en) 2004-07-29

Similar Documents

Publication Publication Date Title
US8711929B2 (en) Network-based dynamic encoding
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
JP2004193992A (en) Information processing system, information processor, information processing method, recording medium and program
JP2015536594A (en) Aggressive video frame drop
CN113992967B (en) Screen projection data transmission method and device, electronic equipment and storage medium
JP2007089137A (en) Adaptive media play-out by server media processing for performing robust streaming
US8750293B2 (en) Apparatus and method for rendering video with retransmission delay
Wu et al. Modeling and optimization of high frame rate video transmission over wireless networks
CN110956683A (en) Information processing system, terminal device, and computer-readable medium
JP4140000B2 (en) Information processing apparatus and method, recording medium, and program
JP4430596B2 (en) Receiving device of image data transmission / reception system and storage medium storing program thereof
JP4586328B2 (en) Information processing system, information processing apparatus and method, recording medium, and program
JP2005322995A (en) Buffer control method in real-time video image transfer, transmitting terminal, receiving terminal, video image distributing system and program
JP4539018B2 (en) Transmission control apparatus and method, recording medium, and program
JP2004522325A (en) System for controlling the rate of data output to a network
JP2008244957A (en) Moving picture compressing apparatus and its operation control method
JP3967443B2 (en) Image data transmission / reception system, transmitting apparatus thereof, receiving apparatus thereof, and storage medium storing program thereof
JP2004215201A (en) Information processing apparatus and information processing method, data communication system, recording medium, and program
US20110176742A1 (en) Image processing apparatus and image processing method
US11290680B1 (en) High-fidelity freeze-frame for precision video communication applications
JP2010011287A (en) Image transmission method and terminal device
CN114025171A (en) Video processing method and device, terminal equipment and storage medium
KR101795958B1 (en) Adaptive control method, apparatus and user device for providing video in real time network cameras

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