Codecs – Everything You Always Wanted to Know RMAUG Professional Development Series 2/11/09 Dwight Reifsnyder
“If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.” George Bernard Shaw
Boulder Valley School District
Codecs – EYAWTK Overview Codec background and concepts Comparisons and basic features Voice Codec specifics Application in an Avaya environment
What is a Codec? Codec is short for Coder/Decoder Just like a Dick Tracy! But what are the concepts involved?
“Coding” is Changing Form Examples of coding include: Pictures Writing Music Language translation Encryption
Audio Encoding 1876 Alexander Graham Bell 1894 Guglielmo Marconi Audio to electricity 1894 Guglielmo Marconi Audio to radio 1916 Theodore Case Audio to optical
Analog (Wikipedia) An analog or analogue signal is any continuous signal for which the time varying feature (variable) of the signal is a representation of some other time varying quantity, i.e. analogous to another time varying signal. Analog is usually thought of in an electrical context; however, mechanical, pneumatic, hydraulic, and other systems may also convey analog signals
Digital Encoding 1937 - Alec H. Reeves Pulse Code Modulation invented (PCM) 1942 - John V. Atanasoff, Clifford Berry First computer 1962 – Bell Labs PCM first used in commercial telephony
Digital (Wikipedia) A digital system uses discrete (discontinuous) values, usually but not always symbolized numerically (hence called "digital") to represent information. By contrast, non- digital (or analog) systems use a continuous range of values to represent information.
Digital (Wikipedia, continued) The word digital is most commonly used in computing and electronics, especially where real-world information is converted to binary numeric form as in digital audio and digital photography.
Analog vs. Digital Analog Digital Continuous, modulates in direct relation to original data Digital Discrete data (individual values) with no intuitive or obvious correlation to original data
Concept Review Encoding is changing form. Data may be encoded, transmitted, stored, and decoded Analog (encoding or transmission) Digital (encoding or transmission)
Digital Encoding - Pictures TIF (TIFF) Tagged Image File Format PNG Portable Network Graphic JPG (JPEG) Joint Photographic Experts Group GIF Graphics Interchange Format
Digital Encoding – File Size TIF (TIFF) 576K No Compression (lossless) PNG 232K No Compression (lossless) GIF 97K Compressed (lossy) JPG (JPEG) 105K Compressed (lossy)
Multiple Codecs If the pictures all look the same, why do we need different Codecs? Different types of Codecs are optimized for different types of data
AAAABBBBBCCCCDDDDDDEEEEEEEE JPG vs. GIF GIF uses Run Length Encoding (RLE) AAAABBBBBCCCCDDDDDDEEEEEEEE 4A4B4C6D8E Max of 256 colors, fewer colors=smaller file
JPG vs. GIF JPG uses multiple steps We should create 8x8 DCT matrix using this formula: DCT = 1/sqr(N), if i=0 ij DCT = sqr(2/N)*cos[(2j+1)*i*3.14/2N], if i > 0 ij N = 8, 0 < i < 7 , 0 < j < 7 in result we have: DCT = |.353553 .353553 . 353553 .353553 . 353553 .353553 .353553 .353553| |.490393 .415818 .277992 .097887 -.097106 -.277329 -.415375 -.490246| |.461978 .191618 -.190882 -.461673 -.462282 -.192353 .190145 .461366| |.414818 -.097106 -.490246 -.278653 .276667 .490710 .099448 -.414486| |.353694 -.353131 -.354256 .352567 .354819 -.352001 -.355378 .351435| |.277992 -.490246 .096324 .416700 -.414486 -.100228 .491013 -.274673| |.191618 -.462282 .461366 -.189409 -.193822 .463187 -.460440 .187195|
JPG Quality vs. File Size JPG (JPEG) Quality “30” – 16K JPG (JPEG) Quality “100” 105k
GIF Quality vs. File Size GIF 32 Colors (lossy) 17K GIF 256 Colors (lossless) 97k
Image (and Audio) Codecs Review There are many codec choices – the goal is for it to be transparent to the user Codecs can contain multiple encoding/compression steps Codec choice should consider type of audio, available bandwidth, and CPU usage
Voice Codecs There a many audio codecs Voice Specific Codecs Quicktime Real Player MP3 Voice Specific Codecs Industry Standard (ITU) Optimized for speech
Common Voice Codecs ITU-T Codec Standard Coding Scheme Used Bit Rate Encoding Delay Time Mean Opinion Score G.711 PCM 64 kbps <1 msec 4.7 G.722 SB-ADPCM 4 msec 4.5 G.726 ADPCM 32 kbps 1 msec 4.2 G.728 LC-CELP 16 kbps 2 msec G.729 CS-ACELP 8 kbps 15 msec G.723.1 MPMLQ 6.3 kbps 37.5 msec 3.98 ACELP 5.3 kbps 3.5
Bandwidth, Bandwidth, Bandwidth For most users, the main consideration in choosing a codec is bandwidth This can be complex when considering calls between multiple regions
Avaya Bandwidth Calculator http://marketingtools.avaya.com/knowledgebase/ipoffice/general/bandwidth/
Common Voice Codecs ITU-T Codec Standard Coding Scheme Used Bit Rate Encoding Delay Time Mean Opinion Score G.711 PCM 64 kbps <1 msec 4.7 G.722 SB-ADPCM 4 msec 4.5 G.726 ADPCM 32 kbps 1 msec 4.2 G.728 LC-CELP 16 kbps 2 msec G.729 CS-ACELP 8 kbps 15 msec G.723.1 MPMLQ 6.3 kbps 37.5 msec 3.98 ACELP 5.3 kbps 3.5
VoIP Delay Initiator Transmit Receiver Encoding (DSP usage) Network transmit Jitter Buffer Receiver
VoIP Delay – Graphical Version
Common Voice Codecs ITU-T Codec Standard Coding Scheme Used Bit Rate Encoding Delay Time Mean Opinion Score G.711 PCM 64 kbps <1 msec 4.7 G.722 SB-ADPCM 4 msec 4.5 G.726 ADPCM 32 kbps 1 msec 4.2 G.728 LC-CELP 16 kbps 2 msec G.729 CS-ACELP 8 kbps 15 msec G.723.1 MPMLQ 6.3 kbps 37.5 msec 3.98 ACELP 5.3 kbps 3.5
Silence – Not Golden VAD CNG PLC Voice Activity Detection “Clipping” Comfort Noise Generation PLC Packet Loss Concealment
Avaya Codec Sets G.711A (a-law) G.711MU (m-law) G.722-64k G.722.1-24k G.726A-32k G.729 G.729B G.729AB SIREN14-24k SIREN14-32k SIREN14-48k SIREN14-S48k SIREN14-S56k SIREN14-S64k SIREN14-S96k
G.722 – Wideband Audio Human Hearing Narrowband Codecs Wideband Codecs 5hz to 20khz Narrowband Codecs 200hz to 4khz Wideband Codecs 50hz to 7khz
What’s NOT a Codec? G.xxx e.g. G.722, G.711 Voice Encoding H.xxx e.g. H.323, H.264 Call Control V.xxx e.g. V.32, V.90 Modem Encoding T.xxx e.g. T.30, T.38 Fax Control
Faxes and Modems VoIP is not a conducive to fax or modem usage Special settings G.711 only Turns off VAD, CNG, PLC Relay Redundancy
Thanks for staying awake… Two codecs walk into a bar…