专利名称:用于宏块组结构的两阶段编码的参考缓存的存储方法
技术领域:
本发明属于信号处理中的视频编解码领域,特别涉及参考帧的管理技术。
背景技术:
传统的视频编码标准如ITU制定的H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4等都是建立在混合编码,即HybridCoding框架之上的。所谓混合编码框架是一种混合时间空间视频图象编码方法,该方法包括先进行帧内、帧间的预测,以消除时间域的相关性;然后对原始图象与预测结果的残差进行二维变换(采用离散余弦变换或其它线性变换),消除空间相关性;然后进行熵编码,去除统计上的冗余度。
混合编码框架中包括了帧内编码帧编码和帧间编码帧编码两种不同的编码方法。传统的帧内编码帧方法编码过程如下对原始图象数据进行二维变换(采用离散余弦变换或整型变换);然后在变换域中对变换系数进行量化;最后进行熵编码,即Huffman编码或者算术编码等。帧间编码帧方法的编码过程如下采用基于运动补偿的帧间预测得到预测块,接着对原始块和帧间预测得到的预测块之间的残差块进行二维变换,再对变换域系数进行量化,最后进行熵编码。
所谓基于运动补偿的帧间预测就是以一帧或多帧重建图像帧为参考,通过在参考帧移动象素,寻找与当前块最匹配的块作为帧间预测得到的预测块,并把参考帧中最匹配的块与当前块之间的位移偏量记录下来作为运动矢量。
作帧间预测时作为参考的一帧或多帧重建图像帧存放在一定大小的参考缓存中。
在avs视频编码标准中,帧间预测时所用到的一帧或多帧重建图像帧便按照时间顺序放在参考缓存里面,如图1所示,重建图像帧上面的编号越小,表示在时间上离当前帧越近。
在混合编码框架中有三种类型的编码帧帧内编码帧(I帧)和帧间编码帧(P帧)以及双向预测帧(B帧),对I帧编码时,帧内所有宏块全部采用帧内编码帧方法进行编码。P帧和B帧内每个宏块分别采用帧内编码帧编码和帧间编码帧编码两种不同的编码方法进行编码,比较二者的编码代价,采用编码代价小的作为最终的编码方法。P帧和B帧的区别在于做基于运动补偿的帧间预测时,P帧的参考缓存里的重建图像帧都是在时间上先于当前图像帧的,而B帧参考缓存里的重建图像帧既有时间上先于当前图像帧的重建图像帧,也有时间上后于当前图像帧的重建图像帧。
本申请的发明人提出了一种基于宏块组(Macroblock Group)结构的两阶段编码方法。所谓基于宏块组(Macroblock Group)结构的分阶段预测编码方法是利用宏块组数据结构的特点,采用两个阶段对宏块组进行预测编码。这种预测编码方法已经被avs(先进音视频编码标准)所采纳。
在上述预测编码方法中,定义的宏块组为对于逐行扫描的原始图象,一个连续的32象素×32象素的方块构成一个原始宏块组;对于隔行扫描的原始图象,先将时间上相邻的奇场和偶场,或偶场和奇场图象按自然空间位置拼成帧图象,然后在拼成的帧图象中一个连续的32象素×32象素的方块就构成一个原始宏块组,如图2所示。
原始宏块组由4个16×16的宏块构成,如图3a所示,上层两个宏块为NS1,NS2宏块,下层两个宏块为NS3和NS4宏块。具体定义为NS1(x,y)=MBG(x,y),NS2(x,y)=MBG(x+16,y),NS3(x,y)=MBG(x,y+16),NS4(x,y)=MBG(x+16,y+16),x,y=1,…,16,对原始宏块组进行垂直1/2抽样,就得到垂直派生宏块组VS,如图3c所示,上层两个宏块为VS1,VS2宏块,下层两个宏块为VS3和VS4宏块。这种派生宏块组已经被avs视频编码标准所采纳。
具体定义为VS1(x,y)=MBG(x,2y),VS2(x,y)=MBG(x+16,2y),VS3(x,y)=MBG(x,2y+1),VS4(x,y)=MBG(x+16,2y+1),x,y=1,…,16,对原始宏块组进行水平1/2抽样,就得到水平派生宏块组HS,如图3b所示,上层两个宏块为HS1,HS2宏块,下层两个宏块为HS3和HS4宏块。具体定义为HS1(x,y)=MBG(2x,y),HS2(x,y)=MBG(2x+1,y),HS3(x,y)=MBG(2x,y+16),HS4(x,y)=MBG(2x+1,y+16),x,y=1,…,16,对原始宏块组进行垂直水平抽样,就得到垂直水平派生宏块组VHS,如图3d所示,上层两个宏块为VHS1,VHS2宏块,下层两个宏块为VHS3和VHS4宏块。具体定义为VHS1(x,y)=MBG(2x,2y),VHS2(x,y)=MBG(2x+1,2y),VHS3(x,y)=MBG(2x,2y+1),VHS4(x,y)=MBG(2x+1,2y+1),x,y=1,…,16,在上述编码方法中不同类型的宏块组中有些宏块在第一阶段编码,有些在第二阶段编码。区分宏块编码阶段属性的原则是原始宏块组NS中每个宏块必须编码才能获得比较满意的重建宏块,所以在这种宏块组中每个宏块都必须在第一阶段编码。在派生宏块组中,如果这个宏块被其他的已编码宏块通过插值能够获得比较满意的重建宏块,则这个宏块留在第二阶段编码,否则在第一阶段编码。例如在被avs视频标准采用的派生宏块组VS中,VS3宏块可以由VS1宏块插值得到其比较满意的重建宏块,VS4宏块可以由VS2宏块插值得到其比较满意的重建宏块。因此在这种类型宏块组中,VS1宏块和VS2宏块在第一阶段编码,VS3宏块和VS4宏块在第二阶段编码。派生宏块组HS中,HS2宏块可以由HS1宏块插值得到其比较满意的重建宏块,同样HS4宏块可以由HS3宏块插值得到其比较满意的重建宏块。因此在这种类型的派生宏块组中,HS1宏块和HS3宏块在第一阶段编码,HS2宏块和HS4宏块在第二阶段编码。
同理,派生宏块组VHS中,VHS1宏块和VHS3宏块放在第一阶段编码,VHS2宏块和VHS4宏块放在第二阶段编码。
上述编码方法中,参考缓存的存储方法采用了传统的按时间顺序的存储方法,即在第一阶段编码完成后,可以得到当前帧的一个近似的重建图像帧,包括由第一阶段编码后重建的图像部分和根据周围重建图像块经过插值后得到插值重建图像部分。因此在第二阶段编码时可以把这个近似的重建帧作为参考帧。然而由于现有的avs视频编解码标准中,参考缓存里参考帧按时间顺序排列,且数量是一定的,所以,在加入这个参考帧的同时去掉离当前帧最远的那个参考帧。因为由第一阶段编码得到的当前帧的重建图像只是一个近似的重建帧,在参考缓存里,简单的加入这个近似的重建帧,去掉最远的参考帧将会在第二阶段编码时降低预测的精度,从而影响编码效率。
发明内容
本发明的目的是为了克服已有帧间预测的参考帧管理技术的不足之处,针对基于宏块组结构的两阶段编码,提出了一种新的参考缓存的存储方法。这样将有效的提高基于宏块组结构的两阶段编码的编码效率,从而提高整个视频信号的压缩效率,可应用于混合编码。
本发明提出的一种用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法,原始宏块组NS中的每个宏块都在第一阶段编码,其它类型的派生宏块组VS、HS、VHS中的宏块分别在第一阶段或第二阶段编码;在第一阶段编码时,参考缓存里的一个或多个重建图像帧按照时间顺序排列,时间上离当前帧最近的为参考缓存的最近端,时间上离当前帧最远的为参考缓存的最远端;在第二阶段编码时,得到当前帧的一个近似的重建图像帧,在第一阶段已经编码重建的宏块构成这个近似重建图像帧的上层编码重建图像帧,在第一阶段经过插值重建的宏块构成这个近似重建帧的下层插值重建图像帧;其特征在于,将所述近似重建图像帧的上层编码重建图像帧放在参考缓存的最近端,将下层插值重建图像帧扔掉或放在参考缓存的最远端。
本发明的原理在基于宏块组结构的两阶段预测编码方法中,有些宏块在第一阶段编码,有些在第二阶段编码,但是在第一阶段编码完成后,得到当前帧的一个近似的重建图像帧,在第一阶段已经编码重建的宏块构成这个近似重建图像帧的上层编码重建图像帧,在第一阶段经过插值重建的宏块构成这个近似重建帧的下层插值重建图像帧。上层编码重建图像帧重建质量高,而由插值得到的下层插值重建图像帧只是一个近似的重建图像,重建质量差。基于这个特点,本发明将重建质量高的图像帧放在参考缓存的最近端,将重建质量低的图像帧扔掉或放在参考缓存的最远端。这样就能有效减小参考时的编码代价,提高预测精度,从而提高编码效率。
本发明的特点根据基于宏块组(Macroblock Group)结构的两阶段预测编码方法的基本数据结构的特点,提出了一种新的参考缓存的存储方法,在这种方法中,第一阶段参考帧管理方法使用传统参考帧管理方法,第二阶段参考帧管理方法综合考虑新的参考帧和以前参考帧的特点,因此采用的管理策略能够为第二阶段的编码提供更好的参考,有效的提高基于宏块组结构的两阶段编码的编码效率,从而提高整个视频信号的压缩效率,可应用于混合编码
图1 已有的参考缓存结构示意图。
图2 32象素×32象素的原始宏块组示意图。
图3 原始宏块组NS和派生宏块组VS、HS和VHS的结构示意图。
图4 采用本发明提出的参考缓存的存储方法时的参考缓存的结构图,图中表明对P帧编码时,去掉最远端的参考帧,把下层插值重建图像帧放在参考缓存区的最远端,同时把上层编码重建图像帧放在参考缓存区的最近端。
图5 采用本发明提出的参考缓存的存储方法时的参考缓存的结构图,图中表明对P帧编码时,把上层编码重建图像帧放在参考缓存区的最近端,同时去掉最远端的参考帧中一个与当前编码重建图像帧位置相同的参考图像部分。
图6 采用本发明提出的参考缓存的存储方法参考缓存的结构图,图中表明对I帧编码时,把下层插值重建图像帧放在参考缓存区的远端,同时把上层编码重建图像帧放在参考缓存区的近端。
图7 采用本发明提出的参考缓存的存储方法时的参考缓存的结构图,图中表明对B帧编码时,去掉最远端的参考帧,把下层插值重建图像帧放在参考缓存区的最远端,同时把上层编码重建图像帧放在参考缓存区的最近端。
图8 采用本发明提出的参考缓存的存储方法时的参考缓存的结构图,图中表明对B帧编码时,把上层编码重建图像帧放在参考缓存区的最近端,同时去掉最远端的参考帧中一个与当前编码重建图像帧位置相同的参考图像部分。
具体实施例方式
本发明提出的用于宏块组结构的两阶段编码的参考缓存的存储方法实施例结合
如下本实施例为用于采用原始宏块组NS和派生宏块组VS两种块组形式的两阶段编码方法中,包括原始宏块组NS中的每个宏块都在第一阶段编码,派生宏块组VS中的VS1宏块和VS2宏块在第一阶段编码,VS3和VS4宏块在第二阶段编码。在第一阶段编码时,参考缓存里的一个或多个重建图像帧按照时间顺序排列,时间上离当前帧最近的为参考缓存的最近端,时间上离当前帧最远的为参考缓存的最远端;在第二阶段编码时,得到当前帧的一个近似的重建图像帧,在第一阶段已经编码重建的宏块VS1宏块和VS2宏块构成这个近似重建图像帧的上层编码重建图像帧,在第一阶段经过插值重建的宏块VS3宏块和VS4宏块构成这个近似重建帧的下层插值重建图像帧。如果假定参考缓存的大小为n帧,每个重建帧由上层重建图像帧和下层重建图像帧构成。则在第二阶段编码时,参考缓存的结构如图4或如图5。图4表示去掉最远端的参考帧,把下层插值重建图像帧放在参考缓存区的最远端,同时把上层编码重建图像帧放在参考缓存区的最近端。图5表示把上层编码重建图像放在参考缓存区的最近端,同时去掉最远端的参考帧中一个与当前编码重建图像位置相同的参考图像部分。
在视频编码中,有三种类型的帧,即I帧,P帧,和B帧。对于不同类型的帧,在第二阶段编码时,本实施例参考缓存的存储方法如下对于I帧,在第二阶段编码时,参考缓存的存储方法如图6所示。图6是图4的简化方法,因为对I帧进行第二阶段编码时,参考缓存里没有当前帧以前的重建图像帧,所以只需把上层重建图像帧编码放在参考缓存的最近端,再把下层插值重建图像帧紧邻上层重建图像帧放在参考缓存中标号为2的位置。
对于P帧,在第二阶段编码时,参考缓存的存储方法如图4或图5所示。
对于B帧,在第二阶段编码时,参考帧缓存的存储方法如图7或图8所示,图中标号为-1和-2的位置放置的是时间上后于当前帧的重建图像帧。其中图7中,时间上先于当前帧的重建图像、上层重建图像帧以及下层插值重建图像帧的存储方法和图4所示相同,图8中,时间上先于当前帧的重建图像、上层重建图像帧以及下层插值重建图像帧的存储方法和图5所示相同。
以上实施例同样可以应用于以下帧内块组形式的组合,并可以应用于这些组合的I帧、P帧和B帧编码帧采用派生宏块组VS编码帧采用派生宏块组HS编码帧采用派生宏块组VHS编码帧采用派生宏块组VS和派生宏块组HS编码帧采用派生宏块组VHS和派生宏块组HS编码帧采用派生宏块组VS和派生宏块组VHS编码帧采用派生宏块组VHS和原始宏块组NS编码帧采用原始宏块组NS和派生宏块组HS编码帧采用派生宏块组VHS、派生宏块组HS和原始宏块组NS编码帧采用派生宏块组VHS、派生宏块组VS和原始宏块组NS编码帧采用派生宏块组VHS、派生宏块组HS和派生宏块组VS编码帧采用派生宏块组VS、派生宏块组HS和原始宏块组NS编码帧采用派生宏块组VHS、派生宏块组HS、派生宏块组VS和原始宏块组NS
权利要求
1.一种用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法,原始宏块组NS中的每个宏块都在第一阶段编码,其它类型的派生宏块组VS、HS、VHS中的宏块分别在第一阶段或第二阶段编码;在第一阶段编码时,参考缓存里的一个或多个重建图像帧按照时间顺序排列,时间上离当前帧最近的为参考缓存的最近端,时间上离当前帧最远的为参考缓存的最远端;在第二阶段编码时,得到当前帧的一个近似的重建图像帧,在第一阶段已经编码重建的宏块构成这个近似重建图像帧的上层编码重建图像帧,在第一阶段经过插值重建的宏块构成这个近似重建帧的下层插值重建图像帧;其特征在于,将所述近似重建图像帧的上层编码重建图像帧放在参考缓存的最近端,将下层插值重建图像帧扔掉或放在参考缓存的最远端。
2.如权利要求1所述的用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法,其特征在于,所述的用于基于宏块组结构的两阶段预测编码采用帧内编码帧的编码帧;在第一阶段编码时,参考缓存里没有当前帧以前的重建图像帧,在第二阶段编码时,只需把上层重建图像帧编码放在参考缓存的最近端,再把下层插值重建图像帧放在紧邻上层重建图像帧的位置。
3.如权利要求1所述的用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法,其特征在于,所述的用于基于宏块组结构的两阶段预测编码采用帧间编码帧类型的编码帧;在第二阶段编码时,将上层编码重建图像帧放在参考缓存的最近端,将下层插值重建图像帧扔掉或放在参考缓存的最远端。
4.如权利要求1所述的用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法,其特征在于,所述的用于基于宏块组结构的两阶段预测编码采用双向预测帧类型的编码帧;在第二阶段编码时,将上层编码重建图像帧放在参考缓存中时间先于当前帧的最近端,将下层插值重建图像帧扔掉或放在参考缓存中时间先于当前帧的最远端。
全文摘要
本发明属于信号处理中的视频编解码领域,涉及用于基于宏块组结构的两阶段预测编码的参考缓存的存储方法。包括在第一阶段编码时,参考缓存里的一个或多个重建图像帧按照时间顺序排列;在第二阶段编码时,得到当前帧的一个近似的重建图像帧,在第一阶段已经编码重建的宏块构成这个近似重建图像帧的上层编码重建图像帧,在第一阶段经过插值重建的宏块构成这个近似重建帧的下层插值重建图像帧;其特征在于,将所述近似重建图像帧的上层编码重建图像帧放在参考缓存的最近端,将下层插值重建图像帧扔掉或放在参考缓存的最远端。本发明能有效减小参考时的编码代价,提高预测精度,从而提高编码效率。
文档编号H04N7/26GK1494327SQ0316029
公开日2004年5月5日 申请日期2003年9月30日 优先权日2003年9月30日
发明者何芸, 李国平, 朱刚, 付文方, 杨平, 许晓中, 赵海武, 陈勇, 朱维佳, 宋利, 虞露, 楼剑, 高文, 吕岩, 马思伟, 何 芸 申请人:清华大学, 上海广电(集团)有限公司