WO2006090302A2 - Error correction of data streams - Google Patents
Error correction of data streams Download PDFInfo
- Publication number
- WO2006090302A2 WO2006090302A2 PCT/IB2006/050475 IB2006050475W WO2006090302A2 WO 2006090302 A2 WO2006090302 A2 WO 2006090302A2 IB 2006050475 W IB2006050475 W IB 2006050475W WO 2006090302 A2 WO2006090302 A2 WO 2006090302A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bis
- words
- sync
- errors
- ldc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1866—Error detection or correction; Testing, e.g. of drop-outs by interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2954—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using Picket codes or other codes providing error burst detection capabilities, e.g. burst indicator codes and long distance codes [LDC]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1264—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
- G11B2020/1265—Control data, system data or management information, i.e. data used to access or process user data
- G11B2020/1267—Address data
- G11B2020/1271—Address data the address data being stored in a subcode, e.g. in the Q channel of a CD
- G11B2020/1272—Burst indicator subcode [BIS]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1264—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
- G11B2020/1288—Formatting by padding empty spaces with dummy data, e.g. writing zeroes or random data when de-icing optical discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2537—Optical discs
- G11B2220/2541—Blu-ray discs; Blue laser DVR discs
Definitions
- the present invention relates to a device and a method for error correction of a data stream comprising user data encoded into long distance code (LDC) words, control data encoded into burst indicating subcode (BIS) words and SYNC data, said LDC words and said BIS words being alternately arranged in physical clusters starting with SYNC data. Further, the present invention relates to a computer program for implementing said method on a computer.
- LDC long distance code
- BIOS burst indicating subcode
- the error correction mechanism mainly consists of two error correction codes: the LDC (long distance code) and the BIS (burst interleaved code).
- the LDC code is applied to the user data and can correct random errors and burst errors.
- the BIS code is applied to the addresses and control information, which is interleaved with the user data. This BIS code can be used to indicate long burst errors to the LDC code, by means of which the LDC can efficiently correct erasures. The fact that a location of a codeword will be indicated as an erasure to the
- LDC depends on the status (found or not) of the SYNC patterns and correction status (corrected or not) of the BIS bytes, surrounding the corresponding data byte in the received data stream, which is, for instance, read from a record carrier, such as an optical disc.
- the current Blu-Ray Disc specification doesn't contain any information about good or bad erasure strategies. It just contains the description of the principle that BIS bytes and SYNC patterns can be used to generate the LDC erasures.
- a method for error correction is defined in claim 15.
- a computer program comprising program code means for causing a computer to perform the steps of the said method, when said computer program is executed on a computer is defined in claim 16.
- Preferred embodiments of the invention are defined in the dependent claims.
- This invention provides an advantageous strategy, that can be used to generate the LDC erasures out of the BIS corrections (BIS byte was correct or not) and SYNC pattern information (SYNC was found at the expected location or not).
- the invention is based on the idea to provide the ability to influence the general behavior, in particular the aggressiveness, of the erasure correction of the data stream by use of separate control settings. Instead of having to choose between a number of distinct strategies, the user thus has a limited number of parameters (i.e. control settings) that allow the user to control the general main behavior of the erasure strategy, like how aggressive the erasure correction should be in certain situations.
- the control settings are generally independent of each other, i.e. changing one control setting shouldn't affect the optimal settings for the other control settings. Hence, the result of the erasure correction is easily predictable.
- Aggressiveness here refers to the number of locations of LDC words that are marked as erasures given a certain pattern of BIS errors and SYNC errors. The more locations are marked as erasures, the more aggressive the erasure strategy is.
- Marking certain locations as erasures has to be done carefully: marking locations that contain errors as erasures increases the error correction capability, but marking locations that doesn't contain errors as erasures decreases the error correction capability. On discs with burst errors, erasures shall be put if the surrounding BIS bytes /
- SYNC patterns are erroneous because this indicates that the LDC bytes will also be erroneous. So for discs with mainly burst errors, the erasure strategy shall generally be more aggressive, i.e. erasures shall be marked at locations where errors are expected. On discs with random errors, any erasures shall not be put because the fact that the surrounding BIS bytes / SYNC pattern are erroneous doesn't give any information about the LDC bytes. So for discs with mainly random errors, the erasure strategy shall generally be more defensive, i.e. there shall not be marked many erasures.
- a user is thus able to adapt the erasure strategy, i.e. the user can use the information of the erroneous BIS bytes / SYNC patterns in different ways, e.g. depending on the particular disc if desired.
- a memory for storing said control settings set by the user or the manufacturer of said device.
- the control settings can be pre-set and stored in the device.
- a user interface can be provided for allowing the user of said device to set said control settings, e.g.
- control settings can be changed.
- the control settings comprise three different rules as defined in claims 5 to 12 which can be provided to control the behavior of the erasure correction.
- said rules include one or more conditions (or parameters) which allow the user or manufacturer to influence the behavior, in particular the aggressiveness, of the erasure correction.
- Each rule relates to a different kind of aggressiveness:
- different thresholds can be defined which are used according to rule 1 to determine if a small number, in particular less than five, preferably one or two, of subsequent holes, which are surrounded by many BIS / SYNC errors, shall be interpreted as BIS / SYNC errors.
- different thresholds can be defined which are used according to rule 2 to determine if a small number, in particular less than five, preferably one or two, of subsequent isolations, which are surrounded by many good BIS / SYNC data, shall be interpreted as good BIS / SYNC data.
- control unit comprises a preprocessing unit for applying said first and/or second rule and a processing unit for applying said third rule.
- the result of the first preprocessing unit is preferably taken as an input.
- the preprocessing unit may further be divided into a first subunit for applying in a first step said first rule or said second rule and a second subunit for applying in a second subsequent step the other of said first or second rule not applied by said first subunit taking into account the result obtained by said first subunit.
- the first and second rules are implemented in the preprocessing unit in such a way that it allows the straightforward combination with the third rule: the first and second rule are implemented by having a conditional replacement of BIS errors and/or SYNC errors by good BIS words or good SYNC data and vice versa.
- Fig. 1 illustrates the process of encoding a physical cluster of the BD-RW
- Fig. 2 illustrates the process of decoding a physical cluster of the BD-RW according to the invention
- Fig. 3 illustrates a schematic diagram of an optical disk reproducing apparatus in which the present invention may be advantageously embodied
- Fig. 4 illustrates a detailed block diagram for explaining the method of correcting errors in accordance with the invention
- Fig. 5 illustrates different scenarios of dealing with holes in burst errors according to the invention
- Fig. 6 illustrates different scenarios of dealing with isolations according to the invention
- Fig. 7 illustrates different scenarios of using different wing sizes according to the invention
- Fig. 8 illustrates a schematic diagram of a control unit according to the invention
- Fig. 9 illustrates a schematic diagram of a preprocessing unit of said control unit according to the invention
- Fig. 10 illustrates different scenarios of using a half- wing strategy according to the invention
- Fig. 11 illustrates different scenarios of using a full-wing strategy according to the invention
- Fig. 12 illustrates different scenarios of using a zero-wing strategy according to the invention.
- BD-RW Blu-ray Disc Rewritable
- BD-ROM Blu-ray Disk ROM
- user data such as A/V data and various contents is encoded through multiple data processing steps to be recorded on the BD-RW.
- User data of a predetermined size is converted into data frames, scrambled data frames, a data block, a long distance code (LDC) block, and a LDC cluster in turn.
- user control data corresponding to the user data is converted into an access block, a burst indicating subcode (BIS) block, and a burst indicating subcode (BIS) cluster in turn.
- a BIS cluster encoded in this manner is divided into three parts of the same size and each part is inserted between two data blocks of an LDC cluster, each data block being of a predefined size.
- SYNC data is added to one LDC cluster and one BIS cluster recorded in this manner, which constitutes one physical cluster.
- one physical cluster comprises 155 columns (SYNC data exclusive) and 496 rows.
- SYNC data has a size of 20 bits
- each of the first- column through fourth-column LDC data blocks has a size of 38 bytes
- each of the first- column through third-column BIS data blocks has a size of one byte.
- An error in each 1-byte BIS data block can be detected by conventional Reed Solomon (RS) decoding sequences.
- RS Reed Solomon
- a specific erasure strategy might, for example, conclude that the LDC bytes in between the BIS errors (or in between the BIS error and the SYNC error) probably contain errors and it will mark these LDC bytes as erasures.
- LDC error correction the corresponding locations in the LDC words are treated as erasures, and can thus be more easily corrected.
- Fig. 3 illustrates a schematic diagram of an optical disk reproducing apparatus as disclosed in WO 2004/021619 A2 in which the present invention may be advantageously embodied.
- the apparatus comprises an optical pickup 11 for reproducing recorded signals from an optical disk 10 such as a BD-RW disk or a BD-ROM disk, a VDP system 12 for converting the reproduced signal into a binary signal, retrieving digital data from the binary signal, decoding the digital data, correcting errors in data, and controlling the overall decoding operation, and a D/A converter 13 for converting decoded digital data into analog signals.
- the VDP system 12 responsive to a user request performs reproduction of the optical disk 10 loaded into the apparatus.
- the VDP system 12 comprises a plurality of conceptional blocks: a demodulation unit 120, a SYNC error detecting unit 121, a separating unit 122, a BIS deinterleaving unit 123, a BIS block buffer 124, a BIS decoding unit 125, control unit 126, an LDC deinterleaving unit 127, an LDC block buffer 128, and an LDC decoding unit 129.
- the SYNC error detecting unit 121 detects 20-bit SYNC data from a data stream demodulated by the demodulation unit 120 and compares the detected SYNC data with preset predictive SYNC data to determine whether an error occurs in the SYNC data.
- the separating unit 122 separates the data stream from the demodulation unit 120 into BIS data and LDC data.
- the BIS deinterleaving unit 123 deinterleaves the BIS data and stores the BIS data in the BIS block buffer 124.
- the BIS decoding unit 125 performs RS decoding operations on the BIS data stored in the BIS block buffer 124 to determine whether an error occurs as shown in Fig. 2. The determination result is sent to the control unit 126.
- the control unit 126 determines whether to mark an LDC byte as erasure.
- the LDC deinterleaving unit 127 deinterleaves LDC data from the separating unit 122 and stores the LDC data in the LDC block buffer 128.
- the LDC decoding unit 128 performs RS decoding operations on the LDC data stored in the LDC block buffer 128. If the LDC byte is marked as an erasure by the control unit 126 the corresponding location in the LDC word will be treated as an erasure during the LDC error correction and this location can thus be more easily corrected.
- control unit 126 By use of a memory 14 storing control settings and/or a user interface 15 for input of control settings the control unit 126 can be provided with said control settings for control of the erasure strategy.
- control unit 126 By use of a memory 14 storing control settings and/or a user interface 15 for input of control settings the control unit 126 can be provided with said control settings for control of the erasure strategy.
- a first rule included in the control setting relates to how to deal with single, double or more subsequent holes in burst errors.
- a good BIS byte / SYNC pattern is meant that is surrounded by bad BIS bytes / SYNC patterns; with a double hole in a burst error, two consecutive good BIS bytes / SYNC patterns are meant that are surrounded by bad BIS bytes / SYNC patterns, etc..
- the decision when holes in burst errors shall be filled up is a choice, e.g. of the user or the manufacturer of the decoder, that influences the aggressiveness of the erasure strategy related to these holes.
- Filling a hole means that if there is a good BIS byte / SYNC pattern that is surrounded by bad BIS bytes / SYNC patterns (i.e. a hole), that BIS byte / SYNC pattern will be treated as if it was bad. This is done because it is expected that the BIS byte / SYNC pattern was correct "by accident", i.e. that the surrounding LDC bytes will be mainly wrong bytes.
- Fig. 5 illustrates four identical scenarios (i.e. four rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes to which different strategies of handling single holes have been applied.
- a circle means a good BIS byte / SYNC pattern
- a cross means a bad BIS byte / SYNC pattern
- a line means that the corresponding LDC locations are marked as erasures.
- a different erasure strategy i.e. a different setting for the first rule, has been applied.
- the first line of Fig. 5 shows an erasure strategy that doesn't put erasures around single holes, i.e.
- the last line shows an erasure strategy that puts erasures around the single holes, i.e. a very aggressive strategy.
- the lines in the middle show erasure strategies that use more complex strategies to decide if erasures are put around single holes, i.e. they look in a wider window to the surrounding BIS bytes / SYNC patterns to get a better picture about the scenario.
- the control setting for the first rule it is possible to gradually increase the aggressiveness of the erasure correction related to holes.
- Aggressive strategies always put erasures around single (or more subsequent) holes, more defensive ones will only erase when there are no other bad BIS bytes / SYNC patterns in the neighborhood. The same can be said about double (or more subsequent) holes.
- the first rule could use different conditions for single, double or more subsequent holes.
- a second rule included in the control setting relates to how to deal with single, double or more subsequent isolations in burst errors.
- a bad BIS byte / SYNC pattern is meant that is surrounded by good BIS bytes / SYNC patterns; with a double isolation, tow consecutive bad BIS bytes / SYNC patterns are meant that are surrounded by good BIS bytes / SYNC patterns, etc..
- Erasure strategies are only useful during burst errors: If there is a purely random error pattern, erasure correction shall not be performed because this will rather limit the error correction capability instead of extending it.
- Single bad BIS bytes / SYNC patterns can indicate a random error pattern or a very short burst error. In the first case no erasure correction shall be made; in the latter case the neighboring locations shall be marked as erasures. This is again a choice, e.g. of the user or manufacturer, how aggressive the erasure strategy is related to isolations, i.e. by deciding when to remove isolations. Removing isolations means that if there is a bad BIS byte / SYNC pattern that is surrounded by good BIS bytes / SYNC patterns (i.e. an isolation), this will be treated as if it was good. This is done because it is expected that the BIS byte / SYNC pattern was bad "by accident" (random error), i.e. that the surrounding LDC bytes will be mainly good.
- Fig. 6 illustrates - like Fig. 5 - four identical scenarios (i.e. four rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes, to which different erasure strategies, i.e. different settings for the second rule, have been applied.
- the first line shows an erasure strategy that puts erasures around the single isolations, i.e. a very aggressive strategy.
- the last line shows an erasure strategy that doesn't put erasures around single isolations, i.e. a very defensive strategy.
- the lines in the middle show erasure strategies that use more complex strategies to decide if erasures are put around single isolations, i.e. they look in a wider window to the surrounding BIS bytes / SYNC patterns to get a better picture about the scenario.
- the second rule By changing the control setting for the second rule, it is possible to gradually increase the defensiveness (or decrease the aggressiveness) of the erasure correction related to isolations.
- Aggressive strategies always put erasures around single isolations, more defensive ones will only erase when there are other bad BIS bytes / SYNC patterns in the neighborhood. The same can be said about double (or more subsequent) isolations.
- the second rule could use different conditions for single, double or more subsequent isolations.
- a third rule included in the control setting relates to the wing size.
- wing size it is meant how many locations will be flagged as erasures that are in between a good and a bad BIS byte / SYNC pattern. It shall be remarked here that inbetween two consecutive bad BIS bytes / SYNC patterns everything will be flagged as erasures, so the amount of erasures that are flagged at the boundaries can be seen as the size of the 'wings' of the erasure indication. Since there is no information available how many locations need to be erased at the boundaries, it is again a choice, e.g. of the user or the manufacturer, how aggressive the erasure strategy, related to the boundaries, should be.
- Fig. 7 illustrating three identical scenarios (i.e. three rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes, to which different erasure strategies, i.e. different settings for the third rule, have been applied..
- the first line of Fig. 7 shows a scenario which has a wing size of 0.5, i.e. the erasures are put up to half the interval in between a bad and a good BIS byte / SYNC pattern.
- the second line shows a scenario which has a wing size of 0, i.e. no erasures are put in the interval in between a bad and a good BIS byte / SYNC pattern, i.e. a very defensive strategy.
- the second line shows a scenario which has a wing size of 1, i.e. erasures are put in the complete interval in between a bad and a good BIS byte / SYNC pattern, i.e. a very aggressive strategy.
- the third rule by changing the control setting for the third rule, it is possible to gradually increase the aggressiveness of the erasure correction at the boundaries of (burst) errors by gradually increasing the wing size.
- the third rule thus also controls the number of locations marked as erasures around single (or more subsequent) holes and/or isolations, which also influences the aggressiveness, i.e. the more locations are marked as erasures, the more aggressive the erasure correction will be.
- the first two control settings are quite similar. These two settings, i.e. the control over how to deal with holes and isolation, are handled in the so-called preprocessing unit 261, which receives flags from the SYNC detection (unit 121) and the BIS correction (unit 125) as input. These settings have to do with the "frequency content" of the erasing process: is it desired to immediately stop erasing when a good BIS byte / SYNC pattern in a burst of bad BIS bytes/SYNC patterns (or the other way around) is recognized? To control this, some well-known concept as FIR- filters or flywheels can be used. Alternatively, some non- linear filters or dedicated solutions can be used.
- the third control setting (rule), i.e. the control over the wing size, is handled in the so-called processing unit 262, which receives the preprocessed flags of the preprocessing unit 261 as input.
- the processing unit 262 can be implemented with a very simple Boolean expression, as is usually done in the known single- step-erasure strategies.
- the output of the processing unit 262 is finally provided to the LDC decoder 129.
- a preferred embodiment for the preprocessing unit 261 is presented in Fig. 9, since it has superior qualities concerning flexibility, comprehensibility for the user and predictability. It will implement the first and second rule by conditionally changing certain BIS errors and/or SYNC errors in good BIS words or good SYNC words and vice versa.
- This dedicated solution has a two-step process for the preprocessing itself: In the first step (performed in the first subunit 2611), holes can be filled depending on the surrounding BIS bytes / SYNC patterns. In the second step (performed in the second subunit 2612), the isolations can be removed depending on the surrounding BIS bytes / SYNC patterns.
- the second step uses the BIS bytes / SYNC patterns after the filling of the single/double holes, so these are preferably really two serial steps, not parallel ones.
- the order of the two steps can is reversed, which would make the system much more defensive for the same settings of the steps. In this way, it completely follows the split up between the preprocessing step and the actual erasure strategy (processing) step, that was made based on the control settings.
- Bad-burst-size-max max(size of bad-burst on the left, size of bad-burst on the right).
- Bad-burst-size-min min(size of bad-burst on the left, size of bad-burst on the right).
- FILL SINGLE HOLE HIGH and FILL SINGLE HOLE LOW being user settings and Bad-burst-size-max and Bad-burst-size-min as defined above.
- FILL DOUBLE HOLE HIGH and FILL_ DOUBLE HOLE LOW being user settings and Bad-burst-size-max and Bad-burst-size-min as defined above.
- FILL DOUBLE HOLE HIGH and FILL_ DOUBLE HOLE LOW are thus used as thresholds influencing the aggressiveness of the erasure correction, i.e. the lower the thresholds the more aggressive the erasure correction.
- a preferred implementation of the second rule relating to the removal of isolations is as follows (according to this implementation in this step the BIS bytes/SYNC pattern stream after the filling of the holes is taken into account): A single isolations will be removed if
- REMOVE SINGLE ISOLATION _LOW or REMOVE_DOUBLE_ISOLATION_HIGH and REMO VE_ DOUBLE ISOLATION LOW, respectively, are thus used as thresholds influencing the aggressiveness of the erasure correction, i.e. the higher the thresholds the more aggressive the erasure correction.
- a preferred implementation of the third rule relating to the wing size is as follows. The only thing that needs to be control in this step is the wing size. In this implementation it is chosen that there are only three different wing sizes (full wings, no wings and half wings), since this provides enough flexibility to the user and allows a very simple implementation.
- locations of LDC bytes shall be marked as erasures if the one of the preprocessed BIS byte / SYNC pattern that is adjacent to this location is bad, i.e. if the preprocessed neighboring BIS byte / SYNC pattern on the left OR the preprocessed neighboring BIS byte / SYNC pattern on the right is bad.
- Fig. 11 Different scenarios of a sequence of good and bad BIS bytes / SYNC patterns where this full wing size strategy for the third rule has been applied are shown in Fig. 11.
- locations of LDC bytes shall be marked as erasures if the both preprocessed BIS bytes / SYNC patterns that are adjacent to this location are bad, i.e. if the preprocessed neighboring BIS byte / SYNC pattern on the left AND the preprocessed neighboring BIS byte / SYNC pattern on the right is bad.
- Fig. 12 Different scenarios of a sequence of good and bad BIS bytes / SYNC patterns where this zero wing size strategy for the third rule has been applied are shown in Fig. 12.
- the present invention proposes an erasure strategy that has a limited number of parameters that directly control some control setting, which the user or manufacturer can directly control in order to determine the aggressiveness of the erasure correction.
- a system is provided that comprises, in a preferred embodiment, multiple steps, each step providing the ability to gradually increase/decrease one kind of aggressiveness of the erasure correction.
- the invention can be advantageously applied in reading and writing devices for reading and/or writing information from/to optical record carriers, such as CD, DVD or BD discs.
- the method according to the present can be implemented in software stored in microprocessor or on a memory device, e.g. for use in a drive as part of a PC for accessing data carriers.
- the invention can preferably be implemented in an integrated circuit, i.e. the claimed device can also be an IC.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
The present invention relates to error correction of a data stream comprising user data encoded into long distance code (LDC) words alternating with control data encoded into burst indicating subcode (BIS) words and SYNC data.Adevice is proposed comprising: a separating unit (122) for separating said LDC words and said BIS words from said data stream, an LDC decoder (129) for decoding said LDC words and for correcting errors and erasures in said LDC words, a BIS decoder (125) for decoding said BIS words and for detecting BIS errors in said BIS words, a SYNC detector (121) for detecting said SYNC data and for detecting SYNC errors in said SYNC data, a control unit (126) for marking locations in LDC words adjacent to BIS errors and/or SYNC errors as erasures depending on control settings determining the behavior of the erasure correction of said LDC decoder.
Description
Device and method for error correction of a data stream
The present invention relates to a device and a method for error correction of a data stream comprising user data encoded into long distance code (LDC) words, control data encoded into burst indicating subcode (BIS) words and SYNC data, said LDC words and said BIS words being alternately arranged in physical clusters starting with SYNC data. Further, the present invention relates to a computer program for implementing said method on a computer.
In Blu-ray Disc (BD) the error correction mechanism mainly consists of two error correction codes: the LDC (long distance code) and the BIS (burst interleaved code). The LDC code is applied to the user data and can correct random errors and burst errors. The BIS code is applied to the addresses and control information, which is interleaved with the user data. This BIS code can be used to indicate long burst errors to the LDC code, by means of which the LDC can efficiently correct erasures. The fact that a location of a codeword will be indicated as an erasure to the
LDC depends on the status (found or not) of the SYNC patterns and correction status (corrected or not) of the BIS bytes, surrounding the corresponding data byte in the received data stream, which is, for instance, read from a record carrier, such as an optical disc.
The current Blu-Ray Disc specification doesn't contain any information about good or bad erasure strategies. It just contains the description of the principle that BIS bytes and SYNC patterns can be used to generate the LDC erasures.
There are many known one-step-strategies (Boolean-expressions of the neighboring BIS bytes/SYNC pattern statuses that result in a decision for flagging the location as an erasure or not) that can be proposed for this purpose: from very aggressive strategies that give a huge amount of erasures to very defensive strategies that give very small amount of erasures.
The result of all known erasure strategies is, however, often hard to predict, and thus not very suitable from a user perspective point of view. Indeed, the user generally wants a system that is comprehensible, easy to use and with a predictable behavior.
It is an object of the present invention to provide a device and a method for error correction of a data stream as defined above by which the result of the erasure correction can be predicted and by which the erasure correction is comprehensible and easy to use.
This object is achieved according to the present invention by a device as claimed in claim 1.
A method for error correction is defined in claim 15. A computer program comprising program code means for causing a computer to perform the steps of the said method, when said computer program is executed on a computer is defined in claim 16. Preferred embodiments of the invention are defined in the dependent claims.
This invention provides an advantageous strategy, that can be used to generate the LDC erasures out of the BIS corrections (BIS byte was correct or not) and SYNC pattern information (SYNC was found at the expected location or not). The invention is based on the idea to provide the ability to influence the general behavior, in particular the aggressiveness, of the erasure correction of the data stream by use of separate control settings. Instead of having to choose between a number of distinct strategies, the user thus has a limited number of parameters (i.e. control settings) that allow the user to control the general main behavior of the erasure strategy, like how aggressive the erasure correction should be in certain situations. The control settings are generally independent of each other, i.e. changing one control setting shouldn't affect the optimal settings for the other control settings. Hence, the result of the erasure correction is easily predictable.
Aggressiveness here refers to the number of locations of LDC words that are marked as erasures given a certain pattern of BIS errors and SYNC errors. The more locations are marked as erasures, the more aggressive the erasure strategy is.
Marking certain locations as erasures has to be done carefully: marking locations that contain errors as erasures increases the error correction capability, but marking locations that doesn't contain errors as erasures decreases the error correction capability. On discs with burst errors, erasures shall be put if the surrounding BIS bytes /
SYNC patterns are erroneous because this indicates that the LDC bytes will also be erroneous. So for discs with mainly burst errors, the erasure strategy shall generally be more aggressive, i.e. erasures shall be marked at locations where errors are expected.
On discs with random errors, any erasures shall not be put because the fact that the surrounding BIS bytes / SYNC pattern are erroneous doesn't give any information about the LDC bytes. So for discs with mainly random errors, the erasure strategy shall generally be more defensive, i.e. there shall not be marked many erasures. Since on a real- life disc, there will be a varying mixture of random errors and burst errors of different lengths depending from disc to disc, the optimal erasure strategy will also vary from disc to disc. According to the present invention a user is thus able to adapt the erasure strategy, i.e. the user can use the information of the erroneous BIS bytes / SYNC patterns in different ways, e.g. depending on the particular disc if desired. According to a preferred embodiment a memory for storing said control settings set by the user or the manufacturer of said device. Thus, the control settings can be pre-set and stored in the device. Alternatively or in addition, a user interface can be provided for allowing the user of said device to set said control settings, e.g. for each particular data carrier the control settings can be changed. According to further preferred embodiments the control settings comprise three different rules as defined in claims 5 to 12 which can be provided to control the behavior of the erasure correction. Further, as defined in said claims, said rules include one or more conditions (or parameters) which allow the user or manufacturer to influence the behavior, in particular the aggressiveness, of the erasure correction. Each rule relates to a different kind of aggressiveness:
- aggressiveness relating to a small number of neighboring good BIS / SYNC data surrounded by BIS / SYNC errors (at least one BIS error or one SYNC error on each side) (Rule 1);
- aggressiveness relating small number of neighboring BIS / SYNC errors surrounded by good BIS / SYNC data (at least one good BIS byte or one good SYNC pattern on each side)
(Rule 2);
- aggressiveness relating the transition between good BIS / SYNC data and BIS / SYNC error (Rule 3).
Preferably, different thresholds can be defined which are used according to rule 1 to determine if a small number, in particular less than five, preferably one or two, of subsequent holes, which are surrounded by many BIS / SYNC errors, shall be interpreted as BIS / SYNC errors. Correspondingly, different thresholds can be defined which are used according to rule 2 to determine if a small number, in particular less than five, preferably one
or two, of subsequent isolations, which are surrounded by many good BIS / SYNC data, shall be interpreted as good BIS / SYNC data.
Preferred embodiments of the control unit are defined in further dependent claims, according to which said control unit comprises a preprocessing unit for applying said first and/or second rule and a processing unit for applying said third rule. In said processing unit the result of the first preprocessing unit is preferably taken as an input. Further, the preprocessing unit may further be divided into a first subunit for applying in a first step said first rule or said second rule and a second subunit for applying in a second subsequent step the other of said first or second rule not applied by said first subunit taking into account the result obtained by said first subunit. The first and second rules are implemented in the preprocessing unit in such a way that it allows the straightforward combination with the third rule: the first and second rule are implemented by having a conditional replacement of BIS errors and/or SYNC errors by good BIS words or good SYNC data and vice versa.
The invention will now be explained in more detail with reference to the drawings in which
Fig. 1 illustrates the process of encoding a physical cluster of the BD-RW,
Fig. 2 illustrates the process of decoding a physical cluster of the BD-RW according to the invention,
Fig. 3 illustrates a schematic diagram of an optical disk reproducing apparatus in which the present invention may be advantageously embodied,
Fig. 4 illustrates a detailed block diagram for explaining the method of correcting errors in accordance with the invention, Fig. 5 illustrates different scenarios of dealing with holes in burst errors according to the invention,
Fig. 6 illustrates different scenarios of dealing with isolations according to the invention,
Fig. 7 illustrates different scenarios of using different wing sizes according to the invention,
Fig. 8 illustrates a schematic diagram of a control unit according to the invention,
Fig. 9 illustrates a schematic diagram of a preprocessing unit of said control unit according to the invention,
Fig. 10 illustrates different scenarios of using a half- wing strategy according to the invention,
Fig. 11 illustrates different scenarios of using a full-wing strategy according to the invention and Fig. 12 illustrates different scenarios of using a zero-wing strategy according to the invention.
The standardization of new high-density read only and rewritable optical disks capable of recording large amounts of high-quality video and audio data has been progressing rapidly and new optical disk related products are expected to be commercially available on the market in the near future. The Blu-ray Disc Rewritable (BD-RW) and Blu-ray Disk ROM (BD-ROM) are examples of these new optical disks.
As shown in Fig. 1, user data such as A/V data and various contents is encoded through multiple data processing steps to be recorded on the BD-RW. User data of a predetermined size is converted into data frames, scrambled data frames, a data block, a long distance code (LDC) block, and a LDC cluster in turn. Similarly, user control data corresponding to the user data is converted into an access block, a burst indicating subcode (BIS) block, and a burst indicating subcode (BIS) cluster in turn. As shown, a BIS cluster encoded in this manner is divided into three parts of the same size and each part is inserted between two data blocks of an LDC cluster, each data block being of a predefined size. SYNC data is added to one LDC cluster and one BIS cluster recorded in this manner, which constitutes one physical cluster.
As shown in Fig. 2, one physical cluster comprises 155 columns (SYNC data exclusive) and 496 rows. In each row, SYNC data has a size of 20 bits, each of the first- column through fourth-column LDC data blocks has a size of 38 bytes, and each of the first- column through third-column BIS data blocks has a size of one byte. An error in each 1-byte BIS data block can be detected by conventional Reed Solomon (RS) decoding sequences. If there are a considerable number of consecutive errors in the data (burst error) that might be caused by scratches, fingerprints etc., in such a way that two neighboring BIS bytes (or a neighboring BIS byte and SYNC pattern) are erroneous, a specific erasure strategy might, for example, conclude that the LDC bytes in between the BIS errors (or in between the BIS error and the SYNC error) probably contain errors and it will mark these
LDC bytes as erasures. During LDC error correction, the corresponding locations in the LDC words are treated as erasures, and can thus be more easily corrected.
Fig. 3 illustrates a schematic diagram of an optical disk reproducing apparatus as disclosed in WO 2004/021619 A2 in which the present invention may be advantageously embodied. The apparatus comprises an optical pickup 11 for reproducing recorded signals from an optical disk 10 such as a BD-RW disk or a BD-ROM disk, a VDP system 12 for converting the reproduced signal into a binary signal, retrieving digital data from the binary signal, decoding the digital data, correcting errors in data, and controlling the overall decoding operation, and a D/A converter 13 for converting decoded digital data into analog signals. The VDP system 12 responsive to a user request performs reproduction of the optical disk 10 loaded into the apparatus.
As shown in Fig. 2, it is determined, by a quite simple erasure strategy, whether an error occurs in an LDC data block of size 38 bytes in the second or third column based on errors in two BIS data blocks adjacent to the LDC data block. Further, it is determined whether an error occurs in an LDC data block of size 38 bytes in the first or fourth column based on errors in a BIS data block and SYNC data adjacent to the LDC data block. If an LDC data block is concluded to be erroneous, the LDC data block is marked as erasure to indicate that an error occurs and an RS decoding is performed on the LDC data block, thereby correcting the error that might be caused by scratches, fingerprints, etc. As shown in Fig. 4, the VDP system 12 comprises a plurality of conceptional blocks: a demodulation unit 120, a SYNC error detecting unit 121, a separating unit 122, a BIS deinterleaving unit 123, a BIS block buffer 124, a BIS decoding unit 125, control unit 126, an LDC deinterleaving unit 127, an LDC block buffer 128, and an LDC decoding unit 129. The SYNC error detecting unit 121 detects 20-bit SYNC data from a data stream demodulated by the demodulation unit 120 and compares the detected SYNC data with preset predictive SYNC data to determine whether an error occurs in the SYNC data. The separating unit 122 separates the data stream from the demodulation unit 120 into BIS data and LDC data. The BIS deinterleaving unit 123 deinterleaves the BIS data and stores the BIS data in the BIS block buffer 124. The BIS decoding unit 125 performs RS decoding operations on the BIS data stored in the BIS block buffer 124 to determine whether an error occurs as shown in Fig. 2. The determination result is sent to the control unit 126.
Receiving determination results from the BIS decoding unit 125 and the SYNC error detecting unit 121, the control unit 126 determines whether to mark an LDC byte
as erasure. The LDC deinterleaving unit 127 deinterleaves LDC data from the separating unit 122 and stores the LDC data in the LDC block buffer 128. The LDC decoding unit 128 performs RS decoding operations on the LDC data stored in the LDC block buffer 128. If the LDC byte is marked as an erasure by the control unit 126 the corresponding location in the LDC word will be treated as an erasure during the LDC error correction and this location can thus be more easily corrected.
By use of a memory 14 storing control settings and/or a user interface 15 for input of control settings the control unit 126 can be provided with said control settings for control of the erasure strategy. In the following the main idea of the present invention and the function of the control unit 126 for control of the behavior of the erasure correction performed by the LDC decoding unit 129 will be explained in more detail.
A first rule included in the control setting relates to how to deal with single, double or more subsequent holes in burst errors. With a single hole in a burst error, a good BIS byte / SYNC pattern is meant that is surrounded by bad BIS bytes / SYNC patterns; with a double hole in a burst error, two consecutive good BIS bytes / SYNC patterns are meant that are surrounded by bad BIS bytes / SYNC patterns, etc..
Holes in burst errors can be caused by the fact that there is still a 1/256 (= 1/28, 8 bits in a byte) chance that a byte during a burst is good. So it occurs fairly often that a burst error contains a single good BIS byte. The chance that there are two consecutive good BIS bytes in a burst error is already much lower (1/2562).
The decision when holes in burst errors shall be filled up is a choice, e.g. of the user or the manufacturer of the decoder, that influences the aggressiveness of the erasure strategy related to these holes. Filling a hole means that if there is a good BIS byte / SYNC pattern that is surrounded by bad BIS bytes / SYNC patterns (i.e. a hole), that BIS byte / SYNC pattern will be treated as if it was bad. This is done because it is expected that the BIS byte / SYNC pattern was correct "by accident", i.e. that the surrounding LDC bytes will be mainly wrong bytes.
Fig. 5 illustrates four identical scenarios (i.e. four rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes to which different strategies of handling single holes have been applied. In Fig. 5 (and also in Figs. 6 and 7) a circle means a good BIS byte / SYNC pattern, a cross means a bad BIS byte / SYNC pattern and a line means that the corresponding LDC locations are marked as erasures. However, to each row a different erasure strategy, i.e. a different setting for the first rule, has been applied.
In particular, the first line of Fig. 5 shows an erasure strategy that doesn't put erasures around single holes, i.e. a very defensive strategy. The last line shows an erasure strategy that puts erasures around the single holes, i.e. a very aggressive strategy. The lines in the middle show erasure strategies that use more complex strategies to decide if erasures are put around single holes, i.e. they look in a wider window to the surrounding BIS bytes / SYNC patterns to get a better picture about the scenario.
Thus, by changing the control setting for the first rule, it is possible to gradually increase the aggressiveness of the erasure correction related to holes. The more holes are filled, the more aggressive the erasure strategy will be. Aggressive strategies always put erasures around single (or more subsequent) holes, more defensive ones will only erase when there are no other bad BIS bytes / SYNC patterns in the neighborhood. The same can be said about double (or more subsequent) holes. Further, the first rule could use different conditions for single, double or more subsequent holes.
A second rule included in the control setting relates to how to deal with single, double or more subsequent isolations in burst errors. With a single isolation in a burst error, a bad BIS byte / SYNC pattern is meant that is surrounded by good BIS bytes / SYNC patterns; with a double isolation, tow consecutive bad BIS bytes / SYNC patterns are meant that are surrounded by good BIS bytes / SYNC patterns, etc..
Erasure strategies are only useful during burst errors: If there is a purely random error pattern, erasure correction shall not be performed because this will rather limit the error correction capability instead of extending it.
Single bad BIS bytes / SYNC patterns can indicate a random error pattern or a very short burst error. In the first case no erasure correction shall be made; in the latter case the neighboring locations shall be marked as erasures. This is again a choice, e.g. of the user or manufacturer, how aggressive the erasure strategy is related to isolations, i.e. by deciding when to remove isolations. Removing isolations means that if there is a bad BIS byte / SYNC pattern that is surrounded by good BIS bytes / SYNC patterns (i.e. an isolation), this will be treated as if it was good. This is done because it is expected that the BIS byte / SYNC pattern was bad "by accident" (random error), i.e. that the surrounding LDC bytes will be mainly good.
Fig. 6 illustrates - like Fig. 5 - four identical scenarios (i.e. four rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes, to which different erasure strategies, i.e. different settings for the second rule, have been applied. The first line shows an erasure strategy that puts erasures around the single isolations, i.e. a very aggressive strategy.
The last line shows an erasure strategy that doesn't put erasures around single isolations, i.e. a very defensive strategy. The lines in the middle show erasure strategies that use more complex strategies to decide if erasures are put around single isolations, i.e. they look in a wider window to the surrounding BIS bytes / SYNC patterns to get a better picture about the scenario.
Thus, by changing the control setting for the second rule, it is possible to gradually increase the defensiveness (or decrease the aggressiveness) of the erasure correction related to isolations. The more isolations are removed, the more defensive the erasure strategy will be. Aggressive strategies always put erasures around single isolations, more defensive ones will only erase when there are other bad BIS bytes / SYNC patterns in the neighborhood. The same can be said about double (or more subsequent) isolations. Further, the second rule could use different conditions for single, double or more subsequent isolations.
A third rule included in the control setting relates to the wing size. With wing size it is meant how many locations will be flagged as erasures that are in between a good and a bad BIS byte / SYNC pattern. It shall be remarked here that inbetween two consecutive bad BIS bytes / SYNC patterns everything will be flagged as erasures, so the amount of erasures that are flagged at the boundaries can be seen as the size of the 'wings' of the erasure indication. Since there is no information available how many locations need to be erased at the boundaries, it is again a choice, e.g. of the user or the manufacturer, how aggressive the erasure strategy, related to the boundaries, should be. Thus, by controlling the wing size, the the aggressiveness of the system at the boundaries of (burst) errors can be controlled. This can be seen from Fig. 7 illustrating three identical scenarios (i.e. three rows) of a sequence of BIS bytes / SYNC patterns separated by LDC bytes, to which different erasure strategies, i.e. different settings for the third rule, have been applied..
In particular, the first line of Fig. 7 shows a scenario which has a wing size of 0.5, i.e. the erasures are put up to half the interval in between a bad and a good BIS byte / SYNC pattern. The second line shows a scenario which has a wing size of 0, i.e. no erasures are put in the interval in between a bad and a good BIS byte / SYNC pattern, i.e. a very defensive strategy. The second line shows a scenario which has a wing size of 1, i.e. erasures are put in the complete interval in between a bad and a good BIS byte / SYNC pattern, i.e. a very aggressive strategy.
Thus, by changing the control setting for the third rule, it is possible to gradually increase the aggressiveness of the erasure correction at the boundaries of (burst) errors by gradually increasing the wing size. The larger the wing size, i.e. the more locations at the boundaries of burst errors are flagged as erasure, the more aggressive the erasure strategy will be. The third rule thus also controls the number of locations marked as erasures around single (or more subsequent) holes and/or isolations, which also influences the aggressiveness, i.e. the more locations are marked as erasures, the more aggressive the erasure correction will be.
As has been shown above with reference to Figs. 5 to 7 there are three main control settings (three rules) the user (or manufacturer) wants to control, instead of trying to do everything in one step (boolean-expressions of the neighboring BIS bytes / SYNC pattern statuses that result in a decision for flagging the location as an erasure or not). Hence, in a preferred embodiment of the erasure correction according to the present invention, a multiple step approach is proposed that allows to combine the three rules in a straightforward way. An embodiment of an appropriate control unit 126 is shown in Fig. 8.
The first two control settings (rules) are quite similar. These two settings, i.e. the control over how to deal with holes and isolation, are handled in the so-called preprocessing unit 261, which receives flags from the SYNC detection (unit 121) and the BIS correction (unit 125) as input. These settings have to do with the "frequency content" of the erasing process: is it desired to immediately stop erasing when a good BIS byte / SYNC pattern in a burst of bad BIS bytes/SYNC patterns (or the other way around) is recognized? To control this, some well-known concept as FIR- filters or flywheels can be used. Alternatively, some non- linear filters or dedicated solutions can be used.
The third control setting (rule), i.e. the control over the wing size, is handled in the so-called processing unit 262, which receives the preprocessed flags of the preprocessing unit 261 as input. The processing unit 262 can be implemented with a very simple Boolean expression, as is usually done in the known single- step-erasure strategies. The output of the processing unit 262 is finally provided to the LDC decoder 129.
Instead of using things like FIR filters to do the preprocessing, a preferred embodiment for the preprocessing unit 261 is presented in Fig. 9, since it has superior qualities concerning flexibility, comprehensibility for the user and predictability. It will implement the first and second rule by conditionally changing certain BIS errors and/or SYNC errors in good BIS words or good SYNC words and vice versa. This dedicated solution has a two-step process for the preprocessing itself:
In the first step (performed in the first subunit 2611), holes can be filled depending on the surrounding BIS bytes / SYNC patterns. In the second step (performed in the second subunit 2612), the isolations can be removed depending on the surrounding BIS bytes / SYNC patterns. Preferably, the second step uses the BIS bytes / SYNC patterns after the filling of the single/double holes, so these are preferably really two serial steps, not parallel ones. In an alternative embodiment, the order of the two steps can is reversed, which would make the system much more defensive for the same settings of the steps. In this way, it completely follows the split up between the preprocessing step and the actual erasure strategy (processing) step, that was made based on the control settings.
Before going more into details about a particular implementation, some definitions shall be made:
Around the holes there are two bad-bursts (one on the left, one on the right), i.e. a number of consecutive bad BIS bytes / SYNC patterns that are adjacent to (one of the) good BIS byte(s) / SYNC pattern(s) of the hole. The burst size of these two bad-bursts can be 1, 2, 3, 4, .... The following definitions are then used:
Bad-burst-size-max: max(size of bad-burst on the left, size of bad-burst on the right). Bad-burst-size-min: min(size of bad-burst on the left, size of bad-burst on the right).
Around these isolations there are two good-bursts (one on the left, one on the right), i.e. a number of consecutive good BIS bytes / SYNC patterns that are adjacent to (one of the) bad BIS byte(s) / SYNC pattern(s) of the isolation. The burst size of these two good- bursts can be 1, 2, 3, 4, .... The following definitions are then used: Good-burst-size-max: max(size of good-burst on the left, size of good-burst on the right). Good-burst-size-min: min(size of good-burst on the left, size of good-burst on the right). A preferred implementation of the first rule relating to the filling of holes is as follows:
A single hole will be filled if
Bad-burst-size-max >= FILL SINGLE HOLE HIGH and Bad-burst-size-min >= FILL SINGLE HOLE LOW, with
FILL SINGLE HOLE HIGH and FILL SINGLE HOLE LOW being user settings and Bad-burst-size-max and Bad-burst-size-min as defined above.
A double hole will be filled if
Bad-burst-size-max >= FILL DOUBLE HOLE HIGH and Bad-burst-size-min >= FILL DOUBLE HOLE LOW, with
FILL DOUBLE HOLE HIGH and FILL_ DOUBLE HOLE LOW being user settings and Bad-burst-size-max and Bad-burst-size-min as defined above.
Filling of triple (or more subsequent) holes will be done accordingly. The user settings FILL SINGLE HOLE HIGH and FILL SINGLE HOLE LOW or
FILL DOUBLE HOLE HIGH and FILL_ DOUBLE HOLE LOW, respectively, are thus used as thresholds influencing the aggressiveness of the erasure correction, i.e. the lower the thresholds the more aggressive the erasure correction.
A preferred implementation of the second rule relating to the removal of isolations is as follows (according to this implementation in this step the BIS bytes/SYNC pattern stream after the filling of the holes is taken into account): A single isolations will be removed if
Good-burst-size-max >= REMOVE SINGLE ISOLATIONJTIGH and
Good -burst-size-min >= REMOVE _SINGLE_ ISOLATION _LOW, with
REMOVE_SINGLE_ISOLATION_HIGH and REMOVE SINGLE ISOLATION _LOW being user settings and
Good -burst-size-max and Good -burst-size-min as defined above.
A double isolation will be removed if
Good -burst-size-max >= REMOVE DOUBLE ISOLATION HIGH and Good -burst-size-min >= REMOVE DOUBLE ISOLATION _LOW, with REMOVE_DOUBLE_ISOLATION_HIGH and REMOVE_ DOUBLE ISOLATION
LOW being user settings and
Good -burst-size-max and Good -burst-size-min as defined above.
Removal of triple (or more subsequent) isolations will be done accordingly. The user settings REMOVE SINGLE ISOLATIONJTIGH and
REMOVE SINGLE ISOLATION _LOW or REMOVE_DOUBLE_ISOLATION_HIGH and REMO VE_ DOUBLE ISOLATION LOW, respectively, are thus used as thresholds
influencing the aggressiveness of the erasure correction, i.e. the higher the thresholds the more aggressive the erasure correction.
A preferred implementation of the third rule relating to the wing size is as follows. The only thing that needs to be control in this step is the wing size. In this implementation it is chosen that there are only three different wing sizes (full wings, no wings and half wings), since this provides enough flexibility to the user and allows a very simple implementation.
If half wing size is chosen, locations of LDC bytes shall be marked as erasures if the preprocessed BIS byte / SYNC pattern that is closest to this location is bad. Different scenarios of a sequence of good and bad BIS bytes / SYNC patterns where this half wing size strategy for the third rule has been applied are shown in Fig. 10.
If full wing size, i.e. an aggressive strategy, is chosen, locations of LDC bytes shall be marked as erasures if the one of the preprocessed BIS byte / SYNC pattern that is adjacent to this location is bad, i.e. if the preprocessed neighboring BIS byte / SYNC pattern on the left OR the preprocessed neighboring BIS byte / SYNC pattern on the right is bad. Different scenarios of a sequence of good and bad BIS bytes / SYNC patterns where this full wing size strategy for the third rule has been applied are shown in Fig. 11.
If zero wing size, i.e. a defensive strategy, is chosen, locations of LDC bytes shall be marked as erasures if the both preprocessed BIS bytes / SYNC patterns that are adjacent to this location are bad, i.e. if the preprocessed neighboring BIS byte / SYNC pattern on the left AND the preprocessed neighboring BIS byte / SYNC pattern on the right is bad. Different scenarios of a sequence of good and bad BIS bytes / SYNC patterns where this zero wing size strategy for the third rule has been applied are shown in Fig. 12.
The present invention proposes an erasure strategy that has a limited number of parameters that directly control some control setting, which the user or manufacturer can directly control in order to determine the aggressiveness of the erasure correction. Instead of having to choose between distinct one-step erasure strategies, a system is provided that comprises, in a preferred embodiment, multiple steps, each step providing the ability to gradually increase/decrease one kind of aggressiveness of the erasure correction. The invention can be advantageously applied in reading and writing devices for reading and/or writing information from/to optical record carriers, such as CD, DVD or BD discs. Further, the method according to the present can be implemented in software stored in microprocessor or on a memory device, e.g. for use in a drive as part of a PC for accessing data carriers. Still
further, the invention can preferably be implemented in an integrated circuit, i.e. the claimed device can also be an IC.
Claims
1. Device for error correction of a data stream comprising user data encoded into long distance code (LDC) words, control data encoded into burst indicating subcode (BIS) words and SYNC data, said LDC words and said BIS words being alternately arranged in physical clusters starting with SYNC data, comprising: - a separating unit (122) for separating said LDC words and said BIS words from said data stream, an LDC decoder (129) for decoding said LDC words and for correcting errors and erasures in said LDC words, a BIS decoder (125) for decoding said BIS words and for detecting BIS errors in said BIS words, a SYNC detector (121) for detecting said SYNC data and for detecting SYNC errors in said SYNC data, a control unit (126) for marking erasures for decoding of said LDC words based on said BIS errors and said SYNC errors by marking locations in LDC words adjacent to BIS errors and/or SYNC errors as erasures depending on control settings determining the behavior of the erasure correction of said LDC decoder.
2. Device as claimed in claim 1, wherein said control settings are adapted for determining the aggressiveness of the erasure correction of said LDC decoder, in particular the number of locations in LDC words marked as erasures for a given pattern of BIS errors and SYNC errors.
3. Device as claimed in claim 1, further comprising a memory (14) for storing said control settings set by the user or the manufacturer of said device.
4. Device as claimed in claim 1, further comprising a user interface (15) for allowing the user of said device to set said control settings.
5. Device as claimed in claim 1, wherein said control settings include a first rule defining under which conditions a small number, in particular one or two, of neighboring good BIS words and/or good SYNC data surrounded by at least one BIS error and/or SYNC error on each side shall be interpreted as BIS errors or SYNC errors, respectively.
6. Device as claimed in claim 5, wherein said first rule includes the condition that said small number of neighboring good BIS words and/or good SYNC data shall be interpreted as BIS errors or SYNC errors, respectively, if the maximum and/or minimum number of said neighboring good BIS words and/or good SYNC data exceeds a first maximum threshold or a first minimum threshold, respectively.
7. Device as claimed in claim 5, wherein said first rule includes different conditions for interpreting the small number of good BIS words and/or good SYNC data as BIS errors or SYNC errors, depending on said small number.
8. Device as claimed in claim 1, wherein said control settings include a second rule defining under which conditions a small number, in particular one or two, of neighboring BIS errors and/or SYNC errors surrounded by at least one good BIS word and/or good SYNC data on each side the same number of shall be interpreted as good BIS words or good SYNC data, respectively.
9. Device as claimed in claim 8, wherein said second rule includes the condition that said small number of neighboring BIS errors and/or SYNC errors shall be interpreted as good BIS words or good SYNC data, respectively, if the maximum and/or minimum number of said neighboring BIS errors and/or SYNC errors exceeds a second maximum threshold or a second minimum threshold, respectively.
10. Device as claimed in claim 8, wherein said second rule includes different conditions for interpreting the small number of BIS errors and/or SYNC errors as good BIS words or good SYNC data, depending on the said small number.
11. Device as claimed in claim 1 , wherein said control settings include a third rule defining how many locations in LDC words in between a BIS error or a SYNC error, respectively, and a good BIS word or SYNC word, respectively, shall be marked as erasures.
12. Device as claimed in claim 11, wherein said third rule defines that all locations of LDC words, no locations of LDC word or a predetermined number of locations of LDC words, in particular half of the locations of LDC words, adjacent to said BIS error or said SYNC error, respectively, shall be marked as erasures.
13. Device as claimed in claim 5, 8 and 11, wherein said control unit (126) comprises: a preprocessing unit (261) for applying said first and/or second rule and a processing unit (262) for applying said third rule.
14. Device as claimed in claim 13, wherein said preprocessing unit (261) comprises: a first subunit (2611) for applying in a first step said first rule or said second rule and a second subunit (2612) for applying in a second subsequent step the other of said first or second rule not applied by said first subunit taking into account the result obtained by said first subunit.
15. Method for error correction of a data stream comprising user data encoded into long distance code (LDC) words, control data encoded into burst indicating subcode (BIS) words and SYNC data, said LDC words and said BIS words being alternately arranged in physical clusters starting with SYNC data, comprising the steps of: separating said LDC words and said BIS words from said data stream, - decoding said LDC words and correcting errors and erasures in said LDC words, decoding said BIS words and detecting BIS errors in said BIS words, detecting said SYNC data and detecting SYNC errors in said SYNC data, marking erasures for decoding of said LDC words based on said BIS errors and said SYNC errors by marking locations in LDC words adjacent to BIS errors and/or SYNC errors as erasures depending on control settings determining the behavior of the erasure correction.
16. Computer program comprising program code means for causing a computer to perform the steps of the method as claimed in claim 15, when said computer program is executed on a computer.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP05101316.7 | 2005-02-22 | ||
| EP05101316 | 2005-02-22 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2006090302A2 true WO2006090302A2 (en) | 2006-08-31 |
| WO2006090302A3 WO2006090302A3 (en) | 2006-11-09 |
Family
ID=36733329
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2006/050475 Ceased WO2006090302A2 (en) | 2005-02-22 | 2006-02-14 | Error correction of data streams |
Country Status (2)
| Country | Link |
|---|---|
| TW (1) | TW200641814A (en) |
| WO (1) | WO2006090302A2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109841250A (en) * | 2017-11-24 | 2019-06-04 | 光宝科技股份有限公司 | The forecasting system method for building up and operating method of decoded state |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7975208B2 (en) | 2006-12-21 | 2011-07-05 | Mediatek Inc. | Method and apparatus for high speed optical recording |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EA002453B1 (en) * | 1998-07-27 | 2002-04-25 | Конинклейке Филипс Электроникс Н.В. | Encoding multiword information by wordwise interleaving |
| KR20040021039A (en) * | 2002-09-02 | 2004-03-10 | 엘지전자 주식회사 | Method for correcting an error recorded on high density optical disc |
| US7281193B2 (en) * | 2004-09-27 | 2007-10-09 | Mediatek Inc. | Method and apparatus for decoding multiword information |
-
2006
- 2006-02-14 WO PCT/IB2006/050475 patent/WO2006090302A2/en not_active Ceased
- 2006-02-17 TW TW095105509A patent/TW200641814A/en unknown
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109841250A (en) * | 2017-11-24 | 2019-06-04 | 光宝科技股份有限公司 | The forecasting system method for building up and operating method of decoded state |
| CN109841250B (en) * | 2017-11-24 | 2020-11-13 | 建兴储存科技股份有限公司 | Method for establishing prediction system of decoding state and operation method |
Also Published As
| Publication number | Publication date |
|---|---|
| TW200641814A (en) | 2006-12-01 |
| WO2006090302A3 (en) | 2006-11-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1410390B1 (en) | DATA RECORDING METHOD and RECORDING MEDIUM | |
| US7730379B2 (en) | Method and apparatus for error code correction | |
| US7849379B2 (en) | Device and method for determining a defective area on an optical media | |
| US7058875B2 (en) | Method of correcting data on a high-density recording medium | |
| KR19980025094A (en) | Sign error correction / detection decoder | |
| SE465442B (en) | PROCEDURES FOR STORAGE AND READING AND DEVICE FOR READING DIGITAL INFORMATION OPTIONALLY PROTECTED OR NOT PROTECTED BY AN ERROR-CORRECT CODE | |
| JP2009199718A (en) | Data file-transmission method | |
| JP2005293724A (en) | Detection method for error point, error detection circuit using its method, error correction circuit, and reproducing device | |
| JP2004507030A (en) | Method for storing or decoding a bitstream | |
| KR100567361B1 (en) | Copyright protection method, playback method, playback device, recording method and recording device | |
| WO2006090302A2 (en) | Error correction of data streams | |
| CN100385552C (en) | Apparatus for decoding disc read signal and method thereof | |
| KR101001494B1 (en) | Copy Protection for Applications | |
| JP2007527589A (en) | Copy-protected optical disc copy | |
| KR20040017383A (en) | Apparatus and method for modulating address data, apparatus and method demodulating address data therefor, and recording medium for recording modulated address data | |
| KR100315768B1 (en) | Memory access method for high-speed data reproduction and dvd system employing the same | |
| KR100218094B1 (en) | Recording method for optical disc | |
| US20060077841A1 (en) | Method of recording data on optical storage medium and apparatus thereof | |
| KR20090100611A (en) | Data error correction method and apparatus | |
| JP2007287293A (en) | Recording medium playback device | |
| KR19990018767A (en) | Fast initialization method of DVD-RAM disk | |
| HK1127154A (en) | Copy protection for applications |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 06710898 Country of ref document: EP Kind code of ref document: A2 |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 6710898 Country of ref document: EP |