The present application claims the priority benefit of Japanese patent application number 2008-175102 filed Jul. 3, 2008, the disclosure of which is incorporated herein by reference.
1 . Field of the Invention
The present invention generally relates to encoding and decoding techniques. More specifically, the present invention relates to a method and apparatus for encoding and decoding using a block code.
2. Description of the Related Art
Product code obtained by two-dimensionally arranging block codes is used as in an error correction technique for correcting data errors. Block encoding is performed in the horizontal direction on each row of information codes in the two-dimensionally arranged product code to generate check symbols in the horizontal direction. Block encoding is also performed in the vertical direction on each column of the information codes and check symbols arranged in the horizontal direction to generate check symbols in the vertical direction. Since the check symbols in the horizontal direction and the vertical direction are generated in the product code, it is possible to improve error correction performance. Reed-Solomon code (“RS” code) or Bose-Chaudhuri-Hocquenghem code (“BCH” code) is used as an example of the block code in, for example, Japanese patent publication number 2004-282600.
When a product code of the RS codes is used to for error correction as described above, a parity P is generated as the check symbol in the horizontal direction and a parity Q is generated as the check symbol in the vertical direction. A parity R, which is a check symbol in the horizontal direction for the parity Q and a check symbol in the vertical direction for the parity P, is also generated. In general, an 8-bit field is used as the Galois field of code. In addition, since the length of a correction code is defined by the Galois field, a maximum code length is 255×8 bits. In this case, the size of data that can be simultaneously processed is 255×255×8 bits. It is difficult to simultaneously process data having a size that is larger than this value. As the size of the Galois field is increased, however, the size of data that can be simultaneously processed is also increased. But in this case, the amount of computation or a circuit size required for code correction is exponentially increased. Therefore, when data has a large size, the data is divided into a plurality of code sequences.
As a pointer erasure method, it is known to use a CRCC error check function instead of the parities P and R. The method uses a CRC code in the horizontal direction instead of the RS code to generate a CRCC. In this pointer erasure method, even when an error of several bits occurs in one row in the horizontal direction, all the bits included in the row are considered as errors and the errors are corrected. This results in a reduction in the efficiency of error correction. For example, when data having a size of 64 kbytes (64×1024 bytes) is treated and a size is 255×257, it is difficult to form a product code with an 8-bit Galois field. In addition, when a plurality of code sequences is used and errors are non-uniformly distributed in the plurality of code sequences, correction performance deteriorates.
It is necessary to improve the efficiency of RS encoding performed on data having a large size of 64 kbytes or more for more efficient transmission. In addition, an RS encoding method which is more efficient and has a higher correction performance than a pointer erasure method is needed.
In a first embodiment, an encoding apparatus includes an input unit operative for input of an information sequence; a first encoding unit operative to generate a first code sequence by performing at least a portion of a block encoding process on the input information sequence input; a second encoding unit operative to generate a second code sequence by performing the block encoding process on a first check symbol sequence in the first code sequence; and a generating unit operative to generate a third code sequence by combining a second check symbol sequence in the second code sequence generated with the information sequence.
According to the above-mentioned embodiment, since the third code sequence is generated without the first check symbol sequence, it is possible to improve transmission efficiency during a block encoding process.
According to another embodiment, an encoding apparatus includes an input unit for the input of an information sequence; a dividing unit for dividing the information sequence input by the input unit into a plurality of groups; a first encoding unit to generate a first code sequence for each group by performing at least a portion of a block encoding process on a portion of the information sequence corresponding to each of the plurality of groups divided by the dividing unit; a second encoding unit to generate a second code sequence for each group by performing the block encoding process on a first check symbol sequence in the first code sequence generated by the first encoding unit; a generating unit operative to generate a third code sequence for each group by combining a second check symbol sequence in the second code sequence generated by the second encoding unit with the portion of the information sequence in each of the plurality of groups divided by the dividing unit so as to be associated with each other; a combining unit to combine the third code sequences generated by the generating unit in the plurality of groups; and a third encoding unit to generate a fourth code sequence by performing the block encoding process on the third code sequence combined by the combining unit.
According to the above-mentioned embodiment, an information sequence is divided into a plurality of groups, and the third code sequence without the first check symbol sequence is generated for each group. It is therefore possible to improve transmission efficiency during a block encoding process.
When the information sequence is arranged in a two-dimensional array including a row having a length that is larger than a maximum code length in the block encoding process and a column having a length that is smaller than the maximum code length, the dividing unit may divide the information sequence such that a portion of the information sequence corresponding to one row forms one group. The generating unit may extend the length of each row of the two-dimensional array to perform combination such that the third code sequence is included in one row. The third encoding unit may perform the block encoding process on each column of the third code sequence combined by the combining unit. The dividing unit divides the information sequence such that a portion of the information sequence corresponds to one row of the two-dimensional array that includes a row having a length that is larger than the maximum code length and a column having a length that is smaller than the maximum code length forms one group. It is therefore possible to perform a block encoding process on an information sequence having a size that is larger than the maximum code length.
The second encoding unit makes combinations of the first check symbol sequences in the plurality of groups when the block encoding process is performed different from one another and according to the orders of the first check symbol sequences. Combinations of the first check symbol sequences when the second code sequence is generated are different from each other. It is therefore possible to improve an error detection performance.
According to another embodiment, a decoding apparatus includes: an input unit operative to receive the combined sequence of the second check symbol sequence in the second code sequence and the information sequence from the encoding apparatus and input the received sequence when an encoding apparatus performs at least a portion of a block encoding process on an information sequence to generate a first code sequence, performs the block encoding sequence on a first check symbol sequence in the first code sequence to generate a second code sequence, and combines a second check symbol sequence in the second code sequence with the information sequence; an estimating unit to estimate the first code sequence by performing the same block encoding process as that performed by the encoding apparatus to generate the first code sequence on a portion corresponding to the information sequence in the received sequence input at the input unit; a first processing unit to detect an error in the first check symbol sequence, on the basis of the first check symbol sequence in the first code sequence estimated by the estimating unit and a portion corresponding to the second check symbol sequence in the received sequence input by the input unit; and a second processing unit operative to detect an error in the portion corresponding to the information sequence, on the basis of the first check symbol sequence whose error is detected by the first processing unit and the portion corresponding to the information sequence in the received sequence input by the input unit.
Even when a received sequence without the first check symbol sequence is input, the first check symbol sequence is estimated from the received sequence and error detection is performed on the basis of the first check symbol sequence and the second check symbol sequence. It is thus possible to prevent deterioration of detection accuracy.
According to yet another embodiment, a decoding apparatus includes: an input unit to receive the code sequence including the third check symbol sequence from the encoding apparatus and input the received sequence when an encoding apparatus divides an information sequence into a plurality of groups, performs at least a portion of a block encoding process on a portion of the information sequence corresponding to each of the plurality of groups to generate a first code sequence for each group, performs the block encoding process on a first check symbol sequence in the first code sequence to generate a second code sequence for each group, combines a second check symbol sequence in the second code sequence with the portion of the information sequence so as to be associated with each other thereby generating a third code sequence for each group, combines the third code sequences in the plurality of groups, and performs the block encoding process on the combined third code sequence to generate a code sequence including a third check symbol sequence; an estimating unit to estimate the first code sequence for each group by performing the same block encoding process as that performed by the encoding apparatus to generate the first code sequence on a portion corresponding to the information sequence in the received sequence input by the input unit; a first processing unit to detect an error in the first check symbol sequence for each group on the basis of the first check symbol sequence in the first code sequence estimated by the estimating unit and a portion corresponding to the second check symbol sequence in the received sequence input by the input unit; a second processing unit to detect an error in the portion corresponding to the information sequence for each group on the basis of the first check symbol sequence whose error is detected by the first processing unit and the portion corresponding to the information sequence in the received sequence input by the input unit; and a third processing unit operative to correct the error in the portion corresponding to the information sequence on the basis of the portion corresponding to the information sequence whose error is detected by the second processing unit and portions corresponding to the second check symbol sequence and the third check symbol sequence in the received sequence input by the input unit.
Even when an information sequence is divided into a plurality of groups, a sequence is generated for each group so as not to include the first check symbol sequence. The generated sequence is received and input, the first check symbol sequence is estimated from the received sequence, and error detection is performed on the basis of the first check symbol sequence and the second check symbol sequence. It is therefore possible to prevent deterioration of detection accuracy.
When an error is detected from the first check symbol sequence, the first processing unit may correct the error and output the first check symbol sequence whose error is corrected to the second processing unit. When an error is detected from the portion corresponding to the information sequence, the second processing unit may correct the error. Since the error is detected and corrected, it is possible to improve reproduction characteristics.
The encoding apparatus may make combinations of the first check symbol sequences in the plurality of groups when the block encoding process for generating the second code sequence is performed different from each other according to the orders of the first check symbol sequences. The first processing unit may detect and correct the error using error detection information in the first check symbol sequences having different orders as erasure error information. It is thus possible to improve an error detection performance.
The third processing unit may perform erasure error correction as error correction while using the error detection information of each of the first code sequences as the erasure error information. Since the error detection information of each of the first code sequences is used as the erasure error information, it is possible to effectively perform error separation.
According to another embodiment, an encoding method includes: generating a first code sequence by performing at least a portion of a block encoding process on an input information sequence; generating a second code sequence by performing the block encoding process on a first check symbol sequence in the generated first code sequence; and generating a third code sequence by combining a second check symbol sequence in the generated second code sequence with the input information sequence.
According to another embodiment, an encoding method includes: dividing an input information sequence into a plurality of groups; generating a first code sequence for each group by performing at least a portion of a block encoding process on a portion of the information sequence corresponding to each of the plurality of divided groups; generating a second code sequence for each group by performing the block encoding process on a first check symbol sequence in the generated first code sequence; generating a third code sequence for each group by combining a second check symbol sequence in the generated second code sequence with the portion of the information sequence in each of the plurality of divided groups so as to be associated with each other; combining the generated third code sequences of the plurality of groups; and generating a fourth code sequence by performing the block encoding process on the combined third code sequence.
In generating the second code sequence for each group, combinations of the first check symbol sequences in the plurality of groups when the block encoding process is performed may be different from each other according to the order of the first check symbol sequence.
According to another embodiment, a decoding method includes: receiving the combined sequence of the second check symbol sequence in the second code sequence and the information sequence from the encoding apparatus and inputting the received sequence when an encoding apparatus performs at least a portion of a block encoding process on an information sequence to generate a first code sequence, performs the block encoding sequence on a first check symbol sequence in the first code sequence to generate a second code sequence, and combines a second check symbol sequence in the second code sequence with the information sequence; estimating the first code sequence by performing the same block encoding process as that performed by the encoding apparatus to generate the first code sequence on a portion corresponding to the information sequence in the received sequence; detecting an error in the first check symbol sequence on the basis of the first check symbol sequence in the estimated first code sequence and the second check symbol sequence in the received sequence; and detecting an error in the portion corresponding to the information sequence in the received sequence on the basis of the first check symbol sequence whose error is detected and the portion corresponding to the information sequence in the received sequence.
According to yet still another embodiment, a decoding method includes: receiving the code sequence including the third check symbol sequence from the encoding apparatus and inputting the received sequence when an encoding apparatus divides an information sequence into a plurality of groups, performs at least a portion of a block encoding process on a portion of the information sequence corresponding to each of the plurality of groups to generate a first code sequence for each group, performs the block encoding process on a first check symbol sequence in the first code sequence to generate a second code sequence for each group, combines a second check symbol sequence in the second code sequence with the portion of the information sequence so as to be associated with each other, thereby generating a third code sequence for each group, combines the third code sequences of the plurality of groups, and performs the block encoding process on the combined third code sequence to generate a code sequence including a third check symbol sequence; estimating the first code sequence for each group by performing the same block encoding process as that performed by the encoding apparatus to generate the first code sequence on a portion corresponding to the information sequence in the received sequence; detecting an error in the first check symbol sequence for each group, on the basis of the first check symbol sequence in the estimated first code sequence and a portion corresponding to the second check symbol sequence in the received sequence; detecting an error in the portion corresponding to the information sequence on the basis of the first check symbol sequence whose error is detected and the portion corresponding to the information sequence in the received sequence; and correcting the error in the portion corresponding to the information sequence, on the basis of the portion corresponding to the information sequence whose error is detected and portions corresponding to the second check symbol sequence and the third check symbol sequence in the received sequence.
In correcting the error in the portion corresponding to the information sequence, erasure error correction may be performed as the error correction while using error detection information of each of the first code sequences as erasure error information.
A first embodiment relates to a recording apparatus that performs RS encoding on data of 64 kbytes or more to record the data on a recording medium and a reproducing apparatus that performs RS decoding on data recorded on a recording medium to reproduce the data.
When 28 Galois fields are defined as an RS code, the maximum code length of the RS code is 28−1. The recording apparatus arranges data in a two-dimensional array (a “first array”). The first array has one side with a length that is equal to or smaller than the maximum code length. The other side has a length that is larger than the maximum code length. For example, one side corresponds to a column component and the other side corresponds to a row component.
The recording apparatus extracts one row component from the first array and arranges the row components in a two-dimensional array (a “second array”). The second array has two sides with a length that is equal to or smaller than the maximum code length. The recording apparatus further generates a product code for the second array. The generated product code includes the above-mentioned P, Q, and R parities.
The recording apparatus removes the parities P and Q, and leaves only the parity R. The recording apparatus adds the parity R to the rear of the row component and returns to the first array. The length of the row component in the first array is thus increased by a value corresponding to the parity R (which may also be referred to as a “first array”). The above-mentioned processes are performed on each column component. The recording apparatus performs RS encoding on each row component in the first array. As a result, parities S and T are generated.
The reproducing apparatus performs reverse processes of the recording apparatus. The reproducing apparatus performs RS encoding on data arranged in the second array to estimate at least one of the parities P and Q. In this embodiment, the reproducing apparatus estimates the parity Q. The reproducing apparatus performs syndrome calculation on the parities Q and R to detect the error of the parity Q. In addition, the reproducing apparatus performs syndrome calculation on data and the parity Q whose errors are detected to detect the error of the data. Further, the reproducing apparatus returns the data whose error is detected to the first array and uses the parities S and T to perform syndrome calculation thereby correcting the error of the data.
Referring again to
Referring again to
The primitive polynomial of the Galois field is represented by Expression 1 given below:
α8α4α3α2+1=0 [Expression 1]
In addition, the generating polynomial of the first code sequence is represented by Expression 2 given below:
When the parities Q generated in first, i-th, and 32nd columns in
q
0(x)=q03x3+q02x2+q01x+q00
q
i(x)=qi3x3+qi2x2+qi1x+qi0
q
31(x)=q313x3+q312x2+q311x+q310 [Expression 3]
The same parity P may be generated. As described above, however, in this embodiment since the generation of the parity P is omitted, a description thereof will not be repeated.
The first code sequence output from the first encoding unit 32 is input to the second encoding unit 34. The second encoding unit 34 performs RS encoding on the parity Q in the first code sequence to generate a second code sequence for each second array. Specifically, the second encoding unit 34 uses the above-mentioned generating polynomial for rows having the parity Q—a set of parities having the same dimension; for example, q03(x), q13(x), . . . q13(x), . . . q3i3(x) to generate the parities R of the rows. In addition, the second encoding unit 34 performs the same process as described above on rows having parities other than the parity Q to generate the parities R. In the parities R, a component r3(x) corresponding to one row is represented by Expression 4 given below:
r
3(x)=r33x3+r32x2+r31x+r30 [Expression 4]
In addition, components r2(x), r1(x), and r0(x) corresponding to the other rows are similarly represented.
Referring again to
The combining unit 28 combines the plurality of third code sequences generated by the generating unit 36. As a result, a two-dimensional array (as described above, this may also be referred to as a “first array”) having row components with a length that is larger than that of the first array is generated.
Referring again to
The third encoding unit 30 performs RS encoding on each column of data in the first array and each row of the parities R in the first array to generate a fourth code sequence including the parities S and T.
Referring again to
Referring again to
This structure may be implemented by an LSI, memory, or a CPU of a computer in a hardware manner. This structure may also be implemented by a program loaded to the memory in a software manner. Functional blocks are implemented by a combination of the hardware and software manners. Therefore, it will be understood by those skilled in the art that the functional blocks may be implemented by only hardware, only software, or a combination thereof.
The recording unit 220 corresponds to the recording unit 20 shown in
The input unit 222 receives the first array from the deformat unit 214. The first array is also called a received sequence. The input unit 222 divides the first array into rows and outputs components included in each row to the estimating unit 230. The estimating unit 230 receives the components included in each row from the input unit 222. The estimating unit 230 and the first and second processing units 232 and 234 process the components included in each row. For clarity of description, however, processes performed on the components included in one row will be described below. Components included in the other rows are similarly processed.
The estimating unit 230 performs the same RS encoding process as that for generating the first code sequence in the first encoding unit 32 of the recording apparatus 100 (not shown) on components corresponding to data among the components included in one row, thereby estimating the first code sequence. As described above, since the recording apparatus 100 (not shown) deletes the generated parity Q, the parity Q is not included in the received sequence. Therefore, the estimating unit 230 generates the parity Q from a portion corresponding to data.
The first processing unit 232 performs syndrome calculation on the parity Q in the first code sequence estimated by the estimating unit 230 and components corresponding to the parity R among the components included in one row output from the input unit 222. As a result, the error of the parity Q is detected. In this case, the second array shown in
In addition, during the syndrome calculation, the generating polynomial of the first code sequence in the first encoding unit 32 is used. If all the syndromes are “0”, there is no error in the corresponding row. If all the syndromes are not “0”, however, the first processing unit 232 detects the error of the row and corrects the error. In this case, an error of 2 bytes or less can be corrected. When the error correction is unavailable, that is, when there is an error of 3 bytes or more, the first processing unit 232 regards the entire row as an error and places an erasure pointer in the row. The first processing unit 232 outputs any one of the parity Q to be checked that it has no error, the parity Q whose error is corrected, and the parity Q having an erasure pointer placed therein to the second processing unit 234.
The second processing unit 234 receives the parity Q from the first processing unit 232. The second processing unit 234 performs syndrome calculation on the parity Q output from the first processing unit 232 and components corresponding to data among the components included in one row output from the input unit 222. As a result, the errors of the components corresponding to data are detected. In this case, the syndrome calculation is performed on 1st to 32nd columns of the second array. In addition, during the syndrome calculation, the generating polynomial of the first code sequence in the first encoding unit 32 is used. If a syndrome is “0”, there is no error in the corresponding column.
If the syndrome is not “0”, however, the second processing unit 234 detects the error of the column, and corrects the error. In this case, an error of 2 bytes or less can be corrected. When the error correction is unavailable, that is, when there is an error of 3 bytes or more, the second processing unit 234 regards the entire column as an error and places an erasure pointer in the column. This process narrows down a position including an error. In this embodiment, erasure pointers can be placed in arbitrary two columns having errors. The second processing unit 234 outputs any one of a portion corresponding to data to be checked that it has no error, a portion corresponding to data whose error is corrected, and a portion corresponding to data having an erasure pointer placed therein to the third processing unit 226.
The third processing unit 226 receives a portion corresponding to data from the second processing unit 234, and generates the first array shown in
A pointer erasure method of correcting errors while using error detection information for each first code sequence as an erasure pointer is performed. The performance of the above-mentioned operation greatly depends on the reproduction error of a second check symbol sequence. Therefore, it is possible to improve a correction performance by detecting and correcting the error of the second check symbol sequence with the fourth code sequence and performing the above-mentioned operation from the beginning. Referring to again
The operation of the recording apparatus 100 having the above-mentioned structure is now described.
If the group number is smaller than 128 (S22: N), the process returns to step 14. If the group number is larger than 128 (S22: Y), the combining unit 28 combines data and the parity R in each group. The third encoding unit 30 calculates the parities S and T (S24).
The operation of the reproducing apparatus 200 having the above-mentioned structure will be described.
If the group number is smaller than 128 (S52: N), the process returns to step 44. If the group number is larger than 128 (S52: Y), the third processing unit 226 uses the parities S and T to perform error correction (S54).
Data is divided into a plurality of groups and a third code sequence without the parity Q is generated for each group. It is thus possible to improve transmission efficiency. Also, after RS encoding is performed on the second array, RS encoding is performed in the direction of the first array having a length that is equal to or smaller than the maximum code length. Therefore, it is possible to perform RS encoding even when data has a large size. The first array is also divided such that data corresponding to one row forms one group. Therefore, even when data has a size that is larger than the maximum code length, RS encoding can be performed on the data. Further, even when a received sequence that is generated for each group so as not to include the parity Q is input after data is divided into a plurality of groups, the parity Q is estimated from the received sequence, and error detection is performed on the basis of the parities Q and R. Therefore, it is possible to decode a code sequence generated by block encoding with improved transmission efficiency and prevent the deterioration of detection accuracy. Since both error detection and error correction are performed, it is also possible to improve reproduction characteristics.
Since the parity Q is not transmitted and recorded, it is possible to reduce redundancy and improve transmission efficiency. Also, it is possible to narrow down an error range, as compared to a structure in which a CRCC is added as an error detection code in the row direction. Therefore, it is possible to improve a correction performance of outer codes. Also, it is possible to treat data having a length that is larger than the maximum code length of an RS code defined by the Galois field, and performs the generation and correction of codes using a small circuit. Further, since an outer code is added, it is possible to improve a correction performance using a small circuit. Furthermore, since the error range is limited to 16 bytes, it is possible to reduce the overlap of an error row generating the parity S and improve a correction performance.
In the first embodiment, the parity R is used to detect the error of a 16-byte column parity. As described above, the parities R are arranged in 4 rows. Since 4 rows of the parities all detect the error of the same column, however, the parities are redundantly used to detect the error of a column. Therefore, in a second embodiment, 4 rows of parities detect errors of different columns in order to improve the efficiency of parity and an error correction performance. In the second embodiment, a recording apparatus generates parities Q, and combines the parities with different orders for each of four groups to generate parities R.
Referring to
Referring again to
The first processing unit 232 performs syndrome calculation on the parity Q in the first code sequence estimated by the estimating unit 230 and components corresponding to the parity R among the components included in one row output from the input unit 22. The first processing unit 232 corrects a maximum of two errors on the basis of 16 sets of reproduced parities R. When the parity R has two or more errors, or an unspecified number of errors, the first processing unit 232 uses error correction information of another parity to correct an erasure pointer. In this way, a maximum of four error columns are specified.
In
The above-mentioned process is now described in detail. First, the parity R30 is calculated, and then the parity R20 is calculated. The parities each have two errors, and it is possible to correct the errors. The error column of the parity R20 is added to the parity R10 and then calculation is performed. In this case, since there is one error, it is possible to correct the error. The error columns of the parities R20 and R10 are added to the parity R00, and then calculation is performed. In this case, since there is one error, it is difficult to specify an error column. Then, the syndrome of the parity R31 is calculated. In the parity R31, it has been checked that there are four errors, and the last one error is not specified. Then, the syndrome of the parity R21 is calculated. In this parity, it is also difficult to specify an error column. Then, the syndrome of the parity R11 is calculated. In this case, it is possible to correct two errors. The error column of the parity R11 is added to the parity R01, and then calculation is performed. The above-mentioned processes are repeatedly performed. Since there is no error in
Since there is no additional error in the parity R01, it is possible to verify whether the error of the parity R11 is correct. If the error of the parity R11 is correct, it is estimated that one error of the parity R11 is correct. The error column of the parity R11 is added to the parity R21 and then calculation is performed again. If newly detected error columns are the same as those of the parity R10, it is estimated that all the detected error columns are correct. Then, syndrome calculation is performed on the parity R00 again. As a result, the errors of all the error columns and the errors other than the error of the parity R31 are corrected. That is, the first processing unit 232 detects and corrects the errors using error detection information in the first check symbol sequences having different orders as an erasure pointer. The error columns of the parity R31 are specified, but are not corrected since there are five errors. In this case, the second processing unit 234 processes the parities Q included in the parity R31. If there is a data error in each column and it is verified that there is an error in the parity R31, it is estimated that all the correcting operations are correct.
If the group number is smaller than 128 (S84: N), the process returns to Step 74. If the group number is larger than 128 (S84: Y), the combining unit 28 combines data and the parity R between the groups. The third encoding unit 30 calculates the parities S and T (S86).
According to this embodiment, a combination of the parities Q for generating the parity R varies depending on the order of the parity Q. It is thus possible to improve an error detection performance. Also, since a combination of the parities Q for generating the parity R varies depending on the order of the parity Q and error points are subdivided, it is possible to reduce the overlap between errors. And since the overlap between the errors is reduced, it is possible to improve an outer code correction performance.
The present invention has been described above with reference to the exemplary embodiments. The above-described embodiments are illustrative and will be understood by those skilled in the art that various modifications of the above-mentioned components or processes can be made and the modifications are also included in the scope of the present invention. Combinations of the above-mentioned components are included in the scope of the present invention, and modifications of an apparatus, a method, a system, a recording medium, and a computer program may also be included in the scope of the invention.
For example, in the first and second embodiments of the present invention, the dividing unit 24 divides the first array into a plurality of second arrays, and the partial encoding unit 26 performs RS encoding on each of the second arrays. The present invention is not limited thereto; for example, when the size of data to be processed by the recording apparatus 100 is small, the partial encoding unit 26 may perform RS encoding on data arranged in the second array without providing the dividing unit 24.
In this case, the input unit 22 provides input of the data. The first encoding unit 32 arranges data in the second array, and performs at least a portion of the RS encoding process defined by a product code to generate a first code sequence. The second encoding unit 34 performs RS encoding on the parity Q in the first code sequence generated by the first encoding unit 32 to generate a second code sequence. The generating unit 36 combines data and the parity R in the second code sequence generated by the data second encoding unit 34 to generate a third code sequence.
The reproducing apparatus 200 performs an operation corresponding to the recording apparatus 100. The estimating unit 230 performs the same RS encoding process as that for generating the first code sequence on a portion corresponding to data included in the received sequence to estimate the first code sequence. Of the parity Q in the first code sequence estimated by the estimating unit 230 and a portion corresponding to the parity R in the received sequence, the first processing unit 232 detects the error of the parity Q.
Of the parity Q whose error is detected by the first processing unit 232 and a portion corresponding to data in the received sequence, the second processing unit 234 detects the error of the portion corresponding to data. According to this modification, since the third code sequence without the parity Q is generated, it is possible to improve transmission efficiency during RS encoding. Also, even when a received sequence without the parity Q is input, the parity Q is estimated from the received sequence, and error detection is performed on the basis of the parity Q and the parity R. Therefore, it is possible to prevent deterioration of detection accuracy.
With reference to a further modification, in the first and second embodiments of the present invention, the recording apparatus 100 and the reproducing apparatus 200 use RS encoding as block encoding; the present invention is not limited thereto. For example, the recording apparatus 100 and the reproducing apparatus 200 may use block encoding other than RS encoding. For example, the recording apparatus 100 and the reproducing apparatus 200 may use BCH encoding. According to this modification, the present invention can be applied to various block encoding processes.
Number | Date | Country | Kind |
---|---|---|---|
JP2008-175102 | Jul 2008 | JP | national |