扫描卡、LED显示屏控制系统及图像数据处理方法与流程

文档序号:11097208阅读:1844来源:国知局
扫描卡、LED显示屏控制系统及图像数据处理方法与制造工艺

本发明涉及视频图像处理技术领域,尤其涉及一种扫描卡、一种LED显示屏控制系统以及一种图像数据处理方法。



背景技术:

目前,LED显示屏控制系统在降低LED显示屏的亮度时,通常会出现低Bit(位)灰度丢失,导致显示色调不连续。

由于LED的线性响应特性,目前的LED显示屏控制需要对输入的n位灰度数据进行反伽玛(Gamma)校正映射到m位灰度数据后再做灰度实现(m>n)。设x为输入灰度数据,值域为0到(2n-1),y为反伽玛校正后的灰度数据,值域为0到(2m-1),γ为Gamma值,映射关系如下:

当需要降低LED显示屏亮度时,现有技术是将反伽玛校正后的y值直接乘以亮度百分比,比如需要将亮度降到50%,就将y值乘以0.5。如此得到的结果有一个明显的特征,即校正后低Bit灰度的数据代表了校正前部分高Bit信息。由于现今驱动芯片低Bit较难实现,所以目前直接丢弃低Bit灰度的做法使得显示屏低亮度显示效果较差。

参见图1,现有的LED显示屏控制系统主要由发送卡、扫描卡以及电连接扫描卡的LED灯板组成,其中各个LED灯板共同拼接形成LED显示屏。在LED显示屏控制系统中最为关键的是扫描卡(或称接收卡),而扫描卡主要实现视频图像数据的解包、校正以及LED灯板驱动芯片时序输出三个基本功能,其原理框图如图2所示。图2仅表达出像素数据的传递及转换且假设原始数据源为8bit(也即23bit)。具体地,在图2中,扫描卡的功能实现主要包括四个部分:数据接收模块、存储控制模块、数据转换模块以及显示驱动模块。对于扫描卡来说,数据源是从发送卡发送过来的图像数据包、命令包、参数包等各种数据。数据接收模块对这些数据包进行解析,并经由存储控制模块将图像有效数据保存至存储器例如SDRAM,以备其它模块做处理;数据转换模块根据走线表经由存储控制模块从SDRAM中读取数据按需进行校正,校正结果根据显示驱动模块要求进行Bit分离并经由存储控制模块保存至SDRAM;显示驱动模块产生LED灯板驱动芯片用控制时序,并根据控制时序经由存储控制模块从SDRAM中读取数据,通过排线送至LED灯板。

若原始视频图像源是8bit(如图2所示),在经过反Gamma校正、亮度校正等各种校正后,数据已然变成了16bit(也即24bit),其相当于bit信息分散化。由于LED灯板驱动芯片低Bit灰度实现困难,加之刷新率越来越高的要求,直接将其舍弃必会造成灰度过渡不连续的显示效果。



技术实现要素:

因此,为克服现有技术的缺陷和不足,本发明提出将旋转抖动矩阵算法和帧间误差累积算法结合的视频图像处理技术应用于扫描卡,以实现多Bit信息压缩,在降低数据存储量的同时,仍能较完整地表达原始图像的信息,解决灰度过渡不连续的显示效果,达到整体色调连续的效果。

具体地,本发明实施例提出的一种扫描卡,包括:数据接收模块、存储控制模块、数据转换模块和显示驱动模块,所述数据接收模块用于接收输入的图像数据并经由所述存储控制模块存储至存储器中,所述数据转换模块用于经由所述存储控制模块从所述存储器中获取图像数据以进行校正和Bit分离再经由所述存储控制模块将Bit分离后的图像数据存储至所述存储器,所述显示驱动模块用于产生控制时序并根据所述控制时序经由所述存储控制模块从所述存储器读取Bit分离后的图像数据以进行输出。此外,所述数据转换模块包括:Bit优化模块,用于利用周期性旋转抖动矩阵结合帧间误差累积减小在进行所述校正之后且在进行所述Bit分离之前的图像数据的位宽。

在本发明的一个实施例中,所述数据转换模块包括Gamma校正模块、亮度校正模块和Bit分离模块;所述校正包括利用所述Gamma校正模块进行的反Gamma校正和在进行所述反Gamma校正之后利用所述亮度校正模块进行的亮度校正,且所述Bit分离模块用于进行所述Bit分离。

