(Lossy)
• La naturaleza de los datos multimedia es brindar información directa a una persona. Las personas, tenemos límites en la percepción.
• El cerebro humano compensa estas deficiencias, integrando la información. Así, podemos seleccionar la información que menos se percibe y eliminarla.
• Los periféricos, transmiten información a otros periféricos, captando todos los datos enviados.
• Para el humano, la pérdida de esta información es inapreciable, mientras que para un periférico es cuantiosa.
FIUBA Organización de Datos - Curso Servetto 183
Algoritmos de Compresión
Con Pérdida
(Lossy)
• Los archivos multimedia (de video) son muy “pesados” debido a su naturaleza.
• Su representación más sencilla es la sucesión de cuadros, cada uno de los cuales se
representa como una matriz de píxeles.
• El video a color utiliza 8 bits por pixel para cada color RGB (Red, Green, Blue), 16
FIUBA Organización de Datos - Curso Servetto 184
Algoritmos de Compresión
Con Pérdida
(Lossy)
• Para que el ojo humano observe movimiento continuo, se deben exhibir 25 cuadros/s.
• Para una pantalla de 1024 x 768, teniendo 24 bits por pixel, necesito alimentar el monitor
con 472 Mbps.
• Un video de 2 horas, con esta tasa, ocuparía casi 400 Gb.
FIUBA Organización de Datos - Curso Servetto 185
Algoritmos de Compresión
Con Pérdida
(Lossy)
• Se necesitan técnicas de compresión
(compactación en este caso) para el video. • En este tipo de técnicas, la codificación y la
decodificación van a ser bastante asimétricas. • El archivo multimedia solo se codificará una
vez y se decodificará muchas veces.
• Al decodificar, el resultado será distinto al original hay pérdida de información
FIUBA Organización de Datos - Curso Servetto 186
FIUBA Organización de Datos - Curso Servetto 187
JPEG
• JPEG (Joint Photographic Experts Group) es un estándar para comprimir imágenes.
• Se utiliza como parte del estándar MPEG para comprimir video.
• Tiene 4 modos, pero nos ocuparemos del que se usa con video RGB de 24 bits.
• Las tasas de compresión pueden ser entre 20:1 y 25:1 sin notar degradaciones importantes,
mientras que en las técnicas sin pérdida podrían rondar los 10:1.
FIUBA Organización de Datos - Curso Servetto 188
JPEG
• Además de RGB, existe otra forma de representar el color con una señal de
luminancia (brillantez) y dos de crominancia (color).
• El ojo humano es mucho mas sensible a las señales de luminancia que a las de
crominancia. Por esto, las dos últimas no tienen por qué transmitirse con tanta
FIUBA Organización de Datos - Curso Servetto 189
JPEG (codificación)
• 1er paso: Preparación de los bloques
• Teniendo una imagen RGB de 640 x 480, con 24 bits por pixel.
• Sabiendo que las señales de luminancia y crominancia producen mejor compresión, se calculan a partir de los valores de RGB.
• Estas se llaman Y (luminancia), I y Q
FIUBA Organización de Datos - Curso Servetto 190
JPEG (codificación)
• 1er paso: Preparación de los bloques
• Se construyen matrices individuales para Y, I y Q. Cada una con elementos dentro del intervalo 0 – 255 (8 bits). No se comprime nada hasta aquí. • Se promedian bloques cuadrados de cuatro
pixeles en las matrices I y Q (quedando 320x240) • Esta reducción produce pérdidas, pero el ojo casi
no lo nota debido a que es más sensible a la luminancia.
FIUBA Organización de Datos - Curso Servetto 191
JPEG (codificación)
• 1er paso: Preparación de los bloques
• Se resta 128 a cada elemento de las 3 matrices para que el 0 quede a mitad del intervalo.
FIUBA Organización de Datos - Curso Servetto 192
JPEG (codificación)
• 2do paso: Transformación discreta del coseno
• A cada uno de los bloques por separado se aplica la DCT. El resultado es una matriz de 8x8
coeficientes DCT.
• El elemento DCT (0,0) es el valor promedio del bloque.
• En teoría este paso no produce pérdidas, pero siempre existe un pequeño error de redondeo.
FIUBA Organización de Datos - Curso Servetto 193
JPEG (codificación)
• 2do paso: Transformación discreta del coseno
• El valor promedio es el más alto del bloque, y el resto decae rápidamente a medida que se aleja del origen.
FIUBA Organización de Datos - Curso Servetto 194
JPEG (codificación)
• 3er paso: Cuantización
• Se eliminan los elementos DCT menos importantes. Produce pérdidas.
• Se divide cada elemento DCT de cada matriz 8x8 por un peso correspondiente a la misma posición, tomado de una tabla de cuantización.
• La tabla no es parte del estándar, por lo que sus pesos pueden variar dependiendo del grado de pérdida/compresión que se desee dar.
FIUBA Organización de Datos - Curso Servetto 195
JPEG (codificación)
FIUBA Organización de Datos - Curso Servetto 196
JPEG (codificación)
• 4to paso: Reducción del valor promedio
• Redice el valor (0,0) de cada bloque,
sustituyéndolo por su diferencia con el elemento (0,0) del bloque anterior.
• Es de esperarse que el cambio entre un bloque y otro sea gradual, por lo que las diferencias serán pequeñas.
FIUBA Organización de Datos - Curso Servetto 197
JPEG (codificación)
• 5to paso: Linealización del bloque
• Explora los elementos del bloque en zigzag, comenzando por el elemento origen.
• Con esto, términos parecidos y tiras de ceros se obtienen juntos.
FIUBA Organización de Datos - Curso Servetto 198
JPEG (codificación)
• 6to paso: Compresión
• Al resultado obtenido por la linealización, se le aplica un compresor tipo run-length para
aprovechar seguidillas de valores repetidos.
• A la lista de números que representan la imagen completa, se le aplica el método de compresión estadística de Huffman, para almacenar o
FIUBA Organización de Datos - Curso Servetto 199
FIUBA Organización de Datos - Curso Servetto 200
MPEG
• MPEG (Motion Pictures Experts Group) es un conjunto de estándares para comprimir video. • MPEG-1 está diseñado para obtener salidas
con calidad videograbadora (352x240), tasa de 1.2 Mbps.
• MPEG-2, del que nos ocuparemos, comprime video con calidad de difusión entre 4 y 6