mp3 decoder tests

  24-bit accuracy test  

Some mp3 decoders claim to offer 24-bit accurate decodes, compared to the usual 16-bits.
How do they sound?

What are the important results of this test?

Audio Samples - Introdution

To generate these samples for you to listen to, I took the decoded audio files from the 24-bit test, and made them much much louder. The binary digital signal has been shifted 13 bits to the left, so what was the 16th bit is now the 3rd, and what was the 24th is now the 11th. This is to allow everyone (including owners of 16-bit sound cards) to hear what's happening at the 24th bit.

The waveform of the test file is shown below. For the first 9 seconds of each file (0:0.000 - 0:9.000), you'll hear the audio switch twice per second. The first half of each second contains the tone plus stereo triangular dither, then second half of each second contains the tone plus mono rectangular dither. Each whole second contains the SAME audio as each other second, but at a different level. The 1st second contains audio at the 16th bit level, the 2nd second contains audio at the 17th bit level, and so on until the eighth second contains audio at the 24th bit level.

The tenth second (0:9.000 - 0:10.000) is silence. The next three tones (in the 11th, 12th and 13th seconds) are all at the 16-bit level. The first is undithered, the second is dithered at the 24-bit level, and the third is dithered at the 16-bit level.

The next two tones (14th and 15th seconds) 17 and 18-bit loud tones, dithered at the 24th bit level. Then the file ends.

spectral and temporal representations of the 24bit test signal
24 bit test signal.
Upper plot: spectral analysis (150dB range).
Lower plot: Waveform (1 16-bit sample range)

The sound of MAD 0.12.2B vs l3dec

  1. l3dec 24bit decode. This is how the file should sound. Though the decoded file has been re-mp3 encoded, this hasn't damaged it too much, and it sounds very close to the original 24bit .wav.
  2. l3dec 16bit decode. This is what all the standard 16-bit decoders will produce. Anything below the level of the 17th bit is lost (seconds 2-9 are silent - the signal has vanished). All non-dithering 16-bit decoders do this.
  3. l3dec 16bit dithered decode. This is the 24-bit output of l3dec, dithered to 16-bit using Cool Edit Pro. The resulting file is, obviously, only 16-bits, but hear how below the (rather loud) dither noise, you can hear some of the tones from the original file.
  4. Winamp MAD plug-in 16bit decode. This is MAD dithering down to 16-bits. The first thing you notice (which sounds good to start with) is that you can't hear any dither noise. The second thing you notice is that the quieter tones are present, but very distorted. If you compare this with the l3dec 24bit decode, you'll find that even the quietest tones (which should be hard to hear) are clearly audible as a distorted mess when MAD decodes them.
  5. Winamp MAD plug-in 24bit decode. This is the MAD 24-bit output. If you compare it to the l3dec 24bit decode you'll hear it's pretty close. There's a funny noise added to the quietest bits, but apart from this it's not too bad.

You might be tempted to think that the distorted MAD version (4) sounds better than the noisy l3dec dithered version (3). However, you're listening to the quietest possible digital signal, amplified to nearly full level. I did this so you could hear the differences easily. With the signal at the correct level, both problems are incredibly quiet. With real music signals rather than test tones, either sounds OK, but the dither noise is preferable to the distortion. It's how our ears work, and it's how most hi-fi components work - there's a noise floor, but we can still hear things within the noise. To put it another way, signals sink gracefully into dither noise as they become quieter - they become harsh if they sink into distortion. Here's an example:

To dither, or not to dither?

  1. Original Rachmaninoff, ripped digitally from a CD - 16-bit resolution.
  2. Rounded to 6-bits. This introduces rather a lot of distortion.
  3. Dithered to 6-bits. This introduces rather a lot of noise.
  4. Noise-Shaped Dithered to 6-bits. Same as dithering, using mainly high frequency (inaudible) noise, so the noise sounds quieter.

Which do you prefer? I'd rank them 1,4,3,2. We haven't mentioned (4) before: You can do better than standard dither (which MAD 0.12.2B doesn't manage correctly yet) - you can use Noise Shaped dither - that way, all the dither noise is pushed (shaped) into spectral areas where the human ear isn't so sensitive - so the overall noise level sounds lower. If you have a spectrum analyser (the default one in Winamp will do), take a look at (4) - there's a huge amount of noise, mainly over 20kHz, but it doesn't sound too bad.

So, in conclusion, it's better to dither than round, because noise is better than distortion. It's also better to noise-shape the dither if possible, because the noise sounds quieter.


  1. Where to now?
    Go back to the 24-bit test or go forward to the next test.