发明领域 本发明涉及一种基于压缩参数的数据压缩。举例来说,这种数据 压缩可对运动图像专家组(MPEG)定义的图像编码标准的一系列图 像进行编码。 背景技术 US-A 5,680,483(律师记录PHF 94.510)描述了一种用于分割成 N幅按块编排的连续图像的编码设备。它包括一个用于块的量化和可 变长度编码的信道,以及一个位流速率控制的组件。这个组件由一 个缓存和用于修改量化步骤的设备串联而成。后者分为几个阶段。 第一是给图像序列的每幅图像分配位。第二是给当前图像和N-1幅 后继图像分配位。第三是校正每幅将被编码的新图像的位分配。第 四是作为已被校正的位分配的一个功能函数对量化步骤进行修改。 发明概述 本发明的一个目的是提供更好质量的数据压缩。 本项发明涉及如下方面。它有利于在这种程度上实现数据压缩: 在获得大量压缩数据的同时可以有一个接受压缩数据的实体对压缩 后的数据进行处理;举例来说,该实体可以是或者同时包含一个传 送信道或者一个存储介质。如果数据压缩到较多的程度,就会由于 接受实体未能发挥全部作用而产生不必要的数据丢失。如果数据压 缩到较少的程度,也会有不必要的数据丢失,这是因为接受实体不 能处理一部分压缩数据从而导致这部分数据的丢失。这样,从信息 最小丢失的角度来看,数据压缩的质量很大程度上由有关压缩比的 压缩参数决定。 所引用的背景技术应用了下述的原理对MPEG视频编码中的一个 参数进行调整。在一组图像的开始部分,计算压缩参数的初始值。 该初始值和压缩数据量有关,这个压缩数据量最好从这组图像的压 缩中获得。在对前面一组图像数据的压缩过程的基础上,典型的中 间结果依据压缩后数据的数量来设定。一个典型的中间结果是针对 组内的连续图像而设定的。对于每幅图像,初始的压缩参数是根据 迄今的实际压缩数据量和典型的中间结果之间的差异进行适应性调 整。这样,在背景技术中,一个逐幅图像的压缩方案在一组图像的 开始决定下来,并且其压缩参数也根据和压缩方案的偏差进行调整。 按照本项发明,下面的步骤将被重复执行。在一个压缩参数初始 值的基础上,预计多少压缩数据将在将来时刻产生。初始值根据预 计的和所期望的压缩数据量之间的差异进行调整,从而获得适应性 的压缩数据参数。应用压缩参数的适应值直到后继的一个预测步骤 和紧跟的适应性调整步骤被执行。 本发明提供了一种直接与期望压缩数据量相关的压缩参数的调整 方法,而不象背景技术中那样间接相关。从而也就获得了比背景技 术更加接近所期望压缩数据量的压缩数据。这样,本项发明可以实 现和压缩数据接收实体的数据处理能力更为匹配的数据压缩方法。 所以,从信息丢失的角度来看,本项发明会产生一个更高的质量。 下面将结合附图对本项发明及其可选附加特性进行清晰的阐述。 图例的简要说明 图1是一个概念性框图,用于说明在权利要求1中所述本项发明 的基本特性。 图2和3概念性框图,分别说明了在权利要求2和3中所述本项 发明的附加特性。 图4是一个MPEG视频编码器例子的方块图。 图5是一个流程图,用于说明一种基于本项发明的视频编码方法。 图6是一个图表,用于说明基于图5所示方法的视频编码中可能 发生的情况。 图例的详细说明 首先,对一些参考符号作出说明。相似实体在附图中用相同的字 母代码表示。在一个附图中可能会出现不同的相似实体。在这种情 况下,一个数字或者小号的字母角标将附加在字母代码上用于区分 相似的实体。如果相似实体数目是一个变化参数,数字或者小号的 字母角标将放在小括号中。如果合适的话,在说明书和权利要求书 修改中的任何在参考符号中的数字或者角标可以被忽略。图1完整 地说明了本项发明的基本特性。数据D是根据一个压缩参数CPAR的 压缩CMP。在压缩数据D的过程中,下述的三个步骤被重复执行。在 预测步骤PRD中,根据压缩参数CPAR的初始值VALint,预测在将来 时刻Tfut将获得的压缩数据量Xprd。在适应步骤ADP中,初始值 VALint根据数据量的预计值Xprd和期望值Xdes之间的差别ΔX进 行适应性调整,来获得压缩参数CPAR的适应值VALadp。在应用步骤 APL中,应用压缩参数CPAR的适应值VALadp被应用直到下一个预测 步骤PRD和紧跟的适应步骤ADP被执行。 为了更有利地实现图1的特性,进行下面的若干方面的考虑。无 论何时三个步骤PRD,ADP,APL被执行,压缩参数CPAR可以改变值 的内容。压缩参数CPAR最好相对稳定。如果压缩参数CPAR的值抖 动似地跳上跳下,说明一部分或者多部分数据将被压缩成较多的程 度。结果,这些部分数据的压缩将造成相对重要的信息丢失。这将 对整体的质量产生负面影响,而如果压缩参数CPAR保持接近一个平 均值的话,整体质量将会更好。也就是说,压缩参数CPAR序列:10、 11、9、8、10、12将会比序列10、14、6、2、10、18得到更好的整 体质量。 图2说明了如下的特性。压缩参数CPAR与被压缩数据量Xgrp有 关,其中,被压缩数据是在时间间隔ΔTgrp中提供的,在时间间隔 ΔTgrp中,三个步骤PRD、ADP、APL将至少再被执行一次。 图2特性带来了如下有利的效应。假设在T[i]时刻执行了三个步 骤PRD、ADP、APL,并且它们将在后面的T[i+1]、T[i+2]......时刻 执行。如果应用了图2的特性,在T[i]时刻的压缩参数CPAR将与在 T[i]时刻的后继时间间隔ΔTgrp[i]中提供的数据量相关。同样地, 在T[i+1]时刻的压缩参数CPAR将与在T[i+1]时刻的后继时间间隔 ΔTgrp[i+1]中提供的数据量相关。由于这些时间间隔ΔTgrp[i]、 ΔTgrp[i+1]有很大程度地重叠,在T[i]时刻和T[i+1]时刻的数据 量Xprd[i]、Xprd[i+1]只有微小的差别。也就导致在T[i+1]时刻的 适应值VALadp[i+1]和在T[i]时刻的适应值VALadp[i]之间也没有很 大差别。这样,如果图2的特性得到应用的话,压缩参数CPAR的值 将会相对稳定。这样,图2的特性有利于得到更好的质量。 为了更有利地实现图1的特性,应该对下面的若干方面进行考虑。 数据D可能包含一个或者多个比其他部分更难压缩的部分。这也就 是说,如果压缩参数CPAR是固定的话,这些难以压缩的部分会比其 他部分产生相对更多的数据量。结果,一个难以压缩的数据部分会 在压缩数据中引发一个大幅度增长。这样一个大幅度的增长可能超 出压缩数据接收实体的数据处理能力而导致信息丢失。例如,如果 接收实体是一块内存,当压缩数据有大幅度增长时就有可能会溢出。 图3表明了如下的特性。后面的时刻Tfut在压缩数据的一个预 期大幅度增长INC之前到来。 图3特性带来了如下有利的效果。在后面的时刻Tfut所产生压 缩数据量将相对接近所期望的压缩数据量Xdes。因为根据图3的特 性,后面的时刻Tfut将在压缩数据的一个预期大幅度增长之前到来, 所以图3的特性使得下面的预防措施能够防止信息的丢失。实际上, 所期望压缩数据量Xdes是用压缩数据接收实体有足够空间用于处理 压缩数据的大幅度增长这种方法来定义的。例如,如果接收实体是 一块内存,所期望的数据量Xdes就用难以压缩部分数据到来之前内 存相对较空的方法来定义。这样,图3的特性就使得有一种方法可 以防止信息的丢失,从而有利于产生一个更好质量的结果。 图4展示了一个基于本项发明的MPEG视频编码器的例子。它提 供了一个对应于划分成8×8像素块的序列图像Pin的MPEG数据流 DS,且该数据流具有比特率R。图4解码器由一个运动补偿预测器 MCP、一个减法器SUB、一个离散余弦变换器DCT、一个量化器Q、一 个变长的编码器VLC、一个输出缓存OBUF和一个控制器CON组成。 根据一幅图像Pin可能的编码情况存在三种类型的编码方式:I 型、P型和B型。如果一幅图像是用I型编码的,其离散余弦变换器 DCT接收被不做任何修改地编码的图像。这也就是说,运动补偿预测 器MCP和减法器SUB不影响一个I型编码图像的编码过程。如果一 幅图像是用P型编码的,其运动补偿预测器将在前面一幅图像的基 础上对这幅图像进行预测,前一幅图像在解码端将可得到。如果一 幅图像是用B型编码的,其运动补偿预测器将在前面和后面一幅图 像(B代表的就是双向的意思)的基础上对这幅图像进行预测,它们 在解码端将可得到。这样,对于P型或者B型编码的情况,运动补 偿预测器MCP将提供一幅预测图像Ppred。减法器从被编码的图像Pin 中减去预测图像Ppred,并且相应地提供一幅预测误差图像Perr给 离散余弦变换器DCT。下文中将用I图像、P图像或B图像来分别指 代I型、P型或B型编码的图像。 在P图像序列的编码中,存在一种循环模式。每个周期以一幅图 像Pin的一个I型编码开始,紧跟着后继图像Pin的一个或者多个P 型或者B型编码。一个周期覆盖N幅图像,其中N为一个整数。由 一个编码周期覆盖的这N幅图像作为一组图像。这样,一组图像由 一幅I图像开始,并紧跟着一幅或者多幅P图像或者B图像。例如, 假设N=6,那么这组图像就可能有下列的图像组成:I-B-B- P-B-B。 对于任何一种编码,I型、P型或B型,下面的操作都将被执行。 其离散余弦变换器DCT将8×8的像素块变换成离散余弦变换系数。 对于I型编码的情况而言,离散余弦变换系数与将被编码的图像直 接相关;对于P型或者B型编码的情况,离散余弦变换系数则与预 测误差图像相关。量化器Q对离散余弦变换系数进行量化而获得量 化系数。之后,变长编码器将量化后的系数串编成代码字。然后交 由输出缓存OBUF临时存放这些代码字,并且产生一个MPEG数据流。 更进一步说,量化器Q把每个离散余弦变换系数和一个量化参数 QPAR相除并把结果四舍五入成最接近的整数。例如,假设一个离散 余弦变换系数可能是-128到127之间的任何整数。在这种情况下, 要用8个二进制位来表示离散余弦变换系数。如果其量化参数QPAR 有一个值为4,一个将获得的离散余弦变换系数就可能是-32到31 之间的任何整数。在这时,只需要6个二进制位就可以用来表示量 化的离散余弦变换系数。但是,如果其量化参数QPAR有一个值为8, 一个将获得的离散余弦变换系数就可能是-16到15之间的任何整数。 在这时,就仅仅需要5个二进制位就可以用来表示量化的DCT系数。 量化参数QPAR在一个相对很大的程度上决定了在解码结束时可 以获得什么样的图像质量。如果一幅图像用一个值相对较大的量化 参数QPAR来编码,那么量化后的系数将占用相对较少的二进制位, 结果图像的清晰度也就将会较低。相反,如果一幅图像用一个值相 对较小的量化参数QPAR来编码,那么量化后的系数将占用相对较多 的二进制位,结果图像的清晰度也就将会较高。 但是,对于量化参数QPAR需要注意下面的约束。平均而言,一 幅图像Pin的编码会产生和一个被图像周期Tp划分开的比特率为R 的MPEG数据流相当的二进制位。由于有输出缓存OBUF和一个在解 码结束时的输入缓存的存在,一幅特定图像的编码可能产生一个比 平均量更多或者更少的二进制位。这也就是说,这些缓存对当前相 对平均量的临时偏差提供一些余量。这些余量受到各自缓存大小的 限制。如果和平均量的偏差太大,编码结束时的输入缓存就可能下 溢或者上溢。在这时,一幅或者多幅图像就可能不完整,或者甚至 完全丢失。这当然就会对整体质量有一个相对很大的影响。 因此,从上文所述来看,量化参数QPAR最好基于下面的策略进 行控制。为了避免在解码结束时的输入缓存出现下溢或者上溢,量 化参数QPAR所给的值要尽可能低。从这点来看,应该注意到,在从 一幅图像变到另一幅图像的过程中,量化参数最好不要有大的变化。 如果一旦发生大的变化,采用最高量化参数(即较低清晰度)的图 像将会对整体图像质量有相对较大的影响。因此,采用一个基本稳 定的量化参数QPAR会比采用那些跳上跳下变化的量化参数更好。 在调整量化参数QPAR时有一个基本因素。对于任何一种编码,I 型、P型或B型,不可能预先决定在给定一个量化参数QPAR后会得 到多少二进制位。这是因为,对于任何一种编码(I型、P型或B型), 在其组成的二进制位和用于获得它们的量化参数之间没有一个固定 的关系。组成一幅P型或B型图像的二进制位数取决于运动补偿预 测器MCP对将被编码的图像Pin预测好坏。此外,从定义可以看出, 在进行变长编码的时候,组成输入数据和输出代码的二进制位数之 间没有一个固定的关系。组成输出代码的二进制位数取决于输入数 据的内容,而在MPEG视频编码中后者取决于将被编码的图像Pin的 内容。 图5说明了一种对图4的MPEG视频编码器的量化参数QPAP进行 调整的方法。这种方法取回图1-3的特点,并且被控制器CON执行, 该控制器的形式可能是一台经过适当编程的计算机。这种方法由许 多在一幅图像开始编码之前执行的S1-S9步骤组成。这些S1-S9步 骤也可同样适合在一幅图像的一个新的段编码之前执行。 在步骤S1中,对于每种类型的图像(I型、P型和B型),计算 出一个图像的复杂度PCX。每个图像的复杂度PCX是一段近期编码的 二进制位数NOB和在近期编码中使用的量化参数QPAR的乘积。事实 上,每个图像的复杂度PCX是一段和编码类型相关的以往编码经验。 它可以用于为量化参数QPAR的一个特定值预测,如果一幅后继图像 被编码的话,将会得到多少输出量。针对要使用类型的编码,图像 的复杂度PCX可以和量化参数QPAR相除。相除的结果是一个基于以 前编码经验的对于将获得多少输出量的预测。 在步骤S2中,计算出一组图像的复杂度GCX。一组图像的复杂度 GCX是三项的和。每项都和一种不同的图像类型相关,是相关类型的 图像复杂度PCX,乘以在一组图像中相关类型的图像数目M,同时还 除以相关类型的权重因子K。事实上,一组图像的复杂度GCX也同样 是一段过去编码的经验,但比一个图像的复杂度PCX要来的宽,它 可以用于计算量化参数QPAR的值。例如,一组图像的复杂度GCX可 以和N幅后继图像的期望输出二进制位数相除。因此,在前面编码 经验的基础上,根据所获得的一个量化参数QPAR的值,N幅后继图 像应该产生所期望的二进制位数。只是后者没有必要一定这么实现。 在步骤S3中,对于每种类型的图像,I型、P型和B型,计算出 一个图像编码估计PCE。图像编码估计PCE是第一项和第二项的乘积。 其中,第一项是相关类型的图像复杂度PCX除以相关类型的权重因 子K。第二项是一组编码目标GCT的初始值VALint,除以在步骤S2 中计算出的该组图像的复杂度GCX。该组编码目标GCT是在对当前图 像和N-1幅后继图像进行编码时所应获得的二进制位数。该组编码 目标GCT的初始值VALint是在覆盖当前图像和N-1幅后继图像的期 间内输出缓存OBUF将输出的二进制位数。这样,图像编码估计PCE 就基于以下目标:进入输出缓存OBUF的数据量应该等于在相应期间 内从输出缓存OBUF移走的数据量。图像编码估计PCE的第二项代表 了一个量化参数QPAR的值,同时,在前面编码经验的基础上,根据 这个量化参数QPAR的值就能够达到所要求的目标。 在步骤S4中,计算出下一个I图像的预测缓存充满度BF[nextI]。 预测缓存充满度BF[nextI]是基于组编码目标GCT和从它派生的图像 编码估计PCE的初始值VALint。预测缓存充满度BF[nextI]是当前 输出缓存充满度BF[now]加上图像编码估计的和∑,同时再减去直到 下一幅I图像之前的输出缓存的输出二进制位数OUT[nextI],其中 图像编码估计是由直到下一幅I图像之前的每幅图像的图像编码估 计PCE组成。 在步骤S5中,计算出一个缓存充满度余量ΔBF。这个缓存充满 度余量ΔBF是在下一个I图像时,预测缓存充满度BF[nextI]和所 期望的缓存充满度BF[des]之间的差异。所期望的缓存充满度BF[des] 用解码端的输入缓存相符这种方式进行恰当地定义,此时的输入缓 存在进行I图像解码之前填入数据。 在步骤S6中,计算出一个组编码目标GCT的适应值VALadp。这 个组编码目标GCT的适应值VALadp等于组编码目标GCT的初始值 VALint,它是在覆盖当前图像和N-1幅后继图像的期间内输出缓存 将输出的二进制位数,减去缓存充满度的余量ΔBF。 在步骤S7中,计算出一个当前图像编码的图像编码目标PCT。如 同图像编码估计PCE是基于组编码目标GCT的初始值VALint一样, 这个图像编码目标PCT是基于组编码目标GCT的适应值VALadp。图 像编码目标PCT是第一项和第二项的乘积。其中,第一项是用属于 将被编码的图像类型(I型、B型或P型)的图像复杂度PCX除以用 于这种类型的权重因子K。第二项是一组编码目标GCT的适应值 VALadp除以该组图像的复杂度GCX。 在步骤S8中,图像编码目标PCT被验证以获得一个验证的图像 编码目标PCTver。在这一步中,检查如果当前图像产生与图像编码 目标PCT一样数量的二进制位时,在解码端是否发生下溢或者上溢。 如果没有下溢或者上溢,验证的图像编码目标PCTver将会等于图像 编码目标PCT,也就是说,图像编码目标PCT不被改变。但是,如果 图像编码目标PCT导致下溢或者上溢,图像编码目标PCT会被有效 地裁减为一个防止下溢或者上溢的值。 在步骤S9中,计算一个出量化参数QPAR的值。这个值是第一项 和第二项的和。其中,第一项是相关类型的图像复杂度PCX,除以验 证的图像编码目标PCTver。第二项是目标偏移量ΔTGT和反应参数RP 的乘积。目标偏移量ΔTGT是当前图像编码所产生的二进制位数 NOBP,减去验证的图像编码目标PCT乘以迄今为止当前图像编码所 用的时间t-t0和图像周期Tp的比值。反应参数RP是512除以MPEG 数据流DS的比特率R。 关于量化参数QPAR的值,需要注意下面的内容。第一项是一个 全局或者长期的量化参数QPAR的调整策略。假设图像编码目标没有 被裁减,即验证的图像编码目标PCTver等于图像编码目标PCT。在 这种情况下,第一项相应于相关图像的权重因子K乘以该组图像复 杂度GCX除以该组编码目标GCT的适应值VALadp。该组图像复杂度 GCX由“最近一段实际产生的二进制位数”与“其所应用的量化参数” 乘积的和。这样,第一项有效代表了基于经验的量化参数QPAR的值, 期望产生指定数量的二进制位。第二项是量化参数QPAR的局域或短 期策略。这是一种安全的方法,防止编码中产生与验证的图像编码 目标PCTver所代表的目标数量偏差相对很大的二进制位数。 图6表示了图5方法的一个例子。图6是一个图表,其中横轴代 表时间,纵轴代表数据量,也就是二进制位数。图6由曲线A和曲 线B组成。曲线A代表写入图4MPEG视频编码器的输出缓存OBUF中 的二进制位数。曲线B代表从输出缓存OBUF读出的二进制位数,它 形成了MPEG数据流DS。因此,曲线B由一个相应于MPEG数据流DS 比特率R的斜率。在某个瞬间,曲线A和曲线B的差相应于当时输 出缓存OBUF的充满度。刻在横轴上的标志Tnow代表当前时间,而 标志TnextI代表当前时间Tnow的下一个I图像的发生。当前时间Tnow 相应于一组图像的第一幅B图像编码的开始。 在图6例子中,做了如下的假定。图像组包含6幅图,n=6,类 型为:I、B、B、P、B、B。最近的I、P和B图像的编码产生240k、 120k和60k的二进制位。对于每一幅图像,量化参数QPAR值为5。 在Tnow时刻,输出缓存的充满度为250k二进制位。下一幅I图像 的期望缓存充满度BF[des]是10k二进制位,也就是说,缓存应该接 近为空。MPEG数据流DS的位速率为5M位/秒而图像周期为20ms。 因此,在覆盖N幅图像的期间从输出缓存输出的二进制位数为5M位 /秒*20毫秒*6=600k位。这样,改组编码目标GCT的初始值VALint 为600k。每种类型图像的权重因子为1,这样从简单化考虑,权重 因子被有效地忽略。 在步骤S1中为1200k、600k和300k的I、P和B图像分别提供 了图像复杂度PCX[I]、PCX[P]和PCX[B]。在步骤S2中提供了该组 图像的复杂度GCX为1200k+600k+4 * 300k=3000k。在步骤S3 中为I、P和B图像提供了典型二进制位数:1200k*{600k/3000k} =240k,600k*{600k/3000k}=120k和300k*{600k/3000k} =60k。在步骤S4中提供了预测图缓存充满度BF[nextI]为200k(实 际缓存充满度)+4*60k(要做的四幅B图像)+120k(要做的 一幅P图像)-{5M*5*20毫秒}=250k+240k+120k-500k =110k位。在步骤S5中提供了缓存充满度余量ΔBF为110k-10k= 100k位。在步骤S6中提供了该组编码目标GCT为600k-100k=500k。 在步骤S7中提供了对当前B图像编码的图像编码目标PCT为300k* {500k/3000k}=50k位。在步骤S8中不对图像编码目标PCT进 行裁剪,使得验证的图像编码目标PCTver为50k位。在步骤S9中 提供了量化参数的值为300k/50k=6。因为假定当前B图像即将 开始编码,前面提到的第二项没有发挥作用。 在上文中提到,图5方法包含了图1-3的特点。对应于图1的特 点,有下面的论述。在图5的方法中,组成数据的图像根据组成压 缩参数的组编码目标GCT进行压缩。在步骤S4中,在下一幅I图像 的缓存充满度BF[nextI]根据组编码目标GCT的初始值VALint进行 预测。这相应于预测在将来时刻会产生多少压缩数据量。在步骤S5 中,缓存余量ΔBF对应于预测的压缩数据量和期望的压缩数据量之 间的差。在步骤S6中,组编码目标适应值VALadp通过在缓存余量 ΔBF的基础上将组编码目标初始值VALint进行适应性调整而获得。 在步骤S7中,组编码目标适应值VALadp用于计算图像编码目标, 它在进行可选的验证后决定量化参数QPAR。 对于图5的方法包含图2的特点,有下面的论述。图5的方法, 其包含了图1中说明在每幅图像编码之前被执行的三个步骤PRD、ADP 和APL。在图5的方法中,其组编码目标GCT组成了适应后的压缩参 数。该组编码目标与对当前图像和后继N-1幅图像编码时应该获得 的大量数据有关。这样,在图5的方法中,压缩参数和一段时间间 隔的大量数据有关,这段时间间隔中三个步骤PRD、ADP和APL至少 被执行一次。 对于图5的方法包含图3的特点,有下面的论述。在图5的方法 中,下一幅I图像的缓存充满度BF[nextI]被预测。它相对于预测直 到下一幅I图像之前将获得的压缩数据量。通常,一幅I图像的编 码会比一幅P或者B图像的编码产生更多的二进制数位。这样,所 预测的将来时刻正好会位于压缩数据量发生预期的大幅度增长之 前。 在上文中所描述的附图及其说明并非限制了本项发明。显然,在 附加的权利要求的范围内将会有许多选择。在这点上,做如下结束 语。 有许多方法在各种各样的部件上实际分散其功能或者功能元件。 在这点上,附图只是非常概略的,每个仅代表了本项发明的一个可 能的实施例。这样,即使一幅图在不同的部件中显示不同的功能元 件,它也不可能排除一些或者所有功能元件作为一个物理元件来实 现。 图5的方法也可能用于一个MPEG视频变码器,它可能作为一个 MPEG视频解码器和MPEG视频编码器的串联组合。 在权利要求中的任何参考符号不能解释为相应权利要求的限制。