基于FPGA 的液晶显示屏的伽马校正研究

2015-12-10 13:02蒋明敏喻金华蒋玲
电脑知识与技术 2015年26期

蒋明敏 喻金华 蒋玲

摘要:LCD的亮度响应特性与CRT不同,而人的视觉对于亮度灵敏特性几乎和CRT的输出特性相反,为达到符合人眼视觉特性的特性曲线,需要对LCD进行伽马校正。该课题介绍了LCD伽马特性,研究了伽马校正公式,采用Xilinx公司的Kintex-7 FPGA开发板为平台,提出了一种基于FPGA的LCD显示屏的伽马校正系统来补偿液晶本身的S形透过率特性曲线。通过该系统,明显改善了LCD的色彩显示,减小了色彩误差,并且可用于显示屏色彩的批量校正。

关键词:LCD;伽马校正;FPGA

中图法分类号:TP302 文献标识码:A 文章编号:1009-3044(2015)26-0189-04

Study of Gamma Correction for Liquid Crystal Display

JIANG Ming-min1, YU Jin-hua2,JIANG Ling3

(1.School of Information and Science Technology, Nanjing Forestry University, Jintan 213200, China;2. Nanjing SWIT Electronics Co., Ltd, Nanjing 210038, China)

Abstract: LCD and CRT luminance response characteristics are different. The human visual sensitivity characteristic for the luminance contrast to CRT output characteristics. To achieve the characteristic curve of human visual characteristic, we need gamma correction for LCD. This paper describes the characteristics of the LCD gamma, studies gamma correction formula by using Xilinxs Kintex-7 FPGA development board as a platform. This paper puts forward a LCD display gamma correction system based on FPGA to compensate for a transmittance characteristic S-shaped curve. This system significantly improves LCD color display, reduces errors of color, and can be used for the color correction batch of the display.

Key words: LCD; Gamma correction; FPGA

阴极射线管 (Cathode-Ray Tube, CRT)可视角度非常宽广,而且可以产生的颜色比同等尺寸的液晶显示器(Liquid Crystal Display,LCD)要丰富。但CRT的不足之处在,CRT辐射大,LCD相对而言小得多;由于CRT是显像管发光,所以无论刷新频率多高都会产生产生闪烁,从而导致人眼的疲劳。随着显示技术的发展,液晶显示器以其独具的低压、低功耗特性在人们的生产生活中得到广泛的普及和应用。

为了正确的显示灰阶,人眼要求显示器的gamma是2.2上下,而巧合的是,老式的CRT显示器刚好自带一个2.35-2.55左右的物理gamma,已经非常接近2.2了。所以当一个被提亮过的图片输入到一个完全没有经过调校的CRT显示器里的时候,经过抵消,我们看上去,图片只是稍微有点暗,稍微一补偿,给一个0.85左右的提亮gamma,画面看起来就对了。

经过模拟用户使用环境,测试,最终把显示器调到一个看起来舒服的值,最终试验出来是2.2,据此,微软和惠普于1996年发布了sRGB标准,规定了8位图片的标准是gamma=2.2,从此,本来百花齐放的显示器和摄像机的gamma就都沿用了2.2。

由于液晶透过率与液晶上所加电压的特性关系是非线性的,大致呈S形,并且人类视觉系统对于亮度的感觉大致成对数关系,而物理输出设备(例如CRT和LCD)对亮度的显示也是非线性的,显示器的亮度值大约与输入的模拟信号电压的γ次方成正比。CRT或LCD显示器的伽马值一般为2.2~2.5。

gamma的定义“用来描述显示设备非线性程度的专有名词”,和电压及光强度没有关系。Gamma校正是为了克服这些非线性关系而引入的一种传输函数。传统的色彩校正方法采用单片机和PC校正软件,但使用的设备多,调整时间较慢,很难适应越来越快的视频处理速度,很难达到实时校正和批量校正的作用。本文建立了一种基于FPGA的LCD伽马校正系统,可用于提高显示屏的性能以及生产效率,具有很大的灵活性和实用性。

1 LCD的伽马响应特性

Gamma是用来表示显示器亮度响应特性的一个参数,亮度响应特性用曲线来表示近似一条指数曲线,如图1所示。

图1 显示器亮度响应曲线

在图1中,水平方向表示灰阶,垂直方向表示显示的亮度。通常对输入输出进行归一化处理,得到如图2所示的曲线。

图2 归一化的亮度响应曲线和指数函数y=x^2.2曲线

可以看出该响应曲线与y=x2.2的曲线非常接近,因此,显示屏的亮度响应曲线可以用指数函数表示为:

[Y=Xγ] (1)

其中,Y表示归一化的显示的亮度,X表示归一化的输入灰阶,γ即为Gamma校正系数。

传统的CRT显示器的Gamma值是2.2,这样的显示特性符合人眼的视觉特性。如果Gamma偏大,则图像会整体偏暗,暗场中的细节容易丢失;如果Gamma偏小,则图像整体偏亮,图像会变得朦胧而缺乏层次感。

