The thesis addresses the design, implementation, and testing of an encoder
for the ASTC (Adaptive Scalable Texture Compression) format using the
WebGPU application programming interface. In modern computer graphics,
the use of texture compression is crucial for optimizing the usage of graphics
memory and bandwidth in communication with the graphics card. The ASTC
format allows for a high degree of adaptability and control over the trade-off
between quality and compression ratio. This high adaptability is possible
due to the format’s complex structure, which results in high computational
complexity during the encoding process. In this thesis, we present the
structure of the ASTC format and the algorithm used by the official ARM
encoder. We then describe our own implementation of the encoder, in which
we divided the complex encoding process into a series of compute shaders that
use parallel computation to compress the input texture. Finally, we compare
our implementation with the official implementation in terms of quality
and compression speed. The test results showed that our encoder does not
significantly lag in compression quality, but its execution time is longer despite
the parallel computation. Although our implementation does not achieve
the speed of the official implementation, it still demonstrates that the use of
compute shaders is a potentially effective approach for accelerating texture
compression, while also opening up possibilities for further optimizations and
extensions.
|