在本发明的一个实施例中,所述校正包括用于对经由所述存储控制模块从所述存储器中获取的位宽为2nbit的图像数据进行反Gamma校正以映射成位宽为2mbit的图像数据,其中n<m;所述Bit优化模块具体用于利用k×k维的周期性旋转抖动矩阵结合帧间误差累积将在进行所述校正之后且在进行所述Bit分离之前的图像数据的位宽减小至(2m-N)bit,且N>k≥2,其中N,K均为正整数。

在本发明的一个实施例中,所述扫描卡包括可编程逻辑器件,所述存储器外接于所述可编程逻辑器件,且所述数据接收模块、所述存储控制模块、所述数据转换模块和所述显示驱动模块整合于所述可编程逻辑器件。

在本发明的一个实施例中,上述利用周期性旋转抖动矩阵结合帧间误差累积减小在进行所述校正之后且在进行所述Bit分离之前的图像数据的位宽具体包括:对当前图像数据帧进行降灰阶处理以得到降灰阶处理后图像数据,其中所述降灰阶处理将所述当前图像数据帧中的图像数据位宽缩减Nbit;将所述降灰阶处理后图像数据的各个像素点位置的像素值小数部分与k×k维的周期性旋转抖动矩阵中的一个相对应旋转抖动矩阵进行比较以确定像素值整数部分是否需要加1,并根据公式result=(1/(k×k))×ceil(Dec/(1/(k×k)))得到像素值小数部分的实现结果,其中ceil()表示向上取整函数,result表示像素值小数部分的实现结果,Dec表示像素值小数部分,k≥2且偶数,N>k且为奇数;获取所述实现结果与所述降灰阶处理后图像数据帧的各个像素点位置的像素值小数部分之间的差值;以及将所述差值累积至下一个图像数据帧进行降灰阶处理后的图像数据中。

再者,本发明实施例提出的一种LED显示屏控制系统,包括:发送卡、前述任意一种扫描卡、以及LED灯板;所述扫描卡电连接所述发送卡和所述LED灯板。

另外,本发明实施例提出的一种图像数据处理方法,适于执行于包括扫描卡和LED显示屏的LED显示屏控制系统。所述图像数据处理方法包括步骤:(i)接收输入的图像数据;(ii)对所述图像数据进行校正以得到校正后的图像数据;(iii)利用k×k维的周期性旋转抖动矩阵结合帧间误差累积将所述校正后的图像数据的位宽减小Nbit以得到Bit优化后的图像数据,其中N>k≥2且k为偶数;(iv)对所述Bit优化后的图像数据进行Bit分离以得到Bit分离后的图像数据;(v)产生控制时序并根据所述控制时序将所述Bit分离后的图像数据输出以供驱动所述LED显示屏。

在本发明的一个实施例中,步骤(iii)包括:根据场同步信号、所述扫描卡的起始像素点坐标和所述扫描卡带载的图像数据大小确定每一帧图像数据中的每一个像素值对应到所述LED显示屏的位置坐标和相对应的旋转抖动矩阵。

在本发明的一个实施例中,步骤(iii)还包括:对当前图像数据帧进行降灰阶处理以得到降灰阶处理后图像数据,其中所述降灰阶处理将所述当前图像数据帧中的图像数据位宽减少Nbit;将所述降灰阶处理后图像数据的各个像素点位置的像素值小数部分与k×k维的周期性旋转抖动矩阵中的一个相对应旋转抖动矩阵进行比较以确定像素值整数部分是否需要加1,并根据公式result=(1/(k×k))×ceil(Dec/(1/(k×k)))得到像素值小数部分的实现结果,其中ceil()表示向上取整函数,result表示像素值小数部分的实现结果,Dec表示像素值小数部分,k为偶数,N为奇数;获取所述实现结果与所述降灰阶处理后图像数据帧的各个像素点位置的像素值小数部分之间的差值;以及将所述差值累积至下一个图像数据帧进行降灰阶处理后的图像数据中。

在本发明的一个实施例中,步骤(ii)中的所述校正包括依序进行的反Gamma校正和亮度校正。

由上可知,本发明实施例针对现有技术中存在低Bit灰度丢失的问题,提出了将旋转抖动矩阵处理算法与帧间误差累积结合应用于扫描卡功能实现中。通过对相邻帧的视频图像数据采用不同的旋转矩阵做处理、并做残差累积,实现在高位宽数据到低位宽数据转换的同时,仍能较完整地表达原始视频图像的信息,减小了驱动芯片低Bit未实现对灰度表现的影响,使得灰度过渡更为平滑,另一方面,由于减小了bit的实现位数,所以刷新率也提高了。

