Apparatus for uniformly correcting erasure and error of received word by using a common polynomial

Abstract: A syndrome polynomial S(x) is generated based on a received word, an erasure locator polynomial λ(x) is generated based on an erasure location, an error evaluator polynomial ω(x) is generated based on a polynomial M(x) which is a product S(x) · λ(x) of the syndrome polynomial S(x) and the erasure locator polynomial λ(x), a polynomial τ(x) which is a product λ(x) · σ(x) of the erasure locator polynomial λ(x) and the error locator polynomial σ(x) and a differentiation τ(x) of the polynomial τ(x) based on the polynomial M(x) and the erasure locator polynomial λ(x), a dimension α i is set to the error evaluator polynomial ω(x), the polynomial τ(x) and the differentiation τ'(x), and when τ(α i )=0, the i-th symbol of the received word is corrected to ω(α i )/τ'(α i ).

Description: The present invention relates to an apparatus for correcting an error which has occurred in a communication path in a digital communication system or a recording medium in a digital recording system, at a receiving or reading station. In the digital communication system and the digital recording system, an error correcting code has been used to correct an error which has occurred in the communication path or the recording medium at the receiving station. As such an error correcting code, Reed-Solomon code (RS code) and BCH code have been well known. Those codes are widely utilized in an optical disk and a satellite communication and encoders and decoders therefor have been implemented in the form of IC. Recently, a decoder having a high error correcting capability at a high speed is demanded and various proposals have been made to meet this demand. Before explaining the proposals specifically, assuming that an RS code is used as an error correcting code, a formula expressing a received word R(x) is first explained. The following generator polynomial is used: where m (a positive integer) represents a bit length of one symbol, n ≦ 2 m-1 represents a code length, k=n-(d-1) represents an information length and d represents a minimum distance. For simplicity, it is assumed that b=0 in the formula (1), the code is defined on a Galois field GF(2 m ) and a primitive element thereof is at α. The encoding is carried out by the following operation. A check polynomial P(x) is generated from the following polynomial I(x) having coefficients represented by an information string {I k-1 , I k-2 , ...., I 0 } and the generator polynomial G(x) of the formula (1): P(x) = I(x)·X d-1 mod G(x) A code word C(x) transmitted is represented by: C(x) = I(x)·X d-1 +P(x) where in the formula (4) deg P(x)<n-k represents an order of P(x) and each coefficient of P(x) gives a check digit. It is assumed that when the code word represented by the formula (4) is transmitted, an error E(x) is added in a communication path and a received word R(x) represented by the following formula (5) is received at a receiving station, wherein the coefficients of E(x) are also represented by the Galois field GF(2 m ) and are zero if there is no error. R(x) = C(x) + E(x) Various methods have been proposed as a decoding method for the received word R(x) of the RS code, and USP 4,873,688 discloses a decoder having a configuration principle as shown in Fig. 7. In this decoder, a received word R n-j is inputted to a syndrome polynomial operation circuit 1, which operates a syndrome polynomial S(x) by the following formula (6). where The syndrome polynomial S(x) is inputted to polynomial operation circuits 4 and 5 and an error locator polynomial σ(x) and a differentiation thereof σ'(x) and an error evaluator polynomial ω(x) are determined in the course of an operation of an Euclidean algorithm. Then, the error locator polynomial σ(x), the differentiation thereof σ'(x) and the error evaluator polynomial ω(x) are inputted to polynomial processing circuits 6a - 6c where x is set to α i and the formulas thus processed are inputted to a correction circuit 7. In the correction circuit 7, if the error locator polynomial σ(α i ) is 0, it is determined that an error has occurred in an i-th symbol R i of the received word and the error evaluator e i is calculated by the following formula: e i = ω(α i )/σ'(α i ) In Fig. 7, since the processing in the polynomial operation circuits 4 and 5 and the processing in the polynomial processing circuits 6a - 6c can be concurrently carried out, pipeline processing is carried out for the continuously transmitted received words (messages 1, 2, 3, ...) as shown in Fig. 9. In practice a memory M is provided as shown in Fig. 8 and it receives the received word in synchronism with the processing of the syndrome polynomial operation circuit 1 and outputs it in synchronism with the processing of the correction circuit 7 to carry out the decoding at a high speed on real time basis. In this manner, if the error locator polynomial σ(α i ) is 0, it is assumed that an error has occurred in the i-th symbol R i of the received word and a correction value p i = e i is added to the symbol R i to correct the i-th symbol R i of the received word. In the proposed decoder, 16 errors can be corrected at a rate of 80M bits/sec (bps) on real time basis but it cannot carry out erasure correction. On the other hand, the inventor of the present invention have proposed a decoder for carrying out the decoding operation including the erasure correction (USP 5,325,373) and Fig. 10 shows a block diagram of a configuration principle of the proposal. In the proposed decode, an erasure locator polynomial operation circuit 2 and a product polynomial operation circuit 3 are newly provided, and in the erasure locator polynomial operation circuit 2, an erasure location polynomial λ(x) shown by the following formula (9) is calculated: where Y(i) = α ji (i = 1, 2, ..., s) for s erasure locations j 1 , j 2 , ... j s . In this case, it is assumed that s erasures occur at locations j 1 , j 2 , ... j s in the received word R(x), r errors occur in addition to the erasure at locations k 1 , k 2 , ... k r , and the decoder is aware of the erasure locations j 1 , j 2 , ... j s but unaware of the error locations k 1 , k 2 , ... k r . It is assumed that the erasure is indicated by a flag and a symbol of the erasure location is a dimension on the Galois field GF(2 m ) as other locations are. It is also assumed that 2t + s + 1 ≦ d (where t represents the number of correctable errors and t ≧ r) is met. The syndrome polynomial S(x) calculated by the syndrome polynmial operation circuit 1 and the erasure locator polynomial λ(x) are inputted to the product polynomial operation circuit 3 in the same manner as in the decoder of Fig. 7, and in the product polynomial operation circuit 3, the product polynomial M(x) = S(x)·λ(x) of the syndrome polynomial S(x) and the erasure locator polynomial λ(x) is calcuated. The product polynomial M(x) = S(x)·λ(x) is then inputted to the polynomial operation circuit 4, and in the polynomial operation circuits 4 and 5, an error locator polynomial σ(x) and an error evaluator polynomial ω which meet the following formulas (10) and (11) are calculated for the polynomial x d-1 and the product polynomial M(x): deg ω(x) < t + s, deg σ(x) ≦ t A(x)·X d-1 + σ(x) · M(x) = ω(x) where A(x) is a polynomial on the GF(2 m ). The error evaluator polynomial ω(x) and the error locator polynomial σ(x) which meet the formulas (10) and (11) are determined by separate processing in the course of the Euclidean algorithm to determine a greatest common divisor polynomial (GCD) of x d-1 and M(x). Then, the error evaluator polynomial ω(x), the error locator polynomial σ(x), the differentiation σ'(x) of the error locator polynomial σ(x), the erasure locator polynomial λ(x) and the differentiation λ'(x) of the erasure locator polynomial λ(x) are inputted to the polynomial processing circuits 6a - 6e and x is set to α i (i = -n + 1, ..., 0) in those formulas. The error evaluator polynomial ω(α i ), the error locator polynomial σ(α i ), the differentiation σ'(α i ) of the error locator polynomial σ(x), the erasure locator polynomial λ(α i ) and the differentiation λ'(α i ) of the erasure locator polynomial α(x) are inputted to the correction circuit 7. In the correction circuit 7, if the error locator polynomial σ(α i ) is 0, it is determined that an error occurred in the i-th symbol R i of the received word and the error e i is calculated by the following formula (12) and an erasure value E i at the erasure location is calculated by the following formula (13): e i = ω(α i )/{σ'(α i )·λ(α i )} E i = ω(α i )/{λ'(α i )·σ(α i )} In this manner, the correction value p i is added to the i-th symbol R i of the received word determined to have the error to correct the error and fill the erasure in order to correct the received word where the correction value is represented by: p i = e i ; when the error locator polynomial σ(α i ) is 0 p i = E i ; when erasure location p i = 0; other cases In this manner, the decoding operation including the erasure correction can be carried out by the decoder previously proposed by the present inventors. The proposed decoder can carry out the decoding operation including the erasure correction but a circuit scale of the decoder and a processing time increase and the high speed real time processing as disclosed in USP 4,873,688 is difficult to attain. It is an object of the present invention to correct the erasure and the error at a high speed. It is known from US-A-4868828 to use a Forney syndrome polynomial which is the product of the syndrome polynomial and the erasure location polynomial for calculating the erasure locations and the error locations. However, the determination of the error values in this document is complicated. It is based on quotients of the evaluator polynomial through the error and erasure location polynomial at the inverse of the generator roots. According to the present invention there is disclosed an apparatus for correcting erasure and error of a received word comprising: syndrome polynomial generation means for generating a syndrome polynomial based on the received word; erasure locator polynomial generation means for generating an erasure locator polynomial based on an erasure location; first product polynomial generation means for generating a first product polynomial which is a product of the syndrome polynomial and an erasure locator polynomial; error evaluator polynomial generation means for generating an error evaluator polynomial based on the first product polynomial; second product polynomial generation means for generating a second product polynomial which is a product of the erasure locator polynomial and the error locator polynomial and a differentiation of the second product polynomial; first numeric operation means for producing a value of differentiation of the second product polynomial by substituting a specific element for a variable; second numeric operation means for producing a value of the error evaluator polynomial by substituting a specific element for a variable; third operation means for producing a value of the second product polynomial by substituting a specific element for a variable; determination means for determining whether the operation result of said third numeric operation means is a predetermined value; and correction means for substituting a specific element corresponding to the location of symbols of the received word for a variable of said first to third numeric operation means, and when the predetermined value is detected by said determination means, correcting the corresponding symbol by using the operation result of said first and second operation means, characterised by fourth numeric operation means for dividing the operation result of said first numeric operation means by the operation result of said second numeric operation means; and by said correction means being operable to correct the symbol by adding the operation result of said fourth operation means. Other aspects of the present invention are disclosed in accordance with the appended claims. A preferred embodiment unifies the processes of calculating the erasure location value and the error location value by using a common polynomial to simplify a circuit for the erasure correction and error correction to attain high speed processing. Other objectives and advantages besides those discussed above shall be apparent to those skilled in the art from the description of preferred embodiments of the invention which follow. In the description, reference is made to the accompanying drawings, which from a part thereof, and which illustrate examples of the invention. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a block diagram of a configuration of an error correction apparatus of a first embodiment, Fig. 2 shows a block diagram of a configuration of the error correction apparatus of the first embodiment, Fig. 3 show a block diagram of a correction circuit, Fig. 4 illustrates an operation of the first embodiment, Fig. 5 shows a block diagram of a configuration of the error correction circuit of the first embodiment, Fig. 6 illustrates an operation of a second embodiment, Fig. 7 shows a block diagram of a configuration of a prior art error correction apparatus, Fig. 8 shows a block diagram of a configuration of a prior art error correction apparatus, Fig. 9 illustrates an operation of the prior art error correction apparatus, Fig. 10 shows a block diagram of a configuration of a prior art erasure correctable error correction apparatus, and Figs. 11A and 11B show block diagrams of configurations of a syndrome generator circuit and a polynomial processing circuit. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of this invention will now be described in detail with reference to the accompanying drawings. [First Embodiment] Referring to Figs. 1 to 4, a first embodiment of the present invention is explained. Fig. 1 shows a block diagram of a configuration principle of a decoder of the present embodiment, Fig. 2 shows a block diagram of a configuration of the decoder of the present embodiment, Fig. 3 shows a block diagram of a main portion of a correction circuit 7 of the present embodiment, and Fig. 4 illustrates an operation of the decoder of the present embodiment. In the present embodiment, the product polynomial operation circuit 3 is eliminated from the decoder shown in Fig. 10, and an operation circuit 2b of the same configuration as that of the erasure locator polynomial operation circuit 2 is provided in place of the product polynomial operation circuit 3. The polynomial operation circuits 4a and 5a operate an error evaluator polynomial ω(x), a newly defined error and erasure locator polynomial τ(x) = λ(x)·σ(x) and a differentiation τ'(x) of the error and erasure locator polynomial τ(x) in the Euclidean algorithm. In the present embodiment, since the polynomial processing circuit of the correction circuit 12 operates the error evaluator polynomial ω(x), the error and erasure locator polynomial τ(x) = λ(x)·σ(x) and the differentiation τ'(x) of the error and erasure locator polynomial τ(x), three error evaluator polynomials 6a, 6f and 6g are provided. The correction circuit 7 of the correction circuit 12 has a function to calculate the error value and the erasure value based on the error evaluator polynomial ω(x), the error and erasure locator polynomial τ(x) = λ(x)·σ(x) and the differentiation τ'(x) of the error and erasure locator polynomial τ(x) to carry out the correction. The configuration of other portions of the present embodiment is identical to that of the decoder of Fig. 10 described above. In the erasure locator polynomial operation circuit 2, the processing of λ i (x) = λ i-1 (x)·(1-Y i x) with an initial λ(x) being λ 0 (x) is repeated for i = 1, ..., s to determine the erasure locator polynomial λ s (x). Accordingly, when the initial value for λ(x) is λ 0 (x) = S(x), λ(x) = S(x)·λ s (x) = M(x) is derived. Accordingly, by proving the operation circuit 2b of the same configuration as that of the erasure locator polynomial operation circuit 2 and changing the initial value from 1 to S(x), the product polynomial M(x) can be calculated. In the Euclidean algorithm conducted in the polynomial operation circuits 4a and 5a, operations of the following formulas (15) and (16) are repeated until deg ω e (x) < t is met, with the initial value of ω -1 (x) = x d-1 ω 0 (x) = M(x) σ -1 (x) = 0 σ 0 (x) = 1 ω i (x) = q i ·ω i-1 (x)+ω i-2 (x) (deg ω i-1 > deg ω i ) σ i (x) = q i ·σ i-1 (x)+σ i-2 In this case, the error locator polynomial σ(x) = σ e (x) and the error evaluator polynomial ω(x) = ω e (x). When the initial value is σ 0 (x) = λ(x), the final result polynomial derived from the formulas (15) and (16) is λ(x)·σ e (x). Thus, hereinlater, τ(x) = λ(x)·σ(x) is referred to as the error and erasure locator polynomial. In the present embodiment the polynomial processing circuits 4a and 5a output the error evaluator polynomial ω(x), the error and erasure locator polynomial τ(x) and the differentiation of the error and erasure locator polynomial τ(x) and they are inputted to the polynomial processing circuits 6a, 6g and 6f of the correction circuit 12, respectively. The error and erasure locator polynomial τ(x) = λ(x)·σ(x) is λ(α i ) = 0 at the erasure location and σ(α i ) = 0 at the error location. Thus, τ(α i ) = 0 at the error and erasure location so that the erasure location and the error location can be determined. The differentiation of the error and erasure locator polynomial τ(x) = λ(x)·σ(x) is represented by the following formula (17): τ'(x) = λ'(x)·σ(x)+λ(x)·σ'(x) At the erasure location, λ(α i ) = 0. Thus, from the formula (17), τ'(α i ) = λ'(α i )·σ(α i ) and the following formula (18) is derived from the formula (13). E i = ω(α i )/τ'(α i ) At the error location, σ(α i ) = 0. Thus, from the formula (17), τ'(α i ) = λ(α i )·σ'(α i ) is derived and the following formula (19) is derived from the formula (12). e i = ω(α i )/τ' (α i ) In this manner, by using the error and erasure locator polynomial, the error value e i and the erasure value E i are calculated by the error evaluator polynomial ω(x) and the differentiation of the erasure locator polynomial τ(x). In the present embodiment, the polynomial processing means 6a, 6f and 6g and the correction circuit 7 form the correction circuit 12, and the error value and the erasure value are calculated by the same formula p i = ω(α i )/τ'(α i ), and if the error locator polynomial σ(α i ) is 0, it is determined that an error occurred at the i-th symbol R i of the received word and the correction value p i is added to the i-th symbol R i of the received word to correct the error, and the erasure value E i is filled at the erasure location to correct the received word. In the correction circuit 7 of the present embodiment, as shown in Fig. 3, when an input from a terminal t2 to a switch 17 is 0 at the error and erasure location, a multiplication circuit 16 (terminal t1) is selected as the output. From the terminal t1, the differentiation τ'(α i ) is inputted to a reciprocal generator circuit 15 and it is multiplied by ω(α i ) by a multiplier circuit 16 to produce a product ω(α i )/τ'(α i ) to determine the correction value p i . The correction value p i is added to the i-th symbol R i of the received word by an adder 18. When the input from the terminal 12 is other than 0, the switch 17 is switched to output 0, and the symbol R i is outputted as it is in the adder 18. In the present embodiment, the processing of the erasure locator polynomial operation circuit 2 and the operation circuit 2b, the processing of the polynomial operation circuits 4a and 5a, and the processing of the polynomial processing circuits 6a, 6f and 6g of Fig. 1 can be concurrently carried out. Thus, the pipeline processing as shown in Fig. 4 can be carried out for the continuously transmitted received words (messages 1, 2, 3, ...). In practice, a memory M is provided as shown in Fig. 2, and the memory M receives the received word in synchronism with the processing of the syndrome polynomial operation circuit 1 and outputs it in synchronism with the processing of the correction circuit 7 to carry out the decoding operation at a high speed on real time basis. In general, the processing time of the syndrome polynomial operation circuit 1, the polynomial processing circuits 6a, 6f and 6g and the correction circuit 7 depends on the code length n, and the processing time of the erasure locator polynomial operation circuit 2 and the polynomial operation circuits 4a and 5a depends on a minimum distance d. In the present embodiment, since all of the processing are pipelined, the high speed read time decoding is attained in the encoded word having the code length of n ≧ d-1 (all encoded words and shortened encoded words). Fig. 11A shows a configuration of the syndrome polynomial operation circuit 1. A memory element 111 stores a sum of an adder 113. A multiplier 112 multiplies the content read from the memory element 111 by α i . The adder adds a new received word to the product of the multiplier 112. By setting α k as the multiplier of the multiplier 112, S k-1 of the formula (7) which is a coefficient of the syndrome polynomial is calculated. In order to attain all coefficients, the circuit of Fig. 11A may be provided for each k. Fig. 11B shows a configuration of the polynomial processing circuits 6a, 6f and 6g. It shows a circuit for determining a value A(α i ) derived by setting α i to a polynomial A(x) = 1+A 1 x+A 2 x 2 ; ... A t x t . A i is set in the memory element 114 and the multiplier 115 multiplies A 1 read from the memory element 111 by α. Same is true for other A j . The memory element 116 outputs 1. The output of the adder 117 after i shifts is A(α i ). When the polynomial processing circuit 6g determines τ(α i )-1 = -1 in place of τ(α i ) = 0, the memory element 116 is not necessary. Specific configurations of the erasure locator polynomial operation circuit 2, the operation circuit 2b and the polynomial operation circuits 4a and 5a may be those disclosed in USP 5,325,373. In accordance with the present embodiment, the operation is conducted by the operation circuit 2b of the same configuration as that of the erasure locator polynomial operation circuit 2 with the initial value of the erasure locator polynomial λ(x) being the syndrome polynomial S(x), the circuit scale can be reduced and the processing speed can be increased in the polynomial operation circuits 4a and 5a, the error evaluator polynomial ω(x), the error and erasure locator polynomial τ(x) = λ(x)·σ(x) and the differentiation τ'(x) of the error and erasure locator polynomial τ(x) are operated in the Euclidean algorithm. Thus, the number of operands can be reduced and the circuit scale of the polynomial operation circuits 4a and 5a can also be reduced and the processing speed is increased. The correction circuit 12 operates the error evaluator polynomial ω(x), the error and erasure locator polynomial τ(x) = λ(x)·σ(x) and the differentiation τ'(x) of the error and erasure locator polynomial τ(x) so that the processing of the three polynomial processing circuits 6a, 6f and 6g can be carried out, and the circuit scale is reduced and the processing speed is increased. Thus, the overall circuit scale is significantly reduced compared to that prior art apparatus and the decoding including the error correction as well as the erasure correction can be attained at a high speed on real time basis. [Second Embodiment] Referring to Figs. 5 and 6, a second embodiment of the present invention is explained. Fig. 5 shows a block diagram of a configuration of the second embodiment and Fig. 6 illustrates an operation of the second embodiment. In the present embodiment, as shown in Fig. 5, the processing of the operation circuit 2b, the erasure locator polynomial operation circuit 2 and the polynomial operation circuits 4a and 5a is carried out by one consolidated operation circuit 2A. As described above, the processing time of the erasure locator polynomial operation circuit 2 and the polynomial operation circuits 4a and 5a depends on the minimum distance d, and the code length n actually used is sufficiently larger than the minimum distance d. Thus, if the code length is n ≧ 4(d-1), the high speed real time decoding may be attained without pipelining the operation circuit 2b, the erasure locator polynomial operation circuit 2 and the polynomial operation circuits 4a and 5a by a separate circuit as it is in the first embodiment. In this case, as shown in Fig. 6, the operation of the product polynomial M, the operation of the erasure locator polynomial λ and the processing of the Euclidean algorithm of the polynomial (operation of ω, τ and τ') can be concurrently carried out. A specific configuration of the consolidated operation circuit 2A may use a circuit disclosed in Japanese Patent Application Laid-Open Nos. 63-233613 and 63-233614. In accordance with the present embodiment, the circuit scale can be further reduced and the processing of error correction and erasure correction equivalent to that of the first embodiment is attained. [Other Embodiment] In the first embodiment, the polynomial processing circuits are reduced to the three circuits 6a, 6f and 6g compared to the prior art configuration shown in Fig. 10 by (1) replacing the product polynomial operation circuit 3 by the operation circuit 2b, (2) replacing the polynomial operation circuit 5 for calculating σ(x) and σ'(x) by the polynomial operation circuit 5a for calculating τ(x) (= σ(x)·λ(x)) and τ'(x), and (3) determining the error and erasure location by τ(α i ) = 0 and the error value e i and the erasure value E i by ω(α i )/τ'(α i ) When the process (2) is not carried out, σ(x) may be determined in the conventional manner and it may be multiplied by λ(x) to produce τ(x) (= α(x)·λ(x)). In the decoder which carries out the erasure correction, it has been known to use the erasure location as the location of the check symbol (parity bit). Thus, the present invention may be used as the decoder as well as the encoder or the encoder/decoder. In the preferred embodiments, b = 0 in the generator polynomial although the present invention is not limited thereto but b may be any integer in the generator polynomial. In the preferred embodiments, the operation of the error evaluator polynomial and the error and erasure locator polynomial uses the Euclidean algorithm although the present invention is not limited thereto but a Berlenkamp-Massey method or a Peterson method may be used.

Claims: An apparatus for correcting erasure and error of a received word comprising: syndrome polynomial generation means (1) for generating a syndrome polynomial (S(x)) based on the received word; erasure locator polynomial generation means (2) for generating an erasure locator polynomial (λ(x)) based on an erasure location; first product polynomial generation means (2b) for generating a first product polynomial (M(x)) which is a product of the syndrome polynomial and the erasure locator polynomial (λ(x)); error evaluator polynomial generation means (4a) for generating an error evaluator polynomial (ω(x)) based on the first product polynomial; second product polynomial generation means (5a) for generating a second product polynomial (τ(x)) which is a product of the erasure locator polynomial and an error locator polynomial (σ(x)) and a differentiation (τ'(x)) of the second product polynomial; first numeric operation means (6f) for producing a value (τ'(α i )) of differentiation of the second product polynomial by substituting a specific element for a variable; second numeric operation means (6a) for producing a value (ω(α i )) of the error evaluator polynomial by substituting a specific element for a variable; third operation means (6g) for producing a value (τ(α i )) of the second product polynomial by substituting a specific element for a variable; determination means (7,17) for determining whether the operation result of said third numeric operation means is a predetermined value; and correction means (7,18) for substituting a specific element corresponding to the location of symbols of the received word for a variable of said first to third numeric operation means, and when the predetermined value is detected by said determination means, correcting the corresponding symbol by using the operation result of said first and second operation means, characterised by fourth numeric operation means (7,15,16) for dividing the operation result of said first numeric operation means by the operation result of said second numeric operation means; and by said correction means being operable to correct the symbol by adding the operation result of said fourth operation means. An apparatus according to claim 1 operable such that the elements corresponding to the locations of the symbols of the received word are sequentially substituted for the variable of said first to third numeric operation means, and the symbols of the received word are sequentially inputted to said correction means, said correction means being operable to correct the symbols or sequentially output the symbols as they are. An apparatus according to any preceding claim further comprising memory means (M) for storing the received word in parallel to said syndrome polynomial generation means, said received word being read out by said correction means. An apparatus according to any preceding claim, wherein said first product polynomial generation means is operable to generate the product of the syndrome polynomial and the erasure locator polynomial by performing the same operation as said erasure locator polynomial generation means based on the erasure location with setting the syndrome polynomial generated by said syndrom polynomial generation means as an initial value. An apparatus according to any preceding claim, wherein said second product polynomial generation means is operable upon the error locator polynomial having the erasure locator polynomial generated by said erasure locator polynomial generation means as an initial value, as the second product polynomial by using a Euclidean algorithm. An apparatus according to any preceding claim, wherein at least two of said erasure locator polynomial generation means, said first product polynomial generation means, said error evaluator polynomial generation means and said first product polynomial generation means use a common operation circuit. An apparatus according to any preceding claim wherein said predetermined value is zero. A method of correcting erasure and error of a received word comprising: a syndrome polynomial generation step of generating a syndrome polynomial (S(x)) based on the received word; an erasure locator polynomial generation step of generating an erasure locator polynomial (λ(x)) based on an erasure location; a first product polynomial generation step of generating a first product polynomial (M(x)) which is a product of the syndrome polynomial and the erasure locator polynomial (λ(x)); an error evaluator polynomial generation step of generating an error evaluator polynomial (ω(x)) based on the first product polynomial; a second product polynomial generation step (5a) of generating a second product polynomial (τ(x)) which is a product of the erasure locator polynomial and an error locator polynomial (σ(x)) and a differentiation (τ'(x)) of the second product polynomial; a first numeric operation step of producing a value (τ'(α i )) of differentiation of the second product polynomial by substituting a specific element (α i ) for a variable (x); a second numeric operation step of producing a value (ω(α i )) of the error evaluator polynomial by substituting a specific element for a variable; a third operation step of producing a value (τ(α i )) of the second product polynomial by substituting a specific element for a variable; a determination step of determining whether the operation result of said third numeric operation step is a predetermined value; and a correction step of substituting a specific element corresponding to the location of symbols of the received word for a variable of said first to third numeric operation step, and when the predetermined value is detected by said determination step, correcting the corresponding symbol by using the operation result of said first and second operation step, characterised by a fourth numeric operation step of dividing the operation result of said first numeric operation step by the operation result of said second numeric operation step; and by said correction step correcting the symbol by adding the operation result of said fourth operation step. A method as claimed in claim 8 wherein the elements corresponding to the locations of the symbols of the received word are sequentially substituted for the variable of said first to third numeric operation steps, and the symbols of the received word are sequentially inputted to said correction step, said correction step correcting the symbols or sequentially outputting the symbols as they are. A method as claimed in any of claims 8 and 9 of storing the received word in parallel to said syndrome polynomial generation step, said received word being read out by said correction means. A method as claimed in any of claims 8 to 10, wherein said first product polynomial generation step generates the product of the syndrome polynomial and the erasure locator polynomial by performing the same operation as said erasure locator polynomial generation step based on the erasure location with setting the syndrome polynomial generated by said syndrom polynomial generation means as an initial value. A method as claimed in any of claims 8 to 11, wherein said second product polynomial generation step operates upon the error locator polynomial having the erasure locator polynomial generated by said erasure locator polynomial generation means as an initial value, as the second product polynomial by using a Euclidean algorithm. A method as claimed in any of claims 8 to 12, wherein at least two of said erasure locator polynomial generation steps, said first product polynomial generation steps, said error evaluator polynomial generation steps and said first product polynomial generation steps use a common operation circuit. A method as claimed in any of claims 8 to 13 wherein said predetermined value is zero.

Inventors: IWAMURA KEIICHI, IWAMURA, KEIICHI, IWAMURA, KEIICHI, C/O CANON KABUSHIKI KAISHA
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1994
Main classification: H03M13
IPC codes: G11B20, H03M13, H04L1