QOI зургийн шахалтын форматыг нэвтрүүлсэн

RGB болон RGBA өнгөний орон зайд зургийг маш хурдан шахах боломжийг олгодог QOI (Quite OK Image) - шинэ хөнгөн, алдагдалгүй зураг шахах форматыг нэвтрүүлсэн. Гүйцэтгэлийг PNG форматтай харьцуулахдаа SIMD заавар, угсралтын оновчлолыг ашигладаггүй Си хэл дээрх QOI форматын нэг урсгалтай лавлагаа хэрэгжилт нь libpng болон stb_image номын сангаас 20-50 дахин хурдан кодчилдог ба 3. - Кодыг тайлах хурдаар 4 дахин хурдан. Шахалтын үр ашгийн хувьд QOI нь ихэнх туршилтуудад libpng-тэй ойролцоо байдаг (зарим туршилтанд энэ нь бага зэрэг түрүүлж, заримд нь доогуур байдаг), гэхдээ ерөнхийдөө stb_image-ээс мэдэгдэхүйц түрүүлж байна (20% хүртэл олз).

C хэл дээрх QOI-ийн лавлагааны хэрэгжилт нь ердөө 300 мөр код юм. Эх кодыг MIT лицензийн дагуу түгээдэг. Нэмж дурдахад сонирхогчид Go, Zig, Rust хэл дээрх кодлогч, декодчилогчдын хэрэгжилтийг бэлтгэсэн. Төслийг MPEG1 видеоны кодыг тайлах номын сан үүсгэж байсан туршлагатай, тоглоом хөгжүүлэгч Доминик Шаблвски боловсруулж байна. Зохиогч QOI форматыг ашиглан хэт төвөгтэй орчин үеийн дүрс кодчилолын үр дүнтэй, энгийн хувилбарыг бий болгох боломжтой гэдгийг харуулахыг хүссэн.

QOI гүйцэтгэл нь кодлогдсон зургийн (O(n)) нягтрал болон шинж чанараас үл хамаарна. Кодлох, тайлах нь нэг дамжуулалтаар хийгддэг - пиксел бүрийг зөвхөн нэг удаа боловсруулдаг бөгөөд өмнөх пикселийн утгуудаас хамааран сонгосон 4 аргын аль нэгээр кодлох боломжтой. Хэрэв дараагийн пиксел нь өмнөхтэй давхцаж байвал давталтын тоолуур зөвхөн нэмэгддэг. Хэрэв пиксел нь өнгөрсөн 64 пикселийн буфер дэх утгуудын аль нэгтэй таарч байвал утгыг өнгөрсөн пикселийн 6 битийн зөрүүгээр солино. Хэрэв өмнөх пикселийн өнгө арай өөр байвал ялгааг богино хэлбэрээр (2,4, 5, XNUMX битэд багтах өнгөний бүрэлдэхүүн хэсгүүдийн ялгааг богино кодчилсон) зааж өгнө. Хэрэв оновчлол хийх боломжгүй бол rgba утгыг бүрэн хэмжээгээр өгнө.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх