JP2005136547A - 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム - Google Patents
通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP2005136547A JP2005136547A JP2003368419A JP2003368419A JP2005136547A JP 2005136547 A JP2005136547 A JP 2005136547A JP 2003368419 A JP2003368419 A JP 2003368419A JP 2003368419 A JP2003368419 A JP 2003368419A JP 2005136547 A JP2005136547 A JP 2005136547A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- retransmission
- transmission
- time
- streaming 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.)
- Withdrawn
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
【課題】送信側で再送が間に合うかどうかを判断して、無駄な再送を防止することができる。
【解決手段】 NACK処理部95は、正常に受信できなかった送信パケットに対応する再送パケットがサーバから再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための、再送パケットの再生時刻などの時間算出情報を取得する。通信部91は、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットをサーバに送信する。本発明は、サーバから送信されてくる、ストリーミングデータを受信するクライアントに適用できる。
【選択図】図4
【解決手段】 NACK処理部95は、正常に受信できなかった送信パケットに対応する再送パケットがサーバから再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための、再送パケットの再生時刻などの時間算出情報を取得する。通信部91は、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットをサーバに送信する。本発明は、サーバから送信されてくる、ストリーミングデータを受信するクライアントに適用できる。
【選択図】図4
Description
本発明は通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラムに関し、特に、ストリーミングデータを再送できるようにした通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラムに関する。
昨今、インターネットなど、種々の通信媒体を介して、画像データまたは音声データを伝送して提供するサービスが一般に行われている。特に、近年、ダウンロード型の伝送方式のサービスに加えて、ストリーム型の伝送方式のサービスがより多く提供されるようになってきた。
ダウンロード型の伝送方式のサービスにおいては、受信装置が、送信装置から送信された画像または音声のデータを格納するファイルを受信し、受信したファイルを自分の記録媒体に記録する。受信装置は、ファイルの記録が完了した後、記録したファイルを基に、画像または音声を再生する。ダウンロード型の伝送方式のサービスにおいては、ファイルの記録が完了するまでは、再生することができないので、ダウンロード型の伝送方式のサービスは、長時間の再生またはリアルタイムの再生には適さない。
一方、ストリーム型の伝送方式のサービスにおいては、受信装置が、送信装置から送信されてくるデータを受信するとともに、これに並行して、受信されたデータを基に画像または音声を再生する。ストリーム型の伝送方式は、インターネット電話、遠隔テレビ会議、またはビデオオンデマンドなどのインターネットサービスに利用されている。
ストリーム型の伝送方式において、送信装置から送信されてくるデータを、一般に、ストリーミングデータと称する。
より具体的な例として、ストリーム型の伝送方式は、画像データにMPEG(Moving Picture Experts Group)符号化処理を適用することにより生成されるMPEGストリームを格納する、IP(Internet Protocol)パケットをインターネットを介して伝送するシステムで使用される。このシステムにおいて、受信装置である、PC(Personal Computer)、PDA(Personal Digital Assistance)、または携帯電話機は、IPパケットを受信し、画像を再生する。
ストリーム型の伝送方式は、ビデオオンデマンド若しくはライブ映像のストリーミング配信、ビデオ会議、またはテレビ電話などのリアルタイム通信に適している。
このようなストリーム型の伝送方式の技術の1つとして、IETF RFC(Internet Engineering Task Force Request For Comments)1889で規定されているプロトコルであるRTP(Real time Transport Protocol)がある。
RTPに基づくデータ転送においては、生成された時刻を示すタイムスタンプがパケットに付加され、タイムスタンプの参照により送信側と受信側の時間的関係が把握されるので、受信側において、パケット伝送の遅延ゆらぎ(ジッター)などの影響が排除され、同期した再生が可能になる。
しかし、RTPにおいて、実時間のデータの伝送は保証されない。すなわち、パケット配信の優先度や設定、管理などは、RTPによって提供されるトランスポートサービスの範疇ではないため、他の方式のパケットと同様、ネットワーク上での遅延やパケットロスが生じる可能性がある。
遅延やパケットロスが生じても、受信側は、再生時刻までに受信されたパケットだけを利用してデータを再生することができる。すなわち、受信装置は、データに多少の損失や誤りが発生しても、品質を落として再生するか、またはデータの損失や誤りを訂正して再生する。
この場合、再生に間に合わず遅延して配送されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。つまり、高品質なデータ配信処理を行おうとしても、パケットロスやエラーが発生したときは、受信側の再生の品質は保証されない。
このようなRTPに従ったデータ伝送における問題を解決する案として、データ転送の信頼性のより高い転送プロトコルであるTCP(Transmission Control Protocol)に従ってパケットの再送要求およびパケットの再送を行う方法が考えられる。
しかし、TCPにおいて、パケットロスが生じた場合、パケットが再送されるため、エラーには強いが、再送されたパケットの受信が再生時刻に間に合わない可能性があり、リアルタイム通信には不向きである。
さらに、パケットエラーが生じた場合のエラー訂正方式として、FEC(Forward Error Correction)方式を用いることが考えられる。FEC方式においては、エラー訂正を行うためのFECデータを冗長データとして送信し、エラーが発生した場合には、受信側において、受信したFECデータを基にエラーが訂正される。
また、再送要求の処理タイミングとして、各フレームの先頭パケットの受信時、各フレームの最終パケットの受信時、最終処理期限、および一定間隔毎等の各種タイミングでロストパケットの検出処理を実行し、再送要求を実行し、データ受信端末が、再生処理時間、伝播遅延時間を考慮し、再生処理に間に合わない場合には、再生要求処理を実行しないようにしているものもある(特許文献1参照)。
さらに、サーバは、送信するパケットのうち優先度が高いパケットのみを再送用バッファに記憶し、この記憶されたパケットの中から端末装置の再送要求に対応するパケットを抽出して再送するようにしているものもある(特許文献2参照)。このサーバは、端末装置との間のパケットの往復時間RTTを算出し、端末装置は、サーバから送信された往復時間RTTと現在時刻との和がパケットの再生時刻よりも小さい場合にのみ、優先度が高い欠落パケットの再送要求を行う。
しかしながら、エラー訂正のために冗長データを送信すると、スループットが低下するという問題がある。また、伝送の状況に合わせて、付加すべき最適な冗長データを決定することは困難であり、オーバーヘッドとして処理が追加されてしまうなどの問題がある。
本発明の通信システムは、受信装置が、正常に受信できなかった送信パケットに対応する再送パケットが送信装置から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの送信装置への送信を制御する第1の送信制御手段とを含み、送信装置が、受信装置から送信されてきた、再送要求パケットの受信を制御する受信制御手段と、自分が再送パケットを再送してから受信装置が再送パケットを受信するまでの遅延時間を算出する遅延時間算出手段と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できるか否かを判定する判定手段と、ストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する第2の送信制御手段とを含むことを特徴とする。
本発明の受信装置は、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御手段とを含むことを特徴とする。
時間算出情報は、再送を要求する再送パケットに対応する、正常に受信できなかった送信パケットのストリーミングデータの再生時刻を含むようにすることができる。
時間算出情報は、次に再生しようとするストリーミングデータの再生時刻、次に再生しようとするストリーミングデータを格納する送信パケットのシーケンス番号、および再送を要求する再送パケットに対応する、正常に受信できなかった送信パケットのシーケンス番号を含むようにすることができる。
本発明の受信方法は、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップとを含むことを特徴とする。
本発明の第1の記録媒体のプログラムは、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップとを含むことを特徴とする。
本発明の第1のプログラムは、コンピュータに、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップとを実行させることを特徴とする。
本発明の送信装置は、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御手段と、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出手段と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定手段と、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御手段とを含むことを特徴とする。
受信制御手段は、再送が要求された再送パケットに対応する、相手が正常に受信できなかった送信パケットのストリーミングデータの再生時刻を含む時間算出情報が格納されている再送要求パケットの受信を制御し、判定手段は、現在時刻からストリーミングデータの再生時刻までの時間が、遅延時間以上である場合、ストリーミングデータの再生までに、相手が再送パケットを受信できると判定するようにすることができる。
送信装置は、送信した送信パケットの送信時刻とシーケンス番号とを対応させて記憶する記憶手段をさらに設け、受信制御手段は、相手が次に再生しようとするストリーミングデータの再生時刻および次に再生しようとするストリーミングデータを格納する送信パケットのシーケンス番号、並びに再送が要求された再送パケットに対応する、相手が正常に受信できなかった送信パケットのシーケンス番号を含む時間算出情報が格納されている再送要求パケットの受信を制御し、判定手段は、対応して記憶されている送信時刻およびシーケンス番号を基に、次に再生しようとするストリーミングデータを格納した送信パケットの送信時刻から相手が正常に受信できなかった送信パケットの送信時刻までの時間を、次に再生しようとするストリーミングデータの再生時刻に加算して得られた時刻と現在時刻との時間が、遅延時間以上である場合、ストリーミングデータの再生までに、相手が再送パケットを受信できると判定するようにすることができる。
本発明の送信方法は、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出ステップと、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定ステップと、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御ステップとを含むことを特徴とする。
本発明の第2の記録媒体のプログラムは、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出ステップと、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定ステップと、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御ステップとを含むことを特徴とする。
本発明の第2のプログラムは、コンピュータに、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出ステップと、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定ステップと、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御ステップとを実行させることを特徴とする。
本発明の通信システムにおいては、正常に受信できなかった送信パケットに対応する再送パケットが送信装置から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報が取得され、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットが送信装置に送信され、受信装置から送信されてきた、再送要求パケットが受信され、自分が再送パケットを再送してから受信装置が再送パケットを受信するまでの遅延時間が算出され、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できるか否かが判定され、ストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できると判定された場合、要求された再送パケットが再送される。
本発明の受信装置および方法、第1の記録媒体、並びに第1のプログラムにおいては、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報が取得され、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットが相手に送信される。
本発明の送信装置および方法、第2の記録媒体、並びに第2のプログラムにおいては、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットが受信され、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間が算出され、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かが判定され、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットが再送される。
受信装置は、独立した装置であっても良いし、通信装置の受信処理を行うブロックであっても良い。
送信装置は、独立した装置であっても良いし、通信装置の送信処理を行うブロックであっても良い。
送信側で再送が間に合うかどうかを判断して、無駄な再送を防止することができる。その結果、送信側の処理負荷を増加させることなく、スループットの低下を防止することができる。
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
本発明によれば、通信システムが提供される。この通信システムは、受信装置(例えば、図1のクライアント14)が、正常に受信できなかった送信パケットに対応する再送パケットが送信装置から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段(例えば、図4のNACK処理部95)と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの送信装置への送信を制御する第1の送信制御手段(例えば、図4の通信部91)とを含み、送信装置(例えば、図1のサーバ12)が、受信装置から送信されてきた、再送要求パケットの受信を制御する受信制御手段(例えば、図3の通信部39)と、自分が再送パケットを再送してから受信装置が再送パケットを受信するまでの遅延時間を算出する遅延時間算出手段(例えば、図3の片道遅延計算部74)と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できるか否かを判定する判定手段(例えば、図13のステップS103の処理を実行する図3のNACK処理部76)と、ストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する第2の送信制御手段(例えば、図13のステップS104の処理を実行する図3のNACK処理部76)とを含む。
本発明によれば、受信装置が提供される。この受信装置は、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段(例えば、図4のNACK処理部95)と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御手段(例えば、図4の通信部91)とを含む。
時間算出情報は、再送を要求する再送パケットに対応する、正常に受信できなかった送信パケットのストリーミングデータの再生時刻(例えば、図11の再生時刻)を含むようにすることができる。
時間算出情報は、次に再生しようとするストリーミングデータの再生時刻(例えば、図17の先頭シーケンスの再生時刻)、次に再生しようとするストリーミングデータを格納する送信パケットのシーケンス番号(例えば、図17の先頭シーケンス番号)、および再送を要求する再送パケットに対応する、正常に受信できなかった送信パケットのシーケンス番号(例えば、図17の要求シーケンス番号)を含むようにすることができる。
本発明によれば、受信方法が提供される。この受信方法は、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップ(例えば、図10のステップS75の処理)と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップ(例えば、図10のステップS76の処理)とを含む。
本発明によればプログラムが提供される。このプログラムは、コンピュータに、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップ(例えば、図10のステップS75の処理)と、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップ(例えば、図10のステップS76の処理)とを実行させる。
このプログラムは、記録媒体(例えば、図2の磁気ディスク51)に記録することができる。
本発明によれば、送信装置が提供される。この送信装置は、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御手段(例えば、図3の通信部39)と、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出手段(例えば、図3の片道遅延計算部74)と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定手段(例えば、図13のステップS103の処理を実行する図3のNACK処理部76)と、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御手段(例えば、図13のステップS104の処理を実行する図3のNACK処理部76)とを含むことを特徴とする。
受信制御手段は、再送が要求された再送パケットに対応する、相手が正常に受信できなかった送信パケットのストリーミングデータの再生時刻を含む時間算出情報(例えば、図11の再生時刻)が格納されている再送要求パケットの受信を制御し、判定手段は、現在時刻からストリーミングデータの再生時刻までの時間が、遅延時間以上である場合、ストリーミングデータの再生までに、相手が再送パケットを受信できると判定するようにすることができる。
送信装置は、送信した送信パケットの送信時刻とシーケンス番号とを対応させて記憶する記憶手段(例えば、図14の送信履歴保持部121)をさらに設け、受信制御手段は、相手が次に再生しようとするストリーミングデータの再生時刻(例えば、図17の先頭シーケンスの再生時刻)および次に再生しようとするストリーミングデータを格納する送信パケットのシーケンス番号(例えば、図17の先頭シーケンス番号)、並びに再送が要求された再送パケットに対応する、相手が正常に受信できなかった送信パケットのシーケンス番号(例えば、図17の要求シーケンス番号)を含む時間算出情報が格納されている再送要求パケットの受信を制御し、判定手段は、対応して記憶されている送信時刻およびシーケンス番号を基に、次に再生しようとするストリーミングデータを格納した送信パケットの送信時刻から相手が正常に受信できなかった送信パケットの送信時刻までの時間を、次に再生しようとするストリーミングデータの再生時刻に加算して得られた時刻と現在時刻との時間が、遅延時間以上である場合、ストリーミングデータの再生までに、相手が再送パケットを受信できると判定するようにすることができる。
本発明によれば、送信方法が提供される。この送信方法は、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップ(例えば、図13のステップS101の処理)と、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出ステップ(例えば、図7のステップS36の処理)と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定ステップ(例えば、図13のステップS103の処理)と、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御ステップ(例えば、図13のステップS104の処理)とを含むことを特徴とする。
本発明によればプログラムが提供される。このプログラムは、コンピュータに、相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップ(例えば、図13のステップS101の処理)と、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出する遅延時間算出ステップ(例えば、図7のステップS36の処理)と、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定する判定ステップ(例えば、図13のステップS103の処理)と、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットの再送を制御する送信制御ステップ(例えば、図13のステップS104の処理)とを実行させることを特徴とする。
このプログラムは、記録媒体(例えば、図2の磁気ディスク51)に記録することができる。
本発明は、例えば、インターネット電話、遠隔テレビ会議システム、ライブ映像ストリーミング配信システム、またはテレビ電話などのリアルタイムにストリーミングデータを伝送する通信システムに適用できる。
図1は、本発明に係る通信システムの一実施の形態を示す図である。カメラ11は、画像を撮像して、撮像した画像に対応する画像データをサーバ12に供給する。例えば、カメラ11は、動画像を撮像して、動画像に対応する画像データをサーバ12に供給する。
画像データは、ストリーミングデータの一例である。ストリーミングデータは、音声のデータ、またはリアルタイム制御データなど、時間の経過に対応して順次送信または受信が要求されるデータであればよい。
サーバ12は、カメラ11から供給された画像データをパケットに格納して、パケットを通信網13を介して、クライアント14に送信する。
通信網13は、有線または無線の、通信回線、ネットワーク、またはインターネットなどからなる伝送路であり、所定の遅延時間で、サーバ12から送信されたパケットをクライアント14まで伝送する。
クライアント14は、通信網13を介してサーバ12から送信されてきたパケットを受信して、受信したパケットに格納されている画像データを抽出する。
クライアント14は、ストリーミングデータが格納されているパケットを正常に受信できなかった場合、サーバ12に再送を要求する。サーバ12は、クライアント14から再送が要求された場合、通信網13の状態に応じて、ストリーミングデータが格納されているパケットを再送する。
図2は、サーバ12の構成の例を示すブロック図である。CPU(Central Processing Unit)31は、ROM(Read Only Memory)32、または記録部38に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)33には、CPU31が実行するプログラムやデータなどが適宜記憶される。これらのCPU31、ROM32、およびRAM33は、バス34により相互に接続されている。
CPU31にはまた、バス34を介して入出力インタフェース35が接続されている。入出力インタフェース35には、キーボード、マウス、スイッチなどよりなる入力部36、ディスプレイ、スピーカ、ランプなどよりなる出力部37が接続されている。CPU31は、入力部36から入力される指令に対応して各種の処理を実行する。
入出力インタフェース35に接続されている記録部38は、例えばハードディスクなどで構成され、CPU31が実行するプログラムや各種のデータを記録する。通信部39は、インターネット、その他のネットワークなどの通信網13を介して、クライアント14などの外部の装置と通信する。
また、通信部39を介してプログラムを取得し、記録部38に記録してもよい。
入出力インタフェース35に接続されているドライブ40は、磁気ディスク51、光ディスク52、光磁気ディスク53、或いは半導体メモリ54などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部38に転送され、記録される。
なお、クライアント14は、サーバ12と同様に構成されるので、その説明は省略する。
図3は、サーバ12の機能の構成を示すブロック図である。
サーバ12は、エンコーダ71、パケタイザ72、バッファ73、片道遅延計算部74、片道遅延保持部75、およびNACK(Negative Acknowledgment)処理部76を含む。
エンコーダ71は、所定のビットレートで、供給されたストリーミングデータの一例である画像データを符号化し、符号化された画像データをパケタイザ72に供給する。パケタイザ72は、エンコーダ71から供給された、符号化されている画像データを所定の方式のパケットに格納して、パケットを通信部39およびバッファ73に供給する。
バッファ73は、パケタイザ72から供給されたパケットを再送パケットとして一時的に記憶し、NACK処理部76の制御に基づいて、記憶している再送パケットを通信部39に供給する。
通信部39は、パケタイザ72から供給されたパケットを送信パケットとして、通信網13を介して、相手であるクライアント14に送信する。通信部39は、バッファ73から供給された再送パケットを、通信網13を介して、相手に送信する。
片道遅延計算部74は、片道遅延計測パケットを通信部39に供給する。片道遅延計測パケットの詳細は後述する。片道遅延計算部74は、通信部39が受信し、通信部39から供給された片道遅延計測パケットを基に、通信網13の片道遅延時間を算出する。片道遅延計算部74は、算出した片道遅延時間を片道遅延保持部75に供給する。
片道遅延保持部75は、片道遅延計算部74から供給された片道遅延時間を記憶して、記憶している片道遅延時間をNACK処理部76に供給する。
NACK処理部76は、片道遅延保持部75から供給された片道遅延時間、および通信部39から供給された再送要求パケットを基に、バッファ73に格納されている再送パケットの相手への送信を制御する。再送要求パケットの詳細は後述する。
図4は、クライアント14の機能の構成を示すブロック図である。
クライアント14は、通信部91、RTP処理部92、バッファ93、デコーダ94、NACK処理部95、および片道遅延処理部96を含む。
通信部91は、クライアント14の図2における通信部39に相当し、通信網13を介してサーバ12から送信されてきた各種のパケットを受信する。通信部91は、受信したパケットをRTP処理部92または片道遅延処理部96に供給する。
RTP処理部92は、通信部91が受信し、通信部91から供給された送信パケットであるRTPパケットを検査して、送信パケットを正常に受信できたか否かを判定する。RTP処理部92は、正常に送信パケットを受信できなかった場合、例えば、パケットロスが発生した場合、パケットロスが発生した送信パケットを示す情報をNACK処理部95に供給する。RTP処理部92は、正常に送信パケットを受信できた場合、送信パケットをバッファ93に供給する。
バッファ93は、RTP処理部92から供給された送信パケットを一時的に記憶する。
デコーダ94は、バッファ93に記憶されている送信パケットから画像データを抽出して、エンコーダ71に対応する復号方式で、抽出された画像データを復号して、復号された画像データを出力する。
NACK処理部95は、RTP処理部92から供給されたパケットロスが発生した送信パケットを示す情報を基に、パケットロスが発生した送信パケットの再送を要求する再送要求パケットを生成して、通信部91に供給する。また、NACK処理部95は、バッファに格納されている送信パケットを基に、パケットロスが発生した送信パケットの再送を要求する再送要求パケットを生成して、通信部91に供給する。再送要求パケットは、例えば、後述するNACKパケットである。NACKパケットの詳細は、後述する。
通信部91は、NACK処理部95から供給された再送要求パケットを通信網13を介して相手であるサーバ12に送信する。
片道遅延処理部96は、通信部91が受信し、通信部91から供給された片道遅延計測パケットを取得する。片道遅延処理部96は、取得した片道遅延計測パケットのデータ部と同じデータ部を含む片道遅延計測パケットを生成して(データ部をコピーした片道遅延計測パケットを生成して)、生成した片道遅延計測パケットを通信部91に供給する。通信部91は、片道遅延処理部96から供給された片道遅延計測パケットを通信網13を介して相手であるサーバ12に送信する。片道遅延計測パケットの詳細は、後述する。
なお、図3または図4で示されるサーバ12またはクライアント14の機能は、ハードウェアにより実現するようにしてもよく、ソフトウェア(プログラム)により実現するようにしてもよい。
次に、図5のフローチャートを参照して、送信プログラムを実行するサーバ12による、送信の処理を説明する。ステップS11において、サーバ12は、送信の処理に必要なデータを初期化する。例えば、ステップS11において、サーバ12のエンコーダ71は、内蔵しているタイマを初期値に設定する。より具体的には、例えば、エンコーダ71は、タイマの値を0に設定する。
ステップS12において、エンコーダ71は、タイマの値を基に、タイマが終了したか否かを判定し、タイマが終了していない場合、ステップS12に戻り、タイマが終了するまで、判定の処理を繰り返す。
例えば、ステップS12において、エンコーダ71は、タイマの値と、予め定めた33msとを比較することにより、タイマが終了したか否かを判定する。この場合における、タイマの値と比較される33msは、フレームの数が1秒当たり30である場合の例であり、本発明を限定するものではない。
なお、初期化の処理において、タイマの値を33msなどの所定の値に設定して、時間の経過に対応してタイマの値が減少するようにして、比較の処理において、タイマの値が0であるか否かを判定するようにしてもよい。以下に説明するタイマに関する処理において、同様である。
ステップS12において、タイマが終了したと判定された場合、ステップS13に進み、エンコーダ71は、カメラ11から供給された画像データをキャプチャする。ステップS13において、例えば、エンコーダ71は、カメラ11から供給された画像データのうち、1フレーム分をキャプチャする。
ステップS14において、エンコーダ71は、キャプチャされた画像データを、エンコード(符号化)する。例えば、ステップS14において、エンコーダ71は、キャプチャされた画像データを、MPEG(Moving Pictures Experts Group)1,2,4,7、若しくは21、JPEG(Joint Photographic Experts Group)、JPEG2000、またはモーションJPEGなどの方式により符号化する。
ステップS15において、パケタイザ72は、符号化された画像データを格納するRTP(Real-time Transport Protocol)パケットを生成する。RTPパケットは、送信パケットの一例である。
図6は、RTPパケットを説明する図である。RTPパケットの先頭には、図6において”v”で表される、2ビットのバージョン情報が配置される。バージョン情報は、RTPパケットのバージョンを示す。
バージョン情報の次に1ビットのパディングが配置され、パディングに続いて、1ビットの拡張情報がRTPパケットに配置される。拡張情報は、図6において、”x”で表される。拡張情報は、RTPパケットに拡張ヘッダを配置する場合に、所定の値に設定される。
拡張情報に続いて、CSRC(Contributing Source)カウントがRTPパケットに配置される。CSRCカウントは、図6中において、”cc”で表される。CSRCカウントは、CSRC識別子の数を表す。
CSRCカウントに続いて配置される、1ビットのメーカー情報は、プロファイルによって定義される。メーカー情報は、図6中において、”m”で表される。
メーカー情報に続いて配置される、7ビットのペイロードタイプは、RTPパケットのフォーマットを定義するための情報である。ペイロードタイプは、図6中において、”Pt”で表される。RTPパケットにおいて、ペイロードタイプは、33とされる。
シーケンス番号は、ペイロードタイプの次に配置される、16ビットの情報である。シーケンス番号は、RTPパケットの送信の度に、1ずつ増える。シーケンス番号は、パケットロスを検出し、RTPパケットの順序を修復するために使用される。
シーケンス番号の次に配置される、32ビットのタイムスタンプは、そのRTPパケットに格納されているストリーミングデータの最初のオクテットがサンプルされた時刻を示す情報である。
SSRC(Synchronization source)識別子は、タイムスタンプの次に配置される、32ビットの情報であって、RTPパケットに格納されるストリーミングデータのソースを示す。
RTPパケットにおいて、SSRC識別子の次には、ストリーミングデータが格納される。図6において、”Original Data”は、ストリーミングデータを示す。
図5に戻り、ステップS16において、パケタイザ72は、RTPパケットをバッファ73に供給して、バッファ73にRTPパケットを再送パケットとして格納させる。
なお、送信パケットと再送パケットとは、例えば、RTPパケットである、同じパケットであるが、説明のために、送信パケットと再送パケットとを区別する。
ステップS17において、パケタイザ72は、生成したRTPパケットを通信部39に供給して、通信部39は、パケタイザ72から供給されたRTPパケットを相手であるクライアント14に送信する。
ステップS18において、パケタイザ72は、RTPパケットに付加するタイムスタンプを更新する。ステップS19において、エンコーダ71は、内蔵しているタイマをセットして、ステップS12に戻り、上述した処理を繰り返す。
例えば、ステップS19において、エンコーダ71は、タイマの値を0をセットする。
このように、サーバ12は、通信網13を介して、例えば、画像であるストリーミングデータが格納されているRTPパケットをクライアント14に送信する。
次に、図7のフローチャートを参照して、送信プログラムを実行するサーバ12による、片道遅延時間の計測の処理を説明する。ステップS31において、片道遅延計算部74は、タイマを初期化する。例えば、ステップS31において、片道遅延計算部74は、タイマの値を0に設定することにより初期化する。
ステップS32において、片道遅延計算部74は、通信部39が受信し、通信部39から供給されたパケットを基に、片道遅延計測パケットを受信したか否かを判定する。ステップS32において、片道遅延計測パケットを受信していないと判定された場合、ステップS33に進み、片道遅延計算部74は、タイマが終了したか否かを判定する。
ステップS33において、タイマが終了したと判定された場合、ステップS34に進み、片道遅延計算部74は、通信部39に、片道遅延計測パケットを送信させる。例えば、ステップS34において、片道遅延計算部74は、現在時刻を格納した片道遅延計測パケットを生成して、生成した片道遅延計測パケットを通信部39に供給する。通信部39は、通信網13を介して、クライアント14宛てに、片道遅延計算部74から供給された片道遅延計測パケットを送信する。
ステップS35において、片道遅延計算部74は、タイマをセットして、ステップS32に戻り、片道遅延時間の計測の処理を繰り返す。
ステップS33において、タイマが終了していないと判定された場合、ステップS32に戻り、片道遅延時間の計測の処理を繰り返す。
ステップS32において、片道遅延計測パケットを受信したと判定された場合、ステップS36に進み、片道遅延計算部74は、片道遅延計測パケットを基に、片道遅延時間を算出する。
図8は、片道遅延計測パケットを説明する図である。バージョン情報、パディング、およびSSRC識別子は、図6で示されるRTPパケットの場合と同様であるので、その説明は省略する。
片道遅延計測パケットにおいて、ペイロードタイプは、205とされる。ペイロードタイプの次に配置される、16ビットのメッセージ長は、NACKパケットの長さ(サイズ)を示す情報である。
片道遅延計測パケットにおいて、32ビットのSSRC識別子に続いて、32ビットの名前が配置される。名前は、例えば、片道遅延計測パケットを取り扱うアプリケーションプログラムの名前である。
片道遅延計測パケットにおいて名前の次に格納される送信時刻は、サーバ12がクライアント14に、その片道遅延計測パケットを送信した時刻を示す。
また、クライアント14は、片道遅延計測パケットの送信時刻をそのままにして、サーバ12にその片道遅延計測パケットを即座に返送するので、サーバ12が受信した片道遅延計測パケットに格納される送信時刻は、クライアント14がサーバ12に送信してきた片道遅延計測パケットに対応する片道遅延計測パケットをサーバ12がクライアント14に送信した時刻を示す。
従って、サーバ12は、片道遅延計測パケットの送信時刻を現在時刻から引き算し、その結果を2で割り算することにより、片道遅延時間を計算することができる。
すなわち、例えば、ステップS36において、片道遅延計算部74は、図示せぬリアルタイムクロックによって示される片道遅延計測パケットを受信した時刻から、片道遅延計測パケットに格納されている送信時刻を引き算し、その結果を2で割ることにより、片道遅延時間を計算する。
ステップS37において、片道遅延計算部74は、計算された片道遅延時間を片道遅延保持部75に供給して、片道遅延保持部75に片道遅延時間を格納させ、ステップS32に戻り、片道遅延時間の計測の処理を繰り返す。
このように、サーバ12からクライアント14まで通信網13を介してパケットを伝送するのに要する時間を示す片道遅延時間が算出されて、片道遅延保持部75に格納(記憶)される。
次に、図9のフローチャートを参照して、クライアント14による、片道遅延計測パケットの返信の処理を説明する。ステップS51において、片道遅延処理部96は、通信部91がパケットを受信した場合に、通信部91から供給されたパケットを基に、片道遅延計測パケットを受信したか否かを判定し、片道遅延計測パケットを受信していないと判定された場合、ステップS51に戻り、片道遅延計測パケットが受信されるまで、判定の処理を繰り返す。
ステップS51において、片道遅延計測パケットを受信したと判定された場合、ステップS52に進み、片道遅延処理部96は、直ちに、受信した片道遅延計測パケットのデータ部(図8のヘッダを除いた部分)と同様のデータ部の片道遅延計測パケットを生成して、生成した片道遅延計測パケットを通信部91に供給する。そして、片道遅延処理部96は、通信部91に、通信網13を介して、片道遅延計測パケットをサーバ12宛てに直ちに送信させて、ステップS51に戻り、上述した処理を繰り返す。
このように、クライアント14は、片道遅延計測パケットを受信すると、直ちに、サーバ12に片道遅延計測パケットを返送する。
図10は、クライアント14の再送要求の処理を説明するフローチャートである。ステップS71において、NACK処理部95は、再送要求の処理に必要なデータを初期化する。例えば、ステップS71において、NACK処理部95は、画像データが1秒当たり30フレームで構成されている場合、内蔵しているタイマに、1フレーム当たりの時間、すなわち、33msを設定する。
ステップS72において、通信部91は、通信網13を介して、サーバ12から送信されてきた送信パケットの一例であるRTPパケットを受信して、受信したRTPパケットをRTP処理部92に供給する。ステップS73において、RTP処理部92は、通信部91から供給されたRTPパケットを基に、送信パケットを正常に受信できたか否か、すなわち、パケットロスが発生したか否かを判定する。
ステップS73において、パケットロスが発生したと判定された場合、ステップS74に進み、RTP処理部92は、NACK処理部95に再送要求を指示して、NACK処理部95は、RTP処理部92に格納されている、受信したRTPパケットから、パケットロスしたRTPパケットのシーケンス番号を取得する。
ステップS75において、NACK処理部95は、取得したシーケンス番号から、パケットロスしたRTPパケットの再生時刻を計算する。例えば、1フレームの画像データが1つのRTPパケットに格納されている場合、ステップS75において、NACK処理部95は、パケットロスしたRTPパケットに格納されているシーケンス番号の値から、バッファ93の先頭に格納されているRTPパケットに格納されているシーケンス番号の値を引き算して、その差をさらに1秒当たりフレームの数で割り算する。さらに、NACK処理部95は、その商(割り算の結果)を図示せぬリアルタイムクロックから供給された現在時刻に加算することにより、パケットロスしたRTPパケットの再生時刻、より正確には、パケットロスしたRTPパケットに格納されている画像データが再生される再生時刻を計算する。
例えば、1タイムスタンプにつき、1シーケンス番号であり、サンプリングレート(例えば、1秒間当たりのフレームの数)が1である場合を考える。すなわち、この場合、シーケンス番号は、タイムスタンプと同じ値となり、パケットの数は、1秒に1パケットとなる。ステップS75において、NACK処理部95は、パケットロスしたRTPパケットに格納されているタイムスタンプの値から、バッファ93の先頭に格納されているRTPパケットに格納されているタイムスタンプの値を引き算して、その差をさらにサンプリングレートで割り算する。さらに、NACK処理部95は、その商(割り算の結果)を図示せぬリアルタイムクロックから供給された現在時刻に加算することにより、パケットロスしたRTPパケットに格納されている画像データが再生される再生時刻を計算する。
ステップS76において、NACK処理部95は、通信部91にロスパケットの再送要求を送信させて、ステップS72に戻り、上述した処理を繰り返す。例えば、ステップS76において、NACK処理部95は、ステップS75の処理で算出された、パケットロスしたRTPパケットの再生時刻を格納したNACKパケットを生成して、生成したNACKパケットを通信部91に供給する。NACK処理部95は、通信部91に、通信網13を介して、サーバ12宛てにNACKパケットを送信させることにより、ロスパケットの再送を要求する。
図11は、ステップS76の処理または後述するステップS80の処理で送信されるNACKパケットを説明する図である。バージョン情報、パディング、メッセージ長、SSRC識別子、および名前は、図8で示される片道遅延計測パケットの場合と同様であるので、その説明は省略する。
NACKパケットにおいて、ペイロードタイプは、204とされる。
NACKパケットにおいて、32ビットの名前に続いて、再送を要求するRTPパケットに格納されているシーケンス番号と同じ、32ビットの要求シーケンス番号が配置される。
さらに、NACKパケットにおいて要求シーケンス番号の次に格納される再生時刻は、パケットロスしたRTPパケットの再生時刻、より正確には、パケットロスしたRTPパケットに格納されている画像データが再生される時刻を示す。
ステップS73において、パケットロスが発生していないと判定された場合、ステップS77に進み、NACK処理部95は、タイマが終了したか否かを判定し、タイマが終了したと判定された場合、例えば、1フレーム当たりの時間が経過しているので、ステップS78に進み、バッファ93から、届いていない送信パケットを検出する。
ステップS79において、NACK処理部95は、ステップS75の処理と同様の処理で、届いていない(ロスした)送信パケットのシーケンス番号から、届いていない送信パケットに格納されている画像データの再生時刻を計算する。
例えば、1タイムスタンプにつき、1シーケンス番号であり、サンプリングレートが1である場合を考える。図12で示されるように、バッファ93に、シーケンス番号が1である送信パケット101−1、シーケンス番号が2である送信パケット101−2、シーケンス番号が3である送信パケット101−3、シーケンス番号が4である送信パケット101−4、およびシーケンス番号が6である送信パケット101−6が、順に格納されている場合、ステップS78において、NACK処理部95は、5であるシーケンス番号が欠けているので、届いていない、シーケンス番号が5である送信パケット101−5を検出する。
そして、ステップS79において、NACK処理部95は、パケットロスした送信パケット101−5のシーケンス番号である5から、バッファ93の先頭に格納されている送信パケット101−1のシーケンス番号である1を引き算して、その結果である4をサンプリングレートである1で割り算する。さらに、NACK処理部95は、割り算の結果である4を現在時刻に加算することにより、パケットロスしたRTPパケットに格納されている画像データが再生される再生時刻である、現在時刻から4秒後の時刻を計算する。
ステップS80において、NACK処理部95は、ステップS76の処理と同様の処理で、通信部91に届いていないパケットの再送要求を送信させる。ステップS81において、NACK処理部95は、タイマをセットして、ステップS72に戻り、上述した処理を繰り返す。
ステップS77において、タイマが終了していないと判定された場合、バッファ93に格納されているパケットに格納されている画像データの再生が進んでいないので、ステップS72に戻り、上述した処理を繰り返す。
次に、図13のフローチャートを参照して、サーバ12による、再送の処理を説明する。ステップS101において、通信部39は、通信網13を介して、クライアント14から送信されてきたパケットを受信する。通信部39は、受信したパケットが再送要求であるNACKパケットである場合、受信したパケットをNACK処理部76に供給する。
ステップS102において、NACK処理部76は、再送要求を受信したか否かを判定する。例えば、ステップS102において、NACK処理部76は、通信部39からNACKパケットが供給されたか否かにより、再送要求を受信したか否かを判定する。
ステップS102において、再送要求を受信していないと判定された場合、ステップS101に戻り、再送要求を受信するまで、パケットの受信および判定の処理を繰り返す。
ステップS102において、例えば、供給されたパケットがNACKパケットであり、再送要求を受信したと判定された場合、ステップS103に進み、NACK処理部76は、再送が間に合うか否かを判定する。
例えば、ステップS103において、NACK処理部76は、片道遅延保持部75から、片道遅延保持部75に格納されている片道遅延時間を取得して、現在時刻に取得した片道遅延時間を加算することにより、クライアント14に再送パケットが到達する到達時刻を計算する。そして、NACK処理部76は、到達時刻とNACKパケットに格納されている再生時刻とを比較する。
NACKパケットに格納されている再生時刻は、再送が要求された、パケットロスしたRTPパケットに格納されている画像データが再生される時刻を示すので、到達時刻が、NACKパケットに格納されている再生時刻以前であれば(到達時刻が、再生時刻以下であれれば)、NACK処理部76は、再送が間に合うと判定する。
ステップS103において、再送が間に合うと判定された場合、ステップS104に進み、NACK処理部76は、該当するシーケンス番号のパケットを通信部39に送信させて、ステップS101に戻り、再送の処理を繰り返す。例えば、ステップS104において、NACK処理部76は、NACKパケットから要求シーケンス番号を抽出し、バッファ73に、要求シーケンス番号に該当するシーケンス番号の再送パケットを通信部39に供給させる。通信部39は、通信網13を介して、バッファ73から供給された再送パケットをクライアント14に送信する。
ステップS103において、再送が間に合わないと判定された場合、再送パケットを送信しても受信側において再生に使用することができないので、ステップS104をスキップして、再送パケットを送信しないで、ステップS101に戻り、再送の処理を繰り返す。
このように、クライアント14から再送が要求された場合、サーバ12は、再送が間に合うとき、すなわち、再送した再送パケットに格納された画像データがクライアント14において再生に使用できるとき、再送パケットをクライアント14に送信し、再送が間に合わないとき、すなわち、再送しても再送パケットに格納された画像データがクライアント14において再生に使用できないとき、再送パケットをクライアント14に送信しない。
このようにすることで、サーバ12による、無用な再送パケットの送信を抑制して、通信網13の負荷を下げることができる。これにより、サーバ12から送信される送信パケットがより確実にクライアント14に伝送されるようになる。
次に、他の実施の形態について説明する。
図14は、サーバ12の他の構成を示すブロック図である。図14において、図3に示す場合と同様の部分には同一の番号を付してあり、その説明は適宜省略する。
通信部39は、送信した送信パケットのシーケンス番号および送信時刻を送信履歴保持部121に供給する。
送信履歴保持部121は、通信部39から供給された、送信した送信パケットのシーケンス番号および送信時刻を対応させて、記憶する。送信履歴保持部121は、対応して記憶している、送信パケットのシーケンス番号および送信時刻をNACK処理部122に供給する。
例えば、送信履歴保持部121は、リングバッファであるFIFO(First-In First-Out)バッファからなり、送信された送信パケットであるRTPパケットのシーケンス番号および送信時刻を対応させて順に記憶する。
NACK処理部122は、送信履歴保持部121から供給されたシーケンス番号および送信時刻、片道遅延保持部75から供給された片道遅延時間、並びに通信部39から供給された再送要求パケットを基に、バッファ73に格納されている再送パケットの相手への送信を制御する。
次に、図14で示される構成を有するサーバ12による送信の処理を図15のフローチャートを参照して説明する。ステップS121乃至ステップS127の処理は、それぞれ、図5のステップS11乃至ステップS17の処理のそれぞれと同様なので、その説明は省略する。
ステップS128において、通信部39は、送信履歴保持部121に、送信した送信パケットであるRTPパケットの送信時刻およびシーケンス番号を供給して、送信履歴保持部121に、送信時刻およびシーケンス番号を対応させて格納(記憶)させる。
ステップS129およびステップS130の処理は、それぞれ、図5のステップS18およびステップS19の処理のそれぞれと同様なので、その説明は省略する。
このように、送信履歴保持部121は、送信した送信パケットの一例であるRTPパケットの送信時刻およびシーケンス番号を対応させて記憶する。
次に、クライアント14による再送要求の他の処理を図16のフローチャートを参照して説明する。ステップS141乃至ステップS143の処理は、それぞれ、図10のステップS71乃至ステップS73の処理のそれぞれと同様なので、その説明は省略する。
ステップS144において、RTP処理部92は、NACK処理部95に再送要求を指示して、NACK処理部95は、バッファ93の先頭に格納されているパケットの再生時刻およびシーケンス番号、並びに、RTP処理部92に格納されている、受信したRTPパケットから、パケットロスしたRTPパケットのシーケンス番号を取得する。
例えば、ステップS144において、NACK処理部95は、バッファ93から、バッファ93の先頭に格納されているRTPパケットを取得して、取得したRTPパケットに格納されているシーケンス番号を取得する。さらに、NACK処理部95は、バッファ93の先頭に格納されているRTPパケットに格納されている画像データが次のタイミングで再生されるので、現在時刻に、1秒間当たりのフレームの数から定まる1つのフレーム当たりの期間を加算することにより、バッファ93の先頭に格納されているパケットの再生時刻を求める。
また、例えば、ステップS144において、NACK処理部95は、バッファ93から、バッファ93の先頭に格納されているRTPパケットを取得して、取得したRTPパケットに格納されているシーケンス番号を取得する。さらに、NACK処理部95は、現在デコーダ94によって復号されている画像データを格納するRTPパケットのタイムスタンプから、バッファ93の先頭に格納されているRTPパケットのタイムスタンプを引き算して、その結果を1秒間当たりのフレームの数から定まる1つのフレーム当たりの期間であるサンプリングレートにより割り算して、その割り算の結果である商に現在時刻を加算することにより、バッファ93の先頭に格納されているパケットの再生時刻を求める。
なお、タイムスタンプとシーケンス番号との関係および現在デコーダ94によって復号されている画像データを格納するRTPパケットのシーケンス番号から、バッファ93の先頭に格納されているパケットのシーケンス番号を基に、バッファ93の先頭に格納されているパケットの再生時刻を求めるようにしてもよい。
ステップS145において、NACK処理部95は、通信部91にロスパケットの再送要求を送信させて、ステップS142に戻り、上述した処理を繰り返す。例えば、ステップS145において、NACK処理部95は、ステップS144の処理で取得された、バッファ93の先頭に格納されているパケットの再生時刻およびシーケンス番号、並びにパケットロスしたRTPパケットのシーケンス番号を格納したNACKパケットを生成する。そして、NACK処理部95は、生成したNACKパケットを通信部91に供給する。NACK処理部95は、通信部91に、通信網13を介して、サーバ12宛てにNACKパケットを送信させることにより、ロスパケットの再送を要求する。
ステップS146およびステップS147は、それぞれ、図10のステップS77およびステップS78の処理と同様なので、それ説明は省略する。
ステップS148において、NACK処理部95は、ステップS144の処理と同様の処理で、バッファ93の先頭に格納されているパケットの再生時刻およびシーケンス番号、並びにパケットロスしたRTPパケットのシーケンス番号を取得する。
ステップS149において、NACK処理部95は、ステップS145の処理と同様の処理で、通信部91に届いていないパケットの再送要求を送信させる。ステップS150において、NACK処理部95は、タイマをセットして、ステップS142に戻り、上述した処理を繰り返す。
図17は、ステップS145またはステップS149の処理で生成され、送信されるNACKパケットを説明する図である。バージョン情報、パディング、メッセージ長、SSRC識別子、および名前は、図8で示される片道遅延計測パケットの場合と同様であるので、その説明は省略する。
NACKパケットにおいて、ペイロードタイプは、204とされる。
NACKパケットにおいて、32ビットの名前に続いて、再送を要求するRTPパケットに格納されているシーケンス番号と同じ、32ビットの要求シーケンス番号が配置される。
ステップS145またはステップS149の処理で生成され、送信されるNACKパケットにおいては、要求シーケンス番号に続いて、先頭シーケンス番号および先頭シーケンスの再生時刻が配置される。
先頭シーケンス番号には、バッファ93の先頭に格納されているRTPパケットのシーケンス番号が格納される。先頭シーケンスの再生時刻には、バッファ93の先頭に格納されているパケットの再生時刻が格納される。
次に、図18のフローチャートを参照して、サーバ12による、再送の他の処理を説明する。ステップS171において、通信部39は、通信網13を介して、クライアント14から送信されてきたパケットを受信する。通信部39は、受信したパケットが再送要求であるNACKパケットである場合、受信したパケットをNACK処理部76に供給する。
ステップS172において、NACK処理部76は、再送要求を受信したか否かを判定する。例えば、ステップS172において、NACK処理部76は、通信部39からNACKパケットが供給されたか否かにより、再送要求を受信したか否かを判定する。
ステップS172において、再送要求を受信していないと判定された場合、ステップS171に戻り、再送要求を受信するまで、パケットの受信および判定の処理を繰り返す。
ステップS172において、例えば、供給されたパケットがNACKパケットであり、再送要求を受信したと判定された場合、ステップS173に進み、NACK処理部76は、送信履歴保持部121から、再送要求されたパケットの送信時刻を読み出す。例えば、ステップS173において、NACK処理部76は、NACKパケットから要求シーケンス番号を抽出して、要求シーケンス番号に対応して記憶されているパケットの送信時刻を送信履歴保持部121から読み出すことにより、送信履歴保持部121から、再送要求されたパケットの送信時刻を読み出す。
ステップS174において、NACK処理部76は、NACKパケットから先頭シーケンス番号を抽出して、先頭シーケンス番号に対応して記憶されているパケットの送信時刻を送信履歴保持部121から読み出すことにより、送信履歴保持部121から、クライアント14のバッファ93の先頭に格納されているの送信時刻を読み出す。
ステップS175において、NACK処理部76は、再送が間に合うか否かを判定する。
例えば、ステップS175において、NACK処理部76は、NACKパケットから先頭シーケンスの再生時刻を抽出することにより、クライアント14のバッファ93の先頭に格納されているパケットの再生時刻を取得する。そして、NACK処理部76は、片道遅延保持部75から、片道遅延保持部75に格納されている片道遅延時間を取得して、現在時刻に取得した片道遅延時間を加算することにより、クライアント14に再送パケットが到達する到達時刻を計算する。
さらに、NACK処理部76は、バッファ93の先頭に格納されているパケットの送信時刻から、再送要求されたパケットの送信時刻を引き算し、その結果に、クライアント14のバッファ93の先頭に格納されているパケットの再生時刻を加算した値を、再送要求されたパケットの再生予定時刻とする。
NACK処理部76は、到達時刻とパケットの再生予定時刻とを比較する。
到達時刻が、パケットの再生予定時刻以前であれば(到達時刻が、パケットの再生予定時刻以下であれれば)、NACK処理部76は、再送が間に合うと判定する。
ステップS175において、再送が間に合うと判定された場合、ステップS176に進み、NACK処理部76は、ステップS104の処理と同様の処理で、該当するシーケンス番号のパケットを通信部39に送信させて、ステップS171に戻り、再送の処理を繰り返す。
ステップS175において、再送が間に合わないと判定された場合、再送パケットを送信しても受信側において再生に使用することができないので、ステップS176をスキップして、再送パケットを送信しないで、ステップS171に戻り、再送の処理を繰り返す。
このように、クライアント14が、クライアント14のバッファ93の先頭に格納されているパケットの再生時刻およびシーケンス番号をサーバ12に送信して、サーバ12が、送信したパケットの送信時刻およびシーケンス番号を対応させて記憶するようにした場合、サーバ12は、再送パケットの再送が間に合うか否かを判定することができる。
この場合においても、クライアント14から再送が要求された場合、サーバ12は、再送が間に合うとき、すなわち、再送パケットに格納された画像データがクライアント14において再生に使用できるとき、再送パケットをクライアント14に送信し、再送が間に合わないとき、すなわち、再送パケットに格納された画像データがクライアント14において再生に使用できないとき、再送パケットをクライアント14に送信しない。
このように、パケットを再送するようにした場合には、エラーを訂正することができる。また、正常に受信できなかった送信パケットに対応する再送パケットが送信装置から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得し、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットを送信装置に送信し、受信装置から送信されてきた、再送要求パケットを受信し、自分が再送パケットを再送してから受信装置が再送パケットを受信するまでの遅延時間を算出し、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できるか否かを判定し、ストリーミングデータを再生する時刻までに、受信装置が再送パケットを受信できると判定された場合、要求された再送パケットを再送するようにした場合には、送信側で再送が間に合うかどうかを判断して、無駄な再送を防止することができる。
さらに、正常に受信できなかった送信パケットに対応する再送パケットが相手から再送された場合、再送パケットが再送されてから、再送パケットに格納されているストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得し、再送パケットの再送を要求し、時間算出情報が格納されている再送要求パケットを相手に送信するようにした場合には、相手側で再送が間に合うかどうかを判断して、無駄な再送を防止することができる。
相手が正常に受信できなかった送信パケットに対応する再送パケットの再送を要求するとともに、自分が再送パケットを再送してから、再送パケットに格納されているストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットを受信し、自分が再送パケットを再送してから相手が再送パケットを受信するまでの遅延時間を算出し、受信された再送要求パケットに格納されている時間算出情報および遅延時間を基に、要求された再送パケットを再送した場合、再送パケットに格納されているストリーミングデータを再生する時刻までに、相手が再送パケットを受信できるか否かを判定し、ストリーミングデータを再生する時刻までに、相手が再送パケットを受信できると判定された場合、要求された再送パケットを再送するようにした場合には、自分で再送が間に合うかどうかを判断して、無駄な再送を防止することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図2に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク51(フレキシブルディスクを含む)、光ディスク52(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク53(MD(Mini-Disc)(商標)を含む)、若しくは半導体メモリ54などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM32や、記憶部38に含まれるハードディスクなどで構成される。
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
12 サーバ, 13 通信網, 14 クライアント, 31 CPU, 32 ROM, 33 RAM, 38 記録部, 51 磁気ディスク, 52 光ディスク, 53 光磁気ディスク, 54 半導体メモリ, 71 エンコーダ, 72 パケタイザ, 73 バッファ, 74 片道遅延計算部, 75 片道遅延保持部, 76 NACK処理部, 91 通信部, 92 RTP処理部, 93 バッファ, 94 デコーダ, 95 NACK処理部, 96 片道遅延処理部
Claims (13)
- 伝送に所定の遅延時間を要する通信網を介して送信されてくる、ストリーミングデータが格納されている送信パケットを受信する受信装置および前記送信パケットを送信する送信装置からなる通信システムにおいて、
前記受信装置は、
正常に受信できなかった前記送信パケットに対応する再送パケットが前記送信装置から再送された場合、前記再送パケットが再送されてから、前記再送パケットに格納されている前記ストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段と、
前記再送パケットの再送を要求し、前記時間算出情報が格納されている再送要求パケットの前記送信装置への送信を制御する第1の送信制御手段と
を含み、
前記送信装置は、
前記受信装置から送信されてきた、前記再送要求パケットの受信を制御する受信制御手段と、
自分が前記再送パケットを再送してから前記受信装置が前記再送パケットを受信するまでの前記遅延時間を算出する遅延時間算出手段と、
受信された前記再送要求パケットに格納されている前記時間算出情報および前記遅延時間を基に、要求された前記再送パケットを再送した場合、前記再送パケットに格納されている前記ストリーミングデータを再生する時刻までに、前記受信装置が前記再送パケットを受信できるか否かを判定する判定手段と、
前記ストリーミングデータを再生する時刻までに、前記受信装置が前記再送パケットを受信できると判定された場合、要求された前記再送パケットの再送を制御する第2の送信制御手段と
を含むことを特徴とする通信システム。 - 伝送に所定の遅延時間を要する通信網を介して相手から送信されてくる、ストリーミングデータが格納されている送信パケットを受信する受信装置において、
正常に受信できなかった前記送信パケットに対応する再送パケットが相手から再送された場合、前記再送パケットが再送されてから、前記再送パケットに格納されている前記ストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得手段と、
前記再送パケットの再送を要求し、前記時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御手段と
を含むことを特徴とする受信装置。 - 前記時間算出情報は、再送を要求する前記再送パケットに対応する、正常に受信できなかった前記送信パケットの前記ストリーミングデータの再生時刻を含む
ことを特徴とする請求項2に記載の受信装置。 - 前記時間算出情報は、次に再生しようとする前記ストリーミングデータの再生時刻、次に再生しようとする前記ストリーミングデータを格納する前記送信パケットのシーケンス番号、および再送を要求する前記再送パケットに対応する、正常に受信できなかった前記送信パケットのシーケンス番号を含む
ことを特徴とする請求項2に記載の受信装置。 - 伝送に所定の遅延時間を要する通信網を介して相手から送信されてくる、ストリーミングデータが格納されている送信パケットを受信する受信装置の受信方法において、
正常に受信できなかった前記送信パケットに対応する再送パケットが相手から再送された場合、前記再送パケットが再送されてから、前記再送パケットに格納されている前記ストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、
前記再送パケットの再送を要求し、前記時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップと
を含むことを特徴とする受信方法。 - 伝送に所定の遅延時間を要する通信網を介して相手から送信されてくる、ストリーミングデータが格納されている送信パケットを受信する受信処理用のプログラムであって、
正常に受信できなかった前記送信パケットに対応する再送パケットが相手から再送された場合、前記再送パケットが再送されてから、前記再送パケットに格納されている前記ストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、
前記再送パケットの再送を要求し、前記時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 伝送に所定の遅延時間を要する通信網を介して相手から送信されてくる、ストリーミングデータが格納されている送信パケットを受信する受信処理を、コンピュータに行わせるプログラムにおいて、
正常に受信できなかった前記送信パケットに対応する再送パケットが相手から再送された場合、前記再送パケットが再送されてから、前記再送パケットに格納されている前記ストリーミングデータを再生するまでの時間を算出するための時間算出情報を取得する取得ステップと、
前記再送パケットの再送を要求し、前記時間算出情報が格納されている再送要求パケットの相手への送信を制御する送信制御ステップと
を含むことを特徴とするプログラム。 - 伝送に所定の遅延時間を要する通信網を介して、ストリーミングデータが格納されている送信パケットを相手に送信する送信装置において、
相手が正常に受信できなかった前記送信パケットに対応する再送パケットの再送を要求するとともに、自分が前記再送パケットを再送してから、前記再送パケットに格納されている前記ストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御手段と、
自分が前記再送パケットを再送してから相手が前記再送パケットを受信するまでの前記遅延時間を算出する遅延時間算出手段と、
受信された前記再送要求パケットに格納されている前記時間算出情報および前記遅延時間を基に、要求された前記再送パケットを再送した場合、前記再送パケットに格納されている前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できるか否かを判定する判定手段と、
前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できると判定された場合、要求された前記再送パケットの再送を制御する送信制御手段と
を含むことを特徴とする送信装置。 - 前記受信制御手段は、再送が要求された前記再送パケットに対応する、相手が正常に受信できなかった前記送信パケットの前記ストリーミングデータの再生時刻を含む前記時間算出情報が格納されている再送要求パケットの受信を制御し、
前記判定手段は、現在時刻から前記ストリーミングデータの再生時刻までの時間が、前記遅延時間以上である場合、前記ストリーミングデータの再生までに、相手が前記再送パケットを受信できると判定する
ことを特徴とする請求項8に記載の送信装置。 - 送信した前記送信パケットの送信時刻とシーケンス番号とを対応させて記憶する記憶手段をさらに備え、
前記受信制御手段は、相手が次に再生しようとする前記ストリーミングデータの再生時刻および次に再生しようとする前記ストリーミングデータを格納する前記送信パケットのシーケンス番号、並びに再送が要求された前記再送パケットに対応する、相手が正常に受信できなかった前記送信パケットのシーケンス番号を含む前記時間算出情報が格納されている再送要求パケットの受信を制御し、
前記判定手段は、対応して記憶されている送信時刻およびシーケンス番号を基に、次に再生しようとする前記ストリーミングデータを格納した前記送信パケットの送信時刻から相手が正常に受信できなかった前記送信パケットの送信時刻までの時間を、次に再生しようとする前記ストリーミングデータの再生時刻に加算して得られた時刻と現在時刻との時間が、前記遅延時間以上である場合、前記ストリーミングデータの再生までに、相手が前記再送パケットを受信できると判定する
ことを特徴とする請求項8に記載の送信装置。 - 伝送に所定の遅延時間を要する通信網を介して、ストリーミングデータが格納されている送信パケットを相手に送信する送信装置の送信方法において、
相手が正常に受信できなかった前記送信パケットに対応する再送パケットの再送を要求するとともに、自分が前記再送パケットを再送してから、前記再送パケットに格納されている前記ストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、
自分が前記再送パケットを再送してから相手が前記再送パケットを受信するまでの前記遅延時間を算出する遅延時間算出ステップと、
受信された前記再送要求パケットに格納されている前記時間算出情報および前記遅延時間を基に、要求された前記再送パケットを再送した場合、前記再送パケットに格納されている前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できるか否かを判定する判定ステップと、
前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できると判定された場合、要求された前記再送パケットの再送を制御する送信制御ステップと
を含むことを特徴とする送信方法。 - 伝送に所定の遅延時間を要する通信網を介して、ストリーミングデータが格納されている送信パケットを相手に送信する送信処理用のプログラムであって、
相手が正常に受信できなかった前記送信パケットに対応する再送パケットの再送を要求するとともに、自分が前記再送パケットを再送してから、前記再送パケットに格納されている前記ストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、
自分が前記再送パケットを再送してから相手が前記再送パケットを受信するまでの前記遅延時間を算出する遅延時間算出ステップと、
受信された前記再送要求パケットに格納されている前記時間算出情報および前記遅延時間を基に、要求された前記再送パケットを再送した場合、前記再送パケットに格納されている前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できるか否かを判定する判定ステップと、
前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できると判定された場合、要求された前記再送パケットの再送を制御する送信制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。 - 伝送に所定の遅延時間を要する通信網を介して、ストリーミングデータが格納されている送信パケットを相手に送信する送信処理を、コンピュータに行わせるプログラムにおいて、
相手が正常に受信できなかった前記送信パケットに対応する再送パケットの再送を要求するとともに、自分が前記再送パケットを再送してから、前記再送パケットに格納されている前記ストリーミングデータを相手が再生するまでの時間を算出するための時間算出情報が格納されている再送要求パケットの受信を制御する受信制御ステップと、
自分が前記再送パケットを再送してから相手が前記再送パケットを受信するまでの前記遅延時間を算出する遅延時間算出ステップと、
受信された前記再送要求パケットに格納されている前記時間算出情報および前記遅延時間を基に、要求された前記再送パケットを再送した場合、前記再送パケットに格納されている前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できるか否かを判定する判定ステップと、
前記ストリーミングデータを再生する時刻までに、相手が前記再送パケットを受信できると判定された場合、要求された前記再送パケットの再送を制御する送信制御ステップと
を含むことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003368419A JP2005136547A (ja) | 2003-10-29 | 2003-10-29 | 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003368419A JP2005136547A (ja) | 2003-10-29 | 2003-10-29 | 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005136547A true JP2005136547A (ja) | 2005-05-26 |
Family
ID=34646090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003368419A Withdrawn JP2005136547A (ja) | 2003-10-29 | 2003-10-29 | 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005136547A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007202018A (ja) * | 2006-01-30 | 2007-08-09 | Kyocera Corp | 通信中継装置及びデータ転送方法 |
JP2009253605A (ja) * | 2008-04-04 | 2009-10-29 | Sony Corp | 送信装置および方法、並びにプログラム |
JP2011015214A (ja) * | 2009-07-02 | 2011-01-20 | Canon Inc | 送信装置、送信方法、及びコンピュータプログラム |
KR101243502B1 (ko) | 2011-10-31 | 2013-03-20 | 삼성에스디에스 주식회사 | 데이터 수신 방법 및 장치 |
-
2003
- 2003-10-29 JP JP2003368419A patent/JP2005136547A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007202018A (ja) * | 2006-01-30 | 2007-08-09 | Kyocera Corp | 通信中継装置及びデータ転送方法 |
JP2009253605A (ja) * | 2008-04-04 | 2009-10-29 | Sony Corp | 送信装置および方法、並びにプログラム |
JP4513036B2 (ja) * | 2008-04-04 | 2010-07-28 | ソニー株式会社 | 送信装置および方法、並びにプログラム |
US8532111B2 (en) | 2008-04-04 | 2013-09-10 | Sony Corporation | Transmission apparatus, transmission method, and program |
JP2011015214A (ja) * | 2009-07-02 | 2011-01-20 | Canon Inc | 送信装置、送信方法、及びコンピュータプログラム |
KR101243502B1 (ko) | 2011-10-31 | 2013-03-20 | 삼성에스디에스 주식회사 | 데이터 수신 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100967377B1 (ko) | 데이터 통신 시스템, 데이터 송신 장치, 데이터 수신 장치, 데이터 통신 방법, 및 컴퓨터 프로그램을 기록한 매체 | |
KR100680671B1 (ko) | 에러 정정용 데이터의 생성 방법 및 생성 장치와 생성 프로그램을 저장한 컴퓨터 판독가능한 기록 매체 | |
JP4414311B2 (ja) | マルチメディアストリーミングサービスシステム及びその方法 | |
JP4328602B2 (ja) | パケットエラー訂正装置及び方法 | |
KR100954253B1 (ko) | 데이터 전송 시스템, 동작 방법 및 디지털 미디어 캐리어 | |
KR100460970B1 (ko) | 데이터 송수신 시스템 및 방법 | |
US7539925B2 (en) | Transmission apparatus and method, reception apparatus and method, storage medium, and program | |
KR101001514B1 (ko) | 송수신 시스템 및 수신 장치 | |
JP2010154547A (ja) | パケット化データのビットレートの適合化とデータパケットの再送信との間の連携 | |
JP2005136546A (ja) | 送信装置および方法、記録媒体、並びにプログラム | |
CN107819809B (zh) | 对内容进行同步操作的方法及装置 | |
KR20040009928A (ko) | 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법 | |
JP2005198055A (ja) | 受信装置および方法、プログラム、並びに記録媒体 | |
JP3492602B2 (ja) | データ送信装置及びデータ受信装置 | |
JP4362761B2 (ja) | 送信装置および方法、記録媒体、並びにプログラム | |
JP2005051299A (ja) | パケット送信装置、パケット受信装置、パケット送信方法及びパケット受信方法 | |
JP2008167351A (ja) | 端末装置 | |
JP2005136547A (ja) | 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム | |
JP2003179662A (ja) | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム | |
JP2006304138A (ja) | 選択再送型通信装置 | |
JP4367287B2 (ja) | 受信装置および方法、記録媒体、プログラム、並びに通信システム | |
JP4433281B2 (ja) | 受信装置および方法、記録媒体、並びにプログラム | |
JP2005136545A (ja) | 送信装置および方法、プログラム格納媒体、並びにプログラム | |
JP4506222B2 (ja) | 通信システム、送信装置および方法、並びにプログラム | |
JP4876427B2 (ja) | 通信システム、送信装置、送信方法、受信装置、受信方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070109 |