一种自适应的从h264到hevc的帧间快速转码方法及装置的制造方法
【专利摘要】本发明涉及视频编解码领域,尤其是一种自适应的从H264到HEVC的帧间快速转码方法及装置。本发明针对现有技术存在的问题,提供一种快速转码方法及装置。本发明针对H264到HEVC转码中的帧间预测加速问题,提出了一种综合了自适应的模式映射、运动向量的合理重复利用的方案。帧间预测阶段,可能进行一系列四叉树分割,然后得到CU8;也有可能提前中止,有些不用最终深入到CU8,不用分割到CU16,最理想的直接将CU64作为一个整体进行编码;其中CU32、CU16以及CU8帧间预测得到的都是临时的最优模式;在整个Cu64帧间预测结束后得到最优编码模式,根据最优编码模式进行编码。
【专利说明】
一种自适应的从H264到HEVC的帧间快速转码方法及装置
技术领域
[0001 ]本发明涉及视频编解码领域,尤其是一种自适应的从H264到HEVC的帧间快速转码 方法及装置。
【背景技术】
[0002] 近年来随着视频业务的飞速发展,人们对观看高清乃至超高清视频的需求也越来 越高,目前主流的视频压缩编码标准H.264/AVC已经不能适应高数据量下的视频的网络传 输,于是新一代视频压缩编码标准H.265/HEVC应运而生。HEVC最主要的目标是在压缩效率 上获得显著提高,即在保持视频质量基本不变的同时减少50%左右的码率,但编码的计算 复杂度也由此急剧增加。
[0003] HEVC相对于H.264在编码性能上的大幅提升主要体现在:(1)采用了更加灵活的编 码结构来提高编码效率,包括编码单元CU、预测单元PU和变换单元TU,同时将宏块的大小从 H. 264的16 X 16扩展到了64 X64,更适用于高分辨率视频的压缩;(2)采用了更多的帧内预 测方向,每种PU尺寸最多可达30余种预测方向,更大范围的PU尺寸和更多的PU帧内预测方 向使得HEVC比H.264/AVC有了更高的帧内预测压缩性能;(3)采用了更多的帧间预测模式, 包含了对称PU模式和非对称模式,使得HEVC有了更加多样化的运动块匹配,从而提高了 帧间运动估计的压缩性能,等等。
[0004] 目前高清及超高清视频逐渐成为目前网络存储和传输的主要业务,因此,将视频 采用压缩比相对H. 264标准提高一倍的HEVC标准应用于视频的存储和网络传输,将带来很 大的性能提升。然而,目前既有的数以亿计的多媒体资源,其中视频部分大多均是采用老一 代的H. 264标准压缩。因此,研究从H. 264标准到HEVC标准的视频转码技术具有充分的现实 意义和经济价值。
[0005] 传统的H. 264向HEVC转码的方法是将H. 264解码器与HEVC的编码器级联,直接对 H. 264标准解码得到的图像进行HEVC编码。这种方法解码器和编码器相互独立,没有对 H. 264码流中所包含的信息进行解码后的充分利用,而是遍历了编码中的所有过程,因此复 杂度很高。因此,针对利用解码信息降低转码器的计算复杂度的技术,目前已经有学者进行 了 一定的研究。
[0006] 利用解码信息的转码技术研究,多数集中在加速帧间预测和加速帧内预测这两个 方面。由于H. 264和HEVC编码中,参考帧号、运动矢量、运动估计的预测方式等是相同的。因 此,可以在H. 264码流中提取参考帧号、宏块位置坐标、宏块类型、运动矢量等信息,并应用 在HEVC编码端,对帧间和帧内预测等环节进行优化,从而大幅降低整个转码的计算复杂度。
[0007] 以帧间预测为例,典型的技术如:Eduardo Peixoto和Tamer Shanableh等人以运 动矢量的方差等建立特征,利用模式分类的思想,提取H.264码流中的特征信息,通过一种 线性判别函数,确定出ffiVC编码器中图像的编码单元的划分方式,从而大大减少了确定分 块方式的计算量。Qingxiong Huangyuan和Li Song等人则以H.264分块信息等为特征,利用 机器学习的思想,采用SVM分类器预测HEVC编码中的CU编码块层次深度范围,从而大大降低 了HEVC中四叉树结构编码的复杂度。
【发明内容】
[0008] 本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种自适应的从 H264到HEVC的帧间快速转码方法及装置。本发明主要针对H. 264到HEVC转码中的帧间预测 加速问题,提出了一种综合了自适应的模式映射、运动向量的合理重复利用的技术方案。帧 间预测阶段,结束后,进行编码(包括变换编码及熵编码等)。帧间预测阶段,可能进行一系 列⑶64、CU32、⑶16的四叉树分割,然后得到⑶8;也有可能提前中止,有些不用最终深入到 ⑶8,有些甚至不用分割到⑶16,最理想的有些连⑶32都不用帧间预测,而是直接将⑶64作 为1个整体进行编码;其中CU32帧间预测、CU16帧间预测以及CU8帧间预测得到的最优模式, 都只是一个临时最优模式,并且CU32帧间预测、CU16帧间预测以及CU8帧间预测都只是为了 得到临时最优模式,而不进行任何编码;编码是在整个Cu64帧间预测结束后得到最优编码 模式,根据最优编码模式进行编码。
[0009] 本发明采用的技术方案如下:
[0010] -种自适应的从H264到HEVC的帧间快速转码方法包括:
[0011] 步骤1:输入原始H264视频流,并对该视频进行解码,提取当前解码帧的宏块残差、 编码模式、参考帧、运动向量;将ffiVC编码树单元覆盖的区域对应至当前解码帧的各个宏 块;
[0012] 步骤2:进行⑶64帧间预测,得到⑶64不分割时的最优模式,然后判断当前⑶64帧 间预测是否可以提前终止,当⑶64对应的各MB参考帧相同、各MB全部是Pskip模式或16*16 模式并且各MB的运动向量MV相近且16个MB对应的残差系数幅值之和小于⑶64阈值时,则不 需要对CTU进行分割,直接采用CU64不分割时的最优模式作为最优编码模式,否则,将CTU进 行四叉树分割,形成4个第一级子单元CU32,对每个CU32分别执行步骤3之后,将所有第一级 子单元CU32帧间预测中当前CU的最优模式时对应的代价连同分割标志编码代价一起求和, 求和结果与CU64不分割时CU在最优模式时的代价对比,选择代价小者对应的模式作为当前 ⑶64最优编码模式,以⑶64最优编码模式对CTU进行编码:其中⑶64为64*64大小的⑶;CU32 为32*32的CU;CU16为16*16的CU;C8为8*8的CU;CU64是将64*64大小的宏块分割为4个32*32 大小的区域CU32;
[0013] 步骤3:进行⑶32帧间预测,得到⑶32不分割时的最优模式;然后判断当前⑶32帧 间预测是否可以提前终止,当当前CU32对应的MB参考帧相同、对应的MB为Skip或16x16模 式、4个MB的运动向量MV相近及4个MB对应的残差系数幅值之和小于CU32阈值时,则当前 CU32可以提前终止,直接以CU32不分割时的最优模式作为CU32的最优模式,然后进行下一 个CU32的帧间预测,否则,进入当前第一级子单元的CU32四叉树分割,形成4个第二级子单 元CU16,对每个CU16分别执行步骤4之后,将所有第二级子单元CU16帧间预测中当前CU的最 优模式时对应的代价连同分割标志编码代价一起求和,求和结果与CU32不分割时CU在最优 模式时的代价对比,选择代价小者对应的模式作为当前CU32的最优模式,然后才进行下一 个CU32的帧间预测;
[0014]步骤4:进行CU16帧间预测,得到CU16不分割时的最优模式,然后判断当前CU16帧 间预测是否可以提前终止,当当前CU16对应MB是PSkip模式或者对应MB不是帧内模式、对应 的MB未划分为亚宏块且MB对应的残差系数幅值之和小于等于⑶16阈值时,则当前⑶16可以 提前终止,直接以CU16不分割时的最优模式作为CU16的最优模式,然后进行下一个CU16的 帧间预测,否则进入CU16的四叉树分割,形成4个第三级子单元CU8,对每个CU8分别执行步 骤5,执行步骤5之后,将所有CU8帧间预测中当前CU在最优模式时的代价连同分割标志编码 代价一起求和,求和结果与当前CU16不分割时CU在最优模式时的代价对比,选择代价小者 对应的模式作为当前CU16最优模式,然后才进行下一个CU16的帧间预测;CU16进行四叉树 分割指的是将16*16大小宏块分给为4个8*8大小的区域CU8;
[0015] 步骤5:进行CU8帧间预测,然后进行下一个CU8的帧间预测。
[0016] 进一步的,所述⑶64帧间预测具体包括:
[0017] 步骤21:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当 前CU对应于H264的16个MB,计算16个MB的参考帧是否相同;若参考帧相同,则执行步骤22; 否则,执行步骤23;
[0018] 步骤22:当16个MB全被H264编码为16x16或Skip模式、16个MB的运动向量MV相近且 判定当前CU所对应的所有MB对应的残差系数幅值之和小于CU64阈值时,则根据16个MB的运 动向量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其 他帧间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行 比较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用 H. 264的运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代 价,然后将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU64四 叉树分割;CU64模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N* 2N模式对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是1^,表示小于_勺 在编码单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N 的在编码单元CU左部;R指的是right,表示小于N的在编码单元CU右部;
[0019] 步骤23:对当前CU进行2NX2N按搜索范围进行正常运动估计,对其余帧间模式对应 的预测单元PU做判断,考察每一个PU对应的所有宏块MB,若宏块MB的参考帧相同且宏块MB 都是PSkip或16x16模式;则对CU64帧间预测模块对应的预测单元PU做小范围运动估计,否 贝1J,进行正常运动估计,执行步骤24;
[0020] 步骤24:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在 其他模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU64四叉树分割。
[0021] 进一步的,所述⑶32帧间预测具体包括:
[0022] 步骤211:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当 前CU对应于H264的4个MB,计算4个MB的参考帧是否相同;若参考帧相同,则执行步骤212;否 贝1J,执行步骤213;
[0023] 步骤212:当4个MB全被H264编码为16x16或Skip模式、4个MB的运动向量MV相近且 判定当前CU所对应的所有MB对应的残差系数幅值之和小于CU32阈值时,则根据4个MB的运 动向量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其 他帧间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行 比较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用 H. 264的运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代 价,然后将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU32四 叉树分割;CU32模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N* 2N模式对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是1^,表示小于_勺 在编码单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N 的在编码单元CU左部;R指的是right,表示小于N的在编码单元CU右部;
[0024]步骤213:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对 应的预测单元PU做判断,考察每一个对应的所有宏块MB及宏块MB的局部区域,若宏块MB 及宏块MB的局部区域的参考帧相同且宏块MB及宏块MB的局部区域都是完整划分;则对CU64 帧间预测模块对应的预测单元PU做小范围运动估计,否则,进行正常运动估计,执行步骤 214;完整划分指的是宏块MB都是PSkip、16x16模式,宏块MB的局部区域的内部不存在MB模 式划分形成的分界;宏块MB的局部区域指的是宏块MB的一部分;
[0025]步骤214:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在 其他模式的代价、帧内模式的代价对应与当前CU执行merge/sk ip模式得到的代价进行比 较,比较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU32四叉树分割。 [0026]进一步的,所述⑶16帧间预测具体处理过程是:
[0027] 步骤31:对当前⑶执行Merge/Skip模式,计算当前⑶对应的MB是否已经划分到 SubMB(亚宏块)级别,如果是,则跳过其它帧间模式的测试,进行CU16四叉树分割,将4个CU8 中当前CU在最优模式时的代价连同分割标志编码代价一起求和,求和结果与CU16不分割时 CU在最优模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式;否则,执行 步骤32;
[0028]步骤32:若当前⑶对应的MB是否编码为PSkip模式,如果是,则跳过其他帧间模式, 以merge/skip模式作为当前⑶16不分割时的最优模式;如果当前⑶对应的MB不是PSkip,而 是帧内模式,贝IJ跳过其他帧间模式,执行帧内模式,与当前CU执行merge/skip模式得到的代 价进行比较,选择代价较小的作为当前CU在不分割时的最优模式,然后进行CU16四叉树分 害U;如果当前CU对应的MB不是PSkip,也不是帧内模式,则MB为16x16、16x8或8x16模式,执行 步骤33;
[0029]步骤33:判断当前⑶对应的MB对应的残差系数幅值之和是否大于⑶16阈值,如果 大于阈值,则进行CU16四叉树分割;否则,采用H. 264宏块既有的帧间预测模式作为当前 CU16不分割时的最优模式,同时米用H. 264宏块既有的运动向量,不进行CU16其他的帧间模 式计算。
[0030]进一步的,所述⑶8帧间预测具体处理过程是:
[0031 ] 步骤41:对HEVC编码树单元的编码单元CU执行merge/skip模式,接着先看当前CU 所在的H. 264的宏块模式;如果当前CU对应的MB模式为PSkip模式,则直接结束;若当前CU对 应的MB是帧内模式,则计算当前CU所有剩余模式的代价,并与当前CU执行执行merge/skip 模式得到的代价进行比较,选择代价小者对应的模式作为当前CU最优模式;如果当前CU对 应的MB即不是PSkip模式也不是帧内模式,则先判断当前CU对应的MB的划分是否大于等于 当前的⑶8,也即是否为16*16模式、16x8模式、8x16模式、8x8模式这几种模式;如果是,则当 前⑶的2Nx2N模式的MV采取覆盖当前⑶的对应MB或子块的运动向量MV,并跳过其他剩余模 式;否则,执行步骤42;其他剩余模式指的是2N*N模式、N*2N模式对称模式和帧内模式;所有 剩余模式指的是2Nx2N模式和其他剩余模式;
[0032] 步骤42:当当前CU对应的亚宏块是8x4或4x8模式,则CU对应采用2NxN或Nx2N模式, 同时采用2NxN或Nx2N模式对应运动向量MV,与当前⑶采用merge/skip模式得到的代价比较 后选出最优模式;如果当前CU对应的亚宏块是4x4模式,则根据H264对应区域的运动向量 MV,分别做缩小范围运动估计,遍历剩余模式,最后与merge/skip模式得到的代价比较选出 最优模式;剩余模式指的是2N*N模式、N*2N模式对称模式。
[0033]进一步的,一种自适应的从H264到HEVC的帧间快速转码装置包括:
[0034] H264解码模块,用于对输入原始H264视频流进行解码,提取当前解码帧的宏块残 差、编码模式、参考帧、运动向量;将ffiVC编码树单元覆盖的区域对应至当前解码帧的各个 宏块;
[0035] CU64预测模块,用于进行CU64帧间预测,得到CU64不分割时的最优模式,然后判断 当前⑶64帧间预测是否可以提前终止,当⑶64对应的各MB参考帧相同、各MB全部是Pskip模 式或16*16模式并且各MB的运动向量MV相近且16个MB对应的残差系数幅值之和小于⑶64阈 值时,则不需要对CTU进行分割,直接采用CU64不分割时的最优模式作为最优编码模式,否 贝1J,将CTU进行四叉树分割,形成4个第一级子单元⑶32,对每个⑶32通过⑶32预测模块进行 处理,然后将所有第一级子单元CU32帧间预测中当前CU的最优模式时对应的代价连同分割 标志编码代价一起求和,求和结果与CU64不分割时CU在最优模式时的代价对比,选择代价 小者对应的模式作为当前CU64最优编码模式,以CU64最优编码模式对CTU进行编码:其中 CU64 为64*64大小的 CU;CU32 为 32*32 的 CU;CU16 为 16*16 的 CU;C8 为 8*8 的 CU;CU64 是将 64*64 大小的宏块分割为4个32*32大小的区域CU32;
[0036] CU32预测模块,用于进行CU32帧间预测,得到CU32不分割时的最优模式;然后判断 当前CU32帧间预测是否可以提前终止,当当前CU32对应的MB参考帧相同、对应的MB为Skip 或16x16模式、4个MB的运动向量MV相近及4个MB对应的残差系数幅值之和小于⑶32阈值时, 则当前CU32可以提前终止,直接以CU32不分割时的最优模式作为CU32的最优模式,然后进 行下一个CU32的帧间预测,否则,进入当前第一级子单元的CU32四叉树分割,形成4个第二 级子单元⑶16,对每个⑶16通过⑶16预测模块进行处理,然后将所有第二级子单元⑶16帧 间预测中当前CU的最优模式时对应的代价连同分割标志编码代价一起求和,求和结果与 CU32不分割时CU在最优模式时的代价对比,选择代价小者对应的模式作为当前CU32的最优 模式,然后才进行下一个CU32的帧间预测;
[0037] CU16预测模块,用于进行CU16帧间预测,得到CU16不分割时的最优模式,然后判断 当前CU16帧间预测是否可以提前终止,当当前CU16对应MB是PSkip模式或者对应MB不是帧 内模式、当前CU16对应的MB未划分为亚宏块且当前CU16对应的MB对应的残差系数幅值之和 小于等于C U16阈值时,则当前C U16可以提前终止,直接以C U16不分割时的最优模式作为 CU16的最优模式,然后进行下一个CU16的帧间预测,否则进入CU16的四叉树分割,形成4个 第三级子单元CU8,对每个CU8通过CU8预测模块进行处理,然后将所有CU8帧间预测中当前 CU在最优模式时的代价连同分割标志编码代价一起求和,求和结果与当前CU16不分割时CU 在最优模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式,然后才进行 下一个CU16的帧间预测;CU16进行四叉树分割指的是将16*16大小宏块分给为4个8*8大小 的区域CU8;
[0038] CU8预测模块,用于进行CU8帧间预测,然后进行下一个CU8帧间预测。
[0039]进一步的,所述⑶64帧间预测模块具体处理过程包括:
[0040] 步骤21:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当 前CU对应于H264的16个MB,计算16个MB的参考帧是否相同;若参考帧相同,则执行步骤22; 否则,执行步骤23;
[0041 ] 步骤22:当16个MB全被H264编码为16x16或Skip模式、16个MB的运动向量MV相近且 判定当前CU所对应的所有MB对应的残差系数幅值之和小于CU64阈值时,则根据16个MB的运 动向量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其 他帧间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行 比较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用 H. 264的运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代 价,然后将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU64四 叉树分割;CU64模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N* 2N模式对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是1^,表示小于_勺 在编码单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N 的在编码单元CU左部;R指的是right,表示小于N的在编码单元CU右部;
[0042]步骤23:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对应 的预测单元PU做判断,考察每一个PU对应的所有宏块MB,若宏块MB的参考帧相同且宏块MB 都是PSkip或16x16模式;则对CU64帧间预测模块对应的预测单元PU做小范围运动估计,否 贝1J,进行正常运动估计,执行步骤24;
[0043]步骤24:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在 其他模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU64四叉树分割
[0044] 进一步的,所述⑶32帧间预测模块具体处理过程包括:
[0045] 步骤211:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当 前CU对应于H264的4个MB,计算4个MB的参考帧是否相同;若参考帧相同,则执行步骤212;否 贝1J,执行步骤213;
[0046] 步骤212:当4个MB全被H264编码为16x16或Skip模式、4个MB的运动向量MV相近且 判定当前CU所对应的所有MB对应的残差系数幅值之和小于CU32阈值时,则根据4个MB的运 动向量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其 他帧间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行 比较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用 H. 264的运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代 价,然后将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU32四 叉树分割;CU32模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N* 2N模式对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式;其中1]指的是1^,表示小于_勺 在编码单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N 的在编码单元CU左部;R指的是right,表示小于N的在编码单元CU右部;
[0047]步骤213:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对 应的预测单元PU做判断,考察每一个HJ对应的所有宏块MB及宏块MB的局部区域,若宏块MB 及宏块MB的局部区域的参考帧相同且宏块MB及宏块MB的局部区域都是完整划分;则对CU64 帧间预测模块对应的预测单元PU做小范围运动估计,否则,进行正常运动估计,执行步骤 214;完整划分指的是宏块MB都是PSkip、16x16模式,宏块MB的局部区域的内部不存在MB模 式划分形成的分界;宏块MB的局部区域指的是宏块MB的一部分;
[0048] 步骤214:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在 其他模式的代价、帧内模式的代价对应与当前CU执行merge/sk ip模式得到的代价进行比 较,比较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU32四叉树分割。
[0049] 进一步的,所述⑶16帧间预测模块具体处理过程包括:
[0050] 步骤31:对当前⑶执行Merge/Skip模式,计算当前⑶对应的MB是否已经划分到 SubMB(亚宏块)级别,如果是,则跳过其它帧间模式的测试,进行CU16四叉树分割,将4个CU8 中当前CU在最优模式时的代价连同分割标志编码代价一起求和,求和结果与CU16不分割时 CU在最优模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式;否则,执行 步骤32;
[00511步骤32:若当前⑶对应的MB是否编码为PSkip模式,如果是,则跳过其他帧间模式, 以merge/skip模式作为当前⑶16不分割时的最优模式;如果当前⑶对应的MB不是PSkip,而 是帧内模式,贝IJ跳过其他帧间模式,执行帧内模式,与当前CU执行merge/skip模式得到的代 价进行比较,选择代价较小的作为当前CU在不分割时的最优模式,然后进行CU16四叉树分 害U;如果当前CU对应的MB不是PSkip,也不是帧内模式,则MB为16x16、16x8或8x16模式,执行 步骤33;
[0052]步骤33:判断当前CU对应的MB对应的残差系数幅值之和是否大于CU16阈值,如果 大于阈值,则进行CU16四叉树分割;否则,采用H. 264宏块既有的帧间预测模式作为当前 CU16不分割时的最优模式,同时米用H. 264宏块既有的运动向量,不进行CU16其他的帧间模 式计算。
[0053]进一步的,所述在于⑶8帧间预测模块具体处理过程是:
[0054] 步骤41:对HEVC编码树单元的编码单元CU执行merge/skip模式,接着先看当前CU 所在的H. 264的宏块模式;如果当前CU对应的MB模式为PSkip模式,则直接结束;若当前CU对 应的MB是帧内模式,则计算当前CU所有剩余模式的代价,并与当前CU执行执行merge/skip 模式得到的代价进行比较,选择代价小者对应的模式作为当前CU最优模式;如果当前CU对 应的MB即不是PSkip模式也不是帧内模式,则先判断当前CU对应的MB的划分是否大于等于 当前的⑶8,也即是否为16*16模式、16x8模式、8x16模式、8x8模式这几种模式;如果是,则当 前⑶的2Nx2N模式的MV采取覆盖当前⑶的对应MB或子块的运动向量MV,并跳过其他剩余模 式;否则,执行步骤42;其他剩余模式指的是2N*N模式、N*2N模式对称模式和帧内模式;所有 剩余模式指的是2Nx2N模式和其他剩余模式;
[0055] 步骤42:当当前CU对应的亚宏块是8x4或4x8模式,则CU对应采用2NxN或Nx2N模式, 同时采用2NxN或Nx2N模式对应运动向量MV,与当前⑶采用merge/skip模式得到的代价比较 后选出最优模式;如果当前CU对应的亚宏块是4x4模式,则根据H264对应区域的运动向量 MV,分别做缩小范围运动估计,遍历剩余模式,最后与merge/skip模式得到的代价比较选出 最优模式;剩余模式指的是2N*N模式、N*2N模式对称模式。
[0056] 综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0057] 1.以专利号CN201310173401.2为代表的转码方案,往往缺失了最大编码单元为 CU64的优化设计。由于HEVC的编码性能提高很大程度上在于比H.264标准更大的编码单元, 因此该缺失不利于充分发挥转码性能。而且该方案主要仅仅判断了运动向量信息,对H.264 的编码模式及编码残差等分析利用不充分,转码优化的设计不足,也有损于转码质量。本方 案则充分考虑了 ffiVC编码标准中最大的编码单元CU64,并且综合H. 264的编码模式、运动向 量、残差等各种信息,充分考虑了转码器的性能和准确性。
[0058] 2.以Eduardo Peixoto等人为代表的基于模式分类或机器学习的转码方法,往往 依赖于在线训练来达到视频内容的自适应性,虽然提高了率失真质量,但缺点是整个视频 中需要舍弃不少帧用于训练,这部分训练帧不能进行快速转码。本发明则是一套不依赖于 在线训练H. 264解码数据的,自适应的CTU划分提前中止方法,包括从上至⑶64下到⑶16均 相应有针对性的优化设计。特别的,对于⑶64和⑶32,在MV近似度等标准基础上,利用了自 适应的残差阈值判别CU是否提前终止拆分,组合的措施能在保证编码效果的基础上降低复 杂度,并且能类同于在线训练技术满足算法对视频内容的自适应,又避免了用一些视频帧 单独做训练。
[0059] 3. -种依据H. 264运动信息的缩小范围的HEVC运动搜索设计,包括优化的搜索中 心点的选取和搜索范围的设定。其中搜索范围,由于是相对于自定义的核心MV的离散度而 设计,相对现有技术,搜索范围可以非常的小,从而大大降低运动搜索的复杂度。搜索中心 点方面,则打破了围绕MVP进行运动搜索的常规,可以有条件的选择自定义的核心MV作为搜 索起点。众所周知,在运动估计快速算法中,即使当搜索范围仍然并不太小的时候,一个更 佳的搜索中心点往往意味着有机会更早的满足算法收敛条件,使得搜索更容易提前完成。 因此上述两方面的组合改善,可以大大降低运动搜索的复杂度。
【附图说明】
[0060]本发明将通过例子并参照附图的方式说明,其中:
[0061 ]图la是⑶32下该模式的划分比例示意图。
[0062] 图lb是⑶32对应的4个16x16宏块示意图。
[0063]图lc是符合⑶32缩小范围运动估计条件的H. 264对应模式例示意图。
[0064]图Id是不符合⑶32缩小范围运动估计条件的H. 264对应模式例示意图。
[0065]图2总体设计流程图。
[0066]图3是⑶64帧间预测流程图。
[0067]图4是⑶32帧间预测流程图。
[0068]图5是⑶16帧间预测流程图 [0069] 图6是⑶8帧间预测图。
[0070] 图7是装置模块图。
【具体实施方式】
[0071] 本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥 的特征和/或步骤以外,均可以以任何方式组合。
[0072] 本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的 替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子 而已。
[0073]本发明相关说明:
[0074] 1、H264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片或多个片组 成,一个片由一个或多个宏块(MB)组成,一个宏块由16*16的yuv数据组成。宏块MB作为H264 编码的基本单位。
[0075] 2、四叉树索引的基本思想是将空间递归划分为不同层次的树结构。它将已知范围 的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某 种要求后停止分割。ffiVC中CTU的四叉树句法指定了它所属的亮度和色度CB的尺寸和位置。 四叉树的根与CTU相关联。因此,亮度CB的最大尺寸为其所属的亮度CTB的尺寸。对于一个 CTU来说,其亮度CB和色度CB的划分标志都是使用的同一个。一个亮度CB通常和两个色度CB 及它们相关的句法共同组成一个编码单元(CU)。一个CTB可能只包含一个CU,也可能被划分 成多个CU,每个CU包含着与之相关联的预测单元(PU)和变换单元(TU)。
[0076] 决定一个图像区域是以帧间还是帧内方式进行预测是在CU层进行的。一个PU划分 结构的根在CU层。根据基本的预测类型,亮度CB和色度CB可以继续进行划分并利用其它的 亮度PB和色度PB进行预测。HEVC支持多种PB尺寸,最大为64 X 64到最小4 X 4。
[0077] 3、HEVC将2NxXX作为一种模式,在CU64、CU32、CU16及CU8中N值不同。在Cu64中N值 等于32;CU32中N值等于16;在CU16中N值等于8<XU8中N值等于4。
[0078] 4、正常运动估计,以UMHexag〇nS、EPZS等算法来进行运动搜索。正常运动估计中, 搜索范围由编码器指定,有默认值。
[0079] 5、分割标志编码指的是对当前⑶的分割标志(split_cu_flag)进行编码后得到的 代价。具体实施部分:
[0080] 本发明主要针对H. 264到HEVC转码中的帧间预测加速问题,提出了一种综合了自 适应的模式映射、运动向量的合理重复利用的技术方案。总体方案如下:
[0081] 先判断当前H. 264编码帧是否为I帧,如果是,其转码技术不在本文讨论之列,可直 接按照标准的级联转码实施。反之,如果H. 264编码是P帧,则进入本文讨论之技术范畴,具 体步骤为:
[0082] 对每一个HEVC的CTU(编码树单元),首先判断当前64x64大小的⑶(简称⑶64),所 对应的16个H. 264编码的16x16宏块(以下简称MB),是否全被H. 264编码为帧内模式,即I块。 如果是,说明H. 264无法提供任何该CU64的运动信息,则采取常规HEVC帧间预测方式执行。 否则可以按优化的CU64帧间预测步骤执行。
[0083]设计原理:帧间预测阶段,结束后,进行编码(包括变换编码及熵编码等)帧间预测 阶段,可能进行一系列⑶64、⑶32、⑶16的四叉树分割,然后得到⑶8;也有可能提前中止,有 些不用最终深入到⑶8,有些甚至不用分割到⑶16,最理想的有些连⑶32都不用帧间预测, 而是直接将CU64作为1个整体进行编码;
[0084] 其中CU32帧间预测、CU16帧间预测以及CU8帧间预测得到的最优模式,都只是一个 临时最优模式,并且CU32帧间预测、CU16帧间预测以及CU8帧间预测都只是为了得到临时最 优模式,而不进行任何编码;编码是在整个Cu64帧间预测结束后得到最优编码模式,根据最 优编码模式进行编码。
[0085] 其中从⑶8临时最优模式递归到⑶16,⑶16选择临时最优模式;然后⑶16选择的临 时最优模式递归到CU32,CU32选择临时最优模式,递归到CU64,然后CU64选择最优编码模式 作为最终的编码模式。
[0086] 其中,⑶64帧间预测、⑶32帧间预测、⑶16帧间预测、CU8帧间预测可以分为两类: CU64和CU32的大小超过16x16,由多个H. 264对应的16x16大小的MB组成,为第一类;而CU16 和⑶8直接对应一个H. 264编码的MB,故为第二类。
[0087]总体来说,第二类优化帧间预测相对直接,大致可以根据H. 264宏块的编码模式直 接映射到ffiVC的精神进行。而第一类优化帧间预测需要综合多个宏块的编码信息进行判 断,因而相对困难。
[0088] (1)CU64 帧间预测:
[0089]在正常情况下,P帧里的Skip编码模式被选定最多的。由于HEVC的merge/skip模式 有别于1^.264标准,因此为确保率失真优化(抑丨6-(1181:〇1'1:;[011(^1:;[1111231:;[011,简称1^)0)质 量,我们总是先执行merge/skip模式。
[0090]接着将判断⑶64所对应的16个H. 264宏块,其运动向量是否都对应于同一个参考 帧。如果是,则CU64的预测将有机会得到大幅优化:接下来先判断16个MB是否全被H. 264编 码为16x16或Skip模式,如果是,说明每个MB都是各自均匀运动的。接下来判断这些MB的运 动向量(MV)是否是相近的,如果是则说明全体MB都是一致运动的,这时如果H. 264编码的残 差系数幅值之和小于CU64阈值,则说明该CU64的2Nx2N帧间预测模式效果最好已经是大概 率事件,我们就可以根据这些MB的运动向量信息做一个小范围运动估计,确定2Nx2N模式的 MV,然后直接跳过⑶64的其他模式,将2Nx2N的结果与前面merge/skip的结果比较后选择最 优模式即可结束。同时,在上述条件下,由于区域内运动一致且MB对应的残差系数幅值之和 小于Cu64阈值,可以认为CU64这一层的帧间预测结果已经足够好,不必再进行后续更小的 四叉树分割。反之,即使16个MB并非全被编码为16x16或Skip模式,或者这些MB的运动向量 不够一致,又或者H.264编码的残差仍然较大,我们依然可以利用H.264的运动信息,对各个 帧间预测模式只进行缩小范围运动估计,从而降低复杂度。做完剩余帧间模式后,选择最佳 模式即可。
[0091 ] 其中MB的运动向量MV相近指的是:定义一个"核心运动向量" coreMV,对所有运动 n 向量M V,如果其总数少于3个,则c 〇 r e M V取为M V的平均,S P HMVrx//1 corcMV.x = , n "否则取为各MV的中值,BPcoreMV. x = median(MV0 ? x,MV1 ? x,…), corcMV.y = ~! .; coreMV.y=median(MVO.y,MVl .y, **?) 〇
[0092]然后衡量运动向量MV相对于核心MV的离散度,即:
[0093] mvx_range =max(mvx_max-coreMV.x,coreMV.x-mvx_min)
[0094] mvy_range =max(mvy_max-coreMV.y,coreMV.y-mvy_min)
[0095] 其中mvx_max=max(MV0? x,MV1 ? x,…),mvx_min=min(MV0 ? x,MVl ? x,…),mvy_max =max(MV0.y,MV1 .y,???),mvy_min=min(MVO.y,MV1 .y,???)
[0096] 如果mvx_range和mvy_range都小于阈值T_mv,则说明MV总体比较一致。优选的,T_ mv = 1 〇
[0097] MB的运动向量MV做一个小范围运动估计指的是:首先是搜索中心点的确立,常规 处理方式是以HEVC的预测运动向量MVP作为搜索中心点,本方案则增加了一个核心运动向 量coreMV作为候选:将coreMV与MVP比较,取对应SAD值小的作为中心点即可。其次是缩小搜 索范围,设mv_range=max(mvx_range,mvy_range),若HEVC编码预设的搜索范围为SR_ori, 则缩小的搜索范围SR=min(SR_ori,max(mv_range+SR_pad,SR_min))。其中,SR_pad和SR_ min为自然数,为确保搜索范围不会过小的一种质量保证因素,优选的,SR_pad=l~2,SR_ min = 2 ~4〇
[0098]当前⑶64所对应的编码残差是否小于⑶64阈值指的是基于一种自适应的标准,即 对当前CU64周边邻近的CU64对应的H. 264残差系数幅值之和进行统计平均,从而自适应的 求得⑶64阈值T_res,如果当前⑶64对应的H. 264残差系数幅值之和小于该阈值,则认为依 据当前H. 264的编码模式作为HEVC编码模式的参考已经足够好。优选的,T_res为Res(⑶64_ above)、Res (CU64_above_left)、Res (CU64_above_right)和Res (CU64_1 eft)的函数,BPT_ res=a*(Res(CU64_above)+Res(CU64_above_left)+Res(CU64_above_right)+Res(CU64_ left))/4。其中,CU64_abo ve、CU64_abo ve_l eft、CU64_above_r i ght 和 CU64_1 eft 分别为当 前⑶64正上方、左上方、右上方和左边的⑶64,Res函数则求取其输入参数⑶对应的MB残差 系数幅值之和,而a为比例系数。优选的,a取值范围[0.9,1)。当Res(当前CU64)〈T_res时,表 示当前⑶64对应的H. 264残差小于⑶64阈值。其他⑶32阈值、CU16阈值、求解过程与⑶64阈 值求解过程类似,都指的是对当前CU32、CU16、CU8中CU对应区域进行计算。
[0099] (2)CU32 帧间预测:
[0100] ⑶32的优化帧间预测过程,与⑶64是属于同一类H. 264的多宏块映射关系,因此基 本是类似的。主要的不同在于,在CU32这一层,当HEVC划分为非对称模式时,部分预测单元 所能对应的已经不是完整的H. 264宏块,而是子块级别。例如2NxnU,如图la为⑶32下该模 式的划分比例,图1 b显示了 CU32对应的4个16x 16宏块,图1 c表明当下侧的两个MB为完整的 16xl6/PSkip且上侧的两个MB为水平分割的16x8模式时,能恰好对应于HEVC下CU32的2NxnU 模式,因为此时在2NxnU模式下的上下两个PU内部,对应H.264除了宏块的自然边界(虚线所 示)外,没有任何多余的实际分割(实线所示)。图Id则是一个反例,当上侧两个MB为垂直分 害_8x16模式时,无法直接对应于HEVC的2NxnU。因此在本例下,如果4个MB的模式如(图1 c) 所示,且2NxnU的上PU对应的子块(即上侧两个MB的两个上半16x8)参考帧相同,且2NxnU的 下PU对应的子块(即上侧两个MB的两个下半16x8,与下侧两个MB)参考帧一致,则可根据 H. 264的MV进行缩小范围运动估计优化处理。其余类似CU64处理过程的,此处不再赘述。 [0101]当前⑶32所对应的编码残差小于⑶32阈值指的是基于一种自适应的标准,即对当 前⑶32周边邻近的⑶32对应的H. 264残差进行统计平均,从而自适应的求得⑶32阈值T_ res,如果当前CU32对应的H. 264残差小于该阈值,则认为依据当前H. 264的编码模式作为 HEVC编码模式的参考已经足够好。优选的,CU32阈值T_res为Res(CU32_above)、Res(CU32_ above_left)、Res(CU32_above_right)和Res(CU32_left)的函数,BPT_res = a*(Res(CU32_ above)+Res(CU32_above_left)+Res(CU32_above_right)+Res(CU32_left) )/4。其中, 〇]32_&130¥6、〇]32_3130¥6_16代、〇]32_3130¥6_481^和〇]32_16忖分别为当前〇]32正上方、左 上方、右上方和左边的⑶32,Res函数则求取其输入参数⑶对应的MB残差系数幅值之和,而a 为比例系数。优选的,a取值范围[0.9,1)。当Res(当前CU32)〈T_res时,表示当前CU32对应的 H. 264残差小于⑶32阈值。
[0102] (3)CU16 帧间预测
[0103] 先处理merge/skip模式,接下来判断对应的H. 264宏块是否已经划分到SubMB(亚 宏块)级别,也就是说:存在8x8或更小的划分。如果有这种小的划分,说明16x16范围内的运 动不够一致,因此我们可以跳过CU16其它模式的测试,直接转到CU8级别的处理。反之,如果 对应MB没有划分到SubMB以下,我们可以继续根据MB的模式进行一些优化。首先看对应MB是 否编码为PSkip模式,如果是则说明当前CU层次下的Skip模式已经足够好,我们可以直接略 过剩余模式,并设置不继续四叉树分割,以便后面可跳过CU8的处理。如果不是PSkip,而是 帧内模式,则说明当前CU16的帧间模式已经不够好,我们可以略去其它帧间模式的测试,直 接进行帧内模式的测试。如果既不是PSkip也不是intra模式,则说明是普通的16x16、16x8 或8x16模式,这时我们首先看H. 264的编码残差水平如何。如果残差大于CU16阈值,说明 H. 264的编码效果尚且不够好,我们可以令HEVC编码跳至下一级CU8的处理。反之,我们就可 以直接采用H.264宏块既有的帧间预测模式及其运动向量,并且不必再考虑下一级CU8的划 分。
[0104]其中判定当前⑶16所对应的MB编码残差是否大于⑶16阈值,同样是基于一种自适 应的标准,即对当前CU16周边邻近的H. 264宏块残差进行统计平均,从而自适应的求得CU16 阈值T_res,如果当前CU16对应的H. 264残差大于该阈值,则认为依据当前H. 264的编码模式 作为HEVC编码模式的参考仍然不够好。优选的,T_res为Res(MB_above)、Res(MB_above_ 1〇;1^1:)、1^8(]\113_&13〇¥6_1'18111:)和1^8(]\113_16;1^1:)的函数,艮口1'_代8 = 0*(1^8(]\113_&13〇¥6)+1^8 (MB_above_left)+Res(MB_above_right)+Res(MB_left) )/4。其中,MB_above、MB_above_ left、MB_above_right和MB_left分别为当前⑶16正上方、左上方、右上方和左边的宏块, Res函数则求取输入参数MB的残差系数幅值之和,而0为比例系数。优选的,0取值范围(1.2, I. 5]。当Res(当前CU16)>T_res时,表示当前CU16对应的H.264残差大于CU16阈值。
[0105] (4)⑶8的帧间预测具体过程:
[0106]首先依然是做merge/skip模式,接着先看当前⑶8所在的H. 264的宏块模式。如果 MB模式为PSkip,可以直接结束,否则如果是帧内模式,则CU8无法从H. 264宏块得到任何运 动信息,只能按常规方法处理所有剩余模式。如果两者都不是,则先判断MB的划分是否大于 等于当前的⑶8,也即是否为16xl6、16x8、8xl6、8x8这几种。如果是,说明在当前⑶8范围内 运动是整体性的,可以按2Nx2N模式处理,并直接采用MB或子块对应于当前CU8的MV即可。如 果不是,说明对应MB存在8x4、4x8、4x4这样的小划分。由于HEVC在⑶8这一层最小编码单元 只考虑2Nx2N、2NxN和Nx2N划分,因此这时,我们先排除4x4,即如果MB只是8x4或4x8模式,我 们相应为HEVC对应模式定为2NxN或Nx2N并采纳对应MV即可。反之如果是4x4,我们则不能省 略2NxN或Nx2N模式的测试,只能根据H. 264对应区域的MV,分别做缩小范围的运动搜索,最 后从中选出最佳模式。
[0107]本发明并不局限于前述的【具体实施方式】。本发明扩展到任何在本说明书中披露的 新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【主权项】
1. 一种自适应的从H264到HEVC的帧间快速转码方法,其特征在于包括: 步骤1:输入原始H264视频流,并对该视频进行解码,提取当前解码帧的宏块残差、编码 模式、参考帧、运动向量;将HEVC编码树单元覆盖的区域对应至当前解码帧的各个宏块; 步骤2:进行CU64帧间预测,得到CU64不分割时的最优模式,然后判断当前CU64帧间预 测是否可以提前终止,当⑶64对应的各MB参考帧相同、各MB全部是Pskip模式或16*16模式 并且各MB的运动向量MV相近且16个MB对应的残差系数幅值之和小于⑶64阈值时,则不需要 对CTU进行分割,直接采用CU64不分割时的最优模式作为最优编码模式,否则,将CTU进行四 叉树分割,形成4个第一级子单元CU32,对每个CU32分别执行步骤3之后,将所有第一级子单 元CU32帧间预测中当前CU的最优模式时对应的代价连同分割标志编码代价一起求和,求和 结果与CU64不分割时CU在最优模式时的代价对比,选择代价小者对应的模式作为当前CU64 最优编码模式,以CU64最优编码模式对CTU进行编码:其中CU64为64*64大小的CU; CU32为 32*32的CU;CU16为16*16的CU;C8为8*8的CU;CU64是将64*64大小的宏块分割为4个32*32大 小的区域CU32; 步骤3:进行CU32帧间预测,得到CU32不分割时的最优模式;然后判断当前CU32帧间预 测是否可以提前终止,当当前CU32对应的MB参考帧相同、对应的MB为Skip或16x16模式、4个 MB的运动向量MV相近及4个MB对应的残差系数幅值之和小于⑶32阈值时,则当前⑶32可以 提前终止,直接以CU32不分割时的最优模式作为CU32的最优模式,然后进行下一个CU32的 帧间预测,否则,进入当前第一级子单元的CU32四叉树分割,形成4个第二级子单元CU16,对 每个CU16分别执行步骤4之后,将所有第二级子单元CU16帧间预测中当前CU的最优模式时 对应的代价连同分割标志编码代价一起求和,求和结果与CU32不分割时CU在最优模式时的 代价对比,选择代价小者对应的模式作为当前CU32的最优模式,然后才进行下一个CU32的 帧间预测; 步骤4:进行CU16帧间预测,得到CU16不分割时的最优模式,然后判断当前CU16帧间预 测是否可以提前终止,当当前CU16对应MB是PSkip模式或者对应MB不是帧内模式、对应的MB 未划分为亚宏块且MB对应的残差系数幅值之和小于等于CU16阈值时,则当前CU16可以提前 终止,直接以CU16不分割时的最优模式作为CU16的最优模式,然后进行下一个CU16的帧间 预测,否则进入CU16的四叉树分割,形成4个第三级子单元CU8,对每个CU8分别执行步骤5, 执行步骤5之后,将所有CU8帧间预测中当前CU在最优模式时的代价连同分割标志编码代价 一起求和,求和结果与当前CU16不分割时CU在最优模式时的代价对比,选择代价小者对应 的模式作为当前CU16最优模式,然后才进行下一个CU16的帧间预测;CU16进行四叉树分割 指的是将16*16大小宏块分给为4个8*8大小的区域CU8; 步骤5:进行CU8帧间预测,然后进行下一个CU8的帧间预测。2. 根据权利要求1所述的一种自适应的从H264到HEVC的帧间快速转码方法,其特征在 于所述⑶64帧间预测具体包括: 步骤21:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当前⑶ 对应于H264的16个MB,计算16个MB的参考帧是否相同;若参考帧相同,则执行步骤22;否则, 执行步骤23; 步骤22:当16个MB全被H264编码为16x16或Skip模式、16个MB的运动向量MV相近且判定 当前CU所对应的所有MB对应的残差系数幅值之和小于CU64阈值时,则根据16个MB的运动向 量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其他帧 间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行比 较,比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用H. 264 的运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代价,然 后将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比较,比 较后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU64四叉树分 害J; CU64模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N*2N模式 对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是邱,表示小于_勺在编码 单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N的在编 码单元CU左部;R指的是right,表示小于N的在编码单元CU右部; 步骤23:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对应的预 测单元PU做判断,考察每一个PU对应的所有宏块MB,若宏块MB的参考帧相同且宏块MB都是 PSkip或16x16模式;则对CU64帧间预测模块对应的预测单元PU做小范围运动估计,否则,进 行正常运动估计,执行步骤24; 步骤24:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在其他 模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比较,比 较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU64四叉树分割。3.根据权利要求1所述的一种自适应的从H264到HEVC的帧间快速转码方法,其特征在 于所述⑶32帧间预测具体包括: 步骤211:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当前⑶ 对应于H264的4个MB,计算4个MB的参考帧是否相同;若参考帧相同,则执行步骤212;否则, 执行步骤213; 步骤212:当4个MB全被H264编码为16x16或Skip模式、4个MB的运动向量MV相近且判定 当前CU所对应的所有MB对应的残差系数幅值之和小于CU32阈值时,则根据4个MB的运动向 量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其他帧 间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行比较, 比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用H. 264的运 动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代价,然后将 当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比较,比较后 选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU32四叉树分割; ⑶32模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N*2N模式对称 模式及2版111]、2版11〇、111^21111^2~等非对称模式 ;其中1]指的是邱,表示小于_勺在编码单元 CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N的在编码单 元⑶左部;R指的是right,表示小于N的在编码单元⑶右部; 步骤213:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对应的 预测单元PU做判断,考察每一个PU对应的所有宏块MB及宏块MB的局部区域,若宏块MB及宏 ±夬皿8的局部区域的参考帧相同且宏块MB及宏块MB的局部区域都是完整划分;则对CU64帧间 预测模块对应的预测单元PU做小范围运动估计,否则,进行正常运动估计,执行步骤214;完 整划分指的是宏块MB都是PSkip、16xl6模式,宏块MB的局部区域的内部不存在MB模式划分 形成的分界;宏块MB的局部区域指的是宏块MB的一部分;; 步骤214:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在其他 模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比较,比 较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU32四叉树分割。4. 根据权利要求1所述的一种自适应的从H264到HEVC的帧间快速转码方法,其特征在 于所述⑶16帧间预测具体处理过程是: 步骤31:对当前⑶执行Merge/Skip模式,计算当前⑶对应的MB是否已经划分到SubMB (亚宏块)级别,如果是,则跳过其它帧间模式的测试,进行CU16四叉树分割,将4个CU8中当 前CU在最优模式时的代价连同分割标志编码代价一起求和,求和结果与CU16不分割时CU在 最优模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式;否则,执行步骤 32; 步骤32:若当前CU对应的MB是否编码为PSkip模式,如果是,则跳过其他帧间模式,以 merge/skip模式作为当前⑶16不分割时的最优模式;如果当前⑶对应的MB不是PSkip,而是 帧内模式,贝1J跳过其他帧间模式,执行帧内模式,与当前CU执行merge/skip模式得到的代价 进行比较,选择代价较小的作为当前CU在不分割时的最优模式,然后进行CU16四叉树分割; 如果当前CU对应的MB不是PSkip,也不是帧内模式,则MB为16x16、16x8或8x16模式,执行步 骤33; 步骤33:判断当前CU对应的MB对应的残差系数幅值之和是否大于CU16阈值,如果大于 阈值,则进行CU16四叉树分割;否则,采用H. 264宏块既有的帧间预测模式作为当前CU16不 分割时的最优模式,同时米用H. 264宏块既有的运动向量,不进行CUl6其他的帧间模式计 算。5. 根据权利要求1所述一种自适应的从H264到HEVC的帧间快速转码方法,其特征在于 CU8帧间预测具体处理过程是: 步骤41:对HEVC编码树单元的编码单元CU执行merge/skip模式,接着先看当前CU所在 的H. 264的宏块模式;如果当前CU对应的MB模式为PSkip模式,则直接结束;若当前CU对应的 MB是帧内模式,则计算当前CU所有剩余模式的代价,并与当前CU执行执行merge/skip模式 得到的代价进行比较,选择代价小者对应的模式作为当前CU最优模式;如果当前CU对应的 MB即不是PSkip模式也不是帧内模式,则先判断当前CU对应的MB的划分是否大于等于当前 的⑶8,也即是否为16*16模式、16x8模式、8x16模式、8x8模式这几种模式;如果是,则当前⑶ 的2Nx2N模式的MV采取覆盖当前CU的对应MB或子块的运动向量MV,并跳过其他剩余模式;否 贝IJ,执行步骤42;其他剩余模式指的是2N*N模式、N*2N模式对称模式和帧内模式;所有剩余 模式指的是2Nx2N模式和其他剩余模式; 步骤42:当当前CU对应的亚宏块是8x4或4x8模式,则CU对应采用2NxN或Nx2N模式,同时 采用2NxN或Nx2N模式对应运动向量MV,与当前CU采用merge/skip模式得到的代价比较后选 出最优模式;如果当前CU对应的亚宏块是4x4模式,则根据H264对应区域的运动向量MV,分 别做缩小范围运动估计,遍历剩余模式,最后与merge/skip模式得到的代价比较选出最优 模式;剩余模式指的是2N*N模式、N*2N模式对称模式。6. -种自适应的从H264到HEVC的帧间快速转码装置,其特征在于包括: H264解码模块,用于对输入原始H264视频流进行解码,提取当前解码帧的宏块残差、编 码模式、参考帧、运动向量;将HEVC编码树单元覆盖的区域对应至当前解码帧的各个宏块; CU64预测模块,用于进行CU64帧间预测,得到CU64不分割时的最优模式,然后判断当前 ⑶64帧间预测是否可以提前终止,当⑶64对应的各MB参考帧相同、各MB全部是Pskip模式或 16*16模式并且各MB的运动向量MV相近且16个MB对应的残差系数幅值之和小于⑶64阈值 时,则不需要对CTU进行分割,直接采用CU64不分割时的最优模式作为最优编码模式,否则, 将CTU进行四叉树分割,形成4个第一级子单元⑶32,对每个⑶32通过⑶32预测模块进行处 理,然后将所有第一级子单元CU32帧间预测中当前CU的最优模式时对应的代价连同分割标 志编码代价一起求和,求和结果与CU64不分割时CU在最优模式时的代价对比,选择代价小 者对应的模式作为当前CU64最优编码模式,以CU64最优编码模式对CTU进行编码:其中CU64 为64*64大小的 CU;CU32 为 32*32 的 CU;CU16 为 16*16 的 CU;C8 为 8*8 的 CU;CU64 是将64*64大小 的宏块分割为4个32*32大小的区域CU32; CU32预测模块,用于进行CU32帧间预测,得到CU32不分割时的最优模式;然后判断当前 CU32帧间预测是否可以提前终止,当当前CU32对应的MB参考帧相同、对应的MB为Skip或 16x16模式、4个MB的运动向量MV相近及4个MB对应的残差系数幅值之和小于⑶32阈值时,则 当前CU32可以提前终止,直接以CU32不分割时的最优模式作为CU32的最优模式,然后进行 下一个CU32的帧间预测,否则,进入当前第一级子单元的CU32四叉树分割,形成4个第二级 子单元⑶16,对每个⑶16通过⑶16预测模块进行处理,然后将所有第二级子单元⑶16帧间 预测中当前CU的最优模式时对应的代价连同分割标志编码代价一起求和,求和结果与CU32 不分割时CU在最优模式时的代价对比,选择代价小者对应的模式作为当前CU32的最优模 式,然后才进行下一个CU32的帧间预测; CU16预测模块,用于进行CU16帧间预测,得到CU16不分割时的最优模式,然后判断当前 CU16帧间预测是否可以提前终止,当当前CU16对应MB是PSkip模式或者对应MB不是帧内模 式、当前CU16对应的MB未划分为亚宏块且当前CU16对应的MB对应的残差系数幅值之和小于 等于⑶16阈值时,则当前⑶16可以提前终止,直接以⑶16不分割时的最优模式作为⑶16的 最优模式,然后进行下一个CU16的帧间预测,否则进入CU16的四叉树分割,形成4个第三级 子单元⑶8,对每个⑶8通过⑶8预测模块进行处理,然后将所有⑶8帧间预测中当前⑶在最 优模式时的代价连同分割标志编码代价一起求和,求和结果与当前CU16不分割时CU在最优 模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式,然后才进行下一个 CU16的帧间预测;CU16进行四叉树分割指的是将16*16大小宏块分给为4个8*8大小的区域 CU8; CU8预测模块,用于进行CU8帧间预测,然后进行下一个CU8帧间预测。7.根据权利要求6所述的一种自适应的从H264到HEVC的帧间快速转码装置,其特征在 于所述⑶64帧间预测模块具体处理过程包括: 步骤21:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当前⑶ 对应于H264的16个MB,计算16个MB的参考帧是否相同;若参考帧相同,则执行步骤22;否则, 执行步骤23; 步骤22:当16个MB全被H264编码为16x16或Skip模式、16个MB的运动向量MV相近且判定 当前CU所对应的所有MB对应的残差系数幅值之和小于CU64阈值时,则根据16个MB的运动向 量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其他帧 间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行比较, 比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用H. 264的运 动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代价,然后将 当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比较,比较后 选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU64四叉树分割; ⑶64模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N*2N模式对称 模式及2啦111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是邱,表示小于~的在编码单 元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是Ief t,表示小于N的在编码 单元⑶左部;R指的是right,表示小于N的在编码单元⑶右部; 步骤23:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对应的预 测单元PU做判断,考察每一个PU对应的所有宏块MB,若宏块MB的参考帧相同且宏块MB都是 PSkip或16x16模式;则对CU64帧间预测模块对应的预测单元PU做小范围运动估计,否则,进 行正常运动估计,执行步骤24; 步骤24:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在其他 模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比较,比 较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU64四叉树分割。8.根据权利要求6所述的一种自适应的从H264到HEVC的帧间快速转码装置,其特征在 于所述⑶32帧间预测模块具体处理过程包括: 步骤211:对HEVC编码树单元的编码单元⑶执行merge/skip模式,将HEVC区域的当前⑶ 对应于H264的4个MB,计算4个MB的参考帧是否相同;若参考帧相同,则执行步骤212;否则, 执行步骤213; 步骤212:当4个MB全被H264编码为16x16或Skip模式、4个MB的运动向量MV相近且判定 当前CU所对应的所有MB对应的残差系数幅值之和小于CU32阈值时,则根据4个MB的运动向 量信息做一个小范围运动估计,确定当前CU在为2N*2N模式时的代价,然后直接跳过其他帧 间模式,将当前CU在2Nx2N模式的代价与当前CU执行merge/skip模式得到的代价进行比较, 比较后选择代价小者对应的模式作为当前CU在不分割时的最优模式;否则,利用H. 264的 运动信息,对其他帧间模式进行缩小范围运动估计;确定当前CU其他帧间模式的代价,然后 将当前CU在其他帧间模式的代价与当前CU执行merge/skip模式得到的代价进行比较,比较 后选择代价小者对应的模式作为当前CU在不分割时的最优模式,然后进行CU32四叉树分 害⑶32模式包括2N*2N模式和其他帧间模式;其中其他帧间模式包括2N*N模式、N*2N模式 对称模式及2版111]、2啦11〇、111^21111^2~等非对称模式 ;其中1]指的是邱,表示小于_勺在编码 单元CU上部;D表示Down,表示小于N的在编码单元CU下部;L指的是left,表示小于N的在编 码单元CU左部;R指的是right,表示小于N的在编码单元CU右部; 步骤213:对当前CU进行2Nx2N按搜索范围进行正常运动估计,对其余帧间模式对应的 预测单元PU做判断,考察每一个PU对应的所有宏块MB及宏块MB的局部区域,若宏块MB及宏 ±夬皿8的局部区域的参考帧相同且宏块MB及宏块MB的局部区域都是完整划分;则对CU64帧间 预测模块对应的预测单元PU做小范围运动估计,否则,进行正常运动估计,执行步骤214;完 整划分指的是宏块MB都是PSkip、16xl6模式,宏块MB的局部区域的内部不存在MB模式划分 形成的分界;宏块MB的局部区域指的是宏块MB的一部分; 步骤214:计算当前CU在所有其余帧间模式和帧内模式的代价后,然后将当前CU在其他 模式的代价、帧内模式的代价对应与当前CU执行merge/skip模式得到的代价进行比较,比 较后选择代价最小的作为当前CU在不分割时的最优模式,然后进行CU32四叉树分割。9. 根据权利要求6所述的一种自适应的从H264到HEVC的帧间快速转码装置,其特征在 于所述⑶16帧间预测模块具体处理过程包括: 步骤31:对当前⑶执行Merge/Skip模式,计算当前⑶对应的MB是否已经划分到SubMB (亚宏块)级别,如果是,则跳过其它帧间模式的测试,进行CU16四叉树分割,将4个CU8中当 前CU在最优模式时的代价连同分割标志编码代价一起求和,求和结果与CU16不分割时CU在 最优模式时的代价对比,选择代价小者对应的模式作为当前CU16最优模式;否则,执行步骤 32; 步骤32:若当前CU对应的MB是否编码为PSkip模式,如果是,则跳过其他帧间模式,以 merge/skip模式作为当前⑶16不分割时的最优模式;如果当前⑶对应的MB不是PSkip,而是 帧内模式,贝1J跳过其他帧间模式,执行帧内模式,与当前CU执行merge/skip模式得到的代价 进行比较,选择代价较小的作为当前CU在不分割时的最优模式,然后进行CU16四叉树分割; 如果当前CU对应的MB不是PSkip,也不是帧内模式,则MB为16x16、16x8或8x16模式,执行步 骤33; 步骤33:判断当前CU对应的MB对应的残差系数幅值之和是否大于CU16阈值,如果大于 阈值,则进行CU16四叉树分割;否则,采用H. 264宏块既有的帧间预测模式作为当前CU16不 分割时的最优模式,同时米用H. 264宏块既有的运动向量,不进行CUl6其他的帧间模式计 算。10. 根据权利要求6所述的一种自适应的从H264到HEVC的帧间快速转码装置,其特征在 于所述在于CU8帧间预测模块具体处理过程是: 步骤41:对HEVC编码树单元的编码单元CU执行merge/skip模式,接着先看当前CU所在 的H. 264的宏块模式;如果当前CU对应的MB模式为PSkip模式,则直接结束;若当前CU对应的 MB是帧内模式,则计算当前CU所有剩余模式的代价,并与当前CU执行执行merge/skip模式 得到的代价进行比较,选择代价小者对应的模式作为当前CU最优模式;如果当前CU对应的 MB即不是PSkip模式也不是帧内模式,则先判断当前CU对应的MB的划分是否大于等于当前 的⑶8,也即是否为16*16模式、16x8模式、8x16模式、8x8模式这几种模式;如果是,则当前⑶ 的2Nx2N模式的MV采取覆盖当前CU的对应MB或子块的运动向量MV,并跳过其他剩余模式;否 贝IJ,执行步骤42;其他剩余模式指的是2N*N模式、N*2N模式对称模式和帧内模式;所有剩余 模式指的是2Nx2N模式和其他剩余模式; 步骤42:当当前CU对应的亚宏块是8x4或4x8模式,则CU对应采用2NxN或Nx2N模式,同时 采用2NxN或Nx2N模式对应运动向量MV,与当前CU采用merge/skip模式得到的代价比较后选 出最优模式;如果当前CU对应的亚宏块是4x4模式,则根据H264对应区域的运动向量MV,分 别做缩小范围运动估计,遍历剩余模式,最后与merge/skip模式得到的代价比较选出最优 模式;剩余模式指的是2N*N模式、N*2N模式对称模式。
【文档编号】H04N19/176GK105959611SQ201610554211
【公开日】2016年9月21日
【申请日】2016年7月14日
【发明人】史方, 隆刚, 王标
【申请人】同观科技(深圳)有限公司