The present invention relates to a method for encoding and decoding an error correction code (ECC) block, and more particularly to a method for encoding and decoding an optimum error correction code (ECC) block for an optical recording medium, e.g., the next generation high-density optical disc, that has a higher recoding density than a digital versatile disc (DVD).
Now, the following description will be given on the basis of an optical recording medium such as a high-density optical disc.
An error correction code (ECC) appropriate for a conventional digital versatile disc (DVD) uses a Reed-Solomon (RS) code. A data block in the DVD contains information in which an inner code constituted by RS (182, 172, 11) is interleaved with an outer code constituted by RS (192, 208, 17). Five errors can be corrected by the inner code, and eight errors can be corrected by the outer code.
As shown in
Furthermore, the code words included in the ECC block have a format in which the 16 PO rows are interleaved with each of 12 inner code words as shown in
However, where horizontally or vertically consecutive burst errors are incurred within the ECC block of the DVD format constituted as described above, error correction capability is significantly degraded and hence user data cannot be appropriately recovered. In particular, in case of the next generation optical disc having a higher recording density than the DVD, there is a problem in that an error correction operation cannot be performed due to burst errors.
Therefore, the present invention has been made in view of the above problems, and it is one object of the present invention to provide a method for encoding and decoding an error correction code (ECC) block of a high-density optical disc that can minimize an error correction failure due to burst errors although horizontally or vertically consecutive burst errors are incurred in the next generation high-density optical disc having a higher recording density than a digital versatile disc (DVD).
It is another object of the present invention to provide a method for encoding and decoding an error correction code (ECC) block of a high-density optical disc that can efficiently prevent an error correction failure due to a random error present within the ECC block in the next generation high-density optical disc having a higher recording density than a digital versatile disc (DVD).
It is yet another object of the present invention to provide a method for encoding and decoding an error correction code (ECC) block of a high-density optical disc that can simplify encoding and decoding operations in the next generation high-density optical disc having a higher recording density than a digital versatile disc (DVD).
In accordance with one aspect of the present invention, the above and other objects can be accomplished by the provision of a method for encoding an error correction code (ECC) block, comprising the steps of: (a) generating a user data block having a predetermined size; and (b) generating a parity outer code (PO) for a vertical data stream and generating a parity inner code (PI) for a horizontal data stream, in the user data block, wherein the user data block contains at least one column of eraser detection codes (ERDCs) so that erasers can be set or declared for the horizontal data stream at a predetermined interval.
In accordance with another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for decoding an error correction code (ECC) block, comprising the steps of: (a) detecting locations in which errors are incurred in a horizontal data stream using a parity inner code (PI) of the ECC block; (b) setting or declaring an eraser when the detected errors are consecutively incurred in eraser detection codes (ERDCs) in a corresponding data stream at a predetermined interval; and (c) performing an error correction operation for a vertical data stream using a parity outer code (PO) of the ECC block, referring to location information associated with the set or declared erasers, and selectively declaring that the error correction operation is impossible.
In accordance with another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for encoding an error correction code (ECC) block, comprising the steps of: (a) generating a user data block having a predetermined size; and (b) generating a parity outer code (PO) for a vertical data stream of the user data block, and generating at least one syndrome check parity (SCP) in the user data block so that erasers can be set or declared in a horizontal data stream at a predetermined interval.
In accordance with another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for decoding an error correction code (ECC) block, comprising the steps of: (a) detecting syndrome check values of a plurality of syndrome check parities (SCPs) contained in a horizontal data stream of the ECC block at a predetermined interval; (b) setting or declaring an eraser, where errors in which the detected check values are not zero are consecutively detected in the SCPs; and (c) performing an error correction operation for a vertical data stream using a parity outer code (PO) of the ECC block, referring to location information associated with the set or declared erasers, and selectively declaring that the error correction operation is impossible.
In accordance with another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for decoding an error correction code (ECC) block, comprising the steps of: (a) detecting syndrome check values of a plurality of syndrome check parities (SCPs) and values of sync bytes contained in a horizontal data stream of the ECC block at a predetermined interval; (b) setting or declaring an eraser, where errors in which the detected syndrome check values are not zero are consecutively detected in the SCPs, or where an error in which the detected sync byte value does not have a preset unique value and an error in which one of the detected syndrome check values is not zero are consecutively incurred; and (c) performing an error correction operation for a vertical data stream using a parity outer code (PO) of the ECC block, referring to location information associated with the set or declared erasers, and selectively declaring that the error correction operation is impossible.
In accordance with another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for encoding an error correction code (ECC) block, comprising the steps of: (a) generating a user data block having a predetermined size; and (b) generating a parity outer code (PO) for a vertical data stream of the user data block, and generating at least one indicator flag (IP) in the user data block so that erasers can be set or declared in a horizontal data stream at a predetermined interval.
In accordance with yet another aspect of the present invention, the above and other objects can be accomplished by the provision of a method for decoding an error correction code (ECC) block, comprising the steps of: (a) detecting values of a plurality of indicator flags (Ifs) contained in a horizontal data stream of the ECC block at a predetermined interval; (b) setting or declaring an eraser, where errors in which the detected IF values are not a preset fixed value are consecutively detected in the IFs; and (c) performing an error correction operation for a vertical data stream using a parity outer code (PO) of the ECC block, referring to location information associated with the set or declared erasers, and selectively declaring that the error correction operation is impossible.
The accompanying drawings, which are included to provide a further understanding of the invention, illustrate the preferred embodiments of the invention, and together with the description, serve to explain the principles of the present invention.
FIGS. 8 to 10 are explanatory views illustrating the format of an ECC block of the high-density optical disc to be encoded and decoded in accordance with the second embodiment of the present invention;
FIGS. 11 to 13 are explanatory views illustrating the format of an ECC block of the high-density optical disc to be encoded and decoded in accordance with the third embodiment of the present invention;
FIGS. 14 to 16 are explanatory views illustrating the format of an ECC block of the high-density optical disc to be encoded and decoded in accordance with the fourth embodiment of the present invention; and
FIGS. 17 to 19 are explanatory views illustrating the format of an ECC block of the high-density optical disc to be encoded and decoded in accordance with the fifth embodiment of the present invention.
Features, elements, and aspects of the invention that are referenced by the same numerals in different figures represent the same, equivalent, or similar features, elements, or aspects in accordance with one or more embodiments.
A method for encoding and decoding an error correction code (ECC) block of a high-density optical disc in accordance with referred embodiments of the present invention will be described in detail with reference to the annexed drawings.
As shown in
Furthermore, the maximum error correction capability of the ECC block corresponds to “N2×OP” bytes. An error correction operation based on the ECC block is carried out by means of an inner code constituted by RS (L+IP, L, IP+1) and an outer code constituted by RS (N1, K1, N1−K1+1) in the ECC block.
The encoder 100 generates the user data block of “K1×K2” bytes, generates a PO of “OP” (=N1−K1) bytes for vertical “K1” bytes according to RS (N1, K1, N1−K1+1), and generates a PI of “IP” (=N2−K2) bytes for ERDCs of “L”-bytes hatched at a horizontal “I”-byte interval based on RS (L+IP, L, IP+1) as shown in
The “I”-byte interval can be set to an arbitrary byte interval so that a code rate of the ECC block can be controlled. The final ECC block having the size of the “N1×N2” bytes is sequentially read on the basis of a horizontal data stream.
Upon reading the horizontal data stream from the ECC block constituted as described with reference to
That is, where the errors are consecutively detected from the ERDCs contained in the data stream on the same line by the decoding operation based on the inner code constituted by RS (L+IP, L, IP+1), an eraser can be set or declared in relation to a predetermined data stream for which the decoding operation based on a current inner code is carried out.
Moreover, the decoder 200 performs an eraser decoding operation based on an outer code using eraser location information units obtained through the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(the number of set or declared erasers)+(2×the number of random errors)” “(N1−K1)”. In other cases, the decoder 200 declares that the error correction operation is impossible.
Furthermore, the maximum error correction capability of the ECC block is “3,600” bytes. The error correction operation is carried out according to an inner code constituted by RS (12, 4, 9) and an outer code constituted by RS (212, 192, 21) in the ECC block.
The encoder 100 generates vertical 192 bytes and horizontal 172 bytes using a Galois field (GF) (28) to configure a data block. Then, the encoder 100 generates the 20-byte PO for the vertical 192 bytes according to RS (212, 192, 21), and generates the 8-byte PI for four 1-byte ERDCs hatched at a horizontal 43-byte interval based on RS (12, 4, 9) as shown in
On the other hand, the decoder 200 performs a decoding operation based on RS (12, 4, 9) when a horizontal data stream is sequentially received from the ECC block, and confirms location information units indicating where errors are incurred from the data stream.
Furthermore, where the confirmed errors are consecutively incurred in the ERDCs contained in the data stream on the same line as shown in
On the other hand, where the errors are consecutively incurred in the second ERDC column DC2 and the third ERDC column DC3 on the same line on the basis of a horizontal data stream as an example, the decoder 200 sets or declares the eraser. Where an error is incurred only in the fourth ERDC column DC4, no eraser is set or declared.
Furthermore, the decoder 200 performs an eraser decoding operation based on the outer code using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(the number of set or declared erasers)+(2× the number of random errors)” “20”. In other cases, the decoder 200 declares that the error correction operation is impossible.
Accordingly, the size of a block associated with the decoding operation based on an inner code is reduced, and hence a time period required for performing the decoding operation is reduced. Furthermore, the method of the present invention is immune to a burst error owing to the decoding operation and the eraser setting or declaration on a block-by-block basis. As the number of PO bytes increases, the maximum error correction capability can be further improved.
FIGS. 8 to 10 are explanatory views illustrating an error correction code (ECC) block of the high-density optical disc to be encoded and decoded in accordance with the second embodiment of the present invention.
As shown in
Furthermore, the maximum error correction capability of the ECC block corresponds to “N2×OP” bytes. An error correction operation is carried out for an inner code constituted by RS (In+1, In, 2) and an outer code constituted by RS (N1, K1, N1−K1+1) in the ECC block.
The encoder 100 constitutes a data block consisting of vertical “K1” bytes and horizontal “(K2×L)” bytes. As shown in
The number of “In” bytes is an important factor capable of determining the error correction capability in relation to a random error and a burst error. For example, when the number of “In” bytes is equal to the number of “K2” bytes, the error detection capability increases but the error correction capability decreases. The number of “K2” bytes can be variably adjusted so that the code rate can be adjusted.
The interval between information bytes I1−In and the number of information bytes I1−In within the data block containing the “K2” bytes can be variably adjusted so that the SCPs can be generated. The final ECC block having the size of “N1×N2” bytes is sequentially read on the basis of a horizontal data stream.
On the other hand, where the decoder 200 constituted by the SCP calculator 20, the PO calculator 21 and the data block generator 22 reads the horizontal data stream constituted as described with reference to
If errors are consecutively detected in SCPs contained in the data stream on the same line as a result of the determination, an eraser is set or declared in relation to the data stream for which the decoding operation is performed on the basis of a current syndrome check operation.
That is, where the errors detected by the syndrome check operation based on the inner code constituted by RS (In+1, In, 2) are consecutively incurred in the SCPs contained in the data stream on the same line, an eraser is set or declared between a current SCP and a previous or subsequent SCP.
Furthermore, the decoder 200 performs an eraser decoding operation based on the outer code using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is performed only where “(number of set or declared erasers)+(2×number of random errors)” “(N1−K1)”. In other cases, the decoder 200 declares that the error correction operation is impossible.
The encoder 100 generates vertical 214 bytes and horizontal 308 bytes using a Galois field (GF) (28) to configure a data block. Then, the encoder 100 generates a 32-byte PO for the vertical 214 bytes according to RS (246, 214, 33), and repeatedly generates an SCP of 1 byte for 2 information bytes (I) by means of the inner code constituted by RS (3, 2, 2) four times, such that the encoder 100 generates the ECC block having the size of “246×312” bytes.
On the other hand, when sequentially receiving a horizontal data stream of the ECC block, the decoder 200 determines whether a syndrome check value is zero using a total of 3 bytes containing the 2 information bytes and the 1-byte SCP in the data stream containing 78 (77+1) bytes, that is, whether an error is detected. At this point, the syndrome check operation for the horizontal data stream is repeated four times, and hence erasers are set or declared.
For example, where errors are consecutively detected in SCPs contained in the data stream on the same line after the syndrome check operation for the horizontal data stream is repeated four times as shown in
Furthermore, the decoder 200 performs the eraser decoding operation based on the outer code using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(the number of set or declared erasers)+(2× the number of random errors)” “32”. In other cases, the decoder 200 declares that the error correction operation is impossible.
Accordingly, a decoding operation is simple because erasers are set or declared using only the syndrome check operation, and a time period required for performing the decoding operation is reduced because the number of data units configuring the inner code is reduced. Furthermore, the method of the present invention is immune to a burst error owing to the decoding operation and the eraser setting or declaration on a block-by-block basis. As the number of PO bytes increases, the error correction capability can be improved.
FIGS. 11 to 13 are explanatory views illustrating an error correction code (ECC) block of the high-density optical disc to be encoded and decoded in accordance with the third embodiment of the present invention. The ECC block generated in accordance with the third embodiment of the present invention has a same size and a code rate described with reference to
The number of “K2” bytes can be variably adjusted so that the code rate can be adjusted. The final ECC block having a size of “N1×N2” bytes is sequentially read on the basis of a horizontal data stream. For example, an ECC block generated by the encoder 100 can have a size of “197×390” bytes as shown in
Furthermore, the encoder 100 generates vertical 171 bytes and horizontal 384 bytes to configure a data block. As shown in
On the other hand, when sequentially receiving a horizontal data stream of the ECC block, the decoder 200 determines whether a syndrome check value is zero using a total of 65 bytes containing the 64 information bytes and the 1-byte SCP, that is, whether an error is detected. At this point, the syndrome check operation for the horizontal data stream is repeated six times, and hence erasers are set or declared.
For example, where errors are consecutively incurred in SCPs contained in the data stream on the same line after the syndrome check operation for a horizontal data stream is repeated six times as shown in
Furthermore, the decoder 200 performs an eraser decoding operation based on the outer code using eraser location information units obtained through the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(the number of set or declared erasers)+(2× the number of random errors)” “26”. In other cases, the decoder 200 declares that the error correction operation is impossible.
FIGS. 14 to 16 are explanatory views illustrating an error correction code (ECC) block of the high-density optical disc to be encoded and decoded in accordance with the fourth embodiment of the present invention. The encoder 100 records SCPs necessary for setting or declaring an eraser within a user data block while generating an ECC block having a size of “N1×N2” bytes as described with reference to
As shown in
Furthermore, the encoder 100 generates vertical 216 bytes and horizontal 304 bytes to configure a data block. As shown in
On the other hand, when sequentially receiving a horizontal data stream of the ECC block, the decoder 200 determines whether a syndrome check value is zero using a total of 39 bytes containing information and SCP bytes, that is, whether an error is detected, by means of the inner code of RS (39, 38, 2). Furthermore, the decoder determines whether sync bytes are detected as the fixed values. At this point, the syndrome and sync byte check operations are performed, and hence erasers are set or declared.
For example, where errors are consecutively detected in SCPs contained in the data stream on the same line as shown in
Where the sync byte is not detected as a preset fixed value and an error is incurred in an SCP adjacent to the sync byte, an eraser for an information block between the sync byte and the SCP is set or declared.
Furthermore, the decoder 200 performs an eraser decoding operation based on the outer code using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(number of set or declared erasers)+(2×number of random errors)” “32”. In other cases, the decoder 200 declares that the error correction operation is impossible.
FIGS. 17 to 19 are explanatory views illustrating an error correction code (ECC) block of the high-density optical disc to be encoded and decoded in accordance with the fifth embodiment of the present invention.
As shown in
Furthermore, the maximum error correction capability of the ECC block corresponds to “N2×OP” bytes. The erasers are declared by means of the IF, and an outer code constituted by RS (N1, K1, N1−K1+1) in the ECC block.
The encoder 100 constitutes a data block consisting of vertical “K1” bytes and horizontal “(K2×L)” bytes. As shown in
The IF has not the error correction capability but only the error detection capability. The number of “K2” bytes can be variably adjusted so that the code rate can be adjusted. And, the final ECC block having the size of “N1×N2” bytes is sequentially read on the basis of a horizontal data stream.
On the other hand, where the decoder 200 constituted by the IF detector 20, the PO calculator 21 and the data block generator 22 sequentially receives the horizontal data stream constituted as described with reference to
If errors are consecutively detected in IFs contained in the data stream on the same line as a result of the determination, an eraser is set or declared in relation to the data stream for which the decoding operation is performed on the basis of a current IF detection operation.
Furthermore, the decoder 200 performs an eraser decoding operation based on the outer code using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is performed only where “(number of set or declared erasers)+(2×number of random errors)” “(N1−K1)”. In other cases, the decoder 200 declares that the error correction operation is impossible.
The encoder 100 generates vertical 214 bytes and horizontal 308 bytes to configure a data block. Then, the encoder 100 generates a 32-byte PO for the vertical 214 bytes according to RS (246, 214, 33), and repeatedly generates a 1-byte IF of “0” at a horizontal 77-byte interval 4 times, such that the encoder 100 generates the ECC block having the size of “246×312” bytes.
On the other hand, when sequentially receiving a horizontal data stream of the ECC block, the decoder 200 determines whether the If in a interval of 78 bytes containing the 77 information bytes and the 1-byte IF is detected as a preset fixed value, for example “0”, that is, whether an error is detected.
For example, where errors are consecutively detected in IFs contained in the data stream on the same line by means of the IF detection operation for the horizontal data stream as shown in
Furthermore, the decoder 200 performs the eraser decoding operation based on the outer code of RS (246, 214, 33) using eraser location information units acquired from the above-described operation. The eraser decoding operation based on the outer code is carried out only where “(the number of set or declared erasers)+(2×the number of random errors)” “32”. In other cases, the decoder 200 declares that the error correction operation is impossible.
Accordingly, a decoding operation is simple because erasers are set or declared only by checking the IF values, and the method of the present invention is immune to a burst error owing to the decoding operation and the eraser setting or declaration on a block-by-block basis. As the number of PO bytes increases, the error correction capability can be improved.
For reference, the IF can be assigned to another fixed value rather than “0”, and can be equal to or more than one byte.
As apparent from the above description, the present invention provides a method for encoding and decoding an error correction code (ECC) block that can minimize an error correction failure due to burst errors although horizontally or vertically consecutive burst errors are incurred in the next generation high-density optical disc having a higher recording density, that can efficiently prevent an error correction failure due to a random error, that can reduce a time period required for the encoding and decoding operations, and that can improve the maximum error correction capability.
Although the present invention has been described in connection with specific preferred embodiments, those skilled in the art will appreciate that various modifications, additions, and substitutions to the specific elements are possible, without departing from the scope and spirit of the present invention as disclosed in the accompanying claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2003-0004079 | Jan 2003 | KR | national |
10-2003-0004080 | Jan 2003 | KR | national |
10-2003-0004081 | Jan 2003 | KR | national |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/KR04/00076 | Jan 2004 | US |
Child | 11185851 | Jul 2005 | US |