Within a given technology, it is always easier to achieve a specific performance if the computational task is completely specified a priori. A specialized processor may be optimized for a single task, or made flexible enough to perform a range of tasks. While it is difficult to obtain the performance needed for video processing from a single general purpose processor, it is quite possible to build systems using specialized processors with the required power. Object-based media requires additional flexibility, but there are often similarities between different media representations, both in data types and common computational operations, which may be utilized. For example, both a subband representation of video and a block-transformed one (M/JPEG) utilize an inner loop of multiplication and addition which maps well onto small SIMD arrays of fixed point multiply-accumulate units.
Media processing systems currently utilize a broad spectrum of parallel processor architectures, from the relatively inflexible fixed pipelines of specialized processors common in ``3D graphics accelerators'' and compressed motion image sequence decoders to highly flexible MIMD arrays of general purpose microprocessors. Given the magnitude of the computational task, it is not surprising that processors specialized for a particular media processing task are popular. In previous years, the high cost of silicon chip area precluded incorporating specialized processors into a design intended for general purpose computing. This is changing, as even mainstream microprocessors have adopted architectural features specialized for media processing . Further impetus is provided by the development of dynamically reconfigurable logic . The difficulty lies not in building specialized processors, nor in the silicon area they require, but in providing an efficient, general, programming model for them.