一种对显示数据进行压缩和解压缩的方法

文档序号:9235983阅读:901来源:国知局
一种对显示数据进行压缩和解压缩的方法
【技术领域】
[0001] 本发明设及一种图像压缩技术,尤其是一种对显示数据进行压缩和解压缩的方 法。
【背景技术】
[0002] 显示设备的一般显示原理是显示控制器按照一定的屏幕刷新率从显示缓冲区中 读取显示数据,进行处理后,依次输出到显示接口进行显示。随着显示设备不断向高色阶、 高分辨率、高色深发展,在图像显示过程中显示控制器对数据的读取会占用巨大的总线带 宽,严重影响系统性能。如果显示缓冲区中的数据可W被压缩,且压缩后的数据量只有未压 缩数据量的A%,那么读取数据过程中对总线带宽的占用和对内存的访存次数都将减少到 原先的A%。但其代价是每当显存数据被更新时,都需要对显存数据进行压缩。
[0003] 压缩算法按照压缩、解压缩后是否造成图像质量的下降,可分为有损压缩和无损 压缩两类。有损压缩算法的压缩效率较高、但却W牺牲图像质量为代价。而无损压缩算法 虽效率较低,但算法较为简单,对计算资源占用小、且不会造成图像质量的下降。为了在节 省带宽的同时保证图像质量,显存压缩技术多采用无损压缩算法。
[0004] 根据压缩时如何利用图像中像素间的相关性,无损压缩算法可W分为行压缩和块 压缩。行压缩是W行为单位进行压缩,利用了左右相邻像素的相关性;块压缩是W块为单位 进行压缩,利用了一个块中像素的相关性。相比于块压缩,行压缩地址计算较为简单,更适 用于左右相邻像素相关性较大的典型应用场景;而块压缩需要相应的地址查找表,更适用 于较为复杂的图像、视频处理。

【发明内容】

