Fact-checked by Grok 2 weeks ago

libjpeg

Libjpeg is a written in for handling JPEG image data, providing comprehensive functions for encoding, decoding, and images according to the JPEG compression standard. Developed and maintained by the Independent JPEG Group (IJG), an informal collective of volunteers, it serves as a foundational for JPEG support in software applications worldwide. First released on October 7, 1991, libjpeg has become one of the most widely adopted libraries for JPEG processing due to its stability, portability across platforms, and adherence to the ISO/IEC 10918 JPEG standard without proprietary extensions. The library originated in the early 1990s amid the rapid adoption of , with key contributions from developers including Tom Lane, who led much of its implementation during that decade. Unlike optimized variants such as libjpeg-turbo, which accelerate performance using SIMD instructions, the core libjpeg emphasizes correctness and full compliance as a baseline , supporting features like progressive JPEG, , and hierarchical modes while avoiding hardware-specific tweaks. Its modular design includes utilities for error handling, color space conversions (e.g., RGB to ), and , making it suitable for integration into diverse environments from desktop applications to systems. Over its more than three decades of development, libjpeg has seen regular updates to address security vulnerabilities, improve efficiency, and incorporate minor standard clarifications, with the latest version, 9f, released on January 14, 2024. The IJG explicitly states that libjpeg is not affiliated with official JPEG standardization bodies like ISO/IEC JTC1/SC29/WG1 or SG16, positioning it as an independent effort focused on practical software rather than formal specifications. This has fostered a of derivatives and ports, but the original library remains the for JPEG interoperability in open-source projects.

Introduction

Origins and Development

libjpeg was founded by Tom Lane on October 7, 1991, as the inaugural software release of the Independent JPEG Group (IJG), aimed at developing a free, open-source codec for the image compression standard. This initiative emerged in the context of the early computing landscape, where the newly standardized format lacked widely accessible, non-proprietary tools for implementation, prompting the need for an independent, royalty-free library to support broader adoption. The IJG operated as an informal volunteer group dedicated to creating a high-quality, patent-free implementation of the JPEG standard, carefully avoiding encumbered technologies such as to ensure legal usability without licensing fees. By focusing on the core (DCT)-based methods defined in ISO/IEC 10918-1, the group produced libjpeg as a reference library that prioritized fidelity to the standard while enabling developers to integrate JPEG functionality into applications without proprietary dependencies. Leadership within the IJG transitioned in 2005 when Tom Lane handed over direction to Guido Vollbeding, who had contributed to JPEG-related work since and continued to guide the project's evolution into the late 2000s. This shift marked a new phase for the group, sustaining its commitment to maintaining libjpeg as an essential, open resource for JPEG processing amid growing demands.

Purpose and Core Functionality

Libjpeg serves as a free, open-source C library developed by the Independent JPEG Group (IJG) for encoding and decoding -compressed image files, primarily targeting full-color and grayscale images of real-world scenes. It implements the core codec according to subsets of the ISO/IEC 10918-1 standard, including baseline (sequential DCT-based), extended-sequential, and progressive modes, enabling that achieves high efficiency for photographic content while supporting formats like JFIF. The library's core revolves around straightforward functions for and , allowing applications to read and write files directly. For encoding, developers initialize a compression object with jpeg_create_compress(), set parameters, start the process via jpeg_start_compress(), supply scanlines using jpeg_write_scanlines(), and finalize with jpeg_finish_compress(). follows a similar pattern: jpeg_create_decompress() creates the object, jpeg_read_header() parses the file header, jpeg_start_decompress() prepares output, jpeg_read_scanlines() retrieves decompressed data, and jpeg_finish_decompress() cleans up. Key parameters include quality levels on a scale of 1 to 100, adjustable via jpeg_set_quality() to balance file size and visual fidelity, and handling supporting input/output formats such as RGB, , (with options like 4:2:2 or 4:2:0), CMYK, and YCCK, configured through in_color_space and out_color_space fields. The also accommodates data precision variants, defaulting to 8 bits per channel but extending to 12-bit (jpeg12_* functions, supporting both lossy and lossless modes) and 16-bit (jpeg16_* functions, for lossless modes only). In implementing the JPEG algorithm, libjpeg applies the (DCT) to 8x8 blocks of image data for frequency-domain representation, with selectable methods including the accurate but slower JDCT_ISLOW (default DCT), the faster approximate JDCT_IFAST, or floating-point JDCT_FLOAT for precision-sensitive applications. Quantization follows, using or custom tables defined via jpeg_add_quant_table() or automatically scaled by the quality setting, which derives and tables to control aggressiveness. Entropy coding employs Huffman encoding with predefined tables for baseline and extended modes, or optimized variable-length codes when optimize_coding is enabled, ensuring efficient bitstream generation. These steps handle color conversion, during , and on decompression to maintain compatibility across color spaces. Error handling in libjpeg is managed through a customizable jpeg_error_mgr structure, where applications can override default behavior—such as printing warnings or errors to stderr followed by program exit on fatal issues—to implement or logging as needed. For JPEGs, the library supports incremental loading via buffered-image mode (cinfo.buffered_image = TRUE), allowing partial and through sequences of jpeg_start_output(), jpeg_read_scanlines(), and jpeg_finish_output(), which process scans in passes for low-resolution previews or adaptive rendering. mechanisms, signaled by return values like JPEG_SUSPENDED, enable handling of interruptions, such as in memory-constrained or streaming environments.

Utilities

Compression and Decompression Tools

libjpeg provides two primary command-line utilities for basic JPEG compression and decompression: cjpeg and djpeg. These tools facilitate the of images between and other common formats like , , , , and Targa, serving as practical interfaces to the library's core encoding and decoding functions. The cjpeg program compresses input images from supported non-JPEG formats into output, directing the result to standard output or a specified file. It accepts inputs in (Portable Pixmap), (Portable Graymap), (Windows ), or Targa formats, with automatic detection in most cases. Key parameters include -quality N (where N ranges from 0 to 100, defaulting to 75), which controls the by adjusting quantization levels; values between 50 and 95 typically yield visually lossless results, while lower values produce smaller files with more artifacts. Sampling factors can be set via -sample HxV[,...], allowing users to specify horizontal (H) and vertical (V) subsampling ratios for color components (e.g., -sample 2x1,1x1,1x1 for standard 4:2:2 ), which influences and . Output file sizing is managed through these options alongside optimization (-optimize), which reduces at the cost of encoding time. A typical usage example is cjpeg -quality 75 input.ppm > output.jpg, which compresses a file at 75% and redirects the output to a file; errors, such as invalid input formats, are reported to for debugging. The djpeg utility decompresses JPEG input files, producing output in formats such as , , , or Targa, with the default being PNM (Portable Anymap, encompassing and ). It supports via -scale M/N (e.g., -scale 1/2, -scale 1/4, or -scale 1/8), which reduces output by factors of 8 for on lower- displays or faster processing. Color output adjustments include -grayscale to force conversion, suitable for displays, and -rgb to output in RGB without YCbCr transformation. For palette-limited outputs, -colors N (or legacy -quantize N) reduces the image to at most N colors, with dithering options like -dither fs (Floyd-Steinberg, default) to mitigate banding. An example command is djpeg -[scale](/page/Scale) 1/2 -[grayscale](/page/Grayscale) input.jpg > output.pgm, which halves the resolution and converts to ; as with cjpeg, any decompression errors (e.g., corrupted JPEG data) are printed to .

Transformation and Metadata Tools

