En el ámbito del transporte de video codificado, el formato del archivo y su estructura son fundamentales para el éxito en su transmisión. Consideremos el ejemplo de un archivo de video capturado en un dispositivo móvil, como un dispositivo iOS. Este archivo tiene una duración de 6 segundos, con una resolución de 1920×1080 píxeles (1080p) y está comprimido con H.265/HEVC. El tamaño del archivo es de 6.5 MB, lo que corresponde a una tasa de bits de alrededor de 8.5 Mbps. La estructura de dicho archivo se inicia con los campos de tipo y versión del archivo (ftyp), seguidos por las muestras codificadas de audio y video almacenadas en la sección mdat, y, finalmente, la información de los metadatos de video y audio se guarda en la parte moov.

Este formato de archivo es adecuado para la captura de video en dispositivos iOS, ya que el dispositivo espera a que todos los datos de video y audio sean codificados y almacenados antes de escribir los metadatos en la parte moov. Sin embargo, este esquema no es ideal para la transmisión progresiva o la descarga en tiempo real, ya que los metadatos (moov) se encuentran al final del archivo. En este contexto, se debe descargar el archivo completo antes de comenzar la decodificación y la reproducción, lo que puede generar una experiencia de usuario poco óptima.

Para adaptar el archivo a un formato más adecuado para streaming o descarga progresiva, se realiza un proceso de transcodificación. Este proceso implica la decodificación y re-codificación del archivo, aplicando una mayor compresión que reduce el tamaño del archivo a aproximadamente 2 MB. Lo más relevante de este proceso es que la parte moov se reubica al principio del archivo, antes de las muestras mdat codificadas. Esto permite que el cliente pueda empezar a decodificar y presentar el video y el audio tan pronto como reciba la información necesaria de los metadatos.

El transporte de video codificado también implica el cumplimiento de ciertos protocolos de comunicación entre el origen (servidor) y el destino (cliente). Estos protocolos definen cómo se deben transmitir los datos a través de la red, asegurando que las restricciones de calidad de servicio (QoS) se cumplan. En aplicaciones de comunicación en tiempo real, como las videollamadas (por ejemplo, Zoom, FaceTime, Skype), la latencia de extremo a extremo debe ser lo más corta posible, preferiblemente por debajo de un segundo. En este tipo de aplicaciones, la prioridad la tiene el audio sobre el video, ya que una alta calidad de video puede ser menos crucial que una baja latencia y fiabilidad. De hecho, los usuarios están dispuestos a tolerar una calidad de video algo inferior, pero no una interrupción en el audio o retrasos significativos.

Para aplicaciones de transmisión como la televisión digital o los servicios de streaming (Netflix, YouTube), una latencia mayor es aceptable. El usuario puede tolerar un pequeño retraso antes de que comience la reproducción de un programa. Sin embargo, la calidad de audio y video debe ser alta, con la excepción de los primeros segundos de transmisión, donde se puede permitir una calidad inferior. Lo más importante en estos casos es evitar el buffering o la detención del flujo, ya que los usuarios consideran mucho más frustrante una pausa en la transmisión que una disminución temporal de la calidad.

En cuanto a la transmisión de video para difusión, como la televisión digital, los protocolos como MPEG-2 Systems se encargan de la multiplexación de video y audio para ser transmitidos a través de canales como la televisión por cable, satélite o terrestre. Este proceso de multiplexado implica convertir el video y el audio en paquetes de flujo elemental (PES), que luego se intercalan para formar un flujo de transporte (TS), el cual incluye información de sincronización y protección de errores. Aunque MPEG-2 fue desarrollado inicialmente para transportar programas de video en MPEG-2, las versiones más recientes de este estándar han añadido soporte para codificación en H.264 y H.265.

Para las aplicaciones de videollamadas, los estándares como H.323 definen los protocolos que permiten la comunicación bidireccional de video y audio en tiempo real a través de la red. En este tipo de aplicaciones, los datos de video y audio se capturan y se codifican mediante códecs de video y audio, y luego se envían como paquetes mediante protocolos en tiempo real como RTP (Real-time Transport Protocol) y UDP (User Datagram Protocol). Esta estructura de comunicación asegura que los usuarios experimenten una interacción fluida con la menor latencia posible.

Es fundamental comprender que el transporte de video codificado no se limita solo a la compresión y la transmisión de archivos; también involucra la selección adecuada de códecs, protocolos y técnicas de transmisión que afectan tanto a la calidad del contenido como a la experiencia del usuario. La eficiencia en la codificación y la estructuración de los datos es esencial para optimizar la entrega del video en diferentes escenarios de uso, ya sea en videollamadas, transmisión de contenido en vivo o descarga progresiva de archivos.

¿Cómo se comparan los estándares de codificación de video y qué factores influyen en su rendimiento?

