Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Game Engine Development
  3. Jpeg-Compressor

Jpeg-Compressor

C

A small, public domain or Apache 2.0 licensed C++ JPEG compression and fuzzed low-RAM decompression codec.

GitHubGitHub
249 stars56 forks0 contributors

What is Jpeg-Compressor?

jpeg-compressor is a lightweight, open-source C++ library for JPEG image compression and decompression. It provides a minimal, self-contained codec that writes baseline JPEGs and includes a fuzz-tested decompressor resilient to corrupted inputs. The project solves the need for a reliable, low-memory JPEG solution in embedded systems or applications where larger libraries like libjpeg are impractical.

Target Audience

Developers working on embedded systems, microcontrollers, or applications requiring a small, safe JPEG codec with minimal dependencies. It's also suitable for those needing a public domain or Apache 2.0 licensed alternative to libjpeg.

Value Proposition

Developers choose jpeg-compressor for its exceptional combination of small code size, low memory footprint, and fuzzed decompression safety. Its permissive licensing and single-file design make integration straightforward, while support for streaming decompression enables use in resource-constrained environments where other libraries fail.

Overview

C++ JPEG compression/fuzzed low-RAM JPEG decompression codec with Public Domain or Apache 2.0 license

Use Cases

Best For

  • Embedded systems requiring JPEG support with limited RAM
  • Applications needing a fuzz-tested JPEG decompressor for safety-critical inputs
  • Projects seeking a public domain or Apache 2.0 licensed JPEG codec
  • Microcontroller firmware that processes JPEG images row-by-row
  • Tools requiring Libjpeg-compatible quality settings in a minimal codebase
  • Educational purposes to understand JPEG compression implementation

Not Ideal For

  • Applications requiring progressive JPEG encoding for web optimization
  • High-performance image servers needing libjpeg-turbo's speed optimizations
  • Projects dependent on multi-language bindings (e.g., Python, Node.js) out-of-the-box
  • Software requiring extensive JPEG standard compliance or vendor support

Pros & Cons

Pros

Minimal Memory Footprint

Consumes less than 64KB of RAM, as stated in the README, making it ideal for embedded systems and microcontrollers with strict memory limits.

Fuzz-Tested Safety

The decompressor has been rigorously tested with zzuf and AFL, ensuring it doesn't crash or have memory safety issues with corrupted inputs, a key feature for handling untrusted data.

Single-File Integration

Compression and decompression are each provided in single C++ source files (jpge.cpp and jpgd.cpp), simplifying code auditing and integration into projects.

Streaming Decompression

Processes JPEGs MCU row by row, avoiding the need to load entire images into memory, which is crucial for resource-constrained environments like 32-bit microcontrollers.

Cons

Baseline-Only Compression

The compressor only writes baseline JPEGs, lacking support for progressive encoding, which is a common requirement in modern web applications for faster image loading.

Limited Performance Optimizations

While it supports SSE2 optionally, it doesn't have the extensive optimizations of libraries like libjpeg-turbo, making it slower for high-throughput or real-time image processing tasks.

Sparse Documentation

The README provides basic usage examples but lacks in-depth API documentation, tutorials, or guidance for complex use cases, which can slow down development in larger projects.

Open Source Alternative To

Jpeg-Compressor is an open-source alternative to the following products:

libjpeg
libjpeg

libjpeg is a library for handling JPEG image files, providing functions for reading, writing, and manipulating JPEG images with compression and decompression capabilities.

Frequently Asked Questions

Quick Stats

Stars249
Forks56
Contributors0
Open Issues8
Last commit2 years ago
CreatedSince 2015

Tags

#embedded-systems#public-domain#low-memory#fuzzing#c-plus-plus#cross-platform#single-header#image-compression#jpeg-codec

Built With

v
visual-studio
s
sse2
C
CMake
C
C++

Included in

Game Engine Development1.3k
Auto-fetched 19 hours ago

Related Projects

imguiimgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Stars74,986
Forks11,931
Last commit1 day ago
C/C++C/C++

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Stars72,398
Forks8,320
Last commit5 days ago
ProtoBufProtoBuf

Protocol Buffers - Google's data interchange format

Stars71,621
Forks16,200
Last commit17 hours ago
JSON for Modern C++JSON for Modern C++

JSON for Modern C++

Stars50,198
Forks7,437
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub