【Gamma-工作原理及设计】

Gamma简介

什么是Gamma? 以前在CRT和早期LCD监视器中的Gamma与电压直接相关,是
在显示器上准确再现图像的重要因素。在当前的LCD监视器中,Gamma可以被认为
是在观看显示器时,捕获的数据的亮度(输入)与如何影响人眼对颜色(输出)的总
体感知之间的关系的调节器。 从技术意义上讲,它是通过像素值中的颜色阴影平衡
来校正图像颜色的亮度。像素的值介于0(黑色)到255(白色)之间,其间具有不同
的灰度。我们的正常视觉(不是过暗或非常明亮的条件)对暗色调的变化更敏感,并
且由于图像的捕捉过程,颜色可能被误传,由于我们从原始图像被捕获时感知亮度和
亮度的方式不同。我们的眼睛以不成比例的方式捕捉亮度,例如,如果相机在极亮的
环境中拍摄图像,我们的眼睛会感觉到光线只是亮度的一小部分。如果图像在没有伽
马校正的情况下被处理并显示在桌面上,则用户将其视为褪色或太亮。
归一化后我们通常可以用一个简单的函数表达:Output=Input^Gamma。
Gamma 就是指数函数中的幂。

图1中蓝色的线是自然界光强的变化,相应的红色的曲线是人眼接收到的光强的变化,为了使
得人眼接收到线性光强变化,需要做gamma补偿
图2是gamma矫正之后的效果
人眼gamma原因?增加低灰亮度,减少高灰亮度

在这里插入图片描述
在这里插入图片描述

5组常用的gamma曲线

Gamma 1.8:

以往是Mac电脑的标准,此设置增强了较暗色
调之间的色彩渐变,不仅使较暗的场景更清晰,而且还增加了
整体色调亮度。此设置非常适合观看电影,电视或场景或图片
太暗的情况
作用:可以增加整体色调亮度,使较暗的场景更清晰。
应用:比较非常适合观看电影,电视或场景或图片太暗的情况。

Gamma 2.0:

作为另一种选择,这种Gamma设置可以提供
平衡,同时仍然提供增强的暗色调增强,不仅增强了较暗场景
中的细节,而且还增强了柔和

Gamma 2.2:

1996年微软与惠普在特定光照下通过人眼对显示器的感受测试中得出2.2是一个较为适合的值,定下了这个标准;Gamma 2.2是目前设置的标准,用于平衡真实颜色与显示器,可以产生逼真的色彩。目,前设置的标准,用于平衡真实颜色与显示
器。此设置是完全支持Windows和Mac,由于真彩色输出而采
用,可以产生逼真的色彩

Gamma 2.4:作为一个额外选择,此Gamma设置用于增强

作用:增强略微过亮的场景中的细节,提供增强的对比度,并提高鲜艳色彩的可视性。
应用:适合高清电视制作,以及Rec.709(高清电视的国际标准)色彩空间。

Gamma 2.6:此Gamma设置用于突出显示图像和视频中明

亮的色调对比度,其中较亮色调的差异难以察觉。这些不同的
设置允许用户灵活选择,根据情况选择哪种设置是理想的。
DCI(数字电影倡议)和电影制作的伽玛标准,这种设置为用
户制作电影和电影提供了最真实的色彩。
作用:用于突出显示图像和视频中明亮的色调对比度,其中较亮色调的差异难以察觉。
应用:电影制作。
在这里插入图片描述

Gamma矫正的原理

Gamma调节与校正

Gamma校正(Gamma correction) 又叫Gamma非线性化(gamma nonlinearity)、Gamma编码(gamma encoding),是用来针对影片或是影像系统里对于光线的辉度(luminance)或是三色刺激值(tristimulus values)所进行非线性的运算或反运算。

TFT-LCD Gamma调节的主要原因:

①利用人眼对亮度的本能响应;
②历史上所有的视频信号都经过CRT伽马校正;
③统一不同液晶材料、不同厂家生产的TFT-LCD可视效果。
注:为什么显示器要Gamma校正呢?因为人眼对亮度的感知和物理功率不成正比,而是幂函数的关系,这个函数的指数通常为2.2,称为Gamma值。
解释:TFT-LCD固有的失真将使画面中间灰阶偏暗,如果输入的是彩色画面信号,这种失真会导致显示的画面偏暗以外也会使画面的色调发生偏移,经过伽马校正后可以有效地消除这些失真。

假设图像中有一个像素,值是200,那么对这个像素进行校正必须执行如下步骤。

1.归一化:

将像素值转换为 0~1 之间的实数。 算法如下: ( i + 0. 5)/256 这里包含1个除法和1个加法操作。对于像素 A 而言 ,其对应的归一化值为 0. 783203。

2.预补偿:

根据公式 ,求出像素归一化后的 数据以 1/gamma 为指数的对应值。这一步包含一个 求指数运算。若 gamma 值为 2. 2 , 则 1/gamma 为 0. 454545 ,对归一化后的 A 值进行预补偿的结果就是 0. 783203^0. 454545 = 0. 894872。

3.反归一化:

将经过预补偿的实数值反变换为 0 ~ 255 之间的整数值。具体算法为: f256 - 0. 5 此步骤包含一个乘法和一个减法运算。续前 例 ,将 A 的预补偿结果 0. 894872 代入上式 ,得到 A 预补偿后对应的像素值为 228 ,这个 228 就是最后送 入显示器的数据。
如上所述如果直接按公式编程的话,假设图像的分辨率为800
600,对它进行gamma校正,需要执行48万个浮点数乘法、除法和指数运算。效率太低,根本达不到实时的效果。
针对上述情况,提出了一种快速算法,如果能够确知图像的像素取值范围 ,例如 , 0~255之间的整数 ,则图像中任何一个像素值只能 是 0 到 255 这 256 个整数中的某一个;在 gamma值 已知的情况下 ,0~255 之间的任一整数 ,经过“归一 化、预补偿、反归一化”操作后,所对应的结果是唯一的 ,并且也落在 0~255 这个范围内。如前例 ,已知 gamma 值为 2. 2 ,像素 A 的原始值是 200 ,就可求得 经 gamma 校正后 A 对应的预补偿值为 228。基于上述原理 ,我们只需为 0~255 之间的每个整数执行一次预补偿操作 ,将其对应的预补偿值存入一个预先建立的 gamma 校正查找表(LUT:Look Up Table) ,就可以使用该表对任何像素值在 0~255 之 间的图像进行 gamma 校正。

驱动方式

交流驱动的应用,由于液晶分子如果一直在固定的电压下不变的话,液晶分子的特性会发生极化(固化),取消这个固定电压后,液晶分子就不再响应外加电压的变化。为了避免这种情况的发生,采用交流电压驱动的方式,然而液晶分子并不会随着交流电压不断地转动,而是交流驱动改变了液晶分子的电学偶极矩的方向。
由于交流驱动会出现闪烁问题,通常在TFT-LCD中,采用空间融合法来消除闪烁成分,让相邻的像素保持相反的驱动极性,使相邻像素的光学响应波形存在180°的相位差,这就要求相邻像素的驱动电压保持极性相反。能偶实现相邻像素的极性翻转的几种方式:点反转、行反转、列反转、列2点反转、行2点反转。
在这里插入图片描述
点反转驱动方式在闪烁的空间融合上做的最细腻,细化到每个子像素,具有最佳的闪烁抑制效果,功耗最大。列反转所有列上子像素闪烁波形之间没有相位差,很容易出现纵向的线闪烁,属于低频率反转,功耗最低。行反转所有子行上像素闪烁波形之间没有相位差,很容易出现横向的线闪烁,功耗与点反转一样大

白平衡

三基色(RGB):⑴自然界中的绝大部分彩色,都可以由三种基色按一定比例混合得到;反
之,任意一种彩色均可被分解为三种基色。 ⑵作为基色的三种彩色,要相互独立,即其中任何
一种基色都不能由另外两种基色混合来产生。 ⑶由三基色混合而得到的彩色光的亮度等于参与
混合的各基色的亮度之和。 ⑷三基色的比例决定了混合色的色调和色饱和度。
白平衡:亮度信号(Y)由红、绿、蓝基色信号组成的比例关系为:Y=0.30R+0.59G+0.11B。
当红、绿、蓝三基色保持0.30、0.59、0.11的比例时,Y信号为标准白光。

LCD电压gamma曲线

LCD屏的亮度gamma曲线对应的电压gamma曲线如下图所示
调整电压曲线是的LCD屏输出的亮度曲线拟合预期gamma曲线
正负gamma,VCOM调整(flick)
在这里插入图片描述

电压gamma曲线设计

分段线性
绑点选择
调整精度
3gamma
LED/OLED 3gamma
在这里插入图片描述

  • 16
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
局部有源忆阻二阶周期电路可以使用Matlab进行仿真,以下是一个简单的实例: ```matlab % 定义电路参数 R1 = 1e3; % 电阻1 R2 = 2e3; % 电阻2 C1 = 1e-6; % 电容1 C2 = 0.5e-6; % 电容2 alpha = 0.99; % 增益因子 beta = 0.5; % 非线性因子 gamma = 0.5; % 忆阻器系数 % 定义初始电压和电荷 v1 = 0; v2 = 0; q1 = 0; q2 = 0; % 定义仿真时间和时间步长 t = 0:0.01e-3:1e-3; dt = t(2) - t(1); % 计算输出电压 vout = zeros(size(t)); for i = 1:length(t) % 计算电容电压 vC1 = q1 / C1; vC2 = q2 / C2; % 计算忆阻器电阻 Rm = R2 + gamma * q2; % 计算电流和电压 iin = (v1 - alpha * v2) / R1; iRm = beta * iin + (vC1 - vC2) / Rm; vout(i) = iRm * R2; % 更新电荷 q1 = q1 + iin * dt; q2 = q2 + iRm * dt; % 更新电压 v1 = vC1 + alpha * vout(i); v2 = vC2 + vout(i); end % 绘制输出电压随时间的变化图像 plot(t, vout); xlabel('Time (s)'); ylabel('Output Voltage (V)'); title('Simulation of Local Active Memristor Circuit'); ``` 在上述代码中,我们首先定义了局部有源忆阻二阶周期电路的参数,包括电阻、电容、增益因子、非线性因子和忆阻器系数。然后,我们定义了初始电压和电荷,并进行了仿真时间和时间步长的定义。接下来,我们使用一个循环计算电路的输出电压,并更新电荷和电压的值。最后,我们使用Matlab的绘图功能绘制了输出电压随时间的变化图像。 需要注意的是,上述代码仅仅是一个简单的示例,实际的局部有源忆阻二阶周期电路可能会更加复杂,需要根据具体情况进行参数和模型的选择,并进行更加详细的仿真计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值