MPEG-4(ISO 14496)是由制定了我们熟知的MPEG-1(MP3, VCD)和MPEG-2(DVD, SVCD)标准,并力于使各种音频/视频压缩格式和更多内容标准化的国际标准化组织(International Organization for Standardization/ISO)的工作组,即运动图像专家组(Moving Picture Experts Group/MPEG)发展的广泛的开放标准。
本质上MPEG-4标准不仅把目标定为标准化某些有发展前途的产品(例如达到DVD性能),而且含盖了一个能让产品供应商根据需要选择适当标准去执行的广泛的次级标准。
MPEG-4标准,如上所说,被分成许多不同的次级标准,在Doom9里我们使用者可能最感兴趣的部分如下:
- ISO 14496-1(Systems/系统),动画/交互性(类DVD菜单)
- ISO 14496-2(Video/视频),如Advanced Simple Profile(ASP/高级简单类),由XviD, DivX5, 3ivx...执行
- ISO 14496-3(Audio/音频),Advanced Audio Coding(AAC/先进音频编码)
- ISO 14496-10(Video/视频),Advanced Video Coding(AVC/进阶视频编码),著名有H.264
- ISO 14496-14(Container/容器),MP4容器格式(使用.mp4作扩展名)
- ISO 14496-17(Subtitles/字幕),MPEG-4时标文本字幕格式
这些信息页面正力于提供这些标准的大部分有用的信息,尤其是作为焦点的MPEG-4 ASP和AVC/H.264。
与封闭格式如MicroSoft的Windows Media相比,象MPEG-4一样的开放标准有什么可能的优势?
开放标准的一个好处是当创建产品时允许向所有人开放并遵循它。因此我们已经有许多不同的符合MPEG-4标准并可互相兼容的产品。
其次是互通性和大范围的产品选择性,一个开放标准导致竞争,对顾客而言这意味着产品在竞争市场中能更好地提高品质,更少的价格和更关注顾客需求。
但不要忘记这也许对我们来说最重要的一点:
一个开放标准允许开源发展,例如我们熟知的XviD。
MPEG-4标准定义了广泛的视频编码工具。终端用户最可能使用这些在ISO 14496-2定义下的工具,这也是为什么这部分被叫作MPEG-4 "Part 2",但从现在起我称它为MPEG-4 ASP ,如标题所示。
MPEG-4 Part 2 Profile
已经说过MPEG-4标准提倡多用途。当然不同的使用需求需要不同的编码工具(例如处理低码率的流媒体内容你所需要的工具完全不同于中高码率下的dvd备份)。
为了含盖所有不同的使用需求,MPEG-4标准定义了许多不同的类/层。每种类/层是互通与继承的,确保所有的产品,甚至是来自不同的供应商的产品,在遵循特定的类/层的前提下协同工作。这些类/层不仅仅标准化可以使用何种编码工具,而且定义了各种内容如所允许的码率范围,图象尺寸,桢率…
看一个MPEG-4 Profile的概述吧 这里
Advanced Simple Profile(ASP/高级简单类)
为了实现DVD备份需要遵循Advanced Simple Profile @ Level 5 (ASP@L5)。 它允许图象尺寸增至720x576,桢率提到30fps并提供先进的编码工具,如B桢(B-VOPS), QuarterPixel Motion Estimation(QPEL/1/4象素动态估计), Global Motion Compensation(GMC/全局动态压缩)和MPEG/Custom Quantization(自定义量化),与只允许图象尺寸最大为352x288,桢率最高为15fps的Simple Profile(简单类)完全不同。
最重要的Advanced Simple Profile(高级简单类)工具(Simple Profile(简单类)下不可用):
B桢/B-VOPS/Bi-directional encoding/prediction(双向编码/预测):
与I桢和关键桢(包含完整图象不依赖于其他桢)或P桢(只包含从前一I桢或P桢改变部分的图象)不同,B桢由来自前后I桢或P桢的数据构成。B桢比其他桢更易压缩,所有的一切都有助于提高质量与压缩率。
Quarter Pixel Motion Search Precision(QPEL/1/4象素精度动态搜寻):
基本上大部分的MPEG-4编码默认使用从两桢到半桢(HalfPel)的动态搜寻方式。现在有了1/4象素方式,你能以每桢1/4象素的精度进行动态搜寻,有效预测加倍!事实上它意味着通过QPEL你可以获得远比以往清晰的图象,使用后你就会爱上它(当然这只是我的意见而已)。
Global Motion Compensation(全局动态补偿/GMC):
GMC侦测图象中是否有许多共同的运动部分。如果有,则忽略它们,而使用一个运动矢量来代替图象中所有相似的大量的部分。事实上这有助于减少当发生摇摄,缩放或旋转时的数据(依靠于GMC执行者/能提供的warppoint有多少好),从而让它们用于其他的地方,比方加强锐化。
MPEG/Custom Quantization(自定义量化):
当采用MPEG-4 Simple Profile(简单类)时,你只能使用h.263量化类型,而ASP允许你自定义类型。当使用h.263类型时,可以带来更柔和的图象(适合于1CD编码),而MPEG矩阵更适用于高码率,能保留更多细节。hvs_good这个流行的自定义矩阵也适用于低码率,同样还有许多类型也如此。
Adaptive Quantization(自适应量化):
动态编码(如2pass下)时,每桢能按不同的量化值来压缩(量化值越高,桢的大小/码率越小)。什么样的的桢需要什么样的量化值(如压缩高速运动图象)是由“Rate Control(比率控制)”来决定的。当使用Adaptive Quantization(自适应量化)时(Simple Profile(简单类)可用),量化值能根据每桢内部的不同(如运动/灰暗的图象部分取得更高的量化值/压缩率,而脸部使用比背景低的量化值,还有…)进行添加。
基本上MPEG-4 ASP的流行是因著名的DivX5编码,其名也常用来描绘那些遵循ASP@L5的内容(如同人们用“可口可乐”来命名所有的可乐,甚至百事),但它的重要性在于实现了让其他存在的MPEG-4 ASP编码能象DivX5一样或多或少地兼容MPEG-4:
现有的MPEG-4 ASP编码
终端用户可使用的ASP编码有XviD (binary), DivX5, DivX4/OpenDivX, ffmpeg/ffvfw/ffdshow, 3ivx, Nero Digital, Skal, Quicktime, mpegable, Envivio, Sorenson与更多...
doom9的质量测评:1 2
(注意,DivX3.11也叫MS MPEG-4, RV9, VP6和WMV9与MPEG-4不兼容!)
XviD
也许是最先进的MPEG-4 ASP编码,非常适于DVD备份并提供范围广泛的编码工具(包括1以上连续B桢, QPEL, GMC(3 warppoint), h.263/MPEG/Custom Quant(自定义量化值), Adaptive Quant.(自适应量化), Trellis(高维架构)和更多)
XviD是开源(GPL)的,Doom9社区自己的THE编码,在Doom9它也有自己的版块XviD Forum,XviD的开发者经常在这里会聚一堂(我相信你已经知道了)。
关于XviD的更多信息,请浏览官方主页XviD.org,并阅读crusty的FAQ参看doom9上的XviD Forum版块。
DivX5
也许是最流行也最被广泛应用的MPEG-4 ASP编码,勉强凭借其名声生存。它提供少于MPEG-4 ASP的特性(最大2连续B桢, h.263/MPEG Quant, 低下的GMC(1 warppoint), QPEL),并且有些人声称它同样比XviD差,尽管如此它的商业THE编码还是使MPEG-4 ASP流行了起来。
关于DivX5的更多信息,请浏览官方主页DivX.com和doom9上的DivX Forum版块。
ffmpeg
ffmpeg(也叫libavcodec/format)当其完成时,必将成为MPEG-4的THE执行者。现在ffmpeg能提供可能的最好工具(如error resilience(差错恢复)),当然也是开源(LGPL)的。即使它发展完全,仍然会经常处在XviD阴影下,但它确实能提供非常好的质量,并且是许多其他工程都严重依赖(如著名的mplayer或ffdshow都使用它)的非常重要的执行者。
关于ffmpeg的更多信息,请浏览官方主页ffmpeg.org和doom9的New Codecs版块。
3ivx
虽然是世上最早的MPEG-4编码之一(其开发者宣称比DivX5还老),但到最近几个月3ivx才变得流行起来。3ivx的视频编码提供h.263/MPEG Quant, Adaptive Quant. (自适应量化), 4MV(不支持B桢,GMC和QPEL)并第一个设置了PAR。3ivx不仅仅提供视频编码而且是全面的MPEG-4标准执行者,提供AAC编码(FAAC)和可能是现有最好的MP4容器工具。
关于3ivx的更多信息,请浏览官方主页3ivx.com 和doom9的New Codecs/Containers版块(这里你有时可以发现一些开发者)。
Nero Digital
是来自nero的MPEG-4 ASP编码,可能是最年轻的,但它对其发展显得非常有野心。现在它的编码只提供于Nero Recode2(随带一个优秀的AAC编码器(HE-AAC, 多声道...))。ND提供最大1连续B桢, GMC(3 warppoint), QPEL, h.263/MPEG/Custom Quant(自定义量化值), Adaptive Quant.(自适应量化)(高度Psy),同时是全球最快的编码之一。
关于NeroDigital的更多信息,请浏览官方主页NeroDigital.com和doom9的New Codecs版块(这里你有时可以发现一些开发者)。
MPEG-4 ASP硬件应用化 - DivX/NeroDigital Certification / Private MPEG-4 Profiles(DivX/NeroDigital证明/独家MPEG-4 Profile)
一些第一代硬件解码芯片还不能使用ASP所提供的重要的工具(如QPEL和GMC)。今日的芯片则强劲得多,已支持象QPEL和1 Warppoint GMC(但到现在仍然没有一个能支持3WP GM)。
为了让那些使用甚至是最老的芯片的播放器也能支持ASP的工具,DivXNetworks和Nero分别创建了独家的MPEG-4 Profile,名为DXN Home Theater Profile(DXN家庭影院类/DXN HTP)和ND Standard Profile(ND标准类/ND StP)。每种播放器至少能支持DXN HTP和ND StP(接近于其)的话,就能得到来自DivXNetworks和/或Nero的证明。
当遵循HTP/StP编码时,你不能使用QPEL或GMC,只能使用1连续B桢。所以基本上HTP/StP只是让老式硬件解码芯片找到了某种质量与可用性间的平衡。当然这些独家证明也让DivXNetworks和Nero得到了远比成功传播自己的品牌多的利益。
正确来说我们需要的是,播放器能支持MPEG-4 ASP@L5,如果有播放器支持它,你应该能正确播放所有编码,只要其遵循MPEG-4 ASP(无论是什么编码)。
更多文档
如果你想阅读更多关于MPEG-4视频的文章,你可以浏览MPEG Industry Forum,那里有一份总括资料和指南/论文。
14496-2的修订说明可以在这里找到。
同时要说下Moving Picture Experts Group (MPEG)的网页,那里提供着重于MPEG-4视频的FAQ或MPEG-4标准的总括(也包括许多MPEG-4视频的信息)。
如果你简单地用“MPEG-4”在google搜索一下,你可以找许多有用网页。