一种基于多核处理器的编码器的制造方法

文档序号:10691550阅读:353来源:国知局
一种基于多核处理器的编码器的制造方法
【专利摘要】本发明涉及一种基于多核处理器的编码器,包括并行运动估计模块,所述并行运动估计模块并行获取子块的运动矢量信息和残差块数据,其中运动矢量信息作为运动矢量模块的输入信息,用于计算子块的运动矢量信息;所有运动矢量信息计算完成后,残差数据获取模块访问存放在参考帧内存中的子块数据,并输送给DCT变换模块得到量化后的变换系数,所述变换系数作为失真估计模块的输入;MV成本查表模块用于查表从所述并行运动估计模块获取运动矢量编码的比特数,所述比特数作为比特率估计模块的输入;所述失真估计模块和比特率估计模块的输出作为RDO帧间模式决策模块的输入进行最佳模式决策。本发明能够提高整个的视频编码效率。
【专利说明】
-种基于多核处理器的编码器
技术领域
[0001] 本发明设及编码器技术领域,特别是设及一种基于多核处理器的编码器。
【背景技术】
[0002] 2003年,H. 264被正式颁布。运一最新的视频编码标准,相比较于之前的标准诸如 MPEG-2、H.263等,在保证相同图像质量前提下,能降低50% W上的码率。但随着压缩效率的 提高,处理过程中复杂度的增加是不可避免的。在软件平台上的仿真结果显示,其复杂度在 编码过程中增加一个数量级,在解码过程中增加了两倍W上。而在硬件层面上,有效利用超 大规模集成电路,使得处理更加复杂的视频压缩算法成为可能,但是即使伴随着半导体技 术的发展,实现H. 264也绝非易事,包括硬件平台资源有限;实现该算法需要复杂的结构设 计;同时因为数据之间的相关性使得并行处理很困难。而且H.264/AVC还有一个致命的缺 点,就是编解码复杂度较高,运是由于H. 264编码过程中的帖内预测代价计算和模式选择需 要很大的计算量,其计算量是H.263的两Ξ倍。
[0003] H. 264编码器是目前最受到广泛研究的编码标准,无论科技工作者、厂家、学生、商 业组织都在从不同角度对H. 264编码器进行研究。另外,还有一些关于H. 264的开源项目,尤 其是软件开源项目,例如JM,X264等,关于硬件的开源项目则比较少,Opencores上面有一个 H.264解码器的硬件开源项目,但没有编码的开源项目。
[0004] 现在,多核处理器已经成为被广泛采用的计算体系结构,并行算法和基于线程级 别的并行软件的设计对于计算密集型应用程序显得越来越重要性。但是由于存在各种各样 的数据和控制依赖关系,特别的,H. 264编码器帖内模式决策和帖间模式决策数据之间存在 很强的依赖性,尤其是在率失真优化方面(RD0),很难开发出线程级并行H.264视频编码器。

【发明内容】

