Quite OK Image is now my favorite asset format

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • SaaSHub - Software Alternatives and Reviews
  • chess

    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.

  • EightThirtyTwoDemos

    Demo projects for the EightThirtyTwo CPU

  • 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.

  • ZLib

    A massively spiffy yet delicately unobtrusive compression library.

    A minimal viable Deflate decompressor is not exactly complex[1], although slower than mainline zlib.

    [1] https://github.com/madler/zlib/tree/master/contrib/puff

  • libdeflate

    Heavily optimized library for DEFLATE/zlib/gzip compression and decompression

    > The QOI benchmarks shows it only lagging a small bit behind PNG in compression ratio, while performing much faster (multiples) in both encoding and decoding.

    Presumably that’s with stock libpng, which uses zlib. I wonder if anyone tried patching it to use the substantially faster (on x86) libdeflate[1] instead? It doesn’t do streaming, but you shouldn’t really need it for PNG textures.

    [1] https://github.com/ebiggers/libdeflate

  • fpng

    Super fast C++ .PNG writer/reader

  • Zpng

    Better lossless compression than PNG with a simpler algorithm

    > 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.

  • CompactGUI

    Transparently compress active games and programs using Windows 10/11 APIs

    > This claim needs some real world evidence to back it up (and usually it's not about a performance impact, but instead a perceived image quality impact).

    We're talking lossless compression here, so image quality is not the issue.

    Fortunately someone else has already done this research. There's a tool for Windows to control the compact.exe behavior for individual folders called CompactGUI: https://github.com/IridiumIO/CompactGUI

    They maintain a database of compression results here: https://docs.google.com/spreadsheets/d/14CVXd6PTIYE9XlNpRsxJ...

    Reductions in storage use of greater than 50% are so common that they're hardly even worth remarking on. My experience with compressing a bunch of games is that the biggest gains come from compressing bloated asset packs. Hard to know what else could be taking up more than 50% of the storage space in a particular game.

  • 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.

  • qoipond

    Lossless image format inspired by QOI “Quite OK Image” format

  • qoir

    A fast, simple, lossless image file format.

    * AFAIK it does this while beating the original QOI in terms of speed AND efficiency

    Lots of benchmarks in: https://github.com/nigeltao/qoir

    QOIX

    QOIX is my very own version that adds:

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts