(57)【特許請求の範囲】
【請求項１】
映像データと冗長データを受信装置へ送信する通信装置であって、
前記受信装置との通信状況を示す通知を前記受信装置から受信する受信手段と、
前記受信手段が受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断手段と、
前記受信手段が受信した第１の通知に基づいて前記判断手段が前記映像データの伝送レートを増加させないと判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御手段とを有することを特徴とする通信装置。
【請求項２】
前記判断手段は、前記受信装置へ送信した映像データと冗長データのパケットのうち、前記受信装置が正常に受信しなかったパケットに関する前記受信装置からの通知に基づいて、前記映像データの伝送レートを増加させるか判断することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判断手段は、データを送信してから前記受信装置が受信するまでの伝搬遅延時間に基づいて、前記映像データの伝送レートを増加させるか判断することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記受信手段が受信した通知に基づいて前記判断手段が前記映像データの伝送レートを増加させると判断した場合に、前記レート制御手段は、当該通知の送信時の前記映像データと前記冗長データの伝送レートから、前記映像データの変更後の伝送レートを決定する
ことを特徴とする請求項１に記載の通信装置。
【請求項５】
前記受信手段が受信した通知に基づいて前記判断手段が前記映像データの伝送レートを増加させると判断した場合に、前記レート制御手段は、前記通知の受信時の前記映像データと前記冗長データの伝送レートと、前記映像データの前記変更後の伝送レートの差分に対応する伝送レートを、前記冗長データの変更後の伝送レートにすることを特徴とする請求項３に記載の通信装置。
【請求項６】
前記冗長データは、前記受信装置が正常に受信しなかった映像データを復元するためのデータであることを特徴とする請求項１に記載の通信装置。
【請求項７】
所定の間隔をあけたブロック単位で映像データと冗長データを送信する場合に、前記冗長データが、前記ブロック内において映像データよりも後の送信順序となるように、映像データ及び冗長データの送信順序を決定するスケジューリング手段を有することを特徴とする請求項１に記載の通信装置。
【請求項８】
映像データと冗長データを受信装置へ送信する通信装置の制御方法であって、
前記受信装置との通信状況を示す通知を前記受信装置から受信する受信工程と、
前記受信工程において受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断工程と、
前記受信工程において受信した第１の通知に基づいて前記映像データの伝送レートを増加させないと前記判断工程において判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御工程とを有することを特徴とする制御方法。
【請求項９】
映像データと冗長データを受信装置へ送信するコンピュータに、
前記受信装置との通信状況を示す通知を前記受信装置から受信する受信手順と、
前記受信手順において受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断手順と、
前記受信手順において受信した第１の通知に基づいて前記映像データの伝送レートを増加させないと前記判断手順において判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御手順とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介した映像データの送信方法に関する。
【背景技術】
【０００２】
現在、インターネット等のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークでは、ネットワークの有効帯域が時間的に変動する。そして、このようなＩＰネットワークを介して、例えばストリーミングによる動画像の視聴をする場合、変動するネットワークの有効帯域に合わせて伝送レートを動的に制御することが一般に行われている。
【０００３】
伝送レートの動的な制御を行うための手法として、例えば、ＴＦＲＣ（ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ）制御（非特許文献１）や、ＡＩＭＤ（Ａｄｄｉｔｉｖｅ  Ｉｎｃｒｅａｓｅ  ａｎｄ  Ｍｕｌｔｉｐｌｉｃａｔｉｖｅ  Ｄｅｃｒｅａｓｅ）制御が知られている。
【０００４】
ＴＦＲＣ制御は、リアルタイム系のアプリケーションが用いるＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）プロトコルで、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）やエラーレート等から有効帯域を算出し、伝送レートを制御する制御手法である。これに対し、ＡＩＭＤ制御は、伝送レートを徐々に上げていき、例えば、所定数以上のパケットロスや、輻輳発生等の検知により伝送レートを下げるという制御手法である。ＡＩＭＤ制御のような有効帯域を探りながら伝送レートを制御する手法は、動画像データの伝送レートが、動画の再生に必要な符号化データの伝送レートを示す目標符号化レートに達していないような場合に特に有効であることが知られている。特許文献１には、ネットワークの状態が輻輳から回復したときに、ＡＩＭＤアルゴリズムによって漸進的に伝送レートを回復させることが記載されている。
【０００５】
また、ＲＴＰに誤り訂正能力を付与するものとして、前方誤り訂正（ＦＥＣ：Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）技術を組み込んだＲＴＰ−ＦＥＣが知られている。これは、符号化データパケットから、誤り訂正用の冗長なデータを生成し、付加することで、符号化データの一部が欠落した際に、受信できた符号化データとＦＥＣデータを用いて欠落データを復元することができる技術である。
【特許文献１】特開２００６−３０３９２５号公報
【非特許文献１】Ｓ．Ｆｌｏｙｄ  ｅｔ  ａｌ．，“ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ（ＴＦＲＣ）：Ｔｈｅ  Ｓｍａｌｌ−Ｐａｃｋｅｔ（ＳＰ）Ｖａｒｉａｎｔ”ＲＦＣ  ４８２８，Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋｆｏｒｃｅ，Ａｐｒｉｌ．２００７
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、有効帯域を探りながら伝送レートを制御する手法を用いると、伝送レートが有効帯域を超え、それによって再生に必要なデータが欠落してしまう恐れがあった。
【０００７】
例えば、従来のＡＩＭＤ制御のように、輻輳の検知に応じて一時的に伝送レートを下げてから、有効帯域を探る為に、再び輻輳を検知する、もしくは目標符号化レートに達するまで動画像データの伝送レートを徐々に上げていく場合を例に挙げる。このとき、動画像データを再生するための目標符号化レートが有効帯域よりも高いと、パケットロスが発生してしまう。ここで、例えば、所定の送信間隔をあけたブロック内において、映像データをＦＥＣデータより先に送信すれば、映像データの欠落をある程度防ぐことは可能である。しかし、伝送レートが有効帯域よりも大きく上回ってしまうと、映像データが欠落し、それによって再生画像が乱れてしまう恐れがあった。
【０００８】
本発明は上記の問題点に鑑みてなされたものであり、その目的は、有効帯域を探りながら伝送レートを制御する場合に、再生に必要な映像データの欠落を低減することである。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば本発明の通信装置は以下の構成を備える。即ち、映像データと冗長データを受信装置へ送信する通信装置であって、前記受信装置との通信状況を示す通知を前記受信装置から受信する受信手段と、前記受信手段が受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断手段と、前記受信手段が受信した第１の通知に基づいて前記判断手段が前記映像データの伝送レートを増加させないと判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御手段とを有する。
【００１０】
また、本発明の制御方法は、映像データと冗長データを受信装置へ送信する通信装置の制御方法であって、前記受信装置との通信状況を示す通知を前記受信装置から受信する受信工程と、前記受信工程において受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断工程と、前記受信工程において受信した第１の通知に基づいて前記映像データの伝送レートを増加させないと前記判断工程において判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御工程とを有する。
【００１１】
また、本発明のコンピュータプログラムは、映像データと冗長データを受信装置へ送信するコンピュータに、前記受信装置との通信状況を示す通知を前記受信装置から受信する受信手順と、前記受信手順において受信した通知に基づいて前記映像データの伝送レートを増加させるか判断する判断手順と、前記受信手順において受信した第１の通知に基づいて前記映像データの伝送レートを増加させないと前記判断手順において判断した場合に、該第１の通知の次に通知される第２の通知を前記受信装置が送信するまでの間に、前記冗長データの伝送レートを前記冗長データの現在の伝送レートよりも減少させた後に増加させる制御を行うレート制御手順とを実行させる。
【発明の効果】
【００１３】
本発明によれば、通信状況を把握している伝送レートに応じて、映像データの伝送レートを決定するので、再生に必要な映像データの欠落を低減することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の映像データの送信方法を、通信機能を備えた動画像データ配信装置に適用した好適な実施形態について、図面を参照しながら説明する。
【００１５】
＜実施形態１＞
図１は、本発明の実施に好適な動画像データ配信装置の基本構成を示すブロック図である。この動画像データ配信装置（通信装置）１００は、パーソナルコンピュータ、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵した各種家電製品、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどのうち、映像データと冗長データを含む通信データを受信装置に送信することができる装置、もしくは、これらの組合せにより実現可能である。
【００１６】
図１に示すように、動画像データ配信装置（通信装置）１００は、動画像符号化部１０１、ＦＥＣ生成部１０２、スケジューリング部１０３、送受信部１０４、フィードバック情報解析部１０５、レート決定部１０６から構成されている。
【００１７】
動画像符号化部１０１は、ビデオカメラ、ネットワークカメラ等の動画像入力部１０７から入力された動画像データを、例えばＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）形式などの符号化方式を用いて符号化する。尚、動画像符号化部１０１は、レート決定部１０６が通信データの通信状況を示すフィードバック情報に応じて決定した符号化データの伝送レート（符号化レート）で、動画像データを符号化する。フィードバック情報を受信するまで、即ち、例えば、動画像データの伝送開始時における符号化レートは、目標符号化レートにしても良いし、それ以外の予め定めた伝送レートにしても良い。尚、フィードバック情報の詳細については、後述する。また、符号化方式は、特に限定しない。
【００１８】
ＦＥＣ生成部１０２では、動画像符号化部１０１で符号化された符号化データに対して、前方誤り訂正で用いられるデータとなる冗長データを生成する。尚、ＦＥＣ生成部１０２は、後述するレート決定部１０６が、フィードバック情報に応じて決定したＦＥＣデータの伝送レート（ＦＥＣレート）に応じて、ＦＥＣデータを生成する。また、本実施形態では、符号化データに付加する冗長データとして、符号化データから生成したＦＥＣデータを用いている。つまり、冗長データには、映像データ（符号化データ）の通信中に発生したエラーを訂正するためのデータを用いる。このようにすることで、例えば、符号化データが伝送中に起こった誤りを訂正することができる。また、フィードバック情報を受信するまでのＦＥＣレート、即ち、例えば、動画像データの伝送開始時におけるＦＥＣレートは、予め初期値を設定しておいてもよいし、ゼロから始めてもよい。
【００１９】
ＦＥＣの種類としてはパリティ符号やリードソロモン符号等がよく知られている。パリティ符号は演算処理が比較的単純なため高速で処理できるが、誤り訂正能力は高くない。リードソロモン符号はパリティ符号に比べ誤り訂正能力は高いが、演算処理が複雑なため、誤り訂正処理時間が大きくなってしまうという特徴がある。本実施形態ではパリティ符号を用いてＦＥＣデータを生成するが、他の方法でもよい。
【００２０】
スケジューリング部１０３では、動画像符号化部１０１及びＦＥＣ生成部１０２で生成された符号化データとＦＥＣデータの送信順序を決定する。送信順序の決定方法については、図３を用いて、後述する。
【００２１】
送受信部１０４では、動画像符号化部１０１で生成された符号化データ、及びＦＥＣ生成部１０２で生成された冗長データを、スケジューリング部１０３で決定された送信順序で動画像データ受信装置２００に対して送信する。また、送受信部１０４は、動画像データ受信装置２００から送られてくるフィードバック情報を受信する。即ち、動画像データ配信装置１００は、送受信部１０４で、映像データ（符号化データ）と冗長データ（ＦＥＣデータ）を含む通信データを動画像データ受信装置２００へ送信する。また、動画像データ配信装置１００は、送受信部１０４で、通信データの通信状況を示す通信状況情報（フィードバック情報）を動画像データ受信装置２００から受信する。
【００２２】
フィードバック情報には、これまでに送信した通信データのうち、当該フィードバック情報に対応する通信データの範囲、当該範囲におけるエラーレートの情報、及び伝播遅延時間の情報が含まれる。ここで、通信データの範囲の情報とは、例えば、対応する期間に送信されるパケットのうち、最初と最後のパケットのシーケンスナンバーがある。このシーケンスナンバーは、ＲＴＰヘッダに含まれている。また、エラーレートの情報とは、例えば、動画像データ受信装置２００に対して送信したパケット数に対する、欠落パケット数や、ビットエラーが発生したパケット数に応じて計算される。欠落パケット数は、例えば、上述のシーケンスナンバーを受信装置側で監視することによって検出することができる。尚、本実施形態では、エラーレートの計算を動画像データ受信装置２００のエラーレート計算部２０５で行うが、エラーレートの計算を動画像データ配信装置１００側で行うようにしても良い。この場合、例えば、動画像データ受信装置２００からのフィードバック情報に、欠落パケット数やビットエラー情報が含まれることになる。
【００２３】
また、伝播遅延時間とは、動画像データ配信装置１００から送信したパケットが、動画像データ受信装置２００で受信されるまでにかかった時間を示している。尚、この伝播遅延時間は、例えば、フィードバック情報に対応する期間に受信した各パケットの伝播遅延時間のうち、最も大きい値としても、各パケットの伝播遅延時間の平均値としても良い。
【００２４】
フィードバック情報解析部１０５では、送受信部１０４で受信したフィードバック情報を受け取り、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）を算出する。ここで、ＲＴＴは、フィードバック情報に含まれる伝播遅延時間に、動画像データ受信装置２００が送信したフィードバック情報が、動画像データ配信装置１００で受信されるまでにかかった時間を加算することで得られる。また、フィードバック情報解析部１０５は、フィードバック情報に含まれるエラーレートの情報を取得する。そして、フィードバック情報解析部１０５は、算出したＲＴＴ、及び取得したエラーレートの情報に基づいて、受信したフィードバック情報に対応する期間で輻輳が発生していたかどうかを判断する。
【００２５】
尚、ＲＴＴによる輻輳の発生の判断では、算出されたＲＴＴが、予め定めた閾値を超えた場合に輻輳が発生したと判断するようにしても良い。また、これまでのフィードバック情報の受信に応じて算出したＲＴＴと比較し、例えばその増加率が閾値を超えた場合に輻輳の発生を判断するようにしても良い。また、その他の方法で輻輳を検知したときのＲＴＴの値を記憶しておき、そのＲＴＴを閾値として輻輳の判断をするようにしても良い。
【００２６】
また、エラーレートの情報による輻輳の発生の判断では、エラーレートが、ある閾値を超えた場合に輻輳が発生したと判断しても良い。また、これまでのフィードバック情報の受信に応じて得られたエラーレートと比較し、例えばその増加率が閾値を超えた場合に輻輳の発生を判断するようにしても良い。輻輳発生の判断は、ＲＴＴとエラーレートのどちらかの値を用いて行っても、ＲＴＴとエラーレートの両方の値を用いて行っても良い。
【００２７】
フィードバック情報解析部１０５は、これらのエラーレート、ＲＴＴ、輻輳発生の判断結果をレート決定部１０６に通知する。すなわち、フィードバック情報解析部１０５は、輻輳が発生しなかったと判断すると、送受信部１０４から送信する映像データの送信レートを増加させるよう、レート決定部１０６に通知する。この映像データの送信レートより増加させるかの判断は、動画像データ受信装置２００から送信されるフィードバック情報（通信状況情報）に基づく。
【００２８】
レート決定部１０６では、フィードバック情報解析部１０５から通知された輻輳発生の判断結果や、エラーレート、ＲＴＴの情報を用いて符号化レート及びＦＥＣレートを決定する。そして、符号化レートは動画像符号化部１０１に、ＦＥＣレートはＦＥＣ生成部１０２にそれぞれ通知する。すなわち、レート決定部１０６は、符号化レート（映像データの送信レート）（及びＦＥＣレート）を決定する。ここで、ＦＥＣレートは、（誤り訂正用の）冗長データの送信レートである。
【００２９】
即ち、動画像データ配信装置１００は、映像データ（符号化データ）と冗長データ（ＦＥＣデータ）を含む第１の通信データを動画像データ受信装置２００へ送信する。そして、第１の通信データの通信状況を示す通信状況情報（フィードバック情報）を動画像データ受信装置２００から受信する。そして、受信したフィードバック情報に応じて決定されたレートで映像データと冗長データを含む第２の通信データを動画像データ受信装置２００へ送信する。
【００３０】
図２は本発明の実施に好適な動画像データ受信装置の基本構成を示すブロック図である。
【００３１】
図２に示すように動画像データ受信装置２００は送受信部２０１、誤り訂正処理部２０２、動画像復号化部２０３、動画像再生部２０４、エラーレート計算部２０５、フィードバック情報生成部２０６から構成されている。
【００３２】
送受信部２０１では、動画像データ配信装置１００から送信された符号化データ及びＦＥＣデータを含む通信データを受信し、誤り訂正処理部２０２にデータを渡す。また、送受信部２０１は、符号化データ及びＦＥＣデータの受信時から所定の時間が経過するごとに、その期間における受信パケット数や欠落パケット数、ビットエラーが起こったパケット数の情報、及び伝播遅延時間の情報をエラーレート計算部２０５に通知する。また、送受信部２０１は、フィードバック情報生成部２０６から受け取ったフィードバック情報を、動画像データ配信装置１００に送信する。
【００３３】
誤り訂正処理部２０２は、送受信部２０１から受信した符号化データにエラーが発生していた場合、ＦＥＣデータを用いて符号化データを可能な限り復元し、正常に受信できた符号化データ、及び復元された符号化データを動画像復号化部２０３に渡す。
【００３４】
動画像復号化部２０３では、正常に受信できた符号化データ及び復元された符号化データを符号化形式に応じて復号化し、得られた動画像データを動画像再生部２０４に渡す。
【００３５】
動画像再生部２０４は、動画像復号化部２０３で復号化された動画像データを再生する。
【００３６】
エラーレート計算部２０５では、送受信部２０１から通知された受信パケット数、欠落パケット数、及びビットエラーの情報を用いてエラーレートを計算し、その結果、及び送受信部２０１から渡された伝播遅延時間をフィードバック情報生成部２０６に渡す。ここで、エラーレートの計算は、例えば、受信パケット数と欠落パケット数の情報から計算しても良いし、さらにビットエラーが起こったパケット数や、エラーが起こったビット数を用いて計算するなど、種々の方法をとることができる。また、エラーレートは、フィードバック情報に対応する期間のうち、総ビットレートが高い特定の期間におけるエラーレートとしても、フィードバック情報に対応する期間全体におけるエラーレートとしても良い。総ビットレートが高い期間におけるエラーレートを用いれば、輻輳の判断をより早く行うことができる。また、例えば、到着したフレームごとにエラーレートを算出し、フィードバック情報に対応する期間のうち、最もエラーレートが高かったフレームのエラーレートをフィードバック情報生成部２０６に渡すようにしても良い。このように、所定の区間ごとに計算したエラーレートのうち、最大のエラーレートを採用することで、フィードバック情報に対応する期間において、例えば一時的に輻輳が起こったことを検知することができる。
【００３７】
フィードバック情報生成部２０６では、エラーレート計算部２０５から渡されたエラーレートの情報、及び伝播遅延時間の情報と、生成するフィードバック情報が対応する期間を示す識別子を含むフィードバック情報を生成し、送受信部２０１に渡す。フィードバック情報が対応する期間を示す識別子は、例えば、対応する期間のパケットのうち、最初と最後のパケットのシーケンスナンバーである。そして、送受信部２０１は、フィードバック情報生成部２０６から受け取ったフィードバック情報を、動画像データ配信装置１００に送信する。
【００３８】
次に、スケジューリング部１０３で決定される、符号化データ、及びＦＥＣデータの送信順序について、図３を用いて説明する。
【００３９】
図３のフレーム３００とフレーム３１０、フレーム３２０は、それぞれ動画像におけるフレームであり、送信順序が連続していることを示している。また、図３は、各フレーム間におけるパケットの送信間隔が、フレーム内におけるパケットの送信間隔よりも長いことを示している。
【００４０】
また、各フレームのデータには、動画像符号化部１０１で符号化された符号化データ３１１のパケットと、ＦＥＣ生成部１０２で符号化データ３１１に対して排他的論理和（ＸＯＲ）演算をかけて生成されたＦＥＣデータ３１２のパケットが含まれる。ここで、各データの送信順序は、フレーム毎に符号化データのパケットを先頭に置き、ＦＥＣデータのパケットが符号化データのパケットの後になるように送信する。つまり、図３に示すように、フレーム３００のＦＥＣ化データのパケットは、同じくフレーム３００の符号化データのパケットよりも後の送信順序になるように送信順序が決定される。そして、フレーム３００の最後に送信されるＦＥＣデータのパケットと、フレーム３１０で最初に送信される符号化データのパケットの間隔は、フレーム内におけるパケットの間隔よりも長い。
【００４１】
尚、本実施形態では、１つのフレームごとに送信間隔をあけて送信するようにしたが、これに限らず、例えば、複数のフレームごとや、１つのフレームを複数に分けるようにしても良い。この場合、それらのまとまりごとに符号化データのパケットとＦＥＣデータのパケットの送信順序を決定すれば良い。即ち、スケジューリング部１０３は、所定の間隔をあけたブロック単位で送信される通信データに含まれる冗長データ（ＦＥＣデータのパケット）が、ブロック内において映像データ（符号化データのパケット）よりも後の送信順序となるように、映像データ及び冗長データのブロック内における送信順序を決定する。
【００４２】
このように送信順序を決定するのは、以下の理由による。即ち、符号化レートとＦＥＣレートを合わせた伝送レートがネットワークの有効帯域を超え、輻輳が発生した場合、バースト的に送信するパケットのうち、後方のパケットが欠落しやすい。従って、上記の送信順序を決定するアルゴリズムを採用することによって、輻輳発生時にも再生に必要な符号化データの欠落を低減することができる。また、輻輳が発生したと判断されない場合であっても、実際にはビットエラーやパケットロスが起こっている場合がある。このような場合であっても、上記の送信順序の決定方法を採用することで、再生に必要な符号化データの欠落を低減することができる。
【００４３】
次に、動画像データ配信装置（通信装置）１００における動画像データの送信処理の手順について、図４のフローチャートを用いて説明する。
【００４４】
尚、本実施形態の動画像データ配信装置１００は、図４で説明する各部の処理を、記憶されるプログラムに基づいて行う。即ち、動画像データ配信装置１００の各制御を行うＣＰＵが、ＲＯＭ等に記憶される制御プログラムを、メモリ上に適宜読み出し、処理を実行する。ただし、これらの処理を専用のハードウェアによって行うようにしても良い。
【００４５】
図中のＤ４２０は伝送レート制御に必要な情報を保持するデータベースであり、レート決定部１０６で保持される。ここで、目標符号化レートとは、送信する動画像データの符号化レートの目標値であり、本実施形態では、符号化レートは目標符号化レートを超えることはない。
【００４６】
また、符号化レート及びＦＥＣレートは、現在、送信を行っている符号化レート及びＦＥＣレートである。過去のＦＥＣレートとは、ＦＥＣレートを変更するときに、変更前のＦＥＣレートを、対応するシーケンスナンバーとともに任意の個数で配列として保持するものである。エラーレート及びＲＴＴは、動画像データ受信装置２００から受信したフィードバック情報から、上述した方法によって得られるエラーレートとＲＴＴの最新値である。
【００４７】
図４において、送受信部１０４は、レート決定部１０６によって決定されたレートで生成された符号化データのパケットとＦＥＣデータのパケットをスケジューリング部１０３で決定された順序で送信する（Ｓ４０１）。Ｓ４０２では、フィードバック情報解析部１０５が、動画像データ受信装置２００から送信されるフィードバック情報を受信したか判断し、フィードバック情報を受信した場合は、Ｓ４０５へ、受信していない場合は、Ｓ４０３へ進む。
【００４８】
Ｓ４０３では、レート決定部１０６が、動画像データの符号化レートが目標符号化レートよりも小さいか判断し、符号化レートが目標符号化レートよりも小さい場合（Ｓ４０３の判定でＹＥＳ）は、ＦＥＣレートを予め定められた上昇率で上げる。即ち、レート決定部１０６は、次のフィードバック情報を受信するまでの間、冗長データの送信レート（ＦＥＣレート）を段階的に増加させる。そして、変更前のＦＥＣレートと、対応するシーケンスナンバーとを合わせて、過去のＦＥＣレートとしてデータベースＤ４２０に保持させる（Ｓ４０４）。また、変更後のＦＥＣレートを現在のＦＥＣレートとして、レート決定部１０６のデータベースＤ４２０に保持させ、Ｓ４０１に戻る。
【００４９】
Ｓ４０３において、符号化レートが目標符号化レートに達している場合（Ｓ４０３の判定でＮＯ）は、Ｓ４０１に戻る。即ち、Ｓ４０２〜Ｓ４０４の説明からもわかるように、レート決定部１０６は、フィードバック情報を受信するまで、符号化レートを維持する。
【００５０】
Ｓ４０２において、フィードバック情報解析部１０５が動画像データ受信装置２００からのフィードバック情報を受信したと判断した場合は、Ｓ４０５に進む。Ｓ４０５では、フィードバック情報解析部１０５が、フィードバック情報に含まれるエラーレートを取得し、さらにＲＴＴを計算し、データベースＤ４２０のデータを更新する。
【００５１】
Ｓ４０６（判断手順）において、フィードバック情報解析部１０５は、エラーレートとＲＴＴが、予め定められた輻輳発生判断の閾値を超えているか判断し、その判断結果をレート決定部１０６に通知する。ここで、閾値を超えていない場合は、輻輳が発生していないと判断してＳ４０７に進み、レート決定部１０６によって、動画像データの符号化レートが増加するように符号化レートが更新される。一方、閾値を超えている場合は、輻輳が起こっていると判断してＳ４１２に進み、レート決定部１０６によって計算式から算出された有効帯域に応じて符号化レートが更新される。
【００５２】
即ち、フィードバック情報解析部１０５は、第２の通信データに含まれる映像データの送信レート（更新後の符号化レート）を、第１の通信データに含まれる映像データの送信レート（更新前の符号化レート）より増加させるかを動画像データ受信装置２００から送信される通信状況情報（フィードバック情報）に応じて判断する。
【００５３】
尚、上述のとおり、輻輳の発生は、エラーレート、及びＲＴＴの両方を用いて判断しても、どちらか一方を用いて判断するようにしても良い。即ち、フィードバック情報解析部１０５は、通信データのエラー情報（エラーレート）が閾値を超える場合、映像データの送信レートを増加させない（輻輳が発生した）と判断する。また、フィードバック情報解析部１０５は、動画像データ受信装置２００との間における通信データの伝送にかかる時間に関する時間情報（ＲＴＴ）が閾値を超える場合、映像データの送信レートを増加させない（輻輳が発生した）と判断する。
【００５４】
Ｓ４０７（映像レート決定手順）において、レート決定部１０６は、現在の符号化レートが、動画像データ受信装置２００がフィードバック情報を送信した時刻における、ＦＥＣレートの分だけ増加するように、現在の符号化レートを更新する。即ち、レート決定部１０６は、まず、現在の符号化レートを旧符号化レートとして一時的に保持する。そして、受信したフィードバック情報に対応する期間における最後のパケットのシーケンスナンバーに対応したＦＥＣレートを、データベースＤ４２０の過去のＦＥＣレートから取得する。そして、現在の符号化レートに、データベースＤ４２０から取得したＦＥＣレートを加算したレートを新しい符号化レートとし、データベースＤ４２０の符号化レートを更新する。尚、旧符号化レートは、後述するＳ４０９においてＦＥＣレートの算出に利用する。
【００５５】
即ち、Ｓ４０６において、更新後の符号化レートを更新前の符号化レートより増加させると判断した場合、レート決定部１０６は、Ｓ４０７で、以下のように処理を行う。即ち、レート決定部１０６は、更新後の符号化レートを、更新前の符号化データ、及び、フィードバック情報に対応する期間における最後のパケットのシーケンスナンバーに対応したＦＥＣデータを含む、第１の通信データの送信レートに応じて決定する。ここで、更新前の符号化レートは、更新前に送信された第１の通信データに含まれる映像データの送信レートであり、更新後の符号化レートは、更新後に送信される第２の通信データに含まれる映像データの送信レートである。尚、レート決定部１０６は、更新後の符号化レートを、フィードバック情報に対応する期間における最後のパケットのシーケンスナンバーに対応したＦＥＣデータの送信レートに応じて増加するように決定しても良い。すなわち、レート決定部１０６は、更新後に送信される第２の通信データに含まれる映像データの送信レートを、更新前に送信される第１の通信データに含まれる冗長データの送信レートに応じて、更新前より増加するように決定しても良い。
【００５６】
尚、本実施形態では、輻輳発生の判断において、ＲＴＴとエラーレートが予め定めた閾値を超えているかによって判断しているが、これに限らず、これまでに取得された値との比較等によって判断するようにしても良いことは上述の通りである。その場合、これまでに取得されたフィードバック情報から得られたＲＴＴ、エラーレートの値を、例えば、データベースＤ４２０に保持しておけば良い。
【００５７】
Ｓ４０７で現在の符号化レートを更新すると、Ｓ４０８に進み、レート決定部１０６は、新しく更新した符号化レートが目標符号化レートに達しているか判定する。Ｓ４０８において、更新した符号化レートが目標符号化レートに達していると判定された場合（Ｓ４０８の判定でＮＯ）、Ｓ４１０において、レート決定部１０６は、符号化レートを目標符号化レートに決定し、データベースＤ４２０を更新すると共に、決定された符号化レートを動画像符号化部１０１に通知する。そして、Ｓ４１１において、レート決定部１０６は、ＦＥＣレートをゼロに決定し、データベースＤ４２０を更新すると共に、決定されたＦＥＣレートをＦＥＣ生成部１０２に通知する。そして、決定された符号化レート、ＦＥＣレートに応じて生成されたパケットが、スケジューリング部１０３で決定された送信順序で、送受信部から送信される（Ｓ４０１）。ただし、Ｓ４１１において、ＦＥＣレートをゼロにせず、目標符号化レートに達した符号化データにＦＥＣデータを付加しても良い。
【００５８】
一方、符号化レートが目標符号化レートに達していないと判定された場合（Ｓ４０８の判定でＹＥＳ）、Ｓ４０９に進む。Ｓ４０９（冗長レート決定手順）において、レート決定部１０６は、ＦＥＣレートを、Ｓ４０７で保持した旧符号化レートに、現在のＦＥＣレートを加算したレート、つまり総ビットレートからＳ４０７で新しく算出した符号化レートを差し引いたレートに設定する。つまり、Ｓ４０９で決定されるＦＥＣレートは、動画像データ受信装置２００からフィードバック情報が送信されてから、動画像データ配信装置１００が受信したと判断されるまでの間にＳ４０４で加算されたＦＥＣレートに相当する。すなわち、レート決定部１０６は、Ｓ４０９において、ＦＥＣレートを決定する。
【００５９】
Ｓ４０９においてＦＥＣレートを決定したレート決定部１０６は、データベースＤ４２０を更新すると共に、決定されたＦＥＣレートをＦＥＣ生成部１０２に通知する。そして、決定された符号化レート、ＦＥＣレートに応じて生成されたパケットが、スケジューリング部１０３で決定された送信順序で送信される（Ｓ４０１）。
【００６０】
一方、Ｓ４０６において、フィードバック情報解析部１０５が、輻輳発生と判断した場合、Ｓ４１２に進む。Ｓ４１２において、レート決定部１０６は、有効帯域を、ＴＦＲＣのスループット方程式に当てはめて算出する。スループット方程式を図７に示す。同図に示すように、フィードバック情報に含まれるＲＴＴ、エラーレート、及びパケットサイズの情報から、ネットワークの有効帯域を算出することができる。即ち、レート決定部１０６は、通信状況情報（フィードバック情報）に応じて、第２の通信データの送信レート（更新後の総ビットレート）を算出する。ただし、有効帯域の算出方法は、これに限定されない。そして、算出された値を符号化レートに設定し、ＦＥＣレートをゼロにリセットし、決定された符号化レートとＦＥＣレートを、それぞれ、動画像符号化部１０１及びＦＥＣ生成部１０２に通知する。そして、決定された符号化レート、ＦＥＣレートに応じて生成されたパケットが、スケジューリング部１０３で決定された送信順序で送信される（Ｓ４０１）。送受信部１０４は、伝送レートの更新後の第２の通信データを送信する間、第２の通信データに含まれる映像データの送信レートをＳ４０９（又はＳ４１０）で決定された送信レートに維持する。
【００６１】
即ち、Ｓ４０６で、第２の通信データに含まれる映像データの送信レート（更新後の符号化レート）を第１の通信データに含まれる映像データの送信レート（更新前の符号化レート）より増加させない（輻輳が発生した）と判断された場合、レート決定部１０６は、以下のように処理を行う。即ち、レート決定部１０６は、Ｓ４１２で、フィードバック情報に応じて算出された通信データの送信レートに応じて、映像データの送信レート（符号化レート）を決定する。
【００６２】
ここで、図４の処理について、図６を用いてさらに詳しく説明する。図６は、動画像データ配信装置１００のレート決定部１０６が決定する符号化レート、及び符号化レートとＦＥＣレートを合わせた通信データの総ビットレートの変動例を示すタイムチャート図である。
【００６３】
同図において、まず、レート決定部１０６は、ある時刻Ｖにおいて動画像データ受信装置２００から送信されたフィードバック情報を時刻Ｗにおいて受信してから、再びフィードバック情報を受信する時刻Ｙまで、符号化レートを維持し、ＦＥＣレートを増加させる。この処理は、図４のＳ４０１からＳ４０４の処理に対応している。
【００６４】
そして、時刻Ｙにおいてフィードバック情報を受信すると、フィードバック情報解析部１０５が、そのフィードバック情報から取得されるエラーレートの情報、及び、算出されるＲＴＴの情報を更新し、それらの情報に応じて、輻輳が起こったか判断する。この例では、フィードバック情報に対応する、時刻Ｖから時刻Ｘまでの範囲において輻輳が起こっているか判断する。つまり、この例では、前にフィードバック情報が送信された時刻（時刻Ｖ）から、次のフィードバック情報が送信される時刻（時刻Ｘ）までの期間が、時刻Ｘに送信されるフィードバック情報に対応する期間になっている。尚、この処理は、図４のＳ４０５、４０６の処理に対応している。
【００６５】
そして、図６の例では、輻輳は起こっていないと判断され、符号化レートの更新が行われる。つまり、時刻Ｘにおける総ビットレートが、時刻Ｙからの新たな符号化レートとなる。そして、図６の例では、符号化レートが、まだ目標符号化レートに達していないので、ＦＥＣレートを更新する。つまり、時刻Ｙにおける更新前の符号化レート（旧符号化レート）に、時刻ＹにおけるＦＥＣレートを加算したレート（総ビットレート）から、時刻Ｙにおける更新後の符号化レートを差し引いたレートになるように、ＦＥＣレートを決定する。これらの処理は、図４のＳ４０７からＳ４０９に対応する。
【００６６】
一方、時刻Ｙから時刻Ｚまでの期間において、総ビットレートが有効帯域を超えている。したがって、時刻Ｚに動画像データ受信装置２００から送信されるフィードバック情報を受信した動画像データ配信装置１００は、受信したフィードバック情報に対応する期間において、輻輳が起こったと判断する。この場合、上述した図７のスループット方程式で有効帯域を算出し、算出された値を符号化レートに、ＦＥＣレートをゼロに決定する。この処理は、図４のＳ４１２に相当する。
【００６７】
即ち、動画像データ配信装置１００は、時刻Ｗから時刻Ｙにおける映像データ（符号化データ）と冗長データ（ＦＥＣデータ）を含む通信データ（第１の通信データ）を動画像データ受信装置２００に送信する。また、第１の通信データの通信状況を示す通信状況情報（フィードバック情報）を動画像データ受信装置から受信する。そして、時刻Ｙ以降の映像データと冗長データを含む通信データ（第２の通信データ）を動画像データ受信装置２００に送信する。
【００６８】
図６からわかるように、目標符号化レートが実際の有効帯域よりも大きい場合、有効帯域を探るために通信データの総ビットレートを増加させている。しかし、符号化レートは、フィードバック情報を受信するまで維持する。そのため、総ビットレートが実際の有効帯域を超えても、符号化レートは、有効帯域以下に留まることになり、再生に必要な符号化データの欠落を低減することができる。
【００６９】
次に、動画像データ受信装置２００における処理の手順について、図５のフローチャートを用いて説明する。
【００７０】
尚、本実施形態の動画像データ受信装置２００は、図５で説明する各部の処理を、記憶されるプログラムに基づいて行う。即ち、動画像データ受信装置２００の各制御を行うＣＰＵが、ＲＯＭ等に記憶される制御プログラムを、メモリ上に適宜読み出し、処理を実行する。ただし、これらの処理を専用のハードウェアによって行うようにしても良い。
【００７１】
動画像データ受信装置２００の送受信部２０１は、動画像データ配信装置１００からパケットを受信すると（Ｓ５０１）、予め定められた解析時間を経過しているかどうかを判断する（Ｓ５０２）。即ち、動画像データ受信装置２００は、前回のフィードバック情報の送信時刻からの経過時間を計時しており、経過時間が解析時間に達すると、フィードバック情報を送信するためのステップに進む。
【００７２】
Ｓ５０２で、経過時間が解析時間に達していないと判断された場合、エラーレート計算部２０５において受信パケット数や欠落パケット数、ビットエラー情報、及び伝播遅延時間等の解析情報を更新し（Ｓ５０３）、再びパケット受信待ちに戻る（Ｓ５０１）。
【００７３】
Ｓ５０２で、経過時間が解析時間に達したと判断された場合、エラーレート計算部２０５は、それまでの解析情報を用いてエラーレートを計算する（Ｓ５０４）。
【００７４】
上述の通り、エラーレートの計算は、例えば、受信パケット数と欠落パケット数の情報から計算しても良いし、さらにビットエラーが起こったパケット数や、エラーが起こったビット数を用いて計算するなど、種々の方法をとることができる。また、エラーレートは、フィードバック情報に対応する期間のうち、総ビットレートが高い特定の期間におけるエラーレートしても、フィードバック情報に対応する期間全体におけるエラーレートとしても良い。総ビットレートが高い期間におけるエラーレートを用いることにより、輻輳の判断をより早く行うことができる。また、例えば、到着したフレームごとにエラーレートを算出し、フィードバック情報に対応する期間のうち、最もエラーレートが高かったフレームのエラーレートをフィードバック情報生成部２０６に渡すようにしても良い。このように、所定の区間ごとに計算したエラーレートのうち、最大のエラーレートを採用することで、フィードバック情報に対応する期間において、例えば一時的に輻輳が起こったことを検知することができる。
【００７５】
また、伝播遅延時間は、上述のように、動画像データ配信装置１００から送信したパケットが、動画像データ受信装置２００で受信されるまでにかかった時間を示している。また、動画像データ配信装置１００に通知する伝播遅延時間は、例えば、フィードバック情報に対応する期間に受信した各パケットの伝播遅延時間のうち、最も大きい値としても良いし、各パケットの伝播遅延時間の平均値としても良い。
【００７６】
Ｓ５０５において、フィードバック情報生成部２０６は、Ｓ５０４で計算したエラーレート、及び伝播遅延時間の情報、及び解析対象の範囲における最初と最後のパケットのシーケンスナンバーを含むフィードバック情報を生成する。
【００７７】
Ｓ５０６では、送受信部２０１が、Ｓ５０５でフィードバック情報生成部２０６が生成したフィードバック情報を動画像データ配信装置１００に送信する。さらに、Ｓ５０７では、エラーレート計算部２０５で保持している受信パケット数や欠落パケット数、遅延伝播時間などの解析情報、及び経過時間の情報をリセットして、再びパケット受信待ちに戻る（Ｓ５０１）。
【００７８】
なお、本実施形態では輻輳発生の判断、有効帯域算出、符号化レート及びＦＥＣレート決定処理を動画像データ配信装置１００側で行っている。しかし、動画像データ受信装置２００側で符号化レート、ＦＥＣレートの決定処理を行い、フィードバック情報として決定レートを動画像データ配信装置１００に送るようにしてもよい。また、本実施形態ではエラーレートの計算を動画像データ受信装置２００側で行っている。しかし、例えば受信パケット数と欠落パケット数の情報をフィードバック情報として動画像データ配信装置１００に送り、動画像データ配信装置１００側でエラーレートの計算を行ってもよい。
【００７９】
尚、本実施形態のレート決定部１０６は、図６に示すように、例えば時刻Ｗにおいてフィードバック情報を受信してから、時刻Ｙにおいて次のフィードバック情報を受信するまで、ＦＥＣレートを徐々に増加させていた。このようにすることにより、対応する各期間の伝送レートにおけるエラーレートや伝送遅延時間の情報を取得することができる。しかし、冗長データ（ＦＥＣデータ）のレートの上げ方は、この例に限らない。つまり、レート決定部１０６は、例えば、時刻Ｘに送信するフィードバック情報に、図６に示す時刻Ｘにおける総ビットレートに対するエラーレートや伝送遅延時間の情報が含められるように、ＦＥＣレートを決定すれば良い。即ち、例えば、図６の時刻Ｗから、時刻Ｙに受信するフィードバック情報に対応する期間の終端を示す時刻Ｘまでにおけるいずれかの時点で、時刻Ｘにおける総ビットレートになるようにＦＥＣレートを決定することも可能である。この場合、レート決定部１０６は、例えば、時刻Ｗから時刻Ｘの直前まで、時刻ＷにおけるＦＥＣレートのまま変化させず、時刻Ｘよりも前の所定のタイミングで時刻Ｘに示されるレートまでＦＥＣレートを増加させる。このようにすれば、ネットワーク上のトラフィックの増加を抑えることができる。また、別の例として、時刻Ｗにおいて、図６に示す時刻ＸにおけるＦＥＣレートまで冗長データのレートを上げるようにすることも可能である。
【００８０】
また、通信データのレート（総ビットレート）が有効帯域に達していない間は、ＦＥＣレートを一定に保つようにしても良い。この例において、例えば、フィードバック情報の受信時に符号化レートを上げると判断した場合、その時点における総ビットレートを新たな符号化レートに決定し、当該符号化レートに、変更前と同じ一定レートのＦＥＣデータを付加して送信するようにする。このように、ＦＥＣレートを一定にすれば、レート決定部１０６における、ＦＥＣレートを算出する処理を軽減することができる。
【００８１】
＜実施形態２＞
本発明の目的は、次の形態によっても達成される。即ち、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する形態である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００８３】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される形態には限られない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００８４】
【図１】動画像データ配信装置１００の基本構成を示すブロック図である。
【図２】動画像データ受信装置２００の基本構成を示すブロック図である。
【図３】スケジューリング部１０３で決定される符号化データとＦＥＣデータの送信順序を示す図である。
【図４】動画像データ配信装置１００の動作を示すフローチャート図である。
【図５】動画像データ受信装置２００の動作を示すフローチャート図である。
【図６】動画像データ配信装置１００における総ビットレート及び符号化データレートの変動例を示すタイムチャート図である。
【図７】ＴＦＲＣで用いられるスループット方程式である。
【符号の説明】
【００８５】
１００  動画像データ配信装置
１０１  動画像符号化部
１０２  ＦＥＣ生成部
１０３  スケジューリング部
１０４  送受信部
１０５  フィードバック情報解析部
１０６  レート決定部
１０７  動画像入力部
１５０  ネットワーク
２００  動画像データ受信装置
２０１  送受信部
２０２  誤り訂正処理部
２０３  動画像復号化部
２０４  動画像再生部
２０５  エラーレート計算部
２０６  フィードバック情報生成部
【図１】
0005094546.tif 000002
【図２】
0005094546.tif 000003
【図３】
0005094546.tif 000004
【図４】
0005094546.tif 000005
【図５】
0005094546.tif 000006
【図６】
0005094546.tif 000007
【図７】
0005094546.tif 000008