JP2007513549A - サブシンボル・ベース符号を使用する消去からのデータの保護 - Google Patents

サブシンボル・ベース符号を使用する消去からのデータの保護 Download PDF

Info

Publication number
JP2007513549A
JP2007513549A JP2006541501A JP2006541501A JP2007513549A JP 2007513549 A JP2007513549 A JP 2007513549A JP 2006541501 A JP2006541501 A JP 2006541501A JP 2006541501 A JP2006541501 A JP 2006541501A JP 2007513549 A JP2007513549 A JP 2007513549A
Authority
JP
Japan
Prior art keywords
input
output
symbols
subsymbols
symbol
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.)
Granted
Application number
JP2006541501A
Other languages
English (en)
Other versions
JP2007513549A5 (ja
JP4787167B2 (ja
Inventor
エム., アミン ショクロラヒ,
Original Assignee
デジタル ファウンテン, インコーポレイテッド
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 デジタル ファウンテン, インコーポレイテッド filed Critical デジタル ファウンテン, インコーポレイテッド
Publication of JP2007513549A publication Critical patent/JP2007513549A/ja
Publication of JP2007513549A5 publication Critical patent/JP2007513549A5/ja
Application granted granted Critical
Publication of JP4787167B2 publication Critical patent/JP4787167B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0307Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1625Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/132Algebraic geometric codes, e.g. Goppa codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

符号化器が、出力シンボルサブシンボルを使用して、計算労力とオーバーヘッド効率のトレードオフをもたらすか制御して、たとえば、少量のオーバーヘッド効率を犠牲にして計算労力を大幅に減らす。符号化器は、入力ファイルまたは入力ストリームを含む順序付きの複数の入力シンボルを読み取り、出力サブシンボルを作る。順序付きの複数の入力シンボルは、それぞれ、入力アルファベットから選択され、生成された出力サブシンボルに、出力サブシンボル・アルファベットの中での選択が含まれる。出力サブシンボルは、入力シンボルのサブシンボルに適用される関数評価器を使用して生成される。符号化器を、1回または複数回呼び出すことができ、各回に、1つの出力サブシンボルが作られる。次に、出力サブシンボルを出力シンボルに組み立て、その転送先に転送することができる。入力サブシンボルから出力サブシンボルを生成するのに使用される関数が、入力サブシンボルのいくつかのXORであり、これらの関数が、GF(2)上の拡大体の正則表現を使用して、GF(2)の拡大体上で定義された線形符号の生成行列またはパリティ検査行列の各項目を適当な2進行列に変換することによって、この符号から得られる。復号器では、受信機によって受信された出力サブシンボルが、入力シーケンス(ファイル、ストリームなど)の符号化に基づいてこれらの出力シンボルを生成した1つの送信機から転送された出力シンボルから得られる。

Description

本願は、その全体が本明細書に示されているかのように参照によって本明細書に組み込まれている、次の同時係属の米国仮出願の優先権を主張するものである。2003年12月1日出願の米国仮出願第60/526,218号、「Protection of Data From Erasures Using Interleaved Transformations and Codes From Algebraic Geometry」(整理番号19186−005400US)、および、2003年12月2日出願の米国仮出願第60/526,452号、「Protection of Data From Erasures Using Interleaved Transformations and Codes From Algebraic Geometry」。
本願は、その全体が本明細書に示されているかのように参照によって本明細書に組み込まれている、本願の譲受人に譲渡された次の米国特許および米国特許出願も参照する。ルビーに発行された米国特許第6307487号、「Information Additive Code Generator and Decoder for Communication Systems」(以下では「ルビーI」と呼称する)、およびショクロラヒらの米国特許第__号(2001年12月21日出願の米国特許出願第10/032,156号)「Multi-Stage Code Generator and Decoder for Communication Systems」(以下では「ショクロラヒI」と呼称する)。
障害のあるネットワークを介するデータの転送は、多くの研究の対象であった。インターネットなどの多くのコンピュータのネットワークまたは他のパケットベース・ネットワークでは、データは、まずパケットに副分割され、次にパケットを独立にネットワークを介して転送先に経路指定されることによって転送される。そのようなネットワークで、しばしば、パケット消失が見込まれる。パケットは、転送の物理層での誤り、機器にパケットを捨てさせるルータまたは他のネットワーク点でのオーバーフローなどに起因して失われる場合がある。データが完全に受信されることを保証するために、しばしば、そのような消失からデータを保護する手法が使用される。一般に、消失の単位は、パケットが正しく受信されるかパケットが消失したと考えられるのいずれかであるという点で、パケットであり、パケット全体の消失を扱うためにステップが行われる。したがって、パケットのビットが受信されたが、パケットが完全には正しく受信されていない場合に、パケット全体が消失したとみなされる。消失は、パケット全体が欠ける形になることがあり、あるいは、パケットに誤りがあり、信頼できないビットが作られると判定されるという形すなわち、消去および誤りの形になることがある。
近年、データが転送中に失われる見込みがある時にデータを保護するために、2タイプの符号すなわち、連鎖反応符号およびマルチステージ連鎖反応符号が提案された。k個のシンボルを有する所与のコンテンツについて、これらの符号は、元のk個のシンボルの回復が、その累積個数がおおむねkと等しい別個の出力シンボルの任意のセットの受信により可能な、出力シンボルの事実上無限のストリームを生成する。そうでないと示されない限り、本明細書で使用される「連鎖反応符号」への言及は、ルビーIおよび/または他所に記載のものなどの連鎖反応符号に適用することができ、ショクロラヒIに記載のものなどのマルチステージ連鎖反応符号にも適用できることを理解されたい。
連鎖反応符号を用いると、k個の入力シンボルの所与のセットについて可能な出力シンボルの個数が「事実上無限」と言われるのは、ほとんどすべての場合に、可能な出力シンボルの個数を、実際に生成される出力シンボルの個数に対して非常に多くすることができ、あるいは、入力シンボル回復に使用される可能な出力シンボルの個数が、可能なシンボルの個数よりはるかに少ないからである。たとえば、10000ビットに関する入力シンボル符号と、通常の期待される転送が、サイズにおいて10ギガビットまでのファイルまたはストリームである場合に、符号器は、k=1000000個のシンボルの入力を処理するように設計されなければならない。そのような符号器を、繰り返す必要なしに232(40億)個までの出力シンボルを生成できるように構成することができる。それが十分でない場合に、符号器を、繰り返す必要なしにより多くの出力シンボルを生成できるように構成することができる。もちろん、すべての物理的に実現可能なシステムは有限なので、符号器は、最終的に、繰り返す状態に達するが、必ず、すべての期待される転送および誤り率について、繰り返しなしの出力シンボルの個数が事実上無限になるように、その状態を設計することができる。
本明細書では、パケットは、1つのシンボルまたは複数のシンボルを担持することができる。必須ではないが、1つの入力シンボルについて符号化されるビットの個数および1つの出力シンボルについて符号化されるビット数を、同一にすることができる。
いくつかの実施形態で、これらの符号は、入力シンボルに対して排他的論理和(以下ではXORと表記する)を実行することによってデータを符号化し、受信されたシンボルに対してXORを実行することによって復号するが、他の演算を、同様にまたはその代わりに使用することができる。XORは、高速に逆演算可能であるため有用な演算である。他の演算も、これらの利益を提供することができる。
これらの符号は、消失率が送信機または受信機に未知の、障害のあるネットワーク上で1以上の送信機から1以上の受信機へデータを配信するという問題を解決する。この理由の1つは、入力シンボルの個数に対して可能な多数の出力シンボルを用いて、受信機が、圧倒的な可能性で、受信機間の調整なしに、別の受信機によって送信されるパケットを重複しないことである。この特性を、受信機が「情報加法的(information additive)」であると称する。
いくつかの場合に、所与のコンテンツから事実上無限の個数の出力シンボルを作ることが不必要または望ましくない場合がある。たとえば、受信機が時間的に制約されている場合に、所与の時間間隔の後に追加のシンボルが到着するのを待つという贅沢を有することはできない。これは、たとえば、ライブ映像が1つまたは複数の受信機に送信される時にあてはまる。ライブ転送の性質のゆえに、受信機の供給を送信機の要求と同期化しなければならず、無期限に中断することができないので、十分な符号化されたデータが受信機に到着するまで必ず待つことが、不可能である場合がある。その場合に、消失の可能性がある場合に、送信機は、コンテンツに固定された追加の量の冗長シンボルを追加し、そのコンテンツを冗長シンボルと一緒に転送することができる。コンテンツの転送中の消失の量が、冗長シンボルの個数より多くない場合には、受信機での消失データの回復の見込みがある。
この問題を、連鎖反応符号を用いて解決することもできる。その場合に、符号器は、事実上無限のストリームではなく、固定された量の符号化されたデータだけを生成する。しかし、いくつかの場合に、異なる解決策が好ましい場合がある。たとえば、連鎖反応符号の復号処理の確率的性質に起因して、これらの処理は、非常に小さいコンテンツサイズについてある追加のオーバーヘッドをこうむる場合がある。
リードソロモン符号(「RS符号」)は、コーダ出力と復号器入力の間で消去をうけるデータの転送または保管を扱うのに使用されてきた種類の符号である。本開示全体を通じて、符号化が、転送に制限されるのではなく、時間、場所などにおいて、符号化されたデータがチャネルを通過する際に消去および/または誤りを示す場合があるチャネルによって復号器から分離された符号器での元のデータを表す符号化であることを理解されたい。RS符号は、多数の研究者によって、多数の条件、データ、およびチャネルについて徹底的に研究され、ある特性を有することが知られている。
そのような条件の1つが、「最適性条件」として記述されるものである。RS符号は、2進数の体ではなくより大きいガロア体に作用する。RS符号の基本的特性の1つは、RS符号が、k個のシンボルがRS符号を用いて符号化され、格納または転送のためにn<k個のシンボルが作られる時に、元のk個のシンボルを、符号化されたn個のシンボルのk個の別個の受信されたシンボルのすべての可能な組合せから確実に回復できるという最適性条件を満足することである。元のk個のシンボルを、k個未満の別個の受信されたシンボルから回復することはできないので、受信されるシンボルの個数は、したがって、「最適」と考えられる。
この最適性は、符号化に必要な動作の数が、より大きい、より長い符号(すなわち、より大きいガロア体)についてより多くなるという点で、代償を伴う。RS符号を用いると、最大ブロック長nは、前もって決定され、ここで、ブロック長は、元のk個の入力シンボルから生成される出力シンボルの個数である。n−k個を超える出力シンボルが失われた場合に、元のk個の入力シンボルを回復できないことに留意されたい。ブロック長nを、期待される条件を扱うために任意に長くすることはできない。というのは、計算が、より大きいブロック長についてよりむずかしくなり、非常に大きいブロック長について非実用的であるからである。
ガロア体GF(2)上で定義され、ブロック長nおよび次元kを有するリードソロモン符号について、1つの出力シンボルを生成するためのシンボルのXORの数は、平均してk*(n−k)*A/(2*n)と等しい。そのようなリードソロモン符号を使用すると、k個の入力シンボルが、合計n個の出力シンボルを作るのに使用され、ここで、通常、k個の入力シンボルが、n個の出力シンボルに含まれ、nはkより大きい。対照的に、連鎖反応符号を使用する時には、1つの出力シンボルを作るためのシンボルのXORの平均回数は、kまたは生成される出力シンボルの個数と独立の定数と等しい。類似する結果が、復号器にもあてはまる。
リードソロモン符号の長さnは、2+1を超えることができない。この後者の条件が、Aがしばしば2のべきになるように選択されるという事実と共に、符号化処理および復号処理を時にかなり低速にする場合がある。たとえば、元のコンテンツが、サイズにおいて32KBであり(ここで、1KB=1024バイトである)、各パケットが、1KBの入力データの符号化のために符号化し、合計48個のパケットが送信されると仮定する。この例では、コンテンツを、32個の1KBチャンクに区分することができ(それぞれが送信される1つのパケットに割り振られる)、次に、各チャンクを、さらに、X個の入力シンボルに副分割することができる。次に、リードソロモン・符号化処理を、並列にX回適用し、各回に、各チャンクから1つの入力シンボルを操作することができ(各チャンクの最初の入力シンボルのすべてを操作し、次に各チャンクの2番目の入力シンボルなど)、これは、各操作が、32個の入力シンボルを考慮に入れることを意味する。これによって、X個の位置のそれぞれについて16個の追加の出力シンボルが生成され、X個の出力シンボルの各グループが、一緒に置かれて、それぞれが長さ1KBの、送信される16個の追加パケットが作られると仮定する。この例では、2のべき乗である最小の受入可能なAは、A=4では2+1=17になり、48より小さいので、A=8になる。この場合のリードソロモン符号は、体GF(256)で動作し、したがって、各シンボルが、1バイト長であり、X=1024である。この例によって示されるように、これらの符号は、最適性条件を満足することはできるが、かなりの計算を必要とし、可能な符号の長さに対する制約を有する。
符号化のいくつかの概念が紹介に耐える。転送粒度は、1単位として転送され、受信されるオブジェクトのサイズを指す。たとえば、パケット・ネットワークは、パケットでデータを送信し、受信する。あるパケットのビットの一部だけが消去されるか壊された場合であっても、パケット全体が破棄され、機構(前方誤り訂正、再送信要求など)がアクティブ化されて、パケット全体を回復する。したがって、そのようなオブジェクトは、誤りなしで受信されるか、全体を消去されるのいずれかになる。いくつかの応用例で、オブジェクト・サイズを、転送パケットのサイズとすることができ、あるいは、それより小さくすることができる。転送パケットの間で消失の相関の見込みがある場合に、転送粒度を、パケット・サイズより大きくすることができる。他の応用例で、転送粒度を、パケット・サイズより小さくすることができる。
計算粒度は、符号器および/または復号器で操作されるオブジェクトのサイズを指す。したがって、符号器の基本動作が128バイト単位のXORである場合に、それが計算粒度である。128バイト・サブシンボルに副分割される1024バイトを含むシンボル(たとえばパケットとすることができる)が、8つのサブシンボルに分割されるシンボルであり(サブシンボルのすべてが同一サイズである必要がない場合があるが、そうである場合には、この方が単純である)、XORは、これらのサブシンボルに対して実行される。したがって、計算粒度は、128バイトである。
リードソロモン符号の最適性の理由の1つが、その転送粒度と計算粒度の間の関係にある。1つの例が、このポイントを示す。
所与のファイルを符号化し、符号化された情報を、それぞれ1024バイトのサイズのパケットでチャネルを介して転送するのに使用される、体GF(256)上のリードソロモン符号を検討されたい。この場合の計算粒度は、128バイト(1024バイトを8で割る)と等しいものとすることができるが、転送粒度は、1024バイトと等しい。この場合に、ビットのシーケンスのXORなどの基本演算が、128バイトの単位全体に対して実行される。
通常、符号化および復号の効率は、計算粒度に伴って変化する。効率は、多数の形で測定することができるが、これを測定する1つの形が、データの単位を符号化または復号する動作の平均回数によるものである。しばしば、符号化および復号は、より微細な計算粒度についてより非効率的であり、より粗な計算粒度についてより効率的である。しかし、より微細な計算粒度を用いる符号は、より良い受信オーバーヘッドを提供できる、すなわち、符号器に供給されるデータを表すシンボルの個数に対する、正しい復号を保証するために受信される必要があるシンボルの個数の追加を非常に小さく保つことができる。その結果、所与の符号の符号化効率と転送オーバーヘッドの間にトレード・オフがある。
リードソロモン符号は、この符号化トレード・オフの一方の端にある。というのは、計算粒度が、消去が存在する場合にデータの最適回復が保証されるのに十分に小さいからである(符号化されたのと同量のデータの受信時に。他方の端で、2進アルファベット上で定義された符号(パケット・ネットワーク上での転送に使用されるものなど)は、転送粒度と同じ大きさの計算粒度を有するが、完全な復号を保証するのに必要な受信オーバーヘッドにおいて非効率的である場合があるからである。
上で述べたように、リードソロモン符号は、最大誤り率が前もって判定されることを必要とする、すなわち、k個のシンボルがn個のRSシンボルに符号化される場合に、(n−k)/nを超える誤り率は、復号器に、転送されたデータの回復を失敗させる。したがって、転送されるデータの不成功の回復の最終的な確率によって測定される転送システムでは、リードソロモン符号は、その最適性にもかかわらず、正の失敗確率を示す。これは、受信機によって受信されるデータの量が、転送されたデータより本当に少ないことの正の確率があるからである。その結果、最終的に、符号化システムは、より低い効率の符号化を有し、低減の必要がある失敗確率を有する場合がある。
米国仮出願第60/526,218号 米国仮出願第60/526,452号 米国特許第6307487号 米国特許出願第10/032,156号
したがって、必要なものは、計算労力およびオーバーヘッド効率を、特定の応用例、使用可能な処理能力、およびデータ・セットの必要に応じてトレード・オフすることができ、チャネルを介して送信されるデータを符号化し、復号する符号化のシステムおよび方法である。
本発明による通信システムの一実施形態で、符号化器は、出力シンボルサブシンボルを使用して、計算労力とオーバーヘッド効率のトレードオフをもたらすか制御して、たとえば、少量のオーバーヘッド効率を犠牲にして計算労力を大幅に低減する。符号化器は、入力ファイルまたは入力ストリームを含む順序付きの複数の入力シンボルを読み取り、出力サブシンボルを作る。順序付きの複数の入力シンボルは、それぞれ、入力アルファベットから選択され、生成された出力サブシンボルに、出力サブシンボル・アルファベットの中での選択が含まれる。出力サブシンボルは、入力シンボルのサブシンボルに適用される関数評価器を使用して生成される。いくつかの実施形態で、符号化器を、1回または複数回呼び出すことができ、各回に、1つの出力サブシンボルが作られる。次に、出力サブシンボルを出力シンボルに組み立て、その転送先に転送することができる。
本発明の諸態様による1つの符号化処理では、入力サブシンボルから出力サブシンボルを生成するのに使用される関数が、いくつかの入力サブシンボルのXORである。本発明の諸態様によるもう1つの符号化処理では、これらの関数が、GF(2)上の拡大体の正則表現を使用して、GF(2)の拡大体上で定義された線形符号の生成行列またはパリティ検査行列の各項目を適当な2進行列に変換することによって、この符号から得られる。
本発明の諸態様による復号器では、受信機によって受信された出力サブシンボルが、入力シーケンス(ファイル、ストリームなど)の符号化に基づいてこれらの出力シンボルを生成した1つの送信機から転送された出力シンボルから得られる。出力シンボルが、転送中に失われる可能性があるので、復号器は、転送された出力シンボルの任意の部分だけを受信した時であっても正しく動作する。
本発明は、計算労力と転送効率のトレード・オフを制御できることなどの利益を提供する。たとえば、緩和された最適性条件を用いると、可能な転送労力のわずかな増加で、非常に低減された計算労力とすることができる。ある符号を用いると、追加出力が簡単に入手可能になり、その結果、最大最適性条件の下での復号に必要な個数のシンボルに対する比較的少数の追加シンボルだけの受信を用いて、復号失敗率を任意に減らすことができる。実施形態で、計算の単位(個々の符号化動作または復号動作の一部であるデータの間の境界)および消失の単位(1単位の境界内のいずれかのデータが入手不能である場合に、その単位境界内のすべてのデータが失われたとみなされる、データの間の境界)を有することによって、計算労力が減る。特定の実施形態で、消失の単位は、シンボルまたはパケットであり、計算の単位は、サブシンボルである。
本明細書に開示される発明の性質および利益のさらなる理解は、本明細書の残りの部分および添付図面を参照することによって実現することができる。
本明細書で説明する実施例では、「サブシンボル・ベース・符号化」と表される符号化方式を説明するが、その前に、この説明で使用されるさまざまな用語の意味および範囲を説明する。
符号器は、ファイル、ストリーム、または他の入力データ転送元から入力データを受け取り、チャネルが及ぼす可能性があるデータに対する影響をチャネルの他端の復号器によって埋め合わせることができ、復号器が、どのような精度が必要であれその精度まで元のデータを再生成できるようにそのデータを符号化する、ソフトウェア処理、ハードウェア装置、組合せ、または類似物である。
サブシンボル・ベース・符号化を用いると、出力シンボルは、送信機によって、必要に応じて入力ファイルから生成される。各出力シンボルに、1つまたは複数のサブシンボルが含まれ、少なくとも1つの出力シンボルに、少なくとも2つのサブシンボルが含まれる。出力シンボル内の各サブシンボルは、符号器または復号器のソフトウェアおよび/またはハードウェアを使用して、入力ファイルを含むシンボルのサブシンボルに対して計算動作を実行することによって生成される。生成されたならば、出力シンボルを、パケットに置き、その転送先に転送することができ、各パケットに、1つまたは複数の出力シンボルが含まれる。
本明細書で使用する用語「ファイル」は、1以上の転送元に格納され、1単位として1以上の転送先に配信されるすべてのデータを指す。したがって、ファイル・サーバまたはコンピュータ記憶装置からの文書、イメージ、およびファイルのすべてが、配布できる「ファイル」の例である。ファイルは、既知のサイズである(ハード・ディスクに保管された1メガバイト・イメージなど)ものとすることができ、あるいは、未知のサイズである(ストリーミング転送元の出力からとられるファイルなど)ものとすることができる。いずれであれ、ファイルは、入力シンボルのシーケンスであり、各入力シンボルは、ファイル内の位置および値を有する。
転送とは、ファイルを配布するために1つまたは複数の送信機から1つまたは複数の受信機へチャネルを介してデータを転送する処理である。1つの送信機が、完全なチャネルによって任意の個数の受信機に接続される場合に、受信されるデータは、すべてのデータが正しく受信されるので、入力ファイルの正確なコピーでありえる。本明細書では、チャネルが不完全であると仮定され、これは、ほとんどの実世界のチャネルにあてはまる。多数のチャネル不完全性のうちで、関心を持たれる2つの不完全性は、データ消去およびデータ不完備性(データ消去の特殊な事例として扱うことができる)である。データ消去は、チャネルがデータを失うか捨てる時に発生する。データ不完備性は、受信機が、データの一部が既にそれに渡された後になるまで受信を開始しない時、受信機が、転送が終了する前にデータの受信を停止する時、または、受信機が、データの受信を間欠的に停止し、再び開始する時に発生する。データ不完備性の例として、移動する衛星送信機は、入力ファイルを表すデータを送信しており、受信機が範囲内になる前に転送を開始する場合がある。受信機が範囲内になったならば、データを、衛星が範囲外になるまで受信することができ、この時点で、受信機は、その衛星パラボラアンテナを向けなおして(その間に、受信機はデータを受信してない)、範囲内に移動した別の衛星によって転送される同一入力ファイルに関するデータの受信を開始することができる。
この説明を読むことから明白になるように、データ不完備性は、データ消去の特殊な事例である。というのは、受信機は、受信機がつねに範囲内にあったが、チャネルが、受信機がデータ受信を開始した点までのすべてのデータを失ったかのように、データ不完全性を扱うことができるからである(受信機は、同一の問題を有する)。また、通信システム設計で周知のように、検出可能な誤りは、検出可能な誤りを有するすべてのデータ・ブロックまたはシンボルを単純に捨てることによって、消去と同等とすることができる。
一般に、転送は、送信機から受信機へ、送信機と受信機を接続するチャネルを介してデータを移動する操作である。チャネルは、リアルタイム・チャネルとすることができ、ここで、チャネルは、チャネルがデータを得た時に送信機から受信機にデータを移動し、あるいは、チャネルを、送信機から受信機にデータを送る際にデータの一部またはすべてを格納するストレージ・チャネル(storage channel)とすることができる。後者の例が、ディスク・ストレージまたは他の記憶装置である。その例では、データを生成するプログラムまたは装置を、データを記憶装置に転送する送信機と考えることができる。受信機は、その記憶装置からデータを読み取るプログラムまたは装置である。送信機がデータを記憶装置に置くメカニズム、記憶装置自体、および受信機が記憶装置からデータを得るために使用するメカニズムが、集合的にチャネルを形成する。これらのメカニズムまたは記憶装置がデータを失う可能性がある場合に、これを、そのチャネルでのデータ消失として扱うことができる。
<1.基本的実装>
通常の実装では、サブシンボル・ベース・符号化を使用するファイルの転送に、入力ファイルからの入力シンボルの生成、形成、または抽出と、入力シンボルのそれぞれのサブシンボルの生成と、これらのサブシンボルの1つまたは複数の出力サブシンボルへの符号化と、出力サブシンボルからの出力シンボルの作成と、1つまたは複数の受信機へのチャネルを介する出力シンボルの転送とが含まれる。
サブシンボル・ベース・符号化を使用する入力ファイルのコピーの受信(および再構成)に、1つまたは複数のデータ・ストリームから出力シンボルのあるセットまたはサブセットを受信することと、受信された出力シンボルのそれぞれについてサブシンボルを生成することと、受信された出力サブシンボルの値から入力サブシンボルを復号することと、復号された入力サブシンボルから入力シンボルを作成することと、入力シンボルから入力ファイルを再組立することとが含まれる。いくつかの実施形態で、たとえば復号された入力サブシンボルから直接に入力ファイルを再組立することができる場合に、最後のステップを破棄することができる。
本発明の諸態様を、これから図面を参照して説明する。
図1は、サブシンボル・ベース・符号化を使用する通信システム100のブロック図である。通信システム100では、入力ファイル101または入力ストリーム105が、サブシンボル生成器110に供給される。サブシンボル生成器110は、入力ファイルまたは入力ストリームから1つまたは複数の入力サブシンボル(IS(0,0)、IS(0,1)、IS(0,2)、・・・)のシーケンスを生成し、各入力シンボルは、1つの値および2つの位置(図1では括弧を付けた整数として表される)を有する。サブシンボル生成器110は、その入力の1つとして値mを使用し、この値mは、各入力シンボルまたは各出力シンボル内のサブシンボルの個数である。サブシンボル生成器の出力は、それぞれm個のグループに分割され、各グループの要素は、第2の括弧内の整数を用いて識別され、これは、0とm−1の間の整数である。
上で説明したように、各入力サブシンボルのサイズは、符号化システムの計算粒度であり、転送粒度は、計算粒度のm倍以上の任意の数とすることができる。本明細書で提供する例では、しばしば、説明を単純にするためにサブシンボルのサイズがすべて等しいと仮定するが、このサイズを変更することができ、正しい機能のために一定のサイズが必要ではないことを理解されたい。
入力サブシンボルの可能な値すなわち入力サブシンボルのアルファベットは、通常、2個のシンボルのアルファベットであり、その結果、各入力サブシンボルが、入力ファイルのMビットについて符号化するようになる。Mの値は、一般に、通信システム100の用途によって決定されるが、汎用システムには、サブシンボル生成器110のサブシンボル・サイズ入力を含めることができ、その結果、Mを、使用ごとに変更することができるようになる。サブシンボル生成器110の出力は、符号器115に供給される。
符号器115は、入力サブシンボル生成器110によって供給される入力サブシンボルから、値OS(i,j)を有する出力サブシンボルを生成する。各出力サブシンボルの値は、本明細書で出力サブシンボルの「関連する入力シンボル」または単にその「付随物」と称する、1つまたは複数の入力サブシンボルのある関数に基づいて生成される。関数(「値関数」)および付随物の選択は、下で詳細に説明する処理に従って行われる。必ずではないが、通常、Mは、入力サブシンボルおよび出力サブシンボルいついて同一である、すなわち、この両方が、同一のビット数について符号化する。
いくつかの実施形態で、入力サブシンボルの個数Kが、符号器によって、付随物を選択するのに使用される。入力がストリーミング・ファイルである場合など、Kが前もって既知でない場合には、Kを、推定値とすることができる。値Kは、符号器115によって、入力サブシンボルのストレージを割り振るのに使用することもできる。
符号器115は、出力サブシンボルを出力シンボル生成器135に供給する。出力シンボル生成器135には、各シンボル内のサブシンボルの個数mも供給される。出力シンボル生成器135は、図1でOS(0)、OS(1)、・・・などとして示された出力を送信モジュール140に供給する。送信モジュール140は、チャネル145を介して受信モジュール150に出力シンボルを転送する。チャネル145は、消去チャネルであると仮定されるが、これは、通信システム100の正しい動作の要件ではない。モジュール140、145、および150は、送信モジュール140が、出力シンボルおよびそのキーに関するすべての必要なデータをチャネル145に転送するように適合され、かつ、受信モジュール150が、シンボルおよびそのキーに関する潜在的ないくつかのデータをチャネル145から受信するように適合されている限り、任意の適当なハードウェア構成要素、ソフトウェア構成要素、物理媒体、またはその任意の組合せとすることができる。Kの値は、付随物を決定するのに使用される場合に、チャネル145を介して送信することができ、あるいは、事前に、符号器115および復号器155の合意によってセットすることができる。
上で説明したように、チャネル145を、インターネットを介する経路またはテレビジョン送信機からテレビジョン受信機への放送リンクまたはある点から別の点への電話接続など、リアルタイム・チャネルとすることができ、あるいは、チャネル145を、CD−ROM、ディスク・ドライブ、ウェブ・サイト、または類似物などのストレージ・チャネルとすることができる。チャネル145は、ある人がパーソナル・コンピュータからインターネット・サービス・プロバイダ(ISP)へ電話回線を介して入力ファイルを転送し、入力ファイルがウェブ・サーバに保管され、その後、インターネットを介して受信機に転送される時に形成されるチャネルなど、リアルタイム・チャネルとストレージ・チャネルの組合せとすることさえできる。
チャネル145は、消去チャネルであると仮定されるので、通信システム100は、受信モジュール150を出る出力シンボルと送信モジュール140に入る出力シンボルとの間の1対1対応を仮定しない。実際には、チャネル145にパケット・ネットワークが含まれる場合に、通信システム100は、複数のパケットの相対的な順序が、チャネル145を介して移動する際に保存されると仮定することすらできない場合がある。
受信モジュール150は、受信したシンボルRS(0)、RS(1)をサブシンボル生成器160に供給する。この生成器には、各受信された出力シンボルに含まれるサブシンボルの個数の値mも与えられる。この情報は、送信機と受信機の間の転送の前に共有することができ、転送の一部とすることができ、あるいは、受信機がそれを知らず、受信機が即座に復号する必要がない場合に後で供給することができる。前に述べたように、mの値は、すべての受信された出力シンボルについて同一でないものとすることができる。
サブシンボル生成器160は、RS(0,0)、RS(0,1)、・・・などと表された、復号器155への出力を生成する。各受信されたシンボルにm個のサブシンボルが含まれる場合に、サブシンボル生成器160の出力が、それぞれm個のグループに分割され、各グループは、各受信されたシンボル内のサブシンボルに対応する。第2の括弧内の整数は、受信されたシンボル内のサブシンボルの位置に対応し、第1の整数は、出力されるサブシンボルがそのサブシンボルである受信されたシンボルに対応する。この場合に、サブシンボル生成器の出力は、RS(0,0)、・・・、RS(0,m−1)、RS(1,0)、・・・、RS(1,m−1)などである。
復号器155は、サブシンボル生成器160によって供給された出力サブシンボルを使用して、入力サブシンボル(やはりIS(0,0)、IS(0,1)、IS(0,2)、・・・)を回復する。復号器155は、回復された入力サブシンボルをシンボル生成器162に供給し、シンボル生成器162は、入力シンボルIS(0)、IS(1)、・・・などを作る。これらの入力シンボルが、入力ファイル再組立器165に供給され、入力ファイル再組立器165は、入力ファイル101または入力ストリーム105の入力ファイル170を生成する。いくつかの応用例で、シンボル生成器162を迂回し、出力を入力ファイル再組立器165に直接に転送することができる。
<2.基本的符号器>
図2は、基本的な符号器の例示的なブロック図である。生成される出力シンボル230ごとに、F(i,j)によって表される関数評価器220が含まれる。図2の例では、m=4であり、201、・・・、212によって表される、合計12個の入力サブシンボルがある。関数評価器220は、入力サブシンボルの関数を計算して、出力サブシンボル230を生成する。たとえば、図2に示された状況では、関数評価器は、関数F(i,j)を使用して、入力IS(0,0)、IS(0,3)、IS(1,1)、IS(1,3)、およびIS(2,2)から出力OS(i,j)の値を計算する。
いくつかの実施形態で、各生成される出力サブシンボルは、異なる関連する関数を有し、これらの関数は、事前に生成されるか、擬似乱数的に生成される。他の実施形態で、関数評価器220は、生成される出力シンボルの多くについて同一とすることができ、関数に使用される入力値のセットにおいてのみ異なるものとすることができる。たとえば、単純なインターリーブ方式が使用される場合に、F(i,j)を、jのすべての値について同一とし、入力値のセットにおいてのみ異なるものとすることができる。具体的には、この場合に、関数F(i,j)は、入力としてサブシンボルIS(0,j)、IS(1,j)、IS(2,j)などのみを使用する。
図2に開示されているように、関数評価器220は、その入力の任意の関数とすることができる。いくつかの実施形態で、具体的には線形符号を有することが望ましい実施形態で、この関数を、その引数の線形関数、たとえば引数のXORになるように選択しなければならない。「インターリーブ変換(interleaved transformation)」と称する、関数評価器220によって使用できる線形関数のそのような種類の1つを、これから説明する。
<3.インターリーブ変換>
本明細書で説明するいくつかの処理は、Bloemer、Kalfane、Karp、Karpinski、Luby、およびZuckermanにより「An XOR Based Erasure Resilient Coding Scheme」、International Computer Science Institute (ICSI) Technical Report TR-95-048で暗黙のうちに述べられた方法を利用する。
s個のシンボルに編成された入力データをt個のシンボルに編成された出力データに変換し、各シンボル(入力データおよび出力データの)に等しいサイズのm個のサブシンボルが含まれ、変換がt行s列の基礎行列を使用し、各基礎行列項目が有限体GF(2)の値である変換処理を検討されたい。
この変換処理は、基礎行列の各項目をm行m列の2進行列に変換することによって開始される。この変換では、GF(2)モジュールとして有限体の正則表現を利用するが、これは、有限の代数および符号化の理論の当業者に周知の概念であり、したがって、本明細書ではさらに詳細には説明しない。この変換を元の基礎行列のすべての項目に適用することによって、t*m行s*m列の新しい2進行列が作られる。この変換処理は、この新しい行列を入力データのs*m個のサブシンボルに適用して、新しい2進行列の行ごとに1つの、t*m個の出力サブシンボルに達する。新しい2進行列の各行は、1つのサブシンボルに対応し、この変換処理は、その行および列に1がある各入力サブシンボルのXORをとることによって、所与の出力サブシンボルを決定する。この形で作成された最終的なt*m個のサブシンボルが、m個のサブシンボルのグループにグループ化されて、それぞれ、t個のシンボルが作られる。
この変換処理が、サブシンボルのXORだけを実行する必要があることに留意されたい。この変換処理が実行するXORの回数は、元の行列に依存するが、この回数は、平均してs*t*m/2と等しい。
上で説明した変換処理の例として、図3Aに示された、体GF(4)={0,1,α,α}上のs=5×t=2基礎行列を検討されたい。GF(4)について、m=2である。基礎{1,α}に関してGF(2)上のGF(4)の正則表現を使用すると、図3Aの基礎行列は、図3Bに示された新しい2進行列に変換され、この新しい2進行列は、s*m=10列×t*m=4行の行列である。
この変換行列を使用すると、それぞれが2つのサブシンボルを含む5つのシンボルを含む元のデータは、次のように変換される。最初の4つの出力サブシンボルのうちの最初のサブシンボルは、入力サブシンボル3、6、7、9、および10が、図3Bの行列の第1行の「1」の位置なので、これらのサブシンボルのXORとして計算される。「1」が、2進値の1つの状態の任意の表示であり、したがって、それについて入力シンボルが使用されるラベルと考えられなければならないことに留意されたい。
第2の出力サブシンボルは、入力サブシンボル4、5、6、8、および9のXORとして計算される。第3の出力サブシンボルは、入力サブシンボル1、5、8および10のXORとして計算される。最後に、最後(第4)の出力サブシンボルが、入力サブシンボル2、6、7、8、9、および10のXORとして計算される。この場合に実行されるサブシンボルのXORの総数は、20である。
この特定の例における関数F(i,j)は、次のように与えられる。
F(0,0)=IS(1,0)+IS(2,1)+IS(3,0)+IS(4,0)+IS(4,1)
F(0,1)=IS(1,1)+IS(2,0)+IS(2,1)+IS(3,1)+IS(4,0)
F(1,0)=IS(0,0)+IS(2,0)+IS(3,1)+IS(4,1)
F(1,1)=IS(0,1)+IS(2,1)+IS(3,0)+IS(3,1)+IS(4,0)+IS(4,1)
ここで、記号「+」はXOR演算子を表す。
インターリーブ変換は、GF(2)の拡大体上の生成行列およびパリティ検査行列によって定義される符号を使用する符号器および/または復号器の実施形態の一部として使用することができる。
<4.基本的出力シンボル生成器>
図4は、出力シンボル生成器135のブロック図である。この図には、m=4および3つの出力シンボルの事例が例示されている。この例では、出力シンボル生成器135が、OS(i,0)、OS(i,1)、OS(i,2)、・・・、OS(i,m−1)(この図では401、・・・、412として参照される)と表された4つの出力シンボルのグループを、出力シンボルOS(i)(この図では420、430、および440として参照される)にパックする。すべての出力シンボルに関する同一の値mの選択は、説明を単純にするために行われたものにすぎない。この値は、出力シンボル生成器が、生成される出力シンボルのmの値の表示を有する限り、異なる出力シンボルについて異なるものとすることができる。
<5.基本的サブシンボル生成器>
図5は、基本的なサブシンボル生成器160のブロック図である。この図は、m=4およびおよび3つの受信された信号RS(0)、RS(1)、およびRS(2)の事例が例示されている。サブシンボル生成器160の動作は、図4で与えた出力シンボル生成器135の動作の逆に対応する。
図5に与えられた例では、サブシンボル生成器135が、受信されたシンボルごとに4つのサブシンボル(この図では501、・・・、512として参照されるサブシンボル)を作成する。サブシンボルRS(i,0)、・・・、RS(i,3)は、受信されたシンボルRS(i)に対応する(この図では520、530、および540として参照される)。すべての受信されたシンボルに関する同一の値mの選択は、説明を単純にするために行われたものである。この値は、サブシンボル生成器が、すべての受信されたシンボルについてそのシンボルのmの値の表示を供給される限り、異なる受信されたシンボルについて異なるものとすることができる。そのような表示は、送信機から帯域外情報を介して、または送信機および受信機によって共有される事前に決定されるアルゴリズムを介して、サブシンボル生成器に供給することができる。
<6.GF(2)の拡大体に対するインターリーブ変換および符号を使用するサブシンボル・ベース・符号化>
サブシンボル・ベース・符号化を、上で説明したように、本明細書で説明するインターリーブ変換と一緒に使用して、符号が計算および消去の粒度および労力に関するトレード・オフを示すように、消去の見込みがあるパケット・ネットワークでの転送用の符号を設計することができる。
一実施形態で、符号器および復号器が、拡大体GF(2)上で定義された符号を使用するように構成される。この符号は、生成行列、パリティ検査行列、または類似する結果に達するある抽象符号化処理もしくはルールのセットによって定義することができる。提示を単純にするために、本明細書の例では、生成行列を使用して、符号化を説明するが、他の手法を、同一の、類似する、または異なる結果のために使用できることを理解されたい。
生成行列が、n行k列を有すると仮定する。符号が組織的符号(systematic code)であると仮定するが、その代わりに、符号を非組織的符号とすることができることを理解されたい。
組織的符号を用いると、最初のk列からなる部分行列が、単位行列になる。残りのr=n−k列からなる部分行列を、本明細書ではCと称する。この行列Cは、r行k列を有する。符号化されるデータが、シンボル(またはパケット)k個の長さであると仮定する。符号化処理は、上のインターリーブ変換処理を行列Cおよび符号化されるデータに適用する処理である。
前の符号化方法と比較したこの符号化方法の利益の1つは、転送方式のオーバーヘッド特性が、有限体GF(2)上の元の符号の構造によって左右されるが、計算が体GF(2)上で実行されることである。本明細書で説明するものなどの符号パラメータの賢明な選択のために、または本明細書で説明する選択方法によれば、上で説明したトレード・オフの優秀なバランスを提供する符号化構造を得ることが可能である。
復号処理は、下で説明するように、サブシンボルのゆえにより複雑であり、通常は複数のステップで実行する。特筆すべきことに、復号計算労力を、それでも、以前の方法が同一の誤り回復結果を得るのに使用される場合より少なくすることができる。
例の復号処理では、符号化されたデータ・パケットのそれぞれが、関連する位置を有し、これらの位置が、1からnまでの整数によって表現可能であると仮定する。最初のk個の位置は、組織的位置(systematic position)と呼ばれ、これらの位置の、転送の前の符号化されたデータは、符号化されるデータと同一である。残りの位置のデータ(またはパケット)を、冗長パケットと呼ぶ。前と同様に、最初のk行が単位行列を形成し、残りのr行が行列Cを形成する生成行列が与えられると仮定する。
復号処理の一実施形態で、ステップは次の通りである。
1)消去された組織的パケットの位置q、q、・・・、qを記録し、保管するが、ここで、eは、そのような消去されたパケットの個数である。そのようなパケットが存在しない場合には、復号の成功を宣言し、終了する。
2)カウンタl=0をセットする。
3)復号が成功していない(まだ元のパケットのすべてが回復されてはいない)間は、下のサブステップ(a)から(e)を実行する。
(a)e+l個の消去されていない冗長パケットを見つける。e+l個未満の消去されていない冗長パケットが使用可能である場合には、復号誤りを宣言する。そうでない場合には、e+l個の消去されていない冗長パケットの位置を、p、p、・・・、pe+lによって表す。
(b)位置p、p、・・・、pe+lに対応する行および位置q、q、・・・、qに対応する列を含む、生成行列の部分行列を形成する。これを行列Dと呼ぶ。この行列が、Cの部分行列であることに留意されたい。
(c)たとえばガウス消去または明示的判定または他の方法によって、Dの可逆e×e部分行列を見つける。そのような部分行列が存在しない場合には、カウンタlを1つ増分し、ステップ3に進む
(d)そのような可逆部分行列が存在する場合には、その行r、・・・、rを記録し、基礎体上でのその逆行列を計算し、これを逆行列Bと呼ぶ。
(e)インターリーブ変換処理を行列Bおよび位置r、・・・、rに冗長パケットを含むデータに適用して、位置q、q、・・・、qの消去された組織的パケットを得る。復号成功を宣言し、停止する。
次は、値の1特定のセットを使用する、この復号処理の詳細な例である。k=16であり、n=24であると仮定し、24個のパケットの転送の後に、位置1、2、4、5、6、7、8、9、11、12、13、14、15、16、18、20、および22のパケットが受信されたと仮定する。位置3および10の組織的パケットが失われているが、他の14個は正しく受信されている。したがって、q=3およびq=10である。カウンタlに0をセットし、2+0=2個の消去されない冗長パケットが得られる。これらは、位置18および20のパケットとすることができ、したがって、p=18およびp=20である。生成行列の行18および20、列3および10の行列すなわち、行2および4、列3および10のCの部分行列をセット・アップする。この行列のランク(階数)が2ではなく、その結果、ステップ3(c)が不成功であると仮定する。カウンタlを1に増分し、ステップ3に戻って、処理を継続する。今回は、たとえばp=18、p=20、およびp=22をセットし、生成行列のこれらの行と列3および10を含むCの部分行列を形成することができる。この行列が、最大ランクである場合に、ステップ3(c)が成功し、消去されていない組織的位置18および22に対応する行1および3が、可逆部分行列を形成する。ステップ3(d)で、Bと呼ばれるこの行列の逆行列を計算し、この行列と位置18および22の冗長パケットからなるデータにインターリーブ変換処理(ステップ3(e))を適用することによって、位置3および10の消去されたパケットの値が作られる。
いくつかの実施形態で、lの値を、ステップ2で0より大きいある数になるように選択することができる。たとえば、これは、lの小さい値についてステップ3(c)が成功しない見込みがある場合に行うことができる。この開示を読んだ後に当業者が推測できる、多数の他の変形が可能である。
<7.代数幾何符号(algebraic−geometric code)>
インターリーブ変換と組み合わされたサブシンボル復号の処理が特に良い結果を作る符号の1つの種類が、代数幾何符号または「AG符号」の種類である。AG符号は、同一の体の上のリードソロモン符号よりはるかに長い符号の構成を可能にする、リードソロモン符号の拡張である。これらの符号は、有限体上の曲線の点および指定された極点を有するその曲線上の関数を使用することによって構成される。これらの符号の構成は、有限の代数および符号化の理論の当業者に周知の概念であり、したがって、本明細書ではさらに詳細には説明しない。これらの符号に関する多数の文献の1つは、書籍、Goppa、V.D.、「Geometry and Codes」(Kluwer Academic Publishers 1988年)である。
AG符号は、リードソロモン符号の特性の多くを共有する。これらは、しばしば、明示的な生成行列およびパリティ検査行列によって記述され、その最小距離は、次元kおよびブロック長kを与えられれば、n−k+1−gより小さくすることができず、ここで、gは、基礎になる曲線のパラメータである、非負の整数である。このパラメータを、曲線のジーナス(genus)と呼ぶ。ジーナス0の曲線は、本質的にリードソロモン符号を作り、より高いジーナスの曲線は、より小さい最小距離を犠牲にしても、ブロック長に関して実質的に改善された符号を作ることができる。
たとえば、基礎になる体がGF(16)である場合に、最長の可能なリードソロモン符号は、ブロック長17を有する。対照的に、ブロック長24を有するジーナス1のAG符号を示すことが可能である。この符号の最小距離は、その最適値より1つ小さい。そのような符号を、次の例示的な事例で使用することができる。この事例は、例示のみのために示され、応用例の範囲を制限することを意図されたものではない。
16KB長の1つのデータが、パケットが1KBのペイロードを有するネットワークを介して転送されると仮定する。さらに、このデータが、33%の消失に対して保護されなければならないと仮定する。その場合に、ジーナス1、ブロック長24、および次元16のAG符号の生成行列を使用し、上で説明したインターリーブ変換を使用することによって、24KBの符号化されたコンテンツを作ることが可能である。この変換には、各サブシンボルがパケット・ペイロード(すなわち、シンボル)の1/4なので、サイズ256バイトのサブシンボルのXORをとることが含まれる。この結果の符号は、確率1で、受信された17個のパケットの任意のセットから元の16個のパケットを復号する能力を有し、約96%の確率で16個の受信されたパケットのセットから最初の16個のパケットを復号する能力を有する(すなわち、16個のパケットの可能な組合せのうちの96%が、元の16個のパケットがその組合せから復号可能である組合せである)。
AG符号は、組織的符号にすることができる。たとえば、上の場合に、符号化されたデータの最初の16KBを、元の16KBと等しいものにすることができ、追加の8KBが、冗長データを表す。この冗長データを作るために、上で説明したインターリーブ変換が、8行16列の行列に適用される。その場合に、冗長データを作るためのサブシンボルのXORの回数は、平均して8*16*4/2すなわち256である。この動作の後に、作られた符号化されたデータに、96個のサブシンボルが含まれ、その結果、生成されるサブシンボルあたりのサブシンボルのXORの回数は、256/96すなわち、3よりわずかに小さい。
上でリードソロモン符号が使用された場合には、リードソロモン符号が定義される、2のべき乗である最小の拡大体は、GF(256)である必要がある。その場合に、サブシンボルは、前の事例の半分の大きさになり、冗長データを作るのに、平均して8*16*8/2=512回のサブシンボルのXORが必要であり、これは、前の事例の半分の符号化速度になる。
下では、1KBのパケット・ペイロード・サイズを有するパケットベース・ネットワークで64KBまでのサイズのコンテンツの転送に使用できる、いくつかのAG符号を説明する。これらの例は、例示のみのために働き、本発明の範囲を制限するものと解釈されてはならない。これらの例は、元のコンテンツの長さではなく、符号化されたコンテンツの長さによってパラメータ化されている。後者への変換は、所望の保護消失率を介して行うことができる。たとえば、符号化されたコンテンツの長さが24KBであり、25%消失の見込みがある場合に、元のコンテンツの長さを、18KBと等しくなるようにセットすることができる。
8KBまでの符号化されたコンテンツサイズについて、9つの有理点という最大の可能な個数を有するGF(4)上の楕円曲線からのAG符号を使用することが可能である。そのような曲線の例が、エルミート曲線である。この曲線に対応する符号は、多くともさらに1つのパケットの追加によりコンテンツを回復することが可能であることを保証する。この作業のためのリードソロモン符号は、体GF(16)で動作する必要があり、この例で構成されるAG符号の約半分の符号化速度および復号速度を有する。
24KBまでの符号化されたコンテンツサイズについて、25個の有理点という最大の可能な個数を有するGF(16)上の楕円曲線からのAG符号を使用することが可能である。そのような曲線は、当業者に周知であり、対応する符号は、簡単に構成することができる。これらの符号について、上で説明した復号処理のインデックスlが、絶対に1を超えないことが保証される。言い換えると、受信されたパケットの個数が、元のパケットの個数より1つ多い場合に、復号処理は成功する。しかし、受信されたパケットの個数が、元のパケットの個数と同一である場合には、復号器に関連する失敗の、ある確率がある。この確率は、この事例で数学的に計算することができ、おおむね1/25すなわち4%と等しい。
32KBまでの符号化されたコンテンツサイズについて、33個の点を有するGF(16)上のジーナス2の最大超楕円曲線(maximal hyperelliptic curve)からのAG符号を使用することができる。この曲線も、当業者に周知であり、関連する符号の構成も当業者に周知である。この場合に、上の処理のインデックスlは、絶対に2を超えない。37KBまでの符号化されたコンテンツサイズについて、38個の点を有するGF(16)上のジーナス3の最大曲線(maximal curve)からのAG符号を使用することができる。この場合に、上の処理のインデックスlは、絶対に3を超えない。44KBまでの符号化されたコンテンツサイズについて、38個の点を有するGF(16)上のジーナス4の最大曲線からのAG符号を使用することができる。この場合に、上の処理のインデックスlは、絶対に4を超えない。64KBまでの符号化されたコンテンツサイズについて、65個の有理点を有するGF(16)上のエルミート曲線を使用することができる。この場合に、インデックスlは、絶対に6を超えない。
上の事例のそれぞれで、k個のパケットを含む元のコンテンツの回復は、任意のk個の受信されたパケットから良い確率で可能であり、この確率は、受信されたパケットの個数がkを超える際にすばやく増加し、追加が使用される曲線のジーナスと等しい場合に、1の確率に達する。
<8.ランダム符号>
インターリーブ変換と組み合わされたサブシンボル・ベース・符号化の処理は、決してブロック符号に固有ではない。一般に、本発明の教示は、有限体GF(2)上のすべての符号、またはより一般的に、すべての有限体GF(q)上のすべての符号から利益を得ることができる。たとえば、この処理を、有益な効果のためにランダム符号と組み合わせることができる。
ランダム符号は、ブロック符号として、または連鎖反応符号に似た形で使用することができ、これに関して、生成できる出力符号の個数は、前もって固定されず、入力符号の個数より大きい大きさ程度とすることができる。具体的には、可能な出力符号の個数は、送信機(または、おそらくは調整されない、送信機のセット)が連続する転送に関して期待される時間の間に出力符号を繰り返さない、任意の期待される消失パターンより大きいものとすることができる。物理的処理が、真に無限で繰り返し可能であることはできないが、ルビーIまたは他所に記載のように、所与の入力シーケンスの出力シンボルの個数が実質的に無限になる、連鎖反応符号を簡単に使用することができる。出力シンボルの関連しないシーケンスが、オーバーラップする可能性が非常に低い(所与の入力シーケンスに関する出力シンボルの大きい空間に起因して)ので、これらの符号を、時々、「情報加法的符号」と称する。
ランダム・ブロック符号について、生成行列は、GF(q)の要素をランダムにまたは擬似ランダムに選択することによって得られる。本明細書で使用される「ランダム」に、「擬似ランダム」も含まれる場合があるが、開示の可読性を改善するために、これが、他所では明示的に述べられないことを理解されたい。体のサイズqは、行列のランク特性に依存する。一般に、qが大きいほど、所与の次元の行列が最大ランクを有する可能性が高くなる。上で説明した復号処理のステップ3(c)の成功は、行列のランク特性によって決定される。
GF(q)上のランダム連鎖反応符号について、各出力シンボルは、ルビーIおよびショクロラヒIに記載のように、キーを使用して生成される。キーごとに、入力シンボルのサブセットが、選択された入力シンボル要素ごとの体GF(q)内のランダムなまたは擬似ランダムな要素と一緒に選択される。概念上、GF(q)内の選択された値および選択されなかった入力シンボルに対応する位置の0を含むベクトルが形成され、インターリーブ変換と組み合わされたサブシンボル・ベース・符号化の処理が、この行列に適用される。この行列を作成する中間ステップは、純粋に概念的であり、応用例では完全に省略することができる。
一例として、GF(16)上の符号の事例をもう一度検討されたい。k行k列のランダム行列は、約93%と等しい確率で、GF(16)上で可逆である(本明細書で何かが「ランダム」と記述される場合に、必ず、そうでないと示されない限り、「擬似ランダム」もあてはまることを理解されたい)。これは、上で説明した復号処理を適用する際に、事例のうちの93%で、カウンタlが0のままになり、したがって、元のデータのサイズを超えるデータの受信が不要であることを意味する。k行k+1列のランダム行列は、約99.5%と等しい確率でランクkを有する。これは、カウンタlが、事例のうちの0.5%に限って2に達することを意味する。同様に、lが絶対に2を超えない確率は、約99.97%であり、lが絶対に3を超えない確率は、約99.998%であり、lが絶対に4を超えない確率は、約99.99998%であり、以下同様であり、lが6を超える確率は、約4×10−9である。表1に、受信された追加パケットの個数のさまざまな他の値に関する、復号器の誤り確率を示す。表1のデータは、非常に良いオーバーヘッドを有し、より小さい体の上で作られるのでリードソロモン符号より効率的な符号化アルゴリズムおよび復号アルゴリズムを有するランダム符号を構成することが可能であることを示す。
Figure 2007513549
類似する結果が、体GF(4)で発生する。表2に、GF(4)に関する、受信された追加パケットの個数の関数としての復号器の誤り確率を示す。GF(4)が、GF(16)上の符号と比較して2倍だけ符号化速度および復号速度を高めることに留意されたい。
Figure 2007513549
上の数字は、GF(4)またはGF(16)上のランダム符号に基づく情報加法的符号が、非常に小さいオーバーヘッドであっても優秀に実行することを暗示する。
複数の例を、インターリーブ変換と共に使用される非リードソロモン・符号化について示したが、他の非リードソロモン・ベース行列も動作することができる。
<変形形態>
いくつかの変形形態で、符号器は、出力シンボルをよりすばやく生成するために並列に動作する。サブシンボル動作のある利益を得るために、並列符号器モジュールは、完全に独立に動作するのではなく、相互依存でなければならない。たとえば、並列符号器は、サブシンボルが複数の入力シンボルにまたがって、入力シンボル内の異なるサブシンボル位置から混合されるように、値関数の適用に関して複数の入力シンボルにまたがってサブシンボル・セットの選択を調整する。
<結論>
リードソロモン・符号より少ない数の算術演算を用いて動作できるサブシンボル・ベース・符号化について述べた。本発明人は、最適性条件が必要である場合に、そのような符号が存在しないが、その要件を緩和することによって、興味ある符号が可能になることに気付いた。そのような符号について、元のコンテンツを復号できるようになるために受信する必要がある出力シンボルの個数に関して最適性条件を失わなければならないことを示すことができるが、ある種類の符号は、ほとんどの場合にリードソロモン符号に似て実行することを示す穏当な統計的特性を示し、ごく少数の場合に、元のコンテンツを回復するために余分のシンボルを必要とする。
絶対的最適性が、必ずしも要件ではなく、いずれにせよ必ずしもデータの完全な回復にはつながらないことの観察から、十分に良い最適に近い転送効率を、しばしば、かなり少ない計算労力で有することができる。たとえば、より小さいアルファベットを用いる符号を使用することによって、計算労力が大幅に減ると同時に、絶対最適性からのごくわずかな緩和だけが引き起こされる。
いくつかの好ましい実施形態で、上で説明した通信処理を実行する命令のセット(またはソフトウェア)が、おそらく損失のある通信媒体を介して通信する複数の多目的計算機械に提供される。機械の台数は、1つの送信機および1つの受信機から、任意の台数の送信し、かつ/または受信する機械までの範囲とすることができる。機械を接続する通信媒体は、有線、光、無線、または類似物とすることができる。上で説明した通信システムは、多数の用途を有し、これらの用途は、この説明から明白である。
上の説明は、例示的であって制限的ではない。本発明の多数の変形形態が、この開示を再検討した時に当業者に明白になるであろう。したがって、本発明の範囲は、上の説明を参照することによって決定されてはならず、その代わりに、添付請求項およびその同等物の全範囲を参照することによって決定されなければならない。
本発明の一実施形態による通信システムを示すブロック図である。 図1の符号器の一部を詳細に示すブロック図である。 GF(4)上の基礎行列を示す。 GF(2)上の2進生成行列を示す。 図1の出力シンボル生成器を示す図である。 図1のサブシンボル生成器を示す図である。

