Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge. Learn more →
Fpng Alternatives
Similar projects and alternatives to fpng
-
-
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
-
libdeflate
Heavily optimized library for DEFLATE/zlib/gzip compression and decompression
-
-
-
-
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
-
-
-
-
Turbo-Range-Coder
TurboRC - Fastest Range Coder + Arithmetic Coding / Fastest Asymmetric Numeral Systems
-
-
CompactGUI
Transparently compress active games and programs using Windows 10/11 APIs
-
-
-
-
-
-
zpaqlpy
Compiles a zpaqlpy source file (a Python-subset) to a ZPAQ configuration file for usage with zpaqd
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
fpng reviews and mentions
-
png crate gets an ultrafast compression mode, up to 4x faster decompression
When the QOI format was first announced it wasn't clear that was even possible while keeping PNG format compatibility. But the fpng and fpnge C/C++ libraries showed it was, and today you can take advantage of those advances in a general purpose PNG library in Rust!
-
Hello, PNG
CRC is a table and 5 lines of code. That's trivial.
>zlib is 23k lines
It's not needed to make a PNG reader/writer. zlib is massive overkill for only making a PNG reader or writer. Here's a tiny deflate/inflate code [2] under 1k lines (and could be much smaller if needed).
stb[0] has single headers of ~7k lines total including all of the formats PNG, JPG, BMP,. PSD, GIF, HDR, and PIC. Here's [1] a 3k lines single file PNG version with tons if #ifdefs for all sorts of platforms. Removing those and I'd not be surprised if you could not do it in ~1k lines (which I'd consider quite simple compared to most of todays' media formats).
>Of course they're not common formats so you're stuck with complex formats like PNG
BMP is super common and easy to use anywhere.
I use flat image files all the time for quick and dirty stuff. They quickly saturate disk speeds and networking speeds (say recording a few decent speed cameras), and I've found PNG compression to alleviate those saturate CPU speeds (some libs are super slow, some are vastly faster). I've many times made custom compression formats to balance these for high performance tools when neither things like BMPs or things like PNG would suffice.
[0] https://github.com/nothings/stb
[1] https://github.com/richgel999/fpng/blob/main/src/fpng.cpp
The space cost is negligible, but the time cost for the encoder is real. Take fpng[1] as an example, which tries to push the boundaries of PNG encode speed.
> The above benchmarks were made before SSE adler32/crc32 functions were added to the encoder. With 24bpp images and MSVC2022 the encoder is now around 15% faster.
I can't see the total percentage cost of checksums mentioned anywhere on the page, but we can infer that it's at least 15% of the overall CPU time, on platforms without accelerated checksum implementations.
- Quite OK Image is now my favorite asset format
-
Computing Adler32 Checksums at 41 GB/s
This was actually considered, and other libraries do ignore checksums, or at least have options to:
-
QOI – The Quite OK Image Format
In the other direction, you can target a subset of PNG to get less optimized images but with QOI-like encode and decode speed: https://github.com/richgel999/fpng
-
QOI – The “Quite OK Image Format” for fast, lossless image compression
If QOI is interesting because of speed, you might take a look at fpng, a recent/actively developed png reader/writer that is achieving comparable speed/compression to QOI, while staying png compliant.
https://github.com/richgel999/fpng
Disclaimer: have not actively tried either.
I think QOI inspired the creation of https://github.com/richgel999/fpng which creates standard PNGs and compares itself directly to QOI.
-
Losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression
BTW, today I found this fpng-fast PNG writer. There is a comparison with QOI in the readme.
-
A note from our sponsor - InfluxDB
www.influxdata.com | 30 Nov 2023
Stats
The primary programming language of fpng is C.