Image Computing Systems Laboratory
University of Washington
Seattle, Washington 98195 U.S.A.
1.0 Summary
University of Washington
Mediaprocessor User Consortium (UW-MPUC) is an organization that aims to
facilitate and promote the widespread use of programmable mediaprocessors
(MPs). UW-MPUC will provide publications, internal reports, web site, training
courses, software libraries, and objective evaluations of mediaprocessors,
to increase the awareness of the benefits of mediaprocessors over application
specific integrated circuits (ASICs), make the transition to mediaprocessor-based
products easier for set makers, and help them attain full advantage of
using mediaprocessors. UW-MPUC will also promote the development of standards
to increase the portability and interoperability of mediaprocessor software.
Member companies of UW-MPUC pay annual sponsorship fees to cover the expense
of the consortium operations (e.g., library function development, training,
publications, and other R&D activities). UW-MPUC will begin its operation
in Fall 2000. Figure 1 shows the role of UW-MPUC. Governance of UW-MPUC
will be via Consortium Advisory Board consisting of the entire UW-MPUC
member companies in consultation with the University of Washington.
Figure 1. Role of UW-MPUC.
2.0 Background
Early mediaprocessors,
such as Texas Instruments TMS320C80 (MVP), have had success in professional
markets, e.g., medical imaging and machine vision. However, the success
of early mediaprocessors was limited due to difficulty in programming,
insufficient computing power, and high cost. Fortunately, several newer
mediaprocessors, which are available or under development (e.g., Hitachi/ETI
MAP, Philips TriMedia, and BOPS ManArray), are easier to program, less
expensive, and/or have more computing power. Even with the increasing computing
power, flexibility, adaptability, multi-function capability and reduced
time-to-market that newer mediaprocessors can provide, mediaprocessors
have yet to achieve widespread commercial successes.
As Figure 2 illustrates,
evaluating the performance of mediaprocessors is not a trivial task. With
the increasing number of mediaprocessors available and under development
and the increasing number and complexity of multimedia applications, current
benchmarks are mostly inadequate in determining how well a mediaprocessor
would perform for a specific application. Furthermore, the inability of
mediaprocessor compilers to utilize all of the mediaprocessor's on-chip
resources and parallelism available has led to the increasing use of C
intrinsics in mediaprocessor software. C intrinsics, which are hints to
the compiler on which assembly instructions to use, improve the performance
of mediaprocessor software significantly. Unfortunately, these C intrinsics
are mediaprocessor-specific, which as a result, reduces mediaprocessor
software portability. All of these factors cause the MP user companies
(set makers) to spend a large amount of resources in evaluating mediaprocessors,
which in turn becomes a barrier to the use of mediaprocessors.
Figure 2. Dilemma in Evaluating the Performance of Mediaprocessors.
-->
Another factor that has
limited the success of mediaprocessors is a lack of awareness about mediaprocessors.
When developing a new product, set makers are faced with a decision on
whether to use hardwired components or programmable components. With the
uncertainties in the performance of mediaprocessors and the time and manpower
needed to make the transition from hardwired to programmable component-based
products, set makers are often hesitant in choosing a programmable approach
for their products. UW-MPUC will help increase the awareness of mediaprocessors
and facilitate the transition to mediaprocessor-based products. Figure
3 shows how UW-MPUC fits into the product development paradigm. Increased
awareness of mediaprocessors and their proven advantages via publications
and seminars will help convince set makers to use mediaprocessors in their
products. Next, evaluation reports provided by the UW-MPUC will help the
set makers narrow the field of mediaprocessors to a small number of mediaprocessors
to be further evaluated. Finally, once the set maker has decided which
mediaprocessor to use, the UW-MPUC would provide the set maker with training,
sample code, and a small library of functions for the mediaprocessor.
Figure 3. UW-MPUC Can Help Member Companies in Many Different Ways.
3.0 Mission and Goals of UW-MPUC
UW-MPUC strives to
help the mediaprocessor user companies by reducing barriers to the widespread
use of mediaprocessors in their products.
Goals of UW-MPUC:
- Increase
the acceptance of mediaprocessors.
- Support
the needs of MP user companies.
- Help in
mediaprocessor selection and mediaprocessor-based implementations.
- Training
for MP user companies.
- Produce
well-trained students for the industry.
- Advancement
in mediaprocessor architectures and programming.
- Promote
industry-industry interaction and industry-academia collaboration.
4.0 UW Mediaprocessor Computing
Library (UW-MPCL)
4.1 Functions
Mapping and implementation
of several low-level multimedia processing functions on each mediaprocessor,
e.g., 2D convolution, 2D FFT and warping, could reveal very useful information
and new insights on the chip's architecture, characteristics, and performance.
12 functions to be included in the UW-MPCL are listed as below:
1.invert8: 8-bit image invert
2.add8: add two 8-bit images
3.bin_dilate: dilate an image
with a morphology structuring element
4.flip8_x: flip an 8-bit input
image vertically (around the x axis)
5.flip8_y: flip an 8-bit input
image horizontally (around the y axis)
6.transpose8: tranpose an 8-bit
input image
7.affine8: affine warping
8.conv8: 2D convolution with various
kernel sizes
9.cfft: 2D complex fast Fourier
transform (FFT)
10.dwt4: D4 wavelet transform
11.histo8: histogram generation
for 8-bit input data
12.idct8x8: 8 inverse discrete
cosine transform (IDCT)
During
the life of the UW Mediaprocessor User Consortium, several new functions
could be added to the UW-MPCL while some functions could be deleted.
The Consortium Advisory Board can make these decisions.For
details on our approaches to implement these functions on multiple mediaprocessors,
click
here.
4.2 How is the UW-MPUC Different
from Chip-Specific Consortia?
The University of Washington
developed the MVP University of Washington Image Computing Library (UWICL)
Consortium in 1994. Also, the MAP UWICL Consortium has been in existence
since 1998. These are the chip-specific (Texas Instruments TMS320C80 and
Hitachi/Equator Technologies MAP) consortia while the UW-MPUC is a consortium
targeted to promote all mediaprocessors.
The MVP and MAP libraries
contain more than 100 highly-optimized functions, whereas the software
library provided by the UW-MPUC will likely contain no more than 15 functions
for every mediaprocessor supported by the UW-MPUC. The source code for
all mediaprocessors that have gone through the UW-MPUC's evaluation and
function development will be included in the UW-MPCL releases.
In addition to these
small libraries, the UW-MPUC will provide objective evaluation of mediaprocessors,
training on mediaprocessors and their programming, and tools for easier
mediaprocessor programming. Figure 4 shows the differences between the
UW-MPUC and chip-specific consortia.
Figure 4. Difference
between UW-MPUC and Chip-Specific Consortia.
The UW-MPUC is not intended
to replace the chip-specific consortia. On the contrary, the UW-MPUC will
act as an umbrella organization over the MAP UWICL and any other chip-specific
mediaprocessor consortia that the UW Image Computing Systems Laboratory
may develop in the future. Since all functions in the UW-MPCL for the MAP
have already been developed and are available as part of the MAP UWICL,
the MAP UWICL Consortium Advisory Board in its meeting on April 24, 2000
unanimously approved the inclusion of 10-15 functions from the existing
MAP UWICL in the UW-MPCL so that the MAP can become one of the target mediaprocessors
supported by the UW-MPUC.
Set makers who are undecided
on which mediaprocessor to use in their product(s) can join the UW-MPUC
first and then later join an available chip-specific consortium.
5.0 Other Proposed Tasks
5.1 Application Specific Programming
Interface (ASPI)
The software for a
product typically consists of a top-level module and several low and medium-level
software modules (e.g., imaging and graphics libraries, MPEG, JPEG, or
H.26x). Examples of top-level software modules are a video conferencing
system control and user interface based on H.26x, a set-top box software
layer that calls an MPEG-2 decoding software module in addition to providing
top-level control and user interface services, or a cellular phone or digital
TV user interface with voice recognition. The low and medium-level software
modules, which could be available for several different programmable processors
or implemented in hardwired components, are statically linked to or dynamically
called by the top-level software through application-specific programming
interfaces (ASPIs). An ASPI defines the complete interface between the
top-level module and the lower-level modules for a selected application.
For example, the ASPI defines the function prototypes of the lower-level
modules (e.g., return type, input argument types and ordering) and the
data structures used to pass arguments to the modules.
Figure 5. Application-Specific Programming Interfaces (ASPIs)
and Hierarchical Software Modules.
Low and medium-level
software modules as well as the ASPIs may be developed by set makers or
third-party companies as shown in Figure 5. The low and medium-level modules
developed and maintained by a set maker are likely to fit the top-level
modules developed by the same set maker better, but may require a large
amount of work to attain the same quality or performance as those developed
by third-party companies. Even though some of these low and medium-level
software modules may be developed to provide the same (or similar kinds
of) functionalities, their corresponding ASPIs could be very different
depending on the developers. As a result, it could be very difficult for
the set makers to select the most appropriate low and medium-level modules
for their products since they would have to be concerned with whether or
not the modules are compatible with the top-level modules and how these
incompatibilities would be solved.
To reduce the set-maker's
effort in using low and medium-level modules developed by third-party companies,
the UW-MPUC could lead the effort in standardizing the ASPIs for selected
applications. The standard ASPI would initially define the function prototypes
and data structures to provide a consistent interface between the top-level
module and the lower-level modules. Furthermore, the standard ASPIs would
allow for software extensibility. For example, if a third-party company
adds new features to one of their modules, the set maker could still use
the module without having to change their high-level module since the interface
would not change. The UW-MPUC could coordinate a meeting (or a series of
meetings) between the UW-MPUC member companies and the third-party companies
developing low and medium-level functions to make sure that the ASPIs would
be beneficial to both the set makers and the third-party software companies.The
set makers will benefit since applications using the standard ASPIs would
be more portable and upgradable since the lower-level modules could be
easily swapped with the new ones developed for a different processor (assuming
the top-level module is processor-independent) with more computing performance,
lower power consumption, and/or other improvements. In addition, allowing
the set makers to easily use low and medium-level modules developed by
third-party companies will help the set makers focus their engineering
resources on developing more sophisticated products. For example, the set
maker could improve the user interface, add more features, and create new
services and applications.Standard
ASPIs will benefit the third-party module developers as well since more
set makers will be able to use their modules.
5.2 Mediaprocessor Programming
Interface (MPI)
Even with the standard
ASPIs, the issue of software compatibility is still a concern. For example,
many software modules in an application may contain mediaprocessor-specific
C intrinsics. To address the issue of code compatibility across various
mediaprocessors, the UW-MPUC could look into the research and development
of a standard mediaprocessor programming interface (MPI), which consists
of a universal set of C intrinsics and/or a program to translate between
the universal and native C intrinsics of a specific mediaprocessor. The
MPI could promote the transportability of mediaprocessor programs and therefore
allow faster deployment of software in the field.Although
the MPI might not be as efficient as native C intrinsics, it would significantly
reduce the amount of porting efforts for mediaprocessor-based products
since the product designer could initially use the previously-developed
code for an old mediaprocessor. The MPI-translated code could be upgraded
at a later time with the higher performance code that is written specifically
for the new mediaprocessor.
6.0 Support
Member companies of
the UW-MPUC can report bugs in the UW-MPCL or general suggestions/questions
to uw-mpuc-support@icsl.ee.washington.edu. The UW ICSL will attempt to
answer and supply fixes to any bugs within 1-4 weeks of receipt of the
report. Details of the support procedures for bugs in the UW-MPCL are documented
in the Quality Assurance Guide.
7.0 Availability
and Schedule
There
is an annual sponsorship fee of $45,000 per member company to support the
UW-MPUC as specified in Article 2 of the Exhibit 2. The company receives
the UW-MPCL software (with regular updates and expansion as long as the
company remains as a UW-MPUC member) and a nonexclusive, perpetual, royalty-free,
paid-up license with limitations (for details, see Article 3 of the Exhibit
3), i.e., the UW-MPCL software is free to the UW-MPUC member companies.When
a UW-MPUC member company joins any chip-specific Consortium run by the
UW Image Computing Systems Laboratory, $16,200 per year will be credited
to the chip-specific Consortium's sponsorship fee (Article 3 of the Exhibit
2).
Generally, there will
be a minimum of two UW-MPUC Consortium Advisory Board meetings per year. For
Consortium's past and tentative schedules, click
here.
8.0 Contact for the UW Mediaprocessor
User Consortium
Professor Yongmin Kim
Director of the UW-MPUC
Departments of Bioengineering and Electrical Engineering
University of Washington, Box 352500
Seattle, Washington98195-2500U.S.A.
Tel: (206) 685-2271, Fax: (206) 221-6837