Graphics and Video Hardware Considerations (Windows Embedded CE 6.0)
1/5/2010
For information about developing device drivers for a specific type of device, see Windows Embedded CE Drivers.
Note
Graphics and video hardware are optional for audio-only networked media devices (NMDs).
Standard Definition, Interlaced Television Output
NTSC D1 is required for devices sold in countries/regions, such as some North American countries/regions, that support the NTSC D1 standard.
PAL D1 is required for devices sold in countries/regions, such as some European countries/regions, that support the PAL D1 standard.
Graphical Frame Buffers
A primary graphical frame buffer is required to display the user interface (UI) and the video. The amount of RAM that is available for the frame buffer must be equal to or greater than the amount of RAM that is needed for the highest resolution that the networked media device (NMD) can display.
For the storage of frequently used bitmaps, you should implement a secondary or off-screen graphical frame buffer. Hardware BitBlt operations can quickly and efficiently copy bitmaps from the secondary frame buffer to the primary frame buffer. You should also implement frame buffer page flipping to facilitate smooth on-screen transitions and animations.
Video Overlays
Video overlays are additional, separate buffers for graphics or for surfaces that display other graphical elements. The following list shows several of the various types of graphical elements that video overlays display:
- Captioning
- Picture-in-picture (PIP)
- Subpictures
- Subtitles
- Streaming video
Video overlays reduce microprocessor overhead because the graphical elements render directly in the overlay buffers, and then the display hardware mixes the graphical elements with the primary frame buffer. The reduced microprocessor overhead allows the microprocessor to avoid having to perform complex software mixing and having to render operations that are in the primary frame buffer. The following list shows the various types of video overlays that you should support:
Video display overlay
On-screen display (OSD) overlay
Subpicture/subtitle/captioning overlay
PIP overlay
Note
The PIP overlay is applicable only to digital video recorders (DVRs).
RGB Support for Graphical Frame Buffers and for Video Overlays
Support for the 16-bit RGB565 format is required for the primary frame buffer.
Supporting multiple RGB formats allows the graphical content to appear in the native format without conversion to another format. You should support additional RGB formats for the primary frame buffer, secondary frame buffers, and for video overlays. The following list shows the additional RGB formats that we recommend you support:
- 16-bit ARGB1555
- 16-bit ARGB4444
- 24-bit RGB888
- 24-bit ARGB5676
- 24-bit ARGB8565
- 32-bit RGB888
- 32-bit ARGB8888
YUV Support for Graphical Frame Buffers and Video Overlays
The following list shows the YUV support for frame buffers and video overlays that you should support:
- 12-bit 4:2:0 IMC2
- 12-bit 4:2:0 IMC4
- 12-bit 4:2:0 YV12
- 12-bit 4:2:0 iYUV
- 12-bit 4:2:0 NV12
- 16-bit 4:2:0 IMC1
- 16-bit 4:2:0 IMC3
- 16-bit 4:2:2 YUY2
- 16-bit 4:2:2 UYVY
- 32-bit 4:4:4 AYUV
Color Space Conversions
In the graphics display controller or in the graphics coprocessor, you should provide support for the conversion of hardware color space. The conversion hardware that you use should support conversions between as many RGB and YUV formats as possible.
The NMD software supports software-only color space conversions. Software-only color space conversion places an additional processing workload on the main microprocessor, which may affect the overall system performance.
Two-Dimensional Graphical Acceleration
A display controller that supports two-dimensional graphical acceleration is recommended for offloading common graphics operations from the main microprocessor to the display controller. The following list shows, in order of decreasing importance and preference, some or all of the recommended two-dimensional graphics accelerations that a display controller can implement:
- Source-to-destination copies.
- System-memory-to-video-memory moves.
- Single-color fill or gradient fill of circular blits, elliptical blits, line blits, and rectangular blits.
- Standard Boolean raster operation codes.
For more information about Boolean raster operation codes, see Raster Operation Codes. - Font rendering.
- Hardware cursor.
Alpha Blending
Alpha blending mixes two or more frame buffers or video overlay surfaces by using varying degrees of transparency. Hardware alpha blending can enable you to use special effects features, such as a semitransparent UI on top of a live video, to enhance the user experience. The following list shows the alpha blending features that you should provide in the hardware:
- Combining pixels
- Combining regions and rectangles
- Combining two or more frame buffers or video overlay surfaces
Scaling
A television screen might not display graphics content in a way that occupies the entire television screen. Therefore, you should provide scaling-up and scaling-down of graphics and video overlays in the hardware. Avoid software scaling, which places an additional processing workload on the main microprocessor and which might cause a loss of system performance.
Video Decoder
You should offload video decoding to a dedicated digital signal processor (DSP) or a video coprocessor to allow the microprocessor to use its cycles for system-related tasks. Offloading the video decoding will also enable you to use a less powerful microprocessor to improve cost-effectiveness of the device.
Microsoft does not provide a Microsoft DirectShow DirectX Media Object (DMO) filter driver, so you must obtain one for each hardware video decoder. Check with the hardware video decoder manufacturer or a third party for an appropriate DirectShow DMO filter driver.
The following list shows the video formats that you should provide support for in the hardware:
- MPEG-4 ISO
- MPEG-4/H.264 AVC
- VC-1
- WMV-9
MPEG-2 support is optional.
Video Enhancements
To provide a cleaner, clearer, and crisper picture on a television screen, you should provide a flicker filter in the display hardware.
In addition to providing a flicker filter, you can optionally provide the following features in the display hardware:
- Antialiasing: nearest, bilinear, and anisotropic
- Deinterlacing of interlaced video
- Motion compensation
Vertical Blanking Interval Utilization
The vertical blanking interval (VBI) is used for closed captioning (CC). You must provide CC in countries/regions that mandate it.
Television Connectors
You must provide composite connectors and S-video connectors in countries/regions that support these connectors.
You must provide SCART connectors in countries/regions that support this connector.
To provide a higher bandwidth connection to the television, which can provide a higher-quality picture, add component or add DVI connectors.
See Also
Concepts
Hardware Architecture Diagram for Networked Media Devices
Other Resources
Performance Considerations for the Hardware Components of Networked Media Devices
CETK Tests
Core OS Services
Developing a Board Support Package
Developing a Device Driver
Developing an OEM Adaptation Layer