Google және Binamial ашық бастапқы Basis әмбебап текстураны қысу жүйесі

Google және Бином ашты бастапқы мәтіндер Әмбебап негіз, текстураны тиімді сығуға арналған кодек және кескінге және бейнеге негізделген текстураларды таратуға арналған байланысты әмбебап ".basis" файл пішімі. Анықтамалық іске асыру коды C++ тілінде жазылған және жеткізілген Apache 2.0 бойынша лицензияланған.

Basis Universal бұрын толықтырады жарияланған Draco 3D деректерді қысу жүйесі және GPU үшін текстураларды жеткізу мәселесін шешуге тырысады. Әзірге әзірлеушілер жоғары өнімділікке қол жеткізетін, бірақ GPU-ға тән және дискіде көп орын алатын төмен деңгейлі пішімдерді және өлшемді азайтуға қол жеткізетін, бірақ өнімділік бойынша GPU текстураларымен бәсекелесе алмайтын басқа пішімдерді таңдаумен шектелді.

Basis Universal пішімі жергілікті GPU текстураларының өнімділігіне қол жеткізуге мүмкіндік береді, бірақ қысудың жоғары деңгейін қамтамасыз етеді.
Basis — пайдалану алдында жұмыс үстелі жүйелерінде де, мобильді құрылғыларда да пайдалану үшін әртүрлі төмен деңгейлі пішімдерге GPU текстураларын жылдам қайта кодтауды қамтамасыз ететін аралық пішім. Қазіргі уақытта қолдау көрсетілетін PVRTC1 (4bpp RGB), BC7 (6 RGB режимі), BC1-5, ETC1 және ETC2 пішімдері. ASTC пішімі (RGB немесе RGBA) және BC4 үшін 5/7 RGBA және PVRTC4 үшін 1bpp RGBA режимдері үшін болашақ қолдау күтілуде.

Google және Binamial ашық бастапқы Basis әмбебап текстураны қысу жүйесі

Негізгі пішімдегі текстуралар 6-8 есе аз бейне жадын алады және JPEG пішіміне негізделген әдеттегі текстуралардың шамамен жартысы және RDO режиміндегі текстураларға қарағанда 10-25% аз деректерді тасымалдауды қажет етеді. Мысалы, JPEG кескінінің өлшемі 891 КБ және ETC1 текстурасы 1 Мбайт болса, ең жоғары сапа режимінде Basis пішіміндегі деректер өлшемі 469 КБ құрайды. Текстураларды бейне жадына орналастырған кезде сынақтарда пайдаланылатын JPEG және PNG текстуралары 16 МБ жадты жұмсады, ал текстуралар
Негізде BC2, PVRTC1 және ETC1-ге аудару үшін 1 Мбайт жад және BC4-ге аудару үшін 7 Мбайт қажет.

Google және Binamial ашық бастапқы Basis әмбебап текстураны қысу жүйесі

Қолданыстағы қолданбаларды Basis Universal бағдарламасына көшіру процесі өте қарапайым. Қажетті сапа деңгейін таңдай отырып, жоба ұсынған «basisu» утилитасын пайдаланып, бар текстураларды немесе кескіндерді жаңа пішімге қайта кодтау жеткілікті. Әрі қарай, қолданбада рендеринг коды алдында аралық пішімді ағымдағы GPU қолдайтын пішімге аударуға жауапты baseu транскодерін инициализациялау керек. Сонымен бірге бүкіл өңдеу тізбегіндегі кескіндер қысылған күйде қалады, оның ішінде GPU-ға қысылған түрде жүктеледі. Бүкіл кескінді алдын ала қайта кодтаудың орнына, GPU кескіннің қажетті бөліктерін ғана таңдап декодтайды.

Ол бір файлда гетерогенді текстуралық массивтерді (текше карталар), көлемді текстураларды, текстуралық массивтерді, мипмап деңгейлерін, бейне тізбектерін немесе еркін текстура фрагменттерін сақтауды қолдайды. Мысалы, кішігірім бейнелерді жасау үшін бір файлға кескіндер сериясын жинауға немесе барлық кескіндер үшін ортақ палитраны пайдаланып бірнеше текстураны біріктіруге және әдеттегі кескін үлгілерін көшіруге болады. Негізгі әмбебап кодтаушы іске асыру OpenMP көмегімен көп ағынды кодтауды қолдайды. Транскодер қазіргі уақытта тек бір ағынды режимде жұмыс істейді.

қосымша қол жетімді WebGL негізіндегі веб қолданбаларында пайдалануға болатын WebAssembly пішімінде жеткізілетін браузерлерге арналған әмбебап декодер. Сайып келгенде, Google барлық негізгі браузерлерде Basis Universal-ды қолдап, оны WebGL үшін портативті текстура пішімі және болашақ спецификация ретінде алға жылжытуға ниетті. WebGPU, бұл концептуалды түрде Vulkan, Metal және Direct3D 12 API интерфейстеріне ұқсас.

Бейнені кейіннен өңдеумен тек GPU жағында ғана ендіру мүмкіндігі Basis Universal жүйесін WebAssembly және WebGL жүйелерінде динамикалық пайдаланушы интерфейстерін жасау үшін қызықты шешімге айналдыратыны атап өтіледі, ол бір уақытта ең аз CPU жүктемесі бар жүздеген шағын бейнелерді көрсете алады. SIMD нұсқаулары WebAssembly жүйесінде дәстүрлі кодектермен бірге пайдаланылмайынша, өнімділіктің бұл деңгейіне әлі қол жеткізу мүмкін емес, сондықтан текстураға негізделген бейнені әдеттегі бейне қолданылмайтын аймақтарда пайдалануға болады. Қазіргі уақытта бейнеге арналған қосымша оңтайландырулары бар код, оның ішінде пайдалану мүмкіндігі жариялануға дайындалуда I-кадрлар және P-кадрлар адаптивті толтыру (CR) қолдауымен.

Ақпарат көзі: opennet.ru

пікір қалдыру