This application is based upon and claims the benefit of priority from prior Japanese Patent Application No. 2004-194937, filed Jun. 30, 2004, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a data processing apparatus and method, which perform a data process including error correction to data read out from an information medium such as an optical disc or the like on the basis the DVD (Digital Versatile Disc) standard and, more particularly, improvement of a data processing apparatus and method, which perform a syndrome calculation.
2. Description of the Related Art
In recent years, DVDs that record and/or play back digital data (a DVD-ROM/R/RW/RAM; or an HD-DVD streamer which digitally records/plays back DVD video for AV, DVD-VR compatible to recording/playback, and MPEG-TS in the near future) have prevailed remarkably. On an optical disc based on the DVD standard, sector data generated based on error correction code (ECC for short) blocks are recorded.
Each error correction code block is made up of a block of information symbols arranged in the column and row directions, inner-code PI parity which is appended to information symbols in the row direction contained in the information symbol block, and outer-code PO parity which is appended to both information symbols in the column direction contained in the information symbol block and the inner-code PI parity. An error correction code in the PO direction has a code length of 208 bytes, an information length of 192 bytes, and a minimum distance of 17. An error correction code in the PI direction has a code length of 182 bytes, an information length of 172 bytes, and a minimum distance of 11.
Sector data generated from such error correction code blocks includes an error correction code, and can undergo error correction using this error correction code (Jpn. Pat. Appln. KOKAI Publication No. 2002-74861).
Also, a technique associated with an error correction process that supports multiple-speed playback is available. That is, a technique for calculating a syndrome for data with a code length of 182 bytes in the PI direction included in playback information parallel to a process for temporarily storing the playback information read out from a DVD on a buffer memory is available (Jpn. Pat. Appln. KOKAI Publication No. 2001-67822).
However, the method of calculating a syndrome parallel to the data write process on the buffer memory (Jpn. Pat. Appln. KOKAI Publication No. 2001-67822) can offer an advantage in coping with high multiple-speed playback, but poses a problem of a measure against sync abnormality in a DVD.
For example, in a DVD, upon conversion of recording data into sector data, data with a code length of 182 bytes in the PI direction form two sync frames. One sync frame includes a sync code (2 bytes) and 91 bytes of the code length of 182 bytes in the PI direction. A DVD system executes a synchronization process for respective sync frames. A sync system suffers abnormality for various reasons such as the state of a servo system of the DVD system, scratches, fingerprints, dust, and the like, and at least one sync frame may be lost or duplicated, or the arrival order of frames may be reversed.
Such trouble of Sync frames often disturbs a calculation of an effective syndrome of a data sequence (the code length of 182 bytes in the PI direction). Even if 91 bytes of one sync frame are correct data, all 182 bytes of both the sync frames may be consequently determined as error data. Such burst error results in an error correction performance drop and causes correction errors.
Also, in a syndrome calculation circuit which performs a syndrome calculation of an error correction code made up of a plurality of sync frames parallel to a write process to a buffer memory like in a DVD, if at least one sync frame is lost or arrives in a wrong order, the syndrome calculation of that data sequence cannot be effectively used, and the error correction performance drops consequently. As a measure against this problem, when an arithmetic circuit is designed to complete a syndrome calculation for each sync frame, a syndrome calculation is effectively realized even when frame loss has occurred (however, it is not a known technique). With this idea, when sync frame data duplication has occurred, second arrived data is ignored, and the process is done using first arrived data. However, with this method, when the first arrived data is wrong and the second arrived data is correct in many cases, uncorrectable cases occur.
A data processing apparatus according to an embodiment of the present invention includes a memory unit (17, 18) which stores information including sync frame data, a preceding calculation system circuit (140P) which performs a syndrome calculation from the information including sync frame data, a retry calculation system circuit (140R) which performs a syndrome calculation from information stored in the memory unit (17), a buffer group (150) which stores the calculation result of the preceding calculation system circuit (140P) or that of the retry calculation system circuit (140R), and a correction execution process system circuit (190) which executes error correction for the information including sync frame data on the basis of the calculation result stored in the buffer group.
According to the embodiment of the present invention, since the retry calculation system circuit (140P) is provided, when sync frame data is duplicated, second arrived data can be processed without being ignored, thus improving the correction efficiency.
Embodiments of the present invention will be described hereinafter with reference to the accompanying drawings.
When sync codes are inserted in the sector data generated in this way at, e.g., 91-byte intervals, a data block with sync codes shown in
In the example of
Data reproduced from disc by read channel 11 undergoes a signal process, and is then transmitted to sync demodulation block 13. Sync demodulation block 13 detects a sync code (see
RAM control block 18 stores the demodulated data output from sync demodulation block 13 in RAM 17. The demodulated data is also input to PI syndrome calculation circuit 14 parallel to the storage process in RAM 17. PI syndrome calculation circuit 14 calculates a syndrome so that the syndrome calculations can be realized by only 91 bytes of the demodulated data.
Arrival history information block 16 generates history information of a frame arrival state on the basis of the address information output from sync demodulation block 13. That is, arrival history information block 16 manages the read-out state of data from the disc for respective sync frames. PI syndrome calculation circuit 14 confirms history information generated by arrival history information block 16 prior to the syndrome calculations of 91 bytes, and always checks if frame loss, frame duplication, or the like has occurred.
Sync demodulation block 13 generates address information on the basis of ID information and sync codes included in data read out from disc 1 while effecting sync protection. If a sync operation does not suffer any abnormality, all pieces of address information sent to arrival history information block 16 assume serial values. Arrival history information block 16 may adopt a configuration for storing all pieces of address information, or a bitmap configuration with addresses of error correction code blocks.
Note that data recorded on DVD disc 1 have undergone an interleave process. Hence, demodulated data do not always arrive in the data arrangement order shown in
Error correction circuit 19 executes an error correction process using the PI syndrome calculation results. For example, when a correction process is executed from a PI sequence, an error pattern and error location are calculated using the PI syndrome calculation results to correct an information error in RAM 17. At this time, if all the PI syndrome calculation results are zero, no error is determined, and an error correction process is skipped.
On the other hand, when a correction process is executed from a PO sequence with a larger code length, a data sequence in the PO direction is read out from RAM 17, and a PO syndrome calculation circuit included in error correction circuit 19 executes syndrome calculations. After that, an error pattern and error location are calculated to correct an information error in RAM 17. In this case, loss correction can be executed by exploiting address information of a data sequence with “non-zero” PI syndrome calculation results, and the correction performance can be improved compared to normal correction.
After all correction processes are completed, and all information errors have been removed from the data in RAM 17, descrambler/EDC block 20 executes a final error check process via RAM control block 18, and data is transmitted to a host via interface 21.
A method of realizing syndrome calculations using data of only 91 bytes will be explained in detail below. In a coding theory used in an error correction process, input data I0 to I181 of a PI sequence are handled as input information equation I(x) given by:
I(x)=I0x181+I1x180+. . . I180x+I181
The syndrome values of the PI sequence are calculated by substituting α0 to α9 as the roots of the Galois field in this input information equation I(x) and are given by:
S0=I(á0)=I0+I1+. . . +I180+I181
S1=I(á1)=I0á181+I1á180+. . . +I180á+I181
S9=I(á9)=I0á9×181+I1á9×180+. . . +I180á9+I181)
If all these syndrome values S0 to S9 are zero, they indicate that reproduction data is free from any errors. However, in order to effect syndrome calculation equations, data of 182 bytes are required.
On the other hand, the above equations of S0 to S9 can be rewritten as:
A formula in the former parentheses of each syndrome calculation equation represents the syndrome calculation result of the first 91 bytes of the PI data sequence. Also, a formula in the latter parentheses represents the syndrome calculation result of the second 91 bytes. That is, in case of the code length of 182 bytes, when the syndrome calculations are completed by the sync frame of the first 91 bytes, the syndrome calculation result of 91 bytes can be multiplied by αn×91 (where n is the syndrome degree). When the syndrome calculations are completed by the sync frame of the second 91 bytes, the syndrome calculation result of 91 bytes can be directly used.
In PI syndrome calculation circuit 14 shown in
Subsequently, syndrome calculations of the second 91 bytes are executed while switches SW1 are flipped to the c side as in the first 91 bytes, and the calculation results are latched by registers D01 to D91 again. Upon completion of the calculations of the second 91 bytes, switches SW1 are flipped to the b side in turn, switches SW2 are flipped to the d side, and switches SW4 are turned on, thus completing the EXORs of the syndrome calculation results of the first 91 bytes and the second 91 bytes. After that, switches SW5 are turned on, thus storing the syndrome calculation results of the PI data sequence with a code length of 182 bytes in PI syndrome buffer 15 (see
A method of coping with a case wherein frame loss has occurred will be explained below. A case will be exemplified below wherein the second 91 bytes have been lost. Such case is detected when the address of the sync frame of the next 91 bytes does not match that of the sync frame of the second 91 bytes while the syndrome calculation results of the first 91 bytes are stored in registers D02 to D92. In this case, the second frame loss is determined, and the calculation results in the registers are stored in PI syndrome buffer 15 as the syndrome calculation results of the PI data sequence of a code length of 182 bytes by flipping switches SW1 to the c side, and turning on switches SW4 and SW5 (see
On the other hand, the loss of the first 91 bytes is detected when an input address indicates that of second 91 bytes upon inputting the first 91 bytes in the normal operation. In such case, syndrome calculations for 91 bytes are made while flipping switches SW1 to the c side, and results are latched by registers D01 to D91. Upon completion of the calculations, switches SW1 are flipped to the b side, switches SW2 are flipped to the d side, switches SW4 are turned off, and switches SW5 are turned on. Then, the calculation results in the registers are stored in PI syndrome buffer 15 as the syndrome calculation results of the PI data sequence of the code length of 182 bytes (see
These syndrome calculation results obtained when data loss has occurred are equivalent to those calculated by using apparent zero data for those lost 91 bytes.
A case will be exemplified wherein the arrival order of frames is reversed. Such frame reverse is detected when the calculation results are temporarily stored in PI syndrome buffer 15 upon detection of a frame loss, but the frame which is determined as the lost frame arrives anew. In such case, the syndrome calculation results stored in PI syndrome buffer 15 must be called back.
For example, when the sync frame of the first 91 bytes arrives anew, switches SW1 are flipped to the c side to execute syndrome calculations for the first 91 bytes as in normal operation, and the calculation results are latched by registers D01 to D91. Parallel to these calculations, switches SW3 are flipped to the g side to call the syndrome results for the second 91 bytes in PI syndrome buffer 15 to latch them by registers D02 to D92. Upon completion of the calculations of the first 91 bytes, switches SW1 are flipped to the a side, and switches SW2 are flipped to the e side. Then, multipliers M1 to M9 multiply the results by αn×91. Also, switches SW4 are turned on to compute the EXORs of the products and the calculation results of the second 91 bytes in registers D02 to D92. After that, switches SW5 are turned on to write the EXORs as the syndrome calculation results of the PI data sequence of the code length of 182 bytes in PI syndrome buffer 15 again (see
Likewise, when the sync frame of the second 91 bytes arrives anew, switches SW1 are flipped to the c side to execute syndrome calculations for the second 91 bytes as in normal operation, and the calculation results are latched by registers D01 to D91. Parallel to these calculations, switches SW3 are flipped to the g side to call the syndrome results for the first 91 bytes in PI syndrome buffer 15 to latch them by registers D02 to D92. Upon completion of the calculations of the second 9.1 bytes, switches SW1 are flipped to the b side, switches SW2 are flipped to the d side, and switches SW4 are turned on. Then, the EXORs of the calculation results in registers D01 to D91 and the calculation results of the first 91 bytes in registers D02 to D92 are computed. After that, switches SW5 are turned on to write the EXORs as the syndrome calculation results of the PI data sequence of the code length of 182 bytes in PI syndrome buffer 15 again (see FIG. SE).
Next, a case will be explained below wherein frame duplication has occurred. Frame duplication is detected when a frame with an identical address arrives again. In this case (in one embodiment), PI syndrome calculation circuit 14 recognizes re-arrival of the identical address on the basis of the history information of arrival history information block 16, and skips the calculation process by ignoring the data of 91 bytes. Note that a case (another embodiment) wherein a syndrome calculation process is executed “when frame duplication has occurred” will be described later with reference to
As described above, the circuit blocks with the arrangement shown in
When this PI syndrome calculation circuit 14 is used, matching with RAM 17 that stores playback information as main data must be taken account. In case of frame loss, PI syndrome calculation circuit 14 executes processes using apparent zero data. For this reason, when a DRAM or the like is used as RAM 17, data other than zero data may remain stored in RAM 17 as garbage data. For this reason, error correction circuit 19 pads data on the RAM at the lost address with zero data on the basis of the information of arrival history information block 16 prior to the error correction process. When both the first and second sync frames have been lost, data in PI syndrome buffer memory 15 must also be taken account. If extra data remain stored, they are similarly padded with zero data.
In such case, data appears to suffer no information error since syndromes are zero data. For this reason, when erasure correction of a PO sequence is used, the history information of arrival history information block 16 is used in addition to information indicating that syndromes are “not zero”, thus preventing correction errors due to this process.
If it is detected based on the arrival history information stored in arrival history information block 16 that all data of the code length have been lost (YES in step S4), extra data in PI syndrome buffer memory 15 are padded with zero data (step S5). An error correction process is executed using the data in PI syndrome buffer memory 15 and the arrival history information stored in arrival history information block 16 (step S6).
Characteristic features of the embodiment of the present invention described above will be summarized below.
(a) A data processing apparatus and method according to the present invention can complete syndrome calculations as an error correction code for each sync frame. For this reason, even when frame loss or the like has occurred due to abnormality in a sync system, syndrome calculation results parallel to the data write process on the buffer memory can be effectively used. Furthermore, diffusion of errors due to sync system abnormality can be prevented, and an error correction performance drop caused by such diffusion of errors can also be prevented.
(b) A data processing apparatus and method according to the present invention have an arrival history of sync frames. Hence, frame loss, frame duplication, reverse of the order of frames can always be recognized. Then, a syndrome calculation process that can cope with these problems of frame loss, frame duplication, reverse of the order of frames can be selectively executed.
(c) A data processing apparatus and method according to the present invention prevent correction errors using arrival history information of sync frames in addition to the syndrome calculation results, thus implementing more reliable error detection and error correction.
More specifically, in the arrangement in
More specifically, preceding calculation system circuit 140P in
The system arrangement of
(1) First-Come-First-Served Basis Mode (Preceding Calculation Results are Valid)
This mode requires higher multiple-speed playback. In order to give priority to the preceding syndrome results by preceding calculation system circuit 140P, if a sync frame is duplicated (if a sync abnormality has occurred), the former (first arrived sync frame) is prioritized, and the latter (second arrived sync frame) is ignored. On the memory (DRAM) 17 side as well, the former is prioritized and the latter is ignored to attain matching.
(2) Overwrite Permission Mode (Retry Calculation Results are Valid if Sync Frame is Duplicated)
This mode is used when an error rate is emphasized. When a sync frame is duplicated, the latter (second arrived sync frame) is overwritten (in preference to the first arrived sync frame). If sync frame duplication has occurred, hardware (corresponding to arrival history information block 16 in
Data output from sync demodulation block 13 is sent to memory (DRAM or the like) 17 via preceding calculation system circuit 140P and memory control block 18 (path<1>). Preceding calculation system circuit 140P executes processes such as syndrome calculations and the like on the basis of incoming data. During these processes, data from sync demodulation block 13 is stored in DRAM 17. If hardware detects sync frame duplication during this data transfer, if an ECCOVW signal is enabled (e.g., ECCOVW=1, i.e., “overwrite permission mode”), DRAM 17 stores data from sync demodulation block 13 to overwrite old data.
If sync frame duplication has occurred in the overwrite permission mode, the calculations made by preceding calculation system circuit 140P are invalidated, and retry calculation system circuit 140R makes new syndrome calculations using data on DRAM 17 (path<2>). The calculation results are stored in storage buffer group 150 to update data. After that, correction execution process system circuit 190 executes a correction execution process using the updated data (path<3>). Finally, data after the correction process is output to the host side via descrambler circuit 20 and interface 21 (path<4>).
When the arrangement of
On the other hand, if sync abnormality shown in
<Overwrite Permission Mode and First-Come-First-Served Basis Mode>
When sync frame data duplication has occurred (
<Use Retry Calculation Results in ECC if Duplication has Occurred>
It is inspected if sync frame data duplication has occurred. If duplication is found (YES in step ST102), correction execution process system circuit 190 uses the calculation results of retry calculation system circuit 140R in place of those of preceding calculation system circuit 140P.
<Use Preceding Calculation Results in ECC if No Duplication Occurs>
If no sync frame data duplication occurs (NO in step ST102), system controller 22 controls correction execution process system circuit 190 to use the calculation results of preceding calculation system circuit 140P.
Preceding calculation system circuit 140P performs preceding PI and PI syndrome calculations (140P3, 140P4), confirmation of PI and PO error flags, and preceding EDC calculations (140P1, 140P2). These calculation results are stored in respective storage buffers (syndrome calculation results are stored in SRAMs 153 and 156; error flags are stored in flip-flops FF 154 and 155; and EDC calculation results are stored in SRAM 152). Arrival of data transferred from sync demodulation block 13 is confirmed, and the confirmation result is stored in arrival flag storage FF 151. The flag stored in FF 151 is transferred to system controller 22. With this flag, system controller 22 can detect that data from sync demodulation block 13 reach decode system module 100. Note that each of SRAMs 153 and 156 in storage buffer group 150 has two ports to simultaneously handle read and write.
Retry calculation circuit system 140R is a path for making syndrome and EDC calculations again due to failure of the preceding calculation system. Input data of retry calculations use data which is directly written in memory (DRAM or the like) 17 from sync demodulation block 13. As in the preceding calculation system (140P), respective calculation results are stored in the storage buffers (152 to 156).
After syndrome, EDC and error flag calculation results are stored in the five storage buffers (152 to 156), correction execution process circuit 191 in correction execution process system circuit 190 executes a correction process (decode system process) using these storage data, and the processing result is stored in error pattern/error location storage buffer 192. As a result, only error pattern and error location data are transferred to memory control block 18. In DRAM 17, a correction process is applied to data which have already been held and include errors, using the correction information (error pattern and error location), thus completing error correction.
Note that numerals in parentheses such as SRAM(2), FF(2), and the like in the intra-block descriptions of buffers 152 to 156 in
By contrast, the retry calculation system (140R) and correction execution process system (190) are asynchronously implemented in view of processing units since they are controlled at requested start and end timings. Therefore, these two processes may operate parallelly. If these processes occur at the same time, it is difficult for one buffer to store the results of the cyclic process and asynchronous process. Hence, each of five storage buffers (see 152 to 156 in
An operation example using storage buffer group 150 in
As for this asynchronous process, if a plurality of processes (retry calculation system and correction execution process system), as shown in
According to the aforementioned embodiment,
In a normal operation with a lower error rate (free from any sync abnormality), access to memory (DRAM) 17 is minimized using preceding calculation system circuit 140P, while when an error rate is high (sync abnormality has occurred), highly reliable retry calculation system circuit 140R can be used.
Even when sync frame duplication as sync abnormality has occurred, since a correction process can be executed using the second arrived sync frame data, the correction efficiency can be improved. Since retry calculations are made while effecting preceding calculations, the processing can be made without any processing speed drop.
(1) A data processing apparatus according to an embodiment of the present invention comprises a syndrome calculation means (syndrome calculation circuit 14 in
(2) The data processing apparatus according to an embodiment of the present invention comprises ECC decode system module 100 which incorporates preceding calculation system circuit 140P and retry calculation system circuit 140R. When sync frame data duplication has occurred, this module 100 can execute processes without ignoring second arrived data, thus improving the correction efficiency.
(3) Furthermore, ECC decode system module 100 includes a plurality of systems of storage buffer groups (in
(4) Moreover, a plurality of circuits (preceding calculation system circuit and retry calculation system circuit) can be selectively used in correspondence with the playback speed.
(5) In addition, the plurality of circuits can be selectively used in accordance with an error counter (e.g., one frame loss in step S2 in
(6) Also, the plurality of circuits can be selectively used while monitoring power consumption. (More specifically, in a battery-driven portable device or the like, the preceding calculation system circuit is used in a long life mode which is used to prolong the battery life, and energization to the retry calculation system circuit system circuit is cut).
Note that the present invention is not limited to the aforementioned embodiments, and various modifications may be made on the basis of techniques available at that time without departing from the scope of the invention when it is practiced at present or in the future. The respective embodiments may be combined as needed as long as possible, and combined effects can be obtained in such case. Furthermore, the embodiments include inventions of various stages, and various inventions can be extracted by appropriately combining a plurality of required constituent elements disclosed in this application. For example, even when some required constituent elements are deleted from all the required constituent elements disclosed in the embodiments, an arrangement from which those required constituent elements are deleted can be extracted as an invention.
Number | Date | Country | Kind |
---|---|---|---|
2004-194937 | Jun 2004 | JP | national |