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 May 2008, 01:45   #21  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
I haven’t had opportunity to test TempGaussMC with other ‘shimmery’ scenes as yet, but with the ‘striped tee-shirt’ clip I posted above I cannot see that either the script posted by Map1742 or that suggested by Scharfis offer an improvement on YadifMod.NNEDI alone, in this context

Here are the results:

Spline36Resize(1024,height)
bob(0.0, 1.0)
i=last
mdata = DePanEstimate(i)
DePanStabilize(i, data=mdata)
AssumeFrameBased().SeparateFields().SelectEvery(4,0,3).assumefieldbased().weave()
yadifmod(order=0, mode=1, edeint=nnedi(field=-2))
Scripted_MVDegrain5() # as posted by Didee

http://rapidshare.com/files/11566271...-YV12.avi.html


yadifmod(order=0, mode=1, edeint=nnedi(field=-2))
i=last
mdata = DePanEstimate(I, pixaspect=1.454)
DePanStabilize(i, data=mdata, , pixaspect=1.454)
Scripted_MVDegrain5() # as posted by Didee

http://rapidshare.com/files/11566355...-YV12.avi.html

Compare with the results for yadifmod(order=0, mode=1, edeint=nnedi(field=-2)) alone and for TempGaussMC, as posted above (post # 9)

I might add that the clip was shot with OIS (Optical Image Stabilization) on. Whilst OIS theoretically degrades ‘image quality’ (assumed resolution) by around 10% (according to Panasonic), this is a vast improvement on Electronic Image Stabilization, which for those Panasonic cams that use it, is reckoned to degrade quality by as much as 30-40%. As you can see (from the Depan borders), even in my shaky little mits, the clip is reasonably steady for a hand-held shot. I should maybe include some shots with OIS off (hand-held and tripod) in my further tests.

@Map1742, I agree aliasing is a problem with consumer-level DV cams, and the GS400 is quite prone to it - probably a by-product of the 3CCD pixel-shift technology. There’s some evident in this clip on the wall beading. One thing I do note is that your routine removes this quite effectively, but so does YadifMod.NNEDI plus MVDegrain5 alone. Delete the MVDegrain5 step from your script and the aliasing comes back. So the reasonable conclusion would be…….

Perhaps you could provide some clips that demonstrate the benefits of your pre-deinterlace processing.
__________________
Nostalgia's not what it used to be

Last edited by WorBry; 18th May 2008 at 17:20.
WorBry is offline   Reply With Quote
Old 18th May 2008, 02:38   #22  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Well, I tested a little around, too, and it has been interesting. Examined DV sequences were this one of yours, WorBry, and the one that Terka once peddled with. Then I looked at some of the notorious VQEG Test Sequences.

With map1742's script, there wasn't much noticeable improvement, the usual flicker just keeps being there. That's what I had expected. Flicker reduction only gets better when 'thSAD' for MVDegrain is cranked up to *very* high values, but then you start getting artefacts on moving objects.
Also I'm having an issue with DePanStabilize producing a green stripe beneath the right frame border, can't tell why. (Never used it before.)

The interesting part was testing TempGaussMC. I had expected all kinds of issues when throwing such a rather primitive brute-force processor at difficult content, but ... there are no serious ones! Just a slight loss of detail/shadings (and noise as well), but apart from that, it's very promising. In those parts where MCBob shines, it's quite close. And in those parts where MCBob fails, it's pretty good instead ...

This little plantlet must be cultivated. With some STT fertilizer and a few twists, it could become a strong one.
__________________
- 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 18th May 2008, 03:31   #23  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
Ah, the VQEG test sequences, we are knowing them well I see they've added a few more and fancified the index....probably due to the notoriety.

Just a query about the 'sharpness' param in TempGaussMC. What are the intervals/limits, or more specifically, is the (default) 11.66 denominator in the calc a constant value (i.e. sharpness is modulated purely by the tr0, tr1, tr2 values) or a variable that can be tweaked? Not that I'm planning on much tweaking at this point
__________________
Nostalgia's not what it used to be
WorBry is offline   Reply With Quote
Old 18th May 2008, 15:04   #24  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Well, the sharpness thingy is 100% arbitrary. It's just a "sharpen(x)" (plus repair-limiting) thrown between the two MVDegrain calls, to counteract softening that might come from the temporal averaging. The 11.66 denomoinator was chosen arbitrarily to end up with a default of sharpen(0.6) when all temporal radii are maxed out. The possible range for setting it manually is 0.0~1.0, because that's what sharpen() allows.
__________________
- 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 18th May 2008, 17:19   #25  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
OK, thanks.
__________________
Nostalgia's not what it used to be
WorBry is offline   Reply With Quote
Old 20th May 2008, 13:32   #26  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Bugfix for TempGaussMC:

I was thinking too easy and managed to use incorrect weightings in Merge() to create the gauss.

The function in post#13 is correct now.

That was an embarrassing bug. I feel ashamed.
__________________
- 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 20th May 2008, 15:38   #27  |  Link
yup
Registered User
 
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
Didée!
Please explain why need calculating fv4,fv5, bv4,bv5 vectors? Value this vector not use MVDegrainx. It is feature MVTools?
With kind regards yup.
yup is offline   Reply With Quote
Old 20th May 2008, 16:08   #28  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Oh, indeed. There was an error in Scripted_MVDegrain5, too ... I fed the 2nd MVDegrain with the wrong vectors.
The script has been corrected. Thank you for noting!
__________________
- 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 20th May 2008, 16:25   #29  |  Link
yup
Registered User
 
Join Date: Feb 2003
Location: Russia, Moscow
Posts: 854
May be for noisy source usefull other approach. We use only MVDegrain1 but using mask which calculate ME error and use previous, current and next frame or previous -2 previous current or current next next +2. This very good for my VHS capture source. Also we can use multipass. I think about this more time but can not formalizing. Also we need care luma value for dark scene we need degrease THSad.
yup.
yup is offline   Reply With Quote
Old 20th May 2008, 16:43   #30  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
OK I’ve had a little time for some testing. Dug around a bit in my home video DV archives and frankly I’ve been hard pressed to find scenes that TempGaussMC doesn’t cope with completely. Put together a little collage that you might want to look at in your tweaking. This one is all 4:3 DV.

http://rapidshare.com/files/11629337...V_4.3.avi.html


Scene 1. More electrified stripy tee-shirts. Some residual shimmer on the finer-line red one.

Scene 2. On the Farm. Some reduction in the shimmering of the vertical slats on the barn wall, relative to MCBob. Maybe too much to expect that this can be eliminated completely without excessive distortion/ blurring – more of a camera resolution limitation issue?

Scene 3. Safari Sofa. Nigh-on perfect calming of the shimmer on the cushion patterns.

Scene 4. Toy car mat. Again excellent calming of shimmers on the car mat pattern and edges of the cupboards. Just some very slight aliasing in places

Scene 5. Jumpy ride. Threw this one in just to see how well it copes with a very jerky motion scene, and it does so very well. Just a little more distortion of the wire mesh than MCBob, but it’s very close.

I won’t upload the Huff-YV12 outputs for TempGaussMC and MCBob as they are too large.

Cheers.

Edit: PS - I used the bug fixed version.
__________________
Nostalgia's not what it used to be

Last edited by WorBry; 20th May 2008 at 17:03.
WorBry is offline   Reply With Quote
Old 20th May 2008, 16:48   #31  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
@ yup: If you want to discuss about a new denoising strategy, that's fine, but please open a new thread for that. This thread is mainly about deinterlacing flicker.
(Also, you don't need to speak in Oxford English or something, really. But try to be a bit more verbose on what is the new point in your idea, and why it would/should work better than existing solutions.)

That said, I don't claim that MVDegrain5 (or -7 or -10 or -25) is very useful. It's just that map1742 posted a script that used such a function, and most people couldn't try it out because MVDegrain5 wasn't posted somewhere. That's why I made it.
__________________
- 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 20th May 2008, 17:31   #32  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
@ WorBry: Thanks for the clip. I'll definetly keep it for testing.

One thing to note about TempGaussMC is that it does a much "easier" (say: sloppy) job than any bob filter: a true bob filter has to keep the original fields unchanged, i.e. with xyzBob().SelectEvery(4,0,3).Weave() one should get back the original interlaced input, pixel-identical.
TempGaussMC doesn't care about that, it processes both the interpolated and the original fields. That's most probably okay for the usual application where one often does some denoising etc. after bobbing anyway. Still, this behaviour disqualifies that approach as being a "clinic" bob filter.
(And MCBob also produces less shimmering when the need to keep original fields untouched is removed ... it's MCBob's internal clip "repaired".)
__________________
- 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 21st May 2008, 03:30   #33  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
Quote:
Originally Posted by Didée View Post
with xyzBob().SelectEvery(4,0,3).Weave() one should get back the original interlaced input, pixel-identical.
Surely SeparateFields before the SelectEvery....?

Yeah, for the helluvit, I re-interlaced just to see what it would look like on a typical software player that uses simple bob & weave (like PowerDVD). Doesnt look bad but edges tend to be wavy in parts.
__________________
Nostalgia's not what it used to be

Last edited by WorBry; 21st May 2008 at 03:34.
WorBry is offline   Reply With Quote
Old 21st May 2008, 21:00   #34  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Rrrrrrrrr .... yes, definetly with SeparateFields before the SelectEvery. <swears>

There'll be another update to TempGaussMC today or tomorrow. A little tweaking here, a little addition there, and it handles practically everything that I've tried in a visually satisfying way. Much better on shaky motion, but still stable on static or slowly moving areas. Your clip seems fine, VQEG sequences ToyTrain, Musicians, Rugby and Formula-1 are fine. (The only funbreaker is "Scrolling Text", but that one is almost impossible anyway [the green letters!].)
__________________
- 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 22nd May 2008, 12:04   #35  |  Link
Terka
Registered User
 
Join Date: Jan 2005
Location: cz
Posts: 704
sounds interesting..
Terka is offline   Reply With Quote
Old 22nd May 2008, 23:44   #36  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
New version up in post#13.

Major change:
- repairing of temporalsoften-ghosting for 'searchlip' (parameter "rep0") results in better motion estimation. Together with "rep1" (similar repairing on the end result) this gives better results in high-motion areas.

Minors:
- defaults for temporal radii reduced to (2,2,1). For most things, (2,1,1) should give reasonable stable output. If you need even more, use (2,2,2).
- sharpening now can be bigger than 1.0
- "border=1" makes sure that half-scanlines at top & bottom also don't flicker. (clip internally padded, since some filters don't process 1st & last line of their input)

It's still not a "lossless" bob filter, since the original fields are changed by the filter chain. But the results IMHO are pretty nice visually. If visual quality is more important than PSNR / SSIM scores, give it a go.
__________________
- 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; 23rd May 2008 at 00:43.
Didée is offline   Reply With Quote
Old 23rd May 2008, 00:29   #37  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
Very nice and definitely faster I'm surprised folks over in the 'film-look' thread havent twigged onto this. Maybe I'll give them a nudge

Note:

Quote:
Originally Posted by Didée View Post
Minors:
- defaults for temporal radii reduced to 2,1,1. Should give reasonable stable output for most things. If you need even more, use 2,2,2.
The defaults in the script are 2,2,1, not 2,1,1. I'm assuming the former is correct?
__________________
Nostalgia's not what it used to be
WorBry is offline   Reply With Quote
Old 23rd May 2008, 01:04   #38  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,389
Oops, a typo. The default is (2,2,1) just because it's in the middle between the even faster (2,1,1) and the even calmer (2,2,2). Post above corrected.

Here's another example of a source that drove me nuts in the past:



Sample (Mediafire.com)

Left: YadifMod(mode=1,edeint=NNEDI()) -- Right: TempGaussMC(2,2,2). Not uber-perfect, but way beyond all past results.
__________________
- 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 23rd May 2008, 01:16   #39  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,197
Quote:
Originally Posted by Didée View Post
....Not uber-perfect, but way beyond all past results.
Definitely
__________________
Nostalgia's not what it used to be
WorBry is offline   Reply With Quote
Old 23rd May 2008, 15:24   #40  |  Link
Terka
Registered User
 
Join Date: Jan 2005
Location: cz
Posts: 704
The example looks really good! Good work!
Terka is offline   Reply With Quote
Reply

Tags
deinterlace, flickering

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 16:04.


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