Nampidirina ny endrika fanerena sary QOI

Nampidirina ny endrika famatrarana sary maivana sy tsy misy fatiantoka - QOI (Sary OK), izay ahafahanao manindry sary haingana ao amin'ny habaka loko RGB sy RGBA. Raha ampitahaina ny fampisehoana amin'ny endrika PNG, ny fampiharana fanondro tokana amin'ny endrika QOI amin'ny fiteny C, izay tsy mampiasa torolalana SIMD sy fanatsarana ny fivoriambe, dia 20-50 heny haingana kokoa amin'ny hafainganam-pandehan'ny kaody noho ny tranomboky libpng sy stb_image, ary 3 - 4 heny haingana kokoa amin'ny hafainganam-pandehan'ny decoding. Raha ny momba ny fahombiazan'ny famatrarana, ny QOI dia manakaiky ny libpng amin'ny ankamaroan'ny fitsapana (amin'ny fitsapana sasany dia mandroso kely izy io, ary amin'ny hafa dia ambany), fa amin'ny ankapobeny dia mibaribary mialoha ny stb_image (fahazoana hatramin'ny 20%).

Ny fampiharana ny QOI amin'ny C dia andalana 300 fotsiny. Ny kaody loharano dia zaraina eo ambanin'ny lisansa MIT. Fanampin'izany, efa nanomana ny fampiharana ny encoders sy decoder amin'ny fiteny Go, Zig ary Rust ireo mpankafy. Ny tetikasa dia novolavolain'i Dominic Szablewski, mpamorona lalao manana traikefa amin'ny famoronana tranomboky ho an'ny famaritana ny horonan-tsary MPEG1. Amin'ny fampiasana ny endrika QOI, ny mpanoratra dia naniry ny hampiseho fa azo atao ny mamorona safidy mahomby sy tsotra amin'ny endrika fanodinkodinana sary maoderina be pitsiny.

Ny fahombiazan'ny QOI dia tsy miankina amin'ny famahana sy ny toetran'ny sary voakodia (O(n)). Ny famadihana sy ny decoding dia atao amin'ny pass iray - ny pixel tsirairay dia voahodina indray mandeha ary azo fehezina amin'ny iray amin'ireo fomba 4, voafantina arakaraka ny sandan'ny pixel teo aloha. Raha mifanandrify amin'ny teo aloha ny pixel manaraka, dia mitombo ihany ny counter repetition. Raha mifanandrify amin'ny iray amin'ireo soatoavina ao amin'ny buffer pixel 64 lasa ny pixel, dia soloina 6-bit offset amin'ny pixel taloha ilay sanda. Raha toa ka hafa kely ny lokon'ny piksel teo aloha, dia aseho amin'ny endrika fohy ny fahasamihafana (fanodinana fohy momba ny fahasamihafan'ny singa loko mifanaraka amin'ny bitika 2,4, 5 ary XNUMX). Raha tsy azo ampiharina ny fanatsarana dia omena ny sanda rgba feno.

Source: opennet.ru

Add a comment