JPEG XS, o deberíamos decir XL…

El estándar JPEG XS, concretamente el ISO/IEC 21122, se trata de un códec desarrollado por el Joint Photographic Experts Group (JPEG), como su propio nombre indica, que promete interoperabilidad, baja latencia sin pérdida visual de calidad y con unos requisitos de procesamiento muy bajos para formatos de gran calidad. Así dicho es muy prometedor con lo que desgranemos un poco más en detalle a que se refiere.
Por Yeray Alfageme
Los tres pilares del JPEG XS
Como hemos comentado el JPEG lanzó, allá por el 2018, el JPEG XS con tres características principales en mente:
• Nula pérdida visual de calidad: un contenido comprimido en JPEG XS es indistinguible visualmente del contenido original.
• Baja latencia: la latencia total en una cadena completa de codificación, transporte y descodificación bajo JPEG XS es mínima, entre 1 y 32 líneas de latencia.
• Ligereza: JPEG XS está diseñado para requerir muy pocos recursos de computación permitiendo implementarlo tanto en software como en hardware de manera eficiente.
Cada uno de estos tres pilares fundamentales tiene más implicaciones que ser un mero titular. En el caso de la nula pérdida visual de calidad permite sustituir la señal original en vídeo banda base o sin compresión, que para entornos HD ya estamos hablando de entre 1,5 y 3 Gbps, cifras que hacen que sea inmanejable para muchos sistemas; por una señal equivalente JPEG XS y seguir considerándola como una señal original. Esto supone un ahorro de ancho de banda espectacular. Si lo comparamos con su hermano mayor el JPEG 2000, donde su ancho de banda típico se encuentra en el entorno de los 150 Mbps, el JPEG XS ofrece un rendimiento de entre tres y cuatro veces superior, lo que nos llevaría a reducir de los originales 1,5 Gbps hasta los aproximadamente 38 Mbps, nada mal. Y si esto ya lo trasladamos a señales UHD-HDR de 12 Gbps permite transportar una señal en tan solo 300 Mbps sin perdidas permitiendo su manejo con enlaces Ethernet de 1 Gbps, impensable en otros formatos.
El que se trate de un códec de baja latencia también facilita que sea usado en cualquier parte de la cadena de transmisión ya que, si tan solo nos lleva unas cuantas líneas el codificar y descodificar este formato, nada nos impide usarlo para comprimir la señal de salida de nuestras cadenas de cámara de camino a nuestro centro de producción en un entorno de producción remota, por ejemplo.
Si a estas dos características anteriores les sumamos que no hace falta disponer de una capacidad de computación exagerada, como en ocasiones es necesaria en códecs más pesados o antiguos, nos permite disponer de capacidad de compresión en cualquier lugar. Por ejemplo, un dron transmitiendo imágenes de manera inalámbrica con alta calidad 4K50pHDR y transmitiéndolas mediante JPEG XS sin pérdida de calidad, con baja latencia y con un ancho de banda controlado, permite ampliar su cobertura y rango de acción de manera fiable, por lo tanto podremos usarlo en entornos que hasta ahora no eran posibles.
Pero no nos quedemos solo en la superficie, vayamos un poco más en detalle sobre lo que ofrece este códec destinado a sustituir al JPEG 2000 y que ya muchos fabricantes han implementado en toda su gama de equipos.
¿Realmente es tan bueno?
Por lo general, los códecs de vídeo se usan para una amplia gama de aplicaciones, principalmente dirigidas a la distribución. Para la producción, se utilizan derivados de estos códecs con parámetros específicos, pero no optimizados.
Con JPEG XS, el códec se diseñó específicamente para su uso en entornos de producción donde la alta calidad es el factor principal dejando en un segundo plano, aunque sin olvidarnos de ella, a la relación de compresión. En entornos de producción, normalmente se dispone de más capacidad tanto de transmisión, suelen ser redes LAN o WAN privadas con altos anchos de banda, como de almacenamiento, un entorno SAN de varios cientos de TBs es muy típico en cualquier centro de producción. Sin embargo, la codificación sin comprimir es difícil, por lo que una compresión mezanine se adapta a estas necesidades.
JPEG XS se utiliza en casos en los que se necesita submuestreo 422 o 444 con hasta 12 bits por componente y una relación de compresión entre 2:1 y 10:1, baja latencia inferior a 32 líneas y también se requiere robustez multigeneracional. Un ejemplo típico es la transmisión para 4k50p, que es de aproximadamente 10 GBit/s. Entonces, reducir el ancho de banda en un factor de tres a cuatro permite una transmisión segura de múltiples flujos a través de una línea Ethernet de 10 Gbit.
Y esto tiene grandes implicaciones en el plano creativo. Al requerir de muy pocos recursos puede ser implementado en chips FPGA para ser usado en dispositivos o entornos que requieran de bajo consumo de energía o una rapidez y fiabilidad de compresión mayores, como en entornos software mediante una CPU convencional, y así ofrecer mayor flexibilidad en estaciones de trabajo de edición, por ejemplo.
No se requiere una workstation de ultimísimo modelo para poder visualizar, en tiempo real, el resultado de postproducción en 4k50p sobre JPEG XS, una tarjeta gráfica medianamente moderna puede soportarlo sin problemas usando Premiere Pro, por ejemplo.
Y eso no es todo
JPEG XS no solo es un códec bueno, bonito y barato, cumple con muchos requisitos técnicos para ser considerado un estándar en la industria como lo es el JPEG 2000, el MPEG2 o incluso el MPEG4. Sin embargo, es difícil compararlo con otros códec existentes de nueva generación ya que está orientado tanto a entornos de producción como de transmisión. Para intentarnos hacernos una mejor idea vamos a ver alguna característica más en detalle:
• Bitrate realmente constante: aunque el CBR (Constant Bit Rate) siempre se ha asociado a un mayor consumo de ancho de banda a costa de un menor coste de codificación y menor latencia, y así es, con ratios de compresión como ofrece JPEG XS de 10:1 permite establecer anchos de banda muy precisos para optimizarlos. Y es que JPEG XS nos permite elegir al Mb, no como ocurre con ProRes por ejemplo en el que nos movemos entre valores enteros de bitrate, y así usar todo nuestro ancho de banda con más de una señal.
• Múltiples pasadas sin pérdida visual: JPEG XS permite hasta diez ciclos de codificación sin degradar mucho la imagen, pero esto hay que cogerlo con pinzas. Dicho esto, este rango es muy superior a otros códecs, con lo que podemos estar tranquilos en usarlo en nuestro entorno de producción donde, típicamente, una imagen es codificada entre cuatro y seis veces.
• Mathematical Lossless Coding: siempre que se habla de pérdida visual de calidad entra en juego una componente subjetiva, aunque desde la EBU hasta la ITU han realizado muchos estudios para determinar objetivamente lo que supone una pérdida visual de calidad. Sin embargo, como ingeniero, el traerlo al ámbito matemático, siempre me da seguridad. Y es que hay perfiles de JPEG XS que realmente permiten reconstruir, píxel a píxel, la misma imagen original de extremo a extremo de la cadena de codificación. Esto sí es sin pérdida.
• Soporte real de nuevos formatos: JPEG XS permite dedicar hasta 16 bits de profundidad a cada píxel, lo que queda por encima de los 12 bits actuales que se usan en señales HDR, por ejemplo. Esto permite usarlo en formatos de imagen, como UHD y superiores, sin que haga falta apretar las especificaciones del códec. Además, nos permitirá seguir usándolo en entornos con recursos limitados o necesidades de latencias bajas incluso con resoluciones altísimas o rangos de color BT.2020 y otros que están por llegar.
Existen otras características importantes como un control de bitrate, pero considero que no tienen un impacto tan importante como las anteriores en nuestros entornos de trabajo y no suponen una razón de peso para que JPEG XS se esté implementando como un nuevo estándar a nivel mundial.
Hablemos un poco de estándares
Cuando se trata de nuevos formatos es inevitable hablar de estándares. Aunque ya sabemos que es la parte más aburrida, son importantes ya que saber que un sistema cumple con cierto estándar nos da la seguridad de que cumple con los requisitos que necesitamos y, además, nos permite garantizar su interoperabilidad. Son aburridos, pero necesarios.
Como ya hemos comentado anteriormente el JPEG XS es el estándar ISO/IEC 21122 y el grupo JPEG lo publicó en 2018. Allá por 2019 fue cuando las primeras ediciones de los estándares fueron viendo la luz, como ya es costumbre en diferentes partes.
La Parte 1, designada formalmente como ISO/IEC 21122-1, describe el sistema de codificación central de JPEG XS. Este estándar define la sintaxis y, de manera similar a otros códecs de imagen JPEG y MPEG, el proceso de descompresión para reconstruir una imagen digital a partir de su flujo de datos. La Parte 1 proporciona algunas pautas del proceso inverso que comprime una imagen digital en un flujo de datos, o más simplemente llamado proceso de codificación, pero deja las optimizaciones y opciones específicas de implementación a los implementadores.
La Parte 2 (ISO/IEC 21122-2) se basa en la Parte 1 para segregar diferentes aplicaciones y usos de JPEG XS en subconjuntos de herramientas de codificación con restricciones más estrictas. La definición de perfiles, niveles y subniveles permite reducir la complejidad de las implementaciones en aplicaciones particulares, al mismo tiempo que garantiza la interoperabilidad. Recordemos que una menor complejidad generalmente significa menos consumo de energía, menores costos de producción, restricciones más sencillas, etc. Además, la Parte 2 también especifica un modelo de búfer, que consiste en un modelo de decodificador y un modelo de canal de transmisión, para poder garantizar los requisitos de baja latencia a una fracción de cuadro.
La Parte 3 (ISO/IEC 21122-3) especifica los formatos de transporte y contenedor para señales JPEG XS. Define el transporte de metadatos importantes, como espacios de color, masterización de metadatos de visualización (MDM) y EXIF, para facilitar el transporte, la edición y la visualización. Además, esta parte define los cuadros ISOBMFF específicos de XS, un registro de tipo de medio de Internet y una sintaxis adicional para permitir incrustar XS en formatos como MP4, MPEG-2 TS o el formato de archivo de imagen HEIF.
La Parte 4 (ISO/IEC 21122-4) es un estándar de soporte de JPEG XS que proporciona pruebas de conformidad y verificación del modelo de búfer. Este estándar es crucial para los implementadores de XS y las pruebas de conformidad de los dispositivos.
Y finalmente, la Parte 5 (ISO/IEC 21122-5) representa una implementación de software de referencia (escrita en ISO C11) del decodificador JPEG XS Parte 1, conforme a los perfiles, niveles y subniveles de la Parte 2, así como una implementación de codificador ejemplar.
Todas estas partes fueron publicadas entre mayo de 2019, la Parte 1, y octubre de 2020, la Parte 5, y todas ellas están bajo revisión. Se estimaba que la Parte 1 fuera revisada para enero de 2022 y se encuentra en su fase final de publicación. Tras ella, seguirán revisiones de cada una de las consecuentes partes a lo largo del año. Deberemos permanecer atentos.
¿Cuáles son los perfiles disponibles en JPEG XS?
Como hemos comentado anteriormente una de las características de JPEG XS es que nos permite elegir el ancho de banda exacto de nuestra señal codificada. Esto no quiere decir que podamos codificar una señal 8K100p-HDR de 12 bits en 100 Mbps, no se vería mucho de todos modos. Por tanto, hay ciertos perfiles que el estándar nos ofrece para facilitarnos un poco la vida (ver Tabla 1).

