专利名称:一种视频宏块解码方法及装置的制作方法
技术领域:
本发明涉及视频编解码领域,尤其涉及一种视频宏块解码方法及装置。
背景技术:
在AVS视频编解码中是以16x16的图像块作为基本的编解码处理单元,这个单元 称为宏块。在对宏块处理的过程中,会对其进一步划分成尺寸更小的子块,例如可以分为 8x8、16x8、8xl6 子块。宏块解码作为主要的熵解码,在视频解码中占有非常重要的地位,它的解码效率 好坏直接影响了整个系统的性能。
发明内容
本发明实施例提供一种视频宏块解码方法及装置,能够节省解码时间,提高解码 效率。本发明实施例采用如下技术方案一种视频宏块解码方法,包括宏块头解码和宏块数据解码;其中,在所述宏块头解码中,当解码完宏块类型信息后,启动读取相应宏块运动信息的 操作;当所述宏块头解码完毕后,启动帧预测操作和所述宏块数据解码操作。进一步地,所述宏块头解码还包括根据宏块的所属帧类型、运动矢量信息、残差 数据信息、划分信息,确定宏块类型。所述宏块数据解码包括根据所述宏块头解码确定的宏块类型,调用相应的码表;逐个像素地按照一定方式读取码流,解析所述码流得到变换系数;以所述变换系数为索引,查找所述码表得到量化系数level和游程rim数据对。优选地,在所述查找的码表中,所述level和所述rim数据对合并为一个11比特 的数据,其中高6比特是有符号的所述level,其范围是[- ,26];低5比特是无符号的所 述run,其范围是W,25]。一种视频宏块解码装置,包括宏块头解码单元和宏块数据解码单元;其中,所述宏 块头解码单元包括第一启动模块和第二启动模块,所述第一启动模块,用于当解码完宏块类型信息后,启动读取相应宏块运动信息 的操作;所述第二启动模块,用于当所述宏块头解码完毕后,启动帧预测操作和所述宏块数 据解码操作。进一步地,所述宏块头解码单元还包括宏块类型确定模块,用于根据解码出的宏块的所属帧类型、运动矢量信息、残差数 据信息、划分信息,确定宏块类型。所述宏块数据解码单元包括码表调用模块,用于根据所述宏块头解码单元确定的宏块类型,调用相应的码
3表;变换系数获取模块,用于逐个像素地按照一定方式读取码流,解析所述码流得到 变换系数 trans_coefficient ;查找模块,用于以所述变换系数trarncoefficient为索引,查找所述码表中的 量化系数level和游程rim数据对。优选地,所述宏块数据解码单元还包括码表合并模块,用于将码表中的量化系数level和游程rim数据对合并为一个11 比特的数据,其中高6比特是有符号的所述level,其范围是[_26二6],低5比特是无符号 的所述run,其范围是W,25]。由本发明实施例的技术方案可知,在所述宏块头解码中,当解码完宏块类型信息 后,通过启动读取相应宏块运动信息的操作,可以早一步启动直接类型或对称类型宏块的 直接存储器存取DMA操作,为后续解码做好准备;当宏块头解码完毕后,通过同时启动帧预 测操作和所述宏块数据解码操作,可以将帧预测操作与宏块数据解码并行操作;从而达到 了节省解码时间,提高解码效率的效果。进一步地,给出一种宏块类型定义表来重新定义宏块类型对应关系,通过在宏块 头解码中确定宏块类型,可以将具有相同类型的宏块进行类似的操作,减少了分块数量,避 免了对每一个子块都要进行不同的处理的弊端,简化了后期解码处理中的很多操作;以及 通过对码表中的level和run数据对的合并,可以一次性地将level和run同时查到,减少 了查表次数;从而也达到了节省解码时间,提高解码效率的效果。
下面将对实施例描述中所需要使用的附图作一简单地介绍。图1为本发明实施例提供的视频宏块解码方法一实施方式的示意图;图2为以AVS基准档为例本发明宏块解码方法的流程示意图;图3本发明实施例的宏块数据解码的示意图;图4为AVS基准档中在4 2 0格式下的宏块划分的示意图;图5为以AVS基准档为例本发明实施例的宏块数据解码流程图;图6为本发明实施例的提供的视频宏块解码装置的一实施方式结构图;图7为本发明实施例的提供的视频宏块解码装置的另一实施方式结构图。
具体实施例方式下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。如图1所示,本发明实施例提供的一种视频宏块解码方法,包括宏块头解码和宏 块数据解码;其中,在所述宏块头解码中,当解码完宏块类型信息后,启动读取相应宏块运动信息的 操作;当所述宏块头解码完毕后,启动帧预测操作和所述宏块数据解码操作。其中,所述 帧预测操作是指帧间运动矢量预测、帧内预测模式计算等操作。宏块的上一级划分单位为条带(Slice),当码流被放入FIFO缓存器当中,确定了条带信息后,根据宏块的码流特点,很容易地将宏块分成宏块头(Header)和宏块数据,而 宏块数据又可以细分为亮度数据(Luma)和色度数据(Chroma)。宏块解码即是对这三部分 进行可变长解码(Variable Length Decoding, VLD)。对宏块头解码可以得到当前的宏块 头信息(CUrr_MB_hfo),对宏块数据的亮度数据和色度数据解码后,还需要经进一步的反 扫描(Zig-Zag Scan)操作,得到当前宏块的变换系数信息(Curr_MB_C0ef)。如图2所示,在AVS标准基准档中,视频码流经过码流预处理模块(Bs_Pre_ Process)预处理后的数据流(BitMream FIFO)、条带级别信息(Slice Level Info)以及 可变长解码表(VLD_LUT)等信息作为宏块头解码的输入。经解码后,输出当前宏块头信息 (Curr_MB_Info)给宏块数据解码,并且输出一些控制后续操作的控制信号。宏块头内有该 宏块的所有信息,这些信息以一定的编码方式(例如AVS标准中采用了哥伦布编码)存储 在比特流里面,通过可变长解码(VLD)可以将这些信息解码出来。本发明实施例在解码宏块头过程中,定义了宏块类型解码完毕信号(MbType_ Done)。对于直接类型或对称类型的宏块,参考帧中相应位置的宏块运动信息需从外部存储 器中通过DMA(直接存储器存取)搬移到片内存储器。在解码完宏块类型(包括子块类型) 后,通过设置MbType_D0ne控制信号可以早一步启动DMA操作,去读取相应宏块运动信息, 为后续解码做好准备,从而可以节省解码时间,提高解码效率。并且,定义了宏块头解码完毕信号(VLD_Header_D0ne)。在宏块头解码完毕后,发 出该VLD_Header_D0ne控制信号,来启动帧间运动矢量预测、帧内预测模式计算等操作,同 时将所述VLD_Header_D0ne控制信号作为宏块数据解码的输入,启动宏块数据解码操作, 使帧预测与宏块数据解码并行操作,这样同样可以起到节省解码时间,提高解码效率的效^ ο仍如图2所示,在AVS标准基准档中,宏块数据解码的输入由三部分组成从码流 预处理模块出来的码流数据(BitMream FIFO),可变长解码表(VLD_LUT)以及宏块头解码 完毕信号(VLD_Header_D0ne)。依据这三部分信息进行数据解码,解码完成后,会输出当前 宏块的变换系数(CUrr_MB_C0ef)和宏块数据解码完成信号(VLD_Done)给后续解码使用。宏块数据解码包括亮度解码和色度解码两部分。其中,宏块亮度解码时又会判断 是帧内预测还是帧间预测来分别进行处理。为此,在本发明实施例的宏块头解码中还可以 包括根据宏块的所属帧类型、运动矢量信息、残差数据信息、划分信息,确定宏块类型。例如,可以给出如下一种宏块类型定义表(MB_TYPE_MAP)用一组^it的数值 (EDCBA)来表示宏块类型,定义如下
权利要求
1.一种视频宏块解码方法,其特征在于,包括宏块头解码和宏块数据解码;其中,在所 述宏块头解码中,当解码完宏块类型信息后,启动读取相应宏块运动信息的操作;当所述宏 块头解码完毕后,启动帧预测操作和所述宏块数据解码操作。
2.根据权利要求1所述的方法,其特征在于,所述启动读取相应宏块运动信息的操作 包括发出一个宏块类型解码完毕控制信号,启动读取相应宏块运动信息的操作。
3.根据权利要求1所述的方法,其特征在于,所述启动帧预测操作和所述宏块数据解 码操作包括发出一个宏块头解码完毕控制信号,启动帧预测操作;将所述宏块头解码完毕控制信号作为所述宏块数据解码的输入,启动所述宏块数据解 码操作。
4.根据权利要求1所述的方法,其特征在于,所述宏块头解码还包括根据宏块的所属帧类型、运动矢量信息、残差数据信息、划分信息,确定宏块类型。
5.根据权利要求4所述的方法,其特征在于,所述宏块数据解码包括根据所述宏块头解码确定的宏块类型,调用相应的码表;逐个像素地按照一定方式读取码流,解析所述码流得到变换系数;以所述变换系数为索引,查找所述码表得到量化系数level和游程rim数据对。
6.根据权利要求5所述的方法,其特征在于,在所述码表中,所述level和所述rim数 据对合并为一个11比特的数据,其中高6比特是有符号的所述level,其范围是[- ,26]; 低5比特是无符号的所述run,其范围是W,25]。
7.一种视频宏块解码装置,其特征在于,包括宏块头解码单元和宏块数据解码单元; 其中,所述宏块头解码单元包括第一启动模块和第二启动模块,所述第一启动模块,用于当解码完宏块类型信息后,启动读取相应宏块运动信息的操作;所述第二启动模块,用于当所述宏块头解码完毕后,启动帧预测操作和所述宏块数据 解码操作。
8.根据权利要求7所述的装置,其特征在于,所述宏块头解码单元还包括宏块类型确定模块,用于根据解码出的宏块的所属帧类型、运动矢量信息、残差数据信 息、划分信息,确定宏块类型。
9.根据权利要求8所述的装置,其特征在于,所述宏块数据解码单元包括码表调用模块,用于根据所述宏块头解码单元确定的宏块类型,调用相应的码表;变换系数获取模块,用于逐个像素地按照一定方式读取码流,解析所述码流得到变换 系数;查找模块,用于以所述变换系数为索引,查找所述码表得到量化系数level和游程rim 数据对。
10.根据权利要求9所述的装置,其特征在于,所述宏块数据解码单元还包括码表合并模块,用于将码表中量化系数level和游程rim数据对合并为一个11比特的 数据,其中高6比特是有符号的所述level,其范围是[_26二6],低5比特是无符号的所述 run,其范围是W,25]。
全文摘要
本发明公开了一种视频宏块解码方法及装置,涉及视频编解码领域,能够节省解码时间,提高解码效率。所述视频宏块解码方法包括宏块头解码和宏块数据解码;在所述宏块头解码中,当解码完宏块类型信息后,启动读取相应宏块运动信息的操作;当所述宏块头解码完毕后,启动帧预测操作和所述宏块数据解码操作。进一步地,通过在宏块头解码中给出一种宏块类型定义表重新定义宏块类型对应关系,可以将具有相同类型的宏块进行类似的操作,减少了分块数量,避免了对每一个子块都要进行不同的处理的弊端,简化了后期解码处理中的很多操作;以及通过对码表中的level和run数据对的合并,可以一次性地将level和run同时查到,减少了查表次数。
文档编号H04N7/26GK102075746SQ20101057440
公开日2011年5月25日 申请日期2010年12月6日 优先权日2010年12月6日
发明者刘西富, 陈世雷 申请人:青岛海信信芯科技有限公司