1 min read

Optimizing low end UI's

Feb 3, 2010 10:57:00 PM

When building a product with a user interface the trade off is always to get the best graphics performance with the lowest processor power.  Most of these processors have no graphics acceleration and possibly limited instruction sets.  Over the years I have come up with a list of simple things that can be done when designing the target user interface which will improve performance.  These are guidelines for designing the UI with should not really limit the designer very much.

Alpha blending is a killer on these systems.  If you have images which are not blended make sure you do not save them with an alpha channel in them.  Many times Photoshop and other tools will put an alpha channel into a PNG even if the image is fully opaque.  At runtime this can still slow some systems down as they have to check each pixels value.

Try to create opaque image images so that the color format matches your destination color format.  If the target framebuffer is in 16Bit color then create opaque images in a 16Bit format so that color conversion does not have to take place.

Scaling image data can be very costly on low end systems especially when filtering is used to make the images look better.  Try and scale the images on the host machine and put these scaled images on the target.

True Type fonts are generally drawn using alpha blending similar to images.  Bitmap fonts are generally simpler to draw and use much less CPU so if performance is key a nice bitmap font can be very helpful.  Also try and reuse fonts in the system as most UI packages can cache font metrics and image data.


Topics: Uncategorized

Brian Edmond
Written by Brian Edmond

Brian co-founded Crank Software in 2007, after leading the graphics development group at QNX Software Systems where he spent the majority of his career working and consulting on UI design, embedded software architecture, and web browser technology. As he watched embedded graphics teams struggle, he developed an acute understanding of the common workflow problem between the designers and engineers. Brian built Crank Storyboard out of this need to help these teams collaborate more effectively, optimize for exceptional performance, and get their award-winning touch screens to market, close to 50% faster. A triathlon and mountain biking enthusiast (explaining the name Crank Software), Brian is a regular Ironman and cyclocross participant, and can often be found biking the trails with his co-founders behind the Crank offices in Kanata, Ottawa. Brian holds an Electrical Engineering degree from the Technical University of Nova Scotia.

Post a Comment