VLC-suggestions / 16:9 television mode
rag.cornelissen at inter.nl.net
Sun Oct 14 23:56:16 CEST 2001
Thanks for responding so quickly (via a modified VLC) after my previous mail.
Thought things over a bit more, and came to the conclusion that VLC needs a
(command line) switch to 'lock' the aspect ratio. Let me explain:
NTSC discs are coded in 720x480,
PAL discs are coded in 720x576.
These formats exist this way because they are designed to be watched on TV.
If you watch 4:3 discs on a 4:3 TV the aspect ratio will be automatically OK
if you read a PAL disc and just 'drop' it on VGA (every pixel in the movie
(say two fields together, even and odd), to every pixel on VGA, maybe relayed
to TV via TV output).
You do not have to correct for the aspect ratio (so no need to resize the
I did not check yet if VLC does this (as far as can be seen).
If you watch 16:9 movies (for example) on a normal TV or VGA, which are also
coded at the same resolution, then you (the DVD playback software) have a
problem because the aspect ratio is wrong. VLC compensates for this by
resizing the output. You see that because VLC generates a 720x576 window
which will always have black 'borders' at the top and bottom. In this mode
VLC should also resize the output window to this comensated playback, which
will be 720x405 for PAL DVD's and 720x405 for NTSC DVD's also (16:9 ratio
while 'maximized' in window).
The only difference between PAL and NTSC at the moment is that on NTSC the
borders will be smaller, and this is 'only natural' I realize now.
OK. Now, you want to display a 16:9 movie (for example, could also be 21:9 or
22:9 etc) on a 16:9 VGA monitor or on a 16:9 TV.
I am not sure if 16:9 VGA exists and if they do/would, if they would have a
resolution mode available that displays 720x576 and another mode that
displays 720x480. They should have this then I think.
In such a case you can imagine that the aspect ratio correction that VLC does
should be turned off. (display 1:1 pixels). Only then the aspect ratio on
such a screen would be correct (the same as the movie is made in).
This goes for 16:9 televisions also.
a 16:9 TV set has two special modes available.
1.: AUTO(WIDE) mode:
stretch the horizontal 720 pixels over the entire horizontal line on TV,
hereby correcting the 720x576 (PAL) or 720x480 (NTSC) resolution to 16:9(!)
(so: he TV does this itself...)
BTW, european 16:9 TV's can display both PAL and NTSC most of the time!
2: ZOOM mode:
stretch the horizontal 720 pixels over the enitre line AND zoom in vertically
by the same amount. This is the mode I currently have to use with VLC because
I cannot turn of the corrected aspect ratio.
This is really a shame because now:
- 405 pixels get displayed on 405 pixels on TV if the TV can adjust the
number of output lines on the CRT (best case scenario);
- or 405 pixels get recalculated to be displayed on 576(PAL) or 480(NTSC)
lines on the TV by the internal electronics. (worst case scenario: screen is
So: If one can disable the aspect ratio correction in VLC one can view the
DVD in a very crisp, 'sharp image' way if one has a 16:9 TV-set....
I suspect that also the moirre patterns exhibited by VLC now sometimes will
be gone on TV then...
Did I mention the lower CPU usage then because VLC does not have to 'resize'?
So: what I would do in VLC:
- include a user 'switch' (commandline/startup would be sufficient I suppose)
to correct the aspect ratio for display on 4:3 output devs, or to leave it as
it is for display on 16:9 output devs;
- resize the output window to fixed 720x405 pixels for 16:9 movies if 4:3
output dev is selected, and size the window to 720x480 (NTSC disc) or
720x576(PAL disc) if 16:9 output dev is selected;
- resize vertically to 405 pixels if 4:3 selected, and do not resize at all
if 16:9 is selected.
If I may I would like to ask your attention for two other things also:
- It would be *very* nice if the subtitles (which to my knowledge are on the
discs pixel-wise literally) would be displayed as intended: The nice dark
subtitles with white lines surrounding the characters are difficult to read
on TV (especially if display quality is not optimal), and because one does
not know what typeface / size is used, some discs display completely white
characters, while some others do what VLC intends. Anyway: it's not
consistently the same in all movies.
- The last thing I want to write here will be something that may not be easy
or possible at all, I don't know.
Anyway, what would be really nice also, is if VLC could be locked to fill the
visible display buffer during the vertical retrace period. This would maybe
only be possible without distorting fluent and sync playback if refresh rate
on screen is 50Hz for PAL and 60Hz for NTSC discs, but this would be very
(I suggest the user has the responsibility for setting the correct refresh
rate using OS preferences, or you could try to include this in VLC somehow:
using a driver to detect retrace in conventional I/O VGA compatible space
which every VGA card has: you could even bypass the videodriver and check
registers directly I suspect/think (on BeOS this works anyway, and also in
If this could be done, then playback would not suffer from sudden jumps of (
'horizontal-bar' parts of) the screen (especially visible in fast scenes),
which again would be very nice, also for display on TV which is always at 50
or 60Hz. (user is responsible for selecting PAL for PAL discs and NTSC for
NTSC discs.., or the driver thing sets refresh rate itself..)
One final remark about all this: I am *not* asking to have the option to
enable/ disable 'de-interlacing' in VLC, because VGA is 'always' non-
interlaced anyway and TVout drivers do 'VGA non-interlace to TV interlace'
conversion themselves in practice.
I want to tell you a little bit about myself, it might be handy for you to
judge my stories.
I am an electronics engineer. I design analog/digital/mixed mode electronics/
hardware, and I also write firmware for systems I design. I write
testsoftware on PC sometimes for my hardware, because it mostly connects to
PC's anyway and testing is very important to make 'foolproof' systems.
Nowadays I am also attending a software engineer training to get my second
engineer title and (of course) most importantly, to get more knowledge on how
to engineer software.
I am a BeOS user since R4 and now I am writing my first BeOS program and
driver: BeTVOut. This is a TVout driver so I (we on BeOS) can watch DVD's for
example (using VLC) on TV. Currently I am working on the 'special' DVD modes:
PAL720x576 (just implemented) and NTSC720x480 mode. So I am gaining knowledge
about this almost every day at the moment.
For now I am using RGB VGA mode (all colordepths) as the input for the TVout
solution. It works with 2d and 3d (in theory) acceleration and I suspect that
it would work also with full screen hardware overlay: if the VGA chip
delivers RGB signals anyway. (I want to test this with a GeForce as soon as
VLC supports this 'again' on BeOS with this card..)
Maybe I'll also succeed in using (interlaced) YUV (is it?) VGA to get the
best TV output for DVD possible, but chances are maybe slim for this to
succeed I think.
Well, that's my story for now. Thanks for 'listening' again!
Best regards (and keep up the fantastic work!)
More information about the vlc-devel