QOI image compression format ကို မိတ်ဆက်ပေးခဲ့သည်။

ပေါ့ပါးပြီး ဆုံးရှုံးမှုမရှိသော ပုံချုံ့ဖော်မတ်အသစ်ကို RGB နှင့် RGBA အရောင်ကွက်လပ်များတွင် အမြန်ချုံ့နိုင်စေသည့် QOI (Quite OK Image) ကို မိတ်ဆက်ပေးထားပါသည်။ စွမ်းဆောင်ရည်ကို PNG ဖော်မတ်နှင့် နှိုင်းယှဉ်သောအခါ၊ C language ရှိ QOI ဖော်မတ်၏ single-threaded ကိုးကားမှု အကောင်အထည်ဖော်မှုသည် SIMD ညွှန်ကြားချက်များနှင့် တပ်ဆင်ခြင်းဆိုင်ရာ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းများကို အသုံးမပြုဘဲ libpng နှင့် stb_image libraries များထက် အဆ 20-50 ပိုမြန်သည်၊ နှင့် 3 - ကုဒ်ဆွဲခြင်းမြန်နှုန်းတွင် 4 ဆ ပိုမြန်သည်။ Compression efficiency အရ၊ QOI သည် စမ်းသပ်မှုအများစုတွင် libpng နှင့် နီးစပ်သည် (အချို့သောစမ်းသပ်မှုများတွင် ၎င်းသည် အနည်းငယ်ရှေ့တွင်ရှိပြီး အချို့မှာ ယုတ်ညံ့သည်)၊ သို့သော် ယေဘုယျအားဖြင့် ၎င်းသည် stb_image (20%) အထိ သိသာထင်ရှားစွာ ကျော်လွန်နေသည်။

C တွင် QOI ၏ရည်ညွှန်းအကောင်အထည်ဖော်မှုသည် ကုဒ်လိုင်း 300 သာဖြစ်သည်။ အရင်းအမြစ်ကုဒ်ကို MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။ ထို့အပြင်၊ ဝါသနာရှင်များသည် Go၊ Zig နှင့် Rust ဘာသာစကားများတွင် ကုဒ်ဝှက်ကိရိယာများနှင့် ကုဒ်ဒါများကို အကောင်အထည်ဖော်ရန် ပြင်ဆင်ထားသည်။ အဆိုပါပရောဂျက်ကို MPEG1 ဗီဒီယိုကိုကုဒ်ဝှက်ခြင်းအတွက် စာကြည့်တိုက်တစ်ခုဖန်တီးရာတွင် အတွေ့အကြုံရှိသည့် ဂိမ်းဆော့ဖ်ဝဲရေးသားသူ Dominic Szablewski မှ တီထွင်ထုတ်လုပ်ထားပါသည်။ QOI ဖော်မတ်ကို အသုံးပြု၍ ရှုပ်ထွေးလွန်းသော ခေတ်မီ ရုပ်ပုံကုဒ်ဖော်မတ်များအတွက် ထိရောက်ပြီး ရိုးရှင်းသော အခြားရွေးချယ်စရာတစ်ခုကို ဖန်တီးနိုင်သည်ကို စာရေးသူ ပြသလိုခဲ့သည်။

QOI စွမ်းဆောင်ရည်သည် ကုဒ်လုပ်ထားသော ပုံ (O(n)) ၏ ကြည်လင်ပြတ်သားမှုနှင့် သဘောသဘာဝအရ သီးခြားဖြစ်သည်။ ကုဒ်သွင်းခြင်းနှင့် ကုဒ်ကုဒ်ကို တစ်ခုတည်းသော pass တွင် လုပ်ဆောင်သည် - pixel တစ်ခုစီကို တစ်ကြိမ်သာ လုပ်ဆောင်ပြီး ယခင် pixel များ၏ တန်ဖိုးများပေါ်မူတည်၍ ရွေးချယ်ထားသော နည်းလမ်း 4 ခုအနက်မှ တစ်ခုဖြင့် ကုဒ်လုပ်နိုင်ပါသည်။ နောက် pixel သည် ယခင်တစ်ခုနှင့် တိုက်ဆိုင်ပါက၊ ထပ်ခါတလဲလဲ တန်ပြန်သည်သာ တိုးလာသည်။ အကယ်၍ pixel သည် 64 past pixel ကြားခံရှိတန်ဖိုးများနှင့် ကိုက်ညီပါက၊ တန်ဖိုးကို ယခင် pixel သို့ 6-bit offset ဖြင့် အစားထိုးပါသည်။ ယခင် pixel ၏အရောင်သည် အနည်းငယ်ကွဲပြားပါက၊ ခြားနားချက်ကို တိုတောင်းသောပုံစံဖြင့် ညွှန်ပြသည် (2,4၊ 5 နှင့် XNUMX bits နှင့် ကိုက်ညီသော အရောင်အစိတ်အပိုင်းများ၏ ခြားနားချက်များကို အတိုချုံးကုဒ်ဖြင့်ဖော်ပြသည်)။ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်း မပြုပါက၊ rgba တန်ဖိုး အပြည့်အစုံကို ပေးထားသည်။

source: opennet.ru

မှတ်ချက် Add