Google a Binomial Open Source Basis Universal Texturkompressiounssystem

Google a Binomial opgemaach Quelltexter Universell Basis, e Codec fir effizient Texturkompressioun an en assoziéierten universelle ".basis" Dateiformat fir Bild- a Videobaséiert Texturen ze verdeelen. D'Referenz Implementatioun Code ass an C ++ geschriwwen an geliwwert lizenzéiert ënner Apache 2.0.

Basis Universal ergänzt virdrun publizéiert Draco 3D Datekompressiounssystem a probéiert de Problem mat der Versuergung vun Texturen fir d'GPU ze léisen. Bis elo sinn d'Entwéckler limitéiert op d'Wiel tëscht Low-Level Formater déi héich Leeschtung erreechen, awer GPU-spezifesch sinn a vill Plaatz ophuelen, an aner Formater déi d'Gréisst reduzéieren, awer net mat GPU Texturen an der Leeschtung konkurréiere kënnen.

D'Basis Universal Format erlaabt Iech d'Performance vun native GPU Texturen z'erreechen, awer bitt e méi héije Kompressiounsniveau.
Basis ass en Zwëschenformat dat séier Transkodéierung vu GPU-Texturen op verschidde Low-Level Formater ubitt fir souwuel op Desktop Systemer wéi och op mobilen Apparater virum Gebrauch ze benotzen. Aktuell ënnerstëtzt sinn PVRTC1 (4bpp RGB), BC7 (6 RGB Modus), BC1-5, ETC1, an ETC2 Formater. Zukünfteg Ënnerstëtzung gëtt erwaart fir ASTC Format (RGB oder RGBA) an 4/5 RGBA Modi fir BC7 a 4bpp RGBA fir PVRTC1.

Google a Binomial Open Source Basis Universal Texturkompressiounssystem

Texturen am Basisformat huelen 6-8 Mol manner Videospeicher an erfuerderen ongeféier hallef sou vill Daten iwwerdroe wéi typesch Texturen op Basis vum JPEG Format an 10-25% manner wéi Texturen am RDO Modus. Zum Beispill, mat enger JPEG Bildgréisst vun 891 KB an enger ETC1 Textur vun 1 MB, ass d'Dategréisst am Basisformat 469 KB am héchste Qualitéitsmodus. Wann Dir Texturen am Video Memory placéiert, hunn JPEG- a PNG-Texturen, déi an Tester benotzt goufen, 16 MB Erënnerung verbraucht, wärend Texturen an
Basis erfuerderlech 2 MB Erënnerung fir Iwwersetzung op BC1, PVRTC1 an ETC1, a 4 MB fir Iwwersetzung op BC7.

Google a Binomial Open Source Basis Universal Texturkompressiounssystem

De Prozess fir existent Uwendungen op Basis Universal ze migréieren ass ganz einfach. Et ass genuch fir existent Texturen oder Biller an en neit Format ëmzekodéieren mat dem "Basis" Utility, dee vum Projet zur Verfügung gestallt gëtt, déi néideg Qualitéitsniveau auswielen. Als nächst, an der Applikatioun, virum Rendering Code, musst Dir de Basistranscoder initialiséieren, dee verantwortlech ass fir den Zwëschenformat an de Format vun der aktueller GPU ze iwwersetzen. Zur selwechter Zäit bleiwen d'Biller duerch d'ganz Veraarbechtungskette kompriméiert, inklusiv a kompriméiert Form an d'GPU gelueden. Amplaz vum ganze Bild viraus ze transkodéieren, decodéiert d'GPU selektiv nëmmen déi néideg Deeler vum Bild.

Et ënnerstëtzt späicheren heterogen Textur Arrays (Cubemaps), volumetresch Texturen, Textur Arrays, mipmap Niveauen, Video Sequenzen oder arbiträr Textur Fragmenter an enger Datei. Zum Beispill ass et méiglech eng Serie vu Biller an enger Datei ze packen fir kleng Videoen ze kreéieren, oder verschidde Texturen mat enger gemeinsamer Palette fir all Biller ze kombinéieren an typesch Bildschablounen ze deduplizéieren. D'Basis Universal Encoder Implementatioun ënnerstëtzt Multi-threaded Kodéierung mat OpenMP. Den Transcoder funktionnéiert am Moment nëmmen am Single-threaded Modus.

Zousätzlech verfügbar Basis Universal Decoder fir Browser, geliwwert am WebAssembly Format, deen an WebGL-baséiert Webapplikatiounen benotzt ka ginn. Schlussendlech wëll Google Basis Universal an alle grousse Browser ënnerstëtzen an et als portable Texturformat fir WebGL an eng zukünfteg Spezifizéierung förderen WebGPU, konzeptuell ähnlech wéi de Vulkan, Metal an Direct3D 12 APIs.

Et gëtt bemierkt datt d'Fäegkeet fir Video mat senger spéiderer Veraarbechtung nëmmen op der GPU Säit z'integréieren Basis Universal eng interessant Léisung fir dynamesch User-Interfaces op WebAssembly a WebGL ze kreéieren, déi gläichzäiteg Honnerte vu klenge Videoe mat minimaler CPU-Laascht weisen. Bis SIMD Instruktioune kënnen an WebAssembly mat traditionelle Codecs benotzt ginn, ass dësen Niveau vun der Leeschtung nach net erreechbar, sou datt Textur-baséiert Video kann a Beräicher benotzt ginn wou konventionell Video net applicabel ass. Code mat zousätzlech Optimisatiounen fir Video gëtt am Moment fir d'Publikatioun virbereet, och d'Fäegkeet ze benotzen I-Frames an P-Frames mat adaptiven Polsterung (CR) Ënnerstëtzung.

Source: opennet.ru

Setzt e Commentaire