Computing inverse discrete cosine transform (IDCT) using vector products on a media processor

Woobin Lee, Chris Basoglu, Yongmin Kim · Proceedings of SPIE, the International Society for Optical Engineering/Proceedings of SPIE · 1999

An 8-point inverse discrete cosine transform (IDCT) can be viewed as a matrix multiplication between an 8 X 8 coefficient matrix and an 8 X 1 input vector. It was shown that the matrix computations can be significantly reduced by separating the even and odd elements of the input vector. In this method, the 8 X 8 matrix multiplication is divided into two 4 X 4 matrix multiplications. The output elements are obtained by adding and subtracting the results of two matrix multiplications. On a mediaprocessor that has a large number of multipliers such as MAP1000A from Equator Technologies, we found that the vector-product algorithm yields a faster execution than other fast IDCT algorithms. This is due to the fact that a highly complex operation such as a vector product takes the same number of machine cycles as a simple operation such as a data move. MAP1000A can perform four 4-point vector products with a single instruction. We also found novel approaches to avoid moving data around in separating the even and odd elements of the input vector and in transporting the matrix between the row-wise and column-wise stages. As a result, an 8 X 8 IDCT can be computed in 60 cycles on MAP1000A, which is about 273 ns at 220 MHz clock frequency.

Read the paper · More papers on PaperTik