From 3D rendering to image warping, the capabilities of today’s graphics display controllers are integral to a broad range of innovative applications. High-end GDCs help define a product’s style and value with dynamic graphics that dazzle consumers. At the other end of the spectrum, modest GDCs display information clearly and simply, giving users what they want efficiently and cost effectively.
Whether simply functional or absolutely dazzling, graphics deserve careful attention and reward good design in highly visible ways. There are basic QVGA display ICs, with pre-rendered graphics that may include video input. The highest level provides SXGA or higher display resolution with dynamic 3D graphics and multiple inputs. In the middle are GDCs with WVGA display (primarily 2D dynamic graphics with some 3D also possible) and video inputs.
Some applications are highly cost sensitive, such as the automotive industry, where one of the top priorities a minimized bill of materials. In basic to mid-level applications, designers can address this need by using system-on-a-chip graphics controllers as a single-chip solution. These GDCs can communicate with other automobile systems via the CAN bus and can go into shutdown power mode to preserve battery power.
Limitations of internal VRAM capacity and bottlenecks like bus speed limit the level of graphic functionality supported, flexibility, pixel fill rate, and maximum display size. If performance is more important than cost, higher-end SoCs based on multi-chip architectures are good choices. These GDCs rely on an external vehicle MCU to handle CAN traffic, power management, and peripherals such as stepper motor controllers. They do not have built-in VRAM and program flash memory, but use high-speed VRAM interfaces to support high performance.
Selection of basic GDC options balance cost and performance
Some application segments—notably automotive—have to keep up with the high-end graphics that are common in smart phones. Designers must ensure that the GDC can create fluid, crisp graphics and that the system responds quickly to user inputs. Thus, the GDC must not impose bottlenecks in the system that create a lag in delivering the desired experience to the end user.
For basic to mid-level applications, a true single chip SoC may be suitable. For high-end applications, such devices will not provide sufficient performance, and a high-end (multi-chip architecture) SoC with external VRAM and flash memory will be needed.
If the product’s display accommodates 24-bit RGB input, a GDC with 24-bit RGB output helps avoid the banding effect (abrupt changes between shades of the same color). The use of 24-bit color ensures smooth-looking graphics. Otherwise, the application may need a dithering function in the GDC for neutralizing the banding effect. Dithering applies randomized noise to the frame buffer to prevent the banding effect due to limited color depth.
While smooth, flashy graphics always have appeal, applications such as industrial electronics equipment that prioritize rugged design and ease of use can get by just as well with more basic graphics functionality. Lower-end GDCs offer surprising performance for many uses without inflating the bill of materials.
Graphics content: Static or dynamic?
The choice of GDC also depends on the nature of the graphics content. If the content is static and can be pre-determined, a low-cost GDC such as a sprite engine may suffice. Pre-rendered graphic bitmaps can be stored in the Sprite GDC’s external flash memory. Such GDCs are very good at handling different color formats (those using a color lookup table or those having actual pixel values in the frame buffer) and can also handle transparency and alpha blending. Use of a low-overhead compression scheme, such as RLD (Run Length Decoder), can greatly reduce storage requirements for pre-rendered graphics, thus reducing cost.
Other applications need dynamic graphics content that is determined on the fly, such as maps or random animation. These applications require a GDC that has a fully functional pipeline capable of rendering 2D or 3D models with texture maps. The application may also benefit from the use of functions such as hardware lighting and fogging. For more complicated tasks, a graphics engine with shaders provides greater flexibility.
Using a flexible display controller simplifies the work of graphics implementation and supports better graphics. Specifically, graphics development is significantly easier with a flexible layering scheme and support for multiple layers and alpha planes, as well as a variety of color depths.
Then there is a choice between 2D and 3D graphics. Using 3D graphics impacts performance and features required from a GDC. For example, 3D applications demand higher rates of vertex processing than 2D applications, along with functions such as perspective correction for texture maps and "mip mapping" needed for 3D graphics. Mipmaps are optimized and resized version of the main texture map that are stored along with the main texture map. They are very useful in enhancing performance by helping avoid the need to resize the main texture map on the fly.
Just adding the z
coordinate for 3D graphics significantly increases processing requirements. Two-dimensional graphics rendering is much simpler, and if the content is static, it can be pre-rendered, as discussed earlier. In the cases of dynamic 2D or 3D content, a graphics engine with a full pipeline will be needed.