一种基于亮度编码的帧缓存有损压缩方法及装置的制造方法
【技术领域】
[0001] 本发明涉及图形处理中帧缓存数据压缩技术领域,尤其涉及一种基于亮度编码的 帧缓存有损压缩方法及装置。
【背景技术】
[0002] GPU (Graphic Processing Unit,图形处理器)是相对于 CPU (Central Processing Unit,中央处理器)的一个概念,是一个专门的图形设备。
[0003] 图形设备输出图像的基本构成单位是像素,输出的数据包括每个像素的RGB值。 RGB值是指通过红(R)、绿(G)、蓝(B)三个颜色通道的变化相互叠加来表示颜色的一种方 法。图形设备输出的图像需要缓存在内存中,这段内存空间称为帧缓存,然后由专门的显示 模块将颜色信息从帧缓存中读出,再转化为显示器能够接受的时序信号。
[0004] 为了保证图形设备的绘制过程不会影响显示器的刷新过程,一般会采用多个帧缓 存技术,将图形设备的绘制结果放入一个帧缓存A中,同时显示模块从另一个帧缓存B中读 取数据并显示;当图形设备完成A中的绘制任务时,再将帧缓存A和帧缓存B进行互换。
[0005] 随着显示设备的分辨率日益提高和刷新率的增加,缓存一帧图像所需的内存空间 也就变得越来越大,图形设备和帧缓存、显示模块和帧缓存之间的带宽需求也日渐增大。
[0006] 如图1所示,在包含嵌入式图形设备的SoC(System-〇n-a-Chip,系统级芯片)架构 中,SoC芯片里集成了 CPU、图形设备以及显示模块,这些模块通过总线(BUS)连接起来,由 于帧缓存需要较大的存储空间,所以设置在SoC芯片外部的独立存储芯片中。
[0007] 如图2所示,在上述架构下,图中箭头所示的数据通路(图形设备向帧缓存中写入 运算结果、显示模块从帧缓存中读出运算结果)占用了大量的SoC片外访问存储带宽,在图 2中虚线框的部分位于SoC芯片外,故其访存带宽十分宝贵,该数据通路容易成为系统的性 能瓶颈;而且大量的帧缓存刷新导致了大量的访存操作,这也带来了很大的功耗,严重影响 了 SoC芯片的功耗性能,故而对于帧缓存的数据进行压缩成为了必然的选择。
[0008] 如图3所示,在采用帧缓存压缩技术之后读写帧缓存的过程中,图形设备将运算 结果通过片内互联总线传给压缩模块,压缩模块将数据进行压缩后,写入SoC芯片外的帧 缓存。
[0009] 然而,对帧缓存的压缩需要在压缩比、图像效果和硬件开销之间做出权衡。
[0010] 现有技术一是美国申请公布专利US 6658146 B1,其提出一种叫做S3TC的方法, 该方法计算像素块中的每个像素在RGB颜色空间中组成的"刚体"的转动主轴,再通过各像 素在主轴上的投影来对每个像素的颜色进行量化。
[0011] 现有技术一的技术方案提供了使得各像素的量化结果和原像素的均方根误差最 小。但是,此方案中需要计算各像素在RGB颜色空间内的转动主轴,这一运算开销很大,难 以在硬件上实时地实现该算法。
[0012] 现有技术二是美国申请公布专利申请公布号US 20130314429 A1,其提出一种帧 缓存无损压缩方法,对原始的RGB图像分块处理,依据压缩率的不同来决定分块的大小,再 将帧缓存数据进行压缩。
[0013] 现有技术二可以得到一定的反走样效果,但是此方案需要较复杂的流控制来实现 自适应地调整压缩率,且使得硬件实现该算法的开销很大,导致压缩和解压模块引入较大 的功耗。
【发明内容】
[0014] 为了解决【背景技术】中存在的技术问题,本发明提出了一种基于亮度编码的帧缓存 有损压缩方法及装置,以实现低功耗的高压缩率帧缓存压缩,以减小压缩带来的图像失真。
[0015] 本发明提出的一种基于亮度编码的帧缓存有损压缩装置,包括:图形设备、编码模 块、解码模块、帧缓存、显示模块;其中,
[0016] 所述图形设备,用于输出RGB图像;
[0017] 所述编码模块,通过总线与所述图形设备通信,用于将所述图形设备输出的RGB 图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于 亮度的压缩编码,将所述压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存 储到所述帧缓存中;
[0018] 所述解码模块,与所述编码模块连接并通过总线与所述图形设备通信,用于从所 述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格 式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图 像通过总线传给所述显示模块。
[0019] 优选地,所述编码模块具体包括:
[0020] 分块子模块,用于将所述图形设备输出的RGB图像进行分块;
[0021] 转换子模块,与所述分块子模块连接,用于将每一块RGB格式图像转化为YUV格式 图像;
[0022] 量化子模块,与所述转换子模块连接,用于对所述YUV格式图像进行基于亮度的 压缩编码;
[0023] 第一合并子模块,与所述量化子模块连接,用于将所述压缩编码后的分块图像合 并拼接为压缩图像,
[0024] 存储子模块,与所述第一合并子模块,用于将压缩图像存储到所述帧缓存中。
[0025] 优选地,所述量化子模块对YUV图像块进行基于亮度的压缩编码时,具体为:
[0026] 所述量化子模块对一个4X4的YUV图像块进行压缩编码后的数据大小为64bit, 前32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作yOuOvO和ylulvl,后 32bit保存16个像素对应的四色查找表的索引值Indexi,i = 0、1···、15 ;
[0027] 从16个像素中找出Y分量的最大值y0和最小值y I,其对应的像素点连线记作LO ; 对所有16个像素点的YUV求平均值,将直线LO平移至过平均值点,得到的直线记作Ll ;
[0028] 将Y轴上从y0到yl的区间定义为区间[yl,y0],将区间[yl,y0]通过直线Ll分 别映射到U轴和V轴上得到区间[ul,u0]和[vl, v0],其端点值为y0, yl, u0, ul, v0, Vl ;再 将区间[yl,y0]均分成4份分别编码为00, 01,10, 11 ;
[0029] 根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi。
[0030] 优选地,所述根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值 Indexi,具体为:
【主权项】
1. 一种基于亮度编码的帧缓存有损压缩装置,其特征在于,包括:图形设备、编码模 块、解码模块