浅析硬件构造Tone mapping曲线
tone mapping曲线的本质是一个亮度映射函数,即横坐标(X 轴)是输入亮度,纵坐 标(Y 轴)是输出亮度。其作用是将输入图像的亮度映射到一个更窄的亮度范围,从而实现动态范围的压缩。
Tone mapping中的对数函数曲线性质,主要取决于输入数据范围大小。如果输入数据相对于[0,65535]的输入数据范围比较小,比如8bit的输入数据,其对数函数的曲线将没有那么陡峭,输出较小的数值Yg,对高亮部分的压缩也比较小; 相反对于16bit输入数据其暗区曲线较陡峭,高亮部分压缩较大。
如上图亮度映射曲线所示。Drc 根据tone mapping算法原理,硬件使用查找表的形式开放出相应的可调接口给到用户进行不同类型的tone mapping 亮度映射函数的设置,实现不同的DRC效果。DRC算法中还需要需要考虑到颜色还原、halo atrifact、noise suppression.的处理,以及tone mapping 处理之后的对比度增强处理,才能实现比较好的DRC效果。
线性压缩和tone mapping压缩图像对比:
左侧是Tone mapping效果图,右侧是线性压缩之后的效果图。可以看出,经过线性压缩之后的效果,要么高亮的部分完全过曝,较暗的部分完全看不清图像信息。
选取要硬件实现的tone mapping算法时,需要兼顾色调映射的效果和算法复杂度。虽然专用硬件运算速度很快,但硬件运算的灵活性远不及软件运算。全局色调映射算法本质上是一条单增的映射曲线,硬件实现相对简单。但由于不同相邻照度值的像素点会映射至同一灰度值,局部对比度很低,画质下降十分明显,且单一的曲线很难适应各种场景。局部色调映射效果好,但算法复杂度较高,有些算法算法硬件化成本很高,有些算法甚至无法实现硬件化。所以有些DRC算法先是进行全局tone mapping,之后再进行局部对比度增强。
tone mapping的曲线为非线性函数,一般来说,非线性函数的硬件实现方法有:用以下方法拟合tone mapping的压缩函数 比如log函数
- 进行泰勒级数展开,提取级数的前几个乘加项进行 Verilog 描述;
- 查找表法,权衡查找精度和硬件资源遍历变量的范围;
- 折线拟合法,通过将非线性函数进行分段表示,然后用一次函数对每段折线进行描述;
- 多次函数拟合法,这种方法是级数展开法和折线拟合法的折衷,即用二次或者三次函数去拟合分段的非线性函数;
- 坐标旋转数值计算方法(CORDIC, Coordinate Rotation Digital Computer),通过基本的移位与加法运算代替乘法运算,通过迭代的方式计算三角函数、开方、反三角、指数等运算。
实际实现的时候,大多数采用分段折线拟合的方式构建tone mapping算法所需要的曲线。
浅析硬件构造Tone mapping曲线相关推荐
- 图像处理中的Tone Mapping初步学习
转自KlayGE游戏引擎 Reinhard 早期的普遍做法是一篇叫做Photographic Tone Reproduction for Digital Images的论文,大家就用作者的名字称它为R ...
- Tone Mapping中luma滤波(降噪)对噪声放大的定性分析
Tone Mapping中luma滤波对噪声放大的定性分析 在tone mapping过程中,通常经过统计之后得到一条mapping曲线,记这条曲线为f(x)f(x)f(x),mapping过程中,对 ...
- Tone mapping curve(色调映射曲线)与gamma 曲线的区别与联系
在tuning高通平台的时候,高通架构中有TMC,还有LTM/GTM等模块对TMC调整,最后还有gamma调整.刚开始不理解TMC与gamma的区别,浏览学习了很多博客内容和帖子,终于搞清楚了二者的区 ...
- Real-time noise-aware tone mapping阅读笔记
<Real-time noise-aware tone mapping> G Eilertsen, RK Mantiuk, J Unger - ACM Transactions on Gr ...
- 【图像处理】一种低光照图像的亮度提升方法(Adaptive Local Tone Mapping Based on Retinex for High Dynamic Range Images)
[fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处] 前言 在实际的拍照过程中,常常会遇到,光线不足的情况.这时候单反用户一般会调大感光度, ...
- A Hybrid ℓ1-ℓ0 Layer Decomposition Model for Tone Mapping
Abstract 色调映射旨在从保留视觉信息的高动态范围图像中再现标准动态范围图像.最先进的色调映射算法大多将图像分解为基础层和细节层,并进行相应的处理.由于缺乏施加在两层上的适当先验,这些方法可能存 ...
- 局部色调映射(Local Tone Mapping)
重建视觉外观是色调映射的终极目标.色调映射算法在降低高动态图像(HDR)范围的同时着力保护捕捉到的原始图像的外观.色调映射算子分两种策略,一种是全局的,另一种是局部的. 1. 全局映射算子 每一个像素 ...
- 浅析硬件“好声音”:喇叭技术指标及选型指南
本篇阐述喇叭技术指标及选型指南,在进入文章之前,推荐阅读: <浅析硬件"好声音": 声学器件 <浅析硬件"好声音":麦克风技术指标及选型指南> ...
- 浅析硬件“好声音”:麦克风技术指标及选型指南
如今大多数IoT类设备都具有语音唤醒和声控的功能,如天猫精灵.百度音箱等. 这类设备中都集成了麦克风和喇叭等电声器件,其中麦克风用于识别用户的声音,喇叭用于播放设备对用户指令的反应.麦克风的性能是影响 ...
- Inverse Tone Mapping
逆色调映射方法(inverse Tone Mapping Operator, iTMO或reverse Tone Mapping Operator, rTMO) SDR转化HDR过程的算法称为扩展算子 ...
最新文章
- OpenStack 实现技术分解 (5) 应用开发 — 使用 OpenStackClients 进行二次开发
- leetcode17 电话号码的字母组合
- mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 public: __cdecl about::about(class QWidget *) (??0abo
- 最长不下降子序列问题
- android 自动更新 服务端,搭建android版本更新服务器使用android系统自带的DownloadManager下载文件...
- LeetCode 1748. 唯一元素的和
- _Default同时存在于两个dll文件中的解决办法
- 【转】拷贝构造函数的参数类型必须是引用
- JS倒计时:从某个固定时间开始倒记
- ubuntu 创建容器 并ssh 连接容器
- 不到100行代码搞定Python做OCR识别身份证,文字等各种字体
- 基于HALCON的喷码字符自训练与识别
- B2B、B2C、BOS系统都指哪些?
- 优酷、爱奇艺视频码率与YouTube视频码率
- V4L2 YUV/YCbCr格式数据 转 RGB格式数据 V4L2_PIX_FMT_NV12 转 RGB
- Win7C盘不能扩大怎么办?Win7C盘扩展卷不能点怎么解决
- Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
- 20210218CTF伪协议绕过file_get_contents(bugkuctf的web21御结冰城感想)
- 风控数据来源及分析技巧
- 鸟哥的Linux私房菜(基础班)第八章学习笔记