Google и бином
Basis Universal допълва предишното
Форматът Basis Universal ви позволява да постигнете производителността на собствените GPU текстури, но осигурява по-високо ниво на компресия.
Basis е междинен формат, който осигурява бързо прекодиране на GPU текстури в различни формати на ниско ниво за използване както на настолни системи, така и на мобилни устройства преди употреба. В момента се поддържат формати PVRTC1 (4bpp RGB), BC7 (6 RGB режим), BC1-5, ETC1 и ETC2. Очаква се бъдеща поддръжка за формат ASTC (RGB или RGBA) и режими 4/5 RGBA за BC7 и 4bpp RGBA за PVRTC1.
Текстурите в основния формат заемат 6-8 пъти по-малко видео памет и изискват прехвърляне на приблизително половината от данните, отколкото типичните текстури, базирани на JPEG формат и 10-25% по-малко от текстурите в режим RDO. Например, с размер на JPEG изображение от 891 KB и ETC1 текстура от 1 MB, размерът на данните във формат Basis е 469 KB в режим на най-високо качество. При поставяне на текстури във видео паметта, JPEG и PNG текстурите, използвани в тестовете, изразходват 16 MB памет, докато текстурите в
Основата изисква 2 MB памет за превод към BC1, PVRTC1 и ETC1 и 4 MB за превод към BC7.
Процесът на мигриране на съществуващи приложения към Basis Universal е доста прост. Достатъчно е да прекодирате съществуващите текстури или изображения в нов формат, като използвате помощната програма „basisu“, предоставена от проекта, като изберете необходимото ниво на качество. След това в приложението, преди кода за изобразяване, трябва да инициализирате транскодера на baseu, който е отговорен за превода на междинния формат във формата, поддържан от текущия GPU. В същото време изображенията по цялата верига на обработка остават компресирани, включително заредени в компресирана форма в GPU. Вместо превантивно прекодиране на цялото изображение, GPU селективно декодира само необходимите части от изображението.
Той поддържа запазване на разнородни текстурни масиви (кубични карти), обемни текстури, текстурни масиви, нива на mipmap, видео последователности или произволни текстурни фрагменти в един файл. Например, възможно е да опаковате поредица от изображения в един файл, за да създадете малки видеоклипове, или да комбинирате няколко текстури, като използвате обща палитра за всички изображения и дедупликиране на типични шаблони за изображения. Реализацията на енкодера Basis Universal поддържа многонишково кодиране с помощта на OpenMP. Понастоящем транскодерът работи само в еднопоточен режим.
Освен това
Отбелязва се, че възможността за вграждане на видео с последваща обработка само от страна на GPU прави Basis Universal интересно решение за създаване на динамични потребителски интерфейси на WebAssembly и WebGL, които могат едновременно да показват стотици малки видеоклипове с минимално натоварване на процесора. Докато инструкциите на SIMD не могат да се използват в WebAssembly с традиционни кодеци, това ниво на производителност все още не е постижимо, така че видео, базирано на текстури, може да се използва в области, където конвенционалното видео не е приложимо. В момента се подготвя за публикуване код с допълнителни оптимизации за видео, включително възможност за използване
Източник: opennet.ru