Google’s Jpegli open-source library can compress high quality images 35% more than traditional JPEG codecs

Jpegli ELO score vs other JPEG libraries

Google has released the Jpegli open-source library for advanced JPEG coding that maintains backward compatibility while delivering an up to 35% compression ratio improvement at high-quality compression settings. Google Research has been working on improving the compression of data (Brotli), audio (e.g. Lyra V2), and images with a project such as WebP for many years in order to speed up the web and make it consume less bandwidth for dollar savings and lower carbon emissions.  Jpegli is their latest project and aims to improve the compression ratio of legacy JPEG files on systems were modern compression such as WebP may not be available or desirable. Jpegli highlights: Support both an encoder and decoder complying with the original JPEG standard (8-bit) and offering API/ABI compatibility with libjpeg-turbo and MozJPEG. Focus on high-quality results with up to 35% better compression ratio. Just as fast as libjpeg-turbo and MozJPEG. Support for 10+ bits […]

Beken BK7256 320 MHz dual-core RISC-V IoT MCU offers WiFi 6, Bluetooth 5.2, JPEG video encoder/decoder

Beken BK7256 development board

Until now, I had only heard about Beken Bluetooth audio chips, but I’ve just been informed the company is also making WiFi chips such as the BK7256 that are notably found in some Tuya Smart Home modules. Beken offers both RISC-V and Arm WiFi and Bluetooth chips with features summarized as follows: BK7235 single-core RISC-V MCU up to 320 MHz with 2.4 GHz WiFi 6 802.11ax and Bluetooth 5.2 LE, 4MB flash, 512KB SRAM, optional 4MB PSRAM BK7236 dual-core Arm MCU up to 120 to 240 MHh with 2.4 GHz WiFi 6 802.11ax and Bluetooth 5.3 dual mode, 4MB flash, 512KB SRAM, optional 4MB PSRAM BK7237 dual-core RISC-V MCU up to 320 MHz with 2.4 GHz WiFi 6 802.11ax and Bluetooth 5.2 dual mode, 4 or 8MB flash, 512KB SRAM, optional 4MB PSRAM BK7256 dual-core RISC-V MCU up to 320 MHz with 2.4 GHz WiFi 6 802.11ax and Bluetooth 5.2 […]

JPEGDEC is a Faster JPEG Arduino Library Designed for 32-bit MCUs

In order to ensure software compatibility, Arduino libraries are supposed to work on various types of hardware from 8-bit microcontrollers with a limited amount of memory to more powerful 32-bit chips like STM32 Arm Cortex-M MCU or ESP32 dual-core Tensilica WiSoC that can access a larger amount of RAM. This is all good, but in some cases, this may affect performance. Larry Bank noticed this when looking for a JPEG viewers for Arduino and only found ones which sacrificed speed to work on MCUs with very little RAM. So he started to work on JPEDDEC JPEG Arduino library optimized for speed and compatible with any MCU with at least 20K of RAM. Optimizations go beyond just loading more data into memory, as Larry explains in a blog post, the library also performs the removal of stuffed bytes, optimize the Huffman decode and DCT parts, and more. Some of the key […]

Google Pik Image Format Improves on Lossy JPEG and Lossless PNG

Google Pik butteraugli

JPEG lossy compression is still used on most photos in the Internet, while PNG is still the preferred format for lossless compressions. Back in 2010, Google unveiled WebP to improve on both, but that’s only very recently that I started to see a few webp image on the Internet. The company has been working on yet another image for with Pik lossy/lossless image format designed for high quality and fast decoding. Some of the features enabling high quality: Built-in support for psychovisual modeling via adaptive quantization and XYB color space 4×4..32×32 DCT, AC/DC predictors, chroma from luma, nonlinear loop filter, enhanced DC precision Full-precision (32-bit float) processing, plus support for wide gamut and high dynamic range Features allowing faster decoding over 1 GB/s multi-threaded: Parallel processing of large images SIMD/GPU-friendly, benefits from SSE4 or AVX2 Cache-friendly layout Fast and effective entropy coding: context modeling with clustering, rANS Google Pik is […]

Optimizing JPEG Transformations on Qualcomm Centriq Arm Servers with NEON Instructions

Arm servers are already deployed in some datacenters, but they are pretty new compared to their Intel counterparts, so at this stage software may not always be optimized as well on Arm as on Intel. Vlad Krasnow working for Cloudflare found  one of those unoptimized cases when testing out Jpegtran – a utility performing lossless transformation of JPEG files – on one of their Xeon Silver 4116 Server:

and comparing it to one based on Qualcomm Centriq 2400 Arm SoC:

Nearly four times slower on a single core. Not so good, as the company aims for at least 50% of the performance since the Arm processor has double the number of cores. Vlad did some optimization on The Intel processor using SSE instructions before, so he decided to look into optimization the Arm code with NEON instructions instead. First step was to check which functions may slowdown the […]

Google Releases Guetzli Open Source JPEG Encoder Generating 20 to 35% Smaller Files Compared to Libjpeg

Google has been working one several front to make data and images smaller, hence faster to load from the Internet, with project such as Zopfli algorithm producing smalled PNG & gzip files, or WebP image compression algorithm that provides better lossless compression compare to PNG, and better lossy compression compared to JPEG, but requires updated support from clients such as web browsers. Google has now released Guetzli algorithm that improve on the latter, as it can create JPEG files that are 20 to 35% smaller compared to libjpeg with similar quality, and still compatible with the JPEG format. The image above shows a close up on a phone line with the original picture, the JPEG picture compressed with libjpeg with the artifacts around the line, and a smaller JPEG picture compressed with Guetzli with less artifacts. You can find out more about the algorithm in the paper entitled “Guetzli: Perceptually […]

Lepton Image Compression Achieves 22% Lossless Compression of JPEG Images (on Average)

Dropbox stores billions of images on their servers, most of them JPEGs, so if they can reduce the size of pictures it can have a big impact on their storage requirements, so the company developed Lepton image compression, which – on average – achieved 22% lossless compression on the images stored in their cloud. Compression and decompression speed is also important, since the files are compressed when uploaded and uncompressed on the fly when downloaded so that the complete process is transparent to the end users, who only see JPEG photos, and the company claims 5MB/s compression, and 15MB/s compression, again on average. The good news is that the company released Lepton implementation on Github, so in theory it could also be used to increase the capacity of NAS which may contain lots of pictures. So I’ve given it a try in a terminal window in Ubuntu 14.04, but it […]

FLIF Lossless Image Format Claims to Outperform PNG, JPEG2000, WebP, and BPG

FLIF, which stands for Free Lossless Image Format, is a new lossless image format that is said to provide better compression ration than PNG, lossless JPEG2000, lossless WebP, and lossless BPG for all king of images including medical images, geographical maps, cliparts and so on. Beside being lossless, FLIF is also progressive, so a lower quality version of the image can be displayed early while the download is still in progress. The developer has uploaded a video comparing how a PNG image and FLIF image would load in a slow network. Other FLIF features include: Lossless compression Greyscale, RGB, RGBA Up to 16 bits color depth per channel (high dynamic range) Interlaced (default) or non-interlaced Animation support “Encoding and decoding speeds are not blazingly fast, but they are in the right ballpark” Based on MANIAC (Meta-Adaptive Near-zero Integer Arithmetic Coding) algorithm developed by Jon Sneyers and Pieter Wuille. (However details […]