JP2016092640A - 生成装置、生成方法及びプログラム - Google Patents

生成装置、生成方法及びプログラム Download PDF

Info

Publication number
JP2016092640A
JP2016092640A JP2014226204A JP2014226204A JP2016092640A JP 2016092640 A JP2016092640 A JP 2016092640A JP 2014226204 A JP2014226204 A JP 2014226204A JP 2014226204 A JP2014226204 A JP 2014226204A JP 2016092640 A JP2016092640 A JP 2016092640A
Authority
JP
Japan
Prior art keywords
error correction
correction code
redundancy
interleave
combination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014226204A
Other languages
English (en)
Inventor
駿 杉本
Shun Sugimoto
駿 杉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014226204A priority Critical patent/JP2016092640A/ja
Priority to US14/921,174 priority patent/US9774353B2/en
Publication of JP2016092640A publication Critical patent/JP2016092640A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6547TCP, UDP, IP and associated protocols, e.g. RTP

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Computer Networks & Wireless Communication (AREA)

Abstract

【課題】通信帯域を逼迫させず、且つリアルタイム性を維持した状態での誤り訂正符号を生成することができる生成装置を提供することを課題とする。【解決手段】生成装置は、データパケットに対する誤り訂正符号を生成する生成装置であって、誤り訂正符号の冗長度の範囲を決定する第1の決定部と、誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する第2の決定部と、第2の決定部により決定された複数のインタリーブ長の組み合わせで、データパケットに対して誤り訂正符号を生成する生成部とを有し、第2の決定部は、複数のインタリーブ長の組み合わせについてデータパケットに対する誤り訂正符号の冗長度の合計が、第1の決定部が決定した冗長度の範囲内となるように、複数のインタリーブ長の組み合わせを決定する。【選択図】図5

Description

