Google ΠΈ Binomial Ρ€Π°Π·ΠΊΡ€ΠΈΡ…Π° ΠΊΠΎΠ΄Π° Π½Π° систСмата Π·Π° компрСсия Π½Π° тСкстури Basis Universal

ΠšΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ Google ΠΈ Binomial ΠΎΡ‚ΠΊΡ€ΠΈΡ…Π° ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Basis Universal, ΠΊΠΎΠ΄Π΅ΠΊ Π·Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ компрСсиранС Π½Π° тСкстури ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ с Π½Π΅Π³ΠΎ унивСрсалСн Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Β«.basisΒ» Π·Π° разпространСниС Π½Π° тСкстури, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° изобраТСния ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° Π΅Ρ‚Π°Π»ΠΎΠ½Π½Π°Ρ‚Π° рСализация Π΅ написан Π½Π° C++ ΠΈ сС прСдоставя сС разпространява ΠΏΠΎΠ΄ лицСнзия Apache 2.0.

Basis Universal допълва ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π°Ρ‚Π° систСма Π·Π° компрСсиранС Π½Π° 3D Π΄Π°Π½Π½ΠΈ Draco ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с доставката Π½Π° тСкстури Π·Π° GPU. ДосСга Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ бяха ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π² ΠΈΠ·Π±ΠΎΡ€Π° си ΠΌΠ΅ΠΆΠ΄Ρƒ нискоуровнСви Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ осигуряват висока производитСлност, Π½ΠΎ са спСцифични Π·Π° GPU ΠΈ Π·Π°Π΅ΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ място Π½Π° диска, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ намаляват Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π°Ρ‚ с GPU тСкстуритС ΠΏΠΎ производитСлност.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ 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.

Google ΠΈ Binomial Ρ€Π°Π·ΠΊΡ€ΠΈΡ…Π° ΠΊΠΎΠ΄Π° Π½Π° систСмата Π·Π° компрСсия Π½Π° тСкстури Basis Universal

ВСкстуритС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° basis Π·Π°Π΅ΠΌΠ°Ρ‚ 6-8 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ изискват ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΄Π°Π½Π½ΠΈ Π² сравнСниС с Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈΡ‚Π΅ тСкстури Π½Π° основата Π½Π° JPEG ΠΈ с 10-25% ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ тСкстуритС Π² Ρ€Π΅ΠΆΠΈΠΌ RDO. НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° JPEG ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ 891 Кб, Π° тСкстура ETC1 ΠΎΡ‚ 1 Мб, Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Basis Π΅ 469 Кб Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Π½Π°ΠΉ-високо качСство. ΠŸΡ€ΠΈ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° тСкстура Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ Π² тСстовСтС тСкстури Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JPEG ΠΈ PNG ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Ρ…Π° 16 Мб ΠΏΠ°ΠΌΠ΅Ρ‚, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π·Π° тСкстуритС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚
Basis бяха Π½ΡƒΠΆΠ½ΠΈ 2 Мб ΠΏΠ°ΠΌΠ΅Ρ‚ Π² случая Π½Π° транслация Π² BC1, PVRTC1 ΠΈ ETC1, ΠΈ 4 Мб Π² случая Π½Π° транслация Π² BC7.

Google ΠΈ Binomial Ρ€Π°Π·ΠΊΡ€ΠΈΡ…Π° ΠΊΠΎΠ΄Π° Π½Π° систСмата Π·Π° компрСсия Π½Π° тСкстури Basis Universal

ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ прилоТСния към Basis Universal Π΅ сравнитСлно прост. Π”ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ‚Π΅ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ тСкстури ΠΈΠ»ΠΈ изобраТСния Π² Π½ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° прСдоставСната ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Β«basisuΒ», ΠΈΠ·Π±ΠΈΡ€Π°ΠΉΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° качСство. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅Π΄ΠΈ ΠΊΠΎΠ΄Π° Π·Π° Ρ€Π΅Π½Π΄ΠΈΡ€Π°Π½Π΅, трябва Π΄Π° сС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ basisu, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π·Π° трансформиранСто Π½Π° мСТдинния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ ΠΎΡ‚ тСкущия GPU Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° изобраТСнията Π² цялата Π²Π΅Ρ€ΠΈΠ³Π° Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° остават компрСсирани, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ Π² компрСсиран Π²ΠΈΠ΄ Π² GPU. ВмСсто Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ изцяло, GPU сСлСктивно Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π° само Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ части ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π½Π° Π½Π΅Π΅Π΄Π½ΠΎΡ€ΠΎΠ΄Π½ΠΈ масиви ΠΎΡ‚ тСкстури (cubemap), ΠΎΠ±Π΅ΠΌΠ½ΠΈ тСкстури, масиви ΠΎΡ‚ тСкстури, Π½ΠΈΠ²Π° mipmap, послСдоватСлности ΠΎΡ‚ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΎΡ‚ΠΊΡŠΡΠΈ ΠΎΡ‚ тСкстури. НапримСр, възмоТно Π΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π½Π° сСрия изобраТСния Π·Π° създаванС Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π²ΠΈΠ΄Π΅Π° ΠΈΠ»ΠΈ обСдиняванСто Π½Π° няколко тСкстури, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±Ρ‰Π° ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° Π·Π° всички изобраТСния ΠΈ дСдупликация Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΈ шаблони изобраТСния. РСализацията Π½Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΠ° Basis Universal ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° многопоточност с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° OpenMP. ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ засСга Ρ€Π°Π±ΠΎΡ‚ΠΈ само Π² Π΅Π΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊΡŠΡ‚ Basis Universal Π·Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ, прСдоставСн Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ WebAssembly, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡƒΠ΅Π± прилоТСния Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° WebGL. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Google ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° постигнС ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Basis Universal във всички основни Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ прСносим Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° тСкстури Π·Π° WebGL ΠΈ Π±ΡŠΠ΄Π΅Ρ‰Π° спСцификация. WebGPU, ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΎ сходна с API Vulkan, Metal ΠΈ Direct3D 12.

ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π²Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ с послСдваща ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° само Π½Π° страната Π½Π° GPU ΠΏΡ€Π°Π²ΠΈ Basis Universal интСрСсно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° създаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ потрСбитСлски интСрфСйси Π½Π° WebAssembly ΠΈ WebGL, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° сС отразяват стотици ΠΌΠ°Π»ΠΊΠΈ Π²ΠΈΠ΄Π΅Π° с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° CPU. Π”ΠΎ появата Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° SIMD инструкции Π² WebAssembly Ρ‚ΠΎΠ·ΠΈ Π½ΠΈΠ²ΠΎ Π½Π° производитСлност ΠΏΡ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈ ΠΊΠΎΠ΄Π΅Ρ†ΠΈ Π΅ Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ, Π·Π°Ρ‚ΠΎΠ²Π° Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° тСкстури ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π² области, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎΡ‚ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π΅ Π½Π΅ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΎ. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС подготвя публикация Π½Π° ΠΊΠΎΠ΄ с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ I-ΠΊΠ°Π΄Ρ€ΠΈ ΠΈ P-ΠΊΠ°Π΄Ρ€ΠΈ с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎ запълванС (CR).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster