Although variable-rate compressed image formats such as JPEG are widely used to efficiently encode images, they have not found their way into real-time rendering due to special requirements such as random access to individual texels. In this paper, we investigate the feasibility of variable-rate texture compression on modern GPUs using the JPEG format, and how it compares to the GPU-friendly fixed-rate compression approaches BC1 and ASTC. Using a deferred rendering pipeline, we are able to identify the subset of blocks that are needed for a given frame, decode these, and colorize the framebuffer's pixels. Despite the additional $\sim$0.17 bit per pixel that we require for our approach, JPEG maintains significantly better quality and compression rates compared to BC1, and depending on the type of image, outperforms or competes with ASTC. The JPEG rendering pipeline increases rendering duration by less than 0.3 ms on an RTX 4090, demonstrating that sophisticated variable-rate compression schemes are feasible on modern GPUs, even in VR. Source code and data sets are available at: https://github.com/elias1518693/jpeg_textures
翻译:尽管JPEG等可变速率压缩图像格式已被广泛用于高效编码图像,但由于需要满足随机访问单个纹素等特殊要求,此类格式尚未应用于实时渲染领域。本文研究了在现代GPU上使用JPEG格式实现可变速率纹理压缩的可行性,并将其与GPU友好的固定速率压缩方案BC1和ASTC进行对比。通过采用延迟渲染管线,我们能够识别特定帧所需的子块集合,对其进行解码并为帧缓冲区的像素着色。尽管我们的方法需要额外约0.17比特/像素的开销,但相较于BC1格式,JPEG仍能保持显著更优的质量与压缩率;根据图像类型的不同,其性能可超越或媲美ASTC格式。在RTX 4090显卡上,JPEG渲染管线仅使渲染时长增加不足0.3毫秒,这证明即使在VR场景中,现代GPU也能实现复杂的可变速率压缩方案。源代码与数据集已发布于:https://github.com/elias1518693/jpeg_textures