Log in

View Full Version : Pixiedust OK With Interlaced Footage Or Something Else ?


Master Yoda
3rd January 2005, 22:45
Is it ok to use pixiedust on interlaced footage ?? Final out put is interlaced for dvd.This was captured from sky using s-video out.The middle part of the script is there to remove the red and green lines i got. Or do i need to do something else with pixiedust or is it fine as i have it? There is'nt much fast montion. What other denoise filters are there that work fine with interlaced and do a really good job that i may mess about with.I ask as pixiedust does slow the mpeg2 encoding down a fair bit.

I do have screen shots of a scene with and without pixiedust and the grainy sort of artifacts have more or less gone.I could post the pics if you like

This is my script

Loadplugin("F:\DVD Ripping Apps\Loadpluginex2.dll")
Loadplugin("F:\DVD Ripping Apps\dust\dustv5.dll")
AviSource("my_family.avi")
Addborders(12,0,12,0)
Trim(184,73305)
clip = SeparateFields()
even = clip.SelectEven().assumeframebased
odd = clip.SelectOdd().assumeframebased

even1 = even.SeparateFields.SelectEven()
odd1 = even.SeparateFields.SelectOdd()
clip_even1 = MergeChroma(even1, odd1, 0.5)
clip_odd1 = MergeChroma(odd1, even1, 0.5)
out1 = Interleave(clip_odd1,clip_even1).weave

even2 = odd.SeparateFields.SelectEven()
odd2 = odd.SeparateFields.SelectOdd()
clip_even2 = MergeChroma(even2, odd2, 0.5)
clip_odd2 = MergeChroma(odd2, even2, 0.5)
out2 = Interleave(clip_odd2, clip_even2).weave

interleave(out1,out2)
assumefieldbased()
weave()

Pixiedust(4)


Thanks

stickboy
3rd January 2005, 23:09
Originally posted by Master Yoda
Is it ok to use pixiedust on interlaced footage ??No. PixieDust is a spatial-temporal smoother that AFAIK doesn't do any special handling for interlaced clips nor for field-separated clips.

