Skip to content
/ sqp Public

The squishiest image format!

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Dangoware/sqp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/