Codificacion

169
TECNOLOGÍAS DE RED AVANZADAS – Master IC 2011-2012 – http://www.grc.upv.es/docencia/tra/ 3- Codificación y difusión de información multimedia 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 Compresión de imagen. Redundancia espacial. Estándar JPEG JPEG Escalado Compresión de vídeo. Digitalización y Codificación de vídeo. Tipos de vídeo. Redundancia temporal. Estimación de movimiento: algoritmos. Estándares: MPEG e ITU Bibliografía [FLU95] Understanding networked multimedia [GIB98] Digital Compression for Multimedia [TSU99] Introduction to video coding standards for multimedia communication [JPEGESC] JPEG escalado - Tesis [JPEGAD] JPEG image coding with adaptive quantization [TSU99] Introduction to video coding standards for multimedia communication [H.264] Overview of the H.264 / AVC Video Coding Standard [MPEG4] MPEG-4 Overview [HiJa94] Compressing still and moving images with wavelets

description

Codificación productos

Transcript of Codificacion

Tema 6: Codificación y compresión de información multimediaFactores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
[TSU99] Introduction to video coding standards for multimedia communication
[JPEGESC] JPEG escalado - Tesis
[TSU99] Introduction to video coding standards for multimedia communication
[H.264] Overview of the H.264 / AVC Video Coding Standard
[MPEG4] MPEG-4 Overview
*
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.
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.
*
*
Un sistema de compresión consta de:
Codificador y decodificador
Asimétricos
El codificador suele ser más complejo y lento que el decodificador (Ej.: Vídeo por demanda)
Simétricos
Con pérdidas (lossy compression) o irreversible
Adecuada para medios continuos (audio y vídeo).
Mayores tasas de compresión.
*
*
*
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.
*
*
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
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).
*
*
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 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:
Codificación Huffman: Ejemplo
Símbolo
Código
A
0
B
100
C
101
D
110
E
111
ABCDE(39)
0
1
DE(11)
1
0
BC(13)
1
0
BCDE(24)
1
0
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:
*
*
Codificación aritmética: Ejemplo
Run-length encoding
Se basa en detectar las repeticiones de símbolos (bits, números, etc) en los datos a codificar.
Ejemplo:
Audio: Tiras de ceros que representan silencios.
Vídeo e imagen: Fondos del mismo color (paredes, cielos, etc.)
Datos a codificar (42):
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
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.
*
*
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:
Codificación con pérdida.
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:
Codificación sin pérdida*.
Vector quantization
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.
*
*
Vector quantization (II)
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*.
0
1
2
3
4
Code-book
001022032200400
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%
*
*
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
Introducción a la codificación y compresión de audio.
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.
Características del audio
*
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.
*
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).
Parámetros: Sf, bits/muestra, niveles de cuantificación*
*
Digitalización y cuantificación.
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)
El oído humano es menos sensible a sonidos fuertes.
*
Digitalización: Interfaz MIDI
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)
Estándar G.711 (ITU): Codificación logarítmica.
Japón y USA: Transformación µ-law.
Resto: Transformación A-law. (+)
Sf = 8 KHz
Otras técnicas de codificación y compresión:
DPCM y ADPCM,
Calidad de una señal de audio.
CD-Digital Audio.
Utiliza una codificación lineal. Las diferencias de amplitud deben ser respetadas por igual.
Parámetros:
Sf = 41.1 KHz
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.
Calidad CD: 192 Kbps. (MPEG audio)
Retardo de tránsito (aplicaciones interactivas)
Conversación:
100 a 500 ms (sensación de tiempo real).
*
*
Parámetros específicos.
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:
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:
*
*
Algoritmos de compresión (Voz)
Explota la redundancia temporal entre las muestras.
Se transmite la diferencia
Las diferencias en altas
frec.(cercanas a Nyquist) no
se pueden representar con
*
*
Algoritmos de compresión (Voz)
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
Dequantizer
(adaptive)
Algoritmos de compresión (Voz)
ADPCM (Adaptive Differential Pulse Code Modulation). Predice la muestra y cuantiza adaptativamente.
*
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.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:
Calidad telefónica: Vo-coding
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:
*
*
Calidad telefónica
*
*
Calidad CD
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
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
Diseñado para sistemas de sonido multicanal.
*
*
MPEG-1 audio.
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.
*
*
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.
*
*
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:
*
*
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:
*
Compresión 6:1
*
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
Introducción a la codificación de imágenes.
Las imágenes que percibimos están compuestas de ondas electromagnéticas (: 250nm - 780nm).
A diferentes longitudes de onda, diferentes sensaciones de color.
El ojo es más sensible a unos colores que a otros.
Dadas tres fuentes de luz de la misma intensidad y distinto color (una roja, otra verde y otra azul), el ojo percibe la verde con el doble de intensidad que la roja, y seis veces más intensa que la azul.
Los mecanismos de percepción visual humanos son menos sensibles y estrictos que los auditivos.
Ej.: Variaciones de frecuencia, supresión de imágenes, etc.
Mezclando 3 colores (RGB) podemos obtener otro.
Integra la información que recibe.
*
*
Captura y digitalización de imagen I
Las imágenes digitales están compuestas de píxels (picture element).
Una cámara fotográfica digital utiliza un CCD (charge coupled device) para realizar el proceso de adquisición analógica.
El CCD tiene una serie de pequeños diodos sensibles a la luz que convierten luz en cargas eléctricas (o sea, fotones en electrones).
Cada diodo del CCD captura un píxel de la imagen a adquirir.
*
Mediante la lente se puede conseguir también realizar zoom óptico (no confundir con zoom digital)
TECNOLOGÍAS DE RED AVANZADAS – Master IC 2011-2012
Captura y digitalización de imagen II
Problemática del color:
Si el CCD captura la luz directa que recibe de la lente, sólo tenemos la intensidad de luz, pero no su color.
Añadimos un filtro (R, G ó B) a cada píxel, de manera que algunos píxels reciben sólo la luz roja, otros la verde y otros la azul.
*
La información de color que no se ha obtenido en cada píxel se interpola directamente de sus vecinos, usando un DSP.
TECNOLOGÍAS DE RED AVANZADAS – Master IC 2011-2012
Captura y digitalización de imagen III
El CCD es un dispositivo analógico.
Es necesario un conversor analógico digital (ADC) que obtenga la representación digital de cada píxel a partir de la señal eléctrica generada por cada diodo.
Una cámara digital necesita un DSP para gestionar el funcionamiento de la cámara.
Realiza el acceso y almacenamiento de fotos en memoria, el proceso de compresión, la interpolación de los colores, gestión de menús, etc.
*
Captura y digitalización de imagen IV
Codificación y recodificación.
Cada muestra RGB se codifica con una cantidad de bits por componente de color (p.ej., 8 bits/componente→24 bits/muestra).
A veces resulta interesante codificar el nivel de brillo de una muestra (luminancia, o componente Y) y las diferencias de color (crominancias azul, roja y verde, o componentes Cb, Cr, Cg).
La conversión de RGB a YCbCr (YUV) se realiza mediante una matriz de conversión (aproximada):
Y = 0.3R + 0.6G + 0.1B (Nivel de brillo o luminancia)
U = B - Y (Diferencia de color azul) (equiv. Cb=U/2+128)
V = R - Y (Diferencia de color rojo) (equiv. Cr=V/1.6+128)
Cada uno de los componentes se codifica con 8 bits.
Y (8 bits): rango 16-235
Cb (8 bits) y Cr (8 bits): rango 16-240
*
La diferencia de color verde (Cg) es redundante y no se almacena, ya que se puede obtener a partir de la Y, la Cb y la Cr.
TECNOLOGÍAS DE RED AVANZADAS – Master IC 2011-2012
Captura y digitalización de imagen V
*
Tipos de imagen (según su resolución)
La resolución de una imagen se mide según el número de píxels por lado (ancho x alto).
En cámaras digitales se suele medir en Megapixels (millones de píxels por imagen)
Common Intermediate Format (CIF) (352x288): Utilizado habitualmente en videoconferencia (junto con Quarter CIF)
VGA (640x480): Usado por cámaras de baja calidad.
n-Megapixels: Ofrecido por cámaras de mayor calidad.
A veces, la resolución real de una cámara digital no coincide con la del CCD de esa misma cámara.
P.ej, una cámara de 3,3 MP ofrece una resolución de 2048x1536.
*
Compresión de imagen.
Redundancia espacial:
Las imágenes tienen información redundante susceptible de ser eliminada o reducida (por ejemplo, el color del cielo en una foto suele ser uniforme y azul :-).
El proceso de compresión de imagen consistirá en:
Eliminar en la medida de lo posible la redundancia espacial utilizando técnicas de source encoding (normalmente mediante transformada matemática).
*
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
Redundancia espacial: JPEG
Es un estándar ISO (‘91) cuyo origen proviene del grupo JPEG (Joint Photographic Expert Group).
Codifica imágenes de tono-continuo
Dispone de cuatro modos de operación (incluyendo codificación sin perdidas).
Se definen una serie de parámetros que permiten codificar las imágenes para obtener una gran variedad de calidades de compresión.
Factor de compresión ronda 20:1*
Es un sistema de codificación simétrico.
*
Codificación JPEG (pasos)
Paso 1: Preparación de la imagen.
No define el formato de imagen original. Podría ser RGB, YUV, YIQ, YCrCb, etc.
Convierte la imagen a formato YCbCr utilizando una reducción de color 4:1:1 (sub-sampling)
Ej.: RGB 640x480 (VGA): Y (640x480), Cb y Cr (320x240)
Se divide la imagen en bloques de 8x8 elementos
*
Codificación JPEG: Transformada DCT
Transforma un dominio de amplitudes al dominio de la frecuencia.
Las componentes frecuenciales más altas son susceptibles de ser eliminadas (percepción visual)
Se aplica esta transformada a cada bloque de 8x8 obteniendo la matriz de coeficientes DCT asociada
*
Codificación JPEG: Transformada DCT(II)
DCT-1D: (vector 8 elementos)
DCT-2D: (matriz 8x8 elementos)
Codificación JPEG: Cuantificación
Paso 3: Cuantificación (quantization).
Se eliminan los coeficientes menos representativos de la DCT (transformación con pérdidas).
*
Codificación JPEG: Codificación entropía
Paso 4: Codificación DPCM de los componentes DC de cada bloque.
Bloques sucesivos tienen un valor medio muy similar.
Paso 5: Codificación run-length de todos los componente de un bloque.
*
Codificación JPEG: Codificación entropía
Paso 6: Codificación estadística VLC: Huffman
A lo obtenido en el paso anterior se aplica el algoritmo de Huffman para comprimir aún más la información.
El resultado de este paso es lo que debemos enviar o almacenar.
La decodificación JPEG consiste en realizar el proceso inverso:
*
Codificación JPEG: Ejemplo real (Quant)
*
*
Paso 1. Se codifica la DC usando codificación diferencial DPCM
Si DC Bloque anterior es 98 → codificar 102-98
Se codifica como:
Bloque de muestras cuantizadas
Tabla para la DC
*
Paso 2: Se codifica en zig-zag pares <Run (cuenta de ceros), coeficientes>
Parte del bloque codificado con VLC
Existe código de escape:
Tabla para pares <Run, Niveles>
Bloque de muestras cuantizadas
Run (Num. De Ceros)
*
Bloque codificado con VLC
Stream final: 1011000010010100011100001101 … 000100110 (85 bits)
Bits por píxel: (Núm bits/ Núm píxels) 85/64= 1’33 bpp
Factor de compresión:
1:Tam_original/Tam_comprimida= (85/85):(512/85)= 1:6
Codificación JPEG: Ejemplo real IV (Calidad)
*
PSNR (Peak SNR)
Valores del ejemplo:
MSE = 49’53
Factores de diseño de un codec
Codificación basada en la entropía
Ejemplos: Huffman, Aritmética, etc.
Ejemplos: Diferencial, Transformada, etc.
Estándar JPEG
JPEG Escalado
Redundancia temporal.
JPEG escalado
Motivación
Mayor compactación de energía pero mayor tiempo de cálculo.
Descartar coeficientes de alta frecuencia hasta quedarse con sólo una submatriz de…