QOI сүрөтүн кысуу форматы киргизилди

Сүрөттү кысуунун жаңы жеңил, жоготуусуз форматы киргизилди - QOI (Өтө OK Image), бул RGB жана RGBA түс мейкиндигинде сүрөттөрдү абдан тез кысууга мүмкүндүк берет. PNG форматы менен иштөөнү салыштырганда SIMD нускамаларын жана монтаждык оптималдаштырууларды колдонбогон C тилиндеги 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 мааниси берилет.

Source: opennet.ru

Комментарий кошуу