# Còdec d'àudio

Un còdec d'àudio és un còdec que inclou un conjunt d'algoritmes que permeten codificar i descodificar dades d'àudio; és a dir reduir el nombre de bits que ocupa un arxiu d'àudio. S'utilitza per comprimir senyals o arxius d'àudio amb un flux de dades (stream) perquè ocupin el menor espai possible, aconseguint una bona qualitat final, i descomprimir-los quan s'han de reproduir o manipular en un format més apropiat. S'implementa en programari (software), maquinari (hardware) o una combinació d'ambdós.

## Mètodes de codificació

Hi ha una gran varietat de còdecs d'àudio, tant per codificar música com a senyals de veu. Tot i que cada cop són més complexos i afegeixen característiques addicionals, es poden classificar en quatre grans grups depenent dels mètodes de codificació o reducció de la taxa de bits:

### Codificadors perceptuals

Els codificadors perceptuals aprofiten les limitacions en la percepció del sistema auditiu humà (llindar d'audició, emmascarament temporal i/o freqüencial) per a codificar el flux de dades.
Per a codificar les mostres en format PCM (àudio digital sense comprimir), es transformen al domini freqüencial i es quantifiquen i codifiquen a partir d'un conjunt de dades obtingudes en un model psicoacústic. La implementació d'aquest model psicoacústic és el que determina la qualitat final i acostuma a aprofitar l'emmascarament temporal o freqüencial, sent el llindar d'emmascarament el que controla la quantificació.
En la quantificació d'àudio s'utilitzen diferents tipus tipus de quantificadors: uniforme, no-uniforme, logaritmic (llei-mu o llei-A), diferencial o vectorial. Generalment s'utilitza quantificació no-uniforme per música, quantificació logarítmica o diferencial per senyals de veu i quantificació vectorial per a processament avançat del senyal de veu.
A la sortida d'aquest bloc es pot incorporar un codificador entròpic que comprimeix sense pèrdues per reduir la mida de la trama binària. Aquesta trama s'empaqueta juntament amb informació addicional que conté dades imprescindibles per a la descodificació com la mida de la trama, el nombre de bits de codificació, el marge dinàmic… També s'hi pot afegir correcció d'errors.
El descodificador desempaqueta el senyal codificat per obtenir les mostres i la informació auxiliar. Seguidament descodifica les mostres i les converteix al domini temporal per obtenir l'àudio en format PCM, tot i que aquest no serà igual a l'inicial, ja que és un procés de quantificació amb pèrdues.
Alguns dels còdecs que utilitzen aquest mètode són les diferents versions de MPEG-1, de les quals el més conegut és MP3 (MPEG-1 layer 3).

### Codificadors paramètrics

Els codificadors paramètrics es basen en el fet que l'àudio i la veu es poden representar i sintetitzar únicament amb tons aïllats, patrons harmònics (representats amb sinusoides) i components sorolloses. Aquests, es representen amb paràmetres com l'amplitud, la freqüència fonamental o els components espectrals, i requereixen pocs bits per representar-los.
Durant el procés de codificació s'extreu informació de les mostres d'entrada aplicant una transformada de fourier per llavors realitzar l'estimació de paràmetres. Després es codifiquen basant-se en un model de la percepció humana i es multiplexen per formar la trama de bits amb els paràmetres codificats.
En el procés de descodificació, a través d'un bloc de síntesi i amb els paràmetres codificats, es reprodueix un senyal amb les característiques anàlogues al senyal original.
Un exemple d'aquest tipus de codificació és HVXC per veu i HILN per música, ambdós compresos dins l'estàndard MPEG-4.

#### Vocoders (codificadors paramètrics per a senyals de veu)

Els vocoders són codificadors paramètrics específics per a codificació de la parla. S'analitza el senyal de veu corresponent a un segment temporal considerat estacionari per extreure'n els paràmetres del model i l'excitació. Aquesta informació és la que es codifica. En el procés de descodificació, el descodificador sintetitza els paràmetres a través d'un model de producció de veu.
    Existeixen dos tipus de vocoders:
      * vocoder per predicció lineal
      * LPC-10

### Codificadors de forma d'ona

Els codificadors de forma d'ona es basen en l'estudi del senyal d'àudio, de manera que intenten reproduir la forma d'ona del senyal d'entrada. Generalment es dissenyen per ser independents del senyal, de manera que s'utilitzen per codificar una gran varietat de senyals. Aquests codificadors aprofiten la redundància del senyal, i a partir d'una predicció lineal permeten codificar el senyal; és per això que aconsegueixen taxes de compressió elevades quan els senyals són molt redundants i pràcticament nul·les quan no ho són.
La codificació del senyal es pot dur a terme tant en el domini temporal com freqüencial:
    Codificadors en el domini temporal:
      * Modulació per codificació d'impulsos (PCM, Pulse Code Modulation)
      * Modulació per codificació d'impulsos diferencial (DPCM, Differential PCM)
      * Modulació per codificació d'impulsos diferencial adaptativa (ADPCM, Adaptative DPCM)
    Codificadors en el domini freqüencial:
      * Codificació en subbandes
      * Codificació per transformada

### Codificadors híbrids (senyals de veu)

Els codificadors híbrids també coneguts com a codificadors d'anàlisi-per-síntesis combinen les tècniques dels codificadors de forma d'ona amb les dels vocoders. L'objectiu d'aquests és obtenir una alta qualitat de veu a taxes de bit baixes (inferiors a 8 kHz).
El seu funcionament es basa a analitzar un conjunt de mostres com una única per obtenir-ne els paràmetres del senyal. Al decodificar-la, se sintetitzen els paràmetres aconseguint que s'assembli al màxim amb l'original.
    Alguns d'aquests codificadors són:
      * Codificador RELP
      * Codificador multipols MPC
      * Codificador CELP
      * Codificador VSELP
      * Codificador RPE-LTP

## Tipus de còdecs d'àudio

Si obviem les pèrdues causades per l'error de quantificació que en molts casos són inapreciables, els còdecs poden ser, segons el tipus de compressió amb pèrdues (lossy) o sense pèrdues (lossless).

### Còdecs d'àudio amb pèrdues

En àudio s'aprofiten les limitacions del sistema auditiu humà (llindar d'audició, emmascarament temporal i/o emmascarament freqüencial) per a comprimir les dades d'àudio. S'utilitzen diferents mètodes per eliminar les dades inaudibles:
   * Transformació en el domini freqüencial i eliminació de les freqüències inaudibles (inferiors a 20 Hz o superiors a 20 kHz, o bé emmascarades per altres freqüències de major potència).
   * Divisió del senyal en subbandes de freqüència que s'aproximen a les bandes crítiques i quantificar cada subbanda en funció d'un llindar de detecció del soroll dins d'aquesta subbanda. D'aquesta manera s'analitza el senyal d'àudio i es calcula la quantitat de soroll (pèrdues inapreciables) que es pot introduir a cada rang de freqüències, és a dir el llindar d'emmascarament.
   * Predicció de dades.
   * Caracterització de la veu a partir d'una parametrització.
El nivell de compressió es pot controlar i depèn de la qualitat que es vulgui obtenir, la mida de l'arxiu, l'amplada de banda de la xarxa, el temps de compressió...
Generalment s'utilitzen compressions màximes per a transmissions, especialment quan són serveis en directe com telefonia (telefonia IP o cel·lular) o reproduccions sota demanda com podcasts (ràdio per internet o programes d'àudio per internet).
Després de la compressió amb pèrdues s'aplica sempre una compressió sense pèrdues, explicada a continuació.

### Còdecs d'àudio sense pèrdues

Aquests còdecs utilitzen una compressió sense pèrdues per minimitzar la mida del flux de dades. Per dur a terme aquesta codificació s'utilitzen algorismes basats en l'eliminació de la redundància del senyal d'àudio i, per tant, en el grau de predicibilitat d'una informació. Si el senyal té patrons repetitius, aquest és redundant i, per tant, resulta fàcil predir-lo.
Sovint, els patrons repetitius dels senyal són més evidents en un altre domini (temporal, freqüencial...), és per això que la transformació d'un senyal en funció d'aquests patrons permetrà reduir-ne o eliminar-ne la redundància.
En àudio, com en vídeo, imatge o dades l'eliminació de la redundància s'implementa:
   * Transformacions en un altre domini on els patrons repetitius siguin més evidents
   * Predicció
   * Codificació entròpica: codificació de Huffman, codificació aritmètica, Run Length Coding (RLE).

## Paràmetres

Els paràmetres amb els quals es caracteritza un còdec d'àudio són:
   * Nombre de canals: depèn del nombre de senyals d'àudio simultanis que conté un flux de dates codificats. Pot ser mono (1 canal), estèreo (2 canals) o multicanal com 5.1 (sis canals) o 7.1 (vuit canals).
   * Freqüència de mostratge (Fm): determina la qualitat percebuda, per tant com més alta sigui major serà la fidelitat del so obtingut respecte al senyal d'àudio original, sempre tenint present que la freqüència audible màxima és aproximadament 20 kHz. Tenint en compte que l'oïda humana no és capaç de percebre freqüències superiors a 20 kHz i donat que la freqüència de mostratge ha de complir el criteri de Nyquist, per obtenir qualitat CD mai s'utilitzen freqüències de mostratge superiors a 44.1 kHz ja que no suposa cap guany de qualitat.
   * Nombre de bits per mostra: determina la precisió amb la que es reprodueix el senyal original i el marge dinàmic d'aquest. S'utilitzen 8 bits (per un marge dinàmic de fins a 45 dB), 16 (per un marge dinàmic fins a 90 dB, com el format CD) o 24 bits per mostra (per 109 a 120 dB de marge dinàmic)
   * Tipus de compressió: distingeix entre compressió amb pèrdues (lossy codec), quan s'eliminen freqüències teòricament inaudibles per l'ésser humà i compressió sense pèrdues (lossless codec).
   * Taxa de bits: determina el nombre de bits d'informació que es processa per unitat de temps. La taxa de bits no es pot deduir dels paràmetres anteriors ja que la compressió pot ser amb pèrdues o sense pèrdues. A més aquesta pot ser constant (CBR), variable (VBR) o en mitja (ABR). Especialment en àudio s'acostuma a utilitzar taxa de bits variable(VBR) ja que és més eficient que CBR donat que en silencis o segments on la complexitat és baixa es poden emmagatzemar amb menor nombre de bits, mentre que parts de complexitat més elevada es poden codificar amb més definició.

## Aplicacions

L'objectiu principal dels còdecs d'àudio és reduir la quantitat de dades digitals necessaris per reproduir un senyal auditiu. És útil comprimir les dades perquè ocupin la mínima mida possible a l'hora d'emmagatzemar-los i, si s'han d'enviar per qualsevol tipus de xarxa, la transisssió sigui ràpida. Així, les principals aplicacions són:
   * Emmagatzement: útil per a dispositius de reproducció multimedia o d'àudio, ja que com millor sigui la codificació, major serà la compressió; per tant menor serà l'espai necessari per emmagatzemar-los. S'utilitza en reproductors d'àudio digital com reproductors de CD-MP3, reproductors basats en Adobe Flash o reproductors basats en disc dur (iPod d'Apple, Creative Zen, Commodore eVIC…).
   * Transmissió: útil quan s'ha d'enviar la informació per qualsevol xarxa, ja que com menor sigui la taxa de bits més ràpid serà la transmissió. S'utilitza per a podcasting (ràdio o programes d'àudio per internet), ràdio digital, audio per a televisió digital i especialment per a videoconferència i telefonia (IP o cel·lular).

## Estandardització

Hi ha dues organitzacions que dominen l'estandardització de codificadors d'àudio:
   * ITU-T (Unió internacional de les Telecomunicacions) dins el conjunt de normes H.320 i H.323 on defineixen els estandards per a videoconferència o telefonia IP.
   * ISO/IEC (Organització Internacional de l'Estandardització i Comissió Electrotècnica Internacional)

## Característiques dels principals còdecs d'àudio

Les característiques tècniques dels principals còdecs d'àudio són:
| Codec | AAC | FLAC | Monkey's Audio | MP3 | Vorbis (Ogg) | WavPack | WMA |
| Tipus de compressió | Amb pèrdues, Híbrid | Sense pèrdues | Sense pèrdues | Amb pèrdues | Amb pèrdues | Amb pèrdues, sense pèrdues, híbrid, | Amb pèrdues, sense pèrdues |
| Freqüència de mostratge | 8 kHz a 192 kHz | 1 kHz - 1.04857 MHz | 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48 kHz | 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48 kHz | 1 Hz a 200 kHz | 1Hz a 13.777216 MHz | 8, 11.025, 12, 16, 22.05, 32, 44.1, 48, 96 kHz |
| Taxa de bits | 8-529 kbps (estéreo) | Variable | Variable | 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 kbps | Variable | Variable (mode sense pèrdues) / superior 196 kbps (mode amb pèrdues) | 4-768 kbps / variable (sense pèrdues) |
| Bits per mostra | Qualsevol | 4, 8, 16, 24, 32 | ? | Qualsevol | Qualsevol | Variable (mode sense pèrdues) / superior a 2.2 (mode amb pèrdues) | 16, 24 (mode sense pèrdues) / Qualsevol (mode amb pèrdues) |
| CBR | Si | No | No | Si | Si | Si | Si |
| VBR | Si | Si | Si | Si | Si | Si | Si |
| Multicanal | fins a 28 canals | fins a 8 canals | No | No | fins a 255 canals | fins a 16 canals | fins a 8 canals (WMA Professional) / fins a 6 canals (WMA sense pèrdues) |

## Exemples de còdecs d'àudio

| Sense pèrdues | Amb pèrdues | Còdecs de veu |
| ALAC (Apple Lossless) DST (Direct Stream Transfer) FLAC (Free Lossless Audio Codec) LA (Lossless Audio) LPAC (Lossless Predictive Audio Codec) LTAC (Lossless Transform Audio Codec) MLP (Meridial Lossless Packing) Monkey's Audio (APE) MPEG-4 ALS MPEG-4 SLS OptimFROG QDesign RealAudio Lossless RKAU Shorten (SHN) TTA (True Audio) WavPack WMA lossless (Windows Media Audio Lossless) | AAC (Advanced Audio Coding) HE-AAC AC3 (Dolby Digital A/52) ADPCM ADX (videojocs) ATRAC (Adaptive TRansform Acoustic Coding) DRA DTS (Digital Theather Systems) MP1 (MPEG audio layer-1) MP2 (MPEG audio layer-2) MP3 (MPEG audio layer-3) mp3PRO Musepack Ogg Vorbis Perceptual Audio Coding RTA (Real Time Audio Codec) TwinVQ Siren WMA (Windows Media Audio) | AMBE AMR CELP EVRC G.711 G.722 G.723 G.726 G.728 G.729 GSM HILN (MPEG-4 paramètric) iLBC IMBE Perceptual Audio Coding (ràdio digital i satèl·lit) Speex SMV QCELP VSELP |

## Vegeu també

* Processament de senyals digitals
* Còdecs sense pèrdues
* Algorisme de compressió amb pèrdua
* Codificació de veu
* Codificació d'àudio de la telefonia IP
* Còdec de vídeo

## Enllaços externs

* Formació d'un còdec Arxivat 2009-02-27 a Wayback Machine.
* Comparatives de còdecs d'àudio sense pèrdues Arxivat 2010-11-25 a Wayback Machine.
* Comparativa d'HydrogenAudio
* Codificació de veu Arxivat 2009-12-14 a Wayback Machine.