1. Field of the Invention
The invention relates in general to a data processing method, and more particularly to a data processing method applied to a syndrome operation of a Reed-Solomon code.
2. Description of the Related Art
In the current age, in which the technology development changes with each passing day, an error correction code has been widely used in various occasions, such as a satellite communication system, a wireless communication system, a digital video broadcasting system, a cable modem, a computer memory, an optical disc drive and a wireless local area network. A Reed-Solomon code is mostly frequently seen among these occasions because it has the very excellent efficiency behavior in the aspect of error correction. However, the operation amount required by the decoding of the Reed-Solomon code is very huge, so the operation is usually processed by hardware. If the operation is to be performed in a processor by way of program decoding, the operation amount is inevitably too huge so that the decoding speed is too slow. Thus, in the application of a communication apparatus having some software defined operations, such as a software defined radio (SDR), increasing the program decoding speed of the Reed-Solomon code is always one of the directions to be sought in the industry.
The decoding of the Reed-Solomon code main includes the steps of calculating a syndrome, finding an error location and finding an error value. When the above-mentioned steps are performed in the processor by way of the program decoding, about 60% of operation time are spent in the step of calculating the syndrome. Thus, if the processing time in the step of calculating the syndrome can be effectively shortened, the decoding speed of the Reed-Solomon code can be effectively increased.
FIG. 1 (Prior Art) is a flow chart showing a conventional operation method of calculating a syndrome by way of program decoding. First, as shown in step 102, indexes i and j of inner and outer loops are initialized to be equal to 0 and 1, respectively. Next, as shown in step 104, a constant αi is acquired from a memory, and a parameter β is caused to be equal to the constant αi, wherein α pertains to a finite field element. Then, as shown in step 106, a symbol r0 is received, and a syndrome function Si is initialized to be the symbol r0. Next, as shown in step 108, a Galois field multiplication is to be obtained to multiply the syndrome function Si and the parameter β together. In step 108, log parameters GF_LOG [Si] and GF_LOG [β] are correspondingly found according to the syndrome function Si and the parameter β by looking a log look-up table GF_LOG. Then, a Galois field addition is performed to obtain a log sum LOGSUM, which satisfies:LOGSUM=(GF_LOG [Si]+GF_LOG [β])MOD [P−1].Thereafter, an anti-log look-up table GF_EXP is looked up to correspondingly find an operation result GF_EXP[LOGSUM], which is equal to a Galois field multiplication result of the syndrome function Si and the parameter β, which is to be obtained. Then, as shown in step 110, the Galois field addition is performed according to the operation result GF_EXP[LOGSUM] and the symbol r0, and the operation result is saved as the syndrome function Si. Next, it is judged whether the syndrome operation is finished or not, and the syndrome operation is ended if yes, or otherwise the above-mentioned steps are repeated, as sequentially shown in steps 112 to 118.
According to the above-mentioned operation steps, it is obtained that the log operation is performed on the parameter β and the syndrome function Si in the conventional operation of calculating the syndrome by way of the program decoding. Then, the log parameters found through the log operation above are added together to find log operation data, and an anti-log operation is performed on the log operation data. However, the range of the values of the symbols r0 and rj may cover 0, and performing the log operation on the value 0 will find an unreasonable operation result. Thus, the conventional operation of calculating the syndrome by way of the program decoding has to judge whether the values of the symbols r0 and rj are equal to 0. Thereafter, branched operations are performed so that different operations may be performed on the received data having the zero and non-zero values. The branched operation paths disable the conventional processor, which calculates the syndrome by way of the program decoding, from increasing its operation speed through its pipe line structure or vectorization instruction set. Thus, the conventional operation method of calculating the syndrome by way of the program decoding and the operation of decoding the Reed-Solomon code have to occupy a lot of processor operation resources, and the operation speeds thereof are slower.