本发明涉及视频图像处理,特别涉及基于人眼视觉敏感度特性的一种自适应宏块级量化参数的计算方法。
背景技术:
1、随着计算机技术的发展和计算机视觉原理的广泛应用,使用计算机图像处理技术变得越来越流行。利用人眼的视觉敏感度特性,根据宏块的图像复杂度进行宏块级量化参数(qp)的调整,对于复杂度高的宏块在帧级qp的基础上调大qp,对于复杂度低的宏块调小qp,合理进行码流分配,以达到提高视频压缩率和图像质量的目的。
2、常用的基于图像复杂度的宏块级qp调整方法只注意到了人眼对不同图像复杂度块的敏感度不同,并没有从图像信息重要性的角度考虑视频压缩,忽略了非重要信息块对提高视频压缩率也能起到一定的作用。
3、此外,现有技术中的术语:
4、sobel算子:是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用是边缘检测。sobel算子是把图像中每个像素的上下左右四邻域的灰度值加权,在边缘处达到极致从而检测边缘。mad:平均绝对差(mean absolutedifferences),表示数据块与以均值为数据内容的模板块的匹配度,mad越大数据块与模板的匹配度越差,其携带的新的信息量也越多。在视频编码中,常被用来描述图像复杂度。量化参数qp:是把信号的连续取值映射成多个离散的幅值的过程,实现了信号取值多对一的映射。量化可以有效减少信号的取值范围,进而获得更好的压缩效果,量化也是造成失真的根本原因。
5、宏块:是指16x16个像素的数据块,它是h.264编码协议中的基本单位,首先将一幅图像划分成多个宏块,编码器对每个宏块依次进行编码。在h265协议中,编码块大小支持多个size,一般仍把16x16的数据块叫作一个宏块。
6、帧级qp:泛指作用到一整帧上的qp。
7、宏块级qp:泛指作用到宏块上的qp。
8、宏块qp:特指某一宏块的qp。
技术实现思路
1、为了解决上述现有技术中的问题,本技术的目的在于:在常用的基于图像复杂度调整宏块级qp算法基础上,添加图像数据重要性这一特性。通过计算图像重要性特征值对图像中的宏块进行分类,对非重要的宏块有针对性的进行数据压缩,以达到进一步提高压缩率的目的。
2、具体地,本发明提供一种自适应宏块级量化参数的计算方法,所述方法包括以下步骤:
3、s1,将源图像按16x16大小的宏块进行划分,依次分析每个宏块的特性;对宏块数据进行缩放,弱化噪声对真实细节信息的干扰;
4、s2,利用sobel算子计算宏块的4个方向的梯度值,将梯度信息作为衡量宏块数据重要性的依据,将图像分成平坦、边缘和纹理三类宏块;
5、s3,计算每个宏块的图像复杂度mad,用mad表示宏块的信息量大小,并将mad与多个阈值比较进行信息量等级的划分;
6、s4,基于人眼视觉特性对不同帧级qp下的图像作宏块级qp的自适应调整,按类别调整qp以提高纹理块的信息压缩率,减少平坦和边缘块的图像失真。
7、所述步骤s1进一步包括:预处理:
8、将一幅待编码的源图像划分为16x16大小的宏块,为减少噪声对信息量和重要性判断的影响,需对宏块进行一个缩放处理,只保留细节信息,再以细节信息量的大小和重要性标记作为依据对图像中的宏块进行分类;所述缩放的方法如下:
9、
10、
11、其中avg表示宏块的像素平均值;pixel表示宏块的像素值;p表示宏块缩放后的数据。
12、所述步骤s2进一步包括:宏块重要性分类标记:
13、对缩放后的宏块使用sobel算子计算0°、90°、45°和135°4个方向的梯度值,梯度计算公式如下:
14、
15、
16、
17、
18、使用上述中的梯度计算公式对上一步s1中得到的缩放后的数据块计算梯度值,三个数据块的梯度值分别为:
19、平坦块的4个方向的梯度值:g0:0,g90:0,g45:0,g135:0
20、边缘块的4个方向的梯度值:g0:1,g90:10,g45:8,g135:7
21、纹理块的4个方向的梯度值:g0:8,g90:11,g45:10,g135:10
22、通过分析三类缩放后的数据块的梯度值可以得知,平坦块的各个方向梯度值很小;边缘块的某方向梯度值大而其垂直方向梯度值小;纹理块的各个方向梯度值都较大且差异不大;因此,通过给定高低梯度阈值grad_thrd_low和grad_thrd_high,与互为垂直方向的高低梯度比值ratio_thrd_low和ratio_thrd_high来为数据块进行分类;分类方法如下:
23、
24、其中,flag取值0,1,2分别代表平坦块、边缘块、纹理块。
25、所述步骤s3进一步包括:宏块信息量:
26、使用常用的图像复杂度mad用来表示宏块的信息量,本处使用未缩放的源数据是为满足更丰富的信息量等级划分需求,以适用于宏块级qp不同幅度和层次的调整目的,其计算方法如下:
27、
28、所述步骤s4进一步包括:自适应宏块级qp计算方法:
29、以所述步骤s2中得到的宏块重要性标识flag和步骤s3得到的信息量大小标识mad为基础,在不同帧级量化参数frm_qp对不同类别宏块的压缩要求下,自适应调整宏块级qp,使视频图像在携带非重要信息的纹理块处提高压缩率,对携带重要信息的边缘块和平坦块处不提高压缩率以保留更好的主观观赏质量。
30、所述使视频图像在携带非重要信息的纹理块处提高压缩率,对携带重要信息的边缘块和平坦块处不提高压缩率以保留更好的主观观赏质量进一步包括:经数据分析发现,当frm_qp越小,图像压缩率越小,图像失真越少,人眼对于边缘和纹理块的失真敏感度越低,调大边缘块和纹理块处的qp以提高压缩率,调大的幅度与宏块的信息量标识mad成正比;根据frm_qp的大小控制qp调大的最大幅度使边缘块的失真在人眼可察觉范围内,而平坦块不做qp的调整或者在小范围内调小qp以稍稍减小图像的失真,调小的幅度与宏块的信息量标识mad成反比;反之,当frm_qp越大,图像压缩率越高,图像失真越大,人眼对于边缘和纹理块的失真敏感度越高,此时不做qp的调整或者在小范围内调大qp以稍稍提高图像的压缩率;而人眼对平坦块的失真敏感度更高,调小平坦块处的qp以减少图像的失真,调小的幅度与宏块的信息量标识mad成反比;根据frm_qp的大小控制qp调小的最大幅度使平坦块的压缩率在可接受范围内。
31、所述自适应宏块级qp的计算方法如下:
32、s4.1,设置阈值:
33、根据分析多场景下宏块mad的分布情况,给出以下阈值:
34、qp_thrd[3][10]={{15,15,20,20,30,30,36,36,42,51},{20,30,30,36,36,40,40,46,46,51},{20,30,30,36,36,40,40,46,46,51}};
35、mad_thrd[3][10]={{0,0.5,1,1.5,2,2.5,3,3.5,4,5},{10,15,220,25,30,35,40,50,60,70},{10,13,15,18,21,24,27,30,40,50}};
36、其中,数组qp_thrd[3][9]表示平坦块、边缘块、纹理块三组的帧级qp阈值,用来判断当前帧frm_qp所处的等级;数组mad_thrd[3][9]表示平坦块、边缘块、复杂块三组图像复杂度阈值,用于计算宏块qp;
37、s4.2,将frm_qp与给定的阈值数组qp_thrd[3][9]按从小到大依次进行比较,当frm_qp处于某两阈值之间时,分别记录三类重要性宏块的qp等级qp_level[flag];计算方法如下:
38、
39、s4.3,根据qp_lvl[flag]获取mad与mad_thrd[flag][10]比较时的下标索引移动步长ofst[flag]和最大qp偏移量max_qp_dlt[flag],目的是根据帧级qp动态决定宏块qp调大调小的幅度;
40、阈值下标移动步长:
41、
42、最大qp偏移量:
43、
44、s4.4,将宏块的mad与mad_thrd[flag][10]比较,当mad处于某两阈值之间时,按下面的方法计算宏块qp相对于frm_qp的偏移值qp_dlt;
45、当宏块为平坦块时:
46、
47、其中k为mad_thrd[flag][10]的索引值,k取值从9到9-qp_lvl[flag],而k的移动步长为ofst[flag];
48、当宏块为纹理或边缘块时:
49、
50、其中k为mad_thrd[flag][10]的索引值,k取值从qp_lvl[flag]到9,k的移动步长为ofst[flag];
51、通过调整k的增减偏移量,达到控制阈值范围和qp调整幅度的目的;宏块qp=frm_qp+qp_dlt,相同flag标记下的宏块qp会随着frm_qp的不同和mad所处的等级不同而调整的幅度不一样,达到自适应的目的。
52、所述方法还能够通过调整纹理块对应的阈值来满足对不同压缩率的需求。
53、所述方法是基于人眼视觉敏感度特性,即人眼对平坦区域的失真更敏感,对复杂区域的失真不敏感,复杂区域中的纹理区域所携带的信息不易被人眼识别而实现的。
54、由此,本技术的优势在于:本技术的方案使用简单的方法,提高效率,通过添加图像数据重要性这一特性,对宏块进行分类,对非重要的宏块进行压缩,提高压缩率。提高的程度与非重要块的数量和其信息量标识mad有关。