Google ื•-Binomial ืงื•ื“ ืคืชื•ื— ื‘ืกื™ืกื™ ืžืขืจื›ืช ื“ื—ื™ืกืช ืžืจืงื ืื•ื ื™ื‘ืจืกืœื™ืช

ื’ื•ื’ืœ ื•ื‘ื™ื ื•ืžื™ืืœ ื ืคืชื— ื˜ืงืกื˜ื™ ืžืงื•ืจ ื‘ืกื™ืก ืื•ื ื™ื‘ืจืกืœื™, codec ืœื“ื—ื™ืกืช ื˜ืงืกื˜ื•ืจื” ื™ืขื™ืœื” ื•ืคื•ืจืžื˜ ืงื•ื‘ืฅ ".basis" ืื•ื ื™ื‘ืจืกืœื™ ืžืฉื•ื™ืš ืœื”ืคืฆืช ื˜ืงืกื˜ื•ืจื•ืช ืžื‘ื•ืกืกื•ืช ืชืžื•ื ื” ื•ื•ื™ื“ืื•. ืงื•ื“ ื™ื™ืฉื•ื ื”ื”ืคื ื™ื” ื›ืชื•ื‘ ื‘-C++ ื• ืžืกื•ืคืง ืžื•ืจืฉื” ืชื—ืช Apache 2.0.

Basis Universal ืžืฉืœื™ื ื‘ืขื‘ืจ ื™ืฆื ืœืื•ืจ ืžืขืจื›ืช ื“ื—ื™ืกืช ื ืชื•ื ื™ื ืชืœืช ืžื™ืžื“ื™ืช ืฉืœ Draco ื•ืžื ืกื” ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ื‘ืืกืคืงืช ื˜ืงืกื˜ื•ืจื•ืช ืœ-GPU. ืขื“ ื›ื”, ืžืคืชื—ื™ื ื”ื•ื’ื‘ืœื• ื‘ื‘ื—ื™ืจื” ื‘ื™ืŸ ืคื•ืจืžื˜ื™ื ื‘ืจืžื” ื ืžื•ื›ื” ื”ืžืฉื™ื’ื™ื ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืืš ื”ื ืกืคืฆื™ืคื™ื™ื ืœ-GPU ื•ืชื•ืคืกื™ื ื”ืจื‘ื” ืžืงื•ื ื‘ื“ื™ืกืง, ืœื‘ื™ืŸ ืคื•ืจืžื˜ื™ื ืื—ืจื™ื ื”ืžืฉื™ื’ื™ื ื”ืคื—ืชืช ื’ื•ื“ืœ ืืš ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ืชื—ืจื•ืช ื‘ื˜ืงืกื˜ื•ืจื•ืช GPU ื‘ื‘ื™ืฆื•ืขื™ื.

ื”ืคื•ืจืžื˜ Basic 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 ืงื•ื“ ืคืชื•ื— ื‘ืกื™ืกื™ ืžืขืจื›ืช ื“ื—ื™ืกืช ืžืจืงื ืื•ื ื™ื‘ืจืกืœื™ืช

ื˜ืงืกื˜ื•ืจื•ืช ื‘ืคื•ืจืžื˜ ื”ื‘ืกื™ืก ืชื•ืคืกื•ืช ืคื™ 6-8 ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ื•ื™ื“ืื• ื•ื“ื•ืจืฉื•ืช ื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ืงื™ืจื•ื‘ ืžื˜ืงืกื˜ื•ืจื•ืช ื˜ื™ืคื•ืกื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืคื•ืจืžื˜ JPEG ื•-10-25% ืคื—ื•ืช ืžื˜ืงืกื˜ื•ืจื•ืช ื‘ืžืฆื‘ RDO. ืœื“ื•ื’ืžื”, ืขื ื’ื•ื“ืœ ืชืžื•ื ื” JPEG ืฉืœ 891 KB ื•ืžืจืงื ETC1 ืฉืœ 1 MB, ื’ื•ื“ืœ ื”ื ืชื•ื ื™ื ื‘ืคื•ืจืžื˜ ื”ื‘ืกื™ืก ื”ื•ื 469 KB ื‘ืžืฆื‘ ื”ืื™ื›ื•ืช ื”ื’ื‘ื•ื” ื‘ื™ื•ืชืจ. ื‘ืขืช ื”ืฆื‘ืช ื˜ืงืกื˜ื•ืจื•ืช ื‘ื–ื™ื›ืจื•ืŸ ื•ื™ื“ืื•, ื˜ืงืกื˜ื•ืจื•ืช JPEG ื•-PNG ืฉืฉื™ืžืฉื• ื‘ื‘ื“ื™ืงื•ืช ืฆืจื›ื• 16 MB ืฉืœ ื–ื™ื›ืจื•ืŸ, ื‘ืขื•ื“ ื˜ืงืกื˜ื•ืจื•ืช ื‘
ื‘ืกื™ืก ื ื“ืจืฉ 2 MB ืฉืœ ื–ื™ื›ืจื•ืŸ ืœืชืจื’ื•ื ืœ-BC1, PVRTC1 ื•-ETC1, ื•-4 MB ืœืชืจื’ื•ื ืœ-BC7.

