CN102522069B - 一种显示控制器的像素帧缓存处理系统及方法 - Google Patents
一种显示控制器的像素帧缓存处理系统及方法 Download PDFInfo
- Publication number
- CN102522069B CN102522069B CN201110430954.2A CN201110430954A CN102522069B CN 102522069 B CN102522069 B CN 102522069B CN 201110430954 A CN201110430954 A CN 201110430954A CN 102522069 B CN102522069 B CN 102522069B
- Authority
- CN
- China
- Prior art keywords
- compression
- swimming
- values
- distance
- color
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明提供一种显示控制器的像素帧缓存处理系统及方法。该系统包括LFBC控制装置,压缩装置,帧压缩缓存区,解压装置,其中压缩装置,用于对准备输出到显示控制器的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;解压装置,用于从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值并进行解码,得到显示控制器的像素,输出给显示控制器进行显示。其有效地降低计算机显示系统功耗。
Description
技术领域
本发明涉及计算机显示系统的系统芯片(System on a Chip,SoC)技术领域,特别是涉及一种计算机显示系统中的显示控制器的像素帧缓存处理系统及方法。
背景技术
计算机显示系统是台式机、笔记本电脑、智能手机等几乎所有计算机系统的重要组成部分。
现有技术中,如LCD显示器需要以60Hz或者更高的频率进行刷新,因此显示控制器(Liquid Crystal Display Controller,LCDC)也需要以相同的频率扫描帧缓存区读取像素。扫描帧缓存区所产生的存储器访问操作不仅是系统总线带宽开销的重要组成部分,同时也成为计算机系统功耗的重要来源。在一些嵌入式系统中该部分功耗可占整个系统功耗的20%以上。
在多数应用场合,尤其是人机交互过程中,显示屏幕更新的速度通常低于显示控制器(LCDC)扫描帧缓存区的速度,这意味着在一定时间段内,显示控制器(LCDC)重复访问帧缓存区内相同的数据。因此利用帧缓存区压缩(Frame BufferCompression,FBC)可以减少显示控制器(LCDC)对存储器的访问次数,从而降低显示系统功耗。目前该技术已经在一些计算机系统,尤其是那些使用LCD显示器的嵌入式设备中得到应用。
在现有技术“A compressed frame buffer to reduce display powerconsumption in mobile systems”;[C]//Proceedings of the2004Asia andSouth Pacific Design Automation Conference.Piscataway:IEEE Press,2004:818-823,H Shim,N Chang,M Pedram.中,其提出一种帧缓存区游程编码(RunLength Encoding,RLE)格式——RLE16编码,其如图1所示,采用基于RGB565色彩编码格式的32位编码,前16位原样保存了RGB565的色彩值,后16位保存这个色彩值的游程,从而最多可将连续65536个相同像素压缩为32比特。但是,RLE16压缩编码的像素的游程长度占据了额外的存储空间,并且,采用RLE16编码进行帧缓存区压缩,不排除压缩后帧缓存区体积反而增大的情况发生。该现有技术文献中还同时提供另一种改进的帧缓存区游程编码格式——ARLE16编码,如图2a、图2b所示,其仍然采用基于RGB565色彩编码的格式,但仅在帧缓存区中连续出现多个相同像素的情况下才进行编码,从而保证了压缩后帧缓存区的体积不超过压缩前。同时其将RGB565格式的绿色分量长度由6位减至5位,并增添了指示当前编码是否带有游程的指示位。这样,ARLE16牺牲了绿色分量的精度,使本来的无损压缩变成了有损压缩。另外ARLE16压缩数据中包含32位(图2a)和16位(图2b)两种长度的编码格式。
中国专利公开号为CN101310291A的申请公开一种用于视频帧缓冲压缩的系统和方法,配置存储器装置以存储视频数据,并且,对应的存储器控制器控制在存储器装置中的视频数据的存储。帧缓冲压缩模块压缩从视频模块接收的根据存储器控制器而被存储在存储器装置中的帧数据,并且解压缩根据存储器控制而从存储器装置获得的压缩帧数据而由视频模块使用。帧缓冲压缩模块包括被配置用来编码和压缩从根据存储器控制器而在存储器中存储的视频模块接收的帧数据的帧缓冲压缩编码器。帧缓冲器还包括被配置用来解码和解压缩从根据存储器控制器的存储器获得的帧数据的对应的帧缓冲压缩解码器以由视频模块使用。
但是,现有技术中编码长度不一致的缺陷会导致解码器不论一拍取多少数据,都有可能只取到某一编码的颜色值却取不到它的游程,而且,为保证解码实时性,就必须设计更加复杂的解码逻辑,从而产生更大的硬件开销。
发明内容
本发明的目的在于提供一种显示控制器的帧缓存处理系统及方法,其有效地降低计算机显示系统功耗。
为实现本发明目的而提供的一种显示控制器的帧缓存处理系统,包括显示控制器,还包括LFBC控制装置,压缩装置,帧压缩缓存区,解压装置,其中:
所述LFBC控制装置,用于对准备输出到显示控制器的新的像素,根据预设的阈值,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器;当以压缩模式处理所述新的像素时,则将所述获取的新的像素输入到压缩装置进行编码压缩输入到帧压缩缓存区得到编码压缩像素数据,并控制解压装置将所述帧压缩缓存区中的编码压缩像素数据解码并输出到显示控制器;
所述压缩装置,用于对准备输出到显示控制器的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;
所述帧压缩缓存区,用于存储被压缩装置压缩后的编码压缩像素数据;
所述解压装置,用于从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值进行解码,得到显示控制器的像素,输出给显示控制器进行显示。
较优地,所述的像素帧缓存处理系统,还包括DMA模块;所述LFBC控制装置从所述DMA模块获取所述新的像素;
所述进处理,为按预设的LFBC游程编码格式进行处理;所述进行解码为按预设的LFBC游程编码格式进行解码;
所述预设LFBC游程编码格式为利用阿尔法分量的位置来保存当前像素的游程长度的游程编码格式;所述预设LFBC游程编码格式数据结构中原阿尔法分量保存位置保存8位游程长度,剩余24位保存压缩编码色彩值,其中,红、绿、蓝色彩值分量分别为8位;
所述帧压缩缓存区为计算机显示控制器的内存的一段数据缓存区。
较优地,所述LFBC控制装置,包括一个饱和计数器,计分模块,其中:
所述计分模块,用于对当前时间段内DMA模块的帧缓存区的内容更新的频率进行计分,得到计分值;
所述饱和计数器,用于存储所述计分值。
较优地,所述压缩装置,包括编码模块;
所述编码模块,用于将准备输入到显示控制器的新的像素的色彩值,与当前像素的色彩值进行比较,根据比较结果进行编码并得到压缩游程计数值和压缩编码色彩值,并按预设的LFBC游程编码格式,对所述压缩游程计数值和压缩编码色彩值进行压缩处理后输出到帧压缩缓存区中得到编码压缩像素数据。
较优地,所述编码模块,包括第一拍比较子模块,第二拍压缩子模块,压缩游程计数寄存器,压缩编码色彩值寄存器,压缩缓存区,其中:
所述第一拍比较子模块,用于在编码的第一拍中,将新的像素的像素色彩值与压缩编码色彩值作比较;若相同,压缩游程计数寄存器中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器中作为新的压缩编码色彩值,压缩游程计数寄存器清零;
所述第二拍压缩子模块,用于在第二拍中,若压缩游程计数寄存器中压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数寄存器中压缩游程计数值为零,则一段编码结束,从压缩缓存区中读取压缩游程计数值和压缩编码色彩值,按预设的LFBC游程编码格式,压缩写入帧压缩缓存区得到编码压缩像素数据;
所述压缩游程计数寄存器,用于保存压缩游程计数值;
所述压缩编码色彩值寄存器,用于保存压缩编码色彩值;
所述压缩缓存区,用于按预设的LFBC游程编码格式,缓存压缩游程计数值和压缩编码色彩值。
较优地,在所述编码模块中,还包括判断子模块,用于在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,压缩游程计数寄存器清零。
较优地,所述解压装置包括读取模块和解码模块,解码游程计数寄存器,解码色彩值寄存器。
其中,所述读取模块,用于从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;
所述解码模块,用于根据第二游程计数值和当前像素的色彩编码值,按预设的LFBC游程编码格式解码得到显示控制器的像素,输出给显示控制器;并在解压过程中,判断解码游程计数值是否为0;如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码;
所述解码游程计数寄存器,用于保存解码游程计数值;
所述解码色彩值寄存器,用于保存当前像素的解码色彩值。
较优地,所述解压装置,还包括采样模块,用于在解码的每一拍,均对解码色彩值寄存器中的当前像素的解码色彩值进行采样。
为实现本发明目的还提供一种显示控制器的像素帧缓存处理方法,包括如下步骤:
步骤S100,对准备输出到显示控制器的新的像素,根据预设的阈值,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器;当以压缩模式处理所述新的像素时,则转入步骤S200;
步骤S200,对准备输出到显示控制器的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;
步骤S300,存储被压缩装置压缩后的编码压缩像素数据;
步骤S400,从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值并进行解码,得到显示控制器的像素,输出到显示控制器进行显示。
较佳地,所述步骤S200,包括如下步骤:
步骤S210,在编码的第一拍中,将新的像素的色彩值与压缩编码色彩值作比较;
步骤S220,若相同,压缩游程计数寄数器中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器中作为压缩编码色彩值,压缩游程计数寄存器清零;
步骤S230,在编码的第二拍中,若压缩游程计数寄存器中压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数寄存器中压缩游程计数值为零,则一段编码结束,从压缩缓存区中读取压缩游程计数值和压缩编码色彩值,利用预设的LFBC游程编码格式,压缩写入帧压缩缓存区得到编码压缩像素数据。
较优地,所述步骤S220还包括如下步骤:
步骤S220’,在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,压缩游程计数寄存器清零。
较优地,所述步骤S400,包括如下步骤:
步骤S410,从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;
步骤S420,根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式数据,解码得到显示控制器的像素,输出给显示控制器;并在解码过程中,判断解码游程计数值是否为0;如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码。
本发明的有益效果:本发明的显示控制器的帧缓存区压缩处理系统及方法,通过帧压缩缓存区内数据量的大小,减少计算机显示控制器扫描帧缓存区过程中所产生的存储器访问操作数量,从而达到降低计算机显示系统功耗的目的。
说明书附图
图1为现有技术中的一种RLE16游程编码数据结构示意图;
图2a为现有技术中的一种ARLE16游程编码数据结构(当游程大于1时)示意图;
图2b为现有技术中的一种ARLE16游程编码数据结构(当游程等于1时)示意图;
图3为本发明实施例显示控制器的像素帧缓存处理系统结构示意图;
图4为ARGB8888色彩编码数据结构示意图;
图5为本发明LFBC游程编码格式数据结构示意图;
图6为图5中压缩装置工作过程示意图;
图7为图5中解压装置工作过程示意图;
图8为用本发明实施例的显示控制器的帧缓存处理系统及方法改进龙芯1GSoC显示控制器设计前后显示系统功耗的对比示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的显示控制器的帧缓存处理系统及方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图3所示,本发明的显示控制器的像素帧缓存处理系统,包括显示控制器3,LFBC(Loongson Frame Buffer Compression)控制装置1,压缩装置2,帧压缩缓存区5,解压装置4,其中:
所述LFBC控制装置1,用于对准备输出到显示控制器3的新的像素,根据预设的阈值T,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器3;当以压缩模式处理所述新的像素时,则将所述获取的新的像素输入到压缩装置2进行编码压缩输入到帧压缩缓存区5得到编码压缩像素数据;并控制解压装置4将所述帧压缩缓存区5中的编码压缩像素数据解码并输出到显示控制器3。
所述压缩装置2,用于对准备输出到显示控制器3的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区5得到编码压缩像素数据。
所述帧压缩缓存区5,用于存储被压缩装置2压缩后的编码压缩像素数据。
较佳地,作为一种可实施方式,所述帧压缩缓存区5可以是计算机显示系统内存(未示出)的一段数据缓存区。
所述解压装置4,用于从帧压缩缓存区5读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值进行解码,得到显示控制器3的像素,输出给显示控制器3进行显示。
较佳地,作为一种可实施方式,本发明实施例的所述的像素帧缓存处理系统,还包括DMA(Direct Memory Access,直接内存存取)模块6;所述LFBC控制装置从所述DMA模块获取所述新的像素;
较佳地,作为一种可实施方式,本发明实施例中,所述处理为按预设的LFBC游程编码格式进行处理;所述进行解码为按预设的LFBC游程编码格式进行解码。
现代计算机显示系统往往要求像素在帧缓存区内以ARGB8888数据格式进行存储,如图4所示。ARGB8888数据格式中的阿尔法(Alpha)分量在图形处理过程中有重要的用途(alpha混合、alpha测试等)。但在显示控制器3读取像素并发送到显示接口的过程中,该分量被直接抛弃。因此,作为一种可实施方式,本发明实施例中,所述预设LFBC游程编码格式为利用阿尔法(Alpha)分量的位置来保存当前像素的游程长度的游程编码格式。作为一种可实施方式,本发明实施例中,所述预设LFBC游程编码格式,其数据结构如图5所示,其中8位(原Alpha分量保存位置)保存游程长度,剩余24位保存压缩编码色彩值(在压缩装置中)或者解码色彩值(在解码装置中),其中,红、绿、蓝色彩值分量分别为8位。本发明实施例中,预设的LFBC游程编码的8位游程可表示0~255无符号整数,因此可将最多256个连续相同像素压缩到原来1个像素的长度(32比特)。
较佳地,作为一种可实施方式,下面详细描述本发明实施例的LFBC控制装置1。
LFBC控制装置1控制显示控制器(LCDC)在正常模式和压缩模式之间的切换。
所述LFBC控制装置1对准备输出到显示控制器3的新的像素,根据预设的阈值T,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,从DMA模块获取所述新的像素并直接发送到显示控制器3;当以压缩模式处理所述新的像素时,则将所述新的像素输入到压缩装置2进行编码压缩得到编码压缩像素数据输入帧压缩缓存区5;并控制解压装置4将所述帧压缩缓存区5中的编码压缩像素数据解压并输出到显示控制器3。
较佳地,作为一种可实施方式,本发明实施例的LFBC控制装置1,包括一个饱和计数器11,计分模块12。
所述计分模块12,用于对当前时间段内DMA模块6的帧缓存区的内容更新的频率进行计分,得到计分值。
所述饱和计数器11,用于存储所述计分值。
每当显示控制器3(LCDC)完成一次帧缓存区扫描,计分模块的计分值(分数)就修改一次:若上次扫描过程中帧缓存区的内容被更新,则计分值增加n;若上次扫描过程中帧缓存区的内容没有更新,则计分值自减1。
依照此计分方法,若帧缓存区内容更新的时间间隔大于完成n次扫描的时间,则饱和计数器的值会逐渐上升,反之就逐渐下降。
记T为阈值,则当饱和计数器分数高于阈值T时,表明当前应用不适合进行帧缓存区压缩;反之则适合进行帧缓存区压缩。
当以正常模式处理时,将所述新的像素直接输入到显示控制器3;当以压缩模式处理所述新的像素时,则将所述新的像素输入到压缩装置2进行编码压缩得到编码压缩像素数据输入到帧压缩缓存区5;并控制解压装置4将所述帧压缩缓存区5中的编码压缩像素数据解压并输出到显示控制器3。
更佳地,为了兼顾控制模块的反应速度,作为一种可实施方式,本发明实施例中,所述饱和计数器11的位数为4位,即满分15;所述阈值T为8;所述n为2。
较佳地,作为一种可实施方式,如图6所示,本发明实施例的压缩装置2,包括编码模块。
所述编码模块,用于对准备输入到显示控制器3的新的像素的色彩值(InputPixel),将所述新的像素的色彩值(Input Pixel)与当前像素的色彩值进行比较,根据比较结果进行编码并得到压缩游程计数值(Pixel Count)和压缩编码色彩值,并按预设的LFBC游程编码格式,对所述压缩游程计数值和压缩编码色彩值进行处理后输出到帧压缩缓存区5中。
较佳地,作为一种可实施方式,所述编码模块,包括第一拍比较子模块21,第二拍控制子模块22,压缩游程计数寄存器23,压缩编码色彩值寄存器24,压缩缓存区25,其中:
所述第一拍比较子模块21,用于在编码的第一拍中,将新的像素的像素色彩值(Input Pixel)与压缩编码色彩值(Current Pixel)作比较;若相同,控制压缩游程计数寄存器23中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器23中的压缩游程计数值和压缩编码色彩值寄存器24中的压缩编码色彩值写入压缩缓存区25中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器24中作为新的压缩编码色彩值,压缩游程计数(Pixel Count)寄存器23清零。
所述第二拍压缩子模块22,用于在编码的第二拍中,若压缩游程计数寄存器23中压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数寄存器23中压缩游程计数值为零,则一段编码结束,从压缩缓存区25中读取压缩游程计数值和压缩编码色彩值,按预设的LFBC游程编码格式,写入帧压缩缓存区(Compress Buffer)5得到编码压缩像素数据,完成编码压缩过程。
所述压缩游程计数寄存器23,用于保存压缩游程计数值。作为一种现有的技术,该压缩游程寄存器23在显示系统启动初始化时,初始化其初始值为0。
所述压缩编码色彩值寄存器24,用于保存压缩编码色彩值。
所述压缩缓存区25,用于按预设的LFBC游程编码格式,缓存压缩游程计数值(Pixel Count)和压缩编码色彩值。
作为一种可实施方式,本发明实施例中,所述压缩装置2的工作过程如下:
对新的像素色彩值(Input Pixel),对所述新的像素色彩值(Input Pixel)比较,进行编码并得到压缩游程计数值和压缩编码色彩值,并压缩后写入到帧压缩缓存区中。
较佳地,作为一种可实施方式,如图6所示,编码压缩过程需要两个时钟周期,即编码像素流水线包括两拍:编码像素流水线的第一拍和第二拍。
本发明实施例中,作为一种可实施方式,较佳地,为了不增加额外的访存请求,编码像素流水线第一拍和第二拍可以同时读取像素,即第一拍与第二拍同时处理像素编码。
其中,作为一种可实施方式,在编码像素流水线第一拍,新的像素的色彩值(Input Pixel)与压缩编码色彩值(Current Pixel)作比较;若相同,压缩游程计数值(Pixel Count)将自加1;若不同,则将压缩游程计数寄存器23中的压缩游程计数值和压缩编码色彩值寄存器24中的压缩编码色彩值写入压缩缓存区25中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器24中作为新的压缩编码色彩值,压缩游程计数寄存器23清零。
在编码像素流水线第二拍,若压缩游程计数寄存器23中的压缩游程计数值不为零,则不做任何操作并返回,等待读取下一个新的像素并进行新的第一拍和第二拍操作;若压缩游程计数(Pixel Count)寄存器23中的压缩游程计数值为零,则一段编码结束,从压缩缓存区25中读取压缩游程计数值和压缩编码色彩值,利用预设的LFBC游程编码格式,进行压缩写入得到压缩编码数据。
然后,经过压缩写入的压缩编码数据最终由AXI(Advanced eXtensibleInterface)总线接口模块7以闯入(Burst)的方式写入帧压缩缓存区(CompressFrame Buffer)5。
像素更佳地,所述编码模块,还包括判断子模块26,用于在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器23中的压缩游程计数值和压缩编码色彩值寄存器24中的压缩编码色彩值写入压缩缓存区25中,压缩游程计数(Pixel Count)寄存器23清零。
较佳地,作为一种可实施方式,如图7所示,本发明实施例的解压装置4包括读取模块41和解码模块42,解码游程计数寄存器43,解码编码色彩值寄存器44。
其中,所述读取模块41,用于从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;。
所述解码模块42,用于根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式,解码得到显示控制器的像素输出给显示控制器3;并在解压过程中,判断解码游程计数值是否为0,如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码。
作为一种可实施方式,在解压过程中,若解码游程计数(Pixel Count)寄存器中解码游程计数值为0,则在下一拍从帧压缩缓存区读取一个新的32位编码压缩像素数据。
所述解码游程计数寄存器43,用于保存解码游程计数值。
所述解码色彩值寄存器44,用于保存解码色彩值。
更佳地,所述解压装置,还包括采样模块,用于在解压像素流水线每一拍,均对解码色彩值(Current Pixel)寄存器中的当前像素的解码色彩值进行采样。
下面详细说明本发明实施例中解压装置的工作过程:
如图7所示,读取模块从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;
解码模块根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式,解码得到显示控制器的像素输出给显示控制器3;
在解压过程中,若解码游程计数(Pixel Count)寄存器中解码游程计数值为0,则在下一拍从帧压缩缓存区读取一个新的32位编码压缩像素数据,输出到解码模块。
其中,32位编码压缩像素数据的高8位作为解码游程计数值保存在解码游程计数(Pixel Count)寄存器中,低24位作为24位色彩值保存在解码色彩寄存器中;
在解压过程中,若解码游程计数(Pixel Count)寄存器不为0,则解码游程计数(Pixel Count)寄存器中解码游程计数值在下一拍自减1得到新的解码游程计数值,解码色彩编码寄存器的压缩编码色彩值保持不变,解码得到显示控制器的像素,输出给显示控制器3。
相应地,本发明还提供一种显示控制器的像素帧缓存处理方法,包括如下步骤:
步骤S100,对准备输出到显示控制器的新的像素,根据预设的阈值T,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器;当以压缩模式处理所述新的像素时,则转入步骤S200;
步骤S200,对准备输出到显示控制器的需要压缩的新的像素的色彩值进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;
步骤S300,存储被压缩装置压缩后的编码压缩像素数据;
步骤S400,从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值并进行解码,得到显示控制器的像素,输出给显示控制器进行显示。
较佳地,所述步骤S200,作为一种可实施方式,包括如下步骤:
步骤S210,在编码过的第一拍中,将新的像素的色彩值(Input Pixel)与压缩编码色彩值(Current Pixel)作比较;
步骤S220,若相同,压缩游程计数(Pixel Count)寄数器中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器23中的压缩游程计数值和压缩编码色彩值寄存器24中的压缩编码色彩值写入压缩缓存区25中,并将新的像素的色彩值锁存在压缩编码色彩值(Current Pixel)寄存器中作为新的压缩编码色彩值,压缩游程计数(Pixel Count)寄存器清零;
步骤S230,在编码的第二拍中,若压缩游程计数(Pixel Count)寄存器中的压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数(PixelCount)寄存器中的压缩游程计数值为零,则一段编码结束,从压缩缓存区25中读取压缩游程计数值和压缩编码色彩值,利用预设的LFBC游程编码格式,写入帧压缩缓存区得到编码压缩像素数据。
更佳地,所述步骤S220还包括如下步骤:
步骤S220’,在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器23中的压缩游程计数值和压缩编码色彩值寄存器24中的压缩编码色彩值写入压缩缓存区25中,压缩游程计数(Pixel Count)寄存器23清零。
较佳地,所述步骤S400,作为一种可实施方式,包括如下步骤:
步骤S410,从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;步骤S420,根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式,解码得到显示控制器的像素输出给显示控制器;并在解码过程中,判断解码游程计数值是否为0;如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码。
本发明实施例的显示控制器的帧缓存处理方法的方法步骤与本发明实施例的显示控制器的帧缓存处理系统工作过程相同,因此,在本发明实施例中,不再一一详细描述。
下面进一步通过实验数据说明本发明的显示控制器的帧缓存处理系统及方法。
在龙芯1G SoC(System on a Chip)上使用本发明显示控制器的帧缓存处理系统及方法前后,显示控制器在同一时间段内扫描帧缓存区产生的访存操作数量对比如表1所示。
表1显示控制器模块改进前后的访存功耗
图8显示了用本发明实施例的显示控制器的帧缓存处理系统及方法改进龙芯1GSoC显示控制器设计前后显示系统功耗的对比。
本发明实施例的显示控制器的帧缓存区压缩处理系统及方法,通过帧压缩缓存区内数据量的大小,减少计算机显示控制器扫描帧缓存区过程中所产生的存储器访问操作数量,从而达到降低计算机显示系统功耗的目的。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (14)
1.一种显示控制器的像素帧缓存处理系统,包括显示控制器,其特征在于,还包括LFBC控制装置,压缩装置,帧压缩缓存区,解压装置,其中:
所述LFBC控制装置,用于对准备输出到显示控制器的新的像素,根据预设的阈值,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器;当以压缩模式处理所述新的像素时,则将所述获取的新的像素输入到压缩装置进行编码压缩输入到帧压缩缓存区得到编码压缩像素数据;并控制解压装置将所述帧压缩缓存区中的编码压缩像素数据解压并输出到显示控制器;
所述压缩装置,用于对准备输出到显示控制器的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;
所述帧压缩缓存区,用于存储被压缩装置压缩后的编码压缩像素数据;
所述解压装置,用于从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值并进行解码,得到显示控制器的像素,输出给显示控制器进行显示。
2.根据权利要求1所述的像素帧缓存处理系统,其特征在于,还包括DMA模块;所述LFBC控制装置从所述DMA模块获取所述新的像素;
所述处理,为按预设的LFBC游程编码格式进行处理;所述进行解码为按预设的LFBC游程编码格式进行解码;
所述预设LFBC游程编码格式为利用阿尔法分量的位置来保存当前像素的游程长度的游程编码格式;所述预设LFBC游程编码格式数据结构中原阿尔法分量保存位置保存8位游程长度,剩余24位保存压缩编码色彩值,其中,红、绿、蓝色彩值分量分别为8位;
所述帧压缩缓存区为计算机显示系统内存的一段数据缓存区。
3.根据权利要求2所述的像素帧缓存处理系统,其特征在于,所述LFBC控制装置,包括一个饱和计数器,计分模块,其中:
所述计分模块,用于对当前时间段内DMA模块的帧缓存区的内容更新的频率进行计分,得到计分值;
所述饱和计数器,用于存储所述计分值。
4.根据权利要求3所述的像素帧缓存处理系统,其特征在于,每当显示控制器完成一次帧缓存区扫描,所述计分模块的计分值就修改一次:若上次扫描过程中帧缓存区的内容被更新,则计分值增加n;若上次扫描过程中帧缓存区的内容没有更新,则计分值自减1。
5.根据权利要求4所述的像素帧缓存处理系统,其特征在于,所述饱和计数器的位数为4位;所述阈值T为8;所述n为2。
6.根据权利要求1所述的像素帧缓存处理系统,其特征在于,所述压缩装置,包括编码模块;
所述编码模块,用于将准备输入到显示控制器的新的像素的色彩值,与当前像素的色彩值进行比较,根据比较结果进行编码并得到压缩游程计数值和压缩编码色彩值,并利用预设的LFBC游程编码格式,对所述压缩游程计数值和压缩编码色彩值进行处理后输出到帧压缩缓存区中得到编码压缩像素数据。
7.根据权利要求6所述的像素帧缓存处理系统,其特征在于,所述编码模块,包括第一拍比较子模块,第二拍压缩子模块,压缩游程计数寄存器,压缩编码色彩值寄存器,压缩缓存区,其中:
所述第一拍比较子模块,用于在编码的第一拍中,将新的像素的像素色彩值与压缩编码色彩值作比较;若相同,控制压缩游程计数寄存器中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器中作为新的压缩编码色彩值,压缩游程计数寄存器清零;
所述第二拍压缩子模块,用于在第二拍中,若压缩游程计数寄存器中压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数寄存器中压缩游程计数值为零,则一段编码结束,从压缩缓存区中读取压缩游程计数值和压缩编码色彩值,按预设的LFBC游程编码格式,写入帧压缩缓存区得到编码压缩像素数据;
所述压缩游程计数寄存器,用于保存压缩游程计数值;
所述压缩编码色彩值寄存器,用于保存压缩编码色彩值;
所述压缩缓存区,用于按预设的LFBC游程编码格式,缓存压缩游程计数值和压缩编码色彩值。
8.根据权利要求7所述的像素帧缓存处理系统,其特征在于,所述编码模块还包括判断子模块,用于在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,压缩游程计数寄存器清零。
9.根据权利要求1所述的像素帧缓存处理系统,其特征在于,所述解压装置包括读取模块,解码模块,解码游程计数寄存器,解码色彩值寄存器;
其中,所述读取模块,用于从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;
所述解码模块,用于根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式,解码得到显示控制器的像素,输出给显示控制器;并在解压过程中,判断解码游程计数值是否为0,如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码;
所述解码游程计数寄存器,用于保存解码游程计数值;
所述解码色彩值寄存器,用于保存当前像素的解码色彩值。
10.根据权利要求9所述的像素帧缓存处理系统,其特征在于,所述解压装置还包括采样模块,用于在解压的每一拍,均对解码色彩值寄存器中的当前像素的解码色彩值进行采样。
11.一种显示控制器的像素帧缓存处理方法,其特征在于,包括如下步骤:
步骤S100,对准备输出到显示控制器的新的像素,根据预设的阈值,控制以正常模式或者压缩模式处理所述新的像素;当以正常模式处理时,获取所述新的像素并直接发送到显示控制器;当以压缩模式处理所述新的像素时,则转入步骤S200;
步骤S200,对准备输出到显示控制器的需要压缩的新的像素进行编码并得到压缩游程计数值和压缩编码色彩值,并经过处理输出到帧压缩缓存区得到编码压缩像素数据;
步骤S300,存储被压缩装置压缩后的编码压缩像素数据;
步骤S400,从帧压缩缓存区读取编码压缩像素数据,根据编码压缩像素数据得到解码游程计数值和解码色彩值并进行解码,得到显示控制器的像素,输出到显示控制器进行显示。
12.根据权利要求11所述的显示控制器的像素帧缓存处理方法,其特征在于,所述步骤S200,包括如下步骤:
步骤S210,在编码过程的第一拍中,将新的像素的色彩值与压缩编码色彩值作比较;
步骤S220,若相同,压缩游程计数寄数器中的压缩游程计数值将自加1;若不同,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,并将新的像素的色彩值锁存在压缩编码色彩值寄存器中作为新的压缩编码色彩值,压缩游程计数寄存器清零;
步骤S230,在编码的第二拍中,若压缩游程计数寄存器中压缩游程计数值不为零,则不做任何操作并返回;若压缩游程计数寄存器中压缩游程计数值为零,则一段编码结束,从压缩缓存区中读取压缩游程计数值和压缩编码色彩值,利用预设的LFBC游程编码格式,压缩写入压缩缓存区得到编码压缩像素数据。
13.根据权利要求11所述的显示控制器的像素帧缓存处理方法,其特征在于,所述步骤S220还包括如下步骤:
步骤S220’,在控制压缩游程计数值将自加1后,判断压缩游程计数值是否等于256;如果是,则将压缩游程计数寄存器中的压缩游程计数值和压缩编码色彩值寄存器中的压缩编码色彩值写入压缩缓存区中,压缩游程计数寄存器清零。
14.根据权利要求11至13任一项所述的显示控制器的像素帧缓存处理方法,其特征在于,所述步骤S400,包括如下步骤:
步骤S410,从帧压缩缓存区读取新的编码压缩像素数据,将编码压缩像素数据分成两部分,分别写入解码游程计数寄存器作为解码游程计数值和写入解码色彩值寄存器作为当前像素的解码色彩值;
步骤S420,根据解码游程计数值和当前像素的解码色彩值,按预设的LFBC游程编码格式,解码得到显示控制器的像素输出给显示控制器;并在解码过程中,判断解码游程计数值是否为0;如果是,则控制读取模块在下一拍中从帧压缩缓存区读取一个新的编码压缩像素数据;否则继续进行解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430954.2A CN102522069B (zh) | 2011-12-20 | 2011-12-20 | 一种显示控制器的像素帧缓存处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110430954.2A CN102522069B (zh) | 2011-12-20 | 2011-12-20 | 一种显示控制器的像素帧缓存处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102522069A CN102522069A (zh) | 2012-06-27 |
CN102522069B true CN102522069B (zh) | 2014-03-12 |
Family
ID=46292966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110430954.2A Active CN102522069B (zh) | 2011-12-20 | 2011-12-20 | 一种显示控制器的像素帧缓存处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102522069B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10347174B2 (en) * | 2017-01-03 | 2019-07-09 | Solomon Systech Limited | System of compressed frame scanning for a display and a method thereof |
US10636341B2 (en) * | 2018-09-10 | 2020-04-28 | Novatek Microelectronics Corp. | Method of processing image data and related image processing device |
CN112600564A (zh) * | 2020-12-18 | 2021-04-02 | 上海集成电路研发中心有限公司 | 游程解码电路、控制方法、电子装置及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004109595A3 (en) * | 2003-05-22 | 2006-08-03 | Lee Jin H | Method for doubling resolution lcd display using line doubling and non-linear interpolation curve |
CN1980343A (zh) * | 2005-12-07 | 2007-06-13 | 联发科技股份有限公司 | 对一子图像执行一缩放操作的系统、韧体系统以及多媒体数据再生系统 |
CN101237582A (zh) * | 2008-03-07 | 2008-08-06 | 北京中星微电子有限公司 | 图像局部动态放大装置及方法以及图像处理系统 |
CN101310291A (zh) * | 2005-11-14 | 2008-11-19 | Ess技术公司 | 用于视频帧缓冲压缩的系统和方法 |
JP2009171188A (ja) * | 2008-01-16 | 2009-07-30 | Nec Corp | エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070110155A1 (en) * | 2005-11-15 | 2007-05-17 | Sung Chih-Ta S | Method and apparatus of high efficiency image and video compression and display |
US20070280357A1 (en) * | 2006-05-31 | 2007-12-06 | Chih-Ta Star Sung | Device for video decompression and display |
-
2011
- 2011-12-20 CN CN201110430954.2A patent/CN102522069B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004109595A3 (en) * | 2003-05-22 | 2006-08-03 | Lee Jin H | Method for doubling resolution lcd display using line doubling and non-linear interpolation curve |
CN101310291A (zh) * | 2005-11-14 | 2008-11-19 | Ess技术公司 | 用于视频帧缓冲压缩的系统和方法 |
CN1980343A (zh) * | 2005-12-07 | 2007-06-13 | 联发科技股份有限公司 | 对一子图像执行一缩放操作的系统、韧体系统以及多媒体数据再生系统 |
JP2009171188A (ja) * | 2008-01-16 | 2009-07-30 | Nec Corp | エントロピ符号化器、映像符号化装置、映像符号化方法および映像符号化プログラム |
CN101237582A (zh) * | 2008-03-07 | 2008-08-06 | 北京中星微电子有限公司 | 图像局部动态放大装置及方法以及图像处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102522069A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10748510B2 (en) | Framebuffer compression with controllable error rate | |
JP4475820B2 (ja) | 拡張可能な埋込み型のパラレルデータを圧縮及び圧縮解除するためのシステムと方法 | |
CN102075758B (zh) | 基于soc的mjpeg视频编解码系统及其方法 | |
CN107105266A (zh) | 一种png图像的解码方法、装置及系统 | |
CN104952087A (zh) | Mipmap压缩 | |
CN102522069B (zh) | 一种显示控制器的像素帧缓存处理系统及方法 | |
EP2787738B1 (en) | Tile-based compression for graphic applications | |
US9263000B2 (en) | Leveraging compression for display buffer blit in a graphics system having an integrated graphics processing unit and a discrete graphics processing unit | |
US20170345125A1 (en) | Online texture compression and decompression in hardware | |
US10062142B2 (en) | Stutter buffer transfer techniques for display systems | |
CN103152571B (zh) | 减少数据带宽的视频处理方法及电路 | |
US20060170708A1 (en) | Circuits for processing encoded image data using reduced external memory access and methods of operating the same | |
US9888250B2 (en) | Techniques for image bitstream processing | |
CN102339592A (zh) | 一种基于lcd控制器的显存压缩方法 | |
CN202077148U (zh) | 基于soc的mjpeg视频编解码系统 | |
CN101754034B (zh) | 透明属性的离散余弦转换压缩图数据的解压缩系统及方法 | |
US10283094B1 (en) | Run-length compression and decompression of media tiles | |
US8036476B2 (en) | Image encoding/decoding device and method thereof with data blocks in a determined order | |
CN104737225A (zh) | 用于存储器带宽有效的显示合成的系统及方法 | |
US20180041612A1 (en) | System and method for out-of-stream order compression of multi-media tiles in a system on a chip | |
CN104581175A (zh) | 影像处理装置与方法 | |
CN216053096U (zh) | 一种8k图像实时解码显示系统 | |
US20230298123A1 (en) | Compatible compression for different types of image views | |
CN110365858B (zh) | 信息传输方法、装置、设备、系统及存储介质 | |
CN112073726B (zh) | 压缩方法及装置、计算机可读存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |