视频编码与封装方式详解
1. 编码方式和封装格式常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。
同样的情况也存在于其他容器格式。即使RMVB、WMV等也不例外
事实上,很多封装容器对音频编码和视频编码的组合方式放的很开,如AVI还可以使用H264+AAC组合,可以在具体使用中自己体会。尤其是MKV封装容器,基本无论什么样的组合都可以!但一般MKV用的最多的就是H264+AAC组合,此组合文件体积最小,清晰度最高。因此网上很多MKV视频都是高清晰度的。
因此,视频转换需要设置的本质就是:A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。
目前最常见的视频编码方式有 MPEG-1/-2 < WMV/7/8 < RM/RMVB < Xvid/Divx < AVC/H.264,视频压缩效能和技术先进性也基本表现为上述排列顺序(由低到高,不完全准确)。 目前最常见的音频格式有 Mp3、AC-3、ACC,MP3最广泛的支持最多,AC-3是杜比公司的技术,ACC是MPEG-4中的音频标准,ACC是目前比较先进和具有优势的技术。
2. 视频编码标准两大系统视频编码标准有两大系统: MPEG 和ITU-T,如下表 视频编码标准
MPEG 标准 由MPEG制定 MPEG-1 | MPEG-2 | (MPEG-3) | MPEG-4 | MPEG-7 | MPEG-21
ITU-T 标准 由VCEG制定 H.261 | (H.262) | H.263 | H.263v2 | H.264
MPEG-1 是MPEG组织制定的第一个视频和音频有损压缩标准。视频压缩算法于1990年定义完成。1992年底,MPEG-1正式被批准成为国际标准。 这个标准带来了VCD和MP3 MPEG-2 是MPEG工作组于1994年发布的视频和音频压缩国际标准。MPEG-2通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2经过少量修改后,也成为DVD产品的内核技术。 MPEG-3 是MPEG组织制定的视频和音频压缩标准。本来的目标是为HDTV提供20-40Mbps视频压缩技术。在标准制定的过程中,委员会很快发现MPEG-2可以取得类似的效果。随后,MPEG-3项目停止了。 MPEG-3并非等于MP3。MP3是MPEG-1音频Layer 3部分。 MPEG-4 是一套用于音频、视频信息的压缩编码标准,MPEG-4包含了MPEG-1及MPEG-2的绝大部份功能及其他格式的长处,MPEG-4大部份功能都留待开发者决定采用是否。这意味着整个格式的功能不一定被某个程序所完全函括。因此,这个格式有所谓‘profiles’及‘层次(levels)’,定义了MPEG-4用于某些特定应用的某些功能的集合。 这一标准是目前广泛应用的主流编码标准 MPEG-4由一系列的子标准组成,被称为部,包括以下的部分: 第二部(ISO/IEC 14496-2):视讯:定义了一个对各种视觉信息(包括视讯、静止纹理、计算机合成图形等等)的编解码器。对视讯部分来说,众多Profiles中很常用的一种是Advanced Simple Profile (ASP),例如XviD编码就属于MPEG-4 Part 2。 第三部(ISO/IEC 14496-3):音频:定义了一个对各种音频信号进行编码的编解码器的集合。包括高级音频编码(Advanced Audio Coding,缩写为AAC)的若干变形和其他一些音频/语音编码工具。 第十部(ISO/IEC 14496-10):高级视频编码或称高级视频编码(Advanced Video Coding,缩写为AVC):定义了一个视频编解码器(codec),AVC和XviD都属于MPEG-4编码,但由于AVC属于MPEG-4 Part 10,在技术特性上比属于MPEG-4 Part2的XviD要先进。另外从技术上讲,它和ITU-T H.264标准是一致的,故全称为MPEG-4 AVC/H.264。 ITU-T 国际电信联盟远程通信标准化组(英语:ITU Telecommunication Standardization Sector,缩写ITU-T)是国际电信联盟管理下的专门制定远程通信相关国际标准的组织。 他制定的一系列标准都是H.26X H.261 | (H.262) | H.263 | H.263v2 | H.264 其中H.262和MPEG-2处于系统和水准 H.264 对应于 MPEG-4 L10 的AVC WMV 微软公司专有制定的一系列视频编码标准,有多个版本,从V9版本开始逐步开始走开放的、标准化的道路
3. 常用视频编码方式有Xvid(MPEG4),H264,MPEG1,MPEG2。
Divx:1998年微软开发了第一个在PC上使用的MPEG-4编码器,其中的MS MPEG4V3系列的编解码能力都非常不错。但微软却将这个MS MPEG4V3 的视频编码内核封闭在Windows Media流媒体技术上,也就是说仅仅应用于ASF文件。这招不仅导致ASF不能充分传播和占领主流市场,更引起了一帮黑客破解了MPEG4 V3。经过这帮黑客的修改,DivX诞生了。
DIVX,XVID:DIVX视频编码技术实际就是MPEG4 压缩技术,它可以说是对上挑战DVD,对下挤压SVCD,DIVX-MPEG4对DVD和SVCD造成的威胁不容忽视(有人说它是 DVD 杀手),它由 Microsoft MPEG4v3 修改而来,使用MPEG4 压缩算法。据说MPEG4 是美国禁止出口的编码技术,用它来编码、压缩一部DVD只需要两张CD-ROM!这样就意味着,你不需要买昂贵的 DVD ROM 也可以得到和它质量差不多的视频节目了,而这一切只需要你有 CD-ROM。播放(解压缩)MPEG4编码,对机器的要求也不高,CPU只要是300MHz以上,再配上64MB的内存和一个有8MB显存的显卡就可以流畅地播放了。对播放软件方面的要求就更宽松,你只需要安装一个500K 大小的MPEG4 编码驱动后,用Windows自带的媒体播放器就可以流畅地播放。 MPEG4文件的特性为,文件的封装格式为avi(也即文件名后缀为avi),文件的视频格式为MPEG-4 Visual(简称MPEG-4 ),视频编解码器ID为Xvid或DivX(有时显示为DX50(DivX 5)).
2、H.261/H.263
MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。 MPEG1:技术特点:MPEG-1制定于1992年,可适用于不同带宽的设备,如CD-ROM、Video-CD、CD-i。它的目的是把221Mbit/s的NTSC图像压缩到1.2Mbit/s,压缩率为200∶1。这是图像压缩的工业认可标准。它可针对SIF标准分辨率(对于NTSC制为352×240;对于PAL制为352×288)的图像进行压缩,传输速率为1.5Mbits/s,每秒播放30帧,具有CD音质,质量级别基本与VHS(广播级录像带)相当 MPEG-1也被用于数字电话网络上的视频传输,如非对称数字用户线路(ADSL),视频点播(VOD),以及教育网络等
MPEG2:技术特点:MPEG-2制定于1994年,设计目标是高级工业标准的图像质量以及更高的传输率。MPEG-2所能提供的传输率在3MB-10MB/s间,在NTSC制式下的分辨率可达720×486,MPEG-2能够提供广播级的视像和CD级的音质。MPEG-2的音频编码可提供左右中及两个环绕声道,以及一个加重低音声道和多达七个伴音声道。MPEG-2的另一特点是,可提供一个较广范围的可变压缩比,以适应不同的画面质量、存储容量以及带宽的要求。 MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。
MPEG4:技术特点:MPEG-4 于1998 年11 月公布,它不仅是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。这个标准主要应用于视像电话、视像电子邮件等,对传输速率要求较低,在4800-64000bits/s之间,分辨率为176×144。MPEG-4利用很窄的带宽,通过帧重建技术、数据压缩,以求用最少的数据获得最佳的图像质量。 3、MPEG是(运动图像编码专家组)研发的,是压缩运动图像及其伴音的视音频编码标准,它采用了帧间压缩,仅存储连续帧之间有差别的地方 ,从而达到较大的压缩比。MPEG目前比较常用MPEG—1、MPEG—2和MPEG—4三个版本,以适应于不同带宽和图像质量的要求。 RM,RMVB:RM和RMVB是REAL公司出品的一种音视频编码格式,同时也是这种格式编码的文件的存储方式,其中RM是恒定码率的,而RMVB是可变码率的。REAL编码的特点是在尽可能低的数据率上实现尽可能高的画面质量,尤其是RMVB,在450K的码率的时候就可以实现相当清晰的画面质量,缺点是音频质量比较一般,同时画面细节损耗比较高,尤其是亮度部分,所以RM和RMVB的电影通常会给人画面比较暗的感觉。 4. 常见存储封装格式WMV和ASF通常是微软MPEG4算法的存储格式 DAT和MPG是MPEG1算法编码的文件的存储方式,其中DAT主要用于VCD,VOB则是MPEG2算法编码的文件的存储方式,通常用于DVD。 不同视频封装格式有不同的优缺点,总体上说AVI和RM是目前最常见的格式,而AVI由于先天缺陷不利于网络传输;m2ts和mkv是先进的下一代标准,今后可能逐步流行。 • AVI (.avi) 是英语Audio Video Interleave(“音频视频交织”或译为“音频视频交错”)的首字母缩写,由微软在1992年11月推出的一种多媒体文件格式,用于对抗苹果Quicktime的技术。现在所说的AVI多是指一种封装格式。 它支持很多种编码方式:Xvid、WM、H.264、MPEG等。 常见的组合有:* (DivX或XviD+MP3).avi,* (H.264+MP3).avi* (WMV9+MP3).avi • ASF (.asf) Advanced Systems Format(原名“Advanced Streaming Format”,.asf),微软的一个与Windows Media Player相关联的流媒体格式。 他的注意目的是解决AVI格式在流传输上的不足。 • WMV (.wmv) 微软的对应WMV标准的封装格式 • QuickTime ( .mov) 苹果的,不用说了 • MPEG (.mpg / .mpeg) 基于MPEG-1/MPEG-2/MPEG-4系列标准的封装格式 • MP4 (.mp4) 全称MPEG-4 Part 14,是一种使用MPEG-4的多媒体电脑档案格式,副档名为.mp4,以储存数码音讯及数码视讯为主。 • m2ts (.m2ts / .mts ) 是一种视讯档案格式(container)可支援多工的影音流. m2ts架构于MPEG transport stream 以及著名的 BDAV MPEG-2 transport stream.[1][2][3] 这种档案格式多支援于高清的 Blu-ray Disc 与 AVCHD. 这是最新的MPEG-4架构中的封装格式,很可能会成为下一代的主流方式 • Matroska (.mkv / .mks / .mka ) Matroska是一种新的多媒体封装格式,这个封装格式可把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装到一个Matroska Media档内。它也是其中一种开放源代码的多媒体封装格式。 • Ogg 是一个自由且开放标准的容器格式,由Xiph.Org 基金会所维护。Ogg格式并不受到软件专利的限制,并设计用于有效率地流媒体和处理高品质的数字多媒体。“Ogg”意指一种文件格式,可以纳入各式各样自由和开放源代码的编解码器,包含音效、视频、文字(像字幕)与元数据的处理。 • RM ( .rm / .rmvb) Real 公司
6. 无损视频编码
压缩,还是不压缩?这是个问题。常见的MPEG、WMV、RMVB等格式实际上都属于有损压缩,换句话说就是牺牲画质换取较小的体积。但如果不压缩,视频文件的体积将会十分惊人,一盘60分钟的DV带,如果以AVI格式保存,大约需要11GB空间,存储和携带都非常不便。那为何不试试视频文件的无损压缩呢?这可不是痴人说梦,实际上无损压缩视频并不复杂,装上编码器,几步就能完成。 一.视频无损压缩三剑客 目前常用的无损压缩编码/解码器有三种,它们分别是CorePNG、Huffyuv和MSU Lossless Video Codec,三者都是免费软件,在压缩比和压缩速度上可以说是各有千秋,下面笔者会逐一介绍。这些编码器都是只有核心,没有外壳,因此必须通过视频转换软件调用,笔者建议使用VirtualDub,这是个免费软件,可以到 http://www./soft/1998.html 下载。 上述种编码/解码器的下载地址如下: MSU Lossless Video Codec: http://www.:8080/Upload/DownLoad/msu-ls-codec.zip Huffyuv: http://www.:8080/Upload/DownLoad/huffyuv_220.rar CorePNG: http://www.:8080/Upload/DownLoad/CorePNG-VFW-v0.8.2.exe 其中MSU Lossless Video Codec和CorePNG都可以直接运行exe可执行文件安装,只有Huffyuv,必须在解压后用右键单击huffyuv.inf文件,选择弹出菜单中的“安装”安装,如图1所示。 二.实战无损压缩 这些编码器的调用方式完全一致。打开VirtualDub,执行“文件”/“打开视频文件”导入要处理的视频,这里笔者使用的是一个9.93MB的AVI视频文件,然后选择“视频”/“压缩”打开如图2所示的对话框,在左边的列表中我们可以找到刚才安装的编码器。下面我们就从MSU Lossless Video Codec开始。 1.MSU Lossless Video Codec 选择“MSU Lossless Video Codec BETA v0.2.4”,单击“配置”,打开如图3所示的对话框,该编码器的默认设置为“High compression”,软件会在提高压缩比的同时尽可能多的保留图像细节,这个设置实际上是有损的,但其视频质量却非常高,即使将画面放大数倍,肉眼也很难分辨出其中的差别。当然,如果你的要求很高,也可以选择“Low compression”,这样就可以得到100%的无损压缩视频了,不过得到的视频文件体积相对较大,详细对比大家可以参看表1。 2.Huffyuv 在图2所示的对话框中选择“uffyuv v2.2.0”,再单击“配置”,打开如图4所示的对话框,“YUY2 compression method”下拉列表中的选项对压缩比的影响最大,其默认设置是“Predict median(best)”,此时的压缩速度较慢,但压缩比最高;选择“Predict left(fastest)”则可大幅度提高压缩速度,但却会降低压缩比,对比情况可参看表2。在“RGB compression medhod”下拉列表中请务必选择“<-Convert to YUY2”,否则播放时会造成非法操作:(,“Field Threshold”可根据源文件的水平清晰度设置,最高可设置到768线。其它选项不用管它,单击“OK”即可设置完成。 3.CorePNG 在图2所示的对话框中选择“CorePNG VFW Codec v0.8.2”,单击“配置”,打开如图5所示的对话框,这里的设置虽多,但对压缩比影响最大的是“Compression Level”,其默认设置为“6-Normal”,这是个中庸的设置,另外你也可以选择“1-Fastest”或“9-Best”,其它选项一般无须更改。不同设置下的压缩比见表3。 进行完以上设置后,执行“文件”/“另存为AVI”即可开始压缩。只要安装了编码/解码器,系统中的任何多媒体播放工具,例如Windows Media Player或者MPC等,以及视频处理软件都可以直接打开这些AVI文件。 huffyuv - 大名鼎鼎, 不用介绍了, 相当快速的无损压缩 codec, 不过似乎停止开发了 下载页面: http:///www.math.berkele...rg/huffyuv.html Alparysoft Lossless Codec - Alparysoft 的商业软件, 如果不注册右下角就会有 logo, 即便如此, 压缩比通常会远高于 huffyuv, 速度也不错 如果您感兴趣的话, 下载页面: http://www./prod/compression/index.php CorePNG - 不了解, 看到 doom9 上有人推荐, 所以找来, 压缩比跟 AlparySoft 的差不多, 可能稍好点, 但速度很慢... 下载页面: http:///projects/corepng/ 最后隆重推荐 ffv1 , FFMpeg Project 下开发的无损压缩, 所以很自然的 ffdshow encoder 部分包含有它, 压缩比最大, 速度也很快, 但多半比 huffyuv 慢, 没有细看...^^, 而且是 OpenSource 的软件, 免费, 加上 ffdshow 加入了它很容易找到, ^^ ffmpeg project: http://ffmpeg./ ffdshow project: http:///project/show...ackage_id=59355 使用 ffdshow 包含的 ffv1 请下载 ffdshow-20040725.exe, 安装后 vfw 选择窗口会有 ffdshow Video Codec, 在 encoder 部分的下拉选项选择 FFv1 即可. 下面是些小测试. 讯源1 (bink) 6,912 kb uncompressed 327,612 kb Huffyuv 163,630 kb Alparysoft Lossless 68,276 kb CorePNG 63,934 kb FFv1 56,918 kb huffyuv 不用说了, 其他三个经测试 PSNR 同 uncompressed.avi 比较计算结果都是 Y: PSNR: 1.#INF 1.#INF 1.#INF U: PSNR: 1.#INF 1.#INF 1.#INF V: PSNR: 1.#INF 1.#INF 1.#INF Sum: PSNR: 1.#INF 1.#INF 1.#INF Minimum Average Maximum 值得信赖 Alpary 的不注册右下角会有 logo, 所以比较的时候讯源和比较对象都切了 64 像素, 切掉了编码后有而讯源中没有的 logo -_-~! . 尽管如此, 我们有那么棒的 MPEG-2/MPE-4 的编码, 或者 Real Codec 等为什么要巨大的无损编码? 比如即使是 FFV1 其码率都是 DVD 最高码率的 2 倍以上. 无损编码通常用来采集, 极少有人会用其最为最终成品, 而一般都会交给常用的有损编码的, 所以无损编码通常只是个 intermediate 而以 ^^, 它会很有用处当 1. Input 是个怪胎, 没有第三方软件支持, 而自己的编辑/编码 又很差劲, 比如 bink...(不好意思说它坏话了), bink 其实不差, 它的压缩比很高, 但有时太糊了, 比如 ff8 的 CG, 而且没有第三方软件支持, 上了它的贼船就别想下去, 幸好它还支持 vfw, 可以做编码转换, 但不支持 XviD 的 2pass, 压缩出来结果好象也没有 vdmod 好(?). 2. 比如想要自己做 gameplay, 采集成无损的 avi 再作后期处理, avi 如此常见什么软件都支持. 3. 作为 Intermediate, uncompressed avi 太大了... 而且大于 2G/4G 的文件会不被一些 软件/文件系统 支持, 用 FFv1 达到 3-6 倍压缩率且同样无损, 可以节省大量硬盘空间, 速度在现在的主流配置上应该也不错, 何乐而不为 . 4. WinDVR 和 PowerDVR 支持用 MPEG-2 采集, 但很多 TV 采集软件并不支持 mpeg2 编码, 如果用 XviD/DivX/RV 第一有损, 第二若开了高级选项速度可能会很慢。 所以不妨用无损编码, 在这领域 huffyuv 由于其速度很快一直很受欢迎, ffv1 (vlc) 速度应该比 huffyuv 慢, 如果机器不错做 TV 采集也可以试试 ffv1 上面的只作了一次测试, 具体的压缩率并不是唯一, 更多的 doom9 上的 moogie 曾经做过测试 , ffv1 虽不是每次都最好, 不过几乎每次都进了三甲 继续玩儿 ff8 cg ... ps. ff8 ending theme 最后三个 CG, 加在一起 16:07, 用 ffv1 无损压缩后才 1.04G, 码率 93nn kb/s, 跟 DVD 最高码率差不多持平....当然 ff8 CG 其实只有 15 fps, 不然该两倍于其码率的 但也很不错咯 |
|