Google ve Binom açık kaynak Basis Evrensel doku sıkıştırma sistemi

Google ve Binom açılmış kaynak metinler Evrensel Temel, etkili doku sıkıştırmaya yönelik bir codec bileşeni ve görüntü ve video tabanlı dokuların dağıtımı için ilgili evrensel ".basis" dosya formatı. Referans uygulama kodu C++ ile yazılmıştır ve sağlanan Apache 2.0 altında lisanslanmıştır.

Temel Evrensel daha önce tamamlayıcılar yayınlanan Draco 3D veri sıkıştırma sistemi ve GPU için dokular sağlayarak sorunu çözmeye çalışıyor. Şimdiye kadar geliştiriciler, yüksek performans elde eden ancak GPU'ya özgü olan ve çok fazla disk alanı kaplayan düşük seviyeli formatlar ile boyut küçültme sağlayan ancak performans açısından GPU dokularıyla rekabet edemeyen diğer formatlar arasında seçim yapmakla sınırlıydı.

Temel Evrensel format, yerel GPU dokularının performansını elde etmenize olanak tanır, ancak daha yüksek düzeyde sıkıştırma sağlar.
Temel, kullanımdan önce hem masaüstü sistemlerde hem de mobil cihazlarda kullanılmak üzere GPU dokularının çeşitli düşük seviyeli formatlara hızlı bir şekilde dönüştürülmesini sağlayan bir ara formattır. Şu anda desteklenenler PVRTC1 (4bpp RGB), BC7 (6 RGB modu), BC1-5, ETC1 ve ETC2 formatlarıdır. ASTC formatı (RGB veya RGBA) ve BC4 için 5/7 RGBA modları ve PVRTC4 için 1bpp RGBA için gelecekte destek bekleniyor.

Google ve Binom açık kaynak Basis Evrensel doku sıkıştırma sistemi

Temel formattaki dokular video belleğinde 6-8 kat daha az yer kaplar ve JPEG formatına dayalı tipik dokuların yaklaşık yarısı kadar, RDO modundaki dokulardan ise %10-25 daha az veri aktarımı gerektirir. Örneğin, JPEG görüntü boyutu 891 KB ve ETC1 dokusu 1 MB olduğunda, Temel formattaki veri boyutu en yüksek kalite modunda 469 KB'dir. Dokuları video belleğine yerleştirirken, testlerde kullanılan JPEG ve PNG dokuları 16 MB bellek tüketirken,
Basis потребовалось 2 Мб памяти в случае трансляции в BC1, PVRTC1 и ETC1, и 4 Мб в случае трансляции в BC7.

Google ve Binom açık kaynak Basis Evrensel doku sıkıştırma sistemi

Mevcut uygulamaları Basis Universal'e geçirme süreci oldukça basittir. Proje tarafından sağlanan "basisu" yardımcı programını kullanarak gerekli kalite seviyesini seçerek mevcut dokuları veya görüntüleri yeni bir formatta yeniden kodlamak yeterlidir. Daha sonra, uygulamada, kod oluşturmadan önce, ara formatı mevcut GPU tarafından desteklenen formata dönüştürmekten sorumlu olan baseu kod dönüştürücüyü başlatmanız gerekir. Aynı zamanda, görüntülerin GPU'ya sıkıştırılmış biçimde yüklenmesi de dahil olmak üzere tüm işleme zinciri boyunca sıkıştırılmış halde kalır. GPU, görüntünün tamamını önceden kod dönüştürmek yerine, seçici olarak görüntünün yalnızca gerekli bölümlerinin kodunu çözer.

Heterojen doku dizilerini (küp haritaları), hacimsel dokuları, doku dizilerini, mipmap düzeylerini, video dizilerini veya rastgele doku parçalarını tek bir dosyaya kaydetmeyi destekler. Örneğin, küçük videolar oluşturmak için bir dizi görüntüyü tek bir dosyada paketlemek veya tüm görüntüler için ortak bir palet kullanarak ve tipik görüntü şablonlarını tekilleştirerek birkaç dokuyu birleştirmek mümkündür. Basis Universal kodlayıcı uygulaması, OpenMP kullanılarak çok iş parçacıklı kodlamayı destekler. Kod dönüştürücü şu anda yalnızca tek iş parçacıklı modda çalışıyor.

ayrıca kullanılabilir WebGL tabanlı web uygulamalarında kullanılabilen, WebAssembly formatında sunulan, tarayıcılar için Temel Evrensel kod çözücü. Sonuçta Google, Basis Universal'i tüm büyük tarayıcılarda desteklemeyi ve onu WebGL için taşınabilir bir doku formatı ve gelecekteki bir spesifikasyon olarak tanıtmayı planlıyor WebGPU'su, kavramsal olarak Vulkan, Metal ve Direct3D 12 API'lerine benzer.

Videoyu sonraki işlemleriyle yalnızca GPU tarafına gömme yeteneğinin, Basis Universal'i, minimum CPU yüküyle aynı anda yüzlerce küçük videoyu görüntüleyebilen WebAssembly ve WebGL'de dinamik kullanıcı arayüzleri oluşturmak için ilginç bir çözüm haline getirdiği belirtiliyor. SIMD talimatları WebAssembly'de geleneksel codec bileşenleriyle kullanılıncaya kadar bu performans düzeyine henüz ulaşılamıyor, dolayısıyla doku tabanlı video, geleneksel videonun uygulanamadığı alanlarda kullanılabilir. Video için ek optimizasyonlar içeren kod, kullanım yeteneği de dahil olmak üzere şu anda yayına hazırlanmaktadır. I-kareler ve P-kareler uyarlanabilir dolgu (CR) desteği ile.

Kaynak: opennet.ru

Yorum ekle