图像处理方法及装置和显示控制卡与流程

文档序号:11235287阅读:919来源:国知局
图像处理方法及装置和显示控制卡与流程

本发明涉及显示技术领域,尤其涉及一种能够提升图像亮度的图像处理方法及装置以及一种显示控制卡。



背景技术:

随着科技的发展,图像视频类数据由于其传递表达信息的直观,应用范围越来越广,随之而来的问题就是如何用较少的资源开销保存较完整的图像视频信息。为了解决上述问题,现有技术采用误差扩散法,其中,误差扩散法的原理是按照一定的扫描路径量化图像像素,然后将量化误差以一定的方式扩散到相邻的未处理像素上。

然而,由于现有技术是将误差按照固定的比例分配给周围像素,而没有考虑到图像的边沿信息,因而会有伪轮廓的产生,进而影响画面显示质量。



技术实现要素:

因此,本发明实施例提供一种图像处理方法、一种图像处理装置以及一种显示控制卡,解决图像有伪轮廓产生的问题,实现提升图像亮度及画面显示质量的技术效果。

一方面,提供了一种图像处理方法,包括:对目标像素点的灰度值进行降灰阶处理;计算所述目标像素点在预设区域中多个误差扩散方向上的梯度值,其中,所述多个误差扩散方向为预设误差扩散模板中的误差扩散方向;根据所述梯度值和所述预设误差扩散模板计算得到梯度误差扩散模板;根据所述梯度误差扩散模板对所述目标像素点降灰阶处理后的小数部分进行误差扩散。

再一方面,提供了一种图像处理方法,包括:接收输入图像;按照前述对目标像素点的处理方法,进行逐行遍历处理所述输入图像中的每一个像素点,得到处理后的图像。

另一方面,提供了一种图像处理装置,包括:降灰阶处理模块,用于对目标像素点的灰度值进行降灰阶处理;梯度计算模块,用于计算所述目标像素点在预设区域中多个误差扩散方向上的梯度值,其中所述多个误差扩散方向为预设误差扩散模板中的误差扩散方向;误差扩散模板生成模块,用于根据所述梯度值和所述预设误差扩散模板计算得到梯度误差扩散模板;误差扩散模块,用于根据所述梯度误差扩散模板对所述目标像素点降灰阶处理后的小数部分进行误差扩散。

又一方面,提供了一种图像处理装置,包括:图像输入模块,用于接收输入图像;逐行遍历处理模块,用于使用前述图像处理装置进行逐行遍历处理所述输入图像中的每一个像素点,得到处理后的图像。又再一方面,提供了一种显示控制卡,适于连接led显示屏且包括图像处理装置。所述图像处理装置包括:降灰阶处理模块,用于对目标像素点的灰度值进行降灰阶处理;梯度计算模块,用于计算所述目标像素点在预设区域中多个误差扩散方向上的梯度值,其中所述多个误差扩散方向为预设误差扩散模板中的误差扩散方向;误差扩散模板生成模块,用于根据所述梯度值和所述预设误差扩散模板计算得到梯度误差扩散模板;误差扩散模块,用于根据所述梯度误差扩散模板对所述目标像素点降灰阶处理后的小数部分进行误差扩散。

又另一方面,提供了一种显示控制卡,适于连接led显示屏且包括图像处理装置。所述图像处理装置包括:图像输入模块,用于接收输入图像;逐行遍历处理模块,用于使用前述图像处理装置进行逐行遍历处理所述输入图像中的每一个像素点,得到处理后的图像。

上述技术方案中的一个技术方案具有如下优点或有益效果:有别于现有技术中针对所有图像像素点将误差按照固定的比例分配给周围像素,采用结合梯度方向的误差扩散模板进行降灰阶处理过程中的误差扩散,也即同一副输入图像的各个像素点在进行降灰阶处理后的误差扩散时所采用的误差扩散模板在各个误差扩散方向上的各个系数取值会因不同像素点而不同,从而可以极大地改善现有技术存在的伪轮廓现象,提高画面显示质量。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为本发明实施例中提供的一种图像处理装置的模块示意图;

图1b为图1a中的梯度计算模块中的子模块示意图;

