Patent US4649541A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4649541A Expired / Lapsed US ⏱️ 0.0 years remaining

Reed-Solomon decoder

Assignee: National Aeronautics and Space Administration
•
Filing: 1984-11-21
•
Granted: 1987-03-10
•
Expires: 2004-11-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A Reed-Solomon decoder with dedicated hardware for five sequential algorithms is provided with overall pipelining by memory swapping between input, processing and output memories, and internal pipelining through the five algorithms. The code definition to be used in decoding is specified by a keyword received with each block of data so that a number of different code formats may be decoded by the same hardware.

Inventors

  • 👤 Charles R. Lahmeyer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 23:43
CPC Classifications
H; H03; H03M; H03M13/00; H03M13/03; H03M13/05; H03M13/13; H03M13/15; H03M13/151

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 181 words
A decoder for decoding Reed-Solomon encoded data comprising input means for receiving said encoded data in a stream of code blocks, memory means coupled to said input means for storing said received encoded data, processing means coupled to said memory means for performing decoding functions on said stored encoded data and returning processed data to said memory, output means coupled to said memory means for transmitting decoded data from said decoder, said memory means including three identical memories, one for storing encoded data to be decoded, one for storing data being decoded, and one for storing decoded data being transmitted out of the decoder, each memory having its own addressing means and data output terminals, means for determining when each of said input means, processing means and output means have completed their respective functions on a different code block, and switching means responsive to said determining means for sequentially swapping memories between said input means, processing means and output means, whereby overall pipelining of code blocks is provided through said decoder without physically transferring code blocks through more than one memory.
Claim 2
Dependent Claim 181 words
A decoder for decoding Reed-Solomon encoded data comprising input means for receiving said encoded data in a stream of code blocks, memory means coupled to said input means for storing said received encoded data, processing means coupled to said memory means for performing decoding functions on said stored encoded data and returning processed data to said memory, output means coupled to said memory means for transmitting decoded data from said decoder, said memory means including three identical memories, one for storing encoded data to be decoded, one for storing data being decoded, and one for storing decoded data being transmitted out of the decoder, each memory having its own addressing means and data output terminals, means for determining when each of said input means, processing means and output means have completed their respective functions on a different code block, and switching means responsive to said determining means for sequentially swapping memories between said input means, processing means and output means, whereby overall pipelining of code blocks is provided through said decoder without physically transferring code blocks through more than one memory.
Claim 3
Dependent Claim 47 words
A decoder as defined in claim 1 wherein said processing means is comprised of a plurality of sections, each for carrying out an algorithm step, and each pipelined such that data is pipelined through the decoding means for decoding while overall pipelining is affected by memory swapping.
Claim 4
Dependent Claim 281 words
A decoder as defined in claim 2 wherein said data is encoded in a Reed-Solomon code consisting of codewords made up of K data and N-K check symbols, where K is an arbitrary number and K is a number smaller than N, and each symbol is made up of J binary bits encoded with a generator polynomial g(X) and a field generating polynomial M(X) which defines the representation of the Galois field, and said processing means comprises the following sequentially pipelined processing means: pipelined means for generating a syndrome polynomial S(X) in response to each received codeword R(X), wherein said syndrome consists of m terms and has the form S(X)=S.sub.m X.sup.m-1 +S.sub.m-1 X.sup.m-2 . . . +S.sub.2 X+S.sub.1 and said received code word is defined as R(X)=R.sub.o +R.sub.1 X+R.sub.2 X.sup.2 . . . R.sub.n-1 X.sup.N-1 +R.sub.n X.sup.N pipelined means for computing Euclid's algorithm for determining an error locator polynomial σ(X)=σ j X j +σ j-1 X j-1 . . . +σ 1 X+σ o , where 1≦j≦m/2 and an error magnitude evaluator polymomial ω(X)=ω i X i +ω i-1 X i-1 . . . ω i X+ω o , where i=j-1, pipelined means for computing the roots β of the error locator polynomial ω(X) to determine the location of errors, means for computing the error magnitudes Eβ from the derivative σ'(X) of the error locator polynomial, the error magnitude evaluator polynomial ω(X) and the root β of the error locator polynomial, comprising means for computing σ'(β) and ω(β), and means for computing Eβ=σ(β)/ω(β), and pipelined means for correction of error by adding the error magnitudes at the proper locations found by taking the negative logrithm of the error locator root β.
Claim 5
Dependent Claim 44 words
A decoder as defined in claim 3 wherein each code block received includes a keyword which specifies for the decoder the generator polynomial g(X) to be used, whereby said decoder may decode a number of different Reed-Solomon codes generated with a different generator polynomial.
Claim 6
Dependent Claim 37 words
A decoder as defined in claim 4 wherein each keyword of a code block received specifies the depth of interleaving of symbols, and including means for deinterleaving a code block and arranging it into codewords for processing.
Claim 7
Independent Claim 239 words
A method of decoding Reed-Solomon encoded data received in a stream of encoded blocks comprised of five sequential algorithms through which each block of data is processed for decoding consisting of generating a syndrome polynomial S(X) in response to each received codeword R(X), wherein said syndrome consists of m terms and has the form S(X)=S.sub.m X.sup.m-1 +S.sub.m-1 X.sup.m-2 . . . +S.sub.2 X+S.sub.1 and said received code word is defined as R(X)=R.sub.o +R.sub.1 X+R.sub.2 X.sup.2 . . . R.sub.n-1 X.sup.N-1 +R.sub.n X.sup.N computing Euclid's algorithm for determining an error locator polynomial σ(X)=σ j X j +σ j-1 X j-1 . . . +σ 1 X+σ o , where 1≦j≦m/2 and an error magnitude evaluator polynomial ω(x) and ω i X i +ω i-1 X i-1 . . . ω 1 X+ω o , where i is the ith term of the evaluator polynomial ω(X), and is equal to j-1, where j is the jth term of the error locator polynomial, computing the roots β of the error locator polynomial ω(X) to determine the location of errors, computing the error magnitudes Eβ from the derivative σ'(X) of the error locator polynomial, the error magnitude evaluator polynomial ω(X) and the root β of the error locator polynomial, comprising means for computing σ'(β) and ω(β), and means for computing Eβ=σ(β)/ω(β), and correcting errors by adding the error magnitudes at locations found by taking the negative logrithm of the error locator root β,
Claim 8
Independent Claim 239 words
A method of decoding Reed-Solomon encoded data received in a stream of encoded blocks comprised of five sequential algorithms through which each block of data is processed for decoding consisting of generating a syndrome polynomial S(X) in response to each received codeword R(X), wherein said syndrome consists of m terms and has the form S(X)=S.sub.m X.sup.m-1 +S.sub.m-1 X.sup.m-2 . . . +S.sub.2 X+S.sub.1 and said received code word is defined as R(X)=R.sub.o +R.sub.1 X+R.sub.2 X.sup.2 . . . R.sub.n-1 X.sup.N-1 +R.sub.n X.sup.N computing Euclid's algorithm for determining an error locator polynomial σ(X)=σ j X j +σ j-1 X j-1 . . . +σ 1 X+σ o , where 1≦j≦m/2 and an error magnitude evaluator polynomial ω(x) and ω i X i +ω i-1 X i-1 . . . ω 1 X+ω o , where i is the ith term of the evaluator polynomial ω(X), and is equal to j-1, where j is the jth term of the error locator polynomial, computing the roots β of the error locator polynomial ω(X) to determine the location of errors, computing the error magnitudes Eβ from the derivative σ'(X) of the error locator polynomial, the error magnitude evaluator polynomial ω(X) and the root β of the error locator polynomial, comprising means for computing σ'(β) and ω(β), and means for computing Eβ=σ(β)/ω(β), and correcting errors by adding the error magnitudes at locations found by taking the negative logrithm of the error locator root β,
Claim 9
Dependent Claim 37 words
wherein each code block received includes a keyword which specifies for the decoder the generator polynomial g(X) to be used, whereby said decoder may decode a number of different Reed-Solomon codes generated with a different generator polynomial.
Claim 10
Dependent Claim 37 words
wherein each code block received includes a keyword which specifies for the decoder the generator polynomial g(X) to be used, whereby said decoder may decode a number of different Reed-Solomon codes generated with a different generator polynomial.
Claim 11
Dependent Claim 42 words
A method of decoding Reed-Solomon encoded data as defined in claim 6 wherein each keyword of a code block received specifies the depth of interleaving of symbols, and including means for deinterleaving a code block and arranging it into codewords for processing.
Claim 12
Dependent Claim 39 words
A method of decoding Reed-Solomon encoded data as defined in claim 7 wherein codewords are pipelined through the sequential algorithms, thereby eliminating delays by allowing processing to begin on a codeword before decoding is completed on a first codeword.
Claim 13
Dependent Claim 28 words
A method of decoding Reed-Solomon encoded data as defined in claim 8 wherein the number of errors in a codeword is totaled for transmsittal with the decoded data.

References Cited (Backward Citations)

US4162480A Cited
US4410989A Cited
US4566105A Cited
US4583225A Cited
US4567594A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-03-09 1990-09-08 1991-03-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-03-09 1994-09-08 1995-03-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-03-09 1998-09-08 1999-03-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag