(57)【特許請求の範囲】
【請求項１】
送信装置であって、
受信装置にパケットを送信する送信手段と、
前記送信装置と前記受信装置との間のパケットの往復時間を取得する取得手段と、
前記受信装置において第１の映像フレームのパケットが正常に受信されなかった場合に再送される再送パケットが、前記受信装置における前記第１の映像フレームの再生に間に合うように、前記往復時間に基づいて前記第１の映像フレームのパケットの送信期限を決定する決定手段と、
前記決定手段によって決定された送信期限までに、前記第１の映像フレームのパケットの送信を行うように前記送信手段を制御する制御手段と
を有することを特徴とする送信装置。
【請求項２】
送信装置であって、
受信装置にパケットを送信する送信手段と、
前記送信装置と前記受信装置との間のパケットの往復時間を取得する取得手段と、
前記受信装置からの受信情報に基づいて、送信済みパケットのエラー状況を判定する判定手段と、
前記受信装置においてパケットが正常に受信されなかった場合に再送される再送パケットが、前記受信装置における前記パケットに対応するコンテンツの再生に間に合うための前記パケットの送信期限である第１の送信期限と、前記パケットが前記受信装置における前記コンテンツの再生に間に合うための前記パケットの送信期限である第２の送信期限とのうち、いずれの送信期限に基づいて前記パケットを送信するかを、前記エラー状況に応じて決定する決定手段と、
前記決定手段により決定された送信期限に従って前記パケットの送信が行われるように前記送信手段を制御する制御手段とを有する
ことを特徴とする送信装置。
【請求項３】
前記判定手段は、前記受信情報に基づいて、送信済みのパケットのうち前記受信装置が正常に受信しなかったパケット数が所定数以上であることに対応する第１のエラー状況であるか、前記正常に受信しなかったパケット数が前記所定数以上でないことに対応する第２のエラー状況であるかを判定し、
前記決定手段は、前記判定手段により前記第１のエラー状況であると判定された場合、前記パケットを前記第２の送信期限までに送信することを決定し、
前記判定手段により前記第２のエラー状況であると判定された場合、前記パケットを前記第１の送信期限までに送信することを決定する
ことを特徴とする請求項２記載の送信装置。
【請求項４】
前記判定手段は、前記受信情報に基づいて、送信済みのパケットのうち前記受信装置が連続して受信に失敗したパケット数が所定数以上であるか否かを判定し、
前記決定手段は、前記判定手段により前記連続して受信に失敗したパケット数が前記所定数以上であると判定された場合、前記パケットを前記第２の送信期限までに送信することを決定し、
前記判定手段により前記連続して受信に失敗したパケット数が前記所定数以上でないと判定された場合、前記パケットを前記第１の送信期限までに送信することを決定することを特徴とする請求項２記載の送信装置。
【請求項５】
前記決定手段は、前記エラー状況に応じて、動画データのフレームのうち、前記パケットを含む一のフレームに対応する複数のパケットを、前記第１の送信期限までに送信するか、前記第２の送信期限までに送信するか決定する
ことを特徴とする請求項２記載の送信装置。
【請求項６】
前記取得手段は、前記送信装置がパケットを送信してから当該パケットを前記受信装置が受信するまでの第１の時間と、前記受信装置がパケットを送信してから当該パケットを前記送信装置が受信するまでの第２の時間に基づいて前記往復時間を取得する
ことを特徴とする請求項１記載の送信装置。
【請求項７】
前記取得手段は、前記送信装置が再送要求を受信してから再送パケットを送信するまでにかかる処理時間を取得し、
前記決定手段は、前記往復時間と前記処理時間に基づいて、前記第１の映像フレームのパケットの送信期限を決定する
ことを特徴とする請求項１記載の送信装置。
【請求項８】
前記制御手段は、前記第１の映像フレームのパケット数が多いほうが、前記パケット数が少ない場合よりもパケットの送信間隔が短くなるように、前記送信手段による前記第１の映像フレームのパケットの送信間隔を制御することを特徴とする請求項１に記載の送信装置。
【請求項９】
受信装置にパケットを送信する送信装置が行う送信方法であって、
前記送信装置と前記受信装置との間のパケットの往復時間を取得する取得工程と、
前記受信装置において前記第１の映像フレームのパケットが正常に受信されなかった場合に再送される再送パケットが、前記受信装置における前記第１の映像フレームの再生に間に合うように、前記往復時間に基づいて前記第１の映像フレームのパケットの送信期限を決定する決定工程と、
前記決定工程によって決定された送信期限までに、前記第１の映像フレームのパケットの送信を行うように制御する制御工程と
を有することを特徴とする送信方法。
【請求項１０】
受信装置に対してパケットを送信する送信装置が行う送信方法であって、
前記送信装置と前記受信装置との間のパケットの往復時間を取得する取得手段と、  前記受信装置からの受信情報に基づいて、送信済みパケットのエラー状況を判定する判定工程と、前記受信装置においてパケットが正常に受信されなかった場合に再送される再送パケットが、前記受信装置における前記パケットに対応するコンテンツの再生に間に合うための前記パケットの送信期限である第１の送信期限と、前記パケットが前記受信装置における前記コンテンツの再生に間に合うための前記パケットの送信期限である第２の送信期限とのうち、いずれの送信期限に基づいて前記パケットを送信するかを、前記エラー状況に応じて決定する決定工程と、
前記決定工程により決定された送信期限に従って前記パケットの送信が行われるように制御する制御工程とを有する
ことを特徴とする送信方法。
【請求項１１】
前記取得工程は、前記送信装置が再送要求を受信してから再送パケットを送信するまでにかかる処理時間を取得し、
前記決定工程は、前記往復時間と前記処理時間に基づいて、前記第１の映像フレームのパケットの送信期限を決定する
ことを特徴とする請求項９記載の送信方法。
【請求項１２】
前記制御工程は、前記第１の映像フレームに対応するパケット数が多いほうが、前記パケット数が少ない場合よりもパケットの送信間隔が短くなるように、前記送信手段による前記第１の映像フレームのパケットの送信間隔を制御することを特徴とする請求項９に記載の送信方法。
【請求項１３】
前記判定工程は、前記受信情報に基づいて、送信済みのパケットのうち前記受信装置が正常に受信しなかったパケット数が所定数以上であることに対応する第１のエラー状況であるか、前記正常に受信しなかったパケット数が前記所定数以上でないことに対応する第２のエラー状況であるかを判定し、
前記決定工程は、前記判定工程により前記第１のエラー状況であると判定された場合、前記パケットを前記第２の送信期限までに送信することを決定し、
前記判定工程により前記第２のエラー状況であると判定された場合、前記パケットを前記第１の送信期限までに送信することを決定する
ことを特徴とする請求項１０記載の送信方法。
【請求項１４】
前記判定工程は、前記受信情報に基づいて、送信済みのパケットのうち前記受信装置が連続して受信に失敗したパケット数が所定数以上であるか否かを判定し、
前記決定工程は、前記判定工程により前記連続して受信に失敗したパケット数が前記所定数以上であると判定された場合、前記パケットを前記第２の送信期限までに送信することを決定し、
前記判定工程により前記連続して受信に失敗したパケット数が前記所定数以上でないと判定された場合、前記パケットを前記第１の送信期限までに送信することを決定する
ことを特徴とする請求項１０記載の送信方法。
【請求項１５】
コンピュータを、請求項１乃至８のうちいずれか１項に記載の送信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置に対してパケットを送信する送信装置に関する。
【背景技術】
【０００２】
近年、通信システムの発達により、比較的大きなデータ通信帯域が必要となる動画像データを、インターネット等の通信回線を通して送信することが一般に行われるようになっている。
【０００３】
このような動画像データの送信、特にライブ映像等のリアルタイム性を必要とする動画像データの長時間にわたる送信のために、ＲＴＰと呼ばれるプロトコルが一般的に用いられる。ＲＴＰは、Ａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ａｐｐｌｉｃａｔｉｏｎｓである。
【０００４】
また、ＲＴＰによる通信に代表されるリアルタイム通信においては、必ずしもデータの信頼性が高いとは言えないが、比較的単純に通信速度の改善が期待できるＵＤＰ／ＩＰ等の低層プロトコルが一般的に用いられる。
【０００５】
ＵＤＰ／ＩＰ等のプロトコルを用いた通信においてパケットロスなどのエラーが発生した場合に、そのエラーを回復するための方法として、例えば、再送制御が知られている。再送制御では、受信装置が受信できなかったパケット（ロスパケット）の再送要求を送信装置に対して送信し、送信装置は、再送要求に対応するパケットを再送する。
【０００６】
また、パケットロス等のエラーの発生を抑制させる技術が特許文献１に開示されている。すなわち、特許文献１には、短い送信間隔でパケットが送信されないように、パケットの送信間隔を制御することが開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−７７２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、パケットの送信間隔によっては、再生できないパケットが発生してしまう恐れがあった。
【０００９】
例えば、パケットの送信間隔を広げると、その分、受信装置がパケットロスを検知する時刻が遅くなる。従って、受信装置がロスしたパケットの再送要求を行っても、再送パケットが受信装置における再生時刻に間に合わないと、再送パケットを再生できない恐れがあった。
【００１０】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、再生できないパケットを少なくすることである。
【課題を解決するための手段】
【００１１】
上記目的を達成するための一手段として、本発明の通信制御装置は以下の構成を備える。すなわち、送信装置であって、受信装置にパケットを送信する送信手段と、前記送信装置と前記受信装置との間のパケットの往復時間を取得する取得手段と、前記受信装置において第１の映像フレームのパケットが正常に受信されなかった場合に再送される再送パケットが、前記受信装置における前記第１の映像フレームの再生に間に合うように、前記往復時間に基づいて前記第１の映像フレームのパケットの送信期限を決定する決定手段と、  前記決定手段によって決定された送信期限までに、前記第１の映像フレームのパケットの送信を行うように前記送信手段を制御する制御手段とを有する。
【発明の効果】
【００１２】
本発明によれば、再生できないパケットを少なくすることができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の送信装置の構成を示す図である。
【図２】実施形態の送信装置におけるデータの流れを説明するための図である。
【図３】実施形態１におけるパケットの送信間隔の例を示す図である。
【図４】実施形態２の送信装置によるパケット送信に関する処理の流れを説明するためのフローチャートである。
【図５】実施形態２におけるパケットの送信間隔の例を示す図である。
【図６】実施形態１の送信装置によるパケット送信に関する処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１５】
＜実施形態１＞
以下に、図面を参照しながら、本発明の第１の実施形態について説明する。尚、以下の実施形態では、送信装置が、通信機能を備えたネットワークカメラである場合を例に挙げて説明を行う。
【００１６】
図１は、送信装置のシステム構成の一例を示すブロック図である。図１において、ストリーム取得部１０１は、撮像部を備え、映像のストリームデータを取得する。尚、ストリームデータは、映像データに限らず、音声データやグラフィックデータなどのストリームデータであっても良い。
【００１７】
符号化部１０２は、ストリーム取得部１０１で取得されたストリームデータを符号化する。そして、パケット化部１０３は、符号化されたストリームデータを通信に適したサイズに分割してパケット化する。すなわち、パケット化部１０３は、受信装置に送信するパケットを生成する。パケット化部１０３によって生成されたパケットは、一旦、バッファメモリ１０８に保管される。
【００１８】
ストリーム情報取得部１０６は、ストリーム情報を取得する。また、通信情報取得部１０７は、通信情報を取得する。ストリーム情報と通信情報の詳細は、後述する。
【００１９】
スケジューリング部１０４は、ストリーム情報と通信情報とに基づいて、バッファメモリ１０８に保管されたパケットの送信タイミングを決定する。送信部１０５は、スケジューリング部１０４で決定された送信タイミングに従って、バッファメモリ１０８からパケットを読み出し、受信装置へ送信する。即ち、送信部１０５は、受信装置にパケットを送信する。
【００２０】
システムコントローラ１１０は、ストリームデータの取得からパケットを送信するまでの一連の処理において、図１に示したシステムの統括的な制御を行う。メインメモリ１０９は、システムコントローラ１１０が制御を行う上で必要に応じて記憶領域を提供する。
【００２１】
次に、本形態の送信装置の動作をデータの流れと共に図２を用いて説明する。図２の符号化部１０２は、ストリーム取得部１０１によって取得された映像ストリームデータを符号化し、パケット化部１０３に渡す。パケット化部１０３は、符号化された映像ストリームデータを分割してパケットを生成して、バッファメモリ１０８に渡すと共に、パケットを生成したことをシステムコントローラに通知する。また、スケジューリング部１０４は、通信情報取得部１０７から通信情報を取得すると共に、ストリーム情報取得部１０６からストリーム情報を取得する。そして、スケジューリング部１０４は、取得された通信情報、ストリーム情報を用いてフレームごとのパケットの送信期限を決定すると共に、その送信期限までにパケットが送信されるように、パケットの送信間隔を決定する。送信部１０５は、スケジューリング部１０４によって決定された送信間隔に基づいて、バッファメモリ１０８からパケットを読み出して、受信装置に送信する。
【００２２】
次に本形態の送信装置によるパケットの送信間隔の決定方法について、図３を用いて説明する。図３において、Ｉフレームは１つのフレーム内の情報で圧縮符号化処理されたフレームである。また、Ｐフレームは、時間軸上で前方のフレームの情報を用いて動き補償予測をして圧縮符号化処理されたフレームである。尚、所定数のフレームの集合を動画データの圧縮規格であるＭＰＥＧ−２ではＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）、ＭＰＥＧ−４ではＧＯＶ（Ｇｒｏｕｐ  Ｏｆ  Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）と呼ぶが、本形態では、ＧＯＰと呼ぶ。ＭＰＥＧは、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐの略である。
【００２３】
また、図３の「Ｉ」はＩフレーム、「Ｐ」はＰフレームを表している。図３に示すように、本形態では、１枚のＩフレームとｎ枚のＰフレームが１つのＧＯＰに属している。ただし、ＧＯＰに、時間軸上で前のフレームと後のフレームを用いて動き補償予測をして圧縮符号化処理されたＢフレームを含むようにしても良い。
【００２４】
図３（ａ）（ｂ）（ｃ）のうち、図３（ｃ）は、本形態の送信装置により送信されるパケットの送信間隔の例を示す。また、図３（ａ）と（ｂ）は、本形態の送信装置により送信されるパケットの送信間隔を説明するための送信間隔の比較例を示す。
【００２５】
図３（ａ）の「平準化無し」で示しているパケット送信間隔は、パケット送信間隔に関する制御を行っていない場合のパケットの送信間隔である。図３（ａ）からわかるように、一般に、Ｉフレームのパケット数は、Ｐフレームのパケット数よりも多い。
【００２６】
また、図３（ｂ）の「ＧＯＰ単位平準化」で示しているパケット送信間隔は、ＧＯＰごとにパケットの送信間隔を決定する例を示している。つまり、図３（ｂ）では、同じＧＯＰに属するパケットの送信間隔が同じ間隔になるように、パケットの送信間隔が決定される。このようにすることで、例えば、パケットを中継するルータ等においてバッファ溢れが発生することによるパケットのロスを少なくすることができる。しかしながら、図３（ｂ）のように送信間隔を広げた場合、例えば、Ｉフレームに対応する複数のパケットのうちの最後のパケットがロスした場合、受信装置がそのパケットの再送要求をしても、その再送パケットが再生に間に合わない場合がある。これは、特に、ＧＯＰに属するＩフレームのパケット数が非常に多く、Ｐフレームのパケット数が少ないときに起こり得る。これに対し、本形態のスケジューリング部１０４は、図３（ｃ）の「再送可能期限内平準化」で示すような送信間隔でパケットが送信されるように送信スケジュールを決定する。図３（ｃ）では、各フレームに、再送可能期限が設定されている。本形態のスケジューリング部１０４は、各パケットが、フレームごとに決定される再送可能期限までに送信されるように、送信タイミングを決定する。
【００２７】
ここで、再送可能期限は、再送パケットを正常に再生するための送信期限を示している。つまり、図３（ｃ）のＩフレームのパケットは、Ｉフレーム再送可能期限までに送信されているので、この中で受信装置が正常に受信しなかったパケットがあったとしても、再送要求することによって再送パケットに応じたコンテンツを再生することができる。一方、もしＩフレームのパケットをＩフレーム再送可能期限よりも後に送信し、そのパケットを受信装置が正常に受信できなかった場合、受信装置が再送要求しても、再送パケットがコンテンツの再生に間に合わない。この再送可能期限は、ストリーム情報、及び通信情報に基づいて、スケジューリング部１０４が決定する。尚、本形態では、再送要求を１回行う場合の再送可能期限について説明するが、同じパケットが２回以上ロスすることを想定して再送可能期限を決定することも可能である。
【００２８】
次に、スケジューリング部１０４による再送可能期限の決定方法について説明する。
【００２９】
まず、スケジューリング部１０４は、許容遅延時間を取得する。許容遅延時間は、ストリーム取得部１０１が映像のストリームデータを取得してから、そのストリームデータを受信装置が再生するまでの時間である。許容遅延時間は、予め設定されている。許容遅延時間は、各フレームに対し共通である。
【００３０】
また、スケジューリング部１０４は、取得した許容遅延時間と、各フレームのデータの取得時刻に基づいて、各フレームの再生時刻を特定する。そして、スケジューリング部１０４は、特定した各フレームの再生時刻と、受信装置が再送パケットを再生するために必要な時間に基づいて、各フレームのパケットの再送可能期限を決定する。
【００３１】
再送パケットを受信装置で再生するためには、以下に示す時間が必要になる。まず、送信装置によって送信されたパケットが受信装置に到着するまでに要する時間（下り通信時間）と、受信装置によるパケットロスの検知処理と再送要求パケットの生成、送信処理に要する時間（再送要求時間）が必要になる。さらに、受信装置によって送信された再送要求パケットが送信装置に到着するまでに要する時間（上り通信時間）と、送信装置による再送パケットの送信処理に要する時間（再送処理時間）が必要になる。さらに、送信装置によって送信された再送パケットが受信装置に到着するまでにかかる時間（下り通信時間）、受信装置による再送パケットの復号処理に要する時間（復号処理時間）が必要になる。
【００３２】
本形態のスケジューリング部１０４は、各フレームの再生時刻よりも、各処理時間（再送要求時間、再送処理時間、復号処理時間）と通信時間（上り通信時間と２回分の下り通信時間）の合計分だけ前の時刻になるように、送信期限（再送可能期限）を決定する。
【００３３】
つまり、スケジューリング部１０４は、ストリームデータの取得からパケットが生成されるまでの時間と、上記の各処理時間と通信時間（上り通信時間と２回分の下り通信時間）の合計を、許容遅延時間から差し引くことによって、最大遅延時間を決定する。最大遅延時間は、生成したパケットを送信せずにバッファメモリ１０８に蓄えておくことができる時間の上限値である。従って、本形態において、パケットをバッファメモリ１０８に記憶させてから最大遅延時間が経過するまでにパケットを送信することと、再送可能期限までにパケットを送信することは、同じことを意味している。
【００３４】
尚、上記の処理時間のうち、他の処理時間、通信時間と比べて十分に小さいと予測される場合は、その時間を無視して再送可能期限を決定するようにしても良い。また、上り通信時間と下り通信時間の違いが大きくないと予測される場合は、どちらか一方だけを取得し、その結果を他方に用いるようにしても良い。
【００３５】
スケジューリング部１０４は、下り通信時間を、通信情報取得部１０７から通知される通信情報に基づいて決定する。すなわち、通信情報取得部１０７は、これまでに送信した各パケットが受信装置によって受信されるまでにかかった下り通信時間を、通信情報としてスケジューリング部１０４に通知する。本形態では、下り通信時間の情報は、受信装置からの通知パケット（例えばレシーバーレポート）に含まれている。そして、スケジューリング部１０４は、通信情報取得部１０７から通知された下り通信時間に基づいて、現在の下り通信時間を決定する。すなわち、本形態のスケジューリング部１０４は、徐々に下り通信時間が長くなっている状況であると判断した場合は、通知された下り通信時間よりも長い時間を現在の下り通信時間として決定する。また、スケジューリング部１０４は、下り通信時間が時間的に激しく変動している状況であると判断される場合は、その中で最も長い下り通信時間を下り通信時間として決定する。このようにすることで、よりネットワークの状態に応じたくだり通信時間を決定することができる。ただし、通信情報取得部１０７から通知された下り通信時間を、現在の下り通信時間としても良い。
【００３６】
また、スケジューリング部１０４は、上り通信時間を、通信情報取得部１０７から通知される通信情報に基づいて決定する。すなわち、通信情報取得部１０７は、受信装置からの通知パケット（例えばレシーバーレポート）を受信すると、通知パケットの送信時刻と受信時刻に基づいて上り通信時間を算出し、通信情報としてスケジューリング部１０４に通知する。尚、通知パケットの送信時刻は、通知パケットに含まれている。そして、スケジューリング部１０４は、通知された上り通信時間に基づいて、現在の上り通信時間を決定する。例えば、スケジューリング部１０４は、徐々に上り通信時間が長くなっている状況であると判断した場合は、通信情報取得部１０７から通知された上り通信時間よりも長い時間（例えば、通知された上り通信時間の１割増）を現在の上り通信時間として決定する。ただし、通信情報取得部１０７から通知された上り通信時間を、現在の上り通信時間としても良い。
【００３７】
即ち、スケジューリング部１０４は、送信装置がパケットを送信してから該パケットを受信手段が受信するまでの下り通信時間（第１の時間）と、受信装置がパケットを送信してから該パケットを送信装置が受信するまでの上り通信時間（第２の時間）を取得する。そして、スケジューリング部１０４は、取得した上り通信時間と下り通信時間に基づいて往復時間を取得する。ただし、上り通信時間と下り通信時間の違いが小さいと予測される場合は、いずれかの通信時間から往復時間を求めても良い。
【００３８】
また、スケジューリング部１０４は、再送要求時間を、再送要求パケットの受信時刻と再送要求されたロスパケットの送信時刻に基づいて決定する。すなわち、スケジューリング部１０４は、パケットの送信時刻と、該パケットの再送要求パケットの受信時刻の時間差から、上り通信時間と下り通信時間の合計を差し引いた時間を、再送要求時間とする。
【００３９】
また、スケジューリング部１０４は、再送処理時間を、過去の再送処理時間に基づいて決定する。すなわち、スケジューリング部１０４は、これまでに再送パケットを生成するために要した時間を、再送処理時間として決定する。上述のように、再送処理時間は、再送要求パケットを受信してから再送パケットを送信するまでにかかる時間を示している。即ち、スケジューリング部１０４は、一のパケットの再送要求を受信してから、該一のパケットの再送パケットを送信するまでにかかる処理時間（再送処理時間）を取得する。
【００４０】
また、スケジューリング部１０４は、復号処理時間を、過去の復号処理時間に基づいて決定する。すなわち、通信情報取得部１０７は、受信装置におけるこれまでのパケットの復号処理に要した時間をスケジューリング部１０４に通知する。この復号時間の情報は、受信装置からの通知パケットに含まれている。そして、スケジューリング部１０４は、通知された過去の復号処理時間を現在の復号処理時間として決定する。
【００４１】
スケジューリング部１０４は、上記のようにして決定した各処理時間と通信時間に基づいてフレームごとに、パケットの送信期限（再送可能期限）を決定する。そして、スケジューリング部１０４は、各パケットを再送可能期限までに送信するようにパケットの送信タイミングを決定する。
【００４２】
尚、上り通信時間と下り通信時間と再送要求時間を、パケットの送信時刻と、該パケットの再送要求パケットの受信時刻の時間差に基づいて取得しても良い。このようにすれば、上り通信時間と下り通信時間の差が大きくない場合に、より容易に通信時間と処理時間を取得することができる。
【００４３】
次に、本形態のスケジューリング部１０４によるパケットの送信タイミングの決定方法について説明する。本形態のスケジューリング部１０４は、フレームごとに決定した送信期限（再送可能期限）までに、該フレームのパケットがすべて送信されるように、各パケットの送信間隔を決定する。すなわち、ストリーム情報取得部１０６は、ストリーム情報として、各フレームのデータサイズを取得し、スケジューリング部１０４に通知する。そして、スケジューリング部１０４は、通知されたフレームのデータサイズＳｆｒｍとパケットのペイロードサイズＰｆｒｍに基づいて１フレームのパケット数を算出する。そして、スケジューリング部１０４は、前述の最大遅延時間Ｔｆｒｍを、算出したパケット数で割ることでパケットの送信間隔ΔＴを決定する。
【００４４】
ΔＴ＝Ｔｆｒｍ／（Ｓｆｒｍ／Ｐｆｒｍ）
スケジューリング部１０４は、算出した送信間隔ΔＴでパケットを送信させるための送信指示を送信部１０５に対して行う。これにより、スケジューリング部１０４により決定された送信間隔でパケットが受信装置に送信される。
【００４５】
次に、本形態の送信装置のスケジューリング部１０４による処理について、図６のフローチャートを用いて説明する。
【００４６】
ステップＳ６０１（取得手順）において、スケジューリング部１０４は、通信情報とストリーム情報を取得する。本形態では、通信情報として、上り通信時間と下り通信時間、ストリーム情報として、送信するフレームのデータサイズを取得する。即ち、スケジューリング部１０４は、送信装置と受信装置との間のパケットの往復時間を取得する。また、スケジューリング部１０４は、過去の処理時間に基づいて、再送要求時間、再送処理時間、復号処理時間を決定する。
【００４７】
ステップＳ６０２（決定手順）において、スケジューリング部１０４は、ステップＳ６０１で取得した各処理時間と通信時間に基づいて、送信期限（再送可能期限）を決定する。上述のように、再送可能期限は、それまでに送信されたパケットを受信装置が正常に受信しなかったとしても、再送要求によって再送された再送パケットを正常に再生できる期限である。即ち、スケジューリング部１０４は、一のパケットに応じたコンテンツの再生時刻に、受信装置において一のパケットの再送パケットに応じた再生が間に合うように、往復時間に基づいて一のパケットの送信期限を決定する。
【００４８】
ステップＳ６０３（制御手順）において、スケジューリング部１０４は、ステップＳ６０２で決定された送信期限までに１フレーム分のパケットが送信されるように、送信間隔を決定する。本形態のスケジューリング部１０４は、１フレーム分のパケットの送信間隔が一定になるように送信間隔を決定する。そして、スケジューリング部１０４は、決定した送信間隔でパケットが送信されるように、送信部１０５を制御する。即ち、スケジューリング部１０４は、ステップＳ６０２で決定された送信期限までに、一のパケットの送信を行うように送信部１０５を制御する。
【００４９】
尚、スケジューリング部１０４は、受信装置からの再送要求パケットの受信に応じて、送信間隔を変更する。すなわち、再送要求パケットの受信に応じて、対応するパケットを再送すると、送信中のフレームのパケットのうちの一部が、再送可能期限よりも後に送信されてしまう可能性がある。そこで、スケジューリング部１０４は、再送パケットの送信時に送信しているフレームのすべてのパケットが、再送可能期限までに送信されるように、パケットの送信間隔を変更する。
【００５０】
ステップＳ６０４において、スケジューリング部１０４は、映像データの送信処理を終了するか否かを判定する。映像データの送信処理を終了すると判定される場合として、例えば、受信装置から映像の再生を終了することを示す通知を受けた場合などがある。映像データの送信処理を終了しないと判定された場合は、ステップＳ６０１に戻って次のフレームの送信処理を実行する。一方、映像データの送信処理を終了すると判定された場合は図６の処理を終了する。
【００５１】
以上のように本実施形態のスケジューリング部１０４は、ストリーム情報と通信情報に基づいて、ロスしたパケットの再送パケットが受信装置において正常に再生（表示）できるような送信期限を決定する。そして、スケジューリング部１０４は、決定した送信期限までにパケットが送信されるように送信部１０５を制御する。
【００５２】
これにより、パケットの送信間隔を広がると共に、受信装置が正常に受信しなかったパケットを再送制御によって回復させることができるので、再生できないパケットを少なくすることができる。
【００５３】
尚、ＭＰＥＧ−２やＭＰＥＧ−４だけでなく、ＭＰＥＧ−４  ＡＶＣ（Ｈ．２６４）やＭｏｔｉｏｎＪＰＥＧ等、同様の符号化方式やフレーム構成を持つものについても、本発明を適用することが可能である。
【００５４】
また、本実施形態では、ストリーム情報として、フレームごとのデータサイズを取得する例について説明したが、受信装置のバッファ容量などに応じて、例えば、ＧＯＰごとなどのデータサイズを取得するようにしても良い。
【００５５】
＜実施形態２＞
次に、第２の実施形態について実施形態１との差異を中心に説明する。実施形態１では、パケットの送信期限として、再送可能期限を用いていた。本形態では、再送可能期限と共に復号可能期限を求め、ネットワークの状況に応じて、復号可能期限までにパケットが送信されるように送信間隔を決定する。
【００５６】
尚、再送可能期限までの期間（再送可能期間）に送信されたパケットは、それがもしロスしても、再送パケットが再生に間に合う。また、再送可能期限から復号可能期限までの期間（復号可能期間）に送信されたパケットは、受信装置における再生には間に合うが、もしロスすると再送パケットが受信装置におけるコンテンツの再生に間に合わない。即ち、スケジューリング部１０４は、一のパケットの再送パケットが再生時刻に再生されるための再送可能期限（第１の送信期限）と共に、一のパケットが再生時刻に再生されるための復号可能期限（第２の送信期限）を決定する。
【００５７】
本形態の送信装置によるパケットの送信間隔について図５を用いて説明する。図５の（ａ）及び（ｂ）は、実施形態１で図３を用いて説明したので、説明を省略する。図５の（ｃ）「復号可能期間を含めた平準化」では、Ｉフレームのパケットが、Ｉフレームの再送可能期間と共に、Ｉフレームの復号可能期間においても送信される。このように、本形態のスケジューリング部１０４は、ネットワークの状況に応じて、再送可能期間だけでなく、復号可能期間においてもパケットを送信させる。
【００５８】
本形態のスケジューリング部１０４は、各フレームの送信開始時は、すべてのパケットが再送可能期間に送信されるようにパケットの送信間隔を決定するが、輻輳の発生を検知すると、一部のパケットが復号可能期間で送信されるように、送信間隔を変更する。つまり、輻輳が発生していないときは、ロスしたパケットが確実に再送制御できるように再送可能期間で送信し、輻輳が発生したときは、パケットの送信間隔をより広げることで、パケットロスしにくくする。尚、輻輳の発生は、受信装置からの通知パケット（レシーバーレポート）に基づいて判定する。
【００５９】
即ち、スケジューリング部１０４は、受信装置からの通知パケット（受信情報）に基づいて、送信済みのパケットのエラー状況を判定する。そして、スケジューリング部１０４は、エラー状況に応じて、一のパケットを再送可能期限（第１の送信期限）までに送信するか、復号可能期限（第２の送信期限）までに送信するか決定する。
【００６０】
尚、再送可能期限の決定方法は、実施形態１で説明した通りである。すなわち、スケジューリング部１０４は、再送制御する場合に必要な各処理に要する時間と通信時間の合計と、受信装置における各フレームの再生時刻に基づいて、各フレームの再送可能期限を決定する。尚、再送制御する場合に必要な各処理に要する時間は、再送要求時間、再送処理時間、復号処理時間であり、通信時間は、上り通信時間と、２回分の下り通信時間である。また、各フレームの再生時刻は、各フレームのデータの取得時刻と許容遅延時間から特定される。
【００６１】
また、本形態のスケジューリング部１０４は、復号可能期限を以下のように決定する。すなわち、スケジューリング部１０４は、再送制御しない場合に必要な各処理（復号処理時間）と通信時間（下り通信時間）の合計と、各フレームの再生時刻に基づいて、各フレームの復号可能期限を決定する。
【００６２】
図４は、本形態の送信装置によるパケットの送信処理に関する処理手順を説明するためのフローチャートである。本形態では、送信装置のストリーム取得部１０１によって撮影されたライブ映像を受信装置に送信する場合の例について説明する。
【００６３】
ステップＳ４０１において、スケジューリング部１０４は、送信するフレームの２つのパケット送信間隔Ｔ１、Ｔ２を算出する。送信間隔Ｔ１は、再送可能期間内に送信されるパケットの送信間隔を示している。また、送信間隔Ｔ２は、復号可能期間に送信されるパケットの送信間隔を示している。本形態のスケジューリング部１０４は、各フレームの送信開始時は、すべてのパケットが再送可能期間内に送信されるようにパケットの送信間隔を決定する。従って、送信間隔Ｔ１は、再送可能期間をフレームのパケット数で割った値となる。また、送信間隔Ｔ２は、復号可能期間と同じ値となる。すなわち、送信間隔Ｔ２の初期値は、復号可能期限から再送可能期限を引いた値となる。パケットの送信間隔Ｔ１、Ｔ２を決定すると、ステップＳ４０２に進む。
【００６４】
ステップＳ４０２において、スケジューリング部１０４は、決定されたパケットの送信間隔で、パケットを送信させる。つまり、送信部１０５は、スケジューリング部１０４で決定された送信タイミングに従って、バッファメモリ１０８からパケットを読み出し、受信装置へ送信する。スケジューリング部１０４が１パケット、送信させると、ステップＳ４０３に進む。
【００６５】
ステップＳ４０３において、スケジューリング部１０４は、１フレーム分のパケットが送信完了したか否かを判定する。１フレーム分のパケットを送信完了したと判定した場合は、ステップＳ４０１に戻り、次のフレームの送信間隔Ｔ１、Ｔ２を決定する。１フレーム分のパケットを送信完了していないと判定されると、ステップＳ４０４に進む。
【００６６】
ステップＳ４０４において、スケジューリング部１０４は、受信装置からの通知パケット（レシーバーレポート）を受信したか否かを判定する。スケジューリング部１０４は、通知パケットを受信したと判定した場合はステップＳ４０５へ進む。一方、スケジューリング部１０４は、通知パケットを受信していないと判定した場合はステップＳ４０２に戻り、次のパケットを送信する。
【００６７】
ステップＳ４０５において、スケジューリング部１０４は、受信装置からの通知パケットに基づいて、輻輳が発生しているか否かを判定する。尚、通知パケット（レシーバーレポート）には、受信装置が正常に受信しなかったパケットのシーケンスナンバーや、通知パケットの送信時刻などの時間情報が含まれている。スケジューリング部１０４は、通知パケットの情報に基づいて、エラーレートやＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）を算出する。
【００６８】
そして、スケジューリング部１０４は、算出したエラーレートが閾値よりも大きく、ＲＴＴがこれまでの通知パケットから算出されたＲＴＴよりも閾値以上、長くなっている場合、輻輳が発生したと判定する。ただし、エラーレートとＲＴＴのいずれか一方から輻輳を判断しても良い。
【００６９】
また、本形態では、エラーレートに基づいて輻輳の発生を判定する例について説明したが、輻輳の発生検知の方法は、これに限らない。例えば、レシーバーレポートに含まれるロスしたパケットのシーケンスナンバーに基づいて、受信装置が連続して受信に失敗したパケット数（バーストエラー数）を算出し、それに基づいて輻輳を判定することも可能である。
【００７０】
スケジューリング部１０４が輻輳が発生したと判定するとステップＳ４０６に進み、輻輳が発生してないと判定されるとステップＳ４０８に進む。
【００７１】
ステップＳ４０６において、スケジューリング部１０４は、送信間隔Ｔ１とＴ２を比較する。送信間隔Ｔ１がＴ２よりも小さい（送信間隔が狭い）と判定された場合はステップＳ４０７に進み、送信間隔Ｔ１がＴ２よりも小さくないと判定された場合はステップＳ４０９に進む。
【００７２】
ステップＳ４０７において、スケジューリング部１０４は、ステップＳ４０１で決定された送信間隔Ｔ１を大きくし、送信間隔Ｔ２を小さくするように、送信間隔Ｔ１、Ｔ２を変更する。ステップＳ４０７により、再送可能期間におけるパケットの送信間隔が長くなると共に、復号可能期間でもパケットが送信されるようになる。ステップＳ４０７で送信間隔Ｔ１、Ｔ２が変更されると、ステップＳ４０２に戻り、次のパケットが送信される。
【００７３】
即ち、スケジューリング部１０４は、ステップＳ４０５で、送信済みのパケットのうち受信装置が正常に受信しなかったパケット数が所定数以上であることに対応する第１のエラー状況であるか、所定数以上でないことに対応する第２のエラー状況であるか判定する。そして、スケジューリング部１０４は、第１のエラー状況であると判定された場合、一のパケットを復号可能期限（第２の送信期限）までに送信することを決定する。一方、第２のエラー状況であると判定された場合、一のパケットを再送可能期限（第１の送信期限）までに送信することを決定する。
【００７４】
尚、本形態では、エラーレートとＲＴＴの変動量に応じて、送信間隔Ｔ１、Ｔ２の変化量を変動させる。このようにすることで、輻輳の深刻さに、より適した送信間隔でパケットを送信することができる。ただし、ステップＳ４０７における送信間隔Ｔ１、Ｔ２の変化量を一定にしても良い。
【００７５】
また、上述のように、バーストエラー数に基づいて輻輳の判断をしても良い。その場合、スケジューリング部１０４は、ステップＳ４０５で、送信済みのパケットのうち受信装置が連続して受信に失敗したパケット数（バーストエラー数）が所定数以上であるか否かを判定する。そして、スケジューリング部１０４は、連続して受信に失敗したパケット数が所定数以上であると判定された場合、一のパケットを復号可能期限（第２の送信期限）までに送信することを決定する。一方、連続して受信に失敗したパケット数が所定数以上でないと判定された場合、一のパケットを再生可能期限（第１の送信期限）までに送信することを決定する。
【００７６】
尚、ステップＳ４０５で輻輳が発生してないと判定された場合、スケジューリング部１０４は、ステップＳ４０８で、現在の送信レートが目標レート未満であるか否かを判定する。目標レートは、例えば、ＴＦＲＣ（ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ）やＡＩＭＤ（Ａｄｄｉｔｉｖｅ  Ｉｎｃｒｅａｓｅ  ａｎｄ  Ｍｕｌｔｉｐｌｉｃａｔｉｖｅ  Ｄｅｃｒｅａｓｅ）を用いて求める。現在の送信レートが目標レート未満であると判定された場合はステップＳ４０９に進み、目標レートに達していると判定された場合はステップＳ４０２に戻る。
【００７７】
ステップＳ４０９において、スケジューリング部１０４は、レート制御を行う。つまり、ステップＳ４０８で、現在の送信レートが目標レート以下であると判定された場合、送信する映像データの画質を上げる。このようにすると、フレーム当たりのパケット数が多くなり、送信間隔が短くなるが、より高画質の映像データを送信することができるようになる。
【００７８】
また、ステップＳ４０６で送信間隔Ｔ１がＴ２よりも小さくないと判定された場合、ステップＳ４０９において、スケジューリング部１０４は、映像データの画質を下げる。このようにすることで、フレーム当たりのパケット数が少なくなるので、輻輳の状態を緩和することができる。
【００７９】
また、スケジューリング部１０４は、再送要求パケットを受信すると、送信間隔Ｔ１、Ｔ２を変更する。すなわち、再送要求パケットの受信に応じて、パケットを再送すると、送信中のフレームのパケットのうちの一部が、復号可能期限よりも後に送信されてしまう可能性がある。そこで、スケジューリング部１０４は、再送パケットの送信時に送信しているフレームのすべてのパケットが、復号可能期限までに送信されるように、パケットの送信間隔を変更する。
【００８０】
以上説明したように、本形態の送信装置は、再送可能期限までの期間（再送可能期間）と、再送可能期限から復号可能期限までの期間（復号可能期間）を決定する。そして、ネットワークで輻輳が発生していない場合は、すべてのパケットを再送可能期間に送信する。そして、輻輳の発生を検知すると、パケットの一部を復号可能期限で送信されるようにする。
【００８１】
このようにすることで、ネットワークで輻輳が発生していないときはすべてのパケットが再送制御可能となり、輻輳が発生しているときはパケットの送信間隔を広げることにより、パケットロスを少なくすることができる。
【００８２】
＜その他の実施形態＞
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体（記憶媒体）等としての実施態様をとることが可能である。
【００８３】
また、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、コンピュータ読取可能であり、実施形態において図に示したフローチャートに対応したプログラムである。
【図１】
0005522987.tif 000002
【図２】
0005522987.tif 000003
【図３】
0005522987.tif 000004
【図４】
0005522987.tif 000005
【図５】
0005522987.tif 000006
【図６】
0005522987.tif 000007