Processor vendors offer a dizzying array of
options for digital video applications. Selecting the right processor
from the myriad options—and understanding the tradeoffs associated with
each choice—is key to getting digital video products to market at the
right time and at the right price.
In this article we introduce basic concepts needed to select a
processor for a digital video application. We begin with a discussion
of the processing needs of a typical video application. Next, we
present a methodology for structured selection of a processor. We then
present a guide to the processor options, and explore the strengths and
weaknesses of each option.
Application requirements
To understand the processing needs of a digital video, consider a
typical consumer digital video product. A generalized software model for a consumer digital video product is shown in Figure 1.
(For a look at the hardware components inside a typical consumer
digital video product, see the Panasonic personal video recorder
discussed in David Carey's "Under the Hood" column.)
Player
The player is the software module that links user, content, and
codec. The player’s capabilities vary depending on the features of the
application. In general, the player provides the user interface
(perhaps via an on-screen menu system) and controls the DRM, codec, and
relevant I/O modules.
The player is typically a highly complex piece of software with
a large set of features. Consequently, the player is often one of the
largest components in terms of both memory footprint and lines of code.
Despite its complexity, the tasks and responsibilities of the player
generally require only a modest amount of computation
resources—typically less than 10% of the application's total
computational load.
Due to their size and complexity—and their generally modest
computational requirements—players are often implemented entirely in C
or C++ and compiled without extensive optimization. This makes the
availability of a high-quality compiler key to good player performance.
Digital rights management
The DRM module is concerned with protecting content, typically
using an encryption scheme. Different DRM systems are used for
different types of content and by different content distributors. For
example, the type of copy protection used on DVDs differs from the type
of copy protection used by Internet-based movie distribution
services. DRM schemes generally use algorithms with relatively low
computational demands, and they operate on the compressed-data side of
the codecs where data rates are lower. DRM implementations have small
footprints; a few kilobytes of memory for both instruction and data is
typical. DRM algorithm providers do not want their algorithms to become
known to the public—particularly to hackers who could break their
copy-protection schemes. Consequently, DRM software is often provided
as binary (that is, precompiled) code. Because binary code can only be
used for one specific processor family, the availability of the
required DRM software can be an important consideration when selecting
a processor.