Google နှင့် Binomial
Basis Universal သည် ယခင်က ဖြည့်စွက်ထားသည်။
Basis Universal ဖော်မတ်သည် သင့်အား မူရင်း GPU ဖွဲ့စည်းတည်ဆောက်ပုံများ၏ စွမ်းဆောင်ရည်ကို ရရှိစေရန် ခွင့်ပြုသော်လည်း ပိုမိုမြင့်မားသော ဖိသိပ်မှုအဆင့်ကို ပေးပါသည်။
Basis သည် အသုံးမပြုမီ ဒက်စတော့စနစ်များနှင့် မိုဘိုင်းစက်ပစ္စည်းများတွင် အသုံးပြုရန်အတွက် အမျိုးမျိုးသော အဆင့်နိမ့်ဖော်မတ်များသို့ GPU အသွင်အပြင်ကို လျင်မြန်စွာကူးပြောင်းပေးသည့် အလယ်အလတ်ဖော်မတ်တစ်ခုဖြစ်သည်။ လက်ရှိပံ့ပိုးပေးထားသည့် PVRTC1 (4bpp RGB)၊ BC7 (6 RGB မုဒ်)၊ BC1-5၊ ETC1 နှင့် ETC2 ဖော်မတ်များဖြစ်သည်။ ASTC ဖော်မတ် (RGB သို့မဟုတ် RGBA) နှင့် BC4 အတွက် 5/7 RGBA မုဒ်များနှင့် PVRTC4 အတွက် 1bpp RGBA အတွက် အနာဂတ် ပံ့ပိုးမှုကို မျှော်လင့်ပါသည်။
အခြေခံဖော်မတ်ရှိ အသွေးအရောင်များသည် ဗီဒီယိုမှတ်ဉာဏ်ထက် 6-8 ဆ ပိုနည်းပြီး JPEG ဖော်မတ်အပေါ် အခြေခံထားသည့် ပုံမှန်ဖွဲ့စည်းပုံများကဲ့သို့ ဒေတာတစ်ဝက်ခန့်ကို လွှဲပြောင်းရန်နှင့် RDO မုဒ်ရှိ ဒီဇိုင်းများထက် 10-25% လျော့နည်းရန် လိုအပ်သည်။ ဥပမာအားဖြင့်၊ JPEG ရုပ်ပုံအရွယ်အစား 891 KB နှင့် 1 MB ရှိသော ETC1 texture ဖြင့်၊ Basis ဖော်မတ်ရှိ ဒေတာအရွယ်အစားသည် အမြင့်ဆုံးအရည်အသွေးမုဒ်တွင် 469 KB ဖြစ်သည်။ ရုပ်ပုံများကို ဗီဒီယိုမှတ်ဉာဏ်တွင် ထည့်သွင်းသည့်အခါ၊ စမ်းသပ်မှုတွင် အသုံးပြုသည့် JPEG နှင့် PNG အသွင်အပြင်များသည် မမ်မိုရီ 16 MB ကို သုံးစွဲခဲ့ပြီး၊
BC2၊ PVRTC1 နှင့် ETC1 သို့ ဘာသာပြန်ဆိုရန်အတွက် အခြေခံတွင် 1 MB နှင့် BC4 သို့ ဘာသာပြန်ဆိုရန်အတွက် 7 MB လိုအပ်သည်။
ရှိပြီးသား application များကို Basis Universal သို့ ရွှေ့ပြောင်းခြင်းလုပ်ငန်းစဉ်သည် အလွန်ရိုးရှင်းပါသည်။ ပရောဂျက်မှ ပံ့ပိုးပေးထားသည့် "basisu" utility ကို အသုံးပြု၍ ရှိပြီးသား ထုထည်များ သို့မဟုတ် ပုံများကို ဖော်မတ်အသစ်သို့ ပြန်လည်ကုဒ်လုပ်ရန် လုံလောက်ပါသည်။ ထို့နောက်၊ အပလီကေးရှင်းတွင်၊ rendering code မတိုင်မီ၊ သင်သည် လက်ရှိ GPU မှပံ့ပိုးပေးသော ဖော်မတ်သို့ အလယ်အလတ်ဖော်မတ်ကို ဘာသာပြန်ဆိုရန် တာဝန်ရှိသည့် အခြေခံမှစကုဒ်ဒါကို စတင်ရန် လိုအပ်သည်။ တစ်ချိန်တည်းမှာပင်၊ GPU ထဲသို့ ချုံ့ထားသောပုံစံဖြင့် တင်ခြင်းအပါအဝင်၊ လုပ်ဆောင်ခြင်းကွင်းဆက်တစ်ခုလုံးတစ်လျှောက် ပုံများကို ဖိသိပ်ထားဆဲဖြစ်သည်။ ရုပ်ပုံတစ်ခုလုံးကို ကြိုတင်ကုဒ်ပြောင်းခြင်းအစား GPU သည် ရုပ်ပုံ၏လိုအပ်သော အစိတ်အပိုင်းများကိုသာ ရွေးချယ်ကုဒ်လုပ်သည်။
၎င်းသည် ကွဲပြားသော အသွင်အပြင် အခင်းအကျင်းများ (cubemaps)၊ volumetric textures၊ texture arrays၊ mipmap အဆင့်များ၊ video sequences သို့မဟုတ် ဖိုင်တစ်ခုတွင် မတရားသော texture အပိုင်းအစများကို သိမ်းဆည်းခြင်းကို ပံ့ပိုးပေးပါသည်။ ဥပမာအားဖြင့်၊ ဗီဒီယိုငယ်များဖန်တီးရန် ဖိုင်တစ်ခုတွင် ရုပ်ပုံများအတွဲလိုက် ထုပ်ပိုးနိုင်သည် သို့မဟုတ် ပုံအားလုံးအတွက် တူညီသော palette ကို အသုံးပြု၍ ပုံများနှင့် ပုံတူပွားခြင်း နမူနာပုံစံများ အများအပြားကို ပေါင်းစပ်နိုင်သည်။ Basis Universal ကုဒ်ပြောင်းခြင်း အကောင်အထည်ဖော်မှုသည် OpenMP ကို အသုံးပြု၍ ကြိုးမျိုးစုံဖြင့် ကုဒ်နံပါတ်ကို ပံ့ပိုးပေးသည်။ Transcoder သည် လက်ရှိတွင် single-threaded မုဒ်တွင်သာ အလုပ်လုပ်ပါသည်။
ဒါ့အပြင်
GPU ဘက်တွင်သာ ၎င်း၏နောက်ဆက်တွဲလုပ်ဆောင်မှုဖြင့် ဗီဒီယိုကို မြှုပ်နှံနိုင်သည့်စွမ်းရည်သည် WebAssembly နှင့် WebGL တွင် တက်ကြွသောအသုံးပြုသူအင်တာဖေ့စ်များကိုဖန်တီးရန်အတွက် Basis Universal သည် စိတ်ဝင်စားစရာကောင်းသည့်ဖြေရှင်းချက်တစ်ခုဖြစ်ပြီး CPU ပမာဏအနည်းငယ်မျှသာရှိသော ဗီဒီယိုရာပေါင်းများစွာကို တစ်ပြိုင်နက်ပြသနိုင်သည်ကို မှတ်သားထားသည်။ SIMD လမ်းညွှန်ချက်များကို WebAssembly တွင် သမားရိုးကျကုဒ်ဒစ်များဖြင့် အသုံးမပြုမချင်း၊ ဤစွမ်းဆောင်ရည်အဆင့်ကို မရရှိနိုင်သေးသောကြောင့် သမားရိုးကျဗီဒီယိုကို အသုံးမပြုနိုင်သော နေရာများတွင် အသွင်အပြင်အခြေခံဗီဒီယိုကို အသုံးပြုနိုင်ပါသည်။ ဗီဒီယိုအတွက် ထပ်လောင်းပိုကောင်းအောင်ပြုလုပ်မှုများပါရှိသောကုဒ်ကို အသုံးပြုနိုင်စွမ်းအပါအဝင် ထုတ်ဝေမှုအတွက် လက်ရှိပြင်ဆင်လျက်ရှိသည်။
source: opennet.ru