System cywasgu gwead ffynhonnell agored Google a Binomaidd Sail Universal

Google a Binomaidd agorwyd testunau ffynhonnell Sail Cyffredinol, codec ar gyfer cywasgu gwead effeithlon a fformat ffeil ".basis" cyffredinol cysylltiedig ar gyfer dosbarthu gweadau delwedd a fideo. Mae'r cod gweithredu cyfeirnod wedi'i ysgrifennu yn C++ a cyflenwi trwyddedig o dan Apache 2.0.

Mae Basis Universal yn ategu yn flaenorol cyhoeddi System cywasgu data Draco 3D ac yn ceisio datrys y broblem gyda chyflenwi gweadau ar gyfer y GPU. Hyd yn hyn, mae datblygwyr wedi'u cyfyngu i ddewis rhwng fformatau lefel isel sy'n cyflawni perfformiad uchel ond sy'n benodol i GPU ac yn cymryd llawer o le ar y ddisg, a fformatau eraill sy'n lleihau maint ond na allant gystadlu Γ’ gweadau GPU mewn perfformiad.

Mae fformat Basis Universal yn caniatΓ‘u ichi gyflawni perfformiad gweadau GPU brodorol, ond mae'n darparu lefel uwch o gywasgu.
Mae Sail yn fformat canolraddol sy'n darparu trawsgodio cyflym o weadau GPU i amrywiol fformatau lefel isel i'w defnyddio ar systemau bwrdd gwaith a dyfeisiau symudol cyn eu defnyddio. Yn cael eu cefnogi ar hyn o bryd mae fformatau PVRTC1 (4bpp RGB), BC7 (6 modd RGB), BC1-5, ETC1, ac ETC2. Disgwylir cefnogaeth yn y dyfodol ar gyfer fformat ASTC (RGB neu RGBA) a 4/5 moddau RGBA ar gyfer BC7 a 4bpp RGBA ar gyfer PVRTC1.

System cywasgu gwead ffynhonnell agored Google a Binomaidd Sail Universal

Mae gweadau yn y fformat sylfaen yn cymryd 6-8 gwaith yn llai o gof fideo ac mae angen trosglwyddo tua hanner cymaint o ddata Γ’ gweadau nodweddiadol yn seiliedig ar fformat JPEG a 10-25% yn llai na gweadau yn y modd RDO. Er enghraifft, gyda maint delwedd JPEG o 891 KB a gwead ETC1 o 1 MB, maint y data yn y fformat Sail yw 469 KB yn y modd ansawdd uchaf. Wrth osod gweadau mewn cof fideo, roedd gweadau JPEG a PNG a ddefnyddiwyd mewn profion yn defnyddio 16 MB o gof, tra bod gweadau mewn
Sail ofynnol 2 MB o gof ar gyfer cyfieithu i BC1, PVRTC1 ac ETC1, a 4 MB ar gyfer cyfieithu i BC7.

System cywasgu gwead ffynhonnell agored Google a Binomaidd Sail Universal

Mae'r broses o symud ceisiadau presennol i Basis Universal yn eithaf syml. Mae'n ddigon ailgodio gweadau neu ddelweddau presennol i fformat newydd gan ddefnyddio'r cyfleustodau β€œbasisu” a ddarperir gan y prosiect, gan ddewis y lefel ansawdd ofynnol. Nesaf, yn y cais, cyn y cod rendro, mae angen i chi gychwyn y trawsgodiwr sailu, sy'n gyfrifol am gyfieithu'r fformat canolradd i'r fformat a gefnogir gan y GPU cyfredol. Ar yr un pryd, mae delweddau trwy'r gadwyn brosesu gyfan yn parhau i fod yn gywasgedig, gan gynnwys cael eu llwytho ar ffurf gywasgedig i'r GPU. Yn lle trawsgodio'r ddelwedd gyfan yn rhagataliol, mae'r GPU yn dadgodio'r rhannau angenrheidiol o'r ddelwedd yn unig.

Mae'n cefnogi arbed araeau gwead heterogenaidd (mapiau ciwb), gweadau cyfeintiol, araeau gwead, lefelau mipmap, dilyniannau fideo neu ddarnau gwead mympwyol mewn un ffeil. Er enghraifft, mae'n bosibl pacio cyfres o ddelweddau mewn un ffeil i greu fideos bach, neu gyfuno sawl gwead gan ddefnyddio palet cyffredin ar gyfer pob delwedd a dad-ddyblygu templedi delwedd nodweddiadol. Mae gweithrediad amgodiwr Basis Universal yn cefnogi amgodio aml-edau gan ddefnyddio OpenMP. Ar hyn o bryd dim ond yn y modd un edau y mae'r traws-godiwr yn gweithio.

ychwanegol ar gael Datgodiwr Sail Universal ar gyfer porwyr, wedi'i gyflwyno ar fformat WebAssembly, y gellir ei ddefnyddio mewn cymwysiadau gwe sy'n seiliedig ar WebGL. Yn y pen draw, mae Google yn bwriadu cefnogi Basis Universal ym mhob prif borwr a'i hyrwyddo fel fformat gwead cludadwy ar gyfer WebGL a manyleb yn y dyfodol GweGPU, yn gysyniadol debyg i'r Vulkan, Metal a Direct3D 12 APIs.

Nodir bod y gallu i fewnosod fideo gyda'i brosesu dilynol yn unig ar ochr GPU yn gwneud Basis Universal yn ateb diddorol ar gyfer creu rhyngwynebau defnyddiwr deinamig ar WebAssembly a WebGL, a all arddangos cannoedd o fideos bach ar yr un pryd Γ’ llwyth CPU lleiaf posibl. Hyd nes y gellir defnyddio cyfarwyddiadau SIMD yn WebAssembly gyda chodecs traddodiadol, nid yw'r lefel hon o berfformiad yn gyraeddadwy eto, felly gellir defnyddio fideo seiliedig ar wead mewn meysydd lle nad yw fideo confensiynol yn berthnasol. Mae cod gydag optimeiddiadau ychwanegol ar gyfer fideo yn cael ei baratoi ar hyn o bryd i'w gyhoeddi, gan gynnwys y gallu i'w ddefnyddio I-fframiau a P-fframiau gyda chefnogaeth padin addasol (CR).

Ffynhonnell: opennet.ru

Ychwanegu sylw