图1c为图1a中的误差扩散模块生成模块的子模块示意图;

图2为本发明再一实施例中提供的一种图像处理装置的模块示意图;

图3为本发明另一实施例中提供的一种显示控制卡的模块示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

具体地,本发明实施例针对现有技术存在的技术问题,提出了方向相关性的误差扩散方法,极大地改善现有技术存在的伪轮廓现象,提高画面显示质量,从而对于固有灰度显示精度为16bit的led显示屏可以达到18bit及以上的灰度显示效果。

具体地,本发明下述实施例以floyd-steinberg扩散模板为例说明本实施例的图像处理方法的具体实施过程。

根据floyd-steinberg扩散模板,此处定义:像素点x(当前像素点)与其右边像素点、正下方像素点、右下方像素点、左下方像素点的方向分别记为水平方向、垂直方向、主对角线方向、次对角线方向;并记下表值分别为value1=7,value2=3,value3=5,value4=1,sumvalue=value1+value2+value3+value4。

对于原图像中的任意一个像素点,本实施例首先计算其分别沿水平方向、垂直方向、主对角线方向、次对角形方向的梯度值;根据梯度计算原理可知,某一个方向的梯度值越小,则该像素点沿此方向运动的可能性越大,因而本实施例设计为其误差沿此方向扩散的比例应该更大;其次,根据梯度值结合floyd-steinberg扩散模板的值,重新计算当前像素点的误差扩散模板,此处称之为梯度误差扩散模板;然后,按照现有的误差扩散原理进行误差扩散。具体步骤如下:

(a)计算当前像素点img(i,j)沿水平方向、垂直方向、主对角线方向、次对角线方向等各个误差扩散方向的梯度值hor_grad、ver_grad、maindiag_grad、seconddiag_grad。

以img(i,j)为中心的指定大小像素点区域例如3*3像素点区域如下:

本实施例在以img(i,j)为中心的3*3像素点区域内利用以下公式计算梯度值:

hor_grad=abs[(img(i,j+1)+img(i,j-1))/2-img(i,j)]

ver_grad=abs[(img(i+1,j)+img(i-1,j))/2-img(i,j)]

maindiag_grad=abs[(img(i+1,j+1)+img(i-1,j-1))/2-img(i,j)]

seconddiag_grad=abs[(img(i+1,j-1)+img(i-1,j+1))/2-img(i,j)]。

概括而言,本实施例的梯度值计算方式为:计算每一个误差扩散方向上位于当前像素点img(i,j)两侧的多个像素点例如两个的灰度值的平均值与当前像素点img(i,j)的灰度值之差的绝对值作为误差扩散方向上的梯度值。

(b)计算梯度误差扩散模板

(b1)对梯度的倒数值进行归一化:某一方向的梯度值越小,则该像素点沿此方向运动的可能性越大,对应其误差沿此方向扩散的比例应该更大。其中ex是为了防止公式无效而增加的,表示一个极小的值,这里例如ex=0.001,thr是调节梯度对扩散模板系数影响的值,这里例如设置thr=10或者其它经验值;

sum=1/(hor_grad+ex)+1/(ver_grad+ex)+1/(maindiag_grad+ex)+1/(seconddiag_grad+ex),

hor=thr×1/(hor_grad+ex)/sum,

ver=thr×1/(ver_grad+ex)/sum,

maindiag=thr×1/(maindiag_grad+ex)/sum,

seconddiag=thr×1/(seconddiag_grad+ex)/sum。

(b2)得出梯度误差扩散模板:

其中,coef1=(value1+hor)/(thr+sumvalue),

coef2=(value2+seconddiag)/(thr+sumvalue),

coef3=(value3+ver)/(thr+sumvalue),

coef4=(value3+maindiag)/(thr+sumvalue)

概括而言,本实施例的梯度误差扩散模板计算方式为:对每一个误差扩散方向上的梯度值的倒数值进行归一化得到归一化值,获取预设误差扩散模板例如floyd-steinberg扩散模板的多个误差扩散方向上的系数值之和得到系数和值,以及根据每一个误差扩散方向上的预设误差扩散模板的系数值和归一化值以及系数和值计算得到梯度误差扩散模板在误差扩散方向上的系数值。