Claims (16)

  1. 通信チャネルを介して転送元から転送先にデータを転送する方法であって、転送される前記データは、入力シンボルの順序付きセットに編成され、
    前記データの入力サブシンボルを指定するステップであって、入力サブシンボルは、入力シンボルの一部または全部であり、少なくとも1つの入力シンボルは、複数のサブシンボルに分割され、各入力サブシンボルは、その入力シンボル内で一意のインデックスを用いて識別可能である、ステップと、
    前記入力サブシンボルから複数の出力サブシンボルを生成するステップであって、出力サブシンボルは、値関数と付随物のセットとを使用して1以上の入力サブシンボルから生成され、付随物の前記セットは、前記値関数が適用される前記入力サブシンボルを識別し、少なくとも1つの出力サブシンボルは、その入力シンボル内で異なるインデックスをそれぞれが有する複数の入力サブシンボルの関数である、ステップと、
    生成された複数のシンボルの出力から複数の出力シンボルを生成するステップであって、前記複数の出力シンボルは、符号化された入力シンボルと等しいサイズの受信された出力シンボルの少なくとも1つの可能なセットについて、符号化された入力シンボルを再生成するために、追加の受信された出力シンボルが受信された出力シンボルの完全な復号に必要であるようになっている、ステップと、
    受信機が前記複数の出力シンボルの一部または全部から入力シンボルの前記順序付きセットを再生成できるように、前記通信チャネルを介して前記複数の出力シンボルを転送するステップと、
    をさらに含むことを特徴とする方法。
  2. 入力シンボルの所与のセットに関する可能な出力シンボルの個数は、入力シンボルの前記所与のセットを再生成するのに必要な出力シンボルの個数に関して事実上無限であることを特徴とする請求項1に記載の方法。
  3. 少なくとも1つの出力サブシンボルは、複数の入力サブシンボルと、入力サブシンボルの前記セット内の前記入力サブシンボルの全部より少ないものと、少なくとも1つの入力シンボル内のサブシンボルの全部より少ないものとから生成されることを特徴とする請求項1に記載の方法。
  4. 前記入力シンボルのそれぞれは、共通の個数のサブシンボルに分割され、前記共通の個数は1より大きいことを特徴とする請求項1に記載の方法。
  5. 前記値関数は、すべての出力サブシンボルについて同一であることを特徴とする請求項1に記載の方法。
  6. 前記値関数は、少なくとも2つの出力サブシンボルについて異なることを特徴とする請求項1に記載の方法。
  7. 付随物の前記セットは、連鎖反応符号化処理を使用して決定されることを特徴とする請求項1に記載の方法。
  8. 前記値関数は、付随物の前記セットの線形関数であることを特徴とする請求項1に記載の方法。
  9. 前記線形関数は、インターリーブ変換処理を使用して導出されることを特徴とする請求項8に記載の方法。
  10. 前記値関数は、出力サブシンボルによって変化し、インターリーブ変換処理を使用して導出される付随物の前記セットの線形関数であり、複数の値関数は、その素体上における少なくとも2の次数の有限体上で定義される符号の生成行列に適用されるインターリーブ変換処理を使用して得られることを特徴とする請求項1に記載の方法。
  11. 前記符号は、0より大きいジーナスの曲線上で定義される代数幾何符号であることを特徴とする請求項10に記載の方法。
  12. 前記符号は、ランダム符号であることを特徴とする請求項10に記載の方法。
  13. 前記符号は、その素体上における少なくとも2の次数の拡大体である有限体上の連鎖反応符号であることを特徴とする請求項10に記載の方法。
  14. 前記連鎖反応符号は、ランダム符号であることを特徴とする請求項13に記載の方法。
  15. s個の入力シンボルを含むデータをt個のシンボルに符号化する方法であって、sは1より大きい整数であり、tは1より大きい整数であり、
    前記s個の入力シンボルのそれぞれを同一サイズのm個のサブシンボルに分割するステップと、
    t行s列の基礎行列を取得するステップであって、前記基礎行列の項目は、有限体GF(2)の要素であり、前記基礎行列は、リードソロモン基礎行列以外を形成する、ステップと、
    前記基礎行列の項目ごとに有限体の正則表現をGF(2)モジュールとして置換し、これによってt*m行s*m列の2進行列を生成することによって、前記基礎行列から拡大2進行列を生成するステップと、
    t*m個の出力サブシンボルを形成するために前記s*m個の入力サブシンボルに対して前記拡大2進行列を作用させるステップと、
    m個の出力サブシンボルのグループを出力シンボルにグループ化するステップであって、それにより、前記s個の入力シンボルと一緒に前記s個の入力シンボルの誤り訂正として使用可能なt個の出力シンボルを形成する、ステップと、
    を含むことを特徴とする方法。
  16. 前記基礎行列は、0より大きいジーナスの曲線に基づく代数幾何符号を表すことを特徴とする請求項15に記載の方法。
