Sei sulla pagina 1di 44

Codificacin del

audio
Marta Ruiz Costa-juss
Helenca Duxans Barrobs
PID_00188067

CC-BY-NC-ND PID_00188067

Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a una licencia de
Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de Creative Commons. Podis copiarlos, distribuirlos
y transmitirlos pblicamente siempre que citis el autor y la fuente (FUOC. Fundacin para la Universitat Oberta de Catalunya),
no hagis de ellos un uso comercial y ni obra derivada. La licencia completa se puede consultar en http://creativecommons.org/
licenses/by-nc-nd/3.0/es/legalcode.es

Codificacin del audio

Codificacin del audio

CC-BY-NC-ND PID_00188067

ndice

Introduccin...............................................................................................

Objetivos.......................................................................................................

1.

Introduccin al audio digital.........................................................

2.

Cuantificacin.....................................................................................

10

2.1.

Cuantificacin uniforme .............................................................

11

2.2.

Cuantificacin no uniforme .......................................................

14

2.3.

Cuantificacin vectorial ..............................................................

16

3.

Cuantificacin inversa.....................................................................

19

4.

Procesos del audio digital...............................................................

20

4.1.

Sobremuestreo .............................................................................

20

4.2.

Tramado .......................................................................................

21

5.

Clasificacin de los codificadores de audio................................

23

6.

Codificadores de forma de onda....................................................

24

6.1.

PCM: modulacin en impulsos codificados ...............................

24

6.2.

DPCM: modulacin diferencial por impulsos codificados ..........

25

6.3.

ADPCM: modulacin diferencial adaptativa por impulsos

7.

8.

9.

codificados ...................................................................................

26

6.4.

Codificacin en subbandas .........................................................

28

6.5.

Codificacin basada en transformadas .......................................

29

Codificadores perceptivos................................................................

32

7.1.

Mapeo tiempo-frecuencia ...........................................................

33

7.2.

Modelo psicoacstico ..................................................................

34

7.3.

Asignacin de bits .......................................................................

34

Codificaciones especficas para voz..............................................

36

8.1.

Codificadores paramtricos: vocoder LPC ..................................

37

8.2.

Codificadores paramtricos: codificacin armnica ...................

39

8.3.

Codificadores hbridos: code exited linear prediction......................

39

Formatos de ficheros de audio.......................................................

41

9.1.

Formato de audio con forma de onda ........................................

41

9.2.

MPEG-1 audio layer-3 .................................................................

42

9.3.

Advanced audio coding...................................................................

43

Codificacin del audio

CC-BY-NC-ND PID_00188067

9.4.

Windows media audio....................................................................

44

9.5.

Vorbis OGG....................................................................................

44

CC-BY-NC-ND PID_00188067

Introduccin

La codificacin permite obtener una representacin ms compacta de las seales de audio. Las ventajas que proporciona son las siguientes:

En transmisin: sereduceelanchodebanda necesario para transmitir


el audio. Por lo tanto, se puede aumentar la velocidad de transmisin o
multiplexar diferentes flujos de audio en un mismo canal.

En almacenamiento: sereduceelnmerodebits necesarios para representar la misma informacin. Por lo tanto, se consigue almacenar el mismo audio de modo que ocupa menos. Esto permite almacenar ms contenido en un mismo soporte fsico.

Codificacin del audio

CC-BY-NC-ND PID_00188067

Objetivos

Este mdulo presenta el proceso de codificacin de la seal de audio para almacenarlo o transmitirlo digitalmente, y los procesos necesarios para recuperar el audio que ha sido codificado previamente. As, los objetivos principales
de este mdulo son los siguientes:

1. Identificar los mdulos comunes a todos los codificadores y las diferencias


entre cada uno de estos mdulos.
2. Saber de qu manera se puede cuantificar una seal discreta para obtener
una seal digital.
3. Identificar las ventajas y los inconvenientes de los diferentes tipos de cuantificacin, as como el error de cuantificacin asociado a cada tipologa.
4. Clasificar los codificadores segn la estrategia utilizada para representar la
seal discreta de manera comprimida.
5. Conocer los principales formatos de ficheros de audio.

Codificacin del audio

CC-BY-NC-ND PID_00188067

Codificacin del audio

1. Introduccin al audio digital

La seal de audio analgico es continua en tiempo y en amplitud. Los codificadores digitalizan las seales para almacenar o transmitir.
Codificador de audio

Figura 1. Esquema funcional de un codificador de audio genrico

El proceso de digitalizacin de una seal consta de tres fases, como se muestra en la figura 1. En primer lugar, la seal analgica sediscretizaentiempo
por medio de un convertidor A/D, que muestrea la seal de entrada a una frecuencia fija, denominada frecuencia de muestreo. A continuacin, cada muestra
sediscretizaenamplitud, utilizando, como mnimo, un cuantificador para
representar todos los valores de las muestras posibles con un nmero finito de
smbolos. Finalmente, los smbolos se transforman en bits para transmitirlos
o almacenarlos.
En la figura 2 se muestra una seal sinusoidal analgica (lnea roja), la seal
discreta obtenida una vez se ha muestreado (secuencia de barras azules), los
smbolos que corresponden a cada muestra (valores de 0 a 15) y la transformacin de estos smbolos a bits.

Ved tambin
Recordad que la conversin A/
D y D/A la hemos explicado en
el apartado Conversin A/D
y D/A. Entorno analgico y entorno digital del mdulo 1.

CC-BY-NC-ND PID_00188067

Proceso de digitalizacin.

Figura 2. La seal sinusoidal analgica (x(t) rojo) se discretiza en tiempo (x[n] puntos sealados con las barras
azules) y obtiene muestras, que se discretizan en amplitud mediante codificacin 4-PCM (escalas en negro) y se
obtiene la secuencia de 0 y 1 s.

La operacin inversa a la codificacin se denomina descodificacin y tericamente permite recuperar la seal original (a pesar de que en la prctica veremos que no somos capaces de recuperar exactamente la seal original).
La codificacin tiene como objetivo representar una seal analgica de una
manera digital y compacta, es decir, el objetivo que tiene es minimizar la
cantidad de informacin necesaria para representar una seal. A la vez, intenta minimizar la prdida de calidad de la seal que se obtiene cuando se descodifica.
Para evaluar la eficacia de un codificador se tienen en cuenta diferentes parmetros:

La fidelidad, o cmo es de semejante para el odo humano el audio descodificado con el audio original.

La tasadebits (bit rate), o la cantidad de bits por segundo que se necesitan


para representar la seal codificada.

La complejidad de la codificacin y la descodificacin, que determina si se


pueden llevar a cabo con software o es necesario disponer de un hardware
dedicado.

El retardo introducido para la codificacin y la descodificacin.

Codificacin del audio

CC-BY-NC-ND PID_00188067

Para la edicin de msica profesional se necesitan codificadores con una alta


fidelidad, aunque esto implique tener una tasa de bits elevada e, incluso, un
dispositivo especial. En cambio, para la telefona la calidad no es tan importante, siempre que la voz codificada sea inteligible: en el caso de la telefona se
busca reducir la tasa de bits para ahorrar ancho de banda en las transmisiones.
En este mdulo veris cmo se lleva a cabo la discretizacin en amplitud de las
muestras (mdulo central de la figura 1), proceso denominado cuantificacin.
Tambin veris las estrategias que utilizan los codificadores de audio actuales
para mejorar la eficiencia de la codificacin.
Para saber ms
El audio digital naci a finales de los aos cincuenta. Max Mathews y su equipo de los
laboratorios Bell Telephone desarrollaron el denominado teorema de muestreo y fueron los
primeros en generar sonidos simples mediante un ordenador. La limitacin principal de
entonces era la poca capacidad de las mquinas.
El primer sistema de grabacin digital lo cre NHK en los aos sesenta. La utilizacin
de un cuantificador de 16 bits empez con Stockham en 1976. El sonido digital lleg al
pblico a principios de los ochenta gracias al disco compacto, creado por Sony y Philips.
Ms o menos, al mismo tiempo, surgan los primeros sintetizadores digitales. Ms adelante se desarrollaron tipos de archivos como el MP3.

Codificacin del audio

Transcodificacin
Un transcodificador es un sistema que cambia la codificacin aplicada a una seal. Por
lo tanto, la entrada que tiene
es una seal codificada (digital) y la salida, la seal recodificada segn la nueva codificacin elegida. As, un transcodificador permite la conversin
directa (de digital a digital) de
una codificacin a otra.

10

CC-BY-NC-ND PID_00188067

Codificacin del audio

2. Cuantificacin

El cuantificador es un componente imprescindible en los codificadores; por


lo tanto, dedicaremos parte de este mdulo a saber qu es un cuantificador y
cules son sus caractersticas y su comportamiento.
La cuantificacin consiste en transformar una seal continua en amplitud y
discreta en tiempo en una seal digital (discreta en amplitud y tiempo). A la
vez, se busca representar un nmero extenso de valores con un nmero ms
pequeo de valores.
Antes, definiremos algunos conceptos bsicos sobre cuantificacin: nmero de
bits de cuantificacin, nmero de niveles de cuantificacin, margen dinmico,
paso de cuantificacin y error de cuantificacin.

El nmerodebits(b) nos indica la cantidad de estados de salida del cuantificador. Un cuantificador tiene ms resolucin si tiene ms nmero de
bits.

Los niveles de cuantificacin (N) son los valores nuevos que toma la
seal cuantificada y vienen dados por el nmero de bits del cuantificador.
Su expresin es

El margendinmico(MD) de un cuantificador nos indica el mnimo y


mximo de la seal que se debe cuantificar (-

).

Rango dinmico
El mnimo y mximo de la seal que se ha de cuantificar se determina, entre otros rangos,
a partir del rango de valores analgicos que tiene la seal o a partir del rango de valores
analgicos que nos interesa para nuestro procesamiento digital.

El pasodecuantificacin () se define como la diferencia que hay entre


dos niveles de cuantificacin consecutivos:

El errordecuantificacin se define como la distancia entre la seal original y la seal cuantificada; por lo tanto, que:

En la figura 3 vemos una representacin grfica del error de cuantificacin:

CC-BY-NC-ND PID_00188067

11

Error de cuantificacin

Figura 3. Representacin de una seal analgica (rojo), el resultado de la cuantificacin de esta seal (verde) y el
error de cuantificacin (azul). La seal analgica (en rojo) se discretiza en tiempo con una frecuencia de muestreo
muy alta y al cuantificarse en amplitud (escalas verdes) surge un error de cuantificacin (en azul).

Si tenemos una seal continua cuya amplitud oscila entre 0 y 3, una cuantificacin posible es que a todos los valores entre 0 y 1 les demos un valor de 0,5, a los valores entre 1
y 2 un valor de 1,5 y a los valores entre 2 y 3 un valor de 2,5. Esto es una cuantificacin
uniforme. Por lo tanto, los niveles de cuantificacin son 0,5, 1,5 y 2,5.

En los prximos apartados veremos diferentes estrategias para cuantificar una


seal.
2.1. Cuantificacin uniforme
Sabemos que para cada valor de la seal x[n] tenemos un valor asociado y[n],
donde

. La particularidad de la cuantificacin uniforme consiste

en considerar exclusivamente nivelesdecuantificacin(L)distribuidosde


lamismamanera. Es el tipo de cuantificacin ms sencilla que se utiliza.
La figura 4 muestra un ejemplo de cuantificador uniforme de 3 bits. El nmero
de niveles de un cuantificador viene dado por

, donde b es el nmero de bits.

En el caso particular de tener 3 bits, hay ocho niveles de cuantificacin, en los


que cada nivel tiene asignado un cdigo binario entre 000 y 111:

Codificacin del audio

12

CC-BY-NC-ND PID_00188067

Cuantificador uniforme

Codificacin del audio

Referencia bibliogrfica
A.Moreno (2003). Cuantificacin.

Figura 4. Ejemplo de cuantificador uniforme de ocho niveles (3 bits) (, 0 < L < 7)

As, observamos que el cuantificador uniforme de la figura 4 contiene los intervalos de cuantificacin siguientes:

y estos niveles de cuantificacin:

Para definir los intervalos de cuantificacin hacemos lo siguiente:

Definimos el margen dinmico del cuantificador.

Definimos el nmero de bits que queremos utilizar (b), que nos da el nmero de niveles de cuantificacin:

Obtenemos el paso de cuantificacin:

Definimos cada intervalo de cuantificacin (q) como la diferencia entre


el valor ms alto y ms bajo de la entrada a los que se asigna el mismo
estado de salida.

A partir de los niveles de cuantificacin de un cuantificador uniforme podemos definir la relacin seal-ruido (SNR) que tienen.

CC-BY-NC-ND PID_00188067

13

Recordamos que la SNR, como indica su nombre, es el cociente entre el nivel


de seal ( ) y el nivel de ruido ( ).
A continuacin, estudiamos el nivel de ruido que tiene un cuantificador uniforme. El nivel de ruido se obtiene a partir de la varianza, que se define de la
manera siguiente:

donde

es la funcin densidad de probabilidad del error de cuantificacin.

Consideramos que el error de cuantificacin est distribuido uniformemente.


Entonces, tenemos que la funcin densidad de probabilidad del error de cuantificacin es grficamente la siguiente:

Y, analticamente, la funcin densidad de probabilidad es esta:

As pues, concretamente, la varianza es la siguiente:

Sabemos que:

Por lo tanto:

Y, finalmente, la SNR en decibelios es esta:

Codificacin del audio

CC-BY-NC-ND PID_00188067

14

Codificacin del audio

Observando el resultado vemos que la SNR mejora 6 dB por cada bit que aadimos al cuantificador, independientemente del tipo de seal que se tenga
que cuantificar. Ahora bien, la SNR tambin depende de la proporcin entre el
valor mximo de la seal y la varianza que tiene. Cuanto mayor es el cociente,
peor es la SNR.
Observad que es difcil decidir el rango de un cuantificador porque un cuantificador debe ser vlido para diferentes tipos de seales: voz (seales sordas y
sonoras, seales pronunciadas por diferentes locutores), msica, etc.
2.2. Cuantificacin no uniforme
La cuantificacin no uniforme asigna nivelesdecuantificacinquenoestndistribuidosuniformemente. La principal ventaja de este tipo de cuantificacin es que se puede adaptar a la seal. As, si una seal contiene ms
informacin en un margen de amplitud concreto, se asignan ms niveles de
cuantificacin en este margen.
Para hacer un cuantificador no uniforme se deben buscar los intervalos

los niveles de cuantificacin ptimos, de modo que se minimice la variancia


del error de cuantificacin.
Una manera de elaborar una cuantificacin no uniforme es hacer una compresin de la seal, despus una cuantificacin uniforme y finalmente una
expansin de la seal, como muestra la figura 5. Esta manera de hacer una
cuantificacin no uniforme se denomina cuantificacinlogartmica.
Cuantificacin no uniforme

Referencia bibliogrfica
AsuncinMoreno (2003).
Cuantificacin.

Figura 5. Pasos que se deben seguir en una cuantificacin escalar o logartmica: compresin, cuantificacin
uniforme y expansin de la seal

Por lo tanto, la cuantificacin escalar o logartmica consiste en aadir un compresorlogartmico antes de elaborar una etapa de cuantificacin uniforme
convencional. La utilidad del compresor logartmico es muy clara para seales
de audio. Sabemos que una seal de audio puede tener un rango de amplitudes
muy extenso (superior a 60 dB) pero no todas las amplitudes son igualmente
probables. Interesa minimizar el error de cuantificacin (es decir, aumentar la

CC-BY-NC-ND PID_00188067

15

resolucin del cuantificador) donde las amplitudes de la seal son ms probables (por ejemplo, en seales de voz telefnicas, los valores de las amplitudes
pequeas son los ms probables).
En trminos generales, podemos decir que hay dos estndares para hacer un
cuantificador logartmico: la ley-A (europeo) y la ley- (americano y japons).
La diferencia entre una y otra es el tipo de compresin y expansin. Ahora
bien, el objetivo es el mismo, esto es, amplificar los valores con amplitudes ms
pequeas antes de hacer la cuantificacin. La figura 6 muestra la compresin y
expansin que se realiza de la seal. Con la seal de salida de esta compresin
y expansin se efecta la cuantificacin uniforme.
Ley-A y ley- de compresin y expansin de la seal de voz

Figura 6. Ley-A y ley- de compresin y expansin de la seal de voz

Esta cuantificacin se utiliza en telefona.

La varianza del error de cuantificacin en un cuantificador logartmico incorpora la curva de compresin c(x):

Codificacin del audio

CC-BY-NC-ND PID_00188067

16

2.3. Cuantificacin vectorial


La cuantificacin vectorial (VQ) cuantificalosdatosenbloques de N muestras. As, a diferencia de la cuantificacin escalar (uniforme o no uniforme), la
cuantificacin vectorial tiene en cuenta los valores de la seal de manera conjunta. Para empezar a elaborar la cuantificacin se crean bloques de N muestras. Cada bloque de N muestras se trata como un vector de dimensin N.
Cada vector de dimensin N,
tor tambin de la misma dimensin
en el vector

se codifica mediante un vec. Cada vector se codifica

respecto al que tiene una distancia ms pequea. Una medida

de distancia entre dos vectores que se puede utilizar es la distancia euclidiana.


Distancia euclidiana
La distancia euclidiana entre dos vectores viene dada por la distancia entre cada una de
las dimensiones del vector; as, en un espacio bidimensional, tenemos que:

Los vectores y forman lo que se denomina bibliotecadecdigos o codebook.


Conocida la biblioteca de cdigos, solo se debe guardar el ndice del vector y
por ello se puede hacer una codificacin ms elevada. El nmero de vectores
(M) que contiene la biblioteca de cdigos se denomina medida de la biblioteca.
La biblioteca la denominamos Y:

