计算复杂度可动态调整的视频编码方法和装置的制作方法

文档序号:7972784阅读:98来源:国知局
专利名称:计算复杂度可动态调整的视频编码方法和装置的制作方法
技术领域
本发明涉及数字视频处理技术领域,具体来说是指一种计算复杂度可动态调整的视频编码方法和采用该方法的装置。
背景技术
数字视频技术正在被广泛地应用到诸如视频广播、视频会议与可视电话、多媒体娱乐和数字视频监控等领域。数字视频技术的处理对象为视频序列,而视频序列是由许多连续的、时间上相关的视频画面组成的。未经压缩的视频序列需要占用太多的存储空间或者传输带宽,以水平分辨率为720、垂直分辨率为576,帧率为25帧/秒的标准清晰度视频序列为例,它一秒钟总共有大约165兆比特数据量。在现有的技术水平下,直接存储或者传输这么大量的数据是不现实的,因此必须使用数字视频编码技术对这些原始的视频序列进行压缩处理,然后再对压缩数据进行存储或者传输。
当前主流的视频编码国际标准是H.26X或者MPEG-X系列,这些编码标准的一个共同特点就是对处理器装置的计算性能提出了很高的要求,特别是在高分辨率、高帧率情况下更是如此。在传统的视频编码方法中,视频处理的操作方式和过程是不变的。但随着输入视频内容的变化,视频处理的计算负荷也会相应地波动,在编码器装置计算性能受限的情况下,很容易导致丢帧的情况,进而因为视频画面的不连贯而影响视频序列的整体感观质量。
H.26X或者MPEG-X系列视频编码标准都是基于时间域和空间域混合的操作架构,它们在时间域上进DPCM操作、在空间域上进行块DCT(离散余弦变换或者近似于它的整型变换)操作。其中DPCM操作是通过在帧与帧之间进行运动估计和运动补偿运算来减少视频序列的时间冗余度,而DCT变换操作是通过把空间域上的视频信号变换到频率域上,对信号能量进行压缩,再由后续的QUANT(量化)操作来减少视频画面的空间冗余度,并且对QUANT操作后的输出进行DEQUANT(反量化)和IDCT(逆离散余弦变换或者近似于它的逆整型变换)操作,来重建出图像。本领域的技术人员都知道,在上述操作过程中,运动估计和DCT/QUANT/DEQUANT/IDCT运算是消耗编码器装置处理资源最多的操作。所以如何根据编码器装置所能提供的处理资源量和输入的待编码视频序列内容,来动态地调整上述操作过程的复杂度,使得编码器装置能实时地编码视频序列,成为了本领域技术人员都非常关心的一个问题。
申请号为02826217.4的专利申请书公开了一种可动态控制视频编码复杂度的方法。它根据输入待处理数据流的缓存区中的充满程度,并且通过一张预先确定的编码复杂度配置表,来控制视频编码的计算负荷。在这张编码复杂度配置表中,总共有8个选项。每个选项都在帧操作级别进一步规定了编码器允许的编码方法,而且每类编码方法又根据所需的计算复杂度细分为3种。在此专利申请书中所述的这些编码方法中,计算复杂度的动态控制都是通过帧级别进行的。但是帧级别的控制,在许多应用中是不允许的,比如复杂度配置表中所述的B帧编码方法在某些应用中本身就不允许出现。而且帧级别控制方法的控制粒度也过于粗糙,不容易实现计算复杂度的精细控制。

