Generation method, generator, generation program for error correction data, and computer readable recording medium storing the same |
|||||||
申请号 | JP2004245112 | 申请日 | 2004-08-25 | 公开(公告)号 | JP2006067072A | 公开(公告)日 | 2006-03-09 |
申请人 | Fujitsu Ltd; 富士通株式会社; | 发明人 | MIURA TAKESHI; IHARA NORIYUKI; FUJITA MAKOTO; NAKAGAWA AKIRA; ICHIKI ATSUSHI; | ||||
摘要 | PROBLEM TO BE SOLVED: To realize the efficient calculation of error correction data. SOLUTION: When the error correction data to be inserted to transmission data at certain insertion intervals are generated by calculating the exclusive OR regarding the transmission data, the exclusive OR of the transmission data is continuously and cumulatively calculated independently from the insertion intervals. The error correction data to be inserted this time are generated by calculating the exclusive OR of the calculated value of the exclusive OR at the time when the error correction data are inserted last time, and the calculated value of the exclusive OR at the scheduled time of inserting an error correction packet this time. COPYRIGHT: (C)2006,JPO&NCIPI |
||||||
权利要求 | 送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データの生成方法であって、 該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続け、 前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するエラー訂正用データの生成方法。 複数のデータ受信装置宛にデータを配信する際に、該データ受信装置別にそれぞれ所定の挿入間隔で該エラー訂正用データを送信する場合において、 前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値を該データ受信装置別に記憶しておき、 該データ受信装置のそれぞれについて、上記記憶しておいた前回のエラー訂正用データ挿入時点での該計算値と今回のエラー訂正用データ挿入予定時点での上記排他的論理和計算の計算値との排他的論理和を計算することにより、今回挿入すべき該エラー訂正用データを生成することを特徴とする、請求項1記載のエラー訂正用データの生成方法。 送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データの生成装置であって、 該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続ける排他的論理和累積計算手段と、 前回のエラー訂正用データ挿入時点での該排他的論理和累積計算手段の計算値を記憶する記憶手段と、 今回のエラー訂正用データ挿入予定時点での該排他的論理和累積計算手段の計算値と、該記憶手段に記憶された前回のエラー訂正用データ挿入時点での該計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成する排他的論理和挿入時点計算手段とをそなえたことを特徴とする、エラー訂正用データの生成装置。 コンピュータに、送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成させるエラー訂正用データの生成プログラムであって、 該コンピュータに、 該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続けるステップと、 前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するステップとを実行させることを特徴とする、エラー訂正用データの生成プログラム。 請求項4記載のエラー訂正用データの生成プログラムを格納したコンピュータ読み取り可能な記録媒体。 |
||||||
说明书全文 | 本発明は、エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体に関し、特に、インターネットのようなパケットロスの多いネットワーク環境におけるストリーミングデータ等のデータ転送のエラー耐性を高めるのに用いて好適な技術に関する。 昨今、インターネット通信を始めとして様々な通信手段を介した、画像データ、音声データ等のデータ通信の需要が高まっている。 特に近年のデータ通信のサービスとして、インターネット上のデータ転送におけるストリーミング配信方式によるサービスが増えてきている。 ストリーミング配信方式においては、MPEG(Motion Picture Experts Group)エンコーダ装置(以下、単に「エンコーダ」ともいう)からMPEGデコーダ装置(以下、単に「デコーダ」ともいう)にデータ転送が行なわれている間に、リアルタイムで受信データの再生処理を行なっている。 このような方式を採用したシステムとして、例えば、VOD(ビデオオンデマンド)やライブ映像のストリーミング配信、あるいはテレビ会議システム等が挙げられる。 そして、かかるリアルタイム通信に適したインターネット技術として、RTP(Real-time Transport Protocol)プロトコル〔後記非特許文献1(IETF RFC1889)参照〕がある。 このRTPを利用したデータ通信では、時間情報としてパケットにタイムスタンプを付加し、このタイムスタンプを参照することにより、パケット送信側であるエンコーダ装置とパケット受信側であるデコーダ装置との間で時間関係の把握を行ない、デコーダ装置側において、パケット転送の遅延やゆらぎ(ジッタ)などの影響を受けずに同期をとった再生を可能としている。 ただし、RTPは実時間のデータ通信を保証しているものではないため、RTPパケットは、他のパケットと同様、ネットワーク上での配信遅延やパケットロストが起きる可能性がある。 しかし、このような状況下においても、デコーダ装置は期待する時間内に到着したパケットだけを利用してデータを再生することも可能である。 これは、映像や音声データに多少のデータ欠損(パケットロスト)があったとしても、データ品質を落とした再生、あるいはデータ補正処理による再生が可能となるからである。 なお、再生に間に合わず遅延して配送されたパケットやエラーの発生したパケットは、デコーダ装置側でそのまま破棄される。 つまり、パケットロストやエラーが発生した場合は、高品質なデータ配信処理を行なっている場合でも、デコーダ装置側で品質を保持した再生が実行されないという課題がある。 このようなRTPを利用したデータ転送における課題を解決する案としては、データ転送に信頼性の高いデータ転送プロトコルであるTCP (Transmission Control Protocol)を利用して、パケットの再送要求および再送パケット送信を行なわせる方法が考えられる。 しかし、TCPはエラー訂正には強いが、スループットが低く、遅延が大きいため、再送しても再生時間に間に合わない可能性があり、リアルタイム通信システムを実現する上では問題がある。 さらに、パケットロストに対応するエラー訂正手法として、例えば、FEC〔Forward Error Correction:後記非特許文献2(IETF RFC2733)参照〕という技術がある。 FECのエラー訂正手法について、図8に示す。 この図8に示すように、FECでは、エンコーダ装置100側において排他的論理和(XOR)演算に基づいて生成したエラー訂正用データである冗長パケット(パリティ)P1を、送信データ(パケット)D1,D2とともに送信しておくことにより、途中のインターネット等のネットワーク300においてパケットロストが発生しても、デコーダ装置200側においてこの冗長パケットP1からロストしたパケットD1又はD2を復元することができ、エンコーダ装置100側からのパケット再送を必要としない手法である。 このようなFECを利用すると、インターネットのようにパケットロストの多いネットワーク環境においても、信頼性とインタラクティブ性に優れたメディア伝送を実現し、インターネットライブ放送などのサービスが実現可能ではあるが、バースト的にパケットロストが発生するネットワーク環境においては高品質なメディア伝送を実現することは困難である。 そこで、このようなバースト的なパケットロストに対応するエラー訂正手法として、例えば、ARQ(Automatic Repeat Request)という技術がある。 ARQのエラー訂正手法について、図9に示す。 この図9に示すように、ARQでは、デコーダ装置500側においてパケットロストを検出すると、即時にロストしたパケットの再送要求をデコーダ装置500からエンコーダ装置400側に送信し(矢印600参照)、エンコーダ装置400側においてロストしたパケットの再送を行なう(矢印700参照)技術である。 そして、従来のシステムにおいては、以上のFECとARQのいずれか一方の誤り手法を固定的に使用することが多いため、例えば、FEC技術を利用した場合は伝送率が低くエラー率が高いネットワーク環境においては効果的だが、逆に、伝送率が高くエラー率が低い場合にはFECパケットのオーバヘッドが大きく、伝送効率が悪化するという特質があり、また、伝送率が高くエラー率が低いネットワーク環境においては、ARQ技術を利用するのが効果的だが、伝送率が低くエラー率が高くなると、再送要求に係るやりとりが多くなり、伝送効率が悪化するという特質がある。 そこで、従来、以上のARQの技術とFECの技術とを組み合わせた技術も提案されている。 例えば、後記特許文献1(特開2002−9883号公報)及び特許文献2(特開平7−67175号公報)により提案されている技術がそれである。 一方、特許文献2に記載の技術は、必ずしも安定でない無線区間の回線状態に応じて伝送速度を変更し、誤り制御方式をFEC及びARQのいずれか又は双方を併用することにより、最も伝送効率の良いデータ伝送方式を提供するもので、そのために、この技術においては、無線区間の回線状態(誤り発生状況)を監視して、その誤り発生状況に応じて伝送速度を変更し、適用すべき誤り制御方式としてARQとFECのいずれかを選択・決定することが行なわれる。 より具体的には、例えば、伝送速度が9600bpsのときにはARQを用い、それ以外の伝送速度(4800bps又は2400bps)ときには、FECによる訂正が可能か否かを判断して、可能であれば自己訂正を行ない、不可能なときには伝送速度が4800bpsであればARQによる再送要求を行なうようになっている。 また、再送回数を監視して、再送回数が多く回線品質が悪い場合には、伝送速度を4800bpsに下げて、ARQ及びFECの併用モードとし、伝送速度が4800bpsのときに再送回数が増加し回線品質がさらに低下した場合には、伝送速度をさらに2400bpsに下げて、FECモードとすることも行なえるようになっている(段落0014及び0015参照)。 このような特許文献2に記載の技術によれば、回線状態に応じてデータ伝送速度及び伝送速度に適した誤り制御方式を選択するので、最も効率的な伝送速度を達成することが可能となる。 H. Schulzrinne et al.," RTP:A Transport Protocol for Real-Time Applications ", Request for Comments:1889、[online]、1996年1月、IETF Network Working Group、[平成16年8月25日検索]、インターネット<URL: http://www.ietf.org/rfc/rfc1889.txt> J. Rosenberg.et al.," An RTP Payload Format for Generic Forward Error Correction ", Request for Comments:2733、[online]、1999年12月、IETF Network Working Group、[平成16年8月25日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc2733.txt> 従来のシステムでは、エンコーダとデコーダが一組ずつの場合には効率的なエラー訂正を行ないつつ、データ送信帯域の変動を抑えることが可能であるが、1台のエンコーダから複数のデコーダに対して映像データを配信するシステムの場合の考慮がなされていない。 また、デコーダの属するネットワークの品質によって冗長パケットの挿入間隔がデコーダ毎に異なるような場合、エンコーダはデコーダ別に冗長パケットの生成(排他的論理和演算)をそれぞれ行なう必要があり、エンコーダの負荷が増大する。 また、特定のデコーダに合わせて他のデコーダに対する冗長パケットの挿入間隔を変更にすると、さらにエンコーダの負荷が増大するばかりでなく、別のデコーダに対する冗長パケットの挿入間隔が変更されてしまい、望むべきエラー訂正を行なうことができなくなる。 加えて、冗長パケットの挿入間隔を変更して送信レートを変動させると、ネットワーク内の別の通信(TCP等)がその帯域を使用し始めて、ストリーミングに必要な使用帯域が少なくなるため、必要帯域は常に確保しておくことが望ましい。 本発明は、以上のような課題に鑑み創案されたもので、1台のデータ送信装置(エンコーダ)から複数のデータ受信装置(デコーダ)に対してデータを配信するシステムにおいて、複数のデータ受信装置それぞれに対するエラー訂正用データの計算をより効率的に行なって効率的なエラー訂正を実現できるようにすることを目的とする。 上記の目的を達成するために、本発明のエラー訂正用データの生成方法(請求項1)は、送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データ生成方法であって、該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続け、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成することを特徴としている。 ここで、複数のデータ受信装置宛にデータを配信する際に、該データ受信装置別にそれぞれ所定の挿入間隔で該エラー訂正用データを送信する場合においては、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値を該データ受信装置別に記憶しておき、該データ受信装置のそれぞれについて、上記記憶しておいた前回のエラー訂正用データ挿入時点での該計算値と今回のエラー訂正用データ挿入予定時点での上記排他的論理和計算の計算値との排他的論理和を計算することにより、今回挿入すべき該エラー訂正用データを生成するのが好ましい(請求項2)。 また、本発明のエラー訂正用データの生成装置(請求項3)は、送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データ生成装置であって、該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続ける排他的論理和累積計算手段と、前回のエラー訂正用データ挿入時点での該排他的論理和累積計算手段の計算値を記憶する記憶手段と、今回のエラー訂正用データ挿入予定時点での該排他的論理和累積計算手段の計算値と、該記憶手段に記憶された前回のエラー訂正用データ挿入時点での該計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成する排他的論理和挿入時点計算手段とをそなえたことを特徴としている。 さらに、本発明のエラー訂正用データの生成プログラム(請求項4)は、コンピュータに、送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成させるエラー訂正用データ生成プログラムであって、該コンピュータに、該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続けるステップと、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するステップとを実行させることを特徴としている。 また、本発明の記録媒体(請求項5)は、上記のエラー訂正用データ生成プログラムを格納したことを特徴としている。 上記の本発明によれば、エラー訂正用データの挿入間隔とは独立して累積的に送信データの排他的論理和を計算し続け、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するので、エラー訂正用データの計算を挿入間隔の相違や変更の有無に依存しないで効率良く行なってその負荷を大幅に軽減することができ、効率的なエラー訂正を実現することが可能となる。 特に、データ送信先(データ受信装置)が複数存在する場合であっても、データ受信装置のそれぞれについて、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算するだけで、データ配信中のデータ受信装置に対する今回挿入すべきエラー訂正用データを生成することができるので、全てのデータ受信装置についての挿入間隔に依存して、個別に累積的な排他的論理和計算を行なう必要がなく、その効果は極めて大きい。 〔A〕一実施形態の説明 図1は本発明の一実施形態に係る映像配信システムの構成を示すブロック図で、この図1に示すように、本実施形態の映像配信システムは、例えば、ネットワーク5としてエラーレートの高いIP(Internet Protocol)ネットワークに、MPEGのストリーミングデータをパケットによりライブ配信するMPEGエンコーダ(データ送信装置)1と、このMPEGエンコーダ1が送信したストリーミングデータ(パケット)を受信/デコード/表示等する複数のMPEGデコーダ(データ受信装置)2−1,2−2,…及び/又はクライアント端末(データ受信装置)3と、MPEGエンコーダ1/MPEGデコーダ2等の符号化モードやライブ配信アドレス等の設定制御を行なうサーバ4とが通信可能に接続されて構成されている。 なお、以下において、MPEGデコーダ2−1,2−2,…を区別しない場合は、単に「MPEGデコーダ2」と表記する。 そして、本システムでは、サーバ4がMPEGエンコーダ1に対して符号化モード(MPEG1/2/4、符号化ビットレート、音声あり/なし等)やライブ配信アドレスの設定を行なう。 また、MPEGデコーダ2やクライアント端末3(以下、単に「クライアント3」と表記する)に対して、ライブ受信アドレスや再送要求を即時に送信するか否かの閾値の設定等もこのサーバ4が行なう。 MPEGエンコーダ1は、例えば、監視システム等における監視対象の場所等の遠隔地に設置され、設定された符号化モードで入力映像を符号化し、符号化されたMPEGストリーミングデータ及びエラー訂正用の冗長パケット(FECパケット)を設定されたアドレスに対して配信する。 MPEGデコーダ2及び/又はクライアント3では、受信したMPEGストリーミングデータをエラー訂正しつつ、デコード/再生して遠隔地での映像監視を行なうことを可能とする。 このため、本実施形態のMPEGエンコーダ1は例えば図2、MPEGデコーダ2は例えば図3に示すように構成される。 なお、パケット送信側のMPEGエンコーダ1の構成は本発明の適用にあたって特殊な構成を有するものである必要はなく、少なくとも再送要求を受けて要求されたパケットを再送する機能をそなえている(ARQをサポートしている)装置であれば同様に適用される。 (A1)MPEGエンコーダ1の説明 図2に示すように、MPEGエンコーダ1は、その要部に着目すると、映像アナログ/デジタル(A/D)変換器11A,音声アナログ/デジタル(A/D)変換器11B,MPEG符号化部12,冗長パケット生成部13,パケット配信部14,パケットバッファ15,再送要求受信部16,パケット再送部17,サーバインタフェース(IF)部18及び設定制御部19をそなえて構成されている。 ここで、映像A/D変換器11Aは、ビデオカメラ装置等からの入力映像(アナログ信号)をデジタル信号に変換するものであり、音声A/D変換器11Bは、入力音声(アナログ信号)をデジタル信号に変換するものであり、MPEG符号化部12は、これらのA/D変換器11A及び11Bから入力されたデジタル映像/音声信号をMPEG符号化するもので、ここでは、符号化後のMPEGストリーミングデータをパケット化する機能も有している。 冗長パケット生成部(エラー訂正用データ生成装置)13は、このMPEG符号化部12で符号化されたMPEGストリーミングデータを基にエラー訂正用の冗長パケット(パリティ)を生成するもので、本実施形態では、以下の各部としての機能を有している。 パケット配信部14は、MPEG符号化部12からのMPEGストリーミングデータをパケット化して、冗長パケット生成部13からのパケットとともにネットワーク5に送信(配信)するものである。 サーバIF部18は、ネットワーク5とのインタフェースをとるもので、ネットワーク5経由でサーバ4からの設定情報や制御情報等を受信できるようになっている。 そして、設定制御部19は、MPEGエンコーダ1の全体動作を統括的に制御するもので、サーバIF部18で受信したサーバ4からの設定情報や制御情報に応じて、MPEG符号化部12,冗長パケット生成部13,パケット配信部14,パケット再送部17等に対する設定や制御を行なえるようになっている。 具体的に、装置設定に関しては、この設定制御部19により、サーバIF部18にてサーバ4から受信した符号化モードやライブ配信アドレス,冗長パケット生成割合(間隔),再送パケット保存時間等の設定情報を解釈し、符号化モードをMPEG符号化部12に設定し、ライブ配信アドレスをパケット配信部14に設定し、冗長パケット生成割合(デフォルト値)を冗長パケット生成部13に設定し、再送パケット保存時間をパケットバッファ15に設定するようになっている。 これにより、本MPEGエンコーダ1は、入力された映像/音声を各A/D変換器11A及び11Bにてそれぞれデジタル変換した後、MPEG符号化部12にてサーバ4から設定された符号化モードで符号化を行なう。 そして、冗長パケット生成部13にて、複数のMPEGパケットに対してサーバ4から設定された割合で排他的論理和演算に基づいて冗長パケット(パリティ)を生成し、MPEGパケットとともに冗長パケットをパケット配信部14からネットワーク5に配信する。 また、このとき、MPEGエンコーダ1は、MPEGデコーダ2からの再送要求に備えて、配信済みのMPEGパケットをパケットバッファ15に保存しておき、MPEGデコーダ2から再送要求を再送要求受信部16で受信した場合、MPEGデコーダ2が所望するパケットをこのパケットバッファ15から取り出して、パケット再送部17からネットワーク5に配信する。 同時に、冗長パケット生成部13に対して、パケット再送を行なったデコーダ2(又は、クライアント3)に対する冗長パケットの生成(挿入)間隔を伸ばすように指示して、全データ送信レートを一定に保つ。 つまり、本実施形態のMPEGエンコーダ1(冗長パケット生成部13)は、あるデコーダ2(又は、クライアント3)からパケット再送要求に応じて、全データ送信レートを一定に保つよう、冗長パケットの生成(挿入)間隔を変更する挿入間隔変更手段としての機能も有している。 (A2)MPEGデコーダ2の説明 一方、MPEGデコーダ2(又はクライアント3。以下、同じ。)は、その要部に着目すると、図3に示すように、エラー訂正装置20として、パケット受信部21,エラー訂正部22,再送要求送信部23及びパケット抜け判定部24をそなえるとともに、MPEG復号化部25,映像デジタル/アナログ(D/A)変換器26A,音声デジタル/アナログ(D/A)変換器26B,サーバIF部27及び設定制御部28をそなえて構成されている。 ここで、パケット受信部21は、MPEGエンコーダ1が送信したパケットをネットワーク5から受信するものであり、エラー訂正部22は、パケットの欠落(パケット抜け)が発生した場合に、次にパケット受信部21にて受信される冗長パケットに基づいて欠落パケットを復元するためのエラー訂正処理(FEC)を行なうものである。 なお、パケット抜けの発生は、例えば後述するようにRTPのパケット番号(シーケンス番号)を監視することにより認識できる。 また、再送要求送信部23は、パケット抜け判定部24からの再送要求送信指示に従ってMPEGエンコーダ1に対して再送要求を送信するものであり、パケット抜け判定部(パケット欠落検出部,再送要求制御部)24は、パケット受信部21で受信されるパケットの欠落(パケット抜け)を検出するとともに、パケット抜けが検出された場合に、MPEGエンコーダ1に対して当該パケットの再送要求を送信するものである。 ここで、再送要求を行なうタイミングは、即時でもよいし、所定時間内にエラー訂正部22により欠落パケットを復元できるか否かに応じて再送要求送信部23によるMPEGエンコーダ1への再送要求の送信タイミングを制御するようにしてもよい。 例えば、パケット抜けが発生しても直ぐに冗長パケットを受信できてFECによるエラー訂正が可能な場合もあるので、次の冗長パケットが到着する時間を冗長パケットの送信間隔に基づいて判断し、その判断結果に応じて再送要求送信部23による再送要求の送信タイミングを制御(変更)することも可能である。 MPEG復号化部25は、受信したMPEGストリーミングデータを送信側(MPEGエンコーダ1)の符号化モードに対応する復号化モードでMPEG復号化するものであり、映像D/A変換器26Aは、このMPEG復号化部25によってMPEG復号化されたデジタル映像データをアナログ化してモニタ装置等の映像表示装置へ出力するものであり、音声D/A変換器26Bは、MPEG復号化部25によってMPEG復号化されたデジタル音声データをアナログ化してスピーカ等の音声出力装置へ出力するものである。 サーバIF部27は、ネットワーク5とのインタフェースをとるもので、MPEGエンコーダ1と同様に、サーバ4からの設定情報や制御情報を受信できるようになっている。 そして、設定制御部28は、このサーバIF部27にて受信された設定情報や制御情報に応じてパケット受信部21やMPEG復号化部25等に対する設定や制御を行なうものである。 これにより、まず、装置設定に関しては、サーバIF部27にてサーバ4から受信したライブ受信アドレスを設定制御部28にて解釈し、そのアドレスをパケット受信部21に設定する。 パケット受信部21で受信したパケットは、パケット抜け判定部24でパケット抜けの有無が判定され、パケット抜けがない場合は、MPEG復号化部25でMPEG復号化された後、映像及び音声の各D/A変換器26A及び26Bにてそれぞれ映像及び音声の再生出力が行なわれる。 一方、パケット抜けの発生をパケット抜け判定部24が認識した場合には、直ぐにはMPEG復号化部25によるMPEG復号化は行なわず、次の冗長パケットを受信するまで待ってエラー訂正部22によるエラー訂正(FEC)を行なうか、再送要求送信部23からMPEGエンコーダ1に対して再送要求を送信して欠落パケットを受信するまで待ってから、MPEG復号化を行なう。 以下、上述のごとく構成された本実施形態のシステムの動作、特に、冗長パケット(FEC)の生成手順について詳述する。 しかし、この計算方法では、デコーダ2−1,デコーダ2−2,デコーダ2−3のように複数のデコーダに冗長パケットを配信し、かつ、図4(A)〜図4(C)に示すように、その冗長パケットの挿入間隔もデコーダ2−1,2−2,2−3毎に可変である場合、デコーダ2−1,2−2,2−3別に独立して排他的論理和演算を行なう必要がある。 例えば、デコーダ2−1,2−2,2−3で冗長パケットの挿入間隔が同じときには、各デコーダ2−1,2−2,2−3に対して冗長パケットを2個生成するのに、20×3=60回の排他的論理和演算が必要となる。 仮に、デコーダ2−2,2−3の挿入間隔が変更されて、図4(A)〜図4(C)に示すように、各デコーダ2−1,2−2,2−3に対する挿入間隔がそれぞれ「10」,「9」,「8」である場合には、冗長パケットを2個生成するのに、デコーダ2−1については10×2、デコーダ2−2については9×2、デコーダ2−3については8×2の合計20+18+16=54回の排他的論理和演算が必要となる。 かかる演算回数を減らして処理負荷を下げるために、本実施形態では、冗長パケット生成部13において、例えば図5(D)に示すように、ある冗長パケットを生成するために必要な期間には関係なく、動作開始時から累積的に各メディアパケットの排他的論理和を計算し続け、これをマスタの冗長パケット(FECパケット)としておく。 冗長パケットは、排他的論理和の演算により生成されるものであるから、ある期間N〜Mの排他的論理和を計算するためには、1〜Nの期間の排他的論理和をFEC N 、1〜Mの期間の排他的論理和をFEC Mとすると、FEC NとFEC Mの排他的論理和により計算される。 従って、各デコーダに対して冗長パケットを送信する時に、その段階でのマスタの冗長パケットを差分計算用として残しておき、次回の冗長パケットを送信する時にその段階でのマスタの冗長パケットとの排他的論理和を計算することにより、1度の排他的論理和演算だけで冗長パケットを生成することが可能となる。 同様に、デコーダ2−2については、図5(B)及び図5(D)に示すように、メディアパケット1〜9についてのマスタFEC値を1回目の冗長パケットとして送信するとともに、そのマスタFEC値を記憶しておき、次回の冗長パケットの送信タイミングにおいて、その段階でのFEC計算値と記憶しておいた前回のマスタFEC値との排他的論理和を計算し、デコーダ2−3については、図5(C)及び図5(D)に示すように、メディアパケット1〜8についてのマスタFEC値を1回目の冗長パケットとして送信するとともに、そのマスタFEC値を記憶しておき、次回の冗長パケットの送信タイミングにおいて、その段階でのFEC計算値と記憶しておいた前回のマスタFEC値との排他的論理和を計算するだけで、それぞれ、次の冗長パケットを生成することができる。 したがって、本例の場合は、マスタ冗長パケット(マスタFEC値)の演算用に20回と、各デコーダ2用に2×3=6回の合計26回の排他的論理和演算を行なうだけで、複数デコーダ2に対して独立した冗長パケットを送信(挿入)することが可能となり、冗長パケット生成処理の負荷を大幅に削減することが可能となる。 また、この図6に示すように、「次にFECパケットを送出するまでの間隔」も同テーブル131で管理する。 この値もデコーダ2毎にデフォルト設定値及び現在動作値のそれぞれを管理する。 デフォルト設定値は例えばサーバ4から設定され、サーバIF部18経由で設定制御部19に格納されているものとする。 次表1にFEC値の数値例を示す。 本来はパケット単位でFEC計算を行なうものであるが、説明の簡単化のため、各パケットが1バイトである場合の例を示す。 この表1に斜線部で示すように、デコーダ2−1用として、メディアパケット番号が「10」の時と「20」の時にFECパケットが送出され、それぞれの値は「11」,「31」となる。 図5により上述した通常の計算方法では、パケット番号が「20」の時のFEC値=31はパケット番号「11」からパケット番号「20」までの累積的な排他的論理和から計算するが、本実施形態の冗長パケット生成部13では、パケット番号が「10」の時のマスタFEC値=「11」とパケット番号が「20」の時のマスタFEC値=20の排他的論理和から、パケット番号が「20」の時のFEC値=31が導き出せる。 同様に、デコーダ2−2用として、メディアパケット番号が「9」の時と「18」の時にFECパケットが送出され、それぞれの値は「20」と「7」となるが、パケット番号が「18」の時のFEC値=7はパケット番号が「9」の時のマスタFEC値=20とパケット番号が「18」の時のマスタFEC値=20の排他的論理和から導き出せ、デコーダ2−3用として、メディアパケット番号が「8」の時と「16」の時にFECパケットが送出され、それぞれの値は「8」と「24」となるが、パケット番号が「16」の時のFEC値=24はパケット番号が「8」の時のマスタFEC値=8とパケット番号が「16」の時のマスタFEC値=16の排他的論理和から導き出せる。 ここで、排他的論理和の演算は(0,0)→0,(0,1)→1,(1,0)→1,(1,1)→0となる。 つまり、ビット毎に排他的論理和を実行するということは、そのビット値が1である回数が奇数であれば1となり、そのビット値が1である回数が偶数であれば0となる。 次表2に、ある時点kとある時点Nでのビット値が1であった回数が偶数か奇数かと、パケットkとパケットNでのマスタFEC計算値と、k+1〜Nでのビット値が1であった回数が偶数か奇数かと、k+1〜NのFEC計算値を示す。 この表2からk+1〜Nの間で排他的論理和演算を行なった結果(k+1〜NのFEC計算値)と、パケットkでのマスタFEC計算値とパケットNでのマスタFEC計算値との排他的論理和演算の結果とが一致することが分かる。 エンコーダ1(冗長パケット生成部13)は、まず、MPEG符号化部12からメディアパケットを受信することにより動作を開始し(ステップS1)、メディアパケットを受信する度に排他的論理和を累積的に計算し続けて、マスタの冗長パケットを生成する(ステップS2)。 その結果、FECパケットの送信タイミングであれば、冗長パケット生成部13は、テーブル131を参照して、前述したごとく、デコーダ2−iに前回(最後に)送信したマスタFECパケット(FEC計算値)と、その時点でのマスタFECパケット(FEC計算値)との排他的論理和演算を行なって今回送信すべきFECパケットを計算して生成し(ステップS6)、パケット配信部14を通じて当該FECパケットを送信する(ステップS7)。 デコーダ2−iに対して、初めてFECパケットを送信する時は、メディアパケット送信開始時点でのマスタFEC計算値と現在のマスタFEC計算値との排他的論理和を計算してFECパケットを生成・送信する。 また、FECパケットを送信した時点でのマスタFEC計算値を、次回のFECパケット送信時の計算用としてテーブル131に保存しておく。 以上の処理を全デコーダ2−iに関してチェックが完了するまで(ステップS8でYesと判定されるまで)、上記ステップS3以降の処理を繰り返し(ステップS8のNoルート)、完了すれば上記ステップS1以降の処理を再実行する(ステップS8のYesルート)ことにより、映像配信中のデコーダ2−i全てに関して、それぞれのデコーダ2−i毎に独立したFECパケットを生成する。 これにより、複数のデコーダ2−iそれぞれに対するFECパケット計算を、デコーダ2−i毎の挿入間隔の相違や変更の有無に依存しないで効率良く行なうことができる、つまりは、データ配信対象の全てのデコーダ2−iについてのFECパケット挿入間隔に依存して個別に累積的な排他的論理和計算を行なうことなく必要なFECパケットの生成・挿入を行なうことができる。 したがって、FECパケット生成に必要な計算負荷を大幅に軽減することができ、また、再送要求に応じたFECパケット挿入間隔の変更により全体のデータ送信帯域を一定に保ちつつ、効率的なエラー訂正を実現することが可能となる。 なお、本発明は、上述した実施形態に限定されず、本発明の趣旨を逸脱しない範囲で種々変形して実施することができることはいうまでもない。 さらに、上述した例では、送信データがストリーミングデータ(メディアパケット)である場合について説明したが、本発明は、勿論、他の種類のデータであっても同様に適用され、上述した実施形態と同様の作用効果を得ることが可能である。 (付記2) (付記3) (付記5) (付記6) (付記8) 以上詳述したように、本発明によれば、エラー訂正用データの挿入間隔とは独立して累積的に送信データの排他的論理和を計算し続け、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するので、エラー訂正用データの計算を挿入間隔の相違や変更の有無に依存しないで効率良く行なってその負荷を大幅に軽減することができ、情報通信技術分野において極めて有用と考えられる。 1 MPEGエンコーダ(データ送信装置) |