一种基于四叉树编码分割的hevc复杂度控制方法_2

文档序号:9399631阅读:来源:国知局
br>【具体实施方式】
[0068] 下面结合附图与具体实例对本发明作进一步的描述:
[0069] -种基于四叉树编码分割的HEVC复杂度控制方法,包括检测区域显著性、建立块 级别权重图谱,建立编码深度与编码复杂度之间的函数关系,以及编码深度与失真程度之 间的函数关系,通过复杂度-失真优化控制模型控制每一帧的编码复杂度等于其相应的目 标复杂度,以及在帧级别上调整目标复杂度。
[0070] 首先由用户根据自身需求或者由终端的计算能力决定编码的初始目标复杂度,同 时,由区域显著性检测(saliency detection)算法检测出每一个像素点的视觉显著性,进 而生成块级别权重图谱。根据初始目标复杂度和块级别的权重图谱,进行块级别的编码复 杂度控制。
[0071] 在控制之前,通过统计学习,提前训练两个函数关系,获取编码深度与编码复杂度 之间的对应关系,编码深度与失真程度之间的对应关系,将这两个关系和块级别的权重图 谱应用到块级别复杂度-失真控制优化模型中。
[0072] 在块级别的复杂度控制优化模型中,复杂度的控制是通过计算每一个编码块的编 码深度实现的,深度越高,编码复杂度越高,所对应的视频失真越小。因此,可在实现目标编 码复杂度的前提下,通过失真优化模型,最小化编码后视频的失真。除此之外,本发明还设 置了帧级别的复杂度分配调整机制,这一机制旨在根据之前帧的实际编码复杂度来动态地 调整当前帧的目标复杂度,其目的是在块级别复杂度控制的基础上,进一步保证视频整体 的编码复杂度最大程度地接近目标复杂度,提高复杂度控制的准确性。
[0073] 在块级别控制实施完成后,在帧级别进行复杂度的分配调整,获得下一帧的目标 复杂度后,进行目标复杂度的更新,用获得的新的目标复杂度替换掉之前的目标复杂度,继 续进行下一帧的块级别复杂度控制。
[0074] 循环此过程直至整个视频编码结束。
[0075] 具体步骤如下,如图1所示:
[0076] 步骤一、用户根据自己的需求或者终端的计算能力设定视频编码每一帧的初始目 标复杂度。
[0077] 步骤二、编码器利用区域显著性检测算法生成视频帧中每一帧的编码块权重图 谱。
[0078] 如图2所示,包括如下步骤:
[0079] 步骤201、输入视频帧;
[0080] 视频的格式优选原始的YUV文件,但不局限于此格式。
[0081] 视频由帧组成,每一帧包括多个编码块,每个编码块含有多个像素点;本发明实例 中,编码块尺寸为64 X 64 ;
[0082] 如果编码区域不重合的话,一个像素点只能属于一个编码块,每个编码块可以包 含多个像素点;
[0083] 步骤202、利用区域显著性检测算法获得视频帧中每个编码块包含的每一个像素 点的权重;
[0084] 每一个像素点的视觉显著性就是每一个像素点的权重值,本发明优选PQFT (phase spectrum of quaternion Fourier transform)区域显著性检测算法计算每一个像素点的 视觉显著性。
[0085] 步骤203、计算每个编码块内所有像素点权重值,取平均值获得该编码块的权重;
[0086] 针对编码块i,计算编码块内的所有像素点的视觉显著性并取平均值,获得编码块 i的视觉显著性W1,公式为:
[0087]
[0088] 其中,Vn表示第η个像素点的视觉显著性。编码块尺寸为64X64 ;M为编码块内 所有像素点的个数,本发明实例中的M值为64 X 64。
[0089] 步骤204、将视频每一帧内所有编码块的权重值构成权重图谱;
[0090] 对视频中每一帧内的每一个编码块都进行步骤203,获得每一个编码块的视觉显 著性,从而生成该帧的编码块权重图谱。
[0091] 本实施例选取的视频中生成的块级别的权重图谱如图3所示;
[0092] 步骤三、根据每一帧目标复杂度和编码块权重图谱,编码器设计每一帧的块级别 复杂度-失真优化控制模型;
[0093] 编码深度与复杂度之间关系训练是基于四叉树编码分割的体系;具体步骤如图4 所示,
[0094] 步骤301、建立编码深度与编码复杂度之间的关系;
[0095] 如图5和图8所示,具体包括:
[0096] 步骤(I)、选取至少三个训练视频,包含上万个编码块;
[0097] 本发明不局限于训练视频数量和编码块深度。
[0098] 步骤(2)、将所有编码块的编码深度设置为最大值3 ;记录每一个编码块的编码时 间C1 (3),作为参考时间。
[0099] i表示编码块的序号,为自然数;编码块的深度分别为3, 2,1和0,本实例中最大值 为3。
[0100] 步骤(3)、将所有编码块的编码深度分别设置为不同的深度值山,Cl1G {3, 2, 1,0}, 记录每一个编码块在相应的编码深度下的编码时间C1 (Cl1)。
[0101] 步骤(4)、利用参考时间对编码时间C1 (山)进行归一化,获得每一个编码块归一化 的编码时间G(Ji),即相对编码复杂度,归一化公式为:
[0102]
[0103] 步骤(5)、对所有训练视频的所有编码块的归一化编码复杂度取平均值,获得不同 编码深度(I i对应的编码复杂度C(d ;)。
[0104] 步骤302、建立编码深度与失真程度之间的关系;
[0105] 训练流程图如图6和图9所示,具体包括:
[0106] 步骤(3-1)、选取至少三个训练视频,包含上万个编码块;
[0107] 步骤(3-2)、将所有编码块的编码深度设置为最大值,记录每一个编码块编码后的 均方误差值MSE 1 (3),作为参考均方误差值。
[0108] 编码块的深度分别为3, 2,1和0。将所有编码块的编码深度设置为最大值3,记录 每一个编码块编码后的均方误差MSE (Mean Square Error)值MSE1 (3),作为参考均方误差 值。
[0109] i表示编码块的序号,为自然数;
[0110] 步骤(3-3)、将所有编码块的编码深度分别设置为不同的深度值山, Cl1G {3, 2, 1,0},记录每一个编码块在相应的编码深度下的编码后的均方误差值,记为 MSE1 (Cl1) 〇
[0111] 步骤(3-4)、利用参考均方误差值对均方误差值MSE1 (Cl1)进行归一化,得到每一个 编码块在不同编码深度下的归一化失真程度?公式如下:
[0112]
[0113] 步骤(3-5)、对所有训练视频的所有编码块的归一化失真程度与最大深度的关系 做二次拟合,即可获得不同编码深度Cl 1所对应的失真程度ADW J。
[0114] 如图10所示,横坐标是编码深度,纵坐标是失真程度,图中的黑点表示在对应深 度下的失真程度,黑点包含所有训练视频,然后对所有的数据进行多项式拟合,得到图中的 蓝线,即最终的关于编码深度和失真程度的关系。
[0115] 步骤303、综合编码深度与编码复杂度之间的关系,编码深度与失真程度之间的通 用的函数关系以及步骤二中每一帧的编码块权重图谱,得到每帧的块级别复杂度-失真优 化控制模型;
[0116] 该模型表示如下:
[0117]
[0118] 其中,I为每一帧内编码块的数量,T。为初始目标复杂度,AD(Cl1)为编码深度 为山时所对应的编码失真;C(d J在编码深度为山时所对应的编码复杂度。针对第i 个和第1个两个编码块,O1是第i个编码块的权重值;ω 1是第1个编码块的权重值, AD(Cl1)是第1个编码块的失真程度,通过比较两个编码块的权重值和失真程度,满足条件: 斗Δ?(?/,) S ΔΟΚ),保证了权重值高的编码块的失真程度小于权重低的编码块的失 真程度。
[0119] 该块级别复杂度-失真优化控制模型中,含有一个优化目标和两个优化条件。优 化目标是第一个表达式,使得视频整体的客观失真最小,优化条件有两个:第一是:中间的 表达式保证控制的准确度,即实际编码复杂度等于目标复杂度;第二是:最后一个表达式, 保证编码后视频的主观质量,即要求显著性比较高的编码块的失真程度较小。
[0120] 在满足第一个优化条件的情况下,可以获得编码深度分别为3, 2,1和0所对应的 编码块数量:分别为N3, N2, &和N。。在此基础上,为了满足第二个优化条件,需要对编码块 的视觉显著性ω 1进行排序,为了使显著性高的编码块失真较小,需要赋予其相对较大的编 码深度。
[0121] 在实施例中优选快速排序法,但不局限于快速排序方法。具体的分配过程,如图11 所示:按照编码块的视觉显著性大小,编码深度被分配给每一个编码块,显著性越大的编码 块所分配的编码深度也越高,并且总体满足N 3, N2, &和N。四者之和为每一帧中编码块的总 数量。
[0122] 步骤四、针对步骤二输入的视频中的所有帧,循环更新当前帧的目标复杂度替换 前一帧的目标复杂度,应用于步骤三得到的当前帧的块级别复杂度-失真优化控制模型 中;
[0123] 如图7所示,包括以下几个步骤:
[0124] 步骤401、针对视频的前N帧,正常编码不进行复杂度控制,计算编码时间之和tg;
[0125] 步骤402、获取前N
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1