Google lan Binomial open source Basis Sistem kompresi tekstur universal

Google lan Binomial dibukak teks sumber Dhasar Universal, codec kanggo kompresi tekstur efisien lan format file ".basis" universal sing gegandhengan kanggo nyebarake tekstur adhedhasar gambar lan video. Kode implementasine referensi ditulis ing C ++ lan diwenehake dilisensi ing Apache 2.0.

Basis Universal nglengkapi sadurunge diterbitake Draco 3D sistem komprèsi data lan nyoba kanggo ngatasi masalah karo nyediakake tekstur kanggo GPU. Nganti saiki, pangembang wis diwatesi kanggo milih antarane format tingkat rendah sing entuk kinerja dhuwur nanging khusus GPU lan njupuk akeh ruang disk, lan format liyane sing bisa nyuda ukuran nanging ora bisa bersaing karo tekstur GPU ing kinerja.

Format Basis Universal ngidini sampeyan entuk kinerja tekstur GPU asli, nanging menehi tingkat kompresi sing luwih dhuwur.
Basis minangka format penengah sing nyedhiyakake transcoding tekstur GPU kanthi cepet menyang macem-macem format tingkat rendah kanggo digunakake ing sistem desktop lan piranti seluler sadurunge digunakake. Saiki didhukung yaiku format PVRTC1 (4bpp RGB), BC7 (mode 6 RGB), BC1-5, ETC1, lan ETC2. Dhukungan mangsa ngarep wis samesthine kanggo format ASTC (RGB utawa RGBA) lan 4/5 mode RGBA kanggo BC7 lan 4bpp RGBA kanggo PVRTC1.

Google lan Binomial open source Basis Sistem kompresi tekstur universal

Tekstur ing format basis njupuk munggah 6-8 kaping memori video kurang lan mbutuhake transfer kira-kira setengah minangka akeh data minangka 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 Basis yaiku 469 KB ing mode kualitas paling dhuwur. Nalika nempatake tekstur ing memori video, tekstur JPEG lan PNG sing digunakake ing tes nggunakake memori 16 MB, dene tekstur ing
Basis dibutuhake 2 MB memori kanggo terjemahan kanggo BC1, PVRTC1 lan ETC1, lan 4 MB kanggo terjemahan kanggo BC7.

Google lan Binomial open source Basis Sistem kompresi tekstur universal

Proses migrasi aplikasi sing wis ana menyang Basis Universal cukup prasaja. Cukup kanggo recode tekstur utawa gambar sing wis ana menyang format anyar nggunakake sarana "basisu" sing diwenehake dening proyek kasebut, milih tingkat kualitas sing dibutuhake. Sabanjure, ing aplikasi kasebut, sadurunge kode rendering, sampeyan kudu miwiti transcoder basisu, sing tanggung jawab kanggo nerjemahake format penengah menyang format sing didhukung dening GPU saiki. Ing wektu sing padha, gambar ing kabeh rantai pangolahan tetep dikompres, kalebu dimuat ing bentuk kompres menyang GPU. Tinimbang pre-emptively transcoding kabeh gambar, GPU selektif decode mung bagean perlu saka gambar.

Ndhukung nyimpen susunan tekstur heterogen (cubemaps), tekstur volumetrik, susunan tekstur, tingkat mipmap, urutan video utawa fragmen tekstur sing sewenang-wenang ing siji file. Contone, bisa ngemas seri gambar ing siji file kanggo nggawe video cilik, utawa gabungke sawetara tekstur nggunakake palet umum kanggo kabeh gambar lan deduplikasi cithakan gambar khas. Implementasi encoder Basis Universal ndhukung enkoding multi-threaded nggunakake OpenMP. Transcoder saiki mung bisa digunakake ing mode single-threaded.

tambahan kasedhiya Dekoder Basis Universal kanggo browser, dikirim ing format WebAssembly, sing bisa digunakake ing aplikasi web basis WebGL. Pungkasane, Google arep ndhukung Basis Universal ing kabeh browser utama lan promosi minangka format tekstur portabel kanggo WebGL lan spesifikasi mangsa ngarep. WebGPU, konsep padha karo Vulkan, Metal lan Direct3D 12 API.

Kacathet menawa kemampuan kanggo nampilake video kanthi pangolahan sakteruse mung ing sisih GPU ndadekake Basis Universal minangka solusi sing menarik kanggo nggawe antarmuka pangguna dinamis ing WebAssembly lan WebGL, sing bisa nampilake atusan video cilik kanthi beban CPU minimal. Nganti instruksi SIMD bisa digunakake ing WebAssembly karo codec tradisional, tingkat kinerja iki durung bisa ditindakake, saengga video adhedhasar tekstur bisa digunakake ing wilayah sing video konvensional ora bisa ditrapake. Kode kanthi optimasi tambahan kanggo video saiki lagi disiapake kanggo publikasi, kalebu kemampuan kanggo nggunakake I-pigura lan P-pigura kanthi dhukungan padding adaptif (CR).

Source: opennet.ru

Add a comment