摘要:为解决LED显示屏在低灰度条件下出现图像亮度损失、灰阶跳变等问题,提出一种运用抖动矩阵的LED显示屏低灰度图像增强处理算法。首先,根据LED显示原理和传统抖动算法图像增强原理,提出LED显示屏“小数灰度级”的概念,接着根据测试等相关手段获得使各像素点显示效果增强的“小数灰度级”数据,运用抖动矩阵在4帧图像中按照“误差最小原则”实现其相应的“小数灰度级”。然后,采用亚像素抖动技术进一步降低了画面抖动给人眼带来的闪烁感。最后,用Matlab软件对算法进行对比仿真,验证了算法的可行性与有效性。实验结果表明,该算法对LED显示屏低灰度级灰阶过渡不均匀现象有明显的改善效果,将灰度级10以下的灰度显示能力提升为原来的4倍,同时将LED显示屏的最小可控灰度级亮度变为原来的15%~25%,提升了LED显示屏的对比度。
关 键 词:LED显示屏;抖动矩阵;小数灰度级;亚像素抖动技术
1 引 言
LED显示屏作为视觉信息传递的重要媒介,是日常生活中重要的显示设备,已经在展会、商场、影院、演播室等场所得到广泛应用,低成本、高性能的LED显示具有很高的产业价值和广阔的应用场景[1-3]。小间距COB(Chip on Board)LED显示屏作为LED显示屏发展过程中的一条重要的技术路线,近年来得到了快速的发展和应用。该技术路线是将发光芯片直接焊接(Bonding)到PCB板的正面,通过回流焊将驱动器件焊接到PCB板的背面,再进行整体的灌封防护[4],由阵列模组、显示单元组装实现LED超大屏幕拼接显示,具有低成本、高可靠性、高稳定性的优势。在市场竞争激烈的今天,为保持产品的竞争力,必须不断地提升LED显示屏的显示效果。在发展过程中,制约其进一步发展的重要瓶颈之一是低灰度级的显示效果。低灰显示效果是指小间距LED显示屏在低灰阶数、即低亮度条件下呈现图案的能力[5]。
常见的低灰显示问题较多,主要有低灰偏色、亮度不均和灰阶跳变等[6],其中灰阶跳变是一个突出的问题。灰阶过渡不均匀的现象在绝大多数小间距COB LED显示屏上都存在,严重影响LED显示屏呈现精细画质时的效果,也是平板显示技术发展过程中的一个共性问题。
本文灵活地运用传统抖动算法[7]中的抖动矩阵,在驱动IC通道数等重要硬件资源不变的情况下,在LED显示屏上实现了整数灰度级之间的“小数灰度级”,将图像更多的细节在小间距COB LED显示屏上复现出来,使LED显示屏呈现高精细画质。同时该算法同人眼的视觉效应相结合,对红、绿、蓝亚像素分别采用不同的周期性轮换抖动矩阵,在LED显示屏上形成抖动的视觉效果,有效地改善了LED显示屏低灰度级灰阶过渡不均匀的现象,实现了LED显示屏灰阶精细调控。
2 抖动算法简介
图1 抖动算法产生的相应中间灰度级
Fig.1 Corresponding intermediate gray level generated by dithering algorithm
抖动算法本质上是一种图像处理算法,是一种数字半色调技术,通常会根据人眼的视觉感知特性和视觉的呈色特性,利用计算机等工具,在二值或多色二值呈色设备上实现对图像效果的最优呈现[8]。图像处理领域中典型的抖动算法之一是Floyd-steinberg误差传递算法[9],采用图案化的技术,牺牲一定的显示分辨率,对图像进行二值化处理,保留图像的相关信息。例如可以将一个2×2的方阵看成一个大的像素点,以2阶抖动矩阵为例,全黑为0灰度,全白为1灰度,用2×2的图案可以表示5级灰度,其本质就是通过人眼的视觉混色效应[10]在灰度级0与灰度级1之间插入3个中间灰度值,这样就增加了灰度的精细程度。可以将一幅灰度图片进行类似的处理产生中间灰阶(图1),节约相应的硬件资源,但同时也损失了图像分辨率。这是一种较为传统的经典算法。
在液晶显示中也运用这种思想对图像进行抖动处理。液晶显示是一种有源驱动[11]的显示装置,通过调控晶体管各极间的电压来驱动液晶分子的翻转,从而表现出相应的灰度级。通过抖动矩阵与相应的像素点进行阈值比较来决定是否对相应的像素点进行灰度补偿。根据Limb矩阵[12]及其递推关系可得:
(1)
(2)
其中Un为与Mn同阶的全1矩阵。抖动矩阵中数字的相对大小代表着进行灰度补偿时的灰度值优先级次序。当人眼距离显示屏一段距离时,一定区域内相邻像素点对于人眼的可视夹角足够小,会产生空间混色现象,形成相应的中间灰度级,如图2所示。
图2 空间混色
Fig.2 Mixed color space
3 LED显示图像增强处理算法
3.1 LED显示原理及低灰显示问题
LED显示屏作为一种不同于液晶的重要显示器件,有其特有的驱动方式与显示控制系统。LED显示采用与液晶显示完全不同的无源驱动 [13]方式,通过驱动IC来控制显示屏的驱动扫描进程,采用灰度调制技术[14]对每一像素点进行灰度控制。目前LED显示屏通常采用16 bit位深的驱动IC对显示屏显示数据进行处理,通常可以通过PWM调控技术控制驱动芯片输出脉冲占空比的大小控制LED显示屏的灰度值。灰度值的大小与扫描周期内的导通时间成正比,假设初始状态为低电平,高电平为导通状态,脉冲宽度为导通时间,如图3所示,因为τ1>τ0,所以τ1脉冲所产生的灰度值比τ0脉冲所产生的灰度值大。
图3 脉冲宽度调制灰度级
Fig.3 Pulse width modulation grayscale level
假设τ0为LED显示屏响应的最小脉冲宽度,设为灰度值1,为LED显示屏最小显示精度,比该灰度值更为精细的灰度无法通过控制驱动IC在显示屏上直接响应。如果最小灰阶精度无法满足低灰度时LED显示屏的要求,就会产生灰阶过渡不均匀、跳灰等情况,如图4所示。
图4 低灰显示不良图片
Fig.4 Flawed picture with low gray level
为了解决低灰显示不良的问题,行业内通常有两种解决问题的常用方法。第一种是使用具有更高位深的驱动IC,目前行业内通常使用的是16 bit位深的驱动IC,如果采用16 bit或者更高位深的驱动IC,则可以在整体上提升LED显示屏的灰度处理能力,实现更为精细的灰度控制。第二种是增加显示终端的控制系统灰度处理能力。目前大多数的LED显示屏具有8 bit的灰阶显示能力,也有少数具有10 bit灰阶显示能力的显示屏,显示屏的灰阶显示能力越强,画质的细腻程度越高,灰阶过渡不均匀的现象也会得到相应改善。
以上两种解决问题的方式都需要更好的硬件资源,但这样显示屏的硬件成本会大幅提高,对于产业化的推广是极为不利的。为了在不增加硬件资源的情况下使低灰度级灰阶过渡更为均匀,本文运用抖动矩阵元素结合小间距COB LED显示屏显示特性,提出一种新的图像增强处理算法,对LED显示屏低灰度级的显示效果有明显提升。
3.2 LED帧间灰度增强法
通过对各种型号小间距COB LED显示器低灰度级显示效果的实际测试,发现灰阶过渡不均匀、跳灰现象通常发生在1~10灰度级,超过10灰度级也有类似现象,但是随着亮度的不断增加,越来越不明显。灰度级越低,跳灰的现象就越明显,给人视觉上的不适感就越强。因此本算法的适用范围为灰度级0~10。具体的步骤如下:
步骤1:获得使各像素点显示效果提升的“小数灰度值”,根据所需要的小数精度选取相应的抖动矩阵。
该算法可实现的小数精度与抖动矩阵的阶数密切相关。如2阶抖动矩阵可实现0.25,0.5,0.75三个小数灰度级。抖动矩阵选择的重要依据与显示控制系统中“小数灰度值”的实现原理与过程密切相关。
LED显示屏输入的图像源通常为8 bit,而由于驱动IC中RAM等资源带宽和时钟频率的限制,控制系统通常为16位显示灰阶,即控制系统将图像源中28=256个灰度数据拓展成216=65 536个灰度数据进行处理,最后在65 536个灰度数据中选取256个灰度数据作为屏幕上显示的灰度数据。8~16 bit数据之间通过Gamma转换有明确的映射关系。通常Gamma值为2.8,则对应关系曲线图如图5所示。
图5 灰度转换关系图
Fig.5 Grayscale conversion diagram
如果要使LED显示屏具有更好的灰度表现力,展现出比16 bit灰度处理能力更为精细的“小数灰度级”,则要将8 bit数据映射成更高比特的灰阶来进行处理。例如对于2阶抖动矩阵,即相当于在16 bit的两个整数灰度级之间再插入3个灰度级,这样就可以修改Gamma转换数据选取中间的灰度级。
图6 灰阶拓展过程
Fig.6 Process of gray-scale expansion
如图6所示,18 bit灰度数据中的1,2,3是新产生的灰度级,经过降阶处理后即可实现0.25,0.5,0.75小数灰度级。
抖动矩阵可实现的最小灰度精度为矩阵阶数平方的倒数,即:
(3)
其中n为抖动矩阵的阶数,Gmin为最小灰度精度。
步骤2:根据抖动矩阵的阶数来确定具体实施该算法的各个抖动矩阵并获得使各像素点显示效果提升的“小数灰度值”。
对于2阶抖动矩阵,根据Limb矩阵及其递推关系,对M1矩阵做初等变换,可以得到一组变换抖动矩阵:
同时对已获得的带有目标小数灰度值的图像灰度数据进行处理。如对一幅带有目标小数灰度值的大小为m×n图像而言,将像素灰度矩阵拆分成两个矩阵之和,分别是整数灰度矩阵与小数灰度矩阵,即:
(4)
(5)
步骤3:对小数矩阵D中的每一个元素D11~Dmn按照“最小误差原则”用0.25,0.5,0.75三个“小数灰度值”和0与1两个整数灰度值进行替换,形成与D矩阵同维的新的小数矩阵:
(6)
其中d矩阵中的每一个元素值均为3个可实现“小数灰度值”与两个整数灰度值中一个。
步骤4:用 J0矩阵对矩阵d从d11开始进行比对式处理,即矩阵与对应位置一一做比较,如果小数矩阵中的元素比抖动矩阵中对应位置元素的值大,则对应的灰度整数矩阵对应位置加1。第一帧图像用J0矩阵处理,第二帧图像用J1矩阵处理,依次类推。以4帧为一个循环,得到一组新的像素灰度矩阵。这样4帧图像在LED显示屏上不断循环交替显示,形成相应的“小数灰度级”显示效果。
3.3 算法相关拓展
上述4个步骤阐述了算法实施的具体过程,整个过程中灰度值的增减是基于R、G、B全像素点而实现的。但是在低亮度条件下,单一像素点灰度值的增加会在观看LED显示屏时给人眼带来闪烁的感觉。为了降低LED显示屏给人眼带来的闪烁感,采用亚像素抖动技术对全像素中的红、绿、蓝亚像素点的灰度进行处理。
3.3.1 亚像素抖动技术
亚像素抖动技术是将同一像素点中的红、绿、蓝3个亚像素分别用不同的抖动矩阵进行处理。小间距COB LED显示屏路线是将发光芯片直接焊接到PCB板上,红、绿、蓝3种颜色发光芯片纵向排列在一起,焊接到PCB板上,形成一个像素点,结构如图7所示。
图7 像素结构
Fig.7 Structure of pixel
其中红、绿、蓝色的区域表示3种颜色的发光芯片,灰色部分表示驱动IC上除发光芯片外的其他部分。以实现一个0.25小数灰度级为例,对红色像素灰度矩阵在相邻4帧按照J0、J1、J2、J3的顺序进行处理,绿色像素灰度矩阵采用J1、J2、J3、J0顺序,蓝色像素灰度矩阵采用J2、J3、J0、J1顺序,这样对于单一像素点在相邻4帧中的显示效果如图8所示。
图8 采用亚像素抖动技术的单一像素点4帧显示效果
Fig.8 Display effect of a single pixel in four frames adopted sub-pixel jitter technology
其中黑色区域表示在该帧亚像素点状态为不亮。对红、绿、蓝像素在相邻的几帧中采用不同的抖动矩阵顺序进行处理,即可实现亚像素抖动的处理效果。如果对红、绿、蓝像素在相邻的几帧中采用相同的抖动矩阵顺序进行处理,则对于单一像素点,在相邻4帧中的显示效果如图9所示。
通过对比全像素抖动技术和亚像素抖动技术在单一像素点相邻4帧的显示效果可以看出,运用亚像素抖动技术处理的图像帧可以将全像素抖动处理时在一帧中一个像素点同时点亮的3个红、绿、蓝亚像素分布在相邻的不同帧中点亮。这样降低了一帧中由于灰度值增加而带来的亮度差异,减弱人眼的闪烁感,使人眼对灰度的变化感受更为均匀。同时在相邻的4帧图像中,相当于只有一个RGB像素点亮,所以表示的依然是0.25灰度级。
图9 采用全像素抖动技术单一像素点4帧显示效果
Fig.9 Display effect of a single pixel in four frames adopted full pixel jitter technology
3.3.2 技术相关应用
亚像素抖动技术的运用可以对LED帧间灰度增强法进行进一步的改进,提升人眼的视觉感受。如运用抖动技术实现如下2×2的小数灰度级:
(7)
实现的显示效果如图10所示。
图10 亚像素处理效果图1
Fig.10 Rendering 1 of subpixel treatment
图10实现的是2×2矩阵中4个小数灰度级相同的情况,如果小数灰度级不同(式8),实现的效果如图11所示。
(8)
图11 亚像素处理效果图2
Fig.11 Rendering 2 of subpixel treatment
采用以上的算法方案将原来的像素级调控变为亚像素级调控,进一步降低由于抖动给人眼带来的亮度差异,提高了人眼对LED显示屏的视觉舒适程度,提高LED显示屏的对比度。
另外,如果图像部分区域是单色像素或者只让单色像素的灰度值发生变化时,令单一像素值按照一种固定的抖动模板顺序进行处理即可。红、绿、蓝亚像素采用各自的抖动模板顺序进行处理,形成各种情况下的算法图形。
4 仿真结果与分析
为了验证算法的可行性与有效性,本文进行了一系列的实验。首先模拟0.25小数灰度级实现在LED显示屏上的情况。用画图软件得到一幅每一个像素点灰度值都为1的灰度图像,大小为640×480像素,LED显示屏模块显示其中的部分图像。用Matlab仿真软件对像素点灰度值都为1的灰度图像按照上述的算法进行处理,形成4帧图像。仿真测试平台如图12所示。
图12 仿真测试平台
Fig.12 Simulation test platform
用Matlab程序对用算法生成的4张图片在LED显示屏无限循环显示,在小间距COB LED显示屏上观察其显示效果。该程序可以模拟4帧图像无限交替循环显示的过程,在LED显示屏上可以观察到经过算法处理后的算法图像及其抖动效果。本文对使用2×2抖动矩阵处理像素级调控方案和亚像素级调控方案进行相关仿真,在观察其算法图形的同时,也用亮度计测量其亮度(图13),对结论进行验证。
图13 亮度测量过程
Fig.13 Process of luminance measurement
为保证亮度测量的准确程度,令灰度级1的图片在LED显示屏上显示为6级亮度。分别在灰度级为1级、灰度级1级开启像素级抖动、灰度级1级开启亚像素级抖动的3种情况下对LED显示屏亮度进行测量(表1)。
表1 亮度测试数据
Tab.1 Data of brightness test
通过亮度测试数据对比可以发现,开启全像素抖动时LED显示屏的亮度约为不开启抖动时亮度的25%,与预期结果基本相符,说明每一帧画面为0.25灰度级。当开启亚像素抖动时,亮度约为不开启抖动时的15%,比开启全像素抖动时相比亮度下降了近10%,说明亚像素抖动算法产生的显示画面亮度更低,使人眼对LED显示屏的闪烁感知不明显,提高了人眼观看显示屏时的舒适程度。相应地,如果将整数灰度级加到对应像素点的整数部分,即可实现相应的两整数间的“小数灰度级”。
经过灰度级相关亮度测试后运用该算法图像中低灰度级过渡较差的彩色图片进行了处理,处理前后的效果对比如图14所示。
图14 算法处理前(a)后(b)效果对比图
Fig.14 Comparison chart of the picture display effect of the screen before (a) and after (b) algorithm process
对比图14(a)和图14(b)可以看出,与算法处理前相比,图片在LED显示屏上的显示效果有明显提升。
5 结 论
本文针对小间距COB LED显示屏低灰度级过渡不均匀的情况,运用传统抖动算法中抖动矩阵概念,提出一种针对灰度级0~10的LED显示屏图像增强处理算法,并对像素级抖动和亚像素级抖动两种情况进行了仿真对比验证。实验结果证明:该算法对LED显示屏低灰度级过渡不均匀现象有明显的提升效果,在灰度级0~10的任意两个整数灰度级间插入3个可实现小数灰度级,将低灰阶精细程度提升为原来的4倍,同时将显示屏最小可控灰度级亮度变为原来的15%~25%,提升显示屏的对比度。采用亚像素抖动技术,降低了由于画面抖动给人眼带来的闪烁感,从而验证了算法的有效性。