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 25th September 2003, 21:26   #1  |  Link
kevina
Registered User
 
Join Date: Jun 2003
Posts: 71
New Filter: Interpolating Bob

I just released a new filter, Interpolating Bob. You can find it at http://kevin.atkinson.dhs.org/ibob/.

The filter works identically to the Avisynth builtin Bob filter except that it uses linear interpolation instead of bicubic resizing.

The advantages of IBob over the builtin Bob is:

1) The lines of the dominate field are untouched. In particular
Code:
assumetff()
orig = last
ibob()
assumetff().separatefields().selectevery(4,0,3).weave()
compare(last,orig)
Will report 0 difference between the original and the bob than unbobed
video (when the video format is yuy2, with yv12 the chroma will be
slightly different). With the builtin bob this is not the case.

2) A bit faster than the builtin bob.

In can be made even faster by 1) dynamically compiling key parts to
reduce register pressure and take advantage of the "base + index +
displacement" addressing mode, and by 2) using vector extensions.
kevina is offline   Reply With Quote
Old 26th September 2003, 10:00   #2  |  Link
bilu
Registered User
 
bilu's Avatar
 
Join Date: Oct 2002
Location: Portugal
Posts: 1,182
Will try it ASAP.

Will you integrate it into SmartDecimate?


Bilu
bilu is offline   Reply With Quote
Old 26th September 2003, 16:18   #3  |  Link
YY1020
Registered User
 
Join Date: Apr 2003
Posts: 84
Quote:
Originally posted by bilu
Will try it ASAP.

Will you integrate it into SmartDecimate?


Bilu
I think that won't integrate into SmartDecimate.
YY1020 is offline   Reply With Quote
Old 27th September 2003, 01:50   #4  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Ah, that might be of actual interest for me.
Very nice. Thank you, Kevin.

/puts ibob into the basket.

BTW, Kevin, there is no need to hack something into SmartDecimate to serve my actual script. It works like a charm.
__________________
- 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 27th September 2003, 07:58   #5  |  Link
kevina
Registered User
 
Join Date: Jun 2003
Posts: 71
Thanks all.

I have no plans to intergrate it in SmartDecimate as that will serve nothing.

Theoretically Bob() should be higher quality than IBob() (cubic verses linear). If any one cares to compare the two I would be interested in the results.

It is most usefull when you need to do something like Bob/Filter/UnBob
where Filter is a temporal but noninterlaced aware filter. SeparateFields won't work quite right for filters which consider more than one frame at a time (ie temporal ones) since the scanlines are not in the right place.
kevina is offline   Reply With Quote
Old 27th September 2003, 16:55   #6  |  Link
Si
Simply me
 
Si's Avatar
 
Join Date: Aug 2002
Location: Lancashire, England
Posts: 610
Kevin
You've piqued my interest with the "bob/filter/unbob" concept.

What advantage do you see/have you found over Viewfields/filter/Unviewfields concept as promoted by many others (OK then - me )

regards
Simon
Si is offline   Reply With Quote
Old 27th September 2003, 17:23   #7  |  Link
vhelp
Registered User
 
vhelp's Avatar
 
Join Date: Feb 2003
Posts: 299
@ kevin,

Would you please provide a working AVS sample script please ???

The one you provided is incomplete. I can't get the IBob.dll
to work w/ my DV cam footage source files
I keep getting this error:

** LoadPlugin: unable to load "LoadPlugin("c:\dlls252\IBob.dll")"
I also have the avisynth_c.dll in this same folder.

Here is my script:

Code:
x="h:\20.39.00.avi"

LoadPlugin("c:\dlls252\ReInterpolate411.dll")
LoadPlugin("c:\dlls252\IBob.dll")

segmentedAVISource(x)

ConvertToYUY2()

#Reinterpolate411()

 assumetff()
 orig = last
 ibob()
 assumetff().separatefields().selectevery(4,0,3).weave()
 compare(last,orig)
Really appreciate, thanks again.
-vhelp
__________________
ESC K7S5A / XP 1800+ / Windows 98
ADVC-100[dvio] / WTVGO[avio] / DC10+[avio] / Canon ZR-10 / Delphi 6 Personal / JVC S-VHS HR-S3910U / Durabrand SSS w/ DVD Player STS75E / Sony TRV-22
FithElement/Dogma/BladeRunner/Contact
vhelp is offline   Reply With Quote
Old 27th September 2003, 17:24   #8  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
@ vhelp: You must load it with LoadCPlugin(...).


Quote:
What advantage do you see/have you found over Viewfields/filter/Unviewfields concept as promoted by many others
I see it the following way:
(assuming 'filter' is a spatio-temporal one)

- with Un/ViewFields, the spatial part works strong, but the temporal part works by comparing only every other field (field n is compared with fields n-2 and n+2), since the direct temporal neighbors are above and below.

- with ibob, both the spatial and the temporal part are comparing pixels against interpolated ones only. But here, the temporal part works more precise, since pixels from fields that are direct temporal neighbors are compared.

So, it depends on what exactly you're going to do. Each method has its pro's and con's.

- Didée
__________________
- 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!)

Last edited by Didée; 27th September 2003 at 17:29.
Didée is offline   Reply With Quote
Old 27th September 2003, 17:39   #9  |  Link
vhelp
Registered User
 
vhelp's Avatar
 
Join Date: Feb 2003
Posts: 299
Hi Didée,

I must be stupid, but after trying your response of LoadCPlugin(...)
it did not work

After using:
Code:
  LoadCPlugin("c:\dlls252\IBob.dll")
I got, Script error: there is no function named "LoadCPlugin"

I thought we were all using AVS v2.52 these days.. have we gone
backward now ?? Oh well, thanks anyways

-vhelp
__________________
ESC K7S5A / XP 1800+ / Windows 98
ADVC-100[dvio] / WTVGO[avio] / DC10+[avio] / Canon ZR-10 / Delphi 6 Personal / JVC S-VHS HR-S3910U / Durabrand SSS w/ DVD Player STS75E / Sony TRV-22
FithElement/Dogma/BladeRunner/Contact
vhelp is offline   Reply With Quote
Old 27th September 2003, 17:44   #10  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,364
See YV12 FAQ - Q6. You need "AVISynth C API(by kevina20723)". Load this dll before loading the ibob.dll.
Wilbert is offline   Reply With Quote
Old 27th September 2003, 18:25   #11  |  Link
Si
Simply me
 
Si's Avatar
 
Join Date: Aug 2002
Location: Lancashire, England
Posts: 610
Quote:
the temporal part works more precise, since pixels from fields that are direct temporal neighbors are compared.
But they are not - since some of the temporal neighbours are interpolated (imaginary) pixels.

It will give different results but not "more precise"

regards
Simon

Last edited by Si; 27th September 2003 at 20:02.
Si is offline   Reply With Quote
Old 27th September 2003, 19:39   #12  |  Link
bilu
Registered User
 
bilu's Avatar
 
Join Date: Oct 2002
Location: Portugal
Posts: 1,182
@Kevin

Your new filter is FAST!!!
But I still prefer DGBob on SmartDecimate because it works better on static scenes.


Bilu
bilu is offline   Reply With Quote
Old 27th September 2003, 19:51   #13  |  Link
kevina
Registered User
 
Join Date: Jun 2003
Posts: 71
@bilu

It's not meant to replace a Smart Bob such as DgBob() but rather a dumb bob such as the builtin Bob() for reasons stated earlier.

@siwalters

It depends on want you mean on precise. It will be comparing against "imaginary" pixels but once you UnBob the imaginary pixels are not used. If you are using some sort of conditional temporal filter which just compares against the imaginary pixels but doesn't necessary use them, the results will defently be more "precise", especally around scene changes and the like.
kevina is offline   Reply With Quote
Old 27th September 2003, 20:14   #14  |  Link
Si
Simply me
 
Si's Avatar
 
