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 Development
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 30th October 2006, 10:00   #781  |  Link
Livesms
Registered User
 
Livesms's Avatar
 
Join Date: Mar 2006
Posts: 184
Quote:
Originally Posted by manono View Post
Hi-

As foxyshadis speculated, it is pure interlace. Put on a bobber (or separate the fields) and step through it, and you'll see that every frame/field is different. No repeats. The reason (maybe) why you think TIVTC does such a good job is that it doesn't find any field matches and just deinterlaces. You can do as well, and do it faster, by just using TDeint. And if this is for DVD, then I wouldn't recommend deinterlacing at all.
Yes!

SeparateFields() gives me half height picture and all different (step by step) video. So it is pure interlaced video.

So what can you reccomend as deinterlacing filter. I have some variants
Code:
interp = separatefields().selecteven().EEDI2(field=1)
deinted = tdeint(edeint=interp,order=1,field=1)
tfm(clip2 = deinted,order=1)
http://dump.ru/files/8/826331359/0.jpg
Code:
2 pass TIVTC
first pass
tfm(d2v=d2vname, output="matches.txt")

second pass
tfm(d2v=d2vname, input="matches.txt")
http://dump.ru/files/0/0508170020/1.jpg
Code:
TIVTC for PAL  
tfm(d2v=d2vname)
http://dump.ru/files/1/100852183/2.jpg
Some samples from MeGui
Code:
#TDeint with EDI
edeintted = last.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
TDeint(order=1,full=false,edeint=edeintted)
http://dump.ru/files/6/6827235/3.jpg
Code:
#TDeint
TDeint(order=1,full=false)
http://dump.ru/files/0/074818498/4.jpg
Code:
#FieldDeinterlace
AssumeTFF().FieldDeinterlace(full=false)
http://dump.ru/files/4/4845181842/5.jpg
Code:
#FieldDeinterlace (no blend)
AssumeTFF().FieldDeinterlace(blend=false,full=false)
http://dump.ru/files/4/4192710577/6_1.jpg
Code:
#LeakKernelDeint
LeakKernelDeint(order=1,sharp=true)
http://dump.ru/files/2/223364508/7.jpg
Code:
#TomsMoComp
TomsMoComp(1,5,1)
http://dump.ru/files/9/9263911186/8.jpg

Maybe there is other method, which will give me better/best results?

Last edited by Livesms; 30th October 2006 at 11:50.
Livesms is offline   Reply With Quote
Old 30th October 2006, 10:34   #782  |  Link
foxyshadis
Angel of Night
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
How much time are you willing to spend on the project? SecureBob, MVBob, and MCBob are very slow but very good at creating crisp 60 fps video without combing. You should try those you posted, however, and see if they might work well enough for a fast deinterlace. Especially TDeint and TomsMoComp.
foxyshadis is offline   Reply With Quote
Old 30th October 2006, 13:00   #783  |  Link
Livesms
Registered User
 
Livesms's Avatar
 
Join Date: Mar 2006
Posts: 184
Quote:
Originally Posted by foxyshadis View Post
How much time are you willing to spend on the project? SecureBob, MVBob, and MCBob are very slow but very good at creating crisp 60 fps video without combing. You should try those you posted, however, and see if they might work well enough for a fast deinterlace. Especially TDeint and TomsMoComp.
Time is not obligation. The main aim is quality.
Can you give working examples for quality/slowest and quality/normal speed scripts.

TDeint sometimes give some artifacts like lines and scratces, while TomsMoComp adds some blur in to picture.

What does it mean "creating crisp 60 fps" - i need 25P and my source is 25I(50p/2).
Livesms is offline   Reply With Quote
Old 30th October 2006, 14:05   #784  |  Link
foxyshadis
Angel of Night
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
Oh right, PAL - 50 fps then, to which you'd use SelectEven after if you only want 25. I can't really give you good arguments, but that's because I've always been able to get very good results without any parameters.
foxyshadis is offline   Reply With Quote
Old 30th October 2006, 16:00   #785  |  Link
Livesms
Registered User
 
Livesms's Avatar
 
