一种基于亮度编码的帧缓存有损压缩方法及装置转让专利

申请号 : CN201510128342.6

文献号 : CN104780374B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 项天林啸金西

申请人 : 中国科学技术大学先进技术研究院

摘要 :

本发明公开了一种基于亮度编码的帧缓存有损压缩方法及装置,将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的量化压缩编码,将所述量化压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像通过总线传给所述显示模块。本发明中基于亮度编码的帧缓存有损压缩方法及装置,以实现低功耗的高压缩率帧缓存压缩,以减小压缩带来的图像失真。

权利要求 :

1.一种基于亮度编码的帧缓存有损压缩装置,其特征在于,包括:图形设备、编码模块、解码模块、帧缓存、显示模块;其中,所述图形设备,用于输出RGB图像;

所述编码模块,通过总线与所述图形设备通信,用于将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的量化压缩编码,将所述量化压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;

所述解码模块,与所述编码模块连接并通过总线与所述图形设备通信,用于从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像通过总线传给所述显示模块;

所述编码模块具体包括:

分块子模块,用于将所述图形设备输出的RGB图像进行分块;

转换子模块,与所述分块子模块连接,用于将每一块RGB格式图像转化为YUV格式图像;

量化子模块,与所述转换子模块连接,用于对所述YUV格式图像进行基于亮度的量化压缩编码;

第一合并子模块,与所述量化子模块连接,用于将所述量化压缩编码后的分块图像合并拼接为压缩图像,存储子模块,与所述第一合并子模块,用于将压缩图像存储到所述帧缓存中;

所述量化子模块对YUV图像块进行基于亮度的压缩编码时,具体为:所述量化子模块对一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,前

32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,后32bit保存16个像素对应的四色查找表的索引值Indexi,i=0、1…、15;

从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点连线记作L0;对所有

16个像素点的YUV求平均值,将直线L0平移至过平均值点,得到的直线记作L1;

将Y轴上从y0到y1的区间定义为区间[y1,y0],将区间[y1,y0]通过直线L1分别映射到U轴和V轴上得到区间[u1,u0]和[v1,v0],其端点值为y0,y1,u0,u1,v0,v1;再将区间[y1,y0]均分成4份分别编码为00,01,10,11;

根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi。

2.根据权利要求1所述的基于亮度编码的帧缓存有损压缩装置,其特征在于,所述根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi,具体为:像素i的Y分量yi满足 时,则像素i对应的Indexi为00;像素i的Y分量yi满足 时,则像素i对应的Indexi为01;像素i的Y分量yi满足 时,则像素i对应的Indexi为10;像素i的Y分量yi满足时,则像素i对应的Indexi为11。

3.根据权利要求1或2所述的基于亮度编码的帧缓存有损压缩装置,其特征在于,所述解码模块具体包括:读取子模块,用于从所述帧缓存中读取压缩图像;

插值子模块,与所述读取子模块连接,用于对所述压缩图像进行插值并恢复成YUV格式图像;

转换子模块,与插值子模块连接,用于将所述YUV格式图像转换为RGB格式图像;

第二合并子模块,与转换子模块连接,用于将所述RGB格式图像合并拼接为原始RGB图像;

发送子模块,与所述第二合并子模块连接,用于将原始RGB图像传给所述显示模块。

4.根据权利要求3所述的基于亮度编码的帧缓存有损压缩装置,其特征在于,所述解码模块还包括:请求子模块,与所述读取子模块连接,用于在刷新显示屏时,接收所述显示模块通过总线发起的数据请求,而后激活所述读取子模块进行读取。

5.根据权利要求3所述的基于亮度编码的帧缓存有损压缩装置,其特征在于,所述插值子模块对YUV图像块进行插值恢复时,具体为:分别以Y0U0V0和Y1U1V1作为最大值和最小值进行线性插值获得4个YUV值;

根据后32bit中的Index0-Index15的索引值,将其替换为对应的YUV值。

6.一种基于亮度编码的帧缓存有损压缩编码方法,应用于包括图形设备、编码模块、帧缓存的系统中,其特征在于,包括:将所述图形设备输出的RGB图像进行分块;

将每一块RGB格式图像转化为YUV格式图像;

对所述YUV格式图像进行基于亮度的量化压缩编码;

将所述量化压缩编码后的分块图像合并拼接为压缩图像;

将所述压缩图像存储到所述帧缓存中;