[0005] 本发明要解决的技术问题是:提出一种对显示数据进行压缩和解压缩的方法,能 够通过对显存数据进行压缩和解压缩,降低在对高分辨率显示过程中对总线带宽的占用, W提高系统性能。
[0006] 本发明所采用的技术方案为;一种对显示数据进行压缩和解压缩的方法,包括W 下步骤,
[0007]A、维护两个显示存储区域,分别是存储未压缩图像数据的原始显存和存储压缩数 据的压缩显存;
[0008]B、当未压缩显存中的图像数据被更新后,由CPU计算出被更新数据在未压缩显存 中所处的行地址,从未压缩显存中取出该行数据进行压缩,并存储到压缩显存中该行对应 的存储地址中;
[0009]C、当显存数据更新速率较快时,CPU停止对原始显存中更新数据的压缩,并通过对 显示控制器寄存器的配置使显示控制器在下一帖开始从未压缩显存中读取数据;当原始显 存中写入的显示数据相邻像素间的相关性较低,使得压缩后的显示数据量比未压缩的显示 数据量更大时,CPU停止对原始显存中的更新数据进行压缩,并通过对显示控制器寄存器的 配置使显示控制器在下一帖开始从未压缩显存中读取数据;
[0010] D、显示控制器根据寄存器的配置命令,从相应显存中读取图像数据;
[0011] E、若从压缩显存中读取数据,显示控制器对压缩后的图像数据进行解压缩,并依 次输出到显示接口进行显示;
[0012] F、若从未压缩显存中读取数据,显示控制器不用进行解压缩处理,直接进行其他 相关处理后将显示数据依次输出到显示接口进行显示。
[0013] 进一步的说,本发明所述的步骤A包括:
[0014] A1、压缩显存中数据的存储方式是由未压缩显存中存储数据的分辨率决定的,未 压缩显存中数据的分辨率可通过配置寄存器设置,该显示配置在一帖有效显示过程中不允 许改变,W防止出现画面错误;
[0015] A2、若未压缩显存中存储的图像数据的横向分辨率为X_SIZE,纵向分辨率为Y_ SIZE,图形缓存区的行存储跨度为Stride,则压缩显存中每行的有效数据量为压缩后的行 数据量,行数仍未Y_SIZE,压缩显存的行存储跨度为未压缩显存的横向分辨率X_SIZE乘W 色深再乘W1.5倍。
[0016] 再进一步的说,本发明所述的步骤B包括:
[0017] B1、W行为单位读入未压缩的行数据;使用压缩后行数据中的前两个字节存储该 行压缩后的总数据量;
[0018] B2、依次处理未压缩行中的像素值,每次读入的像素值称为当前像素值,在当前像 素值之前读入的像素值称为之前像素值;让当前像素值与之前像素值进行比较,利用左右 相邻像素的相关性对比较结果进行编码;
[0019] B3、图形层数据的更新一般为局部更新,而非整帖更新,CPU每次向显存中传入数 据块、数据块的长宽、数据块起始像素点在显存中的地址信息;每当发生显存更新时,并非 将整帖图像重新压缩,而是对发生更新的像素点所在的行进行压缩,并将压缩后的行数据 存放在压缩显存中对应的位置;视频数据为整帖更新,在该种情况下,对视频数据进行整帖 压缩,再配置寄存器令显示控制器从压缩显存中读取数据进行显示。
[0020] 再进一步的说,本发明所述的步骤C包括:
[0021] C1、进行显存压缩后,带宽消耗比没有进行显存压缩前带宽的消耗小;若显示控制 器从未压缩显存中读取数据占用的带宽是B,未压缩的显存数据大小是F,显示器的屏幕刷 新率是化,则B=FXfr;
[0022] C2、若压缩比是n,经过显存压缩后,显示控制器从压缩显存中读取数据占用的带 宽是B',则B' =nXB;
[0023] C3、因为未压缩显存的更新,每秒钟CPU需要从未压缩显存中读取W的未压缩数据 进行压缩,经过压缩后,该数据量变为nXW,CPU将nXW的数据量存放到压缩显存中,该 压缩过程中占用的带宽量为(i+n)xw;
[0024] C4、进行显存压缩后,带宽消耗比没有进行显存压缩前的带宽消耗小;即B> nXB+(i+n)XW;
[0025] C5、每秒钟从未压缩显存中读取的未压缩数据量满足W< ^XB,根据评测数 据,压缩比大于0. 5,显存更新频率为每秒60帖,则当W< 20XF时,采用显存压缩技术即可 取得效果;其中F等于显示图像的分辨率和色深的乘积;
[0026]C6、记录1秒钟内从未压缩显存中读取的未压缩数据量W,每秒钟结束时按照巧 所述对W进行一次检验,若符合要求则继续操作;若不符合要求,则停止对显存数据进行压 缩,通过寄存器配置,令显示控制器从未压缩显存中读取数据进行显示;
[0027]C7、若压缩后的数据量比未压缩的数据量大,则需停止压缩,记录1秒钟内读取的 未压缩显存的数据量W和压缩后写入压缩显存的数据量W',每秒结束时对比W和W'的大 小,若W'〉W,则停止显存压缩,配置寄存器,令显示控制器从未压缩显存中读取数据。
[0028] 再进一步的说,本发明所述的步骤D包括:
[0029]D1、显示控制器根据内部寄存器的配置进行工作,显示控制器内部寄存器的更新 并非是实时的,而是需要等待寄存器更新窗口时间并进行异步握手处理;窗口时间是指在 两帖显示之间的一个特定时间点,即一帖显示结束、下一帖显示还未开始之前的场效应时 间;
[0030] D2、显示控制器寄存器的更新方式是;配置寄存器后将负责标志是否更新的寄存 器相应位置"1";显示控制器反复读取负责标志是否更新的寄存器,查看相应的更新位;当 更新位被清"0"时,寄存器就完成更新;在等待过程中,不能对该部分的寄存器进行修改;
[0031] D3、显示控制器根据寄存器的配置决定是否开启解压缩功能,当显示控制器开启 解压缩功能时,先对读取的显示数据进行解压缩,再依次送入显示接口进行显示;当显示 控制器不开启解压缩功能时,对读入的显示数据进行相关处理后直接送入显示接口进行显 /J、- 〇
[0032] 本发明的有益效果是:能够通过对显存数据进行压缩和解压缩,降低在对高分辨 率显示过程中对总线带宽的占用
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1