|

楼主 |
发表于 21-4-21 23:42
|
显示全部楼层
本帖最后由 fyc0066 于 21-4-22 13:41 编辑
edge降噪,nonedge降噪
生成edgemask
edgemask的截图

edgemask覆盖了边缘细节等高频区域
edge与nonedge区域的高低频分离
生成luma自适应的蒙版
这里解释一下,在16bit里,luma值从0-65535,8bit对应0-256,8bit下的luma值乘256即为16bit下的luma值。
nrweight1,2,3的结果分别是



实际上就是为加噪和加分离出的高频信息设计的一个基于luma值的mask
edge区域做unsharp mask、aa、dering
nonedge区域deband
生成动静态混合噪点
将噪点与nonedge区域的高频信息luma自适应地加回到deband后的平面上
利用edgemask合成edge与nonedge,16bit输出
- ###利用蒙版叠加edge与nonedge,合成最终画面
- res1 = core.std.MaskedMerge(nonedge, edge, edge_mask, [0, 1, 2], True)
- ###输出结果
- Debug = 0
- if Debug:
- compare = core.std.Interleave([src16_RD_RP, res1])
- compare = mvf.ToRGB(compare, full=False, depth=8).set_output()
- else: res1 = mvf.Depth(res1, 16).set_output()
- ###此套流程比较适合于修复包含dirt与大噪点的老电影,在一定程度上提升观感
复制代码
这套流程一般是通用的,不用修复dirt的话,前面蒙版0与蒙版1做差,合成覆盖dirt的蒙版等操作就直接去掉即可
整套流程走完,将vpy脚本利用vspipe推流给x265压制
- vspipe --y4m "E:\The.Sun.Also.Rises.2007\BDMV\STREAM\00000.vpy" - |"E:\x265-Asuna-3.4+13-g729a838d3+38\x265-gcc-multilib-full.exe" --y4m --input-depth 16 -D 10 --dither --preset slower --deblock -2:-2 --ctu 32 --qg-size 16 --crf 18.0 --ipratio=1.4 --pbratio 1.2 --cbqpoffs -3 --crqpoffs -3 --no-sao --me 3 --subme 4 --merange 44 --b-intra --limit-tu 4 --rect --no-amp --ref 4 --limit-refs 2 --weightb --keyint 360 --min-keyint 1 --bframes 6 --aq-mode 1 --aq-strength 1.0 --rd 4 --psy-rd 2.0 --psy-rdoq 1.5 --rdoq-level 2 --no-open-gop --rc-lookahead 80 --lookahead-slices 4 --scenecut 40 --qcomp 0.60 --no-strong-intra-smoothing --tu-inter-depth 2 --tu-intra-depth 2 --max-merge=3 --qpmax 69 --sar 0 --output "E:\The.Sun.Also.Rises.2007\BDMV\STREAM\test_1.hevc" -
复制代码
参数是从VCB-S压的真人片抄的,具体设置没测试过,最终结果似乎还行,破本子的CPU i7-7700HQ压制速度稳定在1.4fps左右,可以接受。压制后体积在源的1/3大小,还行




压制x265 10bit的原因是10bit色深能尽可能保留deband等16bit高精度下画面处理的结果,但为保留画面处理的结果,有几个参数最好要指定:
--deblock -1:-1或--deblock -2:-2 值越小,画面涂抹力度越小
--aq-strength 1.0-1.2 值越大,质量越高,体积越大
--no-sao 防止暴力涂抹
--ctu 32 防止区块过大造成的涂抹
最后分享一下vpy脚本中用到的滤镜,收集还是很花时间的,但由于版本太多,个人建议还是自己去github上下载,
核心滤镜+py脚本滤镜,记得放置在正确的位置:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|