Gipaila ang QOI image compression format

Usa ka bag-ong lightweight, lossless image compression format ang gipaila - QOI (Quite OK Image), nga nagtugot kanimo sa pag-compress dayon sa mga hulagway sa RGB ug RGBA color spaces. Kung itandi ang performance sa PNG format, ang single-threaded reference nga pagpatuman sa QOI format sa C nga pinulongan, nga wala mogamit sa SIMD instructions ug assembly optimizations, 20-50 ka beses nga mas paspas sa encoding speed kay sa libpng ug stb_image nga mga librarya, ug 3 -4 ka beses nga mas paspas sa decoding speed. Sa termino sa compression efficiency, ang QOI duol sa libpng sa kadaghanan nga mga pagsulay (sa pipila ka mga pagsulay kini gamay sa unahan, ug sa uban kini mas ubos), apan sa kinatibuk-an kini mao ang mamatikdan nga nag-una sa stb_image (ganansya hangtod sa 20%).

Ang reperensiya nga pagpatuman sa QOI sa C kay 300 lang ka linya sa code. Ang source code giapod-apod ubos sa lisensya sa MIT. Dugang pa, ang mga mahiligon nag-andam og mga pagpatuman sa mga encoder ug decoder sa Go, Zig ug Rust nga mga pinulongan. Ang proyekto gimugna ni Dominic Szablewski, usa ka developer sa dula nga adunay kasinatian sa paghimo og librarya alang sa pag-decode sa MPEG1 nga video. Gamit ang format sa QOI, gusto sa tagsulat nga ipakita nga posible nga maghimo usa ka epektibo ug yano nga alternatibo sa labi ka komplikado nga mga pormat sa pag-encode sa imahe.

Ang pasundayag sa QOI kay independente sa resolusyon ug kinaiya sa gi-encode nga hulagway (O(n)). Ang pag-encode ug pag-decode gihimo sa usa ka pass - ang matag pixel giproseso kausa ra ug mahimong ma-encode sa usa sa 4 nga mga paagi, gipili depende sa mga kantidad sa miaging mga pixel. Kung ang sunod nga pixel motakdo sa nauna, nan ang pagbalik-balik nga kontra motaas lamang. Kung ang pixel motakdo sa usa sa mga value sa 64 past pixel buffer, nan ang value pulihan sa 6-bit offset sa past pixel. Kung ang kolor sa miaging pixel gamay ra, ang kalainan gipakita sa usa ka mubo nga porma (mubo nga pag-encode sa mga kalainan sa mga sangkap sa kolor nga mohaum sa 2,4, 5 ug XNUMX bits). Kung ang pag-optimize dili magamit, ang tibuuk nga kantidad sa rgba gihatag.

Source: opennet.ru

Idugang sa usa ka comment