(57)【要約】【課題】  ネットワークへの負荷の増大を抑えながら、データ欠損と、それによるコマ落ちや、音切れ等の現象を防止すること。【解決手段】  サーバ１００から発信されるストリーミングデータ１０１は、クライアント２００のパケット送受信部２０５で受信されバッファ２０２に送られる。バッファ２０２は、パケットが送信される時間間隔で受信したパケットを、パケットに付された番号順にバッファの先頭の領域から順に格納する。受信したパケットがバッファ２０２の末尾の領域に達するとストリーミングデータ処理部２０１に転送される。欠落判断部２０６がデータの欠落を判断すると、再送要求部２０４は、現在時刻とバッファ２０２から上記処理部２０１にデータが送出される予定時刻、再送要求時刻との差に応じて、欠落データの再送信を要求し、サーバ１００は欠落データの再送信を実行する。【選択図】          図１
2005348015.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されたサーバから送信されるストリーミング  データをリアルタイムで受信するストリーミングデータ受信装置であって、
上記受信装置は、ストリーミングデータの送受信部と、該送受信部で受信したパケットを格納するバッファと、パケットに欠落が生じたとき上記サーバに対して再送要求をする再送要求部とを備え、
上記バッファは、受信したパケットを格納する複数の領域を備え、パケットが送信される予定時間間隔で順次シフトしながら、受信したパケット、もしくは、パケットが欠落したときには空のデータを、パケットに付された番号順にバッファの先頭から順に格納し、バッファの末尾にパケットが達したとき、該パケットをストリーミングデータ処理部に転送し、
上記バッファの各領域に対応させて、パケットをバッファからストリーミングデータ処理部に送出する時刻を保持する送出予定時刻保持部が設けられ、該送出予定時刻保持部には、バッファの各領域に格納されたパケットもしくは空データがバッファの末尾に達する時刻が保持されており、
上記再送要求部は、上記バッファの先頭から予め設定された数のパケット受信待ち領域外に空のデータがあるかを調べ、該領域外に空のデータがあるとき、該空のデータがある領域に対応した送出予定時刻保持部に保持された時刻と現在時刻を比較して、その差が再送要求可能な所定時間以上であるとき、上記空の領域に格納されるべきパケットの再送要求を行うことを特徴とするリアルタイム・ストリーミングデータの受信装置。
【請求項２】
上記バッファの各領域に対応させて再送要求時刻保持部が設けられ、該再送要求時刻保持部には、上記再送要求部がパケットの再送要求したときの再送要求時刻が保持され、
上記再送要求部は、現在時刻と上記再送要求時刻との差が、上記再送要求が可能な所定時間以上のとき、再度パケットの再送要求を行う
ことを特徴とする請求項１記載のリアルタイム・ストリーミングデータの受信装置。
【請求項３】
上記再送要求部は、上記再送要求可能な所定時間を、パケットの送受信時間から決定する
ことを特徴とする請求項１または請求項２記載のリアルタイム・ストリーミングデータの受信装置。
【請求項４】
上記バッファの容量をユーザが設定する手段を備えた
ことを特徴とする請求項１，２または請求項３記載のリアルタイム・ストリーミングデータの受信装置。
【請求項５】
ネットワークを介して接続されたサーバから送信されるストリーミング  データをリアルタイムで受信して、該パケットが送信される時間間隔で順次シフトしながら、受信したパケット、もしくは、パケットが欠落したときには空のデータを、パケットに付された番号順に先頭から順に、複数のパケットを格納する領域を備えたバッファに格納し、バッファの末尾にパケットが達したとき、該パケットをストリーミングデータ処理部に転送するプログラムであって、
上記プログラムは、各領域に格納されたパケットもしくは空データがバッファの末尾に達する時刻を算出し、該時刻を上記バッファの各領域に対応させて設けられた送出予定時刻保持部に保持させる処理と、
上記バッファの先頭から予め設定された数のパケット受信待ち領域外に空のデータがあるかを調べ、該領域に空のデータがあるとき、該領域の上記送出予定時刻保持部に保持された時刻と現在時刻を比較して、その差が、予め定められた再送要求可能な所定時間以上であるとき、上記空の領域に格納されるべきパケットの再送要求を行う処理をコンピュータに実行させることを特徴とするリアルタイム・ストリーミングデータの受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを使って動画や音楽などのストリーミングデータをリアルタイムで受信するリアルタイム・ストリーミングデータ受信装置に関し、例えば、インターネットテレビなどに利用することができるリアルタイム・ストリーミングデータ受信装置に関するものである。
【背景技術】
【０００２】
動画や音楽などのストリーミングデータをリアルタイムで受信しながら再生するシステムが種々提案されている。
例えば、特許文献１には、リアルタイム信号を受信する受信部とパケット解析部と、誤り訂正部と、通信路評価部と、データを保管するバッファと、複数のアンテナと、アンテナを切り換え部と、再送要求制御部とを備え、通信路評価結果に基づいて、アンテナの切り替えを指示するとともに、再送要求制御部により再送が要求されているパケット又はブロックが選択されたとき、再送要求パケットを生成して、送信装置に送信する無線通信装置が開示されている。
上記特許文献１に記載のものでは、伝送過程により信号が劣化しても再送によりリアルタイム伝送が途切れることを極力押さえ、さらに、再送可能な状態の場合には、アンテナを切り換えて、その時点で最適なアンテナが選択するようにしている。なお、特許文献１に記載のものは、既にリアルタイムの伝送に途切れが生じてしまったパケット内のブロック、パケットの情報は破棄して再送要求を行なわない。
また、特許文献２には、連続メディアストリームを受信した後、複数のバッファからなる循環バッファを用いて伝送速度と再生速度の同期調整を行いながら再生するようにした連続メディア・ストリーム再生システムが記載されている。
上記特許文献２に記載のものでは、再生速度を調整してバッファのデータ量を操作していることから、伝送路の不安定に起因する再生メディアの品質の劣化を低減することができる。
【特許文献１】特開２００２−２２３２４８号公報
【特許文献２】特開２００２−３３０１８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＴＣＰ（ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏｌＰｒｏｔｏｃｏｌ）のような、クライアントがパケットを正常に受け取れることを保障しているプロトコルでは、データを正常に受信した場合にクライアントがサーバにそれを知らせることで、データの送信を行っている。
一方、ＵＤＰ（ＵｓｅｒＤａｔａｇｒａｍＰｒｏｔｏｃｏｌ）など、パケットを保障しないプロトコルでの転送では、データ欠損をカバーするために、アプリケーションが独自にバッファを用意し、再送要求を生成して欠損したパケットを再受信している。
しかし、リアルタイム伝送ではバッファにデータを蓄積するのに時間を要し、また、ネットワーク環境が悪い場合は、再送要求が頻発してしまう。
また、ＴＣＰを用いた転送では、パケットを正常に受信できたことをサーバに通知することから、ネットワークの負荷が、ＵＤＰと比し増大する。また、ネットワーク環境が不安定な場合は、再送要求が頻発してしまい、リアルタイム性が損なわれる。              また、一般にバッファを用いたストリーミングデータの転送では、バッファにデータがたまるまでストリーミングデータの再生が行われず、ユーザが再生を待たなければならない。
【０００４】
リアルタイム・ストリーミングデータの伝送において、伝送途切れが生じると、コマ落ちや音切れなどが発生するので、データの欠落はできるだけ少なくするのが望ましい。しかし、再送要求が頻発すると上記のようにネットワーク負荷が増大し、リアルタイム性が損なわれる。
したがって、送信側と受信側の双方にバッファを持たせたストリーミングデータ伝送においては、受信側のバッファの状態に応じて再送要求を制御し、データの欠損をできるだけ少なくしながらネットワークの負荷を抑えるのが望ましい。
本発明は上記事情に鑑みなされたものであって、本発明の目的は、バッファを有するリアルタイム・ストリーミングデータの受信装置において、受信側のバッファの状態に応じて、再送要求を制御することで、ネットワークへの負荷の増大を抑えながら、データ欠損と、それによるコマ落ちや、音切れ等の現象を防止することができるようにすることである。
【課題を解決するための手段】
【０００５】
本発明においては、上記課題を次のように解決する。
（１）サーバからネットワークを介して送信されるストリーミング  データをリアルタイムで受信するストリーミングデータ受信装置において、この受信装置に、ストリーミングデータの送受信部と、該送受信部で受信したパケットを格納するバッファと、パケットに欠落が生じたとき上記サーバに対して再送要求をする再送要求部とを設ける。
上記バッファは、受信したパケットを格納する複数の領域を備え、パケットが送信される予定時間間隔で順次シフトしながら、受信したパケット、もしくは、パケットが欠落したときには空のデータを、パケットに付された番号順にバッファの先頭から順に格納し、バッファの末尾にパケットが達したとき、該パケットをストリーミングデータ処理部に転送する。
また、上記バッファの各領域に対応させてパケットをストリーミングデータ処理部に送出する時刻を保持する送出予定時刻保持部を設け、該送出予定時刻保持部に、バッファの各領域に格納されたパケットもしくは空データがバッファの末尾に達する時刻が保持される。
そして、上記再送要求部は、上記バッファの先頭から予め設定された数のパケット受信待ち領域外に空のデータがあるかを調べ、該領域外に空のデータがあるとき、該空のデータがある領域に対応した送出時刻保持部に保持された時刻と現在時刻を比較して、その差が再送要求可能な所定時間以上であるとき、上記空の領域に格納されるべきパケットの再送要求を行う。
（２）上記バッファの各領域に対応させて再送要求時刻保持部を設け、該再送要求時刻保持部に、上記再送要求部がパケットの再送要求したときの再送要求時刻を保持させる。
上記再送要求部は、現在時刻と上記再送要求時刻との差が、上記再送要求が可能な所定時間以上のとき、再度パケットの再送要求を行う。
（３）上記（１）（２）において、再送要求部は上記再送要求可能な所定時間を、パケットの送受信時間から決定する。
（４）上記（１）（２）（３）において、上記バッファの容量をユーザが設定する手段を設ける。
【発明の効果】
【０００６】
本発明によれば、様々なストリーミングデータのリアルタイム転送において、データの欠落を最小限にすることができる。
特に、以下の効果を得ることができる。
（１）上記バッファの先頭から予め設定された数のパケット受信待ち領域外に空のデータがあるかを調べ、該領域外に空のデータがあるとき、該空のデータがある領域に対応した送出予定時刻保持部、再送要求時刻保持部に保持された時刻と現在時刻を比較して、その差が再送要求可能な所定時間以上であるとき、上記空の領域に格納されるべきパケットの再送要求を行うようにしたので、「パケットが前後して到着する」「再送要求を送信しても、データが使われるまでにパケットを補完できる見込みがない」といった可能性を加味して再送要求を行うことができる。このため、再送要求を減少させることができ、ネットワーク帯域の使用量増加を抑えることができる。
（２）ネットワークの負荷は時間によって変化する。また、再送要求が発生することで、ネットワークの帯域をさらに圧迫するという現象も起こる。
本発明では、再送要求パケットの受信を利用してネットワークの伝送遅延時間（パケットの送受信時間）を得て、上記再送要求可能な所定時間を上記伝送遅延時間で決定し、それを利用して再送要求を制御するようにしているので、ネットワーク負荷が変化する場合においても、効率の良い再送要求の発信を行うことができる。
（３）バッファを有するリアルタイム・ストリーミングデータ転送においては、原理的にバッファ容量を増やすにつれて、コマ落ちの減少と遅延時間の増加が起こる。
本発明では、バッファの容量をユーザが設定する手段を設けたので、ユーザが自分の環境等に応じて、データの欠落とバッファ使用時の待ち時間を調整することができる。
例えば、テレビ画像のストリーミング配信において、どの程度のコマ落ち／遅延時間を許容できるかには個人差があるが、本発明によれば、コマ落ちと遅延時間の調整を、ユーザが画像を確認しながら行うことができ、ユーザに応じて調整することができる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明の実施例のストリーミングデータ転送装置の構成を示す図である。
本実施例のストリーミングデータ転送装置は、同図に示すように、ネットワーク３００に接続されたサーバ１００と、サーバ１００から送信されるストリーミング・データを受信して再生するクライアント２００から構成される。
サーバ１００から発信されるストリーミングデータ１０１は、サーバ１００のパケット送受信部１０５とバッファ１０２に送られ、パケット送受信部１０５から、ネットワーク３００を介して、クライアント２００のパケット送受信部２０５に送られる。
このストリーミングデータを受信したクライアント２００は、いったんバッファ２０２にストリーミングデータを送る。
データを受け取ったバッファ２０２は、ストリーミングデータ処理部２０１（ストリーミングデータを処理する適当な処理アプリケーション）にデータを送出する。
上記バッファ２０２は、受信したデータ（パケット）を格納する複数の領域（以下パケット領域という）を備え、サーバ１００からパケットが送信される時間間隔で順次シフトしながら、受信したパケットを、パケットに付された番号順にバッファの先頭から順に、各パケット領域に格納する。また、上記送信時間隔でパケットが受信できず、パケットが欠落したときには、そのパケット領域は空となる（ここでは、この状態を空データが格納されるという）。
そして、受信したパケットがバッファ２０２の末尾のパケット領域に達したとき、該パケット領域に格納されたパケットが（該領域が空の場合には、空のまま）、ストリーミングデータ処理部２０１に転送され再生される。
【０００８】
また、上記バッファ２０２には、後述するようにバッファ２０２の各パケット領域に対応させて時刻を保持する送出予定時刻保持部と、再送要求時刻保持部が設けられる。そして、時計２０９により計時される時刻情報がバッファ２０２に与えられ、上記送出予定時刻保持部には、後述するように、バッファ２０２の各パケット領域に格納されたパケットもしくは空データがバッファ２０２の末尾に達する時刻が保持される。ここで上記「送出予定時刻」とは、ストリーミングデータ処理部２０１へデータを送出する時刻を指す。
また、再送要求時刻保持部には、後述するように再送要求部２０４がパケットの再送要求したときの再送要求時刻が保持される。
上記再送要求部２０４は、現在時刻と上記送出予定時刻、再送要求時刻との差に応じてパケットの再送要求を行う。
【０００９】
ユーザは、ユーザ入力２０８を介して、バッファ容量制御部２０３によりバッファ２０２の容量を変更することができる。バッファ２０２の容量を大きくすると、後述するようにデータの欠落を補完する可能性が増えるが、遅延時間が長くなる。ユーザは、データ欠落によるコマ落ち、音切れなどを考慮して、上記バッファ容量を調整する。ここで、上記サーバ１００のバッファ１０２のサイズは、クライアント２００のバッファ２０２の最大サイズである。
欠落判断部２０６が、ストリーミングデータの欠落を判断すると、再送要求部２０４は、上述したように上記バッファ２０２中のデータの状態に応じて、サーバ１００に対して、欠落データの再送信を要求する。要求を受けたサーバ１００では、再送要求受信部１０４がバッファ１０２に対して欠落データの再送信を実行させる。
【００１０】
図２は、図１に示したバッファ２０２の構成を示す図である。以下、図１、図２により本実施例の再送要求部２０４による再送要求処理について説明する。
まず、図１で示したサーバ１００側のパケット送受信部１０５とクライアント側のパケット送受信部２０５は、ストリーミングデータの送信に先立って、パケットの送信時間間隔をサーバ１００からクライアント２００に通知しておく。
サーバ１００から送信される各パケットには、連続なシーケンス番号が含まれる。シーケンス番号は、パケットごとに連番が割り当てられ、値が最大になった場合は、次のパケットで再び最初の番号に戻る（例えば、シーケンス番号は、「０，１，２……１０４８７５，０，１」のように連番が割り当てられる）。
クライアント２００側は受信したパケットをバッファ２０２に格納する。バッファ２０２は、図２に示すように、受信したパケットを保持する複数のパケット領域ｂ１〜ｂｎを有し、各領域ｂ１〜ｂｎに受信したパケットを順次格納する。
上記各パケット領域に格納されたパケットは、上記サーバ１００から通知された送信時間間隔で次の領域に順次シフトされ、バッファ２０２の末尾の領域ｂｎに達したパケットが、ストリーミングデータ処理部２０１に送出される。
【００１１】
受信したパケットは、パケットに付されたシーケンス番号順に上記バッファ２０２の各パケット領域に格納される。しかし、ネットワーク３００の状態によっては、上記送信予定間隔で受信されず欠落したり、パケットを受信する順番が逆になったりする。パケットが上記送信予定間隔で受信されない場合、そのパケットが格納されるべきパケット領域は同図の４０３に示すように空になる。そして、例えば、上記空になったパケット領域に格納されるべきパケットが、遅れて受信された場合には、そのパケットが格納されるべき空のパケット領域にそのパケットが格納される。また、そのパケットが欠落した場合、再送要求部２０４は、空のパケット領域がバッファ２０２中の再送要求可能な範囲内の領域にあるとき、再送要求をする。
バッファ２０２の容量は、前記したようにバッファ容量制御部２０８によって、任意に変えることができる。
【００１２】
また、バッファ２０２の各パケット領域に対応して、前記したように送出予定時刻、再送要求時刻を保持する送出予定時刻保持部２０２ａと再送要求時刻保持部２０２ｂが設けられている。
最初にパケットを受信した場合、送出予定時刻保持部２０２ａには、現在の時刻とバッファのサイズから計算される待ち時間とを足した値が設定される。なお、この待ち時間とは、受信したパケットがバッファ２０２のパケット領域ｂ１に格納されてから、該データがバッファ２０２の末尾のパケット領域ｂｎに達し、ストリーミングデータ処理部２０１へ送出されるまでの時間である。以降は、［現在時刻］＋［シーケンス番号と送信時間間隔から計算される時間］＋［待ち時間］で計算した値が設定される。
すなわち、受信されバッファ２０２のパケット領域に保持された各パケットは、送出予定時刻保持部２０２ａに保持された時刻に、ストリーミングデータ処理部２０１に送出されることになる。
【００１３】
また、図２に示すパケット４０２が受信された時のように、シーケンス番号が連番にならない場合、パケット４０２の送出予定時刻を設定する際に、空パケット４０３の送出予定時刻を、送出予定時刻保持部２０２ａに設定する。
再送要求部２０４は、図２に示す上記バッファ２０２の先頭から予め設定された数の「パケット受信待ち領域」外に空のデータがあるかを調べ、該領域外に空のデータがあるとき、該空のデータがあるパケット領域に対応した上記送出予定時刻保持部に保持された時刻と現在時刻を比較する。そして、その差が再送要求可能な所定時間以上であるとき（図２の「再送要求可能領域」にあるとき）、上記空のパケット領域に格納されるべきパケットの再送要求を行う。
また、上記再送要求した時刻は、再送要求時刻保持部２０２ｂに保持され、再送要求部２０４は、現在時刻と上記再送要求時刻保持部２０２ｂに保持された再送要求時刻との差が、上記再送要求が可能な所定時間以上のとき、再度パケットの再送要求を行う。
【００１４】
図３は、バッファの各パケット格納領域ｂ１〜ｂｎに対して欠落判断部２０６が行う処理のフローであり、欠落判断部２０６は、バッファ２０２の各パケット領域について、以下の処理を行う。
（１）現在時刻が、注目しているパケット領域の送出予定時刻であるかを調べる（ステップＳ１）。現在時刻が送出予定時刻の場合は、パケットをストリーミングデータとして、ストリーミングデータ処理部２０１に送出する（ステップＳ２）。
ここで、上記パケット領域にパケットが保存されていない（パケットが空）の状態には、空パケットとしてストリーミングデータを送信する。その際は、欠落のあるストリーミングデータとなる。
（２）現在時刻が、上記注目しているパケット領域の送出予定時刻でない場合には、該パケット領域にパケットが格納されているかを調べ（ステップＳ３）、パケットが格納されている場合は何もしない。そして、次のパケット領域について、上記ステップＳ１からの処理を行う。
【００１５】
（３）注目しているパケット領域が空の場合、パケットの到達が前後しているかを確認する。この確認として、注目しているパケット領域よりも送出予定時刻が後に設定されているパケットを何個受信しているかを見て、Ｘ個以上受信しているかを確認する（ステップＳ４）。すなわち、前記図２に示したように、注目しているパケット領域より送出予定時刻が後に設定されているパケット領域の数がＸ個以上である（注目しているパケット領域が「パケット受信待ち領域」外にある）かを確認する。
そして、一定以上（Ｘ個以上）のパケットが受信されている場合は、当該パケットが送信途中で失われた可能性があると判断する。
ここで、Ｘ個は任意の数に設定可能であり、パケットの受信間隔のばらつきに応じて定める。パケット受信間隔ばらつきが大きいほどＸを大きくするのが望ましい。
また、Ｘ個以上のパケットが受信されていなければ、当該パケット領域に格納されるべきパケットがまだ受信される可能性があるので、何もせずにそのパケット領域の処理を終了し、次のパケット領域について、上記ステップＳ１からの処理を行う。
【００１６】
（４）一定以上（Ｘ個以上）のパケットが受信されている場合は、次に、送出予定時刻と現在時刻の差をとり、あと何秒で注目しているパケットをストリーミングデータとしてストリーミングデータ処理部２０１へ送出しなければならないかを見る。すなわち、［送信予定時刻］−［現在時刻］がＹ秒（前記図２に示した「所定時間」）以上であるかを調べる（ステップＳ５）。
この時間が短いと、仮にパケットの再送信を要求したとしても、そのパケットを受け取るまえに、送出時刻が果てしまうことになるため、再送要求処理を行わない。
つまり、［送信予定時刻］−［現在時刻］が短いと、再送要求したパケットを受信する前に、注目している空のパケット領域がバッファ２０２の末尾の領域ｂｎに達してしまい、再送要求したパケットを受信しても利用されないためである。
ここで、上記Ｙ秒にあたる時間は任意に設定可能であるが、再送要求から再送までの時間が長いときは、Ｙの値を大きくするのが望ましい。なお、後述するように、再送要求から再送までの時間を記録して、Ｙ秒をこの時間から自動的に求めるようにしてもよい。
［送信予定時刻］−［現在時刻］がＹ秒以上でない場合には、前記したように、何もせずにそのパケット領域の処理を終了し、次のパケット領域について、上記ステップＳ１からの処理を行う。
【００１７】
（５）最後に、既に再送信要求が行われているパケット領域かどうかを調べる。また、再送信要求がすでになされている場合は、再送信要求時刻と現在時刻の差をとり、Ｙ秒以上であるかを調べる（ステップＳ６）。
既に再送信要求が行われているパケット領域であって、再送信要求時刻と現在時刻の差がＹ秒以上でなければ、前記と同様、何もせずにそのパケット領域の処理を終了し、次のパケット領域について、上記ステップＳ１からの処理を行う。
一方、再送要求時刻がない場合には、再送信要求をする。また、再送信要求時刻と現在時刻の差がＹ秒以上の場合には、再送要求して再送されたパケットが失われたと判断し、再度、再送要求を行う。
【００１８】
再送要求部は、以下の処理を行う。
（１）再送要求を行うとき、再送要求部２０４はまず、バッファ２０２内の当該パケット領域の再送要求時刻保持部２０２ｂに現在時刻を書込む。
（２）再送要求を、パケット送受信部２０５を通してネットワーク３００に送信する。
（３）再送要求を受信したサーバ１００側のパケット送受信部１０５は、受信したパケットを再送要求と判断し、再送要求受信部１０４に再送要求を送る。
（４）再送要求受信部１０４は、再送要求されたパケットをバッファ１０２に通知する。（５）バッファ１０２はパケット送受信部１０５を通して、再送要求されたパケットをネットワーク３００に送信する。
（６）クライアント２００側では、通常の手順でパケットを受信し、バッファ２０２の対応するパケット領域にパケットを格納する。
【００１９】
次に、前記「パケット受信待ち領域」を定めるパラメータであるＸ個、および前記「再送要求可能時間」を定めるパラメータであるＹ秒の設定について説明する。
再送要求部２０４は、再送要求を行っていたパケットを受信した時刻と再送要求時刻の差をとり、記録しておく。この時間は、ネットワーク３００を通してパケットが往復するのに要した時間であり、これに適当なマージンを加えた時間を、前述のＹ秒として用いる事ができる。また、パケットが往復するに要した時間について、統計をとることで、時間のバラツキを求め、バラツキ／平均時間を上記Ｘとして用いることができる。
図４に上記パケットが往復するに要した時間を求める処理フローを示す。
任意の初期パラメータを予め設定し、再送要求をし、再送要求時刻を記録しておく（ステップＳ１−Ｓ３）。再送要求をしたパケットを受信したら、そのパケットを受信した時刻を記録する（ステップＳ４，Ｓ５）。そして、パケット受信時刻と再送要求時刻の差を求め、これを往復時間として記録する（ステップＳ６）。
【００２０】
また、上記パケットが往復に要する時間を複数記録し、平均／バラツキをとっていくことで、パラメータの極端な変化を避けることができる。
図５に、上記のようにパケットが往復に要する時間を複数記録して、ＸとＹのパラメータを決定する処理を示す。
同図に示すように、図４の処理を行って複数のパケット往復時間を求め、平均を計算する（例えば２２．１ｍｓ）。そして、この平均にマージン（例えば＋５ｍｓ）を追加してＹ（例えば２７．１ｍｓ）を求める。
また、複数のパケット往復時間の標準偏差を計算し（例えば１９．５ｍｓ）、上記Ｙを決定する際に求めた平均のｘ倍である［平均×ｘ］＞［標準偏差］となるｘを計算し、マージン（例えば＋１）を追加し、Ｘを決定する。
上記のようにしてＸ，Ｙを決定することで、回線状況が変化する環境においても、再送要求に関する最適なパラメータを維持する事ができる。
【００２１】
ところで、本発明において主要な点は、リアルタイム伝送されるストリーミングデータにおいて、再生されるまでに一定の遅延を加え、その時間差を利用して、データの欠落を検出した時に、再送要求を行う点にある。
すなわち、バッファ２０２の容量を大きくすれば、欠落が補完できる可能性が上がる反面、遅延時間が長くなる。
また、コマ落ちに対する許容範囲はユーザごとに異なるため、ユーザにとって最適なバッファ容量はユーザごとに違うことになる。そこで、欠落が補完できなかった場合のコマ落ちをユーザが視聴し、ユーザがコマ落ちを減らしたいと考えたときにバッファ２０２のパケット領域を増加する操作を行うことで、コマ落ちを減らす仕組みとし、欠落の補完と遅延時間の関係をユーザの任意のバランスにできるようにする。
すなわち、図６に示すように、ユーザが再生されたストリーミングデータによる映像（又は音）を視聴し、コマ落ちを認識する。そして、コマ落ちが多いと認識した場合には、前記バッファ容量制御部２０３により、バッファ容量を増加させる。
その際、前記Ｘの大きさをバッファの大きさに合わせて、変えてもよい。Ｘを大きくすれば、パケットの転送にバラツキがあってもこのバラツキを吸収することができる。
【００２２】
図７は、本発明を、ＴＶ受信機器で受信したコンテンツをネットワークを通じてパソコンで再生するシステムに適用した場合の構成例を示す図である。
同図に示すように、テレビの映像、音声などをＴＶ受信機器１０で受信し、ストリーミングデータ生成部１１でストリーミングデータを生成する。生成されたストリーミングデータは、前記図１に示した構成のストリーミングデータ送信部１２から無線ＬＡＮなどのネットワーク３０を介してパソコン２０に送信される。
パソコン２０では、このストリーミングデータを前記図１に示した構成のストリーミングデータ受信部２１で受信する。そして、この受信部２１で受信したストリーミングデータをストリーミングデータを処理するアプリケーション２２に送り、映像、音声などを再生する。
図６に示すように、本発明を、ＴＶ受信機器１０で受信したコンテンツをネットワークを通じてパソコン２０で再生するシステムに適用することで、視聴時の「コマ落ち」や「音とび」を軽減することができる。
また、前記したように視聴者がバッファの容量を増減することで、欠落の補完と遅延時間の関係を視聴者が調整することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例のストリーミングデータ転送装置の構成を示す図である。
【図２】本発明の実施例のバッファの構成を示す図である。
【図３】欠落判断部が行う処理フローである。
【図４】パケットが往復するに要した時間を求める処理フローである。
【図５】パケットが往復に要する時間からＸとＹのパラメータを決定する処理を示す図である。
【図６】ユーザによるバッファ容量の調整を説明する図である。
【図７】本発明をＴＶ受信機器で受信したコンテンツをネットワークを通じてパソコンで再生するシステムに適用した場合の構成例を示す図である。
【符号の説明】
【００２４】
１００    サーバ
３００    ネットワーク
１０１    ストリーミングデータ生成部
１０２    バッファ
１０４    再送要求受信部
１０５    パケット送受信部
２００    クライアント
２０１    ストリーミングデータ処理部
２０２    バッファ
２０３    バッファ容量制御部
２０４    再送要求部
２０５    パケット送受信部
２０６    欠落判断部
２０８    ユーザ入力
２０９    時計
【図１】
2005348015.tif 000003
【図２】
2005348015.tif 000004
【図３】
2005348015.tif 000005
【図４】
2005348015.tif 000006
【図５】
2005348015.tif 000007
【図６】
2005348015.tif 000008
【図７】
2005348015.tif 000009