(57)【要約】【課題】  損失するパケットによっては、損失パケットを冗長データを用いて復元できない場合があった。【解決手段】  送信装置１００の組み合わせ決定部１０７は、第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを受信装置が復元するために用いる復元用パケット（ＦＥＣパケット）が、第１のフレームのデータパケットと第２のフレームのデータパケットに基づいて生成されるように、復元用パケットを生成するために用いるデータパケットの組み合わせを決定する。誤り訂正符号化部１０６は、組み合わせ決定部１０７の決定に基づいて、第１のフレームのデータパケットと第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する。【選択図】  図１
2010183439.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置であって、
前記複数のフレームのうちの第１のフレームが他のフレームのデータを参照せずに符号化されるフレームであるか否かを判別可能な符号化タイプを判断する判断手段と、
前記第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第１のフレームと同じ符号化タイプである第２のフレームのデータパケットに基づいて生成する生成手段と、
データパケットと復元用パケットを送信する送信手段とを有し、
前記生成手段は、前記第１のフレームのデータパケットの識別情報、及び、前記第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とする送信装置。
【請求項２】
前記第１のフレーム、及び前記第１のフレームよりも後に再生される前記第２のフレーム、及び前記第２のフレームよりも後に再生される第３のフレームのデータを入力する入力手段を有し、
前記生成手段は、
前記通信に失敗した前記第１のフレームのデータパケットを復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第２のフレームのデータパケットに基づいて生成し、
前記通信に失敗した前記第２のフレームのデータパケットを復元するために用いる復元用パケットを、前記第２のフレームのデータパケットと前記第３のフレームのデータパケットに基づいて生成する
ことを特徴とする請求項１記載の送信装置。
【請求項３】
前記生成手段は、前記通信に失敗した前記第１のフレームの第１のデータパケットを前記受信装置が復元するために用いる第１の復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレームのデータパケットに基づいて生成し、前記通信に失敗した前記第１のフレームの第１のデータパケットを前記受信装置が復元するために用いる第２の復元用パケットを、前記第１のフレームの第１のデータパケットと前記第１のフレームの第２のデータパケットに基づいて生成する
ことを特徴とする請求項１記載の送信装置。
【請求項４】
前記第１のフレームのデータと、前記第１のフレームよりも後に再生される第２のフレームのデータと、前記第２のフレームよりも後に再生される第３のフレームのデータを入力する入力手段と、
前記第１のフレームよりも前のフレームのデータパケットについて、連続して通信に失敗したパケット数を判断する判断手段とを有し、
前記生成手段は、
第１のパケット数のパケットが連続して通信に失敗した場合、
前記第１のフレームのデータパケットを復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第２のフレームのデータパケットに基づいて生成し、
前記第１のパケット数よりも多い第２のパケット数のパケットが連続して通信に失敗した場合、
前記第１のフレームのデータパケットを復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第３のフレームのデータパケットに基づいて生成する
ことを特徴とする請求項１記載の送信装置。
【請求項５】
前記第１のフレームのデータと、前記第１のフレームよりも後に再生される第２のフレームのデータと、前記第２のフレームよりも後に再生される第３のフレームのデータを入力する入力手段を有し、
前記生成手段は、
前記第１のフレームのデータパケットの送信時刻と再生時刻の時間差が第１の時間差であった場合、
前記第１のフレームのデータパケットを復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと第２のフレームのデータパケットに基づいて生成し、
前記第１のフレームのデータパケットの送信時刻と再生時刻の時間差が前記第１の時間差よりも長い第２の時間差であった場合、
前記第１のフレームのデータパケットを復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第３のフレームのデータパケットに基づいて生成する
ことを特徴とする請求項１記載の送信装置。
【請求項６】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置が行う送信方法であって、
前記複数のフレームのうちの第１のフレームが他のフレームのデータを参照せずに符号化されるフレームであるか否かを判別可能な符号化タイプを判断する判断工程と、
前記第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第１のフレームと同じ符号化タイプである第２のフレームのデータパケットに基づいて生成する生成工程と、
データパケットと復元用パケットを送信する送信工程とを有し、
前記生成工程は、前記第１のフレームのデータパケットの識別情報、及び、前記第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とする送信方法。
【請求項７】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信するコンピュータに、
前記複数のフレームのうちの第１のフレームが他のフレームのデータを参照せずに符号化されるフレームであるか否かを判別可能な符号化タイプを判断する判断手順と、
前記第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第１のフレームと同じ符号化タイプである第２のフレームのデータパケットに基づいて生成する生成手順と、
データパケットと復元用パケットを送信する送信手順とを実行させ、
前記生成手順は、前記第１のフレームのデータパケットの識別情報、及び、前記第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とするプログラム。
【請求項８】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置であって、
第１のフレーム内の第１の位置に対応する第１のデータパケットが通信に失敗した場合に当該第１のデータパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレーム内の前記第１の位置に対応する第２のデータパケットに基づいて生成する生成手段と、
データパケットと復元用パケットを送信する送信手段とを有し、
前記生成手段は、前記第１のデータパケットの識別情報、及び、前記第２のデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とする送信装置。
【請求項９】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置が行う送信方法であって、
第１のフレーム内の第１の位置に対応する第１のデータパケットが通信に失敗した場合に当該第１のデータパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレーム内の前記第１の位置に対応する第２のデータパケットに基づいて生成する生成工程と、
データパケットと復元用パケットを送信する送信工程とを有し、
前記生成工程は、前記第１のデータパケットの識別情報、及び、前記第２のデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とする送信方法。
【請求項１０】
複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信するコンピュータに、
第１のフレーム内の第１の位置に対応する第１のデータパケットが通信に失敗した場合に当該第１のデータパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレーム内の前記第１の位置に対応する第２のデータパケットに基づいて生成する生成手順と、
データパケットと復元用パケットを送信する送信手順とを実行させ、
前記生成手順は、前記第１のデータパケットの識別情報、及び、前記第２のデータパケットの識別情報を含む復元用パケットを生成する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有線あるいは無線のネットワークにおけるデータの送信方法に関する。
【背景技術】
【０００２】
近年、通信システムの発達により、比較的大きなデータ通信帯域が必要となる動画像データの通信が一般に行なわれている。
【０００３】
このような動画像データの通信を行なうためには、ＲＴＰ（Ａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ａｐｐｌｉｃａｔｉｏｎｓ）と呼ばれる形式が一般的に用いられる。ＲＴＰは、音声や動画像などをリアルタイムでデータ転送するためのプロトコルである。
【０００４】
ＲＴＰを用いて送信される音声データや動画像データが通信に失敗した場合に、通信に失敗したデータを受信装置が復元するために、例えば、ＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ：前方誤り訂正）と呼ばれる技術が用いられる。
【０００５】
ＦＥＣは、誤り訂正符号の技術を使って、データ転送中に発生するビットエラーやパケットの損失を回復する技術である。送信側は、送信データから誤り訂正符号化によって、冗長データを生成し、送信データに付加して送信する。
【０００６】
受信側は、受信データの誤り及び／又はパケットの損失を検出した場合、正常に受信したデータと冗長データを用いて誤り訂正符号を復号することで、エラーとなったパケットを復元する。
【０００７】
特許文献１には、通信経路上で欠落したデータパケットを、データパケットの受信側が冗長パケットを用いて復元することについて記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−１５９０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、損失するパケットによっては、冗長データで復元できない場合があった。
【００１０】
例えば、１つの動画像フレームから複数のデータパケットを生成し、さらに、送信順序が連続する４個のデータパケットごとに１個の冗長パケット（ＦＥＣパケット）を生成する場合について説明する。このようなデータパケットとＦＥＣパケットを送信している状況において、例えば、４個のデータパケットのうち２個以上のパケットが欠落すると、欠落したデータパケットを復元することができなかった。
【００１１】
このように、短時間に複数のパケットが連続して欠落すると、欠落したデータパケットを冗長データを用いて復元できない場合があった。
【００１２】
本発明は上記の問題点に鑑みてなされたものであり、その目的は、冗長データで復元できない欠落データパケットの数を少なくすることである。
【課題を解決するための手段】
【００１３】
上記の問題点を解決するために、本発明の送信装置は、例えば以下の構成を有する。すなわち、複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置であって、前記複数のフレームのうちの第１のフレームが他のフレームのデータを参照せずに符号化されるフレームであるか否かを判別可能な符号化タイプを判断する判断手段と、前記第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第１のフレームと同じ符号化タイプである第２のフレームのデータパケットに基づいて生成する生成手段と、データパケットと復元用パケットを送信する送信手段とを有し、前記生成手段は、前記第１のフレームのデータパケットの識別情報、及び、前記第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する。
【００１４】
また、本発明の送信装置は、複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置であって、第１のフレーム内の第１の位置に対応する第１のデータパケットが通信に失敗した場合に当該第１のデータパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレーム内の前記第１の位置に対応する第２のデータパケットに基づいて生成する生成手段と、データパケットと復元用パケットを送信する送信手段とを有し、前記生成手段は、前記第１のデータパケットの識別情報、及び、前記第２のデータパケットの識別情報を含む復元用パケットを生成する。
【００１５】
また、本発明の送信方法は、複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置が行う送信方法であって、前記複数のフレームのうちの第１のフレームが他のフレームのデータを参照せずに符号化されるフレームであるか否かを判別可能な符号化タイプを判断する判断工程と、前記第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームのデータパケットと前記第１のフレームと同じ符号化タイプである第２のフレームのデータパケットに基づいて生成する生成工程と、データパケットと復元用パケットを送信する送信工程とを有し、前記生成工程は、前記第１のフレームのデータパケットの識別情報、及び、前記第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する。
【００１６】
また、本発明の送信方法は、複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する送信装置が行う送信方法であって、第１のフレーム内の第１の位置に対応する第１のデータパケットが通信に失敗した場合に当該第１のデータパケットを前記受信装置が復元するために用いる復元用パケットを、前記第１のフレームの第１のデータパケットと第２のフレーム内の前記第１の位置に対応する第２のデータパケットに基づいて生成する生成工程と、データパケットと復元用パケットを送信する送信工程とを有し、前記生成工程は、前記第１のデータパケットの識別情報、及び、前記第２のデータパケットの識別情報を含む復元用パケットを生成する。
【発明の効果】
【００１７】
本発明によれば、冗長データで復元できない欠落データパケットの数を少なくすることができる。
【図面の簡単な説明】
【００１８】
【図１】送信装置１００の基本構成を示すブロック図である。
【図２】ＧＯＰ構成の例である。
【図３】組み合わせ決定部１０７の処理を説明するための図である。
【図４】ＦＥＣパケットのヘッダ部分のフォーマット例である。
【図５】ＦＥＣパケットのヘッダの拡張例を示した図である。
【図６】拡張したＦＥＣパケットのヘッダに記録されるデータの例を示した図である。
【図７】ＦＥＣパケットの生成と送信順序の例を示した図である。
【図８】同じＧＯＰのデータパケットからＦＥＣデータを生成する例を説明するための図である。
【図９】異なるＧＯＰのデータパケットからＦＥＣデータを生成する例を説明するための図である。
【図１０】送信装置１００が生成するＦＥＣパケットの例を説明するための図である。
【図１１】ＦＥＣパケットの生成パターンを説明するための図である。
【図１２】ＦＥＣパケットの生成パターンと送信順序を説明するための図である。
【図１３】送信装置１００と受信装置間でのデータのやり取りを示す図である。
【図１４】ＦＥＣフレームの生成を間引く具体例を説明するための図である。
【図１５】送信装置１００の動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
＜実施形態１＞
図１は、本発明の実施に好適な送信装置１００の基本構成を示すブロック図である。
【００２０】
図１に示すように、送信装置１００は、動画像符号化部１０１、パケット生成部１０２、パケット記憶部１０３、パケット送受信部１０４、フレームタイプ記憶部１０５、誤り訂正符号化部１０６、組み合わせ決定部１０７を備えている。尚、本形態では、映像入力装置１０８と送信装置１００が別の装置である場合について説明しているが、これらを１つの装置として構成した場合にも、本発明は適用可能である。また、送信装置１００は、伝送路１０９を介して不図示の受信装置に接続されている。ここで、伝送路１０９は、各種ネットワークに代表される伝送路であり、本実施形態においては、パケット化された動画像データなどを伝送するためのネットワークである。
【００２１】
動画像符号化部１０１は、外部の映像入力装置１０８より入力された動画像データを圧縮符号化する。圧縮符号化処理の代表的な方式としては、ＭＰＥＧ−２（ＩＳＯ／ＩＥＣ  １３８１８）やＭＰＥＧ−４（ＩＳＯ／ＩＥＣ  １４４９６）があげられる。これらの符号化方式に共通するフレームの圧縮方式（フレームタイプ）のうち、主要な３種類の圧縮方式について説明する。
【００２２】
１つ目は、１つのフレーム内の情報のみでマクロブロック処理などを行ない圧縮符号化処理する方式である。この方式で圧縮されたフレームはＩフレーム（Ｉｎｔｒａ−ｃｏｄｅｄ  Ｆｒａｍｅ）と呼ばれる。すなわち、Ｉフレームは他のフレームのデータを参照せずに符号化されるフレームである。
【００２３】
２つ目は、時間軸上前方のフレームを参照して、動き補償予測、マクロブロック処理などをおこなう方式である。つまり、この方式は、再生時刻が前のフレームを参照して符号化する圧縮方式であり、この方式で圧縮されたフレームをＰフレーム（Ｐｒｅｄｉｃｔｅｄ  Ｆｒａｍｅ）と呼ぶ。
【００２４】
３つ目は、時間軸上前方、及び、時間軸上後方のフレームを参照して、動き補償予測、マクロブロック処理などを行う方式である。つまり、この方式は、再生時刻が前のフレーム、及び、後ろのフレームを参照して符号化する圧縮方式であり、この方式で圧縮されたフレームをＢフレーム（Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ  Ｐｒｅｄｉｃｔｅｄ  Ｆｒａｍｅ）と呼ぶ。すなわち、Ｐフレーム、及び、Ｂフレームは、他のフレームのデータを参照して符号化可能なフレームである。
【００２５】
また、ＭＰＥＧ−２において、符号化済みの複数のフレームの集合は、ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）と呼ばれる。また、ＭＰＥＧ−４において、符号化済みの複数のフレームの集合は、ＧＯＶ（Ｇｒｏｕｐ  ｏｆ  Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）と呼ばれる。本形態では、符号化済みのフレームの集合をＧＯＰと呼ぶ。
【００２６】
なお、フレーム（Ｆｒａｍｅ）はピクチャ（Ｐｉｃｔｕｒｅ）とも呼ばれるが、ここではフレーム（Ｆｒａｍｅ）と呼ぶことにする。
【００２７】
本実施形態の動画像符号化部１０１は、図２に示すようなＧＯＰ構成で符号化を行う。図２において、Ｉ，Ｐ，Ｂの記号は、各々Ｉフレーム、Ｐフレーム、Ｂフレームを示すものとする。このように、１つのＧＯＰには、フレームタイプの異なる複数のフレームが含まれる。本形態のＧＯＰには、１個のＩフレーム、４個のＰフレーム、１０個のＢフレームが含まれる。また、図２に示したＧＯＰの最後のＢフレームの後ろに、次のＧＯＰのＩフレームが続く。本形態では、動画像データを構成する各ＧＯＰのフレームタイプの構成は同じである。
【００２８】
動画像符号化部１０１は、映像入力装置１０８から入力された動画像データを上記のような圧縮方式によって符号化し、符号化データをパケット生成部１０２に出力する。
【００２９】
パケット生成部１０２は、動画像符号化部１０１によって符号化された動画像データをパケット化する。つまり、パケット生成部１０２は、符号化された動画像データを通信に適したサイズに分割し、分割された動画像データに対して通信に必要なヘッダ情報を付与してデータパケットを生成する。
【００３０】
このとき、パケット生成部１０２は、パケット化した動画像データ（以下、データパケットと呼ぶ）のフレームタイプを、各パケットの識別情報（例えばシーケンスナンバー）と共にフレームタイプ記憶部１０５に記憶させる。また、パケット生成部１０２は、データパケットをパケット記憶部１０３に記憶させる。
【００３１】
フレームタイプ記憶部１０５は、パケット生成部１０２から出力された各パケットの識別情報と共に、フレームタイプを記憶する。また、フレームタイプ記憶部１０５は、組み合わせ決定部１０７に対し、各パケットの識別情報とフレームタイプを出力する。
【００３２】
組み合わせ決定部１０７は、フレームタイプ記憶部１０５から出力された各パケットの識別情報、及びフレームタイプと、伝送路１０９から取得した受信状況の情報に基づいて、誤り訂正符号化を行うデータパケットの組み合わせを決定する。すなわち、組み合わせ決定部１０７は、取得した受信状況の情報に基づいて、連続していないフレームのデータを組み合わせてＦＥＣパケットを生成するか否かを決定する。組み合わせ決定部１０７の具体的な処理については後述する。
【００３３】
誤り訂正符号化部１０６は、組み合わせ決定部１０７によって決定されたデータパケットの組み合わせに基づいて、誤り訂正用のパケット（以下、ＦＥＣパケットと呼ぶ）を生成する。ＦＥＣパケットは、通信に失敗したデータパケットを、受信装置が復元するために用いる復元用パケットである。本形態においてデータパケットを受信する受信装置は、通信に失敗したデータパケットを、正常に通信されたＦＥＣパケット、及び、正常に通信されたデータパケットを用いて復元できる。
【００３４】
尚、誤り訂正符号化の方法として代表的なものは、パリティ（ＸＯＲ）符号やＢＣＨ符号、リードソロモン符号などがあげられる。本実施形態では、以下、パリティ符号によりＦＥＣパケットを生成するものとして説明するが、誤り訂正符号化の方法はパリティ符号に限定するものではなく、上述した様な方法を用いることが可能である。
【００３５】
本形態の誤り訂正符号化部１０６は、異なるＧＯＰに属するフレームのデータパケットの組み合わせに基づいてＦＥＣパケットを生成することができる。また、誤り訂正符号化部１０６は、ＦＥＣパケットを生成するために用いた複数のデータパケットの識別情報が、生成されるＦＥＣパケットのヘッダに含まれるように、ＦＥＣパケットを生成する。
【００３６】
尚、識別情報については後述するが、本実施形態においては、識別情報として、データパケットのシーケンスナンバー、及び、他のデータパケットのシーケンスナンバーとの差分を用いる。このようにすることで、受信装置は、通信に失敗したデータパケットを復元するために必要なＦＥＣパケットとデータパケットを、ＦＥＣパケットのヘッダを参照することで判定することができる。
【００３７】
誤り訂正符号化部１０６は、生成したＦＥＣパケットを、パケット記憶部１０３に記憶させる。ただし、誤り訂正符号化部１０６は、生成したＦＥＣパケットをパケット記憶部１０３に記憶させずに受信装置に対して送信するようにしても良い。
【００３８】
パケット送受信部１０４は、パケット記憶部１０３に記憶されたデータパケット、及び、ＦＥＣパケットを伝送路１０９を介して受信装置に送信する。即ち、本形態の送信装置１００は、複数のフレームのそれぞれが複数に分割された動画像データのデータパケットを受信装置へ送信する。
【００３９】
また、パケット送受信部１０４は、伝送路１０９から送信装置１００宛てのパケットを受信する機能も備えており、例えば、受信装置側でのパケットの受信状況を示す情報を送信側へ通知するためのパケット（レシーバー・レポート）を受信する。
【００４０】
次に、組み合わせ決定部１０７における誤り訂正符号化の組み合わせ制御の概要を、図３を用いて説明する。
【００４１】
図３において、ＧＯＰ（ｎ）は、ｎ番目のＧＯＰであることを示している。また、ＧＯＰ（ｎ），ＧＯＰ（ｎ＋１），ＧＯＰ（ｎ＋２）は、再生順序が時間的に連続したＧＯＰである。つまり、ＧＯＰ（ｎ）の最後のフレームの次に、ＧＯＰ（ｎ＋１）の最初のフレーム（Ｉフレーム）が再生される。尚、図３では、各々のＧＯＰをフレームタイプ毎にグループ分けした状態を示している。
【００４２】
本実施形態では、３種類のフレームタイプが存在するため、Ｉフレームグループ３０１とＰフレームグループ３０２、それにＢフレームグループ３０３に分けられる。
【００４３】
組み合わせ決定部１０７は、各フレームタイプのグループごとに、ＦＥＣパケットを生成するためのデータパケットの組み合わせを決定する。つまり、組み合わせ決定部１０７は、Ｉフレームグループ３０１に属するデータパケットを組み合わせて、Ｉフレームのデータパケットに対応するＦＥＣパケットが生成されるように、データパケットの組み合わせを決定する。
【００４４】
また、組み合わせ決定部１０７は、Ｐフレームグループ３０２に属するデータパケットを組み合わせて、Ｐフレームのデータパケットに対応するＦＥＣパケットが生成されるように、データパケットの組み合わせを決定する。Ｂフレームグループ３０３についても同様である。従って、誤り訂正符号化部１０６は、上記の各フレームタイプのグループ内のデータパケットの組み合わせに基づいて、ＦＥＣパケットを生成する。
【００４５】
このように、本形態の誤り訂正符号化部１０６は、異なるＧＯＰのフレームのうち共通するフレームタイプのデータを組み合わせて誤り訂正符号化を行い、ＦＥＣパケットを生成する。
【００４６】
このように、同じフレームタイプのフレームの組み合わせに基づいてＦＥＣパケットを生成することにより、フレームタイプによってＦＥＣパケットの冗長度を変えることが容易になる。例えば、Ｉフレームの冗長度を、ＰフレームやＢフレームの冗長度よりも高くすることができる。
【００４７】
このように、本実施形態の組み合わせ決定部１０７は、属するＧＯＰは異なるが、同じフレームタイプであるデータパケットを組み合わせてＦＥＣパケットが生成されるように、データパケットの組み合わせを決定する。しかし、この例に限らず、例えば、異なるフレームのデータパケットからＦＥＣパケットを作るようにすれば、冗長データ（ＦＥＣパケット）で復元できない欠落データパケットを少なくする効果を得ることができる。また、例えば、Ｉフレームは他のＧＯＰのＩフレームと組み合わせてＦＥＣパケットを生成し、Ｂ、Ｐフレームは、同じＧＯＰ内のＢ、Ｐフレームと組み合わせてＦＥＣパケットを生成するようにしても良い。
【００４８】
次に、ＩＥＴＦによりＲＦＣ５１０９で定義されているＦＥＣパケットのヘッダ構成について説明する。
【００４９】
図４は、ＦＥＣパケットのヘッダ部分のフォーマットである。本発明に関係のある部分を説明すると、『Ｌ』（４０１）は『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）の有効なビット幅を指定する１ビットのフラグである。この領域が０の場合は『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）の有効ビット数は１６ビット、この領域が１の場合は『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）の有効ビット数は４８ビットとなる。
【００５０】
『ＳＮ  ｂａｓｅ』（４０２）は、１６ビットの幅を持ち、このＦＥＣパケットにより復元可能な複数のデータパケットのうち、最もシーケンスナンバーが小さいデータパケット（データパケットＡ）のシーケンスナンバーを記録する。つまり、『ＳＮ  ｂａｓｅ』（４０２）には、ＦＥＣパケットに対応する複数のデータパケットのうち、再生順序が最も早いデータパケットのシーケンスナンバーが記録される。
【００５１】
『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）は、このＦＥＣパケットにより復元可能なデータパケットのメンバーを示すものである。つまり、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）は、ＦＥＣパケットに対応する複数のデータパケットを識別するための情報を示している。
【００５２】
『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）の先頭の１ビットは、『ＳＮ  ｂａｓｅ』（４０２）に記録されたデータパケット（データパケットＡ）を意味する。また、その次の１ビットは、『ＳＮ  ｂａｓｅ』（４０２）のデータパケットのシーケンスナンバーの次のシーケンスナンバーを持つデータパケットを意味している。つまり、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）は最高で４８パケット分の、シーケンスナンバーが連続したデータパケットのメンバーを示すことが可能である。
【００５３】
そして、各々のビットが立っているデータパケットは、このＦＥＣパケットを生成するために用いられたデータパケットのメンバーであることを意味する。例えば、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）の先頭の１ビット、及び、その次の１ビット、及びさらにその次の１ビットが１で、それ以外がすべて０となっていた場合、このＦＥＣパケットは、次のようなデータパケットから生成されていることがわかる。即ち、このＦＥＣパケットは、『ＳＮ  ｂａｓｅ』（４０２）に記録されたシーケンスナンバーのデータパケット、及び、その次のシーケンスナンバーのデータパケット、及び、さらにその次のシーケンスナンバーのデータパケットから生成されていることがわかる。
【００５４】
言い換えると、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）のビットが立っているデータパケットは、そのＦＥＣパケットと他のメンバーのデータパケットによって復元可能できる。
【００５５】
このように、ＦＥＣパケットのヘッダに、複数ビット（４８ビット）の領域を設け、その領域内の各ビットと、シーケンスナンバーが連続するデータパケットとを対応付けてＦＥＣパケットの生成に用いたデータパケットを表現している。このようにして、受信装置側で、ＦＥＣパケットのメンバーを判断することができる。しかしながら、このような方法では、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）のビット数（例えば４８ビット）以上、シーケンスナンバーが離れたデータパケットを用いて、ＦＥＣパケットを生成することができない。
【００５６】
そこで、本実施形態では、ＦＥＣパケットのヘッダを修正することにより、『ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ』（４０３）のビット数以上、シーケンスナンバーが離れたデータパケットでＦＥＣパケットを生成できるようにしている。
【００５７】
図５に、ＦＥＣパケットの拡張ヘッダ領域を示す。尚、本形態では、図４における『Ｅ』（４０４）に位置するフラグを有効にすることによって生じる拡張ヘッダ領域を使用する場合について説明する。
【００５８】
図５において、『ｎｕｍ』（５０１）は、４ビットの幅を持つ変数で、『ＳＮ  ｂａｓｅ』（４０２）で示されたデータパケット（データパケットＡ）を除く、このＦＥＣパケットのメンバーとなるデータパケットの数を示す。例えば、３個のデータパケットに対して１個のＦＥＣパケットを生成する場合、『ｎｕｍ』（５０１）には、「００１０」が記録される。
【００５９】
『ｂｉｔ』（５０２）は、４ビットの幅を持つ変数で、このＦＥＣパケットのメンバーである複数のデータパケットのシーケンスナンバーの差分を記録するためのビット幅を示す。例えば、ＦＥＣパケットのメンバーである複数のデータパケットのシーケンスナンバーの差分の最大値が１２ビットで表わせる場合、『ｂｉｔ』（５０２）には、「１１００」が記録される。
【００６０】
『ｄｓｎ』（５０３）は、『ｎｕｍ』（５０１）と『ｂｉｔ』（５０２）の値を乗算した値のビット幅を持つ可変ビット幅の変数である。つまり、『ｄｓｎ』（５０３）は、データパケットＡ以外の各メンバーのシーケンスナンバーと、データパケットＡのシーケンスナンバーの差分を記録するための領域である。従って、例えば３個のデータパケットに対して１個のＦＥＣパケットを生成する場合で、データパケットＡと他の各メンバーのシーケンスナンバーの差分が１２ビットの場合、『ｄｓｎ』（５０３）は、２４ビットの領域となる。
【００６１】
そして、『ｄｓｎ』（５０３）の先頭のビットから『ｂｉｔ』（５０２）で示されるビット幅の領域（例えば１２ビット）に、データパケットＡとデータパケットＢのシーケンスナンバーの差分が示される。尚、データパケットＡのシーケンスナンバーは、『ＳＮ  ｂａｓｅ』（４０２）に記録されている。また、データパケットＢは、ＦＥＣパケットを生成するために用いられるデータパケットのうち、データパケットＡの次にシーケンスナンバーが小さいデータパケットである。
【００６２】
同様に、その次のビットから『ｂｉｔ』（５０２）で示されるビット幅の領域で示される値は、データパケットＡと、データパケットＣのシーケンスナンバーの差分を示している。尚、データパケットＣは、ＦＥＣパケットを生成するために用いられるデータパケットのうち、データパケットＢの次にシーケンスナンバーが小さいデータパケットである。
【００６３】
つまり、ＦＥＣパケットの『ｄｓｎ』（５０３）には、該ＦＥＣパケットを生成するために用いられる複数のデータパケットのうち、最もシーケンスナンバーが小さいデータパケットＡと、その次に小さいデータパケットＢのシーケンスナンバーの差分が記録される。また、『ｄｓｎ』（５０３）には、データパケットＡのシーケンスナンバーと、データパケットＢの次にシーケンスナンバーが小さいデータパケットＣのシーケンスナンバーとの差分が記録される。
【００６４】
図６は、本実施形態におけるＦＥＣパケットのヘッダの拡張領域に記録されるデータの具体例を示したものである。
【００６５】
尚、動画像データのビットレートは約２０Ｍｂｐｓ、ＧＯＰの時間長は０．５秒、データパケットの平均サイズは１２００バイト、当該ＦＥＣパケットのメンバーとなるデータパケットの数は３個として計算している。
【００６６】
図６において、このＦＥＣパケットのメンバーであるデータパケットの数を示す『ｎｕｍ』（５０１）の値は２である。つまり、『ＳＮ  ｂａｓｅ』（４０２）に相当する先頭のデータパケット（データパケットＡ）と、その他に２個のデータパケットを用いてこのＦＥＣパケットが生成されていることがわかる。
【００６７】
また、『ｂｉｔ』（５０２）の値は１２である。つまり、ＦＥＣパケットのメンバーであるデータパケットＢとデータパケットＡの差分（データパケットＢの識別情報）と、データパケットＣとデータパケットＡのシーケンスナンバーの差分（データパケットＣの識別情報）は、それぞれ１２ビットで示される。
【００６８】
また、図６の『ｄｓｎ』（５０３）の先頭１２ビットには、データパケットＡとデータパケットＢのシーケンスナンバーの差分が、‘０１０００１００１１１１’即ち１１０３であることが示されている。同様に、『ｄｓｎ』（５０３）の後半１２ビットには、データパケットＡとデータパケットＣのシーケンスナンバーの差分が、‘１０００１０００１００１’即ち２１８５であることが示されている。
【００６９】
尚、上述のように、データパケットＡは、該ＦＥＣパケットを生成するために用いられた複数のデータパケットのうち、最もシーケンスナンバーが小さいデータパケットである。また、データパケットＢは、データパケットＡの次にシーケンスナンバーが小さいデータパケットであり、データパケットＣは、データパケットＢの次にシーケンスナンバーが小さいデータパケットである。尚、本形態では、３個のデータパケットから１個のＦＥＣパケットを生成しているが、これに限らない。
【００７０】
図７は、３個の連続するＧＯＰの先頭に位置するＩフレームの組み合わせによって、ＦＥＣパケットが生成・送信される様子を模式的に示している。ここで、ＦＥＣパケット７０４の『ＳＮ  ｂａｓｅ』（４０２）には、図７のＩフレーム７０１のデータパケットのうち、ＦＥＣパケット７０４の生成に用いられる１個のデータパケットのシーケンスナンバーが記録される。つまり、本形態のＦＥＣパケットは、複数のフレームのデータパケットを用いて生成されるが、そのうち、最も再生順序が早いＩフレーム７０１のデータパケットのシーケンスナンバーが『ＳＮ  ｂａｓｅ』（４０２）に記録される。さらに、Ｉフレーム７０２を構成するデータパケットが、上述のデータパケットＢに対応するデータパケットである。同様に、Ｉフレーム７０３を構成するデータパケットが、上述のデータパケットＣに対応するデータパケットである。
【００７１】
ここで、Ｉフレーム７０１〜７０３の３つのＩフレームを構成するデータパケットをメンバーとして生成されるＦＥＣパケットの集合を、便宜上『ＦＥＣフレーム』と呼ぶ。本形態のパケット送受信部１０４は、ＦＥＣフレーム７０４を、図７のようにＩフレーム７０３よりも２〜３フレーム後に送信する。このようにＩフレーム７０３とＦＥＣフレーム７０４の間隔をあけることにより、連続的に発生するエラーによってＩフレーム７０３とＦＥＣフレーム７０４の両方ともが通信に失敗する可能性を低減できる。ただし、ＦＥＣフレーム７０４の送信順序は、これに限らない。
【００７２】
次に、ＦＥＣパケットを生成する具体的な方法について、図８及び図９を用いて説明する。
【００７３】
図８は、１つのフレーム内の複数のデータパケットからＦＥＣパケットを生成する方法を説明するための図である。
【００７４】
図８において、８０４にあるように、白の四角はデータパケット、斜線の四角はＦＥＣパケットを示している。データパケットグループ８０１は、１つのフレーム内の各データパケットをマトリクス状に配置した状態を示している。ただし、データパケットグループ８０１は、再生順序が隣接する複数のフレームに属するデータパケットが配置されたものであっても良い。
【００７５】
ＦＥＣパケット８０２は、データパケットグループ８０１の横軸方向のパケットの組み合わせから生成された冗長データを格納したＦＥＣパケットである。また、ＦＥＣパケットグループ８０３は、データパケットグループ８０１の縦軸方向のパケットの組み合わせから生成された冗長データを格納したＦＥＣパケットのグループである。
【００７６】
一方、本実施形態における複数フレームのデータパケットを用いたＦＥＣパケットの生成方法について、図９を参照しながら説明する。
【００７７】
図９において、データパケットグループ９０１とデータパケットグループ９０２、及びデータパケットグループ９０３は各々、異なるＧＯＰに属したフレームを構成するデータパケットのグループである。例えば、データパケットグループ９０１は、図７におけるＩフレーム７０１のデータパケットに相当する。同様に、データパケットグループ９０２は、図７におけるＩフレーム７０２のデータパケットに相当し、データパケットグループ９０３は、図７におけるＩフレーム７０３のデータパケットに相当する。また、ＦＥＣパケットグループ９０４は、図７におけるＦＥＣフレーム７０４に相当するものである。つまり、ＦＥＣパケットグループ９０４を構成する各々のＦＥＣパケットは、データパケットグループ９０１〜９０３のデータパケットを図９に示すように時間軸方向の組み合わせることによって生成される。つまり、ＦＥＣパケットグループ９０４に示される各ＦＥＣパケットは、異なるＧＯＰに属するフレームのデータパケットを組み合わせて生成される。
【００７８】
また、本形態の誤り訂正符号化部１０６は、図９に示すように、データパケットグループ９０２のデータパケットに表示位置が対応するデータパケットグループ９０３のデータパケットを組み合わせてＦＥＣパケットを生成する。図９において、例えば、誤り訂正符号化部１０６は、データパケットグループ９０２、９０３、９０４のそれぞれの一番右上に位置するデータパケットに基づいて、ＦＥＣパケットグループ９０４の一番右上に位置するＦＥＣパケットを生成する。この一番右上に位置するＦＥＣパケットは、データパケットグループ９０２、９０３、９０４の一番右上に位置するデータパケットが通信に失敗した場合に、それを復元するために用いる復元用パケットである。即ち、誤り訂正符号化部１０６は、Ｉフレーム７０２内の一番右上（第１の位置）に対応する第１のデータパケットの復元用パケットを、第１のデータパケットとＩフレーム７０３内の一番右上に対応する第２のデータパケットに基づいて生成する。
【００７９】
尚、本実施形態の誤り訂正符号化部１０６は、図１０に示すように、１つのフレーム内のデータパケットに基づくＦＥＣパケットグループ１００１と共に、異なるＧＯＰのデータパケットに基づくＦＥＣパケットグループ９０４を生成する。ＦＥＣパケットグループ１００１は、図８で説明したＦＥＣパケット８０２と同様の方法で生成されたＦＥＣパケットを複数フレーム分、示したものである。
【００８０】
つまり、ＦＥＣパケットグループ１００１は、フレームを構成するデータパケットグループの横軸方向のデータパケットの組み合わせから生成されたＦＥＣパケットと、縦軸方向のデータパケットの組み合わせから生成されたＦＥＣパケットを複数フレーム分、示したものである。ただし、図８で説明したように、１つのデータパケットグループは、１つのフレームのデータパケットであっても、例えば隣接する２つのフレームのデータパケット等であっても良い。
【００８１】
このように、ＦＥＣパケットグループ１００１とＦＥＣパケットグループ９０４を用いれば、より復元能力を上げることができる。ただし、異なるＧＯＰのデータパケットで生成されるＦＥＣパケットのみを用いるようにすることも可能である。
【００８２】
また、誤り訂正符号化部１０６は、１つのフレーム内のデータパケットの組み合わせでＦＥＣパケットを生成する代わりに、再生順序が連続する複数のフレームのデータパケットの組み合わせでＦＥＣパケットを生成できることは、上述の通りである。
【００８３】
ところで、時間的に離れた複数のフレームのデータパケットの組み合わせによりＦＥＣパケットを生成する場合、復元に必要なＦＥＣパケットが届くタイミングが問題となる。
【００８４】
つまり、欠落したデータパケットを復元するために用いるＦＥＣパケットの受信時刻によっては、欠落データパケットの復元が、そのデータパケットの再生時刻に間に合わない可能性がある。例えば、図７に示されるＩフレーム７０１の欠落データパケットを復元するためにＦＥＣフレーム７０４のデータを用いる場合、ＦＥＣフレーム７０４の到着時刻が、Ｉフレーム７０１の再生時刻よりも遅いと、欠落データパケットの復元が間に合わなくなってしまう。
【００８５】
そこで、本実施形態の組み合わせ決定部１０７は、各フレームが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるようにＦＥＣフレームのメンバーを決定する。つまり、本形態の組み合わせ決定部１０７は、あるフレーム（フレームＡ）が複数のＦＥＣフレームのメンバーとなるようにＦＥＣフレームのメンバーを決定する。また、組み合わせ決定部１０７は、該複数のＦＥＣフレームのうち、少なくとも１個のＦＥＣフレームにおいて、フレームＡが、再生順序が最後のメンバーとなるようにメンバーを決定する。このようにすることで、フレームＡのデータパケットが通信に失敗した場合に、フレームＡを最後のメンバーとするＦＥＣフレーム（ＦＥＣフレームＡ）を用いてフレームＡのデータパケットを復元することができる。尚、ＦＥＣフレームＡの他のメンバーのデータパケットは、フレームＡよりも前に再生されるＧＯＰのデータパケットであるため、すでに受信装置へ送信されている。
【００８６】
例えば、図７のＩフレーム７０１は、ＦＥＣフレーム７０４のメンバーである。また、Ｉフレーム７０１は、ＦＥＣフレーム７０４のメンバー（Ｉフレーム７０１、７０２、７０３）のうち、最も送信順序が早いメンバーである。また、Ｉフレーム７０１は、ＦＥＣフレーム７０４のメンバーであると同時に、Ｉフレーム７０１よりも前に送信されるＩフレームとの組み合わせによって生成される別のＦＥＣフレームのメンバーにもなっている。
【００８７】
そして、組み合わせ決定部１０７は、別のＦＥＣフレームのうちの少なくとも１個のＦＥＣフレームにおいて、Ｉフレーム７０１が最後のメンバーとなるＦＥＣフレームがあるように、ＦＥＣフレームを生成するメンバーを決定する。
【００８８】
尚、本形態において、ＦＥＣフレームは、最後のメンバーのＩフレームの２〜３フレーム後に送信される。従って、例えばＩフレーム７０１内のデータパケットが連続して通信に失敗した場合、まずＩフレーム７０１の２〜３フレーム後に送信されるＦＥＣフレームによって欠落データパケットの復元が試みられる。つまり、Ｉフレーム７０１が最後のメンバーであるＦＥＣフレームと他のメンバーのデータパケットによる欠落データパケットの復元が試みられる。ここで受信装置が復元できると判定すれば、Ｉフレーム７０１の欠落データパケットを、Ｉフレーム７０１の２〜３フレーム後のＦＥＣパケットにより復元できる。
【００８９】
このようにすれば、Ｉフレーム７０１の欠落データパケットをＦＥＣフレーム７０４を用いて復元する場合よりも、早く復元することができる。この説明の詳細は、図１１を用いて後述する。
【００９０】
このように、本形態の組み合わせ決定部１０７は、すべてのフレームのデータパケットが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるように、ＦＥＣフレームのメンバーを決定する。ただし、組み合わせ決定部１０７は、一部のフレームが、少なくとも１個のＦＥＣパケットにおいて最後のメンバーとなるように、ＦＥＣフレームのメンバーを決定するようにしても良い。例えば、Ｉフレームが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるようにＦＥＣフレームのメンバーを決定するようにしても良い。
【００９１】
また、例えば、フレーム当たりのデータ量や、動きベクトルの大きさ等に基づいて重要度が高いと判定されるフレームが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるようにＦＥＣフレームのメンバーを決定するようにしても良い。このようにすれば、Ｉフレームや、重要度の高いフレームのデータパケットにおいて、通信の失敗を検知してから復元するまでの時間を短くすることができる。また、このようにすれば、すべてのフレームが少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるようにＦＥＣフレームを生成する場合よりも、ＦＥＣパケットの数を少なくすることが可能となる。
【００９２】
図１１は、各ＧＯＰのＩフレームが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるようにＦＥＣフレームを生成する場合に決定される組み合わせの例を示した図である。
【００９３】
尚、図１１に示されるＧＯＰは、再生時刻が時間的に連続している。例えば、ＧＯＰ（ｎ−２）の次に、ＧＯＰ（ｎ−１）が再生され、その次にＧＯＰ（ｎ）が再生される。
【００９４】
このとき、組み合わせ決定部１０７は、各ＦＥＣフレームがそれぞれ異なるＧＯＰに属するフレームの組み合わせに基づいて生成されるように、データパケットの組み合わせを決定する。例えば、ＦＥＣフレームＦ（ｎ）は、ＧＯＰ（ｎ−２）の先頭に位置するＩフレームＩ（ｎ−２）と、ＧＯＰ（ｎ−１）の先頭に位置するＩフレームＩ（ｎ−１）と、ＧＯＰ（ｎ）の先頭に位置するＩフレームＩ（ｎ）をメンバーとして生成される。
【００９５】
また、ＦＥＣフレームＦ（ｎ＋１）は、ＧＯＰ（ｎ−１）の先頭に位置するＩフレームＩ（ｎ−１）と、ＧＯＰ（ｎ）の先頭に位置するＩフレームＩ（ｎ）と、ＧＯＰ（ｎ＋１）の先頭に位置するＩフレームＩ（ｎ＋１）をメンバーとして生成される。また、ＦＥＣフレームＦ（ｎ＋２）は、ＧＯＰ（ｎ）の先頭に位置するＩフレームＩ（ｎ）と、ＧＯＰ（ｎ＋１）の先頭に位置するＩフレームＩ（ｎ＋１）と、ＧＯＰ（ｎ＋２）の先頭に位置するＩフレームＩ（ｎ＋２）をメンバーとして生成される。
【００９６】
また、ＩフレームＩ（ｎ）は、ＦＥＣフレーム（ｎ）において最後のメンバーである。また、ＩフレームＩ（ｎ＋１）は、ＦＥＣフレーム（ｎ＋１）において最後のメンバーであり、ＩフレームＩ（ｎ＋２）は、ＦＥＣフレーム（ｎ＋２）において最後のメンバーである。他のＩフレームについても同様である。
【００９７】
尚、図１１には、Ｉフレームに対応するＦＥＣフレームしか示されていないが、誤り訂正符号化部１０６は、Ｐフレームや、Ｂフレームも、Ｉフレームと同様に、ＦＥＣフレームを生成できる。
【００９８】
一方、Ｉフレーム側に視点を移すと、例えば、ＧＯＰ（ｎ）のＩフレームＩ（ｎ）は、ＧＯＰ（ｎ−２）のＩフレームＩ（ｎ−２）とＧＯＰ（ｎ−１）のＩフレームＩ（ｎ−１）と共に、ＦＥＣフレームＦ（ｎ）のメンバーである。同様に、ＩフレームＩ（ｎ）は、ＦＥＣフレームＦ（ｎ＋１）とＦＥＣフレームＦ（ｎ＋２）のメンバーでもある。つまり、ＩフレームＩ（ｎ）は、ＦＥＣフレームＦ（ｎ）とＦＥＣフレームＦ（ｎ＋１）と、ＦＥＣフレームＦ（ｎ＋２）を生成するために用いられる。
【００９９】
即ち、誤り訂正符号化部１０６は、通信に失敗した第１のフレーム（ＩフレームＩ（ｎ））のデータパケットを復元するための復元用パケット（ＦＥＣフレームＦ（ｎ＋１））を、以下のフレームのデータパケットに基づいて生成する。即ち、誤り訂正符号化部１０６は、ＦＥＣフレームＦ（ｎ＋１）を第１のフレームのデータパケットと第２のフレーム（ＩフレームＩ（ｎ＋１））のデータパケットとＩフレームＩ（ｎ−１）のデータパケットに基づいて生成する。
【０１００】
また、誤り訂正符号化部１０６は、通信に失敗した第２のフレームのデータパケットを復元するための復元用パケット（ＦＥＣフレームＦ（ｎ＋２））を以下のフレームのデータパケットに基づいて生成する。即ち、誤り訂正符号化部１０６は、ＦＥＣフレームＦ（ｎ＋２）を、第２のフレームのデータパケットと第３のフレーム（ＩフレームＩ（ｎ＋２））のデータパケットとＩフレームＩ（ｎ）のデータパケットに基づいて生成する。尚、第１のフレーム、第２のフレーム、第３のフレームは動画像符号化部１０１より入力される。
【０１０１】
また、第３のフレームは第２のフレームよりも後に再生されるフレームであり、第２のフレームは第１のフレームよりも後に再生されるフレームである。
【０１０２】
尚、本実施形態では、図１１で生成されたＦＥＣフレームＦ（ｎ）は、生成に用いられる複数のフレーム（ＩフレームＩ（ｎ−２）、Ｉ（ｎ−１）、Ｉ（ｎ））のうち、送信順序が最後であるＩフレームＩ（ｎ）の２〜３フレーム後に送信される。同様に、ＦＥＣフレームＦ（ｎ＋１）は、ＩフレームＩ（ｎ＋１）の２〜３フレーム後に送信される。また、ＦＥＣフレーム（ｎ＋２）は、Ｉフレーム（ｎ＋２）の２〜３フレーム後に送信される。
【０１０３】
また、図７を用いて説明したように、例えば、ＩフレームＩ（ｎ）のデータパケットが欠落した場合、受信装置は、ＩフレームＩ（ｎ）が最後のメンバーであるＦＥＣフレームＦ（ｎ）を用いて、欠落データパケットの復元を試みることができる。また、受信装置は、ＦＥＣフレームＦ（ｎ）を用いてＩフレーム（ｎ）の欠落データパケットを復元できない場合、ＦＥＣフレームＦ（ｎ＋１）を用いて欠落データパケットの復元を試みることができる。尚、ＦＥＣフレームＦ（ｎ＋１）は、Ｉフレーム（ｎ＋１）の２〜３フレーム後に送信されるＦＥＣフレームである。また、受信装置は、ＦＥＣフレームＦ（ｎ＋１）に基づいてＩフレームＩ（ｎ）の欠落データパケットを復元することもできない場合、ＦＥＣフレームＦ（ｎ＋２）を用いて欠落データパケットの復元を試みることができる。尚、ＦＥＣフレームＦ（ｎ＋２）は、Ｉフレーム（ｎ＋２）の２〜３フレーム後に送信されるＦＥＣフレームである。
【０１０４】
以上のように、本形態の組み合わせ決定部１０７は、各フレームのデータが、複数のＦＥＣフレームの生成に用いられるように、ＦＥＣフレームを生成するための組み合わせを決定する。また、組み合わせ決定部１０７は、すべてのフレームが、少なくとも１個のＦＥＣフレームにおいて最後のメンバーとなるように、ＦＥＣフレームを生成するための組み合わせを決定する。
【０１０５】
次に、本実施形態における誤り訂正復号によるデータ復号の例を、図１２を用いて説明する。
【０１０６】
図１２は、図１１の各フレーム、及びＦＥＣフレームの送信順序を示している。つまり、本形態において、各ＦＥＣフレームは、最後のメンバーであるフレームの３フレーム後に送信される。ただし、この形態に限らない。
【０１０７】
図１２において、ＩフレームＩ（ｎ）を構成するデータパケットが損失した場合、誤り訂正によって復元するルートは、Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−１、Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−２、とＣｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−３の３つある。つまり、Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−１は、ＩフレームＩ（ｎ）のデータパケットを復元するために、ＩフレームＩ（ｎ）を最後のメンバーとするＦＥＣフレーム（ＦＥＣフレームＦ（ｎ））のＦＥＣパケット用いるケースである。Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−１のルートで復元すれば、通信の失敗を検知してから復元する前の時間が最も短くなる。
【０１０８】
一方、受信装置は、Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−１で復元できず、遅延時間を許容できる場合には、Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−２、及びＣｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−３のルートでの復元を試みることが可能である。Ｃｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−１でデータパケットを復元できない場合として、例えば、ＩフレームＩ（ｎ）のほかのメンバー（ＩフレームＩ（ｎ−２）、ＩフレームＩ（ｎ−１））のデータパケットが通信に失敗した場合がある。また、ＦＥＣパケットが通信に失敗した場合もありうる。
【０１０９】
ところで、上記の説明では、連続する３個のＧＯＰに含まれるフレームから１個のＦＥＣフレームを生成するケースについて説明した。しかし、本形態の組み合わせ決定部１０７は、例えば、受信装置のバッファ容量や、遅延許容時間、バーストエラーに関する情報に基づいて、ＦＥＣパケットを生成するためのデータパケットの組み合わせを決定する。
【０１１０】
例えば、組み合わせ決定部１０７は、図１２において、通信に失敗したＩフレームＩ（ｎ）のデータパケットをＣｏｒｒｅｃｔｉｏｎ  ｐａｓｓ−３で復元しても、その復元が再生時刻に間に合わない場合は、ＦＥＣパケットのメンバーの数を３個よりも少なくする。
【０１１１】
また、例えば、組み合わせ決定部１０７は、遅延許容時間が十分に長い場合は、より離れたＧＯＰのデータパケットの組み合わせによりＦＥＣパケットを生成するようにすることができる。
【０１１２】
即ち、組み合わせ決定部１０７は、データパケットの送信時刻と再生時刻の時間差に基づいて、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。
【０１１３】
従って、誤り訂正符号化部１０６は、第１のフレーム（ＧＯＰ（ｎ）のＩフレーム）のデータパケットの送信時刻と再生時刻の時間差が第１の時間差（例えば７００ｍｓｅｃ）であった場合、以下のように復元用パケットを生成する。即ち、誤り訂正符号化部１０６は、第１のフレームのデータパケットを復元するための復元用パケットを、第１のフレーム（ＧＯＰ（ｎ）のＩフレーム）のデータパケットと第２のフレーム（ＧＯＰ（ｎ＋１）のＩフレーム）のデータパケットに基づいて生成する。
【０１１４】
一方、誤り訂正符号化部１０６は、第１のフレームのデータパケットの送信時刻と再生時刻の時間差が第１の時間差よりも長い第２の時間差（例えば２０００ｍｓｅｃ）であった場合、以下のように復元用パケットを生成する。即ち、誤り訂正符号化部１０６は、第１のフレームのデータパケットを復元するための復元用パケットを、第１のフレームのデータパケットと第３のフレーム（ＧＯＰ（ｎ＋２）のＩフレーム）のデータパケットに基づいて生成する。
【０１１５】
尚、第１のフレーム、第２のフレーム、第３のフレームは、動画像符号化部１０１によって入力される。また、第３のフレームは第２のフレームよりも後に再生されるフレームであり、第２にフレームは第１のフレームよりも後に再生されるフレームである。
【０１１６】
また、組み合わせ決定部１０７は、受信装置がデータパケットを保持するためのバッファ容量が小さい場合ＦＥＣフレームのメンバーとなるフレームの数を少なくする。つまり、受信装置がＧＯＰ２個分のデータパケットしか保持できない場合、受信装置は、図１２のように異なる３個のＧＯＰのデータパケットから生成されたＦＥＣパケットを用いてデータパケットを復元することができない。このような場合、組み合わせ決定部１０７は、受信装置のバッファ容量に合わせてＦＥＣフレームのメンバーとなるフレームの数を少なくする。このように、組み合わせ決定部１０７は、受信装置のバッファ容量に応じて、ＦＥＣフレームを生成するために用いるフレームの数を決定する。
【０１１７】
このように、受信装置のバッファ容量や遅延許容時間に応じてＦＥＣフレームを生成するために用いるフレームの数を少なくすれば、欠落データパケットの復元に使えないＦＥＣパケットの生成と送信をしないようにすることができる。これにより、ＦＥＣパケットの生成負荷、及び、ネットワークの負荷を低減できる。
【０１１８】
また、組み合わせ決定部１０７は、バーストエラーの有無に応じて、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。例えば、組み合わせ決定部１０７は、連続してエラー（通信に失敗）したパケットの数が所定数（例えば３個）以上である場合、バーストエラーが発生していると判断する。そして、組み合わせ決定部１０７は、例えば、受信側のバッファ容量や遅延許容時間が十分あり、バーストエラーが発生していると判断された場合、異なるＧＯＰのデータパケットを組み合わせてＦＥＣパケットを生成させる。
【０１１９】
一方、組み合わせ決定部１０７は、バーストエラーが発生していないと判定された場合、例えば、１つのフレーム内のデータパケットで生成されたＦＥＣパケットで欠落データパケットを復元するように、データパケットの組み合わせを決定する。
【０１２０】
また、バーストエラーの発生状況に応じて、異なるＧＯＰのデータパケットでＦＥＣパケットを生成するか否かを決定するようにしても良い。
【０１２１】
例えば、組み合わせ決定部１０７は、バーストエラーの発生頻度に応じて、データパケットの組み合わせを決定することができる。つまり、組み合わせ決定部１０７は、連続してエラー（通信に失敗）したパケットが所定数（例えば３個）以上である場合、バーストエラーが発生したと判定する。そして、所定の時間内に、バーストエラーが所定回数以上発生している場合、異なるＧＯＰのデータパケットでＦＥＣパケットが生成されるように、データパケットの組み合わせを決定する。
【０１２２】
一方、所定の時間内に、バーストエラーの発生回数が所定回数以下である場合、組み合わせ決定部１０７は、例えば、同じＧＯＰ（例えば、同じフレーム）のデータパケットからＦＥＣパケットが生成されるように、データパケットの組み合わせを決定する。
【０１２３】
また、組み合わせ決定部１０７は、例えば、異なるＧＯＰのデータパケットでＦＥＣパケットを生成すると決定した場合において、連続してエラーしたパケットの数が特に多いときは、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げる。これは、連続してエラーしたパケットの数が特に多い場合、ネットワーク（伝送路１０９）が重度の輻輳状態である可能性が高いと考えられ、再び大きなバーストエラーが発生する可能性が高いと考えられる。
【０１２４】
そこで、組み合わせ決定部１０７は、連続してエラーしたパケットの数に基づいて、ネットワークが重度の輻輳状態であるか判断する。そして、組み合わせ決定部１０７は、重度の輻輳状態であると判断される場合は、バーストエラーは発生しているものの重度の輻輳状態ではないと判断される場合よりも、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げる。
【０１２５】
具体的には、本形態の組み合わせ決定部１０７は、連続してエラーしたパケットの数が所定数（例えば２０個）よりも少ない場合は、バーストエラーは発生しているものの、ネットワークが重度の輻輳状態ではないと判断する。この場合、組み合わせ決定部１０７は、例えば、再生順序が連続する２つのＧＯＰ（ＧＯＰ（ｎ）とＧＯＰ（ｎ＋１））のＩフレームを組み合わせてＦＥＣフレームを生成させる。一方、組み合わせ決定部１０７は、連続してエラーしたパケットの数が所定数（例えば２０個）よりも多い場合、重度の輻輳状態であると判定する。
【０１２６】
組み合わせ決定部１０７は、例えば、受信側のバッファ容量や許容時間が十分に大きい状況で、ネットワークが重度の輻輳状態であると判断した場合、重度の輻輳状態でない場合よりも、ＦＥＣパケットを生成するためのデータパケットの間隔を広げる。つまり、組み合わせ決定部１０７は、例えば、再生順序が連続していない２つのＧＯＰ（ＧＯＰ（ｎ）とＧＯＰ（ｎ＋２））のＩフレームを組み合わせてＦＥＣフレームを生成させる。
【０１２７】
即ち、動画像符号化部１０１は、第１のフレーム（ＧＯＰ（ｎ）のＩフレーム）のデータと、第２のフレーム（ＧＯＰ（ｎ＋１）のＩフレーム）のデータと、第３のフレーム（ＧＯＰ（ｎ＋２）のＩフレーム）のデータを入力する。ここで、第３のフレームは、第２のフレームよりも後に再生されるフレームであり、第２のフレームは第１のフレームよりも後に再生されるフレームである。
【０１２８】
そして、組み合わせ決定部１０７は、第１のフレームよりも前のフレームのデータパケットについて、連続して通信に失敗したパケット数を判断し、その判断結果に基づいてＦＥＣパケットを生成するためのデータパケットの組み合わせを決定する。従って、誤り訂正符号化部１０６は、第１のパケット数（例えば１９個）のパケットが連続して通信に失敗した場合、以下のようにＦＥＣパケットを生成する。即ち、誤り訂正符号化部１０６は、第１のフレームのデータパケットを復元するための復元用パケットを、第１のフレーム（ＧＯＰ（ｎ）のＩフレーム）のデータパケットと第２のフレーム（ＧＯＰ（ｎ＋１）のＩフレーム）のデータパケットに基づいて生成する。
【０１２９】
一方、誤り訂正符号化部１０６は、第１のデータパケット数よりも多い第２のパケット数（例えば２０個）のパケットが連続して通信に失敗した場合、以下のように、ＦＥＣパケットを生成する。即ち、誤り訂正符号化部１０６は、第１のフレームのデータパケットを復元するための復元用パケットを、第１のフレーム（ＧＯＰ（ｎ）のＩフレーム）のデータパケットと第３のフレーム（ＧＯＰ（ｎ＋２）のＩフレーム）のデータパケットに基づいて生成する。
【０１３０】
また、組み合わせ決定部１０７は、例えば、異なるＧＯＰのデータパケットでＦＥＣパケットを生成すると決定した場合において、バーストエラーの発生頻度が特に高い場合は、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げる。つまり、バーストエラーの発生頻度が特に高い場合、ネットワークが重度の輻輳状態である可能性が高いと考えられる。そこで、組み合わせ決定部１０７は、バーストエラーの発生頻度に基づいて、ネットワークが重度の輻輳状態であるか否か判断する。
【０１３１】
そして、重度の輻輳状態であると判断される場合は、バーストエラーは発生しているものの、重度の輻輳状態ではないと判断される場合よりも、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げる。
【０１３２】
具体的には、本形態の組み合わせ決定部１０７は、連続してエラーしたパケットの数が所定数（例えば３個）以上の場合にバーストエラーが発生していると判断する。そして、組み合わせ決定部１０７は、所定時間（例えば、１００個のパケット送信する時間）内に発生したバーストエラーの回数が、例えば１回である場合は、バーストエラーは発生しているものの、ネットワークが重度の輻輳状態ではないと判断する。この場合、組み合わせ決定部１０７は、例えば、再生順序が連続する２つのＧＯＰ（ＧＯＰ（ｎ）とＧＯＰ（ｎ＋１））のＩフレームを組み合わせてＦＥＣフレームを生成させる。
【０１３３】
一方、組み合わせ決定部１０７は、所定時間内に発生したバーストエラーの回数が、所定数（例えば１０回）よりも多い場合、ネットワークが重度の輻輳状態であると判定する。組み合わせ決定部１０７は、例えば、受信側のバッファ容量や許容時間が十分に大きい状況で、ネットワークが重度の輻輳状態であると判断した場合、重度の輻輳状態でない場合よりも、ＦＥＣパケットを生成するためのデータパケットの間隔を広げる。この場合、組み合わせ決定部１０７は、例えば、再生順序が連続していない２つのＧＯＰ（ＧＯＰ（ｎ）とＧＯＰ（ｎ＋２））のＩフレームを組み合わせてＦＥＣフレームを生成させる。
【０１３４】
尚、本形態の組み合わせ決定部１０７は、受信装置から通知される、受信装置のバッファ容量や、遅延許容時間、バーストエラーに関する情報等に基づいて、ＦＥＣパケットを生成するためのデータパケットの組み合わせを決定する。この情報の取得について、図１３を用いて説明する。
【０１３５】
図１３は、送信装置１００と受信装置間でのデータのやり取りを示す図である。
【０１３６】
送信装置１００からは、伝送路１０９を介して、ＲＴＰを用いてデータパケット及びＦＥＣパケットが受信装置へ送信される。一方、受信装置は、バーストエラーに関する情報と遅延許容時間とバッファサイズに関する情報を含むレシーバー・レポート１３０１を送信装置１００へ通知する。
【０１３７】
バーストエラーに関する情報には、例えば、バーストエラーの頻度、１回のバーストエラーにおいて連続してエラーとなったパケットの数、バーストエラーが発生している時間の情報がある。尚、所定数以上のパケットが連続してエラーとなった場合、バーストエラーが発生したと判断される。
【０１３８】
レシーバー・レポート１３０１に含まれるバーストエラーの情報は、例えば、以下のようになる。すなわち、前回、レシーバー・レポート１３０１を送信してから発生したバーストエラーの頻度（４回）、それぞれのバーストエラーにおいて連続してエラーしたパケットの数（６個、５個、４個、９個）、及び、それぞれのバーストエラーの時間が含まれる。尚、この例では、連続してエラーとなったパケット数がすべて含まれているが、連続してエラーとなったパケット数の最大値（９個）や、平均値（６個）を含めるようにしても良い。
【０１３９】
また、バーストエラーの頻度として、前回、レシーバー・レポート１３０１を送信してから発生したバーストエラーの回数を示したが、これに限らず、例えば、送信されたパケット数に対するバーストエラーしたパケット数の割合等でも良い。また、レシーバー・レポートには、上記のすべてのバーストエラーに関する情報が含まれていても、一部の情報が含まれていても良い。送信装置１００は、定期的に受信するレシーバー・レポート１３０１に含まれるバーストエラーに関する情報に基づいて、データパケットの組み合わせを決定する。
【０１４０】
尚、受信装置は、特に必要がない限り、遅延許容時間とバッファサイズに関する情報を、最初のレシーバー・レポート１３０１で送信装置１００に通知する。
【０１４１】
ところで、本実施形態のようなＲＴＰでのパケット通信では、受信状況を把握するために、ＲＴＣＰ（ＲＴＰ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）というプロトコルが使用される。
【０１４２】
ＲＴＣＰでは送信装置側と受信装置側で相互に送信情報と受信情報を格納したパケットのやり取りが行なわれ、特に受信側から送信側へ通知するパケットを図１３に示すようにレシーバー・レポートと呼ぶ。このレシーバー・レポートには、通常、欠落したパケットおよび受信パケットの累積数と、パケット送達時間の遅延およびジッタに関する情報などが含まれている。
【０１４３】
本形態の受信装置は、レシーバー・レポートの拡張領域に、受信装置のバッファ容量や、遅延許容時間、バーストエラーに関する情報を格納する。そして、送信装置１００の組み合わせ決定部１０７は、レシーバー・レポートの拡張領域の情報に基づいて、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。ＲＴＣＰのレシーバー・レポートは、レポートブロックを拡張することで本実施形態のように、独自の情報を格納することが可能である。
【０１４４】
例えば、組み合わせ決定部１０７は、バーストエラーに関する情報のうち、バーストエラーの頻度を参照し、バーストエラーが発生したか否かを判断する。そして、組み合わせ決定部１０７は、バーストエラーが発生したと判断された場合は、異なるＧＯＰのデータパケットでＦＥＣパケットを生成させ、バーストエラーが発生していないと判断された場合は、同じＧＯＰのデータパケットでＦＥＣパケットを生成させる。
【０１４５】
また、組み合わせ決定部１０７は、バーストエラーの頻度が所定値よりも高い場合は、頻度が所定値よりも低い場合より、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げることが可能である。
【０１４６】
また、例えば、組み合わせ決定部１０７は、バーストエラーに関する情報のうち、連続してエラーとなったパケットの数を参照し、バーストエラーが発生したか否かを判断する。そして、組み合わせ決定部１０７は、バーストエラーが発生したと判断された場合は、異なるＧＯＰのデータパケットでＦＥＣパケットを生成させ、バーストエラーが発生していないと判断された場合は、同じＧＯＰのデータパケットでＦＥＣパケットを生成させる。
【０１４７】
また、組み合わせ決定部１０７は、連続してエラーとなったパケットの数が所定値よりも多い場合は、所定値より少ない場合よりも、ＦＥＣパケットを生成するために用いるデータパケットの間隔を広げることが可能である。
【０１４８】
尚、ここまでの説明では、すべてのＧＯＰで同じようにＦＥＣフレームを生成するケースについて説明したが、ＦＥＣフレームの生成を間引くことも可能である。
【０１４９】
例えば、遅延許容時間とバッファサイズに余裕がある場合は、ＦＥＣフレームの生成を間引くことで、送信するデータ量を削減することができる。このようにすれば、通信経路（伝送路１０９）上の通信量を少なくすることができる。
【０１５０】
ＦＥＣフレームの生成を間引く場合の具体例について、図１４を用いて説明する。
【０１５１】
図１４において、ケースＡ１４０１はＧＯＰ２個おきにＦＥＣフレームを生成する例を示している。ケースＡ１４０１に示すように、組み合わせ決定部１０７は、１つ目と２つ目のＧＯＰを組み合わせてＦＥＣパケットを生成し、３つ目と４つ目のＧＯＰを組み合わせてＦＥＣパケットを生成させることが可能である。このようにすれば、１つ目と２つ目のＧＯＰを組み合わせてＦＥＣパケットを生成し、２つ目と３つ目のＧＯＰを組み合わせてＦＥＣパケットを生成し、３つ目と４つ目のＧＯＰを組み合わせてＦＥＣパケットを生成するよりも、ＦＥＣパケットを少なくできる。
【０１５２】
また、ケースＢ１４０２はＧＯＰ３個おきにＦＥＣフレームを生成する場合の例を示している。このようにすれば、よりＦＥＣパケットの数を少なくできる。
【０１５３】
特に、ネットワークが重度の輻輳状態であると判断される場合は、ＦＥＣパケットの生成を減らすことにより、輻輳状態の悪化を防ぐことができる。
【０１５４】
但し、先にも述べたように、ＦＥＣフレームを生成する頻度については、遅延許容時間とバッファ容量を十分に考慮する必要がある。
【０１５５】
次に、本実施形態の送信装置１００が行う、ＦＥＣパケット生成処理について、図１５のフローチャートを用いて説明する。
【０１５６】
ステップＳ１０１において、動画像符号化部１０１は、映像入力装置１０８により入力された動画像データを圧縮符号化する。そして、動画像符号化部１０１が、圧縮符号化された動画像データをパケット生成部１０２に出力すると、ステップＳ１０２に進む。
【０１５７】
ステップＳ１０２において、パケット生成部１０２は、圧縮符号化された動画像データを通信に適したサイズに分割し、分割された動画像データにヘッダを付加してデータパケットを生成する。パケット生成部１０２が、生成されたデータパケットをパケット記憶部１０３に記憶させるとステップＳ１０３に進む。
【０１５８】
ステップＳ１０３において、パケット生成部１０２は、ステップＳ１０２で生成したデータパケットの識別情報（例えばシーケンスナンバー）とフレームタイプをフレームタイプ記憶部１０５に記憶させる。フレームタイプ記憶部１０５がデータパケットの識別情報とフレームタイプを記憶するとステップＳ１０４に進む。
【０１５９】
ステップＳ１０４において、組み合わせ決定部１０７は、各データパケットのフレームタイプの情報と、受信装置から通知されたレシーバー・レポートの情報に基づいて、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。尚、組み合わせ決定部１０７は、レシーバー・レポートの情報に含まれる受信装置のバッファ容量、遅延許容時間、バーストエラーの情報などに基づいて、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。バーストエラーの情報は、例えば、レシーバー・レポートの拡張領域に含まれる。ステップＳ１０４において、組み合わせ決定部１０７が決定したデータパケットの組み合わせを誤り訂正符号化部１０６に通知すると、ステップＳ１０５に進む。
【０１６０】
ステップＳ１０５（生成手順）において、誤り訂正符号化部１０６は、組み合わせ決定部１０７によって決定されたデータパケットの組み合わせに基づいて、ＦＥＣパケットを生成する。即ち、ステップＳ１０５において、誤り訂正符号化部１０６は、第１のフレームのデータパケットと第２のフレームのデータパケットに基づいて、復元用パケット（ＦＥＣパケット）を生成する。尚、生成されたＦＥＣパケットは、第１のフレームのデータパケットが通信に失敗した場合に当該データパケットを受信装置が復元するために用いられる。
【０１６１】
尚、本形態の誤り訂正符号化部１０６は、同じフレームタイプのフレームのデータパケットの組み合わせによりＦＥＣパケットを生成する。即ち、ステップＳ１０５において、誤り訂正符号化部１０６は、符号化タイプ（フレームタイプ）を判断する（判断手順）。つまり、誤り訂正符号化部１０６は、他のフレームのデータを参照せずに符号化されるフレーム（Ｉフレーム）であるか、及び、他のフレームのデータを参照して符号化可能なフレーム（Ｂ、Ｐフレーム）であるかを判別可能な符号化タイプを判断する。そして、誤り訂正符号化部１０６は、第１のフレームと符号化タイプが共通である第２のフレームのデータパケットと、第１のフレームのデータパケットとに基づいて、復元用パケット（ＦＥＣパケット）を生成する。
【０１６２】
また、誤り訂正符号化部１０６は、ＦＥＣパケットのヘッダを、図５に示したように拡張することで、所定パケット数以上離れたデータパケットのシーケンスナンバーを含むＦＥＣパケットを生成する。即ち、ステップＳ１０５において、誤り訂正符号化部１０６は、第１のフレームのデータパケットの識別情報、及び、第２のフレームのデータパケットの識別情報を含む復元用パケットを生成する。尚、本実施形態では、データパケットの識別情報として、データパケットＡのシーケンスナンバー、及び、データパケットＡと他のメンバーとのシーケンスナンバーの差分値を用いる例を説明した。しかし、ＦＥＣパケットを生成するために用いたデータパケットを識別できる情報であれば、これに限らない。
【０１６３】
また、本形態の誤り訂正符号化部１０６は、異なるＧＯＰのデータパケットを組み合わせてＦＥＣパケットを生成すると共に、同一フレーム内の送信順序が連続するデータパケットの組み合わせによりＦＥＣパケットを生成する。
【０１６４】
即ち、ステップＳ１０５において、誤り訂正符号化部１０６は、通信に失敗した第１のフレームの第１のデータパケットを受信装置が復元するための第１の復元用パケットを、第１のフレームのデータパケットと第２のフレームのデータパケットに基づいて生成する。また、誤り訂正符号化部１０６は、通信に失敗した第１のフレームの第１のデータパケットを受信装置が復元するために用いる第２の復元用パケットを、第１のフレームの第１のデータパケットと、第１のフレームの第２のデータパケットに基づいて生成する。
【０１６５】
このようにすれば、バーストエラーした欠落データパケットは、異なるＧＯＰのデータパケットで生成されたＦＥＣパケットで復元でき、バーストエラーでない欠落データパケットは、フレーム内のデータパケットで生成した復元用パケットでより早く復元できる。誤り訂正符号化部１０６が生成したＦＥＣパケットをパケット記憶部１０３に記憶させると、ステップＳ１０６に進む。
【０１６６】
ステップＳ１０６（送信手順）において、パケット送受信部１０４は、誤り訂正符号化部１０６により生成されたＦＥＣパケットを、パケット記憶部１０３から読み出し、受信装置へ送信する。即ち、ステップＳ１０６において、パケット送受信部１０４は、データパケットと復元用パケット（ＦＥＣパケット）を送信する。
【０１６７】
以上説明したように、本実施形態の組み合わせ決定部１０７は、ＦＥＣパケットが、異なるＧＯＰのデータパケットを組み合わせて生成されるように、ＦＥＣパケットを生成するために用いるデータパケットの組み合わせを決定する。
【０１６８】
このようにすることで、例えば、バーストエラーによって欠落したデータパケットを、異なるＧＯＰのデータパケットを組み合わせて生成されたＦＥＣパケットを用いて復元できる。したがって、本発明によれば、冗長データ（ＦＥＣパケット）に基づく復元ができない欠落データパケットの数を少なくすることができる。
【０１６９】
＜その他の実施形態＞
本発明の目的は、次の形態によっても達成される。即ち、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する形態である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１７１】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される形態には限られない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【０１７２】
さらに、本発明には、以下の形態も含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される形態である。
【符号の説明】
【０１７３】
１０１  送信装置
１０２  動画像符号化部
１０３  パケット記憶部
１０４  パケット送受信部
１０５  フレームタイプ記憶部
１０６  誤り訂正符号化部
１０７  組み合わせ決定部
１０８  映像入力装置
１０９  伝送路
【図１】
2010183439.tif 000003
【図２】
2010183439.tif 000004
【図３】
2010183439.tif 000005
【図４】
2010183439.tif 000006
【図５】
2010183439.tif 000007
【図６】
2010183439.tif 000008
【図７】
2010183439.tif 000009
【図８】
2010183439.tif 000010
【図９】
2010183439.tif 000011
【図１０】
2010183439.tif 000012
【図１１】
2010183439.tif 000013
【図１２】
2010183439.tif 000014
【図１３】
2010183439.tif 000015
【図１４】
2010183439.tif 000016
【図１５】
2010183439.tif 000017