MPEG-Layer 3 Audio Streamer

Brandon McLean & Doug Fawley

 

Background on Layer III

Layer III provides additional frequency resolution (over Layer II) by the use of an hybrid filterbank. Every band is split into 18 frequency lines by use of an MDCT. The window length of the MDCT is 36. Adaptive window switching is used to control time artifacts (pre-echoes). The frequency above which shorter blocks (better time resolution) are used can be selected. Parts of the signal below a certain frequency are coded with better frequency resolution, parts of the signal above are coded with better time resolution.

The frequency components are quantized using a nonuniform quantizer and coded using a Huffman encoder. The Huffman coder uses one of 18 different tables. A buffer is used to help enhance the coding efficiency of the Huffman coder and to help in the case of certain condition (such as pre-echo). The size of the input buffer is the size of one frame at the bitrate of 160 kbit/s per channel for Layer III. The short term buffer technique used is called "bit reservoir" because it uses short-term variable bitrate with a maximum integral offset from the mean bitrate.

Our Project:  mp3play

Where it is now:

We began our project attempting to use a Windows 95 platform.  After a period of trial and error using windows API and VC++, it was decided that we make an attempt on another platform in which an interface could be more easily provided.  We then chose the SGI's.  Using our knowledge of MP3's provided in the ISO standard (which was made available online @ the 796 webpage), as well as some audio interface libraries which were also available online, we created an mp3 streamer, called mp3play, which has a graphical interface (still under construction).  Currently, the program can take a mp3 file and play it.  The interface also has and exit button to quit.   Once the file is done playing, another mp3 can be played.

Where we want it to be:

Now that we have a functional interface, we wish to expand upon it, especially since this is a multimedia-oriented class.  By adding additional functionality to our interface, it will be all that much more interesting, and eye-catching to the user.  Here is a list of some of the things that we hope to add by the end of the semester:

  • Improvements on the interface

    • a slidebar that track where in the song you are currently

    • a playlist (for hands-off control)

    • an on-screen message box (for error messages and other information)

  • An MP3 encoder that takes in audio samples and outputs MPEG Layer III audio

Link to our work