264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

原生DVD的debanding小实验

目前比较常见的一些AVS用debanding滤镜:
gradfun2db/dither/dfttest

遇到的最恶心的就是暗景处的人脸(如果人脸还有平移的话,情况更恶劣)..看片的时候大家肯定会把注意力集中在人身上..于是如果人出现瑕疵,会很容易产生不悦感

对不住大虾了,直接把图上传了附件(节约体积转了JPG,可能有些失真,不过反正是用来看大致情况的,不是看细节,应该也没差)
原图:
source.JPG
gradfun2db:
gradfun2dbm.JPG
dither:
Dither.JPG
dfttest(sigma=0,dither=2)
dfttest.JPG
个人感官,觉得gradfun2db最优,其次dfttest,然后是dither. dither带来的负作用太大了...

解决了源(姑且当做是解决了吧=_,=)的问题,接下来就是考验编码器了
以gradfun2db作为源,压了一些sample
原始参数
x264_r1834 --profile high --rc-lookahead 96 --crf 18 --keyint infinite --min-keyint 1 --ref 4 --bframes 8 --b-adapt 2 --b-pyramid none --weightp 2 --qpmin 0 --qpmax 51 --qpstep 4 --vbv-maxrate 10000 --vbv-bufsize 10000 --deblock 0:0 --direct auto --subme 10 --trellis 2 --partitions all --qcomp 0.6 --me tesa --merange 32 --no-fast-pskip --no-dct-decimate --psy-rd 0.6:0 --aq-mode 2 --aq-strength 0.4 --threads auto --thread-input --output .mp4 -

然后对这些参数略作改动
test_aq1-1_psy1_0.mp4
test_aq2-0_psy1_05.mp4
test_aq2-04_psy06_02.mp4
test_aq2-1_psy1_0.mp4
test_aq2-1_psy1_05.mp4
test_crf12qc1.mp4
test_crf16.mp4
test_qc09.mp4
=_,= 最后得出的结论是压得越大效果越好...
头像
Yuricon
帖子: 141
注册时间: 2010-09-20 0:19

Re: 原生DVD的debanding小实验

对付这种情况确实是gradfun2db最彻底,但是对细节杀伤确实是太大了,而dfttest细节损伤很小,对付一般的banding很不错,但是这种情况效果不怎么好,只能根据情况取舍
另外编码方面,防banding留grain我个人还是喜欢--no-mbtree --aq-strength 1 --deblock -2:-2 这类参数,不过当然还是码率越高效果越好(这是真理
一般算下来 --crf 16能出个比较让我个人满意的效果
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: 原生DVD的debanding小实验

=_.= 更新下测试结果...fgo的效果非常棒...不过代价就是体积上升了,而且上升了1倍!!
头像
HaibaraAi
帖子: 44
注册时间: 2010-09-21 22:48

Re: 原生DVD的debanding小实验

测参数建议2pass ,不同码率没法比较
histamine
帖子: 85
注册时间: 2010-09-23 20:07

Re: 原生DVD的debanding小实验

dfttest的dither在大于1时,就是在原始画面上叠一层uniform random noise 然后用Floyd-Steinberg算法dither到8bit 而且俺发现没法保证每次输出结果是一样的

严格意义上 这不能算debanding吧 主要用来解决dfttest自身精度转换产生的banding吧

Edit:
dither系列脚本里面的gradfun3函数 用了三次不同强的smoothgrad函数 然后用masktool分离出原画面中的线条和细节部分 和 smoothgrad处理后图像合并 最后dither到8bit
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: 原生DVD的debanding小实验

dither=1 should combat any banding introduced by dfttest's quantization, but probably wont help banding in the source. dither>=2 can combat banding in the source.
我只是看了这句话才用了这个参数而已
头像
Yuricon
帖子: 141
注册时间: 2010-09-20 0:19

Re: 原生DVD的debanding小实验

264768502 写了:=_.= 更新下测试结果...fgo的效果非常棒...不过代价就是体积上升了,而且上升了1倍!!
fgo=15上升3倍都可能,曾经用过一段时间,如果控制不住码率一般不用fgo就好多了,no-mbtree效果已经很不错了
gradfun3比较适合严重banding的情况,细节杀伤对我来说还是太大了
dfttest小幅度降噪后开dither=2对于普通的情况来说处理效果是比较让人满意的,特别是某些画面很脏还有碎块和banding的情况很合适,dither=1确实感觉效果不能让人满意,1以上的uniform random noise对编码时的码率提升很大(如果你要保留的话),所以有时候要见仁见智了(说白了就是EP),针对性处理
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 原生DVD的debanding小实验

之前压美战有几集加了fgo确实效果很好,但是就像Ai菊苣说的一样不同码率没法比较,fgo带来的码率上升如果放在不加fgo的情况下会不会有改善就没去试过了……

就这个源来看deband效果还是gradfun2db>dfttest>dither,细节保留的话似乎是dfttest>gradfun2db>dither……
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
histamine
帖子: 85
注册时间: 2010-09-23 20:07

Re: 原生DVD的debanding小实验

其实个人感觉 动画fgo一般开1-3也就够了(似乎开了fgo之后会使用更多inter block来编码

比了下 单纯加噪点的话
dfttest dither>1时都是像素级噪点(对YUV三个平面均叠加噪点
addgrainc噪点颗粒稍微大一些
(addgrainc是先生成一个噪点序列 然后叠加到画面上 速度也比dfttest dither快

不过数字君应该还知道一个aviutl插件バンディング低減フィルタ Ver.17(MT版のみ)
有一个好处就是画面上帧间由于dither引入的噪点 能够在帧间以同样的规律分布 提高帧间的压缩率
(此插件无源代码 所以没办法知道具体算法或编写成avs插件
264768502
核心会员
核心会员
帖子: 402
注册时间: 2010-09-23 17:38

Re: 原生DVD的debanding小实验

就是因为不用也不会AU..所以AU那个就没试了...(记得还要转颜色空间来着...
其实这种banding和UV平面关系不大...主要还是Y平面上的10bit到8bit转换精度的损失,而且再加上我那实际只有6bit的LCD,雪上加霜....

在实际应用中,即使源能用滤镜处理好,在压缩时还是会恶化,要效果好就得付出码率,不过面对TV连载长度的片子来说,挑出来逐个处理实在有点力不从心.如果地图炮,那么整体的体积又会上升不少,实在是很矛盾.
不知道以后x264的10bit普及后,这一现象是否能改善

回到 “视频编码器 / Video encoder discussion”