Google ื•-Binomial ืงื•ื“ ืคืชื•ื— ื‘ืกื™ืกื™ ืžืขืจื›ืช ื“ื—ื™ืกืช ืžืจืงื ืื•ื ื™ื‘ืจืกืœื™ืช

ืชื”ืœื™ืš ื”ืขื‘ืจืช ื”ืืคืœื™ืงืฆื™ื•ืช ื”ืงื™ื™ืžื•ืช ืœื‘ืกื™ืก ื™ื•ื ื™ื‘ืจืกืœ ื”ื•ื ื“ื™ ืคืฉื•ื˜. ื–ื” ืžืกืคื™ืง ื›ื“ื™ ืœืงื•ื“ื“ ืžื—ื“ืฉ ืžืจืงืžื™ื ืื• ืชืžื•ื ื•ืช ืงื™ื™ืžื™ื ืœืคื•ืจืžื˜ ื—ื“ืฉ ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช "basisu" ืฉืกื•ืคืง ืขืœ ื™ื“ื™ ื”ืคืจื•ื™ืงื˜, ื‘ื—ื™ืจืช ืจืžืช ื”ืื™ื›ื•ืช ื”ื ื“ืจืฉืช. ืœืื—ืจ ืžื›ืŸ, ื‘ืืคืœื™ืงืฆื™ื”, ืœืคื ื™ ืงื•ื“ ื”ืขื™ื‘ื•ื“, ืขืœื™ืš ืœืืชื—ืœ ืืช ื”ืžืžื™ืจ ื”ื‘ืกื™ืกื™, ืฉืื—ืจืื™ ืขืœ ืชืจื’ื•ื ืคื•ืจืžื˜ ื”ื‘ื™ื ื™ื™ื ืœืคื•ืจืžื˜ ื”ื ืชืžืš ืขืœ ื™ื“ื™ ื”-GPU ื”ื ื•ื›ื—ื™. ื™ื—ื“ ืขื ื–ืืช, ืชืžื•ื ื•ืช ืœืื•ืจืš ื›ืœ ืฉืจืฉืจืช ื”ืขื™ื‘ื•ื“ ื ืฉืืจื•ืช ื“ื—ื•ืกื•ืช, ื›ื•ืœืœ ื˜ืขื™ื ืชืŸ ื‘ืฆื•ืจื” ื“ื—ื•ืกื” ืœืชื•ืš ื”-GPU. ื‘ืžืงื•ื ืœื”ืžื™ืจ ืืช ื”ืชืžื•ื ื” ื›ื•ืœื”, ื”-GPU ืžืคืขื ื— ื‘ืื•ืคืŸ ืกืœืงื˜ื™ื‘ื™ ืจืง ืืช ื”ื—ืœืงื™ื ื”ื“ืจื•ืฉื™ื ืฉืœ ื”ืชืžื•ื ื”.

ื”ื•ื ืชื•ืžืš ื‘ืฉืžื™ืจืช ืžืขืจื›ื™ ื˜ืงืกื˜ื•ืจื” ื”ื˜ืจื•ื’ื ื™ื™ื (ืงื•ื‘ื™ื•ืช), ืžืจืงืžื™ื ื ืคื—ื™ื™ื, ืžืขืจื›ื™ ื˜ืงืกื˜ื•ืจื”, ืจืžื•ืช mipmap, ืจืฆืคื™ ื•ื™ื“ืื• ืื• ืงื˜ืขื™ ื˜ืงืกื˜ื•ืจื” ืฉืจื™ืจื•ืชื™ื™ื ื‘ืงื•ื‘ืฅ ืื—ื“. ืœื“ื•ื’ืžื”, ืืคืฉืจ ืœืืจื•ื– ืกื“ืจื” ืฉืœ ืชืžื•ื ื•ืช ื‘ืงื•ื‘ืฅ ืื—ื“ ื›ื“ื™ ืœื™ืฆื•ืจ ืกืจื˜ื•ื ื™ื ืงื˜ื ื™ื, ืื• ืœืฉืœื‘ ืžืกืคืจ ื˜ืงืกื˜ื•ืจื•ืช ื‘ืืžืฆืขื•ืช ืคืœื˜ื” ืžืฉื•ืชืคืช ืœื›ืœ ื”ืชืžื•ื ื•ืช ื•ื‘ื™ื˜ื•ืœ ืฉื›ืคื•ืœ ืฉืœ ืชื‘ื ื™ื•ืช ืชืžื•ื ื” ื˜ื™ืคื•ืกื™ื•ืช. ื™ื™ืฉื•ื ื”ืžืงื•ื“ื“ ื”ืื•ื ื™ื‘ืจืกืœื™ Basis ืชื•ืžืš ื‘ืงื™ื“ื•ื“ ืจื‘-ื”ืœื™ื›ื™ ื‘ืืžืฆืขื•ืช OpenMP. ื”ืžืžื™ืจ ืคื•ืขืœ ื›ืจื’ืข ืจืง ื‘ืžืฆื‘ ื—ื•ื˜ ื™ื—ื™ื“.

