QOI image funmorawon ọna kika

Apẹrẹ iwuwo fẹẹrẹ tuntun, ọna kika funmorawon aworan ti ko padanu - QOI (Aworan O dara), eyiti o fun ọ laaye lati yara pọsi awọn aworan ni awọn aaye awọ RGB ati RGBA. Nigbati o ba ṣe afiwe iṣẹ ṣiṣe pẹlu ọna kika PNG, imuse itọkasi asapo kan ti ọna kika QOI ni ede C, eyiti ko lo awọn ilana SIMD ati awọn iṣapeye apejọ, jẹ awọn akoko 20-50 yiyara ni iyara fifi koodu ju libpng ati awọn ile-ikawe stb_image, ati 3 -4 igba yiyara ni iyara iyipada. Ni awọn ofin iṣẹ ṣiṣe funmorawon, QOI sunmo libpng ninu ọpọlọpọ awọn idanwo (ninu awọn idanwo diẹ diẹ siwaju, ati ninu awọn miiran o kere si), ṣugbọn ni gbogbogbo o jẹ akiyesi ṣaaju stb_image (ere ti o to 20%).

Imuse itọkasi ti QOI ni C jẹ awọn laini koodu 300 nikan. Koodu orisun ti pin labẹ iwe-aṣẹ MIT. Ni afikun, awọn alara ti pese awọn imuse ti awọn koodu koodu ati awọn decoders ni Go, Zig ati awọn ede Rust. Ise agbese na ni idagbasoke nipasẹ Dominic Szablewski, olupilẹṣẹ ere kan ti o ni iriri ni ṣiṣẹda ile-ikawe kan fun yiyan fidio MPEG1. Lilo ọna kika QOI, onkọwe fẹ lati fihan pe o ṣee ṣe lati ṣẹda yiyan ti o munadoko ati irọrun si awọn ọna kika fifi koodu ode oni idiju.

Išẹ QOI jẹ ominira ti ipinnu ati iseda ti aworan ti a fi koodu pa (O (n)). Ṣiṣe koodu ati iyipada ni a ṣe ni iwe-iwọle kan - ẹbun kọọkan ti ṣiṣẹ ni ẹẹkan ati pe o le ṣe koodu ni ọkan ninu awọn ọna mẹrin, ti o yan da lori awọn iye ti awọn piksẹli iṣaaju. Ti piksẹli atẹle ba baamu pẹlu ọkan ti tẹlẹ, lẹhinna counter atunwi nikan n pọ si. Ti piksẹli ba baamu ọkan ninu awọn iye ti o wa ninu ifipamọ piksẹli 4 ti o kọja, lẹhinna iye naa rọpo nipasẹ aiṣedeede 64-bit si ẹbun ti o kọja. Ti awọ ti piksẹli iṣaaju ba yatọ si diẹ, iyatọ jẹ itọkasi ni ọna kukuru kan (iyipada kukuru ti awọn iyatọ ninu awọn paati awọ ti o baamu si 6, 2,4 ati 5 bits). Ti iṣapeye ko ba wulo, iye rgba ni kikun ti pese.

orisun: opennet.ru

Fi ọrọìwòye kun