libjpeg-turbo 3.2 beta1 has been released

0 views
Skip to first unread message

DRC

unread,
Mar 27, 2026, 6:20:25 PM (14 days ago) Mar 27
to libjpeg-t...@googlegroups.com, libjpeg-t...@googlegroups.com, libjpeg-tur...@googlegroups.com
Major new features
==================

* RISC-V Vector (RVV) SIMD extensions

- ~3X faster baseline compression and ~2X faster baseline
decompression on average

* Complete support for PNG images in cjpeg, djpeg, tj3LoadImage*(), and
tj3SaveImage*(), including ICC profile transfer

* Java Native Access (JNA) wrapper for the TurboJPEG API, including
example programs

* Streamlined and modernized SIMD dispatcher architecture (to facilitate
adding new SIMD extensions)

* Low-level JPEG algorithm benchmark (to facilitate adding new SIMD
extensions and optimizing existing ones)

* Explicit support for 4:1:0 (4x2) and 2:4 (2x4) subsampling in the
TurboJPEG API


Moved or removed features
=========================

* Moved: The TurboJPEG Java API has been moved to a dedicated repository
(https://github.com/libjpeg-turbo/turbojpeg-java) where
it can evolve independently of the TurboJPEG C API based on demand.

- A companion 3.2 beta1 release exists under that repository
(https://github.com/libjpeg-turbo/turbojpeg-java/releases/tag/3.1.90
), although it includes only integration changes relative to the
TurboJPEG Java API in libjpeg-turbo 3.1.4.

* Removed: GNU Assembler (GAS) fallback code for the Arm Neon SIMD
extensions

- Arm builds of libjpeg-turbo must now use GCC 12 or later or Clang
for optimal performance.

* Removed: MIPS DSPr2 SIMD extensions

- See change log for justifications.


Binaries, source tarball, and change log
========================================

https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/3.1.90


Funding
=======

This release would not have been possible without generous grants from
FLOSS/fund and MathWorks. However, due to unforeseen difficulties with
the aforementioned features, I still had to borrow against about a year
of expected monthly donations. If you were thinking of making a
one-time donation to our project, now would be the time:

https://github.com/sponsors/libjpeg-turbo

Barring sufficient funding to shore up the deficit, I will be unable to
consider any new features until well into 2027. If this sounds
familiar, it is. It happens with every new release series.
libjpeg-turbo is a complex and mission-critical code base based on a
35-year-old overly exposed API, so the number of unforeseen difficulties
is proportional to the number of touch points in the new release series.
The more changes I try to include in a new release series, the more
unfunded labor I have to include as well.

In the past, I have expounded upon this to the point of exhaustion,
which is very much where I am now. The hundreds of hours I have spent
on this release in the past few months have taken their toll on me
professionally and personally. Enjoy the new bits, but please remember
that there is a human being behind them. That human being cannot be all
things to all people, and neither can libjpeg-turbo. The best thing you
can do to help is to donate, even if it's just $5.

DRC
Reply all
Reply to author
Forward
0 new messages