※ 引述《roex0608 (BorEXE)》之铭言:
: 会这么说是因为我最近才知道ffdshow有所谓的一个去断层(或叫色带)的功能
: http://i.imgur.com/lX6VlpX.jpg
: 以往我看影片在进入画面很昏暗的场景的时候,都会有很多色带产生的现象,开启这
: 功能后能够有效减轻这个现象,见效果
: http://i.imgur.com/6w7ZQAN.jpg
: 有色带↑
: http://i.imgur.com/lpp6vtH.jpg
: 去色带后↑
: http://i.imgur.com/UyPtqu8.jpg
: 有色带↑
: http://i.imgur.com/YH03OTb.jpg
: 去色带↑
: http://i.imgur.com/KVUVMsJ.jpg
: 有色带↑
: http://i.imgur.com/IZUYNx9.jpg
: 去色带↑
: 这功能真是解决我长年以来的疑问,我一直以为这是我电脑配置太渣的问题,原来是可以
: 改善的
以动画片源来说,主要是压制时压缩与量化造成渐层资讯失真,这可以透过调整
压制参数与使用10-bit精度编码来减少色带的产生,但高压缩设定时
能减少的色带还是有限,所以除了选择较好的片源(高压制品质)外,可以透过
去色带的后处理来进行修饰与还原,另外,有些片源是本身就包含色带,
因此为避免色带被直接压进去,会在压制串行前加一段前处理作业来去色带与修复,
而有些压制组则重视原始片源原始呈现,不做额外的"美工",所以您会看到压制
出来的画面纵使流量与压制设定很高,还是会有色带的出现。
: 我看LAV解码器就没有这种功能,那为何官方的安装默认要用LAV呢?LAV有何优势吗?
首先,这个功能是属于后处理(Post-processing),通常不在一般解码的程序中,
解码器做完视讯解码后,才让输出的影像经过一连串filter进行后处理,
包括像是您ffdshow上看到的Resize,灰阶调整等等,到SVP这类的东西
都可以称作后处理。
ffdshow提供的去色带与缩放两个后处理功能可以完全由madVR取代,
除了算法较好提供更好品质之外,madVR直接负责最后rendering的工作,
角色上来看,madVR比ffdshow更适合进行后处理,且若您的显卡不错,
它能分摊CPU与GPU的使用率。
以下我做了测试来比较ffdshow与madVR的deband品质,
-ffdshow设定部分
http://i.minus.com/iEX8odZbOoyJ9.png
(去色带使用默认值)
http://i.minus.com/ibtcmubjfzmNtk.png
(为了最好的效果,将ffdshow输出强制指定为RGB32)
http://i.minus.com/ibfWwtqENJy7jr.png
(使用高品质YV12转RGB,并套用混成(dithering))
-madVR设定部分
http://i.minus.com/ivjjDV5P9rJjM.png
(去色带使用中等(适应性判定))
http://i.minus.com/iBZhEsdcg3hPE.png
(品质设定除了dither算法不使用OpenCL Error Diffusion外全开)
PS: 测试使用的madVR版本为0.87.4,非最新版本,但不会影响测试结果
Result
-原始影像
http://i.minus.com/ib24sZpa0QIVxs.png
(8bit YV12 BT709 1280x720 256灰阶)
-ffdshow
http://i.minus.com/ifY5lK9ThLx89.png
-madVR
http://i.minus.com/iOrlZJhsUMdQ1.png
ffdshow与madVR去色带皆开大时,结果如下
Result
-ffdshow
http://i.minus.com/irnAS581JNyjJ.png
(门槛6,半径16)
-madVR
http://i.minus.com/igdLOCmjoYNhW.png
(去色带双选项High)
您可以看到使用中等设定时,madVR的去色带算法已将色带去的差不多,
而ffdshow仍有一些未去干净。
使用较强设定时,madVR几乎完全将色带去除,而ffdshow也将色带除的差不多,
但ffdshow出现了一些图像失真(artifacts)。
您可以看到madVR去除色带的品质较ffdshow自带的去色带功能好,
LAV虽然没有ffdshow的一些后处理功能,但在单纯输出解码影像的部分十分称职,
且LAV的开源计划目前处于活跃的状态,新的版本持续在对解码效率优化,并支援
更多功能,ffdshow则已成熟更新次数较少,基本上相对较不活跃,详细您可以查看
LAV与ffdshow的changelog。
从结果来看欲获得高品质输出 madVR + LAV是最佳组合,若原PO GPU不够力的话
再考虑使用ffdshow的后处理滤镜,而除了ffdshow自带的后处理滤镜外,ffdshow
也可使用AviSynth脚本外挂做即时运算,您只要安装AviSynth与需要的滤镜即可,
其中比较接近madVR去色带品质的AviSynth filter是flash3kyuu_deband,根据madVR
作者在讨论版的说明,madVR去色带是以flash3kyuu_deband的算法为基础,因此您若
使用f3kdb(该滤镜的简称),或许可以获得类似madVR去色带的效果,除了f3kdb外,您也
可以试试GradFun2db等,AviSynth有许多的处理filter可以玩,压制影片时的前处理
也常会用到这些滤镜,对于压制影片的人来说,如何使用这些滤镜压出
最佳效果是一门学问xd
PS: 关于截图中,应用程式的标题列内容会有 [#] 符号包起来是因为使用了
沙盒来执行程式,在沙盒中执行程式可以避免里面的程式影响到沙盒外
"真实世界"的运作情况与设定,简单来说就是试爆场,若怕一些奇怪的
软件搞坏电脑,或者需要同个软件多种不同设定互不干涉,可使用沙盒。
PS2: 测试使用的影片是透过AviSynth脚本以一张256灰阶的PNG图片档为来源,
将其放大至1280x720,并由RGB转为YV12连续影像,因为影像由
RGB full range压缩成YV12 tv range,精度下降之下无法呈现原本的
256灰阶,我们透过在这个过程中产生的色带影像来进行去色带测试。