The goal of my project was to implement MPEG-2 video decompressor on an FPGA architecture. I had to get to know the MPEG-2 compression standard, and design a structure to decompress the video bitstream. The decompressor architecture, what I designed, was based on the proposed standard architecture, but its blocks are better separated to get a clearer and more modular system. In the first versions the software of my decoder is downloaded from the site of the MPEG.org. However this version not implement all features of the MPEG, it is perfect to know (and test) the MPEG compression. So the software of the decoder is an existing one.
But what is new, the platform of the decoder system. The software runs on an FPGA base platform, with some firmware accelerator module. This structure improve the power and the scalability of the decoder. The most complex and most time-consuming part of the decoding is the IDCT, the inverse discrete cosine transform. This means I start the accelerate with this module. In order to reduce the resources I use a special mechanism of the transform. This algorithm based on Wang and Chen transform algorithm. The IDCT and its economical realization is realy important in the engineering practice. Many algorithm can calculate IDCT, and all are optimalized for a different purpose. I was looking for a solution which minimalizes the cost of the hardware and able to operate in a relatively high speed. I found an algorithm which had been created by Wang and Chen. Despite the fact that this structure makes a significant
delay I chose this algorithm to realize IDCT. Another issue was to consider that, the code had to be reuseable and portable in order to be able to synthesize to Xilinx FPGAs as well as Altera.
In the project I dealt with the test of the module as much as the implementation of it. As this module gives the base of the decompressor, its accuracy highly influences the quality of the whole system. So during my work I always take huge care to to the testing and validating of the modules. Only this way should be guaranteed the error free operands of a complex system, like my decoder.