VLC-suggestions / 16:9 television mode

Rudolf Cornelissen rag.cornelissen at inter.nl.net
Sun Oct 14 23:56:16 CEST 2001


Hello again,

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 
output).
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 
blurrier).


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 
nice already...

(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 
Windows9x afaik).)

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.


My background:
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!)


Rudolf Cornelissen.





More information about the vlc-devel mailing list