一种基于多核处理器实现的mpeg-2至h.264的转码方法

文档序号:7892716阅读:132来源:国知局
专利名称:一种基于多核处理器实现的mpeg-2至h.264的转码方法
技术领域
本发明属于视频转码技术领域,具体涉及一种基于多核处理器实现的MPEG-2至H. 264的转码方法。
背景技术
随着高清数字电视(HDTV)的推广,高清视频处理技术的发展越来越迅速。传统HDTV的视频信号主要采用MPEG-2进行压缩,缺点是压缩率不高,在网络传输过程中会消耗大量的带宽。H. 264作为新一代视频压缩标准,具有优异的压缩性能,在近年来的高清视频处理领域中得到了广泛应用。因此,MPEG-2至H. 264的高清视频转码具有极大的应用价值;但由于高清转码计算量巨大,普通单核处理器难以实时实现,多核处理器的发展为MPEG-2至H. 264的高清实时转码提供了基础,但是如何划分单核的处理信息以及如何高效的实现多核的并行成为关键的制约因素。高清视频转码系统分为MPEG-2的解码部分和H. 264的编码部分。转码器的结构可以分为级联像素域转码结构(CPDT)和离散余弦变换域转码结构(DDT),相对于DDT结构,CPDT具有结构灵活,漂移误差小等特点,因此被广泛应用于高清视频转码系统中。传统的CPDT转码结构通常将解码部分和编码部分分割开来,且在各个部分的多核并行实现中采用基于单一的数据划分或基于单一的功能划分的方法。单一的数据划分实现通常是以宏块为单位进行的,在MPEG2的解码部分,需要首先进行熵解码,然后才能进行数据划分。在H. 264编码部分,需将视频帧划分为多个slice (片),每个核编码一个slice。这样的划分,降低了视频编码时的搜索范围,在搜索准确性和压缩效率上有所损耗,并改变了编码流的结构。而且由于slice的划分使得部分滤波过程需在视频帧编码完成之后重新进行,增加了核的负载。综上所述,单一的数据划分,并行效果差,转码效果也会有所损失。单一的功能划分通常是以编解码基本功能模块为单位进行的,其基本思想是在单个核上实现一个转码功能,转码开始一定时间后形成流水,从而实现并行。在CPDT转码系统中,MPEG-2解码基本模块包括熵解码(VLD)、离散余弦反变换(IDCT)、反量化(IQ)和运动补偿(MC_D) ;H. 264编码基本模块包括运动估计(ME)、帧内预测模式估计(IPE)、运动补偿(MC_E)、帧内预测(IP)、离散余弦变换(DCT)和离散余弦反变换(IDCT)、量化(Q)和反量化(IQ)、熵编码(EC)、码率控制(RC)、滤波强度(BS)计算和环内去块滤波(LPF)。由于各个功能模块的复杂度不一,运算量差异较大,如果只采用单一功能划分的形式,每个核完成一个功能,必然造成功能同步时,核与核之间长时间的相互等待。运算量较小的核必然过早的处于等待的状态,不利于并行效率的提高。

