JP2004193992A - Information processing system, information processor, information processing method, recording medium and program - Google Patents

Information processing system, information processor, information processing method, recording medium and program Download PDF

Info

Publication number
JP2004193992A
JP2004193992A JP2002359736A JP2002359736A JP2004193992A JP 2004193992 A JP2004193992 A JP 2004193992A JP 2002359736 A JP2002359736 A JP 2002359736A JP 2002359736 A JP2002359736 A JP 2002359736A JP 2004193992 A JP2004193992 A JP 2004193992A
Authority
JP
Japan
Prior art keywords
packet
information processing
packets
layer
data
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.)
Abandoned
Application number
JP2002359736A
Other languages
Japanese (ja)
Inventor
Hiroshi Kusogami
宏 久曽神
Kenji Yamane
健治 山根
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 JP2002359736A priority Critical patent/JP2004193992A/en
Publication of JP2004193992A publication Critical patent/JP2004193992A/en
Abandoned legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processing system in which an error can be corrected and an idle capacity of a band of a network can be predicted by using an idle region of the band of the network which efficiently transmits/receives information through the network and to provide an information processor, an information processing method, a recording medium and a program. <P>SOLUTION: A picture transmission device 11 packetizes a plurality of layers of hierarchy encoding data and transmits a packet to a picture reception device 12 in a layer unit. The picture reception device 12 transmits a confirmation response including a transmission time of the packet and ID of the lost packet to the picture transmission device 11. The picture transmission device 11 calculates an optimum transmission rate in accordance with the confirmation response from the picture reception device 12, sets the number of transmission packets based on the transmission rate and sets the layer to be transmitted so that the number of the transmission packets becomes not larger than that which is set. The packets which are wastefully transmitted can be eliminated and communication is made efficient. The invention can be applied to an electronic apparatus connected to the network. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理システム、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、より効率的に情報を送受信できるようにした情報処理システム、情報処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
データの送信レートの制御は、単位時間あたりの送信データ量を決定するものである。パケット通信網であるインターネット上では、仮にパケットサイズ(1パケットあたりのデータ量)が一定である場合、単位時間あたりに送信するパケットの個数を制御することにより、送信レートを制御することができる。
【0003】
単位時間あたりに送信するパケットの個数を制御することにより、送信レートを制御する例として、RFC(Request For Comments)2001に規定されているスライディングウィンドウアルゴリズムがある。このスライディングウィンドウアルゴリズムについて、図1を参照して説明する。
【0004】
図1において、縦軸は、ウィンドウサイズを表している。スライディングウィンドウアルゴリズムにおいては、送信端末装置は「ウィンドウ」に入っている個数だけ、パケットを送信することができる。ウィンドウは、そのサイズが可変であり、図1のグラフの縦軸は、このウィンドウのサイズを表している。図1において、横軸は時間軸である。
【0005】
図1の時刻t0において、送信端末装置は、まず、ウィンドウサイズを、パケット1個分の大きさに設定し、パケット1個を、受信端末装置に送信する。送信端末装置は、受信端末装置からパケット受信の確認応答を受信すると、次に、ウィンドウサイズをパケット2個分に設定し、パケット2個を、受信端末装置に送信する。このようにして、送信端末装置は、受信端末装置からパケット受信の確認応答を受信する度に、ウィンドウの大きさを大きくし、送信可能なパケット数を1個ずつ増やしてゆく。送信端末装置は、このようにして、徐々に、単位時間あたりに送信するパケット数を増加させる。
【0006】
ここで、時刻t1において、送信端末装置から送信されたパケットの少なくとも一部が、受信端末装置により受信されなかった(パケットロスが発生した)旨の確認応答が、受信端末装置から通知されたとする。この時(t1)、送信端末装置は、ウィンドウの大きさを1/2に縮小し、送信可能なパケット数を半分に減少させる(図1においては、19個から9個に減少させている。なお、端数は切り捨て)。それ以降、送信端末装置は、ウィンドウ内のパケット全てに対して受信端末装置より確認応答を受信した場合、ウィンドウの大きさを大きくし、送信可能なパケットの個数を1個ずつ増やしてゆく。
【0007】
そして、時刻t2において、再度、パケットロスが発生した場合、送信端末装置は、上記と同様に、ウィンドウの大きさを1/2に縮小し、送信可能なパケット数を半分に減少させる。その後、また、送信端末装置は、ウィンドウ内のパケット全てに対して受信端末装置より確認応答を受信した場合、ウィンドウの大きさを大きくし、送信可能なパケットの個数を1個ずつ増やしてゆく。以降、時刻t3においても、時刻t1および時刻t2の場合と同様に処理する。
【0008】
スライディングウィンドウアルゴリズムにおいては、以上のようにして、最適なデータの送信レートを割り出している。
【0009】
以上のように、ネットワークの状態に応じて、最適なデータの送信レートを迅速に決定するために、送信レートの増加時には、送信パケット数を加算してゆき(上記の例の場合、1個ずつ加算してゆき)、送信レートの減少時には、送信パケット数を、1未満の値(上記の例の場合、1/2)で乗算するAIMD(Additive Increase Multiple Decrease)アルゴリズムが、一般的に知られている(例えば、非特許文献1参照)。
【0010】
【非特許文献1】
D.Chiu and R.Jain,“Analysis of the Increase/Decrease Algorithms for Congestion Avoidance in Computer Networks,”Journal of Computer Networks and ISDN,Vol.17,No.1,June 1989 pp.1-14
【0011】
【発明が解決しようとする課題】
ところで、送信するデータが、階層符号化されたデータである場合がある。例えば、階層符号化データの例として、JPEG(Joint Photographic Experts Group)2000がある。
【0012】
例として、JPEG2000の階層符号化データが、4つの階層により階層符号化されており、1つの階層分のデータを送信するために5個のパケットを必要とする場合、4つの階層全体の階層符号化データでは、4×5=20個のパケットを必要とする。図2は、JPEG2000により階層符号化された1フレーム分のデータの例を表している。
【0013】
図2において、左側の記載「レイヤL1」、「レイヤL2」、「レイヤL3」、および「レイヤL4」は、4つの層を表している。レイヤL1が、最下位の階層であり、レイヤL2、レイヤL3、レイヤL4の順番でより上位の階層になる。
【0014】
図2において、「レイヤL1」、「レイヤL2」、「レイヤL3」、および「レイヤL4」の記載の右側のブロックは、それぞれパケットを表している。すなわち、「P1」、「P2」、「P3」、「P4」、「P5」、「P6」、「P7」、「P8」、「P9」、「P10」、「P11」、「P12」、「P13」、「P14」、「P15」、「P16」、「P17」、「P18」、「P19」、および「P20」と記載された各ブロックは、それぞれが、パケットを表している。
【0015】
図2においては、レイヤL1のデータが、「P1」、「P2」、「P3」、「P4」、および「P5」のパケットに分割され、レイヤL2のデータが、「P6」、「P7」、「P8」、「P9」、および「P10」のパケットに分割され、レイヤL3のデータが、「P11」、「P12」、「P13」、「P14」、および「P15」のパケットに分割され、レイヤL4のデータが、「P16」、「P17」、「P18」、「P19」、および「P20」のパケットに分割されている。
【0016】
JPEG2000においては、レイヤL1のデータのみをデコードして、表示した場合、粗い画像(この画像を画像1と称する)が表示され、レイヤL1とレイヤL2のデータをデコードして、表示した場合、画像1より精細な画像(この画像を画像2と称する)が表示され、レイヤL1、レイヤL2、およびレイヤL3のデータをデコードして、表示した場合、画像2より精細な画像(この画像を画像3と称する)が表示され、レイヤL1、レイヤL2、レイヤL3、およびレイヤL4のデータをデコードして、表示した場合、画像3より精細な画像(この画像を画像4と称する)が表示される。
【0017】
ただし、図2において、1つのレイヤを構成する全パケットのデータが揃った場合、綺麗な画像を表示することができる。例えば、パケットP1乃至P5が全部揃って、初めて、レイヤL1のデータをデコードして、綺麗な画像を表示することができる。また、パケットP1乃至P10が全部揃って、初めて、レイヤL1およびレイヤL2のデータをデコードして、綺麗な画像を表示することができる。同様に、パケットP1乃至P15が全部揃って、初めて、レイヤL1、レイヤL2、およびレイヤL3のデータをデコードして、綺麗な画像を表示することができる。また、パケットP1乃至P20が全部揃って、初めて、レイヤL1、レイヤL2、レイヤL3、およびレイヤL4のデータをデコードして、綺麗な画像を表示することができる。
【0018】
従って、例えば、パケットP1乃至P6のデータをデコードした場合の画像の画質は、レイヤL1のデータ、すなわちパケットP1乃至P5のデータをデコードした場合の画像の画質と比較して、たいして向上しない。つまり、パケットP6のデータがあっても、それによる効果は期待できない。同様に、例えば、パケットP1乃至P7のデータをデコードした場合の画像の画質は、レイヤL1のデータ、すなわちパケットP1乃至P5のデータをデコードした場合の画像の画質と比較して、たいして向上しない。つまり、パケットP6およびP7のデータがあっても、それによる効果は期待できない。同様に、例えば、パケットP1乃至P8のデータをデコードした場合の画像の画質は、レイヤL1のデータ、すなわちパケットP1乃至P5のデータをデコードした場合の画像の画質と比較して、たいして向上しない。つまり、パケットP6乃至P8のデータがあっても、それによる効果は期待できない。同様に、例えば、パケットP1乃至P9のデータをデコードした場合の画像の画質は、レイヤL1のデータ、すなわちパケットP1乃至P5のデータをデコードした場合の画像の画質と比較して、たいして向上しない。つまり、パケットP6乃至P9のデータがあっても、それによる効果は期待できない。
【0019】
このような階層符号化データを、スライディングウィンドウアルゴリズムにより送受信する場合、送信端末装置は、番号の小さいパケットであるパケットP1から順に(P1、P2、P3、P4、P5、…、P19、P20の順に)、パケットを送信する。すなわち、送信端末装置は、図2の番号の小さいレイヤ、すなわちレイヤL1のパケットを優先的に受信端末装置に送信し、以降、レイヤL2、レイヤL3、レイヤL4の順に、各レイヤのパケットを、受信端末装置に送信する。
【0020】
ここで、仮にウィンドウサイズが、パケット5個分の大きさであれば、送信端末装置は、パケットP1乃至P5を受信端末装置に送信し、受信端末装置は、送信端末装置から受信したパケットP1乃至P5の全データを利用して、レイヤL1に対応する画像を表示させることができる。また、仮にウィンドウサイズが、パケット10個分の大きさであれば、送信端末装置は、パケットP1乃至P10を受信端末装置に送信し、受信端末装置は、送信端末装置から受信したパケットP1乃至P10の全データを利用して、レイヤL1およびレイヤL2に対応する画像を表示させることができる。また、仮にウィンドウサイズが、パケット15個分の大きさであれば、送信端末装置は、パケットP1乃至P15を受信端末装置に送信し、受信端末装置は、送信端末装置から受信したパケットP1乃至P15の全データを利用して、レイヤL1、レイヤL2、およびレイヤL3に対応する画像を表示させることができる。また、仮にウィンドウサイズが、パケット20個分の大きさであれば、送信端末装置は、パケットP1乃至P20を受信端末装置に送信し、受信端末装置は、送信端末装置から受信したパケットP1乃至P20の全データを利用して、レイヤL1、レイヤL2、レイヤL3、およびレイヤL4に対応する画像を表示させることができる。
【0021】
しかしながら、1つのレイヤを構成する全パケットが揃わない場合、そのレイヤに含まれるパケットのデータを利用しても、それによる画質の向上は期待できないため、それらのパケットを送信することに意味がなく、従って、送信するパケットに無駄が生じるという課題があった。
【0022】
すなわち、例えば、ウィンドウサイズがパケット6個分の大きさであった場合、送信端末装置は、パケットP1乃至P6を受信端末装置に送信するが、受信端末装置は、送信端末装置から受信したパケットP1乃至P6のうちパケットP6のデータを利用しても、それによる画質の向上は期待できないため、パケットP6を送信することは無駄になる。同様に、ウィンドウサイズが、パケット7個分の大きさであった場合、送信端末装置は、パケットP1乃至P7を受信端末装置に送信するが、受信端末装置は、送信端末装置から受信したパケットP1乃至P7のうちパケットP6およびP7のデータを利用しても、それによる画質の向上は期待できないため、パケットP6およびP7を送信することは無駄になる。同様に、ウィンドウサイズが、例えば、パケット8個分の大きさであった場合、送信端末装置は、パケットP1乃至P8を受信端末装置に送信するが、受信端末装置は、送信端末装置から受信したパケットP1乃至P8のうちパケットP6、P7、およびP8のデータを利用しても、それによる画質の向上は期待できないため、パケットP6、P7、およびP8を送信することは無駄になる。同様に、ウィンドウサイズが、例えば、パケット9個分の大きさであった場合、送信端末装置は、パケットP1乃至P9を受信端末装置に送信するが、受信端末装置は、送信端末装置から受信したパケットP1乃至P9のうちパケットP6、P7、P8、およびP9のデータを利用しても、それによる画質の向上は期待できないため、パケットP6、P7、P8、およびP9を送信することは無駄になる。
【0023】
このように、階層符号化データをスライディングウィンドウアルゴリズムにより送受信する場合、送信端末装置から受信端末装置に送信するパケットが、1つのレイヤ分、全部が揃わないと、送信端末装置から受信端末装置に送信するパケットの一部分が無駄になってしまうという課題があった。
【0024】
また、受信端末装置側でも、受信したパケットから、利用することができないパケットを選り分ける必要があった。
【0025】
本発明はこのような状況に鑑みてなされたものであり、より効率的に情報を送受信することを目的とする。
【0026】
【課題を解決するための手段】
本発明の情報処理システムは、第1の情報処理装置は、階層符号化データをパケット化して、第1のパケットを生成する生成手段と、生成手段により生成された第1のパケットを、第2の情報処理装置に送信する第1の送信手段と、第1の情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットを、第2の情報処理装置から受信する第1の受信手段と、第1の受信手段により受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値を算出する算出手段と、算出手段により算出された基準値に基づいて、生成手段によりパケット化する階層符号化データの階層を設定する設定手段とを備え、第2の情報処理装置は、第1の情報処理装置より、第1のパケットを受信する第2の受信手段と、第2の受信手段により受信された第1のパケットから、階層符号化データを取得する取得手段と、第2の受信手段により受信された第1のパケットに基づいて、第2のパケットを作成する作成手段と、作成手段により作成された第2のパケットを第1の情報処理装置に送信する第2の送信手段とを備えることを特徴とする。
【0027】
本発明の情報処理装置は、階層符号化データをパケット化して、第1のパケットを生成する生成手段と、生成手段により生成された第1のパケットを、他の情報処理装置に送信する送信手段と、情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットを、他の情報処理装置から受信する受信手段と、受信手段により受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値である第1の数を算出する算出手段と、算出手段により算出された第1の数に基づいて、生成手段によりパケット化する階層符号化データの階層を設定する設定手段とを備えることを特徴とする。
【0028】
前記設定手段には、前記生成手段により生成される前記第1のパケットのパケット数が、前記第1の数以下になるように、前記生成手段によりパケット化する前記階層化データの階層を設定するようにさせることができる。
【0029】
前記設定手段には、パケット化する階層として設定された階層の階層符号化データをパケット化した場合に、前記生成手段により生成される前記第1のパケットのパケット数である第2の数が、前記第1の数以下になるように、パケット化する前記階層を設定するとともに、前記第1の数から第2の数を差し引いた余りである第3の数を算出すようにさせ、前記生成手段には、第3の数だけ、冗長データをさらにパケット化して前記第1のパケットを生成するようにさせることができる。
【0030】
前記設定手段には、優先的に送信する階層の前記階層符号化データをパケット化した場合に、前記生成手段により生成される前記第1のパケットのパケット数である第2の数が、前記第1の数以下になるように、優先的に送信する前記階層を設定するとともに、前記第1の数から第2の数を差し引いた余りである第3の数を算出するようにさせ、前記生成手段には、優先的に送信する階層の前記階層符号化データをパケット化して、前記第1のパケットを生成するとともに、第3の数だけ、優先的に送信しない階層の前記階層符号化データをパケット化して、第1のパケットを生成するようにさせることができる。
【0031】
本発明の情報処理方法は、階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、生成ステップの処理により生成された第1のパケットを、他の情報処理装置に送信する送信ステップと、情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットを、他の情報処理装置から受信する受信ステップと、受信ステップの処理により受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値である第1の数を算出する算出ステップと、算出ステップの処理により算出された第1の数に基づいて、生成ステップの処理によりパケット化する階層符号化データの階層を設定する設定ステップとを含むことを特徴とする。
【0032】
本発明の記録媒体のプログラムは、他の情報処理装置に送信するために、階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットを、他の情報処理装置から受信した場合、受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値を算出する算出ステップと、算出ステップの処理により算出された基準値に基づいて、生成ステップの処理によりパケット化する階層符号化データの階層を設定する設定ステップとを含むことを特徴とする。
【0033】
本発明のプログラムは、パケット通信により、階層符号化されたデータである階層符号化データを他の情報処理装置に送信する情報処理装置を制御するコンピュータに、他の情報処理装置に送信するために、階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットを、他の情報処理装置から受信した場合、受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値を算出する算出ステップと、算出ステップの処理により算出された基準値に基づいて、生成ステップの処理によりパケット化する階層符号化データの階層を設定する設定ステップとを実行させることを特徴とする。
【0034】
本発明の情報処理システムにおいては、第1の情報処理装置では、階層符号化データがパケット化されて、第1のパケットが生成され、生成された第1のパケットが、第2の情報処理装置に送信され、第1の情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットが、第2の情報処理装置から受信され、受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値が算出され、算出された基準値に基づいて、パケット化する階層符号化データの階層が設定される。また、第2の情報処理装置では、第1の情報処理装置より、第1のパケットが受信され、受信された第1のパケットから、階層符号化データが取得され、受信された第1のパケットに基づいて、第2のパケットが作成され、作成された第2のパケットが第1の情報処理装置に送信される。
【0035】
本発明の情報処理装置および方法、記録媒体、並びにプログラムにおいては、階層符号化データがパケット化されて、第1のパケットが生成され、生成された第1のパケットが、他の情報処理装置に送信され、情報処理装置による第1のパケットの送信時刻、および第1のパケットの損失に関する情報を含む第2のパケットが、他の情報処理装置から受信され、受信された第2のパケットに基づいて、送信する第1のパケットのパケット数の基準値である第1の数が算出され、算出された第1の数に基づいて、パケット化する階層符号化データの階層が設定される。
【0036】
本発明は、ネットワークに接続される電子機器に適用することができる。
【0037】
【発明の実施の形態】
図3は、本発明を適用した情報処理システムの一実施の形態の構成を示す図である。
【0038】
図3において、画像送信装置11および、画像受信装置12は、インターネットを含むネットワーク10を介して、接続されている。画像送信装置11は、例えばJPEG2000などの符号化方式により符号化された階層符号化データを含むパケット(以下の説明において、階層符号化データを含むパケットをデータパケットと称する)を生成し、生成したデータパケットを、ネットワーク10を介して、画像受信装置12に実時間送信する。また、画像送信装置11は、画像受信装置12より、画像送信装置11がデータパケットを送信した送信時刻やパケット損失に関する情報を含むパケット(以下の説明において、画像受信装置12から画像送信装置11に送信されるパケットを応答パケットと称する)を受信し、これらの情報に基づいて、データパケットの送信レートを制御する。
【0039】
画像受信装置12は、画像送信装置11から受信したデータパケットから、階層符号化データを取得し、所定の記録媒体に記録するとともに、画像送信装置11によるデータパケットの送信時刻やパケット損失に関する情報を含む応答パケットを生成し、この応答パケットを、画像送信装置11に送信する。
【0040】
次に、図4は、画像送信装置11の内部の構成例を表している。図4において、操作部101は、ユーザからの操作の入力を受け付け、受け付けられた操作に対応する操作情報を制御部102に通知する。制御部102は、予め設定されたプログラムや、操作部101からの操作情報に基づいて、画像送信装置11の各部の動作を制御する。
【0041】
記録媒体103には、JPEG2000などの符号化方式により符号化された階層符号化データが記録されており、適宜、この階層符号化データを、パケット生成部105に供給する。入力部104は、図示せぬ外部機器(例えば、撮像装置やマイクロフォン)より、階層符号化データの入力を受け付け、入力された階層符号化データを、パケット生成部105に供給する。
【0042】
パケット生成部105は、階層設定部123からの制御に従って、記録媒体103、または入力部104から供給された階層符号化データを分割し、分割したデータを含むデータパケットを生成する。パケット生成部105は、例えば、図2に示されるように、階層符号化データを、レイヤ毎に複数個に分割し、それぞれのデータを含むデータパケットを生成する。そして、パケット生成部105は、生成されたデータパケットのうち、階層設定部123から、廃棄するように指令されたデータパケットを廃棄し、廃棄されずに残ったパケットを、パケット送信部106に供給する。なお、パケット生成部105は、生成したデータパケットに、TCP/IP(Transmission Control Protocol/Internet Protocol)、またはUDP/IP(User Datagram Protocol/Internet Protocol)のパケットヘッダを付加する。パケットヘッダには、データパケットの個々を識別するためのシーケンス番号(以下、パケットヘッダ含まれるシーケンス番号をパケットIDと称する)が含まれている。
【0043】
パケット送信部106は、パケット生成部105により生成されたデータパケットが供給されると、これを、所定のタイミングで、ネットワーク10を介して、画像受信装置12に送信する。なお、パケット送信部106は、階層設定部123による制御を受ける。また、パケット送信部106は、データパケットを送信するとき、そのデータパケットのパケットヘッダに、現在時刻を、データパケットの送信時刻として記録する。
【0044】
パケット受信部107は、画像受信装置12より、応答パケットを受信し、これを送信レート算出部121に供給する。
【0045】
レート制御部108は、パケット受信部107により受信された応答パケットに基づいて、パケット生成部105およびパケット送信部106を制御し、データパケットの送信レートを最適な値に調節する。レート制御部108内の送信レート算出部121は、パケット受信部107から供給された応答パケットに基づいて、データパケットの理想的な送信レートを算出し、算出結果をパケット数算出部122に通知する。パケット数算出部122は、送信レート算出部121からの通知に基づいて、画像受信装置12に送信する理想的なパケット数を算出し、階層設定部123に通知する。階層設定部123は、パケット数算出部122から通知された送信レートに基づいて、画像受信装置12に送信するデータパケットのレイヤ(階層)を設定する。
【0046】
次に、図5は、画像受信装置12の内部の構成例を表している。図5において、操作部151は、ユーザからの操作の入力を受け付け、受け付けられた操作に対応する操作情報を制御部152に通知する。制御部152は、予め設定されたプログラムや、操作部151からの操作情報に基づいて、画像受信装置12の各部の動作を制御する。
【0047】
パケット受信部153は、画像送信装置11から送信されたデータパケットを、ネットワーク10を介して受信し、データパケットに含まれている階層符号化データを、記録媒体154に記録するとともに、データパケットに付加されているパケットヘッダを読み出し、パケットヘッダに含まれている情報、すなわち、パケットIDとデータパケットの送信時刻に関する情報を状態測定部155に供給する。
【0048】
記録媒体154は、例えば、ハードディスクにより構成され、パケット受信部153から供給された階層符号化データが記録されるとともに、図示せぬ外部機器により、記録された階層符号化データが読み出される。
【0049】
状態測定部155は、パケット受信部153からパケットIDとデータパケットの送信時刻に関する情報を受信する。そして、状態測定部155は、パケット受信部153から供給されたパケットIDを基に、損失パケットの有無を判定し、損失パケットがある場合、損失パケットのシーケンス番号を、損失パケットIDとして取得する。さらに、状態測定部155は、データパケットを受信した受信時刻を取得する。そして、状態測定部155は、パケットヘッダから読み出されたデータパケット送信時刻、およびパケットID、並びに、自らが取得したデータパケット受信時刻、および損失パケットIDを、パケット生成部156に供給する。
【0050】
パケット生成部156は、状態測定部155から、パケットヘッダから読み出されたデータパケット送信時刻、およびパケットID、並びに、自らが取得したデータパケット受信時刻、および損失パケットIDが供給された場合、これらの情報を含む応答パケットを生成し、この応答パケットをパケット送信部157に供給する。
【0051】
パケット送信部157は、パケット生成部156から供給された応答パケットを、ネットワーク10を介して、画像送信装置11に送信する。なお、パケット送信部157は、応答パケットを送信するとき、その応答パケットのパケットヘッダに、現在時刻を、応答パケットの送信時刻として記録する。
【0052】
次に、図6のフローチャートを参照して、画像送信装置11の画像送信処理、および画像受信装置の画像受信処理について説明する。なお、以下の説明においては、画像送信装置11から画像受信装置12に送信する階層符号化データとして、図2に示されるJPEG2000の符号化方式により符号化された階層符号化データを採用した場合を説明する。すなわち、図2に示されるように、階層符号化データは、4つのレイヤ(階層)を有し、各レイヤは5個のパケットに分割される。
【0053】
図6のステップS1において、画像送信装置11のパケット生成部105は、階層設定部123からの制御に従って、記録媒体103、または入力部104から供給される階層符号化データをパケット化し、データパケットを生成する。ステップS2において、パケット送信部106は、パケット生成部105がステップS1で生成したデータパケットを、ネットワーク10を介して、画像受信装置12に送信する。その後、処理はステップS1に戻り、ステップS1以降の処理が繰り返される。なお、ステップS2の送信処理の詳細な説明は後述する。
【0054】
画像受信装置12のパケット受信部153は、ステップS11において、画像送信装置11が、ステップS2で送信したデータパケットを受信する。ステップS12において、画像受信装置12のパケット受信部153は、ステップS11で受信されたデータパケットより、階層符号化データを読み出し、この階層符号化データを、記録媒体154に記録する。その後、処理はステップS11に戻り、ステップS11以降の処理が繰り返される。
【0055】
以上のようにして、データパケットが、画像送信装置11から画像受信装置12に実時間送信され、記録媒体154に記録される。記録媒体154に記録された階層符号化データは、適宜、外部機器により読み出され、デコードされ、画像が再生される。
【0056】
ところで、本発明においては、画像受信装置12から画像送信装置11に、応答パケットが送信され、この応答パケットに基づいて、データパケットの送信レートが制御される。
【0057】
そこで、次に、図7のフローチャートを参照して、画像受信装置12の確認応答処理、すなわち、画像受信装置12が、応答パケットを作成し、画像送信装置11に送信する処理について説明する。
【0058】
ステップS51において、画像受信装置12の制御部152は、パケット受信部153を監視し、パケット受信部153がデータパケットを受信するまで待機し、パケット受信部153がデータパケットを受信した場合、処理はステップS52に進む。ステップS52において、状態測定部155は、内蔵する内部時計より、現在時刻を取得する。ステップS53において、状態測定部155は、パケット受信部153から、パケットヘッダとして付加されていた情報である、データパケットの送信時刻、およびパケットIDを取得し、パケットIDに基づいて、パケットの損失の有無を判定する。
【0059】
すなわち、パケットIDは、シーケンス番号であるため、今回受信したデータパケットのパケットIDが、前回受信したデータパケットのパケットIDと連番になっているか否かを判定することにより、データパケットの損失の有無を判定することができる。例えば、前回受信したデータパケットのパケットIDが「10」で、今回受信したデータパケットのパケットIDが「11」であった場合、「10」と「11」で連続しているので、状態測定部155は、データパケットの損失はないと判定する。また、例えば、前回受信したデータパケットのパケットIDが「10」で、今回受信したデータパケットのパケットIDが「12」であった場合、「10」と「12」で連続していないので、状態測定部155は、データパケットが損失していると判定する。
【0060】
ステップS53において、状態測定部155が、データパケットの損失がないと判定した場合、処理はステップS54に進む。
【0061】
ステップS54において、状態測定部155は、ステップS52で取得したデータパケットの受信時刻、並びにデータパケットのパケットヘッダから取得したデータパケットの送信時刻およびパケットIDを、パケット生成部156に供給する。パケット生成部156は、状態測定部155から供給された、データパケットの受信時刻、並びにデータパケットの送信時刻およびパケットIDを情報として含む応答パケットを生成し、この応答パケットをパケット送信部157に供給する。その後、処理はステップS56に進む。
【0062】
ステップS53において、状態測定部155が、データパケットの損失があると判定した場合、処理はステップS55に進む。
【0063】
ステップS55において、状態測定部155は、損失したパケットのパケットIDを特定する。例えば、前回受信したデータパケットのパケットIDが「10」で、今回受信したデータパケットのパケットIDが「12」であった場合、状態測定部155は、損失パケットIDは「11」であると特定する。状態測定部155は、ステップS52で取得したデータパケットの受信時刻、データパケットのパケットヘッダから取得したデータパケットの送信時刻およびパケットID、並びに損失パケットIDを、パケット生成部156に供給する。パケット生成部156は、状態測定部155から供給された、データパケットの受信時刻、データパケットの送信時刻およびパケットID、並びに損失パケットIDを情報として含む応答パケットを生成し、この応答パケットをパケット送信部157に供給する。その後、処理はステップS56に進む。
【0064】
ステップS56において、パケット送信部157は、パケット生成部156から供給された応答パケットを、ネットワーク10を介して、画像送信装置11に送信する。なお、パケット送信部157は、応答パケットを送信する直前に、内蔵する内部時計から現在時刻を取得し、この現在時刻を、応答パケットの送信時刻として、パケットヘッダに記録する。
【0065】
その後、処理はステップS51に戻り、ステップS51以降の処理が繰り返される。
【0066】
以上のようにして、画像受信装置12から画像送信装置11に対して、応答パケットが送信される。
【0067】
画像送信装置11は、画像受信装置12から受信した応答パケットに基づいて、データパケットの送信レートを制御する。
【0068】
次に、図8のフローチャートを参照して、画像送信装置11のレート制御処理、すなわち、データパケットの送信レートの制御について説明する。
【0069】
ステップS101において、制御部102は、パケット受信部107を監視し、パケット受信部107が応答パケットを受信するまで待機する.そして、パケット受信部107が応答パケットを受信したとき、処理はステップS102に進む。
【0070】
ステップS102において、レート制御部108の送信レート算出部121は、パケット受信部107が受信した応答パケットを、パケット受信部107より取得するとともに、パケット受信部107が応答パケットを受信した受信時刻を、内蔵する内部時計より取得する。そして、送信レート算出部121は、取得した応答パケットの受信時刻、並びに応答パケットに含まれているデータパケットの送信時刻、データパケットの受信時刻、および応答パケットの送信時刻から、RTT(Round Trip Time)を算出する。
【0071】
すなわち、RTTは、画像送信装置11から送信されたデータパケットが画像受信装置12により受信されるまでの時間(この時間をT1とする)と、画像受信装置12から送信された応答パケットが画像送信装置11により受信されるまでの時間(この時間をT2とする)の和(T1+T2)である。
【0072】
ここで、画像送信装置11から送信されたデータパケットが画像受信装置12により受信されるまでの時間T1は、データパケットの受信時刻からデータパケットの送信時刻を引き算して求められる。また、画像受信装置12から送信された応答パケットが画像送信装置11により受信されるまでの時間T2は、応答パケットの受信時刻から応答パケットの送信時刻を引き算して求められる。
【0073】
以上のようにして、送信レート算出部121が、RTTを取得した後、処理は、ステップS103に進む。
【0074】
ステップS103において、送信レート算出部121は、応答パケットに含まれている損失パケットIDに基づいて、単位時間あたりのパケットロス率を算出する。
【0075】
ステップS104において、送信レート算出部121は、送信レートTを算出する。送信レートの算出方法には、例えば、TFRC(TCP-Friendly Rate Control)を利用することができる。なお、TFRCについては、S.Floyd,M.Handley,J.Pandhye and J.Widmer,“Equation-Based Congestion Control for Unicast Applications”,Proceedings of ACM SIGCOMM 2000,May 2000に詳細な説明がある。TFRCにおいては、パケットロス率とRTTを利用して、画像送信装置11からデータパケットを送信する理想的な送信レートを、以下の式(この式を式(1)とする)により予測する。
【0076】
【数1】

Figure 2004193992
【0077】
式(1)において、Tは理想的な送信レート、sはパケットサイズ、pはパケットロス率、tはTCP(Transmission Control Protocol)のタイムアウト時間(通常は、RTTの4倍)である。送信レート算出部121は、式(1)により、送信レートTを算出した後、算出した送信レートTを、パケット数算出部122に通知する。その後、処理はステップS105に進む。
【0078】
ステップS105において、パケット数算出部122は、送信パケット数を以下の式(この式を式(2)とする)により、算出する。
【0079】
n=(f×s)/T
【0080】
式(2)において、nは送信パケット数、fはフレームレート、sはパケットサイズ、TはステップS104で算出された送信レートである。パケット数算出部122は、送信パケット数nを算出した後、算出した送信パケット数nを、階層設定部123に通知する。その後、処理はステップS106に進む。
【0081】
ステップS106において、階層設定部123は、変数LをL=0に初期化する。その後、処理はステップS107に進む。ステップS107において、階層設定部123は、以下の式(この式を式(3)とする)が成立するか否かを判定する。
【0082】
(L+1)×5≦n
【0083】
式(3)において、「5」は、1つのレイヤに含まれるパケットの個数を表している。すなわち、図2においては、1つのレイヤは、5個のパケットに分割されているので、式(3)において「5」とされている。そして、式(3)が成立する場合、処理はステップS108に進む。
【0084】
ステップS108において、階層設定部123は、変数Lが4以上であるか否かを判定し、4以上ではない(4未満である)と判定した場合、処理はステップS109に進む。なお、ステップS108における判定の基準「4」は、レイヤの個数を表している。すなわち、図2において、階層符号化データは、レイヤL1乃至L4の4個のレイヤにより構成されていたため、ステップS108において、判定の基準が「4」とされる。
【0085】
ステップS109において、階層設定部123は、変数Lの値を1だけインクリメントする。その後、処理はステップS107に戻り、ステップS107以降の処理が繰り返される。
【0086】
ステップS107において、階層設定部123が、式(3)が成立しないと判定した場合、ステップS108の処理はスキップされ、処理はステップS110に進む。また、ステップS108において、階層設定部123が、変数Lは4以上であると判定した場合、処理はステップS110に進む。
【0087】
例えば、ステップS105で、n=17と算出された場合、ステップS106乃至ステップS109の処理は、以下のようになる。
【0088】
まず、ステップS106においてL=0に初期化され、ステップS107において、式(3)に、変数L=0、およびn=17が代入され、式(3)が成立するか否かが判定される。変数L=0の場合、式(3)は成立するので、処理はステップS108に進む。ステップS108において、変数Lが4以上であるか否かが判定されるが、変数L=0なので、変数Lは4以上ではないと判定され、処理はステップS109に進む。ステップS109において、変数Lが1だけインクリメントされ、L=1に設定される。
【0089】
その後、処理はステップS107に戻り、式(3)に、変数L=1、およびn=17が代入され、式(3)が成立するか否かが判定される。変数L=1の場合、式(3)は成立するので、処理はステップS108に進む。ステップS108において、変数Lが4以上であるか否かが判定されるが、変数L=1なので、変数Lは4以上ではないと判定され、処理はステップS109に進む。ステップS109において、変数Lが1だけインクリメントされ、変数L=2に設定される。
【0090】
その後、処理はステップS107に戻り、式(3)に、変数L=2、およびn=17が代入され、式(3)が成立するか否かが判定される。変数L=2の場合、式(3)は成立するので、処理はステップS108に進む。ステップS108において、変数Lが4以上であるか否かが判定されるが、変数L=2なので、変数Lは4以上ではないと判定され、処理はステップS109に進む。ステップS109において、変数Lが1だけインクリメントされ、変数L=3に設定される。
【0091】
その後、処理はステップS107に戻り、式(3)に、変数L=3、およびn=17が代入され、式(3)が成立するか否かが判定される。変数L=3の場合、式(3)は成立しないので、処理はステップS110に進む。
【0092】
ステップS110において、階層設定部123は、L+1層より上位のレイヤのデータパケットを廃棄する。ステップS111において、階層設定部123は、下位のL層までのパケットを、画像受信装置12に送信するデータパケットとして設定する。
【0093】
例えば、ステップS106乃至ステップS109の処理により、変数LがL=1に設定されていた場合、階層設定部123は、ステップS110において、図2に示される4つのレイヤのうち、レイヤL2乃至L4のパケット、すなわちパケットP6乃至P20のパケットを廃棄し、ステップS111において、図2に示されるレイヤL1のパケット、すなわちパケットP1乃至P5を、画像受信装置12に送信するデータパケットとして設定する。
【0094】
また、例えば、ステップS106乃至ステップS109の処理により、変数LがL=2に設定されていた場合、階層設定部123は、ステップS110において、図2に示される4つのレイヤのうち、レイヤL3およびL4のパケット、すなわちパケットP11乃至P20のパケットを廃棄し、ステップS111において、図2に示されるレイヤL1およびL2のパケット、すなわちパケットP1乃至P10を、画像受信装置12に送信するデータパケットとして設定する。
【0095】
また、例えば、ステップS106乃至ステップS109の処理により、変数LがL=3に設定されていた場合、階層設定部123は、ステップS110において、図2に示される4つのレイヤのうち、レイヤL4のパケット、すなわちパケットP16乃至P20のパケットを廃棄し、ステップS111において、図2に示されるレイヤL1乃至L3のパケット、すなわちパケットP1乃至P15を、画像受信装置12に送信するデータパケットとして設定する。
【0096】
また、例えば、ステップS106乃至ステップS109の処理により、変数LがL=4に設定されていた場合、階層設定部123は、ステップS110において、パケットを廃棄せず、ステップS111において、図2に示されるレイヤL1乃至L4のパケット、すなわちパケットP1乃至P20を、画像受信装置12に送信するデータパケットとして設定する。
【0097】
ステップS111の処理の後、処理はステップS101に戻り、ステップS101以降の処理が繰り返される。
【0098】
このようにして、画像送信装置11から画像受信装置12に送信する階層符号化データの階層が決定される。
【0099】
階層設定部123は、以上の処理による設定に基づいて、パケット生成部105により生成されたデータパケットのうち、画像受信装置12に送信するデータパケットのみをパケット生成部105に選択させ、それ以外のデータパケットを廃棄させる。その後、選択されたデータパケットのみが、パケット生成部105からパケット送信部106に供給される。
【0100】
次に、図9のフローチャートを参照して、図6のステップS2の処理、すなわち、データパケットを、パケット送信部106から画像受信装置12に送信する送信処理について説明する。
【0101】
パケット送信部106は、パケット生成部105から、送信すべきパケットとして設定されたデータパケットの供給を受けて、ステップS151において、送信するデータパケットの階層iをi=1に設定する。その後、処理はステップS152に進む。
【0102】
ステップS152において、パケット送信部106は、階層iのデータパケットのパケットヘッダに、送信時刻を記録して、データパケットを画像受信装置12に送信する。その後、処理はステップS153に進む。
【0103】
ステップS153において、パケット送信部106は、階層iを1だけインクリメントする。その後、処理はステップS154に進む。
【0104】
ステップS154において、パケット送信部106は、階層iが、図8のフローチャートのステップS106乃至ステップS109の処理により設定された変数Lより大きいか否かを判定し、階層iが変数Lより大きくない場合(階層iが変数L以下の場合)、処理はステップS152に戻り、ステップS152以降の処理が繰り返される。そして、ステップS154において、階層iが変数Lより大きいと判定された場合、パケット送信部106は、データパケットの送信を終了する。
【0105】
例えば、変数LがL=3であった場合、まず、ステップS151でi=1に設定され、ステップS152において、i=1に対応するレイヤ、すなわち図2においてレイヤL1のパケットP1乃至P5が、画像受信装置12に送信される。その後、ステップS153において、iが1だけインクリメントされ、i=2に設定される。そして、ステップS154において、iがLより大きいか否かが判定されるが、i=2であり、iはLより大きくないので、処理はステップS152に戻る。
【0106】
その後、ステップS152において、i=2に対応するレイヤ、すなわち図2においてレイヤL2のパケットP6乃至P10が、画像受信装置12に送信される。その後、ステップS153において、iが1だけインクリメントされ、i=3に設定される。そして、ステップS154において、iがLより大きいか否かが判定されるが、i=3であり、iはLより大きくないので、処理はステップS152に戻る。
【0107】
その後、ステップS152において、i=3に対応するレイヤ、すなわち図2においてレイヤL3のパケットP11乃至P15が、画像受信装置12に送信される。その後、ステップS153において、iが1だけインクリメントされ、i=4に設定される。そして、ステップS154において、iがLより大きいか否かが判定されるが、i=4であり、iはLより大きいので、処理が終了される。
【0108】
以上のようにして、画像送信装置11から画像受信装置12に対して、1階層分ずつ、データパケットが送信される。
【0109】
以上のようにして、データパケットを送信するようにした場合、画像送信装置11から画像受信装置12に送信されるデータパケットの個数は、例えば、図10のように制御される。
【0110】
図10は、図1と同様、縦軸が、ウィンドウサイズを表し、横軸が時間軸を表している。図10のグラフにおいては、時刻t0乃至t1の間、レイヤL1に相当する5個のパケットP1乃至P5が送信するデータパケットとして設定され、時刻t1乃至t2の間、レイヤL1およびL2に相当する10個のパケットP1乃至P10が送信するデータパケットとして設定され、時刻t2乃至t3の間、レイヤL1乃至L3に相当する15個のパケットP1乃至P15が送信するデータパケットとして設定され、時刻t3乃至t4の間、レイヤL1およびL2に相当する10個のパケットP1乃至P10が送信するデータパケットとして設定され、時刻t4乃至t5の間、レイヤL1乃至L3に相当する15個のパケットP1乃至P15が送信するデータパケットとして設定され、時刻t5乃至t6の間、レイヤL1およびL2に相当する10個のパケットP1乃至P10が送信するデータパケットとして設定され、時刻t6乃至t7の間、レイヤL1乃至L3に相当する15個のパケットP1乃至P15が送信するデータパケットとして設定され、時刻t7以降、レイヤL1およびL2に相当する10個のパケットP1乃至P10が送信するデータパケットとして設定されている。
【0111】
図11は、図10に示される、本発明を適用した場合の送信パケット数の推移を、図1の従来例と比較した図である。
【0112】
図11において、図1の従来例の送信パケットの個数の推移が、点線で示されている。また、図10に示される、本発明を適用した場合の送信パケット数の推移が、実線で示されている。図11において、斜線で示された範囲のパケットは、従来例において、画像送信装置11から画像受信装置12に送信されても、画質の向上が期待できないデータを含むパケットである。
【0113】
各レイヤを構成するデータパケットを、一まとめにして、画像送信装置11から画像受信装置12に送信することにより、画像受信装置12は、受信されたデータパケットのデータを全て利用して、より高画質な画像を提供することができ、画像送信装置11から画像受信装置12に対して無駄に送信するデータを無くすことが可能となる。
【0114】
また、図11において、時刻t0乃至t1の間、従来のレート制御では、送信パケット数が5個未満であるため、画像受信装置12は、これらのデータパケットを受信しても、画像を再現することができない。また、図11において、時刻t2乃至t3の間、時刻t4乃至t5の間、および時刻t6乃至t7の間においては、送信パケット数は9個であるため、これらのデータパケットを受信した画像受信装置12は、受信したデータパケットのうち、4個を利用することができなかった。
【0115】
それに対して、本発明においては、時刻t0から、送信パケット数が1つのレイヤ分である5個に設定されているため、画像受信装置12は、データパケットの受信開始直後から、データをデコードして画像を再生することができる。本発明においては、レイヤ単位で、パケットを一まとめに増減させることにより、無駄なデータパケットの送受信をなくすことができる。
【0116】
ところで、図11において、斜線で示された部分は、送信可能なパケット数の余裕を表しているということもできる。そこで、この余裕を利用して、冗長データを送信するようにしても良い。
【0117】
図12は、送信可能なパケット数の余裕を利用して、エラー訂正用の冗長データを送信するようにした場合における、画像送信装置11のレート制御処理を表すフローチャートである。
【0118】
図12のフローチャートの、ステップS201乃至ステップS211の処理は、図8のステップS101乃至ステップS111の処理と同様であるため、説明を省略する。図12においては、ステップS211の処理の後、ステップS212において、階層設定部123は、n−(L×5)個分の冗長データを、送信するパケットとして設定する。すなわち、階層設定部123は、ステップS205で算出された送信パケット数nから、ステップS211で設定された、送信するレイヤのパケット数を差し引いた余りの個数分だけ、エラー訂正用の冗長データを、送信するパケットとして設定する。
【0119】
その後、処理はステップS201に戻り、ステップS201以降の処理が繰り返される。
【0120】
以上のように、ステップS205で算出された送信パケット数nから、ステップS211で設定された、送信するレイヤのパケット数を差し引いた余りの個数分だけ、エラー訂正用の冗長データを、送信するパケットとして設定した場合、階層設定部123は、パケット生成部105に、n−(L×5)個分のエラー訂正用の冗長データを、送信するパケットとして作成するように指令する。パケット生成部105は、階層設定部123からの指令に従って、n−(L×5)個分のエラー訂正用の冗長データを、送信するパケットとして作成する。
【0121】
以上のように、余り個数分だけ、エラー訂正用の冗長データを送信することにより、画像受信装置12は、パケットの欠損が発生しても、エラー訂正用の冗長データから、欠損したパケットのデータに対応するデータを作成することができる可能性がある。従って、画像受信装置12は、画像送信装置11に対して、欠損したパケットの再送要求をしなければならない可能性を減少させることができる。
【0122】
ところで、ネットワーク10が優先制御を提供する場合、優先度を設定して、全データパケットを送信し、優先度の低いデータパケットが何個、画像受信装置12に届いたかを測定することにより、ネットワーク10にどの程度、帯域が空いているかを推測することができる。
【0123】
例えば、理想的な送信パケット数nがn=12である場合、画像送信装置11は、レイヤL1およびL2の10個のデータパケット(パケットP1乃至P10)を、高優先度で送信し、レイヤL3およびL4のデータパケットを低優先度で送信する。そして、画像受信装置12からの応答パケットに基づいて、画像受信装置12に届いたデータパケットの個数を特定する。例えば、画像受信装置12に、7個のデータパケットが届いた場合、画像送信装置11は、あと7個分のデータパケットを送信するだけの帯域の余裕があると判断し、それ以降の理想的な送信パケット数nの値をn=10+7=17と設定する。このようにしても良い。
【0124】
次に、図13のフローチャートを参照して、優先度の高いレイヤのデータを優先して送信する場合の画像送信装置11のレート制御処理について説明する。
【0125】
図13のフローチャートの、ステップS231乃至ステップS239の処理は、図8のステップS101乃至ステップS109の処理と同様であるため、説明を省略する。図13においては、ステップS238の処理の後、ステップS240において、階層設定部123は、下位のL層までのレイヤのデータパケットを、高優先度で画像受信装置12に送信するパケットとして設定する。例えば、変数L=2である場合、階層設定部123は、図2のレイヤL1およびL2のデータパケットを、高優先度のパケットとして設定する。
【0126】
その後、ステップS241において、階層設定部123は、(L+1)層以上のレイヤのデータパケットを、低優先度で画像受信装置12に送信するパケットとして設定する。例えば、変数L=2である場合、階層設定部123は、図2のレイヤL3およびL4のデータパケットを、低優先度のパケットとして設定する。
【0127】
ステップS241の処理の後、ステップS242において、階層設定部123は、応答パケットに基づいて、送信パケット数nを設定する。すなわち、応答パケットには、損失パケットIDが含まれているので、この損失パケットIDを基に、何個のデータパケットが、画像受信装置12に届いたかを求めることができる。そこで、階層設定部123は、損失パケットIDを基に、低優先度で送信したデータパケットのうち、画像受信装置12に届いたデータパケットの個数を算出し、算出した値を、現在設定されている送信パケット数nに足し算して、新たな送信パケット数nを算出する。
【0128】
その後、処理はステップS236に戻り、ステップS236以降の処理が繰り返される。
【0129】
以上のように、優先度の高いレイヤのデータを優先して、送信するようにしてもよい。
【0130】
なお、図13のフローチャートの処理においては、ネットワーク10の帯域の空き容量を推測することはできるが、たとえ1つのレイヤ分、余分にデータパケットが画像受信装置12に届いたとしても、それが、あるレイヤを構成する全パケットが揃うとは限らない。そこで、現在高優先度で送信しているレイヤより、1つ上位のレイヤのデータパケットだけ、低優先度で送信するようにしても良い。次に、図14のフローチャートを参照して、この場合の画像送信装置11のレート制御処理について説明する。
【0131】
図14のフローチャートの、ステップS261乃至ステップS270、並びにステップS272の処理は、図13のステップS231乃至ステップS240、並びにステップS242の処理と同様であるため、説明を省略する。図14においては、ステップS270の処理の後、ステップS271において、階層設定部123は、(L+1)層のレイヤのデータパケットを、低優先度で画像受信装置12に送信するパケットとして設定する。例えば、変数L=2である場合、階層設定部123は、図2のレイヤL3のデータパケットを、低優先度のパケットとして設定する。その後、処理はステップS272に進む。
【0132】
以上のようにすることにより、例えば、レイヤL1を構成するパケットP1乃至P5を高優先度で送信し、レイヤL2を構成するパケットP6乃至P10を低優先度で送信した結果、レイヤL1およびL2を構成する全パケットP1乃至P10が、画像受信装置12に届いた場合、それ以降、レイヤL1およびL2を構成するパケットP1乃至P10を、高優先度で送信し、レイヤL3を構成するパケットP11乃至P15を低優先度で送信することになり、結果的に、より多くの階層符号化データを送信することが可能となる。従って、外部機器が、画像受信装置12から階層符号化データを取得し再生した場合、より高精細な画像を表示することが可能となる。
【0133】
以上、説明したように、本発明によれば、単位時間当りに送信可能なパケット数が増加した場合、レイヤ(階層)の区切り単位分だけ、送信可能なパケット数が増加するまで、送信パケット数の増加を行なわないようにし、単位時間当りに送信可能なパケット数が減少した場合、送信可能なパケット数以下になるように、レイヤ(階層)の区切り単位分だけ、パケット数を減少させるようにしたので、無駄に送受信するデータパケットをなくすことができ、より効率的に、データの送受信を行なうことが可能となる。また、画像受信装置12の側でも、受信したデータパケットから、利用することができないデータパケットを選り分ける処理を省略することが可能となる。
【0134】
なお、以上の説明においては、図2に示されるような、4つのレイヤを有し、1つのレイヤが5個のパケットに分割される階層符号化データの場合を例にしているが、階層符号化データであれば、レイヤの数、および1レイヤ当りのパケット数は、図2に示されるような個数でなくても良い。
【0135】
また、本発明は、実時間ストリーミングに適用することも可能である。
【0136】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【0137】
図15は、画像送信装置11、または画像受信装置12をソフトウェアにより実現する場合の情報処理装置の一実施の形態の構成を示している。パーソナルコンピュータ400のCPU401は、パーソナルコンピュータ400の動作の全体を制御する。また、CPU401は、バス404および入出力インターフェース405を介してユーザからキーボードやマウスなどからなる入力部406から指令が入力されると、それに対応してROM(Read Only Memory)402に格納されているプログラムを実行する。あるいはまた、CPU401は、ドライブ410に接続された磁気ディスク421、光ディスク422、光磁気ディスク423、または半導体メモリ424から読み出され、記憶部408にインストールされたプログラムを、RAM(Random Access Memory)403にロードして実行する。これにより、上述した画像送信装置11、または画像受信装置12の機能が、ソフトウェアにより実現されている。さらに、CPU401は、通信部409を制御して、外部と通信し、データの授受を実行する。また、入出力インタフェース405には、ディスプレイやスピーカなどにより構成される出力部407も接続されている。
【0138】
プログラムが記録されている記録媒体は、図15に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク421(フレキシブルディスクを含む)、光ディスク422(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク423(MD(Mini-Disc)を含む)、もしくは半導体メモリ424などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM402や、記憶部408に含まれるハードディスクなどで構成される。
【0139】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0140】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0141】
【発明の効果】
以上のように、第1の本発明によれば、ネットワークを介して、情報を送受信することができる。また、第1の本発明によれば、より効率的に、情報を送受信することができる。さらに、第1の本発明によれば、ネットワークの帯域の空き領域を利用して、エラー訂正を行なうことができる。また、第1の本発明によれば、ネットワークの帯域の空き容量を予測することができる。
【0142】
第2の本発明によれば、ネットワークを介して、情報を送信することができる。また、第2の本発明によれば、より効率的に、情報を送信することができる。さらに、第2の本発明によれば、ネットワークの帯域の空き領域を利用して、エラー訂正を行なうことができる。また、第2の本発明によれば、ネットワークの帯域の空き容量を予測することができる。
【図面の簡単な説明】
【図1】従来の送信パケット数の制御を説明するための図である。
【図2】JPEG2000の符号化方式により符号化された1フレーム分のパケットの例を示す図である。
【図3】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図4】画像送信装置の構成例を示すブロック図である。
【図5】画像受信装置の構成例を示すブロック図である。
【図6】画像送信装置の画像送信処理、および画像受信装置の画像受信処理を説明するフローチャートである。
【図7】画像受信装置の確認応答処理を説明するフローチャートである。
【図8】画像送信装置のレート制御処理を説明するフローチャートである。
【図9】図6のステップS2を詳細に説明するフローチャートである。
【図10】本発明における送信パケット数の制御を説明する図である。
【図11】本発明における送信パケット数の制御を従来の送信パケット数の制御と比較する図である。
【図12】画像送信装置のレート制御処理を説明する他のフローチャートである。
【図13】画像送信装置のレート制御処理を説明する、さらに他のフローチャートである。
【図14】画像送信装置のレート制御処理を説明するフローチャートである。
【図15】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
10 ネットワーク, 11 画像送信装置, 12 画像受信装置, 101 操作部, 102 制御部, 103 記録媒体, 104 入力部, 105 パケット生成部, 106 パケット送信部, 107 パケット受信部, 108 レート制御部, 121 送信レート算出部, 122 階層設定部, 151 操作部, 152 制御部, 153 パケット受信部, 154 記録媒体, 155 状態測定部, 156 パケット生成部, 157 パケット送信部, 401 CPU, 402 ROM, 403 RAM, 404 バス, 405 入出力インタフェース, 406 入力部, 407 出力部, 408 記憶部, 409 通信部, 410 ドライブ, 421 磁気ディスク, 422 光ディスク, 423 光磁気ディスク, 424 半導体メモリ[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing system, an information processing apparatus and method, a recording medium, and a program, and more particularly to an information processing system, an information processing apparatus and method, a recording medium, and a program that can transmit and receive information more efficiently. .
[0002]
[Prior art]
The control of the data transmission rate determines the amount of transmission data per unit time. On the Internet, which is a packet communication network, if the packet size (data amount per packet) is constant, the transmission rate can be controlled by controlling the number of packets transmitted per unit time.
[0003]
An example of controlling the transmission rate by controlling the number of packets transmitted per unit time is a sliding window algorithm defined in RFC (Request For Comments) 2001. This sliding window algorithm will be described with reference to FIG.
[0004]
In FIG. 1, the vertical axis represents the window size. In the sliding window algorithm, the transmitting terminal device can transmit as many packets as are included in the “window”. The window is variable in size, and the vertical axis of the graph in FIG. 1 represents the size of this window. In FIG. 1, the horizontal axis is a time axis.
[0005]
At time t0 in FIG. 1, the transmitting terminal first sets the window size to the size of one packet, and transmits one packet to the receiving terminal. When receiving the acknowledgment of the packet reception from the receiving terminal device, the transmitting terminal device sets the window size to two packets and transmits the two packets to the receiving terminal device. In this way, the transmitting terminal increases the size of the window and increases the number of packets that can be transmitted one by one each time an acknowledgment of packet reception is received from the receiving terminal. In this way, the transmitting terminal device gradually increases the number of packets transmitted per unit time.
[0006]
Here, at time t1, it is assumed that an acknowledgment indicating that at least a part of the packet transmitted from the transmitting terminal device has not been received by the receiving terminal device (a packet loss has occurred) has been notified from the receiving terminal device. . At this time (t1), the transmitting terminal device reduces the size of the window to half, and reduces the number of packets that can be transmitted to half (in FIG. 1, the number is reduced from 19 to 9). The fraction is rounded down.) Thereafter, when the transmitting terminal device receives acknowledgments from the receiving terminal device for all the packets in the window, it increases the size of the window and increases the number of packets that can be transmitted one by one.
[0007]
Then, at time t2, if a packet loss occurs again, the transmitting terminal device reduces the size of the window to half and the number of transmittable packets to half in the same manner as described above. Thereafter, when the transmitting terminal device receives acknowledgments from the receiving terminal device for all the packets in the window, the transmitting terminal device increases the size of the window and increases the number of packets that can be transmitted one by one. Thereafter, processing is performed at time t3 in the same manner as at time t1 and time t2.
[0008]
In the sliding window algorithm, the optimum data transmission rate is determined as described above.
[0009]
As described above, in order to quickly determine the optimal data transmission rate in accordance with the state of the network, when the transmission rate increases, the number of transmission packets is added (in the above example, one packet at a time). Generally, an AIMD (Additive Increase Multiple Decrease) algorithm that multiplies the number of transmission packets by a value less than 1 (1/2 in the above example) when the transmission rate decreases is generally known. (For example, see Non-Patent Document 1).
[0010]
[Non-patent document 1]
D. Chiu and R. Jain, “Analysis of the Increase / Decrease Algorithms for Congestion Avoidance in Computer Networks,” Journal of Computer Networks and ISDN, Vol. 17, No. 1, June 1989 pp.1-14
[0011]
[Problems to be solved by the invention]
Incidentally, data to be transmitted may be hierarchically encoded data. For example, JPEG (Joint Photographic Experts Group) 2000 is an example of hierarchically encoded data.
[0012]
As an example, when the hierarchically encoded data of JPEG2000 is hierarchically encoded by four layers, and five packets are required to transmit data of one layer, the hierarchical code of the entire four layers is required. The coded data requires 4 × 5 = 20 packets. FIG. 2 shows an example of data for one frame hierarchically encoded by JPEG2000.
[0013]
In FIG. 2, “Layer L1”, “Layer L2”, “Layer L3”, and “Layer L4” on the left side represent four layers. The layer L1 is the lowest layer, and becomes a higher layer in the order of the layer L2, the layer L3, and the layer L4.
[0014]
In FIG. 2, blocks on the right side of “Layer L1,” “Layer L2,” “Layer L3,” and “Layer L4” each represent a packet. That is, “P1”, “P2”, “P3”, “P4”, “P5”, “P6”, “P7”, “P8”, “P9”, “P10”, “P11”, “P12”, Each block described as “P13”, “P14”, “P15”, “P16”, “P17”, “P18”, “P19”, and “P20” represents a packet.
[0015]
In FIG. 2, the data of the layer L1 is divided into packets of "P1,""P2,""P3,""P4," and "P5," and the data of the layer L2 is divided into "P6,""P7." , “P8”, “P9”, and “P10” packets, and the data of layer L3 is divided into “P11”, “P12”, “P13”, “P14”, and “P15” packets. , Layer L4 data is divided into packets of “P16”, “P17”, “P18”, “P19”, and “P20”.
[0016]
In JPEG2000, when only the data of the layer L1 is decoded and displayed, a coarse image (this image is referred to as image 1) is displayed. When the data of the layer L1 and the layer L2 are decoded and displayed, an image is displayed. 1 is displayed (this image is referred to as image 2), and when the data of layer L1, layer L2, and layer L3 are decoded and displayed, an image finer than image 2 (this image is referred to as image 3) ) Is displayed, and when the data of the layer L1, the layer L2, the layer L3, and the layer L4 are decoded and displayed, an image finer than the image 3 (this image is referred to as an image 4) is displayed.
[0017]
However, in FIG. 2, when the data of all the packets constituting one layer are prepared, a clear image can be displayed. For example, only when all the packets P1 to P5 are collected, the data of the layer L1 can be decoded and a clear image can be displayed. Further, only when all the packets P1 to P10 are collected, the data of the layer L1 and the data of the layer L2 can be decoded and a clear image can be displayed. Similarly, only when all the packets P1 to P15 are collected, the data of the layer L1, the layer L2, and the layer L3 can be decoded, and a clear image can be displayed. Further, only when all the packets P1 to P20 are collected, the data of the layer L1, the layer L2, the layer L3, and the layer L4 can be decoded, and a clear image can be displayed.
[0018]
Therefore, for example, the image quality of the image when the data of the packets P1 to P6 is decoded does not improve much as compared with the image quality of the image when the data of the layer L1, that is, the data of the packets P1 to P5 are decoded. That is, even if there is data of the packet P6, the effect due to the data cannot be expected. Similarly, for example, the image quality of the image when the data of the packets P1 to P7 is decoded does not significantly improve as compared with the image quality of the image when the data of the layer L1, that is, the data of the packets P1 to P5 are decoded. That is, even if there is data of the packets P6 and P7, the effect due to the data cannot be expected. Similarly, for example, the image quality of the image when the data of the packets P1 to P8 is decoded does not improve much as compared with the image quality of the image when the data of the layer L1, that is, the data of the packets P1 to P5 are decoded. That is, even if there is data of the packets P6 to P8, the effect due to the data cannot be expected. Similarly, for example, the image quality of the image when the data of the packets P1 to P9 is decoded does not significantly improve as compared with the image quality of the image when the data of the layer L1, that is, the data of the packets P1 to P5 are decoded. That is, even if there is data of the packets P6 to P9, the effect due to the data cannot be expected.
[0019]
When transmitting and receiving such hierarchically encoded data by the sliding window algorithm, the transmitting terminal apparatus sequentially starts from the packet P1, which is a packet with a small number (P1, P2, P3, P4, P5,..., P19, P20 in order). ), Send the packet. That is, the transmitting terminal device preferentially transmits the packet with the smaller number in FIG. 2, that is, the packet of the layer L1, to the receiving terminal device. Transmit to the receiving terminal device.
[0020]
Here, if the window size is the size of five packets, the transmitting terminal transmits packets P1 to P5 to the receiving terminal, and the receiving terminal transmits packets P1 to P5 received from the transmitting terminal. An image corresponding to the layer L1 can be displayed using all the data of P5. Also, if the window size is the size of ten packets, the transmitting terminal device transmits the packets P1 to P10 to the receiving terminal device, and the receiving terminal device receives the packets P1 to P10 received from the transmitting terminal device. , Images corresponding to the layers L1 and L2 can be displayed. If the window size is the size of 15 packets, the transmitting terminal device transmits the packets P1 to P15 to the receiving terminal device, and the receiving terminal device transmits the packets P1 to P15 received from the transmitting terminal device. , Images corresponding to the layers L1, L2, and L3 can be displayed. If the window size is the size of 20 packets, the transmitting terminal device transmits the packets P1 to P20 to the receiving terminal device, and the receiving terminal device receives the packets P1 to P20 received from the transmitting terminal device. , The images corresponding to the layers L1, L2, L3, and L4 can be displayed.
[0021]
However, when all the packets constituting one layer are not prepared, even if the data of the packets included in the layer is used, it is not expected to improve the image quality. Therefore, there is no point in transmitting those packets. Therefore, there is a problem that packets to be transmitted are wasted.
[0022]
That is, for example, when the window size is the size of six packets, the transmitting terminal device transmits the packets P1 to P6 to the receiving terminal device, but the receiving terminal device receives the packet P1 received from the transmitting terminal device. Even if the data of the packet P6 among the data P6 to P6 is used, the improvement of the image quality cannot be expected, so that the transmission of the packet P6 is useless. Similarly, when the window size is the size of seven packets, the transmitting terminal device transmits the packets P1 to P7 to the receiving terminal device, but the receiving terminal device receives the packet P1 received from the transmitting terminal device. Even if the data of the packets P6 and P7 among the data of the packets P6 and P7 are used, the improvement of the image quality cannot be expected, so that the transmission of the packets P6 and P7 is useless. Similarly, when the window size is, for example, the size of eight packets, the transmitting terminal device transmits the packets P1 to P8 to the receiving terminal device, but the receiving terminal device receives the packets from the transmitting terminal device. Even if the data of the packets P6, P7, and P8 among the packets P1 to P8 is used, the improvement of the image quality cannot be expected, so that the transmission of the packets P6, P7, and P8 is useless. Similarly, when the window size is, for example, the size of nine packets, the transmitting terminal transmits packets P1 to P9 to the receiving terminal, but the receiving terminal receives the packets from the transmitting terminal. Even if the data of the packets P6, P7, P8, and P9 among the packets P1 to P9 is used, it is not possible to expect an improvement in the image quality. Therefore, it is useless to transmit the packets P6, P7, P8, and P9. .
[0023]
As described above, when transmitting and receiving the hierarchically encoded data by the sliding window algorithm, if the packets to be transmitted from the transmitting terminal device to the receiving terminal device are not complete for one layer, the transmitting terminal device transmits to the receiving terminal device. There is a problem that a part of the packet to be used is wasted.
[0024]
Also, the receiving terminal device needs to select an unusable packet from the received packets.
[0025]
The present invention has been made in view of such a situation, and has as its object to transmit and receive information more efficiently.
[0026]
[Means for Solving the Problems]
In the information processing system according to the present invention, the first information processing apparatus packetizes the hierarchically coded data to generate a first packet, and converts the first packet generated by the generation means into a second packet. A first transmitting unit for transmitting the first packet to the information processing device, a second packet including information on a transmission time of the first packet by the first information processing device, and information on the loss of the first packet. First receiving means for receiving from the processing device, calculating means for calculating a reference value of the number of packets of the first packet to be transmitted based on the second packet received by the first receiving means, and calculating means Setting means for setting the hierarchy of the hierarchically coded data to be packetized by the generation means based on the reference value calculated by the second information processing apparatus. Packet Receiving means for receiving the hierarchically encoded data from the first packet received by the second receiving means, and receiving the first packet received by the second receiving means from the first packet received by the second receiving means. And a second transmitting unit configured to transmit the second packet generated by the generating unit to the first information processing apparatus.
[0027]
An information processing apparatus according to the present invention generates a first packet by packetizing hierarchically encoded data, and a transmitting unit that transmits the first packet generated by the generating means to another information processing apparatus. Receiving means for receiving, from another information processing apparatus, a second packet including information on the transmission time of the first packet by the information processing apparatus and the loss of the first packet, and a second packet received by the receiving means. Calculating means for calculating a first number, which is a reference value of the number of packets of the first packet to be transmitted, based on the second packet; and generating means for generating a packet based on the first number calculated by the calculating means. Setting means for setting the layer of the layer encoded data to be converted.
[0028]
The setting unit sets a hierarchy of the hierarchical data to be packetized by the generation unit so that the number of packets of the first packet generated by the generation unit is equal to or less than the first number. You can make it.
[0029]
In the setting unit, when the layer encoded data of the layer set as the layer to be packetized is packetized, a second number that is the number of packets of the first packet generated by the generation unit is: Setting the hierarchy to be packetized so as to be equal to or less than the first number, and calculating a third number which is a remainder obtained by subtracting a second number from the first number; The means can further cause the redundant data to be packetized by a third number to generate the first packet.
[0030]
The setting means may include, when packetizing the hierarchically encoded data of the layer to be transmitted with priority, the second number which is the number of packets of the first packet generated by the generating means, Setting the hierarchy to be transmitted preferentially so as to be less than or equal to 1 and calculating a third number which is a remainder obtained by subtracting a second number from the first number; Means for packetizing the hierarchically encoded data of the layer to be transmitted preferentially to generate the first packet, and for the third number, the hierarchically encoded data of the layer not to be transmitted preferentially by the third number; Packetization can be performed to generate a first packet.
[0031]
According to the information processing method of the present invention, a generation step of packetizing hierarchically encoded data to generate a first packet, and transmitting the first packet generated by the processing of the generation step to another information processing apparatus. A transmitting step, a receiving time of transmitting the first packet by the information processing apparatus, and a receiving step of receiving a second packet including information on the loss of the first packet from another information processing apparatus; A calculating step of calculating a first number, which is a reference value of the number of packets of the first packet to be transmitted, based on the received second packet; and a first number calculated by the processing of the calculating step. A setting step of setting a layer of the layer coded data to be packetized by the processing of the generation step.
[0032]
The program of the recording medium according to the present invention includes a generation step of packetizing hierarchically encoded data to generate a first packet for transmission to another information processing apparatus, and transmitting the first packet by the information processing apparatus. When the second packet including the time and the information on the loss of the first packet is received from another information processing apparatus, the number of packets of the first packet to be transmitted is calculated based on the received second packet. A calculating step of calculating a reference value; and a setting step of setting a layer of the layer coded data to be packetized by the processing of the generating step based on the reference value calculated by the processing of the calculating step. .
[0033]
The program according to the present invention is configured to transmit the hierarchically encoded data, which is the hierarchically encoded data, to another information processing apparatus by a packet communication. Generating a first packet by packetizing the hierarchically encoded data, and transmitting a second packet including information on a transmission time of the first packet by the information processing apparatus and loss of the first packet, A calculation step of calculating a reference value of the number of packets of the first packet to be transmitted based on the received second packet when received from another information processing apparatus; and a reference value calculated by the processing of the calculation step. A setting step of setting a layer of the layer-encoded data to be packetized by the processing of the generation step based on .
[0034]
In the information processing system of the present invention, in the first information processing device, the hierarchically encoded data is packetized to generate a first packet, and the generated first packet is transmitted to the second information processing device. Is transmitted from the second information processing device, the second packet including the transmission time of the first packet by the first information processing device and the information on the loss of the first packet is received from the second information processing device. A reference value of the number of packets of the first packet to be transmitted is calculated based on the second packet, and a layer of the layer coded data to be packetized is set based on the calculated reference value. Further, in the second information processing device, the first packet is received from the first information processing device, hierarchically encoded data is obtained from the received first packet, and the received first packet is received. , A second packet is created, and the created second packet is transmitted to the first information processing device.
[0035]
In the information processing apparatus and method, the recording medium, and the program according to the present invention, the hierarchically encoded data is packetized to generate a first packet, and the generated first packet is transmitted to another information processing apparatus. A second packet, which is transmitted and includes a transmission time of the first packet by the information processing device and information on the loss of the first packet, is received from another information processing device, based on the received second packet. Then, a first number, which is a reference value of the number of packets of the first packet to be transmitted, is calculated, and based on the calculated first number, a layer of hierarchically encoded data to be packetized is set.
[0036]
The present invention can be applied to electronic devices connected to a network.
[0037]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 3 is a diagram showing a configuration of an embodiment of an information processing system to which the present invention is applied.
[0038]
In FIG. 3, an image transmitting device 11 and an image receiving device 12 are connected via a network 10 including the Internet. The image transmitting device 11 generates and generates a packet including hierarchically encoded data encoded by an encoding method such as JPEG2000 (in the following description, a packet including hierarchically encoded data is referred to as a data packet). The data packet is transmitted to the image receiving device 12 via the network 10 in real time. In addition, the image transmitting apparatus 11 transmits a packet including information on a transmission time at which the image transmitting apparatus 11 transmitted a data packet and a packet loss from the image receiving apparatus 12 (in the following description, from the image receiving apparatus 12 to the image transmitting apparatus 11). The transmitted packet is referred to as a response packet), and the transmission rate of the data packet is controlled based on the information.
[0039]
The image receiving device 12 acquires hierarchically encoded data from the data packet received from the image transmitting device 11 and records it on a predetermined recording medium, and also transmits information on the transmission time and packet loss of the data packet by the image transmitting device 11. A response packet including the response packet is generated, and the response packet is transmitted to the image transmission device 11.
[0040]
Next, FIG. 4 illustrates an example of the internal configuration of the image transmission device 11. 4, an operation unit 101 receives an input of an operation from a 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 device 11 based on a preset program and operation information from the operation unit 101.
[0041]
The recording medium 103 records hierarchically encoded data encoded by an encoding method such as JPEG2000, and supplies the hierarchically encoded data to the packet generation unit 105 as appropriate. The input unit 104 receives an input of hierarchically encoded data from an external device (for example, an imaging device or a microphone) not shown, and supplies the input hierarchically encoded data to the packet generation unit 105.
[0042]
The packet generation unit 105 divides the layer coded data supplied from the recording medium 103 or the input unit 104 according to the control of the layer setting unit 123, and generates a data packet including the divided data. For example, as illustrated in FIG. 2, the packet generation unit 105 divides the hierarchically coded data into a plurality of layers, and generates a data packet including each data. Then, the packet generation unit 105 discards the data packets instructed to be discarded from the hierarchy setting unit 123 among the generated data packets, and supplies the remaining packets that have not been discarded to the packet transmission unit 106. I do. The packet generation unit 105 adds a packet header of Transmission Control Protocol / Internet Protocol (TCP / IP) or User Datagram Protocol / Internet Protocol (UDP / IP) to the generated data packet. The packet header includes a sequence number for identifying each data packet (hereinafter, a sequence number included in the packet header is referred to as a packet ID).
[0043]
When the data packet generated by the packet generation unit 105 is supplied, the packet transmission unit 106 transmits the data packet to the image reception device 12 via the network 10 at a predetermined timing. Note that the packet transmission unit 106 is controlled by the hierarchy setting unit 123. Also, when transmitting a data packet, the packet transmitting unit 106 records the current time in the packet header of the data packet as the transmission time of the data packet.
[0044]
The packet receiving unit 107 receives the response packet from the image receiving device 12 and supplies this to the transmission rate calculating unit 121.
[0045]
The rate control unit 108 controls the packet generation unit 105 and the packet transmission unit 106 based on the response packet received by the packet reception unit 107, and adjusts the data packet transmission rate to an optimal value. The transmission rate calculation unit 121 in the rate control unit 108 calculates an ideal transmission rate of data packets based on the response packet supplied from the packet reception unit 107, and notifies the calculation result to the packet number calculation unit 122. . The packet number calculation unit 122 calculates the ideal number of packets to be transmitted to the image receiving device 12 based on the notification from the transmission rate calculation unit 121, and notifies the hierarchy setting unit 123. The layer setting unit 123 sets the layer (layer) of the data packet to be transmitted to the image receiving device 12 based on the transmission rate notified from the packet number calculation unit 122.
[0046]
Next, FIG. 5 illustrates an example of the internal configuration of the image receiving device 12. In FIG. 5, an operation unit 151 receives an input of an operation from a 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 receiving device 12 based on a preset program and operation information from the operation unit 151.
[0047]
The packet receiving unit 153 receives the data packet transmitted from the image transmitting device 11 via the network 10, records the hierarchically encoded data included in the data packet on the recording medium 154, and The added packet header is read, and the information contained in the packet header, that is, information on the packet ID and the transmission time of the data packet is supplied to the state measuring unit 155.
[0048]
The recording medium 154 includes, for example, a hard disk, and records the hierarchically encoded data supplied from the packet receiving unit 153, and reads out the recorded hierarchically encoded data by an external device (not shown).
[0049]
The state measurement unit 155 receives information on the packet ID and the transmission time of the data packet from the packet reception unit 153. Then, the state measuring unit 155 determines the presence or absence of a lost packet based on the packet ID supplied from the packet receiving unit 153, and if there is a lost packet, acquires the sequence number of the lost packet as the lost packet ID. Further, state measurement section 155 acquires the reception time at which the data packet was received. Then, the state measurement unit 155 supplies the packet generation unit 156 with the data packet transmission time and the packet ID read from the packet header, and the data packet reception time and the lost packet ID acquired by itself.
[0050]
When the data packet transmission time and the packet ID read from the packet header and the data packet reception time and the lost packet ID obtained by itself are supplied from the state measurement unit 155, Is generated, and the response packet is supplied to the packet transmission unit 157.
[0051]
The packet transmission unit 157 transmits the response packet supplied from the packet generation unit 156 to the image transmission device 11 via the network 10. When transmitting the response packet, the packet transmission unit 157 records the current time as the transmission time of the response packet in the packet header of the response packet.
[0052]
Next, an image transmission process of the image transmission device 11 and an image reception process of the image reception device will be described with reference to a flowchart of FIG. In the following description, a case where hierarchical encoded data encoded by the JPEG2000 encoding method shown in FIG. 2 is adopted as hierarchical encoded data transmitted from the image transmitting apparatus 11 to the image receiving apparatus 12 will be described. explain. That is, as shown in FIG. 2, the layer coded data has four layers (layers), and each layer is divided into five packets.
[0053]
In step S1 of FIG. 6, the packet generation unit 105 of the image transmission device 11 packetizes the hierarchically encoded data supplied from the recording medium 103 or the input unit 104 according to the control of the hierarchical setting unit 123, and converts the data packet into a packet. Generate. In step S2, the packet transmitting unit 106 transmits the data packet generated in step S1 by the packet generating unit 105 to the image receiving device 12 via the network 10. Thereafter, the process returns to step S1, and the processes after step S1 are repeated. A detailed description of the transmission processing in step S2 will be described later.
[0054]
In step S11, the packet receiving unit 153 of the image receiving device 12 receives the data packet transmitted by the image transmitting device 11 in step S2. In step S12, the packet receiving unit 153 of the image receiving device 12 reads the hierarchically encoded data from the data packet received in step S11, and records the hierarchically encoded data on the recording medium 154. Thereafter, the process returns to step S11, and the processes after step S11 are repeated.
[0055]
As described above, the data packet is transmitted from the image transmitting device 11 to the image receiving device 12 in real time, and is recorded on the recording medium 154. The hierarchically encoded data recorded on the recording medium 154 is appropriately read out by an external device, decoded, and an image is reproduced.
[0056]
In the present invention, a response packet is transmitted from the image receiving device 12 to the image transmitting device 11, and the transmission rate of the data packet is controlled based on the response packet.
[0057]
Next, the acknowledgment processing of the image receiving apparatus 12, that is, the processing in which the image receiving apparatus 12 creates a response packet and transmits it to the image transmitting apparatus 11, will be described with reference to the flowchart of FIG.
[0058]
In step S51, the control unit 152 of the image receiving apparatus 12 monitors the packet receiving unit 153 and waits until the packet receiving unit 153 receives a data packet. When the packet receiving unit 153 receives a data packet, the process is performed. Proceed to step S52. In step S52, the state measuring unit 155 acquires the current time from a built-in internal clock. In step S53, the state measuring unit 155 acquires the transmission time of the data packet and the packet ID, which are the information added as the packet header, from the packet receiving unit 153, and determines the packet loss based on the packet ID. Determine the presence or absence.
[0059]
That is, since the packet ID is a sequence number, it is determined whether or not the packet ID of the data packet received this time is a serial number with the packet ID of the data packet received last time. The presence or absence can be determined. For example, if the packet ID of the data packet received last time is “10” and the packet ID of the data packet received this time is “11”, it is continuous with “10” and “11”. 155 determines that there is no data packet loss. For example, if the packet ID of the previously received data packet is “10” and the packet ID of the data packet received this time is “12”, “10” and “12” are not continuous, and The measurement unit 155 determines that the data packet has been lost.
[0060]
If the state measurement unit 155 determines that there is no data packet loss in step S53, the process proceeds to step S54.
[0061]
In step S54, the state measurement unit 155 supplies the reception time of the data packet acquired in step S52, the transmission time and the packet ID of the data packet acquired from the packet header of the data packet to the packet generation unit 156. The packet generation unit 156 generates a response packet supplied from the state measurement unit 155 and including the data packet reception time, the data packet transmission time and the packet ID as information, and supplies the response packet to the packet transmission unit 157. I do. Thereafter, the process proceeds to step S56.
[0062]
If the state measurement unit 155 determines in step S53 that there is a data packet loss, the process proceeds to step S55.
[0063]
In step S55, the state measuring unit 155 specifies the packet ID of the lost packet. For example, when the packet ID of the data packet received last time is “10” and the packet ID of the data packet received this time is “12”, the state measuring unit 155 specifies that the lost packet ID is “11”. I do. The state measurement unit 155 supplies the reception time of the data packet acquired in step S52, the transmission time and packet ID of the data packet acquired from the packet header of the data packet, and the lost packet ID to the packet generation unit 156. The packet generation unit 156 generates a response packet including the data packet reception time, the data packet transmission time and the packet ID, and the lost packet ID supplied from the state measurement unit 155 as information, and transmits the response packet to the packet transmission unit. To the unit 157. Thereafter, the process proceeds to step S56.
[0064]
In step S56, the packet transmitting unit 157 transmits the response packet supplied from the packet generating unit 156 to the image transmitting device 11 via the network 10. Immediately before transmitting the response packet, the packet transmitting unit 157 acquires the current time from the internal clock contained therein, and records the current time in the packet header as the transmission time of the response packet.
[0065]
Thereafter, the process returns to step S51, and the processes after step S51 are repeated.
[0066]
As described above, the response packet is transmitted from the image receiving device 12 to the image transmitting device 11.
[0067]
The image transmitting device 11 controls the data packet transmission rate based on the response packet received from the image receiving device 12.
[0068]
Next, the rate control process of the image transmitting apparatus 11, that is, the control of the data packet transmission rate will be described with reference to the flowchart of FIG.
[0069]
In step S101, the control unit 102 monitors the packet receiving unit 107 and waits until the packet receiving unit 107 receives a response packet. Then, when the packet receiving unit 107 receives the response packet, the processing proceeds to step S102.
[0070]
In step S102, the transmission rate calculation unit 121 of the rate control unit 108 acquires the response packet received by the packet reception unit 107 from the packet reception unit 107, and sets the reception time at which the packet reception unit 107 received the response packet, Obtained from the internal clock. Then, the transmission rate calculation unit 121 calculates the RTT (Round Trip Time) from the obtained reception time of the response packet, the transmission time of the data packet included in the response packet, the reception time of the data packet, and the transmission time of the response packet. ) Is calculated.
[0071]
That is, the RTT is the time required for the data packet transmitted from the image transmitting device 11 to be received by the image receiving device 12 (this time is referred to as T1), and the response packet transmitted from the image receiving device 12 It is the sum (T1 + T2) of the time until receiving by the device 11 (this time is defined as T2).
[0072]
Here, the time T1 until the data packet transmitted from the image transmission device 11 is received by the image reception device 12 is obtained by subtracting the transmission time of the data packet from the reception time of the data packet. The time T2 until the response packet transmitted from the image receiving device 12 is received by the image transmitting device 11 is obtained by subtracting the response packet transmission time from the response packet reception time.
[0073]
As described above, after the transmission rate calculation unit 121 acquires the RTT, the processing proceeds to step S103.
[0074]
In step S103, the transmission rate calculation unit 121 calculates a packet loss rate per unit time based on the lost packet ID included in the response packet.
[0075]
In step S104, the transmission rate calculation unit 121 calculates the transmission rate T. As a method of calculating the transmission rate, for example, TFRC (TCP-Friendly Rate Control) can be used. The TFRC is described in detail in S. Floyd, M. Handley, J. Pandye and J. Widmer, "Equation-Based Congestion Control for Unicast Applications", Proceedings of ACM SIGCOMM 2000, May 2000. In the TFRC, an ideal transmission rate at which a data packet is transmitted from the image transmission device 11 is predicted by using the packet loss rate and the RTT according to the following equation (this equation is represented by equation (1)).
[0076]
(Equation 1)
Figure 2004193992
[0077]
In Expression (1), T is an ideal transmission rate, s is a packet size, p is a packet loss rate, and t is a timeout period of TCP (Transmission Control Protocol) (normally, four times RTT). After calculating the transmission rate T according to Equation (1), the transmission rate calculation unit 121 notifies the calculated transmission rate T to the packet number calculation unit 122. Thereafter, the process proceeds to step S105.
[0078]
In step S105, the number-of-packets calculation unit 122 calculates the number of transmission packets by the following equation (this equation is defined as equation (2)).
[0079]
n = (f × s) / T
[0080]
In equation (2), n is the number of transmission packets, f is the frame rate, s is the packet size, and T is the transmission rate calculated in step S104. After calculating the number of transmission packets n, the packet number calculation unit 122 notifies the hierarchy setting unit 123 of the calculated number of transmission packets n. Thereafter, the process proceeds to step S106.
[0081]
In step S106, the hierarchy setting unit 123 initializes the variable L to L = 0. Thereafter, the process proceeds to step S107. In step S107, the hierarchy setting unit 123 determines whether the following equation (this equation is referred to as equation (3)) is satisfied.
[0082]
(L + 1) × 5 ≦ n
[0083]
In Expression (3), “5” represents the number of packets included in one layer. That is, in FIG. 2, since one layer is divided into five packets, it is set to “5” in equation (3). Then, when Expression (3) is satisfied, the process proceeds to Step S108.
[0084]
In step S108, the hierarchy setting unit 123 determines whether or not the variable L is 4 or more. When it is determined that the variable L is not 4 or more (less than 4), the process proceeds to step S109. Note that the criterion "4" for the determination in step S108 indicates the number of layers. That is, in FIG. 2, since the hierarchically encoded data is composed of four layers, L1 to L4, the determination criterion is set to “4” in step S108.
[0085]
In step S109, the hierarchy setting unit 123 increments the value of the variable L by one. Thereafter, the process returns to step S107, and the processes after step S107 are repeated.
[0086]
If the hierarchy setting unit 123 determines in step S107 that Expression (3) is not satisfied, the process of step S108 is skipped, and the process proceeds to step S110. If the hierarchy setting unit 123 determines in step S108 that the variable L is 4 or more, the process proceeds to step S110.
[0087]
For example, if it is calculated in step S105 that n = 17, the processing in steps S106 to S109 is as follows.
[0088]
First, in step S106, L = 0 is initialized, and in step S107, the variables L = 0 and n = 17 are substituted into equation (3), and it is determined whether or not equation (3) holds. . If the variable L = 0, equation (3) holds, and the process proceeds to step S108. In step S108, it is determined whether or not the variable L is 4 or more. Since the variable L = 0, it is determined that the variable L is not 4 or more, and the process proceeds to step S109. In step S109, the variable L is incremented by 1 and set to L = 1.
[0089]
Thereafter, the process returns to step S107, and the variable L = 1 and n = 17 are substituted into the equation (3), and it is determined whether or not the equation (3) is satisfied. If variable L = 1, equation (3) holds, and the process proceeds to step S108. In step S108, it is determined whether or not the variable L is 4 or more. Since the variable L = 1, it is determined that the variable L is not 4 or more, and the process proceeds to step S109. In step S109, the variable L is incremented by 1, and the variable L is set to L = 2.
[0090]
Thereafter, the process returns to step S107, and the variable L = 2 and n = 17 are substituted into the expression (3), and it is determined whether or not the expression (3) is satisfied. If variable L = 2, equation (3) holds, and the process proceeds to step S108. In step S108, it is determined whether or not the variable L is 4 or more. Since the variable L is 2, it is determined that the variable L is not 4 or more, and the process proceeds to step S109. In step S109, the variable L is incremented by one, and the variable L is set to three.
[0091]
Thereafter, the process returns to step S107, and the variable L = 3 and n = 17 are substituted into the equation (3), and it is determined whether or not the equation (3) is satisfied. If variable L = 3, equation (3) does not hold, and the process proceeds to step S110.
[0092]
In step S110, the hierarchy setting unit 123 discards a data packet of a layer higher than the (L + 1) th layer. In step S111, the hierarchy setting unit 123 sets the packets up to the lower L layers as data packets to be transmitted to the image receiving device 12.
[0093]
For example, when the variable L is set to L = 1 by the processing of steps S106 to S109, the hierarchy setting unit 123 determines in step S110 that the layers L2 to L4 of the four layers shown in FIG. The packets, that is, the packets P6 to P20 are discarded, and the packet of the layer L1 shown in FIG. 2, that is, the packets P1 to P5 is set as a data packet to be transmitted to the image receiving device 12 in step S111.
[0094]
Further, for example, when the variable L is set to L = 2 by the processing of Steps S106 to S109, the layer setting unit 123 determines in Step S110 that the layer L3 and the layer L3 of the four layers shown in FIG. The L4 packet, that is, the packets P11 to P20 are discarded, and in step S111, the packets of the layers L1 and L2 shown in FIG. 2, that is, the packets P1 to P10 are set as data packets to be transmitted to the image receiving device 12. .
[0095]
Further, for example, when the variable L is set to L = 3 by the processing of steps S106 to S109, the hierarchy setting unit 123 determines in step S110 that the layer L4 of the four layers shown in FIG. The packets, that is, the packets P16 to P20 are discarded, and the packets of the layers L1 to L3 shown in FIG. 2, that is, the packets P1 to P15 are set as the data packets to be transmitted to the image receiving device 12 in step S111.
[0096]
Further, for example, when the variable L is set to L = 4 by the processing of steps S106 to S109, the layer setting unit 123 does not discard the packet in step S110, and in FIG. The packets of the layers L1 to L4, that is, packets P1 to P20 are set as data packets to be transmitted to the image receiving device 12.
[0097]
After the process of step S111, the process returns to step S101, and the processes after step S101 are repeated.
[0098]
In this manner, the hierarchy of the hierarchically encoded data transmitted from the image transmission device 11 to the image reception device 12 is determined.
[0099]
The hierarchy setting unit 123 causes the packet generation unit 105 to select only data packets to be transmitted to the image receiving device 12 from among the data packets generated by the packet generation unit 105 based on the settings made by the above processing. Discard the data packet. After that, only the selected data packet is supplied from the packet generation unit 105 to the packet transmission unit 106.
[0100]
Next, the process of step S2 of FIG. 6, that is, the transmission process of transmitting a data packet from the packet transmitting unit 106 to the image receiving device 12 will be described with reference to the flowchart of FIG.
[0101]
The packet transmission unit 106 receives the supply of the data packet set as the packet to be transmitted from the packet generation unit 105, and sets the layer i of the data packet to be transmitted to i = 1 in step S151. Thereafter, the process proceeds to step S152.
[0102]
In step S152, the packet transmitting unit 106 records the transmission time in the packet header of the data packet of the layer i, and transmits the data packet to the image receiving device 12. Thereafter, the process proceeds to step S153.
[0103]
In step S153, the packet transmitting unit 106 increments the hierarchy i by one. Thereafter, the process proceeds to step S154.
[0104]
In step S154, the packet transmitting unit 106 determines whether or not the layer i is larger than the variable L set in steps S106 to S109 in the flowchart of FIG. If the hierarchy i is equal to or less than the variable L, the process returns to step S152, and the processes from step S152 are repeated. If it is determined in step S154 that the hierarchy i is larger than the variable L, the packet transmitting unit 106 ends the transmission of the data packet.
[0105]
For example, when the variable L is L = 3, first, in step S151, i = 1 is set. In step S152, the layer corresponding to i = 1, that is, the packets P1 to P5 of the layer L1 in FIG. The image is transmitted to the image receiving device 12. Then, in step S153, i is incremented by 1 and i = 2. Then, in step S154, it is determined whether or not i is greater than L. Since i = 2 and i is not greater than L, the process returns to step S152.
[0106]
Thereafter, in step S152, the layer corresponding to i = 2, that is, the packets P6 to P10 of the layer L2 in FIG. Then, in step S153, i is incremented by 1 and i is set to 3. Then, in step S154, it is determined whether or not i is greater than L. Since i = 3 and i is not greater than L, the process returns to step S152.
[0107]
After that, in step S152, the layer corresponding to i = 3, that is, the packets P11 to P15 of the layer L3 in FIG. Then, in step S153, i is incremented by 1 and i = 4 is set. Then, in step S154, it is determined whether or not i is larger than L. However, since i = 4 and i is larger than L, the process is terminated.
[0108]
As described above, the data packets are transmitted from the image transmitting device 11 to the image receiving device 12 for each layer.
[0109]
When the data packets are transmitted as described above, the number of data packets transmitted from the image transmitting device 11 to the image receiving device 12 is controlled, for example, as shown in FIG.
[0110]
In FIG. 10, as in FIG. 1, the vertical axis represents the window size, and the horizontal axis represents the time axis. In the graph of FIG. 10, five packets P1 to P5 corresponding to the layer L1 are set as data packets to be transmitted during the time t0 to t1, and 10 packets corresponding to the layers L1 and L2 during the time t1 to t2. Packets P1 to P10 are set as data packets to be transmitted, and from time t2 to time t3, fifteen packets P1 to P15 corresponding to layers L1 to L3 are set as data packets to be transmitted. , 10 packets P1 to P10 corresponding to the layers L1 and L2 are set as data packets to be transmitted, and between time t4 and t5, 15 packets P1 to P15 corresponding to the layers L1 to L3 transmit data. It is set as a packet and corresponds to layers L1 and L2 between time t5 and time t6. 10 packets P1 to P10 are set as data packets to be transmitted, and from time t6 to t7, 15 packets P1 to P15 corresponding to layers L1 to L3 are set as data packets to be transmitted, and after time t7. , 10 packets P1 to P10 corresponding to the layers L1 and L2 are set as data packets to be transmitted.
[0111]
FIG. 11 is a diagram in which the transition of the number of transmission packets when the present invention is applied shown in FIG. 10 is compared with the conventional example of FIG.
[0112]
In FIG. 11, the transition of the number of transmission packets in the conventional example of FIG. 1 is indicated by a dotted line. Further, the transition of the number of transmission packets when the present invention is applied shown in FIG. 10 is indicated by a solid line. In FIG. 11, packets in a range indicated by hatching are packets including data that cannot be expected to improve image quality even when transmitted from the image transmission device 11 to the image reception device 12 in the conventional example.
[0113]
By transmitting the data packets constituting each layer collectively from the image transmitting device 11 to the image receiving device 12, the image receiving device 12 uses all the data of the received data packets and It is possible to provide a high-quality image, and it is possible to eliminate unnecessary data transmitted from the image transmitting apparatus 11 to the image receiving apparatus 12.
[0114]
Also, in FIG. 11, during the time t0 to t1, in the conventional rate control, since the number of transmission packets is less than 5, the image receiving apparatus 12 reproduces an image even when receiving these data packets. I can't. In FIG. 11, the number of transmission packets is nine between times t2 and t3, between times t4 and t5, and between times t6 and t7. No. 12, four of the received data packets could not be used.
[0115]
On the other hand, in the present invention, since the number of transmission packets is set to 5 corresponding to one layer from time t0, the image receiving device 12 decodes the data immediately after starting the reception of the data packet. Images can be played back. In the present invention, unnecessary data packet transmission / reception can be eliminated by collectively increasing / decreasing packets in layer units.
[0116]
By the way, in FIG. 11, it can be said that the hatched portion indicates the margin of the number of packets that can be transmitted. Therefore, redundant data may be transmitted by using this margin.
[0117]
FIG. 12 is a flowchart illustrating a rate control process of the image transmitting apparatus 11 in a case where redundant data for error correction is transmitted using a margin of the number of transmittable packets.
[0118]
The processing of steps S201 to S211 in the flowchart of FIG. 12 is the same as the processing of steps S101 to S111 in FIG. In FIG. 12, after the processing in step S211, in step S212, the hierarchy setting unit 123 sets n- (L × 5) redundant data as packets to be transmitted. That is, the hierarchy setting unit 123 sets the error correction redundant data by the number of remainders obtained by subtracting the number of packets of the layer to be transmitted set in step S211 from the number of transmission packets n calculated in step S205. Set as a packet to be sent.
[0119]
Thereafter, the process returns to step S201, and the processes after step S201 are repeated.
[0120]
As described above, the redundant data for error correction is transmitted by the number equal to the number obtained by subtracting the number of packets of the transmission layer set in step S211 from the number n of transmission packets calculated in step S205. In this case, the hierarchy setting unit 123 instructs the packet generation unit 105 to create n− (L × 5) pieces of redundant data for error correction as packets to be transmitted. The packet generation unit 105 creates redundant data for error correction for n− (L × 5) as packets to be transmitted in accordance with a command from the hierarchy setting unit 123.
[0121]
As described above, by transmitting redundant data for error correction by the remaining number, the image receiving apparatus 12 can reduce the data of the lost packet from the redundant data for error correction even if the loss of the packet occurs. It may be possible to create data corresponding to. Therefore, the image receiving device 12 can reduce the possibility of having to request the image transmitting device 11 to retransmit a lost packet.
[0122]
By the way, when the network 10 provides priority control, the network is set by setting a priority, transmitting all data packets, and measuring how many low priority data packets have arrived at the image receiving device 12. It is possible to estimate how much bandwidth is available in 10.
[0123]
For example, when the ideal number n of transmission packets is n = 12, the image transmission device 11 transmits ten data packets (packets P1 to P10) of the layers L1 and L2 with high priority, and transmits the layer L3 And the L4 data packet with low priority. Then, based on the response packet from the image receiving device 12, the number of data packets reaching the image receiving device 12 is specified. For example, when seven data packets have arrived at the image receiving device 12, the image transmitting device 11 determines that there is enough bandwidth to transmit the remaining seven data packets, and the subsequent ideal data packets are transmitted. The value of the number of transmission packets n is set as n = 10 + 7 = 17. This may be done.
[0124]
Next, the rate control process of the image transmitting apparatus 11 in the case of preferentially transmitting data of a layer having a higher priority will be described with reference to the flowchart of FIG.
[0125]
The processing in steps S231 to S239 of the flowchart in FIG. 13 is the same as the processing in steps S101 to S109 in FIG. In FIG. 13, after the process of step S238, in step S240, the hierarchy setting unit 123 sets the data packets of the layers up to the lower L layers as packets to be transmitted to the image receiving device 12 with high priority. For example, when the variable L = 2, the hierarchy setting unit 123 sets the data packets of the layers L1 and L2 in FIG. 2 as high-priority packets.
[0126]
After that, in step S241, the hierarchy setting unit 123 sets the data packets of the (L + 1) or higher layers as packets to be transmitted to the image receiving device 12 with low priority. For example, when the variable L = 2, the hierarchy setting unit 123 sets the data packets of the layers L3 and L4 in FIG. 2 as low-priority packets.
[0127]
After the processing in step S241, in step S242, the hierarchy setting unit 123 sets the number n of transmission packets based on the response packet. That is, since the response packet contains the lost packet ID, it is possible to determine how many data packets have reached the image receiving device 12 based on the lost packet ID. Therefore, the hierarchy setting unit 123 calculates the number of data packets that have reached the image receiving device 12 among the data packets transmitted with low priority based on the lost packet ID, and sets the calculated value to the currently set value. The new transmission packet number n is calculated by adding the current transmission packet number n.
[0128]
After that, the process returns to step S236, and the processes after step S236 are repeated.
[0129]
As described above, data of a layer having a higher priority may be transmitted with priority.
[0130]
In the process of the flowchart of FIG. 13, the free space of the band of the network 10 can be estimated, but even if an extra data packet reaches the image receiving device 12 for one layer, Not all packets constituting a certain layer are necessarily prepared. Therefore, only the data packet of the layer one layer higher than the layer currently transmitting with high priority may be transmitted with low priority. Next, the rate control processing of the image transmitting apparatus 11 in this case will be described with reference to the flowchart of FIG.
[0131]
The processes in steps S261 to S270 and step S272 in the flowchart in FIG. 14 are the same as the processes in steps S231 to S240 and step S242 in FIG. In FIG. 14, after the process of step S270, in step S271, the hierarchy setting unit 123 sets the data packet of the (L + 1) th layer as a packet to be transmitted to the image receiving device 12 with low priority. For example, when the variable L = 2, the hierarchy setting unit 123 sets the data packet of the layer L3 in FIG. 2 as a low-priority packet. Thereafter, the process proceeds to step S272.
[0132]
By doing as described above, for example, as a result of transmitting the packets P1 to P5 constituting the layer L1 with high priority and transmitting the packets P6 to P10 constituting the layer L2 with low priority, the layers L1 and L2 are When all the constituent packets P1 to P10 reach the image receiving device 12, thereafter, the packets P1 to P10 forming the layers L1 and L2 are transmitted with high priority, and the packets P11 to P15 forming the layer L3 are transmitted. Is transmitted at a low priority, and as a result, it is possible to transmit more hierarchically encoded data. Therefore, when the external device acquires and reproduces the hierarchically encoded data from the image receiving device 12, it is possible to display a higher definition image.
[0133]
As described above, according to the present invention, when the number of packets that can be transmitted per unit time increases, the number of packets that can be transmitted increases until the number of packets that can be transmitted increases by the number of layers (layers). When the number of packets that can be transmitted per unit time decreases and the number of packets that can be transmitted per unit time is reduced, the number of packets is reduced by the number of layers (layers). Therefore, unnecessary data packets to be transmitted / received can be eliminated, and data can be transmitted / received more efficiently. Further, the image receiving apparatus 12 can also omit the process of selecting an unusable data packet from the received data packets.
[0134]
In the above description, as shown in FIG. 2, the case of hierarchically encoded data in which four layers are included and one layer is divided into five packets is taken as an example. If the data is coded data, the number of layers and the number of packets per layer need not be the numbers shown in FIG.
[0135]
The present invention can also be applied to real-time streaming.
[0136]
The series of processes described above can be executed by hardware, but can also be executed by software. When a series of processing is executed by software, a program constituting the software may be executed by a computer built into dedicated hardware or by installing various programs to execute various functions. It is installed from a recording medium in a possible personal computer or the like, for example.
[0137]
FIG. 15 shows a configuration of an embodiment of an information processing apparatus when the image transmitting apparatus 11 or the image receiving apparatus 12 is realized by software. The CPU 401 of the personal computer 400 controls the entire operation of the personal computer 400. When a user inputs a command from the input unit 406 including a keyboard, a mouse, and the like via the bus 404 and the input / output interface 405, the CPU 401 stores the command in a ROM (Read Only Memory) 402. Execute the program. Alternatively, the CPU 401 reads a program read from the magnetic disk 421, the optical disk 422, the magneto-optical disk 423 or the semiconductor memory 424 connected to the drive 410 and installed in the storage unit 408 into a RAM (Random Access Memory) 403. And run it. Thus, the functions of the image transmitting device 11 or the image receiving device 12 described above are implemented by software. Further, the CPU 401 controls the communication unit 409 to communicate with the outside and exchange data. The input / output interface 405 is also connected to an output unit 407 including a display, a speaker, and the like.
[0138]
As shown in FIG. 15, the recording medium on which the program is recorded is a magnetic disk 421 (including a flexible disk) on which the program is recorded, which is distributed separately from the computer in order to provide the user with the program. An optical disk 422 (including a compact disk-read only memory (CD-ROM), a digital versatile disk (DVD)), a magneto-optical disk 423 (including a mini-disc (MD)), or a package medium including a semiconductor memory 424 or the like In addition to the configuration, the storage unit 408 includes a ROM 402 in which a program is recorded and a hard disk included in the storage unit 408, which are provided to a user in a state of being incorporated in a computer in advance.
[0139]
In this specification, a step of describing a program recorded on a recording medium is performed in a time-series manner in the order described. Alternatively, the processing includes individually executed processing.
[0140]
Also, in this specification, a system refers to an entire device including a plurality of devices.
[0141]
【The invention's effect】
As described above, according to the first aspect of the present invention, information can be transmitted and received via a network. Further, according to the first aspect of the present invention, information can be transmitted and received more efficiently. Further, according to the first aspect of the present invention, it is possible to perform error correction using a free area of a network band. Further, according to the first aspect of the present invention, it is possible to predict the free space in the network bandwidth.
[0142]
According to the second aspect of the present invention, information can be transmitted via a network. According to the second aspect of the present invention, information can be transmitted more efficiently. Further, according to the second aspect of the present invention, it is possible to perform error correction using a free area of a network band. Further, according to the second aspect of the present invention, it is possible to predict the free space in the network bandwidth.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining conventional control of the number of transmission packets.
FIG. 2 is a diagram illustrating an example of a packet for one frame encoded by a JPEG2000 encoding method.
FIG. 3 is a block diagram illustrating a configuration example of an information processing system to which the present invention has been applied.
FIG. 4 is a block diagram illustrating a configuration example of an image transmission device.
FIG. 5 is a block diagram illustrating a configuration example of an image receiving device.
FIG. 6 is a flowchart illustrating an image transmission process of the image transmission device and an image reception process of the image reception device.
FIG. 7 is a flowchart illustrating a confirmation response process of the image receiving apparatus.
FIG. 8 is a flowchart illustrating a rate control process of the image transmission device.
FIG. 9 is a flowchart illustrating Step S2 of FIG. 6 in detail.
FIG. 10 is a diagram illustrating control of the number of transmission packets in the present invention.
FIG. 11 is a diagram comparing control of the number of transmission packets in the present invention with control of the number of transmission packets in the related art.
FIG. 12 is another flowchart illustrating a rate control process of the image transmission device.
FIG. 13 is still another flowchart illustrating the rate control process of the image transmitting apparatus.
FIG. 14 is a flowchart illustrating a rate control process of the image transmission device.
FIG. 15 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]
Reference Signs List 10 network, 11 image transmission device, 12 image reception device, 101 operation unit, 102 control unit, 103 recording medium, 104 input unit, 105 packet generation unit, 106 packet transmission unit, 107 packet reception unit, 108 rate control unit, 121 Transmission rate calculation unit, 122 layer setting unit, 151 operation unit, 152 control unit, 153 packet reception unit, 154 recording medium, 155 state measurement unit, 156 packet generation unit, 157 packet transmission unit, 401 CPU, 402 ROM, 403 RAM , 404 bus, 405 input / output interface, 406 input unit, 407 output unit, 408 storage unit, 409 communication unit, 410 drive, 421 magnetic disk, 422 optical disk, 423 magneto-optical disk, 424 semiconductor memory

