dj magazine  



 Do MP3 encoders sound different? Pt. 2 Read Pt.1

 Will Ryu

The contestants

Fraunhofer (FhG)
The Fraunhofer Institute has been a major player in the development of perceptual-based audio compression algorithms; it's their research in the 1980s that lead to the ISO-MPEG layer III standard. They continue to improve their algorithm and are generally considered to have the benchmark encoder. A demo of an older command line encoder can be found here. The latest version of their encoder can be found in programs such as MP3 Producer 2, CDDA 4.0, Calkwalk Pro 9, and Audioactive Production Studio. For this test I used Audioactive Production Studio (v1.54). Note that the Audioactive Production Studio does not have a 320 kbs encoding option.

The Xing encoder is one of the most popular encoding engines because of its speed. It can be found in big-time ripper/encoders like RealJukeBox Plus, and also in their own product, AudioCatalyst 2.1. AudioCatalyst is what I used for this test.

Blade (or BladeEnc) is a freeware encoder by Tord Jansson.  It's based on the MPEG-ISO reference source code, dist10, which you can download here. Jansson set out to write Blade in order to increase the processing speed of the reference code while preserving audio quality. There are several front ends for the Blade encoder, e.g., Bladebatch, FrontBlade, RazorBlade (see a naming trend here?). The source code is available under the LGPL license. For this test I used Bladebatch with BladeEnc.exe (v.0.91). NOTE: The binaries for BladeEnc have just been removed from Janssons site due to Fraunhofers recent crackdown on people distributing encoders based on their reference code. Source code is still available, and the BladeEnc.dll can still be found as a plug-in for some rippers such as Easy CDDA extractor 4.0.

Strictly speaking LAME isnt an encoder, but rather a GPLd patch against the MPEG-ISO source code. The LAME encoder started its life as an Amiga port of the dist10 source code.  Mike Cheng was the programmer who wrote this port, and, as he mentions on the LAME website, he helped 8Hz with their efforts to speed up the dist10 code.  However, they too have become a victim of Fraunhofers encoder crackdown. Now LAME is open source and is actively being improved by a community of programmers. The LAME encoder (v. 3.61) can be found as a plug-in for Easy CDDA, which I used for these tests.

The numbers

Measurements certainly dont tell the whole story about an encoders audio quality, but they can be helpful in understanding an encoder's sound. Here I give the results of two measurements. First, I measured the bandwidth of each encoder by comparing the power spectra of an encoded test signal. Then, I measured each encoder's accuracy by comparing the encoded signals to the original waveform.

Now here's an interesting result. The test signal was one second of pink noise, a pseudo-random wav file which has equal distribution of energy in each frequency octave (e.g., energy between 1 and 2 Hz is equal to the energy between 10,000 and 20,000). The encoding was done on one channel of the stereo signal at 128 kbs. As you can see in the above graph (x-axis is frequency in Hz and the y-axis is power in arbitrary units), the Blade and LAME encoders start to cut off the signal at 16 kHz. In addition, the Blade encoder produces some ugly spikes past the cut-off region (albeit the peaks are small, note the log axis). The Xing and Fraunhofer encoders almost make it to 20 kHz, with FhG just edging out Xing near the 20 kHz mark. 

Now why would an encoder throw out everything past 16 kHz? Generally, musical information is mostly located in the lower frequency bands, and, as I mentioned before, our ability to hear high frequencies decreases with age. So, you might be able to get away with throwing out information past 16 kHz. The benefit of doing this is that the encoder can now take its limited number of bits and assign them to the rest of the frequency band. If this is true, then perhaps the Blade and LAME encoders have more accurate power spectra than the Xing and FhG encoders below 16 kHz. 

To test this I looked at the Mean Standard Error (MSE) between the power spectra of the test signal and the output of the various encoders from 20 Hz to 15500 Hz. The mean standard error is the average of the square of the difference of the signals, or in other words, the smaller the MSE the more similar the signals. I don't have a graph for this one, so I'll just tell you about the result.  The Xing (MSE 5.7) and Fraunhofer (MSE 13.5) encoders still had smaller MSEs than the LAME (MSE 17.8) and Blade (MES 65.4) encoders, even in the restricted band. So much for that hypothesis. For higher bit rates the LAME and Blade encoders extended their frequency response out to 20 kHz.

Anyway, pink noise results are interesting, but I dont spend much time compressing test signals so I can listen to them on my computer ;) Let's feed in some real music and see what happens.

  Copyright 2000

powered by



web hosting | how to advertise | submit an article  

  about DJzone

DJzone network: | | | | | | | |

   DJzone | letters to the editor | features | reviews | daily music news | classifieds | resources

Copyright © 2001 DJzone, Inc. All rights reserved.