用于时间乱序压缩和多信源压缩速率控制的系统和方法

文档序号:7609205阅读:277来源:国知局
专利名称:用于时间乱序压缩和多信源压缩速率控制的系统和方法
技术领域
本发明涉及数据压縮,更加具体地说涉及压縮可视数据。
背景技术
因为直接数字化的图像和视频需要大量的比特,所以为了存储、传送 和其它应用通常对这种图像和视频进行压縮。已知若干种基本的压縮方 法,以及这些方法的特定变形。
一种特殊的现有技术的压縮方法可通过包括变换级、量化级和熵代码 级的三级处理来表征。在使用中,变换级例如通过利用图像或序列中的局 部类似和图案而用于将信源的能量或信息收集成致密的格式。许多图像压
縮和视频压縮方法(例如MPEG-2和MPEG-4)使用离散余弦变换(DCT) 作为用于压縮目的的变换级。另外,更新的图像压縮和视频压縮方法(例 如MPEG-4纹理)使用各种小波变换作为变换级。
小波变换包括在一维或一维以上的尺度上对一组数据重复应用小波 滤波器对。对于图像压縮,可使用2D小波变换(即,水平的和垂直的)。 另外,对于视频压縮来说,可以使用3D小波变换(即,水平的、垂直的 和时间的)。
视频压缩方法传统的并不只是对视频序列中的每个图像进行单独压 缩。视频序列中的图像通常与序列中在时间方面靠近的其它图像类似。因 此,通过考虑这种相似性而可以改进压缩。如此做被称之为"时间压縮"。
在MPEG中使用的一种传统时间压縮方法被称为运动搜索。使用该技 术,正被压缩的图像的每个区域被用作在先前图像中搜索范围的图案。选 择最接近的匹配,并通过仅对与那个匹配的差别进行压縮来表示所述区 域。
正如在空间(即,水平和垂直)方向上,可使用小波,但也应对两个或更多图像的相应像素或系数起作用来执行时间压縮的另一种方法。该技
术通常称之为用于三个"方向"(即,水平、垂直和时间)的3D小波。
通过所述一种方法或任意其它方法的时间压缩通常需要对出现的图 像和先前的图像一起进行压縮。通常,在时间上被压縮起来的多个图像被
称为图像组(GOP)。不幸的,前述压縮技术在各种压縮应用中都会出现 问题。现有技术的

图1正是这种应用的一个示例。
现有技术的图1表示根据现有技术的可结合视频压縮的照相机系统 100。如图所示,提供有多个照相机102,它们接着通过馈电103与切换 开关104耦接。在使用中,照相机102作为馈送给切换开关104的多个视 频源进行操作。此外,切换开关104操作用于通过输出端105输出(例如, 用于显示目的,存储目的等)这种视频。
现有技术的图2表示根据现有技术的图1的切换开关104进行操作以 选择从照相机102输出视频的各种馈电103的方式。为了实现此目的,切 换幵关104必须要根据场定时信号作为输入的不同馈电103之间进行选 择。因此,来自照相机102的图像被多路复用,即在公共视频信道上一次 传送一个图像。在一个应用示例中,可通过交替的从每个照相机102发送 一个视频场而可对照相机102中的两个进行多路复用。在另一个示例中, 当以每秒30场的速率对单个其它照相机102进行拍摄时,每秒就可对15 个照相机102拍摄两次。
上述的多路复用图像序列对于视频压縮,尤其是时间压縮是不利的, 因为它降低或消除了时间邻近图像之间的相似性。虽然来自相同照相机的 图像之间仍然存在相似性,但由于传统的压縮技术只能利用邻近的图像或 较短的图像组这样的事实,所以这种技术并不能利用该相似性。
因此需要一种能克服现有技术中的这些和/或其它难题的时间压縮技术。
对于多路复用视频流进行压缩的技术还存在另外的问题。通常,有一 些技术用于调节压縮处理的参数以便将压縮速率,或每输入图像的输出比 特大小保持近似恒定。该处理被称为"速率控制"。速率控制处理通常将 来自一个图像或GOP的某一种状态保持至下一个图像或GOP。最小的, 用于先前GOP的编码参数可在设置用于压縮下一 GOP的初始参数中使用。
然而,当来自多个信源的图像被交错用于压縮时,和甚至当使用其它 已知算法对它们进行时间压縮时,速率控制可能不起作用,因为适用于来 自 一个信源的GOP的压缩设置可能与适用于来自不同信源的GOP的那些 压縮设置不同。
因此需要一种能克服现有技术中的这些和/或其它难题的压缩速率控 制技术。

