编码系统中基于宏块的速率控制装置和方法

文档序号:6415727阅读:173来源:国知局
专利名称:编码系统中基于宏块的速率控制装置和方法
本申请要求获得1997年7月14日申请的美国临时申请No.60/052437的利益,该申请在此引证作为参考。
本发明涉及最佳化运动图象编码的装置及其方法。本发明特别涉及对帧内每个宏块适当地调整量化器级数以保持运动图象总体质量同时最佳化编码速率的装置和方法。
发明的背景ISO/IEC国际标准11172和13818(一般分别称为MPEG-1和MPEG-2格式)建立的运动图象专家组(MPEG)对编码/解码策略建立了标准。尽管这些MPEG标准对产生MPEG允许的比特流规定了一般编码方法和语法,但允许许多变化以适应多种不同的应用,并用于例如台式图象印刷、电视会议、数字存储介质和电视广播。
在速率控制领域中,MPEG对控制编码器比特率未限定具体的方法。编码器设计者的任务是设计速率控制方法,用以控制比特率以便解码器输入缓冲器既不上溢也不下溢。
目前,控制比特率的一种方式是变更量化处理,该方式将引起输入视频图象的失真。通过变更量化器级数(步长),可以改变和控制比特率。
尽管改变量化器级数是实施编码器速率控制的有效方法,但应该指出,低劣的速率控制处理实际上将降低视频图象的可视质量,即不能按有效的方式变更量化器级数,以致接近图象结束时必须急剧地变更量化器级数,以避免上溢和下溢条件。由于变更量化器级数影响图象质量和压缩效率,所以关键在于速率控制处理,以在不损失图象质量的情况下控制比特率。
在目前的MPEG编码策略(例如,各种MPEG测试模式)中,通过假设相同类型的所有图象在图象组内有相同的复杂性来选择各帧的量化器级数。但是,由于各图象的复杂性将随时间变化,所以按这种标准选择的量化器级数不能获得最佳的编码性能。
此外,采用整体型变换例如小波变换(另外称为分层子波段分解)的编码器有同样的问题。例如,对低比特率图象编码的重要方面施加小波变换二进制映象(map)的编码(小波树)表示非零值的位置,另外称为变换系数的明显映象。然后,采用量化和熵编码,以实现很低的比特率。由此可见,对于编码明显映象(小波树)来说,在适当选择量化器级数方面的明显改进将转换为压缩效率和编码速率方面的明显改善。
此外,速率控制可以在帧内以较低的等级例如按宏块或块等级来进行。但是,如果量化参数(量化器级数)在帧内变化,那么由于存在附加的工作量,所以宏块级的速率控制一般更昂贵。就是说,需要更多的比特与用于各帧内不同宏块的不同量化器级数的解码器通信。这种临界状态使低比特率应用恶化,其中,适当的比特管理是很重要的。
因此,在技术上需要在帧内对各宏块适当地调整量化器级数以保持运动图象的总体质量同时使编码速率最佳的装置和方法。
发明的概述本发明的实施例是在各帧内对各块例如宏块选择量化器级数以保持视频图象的总体质量同时使编码速率最佳的方法和装置。就是说,在各帧(图象)内对各宏块选择量化器级数,以便达到图象的目标比特率,同时在整个帧上维持均匀的可视图象质量。
附图的简要描述参照结合附图进行的下列详细说明,可以容易地理解本发明的技术,其中

