Google dan Binomial
Basis Universal melengkapi sebelum ini
Format Basis Universal membolehkan anda mencapai prestasi tekstur GPU asli, tetapi memberikan tahap pemampatan yang lebih tinggi.
Basis ialah format perantaraan yang menyediakan transcoding pantas tekstur GPU kepada pelbagai format peringkat rendah untuk digunakan pada kedua-dua sistem desktop dan peranti mudah alih sebelum digunakan. Pada masa ini disokong ialah format PVRTC1 (4bpp RGB), BC7 (mod 6 RGB), BC1-5, ETC1 dan ETC2. Sokongan masa hadapan dijangka untuk format ASTC (RGB atau RGBA) dan mod 4/5 RGBA untuk BC7 dan 4bpp RGBA untuk PVRTC1.
Tekstur dalam format asas menggunakan 6-8 kali lebih sedikit memori video dan memerlukan pemindahan kira-kira separuh data daripada tekstur biasa berdasarkan format JPEG dan 10-25% kurang daripada tekstur dalam mod RDO. Contohnya, dengan saiz imej JPEG 891 KB dan tekstur ETC1 1 MB, saiz data dalam format Asas ialah 469 KB dalam mod kualiti tertinggi. Apabila meletakkan tekstur dalam memori video, tekstur JPEG dan PNG yang digunakan dalam ujian menggunakan 16 MB memori, manakala tekstur dalam
Asas memerlukan 2 MB memori untuk terjemahan kepada BC1, PVRTC1 dan ETC1, dan 4 MB untuk terjemahan kepada BC7.
Proses pemindahan aplikasi sedia ada ke Basis Universal agak mudah. Ia cukup untuk mengekod semula tekstur atau imej sedia ada ke dalam format baharu menggunakan utiliti "basisu" yang disediakan oleh projek, memilih tahap kualiti yang diperlukan. Seterusnya, dalam aplikasi, sebelum kod rendering, anda perlu memulakan transcoder basisu, yang bertanggungjawab untuk menterjemahkan format perantaraan ke dalam format yang disokong oleh GPU semasa. Pada masa yang sama, imej di seluruh rangkaian pemprosesan kekal dimampatkan, termasuk dimuatkan dalam bentuk mampat ke dalam GPU. Daripada mengalihkan pengekodan keseluruhan imej terlebih dahulu, GPU secara selektif menyahkod bahagian imej yang diperlukan sahaja.
Ia menyokong penjimatan tatasusunan tekstur heterogen (peta kiub), tekstur isipadu, tatasusunan tekstur, tahap mipmap, jujukan video atau serpihan tekstur sembarangan dalam satu fail. Sebagai contoh, adalah mungkin untuk membungkus satu siri imej dalam satu fail untuk mencipta video kecil, atau menggabungkan beberapa tekstur menggunakan palet biasa untuk semua imej dan menyahduplikasi templat imej biasa. Pelaksanaan pengekod Basis Universal menyokong pengekodan berbilang benang menggunakan OpenMP. Transkoder pada masa ini hanya berfungsi dalam mod satu benang.
tambahan
Adalah diperhatikan bahawa keupayaan untuk membenamkan video dengan pemprosesan berikutnya hanya pada bahagian GPU menjadikan Basis Universal penyelesaian yang menarik untuk mencipta antara muka pengguna dinamik pada WebAssembly dan WebGL, yang boleh memaparkan ratusan video kecil secara serentak dengan beban CPU yang minimum. Sehingga arahan SIMD boleh digunakan dalam WebAssembly dengan codec tradisional, tahap prestasi ini masih belum boleh dicapai, jadi video berasaskan tekstur boleh digunakan di kawasan yang tidak boleh digunakan untuk video konvensional. Kod dengan pengoptimuman tambahan untuk video sedang disediakan untuk penerbitan, termasuk keupayaan untuk digunakan
Sumber: opennet.ru