Log in

View Full Version : Trying to find the cause of a huge flaw in a filterchain...


Pages : [1] 2

Chainmax
14th March 2005, 16:04
I am in the process of filtering a VHS capture and while I'm pretty happy at the results there's one side effect to the filterchain I'm using: small details are greatly reduced. I have tried disabling the filters individually but haven't been able to pinpoint the cause of that. This is the filterchain I'm using:

SSIQ(diameter=11,strength=50,interlaced=false)

ConvertToYV12()

hqdn3d(0,0,3,3)

Cnr2("xxx",4,5,255)

BlindDeHalo3(rx=3.25,ry=3.25,strength=140,lodamp=4.0,hidamp=0.0,PPmode=2)

Undot()

DeGrainMedian()

Convolution3D(preset="animeLQ")

aWarpSharp(depth=16,cm=1)

FastLineDarken(strength=120,thinning=0)

LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)


You can download the encode [deleted]. Since the source occupies 190MBytes I can't upload it in its entirety, but ask me for whatever frame ranges you want from it (the source is 23,976 fps too) and I'll upload them (I suggest you include frames 189 and 256 in the request, they are good showcases of the issue). I would also greatly appreciate feedback on the quality of the encode.

Guest
14th March 2005, 16:35
Your problem is caused by a deadly affliction called "filteritis". Your case appears to be terminal.

Boulder
14th March 2005, 16:57
I was just about to say the same.

I would substitute all the denoisers with eDeen. All the details will be lost with that one alone:D

Chainmax
14th March 2005, 19:31
I am not one to usually indulge in filter gorging, but SSIQ, BlindDeHalo3 and CNR2 have to be there. I used aWarpSharp and FastLineDarken with thinning = 0 because aWarpSharp's thinning looks better to me than FastLineDarken's. Undot is pretty much like using no filter at all speedwise and gives a little extra compressibility. That leaves out hqdn3d, DeGrainMedian and C3DYV12 up for discussion. I would appreciate it if you could download the encode, ask for some frames from the source and discuss this in a more informative way.


P.S: in case you have actually downloaded the encode, did it look that bad to you? I thought it looked awesome considering the source.

Chainmax
15th March 2005, 06:09
ChronoCross? SoulHunter? Can you guys help me out?

Backwoods
15th March 2005, 06:53
Can you post the original frames next to the filtered that you speak of?

www.uploadhouse.com or www.imageshack.us

Chainmax
15th March 2005, 07:43
In my first post there's a download link to the filtered encode. Use it to give me feedback on its quality and to determine which parts of the unfiltered source you want.

ChronoCross
15th March 2005, 08:27
your definitely going to have to post the full source. I can't even judge what filters you should dump by that clip. all I know is it's super blurry and several of those filters can cause that.

if you need a place to host your clip pm me and let me know and I can host it for you.

Soulhunter
15th March 2005, 10:13
Maybe replace DeGrainMedian and C3D with a single instance of Deen... :\

Btw, I think its better to place the temporal denoisers before the spatial ones !!!


Bye

Didée
15th March 2005, 10:46
Originally posted by Soulhunter
Btw, I think its better to place the temporal denoisers before the spatial ones !!!
It depends. I mostly tend to use some spatial cleaning as preprocessing for temporal processing.

temporal first -> noise is "huge", low limits for the temporal filter won't catch all noise ("cutoff"-effect), high limits will remove the noise but cause damage, too.

spatial first, then temporal -> noise has "softened down", and the temporal filter has a much better chance to do good work with lower limits.

However it's dangerous to make a general statement about this. It absolutely depends on the charecteristics of source/detail and noise.

Soulhunter
15th March 2005, 12:38
Yeah, I know it depends one the source etc... ;)

But this statement refers to the script Chainmax posted !!!

Maybe have another look at the 1st. filter Chainmax used... I guess temporal denoisers have problems to "catch" the noise after it was smoothed by something like sshq, no? So, my suggestion was more like... Calm the noise down via temporal denoising and then do the final smoothing with sshq !!! EDIT: Doh, just realize that Chainmax used ssiq and not sshiq... ^^


Bye

Guest
15th March 2005, 15:03
Originally posted by Chainmax
I would appreciate it if you could download the encode, ask for some frames from the source and discuss this in a more informative way.
If you can't accept the answers, don't ask the questions (forum rule 12).

Leo 69
15th March 2005, 15:05
When processing VHS I prefer using something like :
----------------
Cnr2()
RemoveDirt()
FFT3DFilter(sigma=5) or
VagueDenoiser(threshold=2.5,method=1,nsteps=8,chromaT=0.9,wiener=true)
LimitedSharpen(ss_x=1.5,ss_y=1.5,Strength=100,wide=true,special=true)
----------------

and details are okay :)

Chainmax
15th March 2005, 16:26
Originally posted by neuron2
If you can't accept the answers, don't ask the questions (forum rule 12).
You sure seem confrontational today :(. If you carefully read my first reply, you'll see that the mayority of it consisted on an explanation as to why most filters in the chain were there. Only at the end of the first paragraph I adressed the nature or your answer and didn't even say that it was useless (even though it largely was), just that it didn't help me solve my problem, so rule 12 right back at you.

ChronoCross: unless I mistook what you said, I must clarify that the 16MB clip that can be downloaded from the OP is the final filtered encode so it doesn't need any extra filtering. What I need help in is how to solve the loss of tiny details (like the dimming of the stars in frame 189 or the disappearance of nightcrawler's eyes in frame 256) via eliminating/replacing some of the filters in the chain because other than that the clip looks perfect to me. Then again, I would certainly appreciate your comments on the quality of the encode or suggestions for alternate filters like Soulhunter and Leo 69 did.

Soulhunter: the first version of the clip was made with the following script:

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
hqdn3d(0,0,3,3)
BlindDeHalo3(lodamp=4.0, hidamp=4.0,PPmode=2)
RemoveGrain()
Deen()
LimitedSharpen(ss_x=2,ss_y=2,Strength=160)
FastLineDarken()

and IMO it looked much worse. I can upload it too if you want to check it out.

Leo 69: I tried VagueDenoise and didn't like it much, and IIRC RemoveDirt is known for having trouble with fine lines. I will try out replacing DeGrainMedian and C3D with FFT3DFilter though, thanks for the suggestion :).

Boulder
15th March 2005, 16:33
Have you tried Didée's LRemoveDust? You might try substituting some of the stronger filters with that one, maybe DeGrainMedian+Con3D. It can be found in the RemoveGrain thread, second or third page from the end.

I belong to those who think that less filtering is better, especially with VHS sources where you can easily remove all the details there's left;)

Chainmax
15th March 2005, 16:46
I'll try that as well, thanks for the suggestion. Like I said in my first reply, I am not one to usually indulge in filter gorging either. Is this the function you're referring to:

function LRemoveDust(clip input, int _mode, int "limit")
{
limit = default(limit,4)
LL = string(limit)
STR = "x "+LL+" + y < y "+LL+" - x "+LL+" - y > y "+LL+" + x ? ?"
repmode = 2
clensed = Clense(input)
rep = Repair(clensed, input, mode=repmode)
rg = RemoveGrain(rep, mode=_mode)
trep = TemporalRepair(rg, rep)
trep2 = isyuy2(input)
\ ? trep.converttoyv12()
\ : trep
input2 = isyuy2(input)
\ ? input.converttoyv12()
\ : input
limit!=0 ? yv12lutxy(trep2,input2,yexpr=STR,U=2,V=2) : last
out = isyuy2(input)
\ ? last.converttoyuy2().mergechroma(trep)
\ : last
return out
}

? Does it only need MaskTools?

Didée
15th March 2005, 17:20
Originally posted by Boulder
Have you tried Didée's LRemoveDust?
I was about to suggest that one. However, credits for the filter/script should really go to kassandro - I just added that bit of limiting thingie ;)

Apart from the speed, the nice thing is that in case of a less noisy clip, the noise can be removed more or less completely - and in case of bigger noise, when LRemoveDust turns out to kill too much detail when trying to achieve full noise removal (with a big limit), it still does a very good job in "taming down" the noise (with lower limits), so that life for upfollowing filters gets much easier.

"My" version LRemoveDust indeed needs the MaskTools (as the majority of my scripts do ;) ). However, in the RemoveGrain thread, kassandro posted a newer version (together with some "inofficial" plugins), that does all the work by plugins only: no MaskTools needed for that one, and it's even a tad faster.

