QUICK NAVIGATOR
PRODUCTS
TECHNOLOGIES
DEVELOPMENT TOOLS
*Papers
*Samples/Demos
*SDK
[INTEL NAVIGATION HEADER]

Intel Realistic Display miXer White Paper

The Intel Realistic Display miXer (RDX) technology provides high-performance, object-based programming support for interactive multimedia objects (backgrounds, sprites, tiles, grids, audio, video and graphics), video collision detection, and transformations or effects, in a Windows* 95 environment. It also uses APIs like DirectSound*, DirectDraw*, and DCI*. This paper briefly describes the architecture, benefits, features, display model, and general usage model of Intel RDX.

Architecture of the Intel RDX Library

Benefits of the Intel RDX Library
The Intel RDX library provides a number of significant benefits to software developers. These include ease of use, extensibility, easy display mixing, high performance, coordination of displayable and non-displayable objects, and support for performance improvements in underlying system components:
    Ease of Use. Intel RDX offers an object-based interface for creating and manipulating multimedia objects and devices. This eliminates the need to deal with low-level details, leaving you free to concentrate on content creation and application-specific programming tasks. It can help you get your application to market quickly.
    Extensibility. The extensibility in Intel RDX allows you to launch an application-defined function through Intel RDX’s render callback function. It also lets you create user-defined filters to manipulate and control ActiveMovie* streams which are displayed onto an Intel RDX surface.
    Display Mixing. In the past, the use of display mixing has been somewhat limited because video and graphics have been treated as independent entities. As a result, many multimedia Windows applications have used one data type or the other but not both. Instead of using bit-block transfer (bitblt) and write-raster operations to perform display mixing, you only need to create a set of objects, define their generic attributes, map them to a surface, and then draw the surface. Each of these operations is accomplished by simple, high-level function calls. With Intel RDX, display mixing is software-based, done in real-time, and requires no special hardware.
    High Performance. The Intel RDX library was designed with performance in mind. For example, we purposely chose to abstract objects at the interface level so that we could implement many functions in highly tuned assembly language modules and take advantage of hardware acceleration where possible. We minimized buffer copying during display mixing. Instead of copying video and graphics data to separate buffers and then mixing them in a third buffer (which can be very time consuming), Intel RDX puts video and graphics data in the same buffer from the beginning, eliminating a serious performance bottleneck.
    Coordinated Activities. Multimedia applications are primarily based on displayable objects but they also need audio objects and devices, and the ability to coordinate their interplay easily and accurately. The Intel RDX library supports these needs in three ways. First, it provides timers and events to support application scheduling and synchronization. Second, it provides automatic synchronization between audio and video objects. Third, it allows you to place objects in a group and then perform certain operations on all the objects in the group with a single function call.
    Scalability. In addition to high performance, the Intel RDX library also provides support for future performance improvements in the underlying hardware and software. For example, MMXTM technology was added in the 2.1 release.

Features of the Intel RDX library
The Intel RDX library provides the following features:

    Predefined object types. These include sprites, backgrounds, tiles, grids, surfaces, groups, audio tracks, video tracks, and AV objects. We even provide an object that allows you to connect Intel RDX with Active Movie*. These object types help you create multimedia applications that are powerful, yet flexible.
    Generic attributes for all objects. These include view, visibility, draw order, current image, destination, destination rectangle, transparent color and position. These attributes, common to all Intel RDX objects, allow you to define the specific characteristics of the objects you create.
    Attribute management functions. These functions set, get, and adjust the values of generic attributes and allow you to modify the characteristics of your objects dynamically.
    Object-specific functions. These functions allow you to perform object-specific operations like creating and deleting objects, associating data with objects, and performing special operations (pausing and resuming the playback of an AV object, for example).
    Surfaces. A surface is a destination to which you map a collection of displayable objects. Each object’s attributes determine how and when the object is drawn to a surface. A surface can be mapped to a window for immediate display on the screen, to a memory buffer for later use, or to another surface if you want to treat the (first) surface as a displayable object.
    Groups. A group is a collection of objects. You can get, set, and adjust the value of a specific attribute for all the objects in a group in a single function call. You can also determine the number of objects in a group and get a list of the objects.
    Effects. An effect is a filter on an object’s data. You can set multiple effects on an object. At draw time, the effects are applied to the object’s data in the order in which you applied them and the result is drawn to the object’s surface. Currently supported effects include horizontal flipping, vertical flipping, horizontal shearing, vertical shearing, smorphing (simple morphing -- applies an application-defined mathematical transformation to an object), full screen display, modeX display, color mapping, and others.
    Timers and Events. Timers and events allow you to schedule and synchronize the activities of objects. You schedule an event to occur at a specific point in time (or periodically) by creating the event, creating a timer to go with it, and then associating the two. Currently supported events include set an attribute, adjust an attribute, draw, and others.
    Collision Regions and Hot Spots. Collision regions and hot spots allow you to detect dynamic interactions between moving objects. A collision region or hot spot is defined by a bounding rectangle that surrounds a group of pixels (a door, for example). The hot spots can be embedded in a video stream. The library provides functions that allow you to define bounding rectangles and detect collisions that occur within those bounds.
    Device support. The Intel RDX library provides support for setting and getting values in the hardware palette register.
    Pre-loading and branching. The AV subsystem provides an abstraction called branch tables, which allow you to pre-load video data in the background for seamless branching between multiple video clips.

Intel RDX Display Model

The general model for display has four phases: Loading source data objects, setting a source data object, setting the destination mixing surface, and finally, setting the output. This display structure allows you to load data into a data object, associate the data object with one or more displayable Intel RDX objects, and reuse it. You can apply different attributes, transformations, or effects to the data object before mapping it onto a mixing surface. Once you map the object, you can select where you want to send the output. The Intel RDX Display Model diagram shows an overview of the flow and some specific examples of how you can use the Intel RDX display features.

Usage Model

The general model for using Intel RDX objects has three phases: Building, managing, and rendering¹. In the building phase, you associate source data from a buffer in memory or from a file with a source data object (for example a bitmap), and then associate the source data object with an Intel RDX object such as a background or sprite. In the managing phase, you manipulate an object in a variety of ways. For example, you might change some of its attribute values, put it in a group, set effects on it, or use timers and events to synchronize its activities. In the render phase, you display 2D objects by drawing the surface to which they are attached. Audio objects are automatically handed to the sound system.

Intel RDX Usage Model

Summary
Intel RDX is an application programming interface that embodies the principles of object-oriented design, frees the developer from unnecessary detail, and provides significant benefits. The primary components of Intel RDX are objects, methods that allow you to manage these objects, and device support for the display and audio. For additional information, refer to the documentation provided with the Intel RDX 2.2 developer’s kit.

¹ We present the phases as if they were discrete and sequential, but in a real application they overlap.



Legal Stuff © 1997 Intel Corporation

Free Web Hosting