(57)【要約】【課題】  通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減する。【解決手段】  第１の動画パケットと第２の動画パケットを含む第１の組み合わせに基づいて、第１の動画パケットのエラーを受信装置が訂正するための第１の誤り訂正パケット（行方向ＦＥＣパケット）を生成し、第１の動画パケットと第３の動画パケットを含み、第２の動画パケットを含まない第２の組み合わせに基づいて、第１の動画パケットのエラーを訂正するための第２の誤り訂正パケット（列方向ＦＥＣパケット）を生成する。そして、第１、第２及び第３の動画パケットと第１の誤り訂正パケットを第１及び第２の受信装置に送信し、第２の誤り訂正パケットを第１の受信装置には送信せずに、第２の受信装置に送信する。【選択図】  図６
2010245954.tif 000002
【特許請求の範囲】
【請求項１】
受信装置に対してパケットを送信する送信装置であって、
第１の動画パケットと第２の動画パケットを含む第１の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第１の誤り訂正パケットを生成し、
前記第１の動画パケットと第３の動画パケットを含み、前記第２の動画パケットを含まない第２の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第２の誤り訂正パケットを生成する生成手段と、
前記第１、第２及び第３の動画パケットを第１及び第２の受信装置に送信し、
前記生成手段により生成された前記第１及び第２の誤り訂正パケットのうち前記第１の誤り訂正パケットを第１及び第２の受信装置に送信し、
前記生成手段により生成された前記第１及び第２の誤り訂正パケットのうち前記第２の誤り訂正パケットを前記第１の受信装置には送信せずに、第２の受信装置に送信することを決定する決定手段と
を有することを特徴とする送信装置。
【請求項２】
前記生成手段は、
前記第１の動画パケットと、前記第１の動画パケットの次に送信される前記第２の動画パケットを含む第１の組み合わせに基づいて、前記第１の誤り訂正パケットを生成し、
前記第１の動画パケットと前記第３の動画パケットを含み、前記第２の動画パケットを含まない前記第２の組み合わせに基づいて、前記第１の動画パケットのエラーを訂正するための第２の誤り訂正パケットを生成する
ことを特徴とする請求項１記載の送信装置。
【請求項３】
前記受信装置から動画パケットの数に対する誤り訂正パケットの数に関する要求情報を受信する受信手段を有し、
前記送信手段は、前記第２の誤り訂正パケットを、第１の要求情報を送信した前記第１の受信装置には送信せずに、前記第１の要求情報よりも動画パケットに対する誤り訂正パケットの数が多いことを示す第２の要求情報を送信した前記第２の受信装置に送信し、
前記第１、第２及び第３の動画パケットと前記第１の誤り訂正パケットを、前記第１の要求情報を送信した前記第１の受信装置、及び、前記第２の要求情報を送信した前記第２の受信装置に送信する
ことを特徴とする請求項１記載の送信装置。
【請求項４】
前記受信装置から動画パケットのエラー状況に関するエラー情報を受信する受信手段と、
前記エラー情報に基づいて、前記受信装置に対して送信する動画パケットの数に対する誤り訂正パケットの数を決定する決定手段とを有し、
前記送信手段は、前記第２の誤り訂正パケットを、第１のエラー情報を送信した前記第１の受信装置には送信せずに、前記第１のエラー情報よりもエラーした動画パケットの数が多いことを示す第２のエラー情報を送信した前記第２の受信装置に送信し、
前記第１、第２及び第３の動画パケットと前記第１の誤り訂正パケットを、前記第１のエラー情報を送信した前記第１の受信装置、及び、前記第２のエラー情報を送信した前記第２の受信装置に送信する
ことを特徴とする請求項１記載の送信装置。
【請求項５】
前記生成手段は、前記第１の動画パケットと第３の動画パケットを含み、前記第２の動画パケットを含まない前記第２の組み合わせに基づいて、前記第２の誤り訂正パケットを生成し、
前記第３の動画パケットと前記第３の動画パケットの次に送信される第４の動画パケットを含む組み合わせに基づいて、前記第３の動画パケットのエラーを前記受信装置が訂正するための第３の誤り訂正パケットを生成し、
前記第２の動画パケットと前記第２の動画パケットと送信順序が連続しない前記第４の動画パケットを含む組み合わせに基づいて、前記第２の動画パケットのエラーを前記受信装置が訂正するための第４の誤り訂正パケットを生成し、
前記送信手段は、前記第１、第２、第３及び第４の動画パケットと前記第１、第３の誤り訂正パケットを、前記第１の受信装置と前記第２の受信装置と第３の受信装置に送信し、
前記第２の誤り訂正パケットを、前記第１の受信装置と前記第３の受信装置には送信せずに、前記第２の受信装置に送信し、
前記第４の誤り訂正パケットを、前記第１の受信装置には送信せずに、前記第２の受信装置と前記第３の受信装置に送信する
ことを特徴とする請求項１記載の送信装置。
【請求項６】
前記生成手段は、前記送信順序が連続しない動画パケットの組み合わせに基づいて前記第２、第４の誤り訂正パケットを生成し、
前記送信手段は、前記第２の動画パケットの重要度が前記第１の動画パケットより高い場合、前記第２の動画パケットのエラーを前記受信装置が訂正するための前記第４の誤り訂正パケットを前記第２の受信装置と前記第３の受信装置に送信し、前記第１の動画パケットのエラーを前記受信装置が訂正するための前記第２の誤り訂正パケットを前記第３の受信装置には送信せずに、前記第２の受信装置に送信する
ことを特徴とする請求項５記載の送信装置。
【請求項７】
送信する動画パケットの数に対する誤り訂正パケットの数に関するレート情報を、接続される複数の受信装置のそれぞれについて決定し、
前記第１の受信装置に対する第１のレート情報と、前記第２の受信装置に対する第２のレート情報のうち、動画パケットの数に対する誤り訂正パケットの数が少ない前記第１のレート情報に基づいて、前記第１の組み合わせに含まれる動画パケットの数を決定する決定手段
を有することを特徴とする請求項１記載の送信装置。
【請求項８】
送信する動画パケットの数に対する誤り訂正パケットの数に関するレート情報を、接続される複数の受信装置のそれぞれについて決定し、
前記第１の受信装置に対する第１のレート情報と、前記第２の受信装置に対する第２のレート情報のうち、動画パケットの数に対する誤り訂正パケットの数が多い前記第２のレート情報に基づいて、前記第２の組み合わせに含まれる動画パケットの数を決定する決定手段
を有することを特徴とする請求項１記載の送信装置。
【請求項９】
前記決定手段は、前記第１の受信装置に送信する動画パケットの数に対する誤り訂正パケットの数が減少するように前記第１のレート情報を変更した場合、前記第１の動画パケットのエラーを前記受信装置が訂正するための第１の誤り訂正パケットを生成するための前記第１の組み合わせに含まれる動画パケットの数を増加させる変更手段
を有することを特徴とする請求項７記載の送信装置。
【請求項１０】
受信装置に対してパケットを送信する送信装置が行う送信方法であって、
第１の動画パケットと第２の動画パケットを含む第１の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第１の誤り訂正パケットを生成し、
前記第１の動画パケットと第３の動画パケットを含み、前記第２の動画パケットを含まない第２の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第２の誤り訂正パケットを生成する生成工程と、
前記第１、第２及び第３の動画パケットを第１及び第２の受信装置に送信し、
前記生成工程により生成された前記第１及び第２の誤り訂正パケットのうち前記第１の誤り訂正パケットを前記第１及び第２の受信装置に送信し、
前記生成工程により生成された前記第１及び第２の誤り訂正パケットのうち前記第２の誤り訂正パケットを前記第１の受信装置には送信せずに、第２の受信装置に送信することを決定する決定工程と
を有することを特徴とする送信方法。
【請求項１１】
受信装置に対してパケットを送信するコンピュータに、
第１の動画パケットと第２の動画パケットを含む第１の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第１の誤り訂正パケットを生成し、
前記第１の動画パケットと第３の動画パケットを含み、前記第２の動画パケットを含まない第２の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第２の誤り訂正パケットを生成する生成手順と、
前記第１、第２及び第３の動画パケットを第１及び第２の受信装置に送信し、
前記生成手順により生成された前記第１及び第２の誤り訂正パケットのうち前記第１の誤り訂正パケットを前記第１及び第２の受信装置に送信し、
前記生成手順により生成された前記第１及び第２の誤り訂正パケットのうち前記第２の誤り訂正パケットを前記第１の受信装置には送信せずに、第２の受信装置に送信することを決定する決定手順と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置及び送信方法に関する。
【背景技術】
【０００２】
近年、ネットワークを介した動画像データの送受信が急増している。インターネットの広帯域化やＬＡＮの普及により従来と比べて動画像データの送受信は容易になったものの、動画像の高画質化や利用形態の多様化により依然として動画像データの送受信はネットワークに高い負荷を与えている。
【０００３】
単位時間あたりの転送データ量が大きい動画像データからは数多くのパケットが生成され、離散的に発生する通信エラーとパケット中継器における通信バッファ溢れによるパケットの欠落（パケットロス）が発生し易い。
【０００４】
パケットロスによる映像品質の低下を防ぐ従来技術として前方誤り訂正方式（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ方式、以下、ＦＥＣ方式）がある（非特許文献１）。ＦＥＣ方式では、１つ以上の動画パケットのグループに対しＦＥＣ生成演算を行うことでＦＥＣパケット（誤り訂正パケット）を生成し、動画パケットと共に受信側に送信する。ＦＥＣ生成演算としてはＸＯＲ演算が代表的である。ＸＯＲ演算を使用した場合、グループ内の動画パケットが１つ欠落した場合、グループ内の欠落していない動画パケットとＦＥＣパケットを演算処理することで欠落した動画パケットを復元することができる。ＦＥＣパケットはグループ化する動画パケットの数とグループ化方法によって様々な生成が可能である。
【０００５】
また、特許文献１には、送信先ノードと送信元ノードとの間のネットワーク経路の品質情報に基づいて、誤り訂正符号化パラメータを変更することが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２１５２２４号公報
【非特許文献】
【０００７】
【非特許文献１】ＲＦＣ２７３３
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、動画像データを複数の通信相手に送信する場合、通信相手ごとに誤り訂正データのデータ量に関する設定が異なると、誤り訂正データを生成するために大きな負荷が必要となる。
【０００９】
例えば、ある受信装置に対して、３つの動画パケットに対して１つのＦＥＣパケットを送信し、別の受信装置に対して、４つの動画パケットに対して１つのＦＥＣパケットを送信する場合を考える。このような場合、それぞれの受信装置に対して、ＦＥＣパケットを生成すると、ＦＥＣパケットの生成負荷が大きくなる。
【００１０】
本発明は以上の問題を鑑みたものであり、その目的は、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減することである。
【課題を解決するための手段】
【００１１】
上記の問題点を解決するために、本発明の送信装置は、例えば、以下の構成を有する。すなわち、受信装置に対してパケットを送信する送信装置であって、第１の動画パケットと第２の動画パケットを含む第１の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第１の誤り訂正パケットを生成し、前記第１の動画パケットと第３の動画パケットを含み、前記第２の動画パケットを含まない第２の組み合わせに基づいて、前記第１の動画パケットのエラーを前記受信装置が訂正するための第２の誤り訂正パケットを生成する生成手段と、前記第１、第２及び第３の動画パケットを第１及び第２の受信装置に送信し、前記生成手段により生成された前記第１及び第２の誤り訂正パケットのうち前記第１の誤り訂正パケットを第１及び第２の受信装置に送信し、前記生成手段により生成された前記第１及び第２の誤り訂正パケットのうち前記第２の誤り訂正パケットを前記第１の受信装置には送信せずに、第２の受信装置に送信することを決定する決定手段とを有する。
【発明の効果】
【００１２】
本発明によれば、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】動画像配信システムの全体構成図
【図２】送信装置の機能構成を示すブロック図
【図３】ＦＥＣパケットの生成パターンを決定する手順を示すフローチャート
【図４】実施形態１で生成される二次元ＦＥＣ
【図５】動画パケットとＦＥＣパケットのデータ構造
【図６】パケット送信部が送信するＦＥＣパケットを選択する手順を示すフローチャート
【図７】実施形態２で生成される二次元ＦＥＣ
【発明を実施するための形態】
【００１４】
以下、本発明の誤り訂正データ生成及び送信方法を動画像送信装置に適用した好適な実施形態について、図面を参照しながら説明する。実施形態１、２は共にＦＥＣパケットを生成する方法としてＸＯＲ演算を用いた二次元ＦＥＣ方式を採用した場合の例である。ただし、これらの例に限定されるものではない。
【００１５】
＜実施形態１＞
図１は本実施形態のシステムの全体の構成図である。図１に示されるように、送信装置１０１、受信装置１０３、１０４、１０５、及び、アクセスポイント１０６が、それぞれインターネット１０２に接続されている。
【００１６】
送信装置１０１は、ストリーミング機能を有し、受信装置に対して動画パケットを送信するストリーミングサーバとして動作する。すなわち、送信装置１０１は、受信装置に対して動画パケットを送信する送信装置である。
【００１７】
受信装置１０３、１０４は、有線のネットワークでインターネット１０２に接続されている。また、受信装置１０５は、アクセスポイント１０６を用いた無線ＬＡＮ接続を介してインターネット１０２に接続されている。受信装置１０３〜１０５は、送信装置１０１から動画像のストリーミングデータを受信するクライアントとして動作する。尚、１０２は、インターネットに限らない。
【００１８】
送信装置１０１は、受信装置１０３をクライアント１、受信装置１０４をクライアント２、受信装置１０５をクライアント３として認識されている。送信装置１０１から各受信装置までの利用可能ネットワーク帯域は個別に変動し、パケットロス率も各経路で個別に変動する。特に、送信装置１０１から受信装置１０５までの経路では、無線通信部分におけるパケットロス率が有線部分と比べて大きくなる。
【００１９】
ここで、本実施形態の二次元ＦＥＣと、送信装置１０１が生成するＦＥＣパケットに関するＦＥＣ生成パラメータについて、図４を用いて説明する。尚、ＦＥＣパケットは、通信経路上でエラーとなった動画パケットを受信装置が訂正するために用いる誤り訂正用のパケットである。つまり、送信装置１０１が、あるグループを構成する複数の動画パケットで１つのＦＥＣパケットを生成した場合、受信装置は、グループ内の動画パケットが１つエラーしても、グループ内のほかの動画パケット及びＦＥＣパケットで、エラーを訂正できる。尚、１つの動画パケットで１つのグループを構成することも可能である。
【００２０】
図４に示すように、本形態の送信装置１０１は、各動画パケットが、２つのグループに属するように、ＦＥＣパケットを生成する。また、本形態の送信装置１０１は、図４の動画パケット４０９、動画パケット４１０の順に左から送信する。そして、１行目の動画パケットを送信すると、２行目の動画パケット４１１、動画パケット４１２の順に左から送信する。
【００２１】
つまり、送信装置１０１は、送信順序が連続する複数の動画パケットの組み合わせに基づいて、ＦＥＣパケットを生成する。送信順序が連続する複数の動画パケットの組み合わせに基づいて生成されたＦＥＣパケットが、行方向ＦＥＣパケット４０１〜４０３である。
【００２２】
また、送信装置１０１は、送信順序が連続しない複数の動画パケットの組み合わせに基づいて、ＦＥＣパケットを生成する。送信順序が連続しない複数の動画パケットの組み合わせに基づいて生成されたＦＥＣパケットが、列方向ＦＥＣパケット４０４〜４０８である。
【００２３】
このように、本形態の送信装置１０１は、２つの異なる生成パターンによってＦＥＣパケットを生成する。また、送信装置１０１は、各生成パターンにおいて、ＦＥＣパケットを生成するために用いる動画パケットの数（ＦＥＣ生成パラメータ）を、複数のクライアントのＦＥＣレートに基づいて決定する。つまり、送信装置１０１は、図４に示すような例において、縦と横の動画パケットの数を、複数のクライアントのＦＥＣレートに基づいて決定する。
【００２４】
尚、本実施形態では、送信順序が連続する複数の動画パケットでＦＥＣパケットを生成する生成パターンと、送信順序が連続しない複数の動画パケットでＦＥＣパケットを生成する生成パターンについて説明するが、生成パターンは、これに限らない。各動画パケットが複数のグループに属するように、ＦＥＣパケットを生成する生成パターンを用いれば、本発明は適用可能である。
【００２５】
本実施形態の送信装置１０１は、複数のクライアント（受信装置１０３〜１０５）に動画パケットを配信する場合、各クライアントとの間の通信状況などに応じて、適したＦＥＣレートを決定する。ここで、ＦＥＣレートは、動画パケットの数に対するＦＥＣパケットの数を示している。
【００２６】
本形態の送信装置１０１は、決定された複数のＦＥＣレートのうち、最も低いＦＥＣレート（動画パケット数に対するＦＥＣパケット数が少ないＦＥＣレート）に基づいて、各行方向ＦＥＣパケットを生成するための、送信順序が連続する動画パケット数を決定する。
【００２７】
また、本形態の送信装置１０１は、決定された複数のＦＥＣレートのうち、最も高いＦＥＣレートに基づいて、各列方向ＦＥＣパケットを生成するための、送信順序が連続しない動画パケット数を決定する。尚、最も高いＦＥＣレートとは、複数のＦＥＣレートのうち、動画パケット数に対するＦＥＣパケット数が最も多いＦＥＣレートである。
【００２８】
そして、送信装置１０１は、送信順序が連続する動画パケットの組み合わせに基づいて生成されたＦＥＣパケット（行方向ＦＥＣパケット４０１〜４０３）と、動画パケットを、すべてのクライアントに送信する。また、送信装置１０１は、送信順序が連続しない動画パケットの組み合わせに基づいて生成されたＦＥＣパケット（列方向ＦＥＣパケット４０４〜４０８）を、各クライアントのＦＥＣレートに応じて送信する。つまり、最も低いＦＥＣレートの受信装置には、動画パケットと、送信順序が連続する動画パケットから生成されたＦＥＣパケットが送信され、送信順序が連続しない動画パケットから生成されたＦＥＣパケットは送信されない。
【００２９】
このように、本形態の送信装置１０１は、各クライアントのＦＥＣレートに応じて、各ＦＥＣパケットの生成パターンにおける動画パケットの数を決定する。このようにすることで、クライアントごとにＦＥＣパケットの生成パターンを変えることなく、各クライアントのＦＥＣレートに応じたＦＥＣパケットの送信ができる。また、送信装置１０１は、最も低いＦＥＣレートのクライアントに対して、１つの生成パターン（送信順序が連続する動画パケットから生成されたＦＥＣパケットを生成するパターン）で生成されたＦＥＣパケットをすべて送信する。すなわち、すべてのクライアントに対して、１つの生成パターンで生成されたＦＥＣパケットのすべてが、少なくとも送信されることになるので、すべての動画パケットに対して、最低限のエラー訂正機能を持たせることができる。ＦＥＣ生成パラメータの決定方法を含む送信装置１０１の処理の詳細は、後述する。
【００３０】
図２は、本実施形態の送信装置１０１の構成例を示すブロック図である。送信装置１０１は、映像入力部２０１、動画像符号化部２０２、パケット生成部２０３（以下、生成部２０３）、パケットロス情報処理部２０４（以下、処理部２０４）、ＦＥＣレート決定部２０５（以下、決定部２０５）、ＦＥＣ符号化部２０６を有する。また、送信装置１０１は、パケット送信部２０７（以下、送信部２０７）、クライアント送信情報記憶部２０８（以下、記憶部２０８）、パケットバッファ２０９（以下、バッファ２０９）、システムバス２１０、通信インターフェイス２１１を有する。送信装置１０１は、通信インターフェイス２１１で伝送路２１２に接続される。
【００３１】
映像入力部２０１は、取得した動画像データを符号化部２０２に出力する。符号化部２０２は、映像入力部２０１から出力された動画像データをＭＰＥＧ−４Ｖｉｄｅｏ形式やＨ．２６４形式等の圧縮符号化方式で圧縮符号化し、圧縮符号化された動画像データを生成部２０３に出力する。
【００３２】
生成部２０３は、圧縮符号化された動画像データをインターネット１０２で通信できるデータサイズの動画パケットに変換し、バッファ２０９に保存する。また、生成部２０３は動画パケットを生成したことを示す生成通知をＦＥＣ符号化部２０６と送信部２０７に出力する。この生成通知には、生成した動画パケットの識別情報（例えばシーケンスナンバー）が含まれる。
【００３３】
一方、処理部２０４は、伝送路２１２、通信インターフェイス２１１、システムバス２１０を介して、受信装置によって送信された受信情報を受信する。この受信情報は、例えば受信装置によるパケットの受信状況を示す情報である。この受信状況を示す情報は、例えば、受信した動画パケットの数や、通信経路でパケットロスした動画パケットの数の情報を含む。処理部２０４は、取得した受信情報を解析してパケットロス率を計算し、受信情報を送信した受信装置までのパケットロス率として決定部２０５に通知する。
【００３４】
決定部２０５は、通知されたパケットロス率、及び過去に通知されたパケットロス率、及び受信装置までの利用可能ネットワーク帯域幅等から、受信装置までの動画送信に適切なＦＥＣレートを決定する。
【００３５】
即ち、処理部２０４が受信する受信情報には、動画パケットのエラー状況に関する情報（エラー情報）が含まれる。そして、決定部２０５は、エラー情報に基づいて、受信装置に対して送信する動画パケットの数に対するＦＥＣパケットの数を決定する。
【００３６】
ただし、受信情報に含まれる情報は、エラー状況に関する情報に限らず、例えば、受信装置のユーザが直接指定したＦＥＣレートの要求情報が受信情報に含まれるようにすることも可能である。
【００３７】
そして、決定部２０５は、決定したＦＥＣレートを記憶部２０８に通知する。尚、ＦＥＣレートの決定方法は、上記の方法に限らず、例えば、送信装置がパケットを送信してから受信装置が受信するまでに要する時間に応じた時間情報などを用いても良い。
【００３８】
記憶部２０８は、決定部２０５から通知されたＦＥＣレートを、各受信装置の識別情報（例えばＩＰアドレス）と共に記憶する。記憶部２０８に記憶されるクライアント情報の例を、表１に示す。
【００３９】
【表１】
2010245954.tif 000003
【００４０】
表１に示すように、送信装置１０１の記憶部２０８には、例えば、クライアント番号、ＩＰアドレス、シーケンスナンバー、タイムスタンプ、ＦＥＣレートが記憶されている。
【００４１】
尚、本実施形態において、表１のクライアント番号が１のクライアント（クライアント１）が、受信装置１０３に対応する。また、クライアント番号が２のクライアント（クライアント２）が、受信装置１０４に対応する。また、クライアント番号が３のクライアント（クライアント３）が、受信装置１０５に対応する。
【００４２】
クライアント１（受信装置１０３）は、動画パケットの配信を受けている複数のクライアントの中で、最もＦＥＣレートが低いクライアントである。また、クライアント３（受信装置１０５）は、動画パケットの配信を受けている複数のクライアントの中で、最もＦＥＣレートが高いクライアントである。
【００４３】
また、シーケンスナンバーとタイムスタンプは、クライアントごとに異なる値である。送信部２０７は、ＦＥＣ符号化部２０６によって生成されたＦＥＣパケットのうち、シーケンスナンバーとタイムスタンプをクライアントごとに書き換えて送信する。この処理の詳細は、後述する。
【００４４】
ＦＥＣ符号化部２０６は、生成部２０３から動画パケットの生成通知を受けたことに応じて、動画パケットの送信先となるすべてのクライアントのＦＥＣレートを記憶部２０８から読み込む。そして、ＦＥＣ符号化部２０６は、読み込まれた複数のＦＥＣレートからＦＥＣ生成パラメータを決定する。
【００４５】
本実施形態のＦＥＣ符号化部２０６は、生成部２０３から、２０個のＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）に対応する動画パケットの生成通知を受けたことに応じて、ＦＥＣレートの読み込み、及び、ＦＥＣ生成パラメータの決定を行う。ただし、２０個のＧＯＰに限らない。
【００４６】
尚、ＦＥＣ符号化部２０６によるＦＥＣレートの読み込み、及び、ＦＥＣ生成パラメータの決定は、動画パケットの生成通知の受信に応じて行うことに限らない。他の方法として、例えば、受信装置からの受信情報の受信に応じて行うようにしても良いし、一定時間ごとに行うようにしても良い。また、例えば、動画パケットの送信先となる受信装置の増減に応じて行うようにすることも可能である。また、例えば、動画パケットの送信開始時と、ユーザから動画パケットの品質に関する要求の受信したタイミングに行うようにしても良い。
【００４７】
例えば、各受信装置に適したＦＥＣレートの大きな変動が頻繁に発生する場合に、ＦＥＣ生成パラメータの決定を短い間隔で行うことにより、より通信状況の変化に適したＦＥＣ生成パラメータを決定することができる。また、例えば、各受信装置に適したＦＥＣレートの変動が大きくない場合は、ＦＥＣ生成パラメータの決定する間隔を長くすることにより、ＦＥＣ生成パラメータの決定やＦＥＣパケットの生成などにかかる負荷を低減することができる。
【００４８】
ＦＥＣ符号化部２０６は、決定したＦＥＣ生成パラメータでＦＥＣパケットを生成し、バッファ２０９に保存する。すなわち、ＦＥＣ符号化部２０６は、複数の動画パケットの組み合わせで、動画パケットのエラーを訂正するための誤り訂正パケットを生成する。本実施形態のＦＥＣ符号化部２０６は、複数の動画パケットに対してＸＯＲ演算を行うことによってＦＥＣパケットを生成する。ただし、ＦＥＣパケットの生成方法は、ＸＯＲ演算によるものに限らない。
【００４９】
ＦＥＣ符号化部２０６は、生成したＦＥＣパケットをバッファ２０９に保存すると、保存したＦＥＣパケットの識別情報（例えばシーケンスナンバー）を含むＦＥＣパケット生成通知を送信部２０７に出力する。
【００５０】
送信部２０７は、生成部２０３から動画パケットの生成通知を受けると、バッファ２０９に記憶されている動画パケットを読み出し、記憶部２０８に記憶されている各クライアントの送信情報を読み出す。その後、送信部２０７は、読み出した動画パケットのパケットヘッダーの一部（ＲＴＰヘッダーのタイムスタンプとシーケンスナンバー）をクライアントごとの値に変更し、通信インターフェイス２１１を介して各クライアントに送信する。
【００５１】
また、送信部２０７は、ＦＥＣ符号化部２０６からＦＥＣパケット生成通知を受け取ると、バッファ２０９に記憶されているＦＥＣパケットを読み出し、記憶部２０８に記憶されている各クライアントの送信情報を読み出す。その後、読み出したＦＥＣパケットのパケットヘッダーの一部とパケットペイロードの一部データをクライアントごとの値に変更する。そして、送信部２０７は、クライアントごとのＦＥＣレートに応じて送信するＦＥＣパケットを決定し、ＦＥＣパケットをクライアントに送信する。ＦＥＣパケットの一部データの変更と選択送信の詳細は後述する。
【００５２】
次に図３、４と表１を参照してＦＥＣ生成パラメータの決定手順について述べる。本実施例ではＦＥＣ方式にＸＯＲ演算を用いた二次元ＦＥＣ方式を採用しているため、ＦＥＣ生成パラメータは二次元ＦＥＣの行列のサイズとなる。
【００５３】
図３は、本実施形態のＦＥＣ符号化部２０６が、各クライアントのＦＥＣレートから二次元ＦＥＣの行数と列数（ＦＥＣ生成パラメータ）を決定する手順を示すフローチャートである。このフローチャートで示した処理は、例えば、ＦＥＣ符号化部２０６が生成部２０３から動画パケット生成通知を受信したことに応じて開始される。なお、この手順は、ＦＥＣ符号化部２０６が実行する代わりに、システムバス２１０に接続された不図示のコンピュータが実行し、決定したＦＥＣ生成パラメータを不図示のコンピュータがＦＥＣ符号化部２０６に設定してもよい。
【００５４】
ステップＳ３０１において、ＦＥＣ符号化部２０６は、記憶部２０８からクライアント送信情報を取得する。クライアント送信情報の例は、表１に示したとおりである。また、表１に示した３つのクライアントは、現在、送信装置１０１から動画パケットの配信を受けているクライアントである。
【００５５】
ステップＳ３０２において、ＦＥＣ符号化部２０６は、取得したクライアント送信情報からＦＥＣレートを取り出し、最小ＦＥＣレートと最大ＦＥＣレートを特定する。表１の例では、最小ＦＥＣレートは２０％、最大ＦＥＣレートは５０％である。尚、ＦＥＣレートが２０％であるとは、動画パケット１０個に対して、ＦＥＣパケットが２個生成されるＦＥＣレートのことを示している。同様に、ＦＥＣレートが５０％であるとは、例えば、動画パケット１０個に対して、ＦＥＣパケットが５個生成されるＦＥＣレートのことを示している。また、ＦＥＣレートは、決定部２０５が、各クライアントからの受信情報に基づいて決定している。
【００５６】
ステップＳ３０３（生成手順）において、ＦＥＣ符号化部２０６は、ステップＳ３０２で特定された最小・最大ＦＥＣレートから二次元ＦＥＣの行数と列数（ＦＥＣ生成パラメータ）を決定する。ここで、最小、最大ＦＥＣレートの条件を満たす二次元ＦＥＣの行数と列数の決定方法の例を説明する。最小ＦＥＣレートをＦｍｉｎとすると、二次元ＦＥＣの列数Ｘ（行方向の動画パケットの数）は、次のように求めることができる。すなわち、
Ｘ＝１／Ｆｍｉｎ
また、最大ＦＥＣレートをＦｍａｘとすると、二次元ＦＥＣの行数Ｙ（列方向の動画パケットの数）は、次のように求めることができる。すなわち、
Ｙ＝１／（Ｆｍａｘ−Ｆｍｉｎ）
この２つの式に、最小ＦＥＣレートＦｍｉｎ＝２０％（０．２）、最大ＦＥＣレートＦｍａｘ＝５０％（０．５）を代入すると、二次元ＦＥＣの列数は５、行数は３となる。尚、本形態では、Ｘ、Ｙの小数点以下は、切り上げている。
【００５７】
このように、本形態のＦＥＣ符号化部２０６は、処理部２０４によって決定された最大ＦＥＣレートと最小ＦＥＣレートに基づいて、二次元ＦＥＣの行数と列数を決定する。
【００５８】
つまり、ＦＥＣ符号化部２０６は、各受信装置に対するＦＥＣレート（レート情報）に基づいて、１つの行方向ＦＥＣパケットに対応する動画パケットの数（第１の組み合わせに含まれる動画パケットの数）を決定する。即ち、ＦＥＣ符号化部２０６は、第１の受信装置に対するＦＥＣレートと第２の受信装置に対するＦＥＣレートのうち、動画パケットの数に対する誤り訂正パケットの数が少ないレート情報に基づいて、第１の組み合わせに含まれる動画パケットの数を決定する。
【００５９】
また、ＦＥＣ符号化部２０６は、各受信装置に対するＦＥＣレート（レート情報）に基づいて、１つの列方向ＦＥＣパケットに対応する動画パケットの数（第２の組み合わせに含まれる動画パケットの数）を決定する。即ち、ＦＥＣ符号化部２０６は、第１の受信装置に対するＦＥＣレートと第２の受信装置に対するＦＥＣレートのうち、動画パケットの数に対する誤り訂正パケットの数が多いレート情報に基づいて、第２の組み合わせに含まれる動画パケットの数を決定する。このようにして生成された二次元ＦＥＣの例を図４に示す。
【００６０】
図４に示すように、動画パケット１５個に対し横方向の組み合わせによって生成されるＦＥＣパケット（行方向ＦＥＣパケット４０１〜４０３）が３個ある。つまり、３÷１５＝２０％となり、このＦＥＣパケットを最小ＦＥＣレートのクライアントに送信すれば、最小ＦＥＣレートの要件を満たすことができる。また、動画パケット１５個に対し、縦方向の組み合わせによって生成されるＦＥＣパケット（列方向ＦＥＣ４０４〜４０８）が５個あるため、８÷１５＝５３％となる。つまり、すべてのＦＥＣパケットを最大ＦＥＣレートのクライアントに送信すれば、最大ＦＥＣレートの要件を満たすことができる。
【００６１】
即ち、ＦＥＣ符号化部２０６は、ステップＳ３０３において、行方向ＦＥＣパケットと列方向ＦＥＣパケットを生成する。つまり、ＦＥＣ符号化部２０６は、動画パケット４０９（第１の動画パケット）と、その次に送信される動画パケット４１０（第２の動画パケット）を含む組み合わせに基づいて、動画パケット４０９のエラーを訂正するための行方向ＦＥＣパケット４０１を生成する。また、ＦＥＣ符号化部２０６は、動画パケット４０９と、動画パケット４１１（第３の動画パケット）を含み、動画パケット４１０を含まない組み合わせに基づいて、動画パケット４０９のエラーを訂正するためのＦＥＣパケット４０４を生成する。
【００６２】
ステップＳ３０４において、ＦＥＣ符号化部２０６は、動画パケットの配信を継続するか判断する。動画パケットの配信を継続すると判断された場合は、ステップＳ３０１に戻り、動画パケットの配信を終了すると判断された場合は、処理を終了する。ステップＳ３０１に戻った場合、本形態のＦＥＣ符号化部２０６は、生成部２０３が２０個分のＧＯＰに対応する動画パケットの生成ごとに、ＦＥＣ生成パラメータを再決定する。つまり、この行数・列数の決定は、ストリームを配信する間、繰り返し行われる。この再決定の詳細については、実施形態２で説明する。
【００６３】
次に、ＦＥＣパケットの一部のデータをクライアントごとの送信情報に合わせて変更する処理について図５を参照して説明する。図５は、ＦＥＣパケットと動画パケットの構造を示した図である。同図において、ＦＥＣパケットのＲＴＰペイロード部５０２は、当該ＦＥＣパケットに対応する１つ以上の動画パケット５０３をＸＯＲ演算したものである。
【００６４】
しかしながら、動画パケット５０３内のデータのうち、ＲＴＰペイロード部は、送信先に関わらず同じ内容となるが、ＲＴＰヘッダー部のタイムスタンプ５０６とシーケンスナンバー５０７の内容は送信先のクライアントごとに異なる。したがって、ＦＥＣパケットのＲＴＰペイロード部５０２内のデータのうち、動画パケットのタイムスタンプ５０６に相当する領域５０８と、シーケンスナンバー５０７に相当する領域５０９は、クライアントごとに個別にＸＯＲ演算を行う必要がある。
【００６５】
尚、タイムスタンプは４バイト、シーケンスナンバーは２バイト、と小さいデータサイズであるためクライアントごとにＸＯＲ演算を行っても処理負荷の増加量は個別に動画パケットの組み合わせを設定してＦＥＣパケットを生成するよりも小さくなる。
【００６６】
送信部２０７は、記憶部２０８に記憶されているクライアント送信情報から各クライアントのタイムスタンプとシーケンスナンバーを取得し、ＦＥＣパケットを生成する対象となる動画パケット数分のＸＯＲ演算を行う。そして、送信部２０７は、上記のようにして得られたＸＯＲ演算結果に基づいて、ＦＥＣ符号化部２０６によって生成されたＦＥＣパケットの、ＲＴＰペイロード部のタイムスタンプに対応する領域５０８とシーケンスナンバーに対応する領域５０９の値を変更する。さらに、送信部２０７は、ＦＥＣパケットのＲＴＰヘッダー部５０１のタイムスタンプ５０４とシーケンスナンバー５０５を各クライアントに応じた値に変更する。
【００６７】
次に、送信部２０７がクライアントごとのＦＥＣレートに合わせて送信するＦＥＣパケットを選択する手順を説明する。
【００６８】
図６は送信部２０７がクライアントごとのＦＥＣレートに合わせて送信するＦＥＣパケットを選択する手順を示すフローチャートである。なお、この手順は、送信部２０７が実行する代わりに、システムバス２１０に接続された不図示のコンピュータが実行し、選択したパケットを不図示のコンピュータがバッファ２０９から送信部２０７に転送してもよい。
【００６９】
ステップＳ６０１において、送信部２０７は、あるクライアントのＦＥＣレートを記憶部２０８から取得する。ここでは、受信装置１０３（第１の受信装置）ＦＥＣレートが取得されたものとする。
【００７０】
ステップＳ６０２において、送信部２０７は、ステップＳ６０１で取得されたＦＥＣレートが最小ＦＥＣレートであるか判断する。送信部２０７は、ステップＳ６０１で読み出さなかった他のクライアントのＦＥＣレートを記憶部２０８から読み出し、それらと比較することで、ステップＳ６０１で取得したＦＥＣレートが最小ＦＥＣレートであるか否かを判断する。ステップＳ６０２において、取得したＦＥＣレートが最小ＦＥＣレートであると判断された場合はステップＳ６０８に進み、取得したＦＥＣレートが最小ＦＥＣレートではないと判断された場合はステップＳ６０３に進む。
【００７１】
尚、表１のクライアント番号が１であるクライアント１は図１の受信装置１０３に対応する。同様に、クライアント番号が２であるクライアント２は受信装置１０４、クライアント番号が３であるクライアント３は受信装置１０５に対応する。表１に示すように、クライアント１のＦＥＣレートは２０％であるため、送信部２０７は、受信装置１０３のＦＥＣレートが最小ＦＥＣレートであると判断し、ステップＳ６０８に進む。
【００７２】
ステップＳ６０８において、送信部２０７は、最小ＦＥＣレートに対応するクライアント１（受信装置１０３）に対して送信するＦＥＣパケットとして、送信順序が連続する動画パケットから生成されたＦＥＣパケットを選択する。送信順序が連続する動画パケットから生成されたＦＥＣパケットは、例えば、図４の行方向ＦＥＣパケット４０１〜４０３である。また、ステップＳ６０８において、送信部２０７は、送信順序が連続しない動画パケットから生成された列方向ＦＥＣパケット（４０４〜４０８）をクライアント１（受信装置１０３）に送信しないことを決定する。
【００７３】
尚、上述のように、送信順序が連続する動画パケットからＦＥＣパケットを生成する生成パターンにおいて、１つのＦＥＣパケットを生成するために用いる動画パケットの数（二次元ＦＥＣの列数）は、最小ＦＥＣレートに基づいて決定される。ステップＳ６０８の処理が終了すると、動画パケットを配信する他のクライアントに対して、図６のフローチャートの処理を行う。
【００７４】
次に、クライアント２（受信装置１０４）に対して、図６のＦＥＣパケット選択処理を実行した場合について説明する。
【００７５】
ステップＳ６０２において、送信部２０７は、クライアント２のＦＥＣレートが最小ＦＥＣレートではないと判断し、ステップＳ６０３に進む。
【００７６】
ステップＳ６０３において、送信部２０７は、ステップＳ６０１で取得されたクライアント２のＦＥＣレートが最大ＦＥＣレートであるか判断する。最大ＦＥＣレートであると判断された場合は、ステップＳ６０７に進み、最大ＦＥＣレートでないと判断された場合は、ステップＳ６０４に進む。クライアント２のＦＥＣレートは最大ＦＥＣレートではないため、ステップＳ６０４に進む。
【００７７】
ステップＳ６０４において、送信部２０７は、行方向ＦＥＣパケットをすべて選択する。ここでは、行方向ＦＥＣパケット４０１〜４０３が選択される。そして、ステップＳ６０５において、送信部２０７は、クライアント２のＦＥＣレートと、ステップＳ６０４で選択された行方向ＦＥＣパケットの数に基づいて、送信すべきＦＥＣパケット数までの不足数を算出する。この例においては、２個のＦＥＣパケットが不足していることがわかる。
【００７８】
そこで、ステップＳ６０６において、送信部２０７は、動画パケットの列方向の組み合わせにより生成された列方向ＦＥＣパケット４０４〜４０８の中から２個のＦＥＣパケットを、送信するＦＥＣパケットとして決定する。送信部２０７は、ステップＳ６０４で選択された行方向ＦＥＣパケットとステップＳ６０６で選択された列方向ＦＥＣパケットをクライアント２に対して送信すれば、クライアント２のＦＥＣレートは５÷１５≒３３％となり、要件を満たすことができる。
【００７９】
尚、本形態の送信部２０７は、複数の列方向ＦＥＣパケット４０４〜４０８のうち、どのＦＥＣパケットを送信させるかを、対応する動画パケットの表示位置に基づいて決定する。つまり、例えば、送信部２０７は、より表示画面の中心に近い位置で表示される動画パケットのエラーを訂正するための列方向のＦＥＣパケットが送信されるように、送信する列方向のＦＥＣパケットを決定する。このようにすることで、表示画面の中心の近くで表示される動画パケットを、表示画面の端に表示される動画パケットよりも高い確率で正常に再生させることができる。
【００８０】
また、本形態の送信部２０７は、例えば、列方向ＦＥＣパケットでエラー訂正可能な動画パケットの表示位置が、隣接しないように、送信する列方向ＦＥＣパケットを決定する。このようにすれば、例えば、受信装置が、ＦＥＣパケットによるエラー訂正ができなかった動画パケットの領域を、エラー隠蔽機能により表示させようとする場合に、エラー隠蔽後の画質を上げることができる。ここで、エラー隠蔽とは、エラーした動画パケットの表示領域に隣接する領域のデータを、例えばコピーすることによって、エラーした領域の表示を行う方法である。
【００８１】
また、例えば、動き領域に対応する動画パケットのエラーを訂正するための列方向のＦＥＣパケットを送信するようにしても良い。このようにすれば、画面内で動きのある領域のエラーを動きのない領域よりも高い確率で防ぐことができる。動き領域の検出方法として、例えば、動きベクトルを参照する方法や、複数フレームの画素値の比較する方法がある。
【００８２】
このように、より重要度の高い動画パケットに対応する列方向ＦＥＣパケットを送信すれば、より再生画像に影響の大きい動画パケットのエラーを、影響の小さい動画パケットよりも高い確率で訂正することができる。
【００８３】
また、送信部２０７は、ステップＳ６０７において、最大ＦＥＣレートが設定されているクライアント３に対して、すべてのＦＥＣパケットを送信することを決定する。つまり、送信部２０７は、ステップＳ６０３において、クライアントに設定されているＦＥＣレートが最大ＦＥＣレートであると判断した場合、ステップＳ６０７に進む。そして、送信部２０７は、当該クライアントに対して、生成した列方向ＦＥＣと行方向ＦＥＣをすべて送信することを決定する。
【００８４】
即ち、ステップＳ６０６、Ｓ６０７、及びＳ６０８（決定手順）によって、送信部２０７は、動画パケットをすべてのクライアント（受信装置１０３（第１の受信装置）、１０４、１０５（第２の受信装置））に送信することを決定する。また、送信部２０７は、すべての行方向ＦＥＣをすべてのクライアントに送信することを決定する。また、ステップＳ６０６、Ｓ６０７、Ｓ６０８で、送信部２０７は、列方向ＦＥＣのうち一部（例えば、列方向ＦＥＣパケット４０５、４０７）の送信先を次のように決定する。すなわち、送信部２０７は、列方向ＦＥＣパケット４０５、４０７を、受信装置１０３（第１の受信装置）には送信せずに、受信装置１０４、１０５（第２の受信装置）に送信することを決定する。さらに、送信部２０７は、残りの列方向ＦＥＣ（列方向ＦＥＣパケット４０４、４０６、４０８）を受信装置１０５に送信することを決定する。
【００８５】
ステップＳ６０９（送信手順）において、送信部２０７は、以上のようにして決定されたＦＥＣパケットを、クライアントに対して送信する。すなわち、本実施形態の送信部２０７は、動画パケットをすべてのクライアントに送信する。また、送信部２０７は、行方向ＦＥＣをすべてのクライアントに送信する。また、送信部２０７は、列方向ＦＥＣのうちの一部を、受信装置１０４、１０５に送信する。さらに、送信部２０７は、残りの列方向ＦＥＣを受信装置１０５に送信する。
【００８６】
尚、すべての受信装置に送信される行方向ＦＥＣパケット４０１は、動画パケット４０９（第１の動画パケット）と、動画パケット４１０（第２の動画パケット）を含む第１の組み合わせに基づいて生成される第１の誤り訂正パケットである。この行方向ＦＥＣパケット４０１は、例えば、動画パケット４０９のエラーを受信装置が訂正するために用いられる。また、受信装置１０５に送信される列方向ＦＥＣパケット４０４は、動画パケット４０９と動画パケット４１１（第３の動画パケット）を含み、動画パケット４１０を含まない第２の組み合わせに基づいて生成される第２の誤り訂正パケットである。この列方向ＦＥＣパケット４０４は、例えば、動画パケット４０９のエラーを受信装置が訂正するために用いられる。
【００８７】
即ち、送信部２０７は、ステップＳ６０９において、第１、第２及び第３の動画パケットと第１の誤り訂正パケットを第１及び第２の受信装置（受信装置１０３及び１０５）に送信する。また、送信部２０７は、ステップＳ６０９において、第２の誤り訂正パケットを、第１の受信装置（受信装置１０３）には送信せずに、第２の受信装置（受信装置１０５）に送信する。
【００８８】
このように、送信部２０７は、クライアントごとに設定されたＦＥＣレートに基づいて、送信するＦＥＣパケットを決定するが、上述のように、ＦＥＣレートは、受信装置によって送信された受信情報によって決定する。この受信情報は、例えば、動画パケットのエラー状況に関する情報に関する情報（エラー情報）である。
【００８９】
即ち、送信部２０７は、列方向ＦＥＣパケット４０４（第２の誤り訂正パケット）を、第１のエラー情報を送信した第１の受信装置（受信装置１０３）には送信しない。また、送信部２０７は、列方向ＦＥＣパケット４０４を、第１のエラー情報よりもエラーした動画パケットが多いことを示す第２のエラー情報を送信した第２の受信装置（受信装置１０５）に送信する。
【００９０】
また、送信部２０７は、第１、第２及び第３の動画パケット（４０９、４１０、４１１）と第１の誤り訂正パケット（行方向ＦＥＣパケット４０１）を、第１のエラー情報を送信した第１の受信装置、及び、第２のエラー情報を送信した第２の受信装置に送信する。
【００９１】
尚、ＦＥＣレートは、例えば、受信装置のユーザが直接指定したＦＥＣレートに基づいて決定しても良い。つまり、処理部２０４は、動画パケットの数に対する誤り訂正パケットの数に関する要求情報を受信した場合、要求情報に基づいて、各クライアントに対するＦＥＣレートを決定することも可能である。
【００９２】
この場合、送信部２０７は、列方向ＦＥＣパケット４０４（第２の誤り訂正パケット）を、第１の要求情報を送信した第１の受信装置（受信装置１０３）には送信しない。また、送信部２０７は、列方向ＦＥＣパケット４０４を、第１の要求情報よりも動画パケットに対する誤り訂正パケットの数が多いことを示す第２の要求情報を送信した第２の受信装置（受信装置１０５）に送信する。
【００９３】
また、送信部２０７は、第１、第２及び第３の動画パケット（４０９、４１０、４１１）と第１の誤り訂正パケット（行方向ＦＥＣパケット４０１）を、第１の要求情報を送信した第１の受信装置、及び、第２の要求情報を送信した第２の受信装置に送信する。
【００９４】
また、すべての受信装置に対して送信される行方向ＦＥＣパケット４０２は、動画パケット４１１（第３の動画パケット）と、その次に送信される動画パケット４１２（第４の動画パケット）を含む組み合わせに基づいて生成される第３の誤り訂正パケットである。この誤り訂正パケット４０２は、例えば、動画パケット４１１のエラーを受信装置が訂正するために用いられる誤り訂正パケットである。
【００９５】
また、ＦＥＣ符号化部２０６は、行方向ＦＥＣパケット４０２を生成すると共に、列方向ＦＥＣパケット４０５（第４の誤り訂正パケット）を生成する。列方向ＦＥＣパケット４０５は、第２の動画パケット（４１０）と、動画パケット４１０と送信順序が連続しない第４の動画パケット（４１２）を含む組み合わせに基づいて、動画パケット４１０のエラーを受信装置が訂正するための誤り訂正パケットである。
【００９６】
そして、送信部２０７は、動画パケットと、行方向ＦＥＣパケットを、すべてのクライアント（受信装置１０３〜１０５）に送信する。また、送信部２０７は、すべての列方向ＦＥＣパケットを、最大ＦＥＣレートに対応するクライアント（受信装置１０５）に送信する。さらに、送信部２０７は、最大ＦＥＣレートにも最小ＦＥＣレートにも当てはまらないクライアント（受信装置１０４）に対し、そのＦＥＣレートに応じて、列方向ＦＥＣパケットのうち、重要度が高い列方向ＦＥＣパケット（４０５）を送信する。
【００９７】
即ち、送信部２０７は、第１、第２、第３及び第４の動画パケット（４０９〜４１２）と第１、第３の誤り訂正パケット（４０１、４０２）を、第１、第２及び第３の受信装置に送信する。また、送信部２０７は、第２の誤り訂正パケット（列方向ＦＥＣパケット４０４）を、第１、第３の受信装置には送信せずに、第２の受信装置（クライアント３）に送信する。そして、第２の誤り訂正パケットよりも重要度が高い第４の誤り訂正パケット（列方向ＦＥＣパケット４０５）を、第１の受信装置（クライアント１）には送信せずに、第２及び第３の受信装置（クライアント３、２）に送信する。
【００９８】
ただし、本形態では、列方向ＦＥＣパケット４０５の重要度が列方向ＦＥＣパケット４０４の重要度よりも高い場合について説明したが、重要度の決定方法によっては、列方向ＦＥＣパケット４０４の重要度のほうが高くなる場合もありうる。この場合、送信部２０７は、重要度が高い列方向ＦＥＣパケット４０４を第１の受信装置には送信せずに、第２及び第３の受信装置に送信し、列方向ＦＥＣパケット４０５を第１及び第２の受信装置には送信せずに、第３の受信装置に対して送信する。
【００９９】
以上のように、本実施形態の送信装置は１０１、各クライアントとの間で決定されたＦＥＣレートに基づいて、行方向ＦＥＣと列方向ＦＥＣを生成するための動画パケット数（ＦＥＣ生成パラメータ）を決定する。そして、送信装置１０１は、各クライアントのＦＥＣレートに応じて、送信するＦＥＣパケットを決定する。このようにすることで、各クライアントのＦＥＣレートに応じたＦＥＣパケットの送信をするときの負荷を、クライアントごとにＦＥＣパケットを生成する場合よりも少なくすることができる。
【０１００】
また、本実施形態では、行方向ＦＥＣパケットがすべてのクライアントに送信されるようにしている。このようにすることで、すべてのクライアントに、すべての動画パケットに対応するＦＥＣパケットを、少なくとも１つ送信することができる。
【０１０１】
＜実施形態２＞
次に、本発明の第２の実施形態について、実施形態１との差異を中心に説明する。本実施形態では、各クライアントまでの通信経路のエラー率の変動に応じて、ＦＥＣレートが変動する場合の例について説明する。
【０１０２】
前述の通り、インターネット回線は、利用可能ネットワーク帯域とパケットロス率が時間的に変動し、また無線通信区間においてもパケットロス率が大きく変動しうる。したがって、各クライアントまでの経路上のパケットロス率も時間的に変動する。本実施形態では、時間的に変動したパケットロス率に応じてＦＥＣレートを動的に変更することで、より適切なＦＥＣレートで動画パケットとＦＥＣパケットを送信する場合について説明する。
【０１０３】
表２は、表１の状態から、クライアント１までの経路でのパケットロス率が下がった結果、必要なＦＥＣレートが２０％から１５％に下がったことを示している。また、表２は、クライアント３までの経路でのパケットロス率が上がった結果、必要なＦＥＣレートが５０％から６０％に上がったことを示している。このようなパケットロス率とＦＥＣレートの変化に応じて、ＦＥＣパケットを生成するための動画パケット数を変更する例について、図３のフローチャートを用いて説明する。
【０１０４】
【表２】
2010245954.tif 000004
【０１０５】
このフローチャートで示した処理は、例えば、ＦＥＣ符号化部２０６が生成部２０３から動画パケット生成通知を受信したことに応じて開始される。
【０１０６】
ステップＳ３０１において、ＦＥＣ符号化部２０６は、記憶部２０８からクライアント送信情報を取得する。本実施形態では、表２に示すようなクライアント送信情報が取得される。また、ステップＳ３０２において、ＦＥＣ符号化部２０６は、取得したクライアント送信情報からＦＥＣレートを取り出し、最小ＦＥＣレートと最大ＦＥＣレートを特定する。この例では、最小ＦＥＣレートとして１５％、最大ＦＥＣレートとして６０％が特定される。尚、ＦＥＣレートは、決定部２０５が、各クライアントからの受信情報に基づいて決定する。
【０１０７】
ステップＳ３０３において、ＦＥＣ符号化部２０６は、ステップＳ３０２で特定された最小・最大ＦＥＣレートに基づいて、二次元ＦＥＣの行数と列数（ＦＥＣ生成パラメータ）を決定する。行数と列数の決定方法は、実施形態１と同様である。表２の例では、行方向ＦＥＣを生成するための動画パケット数は、６個となる。また、列方向ＦＥＣを生成するための動画パケット数は、２個となる。
【０１０８】
つまり、ＦＥＣ符号化部２０６は、最小ＦＥＣレートであるクライアント１のＦＥＣレートが表１に示すように２０％の場合は、１つの行方向ＦＥＣパケットに対応する動画パケットの数（第１の組み合わせに含まれる動画パケットの数）を、５つに決定する。そして、ＦＥＣ符号化部２０６は、最小ＦＥＣレートであるクライアント１のＦＥＣレートが表２に示すように１５％に下がったことに応じて、１つの行方向ＦＥＣパケットに対応する動画パケットの数を６つに変更する。
【０１０９】
即ち、ＦＥＣ符号化部２０６は、第１の受信装置（クライアント１）に送信する動画パケットに対する誤り訂正パケットの数が減少するように第１のレート情報（ＦＥＣレート）を変更した場合、第１の組み合わせに含まれる動画パケットの数を増加させる。
【０１１０】
このようにして生成された二次元ＦＥＣの例を図７に示す。図７に示すように、動画パケット１２個に対し行方向ＦＥＣ（７０１、７０２）が２個あるため、ＦＥＣレートは、２÷１２＝１６％となる。従って、送信部２０７が行方向ＦＥＣパケットを最小ＦＥＣレートのクライアントに送信すれば、最小ＦＥＣレートの要件を満たすことができる。一方、動画パケット１２個に対し、列方向ＦＥＣ（７０３〜７０８）が６個あるため、ＦＥＣレートは、８÷１２＝６６％となる。従って、送信部２０７が行方向、列方向ＦＥＣパケットを最大ＦＥＣレートのクライアントに送信すれば、最大ＦＥＣレートの要件を満たすことができる。
【０１１１】
また、ＦＥＣレートが３０％であるクライアント２（受信装置１０４）に対しては、動画パケット１２個に対し、４つのＦＥＣパケットを送信すれば、４÷１２＝３３％となり、決定されたＦＥＣレートの要件を満たすことができる。従って、送信部２０７は、６つの列方向ＦＥＣパケットのうちの２つと、２つの行方向ＦＥＣパケットをクライアント２に送信する。
【０１１２】
ステップＳ３０４において、ＦＥＣ符号化部２０６は、動画パケットの配信を継続するか判断する。動画パケットの配信を継続すると判断された場合は、ステップＳ３０１に戻り、動画パケットの配信を終了すると判断された場合は、処理を終了する。実施形態１で述べたように、ＦＥＣ符号化部２０６は、ＦＥＣレートの読み込みとＦＥＣ生成パラメータの決定を、動画パケットの生成通知の受信ごと応じて行っても良いし、一定時間ごと、受信装置からの受信情報の受信ごとなどに行うようにしても良い。
【０１１３】
以上のように、本実施形態の送信装置１０１は、ＦＥＣレートが変更したことに応じて、ＦＥＣ生成パラメータを変更する。このようにすることで、通信相手ごとに設定された誤り訂正データのデータ量に基づく誤り訂正データの生成にかかる負荷を低減できると共に、変化した通信状況に、より適したＦＥＣパケットの生成ができる。
【０１１４】
＜その他の実施形態＞
本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体（記憶媒体）等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インターフェイス機器、撮像装置、ｗｅｂアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１１５】
また、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【図１】
2010245954.tif 000005
【図２】
2010245954.tif 000006
【図３】
2010245954.tif 000007
【図４】
2010245954.tif 000008
【図５】
2010245954.tif 000009
【図６】
2010245954.tif 000010
【図７】
2010245954.tif 000011