Notes on Decoding
As noted earlier, the great
bulk of the work in the MP3 system as a whole is placed on the encoding
process. Since one typically plays files more frequently than one encodes
them, this makes sense. Decoders do not need to store or work with a model of
human psychoacoustic principles, nor do they require a bit allocation
procedure. All the MP3 player has to worry about is examining the bitstream of
header and data frames for spectral components and the side information stored
alongside them, and then reconstructing this information to create an audio
signal. The player is nothing but an (often) fancy interface onto your
collection of MP3 files and playlists and your sound card, encapsulating the
relatively straightforward rules of decoding the MP3 bitstream format.
While there are measurable
differences in the efficiency-and audible differences in the quality-of
various MP3 decoders, the differences are largely negligible on computer
hardware manufactured in the last few years. That's not to say that decoders
just sit in the background consuming no resources. In fact, on some machines
and some operating systems you'll notice a slight (or even pronounced)
sluggishness in other operations while your player is running. This is
particularly true on operating systems that don't feature a finely grained
threading model, such as MacOS and most versions of Windows. Linux and, to an
even greater extent, BeOS are largely exempt from MP3
skipping problems, given decent hardware. And of course, if you're listening
to MP3 audio streamed over the Internet, you'll get skipping problems if you
don't have enough bandwidth to handle the bitrate/sampling frequency of the
stream.
Some MP3 decoders chew up more
CPU time than others, but the differences between them in terms of efficiency
are not as great as the differences between their feature sets, or between the
efficiency of various encoders. Choosing an MP3 player becomes a question of
cost, extensibility, audio quality, and appearance. That's still a lot to
consider, but at least you don't have to worry much about benchmarking the
hundreds of players available on the market (unless you've got a really slow
machine).
NOTE
If you're a stickler for
audio quality, you've probably got a decent to excellent
sound card already. However, if you've got an older sound card (such as a
SoundBlaster 16) and a slower CPU (slower than a Pentium 133), be aware that
the "
look ahead" buffer in the MP3 player can easily become exhausted, which
will result in an audible degradation of sound quality. However, sticking a
better sound card (such as a SoundBlaster 64) in the same machine may
eliminate these artifacts, since better sound cards perform more of the
critical math in their own hardware, rather than burdening the computer's
CPU with it.
While this situation won't
affect many modern geeks, there's an easy way to test your equipment to
determine if its lack of speed is affecting audio quality: Just pick a
favorite MP3 file and decode it to a noncompressed format such as WAV, then
listen to the MP3 and the WAV side-by-side. If the WAV version sounds
better, you'll know that your machine isn't up to the MP3 playback task,
since the uncompressed version requires very little processing power to play
.
Next: