www.wikidata.de-de.nina.az
Das Quite OK Image Format QOI englisch Bildformat das ganz okay ist ist ein Dateiformat zur verlustfrei komprimierten Speicherung von Rastergrafiken Es wurde ab 2021 von Dominic Szablewski entworfen Im Gegensatz zu konkurrierenden Formaten wie PNG zeichnet sich QOI gleichzeitig durch eine einfachere und schnellere aber in vielen Fallen ahnlich effiziente Kompression aus Es handelt sich um einen offenen Standard mit freier Referenzimplementierung Quite OK Image FormatDateiendung qoiMagische Zahl qoifEntwickelt von Dominic SzablewskiErstveroffentlichung 24 November 2021Aktuelle Version 1 0 2022 05 01 Art RastergrafikWebsite https qoiformat org Inhaltsverzeichnis 1 Geschichte 2 Format 2 1 Details 3 Vergleich mit PNG 4 Verbreitung 4 1 Implementierungen 5 Weblinks 6 EinzelnachweiseGeschichte BearbeitenSzablewski veroffentlichte das QOI Format erstmals mit einem Blogartikel auf seiner Website PhobosLab am 24 November 2021 1 Er druckte seinen Unmut uber existierende Multimedia Dateiformate aus die seiner Ansicht nach durch einen Konsortium Designprozess uberaus kompliziert und voller nutzloser Funktionen waren Als Beispiel fuhrt er dabei das Copyright Flag im MPEG 1 Header an Laut eigener Aussage hat Szablewski keine Ahnung von komplexer Datenkompression und QOI sei zufallig aus Experimenten mit einfachen Bildkompressionsverfahren entstanden Zusammen mit dem Artikel veroffentlichte Szablewski die erste Version der Referenzimplementierung Als Folge auf die uberraschend guten Ergebnisse des QOI Formats gab es insbesondere auf Twitter einige Resonanz auf Szablewskis Arbeit 2 Innerhalb der nachsten Monate entstanden Implementierungen fur eine Vielzahl an Programmiersprachen und Anwendungen siehe Verbreitung Nach einigen Anderungen die auf Wunsche der Nutzer eingingen veroffentlichte Szablewski die finale Spezifikation der Version 1 0 am 1 Mai 2022 auf der neuen formateigenen Website 3 Laut Dokumentation der Referenzimplementierung sieht Szablewski QOI als abgeschlossenes Format und hat nicht vor eine weitere Version zu veroffentlichen Format BearbeitenQOI ist ein Format zur verlustfreien Kompression von Rastergrafiken d h bei der Speicherung gehen keine Informationen des Bildes verloren Fur die Kompression setzt QOI mehrere Verfahren ein zwischen denen auf der Ebene einzelner Pixel gewechselt werden kann Worterbuchkompression Delta Kodierung in einer von mehreren Bittiefen Lauflangenkodierung unkomprimierte Speicherung einzelner Pixel falls die vorherigen Verfahren fehlschlagenQOI unterstutzt die Speicherung von Farbbildern beliebiger Grosse bis 2 32 2 32 displaystyle 2 32 times 2 32 nbsp Pixel im RGB oder RGBA Format mit 24 bzw 32 Bit pro Pixel 8 Bit pro Kanal Der Farbraum ist entweder sRGB oder ein linearer RGB A Farbraum Details Bearbeiten Die konkrete Funktionsweise des Formats ist so einfach dass die Spezifikation auf eine DIN A4 Seite passt 4 QOI beginnt mit einem 14 Byte Header der folgenden Form Bytes 0 3 4 7 8 11 12 13qoif Breite in Pixel Big endian Hohe in Pixel Big endian Kanale FarbraumUnterstutzte Kanalzahlen sind momentan 3 fur RGB und 4 fur RGBA Die unterstutzten Farbraume sind 0 fur sRGB und 1 fur lineares RGB A Die restlichen Bytes kodieren die Pixel des Bilds von links nach rechts oben nach unten reihenweise Als Worterbuch verwenden Enkoder und Dekoder ein 64 Pixel Array in welches ein Pixel r g b a mithilfe der Hashfunktion 3 r 5 g 7 b 11 a mod 64 displaystyle 3r 5g 7b 11a mod 64 nbsp indiziert Jedes geschriebene oder gelesene Pixel egal wie kodiert wird in das Worterbuch aufgenommen Es gibt sechs verschiedene Chunks genannte Dateneinheiten die meist ein Pixel kodieren Ausnahme Lauflangenkodierung siehe unten Chunks beginnen mit einem identifizierenden Tag und beginnen und enden immer an Byte Grenzen Die RGB oder RGBA Chunks kodieren ein einzelnes unkomprimiertes Pixel Dabei ist a 1 fur einen RGBA Chunk was auch die Grosse des Chunks bezeichnet falls a 1 ist der Chunk 5 Byte gross andernfalls 4 RGB RGBA Byte 0 1 2 3 4 Tag 1 1 1 1 1 1 1 a Rot Grun Blau Alpha nur falls a 1 Der Index Chunk kodiert ein Pixel welches im Worterbuch vorliegt INDEX Bit 7 6 5 0Tag 0 0 6 Bit Index ins WorterbuchDie Differenz Chunks kodieren ein Pixel welches nur geringfugig von seinem Vorganger abweicht Die Deltawerte sind Ganzzahlen mit einer Bias von 2 im DIFF Chunk 8 in Rot und Blau im LUMA Chunk sowie 32 in Grun im LUMA Chunk Im LUMA Chunk werden die Differenzen in Rot und Blau nicht alleinstehend gespeichert sondern wiederum als Differenz vom Grun Delta weshalb sie mit 4 Bit statt 6 Bit auskommen DIFF Bit 7 6 5 4 3 2 1 0Tag 0 1 Rot Delta Grun Delta Blau DeltaLUMA Byte 0 1Bit 7 6 5 0 7 4 3 0Tag 1 0 Grun Delta Grun Delta displaystyle nbsp Rot Delta Grun Delta displaystyle nbsp Blau DeltaDer Lauflangen Chunk kodiert eine Reihe an Pixel die zum vorhergehenden anders kodierten Pixel identisch sind Die Lauflange wird mit einer Bias von 1 gespeichert da eine Lauflange von 0 keinen Sinn ergibt Die Lauflangenwerte 63 und 64 sind nicht zulassig da somit der Chunk wie der Beginn eines RGB oder RGBA Chunk aussehen wurde RUN Bit 7 6 5 0Tag 1 1 LauflangeZur Kodierung eines Bilds ins QOI Format gibt es oft mehrere Moglichkeiten es konnen auch alle Pixel unkomprimiert gespeichert werden Wenn die Chunks jedoch in der Prioritat RUN INDEX DIFF LUMA RGB A eingesetzt werden ergibt sich immer eine optimale Kompression Daraus folgt eine Laufzeit von linearer Grossenordnung siehe O Notation nicht nur fur Dekompression sondern auch fur Kompression Vergleich mit PNG BearbeitenDie von Szablewski durchgefuhrten Benchmarks 5 auf uber 4000 offentlich verfugbaren Beispieldateien die die QOI Referenzimplementierung mit Libpng und stbi vergleichen kommen zu folgenden Ergebnissen Im Durchschnitt liegt die Kompressionsstarke bei etwa 28 und damit zwischen dem stark komprimierenden libpng 24 und dem massig stark komprimierenden stbi 34 QOI komprimiert Bilder im Schnitt etwa 21 so schnell und dekomprimiert 3 4 so schnell wie die vergleichsweise schnelle stbi Implementierung QOI bietet jedoch im Vergleich zu PNG nur vier mogliche Farbformate PNG erlaubt indizierte Farben und Graustufen sowie Farbraum Metadaten Allgemein sind Metadaten die uber das Farbraum Byte und die Bildgrosse hinausgehen in QOI nicht speicherbar Verbreitung BearbeitenStand Juni 2022 unterstutzt keiner der Standard Bildbetrachter von Android Windows macOS oder iOS QOI Jedoch existieren Plugins und Direktunterstutzung fur QOI Dateien in Windows Explorer 6 ublichen Bildbearbeitungsprogrammen z B GIMP und Paint NET und Ansichtsprogrammen z B IrfanView Implementierungen Bearbeiten Die QOI Referenzimplementierung 7 ist in der Programmiersprache C geschrieben und umfasst etwa 600 Zeilen einschliesslich Spezifikation Sie ist unter der MIT Lizenz quelloffen verfugbar Zusatzlich dazu existieren eine Reihe an alternativen Implementierungen in verschiedenen Programmiersprachen 8 Weblinks BearbeitenOffizielle Website QOI Referenzimplementierung mit Liste weiterer Implementierungen Szablewskis Blog AnkundigungEinzelnachweise Bearbeiten Lossless Image Compression in O n Time In PhobosLab Dominik Szablewski 24 November 2021 abgerufen am 3 Juni 2022 englisch https twitter com phoboslab status 1463451635540180992 Abgerufen am 3 Juni 2022 QOI The Quite OK Image Format Abgerufen am 3 Juni 2022 Dominic Szablewski The Quite OK Image Format Specification PDF In qoiformat org 1 Mai 2022 abgerufen am 3 Juni 2022 englisch QOI Benchmark Results Abgerufen am 3 Juni 2022 Release Quite OK Image in C 2 0 0 pfusik qoi ci Abgerufen am 18 Juli 2023 englisch Dominic Szablewski QOI The Quite OK Image Format for fast lossless image compression In GitHub 3 Juni 2022 abgerufen am 3 Juni 2022 Liste von Implementierungen Abgerufen von https de wikipedia org w index php title Quite OK Image Format amp oldid 235577104