发明内容
本发明提供了一种计算复杂度可在宏块级别进行动态调整的视频编码方法,克服了以往编码方法只能在帧级别进行计算复杂度控制的缺陷。
一种计算复杂度可动态调整的视频编码方法,在编码一帧视频画面时,动态调整编码计算复杂度包括以下步骤(1)确定编码这一帧画面允许使用的计算资源;(2)测量编码当前这一帧画面已经消耗掉的计算资源;(3)将步骤(2)中获得的已消耗的计算资源和两预先设置的高、低阈值进行比较,若已消耗的计算资源大于高阈值,则降低编码剩余宏块的复杂度;若已消耗的计算资源小于小阈值,则增加编码剩余宏块的复杂度,若已消耗的计算资源介于大、小阈值之间,则保持编码剩余宏块的复杂度不变。
本发明还提供了一种采用上述方法的装置。
一种采用上述视频编码方法的编码装置,包括
符合传统编码架构的宏块级编码器;用于测量并记录当前已编码宏块所消耗的计算资源的计算负荷监测器;根据计算负荷监测器的输出,动态调整编码器的编码复杂度的计算复杂度动态控制器;所述的编码器由变换与量化器、可变长编码器、运动估计器和运动补偿器组成;计算负荷监测器测量编码器当前已使用的计算资源,并将测量结果传送给计算复杂度动态控制器;在编码下一个宏块前,计算复杂度动态控制器根据接收的已使用计算资源情况,为编码下一个宏块的复杂度进行动态调整,输出搜索形状参数、DCT变换等操作的跳转阈值和运动搜索跳转阈值三个调整信号;编码器根据计算复杂度动态控制器的输出,按照视频编码标准规范编码一个宏块数据,最后输出比特流。
所述的计算负荷监测器由当前宏块起始和结束编码计数器、已编码宏块消耗资源累加器、已编码宏块个数累加器及当前帧总宏块个数记录器、当前帧计算负荷指示器和当前帧允许消耗的处理器资源记录器组成;当前宏块起始和结束编码计数器用于记录编码器编码一个宏块数据之前和之后的计数,根据当前宏块起始和结束编码计数器的输出,已编码宏块消耗资源累加器统计出编码器已消耗的计算资源,已编码宏块个数累加器及当前帧总宏块个数记录器记录已编码的宏块个数和总共需要编码的宏块个数,结合当前帧计算负荷指示器记录的编码这帧画面允许的计算资源,当前帧允许消耗的处理器资源记录器可向计算复杂度动态控制器输出当前编码器的负荷信息。
宏块级别的计算复杂度的动态调整是通过对运动估计和DCT/QUANT/DEQUANT/IDCT这两部分的操作实现的,具体包含以下三个方面1)DCT变换等操作的跳转阈值控制,通过动态调整DCT变换等操作的跳转阈值来控制编码是否对宏块进行DCT/QUANT/DEQUANT/IDCT操作,进而控制这部分操作的计算负荷。
2)运动搜索跳转阈值控制,通过动态调整运动搜索跳转阈值来控制编码器是否进行运动估计运算。
3)搜索形状参数控制,通过动态调整运动估计所要采用的搜索形状,来控制运动估计部分的计算负荷。