Esta cuantificacin es ms eficiente que las cuantificaciones escalares pero es


ms compleja computacionalmente. Sobre todo es complicado disear la biblioteca de cdigos. Uno de los criterios que se utiliza para disear la biblioteca
de cdigos es minimizar el error cuadrtico medio entre los vectores x e y, que
se define de la manera siguiente:

Este error cuadrtico medio es una manera de medir el error de cuantificacin.


Por otro lado, a menudo se utilizan bibliotecas de cdigos marcadas por estndares a los que, a pesar de no ser ptimos para la seal que se ha de cuantificar, no hay que adjuntar la biblioteca de cdigos. Estas bibliotecas se han
diseado a partir de seales de entrenamiento y no a partir de la seal que se
ha de cuantificar.

Codificacin del audio

17

CC-BY-NC-ND PID_00188067

Codificacin del audio

El algoritmo de Lloyd (denominado tambin k-means) se utiliza para disear


bibliotecas de cdigos y se basa en la estrategia siguiente:
1. Inicializacin. Se selecciona una biblioteca inicial formada por M vectores
(y) de la seal que queremos codificar. Cada uno de estos vectores de la biblioteca es el representante de un grupo de vectores {x} y se denomina centroide.
La eleccin de la biblioteca inicial tiene influencia en la efectividad final; en
algunos casos se puede hacer de manera aleatoria o a partir de otros mtodos.
2. Clasificacin. Se clasifica el conjunto de vectores de entrenamiento en M
subgrupos, formados por los vectores x, de manera que
fica que

se veri-

3. Actualizacin del diccionario. Se calcula para cada grupo de vectores el nuevo centroide y. Este nuevo centroide cumple que es el vector que minimiza el
error cuadrtico medio del grupo.
4. Final o regreso al paso 2. Se acaba si se cumple cualquiera de las condiciones
siguientes:

El error cuadrtico medio total no disminuye de manera significativa respecto a la iteracin anterior.

Se han hecho N iteraciones del algoritmo (N es un valor prefijado).

El error cuadrtico medio est por debajo de un umbral preestablecido, o


en caso contrario se vuelve al paso 2.

El error de cuantificacin en este caso es la suma de las distancias de los vectores x a los centroides.

CC-BY-NC-ND PID_00188067

18

Queremos aplicar el algoritmo de Lloyd para hacer la cuantificacin de una seal triangular en Matlab. En primer lugar, diseamos la seal triangular muestreada mediante las
rdenes siguientes:
x=repmat([0:0.1:1 0.9:-0.1:0],1,1);
y=[1:1:21];
z=[x;y];
En segundo lugar, aplicamos el algoritmo de Lloyd a z, que es la representacin de la
seal en vectores de dos dimensiones, para crear una biblioteca de cdigos de medida 5:
[U, v, sumd, D]=kmeans(z,5);
U es la matriz que define a qu grupo pertenece cada vector de la seal; v son los centroides; D son las distancias de cada punto de la seal al centroide y sumd es la suma de
distancias dentro de cada centroide.
Con las rdenes siguientes visualizamos la seal y la cuantificacin:
plot(z(:,1),z(:,2),'v');
hold on;
plot(v(:,1),v(:,2),'sr');
Aplicacin
La seal de audio normalmente utiliza cuantificadores de 8, 16 o 20 bits. Esta cuantificacin implica que una seal sinusoidal (un tono puro) tiene una relacin de seal a
error de cuantificacin (SQNR) mxima, aproximadamente de 50, 100 y 123 dB, respectivamente. La calidad de CD se suele cuantificar con 16 bits (por canal si es sonido en
estreo), puesto que en la prctica los aparatos de msica no reproducen ms de 90 dB.

La cuantificacin es el proceso que permite transformar una seal discreta a una seal digital. Por ejemplo, la seal discreta [0,2 0,35 0,7] a
seal digital [0 0 1].
La cuantificacin uniforme distribuye los valores de la seal original en
L niveles separados uniformemente.
Como a menudo la informacin de una seal se concentra en un rango de valores determinado, es conveniente utilizar un cuantificador no
uniforme que presente ms granularidad donde la seal concentra ms
informacin. Dos estndares de cuantificacin no uniforme son la leyA y la ley-.
La cuantificacin vectorial cuantifica bloques de N muestras a la vez,
es decir, vectores de longitud N. As, se debe disear la biblioteca de
cdigos que contiene los vectores representativos de los vectores de la
seal original.

Codificacin del audio

Referencia bibliogrfica
AsuncinMoreno (2003).
Cuantificacin.
RafaelMolina. Cuantificacin escalar.

CC-BY-NC-ND PID_00188067

19

3. Cuantificacin inversa

La operacin inversa a la cuantificacin se denomina cuantificacin inversa.


La entrada de un cuantificador inverso, representado normalmente por Q-1,
es una secuencia de niveles correspondientes a una seal cuantificada (seal
digital), y la salida es la secuencia de muestras de la seal reconstruida (seal
discreta). Podis ver la figura 7.
Cuantificacin inversa

Figura 7. Representacin de la funcionalidad de la cuantificacin inversa: la entrada


-1
del Q se corresponde con una secuencia de niveles, y la salida, con muestras de
la seal.

Normalmente, el cuantificador inverso est formado por dos etapas. En la primera etapa se lleva a cabo la correspondencia nivel-valor de muestra segn el
tipo de cuantificacin aplicado (escalar uniforme, no uniforme o vectorial). En
la segunda etapa se aplica un interpolador a las muestras obtenidas para suavizar la seal reconstruida. El interpolador ms simple es un filtro paso bajo.
Como ya habris advertido, cuando se realiza una cuantificacin inversa no se
puede recuperar perfectamente la seal original (la seal antes de codificar).
En el proceso de cuantificacin puede que haya valores diferentes (por ejemplo, 0,25 y 0,35) que sean cuantificados con el mismo nivel de cuantificacin
(por ejemplo, 100). Por lo tanto, cuando se vuelve atrs con la cuantificacin
inversa, no se puede saber si el nivel 100 perteneca al valor 0,25 o al valor
0,35. En este caso hemos de fijar un valor para la correspondencia nivel-muestra, como por ejemplo el valor medio del intervalo (por ejemplo, 0,30 para el
intervalo 0,25-0,35). Por lo tanto, todos los valores que vengan del nivel 100
sern transformados en el valor 0,30.

Codificacin del audio

20

CC-BY-NC-ND PID_00188067

Codificacin del audio

4. Procesos del audio digital

En este apartado veremos un par de tcnicas relacionadas con la cuantificacin


del audio digital.
4.1. Sobremuestreo
El sobremuestreo u oversampling consiste en muestrearlasealutilizando
unafrecuenciademuestreosignificativamentemsaltaquedosvecesel
anchodebandadelaseal. As, el factor de sobremuestreo ( ) se define como
sigue:
Lectura de la frmula

Por qu se decide hacer un sobremuestreo? Bsicamente, en la prctica tenemos tres motivaciones:

es la frecuencia de muestreo.
B es el ancho de banda de la
seal.

1) Permite conseguir una resolucin ms alta en la conversin A/D y D/A,


lo que implica aumentar la SNR. En la prctica, la relacin entre el aumento
de resolucin y el aumento de la frecuencia de muestreo viene dada por la
relacin siguiente:
Lectura de la frmula

Por lo tanto, por cada bit que queremos aumentar en resolucin, debemos
multiplicar por cuatro la frecuencia de muestreo.

es la frecuencia de sobremuestreo.
w es el nmero de bits que
queremos aumentar en resolucin.

Si queremos implementar un convertidor de 20 bits, debemos utilizar un convertidor de


16 bits y una frecuencia de sobremuestreo que sea 256 (44) veces la frecuencia de Nyquist
(es decir, dos veces el ancho de banda de la seal).

2) Tiene un efecto de anti-aliasing (antiencabalgamiento). Si recordamos el


teorema de muestreo, muestrear en el dominio de la frecuencia quiere decir
repetir la seal cada

. Si esta

es grande, hay menos probabilidades de

encabalgamiento. Podis ver la figura siguiente:

Referencia bibliogrfica
Th.Zawistowski;P.Shah.
"An Introduction to Sampling Theory".

CC-BY-NC-ND PID_00188067

21

Ejemplo de muestreo y sobremuestreo

Figura 8. Ejemplo de seal muestreada (a) y sobremuestreada (b) en el dominio de la frecuencia

3) Reduce el ruido asociado a la seal analgica. As, si la seal analgica tiene


ruido aleatorio y tomamos N muestras, lo que hacemos es la media por N; por
lo tanto, se reduce el ruido en un factor 1/ N. Esto significa que la SNR mejora
en un factor N.

El sobremuestreo se aplica cuando la seal tiene asociado un ruido aleatorio.


