简图记录-GAMMA技术基础

简图记录总结

一、概念

      GAMMA概念:CRT显示器屏幕上产生亮度输出和输入电压信号不成正比存在失真,gamma最初就是用于描述显示器件亮度响应特性参数,调整gamma曲线就是针对输出输入曲线的调整。后来衍生到 在拍摄端、显示端对亮度或者归一化三基色进行非线性转化的过程。

      显示设备的GAMMA值:CRT显示曲线归一化处理后,亮度输出和电压输入接近y=x^2.2的曲线,这里我们称gamma=2.2,一般CRT设备gamma值都在2.2~2.5左右。对于LCD设备本身是没有类似的特性,但实际一般也会人为的校正到gamma为2.2左右(原因源于人眼的gamma特性)。

    简图记录-GAMMA技术基础

       人眼的gamma特性:人眼实际对亮度的感知也是非线性的,一般呈现指数关系。在低照度下,人眼更容易分辨出亮度变化,随着亮度的增加,反而不容易感知亮度变化,人眼感知亮度 和 实际光照强度输入 约呈现月y=x^0.4的曲线。(人眼在不同亮度环境下曲线都回有所变化,因此 对于电影/电视/电脑 不同环境,编码/解码 配合的gamma值都是有差异的)

      文件采集存储的gamma特性:基于人眼低亮度感知变化更敏感这一特性,在采集或存储阶段,为了更有效的保存信息,都回对数据进行非线性转化如存储值与输入亮度y=x^0.5,使用8bit非线性存储的内容还原后能接近11bit线性存储感官效果。

二、典型显示通路

      理解了基本的gamma概念后,我们不难看出gamma是一个端到端的通路特性。一个典型的显示通路如下:(1)内容制作采集设备,使用y=x^(1/2.2)曲线进行采集,然后将R'G'B'数据再CSC转化为YUV数据,便于编码/传输,节省文件大小和传输带宽。(2)显示传输设备,如视频盒子/电视端SOC处理部分,将YUV进过CSC转化为R'B'G',进行gamma曲线微调达到产品预期的色温白平衡等显示风格。(3)屏端显示设备,将R'B'G'按如曲线y=x^2.2进行显示。

三、GAMMA常见实现方案

      如当通路中为RGB10bit数据,那么GAMMA逻辑处理模块要做的就是通过查表将0~1023的分量输入映射到0~1023的输出,调整GAMMA曲线就是调整这张1024个数据的数据表,RGB可单独使用不同的数据查找表也可使用一张数据表节省空间。(实际的场景中,不同的源采集的曲线不同,输出使用的表也不同,应此一个显示系统往往存在各种gamma曲线在不同场景使用)

四、重点事项

      关于屏端Gamma校正:屏作为显示端,其GAMMA曲线非常重要,直接影响 亮度/对比度/噪声/颜色,调节好屏端gamma是一切调节图像效果的基础,一般情况下调整gamma的过程 为依次输入0~1024的灰阶,确认灰阶饱和丢失现象,通过调整gamma曲线最终达到gamma=2.2的要求。

      关于不同gamma值的影响:最理想的状态时显示系统所有的内容都使用一个gamma值采集制作,显示端俺统一的gamma显示,但实际无法保证,如本地码流/网络码流/图片/HDMI源 由于环境擦汗以,gamma编码值夜不同,解决方案是在不同的场景使用不同的gamma系数。但实际过程往往无法做到完全匹配,如在播放视频过程调出菜单,GPU绘制的菜单往往是完全线性的RGB,应此在2.2gamma显示过程会有轻微偏色。

      关于线性与非线性算法处理gamma影响:从整个视频通路来看,过程图象都是处理非线性数据。如果某个算法必须要在线性领域处理(如需要做周边数据参考,而且必须要是线性参考系),那么在做数据处理前必须要有degamma的过程,将数据变为线性数据,然后处理完成后再重新进行gamma还原。

简图记录-GAMMA技术基础