视频压缩概述
我知道,我对与电子有关的所有事情都很着迷,但不论从哪个角度看,今天的现场可编程门阵列(FPGA),都显得“鹤立鸡群”,真是非常棒的器件。如果在这个智能时代,在这个领域,想拥有一技之长的你还没有关注FPGA,那么世界将抛弃你,时代将抛弃你。本公众号作者ALIFPGA,多年FPGA开发经验,所有文章皆为多年学习和工作经验之总结。
视频压缩
视频数据是极其消耗存储空间的,而且最可怕的是它还在不断增长。一秒钟的未压缩4:2:2 NTSC视频需要27MB的存储空间,一分钟就需要1.6GB!由于未经处理的原始视频占用非常高的专用带宽,因此业界花费了很多的努力,只要有可能,就尽量避免传输未经压缩的数据。已经开发出了一些压缩算法,可以将传输NTSC/PAL视频所需的带宽从每秒数十兆降低到每秒几兆,并且可以根据视频质量来调整带宽的效率。
压缩率高度依赖于要压缩视频的内容以及使用的压缩算法。有些编码器,例如MPEG-4和H.246,具有分别对前景和背景信息进行编码的能力,这样就比将整幅图像作为一个整体来处理具有更高的压缩比。一些在空间上变化非常小的图像(例如大块的单一颜色区域),以及那些帧与帧之间相对比较静态的视频(例如慢速变化的背景)都是可以大比例压缩的。另一方面,一些细节丰富的图像和快速变化的视频内容将会降低压缩率。
大多数嵌入式媒体处理开发人员倾向于将视频编解码器看作是”drop-in”的模块,处理器供应商或第三方源代码已经专门针对该平台做了优化。换句话说,现在的大多数嵌入式多媒体设计员期望获得视频解编码器,而不是从头开始自己设计。这样,他们主要关心的问题就变成了,在他们的应用中应该选用哪个编解码器。我们简单介绍一下下面这些较为流行的编解码器。
选择视频编码器不存在对错,——它实际值取决于你的最终应用真正需要什么。如果内容的来源、分发和显示都得到了很好的控制,那么可以考虑使用具有专有权的编解码器。这样可以获得很高的性能,而不用担心受到标准组织的干预。或者,如果你不愿意支付专利使用费,那么开源编解码器就是非常有吸引力的替代方案。内容保护、网络流性能、比特率特性(恒速还是可变速率、编码选项等)都是区分编解码器的其他重要特征。另外也不要忘记考虑下面这些事项:你选用的媒体处理器连接的是哪种编码器,具有多少种实现方式,它们的技术支持是否良好以及使用这些编解码器的综合成本如何(前期成本和单位成本)。
下表列出了一些流行的视频编码标准,以及各自的原始提出机构,我们对每一个标准做一些简单的介绍。
流行的视频编码标准
1、 MotionJPEG(M-JPEG)
虽然JPEG标准没有专门包含M-JPEG,但是M-JPEG也提供了一种很方便的方法压缩视频帧,并且是在MPEG-1正式形成方法之前。实质上,每一个视频帧都是单独进行JPEG编码的,然后按顺序存储(之后解码)压缩后的视频帧。
还有MotionJPEG2000编解码器,它使用了J2K代替JPEG去编码各个视频帧。就像J2K代替了JPEG一样,这个编解码器也可能会取代M-JPEG。
2、H.261
这个标准是在1990年开发出来的,是第一个被广泛使用的视频编解码器。该标准引入了将一帧图像分割为16X16的“宏块”的概念,跟踪这些宏块在不同帧之间的运动就可以计算出运动补偿矢量。这个标准主要定位于在ISDN线路(px64kbps,这里p的范围是1~30)上进行的视频电话应用。输入帧通常为30fps的CIF图像,而输出压缩帧大约为10fps分辨率,传输速度为64~128kbps。虽然这个标准现在还在继续使用,但几乎已经被其后继者H.263、H.264所取代。
3、 MPEG-1
MPEG-1诞生于20世纪90年代初期,它提供了一种可以数字化的存储音频和视频数据的方法,并能以大体相当于NHS(VIDEO HOME SYSTEM,家用录像系统)的质量恢复出来。这个编解码器的目标是在CD-ROM上存储视频数据,具体来说,,基本目的是允许在容量为650~750MB的CD-ROM上存储和回放VHS质量的视频,允许创建一个所谓的视频CD(VCD)。组合起来的视频/音频比特流可以适应1.5Mbps的带宽,这对应于当时从CD-ROM中和数字音频磁带系统中恢复出来的数据。
在更高的比特率下,MPEG-1在质量上超过了H.261(对于CIF输入帧,允许1Mbps以上的速率)。虽然CIF也用于某些源数据流,但一种称为SIF的格式也许更流行。这是一种每帧有352X240像素的格式,大约相当于720X480 NTSC帧的一半。MPEG-1是专门为以每秒30帧的速度压缩SIF格式逐行扫描视频而开发出来的。和H.261相比,MPEG-1中增加了双向运动预测和半像素运动估计。虽然现在有些比较顽固的人仍然在用MPEG-1创建VCD,但是和MPEG-2相比,已经很少见了。
4、MPEG-2
由于受到跨多种终端市场需求的驱动,MPEG-2很快就超越了MPEG-1,并具有编码比特率从1 Mbps到30Mbps扩展能力。这就为高性能应用(包括DVD视频、标清电视和高清电视)打开了一扇大门。即使是在比较低的MPEG-2比特率下,最终的码流质量也要优先于MPEG-1。
这个复杂的标准由10个部分组成,“视觉”部分也称为H.262。MPEG-1主要目标在于CD和VHS质量的视频,但MPEG-2则实现了DVD质量的视频,输入符合BT.601(NTSC720X480,30fps)的要求,输出码流速率范围是4~30Mbps,这根据选择的“性能配置”有所不同。MPEG-2既支持隔行扫描,也支持逐行扫描。
5、H.263
这个编码器在视频会议系统中应用非常普遍,在所有的比特率上都要优先于H.261。输入源通常为30fps的QCIF或CIF,在10fps下,输出比特率甚至可以低于28.8kbps,这和H.261具有同样的性能。因此,H.261需要在ISDN线路上传输,而H.263用普通的电话线就可以传输。H.263应用的终端市场包括视频通话和网络监控(包括基于互联网的应用)。
6、MPEG-4
MPEG-4是从H.263的基线开始,增加了一些改进。其主要的目标是网络上传输的流式多媒体。因为网络通常有些带宽限制,所以一般来讲,MPEG-4编解码的输入源是CIF及其以下的分辨率。MPEG-4允许对不同类型的对象选用不同的编码方式。例如,静态的背景纹理和移动的前景形状就被区别对待,以便使整体的压缩率最大。MPEG-4使用了几种不同的性能配置,其中最流行的是“Simple”和“Advanced Simple”。Simple Profile适合于较低的视频分辨率和较低的比特率,例如手机上的视频流。Advanced Simple Profile主要用于较高的视频分辨率和较高的比特率。
7、DV
DV是专门为消费类(随后也包括专业类)视频设备而开发的,它的压缩策略本质上与Motion JPEG相似,可以接收亮度和色度信息的BT.601采样格式。在摄像机中,它的应用是相当普遍的,这种格式根据不同的比特率和色度下采样策略,可以允许几种不同的“播放”模式。DV通常在IEEE1934接口上传输,它的比特率可以从标清消费级设备常用的25Mbps扩展到高清视频设备常用的100Mbps以上。
8、QuickTime
QuickTime格式由苹果公司开发,包含了一组多媒体编解码器和一些处理数字视频、音频、动画、图像和文本的算法。QuickTime7.0遵从MPEG-4和H.264标准。事实上,QuickTime文件格式作为ISO的MPEG-4标准的基础,部分原因在于它提供了一种完全点对点的解决方案,从视频捕获、编辑和存储,到内容回放和分发,全都包括。
9、RealVideo
RealVideo是由RealNetworks公司开发的具有专利权的视频编解码器。RealVideo开始是作为PC上的低比特率的流媒体格式开发出来的,但是现在它也延伸到了便携式设备市场中,也用于宽带流媒体和手机基础设施。RealVideo可以用于实时流,也可以用于下载文件之前的视频点播预览。RealNetworks将RealVideo和RealAudio捆绑在一起,RealAudio是它的专有音频编解码器,产生的一个RealMedia集成文件,可以用于PC上的应用程序RealPlayer播放。
10、Windows Media Video(WMV)
这个编解码器是微软公司开发的MPEG-4的变体。它也具有数字版权管理能力,可以控制如何浏览视频内容、复制、修改或重放。
11、Theora
Theora是一个开源、免专利使用费的视频编解码器,由Xiph.org基金会开发,该基金会已经开发了若干个开源音频编解码器。Theora是基于VP3编解码器开发出来的,后者是由On2Technologies向公共领域发布的。这个编解码器主要是和一些低比特率的编解码器竞争。
12、H.264
H.264也称为MPEG-4第10部分、H.26L或MPEG-4AVC profile。实际上,这个标准是一个多方合作的象征,由ITU-T和ISO/IEC委员会共同定义出来的。H.264的目标是和前面的标准相比,要在保证合理的视频质量的前提下将比特率降低50%以上。该标准可以在很广的比特率和视频分辨率范围内工作。H.264在比特率上有了极大的降低,其代价就是实现的复杂度大幅增加。这种复杂度是的D-1格式的H.264编码仅仅在高端媒体处理器中才有应用,通常还需要两个分立器件来分担处理任务。
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号
扫描二维码关注杭州卿萃科技FPGA极客空间