通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。

附图说明

下面将结合附图,对本发明的具体实施方式进行详细的说明。

图1为现有技术中的一种LED显示屏控制系统的架构示意图。

图2为现有技术中的扫描卡功能实现原理框图。

图3为本发明实施例提出的一种扫描卡功能实现原理框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

本发明下述实施例针对现有技术中扫描卡的功能实现原理框架上存在低Bit(位)信息丢失的问题,利用旋转抖动矩阵算法和帧间误差累积算法相结合的视频图像处理技术对其进行改进,实现在降低资源开销或提高刷新率的同时,仍可以保证邻近位置上的像素灰度效果保持不变,达到整体色调连续的效果。

具体地,为便于理解本实施例,首先对本实施例采用的一种旋转抖动矩阵算法进行说明如下:

数字半色调技术是基于人眼视觉特性和图像呈色特性,利用数学、计算机等工具,在二值(或多色二值)呈色设备上实现图像最优再现的一门技术。当在一定距离下观察时,人眼将图像中空间上接近的部分视为一个整体。利用此特性,人眼观察到的半色调图像局部平均灰度近似于原始图像的局部平均灰度值,从而整体上形成连续色调的效果。

目前应用较广的数字半色调技术是旋转抖动矩阵算法,其原理是将高位的显示信息通过旋转抖动矩阵计算分配到相邻的空间中,使得图像质量得到明显改善,提高了显示的灰度级数。

以2×2旋转抖动矩阵为例,算法的具体实现步骤如下:

(1)获取旋转抖动矩阵:旋转抖动矩阵是由一个基本抖动矩阵按照逆时针或顺时针旋转而来,而基本抖动矩阵则是由Limb矩阵经过矩阵运算得到的。

①Limb矩阵:

②依据公式求解出(n+1)×(n+1)维的基本抖动矩阵,其中Un表示n×n的全一矩阵,例如

③将基本抖动矩阵按照顺时针或者逆时针旋转,得到周期性旋转抖动矩阵。以2×2的基本抖动矩阵为例,若按照逆时针方向旋转,可以得到2×2个旋转抖动矩阵:

(2)当前视频图像帧framecurrent的处理:设原始视频是8bit(也即256级)数据源,现要用6bit(也即64级)的数据位宽表示该视频,算法的具体实现包括以下步骤:

①将每个像素值进行8bit到6bit的转换(也即实现2bit缩减),也即进行降灰阶处理,转换后的像素值包含两部分:整数部分(Int)和小数部分(Dec);例如像素值122转换成64级后的值为Value,则Value=64×122/256=30.5=Int+Dec。

②将当前处理视频图像帧framecurrent的小数部分与对应的旋转抖动矩阵比较:

(i).确定当前处理视频图像帧framecurrent对应的旋转抖动矩阵:i=rem((current/4),其中rem()为求余函数,current为当前处理视频图像帧的序号(例如第一个视频图像帧对应current=1),i表示与当前处理视频图像帧framecurrent对应的旋转抖动矩阵的序号。

(ii).计算当前处理视频图像帧framecurrent中每个像素位置的比较结果:假设current=5,则其对应旋转抖动矩阵为Mat1;从当前处理视频图像帧framecurrent的左上角出发,依次截取经降灰阶处理后2×2维的像素值,将其小数部分与旋转抖动矩阵Mat1作比较,依据四舍五入法则进行取舍。即,若小数部分大于Mat1中对应位置的值,则framecurrent对应像素位置的整数部分加1,否则不加(也即整数部分不变),此处旋转抖动矩阵的序号i的取值范围为1~4。

然而,若要实现更多Bit例如3bit缩减,比如将8bit(256级)信息缩减至5bit(32级);由于3×3维的旋转抖动矩阵较难处理,一般会选择2×2维的旋转抖动矩阵对其处理,而要实现该信息的完整表达,必须保证转换精度至少为0.125,而2×2维旋转抖动矩阵精度为0.25,因此此时仅仅使用旋转抖动矩阵算法并不能准确地表述每一个图像像素点的信息。举例说明,8bit的原始图像信息为37,则Value=32×37/256=4.625=Int+Dec,使用2×2维的旋转抖动矩阵处理后,结果为1,1,1,0,即三帧数据的整数部分有加1、一帧数据没有加1,这样处理后的最终结果为0.75,与要实现的0.625相比,存在一定误差。

因此,本实施例提出将旋转抖动矩阵算法与帧间误差累积算法相结合的视频图像处理方法应用于扫描卡,其原理下面将通过步骤化的方式进行解析。假设要实现的目标图像数据值为Value,当前处理的视频图像帧为framecurrent,则实现步骤如下:

(a)对原始图像数据值逐像素进行降灰阶处理得到转换后的整数部分和小数部分,即Value=Int+Dec;

(b)根据公式i=rem((current/4),将进行降灰阶处理后得到的小数部分与相对应的旋转抖动矩阵进行对比,确定整数部分是否需要加1;并且根据公式result=(1/(2×2))×ceil(Dec/(1/(2×2)))=0.25×ceil(Dec/0.25),其中ceil()表示向上取整函数,得到最终的实现结果result,此公式表示采用2×2维的旋转抖动矩阵,实现结果只可能是0,0.25,0.5,0.75中的一个。若旋转抖动矩阵的维数改变,则同时需要将该公式中的1/4换成其对应的矩阵k×k可实现的精度,比如4×4维的精度是1/(k×k)=1/(4×4)=0.0625;

(c)将实现结果与欲实现的小数做差:error=result-Dec,并将结果累积到下一帧的计算中:Value=Value-error=Int+Dec;

(d)重复以上步骤(a)至(c),实现图像数据值的准确表达。

承上述,改进后的扫描卡功能实现原理框图如图3所示。需要说明的是,图3仅表达出图像数据的传递及转换,其假设数据源为8bit且做Nbit=3bit优化以及其采用的k×k矩阵为2×2维矩阵,此处N>k。再者,在本实施例中,图3中的数据接收模块31、存储控制模块33、数据转换模块35和显示驱动模块37例如是由运行在扫描卡30的可编程逻辑器件像FPGA(Field Programmable Gate Array,现场可编程门阵列)上的软件模块实现,或者说数据接收模块31、存储控制模块33、数据转换模块35和显示驱动模块37均整合于外接有存储器例如SDRAM的可编程逻辑器件。

具体地,图3中增加的Bit优化模块356即为利用旋转抖动矩阵算法和帧间误差累积算法相结合实现大位宽数据到小位宽数据转换的功能。由于Gamma校正模块350用于对视频图像像素数据进行反Gamma校正,其为一种非线性校正,且亮度校正模块352和其它校正模块354(例如色度校正模块等,当然也可以无其它校正模块)使得数据高Bit的信息更多地转移到了低Bit上,而Bit分离模块358已丢失了原有图像数据的位置信息;所以将Bit优化模块356设置在各个校正模块(包含Gamma校正模块350、亮度校正模块352和其它校正模块354)与Bit分离模块358之间。再者,在图3所示举例中,原始视频图像源是8bit,在经过反Gamma校正、亮度校正等各种校正后,数据已然变成了16bit(也即24bit),之后经由本实施例的Bit优化模块356的Bit优化处理后缩减至13bit,再经由Bit分离模块358进行Bit分离处理后由存储控制模块33保存至存储模块例如SDRAM中供显示驱动模块37使用。

对于每个扫描卡30来说,都可以从前端发送卡得到三个关键信息:场同步信号、扫描卡的起始像素点坐标(StartX,StartY)和扫描卡带载的图像数据大小(TotalX,TotalY)。依据这三个参数,可得到当前处理视频图像帧序号以及每个像素在整个LED显示屏的具体位置,从而确定与之对应的旋转抖动矩阵值,通过比较最终实现大位宽数据到小位宽数据的转换。假设(StartX,StartY)=(0,128)、(TotalX,TotalY)=(128,128)且扫描卡30上SDRAM的数据存储格式为每行存储Col=256个像素数据,计算步骤如下:

(一)计算接收到的像素值所对应的整个LED显示屏的具体位置。在数据转换模块35中,根据走线表可以得到原始视频图像数据像素值在SDRAM中的行列坐标(RowAddr,ColAddr)。由于原始图像数据像素值是按序存放的,所以可通过计算得到其对应到LED显示屏上的具体位置坐标(i,j)。同理,通过场同步信号可得到数据帧计数framecnt。假设为RowAddr为0,ColAddr为200,framecnt为5,则该像素值对应到LED显示屏的具体位置坐标(i,j)以及与之对应的旋转抖动矩阵Matm中的序号m为:

(i,j)=(StartX+fix((RowAddr×Col+ColAddr)/TotalY),StartY+rem(RowAddr×Col+

ColAddr,TotalY)-1)

=(0+fix((0×256+200)/128),128+rem(0×256+200,128)-1)

=(1,199)

m=rem(framecnt/4)=rem(5/4)=1

其中,fix()为取整函数,rem()为求余函数。

(二)根据旋转抖动矩阵算法,对当前处理的像素和确定的旋转抖动矩阵Matm做比较,并将残差保存至提前分配好的存储空间例如SDRAM空间中对应的位置,以备下一帧处理使用。此处,“对应”的意思是残差值与原图像像素值的存储位置一一对应,方便后续规划以及程序实现,这一点可以通过走线表得以实现。若像素的具体位置坐标i,j均为偶数,则其与旋转抖动矩阵Mat1中(0,0)位置的数据比较;若i为偶数且j为奇数,则其与Mat1中(0,1)位置的数据比较;若i奇数为且j为偶数,则其与Mat1中(1,0)位置的数据比较;若i,j均为奇数,则其与Mat1中(1,1)位置的数据比较。

假设要实现的8bit像素值为45,则有:

A).8bit像素值转换为5bit像素值:Value=Value-error=45×32/256-error=5.625-error=Int=Dec。若为第一帧,则error为0,之后的数据帧的error为上一帧数据的残差;

B).由于framecnt为5,若i,j均为奇数,所以将其小数部分与Mat1中(1,1)位置的数据作比较,结果为1,转换后的整数部分Int加1;

