(57)【要約】【課題】ＦＥＣエンコード／デコード方法、ＦＥＣデコード装置において、パケットの生成密度が時間的に可変する場合でもバースト状出力を回避すること。【解決手段】順次供給されたメディアパケットが有するペイロードそれぞれをバッファメモリに順次蓄え、蓄えられたペイロードの数が規定数に達したか、さもなければバッファメモリにペイロードが蓄え始め得たときからの時間が一定時間に達したかを検知し、ペイロードの数が規定数に達したと検知された場合には蓄えられた規定数のペイロードによりＦＥＣ演算を行ってＦＥＣのための第１の情報を生成し、バッファメモリにペイロードが蓄え始め得たときからの時間が一定時間に達したと検知された場合にはバッファメモリに蓄えられたペイロードを用いてＦＥＣ演算を行ってＦＥＣのための第２の情報を生成し、第１、第２の情報を該第１、第２の情報に対応するメディアパケットとともに出力する。【選択図】図５
2008011096.tif 000002
【特許請求の範囲】
【請求項１】
順次供給されたメディアパケットが有するペイロードそれぞれをバッファメモリに順次蓄え、
前記バッファメモリに蓄えられたペイロードの数が規定数に達したか、さもなければ前記バッファメモリにペイロードが蓄え始め得たときからの時間が一定時間に達したかを検知し、
前記バッファメモリに蓄えられたペイロードの数が前記規定数に達したと検知された場合に、前記バッファメモリに蓄えられた前記規定数のペイロードによりＦＥＣ演算を行って、ＦＥＣのための第１の情報を生成し、
前記バッファメモリにペイロードが蓄え始め得たときからの時間が前記一定時間に達したと検知された場合に、前記バッファメモリに蓄えられたペイロードを用いてＦＥＣ演算を行って、ＦＥＣのための第２の情報を生成し、
前記第１の情報を該第１の情報に対応する前記メディアパケットとともに出力し、
前記第２の情報を該第２の情報に対応する前記メディアパケットとともに出力すること
を特徴とするＦＥＣエンコード方法。
【請求項２】
さらに、前記第２の情報を生成するための前記ＦＥＣ演算に用いた、前記バッファメモリに蓄えられたペイロードの数の情報を前記第２の情報に付加することを特徴とする請求項１記載のＦＥＣエンコード方法。
【請求項３】
さらに、前記第２の情報が前記第１の情報とは異なる旨の情報を前記第２の情報に付加することを特徴とする請求項１記載のＦＥＣエンコード方法。
【請求項４】
前記第２の情報の生成が、前記バッファメモリに蓄えられたペイロードと前記規定数に達するまでパディングされたダミーのペイロードとを用いたＦＥＣ演算によることを特徴とする請求項１記載のＦＥＣエンコード方法。
【請求項５】
前記第１、第２の情報が、ともに、前記メディアパケットとは独立したＦＥＣパケットとして生成されることを特徴とする請求項１記載のＦＥＣエンコード方法。
【請求項６】
前記第１、第２の情報が、ともに、該第１、第２の情報それぞれに対応する前記メディアパケットに付加されることを特徴とする請求項１記載のＦＥＣエンコード方法。
【請求項７】
順次受け取られたメディアパケットが有するペイロードそれぞれをバッファメモリ内の第１の位置に順次蓄え、
一群の前記メディアパケットに付帯して受け取られたＦＥＣのための情報を前記バッファメモリ内の前記第１の位置とは異なる第２の位置に順次蓄え、
前記バッファメモリ内の前記第２の位置に蓄えられた前記ＦＥＣのための情報から、前記一群のメディアパケットのパケット数を検知し、
前記検知されたパケット数に相当の数のペイロードが前記バッファメモリ内の前記第１の位置に蓄えられるに従い、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生しているか否か検知し、
前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生している場合に、前記バッファメモリ内の前記第１の位置に蓄えられている残りのペイロードと前記第２の位置に蓄えられた前記ＦＥＣのための情報とを用いてＦＥＣ演算を行い前記ロスを回復させること
を特徴とするＦＥＣデコード方法。
【請求項８】
バッファメモリと、
順次受け取られたメディアパケットが有するペイロードそれぞれを前記バッファメモリ内の第１の位置に順次蓄える第１の制御部と、
一群の前記メディアパケットに付帯して受け取られたＦＥＣのための情報を前記バッファメモリ内の前記第１の位置とは異なる第２の位置に順次蓄える第２の制御部と、
前記バッファメモリ内の前記第２の位置に蓄えられた前記ＦＥＣのための情報から、前記一群のメディアパケットのパケット数を検知する第３の制御部と、
前記検知されたパケット数に相当の数のペイロードが前記バッファメモリ内の前記第１の位置に蓄えられるに従い、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生しているか否か検知する第４の制御部と、
前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生している場合に、前記バッファメモリ内の前記第１の位置に蓄えられている残りのペイロードと前記第２の位置に蓄えられた前記ＦＥＣのための情報とを用いてＦＥＣ演算を行い前記ロスを回復させる第５の制御部と
を具備することを特徴とするＦＥＣデコード装置。
【請求項９】
前記第５の制御部が、前記バッファメモリ内の前記第１の位置であって未だペイロードが蓄えられていない位置にダミーのペイロードをパディングし、前記ＦＥＣ演算を行うことを特徴とする請求項８記載のＦＥＣデコード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム情報をパケット送信したときに生じ得るパケットロスを回復させるためのＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置に係り、特に、パケットの供給密度が時間的に変化する場合に好適なＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置に関する。
【背景技術】
【０００２】
ＦＥＣ（forward error correction）は、映像・音声などのストリームデータをネットワークで送信するため生成したパケット（メディアパケット）が送信途上で一部ロスした場合に、これを受信側で回復させる手法として多用されている。
【０００３】
例えば、ＦＥＣを用いた情報送信では、一群のメディアパケットに対してロス回復仕様を設定しておき、これら一群のメディアパケットの情報を用いてＦＥＣ演算を行い、前記ロス回復能力に応じた数のＦＥＣパケットを生成する。より具体的には、エンコード側で例えば１００のメディアパケットに対して例えば２０のＦＥＣパケットが生成され、これらの両パケットがネットワークに出力される。
【０００４】
上記のＦＥＣパケットの生成は、メディアパケットが規定の数（上記例では１００）だけ供給されないと完全には終わらない。このため、ＦＥＣ演算に必要なメディアパケットが供給されるまでネットワークへの出力ができず、遅延が発生し得る。また、メディアパケットが一定の時間密度で供給される場合にはネットワーク上への出力も一定レートになるが、メディアパケットの供給密度が時間的に変動する場合には、密度が低いほど遅延が大きくなるため、ネットワークへの出力はもとのメディアパケットの間隔以上に間隔が乱れ、バースト状（塊状）のパケット出力になることがある。
【０００５】
メディアパケットの供給密度が時間的に変動する場合の具体例としては、ＶＢＲ（可変ビットレート）でエンコードされた映像・音声のストリームの場合や、ディジタル放送ソフトをネットワークで再送信するときにネットワーク上の負担軽減のため冗長なデータの部分を取り除いている場合（例えばＭＰＥＧ２−ＴＳのｎｕｌｌ抜きの場合）などが挙げられる。
【０００６】
これらはともにネットワーク上の平均帯域を抑制する効果があるが、上記のようなＦＥＣを使用する場合には、受信側でバースト状のパケットを受け取るため、バッファメモリにおいてオーバーフローやアンダーフローが発生しやすくなる。オーバーフローやアンダーフローが発生すると映像・音声は破綻する。これを防止するには、バッファメモリの容量を大きくすることが考えられるが、これによると実際に再生に至るまでの時間が大きくなり、その遅延や操作性が問題視される。
【０００７】
なお、本願に関連する従来技術として下記特許文献１、２に記載のものがある。これらの文献の開示では、送出側において、バッファメモリにメディアパケットのペイロードが蓄えられ始めたときからの時間がある一定時間に達したか検知することや、検知時点におけるその状態において何らかの処理を行うことについての言及はない。
【特許文献１】特開２００５−１３６５４６号公報
【特許文献２】特開２００１−８６１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ストリーム情報をパケット送信したときに生じ得るパケットロスを回復させるためのＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置において、パケットの供給密度が時間的に変化する場合でもバースト状出力を回避することが可能なＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明に係るＦＥＣエンコード方法は、順次供給されたメディアパケットが有するペイロードそれぞれをバッファメモリに順次蓄え、前記バッファメモリに蓄えられたペイロードの数が規定数に達したか、さもなければ前記バッファメモリにペイロードが蓄え始め得たときからの時間が一定時間に達したかを検知し、前記バッファメモリに蓄えられたペイロードの数が前記規定数に達したと検知された場合に、前記バッファメモリに蓄えられた前記規定数のペイロードによりＦＥＣ演算を行って、ＦＥＣのための第１の情報を生成し、前記バッファメモリにペイロードが蓄え始め得たときからの時間が前記一定時間に達したと検知された場合に、前記バッファメモリに蓄えられたペイロードを用いてＦＥＣ演算を行って、ＦＥＣのための第２の情報を生成し、前記第１の情報を該第１の情報に対応する前記メディアパケットとともに出力し、前記第２の情報を該第２の情報に対応する前記メディアパケットとともに出力することを特徴とする。
【００１０】
すなわち、このＦＥＣエンコード方法では、ＦＥＣ演算するための規定数のメディアパケットが供給されて、ＦＥＣのための第１の情報の生成を行うことに加え以下の処理が行われ得る。つまり、メディアパケットのペイロードをバッファメモリに蓄え始め得たときからの時間が一定時間に達すると、それまで蓄えられたペイロードを用いてＦＥＣ演算を行い、ＦＥＣのための第２の情報を生成する。そして、第１の情報を該第１の情報に対応するメディアパケットとともに出力し、第２の情報を該第２の情報に対応するメディアパケットとともに出力する。
【００１１】
よって、バッファメモリに規定数のペイロードが蓄えられるまでもなく、一定時間でＦＥＣ演算が行われ、その演算結果である第２の情報が対応するメディアパケットとともに順繰りに出力され得る。したがって、もとのメディアパケットの供給密度が時間的に変化する場合であってもバースト状出力を回避することが可能である。
【００１２】
また、本発明に係るＦＥＣデコード方法は、順次受け取られたメディアパケットが有するペイロードそれぞれをバッファメモリ内の第１の位置に順次蓄え、一群の前記メディアパケットに付帯して受け取られたＦＥＣのための情報を前記バッファメモリ内の前記第１の位置とは異なる第２の位置に順次蓄え、前記バッファメモリ内の前記第２の位置に蓄えられた前記ＦＥＣのための情報から、前記一群のメディアパケットのパケット数を検知し、前記検知されたパケット数に相当の数のペイロードが前記バッファメモリ内の前記第１の位置に蓄えられるに従い、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生しているか否か検知し、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生している場合に、前記バッファメモリ内の前記第１の位置に蓄えられている残りのペイロードと前記第２の位置に蓄えられた前記ＦＥＣのための情報とを用いてＦＥＣ演算を行い前記ロスを回復させることを特徴とする。
【００１３】
このＦＥＣデコード方法は、上記のＦＥＣエンコード方法に対応するデコード方法である。すなわち、バッファメモリ内の第２の位置に蓄えられたＦＥＣのための情報から、一群のメディアパケットの数の検知を行う。そして、検知されたパケット数に相当の数のペイロードがバッファメモリ内の第１の位置に蓄えられると、バッファメモリ内の第１の位置に蓄えられているべきペイロードの一部にロスが発生しているか否かが検知される。さらに、ロスがあれば、バッファメモリ内の第１の位置に蓄えられている残りのペイロードと第２の位置に蓄えられたＦＥＣのための情報とを用いてＦＥＣ演算を行いこのロスを回復させる。これによれば、上記のＦＥＣエンコード方法に対応して、規定数に達していないペイロードでＦＥＣのための情報が生成された場合にも対応してＦＥＣデコードが順次なされる。
【００１４】
また、本発明に係るＦＥＣデコード装置は、バッファメモリと、順次受け取られたメディアパケットが有するペイロードそれぞれを前記バッファメモリ内の第１の位置に順次蓄える第１の制御部と、一群の前記メディアパケットに付帯して受け取られたＦＥＣのための情報を前記バッファメモリ内の前記第１の位置とは異なる第２の位置に順次蓄える第２の制御部と、前記バッファメモリ内の前記第２の位置に蓄えられた前記ＦＥＣのための情報から、前記一群のメディアパケットのパケット数を検知する第３の制御部と、前記検知されたパケット数に相当の数のペイロードが前記バッファメモリ内の前記第１の位置に蓄えられるに従い、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生しているか否か検知する第４の制御部と、前記バッファメモリ内の前記第１の位置に蓄えられているべきペイロードの一部にロスが発生している場合に、前記バッファメモリ内の前記第１の位置に蓄えられている残りのペイロードと前記第２の位置に蓄えられた前記ＦＥＣのための情報とを用いてＦＥＣ演算を行い前記ロスを回復させる第５の制御部とを具備することを特徴とする。
【００１５】
このＦＥＣデコード装置は、上記のＦＥＣデコード方法を実現するために、バッファメモリと各制御部とを備えた装置である。
【発明の効果】
【００１６】
本発明によれば、ストリーム情報をパケット送信したときに生じ得るパケットロスを回復させるためのＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置において、パケットの供給密度が時間的に可変する場合でもバースト状出力を回避することが可能なＦＥＣエンコード方法、ＦＥＣデコード方法、およびＦＥＣデコード装置を提供することができる。
【発明を実施するための最良の形態】
【００１７】
本発明（ＦＥＣエンコード方法）の実施態様として、さらに、前記第２の情報を生成するための前記ＦＥＣ演算に用いた、前記バッファメモリに蓄えられたペイロードの数の情報を前記第２の情報に付加する、とすることができる。これによれば、デコード側において容易に、エンコード側でＦＥＣ演算がなされたときに使用されたペイロードの数（ダミーを除く）を検知できる。
【００１８】
また、実施態様として、さらに、前記第２の情報が前記第１の情報とは異なる旨の情報を前記第２の情報に付加する、とすることができる。これによれば、デコード側において容易に、エンコード側が規定数のペイロードによるＦＥＣ演算ではないことを検知できる。
【００１９】
また、実施態様として、前記第２の情報の生成が、前記バッファメモリに蓄えられたペイロードと前記規定数に達するまでパディングされたダミーのペイロードとを用いたＦＥＣ演算による、とすることができる。ＦＥＣ演算を通常と同様に行い得るようにダミーのペイロードをバッファメモリにパディングする態様である。
【００２０】
ここで、前記第２の情報を生成するための前記ＦＥＣ演算が前記ダミーのペイロードのみにより行われる得る場合に、該ＦＥＣ演算を行わず該ＦＥＣ演算による前記第２の情報を生成しない、とすることができる。ＦＥＣのための第２の情報の生成を効率化するためである。
【００２１】
また、実施態様として、前記第１、第２の情報が、ともに、前記メディアパケットとは独立したＦＥＣパケットとして生成される、とすることができる。ＦＥＣ演算で得られる第１、第２の情報をパケットとして送出する態様である。
【００２２】
また、実施態様として、前記第１、第２の情報が、ともに、該第１、第２の情報それぞれに対応する前記メディアパケットに付加される、とすることもできる。これは、ＦＥＣ演算で得られる第１、第２の情報をメディアパケットに付加する態様である。
【００２３】
また、本発明（ＦＥＣデコード装置）の実施態様として、前記第５の制御部が、前記バッファメモリ内の前記第１の位置であって未だペイロードが蓄えられていない位置にダミーのペイロードをパディングし、前記ＦＥＣ演算を行う、とすることができる。エンコード側でのダミーのペイロードのパディングに対応して行うものである。
【００２４】
以上を踏まえ、以下では本発明の実施形態を図面を参照しながら説明する。図１は、本発明の一実施形態に係るＦＥＣエンコード方法およびＦＥＣデコード方法を実施するための装置構成を示すブロック図である。映像情報送出サーバ１０、ＦＥＣ装置（エンコード側）２０、ネットワーク３０、ＦＥＣ装置（デコード側）４０、映像情報受信装置５０の順に情報を流し、これにより映像などの情報を送出側から受信側に送る。
【００２５】
映像情報送出サーバ１０は、映像などの情報を含有するメディアパケット（構成を後述する）の生成を行いこれを順次、ＦＥＣ装置（エンコード側）２０に供給する。ＦＥＣ装置（エンコード側）２０は、供給されたメディアパケットを複数蓄え、蓄えられたメディアパケットのペイロードの部分を用いてＦＥＣ演算（エンコード演算）を行い、さらにその結果をＦＥＣパケットのペイロード部分としてＦＥＣパケットの生成を行う。メディアパケットと生成されたＦＥＣパケットとは、ネットワーク３０を介してＦＥＣ装置（デコード側）４０、映像情報受信装置５０の側に送られる。なお、ＦＥＣ装置（エンコード側）２０は、映像情報送出サーバ１０の中に内蔵させてもよい。
【００２６】
ネットワーク３０は、インターネットなどの品質非保証の情報伝送路である。ＦＥＣ装置（エンコード側）２０から出力されたメディアパケットおよびＦＥＣパケットは、状況によりネットワーク３０での伝送途上で一部がロスする場合がある。
【００２７】
ＦＥＣ装置（デコード側）４０は、ネットワーク３０を介して送られたメディアパケットおよびＦＥＣパケットを順次蓄え、メディアパケットの一部にロスがあるときには、残りのメディアパケットのペイロードの部分とＦＥＣパケットのペイロードの部分とを用いてＦＥＣ演算（デコード演算）を行うことでこのロスを回復させる。回復で得られたメディアパケットおよび蓄えられたメディアパケットは、映像情報受信装置５０に供給される。映像情報受信装置５０は、供給されたメディアパケットから映像信号や音声信号を再生し表示あるいは音声出力を行う。なお、ＦＥＣ装置（デコード側）４０は、映像情報受信装置５０の中に内蔵させることもできる。
【００２８】
ＦＥＣ装置（エンコード側）２０は、インターフェース２１、制御部２２、バッファメモリ２３、インターフェース２４を有している。
【００２９】
インターフェース２１は、映像情報送出サーバ１０から供給のメディアパケットを受け取りこれを制御部２２に送るためのインターフェースである。制御部２２は、バッファメモリ２３をバッファ領域としてＦＥＣ演算（エンコード演算）を行うためのものである。より具体的には、インターフェース２１を介して送られたメディアパケットを順次保持すること、順次保持されたメディアパケット内のペイロードの部分をバッファメモリ２３内の所定の位置へ順次蓄えていくこと、所定の位置に蓄えられたペイロードを用いてＦＥＣ演算を行いＦＥＣパケット用のペイロードを生成すること、生成されたＦＥＣパケット用のペイロードを含めてＦＥＣパケットを生成すること、の各処理を行う。バッファメモリ２３は、少なくとも上記のＦＥＣ演算に必要なペイロードのすべてを蓄積可能な記憶容量を有する。
【００３０】
制御部２２により保持されたメディアパケットおよび生成されたＦＥＣパケットは、制御部２２からインターフェース２４に出力される。インターフェース２４は、制御部２２からのメディアパケットおよびＦＥＣパケットをネットワーク３０に出力するためのインターフェースである。
【００３１】
ＦＥＣ装置（デコード側）４０は、インターフェース４１、制御部４２、バッファメモリ４３、インターフェース４４を有している。
【００３２】
インターフェース４１は、ネットワーク３０からのメディアパケットおよびＦＥＣパケットを受け取りこれを制御部４２に供給するためのインターフェースである。制御部４２は、バッファメモリ４３をバッファ領域としてＦＥＣ演算（デコード演算）を行うためのものである。
【００３３】
より具体的には、制御部４４は、インターフェース４１を介して供給されたメディアパケットおよびＦＥＣパケットを順次保持すること、順次保持されたメディアパケットのペイロードの部分をバッファメモリ４３内の第１の所定の位置へ順次蓄えていくこと、順次保持されたＦＥＣパケットのペイロードの部分をバッファメモリ４３内の第２の所定の位置に順次蓄えていくこと、蓄えられたメディアパケットのペイロードにロスがあるときには、残りのペイロードと第２の位置に蓄えられたＦＥＣパケットのペイロードとを用いてＦＥＣ演算（デコード演算）を行いロスされたペイロードを回復させること、の各処理を行う。バッファメモリ４３は、少なくとも上記のＦＥＣ演算に必要なペイロードのすべてを蓄積可能な記憶容量を有する。
【００３４】
制御部４２による、回復で得られたペイロードによるメディアパケットを含んだメディアパケットは、制御部４２からインターフェース４４に出力される。インターフェース４４は、制御部４２からのメディアパケットを映像情報受信装置５０に供給するためのインターフェースである。
【００３５】
次に、制御部２２におけるＦＥＣパケットの生成例について図２を参照して説明する。図２は、ＦＥＣパケットの生成例を示す説明図（規定数のメディアパケットの供給による場合）である。
【００３６】
図２に示すように、この例では、メディアパケットのペイロード部分がそのシリアル番号の順に横、縦に各１０個が並ぶようにバッファメモリ２３に蓄えられる。すなわち、ＦＥＣ演算の規定数は１００である。ＦＥＣパケットのペイロード部分は、各行、各列の各１０個のメディアパケットのペイロードを演算に用いて各１つのＦＥＣ用ペイロード（ｒ１〜ｒ１０、ｃ１〜ｃ１０）として算出される。メディアパケット１００個につきＦＥＣパケット２０個が付加される仕様である。
【００３７】
この場合、各行、各列のペイロードに各ＦＥＣ用ペイロードを加えた各１１個のペイロードのいずれかひとつにロスがあるときでも、デコード側では、ＦＥＣ用ペイロードを含む残りのペイロードによりそのロスを回復できる。したがって例えばある行にロスが２つ以上あるときは最初は回復できない。
【００３８】
ただし、そのあとの各列によるＦＥＣ演算（デコード演算）でロスが回復された状態では、再び行によるＦＥＣ演算（デコード演算）を行いその行でのロスが１つになっていればこのロスが回復できる。すなわち、このようなＦＥＣ演算（エンコード演算）に対応するデコードは、各行、各列、各行（または各列、各行、各列）の順に３回のＦＥＣ演算（デコード演算）になる。なお、ＦＥＣ演算（エンコード演算、デコード演算）については、いくつか公知の方式があり例えばこれらを使用すればよいので説明省略する。
【００３９】
図３は、メディアパケットおよびＦＥＣパケットの内部データ構造例を示す構成図である。図３（ａ）に示すように、メディアパケット６０は、ヘッダ部分とペイロード部分とからなり、ヘッダ部分は例えばＩＰヘッダ６１、ＵＤＰヘッダ６２、ＲＴＰヘッダ６３からなる。ペイロード部分はＲＴＰペイロード６４である。ＲＴＰペイロード６４は、ＦＥＣパケット用のペイロードを生成するために用いられる。
【００４０】
また、図３（ｂ）に示すように、ＦＥＣパケット７０は、ヘッダ部分とペイロード部分とからなり、ヘッダ部分は例えばＩＰヘッダ７１、ＵＤＰヘッダ７２、ＲＴＰヘッダ７３、ＦＥＣヘッダ７４からなる。ペイロード部分はＦＥＣペイロード７５である。ＦＥＣペイロード７５は、メディアパケット（図３（ａ））のＲＴＰペイロード６４を複数（図２の例では１０個）用いて演算し生成されたものである。ＦＥＣヘッダ７４には、後述するが、ＦＥＣ演算（エンコード演算）の所定の属性に関する情報を保持させる。
【００４１】
次に、図４を参照し、規定数のメディアパケットの供給がない場合の制御部２２におけるＦＥＣパケットの生成例について説明する。図４は、ＦＥＣパケットの生成例を示す説明図（規定数のメディアパケットの供給がない場合）である。
【００４２】
図２において説明したが、この例ではＦＥＣパケットを生成するためのメディアパケットの規定数は１００である。ただし、以下説明するように、一定の時間で区切りこの時間の間に規定数のメディアパケットが制御部２２に供給されない場合には、そこまでに蓄積されたメディアパケットのペイロードによりＦＥＣ用ペイロードの生成を行う。
【００４３】
図４に示すように、今、例えば所定時間までに規定数を下回る２７個のメディアパケットが制御部２２に供給されて、それらのペイロードが蓄積されている場合には、図示するように、残りの蓄積領域にダミーのペイロードを付加（パディング）し、このパディングされたペイロードをも使ってＦＥＣ用ペイロードの生成のための演算を行う。ここで、図示のシリアル番号３１以下の各行におけるＦＥＣ用ペイロードの生成は、省略することができる。ダミーのペイロードのみによる演算のため結果が決まっており、さらに当然ながら生成省略されたＦＥＣ用ペイロードを含んだＦＥＣパケットの送出も行うには及ばない。この場合には、メディアパケット２７個につきＦＥＣパケット１３個（ｒ１〜ｒ３、ｃ１〜ｃ１０）が付加されることになる。
【００４４】
このような処理によるＦＥＣ用ペイロードの生成は、以下の特長を伴う。時間で区切ってＦＥＣパケットが生成され、ネットワーク３０にメディアパケットを出力することになるので、もとのメディアパケットの時間的な供給密度が低い場合にもその低い密度に応じてメディアパケットの出力を順次行うことができる。したがって、密度が低いほどに送出の遅延が大きくなる問題が解消され、さらに、出力されるパケットがバースト状になる可能性がほとんどなくなる。
【００４５】
また、パディングされたダミーのペイロードによるパケットやダミーのペイロードのみによるＦＥＣパケットは不送出とすることができるので、ネットワーク３０上の平均帯域の増加を最小限に抑えることができる。また、規定数より小さい数のメディアパケットによりＦＥＣパケットが生成されている場合には、メディアパケットの実質的なロス回復能力が向上している。これは、パディングされるペイロード情報が決まっていれば、そのロスを回復するまでもなくデコード側ではこれを補うことができ、これを前提にさらにＦＥＣ演算（デコード演算）をすることができるからである。
【００４６】
なお、変形例としては、上記では、ダミーのペイロードを付加するとして説明したが、ペイロードの蓄積領域をその初期状態としてダミーのペイロードで埋めておくようにしてもよい。この場合、メディアパケットが供給にされるごとにそのペイロードで蓄積領域を順に書き換えていけばよい。また、ダミーのペイロードのみによる演算で生成されたＦＥＣ用ペイロードを含むＦＥＣパケットをもネットワーク３０に送出するようにしても、多少ネットワーク３０上の平均帯域が増加するがデコード側で破棄すればよくデコード処理の邪魔になることはない。
【００４７】
図５は、図１中に示したＦＥＣ装置（エンコード側）２０の動作フローを示す流れ図である。上記説明と多少重なるところがあるが、経時的に改めて説明する。
【００４８】
まず、タイマをリセットする（ステップ１０１）。タイマは例えば制御部２２の中に備えておく。次に、制御部２２の制御の下、映像情報送出サーバ１０からインターフェース２１を介して供給されたメディアパケットからペイロードの部分を取り出し、これをバッファメモリ２３に蓄える（ステップ１０２）。なおもとのメディアパケットも保持しておく。
【００４９】
そして、蓄えられたペイロードの数が規定数Ｌに達したか、あるいはタイマリセットから所定の一定時間が経過したかを制御部２２の制御の下、検知する（ステップ１０３）。いずれも検知できない場合には（ステップ１０３のＮｏ）、ステップ１０２に戻り引き続き映像情報送出サーバ１０から供給されるメディアパケットについて、そのペイロード部分のバッファメモリ２３への蓄積を行う。
【００５０】
蓄えられたペイロードの数が規定数Ｌに達した場合には（ステップ１０３の「規定数」）、バッファメモリ２３に蓄えられたペイロードを用いてＦＥＣ演算（エンコード演算）を行いＦＥＣ用ペイロード、ＦＥＣパケットの生成を行う（ステップ１０７：図２を参照）。生成されたＦＥＣパケットはその対応するメディアパケットとともにインターフェース２４の側に送出される（ステップ１０８）。加えて、ステップ１０１に戻り上記一連の処理を繰り返す。
【００５１】
また、タイマリセットから一定時間が経過した場合には（ステップ１０３の「一定時間経過」）、そのときの蓄えられたペイロードの数をＮとして保持しておき（ステップ１０４）、さらに規定数Ｌになるまでダミーのペイロードをバッファメモリ２３にパディングする（ステップ１０５）。このパディングは、すでに説明したように、あらかじめパディングされているようにしてもよい。
【００５２】
そして、バッファメモリ２３に蓄えられたペイロードとダミーのペイロードとによりＦＥＣ演算（エンコード演算）を行いＦＥＣ用ペイロード、ＦＥＣパケットの生成を行う（ステップ１０６：図４を参照）。ここで、生成されるＦＥＣパケットのＦＥＣヘッダには、上記のＮ、およびパディング処理を行った旨の情報を含ませるのがより好ましい（ステップ１０６）。このような情報をＦＥＣヘッダに含ませておけばデコード側でのそれらの検出が容易になる。なお、必ずしも含ませなくても、デコード側で、例えば、各パケットの各ヘッダが含む情報により一群として送られたパケットを区別してその一群のパケット総数を得て、これによりＮを割り出すことは可能である。
【００５３】
生成されたＦＥＣパケットはその対応するメディアパケットとともにインターフェース２４の側に送出される（ステップ１０８）。加えて、ステップ１０１に戻り上記一連の処理を繰り返す。
【００５４】
図６は、図１中に示したＦＥＣ装置（デコード側）４０の動作フローを示す流れ図である。これも上記説明と重なるところがあるが、経時的に改めて説明する。
【００５５】
まず、制御部４２の制御の下、順次受け取られたメディアパケットおよびＦＥＣパケットの両パケットのペイロード部分をバッファメモリ４３に蓄える（ステップ２０１）。メディアパケットのペイロード部分はそれ用の蓄積領域（第１の位置）に、ＦＥＣパケットのペイロード部分はそれ用の蓄積領域（第２の位置）に、それぞれ蓄積する。
【００５６】
このときの蓄積は、メディアパケット数として規定数Ｌになるまで、あるいはパディング処理の旨の情報がＦＥＣヘッダにある場合には、ＦＥＣヘッダに同じく記録されている数の情報Ｎになるまでの蓄積である。ただし、ＦＥＣヘッダにこのような情報が含まれない場合であっても、例えば、各パケットの各ヘッダが含む情報により一群として送られたパケットを区別してその一群のパケット総数を得て、これによりＮを割り出すことは可能である。
【００５７】
次に、メディアパケット数としてＮまでのバッファメモリ４３への蓄積の場合には、残りの蓄積領域に規定数Ｌまでダミーのペイロードをバッファメモリ４３内にパディングする（ステップ２０２）。このパディングも、エンコードのときと同様に、あらかじめパディングされているようにしてもよい。
【００５８】
次に、バッファメモリ４３に蓄積されたペイロード（パディングによるものも場合により含む）を用いてＦＥＣ演算（デコード演算）を行い、ロスになっているペイロードを回復させ、これによりロスされたメディアパケットを回復させる（ステップ２０３）。ロスが回復されたメディアパケットを含んだメディアパケットはインターフェース４４を介して映像情報受信装置５０に送られる（ステップ２０４）。加えて、ステップ２０１に戻り上記一連のデコード処理を繰り返す。
【００５９】
次に、制御部２２におけるＦＥＣパケットの別の生成例について図７を参照して説明する。図７は、ＦＥＣパケットの別の生成例を示す説明図（規定数のメディアパケットの供給による場合）である。
【００６０】
この例では、ＦＥＣパケットのペイロード部分は、各行、各列の各１０個のメディアパケットのペイロードを演算に用いて各２つのＦＥＣ用ペイロードとして算出される。メディアパケット１００個につきＦＥＣパケット４０個が付加される仕様であり、図２において説明したものよりパケットロスの回復能力が高い。すなわち、各行、各列のペイロードに各ＦＥＣ用ペイロードを加えた各１２個のペイロードのいずれかふたつまでロスがあるときでも、ＦＥＣ用ペイロードを含む残りのペイロードによりそのロスを回復できる。同様に、さらにパケットロス回復能力を向上するため、各行、各列の各１０個のペイロードを演算に用いて２つを超える数のＦＥＣ用ペイロードを算出しこれによりＦＥＣパケットを生成する仕様もあり得る。
【００６１】
図８は、ＦＥＣパケットの別の生成例を示す説明図（規定数のメディアパケットの供給がない場合）である。これは、図７に示したようなＦＥＣパケットの生成を行うが、規定数のメディアパケットの供給がない場合の制御部２２におけるＦＥＣパケットの生成例である。
【００６２】
図８の説明は、その説明として、図４および図７を参照すれば十分である。すなわち、ダミーのペイロードのパディング、ダミーのペイロードのみによるＦＥＣ用ペイロードの生成の省略、さらにそのようなＦＥＣパケットの送出の省略など、それぞれ前述の通りである。さらに、出力されるパケットがバースト状になる可能性の解消や、ネットワーク３０上の平均帯域の増加を最小限に抑えられること、規定数より小さい数のメディアパケットによりＦＥＣパケットが生成されている場合にメディアパケットの実質的なロス回復能力が向上していること、など効果面も同様である。
【００６３】
加えて、図７、図８に示すようなＦＥＣ演算（エンコード演算）がなされた場合に対応するデコード側のＦＥＣ演算についても、図６などで行った説明を参照すれば容易に理解可能である。
【００６４】
次に、制御部２２におけるＦＥＣパケットのさらに別の生成例について図９を参照して説明する。図９は、ＦＥＣパケットのさらに別の生成例を示す説明図（規定数のメディアパケットの供給による場合）である。この例では、メディアパケットのペイロード部分がそのシリアル番号の順に１０個が並ぶようにバッファメモリ２３に蓄えられる。すなわち、ＦＥＣ演算の規定数は１０である。ＦＥＣパケットのペイロード部分は、１０個のメディアパケットのペイロードを演算に用いて１つのＦＥＣ用ペイロードとして算出される。メディアパケット１０個につきＦＥＣパケット１個が付加される仕様である。
【００６５】
この場合、１０個のメディアパケットのペイロードにＦＥＣ用ペイロードを加えた１１個のペイロードのいずれかひとつにロスがあるときでも、ＦＥＣ用ペイロードを含む残りのペイロードによりそのロスを回復できる。したがって１１個のペイロードにロスが２つ以上あるときは回復できない。この意味で、図２に示したような横、縦にＦＥＣ用ペイロードを生成する方式に比べてロスの回復能力は劣る。しかしながら、バッファメモリ２３（デコード側のバッファメモリ４３も同じ）の蓄積容量は小さくて済み、簡易的な装置では採用することができる。
【００６６】
図１０は、ＦＥＣパケットのさらに別の生成例を示す説明図（規定数のメディアパケットの供給がない場合を含む）である。これは、図９に示したようなＦＥＣパケットの生成を行うが、規定数のメディアパケットの供給がない場合が発生した場合の制御部２２におけるＦＥＣパケットの生成例である。
【００６７】
図１０において、最初の１０個および次の１０個のメディアパケットのペイロード部分については、図９での説明と同様である。さらに次の１０個のメディアパケットのペイロード部分について、規定数のメディアパケットの供給がなく、この場合７個のメディアパケットの供給である。残る説明は、図９および図４を参照すれば十分である。すなわち、ダミーのペイロードのパディングは前述の通りである。さらに、出力されるパケットがバースト状になる可能性の解消や、ネットワーク３０上の平均帯域の増加を最小限に抑えられること、規定数より小さい数のメディアパケットによりＦＥＣパケットが生成されている場合にメディアパケットの実質的なロス回復能力が向上していること、など効果面も同様である。
【００６８】
加えて、図９、図１０に示すようなＦＥＣ演算（エンコード演算）がなされた場合に対応するデコード側のＦＥＣ演算についても、図６などで行った説明を参照すれば容易に理解可能である。この場合のデコード側のＦＥＣ演算は、送出側で図２、図４に示したような横、縦のＦＥＣ演算（エンコード）演算がなされている場合に対しても、簡易的な処理として採用することが可能である。
【００６９】
次に、図１１は、ＦＥＣ冗長データを含むメディアパケットの生成例を示す説明図（規定数のメディアパケットの供給による場合）である。上記の各例では、ＦＥＣを行うための情報は独立したＦＥＣパケットの形式をもって生成した。この例では、ＦＥＣを行うための情報を各メディアパケットに付加する形式を採用する。
【００７０】
図１１に示すように、考え方としては、例えば、図２に示したようなＦＥＣ用ペイロードの算出結果を途中データとしてこれを分割してＦＥＣ冗長データとし、このＦＥＣ冗長データをその算出に用いた各ペイロードに付加させる。これをエンコード結果としてネットワークに送出し、デコード側では付加されたＦＥＣ冗長データを集めてＦＥＣ用ペイロードを再現すればよい。この再現のあとの処理はすでに説明した処理と同じである。
【００７１】
図１２は、このようなＦＥＣ冗長データを含むメディアパケットの内部構造例を示す構成図である。図１２に示すように、ＦＥＣ冗長データを付加されたメディアパケット８０は、ヘッダ部分、ペイロード部分、ＦＥＣ冗長データ８１の部分とからなり、ヘッダ部分は例えばＩＰヘッダ６１、ＵＤＰヘッダ６２、ＲＴＰヘッダ６３からなる。ペイロード部分はＲＴＰペイロード６４である。ＲＴＰペイロード６４は、ＦＥＣ冗長データ８１の部分を生成するために用いられている。
【００７２】
図１３は、ＦＥＣ冗長データを含むメディアパケットの生成例を示す説明図（規定数のメディアパケットの供給がない場合）である。これは図１１に示したようなＦＥＣ冗長データの付加を行うが、規定数のメディアパケットの供給がない場合のＦＥＣパケットの生成例である。図１３に示すように、今、例えば所定時間までに規定数を下回る２７個のメディアパケットが制御部２２に供給されて、それらのペイロードが蓄積されている場合の例である。
【００７３】
この場合には、図示するように、規定時間までに蓄積されたペイロードを使ってＦＥＣ冗長データ付加のための途中データを生成する。この理由は、規定数に満たない部分にペイロードをパディングしてこれをも用いて途中データを生成するようにしてもよいが、この場合、パディングによるペイロードは送出対象でないので、ＦＥＣ冗長データ付加ができないためである。すなわち、蓄積されたペイロードだけでより小さなサイズの途中データを算出し、算出された途中データを分割して蓄積されたペイロードに付加するようにしている。
【００７４】
このような処理によるメディアパケット（ＦＥＣ冗長データ付加済み）の生成も、やはり以下の特長を伴う。すなわち、時間で区切ってＦＥＣ冗長データが生成され、ネットワーク３０にメディアパケット（ＦＥＣ冗長データ付加済み）を出力することになるので、もとのメディアパケットの時間的な供給密度が低い場合にもその低い密度に応じてメディアパケット（ＦＥＣ冗長データ付加済み）の出力を順次行うことができる。したがって、密度が低いほどに送出の遅延が大きくなる問題が解消され、さらに、出力されるパケットがバースト状になる可能性がほとんどなくなる。また、ネットワーク３０上の平均帯域の増加も最小限に抑えることができる。
【００７５】
図１４は、図１１、図１３に対応して、図１中に示したＦＥＣ装置（エンコード側）の動作フローを示す流れ図である。図１１、図１３での説明と多少重なるところがあるが、経時的に改めて説明する。また、図１４において、図５で既出の処理ブロックには同一符号を付している。その説明は省略する場合がある。
【００７６】
ステップ１０１、１０２、１０３、１０４は、それぞれ図５における説明と同様である。ステップ１０３では、蓄えられたペイロードの数が規定数Ｌに達した場合に（ステップ１０３の「規定数」）、バッファメモリ２３に蓄えられたペイロードを用いてＦＥＣ演算（エンコード演算）を行いメディアパケット（ＦＥＣ冗長データ付加済み）の生成を行う（ステップ３０７：図１１を参照）。生成されたメディアパケット（ＦＥＣ冗長データ付加済み）はインターフェース２４の側に送出される（ステップ３０８）。加えて、ステップ１０１に戻り上記一連の処理を繰り返す。
【００７７】
また、タイマリセットから一定時間が経過した場合には（ステップ１０３の「一定時間経過」）、そのときの蓄えられたペイロードの数をＮとして保持しておき（ステップ１０４）、さらにＦＥＣ冗長データを生成して各メディアパケットに付加する（ステップ３０５：図１３を参照）。ここで、付加されるＦＥＣ冗長データには、上記のＮ、および繰上げ処理を行った旨の情報を含ませるのがより好ましい（ステップ３０５）。このような情報をＦＥＣ冗長データに含ませておけばデコード側でのそれらの検出が容易になる。なお、必ずしも含ませなくても、デコード側で、例えば、各パケットの各ヘッダが含む情報により一群として送られたパケットを区別してその一群のパケット総数を得て、これによりＮを割り出すことは可能である。
【００７８】
ＦＥＣ冗長データ付加のメディアパケットはインターフェース２４の側に送出される（ステップ３０８）。加えて、ステップ１０１に戻り上記一連の処理を繰り返す。
【００７９】
図１５は、図１１、図１３に対応して、図１中に示したＦＥＣ装置（デコード側）の動作フローを示す流れ図である。これも図１１、図１３での説明と重なるところがあるが、経時的に改めて説明する。また、図１５において、図６で既出の処理ブロックには同一符号を付している。
【００８０】
まず、制御部４２の制御の下、順次受け取られたメディアパケット（ＦＥＣ冗長データ付加済み）のペイロード部分およびＦＥＣ冗長データ部分をバッファメモリに蓄える（ステップ４０１）。ペイロード部分はそれ用の蓄積領域（第１の位置）に、ＦＥＣ冗長データ部分はそれ用の蓄積領域（第２の位置）に、それぞれ蓄積する。
【００８１】
このときの蓄積は、メディアパケット数として規定数Ｌになるまで、あるいは繰上げ処理の旨の情報がＦＥＣ冗長データにある場合には、ＦＥＣ冗長データに同じく記録されている数の情報Ｎになるまでの蓄積である。ただし、ＦＥＣ冗長データにこのような情報が含まれない場合であっても、例えば、各パケットの各ヘッダが含む情報により一群として送られたパケットを区別してその一群のパケット総数を得て、これによりＮを割り出すことは可能である。
【００８２】
次に、バッファメモリ４３に蓄積されたデータを用いてＦＥＣ演算（デコード演算）を行い、ロスになっているペイロードを回復させ、これによりロスされたメディアパケットを回復させる（ステップ４０２）。ロスが回復されたメディアパケットを含んだメディアパケットはインターフェース４４を介して映像情報受信装置５０に送られる（ステップ２０４）。加えて、ステップ４０１に戻り上記一連のデコード処理を繰り返す。
【００８３】
以上、本発明の各実施形態を説明したが、以下補足する。ＦＥＣ装置（エンコード側）２０、ＦＥＣ装置（デコード側）４０におけるパケットの受け取り、ＦＥＣ演算、パケット送出の各機能は、それぞれ複数のチャンネルを設けて並列処理が可能なように構成してもよい。また、規定数Ｌについては例えばパケットロスの回復能力仕様から決定すればよく、上記説明の「一定時間」については例えば映像情報受信装置５０で許容できる情報の遅延時間やネットワーク３０の品質を考慮して決定すればよい。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施形態に係るＦＥＣエンコード方法およびＦＥＣデコード方法を実施するための装置構成を示すブロック図。
【図２】ＦＥＣパケットの生成例を示す説明図（規定数のメディアパケットの供給による場合）。
【図３】メディアパケットおよびＦＥＣパケットの内部データ構造例を示す構成図。
【図４】ＦＥＣパケットの生成例を示す説明図（規定数のメディアパケットの供給がない場合）。
【図５】図１中に示したＦＥＣ装置（エンコード側）の動作フローを示す流れ図。
【図６】図１中に示したＦＥＣ装置（デコード側）の動作フローを示す流れ図。
【図７】ＦＥＣパケットの別の生成例を示す説明図（規定数のメディアパケットの供給による場合）。
【図８】ＦＥＣパケットの別の生成例を示す説明図（規定数のメディアパケットの供給がない場合）。
【図９】ＦＥＣパケットのさらに別の生成例を示す説明図（規定数のメディアパケットの供給による場合）。
【図１０】ＦＥＣパケットのさらに別の生成例を示す説明図（規定数のメディアパケットの供給がない場合を含む）。
【図１１】ＦＥＣ冗長データを含むメディアパケットの生成例を示す説明図（規定数のメディアパケットの供給による場合）。
【図１２】ＦＥＣ冗長データを含むメディアパケットの内部構造例を示す構成図。
【図１３】ＦＥＣ冗長データを含むメディアパケットの生成例を示す説明図（規定数のメディアパケットの供給がない場合）。
【図１４】図１１、図１３に対応して、図１中に示したＦＥＣ装置（エンコード側）の動作フローを示す流れ図。
【図１５】図１１、図１３に対応して、図１中に示したＦＥＣ装置（デコード側）の動作フローを示す流れ図。
【符号の説明】
【００８５】
１０…映像情報送出サーバ、２０…ＦＥＣ装置（送出側）、２１…インターフェース、２２…制御部、２３…バッファメモリ、２４…インターフェース、３０…ネットワーク、４０…ＦＥＣ装置（受信側）、４１…インターフェース、４２…制御部、４３…バッファメモリ、４４…インターフェース、５０…映像情報受信装置、６０…メディアパケット、６１…ＩＰヘッダ、６２…ＵＤＰヘッダ、６３…ＲＴＰヘッダ、６４…ＲＴＰペイロード、７０…ＦＥＣパケット、７１…ＩＰヘッダ、７２…ＵＤＰヘッダ、７３…ＲＴＰヘッダ、７４…ＦＥＣヘッダ、７５…ＦＥＣペイロード、８０…ＦＥＣ冗長データが付加されたメディアパケット、８１…ＦＥＣ冗長データ。
【図１】
2008011096.tif 000003
【図２】
2008011096.tif 000004
【図３】
2008011096.tif 000005
【図４】
2008011096.tif 000006
【図５】
2008011096.tif 000007
【図６】
2008011096.tif 000008
【図７】
2008011096.tif 000009
【図８】
2008011096.tif 000010
【図９】
2008011096.tif 000011
【図１０】
2008011096.tif 000012
【図１１】
2008011096.tif 000013
【図１２】
2008011096.tif 000014
【図１３】
2008011096.tif 000015
【図１４】
2008011096.tif 000016
【図１５】
2008011096.tif 000017