发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种基于多核处理器实现的MPEG-2至H. 264的转码方法,能够有效提高转码过程的并行加速比。
一种基于多核处理器实现的MPEG-2至H. 264的转码方法,所述的多核处理器至少具有16个Core (内核),各Core并行处理各自的运算任务;该方法包括如下步骤(I)由Corel负责接收MPEG-2视频格式的码流,由Core2负责对所述的码流进行熵解码并陆续生成若干宏块组,所述的宏块组由n个连续的宏块组成,n为大于0的自然数;由Core3负责对所述的宏块组进行解码得到宏块组的解码数据;
(2)由Core4 9负责对所述的解码数据进行估计得到宏块组的估计信息,所述的估计信息为预测矢量或帧内预测模式;由CorelO 12负责根据所述的估计信息进行预测得到宏块组的预测信息,使所述的解码数据减去预测信息得到宏块组的残差信息;(3)由Corell 12负责对所述的残差信息依次进行变换和量化;由Corell 12以及Corel5 16负责对量化后的残差信息依次进行重建和滤波得到宏块组的重建图像并进行存储;(4)由Corel3负责对所述的估计信息和量化后的残差信息进行熵编码得到宏块组对应的一段H. 264视频格式的码流,并由Corel4负责发送该段码流。优选地,所述的宏块组由16个连续的宏块组成;能够使每个Core的运算处理性能得到最大程度体现。MPEG-2视频格式的码流经熵解码生成的宏块包含有残差数据以及运动矢量;所述的步骤(I)中,对宏块组进行解码的过程为首先根据宏块组的运动矢量进行运动补偿得到宏块组的预测数据;然后对宏块组的残差数据依次进行反量化和反变换;最后使宏块组反变换后的残差数据与预测数据相加,得到宏块组的解码数据。所述的步骤(2)中,对解码数据进行估计分为两种情况若宏块组所属的图像为关键帧,则由CoreS 9负责对解码数据进行帧内预测模式估计得到帧内预测模式;若宏块组所属的图像为非关键帧,则由Core4 9负责对解码数据进行运动估计和帧内预测模式估计,并经比较后得到预测矢量或帧内预测模式。优选地,根据宏块组的运动矢量对解码数据进行运动估计;可消除相邻宏块之间确定运动搜索起点的依赖性,减少运动估计的计算量提高相应的速度。优选地,若宏块组所属的图像为非关键巾贞,贝1J由Core4 7中每一个Core分别负责对宏块组中n/4个宏块的解码数据进行运动估计,同时由Core8 9中每一个Core分别负责对宏块组中n/2个宏块的解码数据进行帧内预测模式估计;若宏块组所属的图像为关键帧,则由Core8 9中每一个Core分别负责对宏块组中n/2个宏块的解码数据进行帧内预测模式估计。能够平衡Core4 9的计算负载,优化整体转码性能。所述的步骤(2)中,根据估计信息进行预测分为两种情况若宏块组的估计信息为帧内预测模式,则由Corell 12负责根据帧内预测模式进行帧内预测,得到宏块组的预测信息;若宏块组的估计信息为预测矢量,则由CorelO负责根据预测矢量进行运动补偿,得到宏块组的预测信息。所述的步骤(3)中,对量化后的残差信息依次进行重建和滤波的过程如下
a.由Corell 12负责对量化后 的残差信息依次进行反量化和反变换;b.使反变换后的残差信息与宏块组的预测信息相加,得到宏块组的重建信息;由Corel5负责对所述的重建信息进行滤波强度计算得到滤波强度值;c.由Corel6负责根据所述的滤波强度值对重建信息进行环内去块滤波,得到宏块组的重建图像。优选地,Corell和Corel2分别负责宏块组中每一宏块的亮度分量和色度分量对应的运算处理任务;能够平衡Corell 12的计算负载,优化整体转码性能。由Corel4负责根据步骤(4)中熵编码过程的输出码率对步骤(3)中的量化过程进行码率控制。所述的变换为离散余弦变换,反变换为离散余弦反变换。本发明的转码方法根据CPDT转码结构各模块间的相互关系,采用功能和数据相结合的划分方式对各核进行任务分配,能够有效提高转码过程的并行加速比,且更适合于高码率的MPEG-2至H. 264的转码。


