一种确定运动矢量代价的方法及装置制造方法

文档序号:7811721阅读:133来源:国知局
一种确定运动矢量代价的方法及装置制造方法
【专利摘要】本发明公开了一种便于硬件实现的确定运动矢量代价的方法及装置。所述确定运动矢量代价的方法,包括:针对待编码的当前帧所分成的每一个宏块,根据当前宏块使用的量化参数QP值,选取需要使用的查找表,所述查找表中记录MV的各取值范围以及每一个取值范围所映射的COST值,且随着MV的取值从小到大的变化,MV的取值范围逐渐变大;根据当前宏块使用的MV值、以及选取出的需要使用的查找表,确定所述MV值对应的COST值。使用本方案,可以有效降低运动矢量代价计算部分的硬件逻辑的复杂度,从而获得相对较低的功耗与较小的硅片面积。
【专利说明】一种确定运动矢量代价的方法及装置

【技术领域】
[0001] 本发明涉及运动估计【技术领域】,尤其涉及一种确定运动矢量代价的方法及装置。

【背景技术】
[0002] 运动估计(Motion Estimation)是视频压缩中广泛使用的技术,同时是视频压缩 过程中最核心且运算量最大的部分之一,如何高质量与高效率的进行运动估计至关重要。 运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块(Macroblocks),并 认为宏块内所有象素的位移量都相同,然后对每个宏块到参考帧(REF)某一给定的特定搜 索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相 对位移即为运动矢量(Motion Vect〇r,MV)。视频压缩的时候,只需保存运动矢量和残差数 据就可以完全恢复出当前块。
[0003] H. 264 是 ITU (International Telecommunication Unite,国际通信联盟)和 MPEG (Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。X264 是开源的且公认的最高质量的H. 264编解码器的实现,目前获得了广泛的认可与使用,即 便如此,巨大的运算量使得高分辨率的实时视频录制在软件层面也难以实现,专用集成电 路则是较为可行的实现方式之一。然而如何在电路级实现如此庞大的逻辑规模也有着较大 的挑战,将算法与硬件的特点相结合,从中找到巧妙的方法成为了大家努力研究的方向之 〇
[0004] X264中采用了基于最佳匹配块的运动估计算法,运动估计的过程即是计算与寻求 最优匹配块代价(COST)的过程。匹配块的代价通常由当前块的残差数据代价、运动矢量代 价与参考帧代价组成。匹配块的代价一定程度上代表着当前块编码后所需花费码字的代价 (视频压缩后的尺寸即由一个个的码字组成),代价越低则意味着当前运动矢量下的当前 块能取得越好的编码效果。计算各代价的过程均具有一定的复杂度。
[0005] X264中运动矢量代价由公式[1]确定:
[0006] MV_C0ST = lambda* (log2f(MV |+1) *2+0. 718+ !! i)+5f [1]
[0007] 其中,MV_C0ST表示运动矢量代价,lambda表示拉格朗日系数,由编码过程中的量 化参数(Quantization Parameter, QP)映射得到。从上述公式[1]可以看到计算过程中 包含有对数计算,对数计算运算量十分庞大,为此,X264中又进一步在编码的初始化阶段预 先将所有MV与QP相对应的COST值预先计算并保存在查找表中,在后续实际的运动估计过 程中通过查表直接得到。其中,每一个QP值对应一张查找表,每一张查找表用于表示MV与 COST之间的对应关系,现有技术中,MV与COST之间是--对应关系。
[0008] 这种处理方式在软件层面固然是一个很好的方法,然而在硬件层面这将给硬件设 计带来一定的挑战,考虑到H. 264标准中QP的取值范围是0?51,相应的,对应52张查找 表;而MV的取值范围更大,以MV±2048为例,则整个查找表的尺寸将超过200Kbyte。具体 实施中,若不采用查找表而使用动态计算的方式会由于对数计算而使得硬件电路变得不切 实际;若采用查找表,如将查找表置于硬件内部则因为表的尺寸而占用大块的硬件资源,如 将查找表置于外存中动态取值则将消耗额外的外存带宽,且又会因为外存访问延迟而影响 性能。综上,亟待提供一种便于硬件实现的确定运动矢量代价的方案。


【发明内容】

[0009] 本发明实施例提供一种便于硬件实现的确定运动矢量代价的方法及装置,用以有 效降低运动矢量代价计算部分的硬件逻辑的复杂度,从而获得相对较低的功耗与较小的硅 片面积。
[0010] 本发明实施例提供一种确定运动矢量代价的方法,包括:
[0011] 针对待编码的当前帧所分成的每一个宏块,根据当前宏块使用的量化参数QP值, 选取需要使用的查找表,所述查找表中记录MV的各取值范围以及每一个取值范围所映射 的COST值,且随着MV的取值从小到大的变化,MV的取值范围逐渐变大;
[0012] 根据当前宏块使用的MV值、以及选取出的需要使用的查找表,确定所述MV值对应 的COST值。
[0013] 基于同一技术构思,本发明实施例提供一种确定运动矢量代价的装置,包括:
[0014] 存储模块,用于存储各量化参数QP值对应的查找表,所述查找表中记录MV的各取 值范围以及每一个取值范围所映射的COST值,且随着MV的取值从小到大的变化,MV的取 值范围逐渐变大;
[0015] 选取模块,用于针对待编码的当前帧所分成的每一个宏块,根据当前宏块使用的 量化参数QP值,从所述存储模块中选取需要使用的查找表;
[0016] 确定模块,用于根据当前宏块使用的MV值、以及选取出的需要使用的查找表,确 定所述MV值对应的COST值。
[0017] 本发明实施例提供的确定运动矢量代价的方法及装置,采用特殊结构的查找表, 查找表中记录MV的各取值范围以及每一个取值范围所映射的COST值,且随着MV的取值从 小到大的变化,MV的取值范围逐渐变大,将现有技术中MV值与COST值--对应的映射关 系,改变为固定取值范围内的若干MV与一个COST值相对应的映射关系,并且取值较大的MV 对应的MV的取值范围也较大,从而在显著降低单张查找表尺寸的同时保持有效的计算精 度。由于单张查找表尺寸的显著降低,从而有效降低了整个查找表的尺寸,使得运动矢量代 价计算部分的硬件逻辑的复杂度降低,从而获得相对较低的功耗与较小的硅片面积。
[0018] 本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。

【专利附图】

【附图说明】
[0019] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施 例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0020] 图1为本发明实施例中确定运动矢量代价的方法流程图;
[0021] 图2为本发明实施例中确定运动矢量代价的装置框图;
[0022] 图3为本发明实施例中获取模块的一种可能结构示意图。

【具体实施方式】
[0023] 本发明实施例提供一种便于硬件实现的确定运动矢量代价的方法及装置,用以有 效降低运动矢量代价计算部分的硬件逻辑的复杂度,从而获得相对较低的功耗与较小的硅 片面积。以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优 选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请 中的实施例及实施例中的特征可以相互组合。
[0024] 本发明实施例提供的确定运动矢量代价的方案,将对运动估计中运动矢量代价计 算部分进行简化设计,具体包括:
[0025] 简化设计策略一
[0026] 考虑到实际编码中一帧内采用的不同数值的QP(量化参数)的个数通常不会太 多,本发明实施例中,设定一帧的基准QP,并且配置基准QP的波动范围,编码过程中只会在 基准QP的基础上,在波动范围内上下波动使用有限数量的QP值,基准QP及其波动范围内 的各QP值分别对应一张查找表,通过控制波动范围,可以控制QP的数量,有限数量的QP使 得查找表的数量减少,从而有效降低了整个查找表的尺寸。
[0027] 简化设计策略二
[0028] 考虑到通常的实际视频录制过程中MV (运动矢量)的实际分布规律,通常MV取值 较小的个数占的比重较高,另外计算COST(代价)过程中由于对数的引入,COST值的变化 具有随着MV的取值从小到大的变化而越来越趋缓的特点。基于上述考虑,本发明实施例提 供了一套特殊结构的查找表,查找表中记录MV的各取值范围以及每一个取值范围所映射 的COST值,且随着MV的取值从小到大的变化,MV的取值范围逐渐变大。将现有技术中MV 值与COST值一一对应的映射关系,改变为固定取值范围内的若干MV与一个COST值相对应 的映射关系,并且取值较大的MV对应的MV的取值范围也较大,从而在显著降低单张查找表 尺寸的同时保持有效的计算精度。
[0029] 具体实施中,查找表可以采用一种较佳结构,即随着MV的取值从小到大的变化, MV的取值范围呈2的指数函数趋势增长,如表1所示,以MV取值0?2047为例进行说明。
[0030] 表 1
[0031]

