关于视频播放中的gamma
我们在做视频播放器过程中经常会看到有的播放器有gamma调整,通过gamma调整也能明显觉察到视频图像颜色亮度等变化,但gamma对普通用户太专业难懂,即时对开发人员来说gamma也是云山雾罩,gamma到底是什么,我们在编程的时候到底需不要考虑gamma调整,我们通过本篇文章循序渐进的走入gamma,基本上理解它。在需要调整的时候有理论依据。
gamma是什么,产生的缘由
两大理由产生了gamma:
1)为了数据压缩
2)光电转换特性
1)数据压缩效率:
人眼对亮度敏感度不同,如果线性压缩在高亮度区,占用太多空间,而人眼对高亮度区间不敏感。
我们用有限的数字描述无限连续的模拟世界,就是数字采样,我们知道在现实世界中亮度从黑到白,我们用2bit来采样,那只有黑/灰/白,三种结果,如果用8bit,就有256个数字来描述变化,看到变化非常平滑,如果10bit/1024个数字描述将更平滑:
如果以固定步长均匀采样我们称之为线性采样,例如亮度从0——1023,我们用10bit去描述这个亮度,步进1采样,经过ADDA后肉眼看起来变化比较自然和平滑,但如果我们用8bit采样,步进为4,我们就会发现在黑色区间的时候,人眼能够看到亮度有突变(banding),在高亮度区间比较平滑。这样的结果和人的感知不符合,我们能感知变化的应该增加更多的采样来区分亮度,高亮度区间减少采样,人眼也觉察不出区别。通俗点,