Google ug Binomial open source Basis Universal texture compression system

Google ug Binomial giablihan tinubdan nga mga teksto Universal Basis, usa ka codec alang sa episyente nga texture compression ug usa ka unibersal nga ".basis" nga format sa file alang sa pag-apod-apod sa mga texture nga gibase sa imahe ug video. Ang code sa pagpatuman sa pakisayran gisulat sa C++ ug gihatag lisensyado ubos sa Apache 2.0.

Ang Basis Universal nagsangkap kaniadto gipatik Draco 3D data compression system ug naningkamot nga masulbad ang problema sa pagsuplay sa mga texture para sa GPU. Hangtud karon, ang mga developers limitado sa pagpili tali sa ubos nga lebel nga mga format nga makab-ot ang taas nga performance apan ang GPU-specific ug mokuha og daghang disk space, ug uban pang mga format nga makab-ot ang pagkunhod sa gidak-on apan dili makigkompetensya sa GPU texture sa performance.

Ang Basis Universal format nagtugot kanimo sa pagkab-ot sa performance sa lumad nga GPU texture, apan naghatag og mas taas nga lebel sa compression.
Ang Basis usa ka intermediate nga pormat nga naghatag ug paspas nga transcoding sa GPU textures ngadto sa lain-laing ubos nga lebel nga mga format para magamit sa desktop system ug mobile device sa dili pa gamiton. Kasamtangang gisuportahan mao ang PVRTC1 (4bpp RGB), BC7 (6 RGB mode), BC1-5, ETC1, ug ETC2 nga mga format. Ang umaabot nga suporta gilauman alang sa ASTC format (RGB o RGBA) ug 4/5 RGBA modes alang sa BC7 ug 4bpp RGBA alang sa PVRTC1.

Google ug Binomial open source Basis Universal texture compression system

Ang mga texture sa sukaranan nga pormat mokuha sa 6-8 ka beses nga mas gamay nga memorya sa video ug kinahanglan nga ibalhin ang gibana-bana nga katunga sa daghang datos sama sa kasagaran nga mga texture base sa JPEG format ug 10-25% nga mas ubos kaysa mga texture sa RDO mode. Pananglitan, nga adunay JPEG nga gidak-on sa hulagway nga 891 KB ug usa ka ETC1 nga texture nga 1 MB, ang gidak-on sa datos sa Basis format mao ang 469 KB sa pinakataas nga kalidad nga mode. Kung nagbutang sa mga texture sa memorya sa video, ang mga texture sa JPEG ug PNG nga gigamit sa mga pagsulay naggamit sa 16 MB nga memorya, samtang ang mga texture sa
Ang sukaranan nanginahanglan 2 MB nga memorya alang sa paghubad sa BC1, PVRTC1 ug ETC1, ug 4 MB alang sa paghubad sa BC7.

Google ug Binomial open source Basis Universal texture compression system

Ang proseso sa pagbalhin sa kasamtangan nga mga aplikasyon sa Basis Universal yano ra. Igo na ang pag-recode sa kasamtangan nga mga texture o mga imahe sa usa ka bag-ong format gamit ang "basisu" nga utility nga gihatag sa proyekto, pagpili sa gikinahanglan nga lebel sa kalidad. Sunod, sa aplikasyon, sa wala pa ang rendering code, kinahanglan nimo nga unahon ang basisu transcoder, nga responsable sa paghubad sa intermediate format sa format nga gisuportahan sa karon nga GPU. Sa parehas nga oras, ang mga imahe sa tibuuk nga kadena sa pagproseso nagpabilin nga gi-compress, lakip ang pagkarga sa gi-compress nga porma sa GPU. Imbis nga pre-emptively transcoding sa tibuok nga hulagway, ang GPU pilion nga nag-decode lamang sa gikinahanglan nga mga bahin sa hulagway.

Gisuportahan niini ang pag-save sa heterogeneous texture arrays (cubemaps), volumetric texture, texture arrays, mipmap level, video sequence o arbitrary texture fragment sa usa ka file. Pananglitan, posible nga mag-pack ug serye sa mga imahe sa usa ka file aron makamugna og gagmay nga mga video, o maghiusa sa daghang mga texture gamit ang usa ka sagad nga palette alang sa tanan nga mga imahe ug pag-deduplicate sa tipikal nga mga template sa imahe. Ang pagpatuman sa Basis Universal encoder nagsuporta sa multi-threaded encoding gamit ang OpenMP. Ang transcoder sa pagkakaron naglihok lamang sa single-threaded mode.

dugang magamit Basis Universal decoder para sa mga browser, nga gihatag sa WebAssembly format, nga magamit sa WebGL-based nga mga web application. Sa katapusan, gusto sa Google nga suportahan ang Basis Universal sa tanan nga dagkong mga browser ug i-promote kini isip usa ka portable texture format para sa WebGL ug usa ka umaabot nga detalye. WebGPU, nga sa konsepto susama sa Vulkan, Metal ug Direct3D 12 APIs.

Namatikdan nga ang abilidad sa pag-embed sa video uban sa sunod nga pagproseso niini lamang sa bahin sa GPU naghimo sa Basis Universal nga usa ka makapaikag nga solusyon alang sa paghimo sa dinamikong user interface sa WebAssembly ug WebGL, nga dungan nga makapakita sa gatusan ka gagmay nga mga video nga adunay gamay nga CPU load. Hangtud nga magamit ang mga instruksyon sa SIMD sa WebAssembly nga adunay mga tradisyonal nga codec, kini nga lebel sa pasundayag dili pa makab-ot, busa ang video nga gibase sa texture mahimong magamit sa mga lugar diin ang naandan nga video dili magamit. Ang code nga adunay dugang nga mga pag-optimize alang sa video karon giandam alang sa pagmantala, lakip ang abilidad sa paggamit I-frame ug P-frame nga adunay suporta sa adaptive padding (CR).

Source: opennet.ru

Idugang sa usa ka comment