计算机在内部处理的时候,是首先把8位/通道图像的255白映射到1,把色阶面板中的input gamma换算成倒数数值来计算的,input gamma输入2.2,实际参与计算的是1/2.2≈0.454.那么此时区间换算成0-1,gamma也自然是小于1提亮,大于1压暗。

由于LCD的发光原理与CRT不同,其亮度响应特性也不同,典型的LCD响应特性曲线是一条S形的曲线,具有较高的Gamma值,如图3所示。

图3 LCD响应特性曲线

一般的液晶显示设备都模仿CRT的亮度响应特性,使输出的光照强度与输入电信号的强度成指数关系。为达到接近CRT特性的亮度响应曲线,必须对LCD进行Gamma校正。

2 LCD伽马校正

2.1 Gamma校正系统

本文提出了一种基于FPGA的LCD显示屏的Gamma校正系统,该校正系统由信号发生器、液晶显示屏、色彩分析仪、PC和Xilinx公司提供的Kintex-7 FPGA开发板组成。如图4所示。

图4 Gamma校正系统

由信号发生器Leader LT450发出标准灰阶测试信号给9寸液晶显示屏进行显示,采用柯尼卡美能达色彩分析仪CA-310测量显示屏的亮度数据并传输给PC,PC运用公式生成Gamma校正表通过SPI通信将查找表(Look-Up Table,LUT)写入FLASH,并且驱动显示屏显示校正后正确的亮度。显示屏重新开启或再次显示影像时,PC通过控制芯片读取LUT加载校正后的Gamma数据,从而实现该显示器的Gamma校正功能。

2.2 Gamma的校正原理

伽马校正基于校正公式,不过在具体的实现方式上和最终的实现效果有所差异。目前常用的校正方式有直接公式计算法、分段线性拟合法、查找表法等。

公式计算法直接将每一个需要校正的像素值带入校正公式,通常经过三个步骤来实现:第一,将待校正像素值进行归一化处理,使其为范围在0~1之间的实数;第二根据校正的公式代入求解;第三反归一化,就是第一步操作的逆运算。使用该方法的优点是能够得到显示屏单个像素的实时伽马校正值;缺点也是显而易见的:运算过程十分复杂,需要对每一个像素点进行检测和校正,实现难度大,效率低,且涉及浮点数的乘法运算并不适合FPGA实现。

分段曲线拟合法将伽马曲线分段进行拟合,段数的划分看实际的需要,可以等分也可以按照曲线的特征划分,这样可以比较好的拟合伽马曲线。该方法降低了公式计算的难度和复杂度,另一方面也带来了校正精度降低的弊端,也不易于硬件实现。

查找表法是基于RAM的方法,将输入输出的对应关系固化在一个静态的表中方便直接读取。上面的直接公式法和曲线拟合法实质上都是经过归一化、预补偿、反归一化三个步骤来达到校正的目的,但是实际上对整幅图像的校正不是对单个像素的简单重复处理。对于确定取值范围内的像素点,图像中任何一个像素点必然是在某一个确定范围内某一个确定的整数,在已知伽马值的条件下,进行公式处理后的值也是确定的,所以我们只需要为这个范围内的每一个整数进行一次校正,并且将校正后的值写入预先建立的查找表中,从而利用读取该查找表对任意输入的图像进行伽马校正。该方法实现速度快,无需计算直接得到结果;唯一的不足是会占用一定的存储空间,尤其是当图像的取值范围较大时。

对于一个8位/通道的图像,即红、绿、蓝三通道均包含了256个伽马数据,如果采用手动调整是十分耗时耗力且难以实现的。综合以上方法的实现效果和性能,结合本课题方案的具体实施,最后采用查找表的方法来实现本文的伽马校正功能。

Gamma的校正原理,就是利用RGB映射表,即Gamma LUT,将输入的数据进行逐点变换,使得在LCD上呈现的亮度响应曲线符合给定的指数曲线。通过LUT的数据转换,可以补偿LCD的Gamma非线性响应。

为适应用户在不同的工作环境下不同的观看爱好,通常设定多个γ值,制作多个LUT,由用户自行选择。

当γ增大,画面对比度提高,层次清晰的同时,将会降低对比度的级数,降低视频信号显示的能力。对输出信号取整会引起亮度信息的丢失,因此通常在一定范围内提高查找表的输出位数,使得在输入级数不变的情况下,随着输入值的增加,可以获得更佳的色彩表现能力,减小误差,增强显示效果。

具体实现过程如下:

首先运用公式

(2)

和EXCEL表格分别计算三组不同伽马值(2.2,2.4,2.6)所对应的不同灰阶的亮度输出值。其中,

X:8位R/G/B输入信号灰阶(Gray Level)值,范围0~255;

Y:校正后的R/ G/B输出信号亮度(Luminance);

γ:灰度校正系数,即伽马值;

Round:对校正结果取整。

然后将三组输出值转换为二进制数,三组不同的伽马值对应的伽马校正值分别存放在地址0~255,256~511,512~767中,如下所示:

Sample Single Port Gamma Coefficients

Gamma set to 1.00, 1.09, 1.18 for 2.2/2.4/2.6

