Bubar Google lan Binomial ngumumake yen dheweke wis mbukak kode sumber saka Dhasar Universal, kang minangka codec kanggo ngompresi tekstur kanthi efisien lan format file .basis sing ana gandhengane kanggo nyebarake tekstur adhedhasar gambar lan video. Kode implementasi referensi ditulis ing C ++ lan kasedhiya ing lisensi Apache 2.0.
Dhasar Universal nglengkapi sistem kompresi data Draco 3D lan sampeyan nyoba ngatasi masalah kanthi pangiriman tekstur kanggo GPU.
Nganti saiki, pangembang wis diwatesi karo pilihan ing antarane format level sedheng sing ngidini kinerja dhuwur, nanging khusus kanggo GPU lan akeh ruang disk, lan format liyane sing bisa nyuda ukurane, nanging ora dheweke bisa saingan karo tekstur GPU ing kinerja.
Babagan Basis
Dhasar Universal format mbisakake level kinerja tekstur GPU asli supaya bisa digayuh, nanging menehi kompresi tingkat sing luwih dhuwur.
Basis minangka format menengah sing, sadurunge digunakake, nyedhiyakake transkoding cepet menyang macem-macem format tekstur GPU tingkat rendah sing digunakake ing sistem desktop lan piranti seluler.
Saiki, streaming didhukung ing format PVRTC1 (4bpp RGB), BC7 (mode 6 RGB), BC1-5, ETC1 lan ETC2. Mbesuk, mode A bisa didhukungSTC (RGB utawa RGBA) lan 4/5 RGBA kanggo BC7 lan 4bpp RGBA kanggo PVRTC1.
Tekstur ing format njupuk memori video 6 nganti 8 kaping luwih sithik lan mbutuhake data kurang luwih kaping pindho tinimbang tekstur khas adhedhasar format JPEG lan 10-25% kurang saka tekstur ing mode RDO.
Contone, kanthi ukuran gambar JPEG 891 KB lan tekstur ETC1 1 MB, ukuran data ing format dhasar yaiku 469 KB ing mode kualitas paling dhuwur.
Nalika nyelehake tekstur ing memori video, tekstur sing digunakake ing tes ing format JPEG lan PNG nggunakake memori 16 MB, dene tekstur ing format dhasar mbutuhake memori 2 MB nalika transmisi ing BC1, PVRTC1 lan ETC1 , lan 4 MB yen transmisi ing AC7.
Proses ngonversi aplikasi sing ana ing Basis Universal cukup gampang:
Cukup rekode tekstur utawa gambar sing ana ing format anyar nggunakake sarana "basisu" sing disedhiyakake dening proyek kasebut, milih level kualitas sing dibutuhake.
Kajaba iku, ing aplikasi, sadurunge kode, encoder kudu diinisialisasi, sing tanggung jawab kanggo nerjemahake format menengah menyang format sing kompatibel karo GPU saiki.
Ing wektu sing padha gambar saka kabeh rantai pangolahan tetep dikompres, kalebu download ing formulir sing dikompresi menyang GPU. Tinimbang rekoding kabeh gambar kanthi proaktif, GPU milih mung decode bagean sing perlu kanggo gambar.
Ndhukung nyimpen ing susunan tekstur file siji (peta kubus), tekstur akeh, susunan tekstur, level mipmap, stream video, utawa cuplikan tekstur sing sewenang-wenang.
Contone, sampeyan bisa ngemas siji file seri gambar kanggo nggawe video cilik utawa nggabungake macem-macem tekstur nggunakake palet umum kanggo kabeh gambar lan deduplikasi template gambar khas.
Google pengin basis dadi standar
Implementasi Basis Universal ndhukung enkode multithreaded nggunakake OpenMP. Recoder mung bisa digunakake ing mode utas siji.
Uga, decoder browser Basis Universal kasedhiya ing format web, sing bisa digunakake ing aplikasi web adhedhasar WebGL.
Minangka pilihan pungkasan, Google arep ndhukung Basis Universal ing kabeh browser utama lan promosi minangka format tekstur portebel kanggo WebGL lan spesifikasi WebGPU mbesuk, konseptual padha karo Vulkan, Metal, lan Direct3D API 12.
Diteliti manawa kemampuan nggabungake video karo proses pasca mung ing sisih GPU ndadekake Basis Universal dadi solusi sing menarik kanggo nggawe antarmuka panganggo dinamis ing WebAss Assembly lan WebGL, sing bisa nggambar atusan video cilik kanthi mbukak minimal CPU.
Malah kemampuan nggunakake instruksi SIMD ing WebAss Assembly kanthi codec tradisional, level performa kaya ngono durung bisa ditindakake, mula video adhedhasar tekstur bisa digunakake ing wilayah sing ora ditrapake video normal.
sumber: https://opensource.googleblog.com/
Dadi pisanan komentar