Claims (8)

パケット通信により、階層符号化されたデータである階層符号化データを送受信する第1の情報処理装置および第2の情報処理装置から構成される情報処理システムにおいて、
前記第1の情報処理装置は、
前記階層符号化データをパケット化して、第1のパケットを生成する生成手段と、
前記生成手段により生成された前記第1のパケットを、前記第2の情報処理装置に送信する第1の送信手段と、
前記第1の情報処理装置による前記第1のパケットの送信時刻、および前記第1のパケットの損失に関する情報を含む第2のパケットを、前記第2の情報処理装置から受信する第1の受信手段と、
前記第1の受信手段により受信された前記第2のパケットに基づいて、送信する前記第1のパケットのパケット数の基準値を算出する算出手段と、
前記算出手段により算出された前記基準値に基づいて、前記生成手段によりパケット化する前記階層符号化データの階層を設定する設定手段と
を備え、
前記第2の情報処理装置は、
前記第1の情報処理装置より、前記第1のパケットを受信する第2の受信手段と、
前記第2の受信手段により受信された前記第1のパケットから、前記階層符号化データを取得する取得手段と、
前記第2の受信手段により受信された前記第1のパケットに基づいて、前記第2のパケットを作成する作成手段と、
前記作成手段により作成された前記第2のパケットを前記第1の情報処理装置に送信する第2の送信手段と
を備えることを特徴とする情報処理システム。
In an information processing system including a first information processing device and a second information processing device for transmitting and receiving hierarchically encoded data that is hierarchically encoded data by packet communication,
The first information processing device includes:
Generating means for packetizing the hierarchically encoded data to generate a first packet;
First transmitting means for transmitting the first packet generated by the generating means to the second information processing device;
First receiving means for receiving, from the second information processing device, a second packet including information on a transmission time of the first packet by the first information processing device and a loss of the first packet; When,
Calculating means for calculating a reference value of the number of packets of the first packet to be transmitted based on the second packet received by the first receiving means;
Setting means for setting a layer of the layer coded data to be packetized by the generation means, based on the reference value calculated by the calculation means,
The second information processing device includes:
Second receiving means for receiving the first packet from the first information processing device;
Acquiring means for acquiring the hierarchically encoded data from the first packet received by the second receiving means;
Creating means for creating the second packet based on the first packet received by the second receiving means;
An information processing system comprising: a second transmission unit that transmits the second packet created by the creation unit to the first information processing device.
パケット通信により、階層符号化されたデータである階層符号化データを他の情報処理装置に送信する情報処理装置において、
前記階層符号化データをパケット化して、第1のパケットを生成する生成手段と、
前記生成手段により生成された前記第1のパケットを、前記他の情報処理装置に送信する送信手段と、
前記情報処理装置による前記第1のパケットの送信時刻、および前記第1のパケットの損失に関する情報を含む第2のパケットを、前記他の情報処理装置から受信する受信手段と、
前記受信手段により受信された前記第2のパケットに基づいて、送信する前記第1のパケットのパケット数の基準値である第1の数を算出する算出手段と、
前記算出手段により算出された前記第1の数に基づいて、前記生成手段によりパケット化する前記階層符号化データの階層を設定する設定手段と
を備えることを特徴とする情報処理装置。
In an information processing apparatus that transmits hierarchically encoded data, which is hierarchically encoded data, to another information processing apparatus by packet communication,
Generating means for packetizing the hierarchically encoded data to generate a first packet;
Transmitting means for transmitting the first packet generated by the generating means to the other information processing device;
Receiving means for receiving, from the other information processing apparatus, a transmission time of the first packet by the information processing apparatus, and a second packet including information on the loss of the first packet;
Calculating means for calculating a first number, which is a reference value of the number of packets of the first packet to be transmitted, based on the second packet received by the receiving means;
An information processing apparatus comprising: a setting unit configured to set a layer of the layer encoded data to be packetized by the generation unit based on the first number calculated by the calculation unit.
前記設定手段は、前記生成手段により生成される前記第1のパケットのパケット数が、前記第1の数以下になるように、前記生成手段によりパケット化する前記階層化データの階層を設定する
ことを特徴とする請求項2に記載の情報処理装置。
The setting unit sets a hierarchy of the hierarchical data to be packetized by the generation unit such that the number of packets of the first packet generated by the generation unit is equal to or less than the first number. The information processing apparatus according to claim 2, wherein:
前記設定手段は、パケット化する階層として設定された階層の階層符号化データをパケット化した場合に、前記生成手段により生成される前記第1のパケットのパケット数である第2の数が、前記第1の数以下になるように、パケット化する前記階層を設定するとともに、前記第1の数から前記第2の数を差し引いた余りである第3の数を算出し、
前記生成手段は、前記第3の数だけ、冗長データをさらにパケット化して前記第1のパケットを生成する
ことを特徴とする請求項2に記載の情報処理装置。
The setting unit, when packetizing the layer encoded data of the layer set as the layer to be packetized, the second number, which is the number of packets of the first packet generated by the generating unit, is Setting the hierarchy to be packetized so as to be equal to or less than a first number, and calculating a third number that is a remainder obtained by subtracting the second number from the first number;
The information processing apparatus according to claim 2, wherein the generation unit generates the first packet by further packetizing redundant data by the third number.
前記設定手段は、優先的に送信する階層の前記階層符号化データをパケット化した場合に、前記生成手段により生成される前記第1のパケットのパケット数である第2の数が、前記第1の数以下になるように、優先的に送信する前記階層を設定するとともに、前記第1の数から前記第2の数を差し引いた余りである第3の数を算出し、
前記生成手段は、優先的に送信する階層の前記階層符号化データをパケット化して、前記第1のパケットを生成するとともに、前記第3の数だけ、優先的に送信しない階層の前記階層符号化データをパケット化して、前記第1のパケットを生成する
ことを特徴とする請求項2に記載の情報処理装置。
The setting means, when packetizing the hierarchically encoded data of the layer to be transmitted with priority, sets the second number, which is the number of packets of the first packet generated by the generating means, to the first number And setting the hierarchy to be transmitted preferentially so as to be less than or equal to the number, and calculating a third number that is a remainder obtained by subtracting the second number from the first number,
The generating means packetizes the layer-encoded data of the layer to be transmitted with priority, generates the first packet, and performs the layer coding of the layer not to be transmitted by priority by the third number. The information processing apparatus according to claim 2, wherein the first packet is generated by packetizing data.
パケット通信により、階層符号化されたデータである階層符号化データを他の情報処理装置に送信する情報処理装置の情報処理方法において、
前記階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、
前記生成ステップの処理により生成された前記第1のパケットを、前記他の情報処理装置に送信する送信ステップと、
前記情報処理装置による前記第1のパケットの送信時刻、および前記第1のパケットの損失に関する情報を含む第2のパケットを、前記他の情報処理装置から受信する受信ステップと、
前記受信ステップの処理により受信された前記第2のパケットに基づいて、送信する前記第1のパケットのパケット数の基準値である第1の数を算出する算出ステップと、
前記算出ステップの処理により算出された前記第1の数に基づいて、前記生成ステップの処理によりパケット化する前記階層符号化データの階層を設定する設定ステップと
を含むことを特徴とする情報処理方法。
In an information processing method of an information processing apparatus for transmitting hierarchically encoded data, which is hierarchically encoded data, to another information processing apparatus by packet communication,
A generation step of packetizing the hierarchically encoded data to generate a first packet;
A transmitting step of transmitting the first packet generated by the processing of the generating step to the other information processing apparatus;
A receiving step of receiving, from the other information processing apparatus, a transmission time of the first packet by the information processing apparatus, and a second packet including information on the loss of the first packet;
A calculating step of calculating a first number, which is a reference value of the number of packets of the first packet to be transmitted, based on the second packet received by the processing of the receiving step;
A setting step of setting a layer of the layer coded data to be packetized by the processing of the generation step based on the first number calculated by the processing of the calculation step. .
パケット通信により、階層符号化されたデータである階層符号化データを他の情報処理装置に送信する情報処理装置用のプログラムであって、
前記他の情報処理装置に送信するために、前記階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、
前記情報処理装置による前記第1のパケットの送信時刻、および前記第1のパケットの損失に関する情報を含む第2のパケットを、前記他の情報処理装置から受信した場合、受信された前記第2のパケットに基づいて、送信する前記第1のパケットのパケット数の基準値を算出する算出ステップと、
前記算出ステップの処理により算出された前記基準値に基づいて、前記生成ステップの処理によりパケット化する前記階層符号化データの階層を設定する設定ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
A program for an information processing device that transmits hierarchically encoded data, which is hierarchically encoded data, to another information processing device by packet communication,
Generating a first packet by packetizing the hierarchically encoded data for transmission to the other information processing apparatus;
When the second packet including the transmission time of the first packet by the information processing device and the information on the loss of the first packet is received from the another information processing device, the received second packet A calculating step of calculating a reference value of the number of packets of the first packet to be transmitted based on a packet;
A setting step of setting a layer of the layer coded data to be packetized by the processing of the generation step based on the reference value calculated by the processing of the calculation step. A recording medium on which a program is recorded.
パケット通信により、階層符号化されたデータである階層符号化データを他の情報処理装置に送信する情報処理装置を制御するコンピュータに、
前記他の情報処理装置に送信するために、前記階層符号化データをパケット化して、第1のパケットを生成する生成ステップと、
前記情報処理装置による前記第1のパケットの送信時刻、および前記第1のパケットの損失に関する情報を含む第2のパケットを、前記他の情報処理装置から受信した場合、受信された前記第2のパケットに基づいて、送信する前記第1のパケットのパケット数の基準値を算出する算出ステップと、
前記算出ステップの処理により算出された前記基準値に基づいて、前記生成ステップの処理によりパケット化する前記階層符号化データの階層を設定する設定ステップと
を実行させることを特徴とするプログラム。
By packet communication, to a computer that controls an information processing device that transmits hierarchically encoded data that is hierarchically encoded data to another information processing device,
Generating a first packet by packetizing the hierarchically encoded data for transmission to the other information processing apparatus;
When the second packet including the transmission time of the first packet by the information processing device and the information on the loss of the first packet is received from the another information processing device, the received second packet A calculating step of calculating a reference value of the number of packets of the first packet to be transmitted based on a packet;
A setting step of setting a layer of the layer encoded data to be packetized by the processing of the generation step, based on the reference value calculated by the processing of the calculation step.
JP2002359736A 2002-12-11 2002-12-11 Information processing system, information processor, information processing method, recording medium and program Abandoned JP2004193992A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002359736A JP2004193992A (en) 2002-12-11 2002-12-11 Information processing system, information processor, information processing method, recording medium and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002359736A JP2004193992A (en) 2002-12-11 2002-12-11 Information processing system, information processor, information processing method, recording medium and program

Publications (1)

Publication Number Publication Date
JP2004193992A true JP2004193992A (en) 2004-07-08

Family

ID=32759044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002359736A Abandoned JP2004193992A (en) 2002-12-11 2002-12-11 Information processing system, information processor, information processing method, recording medium and program

Country Status (1)

Country Link
JP (1) JP2004193992A (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006325103A (en) * 2005-05-20 2006-11-30 Nippon Hoso Kyokai <Nhk> Content transmitter, program thereof, content receiver and program thereof
JP2007281640A (en) * 2006-04-04 2007-10-25 Matsushita Electric Ind Co Ltd Receiver, transmitter, and communication method thereof
JP2008124705A (en) * 2006-11-10 2008-05-29 Oki Electric Ind Co Ltd Circuit emulation device
JP2008219170A (en) * 2007-02-28 2008-09-18 Nippon Hoso Kyokai <Nhk> File transmitter and file transmission program, and file receiver and file reception program
JP2009094863A (en) * 2007-10-10 2009-04-30 Nippon Telegr & Teleph Corp <Ntt> System, method, and program for highly reliable multicast data distribution
JP2009527151A (en) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド Streaming and buffering using variable FEC overhead and protection period
JP2013526795A (en) * 2010-05-10 2013-06-24 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for transmitting and receiving layer coding video
JP5357752B2 (en) * 2007-04-05 2013-12-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Data transmission system and method
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
JP2014529924A (en) * 2011-08-01 2014-11-13 サムスン エレクトロニクスカンパニー リミテッド Method and system for scalable information packetization and integration for information transmission in communication networks
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
JP2016052000A (en) * 2014-08-29 2016-04-11 日本放送協会 Video transmitter
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling

Cited By (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9246633B2 (en) 1998-09-23 2016-01-26 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9236976B2 (en) 2001-12-21 2016-01-12 Digital Fountain, Inc. Multi stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US9236885B2 (en) 2002-10-05 2016-01-12 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US8887020B2 (en) 2003-10-06 2014-11-11 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US9236887B2 (en) 2004-05-07 2016-01-12 Digital Fountain, Inc. File download and streaming system
US9136878B2 (en) 2004-05-07 2015-09-15 Digital Fountain, Inc. File download and streaming system
JP2006325103A (en) * 2005-05-20 2006-11-30 Nippon Hoso Kyokai <Nhk> Content transmitter, program thereof, content receiver and program thereof
JP4580277B2 (en) * 2005-05-20 2010-11-10 日本放送協会 CONTENT TRANSMITTING DEVICE AND ITS PROGRAM, CONTENT RECEIVING DEVICE AND ITS PROGRAM
JP2009527151A (en) * 2006-02-13 2009-07-23 デジタル ファウンテン, インコーポレイテッド Streaming and buffering using variable FEC overhead and protection period
US9136983B2 (en) 2006-02-13 2015-09-15 Digital Fountain, Inc. Streaming and buffering using variable FEC overhead and protection periods
JP2013017191A (en) * 2006-02-13 2013-01-24 Digital Fountain Inc Streaming and buffering using variable fec overhead and protection periods
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP4687538B2 (en) * 2006-04-04 2011-05-25 パナソニック株式会社 Receiving device, transmitting device, and communication method therefor
JP2007281640A (en) * 2006-04-04 2007-10-25 Matsushita Electric Ind Co Ltd Receiver, transmitter, and communication method thereof
US9264069B2 (en) 2006-05-10 2016-02-16 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9628536B2 (en) 2006-06-09 2017-04-18 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9191151B2 (en) 2006-06-09 2015-11-17 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
JP2008124705A (en) * 2006-11-10 2008-05-29 Oki Electric Ind Co Ltd Circuit emulation device
JP2008219170A (en) * 2007-02-28 2008-09-18 Nippon Hoso Kyokai <Nhk> File transmitter and file transmission program, and file receiver and file reception program
JP4714172B2 (en) * 2007-02-28 2011-06-29 日本放送協会 File receiving apparatus and file receiving program
JP5357752B2 (en) * 2007-04-05 2013-12-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Data transmission system and method
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
JP2009094863A (en) * 2007-10-10 2009-04-30 Nippon Telegr & Teleph Corp <Ntt> System, method, and program for highly reliable multicast data distribution
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9876607B2 (en) 2009-08-19 2018-01-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9660763B2 (en) 2009-08-19 2017-05-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11743317B2 (en) 2009-09-22 2023-08-29 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11770432B2 (en) 2009-09-22 2023-09-26 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
JP2013526795A (en) * 2010-05-10 2013-06-24 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for transmitting and receiving layer coding video
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9992555B2 (en) 2010-06-29 2018-06-05 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9602802B2 (en) 2010-07-21 2017-03-21 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
JP2014529924A (en) * 2011-08-01 2014-11-13 サムスン エレクトロニクスカンパニー リミテッド Method and system for scalable information packetization and integration for information transmission in communication networks
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
JP2016052000A (en) * 2014-08-29 2016-04-11 日本放送協会 Video transmitter

Similar Documents

Publication Publication Date Title
JP2004193992A (en) Information processing system, information processor, information processing method, recording medium and program
JP4971799B2 (en) Method and system for determining data packet transmission order using information about data packets
US7411903B2 (en) Method of generating transmission control parameters and method of selective retransmission according to packet characteristics
Wu et al. Bandwidth-efficient multipath transport protocol for quality-guaranteed real-time video over heterogeneous wireless networks
JP5141197B2 (en) Encoder
Wu et al. Energy-minimized multipath video transport to mobile devices in heterogeneous wireless networks
EP1397899B1 (en) Real-time packetization and retransmission in streaming applications
JP2955561B1 (en) Stream communication system and stream transfer control method
US20090103635A1 (en) System and method of unequal error protection with hybrid arq/fec for video streaming over wireless local area networks
JP5664229B2 (en) Transmission device, transmission method, and program
JP2010537556A (en) Proxy-driven content rate selection for streaming media servers
Wu et al. Modeling and optimization of high frame rate video transmission over wireless networks
US8654641B2 (en) Transmitting apparatus, transmitting method, and program
JP2009278521A (en) Communication device and method, and program
KR100982630B1 (en) Device and process for adjusting the bit rate of a stream of contents and associated products
JP2002077260A (en) System and method for transmitting image
JP2010028378A (en) Communication apparatus and communication method
JP6106851B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, PROGRAM
CN115883680A (en) UDP (user Datagram protocol) data transmission method, system and equipment based on ARQ (automatic repeat request)
JP4061643B2 (en) Information processing system, information processing apparatus and method, recording medium, and program
CN111669665A (en) Real-time pushing method of media stream and server
JP2004522325A (en) System for controlling the rate of data output to a network
JP2004193990A (en) Information processing system, information processor, information processing method, recording medium and program
Chakareski et al. Rate-distortion optimized video streaming with rich acknowledgments
JP2011071628A (en) Stream communication system, server device and client device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051206

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20070628