View Full Version : Deinterlacing: image is jerky in travelings
daimroc
23rd May 2010, 10:02
Well, I have an old anime mpeg2 source, PAL, and it's interlaced.
I use nnedi3 for deinterlacing the video, and the results is very good, but when I play the video, in horizontal travelings, I can see that the image is jerky. In vertical travelings I can see it too, but is less annoying.
I would like to know if its posible to solve this problem or if it's a problem with interlaced videos, and in special with anime.
Thanks.
Daimroc.
manono
23rd May 2010, 13:39
Provide an untouched sample that features these 'horizontal travelings'. 10-15 seconds should be plenty.
LoRd_MuldeR
23rd May 2010, 13:44
I use nnedi3 for deinterlacing the video, and the results is very good, but when I play the video, in horizontal travelings, I can see that the image is jerky. In vertical travelings I can see it too, but is less annoying.
This is normal and expected. NNEDI3 as well as NNEDI2 are great interpolators, but they don't do any motion compensation!
You shouldn't use NNEDI2/NNEDI3 alone, at least not when deinterlacing. Use them as interpolators for something like YadifMod or TempGaussMC.
Try like this, for example:
function YadifModNNEDI3Bob(clip src, int quality)
{
interpol = src.nnedi3(field=-2, qual=quality)
return src.YadifMod(mode=1, edeint=interpol)
}
SomeSource("C:\Some Folder\File.foo")
AssumeTFF()
YadifModNNEDI3Bob(1)
TempGaussMC can often produce a more "stable" result than YadifMod. But it's also SLOW ;)
Have a look here:
http://avisynth.org/mediawiki/TempGaussMC
(The "beta2" release of TGMC only supports "nnedi" and "nnedi2" as edimode's, but it's easy to add "nnedi3")
poisondeathray
23rd May 2010, 15:07
"jerky" could also be from wrong field order
LoRd_MuldeR
23rd May 2010, 15:09
"jerky" could also be from wrong field order
Indeed. In that case he should try calling AssumeTFF() or AssumeBFF() before calling the deinterlacer.
Anyway, what was said before still applies, even when the field order is set correctly...
daimroc
23rd May 2010, 15:45
Sorry Lord_Mulder, but I dont know how to use the code you put. I mean if I must to write the code exactly you say in my avs or not.
Thanks.
Daimroc.
LoRd_MuldeR
23rd May 2010, 15:48
Sorry Lord_Mulder, but I dont know how to use the code you put. I mean if I must to write the code exactly you say in my avs or not.
Of course you would replace the "SomeSource(...)" line with your actual source. The rest should work 1:1 as posted above.
You'll need to have the NNEDI3/NNEDI2 + YadifMod plugins located in your "plugins" folder, of course.
And you may need to replace the "AssumeTFF()" line with "AssumeBFF()", depending on the filed order of your individual source clip.
If you intend to use TempGaussMC instead of YadifMod, refer to the Wiki page for instructions...
(Still a short sample clip would be helpful. Maybe your source even isn't interlaced, but telecined. Who knows ^^)
daimroc
23rd May 2010, 16:31
Thanks.
By the moment I will try with yadif and nnedi3.
The video is PAL and it is interlaced, I doubt in PAL it is telecined, becouse this is for NTSC if I am not wrong.
Thanks.
Daimroc.
LoRd_MuldeR
23rd May 2010, 17:09
The video is PAL and it is interlaced, I doubt in PAL it is telecined, becouse this is for NTSC if I am not wrong.
Still a lot of weird things can happen with bad NTSC to PAL conversions. And it's not that unusual ;)
daimroc
23rd May 2010, 18:53
Afer trying TempGaussMC_beta2u, I get the same results, so If you could say me where I could ipload a video, or how to send you a sample, I can do it.
Thanks.
Daimroc.
poisondeathray
23rd May 2010, 19:11
cut a sample with horizontal motion/panning with dgindex (mark in/out) or dgsplit
free hosting sites: mediafire.com , sendspace.com
Didée
23rd May 2010, 19:37
When it's Anime, chances are high that something is weird.
When it's Anime, and it is PAL, then it's almost guaranteed to be a fieldblended normconversion.
When it's a fieldblended normconversion, then you cannot "just deinterlace" it. Instead you need a script that restores clean frames from the blended fields.
In a word, most probably you need to utilize "SomeBob().Srestore()".
daimroc
26th May 2010, 09:59
Here you can a sample, in which there is a horizontal an vertical panning. I think it's a good sample, but if you would like to have a new one, I can look for other.
http://www.mediafire.com/file/ndzzvy3nrze/interlaced anime.m2v
I use nnedi 3 with this parameters:
nnedi3(field=-1, dh=false, Y=true, U=true, V=true, nsize=4, nns=3, qual=1, pscrn=true, threads=0, opt=0)
Thanks.
Daimroc.
Didée
26th May 2010, 10:13
That *is* a fieldblended normconversion, and you should use Srestore as mentionend.
daimroc
26th May 2010, 11:19
Somebob().Srestoe() is a generic name of a filter or it exists?
Which dll has this functions?
Thanks.
Daimroc.
Didée
26th May 2010, 11:35
You have been around since 2005, really? ;)
- Srestore() is a script function by MOmonster.
- Somebob() is a generic placeholder for {whichever bob-filter suits your speed/quality preference)
- The forum search (http://forum.doom9.org/search.php) is your friend, and will quickly lead you to this thread (http://forum.doom9.org/showthread.php?t=95924)
daimroc
26th May 2010, 12:20
I try this follwoing avs:
ConvertTOYV12()
nnedi3(field=3, dh=false, Y=true, U=true, V=true, nsize=4, nns=3, qual=1, pscrn=true, threads=0, opt=0)
Srestore(speed=-25, mode=4, thresh=22, cache=-1)
I get a video of 23.976fps instead of 25fps, but the length is the same, so I think I can use the same audio (i don't try it yet).
However, the video isn't jerky, is completly smooth, so it works perfectly.
Thanks.
Daimroc.
txporter
26th May 2010, 17:40
I try this follwoing avs:
ConvertTOYV12()
nnedi3(field=3, dh=false, Y=true, U=true, V=true, nsize=4, nns=3, qual=1, pscrn=true, threads=0, opt=0)
Srestore(speed=-25, mode=4, thresh=22, cache=-1)
I get a video of 23.976fps instead of 25fps, but the length is the same, so I think I can use the same audio (i don't try it yet).
However, the video isn't jerky, is completly smooth, so it works perfectly.
Thanks.
Daimroc.
Try srestore(frate=25).
ficofico
26th May 2010, 22:06
TempGaussMC can often produce a more "stable" result than YadifMod. But it's also SLOW
Have a look here:
http://avisynth.org/mediawiki/TempGaussMC
(The "beta2" release of TGMC only supports "nnedi" and "nnedi2" as edimode's, but it's easy to add "nnedi3")
How to add nnedi3 to tempgaussmc?
:thanks:
LoRd_MuldeR
26th May 2010, 22:21
How to add nnedi3 to tempgaussmc?
:thanks:
If you look at the code of TempGaussMC it should be trivial.
Anyway, here is an updated version TempGaussMC beta2 that already has "edimode=nnedi3" added:
http://forum.doom9.org/showpost.php?p=1400371&postcount=438
ficofico
26th May 2010, 22:23
thanks lord_mulder....
ficofico
26th May 2010, 22:35
edit, solved
vBulletin® v3.8.11, Copyright ©2000-2023, vBulletin Solutions Inc.