EAC secure mode test proposal, Testing its real accuracy
EAC secure mode test proposal, Testing its real accuracy
May 3 2003, 14:41
Joined: 26-November 02
Member No.: 3890
Edit : this discussion is splitted from this thread : http://www.hydrogenaudio.org/forums/index....=ST&f=20&t=8849
QUOTE (spoon @ May 3 2003 - 02:23 AM)
Well, actually errors 'always' (99.99...%) return different data for every new read.
How do you know that? it might be 60%, or 10%, because it cannot detect when the data is the same you cannot put a % on it. When AccurateRip makes its way onto EAC then you could put a percentage on it.
A. I haven't read anything about a "validated" percentage like this anywhere (wrong_samples_noticed_by_EAC_due_to_non-matching_results_on_re-read / total_number_of_wrong_samples).
B. This could be tested (volunteers appreciated) like this:
1. You need a (set of) reference .wav file(s). For this either rip a CD in perfect condition, EAC secure mode, ideally compare the CRC to a identical disk's ripped by someone else (cheers to AccurateRip ) or choose some .wav files, burn them to CD-R and make sure you keep them unchanged on your HDD.
2. Take the CD(-R), damage it (e.g. different kind of scratches, caused by screwdrivers, sandig paper, ...; dirty fingerprints; draw lines with a thin marker on the data side; ...). Start carefully and try what happens in the next steps. If the disk turns unreadable and causes timing problems/sync errors in burst mode this won't work ...
3. Extract the damaged disk two times in burst mode resulting in a.wav and b.wav.
4. Do wave substractions (Cool Edit: mix paste - overlap - invert checked) r-a.wav=reference.wav - a.wav and r-b.wav = reference.wav - b.wav and a-b.wav = a.wav - b.wav using Cool Edit or another wave editor capable of that - make sure that dither is disabled in this and the next steps.
5. We want to know how many samples have been turned "wrong" by damaging the disk, so we create a Cool Edit boolean operation™ like this: if a sample has been read correctly in a.wav, the corresponding sample in r-a.wav will be 0, otherwise something =|= 0. To find samples that are wrong in a OR b, we add r-a.wav and r-b.wav. To prevent errors here we multiply both files with themselves (Cool Edit: mix paste -> modulate), so all values are 0 (correct) or >0 (wrong). To prevent errors here (Cool Edit devides by 32768 after multiplying, so values -182<y<182 will turn 0 due to rounding) we amplify both .wavs by 100dB before. This will lead to 0 values = correct and 32767 values = incorrect (-> amplification by 100 dB makes all samples =|= 0 clip in 16 bit resolution). So the steps are:
5.1. Amplifying: r-a_100.wav = r-a + 100dB; r-b_100.wav = r-a + 100dB
5.2. Copy r-a_100.wav to clipboard and mix paste - modulate r-a_100.wav with data from clipboard, result: r-a_100m.wav; do the same with r-b_100.wav => r-b_100m.wav
5.3. Add (= Cool Edit mix paste - overlap) r-a_100m.wav + r-b_100m.wav = wrong_samples.wav
In the file wrong_samples.wav. we have now all 0 samples stand for correctly extracted samples in both EAC burst mode runs while =|= 0 samples (32767) stand for extraction errors.
6. Now first interesting thing to do IMO would be to have a look at the error postitions. Are there isolated wrong samples or do they occur as blocks / "bursts"?
7. Now we want to know how many of the wrong samples have gotten different values in the two burst mode runs so EAC secure mode would have detected them. For this we
7.1. apply steps 5.1 and 5.2 to a-b.wav resulting in a-b_100m.wav
7.2.1. Take a-b_100m.wav and apply Channel Mixer -> Full mix (L = L+R; R = L+R). -> detected_errors.wav
7.2.2.: multiply wrong_samples.wav with detected_errors.wav (Mix Paste Modulate) and substract the result from detected_errors.wav, resulting in the corrected undetected_errors.wav.
The result will contain 0 samples for correct samples and detected errors and 32767 samples for undetected errors.
8. Counting the Number of 32767 samples in wrong_samples.wav (W) and in undetected_errors.wav (O) will enable you to calculate a percentage of correctly detected errors: P=(W-O)/W
Additionally we could rip 3 or 4 times in burst mode instead of 2 times to find out if and how often Test & Copy in secure mode without C2 detects addtional errors.
And we could rip in secure mode, C2 enabled (if drive capable) to find out the "P" value for the drive's C2 detection.
edit2: changed some "?" to "=|=" which means "un-eaqual"
I missed one thing: If in the 1st 2 reads an error occurs, the sample is re-read in both channels, no matter if the error was detected in one or both channels. So "undetected" errors in one channel are in fact detected if there's a detected error at the same postion on the other channel.
To take this into account in the test, step 7 is modified (see above).
This post has been edited by tigre: May 6 2003, 10:28
Let's suppose that rain washes out a picnic. Who is feeling negative? The rain? Or YOU? What's causing the negative feeling? The rain or your reaction? - Anthony De Mello
May 4 2003, 12:35
Joined: 22-March 02
Member No.: 1596
QUOTE (evereux @ May 4 2003 - 12:04 PM)
QUOTE (mrosscook @ May 3 2003 - 02:49 PM)
There, you are assuming implicitly that the "reread" from comparing two separate burst mode rips is comparable to the reread that EAC does when it is in secure mode, no C2.
But isn't the end result (having a matching CRC) one and the same thing?
however, if you want to take the (small) CRC algorithm's failure chance ( = different WAVs give identical CRC sums ) into consideration, then there is a difference (between twice burst mode + matching CRCs, and secure mode) :
the more secure the read mode, the greater the chance WAVs are REALLY identical ( = the lesser the chance CRC algorithm failed )
"E S S E N T I A L" Guide for E A C :
|Lo-Fi Version||Time is now: 28th May 2015 - 17:59|