Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 13th February 2010, 00:26   #1  |  Link
chiu
Registered User
 
Join Date: Oct 2006
Posts: 17
Dotcrawls and Rainbows Oh My! (Need help)

I've been trying to figure out how to get rid of dotcrawl and rainbows lately and I can't for the life of me get the hang of it.
I've tried using Tcomb on these 2 samples here and I either get temporal smearing (but I get rid of the dotcrawl) and the rainbows don't dissapear at all.
I also tried some other filters and they did the same thing (funky smears in high motion)
I followed the Tcomb guide and I don't know what I'm doing wrong.

Dotcrawl sample
http://www.mediafire.com/?ivey0zzjbmj

Rainbow Sample
http://rapidshare.com/files/349504780/rainbows.VOB.html
chiu is offline   Reply With Quote
Old 13th February 2010, 05:01   #2  |  Link
Nightshiver
Quality Freak
 
Join Date: Jun 2007
Location: Area 52
Posts: 597
Why didn't you upload the rainbow sample to mediafire as well? Would have been much faster for downloading. Anyway, on to your problem. For the rainbows, don't know what you're talking about. A simple DeRainbow() worked just fine for me. Make sure that when you do it, you do it before you deinterlace/IVTC. Your dotcrawl's are another matter, found them to be quite stubborn.

checkmate(10)
tcomb(mode=0,fthreshL=5,othreshL=6)
Nightshiver is offline   Reply With Quote
Old 13th February 2010, 05:16   #3  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
I just created a MediaFire account a little earlier , and on trying to upload I got a
"User configuration file not found" (or something similar) and on trying
to access any of the help related links, it just was not accessable,
maybe they are suffering from some kind of site problem, hence
the second upload to RapidShare.
Anyway, have not looked at samples, but I like CNR2 on VHS caps.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 25th February 2010, 04:48   #4  |  Link
*.mp4 guy
Registered User
 
*.mp4 guy's Avatar
 
Join Date: Feb 2004
Posts: 1,348
Hows this (I know this is a late reply)

http://www.mediafire.com/file/wmizkt...20dotcrawl.avi

It uses a really slow custom dotcrawl function, mvtools denoising, and some really slow halo reduction/sharpening. Imo, its probably not worth it.
*.mp4 guy is offline   Reply With Quote
Old 3rd March 2010, 23:01   #5  |  Link
mastrboy
Registered User
 
Join Date: Sep 2008
Posts: 365
Quote:
Originally Posted by *.mp4 guy View Post
Hows this (I know this is a late reply)

http://www.mediafire.com/file/wmizkt...20dotcrawl.avi

It uses a really slow custom dotcrawl function, mvtools denoising, and some really slow halo reduction/sharpening. Imo, its probably not worth it.
Care to post your "code", currently looking for a good dotcrawl function (checkmate is making artifacts)
mastrboy is offline   Reply With Quote
Old 4th March 2010, 06:05   #6  |  Link
*.mp4 guy
Registered User
 
*.mp4 guy's Avatar
 
Join Date: Feb 2004
Posts: 1,348
Code:
function unbt(clip c, int "taps", int "strong"){

c = c

strong = default(strong, 1)

t2 = c
t1 = c.Trim(0, -1)+c.Trim(0, c.framecount-1)
t3 = c.Trim(1, 0)+c.Trim(c.framecount, 0)



t1s0 = t1
t2s0 = t2
t3s0 = t3

smix1 = t2s0.Mt_convolution( Horizontal = " 0 -1 4  -6 10 -17 28 -39 58 -155 618 512 -128 48 -32 23 -14 8 -5 3 -1 ", vertical = " 1 ", u=2, v=2)
smix2 = t2s0.Mt_convolution( Horizontal = " -1 3  -5 8 -14 23 -32 48 -128 512 618 -155 58 -39 28 -17 10 -6 4 -1 ", vertical = " 1 ", u=2, v=2)
smix3 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)
smix4 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " 0 -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)

BasicSpatial = strong >= 1 ? C.unbs(strong=1) : t2s0
tmix1 = average(t2s0, 0.5, t1s0, 0.5)
tmix2 = average(t2s0, 0.5, t3s0, 0.5)


interleave(smix1, smix2, smix3, smix4, tmix1, tmix2, BasicSpatial).medianblurt(radiusy=0, radiusu=0, radiusv=0, temporalradius=3, mc=false, calcborder=false, markscenechange=false)
selectevery(7, 3)

return(last)}





