常见视频编解码格式

常见视频编解码格式

1视频文件类别
常言道:物以类聚,人以群分。视频文件也不例外,细细算起来,视频文件可以分成两大类:其一是影像文件,比如说常见的VCD便是一例。其二是流式视频文件,这是随着国际互联网的发展而诞生的后起视频之秀,比如说在线实况转播,就是构架在流式视频技术之上的。
1.1影像格式
  日常生活中接触较多的VCD、多媒体CD光盘中的动画……这些都是影像文件。影像文件不仅包含了大量图像信息,同时还容纳大量音频信息。所以,影像文件的“身材”往往不可小觑。

  1. AVI格式
  2. MOV格式
  3. MPEG/MPG/DAT格式
    1.2流式视频格式
      目前,很多视频数据要求通过Internet来进行实时传输,前面我们曾提及到,视频文件的体积往往比较大,而现有的网络带宽却往往比较“狭窄”,千军万马要过独木桥,其结果当然可想而知。客观因素限制了视频数据的实时传输和实时播放,于是一种新型的流式视频(Streaming Video)格式应运而生了。这种流式视频采用一种“边传边播”的方法,即先从服务器上下载一部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。这种“边传边播”的方法避免了用户必须等待整个文件从Internet上全部下载完毕才能观看的缺点。到目前为止,Internet上使用较多的流式视频格式主要是以下三种:
  4. RM(Real Media)格式
      RM格式是RealNetworks公司开发的一种新型流式视频文件格式,它麾下共有三员大将:RealAudio、RealVideo和RealFlash。RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输连续视频数据,而RealFlash则是RealNetworks公司与Macromedia公司新近合作推出的一种高压缩比的动画格式。RealMedia可以根据网络数据传输速率的不同制定了不同的压缩比率,从而实现在低速率的广域网上进行影像数据的实时传送和实时播放。这里我们主要介绍RealVideo,它除了可以以普通的视频文件形式播放之外,还可以与RealServer服务器相配合,首先由RealEncoder负责将已有的视频文件实时转换成RealMedia格式,RealServer则负责广播RealMedia视频文件。在数据传输过程中可以边下载边由RealPlayer播放视频影像,而不必像大多数视频文件那样,必须先下载然后才能播放。目前,Internet上已有不少网站利用RealVideo技术进行重大事件的实况转播。
  5. MOV文件格式(QuickTime)
      MOV也可以作为一种流文件格式。QuickTime能够通过Internet提供实时的数字化信息流、工作流与文件回放功能,为了适应这一网络多媒体应用,QuickTime为多种流行的浏览器软件提供了相应的QuickTime Viewer插件(Plug-in),能够在浏览器中实现多媒体数据的实时回放。该插件的“快速启动(Fast Start)”功能,可以令用户几乎能在发出请求的同时便收看到第一帧视频画面,而且,该插件可以在视频数据下载的同时就开始播放视频图像,用户不需要等到全部下载完毕就能进行欣赏。此外,QuickTime还提供了自动速率选择功能,当用户通过调用插件来播放QuickTime多媒体文件时,能够自己选择不同的连接速率下载并播放影像,当然,不同的速率对应着不同的图像质量。此外,QuickTime还采用了一种称为QuickTime VR的虚拟现实(VR,Virtual Reality)技术,用户只需通过鼠标或键盘,就可以观察某一地点周围360度的景象,或者从空间任何角度观察某一物体。
  6. ASF(Advanced Streaming Format)格式
      Microsoft公司推出的Advanced Streaming Format (ASF,高级流格式),也是一个在Internet上实时传播多媒体的技术标准,Microsoft公司的野心很大,希图用ASF取代QuickTime之类的技术标准。ASF的主要优点包括:本地或网络回放、可扩充的媒体类型、部件下载、以及扩展性等。ASF应用的主要部件是NetShow服务器和NetShow播放器。有独立的编码器将媒体信息编译成ASF流,然后发送到NetShow服务器,再由NetShow服务器将ASF流发送给网络上的所有NetShow播放器,从而实现单路广播或多路广播。这和Real系统的实时转播则是大同小异。
    2常见的视频的编码及封装格式
    2.1常见视频编码格式
    常见的编码格式有H.264、H.263、MPEG-1、MPEG-2、MPEG、4、Sorenson Spark、VC-1、JPEG、RV、DivX、On2 True Motion VP6。对于高清视频来说,主流的编码技术目前主要有 MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB 和 WMV-HD 等等。其中,H264/AVC、VC-1、MPEG-2 是蓝光(Blu-ray Disc)所选择的编码格式,也是目前最流行的高清视频编码格式。另外就是高清视频的封装格式,封装格式和编码格式是互相区别的,许多人会把它们混淆。
    下图为常见编码格式的logo:
    在这里插入图片描述
    图1.1常见编码格式logo
  7. H264/X264/AVC 编码格式
    绝大多数视听玩家对于 H264 编码都不会感到陌生,H264 编码的身世显赫,是 ITU-T(国际电信联盟视频编码专家组)与 ISO/IEC(国际标准化组织动态图像专家组)合作组成的 JVT(联合视频组)推动的新一代数字视频编码标准,也称为 MPEG-4/AVC 编码。H264 编码依托雄厚的背景,在技术上独树一帜,大幅领先于其它编码算法。
    X264 编码,是 H264 编码的一个开源分支,它符合 H264 标准,其功能在于编码,而不作为解码器使用,X264 编码最大的特点在于注重实用,它在不明显降低编码性能的前提下,努力降低编码的计算复杂度,X264 对于 H264 编码中的一些复杂编码特性做了折衷处理,其压缩视频体积小于XVID(MPEG-4)编码视频,以小体积、高画质的特点得到了广泛认可。
  8. H.263编码格式
    H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它在许多应用中可以认为被用于取代H.261。H.263的编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。
    1998年IUT-T推出的H.263+是H.263建议的第2版,它提供了12个新的可协商模式和其他特征,进一步提高了压缩编码性能。如H.263只有5种视频源格式,H.263+允许使用更多的源格式,图像时钟频率也有多种选择,拓宽应用范围;另一重要的改进是可扩展性,它允许多显示率、多速率及多分辨率,增强了视频信息在易误码、易丢包异构网络环境下的传输。另外,H.263+对H.263中的不受限运动矢量模式进行了改进,加上12个新增的可选模式,不仅提高了编码性能,而且增强了应用的灵活性。H.263已经基本上取代了H.261
  9. MPEG-1 编码格式
    MPEG-1是MPEG组织制定的第一个视频和音频有损压缩标准。视频压缩算法于1990年定义完成。1992年底,MPEG-1正式被批准成为国际标准。MPEG-1是为CD光碟介质定制的的视频和音频压缩格式。一张70分钟的CD光碟传输速率大约在1.4Mbps。而MPEG-1采用了块方式的运动补偿、离散馀弦变换(DCT)、量化等技术,并为1.2Mbps传输速率进行了优化。MPEG-1随后被Video CD采用作为核心技术。MPEG-1的输出质量大约和传统录像机VCR,信号质量相当,这也许是Video CD在发达国家未获成功的原因。
  10. MPEG-2 编码格式
    MPEG-2 编码标准是由 MPEG(Moving Picture Experts Group)工作组发布的视频与音频压缩国际标准。MPEG-2 编码于 1994 年发布,常用于广播信号(卫星电视、有线电视)的视频和音频编码,经过后期不断修改,不仅成为 DVD 的核心技术,还应用于 HDTV 高清电视传输。
  11. MPEG-4 编码格式
    MPEG4于1998 年11 月公布,原预计1999 年1月投入使用的国际标准MPEG4不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(Electronic News)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图像质量。
  12. Sorensen Spark编码格式
    Sorenson编解码器可以指三个专有的视频编解码器:Sorenson视频,Sorenson视频3或Sorenson Spark。 Sorenson视频也被称为Sorenson视频编解码器,Sorenson视频量化或SVQ。Sorenson Spark也被称为H.263或FLV1Sorenson(而且有时误为Flash视频(FLV),这是以Adobe Flash容器格式名称命名)。 这两种编解码器的设计由Sorenson媒体公司。Sorenson视频是用在苹果的QuickTime和Sorenson Spark在用在Adobe Flash容器中。
  13. VC-1 编码格式
    WMV(Windows Media Video)作为经久不衰的一种视频编码,一直在不断改进,2003 年,微软基于 WMV 第九版(WMV9)编码技术,正式提出了 VC-1 编码标准,并于 2006 年正式成为国际标准。VC-1 编码作为较晚推出的高清编码算法,自然吸收了 MPEG-2 与 H264 编码的优点,其压缩比介于 MPEG2 和 H264 之间,编解码复杂性仅有 H264 的一半,即压缩时间更短、解码计算更小,在微软的大力推动下,VC-1 编码已经得到了 BD 蓝光光盘、电影及电视学会(SMPTE)的支持。
    近几年来,为了更好的推广 WMV9/VC-1 编码标准,微软不遗余力的建立了 WMV-HD 高清资源站点,大量发布采用 VC-1 编码压制的 720P、1080P 宣传片及演示片(WMV-HD 视频格式) ,试图营造声势,吸引用户关注。不过,中庸的技术(与 H264 相比无明显编码优势)、封闭的平台(限于 Windows 系统)、后发的劣势(2006 年通过成为国际标准)仍然给微软 VC-1 编码的应用前景带来了较大的不确定性。
  14. JPEG编码格式
    JPEG 是Joint Photographic Experts Group(联合图像专家小组))的缩写。JPEG的压缩方式通常是破坏性资料压缩(lossy compression),意即在压缩过程中图像的品质会遭受到可见的破坏,有一种以JPEG为基础的标准Progressive JPEG是采用无失真的压缩方式,但Progressive JPEG并没有受到广泛的支援。
  15. RV编码格式
    RealVideo格式文件包括后缀名为RA、RM、RAM、RMVB的四种视频格式。 Real Video是一种高压缩比的视频格式,可以使用任何一种常用于多媒体及Web上制作视频的方法来创建RealVideo文件。例如Premiere、 VideoShop以及AfterEffects等,对于文件的播放可用realplayer和暴风影音播放。
  16. DivX编码格式
    DivX格式,这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。
  17. On2 TrueMotion VP6编码格式
    On2 TrueMotion VP6是主要的移动视频标准,他采用了Adobe Flash Lite™ 3的一些标准,数以百计的网络门户,用户自己制作的内容,以及社交网络普遍采用基于Flash的VP6格式。
    2.2视频的封装格式
      封装格式其实是一个“容器”,它不同于编码格式,封装就相当于捆绑打包,将已经编码好的视频文件和音轨文件打包在一起,并按照一定规则建立排序和索引,便于播放器或播放软件来索引播放。常见的封装格式有 MKV、AVI、MOV、TS、PS 等等,高清媒体文件的后缀名(扩展文件名)一般都是媒体的封装格式。