ื‘ื ื•ืกืฃ ื–ืžื™ืŸ ืžืคืขื ื— ืื•ื ื™ื‘ืจืกืœื™ ื‘ืกื™ืกื™ ืœื“ืคื“ืคื ื™ื, ืžืกื•ืคืง ื‘ืคื•ืจืžื˜ WebAssembly, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ืžื‘ื•ืกืกื™ WebGL. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื’ื•ื’ืœ ืžืชื›ื•ื•ื ืช ืœืชืžื•ืš ื‘-Basis Universal ื‘ื›ืœ ื”ื“ืคื“ืคื ื™ื ื”ื’ื“ื•ืœื™ื ื•ืœืงื“ื ืื•ืชื• ื›ืคื•ืจืžื˜ ืžืจืงื ื ื™ื™ื“ ืขื‘ื•ืจ WebGL ื•ืžืคืจื˜ ืขืชื™ื“ื™ WebGPU, ื“ื•ืžื” ืžื‘ื—ื™ื ื” ืจืขื™ื•ื ื™ืช ืœืžืžืฉืงื™ API ืฉืœ Vulkan, Metal ื•-Direct3D 12.

ื™ืฆื•ื™ืŸ ื›ื™ ื”ื™ื›ื•ืœืช ืœื”ื˜ืžื™ืข ื•ื™ื“ืื• ืขื ื”ืขื™ื‘ื•ื“ ื”ื‘ื ืฉืœื• ืจืง ื‘ืฆื“ ื”-GPU ื”ื•ืคื›ืช ืืช Basis Universal ืœืคืชืจื•ืŸ ืžืขื ื™ื™ืŸ ืœื™ืฆื™ืจืช ืžืžืฉืงื™ ืžืฉืชืžืฉ ื“ื™ื ืžื™ื™ื ื‘-WebAssembly ื•-WebGL, ืฉื™ื›ื•ืœื™ื ืœื”ืฆื™ื’ ื‘ื• ื–ืžื ื™ืช ืžืื•ืช ืกืจื˜ื•ื ื™ื ืงื˜ื ื™ื ื‘ืขื•ืžืก ืžืขื‘ื“ ืžื™ื ื™ืžืœื™. ืขื“ ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ื”ื•ืจืื•ืช SIMD ื‘-WebAssembly ืขื ืจื›ื™ื‘ื™ codec ืžืกื•ืจืชื™ื™ื, ืจืžืช ื‘ื™ืฆื•ืขื™ื ื–ื• ืขื“ื™ื™ืŸ ืื™ื ื” ื ื™ืชื ืช ืœื”ืฉื’ื”, ื›ืš ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื•ื™ื“ืื• ืžื‘ื•ืกืก ืžืจืงื ื‘ืื–ื•ืจื™ื ืฉื‘ื”ื ื•ื™ื“ืื• ืงื•ื ื‘ื ืฆื™ื•ื ืœื™ ืื™ื ื• ื™ืฉื™ื. ืงื•ื“ ืขื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ื ื•ืกืคื•ืช ืœื•ื•ื™ื“ืื• ื ืžืฆื ื›ืขืช ื‘ื”ื›ื ื” ืœืคืจืกื•ื, ื›ื•ืœืœ ื™ื›ื•ืœืช ื”ืฉื™ืžื•ืฉ I-frames ื•-P-frames ืขื ืชืžื™ื›ื” ื‘ืจื™ืคื•ื“ ืื“ืคื˜ื™ื‘ื™ (CR).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”