C).根据公式result=(1/(2×2))×ceil(Dec/(1/(2×2)))=0.25×ceil(Dec/0.25),得到最终的实现结果result=0.75,并将其与原来欲实现的小数部分作残差:error=result-Dec=0.75-0.625=0.125;

D).根据走线表将该残差存放至提前规划好的对应的SDRAM空间,以备下一帧数据处理过程使用。

(三)将处理后的图像像素数据送至Bit分离模块358进行Bit分离处理。

鉴于数据接收模块31接收到的数据是数据流,所以重复以上三个步骤(a)-(c)即可完成Bit优化。

假设截取的2×2维的原始像素为:待实现的小数部分则根据以上的步骤,可以很容易得到四帧图像数据处理后的结果,分别如下:

像素转换得到的小数部分:

小数部分比较结果:

残差:

从以上的结果可以看出,经过了四帧数据的累积处理,残差已然变成了0,四帧数据叠加累积实现的结果为由于人眼观察到的图像是局部的均值效果,所以(其中sum(Vavg)表示矩阵Vavg中各元素求和),即最终实现的小数部分就等于欲实现的小数部分,完成原图像数据的准确表达。

本质上说,要实现数据的准确表达,即关键是小数部分的精确转换。本实施例提出的视频图像处理方法就是将小数部分信息转移到相邻数据帧中,在数据帧累积的过程中,将残差也累积,实现精度的分散实现。结合人眼的惰性特性:局部平均灰度近似于原始图像的局部平均灰度,得到整体色调连续的效果。由于数据位宽明显较小,所以在降低资源开销或者提高刷新率的前提下,仍能较完整准确地表达原始图像的信息。

综上所述,本发明前述实施例针对现有技术中存在低Bit灰度丢失的问题,提出了将旋转抖动矩阵处理算法与帧间误差累积结合应用于扫描卡功能实现中。通过对相邻帧的视频图像数据采用不同的旋转矩阵做处理、并做残差累积,实现在高位宽数据到低位宽数据转换的同时,仍能较完整地表达原始视频图像的信息,减小了驱动芯片低Bit未实现对灰度表现的影响,使得灰度过渡更为平滑,另一方面,由于减小了bit的实现位数,所以刷新率也提高了。

此外值得一提的是,可以将本发明前述实施例的扫描卡应用于图1所示的LED显示屏控制系统以得到改进的LED显示屏控制系统。

最后值得一提的是,根据前述实施例的描述,还可以归纳出一种图像数据处理方法,适于执行于包括扫描卡和LED显示屏(由一个或多个LED灯板拼接而成)的LED显示屏控制系统。所述图像数据处理方法例如包括步骤:接收输入的图像数据;对所述图像数据进行校正以得到校正后的图像数据;利用k×k维的周期性旋转抖动矩阵结合帧间误差累积将所述校正后的图像数据的位宽减小Nbit以得到Bit优化后的图像数据,其中N>k≥2;对所述Bit优化后的图像数据进行Bit分离以得到Bit分离后的图像数据;以及产生控制时序并根据所述控制时序将所述Bit分离后的图像数据输出以供驱动所述LED显示屏。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1