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号公報)により提案されている技術がそれである。
    まず、特許文献1に記載の技術は、通信網システム上で発生する通信データの伝送エラーにより発生する誤りに対して特定の指標値(誤り率や伝送率)を用いて、誤り訂正方法を自動的に切り替えるという技術である。 より具体的には、受信データを解読して指標値(誤り率/伝送率)を計算し、当該指標値が閾値以下の場合にはARQ、閾値よりも大きい場合にはFECに誤り訂正方法を自動的に切り替えるようになっている。 これにより、データ伝送率や伝送効率の状況によって自動的に最も能率的な誤り訂正方法を選択することが可能となり、網トラフィック負荷を下げることが可能となる(段落0021〜0023参照)。

    一方、特許文献2に記載の技術は、必ずしも安定でない無線区間の回線状態に応じて伝送速度を変更し、誤り制御方式をFEC及びARQのいずれか又は双方を併用することにより、最も伝送効率の良いデータ伝送方式を提供するもので、そのために、この技術においては、無線区間の回線状態(誤り発生状況)を監視して、その誤り発生状況に応じて伝送速度を変更し、適用すべき誤り制御方式としてARQとFECのいずれかを選択・決定することが行なわれる。

    より具体的には、例えば、伝送速度が9600bpsのときにはARQを用い、それ以外の伝送速度(4800bps又は2400bps)ときには、FECによる訂正が可能か否かを判断して、可能であれば自己訂正を行ない、不可能なときには伝送速度が4800bpsであればARQによる再送要求を行なうようになっている。 また、再送回数を監視して、再送回数が多く回線品質が悪い場合には、伝送速度を4800bpsに下げて、ARQ及びFECの併用モードとし、伝送速度が4800bpsのときに再送回数が増加し回線品質がさらに低下した場合には、伝送速度をさらに2400bpsに下げて、FECモードとすることも行なえるようになっている(段落0014及び0015参照)。

    このような特許文献2に記載の技術によれば、回線状態に応じてデータ伝送速度及び伝送速度に適した誤り制御方式を選択するので、最も効率的な伝送速度を達成することが可能となる。

    特開2002−9883号公報

    特開平7−67175号公報

    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台のエンコーダから複数のデコーダに対して映像データを配信するシステムの場合の考慮がなされていない。
    即ち、冗長パケットを挿入すべき間隔が全てのデコーダで同じであり、また、全てのデコーダが同じネットワークに属しており、パケットロストに伴う再送要求の発生回数も全てのデコーダで同程度であれば、エンコーダとデコーダが一組ずつの場合と同等に効率的なエラー訂正とデータ送信帯域の変動抑制とを実現できるが、例えば、デコーダの一部又は全てが異なるネットワークに属しており、あるデコーダが属するネットワークの品質が悪いためにそのデコーダからの再送要求が偏って増加すると、そのデコーダに対するデータ送信帯域が増加し、逆にネットワークの帯域を圧迫してしまうことになる。

    また、デコーダの属するネットワークの品質によって冗長パケットの挿入間隔がデコーダ毎に異なるような場合、エンコーダはデコーダ別に冗長パケットの生成(排他的論理和演算)をそれぞれ行なう必要があり、エンコーダの負荷が増大する。
    そこで、例えば、最もエラーの多いデコーダにあわせて、全てのデコーダに対する冗長パケットの挿入間隔を同じ間隔に設定しておくことも考えられるが、この場合、エラーの少ないデコーダもエラーの多いデコーダに引きずられて冗長パケットの挿入間隔が長くなることになる。 エラーが少ないから冗長パケットの挿入間隔を伸ばしても問題ない、という見方もあるが、FEC方式は前方予測であってエラーに対する予防的な要素が強いため、あるタイミングで突然ロスが増加すると対応できなくなる。

    また、特定のデコーダに合わせて他のデコーダに対する冗長パケットの挿入間隔を変更にすると、さらにエンコーダの負荷が増大するばかりでなく、別のデコーダに対する冗長パケットの挿入間隔が変更されてしまい、望むべきエラー訂正を行なうことができなくなる。 加えて、冗長パケットの挿入間隔を変更して送信レートを変動させると、ネットワーク内の別の通信(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ストリーミングデータを基にエラー訂正用の冗長パケット(パリティ)を生成するもので、本実施形態では、以下の各部としての機能を有している。
    (1)ある冗長パケットを生成するために必要な期間〔冗長パケット生成割合(つまり、挿入間隔)〕には無関係に、動作開始時から累積的に送信データ〔各MPEGパケット(メディアパケットともいう)〕の排他的論理和を計算し続ける排他的論理和累積計算部13Aとしての機能
    (2)当該計算部13Aの計算値をマスタの冗長パケット(FEC値)とし、各デコーダ2(及びクライアント3)に対して冗長パケットを送信した時に、その段階でのマスタの冗長パケット(FEC値)を差分計算用としてデコーダ2別に記憶しておくメモリ(データ受信装置別記憶手段)13Bとしての機能
    (3)いずれかのデコーダ2(又はクライアント3)に対する次回の冗長パケット送信時に、その段階でのマスタの冗長パケット(FEC値)と、記憶しておいた前回のマスタの冗長パケット(FEC値)との排他的論理和を計算することにより、1度の排他的論理和演算だけで次回の冗長パケットを生成する排他的論理和挿入時点計算部13Cとしての機能 この冗長パケット生成部13としての機能(各手段の全部又は一部の機能)は、CPU等のコンピュータ(エンコーダ1)が所定のアプリケーションプログラム(エラー訂正用データ生成プログラム)を実行することによって実現される。 そのプログラムは、例えばフレキシブルディスク、CD−ROM,CD−R,CD−RW,MO,DVD等のコンピュータ読取可能な記録媒体に記録された形態で提供可能である。 なお、当該冗長パケット生成部13の詳細な動作については、図5及び図7を用いて後述する。

    パケット配信部14は、MPEG符号化部12からのMPEGストリーミングデータをパケット化して、冗長パケット生成部13からのパケットとともにネットワーク5に送信(配信)するものである。
    パケットバッファ15は、再送要求を受信した場合のパケット再送に備えて送信済みのMPEGパケット(コピーパケット)を一定時間保存するものであり、再送要求受信部16は、ネットワーク5経由でMPEGデコーダ2から受信される再送要求を受信するものであり、パケット再送部17は、この再送要求受信部16で再送要求が受信された場合に、パケットバッファ15から再送要求のあったMPEGパケットを読み出して再送要求元のMPEGデコーダ2宛に送信するものである。

    サーバ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毎に冗長パケット生成間隔が異なる場合に通常考えられる生成手順について、図4を用いて説明する。 冗長パケットは、ある期間のメディアパケットの排他的論理和の累積により生成されるので、例えば図4(A)に示すように、メディアパケット10個に1個の割合で冗長パケットを送信すべきデコーダ2−1に対しては、通常、メディアパケット1〜10の排他的論理和を計算して冗長パケットを生成、メディアパケット11〜20の排他的論理和を計算して冗長パケットを生成、・・・という具合に冗長パケット生成のために必要な期間のメディアパケットから計算を行なうことになる。

    しかし、この計算方法では、デコーダ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度の排他的論理和演算だけで冗長パケットを生成することが可能となる。
    例えば図5(A)及び図5(D)に示すように、デコーダ2−1については、メディアパケット1〜10についての累積的な排他的論理和の結果(マスタFEC値)を1回目の冗長パケットとして送信するとともに、そのマスタFEC値を記憶しておき、次回の冗長パケットの送信タイミング(挿入予定時点)において、その段階でのFEC計算値と記憶しておいた前回のマスタFEC値との排他的論理和を計算するだけで、次回の冗長パケットを生成することが可能となる。

    同様に、デコーダ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に対して独立した冗長パケットを送信(挿入)することが可能となり、冗長パケット生成処理の負荷を大幅に削減することが可能となる。
    このような動作を実現するため、本実施形態の冗長パケット生成部13は、例えば図6に示すようなFECパケット送信管理テーブル131を有しており、このテーブル131にデコーダ2別に、「最後に冗長パケットを送出した時のメディアパケット番号」及び「その時のマスタFEC値」を保管しておく。 このテーブル131は、テーブル形式のデータとしてRAM等のメモリ(記憶手段)13Bに記憶されて管理される。

    また、この図6に示すように、「次にFECパケットを送出するまでの間隔」も同テーブル131で管理する。 この値もデコーダ2毎にデフォルト設定値及び現在動作値のそれぞれを管理する。 デフォルト設定値は例えばサーバ4から設定され、サーバIF部18経由で設定制御部19に格納されているものとする。
    なお、この値は主にネットワーク5の帯域やMPEGの符号化レート等によって決められる。 現在動作値は、例えばARQ再送パケットを送ったときにFECパケット挿入間隔を変更するために更新される。 例としては、ARQ再送パケットを1パケット送信するとFECパケットの送出間隔をデフォルト値の倍にする(冗長パケットの送信を1回分取り止めればよい)等の制御が考えられる。 この値は図7により後述するように「デコーダ2−kにFECパケットを送信するか」を判定する前に更新され、この判定の条件として使用される。

    次表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)での動作について、図7を用いて説明する。

    エンコーダ1(冗長パケット生成部13)は、まず、MPEG符号化部12からメディアパケットを受信することにより動作を開始し(ステップS1)、メディアパケットを受信する度に排他的論理和を累積的に計算し続けて、マスタの冗長パケットを生成する(ステップS2)。
    この間、冗長パケット生成部13は、あるデコーダ2−i(i=1,2,3,…)から再送要求を受けることにより、パケット再送部17からパケットの再送が行なわれたか否かをチェックし(ステップS3)、再送が行なわれていれば、前記FECパケット送信管理テーブル131の「次にFECパケットを送出するまでの間隔(現在動作値)」を更新し(ステップS3のYesルートからステップS4)、さらに、デコーダ2−iにFECパケットを送信すべきタイミングであるか否かをチェックする(ステップS5)。 なお、パケット再送が行なわれていなければ、上記現在動作値の更新は行なわず、デコーダ2−iにFECパケットを送信すべきタイミングであるか否かをチェックする(ステップS3のNoルートからステップS5)。 FECパケットを送信するタイミングか否かは、サーバ4から指定されたFECパケットの送信間隔や、再送要求受信部16経由でデコーダ2−iからの再送要求を受信したパケット再送部17により送信間隔を変更するように指示された回数等から、映像配信先デコーダ2−i毎に判断される。

    その結果、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パケット挿入間隔の変更により全体のデータ送信帯域を一定に保ちつつ、効率的なエラー訂正を実現することが可能となる。

    なお、本発明は、上述した実施形態に限定されず、本発明の趣旨を逸脱しない範囲で種々変形して実施することができることはいうまでもない。
    例えば、上述した例では、FECとARQの両エラー訂正方式を併用しているが、本発明は、FEC方式単独を採用するデータ送信装置についても同様に適用される。 また、上述した例では、データ配信先が複数存在し、それぞれについてのFECパケット挿入間隔が変更されて異なる場合の動作について説明したが、それぞれについての挿入間隔が同じであっても、固定であっても同様に適用でき、FECパケット生成のための排他的論和の計算負荷を大幅に軽減することが可能である。

    さらに、上述した例では、送信データがストリーミングデータ(メディアパケット)である場合について説明したが、本発明は、勿論、他の種類のデータであっても同様に適用され、上述した実施形態と同様の作用効果を得ることが可能である。
    〔B〕付記 (付記1)
    送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データの生成方法であって、
    該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続け、
    前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するエラー訂正用データの生成方法。

    (付記2)
    複数のデータ受信装置宛に該送信データを配信する際に、該データ受信装置別にそれぞれ所定の挿入間隔で該エラー訂正用データを送信する場合において、
    前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値を該データ受信装置別に記憶しておき、
    該データ受信装置のそれぞれについて、上記記憶しておいた前回のエラー訂正用データ挿入時点での該計算値と今回のエラー訂正用データ挿入予定時点での上記排他的論理和計算の計算値との排他的論理和を計算することにより、今回挿入すべき該エラー訂正用データを生成することを特徴とする、付記1記載のエラー訂正用データの生成方法。

    (付記3)
    該挿入間隔が、該送信データについての再送要求に応じて変更されることを特徴とする、付記1又は2に記載のエラー訂正用データの生成方法。
    (付記4)
    送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成するエラー訂正用データの生成装置であって、
    該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続ける排他的論理和累積計算手段と、
    前回のエラー訂正用データ挿入時点での該排他的論理和累積計算手段の計算値を記憶する記憶手段と、
    今回のエラー訂正用データ挿入予定時点での該排他的論理和累積計算手段の計算値と、該記憶手段に記憶された前回のエラー訂正用データ挿入時点での該計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成する排他的論理和挿入時点計算手段とをそなえたことを特徴とする、エラー訂正用データの生成装置。

    (付記5)
    複数のデータ受信装置宛に該送信データを配信する際に、該データ受信装置別にそれぞれ所定の挿入間隔で該エラー訂正用データを送信する場合において、
    該記憶手段が、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値を該データ受信装置別に記憶するデータ受信装置別記憶手段として構成されるとともに、
    該排他的論理和挿入時点計算手段が、該データ受信装置のそれぞれについて、該データ受信装置別記憶手段に記憶された前回のエラー訂正用データ挿入時点での該計算値と今回のエラー訂正用データ挿入予定時点での該排他的論理和累積計算手段の計算値との排他的論理和を計算する手段として構成されたことを特徴とする、付記4記載のエラー訂正用データの生成装置。

    (付記6)
    該挿入間隔を該送信データについての再送要求に応じて変更する挿入間隔変更手段をさらにそなえたことを特徴とする、付記4又は5に記載のエラー訂正用データの生成装置。
    (付記7)
    コンピュータに、送信データに対して或る挿入間隔で挿入すべきエラー訂正用データを該送信データについての排他的論理和の計算により生成させるエラー訂正用データの生成プログラムであって、
    該コンピュータに、
    該挿入間隔とは独立して累積的に該送信データの排他的論理和を計算し続けるステップと、
    前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するステップとを実行させることを特徴とする、エラー訂正用データの生成プログラム。

    (付記8)
    付記7記載のエラー訂正用データの生成プログラムを格納したコンピュータ読み取り可能な記録媒体。

    以上詳述したように、本発明によれば、エラー訂正用データの挿入間隔とは独立して累積的に送信データの排他的論理和を計算し続け、前回のエラー訂正用データ挿入時点での上記排他的論理和の計算値と、今回のエラー訂正用パケット挿入予定時点での上記排他的論理和の計算値との排他的論理和を計算することにより、今回挿入すべきエラー訂正用データを生成するので、エラー訂正用データの計算を挿入間隔の相違や変更の有無に依存しないで効率良く行なってその負荷を大幅に軽減することができ、情報通信技術分野において極めて有用と考えられる。

    本発明の一実施形態に係る映像配信システムの構成を示すブロック図である。

    図1に示すMPEGエンコーダの要部構成を示すブロック図である。

    図1に示すMPEGデコーダの要部構成を示すブロック図である。

    (A)〜(C)はそれぞれMPEGデコーダ毎の冗長パケットの生成(挿入)方法を説明するための図である。

    (A)〜(D)はそれぞれ本実施形態の冗長パケットの生成方法を説明するための図である。

    本実施形態に係る冗長パケット送信管理テーブルの一例を示す図である。

    本実施形態の冗長パケット生成方法を説明するためのフローチャートである。

    従来のFECを利用したエラー訂正方法を説明するための図である。

    従来のARQを利用したエラー訂正方法を説明するための図である。

    符号の説明

    1 MPEGエンコーダ(データ送信装置)
    11A 映像アナログ/デジタル(A/D)変換器 11B 音声A/D変換器 12 MPEG符号化部 13 冗長パケット生成部 13A 排他的論理和累積計算部 13B メモリ(データ受信装置別記憶手段)
    13C 排他的論理和挿入時点計算部 131 FECパケット送信管理テーブル 14 パケット配信部 15 パケットバッファ 16 再送要求受信部 17 パケット再送部 18 サーバインタフェース(IF)部 19 設定制御部 2−1,2−2,2−3,… MPEGデコーダ(データ受信装置)
    20 エラー訂正装置 21 パケット受信部 22 エラー訂正部 23 再送要求送信部 24 パケット抜け判定部(パケット欠落検出部,再送要求制御部)
    25 MPEG復号化部 26A 映像D/A変換器 26B 音声D/A変換器 27 サーバIF部 28 設定制御部 3 クライアント 4 サーバ 5 ネットワーク

    QQ群二维码
    意见反馈