图1表示本发明装置的方框图;图2表示基于图象内的块对图象导出和分配目标比特率的方法流程图3表示确定目标帧比特率方法的流程图;图4表示对当前图象内的宏块确定一个或多个目标宏块比特率的方法流程图;图5表示本发明装置第二实施例的方框图;图6是小波树的图解表示;和图7表示本发明的编码系统。
为了便于理解,在可能的地方使用相同的参考序号来表示附图中所共有的相同元件。
详细描述图1表示本发明装置100的方框图,用于导出针对各帧内的各宏块的量化器级数,以保持视频图象的总体质量,同时控制编码速率。尽管本发明在参照MPEG允许的编码器情况下进行了如下说明,但本领域技术人员会意识到本发明可用于其它编码/解码标准允许使用的其它编码器。
在本发明的优选实施例中,装置100是编码器或更复杂的基于块的运动补偿编码系统的一部分。装置100包括运动评估模块140、运动补偿模块150、速率控制模块130、DCT模块160、量化(Q)模块170、变长编码(VLC)模块180、缓冲器190、反量化(Q-1)模块175、反DCT(DCT-1)变换模块165、减法器115和加法器155。尽管装置100包括多个模块,但本领域的技术人员会意识到由各个模块完成的功能不需要被隔离成图1所示的分离模块。例如,包括运动补偿模块150、反向量化模块175和反向DCT模块165的一组模块是众所周知的“嵌入式解码器”。
图1表示在信号通路110上的输入图象(图象序列),该图象经数字化并根据MPEG标准表示为亮度和两个色差信号(Y、Cr、Cb)。这些信号还被分成多层(序列、图象组、图象、片、宏块和块),以致用多个宏块表示各图象(帧)。每个宏块包括四(4)个亮度块、一个Cr块和一个Cb块,其中,块限定为八(8)乘八(8)的取样阵列。图象划分成块单元提高了区分两个连续图象之间的变化的能力并且通过消除低幅度变换系数(后面说明)改善了图象压缩。数字化的信号可以任意地进行预处理,例如选择适当窗口、分辨率和输入格式的格式转换。
以下说明使用MPEG标准术语;但是,应该指出,术语宏块或块用于说明任何尺寸或形状的用作编码基础的象素块。一般来说,“宏块”可以象单个象素那样小,或象整个图象帧那样大。
通路110上的输入图象被评估运动矢量的运动评估模块140接收。运动矢量是两维矢量,该矢量用作运动补偿,以提供当前图象中块的坐标位置到基准帧中的坐标的偏移。基准帧可以是前一帧(P-帧),或前一帧和/或后一帧(B-帧)。由于仅编码和传送当前帧和基准帧之间的改变,所以利用运动矢量通过减少信道上传送的信息量可极大地增强图象压缩。
运动补偿模块150接收来自运动评估模块140的运动矢量,以改善取样值判定效率。运动补偿包括利用运动矢量的一个预测过程,以把偏移量提供给过去的基准帧和/或后面的基准帧,其中基准帧包含用于形成预测误差的预先解码的取样值。就是说,运动补偿模块150使用预先解码的帧和运动矢量构成当前帧的预测。此外,本领域的技术人员会意识到由运动评估模块和运动补偿模块完成的功能可以用组合模块例如单块运动补偿器来完成。
此外,在对指定的宏块完成运动补偿预测前,必须选择编码模式。在编码模式判定领域中,MPEG提供多个不同的宏块编码模式。MPEG-2特别提供宏块编码模式,该模式包括内部模式、非运动补偿模式(No MC)、帧/场/双起动运动补偿相互模式、正向/反向/平均相互模式和场/帧DCT模式。
一旦选择了编码模式,运动补偿模块150根据过去的和/或后面的基准图象在路径152上产生块内容的运动补偿预测(预测图象)。通过减法器115从当前宏块中路径110上的视频图象中减去路径152上的该运动补偿预测,以在路径153上形成误差信号或预测剩余信号。预测剩余信号的形成有效地消除输入视频图象中的多余信息。应该指出,如果当前帧被编码为I帧,那么路径153上的信号仅是原来的图象,而不是预测剩余信号。
然后,DCT模块160把正向离散余弦变换处理施加给预测剩余信号的各块,以产生DCT系数的一组八(8)乘八(8)的块。DCT基本功能或子波段(subband)分解允许视觉心理(psychovisual)准则的有效使用,该准则对于量化这下一步骤来说是很重要的。
由量化DCT系数的量化模块170接收所获得的DCT系数的8×8块。通过把DCT系数除以一组量化值,并适当舍入形成整数值来表示DCT系数,由此量化处理降低了DCT系数的精度。使用基于基本功能可见度(称为视觉加权量化)的准则,对各DCT系数可以单独设定量化值。就是说,量化值对应于给定基本功能可见度的阈值,即由肉眼刚好可检测的系数幅度。通过用该值量化DCT系数,许多DCT系数被转换成“零”值,从而提高图象压缩效率。量化处理是关键操作,并且是获得可视质量和控制编码器使其输出与给定的比特率匹配(速率控制)的重要工具。由于可以把不同的量化值施加给各DCT系数,所以一般把“量化矩阵”建立成基准表,例如亮度量化表或色度量化表。因此,编码器选择确定变换块中各频率系数如何量化的量化矩阵。
但是,量化误差的主观感觉随频率极大地改变,并有利地是对更高频率采用更近似量化值。就是说,对于较高的空间频率来说,量化误差的人为主观敏感性低。结果,用比低频更少的允许值就可更加近似地量化高频。此外,精确的量化矩阵取决于许多外部参数,例如指定显示器的特性、观看距离和电源中的噪声量。因此,可以为应用或甚至对帧的单独序列裁定特定的量化矩阵。一般地,特定的量化矩阵可以象目录那样与压缩视频图象一起存储。由速率控制模块130完成量化器级数的适当选择。
接着,通过信号连接171由变长编码(VLC)模块180接收所获得的量化DCT系数的8×8块,其中量化系数的两维块按“之字”序列扫描,以把该系数转换成量化的DCT系数的一维字符串。该之字扫描序列是从最低空间频率至最高空间频率的DCT系数的近似连续序列。然后,变长编码(VLC)模块180编码量化DCT系数的字符串,并利用变长编码和行程编码对宏块编码所有辅助信息。
在“先入—先出”(FIFO)缓冲器190中接收该数据流。采用不同图象类型和变长编码的结果是,FIFO中的所有比特率是可变的。就是说,用于编码各帧的比特数可以不同。在包括固定速率信道的应用中,FIFO缓冲器用于使编码输出与信道匹配,平滑比特率。因此,路径195上的FIFO缓冲器190的输出信号是路径110上的输入视频图象的压缩表示(或输入图象和预测图象之间的压缩差别信号),其中,把该信号送入存储介质或通过路径295送入电信信道。
速率控制模块130用于监视和调整进入FIFO缓冲器190的数据流的比特率,防止数据流传送后在解码器侧(在接收器或目标存储装置内,未示出)上溢或下溢。因此,速率控制模块130的任务是监视缓冲器190的状态,控制编码器产生的比特数。
在本发明的优选实施例中,速率控制模块130在各帧内对各块例如宏块选择量化器级数,以保持视频图象的总体质量,同时控制编码速率。就是说,可以测定帧,以确定帧内某些块是否需要更大或更小的比特率分配。显然,对于不同的应用来说,变化的块比其它块更重要,例如,对于观察者来说,电视电话中人的面部一般比背景更重要。其它实例包括医学上的应用,其中某些图象块即潜在的肿瘤比周围组织更重要,或在监视应用中,其中某些图象块即军事评估比周围的伪装更重要等等。因此,实际的应用将规定限定帧内有关块的重要性规则。在本发明中,在各帧内对各块选择量化器级数,以便达到图象的目标比特率,同时在图象的整个序列上保持均匀的可视质量。
应该指出,尽管用进行时间(例如,运动评估/补偿)和空间编码(例如,离散余弦变换)的编码器说明了本发明,但本发明不限于此。可以采用其它时间和空间编码方法,包括不采用任何时间和空间编码。
特别是,速率控制模块130包括帧速率分配器131和宏块速率分配器132。帧速率分配器131对当前帧分配比特预算(目标帧比特率),而宏块速率分配器132对当前帧内各宏块分配比特预算(目标宏块比特率或目标块比特率)。
简单地说,帧速率分配器131从预先编码的图象中或通过实施各种MPEG测试模式初步获得特定类型图象(I、P、B)的复杂性的大致评估。该评估的复杂性用于导出编码各帧所需的预测比特数。利用这种认识,根据具有多项式的复杂性量度,计算帧的量化器级数。导出该复杂性量度,以满足对帧选择的量化器级数应该达到图象目标比特率的限制。一旦帧被编码,速率控制模块就通过使用多项式回归处理递归地调整复杂性量度。就是说,编码宏块所需的实际比特数用于限定复杂性测量,以改善对后续帧的量化器级数的预测。在计算量化器级数中,“目标帧比特率”也被递归地更新。在1998年2月11日申请的序号为09/022349(代理编号SAR12459)的专利申请“编码系统中速率控制最佳化的装置和方法”中披露了这种帧速率分配方法,该申请在此引证作为参考。应该指出,本发明可以采用其它帧比特率分配方法,例如,根据失真量度等的帧比特率分配方法。
简单地说,接着,宏块速率分配器132应用计算过的目标帧比特率来确定一个或多个目标块比特率,其中目标帧比特率的比特与块的绝对差(MAD)均方成正比分布。下面,参照图4进行目标宏块比特率和对应的量化器级数选择方法的详细说明。
但是,由于人的视觉敏感性,所以对于观察者来说,有些宏块被认为比其它宏块更重要。宏块的重要性由可选的宏块分类模块120确定。宏块分类模块120包括必要的规则,以限定各帧内宏块的重要性。可采用各种宏块分类方法,例如如1997年12月31日申请的序号为09/002,258(代理编号SAR12626)、题目为“Apparatus AndMethod For Employing M-Ary Pyramids To Enhance Feature-BasedClassification And Motion Estimation”的专利申请所披露的,该专利申请在此引证作为参考。宏块的“重要性”通过使用如下所述的加权来计算。简单地说,如果宏块很重要,那么把更多的比特分配给该宏块,相反如果宏块不重要,那么把较少的比特分配给该宏块。
另一方面,可以直接从路径112上的图象序列中获得“基于宏块的”信息,例如,哪些宏块是更重要的,该宏块载有什么信息类型,比如前景、背景或帧内的对象等。就是说,如果图象序列被预先处理和存储在存储介质中,例如,存储在服务器上的图象序列或程序,那么产生存储图象序列的编码器可传递“基于宏块的”的信息。换言之,“基于宏块的”信息可以与图象序列一起传送至编码器100。在这种情况下,由于已经得到基于宏块的信息,所以可以省略宏块分类模块120。
再参照图1,通过信号连接线172由反量化模块175接收由量化模块170量化的DCT系数的8×8块。在该阶段,编码器通过编码数据重新产生输入视频图象的I-帧和P-帧,以致它们被用作后续编码的基准帧。
所获得的DCT系数的反量化8×8块传到反DCT模块165上,其中反DCT被提供给各宏块,产生解码误差信号。该误差信号通过加法器155反加在来自运动补偿模块的预测信号上,产生解码基准图象(重现的图象)。
图2表示根据图象内的宏块对图象导出和分配比特的方法200的流程图。更具体地说,方法200在步骤205开始,并进入步骤210,在该步骤210中,由当前帧确定目标帧比特率。在优选实施例中,利用通过使用多项式回归处理(参见图3)的递归调整的复杂性量度来确定目标帧比特率。
图3表示确定目标帧比特率的方法300的流程图。参照图3,该方法在步骤305开始,并进入步骤310,其中该方法如下确定帧的目标比特率(目标帧比特率)TframeTframe=RNf×(1-past_percent)+Tprevious frame×past_percent--(1)]]>其中,R是帧序列的剩余比特数,Nf是该序列中剩余帧数,Tprevious frame是用于编码前一帧的比特数,而past_percent是常数。在优选实施例中,把常数past_percent选择为0.05。但是,本发明不限于此。根据特定的应用或图象的内容,可以采用其它值。实际上,可以临时调整这些值。
总之,公式(1)允许根据可得到的比特和最新编码的帧比特计算目标帧比特率。如果最新的帧复杂并使用许多比特,那么导致应该把更多比特分配给当前的帧。但是,这种增加的分配将减少编码剩余帧的比特的有效数,从而限制对该帧增加分配。如公式(1)中第二项所示,加权平均反映这两个系数的综合平衡。
在步骤320中,方法300按当前缓冲器填满度(fullness)把目标帧比特率Tframe调整如下T'frame=(a+b×c)(c×a+b)×Tframe---(2)]]>其中,T’frame是调整的目标比特率,“a”是当前缓冲器填满度(包括传送至解码器的比特的缓冲器部分),b是(物理缓冲器容量-缓冲器填满度(a)),而c是选择的值为2(可以使用其它值)的常数。因此,“b”表示缓冲器中的剩余空间。公式(2)指出,如果缓冲器被填满一半以上,那么调整的目标比特率T’frame下降。相反,如果缓冲器未被填满到一半,那么调整的目标比特率T’frame增加。如果缓冲器正好填满一半,那么由于公式(2)简化为T’frame=Tframe,所以不需要调整。
然后,在步骤330中,方法300可选地验证如下保持的目标帧比特率(Rs/30)的下边界Tframe=Max(Rs/30,Tframe) (3)应该指出,公式(3)允许Tframe采用两个可能值中较大(max)的,其中,Rs是序列(或段)的比特率(例如,24000比特/秒)。就是说,目标速率的下边界(Rs/30)被用于保持或保证最小量,例如,可以把800比特/帧设定为最小。如果不能保持最小量,那么解码器可选择完全越过当前帧。然后,方法300在步骤340中结束。
应该指出,在本发明的情况下,可以采用其它帧比特率分配方法,例如,MPEG TM4和TM5。但是,由于目标宏块比特率是利用目标帧比特率推导出来的,所以因采用的帧比特率分配方法会影响目标宏块比特率的计算工作量和精度。例如,如果期望以性能为代价使计算的复杂性最小,那么可以采用MPEG TM4和TM5的帧比特率分配方法。相反,如果期望以增加计算复杂性为代价使性能最大,那么可以采用专利申请(代理编号SAR12459)的帧比特率分配方法,或其它更复杂的帧比特率分配方法。
参照图2,一旦Tframe被确定,那么方法200在图4所示的当前图象内对宏块确定一个或多个目标宏块比特率。然后,方法200在步骤230中结束。
图4表示在当前图象内确定宏块的一个或多个目标宏块比特率的方法400的流程图。该方法从步骤405开始并进入步骤410,其中,对各宏块i进行绝对差(SAD)Si的求和。就是说,对宏块内限定的象素进行各象素值(在原图象内)和补偿象素值(在预测图象内)之间的绝对差的求和。接着,对宏块进行象素的所有绝对差的求和,以产生宏块i的SAD。
在步骤420中,方法400询问Si是否大于阈值Hq。根据当前宏块比特分配方法选择阈值Hq,以消除各种宏块。就是说,希望某些宏块中信息通过空间过滤或量化将被删除或降低至零。由于这些宏块被认为未载有信息,所以对这些宏块将不分配比特。因此,阈值Hq用于根据考虑来消除各种宏块。
在工作中,把阈值Hq选择为在前一帧被跳跃过的所有平均绝对差(MAD)的平均值,其中,MADi被定义为Si除以宏块i中的象素数。但是,如果当前帧在图象序列中为第一帧,那么把Hq设定为该当前帧中所有MAD平均值的一半。
因此,如果步骤420中的询问被否定地回答,那么方法400进入步骤425,在此对当前宏块I不考虑接受比特分配。如果步骤420中的询问被肯定地回答,那么方法400进入步骤423,在此将考虑当前宏块i接受如下所述的比特分配。
在步骤430中,对每个宏块i(i=1,2,3…)如下确定目标宏块比特率RiRi=Ki×Tframe(4)
对于Madk有SADk>Hq(5)其中,Madi是宏块i的平均绝对差(MAD),“n”是帧中的宏块数,“w”是加权因子,而Ri是宏块i的评估目标宏块比特率。加权因子w允许按照其它规则调整给定宏块的Ri。就是说,已经发现,可以认为某些宏块比其它宏块更重要,其中,“重要性”不完全依据宏块的MAD。如上所述的各种应用可以着重放在某些宏块上。通过引入任意的加权因子w,可以把或多或少的比特根据应用特定规则分配给特定的宏块。在优选实施例中,把w设定为值“1”,但根据特定应用的需要可以采用其它值。
因此,目标帧比特Tframe与宏块的平均绝对差(MAD)成正比地分布。例如,如果图象仅有Mada=1、Madb=1、Madc=3和Madd=4的四个(4)宏块“a”、“b”、“c”和“d”,而Tframe=100,Hq是使得宏块a和b不被考虑接受比特分配的值,那么Rc和Rd分别表示为

