## 2 A New VLSI Algorithm for Integer DCT  
The 1-D discrete cosine transform (DCT) for a real input sequence \(x(i)\), \(i=\overline{0,N-1}\) is defined as:  
\[Y(k)=\sqrt{\frac{2}{N}}\cdot\sum_{i=0}^{N-1}x(i)\cdot cos[(2i+1)\,k\alpha], \text{ for }k=\overline{0,N-1} \tag{1}\]  
\[\text{ with }\alpha=\frac{\pi}{2N} \tag{2}\]  
The multiplication with the constant \(\sqrt{\frac{2}{N}}\) can be performed at the end of the VLSI array. An even better solution is to integrate this multiplier in the final design into the quantization stage. For the rest of this work, the multiplication constant will not be taken into consideration. Using ideas such as those in [10,11], the matrix used for integer DCT is:  
\[\text{T}_{16}=\left[ \begin{array}{ccccccccccccc}64&64&64&64&64&64&64&64&64&64 &64&64&64&64\\ 90&87&80&70&57&43&25&9&-9&-25&-43&-57&-70&-80&-87&-90\\ 89&75&50&18&-18&-50&-75&-89&-89&-75&-50&-18&18&50&75&89\\ 87&57&9&-43&-80&-90&-70&-25&25&70&90&80&43&-9&-57&-87\\ 83&36&-36&-83&-83&-36&36&83&83&36&-36&-83&-36&36&83\\ 80&9&-70&-87&-25&57&90&43&-43&-90&-57&25&87&70&-9&-80\\ 75&-18&-89&-50&50&89&18&-75&-75&18&89&50&-50&-89&-18&75\\ 70&-43&-87&9&90&25&-80&-57&57&80&-25&-90&-9&87&43&-70\\ 64&-64&-64&64&-64&-64&64&64&-64&64&64&-64&-64&64\\ 57&-80&-25&90&-9&-87&43&70&-70&-43&87&9&-90&25&80&-57\\ 50&-89&18&75&-75&-18&89&-50&-50&89&-18&-75&75&18&-89&50\\ 43&-90&57&25&-87&70&9&-80&80&-9&-70&87&-25&-57&90&-43\\ 36&-83&83&-36&-36&83&-83&36&36&-83&83&-36&-36&83&-83&36\\ 25&-70&90&-80&43&9&-57&87&-87&57&-9&-43&80&-90&70&-25\\ 18&-50&75&-89&89&-75&50&-18&-18&50&-75&89&-89&75&-50&18\\ 9&-25&43&-57&70&-80&87&-90&90&-87&80&-70&57&-43&25&-9\end{array} \right] \tag{3}\]  
We have designed a new integer DCT that can be efficiently implemented using the systolic array architectural paradigm given by the following equation:To obtain Equation (4), a multi-criterial optimization must be used. A linear integer optimization has been used to search an optimum solution according to the following criteria:  
* closeness to the original DCT;
* orthogonality of the basis vector;
* low implementation costs. These criteria have also been applied in [29; 30], but in our case the optimization process was guided to obtain a solution suitable for a systolic array implementation. We have only considered the solution that can lead to a systolic array implementation and we have disregarded the other possible solutions during the optimization process. Naturally, this part of the optimization process cannot be conducted automatically and the know-how of a designer with strong expertise in systolic array architectures is required. As it can be seen from Equation (4), the matrix coefficients have specific properties, such as symmetric and anti-symmetric properties, that can be exploited for efficient VLSI implementation using systolic arrays. The obtained integer transform has good accuracy that even outperforms the standard form described by Equation (3), as can be seen in Figure 1.  
Figure 1 illustrates the ability of the proposed transform to retain the important features of an image (Lena in our tests) by computing the peak signal-to-noise ratio (PSNR) between the original and the reconstructed image. By varying the number of retained coefficients from low (corresponding to the best image compression) to high (corresponding to the best image quality), one can find the optimum trade-off between compression and quality. For the representation in Figure 1, the same test image and number of bits were used in the simulations to compute the PSNR for the two transforms from Equations (3) and (4). As shown in Figure 1, the PSNR resulting from using the proposed IntDCT transform, as defined in (4), is identical to the PSNR resulting from using the transform from (3) when the number of retained coefficients is small. This can be explained by the fact that most of the energy is concentrated at low frequencies, for which both Equations (3) and (4) produce identical results.