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:
- EAC
- CDSpeed
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.
2. EAC
Testing C2 error
information - Page 2
EAC
- Introduction
EAC author have written a utility called "DAE Quality" that can test
the DAE quality of any optical storage device. The package is not included in
the EAC software and you have to download it from EAC website. The package contains
a C2 error pointer checker (analyse.exe) and two DOS extractor, one for drives
that supporting C2 error information (c2extract.exe) and one for those who doesn't
(extract.exe).
After using the c2extract.exe software, a .wav and a .c2 file are created that
will be used from the analyser. After the analyser finishes, a bitmap graph
and also a .dat file containing all graph data are created, in order to enable
the user to create higher resolution graphs.
The bitmap is splitted in three graph views. The marks on the X-axis are again
measured in minutes of audio data. The Y-axis for each graph is a logarithmic
scale (important!) of the number of C2 errors. So each line on the Y-axis represents
approximately that two times as much C2 errors occurred as on the previous line
on the Y-axis.
- The first graph (green) shows the total number of C2 errors (of 16 bit blocks)
reported by the drive. You can see if C2 errors are reported and if it matches
with the error positions shown in the error graph.
- The second graph (red) shows the number of reported C2 errors (of 16 bit
blocks), but which are fully ok in the extracted WAV image. In some cases
the drive is able to correct (or interpolate) the defective value to the original
value. So this figure is usually not zero, this is fully normal.
- The third graph (blue) is the most interesting of the three graphs. It shows
how many errors in the extracted WAV file are not reported in a C2 error flag.
On drives with perfect C2 reporting, this graph should be a flat zero line.
But as most drives do not have perfect C2, it will show errors to an extend.
As EAC author mentions "
This third one is the most interesting figure,
it will show how much blocks are going unreported by C2 error correction...The
16 bit blocks (instead of 8-bit, the native format of C2) was because of some
drives interpolate a (mono) sample, etc. but only flag the part with the read
error on it (but changed both parts). Thus only 16 bit blocks are checked for
consistency. It is enough if one of the two bits is flagged to accept that any
of the two bytes are wrong..."
- Use
The ANALYSE.EXE program has a new parameter for C2 analysis, called '-c2flip'.
The position of the arguments is important, it always must be in this order
:
ANALYSE WAV-File [-c2flip] [X-sizeofbitmap Y-sizeofbitmap]
The -c2flip switch will change MSB and LSB coding of the C2 error pointers.
The standard defining the C2 error pointer was at the beginning very weak, it
was not always defined which bit represents what byte. Thus some (few) drives
uses a code exactly the other way round:
7 6 5 4 3 2 1 0
,while other do it this way
0 1 2 3 4 5 6 7
Usually some TEAC and drives using RICOH's chipset needs this additional command.
- Results
Below is a C2 error graph using SONY CRX-220E1 recorder with ABEX TCD-721R
test disc. Many C2 errors are reported at the damaged area and are 100% reported
from the drive. The blue line is flat! The drive gets a 100% accuracy score!
Below is another example. This time the drive (TEAC DW-224E) reports many C2
errors but misses to report few...The drive gets a 99.4% accuracy score.
Lastly, below is another example of a drive that may be able to return C2 error
information but its accuracy is very low. When this kind of result occurs, users
should first try the -c2flip command. Without it, 25% of the C2 reports may
be misplaced. An accuracy score of 67% is far from acceptable.
3. Nero CD Speed
Testing C2 error
information - Page 3
Nero CD Speed
The Nero CD Speed software compares on-the-fly, byte-to-byte, and the extracted
data of the test disc with an image. The software measures three types of C2
errors:
- C2 Errors is the amount of errors reported by the drive.
- Compare Errors are the differences between the original image file and the
data on the test disc.
- C2 Missed are present when the drive did not report an error while there
was a difference between the image file and the test disc (i.e. comparison
bit to bit).
According to how many C2 errors are reported/missed each drive gets a % accuracy
score. The CDSpeed test also includes a "reverse" switch for some
drives (usually with RICOH chipsets), as also found with the EAC analyser software.
- Results
Below is the CDSpeed graph of the SONY CRX-220E1. As we have seen earlier the
drive got 100% score with EAC and also gets 100% with CDSpeed!
Below is another example of the EAC and CDSpeed similar scores. With EAC the
drive got a 99.4%, while with CDSpeed 97.4%.
Lastly, with some drives the EAC and CDSpeed results will not agree. EAC gives
a 67% score, while CDSpeed 26.38%.
A possible explanation is that when so many sync error occur its nearly impossible
to calculate with accuracy the C2 error report information. Remember that if
we need drives with at least 99% accuracy to be used for perfect DAE extraction.
Note: In most cases the EAC and CDSpeed C2 percentages would be similar. Both
are linear (that means x per 100 c2 errors are not reported). However, due to
different calculation method, there have been cases, where a drive got much
different percentages in CDSpeed and EAC tests. Never less, a drive should have
more than 95% score to be used for checking the writing quality of a disc...
4. LiteOn results
Testing C2 error
information - Page 4
Results from LiteOn drives
Drive
|
C2 Errors Reported
|
C2 Errors Missed
|
C2 Errors Total
|
C2 Accuracy%
|
|
2268476
|
201
|
2268677
|
99.98
|
|
1853082
|
45
|
1853127
|
99.99
|
|
1957576
|
114
|
1957690
|
99.99
|
|
1982076
|
45
|
1982121
|
99.99
|
|
2608720
|
0
|
2608720
|
100
|
The results are really interesting
Three different generations of MediaTek
chipsets and SANYO pickups produced totally different results. The latest model
(LTR-52246S) had 100% accuracy and reported the higher total C2 Errors with
the inserted disc. The LTR-32123S series reported the lower total C2 errors.
The results showing the improvement done as time passes and manufacturers improve
their reference board design and tweak the optics.