Google және Бином
Basis Universal бұрын толықтырады
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 режимдері үшін болашақ қолдау күтілуде.
Негізгі пішімдегі текстуралар 6-8 есе аз бейне жадын алады және JPEG пішіміне негізделген әдеттегі текстуралардың шамамен жартысы және RDO режиміндегі текстураларға қарағанда 10-25% аз деректерді тасымалдауды қажет етеді. Мысалы, JPEG кескінінің өлшемі 891 КБ және ETC1 текстурасы 1 Мбайт болса, ең жоғары сапа режимінде Basis пішіміндегі деректер өлшемі 469 КБ құрайды. Текстураларды бейне жадына орналастырған кезде сынақтарда пайдаланылатын JPEG және PNG текстуралары 16 МБ жадты жұмсады, ал текстуралар
Негізде BC2, PVRTC1 және ETC1-ге аудару үшін 1 Мбайт жад және BC4-ге аудару үшін 7 Мбайт қажет.
Қолданыстағы қолданбаларды Basis Universal бағдарламасына көшіру процесі өте қарапайым. Қажетті сапа деңгейін таңдай отырып, жоба ұсынған «basisu» утилитасын пайдаланып, бар текстураларды немесе кескіндерді жаңа пішімге қайта кодтау жеткілікті. Әрі қарай, қолданбада рендеринг коды алдында аралық пішімді ағымдағы GPU қолдайтын пішімге аударуға жауапты baseu транскодерін инициализациялау керек. Сонымен бірге бүкіл өңдеу тізбегіндегі кескіндер қысылған күйде қалады, оның ішінде GPU-ға қысылған түрде жүктеледі. Бүкіл кескінді алдын ала қайта кодтаудың орнына, GPU кескіннің қажетті бөліктерін ғана таңдап декодтайды.
Ол бір файлда гетерогенді текстуралық массивтерді (текше карталар), көлемді текстураларды, текстуралық массивтерді, мипмап деңгейлерін, бейне тізбектерін немесе еркін текстура фрагменттерін сақтауды қолдайды. Мысалы, кішігірім бейнелерді жасау үшін бір файлға кескіндер сериясын жинауға немесе барлық кескіндер үшін ортақ палитраны пайдаланып бірнеше текстураны біріктіруге және әдеттегі кескін үлгілерін көшіруге болады. Негізгі әмбебап кодтаушы іске асыру OpenMP көмегімен көп ағынды кодтауды қолдайды. Транскодер қазіргі уақытта тек бір ағынды режимде жұмыс істейді.
қосымша
Бейнені кейіннен өңдеумен тек GPU жағында ғана ендіру мүмкіндігі Basis Universal жүйесін WebAssembly және WebGL жүйелерінде динамикалық пайдаланушы интерфейстерін жасау үшін қызықты шешімге айналдыратыны атап өтіледі, ол бір уақытта ең аз CPU жүктемесі бар жүздеген шағын бейнелерді көрсете алады. SIMD нұсқаулары WebAssembly жүйесінде дәстүрлі кодектермен бірге пайдаланылмайынша, өнімділіктің бұл деңгейіне әлі қол жеткізу мүмкін емес, сондықтан текстураға негізделген бейнені әдеттегі бейне қолданылмайтын аймақтарда пайдалануға болады. Қазіргі уақытта бейнеге арналған қосымша оңтайландырулары бар код, оның ішінде пайдалану мүмкіндігі жариялануға дайындалуда
Ақпарат көзі: opennet.ru