Chainmax
15th March 2005, 17:36
Are you referring to this function:

function MCRemoveDust(clip input, int _smooth, bool _grey)
{
repmode = 2
clmode = 4
quad = Quadruple(input, grey=_grey) # each pixel is quadrupled, SSETools are needed
qpel = RemoveGrain(quad, mode=12, modeU=-1) # blur the luma for searching motion vectors
bvectors = MVAnalyse(qpel, blksize=16, lambda=200, isb=true)
fvectors = MVAnalyse(qpel, blksize=16, lambda=200, isb=false)
backward = MVCompensate(quad, bvectors, mode=1)
forward = MVCompensate(quad, fvectors, mode=1)
clensed = mcclense(quad, backward, forward, grey=_grey).shrinkby2(grey=_grey) #SSETools are needed for shrinking
rep=Repair(clensed, input, mode=repmode, modeU=_grey ? -1 : repmode)
rg = RemoveGrain(rep, mode=clmode, modeU=_grey ? -1 : clmode)
return TemporalRepair(rg, rep, grey=_grey, smooth=_smooth)
}

? It needs MVTools and RemoveGrain at least...

Boulder
15th March 2005, 17:56
No, there's

function LRemoveDust(clip input, int _mode, int "limit")
{
limit=default(limit,4)
repmode = 2
clensed = Clense(input)
rep=Repair(clensed, input, mode=repmode)
rg = RemoveGrain(rep, mode=_mode)
rd=TemporalRepair(rg, rep)
return LimitChange(rd, input, limit, limitU=255)
}


which needs the inofficial plugins. There's a download link in one of kassandro's posts over there. He also posted a chroma-limiting LRemoveDust.

Yep, credits also to kassandro for RemoveGrain, Clense, (Temporal)Repair and LimitChange:)

Chainmax
15th March 2005, 18:18
Ok, the fourth try is on the works, with chroma-limiting LRemoveDust to substitute Undot+DeGrainMedian+C3D and without aWarpSharp (gonna give FastLineDarken,s thinning another go), thanks for all the suggestiosn so far people :).

ChronoCross
15th March 2005, 18:18
@Chainmax
actually I'd like for you to provide the orignal non-filtered source so that we can see what you really need or not. That way we can make best guesses as to what filters you might want to use.

Chainmax
15th March 2005, 18:26
I was going to do that, it's just going to take a little while :).

Chainmax
15th March 2005, 18:29
Mmm...I get a "there's no function called Repair" error and I loaded both SSETools and RemoveGrain from the inofficial plugins package kassandro posted :confused:.

Boulder
15th March 2005, 18:31
You'll also need repair.dll , it's in the latest RemoveGrain package. Choose the appropriate version (SSE, SSE2 or SSE3 optimized) for a nice speed boost.

Chainmax
15th March 2005, 18:34
I should choose SSE for a Sempron, right?

Boulder
15th March 2005, 18:39
It probably doesn't have SSE2 support, but you could try. SSE definitely works.

Soulhunter
15th March 2005, 19:24
Originally posted by Chainmax

Soulhunter: the first version of the clip was made with the following script:

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
hqdn3d(0,0,3,3)
BlindDeHalo3(lodamp=4.0, hidamp=4.0,PPmode=2)
RemoveGrain()
Deen()
LimitedSharpen(ss_x=2,ss_y=2,Strength=160)
FastLineDarken()

and IMO it looked much worse. I can upload it too if you want to check it out.

Hrm, maybe try it like this...

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
Cnr2("xxx",4,5,255)
BlindDeHalo3(rx=3.25,ry=3.25,strength=140,lodamp=4.0,hidamp=0.0,PPmode=2)
Undot()
Deen("a3d",3,5,1,5)
aWarpSharp(depth=16,cm=1)
FastLineDarken(strength=120,thinning=0)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)


Bye

Chainmax
15th March 2005, 19:32
The following script:

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
hqdn3d(0,0,3,3)
Cnr2("xxx",4,5,255)
BlindDeHalo3(rx=3.25,ry=3.25,strength=140,lodamp=4.0,hidamp=0.0,PPmode=2)
LRemoveDust(5,2)
FastLineDarken(strength=120,thinning=60)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)

Is very slightly less aggresive on details, but nightcrawler's eyes in frame 256 still disappear and the clip is noticeably dirtier than the encode posted in the OP. Gonna try Soulhunter's suggestion now.


