Còdec d'àudio

De Viquipèdia
Dreceres ràpides: navegació, cerca

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ó[modifica | modifica el codi]

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[modifica | modifica el codi]

Esquema d'un codificador perceptual d'àudio
Esquema d'un descodificador perceptual d'àudio

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[modifica | modifica el codi]

Codificador d'àudio paramètric

Els codificadors paramètrics es basen en 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)[modifica | modifica el codi]

Esquema d'un sistema de codificació-descodificació paramètrica

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:


Codificadors de forma d'ona[modifica | modifica el codi]

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:

Codificadors híbrids (senyals de veu)[modifica | modifica el codi]

Exemple d'un codificador híbrid per a 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 a 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:


Tipus de còdecs d'àudio[modifica | modifica el codi]

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[modifica | modifica el codi]

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'ample 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[modifica | modifica el codi]

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:

Paràmetres[modifica | modifica el codi]

Els paràmetres amb els que es caracteritza un còdec d'àudio són:

  • Nombre de canals: depèn del nombre de senyals d'àudio simultanis que conté un fluxe 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 el 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[modifica | modifica el codi]

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:


Estandarització[modifica | modifica el codi]

Hi ha dues organitzacions que dominen l'estandarització de codificadors d'àudio:


Característiques dels principals còdecs d'àudio[modifica | modifica el codi]

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[modifica | modifica el codi]

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é[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]