(1)MOV 格式:MOV 多见于 Apple QuickTime 网站上的电影预告片。MOV 类似于 RMVB,过于封闭自守,民间制作组没有人会用这个不方便的形式。
  (2)AVI 格式:AVI 封装是微软在上世纪 90 年代初创立的封装标准,是当时为对抗 QuickTime 的 MOV 格式而推出的,因为当时还没有流式播放需要,AVI 的将索引布置在打包文件的尾部,这就使得AVI封装不能做到流式播放(流媒体)。AVI 封装只能支持有限的几种视频音频编码形式,且AVI不能支持音频的 VBR 动态比特率编码。
  (3)TS 格式:TS(Transport Stream)是一种比较先进的封装形式,蓝光原盘中,就采用了 TS 封装。TS 封装支持几乎所有编码的高清视频和音轨文件。PS(Program Stream)封装的技术基本和 TS 相同,但 PS 封装和 AVI 一样,都不是流媒体,不能够支持流式播放,PS 封装使用在原先的 HDDVD 中。在高清标准下,MPEG-2 编码的视频文件主要采用 TS 封装格式。
  (4)MKV 格式:MKV(Matroska)是一种新兴的多媒体封装格式,可以将各类视频编码、16 条或以上不同格式的音频和语言不同的字幕封装在一个文件内,它具有开放源代码、音视频编码丰富、网络亲和性好等优势,已经得到众多视频压制组和玩家的支持,正逐渐成为高清视频的主流视频格式。H264 编码与 X264 编码目前大多采用 MKV 封装格式。
