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

Reply
 
Thread Tools Search this Thread Display Modes
Old 18th April 2004, 23:11   #61  |  Link
Dallemon
Registered User
 
Join Date: Nov 2003
Location: Denmark
Posts: 38
i said it didnt work....

Quote:
Okay, does that work for you?
Quote:
i hate to say this... but no
Dallemon is offline   Reply With Quote
Old 18th April 2004, 23:27   #62  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
then tell me your error-message, word by word and char by char!

are you just to lazy to write, or do you want to make me angry?
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 18th April 2004, 23:31   #63  |  Link
Dallemon
Registered User
 
Join Date: Nov 2003
Location: Denmark
Posts: 38
just doing it to piss you off... j/k
sry i missunderstood you

DEdgeMask: Needs YV12 data
(C:\AviSynth 2.5\scripts\restore24.avs, line 25)
(C:\AviSynth 2.5\test.avs, line 13)
Dallemon is offline   Reply With Quote
Old 18th April 2004, 23:43   #64  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
did you tried applying


work.converttoyv12().dedgemask(...)

within the restore24-code?


you have to use converttoyuy2(interlaced=true) before all deinterlacing and restore24'ing because the built in deinterlacers need it.So do not change the external things.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 18th April 2004, 23:46   #65  |  Link
Dallemon
Registered User
 
Join Date: Nov 2003
Location: Denmark
Posts: 38
no i havent tried that since i would concider myself a noob at this still (2nd project) (and the first one wasnt this troublesome )
so i wouldnt think to mess around in other ppls scripts, but im gonna try what you suggested and report back

EDIT: yay it works (i think), well it didnt complain about anything ^^
so should i just add what filters i wanna use after the "restore24(tomsbobsoft(last),bobmatcher(last))"?
and thx a lot for the help

EDIT2: would this be a valid script?

Code:
setmemorymax(340)
import("C:\AviSynth 2.5\scripts\restore24.avs")
import("C:\AviSynth 2.5\scripts\bobmatcher.avs")
loadplugin("C:\AviSynth 2.5\plugins\masktools.dll")
loadplugin("C:\AviSynth 2.5\plugins\avisynth_c.dll")
loadcplugin("C:\AviSynth 2.5\plugins\smartdecimate.dll")
loadplugin("C:\AviSynth 2.5\plugins\tomsmocomp.dll")
loadplugin("C:\AviSynth 2.5\plugins\kerneldeint.dll")
loadplugin("C:\AviSynth 2.5\plugins\mpeg2dec.dll")
loadplugin("C:\AviSynth 2.5\plugins\mpeg2dec3.dll")
mpeg2source("C:\KORN_LIVE_DISC1\VIDEO_TS\KoRn - Live.d2v",CPU=4,iPP=true)
converttoyuy2(interlaced=true)
restore24(tomsbobsoft(last),bobmatcher(last))
KernelDeint(order=1,threshold=1,sharp=true)
VagueDenoiser(1.5,1,7,true,false,false)
Crop(6,4,708,570)
LanczosResize(640,352)
Undot()
EDIT3: just want to say sry for being so n00bish but i havent worked with "import" before :/ so i just wanna be sure

EDIT4: and if this script is ok, kan i then just start the encoding process? (i.e. open the avs in vdm and do the first pass, then second)

Last edited by Dallemon; 19th April 2004 at 00:00.
Dallemon is offline   Reply With Quote
Old 19th April 2004, 00:10   #66  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
do NOT place a deinterlacer after Restore24.Restore24 returns a well deinterlaced, non combed video!

at first, you shouldn't apply any filtering at all.

just let the last line be restore24(...)

