Log in

View Full Version : DVD To HD Conversion


Oline 61
6th May 2006, 02:46
Hello everyone. I've been trying to use the vast array of available AVISynth plugins and, of course Didee's scripts to bring The Matrix Reloaded up to 1280x528. Here is what I have so far:
MPEG2Source("VTS_01_1.d2v",idct=7)

DoubleWeave().PullDown(0,3)
Crop(0,64,720,352)
ColorMatrix()

fft3dfilter(sigma=1)

a=last.BicubicResize(1280,528)
b=LimitedSharpen2Beta( dest_x=1280, dest_y=528, ss_x=(1280.0/720.0), ss_y=(528.0/352.0), Smode=4,
\ strength=200, soft=33, Lmode=1, wide=true, overshoot=0, undershoot=0, edgemode=0)
Soothe(a,b,32)

BlindDeHalo3( rx=3.0, ry=3.0, strength=80,
\ lodamp=4.0, hidamp=4.0, sharpness=0.0, tweaker=0.0,
\ PPmode=0, PPlimit=0, interlaced=false)
I am happy with it for the most part. On dark objects with light backgrounds there is still significant haloing. The script doesn't quite have the "HD" feel I want from it yet. High motion scenes look a little artifacted. I want to deblock the source, but every arrangement of Deblock_QED settings seems to blur too much and remove details.

Does anyone have any recommendations? I'd like to make this a thread with a lot of filter chains from many different people, so that there is a centralized reference for people who want to enhance their DVD backups. Please, post your scripts and ideas.

Oline 61
7th May 2006, 01:54
I've messed around some more, mostly sticking with LSF and FFT3dFilter. I come armed with screenshots :).
MPEG2Source("VTS_01_1.d2v",idct=7)

DoubleWeave().PullDown(0,3)
Crop(0,64,720,352)
ColorMatrix()

fft3dfilter(sigma=1)

a=last.BicubicResize(1280,528)
b=LimitedSharpenFaster( dest_x=1280, dest_y=528, ss_x=(1280.0/720.0), ss_y=(528.0/352.0), Smode=4,
\ strength=300, soft=33, Lmode=1, wide=true, overshoot=0, undershoot=0, edgemode=0)
Soothe(a,b,32)
http://img64.imageshack.us/img64/3855/00006pc.png
^I like this one. Closeups and low motion scenes look very good.
http://img64.imageshack.us/img64/3007/00017dn.png
^And here we have the problem that is apparent in most high motion scenes. I think deblocking might help. It doesn't help that this is a very high motion movie.
http://img64.imageshack.us/img64/8412/00027ko.png
^Again, closeups and low motion look good.

Can anyone recommend a script to me? I am open to other options such as IIP or SeeSaw. I have a decent PC and plenty of time to encode. I would welcome anyones input.

Pookie
12th May 2006, 00:37
Upsizing never looks perfect

Try them all and see what works best for you. I like SeeSaw a lot, using DegrainMedian(mode=1) as the cleaner/noise reduction plugin. Sometimes using very low sharpening on SeeSaw, then using LimitedSharpen(smode=3) can look pretty nice.

Using Tritical's IVTC and TDEINT will help reduce many artifacts. It'll make a world of difference in the end if you process your source with these great tools.


Didee posted this some time back, and it is worth trying out.
http://forum.doom9.org/showthread.php?t=100114&highlight=tdeint

Oline 61
12th May 2006, 03:29
I'm just IVTCing with DoubleWeave().PullDown(0,3). Since the 3:2 pulldown on The Matrix Reloaded is pretty much perfect, this dumb pulldown combo works great while being much faster than TIVTC or Decomb. TIVTC and Decomb are better put to use on the vast majority of poorly telecined films out there.