因此,宏块a和b的MAD不用于Rc和Rd的确定。此外,上述实例表示在各Ri被分配给宏块后需要更新Tframe。
一旦确定图象中各宏块的Ri,那么方法400在步骤440中计算各宏块i的量化器级数Qi。在优选实施例中,按照序号为09/022349(代理编号SAR12459)的美国专利申请披露的失真测量计算量化器级数Qi。简单地说,量化器级数Qi可按如下表示的二次率失真方法导出Ri=X1EiQi-1+X2EiQi-2其中
其中,Ri是宏块i使用的实际比特,Qi表示为宏块i选择的量化等级或级数,Ei表示失真量度。在优选实施例中,Ei表示对于当前帧有Ri的那些宏块的所有平均绝对差(MAD)之和。就是说,该量度Ei提供调整宏块比特预算的方法以计算序列中的连续帧之间的宏块差。换言之,当前帧中的宏块与前一帧中相同宏块之间的差越大,当前帧中编码宏块需要的比特数就越大。此外,可以采用其它失真量度,以便Ei可以表示均方误差或正好变明显的差(jnd)。
在初始化期间,公式(6)中的Ri被计算的Ri代替以产生Qi。参数X1和X2被如下初始化X1=(Rs*Ns)/2X2=0(7)Rs表示序列(或段)的比特率,例如,每秒24000比特。Ns表示编码帧之间的距离。就是说,由于低比特率应用,所以序列内的某些帧可以不被编码(跳跃),例如,编码器可以仅编码每个第四帧。应该指出,跳跃帧的数可以适合特定应用的需要。因此,在步骤440中,可以根据公式(6)和(7)来确定量化器级数Qi。
但是,计算的Qi受条件限制,该条件从宏块至宏块应该不明显改变。就是说,Qi受以下条件限制如果Qi<(Qlast-e),那么Qi=(Qlast-e)如果Qi>(Qlast+e),那么Qi=(Qlast+e) (8)其中,Qlast是有Ri的前一个宏块的量化器级数,而“e”是选择值为“2”的常数(根据应用可以采用其它值)。就是说,从宏块至宏块通过不大于值“2”的变化来限制计算的Qi。这种限制保持均匀的视觉质量,即从宏块至宏块在视觉质量上的明显改变最小。应该指出,如果当前的宏块被跳跃(没有Ri情况下的宏块),那么Qlast就取决于下一个当前的“非跳跃”宏块。
在步骤450中,Qi用于编码宏块,产生“实际Ri”(用于编码宏块的实际比特数)。在实际编码后,实际的Ri和Qi被用于更新参数X1和X2,利用回归模式或二次回归模式来精确参数X1和X2。就是说,更新常数X1和X2,以计算相对于特定量化器级别或级数分配给宏块的比特和编码宏块所需要的实际比特数之间的偏差。对于各种回归模型的详细论述例如可参见Bowerman和O’Connell,Forecasting and Time Series,3rd Edition,Duxbury Press,(1993,chapter 4)。
此外,Tframe通过减去实际Ri来变更Tframe=Tframe-实际Ri(9)当整个帧被编码时,可以使用实际的Tframe(用于编码帧的实际比特数),以变更分派产生的目标帧比特率的方法,例如如图3所示。
尽管上面的实施例采用Ri计算宏块的量化器级数,但也可以采用例如计算资源分配的其它编码参数。就是说,如果确定特定的宏块或一连串的宏块有大的Ri,那么可以分配更大的处理能力,例如,在编码特定的宏块或一连串的宏块时,在多个处理器的编码系统中提供更多的处理器。
在步骤470中,方法400询问帧内是否有下一个宏块。如果询问被否定地答复,那么方法400在步骤480中结束。如果询问被肯定地答复,那么方法400返回步骤430,其中,重复步骤430-460,直至当前帧中所有宏块被评估。
图5表示包括本发明的基于小波(wavelet)的编码器500。该编码器包括块运动补偿器(BMC)和运动矢量编码器504、减法器502、离散小波变换(DWT)编码器506、比特率控制器510、DWT解码器512和输出缓冲器514。
一般地,如上所述,输入信号是视频图象(在视频序列中定义帧的两维象素阵列)。为了通过低比特率信道准确地传送图象,必须显著地降低视频帧序列中空间和时间的冗余量。这一般通过编码和传送连续帧之间的差来完成。编码器有三个功能第一,使用BMC和其编码器504产生表示出现在帧之间的运动的多个运动矢量;第二,与运动矢量组合地使用前一帧的重构模型预测当前的帧;第三,从当前帧中减去预测的帧,产生与运动矢量一起被编码和传送至接收器的剩余帧。
离散小波变换完成小波分级的子波段(subband)分解,以产生表示输入图象的普通小波树。为了实现这种图象分解,利用双倍子取样为高水平-高垂直(HH)、(高水平-低垂直(HL)、低水平-高垂直(LH)和低水平-低垂直(LL)频率子波段中来分解图象。接着,LL子波段再被双倍子取样(subsampling),以产生一组HH、HL、LH和LL子波段。递归地完成这种子取样,以产生例如图6所示的已经进行三次子取样的一系列子波段。实际上,最好进行六次子取样。子波段之间父子相关性如从父节点的子波段指向子节点的子波段的箭头所示。最低频率子波段是上部左边的LL1,而最高频率子波段在底部右边的HH3处。在本实例中,所有子节点有一个父体。子波段分解的详细论述可参见J.M.Shapiro,“Embedded Image Coding UsingZerotrees of Wavelet Coefficients”,IEEE Trans.on SignalProcessing,Vol.41,No.12,pp.3445-62,December 1993。
图5所示的DWT编码器按“横向优先”或“深度优先”模式编码小波树的系数。横向优先模式在比特平面中按比特平面模式横切小波树,即量化所有父节点,接着量化所有子节点,然后量化所有第三代节点等。相反,深度优先模式从低-低子波段(LL1)的根节点到子节点(顶部向下)或从子节点经低-低子波段(底部向上)横切各树。如上所述,通过速率控制器510进行适当量化等级的选择,以在序列的各帧内控制各宏块的比特率。因此,本发明可适合于采用不同变换的编码器的各种类型。
图7表示本发明的编码系统700。该编码系统包括通用计算机710和各种输入/输出装置720。通用计算机包括中央处理单元(CPU)712、存储器714和接收和编码图象序列的编码器716。
在该优选实施例中,编码器716简单地为上述那样的编码器100和/或编码器500。编码器716可以是通过通信信道与CPU712连接的物理装置。另一方面,编码器716可以用存储装置装载的和由计算机的存储器712中存储的应用软件(或软件和硬件的组合,例如,采用特定的集成电路(ASIC))来表示。因此,本发明的编码器100和500可以被存储在计算机可读的介质中,例如存储器或存储装置中。
计算机710可以与多个输入和输出装置720耦接,例如,键盘、鼠标器、摄象机、camcorder、视频监视器、多个图象装置或存储装置,但不限于此,还有磁带驱动器、软盘驱动器、硬磁盘或小型磁盘驱动器。输入装置把输入提供给计算机,以便产生编码的视频比特流或接收来自存储装置或图象装置的视频图象序列。最后,通信信道730显示来自编码系统的编码信号被传送至解码系统(未示出)。
因此,已经展示和说明了在各帧内对各宏块选择量化器级数以保持视频图象的总体质量同时使编码速率最佳的新颖装置和方法。但是,对于本领域技术人员来说,在研究本说明书和披露其实施例的附图后,显然可以进行属于本发明的许多改变、改进、变更和各种其它应用。不脱离本发明的精神和范围的所有这些改变、改进、变更和各种其它应用都被认为包括在本发明内。
权利要求
1.一种分配比特以编码图象序列的各帧的方法,各所述帧至少有一个块,所述方法包括以下步骤(a)对该帧确定目标帧比特率;和(b)在至少一个块中分配所述目标帧比特率。
2.如权利要求1的方法,其中,所述分配步骤(b)包括按照至少一个块的目标块比特率分配所述目标帧比特率的步骤。
3.如权利要求2的方法,其中,按照所述块的平均绝对差(Mad)选择至少一个块的所述目标块比特率。
4.如权利要求3的方法,其中,所述目标块比特率按下式确定Ri=Ki×Tframe
对于Madk有SADk>Hq其中,Mad是块的平均绝对差(MAD),n是该帧中的块数,w是加权因子,而Ri是所述目标块比特率,Sad是块的绝对差(SAD)之和,而Hq是常数。
5.如权利要求3的方法,其中,按照阈值Hq调整所述目标块比特率。
6.如权利要求5的方法,其中,通过不对帧内具有小于所述阈值Hq的绝对差之和(SAD)的各块进行在至少一个所述块中分配所述目标帧比特率来调整所述目标块比特率。
7.如权利要求1的方法,其特征在于,所述目标帧比特率Tframe可按下式推出Tframe=RNf×(1-past_percent)+Tprevious frame×past_precent]]>其中,R是图象序列的剩余比特数,Nf是图象序列中剩余帧数,Tprevious frame是用于编码前一帧的比特数,而past_percent是常数。
8.如权利要求2的方法,还包括以下步骤(c)根据所述目标块比特率对所述至少一个块产生量化器级数。
9.一种编码图象序列各帧的装置,所述帧有至少一个块,所述装置包括运动补偿器,用于产生当前帧的预测图象;变换模块,用于对当前帧和所述预测图象之间的差分信号进行变换,其中,所述变换产生多个系数;量化器,用于按至少一个量化器级数量化所述多个系数;和控制器,用于根据至少一个块的目标块比特率,有选择地调整当前帧的所述至少一个量化器级数。
10.如权利要求9的装置,其特征在于,按照所述块的平均绝对差(Mad)选择至少一个块的所述目标块比特率。
全文摘要
披露了对帧内各宏块选择量化器级数使编码速率最佳的装置和方法(130)。对帧内各宏块(120)选择量化器级数,以便达到帧的目标比特率,同时在整个帧上保持均匀的可视质量。
文档编号G06T9/00GK1274446SQ98807140
公开日2000年11月22日 申请日期1998年7月9日 优先权日1997年7月14日
发明者蒂浩·张, 翰久·李, 亚钦·章 申请人:萨尔诺夫公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1