(57)【要約】【課題】ストリーミングデータを伝送可能な最大のデータ量で伝送する。【解決手段】  ネットワーク測定部１０６の指示の基に、通信制御部１０４は、通信部３９を制御して、計測用パケットを受信装置にバースト送信させる。受信装置は、バーストに送信された計測用パケットを基に、バーストエラーが発生しているか否かを判定し、判定した結果を示す通知をサーバ１２に送信する。ネットワーク測定部１０６は、受信装置から受信した通知が、バーストエラーが発生していることを示している場合、カウンタ１０７の値および計測用パケットのデータ量を基に、最大バイト数を算出する。エンコーダ１０１は、算出した最大バイト数を基に、ストリーミングデータを符号化する。これにより、ストリーミングデータを伝送可能な最大のデータ量で伝送することができる。本発明は、ストリーミング配信システムに適用できる。【選択図】図３
2005269236.tif 000002
【特許請求の範囲】
【請求項１】
通信網を介して、パケットを送信する送信装置、および前記送信装置から送信されてきた前記パケットを受信する受信装置から構成される通信システムにおいて、
前記送信装置は、
予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するように前記パケットの前記受信装置への送信を制御する送信制御手段と、
前記受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信される前記パケットに格納されるストリーミングデータのデータ量を算出する算出手段と、
前記ストリーミングデータにおける所定の単位が、算出された前記データ量となるように、前記ストリーミングデータを符号化する符号化手段と
を含み、
前記送信制御手段は、さらに、符号化された前記ストリーミングデータを格納する前記パケットを、前記ストリーミングデータにおける前記単位毎に、連続で送信するように、前記パケットの前記受信装置への送信を制御し、
前記受信装置は、
前記通信網を介して、前記送信装置から送信されてくる前記パケットを受信する受信手段と、
前記パケットに前記バーストエラーが発生したか否かを判定する判定手段と、
判定の結果を基に、前記バーストエラーが発生したか否かを示す前記通知を前記送信装置に送信する送信手段と
を含むことを特徴とする通信システム。
【請求項２】
通信網を介して、パケットを受信装置に送信する送信装置において、
予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するように前記パケットの前記受信装置への送信を制御する送信制御手段と、
前記受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信される前記パケットに格納されるストリーミングデータのデータ量を算出する算出手段と、
前記ストリーミングデータにおける所定の単位が、算出された前記データ量となるように、前記ストリーミングデータを符号化する符号化手段と
を含み、
前記送信制御手段は、さらに、符号化された前記ストリーミングデータを格納する前記パケットを、前記ストリーミングデータにおける前記単位毎に、連続で送信するように、前記パケットの前記受信装置への送信を制御する
ことを特徴とする送信装置。
【請求項３】
前記算出手段は、前記バーストエラーの発生が通知された場合、連続して受信された前記パケットであって、前記バーストエラーが発生することなく、前記受信装置において受信される前記パケットの数の最大値、および前記予め定めたデータ量を基に、前記パケットに格納された前記ストリーミングデータの前記データ量を算出する
ことを特徴とする請求項２に記載の送信装置。
【請求項４】
前記通信網を介して、第１の通信方式により、前記パケットに格納され、前記受信装置から送信されてくる前記通知の受信を制御する受信制御手段をさらに含み、
前記送信制御手段は、第２の通信方式による、前記パケットの前記受信装置への送信を制御する
ことを特徴とする請求項２に記載の送信装置。
【請求項５】
前記送信制御手段は、連続で送信する前記パケットの数、および個々の前記パケットの送信の順序を示す番号をヘッダ情報として含む前記パケットの前記受信装置への送信を制御する
ことを特徴とする請求項２に記載の送信装置。
【請求項６】
通信網を介して、パケットを受信装置に送信する送信装置の送信方法において、
予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するように前記パケットの前記受信装置への送信を制御する送信制御ステップと、
前記受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信される前記パケットに格納されるストリーミングデータのデータ量を算出する算出ステップと、
前記ストリーミングデータにおける所定の単位が算出された前記データ量となるように、前記ストリーミングデータを符号化する符号化ステップと
を含み、
前記送信制御ステップにおいては、さらに、符号化された前記ストリーミングデータを格納する前記パケットを、前記ストリーミングデータにおける前記単位毎に、連続で送信するように、前記パケットの前記受信装置への送信が制御される
ことを特徴とする送信方法。
【請求項７】
通信網を介して、パケットを受信装置に送信する処理を、コンピュータに行わせるプログラムにおいて、
予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するように前記パケットの前記受信装置への送信を制御する送信制御ステップと、
前記受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信される前記パケットに格納されるストリーミングデータのデータ量を算出する算出ステップと、
前記ストリーミングデータにおける所定の単位が算出された前記データ量となるように、前記ストリーミングデータを符号化する符号化ステップと
を含み、
前記送信制御ステップにおいては、さらに、符号化された前記ストリーミングデータを格納する前記パケットを、前記ストリーミングデータにおける前記単位毎に、連続で送信するように、前記パケットの前記受信装置への送信が制御される
ことを特徴とするプログラム。
【請求項８】
通信網を介して、送信装置から送信されてきたパケットを受信する受信装置において、
前記通信網を介して、前記送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納された前記パケットを受信する受信手段と、
前記パケットにバーストエラーが発生したか否かを判定する判定手段と、
判定の結果を基に、前記バーストエラーが発生したか否かを示す通知を前記送信装置に送信する送信手段と
を含むことを特徴とする受信装置。
【請求項９】
前記判定手段は、前記通信網を介して、前記送信装置から、数を順次増加させながら連続して送信されてくる前記パケットであって、受信した前記パケットおよびその次に受信した前記パケットにおいて、ヘッダ情報に含まれる前記パケットの送信の順序を示す番号の差が、２以上の予め定めた値以上であるか否かを基に、前記パケットにバーストエラーが発生したか否かを判定する
ことを特徴とする請求項８に記載の受信装置。
【請求項１０】
前記判定手段は、前記パケットを予め定めた時間内に受信できなかった場合、前記通信網を介して、前記送信装置から、数を順次増加させながら連続して送信されてくる前記パケットのヘッダ情報に含まれている、前記送信装置が連続で送信した前記パケットの数と最後に受信した前記パケットの送信の順序を示す番号との差が、２以上の予め定めた値以上であるか否かを基に、前記パケットにバーストエラーが発生したか否かを判定する
ことを特徴とする請求項８に記載の受信装置。
【請求項１１】
前記受信手段は、第１の通信方式により、前記送信装置から送信されてくる前記パケットを受信し、
前記送信手段は、第２の通信方式により、パケットに格納して前記通知を前記送信装置に送信する
ことを特徴とする請求項８に記載の受信装置。
【請求項１２】
通信網を介して、送信装置から送信されてきたパケットを受信する受信装置の受信方法において、
前記通信網を介して、前記送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納された前記パケットの受信を制御する受信制御ステップと、
前記パケットにバーストエラーが発生したか否かを判定する判定ステップと、
判定の結果を基に、前記バーストエラーが発生したか否かを示す通知の前記送信装置への送信を制御する送信制御ステップと
を含むことを特徴とする受信方法。
【請求項１３】
通信網を介して、送信装置から送信されてきたパケットを受信する処理を、コンピュータに行わせるプログラムにおいて、
前記通信網を介して、前記送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納された前記パケットの受信を制御する受信制御ステップと、
前記パケットにバーストエラーが発生したか否かを判定する判定ステップと、
判定の結果を基に、前記バーストエラーが発生したか否かを示す通知の前記送信装置への送信を制御する送信制御ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システム、送信装置および方法、受信装置および方法、並びにプログラムに関し、特に、ストリーミングデータを送信または受信する通信システム、送信装置および方法、受信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
昨今、インターネットなど、種々の通信媒体を介して、画像データまたは音声データを伝送して提供するサービスが一般に行われている。特に、近年、ダウンロード型の伝送方式のサービスに加えて、ストリーム型の伝送方式のサービスがより多く提供されるようになってきた。
【０００３】
ダウンロード型の伝送方式のサービスにおいては、受信装置が、送信装置から送信された画像データまたは音声データを格納するファイルを受信し、受信したファイルを自分の記憶媒体に記録する。受信装置は、ファイルの記録が完了した後、記録したファイルを基に、画像または音声を再生する。ダウンロード型の伝送方式のサービスにおいては、ファイルの記録が完了するまでは、再生することができないので、ダウンロード型の伝送方式のサービスは、長時間の再生またはリアルタイムの再生には適さない。
【０００４】
一方、ストリーム型の伝送方式のサービスにおいては、受信装置が、送信装置から送信されてくるデータを受信するとともに、これに平行して、受信されたデータを基に画像または音声を再生する。ストリーム型の伝送方式は、インターネット電話、遠隔テレビ会議、またはビデオオンデマンドなどのインターネットサービスに利用されている。
【０００５】
ストリーミング型の伝送方式において、送信装置から送信されてくるデータを、一般に、ストリーミングデータと称する。
【０００６】
より具体的な例として、ストリーミング型の伝送方式は、画像データにMPEG（Moving Picture Experts Group）符号化処理を適用することにより生成されるMPEGストリームを格納する、IP（Internet Protocol）パケットをインターネットを介して伝送するシステムで使用される。このシステムにおいて、受信装置である、PC（Personal Computer）、PDA（Personal Digital Assistance）、または携帯電話機は、IPパケットを受信し、画像を再生する。
【０００７】
ストリーム型の伝送方式は、ビデオオンデマンド若しくはライブ映像のストリーミング配信、ビデオ会議、またはテレビ電話などのリアルタイム通信に適している。
【０００８】
このようなストリーム型の伝送方式の技術の１つとして、IETF RFC（Internet Engineering Task Force Request For Comments）1889で規定されているプロトコルであるRTP（Real time Transport Protocol）がある。
【０００９】
RTPに基づくデータ伝送においては、生成された時刻を示すタイムスタンプがパケットに付加され、タイムスタンプの参照により送信側と受信側の時間的関係が把握されるので、受信側において、パケット伝送の遅延ゆらぎ（ジッター）などの影響が排除され、同期した再生が可能になる。
【００１０】
しかし、RTPにおいて、実時間のデータの伝送は保証されない。すなわち、パケット配信の優先度や設定、管理などは、RTPによって提供されるトランスポートサービスの範疇ではないため、他の方式のパケットと同様、ネットワーク上での遅延やパケットロスが生じる可能性がある。
【００１１】
遅延やパケットロスが生じても、受信側は、再生時刻までに受信されたパケットだけを利用してデータを再生することができる。すなわち、受信装置は、データに多少の損失や誤りが発生しても、品質を落として再生するか、またはデータの損失や誤りを訂正して再生する。
【００１２】
この場合、再生に間に合わず遅延して配信されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。つまり、高品質なデータ配信処理を行おうとしても、パケットロスやエラーが発生したときは、受信側の再生の品質は保証されない。
【００１３】
このようなRTPに従ったデータ伝送における問題を解決する案として、動的レート制御を用いることが考えられる。動的レート制御は、パケットロスが発生した場合、パケットの伝送レートを調整する（伝送レートを下げる）ことで、パケットロスが発生しないように制御する方式である。
【００１４】
また、パケット生成部が、同一時刻に表示または出力される、符号化したメディアデータを分割して、パケットを生成し、受信状態情報取得部が、パケットの受信状態に関する受信状態情報を、対向側から取得し、パケット送信部が、受信状態情報に基づきパケットの送信間隔を調整し、送信レートを可変に設定して、パケットの送信制御を行い、受信状態情報生成部が、パケットを受信し、受信状態情報を生成して、受信状態情報をパケット送信装置へ送信するようにしているものもある（特許文献１参照）。
【００１５】
【特許文献１】特開２００３−１６９０９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、動的レート制御により伝送レートを調整する場合、ネットワークにより許容されるストリーミングの最大の伝送レートがわからないと、ストリーミングの最大の伝送レートを設定することはできない。すなわち、通信網により定まる、最高の品質を得ることができるように、ストリーミング型の伝送方式でデータを伝送することができなかった。
【００１７】
例えば、特開２００３−１６９０９０号公報に開示されているシステムは、伝送レートを調整するものであるが、ネットワークにより許容される伝送レートよりも、低い伝送レートを設定してしまい、所望の品質が得られなかったり、逆に、ネットワークにより許容される伝送レートよりも、高い伝送レートを設定してしまい、パケットロスが生じてしまう可能性がある。
【００１８】
本発明は、このような状況に鑑みてなされたものであり、常に、通信網により定まる、１回のバースト伝送で伝送することができる最大のデータ量を格納したパケットを、バースト伝送することができるようにするものである。
【課題を解決するための手段】
【００１９】
本発明の通信システムは、送信装置が、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御する送信制御手段と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出手段と、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化する符号化手段とを含み、送信制御手段は、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御し、受信装置が、通信網を介して、送信装置から送信されてくるパケットを受信する受信手段と、パケットにバーストエラーが発生したか否かを判定する判定手段と、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する送信手段とを含むことを特徴とする。
【００２０】
本発明の送信装置は、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御する送信制御手段と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出手段と、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化する符号化手段とを含み、送信制御手段は、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御することを特徴とする。
【００２１】
算出手段は、バーストエラーの発生が通知された場合、連続して受信されたパケットであって、バーストエラーが発生することなく、受信装置において受信されるパケットの数の最大値、および予め定めたデータ量を基に、パケットに格納されたストリーミングデータのデータ量を算出することを特徴とする。
【００２２】
通信網を介して、第１の通信方式により、パケットに格納され、受信装置から送信されてくる通知の受信を制御する受信制御手段をさらに含み、送信制御手段は、第２の通信方式による、パケットの受信装置への送信を制御することを特徴とする。
【００２３】
送信制御手段は、連続で送信するパケットの数、および個々のパケットの送信の順序を示す番号をヘッダ情報として含むパケットの受信装置への送信を制御することを特徴とする。
【００２４】
本発明の送信方法は、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御する送信制御ステップと、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出ステップと、ストリーミングデータにおける所定の単位が算出されたデータ量となるように、ストリーミングデータを符号化する符号化ステップとを含み、送信制御ステップにおいては、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信が制御されることを特徴とする。
【００２５】
本発明の第１のプログラムは、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御する送信制御ステップと、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出ステップと、ストリーミングデータにおける所定の単位が算出されたデータ量となるように、ストリーミングデータを符号化する符号化ステップとを含み、送信制御ステップにおいては、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信が制御されることを特徴とする。
【００２６】
本発明の受信装置は、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットを受信する受信手段と、パケットにバーストエラーが発生したか否かを判定する判定手段と、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する送信手段とを含むことを特徴とする。
【００２７】
判定手段は、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくるパケットであって、受信したパケットおよびその次に受信したパケットにおいて、ヘッダ情報に含まれるパケットの送信の順序を示す番号の差が、２以上の予め定めた値以上であるか否かを基に、パケットにバーストエラーが発生したか否かを判定することを特徴とする。
【００２８】
判定手段は、パケットを予め定めた時間内に受信できなかった場合、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくるパケットのヘッダ情報に含まれている、送信装置が連続で送信したパケットの数と最後に受信したパケットの送信の順序を示す番号との差が、２以上の予め定めた値以上であるか否かを基に、パケットにバーストエラーが発生したか否かを判定することを特徴とする。
【００２９】
受信手段は、第１の通信方式により、送信装置から送信されてくるパケットを受信し、送信手段は、第２の通信方式により、パケットに格納して通知を送信装置に送信することを特徴とする。
【００３０】
本発明の受信方法は、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットの受信を制御する受信制御ステップと、パケットにバーストエラーが発生したか否かを判定する判定ステップと、判定の結果を基に、バーストエラーが発生したか否かを示す通知の送信装置への送信を制御する送信制御ステップとを含むことを特徴とする。
【００３１】
本発明の第２のプログラムは、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットの受信を制御する受信制御ステップと、パケットにバーストエラーが発生したか否かを判定する判定ステップと、判定の結果を基に、バーストエラーが発生したか否かを示す通知の送信装置への送信を制御する送信制御ステップとを含むことを特徴とする。
【００３２】
本発明の通信システムにおいては、送信装置が、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御し、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出し、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化し、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御し、受信装置が、通信網を介して、送信装置から送信されてくるパケットを受信し、パケットにバーストエラーが発生したか否かを判定し、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する。
【００３３】
通信網とは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。通信網を介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００３４】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００３５】
通信装置は、独立した装置であっても良いし、通信装置の記録処理を行うブロックであっても良い。また受信装置は、独立した装置であっても良いし、通信装置の記録処理を行うブロックであっても良い。
【００３６】
本発明の送信装置および方法、並びに第１のプログラムにおいては、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御し、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出し、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化し、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御する。
【００３７】
本発明の受信装置および方法、並びに第２のプログラムにおいては、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットを受信し、パケットにバーストエラーが発生したか否かを判定し、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する。
【発明の効果】
【００３８】
第１の本発明によれば、ストリーミング型の伝送方式でデータを伝送をすることができる。また、第１の本発明によれば、常に、通信網により定まる、伝送可能な最大のデータ量を得ることができるように、データを伝送することができる。
【００３９】
第２の本発明によれば、ストリーミング型の伝送方式でデータを送信をすることができる。また、第２の本発明によれば、常に、通信網により定まる、送信可能な最大のデータ量を得ることができるように、データを送信することができる。
【００４０】
第３の本発明によれば、ストリーミング型の伝送方式でデータを受信をすることができる。また、第３の本発明によれば、常に、通信網により定まる、受信可能な最大のデータ量を得ることができるように、データを受信することができる。
【発明を実施するための最良の形態】
【００４１】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応していないものであることを意味するものではない。
【００４２】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００４３】
本発明によれば、通信システムが提供される。この通信システム（例えば、図１の通信システム１）は、送信装置（例えば、図１のサーバ１２）が、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置（例えば、図１のクライアント１４）への送信を制御する送信制御手段（例えば、図３の通信制御部１０４）と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出手段（例えば、図３のネットワーク測定部１０６）と、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化する符号化手段（例えば、図３のエンコーダ１０１）とを含み、送信制御手段は、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御し、受信装置は、通信網（例えば、図１の通信網１３）を介して、送信装置から送信されてくるパケットを受信する受信手段（例えば、図４の通信制御部１５２）と、パケットにバーストエラーが発生したか否かを判定する判定手段（例えば、図４のネットワーク測定部１５６）と、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する送信手段（例えば、図４の通信制御部１５７）とを含む。
【００４４】
本発明によれば、送信装置が提供される。この送信装置（例えば、図１のサーバ１２）は、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置（例えば、図１のクライアント１４）への送信を制御する送信制御手段（例えば、図３の通信制御部１０４）と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出手段（例えば、図３のネットワーク測定部１０６）と、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化する符号化手段（例えば、図３のエンコーダ１０１）とを含み、送信制御手段は、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御することを含む。
【００４５】
算出手段は、バーストエラーの発生が通知された場合、連続して受信されたパケットであって、バーストエラーが発生することなく、受信装置において受信されたパケットの数の最大値、および予め定めたデータ量を基に、パケットに格納されるストリーミングデータのデータ量を算出することができる。
【００４６】
通信網（例えば、図１の通信網１３）を介して、第１の通信方式（例えば、TCP）により、パケットに格納され、受信装置から送信されてくる通知の受信を制御する受信制御手段（例えば、図３の通信制御部１０５）をさらに含み、送信制御手段は、第２の通信方式（例えば、UDP）による、パケットの受信装置への送信を制御することができる。
【００４７】
送信制御手段は、連続で送信するパケットの数、および個々のパケットの送信の順序を示す番号をヘッダ情報として含むパケットの受信装置への送信を制御することができる。
【００４８】
また、本発明によれば、送信方法が提供される。この送信方法は、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置（例えば、図１のクライアント１４）への送信を制御する送信制御ステップ（例えば、図６のステップＳ５２の処理）と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出ステップ（例えば、図６のステップＳ５８の処理）と、ストリーミングデータにおける所定の単位が算出されたデータ量となるように、ストリーミングデータを符号化する符号化ステップ（例えば、図１１のステップＳ１５４の処理）とを含み、送信制御ステップにおいては、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信が制御されることを含む。
【００４９】
また、本発明によれば、プログラムが提供される。このプログラムは、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置（例えば、図１のクライアント１４）への送信を制御する送信制御ステップ（例えば、図６のステップＳ５２の処理）と、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出する算出ステップ（例えば、図６のステップＳ５８の処理）と、ストリーミングデータにおける所定の単位が算出されたデータ量となるように、ストリーミングデータを符号化する符号化ステップ（例えば、図１１のステップＳ１５４の処理）とを含み、送信制御ステップにおいては、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信が制御されることを含む。
【００５０】
本発明によれば、受信装置が提供される。この受信装置は、通信網（例えば、図１の通信網１３）を介して、送信装置（例えば、図１のサーバ１２）から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットを受信する受信手段（例えば、図４の通信制御部１５２）と、パケットにバーストエラーが発生したか否かを判定する判定手段（例えば、図４のネットワーク測定部１５６）と、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信する送信手段（例えば、図４の通信制御部１５７）とを含む。
【００５１】
判定手段は、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくるパケットであって、受信したパケットおよびその次に受信したパケットにおいて、ヘッダ情報に含まれるパケットの送信の順序を示す番号の差が、２以上の予め定めた値以上であるか否かを基に、パケットにバーストエラーが発生したか否かを判定することができる。
【００５２】
判定手段は、パケットを予め定めた時間内に受信できなかった場合、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくるパケットのヘッダ情報に含まれている、送信装置が連続で送信したパケットの数と最後に受信したパケットの送信の順序を示す番号との差が、２以上の予め定めた値以上であるか否かを基に、パケットにバーストエラーが発生したか否かを判定することができる。
【００５３】
受信手段は、第１の通信方式（例えば、UDP）により、送信装置から送信されてくるパケットを受信し、送信手段は、第２の通信方式（例えば、TCP）により、パケットに格納して通知を送信装置に送信することができる。
【００５４】
また、本発明によれば、受信方法が提供される。この受信方法は、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットの受信を制御する受信制御ステップ（例えば、図８のステップＳ１０２の処理）と、パケットにバーストエラーが発生したか否かを判定する判定ステップ（例えば、図４のネットワーク測定部１５６による、図８のステップＳ１０３またはステップＳ１０８の処理）と、判定の結果を基に、バーストエラーが発生したか否かを示す通知の送信装置への送信を制御する送信制御ステップ（例えば、図８のステップＳ１０４、ステップＳ１０６、またはステップＳ１０９の処理）とを含む。
【００５５】
また、本発明によれば、プログラムが提供される。このプログラムは、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットの受信を制御する受信制御ステップ（例えば、図８のステップＳ１０２の処理）と、パケットにバーストエラーが発生したか否かを判定する判定ステップ（例えば、図４のネットワーク測定部１５６による、図８のステップＳ１０３またはステップＳ１０８の処理）と、判定の結果を基に、バーストエラーが発生したか否かを示す通知の送信装置への送信を制御する送信制御ステップ（例えば、図８のステップＳ１０４、ステップＳ１０６、またはステップＳ１０９の処理）とを含む。
【００５６】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００５７】
図１は、本発明を適用したストリーミング配信システム１の一実施の形態を示す図である。このストリーミング配信システム１においては、インターネットなどの通信網１３に、サーバ１２およびクライアント１４が接続されている。
【００５８】
カメラ１１は、画像を撮像して、撮像した画像に対応する画像データをサーバ１２に供給する。例えば、カメラ１１は、動画像を撮像して、動画像に対応する画像データをサーバ１２に供給する。
【００５９】
画像データは、ストリーミングデータの一例である。ストリーミングデータは、音声のデータ、またはリアルタイム制御データなど、時間の経過に対応して順次送信または受信が要求されるデータであればよい。
【００６０】
サーバ１２は、例えば、PCまたは専用のサーバなどにより構成され、クライアント１４からストリーミングデータの配信の要求がされた場合、カメラ１１から供給された画像データをパケットに格納して、パケットを通信網１３を介して、クライアント１４に送信する。
【００６１】
通信網１３は、有線または無線の、通信回線、ネットワーク、またはインターネットなどからなる伝送路であり、所定の遅延時間で、サーバ１２から送信されたパケットをクライアント１４まで伝送する。
【００６２】
クライアント１４は、例えば、PC、PDA、または携帯電話機などにより構成され、通信網１３を介してサーバ１２から送信されてきたパケットを受信する。クライアント１４は、受信したパケットから画像データを抽出し、抽出した画像データを出力装置（図示せず）に供給する。出力装置は、例えば、CRT（Cathode Ray Tube）またはLCD（Liquid Crystal Display）パネルなどのディスプレイにより構成され、クライアント１４に内蔵するようにしてもよいし、クライアント１４とは別の装置として設けるようにしてもよい。
【００６３】
クライアント１４は、ストリーミングデータが格納されているパケットを正常に受信できなかった場合、サーバ１２に再送を要求する。サーバ１２は、クライアント１４から再送が要求された場合、通信網１３の状態などに応じて、ストリーミングデータが格納されているパケットを再送する。
【００６４】
図１で示されるストリーミング配信システム１の例においては、サーバ１２およびクライアント１４が、それぞれ１台ずつ設けられているが、実際には、サーバ１２は、複数のクライアント１４に対してストリーミングデータを配信するので、クライアント１４は、通信網１３を介して、複数台接続されている。また、同様に、複数のサーバ１２を設けるようにしてもよい。
【００６５】
図２は、サーバ１２の構成の例を示すブロック図である。
【００６６】
サーバ１２のCPU（Central Processing Unit）３１は、ROM（Read Only Memory）３２、または記録部３８に記録されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）３３には、CPU３１が実行するプログラムやデータなどが適宜記憶される。これらのCPU３１、ROM３２、およびRAM３３は、バス３４により相互に接続されている。
【００６７】
CPU３１にはまた、バス３４を介して入出力インタフェース３５が接続されている。入出力インタフェース３５には、キーボード、マウス、マイクロホンなどよりなる入力部３６、ディスプレイ、スピーカなどよりなる出力部３７が接続されている。CPU３１は、入力部３６から入力される指令に対応して各種の処理を実行する。そして、CPU３１は、処理の結果得られた画像や音声等を出力部３７に出力する。
【００６８】
入出力インタフェース３５に接続されている記録部３８は、例えばハードディスクなどで構成され、CPU３１が実行するプログラムや各種のデータを記録する。通信部３９は、通信網１３、インターネット、その他のネットワーク、または通信媒体を介して外部の装置と通信する。
【００６９】
また、通信部３９を介してプログラムを取得し、記録部３８に記録してもよい。
【００７０】
入出力インタフェース３５に接続されているドライブ４０は、磁気ディスク５１、光ディスク５２、光磁気ディスク５３、或いは半導体メモリ５４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部３８に転送され、記録される。
【００７１】
なお、クライアント１４は、サーバ１２と同様に構成されるので、その記載および説明は省略する。サーバ１２およびクライアント１４は、図２に示した内部構造に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成を持つことが可能である。
【００７２】
図３は、送信制御プログラムを実行するサーバ１２の機能の構成を示すブロック図である。
【００７３】
サーバ１２による送信制御プログラムの実行によって、サーバ１２において、エンコーダ１０１、パケタイザ１０２、バッファ１０３、通信制御部１０４、通信制御部１０５、ネットワーク測定部１０６、カウンタ１０７、および最大バイト数保持部１０８が実現される。
【００７４】
エンコーダ１０１は、画像データを符号化（エンコード）し、符号化された画像データをパケタイザ１０２に供給する。例えば、エンコーダ１０１は、最大バイト数保持部１０８に記憶されている最大バイト数に基づき、カメラ１１から供給されたストリーミングデータである画像データを符号化し、符号化された画像データをパケタイザ１０２に供給する。最大バイト数の詳細については後述する。
【００７５】
パケタイザ１０２は、エンコーダ１０１から供給された、符号化されている画像データを所定の方式のパケットに格納して、画像データを格納したパケットをバッファ１０３に供給する。例えば、パケタイザ１０２は、カウンタ１０７の値と同じ数の、画像データを格納したパケットを生成して、生成したパケットをバッファ１０３に供給する。
【００７６】
バッファ１０３は、ネットワーク測定部１０６の指示を基に、パケタイザ１０２から供給されたパケットを一時的に記憶し、記憶しているパケットを通信制御部１０４に供給する。
【００７７】
通信制御部１０４は、パケタイザ１０２からパケットを生成した旨が通知された場合、通信部３９を制御して、通信部３９に、バッファ１０３からパケットを読み出して、読み出したパケットを通信網１３を介して、相手であるクライアント１４に送信させる。
【００７８】
また、通信制御部１０４は、通信部３９に、ネットワーク測定部１０６から供給されたパケットを、通信網１３を介して、クライアント１４宛てに送信させる。例えば、通信制御部１０４は、ネットワーク測定部１０６から、カウンタ１０７の値と同じ数のパケットが供給された場合、通信部３９を制御して、通信部３９にパケタイザ１０２から供給される、予め定めたデータ量のデータを格納するパケットを、通信網１３を介して、クライアント１４に連続して送信させる。
【００７９】
なお、通信制御部１０４は、例えば、UDP（User Datagram Protocol）により、通信部３９における通信を制御する。これにより、通信部３９は、オーバーヘッドのより少ない、ベストエフォート型のデータグラム指向の通信を実行することができる。
【００８０】
通信部３９は、通信制御部１０４の制御のもと、通信制御部１０４から供給されたパケットを、通信網１３を介して、相手であるクライアント１４に送信する。例えば、通信部３９は、通信網１３を介して、通信制御部１０４から供給されたパケットをクライアント１４に連続して送信する。また、通信部３９は、通信制御部１０５の制御のもと、通信網１３を介して、相手からパケットを受信する。通信部３９は、受信したパケットを通信制御部１０５に供給する。
【００８１】
通信制御部１０５は、通信部３９に、通信網１３を介して、クライアント１４から送信されてくるパケットを受信させる。例えば、通信制御部１０５は、通信部３９を制御して、通信部３９に、通信網１３を介して、クライアント１４から送信されてくる、クライアント１４が受信したパケットにバーストエラーが発生したか否かを示す通知（が格納されているパケット）を受信させる。通信制御部１０５は、受信したパケットを通信部３９から取得して、パケットに格納されているバーストエラーが発生したか否かを示す通知をネットワークを測定部１０６に供給する。
【００８２】
ここで、バースト送信とは、パケットを連続して送信することをいう。バースト伝送とは、パケットを連続して伝送することをいう。また、バーストエラーとは、複数のパケットがまとまって欠落するエラーをいう。
【００８３】
以下、クライアント１４から連続して送信される（いわゆる、バースト伝送される）パケットであって、クライアント１４が受信したパケットに、バーストエラーが発生したか否かを示す通知は、バースト伝送結果通知とも称する。
【００８４】
通信制御部１０５は、例えば、TCP（Transmission Control Protocol）により、通信部３９における通信を制御する。これにより、通信部３９は、信頼性のあるセッション指向の通信を実行することができ、従って、より確実にパケット（バースト伝送結果通知）を受信することができる。
【００８５】
なお、通信制御部１０５は、TCPに限らず、例えば、UDPなどにより、通信部３９における通信を制御するようにしてもよい。
【００８６】
ネットワーク測定部１０６は、通信網１３において、バースト伝送できる最大のデータ量を計測するためのパケットを生成して、生成したパケットを通信制御部１０４に供給する。また、ネットワーク測定部１０６は、計測のために生成するパケットの数を制御し、その数を記憶するために、カウンタ１０７の値に初期値を設定したり、カウンタ１０７の値をインクリメントしたりする。
【００８７】
以下、通信網１３において、バースト伝送できる最大のデータ量を計測するために、サーバ１２から、通信網１３を介して、クライアント１４に送信されるパケットを、計測用パケットと称する。
【００８８】
例えば、ネットワーク測定部１０６は、カウンタ１０７の値を、初期値である２から、順に、１ずつインクリメントする。より詳細には、ネットワーク測定部１０６は、通信網１３を介して、クライアント１４から送信されてくるバースト伝送結果通知がバーストエラーが発生していないことを示す通知である場合、カウンタ１０７の値を１だけ増加させる。
【００８９】
なお、計測用パケットをクライアント１４にバースト送信すると、クライアント１４から通信網１３を介してバースト伝送結果通知が送信されてくる。通信部３９においてバースト伝送結果通知が受信されると、通信制御部１０５を介して、バースト伝送結果通知が、ネットワーク測定部１０６に供給される。ネットワーク測定部１０６は、通信制御部１０５から供給された、バーストエラーが発生したか否かを示すバースト伝送結果通知を取得する。
【００９０】
カウンタ１０７の値をインクリメントすると、ネットワーク測定部１０６は、予め定めたデータ量のデータを格納した計測用のパケットを、カウンタ１０７の値と同じ数だけ生成して、生成した計測用パケットを通信制御部１０４に供給する。
【００９１】
すなわち、サーバ１２は、通信網１３を介して、２つから順に１ずつ増加する数の計測用パケットをクライアント１４に連続して送信する（バースト送信する）。例えば、サーバ１２は、２つの計測用パケットをクライアント１４にバースト送信し、次に、３つの計測用パケットをクライアント１４にバースト送信し、さらに、４つの計測用パケットをクライアント１４にバースト送信するように、２つから順に１ずつ増加する数の計測用パケットをクライアント１４に連続して送信する。
【００９２】
一方、クライアント１４から送信されてくるバースト伝送結果通知が、バーストエラーが発生していることを示す通知である場合、ネットワーク測定部１０６は、カウンタ１０７の値および計測用パケットのデータ量を基に、バースト伝送できる最大のデータ量を示す最大バイト数を算出する。ネットワーク測定部１０６は、算出した最大バイト数を最大バイト保持部１０８に記憶させる。
【００９３】
例えば、ネットワーク測定部１０６は、バーストエラーが発生した計測用パケットの数から１を引き算して、その引き算の結果で示される、バーストエラーが発生しなかった計測用パケットの最大の数に、計測用パケットのデータ量を掛け算することにより、バースト伝送できる最大のデータ量を示す最大バイト数を算出する。
【００９４】
ここで、上述したように、エンコーダ１０１は、最大バイト数保持部１０８に記憶されている最大バイト数に基づき、例えば、１フレームが最大バイト数となるように画像データを符号化する。最大バイト数となるように符号化された画像データは、パケタイザ１０２において、パケットに格納されて、通信網１３を介して、クライアント１４に連続して送信される。すなわち、最大バイト数保持部１０８に記憶された最大バイト数は、連続して送信されるパケットに格納されるデータのデータ量を示す。
【００９５】
換言すれば、ネットワーク測定部１０６は、バースト伝送結果通知およびカウンタ１０７を基に、パケタイザ１０２によって生成されるパケットであって、連続して送信されるパケットに格納されるストリーミングデータである画像データのデータ量を算出する。
【００９６】
図４は、受信制御プログラムを実行するクライアント１４の機能の構成を示すブロック図である。
【００９７】
通信部１５１は、図２の通信部３９に対応し、通信網１３、インターネット、その他のネットワーク、または、通信媒体を介して、外部の装置と通信する。
【００９８】
クライアント１４による受信制御プログラムの実行によって、クライアント１４において、通信制御部１５２、RTP処理部１５３、バッファ１５４、デコーダ１５５、ネットワーク測定部１５６、および通信制御部１５７が実現される。
【００９９】
通信部１５１は、図２で示される構成のクライアント１４における通信部３９に対応し、通信制御部１５２の制御のもと、通信網１３を介してサーバ１２から送信されてきた各種のパケットを受信する。通信部１５１は、受信したパケットを通信制御部１５２に供給する。また、通信部１５１は、通信制御部１５７の制御のもと、通信網１３を介してサーバ１２に各種のパケットを送信する。
【０１００】
通信制御部１５２は、通信部１５１から供給されたパケットをRTP処理部１５３およびネットワーク測定部１５６に供給する。
【０１０１】
通信制御部１５２は、UDPにより、通信部１５１における通信を制御する。これにより、通信部１５１は、オーバーヘッドのより少ない、ベストエフォート型のデータグラム指向の通信を実行することができる。
【０１０２】
RTP処理部１５３は、通信部１５１が受信し、通信制御部１５２から供給されたパケットであるRTPパケットから画像データを抽出して、抽出した画像データをバッファ１５４に供給する。
【０１０３】
バッファ１５４は、RTP処理部１５３から供給された画像データを一時的に記憶する。
【０１０４】
デコーダ１５５は、サーバ１２のエンコーダ１０１に対応した復号方式で、バッファ１５４に記憶されている画像データを復号して、復号された画像データを出力する。
【０１０５】
ネットワーク測定部１５６は、通信制御部１５２から供給された計測用パケットを基に、計測用パケットの伝送においてバーストエラーが発生したか否かを判定する。ネットワーク測定部１５６は、バーストエラーが発生したか否かの判定の結果を示す、バースト伝送結果通知を含むパケットを通信制御部１５７に供給する。
【０１０６】
通信制御部１５７は、通信部１５１を制御して、通信部１５１に、ネットワーク測定部１５６から供給されたバースト伝送結果通知を含むパケットを、通信網１３を介して、サーバ１２に送信させる。
【０１０７】
通信制御部１５７は、例えば、TCPにより、通信部１５１における通信を制御する。これにより、通信部１５１は、信頼性のあるセッション指向の通信を実行することができ、従って、より確実にパケット（バースト伝送結果通知）をサーバ１２に送信することができる。
【０１０８】
なお、通信制御部１５７は、TCPに限らず、例えば、UDPなどにより、通信部３９における通信を制御するようにしてもよい。
【０１０９】
また、図３または図４で示されるサーバ１２またはクライアント１４の機能は、ハードウェアにより実現するようにしてもよい。
【０１１０】
次に、図５のフローチャートを参照して、サーバ１２による、データの送信の処理について説明する。
【０１１１】
ステップＳ１において、ネットワーク測定部１０６は、最大バイト数決定の処理を実行する。最大バイト数決定の処理の詳細は後述する。
【０１１２】
ステップＳ２において、サーバ１２は、ステップＳ１の処理により決定された最大バイト数を基に、画像データを符号化し、符号化された画像データを格納するパケットを生成して、生成したパケットをクライアント１４に送信することで、ストリーミングが開始される。
【０１１３】
ストリーミングは、入力部３６からの指示、または画像データの入力の停止などにより、終了し、これにより、サーバ１２におけるデータの送信の処理は終了する。
【０１１４】
次に、ステップＳ１の処理に対応する、最大バイト数決定の処理の詳細を、図６のフローチャートを参照して説明する。
【０１１５】
ステップＳ５１において、ネットワーク測定部１０６は、カウンタ１０７に初期値として、例えば、２をセットする。
【０１１６】
なお、カウンタ１０７の初期値は、２に限らず、例えば、５または１０など、他の値とすることも可能である。例えば、カウンタ１０７の初期値は、前回の最大バイト数決定の処理の結果を基に、定めるようにしてもよい。すなわち、より詳細には、前回の最大バイト数決定の処理におけるバーストエラーが発生した場合のカウンタ１０７の値が１０であるとき、ネットワーク測定部１０６は、カウンタ１０７に初期値として、１０を２で割り算した結果である５をセットするようにしてもよい。
【０１１７】
ステップＳ５２において、通信部３９は、ネットワーク測定部１０６および通信制御部１０４の制御に基づいて、カウンタ１０７の値と同じ数の計測用パケットを、通信網１３を介して、クライアント１４宛てにバースト送信する（連続して送信する）。
【０１１８】
図７は、バースト送信される計測用パケットを説明する図である。
【０１１９】
サーバ１２からバースト送信される計測用パケットの先頭には、16ビットのバーストユニットIDが配置される。バーストユニットIDは、１回のバースト送信において送信される、カウンタ１０７の値と同じ数の計測用パケットを特定するためのIDである。バーストユニットIDには、カウンタ１０７の値が設定される。すなわち、バーストユニットIDは、１回のバースト送信において送信される計測用パケットの数も示す。
【０１２０】
例えば、カウンタ１０７の値に、１０が設定されている場合、１回のバースト送信において送信される計測用パケットの数は、１０であり、バーストユニットIDも、１０である。
【０１２１】
例えば、１回目のステップＳ５２の処理において、カウンタ１０７の初期値が２なので、２であるバーストユニットIDが計測用パケットの先頭の16ビットの領域に配置された計測用パケットが、２つバースト送信される。
【０１２２】
シーケンス番号は、バーストユニットIDの次に配置される、16ビットの値であり、１回のバースト送信において送信される計測用パケットの通し番号である。すなわち、シーケンス番号は、１回のバースト送信において送信される計測用のパケットに、１から昇順に付した番号である。例えば、バーストユニットIDが１０である場合、最初の計測用パケットには、１であるシーケンス番号が付され、２番目の計測用パケットには、２であるシーケンス番号が付され、同様に、３番目乃至１０番目の計測用パケットのそれぞれには、３乃至１０のいずれかであるシーケンス番号が付される。すなわち、シーケンス番号の最小値は、１であり、シーケンス番号の最大値は、バーストユニットIDに等しい。
【０１２３】
ランダムデータは、シーケンス番号の次に配置される。ランダムデータは、例えば、ヘッダ情報を含めて、１回の送信で送信できるデータの最大値であるMTU（Maximum Transmission Unit）となるように設定される。より具体的には、例えば、ランダムデータは、ヘッダ情報を含めて、1024byteとなるように計測用パケットに格納される。
【０１２４】
図６に戻り、ステップＳ５３において、通信部３９は、通信網１３を介して、クライアント１４から送信されるバースト伝送結果通知を受信し、受信したバースト伝送結果通知を、通信制御部１０５を介して、ネットワーク測定部１０６に供給する。
【０１２５】
ステップＳ５４において、ネットワーク測定部１０６は、通信制御部１０５より供給されたバースト伝送結果通知を基に、バースト伝送結果通知がバーストエラーが発生していることを示しているか否かを判定する。
【０１２６】
ステップＳ５４において、バースト伝送結果通知がバーストエラーが発生していることを示していないと判定された場合、より多くの数の計測用パケットをバーストに送信することができるので、ステップＳ５５に進み、ネットワーク測定部１０６は、カウンタ１０７の値を１インクリメントし、ステップＳ５２に戻り、上述した処理を繰り返す。
【０１２７】
一方、ステップＳ５４において、バースト伝送結果通知がバーストエラーが発生していることを示していると判定された場合、バーストエラーが発生する、１つ前にバースト送信された計測用パケットの数が、バースト送信することができる計測用パケットの最大の数なので、ステップＳ５６に進み、ネットワーク測定部１０６は、カウンタ１０７の値から１を減算する。
【０１２８】
ここで、カウンタ１０７の値から１を減算するのは、バーストエラーの発生した計測用パケットの１つ前にバースト送信された計測用パケットの数は、バーストエラーが発生しない最大の計測用パケットの数であるので、この計測用パケットの数を基に、後述する最大バイト数を算出するためである。
【０１２９】
ステップＳ５７において、ネットワーク測定部１０６は、終了通知を通信制御部１０５に供給し、通信制御部１０５は、通信部３９に、通信網１３を介して、クライアント１３宛てに、終了通知を送信させる。
【０１３０】
ここで、終了通知とは、クライアント１３に最大バイト数決定の処理の終了を通知するものである。クライアント１４は、通信網１３を介して、サーバ１２から終了通知が送信されてくると、バーストエラー判定の処理を終了する。バーストエラーの判定の処理は後述する。
【０１３１】
ステップＳ５８において、ネットワーク測定部１０６は、バースト送信した計測用パケットの予め定めたデータ量であるバイト数、およびカウンタ１０７の値を基に、最大バイト数を計算する。最大バイト数は、例えば、αを計測用パケットの予め定めたデータ量であるバイト数、βをバーストエラーが発生した場合のカウンタ１０７の値としたとき、以下に示す式（１）により算出される。
【０１３２】
最大バイト数＝α×（β-１）・・・（１）
【０１３３】
すなわち、この場合、β-１は、バーストエラーが発生しなかった、バースト送信された計測用パケットの最大値を示す。
【０１３４】
ステップＳ５９において、ネットワーク測定部１０６は、算出した最大バイト数を、最大バイト数保持部１０８に記憶させることにより、最大バイト数を設定して、処理は終了する。
【０１３５】
なお、最大バイト数決定の処理は、クライアント１４から送信されてくるバースト伝送結果通知がバーストエラーが発生していることを示すまで、ステップＳ５２乃至ステップＳ５５の処理を繰り返すが、予め定めた所定の回数以内で繰り返すようにしてもよい。また、ステップＳ５２乃至ステップＳ５５の処理を繰り返す回数は、エンコーダ１０１において符号化される、最大の解像度の画像データのデータ量、または最高の画質の画像データのデータ量などから定めることができる。
【０１３６】
さらに、ステップＳ５１乃至ステップＳ５５の処理を所定の回数繰り返して、初期値から順に数を増やして、計測用パケットをバーストに送信する処理を繰り返し、所定の回数のバーストエラーの発生を示すバースト伝送結果通知を受信するようにしてもよい。この場合、ステップＳ５１乃至ステップＳ５５の処理を所定の回数繰り返した場合、最大バイト数は、ステップＳ５１乃至ステップＳ５５の処理のそれぞれで算出された最大バイト数の、例えば、最大値、最小値、または平均値などとすることができる。
【０１３７】
次に、図８のフローチャートを参照して、バーストエラーの判定の処理を説明する。
【０１３８】
ステップＳ１０１において、ネットワーク測定部１５６は、通信網１３を介して、サーバ１２から終了通知が送信されたか否かを判定する。
【０１３９】
ステップＳ１０１において、サーバ１２から終了通知が送信されたと判定された場合、これ以上、サーバ１２から計測用パケットは送信されてくることはないので、ネットワーク測定部１５６は、バーストエラーの判定の処理を終了し、処理は終了する。
【０１４０】
なお、クライアント１４は、バーストエラー判定の処理を終了した後、通信網１３を介して、サーバ１２からバースト伝送が可能な最大のデータ量のストリーミングデータを格納したパケットを受信することで、ストリーミングが開始される。
【０１４１】
一方、ステップＳ１０１において、サーバ１２から終了通知が送信されていないと判定された場合、さらに、サーバ１２はから計測用パケットが送信されてくるので、ステップＳ１０２に進み、ネットワーク測定部１５６は、通信制御部１５２の制御のもとに、通信部１５１が、通信網１３を介して、サーバ１２からバースト送信されてくる計測用パケットを受信したか否かを判定する。
【０１４２】
ステップＳ１０２において、サーバ１２から計測用パケットを受信したと判定された場合、ステップＳ１０３に進み、ネットワーク測定部１５６は、受信した計測用パケットと１つ前に受信した計測用パケットとのシーケンス番号の差が２以上であるか否かを判定する。
【０１４３】
すなわち、ステップＳ１０３において、ネットワーク測定部１５６は、受信した計測用パケットとその次に受信した計測用パケットとのシーケンス番号の差が２以上であるか否かを判定する。
【０１４４】
このように、シーケンス番号の差を判定することで、通信網１３を介して、サーバ１２から連続で送信される計測用パケットに、途中のパケットが失われてしまうバーストロスが発生したことを検知することができる。なお、シーケンス番号の差と比較される閾値は、２に限らず、例えば、３または４など、２以上であれば、他の値にすることもできる。
【０１４５】
ステップＳ１０３において、受信した計測用パケットとその次に受信した計測用パケットのシーケンス番号との差が２以上であると判定された場合、途中の計測用パケットにバーストロスが発生しているので、ステップＳ１０４に進み、ネットワーク測定部１５６は、バーストエラーの発生を示すバースト伝送結果通知を生成し、生成したバースト伝送結果通知を通信制御部１５７に供給する。
【０１４６】
通信制御部１５７は、通信部１５１を制御することで、通信網１３を介して、バーストエラーの発生を示すバースト伝送結果通知を、クライアント１４に送信させ、ステップＳ１０１に戻り、上述した処理を繰り返す。
【０１４７】
なお、クライアント１４が、通信網１３を介して、バーストエラーの発生を示すバースト伝送結果通知を、サーバ１２に送信した場合、上述したように、サーバ１２は、通信網１３を介して、終了通知をクライアント１４に送信し、カウンタ１０７の値および計測用パケットのデータ量を基に、クライアント１４が受信できる最大バイト数を算出する。
【０１４８】
すなわち、クライアント１４が、バーストエラーの発生を示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信した場合、クライアント１４は、バーストエラー判定の処理を終了する。逆に、クライアント１４は、バーストエラーの発生を示すバースト伝送結果通知を、サーバ１２に送信しない限り、バーストエラー判定の処理を実行し続ける。
【０１４９】
ステップＳ１０３において、受信した計測用パケットのシーケンス番号とその次に受信した計測用パケットのシーケンス番号との差が２以上でないと判定された場合、バーストエラーが発生していないので、ステップＳ１０５に進み、受信した計測用パケットのシーケンス番号とバーストユニットIDとが一致するか否かを判定する。
【０１５０】
ステップＳ１０５において、受信した計測用パケットのシーケンス番号とバーストユニットIDとが一致すると判定された場合、バーストユニットIDで特定される、連続して送信される計測用パケットの総てを受信したので、ステップＳ１０６に進み、ネットワーク測定部１５６は、バーストエラーが発生していないことを示すバースト伝送結果通知を生成し、生成したバースト伝送結果通知を通信制御部１５７に供給する。
【０１５１】
通信制御部１５７は、通信部１５１を制御することで、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、クライアント１４に送信して、ステップＳ１０１に戻り、処理を繰り返す。
【０１５２】
すなわち、シーケンス番号とバーストユニットIDとが一致している計測用パケットは、１回のバースト送信おいて送信される計測用パケットの最後の計測用パケットである。バーストエラーが発生することなく、この計測用パケットが受信されたことにより、連続して送信された計測用パケットの総てが正常に受信されたことがわかる。
【０１５３】
なお、上述したように、サーバ１２は、通信網１３を介して、クライアント１４から、バーストエラーが発生していないことを示すバースト伝送結果通知を受信した場合、カウンタ１０７の値を１だけインクリメントし、カウンタ１０７の値で示される数の計測用パケットをクライアント１４に再度バースト送信するので、クライアント１４は、その次の計測用パケットについて、上述した処理を繰り返す。
【０１５４】
ステップＳ１０５において、受信した計測用パケットのシーケンス番号とバーストユニットIDとが一致しないと判定された場合、さらに、そのバーストユニットIDで特定される計測用パケットが送信されてくるので、ステップＳ１０１に戻り、上述した処理を繰り返す。
【０１５５】
すなわち、シーケンス番号とバーストユニットIDとが一致していないので、受信した計測用パケットは、１回のバースト送信において送信される計測用パケットの途中の計測用パケットであるので、残りの計測用パケットを受信して、その計測用パケットについて、上述した処理を繰り返す。
【０１５６】
一方、ステップＳ１０２において、通信網１３を介して、サーバ１２から計測用パケットを受信していないと判定された場合、ステップＳ１０７に進み、計測用パケットを受信してから一定以上の時間が経過したか、すなわちタイムアウトであるか否かを判定する。
【０１５７】
ここで、インターネットなどからなる通信網１３は、ベストエフォート型のネットワークであるので、必ずデータが届くといった保証や、遅延時間が常にある一定の時間内に収まっているといった保証もない。そこで、ネットワーク測定部１５６は、通信網１３を介して、サーバ１２から計測用パケットを受信する際に、ある一定時間を経過しても受信できない場合、タイムアウトであると判断する。
【０１５８】
このように、タイムアウトを判定することで、通信網１３のトラフィックを考慮して、計測用パケットのバーストエラーを検出することができる。また、タイムアウトの値は、例えば、100msなどに設定しておけばよい。
【０１５９】
ステップＳ１０７において、タイムアウトでないと判定された場合、再度、サーバ１２からバースト送信された計測用パケットを受信するまで待機するために、ステップＳ１０１に戻り、上述した処理を繰り返す。
【０１６０】
ステップＳ１０７において、タイムアウトである判定された場合、ステップＳ１０８に進み、１回のバースト送信において送信される計測用パケットにおける、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号との差が、２以上であるか否かを判定する。
【０１６１】
このように、タイムアウトした場合、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号の差を判定することで、サーバ１２から１回のバースト送信で送信される計測用パケットに最後のパケットが失われてしまうバーストエラーが発生したかを検出することができる。なお、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号の差と比較される閾値は、２に限らず、例えば、３または４など、２以上であれば、他の値にすることもできる。
【０１６２】
ステップＳ１０８において、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号との差が、２以上であると判定された場合、ステップＳ１０４に進み、ネットワーク測定部１５６は、バーストエラーの発生を示すバースト伝送結果通知を生成し、生成したバースト伝送結果通知を通信制御部１５７に供給する。通信制御部１５７は、通信部１５１を制御することで、バーストエラーの発生を示すバースト伝送結果通知を、通信網１３を介して、クライアント１４に送信して、ステップＳ１０１に戻り、上述した処理を繰り返す。
【０１６３】
なお、上述したように、クライアント１４は、通信網１３を介して、バーストエラーの発生を示すバースト伝送結果通知を、サーバ１２に送信した場合、クライアント１４は、バーストエラーの判定の処理を終了する。また、サーバ１２は、通信網１３を介して、終了通知をクライアント１４に送信し、カウンタ１０７の値および計測用パケットのデータ量を基に、クライアント１４が受信できる最大バイト数を算出する。
【０１６４】
ステップＳ１０８において、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号との差が、２以上でないと判定された場合、ステップＳ１０９に進み、ネットワーク測定部１５６は、バーストエラーが発生していないことを示すバースト伝送結果通知を生成し、生成したバースト伝送結果通知を通信制御部１５７に供給する。通信制御部１５７は、通信部１５１を制御することで、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信して、ステップＳ１０１に戻り、上述した処理を繰り返す。
【０１６５】
なお、上述したように、サーバ１２は、通信網１３を介して、クライアント１４から、バーストエラーが発生していないことを示すバースト伝送結果通知を受信した場合、カウンタ１０７の値を１だけインクリメントし、カウンタ１０７の値の数の計測用パケットをクライアント１４に再度バースト送信することで、上述した処理を繰り返すことができる。
【０１６６】
このように、クライアント１４は、バーストエラーが発生したかを検出することができる。また、バースト伝送結果通知を受信したサーバ１２は、バースト送信した計測用パケットにバーストエラーが発生したかを知ることができる。
【０１６７】
図９は、図８のステップＳ１０３における、バーストエラーの判定の処理を説明する図である。
【０１６８】
図９における横方向は、時間を示す。また、図中の四角は計測用パケットを示し、四角の中の数字は、シーケンス番号を示す。さらに、図９の上段は、サーバ１２が、通信網１３を介して、クライアント１３に送信する計測用パケットを表し、図９の下段は、クライアント１４が、通信網１３を介して、受信する計測用パケットを表する。
【０１６９】
サーバ１２は、通信網１３を介して、カウンタ１０７の値の数の計測用パケットをクライアント１４宛てに送信する。また、カウンタ１０７の値は、２である初期値がセットされている。
【０１７０】
まず、カウンタ１０７の値が２（初期値）の場合、サーバ１２は、通信網１３を介して、２つの計測用パケット（計測用パケット２０１−１および計測用パケット２０１−２）をクライアント１４宛てにバースト送信する（連続して送信する）。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２０１−１および計測用パケット２０１−２を受信する。
【０１７１】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタ１０７の値を１だけインクリメントし、その結果、カウンタ１０７の値は３となる。
【０１７２】
次に、カウンタ１０７の値が３の場合、サーバ１２は、通信網１３を介して、クライアント１４宛てに３つの計測用パケット（計測用パケット２０２−１乃至２０２−３）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２０２−１乃至２０２−３を受信する。
【０１７３】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタの値を１だけインクリメントし、その結果、カウンタ１０７の値は４となる。
【０１７４】
次に、カウンタ１０７の値が４の場合、サーバ１２は、通信網１３を介して、４つの計測用パケット（計測用パケット２０３−１乃至２０３−４）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２０３−１乃至２０３−４を受信する。
【０１７５】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタの値を１だけインクリメントし、その結果、カウンタ１０７の値は５となる。
【０１７６】
カウンタ１０７の値が５乃至８（図示せず）の場合、クライアント１４は、通信網１３を介して、サーバ１２が送信する計測用パケットを全て受信するので、上述した場合と同様であり、その説明は省略する。
【０１７７】
次に、カウンタ１０７の値が９の場合、サーバ１２は、通信網１３を介して、９つの計測用パケット（計測用パケット２０８−１乃至２０８−９）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２０８−１乃至２０８−９を受信する。
【０１７８】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタの値を１だけインクリメントし、その結果、カウンタ１０７の値は１０となる。
【０１７９】
次に、カウンタ１０７の値が１０の場合、サーバ１２は、通信網１３を介して、１０つの計測用パケット（計測用パケット２０９−１乃至２０９−１０）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２０９−１乃至２０９−６、および計測用パケット２０９−１０を受信する。
【０１８０】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットのうち、計測用パケット２０９−７乃至２０９−９が受信できず、シーケンス番号の抜けが３となる（すなわち、差が３）。
【０１８１】
例えば、受信した計測用パケットのシーケンス番号と１つ前に受信した計測用パケットのシーケンス番号との差が２以上である場合に、バーストエラーが発生していると判断するとき、このときの差は４であるので、通信網１３を介して、バーストエラーが発生していること示すバースト伝送結果通知Ａを、サーバ１２に送信する。
【０１８２】
なお、上述したように、サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を受信し、サーバ１２のネットワーク測定部１０６は、９であるカウンタ１０７の値および計測用パケットのデータ量を基に、最大バイト数を算出し、算出した最大バイト数を最大バイト数保持部１０８に記憶させる。
【０１８３】
このように、カウンタ１０７の値が９の場合まで、バーストエラーが発生せずに計測用パケットを伝送できたので、９つの計測用パケットに格納されているデータの総量から、最大バイト数が算出される。例えば、サーバ１２は、１つの計測用パケットに格納されたデータのデータ量とバーストエラーが発生することなく連続して伝送できた計測用パケットの数を掛け算することで、最大バイト数を算出する。
【０１８４】
例えば、最大バイト数が900Kbyteである場合、サーバ１２は、１フレームの画像データのデータ量が900Kbyteとなるように符号化し、画像データを９つに分割して、100Kbyteである画像データを格納したパケットを９つ連続で送信するようにしてもよいし、画像データを３つに分割して、300Kbyteである画像データを格納したパケットを３つ連続で送信するようにしてもよい。
【０１８５】
図１０は、図８のステップＳ１０８における、バーストエラーの判定の処理を説明する図である。
【０１８６】
図１０における横方向は、時間を示す。また、図中の四角は計測用パケットを示し、四角の中の数字は、シーケンス番号を示す。さらに、図１０の上段は、サーバ１２が、通信網１３を介して、クライアント１３に送信する計測用パケットを表し、図１０の下段は、クライアント１４が、通信網１３を介して、受信する計測用パケットを表する。
【０１８７】
サーバ１２は、通信網１３を介して、カウンタ１０７の値の数の計測用パケットを、クライアント１４宛てに送信する。また、カウンタ１０７の値は、２である初期値がセットされている。
【０１８８】
まず、カウンタ１０７の値が２（初期値）の場合、サーバ１２は、通信網１３を介して、２つの計測用パケット（計測用パケット２５１−１および計測用パケット２５１−２）をクライアント１４宛てにバースト送信する（連続して送信する）。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２５１−１および２５１−２を受信する。
【０１８９】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタ１０７の値を１だけインクリメントし、その結果、カウンタ１０７の値は３となる。
【０１９０】
次に、カウンタ１０７の値が３の場合、サーバ１２は、通信網１３を介して、３つの計測用パケット（計測用パケット２５２−１乃至２５２−３）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２５２−１乃至２５２−３を受信する。
【０１９１】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタ１０７の値を１だけインクリメントし、その結果、カウンタ１０７の値は４となる。
【０１９２】
次に、カウンタ１０７の値が４の場合、サーバ１２は、通信網１３を介して、４つの計測用パケット（計測用パケット２５３−１乃至２５３−４）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２５３−１乃至２５３−４を受信する。
【０１９３】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタ１０７の値を１だけインクリメントし、その結果、カウンタ１０７の値は５となる。
【０１９４】
カウンタ１０７の値が５乃至８（図示せず）の場合、クライアント１４は、通信網１３を介して、サーバ１２が送信する計測用パケットを全て受信するので、上述した場合と同様であり、その説明は省略する。
【０１９５】
次に、カウンタ１０７の値が９の場合、サーバ１２は、通信網１３を介して、９つの計測用パケット（計測用パケット２５８−１乃至２５８−９）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２５８−１乃至２５８−９を受信する。
【０１９６】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットを全て受信したので、バーストエラーが発生していないことを示すバースト伝送結果通知を、通信網１３を介して、サーバ１２に送信する。サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を基に、カウンタ１０７の値を１だけインクリメントし、その結果、カウンタ１０７の値は１０となる。
【０１９７】
次に、カウンタ１０７の値が１０の場合、サーバ１２は、通信網１３を介して、１０つの計測用パケット（計測用パケット２５９−１乃至２５９−１０）をクライアント１４宛てにバースト送信する。クライアント１４は、通信網１３を介して、バースト伝送されてきた計測用パケット２５９−１乃至２５９−７を受信する。
【０１９８】
クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた計測用パケットのうち、計測用パケット２０９−８乃至２０９−１０が受信できず、クライアント１４側で、タイムアウトが発生する。このとき、１０であるバーストユニットIDと、７である最後に受信した計測用パケットのシーケンス番号の差は３である。
【０１９９】
例えば、バーストユニットIDと最後に受信した計測用パケットのシーケンス番号の差が２以上である場合に、バーストエラーが発生していると判断するとき、このときの差は、３であるので、ネットワーク測定部１５６は、バーストエラーが発生していると判断し、通信網１３を介して、バーストエラーが発生していることを示すバースト伝送結果通知Ａを、サーバ１２に送信する。
【０２００】
なお、上述したように、サーバ１２は、通信網１３を介して、クライアント１４から送信されてきたバースト伝送結果通知を受信し、サーバ１２のネットワーク測定部１０６は、９であるカウンタ１０７の値および計測用パケットのデータ量を基に、最大バイト数を算出し、算出した最大バイト数を最大バイト数保持部１０８に記憶させる。
【０２０１】
このように、カウンタ１０７の値が９の場合まで、バーストエラーが発生せずに計測用パケットを伝送できたので、９つの計測用パケットに格納されているデータの総量から、最大バイト数が算出される。より具体的には、例えば、サーバ１２は、１つの計測用パケットに格納されたデータのデータ量とバーストエラーが発生することなく連続して伝送できた計測用パケットの数を掛け算することで、最大バイト数を算出する。
【０２０２】
例えば、最大バイト数が900Kbyteである場合、サーバ１２は、１フレームの画像データのデータ量が900Kbyteとなるように符号化し、画像データを９つに分割して、100Kbyteである画像データを格納したパケットを９つ連続で送信するようにしてもよいし、画像データを３つに分割して、300Kbyteである画像データを格納したパケットを３つ連続で送信するようにしてもよい。
【０２０３】
次に、図１１のフローチャートを参照して、送信プログラムを実行するサーバ１２による、送信の処理を説明する。
【０２０４】
ステップＳ１５１において、サーバ１２は、送信の処理に必要なデータを初期化する。例えば、ステップＳ１５１において、サーバ１２のエンコーダ１０１は、内蔵しているタイマを初期値に設定する。より具体的には、例えば、エンコーダ１０１は、タイマの値を０に設定する。
【０２０５】
ステップＳ１５２において、エンコーダ１０１は、タイマの設定を基に、タイマが終了したか否かを判定し、タイマが終了していない場合、ステップＳ１５２に戻り、タイマが終了するまで、判定の処理を繰り返す。
【０２０６】
例えば、ステップＳ１５１において、エンコーダ１０１は、タイマの値と、33msとを比較することにより、タイマが終了したか否かを判定する。この場合における、タイマの値と比較される33msは、フレームの数が１秒当たり30である場合の例であり、本発明を限定するものではない。
【０２０７】
なお、初期化の処理において、タイマの値を33msなどの所定の値に設定して、時間の経過に対応してタイマの値が減少するようにして、比較の処理において、タイマの値が０であるか否かを判定するようにしてもよい。以下に説明するタイマに関する処理においても、同様である。
【０２０８】
ステップＳ１５２において、タイマが終了したと判定された場合、ステップＳ１５３に進み、カメラ１１から供給された画像データをキャプチャする。ステップＳ１５３において、例えば、エンコーダ１０１は、カメラ１１から供給された画像データのうち、１フレーム分をキャプチャする。
【０２０９】
ステップＳ１５４において、エンコーダ１０１は、キャプチャされた画像データを、符号化（エンコード）する。例えば、ステップＳ１５４において、エンコーダ１０１は、キャプチャされた画像データを、設定された送信レートとなるように、JPEG（Joint Photographic Experts Group）、JPEG2000、またはモーションJPEGなどの方式により符号化する。
【０２１０】
例えば、ステップＳ１５４において、エンコーダ１０１は、最大バイト数保持部１０８から供給される最大バイト数を基に、画像データの１フレームが最大バイト数となるように、所定のレートで画像データを符号化する。
【０２１１】
このようにすることで、サーバ１２は、通信網１３を介して、バーストエラーが発生しない最大の伝送レートでストリーミングデータを、クライアント１４にバースト送信することができる。
【０２１２】
ステップＳ１５５において、パケタイザ１０２は、符号化された画像データを格納するRTP（Real-time Transport Protocol）パケットを生成する。RTPパケットは、送信パケットの一例である。例えば、パケタイザ１０２は、カウンタ１０７の値と同じ数の、画像データを格納したパケットを生成する。
【０２１３】
図１２は、RTPパケットを説明する図である。RTPパケットの先頭には、図１２において“ｖ”で表される、２ビットのバージョン情報が配置される。バージョン情報は、RTPパケットのバージョンを示す。
【０２１４】
バージョン情報の次に１ビットのパディングが配置され、パディングに続いて、１ビットの拡張情報がRTPパケットに配置される。拡張情報は、図１２において、“ｘ”で表される。拡張情報は、RTPパケットに拡張ヘッダを配置する場合に、所定の値に設定される。
【０２１５】
拡張情報に続いて、CSRC（Contributing Source）カウントがRTPパケットに配置される。CSRCカウントは、図１２中において、“cc”で表される。CSRCカウントは、CSRC識別子の数を表す。
【０２１６】
CSRCカウントに続いて配置される、１ビットのメーカー情報は、プロファイルによって定義される。メーカー情報は、図１２中において、“ｍ”で表される。
【０２１７】
メーカー情報に続いて配置される、７ビットのペイロードタイプは、RTPパケットのフォーマットを定義するための情報である。ペイロードタイプは、図１２中において、“Pt”で表される。RTPパケットにおいて、ペイロードタイプは、33とされる。
【０２１８】
シーケンス番号は、ペイロードタイプの次に配置される、16ビットの情報である。シーケンス番号は、RTPパケットの送信の度に、１ずつ増える。シーケンス番号は、パケットロスを検出し、RTPパケットの順序を修復するために使用される。
【０２１９】
シーケンス番号の次に配置される、32ビットのタイムスタンプは、そのRTPパケットに格納されているストリーミングデータの最初のオクテットがサンプルされた時刻を示す情報である。
【０２２０】
SSRC（Synchronization Source）識別子は、タイムスタンプの次に配置される、32ビットの情報であって、RTPパケットに格納されるストリーミングデータのソースを示す。
【０２２１】
RTPパケットにおいて、SSRC識別子の次には、ストリーミングデータが格納される。図１２において、オリジナルデータは、ストリーミングデータを示す。
【０２２２】
図１１に戻り、ステップＳ１５６において、パケタイザ１０２は、生成したRTPパケットを、バッファ１０３に供給して、バッファ１０３は、供給されたRTPパケットを蓄積する。
【０２２３】
ステップＳ１５７において、バッファ１０３は、パケタイザ１０２から供給されたRTPパケットを一時的に記憶し、ネットワーク測定部１０６の指示を基に、記憶しているRTPパケットを通信制御部１０４に供給する。通信制御部１０４は、通信部３９を制御することで、バッファ１０３から供給されたRTPパケットを、通信部３９に連続して送信させる。
【０２２４】
例えば、通信制御部１０４は、１フレーム分の画像データを格納するパケットを通信部３９に連続して送信させる。
【０２２５】
ステップＳ１５８において、パケタイザ１０２は、RTPパケットに付加するRTPタイムスタンプを更新する。
【０２２６】
ステップＳ１５９において、エンコーダ１０２は、内蔵しているタイマをセットして、ステップＳ１５２に戻り、上述した処理を繰り返す。例えば、ステップＳ１５９において、エンコーダ１０１は、タイマの値を０にセットする。
【０２２７】
このように、サーバ１２は、通信網１３を介して、例えば、画像であるストリーミングデータが格納されているRTPパケットをクライアント１４に送信する。
【０２２８】
図１３は、サーバ１２における最大バイト数を基にストリーミングデータが格納されているRTPパケットの送信の処理の例を示す図である。
【０２２９】
図１３における横方向は、時間を示す。また、図中の四角はパケットを示し、四角の中の数字は、シーケンス番号を示す。さらに、図１３の上段は、サーバ１２が、通信網１３を介して、クライアント１４に送信するパケットを表し、図１３の下段は、クライアント１４が、通信網１３を介して、受信するパケットを表する。
【０２３０】
図１３で示される例は、カウンタ１０７の値が１０で、バーストエラーが発生した場合（例えば、図９および図１０で示す例）において、最大バイト数を設定したストリーミングデータを格納したパケットの送信について示している。すなわち、上述したように、サーバ１２は、カウンタ１０７の値が９の場合まで、バーストエラーが発生せずに計測用パケットを伝送できたので、９つの計測用パケットに格納されているデータの総量から、これから最大バイト数が算出される。より具体的には、例えば、サーバ１２は、１つの計測用パケットに格納されたデータのデータ量とバーストエラーが発生することなく連続して伝送できた計測用パケットの数を掛け算することで、最大バイト数を算出する。
【０２３１】
例えば、最大バイト数が900Kbyteである場合、サーバ１２は、１フレームの画像データのデータ量が900Kbyteとなるように符号化し、画像データを９つに分割して、100Kbyteである画像データを格納したパケットを９つ連続で送信する。
【０２３２】
まず、サーバ１２は、通信網１３を介して、クライアント１４宛てに、１フレームの画像データとして９つのパケット（パケット３０１−１乃至３０１−９）を連続して送信する。クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた９つのパケットである、パケット３０１−１乃至３０１−９を受信し、受信したパケット３０１−１乃至３０１−９から画像データを抽出し、抽出した画像データを復号する。クライアント１４は、復号した画像データを出力する。
【０２３３】
次に、サーバ１２は、通信網１３を介して、クライアント１４宛てに、１フレームの画像データとして９つのパケット（パケット３０２−１乃至３０２−９）を連続して送信する。クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた９つのパケットである、パケット３０２−１乃至３０２−９を受信し、受信したパケット３０２−１乃至３０２−９から画像データを抽出し、抽出した画像データを復号する。クライアント１４は、復号した画像データを出力する。
【０２３４】
次に、サーバ１２は、通信網１３を介して、クライアント１４宛てに、１フレームの画像データとして９つのパケット（パケット３０３−１乃至３０３−９）を連続して送信する。クライアント１４は、通信網１３を介して、サーバ１２から送信されてきた９つのパケットである、パケット３０３−１乃至３０３−９を受信し、受信したパケット３０３−１乃至３０３−９から画像データを抽出し、抽出した画像データを復号する。クライアント１４は、復号した画像データを出力する。
【０２３５】
すなわち、サーバ１２は、通信網１３を介して、１フレーム当たりの画像データを９つのパケットに格納して送信し、クライアント１４は、通信網１３を介して、１フレーム当たりの画像データを９つのパケットで受信し、受信したパケットに格納された画像データを出力する。
【０２３６】
このように、サーバ１２は、通信網１３を介して、１フレーム当たりのストリーミングデータを９つのパケットに格納して送信することで、バーストエラーが発生しない最大の伝送レートでパケットを送信できるので、クライアント１４は、受信可能な最大のデータ量でストリーミングデータを受信することができる。
【０２３７】
以上のように、サーバ１２は、通信網により定まる、１回のバースト伝送で伝送することができる最大のストリーミングデータを格納したパケットを、バースト伝送することができるので、クライアント１４は、通信網１３を介して、受信可能な最大のデータ量でストリーミングデータを受信することができるようになる。
【０２３８】
通信網の状態に応じて、ストリーミング型の伝送方式でデータを伝送するようにした場合、伝送可能なデータ量のデータを伝送することができる。また、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御し、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出し、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化し、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御し、通信網を介して、送信装置から送信されてくるパケットを受信し、パケットにバーストエラーが発生したか否かを判定し、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信するようにした場合、常に、通信網により定まる、伝送可能な最大のデータ量を得ることができるように、データを伝送することができる。
【０２３９】
通信網の状態に応じて、ストリーミング型の伝送方式データを送信するようにした場合、送信可能なデータ量のデータを送信することができる。また、予め定めたデータ量のデータを格納したパケットの数を順次増加させながら、連続して送信するようにパケットの受信装置への送信を制御し、受信装置から送信されてくるバーストエラーが発生したか否かを示す通知を基に、連続して送信されるパケットに格納されるストリーミングデータのデータ量を算出し、ストリーミングデータにおける所定の単位が、算出されたデータ量となるように、ストリーミングデータを符号化し、さらに、符号化されたストリーミングデータを格納するパケットを、ストリーミングデータにおける単位毎に、連続で送信するように、パケットの受信装置への送信を制御するようにした場合、常に、通信網により定まる、送信可能な最大のデータ量を得ることができるように、データを送信することができる。
【０２４０】
通信網の状態に応じて、ストリーミング型の伝送方式データを受信するようにした場合、受信可能なデータ量のデータを受信することができる。また、通信網を介して、送信装置から、数を順次増加させながら連続して送信されてくる、予め定めたデータ量のデータが格納されたパケットを受信し、パケットにバーストエラーが発生したか否かを判定し、判定の結果を基に、バーストエラーが発生したか否かを示す通知を送信装置に送信することができるようにした場合、常に、通信網により定まる、受信可能な最大のデータ量を得ることができるように、データを受信することができる。
【０２４１】
なお、最大バイト数決定の処理は、ストリーミングの開始前に実行したが、ストリーミングの途中で実行するようにしてもよい。また、最大バイト数を決定するために、バースト送信するパケットは、上述した計測用パケットに限らず、例えば、ストリーミングデータを格納したパケットを使用するようにしてもよい。
【０２４２】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２４３】
この記録媒体は、図２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク５１（フレキシブルディスクを含む）、光ディスク５２（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク５３（MD(Mini-Disc)（商標）を含む）、若しくは半導体メモリ５４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM３２や、記録部３８に含まれるハードディスクなどで構成される。
【０２４４】
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２４５】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２４６】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２４７】
【図１】本発明を適用したストリーミング配信システムの一実施の形態を示すブロック図である。
【図２】サーバの構成の例を示すブロック図である。
【図３】サーバの機能の構成を示すブロック図である。
【図４】クライアントの機能の構成を示すブロック図である。
【図５】データの送信の処理を説明するフローチャートである。
【図６】最大バイト数決定の処理の詳細を説明するフローチャートである。
【図７】バースト送信される計測用パケットを説明する図である。
【図８】バーストエラーの判定の処理を説明するフローチャートである。
【図９】バーストエラーの判定の処理を説明する図である。
【図１０】バーストエラーの判定の処理を説明する図である。
【図１１】送信の処理を説明するフローチャートである。
【図１２】RTPパケットを説明する図である。
【図１３】最大バイト数を基にストリーミングデータが格納されているRTPパケットの送信の処理を説明する図である。
【符号の説明】
【０２４８】
１  通信システム，  １１  カメラ，  １２  サーバ，  １３  通信網，  １４  クライアント，  ３１  CPU，  ３２  ROM，  ３３  RAM，  ３４  バス，  ３５  入出力インターフェイス，  ３６  入力部，  ３７  出力部，  ３８  記録部，  ３９  通信部，  ４０  ドライブ，  ５１  磁気ディスク，  ５２  光ディスク，  ５３  光磁気ディスク，  ５４  半導体メモリ，  １０１  エンコーダ，  １０２  パケタイザ，  １０３  バッファ，  １０４  通信制御部，  １０５  通信制御部，  １０６  ネットワーク測定部，  １０７  カウンタ，  １０８  最大バイト数保持部，  １５１  通信部，  １５２  通信制御部，  １５３  RTP処理部，  １５４  バッファ，  １５５  デコーダ，  １５６  ネットワーク測定部，  １５７  通信制御部
【図１】
2005269236.tif 000003
【図２】
2005269236.tif 000004
【図３】
2005269236.tif 000005
【図４】
2005269236.tif 000006
【図５】
2005269236.tif 000007
【図６】
2005269236.tif 000008
【図７】
2005269236.tif 000009
【図８】
2005269236.tif 000010
【図９】
2005269236.tif 000011
【図１０】
2005269236.tif 000012
【図１１】
2005269236.tif 000013
【図１２】
2005269236.tif 000014
【図１３】
2005269236.tif 000015