Articulo de referencia

Pedido flexible de macrobloques

El ordenamiento flexible de macrobloques (FMO, por sus siglas en inglés) es una de las diversas herramientas de tolerancia a errores definidas en el perfil Baseline del estándar...

El ordenamiento flexible de macrobloques (FMO, por sus siglas en inglés) es una de las diversas herramientas de tolerancia a errores definidas en el perfil Baseline del estándar de compresión de vídeo H.264/MPEG-4 AVC .

Descripción

Una de las características del estándar H.264/AVC es la posibilidad de dividir una imagen en regiones llamadas cortes, cada una de las cuales contiene una secuencia de macrobloques y puede decodificarse independientemente de los demás cortes. Estos macrobloques se procesan en orden de escaneo, normalmente de izquierda a derecha, comenzando por la parte superior. Un fotograma puede estar compuesto por un solo corte o por varios cortes para el procesamiento paralelo y la tolerancia a errores, ya que los errores en un corte solo se propagan dentro de ese corte.

El ordenamiento flexible de macrobloques mejora esto al permitir que los macrobloques se agrupen y se envíen en cualquier dirección y orden, y se puede usar para crear grupos de segmentos con forma y no contiguos. [ 1 ] De esta manera, FMO permite decidir de forma más flexible a qué segmento pertenecen los macrobloques, para distribuir los errores [ 2 ] y evitar que los errores en una parte del fotograma comprometan otra parte del fotograma. FMO se basa en otra herramienta de tolerancia a errores, el ordenamiento arbitrario de segmentos , porque cada grupo de segmentos se puede enviar en cualquier orden y se puede decodificar opcionalmente en orden de recepción, en lugar del orden de escaneo habitual.

Las secciones individuales aún deben ser regiones horizontales continuas de macrobloques, pero con los grupos de secciones de FMO, la compensación de movimiento puede tener lugar dentro de cualquier macrobloque contiguo a través de todo el grupo; efectivamente, cada grupo de secciones se trata como una o más secciones contiguas con forma definida a efectos de la compensación de movimiento.

Casi todos los códecs de vídeo permiten la codificación de región de interés (ROI) , en la que se seleccionan macrobloques específicos para que reciban mayor o menor calidad. El ejemplo clásico es la cabeza del presentador de noticias, a la que se le asigna una mayor proporción de bits que al fondo. La principal ventaja de FMO, al combinarse con la codificación ROI, es la capacidad de evitar que los errores en una región se propaguen a otra. Por ejemplo, si se pierde una porción del fondo, este puede estar dañado durante un tiempo, pero el rostro del presentador no se verá afectado, y resulta más sencillo enviar actualizaciones periódicas de la porción más importante para compensar cualquier error.

Las secciones utilizadas con FMO no son estáticas y pueden cambiar según las circunstancias, como al rastrear un objeto en movimiento. Una estructura llamada MBAmap asigna cada macrobloque a un grupo de secciones y puede actualizarse en cualquier momento, con algunos patrones predeterminados definidos, como Intercalado de secciones (los grupos se alternan en cada línea de exploración) o Secciones dispersas (los grupos se alternan en cada bloque). [ 3 ] Con estos patrones, FMO permite mantener un contexto visual mejor localizado para que los algoritmos de ocultación de errores puedan reconstruir el contenido faltante. [ 3 ]

Ciertas técnicas de codificación avanzadas pueden simular algunas de las ventajas de FMO. En H.264/AVC, los fotogramas P (predichos) y B (bipredichos) pueden contener bloques I (intra), que almacenan imágenes independientes. En lugar de crear una porción para actualizarla periódicamente con fotogramas I o IDR, los bloques I se pueden enviar siguiendo cualquier patrón deseado, mientras que los bloques predichos conforman el resto de la imagen. Si bien los errores seguirán propagándose horizontalmente, los bloques I se pueden enviar siguiendo patrones, como favorecer una región de interés o un patrón de tablero de ajedrez disperso, para simular actualizaciones de porciones con forma. Con comunicación bidireccional al cliente, las porciones perdidas se pueden actualizar tan pronto como se detectan, pero esto no es factible para transmisiones más amplias.

Compensaciones

