• 音视频基础知识---视频编码格式(转)


    本文转载自:adolph_lu 的音视频基础知识---视频编码格式

    一、为什么要进行视频编码

    • 未经编码的数据数字视频的数据量很大
    • 存储困难
    • 传输困难

    例如,一张大小为 1080*720 的图像,帧率 25FPS,一个像素用 12 位表示,那么可以作如下计算:

    一帧图像的数据大小 1080*720*12/8/1024 = 1139KB,约 1MB

    一秒图像的数据大小 1MB*25 = 25MB

    一分钟图像的数据大小 25MB*60 = 1500MB,约 1.6GB

    从上面的计算就可以看出未经编码的视频数据是有多么的庞大。所以必须经过编码压缩之后,视频数据才方便存储,方便在网络上传输。


    二、常见的编码格式

    2.1 MPEG1

    MPEG1 编码标准制定于 1992 年,可适用于不同带宽的设备,如 CD-ROM,Video-CD、CD-i。它用于传输 1.5Mbps 数据传输率的数字存储媒体运动图像及其伴音的编码,经过 MPEG-1 标准压缩后,视频数据压缩率为 1/100~1/200,影视图像的分辨率为 360×240×30(NTSC制)或 360×288×25(PAL制)。

    VCD 采用的就是 MPEG-1 的标准,该标准是一个面向家庭电视质量级的视频、音频压缩标准。MPEG-1的编码速率最高可达 4-5Mbits/sec,但随着速率的提高,其解码后的图象质量有所降低。MPEG-1 也被用于数字电话网络上的视频传输,如非对称数字用户线路(ADSL),视频点播(VOD),以及教育网络等。同时,MPEG-1 也可被用做记录媒体或是在 INTERNET 上传输音频。MPEG1 标准占用的网络带宽在 1.5M 左右。

    MPEG1 的视频压缩算法对运动不激烈的视频信号可获得较好的图像质量,但当运动激烈时,图像会产生马赛克现象。


    2.2 MPEG2

    MPEG-2 制定于 1994 年,设计目标是高级工业标准的图象质量以及更高的传输率。MPEG-2 所能提供的传输率在 3-10Mbits/sec 间,其在 NTSC 制式下的分辨率可达 720X486,MPEG-2 也可提供并能够提供广播级的视像和 CD 级的音质。MPEG-2 的音频编码可提供左右中及两个环绕 声道,以及一个加重低音声道,和多达 7 个伴音声道。

    MPEG-2 标准中规定了两种输出码流,MPEG2-TS 和 MPEG2-PS:

    • MPEG-TS(Transport Stream,传输流)主要应用于实时传送的节目,比如实时广播的电视节目。 其特点是从视频流的任一片段开始都是可以独立解码。电视节目是任何时候打开电视机都能解码(收看)的。
    • MPEG2-PS(Program Stream(程序流))主要应用于存储的具有固定时长的节目,如 DVD 电影,可添加字幕等一些程序操作。PS 流其包长不固定,且较长,一旦失去同步信息,接收机无法确定下一包的同步位置,会造成失步,导致严重的信息丢失。PS 流适用于误码小、信道较好的环境,如演播室、家庭环境和存储介质中。

    2.3 MPEG4

    MPEG-4 制定于 1998 年,全称为 Moving Picture Experts Group 4,是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。

    MPEG-4 标准是面向对象的压缩方式,不是像 MPEG-1 和 MPEG-2 那样简单地将图像分为一些像块,而是根据图像的内容, 其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比,在较低的码率下获得较好的效果, MPEG-4 支持 MPEG-1、MPEG-2 中大多数功能,提供不同的视频标准源格 式、码率、帧频下矩形图形图像的有效编码。

    总之,MPEG-4 有三个方面的优势:

    具有很好的兼容性;
    MPEG-4 有很好的压缩比,最高达 200:1;
    MPEG-4 在提供高压缩比的同时,对数据的损失很小。所以,MPEG-4 的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时录像的需求,同时具备在低带宽上优良的网络传输能力。


    2.4 H264/AVC

    H.264 是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有 H.261、H.263、H.263+ 等,另一个是“国际标准化组织(ISO)”它制定的标准有 MPEG-1、MPEG-2、MPEG-4 等。而 H.264 则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是 ITU-T 的 H.264,又是 ISO/IEC 的 MPEG-4 高级视频编码(Advanced Video Coding,AVC),而且它将成为 MPEG-4 标准的第 10 部分。因此,不论是 MPEG-4 AVC、MPEG-4 Part 10,还是 ISO/IEC 14496-10,都是指 H.264。

    H.264 最具价值的部分是更高的数据压缩比,在同等的图像质量,H.264 的数据压缩比能比 DVD 系统中使用的 MPEG-2 高 2~3 倍,比 MPEG-4 高 1.5~2 倍。举个例子,原始文件的大小如果为 100GB,采用 MPEG-2 压缩标准压缩后变成 4GB,压缩比为 25∶1,而采用 H.264 压缩标准压缩后变为 1GB,从 100GB 到 1GB,H.264 的压缩比达到惊人的 100∶1。尤其值得一提的是, H.264 在具有高压缩比的同时还拥有高质量流畅的图像。

    正因为如此,经过 H.264 压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。在 MPEG-2 需要 6Mbps 的传输速率匹配时,H.264 只需要 1Mbps~2Mbps 的传输速率。


    2.5 WMV/WMV-HD//VC-1

    WMV(Windows Media Video)是微软公司开发的一组数字影片编解码格式的通称,它是 Windows Media 架构下的一部分。WMV 最初是为低速率流媒体应用作为专有编解码开发出来的。

    WMV-HD 也是微软公司所创立的一种视频压缩格式。其压缩率远高于 MPEG-2 标准,同样是 2 小时的 HDTV 节目,如果使用 MPEG-2 最多只能压缩至 30GB,而使用 WMV-HD 这样的高压缩率编码器,在画质丝毫不降的前提下都可压缩到 15GB 以下。虽然 WMV-HD 是微软的独有标准,在开放性和兼容性上没有其他几种格式好,但由于目前大家都在使用微软的操作系统,因此推出之后仍然迅速普及。

    除了 WMV-HD 以外,微软 WMV 第九版(WMV9)编码技术叫做 VC-1,2003 年正式提出,于 2006 年正式成为国际标准,是微软开发的视频压缩技术系列中的最新版本。VC-1 结合几种编码格式的优点于一身,在压缩比率上介于 H.264 与 MPEG-2 之间,画质表现方面与 H.264 接近,且在编码算法的复杂度上只为 H.264 的一半,处于一个中间的平衡点位置,对硬件要求较低、高压缩率、高画质、低耗时等特点使得 VC-1 成为一种比较理想的编码方式,发展前景较为可观。


    2.6 DivX/XviD

    DivX 是由 MPEG-4 衍生出的一种视频编码(压缩)标准,也即我们通常所说的 DVDrip 格式, 它采用了 MPEG4 的压缩算法,同时又综合了 MPEG-4 与 MP3 各方面的技术,说白了就是使用 DivX 压缩技术对 DVD 盘片的视频图像进行高质量压缩, 同时用 MP3 或 AC3 对音频进行压缩,然后再将视频与音频合成,并加上相应的外挂字幕文件而形成的视频格式。其画质直逼 DVD,而体积只有 DVD 的数分之 一。

    Xvid(旧称为 XviD)是一个开放源代码的 MPEG-4 影像编解码器,是由一群原 OpenDivX 开发者在 OpenDivX 于2001年7月停止开发后自行开发的。

    Xvid 支持量化(Quantization)、范围控制的运动侦测(Motion Search)、码率曲线分配(Curve)、动态关键帧距(I-frame interval)、心理视觉亮度修正、演职员表选项、外部自定义控制、运动向量加速(Hinted ME)编码、画面优化解码等众多编码技术,对用户来说功能十分强大。

    Xvid 的主要竞争对手是 DivX。但 Xvid 是开放源代码的,而 DivX 则只有免费(不是自由)的版本和商用版本。


    2.7 M-JPEG

    Motion JPEG(M-JPEG 或 MJPEG,Motion Joint Photographic Experts Group,FourCC:MJPG)是一种影像压缩格式,其中每一帧图像都分别使用 JPEG 编码。M-JPEG 常用在数字相机和摄像头之类的图像采集设备上,非线性剪辑系统也常用这种格式。QuickTime 播放器和包括 Mozilla Firefox,Google Chrome,Safari 在内许多网页浏览器原生支持 M-JPEG。

    M-JPEG 只使用帧内压缩(区别于算法更复杂的帧间压缩),只单独的对某一帧进行压缩,而不考虑影像画面中不同帧之间的变化。因此压缩效率比较低,一般低于 1:20,而使用了帧间压缩的现代影像压缩格式(如MPEG1、MPEG2和H.264/MPEG-4 AVC)一般能超过 1:50。由于各帧直接是相互独立的,M-JPEG 的编解码在对运算能力和内存的要求较低。


  • 相关阅读:
    学习制作操作系统 0
    阅读《C陷阱与缺陷》的知识增量
    CSS 优先级和特指度
    openCV2马拉松第19圈——Harris角点检測(自己实现)
    Cacti监控mysql数据库server实现过程
    ledisdb:支持类redis接口的嵌入式nosql
    03005_SQL查询语句
    通过smtp直接发送邮件
    XML 解析默认去掉命名空间和注释
    C# /VB.NET 创建PDF项目符号列表和多级编号列表
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/12090877.html
Copyright © 2020-2023  润新知