ISP去噪(1)

#灵感# 因为理解的2DNR、3DNR 和当前调试平台标注的2DNR、3DNR 作用有很大差异,所以在网上广撒网,搜集知识。

目前收集出来一个这样的文章,有点像大学生的论文“取其精华,合成糟粕”。------权当一个记录册

目录

运动阈值,拖尾:

空域和时域降噪区别:

空域时域降噪(STNR)

高频和低频噪声:

中值滤波和双边滤波:

降噪位置:

运动阈值,拖尾:

动作阈值就是你判断你画面中大概有百分之多少的像素,来判断出我们大概使用多少范围的运动。超出这个阈值的像素是运动的,低于这个阈值的像素是静态的。

当前平台: 

运动阈值越大越容易(画面更多)被判断为静止(理解为小于阈值判断为静止,)副作用为拖尾,

理解---------【判断为静止,则使用3d 时域降噪,时域降噪过大,运动物体就拖尾明显。

阈值越小则越容易(画面更多)被判断为运动(副作用3D降噪效果弱,噪声大)

理解---------【运动区域用2D 降噪,2D空域降噪不考虑帧与帧之间关系,会发生一些噪点的抖动】

空域和时域降噪区别:

空域降噪 是针对单帧画面进行处理 ;空域降噪是一种2D降噪方法,它只处理一帧图像内部的噪声。降噪算法根据实现原理不同可以分成很多种类型,比如线性/非线性、空域/频域,频域又包括小波变换、傅里叶变换或其他变换。2D降噪缺点是会造成画面模糊,特别是物体边缘部分 因此对这种算法的改进主要是进行边缘检测,边缘部分的像素不用来进行模糊。 -------当前平台 2D 降噪会导致运动模糊

时域降噪 是结合前后帧进行计算处理的出来的 。时域降噪是一种3D降噪方法,它的主要思想是利用多帧图像在时间上的相关性实现降噪, 即考虑帧与帧之间的时域关系。----(有人称为2dnr,怪不得我老是搞混,因为用在静态区域,2DNR理解的出发点是在2D图像上做NR)。

一种最简单的实现方法是时域均值滤波,即将相邻几帧图像在时域上做加权平均。由于累加后噪声的增长速度(根号关系)小于信号的增长速度(线性关系),所以图像的信噪比会提高。这种方法的主要问题在于只适合处理静态图像,如果画面中存在运动的物体则会出现伪影ghost effect-------------和当前平台 说的静态区域用3DNR 相符合。

一般来说,降噪我们都会在最前面的节点对原始素材进行降噪。------raw?

如果我们只用空域降噪的话,假如我们连续播放的话,由于它的算法都是基于当前帧,不考虑前后帧,所以这样很有可能会发生一些噪点的抖动。------这个抖动在运动区域应该不明显,所以运动用2D空域降噪。

时域降噪会把整个时间段的噪点统一进行处理,消除帧与帧之间的噪点抖动。-----所以在静止区域用3D 时域去噪。使画面更安静。

一般都是先利用空域降噪对单帧进行一个基础的降噪,(比如在raw 域?),然后在利用时域降噪把与帧之间的噪点抖动消除,这样的效果可能会比较好。(比如在YUV域?)

空域时域降噪(STNR)

此段来自Understanding ISP Pipeline - Noise Reduction - 知乎 (zhihu.com),作者刘斯宁

STNR是一种2D+3D降噪方法,它通过一套算法判别一个像素是属于前景还是背景,被判决为背景的像素将会参与时域平滑,被判决为前景的像素将会参与空域平滑,而判决条件则每一帧都在动态更新,以尽可能保证判决准确性。-------有人称STNR 为3DNR, 应该是理解为3D图像上做NR。此处和 “当前平台” 描述的算法作用机制一样。

