视频压缩

视频压缩

视频压缩技术用于减少和删除冗余的视频数据,以便更加高效地通过网络传送数字视频数据,并保存在计算机磁盘上。利用高效的压缩技术可显著减小归档的 文件大小,对视觉效果几乎或完全没有任何不利影响。不过,如果提高某个特定压缩技术的压缩比,进一步缩小文件大小的话,视频质量将会受到影响。

压缩技术有不同的类型,包括专有技术和工业标准技术。目前,大部分网络视频供应商采用标准压缩技术。在保证兼容性和互操作性方面,标准具有重要作 用。由于用于不同目的,而且有些视频监控应用领域,要求视频自记录之日起可供多年后查看,因此兼容性和互操作性与视频压缩有着极为密切的关系。利用标准, 最终用户设计视频监控系统时,可在不同供应商之间进行挑选,而不必依赖一家供应商。

安讯士采用三种不同的视频压缩标准,分别为M-JPEG、MPEG-4 Part 2(或简称MPEG-4)和H.264。H.264是效率最高的最新视频压缩标准。

视频编解码器

在压缩过程中,需要应用压缩算法对源视频进行压缩以创建压缩文件,以便进行传输和存储。要想播放压缩文件,则需要应用相反的解压缩算法对视频进行还 原,还原后的视频内容与原始的源视频内容几乎完全相同。文件压缩、传送、解压和显示所需的时间称为时延。压缩算法越高级,时延就越长。

视频编解码器(编码器/解码器)是指两个协同运行的压缩-解压算法。使用不同标准的视频编解码器通常彼此之间互不兼容;也就是说,使用一种标准进行 压缩的视频内容无法使用另外一种标准进行解压缩。例如,MPEG-4 Part 2解码器就不能与H.264编码器协同运行。这是因为一种算法无法正确地对另外一个算法的输出信号进行解码,然而我们可以在同一软件或硬件中使用多种不同 的算法,实现多种格式共存。

图像压缩与视频压缩

由于不同的视频压缩标准会使用不同的方法来减少数据量,因此压缩结果在比特率、质量和时延方面也各不相同。

图像压缩采用帧内编码技术。这种技术通过删除肉眼看不到的无关信息,仅压缩一帧图像内的数据。M-JPEG是这种压缩标准的一个例子。M-JPEG序列中的图像按单个JPEG图像进行编码或压缩。

对M-JPEG格式来说,上述序列中的三个图像分别作为独立的图像(I帧)进行编码和发送,彼此之间互不依赖。

视频压缩算法,如MPEG-4和H.264等,采用帧内预测模式压缩一系列帧之间的数据。这种算法涉及多种技术,如差分编码,一帧与参考帧进行比较,仅编码相对于参考帧发生变化的像素。这种方法减少了编码和发送的像素值数量。这种顺序编码的图像以原有视频顺序显示。

对差分编码(包括H.264在内的大多数视频压缩标准都采用这种方法)来说,只有第一个图像(I帧)是将全帧图像信息进行编码。在后面的两个图像(P帧)中,其静态部分(即房子)将参考第一个图像,而仅对运动部分(即正在跑步的人)使用运动矢量进行编码,从而减少发送和存储的信息量。

其他技术,如基于块的运动补偿可用来进一步减少数据。基于块的运动补偿考虑到视频序列中构成新帧的大量信息都可以在前面的帧中找到,但可能会在不同的位置 上。所以,这种技术将一个帧分为一系列的宏块(像素块)。然后,通过在参考帧中查找匹配块的方式,逐个块地构建或者“预测”一个新帧。如果发现匹配的块, 编码器只需要对参考帧中发现匹配块的位置进行编码。从名称可以看出,与对块的实际内容进行编码相比,只对运动矢量进行编码可以减少所占用的数据位。

基于块的运动补偿图示。

采用帧间预测编码帧时,将会把图像序列中的帧划分为不同类型的帧,如I帧、P帧或B帧。

I帧(帧内编码帧)是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码。视频序列中的第一个帧始终都是I帧。如果所传输的比特流遭到破 坏,则需要将I帧用作新查看器的起始点或重新同步点。I帧可以用来实现快进、快退以及其它随机访问功能。如果新的客户端将参与查看视频流,编码器将以相同 的时间间隔或者根据要求自动插入I帧。I帧的缺点在于它们会占用更多的数据位,但从另一方面看,I帧不会因丢失数据而产生可觉察的模糊现象。

P帧(帧间预测编码帧)需要参考前面的I帧和/或P帧的不同部分才能进行编码。与I帧相比,P帧通常占用更少的数据位,但其缺点是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感。

B帧(双向预测编码帧)需要同时以前面的帧和后面的帧作为参考帧。采用B帧会加大时延。

带有I帧、B帧和P帧的典型视频序列。P帧只需要参考前面的I帧或P帧,而B帧则需要同时参考前面和后面的I帧或P帧。

当视频解码器逐个帧地对比特流进行解码以便重构视频时,必须始终从I帧开始解码。如果使用了P帧和B帧,则必须与参考帧一起解码。

安讯士网络视频产品允许用户设置GOV(视频组)长度,用以确定发送另一I帧之前需要发送多少P帧。降低I帧的频率(延长GOV),可降低比特率。若要缩短时延,则不使用B帧。

除差分编码和运动补偿外,还可以采用其他先进方法减少数据量,提高视频质量。例如,H.264 支持各种高级技术,从用于I帧编码的预测机制、改进运动补偿到亚像素精度、环内去块效应滤波器直至平滑块边缘(模糊现象)等。

下一个主题:压缩格式

压缩格式