El uso inicial del MPEG-4 AVC estuvo enfocado hacia el vídeo de baja calidad para videoconferencia y aplicaciones por Internet, basado en 8 bits/muestra y con un muestreo ortogonal de 4:2:0. Esto no daba salida al uso de este códec en ambientes profesionales que exigen resoluciones más elevadas, necesitan más de 8 bits/muestra y un muestreo de 4:4:4 o 4:2:2, funciones para la mezcla de escenas, tasas binarias más elevadas, poder representar algunas partes de video sin perdidas y utilizar el sistema de color por componentes RGB. Por este motivo surgió la necesidad de programar unas extensiones que soportasen esta demanda. Tras un año de trabajo intenso surgieron las “extensiones de gama de fidelidad”(FRExt) que incluían:
Este conjunto de extensiones denominadas de "perfil alto" son:
Compensación de movimiento:
El proceso de compensación de movimiento es diferente de las normas precedentes puesto que propone una gran variedad de formas y de particiones de bloques. De cara a la compensación de movimiento, cada macrobloque, aparte del tamaño original (16x16 píxeles), puede ser descompuesto en sub-bloques de 16x8, 8x16 o 8x8 píxeles. En este último caso, es posible descomponer a su vez cada sub-bloque de 8x8 píxeles en particiones de 8x4, 4x8 o 4x4 píxeles. Antes, el estándar más novedoso introducía particiones de 8x8. Esta variedad de particiones proporciona una mayor exactitud en la estimación, a lo que se suma una precisión que puede llegar hasta un cuarto de píxel.
Transformada:
Es una aproximación a la DCT que viene utilizándose en vídeo pero con las siguientes particularidades:
Cada paso del parámetro de cuantificación (QP) incrementa un 12,5% el intervalo de cuantificación, lo que equivale a duplicarlo por cada 6 pasos. El rango dinámico del QP ha aumentado respecto a normas precedentes, puesto que los valores van de 0 a 51. Los macrobloques se cuantifican utilizando un parámetro de control que puede cambiar adaptándose al bloque en cuestión. Si utilizamos FRExt tendremos un rango dinámico que se multiplicará por 6 por cada bit adicional(partiendo de 8 bits, 52 pasos). Además, para poder conseguir los mejores resultados visuales la cuantificación de la crominancia es más esmerada que la de luminancia.
Filtro de "deblocking":
H.264 también integra un filtro antibloques que mejora la eficacia de compresión y la calidad visual de las secuencias de vídeo eliminando efectos indeseables de la codificación como por ejemplo el efecto de bloques.
Exploración de los coeficientes:
Existen dos modos de exploración de los coeficientes transformados: "zig-zag" y "zig-zag inverso". El segundo modo de exploración permite en particular la lectura del macrobloque en sentido contrario para poder funcionar con la codificación entrópica adaptativa.
Codificación entrópica:
La codificación entrópica se puede realizar de tres formas diferentes. Un primer método utilizado es el conocido UVLC (Universal Variable Length Coding). Este tipo de codificación es utilizado para codificar la gran mayoría de los elementos de sincronización y cabeceras. Los otros dos métodos son utilizados para codificar buena parte del resto de elementos sintácticos (coeficientes, vectores de movimiento). Las codificaciones utilizadas para esta tarea están basadas en VLC (Variable Length Coding) de forma adaptativa, de este concepto nace el CAVLC (Context Adaptative Variable Length Coding) y el CABAC (Context Adaptative Binary Arithmetic Coding).
Adaptación a la red:
Conceptualmente los algoritmos están divididos en dos capas: una primera capa de codificación de vídeo VCL (Video Coding Layer) que se ocupa de representar eficazmente el contenido de vídeo y una capa de adaptación a la red NAL (Network Adaptación Layer) que está dirigida más particularmente a adaptar el formato de datos de vídeo al soporte de transmisión.
Algoritmos para la prevención de pérdidas:
La ordenación flexible de macrobloques (FMO) y la ordenación arbitraria de slices (ASO) son técnicas para reestructurar la representación de las regiones fundamentales (macrobloques) aunque también pueden ser utilizados para otros objetivos.
La partición de datos proporciona la capacidad de separar los elementos de sintaxis más importantes de los menos importantes en paquetes de datos diferentes, permitiendo el uso de protección de error desigual (UEP).
El algoritmo de slices redundantes permite a un codificador enviar una representación suplementaria de una región de imagen que puede ser usado si la representación primaria es corrompida o perdida.
Últimos Comentarios