AMD 帧缓冲区压缩 - DCC

全称 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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容