版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

EDIResize16 v2.2 - 可选择多种edi模式的高精度upscale脚本改版

EDIResize16 2.2
Pastebin http://pastebin.com/Zj4GMDxG
Requirements: masktools v2.0a48, dither v1.26.1, nnedi3 v0.9.4, SmoothAdjust v3.00, eedi3-0.9.2, RgTools, FTurn v1.4 (*)
(*)插件不必要 但可提速

使用和nnedi3相关的edimode时 强烈不建议同时设置nns=4 nsize=3 qual=2 这样很容易rp 所以我加了repair 这样设置速度会很慢

其实就是由mawen1250大大的nnedi3_resize16做了很小的改动 本来注意到sigmoid这个东西整合进去的时候在想 反正要改不如多改一点方便使用
所以和nnedi3_resize16相比 做了如下改动
1 加入了sigmoid曲线相关参数 默认为true 在进行gamma aware resize时 此功能可以避免出现黑色的halo 参数分别为 bool "sigmoid", float "gthr", float "cont" gthr就是dither文档中的thr参数 因为thr已经被占了...所有只好起个新名字
2 有5种edi模式可选
(1) eedi3
(2) nnedi3
(3) eedi3+nnedi3
(4) eedi3_repaired #在eedi3后面repair了一个nnedi3 如果使用eedi3模式出现奇怪的artifacts而且无论怎样调整eedi3的参数效果都无法满意 尝试此模
(5) nnedi3_repaired #在nnedi3后面repair了一个eedi3 个人不知道这个模式有什么用 先留着再说 也许有特殊用途
(6) eedi3+nnedi3_repaired #在eedi3+nnedi3后面repair了一个nnedi3 作用同上 (4)#
edi模式由string "edimode", int "repmode", int "repmodeu", int "repmodev"参数控制
edimode控制edi模式 默认eedi3 repmode/~u/~v 为以nnedi3作为repair时的repair mode参数 默认13
3 去除了sharp 这个我使用可能性为负值的参数 去除了dither lsb_in lsb参数 和dither_resize16一样resize时只接受16bit输入 16bit输出 颜色空间转换支持16bit yuv输入 rgb48和rgb24/rgb32输出 转为8bpc rgb时降低位深算法为rounding 因为rgb32已经基本看不到banding 使用dither作用不大 还会增加噪声 和yuv相关的所有颜色空间16bit输出 去除y u v参数 非y8输入直接处理所有平面 y8输入只处理y 去除了mixed参数 使用edi算法和dither_resize16 同nnedi3_resize16中的mixed=true

{:cat_16}

用法同mawen大的nnedi3_resize16 请参考此贴
https://nmm-hd.org/newbbs/viewtopic.php?f=7&t=1117

sigmoid曲线的效果
原始图像1280x720
New File002107.png
在rgb下使用gamma aware resize缩小为640x360 并指定sigmoid=false 出现黑色的锯齿状halo(人物的手臂和额头边缘很明显) 就像mawen120在这个帖子 (https://nmm-hd.org/newbbs/viewtopic.php?f=5&t=1286) 里面提到的问题

代码: 全选

hybrid_edi_resize16 (output="rgb48y")
hybrid_edi_resize16 (640,360,curve="709",lsb_in=true,lsb=true,sigmoid=false)
dither_convert_rgb_to_yuv (selectevery (3,0),selectevery (3,1),selectevery (3,2),lsb=true,output="yv24")
ditherpost (mode=6)
sigmoid=false.png
开启sigmoid曲线功能进行rgb下的gamma aware resize

代码: 全选

hybrid_edi_resize16 (output="rgb48y")
hybrid_edi_resize16 (640,360,curve="709",lsb_in=true,lsb=true)
dither_convert_rgb_to_yuv (selectevery (3,0),selectevery (3,1),selectevery (3,2),lsb=true,output="yv24")
ditherpost (mode=6)
sigmoid=true.png
Changelog
v 2.2
mclip参数改变为bool型 默认为false
当mclip=true时自动生成edgemask作为mclip输入eedi3进行提速
v 2.1
仔细尝试了nnedi3的参数以后修改了启动repair的条件
改为了同时满足nns=4,nsize=3,qual=2时 将启动repair进行瑕疵修复
v 2.0
其实功能上前面基本没什么差别 但是我把整个脚本基本重写了 目的是熟悉一下avs函数的写法
函数名称改为ediresize16
去除了dither lsb_in lsb y u v mixed参数
thr参数改为lthr 为了和dither_y_linear_to_gamma中的thr区别
使用nsize=3时 所有和nnedi3有关的edimode自动repair消除瑕疵 nnedi3_repaired模式似乎已经无存在必要 但还是先留着
repmode/~u/~v 默认值改为13

v 1.1
找到了形成artifacts的原因 默认值修改
新增edimode="nnedi3_repaired"
dh函数优化提速
typo修正

v1.0
Release
上次由 feisty2 在 2014-08-09 12:05,总共编辑 10 次。
头像
望月凝香
帖子: 40
注册时间: 2013-08-07 17:04

Re: hybrid_edi_resize16 v1.0 - 可选择多种edi模式的高精度upscale脚本改版

虽然很对不起,但是一想到要修订一堆脚本就没有更新的动力啊……现在mawen的那个我还在用3.1……
无论如何,赞一个!
BBA
帖子: 16
注册时间: 2012-06-21 21:59

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

感觉eedi上的话速质比不怎么高 {:cat_13}
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

BBA 写了:感觉eedi上的话速质比不怎么高 {:cat_13}
Firesledge优化的eedi3速度已经和nnedi3差不多快了
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

eedi3的算法复杂度完全没法跟基于neural network predictor的nnedi3比。
nnedi3之所以快是靠:
1. pre-screener,大部分区域使用Cubic interpolation而不是edi(edge-directed interpolation)。
2. 大量的asm优化。

eedi3 v0.9.1是纯C且无pre-screener,但是速度还是比pscrn=0的nnedi3快。
eedi3 v0.9.2加入了部分asm优化,无pre-screener但允许手动输入mask,但是非edi区域的interpolation优化不足(即使mask全为0速度也偏低)。
BBA
帖子: 16
注册时间: 2012-06-21 21:59

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

@LZ 是doom9 cretindesalpes发的那个0.9.2么?
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

mawen1250 写了:eedi3的算法复杂度完全没法跟基于neural network predictor的nnedi3比。
是的 我之所以默认核心是eedi3是因为eedi3插值出来的画面边缘没有nnedi3那么锐利 原因是nnedi3对类似于bicubicresize (b=-1,c=0)缩小产生的那种aliasing抗锯齿效果过于强烈 对计算机图像 比较容易出现这种aliasing 同时锐利一些视觉效果也很好 所以用nnedi3很合理 对于3次元自然图像 这种aliasing出现的频率并不是很高 然后这时候用nnedi3容易aa效果过强造成边缘失真 视觉效果就好像边缘用过warpsharp一样 太锐利不自然 用eedi3能明显改善这种效果 eedi3对nnedi3作用的那种细小的锯齿基本没有aa作用 这种有小锯齿的图像用eedi3放大锯齿还是有 即使把alpha设置为1锯齿也不会消失 用nnedi3放大锯齿明显就没了 eedi3作用的锯齿都是类似于劣质反交错造成的明显线条断掉的那种大锯齿 大锯齿eedi3很容易去除 nnedi3又基本没效果了 我觉得它们的作用范围和处理类型不同 对3次元的视频 多数时候eedi3合适一些 因为细小的锯齿出现的几率低 所以用eedi3放大的结果比较自然
头像
feisty2
帖子: 274
注册时间: 2012-08-05 10:03

Re: EDIResize16 v2.0 - 可选择多种edi模式的高精度upscale脚本改版

mawen1250 写了:eedi3的算法复杂度完全没法跟基于neural network predictor的nnedi3比。
nnedi3之所以快是靠:
1. pre-screener,大部分区域使用Cubic interpolation而不是edi(edge-directed interpolation)。
2. 大量的asm优化。

eedi3 v0.9.1是纯C且无pre-screener,但是速度还是比pscrn=0的nnedi3快。
eedi3 v0.9.2加入了部分asm优化,无pre-screener但允许手动输入mask,但是非edi区域的interpolation优化不足(即使mask全为0速度也偏低)。
有一个问题 求问mclip是和eedi3一样要top left aligned么
试了一下 原来mask要和dh前的clip一致

回到 “AviSynth”