rawloader
Zpng
Our great sponsors
rawloader | Zpng | |
---|---|---|
3 | 4 | |
289 | 254 | |
- | - | |
0.0 | 10.0 | |
7 months ago | almost 6 years ago | |
Rust | C | |
GNU Lesser General Public License v3.0 only | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rawloader
-
Announcing: ImageSieve, a tool to assist in sorting and archiving images and videos
I absolutely loved all the crates available that made my life very simple in many cases. I used (among others) the slint ui framework, kamadak-exif, img_hash, fast_image_resize and rawloader.
-
QOI: Lossless Image Compression in O(n) Time
These kinds of formats have been somewhat explored by camera makers for their raw formats. Since the computing resources can be quite limited there are a few formats that try to occupy this space of simplicity with still some tricks for compression. Samsung's various SRW encodings remind me most of this:
https://github.com/pedrocr/rawloader/blob/a59bb78d156277781a...
The simplest form is just to pack 10 or 12 bit values. There's all kinds of variations of that:
https://github.com/pedrocr/rawloader/blob/a59bb78d156277781a...
There are a few formats that use a curve and less bits. They do become lossy and doing dithering on decompress is useful to avoid banding.
The Nikon one you mention was only used very early and is decoded by decode_8bit_wtable() in that file. It's just looking up the 8 bit value in the table and then adding some randomness to prevent the banding.
Zpng
-
Quite OK Image is now my favorite asset format
> You'd probably get even better results by using PNG's filters instead of QOI
Did anybody ever try this? It would be quite interesting and does not seem too difficult.
The only thing I could find is https://github.com/catid/Zpng which does not use the normal PNG filtering.
-
Google Chrome Is Already Preparing To Deprecate JPEG-XL (~3x smaller than JPEG, HDR, lossless, alpha, progressive, recompression, animations)
Also, Chris Taylor published an experimental PNG library with Zstd hardwired in.
-
QOI: Lossless Image Compression in O(n) Time
- I feel like the benchmark suite is lacking. For better overview you probably should include libpng results with max compression level and lowest compression level. Lossless modes of AVIF and WEBP would be nice. (also could throw similar project to yours like https://github.com/catid/Zpng) Not saying the benchmark is bad, but IMHO doesn't paint the full picture. From quick test I got significantly better compression on libpng, ofc in expense of time, but you didn't optimize it for speed either. So we have some results, but they are not really representative imho.
What are some alternatives?
qoi - The “Quite OK Image Format” for fast, lossless image compression
ZLib - A massively spiffy yet delicately unobtrusive compression library.
dnglab - Camera RAW to DNG file format converter
fast_image_resize - Rust library for fast image resizing with using of SIMD instructions.
qoi - Pure Go encoder/decoder of the QOI image format
rawspeed - fast raw decoding library
slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
qoi - A rust implementation of the “Quite OK Image” format for fast, lossless image compression
image-sieve - GUI based tool to sort and categorize images written in Rust
msgpack-rust - MessagePack implementation for Rust / msgpack.org[Rust]
img-hash - A Rust library for calculating perceptual hash values of images