thermite
png-decoder
Our great sponsors
thermite | png-decoder | |
---|---|---|
1 | 4 | |
155 | 40 | |
0.6% | - | |
0.0 | 0.0 | |
over 2 years ago | over 1 year ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
thermite
-
Anyone want to speed up a PNG decoder?
If I ever have the time to finish Thermite, I'd suggest that for this.
png-decoder
-
Anyone want to speed up a PNG decoder?
I recently wrote a png-decoder for use in fontdue to parse emoji PNGs in a no_std context. I haven't yet put any effort into optimization, and from some basic benchmarks it seems the Wuffs implementation runs twice as fast.
Just sent a pull request to fix that issue (https://github.com/bschwind/png-decoder/pull/11)
-
The Fastest, Safest PNG Decoder in the World
I recently wrote a Rust PNG decoder mostly for use in no_std contexts, and it was motivated out of wanting to decode emoji for a font rasterizer.
I didn't really put any effort into optimizing it yet, though it does use miniz_oxide and it decompresses the entire image at once instead of per-scanline.
I'm curious if it is at all competitive with the Wuffs decoder, I'm guessing probably not because I haven't put any effort into using SIMD.
https://github.com/bschwind/png-decoder
But overall the implementation was pretty straightforward, I just read the RFC and wrote it out over a few weeks. One quirk of my library currently is it always returns an RGBA buffer, instead of potentially letting you save memory on a grayscale or RGB image.
What are some alternatives?
wuffs - Wrangling Untrusted File Formats Safely
image-png - PNG decoding and encoding library in pure Rust
simd-adler32 - A SIMD-accelerated Adler-32 hash algorithm implementation.
smhasher - Hash function quality and speed tests
Halide - a language for fast, portable data-parallel computation
tiny-skia - A tiny Skia subset ported to Rust
Compiler
screwsat - A simple CDCL(Conflict-Driven-Clause-Learning) SAT solver in Rust.
stb - stb single-file public domain libraries for C/C++
smhasher - Automatically exported from code.google.com/p/smhasher
simd-json - Rust port of simdjson