版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

看图理解Ring和Halo

之前在nmm群里提出过这个问题,ring和halo怎样区分。
当时liti大大以专业知识讲解了这两者的产生缘由,不过,非专业的我是看得一头雾水。

然后,昨天下到Nadia的DVDISO,厚厚地一圈ring/halo,在使用HQDering和Dehalo这两个脚本处理的时候,对ring和halo有了一定的直观认识。

本文假定HQDering和Dehalo这两个脚本对ring和halo的定义无误,通过观察使用这两个脚本对Nadia画面的处理效果来认识ring/halo。

首先来看VOB原图(图0)
1.orig.jpg
接着看几幅处理效果图
Dehalo(图1)
2.dehalo.jpg
HQDering(图2)
2.HQDering.jpg
Dehalo然后HQDering(图3)
4.dehalo dering.jpg
HQDering然后Dehalo(图4)
5.dering dehalo.jpg
观察各图对比效果如下:
图0-1:光圈基本上去除了,线条外还留下浅浅的一圈线
图0-2:光圈的厚度稍微减少了一点
图0-3:光圈去除
图0-4:跟图1相似,不过残留的线圈要小一点

用mspaint简单地画了一下我的理解图
外面的一圈红色边缘为Ring,蓝色的圆环部分为Halo
图片
头像
又疯了一个
帖子: 3
注册时间: 2010-09-28 22:14

Re: 看图理解Ring和Halo

额,基本上都能接受了,还真看不出有啥变化。。
Akari
帖子: 9
注册时间: 2012-05-25 18:04

Re: 看图理解Ring和Halo

求助大大们啊!为什么我用BlindDeHalo这个脚本一直出错?
there is no function named "Dedgemask"
有调用了masktool.dll和undot.dll了
付一下BlindDeHalo的脚本:

代码: 全选

# BlindDeHalo - v0.1
#
# This script removes the light & dark halos from too strong "Edge Enhancement"
# Adaption of the parameters has to be done manually for each source, the function is not adaptive.
#
# Needed Plugins: MaskTools.dll >= 1.4.15
#                 undot.dll
#

function BlindDeHalo( clip clp, int "strength", int "radius_x", int "radius_y", float "darkamount", string "mode", float "maskblur", bool "fullframe" )
       {
         strength =   default( strength,  80)
         radius_x =   default( radius_x,   2)
         radius_y =   default( radius_y,   2)
         darkamount = default( darkamount,1.0)
         mode =       default( mode,  "soft")
         maskblur =   default( maskblur, 1.0)
         fullframe =  default( fullframe, false)
         modus = mode=="hard" ? "hardlight" : "softlight"

         ox = clp.width
         oy = clp.height
         rx = sqrt(radius_x)
         ry = sqrt(radius_y)

         clp
         edge=Dedgemask(0,255,0,255,"6 10 6 10 -64 10 6 10 6",setdivisor=true,divisor=64).levels(2,0.5,6,0,255,false).undot#.coloryuv(analyze=true)#

         blur1 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4,-1.0,1.0).lanczosresize(ox,oy)
         blur2 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4, 1.0,0.0).lanczosresize(ox,oy)

         diff = YV12subtract(blur1,blur2)

         overlay(diff,diff,mode="hardlight").levels(0,1.0,255,88,168,false)

         darkamount == 1.0 ? NOP : overlay(last,last.levels(0,1.0,128,int(128-128*darkamount),128,false),mode="lighten")
         overlay(last,last.levels(0,1.0,255,128+strength,128-strength,false)) # levels reversed: no more "invert" in below overlay()

         overlay(clp,last.greyscale.blur(maskblur),mode=modus)
         fullframe ? NOP : MaskedMerge(clp,last,edge.deflate.expand.blur(1.58).inflate,useMMX=true)

         return(last)
       }
#
还有我的avs脚本:

代码: 全选

LoadPlugin("G:\Plugins\DGIndex\DGDecode.dll")
LoadPlugin("G:\Plugins\QTGMC\Undot.dll")
LoadPlugin("G:\Plugins\TIVTC\TIVTC.dll")
LoadPlugin("G:\Plugins\QTGMC\mt_masktools-26.dll")
Import("G:\Plugins\QTGMC\BlindDeHalo.avs")
mpeg2source("VTS_01.d2v")
tfm(d2v="",order=1,mode=1,PP=3)
tdecimate(mode=1)
BlindDeHalo()
头像
翡璃月
帖子: 79
注册时间: 2010-11-11 23:36
来自: 台灣宜蘭
联系: 网站

