Articulo de referencia

Capa de abstracción de red

La capa de abstracción de red (NAL) forma parte de los estándares de codificación de vídeo H.264/AVC y HEVC . Su objetivo principal es proporcionar una representación de vídeo o...

La capa de abstracción de red (NAL) forma parte de los estándares de codificación de vídeo H.264/AVC y HEVC . Su objetivo principal es proporcionar una representación de vídeo optimizada para redes, tanto para aplicaciones conversacionales (videotelefonía) como para aplicaciones no conversacionales (almacenamiento, difusión o streaming). La NAL ha logrado una mejora significativa en la flexibilidad de las aplicaciones en comparación con los estándares de codificación de vídeo anteriores.

Introducción

El creciente número de servicios y la popularidad cada vez mayor de la televisión de alta definición generan una mayor necesidad de una mayor eficiencia de codificación. Además, otros medios de transmisión, como el módem de cable , xDSL o UMTS, ofrecen velocidades de datos mucho menores que los canales de difusión, y una mayor eficiencia de codificación permite la transmisión de más canales de vídeo o representaciones de vídeo de mayor calidad dentro de las capacidades de transmisión digital existentes. La codificación de vídeo para aplicaciones de telecomunicaciones se ha diversificado, pasando de los servicios ISDN y T1 / E1 a abarcar la red telefónica pública conmutada (PSTN) , las redes inalámbricas móviles y la distribución a través de redes LAN /Internet. A lo largo de esta evolución, se han realizado esfuerzos continuos para maximizar la eficiencia de codificación, teniendo en cuenta la diversificación de los tipos de red y sus requisitos característicos de formato y robustez ante pérdidas y errores.

Los estándares H.264/AVC y HEVC están diseñados para soluciones técnicas que incluyen áreas como la radiodifusión (por cable , satélite , módem de cable, DSL , terrestre , etc.), el almacenamiento interactivo o serial en dispositivos ópticos y magnéticos, servicios de conversación, vídeo bajo demanda o transmisión multimedia, servicios de mensajería multimedia, etc. Además, se pueden implementar nuevas aplicaciones en redes existentes y futuras. Esto plantea la cuestión de cómo gestionar esta variedad de aplicaciones y redes. Para abordar esta necesidad de flexibilidad y personalización, el diseño incluye una capa de acceso a red (NAL) que formatea la representación de la capa de codificación de vídeo (VCL) del vídeo y proporciona información de encabezado de forma adecuada para su transmisión a través de diversas capas de transporte o medios de almacenamiento.

El NAL está diseñado para proporcionar "compatibilidad con la red" y permitir una personalización sencilla y eficaz del uso de VCL para una amplia variedad de sistemas. El NAL facilita la capacidad de mapear datos VCL a capas de transporte como: [ 1 ]

La personalización completa del contenido de vídeo para adaptarlo a las necesidades de cada aplicación específica queda fuera del alcance de la estandarización de la codificación de vídeo, pero el diseño de la NAL prevé diversas asignaciones de este tipo. Algunos conceptos clave de la NAL son las unidades NAL, el flujo de bytes, los formatos de paquetes, el uso de las unidades NAL, los conjuntos de parámetros y las unidades de acceso. A continuación se ofrece una breve descripción de estos conceptos.

Unidades NAL

Los datos de vídeo codificados se organizan en unidades NAL, cada una de las cuales es, en efecto, un paquete que contiene un número entero de bytes. El primer byte de cada unidad NAL H.264/AVC es un byte de encabezado que indica el tipo de datos de la unidad. En el caso de HEVC, el encabezado se amplió a dos bytes. Los bytes restantes contienen datos de carga útil del tipo indicado por el encabezado. La definición de la estructura de la unidad NAL especifica un formato genérico para su uso tanto en sistemas de transporte orientados a paquetes como a flujos de bits, y una serie de unidades NAL generadas por un codificador se denomina flujo de unidades NAL.

Uso de unidades NAL en formato de flujo de bytes