The libjpeg distribution includes utilities designed for non-destructive manipulation of existing JPEG files, allowing users to perform transformations and manage metadata without introducing additional compression artifacts. These tools operate on the encoded JPEG data directly, preserving the original image quality by avoiding full decompression and re-encoding cycles. Primary among them is jpegtran, which enables a range of lossless operations, while rdjpgcom and wrjpgcom handle textual comments embedded in JPEG files. jpegtran, introduced in libjpeg version 6 released on August 2, 1995, facilitates lossless transformations such as by 90, 180, or 270 degrees, or vertical , cropping to arbitrary regions, and scaling using the JPEG SmartScale extension. These operations rearrange the (DCT) coefficients and header information within the file, ensuring no in fidelity beyond the original . For instance, rotating an by 90 degrees transposes the coefficient blocks without altering their values, making it suitable for of photo libraries. The tool also supports conversion between JPEG variants, such as from to encoding, further optimizing file structure without quality degradation. Key options in jpegtran enhance its utility for optimization and precision. The -optimize flag recomputes and applies optimal tables to reduce , potentially achieving gains of 5-20% on average without affecting the decoded . Meanwhile, the -perfect option enforces exact lossless crops by verifying that the selected aligns with the DCT block boundaries, preventing any artifacts that could arise from misaligned extractions. Users invoke jpegtran via command-line syntax like jpegtran -rotate 90 input.jpg > output.jpg, making it integrable into scripts for automated workflows. These features position jpegtran as a for post-processing JPEGs in applications like . Complementing jpegtran, rdjpgcom and wrjpgcom provide straightforward handling of (JFIF) comments, which are optional text fields up to 64KB in length. rdjpgcom extracts and displays these comments from a specified , using syntax such as rdjpgcom image.jpg, outputting the text verbatim to standard output for review or logging. Conversely, wrjpgcom inserts user-provided text into a , appending it as a new COM marker segment if existing comments are present, with invocation like wrjpgcom -i image.jpg < comment.txt > output.jpg. These tools are essential for embedding descriptive information, such as authorship or captions, without altering the data itself.

Version History

Early Development and Releases

The early development of libjpeg was driven by the Independent JPEG Group (IJG), which released its first version on October 7, 1991, establishing a foundational C library for JPEG compression and decompression. Versions 1 through 4, spanning 1991 to 1993 with the last major update in version 4A on February 18, 1993, served as initial prototypes that concentrated on baseline sequential JPEG support, enabling basic encoding and decoding of images while adhering to the core JPEG standard for lossy compression. These releases laid the groundwork for portable JPEG handling in applications, emphasizing reliability over advanced features, though they lacked extensive optimizations and utilities seen in later iterations. A significant milestone came with version 5 on September 24, 1994, which involved a comprehensive rewrite of the to enhance and , incorporating automatic scripts, configurable speed-quality tradeoffs, and support for output . This version introduced the rdjpgcom and wrjpgcom utilities for extracting and inserting text comments into files, improving management without altering image data. Version 6, released on August 2, 1995, expanded capabilities with support for progressive encoding and decoding, allowing images to load incrementally for better display, alongside a new buffered-image mode for flexible memory usage. It also debuted the jpegtran utility for lossless , such as converting baseline JPEGs to progressive ones without re-encoding the image data, which streamlined format transformations. The final early release, version 6b on March 27, 1998, extended jpegtran's functionality to include lossless operations like , flipping, and cropping, as well as conversions between color spaces such as RGB to , while adding options for selective marker copying to preserve during transformations. These enhancements solidified libjpeg as a versatile toolset before a long development hiatus, with version 6b remaining a stable reference for years.

Modern Releases and Changes

Following a decade-long hiatus in major releases, the Independent JPEG Group (IJG) resumed development under new leadership with Guido Vollbeding taking over maintenance responsibilities in 2009, enabling independent evolution of the library separate from earlier contributors like Thomas G. Lane. Version 7, released on June 27, 2009, marked this transition and introduced key enhancements, including support for as an alternative entropy encoding method compliant with the JPEG standard and lossless cropping functionality for extracting image regions without quality loss or re-compression. Subsequent releases from versions 8 (January 2010) through 9 (January 2013) intentionally broke (ABI) compatibility to enable performance optimizations and new features, such as improved handling and reversible transforms for in version 9. Later maintenance releases addressed security and compatibility issues; for instance, version 9e (January 16, 2022) incorporated fixes related to handling and quantization adjustments that mitigated potential risks in paths. Version 9f, released on January 14, 2024, added build support for alongside the existing configure system and extended builds to include the ARM64EC (Emulation Compatible) platform for hybrid environments on Windows. As of November 2025, no new IJG release has occurred since 9f, though downstream integrations continue to apply security patches.

Forks and Derivatives

libjpeg-turbo

