En la codificación de video HEVC, el uso de parámetros comunes en múltiples imágenes a lo largo de una secuencia es crucial para reducir el sobrecosto de la transmisión. El parámetro de configuración del secuenciador (PPS) juega un papel clave al contener parámetros que pueden compartirse entre varias imágenes, lo que reduce la redundancia y mejora la eficiencia. Sin embargo, estos parámetros pueden necesitar ser modificados durante la secuencia de codificación, como sucede cuando un codificador decide cambiar el valor predeterminado del QP (quantization parameter) en medio de la secuencia.
Cada cabecera de segmento de imagen (slice) contiene un identificador PPS. Cuando un PPS es referenciado por primera vez en una cabecera de slice dentro de una secuencia, se activa para ser utilizado no solo en ese slice, sino en todos los slices posteriores de la misma imagen codificada. Similarmente, cuando un PPS hace referencia por primera vez a un SPS (secuencia de parámetros de codificación), se activa el SPS correspondiente, y si un VPS (conjunto de parámetros de video) es referenciado, también se activa. Esto se ilustra claramente en el flujo de imágenes de una secuencia codificada.
Por ejemplo, en una secuencia codificada con un VPS0, SPS0 y PPS0, el primer slice que hace referencia al PPS0 activará todos los parámetros asociados, y estos permanecerán activos para las siguientes imágenes que hagan referencia al mismo PPS. Así, imágenes como Pic 0, Pic 1 y Pic 2 utilizan PPS0, mientras que en Pic 3, el PPS1 es referenciado y activado, desactivando el PPS0. Este ciclo de activación y desactivación de PPS según el flujo de la secuencia permite una codificación flexible y eficiente, adaptándose a los cambios en los parámetros sin la necesidad de recodificar toda la imagen.
Este comportamiento se repite cuando se cambia de PPS a través de secuencias de imágenes, lo que permite optimizar la codificación para ajustarse mejor a las características de cada imagen y mantener un flujo continuo de datos sin sobrecargar al decodificador.
Es importante destacar que cada imagen codificada, que puede consistir en varios segmentos de slice, debe seguir las reglas de activación y desactivación de PPS, SPS y VPS para garantizar que los parámetros adecuados se apliquen a cada slice dentro de la secuencia. Esto evita incoherencias en el proceso de decodificación y asegura una correcta reconstrucción de la imagen.
A medida que avanzamos hacia una mayor compresión y eficiencia en la codificación de video, es necesario comprender cómo los diferentes niveles de perfiles y la activación de parámetros contribuyen al comportamiento general de la secuencia. Los perfiles HEVC, como Main, Main 10 y Main 12, definen el tipo de datos que un decodificador puede manejar, y los niveles (como Level 2, Level 4.1 o Level 5.1) especifican las capacidades máximas que un decodificador puede procesar en términos de resolución, tasa de bits y cantidad de muestras de luminancia por segundo.
Además de estos aspectos técnicos, los conjuntos de imágenes de referencia (RPS) son fundamentales para la estructura de las secuencias de imágenes, permitiendo la eficiencia en la transmisión y decodificación de estructuras de imagen repetitivas, como las utilizadas en los grupos de imágenes (GoP) tradicionales. En un GoP típico, una imagen clave I (Intra) se codifica junto con imágenes predichas (P) y de referencia (B), lo que permite reducir la latencia y optimizar la codificación al enviar las imágenes en un orden diferente al de su visualización, como se muestra en la figura de un GoP.
En resumen, el proceso de activación de parámetros, la comprensión de los perfiles y niveles de HEVC, y el uso de RPS para estructuras de imagen repetitivas son esenciales para comprender cómo se lleva a cabo la codificación eficiente en este estándar. Además, cada parte de este proceso debe estar alineada con las capacidades del decodificador, que debe ser capaz de manejar los diferentes niveles de codificación para asegurar la correcta decodificación de las secuencias de video.
¿Cómo se lleva a cabo la compresión de video y qué procesos son clave para entender la calidad del video comprimido?
La compresión de video es un proceso esencial para hacer viable la transmisión y almacenamiento de contenido visual en un formato manejable. El video digital está compuesto por una secuencia de cuadros o imágenes, cada uno de los cuales está formado por miles o millones de píxeles. Si se intentara almacenar o transmitir video en su forma no comprimida, se necesitaría una cantidad de almacenamiento o ancho de banda tan alta que resultaría impráctica para casi cualquier aplicación. Por ello, es indispensable usar técnicas de compresión, y en este contexto, los códecs de video juegan un papel fundamental.
Un códec de video es el conjunto de un codificador y un decodificador. El codificador comprime el video, transformándolo en un flujo de bits más compacto, conocido como "video codificado", adecuado para su almacenamiento o transmisión. Por otro lado, el decodificador realiza el proceso inverso: extrae video reproducible a partir del flujo comprimido. Existen diversas técnicas dentro de los códecs de video, pero la compresión generalmente se basa en métodos de predicción espacial (intra-frame) y temporal (inter-frame), transformaciones matemáticas y cuantización, entre otros.
Predicción Espacial e Interframe
La predicción es un aspecto crucial en la compresión de video. La predicción espacial, también conocida como intra-frame, utiliza la información disponible dentro del mismo cuadro para predecir los valores de los píxeles de una región de la imagen. De esta forma, se aprovecha la redundancia espacial dentro de cada cuadro para comprimir la información. Sin embargo, la predicción inter-frame, o temporal, va más allá, utilizando la información de cuadros previos para predecir bloques de video. Este enfoque permite explotar la redundancia temporal entre los cuadros, lo cual es esencial para lograr altas tasas de compresión sin sacrificar la calidad visual.
El uso de predicción inter-frame es clave en los estándares de codificación más avanzados, como H.265/HEVC y H.266/VVC. Estos códecs se centran en mejorar la eficiencia de la predicción y en reducir la cantidad de datos necesarios para representar el video sin comprometer demasiado la calidad visual. Además, la cantidad de información que se predice y se codifica depende de la técnica de compresión aplicada, lo que lleva al siguiente proceso esencial: las transformaciones y la cuantización.
Transformaciones y Cuantización
Las transformaciones juegan un papel importante en la compresión al convertir bloques de píxeles en un dominio diferente, donde la información visual relevante se concentra en un número reducido de valores. Este paso es crucial para identificar las características más significativas de una imagen que deben mantenerse, mientras que la menor información puede eliminarse sin que se degrade demasiado la calidad visual. La cuantización, por su parte, es el proceso que reduce la precisión de los datos transformados, disminuyendo aún más la cantidad de información. Aunque la cuantización puede causar pérdida de calidad, es una herramienta necesaria para reducir el tamaño de los datos.
A través de la transformación y cuantización, se logran tasas de compresión más altas, pero a costa de cierta pérdida de calidad, lo que plantea el desafío de encontrar un equilibrio adecuado entre ambos factores. Esto es particularmente importante en aplicaciones donde el usuario final tiene expectativas altas de calidad visual, como en el caso de la transmisión de video en alta definición o 4K.
Codificación de Entropía
El último paso clave en el proceso de compresión de video es la codificación de entropía. Esta técnica convierte los datos transformados en un flujo de bits comprimido. Existen varios métodos de codificación de entropía, siendo uno de los más importantes el "código aritmético". Este método ha ganado popularidad en los códecs modernos como H.265 y H.266, debido a su eficiencia en la representación de los datos comprimidos.
El código aritmético ofrece una manera muy eficiente de representar los flujos de datos de manera compacta. A través de este método, las secuencias de datos más frecuentes se codifican con menos bits, mientras que las secuencias menos frecuentes utilizan más bits. Esta técnica reduce significativamente el tamaño del archivo sin perder demasiada información.
Filtrado y Mejora del Rendimiento
En el proceso de codificación y decodificación de video, los filtros también juegan un papel fundamental. Los filtros de video se aplican para mejorar el rendimiento de los otros procesos de compresión. En esencia, estos filtros se usan para suavizar las imperfecciones que pueden surgir durante el proceso de codificación, tales como el ruido o los artefactos de compresión. Los filtros también ayudan a mejorar la calidad de la imagen en general, haciéndola más coherente y menos propensa a distorsiones visibles.
El uso de filtros es especialmente importante en los códecs más avanzados, que intentan mantener la calidad visual a medida que se incrementa la compresión. Por lo tanto, los filtros pueden ser vistos como un "toque final" que optimiza la calidad del video sin aumentar significativamente el tamaño del archivo.
Almacenamiento y Transmisión del Video
Una vez que el video ha sido comprimido, debe ser almacenado y transmitido de manera eficiente. Los archivos de video comprimidos a menudo se almacenan junto con el audio en contenedores como MP4, que permiten empaquetar tanto el video como el audio de manera coherente para facilitar su distribución y reproducción. La transmisión de video también ha evolucionado en los últimos años, con el streaming de video adaptativo como una de las tecnologías más importantes para la transmisión de video por Internet. El streaming adaptativo ajusta la calidad del video en función del ancho de banda disponible, lo que permite una experiencia de visualización más fluida en condiciones de red variables.
Implementación de Códecs de Video
La implementación de códecs de video, ya sea en software o hardware, es otro aspecto fundamental en la compresión de video. Los códecs pueden ser implementados en distintos entornos, y su rendimiento se mide evaluando la eficiencia de la compresión, la calidad visual, y la velocidad de codificación y decodificación. Experimentar con diferentes parámetros de codificación puede ser una forma efectiva de entender cómo afectan estos factores al resultado final. El análisis detallado de los flujos de video codificados también proporciona información valiosa sobre cómo se estructuran y comprimen los datos.
En este contexto, las herramientas de análisis de sintaxis y los experimentos prácticos son recomendables para profundizar en la comprensión de los códecs y las técnicas que emplean.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский