VoIP codecs are algorithms that perform the essential functions of VoIP—converting voice data into digital signals that are reconverted into voice data again at their destination to allow for telephone conversations. Codec is a hybrid of the words “coder” and “decoder”; these algorithms perform other functions endemic to the transporting of digital data including compression and packet switching. There is a wide variety of codecs that VoIP telephony utilizes, some of which are more commonly used than others.
Codecs perform the process of converting audio data into digital data by sampling the initial audio signal at rates of several thousand times per second. Each sample is then converted into digital data, which is compressed before traveling through bandwidth to the receiver on the other end. The reassembly of the digital data into audio includes minute particles that are missing due to the conversion process, but which are typically too small for users (who only hear continuous audio) to detect. The conversion process is called encoding; the process by which digital signals are reconfigured into audio is known as decoding.
Compression is a key function performed by VoIP codecs, and is the name of the process whereby the size of audio data is decreased so it can travel in smaller increments over bandwidth to the other user. Bandwidth is typically expensive and a valuable commodity; compressing data makes it lighter and easier to transport and helps to maximize the performance of the bandwidth and the quality of the data it is both sending and receiving. Compression can be somewhat of a tricky process, however, because the more tightly data is compressed the less optimal its sound quality is. Conversely, the less tightly the data is compressed the better it sounds—and the more strain it places on bandwidth, which may require greater amounts to transport the data. As a result, codecs vary considerably in required bandwidth, sound quality, forms of compression and computational requirements.
One of the most widely used codecs in current VoIP technology is known as G.729A, which has a sampling rate of 8,000 times per second. Another highly prevalent codec is CS-ACELP, which is useful for streamlining and organizing bandwidth, and which also contain a component known as Annex B. Annex B is the part of CS-ACELP that is largely responsible for packet switching, which means that if no one is talking data will not be transmitted throughout VoIP. Packet switching is widely considered superior to its alternative, circuit switching.