| Icecast Installation and Management: A Guide to Open Source Audio Streaming | ||
|---|---|---|
| <<< Previous | Audio Fundamentals | Next >>> |
The MP3 specification, also known as ISO 11172-3, does not explain the specifics as to how MP3 encoding is accomplished. Rather, it outlines techniques and details a level of conformance. In other words, it informs developers that their resulting MP3 files must meet certain structural criteria. This is necessary for the same reason that any standard exists; to allow for the proliferation of MP3 encoders and players by various vendors and developers. The specification only serves to guarantee a baseline consensus in the community regarding how certain things operate. An encoder developed according to the MP3 specification is then capable of outputting a "compliant bitstream" that can be played with any MP3-compliant decoder, just as you can render any standard W3C-compliant HTML document in any browser on any operating system.
It is important to maintain the distinction between the primary developers of the codec itself, The Fraunhofer Institute, and the committee that codified the work of Fraunhofer into the MPEG-I Layer 3 specification, or the International Standards Organization (ISO). Standards are often created this way; a company produces a technology, other companies apply to become a part of the standards-creation process, and together they lay down the laws of implementation so that all vendors can compete around the same technology. However, just because MP3 has been standardized by ISO does not mean that Fraunhofer and their partners Thomson Multimedia don't still hold the patent on the technology itself. At the current time Fraunhofer's patent is being aggressively exercised making it difficult for small-time developers to affordably implement the ISO standard. Documentation on the MP3 specification can be ordered for around $150 from the main ISO web page, http://www.iso.ch/.
While the standard specifies exactly how decoding is to be accomplished, it only provides sample implementations (one simple and one complex) for encoding. As a result, a certain degree of headroom is available for developers to make up some of the rules as they go along. In general, encoder developers work toward two goals: speed and quality. While there is some difference in the quality of audio files output by various encoders, there are vast differences in the speed at which encoders operate. Sometimes, encoding speed comes at a distinct disadvantage to the quality of the resulting bitstream.
A good example of the kind of freedom left to developers is the fact that the MP3 standard does not specify exactly how to treat the upper end of the spectrum, or the range above 16kHz. Since human auditory perception begins to diminish between 16kHz and 20kHz, some developers have historically chosen to simply chop off frequencies above 16kHz. This can be beneficial at low bitrates, as it leaves more bits available for encoding more audible frequencies. Xing, for example, did this with the first versions of their very fast codec. Later, they rewrote their codec to handle frequencies up to 20kHz perhaps to satisfy the audiophile MP3 community.
If curious about the upper and lower thresholds of your own hearing, download a sine wave generation program for your platform and run some tests. If you find a graphical program, you can simply turn the dial or drag the slider up the frequency spectrum until it can no longer be heard. If the program works from the command line, you can either generate sweep frequencies or generate a series of files at different frequencies at the upper end of the range and play them in sequence.
Mark Huckvale states his ESynth program available at http://www.phon.ucl.ac.uk/resource/sfs/esynth.htm is a free Windows program for demonstrating and learning about harmonic analysis/synthesis.
Here is the blurb as posted on his web page:
"ESynth is a program designed to explain the harmonic analysis and synthesis of signals. With ESynth you can create signals by adding together individual sinusoidal waveforms (sinewaves) and study the resulting waveform and spectrum. You can also perform an analysis of an input waveform, to see how a given sound can be represented in terms of a sum of sinewaves." | ||
| --Mark Huckvale | ||
Clemens Kuhn suggests http://www.timo.esser.dsl.pipex.com/ttg.htm.
Graeme Moffat uses three programs for sine wave generation. His first choice is usually Matlab 6.5 using the wavwrite function, but will also use either the open source application Audacity or Adobe Audition when the need arises. The latter two can generate sound at anything up to 24-bit, 96 kHz resolution in a very straightforward manner. Audacity is probably your best bet when considering simplicity and low cost.
Linux users should also take a look at a utility called sinus, while users of any platform can generate pure tones through any of the many simple synthesizer programs available from your favorite software library. The potential problem with running this kind of test lies in the fact that your playback hardware may itself not be capable of reproducing frequencies above 17kHz. A test like this is best conducted on the highest quality equipment you can find.
| <<< Previous | Home | Next >>> |
| What Are Bitrates? | Up | Other Considerations |