Der Entwickler Dominic Szablewski hat mit QOI ein neues Dateiformat entwickelt. Die Namensgebung des Quite OK Image Format ist ein kleines Understatement, laut the Register könnte das Dateiformat deutlich besser als nur „ganz ok“ sein. Szablewski schreibt in einem Blogbeitrag, dass er QOI entwickelt hat, weil die bestehenden Formate PNG, JPEG, MPEG, MOV und MP4 vor Komplexität aus allen Nähten platzten. Jeder noch so winzige Aspekt der alteingesessenen Formate schreie „Design by Consortium“. Die meisten Codecs für Audio, Video und Image stammten aus dem letzten Jahrtausend und seien geschlossen. Die wenigen verfügbaren Open-Source-Lösungen bezeichnet er als komplex und rechenintensiv zudem benötigten sie riesige Bibliotheken und seien nicht gerade nutzer:innenfreundlich.
QOI komprimiert Bilder verlustfrei
Weil es offenbar vor ihm niemand versucht hat, entwickelte Szablewski kurzerhand selbst ein Image-Format, das es ohne Zweifel mit PNG aufnehmen können soll. QOI soll Bilder zwar weniger gut komprimieren können als ein optimierter PNG-Encoder, komprimiert sie dabei aber verlustfrei auf eine ähnliche Größe wie PNG. Zudem ist die Kodierung laut Blogpost etwa 20 bis 50x schneller, die Dekodierung immerhin drei bis viermal schneller.
Plugins und Support für eine Reihe von Sprachen
Mittlerweile verfügt das Projekt über 3.400 Sterne bei GitHub, und es gibt Implementationen für eine Reihe von Bibliotheken und Programmiersprachen, darunter Zig, Rust, Go, TypeScript, Haskell, C, Python, C#, Elixir, Swift, Java und Pascal. Auch gibt es eine native App, um QOI-Dateien zu öffnen, sowie Plugins für Gimp oder Paint.NET. Unterstützung für SDL_Image und weitere soll in Kürze kommen.
Bei all dem Zuspruch rechnet der Entwickler dennoch nicht damit, dass QOI in absehbarer Zeit in Webbrowsern auftauchen wird, wo die Kompressionsrate sehr viel wichtiger ist. Stattdessen sieht er mögliche Anwendungsfälle in Games und anderen Anwendungen, wo die Performance-Vorzüge sinnvoll sind.
Szablewski hat die Anwendung in weniger als 300 Zeilen C-Code geschrieben, während die Spezifikation auf eine Din-A4-Seite passt. Das zugehörige Repo und die Specs finden sich bei GitHub.