View Full Version : Oh lord what a terrible source. Is there any hope?
Blue_MiSfit
15th March 2008, 00:17
The American President.
Terrible. One of the worst DVDs I've ever seen. Looks like a bad LaserDisc or even VHS capture. But I need to encode it!
What do you guys suggest?
I've had good luck with TFM().TDecimate as far as cleaning up the telecine, but the actual frames are just terrible. Loads of noise, little to no detail, dot crawl, messy chroma, aliasing, you name it. Really terrible.
Here's a sample:
http://www.megaupload.com/?d=XE2MSOTL
Thanks!
~MiSfit
Dark Shikari
15th March 2008, 00:23
The American President.
Terrible.And I thought for a second this was going to be a politics thread! ;)
Blue_MiSfit
15th March 2008, 00:32
:D
Here's what I've got so far:
MPEG2Source("F:\Rework\9177\VIDEO_TS\American President.d2v", cpu=6, upconv=1)
TFM().TDecimate().Vinverse()
crop( 8, 104, -8, -110)
source=last
sup=source.eedi2().turnleft().eedi2().turnright
backward_vec2 = source.MVAnalyse(isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1, pelclip=sup)
backward_vec1 = source.MVAnalyse(isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1, pelclip=sup)
forward_vec1 = source.MVAnalyse(isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1, pelclip=sup)
forward_vec2 = source.MVAnalyse(isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1, pelclip=sup)
source.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1, pelclip=sup)
Pretty damned good! It's a lot better than the HQDN3D / DeGrainMedian / FFT3dfilter mess I tried the other day.
It still needs sharpening for sure, and maybe even more denoising. The aliasing is bad on some frames.. maybe not in the sample I provided.
~MiSfit
*.mp4 guy
16th March 2008, 01:14
I'm not sure if the sharpness issue is fixable, the combination of aliasing, bluring, rigning, oversharpening and noise is rather intractable, anything that fixes one thing makes atleast one other problem worse. This (http://rapidshare.com/files/99853014/Pres.avi.html) is the best I managed, with an extremely slow (frames per minute) script.
Blue_MiSfit
16th March 2008, 03:36
Yeah its a brutal source :)
Thanks for your input. What script produced that?
~MiSfit
scharfis_brain
16th March 2008, 05:57
@*.mp4 guy: you applied to much sharpening to this source for my taste. It looks like an oil painting.
This is my progress so far without any sharpening:
http://rapidshare.com/files/99894759/Untitled.m2v.html
loadplugin("c:\x\DGDecode.dll")
loadplugin("c:\x\tivtc.dll")
loadplugin("c:\x\nnedi.dll")
loadplugin("c:\x\checkmate.dll")
loadplugin("c:\x\ttempsmooth.dll")
loadplugin("c:\x\mvtools.dll")
blksize=16
pel=2
lambda=128
source=mpeg2source("C:\forum\Blue_MiSfit\president.demuxed.d2v",cpu=6)
# AntiDotcrawl
input=source.crop(0,100,0,-108)
out1=input.checkmate()
out2=input.checkmate(tthr2=0)
out3=out2.mergechroma(out1)
# IVTC
out3.tfm(pp=0).tdecimate()
# AntiAliasing & Upsizing to 16x9 anamorphic
pre=nnedi(dh=true,field=1).lanczosresize(input.width,360)
# MoComped Denoising
vf2=pre.MvAnalyse(BlkSize = BlkSize, Pel = Pel, isB = False, Chroma = True, idx = 1, TrueMotion = false, Sharp = 2, Lambda = Lambda, Overlap = BlkSize/2, Delta=2)
vf1=pre.MvAnalyse(BlkSize = BlkSize, Pel = Pel, isB = False, Chroma = True, idx = 1, TrueMotion = false, Sharp = 2, Lambda = Lambda, Overlap = BlkSize/2, Delta=1)
vb1=pre.MvAnalyse(BlkSize = BlkSize, Pel = Pel, isB = True , Chroma = True, idx = 1, TrueMotion = false, Sharp = 2, Lambda = Lambda, Overlap = BlkSize/2, Delta=1)
vb2=pre.MvAnalyse(BlkSize = BlkSize, Pel = Pel, isB = True , Chroma = True, idx = 1, TrueMotion = false, Sharp = 2, Lambda = Lambda, Overlap = BlkSize/2, Delta=2)
cf2=pre.MvCompensate(vf2, idx=1, thSCD2=999)
cf1=pre.MvCompensate(vf1, idx=1, thSCD2=999)
cb1=pre.MvCompensate(vb1, idx=1, thSCD2=999)
cb2=pre.MvCompensate(vb2, idx=1, thSCD2=999)
interleave(cf2, cf1, pre, cb1, cb2)
ttempsmooth(maxr=2, lthresh=8, cthresh=10, lmdiff=3, cmdiff=6)
selectevery(5,2)
addborders(0,56,0,64)
halsboss
16th March 2008, 13:01
"Fluss in Flammen" was classy. Pretty music. Given the low light, was something like the above used ?
*.mp4 guy
16th March 2008, 13:59
The oil painting look is actually from the anti aliasing, the sharpening just makes it stand out more.
scharfis_brain
16th March 2008, 15:48
@halsboss: I used depaninterleave() to compensate the camera shake (Powershot S3-IS) and then denoised with ttempsmooth().
@*.mp4 guy: I got rid of the aliasing with nnedi().
Also I still think that even without the aliasing you sharpening is too much.
Terranigma
16th March 2008, 15:51
pardon my ignorance, but what exactly is checkmate?
scharfis_brain
16th March 2008, 15:54
it is a not well known de-rainbower and anti-dotcrawl filter.
get it here: http://mf.creations.nl/avs/filters/checkmate.dll
It was able to completely kill the dotcrawl in this sample.
Also it reduced noise a bit.
Chainmax
16th March 2008, 16:23
scharfis_brain;1: I don't see the DePanInterleave line, where is it?
scharfis_brain
16th March 2008, 16:31
please re-read halsboss' and my post. It is OffTopic and not related to this video sample.
Avisynth_challenged
17th March 2008, 06:32
it is a not well known de-rainbower and anti-dotcrawl filter.
get it here: http://mf.creations.nl/avs/filters/checkmate.dll
It was able to completely kill the dotcrawl in this sample.
Also it reduced noise a bit.
Can this filter be used on IVTC'd progressive video, or must it be applied prior to deinterlacing, like so many other decrawl/derainbow filters? Can't find any info whatsoever on how to use "checkmate" in Avisynth. (I searched before posting here.)
R3Z
17th March 2008, 12:00
Anyone able to link to a readme for the checkmate plugin ? Not really sure what the parameters stand for.
Hopefully I am not shoot out of luck with PAL dotcrawl!
scharfis_brain
17th March 2008, 12:55
unfortunately it has no readme
it has to be applied before IVTC, like all other rainbow/dotcrawl filters.
tthr2 is some motion-threshold, if I remember correctly.
But it is prone to motion artifacts in the luma channel.
So I called it twice. Once for luma and a second time for chroma.
*.mp4 guy
17th March 2008, 19:19
@halsboss: I used depaninterleave() to compensate the camera shake (Powershot S3-IS) and then denoised with ttempsmooth().
@*.mp4 guy: I got rid of the aliasing with nnedi().
Also I still think that even without the aliasing you sharpening is too much.
I got rid of the aliasing with eedi2, wich is well known for causing such problems, I used eedi2 because it is a stronger alias remover then nnedi. I did over sharpen it a bit to try to compensate for the detail loss, imo its much better looking then what plain double eedi2 produces.
scharfis_brain
17th March 2008, 20:42
have you looked at my sample?
I used the aliasing and nnedi to go for a higher resolution (anamorphic 16x9)
Socio
17th March 2008, 21:35
I got rid of the aliasing with eedi2, wich is well known for causing such problems, I used eedi2 because it is a stronger alias remover then nnedi. I did over sharpen it a bit to try to compensate for the detail loss, imo its much better looking then what plain double eedi2 produces.
You can try SAA it does a pretty good job with the aliasing however it has a side effect of softening the image a bit.
# _______________________________________________________
#
# SAA | Simple Antialiasing
# _______________________________________________________
#
# Simplicity by Soulhunter... \m\ ^_^ /m/
# _______________________________________________________
#
#
# Requirements:
#
# SangNom.dll
# 100GHz CPU
#
#
Function SAA(Clip Clp,Int"SS",Bool"CP")
{
OX = Clp.Width
OY = Clp.Height
SS = Default(SS,2)
CP = Default(CP,True)
Clp = Clp.IsYV12() ? Clp : Clp.ConvertToYV12()
Clp.PointResize(OX*SS,OY*SS).SangNom().TurnRight()
\ .SangNom().TurnLeft().BilinearResize(OX,OY)
CP ? Last : MergeChroma(Clp)
Return(Last)
}
scharfis_brain
18th March 2008, 04:15
SAA uses Sangnom which is prone to artifacting, so I won't recommend it on critical footage.
canuckerfan
18th March 2008, 05:33
^slightly off-topic but that doesn't mvbob also use sangnom?
scharfis_brain
18th March 2008, 05:35
only, if the user wishes so (speeeeed).
th default is nnedi or eedi2, if I remember correctly.
R3Z
19th March 2008, 04:35
unfortunately it has no readme
it has to be applied before IVTC, like all other rainbow/dotcrawl filters.
tthr2 is some motion-threshold, if I remember correctly.
But it is prone to motion artifacts in the luma channel.
So I called it twice. Once for luma and a second time for chroma.
Thanks scharfis :thanks:
Blue_MiSfit
19th March 2008, 05:29
wow guys, thanks for the awesome ideas! I've been on the road, but I will give it a try tomorrow!
~MiSfit
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.