Join Date: Mar 2006
Posts: 184
Quote:
Originally Posted by foxyshadis View Post
Oh right, PAL - 50 fps then, to which you'd use SelectEven after if you only want 25. I can't really give you good arguments, but that's because I've always been able to get very good results without any parameters.
Yes, but SelectEven will lose half of frames.
I need good deinterlace

Quote:
I've always been able to get very good results without any parameters.
Can you explaine it ?
Livesms is offline   Reply With Quote
Old 30th October 2006, 17:33   #786  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
tritical, I didn't forget about the Mode0,2 and 7 tests. I'll get to them most likely today.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 30th October 2006, 21:34   #787  |  Link
foxyshadis
Angel of Night
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
Quote:
Originally Posted by Livesms View Post
Yes, but SelectEven will lose half of frames.
I need good deinterlace
You said you needed 25 fps, not 50, right? Bob.SelectEven means the same as Deinterlace. You end up with 25 fps either way, because bobbing doubles the frames.
foxyshadis is offline   Reply With Quote
Old 31st October 2006, 07:46   #788  |  Link
Livesms
Registered User
 
Livesms's Avatar
 
Join Date: Mar 2006
Posts: 184
Quote:
Originally Posted by foxyshadis View Post
You said you needed 25 fps, not 50, right? Bob.SelectEven means the same as Deinterlace. You end up with 25 fps either way, because bobbing doubles the frames.
Is there any sence to search in parametres for Mvbob?

How can I found out what shell I use Mvbob().SelectEven or mvbob.SelectOdd()
Livesms is offline   Reply With Quote
Old 31st October 2006, 08:20   #789  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
use selecteven unless you've got half a line of black on the top of the screen (in that case use selectodd)
__________________
sucking the life out of your videos since 2004
Mug Funky is offline   Reply With Quote
Old 1st November 2006, 01:36   #790  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Quote:
Originally Posted by ChiDragon
What do you think about extending that "drop one side of scene change during video w/SC" thing so that if the hints declare that only of the two frames (or maybe one in the whole cycle) is combed, drop that one.
Choosing which frame, of the two around the sc, to drop based on only one of the two being combed is possible. Atm, it always selects to drop the frame before the sc since it has the lower difference metric. I'll add it in the next release. Requiring that it be the only combed frame in the cycle would probably help as well.

@All
I also came across some clips where the regular field matching function in tfm wasn't able tell the difference between two matches but the MIC values made the correct choice obvious (such as 85 vs 9). So I've extended micmatching modes 1/2/3 to include a post match comparison step that looks at the mic values and will change the match decision in such blantantly obvious cases.

Last edited by tritical; 1st November 2006 at 01:43.
tritical is offline   Reply With Quote
Old 3rd November 2006, 06:43   #791  |  Link
DarkNite
Almost Silent Member
 
DarkNite's Avatar
 
Join Date: Jun 2002
Location: Purgatory
Posts: 273
Quote:
@All
I also came across some clips where the regular field matching function in tfm wasn't able tell the difference between two matches but the MIC values made the correct choice obvious (such as 85 vs 9). So I've extended micmatching modes 1/2/3 to include a post match comparison step that looks at the mic values and will change the match decision in such blantantly obvious cases.
Thank you tritical. I was just about to post on that issue as it became apparent when I was running through an old torture test source that I would like to actually get respectable results on someday without scripting hundreds of FreezeFrame ranges again.

That still won't happen, but it's bound to help out in other cases.
__________________
Rethinking the "Why?" chromosome.
DarkNite is offline   Reply With Quote
Old 4th November 2006, 22:37   #792  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
[link removed], changes:
Code:
TDecimate:
   - switch setfps() with muldivfps() for modes 0, 1, and 5
   - use FloatToFPS() from assumefps/changefps/convertfps for modes 2 and 7

TFM:
   + micmatching modes 1, 2, and 3 now check each match decision for cases where the 
         correct match is obvious based off mic values but the field matching routine 
         is unable to distinguish the correct match
   + added micmatching mode 4, does the post match decision check and nothing else
For the moment, the override decision to switch from m1 to m2 is simply:

if ((mics[m2]*3 < mics[m1] || (mics[m2]*2 < mics[m1] && mics[m1] > MI)) && abs(mics[m2]-mics[m1]) >= 30 && mics[m2] < MI)

where m1 was the chosen match, m2 was the alternative, and mics[x] is the MIC value for match x. The >= 30 means the MIC value for match m2 doesn't need to be calculated unless m1 has a MIC value >= 30. Since that usually isn't the case, there shouldn't be much of a slowdown vs previous versions.

Last edited by tritical; 27th November 2006 at 07:23.
tritical is offline   Reply With Quote
Old 5th November 2006, 05:29   #793  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Quote:
Originally Posted by Didée
Anyone ever noticed Vinverse? It's just this: Make a small-range blur. Then, of this make an inverse blur at a wider range (speak: USM), /w configurable strength. Manipulate the result so that the 2nd one isn't allowed to add (remove) more than the 1st one previously did remove (add).
Compared to the ease of operation, the outcome is valuable. Try. One might say, it seems almost like a plugin function candidate.
Don't say I never did anything useful ... vinverse.
tritical is offline   Reply With Quote
Old 5th November 2006, 06:20   #794  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,391
Didn't ever say so ... your plugins eat much of my CPUs' cycles every day.

Ah, the speed! With a 10fold call, pace is ~400% of the script function. (what, is that all? booo! ) Configurable 'scale' is nice, too. (I was lazy to silently fix it at .25)

Really great, thank you.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 7th November 2006, 03:47   #795  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
tritical, sorry to have procrastinated for so long. I downloaded SysInternals's DebugView and tried a slightly different mode=2 script:

[script deleted]

Which, upon loading gave me the following error message:

(that would be the TDecimate line)

and the following DebugView log:


The stats file was created from an earlier clip but it was made according to your instructions and in that regard the script didn't change.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.

Last edited by Chainmax; 10th November 2006 at 06:43. Reason: removed space-hogging useless script
Chainmax is offline   Reply With Quote
Old 7th November 2006, 06:40   #796  |  Link
foxyshadis
Angel of Night
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Tangled in the silks
Posts: 9,559
Open the stats files and delete the parts marked crc; they're normally designed to require exactly the same input as the first run, but you can override it that way. Once you do that, you'll be able to open to debug further if necessary.
foxyshadis is offline   Reply With Quote
Old 8th November 2006, 00:17   #797  |  Link
tritical
Registered User
 
Join Date: Dec 2003
Location: MO, US
Posts: 999
Alright, I don't know where to put this so I'm putting it here: smartdecimate+avisynthc. These are builds I made from the sources on Kevin Atkinson's site (avisynth_c 0.15/smartdecimate 0.23)... the normal version would always crash if weave/bob were the same... at least for me.

Quote:
Ah, the speed! With a 10fold call, pace is ~400% of the script function. (what, is that all? booo! )
My first attempt was only about 1.5x the speed of the script function... luckily the second one was a little faster .


@Chainmax
I'm definitely interested in the results of your tests.

Last edited by tritical; 8th November 2006 at 00:25.
tritical is offline   Reply With Quote
Old 9th November 2006, 07:28   #798  |  Link
DarkNite
Almost Silent Member
 
DarkNite's Avatar
 
Join Date: Jun 2002
Location: Purgatory
Posts: 273
Wow, that was straight out of left field... I haven't seen smartdecimate in a while. In fact, I haven't used it since I started using TIVTC regularly.
__________________
Rethinking the "Why?" chromosome.
DarkNite is offline   Reply With Quote
Old 9th November 2006, 14:18   #799  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
Quote:
Originally Posted by tritical View Post
...
@Chainmax
I'm definitely interested in the results of your tests.
They are coming up soon, I decided to make a new stats file as I changed bobbing to SecureBob since it looked better.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.
Chainmax is offline   Reply With Quote
Old 10th November 2006, 06:42   #800  |  Link
Chainmax
Huh?
 
Chainmax's Avatar
 
Join Date: Sep 2003
Location: Uruguay
Posts: 3,103
tritical: Phew! Stats creation took over a day .
The tests were conducted with the following script:

Code:
SetMemoryMax(256)

LoadPlugin("X:\wherever\DGDecode.dll")

