搜索 社区服务 统计排行 帮助
  • 35688阅读
  • 77回复

[原创]岁末争霸战----2003年最强的视频编码

楼层直达
级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
终于到年底了..........
今年以来视频编码的发展进入了百家争鸣的时代........
免费的视频编码越来越多..........
而且在压缩质量和效率上比原来也有所提高.........
这里就把最新的六种视频编码作出比较.........
它们分别是:
3ivx D4 4.5(MPEG4)
DIVX 5.11
RV9 新VBR 2pass
WMV9
VP6 6.0.9.2
XVID 圣诞版(patch -156)


要说的几点是, 没想到XVID再我测试刚好做完的时候就出了beta3, 不过只差了5各patch, 而有可能会影响结果的只有I-frame那, 不过应该区别不大.
VP6 终于改进了原来的2-pass和休整了bug, 现在终于可以和其他编码一搏了.............
其实本来还计划了一个片段的.........
不过因为花的时间远远超出了预计(一共花了5天时间)..........
所以最后一个就没做了...........



下面是测试用的设置:
全部的max key-frame interval 都是 10 sec

3ivx:
基本没什么可设置的
2-pass best quality
half-pel + 4mv


Divx使用的设置是:
performance/quality --> slowest
Bidirectional encoding on
其它的都是 off
n-pass, n>=3



Rv9使用的设置是:
EHQ=80
customPacketSize=16000
patternAdaptivity=1
MSL=60
使用了新的VBR 2-pass
Max bitrate 一般是 average的两倍
zoom and pan的MSL 改成了 5, low motion的改成了10.




WMV:
Maximum quality
decoder = Complex
2pass
10sec max I-frame interval

XVID:
motionsearch= Ultra high
VHQ=4
quant type = h.263
BF: 3/100/100
trellis = on
chromamotion = on
chroma optimizer=off
2 pass:
high bitrate scene=10
low bitrate scene=10
degration=5
improvement=5
over flow control=5
i-f boost=0
i-f reduction = 20
min i-f=4
这里在低动态的那个片段里的25%中因为无法接近设置的码率, degration改成了20.


VP6:
这里到后来才发现犯了个错误, 本来该使用 advance profile, 但使用了simple profile.
使用advance profile的话,PSNR应该会有0.1到0.3的提高.这个以后如果有时间再重新测试.
good quality<<用best quality的话速度就会由 帧/秒 变成 秒/帧 了....
VBR
progressive
quant= 2-31
2pass= 70/40/400
其他都是off



下面是测试的样板script:
3ivx:
fil=avisource("M:\avis\3ivx\3ivx25.avi")
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\3ivx\3ivx25.log")

divx:
fil=avisource("M:\avis\divx\divx90.avi")
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\divx\divx90.log")

RV9:
fil=directshowsource("M:\avis\rv9\rv990.rmvb",fps=29.97)
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\rv9\rv990.log")

VP6:
fil=avisource("M:\avis\vp6\vp690.avi")
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\vp6\vp690.log")

WMV:
fil=avisource("M:\avis\wmv\wmv25.avi")
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\wmv\wmv25.log")

XVID:
fil=avisource("M:\avis\xvid25.avi").trim(1,0)
org=avisource("ffv1.avi")
compare(fil,org,channels="YUV",logfile="M:\avis\xvid25.log")



这里是测试结果的表格:
http://www-personal.umich.edu/~liusu/test/results.xls
如果没有M$ office的话, 只有看图了
http://www-personal.umich.edu/~liusu/test/spreadsheet.png







先讲解一下各个测试的作用.......
Average PSNR= 平均峰值信噪比
作用是测量一个视频编码在一定文件大小下和源文件的差别的平均值
这个越高画质就越高
Overall PSNR = 全局峰值信噪比
作用是测量一个视频编码在一定文件大小下和源文件的差别, 还考虑PSNR的连续性.........
和平均峰值信噪比相比, 如果有一个10dB和90dB的帧, 那平均峰值信噪比就是50, 而两个50dB的帧的平均峰值信噪比也是50.......
很明显两个50dB的看起来要好得多, 因为10dB的帧看起来可以说和原来的是完全不一样了, 即使有一个90dB的, 但那个烂的帧会让人觉得总体的画质低下. 而全局峰值信噪比则考虑到了这一点..........
峰值信噪比的数值的变化越小, 数值就越高..............
一个视频编码本身的压缩能力决定了平均峰值信噪比.........
但它的流量控制(rate control)却是它全局峰值信噪比 高低的关键..........

下面的rate control就是用全局峰值信噪比/平均峰值信噪比 x 100% 得出来的, 从这里可以看出一个视频编码的2-pass(或n-pass)的性能.

