Fundamentos de Compresión de Video TDT
Fundamentos de Compresión de Video TDT
Compresión de Video
David Gómez Barquero
Grupo de Comunicaciones Móviles
Instituto de Telecomunicaciones y Aplicaciones Multimedia - iTEAM
Universidad Politécnica de Valencia
Seminarios Teóricos
iTEAM © 2014 2
EJERCICIO
iTEAM © 2014 3
Contenidos – Compresión de Video
iTEAM © 2014 6
Formatos de Imagen Digital
iTEAM © 2014 7
¿Por qué comprimir el vídeo?
• Servicio TV digital calidad estándar (SDTV) ITU-R BT.601 4:2:2
– La frecuencia de muestreo de la crominancia 6.75 MHz es la mitad que
la luminancia 13.5 MHz, tanto en horizontal como en vertical
• Teorema de Nyquist: filtros paso bajo @5.75 MHz y @2.75 MHz (menor que la
mitad de la frecuencias de muestreo)
• Cuantificación de 8 bits
• 10 bits: 270 Mbps
Escaneado
entrelazado
Escaneado
progresivo
iTEAM © 2014 11
Fundamentos de Compresión de Video (II)
• Redundancia Psíquico-Visual
– Este tipo de redundancia resulta en la manera en la que el ojo y el cerebro funcionan
(e.g. el oido humano tiene una respuesta en frecuencia limitada)
– En video hay que tener presente dos limites:
• El limite de la resolución espacial que puede distinguir el ojo
• El límite de la resolución temporal del ojo para seguir imágenes en movimiento
• Redundancia Espacial y Temporal
– Los pixeles que forman una imagen no toman valores independientes sino que hay una
gran correlación con los pixeles vecinos
– Esto también aplica a fotogramas consecutivos
– El valor de los pixeles se puede predecir
• Entropía
– Algunos valores ocurren más frecuentemente que otros. Esta propiedad se puede
explotar utilizando técnicas de codificación de longitud variable, en la que se asignan
códigos más cortos a los valores más probables
– VLC (Variable Lenght Coding) o código de Huffman
– Código Morse: letras “E” y “T” se representan como “.” “-” letras “X”, “Y” y “Z” se
iTEAM © 2014 12
representan con cuatro digitos
El Sistema de Visión Humano
• Características:
– La resolución temporal del ojo es limitada
(parpadeo)
– Los límites de resolución del color son
mucho menores que las del brillo (luminancia)
– Los objetos estáticos se reconocen con una precisión mayor que los
objetos en movimiento
– Texturas con frecuencias mayores que el límite del sistema visual
humano no son reconocibles
– Los límites de resolución son mayores para estructuras verticales y
horizontales que para estructuras diagonales
– El ojo humano es especialmente sensible a cambios de contraste en
los bordes
iTEAM © 2014 13
Algunas Características Sistema Visual Humano
iTEAM © 2014 14
Espacios de Colores
• RGB (Red, Green Blue) • Imagen junto con
– Tres colores primarios sus componentes
– El ojo es más sensible al verde Y, U, y V
• YUV
– Señal de luminancia más dos de crominancia
• Plano de color U-V,
valor Y = 0.5
• Y, Cb, Cr
iTEAM © 2014 15
Sub-Muestreo del Color
• Muestreo 4:4:4
– No hay pérdida de información de color (máxima calidad)
• Muestreo 4:2:2
– Se muestrea exactamente la mitad de la información cromática
– Diferencias visuales con respecto al muestreo 4:4:4 prácticamente inexistentes
– El tamaño den las imágenes se reduce aproximadamente en un tercio
• Muestreo 4:1:1
– Cada cuatro muestras de luminancia se obtiene una muestra de crominancia
– Se reduce el ancho de banda de la señal hasta la mitad
• Muestreo 4:2:0
– Misma cantidad de información cromática que en el muestreo 4:1:1 (50% color)
– La diferencia radica en el orden en que se toman las muestras (e.g. dos a dos)
iTEAM © 2014 16
Sub-Muestreo del Color
iTEAM © 2014 17
Sensación de Movimiento
• El ojo humano percibe movimiento continuo ante una sucesión
rápida de imágenes
– Una cámara de cine no es más que una cámara de fotos que “echa fotos muy
rápido”
• Por tanto hay una gran correlación entre fotogramas sucesivos y que
se©puede
iTEAM 2014 explotar con técnicas de compresión 18
Estimación de Movimiento
• No es necesario transmitir todos los fotogramas completos
• Con un mecanismo de estimación de movimiento sólo es necesario
transmitir la diferencia con respecto al fotograma anterior
• Algunos fotogramas tienen que ser codificados sin otra información para
poder empezar a reproducir el video
iTEAM © 2014 19
Differential Pulse Code Modulation
iTEAM © 2014 20
Métricas de Calidad de Video
• Pérdidas de Codificación en Compresión
Secuencia
Original
ENCODER
T Q VLC
Bitstream
DECODER
Secuencia
Decodificada
– Vpeak máximo valor del pixel: 255 para 8 bits y 1023 para 10 bits de precisión
– Ncol y Nlin numero de columnas y de filas del formato de la secuencia
– ori y cod imagen original y decodificada, respectivamente
iTEAM © 2014 22
Métricas de Calidad Objetiva: PSNR (I)
Secuencia Secuencia
Original Decodificada
PSNR (dB)
iTEAM © 2014 23
Métricas de Calidad Objetiva: PSNR (II)
iTEAM © 2014 24
Métricas de Calidad Objetiva: PSNR (III)
iTEAM © 2014 25
Métricas de Calidad Subjetiva de Vídeo
• Las métricas de calidad subjetiva, persiguen conocer la valoración del
usuario sobre la calidad de una imagen
• Para imágenes 2D se emplea la definida en la ITU-R BT.500, donde la
valoración se da en MOS (Mean Opinion Square) con valores entre 1 y 5
• Para ello se preparan sesiones de visualización donde el usuario
compara la misma secuencia codificada con distintas calidades, incluida
sin compresión
• Pero exigen de un gran esfuerzo en tiempo, costes y logística (espacio y
número de observadores a utilizar)
iTEAM © 2014 26
Contenidos – Compresión de Video
iTEAM © 2014 28
Estandarización de Codificación de Imágenes y Video
• Se estandariza el decodificador
– Restricciones en el flujo de bits (bitstream)
– Sintáxis (señalización)
• Permite competencia en los algoritmos de compresión
• Permite un compromiso entre complejidad y prestaciones
• No proporciona una garantía sobre la calidad, sólo
interoperabilidad
iTEAM © 2014 29
Evolución Histórica de los Estándares de
Codificación de Vídeo
ISO
MPEG-1 MPEG-4
1988 1992 1996 2000
iTEAM © 2014 32
MPEG-2
• En el año 1990, MPEG empezó a trabajar en un segundo estándar
que fuera capaz de codificar directamente imágenes entrelazadas
para aplicaciones de alta calidad (TV digital)
– SDTV ~4 Mpbs, HDTV ~18-20 Mbps
• Predicción de movimiento
– Elimina la redundancia temporal de la secuencia de imágenes
– Basado en técnicas similares a DPCM (Differential Pulse-Code
Modulation)
iTEAM © 2014 34
MPEG-2 Bloques y Macro-bloques
• En MPEG, la redundancia espacial es eliminada procesando las
imágenes en bloques de 8x8 pixels
– “Macro-bloque” corresponde a cuatro bloques 8x8 de luminancia
• Es la unidad básica dentro de la imagen
iTEAM © 2014 35
Influencia del Tamaño del Bloque
iTEAM © 2014 36
Reducción de la Resolución del Color
• El número de bloques de croma 8x8 depende del formato de color
de la fuente
– Ejemplo formato común 4:2:0 hay un bloque de croma por macro-
bloque por cada canal haciendo un total de seis bloques por macro-
bloque
4:2:0
iTEAM © 2014 37
Codificación Transformada de Imágenes,
Cuantificación, y Codificación de Entropía
iTEAM © 2014 38
Codificación Transformada de Imágenes
• A cada bloque 8x8 se le realiza una transformada discreta del coseno
(DCT, Discrete Cosene Function) y se obtiene la información en el
dominio de la frecuencia
Proceso
reversible
iTEAM © 2014 40
Definición 2D DCT
• Definición 2D DCT
iTEAM © 2014 41
Implementación 2D DCT
iTEAM © 2014 42
Cuantificación de Coeficientes DCT
iTEAM © 2014 43
Cuantificación de Coeficientes DCT (I)
DCT 2D
Resta 128
iTEAM © 2014 46
Ejemplo Cuantificación 2D
• Los valores transformados se dividen por el factor de cuantificación
• MPEG-2 define tablas de cuantificación
– A las tablas se le puede aplicar un factor de cuantificación específico para
cada macro-bloque
– Un codificador puede operar con sus tablas específicas
• Tienen que ser transmitidas al receptor
iTEAM © 2014 48
Codificación de Ráfagas RLC y
Codificación de Longitud Variable VLC
• Los coeficientes se codifican contando el número de coeficientes a cero que
preceden a un coeficiente no cero (Run-Length Coding, RLC)
• La secuencia de ceros y el valor del coeficiente distinto de cero se combinan
y se codifican utilizando un código de longitud variable (Variable-Lenght
Coding, VLC)
• El VLC explota el hecho de que son más probables secuencias cortas de
ceros y coeficientes pequeños
• Codificación de longitud adaptativa (tipo Hoffman) según la frecuencia de
ocurrencia esperada
– Combinaciones comunes utilizan códigos pequeños
– Combinaciones no frecuentes utilizan códigos grandes
– Código de escape para codificar directamente:
secuencia codificada con 6 bits, coeficiente con 12 bits
– Se utilizan normalmente tablas
– El coeficiente DC se trata de manera específica en algunos casos
iTEAM © 2014 49
Ejemplo Codificación RLC & VLC
• Bloque cuantificado • Bloque tras la lectura en zig-zag
iTEAM © 2014 52
Reducción de la Redundancia Temporal (II)
iTEAM © 2014 53
Motion-Compensated Inter-frame Prediction
• Se transmite el vector de
movimiento y la diferencia
entre bloques
• Resolución de un pixel
iTEAM © 2014 54
Motion-Compensated Inter-frame Prediction (II)
• La predicción bidireccional se
• Opcional
obtiene a partir de un
fotograma anterior y otro • MPEG define un
posterior perfil sin predicción
bidireccional
– Combinación lineal
• Particularmente útil cuando el
movimiento revela áreas con
detalles
• Para poder reproducir la
secuencia de imágenes es
necesario cambiar el orden de
las mismas
– Introduce latencia en el
sistema
iTEAM © 2014 56
Codificación Vectores de Movimiento
iTEAM © 2014 58
Tipos de Imágenes MPEG-2
• Intra pictures (I pictures)
– Se codifican sin ninguna referencia a otras imágenes
– Compresión por reducción de la redundancia espacial pero no temporal
– Son imágenes importantes ya que se usan como referencia por otras imágenes
y permiten empezar a reproducir el video
• Predictive pictures (P pictures)
– Codificadas con predicción de movimiento de imágenes I o P pasadas
– Pueden ser utilizadas para futuras predicciones
– Imágenes tipo I requieren aproximadamente el triple de bits que las tipo P
• Bi-directionally-predictive pictures (B-pictures)
– Utilizan imágenes pasadas y futuras (I o P) para compensación de movimiento
– Ofrecen el mayor grado de compresión. Las imágenes tipo P requieren
aproximadamente un 50% más de bits que una imagen tipo B
– El codificador re-ordena las imágenes de tal manera que las imágenes B se
transmiten después de las imágenes futuras que referencia, introduciendo un
retraso que depende del número de imágenes B consecutivas
iTEAM © 2014 59
Reordenamiento de Imágenes B
• Decodificación de un macrobloque B
iTEAM © 2014 60
Decodificación de una Imagen Tipo B
iTEAM © 2014 61
Group of Pictures (GOP)
iTEAM © 2014 62
Perfiles y Niveles MPEG-2
iTEAM © 2014 65
Contenidos – Compresión de Video
VLC
Macrobloques
Video Coding Layer
NAL
Slices
Network Abstraction Layer (Particiones)
iTEAM © 2014 70
Novedades Arquitecturales H.264/AVC
Incluye
escalado.
T de enteros Incrementos CAVLC,
4x4, 8x8 y 2x2 del 12.5% CABAC
X Y Z Codificador
Transformación Cuantificador
Estadístico
Q-1
Partición 16x16, 8x8 y 4x4,
4 ó 9 predictores direccionales T-1 Sin perdidas
MACROBLOQUE de precisión
de 16 x 16 I Predicción
P, B
(16 bloques de 4x4) Intraframe
Filtro
Compensación Loop deblocking
Memoria
de movimiento Filter
Frame
iTEAM © 2014 71
H.264/AVC – Slices & Macro-blocks
• Slices:
– Las imágenes se dividen en uno o varios
slices
• Secuencia de macro-bloques
– Son autocontenidos y se pueden codificar
independientemente
• Macrobloques:
– Unidad básica de codificación y sintáxis
– Contiene (16x16) muestras de luminancia y
2 x (8x8) muestras de crominancia
– Los macrobloques dentro de un slice
dependen unos de otros
– Los macrobloques se pueden particionar
iTEAM © 2014 72
H.264/AVC – Tipos de Slices
iTEAM © 2014 73
H.264/AVC – Slices SI & SP (I)
iTEAM © 2014 74
H.264/AVC – Slices SI & SP (II)
iTEAM © 2014 75
Señales de Video de Entrada
• Fotogramas en formato progresivo o
entrelazado
– Formato entrelazado: campo superior
y campo inferior
– Se pueden utilizar los dos formatos en
una secuencia de video
• Los dos campos de una imagen
entrelazada se pueden codificar
conjuntamente como un único
fotograma o separadamente
– Primer campo tipo I, segundo campo tipo
P con compensación de movimiento
– Escenas con movimiento horizontal
• Una imagen progresiva se codifica
como un único fotograma, aunque se
considera que tiene dos campos en el
mismo
iTEAM © 2014 instante de tiempo 76
H.264/AVC – Protección Frente a Errores
• En H.264 los datos se pueden particionar dependiendo
de su importancia
– Ordenación de macrobloques flexible: en primer lugar se
transmiten los datos con mayor prioridad y seguidamente
se transmiten los datos menos significativos
• La codificación en capas minimiza el efecto de los
errores ya que durante la codificación temporal o
espacial es posible recuperar datos perdidos en otras
capas
• Slice Group:
– Conjunto de macrobloques que forman un slice
– Un grupo puede contener uno o varios slices
– Cada grupo se transmite separadamente
• Macroblock allocation map:
– Define el orden de transmisión de los macrobloques
5 patrones (regulares e irregulares)
iTEAM–© 2014 77
H.264/AVC – Tranformada Entera
• Transformada entera o de Hadamard
• La transformada se implementa sólo con sumas, restas y
desplazamientos sin pérdida de resolución
– Aritmética entera de 16 bits con una única multiplicación de enteros por
coeficiente
iTEAM © 2014 78
Transformada de Macrobloques de Luminancia
iTEAM © 2014 80
H.264/AVC – Buffer Multi-Frame
• Permite una predicción a largo plazo que aumenta significativamente
la eficiencia del predictor temporal
• El máximo valor es de 15 frames
– MPEG-2 sólo 1 frame antes y después
– Aumenta el tamaño del buffer en transmisión y recepción
iTEAM © 2014 81
H.264/AVC – Nuevas Referencias Temporales
• MPEG-2
• MPEG-4
– Referencing order and display order are decoupled
– Referencing ability and picture type are decoupled
iTEAM © 2014 82
H.264/AVC – Particionado de la Imagen
• Particionado de macro-bloques adaptado a la complejidad de la
imagen, aumentando considerablemente su eficiencia de compresión
con respecto a MPEG-2 (bloques fijos 8x8)
– Zonas con poco movimiento bloques 16x16
– Zonas con mucho movimiento bloques hasta 4x4
iTEAM © 2014 83
H.264/AVC – Particionado de Macrobloques
iTEAM © 2014 84
Resolución Estimación Movimiento
iTEAM © 2014 85
H.264/AVC – Debloking Filter (I)
• Los codecs de video trabajan con bloques de pixeles
– Los bordes de los bloques se reconstruyen típicamente con una resolución
menor que los pixeles del interior
– El efecto de “blocking” es uno de los principales artefactos visuales
• H.264 incorpora un filtro adaptativo para solucionar el problema,
aumentando la calidad subjetiva
– Reduce la tasa binaria en un 5-10% para una misma calidad subjetiva
• Se filtran
los valores
de p0 y
q0, y
ocasional
mente p1
y q1
iTEAM © 2014 86
H.264/AVC – Debloking Filter (II)
• Orden de filtrado
– El filtrado se aplica macrobloque a macrobloque
– Primero se filtran los bordes verticales y después los horizontales
– El borde inferior y el derecho se filtran una vez decodificado el macrobloque
adyacente
iTEAM © 2014 87
H.264/AVC – Codificación de Entropía (I)
• Context-Adaptive Variable Lenth Coding (CAVLC)
– Después de la transformación y la cuantificación, la probabilidad de que el valor
de un coeficiente sea cero o +/- 1 es muy alta. Por lo tanto, se codifica el
número total de ceros y +/-1 que ocurren. Para los demás coeficientes sólo se
codifica su nivel. Las reglas son:
• Se utiliza una palabra para expresar el número de coeficientes diferentes de cero
• Se forma una palabra para indicar los signos de los unos en orden inverso
• Se utiliza una palabra para cada nivel de los coeficientes restantes en orden inverso
• Se utiliza una palabra para indicar en número de ceros. Las palabras resultantes se
codifican utilizando runlength en orden inverso
iTEAM © 2014 88
H.264/AVC – Codificación de Entropía (II)
• Context-Adaptive Binary Arithmetic Coding (CABAC)
– 15% eficiencia más que CAVLC pero mucho más complejo
– 3 fases
iTEAM © 2014 89
H.264/AVC – Profiles
• H.264/AVC define tres perfiles principales:
– Baseline: todas las herramientas excepto modo entrelazado, slices B,
predicción ponderada, CABAC, partición de datos, slices SI y SP
• Aplicaciones video en tiempo real
– Main: añade al baseline modo entrelazado, slices B, predicción
ponderada y CABAC
• Aplicaciones de almacenamiento y transmisión de TV
– Extended: todas las herramientas excepto CABAC
• Aplicaciones de streaming en Internet
– Con posterioridad se aprobó un perfil alto
• Distribución de video y post-producción
• Los perfiles definen el conjunto de técnicas o algoritmos que se
pueden utilizar para comprimir el video
– Los decodificadores deben de soportar todas las características de un
determinado perfil. Los codificadores no.
iTEAM © 2014 90
H.263/AVC – High Profile
iTEAM © 2014 91
H.263/AVC – Niveles
iTEAM © 2014 93
H.264/AVC – Niveles
iTEAM © 2014 94
iTEAM © 2014 95
H.264/AVC – Ganancia Compresión
iTEAM © 2014 96
Eficiencia H.264/AVC
-37% -34%
-68%
iTEAM © 2014 97
Eficiencia H.264/AVC (% bit rate)
• Streaming
• Real-time
conversation
• Entertainment-
quality applications
iTEAM © 2014 98
H.264/AVC Complejidad vs. Eficiencia
Complejidad Eficiencia
• Escalabilidad Calidad:
– La capa de mejora aumenta la calidad de la capa
base
• Escalabilidad Espacial:
– La capa de mejora aumenta la resolución espacial
de la capa base
• Escalabilidad Temporal:
– Las dos capas tienen la misma resolución espacial
– La capa de mejora permite aumentar el número
de fotogramas por segundo (frame rate)
50%
SVC Video Coding Gain (%)
40%
Código escalable ideal
30%
20%
0%
-10%
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
• Resultados
– Resultados prometedores especialmente para resoluciones 1080p y
superiores
– Mejores resultados para una misma calidad subjetiva (50%) que para
una misma calidad objetiva (35%)
iTEAM © 2014 114
Diagrama Bloques Decodificador HEVC
• En gris las principales novedades
• Nuevas funcionalidades
– Particionado de bloque variable usando “quadtrees”
– Posibilidad de que bloques vecinos compartan la misma información
de movimiento
– Nuevo filtro antiblocking denominado “sample adaptive offset”
• Filtrado de todos los bordes verticales de la imagen en vez de bloque a bloque
• Después del filtrado se añaden offsets adaptativos a las muestras
• 35 modos
40.00
PSNR
1400000
VBR@QP33
35.00 CBR@480kbps
1200000
30.00
1000000
25.00 bps
800000
20.00 VBR@QP33
CBR@480kbps
600000
15.00
400000
10.00
5.00 200000
• La multiplexación
estadísitica con
codificación VBR permite
reducir el ancho de banda
con respecto a una
codificación CBR
iTEAM © 2014 129
Estrategias Multiplexación Estadística
• Codificación de tasa
constante CBR
• Codificación de tasa
variable VBR
•
•
•
•
•
•
•
•
•