P.S: the source is going to be uploaded soon, please be patient :).

Chainmax
15th March 2005, 19:49
Soulhunter, your script looks on par with the encode while being slightly less smooth (good thing) and much faster (very good thing). The improvement on small detail preservation, however, is very light: nightcrawler's eyes in frame 256 almost dissappear and the stars in frame 189 are only very slightly more noticeable. I think ChronoCross was right, we should wait until the source file is uploaded and not shoot in the dark anymore.

Chainmax
16th March 2005, 15:47
The full huffyuv source (203MB) can be downloaded from [deleted]. Please only download it if you intnd to help, since I don't have too much bandwith to spare.

Soulhunter
16th March 2005, 22:38
Originally posted by Chainmax

Soulhunter, your script looks on par with the encode while being slightly less smooth (good thing) and much faster (very good thing). The improvement on small detail preservation, however, is very light: nightcrawler's eyes in frame 256 almost dissappear and the stars in frame 189 are only very slightly more noticeable...

Hmm, maybe change it like this...

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
Cnr2("xxx",4,5,255)
BlindDeHalo3(rx=3,ry=3,strength=100,lodamp=4.0,hidamp=0.0,PPmode=2)
Deen("a3d",3,5,1,20)
aWarpSharp(depth=16,cm=1)
LimitedDarken(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)


I not found the time to test it with ya huffy source yet !!!

Well, just try n' see if you like the result... ^^


Bye

ChronoCross
17th March 2005, 00:29
well I'm working on it but this is a very interesting source indeed. I don't think there will be a way to remove all the noise because after you start applying the smoothing is works well on some sections but is too strong on others. the worst part of the clip is the part with the tanks.

Soulhunter
17th March 2005, 01:12
Averaging multiple captures could help... *runs away n' hides*


Bye

Chainmax
17th March 2005, 02:18
It seems like I haven't really examined the script from the encode. After checking frames 189 and 256 while enabling one filter at a time, then enabling all the filters that weren't harmful I determined that the big culprit is (just like Soulhunter guessed according to his second script suggestion) the BlindDeHalo3 line. aWarpSharp also had an effect but it was really small, especially considering the wonderful sharpening job it does. I look forward to test everyone's script suggestions :).


P.S: 1) averaging multiple captures is not an option since I don't have access to the capturing device anymore.

2) using LRemoveDust(4,2) on the LRemoveDust(5,2) script made it look much better. That will teach me not to mess with recommendations from wiser people :).

Didée
17th March 2005, 02:55
Regarding BDH3, try disabling PP with PPmode=0. The masking currently used for PP (the "hull" one) is not without concerns.

ChronoCross
17th March 2005, 05:30
it's the blind dehalo if you leave it at the begining of your script. if you do smoothing and detail enahncement at the begining then use blinddehalo on it and it works out just fine.

Chainmax
17th March 2005, 18:42
I tried the following script:

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
Cnr2("xxx",4,5,255)
LRemoveDust(4,2)
aWarpSharp(depth=16,cm=1)
FastLineDarken(strength=120,thinning=0)
BlindDeHalo3(rx=3.0,ry=3.0,strength=100,lodamp=4.0,hidamp=0.0,PPmode=0,interlaced=false)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)

also with the BDH3 line right after aWarpSharp and I got basically the same results: there is an improvement, but it's too light. Not to mention that in frame 100 (what I use to gauge dehaloing) the halo in the soldier's arm is still there. I don't want to put it after LimitedSharpen because that would probably nullify it.

Chainmax
18th March 2005, 06:04
Maybe HQDering could be a good alternative to BDH3?

Chainmax
21st March 2005, 20:53
Ok, so here's the final script I'll be using:

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
Cnr2("xxx",4,5,255)
LRemoveDust(4,2)
RemoveGrain(1,2,2)
aWarpSharp(depth=16,cm=1)
aWarpSharpDering(depth=20,diffThresh=16)
FastLineDarken(strength=120,thinning=0)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)

This script is much faster and has more details than the one posted in the OP while pretty much eliminating the haloing in frame 100 and being much less destructive to small features like the stars in frame 189 and Wolverine's and Nightcrawler's eyes in frame 256. I would appreciate it if you guys could download it and compare it to both the encode in the OP and the source. You can download it from [deleted] in about 2 hours.

