防止视频压缩系统解码器缓存器上下溢的方法、速率控制器和系统 本发明涉及视频压缩领域,具体涉及控制用于存储已压缩的视频数据的解码器缓存器。
众所周知,视频系统包括多个通信装置和多个通信信道,这些通信信道为通信装置提供通信媒体。例如,通信信道可以是有线连接或射频(RF)载频。为了提高视频系统的效率,要对那些需要通过通信媒体传送的视频进行数字压缩。数字压缩在保持该视频的感觉质量的同时,降低了代表该视频的比特数。降低比特数允许更有效地利用信道带宽和减少存储要求。为了实现数字视频压缩,每个通信装置可以含有一个编码器和一个解码器。编码器允许通信装置在视频通过通信信道传送前压缩视频。解码器使通信装置能从通信信道中接收经压缩的视频并处理它。采用数字视频压缩的通信装置含有高清晰度电视发射机和接收机、有线电视发射机和接收机、可视电话机、计算机和便携无线电设备。
业已提出了一些数字视频压缩的标准,包括国际电信联盟ITU-T建议H·261、国际标准化组织/国际电子技术委员会ISO/IEC11172-2、国际标准MPEG-1和即将出版的ISO/IEC13818-2标准MPEG-2。这些标准规定了解码器必须解码的比特流地语法,提出了解码器的要求。虽然这允许在制造编码器时有某些灵活性,但编码器必须能够产生满足规定语法的比特流。
为了使可用信道带宽的利用率最大化和视频质量最高化,编码器力求使其产生的比特数与可用信道带宽相匹配。这通常是通过选择一个目标的比特数来代表视频帧或图像来实现的。目标比特数称为“目标比特分配量”。目标比特分配量根据图像的类型和其它考虑的因素对于每种图像是不同。对于编码器在产生比特的另一个考虑是该系统中任何缓存器的能力问题。通常,由于编码器和解码器的比特速率不恒定,故在信道的两端需放置缓存器,一个位于信道之前在编码器之后,另一个在信道之后在解码器之前。缓存器吸收比特速率的波动。编码器经常必须保证编码器和解码器的缓存器不致因为产生比特流而上溢或下溢。
通常是而且特别是在提出视频压缩标准的情况下,不止一种图像类型用于编码图像。例如,MPEG采用内编码图像、预测图像和双向预测图像。内编码图像仅利用当前图像本身内含的信息来编码。预测图像利用当前图像和一个先前编码的图像作为一种基准来对当前图像编码。通过利用先前的编码图像作为基准,由于只有当前图像和先前已编码图像的不同部分需要编码,故通常是较少的比特被产生。类似地,双向编码图像可以除了使用当前图像以外还使用以后和/或先前编码的图像作为一种基准来编码当前图像。不同的图像类型固有地产生变化的比特数。由于内编码图像在形成当前图像时不使用基准图像,故它们使用比双向编码图像多些的比特。还有,预测图像通常产生比双向预测编码图像多些的比特,但比内编码图像产生少些的比特。因为不同的图像固有地要求使用多些或少些的比特数,故不同的图像类型编码器速率和信道速率相匹配问题增加了复杂性。另外,使用不同的图像类型的还增加了控制在系统中驻存的任意缓存器的上溢和下溢的复杂性。
据此,现在需要有一种防止视频压缩系统的解码器缓存器上溢和下溢并保持可视质量的方法和装置。
图1示出根据本发明的一种用以防止视频压缩系统的解码器缓存器上溢和下溢的方法的步骤的一个实施例的流程图。
图2示出根据本发明表示解码器缓存器丰满度的图示。
图3示出一种根据本发明含有用于防止视频压缩系统的解码器缓存器上溢和下溢的速率控制器的视频压缩系统方框图。
本发明涉及防止视频压缩系统的解码器缓存器上溢和下溢的方法、速率控制器和系统。首先,从一个编码器接收多个已量化的视频比特,这多个已量化的视频比特对应于一种视频帧的类型。然后,在速率控制器中建立一个虚拟缓存器,根据该已量化的视频比特来模拟一个解码器缓存器的丰满度,以产生一个虚拟缓存器丰满度。一个量化步长估算值是在速率控制器中至少根据一个第一预定的目标比特分配量、视频帧类型和虚拟缓存器丰满度来确定的,量化步长估算值将防止解码器缓存器上溢和下溢。
本发明应用的压缩算法针对不同统计特性的不同类型的图像。为了使编码图像的总质量最高化,要预先确定编码不同类型图像的目标比特数。根据图像类型和其它考虑,该比特数实际上对于不同图像是不同的。为了获得好的编码图像质量,所产生的比特数须保持接近目标比特分配量。
在编码期间,一个视频图像被划分为连续的块。例如,按照MPEG-1和MPEG-2,每个块由像素组成。当每个块被编码时,所产生的比特数在虚拟缓存器中被列表,而且该比特流入编码器缓存器。接着,编码器缓存器将比特通过一个信道输出到解码器缓存器。
逐个块所产生的比特数通常是基本不同的,然而输出到信道的比特数却保持恒定。通过调整被量化的每个块量的数,相对地控制每个块所产生的比特数。根据图像的内容,按照一个特定的量化步长所产生的确切的比特数是变化的,并且直到使用选定的量化步长将该块压缩之后才知道。然而,总的来说,量化步长越大,所产生的比特数越少。
本发明采用了考虑当前被编码的图像的目标比特数的方法,防止虚拟缓存器的上溢或下溢,进而防止了解码器缓存器的上溢或下溢。这是通过控制连续块的量化值以努力维持在图像编码期间虚拟缓存器的丰满度、以便根据该图像的目标比特数服从一个理想的丰满度的路径而实现的。当所产生的比特数偏离该理想的路径时,调整量化步长以迫使虚拟缓存器的丰满度按照与理想的丰满度路径相同的速率变化。通过控制缓存器丰满度变化的速率,缓存器的上溢和下溢得以控制,并使得为一个视频图像所产生的实际比特数保持得与该视频图像的目标比特数相接近。
参照图1~图3更详细地描述本发明。图1以标号100示出根据本发明的一种用于防止一个视频压缩系统的解码器缓存器上溢和下溢的方法的步骤的一个实施例的流程图。首先在步骤102,从一个编码器接收多个已量化视频比特。这些已量化视频比特对应于一种视频帧的类型。然后在步骤104,在速率控制器中建立一个虚拟缓存器,根据已量化的视频比特来摸拟解码器缓存器的丰满度,以产生一个虚拟缓存器的丰满度。最后在步骤106,在速率控制器中至少根据一个第一预定目标比特分配量、视频帧类型和该虚拟缓存器丰满度来确定一个量化步长估算值。该量化步长估算值将会防止解码器缓存器上溢和下溢。
从编码器缓存器来看,解码器缓存器的丰满度是可以模拟的。总的来说,虚拟缓存器丰满度与编码器缓存器的丰满度不同。一种建立虚拟缓存器的方法是基于一种逆关系,如下文所述。根据虚拟缓存器丰满度,该量化步长估算值具有一个最接近于当前虚拟缓存器丰满度的丰满度偏差路径。
图2以标号200示出根据本发明一种表示解码器缓存器丰满度的图示。虚拟缓存器根据虚拟缓存器丰满度215确定量化步长的估算值。虚拟缓存器丰满度215的量值表示为V(t)201,是视频块数n203的函数。每个视频帧表征为一种内编码的视频帧207、一种双向预测的视频帧209和一种预测的视频帧211之中的一种。每个视频帧还包含许多视频块221。
在编码一个视频序列的任何块之前,根据一个预定的初始解码器缓存器的丰满度,在该预定的初始解码器缓存器丰满度时该解码器开始从该解码器缓存器中移出比特时计算初始的虚拟缓存器丰满度205。按照MPEG-1,该初始的解码器缓存器丰满度就是在从视频缓存器检验器中移出任何比特之前的视频缓存器检验器的丰满度,如MPEG-1标准中描述的。
在编码当前图像的任何块之前,根据一个视频块的号数、一个初始的缓存器丰满度、该目标比特分配量和每帧平均比特数R确定一个理想的缓存器丰满度213。每个图像的理想缓存器的丰满度213可以是穿过该图像的初始虚拟缓存器的丰满度205的一条直线。对于下一块的量化要根据动态确定的理想缓存器丰满度213和它与理想缓存器丰满度的偏差值217来调整。
在编码当前图像的任何块之前,要为当前的图像确定一个理想的量化步长估算值,以与当前图像的理想缓存器丰满度213相关联,该理想量化步长估算值是根据当前图像类型和过去的统计值确定的。它可以是同一图像类型的最后图像的最后块的量化步长估算值,或是同一图像类型的最后图像中各块的平均量化步长估算值。
根据理想的缓存器丰满度213的路径还要确定一组丰满度偏差值路径217。还将一个量化步长估算值指配给每个丰满度偏差值的路径。通常,丰满度偏差值路径越高,量化步长估算值越大。在理想的缓存器丰满度下面的丰满度偏差值路径具有一个较低的量化步长估算值。最高的丰满度偏差值路径总是设置在最大缓存器丰满度219β之下,而最小的丰满度偏差值路径总是大于R。在包括理想缓存器丰满度的接连的丰满度偏差值路径之间的间隔可以是固定的,或是该丰满度偏差值的量化步长估算值的函数。在受约束的MPEG-1系统的一个实施例中,最高丰满度偏差值路径与一个量化步长估算值为33的相对应;最低丰满度偏差值路径与一个量化步长估算值为-1的相对应。所有的丰满度偏差值都以一个固定间距离与理想的丰满度相平行。最高丰满度偏差值与最低丰满度偏差值之间的距离是3·R或是在R和β之间保持最高和最低丰满度偏差值的最大间隔,不管是哪个都是最小的。
在编码前一块之后,虚拟缓存器丰满度被更新。量化步长估算值是通过将虚拟缓存器丰满度与丰满度偏差值路径相比较来选定的。最靠近该虚拟缓存器丰满度的丰满度偏差路径的量化步长估算值被选定。如果所选定的量化步长估算值位于被选定量化值的合理范围之外,例如按照MPEG-1在含有1和31的区间,则当它大于该合理范围时向编码器提出一个请求以跳过一组已量化的视频比特。在它小于该合理范围时,也向编码器提出一个请求以对该已量化的视频比特填充一些比特。
图3以标号300示出一个系统的方框图,该系统含有根据本发明的用以防止一个视频压缩系统的解码器缓存器上溢和下溢的速率控制器。该系统包括:一个速率控制器301、一个量化确定器304和一个编码器306。该速率控制器含有一个虚拟缓存器302和一个量化估算器303。
编码器306接收一种视频帧308并将该视频帧逐块地转换。该视频帧是一个数字化的图像。该图像可以被隔行地或逐行地被扫描。根据编码器306如何对该图像编码,将该图像分类成为多种图像类型中的一种。例如按照MPEG-1,该图像类型是逐行的并且是I、B或P类型中的一种。按照MPEG-2,该图像类型与该图像是逐行的还是隔行的、帧结构的、或是场结构、以及I、B或P类型之中的一种有关。编码器306根据由量化确定器304提供的量化步长314对每个块进行量化,以产生已量化的视频比特310。根据视频图像的图像类型,执行不同的转换。例如按照MPEG-1,I类型图像的转换是基于当前的图像。P类型图像的转换是基于当前的图像和下一个图像。B类型图像的转换是基于当前的图像、下一个图像和一个将来的图像。
由编码器306产生的已量化的视频比特310的数量由量化估算器303和量化确定器304通过逐块地调整量化步长314来调节。通常,当量化步长增加时,为该视频块所产生的比特数减少,反之亦然。速率控制器301调节已量化的视频比特310的比特率,以使解码器缓存器不致发生缓存器上溢和下溢,并使为当前的图像所产生的比特数接近某个规定的量,以得到良好的视觉图像质量。
在速率控制器301内部有一个虚拟缓存器302跟踪解码器缓存器的丰满度,以使解码器缓存器307不上溢和下溢。该速率控制器的虚拟缓存器的丰满度V(t)311与解码器缓存器的丰满度B(t)有如下关系:
V(t)+B(t+T)=β其中t≥0,式中β>O是解码器缓存器的大小,T>0是时延。该速率控制器通过控制V(t)而间接地控制B(t+T)。当虚拟缓存器不上溢或下溢时,即:
0≤V(t)≤β解码器缓存器307也不上溢或下溢,即:
0≤B(t+T)≤β
虚拟缓存器根据缓存器的信息对第n块的丰满度更新。该缓存器的信息包含第n块的已量化的视频比特310的比特率、每个图像的平均比特率和一个图像的块数。虚拟缓存器的丰满度V(n)按下式更新:V(n)=V(n-1)+r(n)-R‾m]]>
式中n是块的号数,r(n)是由编码器在某一时刻所产生的比特数, R是每个图像的平均视频比特率,M是一个图像中的块数。
量化估算器303根据虚拟缓存器的丰满度,为该块确定一个量化步长估算值312。
量化确定器304根据该量化步长估算值312再调整量化步长估算值312以产生量化步长314。量化步长314通常随量化步长估算值312的增加而增加,反之亦然。例如按照MPEG-1,一个最大的量化步长估算值为31,将导致得到一个最大的量化步长为31。
本发明提供了一种防止视频压缩系统的缓存器上溢和下溢的增强方法。其他的方法例如MPEG-2的TM5和MPEG-1的SM3都不能防止这种系统的缓存器上溢和下溢。TM5使用了多个虚拟缓存器,而SM3使用一个虚拟缓存器。SM3和TM5的虚拟缓存器都与解码器缓存器的丰满度量无关。为此,SM3和TM5对解码器缓存器的丰满度不能控制。由于使用一个虚拟缓存器,以逆关系来模拟解码器缓存器丰满度,因而本发明执行情况比TM5和SM3好些。由于对多种图像类型采用逆关系,因此该解码器缓存器可通过控制虚拟缓存器而得到控制。
虽然上文示例性地描述了实施例,但是对本领域的普通技术人员显然可以在不离开本发明精神的情况下做出许多变更和修改。据此,意旨所有这些变更和修改都包括在后附的权利要求书所限定的本发明的精神和范畴之内。