Source: http://www.google.com/patents/US6321351?ie=ISO-8859-1
Timestamp: 2016-02-08 13:02:13
Document Index: 613492865

Matched Legal Cases: ['art 64', 'art 66', 'art 72', 'art 74', 'art 86', 'art 66', 'art 74']

Patent US6321351 - Method and apparatus for detecting errors in DVD data - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA method and apparatus for processing data read from a DVD media containing stored data is described. The apparatus includes a DVD media reader for reading data and error information stored on a DVD media, an error processor for determining the number of errors in the read data, and a display means for...http://www.google.com/patents/US6321351?utm_source=gb-gplus-sharePatent US6321351 - Method and apparatus for detecting errors in DVD dataAdvanced Patent SearchPublication numberUS6321351 B1Publication typeGrantApplication numberUS 09/270,426Publication dateNov 20, 2001Filing dateMar 16, 1999Priority dateMar 16, 1999Fee statusPaidPublication number09270426, 270426, US 6321351 B1, US 6321351B1, US-B1-6321351, US6321351 B1, US6321351B1InventorsChris T. Brown, Tina T. Peng, Sheena F. Shi, Arup K. BhattacharyaOriginal AssigneeOak TechnologyExport CitationBiBTeX, EndNote, RefManPatent Citations (4), Referenced by (7), Classifications (30), Legal Events (9) External Links: USPTO, USPTO Assignment, EspacenetMethod and apparatus for detecting errors in DVD data
US 6321351 B1Abstract
A method and apparatus for processing data read from a DVD media containing stored data is described. The apparatus includes a DVD media reader for reading data and error information stored on a DVD media, an error processor for determining the number of errors in the read data, and a display means for displaying the number of errors. The method includes the steps of reading actual data from a DVD media, computing a first correction code for the actual data, reading a second correction code from the DVD media, the second correction code pertaining directly to said stored data, and comparing the first and second correction codes to determine whether said actual data needs to be corrected. The method further includes the steps of determining whether the number of errors in the actual data exceeds the number of errors that can be corrected, correcting the actual data if possible, and counting the number of errors that are corrected.
What is claimed is: 1. A method for processing data read from a DVD media containing stored data, the method comprising:
reading actual data from a DVD media; computing a first correction code for said actual data; reading a second correction code from the DVD media, said second correction code pertaining to said stored data; comparing said first correction code to said second correction code to determine whether said actual data needs to be corrected; determining whether the number of errors in said actual data exceeds the number of errors that can be corrected; correcting, if said number of errors in said actual data does not exceed the number of errors that can be corrected, said actual data; counting the number of errors in said actual data that are corrected; and forming a data structure, relating to the actual data and comprising: at least one bit indicating whether errors in said actual data were corrected in the correcting step; and at least two bits indicating the number of errors corrected in the actual data. 2. The method of claim 1, further comprising choosing said at least two bits to be at least five bits.
3. A DVD processing apparatus comprising:
means for reading actual data from a DVD media; means for computing a first correction code for said actual data; means for reading a second correction code from the DVD media, said second correction code pertaining to said stored data; means for comparing said first correction code to said second correction code to determine whether said actual data needs to be corrected; means for determining whether the number of errors in said actual data exceeds the number of errors that can be corrected; means for correcting, if said number of errors in said actual data does not exceed the number of errors that can be corrected, said actual data; means for counting errors in said actual data that are corrected; and counting means that provides at least one of (i) at least one bit indicating whether errors in the actual data where corrected by the correcting means and (ii) at least two bits indicating number of errors corrected in the actual data. 4. The apparatus of claim 3, wherein said counting means provides at least five bits indicating said number of errors corrected in said actual data.
Modern electronic systems such as video playback machines and computers often employ Compact Disk Read-Only Memory (CD-ROM) or DVD for storing large amounts of data such as video or audio data.
DVD's are a type of storage media utilized for video and audio data as well as large software systems. Like CD-ROM media, a DVD media is read using a player or reader designed for that purpose.
Information is stored on DVD media in digital form, resulting in data that is either a one (1) or a zero (0). Those of ordinary skill in the art are readily aware that DVD media contain areas of high reflectivity (land) and low reflectivity (pit). When read with a laser, a transition from land to pit or from pit to land represents a “1”, and all other areas represents a “0”.
During the process of writing data to a DVD media, Reed-Soloman error correction codes and other error mechanisms known to those of ordinary skill in the art are also written. When the data is later read back, these correction codes may be compared with actual correction codes which are computed from the actual data read from the DVD to determine whether one or more errors have occurred. Depending on the differences between the correction codes read from the DVD media and the correction codes computed from the actual data, errors in the actual data may be correctable.
In this disclosure, the term “correction code” shall refer to Reed-Soloman correction codes, checksums in general, and any other data structure used by those of ordinary skill in the art to determine if data has been accurately read from a storage media.
Referring to FIG. 1, processing system 10 comprises a signal processor 12 which receives data 14 from a DVD media. Processor 12 examines the input data block and determines whether there are errors. If so, processor 12 corrects those errors that are correctable, and then stores the corrected data in memory 16.
FIG. 2 depicts a typical arrangement of a data block after being processed by a DVD signal processor.
Referring to FIG. 2, a typical data block 14 (from FIG. 1) comprises 208 rows (e.g. rows 20, 22) of 182 bytes each. Reading the block from left to right and from top to bottom in sections, each section includes 12 rows of data bytes, each row including 172 actual data bytes plus 10 bytes of correction data information, the correction data relating to the preceding 172 actual data bytes. The correction data at the end of each row is known to those of ordinary skill in the art as inner-code parity (PI) data.
Every thirteenth row in a section includes error data 22 which is commonly called outer code parity (PO) data. Although this correction data is interleaved with actual data, PO data is processed as columns. Thus, just as there are 172 user data bytes and ten PI error data bytes per row, there are 182 columns, each column having 192 user data bytes and 16 error data bytes.
Within every thirteenth row of data beginning with the first row there is a three-byte sector number which identifies the sector number of the data stored therein. Such a sector number is stored in the location depicted in FIG. 2. There are 16 sector numbers within each ECC block. Therefore, a block number is the most significant 20 bits of a 24 bit sector number (the sector number divided by 16), and may be represented as five hexadecimal digits.
The prior art apparatus is useful for its intended purpose of handling and managing PI and PO data and the error rate data produced by signal processor 12. However, there are significant delays which are inherent in the prior art apparatus due to the necessity of storing the data in memory prior to operating on the corrected data. Further, there is no defined method for outputting the error rate data using an efficient data structure for later processing.
A method and apparatus for processing data read from a DVD media is described. The apparatus includes a DVD media reader for reading data and error information stored on a DVD media, an error processor for determining the number of errors in the read data, and a display means for displaying the number of errors. The method includes the steps of reading actual data from a DVD media, computing a first correction code for the actual data, reading a second correction code from the DVD media, and comparing the first and second correction codes to determine whether the actual data needs to be corrected. The method further includes the steps of determining whether the number of errors in the actual data exceeds the number of errors that can be corrected, correcting the actual data if possible, and counting and displaying the number of errors that are corrected.
FIG. 4 shows a data structure employed with one embodiment of the present invention.
FIG. 5 is a block diagram of one embodiment of the present invention error rate apparatus.
FIG. 6 is a signal transition chart showing the relationship of various signals on the output of one embodiment of the error rate apparatus of FIG. 5.
FIG. 7 is a block diagram of an electronic system employing the present invention error rate apparatus.
FIG. 8 is a block diagram showing details of the error-rate display apparatus of FIG. 7.
Referring to FIG. 3, system 30 comprises a processor 32 having data block 14 (as first seen in FIG. 1) as an input, and corrected data memory 16 as an output. However, unlike the prior art, instead of the corrected data, PI data, and PO data being transmitted only to memory 16, error rate apparatus 34 also receives error rate data over input lines 36. The output of error rate apparatus 34 is provided on output lines 38. The signals on input lines 36 and output lines 38 each comprise a buse, with each bus having one or more signal lines.
By determining the error content of the data read from the DVD media and then packaging that error content in an efficient serial format which uses only four output lines, the present invention provides error rate information to devices which require it without requiring that those devices have access to memory. Further, since memory read and write operations are not required, the data is accessed more quickly, saving valuable time and allowing the analysis of error information earlier than was possible with the prior art.
Computing correction data corresponding to the actual data read from a DVD media and comparing the result to correction data present in the data read from the DVD media are processes that are known to those of ordinary skill in the art. However, processor 32 additionally tracks the number of errors corrected in each row data set (PI data set) or column data set (PO data set), and then presents the number of corrections, together with other information, to an output data stream.
Processing of PI data for any given data block is accomplished in its entirety and then PO data processing takes place for that same block. Many data blocks are processed in any given session. While error rate apparatus 34 processes PO data for a given block, error rate apparatus 34 processes PI data for the succeeding block, in order to maximize data throughput.
Referring to FIG. 4, processor 32 (from FIG. 3), after correcting all correctable data for a given row or column (depending on whether PI or PO data is currently being processed), will provide data structure 50 on its output. Data structure 50 comprises bits 52 representing the number of errors in the read data, bit 54 representing whether the read data had to be corrected, and bit 56 indicating a sync lost condition. A sync lost condition exists when a predetermined number of sectors has been processed without the processor detecting a sync pattern in the read data.
Although in one embodiment bit 54 is high when actual read data must be corrected, and low when the actual read data is correct when read from the DVD media, those of ordinary skill in the art will readily recognize that either logic level (high or low) may represent either condition (corrected or uncorrected), at the discretion of the system designer.
In one embodiment, bit 56, the sync lost bit, is set high when synchronization with the DVD media data stream is lost. Thus, if a given number of consecutive sectors have been processed without the processor detecting a sync pattern (thus indicating the start of a new row of data), the sync lost bit is set high, and further processing of read data is inhibited.
In this disclosure, signals are characterized as being asserted and deasserted. Those of ordinary skill in the art would be readily aware that signals may be asserted high or asserted low depending on the needs of the designer of the system. Correspondingly, a signal may be deasserted low or high, depending on the needs of the designer. Those of ordinary skill in the art will appreciate that systems employing either of the alternatives remain within the scope and purpose of the present invention.
Referring to FIG. 5, error rate apparatus 34 is typically an application-specific integrated circuit (ASIC) having, as inputs from processor 32, a global reset line 60, clock 62, PI ECC start 64, PI info start 66, PI information lines 68, sync interrupt 70, PO ECC start 72, PO info start 74, PO information lines 76, Block ID lines 78 and ID valid line 80. Outputs from error rate apparatus 34 are select line 82, block reset 84, info start 86, data line 88, and clock 90.
Error rate apparatus 34 includes PI manager 92, PO manager 94, and output manager 96 to manage the receipt of PI data, the receipt of PO data, and the timing of output signals respectively.
Global reset line 60, is asserted by processor 32 when the system first initializes, indicating to error rate apparatus 34 that processor 32 is ready to begin transmitting data.
A clock signal is provided by a system clock on clock line 62 to synchronize data transfers between processor 32 and error rate apparatus 34.
PI ECC start line 64 is asserted for one clock cycle each time processing for a new data block takes place. For example, FIG. 2 represents a typical data block. Each time processing is started for a new data block such as the data block described with respect to FIG. 2, PI ECC start line 64 is asserted for one clock cycle.
PI info start 66 is asserted for one clock cycle each time a new seven-bit PI information is transferred.
PI information lines 68 are asserted or deasserted as required to provide the FIG. 4 data structure which indicates whether data was corrected, how many errors existed, and whether a sync lost condition exists.
Sync interrupt line 70 is asserted by processor 32 when a preset number of data elements have been received without detecting a sync pattern.
PO ECC start line 72, PO Info Start line 74, and PO information lines 76 operate in the same manner as PI ECC Start line 64, PI Info Start line 66, and PI information lines 68 respectively, except that these lines operate on PO data, rather than PI data.
Block ID lines 78 are utilized to transmit the block identifier of the ECC block to which the current data pertains. ID valid line 80 is asserted when the information presented by the processor to error rate apparatus 34 on block ID lines 78 is valid. Alternatively, PI info Start line 66 or PO info Start 74 may be used to trigger acceptance of the data present on the Block ID lines 78, and either of the PI information lines 68 or the PO information lines 76 respectively, depending on whether it is PI or PO data which is being operated upon at the time.
Select line 82 on the output of error rate apparatus 34 is used to indicate the character of data on the output. For example, in one embodiment if PI data is being transferred, select line 82 asserted. In that same embodiment, if PO data is being transferred, select line 82 will be deasserted. Those of ordinary skill in the art would readily recognize that signal lines may be asserted high or low, and that a signal may be asserted or deasserted to indicate a given condition while remaining within the scope and purpose of the present invention.
Block reset line 84 is asserted for one clock cycle when the first piece of PI data corresponding to a data block is transmitted, and also when the first piece of PO data corresponding to a data block is transmitted. Immediately thereafter, the block ID of the data block transmitted by output manager 96 over data line 86.
The determination, by an external device, of whether the block reset signal and the block ID transmitted thereafter pertain to PI or PO data is made by examining the state of the select line 82 at the time the block reset line is asserted. In this example, if select line 82 is asserted at the time the block reset line is asserted, the block ID transmitted thereafter pertains to PI data. Thus, if select line 82 is deasserted at the time the block reset line is asserted, the block ID transmitted thereafter pertains to PO data.
Info start line 88 is asserted by error rate apparatus 34 whenever a PI or PO data stream is to be transferred over data line 88 to an external device.
Clock line 90 is optionally provided at the output of error rate apparatus 34 in order to synchronize the output data with a receiving device. Alternatively, a single clock signal may be provided so that all system components are synchronized.
Those of ordinary skill in the art would readily recognize that power and ground conductors (not shown) must also be provided to the system components in order for them to operate properly. These conductors are not shown in order to avoid complicating this disclosure.
Referring to FIG. 5 and FIG. 6, clock signal 98 is provided on clock line 90 as previously seen in FIG. 5.
At time 100, block reset signal 102 is pulsed high for one clock cycle, and select signal 104 is low, the signals together indicating that the next data information to be transferred is the block ID for the PO data to follow. Data is transmitted, one bit per clock cycle, on data lines 86, giving the receiving device the ID data.
At time 106, block reset signal 102 is raised high, as is select signal 104, the signals together indicating that the next set of PI data will pertain to the block ID transferred immediately thereafter.
At time 108, select signal 104 is raised high, as is info start signal 110, indicating that the transfer of a PI data structure will follow.
At time 112, select signal 104 is low, and info start signal 110 is high, indicating that a transfer of a PO data structure will follow.
The transfer of data proceeds as outlined until all PO data for a given block, and the PI data for the succeeding block has been transferred. Although all PI data is received sequentially, and all PO data is received sequentially, PI data and PO data may be mixed in any combination. For instance, PI data corresponding to block number 0x35201H will be transmitted sequentially beginning at line 0 and ending at line 207, but that data may be intermixed with PO data from block number 0x35200H. The intermixed PO data is also transmitted sequentially beginning at column 0 for each line, and ending at column 181 for each line, moving to the next column, and so on.
The previous example assumed that correctable errors were present following the correction of PI data, and therefore, there would be PO error rate information. However, it is possible that all errors which were present during the analysis of PI data were corrected. In this instance, processor 32 doesn't send PO correction data. However, any external device which receives data from error rate apparatus 34 needs PO data information. Therefore, error rate apparatus sends internally generated data which tells external devices that all of the PO data is correct and no further corrections are required.
Several methods exist for determining when all PI data is corrected. One method is to track all PI data structures. If all PI data structures, as seen in FIG. 4, contain X0XXXXX2, where the X's indicate any bit value, all data has been corrected, and there are no further corrections to be made. Thus, no PO error information need be transmitted. A second method involves a signal sent from processor 12 to error rate apparatus 34 on optional signal line 114. Those of ordinary skill in the art will appreciate that many other methods for signaling to error rate apparatus 34 that all data has been corrected, without departing from the scope or purpose of the present invention.
A second alternative condition may exist where there are so many errors that all of the data for a given ECC block is uncorrectable. In this case, PO data need not be examined, if the determination of uncorrectability was made while PI data for that block was being examined. According to one DVD specification, more than sixteen instances of a row of data having more than five errors in a given sector means that the PO data correction is not possible. If the processor 12 determines that more than the acceptable numbers of errors exist during PI correction, it may signal, by asserting optional signal line 116 (in FIG. 5), that error rate apparatus 34 needs to generate internally generated PO error codes. These PO error codes would include X1100002, indicating that the column data is uncorrectable, but that the actual number of errors is unknown.
Those of ordinary skill in the art will readily recognize that there may be one or more clock cycles wherein no data is transferred, or there may instead be no “idle” clock cycles, depending on the timing of the arrival of data at the input of error rate apparatus 34.
Referring to FIG. 7, system 118 includes DVD Drive 120, display apparatus 122, and optional computer system 124. Drive 120 includes error rate apparatus 34 of FIG. 5.
Computer system 124 may or may not be required, depending on the specific analysis desired by a designer and user of the system. Those of ordinary skill in the art would readily recognize that signal lines 126 may be designed to accommodate any known computer communications protocols, such as RS-232.
Display apparatus 122 includes data processing apparatus 130, displays 132, 134, 136, 138, and 140, LED 142, and registers 144, 146, 148, and 150. Registers 144, 146, 148 and 150 are provided so that the number of errors and uncorrected rows and columns may be tracked for each group of ECC blocks. In the described embodiment, register 144 and display 134 each relate to the number is PI errors corrected for a given group. Correspondingly register 146 and display 136 relate to the number of PI rows which were uncorrectable, register 148 and display 138 relate to the number of PO errors corrected, and register 150 and display 140 relate to the number of PO columns having uncorrectable data.
Display apparatus 122 is utilized so that a human user of the system may know the reliability of data being received from DVD drive 112. The speed of DVD drives is generally related to a standard speed known to those of ordinary skill in the art. Therefore, a 1X drive is receiving and processing data at the standard speed, and a 4X drive receives and processes data at four times the standard speed.
At the standard speed, a typical ECC block will be read and processed every 23.7 ms. If the data corresponding to individual blocks were displayed, the displays would change too rapidly for a user to make any meaningful use of the data. Therefore, display apparatus 130 tracks error data for groups of ECC blocks. Such groups may be 50, 100, 200, or 400 blocks in size, or may be other sizes, depending on individual needs. In the example which follows, it is assumed that the size of block groups being processed and displayed is 100 blocks.
Data processing apparatus 130 includes data tracker 152, display manager 154, and error analyzer 156.
When a block reset occurs as described in FIG. 6, data tracker 152 determines if the current block is the first block in a new group of 100 blocks. If so, the block number displayed by display 132 is updated to reflect the most significant digits of the first block of the current group of 100 blocks. The display may present numerical information in any format desired by the user, such as hexadecimal, binary, or decimal. However, the current industry preference for discussing and presenting block numbers is hexadecimal.
If the display is designed to provide information in the industry-preferred hexadecimal format, a “0” may be hard coded to be displayed as the least significant digit, if the user desires that the sector number of the first block be displayed, rather than the block number. The 20-bit block number transmitted following a block reset signal is displayed as the five most hexadecimal digits of the sector number.
If the current block is the first block in a group, registers 144, 146, 148 and 150 are initialized to zero, and the respective ones of displays 134, 136, 138, and 140 are updated by display manager 146.
As PI and PO data is received from error rate apparatus 34 by data tracker 152, the character of the data is determined by error analyzer 156 as discussed with respect to FIG. 6, and the proper register is updated. For example, if the incoming data reflects PO information which indicates that a given number of errors were correctable and therefore corrected, error analyzer would retrieve the current value of register 148, increment that value by “1”, restore that new value in register 148. The display manager would then display the new value on display 138.
In a like manner, if the incoming data reflects a PI information which indicates that a given number of errors were correctable and therefore corrected, that number is added, using error analyzer 156, to the current value of register 144, and subsequently displayed on display 134.
Registers 146 and 150, together with displays 136 and 140, relate to the number of PI rows and the number of PO rows having uncorrectable errors respectively.
Optional communications manager 158 is provided in order to interface data processing apparatus 130 to an external computer or other microprocessor-based device for more detailed analysis of error data, if desired. For example, a manufacturer may wish to know the error content of data stored on a particular area of a DVD media. Employing an external computer would allow that manufacturer to store error data specific to that region of the media, and then display the associated error information on a row, column, sector, or block level.
Alternative embodiments of the display apparatus 122 disclosed herein include a switching means which would allow an operator of the system to select, using software or hardware, a custom number of blocks to include in a group.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4617664 *Jun 29, 1984Oct 14, 1986International Business Machines CorporationError correction for multiple bit output chipsUS4969139 *Mar 2, 1988Nov 6, 1990Matsushita Electric Industrial Co., Ltd.Optical information recording and reproducing apparatus having an improved detection system for detecting fouling of a disk or an internal optical systemUS5487077 *May 23, 1994Jan 23, 1996International Business Machines CorporationLocation dependent variable error correction processing for multi-track recording media using variable length coding meansUS6092231 *Jun 12, 1998Jul 18, 2000Qlogic CorporationCircuit and method for rapid checking of error correction codes using cyclic redundancy check* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS6675345 *May 12, 2000Jan 6, 2004Oak Technology, Inc.Method and apparatus for detecting errors in DVD dataUS6760878 *Jul 2, 2001Jul 6, 2004Mitsubishi Denki Kabushiki KaishaInformation reproduction apparatusUS6910174 *Jun 1, 2001Jun 21, 2005Dphi Acquisitions, Inc.Error correction code block formatUS7213192 *Sep 8, 2004May 1, 2007Fujitsu LimitedMethods and apparatus for correcting errors in data read from a disk driveUS20020104057 *Jul 2, 2001Aug 1, 2002Noboru YashimaInformation reproduction apparatusUS20030028847 *Jun 1, 2001Feb 6, 2003Keeler Stanton M.Error correction code block formatUS20060053360 *Sep 8, 2004Mar 9, 2006Fujitsu LimitedMethods and apparatus for correcting errors in data read from a disk drive* Cited by examinerClassifications U.S. Classification714/704, 714/E11.025, G9B/20.051, 714/57, 714/E11.004, G9B/27.051, G9B/20.05, G9B/27.052, 714/769International ClassificationG11B27/34, G11B27/36, G06F11/07, G06F11/00, G11B20/18Cooperative ClassificationG06F11/0727, G11B2220/2562, G11B2020/1836, G06F11/076, G11B20/1813, G11B20/1816, G06F11/0772, G11B27/34, G11B27/36European ClassificationG06F11/07P2A2, G06F11/07P4B, G06F11/07P1F, G11B20/18C, G11B27/36, G11B27/34, G11B20/18B2Legal EventsDateCodeEventDescriptionApr 21, 1999ASAssignmentOwner name: OAK TECHNOLOGY, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BHATTACHARYA, ARUP K.;REEL/FRAME:009897/0722Effective date: 19990309Jul 12, 1999ASAssignmentOwner name: OAK TECHNOLOGY, INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, CHRIS;SHI, SHEENA;PENG, TINA;REEL/FRAME:010083/0845Effective date: 19990304Nov 28, 2003ASAssignmentOct 19, 2004ASAssignmentMay 20, 2005FPAYFee paymentYear of fee payment: 4May 20, 2009FPAYFee paymentYear of fee payment: 8Jan 18, 2012ASAssignmentOwner name: CSR TECHNOLOGY INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZORAN CORPORATION;REEL/FRAME:027550/0695Effective date: 20120101Mar 14, 2013FPAYFee paymentYear of fee payment: 12Sep 21, 2015ASAssignmentOwner name: CSR TECHNOLOGY INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZORAN CORPORATION;REEL/FRAME:036642/0395Effective date: 20150915RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services