Skip to content

Releases: bitbank2/JPEGDEC

Added HTTP Stream API and indicator of clipped MCUs to draw callback

14 Dec 16:42
1bb8f16
Compare
Choose a tag to compare

This release adds the open() method to work with streams and provides a new variable to the JPEGDRAW callback (iWidthUsed). For images which are not an exact multiple of MCUs wide, this variable allows you to know when to clip columns off the right edge, but doesn't change the bytes-per-line behavior of the output pixels. For example, if a non-subsampled color image is 33 pixels wide, the JPEGDraw callback will provide strips of pixels 40 wide (5 x mcu width 8). For the call containing the right edge, the iWidthUsed variable will be different from the iWidth variable to alert you of pixels to be clipped.

Added context/user pointer to draw callback

22 Jul 10:42
bb221e8
Compare
Choose a tag to compare

This release adds the ability to have a user-supplied context pointer passed to the JPEGDRAW callback function.

esp32_demo fix

26 Sep 21:51
8ad3a9c
Compare
Choose a tag to compare

This release fixes a problem with the decoder comparing the output Y value with the current Y when there is a starting offset. It also updates the esp32_demo sketch to reflect the changes to both the bb_spi_lcd library and JPEGDEC.

Fixed dither output buffer

01 Sep 12:46
0b850bc
Compare
Choose a tag to compare

This release fixes the memory management when using decodeDither(). The output pixels are now passed in the JPEGDRAW callback directly in the buffer given to JPEGDEC for processing the dithered pixels. Previously the regular pixel buffer was used and this caused a memory overflow for wide images. This change ensures that there will be enough memory for decoding and dithering any size image.

Bug fixes for scaling by 1/2

11 Jun 14:55
Compare
Choose a tag to compare

This release fixes 3 specific errors:

  1. Scaling 4:2:0 images by 1/2 for RGB565 output
  2. Scaling grayscale images by 1/2 for RGB565 output
  3. Extra pixel rows drawn for images which aren't an even multiple of MCU size

Cortex-M4 SIMD

26 May 01:11
Compare
Choose a tag to compare

This release adds some Cortex-M4/M7 SIMD instructions to speed up the YCbCr->RGB pixel conversion function. This can speed up overall decode by up to 10%. As of this writing, the code is used on Arduino Nano 33 BLE and the Adafruit SAMD boards, but the build environment of Teensyduino doesn't have the required include files which defined the SIMD macros.

Fix FS.h error and add early exit option to DRAW callback

20 Dec 20:26
a7309b8
Compare
Choose a tag to compare

This release adds the ability to cleanly stop decoding an image at an arbitrary point of the decode. Let's say that an image is too large for your display and only a portion can be displayed; the DRAW callback can now return 0/false to indicate that decoding should stop.

Also in this release is a compiler fix for ESP32 relating to the inclusion of FS.h for SD card access

Fixed decoding error

17 Sep 21:26
244dc8d
Compare
Choose a tag to compare

There would sometimes occur decoding errors because the initial filling of the read buffer wasn't complete, so the check for the high water mark would not see that more data was needed until it was too late. This release fixes the problem.

Dithered output

03 Sep 03:18
71412da
Compare
Choose a tag to compare

This release includes a new feature which should be useful for displaying JPEG images on e-paper displays. You can now select Floyd-Steinberg dithering down to 1, 2 or 4-bits per pixel. I tried to fit it in the existing memory, but it wouldn't work. You must provide a temporary buffer for it to hold the dithered results. Please see the wiki for more details.

Added missing 8-bit output code

28 Aug 22:32
015c7d0
Compare
Choose a tag to compare

The various color subsampling options were not fully fleshed out for 8-bit grayscale output.