LoadPlugin("X:\wherever\ColorMatrix.dll")

LoadPlugin("X:\wherever\Corrector.dll")
LoadPlugin("X:\wherever\EEDI2.dll")
LoadPlugin("X:\wherever\LeakKernelDeint.dll")
LoadPlugin("X:\wherever\MVTools.dll")
LoadPlugin("X:\wherever\MedianBlur.dll")
LoadPlugin("X:\wherever\SangNom.dll")
LoadPlugin("X:\wherever\TomsMoComp.dll")
Import("X:\wherever\MVBob.avs")

LoadPlugin("X:\wherever\TIVTC.dll")

LoadPlugin("X:\wherever\MT_MaskTools.dll")
LoadPlugin("X:\wherever\DCTFilter.dll")
Import("X:\wherever\DeBlock_QED_MT2.avs")

LoadPlugin("X:\wherever\FFT3DFilter.dll")

LoadPlugin("X:\wherever\Deen.dll")
Import("X:\wherever\HQDering_MT2.avs")

LoadPlugin("X:\wherever\RemoveGrain.dll")
Import("X:\wherever\LimitedSharpenFaster.avs")
Import("X:\wherever\Soothe_MT2.avs")

LoadPlugin("X:\wherever\AddGrainC.dll")




MPEG2Source("X:\wherever\familytape.d2v",info=3)

Trim(0,1982)+Trim(2355,0)

ColorMatrix(hints=true,interlaced=true)

SecureBob()

TDecimate(cycleR=2003,cycle=5000,input="stats.txt",debug=true)
TDecimate(mode=2,rate=29.97,input="stats.txt",debug=true)
one of these per test, of course ;)       

DeBlock_QED()

Crop(22,6,688,552,align=true)

FFT3DFilter(sigma=6,plane=3,bw=32,bh=32,bt=3,ow=16,oh=16)

ColorYUV(off_y=-3,gain_y=20,cont_u=0,cont_v=51.2,opt="coring")

HQDering(255)

FFT3DFilter(sigma=1,bw=32,bh=32,bt=3,ow=16,oh=16,sharpen=0.3)

Lanczos4Resize(656,448)

dull=last
sharp=dull.LimitedSharpenFaster(SMode=4,Strength=150,wide=true)
Soothe(sharp,dull,25)

AddGrainC(5,2)

AddBorders(32,16,32,16)

Levels(0,1,255,16,235)

a = ImageSource("X:\wherever\Otrarr.bmp")
ApplyRange(2354,2357,"Overlay",a)

b = ImageSource("X:\wherever\Frm3.bmp")
ApplyRange(2358,2393,"Overlay",b)

c = last.Trim(2395,2395)
ApplyRange(2394,2394,"Overlay",c)

d = last.Trim(72151,72151)
ApplyRange(72150,72150,"Overlay",d)

e = last.Trim(82220,82220)
ApplyRange(82219,82219,"Overlay",e)

f = last.Trim(152177,152177)
ApplyRange(152176,152176,"Overlay",f)

g = last.Trim(164536,164536)
ApplyRange(164532,164656,"Overlay",g)

h = last.Trim(164660,164660)
ApplyRange(164657,164659,"Overlay",h)

i = last.Trim(165675,165675)
ApplyRange(165676,165676,"Overlay",i)

j = last.Trim(165686,165686)
ApplyRange(165681,165686,"Overlay",j)

k = last.Trim(165687,165687)
ApplyRange(165688,165688,"Overlay",k)

l = ImageSource("X:\wherever\HiPay.bmp")
ApplyRange(171430,172184,"Overlay",l)
I'm happy to report that Mode=0 seemed to work perfectly, it loaded just fine and I could even drag the slider to jump around the video. You can download DebugView's log here.

Mode=2, however, was not so lucky. I received the same access violation error that points at the TDecimate line. DebugView's log was as follows:



I hope this helps.
__________________
Read Decomb's readmes and tutorials, the IVTC tutorial and the capture guide in order to learn about combing and how to deal with it.

Last edited by Chainmax; 10th November 2006 at 06:45.
Chainmax is offline   Reply With Quote
Reply

Tags
tdeint, tivtc


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 22:07.


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