其中,对YUV图像块进行基于亮度的压缩编码时,具体为:对一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,前32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,后32bit保存16个像素对应的四色查找表的索引值Indexi,i=

0、1…、15;

从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点连线记作L0;对所有

16个像素点的YUV求平均值,将直线L0平移至过平均值点,得到的直线记作L1;

将Y轴上从y0到y1的区间定义为区间[y1,y0],将区间[y1,y0]通过直线L1分别映射到U轴和V轴上得到区间[u1,u0]和[v1,v0],其端点值为y0,y1,u0,u1,v0,v1;再将区间[y1,y0]均分成4份分别编码为00,01,10,11;

根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi。

7.一种基于亮度编码的帧缓存有损压缩方法,应用于包括图形设备、编码模块、解码模块、帧缓存、显示模块的系统中,其特征在于,包括:将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的量化压缩编码,将所述量化压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;

从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像传给所述显示模块;

其中,对YUV图像块进行基于亮度的压缩编码时,具体为:对一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,前32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,后32bit保存16个像素对应的四色查找表的索引值Indexi,i=

0、1…、15;

从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点连线记作L0;对所有

16个像素点的YUV求平均值,将直线L0平移至过平均值点,得到的直线记作L1;

将Y轴上从y0到y1的区间定义为区间[y1,y0],将区间[y1,y0]通过直线L1分别映射到U轴和V轴上得到区间[u1,u0]和[v1,v0],其端点值为y0,y1,u0,u1,v0,v1;再将区间[y1,y0]均分成4份分别编码为00,01,10,11;

根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi。

说明书 :

一种基于亮度编码的帧缓存有损压缩方法及装置

技术领域

[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-on-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] 所述量化子模块对一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,前32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,后32bit保存16个像素对应的四色查找表的索引值Indexi,i=0、1…、15;
[0027] 从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点连线记作L0;对所有16个像素点的YUV求平均值,将直线L0平移至过平均值点,得到的直线记作L1;
[0028] 将Y轴上从y0到y1的区间定义为区间[y1,y0],将区间[y1,y0]通过直线L1分别映射到U轴和V轴上得到区间[u1,u0]和[v1,v0],其端点值为y0,y1,u0,u1,v0,v1;再将区间[y1,y0]均分成4份分别编码为00,01,10,11;
[0029] 根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi。
[0030] 优选地,所述根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi,具体为:
[0031] 像素i的Y分量yi满足 时,则像素i对应的Indexi为00;像素i的Y分量yi满足 时,则像素i对应的Indexi为01;像素i的Y分
量yi满足 时,则像素i对应的Indexi为10;像素i的Y分量yi满
足 时,则像素i对应的Indexi为11。
[0032] 优选地,所述解码模块具体包括:
[0033] 读取子模块,用于从所述帧缓存中读取压缩图像;
[0034] 插值子模块,与所述读取子模块连接,用于对所述压缩图像进行插值并恢复成YUV格式图像;
[0035] 转换子模块,与插值子模块连接,用于将所述YUV格式图像转换为RGB格式图像;
[0036] 第二合并子模块,与转换子模块连接,用于将所述RGB格式图像合并拼接为原始RGB图像;
[0037] 发送子模块,与所述第二合并子模块连接,用于将原始RGB图像传给所述显示模块。
[0038] 优选地,所述解码模块还包括:
[0039] 请求子模块,与所述读取子模块连接,用于在刷新显示屏时,接收所述显示模块通过总线发起的数据请求,而后激活所述读取子模块进行读取。
[0040] 优选地,所述插值子模块对YUV图像块进行插值恢复时,具体为:
[0041] 分别以Y0U0V0和Y1U1V1作为最大值和最小值进行线性插值获得4个YUV值;
[0042] 根据后32bit中的Index0-Index15的索引值,将其替换为对应的YUV值。
[0043] 本发明还提出一种基于亮度编码的帧缓存有损压缩编码方法,应用于包括图形设备、编码模块、帧缓存的系统中,包括:
[0044] 将所述图形设备输出的RGB图像进行分块;
[0045] 将每一块RGB格式图像转化为YUV格式图像;
[0046] 对所述YUV格式图像进行基于亮度的压缩编码;
[0047] 将所述压缩编码后的分块图像合并拼接为压缩图像;
[0048] 将所述压缩图像存储到所述帧缓存中。
[0049] 本发明还提出了一种基于亮度编码的帧缓存有损压缩解码方法,应用于包括图形设备、解码模块、帧缓存、显示模块的系统中,包括:
[0050] 从所述帧缓存中读取压缩图像;
[0051] 对所述压缩图像进行插值并恢复成YUV格式图像;
[0052] 将所述YUV格式图像转换为RGB格式图像;
[0053] 将RGB格式图像合并拼接为原始RGB图像;
[0054] 将所述原始RGB图像传给所述显示模块。
[0055] 本发明还提出了一种基于亮度编码的帧缓存有损压缩方法,应用于包括图形设备、编码模块、解码模块、帧缓存、显示模块的系统中,包括:
[0056] 将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的压缩编码,将所述压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;
[0057] 从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像传给所述显示模块。
[0058] 在现有技术中,传统图形设备采用立即渲染模式(Immediate Mode Rendering,IMR),就如其字面意思一样,提交的每个渲染要求都会立即开始,这是一种简单而又粗暴的思路,其优点缺点都非常明显,如果不用为性能担忧,这种方式会很省事,但是IMR渲染实行的是无差别对待,那些遮蔽处理的部分依然会被渲染处理,这也导致了无意义的读写操作更多,浪费了大量性能和带宽。IMR渲染导致颜色缓冲和深度缓冲很大,必须放在外部,增加了外部存储的读写代价。
[0059] 在本发明中,通过采用基于Tile的渲染模式(Tile Based Rendering,TBR),将需要渲染的画面分成一个个的区块(tile),每个区块的坐标通过中间缓冲器以列表形式保存在系统内存中;这种渲染方式的好处就是相对IMR减少了颜色缓冲和深度缓冲的大小,外部的帧缓冲只有在绘制完成才写入一次,读写外部存储大大减小,节省了功耗。
[0060] 本发明中,将需要渲染的画面分成一个个的区块,每个区块的坐标通过中间缓冲器以列表形式保存在系统内存中,这种渲染方式减少了颜色缓冲和深度缓冲的大小,片外的帧缓冲只有在绘制完成才写入一次,读写外部存储大大减小,可节省功耗。将RDB格式图像转换为YUV格式图像后,由于其中的亮度Y分量包含着人眼最敏感的信息,只要进行有损压缩时使得Y分量的损失尽可能小,且尽可能减小压缩后图像各像素的UV分量以及MeanU和MeanV(原始图像所有像素的UV分量平均值)的偏差。这样就能更多地保留人眼敏感的信息,且减少有损压缩带来的图像的锯齿效应,从而保证人眼可观的图像损失尽可能地小。