Join Date: Aug 2002
Location: Lancashire, England
Posts: 610
Quote:
It depends on want you mean on precise.
I'm not arguing "precise" - I'm arguing "more precise" (And I'm arguing it with Didee )

Quote:
If you are using some sort of conditional temporal filter which just compares against the imaginary pixels but doesn't necessary use them, the results will defently be more "precise
Now I'm in the ring with you (its like a bad tag match )

I was asking where/when/how you'd see it in being better than just a simpler splitfields action. You've seem to be saying you can imagine it being better in some situation but you don't have such a situation to hand -- mmm

I'm sure you can do better than that (or can you )

regards
Simon
Si is offline   Reply With Quote
Old 2nd October 2003, 03:15   #15  |  Link
kevina
Registered User
 
Join Date: Jun 2003
Posts: 71
Quote:
I was asking where/when/how you'd see it in being better than just a simpler splitfields action. You've seem to be saying you can imagine it being better in some situation but you don't have such a situation to hand -- mmm
Well it can make a diffrence with my Conditional Temporal Median Filter. It can handle interlaced material but it handles it much like your Un/ViewFields (I belive). When using the Bob/UnBob approach it can remove a bit more noise around scene changes and objects that stopped moving. Neither method works better than the other as one removes noise the other doesn't and vice versa. For best results you can use the Un/ViewFields and then Bob/UnBob. Since my filter does not touch areas that are not noise the negative effect by applying the filter twice is minimal. Although the chroma will suffer a bit with the Bob/Unbob.
kevina is offline   Reply With Quote
Old 2nd October 2003, 13:57   #16  |  Link
mf
·
 
mf's Avatar
 
Join Date: Jan 2002
Posts: 1,729
Re: New Filter: Interpolating Bob

Quote:
Originally posted by kevina20723
I just released a new filter, Interpolating Bob. You can find it at http://kevin.atkinson.dhs.org/ibob/.

The filter works identically to the Avisynth builtin Bob filter except that it uses linear interpolation instead of bicubic resizing.

The advantages of IBob over the builtin Bob is:

1) The lines of the dominate field are untouched.
Interesting. Almost like my idea .
mf is offline   Reply With Quote
Old 22nd October 2003, 14:25   #17  |  Link
Mug Funky
interlace this!
 
Mug Funky's Avatar
 
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
my only prob with this is that it pretty much always gets the field order wrong... maybe cause i'm a PAL baby?

i get around it with:
ibob().selectevery(2,1,0)

but that aside, this is a nice little tool. i've given up trying to duplicate its functionality with scripts. no matter what resizer i use (except pointresize) it will change both fields.

keep up the goodwerk!
__________________
sucking the life out of your videos since 2004
Mug Funky is offline   Reply With Quote
Old 22nd October 2003, 16:01   #18  |  Link
kevina
Registered User
 
Join Date: Jun 2003
Posts: 71
Does Bob() Also get the field order wrong?
kevina is offline   Reply With Quote
Old 21st April 2016, 03:39   #19  |  Link
Katie Boundary
Registered User
 
Katie Boundary's Avatar
 
Join Date: Jan 2015
Posts: 1,047
Quote:
Originally Posted by Didée View Post
Ah, that might be of actual interest for me.
Very nice. Thank you, Kevin.

/puts ibob into the basket.
It puts the Ibob in the basket or else it gets the hose again!
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers.
Katie Boundary is offline   Reply With Quote
Old 21st April 2016, 11:13   #20  |  Link
wonkey_monkey
Formerly davidh*****
 
wonkey_monkey's Avatar
 
Join Date: Jan 2004
Posts: 2,492
bob() itself can leave the original fields untouched, if you want it to:

Code:
Bob(0.0, 1.0) preserves the original fields for RGB and YUY2 and preserves the Luma but not the Chroma for YV12.
Edit: didn't realise this 13 year old thread had been resurrected for an off-topic dumb joke.
__________________
My AviSynth filters / I'm the Doctor

Last edited by wonkey_monkey; 21st April 2016 at 11:29.
wonkey_monkey 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:55.


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