An FPGA Implementation of Displacement Vector Search for Intra Pattern Copy in JPEG XS

Este artículo presenta un diseño eficiente y pipeline en FPGA para el módulo de búsqueda de vectores de desplazamiento de la herramienta de Copia de Patrón Intrínseco (IPC) en JPEG XS, logrando un alto rendimiento y bajo consumo energético que facilita su implementación práctica en hardware.

Qiyue Chen, Yao Li, Jie Tao, Song Chen, Li Li, Dong Liu

Publicado Thu, 12 Ma
📖 5 min de lectura🧠 Análisis profundo

Each language version is independently generated for its own context, not a direct translation.

Imagina que estás intentando enviar una foto por correo electrónico, pero tu conexión es muy lenta. Para que la foto llegue rápido, necesitas comprimirla (hacerla más pequeña) sin perder mucha calidad.

Aquí es donde entra JPEG XS, un estándar moderno diseñado para enviar imágenes casi al instante (como en videollamadas o juegos en la nube). Pero hay un truco: cuando la imagen es una captura de pantalla (como un escritorio de computadora con mucho texto y gráficos), los métodos normales de compresión no funcionan tan bien.

Para solucionar esto, los creadores de JPEG XS inventaron una herramienta llamada "Copia de Patrón Interno" (IPC).

¿Qué hace la "Copia de Patrón"? (La analogía del fotógrafo)

Imagina que estás tomando una foto de un escritorio lleno de ventanas.

  1. El problema: Hay muchas ventanas idénticas o muy parecidas. En lugar de guardar los datos de cada ventana por separado (lo cual es pesado), la computadora dice: "¡Eh! Esa ventana de la esquina derecha es casi igual a la de la esquina izquierda, solo que movida un poco".
  2. La solución (IPC): En lugar de guardar la imagen completa de la segunda ventana, solo guardas una nota que dice: "Copia la ventana de la izquierda y muévela 50 píxeles a la derecha".
  3. El vector de desplazamiento (DV): Ese "50 píxeles a la derecha" es lo que llaman Vector de Desplazamiento.

El Gran Problema: Buscar la coincidencia perfecta

El problema es que la computadora tiene que buscar dónde está esa ventana idéntica. Tiene que mirar millones de lugares posibles en la imagen para encontrar el mejor "movimiento".

Hacer esto en un chip de computadora es como pedirle a un niño que busque una aguja en un pajar, pero tiene que revisar cada paja individualmente antes de poder decirte dónde está la aguja. Es un trabajo tan pesado y lento que, hasta ahora, era muy difícil hacerlo en tiempo real con hardware (chips físicos) sin que se calentara o se volviera lento.

La Solución de los Autores: Una Fábrica de Ensamblaje

Los autores de este artículo (del Instituto de Ciencia y Tecnología de China) diseñaron un chip especial (llamado FPGA) para hacer este trabajo de búsqueda mucho más rápido y eficiente.

Aquí te explico sus dos grandes ideas con analogías simples:

1. La Línea de Ensamblaje (Arquitectura Pipelined)

Antes, la computadora buscaba una coincidencia, la terminaba, y luego empezaba la siguiente. Era como un solo trabajador que pintaba una pared, se secaba las manos, y luego pintaba la siguiente.

Ellos diseñaron una línea de ensamblaje de 4 etapas.

  • Imagina una cinta transportadora.
  • En la etapa 1, un trabajador mide la diferencia.
  • En la etapa 2, otro calcula el costo.
  • En la etapa 3, otro compara.
  • En la etapa 4, otro elige la mejor opción.
  • La magia: Mientras el trabajador 4 elige la mejor opción para la ventana A, el trabajador 1 ya está midiendo la ventana B. ¡Todos trabajan al mismo tiempo! Esto hace que el proceso sea muchísimo más rápido.

2. El Organizador de Librería (Memoria Optimizada)

Imagina que tienes que buscar libros en una biblioteca.

  • El método antiguo (Método 0): Los libros estaban ordenados por fecha de publicación en todo el edificio. Si querías todos los libros de "Historia", tenías que caminar por todo el edificio, subir escaleras y bajar otras, buscando en estantes dispersos. Era un caos y muy lento.
  • El nuevo método (Método 1): Los autores reorganizaron la biblioteca. Ahora, todos los libros de "Historia" están juntos en un solo estante, y todos los de "Ciencia" en otro.
  • En términos técnicos, en lugar de guardar los datos de la imagen por "cuadrantes grandes" (precintos), los guardaron agrupados por el tipo de patrón que necesitan buscar. Esto permite que el chip lea la información de un solo tirón, como si fuera un tren que pasa por una estación sin frenar, en lugar de un coche que tiene que parar en cada semáforo.

¿Qué lograron?

Gracias a esta "línea de ensamblaje" y a esta "nueva organización de la biblioteca":

  • Velocidad: Pueden procesar 38.3 millones de píxeles por segundo. ¡Es increíblemente rápido!
  • Energía: Consumen muy poca energía (como una bombilla pequeña de 277 miliwatios), lo cual es vital para dispositivos portátiles o centros de datos que no quieren gastar una fortuna en electricidad.
  • Futuro: Han demostrado que es posible poner esto en un chip real. Esto significa que pronto podríamos tener pantallas, cámaras y sistemas de video que usen esta tecnología para ser más rápidos y claros, sin necesidad de computadoras gigantescas.

En resumen: Crearon un "cerebro" de hardware especializado que busca patrones repetidos en las imágenes de forma súper rápida y ordenada, permitiendo que las imágenes de pantalla se envíen casi al instante sin perder calidad.