JPEGDEC es una biblioteca JPEG Arduino más rápida diseñada para MCU de 32 bits - Calendae - Calendae | Informática, Electrónica, CMS, Ciberseguridad

JPEGDEC es una biblioteca JPEG Arduino más rápida diseñada para MCU de 32 bits – Calendae

Hola otra vez. En el teclado Jordi Oriol y en el día de hoy te voy a contar sobre JPEGDEC es una biblioteca JPEG Arduino más rápida diseñada para MCU de 32 bits – Calendae

Para la mayoría de los desarrolladores de firmware y aficionados, que han tenido que escribir firmware para proyectos que implican ver archivos JPEG en una pantalla LCD con un Arduino, una cosa que viene a la mente de inmediato es el desorden de las bibliotecas y la baja velocidad con qué imágenes se muestran. Si bien la velocidad generalmente se debe a la poca memoria y la velocidad de procesamiento de los microcontroladores en uso (microcontroladores de 8 bits), el desorden suele ser el resultado de los esquemas y trucos que se han adoptado para lograr un mejor rendimiento con MCU de bajo rendimiento. pantalla jpeg.

Aunque las cosas han mejorado en los últimos tiempos, con MCU de 32 bits de alto rendimiento con mayor RAM y velocidades de procesamiento ahora disponibles, ha habido poco o ningún cambio en la eficiencia / rendimiento de las bibliotecas Jpeg. Para garantizar que el cambio y el crecimiento también se experimenten con las bibliotecas, el especialista en optimización de software, Larry Bank, ha decidido recientemente dar a las bibliotecas el rediseño necesario mediante el lanzamiento de su nueva biblioteca: la Biblioteca JPEGDEC.

La nueva biblioteca que atiende a Corteza-M0 + procesadores o cualquier chip con un mínimo de 20Kb de RAM está diseñado para hacer que los archivos JPEG se muestren más rápido en tarjetas basadas en Cortex-M0 +, o cualquier chip con un mínimo de 20K de RAM (requisitos mínimos), sin sacrificar la memoria de las tablas de velocidad.

Reconociendo la existencia previa de varias bibliotecas JPEG para Arduino, incluidas las escritas por él, Larry, mientras compartía la razón detrás de la nueva biblioteca en una publicación de blog reciente, mencionó la existencia de más poder de procesamiento en MCU como factor motivador para el desarrollo. Dijo que, si bien es posible decodificar archivos JPEG pieza por pieza con un código inteligente en las condiciones que presentan los sistemas de 8 bits, es posible ir mucho más rápido cuando se tiene un poco más de margen, y esta nueva biblioteca simplemente estaba haciendo eso. , desde eliminar comprobaciones de marcadores innecesarias hasta ignorar datos innecesarios para reducir las salidas, todo junto para proporcionar un resultado más rápido.

Las características más destacadas de la nueva biblioteca, como señaló Larry, incluyen:

  • Admite cualquier MCU con al menos 20K de RAM (Cortex-M0 + es el más simple que he probado)
  • Optimizado para velocidad; la principal limitación será la velocidad a la que puede copiar píxeles en la pantalla. Puede utilizar SPI asistido por DMA para ayudar.
  • Los datos de imágenes JPEG pueden provenir de la memoria (FLASH / RAM), la tarjeta SD o cualquier medio proporcionado.
  • El diseño simple, elegante y de devolución de llamada le permite agregar fácilmente compatibilidad con JPEG a cualquier aplicación.
  • El código C que hace el trabajo pesado es completamente portátil y no tiene dependencias externas.
  • Incluye opciones de reducción de escala rápida (1/2, 1/4, 1/8).
  • Incluye la opción de detectar y decodificar la miniatura Exif incorporada
  • Admite imágenes básicas de Huffman (escala de grises o YCbCr)
  • Incluye difuminado Floyd-Steinberg opcional en una salida en escala de grises de 1, 2 o 4 bpp; útil para vistas de papel electrónico

La biblioteca ya ha sido objeto de burlas por varios colaboradores destacados de la comunidad, como Paul Stoffregen quien hizo un video de Youtube para demostrar el desempeño de la biblioteca. El propio Larry también desarrolló un boceto de prueba de referencia que muestra el rendimiento de la biblioteca en diferentes plataformas de desarrollo.

Puede encontrar más información sobre la biblioteca y su rendimiento en el Página de Github del proyecto.

Puedes compartir en en tu Twitter y Facebook para que tus colegas lo lean

??? ? ? ???

Comparte