Address to access different gamma values in the LUT are generated by adding the offset values

the LUTs are arranged as shown redgreendualport (values from this LUT will be used for red and green data)

--------

| 0|

| | gamma corrected values for value 2.2

| 255 |

|------|

| 256 |

| | gamma corrected values for value 2.4

| 511 |

|------|

| 512 |

| | gamma corrected values for value 2.6

| 767 |

|------|

其中,Gamma set to 1.00, 1.09, 1.18 for 2.2/2.4/2.6,由于人的视觉对于亮度灵敏特性(gamma大约为1/2.2)几乎和CRT的输出特性相反,所以只要保证设备输出的亮度和电压特性,保持gamma=2.2、2.4、2.6。

(3)

最终的人眼看到的结果是亮度随着电压/灰阶线性变化的。

然后,将转换后的二进制数编辑成.txt格式的查表文件,文件内容如下:

memory_initialization_radix=2;

memory_initialization_vector=

0000000000,

0000000100,

0000001000,

0000001100,

1111110010,

1111110101,

1111111001,

1111111100;

最后,将.txt文件的后缀名改为.coe文件,加载到IP核中,得到最终的查找表。

实际上,LUT就是三组可编程的SRAM,按照输入的R/G/B值寻址,得到对应的10/12bit的R/G/B,然后经过图像抖动(Dither)处理,转换成LCD显示需要的bit数,如图5所示。

图5 Gamma LUT和图像抖动框图

3 结束语

1)显示屏采用上述系统进行Gamma 校正后,用色彩分析仪CA-310来检测校正后的结果,R、G、B三通道光强误差范围基本在±1%以内。造成误差的原因是测量误差和查找表误差。

2)Gamma校正是液晶显示的一个必不可少的环节,它影响着显示屏最终显示的图像质量。

3)在批量生产过程中,对于同一型号同一批次的显示屏,只对其中一个显示屏进行伽马校正,然后将经校正后的伽马表编译生成固件程序,将所有的显示器都烧写这一个程序,提高处理效率且操作方便快捷,能保证每台显示器最后显示出来的色彩正确。

4)本文介绍了一种基于FPGA的LCD显示屏的伽马校正系统,通过该系统,明显改善了LCD的色彩显示,减小了色彩误差,成本低,效率高,可用于显示屏色彩的批量校正,在生产中具有很强的实用性。

参考文献:

[1] 魏永毅, 李海峰, 刘旭. 液晶投影机自动Gamma校正系统[J]. 浙江大学学报:工学版, 2005, 39(11), 27-29.

[2] 赵建森, 视频通信中的伽玛校正[J]. 电子科技,2006(7): 43-50.

[3] Martin Kykta, 代永平. 高清显示中的伽马校正、亮度和明视度探索[J]. 现代显示,2009(12): 13-18.

[4] 马晓阳. LCD的γ校正研究[J].电子科技,2009, 22(12): 78-80.

[5] 姜亨润. TFT LCD伽玛曲线设计与调校之研究[Z]. 台湾, 1996.

[6] 何德文. 一种LCD监视器批量GAMMA校正方法与系统[P]. 中国, 201310206824. X, 2013(05): 29.

[7] 吕秋珍. 一款基于液晶电视GAMMA校正及色温自动调整系统——GAMMA曲线对光色显示特性的影响[J]. 职业, 2011(3): 183-184.

[8] 衡杰. 基于FPGA的工业相机图像处理系统设计[D].苏州:苏州大学, 2013.

[9] 李熹霖. 全彩色LED大屏的亮度非线性修正[J]. 现代显示, 2005(1): 30.

[10] 万睿. LED全彩大屏幕关键技术的应用研究[D]. 重庆: 重庆大学,2008.

[11] David Katz, Rick Gentile. 嵌入式视频处理基本原理[EB/OL]. http://wenku.baidu.com/link?url=DEaRFyVIAH4kZ7TolplfFhFhmAk3gFaNSOH7XPzfTnCWY4CBfCAKSoCuY_yinRE4XdOxlIlQnLjxVi3o5PWYq1H0CyDn6b6wUjRFaDwQFT7 .

[12] Digital Display Panel IP Reference Design Using LVDS or DVI——Reference for Spartan-3E Display Development Kit HW-SPAR3E-DISP-DK-UNI-G[EB/OL].( 2007-04-19). http://www.xilinx.com.

[13] LogiCORE IP Gamma Correction v7.0——Product Guide for Vivado Design Suite[EB/OL]. (2013-03-20). http://www.xilinx.com.

[14] Gamma Correction v1.0[EB/OL].(2009-04-24) . http://www.xilinx.com.

[15] LogiCORE IP AXI Quad Serial Peripheral Interface (AXI Quad SPI) v2.00a[EB/OL].( 2012-12-18). http://www.xilinx.com.

[16] Arthur Yang. Using SPI Flash with 7 Series FPGAs[EB/OL].(2013-02-01). http://www.xilinx.com.

[17] Arthur Khu. 用 SPI Flash 存储器配置 Spartan-3E FPGA[EB/OL] .(2007-09-17). http://www.xilinx.com.