then open this avs into vdub and scroll to a place with good motion, mark this part (maybe a minute or so) and encode only this part with a encoder of your choice (doesn't matter).

then open this encoded file and analyse it containing blends and stutters. if it is okay, you can set up your filtering.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 19th April 2004, 00:14   #67  |  Link
Dallemon
Registered User
 
Join Date: Nov 2003
Location: Denmark
Posts: 38
heh thx, got a point there
would have been a waste of time if it was b0rked
thx a lot for your help and for being so tolerant

EDIT: it worked no problems at all

Last edited by Dallemon; 19th April 2004 at 00:55.
Dallemon is offline   Reply With Quote
Old 22nd April 2004, 02:23   #68  |  Link
J-Wo
Registered User
 
Join Date: Jan 2003
Posts: 213
Wow this is one of the most confusing posts I have ever seen! Took me forever to navigate through the various pages, discover which code worked, and also track down all those odd avs plugins I have never used before.

Okay, after a lot of fiddling around I *finally* got this script to work. I have PAL source with interlacing, but I'm not certain what the best method was to remove the combs. I tried various permutations of fielddeinterlace, greedyhma, and smoothdeinterlace. All of them did a good job of removing the combing, but what I was left with was blended fields. They were most noticeable during motion scenes as "motion blur" or "ghosting".

Anyway I was referred to this thread from another forum. After getting Restore24 to work (based on Shariff_Brain's mods) I notice that my video *does* have less interlaced frames, but the ones that aren't have MUCH larger combing than before. It's like the wrong fields were added together or something. I'm not very technical so I can't quite explain how to describe it!

Can anyone make some suggestions to me? Any modifications to the restore24 I should try? Or perhaps try a different filter altogether?

BTW my source is an AVI from a PAL DVD. However the original material I know is american, thus NTSC. Not too sure if the interlacing came from the PAL DVD itself or from the person who made the AVI into 25 fps.

Last edited by J-Wo; 22nd April 2004 at 04:24.
J-Wo is offline   Reply With Quote
Old 22nd April 2004, 04:31   #69  |  Link
J-Wo
Registered User
 
Join Date: Jan 2003
Posts: 213
I loaded up my movie in virtualdub and started to examine the interlacing frame by frame. What I notice is a pattern that starts with 1 frame progressive, 1 frame interlaced which repeats a total of 5 times, or 5x(1p,1i) followed by a long stream of ~11-13 interlaced frames, giving a pattern something like this:

p i p i p i p i p i i i i i i i i i i i i i

If I add a simple SeparateFields() to my script, I notice that the fields themselves exhibit combing, and that these combs appear much larger with SeparateFields than without.

Does this make sense to anyone? Hoping someone can help me!
J-Wo is offline   Reply With Quote
Old 22nd April 2004, 05:27   #70  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
no chance here, getting something good out of this file, if even separatefields() shows combing.

your video has been resized. This made the interlacing go worse.
forget fixing this one. get the dvd and be happy.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 22nd April 2004, 06:15   #71  |  Link
J-Wo
Registered User
 
Join Date: Jan 2003
Posts: 213
darn, I was afraid you might say that. As I mentioned earlier, a simple fielddeinterlace(blend=true) does a perfect job of getting rid of the combing, but then what I'm left with is a lot of blended frames and ghosting. Do you think I could use unblend or your script for unblendpattern?
J-Wo is offline   Reply With Quote
Old 22nd April 2004, 06:29   #72  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
forget it. your avi is broken due to false image resampling.

before any unblending you have to deinterlace (without introducing new blending like blend=true does).

And I doubt, that kerneldeint / kernelbob will give a acceptable result.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 25th April 2004, 19:04   #73  |  Link
Lefungus
Registered User
 
Lefungus's Avatar
 
Join Date: Apr 2002
Location: Bretagne
Posts: 192
Amazing filter !
I used to think blended interlaced PAL crap was impossible to recover, but i'm proven wrong
It's not perfect yet though, extremely slow and it miss sometimes, but it surely is promising !
__________________

Some old avisynth filters
Lefungus is offline   Reply With Quote
Old 24th February 2006, 16:58   #74  |  Link
Uanime5
Registered User
 
Join Date: Feb 2006
Posts: 15
I've already changed the main avs file to so that it reads 'aviSource' and made other relevent changes to it. How can I modify 'bobmatcher.avs' so it accepts avi files? The current bobmatch.avs I have is

Code:
# Test-Mask-Deinterlacer (for Restore24)

function Tomsbobsoft(clip c)
{   input=c.separatefields.tomsmocomp(1,-1,1)
   a = getparity(input) ? input.selectodd : input.selecteven
   b = getparity(input) ? input.selecteven : input.selectodd
   a=stackvertical(a.crop(0,0,0,0-a.height),a.crop(0,0,0,-0))
   output = getparity(input) ? interleave(b,a) : interleave(a,b)
   output.assumeframebased
}

# Pre-Deinterlacer for Bobmatcher
# can also be used as standalone-bobber

# Kernelbob, using kernel-interpolation for achieving
# a higher resolution at slow-, and nonmoving locations

function kernelbob(clip a, int th)
{   ord = getparity(a) ? 1 : 0
   f=a.kerneldeint(order=ord, sharp=true, twoway=true, threshold=th)
   e=a.separatefields.trim(1,0).weave.kerneldeint(order=1-ord, sharp=true, twoway=true, threshold=th)
   interleave(f,e).assumeframebased
}

# TMCbob, uses tomsmocomp-interpolation for getting
# diagonal lines with reduced stairstepping

function TMCbob(clip c)
{   ord = getparity(c) ? 1 : 0
   c = c.SeparateFields.TomsMoComp(1,-1,0)
   c = stackvertical(c.crop(0,0,0,1-c.height),c,c.crop(0,c.height-1,0,0))
   evn  = c.SelectEven
   odd  = c.SelectOdd
   evn = (ord == 0) ? evn : evn.crop(0,0,1,0).addborders(0,0,0,1)
   odd = (ord == 1) ? odd : odd.crop(0,0,1,0).addborders(0,0,0,1)
   interleave(evn,odd).crop(0,0,0,-2).assumeframebased()
}

# Hehe, the TV-Simulator:

function TVdeint(clip clip, float kell)
{
   clip=clip.addborders(0,4,0,4)
   input=clip.converttoyuy2().separatefields()
   blank=blankclip(selecteven(input))
   even=interleave(selecteven(input),blank).weave()
   odd =interleave(selectodd(input) ,blank).weave()
   output=interleave(even,odd)
   kell = (kell < 0 ) || (kell > 1) ? 0 : kell
   (kell == 0) ? output : output.blur(0,kell).levels(0,1,255-int(128*kell),0,255)
   crop(0,4,0,-4)
}


# And finally: the bobmatcher

function bobmatcher(clip fg, int "md", int "deintth", bool "showmask", bool "showmatch", bool "domatch",float "matchth", int "bobmethod")
{

#   add borders to prevent the border-bug of motionmask

   fg.AddBorders(8,0,8,0)
   x1=last .ConvertToYV12(interlaced=true)

#   set vars

   md      = default(md,3)
   deintth      = default(deintth,3)
#   maskedtmc   = default(maskedtmc,true)
   matchth      = default(matchth, 0.3)
   showmask   = default(showmask,false)
   showmatch   = default(showmatch,false)
   domatch      = default(domatch,true)
   bobmethod   = default(bobmethod,128)

#   create bobbing motionmask

   evn     = x1.motionmask(md,deintth)
   odd     = x1.doubleweave.selectodd.motionmask(md,deintth)
   mask    = interleave(evn,odd)

#   create bobbed clip
#   bobmethod = 0 only uses kernelbob for getting the interpolated data
#   bobmethod = 255 only uses TMCbob
#   bobmethod = 1..254 uses a weighted mix of kernelbob and TMCbob for getting
#         the interpolated data, 128 creates a 1:1-blend (default)

   bobx    = (bobmethod == 0  ) ? x1.kernelbob(5) :
      \ (bobmethod == 255) ? x1.tmcbob() :
      \ layer(x1.coverttoYUY2.kernelbob(5),x1.coverttoYUY2.tmcbob(),"add",level=bobmethod)
   bobx    = showmask ? bobx.coloryuv(gain_v=-48) : bobx

#   create doubleweaved clip

   douw   = x1.doubleweave
   douw   = showmask ? douw.coloryuv(gain_u=48) : douw

#   calculate smartbobbed streams:
#   using previous field to get the interpolation of the current field

global   out1   = maskedmix(douw,bobx.trim(1,0),mask)

#   using next field to get the interpolation of the current field

global   out2   = maskedmix(douw,bobx,mask).trim(1,0)

#   setup mask for matching

global   mask1   = mask.converttoyv12
global   mask2   = mask1.trim(1,0)

#   if masks are to similar (No Matching), blend both bobbed streams together for best output 

global   outnomatch = overlay(out2,out1,opacity=0.5,mode="blend")

#   create debug messages

global   outnomatch = showmatch ?
                    \outnomatch.subtitle("Using          Both          Fields - No Matching") : outnomatch
global  out1 = showmatch ? out1.subtitle("Using Previous            Field")     : out1
global  out2 = showmatch ? out2.subtitle("Using                   Next Field")  : out2

#   do the matching

global   outmatch = domatch ? ConditionalFilter(out1, out2, "averageluma(mask1)",
         \ "<", "averageluma(mask2)") : outnomatch

#   disable matching, if lumadifference between the prev-mask and the next-mask is smaller than p*100 percent

global   p     = matchth

   o6 = ScriptClip(blankclip(out1), "outx")

   o8 = FrameEvaluate(o6, "global outx = ((AL1*(1+p) > AL2) && (AL2 > AL1*(1-p))) ? outnomatch : outmatch")

   o9 = Frameevaluate(o8,"global AL1 = averageluma(mask1)")
   out= Frameevaluate(o9,"global AL2 = averageluma(mask2)")

#   do some final things to get the output in sync with other bobbers

   out = bobx.trim(0,-3) + out.assumeframebased().trim(2,0)
   
   out.Crop(8,0,-8,0)
}
However I have a problem with the two lines ' interleave(evn,odd).crop(0,0,0,-2).assumeframebased()' and
' \ layer(x1.coverttoYUY2.kernelbob(5),x1.coverttoYUY2.tmcbob(),"add",level=bobmethod)'.

The error message is:

Quote:
Interleave: the videos must be of the same size
How can I solve this problem?
Uanime5 is offline   Reply With Quote
Old 24th February 2006, 17:05   #75  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
Do mot mess with that old stuff. it has no use anymore and has been replaced by other - much better - algorithms
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 25th February 2006, 21:36   #76  |  Link
Uanime5
Registered User
 
Join Date: Feb 2006
Posts: 15
Where can I find the a better algorithm?
Uanime5 is offline   Reply With Quote
Old 3rd April 2006, 16:26   #77  |  Link
stg
Registered User
 
Join Date: Mar 2006
Posts: 9
Quote:
Originally Posted by Uanime5
Where can I find the a better algorithm?

My thoughts exactly. I am a n00b what comes to video encoding, I have those problematic DVD's with "stuttering", and looking for an easy way to fix them -> convert them to XviD.

I tried that restore24 script without success, after first fighting with those incompatible versions, put everything together, all I got was errors after errors.

I would appreciate if someone could point me a guide which not only has links to compatible plugin etc. versions, but also explains the procedure step by step so even I can understand it
stg is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 05:51.


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