[0005] 本发明所要解决的技术问题是提供一种基于多核处理器的编码器,提高整个的视 频编码效率。
[0006] 本发明解决其技术问题所采用的技术方案是:提供一种基于多核处理器的编码 器,包括并行运动估计模块,所述并行运动估计模块并行获取子块的运动矢量信息和残差 块数据,其中运动矢量信息作为运动矢量模块的输入信息,用于计算子块的运动矢量信息; 所有运动矢量信息计算完成后,残差数据获取模块访问存放在参考帖内存中的子块数据, 并输送给DCT变换模块得到量化后的变换系数,所述变换系数作为失真估计模块的输入;MV 成本查表模块用于查表从所述并行运动估计模块获取运动矢量编码的比特数,所述比特数 作为比特率估计模块的输入;所述失真估计模块和比特率估计模块的输出作为RD0帖间模 式决策模块的输入进行最佳模式决策。
[0007] 所述并行运动估计模块中Ξ个运动估计进程在Ξ个线程中并行执行获取帖间预 测不同模式的运动矢量,Ξ个进程同时进行,捜索16X16,8X8和4X4块的最佳匹配块;两 个内存模块分别用于存储参考宏块和当前宏块的数据信息。
[000引所述8 X 8运动估计进程中有4个分进程,即在一个MB的给定4个8 X 8的数据子块中 捜索最佳匹配块;所述4X4运动估计进程中有16个分进程,即在一个MB的给定16个4X4的 数据子块中捜索最佳匹配块。
[0009] 16 X 16子块的运动矢量预测值由相邻MBS得到,8 X 8子块在当前MB中运动矢量预 巧帷由计算4个8X8子块的运动矢量的平均值得到,对于4X4子块,同样由计算16个4X4子 块的运动矢量的平均值得到。
[0010] 所述最佳匹配的标准是至少两个块之间的最小绝对值误差和SAD,所述并行运动 估计模块在SAD进程中将子块SAD值与设定的SAD目标值比较,当子块SAD值低于设定的SAD 目标值,捜索终止;否则继续捜索,直到捜索表完全结束,其中,SAD是当前块实际像素值与 预测像素值差的绝对值之和。
[0011 ] 所述比特率估计模块通过数学模型R=to1:al_ze;ros+3*to1:al_coeff+SAC得到,其 中,R为比特率、total_zeros为最后一个扫描非零系数总数中零块的总数、total_coeff为 非零块的量化系数的总数、SAC为量化变换系数在扫描时各模块残差绝对值的总和。
[0012]所述RD0帖间模式决策模块将所有不同的编码模式的成本进行比较,成本最低的 编码方式将选为最好的帖间编码模式。
[OOU]有益效果
[0014] 由于采用了上述的技术方案,本发明与现有技术相比,具有W下的优点和积极效 果:
[0015] 本发明基于多核处理器设计H. 264编码器通过实现编码过程的并行化满足了 H.264所覆盖的多媒体应用的实时性的要求;
[0016] 本发明采用多核处理器,在多线程的环境中,多核处理器的优势十分明显,多核处 理器具有更强的并行处理能力和更高的计算密度,也可W大大降低处理器的功耗;
[0017] 本发明提出基于多核处理器实现的并行化,是针对一个宏块编码过程的并行化, 可W通过设计算法有效的去除数据依赖关系;
[0018] 本发明通过设计基于线程级的并行运动估计模块,获得帖间预测不同模式的运动 矢量,不同块的运动估计由并行运动估计模块获得;
[0019] 本发明设计算法消除模式决策过程的数据依赖,采用估计的方法获得的编码成 本;
[0020] 本发明设计算法使得帖间16 X 16,8 X 8 W及4 X 4子块的并行运动估计模块和帖内 预测进一步实现并行,加速编码,同时保证PSNR损失和比特率增加,在可忽略不计的范围 内。
【附图说明】
[0021] 图1是本发明的系统框图;
[0022] 图2是并行运动估计模块结构方框图;
[0023] 图3是一个宏块编码流程图。
【具体实施方式】
[0024] 下面结合具体实施例,进一步阐述本发明。应理解,运些实施例仅用于说明本发明 而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人 员可W对本发明作各种改动或修改,运些等价形式同样落于本申请所附权利要求书所限定 的范围。
[0025] 本发明的实施方式设及一种基于多核处理器的编码器,如图1所示,包括并行运动 估计模块,所述并行运动估计模块并行获取子块的运动矢量信息和残差块数据,其中运动 矢量信息作为运动矢量模块的输入信息,用于计算子块的运动矢量信息;所有运动矢量信 息计算完成后,残差数据获取模块访问存放在参考帖内存中的子块数据,并输送给DCT变换 模块得到量化后的变换系数,所述变换系数作为失真估计模块的输入;MV成本查表模块用 于查表从所述并行运动估计模块获取运动矢量编码的比特数,所述比特数作为比特率估计 模块的输入;所述失真估计模块和比特率估计模块的输出作为RD0帖间模式决策模块的输 入进行最佳模式决策。
[0026] 如图2所示,Ξ个运动估计进程在Ξ个线程中并行执行获取帖间预测不同模式的 运动矢量,Ξ个进程同时进行,捜索16X16,8X8和4X4块的最佳匹配块,两个内存模块分 别用于存储参考宏块和当前宏块的数据信息,还有一个控制模块,用来控制存储运动估计 模块和访问内存模块。其中8X8的运动估计进程中有4个分进程,即在在一个MB的给定4个8 X8的数据子块中捜索最佳匹配块,最匹配的标准是至少两个块之间的最小绝对值误差和 SAD。相似的结构中,4X4运动估计进程中则有16个分进程在一个MB的给定16个4X4的数据 子块中捜索最佳匹配块。16 X 16运动估计进程中没有分进程。
[0027] 在并行运动估计模块还采用了一个早期的运动捜索终止算法。即SAD进程中的某 子块SAD值与设定的SAD目标值比较,当SAD值低于SAD目标值,捜索终止;否则,继续捜索,直 到捜索表完全结束。为了减少计算消耗16X8,8X16,8X4,4X8子块的运动估计不在图2的 并行运动估计模块中进行。在RD0模式决策过程中,16 X 8和8 X 16块的运动矢量估计可W由 如下公式推导得出:
[002引 mV16X8_A = mV8X8_A+mV8X8_B> > 1
[0029] mV16X8_B = mV8X8_C+mV8X8_D> > 1
[0030] mv8xi6_A=mv8X8_A+mv8X8_c> > 1 [0031 ] mV8X16_B = mV8X8_B+mV8X8_D> > 1
[0032] 8X4和4X8块的估计矢量运动可w用类似的公式算得。因此当所有的模式的运动 矢量已经得到,下一步就可W计算所有模式的编码成本。
[0033] 对于帖间预测的运动估计部分,对各预测模式计算相应的代价函数值,采用基于 绝对误差和SAD的复杂度代价函数计算模型:
[0034] J"〇ti〇n = SAD+A"〇ti〇n · R(MV,REF)
[0035]
[0036] 其中,SAD是当前块实际像素值与预测像素值差的绝对值之和,AmDti。。是拉格朗日 乘数,AmcKle是基于拉格朗日函数率失真优化的高复杂度代价函数计算模型,R(MV,REF)是对 该预测模式下编码后比特率估计值,QP是每个宏块的量化参数。
[0037] 对于编码后比特率的计算,采用下面的的数学模型:
[0038] R = to1:al_ze;ros+3*to1:al_coeff+SAC
[0039] total_zeros为最后一个扫描非零系数总数中零块的总数、total_coeff为非零块 的量化系数的总数、SAC为量化变换系数在扫描时各模块残差绝对值的总和。
[0040] 所W编码的成本计算是基于公式:
[0041 ] COSt = SADmode+A*{f(c〇eff)+t(MVmode-MVPmode)}
[0042] to是基于查找表可W直接生成的运动矢量信息的函数,MVmode和MVPmode分别为运 动向量和运动向量预^UdMVPi6xi6是运动矢量预测值由相邻MBS得至iJ,MVP8x8是在当前MB中运 动矢量预测值,由计算4个8X8块的运动矢量的平均值算的。对于4X4子块,可W用同样的 方法计算运动矢量的平均值。运动矢量预测值在一个8X8块中4个4X4块运动矢量的平均 值。在MB中16X8和8X16大小块的运动向量预测由两个8X8块的运动矢量的平均值得到。 同样,在8 X 4和4 X 8块运动矢量预测值为在8 X 8块中两个4 X 4块运动向量平均值。运动矢 量近似预测只用于RD0的过程。
[0043] 将所有不同的编码模式的成本进行比较。成本最低的编码方式将选为最好的帖间 编码模式。该最好帖间编码模式用于处理帖间编码,同时需要运动估计,如16X16,8X8和4 X4子块的运动估计。对于skip模式,可W使用16X16模式的结果,选择的规则是如果当前 宏块与所选宏块之间的MAD的小于16 X 16模块的MAD,运选择skip模式。
[0044] 所述的多核处理器的H.264编码器系统中,对于一个宏块的编码过程,采用帖间模 式决策S1 ipstreaming算法,有效地去除了 RD0模式决策过程中帖内模式决策和帖间模式决 策之间的数据依赖关系运动估计和RD0帖内模式决策并行执行,进一步实现编码过程的并 行化,一个宏块的编码流程图如图3所示。
[0045] 本发明通过设计算法消除编码器各模块间的数据依赖关系,使得编码器的编码单 位可W在多核处理器的不同内核上并行执行。包括设计算法使得帖间预测过程的各子块的 运动估计和RD0帖内模式决策过程并行进行,采用比特率估计算法和低复杂性的整数失真 估计方法,消除各编码单元之间的数据依赖关系,使得模式决策过程进一步并行化,使得一 个宏块的各个编码单元在可W在处理器的不同内核上并行处理。编码器将帖间预测过程中 不同分块大小的运动估计进行并行处理,然后在一个进程中计算同一个编码过程中所有帖 间模式的编码成本,从而达到减少编码时间的目地,实现快速编码。
【主权项】
1. 一种基于多核处理器的编码器,其特征在于,包括并行运动估计模块,所述并行运动 估计模块并行获取子块的运动矢量信息和残差块数据,其中运动矢量信息作为运动矢量模 块的输入信息,用于计算子块的运动矢量信息;所有运动矢量信息计算完成后,残差数据获 取模块访问存放在参考帧内存中的子块数据,并输送给DCT变换模块得到量化后的变换系 数,所述变换系数作为失真估计模块的输入;MV成本查表模块用于查表从所述并行运动估 计模块获取运动矢量编码的比特数,所述比特数作为比特率估计模块的输入;所述失真估 计模块和比特率估计模块的输出作为RDO帧间模式决策模块的输入进行最佳模式决策。2. 根据权利要求1所述的基于多核处理器的编码器,其特征在于,所述并行运动估计模 块中三个运动估计进程在三个线程中并行执行获取帧间预测不同模式的运动矢量,三个进 程同时进行,搜索16X16,8X8和4X4块的最佳匹配块;两个内存模块分别用于存储参考宏 块和当前宏块的数据信息。3. 根据权利要求2所述的基于多核处理器的编码器,其特征在于,所述8 X 8运动估计进 程中有4个分进程,即在一个MB的给定4个8 X 8的数据子块中搜索最佳匹配块;所述4 X 4运 动估计进程中有16个分进程,即在一个MB的给定16个4X4的数据子块中搜索最佳匹配块。4. 根据权利要求2所述的基于多核处理器的编码器,其特征在于,16X16子块的运动矢 量预测值由相邻MBS得到,8 X 8子块在当前MB中运动矢量预测值由计算4个8 X 8子块的运动 矢量的平均值得到,对于4X4子块,同样由计算16个4X4子块的运动矢量的平均值得到。5. 根据权利要求3所述的基于多核处理器的编码器,其特征在于,所述最佳匹配的标准 是至少两个块之间的最小绝对值误差和SAD,所述并行运动估计模块在SAD进程中将子块 SAD值与设定的SAD目标值比较,当子块SAD值低于设定的SAD目标值,搜索终止;否则继续搜 索,直到搜索表完全结束,其中,SAD是当前块实际像素值与预测像素值差的绝对值之和。6. 根据权利要求1所述的基于多核处理器的编码器,其特征在于,所述比特率估计模块 通过数学模型1? = 1:(^&1_261'〇8+3*1:(^&1_(3〇6€€+34(]得到,其中,1?为比特率、1:(^&1_261'〇8为 最后一个扫描非零系数总数中零块的总数、t 〇tal_C〇efT为非零块的量化系数的总数、SAC 为量化变换系数在扫描时各模块残差绝对值的总和。7. 根据权利要求1所述的基于多核处理器的编码器,其特征在于,所述RDO帧间模式决 策模块将所有不同的编码模式的成本进行比较,成本最低的编码方式将选为最好的帧间编 码模式。
【文档编号】H04N19/109GK106060555SQ201610494160
【公开日】2016年10月26日
【申请日】2016年6月29日
【发明人】卞凤杰, 齐金鹏, 刘树娟, 宋巧红
【申请人】东华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1