JPEGDEC VS picojpeg

Compare JPEGDEC vs picojpeg and see what are their differences.

JPEGDEC

An optimized JPEG decoder for Arduino (by bitbank2)

picojpeg

picojpeg: Tiny JPEG decoder for 8/16-bit microcontrollers (by richgel999)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
JPEGDEC picojpeg
5 2
347 71
- -
7.8 0.0
about 2 months ago about 2 years ago
C C
Apache License 2.0 -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

JPEGDEC

Posts with mentions or reviews of JPEGDEC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-08.
  • karpathy/llm.c
    10 projects | news.ycombinator.com | 8 Apr 2024
  • Family Photos vs 256 Kb RAM
    5 projects | news.ycombinator.com | 2 Jun 2023
    It takes some time to decode, but I can grab- for example- this 259k JPEG: http://placekitten.com/3840/2160

    And display it from the microSD card with this code: https://gist.github.com/Gadgetoid/0b8e352e377135d743338c9483...

    As more or less demonstrated by this example: https://github.com/pimoroni/pimoroni-pico/blob/main/micropyt...

    Decoding is done via Larry Bank's JPEGDEC: https://github.com/bitbank2/JPEGDEC

    It uses roughly 20k RAM to provide the necessary buffers both for decoding JPEGs into blocks which are passed to a drawing routine that handles copying the data into the display RAM buffer (on our larger Inky display this is backed by PSRAM). I don't believe there's a hard limit to the size of the JPEGs you can display. The main bottlenecks are decoding time and the relatively limited scaling options: FULL, HALF, QUARTER, EIGHTH.

    This aside, the authors solution is actually quite elegant. As long as you have control over the image pipeline there's no real reason to encumber the device with handling large (both in bytes and pixel dimensions) files. You'll also get much better dithering results writing your own routine to convert files from JPG to the raw 4-bits per pixel format for the display. Our built-in dithering is just a plain ordered dither matrix and, while quaint and retro, it leaves much to be desired visually.

    If you're trying to use a public API you can also make GitHub actions automate the whole image conversion process and publish the results to GitHub pages. This works great for, for example, the daily XKCD, serving both to reformat the strip for the display, credit the author, extract the "alt" text and avoid excess requests to the origin. Eg: https://pimoroni.github.io/feed2image/xkcd-800x480-daily.jpg. Though the astute will notice I still opted for jpeg in this case.

  • Making a tiny video player using an ESP32 programmed in Arduino. Managed to fit all of the components into a tiny space and am about to order my PCBs. Wish me luck!
    2 projects | /r/arduino | 10 Feb 2022
    I'm doing the same thing with MJPEG and the JPEGDEC library https://github.com/bitbank2/JPEGDEC. I preprocess the video using ffmpeg to scale the video down to 240x240 and remove the compression.

picojpeg

Posts with mentions or reviews of picojpeg. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-08.
  • karpathy/llm.c
    10 projects | news.ycombinator.com | 8 Apr 2024
    Most modern A/V codecs won't fit in that limit by several orders of magnitude.

    Even standard-compliant JPEG decoder would be hard to squeeze without some serious codegolfing. Discarding some barely used features gets you close to that limit, though [1].

    Smallest popular TCP/IP stack [2] is ~20kLoC.

    [1] https://github.com/richgel999/picojpeg

    [2] https://savannah.nongnu.org/projects/lwip/

  • Image array into ESP32
    5 projects | /r/FastLED | 11 Feb 2021
    Your imagetwo[] is a JPEG file. You are displaying the raw JPEG data on the LEDs. It needs to be decoded first. Maybe you could use picojpeg to decode it.

What are some alternatives?

When comparing JPEGDEC and picojpeg you can also consider the following projects:

ReflectionsOS - Reflections is a hardware and software platform for building entertaining mobile experiences.

scintillating_heatshrink - Converts animated GIFs to a custom format for playback on microcontrollers

pimoroni-pico - Libraries and examples to support Pimoroni Pico add-ons in C++ and MicroPython.

OneBitDisplay - A full featured Arduino display library for 1-bit per pixel OLED, LCD and e-paper displays