Siostam teannachaidh inneach bunaiteach Google agus Binomial le còd fosgailte

Google agus Binomial fhosgladh teacsaichean stòr Stèidh Uile-choitcheann, codec airson teannachadh inneach èifeachdach agus cruth faidhle “.basis” uile-choitcheann co-cheangailte airson a bhith a’ cuairteachadh inneach stèidhichte air ìomhaigh is bhidio. Tha an còd buileachaidh iomraidh sgrìobhte ann an C ++ agus air a thoirt seachad le cead fo Apache 2.0.

Tha Basis Universal a’ cur ris roimhe foillsichte Siostam teannachaidh dàta Draco 3D agus a’ feuchainn ris an duilgheadas fhuasgladh le bhith a’ toirt seachad inneach airson an GPU. Gu ruige seo, tha luchd-leasachaidh air a bhith cuibhrichte ri bhith a’ taghadh eadar cruthan aig ìre ìosal a choileanas àrd-choileanadh ach a tha sònraichte do GPU agus a’ gabhail tòrr àite diosc, agus cruthan eile a choileanas lughdachadh meud ach nach urrainn farpais ri inneach GPU ann an coileanadh.

Leigidh cruth Basis Universal leat coileanadh inneach GPU dùthchasach a choileanadh, ach tha e a’ toirt seachad ìre teannachaidh nas àirde.
Is e cruth eadar-mheadhanach a th’ ann am Bunait a bheir seachad tar-chur luath de dh’ inneach GPU gu diofar chruthan aig ìre ìosal airson an cleachdadh air gach cuid siostaman deasg agus innealan gluasadach mus tèid an cleachdadh. An-dràsta a’ faighinn taic tha cruthan PVRTC1 (4bpp RGB), BC7 (modh 6 RGB), BC1-5, ETC1, agus ETC2. Tha dùil ri taic san àm ri teachd airson cruth ASTC (RGB no RGBA) agus modhan 4/5 RGBA airson BC7 agus 4bpp RGBA airson PVRTC1.

Siostam teannachaidh inneach bunaiteach Google agus Binomial le còd fosgailte

Bidh inneach ann an cruth bun-stèidh a’ toirt suas 6-8 tursan nas lugha de chuimhne bhidio agus feumaidh iad timcheall air leth uimhir de dhàta a ghluasad ri inneach àbhaisteach stèidhichte air cruth JPEG agus 10-25% nas lugha na inneach ann am modh RDO. Mar eisimpleir, le meud ìomhaigh JPEG de 891 KB agus inneach ETC1 de 1 MB, is e meud an dàta ann an cruth Basis 469 KB anns a’ mhodh càileachd as àirde. Nuair a bha iad a’ cur inneach ann an cuimhne bhidio, dh’ ith inneach JPEG agus PNG a chaidh a chleachdadh ann an deuchainnean 16 MB de chuimhne, fhad ‘s a bha inneach ann an
Dh'fheumadh bunait 2 MB de chuimhne airson eadar-theangachadh gu BC1, PVRTC1 agus ETC1, agus 4 MB airson eadar-theangachadh gu BC7.

Siostam teannachaidh inneach bunaiteach Google agus Binomial le còd fosgailte

Tha am pròiseas airson imrich thagraidhean a th’ ann mar-thà gu Basis Universal gu math sìmplidh. Tha e gu leòr inneach no ìomhaighean a th’ ann mar-thà ath-chòdachadh gu cruth ùr a’ cleachdadh a’ ghoireas “basisu” a thug am pròiseact seachad, a’ taghadh na h-ìre càileachd a tha a dhìth. An ath rud, anns an tagradh, ron chòd tairgse, feumaidh tu an baseu transcoder a thòiseachadh, air a bheil uallach airson an cruth eadar-mheadhanach eadar-theangachadh gu cruth le taic bhon GPU gnàthach. Aig an aon àm, tha ìomhaighean air feadh na sèine giollachd gu lèir fhathast teann, a ’toirt a-steach a bhith air an luchdachadh ann an cruth teann a-steach don GPU. An àite a bhith ag ath-chòdachadh an ìomhaigh gu lèir ro-làimh, bidh an GPU gu roghnach a’ còdachadh dìreach na pàirtean riatanach den ìomhaigh.

Bidh e a’ toirt taic do bhith a’ sàbhaladh arrays inneach heterogeneous (cubemaps), inneach tomhas-lìonaidh, arrays inneach, ìrean mipmap, sreathan bhidio no mìrean inneach neo-riaghailteach ann an aon fhaidhle. Mar eisimpleir, tha e comasach sreath de dhealbhan a phacadh ann an aon fhaidhle gus bhideothan beaga a chruthachadh, no grunn inneach a chur còmhla le bhith a’ cleachdadh paileas cumanta airson a h-uile ìomhaigh agus teamplaidean ìomhaigh àbhaisteach a dhì-dhùblachadh. Tha buileachadh encoder Basis Universal a’ toirt taic do chòdachadh ioma-snàthainn a’ cleachdadh OpenMP. Chan obraich an transcoder an-dràsta ach ann am modh aon-snàthainn.

a bharrachd air sin ri fhaighinn Decoder Basic Universal airson brobhsairean, air a lìbhrigeadh ann an cruth WebAssembly, a ghabhas cleachdadh ann an tagraidhean lìn stèidhichte air WebGL. Aig a’ cheann thall, tha Google an dùil taic a thoirt do Basis Universal anns a h-uile prìomh bhrobhsair agus a bhrosnachadh mar chruth inneach so-ghiùlain airson WebGL agus sònrachadh san àm ri teachd lìn GPU, a tha gu bun-bheachdail coltach ris na APIan Vulkan, Metal agus Direct3D 12.

Thathas a’ toirt fa-near gu bheil an comas bhidio a chuir a-steach leis a ’ghiollachd às deidh sin a-mhàin air taobh GPU a’ fàgail Basis Universal na fhuasgladh inntinneach airson eadar-aghaidh cleachdaiche fiùghantach a chruthachadh air WebAssembly agus WebGL, as urrainn ceudan de bhideothan beaga a thaisbeanadh aig an aon àm le glè bheag de luchd CPU. Gus an tèid stiùireadh SIMD a chleachdadh ann an WebAssembly le codecs traidiseanta, chan eil an ìre coileanaidh seo comasach fhathast a choileanadh, agus mar sin faodar bhidio stèidhichte air inneach a chleachdadh ann an raointean far nach eil bhidio àbhaisteach iomchaidh. Còd le optimizations a bharrachd airson bhidio ga ullachadh an-dràsta airson fhoillseachadh, a 'gabhail a-steach comas a chleachdadh I-frèamaichean agus P-frèamaichean le taic pleadhaig atharrachail (CR).

Source: fosgailtenet.ru

Cuir beachd ann