I've come up with this, it's slow and it doesn't look all that great. I mainly need help with seesaw and dehaloalpha. I may consider switching to degrainmedian instead of fft.
fwidth = 1280
fheight = 528
MPEG2Source("VTS_01_1.d2v",idct=3)
DoubleWeave().PullDown(0,3)
Crop(0,64,720,352)
source = ColorMatrix()

denoised = source.fft3dfilter(sigma=1,plane=0)

sawed = SeeSaw( source, denoised,
\ ssx=1.25, ssy=1.25,
\ nrlimit=4, nrlimit2=5,
\ sstr=1.1, slimit=5, spower=4,
\ szp=16, sdamplo=5, sdamphi=24,
\ bias=40, soothet=80, soothes=20)

dull = sawed.BicubicResize(fwidth,fheight)
sharp = sawed.LimitedSharpenFaster( dest_x=fwidth, dest_y=fheight,
\ ss_x=(fwidth/720.0), ss_y=(fheight/352.0),
\ Smode=3, Lmode=1,
\ strength=200, soft=25, wide=true,
\ overshoot=0, undershoot=0, edgemode=0)

out = Soothe(dull,sharp,32)

final = out.DeHalo_alpha(rx=1.5,ry=1.5,ss=1.5,darkstr=1,brightstr=1)

return final

Oline 61
13th May 2006, 04:22
I've started messing around with IIP.
http://img131.imageshack.us/img131/2585/0230330gq.png
http://img89.imageshack.us/img89/1913/0171243ek.png
loadplugin("C:\Program Files\AviSynth 2.5\plugins\LoadPluginEx.dll")
loadplugin("C:\Program Files\AviSynth 2.5\plugins\DustV5.dll")

mpeg2source("VTS_01_1.d2v",idct=3)
doubleweave().pulldown(0,3)
crop(0,62,720,352)
colormatrix()

iip( dest_x= 1280, dest_y= 528,
\ ss1_x = 1.414, ss1_y = 1.414,
\ duststr = 2, dustweight = 1.0, antiflicker1= true, antiflicker2= true,
\ detailcontr1= 104, detailcontr2 = 208, contr_radius = 2, PixSharp=0.38,
\ ss2_x = 3.5, ss2_y = 3.5,
\ Xstren = 255, Xlimit = 255,
\ subpelstren= 1.58, flatweight = 0,
\ protect_floor = 0, protect_bias = 16,
\ dering = -80, dering_weight= 1.0, dering_floor = 8, dering_bias=12,
\ detail_floor = 10, EQ = 2,
\ warp_Y = false, warp_UV = false, exborder = false,
\ debug= "protect | dering | compareH|V | showall",
\ cropx=64, cropy=32
\ )
Why does it look so muddy and oversharpened?

DarkNite
13th May 2006, 08:34
I've replaced Dust with FRFun or RemoveNoiseMC and that's worked out well for me on the denoising side.

IIP is a bit touchy in the sense that there are many variables that can make a visible difference with small changes, and the default settings are rarely (if ever that I've seen) what your source calls for.

I've tried a few methods for automating a script generator based on clip comparisons, but nothing works as well, or sometimes as quickly, as the human eye, notepad, and a reload button. :) Happy tweaking!

Oline 61
13th May 2006, 19:05
Aha! I think you found my problem DarkNite. Dust needs to be replaced with something else. I have been getting very good results with FFT3dFilter and some tweaking. I think I may have my final script ready. Now I'm off to find a Cray and about 5 years to encode it.
setmemorymax(256)

loadplugin("C:\Program Files\AviSynth 2.5\plugins\LoadPluginEx.dll")
loadplugin("C:\Program Files\AviSynth 2.5\plugins\DustV5.dll")

mpeg2source("VTS_01_1.d2v",idct=3)
doubleweave().pulldown(0,3)
crop(0,62,720,352)
colormatrix()

fft3dfilter(sigma=1)
iip( dest_x=1280, dest_y=528,
\ ss1_x=1.414, ss1_y=1.414,
\ duststr=0, dustweight=0.0, antiflicker1=false, antiflicker2=false,
\ detailcontr1=104, detailcontr2=208, contr_radius=2, PixSharp=0.38,
\ ss2_x=3.5, ss2_y=3.5,
\ Xstren=255, Xlimit=255,
\ subpelstren=1.0, flatweight=0,
\ protect_floor=0, protect_bias=16,
\ dering=-80, dering_weight=1.0, dering_floor=8, dering_bias=12,
\ detail_floor=15, EQ=2,
\ warp_Y=true, warp_UV=false, exborder=false,
\ debug="protect | dering | compareH|V | showall",
\ cropx=0, cropy=0
\ )

DarkNite
14th May 2006, 07:13
Are you using this script for a multipass encoding operation? If so, and you have a fair bit of room, you would be better off encoding to a lossless format first, and then pass that file to your encoder. That could save you days on certain projects.

Right now I use ffdshow's YV12 HuffYUV with predict left, and adaptive huffman tables. It gives me a good balance of speed and compression ratio.

S”nTė£
14th May 2006, 09:18
Another way to maybe quicken the process a few percent is to use the fft3dgpu filter if you have a pretty fast dx9.0b+ gpu. That way your gpu will do a lot of the denoising and your cpu will be free for the other tasks.

Good way to make use of all the processing power in your system. Overclocking your gpu might even quicken the process too, but to be honest I don't know what happens to fft3dgpu if you overclock your gpu to a point where there would normally be artifacts in a game. Has anyone on doom9 ever tried that? (wrong thread to ask I know).

Oline 61
14th May 2006, 18:04
I'm not sure if I have enough room for a lossless encode. Probably have about 30 GB free on my Windows partition.

I will run some tests with FFT3dGPU to see if I have a good speed improvement. I have a 6600GT right now, and I can OC a lot with no artifacts in games.

I am also considering using this script:
mpeg2source("VTS_01_1.d2v",idct=3)

doubleweave().pulldown(0,3)

crop(0,62,720,352)

colormatrix()



fft3dfilter(sigma=1)

hqdering()



LimitedSharpenFaster(ss_x=1.0,ss_y=1.0,Smode=1,edgemode=2,strength=48,radius=2)

LimitedSharpenFaster(ss_x=1.0,ss_y=1.0,Smode=4,edgemode=2,lmode=1,overshoot=0,undershoot=0,strength=96)

LimitedSharpenFaster(ss_x=2.0,ss_y=2.0,Smode=3,edgemode=1,lmode=1,overshoot=0,undershoot=0,strength=250,dest_x=1280,dest_y=528)



BlindDeHalo3(lodamp=3,hidamp=3,PPmode=3)
It looks almost as good as IIP and is a good bit faster. It doesn't have the excellent contrast gain you get from IIP though.

I'll have to do some more tests to see which option is the most viable.

Oline 61
14th May 2006, 20:02
Meh, I stil can't get anything to average over 2 fps, even when encoding to huffyuv. That means 26 hours for huffyuv (which I probably don't have enough hd space for). Xvid is more like 1.75 fps and x264 is more like 1.5 fps. So... I think I'll just go with an anamorphic encode for now. Maybe with upgraded hardware I could do it, but it's not a viable option right now.

foxyshadis
14th May 2006, 20:22
Maybe you could just use tweak or bloom for extra contrast. ;) With all the new filters that have shown up in the last year or two, IIP could use some re-engineering for speed and quality. (And simplicity, hopefully!)

For psuedo-lossless I just use xvid with sharktooth's EHRv3 matrix and slow options disabled, bitrates are half or a third of lossless, but still insanely high. Faster to decode, too.

DarkNite
15th May 2006, 07:30
You're right, 30GB isn't going to get you very far with 720p material. I've never tried what foxyshadis has recommended, but it's piqued my interest even though I haven't much use for pseudo-lossless.