一种高清编码器的运动估计搜索窗数据复用方法

文档序号:7893981阅读:347来源:国知局
专利名称:一种高清编码器的运动估计搜索窗数据复用方法
技术领域
本发明涉及数字视频编解码技术领域,尤其涉及一种高清编码器的运动估计搜索窗数据复用方法。
背景技术
视频编解码技术是数字化音视频产业的关键技术,它对国民经济与社会发展起着至关重要的作用,是信息产业三大组成部分之一。当今,用户对高质量视频的需求愈加强烈,致使视频图像传输码率日益增高,伴随着移动视频设备的发展及信道带宽的限制,运营商希望能够使用较低的码率传递高质量的视频。致使视频信源的压缩趋向于采用具有高复杂度的视频压缩算法,以获得更高的压缩性能。但这同时这也给视频编码器的片上存储的设计和带宽利用提出了更高的要求。目前主流的视频编码器大多采用基于块的混合编码框架,运动估计(包括整像素运动估计IME和分像素运动估计FME)是混合视频编码框架中对性能影响最为严重的一个环节,同时也是视频编码系统中数据预取复杂度及资源消耗最高的模块,大约消耗整个编码器70%的带宽资源。视频分辨率的提高及搜索窗范围的增大给片上存储和搜索窗预取算法的设计和实现带来了极大的挑战。目前运动估计搜索窗的数据复用方法大致有以下几类第一类是搜索窗内水平方向数据复用,当前编码宏块(大小为N*N)与搜索窗内的宏块进行逐个匹配时,相邻候选匹配宏块有N-I列的部分重叠,这部分数据可以进行复用,每更新一个高度为N像素的宏块列可进行一次匹配。这种方法所需的存储空间为一个N*N像素的宏块。第二类是搜索窗内垂直方向数据复用,垂直方向上的相邻候选匹配宏块有N-I行的部分重叠,这部分数据可以进行复用,每更新搜索窗内一行数据可以进行一个宏块行的匹配。第三类方法是相邻搜索窗水平方向数据复用,水平方向上相邻编码宏块的搜索窗有部分重叠,这部分可以进行数据重用。在编码时,每更新搜索窗一列数据,整像素运动估计模块可以完成一个宏块的运动估计运算。第四类方法是相邻搜索窗垂直方向数据复用,垂直方向上相邻编码宏块的搜索窗有部分重叠,重叠部分可以进行数据复用。在编码时每更新图像的一行,整像素运动估计模块可以完成一行宏块的运动估计运算。第一类和第二类方法所需的片上存储空间较小,但存储带宽较高;第四类方法所需存储带宽较大,但需很大的缓存空间。因此第一、二、四类方法在实际中较少运用,只有第二种方法能在存储空间和存储带宽之间取得较好的平衡。

发明内容
本发明解决的技术问题在于如何提高运动估算数据复用率。、
为了解决以上问题,本发明公开了一种高清编码器的运动估计搜索窗数据复用方法,包括如下步骤编码器装窗初始化步骤,从片外存储读取若干宏块列,之后每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块;编码器装窗稳定步骤,每更新一列搜索窗数据可供整像素运动估计模块编码3个宏块;编码器装窗结束步骤,编码至最后一个扫描组,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。 进一步,作为一种优选,所述编码器装窗初始化步骤中编码顺序为HF1V1型或HF3V2型,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。进一步,作为一种优选,所述编码器装窗稳定步骤中编码顺序为HF5V3型,每更新一列搜索窗宏块数据可供整像素运动估计模块编码3个宏块。进一步,作为一种优选,所述编码器装窗结束步骤中编码器已编码至最后一个扫描组,编码顺序为HF1V1型或HF3V2型,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。进一步,作为一种优选,所述编码器装窗稳定步骤,在两个扫描组之间转换时,编码扫描顺序保持不变。进一步,作为一种优选,将图像划分为若干扫描组,最后一个扫描组的高度可能是
3、2或I个宏块,除此之外的扫描组高度均为3个宏块。本发明所述的HFniVn型编码顺序是指,在垂直方向上扫描开始之前先编码扫描水平方向上的m个连续的宏块,然后η个宏块在垂直扫描中被依次处理。本发明中m = 5,n =3,它包含HF5V3、HF3V2^HF1V1三种扫描类型,HF5V3型扫描顺序是扫描稳定后的状态,而HF3V2和HF1V1型扫描仅出现于以下三种少数状态(I)流水线初始化。(2)两个扫描组的转换。(3)最后一个扫描带高度小于3通过对编码扫描顺序的合理安排,充分利用了搜索窗在水平方向和垂直方向上的重叠性,在有限片上存储空间的条件下,最大程度满足了高清编码运动估计搜索所需的存储带宽需求。该装置能够满足各种分辨率下视频编码运动估计搜索需要的存储空间和存储带宽,提高了有限的存储资源的利用率。


