在1998年以前,PC 上唯一能用的 MPEG-4 编码器是由微软所开发的,包括 MS MPEG4 V1、MS MPEG4 V2、MS MPEG4 V3 的系列编码核心。其中前面两种都可以用来製作 AVI 档案,至今都作为 Windows 的默认组件。不过 V1 和 V2 的编码质量都还不太好,直到 MS MPEG4 V3 开始,画面质量有了显着的进步。不过微软却决定将这个 MS MPEG4 V3 的视频编码核心封闭在 Windows Media 流媒体技术——也就是我们熟知的 ASF 格式之中,不再能用于 AVI 格式。ASF 格式当然有一些好处,但是过于封闭甚至不能被编辑,惹恼了天不怕地不怕的电影骇客。很快便有小组修改了微软的 MS MPEG4 V3,解除了不能用于 AVI 格式的限制,并开放了其中一些压缩参数,由此,也就诞生了我们今天所熟悉的 MPEG4 编码器 DivX;-)3.11。
DivX广泛流行,成为 DVDRip 的标準,问题是,它的基础技术是非法盗用微软的,只能在地下里流传却上不了台面,无法进行更广泛的产品化,更无法生产硬体播放机。在这种情况下,一些精通视频编码的工程师 (包括原 DivX 3.11 的开发者) 成立了一家名为 DivX Networks Inc. 的公司,简称 DXN。DXN 发起一个开放原始码项目 Project Mayo,目标是开发一套全新的、开放原始码的 MPEG4 编码软体。特别是完全符合 ISO MPEG4 标準的 Open DivX CODEC 吸引了许多软体高手参与,并很快开发出Open DivX 编码器和解码器原型,之后又开发出更高性能的编码器 Encore 2 等等。这一时期,主要编码工作是 DXN 的人在做,而许多技术难关的解决得力于来自开放原始码社会的帮助。
就在一切都看]起来进展顺利的时候,好戏上演了。Project Mayo 当然是开放原始码,但不是依据 GPL (通用公共许可证,一种开放原始码项目中常用的保障自由使用和自由修改软体权利的协定)而是LGPL协定(LGPL协定:次级GPL(Lesser GPL),与GPL一样,是一种公共许可证。与GPL的最大不同是它允许私有。)。DXN 在设计授权协定时留了一手,2001 年 7 月,就在 Encore 2 基本成型,差不多可以产品化的时候,DXN 另搞了一个 DIVX 网站,封闭了原始代码,发布了他们自己的 DivX 4。DivX 4 的基础就是 Open DivX中的 Encore 2,但利用了 DivX 的牌号,出乎意料的摆了所有人预料。由于DXN 不再参与,Project Mayo 陷于停顿,Encore 2 的原始代码也被 DXN 从伺服器上撤下。经过激烈的争论,DXN 当然承认 Encore 2 在法律上是开放的,但仍然拒绝把它放回伺服器。开源社区就这样被狠狠地涮了一回。
Open DivX 尚不能实际使用,而 DivX 4 (以及后续的收费版本DivX 5) 等成了私有财产,许多人为打破微软垄断而无偿付出的智慧型和劳动仅仅是帮助了 DXN 公司发财。这种结果当然是不能被接受的,因此,整个 0dayz 组织永远的拒绝了 DXN 公司的 DivX4/5,而原 Open DivX 开发组中的倖存者,逐渐重新聚拢开发力量,在最后一个 Open DivX 版本的基础上,发展出了 XviD。
劫后余生的 XviD 到现在又度过了近 1 年时间,它继承并发展了 Open DivX Encore 2,性能得到极大提高,被认为目前世界上速度最快的 MPEG4 CODEC。XviD重写了所有代码,并吸取前车之鉴依照 GPL 发布 (注意不再是 LGPL,所以谁要是想用它做成产品而不开放原始码是非法的)。不过,因为 MPEG4 还存在专利权的问题,所以 XviD 只能仿照 LAME 的做法,仅仅作为对如何实现 ISO MPEG-4 标準的一种研究交流,网站上只提供原始码,如果要使用就要自己编译原始码或者到第三方网站下载编译好的可运行版本。
想当初Gaj 之流的几个家伙搞 Open DivX 的时候,一开始是很像一个像模像样的开放原始码项目,很多人都被吸引过去一起开发,测试。直到后来,那几个家伙一夜之间露出骗子的本来面目了,把 Open DivX 的成果一股脑带走,变成了封闭原始码的 DivX4,而后进一步变成现在的收费的 DivX 5 了。本来很好的 Open DivX 被逼流产,不过也就促成了今天 XviD 的诞生、发展和壮大。现在的 XviD 更可以说超越了 DivX 5,以更好的质量,更强的功能挑战着新一代的 MPEG4 套用战场。
另一个 XviD 中引人注目的技术发展,就是 B 帧。我们知道 I 帧就是关键帧,P 帧在关键帧之间,只储存与之前一幅已解压画面的差值。B 帧与 P 帧的原理一样,但除了三者之前解压了的画面外,亦会参考后面一帧中的画面信息。因此 B 帧解压出来的画面比P帧就要来的好。
之前的 MPEG4 编码核心都仅仅使用了 I 帧和 P 帧存储画面。如果能在此基础上使用 B 帧技术,自然可以在画质和压缩比上更上一层楼。目前 XviD 已经为开发人员提供了测试性质 B 帧体验版的 XviD 编码核心,相信不久的将来,XviD 就可以把 MPEG4 编码的优势发挥到极致,成为网上视频记录格式的盟主。