(57)【特許請求の範囲】
【請求項１】
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データを格納するパケット抜け状況データ格納部と、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理部と、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理部と、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対してパケットのインターリーブ伝送を実施するパケット通信処理部と、
を有するデータ伝送システム。
【請求項２】
前記デコーダにおけるバッファリング時間を含む通信条件データを格納する通信条件データ格納部と、
前記通信条件データ格納部に格納されている前記バッファリング時間と、前記インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、前記最大パケット遅延時間が前記バッファリング時間を超える場合には、前記インターリーブパターンデータ格納部に格納されている前記ＦＥＣブロックに含まれるデータ・パケットの数を、前記最大パケット遅延時間が前記バッファリング時間を超えないように減少させて、前記インターリーブパターンデータ格納部に格納する調整部と、
をさらに有する請求項１記載のデータ伝送システム。
【請求項３】
前記通信条件データが、通信帯域制限条件を含み、
前記調整部が、
前記通信条件データ格納部に格納されている前記通信帯域制限条件と、前記インターリーブパターンデータ格納部に格納されているデータから特定される必要帯域とを比較して、前記必要帯域が前記通信帯域制限条件を満たさない場合、前記インターリーブパターンデータ格納部に格納されている前記インターリーブ単位を減少させ、前記バッファリング時間の条件及び前記通信条件制限条件を満たすように前記ＦＥＣブロックに含まれるデータ・パケットの数を特定し、前記インターリーブパターンデータ格納部に格納する
請求項２記載のデータ伝送システム。
【請求項４】
前記通信条件データが、リオーダリング時間を含み、
前記調整部が、
前記通信条件データ格納部に格納されている前記リオーダリング時間と、前記インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、前記最大パケット遅延時間が前記リオーダリング時間を超えている場合には、前記通信帯域制限条件を満たすように前記ＦＥＣブロックに含まれるデータ・パケットの数を特定し、前記インターリーブパターンデータ格納部に格納する
請求項３記載のデータ伝送システム。
【請求項５】
前記デコーダから特定パケットの再送要求を受信し、当該特定パケットの送信順番からパケット抜け状況データを生成し、前記パケット抜け状況データ格納部に格納する手段
をさらに有する請求項１記載のデータ伝送システム。
【請求項６】
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データをパケット抜け状況データ格納部に格納するステップと、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理ステップと、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理ステップと、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対するパケットのインターリーブ伝送を実施するパケット通信処理ステップと、
を、エンコーダに実行させるためのデータ伝送プログラム。
【請求項７】
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データをパケット抜け状況データ格納部に格納するステップと、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理ステップと、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理ステップと、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対するパケットのインターリーブ伝送を実施するパケット通信処理ステップと、
を含み、エンコーダに実行されるデータ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークなどの品質保証のないネットワーク上でリアルタイム性を必要とする音声や映像などのデータ伝送技術に関する。
【背景技術】
【０００２】
従来、リアルタイムＩＰ画像伝送におけるエラー訂正技術としては、ＦＥＣ（Forward Error Correction）が実装されていた。ＦＥＣでは通常のデータ・パケットとエラー訂正用のＦＥＣパケットとをエンコーダからデコーダに送信しているため、１パケット抜けに対してはデコーダ側で該当パケットの復元が可能である。ただし、１ＦＥＣでカバーしているデータ・パケット中の２パケット以上のパケット抜けに対してはＡＲＱ（Automatic Repeat reQuest）で再送要求をエンコーダ側に送信し、エンコーダ側から紛失したパケットを取得するようにしている。このように、２パケット以上のパケット抜けに対しては、必ずＡＲＱで再送要求を送信することになるので、エンコーダ−デコーダ間で、余分な再送パケットが発生し、ネットワークに負荷がかかったり、デコーダ側のバッファリング時間が短い場合、再送可能回数が少なくデータ復元に失敗するといった問題があった。
【０００３】
なお、映像ストリーミング配信サービス及び双方向映像通信サービスを含む複数のサービスが混在する場合に、個々のサービス間で悪影響を与え合うことなく、サービスの品質を向上させることができるようにするための技術が存在している。具体的には、利用者端末の映像ストリーミング品質測定部が映像ストリーミングに関する品質パラメータを取得し、双方向映像通信品質測定部が双方向映像通信に関する品質パラメータを取得し、ＦＥＣ品質測定部がＦＥＣ符号器／復号器による誤り訂正に関する品質パラメータ、及びＲＴＰカプセル化を施した通信に関する品質パラメータを取得する。品質管理サーバの受信レート判断部が、品質パラメータを受信し、利用者端末の受信レートを判断する。そして、エンコードレート制御部が、受信レート判断部からの指示に従い、利用者端末が保持するエンコードレートを制御する。但し、パケットのインターリーブ伝送については考慮されていない。
【０００４】
また、ＦＥＣとＡＲＱの双方をサポートするデコーダ装置等のパケット受信装置側において、パケットロスト発生時の再送要求の送信タイミングを制御して、不要な再送要求の送信を抑制しつつ、最適な遅延時間で映像や音声の再生を可能とするための技術が存在している。具体的には、パケットの欠落が検出された場合に、パケット受信部で次に受信される冗長パケットに基づいて欠落パケットを復元するためのエラー訂正処理を行なうエラー訂正部と、パケット送信装置に対して欠落パケットの再送要求を送信しうる再送要求送信部と、パケットの欠落が検出された場合に、所定時間内にエラー訂正部により欠落パケットを復元できるか否かに応じて再送要求送信部によるパケット送信装置への再送要求の送信タイミングを制御する再送要求制御部とを有する。しかしながら、パケットのインターリーブ伝送については考慮されていない。
【０００５】
さらに、大きな帯域幅遅延積をもつワイヤレスネットワークにおいてスケーラブル且つリライアブルなマルチキャストをサポートする技術が存在している。この技術では、同数のデータパケットの損失を被る種々の受信機からの確認応答パケットに、同じタイムスロットが割り当てられる。この方法は、前方誤り訂正（ＦＥＣ）による回復、事前防御、フィードバック抑制及び衝突検出のようなその他の損失回復技術と組み合わせることができる。帯域幅の使用方法が受信機の個数ではなく伝送されたパケットの個数だけに関係するので、スケーラビリティが実現されるとされる。しかしながら、パケットのインターリーブ伝送については考慮されていない。
【０００６】
さらに、伝送遅延のゆらぎが大きく、パケット損失が避けられないパケット通信ネットワークにリアルタイム連続ストリームを伝送するシステムにおいて、パケット損失の再生機能への影響が抑制できる技術、また、最大許容遅延時間を越えて到着したパケットの廃棄が連続して起こった時に対応できるバッファリング量制御が可能な技術が存在している。具体的には、データを受信・再生する受信端末とネットワーク等を介して通信可能であり、メディアデータを入力・蓄積するメディア入力手段と、メディア入力手段から入力・蓄積したデータを圧縮するメディアデータ圧縮手段と、メディアデータ圧縮手段で圧縮されたメディアデータをパケットにして送出するパケット送出手段と、パケット廃棄情報を受信する受信手段と、パケット廃棄情報によって、送信データのクロスインタリーブを行うか否かを決定する送信モード決定手段と、送信データに対してクロスインタリーブ処理を行うクロスインタリーブ手段とを備え、パケット送出手段から送出した、クロスインタリーブ処理を行っていない送信データのパケットの到着状態の一つであるパケット廃棄情報を受信端末から受けとり、クロスインタリーブを行うと決定した場合、クロスインタリーブ処理を行ったデータのパケットを送出する。しかしながら、パケットのインターリーブについて具体的な調整については考慮されておらず、バッファリング時間などの受信側のデータに基づきインターリーブ・パターンを調整することも考慮されていない。
【特許文献１】特開２００６−６６９７３号公報
【特許文献２】特開２００５−１５９４３３号公報
【特許文献３】特表２００７−５１０３６３号公報
【特許文献４】特開平１１−１７７６２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このような従来技術では、少ない演算量でネットワーク使用帯域の増加を抑えつつ、パケットロス（パケット抜け）の状況に応じてリアルタイム性の高いデータを伝送することはできない。
【０００８】
従って、本発明の目的は、少ない演算量でネットワーク使用帯域の増加を抑えつつ、パケットロスの状況に応じてリアルタイム性の高いデータの伝送を可能にするための技術を提供することである。
【課題を解決するための手段】
【０００９】
データ伝送システムは、デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データを格納するパケット抜け状況データ格納部と、パケット抜け状況データ格納部に格納されている連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理部と、パケット抜け状況データ格納部に格納されているパケット抜け間隔の分布に基づき、ＦＥＣブロックに含まれるデータ・パケットの数を決定し、インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理部と、インターリーブパターンデータ格納部に格納されているデータに基づき、デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従ってデコーダに対してパケットのインターリーブ伝送を実施するパケット通信処理部とを有する。
【発明の効果】
【００１０】
少ない演算量でネットワーク使用帯域の増加を抑えつつ、パケットロスの状況に応じてリアルタイム性の高いデータの伝送が可能となる。
【発明を実施するための最良の形態】
【００１１】
図１に本発明の一実施の形態におけるシステム構成図を示す。例えばインターネットなどの品質保証のないネットワーク１に、エンコーダ１００と、１又は複数のデコーダ２００とが接続されている。
【００１２】
エンコーダ１００は、デコーダ２００に伝送すべきパケットを格納するパケットバッファ１１６と、デコーダ２００に伝送すべきパケットをネットワーク１を介して送信するための処理を実施するパケット通信処理部１１１と、例えばデコーダ２００で収集されたパケット抜け状況データを取得する（場合によってはパケットの再送要求からパケット抜け状況データを生成する）パケット抜け状況データ取得部１１２と、パケット抜け状況データ取得部１１２によって取得されたパケット抜け状況データを格納するパケット抜け状況データ格納部１１７と、パケット抜け状況データ格納部１１７に格納されているデータを用いてＦＥＣパケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定するインターリーブ単位決定処理部１１３と、パケット抜け状況データ格納部１１７に格納されているデータを用いてＦＥＣブロックに含まれるデータ・パケットの数であるＦＥＣブロック単位を決定するＦＥＣブロック単位決定処理部１１４と、デコーダ２００におけるバッファリング時間及びリオーダリング時間と通信帯域制限条件とを格納する通信条件データ格納部１１８と、通信条件データ格納部１１８に格納されているデータを用いてインターリーブ単位決定処理部１１３及びＦＥＣブロック単位決定処理部１１４で決定されたインターリーブパターンを調整する処理を実施するインターリーブパターン調整部１１５と、インターリーブ単位決定処理部１１３、ＦＥＣブロック単位決定処理部１１４及びインターリーブパターン調整部１１５によって決定されたインターリーブパターンのデータを格納するインターリーブパターンデータ格納部１１９とを有する。
【００１３】
なお、パケット通信処理部１１１は、パケットバッファ１１６に格納されているパケットを、インターリーブパターンデータ格納部１１９に格納されているインターリーブパターンに従ってその送信順番を特定してネットワーク１に送出する。また、パケット通信処理部１１１は、インターリーブパターンデータ格納部１１９に格納されているインターリーブパターンに従って通常のパケットからＦＥＣパケットを生成するＦＥＣ符号化処理部１１１１を有する。ＦＥＣ符号化処理及びＦＥＣブロック単位復元処理については、本実施の形態の主旨ではないので、これ以上述べない。
【００１４】
また、デコーダ２００は、エンコーダ１００からパケットを受信する際の処理を実施するパケット通信処理部２１１と、パケット通信処理部２１１により受信されたパケットのデータを格納するパケットバッファ２１３と、パケット抜け状況データを格納するパケット抜け状況データ格納部２１４と、バッファリング時間やリオーダリング時間などの通信条件データを格納する通信条件データ格納部２１５とを有する。
【００１５】
パケット通信処理部２１１は、通信条件データ格納部２１５に格納されている通信条件データをエンコーダ１００に送信する。また、パケット通信処理部２１１は、通常のデータ・パケットの抜けが生じた場合にＦＥＣパケットを用いてパケット抜けが生じたパケットの復元処理を行うＦＥＣ復元処理部２１１１と、エンコーダ１００からのパケットの受信状況からパケット抜け状況データを生成するパケット抜け状況データ生成部２１１２とを有する。
【００１６】
次に、図２乃至図１６を用いて、図１に示したデータ伝送システムの処理内容を説明する。まず、データ伝送を必要とするデコーダ２００のパケット通信処理部２１１は、通信条件データ格納部２１５に格納されている通信条件データ（バッファリング時間及びリオーダリング時間を含む）を含む受信要求をエンコーダ１００にネットワーク１を介して送信する（ステップＳ１）。
【００１７】
エンコーダ１００のパケット通信処理部１１１は、デコーダ２００から、バッファリング時間及びリオーダリング時間を含む受信要求を受信し、デコーダ２００のＩＤと共にバッファリング時間及びリオーダリング時間を、通信条件データ格納部１１８に格納する（ステップＳ３）。そして、パケット通信処理部１１１は、受信要求に対する受信確認ＡＣＫをデコーダ２００に送信する（ステップＳ５）。デコーダ２００のパケット通信処理部２１１は、エンコーダ１００から受信確認ＡＣＫを受信する（ステップＳ７）。
【００１８】
また、エンコーダ１００のパケット通信処理部１１１は、送信時刻Ａを取得して当該送信時刻Ａを含むＲＴＣＰ  ＳＲパケットをデコーダ２００に送信する（ステップＳ９）。デコーダ２００のパケット通信処理部２１１は、エンコーダ１００から送信時刻Ａを含むＲＴＣＰ  ＳＲパケットを受信し、送信時刻Ａをメインメモリなどの記憶装置に格納すると共に、受信時刻Ｂを取得する（ステップＳ１１）。ここで、５秒間計測して、５秒タイムアウトでの時刻Ｃを取得する（ステップＳ１３）。そして、ＤＬＳＲ（＝Ｃ−Ｂ）及びＬＳＲ（＝Ａ）を含むＲＴＣＰ  ＲＲパケットを生成して、エンコーダ１００に送信する（ステップＳ１５）。
【００１９】
エンコーダ１００のパケット通信処理部１１１は、デコーダ２００から、ＤＬＳＲ及びＬＳＲを含むＲＴＣＰ  ＲＲパケットを受信し、ＤＬＳＲ及びＬＳＲをメインメモリなどの記憶装置に格納すると共に、受信時刻Ｄを取得する（ステップＳ１７）。そして、ＲＴＴ＝Ｄ−ＤＬＳＲ−ＬＳＲを算出して、当該ＲＴＴを含むＲＴＣＰ  ＡＰＰパケットを生成して、デコーダ２００に送信する（ステップＳ１９）。
【００２０】
デコーダ２００のパケット通信処理部２１１は、ＲＴＴを含むＲＴＣＰ  ＡＰＰパケットを受信し（ステップＳ２１）、ＲＴＴを例えば通信条件データ格納部２１５に格納する。この後の処理は端子Ａ及びＢを介して図３の処理に移行する。
【００２１】
図３の処理の説明に移行して、エンコーダ１００のパケット通信処理部１１１は、伝送すべきパケットをはじめは通常の順番で送信する（ステップＳ２３）。この際、ＦＥＣ符号化処理部１１１１を動作させてもよいし、動作させなくとも良い。デコーダ２００のパケット通信処理部２１１は、エンコーダ１００から、パケットを受信し、パケットバッファ２１３に格納する（ステップＳ２４）。パケットに含まれるデータを再生する再生処理部（図示せず）は、パケットバッファ２１３からデータを読み出して再生する。
【００２２】
このように、順次エンコーダ１００からデコーダ２００にパケットが送信されて、デコーダ２００のパケット通信処理部２１１に含まれるパケット抜け状況データ生成部２１１２は、パケットの抜け状況に応じて、連続パケット抜け数及びパケット抜け間隔のデータを含むパケット抜け状況データを生成して、パケット抜け状況データ格納部２１４に蓄積してゆく（ステップＳ２５）。
【００２３】
このステップＳ２３乃至Ｓ２５では、図４に示すような処理を行う。エンコーダ１００のパケット通信処理部１１１は、例えばＮ番目のＲＴＰパケットをデコーダに送信し、さらにＮ＋１番目のＲＴＰパケット、Ｎ＋２番目のＲＴＰパケットを送信する。Ｎ番目のＲＴＰパケットは、デコーダ２００のパケット通信処理部２１１により受信できたが、Ｎ＋１番目のＲＴＰパケットがネットワーク１でロスした場合、デコーダ２００のパケット通信処理部２１１は、Ｎ＋２番目のＲＴＰパケットを受信した時点で、受信時刻Ｆを取得し、再生のための処理を開始する時刻Ｇ（＝Ｆ＋バッファリング時間）を算出する。この時刻Ｇは、Ｎ＋１番目のＲＴＰパケットを受信できなければあきらめる時刻でもある。
【００２４】
また、Ｎ＋１番目のＲＴＰパケットのロスを検出したことになるので、パケット抜け状況データ生成部２１１２は、これより前のパケット抜けとの間隔を特定し、パケット抜け状況データ格納部２１４に格納する。さらに連続パケット抜け数のカウントを開始する。同様に次のパケット抜けとの間隔のカウントも開始する。但し、本例では既にＮ＋２番目のＲＴＰパケットを受信しているので、連続パケット抜け数は「なし」となる。
【００２５】
パケット抜け状況データに含まれる連続パケット抜け数及びパケット抜け間隔については、図５に示すようにカウントされる。図５においてＤｘは、ＲＴＰパケットを表し、ＦｘはＦＥＣパケットを表すものとする。図５の例では、Ｄ１、Ｄ２、Ｄ３、Ｆ１、Ｄ４、Ｄ５、Ｄ６、Ｆ２、Ｄ７、Ｄ８、Ｄ９、Ｆ３．．．という順番でパケットが送信され、Ｄ２及びＤ３と、Ｄ５及びＤ６でパケット抜けを検出したものとする。この場合、Ｄ２及びＤ３でのパケット抜けは、連続パケット抜け数が「２」と認識される。同様に、Ｄ５及びＤ６でのパケット抜けは、連続パケット抜け数が「２」と認識される。そして、これらのパケット抜けの間隔は、Ｆ１及びＤ４があるので、「２」と認識される。
【００２６】
このような連続パケット抜け数及びパケット抜け間隔とを計算して、パケット抜け状況データ格納部２１４に格納すると、パケット抜け状況データ格納部２１４には例えば図６に示すようなデータが格納される。図６の例では、測定時間（開始時間から終了時間）毎に、総パケット抜け数と、連続パケット抜け数の分布（２連続抜け回数、３連続抜け回数、．．．）と、パケット抜け間隔の分布（２パケット回数、３パケット回数、．．．．）とが登録されるようになっている。すなわちパケット抜け状況データ生成部２１１２は、図６のテーブルにおける該当回数をインクリメントする。
【００２７】
そして、デコーダ２００のパケット通信処理部２１１は、Ｎ＋２番目のＲＴＰパケットの受信時刻Ｆからリオーダリング時間計測し、リオーダリング時間経過までにＮ＋１番目のＲＴＰパケットを受信せず、ＦＥＣパケットで復元できなければ、Ｎ＋１番目のＲＴＰパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットをエンコーダ１００に送信する。さらに、ＲＴＴの計測を開始する。また、再送要求回数をカウントする。
【００２８】
エンコーダ１００のパケット通信処理部１１１は、Ｎ＋１番目のＲＴＰパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットを、デコーダ２００から受信すると、Ｎ＋１番目のＲＴＰパケットを再送する。ここでも、Ｎ＋１番目のパケットはネットワーク１でロスしたものとする。そして、再送要求回数上限値に達しておらず且つ時間Ｈ（Ｈ＝Ｇ−現時刻）がＲＴＴ以上ある場合は、Ｎ＋１番目のパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットをエンコーダ１００に送信する。
【００２９】
エンコーダ１００のパケット通信処理部１１１は、Ｎ＋１番目のＲＴＰパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットを、デコーダ２００から受信すると、Ｎ＋１番目のＲＴＰパケットを再送する。このような処理を繰り返す。そして、パケット抜け状況データ生成部２１１２は、連続パケット抜け数の分布及びパケット抜け間隔の分布を含むパケット抜け状況データをパケット抜け状況データ格納部２１４に蓄積してゆく。
【００３０】
なお、上で述べたように、ＦＥＣパケット及び同一ＦＥＣブロックの残余のパケットを用いることによって、ＦＥＣ復元処理部２１１１によってロスしたパケットを復元できれば、再送を要求するＲＴＣＰ  ＡＰＰパケットを送る必要はなくなる。
【００３１】
そして、デコーダ２００のパケット通信処理部２１１は、所定時間毎にパケット抜け状況データをエンコーダ１００に送信する（図３：ステップＳ２７）。エンコーダ１００のパケット抜け状況データ取得部１１２は、デコーダ２００からパケット抜け状況データを受信すると、パケット抜け状況データ格納部１１７に蓄積してゆく（ステップＳ２９）。図６に示すようなデータが、パケット抜け状況データ格納部１１７にも蓄積されてゆく。
【００３２】
この後、エンコーダ１００では、図７乃至図１３に示すような処理を実施する。ステップＳ２９と同様に、デコーダ２００から受信したパケット抜け状況データは、パケット抜け状況データ格納部１１７に蓄積される（ステップＳ５１）。そして、エンコーダ１００のパケット抜け状況データ取得部１１２は、パケット抜け状況データが一定時間分蓄積されたか、定期的に判断する（ステップＳ５３）。まだ、デコーダ２００についてのパケット抜け状況データが一定時間分蓄積されていない場合には、ステップＳ５１に戻る。
【００３３】
一方、デコーダ２００についてのパケット抜け状況データが一定時間分蓄積されている場合には、パケット抜け状況データ取得部１１２は、インターリーブ単位決定処理部１１３やＦＥＣブロック単位決定処理部１１４に対して処理開始を指示する。インターリーブ単位決定処理部１１３は、パケット抜け状況データ格納部１１７に格納されている、当該デコーダ２００についての連続パケット抜け数の最頻値に従って、インターリーブ単位を選択し、インターリーブパターンデータ格納部１１９に格納する（ステップＳ５５）。具体的には、連続パケット抜け数の最頻値が「３」である場合には、インターリーブ単位を「３」に設定する。すなわち、ＦＥＣパケットを生成する元となるデータ・パケットを含むＦＥＣブロック３つをインターリーブするものと仮に決定する。インターリーブしなければ、１つのＦＥＣブロックで複数のパケット抜けが発生するが、このようにインターリーブすれば、可能な限り１ＦＥＣブロックに１つのエラーになるようにすることができる。
【００３４】
さらに、ＦＥＣブロック単位決定処理部１１４は、パケット抜け間隔の最頻値に従って、ＦＥＣブロック単位を選択し、インターリーブパターンデータ格納部１１９に格納する（ステップＳ５７）。具体的には、パケット抜け間隔の最頻値が「４」である場合には、１ＦＥＣブロックのデータ・パケット数を「３」とするように仮に決定する。ＦＥＣパケットの出現間隔とパケット抜け間隔の最頻値を併せておけば、復元できる可能性が高くなるからである。
【００３５】
上で述べた例のように、インターリーブ単位が「３」で、ＦＥＣブロック単位が「３」であれば、図８に示すようなインターリーブパターンとなる。すなわち、通常であれば、データパケットＤ１乃至Ｄ３からＦＥＣパケットＦ１が構成されて、ＦＥＣブロック１はこれらのパケットを含む。また、データパケットＤ４乃至Ｄ６からＦＥＣパケットＦ２が構成され、ＦＥＣブロック２は、これらのパケットを含む。データパケットＤ７乃至Ｄ９からＦＥＣパケットＦ３が構成されて、ＦＥＣブロック３はこれらのパケットを含む。
【００３６】
このようなパケット構成の場合、ＦＥＣブロック１から１番目のパケットＤ１を取り出し、ＦＥＣブロック２から２番目のパケットＤ５を取り出し、ＦＥＣブロック３から３番目のパケットＤ９を取り出し、ＦＥＣブロック１からＦＥＣパケットＦ１を取り出し、ＦＥＣブロック２から１番目のパケットＤ４を取り出し、ＦＥＣブロック３から２番目のパケットＤ８を取り出し、ＦＥＣブロック１から３番目のパケットＤ３を取り出し、ＦＥＣブロック２からＦＥＣパケットＦ２を取り出し、ＦＥＣブロック３から１番目のパケットＤ７を取り出し、ＦＥＣブロック１から２番目のパケットＤ２を取り出し、ＦＥＣブロック２から３番目のパケットＤ６を取り出し、ＦＥＣブロック３のＦＥＣパケットＦ３を取り出すようにする。
【００３７】
インターリーブパターン例の詳細を図９乃至図１２に示す。図９は、インターリーブ単位が「２」であり、ＦＥＣブロック単位が「１」である場合のインターリーブパターンを示す。図９の例では、１行目に、通常パケットの並びを表し、２行目に、ＦＥＣブロック番号（「ブロック番号−ブロック内番号」で表す）を表し、３行目に、インターリーブ後のパケットの並びを表し、４行目にインターリーブ後のＦＥＣブロック番号を表し、Normal/Interleaveの別を表している。Normalは、通常パケットの並びと同じ並びであることを表し、Interleaveは、通常パケットの並びと異なる並びであることを表す。
【００３８】
このようなインターリーブパターンの場合、１パケットに１ＦＥＣパケットが必要となるので、必要な伝送帯域は２倍になる。また、矢印で示すように、通常パケットの並びからすると、最大１パケット分遅延する。すなわち、最大パケット遅延時間は、１パケット受信する時間となる。
【００３９】
図１０は、インターリーブ単位が「２」であり、ＦＥＣブロック単位が「２」である場合のインターリーブパターンを示す。図１０のテーブルは、図９のテーブル構成と同様である。このようなインターリーブパターンの場合、２パケットに１ＦＥＣパケットが必要となるので、必要な伝送帯域は１．５倍となる。また、矢印で示すように、通常パケットの並びからすると、最大３パケット分遅延する。すなわち、最大パケット遅延時間は、３パケット受信する時間となる。
【００４０】
図１１は、インターリーブ単位が「３」であり、ＦＥＣブロック単位が「２」である場合のインターリーブパターンを示す。図１１のテーブルは、図９のテーブル構成と同様である。このようなインターリーブパターンの場合、２パケットに１ＦＥＣパケットが必要となるので、必要な伝送帯域は１．５倍となる。また、矢印で示すように、通常パケットの並びからすると、最大５パケット分遅延する。すなわち、最大パケット遅延時間は、５パケット受信する時間となる。このように、インターリーブ単位が増加すると、最大パケット遅延時間も長くなる。
【００４１】
図１２は、インターリーブ単位が「３」であり、ＦＥＣブロック単位が「３」である場合のインターリーブパターンを示す。図１２のテーブルは、図９のテーブル構成と同様である。このようなインターリーブパターンの場合、３パケットに１ＦＥＣパケットが必要となるので、必要な伝送帯域は１．３３倍となる。また、矢印で示すように、通常パケットの並びからすると、最大８パケット分遅延する。すなわち、最大パケット遅延時間は、８パケット受信する時間となる。このように、ＦＥＣブロック単位が増加すると、最大パケット遅延時間も長くなる。
【００４２】
最大パケット遅延時間についてのデータ（例えば遅延パケット数）及び必要伝送帯域についてのデータについては、インターリーブパターン毎に、例えば通信条件データ格納部１１８に格納しておき、それを参照して特定する。
【００４３】
図７の説明に戻って、次に、インターリーブパターン調整部１１５は、上で選択されたインターリーブパターンから特定される最大パケット遅延時間と、通信条件データ格納部１１８に格納されている、デコーダ２００についてのバッファリング時間とを比較し、バッファリング時間より最大パケット遅延時間が長い場合には、ＦＥＣブロック単位をバッファリング時間より最大パケット遅延時間が短くなるように減少させ、減少後のＦＥＣブロック単位をインターリーブパターンデータ格納部１１９に格納する（ステップＳ５９）。
【００４４】
デコーダ２００では、パケット抜けを検出した場合、バッファリング時間内であればＡＲＱの再送要求を行うが、バッファリング時間を超えた場合には、そのパケットはロスしたものとして再生処理（デコード）を行う。このため、エンコーダ１００は、バッファリング時間を超える最大パケット遅延時間が生じるようなインターリーブを行えない。例えば、３８４Ｋｂｐｓで１パケット１０００バイトの場合、４８パケット／秒であり、パケット間隔時間２０．８３ｍｓであり、８パケット遅延の場合の遅延時間は２０．８３ｍｓ×８＝１６６．６６ｍｓとなる。従って、バッファリング時間が１６６ｍｓ以下の場合、最大８パケット遅延するようなインターリーブパターンを選択することはできない。上で述べた例では、図１２で示したようなインターリーブ単位が「３」でＦＥＣブロック単位が「３」というインターリーブパターンを選択することはできない。従って、ＦＥＣブロック単位を下げ、インターリーブ単位が「３」でＦＥＣブロック単位が「２」というインターリーブパターンを選択する。
【００４５】
処理は、端子Ｃを介して図１３の処理に移行する。インターリーブパターン調整部１１５は、上で選択されたインターリーブパターンから特定される必要帯域と、通信条件データ格納部１１８に格納されている、デコーダ２００に対するデータ伝送における通信帯域制限条件とを比較し、必要帯域が通信帯域制限条件を満たしていない場合には、インターリーブパターンにおけるインターリーブ単位を下げ且つバッファリング時間を満たすようにＦＥＣブロック単位を決定し、インターリーブパターンデータ格納部１１９に格納する（ステップＳ６１）。
【００４６】
例えば、インターリーブ単位が「３」でＦＥＣブロック単位が「２」というインターリーブパターンであると、必要帯域は１．５倍となる。ここで通信帯域制限条件が１．５倍未満であると、上記のようなインターリーブパターンを選択することはできない。従って、ステップＳ６１では、次善の策として、インターリーブ単位を「２」に下げる。ここで、８パケット遅延未満で、必要帯域が１．５倍未満であるＦＥＣブロック単位を選択する。ＦＥＣブロック単位が「２」であれば必ず必要帯域は１．５倍となるので、ＦＥＣブロック単位を「３」以上に増加させる必要がある。さらに、８パケット遅延未満である必要があり、インターリーブ単位「２」でＦＥＣブロック単位「３」で最大５パケット遅延となるのでこのインターリーブパターンが選択される。
【００４７】
さらに、インターリーブパターン調整部１１５は、上で選択されたインターリーブパターンから特定される最大パケット遅延時間と、通信条件データ格納部１１８に格納されている、デコーダ２００におけるリオーダリング時間とを比較して、可能であれば、最大パケット遅延時間がリオーダリング時間内になるようにＦＥＣブロック単位を変更して、インターリーブパターンデータ格納部１１９に格納する（ステップＳ６３）。
【００４８】
上で述べたように、デコーダ２００側でパケット抜けの存在を検出すると、リオーダリング時間経過後に再送要求をエンコーダ１００側に送信するようになっている。従って、リオーダリング時間内のインターリーブであれば、デコーダ２００は再送要求をエンコーダ１００に送信することはない。再送要求の分だけネットワーク１の帯域を消費するので、可能であれば最大パケット遅延時間がリオーダリング時間であることが好ましい。但し、コマ落ちを生ずるバッファリング時間とは異なり、再生品質上の問題はないので、「可能な限り」リオーダリング時間内に最大パケット遅延時間を抑えるものとする。なお、上で述べた例では、これ以上ＦＥＣブロック単位を下げると通信帯域制限条件を満たせなくなるので、ここではステップＳ６３をスキップする。
【００４９】
このようなインターリーブパターンの決定処理を行った後に、パケット通信処理部１１１は、デコーダ２００側でパケット抜け状況データを正しく生成できるように、インターリーブパターンデータ格納部１１９に格納されているインターリーブパターンを表すデータをデコーダ２００に送信する（ステップＳ６５）。その後、インターリーブパターンデータ格納部１１９に格納されているインターリーブパターンに従って、インターリーブを伴うパケット送信を実施し始める（ステップＳ６６）。
【００５０】
デコーダ２００のパケット通信処理部２１１は、インターリーブパターンを表すデータを受信すると、例えばメインメモリなどの記憶装置に格納すると共に、このデータに基づき、パケット抜けを検出する。すなわち、インターリーブ単位が「２」でＦＥＣブロック単位が「３」である場合には、Ｄ１、Ｄ５、Ｄ９、Ｆ１、Ｄ４、Ｄ８、Ｄ３、Ｆ２といった順番でパケットが送られてくるので、例えばＤ９及びＦ１を受信できない場合には、３番目及び４番目のパケットが連続して抜けたと判断する。そして、パケット抜け状況データ生成部２１１２は、検出したパケット抜け状況をパケット抜け状況データ格納部２１４に反映する。
【００５１】
そして、処理終了となるまで（例えばエンコーダ１００からデコーダ２００へのデータ伝送が終了するまで）、端子Ｄを介してステップＳ５５からステップＳ６６までを繰り返す（ステップＳ６７）。
【００５２】
このような処理を実施すれば、上で述べたようにパケット抜け状況に応じて、ロス・パケットを可能な限りデコーダ２００側で復元できるような態様でエンコーダ１００からパケットを送信できるようになる。
【００５３】
例えば、図１４（ａ）に示すように、通常の並びでパケットを送信しており、Ｄ４、Ｄ５及びＤ６でロスが生じた場合、それらについてはＦＥＣパケットＦ２だけでは復元できない。図１４（ｂ）のようにインターリーブを行ってパケットを送信していれば、同じ位置でロスが生じても、Ｄ４、Ｄ８及びＤ３といったバラバラのＦＥＣブロックのパケットが１つロスしたことになるので、ＦＥＣ復元処理部２１１１によって該当する残余のパケットでロスしたパケットを再送要求を行うことなく復元することができる。
【００５４】
なお、デコーダ２００側におけるパケット抜け状況データの蓄積の際には、連続パケット抜け数のカウント最大値及びパケット抜け間隔のカウント最大値を設定しておき、それを超える場合にはカウントしないような設定をしておく。すなわち、インターリーブ可能なＦＥＣブロック数に制限がある場合には、当該ＦＥＣブロック数（例えば５）及びＦＥＣブロック単位＋１（例えば４＋１＝５）の積（例えば２５）を超えるような連続パケット抜けについてはカウントしない。さらに、デコーダ２００側で対応可能なＦＥＣブロックの最大サイズを超えるようなパケット抜け間隔についてはカウントしない。
【００５５】
上で述べた例では、デコーダ２００側にパケット抜け状況データ生成部２１１２を設けて、連続パケット抜け数の分布データ及びパケット抜け間隔の分布データを生成し、エンコーダ１００側に送信していたが、必ずしもこのようなデータをデコーダ２００側で生成する必要はない。パケットの送信順序についてはエンコーダ１００で分かっているので、ＡＲＱの再送要求を受信して、再送要求の対象であるパケットが特定できれば、エンコーダ１００側でもパケット抜け状況データを生成することができる。
【００５６】
すなわち図３のステップＳ２７及びＳ２９の代わりに、デコーダ２００のパケット通信処理部２１１は、パケット抜けを検出すると、通常のとおり特定のパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットをエンコーダ１００に送信する（図１５：ステップＳ３１）。エンコーダ１００のパケット通信処理部１１１は、デコーダ２００から、特定のパケットの再送を要求するＲＴＣＰ  ＡＰＰパケットを受信し（ステップＳ３３）、特定のパケットを指定してパケット抜け状況データ取得部１１２に出力する。パケット抜け状況データ取得部１１２は、インターリーブパターンデータ格納部１１９に格納されているインターリーブパターン又はインターリーブしていない場合にはその旨のデータに従って、パケット抜け状況を特定してパケット抜け状況データを生成し、パケット抜け状況データ格納部１１７に蓄積する（ステップＳ３５）。
【００５７】
例えば、図１６（ａ）に示すような順番でパケットを送信していて（すなわちインターリーブ無しでＦＥＣブロック単位「３」）、図１６（ｂ）に示すように、Ｄ２及びＤ３と、Ｄ５及びＤ６とについて再送要求を受信した場合、例えばパケット抜け状況データ取得部１１２は、ロスしたパケットと送信順番と照らし合わせれば、連続パケット抜け数「２」が２回、パケット抜け間隔「２」が１回ということを特定し、パケット抜け状況データ格納部１１７に蓄積する。
【００５８】
このようにすれば、デコーダ２００側の構成をあまり変更せずに、パケット抜け状況データをエンコーダ１００側に蓄積することができ、それに応じて適切なパケットインターリーブを実施できる。よって、ネットワーク使用帯域の増加を抑えつつリアルタイム性の高いデータ伝送を適切に実施することができる。
【００５９】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図１に示した機能ブロックは一例であって、プログラムモジュール構成と一致しない場合もある。図１に示した機能ブロックは、プロセッサとプログラムの組み合わせで構成される場合もあれば、専用の半導体チップを構成するようにしても良い。
【００６０】
上で述べた実施の形態をまとめると以下のとおりになる。すなわち、データ伝送システムは、デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データを格納するパケット抜け状況データ格納部と、パケット抜け状況データ格納部に格納されている連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理部と、パケット抜け状況データ格納部に格納されているパケット抜け間隔の分布に基づき、ＦＥＣブロックに含まれるデータ・パケットの数を決定し、インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理部と、インターリーブパターンデータ格納部に格納されているデータに基づき、デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従ってデコーダに対してパケットのインターリーブ伝送を実施するパケット通信処理部とを有する。
【００６１】
このように連続パケット抜け数の分布（例えば特徴的な統計量（例えば最頻数や平均値）に応じてインターリーブ単位を決定すると共にパケット抜け間隔の分布（例えば特徴的な統計量（最頻値や平均値など））に応じてＦＥＣブロックに含まれるデータ・パケットの数を決定することによって、少ない演算量でネットワーク使用帯域の増加を抑えつつ、パケットロスの状況に応じた適切なデータ伝送が可能となる。
【００６２】
また、本データ伝送システムにおいて、デコーダにおけるバッファリング時間を含む通信条件データを格納する通信条件データ格納部と、通信条件データ格納部に格納されているバッファリング時間と、インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、最大パケット遅延時間がバッファリング時間を超える場合には、インターリーブパターンデータ格納部に格納されているＦＥＣブロックに含まれるデータ・パケットの数を、最大パケット遅延時間がバッファリング時間を超えないように減少させて、インターリーブパターンデータ格納部に格納する調整部とをさらに有するようにしてもよい。このようにすれば、コマ落ち再生を防止しつつ、パケットの再送要求の送出頻度を下げることができ、ネットワーク使用帯域の増加を抑えることができる。
【００６３】
また、上で述べた通信条件データが、通信帯域制限条件を含むようにしてもよい。その場合、上で述べた調整部が、通信条件データ格納部に格納されている通信帯域制限条件と、インターリーブパターンデータ格納部に格納されているデータから特定される必要帯域とを比較して、必要帯域が通信帯域制限条件を満たさない場合、インターリーブパターンデータ格納部に格納されているインターリーブ単位を減少させ、バッファリング時間の条件及び通信条件制限条件を満たすようにＦＥＣブロックに含まれるデータ・パケットの数（例えば最大数）を特定し、インターリーブパターンデータ格納部に格納するものである。このようにすれば、ネットワーク使用帯域を通信帯域制限条件に合わせることができるようになる。
【００６４】
さらに、上で述べた通信条件データが、リオーダリング時間を含むようにしてもよい。その場合、上で述べた調整部が、通信条件データ格納部に格納されているリオーダリング時間と、インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、最大パケット遅延時間がリオーダリング時間を超えている場合には、通信帯域制限条件を満たすようにＦＥＣブロックに含まれるデータ・パケットの数を特定し、インターリーブパターンデータ格納部に格納するようにする。このようにすれば、パケットの再送要求の送信頻度を下げることができるようになる。但し、バッファリング時間内に不足パケットを取得できなければ、コマ落ち再生が発生するが、リオーダリング時間の要求を満たさなくとも、コマ落ち再生は発生しないので、必ずしも本処理を実施しなくとも良い。
【００６５】
さらに、本データ伝送システムにおいて、デコーダからパケット抜け状況データを受信し、パケット抜け状況データ格納部に格納する手段をさらに有するようにしてもよい。デコーダ側に、パケット抜け状況データの生成部を用意できる場合には、エンコーダ側の構成は簡単になる。なお、パケットインターリーブを実施した後には、当該インターリーブパターンのデータをデコーダ側に通知して、パケット抜け状況データを正しく生成できるようにする必要がある。
【００６６】
また、本データ伝送システムにおいて、デコーダから特定パケットの再送要求を受信し、当該特定パケットの送信順番からパケット抜け状況データを生成し、パケット抜け状況データ格納部に格納する手段をさらに有するようにしてもよい。このようにすれば、デコーダ側の変更を少なくすることができる。
【００６７】
なお、上で述べた処理をエンコーダに実行させるためのプログラムを作成することができ、このプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６８】
また、処理フローについては直線的に示した部分についても、処理結果が変わらなければ並列的に実施しても良いし、また処理順番を入れ替えても良い。
【００６９】
（付記１）
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データを格納するパケット抜け状況データ格納部と、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理部と、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理部と、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対してパケットのインターリーブ伝送を実施するパケット通信処理部と、
を有するデータ伝送システム。
【００７０】
（付記２）
前記デコーダにおけるバッファリング時間を含む通信条件データを格納する通信条件データ格納部と、
前記通信条件データ格納部に格納されている前記バッファリング時間と、前記インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、前記最大パケット遅延時間が前記バッファリング時間を超える場合には、前記インターリーブパターンデータ格納部に格納されている前記ＦＥＣブロックに含まれるデータ・パケットの数を、前記最大パケット遅延時間が前記バッファリング時間を超えないように減少させて、前記インターリーブパターンデータ格納部に格納する調整部と、
をさらに有する付記１記載のデータ伝送システム。
【００７１】
（付記３）
前記通信条件データが、通信帯域制限条件を含み、
前記調整部が、
前記通信条件データ格納部に格納されている前記通信帯域制限条件と、前記インターリーブパターンデータ格納部に格納されているデータから特定される必要帯域とを比較して、前記必要帯域が前記通信帯域制限条件を満たさない場合、前記インターリーブパターンデータ格納部に格納されている前記インターリーブ単位を減少させ、前記バッファリング時間の条件及び前記通信条件制限条件を満たすように前記ＦＥＣブロックに含まれるデータ・パケットの数を特定し、前記インターリーブパターンデータ格納部に格納する
付記２記載のデータ伝送システム。
【００７２】
（付記４）
前記通信条件データが、リオーダリング時間を含み、
前記調整部が、
前記通信条件データ格納部に格納されている前記リオーダリング時間と、前記インターリーブパターンデータ格納部に格納されているデータから特定される最大パケット遅延時間とを比較して、前記最大パケット遅延時間が前記リオーダリング時間を超えてる場合には、前記通信帯域制限条件を満たすように前記ＦＥＣブロックに含まれるデータ・パケットの数を特定し、前記インターリーブパターンデータ格納部に格納する
付記３記載のデータ伝送システム。
【００７３】
（付記５）
前記デコーダから前記パケット抜け状況データを受信し、前記パケット抜け状況データ格納部に格納する手段
をさらに有する付記１記載のデータ伝送システム。
【００７４】
（付記６）
前記デコーダから特定パケットの再送要求を受信し、当該特定パケットの送信順番からパケット抜け状況データを生成し、前記パケット抜け状況データ格納部に格納する手段
をさらに有する付記１記載のデータ伝送システム。
【００７５】
（付記７）
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データをパケット抜け状況データ格納部に格納するステップと、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理ステップと、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理ステップと、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対するパケットのインターリーブ伝送を実施するパケット通信処理ステップと、
を、エンコーダに実行させるためのデータ伝送プログラム。
【００７６】
（付記８）
デコーダにおける連続パケット抜け数の分布とパケット抜け間隔の分布とを含むパケット抜け状況データをパケット抜け状況データ格納部に格納するステップと、
前記パケット抜け状況データ格納部に格納されている前記連続パケット抜け数の分布に基づき、ＦＥＣ（Forward Error Correction）パケットを生成する単位であるＦＥＣブロックの、パケットインターリーブを実施する単位に含まれる数であるインターリーブ単位を決定し、インターリーブパターンデータ格納部に格納するインターリーブ単位決定処理ステップと、
前記パケット抜け状況データ格納部に格納されている前記パケット抜け間隔の分布に基づき、前記ＦＥＣブロックに含まれるデータ・パケットの数を決定し、前記インターリーブパターンデータ格納部に格納するＦＥＣブロック決定処理ステップと、
前記インターリーブパターンデータ格納部に格納されているデータに基づき、前記デコーダに対するパケットの伝送順番を特定し、当該パケットの伝送順番に従って前記デコーダに対するパケットのインターリーブ伝送を実施するパケット通信処理ステップと、
を含み、エンコーダに実行されるデータ伝送方法。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態に係るシステム概要図である。
【図２】本発明の実施の形態に係る処理フローを示す図である。
【図３】本発明の実施の形態に係る処理フローを示す図である。
【図４】本発明の実施の形態に係る処理フローを示すシーケンス図である。
【図５】連続パケット抜け数及びパケット抜け間隔のカウント例を示す図である。
【図６】パケット抜け状況データの例を示す図である。
【図７】本発明の実施の形態に係る処理フローを示す図である。
【図８】インターリーブパターンを説明するための図である。
【図９】インターリーブ単位が「２」であり、ＦＥＣブロック単位が「１」である場合のインターリーブパターンを示す図である。
【図１０】インターリーブ単位が「２」であり、ＦＥＣブロック単位が「２」である場合のインターリーブパターンを示す図である。
【図１１】インターリーブ単位が「３」であり、ＦＥＣブロック単位が「２」である場合のインターリーブパターンを示す図である。
【図１２】インターリーブ単位が「３」であり、ＦＥＣブロック単位が「３」である場合のインターリーブパターンを示す図である。
【図１３】本発明の実施の形態に係る処理フローを示す図である。
【図１４】本発明の実施の形態に係る効果を説明するための図である。
【図１５】本発明の別の実施の形態の処理フローの一部を示すための図である。
【図１６】エンコーダにおけるパケット抜け状況データの生成について説明するための図である。
【符号の説明】
【００７８】
１００  エンコーダ
１１１  パケット通信処理部    １１２  パケット抜け状況データ取得部
１１３  インターリーブ単位決定処理部    １１４  ＦＥＣブロック単位決定処理部
１１５  インターリーブパターン調整部    １１６  パケットバッファ
１１７  パケット抜け状況データ格納部    １１８  通信条件データ格納部
１１９  インターリーブパターンデータ格納部
１１１１  ＦＥＣ符号化処理部
２００  デコーダ
２１１  パケット通信処理部    ２１３  パケットバッファ    
２１４  パケット抜け状況データ格納部
２１５  通信条件データ格納部    
２１１１  ＦＥＣ復元処理部
２１１２  パケット抜け状況データ生成部
【図１】
0005109787.tif 000002
【図２】
0005109787.tif 000003
【図３】
0005109787.tif 000004
【図４】
0005109787.tif 000005
【図５】
0005109787.tif 000006
【図６】
0005109787.tif 000007
【図７】
0005109787.tif 000008
【図８】
0005109787.tif 000009
【図９】
0005109787.tif 000010
【図１０】
0005109787.tif 000011
【図１１】
0005109787.tif 000012
【図１２】
0005109787.tif 000013
【図１３】
0005109787.tif 000014
【図１４】
0005109787.tif 000015
【図１５】
0005109787.tif 000016
【図１６】
0005109787.tif 000017