因为测试的东西太多........
我不可能用人眼来看谁好谁差了............
所以暂时只有依靠PSNR来判定了............


这里文件大小的100%是用xvid quant 2 来决定的........
之所以最高用90%, 就是为了测试xvid的流量控制能力........


第一个片段是使用的gundam seed的第一个op
使用的avs sript是:
import("D:\aviutil\aviutilfilters.avs")
mpeg2source("seed.d2v",idct=7)
converttoyuy2()
ConvertYUY2ToAviUtlYC()
AU_wavelet3DNR2(2,0,20,0,20,20,20,20,20,20,5,0,0,0,0,10,false,true,true,false,false,false,false,false,false,false,false,false,true,true,false,false)
ConvertAviUtlYCToYUY2()
converttoyv12()
warpsharp(bump=100,depth=96,blur=3,cubic=-0.6)
undot()

因为这个script很慢....
所以转成了ffv1的avi来做测试.........
在高动态的情况下, 光看平均psnr的话, RV9是最强的......
不过RV9的2-pass性能似乎不太理想..........
在overall psnr里面的领先在80%的时候被XVId超越了........
不过在这个测试里面, RV9是明显的胜利者............
只有在高码率的情况下XVID 才会胜出........
VP6在中低码率的情况下表现相当不俗.........
再进入高码率后就不行了............
Divx5.11似乎比XVID差了一点,几乎平行, 毕竟都是mpeg4的codec.....
不过,同样是mpeg4的3ivx的表现就相当差了.........
average psnr和overall psnr都殿底了........
MS的WMV9似乎还老当益壮......
实力和xvid 不相上下, 但相对与RV9就差了不少............











第二个片段是使用的12国记的op:
用的script:
mpeg2source("123.d2v",idct=7)
trim(0,2280)

这里完全是镜头的动作,横移,拉近,拉远.........
这里面XVID基本上是所向披靡.........
除了在低码率下被RV9和WMV击败外.............
overall psnr 在大部分情况下都远远超过其他codec.........
这个片段的前半对码率的需求相当低, 而后半对码率的需求比较高.....
这对2-pass是一个很好的考验.............
从这里来看..........
xvid的2-pass的rate control(流量控制是相当优秀的)..........
而divx的n-pass也不错, 虽然在average psnr 中差点殿底, 不过在overall psnr中总算搬回一成, 缩短了和其他codec的差距..............
这里要注意的是wmv在低码率下超过了设定码率 20%以上.........
所以实际PSNR应该更低...........










第三个片段是用的12国记第8话一段比较暗,动态低,但背景有不少缓慢移动的灰尘的场景(DVD的chapter 2)
mpeg2source("123.d2v",idct=7)
trim(301,4080)

这里首先要说的是WMV好像并不喜欢这一段场景...........
在2nd pass里老是出错退出..............
我花了半天时间, 始终无法弄明白是什么原因...........
始终无法压出25%大小的wmv..........
在低动态下, RV9继续保持无敌性..............
无论是overall psnr还是average psnr.........
RV9都是绝对的胜利者............
DIVX和XVID的表现相当相似..........
不过XVID在高码率下胜出.........
VP6在最低的码率下仅次于RV9(虽然差了很远)............
在高码率下表现不佳............
WMV在90%的时候的文件大小超出了设置大小很多..........
不明白为什么会如此............
而3ivx在25%的时候居然超出了设定50%以上..............
所以实际应该会低与xvid和divx的...........








关于压制的速度......
3ivx是最快的.................
然后是vp6 simple.......
vp6 advance和xvid的速度大概差不多........
不过xvid有fast first pass(beta 3 还有了turbo mode), 所以速度应该快与VP6..........
剩下几个应该就是慢了一个等级的了.........
Rv9因为也有fast first pass, 所以速度在vp6之后..........
而WMV9和DIVX5.11的速度就是有XVID或VP6的1/7-1/10了......
当然两个可以使用更低的精度来提高速度, 不过在画质上就会差更远了............


似乎到这里就是完了............
因为测试的数量太大........
所以多半有一些错误........
希望大家看到后能指出来................


哦......
还没说哪个最强啊............
如果要质量的话.......
应该是选RV9吧...........
如果觉得RV9太慢............
就使用XVID吧.............

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 侠客
注册时间:
2005-02-23
在线时间:
0小时
发帖:
342
只看该作者 77楼 发表于: 2007-12-06
请不上当今 的264这些codec的测试吧

