1. 什么是显示屏的gamma曲线?
因为人眼光强变化是非线性的,所以我们需要找一个数学函数来描述这种非线性。我们直接看一个函数y=x^γ,当γ=2.2时,曲线如图1,这个指数函数中x的幂我们就称为γ(gamma)。
假设Yn代表第N灰阶的亮度, Y255 代码255灰阶的亮度,Y0代表0灰阶的亮度,Ln代表N灰阶的灰阶,L255 代表第255灰阶,则有(Yn-Y0)/(Y255-Y0)=(Ln/L255)^γ,令y=(Yn-Y0)/(Y255-Y0),x=Ln,其亮度归一化曲线如图2。
2. AMOLED 数字Gamma
先重申一下,LCD的Gamma 是在固定背光亮度下不同灰阶的亮度,讨论AMOLED的Gamma时也要先固定“背光亮度”。AMOLED 是自发光,发光的亮度是由EM duty和Gamma 同时来控制的,因此在说明Gamma时可以看成EM duty是固定的。AMOLED 一般是R、G、B 独立Gamma,通常采用10bit,即1023阶实际输出,当然做到12bit 对source 输出会更加精细。在1023阶中,通常IC会支持15~40个绑点,调试gamma的过程即是对这些邦点进行赋值,绑点和绑点之间IC 会自动线性插值,如图3。当然客户也可以自己选择绑点的个数,比如Novatek NT37700F IC 支持35个绑点,客户调试的时候觉得时间比较长,那可以选择15个绑点,其他绑点用自己计算的方式或是干脆不用,让IC 自动插值。
3. 亮度控制
前面讲到Gamma是在固定EM duty时调试的,下面再讲一下Gamma 和EM 的关系。在AMOLED中,用DBV来表示亮度控制,对应LCD定义中的背光亮度,一般用12bit,共4095阶。DBV被DBV_TH切分成多个区间,DBV_TH 是设置背光亮度的阈值,它表示当DBV 达到某一DBV_TH时,就调用该DBV_TH对应的Gamma,如图4。为了实现在低亮度时有好的灰阶过渡,AMOLED中会用多条Gamma来控制整个DBV。相邻DBV_TH 对应的Gamma间会进行线性插值,即每个DBV都会形成一条Gamma曲线,因而相邻DBV_TH间会形成一个Gamma 带。有了以上的概念,我们就可以设置每个DBV_TH的值及其Gamma亮度值。例如设置DBV_TH1=100,亮度为5nits,代表DBV=100时,最高灰阶(10bit 是1023)对应的亮度为5nits。
当DBV_TH及对应的gamma值全部设置好后,整个亮度曲线也就固定了,图5 为实际测试的线性亮度曲线。因DBV_TH对应的亮度可以任意设置,所以亮度曲线可以设置成任意想要的形状。