图I为本发明转码方法的执行流程示意图。图2为CPDT转码器的结构示意图。图3为CPDT转码器基于功能和数据相结合划分后各模块的处理时间示意图。
具体实施例方式为了更为具体地描述本发明,下面结合附图及具体实施方式
对本发明的解码方法进行详细说明。如图I所示,一种基于多核处理器实现的MPEG-2至H. 264的转码方法,多核处理器采用Tilera公司TilePro64系列的多核处理器,处理器具有64个Core,各Core并行处理各自的运算任务;该方法包括如下步骤(I)由Corel负责接收MPEG-2视频格式的码流,由Core2负责对码流进行熵解码(VLD)并陆续生成若干宏块组,宏块组由16个连续的宏块组成。MPEG-2视频格式的码流经熵解码生成的宏块包含有残差数据以及运动矢量;由Core3负责对宏块组进行解码得到宏块组的解码数据首先根据宏块组的运动矢量进行运动补偿(MC_D)得到宏块组的预测数据;然后对宏块组的残差数据依次进行反量化和离散余弦反变换;最后使宏块组反变换后的残差数据与预测数据相加,得到宏块组的解码数据。对当前宏块进行运动补偿时,需取参考帧的解码数据作为参考;反量化(IQ)和离散余弦反变换(IDCT)的目的在于去除原始图像的空间冗余和控制码率,压缩数据量,尽可能完整地回复原始图像。(2)由Core4 9负责对宏块组的解码数据进行估计得到宏块组的估计信息(预测矢量或帧内预测模式)若宏块组所属的图像为非关键帧,则由Core4 7中每一个Core根据宏块组的运动矢量分别负责对宏块组中4个宏块的解码数据进行运动估计,同时由CoreS 9中每一个Core分别负责对宏块组中8个宏块的解码数据进行帧内预测模式估计,得到宏块组的预测矢量和帧内预测模式,经比较后选取其一;若宏块组所属的图像为关键帧,则由Core8 9中每一个Core分别负责对宏块组中8个宏块的解码数据进行帧内预测模式估计;运动估计(ME)在帧间预测中使用,在参考帧中搜索出于当前编码宏块最为匹配的参考宏块的位置,宏块之间位移就是预测矢量;帧内预测模式估计(IPE)选择合适的帧内预测模式用以进行下一步的帧内预测。由CorelO 12负责根据宏块组的估计信息进行预测得到宏块组的预测信息 若宏块组的估计信息为帧内预测模式,则由Corell 12负责根据宏块组的帧内预测模式进行帧内预测(IP),得到宏块组的预测信息;帧内预测是根据不同的模式,使用当前宏块左边一列和上边一行的数据,对当前的编码宏块进行预测;若宏块组的估计信息为预测矢量,则由CorelO负责根据宏块组的预测矢量进行运动补偿(MC_E),得到宏块组的预测信息;对当前宏块进行运动补偿时,需取参考帧的重建图像作为参考。使宏块组的解码数据减去预测信息得到宏块组的残差信息。(3)由Corell 12负责对宏块组的残差信息依次进行离散余弦变换和量化。离散余弦变换(DCT)是将时域信息映射到频域上,以除去信号的相关性,DCT与IDCT是一对互逆的过程;量化(Q)是在不影响视觉效果的前提下减少视频帧编码的动态范围,从而降低码率,提高压缩比,H. 264的量化原理如下FQ = round其中y为图像输入样本,FQ为y的量化值,QP为量化步长,round为取整函数。IQ就是Q的反过程Y = FQXQP ;量化的过程是不可逆的,反量化得到的结果与原始数据是有
差异的。由Corell 12负责对量化后的残差信息依次进行反量化和离散余弦反变换;使反变换后的残差信息与宏块组的预测信息相加,得到宏块组的重建信息。以宏块为单位进行数据压缩和恢复后,在宏块边界会产生图像不连续的现象,该现象称为方块效应;故需根据宏块类型,计算宏块边界的滤波强度值,然后根据各条边界的滤波强度用滤波器对重建信息进行去块滤波,消除方块效应。故由Corel5负责对宏块组的重建信息进行滤波强度(BS)计算得到滤波强度值;由Corel6负责根据滤波强度值对重建信息进行环内去块滤波(LPF),得到宏块组的重建图像;将重建图像进行存储,作为参考帧供后续札264编码过程中运动估计和运动补偿时使用。本实施方式中,Corell和Corel2分别负责宏块组中每一宏块的亮度分量和色度分量对应的运算处理任务。(4)由Corel3负责对宏块组的估计信息和量化后的残差信息进行熵编码(EC)得到宏块组对应的一段H. 264视频格式的码流,并由Corel4负责发送该段码流。熵编码是无损压缩的编码方法,经熵编码的码流可以无失真的解码得到原始视频。由Corel4负责根据熵编码过程的输出码率对步骤(3)中的量化过程进行码率控制(RC)。
CPDT转码系统的模块结构如图2所示,整个系统可分为MPEG-2解码部分和H. 264编码部分。本实施方式将H. 264编码中DCT、Q、IQ和IDCT这几个耦合紧密的模块可以组合成一个计算模块(CALC)。考虑到IP模块需要用到IDCT重建后的数据,因此将其也并入到CALC模块中。从均衡运算负载的角度出发,本实施方式将MPEG-2解码部分运算量较少的IQ、IDCT和MC_D合并成一个功能模块,将运算量少的RC模块和码流发送任务合并。本实施方式还引入处理数据划分的概念,对运算量大的ME和IPE模块进一步拆分,将IPE拆分成IPEO和IPE1,每个子模块分别处理8个宏块,两个子模块并行进行IPE,其中IPE所用到的宏块左边一列像素和上边一行像素均采用当前帧的相应像素点;ME拆分为MEO、ME1、ME2、ME3,每个子模块分别处理4个宏块。为了去除相邻宏块之间运动搜索起点确定时的依赖性,以MPEG-2解码出的运动矢量作为ME的搜索中心,四个子模块并行进行ME。将编码部分的CALC模块拆分为处理亮度数据的CALC_L和处理色度数据的CALC_C ;在经过处理数据划分之后各个功能模块的处理时间情况如图3所示,可见各个模块之间的运算量达到了很好的平衡,各功能模块分别对应核的分配如表I所示。表I
权利要求
1.一种基于多核处理器实现的MPEG-2至H. 264的转码方法,所述的多核处理器至少具有16个Core,各Core并行处理各自的运算任务;该方法包括如下步骤 (1)由Corel负责接收MPEG-2视频格式的码流,由Core2负责对所述的码流进行熵解码并陆续生成若干宏块组,所述的宏块组由n个连续的宏块组成,n为大于0的自然数; 由Core3负责对所述的宏块组进行解码得到宏块组的解码数据; (2)由Core4 9负责对所述的解码数据进行估计得到宏块组的估计信息,所述的估计信息为预测矢量或帧内预测模式; 由CorelO 12负责根据所述的估计信息进行预测得到宏块组的预测信息,使所述的解码数据减去预测信息得到宏块组的残差信息; (3)由Corell 12负责对所述的残差信息依次进行变换和量化;由Corell 12以及Corel5 16负责对量化后的残差信息依次进行重建和滤波得到宏块组的重建图像并进行存储; (4)由Corel3负责对所述的估计信息和量化后的残差信息进行熵编码得到宏块组对应的一段H. 264视频格式的码流,并由Corel4负责发送该段码流。
2.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于所述的宏块组由16个连续的宏块组成。
3.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于所述的步骤(I)中,对宏块组进行解码的过程为首先根据宏块组的运动矢量进行运动补偿得到宏块组的预测数据;然后对宏块组的残差数据依次进行反量化和反变换;最后使宏块组反变换后的残差数据与预测数据相加,得到宏块组的解码数据。
4.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于所述的步骤(2)中,对解码数据进行估计分为两种情况 若宏块组所属的图像为关键帧,则由CoreS 9负责对解码数据进行帧内预测模式估计得到帧内预测模式; 若宏块组所属的图像为非关键帧,则由Core4 9负责对解码数据进行运动估计和帧内预测模式估计,并经比较后得到预测矢量或帧内预测模式。
5.根据权利要求4所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于根据宏块组的运动矢量对解码数据进行运动估计。
6.根据权利要求4所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于若宏块组所属的图像为非关键帧,则由Core4 7中每一个Core分别负责对宏块组中n/4个宏块的解码数据进行运动估计,同时由CoreS 9中每一个Core分别负责对宏块组中n/2个宏块的解码数据进行帧内预测模式估计;若宏块组所属的图像为关键帧,则由Core8 9中每一个Core分别负责对宏块组中n/2个宏块的解码数据进行帧内预测模式估计。
7.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于所述的步骤(2)中,根据估计信息进行预测分为两种情况 若宏块组的估计信息为帧内预测模式,则由Corell 12负责根据帧内预测模式进行帧内预测,得到宏块组的预测信息; 若宏块组的估计信息为预测矢量,则由CorelO负责根据预测矢量进行运动补偿,得到宏块组的预测信息。
8.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于所述的步骤(3)中,对量化后的残差信息依次进行重建和滤波的过程如下 a.由Corell 12负责对量化后的残差信息依次进行反量化和反变换; b.使反变换后的残差信息与宏块组的预测信息相加,得到宏块组的重建信息;由Corel5负责对所述的重建信息进行滤波强度计算得到滤波强度值; c.由Corel6负责根据所述的滤波强度值对重建信息进行环内去块滤波,得到宏块组的重建图像。
9.根据权利要求1、7或8所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于=Corell和Corel2分别负责宏块组中每一宏块的亮度分量和色度分量对应的运算处理任务。
10.根据权利要求I所述的基于多核处理器实现的MPEG-2至H.264的转码方法,其特征在于由Corel4负责根据步骤(4)中熵编码过程的输出码率对步骤(3)中的量化过程进行码率控制。
全文摘要
本发明公开了一种基于多核处理器实现的MPEG-2至H.264的转码方法,包括(1)由Core1接收码流,由Core2熵解码,由Core3负责宏块解码;(2)由Core4~9负责宏块估计,由Core10~12负责宏块预测;(3)由Core11~12负责宏块变换量化及反量化反变换,由Core15~16对负责宏块滤波;(4)由Core13熵编码,并由Core14发送码流。本发明的转码方法根据CPDT转码结构各模块间的相互关系,采用功能和数据相结合的划分方式对各核进行任务分配,能够有效提高转码过程的并行加速比,且更适合于高码率的MPEG-2至H.264的转码。
文档编号H04N7/26GK102625109SQ20121008943
公开日2012年8月1日 申请日期2012年3月30日 优先权日2012年3月30日
发明者罗雷, 陈耀武, 韩笑 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1