彼女搜寻ing.
无损收集ing.
级别: *
注册时间:
*
在线时间:
小时
发帖:
*
只看该作者 76楼 发表于: 2004-05-08
tai hao l
级别: 工作组
注册时间:
2003-12-27
在线时间:
0小时
发帖:
1926
只看该作者 75楼 发表于: 2004-05-01
可能我这个水平还不够,有些不懂


级别: 骑士
注册时间:
2003-08-12
在线时间:
1小时
发帖:
957
只看该作者 74楼 发表于: 2004-04-27
引用
最初由 Silky 发布

不管压缩比,光比质量的话,XviD 使用 MPEG quantization,自订量化矩阵,无疑是目前质量最高的。
只要你用高质量的量化矩阵压缩过一次,亲眼看到 MPEG-4 能够压出来的超高质量,保证以后低码率的东西你根本看不下去 :D
因为现在大家都习惯看 NR 很重,把所有细节都 "洗掉",糊成一团,看起来像「油画」,同时线条很细,很锐利,也很刺眼的画面 ^^;
大家都认为这种画面很漂亮,我看起来却觉得很痛苦 ^^;;
例如,NR 太重,把所有的细节都洗掉,茂密的草地变成「一块」绿色的黏液,透明的白云变成「一团」厚重的白泥,木头的材质纹理、墙壁岁月斑驳的痕迹,通通不见了。
锐利化太过,出现白边,或者 "出血",画面只剩下高频,非常怪异,完全不协调,看了眼睛很「刺痛」。


我個人也不大喜歡銳化的畫麵,比較喜歡朦朧一點,俗話說:朦朧纔是美:D
avs濾鏡方麵,不知道哪個濾鏡可以使得畫麵朦朧中較為清晰呢?
例如winny down的外國人壓製的百變之星01話就是那種傚果,雖然她是wme9編碼,不過xvid的我也看到過有,應該是濾鏡關繫吧,我試過用blur,傚果很差,而且容易有暗部色塊
請S前輩指點一二
级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 73楼 发表于: 2004-02-28
ffdshow可以调用AVS.......
如何使用AVS可以参考精华区........

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 新手上路
注册时间:
2003-12-28
在线时间:
0小时
发帖:
286
只看该作者 72楼 发表于: 2004-02-26
引用
最初由 skywalker 发布


doom9上的不一样........
原因1: 他用的不是动画.........
原因2: 他的vp6用了PP, 而其他的没有用.............
我全部都没用pp, 因为xvid和divx都可以用ffdshow来读, 而ffdshow可以用avisynth, 所以用PP的话, XVID和divx会比较强. 我的测试中xvid只是随便用了一个滤镜PSNR就上升不少


滤镜这么有用?教一下怎么用滤镜把?
级别: 新手上路
注册时间:
2003-03-19
在线时间:
0小时
发帖:
70
只看该作者 71楼 发表于: 2004-02-25
好专业,看不懂
级别: *
注册时间:
*
在线时间:
小时
发帖:
*
只看该作者 70楼 发表于: 2004-02-24
^^
原來這裡也能看到silky大大的文章
感謝感謝
级别: 新手上路
注册时间:
2004-01-18
在线时间:
0小时
发帖:
5
只看该作者 69楼 发表于: 2004-02-22
这里真的专业啊!~
级别: 新手上路
注册时间:
2004-01-30
在线时间:
0小时
发帖:
4
只看该作者 68楼 发表于: 2004-02-18
看来压一个东西,还这么麻烦呢.
级别: 侠客
注册时间:
2002-06-20
在线时间:
0小时
发帖:
444
只看该作者 67楼 发表于: 2004-02-10
好难看懂啊,真是不懂,好好研究先。

级别: 版主
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2803
只看该作者 66楼 发表于: 2004-02-08
Re: Re: [原创]岁末争霸战----2003年最强的视频编码
引用
最初由 angemon 发布

楼主提到的Rv9也有fast first pass,请问,如何实现的?_^


直接用realporducer 10 就行了........

live id: liusu119@hotmail.com
email: liusu119@gmail.com
级别: 侠客
注册时间:
2001-11-21
在线时间:
22小时
发帖:
449
只看该作者 65楼 发表于: 2004-02-07
想要体积大的就看AVI吧,注意是无损压缩那种,保证2-3个动画就可以把你的硬盘塞满。
级别: 新手上路
注册时间:
2003-12-07
在线时间:
0小时
发帖:
32
只看该作者 64楼 发表于: 2004-02-06
Re: [原创]岁末争霸战----2003年最强的视频编码
引用
最初由 skywalker 发布
Rv9因为也有fast first pass, 所以速度在vp6之后..........

楼主提到的Rv9也有fast first pass,请问,如何实现的?_^

Angemon = Angel + Demon - Del
快速回复

限150 字节
上一个 下一个