Xvid(旧称为XviD)是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。Xvid是由一群原OpenDivX义务开发者在OpenDivX于2001年7月停止开发后自行开发的。Xvid支持多种编码模式,量化(Quantization)方式和范围控,运动侦测(Motion Search)和曲线平衡分配(Curve)等众多编码技术,对用户来说功能十分强大。Xvid的主要竞争对手是DivX。但Xvid是开放源代码的,而DivX则只有免费(不是自由)的版本和商用版本。
详解编辑本段回目录
XviD的历史与特点编辑本段回目录
几经波折的诞生记
4年以前,在PC上能用的唯一MPEG-4编码器就是由微软所开发的,包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列编码内核。其中前面两种都可以用来制作AVI档案,至今都作为Windows的默认组件。不过V1和V2的编码质量都还不太好,直到MS MPEG4V3开始,画面质量有了显著的进步。不过微软却决定仅将这个MS MPEG4V3 的视讯编码内核封闭在Windows Media串流媒体技术,也就是我们熟知的ASF档案之中,不再能用于AVI档案。ASF档案虽然有一些好处,但是过于封闭甚至不能被编辑,惹恼了天不怕地不怕的电影黑客。很快便有小组修改了微软的MS MPEG4V3,解除了不能用于AVI档案的限制,并开放了其中一些压缩参数,由此,也就诞生了我们今天所熟悉的MPEG4编码器DivX 3.11。
DivX广泛流行,成为DVDRip的标准,问题是,它的基础技术是非法盗用微软的,只能在地下里流传却上不了台面,无法进行更广泛的产品化,更无法生产硬体播放机。在这种情况下,一些精通视讯编码的程式员(包括原DivX 3.11的开发者)成立了一家名为DivXNetworks Inc.的公司,简称DXN。DXN发起一个开放源码项目ProjectMayo,目标是开发一套全新的、开放源码的MPEG4编码软体。特别是完全符合ISO MPEG4标准的OpenDivX CODEC吸引了许多软体高手参与,并很快开发出OpenDivX编码器和解码器原型,之后又开发出更高性能的编码器Encore 2等等。这一时期,主要编码工作是DXN的人在做,而许多技术难关的解决得力于来自开放源码社会的帮助。
就在一切都看起来进展顺利的时候,好戏上演了。ProjectMayo虽然是开放源码,但不是依据GPL(通用公共许可证,一种开放源码项目中常用的保障自由使用和修改的软体或源码的协议)。DXN在设计授权协议时留了一手,2001年7月,就在Encore 2基本成型,差不多可以产品化的时候,DXN另搞了一个DIVX.COM网站,封闭了源码,发布了他们自己的DivX 4。DivX 4的基础就是OpenDivX中的Encore 2,但利用了DivX的牌号,可以说出乎意料的摆了所有人一刀。由于DXN不再参与,ProjectMayo陷于停顿,Encore2的源码也被DXN从伺服器上撤下。经过激烈的争论,DXN虽然承认Encore 2在法律上是开放的,但仍然拒绝把它放回伺服器。开放源码社会就这样被狠狠地涮了一回。
OpenDivX尚不能实际使用,而DivX 4(以及后续的收费版本--DivX 5)等等都成了私有财产,许多人为打破微软垄断而无偿付出的智慧和劳动仅仅是帮助了DXN发财,这种结果当然是不能被接受的。为此,整个0dayz组织永远的拒绝了DXN公司的DivX4\5,而原OpenDivX开发组中的幸存者,逐渐重新聚拢开发力量,在最后一个OpenDivX版本的基础上,发展出了XviD。
劫后余生的XVID到现在又度过了近1年时间,它继承并发展了OpenDIVX Encore 2,性能得到极大提高,被认为目前世界上速度最快的MPEG4 CODEC。XVID重写了所有代码,并吸取前车之鉴依照GPL发布(注意不再是LGPL,所以谁要是想用它做成产品而不开放源码是非法的)。不过,因为MPEG4还存在专利权的问题,所以XVID只能仿照LAME的做法,仅仅作为对如何实现ISO MPEG-4标准的一种研究交流,网站上只提供源码,如果要使用就要自己编译源码或者到第三方网站下载编译好的可运行版本。
想当初Gaj之流的几个家伙搞OpenDivX的时候,一开始是很像一个像模像样的开放源码项目,很多人都被吸引过去一起开发,测试。直到后来,那几个家伙一夜之间露出骗子的本来面目了,把OpenDivX的成果一股脑带走,变成了封闭源码的DivX4,而后进一步变成现在的收费的DivX5了。本来很好的OpenDivX被逼流产,不过也就促成了今天XviD的诞生、发展和壮大。现在的XVID更可以说超越了DivX 5,以更好的质量,更强的功能挑战着新一代的MPEG4应用战场。
丰富多彩的技术特性
不仅XviD的出现本身就是开放源码社会中典型的一部教科书,它在技术上的各种新特性也都是货真价实、童叟无欺的。对于一个第二代的MPEG4视频编码内核来说,XviD的各种算法设计都有代表性的先进意义。
多种编码模式
除了最原始单重估定码流压缩(1-pass CBR)之外,XviD提供了包括:单重质量模式动态码流压缩、单重量化(Quantization)模式动态码流压缩、和包括外部控制和内部控制的两种双重(2-pass)动态码流压缩模式。XviD显然是目前PC上的MPEG4编码内核中,可选模式最多的视频编码。
其中特别是双重(2-pass)动态码流压缩模式,通过检测画面运动幅度以最优化的方式曲线分配画面量化幅度,使充满活性元素的视频影片可以在占用空间和画面质量之间获得最佳的平衡。而单重量化(Quantization)模式动态码流压缩,可以高速地一次性生成可控画面细节的动态码流视频文件,在较少的压缩时间代价之下,可以获得较稳定的画面细节质量,这都是单纯的DivX3.11所不具有的优秀功能。
量化(Quantization)方式和范围控制
量化(Quantization),简单的说就是在编码时通过对时间或空间上相邻的画面单元进行同化、模糊细节的程度,是对画面质量最基本的控制因素。XviD不仅提供了标准的MPEG量化方式,还特地提供了更适合低码流压缩的.h263量化方式。并且XviD还可以在双重(2-pass)运算时,根据对画面信息的综合分析,动态的决定某段场景的画面量化方式,真可以说是为网络媒体文件传播中,空间与画质的平衡而考虑,设计贴心得到家了。
XviD还提供了强大的对压缩过程中的量化幅度的范围控制。用户可以选定压缩时允许使用的量化幅度范围。例如设定一个量化的上限,就可以避免可能出现的画质大幅下降的情况。
运动侦测(Motion Search)和曲线平衡分配(Curve)
对画面逐帧进行运动侦测,以及对全片段的运动侦测结果进行分析后,重新以曲线平衡分配每一帧的量化幅度,以做到:需要高码流的运动画面可以分配更多空间、更高的码流、更低的量化幅度来保持画面的细节;而对于不包含太多运动信息的静态画面,则消减分配预算。这种把好钢用在刀刃上的做法,是XviD做为第二代MPEG4编码的核心内容。
XviD提供了多极运动侦测精度,包括半像素插值(half pixel interpolation)的技术以16x16像素的微区块为单元标示上运动矢量;以及4分运动矢量(inter4v motion vectors)的方式,以8x8的像素区块为单元更细致的纪录运动向量以供二重分析。
动态关键帧距(I-frame interval)
动态关键帧距是另一个XviD所具有的,在空间和画面之间获得最大平衡的技术。我们知道在视频压缩中不是每一帧都记录着全部的画面信息,事实上只有关键帧记录着完整的画面信息,而后续的P帧(P-Frame)仅仅是纪录下与之前一帧的差值。如果关键帧之间的画面变化很大,则会浪费宝贵的空间在P-Frame上;而加入把变化很大的那一帧记录在关键帧里,那么由于后续的帧不再有更大的变化,就可以节省P帧所需的空间。因此,根据画面镜头切换和运动幅度来变换关键帧的位置,对于视频压缩下的画面质量提高,就有着事半功倍的效果。
心理视觉亮度修正
除了基本的MPEG4编码外,XviD还提供了不少附加功能。其中典型的就是心理视觉亮度修正。这个功能可能通过去除肉眼不能分辨的亮度信号和亮度差异,来提高压缩效率。遗憾的是,尽管这个设计非常的有创意,但是目前的实际应用中却会导致肉眼可见的画面质量下降,还期待在日后的版本中可以有所改进。
演职员表选项
另外一个贴心的设计是电影专用的“演职员表选项”。这个功能可以在用户指定的某些不必要保留细节的段落处(例如电影的演职员表),设定为极低的码流。甚至压缩到正片码流的10%以下,可以节省不少空间,设计得非常贴心。
外部自定义控制
除了XivD自己的内部曲线分配控制方式外,XviD也提供了外部的开放接口。允许使用者略过XviD本身的编码分析内核,利用第三方提供的外部分析工具,例如Gordian Knot,生成的分配好的控制文件,再交还XviD做最终的二重运算压缩。这种方式扩展了XviD的可用性和用户控制程度,因为像Gordian Knot这种软件甚至可以做到由用户控制每一帧的量化幅度和码流分配额度,可以为高级应用提供更多的可能性。
运动矢量加速(Hinted Me)编码
XviD还有专为提高编码效率而开发的设计,就是纪录下画面的运动矢量信息至一个Log文件中。再在二重运算压缩时通过直接读取该文件中的信息,节省下对运动矢量信息的重复运算,大幅提高编码速度。
画面优化解码
不仅在编码上XivD拥有强大的功能,在解码时的画面优化方面,XviD也有很多新的建树。例如"Horizontal deblock (Y)"可以柔化水平方向的亮度马赛克;"Horizontal deblock (C)"可以柔化水平相的色度马赛克;"Deringing(Y)"可以柔化环状亮度色斑;"Deinging (C)"可以柔化环状色度色斑;"mosquito"可以减少画面中的蚊状噪斑。并且,这些XviD的画面优化手段都是可选的,因此只要关闭几个不是那么必要的选项,就可以在低配置的PC机上播放。
正在开发的B帧
另一个XviD中引人注目的技术发展,就是B帧。我们知道I帧就是关键帧,P帧在关键帧之间,只储存与之前一幅已解压画面的差值。B帧与P帧的原理一样,但除了叁考之前解压了的画面外,亦会参考后面一帧中的画面信息。因此B帧解压出来的画面比P帧就要来的好。
之前的MPEG4编码内核都仅仅使用了I帧和P帧存储画面。如果能在此基础上使用B帧技术,自然可以在画质和压缩比上更上一层楼。目前XviD已经为开发人员提供了测试性质B帧体验版的XviD编码内核,相信不久的将来,XviD就可以把MPEG4编码的优势发挥到极致,成为网上视频记录格式的盟主。
DivX和XviD不能不说的故事编辑本段回目录
黑格尔说过"存在即合理"
随着时代的进步,社会的发展,在计算机视频技术方面更是突飞猛进。如今视频的业界标准已经到了DVD时代。主流的DVD光驱的价格已经降到400元人民币以内。DVD播放机的价格最便宜的已经降到了700元。但是这些都是近期发生的事情,目前仍有一大群only CD-ROM群体,他们不愿意再投资去买DVD光驱,有的甚至由于机器无法再扩充而不能购买DVD光驱。这便促使另一个的解决方案的萌发。
除此之外,互联网宽带的普及,Adsl宽带入户,P2P软件的泛滥,使得650MB的大文件轻松的实现异地传输。还有正版DVD大片的价格居高不下,也是正版DVD普及化的一大障碍。
基于以上因素的存在,有一种新的视频压缩技术出现,那就是DivX,即"压缩电影"。压缩电影的技术有很多种,但是DivX最为普及,它广泛流传于互联网与盗版盘。
随着时间的推移DivX再推出刚刚推出不久,就不断推陈出新,从DivX3.11到DivX4 ,目前最新版本为DivX5.02。本来版本越高,技术也就越高、播放的质量应该更好、更清晰。但是事实告诉我们随着版本的提升,压缩后的播放效果提升不明显,压缩所用的时间越来越长,压缩后的体积没有太大的进步,甚至有的使用DivX5.02压缩以后会出现跳帧的问题。这到底是为什么呢?难道视频压缩技术已经达到顶峰不能够再穿越了么?
目前又出现一种新的压缩技术名为XviD,在视频业界初见端倪,就目前来看它的压缩时间就是一大卖点,它可以在保持DivX5的画质的基础上,大大提高压缩时间。
光从名字上看就可以看出Xvid与Divx,他们之间肯定有着千丝万缕的联系,大家一定想知道。下面就为大家谈谈关于XviD的故事。
Long long ago…
故事的经过是这样的。
早在1998年微软开发了第一个(也是唯一的)在PC上使用的MPEG-4(注)编码器,它包括MS MPEG4V1、MS MPEG4V2、MS MPEG4V3的系列编码内核。其中的V1和V2用来制作AVI文件,一直到现在它都是作为Windows的默认组件。不过V1和V2的编码质量不是很好,一直到MS MPEG4V3才开始有好转,画质有了显著的进步。但是不知微软出何居心,却将这个MS MPEG4V3 的视频编码内核封闭在仅仅应用于Windows Media流媒体技术上,也就是说,我们经常看到的ASF流媒体文件中。ASF文件虽然有一些优势,但是由于过分的封闭,不能被编辑,未得到广泛的应用。这便惹怒了不怕天不怕地的视频黑客和置于钻研视频编码的高手。后来,这些小组不仅破解了微软的视频编码,而且经过他们的修改,一种新的视频编码诞生了。那就是广为流传的Mpeg4编码器――DivX3.11。
随后一发不可收拾,DivX被传得红得发紫,很快就成了业界的标准。但是问题同样很快的出现了,DivX的基础技术是非法盗用微软的,只能在地下里流传,却上不了台面,正所谓"名不正,言不顺",无法进行广泛的发展,即产品化,更无法生产硬件播放机。
"生产力要改变生产关系"
在这种情况的迫使下,一些视频编码的高级程序员(包括原DivX 的开发者)组建了一家公司,名为DivXNetworks Inc。这家公司发起一个完全开放源码的项目,名为"ProjectMayo",目标是开发一套全新的、开放源码的MPEG4编码软件。由于它完全符合ISO MPEG4标准,又是完全开放源代码(就象linux操作系统),OpenDivX CODEC吸引了很多软件、视频高手参与。人力、物力大大投入,OpenDivX编码器和解码器原型很快便公布于众,之后又开发出具有更高性能的编码器Encore 2等等。这DivX的辉煌时期。
虽然主要编码工作是DXN的人在做,但许多的技术难关的突破完全得力于来自开放源码社会的帮助。
DivX的优势被人们所接受,高品质的DVD电影的容量一般为5GB,但经过DivX编码后的大小只有650MB,仅仅为原DVD容量的八分之一,图像品质却与DVD相当。它可以通过互联网相互传输,还可以报存在一张CD光盘(650MB)上。DXN的野心:
DivXNetworks一直希望DivX能成为好莱坞巨头们选择的行业标准,并可以通过互联网进行传输的视频文件,就像唱片发行公司不得不接受MP3格式,并使用它在网上传输音乐文件一样。DXN希望并计划在网上出售视频内容的公司达成技术转让的协议。但是,到目前为止,它尚未和任何一家主要的、甚至具有影响力的电影制片公司达成这类协议。
很可惜的是想DivX这么好的电影只能在电脑上播放,目前还没有一款播放机能够播放这样的光盘。日前,DXN已经来到了中国,这家公司的负责人表示,目前有许多美国人都希望能买到采用这一技术的DVD播放设备,但全球还没有人能生产,所以他希望能与中国的DVD制造商携手,在年内拿出产品,并且首先在美国推出。
"天底下真的好人多么?那么小人算好人么?"
就在DivX顺利发展时期,DivX的技术逐渐成熟,商机无限的时候,一台好戏上演了。由于DivX的技术不是依据GPL协议(通用公共许可证,一种开放源码项目中常用的保障自由使用和修改的软件或源码的协议),而是LGPL协议(注)。这是DXN公司为自己留的后门。
2001年7月就在Encore2基本成型的时候,DXN公司突然封闭了DivX的原代码,并在此基础上发布了自有产品DivX4。DivX 4的基础就是开放源代码OpenDivX中的Encore 2,DXN利用了DivX的招牌。DNX公司这么做,可以说是初其不备的摆了所有人一刀。开放源码社会就这样被狠狠地涮了一回,他们是那么的无辜。
DXN公司趁热打铁,很快推出了DivX5,但是DivX5没有比DivX4强到哪里去,甚至有bug,更可气的是这一版本还要收费。可怜阿,有那么多无偿为DivX技术付出的智慧与劳动的人,可悲阿,他们为一值都在无偿的为DNX公司赚钱。这种垄断和一直处于垄断地位的微软来说,DXN要更恨、更毒。
人世间还是好人多!正义当头!
首先是全球整个0dayz组织(注)永远的拒绝了DXN公司的DivX4\5。
被人"涮"了一把的开源社团决定另起门户,逐渐重新聚拢开发力量,在OpenDivX版本的基础上,再次开发出一种新的MPEG-4编码、解码软件。这就是:XviD。从技术上来说XviD已经基本上与DivX5接近,或者还有所超越;
春天来了:
近一年来XviD继承并发展了曾经的OpenDIVX Encore 2,并且使其的性能、效率的到了极大的提升,被认为是目前最快的MPEG4编码。这是因为XviD重新改写了所有原代码,焕然一新。除此之外,Xvid还吸收了前车之鉴,依照GPL发布。(不再是以前DivX的LGPL,也就是说:谁要是想用它做成产品而不开放源码是非法的)而且在2002年,也就是今年,TDX2002(全球最著名的地下电影发行组织,每年在网上放出数千部最新而且高品质影片RIP)已经接纳XviD为官方标准。这样TDX2002就有了两个正式标准:DivX 3.11与XviD。而DivX 4、5像其它封闭的商业软件一样,被永远拒绝。
报应来了!
对开源软件下毒手的人远不止DXN一家,目前因为一家商业软件公司盗用XviD源代码,而被迫停止开发。具体的情况请参阅:http://www.xvid.org/;
DivX 4/5 XviD
出品公司 DivXNetworks Inc 开放源代码(GPL授权)
推出时间 1998年 2002年2月
创始人 罗达(Rota)及电脑黑客基尔(Gej) 被DXN"涮"的人
TDX2002认证 Yes Yes
oDay认证 No Yes
最新版本 5.02 1.3+
费用 收费 免费
压缩时间 长 稍短
图像质量 高、接近DVD 高、接近DVD
压缩容量 较小 较小
编码容量 3.4MB 359K
XviD使用技巧:
关于XviD压缩设置的文章很多,XviD可以调节的选项很细,由于篇幅限制,不再本文的讨论之内。在这里,我推荐大家使用"2-Pass"编码, 因为它能给我们更精确的最终文件大小,并且生成最佳质量的编码 (在文件大小相同的情况下)。
只安装DivX5的编解码器不能播放由Xvid压缩的电影。但是只安装XviD编码,可以顺利播放DivX5压缩的电影。但是在播放DivX5电影的时候,速度不能让人满意。加上ffdshow(注)之后效果明显改善。看来XviD在播放divX5的还不是很完善。
虽然XviD到目前来讲与DivX5对战,仍有些身单力薄,优势不是很明显。但是笔者很看好XviD。首先,它是绝对开放源代码,这使得有更多的人投入到XviD的研发之中。还有,它完全重写DivX的原代码,让新的XivD去粗取精、焕然一新;目前XviD的开发人员有很多都是当初DivX的研发人员,对DivX的错误了解得很清楚,重写之后,XivD的地层优势可见一斑。另外,DivX4/5虽然版本不断更新,但是功能提升并不高,优势不明显。XviD是新生力量,而且充满了复仇的力量。祝XviD一路走好。
XviD版本的历史:
1.0 2002年2月17日 第一版 ,首次发布
1.0 2002年2月28日 大量的修正和更准确地解释
1.1 2002年3月2日 分析澄清了很多概念
1.2 2002年3月4日 加入量化矩阵(quantization matrix), 移去量(removed quant). 柔和(smoothing) 技术
1.3 2002年3月8日 关于 Nic's XviD Directshow Filter 的详释
1.3+ 2002年7月23日 按照Nic's XVID Codec校正补充部分内容(目前最新版本)
关于DivX起源的小知识:
这种名为DivX 的技术,由一个27岁的法籍影音发烧友罗达(Rota)及电脑黑客基尔(Gej)创造出来得。
原来DivX所采的技术并非这两位仁兄发明的,他们只不过是个盗版天才。随着Windows的大行其道,微软开发了MPEG-4技术,能够将视频影像文件容量压缩到很小。罗达与基尔将程式重写一遍,但将其改名为DivX,且放在网上随意任人下载。
微软声称将对所有推动DivX发展的人、企业作出追究。可是罗达正全面申请将他们的DivX合法化。由于DivX虽然是从Windows的发明出来的,但却没有用过任何微软的技术。而且,他更与美国一些技术人士及财经人员开会,和组新公司 ProjectMayo.com全力推广DivX。
其实,DivX是视频DVD的另一种保存方式,要靠DeCSS程序(注)才能做到。因为DVD本身有防复制的标记,让DVD不能随便复制到电脑里,但DeCSS能将它解码,令其可以复制,压缩成DivX电影。针对这一做法,各大电影商立即采取行动,防止DeCSS外流及散播,但为时已晚,DeCSS在Yahoo!、Google上都能找到。
名词解释:
TDX2002组织:全球最著名的地下电影发行组织,每年在网上放出数千部最新而且高品质影片RIP。
0day组织:全球著名的破解组织。其意思为在不到一天的时间里破解软件(自然包括游戏,软件,现在还涉及到其他东西),0Day只是一个统称(和WareZ的意思一样)。成为他们旗下的会员就可以获得他们提供给你的帐号,当然由于要求严格,所以一般是很难进入的!!(这里我只提醒一下,多留意NFO文件里的信息).
DeCSS程序:乔·约翰森编写的小程序,仅有57K,不仅震撼了好莱坞,还引发了无数的法律纠纷。他创造出来的“小魔怪”,如今已经成了好莱坞制片商们最恨之入骨的冤家对头。DeCSS程序能够将正版加密的DVD影片复制到计算机硬盘上。它还可以将这些影片上传到互联网上。
MPEG-4技术:是一种崭新的低码率、高压缩比的视频编码标准,传输速率为4.8~64kbit/s,使用时占用的存储空间比较小。目前的DivX(最新的XviD)电影都采用的此技术,现在被广泛采用。
GPL协议:通用公共许可证,一种开放源码项目中常用的保障自由使用和修改的软件或源码的协议。
LGPL协议:次级GPL(Lesser GPL),与GPL一样,是一种公共许可证。与GPL的最大不同是它允许私有。
Ffdshow:一个支持 Xvid、MPEG4-V3 MPEG4-V2 以及 DivX 所有版本所制作的视频文件的播放软件,占CPU 资源比较少。
相关链接编辑本段回目录
参考文献编辑本段回目录
http://en.wikipedia.org/wiki/Xvid