运动检测,运动的物体认为是前景,不动的是背景。但是由于噪声影响会有很多失效的时候,把背景误判为运动,或者由于运动物体存在大面积单色,被误判为没动。至今尚没有特别有效的方法。使用ai技术能表现好一些。

在手机端的调试经验: 为避免拖影,可以加大YNR去噪,使用较小的3DNR 去噪。

“当前平台”经验:

运动模糊,减小2DNR。适当调整2DNR中的 对运动区域NR的值。

静止平坦区噪声,检查运动阈值是否正确,若是,则(静止平坦区不会有跳动噪声)。

灯的位置(高亮处)噪声跳动,修改校准的NP 参数。

高频和低频噪声:

此段来自 Understanding ISP Pipeline - Noise Reduction - 知乎 (zhihu.com)

噪声的空间频率高低会影响关于图像质量的主观感受,而且这种影响与人的直觉不一定相符。在下图的例子中,右图主要包含高频噪声,在人眼看来其图像质量比左图要好很多,其实右图的方差是12.5,大于左图的方差11.7,左图感觉噪声更大的主要原因是噪声的频率更低一些。

因此,关于噪声的一般规律是,幅度小的高频噪声对主观图像质量影响较小,而幅度大的低频噪声对主观图像质量影响较大。

中值滤波和双边滤波:

中值滤波适用于去除椒盐噪声等随机噪声,而双边滤波在平滑图像的同时保留边缘信息。

中值滤波在一定的条件下可以克服常见线性滤波器如方框滤波器、均值滤波等带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声非常有效,也常用于保护边缘信息, 保存边缘的特性使它在不希望出现边缘模糊的场合也很有用,是非常经典的平滑噪声处理方法。

但是中值滤波的缺点也很明显,因为要进行排序操作,所以处理的时间长,是均值滤波的5倍以上。

图片来自:Understanding ISP Pipeline - 知乎 (zhihu.com)

 

双边滤波器的好处是可以做边缘保存edge preserving),一般用高斯滤波去降噪,会较明显地模糊边缘,对于高频细节的保护效果并不明显。双边滤波器顾名思义比高斯滤波多了一个高斯方差sigmad,它是基于空间分布的高斯滤波函数,所以在边缘附近,离的较远的像素不会太多影响到边缘上的像素值,这样就保证了边缘附近像素值的保存。但是由于保存了过多的高频信息,对于彩色图像里的高频噪声,双边滤波器不能够干净的滤掉,只能够对于低频信息进行较好的滤波。

在双边滤波器中,输出像素的值依赖于邻域像素值的加权值组合。

高斯滤波的实现方式有时域方式和频域方式两种,一种是时域高斯低通滤波,一种是频域高斯低通滤波。

时域高斯低通滤波的实质是定义一个奇数大小的模板(3 X 3 5 X 5 7 X 7 ……),然后让该模板遍历整副图像,模板中的加权平均值就是模板中心的值。

当领域窗口固定时,标准差越大,去除高斯噪声能力越强,图像越模糊,当标准差为2以上时,去噪能力几乎不再增加,只有当增加领域的大小时,去噪能力才会进一步增强。

频域高通滤波器:

降噪位置:

raw域的好处是接近噪声的源头,rgb域和yuv域的好处是可以抑制在isp处理中间引入的噪声,如果不考虑成本,降噪处理理论上是多多益善的,实际也确实是这样,越高端的isp降噪节点越多(比如高通、MTK 平台),有些codec在编码之前也会做一次降噪,因为isp噪声对codec码率影响非常大。

降噪:目前主流的ISP产品中一般会选择在RAW域、RGB域、YUV域等多个环节设置降噪模块以控制不同类型和特性的噪声。在YUV域降噪的方法已经得到了广泛的研究并且出现了很多非常有效的算法,但是在RAW域进行降噪则因为RAW数据本身的一些特点而受到不少限制。主要的限制是RAW图像中相邻的像素点分别隶属于不同的颜色通道,所以相邻像素之间的相关性较弱,不具备传统意义上的像素平滑性,所以很多基于灰度图像的降噪算法都不能直接使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/269583.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

