一种用于h.265编码的快速帧内尺寸判决方法及装置
技术领域
1.本发明涉及视频编码技术领域,尤其涉及一种用于h.265编码的快速帧内尺寸判决方法及装置。
背景技术:2.h.265/hevc作为新一代视频编码标准,相比上一代视频编码标准h.264/avc在压缩效率上提升了一倍,但与此同时编码复杂度也大大增加。这主要是由于hevc(high efficiency video coding,高效视频编码)中引入了一些新的技术,比如大尺寸的四叉树分割、更高的预测精度、35种帧内预测模式以及rdo(rate distortion optimization,率失真优化)技术和sao(sample adaptive offset,样点自适应偏移)技术等。其中rdo过程需要计算每一种编码尺寸和预测单元的编码代价,从中选择代价最小的作为最佳尺寸和预测模式,因此,rdo过程是编码器编码过程中计算量最大的部分。hevc将图像划分为多个ctu(coding tree unit,编码树单元),每个ctu块利用四叉树结构被递归分割,一个ctu可以包含一个或切割成多个cu(coding unit,编码单元),一个cu是一个编码树的叶子节点,也是进行预测、变换、量化和熵编码等处理的基本单元。
3.由于hevc中引入的新技术导致编码的复杂度极高,这对于视频会议等实时应用场景来说,极高的编码复杂度无法实用。
4.现有技术中为降低视频编码的复杂度,大多仅从时空域相关性的角度考虑或者没有充分利用图像纹理特征和空域相关性相结合,由此导致了帧内编码复杂度仍然被没有充分降低。如在申请号为201910655001.2的《一种基于hevc的预测深度划分范围的方法和装置》中,该专利申请公开的技术方案主要是从时空域相关性的角度估计当前ctu的深度预测范围,但没有考虑当前ctu块本身的纹理特征。而在申请号为201910287565.5的《基于视频图片纹理特征的hevc帧内快速算法选择方法》中,该专利申请公开的技术方案利用cu图像纹理特征采用不同的快速算法进行模式选择和提前终止,但没有充分挖掘cu的空域相关性,并将图像纹理特征与空域相关性结合。因此,上述两个对比方案对于降低编码复杂度均具有局限性。
技术实现要素:5.本发明实施例提供一种用于h.265编码的快速帧内尺寸判决方法及装置,能有效解决现有技术中帧内编码复杂度仍然被没有充分降低的问题,进一步缩小了深度遍历范围,大大降低了编码复杂度。
6.本发明一实施例提供一种用于h.265编码的快速帧内尺寸判决方法,具体包括:
7.根据第一ctu的编码深度,预测当前ctu的预测深度值;其中,所述第一ctu为所述当前ctu的空域相邻已编码ctu;
8.计算当前ctu的平均梯度值,并根据所述当前ctu的平均梯度值,确定当前ctu的纹理复杂度;
9.联合所述当前ctu的预测深度值和纹理复杂度,确定当前ctu的初步编码尺寸范围;
10.根据所述第一ctu的率失真代价和当前cu的边缘特征,从所述当前ctu的初步编码尺寸范围内确定所述当前cu的编码尺寸。
11.本发明实施例首先利用空域相关性估计当前ctu的预测深度值,并利用robert梯度算子计算当前ctu的纹理复杂度,联合预测深度值和纹理复杂度估计当前ctu块的初步深度遍历范围,最后根据所述第一ctu的率失真代价和当前cu的边缘特征,确定所述当前cu的编码尺寸,进一步缩小了深度遍历范围,加速了hevc编码过程的同时也大大降低了编码复杂度。
12.进一步的,所述根据第一ctu的编码深度,预测当前ctu的预测深度值,具体包括:
13.根据当前ctu的空域相关性,确定所述第一ctu的数量,并根据各第一ctu与所述当前ctu的空域相关性,确定各第一ctu的权重因子;
14.获取各第一ctu的编码深度值,并根据各第一ctu的编码深度值和权重因子,确定当前ctu的预测深度值。
15.作为优选方案,所述根据各第一ctu的编码深度值和权重因子,确定当前ctu的预测深度值,具体为:
16.根据以下公式,计算所述当前ctu的预测深度值:
[0017][0018]
其中,depth
pre
为当前ctu的预测深度值,n为第一ctu的数量,ωi为第一ctu的权重因子,leveli为第一ctu的编码深度值,所述权重因子ωi根据当前ctu与各第一ctu的相关性进行设置。
[0019]
作为优选方案,所述获取各第一ctu的编码深度值,具体包括:
[0020]
左侧ctu的深度值用其右半ctu块的平均深度值代替,上侧ctu的深度值用其下半ctu块的平均深度值代替,左上ctu以及右上ctu的深度值用其与当前ctu块最相邻的cu的深度值代替。
[0021]
本发明利用空域相邻已编码的ctu块来预测当前ctu块的深度值,能有效加快编码速度,降低编码复杂度。
[0022]
进一步的,所述计算当前ctu的平均梯度值,并根据所述当前ctu的平均梯度值,确定当前ctu的纹理复杂度,具体包括:
[0023]
当ctu的平均梯度值等于第一阈值时,确定当前ctu为绝对纹理平坦块;当ctu的平均梯度值在第一阈值到第二阈值之间时,确定当前ctu为纹理平坦块;当ctu的平均梯度值在第二阈值到第三阈值之间时,确定当前ctu为纹理普通块;当ctu的平均梯度值大于第三阈值时,判断当前ctu为纹理复杂块。
[0024]
作为优选方案,所述联合所述当前ctu的预测深度值和纹理复杂度,确定当前ctu的初步编码尺寸范围,具体包括:
[0025]
当所述当前ctu的预测深度值在起始阈值到预设下阈值范围内时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16、8
×
8;若所述当前ctu为绝对纹理平坦块,则确定当前ctu的初步编码尺寸范围为:32
×
32;否则,确定当前ctu
的初步编码尺寸范围为:32
×
32、16
×
16;
[0026]
当所述当前ctu的预测深度值在预设下阈值到预设上阈值范围内时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:16
×
16、8
×
8;若所述当前ctu为纹理平坦块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16;若所述当前ctu为纹理普通块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16、8
×
8;
[0027]
当所述当前ctu的预测深度值大于预设上阈值时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:8
×
8;若所述当前ctu为纹理平坦块或纹理普通块,则确定当前ctu的初步编码尺寸范围为:16
×
16、8
×
8。
[0028]
联合前面步骤得到的ctu块预测深度值和纹理复杂度数据,将其分类并按照对于纹理平坦块跳过小尺寸的编码,对于纹理复杂块跳过大尺寸的编码的原则估算初步深度遍历范围,能有效降低编码过程复杂度。
[0029]
进一步的,所述根据所述第一ctu的率失真代价和当前cu的边缘特征,从所述当前ctu的初步编码尺寸范围内确定所述当前cu的编码尺寸,具体包括:
[0030]
获取当前ctu中已编码的cu以及各第一ctu中已编码cu的平均率失真代价;
[0031]
根据所述当前ctu中已编码的cu以及各第一ctu中已编码cu的平均率失真代价计算率失真代价阈值;
[0032]
若当前cu的最小率失真代价小于所述率失真代价阈值,则当前cu采用16
×
16尺寸编码;
[0033]
若当前cu的最小率失真代价大于所述率失真代价阈值,则根据当前cu的边缘特征判断是否能确定当前cu的编码尺寸,若能确定则直接确定当前cu的编码尺寸;
[0034]
若根据当前cu的边缘特征仍然无法确定当前cu的编码尺寸,则计算当前cu在各编码尺寸下的率失真代价,比较后采用率失真代价最小的尺寸作为当前cu的编码尺寸。
[0035]
采用空域相邻ctu的最优率失真代价和当前cu的边缘特征实现cu级提前终止,能进一步缩小深度遍历范围,加速hevc编码过程。
[0036]
作为优选方案,所述根据当前cu的边缘特征确定当前cu的编码尺寸,具体包括:
[0037]
若当前cu中不含有边缘,并且其所在ctu为纹理平坦块,则当前cu采用16
×
16尺寸编码;
[0038]
若当前cu中含有边缘并且其子cu中均含有边缘,则当前cu采用8
×
8尺寸编码。
[0039]
作为优选方案,所述当前cu的边缘特征的获取步骤具体包括:
[0040]
对当前图像的下采样图像计算边缘图,并对其进行阈值化;
[0041]
对边缘图按照四叉树递归划分的方式建立边缘四叉树;
[0042]
按照下采样图像到全分辨率图像的位置映射关系,获取当前编码的cu与其子cu的边缘特征。
[0043]
在上述方法项实施例的基础上,本发明对应提供了装置项实施例。
[0044]
本发明另一实施例对应提供了一种用于h.265编码的快速帧内尺寸判决装置,包括:深度值预测模块,纹理复杂度计算模块,初步深度遍历范围估计模块,cu编码尺寸选择模块;
[0045]
所述深度值预测模块用于根据第一ctu的编码深度,预测当前ctu的预测深度值;其中,所述第一ctu为所述当前ctu的空域相邻已编码ctu;
[0046]
所述纹理复杂度计算模块用于计算当前ctu的平均梯度值,并根据所述当前ctu的平均梯度值,确定当前ctu的纹理复杂度;
[0047]
所述初步深度遍历范围估计模块用于联合所述当前ctu的预测深度值和纹理复杂度,确定当前ctu的初步编码尺寸范围;
[0048]
所述cu编码尺寸选择模块用于根据所述第一ctu的率失真代价和当前cu的边缘特征,从所述当前ctu的初步编码尺寸范围内确定所述当前cu的编码尺寸。
[0049]
与现有技术相比,本发明实施例公开的用于h.265编码的快速帧内尺寸判决装置通过联合预测深度值和纹理复杂度估计当前ctu块的初步深度遍历范围然后根据所述第一ctu的率失真代价和当前cu的边缘特征,确定所述当前cu的编码尺寸,加速了hevc编码过程的同时也大大降低了编码复杂度。
附图说明
[0050]
图1是本发明一实施例提供的一种用于h.265编码的编码尺寸选择方法的流程示意图。
[0051]
图2是本发明一实施例提供的一种用于h.265编码的编码尺寸选择装置的结构示意图。
具体实施方式
[0052]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0053]
h.265/hevc作为新一代视频编码标准,相比上一代视频编码标准h.264/avc在压缩效率上提升了一倍,但与此同时编码复杂度也大大增加。这主要是由于hevc(high efficiency video coding,高效视频编码)中引入了一些新的技术,比如大尺寸的四叉树分割、更高的预测精度、35种帧内预测模式以及rdo(rate distortion optimization,率失真优化)技术和sao(sample adaptive offset,样点自适应偏移)技术等。其中rdo过程需要计算每一种编码尺寸和预测单元的编码代价,从中选择代价最小的作为最佳尺寸和预测模式,因此,rdo过程是编码器编码过程中计算量最大的部分。hevc将图像划分为多个ctu(coding tree unit,编码树单元),每个ctu块利用四叉树结构被递归分割,一个ctu可以包含一个或切割成多个cu(coding unit,编码单元),一个cu是一个编码树的叶子节点,也是进行预测、变换、量化和熵编码等处理的基本单元。
[0054]
参见图1,是本发明一实施例提供的一种用于h.265编码的编码尺寸选择方法的流程示意图,包括:
[0055]
s101:根据第一ctu的编码深度,预测当前ctu的预测深度值;其中,所述第一ctu为所述当前ctu的空域相邻已编码ctu;
[0056]
s102:计算当前ctu的平均梯度值,并根据所述当前ctu的平均梯度值,确定当前ctu的纹理复杂度;
[0057]
s103:联合所述当前ctu的预测深度值和纹理复杂度,确定当前ctu的初步编码尺
寸范围;
[0058]
s104:根据所述第一ctu的率失真代价和当前cu的边缘特征,从所述当前ctu的初步编码尺寸范围内确定所述当前cu的编码尺寸。
[0059]
相较于现有技术中仅从时空域相关性的角度考虑或者没有充分利用图像纹理特征和空域相关性相结合,本发明实施例利用空域相关性估计当前ctu的预测深度值,并利用robert梯度算子计算当前ctu的纹理复杂度,联合预测深度值和纹理复杂度估计当前ctu块的初步深度遍历范围,最后根据所述第一ctu的率失真代价和当前cu的边缘特征,确定所述当前cu的编码尺寸,进一步缩小了深度遍历范围,加速了hevc编码过程的同时也大大降低了编码复杂度。
[0060]
对于步骤s101,具体的,根据当前ctu的空域相关性,确定所述第一ctu的数量,并根据各第一ctu与所述当前ctu的空域相关性,确定各第一ctu的权重因子。获取各第一ctu的编码深度值,并根据各第一ctu的编码深度值和权重因子,确定当前ctu的预测深度值。
[0061]
在一个优选的实施例中,根据以下公式计算所述当前ctu的预测深度值:
[0062][0063]
其中,depth
pre
为当前ctu的预测深度值,n为第一ctu的数量,ωi为第一ctu的权重因子,leveli为第一ctu的编码深度值,所述权重因子ωi根据当前ctu与各第一ctu的相关性进行设置。在设置权重因子的一个例子中,因为左侧ctu和上侧ctu与当前ctu的相关性大一些,ωi分别设为0.3;左上ctu和右上ctu与当前ctu的相关性小一些,ωi分别设为0.2。
[0064]
在一个优选的实施例中,左侧ctu的深度值用其右半ctu块的平均深度值代替,上侧ctu的深度值用其下半ctu块的平均深度值代替,左上ctu以及右上ctu的深度值用其与当前ctu块最相邻的cu的深度值代替。
[0065]
步骤s101利用空域相邻已编码的ctu块来预测当前ctu块的深度值,能有效加快编码速度,降低编码复杂度。
[0066]
对于步骤s102,具体的,当ctu的平均梯度值等于第一阈值时,确定当前ctu为绝对纹理平坦块;当ctu的平均梯度值在第一阈值到第二阈值之间时,确定当前ctu为纹理平坦块;当ctu的平均梯度值在第二阈值到第三阈值之间时,确定当前ctu为纹理普通块;当ctu的平均梯度值大于第三阈值时,判断当前ctu为纹理复杂块。在本实施例中,第一阈值为0,第二阈值为5,第三阈值为10。
[0067]
在一个优选的实施例中,采用roberts梯度算子来衡量ctu块的纹理复杂度,具体计算公式如下:
[0068]
roberts梯度算子计算方法为:
[0069]gx
=f(x+1,y)-f(x,y)
[0070]gy
=f(x,y+1)-f(x,y)
[0071]
g(x,y)=|g
x
+gy|
[0072][0073]
其中,f(x,y)表示位置(x,y)处的像素值,g
x
表示(x,y)的水平方向梯度,gy表示(x,y)的垂直方向梯度,g(x,y)表示(x,y)处的梯度,g
avg
表示当前ctu的平均梯度值。
[0074]
对于步骤s103,具体的:
[0075]
当所述当前ctu的预测深度值在起始阈值到预设下阈值范围内时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16、8
×
8;若所述当前ctu为绝对纹理平坦块,则确定当前ctu的初步编码尺寸范围为:32
×
32;否则,确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16;
[0076]
当所述当前ctu的预测深度值在预设下阈值到预设上阈值范围内时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:16
×
16、8
×
8;若所述当前ctu为纹理平坦块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16;若所述当前ctu为纹理普通块,则确定当前ctu的初步编码尺寸范围为:32
×
32、16
×
16、8
×
8;
[0077]
当所述当前ctu的预测深度值大于预设上阈值时,若所述当前ctu为纹理复杂块,则确定当前ctu的初步编码尺寸范围为:8
×
8;若所述当前ctu为纹理平坦块或纹理普通块,则确定当前ctu的初步编码尺寸范围为:16
×
16、8
×
8。
[0078]
在一个优选的实施例中,所述起始阈值为0,预设下阈值为0.5,预设上阈值为2.5。
[0079]
联合前面步骤得到的ctu块预测深度值和纹理复杂度数据,将其分类并按照对于纹理平坦块跳过小尺寸的编码,对于纹理复杂块跳过大尺寸的编码的原则估算初步深度遍历范围,能有效降低编码过程复杂度。
[0080]
对于步骤s104,具体的:
[0081]
获取当前ctu中已编码的16
×
16cu以及各第一ctu中已编码的16
×
16cu的平均率失真代价,分别记作rdcost1和rdcost2;
[0082]
根据所述rdcost1和rdcost2计算率失真代价阈值thr,具体计算公式为thr=rdcost1*0.6+rdcost2*0.4;
[0083]
若当前16
×
16cu的最小率失真代价小于所述率失真代价阈值,则当前cu采用16
×
16尺寸编码;
[0084]
若当前cu的最小率失真代价大于所述率失真代价阈值,则根据当前cu的边缘特征判断是否能确定当前cu的编码尺寸,若能确定则直接确定当前cu的编码尺寸;
[0085]
若根据当前cu的边缘特征仍然无法确定当前cu的编码尺寸,则计算当前cu在各编码尺寸下的率失真代价,比较后采用率失真代价最小的尺寸作为当前cu的编码尺寸。
[0086]
采用空域相邻ctu的最优率失真代价和当前cu的边缘特征实现cu级提前终止,能进一步缩小深度遍历范围,加速hevc编码过程。
[0087]
在一个优选的实施例中,所述根据当前cu的边缘特征确定当前cu的编码尺寸,具体包括:
[0088]
若当前16
×
16cu中不含有边缘,并且其所在ctu为纹理平坦块,则当前cu采用16
×
16尺寸编码;
[0089]
若当前16
×
16cu中含有边缘并且其4个子cu中均含有边缘,则当前cu采用8
×
8尺寸编码。
[0090]
其中,所述当前cu的边缘特征的获取步骤具体包括:
[0091]
对当前图像的1/4下采样图像采用sobel算子计算边缘图,并采用大津法otsu对其进行阈值化;
[0092]
对边缘图按照四叉树递归划分的方式从32x32依次到4x4建立边缘四叉树;
[0093]
按照1/4下采样图像到全分辨率图像的位置映射关系,获取当前编码的16
×
16cu与其4个子cu的边缘特征。
[0094]
在上述方法项实施例的基础上,本发明对应提供了装置项实施例;
[0095]
参见图2,是本发明一实施例提供的一种用于h.265编码的编码尺寸选择装置的结构示意图,包括:深度值预测模块201,纹理复杂度计算模块202,初步深度遍历范围估计模块203,cu编码尺寸选择模块204;
[0096]
所述深度值预测模块201用于根据第一ctu的编码深度,预测当前ctu的预测深度值;其中,所述第一ctu为所述当前ctu的空域相邻已编码ctu;
[0097]
所述纹理复杂度计算模块202用于计算当前ctu的平均梯度值,并根据所述当前ctu的平均梯度值,确定当前ctu的纹理复杂度;
[0098]
所述初步深度遍历范围估计模块203用于联合所述当前ctu的预测深度值和纹理复杂度,确定当前ctu的初步编码尺寸范围;
[0099]
所述cu编码尺寸选择模块204用于根据所述第一ctu的率失真代价和当前cu的边缘特征,从所述当前ctu的初步编码尺寸范围内确定所述当前cu的编码尺寸。
[0100]
与现有技术相比,本发明实施例公开的用于h.265编码的快速帧内尺寸判决装置通过联合预测深度值和纹理复杂度估计当前ctu块的初步深度遍历范围然后根据所述第一ctu的率失真代价和当前cu的边缘特征,确定所述当前cu的编码尺寸,加速了hevc编码过程的同时也大大降低了编码复杂度。
[0101]
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0102]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。