We'll see how this goes through the reflector.
For a 4:3 display, here's the progression from source to display.
16:9 source image.
Decoded 720x480 image.
Crop to 540 wide image.
4:3 display image.
For a 16:9 display, nothing needs to be done. The original
source is 16:9. The physical dimension of the 16:9
display will "stretch" the 720x480 decoded image.
The key here is that the presence of display_horizontal_size
different than horizontal_size is signaling that the original
source is 16:9. The 540 value tells you what to do for
4:3 displays, but it's irrelevant for 16:9 displays.
BTW, VLC is available for Mac OS X, so you
can play the test file if you want to. But don't you
think it's a little weak that a Mac can't play a
Transport Stream out of the box? ;)
http://www.videolan.org/vlc/download-macosx.html
Previous versions can be found here. I've tested the
Windows executable of 1.0.5, and it works correctly.
http://download.videolan.org/pub/videolan/vlc/
In other news, VLC was just deleted from the Apple
AppStore.
http://apple.slashdot.org/story/11/01/07/2341227/Apple-Pulls-VLC-Media-Player-From-AppStore
Ron
On 1/8/2011 6:59 AM, Craig Birkmaier wrote:
At 4:19 AM -0800 1/8/11, Ron Economos wrote:
It's a trick question. It's just a good
example of the
complexity associated with digital video aspect ratios.
The answer is that the decoder display process
(when set for 16:9 output) should just consider it
to be a 16:9 image and not perform any scaling
or cropping at all.
I don't think that this is true given the original question; the
use of the display_horizontal_size syntax adds another processing
step beyond simply decoding and presenting the samples.
Horizontal scaling is always required when using 720 x 480 as both
the 4:3 and 16:9 samples are not square. Square pixel 720 x 480
creates a 3:2 aspect ratio.
A specification that discusses this is here:
http://www.etsi.org/deliver/etsi_tr/101100_101199/101154/01.04.01_60/tr_101154v010401p.pdf
See section 5.1.3
To see what different decoders do, I've uploaded a
short 720x480 bitstream with 4:3 aspect ratio and 540
display_horizontal_size. The source content is 16:9.
http://www.w6rz.net/artest.ts
Unfortunately I am not equipped to play MPEG-2 TS streams. Would
love to see these results to see if the displayed image is indeed
only 540 samples in the H axis rather than 640. IF there are no
Pan and Scan offsets then the proper method of decoding would be
to center cut the 540 from the decoded 640 samples.
Regards
Craig
|