:bm1::bm2::bm3::bm4::bm5::bm6::bm7::bm8::bm9::bm0:

@bonkmaykr@canithesis.org

20 Male, Missouri, United States
Running Canithesis Interactive
Java / C++ engineer Linux advocate.
Newly an Amiga + Saturn nut.
wipEout and THE FINALS fan

I made the Firestar Mod Manager for Playstation Vita. Currently working on a danmaku shooter game called "Time Falcon". My posts can range anywhere from deep nerd thoughts to brainless shitposting.

Give me liberty or give me death
XMPP/Jabberbonkmaykr@canithesis.org

56 following, 31 followers

0 ★ 0 ↺

[?]:bm1::bm2::bm3::bm4::bm5::bm6::bm7::bm8::bm9::bm0: »
@bonkmaykr@canithesis.org

A few months ago, I messed around with different image formats to try to find the best balance between CPU usage and compression ratio when large bundles of uncompressed images are packed into archives. I found that QOI tends to cover all of the good low-hanging fruit of compression while still leaving enough redundancy that, in the end, it's final size was several magnitudes smaller than the competing formats since it leaves the hardest parts of compression up to a separate program that can take thousands of images into context when encoding the data. However, our existing tools did not cover support for QOI.

I've written a very rudimentary plugin for Allegro 5 that allows it to load QOI files as textures. Combined with the existing PhysFS plugin this gives both pretty respectable load times and compression.

https://git.worlio.com/Canithesis/allegro_qoi

There are some issues with the plugin as it is now. The big one is that it includes the reference decoder qoi.h which always returns it's own buffer with perfect pitch, and can only read files from either the standard I/O or from memory, so there's a lot of time and memory wasted just copying data around. Not quite as elegant usage as libwebp. But the format is so simple this is not a big deal and I can merge the codec into the plugin later to get around this.

Talked a little about merging this upstream into allegro_image after some additional work.

History