附图说明

[0061] 图1为现有技术中包含嵌入式图形设备的SoC架构示意图;
[0062] 图2为现有技术中图形设备帧缓存的读写数据通路示意图;
[0063] 图3为现有技术中采用帧缓存压缩技术之后读写帧缓存过程示意图;
[0064] 图4为本发明实施例一提出的一种基于亮度编码的帧缓存有损压缩编码方法流程图;
[0065] 图5为本发明实施例二提出的一种基于亮度编码的帧缓存有损压缩解码方法流程图;
[0066] 图6为本发明中对RGB图像进行分块的示意图;
[0067] 图7为本发明中一个4×4的RGB图像块进行压缩编码后的YUV图像块的图像格式图;
[0068] 图8为本发明中对4×4的YUV图像块进行量化压缩编码的示意图;
[0069] 图9为本发明中将RGB图像转换成YUV图像的示意图;
[0070] 图10为本发明中将YUV图像合并拼接为压缩图像的示意图。
[0071] 图11为本发明中一种基于亮度编码的帧缓存有损压缩装置的结构示意图。

具体实施方式

[0072] 如图4所示,图4为本发明实施例一提出的一种基于亮度编码的帧缓存有损压缩编码方法流程图。
[0073] 参照图4,本发明实施例提出的一种基于亮度编码的帧缓存有损压缩编码方法,应用于包括图形设备、编码模块、帧缓存的系统中,包括:
[0074] S11,将图形设备输出的RGB图像进行分块。
[0075] 参照图6,将RGB图像分成多个4×4的RGB图像块;
[0076] S12,将每一块RGB格式图像转化为YUV格式图像。
[0077] 参照图9,在RGB格式图像转换成YUV格式图像的过程中,对RGB进行转换得到亮度信号Y以及两个色差信号R-Y(即U)和B-Y(即V),具体地将RGB转换成YUV可参见现有技术。
[0078] S13,对YUV格式图像进行基于亮度的量化压缩编码。
[0079] 参照图7,在对YUV图像采用基于亮度的量化压缩编码时,一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,其中,前32个bit保存两个基色值,这两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,接下来的32bit保存16个像素对应的四色查找表的索引值,其索引值从Index0到Index15。
[0080] 下面介绍如何获得y0u0v0,y1u1v1以及Index0~15。
[0081] 参照图8,对4×4的YUV图像块进行量化压缩编码时,所有像素点在Y-U空间的坐标系下可以表示成图7中的圆点。
[0082] 参照图7,首先从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点记作P0和P1,这两点的连线记作L0;对所有16个像素点的YUV求平均值,该平均值在Y-U坐标系下表示为方块点,记作Pmean,再将直线L0平移至过平均值点Pmean,得到的直线记作L1。
[0083] 然后将Y轴上从y0到y1的区间定义为区间[y1,y0],区间[y1,y0]通过直线L1映射到U轴上对应的区间记作[u1,u0],其端点值为u1和u0,类似地,区间[y1,y0]通过直线L1映射到V轴上对应的区间记作[v1,v0],其端点值为v1和v0。然后,将区间[y1,y0]均分成4份,分别编码为00,01,10,11。
[0084] 最后针对每个像素在Y轴上的投影落在哪个区间来决定该像素的索引值,其中:像素i的Y分量yi满足 时,则像素i对应的Indexi为00;像素i的Y分量yi满足 时,则像素i对应的Indexi为01;像素i的Y分量yi满足
时,则像素i对应的Indexi为10;像素i的Y分量yi满足
时,则像素i对应的Indexi为11。
[0085] S14,将所述量化压缩编码后的分块图像合并拼接为压缩图像。
[0086] 参照图10,每个4x4的图像块均可以得到y0,y1,u0,u1,v0,v1六个颜色值,即图10中第0行和第1行的6个值,另外,根据每个像素在Y轴的投影,可以得到该像素的索引值,再根据S13中的索引关系,将每个像素的索引值写到图10的第2,3行,就可以得到压缩结果。
[0087] S15,将压缩图像存储到所述帧缓存中。
[0088] 如图5所示,图5为本发明实施例二提出的一种基于亮度编码的帧缓存有损压缩编码方法流程图。
[0089] 参照图5,本发明实施例二提出了一种基于亮度编码的帧缓存有损压缩解码方法,应用于包括图形设备、解码模块、帧缓存、显示模块的系统中,包括:
[0090] S21,从所述帧缓存中读取压缩图像;
[0091] S22,将压缩图像进行插值并恢复成YUV格式图像;
[0092] 参照图7,根据图7中的压缩格式,先以Y0U0V0和Y1U1V1作为最大值最小值进行线性插值获得4个YUV值,然后根据后32bit中的Index0-Index15的索引值,将其替换为对应的YUV值,从而将压缩图像恢复成YUV格式图像。
[0093] S23,将所述YUV格式图像转换为RGB格式图像;
[0094] 将YUV格式图像转换为RGB格式图像是将RGB格式图像转换为YUV格式图像的逆过程,可参照前述表达。
[0095] S24,将RGB格式图像合并拼接为原始RGB图像;
[0096] 将RGB格式图像合并拼接为原始RGB图像是将RGB图像分块为RGB图像块的逆过程,可参照前述表达。
[0097] S25、将原始RGB图像传给所述显示模块。
[0098] 根据上述实施例一和实施例二,本发明实施例三提出了一种基于亮度编码的帧缓存有损压缩方法,应用于包括图形设备、编码模块、解码模块、帧缓存和显示模块的系统中,包括:
[0099] 将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的量化压缩编码,将所述量化压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;
[0100] 从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像传给所述显示模块。
[0101] 如图11所示,图11为本发明中一种基于亮度编码的帧缓存有损压缩装置的结构示意图。
[0102] 参照图11,本发明实施例提供的一种基于亮度编码的帧缓存有损压缩装置,包括:图形设备、编码模块、解码模块、帧缓存、显示模块;其中,
[0103] 所述图形设备用于输出RGB图像;所述编码模块通过总线与所述图形设备通信,所述编码模块用于将所述图形设备输出的RGB图像进行分块,将每一块RGB格式图像转化为YUV格式图像,对所述YUV格式图像进行基于亮度的量化压缩编码,将所述量化压缩编码后的分块图像合并拼接为压缩图像,将所述压缩图像存储到所述帧缓存中;所述解码模块与所述编码模块连接并通过总线与所述图形设备通信,所述解码模块用于从所述帧缓存中读取压缩图像,对所述压缩图像进行插值并恢复成YUV格式图像,将所述YUV格式图像转换为RGB格式图像,将RGB格式图像合并拼接为原始RGB图像,将所述原始RGB图像通过总线传给所述显示模块。
[0104] 在上述实施例中,所述编码模块具体包括:分块子模块、转换子模块、量化子模块、第一合并子模块、存储子模块,其中:
[0105] 分块子模块用于将所述图形设备输出的RGB图像进行分块;转换子模块与所述分块子模块连接,用于将每一块RGB格式图像转化为YUV格式图像;量化子模块与所述转换子模块连接,用于对所述YUV格式图像进行基于亮度的量化压缩编码;第一合并子模块与所述量化子模块连接,用于将所述量化压缩编码后的分块图像合并拼接为压缩图像,存储子模块与所述第一合并子模块,用于将压缩图像存储到所述帧缓存中。
[0106] 所述量化子模块对YUV图像块进行基于亮度的压缩编码时,具体为:
[0107] 所述量化子模块对一个4×4的YUV图像块进行压缩编码后的数据大小为64bit,前32bit保存两个基色值,所述两个基色值都用YUV格式表示并记作y0u0v0和y1u1v1,后32bit保存16个像素对应的四色查找表的索引值Indexi,i=0、1…、15;
[0108] 从16个像素中找出Y分量的最大值y0和最小值y1,其对应的像素点连线记作L0;对所有16个像素点的YUV求平均值,将直线L0平移至过平均值点,得到的直线记作L1;
[0109] 将Y轴上从y0到y1的区间定义为区间[y1,y0],将区间[y1,y0]通过直线L1分别映射到U轴和V轴上得到区间[u1,u0]和[v1,v0],其端点值为y0,y1,u0,u1,v0,v1;再将区间[y1,y0]均分成4份分别编码为00,01,10,11;
[0110] 根据每个像素在Y轴上的投影落在的区间来确定该像素的索引值Indexi,具体为:像素i的Y分量yi满足 时,则像素i对应的Indexi为00;像素i的Y分量yi
满足 时,则像素i对应的Indexi为01;像素i的Y分量yi满足
时,则像素i对应的Indexi为10;像素i的Y分量yi满足
时,则像素i对应的Indexi为11。
[0111] 在上述实施例中,所述解码模块具体包括:读取子模块、插值子模块、转换子模块、第二合并子模块、发送子模块,其中:
[0112] 读取子模块用于从所述帧缓存中读取压缩图像;插值子模块与所述读取子模块连接,用于对所述压缩图像进行插值并恢复成YUV格式图像;转换子模块与插值子模块连接,用于将所述YUV格式图像转换为RGB格式图像;第二合并子模块与转换子模块连接,用于将所述RGB格式图像合并拼接为原始RGB图像;发送子模块与所述第二合并子模块连接,用于将原始RGB图像传给所述显示模块。
[0113] 其中,所述解码模块还包括请求子模块,请求子模块与所述读取子模块连接,用于在刷新显示屏时,接收所述显示模块通过总线发起的数据请求,而后激活所述读取子模块进行读取。
[0114] 所述插值子模块对4×4的YUV图像块进行插值恢复时,具体为:以Y0U0V0和Y1U1V1作为最大值最小值进行线性插值获得4个YUV值;根据后32bit中的Index0-Index15的索引值,将其替换为对应的YUV值,从而将压缩图像恢复成YUV格式图像。
[0115] 本发明中,只需要查找Y分量的最大值和最小值,减少了硬件复杂度,降低了编解码模块的功耗;而且本发明将每16个RGB的像素压缩至64bit,由于人眼对YUV分量中的Y分量最敏感,而本发明保证了Y分量的损失更小,且通过在量化UV分量时以UV的平均值为基准的方法,使得压缩后的图像分块、锯齿的现象得到减轻,从最终结果可以看到图像损失更小。
[0116] 以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。