27
32003M–AVR32–09/09
AT32AP7000
7.
Pixel Coprocessor (PICO)
Rev.: 1.0.0.0
7.1
Features
Coprocessor coupled to the AVR32 CPU Core through the TCB Bus.
Three parallel Vector Multiplication Units (VMU) where each unit can:
– Multiply three pixel components with three coefficients.
– Add the products from the multiplications together.
– Accumulate the result or add an offset to the sum of the products.
Can be used for accelerating:
– Image Color Space Conversion.
Configurable Conversion Coefficients.
Supports packed and planar input and output formats.
Supports subsampled input color spaces (i.e 4:2:2, 4:2:0).
– Image filtering/scaling.
Configurable Filter Coefficients.
Throughput of one sample per cycle for a 9-tap FIR filter.
Can use the built-in accumulator to extend the FIR filter to more than 9-taps.
Can be used for bilinear/bicubic interpolations.
– MPEG-4/H.264 Quarter Pixel Motion Compensation.
Flexible input Pixel Selector.
– Can operate on numerous different image storage formats.
Flexible Output Pixel Inserter.
– Scales and saturates the results back to 8-bit pixel values.
– Supports packed and planar output formats.
Configurable coefficients with flexible fixed-point representation.
7.2
Description
The Pixel Coprocessor (PICO) is a coprocessor coupled to the AVR32 CPU through the TCB
(Tightly Coupled Bus) interface. The PICO consists of three Vector Multiplication Units (VMU0,
VMU1, VMU2), an Input Pixel Selector and an Output Pixel Inserter. Each VMU can perform a
vector multiplication of a 1x3 12-bit coefficient vector with a 3x1 8-bit pixel vector. In addition a
12-bit offset can be added to the result of this vector multiplication.
The PICO can be used for transforming the pixel components in a given color space (i.e. RGB,
YCrCb, YUV) to any other color space as long as the transformation is linear. The flexibility of
the Input Pixel Selector and Output Pixel Insertion logic makes it easy to efficiently support dif-
ferent pixel storage formats with regards to issues such as byte ordering of the color
components, if the color components constituting an image are packed/interleaved or stored as
separate images or if any of the color components are subsampled.
The three Vector Multiplication Units can also be connected together to form one large vector
multiplier which can perform a vector multiplication of a 1x9 12-bit coefficient vector with a 9x1 8-
bit pixel vector. This can be used to implement FIR filters, bilinear interpolations filters for
smoothing/scaling images etc. By allowing the outputs from the Vector Multiplication units to
accumulate it is also possible to extend the order of the filter to more than 9-taps.
The results from the VMUs are scaled and saturated back to unsigned 8-bit pixel values in the
Output Pixel Inserter.