Algunos sistemas requieren la entrega de la unidad NAL completa o parcial como una secuencia ordenada de bytes o bits, en la que los límites de la unidad NAL deben poder identificarse a partir de patrones dentro de los datos codificados. Para su uso en dichos sistemas, las especificaciones H.264/AVC y HEVC definen un formato de secuencia de bytes. En este formato, cada unidad NAL está precedida por un patrón específico de tres bytes denominado prefijo de código de inicio. Los límites de la unidad NAL pueden identificarse buscando el patrón único del prefijo de código de inicio en los datos codificados. El uso de bytes de prevención de emulación garantiza que los prefijos de código de inicio sean identificadores únicos del comienzo de una nueva unidad NAL. También se añade una pequeña cantidad de datos adicionales (un byte por imagen de vídeo) para permitir que los decodificadores que operan en sistemas que proporcionan secuencias de bits sin alineación a los límites de bytes recuperen la alineación necesaria a partir de los datos de la secuencia. También se pueden insertar datos adicionales en el formato de flujo de bytes, lo que permite ampliar la cantidad de datos que se envían y puede ayudar a lograr una recuperación de alineación de bytes más rápida, si se desea.

Unidades NAL en el uso del sistema de transporte de paquetes

En otros sistemas (por ejemplo, sistemas IP / RTP ), los datos codificados se transmiten en paquetes enmarcados por el protocolo de transporte del sistema, y ​​la identificación de los límites de las unidades NAL dentro de los paquetes se puede establecer sin utilizar patrones de prefijos de código de inicio. En estos sistemas, la inclusión de prefijos de código de inicio en los datos supondría un desperdicio de capacidad de transmisión de datos, por lo que, en su lugar, las unidades NAL se pueden transmitir en paquetes de datos sin prefijos de código de inicio.

Unidades NAL VCL y no VCL

Las unidades NAL se clasifican en unidades VCL y unidades NAL no VCL.

  • Las unidades VCL NAL contienen los datos que representan los valores de las muestras en las imágenes de vídeo.
  • Las unidades NAL que no son VCL contienen información adicional asociada, como conjuntos de parámetros (datos de encabezado importantes que pueden aplicarse a un gran número de unidades NAL VCL) e información de mejora suplementaria (información de temporización y otros datos suplementarios que pueden mejorar la usabilidad de la señal de vídeo decodificada, pero que no son necesarios para decodificar los valores de las muestras en las imágenes de vídeo).

Conjuntos de parámetros

Un conjunto de parámetros contiene datos de configuración compartidos que se transportan en unidades NAL que no son VCL. Los conjuntos de parámetros se suelen reutilizar al decodificar varias imágenes codificadas dentro de una secuencia de vídeo. Cada unidad NAL VCL hace referencia a un conjunto de parámetros de imagen (PPS), que a su vez hace referencia a un conjunto de parámetros de secuencia (SPS). Existen dos tipos de conjuntos de parámetros:

  • Conjunto de parámetros de secuencia (SPS), que especifica configuraciones mayormente constantes como la resolución, la profundidad de bits o el formato de croma. (Para una implementación concreta, consulte la estructura SPS de FFmpeg ).
  • El conjunto de parámetros de imagen (PPS) se aplica sobre un SPS y especifica configuraciones como los desplazamientos QP. (Para una implementación concreta, consulte la estructura PPS de FFmpeg ).

El mecanismo de conjuntos de parámetros de secuencia e imagen desacopla la transmisión de información que cambia con poca frecuencia de la transmisión de representaciones codificadas de los valores de las muestras en las imágenes de vídeo. Cada unidad VCL NAL contiene un identificador que hace referencia al contenido del conjunto de parámetros de imagen correspondiente, y cada conjunto de parámetros de imagen contiene un identificador que hace referencia al contenido del conjunto de parámetros de secuencia correspondiente. De esta manera, una pequeña cantidad de datos (el identificador) puede utilizarse para referirse a una mayor cantidad de información (el conjunto de parámetros) sin repetir dicha información dentro de cada unidad VCL NAL. Los conjuntos de parámetros de secuencia e imagen pueden enviarse con bastante antelación a las unidades VCL NAL a las que se aplican, y pueden repetirse para proporcionar robustez frente a la pérdida de datos . En algunas aplicaciones, los conjuntos de parámetros pueden enviarse dentro del canal que transporta las unidades VCL NAL (denominado transmisión "en banda"). En otras aplicaciones, puede ser ventajoso transmitir los conjuntos de parámetros "fuera de banda" utilizando un mecanismo de transporte más fiable que el propio canal de vídeo.

Uso del conjunto de parámetros con intercambio fiable de conjuntos de parámetros "fuera de banda".

Unidades de acceso

Un conjunto de unidades NAL en un formato específico se denomina unidad de acceso. La decodificación de cada unidad de acceso produce una imagen decodificada. Cada unidad de acceso contiene un conjunto de unidades VCL NAL que, en conjunto, componen una imagen codificada primaria . También puede ir precedida de un delimitador de unidad de acceso para facilitar la localización de su inicio. Información de mejora suplementaria, como información de temporización de la imagen, puede preceder a la imagen codificada primaria. Esta última consta de un conjunto de unidades VCL NAL que consisten en segmentos o particiones de datos de segmentos que representan las muestras de la imagen de vídeo. Tras la imagen codificada primaria, pueden aparecer unidades VCL NAL adicionales que contienen representaciones redundantes de áreas de la misma imagen de vídeo. Estas se denominan imágenes codificadas redundantes y están disponibles para que un decodificador las utilice en caso de pérdida o corrupción de datos en las imágenes codificadas primarias. Los decodificadores no están obligados a decodificar las imágenes codificadas redundantes si están presentes. Finalmente, si la imagen codificada es la última imagen de una secuencia de vídeo codificada (una secuencia de imágenes que se puede decodificar de forma independiente y utiliza un único conjunto de parámetros de secuencia), puede aparecer una unidad NAL de fin de secuencia para indicar el final de la secuencia; y si la imagen codificada es la última imagen codificada en toda la secuencia de unidades NAL, puede aparecer una unidad NAL de fin de secuencia para indicar que la secuencia está terminando.

Estructura de una unidad de acceso NAL

Secuencias de vídeo codificadas

Una secuencia de vídeo codificada consta de una serie de unidades de acceso que se suceden en el flujo de la unidad NAL y utilizan un único conjunto de parámetros de secuencia. Cada secuencia de vídeo codificada puede decodificarse independientemente de cualquier otra, siempre que se disponga de la información necesaria del conjunto de parámetros, que puede transmitirse "dentro de la banda" o "fuera de banda". Al inicio de una secuencia de vídeo codificada se encuentra una unidad de acceso de actualización de decodificación instantánea (IDR). Una unidad de acceso IDR contiene una imagen intra , que es una imagen codificada que puede decodificarse sin decodificar ninguna imagen anterior en el flujo de la unidad NAL. La presencia de una unidad de acceso IDR indica que ninguna imagen posterior en el flujo requerirá referencia a imágenes anteriores a la imagen intra que contiene para poder decodificarse. Un flujo de la unidad NAL puede contener una o más secuencias de vídeo codificadas.

Referencias

  1. 1 2 3 4 5 Jack, Keith (2007). "Capítulo 14: MPEG-4 y H.264" . Video Demystified (5.ª  ed.). Newnes. pág.  762. ISBN 978-0-7506-8395-1.
Fuentes
  • Descripción general del estándar de codificación de vídeo H.264/AVC, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 13, NO. 7, JULIO DE 2003. Archivado el 29 de abril de 2011 en Wayback Machine.
  • Descripción general del estándar de codificación de vídeo de alta eficiencia (HEVC), IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 22, NO. 12, DICIEMBRE DE 2012
  • Recomendación H.264 de la UIT  : Codificación de vídeo avanzada para servicios audiovisuales genéricos.