Tabla 1.
Conclusión
Considero que el JPEG ha hecho un gran trabajo con JPEG XS. Ya JPEG 2000 es un códec que, a las pruebas me remito, es y será un estándar en muchas aplicaciones, pero con JPEG XS han logrado ofrecer mucha más flexibilidad sin complicar en exceso su implementación.
Se refleja en el propio diseño del códec y el texto de sus estándares que han apreciado como en la industria cada vez se usan menos dispositivos dedicados para el procesamiento de señal, haciendo de JPEG XS un códec liviano implementable en hardware, software o en dispositivos móviles y, además, se han mantenido lo más separados posible de actuales formatos de imagen como el UHD o similar.
Esto, aunque parezca contradictorio, permite que este códec sea duradero y esté hecho a prueba de innovaciones. Si un nuevo formato de VR que hoy desconocemos llega o una nueva definición o relación de aspecto aparece, a JPEG XS le da igual, tan solo aplica su algoritmo para lograr tasas de compersión altísimas con una calidad “sin pérdidas”.
Desde el 2019 hasta hoy, cada vez más fabricantes tienen a JPEG XS dentro de su catálogo de códecs soportados y creo que se tratará de un códec ampliamente extendido en cuanto los formatos de producción, como UHD, así lo requieran mayoritariamente.
Actualmente, creo que estamos en un momento de transición desde el HD hacia nuevos formatos y todo esto se estabilizará y, casi seguro, JPEG XS, será uno de esos tres o cuatro códecs elegidos como ahora lo son AVC-Intra, MPEG-2 o JPEG 2000.