(c)对于一副原图像数据,采用从左到右且从上到下扫描方式或蛇形遍历方式逐行遍历处理每一个像素点的像素值,并在逐行遍历处理过程中按照梯度误差扩散模板也即更新后的floyd-steinberg误差扩散模板将遍历的当前像素点img(i,j)进行降灰阶处理后的小数部分扩散到周围像素点上,以得到处理后图像。此处的处理后图像可以提供至目标显示屏例如led显示屏进行显示或者进行存储;进一步地,对于原图像数据进行降灰阶处理并利用梯度误差扩散模板进行误差扩散的方法可执行在连接led显示屏的接收卡或发送卡等显示控制卡上的处理器中,也可以是执行在上位机的处理器中;而且典型的应用是由接收卡上的处理器例如可编程逻辑器件(例如fpga器件)来执行原图像数据的降灰阶处理并按照梯度误差扩散模板进行误差扩散。本实施例的蛇形遍历方式具体为奇数行从左到右,偶数行从右到左;蛇形扫描方式的优势主要体现在低灰上,避免灰度处理的不均匀性。

为便于进一步清楚地理解本实施例,下面列举具体例子对降灰阶处理和误差扩散的方法进行详细说明:

假设要用4bit数据带宽表示8bit的数据,即原256(也即28)灰度级图像上的一个像素点(假设灰度值为120),现在要将其转换为16(24)级(也可以理解为将图像亮度降低为原来的6.25%),具体实现方法包括以下步骤:

(一)、计算将120用16级表示后的值value=16×120/256=7.5,保留整数部分为该像素值;

(二)、将小数部分0.5的误差扩散到周围像素点上。以前述得到的梯度误差扩散模板为例,将这0.5的误差分为sum=(coef1+coef2+coef3+coef4)份,按下述模板进行扩散。

(i)pixel(i,j)表示当前像素点(例如灰度值为120),则用16级表示后的值(亮度降低为原来的6.25%时)为pixelout(i,j)=floor(16×120/256)=7;

(ii)将0.5的误差按照扩散模板扩散到当前像素的右方、左下方、正下方以及右下方的相邻像素上,具体扩散如下:

pixel(i,j+1)=pixel(i,j+1)+0.5×16×coef1/sum,

pixel(i+1,j-1)=pixel(i+1,j-1)+0.5×16×coef2/sum,

pixel(i+1,j)=pixel(i+1,j)+0.5×16×coef3/sum,

pixel(i+1,j+1)=pixel(i+1,j+1)+0.5×16×coef4/sum。

最后,值得一提的是,本方明实施例的梯度误差扩散模板计算中所采用的预设误差扩散模板不局限于举例的floyd-steinberg扩散模板,对于其他的误差扩散模板例如basic扩散模板、sierra扩散模板、jarris-judice-ninke扩散模板等同样适用。

a)、basic扩散模板如下:

b)、sierra扩散模板如下:

c)、jarris-judice-ninke扩散模板如下:

承上述,例如以sierra扩散模板而言,可以采用以当前像素点为中心的3*3像素点区域来计算梯度值,或者采用以当前像素点为中心的5*5甚至更大的像素点区域来计算梯度值;简而言之,本发明实施例是计算预设误差扩散模板定义的多个误差扩散方向上的像素灰度梯度并利用计算得到的像素灰度梯度更新预设误差扩散模板在所述多个误差扩散方向上的系数值(此处可以是更新部分系数值,也可以是更新全部系数值)以得到梯度误差扩散模板,之后在对输入图像进行降灰阶处理并将当前像素点降灰阶处理后的小数部分按照梯度误差扩散模板扩散到其周围像素点上,进而得到处理后图像作为输出。

此外,参见图1a,其为本发明实施例提出的一种图像处理装置的模块示意图。如图1a所示,本实施例的图像处理装置10包括:降灰阶处理模块11、梯度计算模块13、误差扩散模板生成模块15以及误差扩散模块17。