Re: 看图理解Ring和Halo

dehalo殺比較大
這是結論?
图片
lwjkk666
帖子: 321
注册时间: 2012-05-29 13:43

Re: 看图理解Ring和Halo

Akari 写了:求助大大们啊!为什么我用BlindDeHalo这个脚本一直出错?
there is no function named "Dedgemask"
有调用了masktool.dll和undot.dll了
付一下BlindDeHalo的脚本:

代码: 全选

# BlindDeHalo - v0.1
#
# This script removes the light & dark halos from too strong "Edge Enhancement"
# Adaption of the parameters has to be done manually for each source, the function is not adaptive.
#
# Needed Plugins: MaskTools.dll >= 1.4.15
#                 undot.dll
#

function BlindDeHalo( clip clp, int "strength", int "radius_x", int "radius_y", float "darkamount", string "mode", float "maskblur", bool "fullframe" )
       {
         strength =   default( strength,  80)
         radius_x =   default( radius_x,   2)
         radius_y =   default( radius_y,   2)
         darkamount = default( darkamount,1.0)
         mode =       default( mode,  "soft")
         maskblur =   default( maskblur, 1.0)
         fullframe =  default( fullframe, false)
         modus = mode=="hard" ? "hardlight" : "softlight"

         ox = clp.width
         oy = clp.height
         rx = sqrt(radius_x)
         ry = sqrt(radius_y)

         clp
         edge=Dedgemask(0,255,0,255,"6 10 6 10 -64 10 6 10 6",setdivisor=true,divisor=64).levels(2,0.5,6,0,255,false).undot#.coloryuv(analyze=true)#

         blur1 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4,-1.0,1.0).lanczosresize(ox,oy)
         blur2 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4, 1.0,0.0).lanczosresize(ox,oy)

         diff = YV12subtract(blur1,blur2)

         overlay(diff,diff,mode="hardlight").levels(0,1.0,255,88,168,false)

         darkamount == 1.0 ? NOP : overlay(last,last.levels(0,1.0,128,int(128-128*darkamount),128,false),mode="lighten")
         overlay(last,last.levels(0,1.0,255,128+strength,128-strength,false)) # levels reversed: no more "invert" in below overlay()

         overlay(clp,last.greyscale.blur(maskblur),mode=modus)
         fullframe ? NOP : MaskedMerge(clp,last,edge.deflate.expand.blur(1.58).inflate,useMMX=true)

         return(last)
       }
#
还有我的avs脚本:

代码: 全选

LoadPlugin("G:\Plugins\DGIndex\DGDecode.dll")
LoadPlugin("G:\Plugins\QTGMC\Undot.dll")
LoadPlugin("G:\Plugins\TIVTC\TIVTC.dll")
LoadPlugin("G:\Plugins\QTGMC\mt_masktools-26.dll")
Import("G:\Plugins\QTGMC\BlindDeHalo.avs")
mpeg2source("VTS_01.d2v")
tfm(d2v="",order=1,mode=1,PP=3)
tdecimate(mode=1)
BlindDeHalo()
LZ用26的AVISY吗
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: 看图理解Ring和Halo

BlindDeHalo需要的是1.x的masktools
但是你的avs加载的是2.x的,1和2是不兼容的。
在这里能下到1.x的masktools http://manao4.free.fr/

PS:这也只是我看avs估计的问题而已。同学你最好把avs显示的错误一并发出来。不要只发avs让别人猜度。
头像
sammysui
帖子: 87
注册时间: 2012-07-06 20:13

Re: 看图理解Ring和Halo

dering,dehalo.效果不错,唯一的问题是对细节的损失太大,对于动画细节损失不太明显,真人影片就会有很多细节损失。有时候,明明是很重的halo,ring。都不敢用dering,dehalo。。。无奈啊
头像
yabbay
帖子: 62
注册时间: 2012-05-31 10:39
来自: Tokyo

Re: 看图理解Ring和Halo

万年用YAHRmod和Dehalo_Alpha_mt的撸过...
          .∧__,,∧
         ( ´・ω・`) ブルブル
          (つまくら) アリと明日(ant and tomorrow)
          `u―u´ レッツ・エッグ・ペイン(Let`s egg pain)

回到 “AviSynth”