CN111179201B - 一种视频去噪方法和电子设备 - Google Patents

一种视频去噪方法和电子设备 Download PDF

Info

Publication number
CN111179201B
CN111179201B CN201911418935.0A CN201911418935A CN111179201B CN 111179201 B CN111179201 B CN 111179201B CN 201911418935 A CN201911418935 A CN 201911418935A CN 111179201 B CN111179201 B CN 111179201B
Authority
CN
China
Prior art keywords
image
denoising
gpu
thread
video frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911418935.0A
Other languages
English (en)
Other versions
CN111179201A (zh
Inventor
黄懿
杜凌霄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN201911418935.0A priority Critical patent/CN111179201B/zh
Publication of CN111179201A publication Critical patent/CN111179201A/zh
Priority to EP20908710.5A priority patent/EP4086840A4/en
Priority to US17/789,974 priority patent/US20220392019A1/en
Priority to PCT/CN2020/129864 priority patent/WO2021135702A1/zh
Application granted granted Critical
Publication of CN111179201B publication Critical patent/CN111179201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本发明实施例提供了一种视频去噪方法和电子设备,所述方法包括:所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;所述GPU从所述CPU加载所述视频帧图像;所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;所述CPU从所述GPU获取所述第二图像,并对所述第二图像进行编码得到去噪后的视频数据。在本发明实施例中,在实现NLB去噪方式的两步去噪方式时,采用NLM去噪算法替换NLB去噪算法进行第一步去噪,避免了使用NLB去噪算法在进行第一步去噪,导致去噪效果不稳定的问题。

Description

一种视频去噪方法和电子设备
技术领域
本发明涉及图像处理技术领域,特别是涉及一种视频去噪方法和一种电子设备。
背景技术
随着网络技术的发展,越来越多人喜欢将拍摄的视频分享到社交平台,或者在社交平台观看其他人分享的视频。
很多情况下,人们都是随手打开手机的摄像头拍摄视频,摄像头在光照条件的不佳的时候采集出来的视频会有明显的噪声,这些噪声会对用户的主观体验造成影响,也会影响视频的编解码和压缩。
目前,现有的图像去噪算法包括基于像素点的去噪算法、基于块匹配的去噪算法、基于变换域的去噪算法和机器学习去噪算法。在实际使用中这些算法要不就是去噪效果不好、要不就是算法执行时间长。
非局部贝叶斯NLB(non-local bayes)去噪算法是近年实验得到的一个在去噪效果和执行时间上较为折中的选择。
NLB去噪方式为两步去噪,其中第一步去噪由于对协方差矩阵的减法操作可能出现负定矩阵,使得图像去噪效果不完全稳定。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频去噪方法和相应的一种电子设备。
为了解决上述问题,本发明实施例公开了一种视频去噪方法,应用于具有中央处理器CPU和图像处理器GPU的电子设备,所述方法包括:
所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
所述GPU从所述CPU加载所述视频帧图像;
所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
所述CPU从所述GPU获取所述第二图像,并对所述第二图像进行编码得到去噪后的视频数据。
本发明实施例还公开了一种视频去噪方法,应用于具有CPU和GPU的电子设备,所述方法包括:
所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
所述GPU从所述CPU加载所述视频帧图像;
所述GPU确定所述视频帧图像的噪声等级;
所述GPU根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像;
所述CPU从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据。
本发明实施例还公开了一种电子设备,包括中央处理器CPU和图像处理器GPU;
所述CPU包括:
视频数据解码模块,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块,用于从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU包括:
视频帧图像加载模块,用于从所述CPU加载所述视频帧图像;
第一图像去噪模块,用于对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
第二图像去噪模块,用于对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像。
本发明实施例还公开了一种电子设备,包括CPU和GPU;
所述CPU包括:
视频数据解码模块,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块,用于从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU包括:
视频帧图像加载模块,用于从所述CPU加载所述视频帧图像;
噪声等级确定模块,用于确定所述视频帧图像的噪声等级;
图像去噪模块,用于根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像。
本发明实施例还公开了一种装置,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上任一项所述的视频去噪方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的视频去噪方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,在实现NLB去噪方式的两步去噪方式时,采用NLM去噪算法替换NLB去噪算法进行第一步去噪,避免了使用NLB去噪算法在进行第一步去噪,导致去噪效果不稳定的问题。
附图说明
图1是本发明的一种视频去噪方法实施例一的步骤流程图;
图2是本发明的一种视频去噪方法实施例二的步骤流程图;
图3是本发明实施例中第一子图像对应的第一搜索框的示意图;
图4是本发明的一种视频去噪方法实施例三的步骤流程图;
图5是本发明的一种电子设备实施例一的结构框图;
图6是本发明的一种电子设备实施例二的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
NLB去噪方式采用两步去噪,采用两步去噪的原因是,NLB算法去噪的效果依赖相似块分组的准确性,第一步由于存在噪声,块的分组会受到干扰,在完成了第一步去噪后,去除了很多噪声干扰的图像用来做块匹配会更加精确。此时将原噪声图像和去噪后的图像都按照去噪后图像进行分块,并在NLB算法中用到含噪声图像进行再去噪。另外一个原因是去噪过一次之后的图像的均值和方差更加接近没有噪声的图像。
NLB去噪算法为:
Figure SMS_1
其中,P为去噪后的图像块的估计;
Figure SMS_2
为噪声图像块的期望,
Figure SMS_3
为噪声图像块的协方差矩阵,I为单位矩阵,
Figure SMS_4
为噪声方差。
传统的NLB去噪方式两步去噪都采用NLB去噪算法,在一步去噪时,
由于相似块的协方差矩阵
Figure SMS_5
可能减去
Figure SMS_6
而变为负定,从而使得概率计算没有意义。
本发明实施例的核心构思之一在于,沿用NLB去噪方式的两步去噪机制,可以对两步去噪分别进行优化。
由于第一步去噪最大的贡献在于提供了一个更加准确的块匹配,因此为了加速,本发明实施例中,在第一步去噪可以采用非局部平均值NLM(non-local means)去噪算法去噪,而弃用NLB去噪算法的计算。在采用NLM去噪算法去噪后,采用NLB去噪进行第二去噪,实验证明采取这样的策略对最终去噪效果几乎没有影响。
在第一步去噪中,除了使用NLM去噪算法保证计算的数学意义,本发明实施例中也对NLM去噪算法进行了算法优化和运算加速。
在第二步去噪中,本发明实施例也对NLB去噪算法进行了算法优化和运算加速。
通过上述的优化,可以使得在采用本发明实施例的视频去噪方法时,能达到较好的去噪效果,并且缩小算法运算时长。
上述改进后的算法除了适用于视频去噪,也适用于其他领域的图像的去噪,例如无人机图像、遥感图像、扫描图像、传真图像、医学图像、军事侦察图像等等。
以下,通过具体实施例对本发明的视频去噪方法进行说明。
参照图1,示出了本发明的一种视频去噪方法实施例一的步骤流程图,改方法应用于具有中央处理器CPU和图像处理器GPU的电子设备,所述具体可以包括如下步骤:
步骤101,所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
在实际中,用户可以将拍摄的视频输入到具有CPU和GPU的电子设备进行去噪处理。
CPU获取用户拍摄的视频数据,将视频数据解码为多个视频帧图像,由GPU进行图像去噪处理。
在实际中,CPU和GPU都可以运行图像去噪算法,基于GPU的结构特点,GPU更适合图像处理。
本发明实施例中,可以根据GPU的多线程并行的结构特点,对图像去噪算法的执行过程进行改进,通过GPU加速图像去噪过程,缩短处理时间。
步骤102,所述GPU从所述CPU加载所述视频帧图像;
具体的,GPU可以根据视频帧图像的大小分配显存大小,将视频帧图像加载到显存中。
步骤103,所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
NLB去噪方式采用的是两步去噪,传统方式中,两步去噪都是采用NLB去噪算法实现。本发明实施例中,采用NLM去噪算法替换NLB去噪算法进行第一步去噪。
步骤104,所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
GPU用NLB去噪算法对第一图像的各个像素点进行去噪,得到第二图像。
步骤105,所述CPU从所述GPU获取所述第二图像,并对所述第二图像进行编码得到去噪后的视频数据。
在GPU对加载的所有视频帧图像都去噪得到第二图像后,CPU对所有的第二图像进行编码,得到去噪后的视频数据。
在本发明实施例中,在实现NLB去噪方式的两步去噪方式时,采用NLM去噪算法替换NLB去噪算法进行第一步去噪,避免了使用NLB去噪算法在进行第一步去噪,导致去噪效果不稳定的问题。
参照图2,示出了本发明的一种视频去噪方法实施例二的步骤流程图,改方法应用于具有中央处理器CPU和图像处理器GPU的电子设备,所述具体可以包括如下步骤:
步骤201,所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
步骤202,所述CPU对所述视频帧图像进行填充;
由于NLM去噪算法和NLB去噪算法都是基于图像块匹配的算法,图像块通常以像素点为中心确定。例如,以一像素点确定5x5的图像块。
对于视频帧图像边界的像素点,由于无法以其为中心确定图像块,导致不能进行图像块匹配的运算。因此需要对原始的视频帧图像进行填充,使得原本边界的像素点也能进行图像块的运算,而不用单独去判断。
步骤203,所述GPU从所述CPU加载所述视频帧图像;
GPU从CPU中加载,由CPU填充之后的视频帧图像。
步骤204,所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
在本发明实施例对NLM去噪算法进行了优化,以提高图像去噪的效果。
传统的NLM算法中,对图像中的每个像素点,构造一个以其为中心的图像块(patch),称为参考块,例如,尺寸为5x5的图像块;然后构造一个以参考快为中心的搜索框,例如尺寸16x16的搜索框。
然后在搜索框中搜索参考图像块的相似图像块,具体的,对于搜索框中的每一个像素点,以这个点为中心再构造出一个相邻图像块,然后判断这个相邻图像块是否为相似图像块。
两个图像块的相似度可以采用像素距离来衡量,比较两个图像块内所有像素点之间的像素距离:
Figure SMS_7
其中,i为参考图像块,j为相邻图像块。
例如,若像素块为5x5,则依次将一个图像块的25个像素点,与另一个图像块对应位置的像素点的像素距离。其中,像素距离以绝对值衡量。
像素距离是指像素值的差距,例如一个像素点的值为255,另一个像素点的值为240,则像素距离为15。
Figure SMS_8
小于预设的像素距离阈值时,则认为该相邻图像块为相似图像块。
对于两个图像块来说,两个图像块的差异性越大,那么相邻图像块的中心像素点所占的权重就应该越小,直观而言,差异性和权重具有反比关系。具体的求权重公式为:
Figure SMS_9
其中Z(i)为一个归一化参数,即所有权重的和。
Figure SMS_10
其中,
Figure SMS_11
为图像块的大小。
现有的权重计算方式只考虑像素距离,传统的NLM算法在去噪的同时会使得图像的边变得模糊。
对此,在本发明实施例中,对权重的计算方式进行改进,增加考虑坐标距离来计算权重,提高算法的保边性,更好的保留去噪后图像边缘的细节。
坐标距离是指两个像素点在图像中的距离,即离参考点越近的点,占的权重越大。
在本发明实施例中,具体可以按照如下公式计算权重:
Figure SMS_12
Figure SMS_13
为一个归一化参数,
Figure SMS_14
为原始的像素距离,表示整个图像块的像素距离;
Figure SMS_15
表示像素点i和像素点j的像素距离。
Figure SMS_16
,用于将权重函数变得更为陡峭。
Figure SMS_17
为坐标距离,
Figure SMS_18
表示像素点i和像素点j的坐标距离,
Figure SMS_19
为像素距离的方差。
Figure SMS_20
为像素距离,
Figure SMS_21
表示块中心像素点i和j的像素距离,
Figure SMS_22
为预估的噪声方差。
进一步的,通过函数
Figure SMS_23
使得权重函数的曲线更为陡峭,可以减少相似度较低的图像块的权重。
另一方面,参考图像块的相似图像块会包括参考图像块本身,因此参考图像块本身所占的权重很大,如果参考块的中心像素点本身即为噪点,会不利于噪声剔除。
对此本发明实施例进行了改进,将参考图像块本身的权重乘以一个小于1的系数(例如0.5),通过减少参考图像块本身的权重,从而降低本像素点自身是单点噪声而产生的误差。
在本发明实施例中,所述步骤204可以包括如下子步骤:
子步骤S11,所述GPU对所述视频帧图像的像素点分配线程;
GPU为视频帧图像的像素点分配线程执行改进的NLM算法,GPU可以为多个像素点分配一个线程,即由一个线程依次按照改进的NLM算法对多个像素点进行去噪;GPU也可以为一个像素点分配一个线程,即一个线程只按照改进的NLM算法对一个像素点进行去噪。
在本发明实施例中,除了对NLM算法进行改进之外,还可以采用具有统一计算设备架构CUDA(Compute Unified Device Architecture)的GPU加速算法的执行。
GPU线程以网格(grid)的方式组织,每个网格中又包含若干个线程块(block),同一线程块中的众多线程拥有相同的指令地址,不仅能够并行执行,而且能够通过共享存储器(Shared memory)实现块内通信。
具有CUDA的CPU在实际执行过程中,会以线程块为单位。把一个个线程块分配给硬件的流处理器SM(Streaming Multiprocessor)进行运算;而线程块中的线程又会以线程束(warp)为单位,对线程进行分组计算。目前CUDA的线程束大小都是32,也就是说32个线程会被组成一个线程束来一起执行。同一个线程束中的线程执行的指令是相同的,只是处理的数据不同。
一个流处理器一次只会执行一个线程块里的一个线程束,为了不浪费线程束的计算资源,通常线程块设置为32的倍数。例如,设置线程块可以设置为8x8,16x16,32x32等尺寸。
在本发明实施例中,基于CUDA的特性设置如下优化:
在GPU分配线程后,所述GPU将所述视频帧图像切分为多个第一子图像;所述GPU将属于同一第一子图像的像素点对应的线程,配置到同一线程块;所述GPU对所述线程块,分配在执行所述NLM去噪算法时所需要的数据;在同一线程块中的线程按照线程束执行时,所述线程束中的线程将所述所需的数据协同读取到所述GPU的共享内存。
例如,将视频帧图像切分为多个8x8的子图像,将负责对这个子图像的像素点进行处理的线程,配置到同一个线程块。若子图像中的每个像素点由一个线程负责,即由64个线程负责一个8x8的子图像,线程块的大小可以设置为64,大小为64的线程块以2个线程束来执行。
线程块在执行NLM去噪算法时所需要的数据是指搜索框的数据。
在本发明实施例改进的NLM去噪算法中,对同一第一子图像中的像素点设置了同一第一搜索框。如图3所示为本发明实施例中第一子图像对应的第一搜索框的示意图。对同一第一子图像中像素点,在同一第一搜索框内搜索以这个像素点为中心的第一参考图像块对应的第一相似图像块。由于同一个第一子图像的线程在同一个线程块,可以基于同一线程块内线程的协同操作,将第一搜索框的数据读取到共享内存。
以16x16的搜索框为例,若不通过协同操作,每个线程都需要读取16x16的搜索框。在使用线程块的协同操作后,大小为64的线程块中,每个线程只需要读取4个像素到共享内存,大大减少了线程读取的数据量,提高算法处理速度。
在将执行NLM去噪算法所需的数据读取到共享内存后,同一线程块的线程都可以从共享内存读取数据。
另外,目前Opencv提供的NLM去噪算法读取数据都是在GPU的全局内存(globalmemory)上进行,这是一种非常缓慢数据读取方式。
对此,本发明实施例通过将NLM去噪算法所需的数据都读取到共享内存中,可以大大提高数据读取速度。
子步骤S12,所述线程确定像素点的第一参考图像块和对应的第一相似图像块;
线程在第一搜索框内搜索第一参考图像块对应的第一相似图像块。具体的,线程以第一搜索框内每一个像素点为中心确定一相邻图像块,然后对所有相邻图像块判断是否为相似图像块。
在一些情况下,可能会查找到大量的第一相似图像块(例如,上百个第一相似图像块),如果以大量的相似块执行后续的算法运行过程,会占用过多的内存。由于GPU算法不适合占用过多内存,不适合做排序,也不适合在查找到的第一相似图像中进一步筛选。
为了减少搜索到的第一相似图像块的数量,在本发明实施例中,可以通过减小搜索区域,不对第一搜索框内所有相邻图像块都进行判断是否为第一相似图像块;而是按预设第一像素间隔,选取相邻图像块来判断是否为第一相似图像块。
在本发明实施例中,所述子步骤S12可以进一步包括:
子步骤S121,所述线程以像素点为中心确定第一参考图像块;
子步骤S122,所述线程从所述GPU的共享内存,获取对应的第一搜索框;
由于线程在执行NLM去噪算法所需的数据(包括第一搜索框的数据),已经通过线程块的协同操作读取到共享内存了,因此线程可以从共享内存,获取对应的第一搜索框。
子步骤S123,所述线程按预设第一像素间隔,在所述第一搜索框内的确定第一参考图像块对应的第一相似图像块。
子步骤S13,所述线程确定所述第一相似图像相对所述第一参考图像块的像素距离和坐标距离;
子步骤S14,所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;
子步骤S15,所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;
在计算得到所有相似图像块的权重后,采用相似图像块的权重和相似图像块中心像素点的像素值加权平均的值,作为参考图像块的中心像素点的去噪后的像素值。
子步骤S16,所述GPU将所有去噪后的像素点确定的图像作为第一图像。
步骤205,所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
GPU用NLB去噪算法对第一图像的各个像素点进行去噪,得到第二图像。
步骤206,所述CPU从所述GPU获取所述第二图像,并对所述第二图像进行编码得到去噪后的视频数据。
在GPU对加载的所有视频帧图像都进行去噪得到第二图像后,CPU对所有的第二图像进行编码,得到去噪后的视频数据。
本发明实施例还对NLB去噪算法进行了优化。
传统的NLB去噪算法为:
Figure SMS_24
其中,P为去噪声后的图像块的估计值,
Figure SMS_25
带噪声的图像块的均值,
Figure SMS_26
带噪声图像块的协方差矩阵,
Figure SMS_27
为噪声方差。
按照现有的NLB两步去噪方式:
第一步去噪的公式为:
Figure SMS_28
第二步去噪的公式为:
Figure SMS_29
其中,
Figure SMS_30
为第一步去噪后的图像块的估计值,
Figure SMS_31
为第二步去噪后的图像块的估计值,
Figure SMS_32
为第一步去噪后的图像中,图像块的均值,
Figure SMS_33
为第一步去噪后的图像中,图像块的协方差矩阵。
在实际中,采用第二步去噪后的公式进行去噪时,会导致损失一些图像细节信息。
对此,本发明实施例中,将第二步去噪公式改进为:
Figure SMS_34
改进后的第二步去噪公式中,在计算均值时带入原始图像中图像块的均值,而不是第一步去噪后图像中图像块的均值,因此第二步去噪可以恢复出一些原始图像的细节信息。
在本发明实施例中,所述步骤205具体可以包括如下子步骤:
子步骤S21,所述GPU对所述第一图像的像素点分配线程;
在本发明实施例中,基于CUDA的特性设置如下优化:
在GPU分配线程后,所述GPU将所述第一图像切分为多个第二子图像;所述GPU将属于同一第二子图像的像素点对应的线程,配置到同一线程块;所述GPU对所述线程块,分配在执行所述NLB去噪算法时所需要的数据;在同一线程块中的线程按照线程束执行时,所述线程束中的线程将所述所需的数据协同读取到所述GPU的共享内存。
线程块在执行NLB去噪算法时所需要的数据是指搜索框的数据。
在本发明实施例改进的NLB去噪算法中,对同一第二子图像中的像素点设置了同一第二搜索框。如对同一第二子图像中像素点,在同一第二搜索框内搜索以这个像素点为中心的第二参考图像块对应的第二相似图像块。由于同一个第二子图像的线程在同一个线程块,可以基于同一线程块内线程的协同操作,将第二搜索框的数据读取到共享内存。
在将执行NLB去噪算法所需的数据读取到共享内存后,同一线程块的线程都可以从共享内存读取数据。
GPU中寄存器的数目有限,也就是能够在GPU上开辟的变量有限,寄存器使用的数量(变量的个数)会影响并发性。
NLB去噪算法比较复杂,需要使用较多的局部变量。因此在实际的代码实现中,一方面,需要让算法后续的步骤可以重新利用前面开辟的数组等。另一方面,让需要算法中使用最频繁的变量存在寄存器中。
NLB去噪算法由于需要计算协方差矩阵,存储相似块等信息需要用到大量本地内存。因此本发明实施例中可以使用大量的内存复用以降低内存开销
通过上述优化,可以减少寄存器的使用可以使得同时运行更多的线程,从而提高算法的并发性,大大缩短算法计算时间,在实际中能缩短30%的计算时间。
子步骤S22,所述线程确定像素点的第二参考图像块和对应的第二相似图像块;
线程在第二搜索框内搜索第二参考图像块对应的第二相似图像块,具体的,线程以第二搜索框内每一个像素点为中心确定一相邻图像块,然后对所有相邻图像块判断是否为相似图像块。
为了减少搜索到的第二相似图像块的数量,在本发明实施例中,通过减小搜索区域,不对第二搜索框内所有相邻图像块都进行判断是否为第二相似图像块;而是按预设第二像素间隔,选取相邻图像块来判断是否为第二相似图像块。
所述子步骤S22可以进一步包括:
子步骤S221,所述线程以像素点为中心确定第二参考图像块;
子步骤S222,所述线程从所述GPU的共享内存,获取对应的第二搜索框;
由于线程在执行NLB去噪算法所需的数据(包括第二搜索框的数据),已经通过线程块的协同操作读取到共享内存了,因此线程可以从共享内存,获取对应的第二搜索框。
子步骤S223,所述线程按预设第二像素间隔,在所述第二搜索框内的确定第二参考图像块对应的第二相似图像块。
子步骤S23,所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;
第二参考图像块的协方差矩阵即上述改进后的第二步去噪公式中的
Figure SMS_35
子步骤S24,所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;
第一参考图像块的均值即上述改进后的第二步去噪公式中的
Figure SMS_36
Figure SMS_37
需要根据在原始的视频帧图像中,确定像素点的第一参考图像块和对应的第一相似图像块计算得到。
子步骤S25,所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;
具体可以按照上述改进后的第二步去噪公式,得到第二参考图像块去噪后的估计值。
子步骤S26,所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值。
经过改进后的第二步去噪公式后,第二参考图像块内所有的像素点都进行了去噪。
即一个像素点,除了在以其为中心的第二参考图像块内被去噪,还会在以其他像素点为中心的第二参考图像块内被去噪,因此一个像素点会有具有多个去噪后的估计值。
一个像素点最终的去噪后估计值为,包含该像素点的所有去噪后的第二参考图像块的该像素点估计值的平均值。
子步骤S27,所述GPU将所有去噪后的像素点确定的图像作为第二图像。
在本发明实施例中,在执行步骤206之前,还可以由所述GPU确定所述视频帧图像的噪声等级;
若所述噪声等级大于或等于所述预设噪声等级阈值,则所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像。
若所述噪声等级小于预设噪声等级阈值,则所述GPU不执行对所述第一图像,按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
噪声等级由噪声方差sigma来衡量,例如,假设噪声等级阈值为10,若视频帧图像的噪声等级小于10,则只需采用NLM去噪算法进行去噪;若噪声等级大于或等于10,在采用NLM去噪算法进行去噪后,再采用NLB去噪算法去噪。
在本发明实施例中,所述GPU确定所述视频帧图像的噪声等级的步骤可以包括:
所述GPU确定加载的视频帧图像的数目;
若所述加载的视频帧图像的数目小于预设帧数目阈值,则所述GPU按预设帧间隔,确定视频帧图像的噪声等级;所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
若所述加载的视频帧图像的数目大于或等于所述预设帧数目阈值,则所述GPU从加载的视频帧图像中选取预设数目的视频帧图像;所述GPU对所述预设数目的视频帧图像,按预设帧间隔,确定视频帧图像的噪声等级;所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
例如,假设预设帧数目阈值为500,对于小于500帧的视频,每隔一帧取出一帧图像评估其噪声等级,整个视频所有图像的噪声等级为计算到的噪声等级的平均值。对于大于500帧的视频,取前500帧,每隔一帧取出一帧图像评估其噪声等级,整个视频所有图像的噪声等级为计算到的噪声等级的平均值。
在本发明实施例中,在实现NLB去噪方式的两步去噪方式时,采用NLM去噪算法替换NLB去噪算法进行第一步去噪,避免了使用NLB去噪算法在进行第一步去噪,导致去噪效果不稳定的问题。
参照图4,示出了本发明的一种视频去噪方法实施例三的步骤流程图,改方法应用于具有中央处理器CPU和图像处理器GPU的电子设备,所述具体可以包括如下步骤:
步骤401,所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
在本发明实施例中,所述CPU还可以对所述视频帧图像进行填充。
步骤402,所述GPU从所述CPU加载所述视频帧图像;
步骤403,所述GPU确定所述视频帧图像的噪声等级;
在本发明实施例中,所述步骤403可以包括:所述GPU确定加载的视频帧图像的数目;若所述加载的视频帧图像的数目小于预设帧数目阈值,则所述GPU按预设帧间隔,确定视频帧图像的噪声等级;所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
若所述加载的视频帧图像的数目大于或等于所述预设帧数目阈值,则所述GPU从加载的视频帧图像中选取预设数目的视频帧图像;所述GPU对所述预设数目的视频帧图像,按预设帧间隔,确定视频帧图像的噪声等级;所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
步骤404,所述GPU根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像;
在本发明实施例中,所述步骤404可以包括子步骤:
子步骤S31,当所述噪声等级小于预设噪声等级阈值时,所述GPU采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像;
所述子步骤S31可以包括:所述GPU对所述视频帧图像的像素点分配线程;所述线程确定像素点的第一参考图像块和对应的第一相似图像块;所述线程确定所述第一相似图像相对所述第一参考图像块的像素距离和坐标距离;所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;所述GPU将所有去噪后的像素点确定的图像作为第一图像。
子步骤S32,当所述噪声等级大于或等于所述预设噪声等级阈值时,所述GPU采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像。
所述子步骤S32可以包括:
所述GPU对所述视频帧图像的像素点分配线程;所述线程确定像素点的第一参考图像块和对应的第一相似图像块;所述线程确定所述第一相似图像相对所述第一参考图像块的像素距离和坐标距离;所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;所述GPU将所有去噪后的像素点确定的图像作为第一图像。
所述GPU对所述第一图像的像素点分配线程;所述线程确定像素点的第二参考图像块和对应的第二相似图像块;所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值;所述GPU将所有去噪后的像素点确定的图像作为第二图像。
步骤405,所述CPU从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据。
在本发明实施例中,用户拍摄的视频被解码成视频帧图像后,GPU评估视频帧图像的噪声等级,GPU根据不同的噪声等级选择不同的去噪策略。然后逐帧进行去噪工作,去除噪声后的视频帧图像会被进行编码。进行编码后的视频占用内存更少;对于含噪声明显的视频,去噪后用户的主观感受也能得到显著改善。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种电子设备实施例一的结构框图,具体可以包括中央处理器CPU51和图像处理器GPU52;
所述CPU51可以包括:
视频数据解码模块511,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块512,用于从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU52可以包括:
视频帧图像加载模块521,用于从所述CPU加载所述视频帧图像;
第一图像去噪模块522,用于对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
第二图像去噪模块523,用于对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像。
在本发明实施例中,所述第一图像去噪模块522可以包括:
第一线程分配子模块,用于对所述视频帧图像的像素点分配线程;
第一图像确定子模块,用于将所有去噪后的像素点确定的图像作为第一图像;
所述线程可以包括:
第一块匹配模块,用于确定像素点的第一参考图像块和对应的第一相似图像块;
距离确定模块,用于确定所述第一相似图像相对所述第一参考图像块的像素距离和坐标距离;
权重计算模块,用于所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;
第一像素估计模块,用于采用所述第一相似图像块的权重确定所述像素点去噪后的像素值。
在本发明实施例中,所述第二图像去噪模块523可以包括:
第二线程分配子模块,用于对所述第一图像的像素点分配线程;
第二图像确定子模块,用于将所有去噪后的像素点确定的图像作为第一图像;
所述线程可以包括:
第二块匹配模块,用于确定像素点的第二参考图像块和对应的第二相似图像块;
协方差矩阵计算模块,用于采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;
图像块均值计算模块,用于采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;
图像块像素估计模块,用于采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;
第二像素估计模块,用于采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值。
在本发明实施例中,所述GPU52还可以包括:
噪声等级确定模块,用于在所述第二图像去噪模块对所述第一图像,按照预设的NLB去噪算法进行去噪,得到第二图像之前,确定所述视频帧图像的噪声等级;
所述第二图像去噪模块包括:
第二图像去噪子模块,用于若所述噪声等级大于或等于所述预设噪声等级阈值,则对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像。
在本发明实施例中,所述GPU52还可以包括:
第一子图像切分模块,用于在所述第一线程分配子模块对所述视频帧图像的像素点分配线程之后,将所述视频帧图像切分为多个第一子图像;
第一线程块配置模块,用于将属于同一第一子图像的像素点对应的线程,配置到同一线程块;
第一数据分配模块,用于对所述线程块,分配在执行所述NLM去噪算法时所需要的数据;
所述线程还可以包括:
第一协同读取模块,用于在同一线程块中的线程按照线程束执行时,将所述所需的数据协同读取到所述GPU的共享内存。
在本发明实施例中,所述GPU52还可以包括:
第二子图像切分模块,用于在所述第二线程分配子模块对所述视频帧图像的像素点分配线程之后,将所述第一图像切分为多个第二子图像;
第二线程块配置模块,用于将属于同一第二子图像的像素点对应的线程,配置到同一线程块;
第二数据分配模块,用于对所述线程块,分配在执行所述NLB去噪算法时所需要的数据;
所述线程还可以包括:
第二协同读取模块,用于在同一线程块中的线程按照线程束执行时,将所述所需的数据协同读取到所述GPU的共享内存。
在本发明实施例中,所述第一块匹配模块可以包括:
第一参考图像块确定子模块,用于以像素点为中心确定第一参考图像块;
第一搜索框获取子模块,用于从所述GPU的共享内存,获取对应的第一搜索框;
第一相似图像块确定子模块,用于按预设第一像素间隔,在所述第一搜索框内的确定第一参考图像块对应的第一相似图像块。
在本发明实施例中,所述第二块匹配模块可以包括:
第二参考图像块确定子模块,用于以像素点为中心确定第二参考图像块;
第二搜索框获取子模块,用于从所述GPU的共享内存,获取对应的第二搜索框;
第二相似图像块确定子模块,用于按预设第二像素间隔,在所述第二搜索框内的确定第二参考图像块对应的第二相似图像块。
在本发明实施例中,所述噪声等级确定模块可以包括:
图像数目确定子模块,用于确定加载的视频帧图像的数目;
第一噪声等级确定子模块,用于若所述加载的视频帧图像的数目小于预设帧数目阈值,则按预设帧间隔,确定视频帧图像的噪声等级;
第二噪声等级确定子模块,用于将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
在本发明实施例中,所述噪声等级确定模块还可以包括:
视频帧图像选取子模块,用于若所述加载的视频帧图像的数目大于或等于所述预设帧数目阈值,则从加载的视频帧图像中选取预设数目的视频帧图像;
第三噪声等级确定子模块,用于对所述预设数目的视频帧图像,按预设帧间隔,确定视频帧图像的噪声等级;
第四噪声等级确定子模块,用于将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
在本发明实施例中,所述CPU51还可以包括:
图像填充模块,用于在所述视频数据解码模块对所述视频数据进行解码得到视频帧图像之后,对所述视频帧图像进行填充。
在本发明实施例中,在实现NLB去噪方式的两步去噪方式时,采用NLM去噪算法替换NLB去噪算法进行第一步去噪,避免了使用NLB去噪算法在进行第一步去噪,导致去噪效果不稳定的问题。
参照图6,示出了本发明的一种电子设备实施例二的结构框图,具体可以包括中央处理器CPU61和图像处理器GPU62;
所述CPU61可以包括:
视频数据解码模块611,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块612,用于从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU62可以包括:
视频帧图像加载模块621,用于从所述CPU加载所述视频帧图像;
噪声等级确定模块622,用于确定所述视频帧图像的噪声等级;
图像去噪模块623,用于根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像。
在本发明实施例中,所述图像去噪模块623可以包括:
第一图像去噪子模块,用于当所述噪声等级小于预设噪声等级阈值时,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像;
第二图像去噪子模块,用于当所述噪声等级大于或等于所述预设噪声等级阈值时,采用预设的第一图像去噪算法对所述视频帧图像进程去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像。
在本发明实施例中,所述第一图像去噪子模块可以包括:
第一线程分配单元,用于对所述视频帧图像的像素点分配线程;
第一图像确定单元,用于将所有去噪后的像素点确定的图像作为第一图像;
所述线程可以包括:
第一块匹配模块,用于确定像素点的第一参考图像块和对应的第一相似图像块;
距离确定模块,用于确定所述第一相似图像相对所述第一参考图像块的像素距离和坐标距离;
权重计算模块,用于采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;
第一像素估计模块,用于采用所述第一相似图像块的权重确定所述像素点去噪后的像素值。
在本发明实施例中,所述第二图像去噪子模块可以包括:
第二线程分配单元,用于对所述第一图像的像素点分配线程;
第二图像确定单元,用于将所有去噪后的像素点确定的图像作为第一图像;
所述线程可以包括:
第二块匹配模块,用于确定像素点的第二参考图像块和对应的第二相似图像块;
协方差矩阵计算模块,用于采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;
图像块均值计算模块,用于采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;
图像块像素估计模块,用于采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;
第二像素估计模块,用于采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值。
在本发明实施例中,用户拍摄的视频被解码成视频帧图像后,GPU评估视频帧图像的噪声等级,GPU根据不同的噪声等级选择不同的去噪策略。然后逐帧进行去噪工作,去除噪声后的视频帧图像会被进行编码。进行编码后的视频占用内存更少;对于含噪声明显的视频,去噪后用户的主观感受也能得到显著改善。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种装置,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述视频去噪方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述视频去噪方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种视频去噪方法和一种电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种视频去噪方法,其特征在于,应用于具有中央处理器CPU和图像处理器GPU的电子设备,所述方法包括:
所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
所述GPU从所述CPU加载所述视频帧图像;
所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
所述CPU从所述GPU获取所述第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
其中,所述GPU对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像,包括:
所述GPU对所述视频帧图像的像素点分配线程;
所述线程确定像素点的第一参考图像块和对应的第一相似图像块;
所述线程确定所述第一相似图像块相对所述第一参考图像块的像素距离和坐标距离;
所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;
所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;
所述GPU将所有去噪后的像素点确定的图像作为第一图像;
所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像,包括:
所述GPU对所述第一图像的像素点分配线程;
所述线程确定像素点的第二参考图像块和对应的第二相似图像块;
所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;
所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;
所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;
所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值;
所述GPU将所有去噪后的像素点确定的图像作为第二图像。
2.根据权利要求1所述的方法,其特征在于,在所述GPU对所述第一图像,按照预设的NLB去噪算法进行去噪,得到第二图像,之前还包括:
所述GPU确定所述视频帧图像的噪声等级;
所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像,包括:
若所述噪声等级大于或等于预设噪声等级阈值,则所述GPU对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像。
3.根据权利要求1所述的方法,其特征在于,在所述GPU对所述视频帧图像的像素点分配线程之后,还包括:
所述GPU将所述视频帧图像切分为多个第一子图像;
所述GPU将属于同一第一子图像的像素点对应的线程,配置到同一线程块;
所述GPU对所述线程块,分配在执行所述NLM去噪算法时所需要的数据;
在同一线程块中的线程按照线程束执行时,所述线程束中的线程将所述所需要的数据协同读取到所述GPU的共享内存。
4.根据权利要求1所述的方法,其特征在于,所述GPU对所述第一图像的像素点分配线程之后,还包括:
所述GPU将所述第一图像切分为多个第二子图像;
所述GPU将属于同一第二子图像的像素点对应的线程,配置到同一线程块;
所述GPU对所述线程块,分配在执行所述NLB去噪算法时所需要的数据;
在同一线程块中的线程按照线程束执行时,所述线程束中的线程将所述所需要的数据协同读取到所述GPU的共享内存。
5.根据权利要求1所述的方法,其特征在于,所述线程确定像素点的第一参考图像块和对应的第一相似图像块,包括:
所述线程以像素点为中心确定第一参考图像块;
所述线程从所述GPU的共享内存,获取对应的第一搜索框;
所述线程按预设第一像素间隔,在所述第一搜索框内确定第一参考图像块对应的第一相似图像块。
6.根据权利要求1所述的方法,其特征在于,所述线程确定像素点的第二参考图像块和对应的第二相似图像块,包括:
所述线程以像素点为中心确定第二参考图像块;
所述线程从所述GPU的共享内存,获取对应的第二搜索框;
所述线程按预设第二像素间隔,在所述第二搜索框内确定第二参考图像块对应的第二相似图像块。
7.根据权利要求2所述的方法,其特征在于,所述GPU确定所述视频帧图像的噪声等级,包括:
所述GPU确定加载的视频帧图像的数目;
若所述加载的视频帧图像的数目小于预设帧数目阈值,则所述GPU按预设帧间隔,确定视频帧图像的噪声等级;
所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
8.根据权利要求7所述的方法,其特征在于,所述GPU确定所述视频帧图像的噪声等级,还包括:
若所述加载的视频帧图像的数目大于或等于所述预设帧数目阈值,则所述GPU从加载的视频帧图像中选取预设数目的视频帧图像;
所述GPU对所述预设数目的视频帧图像,按预设帧间隔,确定视频帧图像的噪声等级;
所述GPU将确定得到的多个噪声等级的平均值,作为视频帧图像的噪声等级。
9.根据权利要求1所述的方法,其特征在于,在所述CPU对所述视频数据进行解码得到视频帧图像之后,还包括:
所述CPU对所述视频帧图像进行填充。
10.一种视频去噪方法,其特征在于,应用于具有CPU和GPU的电子设备,所述方法包括:
所述CPU获取视频数据,并对所述视频数据进行解码得到视频帧图像;
所述GPU从所述CPU加载所述视频帧图像;
所述GPU确定所述视频帧图像的噪声等级;
所述GPU根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像;所述第一图像去噪算法具体为非局部平均值NLM去噪算法;所述第二图像去噪算法具体为非局部贝叶斯NLB去噪算法;
所述CPU从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
其中,所述采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,包括:
所述GPU对所述视频帧图像的像素点分配线程;
所述线程确定像素点的第一参考图像块和对应的第一相似图像块;
所述线程确定所述第一相似图像块相对所述第一参考图像块的像素距离和坐标距离;
所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;
所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;
所述GPU将所有去噪后的像素点确定的图像作为第一图像;
所述GPU采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像,包括:
所述GPU对所述第一图像的像素点分配线程;
所述线程确定像素点的第二参考图像块和对应的第二相似图像块;
所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;
所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;
所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;
所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值;
所述GPU将所有去噪后的像素点确定的图像作为第二图像。
11.根据权利要求10所述的方法,其特征在于,所述GPU根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像,包括:
当所述噪声等级小于预设噪声等级阈值时,所述GPU采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像;
当所述噪声等级大于或等于所述预设噪声等级阈值时,所述GPU采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像。
12.一种电子设备,其特征在于,包括:中央处理器CPU和图像处理器GPU;
所述CPU包括:
视频数据解码模块,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块,用于从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU包括:
视频帧图像加载模块,用于从所述CPU加载所述视频帧图像;
第一图像去噪模块,用于对所述视频帧图像按照预设的非局部平均值NLM去噪算法进行去噪,得到第一图像;
第二图像去噪模块,用于对所述第一图像按照预设的非局部贝叶斯NLB去噪算法进行去噪,得到第二图像;
其中,所述第一图像去噪模块,还用于对所述视频帧图像的像素点分配线程;所述线程确定像素点的第一参考图像块和对应的第一相似图像块;所述线程确定所述第一相似图像块相对所述第一参考图像块的像素距离和坐标距离;所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;将所有去噪后的像素点确定的图像作为第一图像;
所述第二图像去噪模块,还用于对所述第一图像的像素点分配线程;所述线程确定像素点的第二参考图像块和对应的第二相似图像块;所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵;所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值;所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值;所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值;将所有去噪后的像素点确定的图像作为第二图像。
13.一种电子设备,其特征在于,包括CPU和GPU;
所述CPU包括:
视频数据解码模块,用于获取视频数据,并对所述视频数据进行解码得到视频帧图像;
视频数据编码模块,用于从所述GPU获取第一图像,并对所述第一图像进行编码得到去噪后的视频数据;或者,从所述GPU获取第二图像,并对所述第二图像进行编码得到去噪后的视频数据;
所述GPU包括:
视频帧图像加载模块,用于从所述CPU加载所述视频帧图像;
噪声等级确定模块,用于确定所述视频帧图像的噪声等级;
图像去噪模块,用于根据所述噪声等级,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,或者,采用预设的第一图像去噪算法对所述视频帧图像进行去噪得到第一图像,并采用预设的第二图像去噪算法对所述第一图像进行去噪得到第二图像;
其中,所述图像去噪模块,还用于对所述视频帧图像的像素点分配线程;所述线程确定像素点的第一参考图像块和对应的第一相似图像块;所述线程确定所述第一相似图像块相对所述第一参考图像块的像素距离和坐标距离;所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;将所有去噪后的像素点确定的图像作为第一图像;或者,
所述图像去噪模块,还用于对所述视频帧图像的像素点分配线程;所述线程确定像素点的第一参考图像块和对应的第一相似图像块;所述线程确定所述第一相似图像块相对所述第一参考图像块的像素距离和坐标距离;所述线程采用所述像素距离和所述坐标距离,计算所述第一相似图像块的权重;所述线程采用所述第一相似图像块的权重确定所述像素点去噪后的像素值;将所有去噪后的像素点确定的图像作为第一图像;对所述第一图像的像素点分配线程,所述线程确定像素点的第二参考图像块和对应的第二相似图像块,所述线程采用所述第二相似图像块与所述第二参考图像块,计算所述第二参考图像块的协方差矩阵,所述线程采用所述第一参考图像块和所述第一相似图像块,计算所述第一参考图像块的均值,所述线程采用所述第二参考图像块的协方差矩阵和所述第一参考图像块的均值,计算所述第二参考图像块去噪后的像素值,所述线程采用包含同一像素点的所有去噪后的第二参考图像块,确定该像素点去噪后的像素值;将所有去噪后的像素点确定的图像作为第二图像。
14.一种视频去噪装置,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-9或10-11中任一项所述的视频去噪方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9或10-11中任一项所述的视频去噪方法的步骤。
CN201911418935.0A 2019-12-31 2019-12-31 一种视频去噪方法和电子设备 Active CN111179201B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911418935.0A CN111179201B (zh) 2019-12-31 2019-12-31 一种视频去噪方法和电子设备
EP20908710.5A EP4086840A4 (en) 2019-12-31 2020-11-18 VIDEO DENOISING METHOD AND ELECTRONIC DEVICE
US17/789,974 US20220392019A1 (en) 2019-12-31 2020-11-18 Method for denoising videos and electronic device therefor
PCT/CN2020/129864 WO2021135702A1 (zh) 2019-12-31 2020-11-18 一种视频去噪方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911418935.0A CN111179201B (zh) 2019-12-31 2019-12-31 一种视频去噪方法和电子设备

Publications (2)

Publication Number Publication Date
CN111179201A CN111179201A (zh) 2020-05-19
CN111179201B true CN111179201B (zh) 2023-04-11

Family

ID=70650721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911418935.0A Active CN111179201B (zh) 2019-12-31 2019-12-31 一种视频去噪方法和电子设备

Country Status (4)

Country Link
US (1) US20220392019A1 (zh)
EP (1) EP4086840A4 (zh)
CN (1) CN111179201B (zh)
WO (1) WO2021135702A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111179201B (zh) * 2019-12-31 2023-04-11 广州市百果园信息技术有限公司 一种视频去噪方法和电子设备
CN112702605A (zh) * 2020-12-24 2021-04-23 百果园技术(新加坡)有限公司 视频转码系统、视频转码方法、电子设备和存储介质
CN114648469B (zh) * 2022-05-24 2022-09-27 上海齐感电子信息科技有限公司 视频图像去噪方法及其系统、设备和存储介质
CN117011193B (zh) * 2023-09-28 2023-12-05 生态环境部长江流域生态环境监督管理局生态环境监测与科学研究中心 一种轻量化凝视卫星视频去噪方法及去噪系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107085833A (zh) * 2017-04-13 2017-08-22 长安大学 基于梯度倒数自适应开关均中值融合的遥感图像滤波方法
CN109615591A (zh) * 2018-11-27 2019-04-12 东莞信大融合创新研究院 一种基于gpu并行加速的三维块匹配降噪方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254323B (zh) * 2011-06-10 2013-02-27 西安电子科技大学 基于treelet融合和水平集分割的遥感图像变化检测
CN102393955B (zh) * 2011-07-18 2013-11-20 西安电子科技大学 用于图像复原的全信息非局部约束全变分方法
US10475215B2 (en) * 2016-09-23 2019-11-12 Carestream Health, Inc. CBCT image processing method
CN107292851B (zh) * 2017-07-14 2019-09-27 重庆理工大学 一种基于伪3d变换的bm3d图像降噪方法
CN109360156B (zh) * 2018-08-17 2020-08-28 上海交通大学 基于生成对抗网络的图像分块的单张图像去雨方法
CN111179201B (zh) * 2019-12-31 2023-04-11 广州市百果园信息技术有限公司 一种视频去噪方法和电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107085833A (zh) * 2017-04-13 2017-08-22 长安大学 基于梯度倒数自适应开关均中值融合的遥感图像滤波方法
CN109615591A (zh) * 2018-11-27 2019-04-12 东莞信大融合创新研究院 一种基于gpu并行加速的三维块匹配降噪方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张芳.图像泊松去噪算法研究.中国优秀硕士学位论文全文数据库 信息科技辑.2018,第2-4章. *
黄玲俐.一种改进权重的非局部均值图像去噪方法.计算机技术与发展.2016,第26卷(第06期),第16-19页. *

Also Published As

Publication number Publication date
EP4086840A1 (en) 2022-11-09
CN111179201A (zh) 2020-05-19
WO2021135702A1 (zh) 2021-07-08
EP4086840A4 (en) 2024-06-12
US20220392019A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
CN111179201B (zh) 一种视频去噪方法和电子设备
CN111868751B (zh) 在视频代码化的机器学习模型中使用应用于量化参数的非线性函数
US11095902B2 (en) Method for image coding, electronic device and computer-readable storage medium
CN110637460B (zh) 利用深层神经网络的视觉质量保持量化参数预测
Guarda et al. Point cloud coding: Adopting a deep learning-based approach
CN108780499B (zh) 基于量化参数的视频处理的系统和方法
CN106688232A (zh) 基于模型的视频编码的感知优化
TWI770432B (zh) 圖像復原方法、電子設備、儲存介質
CN117408890A (zh) 一种视频图像传输质量增强方法及系统
CN114897728A (zh) 图像增强方法、装置、终端设备以及存储介质
CN106664404A (zh) 视频编码中的块分割方式处理方法和相关装置
US11490085B2 (en) Model sharing by masked neural network for loop filter with quality inputs
CN112087624A (zh) 基于高效率视频编码的编码管理方法
CN117078574A (zh) 一种图像去雨方法及装置
Wang et al. Deep intensity guidance based compression artifacts reduction for depth map
CN107645663A (zh) 一种运动估计搜索范围的确定方法以及装置
CN116385281A (zh) 一种基于真实噪声模型与生成对抗网络的遥感图像去噪方法
CN106534850B (zh) 图像处理装置、图像插值方法和图像编码方法
CN115578287A (zh) 一种图像降噪方法、装置、设备及存储介质
CN112102216B (zh) 自适应权重的全变差图像融合方法
CN114638748A (zh) 图像处理方法、图像修复方法、计算机设备、存储介质
Anitha et al. GEVE: A generative adversarial network for extremely dark image/video enhancement
CN110189272B (zh) 用于处理图像的方法、装置、设备和存储介质
CN115462002B (zh) 处理视频的方法、装置及存储介质
US20220222505A1 (en) Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231012

Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 511400 floor 5-13, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right