一种HEVC帧内预测模式快速选择方法与流程

文档序号:11524682阅读:704来源:国知局
一种HEVC帧内预测模式快速选择方法与流程

本方法属于音视频处理领域,涉及hevc(highefficiencyvideocoding)中帧内预测模块的预测模式快速选择方法。



背景技术:

超高清视频是未来发展的一种必然趋势,如何让人们快速有效的获取到超高清资源,如何实时性的传输超高清视频。这些都是下一代超高清视频面向实际应用所必须要解决的问题。帧内预测作为hevc编码中的核心模块,有效的较少其编码时间是一项比较有意义的研究。

实现帧内预测的快速编码大致可以分为以下三类方法:

第一类方法是对帧内编码单元四叉树划分算法进行优化,通过分析图像的编码尺寸和视频内容之间的联系,实现编码单元cu划分的提前终止,或者基于统计手段,通过离线学习或在线处理等分类技术,提前确定不同图像区域的编码尺寸的范围。

第二类方法是对帧内预测模式算法进行优化,分析帧内预测模式同图像纹理分布联系以及帧内预测模式之间的关联性,通过排除不必要的模式判断,实现编码加速。

第三类方法是简化率失真优化rdo计算的复杂度。

上述三类实现方法,每一类都具有各种手段来实现。一般而言,编码单元cu的快速划分主要有以下几种方法来实现:

第一种方法就是利用图像编码单元cu的复杂度,复杂度越高划分深度越大,复杂度越低,划分深度越小。我们可以通过计算编码单元cu的复杂度来预判编码单元cu将采用何种划分方式。

第二种方法是通过相邻编码单元cu的深度来预测当前编码单元cu的深度,也可以利用前一帧相同位置的编码单元cu深度来预测当前编码单元cu的深度。通过此类方法,我们可以跳过某些编码单元cu的划分方式,也可以提前终止某些编码单元cu的划分方式。

第三种方法是利用分类器的方法来判断当前编码单元cu是否继续划分。例如,利用支持向量机svm,利用决策树,随机深林,贝叶斯分类器等。

帧内预测模式算法的优化主要有以下几种方法来实现:

第一种是利用上层预测单元pu的最佳预测模式来预测当前预测单元pu的预测模式。

第二种是利用相邻预测单元pu的预测模式来预测当前预测单元pu的预测模式。

第三种是利用当前预测单元pu的纹理方向来提前预判当前预测单元pu可能的最佳预测模式



技术实现要素:

本发明的目的在于提出一种hevc帧内预测模式快速选择算法,主要是通过得到当前预测单元pu的纹理方向,来实现预测模式的快速选择。能够在不大影响编码性能的情况下,减少编码时间。能够用来进行实时编码,降低编码时间太长引起的时延。

实现本发明目的的技术解决方案为。

一种hevc帧内预测模式快速选择方法,其包括如下步骤:

步骤1:从视频序列中提取一帧图像,将一帧图像划分为若干个编码树单元ctu,每个编码树单元ctu包含64×64个像素,此时编码树单元ctu的划分深度设置为0,执行步骤2;

步骤2:通过prewitt算子得到编码单元cu的纹理方向,通过纹理方向选出相应的最有可能的一种角度预测模式,将最有可能的模式mpm和两种非角度模式直流dc模式和planar模式加入到候选模式中,执行步骤3;

步骤3:对候选模式中每一种预测模式进行率失真优化rdo代价的计算,选择率失真优化rdo代价最小的预测模式作为最优的预测模式,执行步骤4;

步骤4:如果划分深度小于3,将编码单元cu划分深度加1,重复步骤2-3,直到划分深度大于3停止划分,就可以得到当前编码树单元ctu最优的深度划分和预测模式,整帧图像完成帧内预测。

进一步地,步骤2具体包括以下步骤:

步骤2.1:根据prewitt算子模板,对编码单元cu的像素值进行模板卷积计算得到水平和垂直方向即x,y方向的梯度,利用y/x的反正切值得到编码单元cu的纹理方向角度,执行步骤2.2;

