Codificación y transmisión de audio Multimedia 2004

Anuncio
Codificación y transmisión de audio Multimedia 2004-2005,
Kostadin Koruchev
Tipos de banda audio
Según la aplicación diferenciamos las siguientes bandas de sonido:
Nombre
Voz banda estrecha NS
Sound Narrowband
Voz banda ancha WS
Sound wide band
Sonido banda ancha WA
Audio wideband
de
de
[Hz]
200
a
a
[Hz]
3.4
Ancho
Muestreo
[kHz]
3.2
[kHz]
8
50
7.0
7
16
16
20
20.0
20
44/48
16
bits
muestra
8
Aplicaciones
Telefonı́a,
VoIP
Radio AM
Teleconf.
Música, DVD,
Radio satélite,
Radio FM, CD
La banda ancha de sonido también distingue entre el número de canales
(1) – Mono; (2) – Estéreo; (3-5) Múltiples canales (surround).
Normativas de codificación según la banda
El objetivo de codificación de sonido para cada banda es diferente:
Banda
NS
Objetivo
Máxima compresión
Unas Normativas
GSM, G.711, G.723,IS-96, LPC-10
WS
Buena compresión
G.722 (ADPCM), G.722.1 (Transform)
WA
Buena calidad
MPEG Audio Layer 3 (MP3),
Sony ATRAC, Philips PASC.
Calidad de compresión de sonido
A diferencia de los imágenes donde PSNR (MSE en dB) es una buena medida
de la calidad de la compresión de la imagen, no existe una buena medida fácil
de calcular para el sonido. La medida aceptada por la comunidad ingenierocientı́fica es MOS: Mean Opinion Score, de uno a cinco definido como: (1)
muy mala calidad; (2) mala calidad; (3) mediocre; (4) buena calidad; (5)
calidad superior.
1
1
Codificación NS:
LPC=Linear Predicion Coding.
Idea: predecir una señal como combinación lineal de los puntos anteriores:
s(n) =
N
X
ak s(n − k) + Gw(k).
k=1
ak – cocientes de predicción.
Gw(k) – excitación.
G – Gain (ganancia de la excitación).
w(k) – función de excitación.
La función w(k) es pseudo-periódica con principal frecuencia igual a la
altura de la voz si se trata de la parte sonora, o bien ruido blanco si se trata
de parte no sonora.
La señal tendrá espectro:
|s(f )| = ¯¯
¯1 +
G2 |w(f )|
PN
¯
¯
2πif k ¯
k=1 ak e
(1)
La explicación del funcionamiento de LPC se demuestra en la figura 1,
donde se representa la forma de onda tı́pica de una vocal es su parte sonora,
su espectro Fourier, la función de excitación w(f ) (escalada).
El periodo del “pitch” coincide con el periodo base de resonancia del
tracto verbal (en el rango de [2.5, 16] [ms]).
Cuando se dividen el espectro de la señal y de los pulsos de excitación,
obtenemos señal con espectro mucho mas “débil”, tratable, que se aproxima
bien con una función de tipo (1). La aproximación que se consigue con 4
cocientes está presentada en la figura.
De la parte sorda – la excitación se hace con ruido blanco con espectro
plano.
Forma del filtro (|s(f )/w(f )|).
La parte sonora está con picos claros en el espectro. Parte sorda está
con mucho ruido.
2
1.1
Métodos basados a LPC
kbps
64.0
32.0
16.0
13.0
8.0
8.0
6.8
6.3
5.5
4.8
4.2
4.2
2.4
2.4
MOS
4.4
4.1
4.0
3.6
4.2
3.5
3.3
3.9
3.4
3.2
3.4
3.2
3.3
2.7
Normativa
PCM PCM(IDSL)
ADPCM G.721(IDSL)
CELP G.728
GSM
G.729 (New toll-qty USA 1995)
VSELP (USA cellular)
VSELP (Japan cellular)
G.723.1 (H.323,H324)
Half rate GSM
CELP Fed.1016
QCELP (CDMA)
ADPCM INMARSAT(Tel.Satelite)
New Low rate Fed. 1996
LPC LPC-10 Fed 1015
Tabla 1.1. Formatos de codificación de sonido
Existen en gran variedad (tabla 1.1). Los métodos distinguen según:
** cómo se estiman los cocientes ak .
** cómo se transmiten.
** cómo se estima si la señal es sonora o no.
** cómo se estima G.
** cómo se estima la(s) frecuencia(s) y la forma de w(k).
** cómo se hace la predicción “lenta” – del pitch.
1.1.1
Métodos de estimación de ak
– con covarianza
– con autocorelacion
1.1.2
Métodos de transmisión de ak
Los cocientes son unos 10-20. El retraso de la señal depende de su número.
– transmisión directa – muy costoso,
– diferentes conjuntos equivalentes (PARCOR, LAR, LSP),
– predicción de los parámetros.
Ejemplo LSP:
3
Se transmiten las fases de las raı́ces de los polinomios:
P (z) = z k (aN −k + ak )
Q(z) = z k (aN −k − ak )
Estas raı́ces siempre están localizadas en circulo con radios uno. Entra el la
nueva normativa de EE.UU. de telefonı́a (MELP), 2.4 Kbps audio, propiedad
de AT&T.
1.1.3
Sonoridad de la señal
Métodos de estimación de la sonoridad de la señal. Hay que distinguir los
sonidos sordos y sonoros, porque de esto depende el tipo de la función de
excitación:
– Contando las transmisiones de 0, estimando el espectro etc.
1.1.4
Función de excitación
Estimación de “pitch frecuency”:
– la parte no sonora – ruido blanco o colorido.
– la parte sonora – señal pseudo-periódica. De pulsos periódicas.
1.2
CELP
Idea: utilizar como excitación diferentes ondas pre-determinadas (codebook). Ver figura 2.
1) Predicción de corto plazo, predicción de largo plazo – el resto va como
codebook.
Ejemplo normativa: Fed 1016
1.3
Tipos de codificaciones basadas a LPC
Mandar los parámetros:
* Codificación paramétrica.
* Codificadores de la forma de onda.
* Codificadores de frecuencias.
* Codificadores hı́bridos.
4
1.3.1
Codificadores paramétricos
Estándar LPC10 (Fed. Standard 1015):
*
*
*
*
*
*
*
*
*
Frecuencia muestreo 8 kHz,
Precicion -- 8 bits/muestra.
Segmentos -- 22.5 ms (180 muestras).
Orden de prediccion N=10 sonoros N=4 sordos.
Codificacion de segmento 54 bits.
* 1 bit sonoro/sordo.
* 6 bits pitch (w).
* 5 bits ganancia (G).
* 2x5 bits a[1], a[2] -- Log area code.
* 2x5+4x4+3+2+1 bits a[3]..a[10] -- linear.
2,4 Kb/s ancho de banda.
1976
MOS 2.7 -- baja calidad del sonido.
Metodos:
-- Gain RMS
-- Pitch -- AMDF.
-- a[k] -- covariance.
-- w(k) -- grabacion.
Muy resistente al ruido. La normativa de telefonı́a fija digital.
2
PCM – Pulse Code Modulation
Esta codificación se utiliza con más ancho de banda, normalmente en la
banda WS (banda de voz ancha).
2.1
Delta Modulation
DM – calcular la señal en el encoder. Mandar 1 si la señal real está por
enzima y -1 si está por debajo de la señal real.
DPMC(Differential Pulse Code Modulation)
Idea: predecir la señal y mandar los paremtos de la predicción y la diferencia
entre la señal y la predicción.
s(t) =
X
s(t − k)ak + e(k) ≈ s ∗ a + ∆(t)sign(e(t)),
k
5
donde eq (t) = ∆(t)sign(e(t)). ∆ se predice en diferentes maneras (lo más
simple – dejarlo constante). Los cocientes ak se adaptan según las muestras
anteriores. Si ∆ cambia, hablamos de adaptive DPMC – ADPMC.
Ejemplo normativa ITU G.721
s(t) =
2
X
ai s(t − k) +
6
X
bj eq (t − j)
j=1
k=1
Ver figura 3
*
*
*
*
*
*
3
ADPCM
MOS 4.1 -- alta calidad.
32 kbps 1/2 64kbps
Retraso 2ms
1984
Ver pagina.
MP3
Utiliza los propiedades del oı́do (mascara). Utiliza codificación de subbandas.
3.1
Codificación de subbanda
Consideramos una señal con espectro de 0 a 1000 Hz. Suponemos que está
muestreada con la frecuencia de Nyquist 2000 Hz. Podemos dividir la señal
en 2 partes – una de 0 a 500 Hz y otra a 500 Hz a 1000Hz (figura 5). Podemos
trasladar el espectro de la señal con alta frecuencia, restando 500 Hz a la
banda 0 ... 500 HZ. Ası́ tenemos 2 señales de 0 a 500 Hz equivalentes
a la señal original. Cada señal necesita frecuencia de muestreo 500 Hz x
2=2000/2 Hz, ası́ que podemos utilizar cada otra muestra de las señales de
baja frecuencia. Esta operación se denomina submuestreo y se representa
con 2 ↓. Si para mandar las dos señales de baja frecuencia se necesita menos
información que para la señal original, podemos utilizar este método para
comprimir la señal original.
Al descomprimir la señal original, para cada banda sustituimos cada otra
muestra (los que faltan) con 0. Esta operación se denomina lifting 2 ↑. A
6
esta señal aplicamos un filtro. Si se cumplen ciertas condiciones, existen
filtros que recuperan exacto la señal original.
Podemos aplicar la misma técnica varias veces y dividir las bandas de
500 Hz a bandas de 250 Hz etc.
MPEG Audio layer utiliza 32 bandas de división, cada una de 750 Hz,
dividiendo a estas ultimas a 12 subbandas.
Se forman en total 32 bandas con 12 muestras por frame por banda, que
se codifican utilizando DCT modificado.
Por otra parte, se utiliza filtro psicométrico de bandas aproximadamente
correspondientes a la ley de Weber (logarı́tmicas) para calcular el umbral
debido al máscara que impone el sistema mecánico del oı́do.
En la practica la codificación se hace en la siguiente manera:
Para cada frame:
0) Establecer umbrales (cocientes de cuantificación) según el diagrama
de los figuras 3.1 para cada subbanda.
1) Elegir la banda más potente por encima del umbral. Si no existe tal
banda ir a 6).
2) Codificar la subbanda correspondiente.
3) Descodificar la subbanda correspondiente.
4) Calcular el umbral-mascara que impone la señal descodificada, cambiando la máscara para cada subbanda.
5) Ir a 1).
6) Codificar utilizando compresión sin perdidas los números generados
en punto 1).
3.2
Detalles técnicos:
Este apartado es opcional.
7
Compresión de subbandas:
Siguiendo la figura 6, para conseguir x̃ = x, después de calcular el filtro en el espacio de frecuencias, podemos ver que
solo uno de los filtros es independiente, teniendo las siguientes
condiciones para los demás:
X
G0 (t − τ )H0 (τ ) = δ(t)
τ
G1 (τ ) = s(−1)τ H0 (τ )
(2)
τ
G1 (τ ) = −s(−1) H0 (τ ),
s ∈ {−1, 1}
La esquema se llama filtros cuádruplos y la compresión
se llama compresión con subbandas (subband compression).
Notar que las bandas en que dividimos la
señal pueden solapar significativamente.
Utilizando
cuantificación después de la decimacion de la señal,
conseguimos transformada aproximadamente reversible.
Las operaciones 2 ↑ y 2 ↓ como los términos de upsampling y downsampling se explican en la figura 7.
El flujo binario de MP3 se explica en la figura 8. La cabecera
del flujo binario (bitstream) consiste de:
Bits Significado
2 Copyright
12 syncword
2 layer
4 bitrate del stream codificado*16kbps+32kbps
2 frecuencia de muestreo 48, 44.1, 32 kHz.
2 Modo – estereo, mono, voz, joint stereo
1 relleno
Bibliografı́a
Algoritmos NS, WS, MP3: Gibson, Data Compression for Multimedia.
Algoritmo MP3, Subband coding: Gonzales, Woods. Digital Image Processing.
8
Explicacion LPC
senal sonora tipica
Exitacion Pitch
15000
5000
−5000
−15000
0
10
20
30
40
50
6
10
4
senal 0.1 x dB
10
2
10
0
10
Espectrum de la senal
Funcion de exitacion (pitch)
Despues de dividir la senal al pitch
Aproximacion de 4 orden
−2
10
0
20
40
Frecuencia (# coec. FFT)
60
Figure 1: Este figura explica por quá LPC funciona. Una señal tı́pica de voz está
presentada en la figura de arriba. La estimación del pitch está representada con
la curva roja (desplazada ası́a abajo). El espectro de esta señal está en la figura
abajo (la curva continua negra). El espectro de la frecuencia base “pitch”, que en
este caso es de unos 10 ms (arriba). Al dividir los espectros del pitch y la señal
obtenemos la curva azul abajo (promediada), que se aproxima bien con filtro de
quinto orden. Notar la escala semi-logarı́tmica del espectro.
9
Figure 2: Principio de CELP codebook
10
Figure 3: ITU G.721
11
0
Subsampling 32
Banco de 32 filtros de banda
0
DCT
Umbral
DCT
Umbral
DCT
Umbral
DCT
Umbral
Huffman coding
Huffman coding
.............
DCT
Umbral
DCT
Umbral
DCT
Umbral
DCT
1024 puntos
Umbral
Umbrales
Control externo
Psicoacusticos
QMF
0 .. 0.5 kHz
32
Cuanti−
ficacion
/Q1
32
Cuanti−
ficacion
/Q1
.......
.......
32
Cuanti−
ficacion
/Q1
32
Cuanti−
ficacion
/Q1
QMF
0.5 .. 1 kHz
......
QMF
15 .. 15.5 kHz
QMF
15.5 .. 16 kHz
Salida
575
31
FFT
De 32 kbs
a 192 kbs
Bitstream
format
Entropy
coding
Entropy
coding
.......
MUX
Entropy
coding
Entropy
coding
Figure 4: Esquema general de MPEG Audio Layer 3 (MP3). Consiste de banco
de filtros, que dividen la banda de frecuencias a bandas de 750 Hz cada una. Sobre
estas señales se aplica DCT modificado, para cada 12 muestras y los 12 × 32 señales
se cuantifican (umbralizan) con pasos dependiente del modelo psicoacústico. El
modelo psicoacústico calcula si la señal está por encima del umbral que se puede oı́r
y el paso de cuantificación de la señal. Después se aplica codificación de Huffman
modificada (con códigos de escape para los valores menos frecuentes). La figura
abajo muestra solo la construcción del banco de filtros.
12
Senal
Filtro
paso bajo (G)
0
Filtro
paso alto (H)
f/2
f
Submuestreo
paso bajo
Submuestro
paso alto
Nueva
frecuencia
de muestra
G
H
Espejismo fuera del rango de
la frecuencia de muestreo
0
f/2
f
0
f/2
Figure 5: Principio de codificación con subbandas. Primero se aplican filtro
G y H de paso bajo y alto. Después se submuestrea con baja frecuencia,
para escanear las señales con la mitad de la frecuencia y se separa en dos el
espectro. Si existen dependencias entre lás dos partes del espectro o una de
las dos partes tiene mucho mas información, podemos comprimir la señal.
f
f
f
2
H0(s)
2
G1(s)
f
Señal
Transmision
f
f
H1(s)
Suma
Señal recuperada
f
2
2
G1(s)
f
Figure 6: Principio de filtro cuádruplo. Si el espectro de una señal no
es uniforme, (solo es totalmente uniforme con ruido blanco, ver figura 1,
de espectro realista de voz), puede ser codificada por separado de altas y
bajas frecuencias, utilizando filtro de paso bajo H0 y filtro de paso alto
G0. Después de aplicar los filtros se puede aplicar subsampling a la señal,
efectivamente transfiriendo las frecuencia altas en el rango 0...f /2, si la
señal original está escaneada con frecuencia de corte f . Cumpliendo unas
condiciones entre los filtros es posible de reconstruir la señal original.
13
0
t
0
−f
−f/2
Frecuencia
f/2
f
dt=1/f
Downsampling
2
0
t
0
−f
−f/2
−f
−f/2
−f
−f/2
Frecuencia
f/2
f
f/2
f
f/2
f
Upsampling
2
0
t
0
Frecuencia
Supersampling
Filtro
Antialias
0
t
0
Frecuencia
Figure 7: Explicación de los términos up-, down- y super-sampling. La
primera columna representa una señal en el tiempo, muestreada en perı́odos
dt = 1/2f , la segunda representa los bloques y los sı́mbolos que se utilizan
para señalar las transformaciones y la tercera representa el espectro de la
señal. El downsampling se refiere a dejar sólo cada otro valor de las
muestras de una señal. El upsampling rellena los puntos que faltan con
ceros, pero añade componentes espejados en el espectro. Después de aplicar
un filtro de baja frecuencia a esta señal (con frecuencia de corte f /2) la
señal recuperada queda libre de las frecuencias espejo.
14
Frame 1
Frame 2
Frame 3
.............
Header
CRC
DATA
Ancillary
Frame N
Figure 8: Flujo binatio (bitstream) de MP3
.
15
Descargar