全称 Delta Color Compression
DCC 是一种无损的压缩方法。
DCC 是一种只适用于特定领域(GPU 产生的图像)的压缩方法。
压缩算法,
- 分块。将渲染图像分成如果像素块,例如 32x32
- 逐块压缩,
2.1. 选取一个像素,以完整精度表示,例如 Int32
2.2. 遍历其他像素,计算与上述像素的差值,并以降低精度表示,例如 Int16
能够采用这个压缩算法是基于一个趋势,
屏幕分辨率越来越大,那么一个固定大小的像素块中的内容相近的概率越来越大。
例如,渲染天空,32x32 的像素块的前提下,分辨率越大,一个像素块中的内容越接近,压缩效果就越好。
Delta 是增量的意思。
分辨率越来越大,帧率越来越高,对带宽的需求就越来越高。
帧缓冲区除了 GPU 会按照帧率写入以外,还有显示控制器会按照显示器刷新率去读取。
因此,
对帧缓冲区做压缩,性价比高,值得去做。
将帧缓冲区压缩后再写入或读取,可以减少访问显存的带宽,进而降低功耗和提升效率。
其他 GPU 厂商都有类似的技术,例如 ARM 的 AFBC 等。
网友评论