1.本发明涉及图像处理技术领域,特别是涉及一种图像滤波方法、装置、电子设备及存储介质。
背景技术:2.随着科技的进步,人们对多媒体娱乐节目要求的提高,多媒体视频内容的分辨率和帧率随着提高,导致了多媒体视频的带宽和存储成本的不断上升,在此环境下,vvc(versatile video coding,新一代视频编码标准)应运而生。alf(adaptive loop filter,自适应环路滤波)是vvc中最有效的编码工具之一,用于对视频编码中获得的重建视频帧进行滤波处理。
3.alf对重建视频帧进行滤波处理的具体过程包括:分别采用4组截断函数参数,对重建视频帧进行滤波测试,再利用滤波测试结果失真最小对应的截断函数参数对重建视频帧进行滤波。
4.由于alf需要分别采用4组截断函数参数,对重建视频帧进行滤波测试,即需要对每个待滤波的重建视频帧进行4组截断函数参数的滤波测试,才能确定出最优的截断函数参数用于对该待滤波重建视频帧进行滤波,使得滤波过程中计算复杂度高。
技术实现要素:5.本发明实施例的目的在于提供一种图像滤波方法、装置、电子设备及存储介质,以降低图像滤波的计算复杂度。具体技术方案如下:
6.在本发明实施的第一方面,提供了一种图像滤波方法,所述方法包括:
7.对待滤波图像进行检测,得到所述待滤波图像的类型;
8.在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像;
9.在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
10.可选的,所述对待滤波图像进行检测,得到所述待滤波图像的类型,包括:
11.获取所述待滤波图像中每个像素点的像素值;
12.针对每个像素点,基于该像素点的像素值以及该像素点相邻像素点的像素值,确定该像素点是否为边缘像素点;
13.统计所述待滤波图像中边缘像素点的数量;
14.在所述边缘像素点的数量不大于预设阈值的情况下,确定所述待滤波图像的类型为非高边缘图像;
15.在所述边缘像素点的数量大于预设阈值的情况下,确定所述待滤波图像的类型为高边缘图像。
16.可选的,所述在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断
函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像,包括:
17.针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
18.根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
19.针对所述待滤波图像在亮度通道上的每个待滤波图像块,基于该待滤波图像块对应的滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的亮度滤波结果;
20.获取所述待滤波图像在色度通道上的预设滤波器参数;
21.针对所述待滤波图像在色度通道上的每个待滤波图像块,基于所述预设滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的色度滤波结果;
22.基于所述待滤波图像在亮度通道上每个待滤波图像块的亮度滤波结果,以及所述待滤波图像在色度通道上每个待滤波图像块的色度滤波结果,得到所述待滤波图像滤波后的结果图像。
23.可选的,所述在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像,包括:
24.分别采用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到多个滤波结果参数;
25.从所述多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数;
26.利用所述目标截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
27.可选的,所述分别采用预设数量组截断函数参数对应的滤波器,对该待滤波图像进行滤波处理,得到多个滤波结果参数,包括:
28.针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
29.根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
30.获取所述待滤波图像在色度通道上的预设滤波器参数;
31.针对每一组截断函数参数,基于所述待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数以及该组截断函数参数,对所述待滤波图像在亮度通道上每个待滤波图像块进行滤波处理,得到第一滤波结果参数;
32.针对每一组截断函数参数,基于所述预设滤波器参数以及该组截断函数参数,对所述待滤波图像在色度通道上每个待滤波图像块进行滤波处理,得到第二滤波结果参数。
33.可选的,所述滤波结果参数包括峰值信噪比psnr值或结构相似度ssim值;所述从所述多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数,包括:
34.在相同码率下,将所述psnr值最高对应的截断函数参数,作为目标截断函数参数;
35.或者,在相同码率下,将所述ssim值最高对应的截断函数参数,作为目标截断函数参数。
36.在本发明实施的第二方面,还提供了一种图像滤波装置,所述装置包括:
37.图像类型检测模块,用于对待滤波图像进行检测,得到所述待滤波图像的类型;
38.第一滤波模块,用于在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像;
39.第二滤波模块,用于在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
40.可选的,所述图像类型检测模块,包括:
41.像素值获取单元,用于获取所述待滤波图像中每个像素点的像素值;
42.像素点确定单元,用于针对每个像素点,基于该像素点的像素值以及该像素点相邻像素点的像素值,确定该像素点是否为边缘像素点;
43.数量统计单元,用于统计所述待滤波图像中边缘像素点的数量;
44.第一确定单元,用于在所述边缘像素点的数量不大于预设阈值的情况下,确定所述待滤波图像的类型为非高边缘图像;
45.第二确定单元,用于在所述边缘像素点的数量大于预设阈值的情况下,确定所述待滤波图像的类型为高边缘图像。
46.可选的,所述第一滤波模块,包括:
47.图像类别确定单元,用于针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
48.第一参数确定单元,用于根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
49.第一滤波单元,用于针对所述待滤波图像在亮度通道上的每个待滤波图像块,基于该待滤波图像块对应的滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的亮度滤波结果;
50.第二参数确定单元,用于获取所述待滤波图像在色度通道上的预设滤波器参数;
51.第二滤波单元,用于针对所述待滤波图像在色度通道上的每个待滤波图像块,基于所述预设滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的色度滤波结果;
52.滤波结果确定单元,用于基于所述待滤波图像在亮度通道上每个待滤波图像块的亮度滤波结果,以及所述待滤波图像在色度通道上每个待滤波图像块的色度滤波结果,得到所述待滤波图像滤波后的结果图像。
53.可选的,所述第二滤波模块,包括:
54.第三滤波单元,用于分别采用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到多个滤波结果参数;
55.第三参数确定单元,用于从所述多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数;
56.第四滤波单元,用于利用所述目标截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
57.可选的,所述第三滤波单元,具体用于:
58.针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
59.根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
60.获取所述待滤波图像在色度通道上的预设滤波器参数;
61.针对每一组截断函数参数,基于所述待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数以及该组截断函数参数,对所述待滤波图像在亮度通道上每个待滤波图像块进行滤波处理,得到第一滤波结果参数;
62.针对每一组截断函数参数,基于所述预设滤波器参数以及该组截断函数参数,对所述待滤波图像在色度通道上每个待滤波图像块进行滤波处理,得到第二滤波结果参数。
63.可选的,所述第三参数确定单元,具体用于:
64.在相同码率下,将所述psnr值最高对应的截断函数参数,作为目标截断函数参数;
65.或者,在相同码率下,将所述ssim值最高对应的截断函数参数,作为目标截断函数参数。
66.在本发明实施的第三方面,还提供了一种电子设备,包括:
67.处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
68.存储器,用于存放计算机程序;
69.处理器,用于执行存储器上所存放的程序时,实现上述任一所述的图像滤波方法。
70.在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图像滤波方法。
71.在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的图像滤波方法。
72.本发明实施例提供的一种图像滤波方法、装置、电子设备及存储介质,对待滤波图像进行检测,得到待滤波图像的类型,在待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到待滤波图像滤波后的结果图像,在待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到待滤波图像滤波后的结果图像。通过对待滤波图像进行检测分类,进而对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波,相较于现有技术,无需对每个待滤波图像均采用4组截断函数参数对应的滤波器进行滤波,降低了图像滤波的计算复杂度。
附图说明
73.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
74.图1为vvc视频编码示意图;
75.图2为本发明实施例中图像滤波方法的流程示意图;
76.图3为本发明实施例中待滤波图像类型确定方式的流程示意图;
77.图4a为本发明实施例中亮度通道上的滤波器形状示意图;
78.图4b为本发明实施例中色度通道上的滤波器形状示意图;
79.图5为本发明实施例中非高边缘图像滤波的流程示意图;
80.图6a为本发明实施例中垂直梯度采样的示意图;
81.图6b为本发明实施例中水平梯度采样的示意图;
82.图6c为本发明实施例中对角梯度采样的一种示意图;
83.图6d为本发明实施例中对角梯度采样的另一种示意图;
84.图7为本发明实施例中高边缘图像滤波的流程示意图;
85.图8为本发明实施例中高边缘图像滤波的另一种流程示意图;
86.图9为本发明实施例中图像滤波装置的结构示意图;
87.图10为本发明实施例中一种电子设备的示意图。
具体实施方式
88.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
89.vvc沿用了hevc(high efficiency video coding,高效视频编解码)中基于块的混合视频编码方法对视频进行编码,如图1所示,该编码过程包括:输入视频帧被划分成一个个的待编码图像块,针对每一待编码图像块,从参考帧(通过帧内预测或帧间运动估计/运动补偿得到的)中获取待编码图像块对应的预测块,将待编码图像块与预测块相减得到残差。再对残差执行变换后得到的系数矩阵进行量化处理,将量化后的系数矩阵等输入熵编码器中进行编码。其中,变换比如可以是dct(discrete cosine transform,离散余弦变换),或dst(discrete sine transform,离散正弦变换)等等。
90.同时,对量化后的系数矩阵进行反量化、反变换处理,将反量化、反变换处理后得到的残差信息,与预测器中对应的预测块进行叠加,得到待编码图像块对应的重建块。进一步,使用环路滤波器对重建块进行滤波处理,得到滤波处理后的重建块,对该滤波处理后的重建块进行解码,得到待编码图像块的预测参考块,将预测参考块放入解码图像缓冲区中。再对解码图像缓冲区中预测参考块进行运动估计/运动补偿,从预测参考块中找到与待编码图像块最相近的块,重新确定为预测块。
91.上述环路滤波器可以是alf,alf对重建块进行滤波处理的具体过程包括:分别采用4组截断函数参数,对重建块进行滤波测试,再利用滤波测试结果失真最小对应的截断函数参数对重建块进行滤波。
92.由于alf需要分别采用4组截断函数参数,对重建块进行滤波测试,即需要对每个待滤波的重建块进行4组截断函数参数的滤波测试,才能确定出最优的截断函数参数用于对该待滤波重建块进行滤波,使得滤波过程中计算复杂度高。
93.为解决上述问题,本发明实施例提出了一种图像滤波方法、装置、电子设备及存储介质。本发明实施例提供的一种图像滤波方法,包括:
94.对待滤波图像进行检测,得到所述待滤波图像的类型;
95.在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应
的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像;
96.在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
97.本发明实施例提供的一种图像滤波方法,通过对待滤波图像进行检测分类,进而对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波,相较于现有技术,无需对每个待滤波图像均采用4组截断函数参数对应的滤波器进行滤波,降低了视频滤波的计算复杂度。
98.下面对本发明实施例提供的一种图像滤波方法进行详细介绍:
99.本发明实施例提供的一种图像滤波方法,可以应用于电子设备中,该电子设备比如服务器设备、编码器设备、滤波器设备等等。本发明实施例提供的一种图像滤波方法,可以应用于视频编码、图像滤波等场景中。
100.如图2所示,图2为本发明实施例中图像滤波方法的流程示意图,包括以下步骤:
101.步骤s210,对待滤波图像进行检测,得到待滤波图像的类型。
102.待滤波图像可以为视频编码过程中的重建图像,也可以是任一需要进行滤波的图像,本发明实施例中对此不作限定。
103.在一种可能的实施方式中,可以利用目标检测模型对待滤波图像进行目标检测,以得到待滤波图像的类型,该目标检测模型比如可以是边缘检测模型等。待滤波图像的类型可以包括:高边缘图像和非高边缘图像。其中,高边缘图像中所包含的边缘像素点的数量,多于非高边缘图像中所包含的边缘像素点的数量。
104.一个例子中,还可以通过边缘检测算法对待滤波图像进行边缘检测,以得到待滤波图像的类型。示例性的,边缘检测算法比如canny边缘检测算法或拉普拉斯边缘检测算子等等。
105.步骤s220,在待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到待滤波图像滤波后的结果图像。
106.本发明实施例中,采用alf对待滤波图像进行滤波处理。alf在对待滤波图像进行滤波过程中的截断操作会引入非线性,同时会减少待滤波图像中像素点相邻像素值和当前像素值差值过大的影响,从而使得alf的滤波效果更好。在待滤波图像为视频编码中的重建图像的情况下,因使用alf滤波会减少待滤波图像中像素点相邻像素值和当前像素值差值过大的影响,滤波效果好,进而能够提高视频的编码效率。
107.alf滤波过程中的截断操作引入非线性的同时,也引入了更大的计算复杂度。基于此,本发明实施例中,针对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波,以降低滤波过程中的计算复杂度。
108.在待滤波图像的类型为非高边缘图像的情况下,表示待滤波图像中边缘像素点的数量在一定范围内,此时选用一组预设截断函数参数对应的滤波器,对该待滤波图像进行滤波处理就能够达到图像滤波的效果。其中,一组预设截断函数参数可以是alf中任一组截断函数参数,也可以是alf中默认的一组截断函数参数。一定范围可以根据实际需求进行设置,比如可以是一个阈值等。
109.一个例子中,分别针对alf中亮度通道和色度通道定义了四组截断函数参数,其中,亮度通道对应的截断函数参数表示为alfclippingvalues[ch_l],色度通道对应的截断
函数参数表示为alfclippingvalues[ch_c],亮度通道和色度通道分别对应的四组截断函数参数可以采用如下方式定义:
[0110]
alfclippingvalues[ch_l][0]=1《《n_bit_depth;
[0111]
alfclippingvalues[ch_c][0]=1《《n_bit_depth;
[0112]
for(int n=1;n《4;n++){
[0113]
alfclippingvalues[ch_l][n]=1《《(n_bit_depth-2*n-1);
[0114]
alfclippingvalues[ch_c][n]=1《《(n_bit_depth-2*n-1);
[0115]
}
[0116]
其中,alfclippingvalues[ch_l][0]和alfclippingvalues[ch_c][0]分别表示亮度通道和色度通道对应的第一组截断函数参数,alfclippingvalues[ch_l][n]和alfclippingvalues[ch_c][n]分别表示亮度通道和色度通道对应的第n组截断函数参数,《《n_bit_depth表示左移n比特位深。
[0117]
示例性的,在待滤波图像的类型为非高边缘图像的情况下,分别使用亮度通道和色度通道上默认的一组截断函数参数,对该待滤波图像进行滤波处理,以得到该待滤波图像滤波后的结果图像。其中,默认的一组截断函数参数可以为1《《n_bit_depth。
[0118]
步骤s230,在待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到待滤波图像滤波后的结果图像。
[0119]
在待滤波图像的类型为高边缘图像的情况下,表示待滤波图像中边缘像素点的数量超过了一定范围,该待滤波图像边缘比较锐化,此时选用预设数量组截断函数参数对应的滤波器,对该待滤波图像进行滤波处理,以便于提高该待滤波图像的滤波效果和性能。其中,预设数量可以不超过4。
[0120]
一个例子中,在待滤波图像的类型为高边缘图像的情况下,可以采用预设数量组截断函数参数对应的滤波器,分别对待滤波图像进行滤波处理,进一步选择滤波效果最好的一组截断函数参数对应的滤波器对该待滤波图像进行滤波处理,以得到该待滤波图像滤波后的结果图像。
[0121]
采用本发明实施例提供的一种图像滤波方法,通过对待滤波图像进行检测分类,进而对类型为非高边缘图像的待滤波图像,使用预设截断函数参数对应的滤波器进行滤波,对类型为高边缘图像的待滤波图像,使用预设数量组截断函数参数对应的滤波器进行滤波,以得到待滤波图像滤波后的结果图像,满足了不同类型待滤波图像对滤波效果和性能的需求,相较于现有技术,无需对每个待滤波图像均采用4组截断函数参数对应的滤波器进行滤波测试,降低了图像滤波的计算复杂度,提高了图像的编码效率。
[0122]
在一种可能的实施方式中,如图3所示,本发明实施例中待滤波图像类型的确定方式可以包括以下步骤:
[0123]
步骤s310,获取待滤波图像中每个像素点的像素值。
[0124]
步骤s320,针对每个像素点,基于该像素点的像素值以及该像素点相邻像素点的像素值,确定该像素点是否为边缘像素点。
[0125]
一个例子中,因边缘像素点与其周围像素点的像素值相差较大,进而针对待滤波图像中每个像素点,可以计算该像素点的像素值,分别与相邻像素点的像素值之间的差值,在差值均大于预设差值的情况下,将该像素点确定为边缘像素点。其中,预设差值可以根据
实际需求进行设置,相邻像素点可以包括:左右相邻、上下相邻以及对角线相邻等等。
[0126]
步骤s330,统计待滤波图像中边缘像素点的数量。
[0127]
步骤s340,在边缘像素点的数量不大于预设阈值的情况下,确定待滤波图像的类型为非高边缘图像。
[0128]
步骤s350,在边缘像素点的数量大于预设阈值的情况下,确定待滤波图像的类型为高边缘图像。
[0129]
在边缘像素点的数量大于预设阈值的情况下,表示待滤波图像中属于边缘的部分较多,此时将待滤波图像的类型确定为高边缘图像,否则将其类型确定为非高边缘图像。其中,预设阈值可以根据实际需求或经验值等进行设置。
[0130]
通过待滤波图像中每个像素点的像素值,以及各像素点相邻像素点的像素值,对待滤波图像进行分类,以得到待滤波图像的类型,进而,以便于对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波。
[0131]
alf使用了两种菱形且中心对称的滤波器,其中,亮度通道采用如图4a所示的7
×
7钻石型滤波器,色度通道采用如图4b所示的5
×
5钻石型滤波器,图4a和图4b滤波器中参数c0,c1,
……
,c12分别表示了滤波系数的大小关系。在滤波的过程中,滤波器中心的位置表示待滤波图像中当前参与滤波的像素位置。
[0132]
在一种可能的实施方式中,如图5所示,本发明实施例中对非高边缘图像进行滤波的一种实施方式可以包括以下步骤:
[0133]
步骤s510,针对待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别。
[0134]
alf是基于图像块的滤波技术,在对待滤波图像进行滤波处理时,先将待滤波图像按像素划分为多个图像块,该图像块的大小比如可以是4
×
4等,对不同类别的图像块使用不同的滤波器。进而在对每个待滤波图像块进行滤波时,先确定该待滤波图像块的类别。
[0135]
alf根据方向性和活动值将待滤波图像块分为25个类别,同一类别的待滤波图像块使用同一种滤波器进行滤波。对于亮度通道,待滤波图像块最多对应25组滤波器系数,对于色度通道,无需对待滤波图像块进行分类,使用同一组滤波器参数。一个例子,在视频编码的过程中使用alf,那么编码器总共需要传输25组滤波器的滤波器系数,所有的滤波器系数可以存储于slice header(切片头)中,并传输到解码端。
[0136]
示例性的,针对待滤波图像在亮度通道上的每个待滤波图像块,可以采用如下方式,计算该待滤波图像块的类别idx(索引):
[0137]
c=5d+a
[0138]
其中,c表示待滤波图像块对应的类别索引,d和a分别表示待滤波图像块方向性(direction)的值和活动值(activity)。
[0139]
在计算待滤波图像块的类别之前,可以利用一维拉普拉斯算子,分别计算待滤波图像块在水平方向、垂直方向和两个对角方向的梯度值,所使用的计算表达式如下:
[0140]
[0141][0142][0143][0144]
其中,(i,j)表示待滤波图像块左上角像素点的坐标,r(i,j)表示坐标(i,j)处的像素值,v
k,l
表示待滤波图像块中位于坐标(k,l)的像素点在垂直方向的梯度值,h
k,l
表示待滤波图像块中位于坐标(k,l)的像素点在水平方向的梯度值,r(k,l)表示待滤波图像块中位于坐标(k,l)的像素值,d1
k,l
表示待滤波图像块中位于坐标(k,l)的像素点在一个对角方向的梯度值,d2
k,l
表示待滤波图像块中位于坐标(k,l)的像素点在另一个对角方向的梯度值;gv表示待滤波图像块在垂直方向的梯度值;gh表示待滤波图像块在水平方向的梯度值;g
d1
表示待滤波图像块在一个对角方向的梯度值;g
d2
表示待滤波图像块在另一个对角方向的梯度值。
[0145]
为了降低待滤波图像块分类的复杂度,本发明实施例上述一维拉普拉斯算子可以是采用了基于下采样的一维拉普拉斯计算,对四个方向上梯度的计算采用相同的下采样位置。示例性的,在垂直梯度上的子采样位置如图6a所示,在水平梯度上的子采样位置如图6b所示,在一个对角梯度上的子采样位置如图6c所示,在另一个对角梯度上的子采样位置如图6d所示。
[0146]
待滤波图像块在水平垂直方向上d(方向性)的最大值与最小值分别可以表示为:
[0147][0148]
待滤波图像块在对角方向上d的最大值与最小值分别可以表示为:
[0149][0150]
为了得到待滤波图像块方向性d的值,分别将上述以及进行比较,进而计算出待滤波图像块d的值。
[0151]
示例性的,可以通过以下方式确定待滤波图像块d的值:
[0152][0153]
其中,t1,t2为预设阈值。
[0154]
示例性的,待滤波图像块的活动值a,可以通过如下表达式计算:
[0155][0156]
将a归一化到[0,4]范围内,得到量化后的a(aq)。
[0157]aq
=24
×
a>>13
[0158]
在计算得到待滤波图像块方向性d的值与活动值a之后,通过上述表达式c=5d+a,即可确定待滤波图像块对应的类别。示例性的,d的取值为:0,1,2,3,4,a的取值也为:0,1,2,3,4,故c的取值为0到24,即25个类别。
[0159]
参见图5,步骤s520,根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数。
[0160]
一个例子中,所有的滤波器系数存储于slice header中,在确定每个待滤波图像块的类别之后,可以进一步从滤波器系数中确定该待滤波图像块的类别对应的滤波器参数。示例性的,slice header中存储有图像块类别与滤波器系数之间的对应关系,进而,在确定待滤波图像块类别的情况下,直接查询对应关系,即可确定待滤波图像块对应的滤波器参数。
[0161]
步骤s530,针对待滤波图像在亮度通道上的每个待滤波图像块,基于该待滤波图像块对应的滤波器参数以及预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的亮度滤波结果。
[0162]
在确定亮度通道上待滤波图像块对应的滤波器参数之后,结合该待滤波图像块对应的滤波器参数以及预设截断函数参数,对该待滤波图像块进行滤波处理,以得到该待滤波图像块的亮度滤波结果。
[0163]
示例性的,可以使用如下表达式对待滤波图像块进行滤波处理:
[0164][0165]
r(i,j)表示坐标(i,j)处的像素值,r
′
(i,j)表示r(i,j)经过滤波后的像素值,f(p,w)表示滤波器系数,p和w表示滤波器系数坐标;k(x,y)表示截断函数,c(p,w)表示截断函数的参数。
[0166]
其中,截断函数定义为:k(x,y)=lip3(-y,y,x),表示将x截断在(-,y)之间。
[0167]
步骤s540,获取待滤波图像在色度通道上的预设滤波器参数。
[0168]
alf在色度通道上无需对待滤波图像块进行分类,即在色度通道上每个待滤波图像块使用同一组滤波器参数。预设滤波器参数即为色度通道上每个待滤波图像块所使用的同一组滤波器参数。
[0169]
步骤s550,针对待滤波图像在色度通道上的每个待滤波图像块,基于预设滤波器参数以及预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的色度滤波结果。
[0170]
针对待滤波图像在色度通道上的每个待滤波图像块,可以参考使用上述亮度通道上每个待滤波图像块的滤波方式进行滤波,不同之处在于每个待滤波图像块对应的滤波器参数不同。
[0171]
其中,步骤s510-步骤s530,与步骤s540-步骤s550可以同步执行,也可以不同步执行。
[0172]
步骤s560,基于待滤波图像在亮度通道上每个待滤波图像块的亮度滤波结果,以及待滤波图像在色度通道上每个待滤波图像块的色度滤波结果,得到待滤波图像滤波后的结果图像。
[0173]
一个例子中,可以将所获取到的待滤波图像在亮度通道上每个待滤波图像块的亮度滤波结果,以及待滤波图像在色度通道上每个待滤波图像块的色度滤波结果,确定为待滤波图像滤波后的结果图像。还可以对待滤波图像的每个待滤波图像块在亮度通道和色度通道上分别滤波得到的滤波结果进行加权求和,以得到待滤波图像滤波后的结果图像。
[0174]
针对非高边缘图像,使用一组预设截断函数参数,结合各待滤波图像块在亮度通道和色度通道上的滤波器参数,分别对各待滤波图像块进行滤波处理,以得到待滤波图像滤波后的结果图像,减少了待滤波图像滤波过程中的计算复杂度。
[0175]
在一种可能的实施方式中,如图7所示,本发明实施例中对高边缘图像进行滤波的一种实施方式可以包括以下步骤:
[0176]
步骤s710,分别采用预设数量组截断函数参数对应的滤波器,对待滤波图像进行
滤波处理,得到多个滤波结果参数。
[0177]
一个例子中,预设数量组截断函数参数表示分别针对alf中亮度通道和色度通道定义的四组截断函数参数。在待滤波图像的类型为高边缘图像的情况下,分别采用四组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到多个滤波结果参数。
[0178]
步骤s720,从多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数。
[0179]
在一种可能的实施方式中,滤波结果参数可以包括psnr(peak signal to noise ratio,峰值信噪比)值或者ssim(structural similarity,结构性相似)值。
[0180]
相应的,从多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数,可以包括:在相同码率下,将psnr值最高对应的截断函数参数,作为目标截断函数参数;或者,在相同码率下,将ssim值最高对应的截断函数参数,作为目标截断函数参数。
[0181]
其中,ssim是一种衡量两幅图像相似度的指标,可以通过考量图片的亮度、对比度、结构这三方面来度量图像的相似性。psnr可以用于量化受有损压缩影响的图像和视频的重建质量。psnr可以是亮度psnr,也可以是亮度与色度的psnr的线性组合。
[0182]
示例性的,待滤波图像为视频编码中的重建图像,进而针对待滤波图像,可以比较分别采用四组截断函数参数对应的滤波器进行滤波处理后,得到的各待滤波图像对应的psnr值或ssim值,在视频编码的过程中,选择相同码率下,psnr值或ssim值最高对应的截断函数参数作为目标截断函数参数。其中,各待滤波图像对应的psnr值或ssim值,表示了各待滤波图像滤波后的结果图像与该待滤波图像对应的原始图像之间的psnr值或ssim值。相同码率下,psnr值或ssim值越高表示待滤波图像的滤波效果越好,进而选择滤波效果最好的一组截断函数参数作为目标截断函数参数。
[0183]
将psnr值或ssim值作为截断函数参数选择的依据,以便于能够快速的选取到滤波效果最好的一组截断函数参数,将其作为目标截断函数参数,以更好的对待滤波图像进行滤波处理。
[0184]
步骤s730,利用目标截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到待滤波图像滤波后的结果图像。
[0185]
一个例子中,在确定出待滤波图像对应的截断函数参数后,可以参考上述步骤s510至s560的实现过程,对待滤波图像进行滤波处理,以得到待滤波图像滤波后的结果图像,本发明实施例在此不再赘述。
[0186]
在待滤波图像的类型为高边缘图像的情况下,分别采用四组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,得到多个滤波结果参数,进而从多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数,再利用目标截断函数参数对应的滤波器,对待滤波图像进行滤波处理,以提高对待滤波图像的滤波效果。
[0187]
在一种可能的实施方式中,如图8所示,本发明实施例中对高边缘图像进行滤波的另一种实施方式可以包括以下步骤:
[0188]
步骤s810,针对待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别。
[0189]
步骤s820,根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参
数。
[0190]
步骤s830,获取待滤波图像在色度通道上的预设滤波器参数。
[0191]
其中,步骤s810至步骤s830的实现过程,可以参见上述步骤s510、步骤s520以及步骤s540的实现过程,本发明实施例在此不再赘述。步骤s810-步骤s820与步骤s830,可以同步执行,也可以不同步执行。
[0192]
步骤s840,针对每一组截断函数参数,基于待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数以及该组截断函数参数,对待滤波图像在亮度通道上每个待滤波图像块进行滤波处理,得到第一滤波结果参数。
[0193]
遍历每一组截断函数参数,针对每一组截断函数参数,利用待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数,以及该组截断函数参数,对每个待滤波图像块进行滤波处理,以得到每个待滤波图像块的亮度滤波结果,以及该待滤波图像的第一滤波结果参数。
[0194]
一个例子中,一组截断函数参数对应一个第一滤波结果参数,第一滤波结果参数可以是,每个待滤波图像块的亮度滤波结果与每个待滤波图像块对应的原始图像块之间psnr值或ssim值的均值、求和值或者加权值等等。或者,第一滤波结果参数可以是,待滤波图像的亮度滤波结果与该待滤波图像对应的原始图像之间psnr值或ssim值的均值、求和值或者加权值等等,其中,待滤波图像的亮度滤波结果可以是,将每个待滤波图像块的亮度滤波结果合并得到的。
[0195]
步骤s850,针对每一组截断函数参数,基于预设滤波器参数以及该组截断函数参数,对待滤波图像在色度通道上每个待滤波图像块进行滤波处理,得到第二滤波结果参数。
[0196]
遍历每一组截断函数参数,针对每一组截断函数参数,利用一组预设滤波器参数以及该组截断函数参数,对每个待滤波图像块进行滤波处理,以得到每个待滤波图像块的色度滤波结果,以及该待滤波图像的第二滤波结果参数。其中,一组预设滤波器参数为色度通道上待滤波图像对应的滤波器参数。
[0197]
一个例子中,一组截断函数参数对应一个第二滤波结果参数,第二滤波结果参数可以是,每个待滤波图像块的色度滤波结果与每个待滤波图像块对应的原始图像块之间psnr值或ssim值的均值、求和值或者加权值等等。或者,第二滤波结果参数可以是,待滤波图像的色度滤波结果与该待滤波图像对应的原始图像之间psnr值或ssim值的均值、求和值或者加权值等等,其中,待滤波图像的色度滤波结果可以是,将每个待滤波图像块的色度滤波结果合并得到的。
[0198]
针对每一组截断函数参数,基于待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数以及该组截断函数参数,对待滤波图像在亮度通道上每个待滤波图像块进行滤波处理,得到第一滤波结果参数,以及基于预设滤波器参数以及该组截断函数参数,对待滤波图像在色度通道上每个待滤波图像块进行滤波处理,得到第二滤波结果参数,以便于进一步能够从多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,对待滤波图像进行滤波处理。
[0199]
示例性的,在待滤波图像的类型为非高边缘图像的情况下,利用一组预设截断函数参数对应的滤波器,对待滤波图像进行滤波处理,以得到待滤波图像滤波后的结果图像。在待滤波图像的类型为高边缘图像的情况下,利用四组截断函数参数对应的滤波器,分别
对待滤波图像进行滤波处理,并选用滤波效果最好的一组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,以得到待滤波图像滤波后的结果图像。相较于全部采用四组截断函数参数对应的滤波器,对待滤波图像进行滤波处理,编码器的编码效率能够提高1.31倍,同时缩小了编码损失,在psnr值对齐的情况下,码率增加了0.685%,在ssim值对齐的情况下,码率增加了0.54%,即采用本发明实施例的图像滤波方法,降低了图像滤波的计算复杂度,提高了图像的编码效率。
[0200]
基于相同的发明构思,与图像滤波方法相应的提供了一种图像滤波装置,如图9所示,图9为本发明实施例中图像滤波装置的结构示意图,该装置包括:
[0201]
图像类型检测模块910,用于对待滤波图像进行检测,得到所述待滤波图像的类型;
[0202]
第一滤波模块920,用于在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像;
[0203]
第二滤波模块930,用于在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
[0204]
采用本发明实施例提供的图像滤波装置,通过对待滤波图像进行检测分类,进而对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波,相较于现有技术,无需对每个待滤波图像均采用4组截断函数参数对应的滤波器进行滤波,降低了图像滤波的计算复杂度。
[0205]
在一种可能的实施方式中,所述图像类型检测模块,包括:
[0206]
像素值获取单元,用于获取所述待滤波图像中每个像素点的像素值;
[0207]
像素点确定单元,用于针对每个像素点,基于该像素点的像素值以及该像素点相邻像素点的像素值,确定该像素点是否为边缘像素点;
[0208]
数量统计单元,用于统计所述待滤波图像中边缘像素点的数量;
[0209]
第一确定单元,用于在所述边缘像素点的数量不大于预设阈值的情况下,确定所述待滤波图像的类型为非高边缘图像;
[0210]
第二确定单元,用于在所述边缘像素点的数量大于预设阈值的情况下,确定所述待滤波图像的类型为高边缘图像。
[0211]
在一种可能的实施方式中,所述第一滤波模块,包括:
[0212]
图像类别确定单元,用于针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
[0213]
第一参数确定单元,用于根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
[0214]
第一滤波单元,用于针对所述待滤波图像在亮度通道上的每个待滤波图像块,基于该待滤波图像块对应的滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的亮度滤波结果;
[0215]
第二参数确定单元,用于获取所述待滤波图像在色度通道上的预设滤波器参数;
[0216]
第二滤波单元,用于针对所述待滤波图像在色度通道上的每个待滤波图像块,基
于所述预设滤波器参数以及所述预设截断函数参数,对该待滤波图像块进行滤波处理,得到该待滤波图像块的色度滤波结果;
[0217]
滤波结果确定单元,用于基于所述待滤波图像在亮度通道上每个待滤波图像块的亮度滤波结果,以及所述待滤波图像在色度通道上每个待滤波图像块的色度滤波结果,得到所述待滤波图像滤波后的结果图像。
[0218]
在一种可能的实施方式中,所述第二滤波模块,包括:
[0219]
第三滤波单元,用于分别采用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到多个滤波结果参数;
[0220]
第三参数确定单元,用于从所述多个滤波结果参数中选择最优的滤波结果参数对应的截断函数参数,作为目标截断函数参数;
[0221]
第四滤波单元,用于利用所述目标截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
[0222]
在一种可能的实施方式中,所述第三滤波单元,具体用于:
[0223]
针对所述待滤波图像在亮度通道上的每个待滤波图像块,确定该待滤波图像块的类别;
[0224]
根据每个待滤波图像块的类别,确定该待滤波图像块对应的滤波器参数;
[0225]
获取所述待滤波图像在色度通道上的预设滤波器参数;
[0226]
针对每一组截断函数参数,基于所述待滤波图像在亮度通道上每个待滤波图像块对应的滤波器参数以及该组截断函数参数,对所述待滤波图像在亮度通道上每个待滤波图像块进行滤波处理,得到第一滤波结果参数;
[0227]
针对每一组截断函数参数,基于所述预设滤波器参数以及该组截断函数参数,对所述待滤波图像在色度通道上每个待滤波图像块进行滤波处理,得到第二滤波结果参数。
[0228]
在一种可能的实施方式中,所述第三参数确定单元,具体用于:
[0229]
在相同码率下,将所述psnr值最高对应的截断函数参数,作为目标截断函数参数;
[0230]
或者,在相同码率下,将所述ssim值最高对应的截断函数参数,作为目标截断函数参数。
[0231]
本发明实施例还提供了一种电子设备,如图10所示,包括处理器101、通信接口102、存储器103和通信总线104,其中,处理器101,通信接口102,存储器103通过通信总线104完成相互间的通信,
[0232]
存储器103,用于存放计算机程序;
[0233]
处理器101,用于执行存储器103上所存放的程序时,实现如下步骤:
[0234]
对待滤波图像进行检测,得到所述待滤波图像的类型;
[0235]
在所述待滤波图像的类型为非高边缘图像的情况下,利用预设截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像;
[0236]
在所述待滤波图像的类型为高边缘图像的情况下,利用预设数量组截断函数参数对应的滤波器,对所述待滤波图像进行滤波处理,得到所述待滤波图像滤波后的结果图像。
[0237]
本发明实施例提供的电子设备,通过对待滤波图像进行检测分类,进而对不同类型的待滤波图像采用不同的截断函数参数对应的滤波器进行滤波,相较于现有技术,无需对每个待滤波图像均采用4组截断函数参数对应的滤波器进行滤波,降低了图像滤波的计
算复杂度。
[0238]
上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0239]
通信接口用于上述终端与其他设备之间的通信。
[0240]
存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0241]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0242]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的图像滤波方法。
[0243]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的图像滤波方法。
[0244]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0245]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0246]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0247]
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。