【权利要求】
1. 一种确定运动矢量代价的方法,其特征在于,包括: 针对待编码的当前帧所分成的每一个宏块,根据当前宏块使用的量化参数QP值,选 取需要使用的查找表,所述查找表中记录MV的各取值范围以及每一个取值范围所映射的 COST值,且随着MV的取值从小到大的变化,MV的取值范围逐渐变大; 根据当前宏块使用的MV值、以及选取出的需要使用的查找表,确定所述MV值对应的 COST 值。
2. 如权利要求1所述的方法,其特征在于,随着MV的取值从小到大的变化,MV的取值 范围呈2的指数函数趋势增长,其中: 当MV的取值为0?31时,每一个MV对应一个COST值; 当MV的取值为32?63时,每两个MV对应一个COST值; 当MV的取值为64?127时,每四个MV对应一个COST值; 当MV的取值为128?255时,每八个MV对应一个COST值; 当MV的取值为256?511时,每十六个MV对应一个COST值; 当MV的取值为512?1023时,每三十二个MV对应一个COST值; 当MV的取值为1024?2047时,每六十四个MV对应一个COST值; 依此类推。
3. 如权利要求1或2所述的方法,其特征在于,预先为当前帧配置基准QP及其波动范 围,并且仅存储基准QP及其波动范围内各QP值对应的查找表,以及 所述根据当前宏块使用的量化参数QP值,选取需要使用的查找表,具体包括: 根据当前宏块使用的量化参数QP值、以及预先为当前帧配置的基准QP及其波动范围, 从所述基准QP及其波动范围内各QP值对应的查找表中选取需要使用的查找表。
4. 如权利要求3所述的方法,其特征在于,所述根据当前宏块使用的QP值、以及预先为 当前帧配置的基准QP及其波动范围,从所述基准QP及其波动范围内各QP值对应的查找表 中选取需要使用的查找表,具体包括: 计算当前宏块使用的QP值与所述基准QP之间的差值,其中,当前帧中每一个宏块使用 的QP在所述基准QP及其波动范围所限定的范围内取值; 根据所述差值在所述基准QP及其波动范围内进行索引,选取所述差值索引的QP所对 应的查找表作为需要使用的查找表。
5. 如权利要求4所述的方法,其特征在于,所述基准QP的波动范围包括[-4, 3]或者 [-3, 4]。
6. -种确定运动矢量代价的装置,其特征在于,包括: 存储模块,用于存储各量化参数QP值对应的查找表,所述查找表中记录MV的各取值范 围以及每一个取值范围所映射的COST值,且随着MV的取值从小到大的变化,MV的取值范 围逐渐变大; 选取模块,用于针对待编码的当前帧所分成的每一个宏块,根据当前宏块使用的量化 参数QP值,从所述存储模块中选取需要使用的查找表; 确定模块,用于根据当前宏块使用的MV值、以及选取出的需要使用的查找表,确定所 述MV值对应的COST值。
7. 如权利要求6所述的装置,其特征在于,所述存储模块存储的查找表中,随着MV的取 值从小到大的变化,MV的取值范围呈2的指数函数趋势增长,其中: 当MV的取值为0?31时,每一个MV对应一个COST值; 当MV的取值为32?63时,每两个MV对应一个COST值; 当MV的取值为64?127时,每四个MV对应一个COST值; 当MV的取值为128?255时,每八个MV对应一个COST值; 当MV的取值为256?511时,每十六个MV对应一个COST值; 当MV的取值为512?1023时,每三十二个MV对应一个COST值; 当MV的取值为1024?2047时,每六十四个MV对应一个COST值; 依此类推。
8. 如权利要求6或7所述的装置,其特征在于, 所述存储模块中存储预先为当前帧配置的基准QP及其波动范围内各QP值对应的查找 表;以及 所述选取模块,具体用于根据当前宏块使用的量化参数QP值、以及预先为当前帧配置 的基准QP及其波动范围,从所述存储模块中选取需要使用的查找表。
9. 如权利要求8所述的装置,其特征在于,所述选取模块,具体包括: 计算单元,用于计算当前宏块使用的QP值与所述基准QP之间的差值,其中,当前帧中 每一个宏块使用的QP在所述基准QP及其波动范围所限定的范围内取值; 索引单元,用于根据所述计算单元计算出的差值在所述基准QP及其波动范围内进行 索引,从所述存储模块中选取所述差值索引的QP所对应的查找表作为需要使用的查找表。
10. 如权利要求9所述的装置,其特征在于,所述基准QP的波动范围包括[-4, 3]或者 [-3, 4]。
【文档编号】H04N19/513GK104244003SQ201410406661
【公开日】2014年12月24日 申请日期:2014年8月18日 优先权日:2014年8月18日
【发明者】翟云 申请人:北京君正集成电路股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1