发明内容
本发明实施例提供了一种噪声图像的时域降噪方法和相关装置,用于实现对噪声图像的降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种噪声图像的时域降噪方法,包括:
获取噪声图像的第一分块的量化噪声,所述第一分块为所述噪声图像划分为多个分块中的任意一个分块;
根据所述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,其中,所述运动估计邻域包括以所述第一像素点为中心的相邻像素点,所述第一像素点为所述第一分块中的任意一个像素点;
根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断所述第一像素点处于运动区域还是静止区域;
若所述第一像素点处于运动区域,根据所述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,根据所述第一融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的运动补偿像素值计算所述第一像素点对应的第一降噪像素值,所述第一帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的运动补偿像素值之间的差值,所述运动补偿像素值为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值;
若所述第一像素点处于静止区域,根据所述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,然后根据所述第二融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的降噪像素值计算所述第一像素点对应的第二降噪像素值,所述第二帧差阈值大于所述第一帧差阈值,所述第二帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的降噪像素值之间的差值,所述降噪像素值为所述第一像素点在前一帧的降噪像素点对应位置的像素值。
结合第一方面,在第一方面的第一种可能的实现方式中,所述获取噪声图像的第一分块的量化噪声,包括:
将所述第一分块划分为多个子块,每个子块包括有多个像素点;
获取第一子块中所有像素点的量化噪声,根据所述第一子块中所有像素点的量化噪声获取所述第一子块的量化噪声,所述第一子块为所述第一分块中的任意一个子块;分别获取所述第一分块中除所述第一子块以外的所有子块的量化噪声;
对所述第一分块中所有子块的量化噪声计算平均量化噪声,将所述平均量化噪声作为所述第一分块的量化噪声,或,对所述第一分块中所有子块的量化噪声分段后进行累积,将累积直方图下大于预置的噪声阈值的量化噪声作为所述第一分块的量化噪声。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述第一子块中所有像素点的量化噪声获取所述第一子块的量化噪声,包括:
判断所述第一子块中的各个像素点是否处于平坦区域;
获取所述第一子块中处于平坦区域的所有像素点的量化噪声;
根据所述第一子块中处于平坦区域的所有像素点的量化噪声计算所述第一子块的量化噪声。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断所述第一子块中的各个像素点是否处于平坦区域,包括:
获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以所述第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核,计算所述第一像素点的边缘估计值;
判断所述第一像素点的边缘估计值是否大于边缘区域阈值,若所述第一像素点的边缘估计值大于边缘区域阈值,判定所述第一像素点处于边缘区域,若所述第一像素点的边缘估计值小于或等于边缘区域阈值,判定所述第一像素点未处于边缘区域;
根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值;
判断所述第一像素点的纹理估计值是否大于纹理区域阈值,若所述第一像素点的纹理估计值大于纹理区域阈值,判定所述第一像素点处于纹理区域,若所述第一像素点的纹理估计值小于或等于纹理区域阈值,判定所述第一像素点未处于纹理区域;
其中,若所述第一像素点同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域,则所述第一像素点处于平坦区域。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核计算所述第一像素点的边缘估计值,包括:
通过如下方式计算所述第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述EM(x,y)为所述第一像素点的边缘估计值,所述NH(x,y)为所述噪声估计邻域,所述E_h、E_v、E_p45、E_n45为所述索贝尔边缘卷积核,所述*为卷积符号;
所述根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值,包括:
通过如下方式计算所述第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值;
通过如下方式判断所述第一像素点是否同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,所述EM(x,y)为所述第一像素点的边缘估计值,所述EGth为所述边缘区域阈值,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述MNth为所述纹理区域阈值。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述获取所述第一子块中所有像素点的量化噪声,包括:
获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
通过如下方式计算出所述第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述pixel_noise(x,y)为所述第一像素点的量化噪声,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值。
结合第一方面,在第一方面的第六种可能的实现方式中,所述根据所述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,包括:
根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量;
根据所述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一像素点的像素值对所述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置;
根据所述第一分块的量化噪声获取所述第一分块中除所述第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量;
根据所述第一分块中除所述第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一分块中除所述第一像素点以外的其它像素点的像素值,对所述第一分块中除所述第一像素点以外的其它像素点进行运动检测,得到所述第一分块中除所述第一像素点以外的其它像素点在下一帧的像素位置。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述根据所述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一像素点的像素值对所述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置,包括:
根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值;
根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值;
根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值;
根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量;
计算所述像素相似性匹配量取得最小值时所述第一像素点在下一帧的像素位置。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,所述△gray′为所述亮度变化值,所述lath(noiselvl)为所述第一像素点的亮度抗噪量,所述△gray=abs(gm(x,y)-gm+1(x+i,y+j)),所述(x,y)为所述第一像素点在当前帧的像素位置,所述gm(x,y)为所述第一像素点在第m帧的像素值,所述第m帧为所述第一像素点的当前帧,所述第(m+1)帧为所述第一像素点的下一帧,所述gm+1(x+i,y+j)为所述第一像素点在第(m+1)帧的像素值;
所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,所述△gradh′为所述水平方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
所述gm(x+1,y)为所述第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,所述gm(x-1,y)为所述第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,所述gm+1(x+i+1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,所述gm+1(x+i-1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,所述△gradv′为所述垂直方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
所述gm(x,y+1)为所述第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,所述gm(x,y-1)为所述第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,所述gm+1(x+i,y+j+1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,所述gm+1(x+i,y+j-1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值;
所述根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量,包括:
通过如下方式计算所述第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′
其中,所述cost-volume为所述第一像素点的像素相似性匹配量,所述△gray′为所述亮度变化值,所述△gradh′为所述水平方向梯度变化值,所述△gradv′为所述垂直方向梯度变化值。
结合第一方面的第六种可能的实现方式,在第一方面的第九种可能的实现方式中,所述获取噪声图像的第一分块的量化噪声之后,还包括:
获取所述噪声图像的所有分块共N个的量化噪声;
将N个分块的量化噪声与预置的N个量化阈值进行比较,将所述N个分块的量化噪声划分为(N+1)个噪声等级;
所述根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量,包括:
提取所述第一分块的噪声等级,根据噪声等级与亮度抗噪量的正相关关系获取所述第一像素点的亮度抗噪量,根据噪声等级与梯度抗噪量的正相关关系获取所述第一像素点的梯度抗噪量。
结合第一方面,在第一方面的第十种可能的实现方式中,所述根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断所述第一像素点处于运动区域还是静止区域,包括:
根据所述运动估计邻域内所有像素点在当前帧的像素位置和在下一帧的像素位置统计所述运动估计邻域内处于静止区域的像素点个数;
判断所述运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值的大小关系;
若所述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,则判定所述第一像素点处于静止区域;
若所述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,则判定所述第一像素点处于运动区域。
结合第一方面,在第一方面的第十一种可能的实现方式中,所述根据所述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,包括:
判断所述第一像素点的第一帧差是否小于预置的第一帧差阈值;
若所述第一像素点的第一帧差小于或等于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一融合系数;
若所述第一像素点的第一帧差大于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,根据所述第一帧差阈值、所述第一像素点的第一帧差和所述第一帧差权重系数选择第一融合系数。
结合第一方面,在第一方面的第十二种可能的实现方式中,所述根据所述第一融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的运动补偿像素值计算所述第一像素点对应的第一降噪像素值,包括:
通过如下方式计算所述第一像素点对应的第一降噪像素值:
TNR Output(T)_fir=TNR Output_mc(T-1)×alpha_fir+Frame Input(T)×(1-alpha_fir),
其中,所述TNR Output(T)_fir为所述第一像素点对应的第一降噪像素值,所述TNR Output_mc(T-1)为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿得到第一像素点对应位置的像素值,所述alpha_fir为所述第一融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
结合第一方面,在第一方面的第十三种可能的实现方式中,所述根据所述第二融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的降噪像素值计算所述第一像素点对应的第二降噪像素值,包括:
通过如下方式计算所述第一像素点对应的第二降噪像素值:
TNR Output(T)_sec=TNR Output(T-1)×alpha_sec+Frame Input(T)×(1-alpha_sec),
其中,所述TNR Output(T)_sec为所述第一像素点对应的第二降噪像素值,所述TNR Output(T-1)为所述第一像素点在前一帧的降噪像素点对应位置的像素值,所述alpha_sec为所述第二融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
第二方面,本发明实施例还提供一种噪声图像的时域降噪装置,包括:
噪声获取模块,用于噪声获取噪声图像的第一分块的量化噪声,所述第一分块为所述噪声图像划分为多个分块中的任意一个分块;
运动估计模块,用于根据所述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置、运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,其中,所述运动估计邻域包括以所述第一像素点为中心的相邻像素点,所述第一像素点为所述第一分块中的任意一个像素点;
动静判决模块,用于根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断所述第一像素点处于运动区域还是静止区域,若所述第一像素点处于运动区域,触发执行第一融合系数选取模块和第一时域降噪模块,若所述第一像素点处于静止区域,触发执行第二融合系数选取模块和第二时域降噪模块,其中,
所述第一融合系数选取模块,用于当所述第一像素点处于运动区域时,根据所述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,所述第一帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的运动补偿像素值之间的差值;
所述第一时域降噪模块,用于根据所述第一融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的运动补偿像素值计算所述第一像素点对应的第一降噪像素值,所述运动补偿像素值为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值;
所述第二融合系数选取模块,用于当所述第一像素点处于静止区域时,根据所述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,,所述第二帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的降噪像素值之间的差值,所述第二帧差阈值大于所述第一帧差阈值;
所述第二时域降噪模块,用于根据所述第二融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的降噪像素值计算所述第一像素点对应的第二降噪像素值,所述降噪像素值为所述第一像素点在前一帧的降噪像素点对应位置的像素值。
结合第一方面,在第一方面的第一种可能的实现方式中,所述噪声获取模块,包括:
子块划分子模块,用于将所述第一分块划分为多个子块,每个子块包括有多个像素点;
量化噪声获取子模块,用于获取第一子块中所有像素点的量化噪声,根据所述第一子块中所有像素点的量化噪声获取所述第一子块的量化噪声,所述第一子块为所述第一分块中的任意一个子块;分别获取所述第一分块中除所述第一子块以外的所有子块的量化噪声;
分块噪声获取子模块,用于对所述第一分块中所有子块的量化噪声计算平均量化噪声,将所述平均量化噪声作为所述第一分块的量化噪声,或,对所述第一分块中所有子块的量化噪声分段后进行累积,将累积直方图下大于预置的噪声阈值的量化噪声作为所述第一分块的量化噪声。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述量化噪声获取子模块,包括:
区域判断单元,用于判断所述第一子块中的各个像素点是否处于平坦区域;
平坦区域量化值获取单元,用于获取所述第一子块中处于平坦区域的所有像素点的量化噪声;
子块量化值获取单元,用于根据所述第一子块中处于平坦区域的所有像素点的量化噪声计算所述第一子块的量化噪声。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述区域判断单元,包括:
像素值获取子单元,用于获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以所述第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
边缘估计子单元,用于根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核,计算所述第一像素点的边缘估计值;
边缘区域判断子单元,用于判断所述第一像素点的边缘估计值是否大于边缘区域阈值,若所述第一像素点的边缘估计值大于边缘区域阈值,判定所述第一像素点处于边缘区域,若所述第一像素点的边缘估计值小于或等于边缘区域阈值,判定所述第一像素点未处于边缘区域;
纹理估计子单元,用于根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值;
纹理区域判断子单元,用于判断所述第一像素点的纹理估计值是否大于纹理区域阈值,若所述第一像素点的纹理估计值大于纹理区域阈值,判定所述第一像素点处于纹理区域,若所述第一像素点的纹理估计值小于或等于纹理区域阈值,判定所述第一像素点未处于纹理区域;
平坦区域判断子单元,用于当所述第一像素点同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域,则所述第一像素点处于平坦区域。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述边缘估计子单元,具体用于通过如下方式计算所述第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述EM(x,y)为所述第一像素点的边缘估计值,所述NH(x,y)为所述噪声估计邻域,所述E_h、E_v、E_p45、E_n45为所述索贝尔边缘卷积核,所述*为卷积符号;
所述纹理估计子单元,具体用于通过如下方式计算所述第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值;
所述平坦区域判断子单元,用于通过如下方式判断所述第一像素点是否同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,所述EM(x,y)为所述第一像素点的边缘估计值,所述EGth为所述边缘区域阈值,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述MNth为所述纹理区域阈值。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述量化噪声获取子模块,具体用于获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
通过如下方式计算出所述第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述pixel_noise(x,y)为所述第一像素点的量化噪声,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值。
结合第一方面,在第一方面的第六种可能的实现方式中,所述运动估计模块,包括:
抗噪量获取子模块,用于根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量;
运动检测子模块,用于根据所述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一像素点的像素值对所述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述运动检测子模块,包括:
亮度计算单元,用于根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值;
水平梯度计算单元,用于根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值;
垂直梯度计算单元,用于根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值;
相似性匹配量计算单元,用于根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量;
像素位置计算单元,用于计算所述像素相似性匹配量取得最小值时所述第一像素点在下一帧的像素位置。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述亮度计算单元,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,所述△gray′为所述亮度变化值,所述lath(noiselvl)为所述第一像素点的亮度抗噪量,所述△gray=abs(gm(x,y)-gm+1(x+i,y+j)),所述(x,y)为所述第一像素点在当前帧的像素位置,所述gm(x,y)为所述第一像素点在第m帧的像素值,所述第m帧为所述第一像素点的当前帧,所述第(m+1)帧为所述第一像素点的下一帧,所述gm+1(x+i,y+j)为所述第一像素点在第(m+1)帧的像素值;
所述水平梯度计算单元,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,所述△gradh′为所述水平方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
所述gm(x+1,y)为所述第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,所述gm(x-1,y)为所述第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,所述gm+1(x+i+1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,所述gm+1(x+i-1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
所述垂直梯度计算单元,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,所述△gradv′为所述垂直方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
所述gm(x,y+1)为所述第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,所述gm(x,y-1)为所述第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,所述gm+1(x+i,y+j+1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,所述gm+1(x+i,y+j-1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值;
所述相似性匹配量计算单元,具体用于通过如下方式计算所述第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′
其中,所述cost-volume为所述第一像素点的像素相似性匹配量,所述△gray′为所述亮度变化值,所述△gradh′为所述水平方向梯度变化值,所述△gradv′为所述垂直方向梯度变化值。
结合第一方面的第六种可能的实现方式,在第一方面的第九种可能的实现方式中,所述噪声获取模块,还用于获取所述噪声图像的所有分块共N个的量化噪声;将N个分块的量化噪声与预置的N个量化阈值进行比较,将所述N个分块的量化噪声划分为(N+1)个噪声等级;
所述抗噪量获取子模块,具体用于提取所述第一分块的噪声等级,根据噪声等级与亮度抗噪量的正相关关系获取所述第一像素点的亮度抗噪量,根据噪声等级与梯度抗噪量的正相关关系获取所述第一像素点的梯度抗噪量。
结合第一方面,在第一方面的第十种可能的实现方式中,所述动静判决模块,包括:
统计子模块,用于根据所述运动估计邻域内所有像素点在当前帧的像素位置和在下一帧的像素位置统计所述运动估计邻域内处于静止区域的像素点个数;
动静判决子模块,用于判断所述运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值的大小关系;
静止判定子模块,用于若所述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,则判定所述第一像素点处于静止区域;
运动判定子模块,用于若所述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,则判定所述第一像素点处于运动区域。
结合第一方面,在第一方面的第十一种可能的实现方式中,所述第一融合系数选取模块,包括:
第一帧差判断子模块,用于判断所述第一像素点的第一帧差是否小于预置的第一帧差阈值;
第一选取子模块,用于若所述第一像素点的第一帧差小于或等于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一融合系数;
第二选取子模块,用于若所述第一像素点的第一帧差大于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,根据所述第一帧差阈值、所述第一像素点的第一帧差和所述第一帧差权重系数选择第一融合系数。
结合第一方面,在第一方面的第十二种可能的实现方式中,所述第一时域降噪模块,具体用于通过如下方式计算所述第一像素点对应的第一降噪像素值:
TNR Output(T)_fir=TNR Output_mc(T-1)×alpha_fir+Frame Input(T)×(1-alpha_fir),
其中,所述TNR Output(T)_fir为所述第一像素点对应的第一降噪像素值,所述TNR Output_mc(T-1)为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿得到第一像素点对应位置的像素值,所述alpha_fir为所述第一融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
结合第一方面,在第一方面的第十三种可能的实现方式中,所述第二时域降噪模块,具体用于通过如下方式计算所述第一像素点对应的第二降噪像素值:
TNR Output(T)_sec=TNR Output(T-1)×alpha_sec+Frame Input(T)×(1-alpha_sec),
其中,所述TNR Output(T)_sec为所述第一像素点对应的第二降噪像素值,所述TNR Output(T-1)为所述第一像素点在前一帧的降噪像素点对应位置的像素值,所述alpha_sec为所述第二融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
结合第二方面,在第二方面的第一种可能的实现方式中,
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,将噪声图像划分为多个分块,首先获取其中第一分块的量化噪声,然后根据该第一分块的量化噪声检测运动估计邻域内所有像素点分别从当前帧的像素位置移动到下一帧的像素位置,接下来根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断第一像素点处于运动区域还是静止区域,最后对于第一像素点处于动静区域的不同判决分别设置适应于动静不同区域的帧差阈值,并采用适用于动静不同区域的帧差计算方式和前一帧像素值计算方式,最后根据针对第一像素点的运动估计结果选取的融合系数和前一帧的像素值、第一像素点在当前帧的像素值选取适用于动静不同区域的降噪融合方式。本发明实施例中可以结合第一像素点所属的第一分块的量化噪声进行动静判决,误判的可能性很小,并对于第一像素点的动静判决分别设置适用于动静不同区域的帧差阈值和采用不同的帧差计算方式,针对适用于动静不同区域的帧差阈值和帧差计算方式选择适用于动静不同区域的融合系数,针对适用于动静不同区域的融合系数和帧差计算方式以及第一像素点在当前帧的像素值选择降噪融合方式,可以实现针对噪声图像的动静不同区域分别进行降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
具体实施方式
本发明实施例提供了一种噪声图像的时域降噪方法和相关装置,用于实现对噪声图像的降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明移动设备的噪声图像的时域降噪方法的一个实施例,可以包括:获取噪声图像的第一分块的量化噪声,上述第一分块为上述噪声图像划分为多个分块中的任意一个分块;根据上述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,其中,上述运动估计邻域包括以上述第一像素点为中心的相邻像素点,上述第一像素点为上述第一分块中的任意一个像素点;根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断上述第一像素点处于运动区域还是静止区域;若上述第一像素点处于运动区域,根据上述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,然后根据上述第一融合系数、上述第一像素点在当前帧的像素值和上述第一像素点在前一帧的运动补偿像素值计算上述第一像素点对应的第一降噪像素值,上述第一帧差为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的运动补偿像素值之间的差值,上述运动补偿像素值为上述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值;若上述第一像素点处于静止区域,根据上述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,然后根据上述第二融合系数、上述第一像素点在当前帧的像素值和上述第一像素点在前一帧的降噪像素值计算上述第一像素点对应的第二降噪像素值,上述第二帧差阈值大于上述第一帧差阈值,上述第二帧差为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的降噪像素值之间的差值,上述降噪像素值为上述第一像素点在前一帧的降噪像素点对应位置的像素值。
请参阅图1所示,本发明一个实施例提供的噪声图像的时域降噪方法,可以包括如下步骤:
101、获取噪声图像的第一分块的量化噪声。
其中,上述第一分块为上述噪声图像划分为多个分块中的任意一个分块。
在本发明实施例中,数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,因此将这种受到噪声干扰的数字图像称之为噪声图像。本发明实施例中首先将噪声图像划分为多个分块,则每个分块的图像在数字化和传输过程中导致的噪声干扰可能不同,需要针对各个分块的不同实际情况分别计算其量化噪声,本发明实施例中以对第一分块所包括的第一像素点为例来说明如何对噪声图像进行时域降噪,当然对于噪声图像的其它分块包括的像素点的处理过程也可以参照对第一像素点的处理方法。
在本发明的一些实施例中,对噪声图像划分对多个分块之后,使用第一分块包括的像素点的像素值来获取该噪声图像的第一分块的量化噪声,在实际应用中有多种实现方式,例如,步骤101获取噪声图像的第一分块的量化噪声,具体可以包括如下步骤:
A1、将上述第一分块划分为多个子块,每个子块包括有多个像素点;
A2、获取第一子块中所有像素点的量化噪声,根据上述第一子块中所有像素点的量化噪声获取上述第一子块的量化噪声,其中,上述第一子块为上述第一分块中的任意一个子块;分别获取第一分块中除第一子块以外的所有子块的量化噪声;
A3、对上述第一分块中所有子块的量化噪声计算平均量化噪声,将上述平均量化噪声作为上述第一分块的量化噪声,或,对上述第一分块中所有子块的量化噪声分段后进行累积,将累积直方图下大于预置的噪声阈值的量化噪声作为上述第一分块的量化噪声。
对于步骤A1,噪声图像的第一分块被划分为多个子块,则噪声图像的第一分块中包括的所有像素点被划分到各个子块中,步骤A2中描述的是对第一分块包括的第一子块的量化噪声的计算以及第一分块中除第一子块以外的所有子块的量化噪声的计算,计算出第一分块中所有子块的量化噪声之后,步骤A3中计算第一分块的量化噪声有两种不同的实现方式,第一种是通过对所有子块的量化噪声取其均值,作为第一分块的量化噪声,第二种是对所有子块的量化噪声进行分段累积,制作成累积直方图,然后设置一个噪声阈值,对于该累积直方图下大于该噪声阈值的量化噪声作为第一分块的量化噪声。
在本发明的另一些实施例中,步骤A2获取所述第一子块中所有像素点的量化噪声,包括:
获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
通过如下方式计算出所述第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述pixel_noise(x,y)为所述第一像素点的量化噪声,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值。
在本发明的另一些实施例中,步骤A2根据上述第一子块中所有像素点的量化噪声获取上述第一子块的量化噪声,具体可以包括如下步骤:
A21、判断上述第一子块中的各个像素点是否处于平坦区域;
A22、获取上述第一子块中处于平坦区域的所有像素点的量化噪声;
A23、根据上述第一子块中处于平坦区域的所有像素点的量化噪声计算上述第一子块的量化噪声。
其中,步骤A21中在判断第一子块中的像素点是否处于平坦区域时,可以对第一子块包括的所有像素点划分为三类:第一类是处于平坦区域的像素点,第二类是处于边缘区域的像素点,第三类是处于纹理区域的像素点,则计算第一子块的量化噪声时可以忽略处于纹理区域的像素点和处于边缘区域的像素点,只将第一子块中处于平坦区域的像素点用来计算第一子块的量化噪声,例如步骤A23中可以获取第一子块中处于平坦区域的所有像素点的量化噪声的最小值,将该最小的量化噪声作为第一子块的量化噪声,也可以获取第一子块中处于平坦区域的像素点的量化噪声的平均值,将该平均值作为第一子块的量化噪声。
在本发明的另一些实施例中,步骤A21判断第一子块中的各个像素点是否处于平坦区,具体可以包括如下步骤:
A211、获取噪声估计邻域内所有像素点的像素值,上述噪声估计邻域为以第一像素点为中心用于确定上述第一像素点的量化噪声的相邻像素点,其中第一像素点为第一子块中的任意一个像素点;
A212、根据噪声估计邻域内所有像素点的像素值和索贝尔(sobel)边缘卷积核,计算上述第一像素点的边缘估计值;
A213、判断上述第一像素点的边缘估计值是否大于边缘区域阈值,若第一像素点的边缘估计值大于边缘区域阈值,判定上述第一像素点处于边缘区域,若第一像素点的边缘估计值小于或等于边缘区域阈值,判定上述第一像素点未处于边缘区域;
A214、根据上述噪声估计邻域内所有像素点的像素值计算上述第一像素点的纹理估计值;
A215、判断上述第一像素点的纹理估计值是否大于纹理区域阈值,若第一像素点的纹理估计值大于纹理区域阈值,判定上述第一像素点处于纹理区域,若第一像素点的纹理估计值小于或等于纹理区域阈值,判定上述第一像素点未处于纹理区域;
其中,若上述第一像素点同时满足如下条件:上述第一像素点未处于边缘区域和上述第一像素点未处于纹理区域,则上述第一像素点处于平坦区域。
其中,边缘区域阈值和纹理区域阈值需要根据具体的应用场景来设定,具体的取值方式可以根据实际的应用场景来决定。
具体的,步骤A212根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核计算所述第一像素点的边缘估计值,包括:
通过如下方式计算所述第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述EM(x,y)为所述第一像素点的边缘估计值,所述NH(x,y)为所述噪声估计邻域,所述E_h、E_v、E_p45、E_n45为所述索贝尔边缘卷积核,所述*为卷积符号;
A214所述根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值,包括:
通过如下方式计算所述第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值;
通过如下方式判断所述第一像素点是否同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,所述EM(x,y)为所述第一像素点的边缘估计值,所述EGth为所述边缘区域阈值,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述MNth为所述纹理区域阈值。
需要说明的是,在本发明实施例中,步骤101获取噪声图像的第一分块的量化噪声之后,还可以包括如下步骤:
获取上述噪声图像的所有分块共N个的量化噪声;
将N个分块的量化噪声与预置的N个量化阈值进行比较,将上述N个分块的量化噪声划分为(N+1)个噪声等级。
其中,N为非零自然数,例如,N取值为7,将噪声图像共划分为7个分块,根据前述获取第一分块的量化噪声的方法,分别计算出噪声图像的第二分块的量化噪声、第三分块的量化噪声、第四分块的量化噪声、第五分块的量化噪声、第六分块的量化噪声、第七分块的量化噪声,根据预先设置的7个量化阈值,就可以将7个分块的量化噪声划分为8个噪声等级,分别为Noise_level 0、Noise_level 1、Noise_level 2、Noise_level 3、Noise_level 4、Noise_level 5、Noise_level 6、Noise_level 7。
将噪声图像的每个分块的量化噪声划分到不同的噪声等级后,可以根据对已知噪声图像在噪声环境中的仿真结果设置像素点的多个参量与该噪声等级的关系,具体的,可以以图示的方式展示出来,则通过图示就可以直观的获取噪声等级与参量的比例关系,例如,融合参数与噪声等级的正相关关系,亮度抗噪量与噪声等级的正相关关系,梯度抗噪量与噪声等级的正相关关系等等。
102、根据上述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置。
其中,上述运动估计邻域包括以上述第一像素点为中心的相邻像素点,上述第一像素点为上述第一分块中的任意一个像素点。
在本发明实施例中,为了判断第一像素点从当前帧过度到下一帧时该第一像素点是否发生运动,可以以第一像素点为中心划分出1×n的一个邻域,将该邻域定义为运动估计邻域,运动估计邻域包括被作为中心像素点以及该中心像素点的相邻像素点,例如当n=5时,表示从第一像素点的左边第二个像素点开始直到第一像素点的右边第二个像素点为止,包括第一像素点共有5个像素点组成第一像素点的运动估计邻域。
在划分出第一像素点的运动估计邻域之后,根据第一分块的量化噪声检测第一像素点和该运动估计邻域内的多个像素点分别从当前的像素位置移动到下一帧像素位置,从而判断运动估计邻域内所有像素点分别处于静止区域还是运动区域。
在本发明的一些实施例中,步骤102根据上述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,具体可以包括如下步骤:
B1、根据上述第一像素点所属的第一分块的量化噪声获取上述第一像素点的亮度抗噪量和梯度抗噪量;
B2、根据上述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时上述第一像素点的像素值对上述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置;
B3、根据第一分块的量化噪声获取第一分块中除第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量;
B4、根据第一分块中除第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时第一分块中除第一像素点以外的其它像素点的像素值,对第一分块中除第一像素点以外的其它像素点进行运动检测,得到第一分块中除第一像素点以外的其它像素点在下一帧的像素位置。
需要说明的是,步骤B1和步骤B2描述的是如何检测得到第一像素点在下一帧的像素位置,步骤B3和步骤B4描述的是如何检测得到第一分块中除第一像素点以外的其它像素点在下一帧的像素位置,其中对第一像素点在下一帧的像素位置的检测可以和第一分块中除第一像素点以外的其它像素点在下一帧的像素位置的检测同时进行,也可以先检测第一分块中任何一个像素点在下一帧的像素位置,也可以同时检测第一分块中所有像素点在一下帧的像素位置,此处不做限定,步骤B3和步骤B4、步骤B1和步骤B2的实现方式相类似,接下来对步骤B1和步骤B2进行进一步的详细说明。
需要说明的是,在本发明实施例中,步骤B1根据上述第一像素点所属的第一分块的量化噪声获取上述第一像素点的亮度抗噪量和梯度抗噪量,具体可以包括:
提取上述第一分块的噪声等级,根据噪声等级与亮度抗噪量的正相关关系获取上述第一像素点的亮度抗噪量,根据噪声等级与梯度抗噪量的正相关关系获取上述第一像素点的梯度抗噪量。
需要说明的是,当针对噪声图像的所有分块的量化噪声的取值设置有多个噪声等级时,可以根据第一像素点所属的哪个分块(即第一分块)提取出该分块的噪声等级,然后根据噪声等级与亮度抗噪量的正相关关系获取第一像素点的亮度抗噪量,其中,噪声等级与亮度抗噪量的正相关关系具体可以指的是正比例关系或者正比趋势关系,可以根据对已知噪声图像在噪声环境中的仿真结果来设置一个噪声等级与亮度抗噪量的正相关关系示意图,可以通过多个噪声图像在某个具体的噪声环境中图像的变化情况得到经验值,根据该经验值也可以设置噪声等级与亮度抗噪量的正相关关系示意图。请参阅如图2所示,为本发明实施例中一种噪声等级与亮度抗噪量的正相关关系示意图,通过该噪声等级与亮度抗噪量的正相关关系示意图,就可以直观的根据噪声等级获取到亮度抗噪量,例如,噪声等级为3级时,对应于亮度抗噪量(lath)的取值为4,当噪声等级为5级时,对应于亮度抗噪量的取值为14。其中,噪声等级与梯度抗噪量的正相关关系也可以以图示的方式进行实例说明,此处不再赘述。噪声等级与亮度抗噪量的正相关关系示意图需要结合具体的应用场景来灵活设置,此处给出图示意在说明噪声等级和亮度抗噪量的正相关关系的一种实现方式,并不作为所有场景下亮度抗噪量的取值特指情况。
在本发明的另一些实施例中,步骤B2根据上述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时上述第一像素点的像素值对上述第一像素点进行运动检测,得到上述第一像素点在下一帧的像素位置,具体可以包括如下步骤:
B21、根据上述第一像素点的亮度抗噪量计算上述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值;
B22、根据上述第一像素点的梯度抗噪量计算上述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值;
B23、根据上述第一像素点的梯度抗噪量计算上述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值;
B24、根据上述亮度变化值、上述水平方向梯度变化值和上述垂直方向梯度变化值计算上述第一像素点的像素相似性匹配量;
B25、计算上述像素相似性匹配量取得最小值时上述第一像素点在下一帧的像素位置。
其中,步骤B21、B22、B23在计算出亮度变化值、水平方向梯度变化值和垂直方向梯度变化值之后,将亮度变化值、水平方向梯度变化值和垂直方向梯度变化值相加,就可以得到像素相似性匹配量,然后步骤B25对像素相似性匹配量取其最小值(min),则此时就可以计算出第一像素点在下一帧的哪个像素位置时像素相似性匹配量才能取得最小值。
具体的,步骤B21根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,所述△gray′为所述亮度变化值,所述lath(noiselvl)为所述第一像素点的亮度抗噪量,所述△gray=abs(gm(x,y)-gm+1(x+i,y+j)),所述(x,y)为所述第一像素点在当前帧的像素位置,所述gm(x,y)为所述第一像素点在第m帧的像素值,所述第m帧为所述第一像素点的当前帧,所述第(m+1)帧为所述第一像素点的下一帧,所述gm+1(x+i,y+j)为所述第一像素点在第(m+1)帧的像素值;
步骤B22所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,所述△gradh′为所述水平方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
所述gm(x+1,y)为所述第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,所述gm(x-1,y)为所述第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,所述gm+1(x+i+1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,所述gm+1(x+i-1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
步骤B23所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,所述△gradv′为所述垂直方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
所述gm(x,y+1)为所述第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,所述gm(x,y-1)为所述第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,所述gm+1(x+i,y+j+1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,所述gm+1(x+i,y+j-1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值;
B24所述根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量,包括:
通过如下方式计算所述第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′
其中,所述cost-volume为所述第一像素点的像素相似性匹配量,所述△gray′为所述亮度变化值,所述△gradh′为所述水平方向梯度变化值,所述△gradv′为所述垂直方向梯度变化值。
103、根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断上述第一像素点处于运动区域还是静止区域,若上述第一像素点处于运动区域,触发执行步骤104和步骤105,若上述第一像素点处于静止区域,触发执行步骤106和步骤107。
在本发明实施例中,在检测出运动估计邻域内所有像素点从当前帧的像素位置过度到下一帧的像素位置时是否发生移动之后,将运动估计邻域内的多个像素点划分为处于静止区域或处于运动区域,那么运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况指的是运动估计邻域内的多个像素点在从当前帧到下一帧时是否发生了移动,从而判断出运动估计邻域内的多个像素点处于静止区域还是运动区域。
在本发明的一些实施例中,步骤103根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断上述第一像素点处于运动区域还是静止区域,具体可以包括如下步骤:
C1、根据上述运动估计邻域内所有像素点在当前帧的像素位置和在下一帧的像素位置统计上述运动估计邻域内处于静止区域的像素点个数;
C2、判断上述运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值的大小关系,若上述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,执行步骤C3,若上述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,执行步骤C4。
C3、若上述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,则判定上述第一像素点处于静止区域;
C4、若上述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,则判定上述第一像素点处于运动区域。
其中,对于第一像素点的运动估计邻域,若该运动估计邻域内处于静止区域的像素点大于或等于动静判别阈值,则认为该第一像素点同样处于静止区域,若该运动估计邻域内处于静止区域的像素点小于动静判别阈值,则认为该第一像素点处于运动区域,这种使用运动估计邻域来判断第一像素点的动静情况可以提高光流法运动估计的抗噪能力。
需要说明的是,本发明实施例中,预置的动静判别阈值可以设置为一个定值,也可以设置为根据运动估计邻域的大小而调整的值,也可以设置为根据像素点所属的分块的噪声等级而调整的值,具体可以实际的应用场景来设置动静判别阈值,此处不再赘述。
104、若上述第一像素点处于运动区域,根据上述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,然后触发执行步骤105。
其中,上述第一像素点的第一帧差(FD,Frame Difference)为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的运动补偿像素值之间的差值。本发明实施例中针对第一像素点处于运动区域和静止区域的不同,而分别采用适用于动静不同区域的不同的帧差计算方式。
在本发明实施例中,步骤102中检测出第一像素点从当前帧的像素位置移动到下一帧的像素位置后,若第一像素点处于运动区域,就可以根据第一像素点在当前帧的像素位置与第一像素点在前一帧的运动补偿像素值计算出该第一像素点的第一帧差。
在本发明实施例中,针对像素点处于静止区域还是运动区域而分别预置两个不同的帧差阈值,例如,对于处于运动区域的像素点预置第一帧差阈值,对于处于静止区域的像素点预置第二帧差阈值,并且第二帧差阈值大于第一帧差阈值。
本发明实施例中,融合(blending)系数alpha可以决定降噪强度,alpha∈[0,1],当alpha越大时降噪强度越大,当alpha越小时降噪强度就越小。当第一像素点处于运动区域时,选择第一帧差阈值,并以此作为选择融合系数的依据,假设选择出的融合系数为第一融合系数。
在本发明的一些实施例中,步骤104根据上述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,具体可以包括如下步骤:
D1、判断上述第一像素点的第一帧差是否小于预置的第一帧差阈值,若小于或等于第一帧差阈值,执行步骤D2,若大于第一帧差阈值,执行步骤D3;
D2、若上述第一像素点的第一帧差小于或等于上述第一帧差阈值,根据上述第一像素点所属的第一分块的量化噪声选择第一融合系数;
D3、若上述第一像素点的第一帧差大于上述第一帧差阈值,根据上述第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,根据上述第一帧差阈值、上述第一像素点的第一帧差和上述第一帧差权重系数选择第一融合系数。
其中,当第一像素点的第一帧差小于或等于第一帧差阈值时,噪声等级与融合系数成正相关关系,并且噪声等级与融合系数成正相关关系可以图示的方式来直观揭示,可以根据对已知噪声图像在噪声环境中的仿真结果来设置一个噪声等级与融合系数的正相关关系示意图,可以通过多个噪声图像在某个具体的噪声环境中图像的变化情况得到经验值,根据该经验值也可以设置噪声等级与融合系数的正相关关系示意图。请参阅如图3所示,为本发明实施例中一种噪声等级与融合系数的正相关关系示意图,通过该噪声等级与融合系数的正相关关系示意图可以直观的获取到融合系数,图3中noise_level表示噪声等级,alpha_in表示第一融合系数的取值。步骤D1中假设第一像素点的第一帧差为FD,第一帧差阈值为th1,当FD≤th1时,根据噪声等级与融合系数的正相关关系,为第一像素点选择的第一融合系数为alpha_in,根据第一像素点所属的第一分块的噪声等级不同,第一融合系数可以取不同的值。
当第一像素点的第一帧差大于第一帧差阈值时,根据第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,该第一帧差权重系数也可以根据像素点所属分块的噪声等级不同而取不同的值,当噪声等级越高时第一帧差权重系数也取值较大。步骤D3根据上述第一帧差阈值、上述第一像素点的第一帧差和上述第一帧差权重系数选择第一融合系数具体可以通过如下方式来获取:
步骤D1中假设第一像素点的第一帧差为FD,第一帧差阈值为th1,当FD>th1时,第一帧差权重系数为coff,假设当前噪声等级下可以选择的最高融合系数为alpha_in,此时alpha_in为一常数,第一融合系数用alpha来表示,则coff表示的物理含义为alpha取值的变化率,则第一融合系数可以通过如下方式来计算:
alpha=alpha_in-coff×(FD-th1)。
请参阅如图4所示,为本发明实施例提供的一种融合系数与第一帧差的关系示意图,其中,横轴FD表示第一帧差,纵轴alpha表示融合系数,当FD≤th1时,第一融合系数的取值为alpha_in,当FD>th1时,第一融合系数alpha=alpha_in-coff×(FD-th1),coff表示图中所示的斜线的斜率,对于第一像素点所属的第一分块的不同噪声等级,第一帧差权重系数coff有不同的取值,图4中使用不同的虚斜线给出的是几种可能的coff取值情况。
需要指出的是,图4中EXT为阈值扩展,且满足th2=th1+EXT,当帧差FD大于th2时,不进行降噪,即令alpha=0。
105、根据上述第一融合系数、上述第一像素点在当前帧的像素值和上述第一像素点在前一帧的运动补偿像素值计算上述第一像素点对应的第一降噪像素值。
其中,运动补偿像素值为上述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值。
在本发明实施例中,对于第一像素点处于运动区域,选择计算出第一像素点在前一帧的运动补偿像素值进行融合,根据选择的第一融合系数、第一像素点在当前帧的像素值和第一像素点在前一帧的运动补偿像素值计算第一像素点对应的第一降噪像素值。
需要说明的是,在本发明的一些实施例中,第一像素点在前一帧的运动补偿像素值可以通过如下实施例来获取。请参阅如图5所示,为基于光流法匹配的运动估计与补偿的TNR的实现流程示意图,以图像块为单位进行运动估计,根据运动估计结果对前一帧的降噪图像进行运动补偿后得到运动补偿帧,输入时域降噪输出的(T-1)对当前帧的运动补偿(T-1)和直通信号(指的是输入的噪声图像的当前帧),再根据帧差信息决定融合系数,结合选取的融合系数和该运动补偿帧与当前帧的噪声图像进行融合,从而完成对噪声图像的降噪处理。
在本发明的一些实施例中,步骤105根据上述第一融合系数、上述第一像素点在当前帧的像素值和上述第一像素点在前一帧的运动补偿像素值计算上述第一像素点对应的第一降噪像素值,具体可以包括:
通过如下方式计算第一像素点对应的第一降噪像素值:
TNR Output(T)_fir=TNR Output_mc(T-1)×alpha_fir+Frame Input(T)×(1-alpha_fir),
其中,TNR Output(T)_fir为第一像素点对应的第一降噪像素值,TNR Output_mc(T-1)为上述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿得到第一像素点对应位置的像素值,alpha_fir为第一融合系数,Frame Input(T)为第一像素点在当前帧的像素值。
106、若上述第一像素点处于静止区域,根据上述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,然后触发执行步骤107。
其中,上述第二帧差阈值大于上述第一帧差阈值。第二帧差为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的降噪像素值之间的差值。
在本发明实施例中,针对像素点处于静止区域还是运动区域而分别预置两个不同的帧差阈值,例如,对于处于运动区域的像素点预置第一帧差阈值,对于处于静止区域的像素点预置第二帧差阈值,并且第二帧差阈值大于第一帧差阈值。
本发明实施例中,融合系数alpha可以决定降噪强度,alpha∈[0,1],当alpha越大时降噪强度越大,当alpha越小时降噪强度就越小。当第一像素点处于静止区域时,选择第二帧差阈值,并以此作为选择融合系数的依据,假设选择出的融合系数为第二融合系数。
在本发明的一些实施例中,步骤106根据上述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,具体可以包括如下步骤:
E1、判断上述第一像素点的第二帧差是否小于预置的第二帧差阈值,若小于或等于第二帧差阈值,执行步骤E2,若大于第二帧差阈值,执行步骤E3;
E2、若上述第一像素点的第二帧差小于或等于上述第二帧差阈值,根据上述第一像素点所属的第一分块的量化噪声选择第二融合系数;
E3、若上述第一像素点的第二帧差大于上述第二帧差阈值,根据上述第一像素点所属的第一分块的量化噪声选择第二帧差权重系数,根据上述第二帧差阈值、上述第一像素点的第二帧差和上述第二帧差权重系数选择第二融合系数。
其中,当第一像素点的第二帧差小于或等于第二帧差阈值时,噪声等级与融合系数成正相关关系,并且噪声等级与融合系数成正相关关系可以图示的方式来直观揭示,可以根据对已知噪声图像在噪声环境中的仿真结果来设置一个噪声等级与融合系数的正相关关系示意图,可以通过多个噪声图像在某个具体的噪声环境中图像的变化情况得到经验值,根据该经验值也可以设置噪声等级与融合系数的正相关关系示意图,噪声等级与融合系数的正相关关系示意图与前述的图3相类似,不同之处在于,noise_level所对应的具体alpha_in的取值构成与图3中所示的有所不同,但是噪声等级与融合系数的关系仍然为正比例关系或正比趋势关系。
当第一像素点的第二帧差大于第二帧差阈值时,根据第一像素点所属的第一分块的量化噪声选择第二帧差权重系数,该第二帧差权重系数也可以根据像素点所属分块的噪声等级不同而取不同的值,当噪声等级越高时第二帧差权重系数也取值较大。步骤E3根据上述第二帧差阈值、上述第一像素点的第二帧差和上述第二帧差权重系数选择第二融合系数具体可以通过如下方式来获取:
步骤E1中假设第一像素点的第二帧差为FD,第二帧差阈值为th1′,当FD>th1′时,第一帧差权重系数为coff′,假设当前噪声等级下可以选择的最高融合系数为alpha_in′,此时alpha_in′为一常数,第二融合系数用alpha′来表示,则coff′表示的物理含义为alpha′取值的变化率,则第二融合系数可以通过如下方式来计算:
alpha′=alpha_in′-coff′×(FD-th1′)。
请参阅如图6所示,为本发明实施例提供的另一种融合系数与帧差的关系示意图,其中,横轴FD表示第二帧差,纵轴alpha′表示第二融合系数,当FD≤th1′时,第二融合系数的取值为alpha_in′,当FD>th1′时,第二融合系数alpha′=alpha_in′-coff′×(FD-th1′),coff′表示图中所示的斜线的斜率,对于第一像素点所属的第一分块的不同噪声等级,第二帧差权重系数coff′有不同的取值,图6中使用不同的虚斜线给出的是几种可能的coff′取值情况。
需要指出的是,图6中EXT′为阈值扩展,且满足th2′=th1′+EXT′,当帧差FD大于th2′时,不进行降噪,即令alpha′=0。其中图4和图6的不同之处在于th1、EXT、coff的取值与th1′、EXT′、coff′的取值不同。
需要说明的是,在本发明实施例中,对于第一像素点处于运动区域和静止区域的不同,对第一像素点的帧差计算分别采用不同的方式,当第一像素点处于运动区域时采用运动估计的方式计算其帧差,即第一帧差为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的运动补偿像素值之间的差值,当第一像素点处于静止区域时第二帧差为上述第一像素点在当前帧的像素值与上述第一像素点在前一帧的降噪像素值之间的差值。通过对于第一像素点所处动静不同区域而采用适用于动静不同区域的帧差计算方式,可以更准确的计算出第一像素点的帧差,能够适用于多种噪声场景。
107、根据上述第二融合系数、上述第一像素点在当前帧的像素值和上述第一像素点在前一帧的降噪像素值计算上述第一像素点对应的第二降噪像素值。
其中,上述降噪像素值为上述第一像素点在前一帧的降噪像素点对应位置的像素值。
在本发明实施例中,对于第一像素点处于静止区域,选择计算出第一像素点在前一帧的降噪像素值进行融合,根据选择的第二融合系数、第一像素点在当前帧的像素值和第一像素点在前一帧的降噪像素值计算第一像素点对应的第二降噪像素值。
需要说明的是,在本发明的一些实施例中,第一像素点在前一帧的降噪像素值可以通过如下实施例来获取。请参阅如图7所示,为基于光流法判定为静止区域的TNR的实现流程示意图,基于光流法判定为静止区域的TNR中,输入时域降噪输出的(T-1)和直通信号(指的是输入的噪声图像的当前帧),根据帧差大小决定融合系数,结合选取的融合系数和前一帧的降噪图像与当前帧的噪声图像进行融合,从而完成对噪声图像的降噪处理。
在本发明的一些实施例中,步骤107根据第二融合系数、第一像素点在当前帧的像素值和第一像素点在前一帧的降噪像素值计算第一像素点对应的第二降噪像素值,具体可以包括如下步骤:
通过如下方式计算第一像素点对应的第二降噪像素值:
TNR Output(T)_sec=TNR Output(T-1)×alpha_sec+Frame Input(T)×(1-alpha_sec),
其中,TNR Output(T)_sec为第一像素点对应的第二降噪像素值,TNR Output(T-1)为上述第一像素点在前一帧的降噪像素点对应位置的像素值,alpha_sec为第二融合系数,Frame Input(T)为第一像素点在当前帧的像素值。
在本发明实施例中,将噪声图像划分为多个分块,首先获取其中第一分块的量化噪声,然后根据该第一分块的量化噪声检测第一分块中运动估计邻域内所有像素点分别从当前帧的像素位置移动到下一帧的像素位置,接下来根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断第一像素点处于运动区域还是静止区域,最后对于第一像素点处于动静区域的不同判决分别设置适应于动静不同区域的帧差阈值,并采用适用于动静不同区域的帧差计算方式和前一帧像素值计算方式,最后根据针对第一像素点的运动估计结果选取的融合系数和前一帧的像素值、第一像素点在当前帧的像素值选取适用于动静不同区域的降噪融合方式。本发明实施例中可以结合第一像素点所属的第一分块的量化噪声进行动静判决,误判的可能性很小,并对于第一像素点的动静判决分别设置适用于动静不同区域的帧差阈值和采用不同的帧差计算方式,针对适用于动静不同区域的帧差阈值和帧差计算方式选择适用于动静不同区域的融合系数,针对适用于动静不同区域的融合系数和帧差计算方式以及第一像素点在当前帧的像素值选择降噪融合方式,可以实现针对噪声图像的动静不同区域分别进行降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例提供的噪声图像的时域降噪方法是一种基于噪声检测的光流法运动估计与补偿的TNR方法,该方法主要是基于噪声检测的噪声分级思想,利用噪声分级提高光流法运动估计与补偿抗噪能力,根据噪声分级和帧差信息自适应的完成融合降噪。请参阅如图8所示,为本发明实施例中一种噪声图像的时域降噪方法的总体流程示意图,主要实现思路包括如下四个主要部分:
1)、将图像划块,并按噪声检测得到的量化噪声对各块分级;
2)、利用确定的像素点所在块的噪声等级信息完成一种光流法运动估计与补偿的抗噪机制;
3)、利用运动估计信息与帧差信息选择降噪融合方式;
4)、利用噪声信息与帧差信息调整融合系数。
接下来分别对个部分进行举例说明:
1)、对噪声图像进行噪声检测。
请参阅如图9所示,为本发明实施例提供的对噪声图像进行分块的示意图,首先将噪声图像划分为多个分块,以箭头所指从右向左,一幅噪声图像被划分为n×m个分块(section),图例为2×2=4块,如图9所示,将当前帧的噪声图像划分为四个分块,分别为第一分块、第二分块、第三分块、第四分块。将每个分块再进一步的划分为多个子块,其中,子块也称之为点阵,也就是说,每个分块中都包含很多选定大小的点阵(例如5×5),称之为子块(block)。对于一个子块中的每一个像素点(pixel),例如对于第一分块的第一像素点,利用其噪声估计邻域内的多个像素点的像素值完成噪声值的量化。该噪声估计邻域包括一个3×3点阵,噪声估计邻域可以用NH9(x,y)来表示。
通过如下方式计算出第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,(x,y)为第一像素点在当前帧的像素位置,pixel_noise(x,y)为第一像素点的量化噪声,valuei为噪声估计邻域内的第i个像素值,NH(x,y)为噪声估计邻域,value_median为NH(x,y)中所有像素值的中间值或者平均值。
需要说明的是,NH(x,y)具体为3×3邻域时,可以用NH9(x,y)来表示,valuei可以具体指的是NH9(x,y)中像素亮度值。另外,value_median所表示的是3×3共九个像素点的点阵中把这九个像素亮度值按大小排序得到的中间大小的那个亮度值,或把九个像素亮度值取其均值得到的那个亮度值。
接下来,判断第一子块中第一像素点是否处于平坦区域:
首先检查第一像素点是否为边缘区域。
通过如下方式计算第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,(x,y)为第一像素点在当前帧的像素位置,EM(x,y)为第一像素点的边缘估计值,NH(x,y)为噪声估计邻域,E_h、E_v、E_p45、E_n45为索贝尔边缘卷积核,*为卷积符号。
其中,E_h、E_v、E_p45与E_n45为sobel边缘卷积核的取值情况,请参阅如图10所示的索贝尔边缘卷积核的取值情况示意图。
设定一个边缘区域阈值EGth,若EM(x,y)大于边缘区域阈值,判定第一像素点处于边缘区域,若EM(x,y)小于或等于边缘区域阈值,判定第一像素点未处于边缘区域。
接下来,检查第一像素点是否为纹理区域。
通过如下方式计算第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,(x,y)为第一像素点在当前帧的像素位置,Noise_Max_Min(x,y)为第一像素点的纹理估计值,valuei为噪声估计邻域内的第i个像素值,NH(x,y)为噪声估计邻域,value_median为NH(x,y)中所有像素值的中间值或者平均值。
设定一个纹理区域阈值MNth,若Noise_Max_Min(x,y)大于纹理区域阈值,判定第一像素点处于纹理区域,若Noise_Max_Min(x,y)小于或等于纹理区域阈值,判定第一像素点未处于纹理区域。
平坦区域要求被确定的第一像素点既不在边缘区域又不在纹理区域,即可以通过如下方式判断第一像素点是否同时满足条件:第一像素点未处于边缘区域和第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,EM(x,y)为第一像素点的边缘估计值,EGth为边缘区域阈值,Noise_Max_Min(x,y)为第一像素点的纹理估计值,MNth为纹理区域阈值。
判断第一像素点处于平坦区域或边缘区域或纹理区域之后,按照同样的方式判断第一像素点所属的第一子块的其它像素点处于平坦区域或边缘区域或纹理区域。
接下来获取第一子块中处于平坦区域的所有像素点的量化噪声,则该第一子块的量化噪声的大小取值为该第一子块中所有平坦区域像素点中量化噪声的最小值或所有平坦区域像素点量化噪声的平均值。
按照计算第一子块的量化噪声的方式计算第一分块中所有子块的量化噪声,然后将第一分块的量化噪声选取为该第一分块内所有子块(排除非平坦区域的子块)的平均噪声值,也可先将第一分块中所有子块的量化噪声分段后累积,将累积直方图下大于预置的噪声阈值的量化噪声作为第一分块的量化噪声。
为了详细说明使用累积直方图来计算第一分块的量化噪声,请参阅如图11-a和11-b所示,图11-a为本发明实施例提供的噪声图像的分块的量化噪声取值的累积直方图,图11-b为对累积直方图的说明示意图。其中,累积直方图为累计落在当前以及小于当前噪声等级所有的有效子块(block)的个数。
图11-a中,横轴表示噪声等级,分块的量化噪声共被划分为6个等级,分别为lv1、lv2、lv3、lv4、lv5、lv6,纵轴表示累积有效的block数。对于图11-b,横线表示的方块为lv1内的block个数,竖线表示的方块为lv2内的block个数,斜线表示的方块为lv3的block个数,累积直方图就是一个当前以及小于当前噪声等级所有的有效block数的一个累加。假设一共有6级,那么lv6的高度就代表了所有有效block的个数。
设定一个百分比阈值a,不妨令a=50%,那么如图11-b所示,取累积直方图下第一个i:噪声值i下的面积>总面积×a,那么可以认为该分块的噪声值为该噪声值i,图11-b中第一个满足该百分比阈值条件的噪声等级为lv3。
当获取到第一分块的量化噪声之后,还可以按照同样的方式获取噪声图像的所有分块共N个的量化噪声;将N个分块的量化噪声与预置的N个量化阈值进行比较,将N个分块的量化噪声划分为(N+1)个噪声等级。
2)、一种光流法运动估计与补偿的抗噪机制。
如图12所示为像素点从当前帧过度到下一帧的位置变化示意图,假设无噪图像的第m帧位于图12中左边图示的(x,y)处,从该(x,y)处沿着虚线所指方向移动到了图12中右边图示的第m+1帧的(x+i,y+j)处。则用于进行像素相似性匹配量(cost-volume)如下式:
cost-volume=△gray+△gradh+△gradv,
其中,△gray=abs(gm(x,y)-gm+1(x+i,y+j)),
△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
△gradv=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
需要说明的是,在噪声图像中像素相似性匹配量会受噪声影响造成运动检测失真,仍以对第一像素点的像素相似性匹配量计算为例进行说明,其他像素点的像素相似性匹配量计算方法可参照对第一像素点的计算方式。其中,(x,y)为第一像素点在当前帧的像素位置,本发明实施例可以采用如下的抗噪机制:
通过如下方式计算第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′,
其中,通过如下方式计算第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,△gray′为亮度变化值,lath(noiselvl)为第一像素点的亮度抗噪量,△gray=abs(gm(x,y)-gm+1(x+i,y+j)),(x,y)为第一像素点在当前帧的像素位置,gm(x,y)为第一像素点在第m帧的像素值,第m帧为第一像素点的当前帧,第(m+1)帧为第一像素点的下一帧,gm+1(x+i,y+j)为第一像素点在第(m+1)帧的像素值。
通过如下方式计算第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,△gradh′为水平方向梯度变化值,gath(noiselvl)为第一像素点的梯度抗噪量,
△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
gm(x+1,y)为第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,gm(x-1,y)为第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,gm+1(x+i+1,y+j)为第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,gm+1(x+i-1,y+j)为第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
通过如下方式计算第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,△gradv′为垂直方向梯度变化值,gath(noiselvl)为第一像素点的梯度抗噪量,
△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
gm(x,y+1)为第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,gm(x,y-1)为第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,gm+1(x+i,y+j+1)为第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,gm+1(x+i,y+j-1)为第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值。
需要说明的是,本发明实施例中,在提取第一分块的噪声等级之后,根据噪声等级与亮度抗噪量的正相关关系可以获取第一像素点的亮度抗噪量lath(noiselvl),根据噪声等级与梯度抗噪量的正相关关系获取第一像素点的梯度抗噪量gath(noiselvl)。其中,噪声等级与亮度抗噪量的正相关关系可以参阅如图2所示的噪声等级与亮度抗噪量的正相关关系示意图,噪声等级与梯度抗噪量的正相关关系可以基于和图2相类似的用于表述正比例关系或正比趋势关系的示意图。
3)、利用运动估计信息与帧差信息选择降噪融合方式。
如图13所示,为本发明实施例提供的运动估计邻域的实现方式示意图,划出以被确定的第一像素点为中心的1×n的相邻像素点组成运动估计邻域,图13中以1×5组成运动估计邻域为例,统计其中处于静止区域的像素点个数为still_cnt,判断运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值still_th的大小关系,若该邻域满足下式,认为该被确定的第一像素点处于静止区域,反之认为该第一像素点处于运动区域。
still_cnt>=still_th,
式中:
still_th为1×n邻域的动静判别阈值,可设置为定值或者根据邻域大小以及噪声级别进行调整,例如噪声等级低时取still_th的值大一些,噪声等级高时取still_th的值小一些。确定1×n邻域的目的在于提高光流法运动估计的抗噪能力。
针对第一像素点处于运动区域或是静止区域的不同,需要分别计算帧差阈值,并选择相应的融合系数,并选择不同的融合方法进行降噪处理,以提高本发明实施例的抗噪能力。
接下来说明针对第一像素点的动静判决对帧差阈值的调整。
对于静止区域的无运动干扰,相应帧差只受到噪声的干扰,而运动区域相应帧差除了受噪声干扰外,还受到运动相关的运动估计与补偿的干扰。因此在选取融合系数alpha时,可使静止区域较运动区域采用的帧差阈值大。若第一像素点处于运动区域,设置第一帧差阈值,若第一像素点处于静止区域,设置第二帧差阈值,并且第二帧差阈值大于第一帧差阈值。
接下来描述根据第一像素点的动静判决所选取的降噪融合方式。
请参阅如图14-a和图14-b所示,图14-a为本发明实施例中第一像素点处于运动区域的噪声图像示意图,图14-b为本发明实施例中第一像素点处于静止区域的噪声图像示意图。其中,图14-a和图14-b中,左部分为当前帧的噪声图像Frame Input(T),中部分为前一帧经过TNR后得到的图像TNROutput(T-1),右部分为前一帧经过TNR后并进行运动补偿后的到的图像FrameMC(T)。则对于图14-a而言,可以认为第一像素点处于运动区域,可以采用当前噪声图像与前一帧TNR且经过运动补偿的图像进行降噪融合,得到第一像素点对应的第一降噪像素值。则对于图14-b而言,可以认为第一像素点处于静止区域,可以采用当前噪声图像与前一帧TNR图像进行降噪融合,得到第一像素点对应的第二降噪像素值。其中,第一降噪像素值和第二降噪像素值的获取请参阅前述实施例中描述的公式,此处不再赘述。
4)、利用噪声信息与帧差信息调整融合系数。
针对第一像素点的动静判决结果的不同,分别结合像素点的噪声等级信息和帧差信息设置不同的融合系数,分别设置为第一融合系数和第二融合系数,具体设置融合系数的方式请参阅前述实施例的步骤D1至D3或E1至E3的描述,并结合图3所示的噪声等级与融合系数的正相关关系示意图可以直观的获取到第一融合系数和第二融合系数。
由上述实施例可知,将噪声图像划分为多个分块,首先获取其中第一分块的量化噪声,然后根据该第一分块的量化噪声检测第一分块中运动估计邻域内所有像素点分别从当前帧的像素位置移动到下一帧的像素位置,接下来根据运动估计邻域内像素点从当前帧到一下帧的像素位置变化情况判断第一像素点处于运动区域还是静止区域,最后对于第一像素点处于动静区域的不同判决分别设置适应于动静不同区域的帧差阈值,并采用适用于动静不同区域的帧差计算方式和前一帧像素值计算方式,最后根据针对第一像素点的运动估计结果选取的融合系数和前一帧的像素值、第一像素点在当前帧的像素值选取适用于动静不同区域的降噪融合方式。本发明实施例中可以结合第一像素点所属的第一分块的量化噪声进行动静判决,误判的可能性很小,并对于第一像素点的动静判决分别设置适用于动静不同区域的帧差阈值和采用不同的帧差计算方式,针对适用于动静不同区域的帧差阈值和帧差计算方式选择适用于动静不同区域的融合系数,针对适用于动静不同区域的融合系数和帧差计算方式以及第一像素点在当前帧的像素值选择降噪融合方式,可以实现针对噪声图像的动静不同区域分别进行降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图15-a所示,本发明实施例提供的一种噪声图像的时域降噪装置1500,可以包括:噪声获取模块1501、运动估计模块1502、动静判决模块1503、第一融合系数选取模块1504、第一时域降噪模块1505、第二融合系数选取模块1506、第二时域降噪模块1507。其中,
噪声获取模块1501,用于噪声获取噪声图像的第一分块的量化噪声,所述第一分块为所述噪声图像划分为多个分块中的任意一个分块;
运动估计模块1502,用于根据所述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,其中,所述运动估计邻域包括以所述第一像素点为中心的相邻像素点,所述第一像素点为所述第一分块中的任意一个像素点;
动静判决模块1503,用于根据运动估计邻域内所有像素点从当前帧到一帧的像素位置变化情况判断所述第一像素点处于运动区域还是静止区域,若所述第一像素点处于运动区域,触发执行第一融合系数选取模块1504和第一时域降噪模块1505,若所述第一像素点处于静止区域,触发执行第二融合系数选取模块1506和第二时域降噪模块1507,其中,
所述第一融合系数选取模块1504,用于当所述第一像素点处于运动区域时,根据所述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,所述第一帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的运动补偿像素值之间的差值;
所述第一时域降噪模块1505,用于根据所述第一融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的运动补偿像素值计算所述第一像素点对应的第一降噪像素值,所述运动补偿像素值为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值;
所述第二融合系数选取模块1506,用于当所述第一像素点处于静止区域时,根据所述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,所述第二帧差阈值大于所述第一帧差阈值,所述第二帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的降噪像素值之间的差值;
所述第二时域降噪模块1507,用于根据所述第二融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的降噪像素值计算所述第一像素点对应的第二降噪像素值,所述降噪像素值为所述第一像素点在前一帧的降噪像素点对应位置的像素值。
在本发明的一些实施例中,噪声获取模块1501,还用于获取所述噪声图像的所有分块共N个的量化噪声;将N个分块的量化噪声与预置的N个量化阈值进行比较,将所述N个分块的量化噪声划分为(N+1)个噪声等级。
在本发明的一些实施例中,请参阅如图15-b所示,噪声获取模块1501,包括:子块划分子模块15011、量化噪声获取子模块15012、分块噪声获取子模块15013,其中,
子块划分子模块15011,用于将所述第一分块划分为多个子块,每个子块包括有多个像素点;
量化噪声获取子模块15012,用于获取第一子块中所有像素点的量化噪声,根据所述第一子块中所有像素点的量化噪声获取所述第一子块的量化噪声,所述第一子块为所述第一分块中的任意一个子块;分别获取所述第一分块中除所述第一子块以外的所有子块的量化噪声;
分块噪声获取子模块15013,用于对所述第一分块中所有子块的量化噪声计算平均量化噪声,将所述平均量化噪声作为所述第一分块的量化噪声,或,对所述第一分块中所有子块的量化噪声分段后进行累积,将累积直方图下大于预置的噪声阈值的量化噪声作为所述第一分块的量化噪声。
具体的,量化噪声获取子模块15012,具体用于获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
通过如下方式计算出所述第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述pixel_noise(x,y)为所述第一像素点的量化噪声,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值。
在本发明的一些实施例中,请参阅如图15-c所示,量化噪声获取子模块15012,包括:区域判断单元150121、平坦区域量化值获取单元150122、子块量化值获取单元150123,其中,
区域判断单元150121,用于判断所述第一子块中的各个像素点是否处于平坦区域;
平坦区域量化值获取单元150122,用于获取所述第一子块中处于平坦区域的所有像素点的量化噪声;
子块量化值获取单元150123,用于根据所述第一子块中处于平坦区域的所有像素点的量化噪声计算所述第一子块的量化噪声。
具体的,请参阅如图15-d所示,区域判断单元150121,具体包括:像素值获取子单元1501211、边缘估计子单元1501212、边缘区域判断子单元1501213、纹理估计子单元1501214、纹理区域判断子单元1501215、平坦区域判断子单元1501216,其中,
像素值获取子单元1501211,用于获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
边缘估计子单元1501212,用于根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核,计算所述第一像素点的边缘估计值;
边缘区域判断子单元1501213,用于判断所述第一像素点的边缘估计值是否大于边缘区域阈值,若所述第一像素点的边缘估计值大于边缘区域阈值,判定所述第一像素点处于边缘区域,若所述第一像素点的边缘估计值小于或等于边缘区域阈值,判定所述第一像素点未处于边缘区域;
纹理估计子单元1501214,用于根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值;
纹理区域判断子单元1501215,用于判断所述第一像素点的纹理估计值是否大于纹理区域阈值,若所述第一像素点的纹理估计值大于纹理区域阈值,判定所述第一像素点处于纹理区域,若所述第一像素点的纹理估计值小于或等于纹理区域阈值,判定所述第一像素点未处于纹理区域;
平坦区域判断子单元1501216,用于当所述第一像素点同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域,则所述第一像素点处于平坦区域。
具体的,边缘估计子单元1501212,具体用于通过如下方式计算所述第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述EM(x,y)为所述第一像素点的边缘估计值,所述NH(x,y)为所述噪声估计邻域,所述E_h、E_v、E_p45、E_n45为所述索贝尔边缘卷积核,所述*为卷积符号;
所述纹理估计子单元1501214,具体用于通过如下方式计算所述第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值;
所述平坦区域判断子单元1501216,用于通过如下方式判断所述第一像素点是否同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,所述EM(x,y)为所述第一像素点的边缘估计值,所述EGth为所述边缘区域阈值,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述MNth为所述纹理区域阈值。
在本发明的一些实施例中,请参阅如图15-e所示,运动估计模块1502,包括:抗噪量获取子模块15021和运动检测子模块15022,其中,
抗噪量获取子模块15021,用于根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量;
运动检测子模块15022,用于根据所述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一像素点的像素值对所述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置。
在本发明的一些实施例中,噪声获取模块1501,还用于获取所述噪声图像的所有分块共N个的量化噪声;将N个分块的量化噪声与预置的N个量化阈值进行比较,将所述N个分块的量化噪声划分为(N+1)个噪声等级。所述抗噪量获取子模块15021,具体用于提取所述第一分块的噪声等级,根据噪声等级与亮度抗噪量的正相关关系获取所述第一像素点的亮度抗噪量,根据噪声等级与梯度抗噪量的正相关关系获取所述第一像素点的梯度抗噪量。
在本发明的另一些实施例中,请参阅如图15-f所示,运动检测子模块15022,包括:亮度计算单元150221、水平梯度计算单元150222、垂直梯度计算单元150223、相似性匹配量计算单元150224、像素位置计算单元150225,其中,
亮度计算单元150221,用于根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值;
水平梯度计算单元150222,用于根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值;
垂直梯度计算单元150223,用于根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值;
相似性匹配量计算单元150224,用于根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量;
像素位置计算单元150225,用于计算所述像素相似性匹配量取得最小值时所述第一像素点在下一帧的像素位置。
具体的,亮度计算单元150221,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,所述△gray′为所述亮度变化值,所述lath(noiselvl)为所述第一像素点的亮度抗噪量,所述△gray=abs(gm(x,y)-gm+1(x+i,y+j)),所述(x,y)为所述第一像素点在当前帧的像素位置,所述gm(x,y)为所述第一像素点在第m帧的像素值,所述第m帧为所述第一像素点的当前帧,所述第(m+1)帧为所述第一像素点的下一帧,所述gm+1(x+i,y+j)为所述第一像素点在第(m+1)帧的像素值;
所述水平梯度计算单元150222,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,所述△gradh′为所述水平方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
所述gm(x+1,y)为所述第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,所述gm(x-1,y)为所述第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,所述gm+1(x+i+1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,所述gm+1(x+i-1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
所述垂直梯度计算单元150223,具体用于通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,所述△gradv′为所述垂直方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
所述gm(x,y+1)为所述第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,所述gm(x,y-1)为所述第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,所述gm+1(x+i,y+j+1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,所述gm+1(x+i,y+j-1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值;
所述相似性匹配量计算单元150224,具体用于通过如下方式计算所述第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′
其中,所述cost-volume为所述第一像素点的像素相似性匹配量,所述△gray′为所述亮度变化值,所述△gradh′为所述水平方向梯度变化值,所述△gradv′为所述垂直方向梯度变化值。
在本发明的一些实施例中,请参阅如图15-g所示,动静判决模块1503,包括:统计子模块15031、动静判决子模块15032、静止判定子模块15033、运动判定子模块15034,其中,
统计子模块15031,用于根据所述运动估计邻域内所有像素点在当前帧的像素位置和在下一帧的像素位置统计所述运动估计邻域内处于静止区域的像素点个数;
动静判决子模块15032,用于判断所述运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值的大小关系;
静止判定子模块15033,用于若所述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,则判定所述第一像素点处于静止区域;
运动判定子模块15034,用于若所述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,则判定所述第一像素点处于运动区域。
在本发明的一些实施例中,请参阅如图15-h所示,第一融合系数选取模块1504,包括:第一帧差判断子模块15041、第一选取子模块15042、第二选取子模块15043,其中,
第一帧差判断子模块15041,用于判断所述第一像素点的第一帧差是否小于预置的第一帧差阈值;
第一选取子模块15042,用于若所述第一像素点的第一帧差小于或等于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一融合系数;
第二选取子模块15043,用于若所述第一像素点的第一帧差大于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,根据所述第一帧差阈值、所述第一像素点的第一帧差和所述第一帧差权重系数选择第一融合系数。
具体的,第一时域降噪模块1505,具体用于通过如下方式计算所述第一像素点对应的第一降噪像素值:
TNR Output(T)_fir=TNR Output_mc(T-1)×alpha_fir+Frame Input(T)×(1-alpha_fir),
其中,所述TNR Output(T)_fir为所述第一像素点对应的第一降噪像素值,所述TNR Output_mc(T-1)为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿得到第一像素点对应位置的像素值,所述alpha_fir为所述第一融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
具体的,第二时域降噪模块1507,具体用于通过如下方式计算所述第一像素点对应的第二降噪像素值:
TNR Output(T)_sec=TNR Output(T-1)×alpha_sec+Frame Input(T)×(1-alpha_sec),
其中,所述TNR Output(T)_sec为所述第一像素点对应的第二降噪像素值,所述TNR Output(T-1)为所述第一像素点在前一帧的降噪像素点对应位置的像素值,所述alpha_sec为所述第二融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
由图15-a至15-h所示的实施例可知,将噪声图像划分为多个分块,首先获取其中第一分块的量化噪声,然后根据该第一分块的量化噪声检测运动估计邻域内所有像素点分别从当前帧的像素位置移动到下一帧的像素位置,接下来根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断第一像素点处于运动区域还是静止区域,最后对于第一像素点处于动静区域的不同判决分别设置适应于动静不同区域的帧差阈值,并采用适用于动静不同区域的帧差计算方式和前一帧像素值计算方式,最后根据针对第一像素点的运动估计结果选取的融合系数和前一帧的像素值、第一像素点在当前帧的像素值选取适用于动静不同区域的降噪融合方式。本发明实施例中可以结合第一像素点所属的第一分块的量化噪声进行动静判决,误判的可能性很小,并对于第一像素点的动静判决分别设置适用于动静不同区域的帧差阈值和采用不同的帧差计算方式,针对适用于动静不同区域的帧差阈值和帧差计算方式选择适用于动静不同区域的融合系数,针对适用于动静不同区域的融合系数和帧差计算方式以及第一像素点在当前帧的像素值选择降噪融合方式,可以实现针对噪声图像的动静不同区域分别进行降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种噪声图像的时域降噪装置,请参阅图16所示,噪声图像的时域降噪装置1600包括:
输入装置1601、输出装置1602、处理器1603和存储器1604(其中噪声图像的时域降噪装置1600中的处理器1603的数量可以一个或多个,图16中以一个处理器为例)。在本发明的一些实施例中,输入装置1601、输出装置1602、处理器1603和存储器1604可通过总线或其它方式连接,其中,图16中以通过总线连接为例。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
获取噪声图像的第一分块的量化噪声,所述第一分块为所述噪声图像划分为多个分块中的任意一个分块;
根据所述第一分块的量化噪声检测运动估计邻域内所有像素点从当前帧的像素位置移动到下一帧的像素位置,其中,所述运动估计邻域包括以所述第一像素点为中心的相邻像素点,所述第一像素点为所述第一分块中的任意一个像素点;
根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断所述第一像素点处于运动区域还是静止区域;
若所述第一像素点处于运动区域,根据所述第一像素点的第一帧差和预置的第一帧差阈值选择第一融合系数,根据所述第一融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的运动补偿像素值计算所述第一像素点对应的第一降噪像素值,所述第一帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的运动补偿像素值之间的差值,所述运动补偿像素值为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿后得到的第一像素点对应位置的像素值;
若所述第一像素点处于静止区域,根据所述第一像素点的第二帧差和预置的第二帧差阈值选择第二融合系数,然后根据所述第二融合系数、所述第一像素点在当前帧的像素值和所述第一像素点在前一帧的降噪像素值计算所述第一像素点对应的第二降噪像素值,所述第二帧差阈值大于所述第一帧差阈值,所述第二帧差为所述第一像素点在当前帧的像素值与所述第一像素点在前一帧的降噪像素值之间的差值,所述降噪像素值为所述第一像素点在前一帧的降噪像素点对应位置的像素值。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
将所述第一分块划分为多个子块,每个子块包括有多个像素点;
获取第一子块中所有像素点的量化噪声,根据所述第一子块中所有像素点的量化噪声获取所述第一子块的量化噪声,所述第一子块为所述第一分块中的任意一个子块;分别获取所述第一分块中除所述第一子块以外的所有子块的量化噪声;
对所述第一分块中所有子块的量化噪声计算平均量化噪声,将所述平均量化噪声作为所述第一分块的量化噪声,或,对所述第一分块中所有子块的量化噪声分段后进行累积,将累积直方图下大于预置的噪声阈值的量化噪声作为所述第一分块的量化噪声。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
判断所述第一子块中的各个像素点是否处于平坦区域;
获取所述第一子块中处于平坦区域的所有像素点的量化噪声;
根据所述第一子块中处于平坦区域的所有像素点的量化噪声计算所述第一子块的量化噪声。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以所述第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
根据所述噪声估计邻域内所有像素点的像素值和索贝尔边缘卷积核,计算所述第一像素点的边缘估计值;
判断所述第一像素点的边缘估计值是否大于边缘区域阈值,若所述第一像素点的边缘估计值大于边缘区域阈值,判定所述第一像素点处于边缘区域,若所述第一像素点的边缘估计值小于或等于边缘区域阈值,判定所述第一像素点未处于边缘区域;
根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值;
判断所述第一像素点的纹理估计值是否大于纹理区域阈值,若所述第一像素点的纹理估计值大于纹理区域阈值,判定所述第一像素点处于纹理区域,若所述第一像素点的纹理估计值小于或等于纹理区域阈值,判定所述第一像素点未处于纹理区域;
其中,若所述第一像素点同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域,则所述第一像素点处于平坦区域。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
通过如下方式计算所述第一像素点的边缘估计值:
EM(x,y)=|NH(x,y)*E_h|+|NH(x,y)*E_v|+|NH(x,y)*E_p45|+|NH(x,y)*E_n45|,
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述EM(x,y)为所述第一像素点的边缘估计值,所述NH(x,y)为所述噪声估计邻域,所述E_h、E_v、E_p45、E_n45为所述索贝尔边缘卷积核,所述*为卷积符号;
所述根据所述噪声估计邻域内所有像素点的像素值计算所述第一像素点的纹理估计值,包括:
通过如下方式计算所述第一像素点的纹理估计值:
Noise_Max_Min(x,y)=Max(abs(valuei-value_median))-Min(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值;
通过如下方式判断所述第一像素点是否同时满足如下条件:所述第一像素点未处于边缘区域和所述第一像素点未处于纹理区域:
(EM(x,y)<=EGth)&&(Noise_Max_Min(x,y)<=MNth)==1,
其中,所述EM(x,y)为所述第一像素点的边缘估计值,所述EGth为所述边缘区域阈值,所述Noise_Max_Min(x,y)为所述第一像素点的纹理估计值,所述MNth为所述纹理区域阈值。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
获取噪声估计邻域内所有像素点的像素值,所述噪声估计邻域包括以第一像素点为中心用于确定所述第一像素点的量化噪声的相邻像素点,所述第一像素点为所述第一子块中的任意一个像素点;
通过如下方式计算出所述第一像素点的量化噪声:
pixel_noise(x,y)=sum(abs(valuei-value_median)),valuei∈NH(x,y),
其中,所述(x,y)为所述第一像素点在当前帧的像素位置,所述pixel_noise(x,y)为所述第一像素点的量化噪声,所述valuei为所述噪声估计邻域内的第i个像素值,所述NH(x,y)为所述噪声估计邻域,所述value_median为所述NH(x,y)中所有像素值的中间值或者平均值。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量;
根据所述第一像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一像素点的像素值对所述第一像素点进行运动检测,得到所述第一像素点在下一帧的像素位置;
根据所述第一分块的量化噪声获取所述第一分块中除所述第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量;
根据所述第一分块中除所述第一像素点以外的其它像素点的亮度抗噪量和梯度抗噪量、在当前帧的像素位置时所述第一分块中除所述第一像素点以外的其它像素点的像素值,对所述第一分块中除所述第一像素点以外的其它像素点进行运动检测,得到所述第一分块中除所述第一像素点以外的其它像素点在下一帧的像素位置。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
根据所述第一像素点的亮度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值;
根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值;
根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值;
根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量;
计算所述像素相似性匹配量取得最小值时所述第一像素点在下一帧的像素位置。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的亮度变化值:
其中,所述△gray′为所述亮度变化值,所述lath(noiselvl)为所述第一像素点的亮度抗噪量,所述△gray=abs(gm(x,y)-gm+1(x+i,y+j)),所述(x,y)为所述第一像素点在当前帧的像素位置,所述gm(x,y)为所述第一像素点在第m帧的像素值,所述第m帧为所述第一像素点的当前帧,所述第(m+1)帧为所述第一像素点的下一帧,所述gm+1(x+i,y+j)为所述第一像素点在第(m+1)帧的像素值;
所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的水平方向梯度变化值:
其中,所述△gradh′为所述水平方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△gradh=abs(gm(x+1,y)-gm(x-1,y)-(gm+1(x+i+1,y+j)-gm+1(x+i-1,y+j))),
所述gm(x+1,y)为所述第一像素点在当前帧的像素值gm(x,y)向上水平方向移动后的像素值,所述gm(x-1,y)为所述第一像素点在当前帧的像素值gm(x,y)向下水平方向移动后的像素值,所述gm+1(x+i+1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上水平方向移动后的像素值,所述gm+1(x+i-1,y+j)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下水平方向移动后的像素值;
所述根据所述第一像素点的梯度抗噪量计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值,包括:
通过如下方式计算所述第一像素点从当前帧的像素位置移动到下一帧的像素位置时的垂直方向梯度变化值:
其中,所述△gradv′为所述垂直方向梯度变化值,所述gath(noiselvl)为所述第一像素点的梯度抗噪量,
所述△grad v=abs(gm(x,y+1)-gm(x,y-1)-(gm+1(x+i,y+j+1)-gm+1(x+i,y+j-1))),
所述gm(x,y+1)为所述第一像素点在当前帧的像素值gm(x,y)向上垂直方向移动后的像素值,所述gm(x,y-1)为所述第一像素点在当前帧的像素值gm(x,y)向下垂直方向移动后的像素值,所述gm+1(x+i,y+j+1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向上垂直方向移动后的像素值,所述gm+1(x+i,y+j-1)为所述第一像素点在下一帧的像素值gm+1(x+i,y+j)向下垂直方向移动后的像素值;
所述根据所述亮度变化值、所述水平方向梯度变化值和所述垂直方向梯度变化值计算所述第一像素点的像素相似性匹配量,包括:
通过如下方式计算所述第一像素点的像素相似性匹配量:
cost-volume=△gray′+△gradh′+△gradv′
其中,所述cost-volume为所述第一像素点的像素相似性匹配量,所述△gray′为所述亮度变化值,所述△gradh′为所述水平方向梯度变化值,所述△gradv′为所述垂直方向梯度变化值。
在本发明的一些实施例中,处理器1603还用于执行以下步骤:
获取所述噪声图像的所有分块共N个的量化噪声;
将N个分块的量化噪声与预置的N个量化阈值进行比较,将所述N个分块的量化噪声划分为(N+1)个噪声等级;
所述根据所述第一像素点所属的第一分块的量化噪声获取所述第一像素点的亮度抗噪量和梯度抗噪量,包括:
提取所述第一分块的噪声等级,根据噪声等级与亮度抗噪量的正相关关系获取所述第一像素点的亮度抗噪量,根据噪声等级与梯度抗噪量的正相关关系获取所述第一像素点的梯度抗噪量。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
根据所述运动估计邻域内所有像素点在当前帧的像素位置和在下一帧的像素位置统计所述运动估计邻域内处于静止区域的像素点个数;
判断所述运动估计邻域内处于静止区域的像素点个数与预置的动静判别阈值的大小关系;
若所述运动估计邻域内处于静止区域的像素点个数大于或等于预置的动静判别阈值,则判定所述第一像素点处于静止区域;
若所述运动估计邻域内处于静止区域的像素点个数小于预置的动静判别阈值,则判定所述第一像素点处于运动区域。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
判断所述第一像素点的第一帧差是否小于预置的第一帧差阈值;
若所述第一像素点的第一帧差小于或等于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一融合系数;
若所述第一像素点的第一帧差大于所述第一帧差阈值,根据所述第一像素点所属的第一分块的量化噪声选择第一帧差权重系数,根据所述第一帧差阈值、所述第一像素点的第一帧差和所述第一帧差权重系数选择第一融合系数。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
通过如下方式计算所述第一像素点对应的第一降噪像素值:
TNR Output(T)_fir=TNR Output_mc(T-1)×alpha_fir+Frame Input(T)×(1-alpha_fir),
其中,所述TNR Output(T)_fir为所述第一像素点对应的第一降噪像素值,所述TNR Output_mc(T-1)为所述第一像素点在前一帧的降噪像素点对当前帧进行运动估计及运动补偿得到第一像素点对应位置的像素值,所述alpha_fir为所述第一融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
在本发明的一些实施例中,处理器1603具体用于执行以下步骤:
通过如下方式计算所述第一像素点对应的第二降噪像素值:
TNR Output(T)_sec=TNR Output(T-1)×alpha_sec+Frame Input(T)×(1-alpha_sec),
其中,所述TNR Output(T)_sec为所述第一像素点对应的第二降噪像素值,所述TNR Output(T-1)为所述第一像素点在前一帧的降噪像素点对应位置的像素值,所述alpha_sec为所述第二融合系数,所述Frame Input(T)为所述第一像素点在当前帧的像素值。
实施例可知,将噪声图像划分为多个分块,首先获取其中第一分块的量化噪声,然后根据该第一分块的量化噪声检测运动估计邻域内所有像素点分别从当前帧的像素位置移动到下一帧的像素位置,接下来根据运动估计邻域内所有像素点从当前帧到下一帧的像素位置变化情况判断第一像素点处于运动区域还是静止区域,最后对于第一像素点处于动静区域的不同判决分别设置适应于动静不同区域的帧差阈值,并采用适用于动静不同区域的帧差计算方式和前一帧像素值计算方式,最后根据针对第一像素点的运动估计结果选取的融合系数和前一帧的像素值、第一像素点在当前帧的像素值选取适用于动静不同区域的降噪融合方式。本发明实施例中可以结合第一像素点所属的第一分块的量化噪声进行动静判决,误判的可能性很小,并对于第一像素点的动静判决分别设置适用于动静不同区域的帧差阈值和采用不同的帧差计算方式,针对适用于动静不同区域的帧差阈值和帧差计算方式选择适用于动静不同区域的融合系数,针对适用于动静不同区域的融合系数和帧差计算方式以及第一像素点在当前帧的像素值选择降噪融合方式,可以实现针对噪声图像的动静不同区域分别进行降噪处理,且造成误检测的几率很小,能够适用于多种噪声场景。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。