MPEG-Layer 3 Audio Streamer

Brandon McLean & Doug Fawley




Background on Layer III  (From mid-semester)

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 was at midsemester:

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 it is now:
We have expanded on our decoder/player's interface.  These are the newly added features:
  • 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)
Due to time-budgeting issues (we spent a lot of time on this project during the first half of the semester and got behind on a lot of our work/projects), we were unable to complete the MPEG-Layer III Encoder portion of the project.  This is very unfortunate, because we both were very interested in the topic and would have liked to spend more time on the program.

Link to our work