This demo uses the
Basis C++ transcoder (compiled to Javascript using Emscripten) to transcode a .basis Universal Texture Video file directly to BC1/BC3 texture data, with no intermediate recompression step.
.basis universal GPU texture files can be quickly transcoded directly to any other GPU texture format with little to no quality loss. For static texture content, .basis files are 10-25% smaller than rate distortion optimized (RDO)
ETC1S texture data losslessly compressed using LZMA. For video, we achieve bitrates that are significantly lower (average .5bpp vs. 2-3bpp) than I-Frame only (BC1+LZ4) Texture Video approaches such as
HAP.
Currently, video is a new use case for .basis files, so video encoding using the reference encoder is quite slow and can require a lot of memory (16-32GB) on larger videos, but it will be optimized over time.
Compared to regular pixel-based video, texture video doesn't utilize the IDCT and doesn't require colorspace conversion, chroma upsampling, SIMD, or deblocking filters.
Thanks to Evan Parker for providing
webgl-texture-utils and this test bed.
NOTE: Your browser does not support DXT, so using RGB565
for the texture below. To get DXT, try Chrome 19+
(beta channel as of 2012-04-20; graphics card DXT support also required).