I started playing with some code to convert MP3 directly to ATRAC3. All in
all, the results are terrible. While at a high level, MP3 and ATRAC3 use
similar approaches (subband audio coding), the actual implementation details
are such that the conversion is extremely poor. Why?

Both MP3 and ATRAC3 depend on the same digital signal processing techniques.
Unlike analog processing which occurs in a continuous flow, digital
processing must be done on discrete chunks (frames) of signal data. The
division of the data stream into frames introduces errors at the frame
boundaries. These errors can be hidden and cancelled out in the decoding
stage, but only if a properly matched decoder is used. MP3 (typically) uses
576 samples per frame, while ATRAC (typically) uses 512 samples per frame.
As such, the portion of the audio spectrum represented by each sample is
different. Also, MP3 and ATRAC use different overlap and window functions to
trim the signals at the frame borders. This means that very different noise
characteristics are present in each system.

Stop reading if you're not interested in the gory details...

My code attempted to pull out the 576 MP3 frequency-domain samples and
reallocate their energy into 512 ATRAC frequency-domain bins, with a portion
of the energy being allocated to a subsequent frame. Note that there's a
huge ambiguity introduced here: the signal started as 576 time-domain
samples (13.06ms). In the frequency domain, you don't have any time
positioning info any more, so all of the frequencies present in the spectrum
are smeared equally across all 13ms of the frame. Now you try to allocate
this into a 512 sample (11.6ms) frame. 1/9th ((576-512)/576) of the energy
of the 576 sample frame doesn't belong in that particular 11.6ms frame, it
has to be subtracted out and shoved into the next frame. Great, but this not
only reallocates the desired signal, but also the noise. Here, even if ATRAC
and MP3 used identical filter architectures, you still wouldn't be able to
cancel out the noise since it's just been mangled in the spectrum
reallocation.

Anyway, to make a long story short, the best way to convert from MP3 to
ATRAC (or any other compression format, for that matter) is to fully decode
MP3 to PCM and then re-encode PCM to the destination format. There are no
shortcuts.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc

-----------------------------------------------------------------
To stop getting this list send a message containing just the word
"unsubscribe" to [EMAIL PROTECTED]

Reply via email to