(57)【特許請求の範囲】
【請求項１】
送信装置から、
コンテンツパケットと、
正常に受信しなかったコンテンツパケットを回復するための第１の種別の回復用データであって、シーケンスナンバーが連続する所定数のコンテンツパケットを第１のグループとした場合に、当該第１のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第１のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第１の種別の回復用データと、
正常に受信しなかったコンテンツパケットを回復するための第２の種別の回復用データであって、シーケンスナンバーが前記所定数ずつ離れている複数のコンテンツパケットを第２のグループとした場合に、当該第２のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第２のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第２の種別の回復用データとを受信する受信手段と、
連続するシーケンスナンバーを前記第１のグループを形成する前記所定数のコンテンツパケットに対応するシーケンスナンバーごとに改行して形成される行列において、シーケンスナンバーが連続する方向を行方向、シーケンスナンバーが前記所定数ずつ離れている方向を列方向としたとき、正常に受信しなかったコンテンツパケットに対応するシーケンスナンバーを前記行列の行方向または列方向に平行な線分でつなぐことにより多角形が形成できる場合、当該正常に受信しなかったコンテンツパケットのうち少なくとも１つを、回復できないコンテンツパケットとして、前記第１の種別の回復用データ及び前記第２の種別の回復用データをすべて受信する前に特定する特定手段とを有することを特徴とする受信装置。
【請求項２】
前記特定手段により特定されたコンテンツパケットの再送要求を、前記第１及び第２の種別の回復用データをすべて受信する前に前記送信装置へ送信する送信手段を有することを特徴とする請求項１に記載の受信装置。
【請求項３】
前記送信手段は、前記特定手段により特定された第１のコンテンツパケットと第２のコンテンツパケットとのうち、より再生順序が早い前記第１のコンテンツパケットの再送要求を、前記第１及び第２の種別の回復用データをすべて受信する前に前記送信装置へ送信することを特徴とする請求項２に記載の受信装置。
【請求項４】
前記特定手段により特定されたコンテンツパケットに対応するコンテンツデータの代替データを、正常に受信した他のコンテンツパケットに対応するコンテンツデータの補間処理により生成する生成処理を、前記第１及び第２の種別の回復用データをすべて受信する前に開始する処理手段を有することを特徴とする請求項１に記載の受信装置。
【請求項５】
受信装置が行う処理方法であって
送信装置から、
コンテンツパケットと、
正常に受信しなかったコンテンツパケットを回復するための第１の種別の回復用データであって、シーケンスナンバーが連続する所定数のコンテンツパケットを第１のグループとした場合に、当該第１のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第１のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第１の種別の回復用データと、
正常に受信しなかったコンテンツパケットを回復するための第２の種別の回復用データであって、シーケンスナンバーが前記所定数ずつ離れている複数のコンテンツパケットを第２のグループとした場合に、当該第２のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第２のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第２の種別の回復用データとを受信する受信工程と、
連続するシーケンスナンバーを前記第１のグループを形成する前記所定数のコンテンツパケットに対応するシーケンスナンバーごとに改行して形成される行列において、シーケンスナンバーが連続する方向を行方向、シーケンスナンバーが前記所定数ずつ離れている方向を列方向としたとき、正常に受信しなかったコンテンツパケットに対応するシーケンスナンバーを前記行列の行方向または列方向に平行な線分でつなぐことにより多角形が形成できる場合、当該正常に受信しなかったコンテンツパケットのうち少なくとも１つを、回復できないコンテンツパケットとして、前記第１の種別の回復用データ及び前記第２の種別の回復用データをすべて受信する前に特定する特定工程とを有することを特徴とする処理方法。
【請求項６】
前記特定工程により特定されたコンテンツパケットの再送要求を、前記第１及び第２の種別の回復用データをすべて受信する前に前記送信装置へ送信する送信工程を有することを特徴とする請求項５に記載の処理方法。
【請求項７】
前記特定工程により特定されたコンテンツパケットに対応するコンテンツデータの代替データを、正常に受信した他のコンテンツパケットに対応するコンテンツデータの補間処理により生成する生成処理を、前記第１及び第２の種別の回復用データをすべて受信する前に開始する処理工程を有することを特徴とする請求項５に記載の処理方法。
【請求項８】
コンピュータを、請求項１乃至４のうち、何れか１項に記載の受信装置として動作させるためのプログラム。
【請求項９】
送信装置と受信装置を含むシステムであって、
前記送信装置は、
コンテンツパケットと、
正常に受信しなかったコンテンツパケットを回復するための第１の種別の回復用データであって、シーケンスナンバーが連続する所定数のコンテンツパケットを第１のグループとした場合に、当該第１のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第１のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第１の種別の回復用データと、
正常に受信しなかったコンテンツパケットを回復するための第２の種別の回復用データであって、シーケンスナンバーが前記所定数ずつ離れている複数のコンテンツパケットを第２のグループとした場合に、当該第２のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第２のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第２の種別の回復用データとを前記受信装置へ送信する送信手段を有し、
前記受信装置は、
前記送信装置によって送信された前記コンテンツパケットと前記第１の種別の回復用データと前記第２の種別の回復用データとを受信する受信手段と、
連続するシーケンスナンバーを前記第１のグループを形成する前記所定数のコンテンツパケットに対応するシーケンスナンバーごとに改行して形成される行列において、シーケンスナンバーが連続する方向を行方向、シーケンスナンバーが前記所定数ずつ離れている方向を列方向としたとき、正常に受信しなかったコンテンツパケットに対応するシーケンスナンバーを前記行列の行方向または列方向に平行な線分でつなぐことにより多角形が形成できる場合、当該正常に受信しなかったコンテンツパケットのうち少なくとも１つを、回復できないコンテンツパケットとして、前記第１の種別の回復用データ及び前記第２の種別の回復用データをすべて受信する前に特定する特定手段とを有することを特徴とするシステム。
【請求項１０】
前記受信装置は、前記特定手段により特定されたコンテンツパケットの再送要求を、前記第１及び第２の種別の回復用データをすべて受信する前に前記送信装置へ送信する送信手段を有することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記受信装置の前記送信手段は、前記特定手段により特定された第１のコンテンツパケットと第２のコンテンツパケットとのうち、より再生順序が早い前記第１のコンテンツパケットの再送要求を、前記第１及び第２の種別の回復用データをすべて受信する前に前記送信装置へ送信することを特徴とする請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置からコンテンツデータを受信する受信装置の処理方法に関する。
【背景技術】
【０００２】
現在、インターネット等のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークを用いた映像伝送が普及している。また、音声や動画像のデータをネットワーク経由でリアルタイム伝送するプロトコルであるＲＴＰ（Ａ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ａｐｐｌｉｃａｔｉｏｎｓ，  ＲＦＣ  ３５５０，  ＩＥＴＦ）が利用されている。ＲＴＰは、トランスポート層で転送速度の速いＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を使用することを想定している。ＵＤＰは、転送速度は速いが、パケットロス対策や伝送時間保証が無いため、ＵＤＰよりも上位の層で通信エラー対応をする必要がある。特に、パケットロスが発生すると、伝送データが部分的に欠落し、映像伝送においては、映像の乱れや、音声途切れといった品質の低下が懸念されるため、これを回復する制御が必要となる。
【０００３】
ＲＴＰにエラー回復能力を付与するものとして、前方誤り訂正（ＦＥＣ：  Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）技術を組み込んだＲＴＰ−ＦＥＣが知られている。ＲＴＰ−ＦＥＣでは、映像や音声などの保護対象データパケットの送信と共に、保護対象データから、誤り訂正用の冗長なデータを生成して送信する。これにより、保護対象データパケットの一部が欠落しても、正常に受信した保護対象データと誤り訂正データを用いて、受信側で欠落データを回復できる。
【０００４】
また、欠落したデータパケットを再送要求する方法と、上記の前方誤り訂正による回復を組み合わせる方法が知られている。特許文献１には、受信側でＦＥＣデータ（回復用データ）により回復できなかった欠落パケットを再送要求することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−２１４４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、正常に受信しなかったデータパケットを回復用データを用いて回復できるようにした場合、回復用データによる回復処理以外の方法で対応すべきデータの特定が遅くなってしまう恐れがあった。
【０００７】
具体的な例として、送信装置が、コンテンツデータの複数のパケットを送信してから、当該コンテンツデータの複数のパケットの回復に用いられる回復用データのパケットを送信する場合について説明する。この場合において、受信装置が回復用データのパケットを正常に受信したか否かを判定してから、回復用データで回復できないデータパケットを特定すると、再送要求の送信タイミングや補間処理の開始タイミングが遅くなってしまう恐れがあった。
【０００８】
本発明の目的は、正常に受信しなかったデータパケットのデータを回復用データを用いて回復できるようにする場合において、回復用データによる回復処理以外の方法で対応すべきデータを早く特定できるようにすることである。
【課題を解決するための手段】
【０００９】
上記の問題点を解決するために、本発明の受信装置は、例えば以下の構成を有する。すなわち、送信装置から、コンテンツパケットと、正常に受信しなかったコンテンツパケットを回復するための第１の種別の回復用データであって、シーケンスナンバーが連続する所定数のコンテンツパケットを第１のグループとした場合に、当該第１のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第１のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第１の種別の回復用データと、正常に受信しなかったコンテンツパケットを回復するための第２の種別の回復用データであって、シーケンスナンバーが前記所定数ずつ離れている複数のコンテンツパケットを第２のグループとした場合に、当該第２のグループ内のコンテンツパケットのうち、正常に受信しなかったコンテンツパケットを、当該第２のグループ内の正常に受信されたコンテンツパケットと共に用いて回復するための第２の種別の回復用データとを受信する受信手段と、連続するシーケンスナンバーを前記第１のグループを形成する前記所定数のコンテンツパケットに対応するシーケンスナンバーごとに改行して形成される行列において、シーケンスナンバーが連続する方向を行方向、シーケンスナンバーが前記所定数ずつ離れている方向を列方向としたとき、正常に受信しなかったコンテンツパケットに対応するシーケンスナンバーを前記行列の行方向または列方向に平行な線分でつなぐことにより多角形が形成できる場合、当該正常に受信しなかったコンテンツパケットのうち少なくとも１つを、回復できないコンテンツパケットとして、前記第１の種別の回復用データ及び前記第２の種別の回復用データをすべて受信する前に特定する特定手段とを有する。
【発明の効果】
【００１０】
本発明によれば、正常に受信しなかったデータパケットのデータを回復用データを用いて回復できるようにする場合において、回復用データによる回復処理以外の方法で対応すべきデータを早く特定できるようになる。
【図面の簡単な説明】
【００１１】
【図１】システム機能ブロック図
【図２】回復可否判定処理を説明するためのフローチャート
【図３】回復可否判定をされる通信パケットの例
【図４】Ｓ２０４の処理の詳細を説明するためのフローチャート
【図５】クロスＦＥＣにおけるエラーパケット発生の例
【図６】クロスＦＥＣにおける仮想エラーデータオブジェクトの例
【図７】クロスＦＥＣにおける回復可否判定処理を説明するためのフローチャート
【図８】到達可否判定の処理を説明するためのフローチャート
【図９】２種類の列方向のＦＥＣパケット生成時におけるエラーパケット発生の例
【図１０】２種類の列方向のＦＥＣパケット生成時における仮想エラーデータオブジェクトの例
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
＜実施形態１＞
本実施形態の映像伝送システムの構成について、図１のシステム機能ブロック図を参照して説明する。
【００１４】
図１において、送信装置１０１は、映像データを送信する送信装置である。送信装置１０１は、通信機能を備えた単一もしくは複数のコンピュータ装置で実現できる。また、送信装置１０１は、例えば、通信機能を備えたカメラであってもよい。また、本形態では、送信装置１０１が映像データを送信する場合の例を説明するが、例えば、音声データなど他のコンテンツデータを送信する場合にも本発明は実施可能である。
【００１５】
受信装置１０２は、送信装置１０１が送信した映像データを受信する受信装置である。受信装置１０２は、通信機能を備えたコンピュータで実現できる。また、受信装置１０２は、例えば、通信機能を備えたストレージ装置やテレビであってもよい。送信装置１０１と受信装置１０２は、互いに通信可能なようにネットワーク１０３で接続されている。
【００１６】
送信装置１０１は、映像入力部１０４、符号化部１０５、映像パケット生成部１０６、ＦＥＣパケット生成部１０７、送信部１０８、受信部１０９を含んで構成される。
【００１７】
映像入力部１０４は、ビデオカメラ、ネットワークカメラ等の映像センサや記憶装置からの映像データを符号化部１０５へ入力する。
【００１８】
符号化部１０５は、入力された映像データを符号化する。符号化部１０５は、例えば、ＭＰＥＧ−４（ＩＳＯ／ＩＥＣ  １４４９６）やＪＰＥＧ（ＩＳＯ／ＩＥＣ  １０９１８）等により映像データを符号化する。ただし、これら以外の方式でもよい。符号化された映像データは映像パケット生成部１０６に渡される。
【００１９】
映像パケット生成部１０６は、符号化された映像データを通信に適したサイズに分割し、映像パケットを生成する。通信プロトコルとしてＲＴＰを用いる場合、一般的には１５００バイト程度のＲＴＰパケットが映像パケットとして生成される。生成された映像パケットはＦＥＣパケット生成部１０７、送信部１０８に渡される。
【００２０】
ＦＥＣパケット生成部１０７は、ＦＥＣパケットを生成する。ＦＥＣパケットは、送信装置１０１が送信した映像パケットのうち、受信装置１０２が正常に受信しなかった映像パケットを受信装置１０２で回復するために用いられる回復用パケットである。ＦＥＣパケットは、ＦＥＣのアルゴリズムや冗長度を示すパラメータに従って生成される。生成されたＦＥＣパケットは送信部１０８に渡される。
【００２１】
送信部１０８は、生成された映像パケット及びＦＥＣパケットをネットワーク１０３経由で受信装置１０２へ送信する。なお、本形態の送信部１０８は、生成された映像パケットを複数、連続送信した後、当該複数の映像パケットのうち、受信装置１０２が正常に受信しなかった映像パケットを受信装置１０２が回復するためのＦＥＣパケットを送信する。
【００２２】
受信部１０９は、受信装置１０２が送信したパケットをネットワーク１０３経由で受信する。受信部１０９が受信するパケットは、例えば、エラーパケットの再送要求パケットや、必要であればＦＥＣパラメータ指定パケット等である。
【００２３】
受信装置１０２は、受信部１１０、回復可否判定部１１１、送信部１１２、誤り訂正処理部１１３、復号化部１１４、再生部１１５を含んで構成される。
【００２４】
受信部１１０は、送信装置１０１が送信した映像パケット及びＦＥＣパケットを受信する。映像パケットは、回復可否判定部１１１、及び復号化部１１４に渡され、ＦＥＣパケットは回復可否判定部１１１に渡される。
【００２５】
回復可否判定部１１１は、受信した映像パケットからエラーパケットを検知する。エラーパケットとは送信装置１０１が受信装置１０２へ送信したパケットのうち、受信装置１０２が正常に受信しなかったパケットである。回復可否判定部１１１は、検知したエラーパケットのうち、ＦＥＣパケットを正常に受信したとしても回復できないエラーパケットを、ＦＥＣパケットを受信する前に特定する。そして、回復可否判定部１１１は、ＦＥＣパケットを正常に受信したとしても回復できないエラーパケットの再送要求パケットを、ＦＥＣパケットの受信前に送信部１１２を介して送信する。
【００２６】
ただし、再送要求パケットを送信する代わりに、正常に受信した他の映像パケットのデータを用いてエラーデータの代替データを生成するための生成処理（補間処理）を開始することも可能である。このように、早いタイミングで代替データの生成処理をすれば、より複雑なアルゴリズムの補間処理を行っても映像の再生に間に合う可能性が高くなる。また、ＦＥＣパケットを受信したとしても回復できないエラーパケットの特定に応じて、再送要求パケットの送信と補間処理を開始するようにしても良い。このようにすれば、再送要求パケットに応じた再送パケットが再生タイミングに間に合わなかったとしても、補間処理された画像を再生できる。
【００２７】
また、回復可否判定部１１１は、受信装置１０２において回復可能なエラーパケットの識別情報と、当該エラーパケットの回復のために用いられるＦＥＣパケットと映像パケットとを誤り訂正処理部１１３へ渡す。
【００２８】
誤り訂正処理部１１３は、回復可否判定部１１１から渡されたエラーパケットの識別情報に対応する映像パケットを、受信装置１０２が正常に受信した映像パケットとＦＥＣパケットを用いて回復する。回復された映像パケットは、復号化部１１４に渡される。
【００２９】
復号化部１１４は、正常に受信された映像パケット及び回復された映像データを復号化する。復号化した映像データは再生部１１５に渡される。再生部１１５は、復号化された映像データを再生表示する。
【００３０】
次に、回復可否判定部１１１における処理の流れを説明する。図２は、受信装置１０２の回復可否判定部１１１が行う処理を説明するためのフローチャートである。なお、受信装置１０２は、図２の処理を実行するためのプログラムをＣＰＵで実行する。ただし、図２の少なくとも一部のステップを専用のハードウェアで実行することも可能である。また、本形態の受信装置１０２は、図２の処理を、送信装置１０１からの映像パケットの受信に応じて開始する。また、受信装置１０２は、送信装置１０１からコンテンツデータのパケット（映像パケット）、及び回復用パケット（ＦＥＣパケット）を受信する（受信手順）。
【００３１】
回復可否判定部１１１は、受信部１１０が正常に受信しなかったパケット（エラーパケット）検知する。（Ｓ２０１）。ここで、エラーパケットには、受信していないパケット（ロスパケット）や、ビットエラーを含むパケット（ビットエラーパケット）が含まれる。
【００３２】
回復可否判定部１１１は、受信したパケットのシーケンスナンバーを監視することで、ロスパケットを検知する。シーケンスナンバーとは、映像パケットに連続的に付与されている識別子である。回復可否判定部１１１は、受信した映像パケットのシーケンスナンバーに抜けに基づいて、ロスパケットを検知する。
【００３３】
また、回復可否判定部１１１は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）やパリティチェックサム等による検知方法を用いてビットエラーパケットを検知する。
【００３４】
ただし、エラーパケットの検知方法は、これらの方法に限らない。また、ロスパケットの検知、及び、ビットエラーパケットの検知のうち、いずれか一方を行うようにすることも可能である。Ｓ２０１でエラーパケットが検知されないと、図２の処理を終了する。
【００３５】
エラーパケットが検知された場合、回復可否判定部１１１は、エラー情報２０５を取得する（Ｓ２０２）。エラー情報２０５は、Ｓ２０２で検知されたエラーパケットよりも前に検知されたエラーパケットを特定するための特定情報（例えばシーケンスナンバー）である。回復可否判定部１１１は、これまでに検知されたエラーパケットを特定するための特定情報を保持している。また、回復可否判定部１１１は、Ｓ２０２で検知されたエラーパケットの特定情報をエラー情報２０５に追加する。
【００３６】
また、回復可否判定部１１１は、ＦＥＣパラメータ２０６を取得する（Ｓ２０３）。ＦＥＣパラメータ２０６は、ＦＥＣパケットを正常に受信した場合に回復可能なエラーパケットの数を特定するための情報である。
【００３７】
なお、ＦＥＣパラメータ２０６は、送信装置１０１が決定することも可能であるし、受信装置１０２が送信装置１０１に対して指定することも可能である。
【００３８】
送信装置１０１がＦＥＣパラメータを決定する場合、受信装置１０２は、例えば、ＲＴＳＰのＧＥＴ＿ＰＡＲＡＭＥＴＥＲメソッドを利用して送信装置１０１から予め取得されたＦＥＣパラメータ２０６を受信装置１０２のメモリから読み出す。また、例えば、送信装置１０１がＲＴＰ／ＡＶＰＦ（ＲＴＰ  Ｐｒｏｆｉｌｅ  ｆｏｒ  ＲＴＣＰ−Ｂａｓｅｄ  Ｆｅｅｄｂａｃｋ）を利用して受信装置１０２に対して予め通知したＦＥＣパラメータ２０６を、受信装置１０２のメモリから読み出すようにしても良い。すなわち、受信装置１０２の回復可否判定部１１１は、複数の映像パケットの後に送信されるＦＥＣパケットを正常に受信した場合に回復可能なパケット数に関するＦＥＣパラメータを送信装置１０１から取得する。
【００３９】
一方、受信装置１０２がＦＥＣパラメータを指定する場合、受信装置１０２は、例えば、ＲＴＳＰ（Ｒｅａｌ  Ｔｉｍｅ  Ｓｔｒｅａｍｉｎｇ  Ｐｒｏｔｏｃｏｌ）のＳＥＴ＿ＰＡＲＡＭＥＴＥＲメソッドを利用してＦＥＣパラメータを送信装置１０１へ通知する。すなわち、受信装置１０２の回復可否判定部１１１は、複数の映像パケットの後に送信されるＦＥＣパケットを正常に受信した場合に回復可能なパケットの数に関するＦＥＣパラメータを指定する。また、回復可否判定部１１１は、送信装置１０１に対して予め指定したＦＥＣパラメータ２０６を保持するメモリからＦＥＣパラメータ２０６を読み出す。ただし、受信装置１０２によるＦＥＣパラメータの取得方法は上記の方法に限らない。
【００４０】
回復可否判定部１１１は、未受信のＦＥＣパケットが正常に受信されれば、エラーパケットを回復できるか否かをエラー情報とＦＥＣパラメータとを用いて判定する（Ｓ２０４）。Ｓ２０４の処理の詳細は後述する。
【００４１】
図３は、本実施形態における処理の具体例を説明するための図である。
【００４２】
この例では、送信装置１０１が８個の映像パケット（３０１−３０８）に対して２個のＦＥＣパケット（３０９−３１０）をリードソロモン符号方式で生成した場合について説明する。すなわち、受信装置１０２は、２個のＦＥＣパケットを正常に受信した場合、８個の映像パケットのうち、２個までのエラーパケットを回復できる。本形態の送信装置１０１は、映像パケット３０１〜３０８を順番に送信した後、ＦＥＣパケット３０９、３１０を順番に送信する。
【００４３】
ここで、ネットワーク１０３を経由する際に、映像パケット３０２、３０３、３０５がパケットロスにより欠落したと仮定する。また、図３の説明では、送信装置１０１によるパケットの送信順序と、受信装置１０２によるパケットの受信順序は一致しているとする。
【００４４】
受信装置１０２の回復可否判定部１１１は、映像パケット３０４を受信したタイミングで映像パケット３０２、３０３を受信していないことを検知する。また、受信装置１０２の回復可否判定部１１１は、ＦＥＣパラメータに基づいて、２個のＦＥＣパケットを正常に受信すれば、８個の映像パケットのうち、２個までのパケットロスを回復できることを把握可能である。従って、回復可否判定部１１１は、映像パケット３０４を受信したタイミングでは、映像パケット３０２、３０３を、ＦＥＣパケットを正常に受信したとしても回復できないパケットとして特定しない。
【００４５】
その後、回復可否判定部１１１は、映像パケット３０６を受信したタイミングで映像パケット３０５のパケットロスを検知する。回復可否判定部１１１は、８個の映像パケット３０１〜３０８のうち、３個の映像パケットがロスしたため、たとえＦＥＣパケット３０９、３１０を正常に受信したとしてもエラーパケットを回復できないと判定する。そこで、回復可否判定部１１１は、正常に受信しなかった映像パケット３０２、３０３、３０５のうちの少なくとも１つを、ＦＥＣパケットを正常に受信したとしても回復できない映像パケットとして特定する。そして、回復可否判定部１１１は、特定したパケットを再送要求するための再送要求パケットを、送信部１１２を介して送信装置１０１へ送信する。なお、本形態の回復可否判定部１１１は、複数のエラーパケット３０２、３０３、３０５のうち、再生順序が時間的に早いエラーパケット３０２の再送要求パケットを送信する。このようにすることで再送された映像パケット３０２の再生中に、他のエラーパケット３０３、３０５のデータの回復処理ができる。
【００４６】
なお、上記の説明では、３つのエラーパケットのうちの１つを再送要求し、他のエラーパケットをＦＥＣパケットで回復する例について説明しているが、これに限らない。例えば、エラーパケット３０２の再送パケットがロスする場合のことを考慮して、複数のエラーパケットの再送要求を送信するようにしても良い。また、例えば、３つのエラーパケットの検知に応じて、エラーパケットの補間処理を開始するようにしても良い。
【００４７】
次に、図４を用いて、回復可否判定（Ｓ２０４）の具体的な処理の流れを説明する。
【００４８】
回復可否判定部１１１は、映像パケットのグループ内の映像パケットのうち、ＦＥＣパケットを正常に受信した場合に回復可能なパケット数を取得する（Ｓ４０１）。映像パケットのグループは、図３の映像パケット３０１〜３０８に対応する。回復可否判定部１１１は、図２のＳ２０３で取得したＦＥＣパラメータ２０６に基づいてパケット数を取得する。図３の例では、ＦＥＣパラメータとして、リードソロモン符号方式におけるＮ＝１０、Ｋ＝８（Ｎは保護対象パケット数とＦＥＣパケット数の合計・Ｋは保護対象パケット数）という情報が含まれる。回復可否判定部１１１は、上記のＦＥＣパラメータにより、回復可能なパケット数の上限値が２個であることを取得する。なお、Ｓ４０１の処理は、エラーパケットが発生するたびに行うようにすることも可能であるが、１度取得したパケット数を保持して、利用するようにしても良い。
【００４９】
回復可否判定部１１１は、映像パケットのグループ内のエラーパケット数が、Ｓ４０１で取得したパケット数の上限値（所定数）よりも大きいか否かを判定する。グループ内のエラーパケット数は、図２のＳ２０２で取得されたエラー情報により取得される。例えば、Ｓ２０２でエラーパケットの数をカウントする。グループ内のエラーパケット数がＳ４０１で取得したパケット数よりも大きいと判定された場合、回復可否判定部１１１は、ＦＥＣパケットを正常に受信したとしても回復できないエラーパケットがあると判定し、そのうちの少なくとも１つを特定する（Ｓ４０３）。すなわち、回復可否判定部１１１は、Ｓ４０３（特定手順）において、正常に受信しなかった映像パケットの数が、ＦＥＣパケットを正常に受信した場合に回復可能なパケット数よりも多くなったことに応じて、少なくとも１個の映像パケットを特定する。
【００５０】
そして、回復可否判定部１１１は、特定したエラーパケットの再送要求を、送信部１１２を介して送信する（送信手順）。また、回復可否判定部１１１は、特定したエラーパケットの補間処理を誤り訂正符処理部１１３に実行させるようにしても良い。誤り訂正処理部１１３は、回復可否判定部１１１からの回復処理の指示に応じてエラーパケットの回復処理ができる共に、回復可否判定部１１１からの補間処理の指示に応じてエラーパケットの代替データを生成するための補間処理ができる。
【００５１】
一方、グループ内のエラーパケット数がＳ４０１で取得したパケット数以下であると判定された場合、回復可否判定部１１１は、ＦＥＣパケットを正常に受信したとしても回復できないエラーパケットは無いと判定する（Ｓ４０４）。この場合、回復可否判定部１１１は、エラーパケットの特定を行わない。エラーパケットの再送要求や補間処理も行わない。
【００５２】
以上説明したように、受信装置１０２の回復可否判定部１１１は、正常に受信しなかったコンテンツデータのうち、回復用のデータを用いても回復できないコンテンツデータを、当該回復用のデータを受信する前に特定する。このようにすることで、回復用データによる回復処理以外の方法で対応すべきデータの特定が早いタイミングで行えるようになる。
【００５３】
また、上記のように早いタイミングで特定されたエラーパケットの再送要求を送信することで、再送パケットが再生に間に合う可能性が高くなる。また、上記のように早いタイミングで特定されたエラーパケットの補間処理を実行することで、より複雑な補間処理をしても再生に間に合う可能性が高くなる。
【００５４】
なお、上記の実施形態では、ＦＥＣパケットを生成するための方式としてリードソロモン符号方式を利用する場合について説明したが、他の方式でも良い。他の方式として、例えば、排他的論理和を用いた生成方式がある。排他的論理和を用いた生成方式では、複数の映像パケットで構成されたグループ内の映像パケット間で排他的論理和を計算してＦＥＣパケットが生成される。この排他的論理和によるＦＥＣパケットを用いた場合、映像パケットのグループ内のエラーパケットを１個まで回復できる。
【００５５】
＜第２の実施形態＞
次に第２の実施形態について、実施形態１との差異を中心に説明する。第１の実施形態では、連続送信される複数の映像パケットをグループとして回復用パケットを生成する場合を説明した。これに対し、本形態では、いわゆるクロスＦＥＣ方式を用いた場合の処理について説明する。
【００５６】
ＦＥＣパケットをクロスＦＥＣ方式で生成した例を図５に示す。
【００５７】
映像パケット１から３５までが映像パケット群５０１として、７列５行の行列で示されている。
【００５８】
また、送信装置１０１のＦＥＣパケット生成部１０７は、連続送信される複数の映像パケット（例えばパケット１〜７）のうち受信装置１０２が正常に受信なかった映像パケットを回復するためのＦＥＣパケット（パケットＦ１）を生成する。すなわち、ＦＥＣパケット生成部１０７は、送信順序が連続する所定パケット数のパケットをパケットグループとした場合において、当該パケットグループ内の正常に受信されなかったパケットを回復するための第１の種別の回復用データを生成する。第１の種別の回復用データは、図５のパケットＦ１〜５に対応する。
【００５９】
また、ＦＥＣパケット生成部１０７は、送信順序が所定パケット数だけ離れている複数の映像パケット１、８、１５、２２、２９のうち受信装置１０２が正常に受信しなかった映像パケットを回復するためのＦＥＣパケットＦ６を生成する。すなわち、ＦＥＣパケット生成部１０７は、送信順序が所定パケット数だけ離れている複数のパケットをパケットグループとした場合において、当該パケットグループ内の正常に受信されなかったパケットを回復するための第２の種別の回復用データを生成する。第２の種別の回復用データは、図５のパケットＦ６〜Ｆ１２に対応する。
【００６０】
受信装置１０２の受信部１１０は、ＦＥＣパケット生成部１０７により生成された第１及び第２の種別の回復用データを受信する。なお、図５では、映像パケットを５行７列に並べてＦＥＣパケットを生成する例を示しているが、行数及び列数は、この例に限らない。また、図５では、１行に１個のＦＥＣパケットが生成される例を示しているが、例えば、実施形態１のように、映像パケットのグループに対して２個のＦＥＣパケットを生成するようにすることも可能である。さらに、本実施形態では、ＦＥＣパケットが排他的論理和を用いた生成方式により生成される例について説明するが、それ以外の生成方式で生成することも可能である。
【００６１】
本形態の送信部１０８は、映像パケット１〜７を送信後、ＦＥＣパケットＦ１を送信し、その後、映像パケット８〜１４を送信して、ＦＥＣパケットＦ２を送信する。また、送信部１０８は、ＦＥＣパケットＦ５を送信後、ＦＥＣパケットＦ６〜Ｆ１２を送信する。ただし、送信順序は上記の例に限らず、送信部１０８は、例えば、映像パケット１〜３５を送信してから、ＦＥＣパケットＦ１〜Ｆ１２を送信するようにしても良い。また、受信装置１０２の受信部１１０によるパケットの受信順序は、送信装置１０１の送信部１０８によるパケットの送信順序と一致するものとする。
【００６２】
受信装置１０２の受信部１１０が、図５に示すように、映像パケット２、４、１１、１３、２３、２７を正常に受信しなかった場合を例に挙げて、回復可否判定部１１１による回復可否の判定処理について説明する。
【００６３】
回復可否判定部１１１は、エラーパケットを検知すると、エラーデータオブジェクトを生成する。また、エラーデータオブジェクトは、新たなエラーパケットの検知に応じて更新される。図６は、回復可否判定部１１１により生成されるエラーデータオブジェクトの例を示している。
【００６４】
（Ａ）はエラーデータオブジェクトの構造を示している。エラーデータオブジェクトは４方向の双方向リスト（ｕｐ，  ｄｏｗｎ，  ｌｅｆｔ，  ｒｉｇｈｔ）を持つ。ここでいう方向とは、クロスＦＥＣにおける行列上の方向に対応する。
【００６５】
（Ｂ）は図５に示すエラーパターンにおけるエラーパケット１１のエラーデータオブジェクトを示すイメージ図である。なお、図６（Ｂ）は、映像パケット２７のエラー検知に応じて更新された状態のエラーデータオブジェクトを示している。つまり、図６（Ｂ）のエラーデータオブジェクトは、映像パケット２８の受信後に更新されたエラーデータオブジェクトを示している。図６（Ｂ）に示すように、エラーパケット１１の上方向（ｕｐ）にはエラーパケット４、右方向（ｒｉｇｈｔ）にはエラーパケット１３が存在するため、それぞれを繋ぐ双方向リストが保持される。エラーパケット１１の下方向（ｄｏｗｎ）と左方向（ｌｅｆｔ）にはエラーパケットは存在しないので双方向リストは保持されない。
【００６６】
（Ｃ）は各エラーデータオブジェクトをそれぞれリストで結合したイメージ図である。なお、図６（Ｃ）は、（Ｂ）と同様に、映像パケット２７のエラー検知に応じて更新された状態のエラーデータオブジェクトを示している。（Ｃ）で示すように、エラーデータオブジェクトをリストで結合した際に、多角形ができる場合、誤り訂正処理部１１３は、当該多角形の頂点となるエラーパケットをクロスＦＥＣで回復できない。
【００６７】
より具体的には、図６（Ｃ）に示すように、映像パケット１〜３５のうち、映像パケット２、４、１１、１３、２３、２７を正常に受信しなかった場合、ＦＥＣパケットをすべて正常に受信したとしても、これらのエラーパケットを回復できない。言い換えると、正常に受信しなかった映像パケットを縦又は横方向に結ぶことで一周できる場合、ＦＥＣパケットをすべて受信しても回復できない。なお、上記の例において、映像パケット２７が正常に受信されていれば、正常に受信されたＦＥＣパケットを用いて映像パケット２、４、１１、１３、２３を回復できる。したがって、本形態の回復可否判定部１１１は、映像パケット２７がエラーパケットであることを検知するまでは、ＦＥＣパケットを用いても回復できないパケットの特定は行わない。エラーパケットの再送要求や補間処理も行わない。
【００６８】
また、図５のエラーパケットのパターンとは別のパターンについて説明する。例えば、図５にように映像パケット１〜３５とＦＥＣパケットＦ１〜Ｆ１２を送信した場合において、映像パケット１、３、１０、１１、１５、１８がエラーパケットとなった場合、ＦＥＣパケットによる回復ができない。
【００６９】
このような場合、本形態の回復可否判定部１１１は、ＦＥＣパケットを正常に受信したとしても回復できないパケットを、以下のようなタイミングで特定する。すなわち、受信部１１０は、送信順序が所定パケット数、連続する映像パケット１〜７のうち、送信順序が１番目と３番目の映像パケットを正常に受信せず、ＦＥＣパケットＦ１を正常に受信する。その後、受信部１１０は、送信順序が所定パケット数、連続する映像パケット８〜１４のうち、送信順序が３番目と４番目の映像パケットを正常に受信せず、ＦＥＣパケットＦ２を正常に受信する。その後、受信部１１０は、送信順序が所定パケット数、連続する映像パケット１５〜２１のうち、送信順序が１番目と４番目の映像パケットを正常に受信しなかったとする。この場合、受信装置１０２の回復可否判定部１１１は、映像パケット１５〜２１のうち、送信順序が４番目の映像パケット１８のエラーの検知に応じたタイミングで特定する。すなわち、回復可否判定部１１１は、正常に受信しなかった映像パケット１、３、１０、１１、１５、１８のうち、少なくとも１個の映像パケットを、映像パケット１８のエラーの検知に応じたタイミングで特定する。
【００７０】
なお、本形態では、映像パケット１〜７を送信した後にＦＥＣパケットＦ１を送信し、その後、映像パケット８〜１４を送信する例について説明しているが、この送信順序に限らない。例えば、送信部１０８は、映像パケット１〜３５を送信してからＦＥＣパケットＦ１〜１２を送信することも可能である。
【００７１】
また、本形態の回復可否判定部１１１は、ＦＥＣパケットを受信したとしても回復できない映像パケット１、３、１０、１１、１５、１８の特定に応じて、少なくとも１個のパケットの再送要求を送信装置１０１へ送信する。そして、誤り訂正処理部１１３は、再送された映像パケットとＦＥＣパケットを用いて他のエラーパケットを回復する。ただし、再送された映像パケットがエラーする可能性を考慮して、２個以上の映像パケットの再送要求を送信するようにしても良い。
【００７２】
次に第２の実施形態の回復可否判定部１１１による回復可否判定処理について図７を用いて説明する。図７は、図２のＳ２０４の詳細を説明するためのフローチャートである。なお、以下の説明では、回復可否判定部１１１が、図２のＳ２０３において、５行７列のクロスＦＥＣであること、ＦＥＣデータの生成方式が排他的論理和による生成方式であることを示すＦＥＣパラメータを取得している。
【００７３】
回復可否判定部１１１は、エラーデータオブジェクトを生成する（Ｓ７０１）。例えば、図５の映像パケット４がエラーパケットとして検知された場合、映像パケット４のエラーデータオブジェクトが生成される。本形態では、Ｓ７０１で生成されるエラーデータオブジェクトをｔｈｉｓと呼ぶ。なお、映像パケット４よりも前に送信された映像パケット１〜３のうち、映像パケット２がすでにエラーパケットとして検知されているものとする。
【００７４】
回復可否判定部１１１は、Ｓ７０１で生成されたエラーデータオブジェクトに基づいて、エラーデータオブジェクトの双方向リストを更新する（Ｓ７０２）。上記の例では、映像パケット２に関するエラーデータオブジェクトが更新される。具体的には、映像パケット２のエラーデータオブジェクトに含まれる４方向のリストのうち、ｒｉｇｈｔに映像パケット４が追加される。また、ｔｈｉｓ（映像パケット４）のエラーデータオブジェクトに含まれる４方向の双方向リストのうち、ｌｅｆｔに映像パケット２が追加される。
【００７５】
回復可否判定部１１１は、ｔｈｉｓの更新後のエラーデータオブジェクトにおいて、列方向と行方向の双方に少なくとも１個以上のエラーパケットが存在するか否かを判定する（Ｓ７０３）。行方向と列方向の双方に１個以上のエラーパケットが存在すると判定された場合はＳ７０５へ進み、存在しないと判定された場合はＳ７０４へ進む。上記の例では、ｔｈｉｓの行方向（ｌｅｆｔ）に映像パケット２が存在するが、ｔｈｉｓの列方向にはエラーパケットが存在しないため、Ｓ７０４へ進む。Ｓ７０４では、回復可否判定部１１１は、ＦＥＣパケットを正常に受信したとしても回復できない映像パケットはないと判定して処理を終了する。
【００７６】
なお、映像パケット２、４、１１、１３、２３が正常に受信されなかった後、映像パケット２７が正常に受信されなかった場合、Ｓ７０３において、行方向と列方向の双方に１個以上のエラーパケットが存在すると判定され、Ｓ７０５へ進む。すなわち、回復可否判定部１１１は、Ｓ７０３において、ｔｈｉｓ（映像パケット２７）の行方向（ｌｅｆｔ）に映像パケット２３が存在し、ｔｈｉｓの列方向（ｕｐ）に映像パケット１３が存在すると判定し、Ｓ７０５へ進む。なお、本形態の送信順序によれば、Ｓ７０３においてｔｈｉｓのｄｏｗｎ方向、及びｒｉｇｈｔ方向の映像パケットがエラーパケットと判定されることはないので、ｔｈｉｓのｕｐ方向とｌｅｆｔ方向にエラーパケットが存在するか否かを判定すればよい。
【００７７】
回復可否判定部１１１は、エラーデータオブジェクトの双方向リストを参照することで、ＦＥＣパケットを正常に受信しても回復できない映像パケットが存在するか否かを判定する（Ｓ７０５）。Ｓ７０５の処理の詳細は図８を用いて後述する。
【００７８】
Ｓ７０５において、ＦＥＣパケットを正常に受信しても回復できない映像パケットが存在すると判定された場合、Ｓ７０７へ進み、当該回復できない映像パケットのうちの少なくとも１個を特定する。そして、回復可否判定部１１１は、特定された映像パケットを再送要求するための再送要求パケットの送信や、特定された映像パケットの補間処理を開始させる。一方、Ｓ７０５でＦＥＣパケットを正常に受信しても回復できない映像パケットは無いと判定された場合、Ｓ７０４へ進み、処理を終了する。
【００７９】
次に、図７のＳ７０５の処理の詳細について図８を用いて説明する。
【００８０】
回復可否判定部１１１は、引数として３つの情報を設定する。１つ目の情報は開始エラーデータオブジェクト、２つ目の情報は現在辿っているエラーデータオブジェクト、３つ目の情報は現在辿っているエラーデータオブジェクトの１つ前に辿っていたエラーデータオブジェクトである。図５のようなエラーパターンの場合、映像パケット２７がエラーパケットとして検知されると、図８の処理が行われる。この場合の開始エラーデータオブジェクトはｔｈｉｓ（映像パケット２７）、現在辿っているエラーデータオブジェクトはｔｈｉｓ（映像パケット２７）、１つ前に辿っていたエラーデータオブジェクトは空（ｎｕｌｌ）となる。
【００８１】
回復可否判定部１１１は、現在辿っているエラーデータオブジェクトの双方向リスト（ｕｐ，  ｄｏｗｎ，  ｌｅｆｔ，  ｒｉｇｈｔ）が指し示すエラーデータオブジェクトを配列ｅｒｒｏｒＤａｔａ［４］に格納する（Ｓ８０１）。本形態の回復可否判定部１１１は、ｕｐをｅｒｒｏｒＤａｔａ［０］、ｄｏｗｎをｅｒｒｏｒＤａｔａ［１］、ｌｅｆｔをｅｒｒｏｒＤａｔａ［２］、ｒｉｇｈｔをｅｒｒｏｒＤａｔａ［３］に格納する。リストが指し示すエラーデータオブジェクトが存在しない場合、配列は空（ｎｕｌｌ）となる。
【００８２】
続いて、回復可否判定部１１１は、ループのインデックスに用いる変数ｉに初期値０を代入する（Ｓ８０２）。
【００８３】
回復可否判定部１１１は、インデックスｉが４より小さいか否かを判定し（Ｓ８０３）、小さいと判定された場合、Ｓ８０５以下の処理を行う。Ｓ８０３はループの繰り返し判定処理である。
【００８４】
回復可否判定部１１１は、Ｓ８０３においてインデックスが４以上であると判定されると、到達不可を通知する（Ｓ８０４）。到達不可とは、エラーパケットのエラーデータオブジェクトをリストで結合した場合に、多角形ができない（リストを辿って一周できない）ことを示している。すなわち、回復可否判定部１１１は、到達不可を通知する場合、図７のＳ７０６からＳ７０４へ進み、ＦＥＣパケットを正常に受信できればエラーパケットを回復可能であると判定する。
【００８５】
Ｓ８０３でインデックスが４より小さいと判定された場合、回復可否判定部１１１は、ｅｒｒｏｒＤａｔａ［ｉ］が空であるか及び、ｅｒｒｏｒＤａｔａ［ｉ］が１つ前のノード（エラーデータオブジェクト）であるか判定する（Ｓ８０５）。Ｓ８０において、ｅｒｒｏｒＤａｔａ［ｉ］が空、もしくは１つ前のノードであると判定された場合、当該エラーデータオブジェクトを辿ることができないため、インデックスｉをインクリメントし（Ｓ８０６）、Ｓ８０３へ戻る。
【００８６】
Ｓ８０５において、ｅｒｒｏｒＤａｔａ［ｉ］が空でなく、かつ、１つ前のノードでもないと判定された場合、回復可否判定部１１１は、ｅｒｒｏｒＤａｔａ［ｉ］が開始エラーデータオブジェクト（ｔｈｉｓ）であるか判定する（Ｓ８０７）。ｅｒｒｏｒＤａｔａ［ｉ］がｔｈｉｓであった場合、到達可能を通知する（Ｓ８０９）。到達可能とは、エラーパケットのエラーデータオブジェクトをリストで結合した場合に、多角形ができる（リストを辿って一周できる）ことを示している。すなわち、回復可否判定部１１１は、到達可能を通知する場合、図７のＳ７０６からＳ７０７へ進み、ＦＥＣパケットを正常に受信しても回復できない映像パケットを特定する。
【００８７】
Ｓ８０７でｅｒｒｏｒＤａｔａ［ｉ］がｔｈｉｓでないと判定された場合、回復可否判定部１１１は、Ｓ７０５を再帰実行する。このとき引数となる３つの情報のうち、１つ目の情報（開始エラーデータオブジェクト）はｔｈｉｓである。また３つ目の情報（現在辿っているエラーデータオブジェクトの１つ前に辿っていたエラーデータオブジェクト）に、再帰実行前の２つ目の情報（現在辿っているエラーデータオブジェクト）が格納される。また、２つ目の情報に、再帰実行前のｅｒｒｏｒＤａｔａ［ｉ］が格納される。
【００８８】
回復可否判定部１１１は、Ｓ７０５で到達不可を通知した場合、インデックスｉをインクリメント（Ｓ８０６）し、Ｓ８０３に戻る。
【００８９】
図５に示すエラーパターンにおいて、映像パケット２７がエラーパケットとして検知された場合の図８の処理に以下に説明する。この場合、１つ目の引数の情報は、ｔｈｉｓ（映像パケット２７）、２つ目の引数の情報は、ｔｈｉｓ（映像パケット２７）、３つ目の引数の情報は空（ｎｕｌｌ）となる。
【００９０】
Ｓ８０１において、回復可否判定部１１１は、配列ｅｒｒｏｒＤａｔａ［４］に、エラーデータオブジェクトを格納する。すなわち、ｅｒｒｏｒＤａｔａ［０］には映像パケット１３、ｅｒｒｏｒＤａｔａ［１］にはｎｕｌｌ、ｅｒｒｏｒＤａｔａ［２］には映像パケット２３、ｅｒｒｏｒＤａｔａ［３］にはｎｕｌｌが格納される。
【００９１】
その後、回復可否判定部１１１は、ｉに０を代入し（Ｓ８０２）、ｅｒｒｏｒＤａｔａ［０］がｎｕｌｌあるか否か、及び、１つ前のエラーデータオブジェクトであるか否かを判定する。この例では、ｅｒｒｏｒＤａｔａ［０］には映像パケット１３が格納され、しかも映像パケット１３は１つ前のエラーデータオブジェクト（ｎｕｌｌ）ではないので、Ｓ８０７に進む。
【００９２】
Ｓ８０７において、映像パケット１３はｔｈｉｓ（映像パケット２７）ではないため、Ｓ７０５が再帰実行される。このとき、１つ目の引数は、ｔｈｉｓ（映像パケット２７）、２つ目の引数は映像パケット２３、３つ目の引数は映像パケット２７となる。
【００９３】
Ｓ８０１において、回復可否判定部１１１は、配列ｅｒｒｏｒＤａｔａ［４］に、エラーデータオブジェクトを格納する。すなわち、ｅｒｒｏｒＤａｔａ［０］には映像パケット２、ｅｒｒｏｒＤａｔａ［１］にはｎｕｌｌ、ｅｒｒｏｒＤａｔａ［２］にはｎｕｌｌ、ｅｒｒｏｒＤａｔａ［３］には映像パケット２７が格納される。
【００９４】
その後、回復可否判定部１１１は、ｉに０を代入し（Ｓ８０２）、ｅｒｒｏｒＤａｔａ［０］がｎｕｌｌあるか否か、及び、１つ前のエラーデータオブジェクトであるか否かを判定する。この例では、ｅｒｒｏｒＤａｔａ［０］には映像パケット２が格納され、しかも映像パケット２は１つ前のエラーデータオブジェクト（映像パケット２７）ではないので、Ｓ８０７に進む。
【００９５】
Ｓ８０７において、映像パケット２はｔｈｉｓ（映像パケット２７）ではないため、Ｓ７０５が再帰実行される。このとき、１つ目の引数は、ｔｈｉｓ（映像パケット２７）、２つ目の引数は映像パケット２、３つ目の引数は映像パケット２３となる。
【００９６】
以上のようにしてＳ８０７で特定された映像パケットがｔｈｉｓと一致すると、回復可否判定部１１１は、到達可能を通知し（Ｓ８０９）、ＦＥＣパケットを正常に受信したとしても回復できない映像パケットを特定する。
【００９７】
以上説明したように、本形態の受信装置１０２によれば、いわゆるクロスＦＥＣを用いる場合においても、正常にＦＥＣパケットを受信したとしても回復できないパケットをより早いタイミングで特定できるようになる。
【００９８】
また、受信装置１０２は、特定した映像パケットを再送要求するための再送要求パケットを送信することで、再送された映像パケットが映像の再生に間に合う可能性が高くなる。また、受信装置１０２は、特定した映像パケットの補間処理を開始することで、より複雑な補間アルゴリズムを用いて補間処理した場合であっても、補間処理の完了が映像の再生に間に合う可能性が高くなる。
【００９９】
＜実施形態３＞
次に第３の実施形態について、実施形態１及び２との差異を中心に説明する。第２の実施形態では、いわゆるクロスＦＥＣを用いた場合にＦＥＣパケットを正常に受信したとしても回復できない映像パケットを特定することについて説明した。これに対し、本形態では、複数の異なる行列において生成されたＦＥＣパケットを用いる場合の実施形態について説明する。
【０１００】
図９は、映像パケット１〜３５を２つの異なる行列に並べてＦＥＣパケットを生成する例を示している。１つ目の行列は映像パケット１〜３５を５行７列に並べて列方向のＦＥＣパケットＦ１〜Ｆ７を生成する例を示している。また、２つ目の行列は映像パケット１〜３５を７行５列に並べて列方向のＦＥＣパケットＦ８〜ｆ１２を生成する例を示している。
【０１０１】
図１０は、本実施形態で生成されるエラーデータオブジェクトの例を示している。
【０１０２】
（Ａ）に示すように、本形態の回復可否判定部１１１は、行方向の双方向リスト（ｌｅｆｔ，  ｒｉｇｈｔ）を生成しない代わりに、列方向の双方向リスト（ｕｐ，  ｄｏｗｎ）を２個ずつ生成する。
【０１０３】
（Ｂ）は図９に示すエラーパターンにおけるエラーパケット２７のエラーデータオブジェクトを示すイメージ図である。エラーパケット２７の上方向にはエラーパケット２と１３が存在するため、それぞれを繋ぐ双方向リストが保持される。つまり、図９の５行７列の行列においてエラーパケット２７の上方向にエラーパケット１３が存在し、図９の７行５列の行列においてエラーパケット２７の上方向にエラーパケット２が存在する。従って、エラーパケット２７に、エラーパケット１３と２とをそれぞれ繋ぐ双方向リストが保持される。なお、エラーパケット２７の下方向にはエラーパケットが存在しないため、双方向リストは保持されない。
【０１０４】
（Ｃ）は各エラーデータオブジェクトをそれぞれリストで結合したイメージ図である。図９（Ｃ）において、エラーデータオブジェクト４と１１は多角形になっていないため、回復可否判定部１１１は、ＦＥＣパケットを正常に受信すれば、映像パケット４と１１を回復可能であると判定する。一方、映像パケット２、１３、２３、２７は多角形になっているため、回復可否判定部１１１は、ＦＥＣパケットを正常に受信してもこれらの映像パケットを回復不可能であると判定する。図９を見ると、映像パケット４はＦＥＣパケットＦ１１で回復でき、映像パケット１１はＦＥＣパケットＦ８で回復できるが、映像パケット２、１３、２３、２７は、ＦＥＣパケットを正常に受信したとしても、回復できないことが確認できる。
【０１０５】
本形態における回復可否の判定は、実施形態２で説明した処理方法における行方向の双方向リストｌｅｆｔ，  ｒｉｇｈｔを第二の列方向の双方向リストｕｐ２，  ｄｏｗｎ２と置き換えることで実現できる。
【０１０６】
また、上記の実施形態では、異なる２つの行列の列方向にＦＥＣパケットを生成する例を説明したが、行方向にＦＥＣパケットを生成するようにしても良い。その場合は、列方向の双方向リストｕｐ，  ｄｏｗｎが存在しない代わりに、行方向の双方向リストが２個ずつとなる。
【０１０７】
また、上記の各実施形態では、コンテンツデータとして映像データを用いる場合について説明したが、音声データなど、他のコンテンツデータを用いても良い。
【０１０８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005677070.tif 000002
【図２】
0005677070.tif 000003
【図３】
0005677070.tif 000004
【図４】
0005677070.tif 000005
【図５】
0005677070.tif 000006
【図６】
0005677070.tif 000007
【図７】
0005677070.tif 000008
【図８】
0005677070.tif 000009
【図９】
0005677070.tif 000010
【図１０】
0005677070.tif 000011