图1为本发明编码装置系统的结构示意框图;图2为本发明计算负荷监测器的结构示意框图;图3为编码器中DCT变换等操作部分的SKIP控制策略流程图;图4为运动估计部分的SKIP控制策略流程图;图5为运动估计部分的一种搜索形状调整策略流程图;图6为编码器宏块级计算复杂度动态调整的操作流程图。
具体实施例方式
如图1所示,一种采用本发明所述计算复杂度动态调整方法的编码装置系统,包括符合传统编码架构的宏块级编码器;用于测量并记录当前已编码宏块所消耗的计算资源的计算负荷监测器;根据计算负荷监测器的输出,动态调整编码器的编码复杂度的计算复杂度动态控制器;编码器由DCT、QUANT、DEQUANT和IDCT(简称变换与量化器)、VLC(可变长编码器)、ME(运动估计器)和MC(运动补偿器)四部分组成。
如图2所示,计算负荷监测器由当前宏块起始和结束编码计数器210、已编码宏块消耗资源累加器220、已编码宏块个数累加器及当前帧总宏块个数记录器230、当前帧计算负荷指示器240和当前帧允许消耗的处理器资源记录器250组成,当前宏块起始和结束编码计数器210用于记录编码器编码一个宏块数据之前和之后的计数,根据当前宏块起始和结束编码计数器210的输出,已编码宏块消耗资源累加器220可以统计出编码器已消耗的计算资源,已编码宏块个数累加器及当前帧总宏块个数记录器230记录已编码的宏块个数和总共需要编码的宏块个数,结合当前帧计算负荷指示器240记录的编码这帧画面允许的计算资源,当前帧允许消耗的处理器资源记录器250可向计算复杂度动态控制器输出当前编码器的负荷信息。
本发明编码装置在编码过程中,计算负荷监测器测量编码器当前已使用的计算资源,并将测量结果传送给计算复杂度动态控制器;在编码下一个宏块前,计算复杂度动态控制器根据接收的已使用计算资源情况,为编码下一个宏块的复杂度进行动态调整,输出搜索形状参数、DCT变换等操作的跳转阈值和运动搜索跳转阈值三个调整信号;编码器根据计算复杂度动态控制器的输出,按照视频编码标准规范编码一个宏块数据,最后输出比特流。
宏块级别的计算复杂度的动态调整是通过对运动估计和DCT/QUANT/DEQUANT/IDCT这两部分的操作实现的,具体包含以下三个方面1)DCT变换等操作的跳转阈值控制,通过动态调整DCT变换等操作的跳转阈值来控制编码是否对宏块进行DCT/QUANT/DEQUANT/IDCT操作,进而控制这部分操作的计算负荷。
2)运动搜索跳转阈值控制,通过动态调整运动搜索的跳转阈值来控制编码器是否进行运动估计运算。
3)搜索形状参数控制,通过动态调整运动估计所要采用的搜索形状,来控制运动估计部分的计算负荷。
如图3所示,编码器对宏块数据进行DCT变换等操作时,在接收到由计算复杂度动态控制器发送过来的DCT变换等操作的跳转阈值后,编码器首先计算出宏块中四个亮度块数据与参考块数据的SAD值(差的绝对值的和);然后比较SAD与DCT变换等操作的跳转阈值的线性组合结果,如果大于或等于0,则编码器继续进行变换等操作,否则的话就不进行变换等操作。最后编码器根据上述操作结果,对编码宏块信息进行设置。
如图4所示,编码器在运动估计操作时,在接收到由计算复杂度动态控制器发送过来的运动搜索跳转阈值后,编码器首先根据初始运动矢量计算出相应的SAD值,然后比较此SAD值与运动搜索跳转阈值的大小关系,如果前者大,则继续作运动估计操作,并且将搜索过程中发现的最小SAD值对应的运动矢量作为最优运动矢量,否则的话就不进行运动估计操作,把初始运动矢量作为最优运动矢量。
如图5所示,编码器在运动估计操作时,在接收到由计算复杂度动态控制器发送过来的搜索形状参数后,编码器根据参数值在运算量大的搜索形状(如大六边型)、运算量适中的搜索形状(如小菱型)和运算量小的搜索形状(如十字型)共三类搜索形状中选择一种进行运动估计操作。
图6为本发明计算复杂度动态控制器的操作流程图,计算复杂度动态控制器接收计算负荷监测器输出的计算负荷指示信息,进行相应的逻辑操作和判断后,向编码器分别输出搜索形状参数、DCT变换等操作的跳转阈值和运动搜索跳转阈值三个计算复杂度控制信息,进而对编码器编码下一个宏块的计算复杂度进行控制,使得编码器编码一帧所消耗的计算资源维持在允许范围内。
如图6所示,在得到计算负荷指示信息T后,先判断T落在如下三个域(0,T_down),[T_down,T_up],(T_up,∞)中的哪个域,然后根据判断结果选择相应的跳转分支。假设T落在(T_up,∞)域中,即T大于T_up,那么先计算D_u=T-T_up,再判断D_u是落在如下三个域(0,D_uthres2),[D_uthres2,D_uthres1],(D_uthres1,∞)中的哪个域,然后根据判断结果选择相应的跳转分支,执行相应的计算复杂度控制策略。若D_u是落在(0,D_uthres2)域上,说明编码计算负荷超出允许范围较少,只需通过调整搜索形状参数一个信号即可达到负荷调整的目的;如果D_u是落在[D_uthres2,D_uthres1]域上,说明编码计算负荷在较大程度上超出允许范围,需通过调整搜索形状参数和DCT变换等操作的跳转阈值两个信号来可达到负荷调整的目的;而如果D_u是落在(D_uthres1,∞)域上,说明编码计算负荷超出允许范围很多,这时需要通过调整搜索形状参数、DCT变换等操作的跳转阈值和运动搜索跳转阈值三个信号来达到负荷调整的目的。如流程图所示,当T落在其他区域时的操作与上述过程是相似的。
权利要求
1.一种计算复杂度可动态调整的视频编码方法,其特征在于在编码一帧视频画面时,动态调整编码计算复杂度包括以下步骤(1)确定编码这一帧画面允许使用的计算资源;(2)测量编码当前这一帧画面已经消耗掉的计算资源;(3)将步骤(2)中获得的已消耗的计算资源和两预先设置的高、低阈值进行比较,若已消耗的计算资源大于高阈值,则降低编码剩余宏块的复杂度;若已消耗的计算资源小于小阈值,则增加编码剩余宏块的复杂度,若已消耗的计算资源介于大、小阈值之间,则保持编码剩余宏块的复杂度不变。
2.一种采用如权利要求1所述方法的编码装置,其特征在于包括符合传统编码架构的宏块级编码器;用于测量并记录当前已编码宏块所消耗的计算资源的计算负荷监测器;根据计算负荷监测器的输出,动态调整编码器的编码复杂度的计算复杂度动态控制器;所述的编码器由变换与量化器、可变长编码器、运动估计器和运动补偿器组成;计算负荷监测器测量编码器当前已使用的计算资源,并将测量结果传送给计算复杂度动态控制器;在编码下一个宏块前,计算复杂度动态控制器根据接收的已使用计算资源情况,为编码下一个宏块的复杂度进行动态调整,输出搜索形状参数、DCT变换等操作的跳转阈值和运动搜索跳转阈值三个调整信号;编码器根据计算复杂度动态控制器的输出,按照视频编码标准规范编码一个宏块数据,最后输出比特流。
3.如权利要求2所述的编码装置,其特征在于所述的计算负荷监测器由当前宏块起始和结束编码计数器(210)、已编码宏块消耗资源累加器(220)、已编码宏块个数累加器及当前帧总宏块个数记录器(230)、当前帧计算负荷指示器(240)和当前帧允许消耗的处理器资源记录器(250)组成;当前宏块起始和结束编码计数器(210)用于记录编码器编码一个宏块数据之前和之后的计数,根据当前宏块起始和结束编码计数器(210)的输出,已编码宏块消耗资源累加器(220)统计出编码器已消耗的计算资源,已编码宏块个数累加器及当前帧总宏块个数记录器(230)记录已编码的宏块个数和总共需要编码的宏块个数,结合当前帧计算负荷指示器(240)记录的编码这帧画面允许的计算资源,当前帧允许消耗的处理器资源记录器(250)可向计算复杂度动态控制器输出当前编码器的负荷信息。
全文摘要
本发明公开了一种计算复杂度可动态调整的视频编码方法,在编码一帧视频画面时,动态调整编码计算复杂度包括以下步骤确定编码这一帧画面允许使用的计算资源;测量编码当前这一帧画面已经消耗掉的计算资源;将获得的已消耗的计算资源和两预先设置的高、低阈值进行比较,若已消耗的计算资源大于高阈值,则降低编码剩余宏块的复杂度;若已消耗的计算资源小于小阈值,则增加编码剩余宏块的复杂度,若已消耗的计算资源介于大、小阈值之间,则保持编码剩余宏块的复杂度不变。本发明方法克服了以往编码方法只能在帧级别进行计算复杂度控制的缺陷。本发明还公开了采用该方法的装置。
文档编号H04N7/30GK1976462SQ20061015513
公开日2007年6月6日 申请日期2006年12月11日 优先权日2006年12月11日
发明者陈耀武, 郑雅羽, 冯杰 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1