470 likes | 771 Views
Tema 4: La compresión de datos. Factores de diseño de un codec Codificación basada en la entropía Ejemplos: Huffman, Aritmética, etc. Codificación basada en la fuente. Ejemplos: Diferencial, Transformada, etc. Codificación y compresión de audio. Introducción a la compresión de datos.
E N D
Tema 4:La compresión de datos Factores de diseño de un codec Codificación basada en la entropía Ejemplos: Huffman, Aritmética, etc. Codificación basada en la fuente. Ejemplos: Diferencial, Transformada, etc. Codificación y compresión de audio
Introducción a la compresión de datos. • Muchas aplicaciones multimedia requieren volúmenes de información importantes: • CD-ROM: 648 MB • 72’ sonido estéreo. • 30’’ de vídeo (estudio TV). • Una película de 90’ ocuparía 120 GB. • Una foto (35 mm) a resolución 2000x2000 ocuparía 10MB. • Un canal de HDTV requiere un ancho de banda de 2Gbps. • Por esta razón se emplean técnicas de compresión que permitan reducir el volumen de información
Introducción a la compresión de datos (II). • Un sistema de compresión consta de: • Codificador y decodificador • Codificador y decodificador pueden ser: • Asimétricos • El codificador suele ser más complejo y lento que el decodificador (Ej.: Vídeo por demanda) • Simétricos • Coste computacional similar (Ej: Videoconferencia). • Conpérdidas (lossy compression) o irreversible • Adecuada para medios continuos (audio y vídeo). • Mayores tasas de compresión. • Sinpérdidas (lossless compression) o reversible: • Ficheros de datos, imágenes médicas, etc.
Factores en el diseño de un codificador. • Calidad de la señal • BER (Bit Error Ratio) • SNR (Signal/Noise) • MOS (Mean Opinion Score) Eficiencia - Tasa de compresión Retardo • Complejidad • Espacio de memoria • Potencia (mW) • Operaciones/Seg.
Dos clases de técnicas de compresión. • Entropy encoding • Codifica los datos sin necesidad de conocer la naturaleza de estos. • De propósito general (todo tipo de datos). • Son técnicas de compresión sin pérdidas. • Ejemplos: Statistical (Huffman, aritmética,etc.), Run-length. • Source encoding • Codifica los datos basándose en las características y propiedades de estos. • Suelen ser técnicas de compresión con pérdidas. • Se obtienen tasas de compresión elevadas. • Codificadores/decodificadores de propósito específico. • Ejemplos: • Differential, transform, vector quantization, etc.
Codificación basada en la entropía. • Entropía: • Valor medio de información de un conjunto de símbolos procedente de una fuente de información (es imposible de medir en la práctica). (pi = probabilidad del símbolo i) • Por ejemplo: Sea S = {4,5,6,7,8,9}, en donde la probabilidad de cada símbolo es la misma (1/6). • Según la teoría de la información (Shannon), esta fuente no puede ser codificada (sin pérdidas) con menos de 2.585 bits por símbolo.
Statistical encoding • Trata de identificar los símbolos (patrones de bits) que más se repiten en el conjunto de datos de entrada. • Se codifican con pocos bits los símbolos más frecuentes, mientras que los menos frecuentes son codificados con más bits. • Ejemplos: • Codificación Morse • E: ‘•’ y Q:’--•-’ • Codificación Huffman. • Codificación aritmética.
Codificación Huffman • Representan los símbolos con un número de bits inversamente proporcional a su frecuencia. • Algoritmo genérico: • Se construye un árbol binario de abajo hacia arriba agrupando los símbolos de menor frecuencia y asignado la suma de las probabilidades de ambos al nodo padre del árbol. • Cada símbolo estará representado por una hoja del árbol y su código serán los bits recorridos hasta la raíz del mismo. • Ejemplo:
ABCDE(39) 1 BCDE(24) 0 0 1 BC(13) DE(11) 0 1 0 1 Codificación Huffman: Ejemplo A(15) B(7) C(6) D(6) E(5)
Codificación aritmética • Identifica una secuencia de símbolos asignándoles una representación binaria de un intervalo de una longitud inferior a la unidad. • Siempre son más eficientes que los códigos Huffman • Separa el modelo probabilístico de la asignación de bits pudiendo definir codificadores adaptativos. • Es computacionalmente eficiente, aunque está sujeto a patentes. • Ejemplo: • Supongamos sólo dos símbolos, A y B con una probabilidad de P(A)=1/3 y P(B)=2/3.
P(A) = 1/3 P(B) = 2/3 segmento código 1 AAA .11111 31/32 AA AAB 15/16 .1111 8/9 ABA 14/16 .1110 A AB ABB 6/8 .110 2/3 BAA 10/16 .1010 16/27 BA BAB 4/8 .100 4/9 BBA 3/8 .011 B 8/27 BB BBB 1/4 .01 0 Codificación aritmética: Ejemplo
3150000000376541111111127000000000000003 Datos a codificar (42): 315A0737654A1827A0143 Datos codificados (21): Tasa de compresión: 50% Run-length encoding • Se basa en detectar las repeticiones de símbolos (bits, números, etc) en los datos a codificar. • Ejemplo: • Este patrón es frecuente en multimedia: • Audio: Tiras de ceros que representan silencios. • Vídeo e imagen: Fondos del mismo color (paredes, cielos, etc.)
Codificación basada en la fuente. • Se basan fundamentalmente en las propiedades de la fuente de datos a codificar. • Suelen tolerar pérdidas en la codificación (lossy codecs) que perceptualmente pasan inadvertidas para el usuario. • Son codificadores de propósito específico. • Por término general obtienen mayores prestaciones que los codificadores basados en la entropía.
Codificación Diferencial • Se basa en la codificación de las diferencias entre dos símbolos consecutivos. • Ciertos tipos de datos tienen la propiedad de similitud entre símbolos consecutivos: • Señal de Audio, vídeo, imágenes, etc. • Esto permite codificar con pocos bits las diferencias. • Ejemplo: • DPCM (Differential Pulse Code Modulation) • Codificación con pérdida.
Restar a todos los pixels el valor del primero Imágen BW 4x4 pixels 160 160 161 160 160 0 1 0 161 165 166 158 1 5 6 -2 160 167 165 161 0 7 5 1 159 160 160 160 -1 0 0 0 F(t) C t f Transform encoding • Se basa en transformar el dominio (Ej.: del temporal al de la frecuencia) de los datos de entrada (Ej.: señal de audio). • Ejemplos: • Aritmética: • Fourier: • DCT (Discrete Cosine Transformation): • Muy común en compresión de imágenes estáticas (JPEG). • Codificación sin pérdida*.
Vector quantization • Es directamente aplicable a imágenes y audio. • Consiste en lo siguiente (imágenes): • La imagen se divide en bloques de tamaño fijo (vectores). • Se construye una tabla, code-book, con todos los vectores diferentes encontrados. • Se codifica la imagen como una sucesión de índices a la tabla. • Tanto el codificador como el decodificador necesitan conocer la tabla (code-book). • La tabla puede estar predefinida o ser creada dinámicamente. • Si en una imagen predomina un número reducido de vectores, el índice de compresión puede ser importante.
Imagen original dividida en vectores de nxn pixels Code-book 0 0 0 1 0 1 2 2 2 0 001022032200400 2 3 2 2 0 3 0 4 0 0 4 Vector quantization (II) • Ejemplo: • Si un vector no se encuentra en el code-book: • Buscaremos el que más se parezca. • Idem + enviar algún dato para aumentar el parecido (valor medio). • Idem + enviar lo que sea necesario (vector error) para reconstruir el vector. • Codificación con pérdida*.
Vector quantization (III) • CLUT (Color Look-Up Table) • Es utilizado para codificar imágenes RGB, que normalmente no utilizan todos los colores posibles. • Se utiliza una tabla (code-book) con los colores usados en la imagen. Cada pixel es representado con el índice de la tabla correspondiente a su color. • Ejemplo: • Imagen RGB de 24bits de color que solo usa 256. • Se construye una tabla de 256 entradas y en cada una de ellas se guarda un color (24 bits). • En lugar de usar 24bits/pixel, ahora usaremos 8bits/pixel • Tasa de compresión: ~66% • Codificación más lenta que decodificación.
Tema 4:La compresión de datos Factores de diseño de un codec Codificación basada en la entropía Ejemplos: Huffman, Aritmética, etc. Codificación basada en la fuente. Ejemplos: Diferencial, Transformada, etc. Codificación y compresión de audio
Introducción. • Las secuencias de audio forman parte de las aplicaciones multimedia. • El estudio de la codificación y compresión se puede enfocar en función de la aplicación: • Aplicaciones interactivas (audio-conferencia audio) codecs simétricos. • Aplicaciones de difusión y reproducción de medios (TV digital, audio Hi-Fi, DVD, etc.) codecs asimétricos • Características de una señal de audio. • Distintos tipos de calidad de audio. • Técnicas de compresión de audio.
Características del audio • Una señal de audio no es más que una onda acústica (variaciones de presión del aire) • La señal de audio es unidimensional (tiempo) • El micrófono transforma las ondas acústicas que lo golpean, en señales eléctricas (niveles de voltaje) • El oído es muy sensible a las variaciones de sonido de corta duración (ms) al contrarío que el ojo humano. • La relación de dos sonidos A y B se mide en decibelios: • dB=20 log10 (A/B). • La intensidad de un sonido A se mide en decibelios tomando como referencia el menor sonido audible. • 0 dB: Menor sonido audible • La señal de referencia (B) es una onda senoidal a 1khz que provoca una presión de 0.0003 dinas/cm2 • A y B son amplitudes (si fueran potencias sería 10 log10 (A/B)) • 50 dB: Conversación normal. • 120dB: Umbral del dolor.
Audible No audible Características del audio • El rango de frecuencias audibles por los humanos está entre 20Hz y 20KHz.
Digitalización y cuantificación. • La digitalización de las señales de audio se realizan mediante convertidores A/D. • Muestrean la señal analógica de audio a una frecuencia determinada. • Según Nyquist: “Si la señal de entrada tiene una frecuencia máxima de f, la frecuencia de muestreo tiene que ser de al menos 2f “(al muestrear a Sf captaremos hasta la frec. Sf/2) • En el conversor D/A, un filtro paso bajo puede interpolar la parte de señal entre las muestras, para poder reconstruir perfectamente la señal original.
Digitalización y cuantificación. • Cuantificación: Las muestras obtenidas se codifican en un número finito de bits • Error de cuantificación (quantification noise). • Codificación lineal o logarítmica. • PCM (Pulse Code Modulation). • Usado para la digitalización de señales de audio. • Parámetros: Sf, bits/muestra, niveles de cuantificación*
Digitalización y cuantificación. • Cuantificación PCM lineal • Los niveles de cuantificación están espaciados de manera equitativa. • Cada bit de resolución añade 6 dB de rango dinámico. • Con 16 bits por muestra se cubre totalmente el rango dinámico del oído humano. • Cuantificaciones no-lineales (logarítmica) • Los pasos de cuantificación decrecen logarítmicamente. • El oído humano es menos sensible a sonidos fuertes.
Digitalización: Interfaz MIDI • MIDI (Musical Instrument Digital Interface). • Utilizado para codificar música (instrumentos). • Codifica los elementos básicos (notas, silencios, ritmos, etc.) en mensajes MIDI. • Cada instrumento tiene su propio código (hasta 127) • Un sintetizador interpreta los mensajes MIDI y produce la señal de audio correspondiente. • Ventaja: • Reduce mucho el ancho de banda necesario (factor de 1000 !!) • Inconvenientes: • Necesidad de un sintetizador en ambos extremos (calidad de sonido diferente). • Aplicable solo a música.
Calidad de una señal de audio. • Voz (telefonía) • Se define para los servicios de telefonía digital. • Estándar G.711 (ITU): Codificación logarítmica. • Japón y USA: Transformación µ-law. • Resto: Transformación A-law. (+) • Parámetros: • Señal de audio de 3.5 KHz (BW). • Sf = 8 KHz • 8 bits/muestra. • Tasa de bits: 64Kbps (N-ISDN). • Otras técnicas de codificación y compresión: • DPCM y ADPCM, • G.72x, • GSM, • LPC y CELP, • etc.
Calidad de una señal de audio. • CD-Digital Audio. • Calidad de audio superior: Sonido Hi-Fi estereofónico. • Utiliza una codificación lineal. Las diferencias de amplitud deben ser respetadas por igual. • Parámetros: • Señal de audio de 20 KHz (BW). • Sf = 41.1 KHz • 16 bits/muestra. • Soporta estereofonía (dos canales) • Tasa de bits: 1.411 Mbps. • Otros estándares utilizan esta calidad de audio: • DAT (32.4 y 48 KHz), • MPEG (32, 44,1 y 48 KHz), • DVI, • etc.
Parámetros específicos. • Tasa de bits (throughput): • Audio sin comprimir: • Calidad telefónica: 64Kbps. • Calidad CD: 1.411 Mbps. • Audio comprimido: • Calidad telefónica: 32, 16, 4 Kbps (ADPCM, CELP) • Calidad CD: 192 Kbps. (MPEG audio) • Retardo de tránsito (aplicaciones interactivas) • Conversación: • Telefonía: < 25 ms (evitar echo). • 100 a 500 ms (sensación de tiempo real).
Parámetros específicos. • Varianza del retardo (jitter). • Es el parámetro más crítico para los streams de audio. • Solución: • Técnicas de ecualización del retardo. • Se suministra un tiempo adicional antes de comenzar la reproducción, almacenando los paquetes en un buffer de entrada. • Consecuencias: • Incrementamos el retardo total. • Necesitamos recursos de memoria para el buffer de ecualización. • Compromiso entre la capacidad de almacenamiento y el máximo jitter tolerable por la aplicación. • Tasas de error: • Calidad telefónica: < 10-2, Calidad CD: < 10-3
Algoritmos de compresión (Voz) • Codificación diferencial: • DPCM (Differential Pulse Code Modulation). • Explota la redundancia temporal entre las muestras. • Se transmite la diferencia entre muestras (bastante menor). • Problema: Sobrecarga de gradiente (slope overload) • Las diferencias en altas frec.(cercanas a Nyquist) no se pueden representar con el mismo número de bits.
C[n] X[n] D[n] Quantizer (adaptive) Dq[n] - Xp[n] C[n] Dequantizer (adaptive) + Xp[n-1] Dq[n] Xp[n] Predictor module Dequantizer (adaptive) + Xp[n-1] Predictor module Codificador Decodificador Algoritmos de compresión (Voz) • Codificación diferencial adaptativa: • ADPCM (Adaptive Differential Pulse Code Modulation). Predice la muestra y cuantiza adaptativamente. • Predicción: Codifica la diferencia entre la muestra actual y una estimación basada en las últimas “n” muestras
Algoritmos de compresión (Voz) • Codificación diferencial adaptativa: • ADPCM (Adaptive Differential Pulse Code Modulation). Predice la muestra y cuantiza adaptativamente. • Cuantización adaptativa: Usa pasos más largos para codificar diferencias entre muestras muy distintas en magnitud (de alta frecuencia) y pasos más pequeños para muestras que son similares (bajas frecuencias).
Dq[n] C[n] Xp[n] X[n] D[n] C[n] Dequantizer (adaptive) Quantizer (adaptive) + - Xp[n-1] Dq[n] Xp[n-1] Delay Xp[n] Delay Dequantizer (adaptive) + Predictor module Decodificador Codificador Una implementación de ADPCM • Algoritmo ADPCM (IMA: Interactive Multimedia Association) • Algoritmo de dominio público. Calidad de audio e índice de compresión aceptables. • Sencillo y capaz de trabajar en tiempo real (software). • Indice de compresión: (PCMbits/4) a 1.
Calidad telefónica: Recomendaciones ITU • G.701: Digitalización PCM • G.711: Codificación logarítmica µ-law y A-law • G.721: ADPCM • Muestreo a 8 Khz, muestras de 8 bits: 64 Kbps • Utiliza diferencias de 4 bits: tasa de bits final 32 Kbps • G.722: Sub-Band ADPCM. • Muestreo a 16 Khz, muestras de 14 bits: 224 Kbps • Codifica señales de audio de hasta 7 KHz (por el muestreo) • Descompone la señal en dos bandas de 4 KHz. • A cada banda le aplica ADPCM. • Tasas de bits finales: 48, 56 y 64 Kbps. • G.723, G.726, G.727: • Variantes del G.721 (ADPCM).
Calidad telefónica: Vo-coding • LPC (Linear Predictive Coding) US-FS-1015 • Define un modelo analítico del aparato fonador • Reduce cada segmento de audio a los parámetros del modelo que más se aproximan al original. • El decodificador recoge estos parámetros y sintetiza la voz correspondiente. • LPC-10E puede bajar hasta 2.4 Kbps. • CELP (Code Excited Linear Prediction) US-FS-1016. • Es una versión mejorada del LPC. • Diferencia: • Utiliza un code-book con secuencias predefinidas para aplicarlas a cada frame de audio, eligiendo aquella que más se aproxima al original. Además, calcula los errores cometidos. • Se envían los parámetros y la versión comprimida de los errores. • Tasa de bits de hasta 4.8 Kbps (calidad similar a ADPCM G.721 a 32 Kbps) • Variantes CELP: • GSM, VSELP, LD-CELP, ITU G.729, QCELP, MELT, etc.
Calidad telefónica • Tabla resumen de algunos codecs de audio.
Calidad CD • Estándares MPEG/audio (Estándar ISO) • MPEG (Moving Pictures Expert Group) • MPEG/audio ofrece altos índices de compresión, manteniendo la calidad del audio del stream original. • Son algoritmos de compresión con pérdidas*. • MPEG-1 /audio • Muestreos: 32, 44.1 y 48 KHz. • Soportan uno o dos canales (diferentes modos de operación). • Tasas de bits: 32 a 256 Kbps/canal. • Indices de compresión: 2.7 a 24. • MPEG-2 /audio • Compatibilidad hacia atrás con MPEG-1. • Diseñado para sistemas de sonido multicanal.
MPEG-1 audio. • El stream comprimido puede incluir información auxiliar (acceso aleatorio, avance y retroceso rápido, CRC, etc.) • Arquitectura de tres niveles • MPEG-1 Nivel I: • El más sencillo. Tasa de bits 192 Kbps/canal. Aplicaciones: Philips DCC • MPEG-1 Nivel II: • Complejidad media. Tasa de bits 128 Kbps/canal. Aplicaciones: DAB, CD-I, Vídeo CD. • MPEG-1 Nivel III: • El más complejo. Ofrece la mejor calidad de audio con tasas de bits sobre 64 Kbps/canal. Está preparado para N-RDSI. • Existen codecs hardware de los tres niveles para aplicaciones de tiempo real.
MPEG audio: Fundamentos. • Se basa en la capacidad de percepción que tiene el oído humano (modelos psico-acústicos) • Enmascaramiento de señales débiles (noise masking):
MPEG audio: Fundamentos. • Discriminación frecuencial limitada. • La agudeza (selectividad) del oído humano en baja frecuencia es muy superior que en altas frecuencias (sub-band coding)
Codificador Stream de bits comprimido PCM audio Time-Frec Sub-band filtering Asig. Bits. Cuantizador Codificador Formato del stream de bits Modelo psico-acúst. Datos auxiliares (opcional) Decodificador Stream de bits comprimido Reconst. de bandas PCM audio Transformación Frec-Time Desensamblado Datos auxiliares (opcional) MPEG Audio: Diagrama de bloques
MPEG-1 audio: Niveles. • Nivel I: • Se divide la señal de audio en 32 bandas de 750 Hz. • Tasa de muestreo: 48 Khz. Tamaño de trama: 384 muestras • El umbral de enmascaramiento (SMR) se calcula con una FFT de 512 puntos (modelo psico-acústico). • Para cada sub-banda se escoge uno de los 15 cuantizadores definidos en función del SMR y la tasa de bits requerida. • Nivel II: • Utiliza un tamaño de trama de 1152 muestras, una FFT de 1024 puntos (cálculo del SMR) y una cuantización más fina. • Nivel III: • Incrementa la resolución en frecuencia de las 32 bandas (MDCT), utiliza un modelo psico-acústico más elaborado, y añade una etapa de compresión Huffman.
MPEG Audio: Calidad de audio • Parámetros de calidad objetivos: • MSE (Mean Square Error). • Calcula el error cuadrático medio entre la señal original y la reconstruida con el codec. • SNR (Signal-to-Noise Ratio) • Relación logarítmica entre dos señales. Se utilizará para comparar la señal original con el error introducido por el codec. • Se expresa en decibelios (dB).
MPEG Audio: Calidad de audio. • Parámetros de calidad subjetivos: • MOS (Mean Opinion Score): MPEG define una serie de tests para determinar la calidad de audio generada por cada nivel. • Resultados: • Fuente: • Estéreo, 16bits, 48KHz, 256 Kbps • Compresión 6:1 • En condiciones de escucha óptimas, expertos en audición han sido incapaces de distinguir secuencias comprimidas de sus originales.