Backwoods
25th March 2005, 07:17
I've tested the script you posted above and the results are amazing. I'll post the comparison shots tomorrow. To encode 1hr 45min it's taking my 2.4HT 512ram "B" machine 26 hours. Not too bad considering the quality of output.

Chainmax
25th March 2005, 17:19
Thanks :). The original filterchain was pretty good too, but things improved tremendously once I figured out that BDH3 was causing the detail loss and excessive smoothing and also after following Boulder's suggestion to use LRemoveDust which removes a ton of noise while still retaining much detail. BTW, I have devised a new version of the script in case you need some extra compressibility:

#TFM(d2v="wherever\Test.d2v",mode=2,PP=7,mChroma=true,chroma=true,mi=50)
#TDecimate(mode=1)
#Tdeint(type=3,link=1)
#use either of them (or none) according to the nature of the source
SSIQ(diameter=11,strength=50,interlaced=false)
Cnr2("xxx",4,5,255)
LRemoveDust(4,2)
#AddBorders(8,8,8,8) (or whatever you want to)
aWarpSharp(depth=16,cm=1)
FastLineDarken(strength=120,thinning=0)
Convolution3d(preset="animehq")
aWarpSharpDering(depth=20,diffThresh=16)
#Crop(10,10,-10,-10,align=true) (or whatever+2)
#Crop(your settings,align=true)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=whatever,Dest_y=whatever,Strength=160)

The chroma parameters in the TFM line should be set to false only if the source has mayor chroma issues (like heavy rainbowing or color bands). The cropping is put where it is there because like Leak (the creator of aWarpSharpDering) says, using aWarpSharp at those high depths can cause slight artifacting (like green or black smears) at the image borders.

P.S: tritical, is TDeint's link=1 better than the other link modes?

[edit]Inclusion of AddBorders and crop lines in case the source doesn't have black borders. The cropping settings are 2 units bigger than the addborders ones so as to completely remove the artifacts created by aWarpSharp and aWarpSharpDering.

Didée
25th March 2005, 20:17
Chainmax,

I give up with your ever-full PM box. :rolleyes:

edit: PM finally sent.

Chainmax
25th March 2005, 21:00
Sorry about that, I had eliminated like 6 PMs and thought they were enough, after all you were able to send me a couple. Anyway, I did some more cleaning and now only have 12 PMs in the Inbox. And thanks a lot for your patience, I really appreciate your help in such an ugly clip :).

ChronoCross
25th March 2005, 21:59
same thing with the 2 pm's I tried to send you. I even sent you an email but I guess it didn't get through lol.

Chainmax
25th March 2005, 22:42
Actually it did, but I haven't been able to make a good enough encode. I will have one very soon though :).

Backwoods
27th March 2005, 01:48
Using this script...

SSIQ(diameter=11,strength=50,interlaced=false)
ConvertToYV12()
Cnr2("xxx",4,5,255)
#LRemoveDust(4,2) I could not get this to load
RemoveGrain(1,2,2)
aWarpSharp(depth=16,cm=1)
aWarpSharpDering(depth=20,diffThresh=16)
FastLineDarken(strength=120,thinning=0)
LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480,Strength=128)

..on this source:

Original
http://www.uploadhouse.com/images/716189239FIST_ORG.JPG (http://www.uploadhouse.com/)

Chainmax's script
http://www.uploadhouse.com/images/472520909FIST_NEW.JPG (http://www.uploadhouse.com/)

This is the result from a simplier older script I was doing:

Older script
http://www.uploadhouse.com/images/173781942FIST_OLD.JPG (http://www.uploadhouse.com/)

Chainmax's script is the obvious winner all around. I wonder why LRemoveDust was not working for me, something about the LimitChange line.

Chainmax
27th March 2005, 05:24
Assuming you have the Repair filter from the latest RemoveGrain package in addition to kassandro's inofficial plugins, it's probable that you are using a different version of LRemoveDust than me. I am using the LRemoveDust that also limits the chroma which is the following one:

function LRemoveDust(clip input, int _mode, int "limit")
{
limit=default(limit,4)
repmode = 2
clensed = Clense(input)
rep=Repair(clensed, input, mode=repmode)
rg = RemoveGrain(rep, mode=_mode)
rd=TemporalRepair(rg, rep)
return LimitChange(rd, input, limit)
}

