:: Frank Klemm <[EMAIL PROTECTED]> writes:
:: > If the Output is a AIFF floating point PCM file, there is no rounding to the
:: > nearest integer (in the first approach). Otherwise you have to quantize
:: > the result of the MP3 decoding process. The most often used (and worst)
:: > operator for that is the "round-to-nearest-integer" quanization operator.
:: > It generates the best technical SNR and the worst audible SNR.
::
:: So, if I understand you correctly, you claim a quality-optimized decoder which
:: does something other than round-to-the-nearest-integer as the final decoding
:: step will sound better than one that does, but consequently also won't pass
:: the ISO/IEC 11172-4 compliance tests for computational accuracy?
::
:: Can you give an example of a decoder which does this?
::
May be mpg123 in october. I try to convince Michael Hipp to use my
ultra-fast round-to-nearest-integer routines°°). If he uses these routines, it
becomes very easy to use other quantization routines by simple replacing 2
routines by another and recompiling. Currently the quantization is
spreaded around the whole program.
:: > May be a mail bomb of 200 KB for an example? (1 MP3, 2 programs, script +
:: > description). Or should I upload the examples to an URL?
:: >
:: > This would ease some explainations.
::
:: I wouldn't send them directly to this list, but I don't mind if you send them
:: to me personally. Or you can use a URL.
::
I uploaded it to:
Typed in: http://www.uni-jena.de/~pfk/resample.tar.gz
Copy&Paste: http://www.uni-jena.de/~pfk/resample.tar.gz
Seems to be correct.
It's not a MP3 decoder, it's a simple resampling program°).
But all sound processing (except polarity changes, DC canceling and
amplififying by 6,02 or 9,54 dB) has the same problem. So it is a simple
example.
The worst sounding example is the only passing the ISO conventions.
--
Mit freundlichen Grüßen
Frank Klemm
°) Plans: - Speedup by 100+
- Dynamic Window Size
- Removing already existing artefacts (-6 dB)
- Compensation of high frequency cut by a
- well calculated treble boost
°°) Rounding floats to integers is very ineffective in C.
Rounding floats to integer is very ineffective on the Intel x386
architecture. Using plain C takes around 150 CPU clocks (K6) to read a
floating point number, round it to the nearest integer and store it
again. Optimized tricky C code only needs 15 CPU clocks.
That saves 12 Million CPU clocks per second (4% on 300 MHz).
eMail | [EMAIL PROTECTED] home: [EMAIL PROTECTED]
phone | +49 (3641) 64-2721 home: +49 (3641) 390545
sMail | R.-Breitscheid-Str. 43, 07747 Jena, Germany
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )