PDA

View Full Version : 720p to 480p help


dvwannab
23rd March 2007, 23:41
All,

I am having problems converting a 1280x720p 59.94 file to 720x480p for DVD creation.

I used DGIndex 1.4.3 (honor all pulldown flags checked) to create *.d2v. I used this script from a previous thread:

LoadPlugin("C:\Program Files\avisynth 2.5\plugins\undot.dll")
LoadPlugin("C:\Program Files\avisynth 2.5\plugins\BT709ToBT601.dll")

MPEG2Source("f:\1workfolder\working\disc4\game.d2v")

BT709ToBT601()

SelectEven()

UnDot()

LanczosResize(704,480)

addborders(8,0,8,0)

converttoyv12()

Encode using TMPGEnc 2.5 Plus as Top Field First, progressive, 16:9.

I burn to DVD-RW and the playback on the standalone stutters on any movement.

What can I do to fix this problem? Thanks.

Blue_MiSfit
23rd March 2007, 23:57
Could be several things.

1) Maybe your script is not handling the 720p60 correctly. Is the material true 59.94 progressive? In other words, if you just load the source (with pulldown flags honored), what do you see when you step through frame by frame? Just doing SelectEven will get you 29.97p output (assuming true 59.94p input), which kills half the motion. You would ideally convert 59.94p to 59.94i (Standard NTSC), to preserve the motion at the cost of vertical resolution. This is assuming standard NTSC TV of course. Do you have a progressive scan TV (LCD etc)?

2) Maybe you encoded at too high a bitrate, and your DVD player is choking.


~MiSfit

neuron2
24th March 2007, 01:08
If it is telecined, you would need to do this:

selecteven()
decimate(5)

Omitting the last step, which returns it to film rate, is a common cause of juddering.

You might also need a field matcher at the beginning, depending on whether the fields are already aligned.

For DVD, apply 3:2 pulldown after returning it to film rate. Field repeats make a smoother result than frame repeats.

dvwannab
24th March 2007, 02:52
Hi all. The recording was of an ESPN-HD college basketball broadcast which uses 59.94 fps progressive. So definitely not film or telecined. NTSC progressive I believe is correct. The encoding was 5500 Mbps 2-pass VBR (max 9000 min 2000).

I do have a plasma TV. So are you suggesting I encode to 29.97 interlaced instead?

neuron2
24th March 2007, 05:30
Post an unprocessed sample clip.

Blue_MiSfit
24th March 2007, 05:37
Indeed. Sample clip.. Sample clip...

What do you think Neuron2? If it's true 60p, would he be better off converting to 60i, or 30p? Maybe a really boss conversion to 30p with MVFlowFPS or something?

~MiSfit

neuron2
24th March 2007, 06:38
For sports I'd leave it at 60i.

Let's see the sample, though.

dvwannab
24th March 2007, 07:16
clip can be found here at badongo:

http://www.badongo.com/file/2553873


DGIndex info:

http://img245.imageshack.us/img245/3387/dgindexlx0.jpg

oh oh, think I see where I may have messed up. Should be Bottom Field First

neuron2
24th March 2007, 07:58
oh oh, think I see where I may have messed up. Should be Bottom Field First Doesn't matter, because it is progressive. The problem is that you decimated away half the motion.

Try this:

LoadPlugin("dgdecode.dll")
MPEG2Source("clip.d2v")
assumetff()
separatefields()
selectevery(4,0,3)
weave()

Then encode it as TFF interlaced 29.97 for your DVD.

zambelli
24th March 2007, 08:40
Also, since you're scaling down from a higher res source, there's no need to crop to 704. Instead, do this:

LanczosResize(720,492)
Crop(0,6,720,480)

The geometry will be the same as in scaling to 704x480, but you will now have a full 720x480 image.

scharfis_brain
24th March 2007, 08:52
hmm. I would just encode as 704x480...

dvwannab
24th March 2007, 18:36
ok, thanks all for insight & input. Will give new script a whirl.

dvwannab
27th March 2007, 02:25
UPDATE:

Neuron2's script above worked. Video stabilized and playing smoothly. :thanks:

Must have been the SelectEven() that was causing the judder in the playback. :stupid: but who knows.

Thanks guys.

Final script for anyone interested:

LoadPlugin("dgdecode.dll")
MPEG2Source("clip.d2v")
LanczosResize(704,480)
addborders(8,0,8,0)
assumetff()
separatefields()
selectevery(4,0,3)
weave()

neuron2
27th March 2007, 04:02
Must have been the SelectEven() that was causing the judder in the playback. :stupid: but who knows. I know. That's why I said this in my post:

"The problem is that you decimated away half the motion."

That's what the SelectEven() did.

dvwannab
27th March 2007, 15:48
Neuron2,

So in essence there is no way to covert 720p 59.94 fps NTSC to 480p 29.97, correct? Should only go to 480i if clip has not been telecined. If telecined to 720p 59.94 use an IVTC script and encode to 480p 23.97 fps. Correct?

Leak
27th March 2007, 16:00
So in essence there is no way to covert 720p 59.94 fps NTSC to 480p 29.97, correct?
Well, your first script did exactly that, and it did so correctly... but 29.97FPS just isn't as smooth as 59.94FPS, period.

Blue_MiSfit
28th March 2007, 00:54
Exactly. The reason 480i looks smoother is that interlaced video has twice the temporal resolution of progressive video at the same frame rate.

If you really want a progressive output, but want to keep the smooth motion, you can try using MVTools.

Rough script:

MPEG2Source("foo.d2v")
num=30000
den=1001

#Convert 720p60 to 480p60
LanczosResize(704,480)
addborders(8,0,8,0)

#Convert 480p60 to 480p30
backward_vec = last.MVAnalyse(isb = true, truemotion=true, pel=2, idx=1, blksize=8)
forward_vec = last.MVAnalyse(isb = false, truemotion=true, pel=2, idx=1, blksize=8)
MVFlowFps(backward_vec, forward_vec, num, den, ml=100, idx=1)



Worth a try, though it will probably not look as smooth as 480i.
There are also other functions for frame rate conversion in MVTools. Read the docs and experiment! :)

~MiSfit

foxyshadis
28th March 2007, 15:48
Actually mvflowblur is probably the one you'd want to use. Motion blur helps smooth out a decimation quite a bit, whereas mvflowfps will mainly tend to just introduce artifacts. On the other hand motion blur sometimes lowers compressibility a bit, you have to test.

davidhorman
28th March 2007, 17:14
I can't imagine either of those techniques doing much to improve the situation - surely mvflowfps from 59.94 to 29.976 is going to be no better than selecteven, and mvflowblur won't really make the video any smoother - in my experience it also looks terrible when it misses, leading to part-blurred, part-sharp footage.

David