等保二级和三级的区别

等保二级和三级定级标准有什么区别?定级原则和方法介绍 网络安全等级保护,简称等保,是我国为了保障信息系统的安全运行,防止信息泄露、篡改、破坏等威胁,制定的一套信息安全管理制度。根据《信息安全技术网络安全等级保…

汽车IVI中控开发入门及进阶(十一):ALSA音频

前言 汽车中控也被称为车机、车载多媒体、车载娱乐等,其中音频视频是非常重要的部分,音频比如播放各种格式的音乐文件、播放蓝牙接口的音乐、播放U盘或TF卡中的音频文件,如果有视频文件也可以放出音频,看起来很简单,在windows下音乐播放器很多,直接打开文件就能播放各…

【matlab进阶学习-6】 读取log数据data.txt文件,并做处理,导出报告/表格/图表

原始文件 原始文件格式txt,每一行对应一个数据,数据之间由逗号分割开 对应意思 时刻,电压,电流,功率,容量,,电流,功率,,RTC时间,状态…

go学习之反射知识

反射 文章目录 反射1、反射的使用场景1)结构体标签的应用2)使用反射机制编写函数的适配器(桥连接) 2、反射的基本介绍-1.基本介绍-2.反射的图解-3.反射重要的函数和概念 3.反射快速入门-1.请编写一个函数,演示对&#…

锂电3V升12V1A升压芯片WT3209

锂电3V升12V1A升压芯片WT3209 WT3209是一款高功率密度全集成BOOST升压转换器,具备高效能解决方案。3V升12V1A,5V升12V1A WT3209内部集成的功率MOSFET管导通电阻为上管13mΩ和下管11mΩ,具备2A开关电流能力,并且能够提供高达12.6V的输出电压。…

Java - Math类的常用方法及练习

目录 1.1 概述 1.2 常用方法 ❓面试题:为啥Math.round(-1.5)-1? 1.1 概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象…

基于PaddleNLP的深度学习对文本自动添加标点符号(一)

前言 目前以深度学习对文本自动添加标点符号研究很少,已知的开源项目并不多,详细的介绍就更少了,但对文本自动添加标点符号又在古文识别语音识别上有重大应用。 基于此,本文开始讲解基于PaddleNLP的深度学习对文本自动添加标点符号…

论文阅读——ScanQA

ScanQA: 3D Question Answering for Spatial Scene Understanding 输入:点云P和问题Q,输出:答案A 点云p由三维坐标点组成。本文模型使用额外的点云特征:点云高度、颜色、法线和多视图图像特征,这些特征将 2D 外观特征投…

链游成为蓝海,潮游世界开创未来新时代

区块链、元宇宙浪潮来袭,为数字世界开启崭新的大门,一场链游模式的范式革命正在发生! 未来,元宇宙中,链游将成为中坚力量。 潮游世界抢占时代先机,利用区块链技术的去中心化和数字资产的不可替代性&#x…

PyQt6 QToolBar工具栏控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计44条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

基于Qt的蓝牙Bluetooth在ubuntu实现模拟

​# 前言 Qt 官方提供了蓝牙的相关类和 API 函数,也提供了相关的例程给我们参考。笔者根据 Qt官方的例程编写出适合我们 Ubuntu 和 gec6818开发板的例程。注意 Windows 上不能使用 Qt 的蓝牙例程,因为底层需要有 BlueZ协议栈,而 Windows 没有。Windows 可能需要去移植。笔者…

Linux shell编程学习笔记35:seq

0 前言 在使用 for 循环语句时,我们经常使用到序列。比如: for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i * 2 $(expr $i \* 2)"; done 其中的 1 2 3 4 5 6 7 8 9 10;就是一个整数序列 。 为了方便我们使用数字序列,Linux提供了…