S'ha introduït el format de compressió d'imatges QOI

S'introdueix un nou format de compressió d'imatges, lleuger i sense pèrdues, QOI (Quite OK Image), que permet una compressió molt ràpida d'imatges en espais de color RGB i RGBA. Quan es compara el rendiment amb el format PNG, una implementació de referència d'un sol fil del format QOI en llenguatge C, que no utilitza instruccions SIMD ni optimitzacions d'assemblador, és de 20 a 50 vegades més ràpida que les biblioteques libpng i stb_image en velocitat de codificació, i 3-4 vegades en velocitat de descodificació. Pel que fa a l'eficiència de la compressió, la QOI en la majoria de proves s'aproxima a libpng (en algunes proves està lleugerament per davant, i en altres perd), però en general està notablement per davant de stb_image (fins a un 20% de guany).

La implementació de referència QOI en C només té 300 línies de codi. El codi font es distribueix sota la llicència MIT. A més, els entusiastes han preparat implementacions de codificadors i descodificadors a Go, Zig i Rust. El projecte està desenvolupat per Dominic Szablewski, un desenvolupador de jocs amb experiència en la creació d'una biblioteca per a la descodificació de vídeo MPEG1. Utilitzant el format QOI, l'autor va voler demostrar que és possible crear una alternativa eficaç i senzilla als formats moderns de codificació d'imatges massa complicats.

El rendiment de la QOI no depèn de la resolució i la naturalesa de la imatge codificada (O(n)). La codificació i descodificació es realitza en una sola passada: cada píxel només es processa una vegada i es pot codificar d'una de 4 maneres, seleccionades en funció dels valors dels píxels anteriors. Si el següent píxel coincideix amb l'anterior, el comptador de repeticions només augmenta. Si un píxel coincideix amb un dels valors de la memòria intermèdia de píxels anterior 64, s'indica un desplaçament de 6 bits al píxel anterior en lloc del valor. Si el color de l'últim píxel difereix lleugerament, la diferència s'indica en la forma curta (codificació abreujada de les diferències de components de color que encaixen en 2,4 i 5 bits). Si l'optimització no és aplicable, s'especifica el valor rgba complet.

Font: opennet.ru

Afegeix comentari