0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像处理技术之动态范围压缩算法介绍

Dbwd_Imgtec 来源:未知 作者:胡薇 2018-07-02 09:37 次阅读

1、动态范围压缩介绍

自然界中真实场景能够表现比较广泛的颜色亮度区间,比如从很暗(10^-5 cd/m2)的黑夜到明亮(10^5 cd/m2)的太阳光,有将近10个数量级的动态方位。而传统显示设备所能显示的场景、视频和图像通常受限于硬件设备,通常只能表达出很小一部分的亮度范围,比如如常见的8比特图像显示0到255的整数范围,因此为了能够显示高动态范围的影响,需要实现从高动态范围图像(HDR)到低动态范围图像(LDR)的映射,并且不同显示设备的出现,需要实现HDR和之间的相互转换 ,即动态范围压缩(DRC,Dynamic Range Compression)。

动态范围压缩算法常见的分为全局映射和局部映射:

全局映射:像素的一对一映射,降低一致的分辨率,这样得到的LDR图像的对比度大大地减少,容易丢失细节部分的信息

局部映射:考虑像素和像素之间的关系,能够适当增强局部范围的亮度对比度,它保留了一定的细节,但是某些区域会出现失真的现象,并且它的复杂度较高 。

鉴于这个原因,我们希望有一个理想算法:既要能保持像素的整体变化,又要能保存一部分细节特征,使得亮度效果能够达到人眼可以接受的接近现实的场景。

2、动态范围压缩算法

实现动态范围压缩有许多种算法,比如线性移位算法、对数映射算法、分段函数映射算法、自适应性对数映射算法、高动态范围图像可视化算法。

2.1 线性移位算法