Si no, fijaos en que las tres motivaciones principales comentadas no se verificaran necesariamente.
4.2. Tramado
El tramado o dither es un ruido intencionado que se utiliza para hacer
aleatorioelerrordecuantificacin, lo que permite reducir el ruido que genera la cuantificacin en las grabaciones de audio.
Ejemplo
Imaginemos que tenemos el valor 3,8 y lo debemos cuantificar a 3 o a 4. Sabemos que con
un 0,8 de probabilidad este valor debe estar cuantificado a 4, y con un 0,2 de probabilidad,
a 3. Si cuantificamos sin tramado, este valor siempre se cuantificar a 4 y, por lo tanto,
siempre cometeremos el mismo error. Si utilizamos tramado, debemos hacer lo siguiente:
calculamos una serie de nmeros aleatorios entre 0,0 y 0,9. Si aparecen los nmeros 0,0
o 0,1, redondearemos a 3, y con cualquiera otro nmero redondearemos a 4. Entonces
tenemos un 20% de probabilidades de redondear a 3 y un 80% de redondear a 4. El error
de cuantificacin es aleatorio y, por lo tanto, menos molesto para el odo.

Codificacin del audio

CC-BY-NC-ND PID_00188067

22

Hemos visto dos tcnicas que aplicando conocimiento sobre el sistema acstico humano y la percepcin del sonido (podis ver el apartado
Percepcin del sonido) permiten perfeccionar la cuantificacin:

El sobremuestreo consiste en muestrear la seal a una frecuencia


de muestreo sensiblemente ms elevada que dos veces el ancho de
banda que tiene.

El tramado quiere aleatorizar el error de cuantificacin, porque as


molesta menos al odo humano.

Codificacin del audio

CC-BY-NC-ND PID_00188067

23

5. Clasificacin de los codificadores de audio

Hasta ahora hemos visto los cuantificadores como sistemas que permiten discretizar la amplitud de las muestras; por lo tanto, los cuantificadores son un
mdulo necesario para los codificadores. Existen otras tcnicas, como las que
comentaremos a continuacin, que, utilizadas junto con un cuantificador, aumentan la eficacia de la codificacin.
La principal estrategia de codificacin, utilizada para reducir la tasa de bits
manteniendo la fidelidad del audio, es hacer algn tipo de procesamiento en
las muestras de la seal antes de aplicar el cuantificador, es decir, entre el bloque de conversin A/D y el cuantificador de la figura 1. Segn cmo sea este
procesamiento, la codificacin se puede clasificar en:

Codificacin de forma de onda.

Codificacin perceptiva.

Codificacin especfica para la voz.

En los apartados siguientes veremos ejemplos de estos tres tipos de cuantificacin.

Codificacin del audio

CC-BY-NC-ND PID_00188067

24

6. Codificadores de forma de onda

Los codificadores de forma de onda intentan representar de manera compacta


la forma de onda de la seal, independientemente del origen que tenga. Por
lo tanto, este tipo de codificadores se pueden utilizar para codificar cualquier
tipo de seal (audio, vdeo, comunicaciones) o cualquier tipo de datos.
Los codificadores de forma de onda pueden trabajar tanto en el dominio temporal como en el dominio frecuencial. En ambos casos, intentan eliminar la
redundancia que hay en la seal de entrada para reducir la tasa de bits. Los
codificadores de forma de onda ms utilizados que veremos en las prximas
secciones son los siguientes:

Codificadores en el dominio del tiempo: PCM, DPCM y ADPM.

Codificadores en el dominio de la frecuencia: en subbandas y por transformada.

Los codificadores de forma de onda son codificadores sin prdidas, es decir,


la seal obtenida de la descodificacin es muy similar a la seal de entrada
de la codificacin. Solo se ha introducido el ruido procedente del error de
cuantificacin.
Este tipo de codificadores son robustos frente a ruidos y errores de transmisin
y proporcionan una calidad alta de la voz codificada-descodificada cuando
trabajan con tasas de bits media, en torno a 32 kbps. Para tasas de bits ms
pequeas, la calidad proporcionada es peor que la de otros codificadores que
veremos ms adelante.
6.1. PCM: modulacin en impulsos codificados
La modulacin en impulsos codificados o pulsecode modulation (PCM) es el codificador ms simple. El audio de entrada se muestrea a una velocidad constante y la amplitud de cada muestra cuantifica con un cuantificador de los
que hemos explicado anteriormente (uniforme, no uniforme o vectorial). En
la descodificacin, simplemente se aplica el cuantificador inverso para obtener otra vez las muestras de la seal de audio. Podis ver la figura 9.
Codificacin PCM

Figura 9. Diagrama de bloques de un codificador PCM (izquierda) y del descodificador (derecha)

Codificacin del audio

CC-BY-NC-ND PID_00188067

25

Si la velocidad de muestreo es bastante elevada, se puede considerar que en el


proceso de codificacin no se pierde informacin; la nica fuente de error es
la cuantificacin. Cuantos ms niveles de codificacin se utilicen, ms fiel a
la seal de entrada es la seal de salida. Sin embargo, cuanta ms velocidad
de muestreo y ms niveles de codificacin existan, ms coste computacional
y de almacenamiento habr.
Ejemplo
A pesar de ser la codificacin con una estructura ms simple, el uso que se hace de ella
est muy extendido; por ejemplo, se utiliza para codificar los CD comerciales de msica.
Las caractersticas principales de la codificacin utilizada en los CD son las siguientes:

Frecuencia de muestreo: 44,1 kHz. Por lo tanto, el ancho de banda de la seal que
se ha de codificar es de 22,05 kHz (recordad que el odo humano tiene el lmite de
audicin en torno a 20 kHz).

16 bits por muestra; esto significa 216 = 65.536 niveles (rango dinmico de 90 dB).

Estreo: dos canales. Cada canal tiene una tasa de bits de 44,1 kHz * 16 = 705, 6 kbps;
en total 1.411 kbps.

En un CD de msica caben unos setenta y cinco minutos de audio codificado.


Para saber ms
K.Immink (1998). The compact Disc Story. JAES (vol. 46, nm. 5, pg. 458-462).

6.2. DPCM: modulacin diferencial por impulsos codificados


Cuando la seal que se debe codificar presenta mucha correlacin (similitud)
entre las muestras adyacentes, como es el caso de la voz, se puede bajar la tasa
de bits de los codificadores PCM codificando la diferencia entre las muestras
adyacentes, en lugar del valor de cada muestra (podis ver la figura 10):
Codificacin DPCM

Figura 10. Diagrama de bloques de un codificador DPCM (izquierda) y del descodificador (derecha)

El rango dinmico de la seal diferencia e[n] es mucho ms pequeo que el


rango dinmico de la seal de entrada x[n] (siempre que las muestras de x[n]
estn correlativas entre s). Por lo tanto, se necesitan menos niveles para codificar e[n] que para codificar x[n] con el mismo error de cuantificacin. Si hay
menos niveles, hay un nmero ms pequeo de bits por muestra.

Codificacin del audio

CC-BY-NC-ND PID_00188067

26

Codificacin del audio

Una implementacin alternativa del codificador DPCM consiste en incorporar


el descodificador en el proceso de codificacin (implementacin denominada
tambin anlisis por sntesis). En la figura 11 podis ver un diagrama de bloques
de un DPCM basado en anlisis por sntesis:
Anlisis por sntesis

Figura 11. Diagrama de bloques de un codificador DPCM basado en anlisis por sntesis

Opcionalmente, el retardador del DPCM se puede sustituir por un mdulo


predictor para intentar minimizar todava ms el rango dinmico de e[n].
Fijaos en que el descodificador no ha cambiado respecto a la primera implementacin DPCM que hemos presentado en la figura 10 (a excepcin del predictor que podra ser un retardador).
6.3. ADPCM: modulacin diferencial adaptativa por impulsos
codificados
La codificacin de modulacin diferencial adaptativa por impulsos codificados
(ADPCM) se basa en convertir el cuantificador constante de la codificacin
DPCM en adaptativo. Es decir, los niveles de cuantificacin que se aplican a
e[n] varan segn la propia seal e[n]. As, el paso de cuantificacin es variable
dependiendo de la diferencia entre una muestra de la seal de entrada en un
instante y la correspondiente al instante anterior (podis ver la figura 12).

Predictor
Un predictor es un sistema en
el que cuando se introduce
una seal en la entrada proporciona a la salida una prediccin de cul ser la muestra siguiente de la seal.

CC-BY-NC-ND PID_00188067

27

Adaptacin del paso de cuantificacin

Figura 12. Adaptacin del paso de cuantificacin () segn el nivel de seal que se debe cuantificar

Se aplica la adaptacin para:

Reducir el error de cuantificacin, manteniendo el mismo nmero de bits


por muestra.

Reducir el nmero de bits por muestra, manteniendo el error de cuantificacin.

Como ya debis de haber notado, si el cuantificador del codificador vara los


niveles de cuantificacin que tiene, el cuantificador inverso del descodificador
debe estar totalmente sincronizado para recuperar

