Google na Mfumo wa ukandamizaji wa muundo wa Binomial wa Basis Universal

Google na Binomial kufunguliwa maandishi ya chanzo Msingi wa Ulimwenguni, kodeki ya ukandamizaji bora wa unamu na umbizo la faili linalohusishwa zima la ".basis" kwa ajili ya kusambaza maumbo kulingana na picha na video. Nambari ya utekelezaji wa kumbukumbu imeandikwa katika C++ na hutolewa leseni chini ya Apache 2.0.

Msingi wa Universal unakamilisha hapo awali iliyochapishwa Mfumo wa ukandamizaji wa data wa Draco 3D na hujaribu kutatua tatizo kwa kusambaza maumbo kwa GPU. Hadi sasa, wasanidi programu wamewekewa kikomo cha kuchagua kati ya miundo ya kiwango cha chini inayofikia utendakazi wa hali ya juu lakini ni mahususi ya GPU na inachukua nafasi nyingi ya diski, na miundo mingine ambayo inapunguza ukubwa lakini haiwezi kushindana na maumbo ya GPU katika utendakazi.

Umbizo la Msingi wa Universal hukuruhusu kufikia utendakazi wa maumbo asilia ya GPU, lakini hutoa kiwango cha juu cha ukandamizaji.
Msingi ni umbizo la kati ambalo hutoa upitishaji wa haraka wa maumbo ya GPU kwa umbizo mbalimbali za kiwango cha chini kwa ajili ya matumizi ya mifumo ya kompyuta ya mezani na vifaa vya mkononi kabla ya matumizi. Zinatumika kwa sasa ni miundo ya PVRTC1 (4bpp RGB), BC7 (modi 6 ya RGB), BC1-5, ETC1 na ETC2. Usaidizi wa siku zijazo unatarajiwa kwa umbizo la ASTC (RGB au RGBA) na modi 4/5 za RGBA kwa BC7 na 4bpp RGBA kwa PVRTC1.

Google na Mfumo wa ukandamizaji wa muundo wa Binomial wa Basis Universal

Miundo katika umbizo la msingi huchukua kumbukumbu ya video mara 6-8 na inahitaji kuhamisha takriban nusu ya data kama vile maumbo ya kawaida kulingana na umbizo la JPEG na 10-25% chini ya maumbo katika modi ya RDO. Kwa mfano, ikiwa na saizi ya picha ya JPEG ya 891 KB na muundo wa ETC1 wa MB 1, saizi ya data katika umbizo la Msingi ni 469 KB katika hali ya ubora wa juu zaidi. Wakati wa kuweka maandishi kwenye kumbukumbu ya video, maandishi ya JPEG na PNG yaliyotumika katika majaribio yalitumia kumbukumbu ya MB 16, huku maandishi yakiwa kwenye
Msingi unahitajika MB 2 za kumbukumbu kwa tafsiri kwa BC1, PVRTC1 na ETC1, na MB 4 kwa tafsiri hadi BC7.

Google na Mfumo wa ukandamizaji wa muundo wa Binomial wa Basis Universal

Mchakato wa kuhamishia programu zilizopo kwa Basis Universal ni rahisi sana. Inatosha kurejesha maandishi au picha zilizopo katika muundo mpya kwa kutumia matumizi ya "basisu" iliyotolewa na mradi, kuchagua kiwango cha ubora kinachohitajika. Ifuatayo, katika programu, kabla ya msimbo wa utoaji, unahitaji kuanzisha transcoder ya basisu, ambayo inawajibika kwa kutafsiri umbizo la kati katika umbizo linaloungwa mkono na GPU ya sasa. Wakati huo huo, picha katika msururu mzima wa uchakataji husalia zimebanwa, ikiwa ni pamoja na kupakiwa katika fomu iliyobanwa kwenye GPU. Badala ya kupitisha picha nzima kwa urahisi, GPU huchagua tu sehemu muhimu za picha.

Inaauni uhifadhi wa safu tofauti za unamu (cubemaps), muundo wa ujazo, safu za unamu, viwango vya mipmap, mifuatano ya video au vipande kiholela vya unamu katika faili moja. Kwa mfano, inawezekana kupakia mfululizo wa picha katika faili moja ili kuunda video ndogo, au kuchanganya textures kadhaa kwa kutumia palette ya kawaida kwa picha zote na kuiga violezo vya picha vya kawaida. Utekelezaji wa usimbaji wa Msingi wa Universal unaauni usimbaji wa nyuzi nyingi kwa kutumia OpenMP. Transcoder kwa sasa inafanya kazi katika hali ya nyuzi moja pekee.

kuongeza inapatikana Kisimbuaji cha Msingi cha Universal cha vivinjari, kilichotolewa katika umbizo la WebAssembly, ambacho kinaweza kutumika katika programu za wavuti zinazotegemea WebGL. Hatimaye, Google inakusudia kusaidia Basis Universal katika vivinjari vyote vikuu na kuitangaza kama umbizo la maandishi linalobebeka kwa WebGL na ubainifu wa siku zijazo. WebGPU, ambayo kimawazo inafanana na API za Vulkan, Metal na Direct3D 12.

Imebainika kuwa uwezo wa kupachika video na usindikaji wake unaofuata tu kwenye upande wa GPU hufanya Basis Universal kuwa suluhisho la kuvutia la kuunda miingiliano ya watumiaji yenye nguvu kwenye WebAssembly na WebGL, ambayo inaweza kuonyesha wakati huo huo mamia ya video ndogo na mzigo mdogo wa CPU. Hadi maagizo ya SIMD yaweze kutumika katika WebAssembly na kodeki za kitamaduni, kiwango hiki cha utendakazi bado hakijaweza kufikiwa, kwa hivyo video inayotegemea maandishi inaweza kutumika katika maeneo ambayo video ya kawaida haitumiki. Msimbo wenye uboreshaji zaidi wa video kwa sasa unatayarishwa ili kuchapishwa, ikiwa ni pamoja na uwezo wa kutumia Muafaka wa I na muafaka wa P kwa usaidizi wa pedi zinazobadilika (CR).

Chanzo: opennet.ru

Kuongeza maoni