El documento presenta conceptos básicos sobre teoría de la información, compresión de imágenes y video. Explica la cuantización, transformada discreta de coseno, códigos de Huffman y cómo se aplican en estándares como JPEG y MPEG. También introduce conceptos como compensación de movimiento y vectores de movimiento usados para aprovechar correlación temporal en la compresión de video.
3. Ariel Roel – arielroel@gmail.com
AGENDA – Unidad 4
• Introducción a la Voz sobre IP
• Introducción al Video sobre IP
• Protocolos de transporte de medios de tiempo real.
• Calidad de Servicio.
Voz y Video Sobre IP
4. Ariel Roel – arielroel@gmail.com
Información básica transmitida
• ¿Cuánta información se transmita en un símbolo?
• Intuitivamente, cuanto más impredecible y
sorprendente es, más información se transmite.
• Por el contrario, si se esperaba algo fuertemente, y
ocurre que, no hemos aprendido mucho
5. Ariel Roel – arielroel@gmail.com
Teoría de la Información Elemental
• Si p es la probabilidad de que un simbolo puede
ocurrir
• Entonces, la cantidad de información, transmitida,
es I:
• La información I es medida en bits
• Es el largo óptimo para el símbolo
p
I
1
log2
6. Ariel Roel – arielroel@gmail.com
• La entropia, H, es el promedio de información por
símbolo
• Esta fórmula provee el limite mas bajo de
compresión que puede ser alcanzado
Teoría de la Información Elemental
)
)(
1
(log)( 2
sp
spH
s
7. Ariel Roel – arielroel@gmail.com
Teoría de la Información Elemental
• Un ejemplo sencillo. Supongamos que tenemos que
transmitir cuatro condiciones climáticas posibles:
1. Soleado
2. Nublado
3. Lluvioso
4. Nevando
• Si todas las condiciones tienen la misma
probabilidad de ocurrir, p(s)=0.25, y H=2
▫ i.e. necesitamos un mínimo de 2 bits por símbolo
)
)(
1
(log)( 2
sp
spH
s
8. Ariel Roel – arielroel@gmail.com
• Supongamos ahora que:
1. Soleado ocurre 0.5 del tiempo
2. Nublado 0.25 del tiempo
3. Lluvioso 0.125 del tiempo
4. Nieva 0.125 del tiempo
• Entonces la entropia es:
Teoría de la Información Elemental
75.175.05.05.0
3125.02225.015.0
125.0
1
log125.02
25.0
1
log25.0
5.0
1
log5.0 222
H
H
H
9. Ariel Roel – arielroel@gmail.com
Teoría de la Información Elemental
• Codewords de largo Variable
• Huffman code – códigos de largo entero
• Códigos aritméticos – códigos de largo no fraccional
10. Ariel Roel – arielroel@gmail.com
Teoría de la Información Elemental
• Huffman code
Tiempo Probabilidad Información Código Entero
Soleado 0.5 1 0
Nublado 0.25 2 10
Lluvioso 0.125 3 110
Nevando 0.125 3 111
11. Ariel Roel – arielroel@gmail.com
Teoría de la Información Elemental
• Este es un ejemplo de un código sin pérdidas
▫ Podemos recuperar la información exactamente
• Es importante recalcar que asumimos que cada
símbolo es independiente de otros símbolos
▫ Cada símbolo no provee información sobre el símbolo
siguiente
12. Ariel Roel – arielroel@gmail.com
• La Cuantización es el proceso de aproximar valores
continuos a través de un rango mucho mas pequeño
de valores
• Donde el Redondeo(y) redondea al entero mas
cercano
• es el paso de cuantización
Cuantizacion
5.0
R),(
x
edondeoxQ
13. Ariel Roel – arielroel@gmail.com
• Ejemplo: =2
Cuantizacion
0 1-3 -2 -1 2 3 4 5-5 -4
0-1 1 2-2
0-2 2 4-4
• La cuantizacion juega un rol importante en la
compresión con pérdidas
▫ Es donde la compresión ocurre
14. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Una imagen se compone de píxeles (elementos de
imagen)
• Cada pixel representa luminancia (y color)
▫ Típicamente, 8-bits por pixel
15. Ariel Roel – arielroel@gmail.com
15
Conceptos básicos de imagen
• Color
▫ Espacios de color(representacion)
RGB (red-green-blue)
CMY (cyan-magenta-yellow)
YUV
Y = 0.3R+0.6G+0.1B (luminancia)
U=R-Y
V=B-Y
• Escala de grises
• Binario
16. Ariel Roel – arielroel@gmail.com
16
Conceptos básicos de imagen
• Un cuadro de TV es de aproximadamente 640x480
pixels
• Si cada pixel es representado por 8-bits para cada
color, entonces el tamaño total de imagen es
▫ 640×480*3=921,600 bytes o 7.4Mbits
• A 30 cuadros por segundo (NTSC), obtenemos
▫ 220Mbits/segundo
17. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Imagen representada con 8-bits por pixel
18. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• La misma imagen con 7-bits por pixel
19. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Y 6-bits por pixel
20. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Y 5-bits por pixel
21. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Y 4-bits por pixel
22. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• ¿Necesitamos todos esos bits?
▫ ¡No!
• El ejemplo anterior ilustra la sensibilidad del ojo a
la luminancia
• Podemos crear un modelo de percepción
▫ Solo codificar lo que es importante para el sistema
visual humano - human visual system (HVS)
Usualmente una función de la frecuencia espacial
23. Ariel Roel – arielroel@gmail.com
23
Conceptos básicos de imagen
• Así como de audio tiene frecuencias temporales
• Las imágenes tienen frecuencias espaciales
• Transformadas
▫ Fourier
▫ Discrete cosine transform (Transformada del Coseno)
▫ Wavelet
24. Ariel Roel – arielroel@gmail.com
• Forward DCT (directa)
• Inverse DCT (Inversa)
Discrete Cosine Transform (DCT)
1
0
)5.0(
8
cos)(
2
)(
)(
N
n
n
u
ns
uC
uS
)5.0(
8
cos)(
2
)(
)(
1
0
n
u
uS
uC
ns
N
u
34. Ariel Roel – arielroel@gmail.com
• Si i(x,y) representa una imagen con N filas y M
columnas
• Su DCT I(u,v) esta dada por
• donde
DCT 2-D
M
x
N
y
vyux
yxivCuCvuI
1 1 16
)12(
cos
16
)12(
cos),()()(
4
1
),(
2
1
)0( C 1)( uC
35. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Discrete cosine transform
▫ Los coeficientes estan aproximadamente
incorrelacionados
Excepto la armonica de continua
Se toma bloques de 8×8 pixel
▫ Concentra mas potencia en los coeficientes de baja
frecuencia
▫ Eficiente a nivel computacional
• DCT basada en bloques
▫ Se calcula la DCT en bloques de 8×8
36. Ariel Roel – arielroel@gmail.com
Conceptos básicos de imagen
• Armónicas de una DCT de 8×8 DCT
37. Ariel Roel – arielroel@gmail.com
Conceptos básicos de JPEG
DCT Cuantificador Codificador
de Entropia
IDCT Decuantificador Decodificado
r de Entropía
Datos Comprimidos
Codificador
Decodificador
38. Ariel Roel – arielroel@gmail.com
Conceptos básicos de JPEG
• JPEG usa bloques de 8×8
• Extrae bloques de 8×8 pixel
• Los convierte al dominio DCT
• Cuantifica cada coeficiente
▫ Diferente tamaño de paso para cada coeficiente
Basado en la sensibilidad del sistema visual humano
• Ordena los coeficientes en zig-zag
• La entropia codifica los valores cuantizados
39. Ariel Roel – arielroel@gmail.com
Motion PEG
• El sistema JPEG para la compresión de imágenes estáticas
podría ser aplicado a una secuencia de imágenes,
comprimiendo cada uno individualmente. A esto se llama
motion JPEG
• Motion JPEG no toma ventaja de cualquier correlación entre
imágenes sucesivas
• En una escena típica habrá una gran similitud entre
las imágenes cercanas de la misma secuencia.
40. Ariel Roel – arielroel@gmail.com
En un video generalmente hay una gran similitud entre
un cuadro y otro.
41. Ariel Roel – arielroel@gmail.com
Motion Compensation
Idea básica de la Motion Compensation:
▫ Muchos imágenes “en movimiento” o secuencias de imágenes
consisten en un fondo estático con uno o más objetos de primer plano
en movimiento. Podemos obtener una ventaja en esto.
▫ Codificamos el primer cuadro como línea de base JPEG y utilizamos
este marco como imagen de referencia.
▫ Tratar la segunda imagen bloque por bloque y comparar cada bloque
con el mismo bloque en la imagen de referencia.
▫ Para los bloques que son idénticos a la imagen de referencia, sólo se
envía un código especial en lugar del código en su totalidad.
▫ Para otros bloques, sólo los codificará como de costumbre.
42. Ariel Roel – arielroel@gmail.com
Motion Compensation
Motion Vectors
▫ Un fondo estatico es un caso muy especial, debemos tener en cuenta el
desplazamiento del bloque.
▫ El Vector de Movimiento se utiliza para informar al decodificador
exactamente de donde obtener los datos en la imagen anterior
▫ El Vector de Movimiento sería cero para un fondo estático.
43. Ariel Roel – arielroel@gmail.com
Motion Compensation
¿Cómo encontrar el bloque que coincide?
▫ Criterio
En la práctica no podemos esperar encontrar el bloque exacto
correspondiente, en cambio, buscamos el mas cercano.
La mayoria de los esquemas de estimacion buscan el minimo error
cuadratico medio entre bloques.
▫ Tamaño de bloque:
Cuanto mas grande sea el bloque mas se afectara la eficiencia de
codificación
Se utilizan bloques de: 16×16
N
n
nn yxIyxI
N
MSE
1
2'
)),(),((
1
44. Ariel Roel – arielroel@gmail.com
Motion Compensation
Rango de búsqueda:
▫ Es razonable pensar en un desplazamiento de 360 pixles/s o
60pixels/imagen en SD-TV (standard-definition television).
▫ En escenas del mundo real el movimiento es generalmente mas rápido
horizontalmente que verticalmente, generalmente el ancho del area de
búsqueda debe ser el doble que el alto.
▫ Se sugiere un rango de búsqueda de: ±60 pixles × 30 pixles
45. Ariel Roel – arielroel@gmail.com
Conceptos básicos de MPEG
• Secuencia de imágenes 2D
• Correlación temporal y espacial
• TV
▫ Cuadros
▫ Campos
46. Ariel Roel – arielroel@gmail.com
MPEG
• Moving Picture Experts Group
• Standard de compresión de video
• Similar a JPEG
47. Ariel Roel – arielroel@gmail.com
MPEG
• El diseño es un compromiso entre
▫ Bit rate
▫ Complejidad del Codificador / Decodificador
▫ Posibilidad de acceso aleatorio
49. Ariel Roel – arielroel@gmail.com
Motion Compensation
Residuos
▫ Las diferencias entre el bloque que se está codificadndo y su mejor
match es lo que se conoce como residuos.
▫ Los residuos pueden ser codificados y transmitidos junto con el vector
de movimiento, por lo que el decodificador será capaz de reconstruir el
bloque.
▫ Debemos comparar los bits de transmisión del vector de movimiento,
mas los residuos con los bits de transmisión del propio bloque y
utilizar el mecanismo más eficiente.
50. Ariel Roel – arielroel@gmail.com
Jerarquía MPEG
Las seis capas de un stream de video MPEG son
• Sequence Layer: video clip, o programa completo.
• Group of Pictures Layer(GOP): incluye tres tipos de
coficación diferentes
• Frame Layer
• Slice Layer: en caso de que los datos se pierdan o se
corrompan
• Macroblock Layer: bloque de luminancia de 16×16
• Block Layer(DCT unit)
51. Ariel Roel – arielroel@gmail.com
Tipos de cuadros MPEG
• Intra frames (I-frames)
▫ Un I-frame es codificado usando únicamente la
información dentro del mismo cuadro (intra coded) – no
se realiza compresión temporal(inter coded).
• Non-intra frames (P-frames y B-frames)
▫ Información “motion compensated” es usada para
codificar.
▫ P frame (predicted frame) usa el cuadro anterior como
imagen de referencia
▫ B frame (bidirectional frame) usa ambos cuadros, el
predecesor y el siguiente como imágenes de referencia
52. Ariel Roel – arielroel@gmail.com
Estimación de movimiento
X Z
Y
Disponible desde un
cuadro anterior (X)
Disponible de un cuadro posterior(Z)
53. Ariel Roel – arielroel@gmail.com
I B B B P B B B P B B B P
• Una sequencia de un cuadro I seguido por cuadros P
y B se conoce como GOP
▫ Group of Pictures
▫ Por ejemplo: IBBPBBPBBPBBP
54. Ariel Roel – arielroel@gmail.com
H.264
• Ultimo estandar de video desarrollado
• Mejora la eficiencia de codificacion con respecto a
los estandares existentes
• Considera cuatro perfiles
▫ Baseline
▫ Main
▫ Extended
▫ High
55. Ariel Roel – arielroel@gmail.com
Puntos sobresalientes del H.264
• Bloque de compensación de movimiento con
tamaños de bloque variables
• Mayor precisión de muestra de compensación de
movimiento
• Bloques de tamaño pequeño