Zpng | chess | |
---|---|---|
4 | 3 | |
254 | 1 | |
- | - | |
10.0 | 0.0 | |
almost 6 years ago | over 1 year ago | |
C | C | |
BSD 3-clause "New" or "Revised" License | MIT 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.
Zpng
- Zpng: Better lossless compression than PNG with a simpler algorithm
-
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.
chess
-
Quite OK Image is now my favorite asset format
I think it's in the title: assets. The example case is replacing the BMP assets used by a game with QOI with a resulting 10x size reduction: https://github.com/skeeto/chess/commit/5c123b3
I think this functions as a test case. For a game as simple as a chess UI, PNG would probably be fine unless you're code-golfing on the final output binary or refusing to use common dependencies. But for some programs (e.g. large video games), preloading all your assets is very common and decoding speed can be crucial. Maybe the assets could even be left in compressed form in memory in order to reduce the system requirements? I'm not sure if this is common or not.
-
Is there a way to embed textual data in the binary and then free it when you need?
However, I don't really like the constraints this imposes, so I prefer my #include trick. In real programs I don't actually rely on xxd (part of Vim), and instead write a custom embed tool as part of the build. It's only a few lines of code to match the standard input behavior of xxd.
-
Looking for feedback on my Chess game
https://github.com/skeeto/chess/commit/9cc8c60 (depends on Vim xxd)
What are some alternatives?
qoi - The “Quite OK Image Format” for fast, lossless image compression
EightThirtyTwoDemos - Demo projects for the EightThirtyTwo CPU
ZLib - A massively spiffy yet delicately unobtrusive compression library.
libdeflate - Heavily optimized library for DEFLATE/zlib/gzip compression and decompression
qoi - Pure Go encoder/decoder of the QOI image format
CompactGUI - Transparently compress active games and programs using Windows 10/11 APIs
zopfli - Zopfli Compression Algorithm is a compression library programmed in C to perform very good, but slow, deflate or zlib compression.
chess
qoi - A rust implementation of the “Quite OK Image” format for fast, lossless image compression
qoipond - Lossless image format inspired by QOI “Quite OK Image” format
rawloader - rust library to extract the raw data and some metadata from digital camera images
jpeg2png - silky smooth JPEG decoding