View Full Version : 720p -> which target, 576i or 576p ?
halsboss
28th October 2006, 02:14
What is your preference as a target for a PAL DVD format for smooth playback on a TV - downconvert to 576i@25fps or 576p@25fps ?
Source is 720p50fps (1280x720p@50fps).
Is it even possible to script PAL 720p @50fps to 576i @25fps ? Given 16x9 and converting with HC, is this it ?
assumetff().separatefields().Lanczos4Resize(720,576).selectevery(4,0,3).weave()
For PAL 720p @50fps to 576p @25fps ? Given 16x9 and converting with HC, is this it ?
trim(1,0) #comment this line, if you get horrible blending
merge(last,last.trim(1,0)).Lanczos4Resize(720,576).selecteven()
foxyshadis
28th October 2006, 02:52
If you're going to DVD, 50i is often best option. After all, DVDs are designed for interlaced material, and you keep the most fluidity, but it doesn't always matter. If you're going to keep it on the computer, 25p is usually easier so that you don't have to deinterlace on playback and the bitrate cost is less. But if it were on computer, you could just keep 50p for very little extra overhead.
In the end, the best choice is to make both (short test segments) and figure out which one works better with your material.
Why do you blend in the second, though? A straight resize+selecteven would compress much better. If it's motion fluidity you want, interlaced is much better; if it's motion blur, you're better off with a couple of motion blur functions scharfis has posted.
zambelli
28th October 2006, 03:22
Is it even possible to script PAL 720p @50fps to 576i @25fps ? Given 16x9 and converting with HC, is this it ?
assumetff().separatefields().Lanczos4Resize(720,576).selectevery(4,0,3).weave()
The resize to 720x576 is in the wrong place.
Here's the corrected script:
ConvertToYUY2()
LanczosResize(704,576)
AddBorders(8,0,8,0)
AssumeTFF()
SeparateFields()
SelectEvery(4,0,3) # top field first
Weave()
I added a change to YUY2 in order to make sure chroma ends up in the right place once it's interlaced.
For PAL 720p @50fps to 576p @25fps ? Given 16x9 and converting with HC, is this it ?
You can experiment with MVfps for a motion comp'ed framerate conversion, but generally throwing away all odd frames is the cleanest and quickest way to go.
halsboss
28th October 2006, 03:37
Thanks.
Is this the version of mvfps that you use ?
(or is there one that uses a newer version of mvtools, say Fizick's 1.4.13 ?)
function mvfps(clip i, float fps, int "oversample", int "blurradius")
{
oversample=default(oversample,1)
blurradius=default(blurradius,1)
j=i.temporalsoften(2,4,5,2)
fwd=mvtools0962_mvanalyse(j,isb=false,lambda=4000)
bwd=mvtools0962_mvanalyse(j,isb=true, lambda=4000)
i.mvtools0962_mvconvertfps(bwd,fwd,fps=fps*oversample)
(oversample>1) ? last.temporalsoften(blurradius,255,255,mode=2).selectevery(oversample,0) : last
}
Finally went with your corrected code as input to HC
#ConvertToYUY2(interlaced=false)
Lanczos4Resize(704,576)
#Convolution3D(0, 6, 10, 6, 8, 2.8, 0)
AddBorders(8,0,8,0)
AssumeTFF()
SeparateFields()
SelectEvery(4,0,3) # top field first
Weave()
Converttoyv12()
zambelli
28th October 2006, 11:03
Thanks.
Is this the version of mvfps that you use ?
(or is there one that uses a newer version of mvtools, say Fizick's 1.4.13 ?)
Actually, I usually use ConvertMCfps() from MVBob script.
Converttoyv12()
If you're going to convert to YV12 at the end, make sure you use ConvertToYV12(interlaced=true).
IanB
28th October 2006, 14:17
@halsboss,
For the best results, you should evaluate what the original source of your 720p material was.
If it was Film then chances are every 2 frames will be the same and a simple discard conversion straight to 25p will be best.
If it was true 50 frames/sec high def video or good upscaled 50i video then you need to consider your playback environment. For watching on a TV go the 25i route. For watching on a PC, you want the 25p route, possible using some motion blur depending on the content and your preferences.
Awatef
28th October 2006, 16:55
If it is real 50fps, I would go the interlaced way, since deinterlacers of recent software DVD players are very good with truly interlaced sources. So you enjoy full fluidity on TV, and the result on PC is more than acceptable.
halsboss
29th October 2006, 03:22
Thanks, using HC as encoder so
if is Film source then chances are every 2 frames will be the same and a simple discard conversion straight to 25p will be best, via
#ConvertToYUY2(interlaced=false)
Selecteven() # or SelectEvery(2,0) to keep 1st frame discard 2nd, or SelectEvery(2,1) to keep 2nd frame discard 1st ?
Lanczos4Resize(704,576)
AddBorders(8,0,8,0)
Converttoyv12(interlaced=false)
if not Film, use interlaced for better fluidity than discarding 2nd frame, make it into 25i instead
#ConvertToYUY2(interlaced=false)
Lanczos4Resize(704,576)
AddBorders(8,0,8,0)
AssumeTFF()
SeparateFields()
SelectEvery(4,0,3) # top field first
Weave()
Converttoyv12(interlaced=true)
Hmm, Vdub playing up on me and wont display image single-stepping forward frames (even scrolling a bunch forward) from the source mpv. Created a raw AVS from the dgdecode d2v and same result. Vdub saved to a Huffy AVI and reduceby2 and opened that and it still won't display frames single-stepping. Must be doing something wrong big time. Is there any other way to tell "every 2 frames will be the same" ?
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.