FMO solo está permitido en los perfiles Baseline y Extended. Los perfiles Constrained Baseline, Main y todos los perfiles High, mucho más comunes, no lo admiten, y el software que puede crearlo o decodificarlo es escaso. Algunas unidades de videoconferencia lo utilizan; de lo contrario, el software de referencia JM es el principal soporte. [ 4 ]

El uso de múltiples segmentos por imagen siempre reduce la eficiencia de codificación, y FMO puede afectarla aún más. Cuanto más dispersos estén los segmentos, peor será el resultado, siendo los patrones de tablero de ajedrez (véase Segmentos Dispersos más abajo) los peores. Los objetivos de distribuir los errores y la eficiencia de codificación son directamente contradictorios. FMO permite la predicción entre segmentos vecinos inmediatos en el mismo grupo, lo que hace que una región contigua se comporte casi como un solo segmento; en algunas situaciones, cuando los grupos de segmentos se configuran en una Región de Interés, puede mejorar ligeramente la eficiencia con respecto a los segmentos estándar simples, pero el beneficio es poco frecuente y pequeño. Por ello, FMO solo debe utilizarse cuando las pérdidas de paquetes son comunes y esperadas.

Además de la mayor complejidad en la codificación y decodificación, y la menor eficiencia, el desbloqueo en bucle también crea un problema: las secciones se pueden enviar en cualquier orden, pero el desbloqueador requiere todas. O bien el desbloqueador tiene que ejecutarse en múltiples pasadas cada vez que se recibe otra sección, o bien se debe almacenar en búfer una imagen completa antes de comenzar el desbloqueo, lo que podría crear latencia adicional si las secciones se retrasan lo suficiente como para que las secciones de la siguiente imagen comiencen a llegar primero. [ 3 ]

Detalles de implementación

Al usar FMO, la imagen se puede dividir en diferentes patrones de escaneo de los macrobloques, con varios patrones integrados definidos en la especificación, señalados como 0–5 en la unidad slice_group_map_type , y una opción para incluir un MBAmap completo asignado explícitamente, señalado como 6. El tipo de mapa y un nuevo MBAmap se pueden enviar en cualquier momento. [ 5 ]

  • Grupos de segmentos intercalados, tipo 0: Cada fila es un segmento diferente, que se alterna tantas veces como grupos de segmentos. Solo se permiten vectores de predicción horizontales.
  • Grupos de cortes dispersos o espaciados, tipo 1: Cada macrobloque es un corte diferente. Con dos grupos de cortes, se crea un patrón de tablero de ajedrez; con cuatro o más grupos, las filas se intercalan, y con seis grupos de cortes, ningún macrobloque tocará jamás a otro del mismo grupo en ninguna dirección, lo que maximiza las oportunidades de ocultar errores . No es posible la predicción de vectores.
  • Grupos de primer plano, tipo 2: Especifican únicamente la esquina superior izquierda y la inferior derecha de rectángulos estáticos para crear regiones de interés . Todas las áreas no cubiertas se asignan a un grupo final. Es posible realizar predicciones vectoriales dentro de cada rectángulo y en el fondo. El comportamiento de los rectángulos superpuestos no está definido, pero en el software de referencia se utiliza el último grupo de corte para definirlo.
  • Grupos cambiantes, tipos 3-5: Similares al tipo 2, pero son tipos dinámicos que crecen y se reducen cíclicamente. Solo es necesario conocer la tasa de crecimiento, la dirección y la posición en el ciclo.
  • Grupos explícitos, tipo 6: Se transmite un MBAmap completo con grupos organizados según lo desee el codificador. Es posible la predicción vectorial dentro de cualquier región contigua del mismo grupo.

(En la imagen anterior, "Tipo 0" muestra cortes H.264 estándar, no grupos de cortes intercalados).

Referencias

  1. Wenger, Stephan; Horowitz, Michael. "FMO: Ordenación flexible de macrobloques" .
  2. "Resistencia y ocultación de errores en H.264 MPEG-4 Parte 10" .
  3. 1 2 3 Wenger, Stephan; Horowitz, Michael. "FMO 101" .
  4. "Software de referencia H.264" .
  5. Wiegand, Thomas; Sullivan, Gary. "Proyecto de Recomendación de la UIT-T y Proyecto Final de Norma Internacional de Especificación Conjunta de Vídeo (Recomendación H.264 de la UIT-T / ISO/IEC 14496-10 AVC)" (PDF) .