View Full Version : What filters should I try with analogue interlaced video -> NTSC DVD
Morte66
28th January 2007, 12:53
I don't do much encoding from DVDs based off analogue video, but I'm about to get stuck into 8 or 9 seasons of "Roseanne". Here's a clip: http://rapidshare.com/files/13768970/R201clip.m2v.html
This is new territory, and whilst I'm quite happy to experiment and run tests I have no real idea what I should be experimenting with. So far I'm thinking...
- I'm looking to make 720x480 backups with x264 at crf ~22. I want reasonable speed, the avisynth script can slow things but not more than say fft3dfilter() would. Well, not unless it's wonderful.
- I'll blend deinterlace before encoding. I tried bobbing, either before encoding or on playback of an interlaced encode. But it seems the motion is just not that important on this material and going to 60fps means I have to use bicubic resize instead of spline on playback. The blend looks better than the bob in practice.
- I tried ReduceFlicker (I saw it mentioned in a thread about bobbing) before the deinterlace, and it seems pretty useful on this material. I'm playing around with the parameters now.
- I want to denoise. With most DVD I'd use something like fft3dgpu (bt=0, plane=4). Does that seem reasonable, or does anybody think "you should also try denoiser X"? I will probably add a little noise in ffdshow on playback to give it some texture.
- I'm not much of a sharpener, but I normally throw in a "sharpen=0.5" with the fft3dgpu call since it's free and AFAICT it never does any harm. But I think this material might benefit from fancier sharpening or detail enhancement. Suggestions?
So, what else do you guys think I should try out?
Blue_MiSfit
29th January 2007, 12:58
When I use fft3dfilter/gpu, I generally like to have two instances of it, one for chroma and one for luma. I typically apply stronger chroma denoising, and gentler luma denoising. Vice versa for sharpening - usually none for chroma, and more for luma... IE
fft3dgpu(sigma=3, plane=3)
fft3dgpu(sigma=1.5, plane=0, sharpen=.7)
removegrain(mode=5)
The removegrain is just in there by default, it may or may not help.
I have tried some of the new sharpeners like SeeSaw and LimitedSharpenFaster, but have never been able to tune them into something that I find visually pleasing (and still be somewhat compressible).
I also like adding (luma) noise on playback, and find that this (after applying lanczos / spline resize) usually looks better to me than sharpening before encoding.
What about tdeint(mode=1).selecteven()? It's a good same-rate bob...
~MiSfit
Morte66
30th January 2007, 10:53
When I use fft3dfilter/gpu, I generally like to have two instances of it, one for chroma and one for luma. I typically apply stronger chroma denoising, and gentler luma denoising. Vice versa for sharpening - usually none for chroma, and more for luma...
I tried that, and liked what I got. In particular, the luma-specific sharpening tones down "exploding sweater syndrome", where colour patterns get sharpened more than everything else and leap out of the picture.
I also like adding (luma) noise on playback, and find that this (after applying lanczos / spline resize) usually looks better to me than sharpening before encoding.
I do a bit of both. Pre-sharpen for lines/edges, post-noise for a hint of texture on smooth areas.
What about tdeint(mode=1).selecteven()? It's a good same-rate bob...
Looked a bit soft, maybe. I mildly prefer plain TDeint().
I've had all sorts of grief with deinterlacing.
The material is mostly interlaced with some telecined sections, most of which are opening/closing titles. There are some bad edits, scene blends, incorrect pulldown flags, and encoder glitches. I tried doing a VFR encode to matroska using TFM/TDecimate in two-pass mode creating a timecodes file, but it didn't decomb fully. Vinverse() didn't fully remove the residual combs. So I decided to just blend it and accept duplicate frames in the titles. It looks fine, which is what really matters to me.
It also turns out that ReduceFlicker() throws off TDeint() if used before deinterlacing per the instructions. I gave it a try after deinterlacing and it still seems pretty useful, much better than not having it.
So I've settled on the following:
DGDecode_mpeg2source("D:\MeGUI\R 201 Inherit the Wind\R 201 Inherit the Wind.d2v",info=3)
TDeint()
ReduceFlicker(strength=1)
ColorMatrix()
fft3dgpu(bt=0,sigma=3, plane=3)
fft3dgpu(bt=0,sigma=1.5, plane=0, sharpen=0.7)
The batch is under way, and running almost the same speed as a progressive encode, which is nice. Now I have to check why episode 4 came out 50% bigger than all the others...
Thanks for your help.
*.mp4 guy
30th January 2007, 12:06
Well I couldn't resist taking a shot at it (while trying to keep things sort of fast)
anyway this script gives me pretty nice results
MPEG2Source("R201clip.d2v", cpu=0, info=3).colormatrix(hints=true).crop(10,4,-6,-0)
Tdeint()
fluxsmooth = last.fluxsmoothST(5,5)
repair(fluxsmooth, last, mode=8)
sharp = yv12lutxy(removegrain(last, mode=11),last,"y x - 0.5 * y +",y=3,u=2,v=2)
repair(sharp, last, mode=1)
degrainmedian(mode=3)
removegrain(mode=1)
fft3dgpu(bw=16, bh=16, bt=3, sigma=2, sigma2=3, sigma3=5, sigma4=8, plane=3, precision=1)
converttorgb24()
GiCoCu("C:\roseanne colorfix")
converttoyv12()
gradfun2db()
The source has horrible colors (lots of red that shouldn't be there, tan whites) so I made some color curves in the gimp to fix the problem. The colors should look more like this (http://img112.imageshack.us/img112/9562/colorsuf8.png).
# GIMP Curves File
0 0 12 0 30 13 -1 35 58 42 -1 -1 -1 -1 115 114 -1 111 -1 -1 -1 -1 174 200 -1 201 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 28 42 27 -1 -1 -1 -1 -1 -1 119 109 -1 108 -1 -1 -1 -1 -1 -1 -1 187 203 183 -1 -1 -1 255 251 255
0 0 16 16 -1 41 41 41 66 72 -1 127 -1 151 -1 131 125 124 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 130 121 129 -1 -1 -1 -1 179 195 -1 180 211 255 -1 -1 -1 -1 255 255
0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 255 255
Just paste it into a text file and load that file with GiCoCu, or make your own set of curves and do the same to fix the colors.
Morte66
30th January 2007, 14:43
Well I couldn't resist taking a shot at it (while trying to keep things sort of fast)
The words "holy cow" spring to mind. You've used a bunch of filters I've never even heard of. It looks great stepping the script in VirtualDub, I'll run an encode later. I especially like the colour correction.
Morte66
30th January 2007, 17:11
After a quick encode of M4G's script, I find...
- Speed is acceptable.
- There's still some flicker. It's unobtrusive when single stepping in VirtualDub at normal size, but it leaps out at me on fullscreen playback. E.g. the plastic fruit on the table, the rainbow on the fridge door, and the drinks can which Darlene places on the table. I put ReduceFlicker(Strength=1) after TDeint() and I was fairly happy with the effect -- the flicker no longer bothers me, and I don't notice extra motion trails.
- It's a bit contrasty and the shadows are dimmer than I'd like. My setup is already configured to stretch the histogram to suit typical DVD playback, and any more contrast can get OTT. So I installed the gimp (haven't used that for years, my how it's all growed up) and altered the global RGB curve to un-chop the bottom end. It's more to my taste now, and I'll fiddle some more.
With all that in the bag, it looks pretty darned good. Thanks a lot. :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.