A codec is either a hardware device or a software-based process that compresses and decompresses large amounts of data used in voice over IP, video conferencing and streaming media. A codec takes data in one form, encodes it into another form and decodes it at the egress point in the communications session.
The purpose of codecs
There are two types of codecs used in communications. The first codec is typically hardware-based, and it performs analog-to-digital and digital-to-analog conversion. A common example is a modem used for sending data traffic over analog voice circuits. In this case, the term codec is an acronym for coder/decoder.
The second type of codec is now more commonly used to describe the process of encoding source voice and video captured by a microphone or video camera in digital form for transmission to other participants in calls, video conferences, and streams or broadcasts. In this example, the term codec stands for compression/decompression.
How codecs work
A codec's primary job is data transformation and encapsulation for transmission across a network. Voice and video codecs use a software algorithm running on a common processor or in specialty hardware optimized for data encapsulation and decapsulation.
Predictive codecs use an algorithm to convert data into a byte sequence for easy transmission across a data network, and then convert the byte sequence back into voice or video for reception at the endpoint.
Codecs can run entirely on specialized hardware, on general-purpose hardware or on a combination of both. Most smartphones provide optimized hardware to support video codecs.
Types of codecs
Voice and video codecs are categorized by whether they are lossy or lossless and compressed or uncompressed. Lossy codecs capture only a portion of the data needed by a predictive algorithm to produce a near-identical copy of the original voice or video data at the far end, thus minimizing bandwidth requirements for media transmission. Lossless codecs capture, transmit and decode all audio and video information at the far end at the expense of higher bandwidth requirements.
Voice codecs can be defined as narrowband or wideband, depending on the breadth of the voice spectrum that they are able to capture and reproduce. Wideband codecs, often marketed as HD voice, produce the highest quality voice experience.