原理:是最简单的DRC算法,它将以n比特整数表示的HDR图像直接右移(n—m)个比特得m(m

缺点:考虑像素颜色的分布,会使数值集中的颜色分辨率降低,对于大部分图像来说,像素颜色不均,并且多分布于中低数值区间,高数值区间的颜色较少,这样映射后的LDR图像,颜色暗的地方更暗了,丢失很多细节,颜色高亮的地方会变得很尖锐,有失真的表现。

2.2 对数映射算法

原理:为简便起见以2为底,将数值区间[0,2^n]对数化到区间[0,n],然后再线性变换到区间[0,2^m] 。

缺点:与线性移位算法一样,都是全局算法,不能对图像的局部进行有效的修正,图像效果一般,但是效率较高 。

2.3 分段函数映射

原理:考虑到低数值区间、高数值区间以及它们之间区域的不同特点,使用三段式的分段函数对HDR图像进行压缩,对不同的亮度区域进行分辨率调整。

优点:两端的线段斜率较小,中间的斜率较大,即算法有意地提高中间值像素的分辨率。映射曲线的两个拐点值视不同的图像而定,即它考虑到了图像的局部特征变化, 所以不完全是全局算法。

缺点:仍然是粗粒度的,因为它没有考虑像素之间的关系。

2.4 自适应性对数映射

原理:引入实际场景最高亮度值和现实场景最高亮度值的对数比,并且选取一个较优对比度调节算子,实现HDR到LDR的映射。

优点:样扩大中间亮度值的映射范围,压缩高亮度值的映射斜率。后两种算法的复杂度一般,图像效果比之前两种算法好。

2.5 高动态范围图像可视化算法

原理:用快速双向滤波器对输入图像进行对数域分解,分解为基本层和细节层,分别进行全局和局部映射算法,基本层进行直方图映射调整,细节层进行自适应细节增强。

优点:既保留了全局对比信息,又增强了局部细节,视觉效果更好一些,但是双向滤波器的引入,使得算法的复杂度较高。

本文为了考虑性能和实现复杂度,提出了一种新算法:以对数映射为基础,结合对数映射和分段映射的特点,划分出不同的亮度范围,然后分段映射。这样既不需要太高复杂度的算法将图像的全局信息和局部信息分开来,又能实现对局部区域的调节。

3、对数分段映射算法实现

对数分段映射算法的实现步骤如下:

将原始输入进行指定区间的改进对数映射

将对数区间进行分段调整

3.1 改进的对数映射

传统对数映射公式如下,其中:对数底数base和前面的系数a视具体的映射范围而定,这里取以2为底。

f(x) = a * logbase(x + 1)

改进全局映射步骤中的对数映射算法,以10比特的HDR图像为例,公式如下:

f(x) = [[lb(x+1) * 1..6]^2 - 0.5]; 0=

Matlab各自拟合的曲线对比如下(输入:[0,1023],输出:[0,255]):

其中L1为传统对数算法,L2曲线为改进后的算法,L3为线性移位算法。可以看出改进后的L2曲线优势是扩 大了中间数值区域的映射范围,提高了该区域的分辨率。

3.2 对数区间进行分段调整

我们对局部区域进行适当处理,使得数据分布较多的区域能够扩大映射范围,数据分布较少的区域能够缩小映射范围,即将改进后的算法加以适应性调整后作用到不同的区间段上以产生更好的效果。

假如把需要映射的亮度区间分为两段:[0,511]和(511,1023],在这两段区间上使用不同的含参数的映射曲线:

令A(x) = [(1.6 * lb(x + 1))^2 - 0.5],则满足如下条件:

另外,引入一个渐变参数a: a = a3/a1 = N2/N1,其中Ni为亮度值分布在第i个区间内的像素个数,渐变系数值反映了每个区间像素分布的递增趋势。

4、算法仿真对比

以10bit的HDR图像为例,该图亮度值范围为0~1023,分为两个映射区间后的曲线表达式为:

仿真对比如下:

线性移位算法

典型对数映射法

本文算法

结论:本文提出的算法更好地增强了高低亮度区域的对比度,并且高低亮度区域交界处变化平滑。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    27

    文章

    1281

    浏览量

    56638

原文标题:图像处理之动态范围压缩

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA图像处理CLAHE算法

    在FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
    的头像 发表于 01-04 12:23 2406次阅读
    FPGA<b class='flag-5'>图像</b><b class='flag-5'>处理</b><b class='flag-5'>之</b>CLAHE<b class='flag-5'>算法</b>

    图像处理算法介绍:阈值分割

    、特征提取与模式识别之前的必要的图像处理过程。因此,这里科天健将简要介绍图像处理算法:阈值分割。原始
    发表于 04-27 14:22

    如何设计BP神经网络图像压缩算法

    ,并能在脑海中重现这些图像信息,这不仅与人脑的海量信息存储能力有关,还与人脑的信息处理能力,包括数据压缩能力有关。在各种神经网络中,多层前馈神经网络具有很强的信息处理能力,由于其采用B
    发表于 08-08 06:11

    视频压缩算法的特点和处理流程是怎样的?

    在本文中,我们将着重探讨视频压缩算法的特点和处理流程,我们将对基本的视频压缩算法进行解释,包括静态图像
    发表于 06-08 06:49

    国内医学图像处理技术的最新动态

    阐述了医学图像处理技术的发展动态介绍了目前国内在三维医学图像的可视化和基于PACS的医学
    发表于 11-17 23:21 91次下载

    楔波与小波联合图像压缩算法

    本文介绍了新型的楔波压缩算法图像压缩中的应用,并采用楔波与小波相结合的方法完美地刻画了图像的边
    发表于 12-18 16:22 21次下载

    变频压缩/动态范围,变频压缩/动态范围是什么意思

    变频压缩/动态范围,变频压缩/动态范围是什么意思 变频压缩
    发表于 03-22 16:14 2884次阅读

    一种图像动态范围压缩算法及其FPGA实现

    一种图像动态范围压缩算法及其FPGA实现,感兴趣的小伙伴们可以看一看。
    发表于 09-14 17:17 5次下载

    LED显示屏高动态范围显示技术介绍与色调映射算法的分析

    LED 显示屏在环境光的影响下,其显示图像的对比度和有效动态范围会产生一定程度的下降。所谓动态范围,就是一幅
    发表于 09-29 15:46 3次下载

    基于细节增强和动态压缩算法图像处理方案

     在FPGA处理板上实现了细节增强与动态范围压缩算法,实验表明,处理系统对于大
    发表于 11-22 08:57 5272次阅读
    基于细节增强和<b class='flag-5'>动态</b><b class='flag-5'>压缩</b><b class='flag-5'>算法</b>的<b class='flag-5'>图像</b><b class='flag-5'>处理</b>方案

    图像处理动态范围扩展定义与方法

    辐照度重建方法处理过程:静态场景拍摄多幅不同曝光度的低动态范围图像,利用图像信息推算成像系统的响应函数,再通过响应函数逆运算得到场景的相对辐照度,用以合成高
    的头像 发表于 07-04 16:26 1.1w次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>处理</b><b class='flag-5'>之</b><b class='flag-5'>动态</b><b class='flag-5'>范围</b>扩展定义与方法

    如何使用FPGA实现空间图像CCSDS压缩算法的设计

    随着空间技术的发展,遥感图像获得了同益广泛的应用,随之带来的遥感数据海量增长,给存储和传输都带来极大的困难,因而进行有效的数据压缩就显得特别迫切和重要。图像
    发表于 02-05 15:54 6次下载
    如何使用FPGA实现空间<b class='flag-5'>图像</b>CCSDS<b class='flag-5'>压缩</b><b class='flag-5'>算法</b>的设计

    如何使用FPGA实现图像动态范围压缩算法

    灰度动态范围压缩是一种基本的图像增强处理方法,广泛应用于图像识别,视频监控等领域中。结合这一应用
    发表于 02-05 17:00 22次下载
    如何使用FPGA实现<b class='flag-5'>图像</b><b class='flag-5'>动态</b><b class='flag-5'>范围</b><b class='flag-5'>压缩</b><b class='flag-5'>算法</b>

    DCT的图像压缩编码算法的MATLAB实现

    DCT的图像压缩编码算法的MATLAB实现(电源技术期刊版面费)-首先说明了图像压缩在现代通信中
    发表于 09-23 09:19 12次下载
    DCT的<b class='flag-5'>图像</b><b class='flag-5'>压缩</b>编码<b class='flag-5'>算法</b>的MATLAB实现

    红外热成像图像算法(续)

    红外热成像技术将不可见的红外辐射转换成可见的红外热像图。红外探测器加上红外光学镜头、信号处理算法图像处理算法后就是一个能够输出红外图像的红
    的头像 发表于 11-18 14:56 1470次阅读
    红外热成像<b class='flag-5'>图像</b><b class='flag-5'>算法</b>(续)