This will make a whole lot of difference as it is the main denoiser/smoother. Keep in mind that you should crop the image, I advice you to do it right after the aWarpSharpDering line. After that, closely examine the edges of the filtered video in VDub and see if the have green or black splotches, if so then increase your cropping settings a bit. Also, if your source is a DVD (unlikely from the looks of it) you don't need the ConvertToYV12() line.

Backwoods
27th March 2005, 20:25
I have that sample script for LRemoveDust and I'm pretty sure I have all the right plugins. Since there is an error, obviously I'm missing something.

Also I didn't crop since the source was VHS and is going to DVD and overscan will take care of those edges. If I can get LRemoveDust to work, I'll recap the movie (using my DV cam) and see the results with LRemoveDust. I'm pretty sure ConvertToYV12() is needed with the DV codec.

LoadPlugin("C:\Program Files\AviSynth 2.5\yea\SSIQ.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\FFT3DFilter.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\Cnr2.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\MaskTools.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\Decomb521.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\RemoveDirt.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\RemoveGrainS.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\Warpsharp.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\aWarpsharp.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\yea\RepairS.dll")
Import("C:\Program Files\AviSynth 2.5\yea\LimitedSharpen.avs")
Import("C:\Program Files\AviSynth 2.5\yea\BlindDeHalo3.avs")
Import("C:\Program Files\AviSynth 2.5\yea\AWarpSharpDering_1.0.avsi")
Import("FastLineDarken.avs")
Import("LRemoveDust.avs")

Those are the plugins and scripts I'm importing.

Chainmax
27th March 2005, 21:41
There's a bunch of filters that aren't needed on that load list. I don't know how Avisynth reacts to loading filters that won't be called, but for neatness's sake I'd take unneeded filters out. Also, you are manually loading aWarpSharpDering which has an .avsi extension, rename it to .avs just in case. The way you are calling FastLineDarken also seems wrong since you are not specifying their path. I suspect those are mere cosmetic issues that don't affect the filterchain though. The main reason that LRemoveDust doesn't work is probably because you forgot to load SSETools from kassandro's inofficial plugins package.
By the way, I just found out that FastLineDarken was causing some slight aliasing (look at frame 95 of the source sample I posted, the shirt pocket and left arm of the soldier are slightly aliased) and it really wasn't doing much difference anyway so I removed it. I also added Convolution3D for some extra compressibility. So, here is the latest version of the script:

LoadPlugin("wherever\SSIQ.dll")

LoadPlugin("wherever\Cnr2.dll")

LoadPlugin("wherever\SSETools.dll")
LoadPlugin("wherever\RemoveGrain.dll")
LoadPlugin("wherever\Repair.dll")
Import("wherever\LRemoveDust.avs")

LoadPlugin("wherever\aWarpSharp.dll")

Import("wherever\aWarpSharpDering_1.0.avs")

LoadPlugin("wherever\Convolution3DYV12.dll")

LoadPlugin("wherever\MaskTools.dll")
Import("wherever\LimitedSharpen.avs")


AVISource("wherever\mysource.avi",audio=false)

SSIQ(diameter=11,strength=50,interlaced=false)

ConvertToYV12()

Cnr2("xxx",4,5,255)

LRemoveDust(4,2)

AddBorders(8,8,8,8)

aWarpSharp(depth=16,cm=1)

aWarpSharpDering(depth=20,diffThresh=16)

Convolution3d(preset="animehq")

Crop(10,10,-10,-10,align=true)

LimitedSharpen(ss_x=2,ss_y=2,Dest_x=640,Dest_y=480)


You're right in that DV needs the ConvertToYV12() line since DV is RGB24 IIRC. One more thing, I don't understand what you mean when you say that overscan(?) makes cropping needless, but aWarpSharp and aWarpSharpDering might cause some green or black splotches on the borders, plus there is a bit of noise and haloing around the borders, so just crop accordingly and use 720,480 as parameters in LimitedSharpen. IMO it's better that way.

Chainmax
28th March 2005, 01:54
If anyone still has the source sample (I deleted it from the webspace), could you confirm if this script still leaves some faint red smudges? I saw them at frames 95 and 450.