function unbs(clip c, int "taps", int "strong"){

c = c

strong = default(strong, 0)

t2 = c
t1 = c.Trim(0, -1)+c.Trim(0, c.framecount-1)
t3 = c.Trim(1, 0)+c.Trim(c.framecount, 0)



t1s0 = t1
t2s0 = t2
t3s0 = t3

smix1 = t2s0.Mt_convolution( Horizontal = " 0 -1 4  -6 10 -17 28 -39 58 -155 618 512 -128 48 -32 23 -14 8 -5 3 -1 ", vertical = " 1 ", u=2, v=2)
smix2 = t2s0.Mt_convolution( Horizontal = " -1 3  -5 8 -14 23 -32 48 -128 512 618 -155 58 -39 28 -17 10 -6 4 -1 ", vertical = " 1 ", u=2, v=2)
smix3 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)
smix4 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " 0 -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)

BasicSpatial = strong >= 1 ? c.ldd.ldd : t2s0

#tmix1 = average(t2s0, 0.5, t1s0, 0.5)
#tmix2 = average(t2s0, 0.5, t3s0, 0.5)


interleave(smix1, smix2, smix3, smix4, BasicSpatial).medianblurt(radiusy=0, radiusu=0, radiusv=0, temporalradius=3, mc=false, calcborder=false, markscenechange=false)
selectevery(5, 2)

return(last)}




function unbs_internal(clip c, int "taps", int "strong"){

c = c

strong = default(strong, 0)

t2 = c
t1 = c.Trim(0, -1)+c.Trim(0, c.framecount-1)
t3 = c.Trim(1, 0)+c.Trim(c.framecount, 0)



t1s0 = t1
t2s0 = t2
t3s0 = t3

smix1 = t2s0.Mt_convolution( Horizontal = " 0 -1 4  -6 10 -17 28 -39 58 -155 618 512 -128 48 -32 23 -14 8 -5 3 -1 ", vertical = " 1 ", u=2, v=2)
smix2 = t2s0.Mt_convolution( Horizontal = " -1 3  -5 8 -14 23 -32 48 -128 512 618 -155 58 -39 28 -17 10 -6 4 -1 ", vertical = " 1 ", u=2, v=2)
smix3 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)
smix4 = t2s0.Mt_convolution( Horizontal = " 1 ", vertical = " 0 -1 3 -5 8 -14 23 -32 48 -128 512 512 -128 48 -32 23 -14 8 -5 3 -1 ", u=2, v=2)

BasicSpatial = strong >= 1 ? c.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2) : t2s0

#tmix1 = average(t2s0, 0.5, t1s0, 0.5)
#tmix2 = average(t2s0, 0.5, t3s0, 0.5)


interleave(smix1, smix2, smix3, smix4, BasicSpatial).medianblurt(radiusy=0, radiusu=0, radiusv=0, temporalradius=3, mc=false, calcborder=false, markscenechange=false)
selectevery(5, 2)

return(last)}





Function LDD(clip c)
{

	Prefiltered = C.unbs_internal#.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Prefiltered_Spatial_Position0 = Prefiltered
	Prefiltered_Spatial_Position1 = Prefiltered.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", Vertical = " 1 ", u=2, v=2)
	Prefiltered_Spatial_Position2 = Prefiltered.Mt_convolution( Horizontal = " 1 ", Vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Prefiltered_Temporal_Position_Previous = Prefiltered.Trim(0, -1)+c.Trim(0, c.framecount-1)
	Prefiltered_Temporal_Position1_Next = Prefiltered.Trim(1, 0)+c.Trim(c.framecount, 0)
	
	Prefiltered_Temporal_Filter = Average(Prefiltered_Temporal_Position_Previous, 0.25, Prefiltered_Temporal_Position1_Next, 0.25, Prefiltered, 0.25, Prefiltered, 0.25)
	
	
	Spatial_Position0 = C
	Spatial_Position1 = C.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", Vertical = " 1 ", u=2, v=2)
	Spatial_Position2 = C.Mt_convolution( Horizontal = " 1 ", Vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Temporal_Position_Previous = C.Trim(0, -1)+c.Trim(0, c.framecount-1)
	Temporal_Position1_Next = C.Trim(1, 0)+c.Trim(c.framecount, 0)
	
	Temporal_Filter = Average(Temporal_Position_Previous, 0.25, Temporal_Position1_Next, 0.25, C, 0.25, C, 0.25)
	
	
	Difference1 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position1, u=1, v=1)
	Difference2 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position2, u=1, v=1)
	Difference3 = mt_makediff(Prefiltered, Prefiltered_Temporal_Filter, u=1, v=1)
	#Difference4 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position4, u=1, v=1)
	#Difference5 = mt_makediff(Prefiltered, Prefiltered_Temporal_Position_Previous, u=1, v=1)
	#Difference6 = mt_makediff(Prefiltered, Prefiltered_Temporal_Position1_Next, u=1, v=1)
	
Thresh=256
	
	Compare1 = mt_merge(Spatial_Position1, Spatial_Position2, mt_lutxy(Difference1, Difference2, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		Compare1_Prefiltered = mt_merge(Prefiltered_Spatial_Position1, Prefiltered_Spatial_Position2, mt_lutxy(Difference1, Difference2, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	Difference_Step2_1 = mt_makediff(C, Compare1_Prefiltered, u=1, v=1)
	
	Compare2 = mt_merge(Compare1, Temporal_Filter, mt_lutxy(Difference_Step2_1, Difference3, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		Compare2_Prefiltered = mt_merge(Compare1_Prefiltered, Prefiltered_Temporal_Filter, mt_lutxy(Difference_Step2_1, Difference3, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	Difference_Step2_2 = mt_makediff(C, Compare2_Prefiltered, u=1, v=1)
	
	#Compare3 = mt_merge(Compare2, Spatial_Position4, mt_lutxy(Difference_Step2_2, Difference4, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare3_Prefiltered = mt_merge(Compare2_Prefiltered, Prefiltered_Spatial_Position4, mt_lutxy(Difference_Step2_2, Difference4, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_3 = mt_makediff(C, Compare3_Prefiltered, u=1, v=1)
	
	#Compare4 = mt_merge(Compare3, Temporal_Position_Previous, mt_lutxy(Difference_Step2_3, Difference5, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare4_Prefiltered = mt_merge(Compare3_Prefiltered, Prefiltered_Temporal_Position_Previous, mt_lutxy(Difference_Step2_3, Difference5, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_4 = mt_makediff(C, Compare4_Prefiltered, u=1, v=1)

	#Compare5 = mt_merge(Compare4, Temporal_Position1_Next, mt_lutxy(Difference_Step2_4, Difference6, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare5_Prefiltered = mt_merge(Compare4_Prefiltered, Prefiltered_Temporal_Position1_Next, mt_lutxy(Difference_Step2_4, Difference6, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_5 = mt_makediff(C, Compare5_Prefiltered, u=1, v=1)
	
return(mergechroma(Compare1, C, 1))}



Function LDD2(clip c)
{

	Prefiltered = C.Unbt#.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Prefiltered_Spatial_Position0 = Prefiltered
	Prefiltered_Spatial_Position1 = Prefiltered.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", Vertical = " 1 ", u=2, v=2)
	Prefiltered_Spatial_Position2 = Prefiltered.Mt_convolution( Horizontal = " 1 ", Vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Prefiltered_Temporal_Position_Previous = Prefiltered.Trim(0, -1)+c.Trim(0, c.framecount-1)
	Prefiltered_Temporal_Position1_Next = Prefiltered.Trim(1, 0)+c.Trim(c.framecount, 0)
	
	Prefiltered_Temporal_Filter = Average(Prefiltered_Temporal_Position_Previous, 0.25, Prefiltered_Temporal_Position1_Next, 0.25, Prefiltered, 0.25, Prefiltered, 0.25)
	
	
	Spatial_Position0 = C
	Spatial_Position1 = C.Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 0 490 -107 26 -16 14 -9 5 -3 3 -1 ", Vertical = " 1 ", u=2, v=2)
	Spatial_Position2 = C.Mt_convolution( Horizontal = " 1 ", Vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 0 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2)

	Temporal_Position_Previous = C.Trim(0, -1)+c.Trim(0, c.framecount-1)
	Temporal_Position1_Next = C.Trim(1, 0)+c.Trim(c.framecount, 0)
	
	Temporal_Filter = Average(Temporal_Position_Previous, 0.25, Temporal_Position1_Next, 0.25, C, 0.25, C, 0.25)
	
	
	Difference1 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position1, u=1, v=1)
	Difference2 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position2, u=1, v=1)
	Difference3 = mt_makediff(Prefiltered, Prefiltered_Temporal_Filter, u=1, v=1)
	#Difference4 = mt_makediff(Prefiltered, Prefiltered_Spatial_Position4, u=1, v=1)
	#Difference5 = mt_makediff(Prefiltered, Prefiltered_Temporal_Position_Previous, u=1, v=1)
	#Difference6 = mt_makediff(Prefiltered, Prefiltered_Temporal_Position1_Next, u=1, v=1)
	
Thresh=256
	
	Compare1 = mt_merge(Spatial_Position1, Spatial_Position2, mt_lutxy(Difference1, Difference2, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		Compare1_Prefiltered = mt_merge(Prefiltered_Spatial_Position1, Prefiltered_Spatial_Position2, mt_lutxy(Difference1, Difference2, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	Difference_Step2_1 = mt_makediff(C, Compare1_Prefiltered, u=1, v=1)
	
	Compare2 = mt_merge(Compare1, Temporal_Filter, mt_lutxy(Difference_Step2_1, Difference3, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		Compare2_Prefiltered = mt_merge(Compare1_Prefiltered, Prefiltered_Temporal_Filter, mt_lutxy(Difference_Step2_1, Difference3, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	Difference_Step2_2 = mt_makediff(C, Compare2_Prefiltered, u=1, v=1)
	
	#Compare3 = mt_merge(Compare2, Spatial_Position4, mt_lutxy(Difference_Step2_2, Difference4, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare3_Prefiltered = mt_merge(Compare2_Prefiltered, Prefiltered_Spatial_Position4, mt_lutxy(Difference_Step2_2, Difference4, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_3 = mt_makediff(C, Compare3_Prefiltered, u=1, v=1)
	
	#Compare4 = mt_merge(Compare3, Temporal_Position_Previous, mt_lutxy(Difference_Step2_3, Difference5, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare4_Prefiltered = mt_merge(Compare3_Prefiltered, Prefiltered_Temporal_Position_Previous, mt_lutxy(Difference_Step2_3, Difference5, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_4 = mt_makediff(C, Compare4_Prefiltered, u=1, v=1)

	#Compare5 = mt_merge(Compare4, Temporal_Position1_Next, mt_lutxy(Difference_Step2_4, Difference6, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
		#Compare5_Prefiltered = mt_merge(Compare4_Prefiltered, Prefiltered_Temporal_Position1_Next, mt_lutxy(Difference_Step2_4, Difference6, "x 128 - abs y 128 - abs - "+string(thresh)+" *", u=1, v=1), u=3, v=3)
	#Difference_Step2_5 = mt_makediff(C, Compare5_Prefiltered, u=1, v=1)
	
return(mergechroma(Compare2, C, 1))}
The one you want to call is unbt(). Also, I haven't made it work on interlaced stuff yet, but unlike other dot crawl removers, it works fine on stuff that has been through deinterlacing/IVTC. Just don't resize before you use it.


Here is the dotcrawl portion of the script I actually used, but I'm not sure if all the other stuff is doing much, its left over from a while ago, and I used it just to be sure I was using the most thorough script I had lying around.

Code:
MPEG2Source("E:\VTS_01_1.d2v", cpu=0, info=3).colormatrix(hints=true).crop(16, 72, -16, -56)

clip2=Yadif()
TFM(slow=2, clip2=clip2, d2v="E:\VTS_01_1.d2v", pp=7)
tdecimate()

s = last

t2s = last
t1s = last.Trim(0, -1)+last.Trim(0, last.framecount-1)
t3s = last.Trim(1, 0)+last.Trim(last.framecount, 0)
TAverages = Average(t2s, 0.5, t1s, 0.25, t3s, 0.25)



Mt_LutXY(unbs(strong=0), Mt_convolution( Horizontal = " -1 3 -3 5 -9 14 -16 26 -107 490 512 490 -107 26 -16 14 -9 5 -3 3 -1 ", vertical = " -1 2 -2 3 -6 9 -9 16 -80 384 512 384 -80 16 -9 9 -6 3 -2 2 -1 ", u=2, v=2), " X Y - Abs 1 * ", u=1, v=1)

t2 = last
t1 = last.Trim(0, -1)+last.Trim(0, last.framecount-1)
t3 = last.Trim(1, 0)+last.Trim(last.framecount, 0)
TAverage = Average(t2, 0.5, t1, 0.25, t3, 0.25)
TMedian = interleave(t1, t2, t3).medianblurt(radiusy=0, radiusu=0, radiusv=0, temporalradius=1, mc=false, calcborder=false, markscenechange=false).selectevery(3, 1)



mask1 = Mt_LutXY(TAverage, TMedian, " X Y - Abs 1 - 255 * ", u=1, v=1).mt_expand
mask2 = Mt_LutXY(mask1.expand(), mask1, " X Y -", u=1, v=1).tweak(sat=0)

proc = s.unbt(strong=1)

mt_merge(proc, proc.ldd2, mask1)
*.mp4 guy is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 07:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.