FFmpeg 中的音视频编码格式

为什么要进行视频编码,直接进行存储、播放、传输不是可以省去编码、解码的时间吗?下面我们通过数据来分析一下:

例子:一张大小为1080*720 的图像,帧率25FPS,一个像素用12位来表示,那么一秒钟的图像数据有多大,一分钟呢?

一帧图像数据的大小:1080*720*12/1024/8 = 1139 KB(其中一个字节是8位)

一秒图像的数据大小:1139KB*25 = 28475 KB ≈ 28MB

一分图像的数据大小:1138KB*25*60 = 1708500 = 1668 MB ≈ 1.6GB

从上面数据就可以看出未编码的视频数据是占用多么大的体积,随着设备分辨率越来越高,未经编码的视频数据的数据量肯定会越来越大。所以必须要经过压缩之后,视频才方便存储、方便在网络上传输。

所以进行编码的原因有以下三点:

  1. 未经编码的视频数据的数据量非常大
  2. 存储困难
  3. 传输困难

常见的视频编码格式

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、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 流适用于误码小、信道较好的环境,如演播室、家庭环境和存储介质中。

3、MPEG4

MPEG-4 制定于 1998 年,全称为 Moving Picture Experts Group 4,是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带度,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。MPEG-4 标准是面向对象的压缩方式,不是像 MPEG-1 和 MPEG-2 那样简单地将图像分为一些像块,而是根据图像的内容, 其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比,在较低的码率下获得较好的效果, MPEG-4 支持 MPEG-1、MPEG-2 中大多数功能,提供不同的视频标准源格 式、码率、帧频下矩形图形图像的有效编码。总之,MPEG-4 有三个方面的优势:1、具有很好的兼容性;2、MPEG-4 有很好的压缩比,最高达 200:1;3、MPEG-4 在提供高压缩比的同时,对数据的损失很小。所以,MPEG-4 的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时录像的需求,同时具备在低带宽上优良的网络传输能力。

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的传输速率。

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成为一种比较理想的编码方式,发展前景较为可观。

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则只有免费(不是自由)的版本和商用版本。

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的编解码在对运算能力和内存的要求较低。

————————————————

同理,为什么要进行音频编码呢?

音频编码的主要作用是将音频采样数据(PCM 等)压缩成为音频码流,从而降低音频的数据量,偏于存储和传输,跟视频编码的作用类似。

而PCM(Pulse Code Modulation)称为脉冲编码调制,就是音频的裸数据格式。

有损压缩和无损压缩

有损压缩就是通过删除一些已有数据中不太重要的数据来达到压缩目的。无损压缩就是通过优化排列方式来达到压缩目的。

常用音频编码格式

1、WAV

WAV 编码的一种实现(有多种实现方式,但是都不会进行压缩操作)就是在 PCM 数据格式的前面加上 44 字节,分别用来描述 PCM 的采样率、声道数、数据格式等信息。

特点:音质非常好,大量软件都支持。

适用场合:多媒体开发的中间文件、保存音乐和音效素材。

2、MP3(有损)

MP3 具有不错的压缩比,使用 LAME 编码(MP3 编码格式的一种实现)的中高码率的 MP3 文件,听感上非常接近源 WAV 文件,当然在不同的应用场景下,应该调整合适的参数以达到最好的效果。
特点:音质在 128Kbit/s 以上表现还不错,压缩比比较高,大量软件和硬件都支持,兼容性好。适用场合:高比特率下对兼容性有要求的音乐欣赏。

3、AAC(有损)

AAC 是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如 PS、SBR 等),衍生出了 LC-AAC、HE-AAC、HE-AAC v2 三种主要的编码格式。LC-AAC 是比较传统的 AAC,相对而言,其主要应用于中高码率场景的编码(≥80Kbit/s);HE-AAC(相当于AAC+SBR)主要应用于中低码率场景的编码(≤80Kbit/s);而新近推出的 HE-AAC v2(相当于AAC+SBR+PS)主要应用于低码率场景的编码(≤48Kbit/s)。事实上大部分编码器都设置为 ≤48Kbit/s 自动启用 PS 技术,而 >48Kbit/s 则不加PS,相当于普通的 HE-AAC。

特点:在小于 128Kbit/s 的码率下表现优异,并且多用于视频中的音频编码。

适用场合:128Kbit/s 以下的音频编码,多用于视频中音频轨的编码。

4、Ogg(有损)

Ogg 是一种非常有潜力的编码,在各种码率下都有比较优秀的表现,尤其是在中低码率场景下。Ogg 除了音质好之外,还是完全免费的,这为 Ogg 获得更多的支持打好了基础。Ogg 有着非常出色的算法,可以用更小的码率达到更好的音质,128Kbit/s 的 Ogg 比 192Kbit/s 甚至更高码率的 MP3 还要出色。但目前因为还没有媒体服务软件的支持,因此基于 Ogg 的数字广播还无法实现。Ogg 目前受支持的情况还不够好,无论是软件上的还是硬件上的支持,都无法和 MP3 相提并论。
特点:可以用比 MP3 更小的码率实现比 MP3 更好的音质,高中低码率下均有良好的表现,兼容性不够好,流媒体特性不支持。适用场合:语音聊天的音频消息场景。

5、APE(无损)

APE 是流行的数字音乐无损压缩格式之一,因出现较早,在全世界特别是中国大陆有着广泛的用户群。与 MP3 这类有损压缩格式不可逆转地删除(人耳听力不敏感的)数据以缩减源文件体积不同,APE 这类无损压缩格式,是以更精炼的记录方式来缩减体积,还原后数据与源文件一样,从而保证了文件的完整性。

APE 由软件 Monkey’s audio 压制得到,开发者为 Matthew T. Ashland,源代码开放,因其界面上有只 “猴子” 标志而出名。相较同类文件格式 FLAC,ape 有查错能力但不提供纠错功能,以保证文件的无损和纯正;其另一个特色是压缩率约为 55%,比 FLAC 高,体积大概为原 CD 的一半,便于存储。

APE 作为一种无损压缩音频格式,通过 Monkey’s Audio 这个软件可以将庞大的 WAV 音频文件压缩为 APE,,体积虽然变小了,但音质和原来一样。通过 Monkey’s Audio 解压缩还原以后得到的 WAV 文件可以做到与压缩前的源文件完全一致。所以 APE 被誉为“无损音频压缩格式”,Monkey”s Audio 被誉为“无损音频压缩软件”。简单来讲,APE 压缩与 WinZip 或 WinRAR 这类专业数据压缩软件压缩原理类似,只是 APE 等无损压缩数字音乐之后的 APE 音频文件是可以直接被播放的。APE 的压缩速率是动态的,压缩时只压缩可被压缩部分,不能被压缩的部分还是会保留下来。

6、FLAC(无损)

FLAC 中文可解释为无损音频压缩编码。FLAC 是一套著名的自由音频压缩编码,其特点是无损压缩。不同于其他有损压缩编码如 MP3 及 AAC,它不会破坏任何原有的音频资讯,所以可以还原音乐光盘音质。2012 年以来它已被很多软件及硬件音频产品(如 CD 等)所支持。

FLAC 与 MP3 不同,MP3 是音频压缩编码,但 FLAC 是无损压缩,也就是说音频以 FLAC 编码压缩后不会丢失任何信息,将 FLAC 件还原为 WAV 文件后,与压缩前的 WAV 文件内容相同。这种压缩与 ZIP 的方式类似,但 FLAC 的压缩比率大于 ZIP 和 RAR,因为 FLAC 是专门针对 PCM 音频的特点设计的压缩方式。而且可以使用播放器直接播放 FLAC 压缩的文件,就象通常播放你的 MP3 文件一样(近几年已经有许多汽车播放器和家用音响设备支持 FLAC,在 FLAC 的网站上你可以找到这些设备厂家的链接)。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论