libjpeg-turbo is a fork of the Independent JPEG Group's libjpeg library, initiated in early 2010 by The libjpeg-turbo Project to provide high-performance JPEG encoding and decoding through SIMD optimizations. It originated from enhancements to libjpeg/SIMD, an MMX-accelerated variant of libjpeg version 6b originally developed by Miyasaka Masaru, and was further refined by the TigerVNC and VirtualGL projects for remote display applications before becoming an independent effort. The project maintains drop-in compatibility with the original libjpeg API, ensuring seamless integration for existing applications while delivering significant speed improvements via SIMD instructions such as MMX, SSE2, AVX2 on x86/x86-64, NEON on ARM, and AltiVec on PowerPC. These optimizations target baseline JPEG compression and decompression, achieving 2-6x faster performance compared to the unaccelerated libjpeg on supported hardware. Key features include the TurboJPEG , a high-level wrapper that simplifies JPEG operations for , , and applications by handling and pixel format conversions, such as support for RGBX and XBGR colorspaces. Additionally, libjpeg-turbo offers compile-time support for 12-bit-per-sample JPEG encoding and decoding, extending beyond the standard 8-bit baseline to accommodate higher precision needs in professional imaging workflows. The library also incorporates optimized and progressive JPEG support on select architectures, balancing speed with compliance to JPEG standards. The release history of libjpeg-turbo has seen steady evolution, with version 3.1.1 released in June 2025, followed by 3.1.2 in September 2025, focusing on build improvements, SIMD enhancements, and fixes. In May 2025, a update addressed a heap-based buffer over-read vulnerability (CVE-2020-13790) in the reader, as detailed in Security Advisory RHSA-2025:7540, ensuring robustness in deployed systems. Earlier milestones include of libjpeg v7/v8 code while preserving the v6b core, and official recognition as a reference implementation by ISO/IEC and in 2019. libjpeg-turbo has achieved widespread adoption across operating systems and platforms, serving as the default JPEG library in since 2010 for its performance benefits in multimedia applications. It is integrated into the Project, accelerating JPEG handling in mobile graphics and camera pipelines. The library also underpins various tools and derivatives in the ecosystem, including YUM and APT repositories for easy deployment on distributions.

MozJPEG

MozJPEG is a of libjpeg-turbo developed by to optimize specifically for web use, emphasizing smaller file sizes without sacrificing compatibility with existing decoders. Forked on March 5, 2014, from libjpeg-turbo version 1.3, the project introduced techniques such as trellis quantization, which adaptively selects quantization levels to minimize while reducing file sizes by 10-18% on average compared to methods, and overshoot deringing (introduced in version 3.0), an algorithm that mitigates from overshooting pixels to further improve efficiency. These enhancements, combined with progressive encoding and jpegrescan for lossless optimization, achieve overall file size reductions of 10-20% for typical web images. The library extends standard JPEG profiles with web-oriented optimizations, including new quantization table presets and command-line options like -m for enabling MozJPEG-specific encoding modes that prioritize compression over speed. It maintains full API and ABI compatibility with libjpeg-turbo, allowing it to serve as a , and integrates seamlessly with tools such as in image optimization pipelines for handling mixed and workflows on the web. These features make MozJPEG particularly suitable for browser rendering scenarios, where reduced file sizes directly lower bandwidth usage and accelerate page load times without altering visual quality perceptibly. Development of MozJPEG continued through 2021, with key contributions like trellis quantization and deringing algorithms influencing broader JPEG tools; several of its innovations, including a version of trellis quantization, were later incorporated into libjpeg-turbo version 2.0 to enhance general-purpose compression. The project saw its final release, version 4.1.1, on August 15, 2021, after which maintenance ceased, reflecting Mozilla's shift in focus while leaving a lasting impact on web image optimization practices.

Jpegli

Jpegli is a JPEG coding library developed by and introduced on April 3, 2024, as a compatible alternative to traditional libjpeg implementations. It leverages advanced algorithms derived from to enhance efficiency while maintaining full with the original JPEG standard. Specifically, Jpegli achieves up to 35% better compression ratios for high-quality images compared to conventional JPEG codecs, without perceptible quality loss, by incorporating improved (DCT) methods and quantization techniques. At its core, Jpegli employs a butterfly DCT implementation, borrowed from , which enables more precise transformations through arithmetic of 10 to 12 bits per component within the 8-bit framework. This is complemented by adaptive quantization heuristics that reduce noise and optimize psychovisual quality, using floating-point precision for DCT, , and conversions. As a for libjpeg version 9, it offers and ABI compatibility with libjpeg62, allowing seamless integration into existing software without modifications. Additionally, it supports 16-bit unsigned and 32-bit floating-point input/output buffers, making it suitable for high-resolution imaging workflows. The library was open-sourced on under the Apache 2.0 license, with its repository hosted at https://github.com/google/jpegli, targeting deployment on modern hardware for accelerated performance. As of November 2025, no major updates or new releases have been issued since its initial launch, though ongoing discussions highlight its potential for broader integration into tools like PDF workflows and image editors. In February 2025, support for Jpegli was confirmed in PDF workflows, enabling reduced file sizes without requiring changes to reader software. Jpegli addresses longstanding limitations in original libjpeg by significantly reducing file sizes for high-resolution images, thereby improving storage and transmission efficiency in resource-constrained environments.

