Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 23:40 25 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : VGA Resolution (color maximite)

Author Message
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 03:43pm 29 May 2012
Copy link to clipboard 
Print this post

I am wondering why the resolution of the MaxiMites VGA is 480*432.
It is a strange ratio. A more common computer screen ratio would is 4:3 or 16:10 (16:9 for hd).


480 pixels width would give a height of:
4:3 360 pixels
16:9 270 pixels
16:10 300 pixels


If the height is more important

432 pixels height would give a width of:
4:3 576 pixels
16:9 768 pixels
16:10 692 pixels


More common height:

480 pixels height would give a width of:
4:3 640 pixels
16:9 768 pixels
16:10 692 pixels


Memory is a concern of course and also the bitrate.
If we take 480 x 432 pixels you need 207360 or 25920 bytes
Standard graphics resolutions that are around the same number of bytes or less are:

QQVGA 160x120 4:3 (2400 bytes)
HQVGA 240x160 3:2 (4800 bytes)
QVGA 320x240 4:3 (9600 bytes)
WQVGA 384x240 16:10 (11520 bytes), 400x240 5:3 (12000 bytes), 432x240 16:9 (12960 bytes)
HVGA 480x320 3:2 (19200 bytes)
Needing more memory:
VGA 640x480 4:3 (38400 bytes)
WVGA 800x480 5:3 (48000 bytes)

of those only VGA and WVGA are using more memory.

Another way to calculate would be to choose a resolution that scales well to a common ratio.

Desktop widescreen having 1920x1080 or 1920x1200 pixels would need to be scaled down a lot to not use too much memory.

1920x1080 needs 259200 bytes which is exactly 10 times what is used now. If we would scale it back so that about the same number of bytes are used we get a resolution of 640x360 (28800 bytes).

1920x1200 needs 288000 bytes, scale that back and you get 640x400 (32000 bytes)

Small 7" widescreens are often 800x480 needing 48000 bytes. Supporting that would be a choice if not too much memory would be needed for the application this would be a perfect match. Scaling that to 400x240 would still give a very good picture and needs only 12600 bytes. A good candidate i think for color and perfectly suited for small embedded systems.

desktop 4:3 screens are often 1024x768 (4:3) or 1280x1024 (5:4) using respectively 98304 and 163840 bytes.
Scaling that gives 512x384 = 24576 bytes and 640x512 = 40960.

Scaling give 2 good resolutions that use about the same or less memory.
512x384 for 4:3 screens, 432x240 for 16:9 screens and 400x240 for 16:10 screens.
Upscaling will be the same for the width and height giving an undistorted picture.

My suggestion for the color version of the maximite would be to have the following resolutions possible:
640x480 and 800x480 monochrome
512x384 and 400x240 color mode
The amount of memory needed is still within the limits i think.

Please add your knowledge, opinions and suggestions.
Edited by TZAdvantage 2012-05-31
Microblocks. Build with logic.
 
Nick

Guru

Joined: 09/06/2011
Location: Australia
Posts: 512
Posted: 04:09pm 29 May 2012
Copy link to clipboard 
Print this post

I assume the added complexity of writing so many driver resolutions is a problem.

That's why, as I suggested in another post, keep the resolution that is easier or more conveniant to program (stick with the standard 480x432)and allow the padding around the edges to fill in the gap dependant on a Monitor type setting stored somewhere.

Having multiple resolutions means adding scaling support in all your graphics and text handling MMBasic firmware routines. Could be a big job.

I'm only guessing so maybe Geoff can confirm?
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 04:33pm 29 May 2012
Copy link to clipboard 
Print this post

The generation of VGA signals by the maximite is a very good trick, but would it not be time to consider other options?
Using a specialized chip for generating the graphics will free up memory and processing power and not forget hardware SPI devices of the PIC32 chip.
The DMA and SPI are then free to be used for other interesting things.

http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963QL9. htm
A chip like this would provide all the functionality for around 7 US$ and if a new PCB has to be made anyway why not upgrade with something that is really awesome and still in a small and cheap package.

As an example it is being used here:
http://www.rayslogic.com/Propeller/Products/DviGraphics/DVI. htm

Edit:
I saw that Geoff already talked about this chip in another topic.
Edited by TZAdvantage 2012-05-31
Microblocks. Build with logic.
 
Print this page


To reply to this topic, you need to log in.

© JAQ Software 2024