SQP Logo

[![Lib.rs Version](https://img.shields.io/crates/v/sqp?style=for-the-badge&logo=rust&label=lib.rs&color=%23a68bfc)](https://lib.rs/crates/sqp) [![docs.rs](https://img.shields.io/docsrs/cross_usb?style=for-the-badge)](https://docs.rs/sqp/) **SQP** (**SQ**uishy **P**icture Format) is an image format designed for ease of implementation and learning about compression and image formats while attaining a relatively good compression ratio. The general idea is to make something "good enough" while being simple, and also as a learning tool to learn about compression (mostly on my part). If you need an image format for general use, this is probably **not it**, go check out JPEG XL or AVIF. This reference implementation fits in around 1000 lines of relatively simple Rust, while maintaining decent compression and decompression speeds. ## Features - Lossless and lossy compression schemes - Support for various color formats (RGBA, Grayscale, etc.) - Decent compression ratios, the lossless compression can often beat PNG especially on images with transparency - Lossy alpha compression! - Relatively simple - Squishy! 🍡 ## Future Features - Animated images - Frame difference encoding - Loop points - Arbitrary frame timings - Decoder-based frame interpolation - Floating point color - Metadata? ## Examples All examples are at 30% quality in both JPEG and SQP. | Original | JPEG | SQP | |----------|--------------|-------------| | | | | | | | | Images obtained from the following source: [https://r0k.us/graphics/kodak/](https://r0k.us/graphics/kodak/)