Standardization

ISO Adoption

Libjpeg implements the JPEG compression standard as defined in ISO/IEC 10918-1:1994 ( — Digital compression and coding of continuous-tone still images — Part 1: Requirements and guidelines), providing full compliance for encoding, decoding, and without proprietary extensions. Developed prior to the standard's finalization, libjpeg version 9 and later, starting with the 9a release in October 2013, achieve complete conformance to the ISO specification, including support for all mandatory modes such as baseline, extended sequential, progressive, lossless, and hierarchical . A derivative, libjpeg-turbo, based on earlier versions of libjpeg such as version 6b, was adopted in 2019 as one of the official reference implementations in ISO/IEC 10918-7:2019, the standard for JPEG reference software, following the 82nd JPEG meeting in , , in October 2018. The second edition of ISO/IEC 10918-7, published in 2021, refined the specifications while maintaining this role. The third edition, released in 2023, updated the reference software to version 1.65 for libjpeg-turbo and 2.1.3 for the committee's implementation. This positions libjpeg as the foundational compliant library, with its derivatives enhancing performance while upholding standard interoperability.

Reference Implementation Role

Libjpeg, developed by the Independent JPEG Group (IJG), serves as a de facto reference implementation for the JPEG compression standard (ISO/IEC 10918-1), providing a foundational codec for encoding, decoding, and transcoding JPEG images. Its version 9f, released on January 14, 2024, represents a fully compliant baseline, influencing decoder development across open-source and proprietary software ecosystems through its adherence to the standard's discrete cosine transform (DCT) and Huffman coding requirements. Libjpeg and its accelerated derivative, libjpeg-turbo, underpin JPEG support in major applications. For example, ImageMagick uses IJG's libjpeg for JPEG read/write operations, including colorspace handling and compression adjustments. GIMP depends on libjpeg for JPEG import/export, ensuring consistent handling of baseline and progressive streams. Web browsers like Chromium (used in Google Chrome and Edge) embed libjpeg-turbo for efficient JPEG decompression across architectures. Firefox employs libjpeg-turbo for fast JPEG rendering. The library's reach extends to language wrappers and platforms. Python's library supports libjpeg versions 6b through 9d and libjpeg-turbo up to version 8 for JPEG encoding, quality scaling, and metadata handling. integrates libjpeg-turbo for JPEG processing in BitmapFactory and media frameworks. Despite newer formats like offering better compression and speed, libjpeg remains essential for legacy JPEG due to its ubiquity and compatibility. As of 2025, updates focus on security; for instance, Red Hat's RHSA-2025:7540 advisory addressed vulnerabilities in libjpeg-turbo's image functions. Tools like Python's pylibjpeg provide secure interfaces for applications such as . JDK 8u461, released July 15, 2025, updated to libjpeg 9d for enhanced compliance in environments.

