>
> "calc_noise" routine without ATH calculate distortion from difference
> between original data and encoded data; (fabs(xr[l]) - pow43[ix])^2.
> So l3_xmin means tolerable difference between XR and IX.
>
> But ATH is not difference but "Absolute" value. In another word, ATH
> means tolerable difference between 0 and IX.
>
True, but it also means that orignal_data +/- noise, where the noise
is less than the ATH, should sound just like the original_data. A
modern codec doesn't try to remove components - it introduces noise
so that the modified components can be coded more efficiently. For
example:
lets say scalefactor band sfb=10 has an ATH of 40db. This means
(according to the theory) that most people could not hear a 40db tone
in sfb=10.
Now take a 80 db signal. The quantized version of this can be thought
of as:
quantized_version = true_version + noise
Calc_noise() measures the noise in the above formula. If the noise is
less than 40db, then it should be masked by the ATH, and thus
quantized_version should sound the same as true_version.
Mark
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )