(57)【要約】【課題】  通信エラーが発生する原因によっては、適切なＱｏＳの制御ができない恐れがあった。【解決手段】  エラーパターン解析部１０９は、連続して送信するパケット群（グループ）内における棄却パケットの位置を特定する（Ｓ８０８）。そして、ＱｏＳ制御部１１０は、エラーパターン解析部１０９によって特定された位置に基づいて、通信エラーが発生する原因に応じたＱｏＳの制御を行う（Ｓ８１０〜Ｓ８２２）。【選択図】  図１
2010011212.tif 000002
【特許請求の範囲】
【請求項１】
複数のパケットを、順次、通信相手に送信する送信装置であって、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手段と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信手段と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置に基づいて、グループ内のパケット数、及び、前記通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信する修正用データのデータ数のうち、少なくともいずれかを設定する設定手段と
を有することを特徴とする送信装置。
【請求項２】
前記設定手段は、連続して送信する複数のグループのそれぞれにおいて、対応する位置でエラーが発生する場合、グループ内のパケット数を減少させる
ことを特徴とする請求項１記載の送信装置。
【請求項３】
前記設定手段は、連続して送信する複数のグループのそれぞれで、最後に送信するパケットがエラーになった場合、グループ内のパケット数を減少させる
ことを特徴とする請求項１記載の送信装置。
【請求項４】
前記設定手段は、連続して送信する複数のグループのそれぞれで、最初に送信するパケットから所定パケット数あとに送信されるパケットがエラーになった場合、グループ内のパケット数を減少させる
ことを特徴とする請求項１記載の送信装置。
【請求項５】
前記設定手段は、連続して送信する複数のグループのそれぞれで、グループ内のパケットのうち所定割合以上のパケットがエラーになった場合、グループ内のパケット数を減少させる
ことを特徴とする請求項１記載の送信装置。
【請求項６】
前記通信相手に送信するデータには、映像データを含み、
前記設定手段は、連続して送信する複数のグループのそれぞれで最初にエラーとなったパケットの位置が他のグループの最初にエラーとなったパケットの位置と対応しない場合、前記通信相手に送信する映像データのデータ数に対する修正用データのデータ数を増加させる
ことを特徴とする請求項１記載の送信装置。
【請求項７】
連続してエラーになるパケットが所定数よりも多い場合、パケットの再生順序に対する送信順序が一定とならないように制御する制御手段
を有することを特徴とする請求項１乃至６のうち、いずれか１項記載の送信装置。
【請求項８】
前記受信手段は、第１の複数のグループの受信状況を示す第１の受信情報と、当該第１の複数のグループよりも後に送信した第２の複数のグループの受信状況を示す第２の受信情報を受信し、
前記設定手段は、前記第１の受信情報、及び前記第２の受信情報に基づいて、前記第２の複数のグループよりも後に送信する第３の複数のグループ内におけるパケット数を設定する
ことを特徴とする請求項１記載の送信装置。
【請求項９】
前記設定手段は、前記第２の複数のグループでエラーとなるパケットの位置のうちの最も前の位置が所定の位置より前である場合、前記第２の複数のグループでエラーとなるパケットの位置のうちの最も前の位置が前記所定の位置である場合より、前記第１の受信情報の重み付けが軽くなるように重み付けを設定し、当該重みを設定した第１の受信情報及び第２の受信情報に基づいて、前記第３の複数のグループ内のパケット数を決定する
ことを特徴とする請求項８記載の送信装置。
【請求項１０】
連続して送信する複数のグループ内の対応する位置と対応しない位置でエラーが発生した場合、
前記設定手段は、グループ内のパケット数を減少させ、前記通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信する修正用データのデータ数を増加させる
ことを特徴とする請求項１記載の送信装置。
【請求項１１】
前記グループ内のパケット数が、グループによって異なる場合、
前記設定手段は、前記グループ内のパケット数が所定数以上の複数のグループ内の対応する位置でエラーが発生する場合、パケット数が前記所定数以上のグループ内のパケット数を減少させる
ことを特徴とする請求項１記載の送信装置。
【請求項１２】
複数のパケットを、順次、通信相手に送信する送信装置が行う送信方法であって、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御工程と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信工程と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置に基づいて、グループ内のパケット数、及び、前記通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信する修正用データのデータ数のうち、少なくともいずれかを設定する設定工程と、
を有することを特徴とする送信方法。
【請求項１３】
複数のパケットを、順次、通信相手に送信するコンピュータに、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手順と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信手順と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置に基づいて、グループ内のパケット数、及び、前記通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信する修正用データのデータ数のうち、少なくともいずれかを設定する設定手順と、
を実行させることを特徴とするプログラム。
【請求項１４】
複数のパケットを、順次、通信相手にネットワークを介して送信する送信装置であって、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手段と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信手段と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置が、連続して送信する複数のグループ内の対応する位置であるか否かに応じて、前記ネットワークの状態を判断する判断手段と
を有することを特徴とする送信装置。
【請求項１５】
複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信する受信装置であって、
前記受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する取得手段と、
前記取得された識別情報により、前記送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケットの、グループ内における位置を特定し、当該特定されたグループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、前記ネットワークの状態を判断する判断手段と、
前記判断されたネットワークの状態を前記送信装置へ通知する通知手段と
を有することを特徴とする受信装置。
【請求項１６】
複数のパケットを、順次、通信相手にネットワークを介して送信する送信装置が行う送信方法であって、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御工程と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信工程と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置が、連続して送信する複数のグループ内の対応する位置であるか否かに応じて、前記ネットワークの状態を判断する判断工程と
を有することを特徴とする送信方法。
【請求項１７】
複数のパケットを、順次、通信相手にネットワークを介して送信するコンピュータに、
あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手順と、
前記通信相手から、パケットの受信状況を示す受信情報を受信する受信手順と、
パケットを送信するグループ内における、エラーが発生したパケットの位置を、前記受信情報から特定し、当該エラーが発生したパケットの位置が、連続して送信する複数のグループ内の対応する位置であるか否かに応じて、前記ネットワークの状態を判断する判断手順と
を実行させることを特徴とするプログラム。
【請求項１８】
複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信する受信装置が行う処理方法であって、
前記受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する取得工程と、
前記取得された識別情報により、前記送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケットの、グループ内における位置を特定し、当該特定されたグループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、前記ネットワークの状態を判断する判断工程と、
前記判断されたネットワークの状態を前記送信装置へ通知する通知工程と
を有することを特徴とする処理方法。
【請求項１９】
複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信するコンピュータに、
前記受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する取得手順と、
前記取得された識別情報により、前記送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケットの、グループ内における位置を特定し、当該特定されたグループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、前記ネットワークの状態を判断する判断手順と、
前記判断されたネットワークの状態を前記送信装置へ通知する通知手順と
を実行させることを特徴とするプログラム。
【請求項２０】
前記通信相手に送信するパケットには、映像データのパケットと前記修正用データのパケットを含み、
前記設定手段は、
連続して送信する複数のグループのそれぞれで、最後に送信するパケットがエラーになっておらず、且つ、
前記連続して送信する複数のグループのそれぞれで、最初に送信するパケットから所定パケット数あとに送信されるパケットがエラーになっておらず、且つ、
あるグループ内のすべてのパケットがエラーになっていない場合、前記通信相手に送信する映像データのデータ数に対する前記修正用データのデータ数を増加させる
ことを特徴とする請求項１記載の送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有線あるいは無線のネットワークにおける通信技術に関する。
【背景技術】
【０００２】
近年、通信システムの発達により、比較的大きなデータ通信帯域が必要となるデータ、例えば、動画像データをインターネットなどの通信回線を介して送受信することが一般に行なわれている。
【０００３】
このようなデータの送信において、特にリアルタイム性を要する動画像データを送信する場合において、通信エラーの補償がないプロトコルが用いられることがある。通信エラーの補償がないプロトコルとは、例えば、ＲＴＰ（Ａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ａｐｐｌｉｃａｔｉｏｎｓ）である。
【０００４】
このような通信エラーの補償がないプロトコルで音声や動画像データを送信する際には、以下のようなＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）の技術によって、通信エラーの回避、修正を図ることが一般に行われる。即ち、ネットワークの状況に合わせた適応的な送信レートの制御（レート制御）、通信エラーが発生したパケットの再送制御、ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ：前方誤り訂正）による、通信エラーが発生したパケットの修正などである。
【０００５】
ここで、パケット棄却率とＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）の変動率などに応じてＱｏＳを制御する方法が知られている（例えば特許文献１）。特許文献１では、パケットロス率が閾値よりも高く、さらにＲＴＴが、予め記憶された最小往復遅延時間に対して高い場合、データの転送レートを下げている。
【０００６】
また、パケット棄却率とＲＴＴをレート制御に用いる手法の例として、例えば、非特許文献１がある。
【０００７】
非特許文献１のＴＦＲＣ（ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ）では、図１０に示す方程式により、ネットワークの使用可能帯域を算出している。
【０００８】
図１０の方程式において、Ｔｔｃｐは算出するネットワーク使用可能帯域、ＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｆｅｒ  Ｕｎｉｔ）は送出パケットの最大サイズである。また、Ｔｏは、ＴＣＰの受信確認（Ａｃｋ）が返ってくるまでの最大待ち時間となるタイムアウト時間、ｐは、１ＲＴＴ内のパケット棄却率を示している。すなわち、この方程式により、パケット棄却率とＲＴＴに応じて使用可能帯域を算出し、通信レートの制御を行っている。
【特許文献１】特開２００１−１６０８２４号公報
【非特許文献１】Ｍ．Ｈａｎｄｌｅｙ  ｅｔ  ａｌ．，“ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ  （ＴＦＲＣ）：Ｐｒｏｔｏｃｏｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”ＲＦＣ  ３４４８，Ｊａｎｕａｒｙ．２００３
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の方法では、通信エラーが発生する原因によっては、適切なＱｏＳの制御ができない恐れがあった。
【００１０】
即ち、例えば、通信エラーが発生する原因は、輻輳だけでなく、例えば、ノイズ（外乱）が原因である場合もある。また、ＲＴＴの変動も、例えば、受信装置による負荷の変動やネットワーク上のルートの変更など、輻輳以外の原因で発生することがある。
【００１１】
さらに、複数の通信ノードを経由してデータの送信を行う場合、例えば、通信エラーを発生させている通信ノードと、遅延を発生させている通信ノードが異なる場合もある。
【００１２】
つまり、ＲＴＴやパケット棄却率からでは、ネットワーク上で発生する通信エラーの原因を特定することができない場合があった。そして、例えば、ＲＴＴやパケット棄却率に応じて転送レートを下げても、通信エラーの原因がノイズである場合などは、パケット棄却率を下げることができないことがあった。また、例えば、例えば、ＲＴＴやパケット棄却率に応じてＦＥＣパケットを増加させても、通信エラーの原因が輻輳である場合などは、却って通信量が増えてしまい、パケット棄却率を下げることができないことがあった。
【００１３】
つまり、通信相手から取得したＲＴＴやパケット棄却率に応じて、ＱｏＳの制御を行っても、その制御が必ずしも適切なＱｏＳの制御であるとは限らなかった。
【００１４】
本発明は上記の問題に鑑みてなされたものであり、その目的は、ネットワーク上で発生している通信エラーの原因を特定できるようにすることである。
【００１５】
また、本発明の目的は、通信エラーが発生する原因に応じて、適切なＱｏＳの制御を行えるようにすることである。
【課題を解決するための手段】
【００１６】
本発明の課題を解決するために、例えば本発明の送信装置は以下の手段を備える。すなわち、複数のパケットを、順次、通信相手に送信する送信装置であって、あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手段と、通信相手から、パケットの受信状況を示す受信情報を受信する受信手段と、パケットを送信するグループ内における、エラーが発生したパケットの位置を、受信情報から特定し、当該エラーが発生したパケットの位置に基づいて、グループ内におけるパケット数、及び、通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信するデータのデータ数のうち、少なくともいずれかを設定する設定手段とを有する。
【００１７】
また、本発明の送信装置は、複数のパケットを、順次、通信相手にネットワークを介して送信する送信装置であって、あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御手段と、通信相手から、パケットの受信状況を示す受信情報を受信する受信手段と、パケットを送信するグループ内における、エラーが発生したパケットの位置を、受信情報から特定し、当該エラーが発生したパケットの位置が、連続して送信する複数のグループ内の対応する位置であるか否かに応じて、ネットワークの状態を判断する判断手段とを有する。
【００１８】
また、本発明の受信装置は、複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信する受信装置であって、受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する取得手段と、取得された識別情報により、送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケットの、グループ内における位置を特定し、当該特定されたグループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、ネットワークの状態を判断する判断手段と、判断されたネットワークの状態を前記送信装置へ通知する通知手段とを有する。
【００１９】
また、本発明の送信方法は、複数のパケットを、順次、通信相手に送信する送信装置が行う送信方法であって、あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御工程と、通信相手から、パケットの受信状況を示す受信情報を受信する受信工程と、パケットを送信するグループ内における、エラーが発生したパケットの位置を、受信情報から特定し、当該エラーが発生したパケットの位置に基づいて、グループ内におけるパケット数、及び、通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信するデータのデータ数のうち、少なくともいずれかを設定する設定工程とを有する。
【００２０】
また、本発明の送信方法は、複数のパケットを、順次、通信相手にネットワークを介して送信する送信装置が行う送信方法であって、あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける送信制御工程と、通信相手から、パケットの受信状況を示す受信情報を受信する受信工程と、パケットを送信するグループ内における、エラーが発生したパケットの位置を、受信情報から特定し、当該エラーが発生したパケットの位置が、連続して送信する複数のグループ内の対応する位置であるか否かに応じて、ネットワークの状態を判断する判断工程とを有する。
【００２１】
また、本発明の処理方法は、複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信する受信装置が行う処理方法であって、受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する取得工程と、取得された識別情報により、送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケットの、グループ内における位置を特定し、当該特定されたグループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、ネットワークの状態を判断する判断工程と、判断されたネッワークの状態を送信装置へ通知する通知工程とを有する。
【発明の効果】
【００２２】
本発明によれば、ネットワーク上で発生している通信エラーの原因を特定できる。
【００２３】
また、本発明によれば、通信エラーが発生する原因に応じて、適切なＱｏＳの制御を行うことができる。
【発明を実施するための最良の形態】
【００２４】
＜実施形態１＞
図１は、本発明の実施に好適な送信装置の基本構成を示すブロック図である。この送信装置１００は、パーソナルコンピュータ、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵した各種家電製品、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどのうち、複数のパケットを、順次、通信相手（受信装置）に送信することができる装置、もしくは、これらの組合せにより実現可能である。
【００２５】
図１に示すように、送信装置１００は、符号化部１０１、パケット生成部１０２、誤り訂正符号化部１０３、送信バッファ１０４、送信制御部１０５、送信位置情報記憶部１０６、送受信部１０７、再送制御部１０８、エラーパターン解析部１０９、ＱｏＳ制御部１１０、レート制御部１１１から構成されている。
【００２６】
符号化部１０１は、動画像や音声データを、レート制御部１１１から指示された符号化レートに基づいて、例えばＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−４方式により符号化することでデータ量を圧縮する。動画像データの圧縮方法としては、ＭＰＥＧ−４に限らずＭＰＥＧ−２やＨ．２６４（ＭＰＥＧ−４  ＡＶＣ）などの符号化方式を用いても良い。
【００２７】
パケット生成部１０２では、例えばＲＴＰプロトコルを用いて通信する場合、符号化部１０１により符号化されたデータを、通信に適したサイズに分割し、更に通信するために必要なヘッダを付加してＲＴＰのデータパケットを生成する。
【００２８】
誤り訂正符号化部１０３では、後述するＱｏＳ制御部１１０から指示される冗長度に従って、パケット生成部１０２にて生成されたデータパケットから、誤り訂正用のパケット（以下、ＦＥＣパケットと呼ぶ）を生成する。つまり、ＦＥＣパケットは、通信相手（受信装置）が、受信したパケットのエラー修正に利用できるように通信相手に送信するデータであり、冗長度は、データパケット数に対するＦＥＣパケット数を示すものである。
【００２９】
パケット生成部１０２で生成されたデータパケット、および、誤り訂正符号化部１０３で生成されたＦＥＣパケットは、送信バッファ１０４に一時保管される。
【００３０】
送信バッファ１０４に一時保管されたデータパケットおよびＦＥＣパケットは、送信制御部１０５によって決定された送信順序および送信時刻に応じて、送受信部１０７から、伝送路１１２へ送信される。
【００３１】
ここで、伝送路１１２は各種ネットワークに代表される伝送路であり、本実施形態においては、パケット化した動画像および音声データ、誤り訂正用データ等を送信するネットワークである。
【００３２】
送信制御部１０５は、ＱｏＳ制御部１１０からの指示によってパケットの送信順序、及び送信時刻を決定し、更に、送信パケットの情報を、送信位置情報記憶部１０６に記憶させる。このパケットの情報については、後述する。また、送信制御部１０５は、後述する再送制御部１０８からの再送指示に基づいて、再送するパケットの送信順序、及び送信時刻を決定する。また、本実施形態の送信制御部１０５は、図５のパケット送信の様子５０７に示すように、複数のパケットを連続して送信させる。また、送信制御部１０５は、連続して送信されるパケット群（グループ）の間に間隔をあける。
【００３３】
即ち、送信制御部１０５は、あるグループのパケットを送信してから次のグループのパケットを送信するまでの間に待機期間を設ける。
【００３４】
送受信部１０７は、送信バッファ１０４に記憶されるパケットの送信、及び伝送路１１２からのパケットを受信する機能を備えている。受信されるパケットには、例えば、受信装置におけるパケットの受信状況を送信装置１００に通知するためのパケット（受信情報パケット）がある。
【００３５】
即ち、送受信部１０７は、通信相手（受信装置）から、パケットの受信状況を示す受信情報（受信情報パケット）を受信する。
【００３６】
送受信部１０７は、受信情報パケットを受信すると、受信情報をエラーパターン解析部１０９に通知する。
【００３７】
また、送受信部１０７が受信するパケットには、例えば、通信経路で棄却されたパケット及びビットエラーとなったパケット（棄却パケット）の再送要求をするためのパケット（再送要求パケット）がある。送受信部１０７は、再送要求パケットを受信すると、その内容を再送制御部１０８に通知する。
【００３８】
再送制御部１０８は、送受信部１０７から受け取った再送要求に関する情報に応じて、送信制御部１０５に対してパケットの再送を指示する。
【００３９】
エラーパターン解析部１０９は、送受信部１０７から通知される受信情報と、送信位置情報記憶部１０６に記憶されているパケットの送信位置情報とから、連続送信されたパケット群（グループ）内における棄却パケットの位置を特定する。そして、エラーパターン解析部１０９は、特定された棄却パケットの位置に応じて、通信エラーのパターンを解析する。なお、受信情報には、棄却パケットの識別情報（シーケンスナンバー）が含まれている。
【００４０】
即ち、エラーパターン解析部１０９は、パケットを送信するグループ内における、エラーが発生したパケット（棄却パケット）の位置を、受信情報から特定する。
【００４１】
そして、エラーパターン解析部１０９は、エラーパターンの解析結果を、ＱｏＳ制御部１１０に通知する。エラーパターンの解析処理の詳細については、後述する。
【００４２】
ＱｏＳ制御部１１０では、エラーパターンの解析結果に応じて、誤り訂正符号化部１０３に対する冗長度の設定、送信制御部１０５に対するグループ内のパケット数や各グループの送信間隔の設定、レート制御部１１１に対する符号化レートの設定などを行なう。ＱｏＳ制御部１１０は、各グループで送信するデータパケットの数を、符号化レートとしてレート制御部１１１に対して設定する。
【００４３】
即ち、ＱｏＳ制御部１１０は、エラーが発生したパケットの位置に基づいて、以下のような設定を行う。すなわち、ＱｏＳ制御部１１０は、グループ内におけるパケット数、及び、通信相手（受信装置）が受信したパケットのエラー修正に利用できるように通信相手に送信するデータのデータ数のうち、少なくともいずれかを設定する。
【００４４】
ところで、本実施形態の送受信部１０７から送信するＲＴＰパケットのヘッダ（ＲＴＰヘッダ）には、パケット毎に連番で増加する番号が付加される。
【００４５】
図１１は、ＲＦＣ１８８９で定義されたＲＴＰヘッダのフォーマットである。同図において、『Ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ』（シーケンスナンバー）１１０２が前述のパケット毎に連番で増加する番号の例である。このシーケンスナンバー１１０２は、１６ビットの幅を持ち、受信装置は受信したパケットのシーケンスナンバーに抜けが無いか監視することで、通信経路でのパケットの棄却の有無を知ることができる。
【００４６】
次に、エラーパターン解析部１０９におけるエラーパターンの解析処理の内容について説明する。まず、エラーパターン解析部１０９が送受信部１０７から通知される、受信情報について具体的に説明する。
【００４７】
図４に示す受信情報は、受信装置から送信装置１００へ通知される受信情報パケットに含まれ、さらに、送受信部１０７からエラーパターン解析部１０９に通知される情報の例である。
【００４８】
図４のパケット棄却率４０１は、送信したパケットのうち、通信経路で棄却されたパケット及びビットエラーとなったパケット（棄却パケット）の割合を示し、ＲＴＴ４０２は、送信装置１００と受信装置との間でパケットが往復するのにかかった時間を示す。なお、ＲＴＴ４０２として、例えば、送信装置１００から送信されたパケットが受信装置に到着するまでにかかった時間、及び、受信情報パケットの送信時刻の情報が含まれる情報であっても良い。この場合、受信情報パケットを受信した送信装置１００が、上記２つの情報、及び、受信情報パケットの受信時刻により、送信装置１００と受信装置との間でパケットが往復するのにかかった時間を算出することができる。
【００４９】
また、棄却パケットのシーケンスナンバー４０３は、通信経路で棄却されたパケット及びビットエラーとなったパケット（棄却パケット）のシーケンスナンバーである。このシーケンスナンバー４０３は、図１１を用いて説明したＲＴＰヘッダに含まれるシーケンスナンバー１１０２に対応するナンバーである。つまり、エラーパターン解析部１０９は、棄却パケットのシーケンスナンバー４０３を参照することにより、通信経路で棄却されたパケット、及びビットエラーとなったパケットを特定することができる。また、受信データレート４０４は、受信装置で正常に受信できたパケットのビットレートを示す。
【００５０】
本実施形態のエラーパターン解析部１０９は、通信エラーのパターンを解析するために、図４に示す情報のうち、特に棄却パケットのシーケンスナンバー４０３を使用する。
【００５１】
次に、送信位置情報記憶部１０６に記憶された、パケットの送信位置情報の例について、図５を用いて説明する。
【００５２】
図５において、パケット送信の様子５０７は、パケット化された、動画の各フレームデータが、フレーム毎に連続送信される様子を示している。本形態では、送信パケットをフレームごとにグループ化して送信する。尚、本実施形態では、連続送信されるパケット群（グループ）は、フレーム毎としているが、これに限らず、スライス毎、複数フレーム毎など、任意の単位で連続送信するようにしても良い。また、あるグループにおいて最後に送信されるパケットから、次に送信されるグループにおいて最初に送信されるパケットまでの送信間隔は、グループ内におけるパケットの送信間隔よりも長い。
【００５３】
先頭シーケンスナンバー５０１は、パケット送信の様子５０７において、連続送信したパケット５０５の先頭に位置する先頭パケット５０４のＲＴＰヘッダに記録されたシーケンスナンバーを示す。つまり、先頭シーケンスナンバー５０１は、グループ内において最初に送信されるパケットのシーケンスナンバーを示している。連続送信パケット数５０２は、連続送信したパケット５０５のパケット数を示す。つまり、連続送信パケット数５０２は、グループ内のパケット数を示している。
【００５４】
フレーム識別フラグ５０３は、パケット化されたフレームの符号化方式の違いを示すフレーム種別５０６を識別可能なフラグを示す。フレーム種別５０６には、例えば、Ｉフレーム（Ｉｎｔｒａ  ｆｒａｍｅ）、Ｐフレーム（Ｐｒｅｄｉｃｔｉｖｅ  ｆｒａｍｅ）、Ｂフレーム（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ  ｐｒｅｄｉｃｔｉｖｅ  ｆｒａｍｅ）などがある。本実施形態のエラーパターン解析部１０９は、通信エラーのパターンを解析するために、図５に示す情報のうち、特に先頭シーケンスナンバー５０１と、連続送信パケット数５０２を使用する。
【００５５】
つまり、本実施形態におけるエラーパターン解析部１０９は、通信エラーのパターンを解析するために、以下の情報を参照する。すなわち、受信情報パケットから取得される棄却パケットのシーケンスナンバー４０３と、送信位置情報記憶部１０６に記憶されている先頭シーケンスナンバー５０１と、連続送信パケット数５０２である。送信位置情報記憶部１０６には、各グループ（各フレーム）の、先頭のパケットのシーケンスナンバー番号４０３、送信パケット数５０２が記憶されている。
【００５６】
ところで、インターネットなどの通信回線を介してデータ通信を行う場合にパケットが棄却する原因は様々だが、代表的な原因の１つにネットワーク帯域の輻輳がある。
【００５７】
このネットワーク帯域の輻輳によって、ネットワークを構成するハブやルータなどの通信機器において、比較的短い一定時間内に通過しようとするパケットの数が多くなると、パケットを処理するバッファが足りなくなり、その結果、パケットの棄却が発生する。
【００５８】
次に、エラーパターン解析部１０９による、通信エラーのパターン解析処理の内容について、図２及び図３を用いて説明する。
【００５９】
図２及び図３において、□は受信装置にて正常に受信したパケット、■は通信経路で棄却、或いはビットエラーとなったパケット（棄却パケット）を示している。エラーパターン解析部１０９は、正常に受信したパケットや、棄却パケットの時間軸上の送信位置を、棄却パケットのシーケンスナンバー４０３と、先頭シーケンスナンバー５０１と、連続送信パケット数５０２から特定することができる。つまり，エラーパターン解析部１０９は、棄却パケットの、グループ内における位置を特定することができる。尚、本実施形態において、グループとは、上述のように、連続送信されるパケット群を示すものである。
【００６０】
エラーパターン解析部１０９は、例えば、ある棄却パケットの、グループ内における位置を特定する場合、受信情報に含まれる棄却パケットのシーケンスナンバー４０３を参照する。そして、棄却パケットのシーケンスナンバー４０３に対応するシーケンスナンバーのパケットが含まれるグループを検索する。上述の通り、送信位置情報記憶部１０６には、これまでに送信されたパケットの先頭シーケンスナンバー５０１、連続送信パケット数５０２が記憶されている。このようにして、エラーパターン解析部１０９は、位置を特定したい棄却パケットが送信されたグループを特定することができる。そして、エラーパターン解析部１０９は、特定されたグループの先頭シーケンスナンバーと、棄却パケットのシーケンスナンバー４０３との差と、連続送信パケット数５０２とに基づいて、棄却パケットのグループ内における位置を特定することができる。ただし、エラーパターン解析部１０９による棄却パケットのグループ内における位置の特定方法は、これに限らない。
【００６１】
図２は、棄却パケットのグループ内における位置を示した図である。図２は、例えば動画のデータをパケット化したものをフレーム毎に連続送信した場合の例を示している。上述のように、各グループにおいて送信するパケットの数は、例えばフレームの種別によって異なる。
【００６２】
同図において、輻輳パターン１（２０１）は、連続して送信された各グループにおいて、最後のパケットを含む１つ以上の連続したパケットが棄却されるパターンを示している。
【００６３】
エラーパターン解析部１０９は、このエラーパターンが、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生した場合に、輻輳（パターン１）によるパケット棄却が発生したと判断する。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上の複数のグループにおいて発生した場合、輻輳（パターン１）によるパケット棄却が発生したと判断する。
【００６４】
即ち、エラーパターン解析部１０９は、連続して送信する複数のグループのそれぞれで、最後に送信するパケットがエラーになった場合、輻輳（パターン１）が発生していると判断する。
【００６５】
次に輻輳パターン２（２０２）は、各グループのパケットを、先頭から一定数正常に受信した後、一定数のパケットが棄却されるパターンを示している。このパターン２（２０２）において、正常受信或いは棄却されるパケットの一定数とは、ある程度のばらつきを含むものである。また、受信パケットと棄却パケットの数の相関は問わない。
【００６６】
エラーパターン解析部１０９は、このエラーパターンが、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生した場合に、輻輳（パターン２）によるパケット棄却が発生したと判断する。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上の複数のグループにおいて発生した場合、輻輳（パターン２）によるパケット棄却が発生したと判断する。即ち、エラーパターン解析部１０９は、連続して送信する複数のグループのそれぞれで、最初に送信するパケットから所定パケット数あとに送信されるパケットがエラーになった場合、輻輳（パターン２）が発生していると判断する。
【００６７】
次に輻輳パターン３（２０３）は、グループ内のパケットが全て棄却されるパターンを示している。エラーパターン解析部１０９は、このエラーパターンが、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生した場合に、輻輳（パターン３）によるパケット棄却が発生したと判断する。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上の複数のグループにおいて発生した場合、輻輳（パターン３）によるパケット棄却が発生したと判断する。尚、本実施形態の輻輳パターン３は、グループ内のパケットがすべて棄却される場合を示したが、グループ内のパケットのうち、所定割合以上のパケットが棄却された場合に、輻輳パターン３であるとエラーパターン解析部１０９が判断するようにしても良い。即ち、エラーパターン解析部１０９は、連続して送信する複数のグループのそれぞれで、グループ内のパケットのうち所定割合以上のパケットがエラーになった場合、輻輳（パターン３）が発生していると判断する。
【００６８】
以上のように、本実施形態のエラーパターン解析部１０９は、輻輳パターン１〜輻輳パターン３のようなパケット棄却が発生している場合、輻輳によるパケット棄却が発生していると判断する。
【００６９】
即ち、エラーパターン解析部１０９は、連続して送信する複数のグループ内の対応する位置でエラーが発生する場合、輻輳が発生していると判断する。
【００７０】
尚、本実施形態において、エラーパターン解析部１０９が輻輳を検知するパケットのエラーパターンは３つあるが、その中で、輻輳パターン１（２０１）は、比較的軽い輻輳状態の時に発生するエラーパターンである。一方、輻輳パターン２（２０２）及び輻輳パターン３（２０３）は比較的重い輻輳状態の時に発生するエラーパターンである。
【００７１】
尚、輻輳パターンの種類に応じて、それぞれ異なる基準でその輻輳パターンの発生を判断するようにしても良い。即ち、例えば、輻輳パターン１は、一般に、輻輳パターン２と比較して軽い輻輳状態であるため、複数の連続するグループのすべてにおいて、必ずしもパケット棄却が起きるとは限らない。つまり、輻輳パターン１の場合は、連続する複数のグループのうち、いくつかのグループでは、エラーが発生しない可能性がある。一方、輻輳パターン２は、一般に、輻輳パターン１と比較して重い輻輳状態であり、パケット棄却が発生する位置に多少のばらつきはあるとしても、複数の連続するグループにおいてパケット棄却が発生する可能性が高い。従って、例えば、輻輳パターン１の判断は、最後のパケットを含む１つ以上の連続したパケットが棄却されるパターンが所定の時間内に（または所定数のグループにおいて）所定の回数以上発生したか否かによって行う。一方、輻輳パターン２の判断は、各グループのパケットを、先頭から一定数正常に受信した後、一定数のパケットが棄却されるパターンが連続する所定回数以上発生したか否かによって行う。このように、輻輳パターンの種類に応じて、それぞれの輻輳パターンが発生していると判断する基準を設定するようにしても良い。
【００７２】
また、さらに、輻輳パターン１の発生を判断するために参照するグループの数と輻輳パターン２の発生を判断するために参照するグループの数を、輻輳パターンの種類や、その輻輳パターンが発生していると判断する基準に応じて設定するようにしても良い。例えば、輻輳パターン１が発生していると判断する基準が、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生したか否かによって行う場合、比較的多くのグループを参照する。一方、輻輳パターン２が発生していると判断する基準が、連続するすべてのグループで所定の条件を満たすパケット棄却が発生しているとする場合、輻輳パターン１と比較して少ないグループを参照して判断するようにしても良い。このようにすれば、より効率良くエラーパターンの解析を行うことができる。
【００７３】
また、上述のように、本実施形態では、グループ内のパケット数はフレームの種別によって変化する。つまり、例えば、Ｉフレームのグループは、グループ内のパケット数が多く、ＢフレームやＰフレームのグループ内のパケット数は、比較的少ない。従って、Ｉフレームのグループでは、グループの後ろのほうでパケット棄却が発生するが、Ｂフレームのグループは、連続送信されるパケット数が少ないため、そのようなパケット棄却が発生しない可能性がある。そこで、エラーパターン解析部１０９は、例えば、Ｉフレームのグループのみで棄却パケットの位置を特定し、その結果に応じて、パケット棄却のパターンを判断するようにしても良い。つまり、エラーパターン解析部１０９は、例えば、所定数のＩフレームのグループのうち、上記のようなエラーパターン（輻輳パターン１〜輻輳パターン３）が所定の回数以上発生した場合に、輻輳によるパケット棄却が発生したと判断しても良い。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上のＩフレームのグループにおいて発生した場合、輻輳によるパケット棄却が発生したと判断しても良い。
【００７４】
即ち、エラーパターン解析部１０９は、グループ内のパケット数がグループによって異なる場合、グループ内のパケット数が所定数以上の複数のグループ内の対応する位置でエラーが発生する場合に、輻輳が発生していると判断しても良い。
【００７５】
このようにすれば、グループによってパケット数が異なる場合であっても、より高い精度で輻輳の検知を行うことができる。
【００７６】
また、本実施形態のエラーパターン解析部１０９は、棄却パケットのグループ内における位置を特定し、エラーパターンを判断している。このとき、エラーパターン解析部１０９は、グループ内における位置を特定するために、棄却パケットのシーケンスナンバー、送信位置情報記憶部１０６に記憶されている先頭シーケンスナンバー５０１、連続送信パケット数５０２を参照している。
【００７７】
しかし、エラーパターン解析部１０９は、棄却パケットのグループ内の位置の代わりに、グループの先頭のパケットから棄却パケットまでのパケット数を特定するようにしても良い。すなわち、エラーパターン解析部１０９は、グループの先頭のパケットから棄却パケットまでのパケット数を、棄却パケットのシーケンスナンバーと、送信位置情報記憶部１０６に記憶されている先頭シーケンスナンバー５０１から特定することができる。そして、エラーパターン解析部１０９は、特定したパケット数が、連続して送信する複数のグループにおいて対応する場合、輻輳によるパケット棄却が発生していると判断する。また、エラーパターン解析部１０９は、輻輳によるパケット棄却が発生していると判断した場合、特定したパケット数が小さいほど、重い輻輳が発生していると判断するようにしても良い。これは、輻輳による棄却パケットがグループの前方にあるほど、連続送信されたパケットのうち、例えばルータなどの中継装置で正常に中継することができたパケットが少ないと判断できるからである。このようにすれば、より少ない情報で、エラーパターンを判断することができる。
【００７８】
次に図３を参照しながら、輻輳以外のエラーパターン解析について説明する。
【００７９】
図３は、図２と同様に、棄却されたパケットのグループ内における位置を示した図であり、例えば、動画のデータをパケット化したものをフレーム毎に連続送信した場合の例を示している。
【００８０】
図３において、ランダムパターン３０１は、連続して送信された各グループ内のパケットが、特に規則性も無く、例えば、１パケット単位でパケット棄却が発生しているパターンを示している。つまり、ランダムパターン３０１は、連続して送信する複数のグループのそれぞれでエラーとなったパケットの位置が他のグループでエラーとなったパケットの位置と対応しない。また、ランダムパターン３０１は、エラーが発生するパケットが所定数以上連続していない。
【００８１】
エラーパターン解析部１０９は、このエラーパターンが、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生した場合に、ランダムパターン３０１によるパケット棄却が発生したと判断する。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上の複数のグループにおいて発生した場合、ランダムパターン３０１によるパケット棄却が発生したと判断する。
【００８２】
一方、バーストパターン３０２は、連続して送信された各グループ内のパケットが、前述の輻輳を示すエラーパターンとは異なるパターンで、複数のパケットが連続して棄却されるパターンを示している。
【００８３】
つまり、バーストパターン３０２は、連続して送信する複数のグループのそれぞれでエラーとなったパケットの位置が他のグループでエラーとなったパケットの位置と対応しない。また、バーストパターン３０２は、エラーが発生するパケットが所定数以上連続している。
【００８４】
エラーパターン解析部１０９は、このエラーパターンが、所定の時間内に（または所定数のグループにおいて）所定の回数以上発生した場合に、バーストパターン３０２によるエラーが発生したと判断する。また、エラーパターン解析部１０９は、このエラーパターンが、連続する所定数以上の複数のグループにおいて発生した場合、バーストパターン３０２によるエラーが発生したと判断する。
【００８５】
この様に、エラーパターン解析部１０９は、輻輳を示すエラーパターン以外は、ランダムパターン３０１かバーストパターン３０２のいずれかに分類する。つまり、本実施形態のエラーパターン解析部１０９は、連続して送信する複数のグループのそれぞれでエラーとなったパケットの位置が他のグループでエラーとなったパケットの位置と対応しない場合、輻輳以外の要因でパケット棄却が発生していると判断する。
【００８６】
尚、エラーパターン解析部１０９は、ランダムパターン３０１であるかバーストパターン３０２であるかの分類をするために、エラーが発生したパケットがいくつ連続しているかを判断するが、その閾値は任意に設定すれば良い。また、エラーパターン解析部１０９は、複数のグループにおいて、連続してエラーが発生したパケット数の平均値や最大値などによってエラーパターンを分類しても良い。
【００８７】
また、本実施形態のエラーパターン解析部１０９は、受信情報として、パケット棄却率の通知も受けている。しかし、エラーパターン解析部１０９において、送信したパケット数と棄却されたパケット数からパケット棄却率を算出しても良い。
【００８８】
また、本実施形態のエラーパターン解析部１０９は、エラーパターンを解析した区間で複数のエラーパターンを検出した場合、エラーパターン毎にパケット棄却率を算出する。即ち、本実施形態のエラーパターン解析部１０９は、輻輳パターン、ランダムパターン、バーストパターンのそれぞれについて、パケット棄却率を算出する。
【００８９】
例えば、エラーパターン解析部１０９によって解析した区間において送信したパケット数が１００パケットであったとする。そして、エラーパターン解析部１０９は、その解析区間において、輻輳パターンによって８パケットのパケット棄却が発生し、ランダムパターン３０１によって２パケットのパケット棄却が発生したと判断したとする。この場合、エラーパターン解析部１０９は、輻輳パターンによるパケット棄却率が８％、ランダムパターンによるパケット棄却率が２％であるというように、エラーパターンごとのパケット棄却率を算出する。
【００９０】
尚、エラーパターン解析部１０９は、上述のように、連続して送信される複数のグループにおいて、棄却パケットの位置が対応する場合、そのパケットは輻輳パターンによって棄却されたパケットであると判断する。また、エラーパターン解析部１０９は、連続して送信される複数のグループにおいて、棄却パケットの位置が対応しない場合、そのパケットは、ランダムパターン、或いは、バーストパターンによって棄却されたパケットであると判断する。さらに、エラーパターン解析部１０９は、棄却パケットがランダムパターンかバーストパターンのどちらによって棄却されたかを、棄却パケットがいくつ連続しているかによって判断する。
【００９１】
次に、エラーパターン解析部１０９から、エラーパターン解析結果の通知を受けたＱｏＳ制御部１１０における各ＱｏＳ手段の制御方法について図８を参照しながら説明する。
【００９２】
図８は、本実施形態の送信装置１００によるデータ送信処理のフローチャートである。
【００９３】
まず、送信装置１００の送受信部１０７は、受信装置に対し、伝送路１１２を介してパケットを送信する（Ｓ８０１）。
【００９４】
続いて送受信部１０７は、受信装置から、受信情報パケット、即ち、図４で示した受信情報を受信する（Ｓ８０２）。
【００９５】
即ち、送受信部１０７は、Ｓ８０２（受信手順）において、通信相手（受信装置）から、パケットの受信状況を示す受信情報（受信情報パケット）を受信する。
【００９６】
送受信部１０７は、受信情報パケットの受信に応じて、受信情報をエラーパターン解析部１０９に通知する。ここで送受信部１０７からエラーパターン解析部１０９に通知される受信情報には、棄却パケットのシーケンスナンバーが含まれる。受信情報を通知されたエラーパターン解析部１０９は、通信エラーの有無について判断する（Ｓ８０３）。
【００９７】
エラーパターン解析部１０９は、Ｓ８０３で、エラーが発生していないと判断した場合（Ｎｏ）は、そのことをＱｏＳ制御部１１０に通知する。そして、エラーが発生していないことを通知されたＱｏＳ制御部１１０は、現在の符号化レートと予め目標として設定された目標レートを比較する（Ｓ８０４）。符号化レートとは、単位時間当たりに送信されるデータパケット（例えば映像データのパケット）の送信レートを示す。ＱｏＳ制御部１１０は、現在の符号化レートが目標レートに達していないと判断した場合は、符号化レートを所定の割合増加させる（Ｓ８０５）。Ｓ８０４で現在の符号化レートが目標レートに達していないと判断される場合の例として、１つのグループで１つのフレームのデータが送れずに、複数のグループに分けて送信している場合がある。このような場合、ＱｏＳ制御部１１０は、Ｓ８０５で、１つのグループで送信するデータパケットの数を増やす。これにより、例えば、１フレーム分のデータを５つのグループに分けて送信されていた場合、１フレーム分のデータが３つのグループで送信されるようになる。なお、グループ内のパケット数を変化させても、グループの間隔は保持する。ここで、グループの間隔とは、あるグループＡの最後のパケットの送信から、グループＡの次に送信するグループＢの先頭のパケットを送信するまでの間隔である。一方、ＱｏＳ制御部１１０が、Ｓ８０４で、既に現在の符号化レートが目標レートに達していると判断した場合は、符号化レートを変更せずにＳ８０１に戻る。
【００９８】
エラーパターン解析部１０９は、Ｓ８０３において、通信エラーが発生していたと判断した場合（Ｙｅｓ）、受信情報を読み出し（Ｓ８０６）、メモリに記憶させる（Ｓ８０７）。エラーパターン解析部１０９がメモリに記憶させる情報には、棄却パケットのシーケンスナンバー、パケット棄却率が含まれる。パケット棄却率は、図４で説明したように、送信したパケットのうち、通信経路で棄却されたパケット及びビットエラーとなったパケット（棄却パケット）の割合を示している。
【００９９】
そして、エラーパターン解析部１０９は、エラーパターンの解析を行なう（Ｓ８０８）。尚、上述のように、エラーパターン解析部１０９は、棄却パケットのシーケンスナンバー４０３、先頭シーケンスナンバー５０１、及び連続送信パケット数５０２によってグループ内における棄却パケットの位置を特定する。ここで、棄却パケットのシーケンスナンバー４０３は、送受信部１０７から通知され、先頭シーケンスナンバー５０１、及び連続送信パケット数５０２は、送信位置情報記憶部１０６に記憶されている。そして、エラーパターン解析部１０９は、図２、図３を用いて説明したように、特定された棄却パケットの位置に基づいて、エラーパターンの解析を行う。即ち、エラーパターン解析部１０９は、Ｓ８０８において、パケットを送信するグループ内における、エラーが発生したパケットの位置を、受信情報から特定する。ここで、エラーパターン解析部１０９は、Ｓ８０８において、エラーパターンを、前述の通り輻輳パターン（Ｐ１）かランダムパターン（Ｐ２）かバーストパターン（Ｐ３）のいずれかに分類する。また、エラーパターン解析部１０９は、複数のエラーパターンを検出した場合、エラーパターンごとのパケット棄却率を算出する。また、エラーパターン解析部１０９は、Ｓ８０８において、エラーパターンの解析結果をＱｏＳ制御部１１０に通知する。
【０１００】
エラーパターンの解析結果の通知を受けたＱｏＳ制御部１１０は、当該エラーパターンに輻輳パターン（Ｐ１）を含むか否か判定する（Ｓ８０９）。この輻輳パターン（Ｐ１）には、図２で説明した輻輳パターン１（２０１）、輻輳パターン２（２０２）、輻輳パターン３（２０３）が含まれる。ＱｏＳ制御部１１０は、輻輳パターン（Ｐ１）を含むと判定した場合（Ｙｅｓ）、輻輳状態を回避するため、グループ内のパケット数を設定する（Ｓ８１０）。
【０１０１】
具体的には、ＱｏＳ制御部１１０は、例えば、輻輳パターン（Ｐ１）が含まれると判定した場合、連続送信するパケット群のパケット数を減少させる。つまり、ＱｏＳ制御部１１０は、例えば、複数の連続送信するパケット群（グループ）において、先頭から５つめのパケットが棄却パケットとなる場合、グループ内のパケット数の最大値を４に設定する。つまり、ＱｏＳ制御部１１０は、１つのフレームのパケット数が、設定されたグループ内のパケット数の最大値を超える場合、各グループのパケット数が最大値を超えないように、当該フレームのデータを複数のグループに分けて送信させる。ただし、グループ内のパケット数の設定方法については、これに限らない。
【０１０２】
ここで、ＱｏＳ制御部１１０がＳ８１０で設定するグループ内のパケット数は、データパケット（例えば映像データのパケット）のパケット数（符号化レート）に、ＦＥＣパケットのパケット数（ＦＥＣレート）を加えたパケット数のことを示している。
【０１０３】
尚、本実施形態のエラーパターン解析部１０９は、連続して送信する複数のグループにおいて、棄却パケットの位置が対応する場合、輻輳が原因でパケットの棄却が発生していると判断する。
【０１０４】
即ち、ＱｏＳ制御部１１０は、連続して送信する複数のグループ内の対応する位置でエラーが発生する場合、グループ内におけるパケット数を減少させる。
【０１０５】
また、グループをグループＡとグループＢに分割すると、グループＡの最後に送信されるパケットから、次のグループＢの先頭で送信されるパケットまでの間隔が広がることになる。本実施形態のＱｏＳ制御部１１０は、グループ内のパケット数を減少させたあと、各グループの間隔が、グループ内のパケット数を減少させる前のグループの間隔と同じ間隔となるように、各グループの間隔の設定を行う。また、本形態のＱｏＳ制御部１１０は、グループ内のパケット数を増加させた場合、パケット数を設定する前の各グループの間隔を保持する。
【０１０６】
Ｓ８１０でパケットのグループ内のパケット数を設定したＱｏＳ制御部１１０は、ＦＥＣで回復すべきエラーであるランダムパターン（Ｐ２）及びバーストパターン（Ｐ３）によるパケット棄却率から、ＦＥＣの冗長度を設定する（Ｓ８１１）。尚、本形態のＱｏＳ制御部１１０は、Ｓ８１１において、エラーの原因がランダムパターン（Ｐ２）であるかバーストパターン（Ｐ３）であるかに応じて、ＦＥＣの種類を設定する。すなわち、ランダムパターン（Ｐ２）では、棄却パケットが所定数以上連続しない。そこで、ＱｏＳ制御部１１０は、ランダムパターン（Ｐ２）によるパケット棄却に対しては、グループ内のデータパケットを送信順序が連続する複数のサブグループに分け、それぞれのサブグループに対してＦＥＣパケットを生成させる。一方、バーストパターン（Ｐ３）は、棄却パケットが連続する。そこで、ＱｏＳ制御部１１０は、バーストパターンによるパケット棄却に対しては、グループ内のデータパケットを送信順序が連続しない複数のサブグループに分け、それぞれのサブグループに対してＦＥＣパケットを生成させる。ＱｏＳ制御部１１０は、例えば、１つのグループで９つのデータパケットを送信する場合であって、９つのデータパケットに対して３つのＦＥＣパケットを付加する場合、エラーの原因に応じて、次にようにＦＥＣを設定する。すなわち、ランダムパターンに対しては、送信順序が１〜３番目のデータパケット、４〜６番目のデータパケット、７〜９番目のデータパケットのサブグループに分ける。そして、それぞれのサブグループ内のデータパケットが１つ、棄却パケットとなっても回復できるようにＦＥＣパケットを生成させる。一方、バーストパターンに対しては、送信順序が１、４、７番目のデータパケット、２、５、８番目のデータパケット、３、６、９番目のデータパケットのサブグループに分ける。そして、それぞれのサブグループ内のデータパケットが１つ、棄却パケットとなっても回復できるようにＦＥＣパケットを生成させる。このようにすることで、エラーの原因に応じたＦＥＣによるＱｏＳ制御を実現することができる。
【０１０７】
そして、ＱｏＳ制御部１１０は、設定したＦＥＣの冗長度を誤り訂正符号化部１０３に通知する。尚、上述のように、ＦＥＣパケットは、通信相手（受信装置）が、受信したパケットのエラー修正に利用できるように通信相手に送信するデータであり、冗長度は、データパケット数に対するＦＥＣパケット数を示すものである。
【０１０８】
このように、本実施形態のＱｏＳ制御部１１０は、Ｓ８０９で、輻輳パターン（Ｐ１）が含まれると判断されると、それに応じてグループ内のパケット数を設定する。そして、ＱｏＳ制御部１１０は、Ｓ８１０で、ランダムパターン（Ｐ２）及びバーストパターン（Ｐ３）によるパケット棄却率から、ＦＥＣの冗長度を設定する。
【０１０９】
ＱｏＳ制御部１１０は、Ｓ８１０で設定したグループ内のパケット数から、Ｓ８１１で設定したＦＥＣの冗長度に応じたＦＥＣパケット数を差し引くことで、データパケット数（符号化レート）を設定し（Ｓ８１２）、設定した符号化レートをレート制御部１１１に通知する。上述のように、符号化レートとは、データパケット（例えば映像データのパケット）の送信レートである。
【０１１０】
一方、Ｓ８０９で輻輳パターン（Ｐ１）が含まれていないと判断された場合（Ｎｏ）、ＱｏＳ制御部１１０は、パケット棄却率が増加傾向にあるか否か判断する（Ｓ８１３）。パケット棄却率は、図４を用いて説明したように、送信したパケットのうち、通信経路で棄却されたパケット及びビットエラーとなったパケット（棄却パケット）の割合を示している。また、パケット棄却率は、Ｓ８０７でエラーパターン解析部１０９が、送受信部から通知された受信情報に応じて、メモリに記憶させている。
【０１１１】
ＱｏＳ制御部１１０は、Ｓ８１３において、パケット棄却率が増加傾向ではないと判断した場合（Ｎｏ）、現在の符号化レートが目標レートに達していないか判断する（Ｓ８１４）。ＱｏＳ制御部１１０は、現在の符号化レートが目標レートに達していないと判断した場合（Ｙｅｓ）、符号化レートを所定の割合増加させ、増加させた符号化レートをレート制御部１１１に通知する（Ｓ８１５）。尚、符号化レートは、単位時間当たりに送信されるデータパケット（例えば映像データのパケット）の送信レートを示している。Ｓ８１４で現在の符号化レートが目標レートに達していないと判断される場合の例として、１つのグループで１つのフレームのデータが送れずに、複数のグループに分けて送信している場合がある。つまり、Ｓ８０９で輻輳が発生していると判断された場合、ＱｏＳ制御部１１０は、Ｓ８１２で、輻輳によるパケット棄却が起こらないように、符号化レートを決定している。これにより、１つのフレームのデータを複数のグループに分けて送信することになると、各グループの間には間隔があいているため、符号化レートが下がり、目標レートを下回ってしまう場合がある。
【０１１２】
これに対し、Ｓ８１５では、輻輳によるパケット棄却が発生しておらず、輻輳以外が原因のパケット棄却率も増加していないので、ＱｏＳ制御部１１０は、データパケットの送信レートが目標レートを下回らないように、或いは、目標レートに近づくように増加させる。これにより、例えば、１フレーム分のデータを５つのグループに分けて送信されていた場合、１フレーム分のデータが３つのグループで送信されるようになる。なお、グループ内のパケット数を変化させても、グループの間隔は保持する。ここで、グループの間隔とは、あるグループＡの最後のパケットの送信から、グループＡの次に送信するグループＢの先頭のパケットを送信するまでの間隔である。このようにして、ＱｏＳ制御部１１０は、単位時間あたりに送信するデータパケットの数を増加させる。
【０１１３】
つまり、ＱｏＳ制御部１１０は、Ｓ８１４において、現在の符号化レートが目標レートに達していないと判断した場合、連続送信するパケット群（グループ）におけるパケット数を増加させる。
【０１１４】
そして、ＱｏＳ制御部１１０は、Ｓ８１１と同様に、ランダムパターン（Ｐ２）及びバーストパターン（Ｐ３）によるパケット棄却率に応じて、ＦＥＣ冗長度を設定し、設定したＦＥＣ冗長度を誤り訂正符号化部１０３に通知する（Ｓ８１６）。
【０１１５】
一方、ＱｏＳ制御部１１０が、Ｓ８１４において、現在の符号化レートが目標レートに達していると判断した場合（Ｎｏ）、Ｓ８１６に進む。Ｓ８１６では、上述のように、ＱｏＳ制御部１１０が、ランダムパターン（Ｐ２）及びバーストパターン（Ｐ３）によるパケット棄却率に応じて、ＦＥＣ冗長度を設定し、設定したＦＥＣ冗長度を誤り訂正符号化部１０３に通知する。つまり、Ｓ８１６では、ＱｏＳ制御部１１０が、輻輳以外のエラーパターンによるパケット棄却率に応じて、ＦＥＣ冗長度を設定する。尚、ＦＥＣパケットは、通信相手（受信装置）が、受信したパケットのエラー修正に利用できるように通信相手に送信するデータであり、冗長度は、データパケット数に対するＦＥＣパケット数を示すものである。
【０１１６】
また、ＱｏＳ制御部１１０は、Ｓ８１３において、パケット棄却率が増加傾向にあると判断した場合（Ｙｅｓ）、Ｓ８１６と同様にＦＥＣ冗長度を設定し、設定したＦＥＣ冗長度を誤り訂正符号化部１０３に通知する（Ｓ８１７）。
【０１１７】
即ち、ＱｏＳ制御部１１０は、Ｓ８１０〜Ｓ８１７（設定手順）で、エラーが発生したパケットの位置に基づいて、以下のような設定を行う。すなわち、ＱｏＳ制御部１１０は、グループ内におけるパケット数、及び、通信相手（受信装置）が受信したパケットのエラー修正に利用できるように通信相手に送信するデータのデータ数のうち、少なくともいずれかを設定する。
【０１１８】
また、ＱｏＳ制御部１１０は、連続して送信する複数のグループ内の対応する位置と対応しない位置でエラーが発生した場合、グループ内におけるパケット数を減少させ、ＦＥＣ冗長度を増加させる。尚、ＦＥＣ冗長度は、データパケット数に対する、通信相手が受信したパケットのエラー修正に利用できるように当該通信相手に送信するデータ（ＦＥＣデータ）数である。
【０１１９】
Ｓ８１８において、ＱｏＳ制御部１１０は、解析したエラーパターンにバーストパターン（Ｐ３）が含まれているか否かを判断する。
【０１２０】
ＱｏＳ制御部１１０が、エラーパターンにバーストパターン（Ｐ３）が含まれていると判断した場合（Ｙｅｓ）、バーストエラー率が増加傾向にあるか判断（Ｓ８１９）する。ここで、バーストエラー率とは、上述のエラーパターン解析部１０９によって算出されたエラーパターン毎のパケット棄却率のうち、バーストパターン（Ｐ３）によるパケット棄却率のことを示す。ＱｏＳ制御部１１０は、バーストエラー率が増加傾向にあると判断した場合（Ｙｅｓ）、バースト耐性を向上させ（Ｓ８２０）、増加傾向でないと判断した場合はバースト耐性を低下させる（Ｓ８２１）。つまり、ＱｏＳ制御部１１０は、例えば、これまでに算出されたバーストエラー率よりも、今回算出されたバーストエラー率のほうが高い場合、バースト耐性を向上させる。また、ＱｏＳ制御部１１０は、例えば、これまでに算出されたバーストエラー率よりも、今回算出されたバーストエラー率のほうが低い場合、バースト耐性を低下させる。
【０１２１】
ここで、ＱｏＳ制御部１１０がバースト耐性を向上する具体的な方法として、例えば、送信するパケットの順序を例えばランダムに入れ替える方法がある。即ち、ＱｏＳ制御部１１０は、Ｓ８２０において、連続してエラーになるパケットが所定数よりも多い場合、パケットの再生順序に対する送信順序が一定とならないように制御する。
【０１２２】
ただし、バースト耐性を向上する方法として、異なるフレームのデータパケットからＦＥＣパケットを生成する方法などを用いても良い。ＱｏＳ制御部１１０は、このような方法により、バースト耐性を向上させることができる。ただし、バースト耐性の向上と引き替えにリアルタイム性を損なう場合があるので、バーストエラーが減少傾向にある場合は、バースト耐性を下げ、リアルタイム性を向上させることが望ましい。従って、Ｓ８１８においてエラーパターンにバーストパターン（Ｐ３）が含まれていない場合は、バースト耐性を基本状態である初期レベルに戻し（Ｓ８２２）、リアルタイム性を向上させる。つまり、ＱｏＳ制御部１１０は、Ｓ８２２でバースト耐性を減少させる場合は、送信するパケットの順序を入れ替えないようにしたり、同一のフレームのデータパケットからＦＥＣパケットを生成するようにする。このようにすることにより、バーストパターンが発生していない場合に、バースト耐性を下げ、リアルタイム性を向上させることができる。
【０１２３】
以上のように、本実施形態の送信装置は、通信エラーのパケット棄却率をエラーパターン毎に分類する。そして、輻輳が原因のエラーに対してはグループ内のパケット数を制御することで回避し、輻輳以外が原因のエラーに関してはＦＥＣによって受信装置側でパケットの復元を行わせる。また、輻輳以外が原因のエラーのうち、特に、バーストエラーによるパケット棄却率が変化した場合は、それに応じてバースト耐性を変更する。このようにすることで、通信エラーの原因に応じたＱｏＳ制御を行うことが可能となる。
【０１２４】
ところで、Ｓ８０２において受信装置から受け取る受信情報パケットには、例えば、ＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）というプロトコルが使用される。そして、特に本実施形態における受信情報のようなデータを、ＲＴＣＰでは、レシーバーレポートという。
【０１２５】
このレシーバーレポートは、一般に比較的短い時間間隔で送信されるものであり、それに含まれる情報は、比較的短い期間の情報となる。従って、１つのレシーバーレポートの情報のみから随時制御を行なうと、その都度、グループ内のパケット数やＦＥＣ冗長度が大きくばらついてしまう。このように、グループ内のパケット数が短い間隔でばらつくと、短い時間間隔におけるパケットの送信レートが大きくばらつくことになる。
【０１２６】
そこで、グループ内のパケット数やＦＥＣ冗長度を設定する際に、Ｓ８０７でメモリに保持された過去の情報を用いて統計処理を行なうことで、ばらつきを抑えることが望ましい。統計処理を行うために用いる過去の情報として、例えば、エラーパターン毎のパケット棄却率がある。つまり、ＱｏＳ制御部１１０は、図８で説明したように、輻輳によるパケット棄却率に応じて、例えばＳ８１０でグループ内のパケット数を設定し、ランダムパターンやバーストパターンによるパケット棄却率に応じて、ＦＥＣ冗長度を設定する。ここで、レシーバーレポートの受信ごとに、例えば輻輳によるパケット棄却率を算出し、グループ内のパケット数を変更してしまうと、各グループのパケット数が大きくばらついてしまう場合がある。そこで、ＱｏＳ制御部１１０は、過去に算出された、輻輳によるパケット棄却率を用いて、各グループのパケット数のばらつきを抑える。
【０１２７】
ＱｏＳ制御部１１０が各グループのパケット数のばらつきを抑えるために過去のパケット棄却率を用いる具体的な方法として、例えば、以下のような方法がある。すなわち、レシーバーレポートの受信に応じて算出した輻輳によるパケット棄却率と、所定数ぶんだけ過去に受信されたレシーバーレポートに応じて算出された輻輳によるパケット棄却率との平均値をとる。また、或いは、単純な平均値ではなく、予め設定された重み付けに従って過去に算出された輻輳によるパケット棄却率を重み付けして、パケットの棄却率の平均値をとるようにしても良い。また、或いは、レシーバーレポートの受信に応じて算出した輻輳によるパケット棄却率と、前回算出した輻輳によるパケット棄却率の差が、所定の値よりも小さい場合は、輻輳によるパケット棄却率が変化していないと判断するようにしても良い。
【０１２８】
また、統計処理を行うために用いる過去の情報の別の例として、例えば、過去のグループ内のパケット数や、ＦＥＣ冗長度、符号化レートがある。つまり、ＱｏＳ制御部１１０は、過去に用いられた、グループ内のパケット数、ＦＥＣ冗長度、符号化レートによって、各グループのパケット数のばらつきを抑える。ＱｏＳ制御部１１０が各グループのパケット数のばらつきを抑えるために過去のグループ内のパケット数を用いる具体的な方法として、例えば、以下のような方法がある。すなわち、レシーバーレポートの受信に応じて算出したグループ内のパケット数と、所定数ぶんだけ過去に受信されたレシーバーレポートに応じて算出されたグループ内のパケット数との平均値をとる。また、或いは、単純な平均値ではなく、予め設定された重み付けに従って過去に算出されたグループ内のパケット数を重み付けして、グループ内のパケット数の平均値をとるようにしても良い。また、或いは、レシーバーレポートの受信に応じて算出したグループ内のパケット数と、前回算出したグループ内のパケット数の差が、所定の値よりも小さい場合は、グループ内のパケット数を変化させないようにしても良い。
【０１２９】
このようにして、本実施形態のＱｏＳ制御部１１０は、過去の情報を用いて、各グループのパケット数や、ＦＥＣ冗長度のばらつきを抑える。また、このようにすることで、短い時間間隔におけるパケットの送信レートのばらつきを低減する。
【０１３０】
しかし一方で、統計処理における過去の情報の重み付けを重くすると、例えばネットワーク上で、急激な帯域の変動があった場合などにおけるエラー回避やレート回復のレスポンスが悪化してしまう恐れがある。
【０１３１】
そこで、本実施形態のＱｏＳ制御部１１０は、比較的軽い輻輳状態である場合は、過去の情報の重み付けを重くすることで、各グループのパケット数やＦＥＣ冗長度がばらついてしまうことを抑える。一方、ＱｏＳ制御部１１０は、比較的重い輻輳状態である場合は、過去の情報の重み付けを軽くする（もしくは参照しない）ことによって急激な帯域の変動などにおけるエラー回避やレート回復のレスポンスを向上させるようにする。
【０１３２】
尚、図２を用いて説明したように、本実施形態のエラーパターン解析部１０９が検知する輻輳パターン（Ｐ１）は３つあり、この輻輳パターンによって輻輳の程度を分類することができる。すなわち、輻輳パターン１（２０１）は、他の輻輳パターンよりも比較的軽い輻輳状態のときに発生する輻輳パターンであり、輻輳パターン２（２０２）、輻輳パターン３（２０３）は、比較的重い輻輳状態のときに発生する輻輳パターンであると分類できる。
【０１３３】
また、エラーパターン解析部１０９は、上述のように、輻輳状態の重さを、エラーとなるパケットの位置によって判断することもできる。つまり、エラーパターン解析部１０９は、連続して送信する複数のグループで棄却パケットの位置が対応する場合、その棄却パケットの位置が、グループの前方にあるほど、重い輻輳状態であると判断しても良い。
【０１３４】
ただし、輻輳状態の重さを判断する方法は、この方法に限らず、例えば、輻輳による棄却パケットの数などによって判断することも可能である。
【０１３５】
このように、検知した輻輳のパターンに応じて、グループ内のパケット数やＦＥＣ冗長度設定の計算方法を動的に変更することで、輻輳の程度に応じたグループ内のパケット数やＦＥＣ冗長度の設定を行うことができる。
【０１３６】
ＱｏＳ制御部１１０が、検知された輻輳パターンに応じて、グループ内のパケット数、ＦＥＣ冗長度を設定する際に参照する過去の情報の重み付けを制御する処理について、図９のフローチャートを用いて説明する。尚、図９のＳ９０１の処理は、図８を用いて説明した、Ｓ８１０の処理時に実行される。
【０１３７】
エラーパターン解析部１０９からエラーパターンの解析結果を通知されたＱｏＳ制御部１１０は、輻輳パターン２（２０２）、または輻輳パターン３（２０３）がエラーパターンに含まれているか否かを判断する（Ｓ９０１）。ここで、輻輳パターン２（２０２）、輻輳パターン３（２０３）は、上述のように、図２で説明した輻輳パターンのうち、比較的重い輻輳状態のときに発生する輻輳パターンである。
【０１３８】
ＱｏＳ制御部１１０は、これらの輻輳パターンが含まれていると判断した場合（Ｙｅｓ）、過去の情報の重み付けを軽くするか、或いは無視する（Ｓ９０２）。このようにすることで、急激な帯域の変動などにおけるエラー回避やレート回復のレスポンスを向上させる。
【０１３９】
一方、ＱｏＳ制御部１１０は、Ｓ９０１において、輻輳パターン２（２０２）または輻輳パターン３（２０３）を含まないと判断した場合（Ｎｏ）、過去の情報に所定の重み付けをする。そして、ＱｏＳ制御部１１０は、所定の重み付けをされた過去の情報と、現在の情報とに応じて、グループ内のパケット数や符号化レート、ＦＥＣ冗長度などを算出する（Ｓ９０３）。上述のように、過去の情報は、例えば、これまでに送信したグループ（第１のグループ）の受信状況を示す受信情報パケット（レシーバーレポート）に応じて算出されたエラーパターン毎のパケット棄却率である。また、過去の情報の他の例は、例えば、これまでに用いられたグループ内のパケット数や、符号化レート、ＦＥＣ冗長度などである。
【０１４０】
また、現在の情報とは、例えば、前記これまでに送信したグループよりも後に送信したグループ（第２のグループ）の受信状況を示す受信情報パケット（レシーバーレポート）によって算出されたエラーパターン毎のパケット棄却率である。また、現在の情報のほかの例は、例えば、前記これまでに送信したグループよりも後に送信したグループの受信状況を示すレシーバーレポートの受信に応じて算出されたグループ内のパケット数や、符号化レート、ＦＥＣ冗長度などである。
【０１４１】
即ち、送受信部１０７は、第１の複数のグループの受信状況を示す第１の受信情報と、当該第１の複数のグループよりも後に送信した第２の複数のグループの受信状況を示す第２の受信情報を受信している。そして、ＱｏＳ制御部１１０は、Ｓ９０３で、第１の受信情報、及び第２の受信情報に基づいて、第２の複数のグループよりも後に送信する第３の複数のグループ内におけるパケット数を設定する。ここで、本実施形態における受信情報は、受信情報パケット（レシーバーレポート）である。
【０１４２】
また、Ｓ９０２において、ＱｏＳ制御部１１０は、輻輳パターン２又は輻輳パターン３を含むと判断した場合、過去の情報の重み付けを軽くするか、或いは無視する。尚、上述の通り、輻輳パターン２、輻輳パターン３は、比較的重い輻輳である場合に発生する輻輳パターンである。また、これらの輻輳パターンは、グループで最初にエラーとなったパケットの位置が、グループ内において前方にある場合に検知されるパターンである。即ち、ＱｏＳ制御部１１０は、第２の複数のグループでエラーとなるパケットの位置のうちの最も前の位置が第１の位置より前の第２の位置である場合、第２の複数のグループでエラーとなるパケットの位置のうちの最も前の位置が第２の位置である場合より、第１の受信情報の重み付けが軽くなるように重み付けを設定する。そして、ＱｏＳ制御部１１０は、重み付けを設定した第１の受信情報及び第２の受信情報に基づいて、第３の複数のグループ内におけるパケット数を決定する。このように、検知した輻輳のパターンに応じて、グループ内のパケット数やＦＥＣ冗長度設定の計算方法を動的に変更することで、輻輳の程度に応じたグループ内のパケット数やＦＥＣ冗長度の設定を行うことができる。
【０１４３】
以上のように、本発明の送信装置１００は、連続して送信するパケットにおける棄却されたパケットの位置から、通信エラーの原因の推定し、さらに、原因別にパケット棄却率を算出する。そして、送信装置１００は、通信エラーの原因に基づいて、適切なＱｏＳの技術を選択・制御する。このようにすることで、通信エラーが発生する原因に応じたＱｏＳの制御を行うことができる。
【０１４４】
尚、本実施形態のエラーパターン解析部１０９は、データパケット及びＦＥＣパケットの通信エラー状況から通信エラーの状況を解析する方法について説明した。しかし、ネットワークの品質を確認するためのダミーパケットを送信し、そのダミーパケットの通信エラー状況から、エラーパターン解析部１０９が通信エラーの状況を解析しても良い。このようにすれば、データパケットが棄却されることを低減できる。
【０１４５】
＜実施形態２＞
次に本発明による第２の実施形態について、実施形態１との差異を中心に説明する。本実施形態は、受信装置にエラーパターン解析機能を有する場合の実施例である。
【０１４６】
図６は、本発明の実施に好適な受信装置の基本構成を示すブロック図である。この受信装置６００は、パーソナルコンピュータ、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵した各種家電製品、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどのうち、複数のグループに分けられて送信され、かつ、グループ間に送信待機時間を設けて送信される複数のパケットを受信することができる装置、もしくは、これらの組合せにより実現可能である。
【０１４７】
図６に示すように、受信装置６００は、送受信部６０１、受信バッファ６０２、パケット棄却検出部６０３、エラーパターン解析部６０４、パケット復元部６０５、再送要求部６０６から構成されている。
【０１４８】
一方、図７は、本実施形態の受信装置６００に対し、データを送信する送信装置７００のブロック図を示しており、送信装置７００はＲＴＰプロトコルを用いてパケットを通信するものとする。この送信装置７００は、パーソナルコンピュータ、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵した各種家電製品、ゲーム機、携帯電話、デジタルビデオカメラ、デジタルカメラなどのうち、複数のパケットを、順次、通信相手（受信装置）に送信することができる装置、もしくは、これらの組合せにより実現可能である。
【０１４９】
受信装置６００の送受信部６０１は、各種ネットワークに代表される伝送路である伝送路１１２を介してパケットの送受信を行う機能を備えている。送受信部６０１は、受信したパケットを受信バッファ６０２に保持させる。また、送受信部６０１は、例えば、受信装置６００におけるパケットの受信情報を送信装置７００に通知するための、受信情報パケットや、通信経路で棄却されたパケットの再送要求をするための再送要求パケットを送信装置７００に対して送信する。
【０１５０】
パケット棄却検出部６０３は、受信バッファ６０２に保持されるＲＴＰパケットのヘッダ部分にあるシーケンスナンバーを随時監視し、シーケンスナンバーに抜けが無いか確認することで、通信経路でのパケットの棄却を検知する。
【０１５１】
そして、パケット棄却検出部６０３は、パケットの棄却を検知すると、検知された棄却パケットのシーケンスナンバーをエラーパターン解析部６０４に通知する。また、パケット棄却検出部６０３は、グループ内における棄却パケットの位置を特定するための情報を、エラーパターン解析部６０４に通知する。棄却パケットの位置を特定するための情報の詳細については、後述する。
【０１５２】
パケット棄却検出部６０３から通知を受けたエラーパターン解析部６０４は、図２及び図３で示したエラーパターンの解析と、エラーパターン毎のパケット棄却率を算出する。
【０１５３】
ここで、エラーパターン解析部６０４は、図２及び図３に示す解析を行なうために、連続して送信されるパケット群（グループ）の区切りを識別する必要がある。つまり、エラーパターン解析部６０４は、グループ内における棄却パケットの位置を特定するために、グループの区切りを識別する。本実施形態の送信装置７００は、送信するグループの間に間隔をあけているため、その間隔を保ったまま受信された場合は、受信装置６００は、受信したパケットの間隔を目安に、グループの区切りを識別することができる。
【０１５４】
しかし、ネットワークの状況によっては、ジッタなどの影響により、グループの区切りが識別できなくなる恐れがある。そこで、本実施形態では、ＲＴＰヘッダの拡張領域を利用することで、グループの区切りを識別できるようにする。
【０１５５】
図１１に示すＲＴＰヘッダのフォーマットにおいて、『Ｘ』１１０１は１ビットのフラグであり、このフラグが設定されている場合、ＲＴＰの固定ヘッダに続いて、拡張領域が続くことを示している。
【０１５６】
図１２はＲＴＰヘッダの拡張領域のフォーマットを示しており、『ｌｅｎｇｔｈ』１２０１は拡張領域のサイズ、『ｈｅａｄｅｒ  ｅｘｔｅｎｓｉｏｎ』１２０２は拡張領域のデータを格納する領域である。
【０１５７】
図１３に、『ｈｅａｄｅｒ  ｅｘｔｅｎｓｉｏｎ』１２０２の内容を示す。図１３の『Ｆｉｒｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ』１３０１には、連続送信したパケット群（グループ）の先頭のパケットのシーケンスナンバーを記録する。また、『Ｌａｓｔ  ｓｅｑｕｅｎｃｅ  ｎｕｍｂｅｒ』１３０２には、連続送信したパケット群（グループ）の最後のパケットのシーケンスナンバーを記録する。
【０１５８】
すなわち、本実施形態の送信装置７００は、図１１の『Ｘ』１１０１のフラグを設定して拡張領域を有効とする。さらに、送信装置７００は、図１３に示すように、グループ内の先頭のパケットのシーケンスナンバーと、グループ内の最後のパケットのシーケンスナンバーを記録する。また、送信装置７００は、同じグループの複数のパケット全てに上記の先頭、及び最後のシーケンスナンバーの情報を付加する。
【０１５９】
そして、エラーパターン解析部６０４は、付加されたシーケンスナンバーの情報を参照することで、連続送信したパケット群の先頭及び最後のパケットの識別、すなわちグループの区切りの識別が可能になる。
【０１６０】
つまり、パケット棄却検出部６０３は、正常に受信されたパケットのシーケンスナンバーを取得することで、棄却パケットのシーケンスナンバーを取得する。また、パケット棄却検出部６０３は、正常に受信されたパケットの拡張領域に記録されているグループ内の先頭のパケットのシーケンスナンバーと、最後のパケットのシーケンスナンバーを取得する。
【０１６１】
即ち、パケット棄却検出部６０３は、受信されたパケットに含まれる、当該パケットのグループ内の位置を識別可能な識別情報を取得する。
【０１６２】
そして、パケット棄却検出部６０３は、取得した棄却パケットのシーケンスナンバー、グループ内の先頭パケットのシーケンスナンバー、最後のパケットのシーケンスナンバーをエラーパターン解析部６０４に通知する。エラーパターン解析部６０４は、パケット棄却検出部６０３から通知されたこれらの情報により、棄却パケットのグループ内の位置を特定する。
【０１６３】
即ち、エラーパターン解析部６０４は、パケット棄却検出部６０３により取得された識別情報により、送信装置から送信されたパケットのうちネットワーク上でエラーとなったパケット（棄却パケット）の、グループ内における位置を特定する。尚、本実施形態において、識別情報は、正常に受信されたパケットのシーケンスナンバー、正常に受信されたＲＴＰパケットのヘッダの拡張領域に記録されるグループ内の先頭のシーケンスナンバー、及び最後のシーケンスナンバーである。
【０１６４】
このようにすることで、エラーパターン解析部６０４は、例えば、通信経路中でのパケットの棄却や、ジッタによるパケット送信間隔の乱れがあっても、連続送信したパケット群の区切りの識別することが可能になる。そして、エラーパターン解析部６０４は、エラーパターンの解析を正しく行なうことが可能になる。尚、エラーパターン解析部６０４は、実施形態１と同様に、エラーパターンの解析処理を行う。例えば、エラーパターン解析部６０４は、連続して送信する複数のグループの対応する位置でパケット棄却が発生している場合、輻輳によるパケット棄却が発生していると判断する。
【０１６５】
即ち、エラーパターン解析部６０４は、ネットワーク上でエラーとなったパケット（棄却パケット）の、グループ内における位置が、連続して送信する複数のグループ内の対応する位置であるか否かに基づいて、前記ネットワークの状態を判断する。
【０１６６】
エラーパターン解析部６０４は、エラーパターンの解析結果を、受信情報パケット（ＲＴＣＰのレシーバーレポート）として送受信部６０１、伝送路１１２を介して送信装置７００に通知する。即ち、送受信部６０１は、エラーパターン解析部６０４で判断されたネットワークの状態を送信装置７００へ通知する。
【０１６７】
パケット復元部６０５では、パケット棄却検出部６０３から通知された棄却パケットのシーケンスナンバーに基づいて、ＦＥＣによる棄却パケットの復元を行なう。また、パケット復元部６０５は、ＦＥＣを用いても復元できなかったパケットの識別情報、例えば、シーケンスナンバーを再送要求部６０６に通知する。
【０１６８】
再送要求部６０６は、パケット復元部６０５から通知された、復元できなかったパケットの識別情報を含めた再送要求パケットを送受信部６０１、伝送路１１２を介して送信装置７００に通知する。
【０１６９】
図７に示す送信装置７００の構成は、実施形態１で説明した図１の送信装置１００から、送信位置情報記憶部１０６とエラーパターン解析部１０９を除いたものとなっている。そして、この除かれたブロックの機能のうち、エラーパターン解析部１０９に対応するブロックが受信装置６００のエラーパターン解析部６０４に追加されている。また、実施形態１のエラーパターン解析部１０９は、棄却パケットのシーケンスナンバーと、送信位置情報記憶部１０６に記憶された先頭シーケンスナンバー、及び連続送信パケット数により、棄却パケットのグループ内における位置を特定している。それに対し、本実施形態のエラーパターン解析部６０４は、棄却パケットのシーケンスナンバーと、ＲＴＰヘッダの拡張領域に記憶されたグループの先頭パケットのシーケンスナンバー、及びグループの最後のパケットのシーケンスナンバーにより、棄却パケットのグループ内における位置を特定する。従って、エラーパターン解析部６０４は、実施形態１のエラーパターン解析部１０９と同様に、エラーパターンの解析処理を行うことができる。
【０１７０】
従って、本実施形態の送信装置７００においても、受信装置６００からエラーパターン解析結果を受け取ることで、図８に示す制御フローのように、パケット棄却が発生する原因に応じたＱｏＳの制御を行うことができる。
【０１７１】
＜本発明に係る他の実施形態＞
本発明の目的は、次の形態によっても達成される。即ち、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する形態である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１７３】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される形態には限られない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【０１７４】
さらに、本発明には、以下の形態も含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される形態である。
【図面の簡単な説明】
【０１７５】
【図１】送信装置１００の基本構成を示すブロック図である
【図２】輻輳によるエラーパターンを示した図である
【図３】輻輳以外のエラーパターンを示した図である
【図４】受信装置から送信装置１００へ通知される受信情報の例である
【図５】送信位置情報記憶部１０６に保管された送信位置情報５００の例である
【図６】受信装置６００の基本構成を示すブロック図である
【図７】受信装置６００にデータを送信する送信装置７００のブロック図である
【図８】送信装置１００における一連の制御フローである
【図９】グループ内のパケット数や冗長度設定等の計算方法を動的に変更する制御フローである
【図１０】ネットワークの使用可能帯域を算出するＴＣＰのスループット方程式である
【図１１】ＲＦＣ１８８９で定義されたＲＴＰヘッダのフォーマットである
【図１２】ＲＴＰヘッダの拡張領域のフォーマットである
【図１３】ＲＴＰヘッダの拡張領域利用の例である
【符号の説明】
【０１７６】
１００  送信装置
１０５  送信制御部
１０６  送信位置情報記憶部
１０７  送受信部
１０９  エラーパターン解析部
１１０  ＱｏＳ制御部
６００  受信装置
６０１  送受信部
６０３  パケット棄却検出部
６０４  エラーパターン解析部
【図１】
2010011212.tif 000003
【図２】
2010011212.tif 000004
【図３】
2010011212.tif 000005
【図４】
2010011212.tif 000006
【図５】
2010011212.tif 000007
【図６】
2010011212.tif 000008
【図７】
2010011212.tif 000009
【図８】
2010011212.tif 000010
【図９】
2010011212.tif 000011
【図１０】
2010011212.tif 000012
【図１１】
2010011212.tif 000013
【図１２】
2010011212.tif 000014
【図１３】
2010011212.tif 000015