Google va binom
Basis Universal ilgari to'ldiradi
Basis Universal formati sizga mahalliy GPU teksturalarining ishlashiga erishish imkonini beradi, lekin yuqori darajadagi siqishni ta'minlaydi.
Basis - foydalanishdan oldin ish stoli tizimlarida ham, mobil qurilmalarda ham foydalanish uchun turli xil past darajadagi formatlarga GPU teksturalarini tezkor transkodlashni ta'minlovchi oraliq format. Hozirda PVRTC1 (4bpp RGB), BC7 (6 RGB rejimi), BC1-5, ETC1 va ETC2 formatlari qo'llab-quvvatlanadi. Kelajakda ASTC formati (RGB yoki RGBA) va BC4 uchun 5/7 RGBA va PVRTC4 uchun 1bpp RGBA rejimlari uchun yordam kutilmoqda.
Asosiy formatdagi teksturalar 6-8 baravar kam video xotirani egallaydi va JPEG formatidagi odatiy teksturalarga qaraganda taxminan yarmi va RDO rejimidagi teksturalarga qaraganda 10-25% kamroq ma'lumotlarni uzatishni talab qiladi. Misol uchun, JPEG tasvir hajmi 891 KB va ETC1 teksturasi 1 MB bo'lgan holda, Basis formatidagi ma'lumotlar hajmi eng yuqori sifat rejimida 469 KB ni tashkil qiladi. Teksturalarni video xotiraga joylashtirishda testlarda ishlatiladigan JPEG va PNG teksturalari 16 MB xotirani iste'mol qilgan, teksturalar esa XNUMX MB xotirani iste'mol qilgan.
BC2, PVRTC1 va ETC1 ga tarjima qilish uchun 1 MB xotira va BC4 ga tarjima qilish uchun 7 MB xotira talab qilinadi.
Mavjud ilovalarni Basis Universal-ga ko'chirish jarayoni juda oddiy. Mavjud to'qimalarni yoki tasvirlarni loyiha tomonidan taqdim etilgan "basisu" yordam dasturidan foydalanib, kerakli sifat darajasini tanlab, yangi formatga qayta kodlash kifoya. Keyinchalik, dasturda, ko'rsatish kodidan oldin, oraliq formatni joriy GPU tomonidan qo'llab-quvvatlanadigan formatga o'tkazish uchun mas'ul bo'lgan baseu transkoderini ishga tushirishingiz kerak. Shu bilan birga, butun ishlov berish zanjiri bo'ylab tasvirlar siqilgan holda qoladi, shu jumladan siqilgan shaklda GPUga yuklanadi. Butun tasvirni oldindan transkod qilish o'rniga, GPU faqat rasmning kerakli qismlarini tanlab dekodlaydi.
U heterojen tekstura massivlarini (kub xaritalari), hajmli teksturalarni, tekstura massivlarini, mipmap darajalarini, video ketma-ketliklarini yoki ixtiyoriy tekstura qismlarini bitta faylda saqlashni qo'llab-quvvatlaydi. Misol uchun, kichik videolarni yaratish uchun bir faylda bir qator rasmlarni to'plash yoki barcha tasvirlar uchun umumiy palitradan foydalangan holda bir nechta teksturalarni birlashtirish va odatiy rasm shablonlarini deuplikatsiya qilish mumkin. Basis Universal kodlovchi ilovasi OpenMP yordamida ko'p tarmoqli kodlashni qo'llab-quvvatlaydi. Transkoder hozirda faqat bitta tarmoqli rejimda ishlaydi.
qo'shimcha ravishda
Ta'kidlanishicha, videoni keyinchalik qayta ishlash bilan faqat GPU tomoniga joylashtirish imkoniyati Basis Universal-ni WebAssembly va WebGL-da dinamik foydalanuvchi interfeyslarini yaratish uchun qiziqarli yechimga aylantiradi, bu esa bir vaqtning o'zida minimal protsessor yuki bilan yuzlab kichik videolarni namoyish qilishi mumkin. SIMD ko'rsatmalaridan WebAssembly-da an'anaviy kodeklar bilan foydalanilmaguncha, bu unumdorlik darajasiga hali erishib bo'lmaydi, shuning uchun an'anaviy video qo'llanilmaydigan joylarda teksturaga asoslangan videodan foydalanish mumkin. Video uchun qo‘shimcha optimallashtirilgan kod hozirda nashrga tayyorlanmoqda, shu jumladan foydalanish imkoniyati
Manba: opennet.ru