(57)【特許請求の範囲】
【請求項１】
所定のデータが分割されることによって生成されたパケットを受信するデータ受信装置において、
送信機から第一のパケットを受信したとき、該第一のパケットにエラーが存在するか判定し、
前記第一のパケットにエラーが存在していると判定されたとき、該第一のパケットが属するグループに存在するエラーパケットの数を表すエラーパケット情報を参照し、全パケットを受信しても該第一のパケットのエラーを復旧できないか判定し、
前記判定の結果に基づいて、前記送信機に該第一のパケットの再送を要求し、
前記第一のパケットは、１以上の他のパケットとともに第一のグループに属し、
かつ、前記第一のパケットは、前記第一のグループに属していない１以上の他のパケットとともに第二のグループに属し、
前記エラーパケット情報は、前記データ受信装置が受信する各々のパケットについて、該パケットの識別情報と、該パケットのエラー有無と、該パケットの再送要求の必要の有無と、前記第一のグループ内に存在するエラーパケットの数と、前記第二のグループ内に存在するエラーパケットの数とが対応付けられたテーブルによって管理される
ことを特徴とするデータ受信方法。
【請求項２】
前記第一のパケットにエラーが存在していると判定されたとき、
前記第一のパケットが属する前記第一のグループにエラーを含んだ第二のパケットが存在し、かつ、前記第二のパケットが属する前記第二のグループに、エラーを含んだ第三のパケットが存在し、かつ、前記第三のパケットの属する第三のグループに、エラーを含んだ第四のパケットが存在し、かつ、前記第四のパケットが属する第四のグループに、前記第一のパケットが存在するか判定し、
前記判定の結果に基づいて、前記送信機に前記第一のパケットの再送を要求する
ことを特徴とする、請求項１に記載のデータ受信方法。
【請求項３】
所定のデータが分割されることによって生成されたパケットを受信するデータ受信装置において、
送信機から第一のパケットを受信する受信部と、
該第一のパケットにエラーが存在するか判定し、前記第一のパケットにエラーが存在していると判定されたとき、該第一のパケットが属するグループに存在するエラーパケットの数を表すエラーパケット情報を参照し、全パケットを受信しても該第一のパケットのエラーを復旧できないか判定するエラー復旧処理部と、
前記判定の結果に基づいて、前記送信機に該第一のパケットの再送を要求する送信部と、
を含み、
前記第一のパケットは、１以上の他のパケットとともに第一のグループに属し、
かつ、前記第一のパケットは、前記第一のグループに属していない１以上の他のパケットとともに第二のグループに属し、
前記エラーパケット情報は、前記データ受信装置が受信する各々のパケットについて、該パケットの識別情報と、該パケットのエラー有無と、該パケットの再送要求の必要の有無と、前記第一のグループ内に存在するエラーパケットの数と、前記第二のグループ内に存在するエラーパケットの数とが対応付けられたテーブルによって管理される
ことを特徴とするデータ受信装置。
【請求項４】
前記第一のパケットにエラーが存在していると判定されたとき、
前記エラー復旧処理部は、前記第一のパケットが属する前記第一のグループにエラーを含んだ第二のパケットが存在し、かつ、前記第二のパケットが属する前記第二のグループに、エラーを含んだ第三のパケットが存在し、かつ、前記第三のパケットの属する第三のグループに、エラーを含んだ第四のパケットが存在し、かつ、前記第四のパケットが属する第四のグループに、前記第一のパケットが存在するか判定し、
前記送信部は、前記判定の結果に基づいて、前記送信機に前記第一のパケットの再送を要求する
ことを特徴とする、請求項３に記載のデータ受信装置。
【請求項５】
所定のデータが分割されることによって生成されたパケットを受信するデータ受信装置において、
送信機から第一のパケットを受信したとき、該第一のパケットにエラーが存在するか判定し、
前記第一のパケットにエラーが存在していると判定されたとき、該第一のパケットが属するグループに存在するエラーパケットの数を表すエラーパケット情報を参照し、全パケットを受信しても該第一のパケットのエラーを復旧できないか判定し、
前記判定の結果に基づいて、前記送信機に該第一のパケットの再送を要求する
処理をデータ受信装置に実行させ、
前記第一のパケットは、１以上の他のパケットとともに第一のグループに属し、
かつ、前記第一のパケットは、前記第一のグループに属していない１以上の他のパケットとともに第二のグループに属し、
前記エラーパケット情報は、前記データ受信装置が受信する各々のパケットについて、該パケットの識別情報と、該パケットのエラー有無と、該パケットの再送要求の必要の有無と、前記第一のグループ内に存在するエラーパケットの数と、前記第二のグループ内に存在するエラーパケットの数とが対応付けられたテーブルによって管理される
ことを特徴とするデータ受信プログラム。
【請求項６】
前記第一のパケットにエラーが存在していると判定されたとき、
前記第一のパケットが属する前記第一のグループにエラーを含んだ第二のパケットが存在し、かつ、前記第二のパケットが属する前記第二のグループに、エラーを含んだ第三のパケットが存在し、かつ、前記第三のパケットの属する第三のグループに、エラーを含んだ第四のパケットが存在し、かつ、前記第四のパケットが属する第四のグループに、前記第一のパケットが存在するか判定し、
前記判定の結果に基づいて、前記送信機に前記第一のパケットの再送を要求する
処理をデータ受信装置に実行させることを特徴とする、請求項５に記載のデータ受信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信方法及び装置に関する。
【背景技術】
【０００２】
ＩＰネットワークを利用した映像伝送においては、ネットワークにおける伝搬過程でパケットにビット誤り等のエラーが発生したとき、受信装置（以下デコーダ）から送信装置（以下エンコーダ）に対して該パケットの再送要求（Ａｕｔｏｍａｔｉｃ  Ｒｅｐｅａｔ  ｒｅＱｕｅｓｔ：ＡＲＱ）を行う。前記デコーダからの再送要求を受信したエンコーダが、該再送要求に応じたパケットを再度該デコーダへ送信することで、該デコーダは正常なパケットを受信することができる。しかし、デコーダがエラーパケットを受信するたびにエンコーダに対して再送要求を行うと、該デコーダがすべてのデータを受信するまでに多くの時間を要するため非効率的である。
【０００３】
そこで、エラーデータ発生時のデコーダからの再送要求を少なくするために、エンコーダは一定個数のパケットごとに、ＦＥＣ（Ｆｏｒｗａｒｄ Ｅｒｒｏｒ Ｃｏｒｒｅｃｔｉｏｎ）パケットと呼ばれるパケットを生成する。ＦＥＣパケットは、パケットのエラーを復旧するための冗長データを含んだパケットである。
【０００４】
映像パケットとＦＥＣパケットの対応関係は予めシステム管理者によって設定されており、エンコーダは該ＦＥＣパケットを、パケットとともに、システム管理者によって予め定められた所定の順序でデコーダへ送信する。パケットを受信したデコーダは、その対応関係に基づいて、パケットに生じたエラーをＦＥＣパケットによって復旧する。
【０００５】
１つのＦＥＣパケットは通常、所定の数のパケットに対応付けられており、所定の数のパケットのうち、１つのパケットにエラーが生じた場合、そのパケットのエラーを復旧することができる。また、所定の数の映像パケットは、時間的に連続して送信されることが一般的である。そのため、複数のパケットが時間的に連続してエラーするバーストエラーが発生すると、ＦＥＣパケットは１つのパケットに生じたエラーしか復旧できないので、ＦＥＣパケットによってパケットのエラーを復旧できないおそれがある。
【０００６】
このようなバーストエラーに伴うパケットのエラーを復旧するための技術として、非特許文献１に記載されている技術がある。この技術は、時間的に連続した複数のパケットに対応するＦＥＣパケットと、時間的に連続でない複数のパケットに対応するＦＥＣデータを組み合わせた、２次元のＦＥＣデータ（Pro-MPEG FEC）を使用してエラーを復旧させるものである。
【０００７】
図２０にPro-MPEG FECにおける映像パケットとＦＥＣパケットとの対応関係の一例を示す。図２０は、エンコーダからパケットが映像パケット１…５、FECパケット１、映像パケット６…１０、FECパケット２、映像パケット１１…１５、FECパケット３、FECパケット４…８の順で送信された場合の例を示している。デコーダは、図１８に示されるようなテーブル情報をその記憶領域に有しており、デコーダは、該テーブル情報を参照することで、各々の映像パケットとFECパケットとの対応関係を認識することができる。
【０００８】
例えば、映像パケット９は、該パケットと時間的に連続して送信された映像パケットである、映像パケット６，７，８，１０とともに、ＦＥＣパケット２に対応付けられている。さらに、映像パケット９は、該パケットと時間的に不連続に送信された映像パケットである、映像パケット４，１４とともに、ＦＥＣパケット７に対応付けられている。
【０００９】
このようなパケットとＦＥＣパケットとの対応関係は、予めシステム管理者等によって設定されるものであり、エンコーダはその対応関係に基づいてＦＥＣパケットを生成し、映像パケットとともに所定の順序でデコーダへ送信する。また、デコーダはその対応関係に基づいて、パケットに生じたエラーを、そのパケットに対応したＦＥＣパケットのうちのいずれかによって復旧する。
【００１０】
ここで、図２１を用いてPro-MPEG FECによるエラーパケット復旧手順の一例を示す。図２１（ａ）はデコーダがエラーパケットである映像パケット３を受信したときの映像パケットとＦＥＣパケットとの対応関係を表すテーブルの例である。図２１において、白背景で表したパケットは正常なパケットを、黒背景で表したパケットはエラーパケットを、斜線背景で表したパケットは未受信受診のパケットを、それぞれ表す。この時点では、映像パケットに対応したＦＥＣパケットがどちらも未受信であるため、この時点でのエラー復旧は行われない。
【００１１】
図２１（ｂ）はデコーダがＦＥＣパケットＦ１を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。この時点で、映像パケット１、２、４、５がすべて正常なパケットであれば、映像パケット３のエラーをＦＥＣパケット１によって復旧することができるが、図２１（ｂ）の例では映像パケット４がエラーパケットである。そのため、映像パケット３のエラーをＦＥＣパケット１によって復旧することができない。
【００１２】
ここで、従来のＦＥＣパケット伝送と異なり、Pro-MPEG FECによるパケット伝送では、１つの映像パケットに対して、２つのＦＥＣパケットが対応していることが特徴である。そこで、図２１（ｂ）の例では、映像パケット３のエラーを復旧するために、該映像パケットに対応するもう一つのＦＥＣパケットである、ＦＥＣパケット６の受信を待つことになる。
【００１３】
図２１（ｃ）はデコーダがＦＥＣパケット６を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。図２１（ｃ）において、映像パケット３，８，１３のうち、エラーパケットであるのは映像パケット３のみであるため、ＦＥＣパケット６によって映像パケット３のエラーを復旧できる。
【００１４】
図２１（ｄ）は映像パケット３のエラーが復旧されたときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。図２１（ｄ）において、映像パケット３のエラーがＦＥＣパケット６によって復旧されたため、映像パケット４のエラーをＦＥＣパケット１によって復旧することができるようになった。このように、Pro-MPEG FECを用いることで、パケットにバーストエラーが生じても、エラーパケットを復旧することが可能である。
【００１５】
しかしながら、Pro-MPEG FECを利用しても映像パケットのエラーを復旧できない場合もある。どのような条件でPro-MPEG FECによるエラー復旧が行えなくなるか、図２２を用いて説明する。図２２（ａ）は、映像パケット８を受信したときの映像パケットとＦＥＣパケットとの対応関係を表すテーブルの例である。図２２においても、白背景で表したパケットは正常なパケットを、黒背景で表したパケットはエラーパケットを、斜線背景で表したパケットは未受信のパケットを、それぞれ表す。
【００１６】
図２１の例と異なり、図２２（ａ）では映像パケット３，４に加えて映像パケット８もエラーパケットとなっている。このとき、ＦＥＣパケット６が対応している映像パケットのうち２つがエラーパケットとなっているため、図２１の例のようにＦＥＣパケット６によって映像パケット３のエラーを復旧することができないことが懸念される。
【００１７】
しかし、映像パケット８のエラーが復旧されれば、ＦＥＣパケット６が対応している映像パケットのうち、エラーパケットは映像パケット３のみとなるため、該映像パケットを復旧することが可能である。図２２（ｂ）はデコーダがＦＥＣパケット２を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。
【００１８】
図２２（ｂ）において、映像パケット６〜１０のうち、エラーパケットであるのは映像パケット８のみであるため、ＦＥＣパケット２によって映像パケット８のエラーを復旧できる。映像パケット３のエラーが復旧されれば、図２１（ｃ）（ｄ）を用いて説明した手順によってすべてのエラーが復旧される。
【００１９】
ところが、ここで映像パケット９もエラーパケットであると、映像パケット８をＦＥＣデータ２によって復旧することができなくなるので、映像パケット３のエラーを復旧させることができない。図２２（ｃ）は、映像パケット９がエラーパケットである場合において、ＦＥＣパケット２を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。
【００２０】
図２２（ｃ）において、ＦＥＣパケット２が対応する映像パケットのうち、エラーパケットが２つ（映像パケット８，９）存在するため、ＦＥＣパケット２によってエラーパケットを復旧することができない。このとき、映像パケット９のエラーが復旧されれば、図２２（ａ）（ｂ）を用いて説明した手順によって映像パケット８のエラーが復旧され、図２１（ｃ）（ｄ）を用いて説明した手順によってすべてのエラーが復旧される。
【００２１】
そこで、映像パケット９に対応するもう一つのＦＥＣパケットである、ＦＥＣパケット７の受信を待つことになる。図２２（ｄ）はＦＥＣパケット７を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図である。
【００２２】
図２２（ｄ）において、ＦＥＣパケット７が対応する映像パケットのうち、エラーパケットが２つ（映像パケット４，９）存在するため、ＦＥＣパケット７によって映像パケット９のエラーを復旧することができない。したがって、全てのＦＥＣパケットを受信したとき、映像パケット３，４，８，９は復旧されないまま残ってしまう。
【００２３】
上記のような状況はバーストエラーが複数発生すると起こり得る。このように、バーストエラーが複数発生し、ＦＥＣパケットをすべて受信しても復旧することができないエラーパケットが残ってしまった場合は、デコーダはエンコーダに対してエラーパケットの再送要求を行うことで、エラーを復旧させている。
【００２４】
ここで、図２１、図２２において、映像パケットは、１５個ごとにグループが形成され、各FECグループに対して８つのFECパケットが付加されている。つまり、図２１、図２２において、映像パケット１〜１５は一つのグループを形成している。デコーダは、一つのグループのパケットと、そのグループのパケットに対応したFECパケットをすべて受信した時点で、そのグループにエラーパケットが残っていた場合に、エラーパケットの再送要求を行う。なお、以降の説明ではそのグループのことを「FEC復旧単位」と呼称する。
【００２５】
図２２（ｄ）の例で説明すると、デコーダは、映像パケット３，４，８，９が属するFEC復旧単位の全映像パケットと、各々の映像パケットに対応するFECパケットをすべて受信した時点で、映像パケット３，４，８，９のうちどれか１パケットの再送要求を行う。そして、該パケットが正常な状態でデコーダに届くと、デコーダは残りのエラーパケットを全てＦＥＣパケットによって復旧することができる。
【００２６】
例えば、映像パケット３の再送要求を行い、該パケットが正常に受信された場合、映像パケット４をＦＥＣパケット１によって、映像パケット８をＦＥＣパケット６によって、それぞれ復旧できるようになる。そして、映像パケット４または映像パケット８が復旧すると、映像パケット９がＦＥＣパケット７またはＦＥＣパケット２によって復旧され、全てのエラーパケットが復旧される。なお、再送要求を行う対象の映像パケットは必ずしも映像パケット３である必要はなく、他のエラーパケットであっても問題なくエラーの復旧が行われる。
【００２７】
ここで、映像データを受信しながら同時に再生を行うストリーミングのサービスにおいては、視聴者側の再生を妨げないために、デコーダは再生のタイミングに合わせて正常に復号された映像を表示装置へ出力する必要がある。デコーダが受信したエラーパケットは、該パケットが受信されてから一定時間が経過した場合、該パケットが復旧されたか否かに関わらず、自動的に復号され、表示装置へ出力される。
【００２８】
したがって、ネットワークにおける伝搬過程でのパケットエラーが生じても、各エラーパケットの復旧にかかる時間を短くする必要がある。ただし、エンコーダにかかる負荷を小さくするために、できるだけエンコーダからのパケット再送は少なくすることが望ましい。なお、前記一定時間とは、ユーザが任意に設定し、ハードウェアに記憶された値であり、以降パケット復旧制限時間と呼称する。
【先行技術文献】
【非特許文献】
【００２９】
【非特許文献１】"Transmission of Professional MPEG-2 Transport Streams over IP Networks", Pro-MPEG Forum (2004): Pro-MPEG Code of Practice #3 release 2
【発明の概要】
【発明が解決しようとする課題】
【００３０】
図２３は、映像の圧縮率と、パケット数及び各パケットに含まれる情報量との間の関係を説明するための図である。図２３において、画像１００はＡ、Ｂ、…Ｚ、α、β、γ、δで表される３０に分割された領域で構成される。なお、前述のストリーミングの場合、画像１００は１フレームの映像に対応する。
【００３１】
図２３において、映像パケット１〜５、７〜１１、１３〜１７、２４〜２８、３０〜３４、３６〜４０は、前記画像１００をＭＰＥＧ−４等の低い圧縮率の圧縮形式でパケット符号化することで得られた、計３０個の映像パケットである。各映像パケットは、前記３０に分割された情報のうちどれか１つの情報を含んでいる。例えば、パケット１は情報Ａを含み、パケット３８は情報βを含んでいる。なお、各パケットが含んでいる情報は重複しない。
【００３２】
図２３において、３０個の映像パケットは、１５個ごとにFEC復旧単位が形成され、各FEC復旧単位に対して８つのＦＥＣパケットが付加されている。例えば、映像パケット１〜５，７〜１１，１３〜１７は一つのFEC復旧単位を形成している映像パケットであり、該FEC復旧単位に対してＦＥＣパケット６，１２，１８，１９〜２３が付加されている。
【００３３】
また、各ＦＥＣ復旧単位において、時間的に連続して送信される複数の映像パケットはグループを形成しており、各グループに対して１つのＦＥＣパケットが対応付けられている。ここで、各グループに対応したＦＥＣパケットを「横ＦＥＣパケット」と呼ぶとともに、該ＦＥＣパケットと、該ＦＥＣパケットが対応する映像パケットとを総称して、「横ＦＥＣグループ」あるいは「行」と呼ぶものとする。
【００３４】
さらに、各ＦＥＣ復旧単位において、時間的に不連続に送信される複数の映像パケットはグループを形成しており、各グループに対して１つのＦＥＣパケットが対応付けられている。ここで、該グループに対応したＦＥＣパケットを「縦ＦＥＣパケット」と呼ぶとともに、該ＦＥＣパケットと、該ＦＥＣパケットが対応する映像パケットとを総称して、「縦ＦＥＣグループ」あるいは「列」と呼ぶものとする。
【００３５】
図２３（ａ）において、各ＦＥＣパケットは、該ＦＥＣパケットと同じ行または列の映像パケットのエラーを一つ復旧することができる。例えば、ＦＥＣパケットであるパケット１２は、該パケットと同じ行にある映像パケット７〜１１のエラーを一つ復旧できる。また、ＦＥＣパケットであるパケット２２は、該パケットと同じ列にある映像パケット４、１０、１６のエラーを一つ復旧できる。
【００３６】
このように、図２３（ａ）で示した例では、ある画像をＭＰＥＧ−４等の低い圧縮率の圧縮形式でパケット符号化することによって、各々１つの情報を含んだ３０個の映像パケットと、エラー訂正用のＦＥＣパケット１６個の、合計４６個のパケットが生成されている。
【００３７】
図２３（ｂ）において、映像パケット１０１〜１０５、１０７〜１１１、１１３〜１１７は、前記画像１００をＨ．２６４等の高い圧縮率の圧縮形式でパケット符号化することで得られた、計１５個の映像パケットである。ここで、図２３（ｂ）における高い圧縮率の圧縮形式は、図２３（ａ）における低い圧縮率の圧縮形式に対して２倍の圧縮率で映像を圧縮できるものとする。各映像パケットは、前記３０に分割された情報のうちどれか２つの情報を含んでいる。例えば、パケット１０１は情報Ａ、Ｂを含み、パケット１１６は情報α、βを含んでいる。なお、各パケットが含んでいる情報は重複しない。
【００３８】
図２３（ｂ）において、１５個の映像パケットは、１５個ごとにＦＥＣ復旧単位が形成され、各ＦＥＣ復旧単位に対して８つのＦＥＣパケットが付加されている。例えば、パケット１０１〜１０５，１０７〜１１１，１１３〜１１７は一つのＦＥＣ復旧単位を形成しており、該ＦＥＣ復旧単位に対してＦＥＣパケット１０６，１１２，１１８，１１９〜１２３が付加されている。
【００３９】
図２３（ｂ）において、各ＦＥＣパケットは、該ＦＥＣパケットと同じ行または列の映像パケットのエラーを一つ復旧することができる。例えば、ＦＥＣパケットであるパケット１１２は、該パケットと同じ行にある映像パケット１０７〜１１１のエラーを一つ復旧できる。
【００４０】
このように、図２３（ｂ）の例では、ある画像を高い圧縮率でパケット符号化することによって、各々２つの情報を含んだ１５個の映像パケットと、エラー訂正用のＦＥＣパケット８個の、合計２３個のパケットが生成されている。
【００４１】
図２４は、圧縮率と伝送レートとの間の関係を説明するための図である。図２４において、圧縮率の低い方式でパケットを伝送するときと比べて、圧縮率の高い方式でパケットを伝送するときは、各パケットの送信間隔が広くなっている。これは、リアルタイムな映像配信においては、映像の再生タイミングは予め定められているため、圧縮形式に関わらず、全ての情報を送信するまでの所要時間はほぼ一定でなければならないからである。
【００４２】
図２５は、圧縮率とエラーパケット復旧時間との間の関係を説明するための図である。図２５は、圧縮率の高い方式、低い方式のそれぞれにおいて、情報Ｄ，Ｅ，Ｎ，Ｏに対応するパケットにエラーが生じたため、情報Ｄを含むパケットの再送要求を行い、再送された該パケットに基づいてエラーパケットが復旧されるまでの所要時間を示している。
【００４３】
圧縮率の低い方式において、情報Ｄ，Ｅ，Ｎ，Ｏに対応するパケットは、それぞれパケット４，５，１６，１７であり、これら４つのパケットは、それぞれエラーパケットとなっている。さらに、各パケットは、該パケットに対応するＦＥＣパケットによって復旧することができない。ここで、各パケットに対応するＦＥＣパケットとは、図２１において各パケットと同じ行または列に位置するＦＥＣパケットのことである。例えば、パケット４に対応するＦＥＣパケットはパケット６とパケット２２、パケット５に対応するＦＥＣパケットはパケット６とパケット２３、パケット１６に対応するＦＥＣパケットはパケット１８とパケット２２、パケット１７に対応するＦＥＣパケットはパケット１８とパケット２３である。
【００４４】
圧縮率の高い方式において、情報Ｄ，Ｅ，Ｎ，Ｏに対応するパケットは、それぞれパケット１０２，１０３，１０８，１０９であり、これら４つのパケットは、それぞれエラーパケットとなっている。さらに、圧縮率の低い方式と同様、各パケットは、該パケットに対応するＦＥＣパケットによって復旧することができない。また、例えば、パケット１０２に対応するＦＥＣパケットはパケット１０６とパケット１２０、パケット１０３に対応するＦＥＣパケットはパケット１０６とパケット１２１、パケット１０８に対応するＦＥＣパケットはパケット１１２とパケット１２０、パケット１０９に対応するＦＥＣパケットはパケット１１２とパケット１２１である。
【００４５】
Pro-MPEG FECによるデータ伝送においては、デコーダが１つのＦＥＣ復旧単位の映像パケットに対応するＦＥＣパケットを全て受信すると、該デコーダはＦＥＣパケットによって復旧できなかったエラーパケットが存在しているか判定する。未復旧のエラーパケットがまだ存在している場合、デコーダは前記エラーパケットの再送が必要と判断し、該パケットの再送要求を行う。
【００４６】
前述のように、映像データを受信しながら同時に再生を行うストリーミングのサービスにおいては、視聴者側の再生を妨げないために、デコーダは再生のタイミングに合わせて正常に復号された映像を表示装置へ出力する必要がある。デコーダが受信したエラーパケットは、該パケットが受信されてから一定時間が経過した場合、該パケットが復旧されたか否かに関わらず、自動的に復号され、表示装置へ出力される。
【００４７】
そのため、図２５において、圧縮率の低い方式でパケットを伝送したとき、エラーパケットをＦＥＣパケットによって復旧できる場合は、デコーダは各エラーパケットに対応するＦＥＣパケットを早く受信することができる。また、エラーパケットをＦＥＣパケットによって復旧できない場合も、デコーダはパケット２３を受信した時点でパケット４（もしくはパケット５，１６，１７のいずれか）の再送が必要かどうか判定できるので、再送要求を早く行うことができる。したがって、エラーパケットであるパケット４を受信してから該パケットが復旧するまでに要する時間が短いので、該パケットが復旧される前に自動的に復号されてしまう可能性が低い。
【００４８】
それに対して、圧縮率の高い方式でパケットを伝送したときエラーパケットをＦＥＣパケットによって復旧できる場合は、デコーダは各エラーパケットに対応するＦＥＣパケットを受信するまでに多くの時間を要する。また、エラーパケットをＦＥＣパケットによって復旧できない場合も、デコーダはパケット１２３を受信した時点でパケット１０２（もしくはパケット１０３，１０８，１０９のいずれか）再送が必要かどうか判定するので、再送要求を行うタイミングが遅くなる。したがって、エラーパケットであるパケット１０２を受信してから該パケットが復旧するまでの時間が長くなるので、該パケットが復旧される前に自動的に復号されてしまう可能性が高い。
【００４９】
近年、画像圧縮技術の向上によって、従来の画像圧縮技術であるMPEG-4よりも圧縮率の高いH.264が広く用いられるようになりつつある。そのため、高い圧縮率で符号化されたパケットをPro-MPEG FECを利用して伝送するパケット伝送において、エラーパケットを受信してから該パケットが復旧されるまでに要する時間を短縮する必要がある。ただし、現在は圧縮率の低いMPEG-4も併用して利用されることが多いことから、MPEG-4との互換性を確保するために、ＦＥＣ復旧単位、パケット復旧制限時間等の設定は変更しないことが望ましい。さらに、パケット復旧制限時間が長いと、映像表示までの時間が長くなり、映像配信のリアルタイム性が損なわれるので、映像の再生をリアルタイムに行う観点からすれば、パケット復旧制限時間は短いほど望ましい。
【００５０】
そこで、本発明では、エラーパケットが未復旧のままで復号されることを抑制するため、再送要求を送信するタイミングを早めることを目的の一側面とする。
【課題を解決するための手段】
【００５１】
上記の目的を達成するために、本発明にかかるデータ受信方法及び装置は、元のデータが分割されることによって生成され、かつ、該元のデータから分割された１以上の他のパケットを含むグループに属するパケットを、エラー訂正用パケットとともに受信するデコーダにおいて、送信機から第一のパケットを受信したとき、該第一のパケットにエラーが存在するか判定し、前記第一のパケットにエラーが存在していると判定されたとき、該第一のパケットが属するグループに存在するエラーパケットの数を参照し、全てのエラー訂正用パケットを受信しても該第一のパケットのエラーを復旧できないか判定し、全手のエラー訂正用パケットを受信しても前記第一のパケットのエラーを復旧できないと判定されたとき、前記送信機に該第一のパケットの再送を要求し、前記送信機から再送された前記第一のパケットを受信する。
【発明の効果】
【００５２】
本発明により、再送要求を送信するタイミングを早めることで、エラーパケットが未復旧の状態のままで復号されることを抑制できる。
【図面の簡単な説明】
【００５３】
【図１】本発明におけるエラー訂正の流れを説明するための図。
【図２】本発明にかかる映像伝送システムの全体構成を説明するための図。
【図３】本発明におけるエンコーダ１の機能を表す機能ブロック図。
【図４】本発明における映像パケットとＦＥＣパケットとの対応関係を表す図。
【図５】パケットの送信順序を説明するための図。
【図６】本発明におけるエンコーダ１のハードウェア構成の一例を表すブロック図。
【図７】本発明におけるデコーダ２の機能を表す機能ブロック図。
【図８】本発明におけるデコーダ２のハードウェア構成の一例を表すブロック図。
【図９】本発明にかかる受信データ確認処理の手順の一例を表すフローチャート。
【図１０】データエラー情報を記入するためのテーブルの例。
【図１１】データエラー情報更新処理の手順を表すフローチャート。
【図１２】映像パケット１受信時のデータエラー情報の例。
【図１３】映像パケット２受信時のデータエラー情報の例。
【図１４】映像パケット３受信時のデータエラー情報の例。
【図１５】映像パケット４受信時のデータエラー情報の例。
【図１６】映像パケット８受信時のデータエラー情報の例。
【図１７】映像パケット９受信時のデータエラー情報の例。
【図１８】再送要求検索処理の手順を表すフローチャート。
【図１９】再送要求時のデータエラー情報更新処理の手順を表すフローチャート。
【図２０】Pro-MPEG FECにおける映像パケットとＦＥＣパケットとの対応関係を説明するための図。
【図２１】デコーダが映像パケット３を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図。
【図２２】デコーダがＦＥＣパケット２を受信したときの映像パケットとＦＥＣパケットとの対応関係を説明するための図。
【図２３】圧縮率とパケット数及び各パケットに含まれる情報量との間の関係を説明するための図。
【図２４】圧縮率と伝送レートとの間の関係を説明するための図。
【図２５】圧縮率とエラーパケット復旧時間との間の関係を説明するための図。
【発明を実施するための形態】
【００５４】
以下、図面に基づいて本発明の実施の形態を説明する。
【００５５】
図１乃至図１７をもとに、本発明の実施形態について説明する。図１は本発明におけるエラー訂正の流れを説明するための図である。図１において、従来技術ではパケット１２３を受信してから（同一ＦＥＣ復旧単位の映像パケットと、該パケットに対応するＦＥＣパケットをすべて受信してから）残存するエラーパケットの有無を判定し、再送要求を行っていた。
【００５６】
それに対して本発明では、デコーダは、各々の映像パケットを受信したタイミングで、該パケットがエラーパケットであり、かつ、全てのＦＥＣパケットを受信しても該エラーの復旧が不可能か判定する。そして、あるパケット（パケット２０９）について、該パケットがエラーパケットであり、かつ、全てのＦＥＣパケットを受信しても該エラーを復旧できないと判定された場合、デコーダはその時点で該パケットの再送要求を行う。これにより、各エラーパケットの復旧処理を行うタイミングを早くすることができるので、各エラーパケットを受信してから復旧されるまでの時間を短縮することができる。
【００５７】
図２は本発明にかかる映像伝送システムの全体構成を説明するための図である。本発明における映像伝送システムは、エンコーダ１、デコーダ２、ネットワーク３によって構成され、エンコーダ１にはカメラ４が、デコーダ２にはモニタ５が接続されている。
【００５８】
本発明では、送信端末（以下エンコーダ１）は撮像装置（以下カメラ４）によって取得された映像パケットを符号化し、受信端末（以下デコーダ２）にネットワーク３を通じて伝送する。そして、デコーダ２は受信した映像パケットを復号化し、モニタ５等の出力装置に出力する。
【００５９】
図３は本発明におけるエンコーダ１の機能を表す機能ブロック図である。図３において、エンコーダ１は、送信部１０、映像入力処理部１１、符号化処理部１２、FEC処理部１３、記憶部１４、再送要求解析部１５、受信部１６を含む。
【００６０】
映像入力処理部１１は、カメラ４等によって取得された映像を入力する機能を有する。符号化処理部１２は、映像入力処理部１１に入力された映像をパケット符号化し、記憶部１４に格納する機能を有する。ここで、各映像パケットには通し番号が付されており、以降の説明を簡単にするため、本発明では映像パケット１から映像パケット３０で表される、合計３０個の映像パケットが生成されたものとして説明を行う。
【００６１】
FEC処理部１３は、生成された映像パケットのうち、予め指定された数のパケット（例えば１５パケット）を１つのFEC復旧単位とし、各FEC復旧単位において、Pro-MPEG FEC符号を生成し、記憶部１４に格納する機能を有する。つまり、先述の例を用いた場合、映像パケット１から映像パケット１５までが同じFEC復旧単位に属しており、後述するＦＥＣパケット１からＦＥＣパケット８までがそれらのパケットのエラー復旧に対応している。同様に、映像パケット１６から映像パケット３０までが同じＦＥＣ復旧単位に属しており、後述するＦＥＣパケット９からＦＥＣパケット１６までがそれらのパケットのエラー復旧に対応している。
【００６２】
図４は本発明における２次元ＦＥＣパケットデータの挿入例を表す図である。図４において、すべての映像パケットは、横ＦＥＣグループと縦ＦＥＣグループに同時に属している。また、各ＦＥＣパケットにはそれぞれ通し番号が付されている。各ＦＥＣパケットは、自分と同じ行（または列）の映像パケットのうち、１つのパケットに生じたエラーを訂正する。図５の例では、横ＦＥＣパケット２は映像パケット６から映像パケット１０までの５パケットのうち、いずれか１パケットのエラーを訂正し、ＦＥＣパケット５は映像パケット２、７、１２の３パケットのうち、いずれか１パケットのエラーを訂正する。
【００６３】
図３の説明に戻って、記憶部１４は、生成された映像パケット及びＦＥＣパケットを記憶する機能を有する。記憶部１４に格納された映像パケット及びＦＥＣパケットは、そのデータの送信動作が終わってからも、デコーダからの再送要求に備えて保持される。
【００６４】
送信部１０は、各映像パケット及びＦＥＣパケットに付された通し番号に基づいて、記憶部１４に格納されている映像パケット及びＦＥＣパケットを既定の順序で送信する機能を有する。
【００６５】
図５は、各パケット及びＦＥＣパケットの送信順序の一例を表す図である。例えば先述の例では、送信部１０は、図５に示すように映像パケット１…５、ＦＥＣパケット１、映像パケット６…１０、ＦＥＣパケット２、映像パケット１１…１５、ＦＥＣパケット３、ＦＥＣパケット４…８の順でパケットの送信を行う。
【００６６】
説明のため、以下では映像パケット及びＦＥＣパケットの送信を１パケットずつ行う場合について記述するが、送信動作は必ずしも１パケットずつ行わなければならないわけではない。例えば複数のパケットを同時に送信してもよいし、デコーダの記憶部の空きに応じて、同時に送るパケット数を変動させてもよい。
【００６７】
図３の説明に戻って、送信部１０は、再送要求解析部１５から映像パケットまたはＦＥＣパケットの再送要求があったことを伝えられた場合、該パケットを再送する機能を有する。
【００６８】
さらに、受信部１６は、デコーダから送られてくる再送要求を受信する機能を有する。再送要求解析部１５は、パケット再送要求の内容を解析し、送信部１０に再送要求の存在を知らせるとともに、どのパケットの再送が要求されているかを伝える機能を有する。
【００６９】
図６は本発明におけるエンコーダ１のハードウェア構成例を表すブロック図である。図６において、エンコーダ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１０２と、送信ポート１０３と、受信ポート１０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５と、入力ポート１０７とを有する。また、各構成部はバス１０６によってそれぞれ電気的に接続されている。
【００７０】
ここで、ＣＰＵ１０１は、エンコーダ１全体の制御をつかさどる演算部である。ＨＤＤ１０２には、エンコーダ１を動作させるためのプログラムと、該プログラムを動作させるために必要なデータとが記憶されている。さらに、ＨＤＤ１０２には、映像パケットとＦＥＣパケットとの対応関係を表す情報も記憶されている。送信ポート１０３、受信ポート１０４、入力ポート１０７は、それぞれエンコーダ１が他の装置との間でデータを送信、受信するためのインタフェースであり、ネットワーク３を介してデコーダ２と接続される。ＲＡＭ１０５は、ＣＰＵ１０１のワークエリアとして使用される記憶部である。
【００７１】
エンコーダ１は、具体的には、例えば図６に示したＲＡＭ１０５もしくはＨＤＤ１０２によって記憶部１４の機能を実現する。エンコーダ１は、ＨＤＤ１０２に格納されたプログラムを読み取ったＣＰＵ１０１が、入力ポート１０７を介してカメラ４から映像を入力する処理を実行することで映像入力処理部１１の機能を実現する。
【００７２】
また、エンコーダ１は、例えば図６に示したＨＤＤ１０２に格納されたプログラムを読み取ったＣＰＵ１０１が、ＲＡＭ１０５もしくはＨＤＤ１０２に格納されたパケットを送信ポート１０３を介して送信する処理を実行することで、送信部１０の機能を実現する。エンコーダ１は、例えば図４に示したＨＤＤ１０２に格納されたプログラムを読み取ったＣＰＵ１０１が、受信ポート１０４を介して再送要求を受信する処理を実行することで、受信部１６の機能を実現する。
【００７３】
さらに、エンコーダ１は、例えば図６に示したＨＤＤ１０２に格納されたプログラムをＣＰＵ１０１が実行することにより、符号化処理部１２、ＦＥＣ処理部１３、再送要求解析部１５の機能を実現する。なお、前述のように、ＣＰＵ１０１はその処理過程において、ＲＡＭ１０５をワークエリアとして利用する。
【００７４】
図７は本発明におけるデコーダ２の機能を表す機能ブロック図である。図７において、デコーダ２は、受信部２０、記憶部２１、エラー復旧処理部２２、復号化処理部２３、映像出力処理部２４、再送要求解析部２５、送信部２６を含む。
【００７５】
受信部２０は、エンコーダ１から送られてきた映像パケット及びＦＥＣパケットを受信し、受信した映像パケット及びＦＥＣパケットを記憶部２１に格納する機能を有する。記憶部２１は、受信部２０が受信したパケットを記憶する機能を有する。
【００７６】
エラー復旧処理部２２は、後述のデータエラー情報を保持しており、該データエラー情報に基づいて、記憶部２１に格納された映像パケット及びＦＥＣパケットに対し、後述の受信データ確認処理を行う機能を有する。エラー復旧処理部２２は、受信データ確認処理によって、２次元ＦＥＣによるエラー復旧が不可能なパケットの存在を認識した時点で、該パケットの再送要求が必要であることを再送要求解析部２５に示す機能を有する。また、エラー復旧処理部２２は、受信データ確認処理と並行して、FECによる復旧が可能なエラーパケットがあった場合、順次そのパケットを復旧し、復号化処理部２３に送る機能を有する。さらに、エラー復旧処理部２２は、各パケットを受信してからの経過時間をカウントし、受信後一定時間が経過しても復旧されていないエラーパケットを、復号化処理部２３に送る機能を有する。
【００７７】
復号化処理部２３は、エラー復旧処理部２２から送られた映像パケットを順次復号化する機能を、映像出力処理部２４は映像パケットをモニタ５等の外部装置に出力する機能を、それぞれ有する。
【００７８】
再送要求解析部２５は、エラー復旧処理部からの情報によって、再送要求が必要なパケットの有無を確認する。再送要求が必要なパケットが存在している場合、送信部２６に該パケットの再送要求をエンコーダへ送信させる機能を有する。さらに、再送要求解析部２５は、再送要求を送信後、エンコーダへ該パケットの再送要求を行ったことをエラー復旧処理部２２に示す機能を有する。
【００７９】
図８は本発明におけるデコーダ２のハードウェア構成例を表すブロック図である。図８において、デコーダ２は、ＣＰＵ２０１と、ＨＤＤ２０２と、送信ポート２０３と、受信ポート２０４と、ＲＡＭ２０５と、出力ポート２０７とを有する。また、各構成部はバス２０６によってそれぞれ電気的に接続されている。
【００８０】
ここで、ＣＰＵ２０１は、デコーダ２全体の制御をつかさどる演算部である。ＨＤＤ２０２には、デコーダ２を動作させるためのプログラムと、該プログラムを動作させるために必要なデータと、後述のデータエラー情報を記入するためのテーブル情報とが記憶されている。送信ポート２０３、受信ポート２０４、出力ポート２０７は、それぞれデコーダ２が他の装置との間でデータを送信、受信するためのインタフェースであり、ネットワーク３を介してエンコーダ１と接続される。ＲＡＭ２０５は、ＣＰＵ２０１のワークエリアとして使用される記憶部である。
【００８１】
デコーダ２は、具体的には、例えば図８に示したＲＡＭ２０５もしくはＨＤＤ２０２によって記憶部２１の機能を実現する。デコーダ２は、ＨＤＤ２０２に格納されたプログラムを読み取ったＣＰＵ２０１が、受信ポート２０４を介してパケットを受信する処理を実行することで受信部２０の機能を実現する。
【００８２】
また、デコーダ２は、例えば図８に示したＨＤＤ２０２に格納されたプログラムを読み取ったＣＰＵ２０１が、送信ポート２０３を介して再送要求を送信する処理を実行することで、送信部２６の機能を実現する。デコーダ２は、例えばＨＤＤ２０２に格納されたプログラムを読み取ったＣＰＵ２０１が、出力ポート２０７を介してモニタ５へ映像を出力する処理を実行することで、映像出力処理部２４の機能を実現する。
【００８３】
さらに、デコーダ２は、例えば図８に示したＨＤＤ２０２に格納されたプログラムを読み取ったＣＰＵ２０１が、ＨＤＤ２０２に格納されたテーブル情報を参照して、該プログラムに基づいた処理を実行することによりエラー復旧処理部２２の機能を実現する。そして、デコーダ２は、例えばＨＤＤ２０２に格納されたプログラムをＣＰＵ２０１が実行することにより、復号化処理部２３、再送要求解析部２５の機能を実現する。なお、前述のように、ＣＰＵ２０１はその処理過程において、ＲＡＭ２０５をワークエリアとして利用する。
【００８４】
次に、本発明における受信データ確認処理について説明する。具体例として、以下図５に示す計２３パケットを、図５に示す順番でデコーダに送信したところ、映像パケット３、４，７、８、９がエラーパケットであった場合について記述する。これら５つのエラーパケットのうち、映像パケット７は必要なＦＥＣパケットが揃い次第、ＦＥＣパケットによる復旧が可能であるが、残る４パケットはＦＥＣパケットによる復旧が不可能である（図２２（ｃ）（ｄ）参照）。
【００８５】
上述したように、従来技術では、全ての映像パケット及びＦＥＣパケットを受信後に、再送要求の必要なパケットを検索し、再送要求の必要なパケットが存在する場合は、該パケットの再送要求を行うことで、エラーパケットの復旧を行う。前記具体例で言えば、前記映像パケット３，４，８，９のうちどれか１つのパケットの再送要求を行えば、残る３つのエラーパケットもＦＥＣによるエラー復旧が可能になる。
【００８６】
しかし、本発明のように、エラーパケットを受信したタイミングで該パケットの再送要求が必要か否か判定する場合、映像パケット３，４，８受信時では、該データの再送要求を行うことができない。なぜならこの段階では、映像パケット９がエラーであることが確定しておらず、映像パケット９がエラーでなければ、前記３つのエラーパケットも、後から送られてくるＦＥＣパケットによって復旧することができる（図２２（ａ）（ｂ）参照）。そのため、この時点で再送要求を行うと、本来必要ないパケットの再送によって、次のデータ復旧単位のパケット送信が遅れる可能性があるからである。
【００８７】
したがって、本発明における受信データ確認処理では、ＦＥＣパケットによる復旧が不可能であることが確定するエラーパケットである、映像パケット９の受信を判定し、該パケットの再送要求を行う必要がある。
【００８８】
図９は本発明にかかる受信データ確認処理の手順の一例を表すフローチャートである。まず、受信部２０が、エンコーダ１から送信された映像パケットまたはＦＥＣパケットを受信（ステップＳ１０）したら、エラー復旧処理部２２は、受信したパケットが、ひとつ前に受信したパケットと同じＦＥＣ復旧単位に属しているか判定を行う（ステップＳ２０）。受信したパケットが、ひとつ前に受信したパケットと異なるＦＥＣ復旧単位に属していた場合、エラー復旧処理部２２は、後述するデータエラー情報を初期化する（ステップＳ３０）。
【００８９】
次に、エラー復旧処理部２２は、受信パケットにビットの食い違いが発生している、または受信パケットにビットの抜けが発生しているか（以下ビットの食い違いと抜けを総称してエラーと呼ぶこととする）判定を行う（ステップＳ４０）。具体的には、受信したパケットの内容と、該パケット内に含まれるパリティ符号等のエラー検出符号の内容とが食い違っていた場合、エラー復旧処理部２２は、該パケットをエラーパケットと判断する。
【００９０】
受信パケットにエラーが発生していないと判定された場合、エラー復旧処理部２２は、次に受信した受信パケットについて、ステップＳ１０からの処理を繰り返す。受信パケットにエラーが発生していると判定された場合、エラー復旧処理部２２は、該エラーパケットについて、後述するエラー受信時のデータエラー情報更新処理を行う（ステップＳ５０）。
【００９１】
データエラー情報更新処理完了後、エラー復旧処理部２２は、前記エラーパケットについて、後述する再送要求検索処理を行う（ステップＳ６０）。再送要求検索処理完了後、エラー復旧処理部２２は、前記エラーパケットの再送の必要の有無を示す再送要求フラグの値の判定を行う（ステップＳ７０）。
【００９２】
前記エラーパケットの再送要求フラグの値が、該パケットの再送の必要がないことを示している場合、エラー復旧処理部２２は、次の受信パケットについてステップＳ１０からの処理を繰り返す。前記エラーパケットの再送要求フラグの値が、該パケットの再送の必要があることを示している場合、エラー復旧処理部２２は、後述する再送要求時のデータエラー情報更新処理を行う（ステップＳ８０）。その後、エラー復旧処理部２２は、次の受信パケットについてステップＳ１０からの処理を繰り返す。なお、以降の説明では、前記エラーパケットの再送が必要であるとき、再送要求フラグの値が１に設定され、そうでないときは０に設定されるものとして説明するが、実際には該エラーパケットの再送が必要か否かを一意に識別可能であれば、他の値をとっても構わない。
【００９３】
ここで、本発明におけるデータエラー情報更新処理について説明する。本発明において、エラー復旧処理部２２は、データエラー情報を記入するためのテーブルを所持している。図１０は、データエラー情報を記入するためのテーブルの例である。データエラー情報は、エラーフラグ、再送要求フラグ、Ｘ方向エラーカウンタ、Ｙ方向エラーカウンタを含む情報であり、各パケットのエラーに関する情報を表す。
【００９４】
また、前記テーブルは、各パケットのデータエラー情報を記入するための項目が、各映像パケットと、各ＦＥＣパケットとの対応関係に応じて配置されており、エラー復旧処理部２２は、データエラー情報更新処理によって各パケットのデータエラー情報を記入する。前記テーブルは任意の形態をとることができるので、システム管理者は予めエンコーダ１とデコーダ２に前記対応関係についての情報を入手し、エンコーダ１は該情報に基づいてＦＥＣパケットを生成して映像パケット間の所定の位置に挿入し、デコーダ２へ送信する。
【００９５】
なお、本発明の説明における「Ｘ方向」「Ｙ方向」は、それぞれ「横ＦＥＣグループ」「縦ＦＥＣグループ」に対応している。つまり、例えばあるパケットに対応するＸ方向エラーカウンタの値が「２」の場合、該パケットが属している横ＦＥＣグループ内に、エラーパケットが２つ存在していることを示す。
【００９６】
エラーフラグは、自身のデータのエラー有無を示し、自身がエラーパケットである場合、値が１に設定され、そうでない場合は０に設定される。なお、エラーフラグは、前記エラー有無を一意に識別可能であれば、他の値をとっても構わない。再送要求フラグは、自身が再送要求の必要なパケットであるか否かを示し、前述のように、該パケットの再送要求が必要な場合、値が１に設定され、そうでない場合は０に設定される。
【００９７】
Ｘ方向エラーカウンタは、自身を含め、Ｘ方向（行方向）に存在するエラーパケットの数を示す。例えば、映像パケット３、４にエラーが存在し、映像パケット１、２、５はエラーパケットでない、あるいは未受信である場合、映像パケット１〜５に対応するＸ方向エラーカウンタの値はいずれも「２」である。なお、Ｘ方向エラーカウンタは、各パケットについて、該パケットの属する横ＦＥＣグループ内に存在するエラーパケットの数を一意に識別可能であれば、他の値をとっても構わない。
【００９８】
Ｙ方向エラーカウンタは、自身を含め、Ｙ方向（列方向）に存在するエラーパケットの数を示す。例えば、映像パケット３、８にエラーが存在し、映像パケット１３はエラーパケットではない、あるいは未受信であるする場合、映像パケット３、８、１３に対応するＹ方向エラーカウンタの値はいずれも「２」である。なお、Ｙ方向エラーカウンタは、各パケットについて、該パケットの属する縦ＦＥＣグループ内に存在するエラーパケットの数を一意に識別可能であれば、他の値をとっても構わない。
【００９９】
また、図１０の各データ内の数字は、左からそれぞれエラーフラグ、再送要求フラグ、Ｘ方向エラーカウンタ、Ｙ方向エラーカウンタの値を表す。なお、図面においてはエラーフラグをＡ、再送要求フラグをＢ、Ｘ方向エラーカウンタをＣ、Ｙ方向エラーカウンタをＤと、それぞれ表記することがある。
【０１００】
図１１はデータエラー情報更新処理の手順を表すフローチャートである。まず、エラー復旧処理部２２は、受信したエラーパケットの種別が映像パケットであるか、ＦＥＣパケットであるかを判定する（ステップＳ５１）。受信したエラーパケットが映像パケットであると判定された場合、エラー復旧処理部２２は、該データに対応するデータエラー情報の値に１を設定する（ステップＳ５２）。例えば、デコーダが映像パケット１…３を受信し、そのうち映像パケット３がエラーパケットであった場合、各映像パケット受信時のデータエラー情報はそれぞれ図１２、図１３、図１４のように表される。
【０１０１】
ステップＳ５２の処理を行った後、エラー復旧処理部２２は、該データに対応するデータエラー情報のＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値をインクリメントする（ステップＳ５３）。エラー復旧処理部２２は、さらに該データと同じ横ＦＥＣグループに属する映像パケットのＸ方向エラーカウンタの値と、該データと同じ縦ＦＥＣグループに属する映像パケットのＹ方向エラーカウンタの値とをインクリメントして（ステップＳ５４）処理を終了する。したがって、例えばエラー映像パケット３を受信した場合、映像パケット１…５のＸ方向エラーカウンタの値と、映像パケット８、１３のＹ方向エラーカウンタの値がインクリメントされる。
【０１０２】
受信したエラーパケットがＦＥＣパケットであった場合、エラー復旧処理部２２は、該エラーＦＥＣパケットの方向を判定する（ステップＳ５５）。なお、ＦＥＣパケットの方向は、該ＦＥＣパケットが属するＦＥＣグループに対応しているものとする。例えば横ＦＥＣグループに属しているＦＥＣパケットの場合、該データのＦＥＣの方向は横（Ｘ方向）であり、縦ＦＥＣグループに属しているＦＥＣパケットの場合、該データのＦＥＣの方向は縦（Ｙ方向）である。また、Ｘ方向、Ｙ方向とも、時間が経過する方向、つまり、データに付された通し番号が増加する方向を正方向とする。
【０１０３】
エラーＦＥＣパケットの方向が縦方向（Ｙ方向）の場合、エラー復旧処理部２２は、該データと、該データのＹ方向にあるデータに対応するＹ方向エラーカウンタの値をインクリメントし（ステップＳ５６）、処理を終了する。例えば、ＦＥＣパケット６がエラーパケットであった場合、映像パケット３、８、１３のＹ方向エラーカウンタの値がインクリメントされる。
【０１０４】
エラーＦＥＣパケットの方向が横方向（Ｘ方向）の場合、エラー復旧処理部２２は、該データと、該データのＹ方向にあるデータに対応するＸ方向エラーカウンタの値をインクリメントし（ステップＳ５７）、処理を終了する。例えば、ＦＥＣパケット３がエラーパケットであった場合、映像パケット１１…１５のＸ方向エラーカウンタの値がインクリメントされる。
【０１０５】
次に、本発明における再送要求検索処理について説明する。再送要求検索処理は、デコーダ２が第一のエラーパケットを受信したとき、該エラーパケットの再送が必要か否か判定し、該エラーパケットの再送が必要であると判定された場合、該エラーパケットの再送要求フラグを１に設定する。
【０１０６】
なお、以下具体例として、エラー映像パケット４、８、９それぞれを受信したときの再送要求検索処理における処理の流れの説明を交えて記載するものとする。図１５、図１６、図１７はそれぞれ映像パケット４、８、９受信時におけるデータエラー情報を表している。
【０１０７】
ただし、未受信パケットのエラー情報は考慮できないため、例えば映像パケット４受信時のデータエラー情報では、映像パケット３のエラー情報は記載されているが、映像パケット７…９のエラー情報は含まれていない。
【０１０８】
図１８は再送要求検索処理の手順を表すフローチャートである。まず、エラー復旧処理部２２は、処理対象である第一のエラーパケットに対応するＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値がともに２以上であるか判定する（ステップＳ６１）。Ｘ方向エラーカウンタ、Ｙ方向エラーカウンタの値がともに２以上である場合は、他のエラーパケットを先に復旧しない限り該エラーパケットをＦＥＣパケットによって復旧できないと判断し、次に述べるステップＳ６２に進む。そうでない場合は、処理を終了する。
【０１０９】
例えば、エラー映像パケット４受信時では、該エラーパケットに対応するＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値がともに２以上ではないので、ＦＥＣによるエラー復旧ができる可能性があると判断し、処理を終了する。つまり、エラー復旧処理部２２は、この時点での映像パケット４の再送要求は不要と判断する。しかし、エラー映像パケット８、Ｄ９受信時では、どちらもＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値がともに２以上なので、他のエラーパケットを先に復旧しない限り、ＦＥＣパケットによるエラー復旧ができないと判断し、次の判定に進む。
【０１１０】
ステップＳ６１において「Ｙｅｓ」判定であった場合、エラー復旧処理部２２は、すでに受信済みであり、かつ第一のエラーパケットと共通の横ＦＥＣグループに属しているデータの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるパケットの有無を判定する（ステップＳ６２）。条件を満たす第二のエラーパケットが存在した場合、エラー復旧処理部２２は、第二のエラーパケットと共通の縦ＦＥＣグループに属する他のエラーパケットを先に復旧しない限り、第二のエラーパケットをＦＥＣパケットによって復旧できないと判断し、次に述べるステップＳ６３に進む。そうでない場合は、処理を終了する。
【０１１１】
例えば、エラー映像パケット８受信時では、エラーパケット８と共通の横ＦＥＣグループに属している受信済みパケットに対応するデータエラー情報の中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるものが存在しないため、処理を終了する。つまり、エラー復旧処理部２２は、該エラーパケットは、ＦＥＣパケットによるエラー復旧ができる可能性があり、再送要求は不要と判断する。しかし、エラー映像パケット９受信時では、エラーパケット９と共通の横ＦＥＣグループに属している受信済みデータの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるデータ（映像パケット８）が存在する。そのため、エラー復旧処理部２２は、エラーパケット８も、他のエラーパケットを先に復旧しない限り、ＦＥＣパケットによって復旧ができないと判断し、次の判定に進む。
【０１１２】
ステップＳ６２において「Ｙｅｓ」判定であった場合、エラー復旧処理部２２は、第二のエラーパケットと共通の縦ＦＥＣグループに属している受信済みパケットに対応するデータの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるデータがあるか判定する（ステップＳ６３）。条件を満たす第三のエラーパケットが存在した場合、エラー復旧処理部２２は、第三のエラーパケットと共通の横ＦＥＣグループに属する他のエラーパケットを先に復旧しない限り、第三のエラーパケットをＦＥＣパケットによって復旧できないと判断し、次に述べるステップＳ６４に進む。そうでない場合は、処理を終了する。
【０１１３】
例えば、エラー映像パケット９受信時では、エラーパケット８と共通の縦ＦＥＣグループに属している受信済みデータの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるデータ（映像パケット３）が存在する。そのため、エラー復旧処理部２２は、エラーパケット３も、他のエラーパケットを先に復旧しない限り、ＦＥＣパケットによって復旧ができないと判断し、次の判定に進む。
【０１１４】
ステップＳ６３において「Ｙｅｓ」判定であった場合、エラー復旧処理部２２は、第三のエラーパケットと共通の横ＦＥＣグループに属している受信済みパケットに対応するデータの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるデータがあるか判定する（ステップＳ６４）。条件を満たす第四のエラーパケットが存在した場合、エラー復旧処理部２２は、第四のエラーパケットと共通の縦ＦＥＣグループに属する他のエラーパケットを先に復旧しない限り、第三のエラーパケットをＦＥＣパケットによって復旧できないと判断し、次に述べるステップＳ６５に進む。そうでない場合は、処理を終了する。
【０１１５】
例えば、エラー映像パケット９受信時では、エラーパケット３と共通の横ＦＥＣグループに属している受信済みパケットの中に、Ｘ方向、Ｙ方向エラーカウンタの値がともに２以上であるパケット（映像パケット４）が存在する。そのため、エラー復旧処理部２２は、エラーパケット４も、他のエラーパケットを先に復旧しない限り、ＦＥＣパケットによって復旧ができないと判断し、次の判定に進む。
【０１１６】
ステップＳ６４において「Ｙｅｓ」判定であった場合、エラー復旧処理部２２は、第四のエラーパケットと共通の縦ＦＥＣグループに属している受信済みパケットの中に、第一のエラーパケットが存在するか判定する（ステップＳ６５）。条件を満たした場合、エラー復旧処理部２３は、未受信のＦＥＣパケットをすべて受信しても第一のエラーパケットを復旧することができないので、該データの再送を要求する必要があると判断し、次に述べるステップＳ６６に進む。そうでない場合は、処理を終了する。
【０１１７】
例えば、エラー映像パケット９受信時では、エラーパケット４と共通の横ＦＥＣグループに属している受信済みパケットの中に、エラーパケット９が存在するため、映像パケット９の再送が必要であると判断し、次の判定に進む。
【０１１８】
ステップＳ６５において「Ｙｅｓ」判定であった場合、第一のエラーパケットの再送が必要であるため、エラー復旧処理部２２は、該パケットに対応する再送要求フラグの値に１を設定し（ステップＳ６６）、該パケットデータの再送要求フラグが成立する。
【０１１９】
例えば、エラー映像パケット９受信時では、映像パケット９の再送が必要であるため、エラー復旧処理部２２は、映像パケット９の再送要求フラグの値に１を設定し、再送要求フラグが成立する。再送要求によって映像パケット９が再送されると、ＦＥＣパケットによって映像パケット３、４、８も修正される。
【０１２０】
このように、上記手順に基づいて再送要求検索処理を行うことにより、再送要求の必要がない（該データ受信後のデータ受信状況によっては、ＦＥＣパケットによるエラー復旧の可能性が残されている）パケット（上記例では、映像パケット４、８）を受信したときは再送要求フラグを成立させず、以降の受信状況に関わらずＦＥＣパケットによるエラー復旧が不可能なパケット（上記例では、映像パケット９）を受信したときのみ、該パケットに再送要求フラグを成立させることが可能である。
【０１２１】
次に、本発明における再送要求時のデータエラー情報更新処理について説明する。あるエラーパケットについて再送要求を行うと、該エラーパケットは正しく再送されるとみなせるので、前記テーブルに記録されたデータエラー情報と実際の状況との間にずれが生じてしまう。したがって、以降の受信パケットについて正確な受信データ確認処理を行うためには、再送要求のたびに該テーブルの内容を更新する必要がある。
【０１２２】
図１９は再送要求時のデータエラー情報更新処理の手順を表すフローチャートである。まず、再送要求解析部２５は、送信部２６によって再送要求フラグが成立したパケット（以下、再送対象パケットと呼ぶ）の再送要求が行われたことを確認したら、該パケットの行ったことをデータ復旧処理部２２に知らせる（ステップＳ７１）。再送対象パケットの再送要求が行われたことを認識したデータ復旧処理部２２は、再送対象パケットに対応するエラーフラグ、再送要求フラグの値を０に戻す（ステップＳ７２）。
【０１２３】
次に、データ復旧処理部２２は、再送対象パケットの種別を判定する（ステップＳ７３）。該再送対象パケットが映像パケットであった場合は、該再送対象パケットに対応するＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値をデクリメントする（ステップＳ７４）。なお、デクリメントの結果がマイナスになる場合は０にする。例えば、再送対象パケットが映像パケット９であった場合、データ復旧処理部２２は、映像パケット９に対応するＸ方向エラーカウンタ、Ｙ方向エラーカウンタの値をデクリメントする。
【０１２４】
さらに、データ復旧処理部２２は、該パケットと共通の横ＦＥＣグループに属しているパケットに対応するＸ方向エラーカウンタの値、共通の縦ＦＥＣグループに属しているパケットに対応するＹ方向エラーカウンタの値をそれぞれデクリメントし（ステップＳ７５）、処理を終了する。ステップＳ７４同様、デクリメントの結果がマイナスになる場合は０にする。例えば、前記再送対象パケットが映像パケット９であった場合、データ復旧処理部２２は、映像パケット６…８、１０に対応するＸ方向エラーカウンタの値、映像パケット４、１４に対応するＹ方向エラーカウンタの値をそれぞれデクリメントする。
【０１２５】
再送対象データがＦＥＣパケットであった場合、データ復旧処理部２２は、該ＦＥＣパケットの方向を判定する（ステップＳ７６）。該パケットの方向が縦方向（Ｙ方向）の場合、データ復旧処理部２２は、該パケットと共通の縦ＦＥＣグループに属しているパケットに対応するＹ方向エラーカウンタの値をデクリメントし（ステップＳ７７）、処理を終了する。ステップＳ７４同様、デクリメントの結果がマイナスになる場合は０にする。例えば、再送対象パケットがＦＥＣパケット６であった場合、データ復旧処理部２２は、映像パケット３、８、１３に対応するＹ方向エラーカウンタの値をデクリメントする。
【０１２６】
前記再送対象ＦＥＣパケットの方向が横方向（Ｘ方向）の場合、データ復旧処理部２２は、該パケットと共通の横ＦＥＣグループに属しているパケットに対応するＸ方向エラーカウンタの値をデクリメントし（ステップＳ７８）、処理を終了する。ステップＳ７４同様、デクリメントの結果がマイナスになる場合は０にする。例えば、再送対象パケットがＦＥＣパケット３であった場合、データ復旧処理部２２は、映像パケット１１…１５に対応するＸ方向エラーカウンタの値をデクリメントする。
【０１２７】
以上説明したように、本発明にかかる映像伝送システムは、デコーダが、各パケットを受信したタイミングで、該パケットにエラーが存在するか判定し、該判定の結果が真である場合、全てのＦＥＣパケットを受信しても該パケットのエラーを復旧できないか判定し、該判定の結果が真である場合のみ、該パケットの再送要求を行う。これにより、各エラーパケットの復旧処理を開始するタイミングを早くすることができるので、各エラーパケットが復旧されるまでに要する時間を短縮し、エラーパケットが未復旧の状態のままで復号されることを防ぐことができる。
【０１２８】
なお、本発明は上記の実施形態に限定されることなく、発明の趣旨を損なわない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【０１２９】
１      エンコーダ
２      デコーダ
３      ネットワーク
４      カメラ
５      モニタ
１０    送信部
１１    映像入力処理部
１２    符号化処理部
１３    ＦＥＣ処理部
１４    記憶部
１５    再送要求解析部
１６    受信部
２０    受信部
２１    記憶部
２２    エラー復旧処理部
２３    復号化処理部
２４    映像出力処理部
２５    再送要求解析部
２６    送信部
１００  画像
１０１  ＣＰＵ
１０２  ＨＤＤ
１０３  送信ポート
１０４  受信ポート
１０５  ＲＡＭ
１０６  バス
１０７  入力ポート
２０１  ＣＰＵ
２０２  ＨＤＤ
２０３  送信ポート
２０４  受信ポート
２０５  ＲＡＭ
２０６  バス
２０７  出力ポート
【図１】
0005966502.tif 000002
【図２】
0005966502.tif 000003
【図３】
0005966502.tif 000004
【図４】
0005966502.tif 000005
【図５】
0005966502.tif 000006
【図６】
0005966502.tif 000007
【図７】
0005966502.tif 000008
【図８】
0005966502.tif 000009
【図９】
0005966502.tif 000010
【図１０】
0005966502.tif 000011
【図１１】
0005966502.tif 000012
【図１２】
0005966502.tif 000013
【図１３】
0005966502.tif 000014
【図１４】
0005966502.tif 000015
【図１５】
0005966502.tif 000016
【図１６】
0005966502.tif 000017
【図１７】
0005966502.tif 000018
【図１８】
0005966502.tif 000019
【図１９】
0005966502.tif 000020
【図２０】
0005966502.tif 000021
【図２１】
0005966502.tif 000022
【図２２】
0005966502.tif 000023
【図２３】
0005966502.tif 000024
【図２４】
0005966502.tif 000025
【図２５】
0005966502.tif 000026