其中,降灰阶处理模块11用于对目标像素点的灰度值进行降灰阶处理;梯度计算模块13用于计算所述目标像素点在预设区域中多个误差扩散方向上的梯度值,其中所述多个误差扩散方向为预设误差扩散模板中的误差扩散方向;误差扩散模板生成模块15用于根据所述梯度值和所述预设误差扩散模板计算得到梯度误差扩散模板;以及误差扩散模块17用于根据所述梯度误差扩散模板对所述目标像素点降灰阶处理后的小数部分进行误差扩散。再者,梯度计算模块13、误差扩散模板生成模块15的具体功能细节可参考前述实施例的梯度值计算方式和梯度误差扩散模板计算方式,在此不再赘述;而至于降灰阶处理模块11和误差扩散模块17的具体功能细节可以参考前述实施例的关于降灰阶处理和误差扩散的方法的详细说明,在此也不再赘述。

进一步地,如图1b所示,梯度计算模块13例如包括:第一计算模块131,用于计算每一个误差扩散方向上位于目标像素点两侧的多个像素点的灰度值的平均值与目标像素点的灰度值之差的绝对值作为该误差扩散方向上的梯度值。

另外,如图1c所示,误差扩散模板生成模块15例如包括:归一化模块151、第二计算模块153和第三计算模块155。其中,归一化模块151用于对每一个误差扩散方向上的梯度值的倒数值进行归一化得到归一化值;第二计算模块153用于获取预设误差扩散模板的多个误差扩散方向上的系数值之和得到系数和值;以及第三计算模块155用于根据每一个误差扩散方向上的预设误差扩散模板的系数值和归一化值以及系数和值计算得到梯度误差扩散模板在该误差扩散方向上的系数值。

参见图2,其为本发明再一实施例提出的一种图像处理装置的模块示意图。如图2所示,本实施例的图像处理装置20包括:图像输入模块21和逐行遍历处理模块23;其中逐行遍历处理模块23包括降灰阶处理模块231、梯度计算模块233、误差扩散模板生成模块235以及误差扩散模块237。

具体地,图像输入模块21用于接收输入图像;逐行遍历处理模块12用于逐行遍历处理所述输入图像中的每一个像素点,其典型地采用从左到右且从上到下扫描方式、或蛇形遍历方式遍历处理所述输入图像中的每一个像素点,以得到处理后的图像。具体而言,逐行遍历处理模块23在遍历处理输入图像中的每一个像素点时,具体是将当前遍历到的像素点作为目标像素点由降灰阶处理模块231、梯度计算模块233、误差扩散模板生成模块235和误差扩散模块237进行降灰阶处理、梯度值计算、梯度误差扩散模块计算和误差扩散。至于降灰阶处理模块231、梯度计算模块233、误差扩散模板生成模块235和误差扩散模块237的具体功能与图1a、图1b和图1c所示模块11、13、15及17的功能相同,在此不再赘述。

再者,值得说明的是,图1a-1c所示的图像处理装置10和图2所示的图像处理装置20例如是由保存在存储器中的多个软件模块实现且这些软件模块可由上位机中的处理器或者发送卡或接收卡等显示控制卡上的处理器来执行。

参见图3,其为本发明实施例中的一种显示控制卡的模块示意图。如图3所示,本实施例的显示控制卡30适于连接led显示屏且包括图像处理装置31。本实施例的图像处理装置31用于对输入图像进行降灰阶处理及降灰阶后小数部分的误差扩散处理得到处理后的图像,其可以是图1a-1c所示的图像处理装置10,也可以是图2所示的图像处理装置20。至于本实施例的显示控制卡30,其可以是发送卡或接收卡等,而图像处理装置31中用于实现降灰阶处理和误差扩散处理的各个模块可以是执行于发送卡或接收卡上的可编程逻辑器件例如fpga上的软件模块。

综上所述,本发明实施例的图像处理方法及装置以及显示控制卡有别于现有技术中针对所有图像像素点将误差按照固定的比例分配给周围像素,采用结合梯度方向的误差扩散模板进行降灰阶处理过程中的误差扩散,也即同一副输入图像的各个像素点在进行降灰阶处理后的误差扩散时所采用的误差扩散模板在各个误差扩散方向上的各个系数取值会因不同像素点而不同,从而可以极大地改善现有技术存在的伪轮廓现象,提高画面显示质量。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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