当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,其中图1,本发明装载运动估计搜索窗流程图;图2,本发明装载搜索窗初始化步骤示意图;图3A,本发明装载首个宏块搜索窗示意图3B,本发明装载相邻宏块搜索窗示意图;图4,本发明编码扫描HF1V1型示意图;图5,本发明编码扫描HF3V2型示意图;
图6,本发明装载运动估计搜索窗稳定步骤示意图;图7,本发明编码扫描HF5V3型示意图;图8A,本发明编码扫描组转换时当前扫描组搜索窗示意图;图8B,本发明编码扫描组转换时编码顺序示意图;图8C,本发明编码扫描组转换时下一扫描组搜索窗不意图;图9,本发明装载运动估计搜索窗结束步骤示意图;图10A,本发明运动估计编码扫描最后一个扫描组高度为3的示意图;图10B,本发明运动估计编码扫描最后一个扫描组闻度为2的不意图;图10C,本发明运动估计编码扫描最后一个扫描组高度为I的示意图。
具体实施例方式以下参照图1-10对本发明的实施例进行说明。为使上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。如图I所示,一种高清编码器的运动估计搜索窗数据复用方法,包括如下步骤编码器装窗初始化步骤S100,从片外存储读取读取高度为SRh+l宏块列,之后每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块;编码器装窗稳定步骤S101,每更新一列搜索窗数据可供整像素运动估计模块编码3个宏块;编码器装窗结束步骤S102,编码至最后一个扫描组,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。图2,本发明装载搜索窗初始化步骤示意图,包括以下步骤,装载首个宏块搜索窗步骤S201,为一帧图像的第一个宏块装载搜索窗数据。HF1V1型编码步骤S202,首个宏块搜索窗装载完成后编码器进入HF1V1型扫描顺序,每装载一列搜索窗数据可供编码器编码I个宏块。HF3V2型编码步骤S203,步骤S202完成后编码器进入HF3V2型扫描顺序,每装载一列搜索窗数据可供编码器编码2个宏块。图3A,本发明装载首个宏块搜索窗示意图,从图像第一行第一个宏块开始编码,为第一个宏块装载运动搜索所需的搜索窗数据。如图所示,第一个宏块的搜索窗部分位于图像外,这部分是垃圾数据,不需要从存储器里读取数据,只需装载位于图像内的一部分。图3B,本发明装载相邻宏块搜索窗示意图,由图3A可知,初始时需要装载SRH+1 (SRH :搜索窗垂直方向搜索范围)列宏块数据,水平方向上相邻编码宏块所需搜索窗有2*SRH列是可以复用的,因此在ME模块启动前装载SRH+1列宏块即可完成初始化,在整像素运动估计模块启动后每更新一列宏块数据即可进行相应数量宏块的运动搜索。图4,本发明运动估计编码扫描HF1V1型示意图,编码器刚刚启动后,编码顺序类似光栅扫描,在水平方向上依次编码。每更新一列宏块,编码器可编码一个宏块。
图5,本发明运动估计编码扫描HF3V2型示意图,HF1V1型编码结束后进入HF3V2型编码,如图所示,宏块3-4、5-6都属于这种编码顺序。这种编码顺序完全复用垂直方向上两个宏块的搜索窗数据,部分复用水平方向上相邻宏块的搜索窗数据。每更新一列宏块数据可编码两个宏块。图6,本发明装载运动估计搜索窗稳定态步骤示意图,包括以下步骤,HF5V3型编码步骤S601,HF3V2型编码顺序结束后进入HF5V3型编码,每装载一列搜索窗数据可供编码器编码3个宏块,这是占整个装载过程大部分的稳定状态。编码扫描组转换步骤S602,当前扫描组的搜索窗到达图像边界时,搜索窗装载操 作开始转换到下一扫描组。图7,本发明运动估计编码扫描HF5V3型示意图,HF3V2型编码结束后进入HF5V3型编码,这是编码器进入稳定状态后的扫描顺序,图示宏块7-8-9、10-11-12都是属于这种顺序。HF5V3型扫描完全复用了垂直方向上三个宏块的搜索窗数据,部分复用了水平方向上的搜索窗数据。每更新一列数据可编码三个宏块。图8A,本发明运动估计编码扫描组转换时当前扫描组搜索窗示意图,当搜索窗到达图像右侧边界时,扫描组内还剩余3*SRH+9个宏块尚未编码。搜索窗继续向右移动时有一部分越出图像边界,这部分数据是垃圾数据,不需要从存储器中装载,搜索窗内数据足够当前扫码组剩余的3*SRH+9个宏块进行运动搜索编码,不需要再更新搜索窗数据。图SB,本发明运动估计编码扫描组转换时编码顺序示意图,搜索窗到达图像边界后,当前扫码组内剩余宏块编码不需要再更新搜索窗数据,这部分时间开始为下一扫描组编码装载搜索窗数据。为与之前装窗节奏保持一致,为下一扫描组每装载一列搜索窗数据当前扫码组内编码三个宏块。图SC,本发明运动估计编码扫描组转换时下一扫描组搜索窗示意图,按照上述装窗步骤,当前扫描组内剩余宏块全部编码完成时,已经为下一扫描组装载了 SRH+3列搜索窗数据。当SRH = 8MB时,当前扫码组编码结束时,下一扫描组开始3个宏块所需的11列搜索窗数据已经准备好,每更新一列搜索窗数据可进行下面三个宏块的编码,由此完成扫描组转换。图9,本发明装载运动估计搜索窗结束态过程示意图,包括以下步骤,判断最后一个扫描组高度步骤S901,根据图像高度的不同判断最后一个扫描组的高度,可能是3,2或I。扫描组高度为3步骤S902,最后一个扫描组高度为3,和上一个扫描组相同,扫描方式不变。扫描组高度为2步骤S903,最后一个扫描组高度为2,扫描方式发生变化。扫描组高度为I步骤S904,最后一个扫描组高度为I,扫描方式发生变化。图10A,本发明运动估计编码扫描最后一个扫描组闻度为3的不意图,当编码至最后一个扫描组时,编码扫描顺序与两个扫描组转换时的情况一致。编码器始终保持更新一列搜索窗数据编码三个宏块的节奏,直至搜索窗到达图像右侧边界后,搜索窗不再更新数据,搜索窗内数据可以供剩余宏块完成编码,编码完成后一帧图像编码结束。图10B,本发明运动估计编码扫描最后一个扫描组高度为2的示意图,根据图像高度的不同,最后一个扫码组的高度可能不是3的整数倍。当高度为2时,上一扫描组在扫描转换时已经为它更新了 SRH+3列宏块数据。最后一个扫描组开始编码时,编码器保持更新一列宏块搜索窗数据编码三个宏块的节奏,之后进入更新一列数据编码两个宏块的状态,直至搜索窗到达图像边界停止更新搜索窗数据。图10C,本发明运动估计编码扫描最后一个扫描组闻度为I的不意图,最后一个扫码组开始编码时,搜索窗每更新一列宏块数据可供编码器编码一个宏块,直至搜索窗到达图像边界。如上所述,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发 明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。
权利要求
1.一种高清编码器的运动估计搜索窗数据复用方法,其特征在于, 包括如下步骤 编码器装窗初始化步骤,从片外存储读取若干宏块列,之后每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块; 编码器装窗稳定步骤,每更新一列搜索窗数据可供整像素运动估计模块编码3个宏块; 编码器装窗结束步骤,编码至最后一个扫描组,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。
2.根据权利要求I所述的一种高清编码器的运动估计搜索窗数据复用方法,其特征在于,所述编码器装窗初始化步骤中编码顺序为HF1V1型或HF3V2型,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。
3.根据权利要求I所述的一种高清编码器的运动估计搜索窗数据复用方法,其特征在于,所述编码器装窗稳定步骤中编码顺序为HF5V3型,每更新一列搜索窗宏块数据可供整像素运动估计模块编码3个宏块。
4.根据权利要求I所述的一种高清编码器的运动估计搜索窗数据复用方法,其特征在于,所述编码器装窗结束步骤中编码器已编码至最后一个扫描组,编码顺序为HF1V1型或HF3V2型,每更新一列搜索窗数据可供整像素运动估计模块编码I个或2个宏块。
5.根据权利要求I所述的一种高清编码器的运动估计搜索窗数据复用方法,其特征在于,所述编码器装窗稳定步骤,在两个扫描组之间转换时,编码扫描顺序保持不变。
6.根据权利要求4所述的一种高清编码器的运动估计搜索窗数据复用方法,其特征在于,将图像划分为若干扫描组,最后一个扫描组的高度可能是3、2或I个宏块,除此之外的扫描组高度均为3个宏块。
全文摘要
本发明公开了一种高清编码器的运动估计搜索窗数据复用方法,包括如下步骤编码器装窗初始化步骤,从片外存储读取若干宏块列,之后每更新一列搜索窗数据可供整像素运动估计模块编码1个或2个宏块;编码器装窗稳定步骤,每更新一列搜索窗数据可供整像素运动估计模块编码3个宏块;编码器装窗结束步骤,编码至最后一个扫描组,每更新一列搜索窗数据可供整像素运动估计模块编码1个或2个宏块。本发明有效提高了数据的复用率,充分利用了有限的数据带宽,能够以更低的成本满足编码器的存储需求。本发明适用于多级流水线结构的编码,尤其适用于高清分辨率编码。
文档编号H04N7/26GK102647592SQ201210115590
公开日2012年8月22日 申请日期2012年4月18日 优先权日2012年4月18日
发明者周荣蔚, 解晓东, 贾惠柱, 高文, 魏开进 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1