References

  1. [1]
    Independent JPEG Group
    IJG is an informal group that writes and distributes a widely used free library for JPEG image compression. The first version was released on 7-Oct-1991. The ...
  2. [2]
    libjpeg
    Libjpeg is a widely used C library for reading and writing JPEG image files. It was developed by Tom Lane and the Independent JPEG Group (IJG) during the 1990' ...
  3. [3]
    libjpeg-turbo/ijg: Reference repository for The Independent JPEG ...
    This package contains C software to implement JPEG image encoding, decoding, and transcoding. JPEG (pronounced "jay-peg") is a standardized compression method.
  4. [4]
    Directory Listing of /files
    ### Summary of libjpeg Releases (Version 7 to Latest)
  5. [5]
    [PDF] Happy Birthday JPEG! The most successful electronic image format ...
    When the Independent JPEG Group (IJG) released the first version of libjpeg, a reference library for. JPEG applications, on October 7th 1991, nobody had a rough ...
  6. [6]
    JPEG FAQ – JPEG Reference
    Libjpeg library is a product of the Independent JPEG Group (IJG). It was initially, in 1991, developed by this group (Tom Lane) following some proposals of ...
  7. [7]
    The JPEG patent - LWN.net
    Apr 28, 2004 · The Independent JPEG Group (IJG), responsible for widely-used JPEG ... JPEG specification due to patents owned by IBM, AT&T and Mitsubishi.
  8. [8]
    [PDF] LIBJPEG The Independent JPEG Group's JPEG software README ...
    Mar 27, 1998 · This distribution contains the sixth public release of the Independent JPEG Group's free JPEG software. You are welcome to redistribute this ...Missing: alternative 1990s<|control11|><|separator|>
  9. [9]
    cjpeg - man pages section 1: User Commands
    Jul 27, 2022 · cjpeg (1). Name. cjpeg - compress an image file to a JPEG file. Synopsis. cjpeg [ options ] [ filename ]. Description.
  10. [10]
    djpeg - man pages section 1: User Commands - Oracle Help Center
    Jul 27, 2022 · djpeg (1). Name. djpeg - decompress a JPEG file to an image file. Synopsis. djpeg [ options ] [ filename ]. Description.
  11. [11]
    [PDF] The Independent JPEG Group's JPEG Software (libjpeg) version 8c
    This package contains C software to implement JPEG image compression and decompression. JPEG (pronounced "jay-peg") is a standardized compression.
  12. [12]
    Changelog for libjpeg 9c - ABI laboratory
    New "jpegtran" application performs lossless transcoding between different JPEG formats; primarily, it can be used to convert baseline to progressive JPEG and ...<|control11|><|separator|>
  13. [13]
    jpegtran(1) — libjpeg-progs — Debian unstable
    jpegtran performs various useful transformations of JPEG files. It can translate the coded representation from one variant of JPEG to another, for example from ...
  14. [14]
    README file - CCP4
    User documentation: install.txt How to configure and install the IJG software. usage.txt Usage instructions for cjpeg, djpeg, jpegtran, rdjpgcom, and wrjpgcom.
  15. [15]
    jpegtran(1) - Linux man page
    `jpegtran` performs lossless transformations of JPEG files, such as translating between variants and rearranging data without decoding the image.
  16. [16]
    wrjpgcom(1) — libjpeg-progs — Debian unstable
    Feb 7, 2025 · wrjpgcom adds a COM block, containing text you provide, to a JPEG file. Ordinarily, the COM block is added after any existing COM blocks; but ...
  17. [17]
    Reference Sources – JPEG Reference
    Add build system for Xcode (beside configure). Add ARM64EC (Emulation Compatible) platform support in the. Visual Studio build. Version 9e 16-Jan-2022.
  18. [18]
    What About libjpeg v9?
    Dec 11, 2024 · libjpeg-turbo doesn't emulate v9 because its new features are not proven, lack standardization, and the project sees no technical justification ...Missing: 9f | Show results with:9f
  19. [19]
    [PDF] Know Your Library: How the libjpeg Version Influences ...
    Jun 28, 2022 · Different libjpeg versions produce different outputs for the same input, which can impact security applications like image forensics.
  20. [20]
  21. [21]
    Java™ SE Development Kit 8, Update 461 Release Notes - Oracle
    Jul 15, 2025 · It is not recommended that this JDK (version 8u461) be used after the next critical patch update scheduled for October 21, 2025. Java Management ...Missing: libjpeg | Show results with:libjpeg
  22. [22]
    About / FUD - libjpeg-turbo
    Dec 11, 2024 · libjpeg-turbo is a fork of libjpeg v6b, providing accelerated baseline JPEG encoding/decoding, originally from TigerVNC, and driven by ...Missing: core | Show results with:core
  23. [23]
    Main libjpeg-turbo repository - GitHub
    libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and ...
  24. [24]
    libjpeg-turbo | Main / libjpeg-turbo
    Nov 29, 2023 · libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, AVX2, Neon, AltiVec) to accelerate baseline JPEG compression and decompression.
  25. [25]
    Performance improvements (SIMD extensions) for 12-bit JPEGs #199
    Dec 23, 2017 · Our support for 12-bit JPEG is already better than that of libjpeg, since you can easily compile a 12-bit-capable build of libjpeg-turbo by ...
  26. [26]
    Releases · libjpeg-turbo/libjpeg-turbo - GitHub
    The documentation for the libjpeg API library and ... TJBench command-line arguments are now more consistent with those of cjpeg, djpeg, and jpegtran.
  27. [27]
    RHSA-2025:7540 - Security Advisory - Red Hat Customer Portal
    May 14, 2025 · The libjpeg-turbo packages contain a library of functions for manipulating JPEG images. They also contain simple client programs for accessing ...
  28. [28]
    Features/libjpeg-turbo - Fedora Project Wiki
    Summary. libjpeg-turbo is fork of the original libjpeg project. It contains numerous performance related enhancements and is at least twice ...<|control11|><|separator|>
  29. [29]
    platform/external/libjpeg-turbo - Git at Google - Android GoogleSource
    libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and MIPS ...<|control11|><|separator|>
  30. [30]
    Downloads / libjpeg-turbo YUM and APT Repositories
    Oct 31, 2024 · libjpeg-turbo can be installed and updated using YUM by following this procedure: As root, download libjpeg-turbo.repo and place it in /etc/yum.repos.d.
  31. [31]
    Introducing the 'mozjpeg' Project - Mozilla Research
    Mar 5, 2014 · A new Mozilla project called 'mozjpeg'. The goal is to provide a production-quality JPEG encoder that improves compression while maintaining compatibility.
  32. [32]
    What About mozjpeg? - libjpeg-turbo
    Nov 29, 2023 · mozjpeg's sole purpose is to reduce the size of JPEG files that are served up on the web. Thus, Mozilla wants their solution to compress as ...
  33. [33]
    mozilla/mozjpeg: Improved JPEG encoder. - GitHub
    MozJPEG is a strict superset of libjpeg-turbo's functionality. All MozJPEG's improvements can be disabled at run time, and in that case it behaves exactly like ...
  34. [34]
    Introducing Jpegli: A New JPEG Coding Library
    Jpegli is a new JPEG coding library that is designed to be faster, more efficient, and more visually pleasing than traditional JPEG.Missing: fork | Show results with:fork
  35. [35]
    google/jpegli - GitHub
    Jpegli: an improved JPEG encoder and decoder implementation. This repository contains a JPEG encoder and decoder implementation that is API and ABI compatible ...
  36. [36]
  37. [37]
    Sponsor @libjpeg-turbo on GitHub Sponsors
    libjpeg-turbo is an ISO/ITU-T reference implementation (Rec. ITU-T T.873 | ISO/IEC 10918-7) and is used by numerous web browsers, operating systems, and ...
  38. [38]
    Image Formats - ImageMagick
    ImageMagick supports over 100 major file formats, identified by 'magick' strings. Use `magick identify -list format` for a full list.
  39. [39]
    [gimp] INSTALL: libjpeg and libpng are now a hard dependency
    Nov 3, 2013 · Subject: [gimp] INSTALL: libjpeg and libpng are now a hard dependency ... Install GIMP by running `make install'. In order to avoid clashes ...
  40. [40]
    chromium/deps/libjpeg_turbo - Git at Google
    libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and MIPS ...
  41. [41]
    Mozilla Advances JPEG Encoding with mozjpeg 2.0
    Jul 15, 2014 · We're fans of libjpeg-turbo – it powers JPEG decoding in Firefox because its focus is on being fast, and that isn't going to change any time ...
  42. [42]
    Building from source - Pillow (PIL Fork) 12.0.0 documentation
    Pillow has been tested with libjpeg versions 6b, 8, 9-9d and libjpeg-turbo version 8. · Starting with Pillow 3.0.0, libjpeg is required by default. It can be ...Missing: integration | Show results with:integration
  43. [43]
    JPEG XL Image Encoding - The Library of Congress
    Encoding and decoding speed. Testing has shown that JPEG XL with 4 threads outperformed both libjpeg and libjpeg-turbo, two JPEG codec implementations.
  44. [44]
    pylibjpeg - PyPI
    pylibjpeg. A Python framework for decoding JPEG and JPEG-LS and decoding/encoding JPEG 2000 and RLE, with a focus on providing support for pydicom.
  45. [45]
    Consolidated JDK 8 Release Notes - Oracle
    Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins.