Basándonos en los requerimientos clave que establecimos en nuestra anterior entrega, resulta sencillo entender que los estándares preexistentes no se ajustan a las necesidades de las redes de producción de las industrias cinematográfica y televisiva.

Comparación con los algoritmos previamente existentes

Tanto el JPEG-LS, como el JPEG y su sucesor –el JPEG-X7, que proporciona soporte retrocompatible con mayores profundidades de color– dificultan sobremanera el control de una tasa de transferencia precisa. De hecho, los desarrollos más típicos de los tres muestran una latencia de un fotograma, lo que deviene inaceptable. El JPEG 2000 utiliza un codificador de entropía complejo, que implica el empleo de numerosos recursos de hardware y software para desarrollos en tiempo real.

Familia de estándares JPEG.
Familia de estándares JPEG.

El HEVC –siendo un codec de distribución– precisa de una enorme complejidad de codificación, sin que eso asegure su robustez en múltiples generaciones. El VC-2 –por otra parte– presenta baja complejidad, pero la tecnología aplicada sólo entrega una calidad de imagen limitada. El Apple ProRes –tal y como lo documenta la Sociedad Estadounidense de Ingenieros de Cine y Televisión (SMPTE)– está basado en macro bloques de 16 x 16 píxeles. Por lo tanto, un desarrollo de baja latencia por debajo de 32 líneas es imposible.

Además, el código de entropía mediante símbolos convierte los desarrollos rápidos de la Unidad Central de Procesamiento (CPU) en un auténtico desafío. Por último, la DSC apunta hacia una compresión en pantalla basada en Circuitos Integrados para Aplicaciones Específicas (ASIC), lo que complica en exceso la consecución de desarrollos eficientes en las Matrices de Puertas Programables (FPGA) y en las Unidades de Procesamiento Gráfico (GPU).

JPEG XS
JPEG XS

Como consecuencia de los defectos de los codecs preexistentes, el comité JPEG ha elaborado el novedoso codec de baja complejidad al que dedicamos esta serie de artículos. El JPEG XS proporciona un control preciso de la tasa de transferencia de datos –con una latencia por debajo de las 32 líneas– y encaja en una FPGA de bajo coste. Se exigió que la calidad de la compresión fuera superior a la del VC-2 y que ofreciera –al mismo tiempo– soporte para su desarrollo en diferentes plataformas. A continuación, describiremos los componentes tecnológicos clave que le diferencian de los estándares anteriores y que aseguran el cumplimiento de los requerimientos mencionados.

Arquitectura del codec JPEG XS

La siguiente imagen muestra el diagrama de bloque general del codec JPEG XS.

Diagrama de bloque del codec JPEG XS.
Diagrama de bloque del codec JPEG XS.

En caso de entrada de datos RGB, los componentes de color se decorrelacionan a través de una transformada de color sin pérdida –idéntica a la que se utiliza en el codec JPEG 2000–. Seguidamente, se aplica una transformada de ondícula irreversible entera. Se prevén sólo dos descomposiciones de ondícula vertical como máximo. El propósito de ese límite es el de cumplir con las restricciones de latencia y evitar requerimientos excesivos de memoria. En la dirección horizontal, en cambio, se permiten hasta cinco descomposiciones sucesivas.

Empleando el codec JPEG XS, basta con un único cable 12G-SDI para transmitir 8K con una proporción de compresión de apenas 6:1.
Empleando el codec JPEG XS, basta con un único cable 12G-SDI para transmitir 8K con una proporción de compresión de apenas 6:1.

Los coeficientes de ondícula resultantes se analizan con un módulo de computación temporal que predice el número de bits necesarios para cada cuantización posible. Las cuantizaciones más grandes implican distorsiones de la señal más profundas. El algoritmo de control de la tasa de transferencia calcula el factor de cuantización más pequeño –que no exceda de la cantidad de bits disponibles– para codificar los coeficientes de ondícula. Luego se codifica por entropía dichos coeficientes de ondícula.

Por último, todas las secciones de datos se combinan en una estructura en forma de paquete y se envían al canal de transmisión. Un instrumento reservado para el almacenamiento temporal de información digital asegura la tasa de transferencia constante en la salida del codificador –a pesar de que la imagen de entrada puede estar compuesta por algunas regiones de entrada más sencillas de codificar, y por otras que requieren más bits por píxel–.

La empresa intoPix ha sido la primera en desarrollar una versión comercial del codec JPEG XS a la que denomina TICO.
La empresa intoPix ha sido la primera en desarrollar una versión comercial del codec JPEG XS a la que denomina TICO.

Teniendo en cuenta que el decodificador debería ser capaz de procesar los píxeles con una frecuencia de reloj constante, el número de bits que se leen por unidad de tiempo varía. Tal variación depende de si el coeficiente de ondícula presente es fácil de comprimir o no. Semejantes diferencias se compensan –una vez más– por un instrumento para el almacenamiento temporal de información digital, situado a la entrada del decodificador. Un analizador sintáctico –parser– de paquetes divide el flujo de bits en trozos de datos individuales. Cada uno de esos pedazos representa parte de una sub-banda antes de que los coeficientes de ondícula se decodifiquen y se transformen de nuevo al dominio espacial del píxel.

Codificación de entropía

Para ser capaces de representar una imagen con el menor número de bits posible, resulta crucial hacerlo por medio de códigos cortos –en el caso de los valores de píxel que se repiten con mayor frecuencia–. Igualmente importante es representar los valores de píxel menos frecuentes por medio de códigos más grandes. A este proceso se le denomina codificación de entropía. Por desgracia, la codificación y decodificación de códigos de tamaño variable requiere contar con recursos significativos, tanto de hardware como de software. Para permitir desarrollos de baja complejidad, se decidió no realizar la codificación de códigos de tamaño variable mediante la granularidad de coeficientes, sino por medio de un grupo de cuatro coeficientes.

Codificación de entropía.
Codificación de entropía.

La imagen que precede a estas líneas muestra el grupo de coeficientes al que nos referimos. Cada coeficiente se representa por un bit de signo y por un número fijo de bits de magnitud. Entonces se puede realizar la codificación de entropía, omitiendo las líneas iniciales de cero bits de cada grupo de coeficientes –líneas grises en la imagen–.

Con tal propósito, el codificador señala la denominada “posición MSB” de cada grupo de coeficientes. Esta se corresponde con la línea de bits más significativa del grupo de coeficientes de turno, en la que al menos un bit de coeficiente equivalga a uno. Para codificar el valor de esta posición MSB, primero se sustrae de la que se encuentra en el grupo de coeficientes anexo horizontal o verticalmente. A continuación se codifica esta diferencia por medio de un código de tamaño variable.

El equipo de desarrollo del codec JPEG XS celebrando su certificación como estándar internacional.
El equipo de desarrollo del codec JPEG XS celebrando su certificación como estándar internacional.

Tal mecanismo permite incrustar –en el flujo de transferencia– sólo las líneas de bits con menor significado que las iniciales de cero bits. El proceso conduce a una reducción de la cantidad de datos. En el supuesto de que el número de bits posibles no sea suficiente para incluir todas las líneas, su número se puede reducir por cuantización.

3 Comentarios

  1. Buenas
    Tiene buena pinta, pero creo que el artículo es un poco confuso, y domino la informática.
    ¿Esto significa que se puede implementar este tipo de compresión en el HW de cámaras de fotos con un HW potente?
    ¿O necesitan de un HW específico?
    ¿Lo podrán implementar los fabricantes de cámaras en un futuro firmware?
    Gracias y saludos

  2. Hola David:

    La misión de este nuevo formato no es la de reemplazar al estándar JPEG tradicional, sino la de complementarlo con otro estándar de bajo consumo de energía para el streaming de contenido de vídeo por medio de WiFi o de redes móviles 5G (en smartphones y tablets). En palabras del propio comité JPEG: «el propósito es el streaming de archivos en lugar de su almacenamiento en smartphones u otros dispositivos con memoria limitada». El comité hace especial hincapié en tecnologías para drones y coches autónomos, donde una latencia demasiado grande puede suponer un peligro para los seres humanos. También han dejado muy claro que en primer lugar se limitará su uso a la edición de vídeo y a cámaras de uso profesional de cine y TV, pero que en un futuro cercano se podrá aplicar a bienes de electrónica de consumo como VR, AR, conexiones inalámbricas entre dispositivos y coches autónomos.

    Por primera vez en la historia de la codificación de imágenes se está apostando por comprimir menos para preservar la calidad al tiempo que se está acelerando el proceso consumiendo menos energía. El verdadero cambio de paradigma que supone el JPEG XS reside en la idea de emplear menos recursos y utilizarlos de manera más eficiente. La relación de compresión de este codec es de 6:1 en lugar del 10:1 del JPEG tradicional. En principio todo ello indica que sí se podrá aplicar en cámaras de fotos (aunque siempre para aplicaciones de vídeo) por medio de actualizaciones de firmware, ya que no requiere de mayor capacidad de procesado. La decisión final al respecto, no obstante, dependerá de cada fabricante y modelo de cámara específico.

    Saludos.

Dejar una respuesta

¡Por favor, introduce tu comentario!
Por favor, introduce aquí tu nombre

       

Los comentarios en esta página pueden ser moderados; en tal caso no aparecerán inmediatamente al ser enviados. Las descalificaciones personales, los comentarios inapropiados, de extensión desmesurada o con demasiados errores ortográficos podrán ser eliminados. Asimismo, en caso de errores considerados tipográficos, el editor se reserva el derecho de corregirlos antes de su publicación con el fin de mejorar la comprensión de los mismos. Recordamos a los lectores que el propósito final de este medio es informar. Para recibir soporte sobre dispositivos o problemas particulares les invitamos a contactar con el correspondiente servicio de atención al cliente.