La evolución de los estándares de codificación de video ha sido rápida y continua, lo que ha permitido mejorar tanto la eficiencia de la compresión como la calidad de las imágenes con cada nueva generación de codecs. A medida que la tecnología avanza, se introducen nuevas herramientas y técnicas, lo que permite una mayor reducción del bitrate sin sacrificar la calidad visual. Entre los estándares más relevantes que han emergido recientemente se encuentran VP9, AV1, EVC y LCEVC, cada uno con características únicas, pero todos encaminados a mejorar el rendimiento de la transmisión de video en plataformas de streaming, dispositivos móviles y otras aplicaciones.

Los codecs VP9 y AV1 son algunos de los más destacados en la actualidad. Ambos utilizan una arquitectura de codificación basada en bloques que permite un procesamiento eficiente y con bajo consumo de recursos. Mientras que VP9 sigue siendo una opción popular debido a su adopción generalizada en plataformas como YouTube, AV1 se ha presentado como una opción aún más eficiente, particularmente en lo que respecta a la reducción del bitrate para la misma calidad visual. AV1 utiliza superbloques más grandes (hasta 128x128 píxeles) en comparación con los 64x64 píxeles de VP9, lo que mejora la eficiencia al manejar secuencias de video de mayor resolución.

En cuanto a la predicción intra y entre bloques, AV1 ofrece más opciones que VP9, con 56 modos direccionales frente a los 8 de VP9. Esto se traduce en una mayor flexibilidad y precisión en la predicción de los bloques, lo que se refleja en una mejor compresión de video. Además, AV1 soporta técnicas avanzadas de compensación de movimiento, como la estimación de campo y la compensación de movimiento afín, que permiten una representación más precisa de las escenas en movimiento.

Otro avance importante de AV1 es el uso de múltiples tipos de transformaciones, que combinan la Transformada Discreta de Coseno (DCT) y la Transformada Discreta de Seno (DST), lo que permite un procesamiento más eficiente de las señales de video. Mientras que VP9 se limita a la DCT hasta un tamaño de 32x32, AV1 soporta hasta un tamaño de 64x64, lo que le otorga una mayor capacidad de compresión sin perder calidad.

Además, AV1 incorpora mejoras significativas en la codificación de la entropía. A diferencia de VP9, que utiliza una codificación aritmética binaria, AV1 implementa un codificador aritmético multisimbológico que mejora aún más la eficiencia en la representación de los datos comprimidos. Esto, junto con filtros avanzados de desentrelazado y reducción de ruido, ofrece un mejor rendimiento visual y menor consumo de ancho de banda.

Por otro lado, EVC (MPEG EVC) es otro estándar que merece atención. Publicado en 2020, este códec tiene como objetivo ofrecer una compresión de video eficiente y, lo que es más importante, libre de regalías en su perfil base. El perfil base de EVC define herramientas de codificación consideradas libres de regalías, lo que hace que este códec sea atractivo para aplicaciones comerciales que buscan minimizar los costos de licencias. Aunque EVC no ofrece una compresión tan avanzada como la de AV1, sus características lo hacen adecuado para ciertos casos de uso en los que la simplicidad y la accesibilidad a herramientas sin regalías son más importantes que la optimización máxima de la compresión.

LCEVC (Low Complexity Enhancement Video Coding), lanzado en 2021, introduce un enfoque novedoso al ofrecer una capa de mejora adicional sobre un códec de base, como AVC o HEVC. LCEVC no reemplaza los códecs existentes, sino que los complementa, mejorando la eficiencia de la compresión al permitir una mayor resolución sin requerir un mayor poder de procesamiento. Este enfoque basado en capas hace que LCEVC sea especialmente útil en dispositivos con recursos limitados o cuando se necesita mejorar la calidad de un video comprimido sin aumentar significativamente el bitrate.

La comparación de estos códecs puede realizarse en función de su rendimiento, que incluye la tasa de bits, la calidad visual y la eficiencia computacional. Para comparar estándares, es importante utilizar métricas objetivas, como el PSNR (Peak Signal-to-Noise Ratio), que permite medir la calidad visual de los videos codificados. Sin embargo, la medición precisa de la calidad visual puede ser compleja, ya que depende de muchos factores subjetivos, como las preferencias del espectador y las condiciones de visualización. Por ejemplo, estudios muestran que codecs más recientes como AV1 y VVC (Versatile Video Coding) son más eficientes que HEVC (High Efficiency Video Coding) en términos de reducción del bitrate para la misma calidad visual.

Es importante destacar que, aunque AV1 y VVC ofrecen una mejora significativa en la compresión en comparación con estándares más antiguos como HEVC, la adopción generalizada de estos nuevos códecs aún está en progreso. Los dispositivos y servicios de streaming, que deben actualizar sus infraestructuras para soportar estos códecs, enfrentan un desafío significativo en términos de implementación y compatibilidad con hardware antiguo.

Por lo tanto, más allá de las especificaciones técnicas de cada estándar, es fundamental entender que el contexto de implementación y el uso de un códec dependen en gran medida de los requisitos de cada plataforma. Factores como la compatibilidad con dispositivos, la eficiencia energética y la facilidad de implementación juegan un papel clave en la elección de un códec, ya que un avance tecnológico no siempre implica una adopción inmediata en todas las áreas. La transición hacia nuevos códecs como AV1 y LCEVC será gradual, pero está en marcha.

¿Cómo influye la interpolación subpíxel en la predicción de movimiento en video?

En la codificación de video, la predicción de movimiento es una técnica crucial que permite la compresión eficiente de datos al predecir los movimientos entre cuadros consecutivos. A medida que se utilizan diferentes resoluciones de interpolación, la precisión de la predicción mejora, pero también lo hacen los costos computacionales y de memoria.

Al realizar interpolaciones en una secuencia de video, es posible aumentar la precisión de la predicción de movimiento al aumentar la densidad de las muestras. Esto se logra mediante la interpolación de posiciones intermedias entre los píxeles enteros, como el caso de la interpolación a mitad de píxel, cuarto de píxel u octavo de píxel. La interpolación a mitad de píxel se realiza utilizando un filtro bilineal, que calcula el valor de la nueva posición interpolada promediando los valores de los píxeles vecinos. Sin embargo, para obtener una interpolación más precisa, se pueden utilizar filtros de mayor orden, como el bicúbico, que mejora la precisión al tomar en cuenta hasta 16 píxeles vecinos en lugar de solo 4.

La interpolación bicúbica no solo mejora la calidad de la imagen, sino que también ofrece una representación más precisa de los bordes de los objetos en los cuadros interpolados. En comparación con la interpolación bilineal, la interpolación bicúbica genera una imagen más nítida, especialmente en zonas donde hay transiciones de color o detalles finos. Sin embargo, esta mayor precisión viene con un costo: el aumento de la complejidad computacional. Tanto el codificador como el decodificador deben generar la misma referencia interpolada para realizar la predicción de movimiento, lo que implica más cálculos y mayor uso de memoria.

La mejora en la predicción no se limita solo a la interpolación en la resolución de media muestra, sino que también se puede lograr aumentando la resolución de la interpolación a cuarto de píxel u octavo de píxel. A medida que se incrementa la resolución de la interpolación, los vectores de movimiento pueden apuntar a más posiciones intermedias entre los píxeles enteros, lo que permite una aproximación más precisa del movimiento real entre cuadros consecutivos. Sin embargo, a medida que se aumenta la resolución de la interpolación, también se incrementan los requerimientos computacionales y de memoria. El número de posiciones interpoladas necesarias crece exponencialmente con la resolución, lo que implica una mayor cantidad de datos a procesar y almacenar.

Además, cuando la resolución de interpolación aumenta, también lo hace la cantidad de bits necesarios para codificar y transmitir los vectores de movimiento. Los vectores de movimiento con mayor precisión requieren más bits para ser representados, lo que incrementa la carga de transmisión y almacenamiento de los datos. A pesar de los avances en la interpolación y la mejora de la precisión de los vectores de movimiento, en ciertos casos, el costo de los bits adicionales necesarios para transmitir estos vectores puede superar los beneficios en términos de calidad de la predicción.

Una posible solución para mitigar el impacto de estos costos adicionales es el uso de filtros de interpolación más sofisticados. Con un diseño adecuado, estos filtros pueden permitir una mayor profundidad de interpolación sin que se pierda la eficiencia de la compresión. Es decir, un filtro bien diseñado puede ofrecer una ganancia en compresión incluso con una mayor precisión en los vectores de movimiento.

En este sentido, uno de los aspectos más importantes que debe considerar el lector es el equilibrio entre la mejora de la predicción de movimiento y el aumento de los costos computacionales y de memoria. A medida que se busca una mayor precisión en la interpolación, también se deben evaluar los recursos disponibles y la eficiencia de la compresión, especialmente en aplicaciones que requieren un rendimiento en tiempo real, como la transmisión de video en vivo o los sistemas de videoconferencia.

El rendimiento global de los sistemas de predicción de movimiento en la codificación de video no solo depende de la interpolación utilizada, sino también de la eficiencia en la transmisión y almacenamiento de los datos. El diseño de los filtros de interpolación, la resolución de la interpolación y los métodos de codificación deben ser cuidadosamente ajustados para optimizar el proceso de compresión sin sacrificar demasiado la calidad de la imagen ni los recursos computacionales disponibles.