专利名称:一种基于误差扩散算法的lvds接口集成电路实现方法
技术领域:
本发明属于数字电视、数字视频图像处理与显示技术领域,具体涉及一种误差扩散算法以及LVDS接口编码,实现了在满足给不同位数LVDS接口供数的同时减少误差的作用,提高了视频图像显示的效果。
背景技术:
LVDS技术的核心是采用极低的电压摆幅高速差动传输数据,可以实现点对点或者一点对多点的链接,具有电磁干扰小、摆幅小、功耗小,对于噪声的免疫力好等特点。由于上述优点LVDS接口成为一种可以提供高速数据传输的平板电视主流接口,对应不同位宽的屏,有不同的LVDS接口。例如8位的屏需要8位的LVDS接口,4对差分对传输R、G、B三路各8位有效图像数据。如果上屏图像数据为10位宽,在现有技术中采用直接截取掉RGB像素数据低位的方法处理上屏图像来满足不同接口的需要,减少数据位宽的同时会对图像质量造成较大影响。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种基于误差扩散算法的Ivds接口集成电路实现方法,该方法对输入LVDS前的RGB图像数据的每一路引入误差扩散算法,减少直接舍去低位信号造成的图像质量下降,能够完成Verilog-HDL的代码编写及功能实现,实现在满足给不同位数LVDS接口供数的同时减少误差的作用,从而有效提高视频图像显示的效果。本发明的目的是通过以下技术方案来解决的:这种基于误差扩散算法的Ivds接口集成电路实现方法,包括以下步骤:I)在Ivds编码之前,对R、G、B三路分别进行误差扩散处理,首先对输入10位宽的信号进行去低位处理,分为高8位和低2位两部分数据或者高6位和低4位两部分数据;2)将分离出来的低位数据送入延迟电路中,获得当前像素上面一行左上,正上,右上三个像素的低位数据eB、eC、eD ;通过寄存器延迟获得当前像素左边像素的低位数据eA ;3)将当前像素邻近四像素的舍去低位数据eA、eB、eC、eD扩散到此像素上,即通过加法器,按照扩散比例将当前输入数据与eA、eB、eC、eD相加,误差扩散后的和再按照位宽要求舍位送入Ivds编码。进一步,以上Ivds编码,是根据屏的特性,为满足不同刷新率、分辨率需要调整图像点时钟;为了满足高场频、高分辨率输入图像的物理点时钟采用降低输入图像点时钟并提高数据倍数的方式,选用多路lvds。进一步的,通过一条搭建的一进四出ram,将数据倍数增加以满足编码要求。进一步,误差扩散处理时,扩散比例全部设定为1/4,电路上相当于右移两位。上述针对图像像素处理顺序特点,控制器对图像边缘进行判断,第一行、第一列和最后一列像素采用直通处理。
进一步,采用流水线技术,在时钟上升沿触发下产生三个邻近像素的误差和,误差和作为一个输入端接入并行加法器,减少并行加法器的输入端口数,降低电路复杂度。本发明具有以下有益效果:本发明采用误差扩散算法对进入接口前的像素分别进行处理。误差扩散算法以眼睛的积分特性和低通特性为基础,在一定距离外人眼对一个较小面积元灰度或色彩的感受是对该面积元内的总灰度或总色彩的感受。如果将舍去的误差按照一定比例扩散到周围临近的像素上,就一像素群而言,误差没有被舍去。但从整体上看,误差扩散后原始图像和显示图像的灰度误差最小。
图1为本发明视频信号流向示意图;图2为误差扩散算法将要舍弃低位信号扩散到其他像素示意图;图3为误差扩散算法当前像素接受扩散到其上的误差信号示意图;图4为信号误差处理及传递流程;图5为误差扩散电路框图;图6为延迟电路框图;图7为Ivds接口示意图;图8为RGB信号进行Ivds的vesa编码示意图;图9为120hzl080p图像采用4路LVDS接口上屏电路框图。
具体实施例方式参见图1,本发明基于误差扩散算法的Ivds接口集成电路实现方法,具体包括以下步骤:I)在Ivds编码之前,对R、G、B三路分别进行误差扩散处理,扩散比例全部设定为1/4,电路上相当于右移两位。首先对输入10位宽的信号进行去低位处理,分为高8位和低2位两部分数据或者高6位和低4位两部分数据;针对图像像素处理顺序特点,控制器对图像边缘进行判断,第一行、第一列和最后一列像素采用直通处理。本发明的Ivds编码,是根据屏的特性,为满足不同刷新率、分辨率需要调整图像点时钟;为了满足高场频、高分辨率输入图像的物理点时钟采用降低输入图像点时钟并提高数据倍数的方式,选用多路lvds。其通过一条搭建的一进四出ram,将数据倍数增加以满足编码要求。2)将分离出来的低位数据送入延迟电路中,获得当前像素上面一行左上,正上,右上三个像素的低位数据eB、eC、eD ;通过寄存器延迟获得当前像素左边像素的低位数据eA ;3)将当前像素邻近四像素的舍去低位数据eA、eB、eC、eD扩散到此像素上,即通过加法器,按照扩散比例将当前输入数据与eA、eB、eC、eD相加,误差扩散后的和再按照位宽要求舍位送入Ivds编码。以上采用流水线技术,在时钟上升沿触发下产生三个邻近像素的误差和,误差和作为一个输入端接入并行加法器,减少并行加法器的输入端口数,降低电路复杂度。下面结合附图对本发明做进一步详细描述:
误差扩散算法误差扩散算法以眼睛的积分特性和低通特性为基础,在一定距离外人眼对一个较小面积元灰度或色彩的感受是对该面积元内的总灰度或总色彩的感受。观看电视画面时,不是一个个像素地观看,而是观看一个像素群,眼睛感受到的是这一像素群总的灰度或总色彩。接口电路送来的视频信号都是逐行逐像素地传送的,按照从上到下、从左到右的顺序进行,当需要对图像信号进行位宽调整舍去数据的低位时都会引起误差,如果直接舍去这些误差,将严重影响图像的质量。如果将这一误差按照一定的比例扩散到周围临近的像素上,就当前像素而言,这个误差是被舍去的,但是人眼感受到的灰度或色彩是当前像素及其周围像素组成的像素群的灰度或色彩,就这个一个像素群而言,误差没有被舍去。因此,从整体来看,引入误差扩散技术后原始图像和显示图像的灰度误差最小。综合以上,本发明的误差扩散算法是将当前像素的舍位误差按一定比例扩散到邻近的像素上,局部的误差就在邻近像素上得到了补偿,经过逐行逐像素的处理,既可完成对整幅图像的处理,这种邻近扩散的方法使系统具有了自我校正的能力,成为一个负反馈系统。图2是误差扩散算法的示意图,虚心圆代表正在处理的像素,实心圆代表没有处理且与正在处理像素相关的像素,空心圆代表其他的像素,(i,j)表示第i行第j列像素,E(i,j)表示该像素的量化的误差,把E (i, j)按照图中的方向和比例扩散到邻近的四个未处理的像素上,误差扩散只能扩散到未处理的像素上。从图中可以看出,水平方向和垂直方向的比例较重,分别为7/16和5/16,左下方向和右下方向的比例较轻,分别为3/16和1/16。图3中描述了从“误差接收”的角度来计算当前像素灰度值的方法,当前像素P(i,j)接收四个已经处理的邻近像素A (i,j-l),B (1-l,j-l),C (1-l,j),D (i_l,j+l)的比例分别是7/16、1/16、5/16、3/16,既当前像素的灰度,先加上这四份误差后再送给LVDS接口。其模型如图4所示,通过减法器将编码器输入端与输出端相减来获得编码误差,图4中,ID表示延迟I个像素,IH表示延迟I行,1H+1D表示延迟I行加I个像素,1H-1D表示延迟I行减I个像素。6八,68,6(:,60分别是4、8、(:和0像素扩散到当前像素的误差。在误差扩散算法中,第一行,第一列和最后一列中的像素,不同时存在A、B、C、D四个邻近像素,需要特殊处理。本发明采用“直通”方式,既加法器忽略四路误差信号,使加法器的输出端与输入端“直通”,这种方式电路上容易实现。误差扩散算法电路实现接口电路送来的数字视频信号是3路10位宽的红(R)、绿(G)、蓝(B)基色信号,以其中一路信号为例,其它两路信号的设计方法完全一样。 为了给LVDS接口提供合适的6位宽和8位宽信号,需要对10位宽数据进行去低位处理,如果直接舍去,灰度级大大减少,图像质量很差,为此,引入误差扩散技术,分别将低4位和低2位扩散到邻近像素。图5为误差扩散电路的实现框图。由加法器、控制器和延迟电路三个模块组成。控制器根据Vsync、blank信号,在elk的上升沿产生bypass和work信号,控制器输出控制信号到加法器,bypass控制加法器是否“直通”,work控制延迟电路是否工作。当当前像素属于第一行、第一列或最后一列时,bypass=l,否则,bypass=0。控制器输出控制信号work到延迟电路,在每一行的数据有效区并延迟一个时钟的时区,work=l,其它时区(图像信号的消隐期)work=0,延迟一个时钟是因为加法器的输出相对于输入延迟了一个时钟,这样,延迟电路中的FIFO才能正确存储加法器输出的误差信号。为了简化电路便于硬件实现,图中的扩散比例全部设定为1/4,电路上相当于右移两位。延迟单元中,延迟I个像素就是延迟I个数据时钟,延迟I行就是延迟N (N为一行的像素总数)个数据时钟,可以利用先进先出堆栈FIFO实现。图5中,input代表图像RGB信号中的一路信号。elk是input的数据时钟,在elk上升沿,加法器对原像素input和经过延迟的邻近像素数据eA和(eB+eC+eD)共三路输入进行处理,实现算法bit=input+[eA+ (eB+eC+eD) ]/4,其运算速度要求较高,这里采用并行加法器。当bypaSS=l时,加法器忽略所有的误差,输入和输出“直通”,即bit=input。当input接近最大值1024时,加上误差信号有可能产生溢出,使输出bit变得非常小,造成错误,所以需要对加法器进行溢出饱和处理,既产生溢出时,强制bit为最大值1024。加法器输出10位信号bit [9:0],取高6位bit [9:4]和高8位bit [9:2]分别作为当前信号的误差扩散信号。加法器中的误差信号要除以4,然后再与input相加,以输出为8位宽为例,其算法可改写为:bit=[inputx4+eA+(eB+eC+eD)]/4,即先扩展input低2位,并取为“00”,相当于input乘以4,然后再与所有误差相加,提取相加结果的高10位即可。加法器部分verilog描述如下:
always (posedge elk or negedge reset) begin if(!reset) output <= 0; else if(bypass) output <= input; else output <= [inputx4+eA+ (eB+eC+eD) ]/4;
end图6是延迟电路的具体实现,它由FIFO、两个D触发器DFFl和DFF2、两个加法器ADDl和ADD2、一个比较器以及一些门电路组成。延迟电路的输出送给图5中的加法器,延迟电路的任务是正确地广生当如像素上一行的二个邻近像素B、C、D的误差和:eB+eC+eD。只有work=l时,触发器、加法器和FIFO才能工作;反之,触发器、加法器和FIFO保持原有的数据不变。 输入图像信号input是按从左到右、从上到下的顺序传送的,加法器输出第一个像素的误差信号后,工作信号work=l, work接入FIFO的写请求信号wrreq,接下来的elk上升沿,FIFO开始存储接入输入端的din的所有像素的误差信号bit [3:0]或bit [1:0],随着FIFO对误差信号的存储,其存储数据的单元数uesdw递增。图6中常数设定为N-5 (N为一行的像素总数),当usedw等于常数时,比较器就输出为1,使FIFO的读请求信号rdreq为I,FIFO输出端dout开始输出延迟了的误差信号,以后的时钟上升沿,wrreq和rdreq同时为1,FIF0每存储一个数据,同时也输出一个延迟了的数据,使usedw总是等于常数值,t匕较器输出保持为1,rdreq也保持为1,FIFO的深度可取为一行的像素总数N。采用流水线技术得到误差和eB+eC+eD,将误差和带入图5加法器。引入误差扩散算法后,通过人眼的空间积分,在视觉上提高了显示灰度级,消除了轮廓,画质有明显改善。3、LVDS原理及实现屏的位数与LVDS差分对(差分通道)有对应的关系,10位的LVDS的输出通道有5对差分对,8位的LVDS为4对,6位的LVDS为3对,他们的每一路差分对上都编码7位RGB数据。误差扩散之后的RGB信号都将编为7位数据的差分对,如图7所示。10位LVDS每一路由误差扩散模块输出的像素数据、行同步hs、场同步vs、行场有效de所组成:30+hs+vs+de+0+0=35=5x7,8 位的每一路:24+hs+vs+de+0=28=4x7,6 位的每一路:18+hs+vs+de=21=3x7。编码方式如图8所示。屏的刷新率(场频)与点时钟,分辨率有密切的关系,要最终显示需要根据屏的物理点时钟来调整输入图像点时钟,一般屏的物理点时钟是74.25Mhz,大于这个值时就得降低输入图像的点时钟。对于1366x768 (1280x720)分辨率的屏,点时钟的需求是74.25Mhz,刚好与屏的物理点时钟是一样的,所以单路LVDS即可。对于1920x1080分辨率的屏,输入图像的点时钟频率是148.5Mhz,而屏的物理点时钟为74.25Mhz,所以采取的方法是:将输入图像的点时钟频率减半,数据加倍,因此需要采用双路LVDS。以上是按60Hz分析,如果是常见的120Hzl920xl080的输入图像到120Hz的电视上,点时钟将达到297Mhz,所以输入点时钟降频到74.25Mhz的同时需要将数据翻4倍,故需要选用4路LVDS。以长虹电视为例,每一路LVDS对应一对差分对,所以60Hzl080p电视2对差分对,120Hzl080p电视4对差分对。对于电路来说,为了不让输入点时钟增加,可以将LVDS变成4路LVDS。电路结构如图9所示,其中用触发器搭建I条一进四出ram,避免直接采用一进一出ram需要4条,节省了资源。
权利要求
1.一种基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,包括以下步骤: 1)在Ivds编码之前,对R、G、B三路分别进行误差扩散处理,首先对输入10位宽的信号进行去低位处理,分为高8位和低2位两部分数据或者高6位和低4位两部分数据; 2)将分离出来的低位数据送入延迟电路中,获得当前像素上面一行左上,正上,右上三个像素的低位数据eB、eC、eD ;通过寄存器延迟获得当前像素左边像素的低位数据eA ; 3)将当前像素邻近四像素的舍去低位数据eA、eB、eC、eD扩散到此像素上,即通过加法器,按照扩散比例将当前输入数据与eA、eB、eC、eD相加,误差扩散后的和再按照位宽要求舍位送入Ivds编码。
2.根据权利要求1所述的基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,Ivds编码,是根据屏的特性,为满足不同刷新率、分辨率需要调整图像点时钟;为了满足高场频、高分辨率输入图像的物理点时钟采用降低输入图像点时钟并提高数据倍数的方式,选用多路lvds。
3.根据权利要求2所述的基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,通过一条搭建的一进四出ram,将数据倍数增加以满足编码要求。
4.根据权利要求1所述的基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,扩散比例全部设定为1/4,电路上相当于右移两位。
5.根据权利要求1所述的基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,针对图像像素处理顺序特点,控制器对图像边缘进行判断,第一行、第一列和最后一列像素采用直通处理。
6.根据权利要求1所述的基于误差扩散算法的Ivds接口集成电路实现方法,其特征在于,采用流水线技术,在时钟上升沿触发下产生三个邻近像素的误差和,误差和作为一个输入端接入并行加法器,减少并行加法器的输入端口数,降低电路复杂度。
全文摘要
本发明提供了一种基于误差扩散算法的lvds接口集成电路实现方法,其对输入LVDS前的RGB图像数据的每一路引入误差扩散算法,减少直接舍去低位信号造成的图像质量下降。其中用fifo设计了误差扩散算法时用到的行存,并对LVDS接口进行编码时搭建一条一进四出ram,避免使用现有(一进一出)ram需要4条。本发明完成了对提出方法的VLSI设计,并对其中的关键点进行了深入研究,在此基础上完成了Verilog-HDL的代码编写及功能实现。
文档编号H04N5/765GK103200379SQ20131006016
公开日2013年7月10日 申请日期2013年2月26日 优先权日2013年2月26日
发明者何凯, 沈源 申请人:西安创芯科技有限责任公司