视频去噪方法按照处理域的不同可分为空间域、频域、小波域、时域、时-空域去噪等,但是不同域之间的去噪方法会发生重叠现象,或者一种去噪方法会或涉及多个处理域。例如,在时域或时-空域去噪方法中也可使用频域的方法,即将视频序列的全部或一部分通过傅里叶变换转换至频域后,再使用时域或时-空域的形式来进行去噪处理。

视频去噪方法中的空间域、频域和小波域等,与图像去噪中的相应方法基本一致,只是均将其扩展为对多倾图像进行处理,并利用视频信号中更多的冗余信息进行了优化,W达到更好的去噪效果。空间域去噪是在原始视频序列中直接对像素值进行代数运算。频域去噪将视频序列通过傅里叶变换转换至频域,对代表噪声的频率进行衰减并最大程度保留视频的原始信息。小波域将视频序列转换至时-频域后再进行去噪处理。

时域去噪

时域去噪方法仅考虑图像序列在时间维度上的相关性,运算简单、效率高,并且不会引入空间模糊的现象。根据其是否采用运动补偿,可将其区分为非运动补偿的时域去噪方法和运动补偿的时域去噪方法。

非运动补偿的时域去噪

非运动补偿的时域去噪是一种计算比较简单的视频去噪方法,与图像的空域去噪算法非常相似。

f

(

i

,

j

,

k

)

=

m

n

w

(

m

)

g

(

i

,

j

,

k

m

)

f(i,j,k) = \sum_{m}^{n}w(m)g(i,j,k-m)

f(i,j,k)=m∑n​w(m)g(i,j,k−m)

其中,

w

(

m

)

w(m)

w(m)是滤波系数,mn是视频序列待处理当前第K帧与之前粗存储的第一帧的帧间距。

非运动补偿的时域滤波器的降噪效果与滤波器的长度,与滤波的帧数相关,当参与滤波的帧数越大时,抑制噪声的效果越好。但当视频中存在运动时,会造成时域模糊现象,产生的失真也越大。因而非运动补偿的时域滤波器与空域滤波器相同,也需要在抑制噪声和防止失真中寻找一个平衡点。非运动补偿的时域滤波器往往都需要存储较多帧图像,从而获得好的去噪效果,但这样会对存储资源有较大的需求。

递归型时域滤波器只需要存储少量视频帧,并且其所需要控制的参数也更少。

f

(

i

,

j

,

k

)

=

(

1

w

)

f

(

i

,

j

,

k

1

)

+

w

g

(

i

,

j

,

k

)

f(i,j,k) = (1-w)*f(i,j,k-1)+w*g(i,j,k)

f(i,j,k)=(1−w)∗f(i,j,k−1)+w∗g(i,j,k)

其中,

f

(

i

,

j

,

k

1

)

f(i,j,k-1)

f(i,j,k−1)表示前一帧图像的滤波输出值,

g

(

i

,

j

,

k

)

g(i,j,k)

g(i,j,k)表示受噪声影响的当前帧图像,

w

w

w是权重系数。这种方法只需要存储前一帧图像,设定的权重参数只有一个,能够有效减少算法的复杂度。

运动补偿的时域去噪

运动补偿的时域去噪方法能够较为有效地避免产生时域模糊现象,其通过运动匹配找到当前像素在参考帖中的对应像素,尽量保证时间维度的平稳性,选取合适的像素参与滤波W提高最后的去噪效果。

  1. 首先,其根据块匹配方法找到参考峽中对应的像素块,然后比较两个像素块的灰度值差异,根据灰度值差异的大小赋予不同的权重。

f

(

i

,

j

,

k

)

=

w

g

(

i

,

j

,

k

)

+

(

1

w

)

g

(

i

+

p

,

j

+

q

,

k

1

)

f(i,j,k) = w*g(i,j,k)+(1-w)*g(i+p,j+q,k-1)

f(i,j,k)=w∗g(i,j,k)+(1−w)∗g(i+p,j+q,k−1)

其中,

g

(

i

,

j

,

k

)

g(i,j,k)

g(i,j,k)表示当前帧中的像素,

g

(

i

+

p

,

j

+

q

,

k

1

)

g(i+p,j+q,k-1)

g(i+p,j+q,k−1)表示当前像素在参考帧中的对应像素,其通过运动匹配所得到的运动向量为

(

p

,

q

)

(p,q)

(p,q),

f

f

f是最终的滤波输出值。

先通过块匹配找到不同顿帧之间的对应像素块,然后按照一定的规则对时域上的像素点赋予不同的权重值,然后完成最终的滤波操作。

我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

3D降噪_时域降噪待补充的更多相关文章

  1. Python图片验证码降噪 — 8邻域降噪

    简介 图片验证码识别的可以分为几个步骤,一般用 Pillow 库或 OpenCV 来实现,这几个过程是: 1.灰度处理&二值化 2.降噪 3.字符分割 4.标准化 5.识别 所谓降噪就是把不需 ...

  2. 主动降噪,通话降噪及AI降噪之辨

    近日,三星发布的Buds Pro 耳机中,宣传有以下功能.其中涉及到噪声的,有主动降噪,通话降噪及智能降噪,很多人对他们的具体用途容易混淆,今天我们来辨析一下. 主动降噪和通话降噪完全不是一个概念,无 ...

  3. 3D数学基础_图形与游戏开发

    https://blog.csdn.net/popy007/article/list/2?t=1&  //向量计算相关文章 https://www.baidu.com/link?url=48C ...

  4. Unity3D_(游戏)双人3D坦克_简易版

    双人3D坦克实现 player1: WSAD控制上下左右 空格键发射炮弹 player2: IKJL可控制上下左右 B键发射炮弹 每个坦克只有100hp,子弹击中1次扣30hp,hp时时显示在坦克上 ...

  5. camera数字降噪(DNR)

    camera数字降噪(DNR) 闭路电视摄像机 无论多么出色和弱光,在黑暗中拍摄视频监控录像时都会不可避免地产生一些噪音.噪声是任何电子通信中不可避免的部分,无论是视频还是音频.本质上是静态的–视频信 ...

  6. 主动降噪(Active Noise Control)

    智能耳机 人机交互 智能声学终端 智能耳机 智能音箱 智能听力器 喇叭单体 动圈喇叭 新材料 DLC 石墨烯 陶瓷单位 吸音材料 智能芯片 阵列式麦克风 声纹传感器 演算法 降噪算法 智能听力保护 A ...

  7. 单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)

    单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件) webrtc的音频处理模块分为降噪ns,回音消除aec,回声 ...

  8. 编解码再进化:Ali266 与下一代视频技术

    过去的一年见证了人类百年不遇的大事记,也见证了多种视频应用的厚积薄发.而因此所带来的视频数据量的爆发式增长更加加剧了对高效编解码这样的底层硬核技术的急迫需求. 新视频编解码标准 VVC 定稿不久之后, ...

  9. 论文翻译:2020_Joint NN-Supported Multichannel Reduction of Acoustic Echo, Reverberation and Noise

    论文地址:https://ieeexploreieee.fenshishang.com/abstract/document/9142362 神经网络支持的回声.混响和噪声联合多通道降噪 摘要 我们考虑 ...

  10. Deep Learning(深度学习)学习笔记整理

    申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...

随机推荐

  1. MySQL(六)存储引擎

    存储引擎 ​ 连接管理.查询缓存.解析器和执行器被归为MySQL service,而把真实存储数据的功能划分为存储引擎的功能.所以MySQL service经过查询优化后,只需按照生成的执行计划调用存 ...

  2. C# 从0到实战--程序入门:基本程序结构·hello,world

    为什么要写博客 某人是一名大学生,到了大二,学院开始教授.Net,从这里我接触到了C#和ASP.Net,这些技术让我感到了想不到的快速开发之震撼.于是突发奇想,写此博客来记录我的学习路程.博客不仅仅是 ...

  3. Vue3实现组件级基类的几种方法

    Vue3的组件有三种代码组织方式 纯Option API (不含setup) option API + setup 纯 setup (即composition API) 对于这三种形式,设置基类的方法 ...

  4. StringBuilder类用法解析

    一.StringBuilder说明 StringBuilder是一个可变的字符序列.这个类提供了一个与StringBuffer兼容的API,但不保证同步,即StringBuilder不是线程安全的,而 ...

  5. Go函数基础

    在Go语言中,函数是一种基本的代码组织方式.函数能够接受输入参数并返回结果.Go语言中的函数有以下特点: 函数定义使用关键字func,后跟函数名.参数列表和返回值类型. 如果函数有返回值,则在函数定义 ...

  6. Linux 给用户赋予操作权限

    赋予local目录读写权限给keesail,别的用户对这个目录没有任何权限. chown -R keesail:keesail ./local chmod 777 文件夹名称,可以把文件夹设置成所有用 ...

  7. 使用 Lambda 函数将 CloudWatch Log 中的日志归档到 S3 桶中

    > 作者:[SRE运维博客](https://www.cnsre.cn/) > 博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/) &g ...

  8. 用tk.mybaits实现指定字段更新

    ​ 去年年底的因为业务需要需要在使用tk.mybaits框架的系统中实现指定字段的更新,可是tk.mybaits框架本身并不支持这个功能,我翻遍了CSDN和其他相关的技术相关的网站都没有找到相关的解决 ...

  9. 前端Vue项目打包性能优化方案

    一.前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍 ...

  10. 2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。

    2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能. 答案2023-04-30: resampling_audio.c 是 FFmpe ...