专利名称:一种提高等离子显示屏灰度等级的方法
技术领域:
本发明属于等离子显示屏控制领域,涉及等离子显示屏(以下简称为PDP)通过误差扩散来提高灰度等级从而达到减小动态伪轮廓的方法,特别是涉及一种经过反伽马(Gamma)校正后的RGB信号的误差扩散。
背景技术:
与CRT不同的是PDP显示的亮度和输入信号具有线性关系。然而目前主要传输的视频信号或图像信号都是假设其图像信息是用于在类似CRT的具有非线性响应特性的显示器件上,对视频信号和图像信号作了Gamma变换,即vout=(vin)1γ,]]>γ=2.2~2.8。当直接使用这些信号在PDP上显示时会由于色彩饱和而造成图像失真,为了使数据信号能够在PDP上正常显示那就需要进行相应的校正,即vout′=(vout)γ=((vin)1γ)γ=vin.]]>但PDP使用线性编码也不是最佳的,比较好的处理方法是对于比较暗的图像应该提高信号的分辨力,可以采用10字节位编码来处理,甚至采用12字节位来处理图像信号数据。因此为了提高PDP显示图像的效果就需要对图像信号进行两次数据变换,一是为了适应PDP线性特征的D-Gamma变换,二是适应人眼非线性的变换,最后得到变换后的每个像素RGB值均表示为10字节位。
在PDP中由于是采用子场显示的方法,就容易导致动态伪轮廓的产生,那么提高像素单元的数据位增加子场数目,无论是对于去除动态伪轮廓还是增加图像灰度等级都能够取得一定的效果。子场的增加使得准备时间和寻址时间也相应的增加,在一场图像显示时间固定为16.7ms情况下必然导致维持时间的减少,从而降低了显示图像的亮度,所以就应当在一定数目的子场下显示图像并降低动态伪轮廓。
在PDP中用来输入图像数据通常是24字节位的RGB数据,即R、G、B分别为8字节位数据,结果反伽马(Gamma)校正变换为10字节位宽的R、G、B子像素点,如图1所示。反Gamma校正后的10字节位宽的R、G、B三基色像素值的高八位比特数能够正确表示出相应的灰度等级,而最低两位的比特数可以看成是灰度等级的小数部分。但是在PDP中所能显示的只能是整数的灰度等级,如果将10字节位的R、G、B数据进行显示是无法表达小数部分的灰度等级,必然影响图像的画质。
发明内容
本发明的目的在于,提供一种提高等离子显示屏灰度等级的方法,该方法采用扩散算法提高画质,将在PDP中由于无法表达小数部分的灰度等级,将最低两位作为小数部分的灰度等级,并将其当作误差值来处理,提高图像的灰度等级同时也帮助改善动态伪轮廓的问题。
为了实现上述任务,本发明采取如下的技术解决方案一种提高等离子显示屏灰度等级的方法,其特征在于,将经过反伽马校正后的10字节位宽的R、G、B三基色像素值按高八位和低两位分离,低两位的比特数可以看成是灰度等级的小数部分,把灰度等级的小数部分按照一定的扩散方向和扩散权重向邻近的像素扩散,10字节宽的子像素经过误差扩散变换为8字节宽的数据;子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散,通过扩散误差值而提高灰度等级。
所述的像素扩散的具体方式为每个像素点是以R、G、B三个子像素点根据相应的扩散权重和扩散方法向相邻像素的R、G、B三个子像素扩散;每个像素点在扩散误差之前是累加了相邻像素扩散到该像素点的误差,判断是否改变该像素点的灰度等级;
在对该像素点的灰度等级进行改动后,再将它产生的误差值进行扩散,并根据同样的扩散权重和扩散方法将误差值向其他相邻的像素扩散。
灰度等级的小数部分扩散方法是首先,R、G、B作为三个独立的子像素向相邻的R、G、B子像素扩散;其次,在一场图像中是从左到右、从上到下的将误差进行扩散;子像素在扩散之前都是累加了其前面子像素扩散来的误差,再进行自身的误差扩散。
每个像素点在扩散该像素点的误差之前已经在自身误差上累加了相邻像素点扩散到该像素点的误差,从而得到该像素点的累加误差,将累加误差和设定的阈值的大小进行比较,判断该像素点的灰度等级的是否是提高还是减少,并判断累加误差是否需要减去阈值得到该像素点用来扩散的误差。
当累加误差值大于设定的阈值则增加该像素点的灰度等级,累加误差应当减去阈值得到该像素点用来扩散的误差;当累加误差值小于设定的阈值则不改变该像素点的灰度等级,累加误差作为该像素点的误差进行误差扩散。
本发明经过反伽马(Gamma)校正后的10字节位宽的R、G、B三基色像素值的高八位比特数能够正确表示出相应的灰度等级,而最低两位的比特数可以看成是灰度等级的小数部分。但是在PDP中所能显示的只能是整数的灰度等级,用10字节位的R、G、B数据进行显示是无法表达小数部分的灰度等级,将最低两位的作为误差值来处理相当于提高了图像的灰度等级同时也大大改善了动态伪轮廓的问题。
图1是通常采用的反Gamma校正变换图;图2是一子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散示意图;图3是本发明算法实现流程图。
以下结合附图和原理对本发明作进一步的详细说明。
具体实施例方式
所谓的误差是指经过数据校正的灰度等级与实际显示图像的灰度等级之间的误差;扩散是指各个像素按照一定的算法将误差值分配到临近的像素。实际上误差扩散就是将图像色彩深度降低时像素颜色产生的变化误差通过一定的方式扩散开,这就能够使人眼在观看图像时对于相邻的像素点集合整体的误差也随着变小,也就达到了减小动态伪轮廓的目的。
为了达到提高画质的效果,申请人采取误差扩散算法把灰度等级的小数部分按照一定的扩散方向和扩散权重向邻近的像素扩散,10字节位宽的子像素经过误差扩散变换为8字节位宽的数据同时又保证了画质。
误差扩散算法主要是考虑扩散的方向和扩散的权重,子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散。
首先,R、G、B作为三个独立的子像素向相邻的R、G、B子像素扩散;其次,在一场图像中是从左到右、从上到下的将误差进行扩散;子像素在扩散之前都是累加了其前面子像素扩散来的误差,再进行自身的误差扩散。
图3所示为算法实现流程,先将10字节位的数据高八位的显示数据和低两位误差数据分开进行处理,将显示数据和误差分离便于误差处理。提高误差处理的精度。
本发明将扩散算法应用于提高画质,把灰度等级的小数部分按照一定的扩散方向和扩散权重向邻近的像素扩散,10字节宽的子像素经过误差扩散变换为8字节宽的数据同时又保证了画质。误差扩散算法主要是考虑扩散的方向和扩散的权重,子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散,如图2所示。
图3所示为算法实现流程,a1是起到数据分离作用,先将10字节的数据高八位和低两位分离,也就是将显示数据和误差分离便于误差处理。在a2中将2字节位的误差扩为6字节位以提高误差处理的精度,同时考虑到误差存在正负情况再在其前面增加1字节位的符号位,最后构成7字节位的误差。a8用来处理分离出来的8字节显示数据,对于8字节的显示数据由于受到其他子像素误差和自身误差的影响,必然会改变显示灰度等级,考虑到溢出情况,因此,将8字节的显示数据转换为9字节。
每个子像素都是先接收扩散来的误差然后再将误差扩散给其他子像素,位于(i,j)点的子像素它先接收来自(i-1,j-1)、(i-1,j)、(i-1,j+1)以及(i,j-1)这四个位置的子像素扩散过来的误差,然后再将误差累加后并将误差按设定的方向和权重扩散到(i,j+1)、(i+1,j-1)、(i+1,j)、(i+1,j+1)这四个位置的子像素。
将整个流程简单的看成由误差接收模块和误差扩散模块组成,a3、a6、a7成为关键步骤。在(i,j)子像素接收误差过程中,有三个子像素误差是位于i-1行,剩下一子像素误差是位于i行j-1列的。接收模块可分为处理前一行三个子像素误差和处理同一行前一子像素误差两块,因此,处理好i-1行的三个子像素点扩散来的误差是关键。
步骤a6是将位于(i-1,j-1)的子像素按1/16比例扩散出来的误差和位于(i-1,j)子像素按3/16比例扩散出来的误差,以及(i-1,j+1)的子像素按5/16比例扩散处的误差都将集中到(i,j)的子像素中。根据此变化规律,可以用S0、S1、S2、S3这四个变化的状态来表示误差累加的情况,这四种状态分别代表了三个不同比例误差值相累加以及清零。在行场同步信号和消隐信号有效的情况下,只要有像素时钟的上升沿到来状态就变换一次,并随着时钟变化状态循环不断变化。以(i,j)点R子像素为例,将信号量Rerr0、Rerr1、Rerr2、Rerr3作为误差累加信号。当时钟开始时状态为S0,Rerr0累加了扩散到该点的1/16比例的误差,Rerr1累加了扩散到该点的5/16比例的误差,Rerr2累加了扩散到该点的3/16比例的误差,Rerr3进行存储后再进行清零;下一时钟进入状态S1,Rerr0累加了扩散到该点的5/16比例的误差,Rerr1累加了扩散到该点的3/16比例的误差,Rerr2进行存储后再进行清零,Rerr3累加了扩散到该点的1/16比例的误差;时钟进入状态S2,Rerr0累加了扩散到该点的3/16比例的误差,Rerr1进行存储后再进行清零,Rerr2累加了扩散到该点的1/16比例的误差,Rerr3累加了扩散到该点的5/16比例的误差;最后在S3状态下,Rerr0进行存储后再进行清零,Rerr1累加了扩散到该点的1/16比例的误差,Rerr2累加了扩散到该点的5/16比例的误差,Rerr3累加了扩散到该点的3/16比例的误差。
采用双口RAM是由于R、G、B既要从存储器读取累加扩散误差进行累加,又要把自身的扩散误差扩散出去,并最终进行存储。因此,在误差扩散的过程中,对存储器的读写操作往往同时进行。既要读取上一行像素误差的累加值,又要写入本行像素误差累加值。但是对存储器的同一个地址空间,首先是对其进行读取操作,然后再经过数据处理,一定延时之后,对其进行写操作,读取和写入之间的延时间隔是固定的。
在步骤a3读取RAM中的累加误差并与(i,j-1)点子像素的7/16比例的误差相加,同时累加上(i,j)点子像素自身的误差最终得到一个新的误差值,该误差值也就是(i,j)需要扩散出去的误差。将误差值与设定的阈值进行比较,当该值大于或等于阈值则相应点8bit显示数据值加1,如果小于阈值则相应点的显示数据值不变。如果显示数据在增加的同时溢出了,那么就将该子像素点的灰度等级定为255。
权利要求
1.一种提高等离子显示屏灰度等级的方法,其特征在于,将经过反伽马校正后的10字节位宽的R、G、B三基色像素值按高八位和低两位分离,低两位的比特数可以看成是灰度等级的小数部分,把灰度等级的小数部分按照一定的扩散方向和扩散权重向邻近的像素扩散,10字节宽的子像素经过误差扩散变换为8字节宽的数据;子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散,通过扩散误差值而提高灰度等级。
2.如权利要求1所述的方法,其特征在于,所述的像素扩散的具体方式为每个像素点是以R、G、B三个子像素点根据相应的扩散权重和扩散方法向相邻像素的R、G、B三个子像素扩散;每个像素点在扩散误差之前是累加了相邻像素扩散到该像素点的误差,判断是否改变该像素点的灰度等级;在对该像素点的灰度等级进行改动后,再将它产生的误差值进行扩散,并根据同样的扩散权重和扩散方法将误差值向其他相邻的像素扩散。
3.如权利要求1所述的方法,其特征在于,灰度等级的小数部分扩散方法是首先,R、G、B作为三个独立的子像素向相邻的R、G、B子像素扩散;其次,在一场图像中是从左到右、从上到下的将误差进行扩散;子像素在扩散之前都是累加了其前面子像素扩散来的误差,再进行自身的误差扩散。
4.根据权利要求2的方法,其特征在于,所述的每个像素点在扩散该像素点的误差之前已经在自身误差上累加了相邻像素点扩散到该像素点的误差,从而得到该像素点的累加误差,根据累加误差和设定的阈值的大小进行比较,判断该像素点的灰度等级的是否是提高还是减少,并判断累加误差是否需要减去阈值得到该像素点用来扩散的误差。
5.根据权利要求4的方法,其特征在于,当累加误差值大于设定的阈值则增加该像素点的灰度等级,累加误差应当减去阈值得到该像素点用来扩散的误差;当累加误差值小于设定的阈值则不改变该像素点的灰度等级,累加误差作为该像素点的误差进行误差扩散。
全文摘要
本发明公开了一种提高等离子显示屏灰度等级的方法,把灰度等级的小数部分按照一定的扩散方向和扩散权重向邻近的像素扩散,10字节宽的子像素经过误差扩散变换为8字节宽的数据;子像素的误差分别以7/16、1/16、5/16、3/16的扩散权重按四个不同的扩散方向往相邻的子像素扩散。本发明经过反Gamma校正后的10字节位宽的R、G、B三基色像素值的高八位比特数能够正确表示出相应的灰度等级,而最低两位的比特数可以看成是灰度等级的小数部分。将最低两位的作为误差值来处理相当于提高了图像的灰度等级同时也大大改善了动态伪轮廓的问题。
文档编号G09F9/313GK1801279SQ2006100416
公开日2006年7月12日 申请日期2006年1月13日 优先权日2006年1月13日
发明者黄伟华 申请人:彩虹集团电子股份有限公司