Tone mapping curve(色调映射曲线)与gamma 曲线的区别与联系

在tuning高通平台的时候,高通架构中有TMC,还有LTM/GTM等模块对TMC调整,最后还有gamma调整。刚开始不理解TMC与gamma的区别,浏览学习了很多博客内容和帖子,终于搞清楚了二者的区别。我理解在高通的pipline设计中,TMC模块应该是图像领域中的gamma作用,即动态范围的压缩,将人眼的动态范围10^5压缩到2^8电脑能显示的范围。色调映射的实质是信息压缩过程,需要将HDR图像的色度,亮度,动态范围等,全部映射到LDR图像的标准范围内。在这个过程中,不能简单使用线性映射,因为这样会丢失原始图像的一些重要信息,例如全局与局部的对比度和重要的细节等,最重要的一点是,简单线性映射产生的图像相比于自然界中的场景,会出现严重的失真情况。在进行了tone mapping之后,为了针对人对自然亮度的非线性感知以及显示器de-gamma特性,我们会进行gamma校正,此时用到gamma模块最终输出对应颜色到显示器。

所以在高通的pipleine设计中首先使用色调映射模块即TMC将信息压缩到255以内进行其他的处理,比如黑电平校正、坏点去除、噪声处理等,其中也包括全局和局部的色调映射调整,最后将处理完的图像再再gamma模块进行反变换最终输出在显示器上。

参考博客:转载之色调映射_U_far的博客-CSDN博客_global tone mapping

还有一种关于tone mapping curve和gamma curve的区别的说法,Tone Mapping和Gamma Correction二者都是为了更好的在LDR设备上显示图片, 将图片的颜色值从一个范围分布变换到另一个范围分布。 而不同的是,Tone Mapping是根据相应的算法将颜色值从一个大的范围映射到了较小的范围, 而Gamma Correction则是从[0,1]映射到[0,1], 映射范围并没有改变,只是改变了不同亮度值颜色的分布情况。

参考博客:Tone Mapping(色调映射) (moontree.github.io)

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高通LSC补偿算法是一种图像处理算法,用于消除手机相机镜头可能引起的光照不均匀问题,以改善图像质量。以下是一个简单的C++实现: ``` // 声明LSC补偿函数 void LSC_compensation(unsigned char *src, unsigned char *dst, int width, int height, float *gain_map); void LSC_compensation(unsigned char *src, unsigned char *dst, int width, int height, float *gain_map) { // 设置常量 const float a = 0.5; const float b = 0.5; // 循环遍历像素 for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { // 获取当前像素的RGB值 float r = (float)src[(y * width + x) * 3 + 0]; float g = (float)src[(y * width + x) * 3 + 1]; float b = (float)src[(y * width + x) * 3 + 2]; // 计算当前像素的增益 float gain = gain_map[y * width + x]; // 应用增益进行补偿 r = r * gain; g = g * gain; b = b * gain; // 进行gamma校正 r = pow(r, a); g = pow(g, a); b = pow(b, a); // 进行颜色平衡 float sum = r + g + b; r = r / sum; g = g / sum; b = b / sum; // 进行颜色平移 r = r + b; g = g + b; // 将结果保存到目标像素 dst[(y * width + x) * 3 + 0] = (unsigned char)(r * 255); dst[(y * width + x) * 3 + 1] = (unsigned char)(g * 255); dst[(y * width + x) * 3 + 2] = (unsigned char)(b * 255); } } } ``` 这段代码实现了高通LSC补偿算法的主要步骤,包括计算增益、应用增益进行补偿、进行gamma校正、进行颜色平衡和颜色平移等操作。需要注意的是,在实际应用中,需要根据具体的场景和需求调整算法参数,以获得更好的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值