JP4433281B2 - Receiving apparatus and method, recording medium, and program - Google Patents
Receiving apparatus and method, recording medium, and program Download PDFInfo
- Publication number
- JP4433281B2 JP4433281B2 JP2004001627A JP2004001627A JP4433281B2 JP 4433281 B2 JP4433281 B2 JP 4433281B2 JP 2004001627 A JP2004001627 A JP 2004001627A JP 2004001627 A JP2004001627 A JP 2004001627A JP 4433281 B2 JP4433281 B2 JP 4433281B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- retransmission
- nack
- rtp
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
本発明は、受信装置および方法、記録媒体、並びにプログラムに関し、特に、ストリーミング型のデータ通信において、損失パケットに対する再送要求通知パケットを送信側へ効果的に到達させるようにすることで、ストリーミング型のデータ通信の信頼性を向上させ、品質の高いデータ通信を行うことができるようにした受信装置および方法、記録媒体、並びにプログラムに関する。 The present invention, receiving devices and methods, record medium, and a program, in a data communication streaming, a retransmission request notification packet to loss packets By so as to effectively reach the transmitting side, the streaming improve the reliability of data communication type, receiving apparatus and method capable of performing high data communication quality, record medium, and a program.
昨今、インターネットなど、種々の通信媒体を介して、画像データまたは音声データを伝送して提供するサービスが一般に行われている。特に、近年、ダウンロード型の通信方式のサービスに加えて、ストリーム型の通信方式のサービスがより多く提供されるようになってきた。 In recent years, services that transmit and provide image data or audio data via various communication media such as the Internet are generally performed. In particular, in recent years, in addition to download-type communication system services, more stream-type communication system services have been provided.
ダウンロード型の通信方式のサービスにおいては、受信装置が、送信装置から送信された画像または音声のデータを格納したファイルを受信し、受信したファイルを自分の記録媒体に記録する。受信装置は、ファイルの記録が完了した後、記録したファイルを基に、画像または音声を再生する。ダウンロード型の通信方式のサービスにおいては、ファイルの記録が完了するまでは、画像または音声を再生することができないので、ダウンロード型の通信方式のサービスは、長時間の再生またはリアルタイムの再生には適さない。 In a download-type communication method service, a receiving device receives a file storing image or audio data transmitted from a transmitting device, and records the received file on its own recording medium. After the recording of the file is completed, the receiving device reproduces an image or sound based on the recorded file. In the download type communication method service, the image or sound cannot be played until the file recording is completed. Therefore, the download type communication method service is suitable for long-time playback or real-time playback. Absent.
一方、ストリーム型の通信方式のサービスにおいては、受信装置が、送信装置から送信されてくるデータを受信するとともに、これに並行して、受信されたデータを基に画像または音声を再生する。ストリーム型の通信方式は、インターネット電話、遠隔テレビ会議、またはビデオオンデマンドなどのインターネットサービスに利用されている。 On the other hand, in a stream-type communication system service, a receiving device receives data transmitted from a transmitting device, and in parallel, reproduces an image or sound based on the received data. The stream type communication method is used for Internet services such as Internet telephone, remote video conferencing, and video on demand.
ストリーム型の通信方式において、送信装置から送信されてくるデータを、一般にストリーミングデータと称する。 In a stream type communication system, data transmitted from a transmission device is generally referred to as streaming data.
より具体的な例として、ストリーム型の通信方式は、画像データにMPEG(Moving Picture Experts Group)符号化処理を適用することにより生成されるMPEGストリームを格納する、IP(Internet Protocol)パケットをインターネットを介して伝送するシステムで使用される。このシステムにおいて、受信装置である、例えば、PC(Personal Computer)、PDA(Personal Digital Assistance)、または携帯電話機は、IPパケットを受信し、画像を再生する。 As a more specific example, the stream-type communication method uses an Internet protocol (IP) packet that stores an MPEG stream generated by applying MPEG (Moving Picture Experts Group) encoding processing to image data. Used in systems that transmit through. In this system, a receiving device such as a PC (Personal Computer), a PDA (Personal Digital Assistance), or a mobile phone receives an IP packet and reproduces an image.
ストリーム型の通信方式は、ビデオオンデマンド若しくはライブ映像のストリーミング配信、ビデオ会議、またはテレビ電話などのリアルタイム通信に適している。 The stream-type communication method is suitable for real-time communication such as video-on-demand or live video streaming distribution, video conferencing, or videophone.
このようなストリーム型の通信方式の技術の1つとして、IETF RFC(Internet Engineering Task Force Request For Comments)1889で規定されているプロトコルであるRTP(Real time Transport Protocol)がある。 As one of the technologies of such a stream type communication method, there is RTP (Real time Transport Protocol) which is a protocol defined by IETF RFC (Internet Engineering Task Force Request For Comments) 1889.
RTPに基づくデータ通信においては、時刻を示すタイムスタンプがパケットに付加され、タイムスタンプの参照により送信側と受信側の時間的関係が把握されるので、受信側において、パケット通信の遅延ゆらぎ(ジッタ)などの影響が排除され、同期した再生が可能になる。 In data communication based on RTP, a time stamp indicating the time is added to the packet, and the time relationship between the transmitting side and the receiving side is grasped by referring to the time stamp. ) And the like are eliminated, and synchronized playback becomes possible.
しかしながら、RTPにおいて、実時間のデータの伝送は保証されない。すなわち、パケット転送の優先度や設定、管理などは、RTPによって提供されるトランスポートサービスの範疇ではないため、他の方式のパケットと同様、ネットワーク上での遅延やパケットロスが生じる可能性がある。 However, RTP does not guarantee real-time data transmission. In other words, the priority, setting, and management of packet transfer are not within the scope of transport services provided by RTP, so there is a possibility that delay and packet loss may occur on the network as with other types of packets. .
遅延やパケットロスが生じても、受信側は、再生時刻までに受信されたパケットだけを利用してデータを再生することができる。すなわち、受信装置は、データに多少の損失や誤りが発生しても、品質を落として再生するか、またはデータの損失や誤りを訂正して再生する。 Even if a delay or packet loss occurs, the receiving side can reproduce data using only the packets received up to the reproduction time. In other words, even if some loss or error occurs in the data, the receiving apparatus reproduces the data with reduced quality or corrects the data loss or error and reproduces it.
この場合、再生に間に合わず遅れて到着したパケットやエラーの発生したパケットは、受信側でそのまま破棄される。つまり、高品質なデータを送信しても、パケットロスやエラー、パケット到着の遅れ等が発生することから、受信側の再生の品質は保証されない。 In this case, a packet that arrives late without being reproduced or a packet in which an error has occurred is discarded as it is on the receiving side. That is, even if high quality data is transmitted, packet loss, errors, packet arrival delays, and the like occur, so that the reproduction quality on the receiving side is not guaranteed.
特に、有線区間で10-5、無線区間で10-3以上のエラーがあると言われている中では、転送データの品質を維持することに関して、RTPをそのまま利用するのでは信頼性が低い。 In particular, when it is said that there are errors of 10 −5 or more in the wired section and 10 −3 or more in the wireless section, using the RTP as it is is not reliable for maintaining the quality of the transfer data.
このようなRTPに従ったデータ通信における問題を解決する案として、データ通信において信頼性のより高い通信プロトコルであるTCP(Transmission Control Protocol)に従ってパケットの再送要求およびパケットの再送を行う方法が考えられる。 As a proposal for solving such problems in data communication according to RTP, a method of performing packet retransmission request and packet retransmission according to TCP (Transmission Control Protocol), which is a more reliable communication protocol in data communication, can be considered. .
しかしながら、TCPにおいて、パケットロスが生じた場合、パケットが再送されるので、エラーには強いが、スループットが低く、遅延が大きいため、受信側において、再送されたパケットの受信が再生時刻に間に合わない可能性があり、リアルタイム通信には不向きである。 However, in TCP, when a packet loss occurs, the packet is retransmitted, so it is resistant to errors, but the throughput is low and the delay is large, so the receiving side cannot receive the retransmitted packet in time for the playback time. There is a possibility, it is not suitable for real-time communication.
したがって、送信と受信の遅延が少ないARQ(Automatic Repeat reQuest)などの技術が必要とされる。 Therefore, a technique such as ARQ (Automatic Repeat reQuest) with a small delay between transmission and reception is required.
これは、RTPパケットに設定されているシーケンス番号を用いて損失パケットを検出し、受信端末から送信端末へ、損失パケットの再送を要求する方式である。 In this method, a lost packet is detected using a sequence number set in an RTP packet, and a retransmission of the lost packet is requested from the receiving terminal to the transmitting terminal.
例えば、再送処理タイミングとして、各フレームの最終パケット受信時、各フレームの先頭パケット受信時、最終処理期限、および一定間隔毎等の各種タイミングで損失パケットの検出処理を実行し、再送要求を行い、データ受信端末が再生処理時間、伝播遅延時間、を考慮し、再生処理に間に合わない場合には、再送要求処理を実行しないようにしているものがある。(特許文献1参照) For example, as the retransmission processing timing, the loss packet detection processing is executed at various timings such as the last packet reception of each frame, the reception of the first packet of each frame, the final processing deadline, and every predetermined interval, and a retransmission request is made. In some cases, the data receiving terminal considers the reproduction processing time and the propagation delay time, and does not execute the retransmission request processing when it is not in time for the reproduction processing. (See Patent Document 1)
しかしながら、上述したARQについては、損失パケットの再送を要求するパケット自身がネットワーク上で損失し、そのパケットによって再送を要求しようとしていた損失パケットの再送処理が行われない可能性があるため、通信の信頼性において充分ではなかった。 However, with regard to the ARQ mentioned above, the packet itself requesting retransmission of the lost packet may be lost on the network, and the retransmission process of the lost packet that was requested to be retransmitted by the packet may not be performed. Reliability was not enough.
本発明は、このような状況に鑑みてなされたものであり、損失パケットの再送を要求するパケットが高い確率で相手(送信装置)に到達するようにするものである。 The present invention has been made in view of such a situation, and a packet requesting retransmission of a lost packet reaches a partner (transmitting apparatus) with a high probability.
本発明の受信装置は、正常にパケットを受信できなかった場合、正常に受信できなかったパケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかったパケットに格納されているストリーミングデータの再生予定時刻との差であって、パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定手段と、正常に受信できなかったパケットの再送を要求する再送要求通知パケットを、送信装置に送信する場合における制御を要求レベルに従って行う再送要求通知送信制御手段とを備えることを特徴とする。 In the receiving apparatus of the present invention, when a packet cannot be normally received, the request level indicating the urgency of receiving the packet that has not been normally received is stored in the current time and the packet that has not been normally received. Request level judgment means for judging by dividing the reproduction grace time calculated from the packet time stamp information or sequence number by a predetermined value, which is a difference from the streaming data reproduction scheduled time, and cannot be received normally a retransmission request notification packet to request retransmission of the packet, characterized in that it comprises a retransmission request notification transmission control means for performing in accordance with the required level of control in the case of transmitting the transmit device.
再送要求通知送信制御手段は、要求レベルに従って、再送要求通知パケットを送信する送信パケット数を決定し、決定した送信パケット数だけの再送要求通知パケットを送信するようにすることができる。 The retransmission request notification transmission control means can determine the number of transmission packets for transmitting the retransmission request notification packet according to the request level, and transmit the retransmission request notification packets for the determined number of transmission packets.
本発明の受信方法は、正常にパケットを受信できなかった場合、正常に受信できなかったパケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかったパケットに格納されているストリーミングデータの再生予定時刻との差であって、パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、正常に受信できなかったパケットの再送を要求する再送要求通知パケットを、送信装置に送信する場合における制御を要求レベルに従って行う再送要求通知送信制御ステップとを含むことを特徴とする。 In the receiving method of the present invention, when a packet cannot be received normally, the request level indicating the urgency of receiving the packet that could not be received normally is stored in the current time and the packet that could not be received normally. A request level determination step that is a difference from the scheduled reproduction time of the streaming data and is determined by dividing the reproduction grace time calculated from the packet time stamp information or the sequence number by a predetermined value, and cannot be received normally a retransmission request notification packet to request retransmission of the packet, characterized in that it comprises a retransmission request notification transmission control step of performing according to the request level control in the case of transmitting the transmit device.
本発明の記録媒体に記録されているプログラムは、正常にパケットを受信できなかった場合、正常に受信できなかったパケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかったパケットに格納されているストリーミングデータの再生予定時刻との差であって、パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、正常に受信できなかったパケットの再送を要求する再送要求通知パケットを、送信装置に送信する場合における制御を要求レベルに従って行う再送要求通知送信制御ステップとを含むことを特徴とする。 Program recorded in record medium of the present invention, can not be received if not received the packets normally, a request level representing the urgency of the reception not normally received packet, normally the current time Request level determination step for determining by dividing a reproduction grace time calculated from the time stamp information or sequence number of the packet by a predetermined value, which is a difference from the scheduled reproduction time of the streaming data stored in the packet when, characterized in that it comprises a retransmission request notification transmission control step of performing a retransmission request notification packet to request retransmission of the not normally received packet, according to the request level control in the case of transmitting the transmit device.
本発明のプログラムは、正常にパケットを受信できなかった場合、正常に受信できなかったパケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかったパケットに格納されているストリーミングデータの再生予定時刻との差であって、パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、正常に受信できなかったパケットの再送を要求する再送要求通知パケットを、送信装置に送信する場合における制御を要求レベルに従って行う再送要求通知送信制御ステップとをコンピュータに実行させる。 Program of the present invention is stored correctly if unable to receive the packet, the request level representing the urgency of the reception of the normally not received packets, in not received correctly and the current time the packet A request level determination step that is a difference from the scheduled reproduction time of the streaming data and is determined by dividing the reproduction grace time calculated from the packet time stamp information or the sequence number by a predetermined value, and cannot be received normally a retransmission request notification packet to request retransmission of packets, to perform the retransmission request notification transmission control step of performing according to the request level control in the case of transmitting the transmit device to the computer.
本発明の受信装置および方法、記録媒体、並びにプログラムにおいては、正常にパケットが受信できなかった場合、正常に受信できなかったパケットの受信の緊急性を表す要求レベルが、現在時刻と正常に受信できなかったパケットに格納されているストリーミングデータの再生予定時刻との差であって、パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定され、正常に受信できなかったパケットの再送を要求する再送要求通知パケットが送信装置に送信される場合における制御が要求レベルに従って行われる。 Receiving apparatus and method of the present invention, record medium, in the sequence in program, if not received the packets normally, the request level representing the urgency of the received that could not be normally received packet, and the current time This is the difference from the scheduled playback time of the streaming data stored in the packet that could not be received normally, and is determined by dividing the playback grace time calculated from the packet time stamp information or sequence number by the predetermined value Then, control in the case where a retransmission request notification packet requesting retransmission of a packet that could not be normally received is transmitted to the transmission apparatus is performed according to the request level .
受信装置は、独立した装置であっても良いし、通信装置の受信処理を行うブロックであっても良い。 The reception device may be an independent device or a block that performs reception processing of the communication device.
本発明によれば、損失パケットの受信の緊急性に応じて、再送を要求するパケットの送信を制御することができ、再生時刻までに、損失パケットを受信する確立を高めることができる。その結果、ストリーミングデータ通信において、信頼性の高いデータ通信および、高品位なメディア再生を実現することができる。 According to the present invention, transmission of a packet requesting retransmission can be controlled according to the urgency of receiving a lost packet, and the probability of receiving a lost packet by the reproduction time can be increased. As a result, highly reliable data communication and high-quality media reproduction can be realized in streaming data communication.
本発明は、例えば、インターネット電話、遠隔テレビ会議システム、ライブ映像ストリーミング配信システムなどのリアルタイムにストリーミングデータを転送する通信システムに適用することができる。 The present invention can be applied to a communication system that transfers streaming data in real time, such as an Internet telephone, a remote video conference system, and a live video streaming distribution system.
図1は、本発明を適用した通信システムの一実施の形態の構成例を示すブロック図である。 FIG. 1 is a block diagram showing a configuration example of an embodiment of a communication system to which the present invention is applied.
図1において、通信システムは、送信側端末12と受信側端末14とが、IPネットワーク13を介して接続されて構成されている。
In FIG. 1, the communication system is configured by connecting a
ビデオカメラ11は、動画を撮影し、送信側端末12へ画像データと音声データを供給する。
The
画像データや音声データはストリーミングデータの一例であり、ストリーミングデータは、リアルタイム制御データなど、時間経過に対応して順次に送信または受信が要求されるデータであればよい。 Image data and audio data are examples of streaming data. The streaming data may be data that is sequentially requested to be transmitted or received in accordance with the passage of time, such as real-time control data.
送信側端末12は、ビデオカメラ11から供給されたデータをパケットに格納し、IPネットワーク13を介して、受信側端末14へ送信する。
The
受信側端末14は、IPネットワーク13を介して送信側端末12から送信されてきたパケットを受信し、そのパケットに格納されているデータを抽出して、画像データまたは音声データに復元する。
The receiving
受信側端末14は、送信側端末12から連続して送信されてくるストリーミングデータが格納されたパケットの中に、正常に受信できないパケットがあった場合、送信側端末12に対して再送を要求し、送信側端末12は、受信側端末14からの要求に対応したパケットを再送する。
The
送信側端末12は、エンコーダ21、バッファ22、RTPパケット作成部23、RTP出力ポート24、通信部25、RTCP入出力ポート26、RTCPパケット解析部27、ARQ解析部28、およびRTCPパケット作成部29から構成される。
The
エンコーダ21は、ビデオカメラ11から供給されたデータの符号化を行う。エンコーダ21で符号化されたデータはバッファ22に供給され、蓄積される。
The
RTPパケット作成部23は、バッファ22に蓄積されたデータを定期的に読み込み、RTPパケットを作成し、RTP出力ポート24を介して通信部25に供給する。
The RTP packet creation unit 23 periodically reads the data stored in the buffer 22, creates an RTP packet, and supplies it to the
また、RTPパケット作成部23は、バッファ22に蓄積された全データの送信が完了した場合、RTCPパケット作成部29に対して、EOS(End Of Stream)パケット作成の指示を行う。
In addition, when transmission of all data stored in the buffer 22 is completed, the RTP packet creation unit 23 instructs the RTCP
RTP出力ポート24は、RTPパケット作成部23から供給されたRTPパケットを通信部25へ供給する。
The
通信部25は、RTP出力ポート24を介してRTPパケット作成部23から供給されたRTPパケットをもとにIPパケットを作成し、IPネットワーク13を介して、受信側端末14へ送信する。
The
また、通信部25は、IPネットワーク13を介して受信側端末14から送信されてきたIPパケットを受信し、RTCP入出力ポート26を介してRTCPパケット解析部27に供給する。
In addition, the
RTCP入出力ポート26は、通信部25から供給されたRTCPパケットをRTCPパケット解析部27に供給する。
The RTCP input /
RTCPパケット解析部27は、RTCP入出力ポート26を介して供給されたRTCPパケットのヘッダ部を解析し、そのRTCPパケットが、パケットの再送を要求する再送要求通知パケットであるかどうかを判定する。RTCPパケット解析部27は、RTCPパケットが再送要求通知パケットであると判定した場合、ARQ解析部28に、その再送要求通知パケットのデータ部を供給する。
The RTCP packet analysis unit 27 analyzes the header portion of the RTCP packet supplied via the RTCP input /
ARQ解析部28は、RTCPパケット解析部27から供給された再送要求通知パケットのデータ部から、その再送要求通知パケットによって要求されたパケットを示すシーケンス番号などのパケットの再送処理に必要な情報を取得し、RTPパケット作成部23に対して、パケットの再送処理を指示する。
The
RTCPパケット作成部29は、RTPパケット作成部23からの、EOSパケット作成の指示に従い、EOSパケットを作成し、RTCP入出力ポート26を介して通信部25に供給する。
The RTCP
受信側端末14は、通信部31、RTP入力ポート32、RTPパケット解析部33、バッファ34、インデックスリスト35、デコーダ36、ARQ処理部37、RTCPパケット作成部40、RTCP入出力ポート41、およびRTCPパケット解析部42により構成される。
The receiving
さらに、ARQ処理部37は、パケット損失検出部38、NACKパケット送信数決定部39から構成されている。
Further, the
通信部31は、IPネットワークを介して送信側端末12から送信されてくる各種パケットを受信し、受信パケットがRTPパケットの場合、そのRTPパケットを、RTP入力ポート32を介してRTPパケット解析部33へ供給する。また、通信部31は、受信パケットがRTCPパケットの場合、そのRTCPパケットを、RTCP入出力ポート41を介してRTCPパケット解析部42へ供給する。
The
また、通信部31は、RTCP入出力ポート41を介してRTCPパケット作成部40から供給された再送要求通知パケットであるRTCPパケットをもとにIPパケットを作成し、IPネットワーク13を介して送信側端末12へ送信する。
Further, the
RTP入力ポート32は、通信部31から供給されたRTPパケットを、RTPパケット解析部33へ供給する。
The
RTPパケット解析部33は、RTP入力ポート32を介して通信部31から供給されたRTPパケットを解析し、受信したRTPパケットが正常なものであるか否かを判定する。RTPパケット解析部33は、受信したRTPパケットが異常なものである場合(正常なものではない場合)、そのRTPパケットを破棄する。また、RTPパケット解析部33は、受信したRTPパケットが正常なものである場合、そのRTPパケットを、ヘッダ部とデータ部とに分割し、データ部をバッファ34へ、ヘッダ部をインデックスリスト35およびパケット損失検出部38へ供給する。
The RTP packet analysis unit 33 analyzes the RTP packet supplied from the
バッファ34は、RTPパケット解析部33から供給されたRTPパケットのデータ部を一時的に記憶する。
The
インデックスリスト35は、RTPパケット解析部33から供給されたRTPパケットのヘッダ部を一時的に記憶する。このとき、インデックスリスト35は、ヘッダ部に対応するデータ部のバッファ34内のアドレスを、ヘッダ部と関連付けて記憶する。
The
デコーダ36は、定期的にインデックスリスト35に蓄積されたヘッダ部のヘッダ情報をもとにして、バッファ34から必要なデータ部のデータを読み出し、送信側端末12のエンコーダ21に対応する復号を行う。そして、デコーダ36は、復号によって得られたデータをディスプレイ15、またはスピーカ16に出力する。
The
ARQ処理部37を構成するパケット損失検出部38は、RTPパケット解析部33から供給されるRTPパケットのヘッダ部のヘッダ情報を元に、パケット損失チェックのタイミングを判断し、インデックスリスト35に蓄積されているRTPパケットのヘッダ情報を解析して、パケット損失の有無を判定する。パケット損失検出部38は、パケット損失を検出した場合(パケット損失ありの判定をした場合)、損失したパケットを示す情報をNACKパケット送信数決定部39に供給する。
The packet
ARQ処理部37を構成するNACKパケット送信数決定部39は、パケット損失検出部38から供給された損失パケットを示す情報をもとに、損失したパケットの再送を要求する再送要求通知パケットの送信数を決定し、損失したパケットを示す情報とともに、再送要求通知パケットの送信数を示す情報をRTCPパケット作成部40に供給する。
The NACK packet transmission
RTCPパケット作成部40は、NACKパケット送信数決定部39から供給された情報をもとに、再送要求通知パケット(RTCPパケット)を作成し、NACKパケット送信数決定部39によって決定された送信数だけ、RTCP入出力ポート41を介して通信部31へ供給する。以下、再送要求通知パケットを、適宜NACKパケットという。NACKパケットの詳細については後述する。
The RTCP
RTCP入出力ポート41は、RTCPパケット作成部40から供給されたRTCPパケット(NACKパケット)を通信部31へ供給する。また、RTCP入出力ポート41は、通信部31から供給されたRTCPパケット(EOSパケット)をRTCPパケット解析部42へ供給する。
The RTCP input /
RTCPパケット解析部42は、通信部31からRTCP入出力ポート41を介して供給されたRTCPパケットを解析し、そのRTCPパケットが、ストリーミングデータの終了を表すEOSパケットであった場合、送信側端末12においてストリーミングデータの送信が完了したことを認識する。
The RTCP
図2は、送信側端末12においてストリーミングデータが格納され、受信側端末14に送信されてくるパケットであるRTPパケットを説明する図である。
FIG. 2 is a diagram for explaining an RTP packet that is a packet in which streaming data is stored in the
RTPパケットのヘッダ部は、バージョン番号、パディング、拡張ビット、counter、marker_bit、payload type、シーケンス番号、TIMESTAMP、同期ソース識別子、貢献ソース識別子の各フィールドから構成されている。 The header part of the RTP packet is composed of fields of version number, padding, extension bit, counter, marker_bit, payload type, sequence number, TIMESTAMP, synchronization source identifier, and contribution source identifier.
バージョン番号フィールドは、2ビットの領域であり、そこに記述されるバージョン番号はRTPパケットのバージョンを表す。 The version number field is a 2-bit area, and the version number described therein represents the version of the RTP packet.
続いて配置されるパディングは、例えば、0が設定される1ビットの領域である。 The subsequent padding is a 1-bit area in which 0 is set, for example.
拡張ビットフィールドは、1ビットの領域であり、そこに記述される拡張ビットは、拡張ヘッダの有無を表す。 The extension bit field is a 1-bit area, and the extension bits described therein indicate the presence or absence of an extension header.
counterフィールドは、4ビットの領域であり、そこに記述されるcounterは、貢献ソース識別子の設定数を表す。 The counter field is a 4-bit area, and counter described therein represents the set number of contributing source identifiers.
marker_bitフィールドは、1ビットの領域であり、そこに記述されるmarker_bitは、プロファイルによって定義される。 The marker_bit field is a 1-bit area, and the marker_bit described therein is defined by a profile.
payload typeフィールドは、7ビットの領域であり、そこに記述されるpayload type は、RTPペイロードのフォーマットを定義するための情報である。 The payload type field is a 7-bit area, and the payload type described therein is information for defining the format of the RTP payload.
シーケンス番号フィールドは、16ビットの領域であり、そこに記述されるシーケンス番号は、パケットの順序を表す。また、シーケンス番号は、RTPパケットの送信の度に1つずつ増える情報である。シーケンス番号は、パケット損失を検出したり、受信したRTPパケットの順序を修復するために使用される。 The sequence number field is a 16-bit area, and the sequence number described therein represents the order of packets. The sequence number is information that increases by one each time an RTP packet is transmitted. The sequence number is used to detect packet loss and repair the order of received RTP packets.
TIMESTAMPフィールドは、32ビットの領域であり、そこに記述されるTIMESTAMPは、RTPパケットに格納されているストリーミングデータの最初のオクテットがサンプルされた時刻を示す情報である。 The TIMESTAMP field is a 32-bit area, and TIMESTAMP described therein is information indicating the time when the first octet of streaming data stored in the RTP packet is sampled.
同期ソース識別子フィールドは、32ビットの領域であり、そこに記述される同期ソース識別子には、送信元を示す識別子が設定される。 The synchronization source identifier field is a 32-bit area, and an identifier indicating a transmission source is set in the synchronization source identifier described therein.
貢献ソース識別子は、32ビットの領域であり、そこに記述される貢献ソース識別子は、最大15個の貢献ソース識別子が設定可能である。この貢献ソース識別子の設定数は、上記のcounterに設定されている。貢献ソース識別子は、送信元が複数の場合に、それぞれの送信元から送信されたパケットが経由するミキサによって、それぞれのパケットに設定されている上記の同期ソース識別子が設定される。その際、同期ソース識別子には、ミキサを示す識別子が設定される。 The contribution source identifier is a 32-bit area, and a maximum of 15 contribution source identifiers can be set as the contribution source identifier described therein. The set number of contribution source identifiers is set in the above counter. As the contribution source identifier, when there are a plurality of transmission sources, the above-mentioned synchronization source identifier set in each packet is set by the mixer through which the packet transmitted from each transmission source passes. At this time, an identifier indicating the mixer is set as the synchronization source identifier.
図2において、以上のような各フィールドからなるヘッダ部に続くPayloadは、ストリーミングデータを示す。 In FIG. 2, “Payload” following the header portion including the above fields indicates streaming data.
図3は、受信側端末14が送信側端末12に送信する再送要求通知パケットとしてのNACKパケットを説明する図である。
FIG. 3 is a diagram for explaining a NACK packet as a retransmission request notification packet transmitted from the receiving
NACKパケットには、バージョン番号、パディング、FORMAT、PayloadType、パケット長、送信同期ソース識別子(RTCP)、TIMESTAMPの情報に加え、再送要求対象となるパケットを示すシーケンス番号である再送指定シーケンス番号、再送要求回数、オプション(OPTION)、重複指定回数が設定可能である。 The NACK packet includes a version number, padding, FORMAT, PayloadType, packet length, transmission synchronization source identifier (RTCP), and TIMESTAMP information, as well as a retransmission specified sequence number that is a sequence number indicating the packet that is a retransmission request target, and a retransmission request. The number of times, an option (OPTION), and the number of times of duplication can be set.
バージョン番号、パディングは、図2のRTPヘッダ部のバージョン番号とパディングと同様であるため、ここでの説明は省略する。 Since the version number and padding are the same as the version number and padding in the RTP header portion of FIG. 2, description thereof is omitted here.
本実施の形態においては、NACKパケットおよびEOSパケット等の制御メッセージの区別に関して、RTCPヘッダのPayloadTypeによってのみ区別するのではなく、PayloadTypeとFORMATを使用して区別することとする。 In this embodiment, regarding the distinction between control messages such as NACK packets and EOS packets, they are not distinguished only by PayloadType of the RTCP header, but are distinguished using PayloadType and FORMAT.
FORMATには、NACKパケットおよびEOSパケット等を示す値が設定され、PayloadTypeには、制御メッセージであることを示す値が設定される。 A value indicating a NACK packet, an EOS packet, or the like is set in FORMAT, and a value indicating a control message is set in PayloadType.
図3に示すように、1つのNACKパケットにおいて、1つ以上の、再送要求対象となるパケットのシーケンス番号を、再送指定シーケンス番号として設定することが可能である(図3において、複数の「再送指定シーケンス番号」はこのことを表す)。 As shown in FIG. 3, in one NACK packet, it is possible to set one or more sequence numbers of packets to be retransmitted as retransmission designation sequence numbers (in FIG. “Specified sequence number” represents this).
また、再送要求対象となるパケットのシーケンス番号それぞれに対して付加される再送要求回数は、そのシーケンス番号に対応するパケットの再送要求が何回目のものであるかを示すフィールドであり、重複指定回数は、送信側端末12が再送する際の、同一パケットの再送回数を指定するフィールドである。OPTIONは、その他の任意の情報を格納するフィールドとして使用される。OPTIONには、任意の情報を格納することが可能であり、設定値に従った処理を送信側端末12に実行させることができる。
Further, the number of retransmission requests added to each sequence number of a packet to be retransmitted is a field indicating the number of retransmission requests for a packet corresponding to the sequence number, and the number of times of duplicate designation Is a field for designating the number of retransmissions of the same packet when the
例えば、重複指定回数に3を設定した場合、NACKパケットを受信した送信側端末12に、そのNACKパケットによって再送を要求したパケットを3回送信させることができる。
For example, when 3 is set as the number of times of duplication designation, it is possible to cause the transmitting
また、再送要求回数に何回目の要求であるのかを設定することで、NACKパケット自身が損失したことを送信側端末12に認識させることができる。
In addition, by setting the number of retransmission requests as the number of retransmission requests, the transmitting
図4は、送信側端末12から受信側端末14へ送信されるEOSパケットを説明する図である。
FIG. 4 is a diagram for explaining an EOS packet transmitted from the
EOSパケットは、バージョン番号、パディング、FORMAT、payload type、パケット長、送信同期ソース識別子(RTCP)、TIMESTAMPから構成される。EOSパケットを構成するそれぞれのフィールドは、図3に示すNACKパケットのそれぞれのフィールドと同様であるので説明は省略する。 The EOS packet is composed of a version number, padding, FORMAT, payload type, packet length, transmission synchronization source identifier (RTCP), and TIMESTAMP. Each field constituting the EOS packet is the same as each field of the NACK packet shown in FIG.
次に、図1の送信側端末12におけるパケットの送信処理を図5のフローチャートを参照して説明する。
Next, packet transmission processing in the
ステップS11において、エンコーダ21はビデオカメラ11から供給されたデータを符号化する。例えば、エンコーダ21は、供給された画像データをMPEG(Moving Picture Experts Group)などの方式により符号化し、バッファ22に格納する。RTPパケット作成部23は、バッファ22に格納された符号化データを読み込み、その符号化データをPayload(図2)に配置したRTPパケットを作成し、RTP出力ポート24を介して通信部25に供給する。RTPパケットは、ストリーミングデータを転送する際に使用されるパケットの一例である。
In step S11, the
ステップS11からステップS12に進み、通信部25は、RTP出力ポート24を介してRTPパケット作成部23から供給されたRTPパケットをもとにIPパケットを作成し、ステップS13へ進む。ステップS13において、通信部25は、作成したIPパケットを、IPネットワーク13を介して受信側端末14へ送信し、ステップS14へ進む。
Proceeding from step S11 to step S12, the
ステップS14において、RTCPパケット解析部27は、受信側端末14からNACKパケットを受信したかどうかのNACKパケット受信判定を行う。ステップS14において、NACKパケットが受信されてないと判定された場合、ステップS15に進み、RTPパケット作成部23は、送信すべき全データの送信が完了したか否かを判定する。
In step S <b> 14, the RTCP packet analysis unit 27 determines whether or not a NACK packet has been received from the receiving
ステップS15において、送信すべき全データの送信が完了していないと判定された場合、ステップS11に戻り、送信すべき全データの送信が完了するまでRTPパケット送信処理が繰り返される。 If it is determined in step S15 that transmission of all data to be transmitted has not been completed, the process returns to step S11, and RTP packet transmission processing is repeated until transmission of all data to be transmitted is completed.
一方、ステップS14において、NACKパケットを受信したと判定された場合、即ち、受信側端末14から送信されたNACKパケットが、通信部25で受信され、RTCP入出力ポート26を介してRTCPパケット解析部27に供給された場合、パケット解析部27は、そのNACKパケットをARQ解析部28へ供給して、ステップS16へ進む。
On the other hand, when it is determined in step S14 that the NACK packet has been received, that is, the NACK packet transmitted from the receiving
ARQ解析部28は、ステップS16において、RTCPパケット解析部27に供給されたNACKパケットのデータ部を解析し、そのNACKパケットによって再送を要求されたパケットのシーケンス番号などの、パケットの再送処理に必要な情報を取得し、RTPパケット作成部23に対して、再送処理を指示する。
In step S16, the
なお、ステップS16において、ARQ解析部28は、タイマを設定することで、ある一定時間内に、同一パケットを示すシーケンス番号を含むNACKパケットを複数受信した場合、最初のNACKパケットを受信した時点において、RTPパケット作成部23に再送を要求されたパケットの再送指示を行い、その後、タイマによる一定時間の計時が終了するまでの間に受信したNACKパケットに含まれる同一パケットを示すシーケンス番号を無視することで、再送要求されたパケットの再送を制御することも可能である。
In step S16, the
この場合、一定時間内に同一パケットの再送を要求する1以上のNACKパケットを受信しても、そのパケットの再送が1回しか行われないこととなり、無駄なトラフィックの増加を防止することができる。 In this case, even if one or more NACK packets requesting retransmission of the same packet are received within a certain time, the packet is retransmitted only once, and an increase in useless traffic can be prevented. .
ステップS16からステップS17に進み、RTPパケット作成部23は、ARQ解析部28から入力される再送処理の指示に従い、再送要求に対応するデータ(NACKパケットによって再送が要求されたデータ)をバッファ22から抽出し、ステップS18へ進む。
Proceeding from step S16 to step S17, the RTP packet creation unit 23 sends data corresponding to the retransmission request (data requested to be retransmitted by the NACK packet) from the buffer 22 in accordance with the retransmission processing instruction input from the
ステップS18において、RTPパケット作成部23は、ステップS17でバッファ22から抽出したデータを格納したRTPパケットを作成し、RTP出力ポート24を介して通信部25に供給して、ステップS19に進む。
In step S18, the RTP packet creation unit 23 creates an RTP packet storing the data extracted from the buffer 22 in step S17, supplies the RTP packet to the
ステップS19において、通信部25は、RTP出力ポート24を介してRTPパケット作成部23から供給されたRTPパケットをもとにIPパケットを作成し、ステップS20に進み、通信部25は、作成したIPパケットを、IPネットワーク13を介して受信側端末14へ送信する。その後、ステップS14に戻り、以下同様の処理が繰り返される。
In step S19, the
一方、ステップS15において、送信すべき全データの送信が完了と判定された場合、ステップS21へ進み、RTPパケット作成部23は、EOSパケットを送信済みであるか否かの判定を行う。 On the other hand, when it is determined in step S15 that transmission of all data to be transmitted is completed, the process proceeds to step S21, and the RTP packet creation unit 23 determines whether or not the EOS packet has been transmitted.
ステップS21においてEOSパケットが未送信であると判定された場合、ステップS22に進み、RTPパケット作成部23は、RTCPパケット作成部29に対してEOSパケット送信の指示を行う。RTCPパケット作成部29は、RTPパケット作成部23からの指示に従い、EOSパケットを作成し、RTCP入出力ポート26を介して通信部25にEOSパケットを供給する。通信部25は、RTCP入出力ポート26を介してRTCPパケット作成部29から供給されたEOSパケットをもとにIPパケットを作成し、IPネットワーク13を介して受信側端末14に送信する。
If it is determined in step S21 that the EOS packet has not been transmitted, the process proceeds to step S22, and the RTP packet creation unit 23 instructs the RTCP
そして、ステップS22からステップS23に進み、RTCPパケット作成部29は、送信処理終了タイマの計時を開始し、ステップS14に戻る。ここで、送信処理終了タイマは、EOSパケット送信後にも受信側端末14からNACKパケットが送信されてくる可能性があるために、そのNACKパケットの処理を行う時間として計時されるものである。
Then, the process proceeds from step S22 to step S23, where the RTCP
一方、ステップS21において、EOSパケットが送信済みであると判定された場合は、ステップS24へ進み、RTCPパケット作成部29は、送信処理終了タイマによる所定の時間の計時が終了したか否かを判定する。
On the other hand, if it is determined in step S21 that the EOS packet has been transmitted, the process proceeds to step S24, where the RTCP
ステップS24において、送信処理終了タイマによる所定の時間の計時が終了していないと判定された場合、ステップS14に戻り、上述の処理が繰り返される。 If it is determined in step S24 that the predetermined time has not been counted by the transmission process end timer, the process returns to step S14 and the above-described process is repeated.
また、ステップS24において、送信処理終了タイマによる所定の時間の計時が終了したと判定された場合、送信処理が終了される。 If it is determined in step S24 that the predetermined time has been counted by the transmission process end timer, the transmission process is terminated.
図6に示すフローチャートを参照して、図1の受信側端末14によるパケットの受信処理を説明する。
With reference to the flowchart shown in FIG. 6, the packet reception processing by the receiving
ステップS31において、受信処理に必要な初期化処理が行い行われる。例えば、パケット損失検出部38は、内蔵しているパケット損失チェックタイマによる所定の時間の計時を開始する。このパケット損失チェックタイマは、一定の時間毎にパケット損失のチェックを実行するために、その時間を計時するためのものである。
In step S31, initialization processing necessary for reception processing is performed. For example, the packet
ステップS32において、RTPパケット解析部33は、送信側端末12からのRTPパケットを受信したか否かの判定を行う。ステップS32において、RTPパケットを受信したと判定された場合、即ち、送信側端末12からのRTPパケットが通信部31で受信され、RTP入力ポート32を介してRTPパケット解析部33へ供給された場合、ステップS33へ進み、RTPパケット解析部33は、RTP入力ポート32を介して供給されたRTPパケットのデータ部をバッファ34へ供給し、ヘッダ部をインデックスリスト35およびパケット損失検出部38へ供給し、ステップS34へ進む。
In step S <b> 32, the RTP packet analysis unit 33 determines whether or not an RTP packet from the
ここで、バッファ34は、RTP解析部33から供給されたRTPパケットのデータ部のデータを記憶し、また、インデックスリスト35は、RTP解析部33から供給されたRTPパケットのヘッダ部のヘッダ情報を記憶する。
Here, the
ステップS34において、パケット損失検出部38は、RTP解析部33から供給されたRTPパケットのヘッダ部に基づき、そのRTPパケット(以下、適宜、注目パケットという)が再生の単位となるデータフレームのnフレーム目(n=1,2,...)の終端パケットであるか否かの判定を行う。ステップS34において、注目パケットがnフレーム目の終端パケットではないと判定された場合、ステップS35に進み、パケット損失検出部38は、注目パケットが(n+1)フレーム目の先頭パケットであるか否かの判定を行う。
In step S34, the packet
ステップS35において、注目パケットが(n+1)フレーム目の先頭パケットではないと判定された場合、ステップS36へ進み、パケット損失検出部38は、パケット損失チェックタイマによる所定の時間の計時が終了したか否かの判定を行う。
If it is determined in step S35 that the packet of interest is not the first packet of the (n + 1) th frame, the process proceeds to step S36, and the packet
ステップS36において、パケット損失チェックタイマによる所定の時間の計時が終了していないと判定された場合、ステップS39へ進み、デコーダ36は、現在時刻がmフレーム目(m=1,2,...)の再生時刻であるか否かの判定を行う。
If it is determined in step S36 that the time measurement of the predetermined time by the packet loss check timer has not ended, the process proceeds to step S39, and the
ここで、各フレームの再生時刻は、そのフレームを構成するデータが格納されていたRTPパケットに含まれるタイムスタンプから算出することができる。 Here, the reproduction time of each frame can be calculated from the time stamp included in the RTP packet in which the data constituting the frame was stored.
ステップS39において、現在時刻がmフレーム目の再生時刻ではないと判定された場合、ステップS40をスキップして、ステップS32に戻り、上述の処理を繰り返す。 If it is determined in step S39 that the current time is not the playback time of the mth frame, step S40 is skipped, the process returns to step S32, and the above processing is repeated.
また、ステップS39において、現在時刻がmフレーム目の再生時刻であると判定された場合、ステップS40へ進み、デコーダ36は、バッファ34に記憶されたデータを読み出し、mフレーム目の復号処理を行う。その後、ステップS32へ戻り、上述の処理を繰り返す。
If it is determined in step S39 that the current time is the playback time of the mth frame, the process proceeds to step S40, where the
一方、ステップS34において、注目パケットがnフレーム目の終端パケットであると判定された場合、またはステップS35において、注目パケットが(n+1)フレーム目の先頭パケットであると判定された場合、ステップS38へ進む。 On the other hand, if it is determined in step S34 that the packet of interest is the end packet of the nth frame, or if it is determined in step S35 that the packet of interest is the first packet of the (n + 1) th frame, the process proceeds to step S38. move on.
また、ステップS36において、パケット損失チェックタイマによる所定の時間の計時が終了したと判定された場合も、ステップS37において、パケット損失検出部38は、パケット損失チェックタイマによる所定の時間の計時を再開してから、ステップS38へ進む。
Also, when it is determined in step S36 that the time measurement of the predetermined time by the packet loss check timer has been completed, the packet
ステップS38において、パケット損失検出部38は、インデックスリスト35に記憶されているヘッダ情報を参照して、各フレームを構成するデータの損失の有無、即ち、各フレーム内の損失パケットの有無を判定する。ステップS38において、損失パケットがないと判定された場合、ステップS39に進み、以下、上述した処理が行われる。
In step S38, the packet
また、ステップS38において、損失パケットがあると判定された場合、即ち、パケット損失検出部38において損失パケットが検出された場合、ステップS41へ進み、NACKパケット送信数決定部39は、パケット損失検出部38により検出された損失パケットに格納されているデータを含むフレームの再生時刻と現在時刻の差である再生猶予時間を算出し、さらに、その再生猶予時間から、損失パケットの受信の緊急性を表す要求レベルを判定する。
If it is determined in step S38 that there is a lost packet, that is, if a lost packet is detected in the packet
なお、再生猶予時間は、例えば、RTPパケットのヘッダ情報に含まれるタイムスタンプから算出することができる。即ち、損失パケットの再生猶予時間は、例えば、現在再生中のフレームを構成するデータが格納されていたRTPパケットのタイムスタンプと損失パケットの、1つ前または後のシーケンス番号のRTPパケットのタイムスタンプの差から求めることができる。 The reproduction grace time can be calculated from a time stamp included in the header information of the RTP packet, for example. That is, the reproduction grace time of the lost packet is, for example, the time stamp of the RTP packet in which the data constituting the frame currently being reproduced is stored and the time stamp of the RTP packet with the sequence number one before or after the lost packet. It can be obtained from the difference.
また、再生猶予時間としては、その他、例えば、現在再生中のフレームを構成するデータが格納されていたRTPパケットのシーケンス番号と損失パケットのシーケンス番号の差分値を用いるようにしても良い。この場合、現在再生中のフレームを構成するデータが格納されていたRTPパケットのシーケンス番号としては、現在再生中のフレームの、先頭のデータが格納されていたRTPパケットのシーケンス番号、または現在再生中のフレームの最後のデータが格納されていたRTPパケットのシーケンス番号、さらにその先頭と最後の間のデータが格納されていた任意のRTPパケットのシーケンス番号を用いることができる。 In addition, as the reproduction grace time, for example, a difference value between the sequence number of the RTP packet in which the data constituting the frame currently being reproduced is stored and the sequence number of the lost packet may be used. In this case, the sequence number of the RTP packet in which the data making up the currently playing frame was stored is the sequence number of the RTP packet in which the first data of the currently playing frame was stored, or the currently playing frame The sequence number of the RTP packet in which the last data of the frame is stored, and the sequence number of any RTP packet in which the data between the beginning and the end are stored can be used.
要求レベルは、例えば次の式により判定することができる。 The required level can be determined by the following equation, for example.
要求レベル = 再生猶予時間/T Request level = grace period / T
Tは、再生猶予時間をタイムスタンプから求める場合には、ある一定の時間(タイムスタンプ)差を示す値であり、再生猶予時間をシーケンス番号から求める場合には、ある一定のシーケンス番号の差を示す値である。また、要求レベルは、値が小さい程、損失パケットの受信の緊急性が高いことを表すものとする。 T is a value indicating a certain time (time stamp) difference when the playback grace time is determined from the time stamp, and T is a value indicating a certain sequence number difference when the playback grace time is determined from the sequence number. This is the value shown. Further, it is assumed that the smaller the value of the request level, the higher the urgency of receiving a lost packet.
ステップS41での要求レベルの判定後、ステップS42に進み、NACKパケット送信数決定部39は、要求レベルに従い、NACKパケットの送信数を決定し、決定した送信数を示す情報をRTCPパケット作成部40に供給して、ステップS43に進む。
After the determination of the request level in step S41, the process proceeds to step S42, where the NACK packet transmission
NACKパケットの送信数は、例えば、次のように決定することができる。 For example, the number of NACK packets transmitted can be determined as follows.
要求レベル ≦(K−1)の場合は、NACKパケットの送信数 = K−要求レベル If request level ≤ (K-1), number of NACK packets transmitted = K-request level
要求レベル >(K−1)の場合は、NACKパケットの送信数 = 1 If request level> (K-1), the number of NACK packets transmitted = 1
上記において、Kは正の整数である。 In the above, K is a positive integer.
上記内容に従うと、再生猶予時間が大きい損失パケット(再生時刻までに余裕がある損失パケット)に対するNACKパケットは少数送信され(少数のNACKパケットが送信され)、再生猶予時間の小さい損失パケット(再生時刻までに余裕がない損失パケット)に対するNACKパケットは多数送信される(多数のNACKパケットが送信される)。 According to the above contents, a small number of NACK packets (loss of NACK packets are sent) for lost packets with a large playback grace time (lost packets with a margin before playback time) and lost packets with a small playback grace time (playback time) A large number of NACK packets are transmitted (a number of NACK packets are transmitted).
例えば、画像フレームF1の再生予定時刻が3000、画像フレームF2の再生時刻が6000、画像フレームF3の再生予定時刻が9000であるとし、上記T = 3000、K = 4、さらに現在時刻が0であるとしたとき、画像フレームF1に対する損失パケットP1、画像フレームF2に対する損失パケットP2、画像フレームF3に対する損失パケットP3を検出したとする。このとき、損失パケットP1に対するNACKパケットの送信数C1は、下記の式により算出される。 For example, assume that the scheduled playback time of the image frame F1 is 3000, the playback time of the image frame F2 is 6000, the scheduled playback time of the image frame F3 is 9000, T = 3000, K = 4, and the current time is 0. Suppose that a lost packet P1 for the image frame F1, a lost packet P2 for the image frame F2, and a lost packet P3 for the image frame F3 are detected. At this time, the transmission number C1 of NACK packets for the lost packet P1 is calculated by the following equation.
C1 = 4−(3000/3000)= 3 C1 = 4- (3000/3000) = 3
同様に、損失パケットP2に対するNACKパケットの送信数C2、損失パケットP3に対するNACKパケットの送信数C3は下記の式より算出される。 Similarly, the transmission number C2 of NACK packets for the lost packet P2 and the transmission number C3 of NACK packets for the lost packet P3 are calculated by the following equations.
C2 = 4−(6000/3000)= 2
C3 = 4−(9000/3000)= 1
C2 = 4- (6000/3000) = 2
C3 = 4- (9000/3000) = 1
ステップS43において、RTCPパケット作成部40は、損失パケットに対するNACKパケットを作成し、NACKパケット送信数決定部39により決定された送信数に等しい数のNACKパケットを、RTCP入出力ポート41を介して通信部31に供給し、ステップS44に進む。
In step S43, the RTCP
ステップS44において、通信部31は、RTCP入出力ポート41を介して供給されたNACKパケットをもとに、その個数分のIPパケットを作成し、ステップS45に進む。ステップS45において、通信部31は、作成したIPパケットを、IPネットワーク13を介して送信側端末12へ送信し、ステップS32の処理へ戻り、上述の処理を繰り返す。
In step S44, the
上記のように、損失パケットの受信の緊急性を表す要求レベルに応じて、NACKパケットの送信数を調整することで、無駄なトラフィックの増加を防止することができる。 As described above, it is possible to prevent an increase in useless traffic by adjusting the number of NACK packets transmitted according to the request level indicating the urgency of receiving lost packets.
なお、NACKパケットを複数送信する場合(複数個のNACKパケットを送信する場合)、RTCPパケット作成部40においてタイマを設けることで、同一のRTPパケット(損失パケット)の再送を要求する複数のNACKパケットを一定の時間おきに送信側端末12へ送信することが可能である。
When a plurality of NACK packets are transmitted (when a plurality of NACK packets are transmitted), a plurality of NACK packets requesting retransmission of the same RTP packet (lost packet) by providing a timer in the RTCP
NACKパケットを一定の時間おきに送信することで、複数のNACKパケットを一度にまとめて送信した場合に、IPネットワーク13の輻輳により、送信した全てのNACKパケットが損失する危険性を低下させることができる。
By transmitting NACK packets at regular intervals, when a plurality of NACK packets are transmitted at once, the risk of losing all transmitted NACK packets due to congestion of the
一方、ステップS32において、送信側端末12からのRTPパケットを受信していないと判定された場合、ステップS46へ進み、RTCPパケット解析部42は、送信側端末12からのEOSパケットを受信したか否かの判定を行う。
On the other hand, if it is determined in step S32 that the RTP packet from the
ステップS46において、EOSパケットを受信したと判定された場合、ステップS47へ進み、RTCPパケット解析部42は、受信処理終了タイマによる一定時間の計時を開始し、ステップS32の処理へ戻る。この受信処理終了タイマにより計時される一定時間は、最終フレームの再生時刻をもとに設定され、EOSパケット受信後も、再生が終了するまでの間は、NACKパケットにより再送を要求したRTPパケットの受信を可能にするための時間として使用される。
If it is determined in step S46 that an EOS packet has been received, the process proceeds to step S47, where the RTCP
また、ステップS46において、EOSパケットを受信していないと判定された場合、ステップS48へ進み、デコーダ36は、現在時刻がmフレーム目の再生時刻であるか否かの判定を行う。
If it is determined in step S46 that no EOS packet has been received, the process proceeds to step S48, and the
ステップS48において、現在時刻がmフレーム目の再生時刻であると判定された場合、ステップS49へ進み、デコーダ36は、バッファ34に記憶されたデータを読み出し、mフレーム目の復号処理を行う。
If it is determined in step S48 that the current time is the reproduction time of the mth frame, the process proceeds to step S49, where the
そして、ステップS50に進み、RTCPパケット解析部42は、EOSパケットを受信済みであるか否かの判定を行う。ステップS50において、EOSパケットを受信済みであると判定された場合、ステップS51へ進み、RTCPパケット解析部42は、受信処理終了タイマによる一定時間の計時が終了したか否かの判定を行う。
In step S50, the RTCP
ステップS51において、受信処理終了タイマによる一定時間の計時が終了したと判定された場合、受信側端末14は、受信処理を終了する。
In step S51, if it is determined that the time measurement by the reception process end timer has ended, the reception-
一方、ステップS48において、現在時刻がmフレーム目の再生時刻でないと判定された場合、ステップS50において、EOSパケットが受信済みでないと判定された場合、または、ステップS51において、受信処理終了タイマによる一定時間の計時が終了していないと判定された場合は、ステップS32の処理へ戻り、上述した処理を繰り返す。 On the other hand, if it is determined in step S48 that the current time is not the playback time of the m-th frame, if it is determined in step S50 that the EOS packet has not been received, or if it is determined in step S51 by the reception processing end timer. If it is determined that the time measurement has not ended, the process returns to step S32 to repeat the above-described process.
以上のように、損失パケットの受信の緊急性を表す要求レベルに応じて、NACKパケットの送信数を調整することにより、再生時刻の迫ったデータを格納する損失パケットに対するNACKパケットを高い確率で送信側へ到達させることが可能となり、再生時刻の迫ったデータを格納した再送パケットを、受信側にて再生時刻までに受信できる確立を高めることができる。その結果として、信頼性の高いデータ通信、および高品位なメディアの再生が可能となる。 As described above, by adjusting the number of NACK packets sent according to the request level indicating the urgency of receiving lost packets, NACK packets for lost packets that store data whose playback time is approaching are transmitted with high probability. It is possible to increase the probability that a retransmission packet storing data that is approaching the reproduction time can be received before the reproduction time on the reception side. As a result, highly reliable data communication and high-quality media playback are possible.
次に、他の実施の形態について説明する。 Next, another embodiment will be described.
図7は、本発明を適用した通信システムの他の実施の形態の構成例を示すブロック図である。図7において、図1に示す場合と同様の部分には同一の番号を付してあり、その説明は適宜省略する。 FIG. 7 is a block diagram showing a configuration example of another embodiment of a communication system to which the present invention is applied. In FIG. 7, the same parts as those shown in FIG. 1 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.
図7において、IPネットワーク51は、Diffserv(Differentiated Services)対応のIPネットワークである。
In FIG. 7, an
ARQ解析部53は、RTCPパケット解析部27から供給されたNACKパケット(RTCPパケット)のデータ部から、受信側端末14から再送を要求されたRTPパケットを示すシーケンス番号などのパケットの再送処理に必要な情報を取得し、RTPパケット作成部23に対して、再送処理を指示する。また、ARQ解析部53は、RTCPパケット解析部27から供給されたNACKパケット(RTCPパケット)のデータ部の指定優先度から、RTPパケットの再送の際にIPヘッダのDS(Differentiated Services)フィールドに設定する、IPネットワーク51上でのパケットの転送処理における優先度を判定し、再送を要求されたRTPパケットを示す情報とともに、通信部52へ優先度を示す情報を通知する。
The
通信部52は、図1の通信部25と同様の処理を行う。ただし、通信部52は、RTP出力ポート26を介してRTPパケット作成部23から供給された再送パケット(RTPパケット)からIPパケットを作成する際、ARQ解析部53から供給された情報をもとにして、IPヘッダのDSフィールドに、NACKパケットに設定された優先度に対応する値を設定し、Diffserv対応のIPネットワーク51を介して、受信側端末14へ再送パケットを送信する。
The
図7において、ARQ処理部37は、図1のNACKパケット送信数決定部39に代えて、NACKパケット優先度決定部55が設けられて構成されている。
In FIG. 7, the
NACKパケット優先度決定部55は、パケット損失検出部38から供給された損失パケットを示す情報をもとに、その損失パケットの再送を要求する再送要求通知パケットの優先度を決定し、パケット損失検出部38から供給された損失パケットを示す情報とともに、再送要求通知パケットの優先度を示す情報をRTCPパケット作成部40に供給する。同時に、NACKパケット優先度決定部55は、再送要求通知パケットの優先度を示す情報を通信部54へ供給する。
The NACK packet
通信部54は、図1の通信部31と同様の処理を行う。ただし、通信部54は、RTCP入出力ポート41を介してRTCPパケット作成部40から供給されたRTCPパケット(NACKパケット)をもとにIPパケットを作成する際、NACKパケット優先度決定部55から供給された情報をもとに、IPヘッダのDSフィールドに、IPネットワーク51上でのパケットの転送処理における優先度を示す値を設定し、Diffserv対応のIPネットワーク51を介して送信側端末12へ送信する。
The
図8は、受信側端末14が送信側端末12へ送信するNACKパケットとしてのIPパケットの構成を説明する図である。
FIG. 8 is a diagram for explaining the configuration of an IP packet as a NACK packet transmitted from the receiving
IPパケットは、バージョン情報、ヘッダ長、TOS(Type Of Service)、パケット長、識別子、フラグ、断片オフセット、TTL(Time To Live)、プロトコル、送信元IPアドレス、宛て先IPアドレス、オプション、およびデータの各フィールドから構成されている。 IP packet includes version information, header length, TOS (Type Of Service), packet length, identifier, flag, fragment offset, TTL (Time To Live), protocol, source IP address, destination IP address, options, and data It consists of each field.
IPパケットの先頭に配置されるバージョン情報フィールドは、4ビットの領域であり、バージョン情報は、IPのバージョンを表す。 The version information field arranged at the head of the IP packet is a 4-bit area, and the version information represents the IP version.
次に配置されるヘッダ長は、バージョン情報からオプションまでを含む、IPヘッダの長さを表す。 The header length to be arranged next represents the length of the IP header including version information to options.
8ビット領域のTOSフィールドは、IPパケットがDiffserv対応の場合、6ビットのDS(Differentiated Services)フィールドと2ビットの未使用領域に置き換えられ、DSフィールドにIPパケットの優先度を示す値が設定される。 The 8-bit TOS field is replaced with a 6-bit DS (Differentiated Services) field and a 2-bit unused area when the IP packet is Diffserv-compatible, and a value indicating the priority of the IP packet is set in the DS field. The
パケット長フィールドは、16ビットの領域であり、そこに記述されるパケット長は、IPパケットの全長、つまり、バージョン情報からデータまでを含んだ長さを表す。 The packet length field is a 16-bit area, and the packet length described therein represents the total length of the IP packet, that is, the length including version information to data.
識別子フィールドは、16ビットの領域であり、そこには、パケットを識別するための情報が設定される。 The identifier field is a 16-bit area in which information for identifying a packet is set.
フラグフィールドは、3ビットの領域であり、先頭に1ビットの未使用領域、次に、フラグメント禁止か否かを示す1ビットの領域、最後に、分割されたデータグラムの最後であるか否かを示す1ビットの領域が設けられている。 The flag field is a 3-bit area, a 1-bit unused area at the beginning, a 1-bit area indicating whether fragmentation is prohibited, and finally, the end of a divided datagram. A 1-bit area is provided.
断片オフセットフィールドは、13ビットの領域であり、そこには、分割されたデータグラムが再構成される際の順番を示す値が設定される。 The fragment offset field is a 13-bit area, and a value indicating the order in which the divided datagram is reconstructed is set therein.
TTLフィールドは、8ビットの領域であり、そこには、パケットの生存時間、つまりパケットが通過できるルータの数が設定される。また、TTLの値は、ルータを通過する度に、その通過したルータによって1づつ減らされ、TTLの値が0になったパケットを受け取ったルータによって破棄される。 The TTL field is an 8-bit area, and the lifetime of the packet, that is, the number of routers through which the packet can pass is set. Each time the TTL value passes through the router, the TTL value is decremented by 1 by the router that has passed through, and is discarded by the router that has received the packet whose TTL value is 0.
プロトコルフィールドは、8ビットの領域であり、そこには、上位のプロトコルを示す値が設定される。本実施の形態においてはストリーミングデータの転送に、例としてRTPパケットを使用しており、この場合、プロトコルにはUDP(User Datagram Protocol)を示す値が設定される。 The protocol field is an 8-bit area, and a value indicating an upper protocol is set therein. In the present embodiment, RTP packets are used as an example for transferring streaming data. In this case, a value indicating UDP (User Datagram Protocol) is set as the protocol.
ヘッダチェックサムフィールドは、16ビットの領域であり、そこには、IPヘッダ部のエラー判定に使用される情報が設定される。 The header checksum field is a 16-bit area, in which information used for error determination of the IP header portion is set.
送信元IPアドレスフィールドは、32ビットの領域であり、送信元IPアドレスフィールドには、送信元のIPアドレスが設定される。 The source IP address field is a 32-bit area, and the source IP address is set in the source IP address field.
宛て先IPアドレスフィールドは、32ビットの領域であり、宛て先IPアドレスフィールドには、宛て先のIPアドレスが設定される。 The destination IP address field is a 32-bit area, and the destination IP address is set in the destination IP address field.
オプションフィールドには、可変長のオプショナル情報リストが配置される。 A variable-length optional information list is arranged in the option field.
データフィールドは、IPパケットのデータ部であり、後述する図9のNACKパケットとしてのRTCPパケットが配置される。 The data field is a data portion of the IP packet, and an RTCP packet as a NACK packet in FIG.
図9は、RTCPパケット作成部40からRTCP入出力ポート41を介して通信部54に供給されるNACKパケットとしてのRTCPパケットを説明する図である。
FIG. 9 is a diagram for explaining an RTCP packet as a NACK packet supplied from the RTCP
バージョン番号、パディング、FORMAT、送信同期ソース識別子(RTCP)、TIMESTAMP、再送要求回数、OPTION、および再送指定シーケンスは、図3で示されるNACKパケットと同様であるため、その説明は省略する。 The version number, padding, FORMAT, transmission synchronization source identifier (RTCP), TIMESTAMP, number of retransmission requests, OPTION, and retransmission designation sequence are the same as those of the NACK packet shown in FIG.
図9に示される指定優先度は、NACKパケットとしてのIPパケットのヘッダ部のDSフィールドに設定される優先度を表す。 The designated priority shown in FIG. 9 represents the priority set in the DS field of the header part of the IP packet as the NACK packet.
なお、NACKパケットに複数の再送指定シーケンス番号が設定されており、それぞれの再送指定シーケンス番号に対応する指定優先度が同一でない場合、NACKパケットとしてのIPパケットのヘッダ部のDSフィールドには、複数の再送指定シーケンス番号それぞれに対応する指定優先度の中で、例えば、最も高い優先度が設定される。 In addition, when a plurality of retransmission designation sequence numbers are set in the NACK packet and the designation priority corresponding to each retransmission designation sequence number is not the same, the DS field of the header part of the IP packet as the NACK packet includes a plurality of retransmission designation sequence numbers. Among the designated priorities corresponding to the respective retransmission designated sequence numbers, for example, the highest priority is set.
図10は、図7の送信側端末12の送信処理を示したフローチャートである。
FIG. 10 is a flowchart showing a transmission process of the
ステップS61乃至ステップS65、ステップS67、またはステップS70乃至ステップS74の処理は、図5のステップS11乃至ステップS15、ステップS17、またはステップS20乃至ステップS24の処理のそれぞれと同様なので、その説明は適宜省略する。 Steps S61 to S65, Step S67, or Steps S70 to S74 are the same as Steps S11 to S15, Step S17, or Steps S20 to S24 in FIG. To do.
ステップS64において、NACKパケットを受信したと判定された場合、即ち、受信側端末14から送信されたNACKパケットが、通信部52で受信され、RTCP入出力ポート26を介してRTCPパケット解析部27に供給された場合、RTCPパケット解析部27は、そのNACKパケットをARQ解析部53へ供給して、ステップS66へ進む。ステップS66では、ARQ処理部53は、RTCPパケット解析部27から供給されたNACKパケットのデータ部を解析し、そのNACKパケットによって再送を要求されたパケットを示すシーケンス番号などの、パケットの再送処理に必要な情報を取得し、RTPパケット作成部23に対して、再送処理を指示する。
If it is determined in step S64 that a NACK packet has been received, that is, the NACK packet transmitted from the receiving
また、ARQ解析部53は、RTCPパケット解析部27から供給されたNACKパケットのデータ部の指定優先度(図9)から、パケットの再送の際にIPヘッダのDS(Differentiated Services)フィールドに設定する、IPネットワーク51上でのパケットの転送処理における優先度を判定し、通信部52に再送が要求されたRTPパケットを示す情報とともに優先度を示す情報を通知する。
Further, the
ステップS66からステップS67へ進み、RTPパケット作成部23は、ARQ解析部28からの再送処理の指示に従い、再送要求に対応するデータ(NACKパケットによって再送が要求されたデータ)をバッファ22から取得し、ステップS68に進む。
Proceeding from step S66 to step S67, the RTP packet creation unit 23 obtains data corresponding to the retransmission request (data requested to be retransmitted by the NACK packet) from the buffer 22 in accordance with the retransmission processing instruction from the
ステップS68において、RTPパケット作成部23は、ステップS67でバッファ22から取得したデータを格納したRTPパケットを作成し、再送パケットとして、RTP出力ポート24を介して通信部52に供給して、ステップS69に進む。
In step S68, the RTP packet creation unit 23 creates an RTP packet storing the data acquired from the buffer 22 in step S67, and supplies the RTP packet as a retransmission packet to the
ステップS69において、通信部52は、RTP出力ポート24を介してRTPパケット作成部23から供給された再送パケットをもとにIPパケットを作成する。この際、通信部52は、ARQ処理部53から供給された優先度を示す情報に対応する値を、IPヘッダのDSフィールドに設定する。そして、ステップS70へ進み、通信部52は、作成したIPパケットを、IPネットワーク51を介して受信側端末14へ送信する。その後、ステップS64へ戻り、以下、同様の処理が繰り返される。
In step S <b> 69, the
従って、図7の通信システムでは、送信側端末12から受信側端末14に対して、NACKパケットに設定されている指定優先度、即ち、NACKパケットとしてのIPパケットのDSフィールドに設定されている値と、例えば、同一の値が、再送パケットとしてのIPパケットのDSフィールドに設定され、その再送パケットとしてのIPパケットが送信される。この場合、再送パケットは、その再送パケットの再送を要求するNACKパケットと同一の優先度で、IPネットワーク51内で転送されることになる。
Therefore, in the communication system of FIG. 7, the designated priority set in the NACK packet from the transmitting
図11は、図7の受信側端末14の受信処理を示したフローチャートである。
FIG. 11 is a flowchart showing a reception process of the
ステップS81乃至ステップS91、ステップS95乃至ステップS101の処理は、図6のステップS31乃至ステップS41、ステップS45乃至ステップS51の処理のそれぞれと同様なので、その説明は適宜省略する。 The processes in steps S81 to S91 and steps S95 to S101 are the same as those in steps S31 to S41 and steps S45 to S51 in FIG.
ステップS88において、損失パケットがあると判定された場合、即ち、パケット損失検出部38において損失パケットが検出された場合、ステップS91へ進み、NACKパケット優先度決定部55は、パケット損失検出部38により検出された損失パケットに格納されているデータを含むフレームの要求レベルを、図1のNACKパケット送信数決定部39が図6のステップS41で行うのと同様にして判定し、ステップS92に進む。
If it is determined in step S88 that there is a lost packet, that is, if a lost packet is detected in the
ステップS92において、NACKパケット優先度決定部55は、ステップS91にて判定された要求レベルに従い、IPネットワーク51上でのパケットの転送処理における優先度を表すNACKパケット優先度を決定し、損失パケットを示す情報(シーケンス番号)とともにNACKパケット優先度をRTCPパケット作成部40へ供給する。同時に、NACKパケット優先度決定部55は、NACKパケット優先度を通信部54へ供給し、ステップS93に進む。
In step S92, the NACK packet
なお、ステップS88において、複数の損失パケットが検出された場合、ステップS92においてNACKパケット優先度決定部55は、その複数の損失パケットそれぞれに対するNACKパケット優先度を決定し、さらに、そのNACKパケット優先度のうちの、最も高い優先度を示すNACKパケット優先度を通信部54に供給する。
When a plurality of lost packets are detected in step S88, the NACK packet
ステップS93において、RTCPパケット作成部40は、損失パケットを要求するNACKパケットとしてのRTCPパケットを作成する。このとき、RTCPパケット作成部40は、NACKパケットに、パケット損失検出部55からの損失パケットを示す情報としてのシーケンス番号を、図9の再送指定シーケンス番号として設定するとともに、パケット損失検出部55からのNACKパケットの優先度を、図9の指定優先度として設定し、RTCP入出力ポート41を介して通信部54に供給して、ステップS94に進む。
In step S93, the RTCP
ステップS94において、通信部54は、RTCP入出力ポート41を介してRTCPパケット作成部40から供給されたNACKパケットをもとにIPパケットを作成する。その際、NACKパケット優先度決定部55から供給された、NACKパケット優先度に従って、IPヘッダのDSフィールドに値を設定し、ステップS95に進む。ステップS95において、通信部54は、作成したIPパケットを、IPネットワーク51を介して送信側端末12へ送信する。
In
ここで、NACKパケット優先度は、複数の段階を表すことが可能である。ここでは、2段階のNACKパケット優先度と、3段階以上のNACKパケット優先度とについて説明する。 Here, the NACK packet priority can represent a plurality of stages. Here, a two-stage NACK packet priority and a three-stage or higher NACK packet priority will be described.
まず、NACKパケット優先度を2段階とする場合、NACKパケット優先度は、例えば、次の式から求められる。 First, when the NACK packet priority is set to two levels, the NACK packet priority is obtained from the following equation, for example.
要求レベル ≦ θ の場合、 NACKパケット優先度 = 2
要求レベル > θ の場合、 NACKパケット優先度 = 1
If request level ≤ θ, NACK packet priority = 2
If request level> θ, NACK packet priority = 1
θは正の整数である。 θ is a positive integer.
次に、NACKパケット優先度を3段階以上とする場合、NACKパケット優先度は、例えば、次のように求められる。 Next, when the NACK packet priority is set to three or more levels, the NACK packet priority is obtained as follows, for example.
要求レベル ≦(K−1)の場合は、NACKパケット優先度 = K− 要求レベル If request level ≤ (K-1), NACK packet priority = K-request level
要求レベル >(K−1)の場合は、NACKパケット優先度 = 1 If request level> (K-1), NACK packet priority = 1
上記において、Kは正の整数である。NACKパケット優先度は値が大きい程、ネットワーク51上でのパケットの転送処理において、より優先的に転送が行われることを表すものとする。
In the above, K is a positive integer. It is assumed that the larger the NACK packet priority is, the more preferential transfer is performed in the packet transfer process on the
上述の内容に従うと、再生猶予時間が充分にあり、従って要求レベルが大きい損失パケットに対するNACKパケットは低い優先度にて送信され、再生猶予時間が短く、従って要求レベルが小さい損失パケットに対するNACKパケットは高い優先度にて送信される(IPネットワーク51内を優先的に転送される)。 According to the above, NACK packets for lost packets with a sufficient playback grace time and therefore a high request level are transmitted at a low priority, and NACK packets for lost packets with a short playback grace time and therefore a low request level are It is transmitted with high priority (it is preferentially transferred in the IP network 51).
例えば、3段階のNACKパケット優先度を持つ場合において、K = 3とすると、NACKパケット優先度は、要求レベルに応じて、下記のように決定される。 For example, in the case where there are three levels of NACK packet priority and K = 3, the NACK packet priority is determined as follows according to the request level.
要求レベル ≧ 2 の場合、 NACKパケット優先度 = 1
1 ≦ 要求レベル < 2 の場合、 NACKパケット優先度 = 2
要求レベル < 1 の場合、 NACKパケット優先度 = 3
If request level ≥ 2, NACK packet priority = 1
If 1 ≤ request level <2, NACK packet priority = 2
If request level <1, NACK packet priority = 3
ここで、IPヘッダのDSフィールドに設定される値について説明する。 Here, the value set in the DS field of the IP header will be described.
2段階のNACKパケット優先度を採用する場合、例えば、IETF RFC2598に規定されているDiffservにおけるExpedited Forwarding Class(EF Class)とIETF RFC2597に規定されているBest Effort Class(BE Class)を用いる。 When adopting two-stage NACK packet priority, for example, the Expedited Forwarding Class (EF Class) in Diffserv defined in IETF RFC2598 and the Best Effort Class (BE Class) defined in IETF RFC2597 are used.
このとき、NACKパケット優先度 = 2をEF Class 、NACKパケット優先度 = 1をBE Classに対応させる。また、例えば、EF ClassのパケットのDSフィールドには、2進数表記で101110、BE ClassのパケットのDSフィールドには、2進数表記で000000を設定する。 At this time, NACK packet priority = 2 corresponds to EF Class, and NACK packet priority = 1 corresponds to BE Class. Further, for example, 101110 is set in binary notation in the DS field of the EF Class packet, and 000000 is set in binary notation in the DS field of the BE Class packet.
なお、Diffservネットワークにおいて、EF Classは、最も高い優先度のクラスで、遅延と最大損失率が保証される最優先Classである。一方、BE Classは、Diffservネットワークにおいて、最も低い優先度のクラスで、Diffserv対応ルータにてEF Classのパケット処理が行われていない空き時間に処理される。 In the Diffserv network, the EF Class is the highest priority class, and is the highest priority Class that guarantees the delay and the maximum loss rate. On the other hand, BE Class is the lowest-priority class in the Diffserv network, and is processed in free time when EF Class packet processing is not performed in the Diffserv-compatible router.
3段階のNACKパケット優先度を採用する場合、例えば、IETF RFC2598に規定されているExpedited Forwarding Class(EF Class)、IETF RFC2597に規定されているAssured Forwarding Class(AF Class)および、Best Effort Class(BE Class)を用いる。 When adopting three levels of NACK packet priority, for example, Expedited Forwarding Class (EF Class) defined in IETF RFC2598, Assured Forwarding Class (AF Class) defined in IETF RFC2597, and Best Effort Class (BE Class).
このとき、NACKパケット優先度 = 3をEF Class 、NACKパケット優先度 = 2をAF Class 、NACKパケット優先度 = 1をBE Classに対応させる。また、例えば、EF ClassのパケットのDSフィールドには、2進数表記で101110、AF ClassのパケットのDSフィールドには、2進数表記で001010、BE ClassのパケットのDSフィールドには、2進数表記で000000を設定する。 At this time, NACK packet priority = 3 corresponds to EF Class, NACK packet priority = 2 corresponds to AF Class, and NACK packet priority = 1 corresponds to BE Class. Also, for example, the DS field of the EF Class packet is 101110 in binary notation, the DS field of the AF Class packet is 00110 in binary notation, and the DS field of the BE Class packet is in binary notation. Set 000000.
なお、NACKパケット優先度は、高い順に、EF Class、AF Class、BE Classとなる。また、AF Classは、IETF RFC2597にて3段階のClassと4段階のパケット棄却率を設定できるため、全体として、さらに細かい優先度分けを行うことが可能である。 The NACK packet priority is EF Class, AF Class, and BE Class in descending order. In addition, since AF Class can set three levels of Class and four levels of packet loss rate in IETF RFC2597, it is possible to further classify priorities as a whole.
本実施の形態では、優先度によりパケットの送信を制御する優先制御方式として、IETF RFC2474、IETF RFC2475、IETF RFC2597、IETF RFC2598に規定されるDiffserv(Differentiated Services)に対応した例について説明したが、その他の優先制御方式を採用してもよい。 In this embodiment, an example corresponding to Diffserv (Differentiated Services) defined in IETF RFC2474, IETF RFC2475, IETF RFC2597, and IETF RFC2598 has been described as a priority control method for controlling packet transmission according to priority. The priority control method may be adopted.
また、本実施の形態では、NACKパケットとしてのRTCPパケットのデータ部に指定優先度フィールドを設け、その指定優先度フィールドに、要求レベルに応じて決定されたNACKパケット優先度を設定するとともに、そのNACKパケット優先度に対応する値を、そのRTCPパケットが格納されるIPパケットのDSフィールドに設定し、そのIPパケットを受信側端末14から送信側端末12に送信するようにしたが、受信側端末14では、指定優先度フィールドがないNACKパケットを作成することが可能である。この場合、送信側端末12では、受信側端末14から受信したNACKパケットとしてのIPパケットのDSフィールドに設定されている優先度と同一の優先度が、再送パケットのIPヘッダ部のDSフィールドに設定される。
In the present embodiment, a designated priority field is provided in the data portion of the RTCP packet as a NACK packet, and the NACK packet priority determined according to the request level is set in the designated priority field. The value corresponding to the NACK packet priority is set in the DS field of the IP packet in which the RTCP packet is stored, and the IP packet is transmitted from the receiving
以上のように、損失パケットの受信の緊急性を表す要求レベルに応じて、NACKパケットのネットワーク上で転送処理における優先度を調整することにより、再生時刻の迫ったデータを格納する損失パケットに対するNACKパケットを高い確率で送信側へ到達させることが可能となり、再生時刻の迫ったデータを格納した再送パケットを、受信側にて再生時刻までに受信できる確立を高めることができる。その結果として、信頼性の高いデータ通信、および高品位なメディアの再生が可能となる。 As described above, the NACK for the lost packet storing the data whose reproduction time is near by adjusting the priority in the transfer process on the network of the NACK packet according to the request level indicating the urgency of receiving the lost packet. The packet can reach the transmission side with a high probability, and it is possible to increase the probability that the retransmission packet storing the data whose reproduction time is approaching can be received by the reception side by the reproduction time. As a result, highly reliable data communication and high-quality media playback are possible.
本発明を用いることにより、従来の自動再送要求方式(ARQ)を用いたRTPパケット通信における、損失パケットの再送を要求するパケット自身がネットワーク上で損失し、そのパケットによって再送を要求しようとしていた損失パケットの再送処理が行われない可能性があるという問題点において、RTPパケット通信の頑健性を向上させ、信頼性の高いデータ通信を実現することができる。 By using the present invention, in RTP packet communication using the conventional automatic retransmission request method (ARQ), a packet requesting retransmission of a lost packet itself is lost on the network, and the loss that the packet tries to request retransmission In the problem that packet retransmission processing may not be performed, the robustness of RTP packet communication can be improved and highly reliable data communication can be realized.
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、上述した処理は、図12に示されるようなパーソナルコンピュータ60により実行される。
The series of processes described above can be executed by hardware or can be executed by software. In this case, the processing described above is executed by a
図12において、CPU(Central Processing Unit)61は、ROM(Read Only Memory)62に記憶されているプログラム、または、記憶部68からRAM(Random Access Memory)63にロードされたプログラムに従って各種の処理を実行する。RAM63にはまた、CPU61が各種の処理を実行する上において必要なデータなどが適宜記憶される。
In FIG. 12, a CPU (Central Processing Unit) 61 performs various processes according to a program stored in a ROM (Read Only Memory) 62 or a program loaded from a
CPU61、ROM62、およびRAM63は、内部バス64を介して相互に接続されている。この内部バス64にはまた、入出力インターフェース65も接続されている。
The
入出力インターフェース65には、キーボード、マウスなどよりなる入力部66、CRT,LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部67、ハードディスクなどより構成される記憶部68、モデム、ターミナルアダプタなどより構成される通信部69が接続されている。通信部69は、電話回線やCATVを含む各種のネットワークを介しての通信処理を行う。
The input /
入出力インターフェース65にはまた、必要に応じてドライブ70が接続され、磁気ディスク71(フレキシブルディスクを含む)、光ディスク72(CD-ROM(Compact Disc-Read Only Memory) 、DVD(Digital Versatile Disc)を含む)、光磁気ディスク73(MD(Mini-Disc)(商標)を含む)、あるいは半導体メモリ74などによりなるリムーバブルメディアが適宜装着され、それから読み出されたコンピュータプログラムが、必要に応じて記憶部68にインストールされる。
A
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。 When a series of processing is executed by software, a program constituting the software executes various functions by installing a computer incorporated in dedicated hardware or various programs. For example, it is installed in a general-purpose personal computer from a network or a recording medium.
この記録媒体は、図12に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク71、光ディスク72、光磁気ディスク73、若しくは半導体メモリ74などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM62や、記憶部68に含まれるハードディスクなどで構成される。
As shown in FIG. 12, this recording medium is distributed to provide a program to the user separately from the computer, and the
なお、本明細書において、フローチャートに記載された処理は、ステップとして記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。 In the present specification, the processes described in the flowcharts are executed in parallel or individually even if they are not necessarily processed in time series, as well as processes performed in time series according to the order described as steps. It also includes processing.
11 ビデオカメラ, 12 送信側端末, 13 IPネットワーク, 14 受信側端末, 15 ディスプレイ, 16 スピーカ, 21 エンコーダ, 22 バッファ, 23 RTPパケット作成部, 24 RTP出力ポート, 25, 26 RTCP入出力ポート, 27 RTCPパケット解析部, 28 ARQ処理部, 29 RTCPパケット作成部, 31 通信部, 32 RTP入力ポート, 33 RTPパケット解析部, 34 バッファ, 35 インデックスリスト, 36 デコーダ, 37 ARQ処理部, 38 パケット損失検出部, 39 NACKパケット送信数決定部, 40 RTCPパケット作成部, 41 RTCP入出力ポート, 42 RTCPパケット解析部, 51 IPネットワーク, 52 通信部, 53 ARQ解析部, 54通信部, 55 NACKパケット優先度決定部, 61 CPU, 62 ROM, 63 RAM, 64 内部バス, 65 入出力インターフェース, 66 入力部, 67 出力部, 68 記憶部, 71 磁気ディスク, 72 光ディスク, 73 光磁気ディスク, 74 半導体メモリ
11 video camera, 12 transmitting terminal, 13 IP network, 14 receiving terminal, 15 display, 16 speaker, 21 encoder, 22 buffer, 23 RTP packet creation unit, 24 RTP output port, 25, 26 RTCP input / output port, 27 RTCP packet analysis unit, 28 ARQ processing unit, 29 RTCP packet creation unit, 31 communication unit, 32 RTP input port, 33 RTP packet analysis unit, 34 buffer, 35 index list, 36 decoder, 37 ARQ processing unit, 38
Claims (5)
正常に前記パケットを受信できなかった場合、正常に受信できなかった前記パケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかった前記パケットに格納されているストリーミングデータの再生予定時刻との差であって、前記パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定手段と、
正常に受信できなかった前記パケットの再送を要求する再送要求通知パケットを、前記送信装置に送信する場合における制御を前記要求レベルに従って行う再送要求通知送信制御手段と
を備えることを特徴とする受信装置。 In the receiving device that receives the packet transmitted from the transmitting device that transmits the packet storing the streaming data via the network,
If the packet cannot be received normally, the request level indicating the urgency of receiving the packet that could not be received normally is reproduced as the current time and the streaming data stored in the packet that could not be received normally A request level determination unit that determines a difference from a scheduled time by dividing the reproduction grace time calculated from the time stamp information or the sequence number of the packet by a predetermined value ;
Receiving, characterized in that it comprises a retransmission request notification transmission control means for performing control in case of transmitting a retransmission request notification packet to request retransmission of the packet is not received correctly, before Symbol transmitting apparatus according to the required level apparatus.
ことを特徴とする請求項1に記載の受信装置。 The retransmission request notification transmission control unit determines the number of transmission packets for transmitting the retransmission request notification packet according to the request level, and transmits the retransmission request notification packets for the determined number of transmission packets. Item 4. The receiving device according to Item 1 .
正常に前記パケットを受信できなかった場合、正常に受信できなかった前記パケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかった前記パケットに格納されているストリーミングデータの再生予定時刻との差であって、前記パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、
正常に受信できなかった前記パケットの再送を要求する再送要求通知パケットを、前記送信装置に送信する場合における制御を前記要求レベルに従って行う再送要求通知送信制御ステップと
を含むことを特徴とする受信方法。 In a receiving method for receiving the packet transmitted from a transmitting device that transmits a packet storing streaming data via a network,
If the packet cannot be received normally, the request level indicating the urgency of receiving the packet that could not be received normally is reproduced as the current time and the streaming data stored in the packet that could not be received normally A request level determination step for determining by dividing a reproduction grace time calculated from a time stamp information or a sequence number of the packet by a predetermined value, which is a difference from a scheduled time ;
Receiving, characterized in that it comprises a retransmission request notification transmission control step of performing control in case of transmitting a retransmission request notification packet to request retransmission of the packet is not received correctly, before Symbol transmitting apparatus according to the required level Method.
正常に前記パケットを受信できなかった場合、正常に受信できなかった前記パケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかった前記パケットに格納されているストリーミングデータの再生予定時刻との差であって、前記パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、
正常に受信できなかった前記パケットの再送を要求する再送要求通知パケットを、前記送信装置に送信する場合における制御を前記要求レベルに従って行う再送要求通知送信制御ステップと
を含むことを特徴とする、コンピュータが読み取り可能なプログラムが記載されている記録媒体。 A program for reception processing that receives the packet transmitted from a transmission device that transmits a packet storing streaming data via a network,
If the packet cannot be received normally, the request level indicating the urgency of receiving the packet that could not be received normally is reproduced as the current time and the streaming data stored in the packet that could not be received normally A request level determination step for determining by dividing a reproduction grace time calculated from a time stamp information or a sequence number of the packet by a predetermined value, which is a difference from a scheduled time ;
A retransmission request notification packet to request retransmission of the packet is not received correctly, characterized in that it comprises a retransmission request notification transmission control step of the control in case of transmitting before Symbol transmitting device carried out according to the required level, A recording medium on which a computer-readable program is written.
正常に前記パケットを受信できなかった場合、正常に受信できなかった前記パケットの受信の緊急性を表す要求レベルを、現在時刻と正常に受信できなかった前記パケットに格納されているストリーミングデータの再生予定時刻との差であって、前記パケットのタイムスタンプ情報またはシーケンス番号から算出される再生猶予時間を所定の値で除算することにより判定する要求レベル判定ステップと、
正常に受信できなかった前記パケットの再送を要求する再送要求通知パケットを、前記送信装置に送信する場合における制御を前記要求レベルに従って行う再送要求通知送信制御ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。 In the reception process of receiving the packet transmitted from the transmission device that transmits the packet storing the streaming data via the network,
If the packet cannot be received normally, the request level indicating the urgency of receiving the packet that could not be received normally is reproduced as the current time and the streaming data stored in the packet that could not be received normally A request level determination step for determining by dividing a reproduction grace time calculated from a time stamp information or a sequence number of the packet by a predetermined value, which is a difference from a scheduled time ;
A retransmission request notification packet to request retransmission of the packet is not received correctly, to perform the control in the case of transmitting before Symbol sending device processing including retransmission request notification transmission control step carried out in accordance with the required level in the computer A program characterized by that.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004001627A JP4433281B2 (en) | 2004-01-07 | 2004-01-07 | Receiving apparatus and method, recording medium, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004001627A JP4433281B2 (en) | 2004-01-07 | 2004-01-07 | Receiving apparatus and method, recording medium, and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2005197988A JP2005197988A (en) | 2005-07-21 |
| JP4433281B2 true JP4433281B2 (en) | 2010-03-17 |
Family
ID=34817087
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004001627A Expired - Fee Related JP4433281B2 (en) | 2004-01-07 | 2004-01-07 | Receiving apparatus and method, recording medium, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4433281B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007324700A (en) * | 2006-05-30 | 2007-12-13 | Mitsubishi Electric Corp | Transmission control method |
| JPWO2009104574A1 (en) * | 2008-02-21 | 2011-06-23 | シャープ株式会社 | Transmitting apparatus, receiving apparatus, communication system, and communication method |
| JP5074557B2 (en) * | 2010-06-09 | 2012-11-14 | 日本電信電話株式会社 | Data distribution system and data distribution method |
| US8520699B2 (en) * | 2010-12-09 | 2013-08-27 | Qualcomm Incorporated | Apparatus and methods for providing a communication quality feedback of an end-to-end communication path |
| WO2016068316A1 (en) * | 2014-10-31 | 2016-05-06 | 日本電気株式会社 | Wireless base station, packet transmission device, wireless terminal, control method and program |
-
2004
- 2004-01-07 JP JP2004001627A patent/JP4433281B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2005197988A (en) | 2005-07-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100967377B1 (en) | A medium on which a data communication system, a data transmitting device, a data receiving device, a data communication method, and a computer program are recorded | |
| US7263644B2 (en) | Data transmitting/receiving system and method thereof | |
| JP3757857B2 (en) | Data communication system, data transmission apparatus, data reception apparatus and method, and computer program | |
| KR100634946B1 (en) | Apparatus and method for packet error correction | |
| US9565482B1 (en) | Adaptive profile switching system and method for media streaming over IP networks | |
| US9363480B2 (en) | Obtaining replay of audio during a conference session | |
| US9781488B2 (en) | Controlled adaptive rate switching system and method for media streaming over IP networks | |
| JP2007537640A (en) | Cooperation between bit rate adaptation of packetized data and retransmission of data packets | |
| WO2004077780A1 (en) | Transmission/reception system, transmitting device and method, and receiving device and method | |
| JP2005198055A (en) | Receiving apparatus and method, program, and recording medium | |
| KR101177454B1 (en) | Server and client for determining error restoration type according to transmission image data, thereby method | |
| US20140362690A1 (en) | Communication appartus, communication method, and program | |
| JP2008048182A (en) | COMMUNICATION PROCESSING DEVICE, COMMUNICATION CONTROL METHOD, AND COMPUTER PROGRAM | |
| JP2005322995A (en) | Buffer control method, transmission terminal, reception terminal, video distribution system, and program in real-time video transfer | |
| JP2005051299A (en) | Packet transmission device, packet reception device, packet transmission method and packet reception method | |
| JP4433281B2 (en) | Receiving apparatus and method, recording medium, and program | |
| JP4362761B2 (en) | Transmission device and method, recording medium, and program | |
| KR101055169B1 (en) | Traffic control method and device therefor in streaming system | |
| JP4506222B2 (en) | COMMUNICATION SYSTEM, TRANSMISSION DEVICE AND METHOD, AND PROGRAM | |
| JP2003163691A (en) | Data communication system, data transmission device, data reception device and method, and computer program | |
| JP2005136547A (en) | COMMUNICATION SYSTEM, RECEPTION DEVICE AND METHOD, TRANSMISSION DEVICE AND METHOD, RECORDING MEDIUM, AND PROGRAM | |
| JP4367287B2 (en) | Receiving apparatus and method, recording medium, program, and communication system | |
| JP4876427B2 (en) | COMMUNICATION SYSTEM, TRANSMISSION DEVICE, TRANSMISSION METHOD, RECEPTION DEVICE, RECEPTION METHOD, AND PROGRAM | |
| JP2006067410A (en) | Transmission apparatus and method, program, and transmission / reception system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061227 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090603 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090609 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090807 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091203 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091216 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 4433281 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |