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