JP2006541501A 2003-12-01 2004-12-01 サブシンボル・ベース符号を使用する消去からのデータの保護 Expired - Fee Related JP4787167B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US52621803P 2003-12-01 2003-12-01
US60/526,218 2003-12-01
US52645203P 2003-12-02 2003-12-02
US60/526,452 2003-12-02
PCT/US2004/040271 WO2005055016A2 (en) 2003-12-01 2004-12-01 Protection of data from erasures using subsymbol based codes

Publications (3)

Publication Number Publication Date
JP2007513549A true JP2007513549A (ja) 2007-05-24
JP2007513549A5 JP2007513549A5 (ja) 2008-01-31
JP4787167B2 JP4787167B2 (ja) 2011-10-05

Family

ID=36928958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006541501A Expired - Fee Related JP4787167B2 (ja) 2003-12-01 2004-12-01 サブシンボル・ベース符号を使用する消去からのデータの保護

Country Status (6)

Country Link
US (1) US7412641B2 (ja)
EP (1) EP1706946A4 (ja)
JP (1) JP4787167B2 (ja)
KR (1) KR101041762B1 (ja)
CN (2) CN100505552C (ja)
WO (1) WO2005055016A2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US20020129159A1 (en) * 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2004034589A2 (en) 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN101834610B (zh) 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
KR101161193B1 (ko) 2004-05-07 2012-07-02 디지털 파운튼, 인크. 파일 다운로드 및 스트리밍 시스템
FR2880218B1 (fr) * 2004-12-23 2007-02-16 Canon Kk Procede de decodage pour codes de geometrie algebrique et dispositif associe
US7596673B2 (en) * 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
JP5550834B2 (ja) 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
RU2367007C2 (ru) * 2007-08-30 2009-09-10 Станислав Антонович Осмоловский Способ передачи и комплексной защиты информации
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8127212B2 (en) * 2007-09-26 2012-02-28 Hewlett-Packard Development Company, L.P. System and method for determining the fault-tolerance of an erasure code
US8250427B2 (en) * 2008-06-18 2012-08-21 Hewlett-Packard Development Company Selecting erasure codes for a fault tolerant system
US7925927B2 (en) * 2008-06-23 2011-04-12 Hewlett-Packard Development Company, L.P. Simulator for determining data loss in a fault tolerant system
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
EP2234304B1 (en) * 2009-03-19 2013-01-02 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US8479082B2 (en) * 2010-04-07 2013-07-02 Indian Institute Of Technology Delhi Packet error correction in networks
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
ITVI20120026A1 (it) * 2012-01-27 2013-07-28 St Microelectronics Srl Metodi per la condivisione di files relativi al protocollo bit fountain
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
WO2014047882A1 (en) * 2012-09-28 2014-04-03 France Telecom Method for transmitting data content in content centric network
CN104508982B (zh) * 2012-10-31 2017-05-31 慧与发展有限责任合伙企业 组合的块符号纠错
US9311640B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
US9425952B2 (en) * 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves
EP3672139A1 (en) * 2018-12-19 2020-06-24 Koninklijke Philips N.V. A circuit compiling device and circuit evaluation device
CN110071727B (zh) * 2019-04-26 2023-05-05 成都海光集成电路设计有限公司 编码方法、译码方法、纠错方法及装置
US12101412B2 (en) 2022-09-12 2024-09-24 Nxp Usa, Inc. Lightweight fault detection mechanism for streaming of cryptographic data objects

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002204219A (ja) * 2000-11-07 2002-07-19 Agere Systems Guardian Corp 損失パケットのバーストを訂正するための低遅延通信路符号
JP2004048704A (ja) * 2002-07-12 2004-02-12 Sumitomo Electric Ind Ltd 伝送データ生成方法及び伝送データ生成装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE108587T1 (de) * 1986-09-13 1994-07-15 Philips Nv Verfahren und schaltungsanordung zur bitratenreduktion.
US5164963A (en) * 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
AU665716B2 (en) * 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
JPH11505685A (ja) * 1995-04-27 1999-05-21 トラスティーズ・オブ・ザ・スティーブンス・インスティテュート・オブ・テクノロジー 時間限界マルチメディアネットワークアプリケーションのための高保全性伝送
DE19716011A1 (de) * 1997-04-17 1998-10-22 Abb Research Ltd Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
US6088330A (en) * 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
GB2366159B (en) * 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
US7240236B2 (en) * 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002204219A (ja) * 2000-11-07 2002-07-19 Agere Systems Guardian Corp 損失パケットのバーストを訂正するための低遅延通信路符号
JP2004048704A (ja) * 2002-07-12 2004-02-12 Sumitomo Electric Ind Ltd 伝送データ生成方法及び伝送データ生成装置

Also Published As

Publication number Publication date
CN1886898A (zh) 2006-12-27
EP1706946A2 (en) 2006-10-04
US7412641B2 (en) 2008-08-12
WO2005055016A2 (en) 2005-06-16
US20050219070A1 (en) 2005-10-06
CN100505552C (zh) 2009-06-24
EP1706946A4 (en) 2006-10-18
WO2005055016A3 (en) 2006-05-04
KR101041762B1 (ko) 2011-06-17
CN101582698A (zh) 2009-11-18
JP4787167B2 (ja) 2011-10-05
KR20060096156A (ko) 2006-09-07
CN101582698B (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
JP4787167B2 (ja) サブシンボル・ベース符号を使用する消去からのデータの保護
KR101355761B1 (ko) 통신 시스템의 다중 필드 기반 코드 발생기 및 디코더
KR101161193B1 (ko) 파일 다운로드 및 스트리밍 시스템
JP5123174B2 (ja) 前方エラー訂正(fec)符号およびストリーミング
US7721184B2 (en) Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4546246B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
KR20120058556A (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
TWI485992B (zh) 猛禽碼之編碼加速裝置與方法
JP2011172279A (ja) 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071122

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090713

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110207

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110307

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110614

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees