Testing C2 information
1. Introduction
Testing C2 Error Information - Page 1
Introduction
When a drive can report C2 error pointers with high accuracy, it can be used to extract Audio tracks accurately, since the software knows where the error occurred and corrected or not. The software can re-read the specific sector many times until it gets the correct extracted data or use special algorithms to correct the un-corrected data. Software like PlexTools and EAC supports such extraction mode.
- C2 pointers vs. C1/C2 measurement
We have to make a note between C2 error pointers from the C1/C2 error measurement.
In general, the readers usually can correct errors with data discs. C2 errors in most times are not "real" errors (scratches) but warnings that the condition of our disc is not in the best shape. A good cleaning of our disc could improve the readability. If too many C2 errors occur, the reader will report a read error.
When more than two bytes are corrupt at the C2 encoder, then the data is passed on to a concealment circuit on the CD drive. This circuit uses different methods to conceal the error. Most new drives will pass the data through a concealment circuit, usually only drives made before 1998 do not so...
All drives can read C1/C2 errors from a disc, when using the proper software commands. When reading C1/C2 errors, the data is not passed through the concealment circuit, so we can measure the C1/C2 errors as reported from the drive.
A drive that has low C2 % error accuracy doesn't mean it's not useful for reading C1/C2 errors, but it's not the best solution for extracting Audio tracks. A drive with high C2% error accuracy would be ideal, since its results would be more absolute comparable. As you may understand, the C2 errors reported from various drives with the same disc will vary between them. The different optics, board design and different firmware affect the C2 error results.
- Retrieving C2 Error information
There are two methods can get C2 error data:
- By using the ATAPI "ReadCD" command (0xBE) error flag bit.
According to the MMC standard, a bit is associated with each of the 2352 bytes of main channel where: 0 = No C2 error and 1 = C2 error. The resulting bit field is ordered exactly as the main channel bytes. Each 8-bit boundary defines a byte of flag bits. The below C2 Errors code provides for the inclusion of fabricated information based upon the results of C2 error correction (on main channel). For Read CD command, the return 294 byte C2 flag data each bit indicates 2352 byte each byte C2 error. That means 294 X 8 = 2352 bit C2 error status.
C2 Errors Code
|
Numbers of bytes
|
Definition
|
Description
|
00b
|
0
|
None
|
No error information will be included
in the data stream
|
01b
|
294
|
C2 Error Flag data
|
The C2 Error Flag (pointer) bits (2352
bits or 294 bytes) will be included in the data stream. When the C2 Error
pointer bits are included in the data stream, there will be one bit for
each byte in error in the sector (2352 total). The bit ordering is from
the most significant bit to the least significant bit in each byte. The
first bytes in the sector will be the first bits/bytes in the data stream.
|
10b
|
296
|
C2 & Error Flag data
|
Both the C2 Error Flags (2352 bits or
294bytes) and the Block Error Byte will be included in the data stream.
The Block Error byte is the OR of all the C2 Error flag bytes. So that
the data stream will always be an even number of bytes, the Block error
byte will be padded with a byte (undefined). The Block Error byte will
be first in the data stream followed by the pad byte
|
11b
|
|
Reserved
|
Reserved for future enhancement
|
If a drive doesn't report C2 errors according to the MMC, but does support C2 error information, both software will give a 0 score. In that cases we cannot test the C2 error information since special commands are needed to retrieve (and test) the C2 error information level.
The second is by using each vendor unique command(s). For vendor unique command, each command return data include C1 error and C2 error in 75 Blocks (1 Second) data.
- 1 Second = 75 Blocks
- 1 Block = 98 frames = 2352 bytes
- 1 frame = 24 bytes + 4 bytes C1 parity + 4 bytes C2 parity
That means 1 frame include 1bit C1 and 1 bit C2 parity result. So, the C1 maximum error is 75blocks X 98 frame = 7350 C1 error. The C2 maximum error is 75blocks X 98 frame = 7350 C2 error.
The C1, C2 error output is selectable, include before correct or after correct, based on the chipset design. That explains the differences between the various drive designs since one manufacturer may return C2 errors as the sum of E22+E32, while others as the E22 or E32 values. The same issue occurs at the C1 decoder (E31, or E11+E21+E31 errors). The C1/C2 errors counted/measured by one drive will not be likely the same with other, especially if the chipset design is different.
- Testing software
There are mainly two test utilities that can be used to determine if a drive support C2 error information:
Both software works only with specific test discs that contain artificial scratches/defects. For our tests we are using EAC CD-R, ABEX TCD-721R and ABEX TCD-726 test discs. The results are not the same with each disc so user should look carefully the differences.