Google և Binomial
Basis Universal-ը լրացնում է նախկինում
«Basis Universal» ձևաչափը թույլ է տալիս հասնել բնիկ GPU հյուսվածքների կատարողականությանը, սակայն ապահովում է սեղմման ավելի բարձր մակարդակ:
Basis-ը միջանկյալ ձևաչափ է, որն ապահովում է GPU-ի հյուսվածքների արագ տրանսկոդավորումը տարբեր ցածր մակարդակի ձևաչափերի՝ օգտագործելուց առաջ ինչպես աշխատասեղանի համակարգերում, այնպես էլ շարժական սարքերում: Ներկայումս աջակցվում են PVRTC1 (4bpp RGB), BC7 (6 RGB ռեժիմ), BC1-5, ETC1 և ETC2 ձևաչափեր: Ապագա աջակցություն է սպասվում ASTC ձևաչափի (RGB կամ RGBA) և 4/5 RGBA ռեժիմների համար BC7 և 4bpp RGBA PVRTC1-ի համար:
Հիմնական ձևաչափի հյուսվածքները զբաղեցնում են 6-8 անգամ ավելի քիչ վիդեո հիշողություն և պահանջում են փոխանցել մոտավորապես կիսով չափ տվյալներ, քան սովորական հյուսվածքները՝ հիմնված JPEG ձևաչափի վրա և 10-25%-ով պակաս, քան RDO ռեժիմում գտնվող հյուսվածքները: Օրինակ, JPEG պատկերի չափը 891 ԿԲ և ETC1 հյուսվածքը 1 ՄԲ է, տվյալների չափը Basis ձևաչափում ամենաբարձր որակի ռեժիմում 469 ԿԲ է: Տեսանյութերի հիշողության մեջ տեքստուրներ տեղադրելիս թեստերում օգտագործված JPEG և PNG հյուսվածքները սպառում էին 16 ՄԲ հիշողություն, մինչդեռ հյուսվածքները
BC2, PVRTC1 և ETC1 թարգմանության համար անհրաժեշտ է 1 ՄԲ հիշողություն, իսկ BC4 թարգմանության համար՝ 7 ՄԲ:
Գործող հավելվածները Basis Universal-ին տեղափոխելու գործընթացը բավականին պարզ է: Բավական է վերակոդավորել առկա հյուսվածքները կամ պատկերները նոր ձևաչափի մեջ՝ օգտագործելով նախագծով նախատեսված «basisu» կոմունալը՝ ընտրելով որակի պահանջվող մակարդակը: Հաջորդը, հավելվածում, նախքան մատուցման կոդը, դուք պետք է նախաստորագրեք baseu տրանսկոդավորիչը, որը պատասխանատու է միջանկյալ ձևաչափը ներկայիս GPU-ի կողմից աջակցվող ձևաչափի թարգմանելու համար: Միևնույն ժամանակ, պատկերները ողջ մշակման շղթայում մնում են սեղմված, ներառյալ սեղմված ձևով բեռնված GPU-ում: Ամբողջ պատկերը կանխարգելիչ կերպով փոխակերպելու փոխարեն, GPU-ն ընտրողաբար վերծանում է պատկերի միայն անհրաժեշտ մասերը:
Այն աջակցում է տարասեռ հյուսվածքների զանգվածների (խորանարդային քարտեզների), ծավալային հյուսվածքների, հյուսվածքների զանգվածների, mipmap մակարդակների, տեսանյութերի հաջորդականությունների կամ կամայական հյուսվածքների բեկորների պահպանմանը մեկ ֆայլում: Օրինակ՝ հնարավոր է մի շարք պատկերներ փաթեթավորել մեկ ֆայլում՝ փոքր տեսանյութեր ստեղծելու համար, կամ միավորել մի քանի հյուսվածքներ՝ օգտագործելով ընդհանուր գունապնակ բոլոր պատկերների համար և հեռացնելով բնորոշ պատկերների ձևանմուշները: The Basis Universal encoder-ի ներդրումն աջակցում է բազմաթելային կոդավորումը՝ օգտագործելով OpenMP: Տրանսկոդավորիչը ներկայումս աշխատում է միայն մեկ թելային ռեժիմում:
Բացի
Նշվում է, որ տեսանյութը հետագա մշակմամբ միայն GPU-ի կողմից ներկառուցելու հնարավորությունը Basis Universal-ին դարձնում է հետաքրքիր լուծում WebAssembly-ում և WebGL-ում դինամիկ օգտատերերի միջերեսներ ստեղծելու համար, որոնք կարող են միաժամանակ ցուցադրել հարյուրավոր փոքր տեսանյութեր՝ նվազագույն պրոցեսորի ծանրաբեռնվածությամբ: Քանի դեռ SIMD հրահանգները չեն կարող օգտագործվել WebAssembly-ում ավանդական կոդեկներով, կատարողականի այս մակարդակը դեռ հասանելի չէ, ուստի հյուսվածքների վրա հիմնված տեսանյութը կարող է օգտագործվել այն տարածքներում, որտեղ սովորական տեսանյութը կիրառելի չէ: Տեսանյութի լրացուցիչ օպտիմալացումներով ծածկագիրը ներկայումս պատրաստվում է հրապարակման, ներառյալ օգտագործման հնարավորությունը
Source: opennet.ru