next up previous
Next: Chapter 14 Up: Further Exploration Previous: Chapter 12

Chapter 13

Sun Microsystems, Inc. has made available the code for its implementation on standards G.711, G.721, and G.723, in C. The code can be found here

Sample audio files are given there as well. Since the code operates on raw 2-byte data, the link also gives simple matlab conversion code to read and write .wav and .raw data. Internally, audio data is treated as float, in the range [-1..1]. So if we are operating on 8-bit samples, the conversion from external, byte, data to internal, float, data can be carried out by the operation

float = byte/128 - 1

This converts from the range [0..255] to the range [-1..1]. For 2-byte, 16-bit data, the conversion is

float = double - byte/256 - 1

For audio, the court of final appeal is the ITU standards body itself: it is standards promoted by such groups that in fact allow our modems to talk to each other, mobile communications to be developed, and so on. The ITU sells standards: it is linked to from the URL

  • http://www.itu.int/home/index.html
  • More information on speech coding may be found in the speech FAQ files, linked from

  • http://www.speech.cs.cmu.edu/comp.speech/
  • LPC and CELP code may be found at

  • http://www.speech.cs.cmu.edu/comp.speech/Section3/Software/celp-3.2a.html
  • The following links are for sample C source code for a LPC-10 coder and a CELP coder

  • http://www.data-compression.com/lpc10-1.5.tar.gz

  • http://www.data-compression.com/celp_3.2a.tar.Z


  • next up previous
    Next: Chapter 14 Up: Further Exploration Previous: Chapter 12
    Fundamentals of Multimedia