发明内容
本发明提供一种用于时间视频压缩的系统、方法和计算机程序产品。 在使用中,以第一顺序对视频部分进行缓冲。另外,以第二顺序对视频部 分至少部分的进行时间压縮。
在一个实施例中,所述视频部分包括帧、字段、半字段、图像信息等。 另外,可以第二顺序对所述视频部分进行完全时间压縮。为了减少缓冲所 需的存储,所述视频部分可在缓冲之前被至少部分压缩(非时间方式的, 等等),之后可对所述视频部分至少部分地进行时间压縮。
在另一个实施例中,可从多个信源接收视频部分。可使用与视频部分 相关的识别信息来识别这种信源。
在使用中,可确定是否有来自信源中的至少一个的充足的视频部分。 这种确定步骤可选择地使用与来自每个信源的视频部分的数量相关的数 据结构执行。如果确定有来自至少一个信源的充足的视频部分,则可以上 面阐释的方式对视频部分至少部分地进行时间压缩。
可选择地,对最先的视频部分可首先至少部分地进行时间压缩。作为 再一个选择,来自多个信源的视频部分可在缓冲器组中进行缓冲。
本发明还提供另 种对来自多个信源的视频进行压縮的系统、方法 和计算机程序产品。在使用中,从多个信源接收视频。然后对来自所述信 源的这种视频进行压縮。使用多个速率控制来执行这种压縮。在各种实施 例中,可借助单一视频流来接收视频,和/或可借助单个压缩模块来执行 压縮。
在一个实施例中,可为所述多个信源中的每一个提供单独的速率控制状态存储器。再者,所述速率控制对于每个信源可以是不同的。作为一 个选择,可使用与所述视频相关的识别信息来识别所述信源。通过该特征, 可在接收到视频时识别与所述信源相关的速率控制。
在使用中,可基于识别的速率控制来控制压縮。另外,可在压縮之 后更新速率控制。这种更新的目的可基于本实施例正在操作的模式改变。 例如,可更新速率控制以提供基本恒定的质量的压缩,以基本恒定的比特 率提供压缩输出,等等。
附图描述
现有技术的图1表示根据现有技术的可结合视频压縮的照相机系统; 现有技术的图2表示根据现有技术的图1的切换开关进行操作以选择 从照相机输出视频的各种馈电的方式;
图3表示根据一个实施例的用于时间视频压縮的方法;
图4A表示根据一个实施例的用于提供时间视频压缩的系统;
图4B表示根据另一个实施例的用于提供时间视频压缩的系统;
图5表示根据另一个实施例的用于提供时间视频压縮的方法;
图6A-6B表示用于利用与图5的方法相关联的可选技术的方法;
图7表示根据一个实施例的用于对来自多个信源的视频进行压縮的方
法;
图8表示根据一个实施例的用于对来自多个信源的视频进行压縮的系
统;
图9表示根据另一个实施例的用于对来自多个信源的视频进行压縮的 方法;
图10表示根据一个实施例的用于对数据进行压縮/解压缩的架构。
具体实施例方式
图3表示根据一个实施例的用于时间视频压缩的方法300。如图所示, 在操作302中,按照第一顺序对视频部分进行缓存。在本说明书的上下文 中,视频部分可包括帧、字段、半字段、块、线、图像信息和/或绝对地 包括视频的任何部分或组分。在操作304中,按照第二顺序对视频部分至少部分的进行时间压缩。
通过该设计,可对多路复用的视频部分进行时间压縮,因为视频部分的顺 序可不同于缓冲的顺序,从而可利用视频部分之间的相似性。当然,前述
方法300也可进一步有益的用于其它环境。因此,应该理解本技术也可应 用于非多路复用的环境。
现在将阐释关于图3的方法300的各种典型实施例的更多信息。应该 注意这种实施例仅仅是为了示意的目的进行阐释的,并且不应构成为任何 方式的限制。
图4A表示根据一个实施例的用于提供时间视频压缩的系统400。这 种系统400可采用各种形式,并且因此可将其构成为仅仅是可执行图3 的方法300的许多种方法中的一种。
如图所示,系统400包括多个缓冲器402,它们适用于对通过视频输 入端401接收的视频部分进行缓冲。这种缓冲器402可绝对地包括任何形 式的存储器[例如,随机存取存储器(RAM)等]。缓冲器402接下来与压 縮模块404耦接,压縮模块404能够产生压縮包或文件406。在本说明书 的上下文中,压縮模块404可包括能够执行压缩的(任何类型的)编码器 和/或任何类型的硬件、软件、逻辑电路等。
在使用中,通过视频输入端401接收视频部分并使用缓冲器402按照 第一顺序对其进行缓存。例如,这种第一顺序可如下部分A、部分B、 部分C、部分D。
因为可能从多个信源接收视频部分,所以出于稍后将变得显而易见的 原因,可使用与视频部分相关的识别信息来识别这种信源。注意例如在前 述示例的上下文中使用下述标记方案部分A(信源1)、部分B(信源2)、 部分C (信源l)、部分D (信源2)。
之后,压縮模块404可接着按照第二顺序(可不同于第一顺序)对视 频部分迸行时间压縮。例如,在先前示例的上下文中,第二顺序可如下 部分A、部分C、部分B、部分D。
因此很明显这种不同的排序允许来自相同信源的视频部分相邻,从而 便于时间压缩。例如,在前述示意性标记方案的上下文中,下述顺序显示 了这种邻接状态部分A(信源1)、部分C(信源1)、部分B(信源2)、部分D (信源2)。
还有可与前述的系统400结合的多个其它可选特征。例如,可首先对 最先的视频部分至少部分地进行时间压縮。作为又一个选项,可将来自多 个信源的视频部分缓存在缓冲池(例如,共享缓冲器)中。因此,即使以 不同的速率和不规则的次数接收视频部分,也只使用最小量的空间。关于 这种选项的更多信息将在此后进行更详细的说明。
图4B表示根据另一个实施例的用于提供时间视频压縮的系统450。 这种系统450可采用各种形式,并且因此应将其构成为可执行图3的方法 300的许多方法中的仅仅一种。
类似于图4A的系统400,系统450包括多个缓冲器412,它们适用于 对通过视频输入端411接收的视频部分进行缓冲。缓冲器412接着与能够 产生压缩数据包或文件416的压縮模块414耦接。
有关本系统450与图4A的系统400的一个最重要差别是在缓冲器412 和视频输入端411之间包括第二压缩模块413。在使用中,可在通过缓冲 器412进行缓冲之前通过第二压缩模块413对视频部分至少部分地进行压 縮,之后可使用压縮模块414对视频部分至少部分地进行时间压縮。
应该注意由第二压缩模块413执行的压縮在一个实施例中可只包括非 时间压縮。此外,由第二压縮模块414执行的压縮在一个实施例中可至少 包括时间压缩。当然,可由第二压缩模块414执行任何额外的非时间压缩, 等等。
为此,可通过对进入相同缓冲器的视频部分至少部分地进行压缩来减 少缓冲器412所需的必要存储。虽然上述说明假定视频部分在任何变换处 理之前被缓冲为"未经加工的",但这并不是必需的。在时间变换或运动 搜索级之前,变换处理通常并不会把来自分离的视频部分的信息混合起 来。该处理部分或其中一些可在存储拍摄的视频部分之前进行。
通过如此做,部分压缩也是可行的,并且存储的信息小于原始未加工 视频部分。如果在缓冲存储之前有某一种压缩,则可能在剩余变换级之前 需要某一种解压縮。并不需要对这些中间视频部分进行完全压縮;在该阶 段中进行的压縮可以是非常的简单。通常,并不需要将中间图像形式完全 解压縮成作为输入数字化视频的相同格式。例如,当将数字化视频处理成国际标准ITU-RBT.656(4:2:2色度取样) 时,中间形式可具有与亮度分开存储的色度分量。通常在进一步的块和时 间处理之前,优选的并不是将它们转换回BT.656格式。
图5表示根据另一个实施例的用于提供时间视频压缩的方法500。这 种方法500可采用各种形式,并且因此应将其构成为可以执行图3的方法 300和图4A-4B的系统的许多方式中的仅仅一种。
如在操作502中所阐释的,数字化视频部分连同识别关于视频部分的 信息一起被接收,所述有关视频部分的信息至少指定视频部分来自多个可 能信源中的哪一个。接着,视频部分连同相应的识别信息一起被缓存。注 意操作504。这种识别信息不仅可以包括相关信源的识别符,而且还可以 包括其他可选数据。例如,可以包括序列号或时间码之类的附加识别信息。
此后,在操作506中,对于所有存储的视频部分执行涉及识别信息的 搜索以查明从任何一个信源是否出现了充足数量的视频部分(即,GOP)。 可通过在一特定数据结构中跟踪识别信息来非常有效的进行这种搜索。关 于这种选项的更多信息将参照图6进行阐释。
然后在判定508中确定从任何一个信源是否有充足的视频部分。如果 没有,则继续操作502。然而,如果在判定508中确定有来自任何一个信 源的充足的视频部分,则选择存储有充足视频部分的信源。注意操作510。 另外,从这种信源选择一GOP组的视频部分。在一个实施例中,可从这 种信源选择最先存储的视频部分(即,存储最长的集合)。
移至操作512, GOP的视频部分一起被压缩,并且作为压缩的结果进 行传送。通过缓冲视频部分直到有来自单一信源的若干个视频部分,以与 提供用于压縮的顺序不同的顺序对视频部分进行压縮。最后,在操作514 中,删除来自存储器的刚刚被压縮的视频部分。
图6A表示根据一个实施例的用于利用与图5的方法相关联的可选技 术的方法600。具体地,这种方法600可选择地与图5的方法500的操作 结合使用。
如果存储的信息是以一组列表的形式保持,即每个信源一个列表,并 且对于每个信源包括一个计数,则图5的操作504可更加有效的进行。每 个列表条目可包含用于相应视频部分存储位置的参考位置。当存储视频部分时,可使用相关的识别信息将一个条目添加到用于相应信源的列表中, 并且增加用于给定信源的计数。为此,搜索操作只需检查每个信源计数以 査明它们中的任何一个是否等于或大于GOP大小。
通过这种数据结构,可动态地分配用于存储视频部分的存储器空间。 这意味着存储器空间可只用于有效地提供视频部分的信源,并且可以尽可 能快的释放存储以被重新使用。现在将说明关于这种技术的特定操作的更
多fe息o
在操作602中,将视频部分存储在存储器位置中。之后,在操作604 中,向以相应的识别信息识别的信源的列表中添加条目。作为选择,可另 外将用于视频部分位置的基准存储在新的列表条目中。此外,在操作605 中,对当前信源的计数加一 (1)。
图6B表示根据一个实施例的利用与图5的方法相关联的可选技术的 方法601。具体地,这种方法601可选择地与图5的方法500的操作514 结合使用。
在对来自选择信源的视频部分进行压縮之后,从这种信源的计数减去 GOP的大小。注意操作606。之后,在操作608中,刚刚压縮的用于GOP 视频部分的列表条目可被删除。最后,在操作610中从存储器删除视频部 分。因此,可使存储器区域变成重新可用。
现在将阐释本实施例的另一个可选特征。推动列表管理选择(与每信 源的向量相对,或分配给每个信源的固定数量的缓冲器)的中心问题是在 每个信源的基础上难于或不可能预测需要多少视频部分时段。在组合的基 础上(on a pooled basis),很清楚(只要总的输入速率不超过处理速率) 在对于任何信源都不具有完整GOP的情况下所能累积的视频部分的最大 数量是N(G-1),其中N是信源数量,G是GOP中的视频部分的最大数量。
因此,对于操作所需的缓冲器数量是N(G-1)+1+P,其中P是实际处 理所需的视频部分的数量(通常P-G)。然而,由于处理权限的冲突,对 于给定信源所累积的视频部分的最大数量可大大超过G。为了示意的目 的,现在将介绍这种情况的一个示例。 .
在本实施例中,利用了 4个信源、循环选择、和每GOP4个视频部分。 如下面在表#1中所注出的,顶行表示输入视频部分的信源号,第二行表示上述存储的信源的视频部分的号码,最后一行表示每次哪个信源视频部 分处于压缩处理中。在有些时候,不能够进行任何处理,因为从任何单个 信源都不会出现足够的视频部分。处理采用4周期。在该模型中,当其处 理完成时,从存储器中除去视频部分。
表#1
In: 12341234123412341234123412341234… Number:l 1 1 12222333344441555226633374443 ... Total: 1 2 3 4 5 6 7 8 9 10 12 14 16 14 16 14 16 14 16 16…
Process: 1_2_3_4_ ...
使用列表每信源而非向量每信源方案,实际视频部分存储可被综合, 并且可极大的减少总共所需的存储。在上面的示例中,虽然在上面的序列
中一次存储的视频部分的最大数量是16,但它们在信源中间不是均匀分 布的,并且单个信源存储有高达7个视频部分。
由此提供了可以完整效果对来自多个视频部分序列源多路复用的视 频信息应用时间视频压縮的技术。该技术可进一步允许应用更高性能的时 间运动压縮,而在以前只能使用较低性能的分散压缩。
应该注意前述时间压縮技术的任何方面可与此处所阐述的任何其它 技术结合使用。例如,前述时间压縮技术可选择地与速率控制技术结合使 用,现在将阐述速率控制技术。
图7表示根据一个实施例的用于对来自多个信源的视频进行压縮的方 法700。如图所示,在操作702中,从多个信源接收视频。在本说明书的 上下文中,每个前述信源可包括照相机和/或绝对的包括任何其它视频源。
接着,在操作704中,来自信源的这种视频然后被压縮。应该注意使 用多种速率控制来执行压縮。此外,在各个实施例中,可借助单一视频流 来接收视频,和/或可借助单个压縮模块来执行压縮。再者,在本说明书 的上下文中,压縮模块可包括(任何类型的)编码器和/或能够执行压缩 的任何类型的硬件、软件、逻辑等。
为此,当来自多个信源的视频部分为了压縮而被交错时,和甚至当使 用己知的算法对它们进行时间压縮时,速率控制仍可起作用,因为允许适用于来自一个信源的GOP的压縮设置不同于适用于来自不同信源的GOP
的那些压縮设置。
现在将阐述关于图7的方法700的各种典型实施例的更多信息。应该 注意这种实施细节仅仅是为了示意的目的进行说明的,并且不应将其构成 为以任何方式的限制。
图8表示根据一个实施例的用于对来自多个信源的视频进行压缩的系 统800。这种系统800可采用各种形式,并因此可将其构成为可执行图7 的方法700的许多方式中的仅仅一种。
类似于先前所述各幅图中的各种前述系统,系统800包括多个缓冲器 812,其适用于对通过视频输入端811接收的视频部分进行缓冲。缓冲器 812接下来与能够产生压縮数据包或文件816的压縮模块814耦接。
另外还包括用于识别速率控制参数的速率控制数据结构820,每个速 率控制参数与输入视频源之一相关联。应该注意速率控制参数的数量与信 源的数量相同。在使用中,这种速率控制参数指示由压缩模块814关于相 关信源的视频所执行的速率控制。
可选择地,可对信源进行分组使得一个速率控制参数控制一组类似的 信源。在这种情况下,速率控制参数的数量小于信源的数量。在使用中, 这种速率控制参数指示由压縮模块关于相关信源组中的每个信源的视频 所执行的速率控制。
此外,在操作期间,速率控制参数连同相关的视频部分一起被馈送给 压缩模块814。另外,在压缩之后,可以实现全部压缩结果这样一种方式 更新这种速率控制参数。可对速率控制参数的这种反馈型更新进行调整以 提供基本恒定质量的压縮,以基本恒定的比特率提供压縮输出。
图9表示根据另一个实施例的用于对来自多个信源的视频进行压缩的 方法卯O。这种方法900可釆用各种形式,并因此可将其构成为可执行图 7的方法700和图8的系统的许多方式中的仅仅一种。
如图所示,在操作902中获得视频部分,并将其连同指示获得该视频 部分的信源的识别信息一起存储。当然,也可以包括附加识别信息,例如 序列号或时间码。
接着,可査找与该视频部分的信源相应的速率控制状态信息。参见操作904。如果所述压缩方法需要若干个视频部分的GOP,则该操作可被保 留用于从目前信源呈现充足的视频部分以允许编码的情况。
然后使用在操作卯4中査找的状态信息来控制压縮处理,如由操作 905所示。可进一步度量压缩处理以获得速率控制状态参数的任何必要的 变化。参见操作906。
最后,在操作908中,与用于任何其它信源的速率控制参数分开,可 在与刚刚压缩的视频部分的信源相应的位置更新速率控制参数。此后,可 根据需要重复图9的操作。
因此可为每个视频源提供一组分离的速率控制状态存储器,并且在压 缩期间可使用与视频部分或GOP的信源相应的状态。因此,即使对来自 分离的信源(它们可能具有完全不同的统计属性和完全不同的速率控制处 理状态)的视频部分进行压缩处理连续操作,也能够应用速率控制算法以 确保每个信源得到适于其历史的控制信息。
作为再一个选择,前述的速率控制技术可结合在附录A中阐述的速率
控制算法。
现在将阐述关于可以实施上述各种技术的一个特定典型环境的更多 信息。然而应该注意,这种环境仅仅是为了示意的目的进行说明的,并且 不应将其构成为以任何方式的限制。
图10表示根据一个实施例的用于对数据进行压縮/解压縮的架构 1000。该架构1000中包括编码器部分1001和解码器部分1003,它们一 起形成一个"编解码器"。编码器部分1001包括变换模块1002、量化器 1004、和熵编码器1006,熵编码器用于对数据进行压缩以将其存储在文 件1008中。为了对这种文件1008进行解压縮,解码器部分1003包括反 向变换模块1014、去量化器1011和用于对数据进行解压縮以供使用(例 如,在视频数据的情况下供观看,等等)的熵解码器1010。
在使用中,为了去相关的目的,变换模块1002对多个象素(例如, 在视频数据的情况下)执行可逆的变换,通常是线性的。作为一个选择, 在一个实施例中,可在变换模块1002的环境中执行图3的方法300。然 而,当然,应该注意可在任何所期望的范围内执行图3的方法300。
接着,量化器1004对变换值施行量化,之后熵编码器1006响应的用于对量化变换系数进行熵编码。解码器部分1003的各个部件本质上是使
这种处理反向。作为一个选项,在一个实施例中,可在量化器1004的环 境中执行图7的方法700。然而,当然,应该注意可在任何所期望的环境 中执行图7的方法700。
虽然上面已经说明了各种实施例,但应该理解它们仅仅是借助示例来 表示而非限制。因此,优选实施例的宽度和范围不应由上述的典型实施例 来限制,而是仅应该按照下述的权利要求及其等价内容来定义。附录A
序言
我们关心的是视频和图像压縮的方法。我们考虑用于控制视频或图像 压缩处理的输出比特率的方法。我们的新方法对不能使用公知的旧速率控 制方法的压縮处理进行操作。 图像压縮
直接数字化的图像和视频采用许多比特通常压缩图像和视频用于存 储、传输和其它应用。已知若干种基本的压縮方法,并且已知这些方法的 非常多的特定的变形。 一种通常的方法可用三级处理来表征变换、量化 和熵编码。
在视频压缩器中变换级的目的是通过利用图像或序列中的局部类似 和图案而尽可能将信源图像的能量或信息聚集成致密的格式。没有压缩器 能够对所有可能的输入进行压缩;我们设计对"典型"输入工作良好的压 縮器并忽略其不能对"随机"或"病理"输入进行压縮。
通过变形,可使最多的图像和视频压縮器共用一个基本的架构。该基 本架构具有三级变换级、量化级和熵编码级。
许多图像压縮和视频压縮方法(例如MPEG-2)使用离散余弦变换 (DCT)作为变换级。
一些较新的图像压縮和视频压縮方法(例如MPEG-4纹理[4p使用各 种小波变换作为变换级。 小波变换
小波变换包括在一维或一维以上的尺度上对一组数据重复应用小波 滤波器对。对于图像压縮,我们通常使用2D小波变换(即,水平的和垂 直的);对于视频压縮来说,我们通常使用3D小波变换(即,水平的、 垂直的和时间的)。 时间压縮
视频压縮方法通常并不只是对视频序列中的每个图像进行单独压缩。 视频序列中的图像通常与序列中在时间方面靠近的其它图像类似。因此, 通过考虑这种相似性而可以改进压缩。如此做被称之为"时间压缩"。在 MPEG中使用的一种传统时间压縮方法是运动搜索。在该方法中,正被压 缩的图像的每个区域被用作搜索先前图像范围的图案。选择最近的匹配,并通过仅对与那个匹配的差别进行压缩来表示所述区域。
正如在空间(即,水平的和垂直的)方向上,另一种时间压缩方法将 使用小波,但现在对两个或更多图像的相应像素或系数起作用。该技术被
称之为用于三个"方向"(即,水平的、垂直的和时间的)的3D小波。
通过所述一种方法或任意其它方法的时间压縮需要对出现的图像和
先前的图像一起进行压縮。通常,在时间上将多个图像压縮起来;我们将
该组图像称为图像组或GOP。
子带
小波变换的输出包含代表"低通"或"比例"或"和"信息的系数, 所述信息通常是若干个象素上的公共信息。所述输出还包含代表"高通" 或"小波"或"差"信息的系数,所述信息通常代表象素如何不同于它们 的公共信息。小波滤波器的重复应用会在输出中导致这些类型的信息的多 个不同的组合。每个不同的组合通常被称作"子带"。该术语来源于观看 频域点,但通常并不与频带精确对应。
小波变换在其输出的不同子带中产生完全不同的值分布。跨过原始象 素扩展的信息被集中成一些字带,而留下其它的大部分为零。这对于压縮 是期望的。 零游程压縮
一些图像和视频压缩算法中的中间步骤是零游程消除,其可通过"堆 积(piling)"来执行。在零游程步骤中,子带(或一组子带)的系数被压 缩,粗略但很有效。零游程步骤从数据中除去零游程值,同时保留出现零 值的位置的记录。可在该算法的任意点处应用零游程消除; 一种优选使用 是就在熵编码之前跟随量化级。在零游程之后,可非常快速的计算随后的 步骤,因为它们只需要对相当多的(非零)信息进行操作。
堆积在并行处理多值的计算引擎方面具有极大值,因为它是利用可获 得并行性进行零消除的方法。相反,其它方法的零游程消除(游程长度编 码)典型的采用与在熵编码期间消除零所采用同样多的时间。 每个子带的存储区
在一些压縮实施例中,有利的是为每个子带或一组类似的子带构建一 个单独的堆或零游程压縮存储区,或在一些情况下为单个子带构建多个 区。优点来自于子带结果变得可用的序列和该算法的其它细节。因此与使用单个存储区作为图像或GOP的中间表述相反,存在一组存储区或堆。 速率控制基础
调节压縮数量、输出产生的比特速率的通常方法是改变在计算的量化 阶段放弃的信息量。量化传统上是通过将每个系数除以一个预先选择的数 ("量化参数")进行的并舍弃相除的余数。因此系数值的范围将由相同的 单值,即相除的商表示。
当对压縮的图像或GOP进行解压縮时,反量化处理步骤将所述商乘 以(已知的)量化参数。对于进一步的计算,该步骤将所述系数恢复成它 们原始的幅度范围。
然而,除法(或等价乘法)在许多实施过程中是昂贵的操作。注意量 化操作被应用于每个系数,并且通常有与输入象素同样多的系数。
在另一种方法中,与除法(或乘法)相反,量化被限制于这样的除数, 该除数为2的幂。其优点是可通过对二进制数进行位移操作来施行。移动 在许多实施过程中是非常低廉的操作。 一个例子是集成电路(FPGA或 ASIC)实施例;乘法电路非常巨大,但移位器电路要小得多。而且,在 许多计算机上,乘法需要较长的时间才能完成,或者与移位相比,在执行 方面提供较少的并行性。
问题
虽然通过移位进行的量化对于计算过程来说是非常有效的,但对于某 些用途的缺点是它只允许对压縮速率(输出比特率)进行粗调。实际上 可以观察到将量化移位参数改变最小可能的量即+1或-1近似地导致最终 的比特率发生2倍的变化。对于某些压縮应用,这是非常合意的。对于其 它应用,需要更精细的速率控制。到此为止,满足该要求的唯一方式将放 弃通过移位进行的量化,从而也会舍弃该方法的效率。 方法
为了在不舍弃移位量化效率的情况下克服不精确问题,我们会略微的 归纳量化。与以前使用用于每个系数的单个共用移位参数相反,我们允许 对每个单独的零游程压縮存储区或堆使用明显不同的移位参数。用于每个 这种区域或堆的参数值被记录在压縮输出文件中。该解决方案现在允许有 效的比特速率的范围介于从一致的应用于所有系数的量化参数得到的最近的两个速率之间。例如,考虑这样一种情况,其中除了一个之外的所有 子带都使用相同的量化参数Q,而那个子带使用Q+l。与对于所有子带使
用Q相比,结果得到的比特率被降低,但不会低于对于所有子带使用Q+l 的情况。我们使中间比特率对压縮给出更好的、更精细的控制。
注意计算效率几乎精确的等于纯移位量化的计算效率,因为典型的应 用于每个系数的操作仍然是移位。 选择参数.
在上面的方法中,试图认为使用P子带区域,在一个区域上增加量化 参数将影响输出速率约1/P,与对于所有子带增加量化参数一样多。然而, 通常不是这样的,因为该区域通常包含完全不同数量的有效信息。该最小 量化改变步骤可将区域大小改变近似2倍,其对于整体变化被观察到,但 如果那个区域只具有较少的有效系数,则对压縮整体速率的影响将是较小 的。
因此为了选择一组最佳接近期望压縮速率的量化参数,我们必须要考 虑其量化正被调节的区域的期望大小,以及子带区域上的调节的期望效 果。这通常不能用闭式公式来实行,但可使用简单的迭代处理来实行。 调节量化参数的算法
该示例算法开始于通过初始化给出或从先前的图像或GOP继续的一 组量化参数。对每个零游程压縮区域P调用这些Q[P]。我们还使压縮输 出速率具有期望的变化,由因数C表示。本说明假定将Q值改变1会导 致输出速率从使用那个Q值的压缩部分变化F倍。我们假定C<F和 1/F<1/C。所述区域的大小为S[P];为了该算法的目的,可估计该大小而
步骤1
如果C-l,则什么也不做并退出调节处理。 如果Ol,则设置D-F-1。 如果CX1,则设置D气1/F)-1。 计算作为所有子带区域大小和的S。
步骤2
选择其量化参数还未改变的子带区域P。计算t=t+d*s[p]
如果Ol,则设置q[p]=q[p]-1
如果c<1 ,则设置q[p]=q[p]+1
步骤3
如果t足够接近(^s,则退出调节处理。 转至步骤2。 鹏
在上面算法的步骤3中,测试"足够接近"可以若干种方法中的任何 一种来实行。该测试的一个简单版本如下。 测试3
如果(oi禾口 tx^s)或((:<1禾口丁<(:*8)......
只要估计的速率调节超过规定的调节,该测试就停止叠代。 一种可选择方案是回复至该步骤之前的一个步骤。这么做所需的步骤 对于任何熟练的编程人员来说都将是显而易见的。
另一个可选择方案是在囊括规定的调节c的两个步骤之间进行选择,
例如通过选择导致更接近规定速率的估计值的步骤。再次,这对于任何熟
练的编程人员来说都显然知道如何这么做。
优点
上面给出的算法具有这样的属性,即量化变化被保持在彼此一个步骤
之内q值或者被改变一,或者根本不改变,并且所有变化都是在相同的
方向上。通过保留关于在步骤2选择p的信息,可容易的扩展所述处理, 以在所述算法的许多执行过程中(即在许多连续的图像或gop压縮操作 中)都保持那样的属性。这通常是期望的,因为量化调节不仅对压縮输出 速率具有影响,而且还对图像质量有影响(即,由于压縮处理还对解压縮
的图像或视频中的噪音或假象有影响)。
然而,应该注意将q值保持在一个同等的步骤之内的这种属性并不是 必需的,并且有些时候可发送该属性以有利于其它考虑。 结论
我们给出了一种方法,与使用一致移位量化相比,通过该方法可更加 精确的控制压縮输出比特率,同时保持移位量化的计算效率优点。
权利要求
1. 一种用于时间视频压缩的方法,包括以第一顺序对视频部分进行缓冲;和以第二顺序对视频部分至少部分地进行时间压缩。
2. 如权利要求1所述的方法,其中所述视频部分包括帧。
3. 如权利要求1所述的方法,其中所述视频部分包括字段。
4. 如权利要求1所述的方法,其中所述视频部分包括半字段。
5. 如权利要求l所述的方法,其中所述视频部分包括图像信息。
6. 如权利要求1所述的方法,其中以第二顺序对所述视频部分进行 完全时间压縮。
7. 如权利要求1所述的方法,其中所述视频部分在缓冲之前至少被 部分压縮。
8. 如权利要求1所述的方法,其中在缓冲之后以第二顺序对所述视 频部分至少部分地进行时间压缩。
9. 如权利要求1所述的方法,其中所述视频部分是从多个信源接收的。
10. 如权利要求9所述的方法,其中使用与视频部分相关的识别信息 来识别信源。
11. 如权利要求9所述的方法,还包括确定是否有来自信源中的至少 一个的充足的视频部分。
12. 如权利要求11所述的方法,其中所述确定步骤是使用与来自每 个信源的视频部分的数量相关的数据结构执行的。
13. 如权利要求11所述的方法,其中如果确定有来自至少一个信源 的充足的视频部分,则对视频部分至少部分地进行时间压縮。
14. 如权利要求9所述的方法,其中最先的视频部分首先被至少部分 地进行时间压縮。
15. 如权利要求1所述的方法,其中来自多个信源的视频部分在缓冲 器组中被缓冲。
16. —种包含在计算机可读介质上用于时间视频压縮的计算机程序 产品,包括用于以第一顺序对视频部分进行缓冲的计算机代码;和 用于以第二顺序对视频部分至少部分地进行时间压缩的计算机代码。
17. —种用于时间视频压缩的系统,包括 用于以第一顺序对视频部分进行缓冲的装置;和 用于以第二顺序对视频部分至少部分地迸行时间压縮的装置。
18. —种用于时间视频压縮的系统,包括 用于以第一顺序对视频部分进行缓冲的缓冲器;和 与缓冲器通信的编码器,所述编码器用于以第二顺序对视频部分至少部分的进行时间压縮。
19. 对来自多个信源的视频进行压縮的方法,包括 借助单一视频流从多个信源接收视频;和对来自所述信源的视频进行压缩; 其中使用多个速率控制来执行压缩。
20. 如权利要求19所述的方法,其中为所述多个信源中的每一个提 供单独的速率控制状态存储器。
21. 如权利要求19所述的方法,其中所述速率控制对于每个信源是 不同的。
22. 如权利要求19所述的方法,其中使用与所述视频相关的识别信 息来识别所述信源。
23. 如权利要求19所述的方法,其中在接收视频时识别与所述信源 相关的速率控制。
24. 如权利要求23所述的方法,其中基于识别的速率控制来控制压 縮。
25. 如权利要求19所述的方法,其中在压缩之后更新速率控制。
26. 如权利要求25所述的方法,其中更新速率控制以提供基本恒定 质量的压缩。
27. 如权利要求25所述的方法,其中更新速率控制以根据基本恒定的比特率提供压縮输出。
28. 如权利要求25所述的方法,其中在第一模式中更新速率控制以 提供基本恒定质量的压縮,而在第二模式中,更新速率控制以根据基本恒 定的比特率提供压縮输出。
29. —种包含在计算机可读介质上的用于对来自多个信源的视频进 行压縮的计算机程序产品,包括用于借助单一视频流从多个信源接收视频的计算机代码;和用于对来自所述信源的视频进行压縮的计算机代码;其中使用多个速率控制来执行压縮。
30. —种用于对来自多个信源的视频进行压縮的系统,包括-用于借助单一视频流从多个信源接收视频的装置;和用于对来自所述信源的视频进行压縮的装置; 其中使用多个速率控制来执行压縮。
31. —种用于对来自多个信源的视频进行压縮的系统,包括-用于借助单一视频流从多个信源接收视频的编码器,所述编码器用于对来自所述信源的视频进行压缩;其中使用多个速率控制来执行压縮。
32. —种用于对来自多个信源的视频进行压縮的方法,包括 从多个信源接收视频;和 对来自所述信源的视频进行压縮; 其中利用单个压缩模块使用多个速率控制来执行压縮。
33. 如权利要求32所述的方法,其中为所述多个信源中的每一个提 供单独的速率控制状态存储器。
34. 如权利要求32所述的方法,其中所述速率控制对于每个信源是 不同的。
35. 如权利要求32所述的方法,其中使用与所述视频相关的识别信 息来识别所述信源。
36. 如权利要求32所述的方法,其中在接收视频时识别与所述信源 相关的速率控制。
37. 如权利要求36所述的方法,其中基于识别的速率控制来控制压縮。
38. 如权利要求32所述的方法,其中在压縮之后更新速率控制。
39. 如权利要求38所述的方法,其中更新速率控制以提供基本恒定 质量的压縮。
40. 如权利要求38所述的方法,其中更新速率控制以根据基本恒定 的比特率提供压缩输出。
41. 如权利要求38所述的方法,其中在第一模式中更新速率控制以 提供基本恒定质量的压缩,而在第二模式中,更新速率控制以根据基本恒 定的比特率提供压縮输出。
42. —种包含在计算机可读介质上用于对来自多个信源的视频进行 压縮的计算机程序产品,包括用于从多个信源接收视频的计算机代码;和用于对来自所述信源的视频进行压縮的计算机代码;其中利用单个压缩模块使用多个速率控制来执行压缩。
43. —种用于对来自多个信源的视频进行压缩的系统,包括 用于从多个信源接收视频的装置;和用于对来自所述信源的视频进行压縮的装置;其中利用单个压缩模块使用多个速率控制来执行压縮。
44. 一种用于对来自多个信源的视频进行压縮的系统,包括 单一压縮模块,用于从多个信源接收视频,所述单个压縮模块用于对来自所述信源的视频进行压縮;其中使用多个速率控制来执行压縮。
45. 如权利要求19所述的方法,其中速率控制对于不同的信源组是 不同的。
46. 如权利要求32所述的方法,其中速率控制对于不同的信源组是 不同的。
全文摘要
本发明提供一种用于时间视频压缩的系统、方法和计算机程序产品。在使用中,以第一顺序(302)对视频部分进行缓冲。另外,以第二顺序(304)对视频部分至少部分的进行时间压缩。
文档编号H04N7/12GK101421934SQ200480034777
公开日2009年4月29日 申请日期2004年9月29日 优先权日2003年9月30日
发明者克拉西米尔·D·科拉罗夫, 史蒂文·E·桑德斯, 威谦·C·林奇 申请人:德罗普莱特科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1