The squishiest image format!
Find a file
2024-08-27 01:21:07 -05:00
src Added some test images 2024-08-26 03:37:38 -05:00
test_images Moved test images 2024-08-26 03:41:32 -05:00
.gitignore Fixed minor issues 2024-07-28 23:58:52 -05:00
Cargo.toml Bumped version, 0.1.1 2024-08-06 15:45:48 -05:00
LICENSE-APACHE Added apache2 license, updated Cargo.toml data 2024-07-28 22:31:10 -05:00
LICENSE-MIT Added apache2 license, updated Cargo.toml data 2024-07-28 22:31:10 -05:00
README.md Update SQP logo image 2024-08-27 01:21:07 -05:00

SQP Logo

Lib.rs Version docs.rs

SQP (SQuishy Picture 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/