An audio codec is a device or computer program capable of coding or decoding a digital data stream of audio.
In software, an audio codec is a computer program implementing an algorithm that compresses and decompresses digital audio data according to a given audio file or streaming media audio coding format. The objective of the algorithm is to represent the high-fidelity audio signal with minimum number of bits while retaining the quality. This can effectively reduce the storage space and the bandwidth required for transmission of the stored audio file. Most codecs are implemented as libraries which interface to one or more multimedia players.
In hardware, audio codec refers to a single device that encodes analog audio as digital signals and decodes digital back into analog. In other words, it contains both an Analog-to-digital converter (ADC) and Digital-to-analog converter (DAC) running off the same clock. This is used in sound cards that support both audio in and out, for instance.