AMD 帧缓冲区压缩 - DCC

2024-11-03  本文已影响0人  陈成_Adam

全称 Delta Color Compression

DCC 是一种无损的压缩方法。
DCC 是一种只适用于特定领域(GPU 产生的图像)的压缩方法。

压缩算法,

  1. 分块。将渲染图像分成如果像素块,例如 32x32
  2. 逐块压缩,
    2.1. 选取一个像素,以完整精度表示,例如 Int32
    2.2. 遍历其他像素,计算与上述像素的差值,并以降低精度表示,例如 Int16

能够采用这个压缩算法是基于一个趋势,
屏幕分辨率越来越大,那么一个固定大小的像素块中的内容相近的概率越来越大。
例如,渲染天空,32x32 的像素块的前提下,分辨率越大,一个像素块中的内容越接近,压缩效果就越好。

Delta 是增量的意思。


分辨率越来越大,帧率越来越高,对带宽的需求就越来越高。
帧缓冲区除了 GPU 会按照帧率写入以外,还有显示控制器会按照显示器刷新率去读取。
因此,
对帧缓冲区做压缩,性价比高,值得去做。

将帧缓冲区压缩后再写入或读取,可以减少访问显存的带宽,进而降低功耗和提升效率。

其他 GPU 厂商都有类似的技术,例如 ARM 的 AFBC 等。

参考资料,
https://gpuopen.com/learn/dcc-overview/

上一篇 下一篇

猜你喜欢

热点阅读