The instrument panel in an automobile provides a critical interface between the driver and the vehicle. The overall design, features, and functionality of the instrument panel can be a major selling factor to a potential customer or a complete turn off that drives the customer away.
As opposed to traditional panels featuring physical dials and meters, there are many advantages to implementing the panel in the form of an electronic display. This allows the automobile manufacturer to provide unique, reconfigurable instrument panel designs that can provide sophisticated mixtures of digital content with computer-generated representations of classic design elements, such as dials and pointers to display speed and tachometer information.
The end result is that, in today's state-of-the-art automobiles, the instrument panel may quite possibly be the most complicated subsystem in the entire vehicle. It's also important to note that what counts as a top-of-the-line display today will appear in mid-range vehicles in a few years and low-end automobiles shortly thereafter.
Behind the display panel itself will be a specially designed silicon chip called a System-on-Chip (SoC). These instrument panel processing devices, which are incredibly complex, are created by companies with tremendous expertise in this area, such as Freescale (www.freescale.com). Automotive manufacturers subsequently deploy one of these processing devices in their instrument panel, where it is used to generate the high-fidelity graphics that are to be presented to the user.
In addition to the instrument panel, a modern automobile may boast a variety of other sophisticated infotainment and/or safety-related displays, including the central console and heads-up imagery projected onto the windscreen. The following discussions relate to all of these display types, but focus on the main instrument panel for the sake of simplicity.
This article briefly introduces the i.MX6 family of processing devices from Freescale. In particular, we consider the Triple-Play graphics processing units (GPUs) featured in the i.MX6 devices and explains the advantages that result from using three specialized graphics engines. Also introduced are two companies that create human machine interfaces (HMIs) for automobiles using the i.MX6 hardware platform.
Introducing the i.MX6
The i.MX6 family is a scalable multicore platform for next-generation consumer, industrial and automotive applications. By combining the power-efficient processing capabilities of the ARM Cortex-A9 architecture with bleeding edge 2D and 3D graphics, the i.MX6 family provides a new level of multimedia performance to enable an unbounded next-generation user experience.
The two members of the i.MX6 family that are of interest to us here are the i.MX6 Dual and i.MX6 Quad, boasting two and four ARM Cortex-A9 processor cores, respectively. Running at up to 1.2 GHz, these cores are augmented by three graphics processing unit (GPU) cores from Vivante (www.vivantecorp.com) as illustrated in Figure 1.
Figure 1. High-level view of the i.MX6 architecture
Obviously, Figure 1 provides a very simplistic view of a tremendously complex device. Only the primary data flows from the CPU through the GPUs to the display are shown, for example. Also, there would be an on-chip memory subsystem, a controller for external memory, and a wide variety of peripheral and interface functions, such as MIPI, LVDS, USB, Gigabit Ethernet, and PCI Express. However, this image will suffice for the purposes of our discussions here.Introducing the three GPU cores
As was previously noted, the i.MX6 multicore processing engine features three GPU cores from Vivante. By off-loading the main CPU, these cores dramatically reduce the power consumption of the system while easing the task of creating extremely sophisticated, photorealistic displays. The three cores in question are:
OpenGL / OpenGL ES (Open Graphics Library)
- GC2000 OpenGL ES / OpenGL / OpenCL
- GC355 OpenVG
- GC320 Composition
is the most widely adopted 3D (three-dimensional) graphics application programming interface (API) in the industry, bringing thousands of applications to a wide variety of computer (OpenGL) and embedded system (OpenGL ES) platforms. It is window-system and operating-system independent. By exposing all the features of the latest graphics hardware, OpenGL / OpenGL ES enables software developers to create high-performance, visually compelling graphics applications.OpenCL (Open Computing Language)
is an API that supports parallel programming. In the case of the CG2000, the OpenCL API allows the software developers to take full advantage on the large number of processing elements in the GPU, thereby greatly improving speed and responsiveness for a wide spectrum of applications.OpenVG (Open Vector Graphics)
is API for the hardware acceleration of 2D (two-dimensional) vector graphics. It provides a device independent and vendor-neutral interface for sophisticated vector graphics applications. OpenVG is managed by the Khronos Group (www.khronos.org
) a not-for-profit industry consortium focused on the creation of royalty-free open standards for parallel computing, graphics, and dynamic media.Composition
is the process of gathering and combining all the visual pieces of information that gets displayed onscreen. This can include 2D and 3D images, text, menus, images, and video. Composition can be performed by the 2D and 3D GPUs; however, in the same way that the 2D and 3D GPUs offload the main CPU, employing a special-purpose composition GPU offloads the other GPUs, thereby reducing power consumption and increasing performance and image fidelity.
The operation of the Composition GPU is discussed in more detail in the whitepaper Composition Processing Where, Why, and When by industry analyst Jon Peddie of Jon Peddie Research (http://jonpeddie.com
In the case of OpenGL / OpenGL ES and to a lesser extent OpenCL, these APIs are both widely known and deployed. For the purposes of this article, we are more interested in the OpenVG GPU what is OpenVG used for and why is it necessary?