Google und Binomial haben den Quellcode des Texturkompressionssystems Basis Universal veröffentlicht

Die Unternehmen Google und Binomial haben Quelltexte Basis Universal, einen Codec fĂŒr die effiziente Kompression von Texturen und das dazugehörige universelle Dateiformat „.basis“ zur Verbreitung von Texturen auf Basis von Bildern und Videos. Der Code der Referenzimplementierung ist in C++ geschrieben und wird geliefert unter der Apache 2.0 Lizenz.

Basis Universal ergĂ€nzt die zuvor veröffentlichte 3D-Datenkompressionssystem Draco und versucht, das Problem der Bereitstellung von Texturen fĂŒr GPUs zu lösen. Bis jetzt waren Entwickler bei der Wahl zwischen leistungsstarken, aber GPUspezifischen Formaten, die viel Speicherplatz auf der Festplatte benötigen, und anderen Formaten, die eine GrĂ¶ĂŸenreduzierung ermöglichen, aber in Bezug auf die Leistung im Vergleich zu GPU-Texturen nicht konkurrieren können, eingeschrĂ€nkt.

Das Format Basis Universal ermöglicht eine native Leistung fĂŒr GPU-Texturen, bietet jedoch eine höhere Kompressionsrate.
Basis ist ein Zwischenformat, das vor der Anwendung eine schnelle Transkodierung in verschiedene niedrigstufige Texturformate fĂŒr GPUs ermöglicht, die sowohl auf Desktop- als auch auf MobilgerĂ€ten verwendet werden. Derzeit wird die Transkodierung in die Formate PVRTC1 (4bpp RGB), BC7 (Modus 6 RGB), BC1-5, ETC1 und ETC2 unterstĂŒtzt. ZukĂŒnftig wird UnterstĂŒtzung fĂŒr das Format ASTC (RGB oder RGBA) und die Modi 4/5 RGBA fĂŒr das Format BC7 sowie 4bpp RGBA fĂŒr PVRTC1 erwartet.

Google und Binomial haben den Quellcode des Texturkompressionssystems Basis Universal veröffentlicht

Texturen im Basisformat benötigen 6-8 Mal weniger Videospeicher und erfordern ungefĂ€hr doppelt so wenig DatenĂŒbertragung wie Standardtexturen im JPEG-Format und 10-25% weniger als Texturen im RDO-Modus. Zum Beispiel, bei einer JPEG-BildgrĂ¶ĂŸe von 891 KB, und einer ETC1-Textur von 1 MB, betrĂ€gt die DatengrĂ¶ĂŸe im Basisformat bei höchster QualitĂ€t 469 KB. Bei der Speicherung der Textur im Videospeicher benötigten die in Tests verwendeten JPEG- und PNG-Texturen 16 MB Speicher, wĂ€hrend fĂŒr Texturen im Format
Basis 2 MB Speicher bei der Transkodierung nach BC1, PVRTC1 und ETC1 und 4 MB bei der Transkodierung nach BC7 benötigt wurden.

Google und Binomial haben den Quellcode des Texturkompressionssystems Basis Universal veröffentlicht

Der Prozess der Übertragung bestehender Anwendungen auf Basis Universal ist relativ einfach. Es genĂŒgt, die vorhandenen Texturen oder Bilder mit dem vom Projekt bereitgestellten Tool "basisu" in ein neues Format zu kodieren und die erforderliche QualitĂ€tsstufe auszuwĂ€hlen. Anschließend muss in der Anwendung vor dem Rendering-Code der Basisu-Decoder initialisiert werden, der fĂŒr die Übersetzung des Zwischenformats in das vom aktuellen GPU unterstĂŒtzte Format verantwortlich ist. Dabei bleiben die Bilder in der gesamten Verarbeitungskette komprimiert und werden komprimiert in die GPU geladen. Anstelle einer vorzeitigen vollstĂ€ndigen Dekodierung des Bildes dekodiert die GPU selektiv nur die benötigten Teile des Bildes.

Es wird unterstĂŒtzt, heterogene Texturarrays (Cubemap), volumetrische Texturen, Texturarrays, Mipmapping-Levels, Videosequenzen oder beliebige Texturausschnitte in einer einzigen Datei zu speichern. Beispielsweise ist es möglich, eine Serie von Bildern in einer Datei zu verpacken, um kleine Videos zu erstellen, oder mehrere Texturen mit einer gemeinsamen Palette und der Deduplication typischer Bildmuster zu kombinieren. Die Implementierung des Basis Universal Codecs unterstĂŒtzt die Multithread-Kodierung mit OpenMP. Der Decoder funktioniert derzeit nur im Einzelfadenmodus.

ZusĂ€tzlich verfĂŒgbar Basis Universal Decoder fĂŒr Browser, bereitgestellt im WebAssembly-Format, das in Webanwendungen auf Basis von WebGL verwendet werden kann. Letztendlich beabsichtigt Google, die UnterstĂŒtzung fĂŒr Basis Universal in allen gĂ€ngigen Browsern zu erreichen und es als tragbares Texturformat fĂŒr WebGL und zukĂŒnftige Spezifikationen voranzutreiben. WebGPU, konzeptionell Ă€hnlich wie die APIs von Vulkan, Metal und Direct3D 12.

Es wird festgestellt, dass die Möglichkeit, Videos mit anschließender Verarbeitung nur auf der GPU einzufĂŒgen, Basis Universal zu einer interessanten Lösung fĂŒr die Erstellung dynamischer BenutzeroberflĂ€chen in WebAssembly und WebGL macht, in denen Hunderte kleiner Videos gleichzeitig mit minimaler CPU-Belastung angezeigt werden können. Bis zur EinfĂŒhrung von SIMD-Anweisungen in WebAssembly ist ein solches Leistungsniveau bei herkömmlichen Codecs jedoch noch nicht erreichbar, weshalb texturbasiertes Video in Bereichen eingesetzt werden kann, in denen gewöhnliches Video nicht anwendbar ist. Derzeit wird ein Code mit zusĂ€tzlichen Optimierungen fĂŒr Videos vorbereitet, der die Nutzung von I-Frames und P-Frames mit UnterstĂŒtzung fĂŒr adaptive FĂŒllung (CR).

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster