Avs运动补偿的运动矢量计算方法

文档序号:7580322阅读:126来源:国知局
专利名称:Avs运动补偿的运动矢量计算方法
技术领域
本发明涉及视频编解码技术,特别是涉及一种AVS运动补偿的运动矢量计算方法的技术。
背景技术
数字音视频编解码标准是数字音视频产业的基础标准,在广电、电信和消费类电子产品等领域具有巨大的产业需求。AVS (Audio Video Coding Standard)标准是由中国自主制定的数字音视频编解码技术标准,该技术标准的编码效率与札264相当,比MPEG-2高2_3倍,而且技术方案简洁,芯片实现复杂度比H. 264低,达到了第二代标准的最高水平。AVS标准当中具有特征性的核心技术包括8X8整数变换、量化、帧内预测、1/4精度像素插值、特殊的帧间预测运动补偿、二维熵编码、去块效应环内滤波等。运动补偿技术可以大幅度的减少时间冗余,提高视频压缩编码的效率,被广泛应用于多种视频编码标准中,是解码算法最重要的组成部分之一。为了达到高编码效率和简洁的实现方式,AVS标准在处理运动矢量预测时采用了 16X16、16X8、8X16和8X8的宏块划分方式,这种宏块划分方式有利于提高视频压缩编码的效率,但是现有AVS运动补偿的计算方法都是直接计算各个宏块的运动矢量,由于各个宏块的大小是不统一的,使得运动矢量的计算比较复杂,需要占用大量存储器资源,其计算速度较慢,不便于硬件实现。

发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种运动矢量计算简单,且存储器利用率高,计算速度快的AVS运动补偿的运动矢量计算方法。为了解决上述技术问题,本发明所提供的一种AVS运动补偿的运动矢量计算方法,其特征在于,包括控制字预分配模块、双向解码控制模块、运动矢量计算模块、参考运动矢量缓存器、存储与输出模块,所述参考运动矢量缓存器中预存有运动矢量参考值,所述存储与输出模块中设有一用于存放运动矢量值的矢量寄存器,该方法的具体计算步骤如下
1)控制字预分配模块根据当前宏块的划分方式,给当前宏块分配一个宏块控制字;
2)双向解码控制模块将当前宏块划分为4个8X 8的解码块,并对当前宏块的4个解码块按先上后下、先左后右的次序,从0到3依序进行编号;
3)双向解码控制模块根据当前宏块的划分方式及宏块控制字对当前宏块中的各解码块依次进行解码;
如果当前解码块所对应的宏块控制字的标志位值为1,则先通过运动矢量计算模块计算出当前解码块的运动矢量值,再用计算出的运动矢量值对存储与输出模块中的矢量寄存器进行更新,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考;
如果当前解码块所对应的宏块控制字的标志位值为0,则直接读取矢量寄存器中存放的运动矢量值作为当前解码块的运动矢量值,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考。进一步的,每个宏块控制字中均有四个标志位,每个标志位对应一个8X8的解码块,标志位值为I则表明该标志位所对应的解码块需要进行运行补偿计算运动矢量,标志位值为0则表明该标志位所对应的解码块不需要进行运行补偿计算运动矢量;具体宏块控制字的分配方法如下
如果当前宏块的划分方式为16X16划分,则该宏块的宏块控制字为1000 ;
如果当前宏块的划分方式为16X8划分,则该宏块的宏块控制字为1010 ;
如果当前宏块的划分方式为8X16划分,则该宏块的宏块控制字为1100 ;
如果当前宏块的划分方式为8X8划分,则该宏块的宏块控制字为1111。进一步的,所述步骤3中
如果当前宏块的划分方式为16X 16划分、16X8划分或8X8划分,则按0_1_2_3的编号顺序对当前宏块的4个解码块依序进行解码;
如果当前宏块的划分方式为为8X16划分,则按0-2-1-3的编号顺序对当前宏块的4个解码块依序进行解码。进一步的,所述运动矢量计算模块计算当前解码块运动矢量值时,先从参考运动矢量缓存器中读取运动矢量参考值,再根据读取的运动矢量参考值计算出解码块的运动矢量值。本发明提供的AVS运动补偿的运动矢量计算方法,根据当前宏块的划分的方式,给宏块分配一个宏块控制字,将宏块在不同划分方式下的运动矢量计算问题用宏块控制字来简化,同时解码处理统一以8X8的解码块为单位,并根据当前宏块的划分方式及宏块控制字对当前宏块中的各解码块依次进行解码,使得在存储与输出模块只需通过一个矢量寄存器存放一个8X8解码块的运动矢量,就可完成一个宏块运动矢量的存储与输出,这种计算方法不仅节省了存储器资源,大大提高了计算速度,而且使运动矢量的计算实现简单,便于硬件实现。


图I是本发明实施例的AVS运动补偿的运动矢量计算方法的计算结构示意 图2是AVS标准运动补偿的宏块划分方式示意图,其中的图2a是宏块划分方式为
16X16划分的示意图,图2b是宏块划分方式为16X8划分的示意图,图2c是宏块划分方式为8X 16划分的示意图,图2d是宏块划分方式为8X8划分的示意 图3是本发明实施例的AVS运动补偿的运动矢量计算方法中的宏块控制字分配示意图,其中的图3a是宏块划分方式为16 X 16划分时的宏块控制字分配示意图,图3b是宏块划分方式为16X8划分时的宏块控制字分配示意图,图3c是宏块划分方式为8X 16划分时的宏块控制字分配示意图,图3d是宏块划分方式为8X8划分时的宏块控制字分配示意 图4是本发明实施例的AVS运动补偿的运动矢量计算方法中,宏块的4个8X8解码块的编号不意 图5是本发明实施例的AVS运动补偿的运动矢量计算方法中,宏块的4个8X8解码块的解码顺序示意图,其中图5a是对按0-1-2-3的编号顺序进行解码的示意图,图5b是对按0-2-1-3的编号顺序进行解码的示意图。
具体实施例方式以下结合

对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。如图I-图5所示,本发明实施例所提供的一种AVS运动补偿的运动矢量计算方法,其特征在于,包括控制字预分配模块、双向解码控制模块、运动矢量计算模块、参考运动矢量缓存器、存储与输出模块,所述参考运动矢量缓存器中预存有运动矢量参考值,所述存储与输出模块中设有一用于存放运动矢量值的矢量寄存器,该方法的具体计算步骤如下
1)控制字预分配模块根据当前宏块的划分方式(参见图2),给当前宏块分配一个宏块控制字,将宏块在不同划分方式下的运动矢量计算问题用宏块控制字来简化;
每个宏块控制字中均有四个标志位,每个标志位对应一个8X8的解码块,标志位值为I则表明该标志位所对应的解码块需要进行运行补偿计算运动矢量,标志位值为0则表明该标志位所对应的解码块不需要进行运行补偿计算运动矢量;
具体宏块控制字的分配方法如下(参见图3)
如果当前宏块的划分方式为16X16划分,则该宏块的宏块控制字为1000 ;
如果当前宏块的划分方式为16X8划分,则该宏块的宏块控制字为1010 ;
如果当前宏块的划分方式为8 X 16划分,则该宏块的宏块控制字为1100 ;
如果当前宏块的划分方式为8X8划分,则该宏块的宏块控制字为1111 ;
2)双向解码控制模块将当前宏块划分为4个8X 8的解码块,并对当前宏块的4个解码块按先上后下、先左后右的次序,从0到3依序进行编号(参见图4);
3)双向解码控制模块根据当前宏块的划分方式及宏块控制字对当前宏块中的各解码块依次进行解码;
如果当前宏块的划分方式为16X 16划分、16X8划分或8X8划分,则按0_1_2_3的编号顺序对当前宏块的4个解码块依序进行解码;
如果当前宏块的划分方式为为8X16划分,则按0-2-1-3的编号顺序对当前宏块的4个解码块依序进行解码;
如果当前解码块所对应的宏块控制字的标志位值为1,则先通过运动矢量计算模块计算出当前解码块的运动矢量值,再用计算出的运动矢量值对存储与输出模块中的矢量寄存器进行更新,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考;
如果当前解码块所对应的宏块控制字的标志位值为0,则直接读取矢量寄存器中存放的运动矢量值作为当前解码块的运动矢量值,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考。本发明实施例中,所述运动矢量计算模块计算当前解码块运动矢量值的方法为现有技术,具体计算方法如下
运动矢量计算模块先从参考运动矢量缓存器中读取运动矢量参考值,再根据读取的运动矢量参考值计算出解码块的运 动矢量值。
权利要求
1.一种AVS运动补偿的运动矢量计算方法,其特征在于,包括控制字预分配模块、双向解码控制模块、运动矢量计算模块、参考运动矢量缓存器、存储与输出模块,所述参考运动矢量缓存器中预存有运动矢量参考值,所述存储与输出模块中设有一用于存放运动矢量值的矢量寄存器,该方法的具体计算步骤如下 1)控制字预分配模块根据当前宏块的划分方式,给当前宏块分配一个宏块控制字; 2)双向解码控制模块将当前宏块划分为4个8X 8的解码块,并对当前宏块的4个解码块按先上后下、先左后右的次序,从O到3依序进行编号; 3)双向解码控制模块根据当前宏块的划分方式及宏块控制字对当前宏块中的各解码块依次进行解码; 如果当前解码块所对应的宏块控制字的标志位值为1,则先通过运动矢量计算模块计算出当前解码块的运动矢量值,再用计算出的运动矢量值对存储与输出模块中的矢量寄存器进行更新,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考; 如果当前解码块所对应的宏块控制字的标志位值为O,则直接读取矢量寄存器中存放的运动矢量值作为当前解码块的运动矢量值,并将该值输出供帧间预测使用,同时用该值对参考运动矢量缓存器进行更新,供下一宏块计算运动矢量时参考。
2.根据权利要求I所述的方法,其特征在于,每个宏块控制字中均有四个标志位,每个标志位对应一个8X8的解码块,标志位值为I则表明该标志位所对应的解码块需要进行运行补偿计算运动矢量,标志位值为O则表明该标志位所对应的解码块不需要进行运行补偿计算运动矢量; 具体宏块控制字的分配方法如下 如果当前宏块的划分方式为16X16划分,则该宏块的宏块控制字为1000 ; 如果当前宏块的划分方式为16X8划分,则该宏块的宏块控制字为1010 ; 如果当前宏块的划分方式为8X16划分,则该宏块的宏块控制字为1100 ; 如果当前宏块的划分方式为8X8划分,则该宏块的宏块控制字为1111。
3.根据权利要求I所述的方法,其特征在于,所述步骤3中 如果当前宏块的划分方式为16X 16划分、16X8划分或8X8划分,则按0_1_2_3的编号顺序对当前宏块的4个解码块依序进行解码; 如果当前宏块的划分方式为为8X16划分,则按0-2-1-3的编号顺序对当前宏块的4个解码块依序进行解码。
4.根据权利要求I所述的方法,其特征在于,所述运动矢量计算模块计算当前解码块运动矢量值时,先从参考运动矢量缓存器中读取运动矢量参考值,再根据读取的运动矢量参考值计算出解码块的运动矢量值。
全文摘要
一种AVS运动补偿的运动矢量计算方法,涉及视频编解码技术领域,所解决的是简化运动矢量计算的技术问题。该方法的具体计算步骤如下1)根据当前宏块的划分方式,给当前宏块分配一个宏块控制字;2)将当前宏块划分为4个8×8的解码块,并从0到3依序进行编号;3)根据当前宏块的划分方式及宏块控制字对当前宏块中的各解码块依次进行解码;如果当前解码块所对应的宏块控制字的标志位值为1,则计算出当前解码块的运动矢量值,反之则直接读取矢量寄存器中存放的运动矢量值作为当前解码块的运动矢量值。本发明提供的方法,存储器利用率高,计算速度快,计算控制简单,便于硬件实现。
文档编号H04N7/26GK102625098SQ20111003432
公开日2012年8月1日 申请日期2011年2月1日 优先权日2011年2月1日
发明者王大永, 赵丹丹 申请人:上海爱信诺航芯电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1