步骤2.2:根据得到的纹理方向角度,与hevc帧内预测角度作出一一对应,从而能够找出编码单元cu的纹理方向角度相对应的最有可能的一种预测模式,执行步骤2.3;

步骤2.3:建立一个候选模式列表,将得到的一种角度预测模式加入到候选列表,然后将当前编码单元cu相邻的三个编码单元cu的最佳预测模式和两种非角度预测模式即直流dc模式和planar模式同样加入到候选模式列表中。

进一步地,步骤2.1具体包括以下步骤:

步骤2.1.1:判断当前预测单元pu的宽度和高度是否小于等于8个像素,如果是,则利用prewitt算子的四个方向模板对每一个3×3像素矩阵进行卷积计算,对于4×4大小的预测单元pu而言,有4个3×3像素矩阵,执行步骤2.1.2;如果不是执行步骤2.1.3;

步骤2.1.2:将每一个3×3像素矩阵的四个方向模板计算结果进行坐标x,y合成,得到水平梯度值gx和垂直梯度值gy;求取上述步骤得到的gx和gy的平均值,利用得到的平均值的反正切值得到预测单元pu的纹理方向角度;

步骤2.1.3:如果编码单元cu的宽度高度大于8个像素,则由于尺寸太大,造成各3×3像素矩阵的计算结果相互抵消,从而使得提取效果不好,此时,仍采用标准算法中的粗模式选择方法。

进一步地,步骤2.2具体包括以下步骤:

步骤2.2.1:计算出hevc帧内预测33种角度预测模式所对应的角度;执行步骤2.2.2。

步骤2.2.2:根据计算出的角度,算出两个相邻模式的平均角度,以当前模式与前一模式的角度作为右侧值,以当前模式与后一模式的角度平均值作为左侧值,得到每一个模式对应的角度范围,执行步骤2.2.3;

步骤2.2.3:依次遍历所有模式的角度范围,找到对应与纹理方向角度垂直的角所对应的模式。

与hevc编码标准中帧内预测技术相比,本发明具有如下优点:

1.提出的帧内预测模式快速选择算法能够快速的确定可能的最优的角度预测模式,能够有效的减少编码时间,实现实时编码。

2.能够降低帧内预测编码过程的复杂度。

附图说明

图1是本发明一种帧内预测模式快速选择方法的整体流程图。

图2是prewitt算子四个方向的卷积模板。

图3是编码单元cu的划分流程图。

图4是利用prewitt算子提取当前编码单元cu纹理方向的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

结合图1,本发明一种帧内预测快速模式快速选择方法,具体实施方式如下:

步骤1:将平台配置的hevc视频序列分割为若干个小的图像组,从图像组中提取出一帧图像。将该帧图像划分成若干个编码树单元ctu,先将每一个编码树单元ctu的划分深度设置为0,执行步骤2;

步骤2:建立当前编码单元cu的候选模式列表,具体步骤如下:

2.1):如果编码单元cu尺寸为4或者8个像素,对当前深度的编码单元cu进行prewitt算子模板卷积计算,利用0度方向的模板进行水平方向的梯度计算,利用90度方向的模板进行垂直方向的梯度计算,再利用45°角和135°角的模板计算梯度方向,最后通过坐标合成得到当前编码单元cu的水平和垂直梯度向量,求取纹理方向角度值。执行步骤2.2;如果编码单元cu尺寸比8大,则采用粗模式选择得到候选模式,结合图4,步骤2.1的具体步骤如下:

a):提取当前编码单元cu的左上角的3×3像素矩阵,以中心点像素值为f(x,y)。定义两个变量i和j,其中i代表当前像素矩阵所在宽度的位置,j代表当前像素矩阵所在高度的位置,i和j均初始化为1。

b):利用图2所示的prewitt算子四个方向的模板来分别计算四个方向的梯度值,如式(1)-(4)所示。

g0°=f(x-1,y+1)+f(x,y+1)+f(x+1,y+1)-f(x-1,y-1)-f(x,y-1)-f(x+1,y-1)(1)

g90°=f(x+1,y-1)+f(x+1,y)+f(x+1,y+1)-f(x-1,y-1)-f(x-1,y)-f(x-1,y+1)(2)

g45°=f(x-1,y)+f(x-1,y+1)+f(x,y+1)-f(x,y-1)-f(x+1,y-1)-f(x+1,y)(3)

g135°=f(x-1,y-1)+f(x,y-1)+f(x-1,y)-f(x+1,y+1)-f(x,y+1)-f(x+1,y)(4)

其中g0°表示是0度方向的梯度值,g90°表示90度方向梯度值,g45°表示的是45度方向的梯度值,g135°表示的是135度方向的梯度值,f(x-1,y-1)表示坐标为(x-1,y-1)的像素值,f(x-1,y-1)表示坐标为(x-1,y-1)的像素值,f(x-1,y)表示坐标为(x-1,y)的像素值,f(x-1,y+1)表示坐标为(x-1,y+1)的像素值,f(x,y-1)表示坐标为(x,y-1)的像素值,f(x,y)表示坐标为(x,y)的像素值,f(x,y+1)表示坐标为(x,y+1)的像素值,f(x+1,y-1)表示坐标为(x+1,y-1)的像素值,f(x+1,y)表示坐标为(x+1,y)的像素值,f(x+1,y+1)表示坐标为(x+1,y+1)的像素值;

c):将四个方向的梯度值进行坐标合成,得到合成后的水平方向梯度值gx和垂直方向梯度值gy,如式(5)和(6)所示

d):将3×3像素矩阵右移,此时i自增1,如果此时的i等于编码单元cu宽度减1,则将像素矩阵下移,j加1,执行步骤e)。否则i自增1之后重复上述步骤b)和c)。

e):j加1之后,依然是重复上述步骤b)、c)和d)。直到将编码单元cu内所有的像素矩阵均处理计算完成。

f):求得上述所有计算的像素矩阵的水平方向梯度值gx和垂直方向梯度值gy的平均值,根据其反正切值就可求得当前编码单元cu的纹理方向角度。

2.2):求得当前纹理方向的角度值后,与帧内预测角度模式进行一一对照,从而能够找出与纹理方向角度最接近的两种角度预测模式,将这两种角度预测模式加入到模式候选列表中。执行步骤2.3);

2.3):获取当前编码单元cu相邻的编码单元cu的最佳预测模式mpm,将mpm加入到候选模式列表中,同时也将两种非角度预测模式直流dc模式和planar模式加入到候选模式列表中。这样就组成了候选模式列表,其数量一般为6种。

步骤3:对候选模式中每一种预测模式进行率失真优化rdo代价的计算,选择率失真优化rdo代价最小的预测模式作为最优的预测模式,具体步骤为:

3.1):对候选模式列表中的每一种模式进行预测计算,得到当前编码单元cu内像素的预测值,用原始值减去预测值,得到残差值。执行步骤3.2;

3.2):将残差值作平方和的计算得到采用不同预测模式的失真度,另外计算得到采用不同预测模式所需要的比特数。执行步骤3.3;

3.3):通过步骤3.2的计算,按照式(7)得到各种候选预测模式的rdo代价,选取rdo代价值最小的预测模式作为最优预测模式。

rdomode=sse+λmode×bmode(7)

sse表示平方差值之和,bmode表示预测单元熵编码后的编码代价,包括残差数据熵编码后的码流信息,λmode表示拉马达值的大小。

步骤4:结合图3,对编码单元cu进行四叉树的划分,具体步骤为:

4.1):判断编码单元cu的划分深度的大小,如果当前编码单元cu的划分深度小于3,则编码单元cu能够继续划分,执行上述步骤2-3。否则当前编码单元cu无法继续划分,执行步骤4.2;

4.2):比较当前深度的编码单元cu的率失真优化rdo代价与下一深度的四个子编码单元cu的率失真优化rdo代价之和的大小。如果当前深度的率失真优化rdo代价比较小,则编码单元cu无需继续划分,否则需要继续划分。执行步骤4.3;

4.3):递归比较每一深度与下一深度的率失真优化rdo代价,从而确定当前编码树单元ctu的最优划分模式。

步骤5:重复步骤2-4,直到将整帧图片处理完成。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1