See one of these threads:
How to process interlaced and the final result to be interlaced (http://forum.doom9.org/showthread.php?s=&threadid=86394)
Dust and interlaced NTSC sources (http://forum.doom9.org/showthread.php?s=&threadid=59029)

(Man, this is the third time someone's asked something on this subject in the past two days...)
Originally posted by Master Yoda:
clip = SeparateFields()
even = clip.SelectEven().assumeframebased
odd = clip.SelectOdd().assumeframebased

even1 = even.SeparateFields.SelectEven()
odd1 = even.SeparateFields.SelectOdd()
clip_even1 = MergeChroma(even1, odd1, 0.5)
clip_odd1 = MergeChroma(odd1, even1, 0.5)
out1 = Interleave(clip_odd1,clip_even1).weaveWon't clip_even1 and clip_odd1 be identical? Won't you be interleaving the clips in the wrong order (frame numbers start at 0, so evens should come first)? (However, I suppose the order doesn't matter if the even and odd frames are the same...) Why do you bother separating the fields to do this?

Why are you blending chroma like this at all? If you're trying to do a temporal blur on the chroma, a much simpler way is:
c = clip.TemporalSoften(...)
MergeChroma(clip, c, 1.0)

scharfis_brain
3rd January 2005, 23:20
Why are you blending chroma like that?

I am not being him, but I think it will remove PAL-Chroma-lines.
(Phase differences within signal chain and no delay line in PAL-Decoder in Capture-Device)

This chorma-blur can be achieved much more easy and faster:

separatefields().blur(0,1).weave()

stickboy
4th January 2005, 00:05
Oh, right, it's a spatial blur, not a temporal one. Duh.

Master Yoda
4th January 2005, 01:05
Yeah its to remove those PAL-Chroma-lines (i know them as red and green lines). I never wrote that script, Arachnotron done it, and looking at the image in vd it seems like the green and red lines have gone. Dont really want to touch it as i aint a expert in avisynth more like a noob, only ever used avisynth for dvd backups. Pixiedust did seem to clean the image a bit, but if its not for interlaced i'll give something else a try. I'll have a read through those two threads although i think i did read the first one but i just started to get a bit confused when there was talks of serperating fields the denoise then putting them back together. I'll have another read through though. Im not de-interlacing, leaving interlaced.

update... after reading i was going to try jdl_unfoldfieldsvertical, jdl_foldfieldsvertical but could get it to work even after putting jdl-interlace.avsi in the avisynths plugin folder.So i decided to give this a try

assumetff()
bob()
pixiedust(4)
assumetff()
separatefields().selectevery(4,0,3).weave()

Think i have it correct.

stickboy
4th January 2005, 02:55
Originally posted by Master Yoda
update... after reading i was going to try jdl_unfoldfieldsvertical, jdl_foldfieldsvertical but could get it to work even after putting jdl-interlace.avsi in the avisynths plugin folder.What was the error you got?

Did you download both jdl-util.avsi and jdl-interlace.avsi?

State of Mind
4th January 2005, 03:08
Does keeping my DV interlaced affect other filters' abilities to do their jobs on my DV? Mind you, mine is NTSC.

Master Yoda
4th January 2005, 03:24
Na only downloaded jdl-interlace.avsi, didnt release i need both, i'll get the other and give it a try.Cant remember the error, something about a error in line XX setrange or something.

After adding

assumetff()
bob()
pixiedust(4)
assumetff()
separatefields().selectevery(4,0,3).weave()

I did a quick sample by adding SelectRangeEvery(240,12) at the bottom and i was a bit shocked, the avg bitrate i needed before removing the green and red lines and adding pixiedust was about 6400 after the removal of the coloured lines and pixiedust the avg dropped down to about 4800.Did'nt think it would drop that low.The only problem was the speed encode speed in cce dropped to 0.12, i think its pixiedust slowing it down alot.

Is it only nessasery to split the fileds like that when using spatial temporal filters or on others filters aswell seen as its insterlaced

stickboy
4th January 2005, 04:33
Originally posted by Master Yoda
The only problem was the speed encode speed in cce dropped to 0.12, i think its pixiedust slowing it down alot.Keep in mind that scharfis_brain's method filters twice as many frames.

Also, the Bob() filter itself blurs things quite a bit (which may or may not be desirable).
Originally posted by State of Mind
Does keeping my DV interlaced affect other filters' abilities to do their jobs on my DV? Mind you, mine is NTSC.The whole point of this discussion is that some spatial-temporal smoothers (e.g. PixieDust) don't know how to deal with interlaced video.

So, yes, if you use such filters, then keeping the clip interlaced will affect denoising and can introduce artifacts. Read the other threads.

Master Yoda
4th January 2005, 06:00
I see, i did notice a very slight blur, thought that may have been pixiedust.Will using your jdl_unfoldfieldsvertical,
jdl_foldfieldsvertical method still cause a slight blur ?? and any suggestions on other denoise filters that give as good quality as pixie, if not i just do some more reading, well i'll do that anyway.

Thanks for your help guys.

stickboy
4th January 2005, 06:50
Originally posted by Master Yoda
I see, i did notice a very slight blur, thought that may have been pixiedust.Will using your jdl_unfoldfieldsvertical,
jdl_foldfieldsvertical method still cause a slight blur ??PixieDust, like any denoiser, can blur details.

Unfold/Fold, however, won't introduce any blurring on their own.JDL_UnfoldFieldsVertical(true)
# no filtering
JDL_FoldFieldsVertical(true)is a no-op.Bob()
# no filtering
SeparateFields().SelectEvery(4, 0, 3).Weave()is not a no-op (although theoretically it could be with a better bob filter).

scharfis_brain
4th January 2005, 07:20
Originally posted by stickboy
Bob()
# no filtering
SeparateFields().SelectEvery(4, 0, 3).Weave()is not a no-op (although theoretically it could be with a better bob filter). [/B]

That is not true.

Bob()
# no filtering
SeparateFields().SelectEvery(4, 0, 3).Weave()

IS a NO-OP!
because SeparateFields().SelectEvery(4,0,3).Weave()
only selects the non-interpolated lines!
(okay, okay, one needs to set bob()'s bicubic parameters to lossles bicubic...)

stickboy
4th January 2005, 09:45
Oh come on, I did say it would be a no-op if a better bob filter were used.

Using the internal AviSynth Bob filter with its default arguments will introduce its own blurring.

scharfis_brain
4th January 2005, 14:02
http://forum.doom9.org/showthread.php?s=&postid=558081&highlight=bob+bicubic#post558081

with

assume?ff()
bob(0,0)
assume?ff()
separatefields().selectevery(4,0,3).weave()

it is completely lossless.

Mug Funky
4th January 2005, 16:35
further: "bob(a,b)" can be treated as "bob(blurring,ringing)".

"ringing" can be anything you want. "blurring" must be zero.

so bob(0,.5) and bob(0,0) will separatefields().selectevery(4,1,2).weave() to the exact same picture.

i haven't tried this for ringing > 1 though, but i don't expect it to be any different (why would you do that anyway?).

btw, is there any reason for avisynth's bicubic filter to default to 1/3,1/3? it makes sense for applications like antialiasing in 3d apps where there's practically infinite pixels to work with, so blurring isn't much of an issue, but in 2d image processing, a better default might be 0,.5 (neutral bicubic).

Boulder
4th January 2005, 17:56
Originally posted by Mug Funky

btw, is there any reason for avisynth's bicubic filter to default to 1/3,1/3? it makes sense for applications like antialiasing in 3d apps where there's practically infinite pixels to work with, so blurring isn't much of an issue, but in 2d image processing, a better default might be 0,.5 (neutral bicubic).

Originally posted by someone (Ben R-G?) in the Avisynth docs
The default is b = 1/3 and c = 1/3, which were the values recommended by Mitchell and Netravali as yielding the most visually pleasing results in subjective tests of human beings.


I still don't understand how a soft image has been more visually pleasing than a sharp one. I've also not been able to found any details about the tests, those two names do come up quite often when Googling.

Master Yoda
4th January 2005, 22:51
I tryed

JDL_UnFoldFieldsVertical(true)
Pixiedust(4)
JDL_FoldFieldsVertical(true)

Looks fine to me, no blur, although i would have to wait to the final encode see how it comes out on the tv.