Tv-out - Why The Difference In Quality?


Duddyroar

Member
Joined
May 8, 2003
Messages
419
Location
Leicester, UK
Website
www.vc-reviews.com
I was tinkering around with my GP2X cradle at the weekend and was running various emulators through the TV set. I've used it before and noticed that on the main menu and on all of the emulators I'd previously tried, the image is slightly distorted. It's almost like it's being 'stretched' to fit. I assumed this was unavoidable and wasn't too fussed, but then I loaded up Final Burn Alpha at the weekend and was shocked to see that it comes through perfectly, with no distortion.

Why is this, and why doesn't it look that good all of the time?
 
Probably because FBA runs in a 640x480 mode anyway and relies on the GP2X to scale *down* whereas the other games run in the GP2X's 320x240 mode, and rely on the GP2X to scale *up* for TV-out.

The GP2X has a hardware scaler so that the programmer doesn't need to worry about which resolution they are running, it just scales it to fit the screen. And the TV-Out mode gives it a larger screen than the internal LCD. If people design for 320x240, then it'll look blocky when it goes to TV-Out, but it won't need the hardware scaler to do anything for display on the internal LCD. If people design for 640x480, then it'll look perfect on the TV, be "missing" pixels on the internal LCD and also needs the hardware scaler to do a bit of work on it's behalf when it's running on the internal LCD.

It's all a trade-off between speed, CPU use, quality, etc. More likely, though, FBA2X was ported to deliberately use the 640x480 resolution or it's code relied on it running at that resolution in the first place.
 
Ah, that makes sense.

Would it not be possible for people to add 640x480 support to other emulators, or would that have a negative impact on the image quality and/or speed of emulation?

I suspect consoles like the Megadrive would have to be stretched to fill a 640 x 480 res display?
 
Duddyroar said:
Would it not be possible for people to add 640x480 support to other emulators,
Yes

Duddyroar said:
or would that have a negative impact on the image quality and/or speed of emulation?
Possibly (it depends how they operate, what facilities of the GP2X they use, how close they are to "the limit" on performance etc.). And it might have a negative impact on the image quality for some emulators, if they are being scaled down in a way in which the programmer cannot precisely determine. Text would shrink etc.

Duddyroar said:
I suspect consoles like the Megadrive would have to be stretched to fill a 640 x 480 res display?
I don't know exactly off-hand but I do know that the TV-out resolutions are exactly the same as the TV is capable of (they even differ for NTSC/PAL properly, so it's really 728x576 for PAL etc.). Most Megadrives output at PAL or NTSC quality. :D But there's a lot to take account of - display interlacing, etc.

It may be that the Megadrive only used a lower res internally but did the same trick as the GP2X - i.e. ramped it up just before it was to be displayed on the TV. The SNES did that, I think, as did many old arcade machines. In that case, you'd gain nothing but a performance drop. But some emulators run at higher resolutions than 320x240, or allow you to do 640x480 with *their* style of smoothing (e.g. Eagle, Scale2x, 2xSAI etc.) so that it doesn't appear blocky at all. You're talking massive performance hit for the latter, though.

I know that a lot of MAME games are bigger than the GP2X screen and don't scale down nicely, and TV-out is able to help there, but for the majority of things, the performance of blitting four times as many pixels through memory all the time is not worth it.
 
Last edited by a moderator:
Fishbong said:
I guess the difference is only visible on a LCD TV, on a CRT one everything looks fine even on the low resolution.
Not on mine! I probably should have said but I'm running my GP2X on a 28" CRT televison set and the visuals look distorted.
 
Last edited by a moderator:
The way the GP2X communicates with the TV-Out chip is not fully understood, and yes it does drop lines of resolution resulting in shoddy output with most 320x240 modes.
 
Tvs run at 720x480 or 720x576, which is the reason why things look stretched - 320x240 gets scaled to the equivalent of 360x240 or 360x288 (if tvs ran at 640x480 there wouldn't be any problem - the image would just double and not be stretched). The few gp2x apps that look ok on a tv render a 320x240 image to the centre of a 360x240 or 260x288 display so it will scale up nicely.
 
woogal said:
Tvs run at 720x480 or 720x576, which is the reason why things look stretched - 320x240 gets scaled to the equivalent of 360x240 or 360x288 (if tvs ran at 640x480 there wouldn't be any problem - the image would just double and not be stretched). The few gp2x apps that look ok on a tv render a 320x240 image to the centre of a 360x240 or 260x288 display so it will scale up nicely.
You may be confusing SDTV, EDTV, and HDTV resolutions. Duddy is using a CRT, most likely at SDTV 4:3 aspect, and if NTSC, a 640x480 resolution (depending on the horizontal line support of his TV). My old rear projection does an awesome job displaying the GP2X at 54" but I just can't fix the overscan. That leaves a couple of inches on either side in the nevernever, but manageable to watch and play on. LCDs or Plasma screens should be able to compensate by forcing the 4:3 aspect the GP2X supports on the input you are giving it (i.e. S-Video, Composite). If not, then you have no choice but to be disappointed with a stretched picture.

However, all the discussion here points to the fact that the output resolutions of consoles differ and have to be taken into consideration for fullscreen display. The GP2X developers scaling efforts are based on the capability of the video renderer on the GP2X and don't necessarily offer multiple resolution settings such as their PC counterparts do. If those capabilities were better understood (as was pointed out) it may be that the TV out displays will improve.

Then again, I play exclusively on the GP2X screen and turn off scaling so I have liked everything I've seen so far.
 
Last edited by a moderator:
fishybawb said:
NTSC is 720 x ~480/576 like woogal said, not 640 x 480.
The original NTSC video frame is 525 vertical lines with 21 lines each for blanking intervals (informational data), leaving 483 lines for video, of which an original aspect ratio of 4:3 produces 644 columns of square pixels ( (525-42)*4/3 ). The "accepted" resolution effectively is 640x480. Now, I knew most of this already but had to read up some more, so thanks for that. I learned something new.

What you are referring to are digital standards.

P.S. I actually read up on this and paraphrased. I had forgotten all this stuff. So much for my EEE and Computer Engineering curriculum. I should have finished my entire degree. :(
 
Last edited by a moderator:
bman said:
The original NTSC video frame is 525 vertical lines with 21 lines each for blanking intervals (informational data), leaving 483 lines for video, of which an original aspect ratio of 4:3 produces 644 columns of square pixels ( (525-42)*4/3 ). The "accepted" resolution effectively is 640x480. Now, I knew most of this already but had to read up some more, so thanks for that. I learned something new.
Although the aspect ratio of NTSC is 4:3, the resolution is 720 x 486(ish). That sounds strange, but it's because NTSC TV pixels aren't actually square ;)
 
Last edited by a moderator:
fishybawb said:
bman said:
The original NTSC video frame is 525 vertical lines with 21 lines each for blanking intervals (informational data), leaving 483 lines for video, of which an original aspect ratio of 4:3 produces 644 columns of square pixels ( (525-42)*4/3 ). The "accepted" resolution effectively is 640x480. Now, I knew most of this already but had to read up some more, so thanks for that. I learned something new.
Although the aspect ratio of NTSC is 4:3, the resolution is 720 x 486(ish). That sounds strange, but it's because NTSC TV pixels aren't actually square ;)

You are correct since you are talking about D-1 NTSC which uses rectangular pixels. My keyword was "original".

Duddyroar is using a CRT whose vertical resolution was determined by the manufacturer. We can at least agree that the NTSC horizontal standard encompasses 480 lines. Since I don't know the brand and model I simply referenced the original analog specifications that apply to most CRTs (Tube based Televisions).

Now that I apparently contributed nothing to this thread, I will defer to any technical wiz that actually codes these emulators to tell us what the obstacles to proper scaling are.
 
Last edited by a moderator:
woogal said:
The few gp2x apps that look ok on a tv render a 320x240 image to the centre of a 360x240 or 260x288 display so it will scale up nicely.
What will the SDL implementation (the HW one) do with an 360x240 pixel surface for displaying on the LCD?
Does it scale it down? So i would get black stripes on the sides. Or will it "magically" cut out
the 320x240 pixels for the LCD?
 
Last edited by a moderator:
Back
Top