3视频的播放组件及调用流程
  视频文件的解码过程如下依次需要用到的组件有“分离器”、“解码器”、“渲染器”,它们统称为“滤镜”。
3.1分离器(Splitter)
  要正确地播放多媒体文件,播放器首先要正确地调用分离器,把视频流和(或)音频流正确地分离出来,然后交给解码器进行解码,这就是分离器的使命。上文中说到有不少的封装格式,每一种封装格式都必须有相对应一种分离器,才能正确的把视频和音频分离出来以供解码器解码。
常用的分离器有:
 Gabest MPEG Splitter(Media Player Classic 作者编写的分离器)、
 KMP Splitter(KMPlayer 原配的分离器)
 Haili Media Splitter
这三种分离器能够支持较多的封装格式,其它的分离器还有
 Moonlight-Elecard MPEG2 Demultiplexer(月光分离器)、
 nVIDIA Transport Demux(nVIDIA 公司的分离器,配合 PureVideo 使用)、
 CyberLink Demux(PowerDVD 软件中的分离器)
3.2解码器(Decoder)
  解码器在整个视频的播放中占据了最主要的位置,它的作用是对由分离器分离出来的音频流和视频流分别进行解码。解码器又分为视频解码器和音频解码器。
常见的视频解码器有:

  1. MPEG-2 视频解码器
     InterVideo Video Decoder(WinDVD 的解码器)
     CyberLink DTV Video/SP Filter
     CyberLink Video/SP Filter(PowerDVD 的解码器)
     Moonlight-Elecard MPEG2 Video Decoder
     nVIDIA Video Decoder(nVIDIA PureVideo 的解码器)
     Sonic CinemasterVideo、Gabest Video Decoder

  2. H264/X264/AVC 视频解码器
     CyberLink H.264/AVC Decoder(PowerDVD 的解码器)、
     CoreAVC DirectShow Video Decoder
     Moonlight H264 Video Decoder
     ffdshow MPEG-4 Video Decoder

  3. VC-1 视频解码器
    CyberLink VC-1 Deocder(PowerDVD 的解码器)、Media Player Classic Video Decoder、WMVideo Decoder DMO(微软的解码器)等等。
    常见的音频解码器有:
     CyberLink Audio Decoder(PowerDVD 的解码器)
     AC3 Filter
     InterVideo Audio Decoder
     nVIDIA Audio Decoder
    3.3渲染器(Renderer)
      渲染器与解码器一样,分为视频渲染器和音频渲染器,解码后的视频数据经过视频渲染器的渲染后呈现到显示设备上,解码后的音频经过音频渲染器的渲染后从声卡输出。渲染在视频播放的过程中是很重要的,因为它会影响到视频最终的效果,不同的渲染器有不同的技术特性,对电脑的配置(主要是 CPU 和显卡)的要求也不一样。
    视频渲染器主要有以下几种:

  4. 旧式视频渲染器(Video Renderer):
    这种是最原始的渲染器,它接收到来自解码器解码后的数据流,在显示设备上显示。这种渲染器基本上不能调用到显卡硬件特性,全靠 CPU 来完成渲染任务。

  5. 覆盖合成器(Overlay Mixer):
    覆盖合成器能够将若干路视频流合并输出到显示设备上,并且它能够很好地调用显卡硬件的拉伸,颜色空间变换等硬件功能,以减少对 CPU 资源的占用率。视频覆盖的画面质量事实上取决于显卡硬件。通常在使用覆盖合成器的时候无法直接对正在播放的视频截图。

  6. VMR 渲染器(Video Mixing Renderer):
    VMR 对覆盖合成器进行了改进,它是基于 DirectX 的视频渲染器,能够支持 16 路的视频流混合。VMR 根据 DirectX 版本的不同,可以分为 VMR7 和 VMR9,其中 VMR7 基于 DirectDraw7(2D),而 VMR9 基于 Direct3D9(3D),VMR9 可以支持视频特效(Video Effects)和视频变换(Video Transitions)。VMR 根据渲染模式的不同又分为“窗口化”(Windowed)、“无窗口”(Windowless)、“未渲染”(Renderless)模式。

  7. EVR 增强型视频渲染器(Enhanced Video Renderer)
    微软在 Windows Vista 系统就开始引入的新视频渲染器,当然也包含在新的操作系统 Windows 7 中。它与 VMR 最大的区别就是能够支持 DXVA 2.0。

    要将 4:2:0 YUV 转换为 4:4:4 YUV,按照前面讲述的两个方法进行操作即可。首先将 4:2:0 图像转换为 4:2:2,然后将 4:2:2 图像转换为 4:4:4。您还可以切换两个上转换过程的顺序,因为操作顺序对于结果的视觉质量不会产生真正的影响。

你可能感兴趣的:(视频技术)