本発明は、生成装置、生成方法及びプログラムに関する。
現在、インターネット等のIP(Internet Protocol)ネットワークを用いたメディア伝送が普及している。特に、RTP(A Transport Protocol for Real-Time Applications, RFC3550, IETF)が利用されてきている。RTPは、カメラ等で撮影した動画像や音声等のメディアデータをネットワーク経由でリアルタイムに送信するプロトコルである。RTPは、トランスポート層でTCP(Transmission Control Protocol)に比較して転送速度の速いUDP(User Datagram Protocol)を使用することを想定している。UDPは、転送速度は速いが、パケットロス対策や伝送時間保証が無いため、トランスポート層よりも上位層で通信エラー対応をする必要がある。特に、パケットロスが発生すると、伝送データが部分的に欠落し、メディア伝送においては、映像の乱れや、音声途切れといった品質の低下が懸念されるため、これを回復する制御が必要となる。
RTPにエラー回復能力を付与するものとして、RTP−FEC(An RTP Payload Format for Generic Forward Error Correction, RFC 5109, IETF)が知られている。RTP−FECは、前方誤り訂正(FEC: Forward Error Correction)技術を組み込んだものである。RTP−FECでは、映像や音声といった保護対象データパケットに対して誤り訂正符号による冗長データを生成し、パケット化した誤り訂正符号パケットとしてデータパケットと共に受信装置へ送信する。
誤り訂正符号の生成方式の一つとして、排他的論理和(XOR)によるパリティ方式がある。パリティ方式による誤り訂正符号パケットは、生成による計算処理コストは低いが、複数の保護対象データパケットにエラーが発生してしまうと回復できない。そのため、保護対象データパケットのエラー耐性を高めるために、一つの保護対象データパケットを複数の誤り訂正符号パケットで保護する方法がある(例えば、特許文献1参照)。また、インターネットの様に複数パケットの連続したエラー、所謂バーストエラーが発生することのある環境での保護対象データパケットのエラー耐性を高めるために、保護対象データパケットを任意の間隔分空けて選択し、インタリーブする方法がある。
特開2008−16907号公報
しかしながら、一つの保護対象データパケットを複数の誤り訂正符号パケットで保護すると、誤り訂正符号パケット数が増え、送信データ量が増加するため、通信帯域を圧迫し、エラーレートが上昇してしまう可能性がある。また、保護対象データパケットを任意の間隔分空けてインタリーブすると、誤り訂正符号パケットを生成するために必要となる保護対象データパケットブロックのサイズが大きくなり、遅延が発生してしまう。
本発明の目的は、通信帯域を逼迫させず、且つリアルタイム性を維持した状態での誤り訂正符号を生成することができる生成装置、生成方法及びプログラムを提供することである。
本発明の生成装置は、データパケットに対する誤り訂正符号を生成する生成装置であって、前記誤り訂正符号の冗長度の範囲を決定する第1の決定部と、前記誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する第2の決定部と、前記第2の決定部により決定された複数のインタリーブ長の組み合わせで、前記データパケットに対して誤り訂正符号を生成する生成部とを有し、前記第2の決定部は、前記複数のインタリーブ長の組み合わせについて前記データパケットに対する誤り訂正符号の冗長度の合計が、前記第1の決定部が決定した冗長度の範囲内となるように、前記複数のインタリーブ長の組み合わせを決定することを特徴とする。
本発明によれば、通信帯域を逼迫させず、且つリアルタイム性を維持した状態での誤り訂正符号を生成することができる。
ハードウェアの構成例を示すブロック図である。 モジュールの構成例を示すブロック図である。 インタリーブ長の組み合わせを決定するフローチャートである。 誤り訂正符号構成と冗長度の対応を示す図である。 誤り訂正符号の冗長度組み合わせを決定するフローチャートである。 誤り訂正符号構成と冗長度の対応を示す図である。 最小インタリーブ長を決定するフローチャートである。 誤り訂正符号構成と冗長度の対応を示す図である。
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
(第1の実施形態)
本実施形態では、通信システムは、送信装置及び受信装置を有する。送信装置は、カメラ等で撮像した映像・音声などのメディアデータパケット及びメディアデータを保護する誤り訂正符号パケットを生成し、受信装置に対して送信する。送信装置及び受信装置は、それぞれ単一のコンピュータ装置で実現してもよいし、必要に応じた複数のコンピュータ装置に各機能を分散して実現するようにしてもよい。複数のコンピュータ装置で構成される場合は、互いに通信可能なようにLAN(Local Area Network)等で接続されている。
図1は、本発明の第1の実施形態による送信装置(生成装置)のハードウェア構成の一例を示すブロック図である。CPU(Central Processing Unit)101は、以下に述べる各部を統括的に制御する。ROM(Read Only Memory)102は、CPU101で実行される制御プログラム等を格納している。RAM(Random Access Memory)103は、CPU101の主メモリ及びワークエリア等として機能する。ネットワークインタフェース(I/F)104は、インターネット、公衆無線、又はLANと接続できるインタフェースである。データ入力部105は、カメラやメディアサーバからメディアデータを入力する。エンコーダ部106は、データ入力部105に入力されたメディアデータを特定の符号化方式、例えばH.265やJPEG等に応じて変換する処理を行う。バス107は、各種データの転送経路である。
図2は、ROM102に記憶されるプログラム200のモジュール構成を示すブロック図である。CPU101がプログラム200の各モジュールを実行することのより、以下の処理が行われる。メディア入力モジュール201は、エンコーダ部106から特定の符号化方式によりエンコードされたメディアデータを受け取るためのプログラムである。
パケット化モジュール202は、メディア入力モジュール201から受け取ったメディアデータを通信プロトコルに応じてパケット化を行うプログラムである。また、パケット化モジュール202は、誤り訂正符号生成モジュール208から受け取った誤り訂正符号についても同様に通信プロトコルに応じてパケット化を行う。リアルタイム性の要求が高い通信システムにおいては、一般的にRTP/UDPが利用されるが、これ以外の通信プロトコルでもよいし、独自プロトコルでもよい。また、パリティ方式の誤り訂正符号パケットのパケット化方法は、例えば、前述したRTP−FECやPro-MPEG FEC(Pro-MPEG Code of Practice #3 release 2, Pro-MPEG Forum)等がある。これらの既存プロトコルを利用してもよいし、独自ヘッダを定義してもよい。但し、RFC 5109で定義されるRTP−FECにおいては、後述するブロック長が48を超える場合は利用することができない。
パケット送信モジュール203は、パケット化モジュール202から受け取ったパケットをネットワークI/F104を介し、所定の通信プロトコルにより受信装置に送信するプログラムである。パケット受信モジュール204は、受信装置からネットワークI/F104を介してパケットを受信するプログラムである。ここで、受信するパケットは、通信状況を把握するためのレポートパケットや受信装置でのバッファリング時間を通知されるパケット等である。ここで挙げた全てのパケットを受信しなくてもよいし、これ以外のパケットを受信してもよい。
通信状況把握モジュール205は、パケット受信モジュール204から受け取った受信装置からのレポートパケットや受信装置でのバッファリング時間通知パケット等から通信状況を把握するプログラムである。例えば、通信状況把握モジュール205は、レポートパケットから送信装置と受信装置間でのパケット往復時間(RTT: Round Trip Time)やエラーレートを算出し、それらの結果から利用可能通信帯域を測定する。通信帯域の測定方法は、例えば、TFRC(TCP Friendly Rate Control: Protocol Specification, RFC 5348, IETF)があるが、これ以外の方法でもよい。
許容遅延時間算出モジュール206は、通信状況把握モジュール205から受け取った送信装置と受信装置間の遅延時間情報や受信装置でのバッファリング時間等から許容遅延時間を算出するプログラムである。算出方法は、例えば、通信システムに要求されるリアルタイム性に応じた時間からパケット往復時間/2と受信装置でのバッファリング時間を差し引いた時間を送信装置側での許容遅延時間とする方法が挙げられるが、これ以外の方法でもよい。ジッタや受信装置側でのデコード時間等を考慮してもよい。許容遅延時間の出力値としては、時間ではなく、例えば映像のフレーム数やMPEG方式におけるGOP(Group Of Pictures)数等でもよい。
誤り訂正符号設定モジュール207は、通信状況把握モジュール205から受け取った通信状況や許容遅延時間算出モジュール206から受け取った許容遅延時間から、誤り訂正符号生成のパラメータ設定を決定するプログラムである。具体的な設定方法については後述する。
誤り訂正符号生成モジュール208は、パケット化モジュール202から受け取ったメディアデータパケットに対して、誤り訂正符号設定モジュール207にて設定されたパラメータに応じて誤り訂正符号を生成するプログラムである。一つの誤り訂正符号は、二つ以上のメディアデータに対して排他的論理和(XOR)演算処理することにより生成する。誤り訂正符号生成モジュール208は、生成した誤り訂正符号をパケット化モジュール202に出力する。
図3は、CPU101が誤り訂正符号設定モジュール207を実行することにより誤り訂正符号生成のパラメータ設定を決定する方法の一例を示すフローチャートである。ステップS301では、誤り訂正符号設定モジュール207は、通信状況把握モジュール205からエラーレートやパケット往復時間を取得する。次に、ステップS302では、誤り訂正符号設定モジュール207は、許容遅延時間算出モジュール206から許容遅延時間、又は許容遅延フレーム数等を取得する。
次に、ステップS303では、誤り訂正符号設定モジュール(第3の決定部)207は、誤り訂正符号を生成する際に選択可能なデータパケットの数を示すブロック長を決定する。具体的には、誤り訂正符号設定モジュール207は、ステップS302にて取得した許容遅延時間、又は許容遅延フレーム数等を基にブロック長を決定する。例えば、許容遅延時間が100msec、映像のフレームレートが30fpsであれば、3フレーム分の連続したデータパケット群の範囲がブロック長となる。ブロック長の算出方法は、これ以外の方法でもよい。例えば、誤り訂正符号設定モジュール207は、受信装置においてパケットバッファリングに利用可能メモリ量を把握し、利用可能メモリ量に応じてブロック長を算出してもよい。
次に、ステップS304では、誤り訂正符号設定モジュール(最大データパケット数決定部)207は、通信のエラーレートを基に、一つの誤り訂正符号が保護する最大データパケット数を決定(算出)する。保護する最大データパケット数の算出は、必ずしも必要なものではなく、算出しなくてもよい。算出する方法として、保護対象データパケット数に対する誤り訂正符号パケットの割合がステップS301にて取得したエラーレートよりも下回らないように算出する方法がある。例えば、エラーレートが1%であれば、保護する最大データパケット数は100を上回らないようにする。
次に、ステップS305では、誤り訂正符号設定モジュール207は、誤り訂正符号パケットが利用できる合計冗長度を算出する。例えば、通信状況把握モジュール205が前述したTFRCにより通信帯域を測定し、誤り訂正符号設定モジュール207がその測定結果をステップS301で取得する。そして、誤り訂正符号設定モジュール207は、ステップS305にて、ステップS301から取得した通信帯域からデータパケットが利用する通信帯域分を差し引いた帯域を誤り訂正符号パケットが利用できる利用可能通信帯域として算出する。そして、誤り訂正符号設定モジュール(第1の決定部)207は、算出した利用可能通信帯域を基に、誤り訂正符号の利用可能冗長度(冗長度の範囲)を決定する。例えば、誤り訂正符号パケットが利用できる利用可能通信帯域が10Mbpsで、データパケットが利用する通信帯域が40Mbpsであった場合、利用可能冗長度は10(Mbps)/40(Mbps)の25%となる。
次に、ステップS306では、誤り訂正符号設定モジュール207は、異なるインタリーブ長での誤り訂正符号冗長度を複数パターン算出する。図4に、誤り訂正符号生成におけるブロック長が100パケットであった場合のインタリーブ長と誤り訂正符号冗長度の対応表を示す。1列目は、インタリーブ長を示しており、誤り訂正符号を生成する際に、保護するデータパケットを何個間隔で選択するかを意味する。2列目は、誤り訂正符号の構成を示しており、数字で表現されているのが保護対象のデータパケットのシーケンス番号であり、「F」はそれら保護対象のデータパケット群で生成される誤り訂正符号を示す。3列目は、冗長度を示しており、保護対象データパケットのブロックに対する誤り訂正符号の割合を意味する。インタリーブ長を大きくすると、一つの誤り訂正符号が保護するデータパケット数が減り、全体の誤り訂正符号パケット数が増える。誤り訂正符号設定モジュール207は、ステップS304にて保護できる最大データパケット数を算出している場合、保護データパケット数がこれを上回るインタリーブ長を選択することができない。例えば、誤り訂正符号設定モジュール207は、最大データパケット数が30であった場合、インタリーブ長の「2」(保護データパケット数50)及びインタリーブ長の「3」(保護データパケット数34又は33)を選択することができない。すなわち、誤り訂正符号設定モジュール207は、一つの誤り訂正符号が保護するデータパケット数が最大データパケット数以内となるように複数のインタリーブ長の組み合わせを決定する。また、インタリーブ長は、素数の値、又は互いに1以外に共通の約数を持たない値である。図4の例では、インタリーブ長は、全て素数で算出しているが、1以外に共通の約数を持たなければよいので、例えば、4は素数ではないが、インタリーブ長の「3」、「4」、「5」のような組み合わせは可能である。本実施形態では、説明の簡素化のため、インタリーブ長は、全て素数となるような組み合わせで説明している。これにより、複数の誤り訂正符号が保護するデータパケットの中における共通データパケットの組み合わせ数を可能な限り少なくする。共通データパケットの組み合わせとは、例えば、図4の例において、インタリーブ長の「2」と「3」の誤り訂正符号構成の中で、データパケットの「1」と「7」の組み合わせである。これは、パリティ方式の誤り訂正符号においては、データパケットの「1」と「7」にエラーが発生してしまうと、インタリーブ長の「2」及び「3」の誤り訂正符号のどちらでも回復できない。共通データパケットの組み合わせを無くす方法もあるが、これについては第2の実施形態にて別途説明する。
次に、ステップS307では、誤り訂正符号設定モジュール207は、合計冗長度を保持しておく変数に、ステップS306で算出した複数のインタリーブ長の中で最低冗長度となる冗長度を初期値として設定する。図4の例では、インタリーブ長の「2」の冗長度の「2%」が設定される。
次に、ステップS308では、誤り訂正符号設定モジュール207は、現在の合計冗長度とステップS305にて算出した誤り訂正符号パケットが利用可能冗長度とを比較する。現在の合計冗長度が利用可能冗長度を超えていない場合には、ステップS309に移行する。現在の合計冗長度が利用可能冗長度を超えている場合には、ステップS310に移行する。
ステップS309では、誤り訂正符号設定モジュール207は、合計冗長度を保持している変数に、ステップS306で算出した複数のインタリーブ長において選択していないインタリーブ長の中で最低冗長度となる冗長度を加算する。図4の例では、インタリーブ長の「3」の冗長度の「3%」が加算され、初期値の「2%」と合わせて合計冗長度は「5%」となる。次に、加算する際は、インタリーブ長の「5」の冗長度の「5%」が加算される。その後、ステップS308の処理に戻る。
ステップS310では、誤り訂正符号設定モジュール207は、冗長度を加算した回数を組み合わせ数xとして設定する。例えば、ステップS305にて算出した誤り訂正符号パケットの利用可能冗長度が25%であった場合、合計冗長度が利用可能冗長度を超えるパターンは、2(%)+3(%)+5(%)+7(%)+11(%)=28%となる。この場合、冗長度を加算した回数は4回になるため、組み合わせ数xは4となる。すなわち、誤り訂正符号設定モジュール207は、複数のインタリーブ長の組み合わせについてデータパケットに対する誤り訂正符号の冗長度の合計が、利用可能冗長度の範囲内であって、最大のインタリーブ長の組み合わせ数xを決定する。
次に、ステップS311では、誤り訂正符号設定モジュール207は、ステップS310で決定した組み合わせ数xに基づいて、複数のインタリーブ長の組み合わせを決定する。決定する方法の一例として、図5にインタリーブ長組み合わせ決定方法のフローチャートを示す。
ステップS501では、誤り訂正符号設定モジュール207は、組み合わせ数xを要素数とする冗長度組み合わせ配列R[1・・・x]に最小の冗長度から順番に格納する。例えば、ステップS305にて算出した誤り訂正符号パケットの利用可能冗長度が25%であり、インタリーブ長パターンが図4の場合、x=4、R[1]=2(%)、R[2]=3(%)、R[3]=5(%)、R[4]=7(%)が格納される。初期状態での合計冗長度は17%となる。
次に、ステップS502では、誤り訂正符号設定モジュール207は、冗長度を調整するインデックス番号iに組み合わせ数x(=4)を初期値として設定する。
次に、ステップS503では、誤り訂正符号設定モジュール207は、R[i]の冗長度を未選択のインタリーブ長の冗長度の中から次に大きい冗長度に変更する。上記の例では、R[4]=11(%)に変更される。
次に、ステップS504では、誤り訂正符号設定モジュール207は、ステップS503で変更された状態の合計冗長度と利用可能冗長度を比較する。合計冗長度が利用可能冗長度未満である場合にはステップS503に戻り、合計冗長度が利用可能冗長度以上である場合にはステップS505に移行する。上記の例では、合計冗長度がR[1](=2%)+R[2](=3%)+R[3](=5%)+R[4](=11%)=21%となり、利用可能冗長度(=25%)未満であるため、ステップS503に戻る。次に大きい冗長度は13%なので、R[4]=13(%)に変更され、合計冗長度は23%となる。この場合、合計冗長度が利用可能冗長度(=25%)未満なので、再度ステップS503に戻り、次に大きい冗長度は17%なので、R[4]=17(%)に変更され、合計冗長度は27%となる。この場合、合計冗長度が利用可能冗長度(=25%)以上であるため、ステップS505に進む。
ステップS505では、誤り訂正符号設定モジュール207は、R[i]の冗長度を一つ変更前に戻す。ここでは、R[4]が17%から13%に戻される。
次に、ステップS506では、誤り訂正符号設定モジュール207は、冗長度調整インデックス番号iが1よりも大きいかどうかを比較する。冗長度調整インデックス番号iが1よりも大きい場合は、ステップS507に移行する。冗長度調整インデックス番号iが1以下の場合、誤り訂正符号設定モジュール207は、現在の冗長度組み合わせ配列R[1・・・x]を最終的に決定された冗長度、またそれに対応するインタリーブ長の組み合わせとして決定する。
ステップS507では、誤り訂正符号設定モジュール207は、冗長度調整インデックス番号iをデクリメントし、ステップS503に戻る。
上記の例では、続いてR[3]=7(%)に変更され、合計冗長度は25%となる。この後の冗長度組み合わせ配列R[1・・・x]は変更が無いため説明は省略する。最終的な冗長度組み合わせ配列として、R[1]=2(%)、R[2]=3(%)、R[3]=7(%)、R[4]=13(%)として決定される。
図5で説明したインタリーブ長組み合わせ決定方法は一例であり、これに限らない。誤り訂正符号パケットの利用可能冗長度が25%である。図4のインタリーブ長パターンの場合、合計冗長度が25%となる組み合わせは、R[1]=2(%)、R[2]=5(%)、R[3]=7(%)、R[4]=11(%)となる組み合わせもあるが、こちらを選択するアルゴリズムでも構わない。
以上のように、図3のステップS311では、誤り訂正符号設定モジュール(第2の決定部)207は、誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する。誤り訂正符号設定モジュール(第2の決定部)207は、複数のインタリーブ長の組み合わせについてデータパケットに対する誤り訂正符号の冗長度の合計が、利用可能冗長度の範囲内で最大となるように、複数のインタリーブ長の組み合わせを決定する。誤り訂正符号生成モジュール(生成部)208は、誤り訂正符号設定モジュール(第2の決定部)207により決定された複数のインタリーブ長の組み合わせで、データパケットに対して誤り訂正符号を生成する。
(第2の実施形態)
第1の実施形態では、インタリーブ長を素数の値、又は互いに1以外に共通の約数を持たない値にすることで、複数の誤り訂正符号が保護するデータパケットの中における共通データパケットの組み合わせ数を可能な限り少なくする方法を説明した。本発明の第2の実施形態では、全ての誤り訂正符号において、保護するデータパケットの中の共通データパケットの組み合わせを無くす方法について説明する。なお、本実施形態は、第1の実施形態におけるハードウェア構成やモジュール構成については共通であるため、説明を省略する。
本実施形態では、第1の実施形態の条件である、インタリーブ長を素数の値、又は互いに1以外に共通の約数を持たない値にすることに加え、最小のインタリーブ長を、そのインタリーブ長の二乗値がブロック長以上になるようにする。これにより、複数の誤り訂正符号パケットが保護するデータパケット群の中における共通データパケットの組み合わせを無くすことができる。
図6は、ブロック長が100パケットの場合に、最小のインタリーブ長を、そのインタリーブ長の二乗値がブロック長以上になるようにした際のインタリーブ長と誤り訂正符号冗長度の対応を示す。ブロック長が100パケットの場合の最小のインタリーブ長は、100の1/2乗の10となる。10以降は、1以外に共通の約数を含まないインタリーブ長で冗長度を算出する。例えば、インタリーブ長は、10、11、13、17、19、21等である。
最小のインタリーブ長は、予め設定した初期値を用いてもよいし、通信状況把握モジュール205がバーストエラー長を記録しておき、誤り訂正符号設定モジュール207がバーストエラー長に応じて動的に最小のインタリーブ長を設定してもよい。一例として、これら全てを併用した場合の最小インタリーブ長決定方法のフローチャートを図7に示す。図7の処理は、図3におけるステップS306の冗長度算出処理の前処理として実施される。
ステップS701では、誤り訂正符号設定モジュール207は、最小インタリーブ長を保持する変数に予め設定した初期値を設定する。次に、ステップS702では、誤り訂正符号設定モジュール207は、通信状況把握モジュール205からバーストエラー長を取得する。バーストエラー長の記録は、記録を保持する期限を設けてもよい。例えば、最後に発生したバーストエラーから一定時間が経過したらその値をリセットしてもよいし、段階的に下げてもよい。
次に、ステップS703では、誤り訂正符号設定モジュール207は、最小インタリーブ長とステップS702で取得したバーストエラー長を比較する。最小インタリーブ長がバーストエラー長未満である場合にはステップS704に移行し、最小インタリーブ長がバーストエラー長以上である場合にはステップS705に移行する。
ステップS704では、誤り訂正符号設定モジュール207は、最小インタリーブ長をバーストエラー長に設定し、ステップS705に移行する。ステップS705では、誤り訂正符号設定モジュール207は、図3のステップS303にて算出したブロック長を取得する。
次に、ステップS706では、誤り訂正符号設定モジュール207は、最小インタリーブ長とステップS705で取得したブロック長の1/2乗値を比較する。最小インタリーブ長がブロック長の1/2乗値未満である場合にはステップS707に移行し、最小インタリーブ長がブロック長の1/2乗値以上である場合には、最小インタリーブ長を維持し、本処理を終了する。
ステップS707では、誤り訂正符号設定モジュール207は、最小インタリーブ長をブロック長の1/2乗値に設定し、本処理を終了する。
図6の例では、ブロック長が100と小さいため、最小のインタリーブ長における最小冗長度が10%と高いが、ブロック長が大きくなると、最小冗長度を低くすることができる。例えば、図8に、ブロック長が1024パケットの場合に、最小のインタリーブ長を、そのインタリーブ長の二乗値がブロック長以上になるようにした際のインタリーブ長と誤り訂正符号冗長度の対応を示す。ブロック長が1024パケットの場合の最小のインタリーブ長は、1024の1/2乗の32となる。この最小インタリーブ長の冗長度は3.125%となり、ブロック長が100の場合と比較して低い範囲で冗長度の設定が可能となる。第1及び第2の実施形態では、条件に応じてブロック長を制御してもよく、段階的に制御してもよい。例えば、リアルタイム性よりも映像品質を重視するシステム等において、ブロック長を制御、特に意図的に大きくすることで、限られた利用可能通信帯域の中で誤り訂正符号の冗長度を柔軟に制御できるようにしてもよい。また、最小のインタリーブ長における最小冗長度が誤り訂正符号に利用可能な通信帯域で送信できない場合に、ブロック長を大きくしてもよい。
以上、第1及び第2の実施形態を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、コンピュータ読取可能であり、実施形態において図に示したフローチャートに対応したプログラムである。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
以上のように、上記実施形態は、誤り訂正符号パケットに利用できる通信帯域と受信装置側での許容遅延時間を考慮した範囲内で可能な限り保護対象データパケットのエラー耐性を高める構成で誤り訂正符号パケットを生成する。これにより、通信帯域を逼迫させず、且つリアルタイム性を維持した状態での誤り訂正符号を適用したメディア伝送を可能とする。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
205 通信状況把握モジュール、206 許容遅延時間算出モジュール、207 誤り訂正符号設定モジュール、208 誤り訂正符号生成モジュール

Claims (12)

  1. データパケットに対する誤り訂正符号を生成する生成装置であって、
    前記誤り訂正符号の冗長度の範囲を決定する第1の決定部と、
    前記誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する第2の決定部と、
    前記第2の決定部により決定された複数のインタリーブ長の組み合わせで、前記データパケットに対して誤り訂正符号を生成する生成部とを有し、
    前記第2の決定部は、前記複数のインタリーブ長の組み合わせについて前記データパケットに対する誤り訂正符号の冗長度の合計が、前記第1の決定部が決定した冗長度の範囲内となるように、前記複数のインタリーブ長の組み合わせを決定することを特徴とする生成装置。
  2. 前記第2の決定部は、1以外に共通の約数を持たないインタリーブ長の組み合わせを決定することを特徴とする請求項1記載の生成装置。
  3. 前記第1の決定部は、利用可能通信帯域を基に前記冗長度の範囲を決定することを特徴とする請求項1又は2記載の生成装置。
  4. さらに、許容遅延時間を基に、前記誤り訂正符号を生成する際に選択可能なデータパケットの数を示すブロック長を決定する第3の決定部を有することを特徴とする請求項1〜3のいずれか1項に記載の生成装置。
  5. さらに、利用可能メモリ量を基に、前記誤り訂正符号を生成する際に選択可能なデータパケットの数を示すブロック長を決定する第3の決定部を有することを特徴とする請求項1〜3のいずれか1項に記載の生成装置。
  6. 前記第2の決定部は、前記複数のインタリーブ長の組み合わせについて前記データパケットに対する誤り訂正符号の冗長度の合計が、前記第1の決定部が決定した冗長度の範囲内であって、最大の前記インタリーブ長の組み合わせ数を決定し、前記決定したインタリーブ長の組み合わせ数を用いて前記複数のインタリーブ長の組み合わせを決定することを特徴とする請求項1〜5のいずれか1項に記載の生成装置。
  7. さらに、通信のエラーレートを基に一つの誤り訂正符号が保護する最大データパケット数を決定する最大データパケット数決定部を有し、
    前記第2の決定部は、一つの誤り訂正符号が保護するデータパケット数が前記最大データパケット数以内となるように前記複数のインタリーブ長の組み合わせを決定することを特徴とする請求項1〜6のいずれか1項に記載の生成装置。
  8. 前記複数のインタリーブ長のうちの最小のインタリーブ長は、初期値として設定されることを特徴とする請求項1〜7のいずれか1項に記載の生成装置。
  9. 前記複数のインタリーブ長のうちの最小のインタリーブ長は、バーストエラー長であることを特徴とする請求項1〜7のいずれか1項に記載の生成装置。
  10. 前記複数のインタリーブ長のうちの最小のインタリーブ長は、前記ブロック長に応じた値であることを特徴とする請求項4又は5記載の生成装置。
  11. データパケットに対する誤り訂正符号を生成する生成方法であって、
    第1の決定部により、前記誤り訂正符号の冗長度の範囲を決定する第1の決定ステップと、
    第2の決定部により、前記誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する第2の決定ステップと、
    生成部により、前記第2の決定ステップで決定された複数のインタリーブ長の組み合わせで、前記データパケットに対して誤り訂正符号を生成する生成ステップとを有し、
    前記第2の決定ステップでは、前記複数のインタリーブ長の組み合わせについて前記データパケットに対する誤り訂正符号の冗長度の合計が、前記第1の決定ステップで決定された冗長度の範囲内となるように、前記複数のインタリーブ長の組み合わせを決定することを特徴とする生成方法。
  12. データパケットに対する誤り訂正符号を生成するためのプログラムであって、
    前記誤り訂正符号の冗長度の範囲を決定する第1の決定ステップと、
    前記誤り訂正符号の生成対象の複数のデータパケットの間隔を示す複数のインタリーブ長の組み合わせを決定する第2の決定ステップと、
    前記第2の決定ステップで決定された複数のインタリーブ長の組み合わせで、前記データパケットに対して誤り訂正符号を生成する生成ステップとをコンピュータに実行させるためのプログラムであって、
    前記第2の決定ステップでは、前記複数のインタリーブ長の組み合わせについて前記データパケットに対する誤り訂正符号の冗長度の合計が、前記第1の決定ステップで決定された冗長度の範囲内となるように、前記複数のインタリーブ長の組み合わせを決定することを特徴とするプログラム。
JP2014226204A 2014-11-06 2014-11-06 生成装置、生成方法及びプログラム Pending JP2016092640A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014226204A JP2016092640A (ja) 2014-11-06 2014-11-06 生成装置、生成方法及びプログラム
US14/921,174 US9774353B2 (en) 2014-11-06 2015-10-23 Generating apparatus, generating method and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014226204A JP2016092640A (ja) 2014-11-06 2014-11-06 生成装置、生成方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2016092640A true JP2016092640A (ja) 2016-05-23

Family

ID=55913059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014226204A Pending JP2016092640A (ja) 2014-11-06 2014-11-06 生成装置、生成方法及びプログラム

Country Status (2)

Country Link
US (1) US9774353B2 (ja)
JP (1) JP2016092640A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014641A (ja) * 2016-07-21 2018-01-25 住友電気工業株式会社 Mmtコンテンツ作成装置および作成プログラム
JPWO2021166016A1 (ja) * 2020-02-17 2021-08-26
WO2022145053A1 (ja) * 2021-01-04 2022-07-07 日本電信電話株式会社 通信装置、通信方法、および通信プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3664398A1 (en) * 2018-12-06 2020-06-10 InterDigital CE Patent Holdings Network equipment and method for delivering data packets
JP7423934B2 (ja) * 2019-08-16 2024-01-30 ソニーグループ株式会社 通信装置、通信方法、及び通信プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002852A1 (en) * 2005-06-30 2007-01-04 Nokia Corporation Fixed interleaving length for MPE-FEC
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014641A (ja) * 2016-07-21 2018-01-25 住友電気工業株式会社 Mmtコンテンツ作成装置および作成プログラム
JPWO2021166016A1 (ja) * 2020-02-17 2021-08-26
JP7405232B2 (ja) 2020-02-17 2023-12-26 日本電信電話株式会社 パケット通信システムとその送信装置、受信装置およびプログラム
WO2022145053A1 (ja) * 2021-01-04 2022-07-07 日本電信電話株式会社 通信装置、通信方法、および通信プログラム

Also Published As

Publication number Publication date
US9774353B2 (en) 2017-09-26
US20160134306A1 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
US20200412483A1 (en) Xor forward error correction for isolated and burst losses over a software-defined-wide area network
JP4454320B2 (ja) 伝送装置、伝送制御プログラム、及び伝送方法
JP4532505B2 (ja) データ送信装置、データ受信装置、およびデータ配信システム
JP4405875B2 (ja) エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
CN110943800B (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
JP5094546B2 (ja) 通信装置、及び通信方法、プログラム
US9774353B2 (en) Generating apparatus, generating method and recording medium
JP2004289621A (ja) データ伝送サーバ
JP6294346B2 (ja) 通信装置及びシステム及び方法
CN103650399B (zh) 纠正数据单元的自适应生成
JP5677070B2 (ja) 受信装置及び、受信装置による処理方法
JP6412160B2 (ja) 通信装置、通信装置システム及び通信方法
JP6147939B1 (ja) 冗長符号化コンテンツデータ機能の選択的な利用を実施するトランスポートアクセラレータ
JP2006262288A (ja) 映像データの配信サーバおよび映像データ配信方法
JP5523130B2 (ja) 通信装置、通信方法、及びプログラム
JP2004179876A (ja) 情報処理装置および方法、並びにコンピュータ・プログラム
US11196793B2 (en) Method and apparatus for adaptive streaming based on hybrid TCP and UDP in multiple narrowband wireless communication environment
JP2004215224A (ja) 符号誤り訂正方法、符号誤り訂正システム、プログラム及びそのプログラムを記録した記録媒体
JP2007281640A (ja) 受信装置、送信装置およびその通信方法
JP5376855B2 (ja) データ送信装置及びデータ送信方法
JP2007324876A (ja) データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム
JP4445012B2 (ja) パケットの配信帯域制御方法、配信装置及び映像配信システム
JP2004312684A (ja) Wanでの大容量パケット伝送装置、wanでの大容量パケット送信方法及び受信方法、並びにwanでの大容量パケット送受信方法
JP5744554B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP4541381B2 (ja) 映像送受信システム及び映像切替方法