Hay dos estrategias para hacer la adaptacin de los niveles de cuantificacin:


feedforward y feedbackward. En la estrategia feedforward, la estimacin de los
nuevos niveles de cuantificacin se lleva a cabo en el codificador utilizando
un bloque de voz. Por lo tanto, por cada paso de cuantificacin que se valora,
es necesario proporcionar esta informacin al descodificador, y como consecuencia se incrementa el trfico de la transmisin o la dimensin del fichero
codificado. En cambio, en la estrategia feedbackward, no se transmite el paso
de cuantificacin, sino que la estimacin de los nuevos niveles de cuantificacin se efecta a partir de informacin que est presente tanto en el codifica-

Codificacin del audio

28

CC-BY-NC-ND PID_00188067

Codificacin del audio

dor como en el descodificador (por ejemplo, eq[n]); por lo tanto, no hay ningn incremento de trnsito o dimensin. Aun as, la estrategia feedbackward
es menos robusta, puesto que si hay errores de transmisin pueden provocar
una desincronizacin entre el codificador y el descodificador, y, por lo tanto,
la versin reconstruida

no ser tan similar a

La adaptacin de la codificacin ADPCM se puede extender al mdulo predictor de la seal x[n]. Es decir, los coeficientes fijos del mdulo predictor del
codificador DPCM se convierten en variables para adaptarse a la dinmica de
la seal y as proporcionar una prediccin mejor. En este caso se intenta minimizar la seal e[n] para reducir todava ms el rango dinmico.
6.4. Codificacin en subbandas
La codificacin en subbandas consiste en dividir la seal original en diferentes
bandas espectrales (proceso denominado anlisis basado en bancos de filtros) y
codificar cada una de estas bandas de manera independiente, utilizando una
tcnica de codificacin de forma de onda (por ejemplo, DPCM o APCM).
Un diagrama de bloques genrico de la codificacin por subbandas es el que
muestra la figura 13.
Codificacin en subbandas

Figura 13. Diagrama de bloques de un codificador (figura superior) y un descodificador (figura inferior) basado en
subbandas

Ejemplo
La estndar G.726 de la ITU-T
(sector de estandarizacin de
la International Telecomunication Union) prev la compresin de una llamada telefnica por medio del codificador
ADPCM. En concreto, se utiliza
para reducir la codificacin ley (Estados Unidos) o ley-A (Europa) PCM de 8 bits por muestra a 4 bits por muestra.

CC-BY-NC-ND PID_00188067

29

El procedimiento para codificar en subbandas es el siguiente. Primero, se filtra


la seal de entrada por medio de M filtros paso banda para separar la seal en
M subbandas. En este punto del proceso, en lugar de tener una sola seal que
se ha de codificar (x[n]), tenemos M seales que se deben codificar (el resultado
de filtrar x[n] por cada uno de los M filtros); por lo tanto, hemos aumentado
por un factor M el nmero de muestras por segundo que se han de codificar.
Para mantener constante el nmero de muestras que se deben codificar por
segundo, la salida de los filtros se diezma1 por un factor M. A continuacin, se

Codificacin del audio


(1)

Diezmar es el proceso por el que


en la salida del diezmador solo se
mantiene una muestra de cada M
muestras de la seal de entrada. El
resultado es equivalente a una reduccin de la frecuencia de muestreo de la seal de entrada por el
mismo factor M.
Para ms informacin, podis consultar el libro Seales y sistemas, de
A. V. Oppenheim y A. S. Willsky.

codifica la seal de cada subbanda por medio de un codificador de forma de


onda de dominio temporal (por ejemplo, un ADPCM) y se combina la salida
de los M codificadores con un multiplexor para formar la codificacin de la
seal de entrada completa.
Para descodificar la seal, primero se separan las contribuciones de cada subbanda con un desmultiplexor y se descodifica cada aportacin por separado.
A continuacin, se interpola2 la seal obtenida para cada subbanda con un
factor M para obtener el nmero de muestras por segundo originales. Finalmente, se filtra la seal de cada subbanda por el filtro paso banda correspondiente, para asegurar que los procesamientos previos no introduzcan componentes frecuenciales nuevas fuera de la banda de paso, y se suman todas las
aportaciones.
Como las propiedades espectrales de la seal de entrada cambian con el tiempo, la distribucin del nmero de bits por bandas es adaptativa, de modo que
se utilizan ms bits en las bandas que tienen ms energa y menos en las bandas de menos energa.
El diseo de un banco de filtros paso banda que permita dividir y reconstruir
la seal sin prdida de informacin de la seal de entrada es un punto crtico
para obtener una codificacin en subbandas de calidad.
Una de las ventajas de la codificacin en subbandas respecto a las otras tcnicas
en el dominio temporal es que el ruido de cuantificacin introducido por cada
ADPCM est localizado solo en una banda frecuencial.
6.5. Codificacin basada en transformadas
La codificacin basada en transformadas consiste en transformar bloques de
muestras de la seal de entrada, es decir, muestras en el dominio temporal, en
un dominio transformado. Despus, se codifican las muestras en el dominio
transformado con un codificador de forma de onda (por ejemplo, ADPCM).
Para la descodificacin, primero se aplica un descodificador de forma de onda
para obtener los bloques de muestras en el dominio transformado y despus
se aplica la transformada inversa. Como ltimo paso, se deben recombinar los

(2)

La interpolacin es el proceso
por el que se introducen (M-1)
muestras por cada muestra de la
seal de entrada. El resultado es
equivalente a un aumento de la
frecuencia de muestreo de la seal
de entrada por el mismo factor M.
Para ms informacin, podis consultar el libro Seales y sistemas, de
A. V. Oppenheim y A. S. Willsky.

CC-BY-NC-ND PID_00188067

30

Codificacin del audio

bloques de muestras para obtener la reconstruccin de la seal de entrada. La


figura 14 muestra un diagrama de bloques de un codificador y un descodificador.
Codificacin basada en transformadas

Figura 14. Diagrama de bloques de un codificador (figura superior) y un descodificador (figura inferior) basados en
transformadas

Ejemplo
Un ejemplo de transformacin de bloques que conocemos todos es la FFT, que toma
bloques de muestras (por ejemplo, 512 o 1.024 muestras) y los transforma en coeficientes
FFT, sin variar el nmero de muestras entre la entrada y la salida de la transformacin
(para el ejemplo anterior tendramos 512 o 1.024 coeficientes de Fourier).

La transformacin ms utilizada para la codificacin de audio es la transformada discreta de coseno o discrete cosinus transform (DCT) o la versin modificada, la MDCT.
Transformada discreta de coseno
Aproximacin de una secuencia por medio de una suma de funciones cosenos de diferentes frecuencias:

N indica el nmero de muestras que se deben transformar.


La MDCT es la versin de la DCT para bloques de datos encabalgados.

Uno de los puntos crticos de este tipo de codificaciones es la seleccin de


los bloques de datos que se han de transformar, para evitar que aparezcan
distorsiones en la seal reconstruida en los lmites de los bloques. Por esta
razn, se utilizan ventanas suaves, en lugar de ventanas rectangulares, con
el fin de determinar los bloques de datos que se deben transformar, que tienen
un comportamiento frecuencial ms adecuado. Adems, los bloques de datos
se seleccionan encabalgados en el tiempo.
La codificacin basada en transformadas se utiliza sobre todo para seal de
audio y vdeo de ancho de banda grande, pero normalmente no se utiliza
para voz. La voz tiene un ancho de banda pequeo, respecto a la msica, por
ejemplo, y se puede codificar con otras tcnicas ms sencillas y obtener la
misma calidad que con los codificadores basados en transformadas.

Ved tambin
Para recordar las propiedades
de las ventanas, podis consultar el mdulo Diseo y anlisis de filtros en procesamiento
de audio.

CC-BY-NC-ND PID_00188067

31

Los codificadores de forma de onda intentan representar de manera


compacta la forma de onda de cualquier seal. Por lo tanto, se utilizan
para audio, imgenes, etc.
Los codificadores en forma de onda trabajan en el dominio temporal
(PCM, DPCM y ADPCM) y en el dominio frecuencial (codificadores en
subbandas y codificadores basados en transformadas). En ambos casos
la seal se codifica sin prdidas.
Las seales codificadas con este tipo de codificadores tienen una calidad
buena para tasas de bits elevadas o moderadas (hasta 32 kbps), pero no
se utilizan para codificaciones de tasas de bits bajas porque se degrada
la calidad.

Codificacin del audio

CC-BY-NC-ND PID_00188067

32

Codificacin del audio

7. Codificadores perceptivos

Los codificadores perceptivos son codificadores que se basan en las caractersticas de percepcin del sistema auditivo humano para intentar reducir el nmero de bits necesarios para realizar la codificacin.
En concreto, los codificadores perceptivos explotan dos caractersticas de la
percepcin del odo humano:

El odo humano tiene un niveldesensibilidad diferente en cada banda


frecuencial (como hemos visto en el apartado Niveles audibles en funcin
de la frecuencia. Curvas isofnicas). Es decir, en cada banda frecuencial
solo omos los sonidos que estn por encima de un umbral, y este umbral
es diferente para cada banda.

El fenmeno de enmascaramiento, por el cual un tono de frecuencia ms


baja pero con una energa alta provoca que nuestro odo no perciba un
tono de frecuencia ms alta con energa ms baja.

Las consecuencias de estas propiedades en la codificacin tienen los resultados


siguientes:

No hay que codificar los contenidos frecuenciales de entrada que se encuentran por debajo del umbral de sensibilidad.

No hay que codificar los contenidos frecuenciales de entrada que se encuentran por debajo del umbral de enmascaramiento.

No se perciben los contenidos frecuenciales introducidos por el ruido de


cuantificacin que se encuentran por debajo del umbral de sensibilidad.

No se perciben los contenidos frecuenciales introducidos por el ruido de


cuantificacin que se encuentran por debajo del umbral de enmascaramiento de la seal que se debe codificar.

Los codificadores perceptivos remodelan el espectro del error de cuantificacin


para conseguir que sea inaudible dada la seal que se ha de codificar. Fijaos
en que en ningn momento hablamos de eliminar o minimizar el error de
cuantificacin, sino de convertirlo en inaudible en la seal reconstruida. De
hecho, en las zonas inaudibles, el error de cuantificacin introducido por los
codificadores perceptivos es ms elevado que para otros codificadores, como
consecuencia de intentar reducir el error en bandas frecuenciales audibles.

Ved tambin
Podis revisar el apartado Enmascaramiento del sonido del
mdulo Introduccin a la acstica.

CC-BY-NC-ND PID_00188067

33

Codificacin del audio

Por lo tanto, los codificadores perceptivos son codificadores con prdidas, es


decir, la seal obtenida de la descodificacin no es igual a la seal original,
dado que los contenidos frecuenciales no se codifican todos del mismo modo.
La figura 15 muestra un diagrama de bloques genrico para un codificador
perceptivo:
Codificacin perceptiva

Figura 15. Diagrama de bloques de un codificador (figura superior) y un descodificador (figura inferior) perceptivo

El funcionamiento bsico de un codificador perceptivo es el siguiente:

Descomponer la seal en bandas frecuenciales por medio de un banco de


3

filtros paso banda.

Analizar el nivel de seal en cada banda frecuencial y determinar el umbral


de enmascaramiento y sensibilidad a partir de un modelo psicoacstico
de la percepcin.

Determinar, a partir del modelo psicoacstico de percepcin para la seal


de entrada, el nmero de bits que se deben utilizar en cada subbanda para
que el ruido de cuantificacin introducido sea mnimo.

Cuantificar las muestras de cada subbanda de manera independiente con


el nmero de bits adecuados (mdulo Q de la figura 15).

Enviar los bits al descodificador (mdulo bitstreaming de la figura 15).

A continuacin, veremos las caractersticas ms importantes de cada mdulo


de los codificadores perceptivos.
7.1. Mapeo tiempo-frecuencia
Segn la psicoacstica, el sistema auditivo humano se puede modelar como
una serie de filtros paso banda con las bandas de paso encabalgadas, donde el
ancho de banda de cada filtro se define como ancho de banda crtico4.

(3)

Un banco de filtros es un sistema formado por un conjunto de


filtros paso banda situados en paralelo (es decir, la entrada de cada
uno de estos filtros es la seal de
entrada al banco de filtros). La salida del banco de filtros son N seales, donde N es igual al nmero de
filtros paso banda.

34

CC-BY-NC-ND PID_00188067
(4)

Rango de frecuencias en torno a una frecuencia central en el que el umbral de enmascaramiento es constante (llano). Este valor se puede aproximar con la expresin siguiente:

Los codificadores perceptivos, como intentan incorporar informacin psicoacstica, trabajan en el dominio de la frecuencia. Por lo tanto, el primer paso
de la codificacin es pasar a este dominio.
Tal como hemos comentado en el apartado de codificador de forma de onda,
hay dos opciones para trabajar en el dominio frecuencial: utilizar un banco de
filtros paso banda o transformar la seal con FFT o DCT.
7.2. Modelo psicoacstico
El mdulo llamado modelo psicoacstico informa sobre los niveles de sensibilidad y los niveles de enmascaramiento dado el espectro de la seal de entrada. Es decir, dada una seal de entrada, el modelo psicoacstico nos dice
cul es el nivel de seal mnimo que distingue el odo humano. Este nivel
mnimo es lo que se conoce como umbral de enmascaramiento de esta seal
(

).

Con la informacin proporcionada por este mdulo se puede calcular la signal


to mask ratio (SMR) para cada banda frecuencial. La SMR se define como la
proporcin de nivel entre un componente frecuencial de una seal y el umbral
de enmascaramiento que genera esta frecuencia:

Los valores altos de la SMR indican que la seal de entrada provoca menos
enmascaramiento.
7.3. Asignacin de bits
Los codificadores perceptivos asignan a cada subbanda el nmero mnimo de
bits necesarios para codificar la seal sin introducir diferencias perceptivas
respecto a la seal original.
El objetivo del mdulo de asignacin de bits es encontrar cul es el nmero de
bits necesarios en cada subbanda que minimiza el ruido audible introducido
por el cuantificador.
El nmero de bits utilizados por el cuantificador en cada subbanda debe ser
conocido tanto en la etapa de codificacin como en la etapa de descodificacin. Por lo tanto, junto con la seal cuantificada se ha de transmitir y alma-

Codificacin del audio

CC-BY-NC-ND PID_00188067

35

cenar la distribucin de bits utilizada. A pesar de que esto implica un aumento


de la cantidad de bits generada por el codificador, la reduccin del nmero de
bits conseguida cuando se utiliza informacin perceptiva es mucho mayor.
Existen algunos estndares de codificacin que replican alguna parte del clculo de la asignacin de bits del codificador en el descodificador para minimizar
la cantidad de bits de la codificacin. Sin embargo, esto implica incrementar
la complejidad del descodificador y que sea ms sensible a errores de transmisin.

Los codificadores perceptivos remodelan el espectro del error de cuantificacin para conseguir que sea inaudible dada la seal que se debe
codificar.
Para saber qu niveles de seal son inaudibles, se calcula el nivel de
enmascaramiento en cada subbanda de la seal que se ha de codificar
mediante un modelo psicoacstico.
Cada subbanda frecuencial de la seal de entrada se cuantifica con un
nmero de bits diferentes. El nmero de bits utilizados para codificar
cada subbanda se calcula para que la cantidad de ruido de cuantificacin
que se encuentra por encima del nivel de enmascaramiento (es decir, el
ruido que podemos or) sea mnima.

Codificacin del audio

CC-BY-NC-ND PID_00188067

36

Codificacin del audio

8. Codificaciones especficas para voz

La voz tiene unas caractersticas propias que la diferencian del resto del audio.

Ved tambin

Por ejemplo, su ancho de banda es ms limitado que el de la msica y tiene

En los dos ltimos mdulos de


este material explicaremos con
ms detalles las caractersticas
espectrales de la voz.

unas propiedades espectrales especficas.


Las propiedades espectrales de la voz han permitido crear unas codificaciones
especficas para voz que disminuyen el nmero de bits necesarios. Por tanto,
se reducen el ancho de banda necesario en una transmisin o la capacidad de
almacenamiento necesario.
Ejemplo
Si para codificaciones estreo de msica se pueden utilizar 1.411 kbps, las codificaciones
especficas para voz utilizan entre 8 y 16 kbps (codificaciones de tasa media), entre 8 y
2,4 kbps (codificaciones de tasa baja) o incluso menos de 2,4 kbps (codificaciones de tasa
muy baja). Si aplicramos las codificaciones especficas para voz en msica, la calidad
perceptiva no sera aceptable.

En general, los codificadores especficos para voz se clasifican en codificadores


paramtricos y codificadores hbridos. A continuacin mostramos un resumen
de los principales codificadores de cada tipo:

Codificadores paramtricos: vocoder5 LPC y codificacin armnica

Codificadores hbridos: Familia CELP

Los codificadores paramtricos estn basados en el modelado de la voz, con


el objetivo de codificar los parmetros de este modelo en lugar de la forma de
onda de la seal. Por lo tanto, en la etapa de codificacin se calculan los parmetros del modelo de voz para la seal de entrada, se cuantifican y se envan
o se almacenan. Para recuperar la seal codificada, se genera la voz a partir
del modelo de produccin que tiene, utilizando los parmetros codificados
previamente. Los codificadores paramtricos trabajan con tasas bajas de bits
por segundo, de manera que generan voz inteligible pero sin mucha calidad.
Los codificadores hbridos combinan los codificadores paramtricos, especficos para voz, con los codificadores perceptivos, tiles para cualquier tipo de
audio, para obtener voz de ms calidad con tasas de bits bajas.
Los dos tipos de codificaciones tienen prdidas, puesto que las seales obtenidas de la descodificacin no son exactamente iguales a la seal original.

(5)

El trmino vocoder viene del ingls voice coder.

37

CC-BY-NC-ND PID_00188067

Codificacin del audio

8.1. Codificadores paramtricos: vocoder LPC


El vocoder LPC utiliza el modelo LPC (codificacin por prediccin lineal o linear predictive coding) de produccin de la voz para hacer la parametrizacin
(podis ver la figura 16). El modelo LPC est formado por una seal de excitacin (denominada tambin fuente) que se filtra por medio de un filtro lineal
variante con el tiempo.
Modelo de produccin de la voz

Ved tambin
Recordad que hemos visto el
concepto de ruido blanco en
el apartado Espectro de sonido y densidad espectral.

Figura 16. Modelo de produccin de la voz LPC. Parmetros del modelo: la altura tonal
o pitch, la sonoridad y la envolvente. Componentes del modelo: excitacin (tren de
impulsos o ruido blanco) y filtro de envolvente espectral

La seal de excitacin es de dos tipos: un tren de impulsos (para generar sonidos sonoros) o ruido blanco (para generar sonidos sordos). El filtro utilizado
es un filtro IIR todo polos, del tipo siguiente:
Ved tambin

El filtro H(z) (es decir, la envolvente espectral) se disea para que funcione
como un predictor de x[n]. Si la prediccin

se escribe como una combina-

cin lineal de las p muestras anteriores:

los coeficientes {ai} se calculan para minimizar el error de prediccin e[n]:

La seal e[n] tambin se denomina residuo.

Recordad que hemos visto


el concepto de filtro IIR en el
apartado Diseo de filtros
IIR.

CC-BY-NC-ND PID_00188067

38

En la figura 17 podis ver un diagrama de bloques de la codificacin vocoder


LPC:
Codificacin LPC

Figura 17. Codificacin vocoder LPC: codificacin (izquierda) y descodificacin (derecha)

En la etapa de codificacin, el vocoder LPC calcula tres parmetros del modelo


de voz:

La sonoridad del sonido que se debe codificar (0 para sonidos sordos y 1


para sonidos sonoros).

En caso de tratarse de un sonido sonoro, estima la altura tonal (frecuencia


del tono del sonido que se tiene que codificar).

Los coeficientes LPC {ai}.

El modelo de voz se calcula cada pocos milisegundos (un valor habitual es cada 20 milisegundos) para asegurar que se pueden capturar todos los cambios
de la seal de voz. Finalmente, se cuantifican la sonoridad, la altura tonal y
los coeficientes LPC {ai}. Habitualmente, no se cuantifican directamente los
coeficientes {ai}, puesto que algunas pequeas variaciones en los valores de
los coeficientes descodificados, debidas al ruido de cuantificacin, pueden dar
lugar a filtros H(z) inestables. Para evitar este efecto, se aplica alguna transformada en los coeficientes LPC para asegurar ms robustez ante el ruido de
cuantificacin.
Fijaos en que la seal residuo e[n] no se codifica. Internamente, la seal e[n]
se calcula durante el clculo de los coeficientes LPC, la sonoridad y la altura
tonal, pero ni se transmite ni se almacena. Los vocoders simplifican el modelo
de generacin de la voz utilizando como seal de excitacin ruido blanco o
un tren de impulsos, en lugar del residuo e[n]. Gracias a esta simplificacin se
reduce la tasa de bits del codificador.
En la etapa de descodificacin, antes de nada se aplica el cuantificador inverso
a la sonoridad, la altura tonal y los coeficientes LPC. Con los valores obtenidos
se construye el modelo de seal y se obtiene la voz descodificada eligiendo

Codificacin del audio

39

CC-BY-NC-ND PID_00188067

Codificacin del audio

la seal de excitacin del filtro LPC segn el parmetro de sonoridad (ruido


blanco si el parmetro de sonoridad es 0 o un tren de impulsos de frecuencia
igual a la altura tonal si la sonoridad es 1).
La tasa de bits de los vocoders LPC es muy baja: 2,4 kbps. La voz generada por
un vocoder de estas caractersticas, a pesar de ser inteligible, tiene una calidad
baja (la voz suena metlica). La calidad baja se atribuye sobre todo al hecho
de que el vocoder LPC no utiliza como seal de excitacin la seal residuo
e[n], sino una seal artificial que solo prev dos estados de sonoridad, sordo
y sonoro, sin transiciones o mezclas.
8.2. Codificadores paramtricos: codificacin armnica
El modelo armnico aproxima la seal de voz como una suma de componentes espectrales armnicos a la altura tonal
amplitud

y una fase

, cada uno de los cuales con una

diferente:

Lectura de la frmula

La figura 18 muestra un diagrama de bloques de la codificacin armnica:


Codificacin armnica

Figura 18. Codificacin armnica: codificacin (izquierda) y descodificacin (derecha)

En el codificador se calculan los parmetros

,{

}y{

} cada pocos milise-

gundos y se cuantifican. En el descodificador se aplica el cuantificador inverso


y se genera la voz por medio del modelo armnico. Para evitar discontinuidades en la seal generada en los puntos de cambios de parmetros del modelo
armnico, se aplican tcnicas de interpolacin matemtica para obtener los
valores de amplitud, frecuencia y fase de cada componente espectral.
8.3. Codificadores hbridos: code exited linear prediction
Los codificadores hbridos, entre los que se encuentran todos los de la familia
code exited linear prediction (CELP), son codificadores que intentan solucionar
las limitaciones de los vocoders LPC (recordemos que el vocoder es un codificador paramtrico) mediante la utilizacin de un codificador perceptivo. Los
codificadores basados en CELP son los codificadores hbridos ms utilizados
en transmisin de voz.

T0 es el periodo de altura tonal.


Para los sonidos sordos, donde
la altura tonal no est definida, se utiliza un valor constante de W0, como por ejemplo
100 Hz.

CC-BY-NC-ND PID_00188067

40

Tal como hemos dicho antes, una de las causas principales de la prdida de
calidad de la voz codificada con un vocoder LPC es la utilizacin de una seal
de excitacin artificial muy simple (ruido blanco para sonidos sordos o un tren
de impulsos para sonidos sonoros), en lugar de la seal residual e[n].
La solucin ms directa para resolver esta prdida de calidad de la voz es codificar las muestras de la seal residual e[n] que est disponible en el mdulo
codificador durante el clculo de los coeficientes LPC. La dificultad es encontrar la manera de codificar esta seal sin aumentar excesivamente el nmero
de bits necesarios para hacerlo.
Los codificadores CELP cuantifican la seal residual e[n] por medio de un cuantificador vectorial (VQ) utilizando las propiedades de la psicoacstica. Es decir,
la seal residual e[n] se codifica por medio de un codificador perceptivo. De
este modo la codificacin est formada por los mismos bits que el vocoder
LCP (la cuantificacin de los parmetros de sonoridad y altura tonal y los coeficientes del filtro LPC) ms el ndice del codeword correspondiente a la seal
residual.
En la figura 19 se muestra un diagrama funcional de un codificador basado
en CELP:
Codificacin CELP

Figura 19. Codificacin CELP: codificacin (izquierda) y descodificacin (derecha)

Hay muchas variaciones de este esquema bsico: ACELP, RPE-LPC, VSELP,


QCELP. Las diferencias son la manera como se trata la seal residual antes de
la cuantificacin (por ejemplo, en algunos casos, en lugar de trabajar con toda
la seal residual, esta seal se divide en cuatro subseales que se cuantifican
por separado) y en el modo como se crea el diccionario del VQ.

Los codificadores hbridos combinan los codificadores paramtricos (tasa de bits baja) con los codificadores perceptivos para codificar la seal
residual e[n] (calidad elevada), para mejorar la calidad del vocoder LPC
manteniendo baja la tasa de bits.

Codificacin del audio

41

CC-BY-NC-ND PID_00188067

Codificacin del audio

9. Formatos de ficheros de audio

En los apartados anteriores hemos visto cmo podemos codificar digitalmente


el audio a partir de una seal analgica y cmo podemos obtener de nuevo
la seal analgica para orla. En este apartado veremos de qu manera se almacena el audio codificado, ya sea para reproducirlo ms adelante (es decir,
para descodificarlo y reproducir la seal analgica) o para transmitirlo (por
ejemplo, por Internet).
El audio codificado se puede almacenar en ficheros de diferentes formatos. El
formato de un fichero de audio nos indica cmo estn estructurados los datos
que contiene. Un fichero de audio puede almacenar tres tipos de datos: las

(6)

Datos sobre los datos, es decir,


informacin complementaria sobre
un tipo de datos.

muestras codificadas de una seal de audio, la informacin sobre el proceso


de obtencin de estas muestras (por ejemplo, frecuencia de muestreo, nmero
de bits por muestra y tipo de codificacin aplicada) y otros metadatos6 (por
ejemplo, nombre de la cancin e intrprete para msica). No todos los formatos de fichero permiten los tres tipos de datos.
Normalmente, el formato del audio est indicado en la extensin del nombre
del fichero (por ejemplo, fichero.wav y fichero.mp3 nos indica que el primer
fichero tiene formato WAV y el segundo, MP3).
En principio, el formato es solo la estructura del fichero, pero hay formatos
que se han diseado pensados para contener una codificacin concreta. As,
muchas veces se utiliza el mismo trmino para referirse al formato del fichero
y al tipo de codificacin del audio que contiene.
9.1. Formato de audio con forma de onda
El formato de audio con forma de onda o waveform audio format (WAV) fue
desarrollado conjuntamente por IBM y Microsoft. Actualmente es el formato
ms utilizado para almacenar audio sin comprimir en las plataformas Windows.
La estructura del formato WAV es muy sencilla: una cabecera en la que se da
7

informacin sobre el tipo de datos , seguido de los datos.

(7)

La frecuencia de muestreo del


audio digital, el nmero de canales, el nmero de bits por muestra,
el tipo de compresin, la tasa de
bits y el nmero de muestras totales.

CC-BY-NC-ND PID_00188067

42

A pesar de que el formato WAV permite almacenar audio codificado con compresin, normalmente los ficheros WAV contienen audio codificado con PCM
y cuantificacin uniforme.
El formato WAV, a pesar de utilizarse mucho en almacenamiento, no est extendido en el mundo de Internet. La razn es que, dado que al audio no se

Codificacin del audio

Canales de audio
Un canal de audio es una seal de audio que se codifica,
transmite y almacena y reproduce de manera independiente el resto de las seales de audio que permite la especificacin del formato.

aplica ninguna compresin, la dimensin de los ficheros es demasiado grande


para transmitirse con facilidad, a la inversa de lo que sucede con los formatos
que prevn compresin.
9.2. MPEG-1 audio layer-3
El formato MPEG-1 audio layer-3, ms conocido como MP3, es un formato
especfico para ficheros de audio incluido por el MPEG (grupo de expertos en
imgenes en movimiento o moving picture experts group) como una parte del
estndar MPEG-1 y ms adelante del MPEG-2.
La estructura de los ficheros MP3 est dividida en segmentos o frames de la
misma dimensin cada uno. Cada segmento est formado por una cabecera y
un bloque de datos. La cabecera contiene seis campos: una palabra de sincronismo, la tasa de bits, la frecuencia de muestreo del audio original, el identificador de la capa o layer (en este caso, 3) del MPEG (puesto que las capas 1, 2 y 3
tanto del MPEG-1 como del MPEG-2 comparten la misma cabecera), el modo
de codificacin (mono, dual mono, estreo o estreo conjunto) y un valor de
proteccin frente a copias (a pesar de que es fcil de piratear).
La principal diferencia de formato entre el MP3 y el WAV es el emplazamiento
de la cabecera. El formato WAV tiene una nica cabecera, que se sita al principio del fichero; en cambio, todos los segmentos de los ficheros MP3 tienen
cabecera. Por lo tanto, se puede descodificar cualquier segmento del fichero
MP3, aunque no dispongamos de la parte inicial del fichero (esto es til si hay
errores de transmisin, prdida de paquetes, etc.).
En el campo de datos, los segmentos MP3 almacenan audio comprimido con
prdidas. Para hacer la compresin se utiliza un codificador perceptivo y, por
lo tanto, los datos son los niveles de amplitud cuantificados, cada uno con
el nmero de bits necesarios para minimizar el error perceptivo del audio reconstruido. Las frecuencias de muestreo de la seal de entrada previstas en los
estndares son 32, 44,1 y 48 kHz para el MPEG-1 y 16, 22,05 y 24 kHz para el
MPEG-2. La ratio de compresin viene dada por la tasa de bits requerida a la
salida del codificador. Los estndares MPEG-1 y MPEG-2 audio layer-3 permiten diferentes tasas de bits: entre 32 y 320 kbps para el MPEG-1 y entre 8 y
160 kbps para el MPEG-2. La tasa de bits ms utilizada es 128 kbps.
Los estndares MPEG-1 y MPEG-2 no incluyen ninguna implementacin especfica del codificador. Esto ha dado libertad a diferentes fabricantes para realizar implementaciones especficas de los codificadores MP3, con la nica res-

MPEG-3
Es importante no confundir el MPEG-3 con el MP3. El
MPEG-3 es un grupo de estndares para la codificacin de
audio y vdeo, que actualmente no se utiliza, mientras que el
MP3 es parte de los estndares
MPEG-1 y MPEG -2.

CC-BY-NC-ND PID_00188067

43

Codificacin del audio

triccin de que cumplan las condiciones de formato. Como resultado de esto,


un mismo fichero de audio codificado con dos codificadores diferentes puede
dar calidades diferentes.
El descodificador s que est estandarizado y, por lo tanto, el resultado obtenido a partir de un fichero MP3 con descodificadores de diferentes fabricantes
siempre es el mismo.
A pesar de que las especificaciones del MP3 no incluyen ningn campo especfico de metadatos, se permite incluir etiquetas o tags en formato ID3 al
principio del fichero o al final, de una manera independiente a los segmentos
MP3. Entre los campos que permite el ID3 se encuentran el ttulo, el artista,
el lbum y el ao de creacin del audio.
Las dimensiones reducidas de los ficheros MP3, sobre todo en comparacin
con los ficheros WAV, ha convertido este estndar en uno de los ms utilizados
para la comparticin de ficheros de audio por Internet.
9.3. Advanced audio coding
El MPEG-2 advanced audio coding (AAC) fue desarrollado como sucesor del formato MP3 y est incluido en los estndares MPEG-2 y MPEG-4.
El estndar AAC no define un nico formato de fichero, sino que proporciona
dos ejemplos: audio data interchange format (ADIF) y audiodata transport stream
(ADTS).
El ADIF sita todos los datos de control de codificacin (la frecuencia de muestreo del audio original, el modo de codificacin, etc.) en una sola cabecera, al
principio de todo, y los datos despus (del mismo modo que hace el formato
WAV). Por lo tanto, este formato es adecuado para el almacenamiento o intercambio de ficheros, pero no permite empezar la descodificacin en cualquier
punto del tiempo, como permite el MP3.
El ADTS utiliza la misma estructura que el MP3, es decir, el fichero se divide en
segmentos, cada uno con una cabecera y un campo de datos. Para diferenciar
los formatos AAC y MP3, el AAC define el parmetro de control de la capa en
el valor 4. El formato ADTS se utiliza ms que el ADIF porque permite empezar
la descodificacin en cualquier instante del audio codificado.
En el campo de datos, los segmentos AAC almacenan audio comprimido con
prdidas, tal como su predecesor MP3. Los dos estndares estn basados en
codificadores perceptivos. El AAC proporciona una calidad de audio codificado
ms elevada a la misma tasa de bits que el MP3, especialmente para tasas de bits

Lectura recomendada
Para saber ms sobre el formato MP3, os recomendamos
que leis:
KarlheinzBrandenburg
(1999). MP3 and AAC explained

CC-BY-NC-ND PID_00188067

44

bajas, dado que, entre otras mejoras, utiliza un banco de filtros ms eficiente
para la separacin en subbandas. Adems, el AAC permite codificar audio de
hasta cuarenta y ocho canales.
9.4. Windows media audio
Windows media audio (WMA) es un formato desarrollado por Microsoft como
alternativa al MP3.
El formato WMA utiliza el contenedor advanced systems format (ASF) para encapsular audio comprimido. El ASF especifica una cabecera seguida de un conjunto o ms de un conjunto de muestras de audio y, opcionalmente, un ndice. En la cabecera, igual que sucede con los otros formatos, se indica qu tipo
de datos y caractersticas asociadas al muestreo y la codificacin se hallan en
los campos siguientes. Tambin se pueden incluir metadatos de una manera
similar al ID3.
Existen cuatro codificadores diferentes dentro de la familia WMA:

WAM original

WAM Pro, que extiende algunas de las funcionalidades del WMA, como
por ejemplo el soporte multicanal

WMA Lossless, que se diferencia de las codificaciones anteriores porque


trabaja con una compresin sin prdidas

WMA Voice, diseado especficamente para codificar voz a tasas de bits


bajas

9.5. Vorbis OGG


Vorbis es un proyecto de cdigo abierto que especifica un codificador perceptivo, y por tanto con prdidas, liderado por Xiph.org Foundation. Normalmente Vorbis utiliza el contenedor OGG, de manera que los ficheros codificados
y almacenados se denominan Vorbis OGG.
Los ficheros OGG estn estructurados en segmentos de datos, denominados
pginas OGG. Cada pgina contiene una cabecera y un campo de datos. El formato de los metadatos, denominado Vorbis comments, est basado en etiquetas, como el ID3.
Vorbis OGG es popular sobre todo entre los seguidores del software libre.

Codificacin del audio

Potrebbero piacerti anche