MPEG Transcoder for Xilinx Spartan
MetadataShow full item record
In this project the focus has been on developing an MPEG transcoder that can be used as a demonstration module for the AHEAD system, Ambient Hardware: Embedded Architecture on Demand. AHEAD is a collaboration project between NTNU and SINTEF in Trondheim that is aiming to develop a method of doing run-time reconfiguration of hardware. The AHEAD system will in the future use an FPGA in a tag that is able to reconfigure itself with hardware description that it receives from a hand-held device, e.g. a PDA, or downloads from the Internet. The tag will then be able to be operating as a co-processor for hand-held devices in the vicinity of the tag. Consequently, since the hand-held devices avoid doing some of the heavy processing of the video stream, the power consumption in the hand-held device will be decreased. The MPEG transcoder in this report consists of two parts, an MPEG-4 decoder and an MPEG-2 encoder, that are connected and form a complete transcoder. The MPEG-4 decoder was designed in software in the pre-project to this Master thesis and was in this Master thesis designed in hardware. The MPEG-2 encoder was partially designed by the former students Rognerud and Rustad, but was not working as required and had to be modified to a large extent. In this project the MPEG-4 decoder has been designed from scratch, and the MPEG-2 encoder has been modified in such a way that it operates as specified in the MPEG-2 standard. The first part that was designed was the MPEG-4 decoder. This was due to the experience on that part from the pre-project and that it is the first part of the transcoder. Also, it was useful to produce input data to the encoder. Secondly, the MPEG-2 encoder was modified to operate as required. However, the amount of time spent on finding the errors and resolve them in this part was larger than assumed in the beginning of the project. There was found a way to downscale the resolution of a video in the frequency domain and thus, the Inverse Discrete Cosine Transform, IDCT, and Discrete Cosine Transform, DCT, modules were not needed in the design of the MPEG transcoder. However, the resolution scaler has not been designed in this project, but should be a part of the MPEG transcoder in the future. This should be done to further decrease the power consumption in the hand-held device. In other words, the resolution scaler would be a very important module of the MPEG transcoder and should be implemented in the future MPEG transcoder to make it more beneficial for use in the AHEAD system. During testing and verification, both the MPEG-4 decoder and the MPEG-2 encoder were found to be functioning as specified by the MPEG standards. A video was decoded from MPEG-4, transcoded to MPEG-2 and recognized as an MPEG-2 video that could be displayed in several media players showing good video quality. The results from the synthesis show that the complete MPEG transcoder would use 84% of the available resources on the FPGA that is available for experimental purposes in this project. Also, it shows that the designed MPEG transcoder could operate on a clock frequency of 54 MHz. This results in an MPEG transcoder that is capable of transcoding videos of at least full DVD quality, 720 x 576 pixels, at run-time, which is thought to be sufficient for most cases in AHEAD. Additionally, the transcoder would for most cases be able to transcode HD video of 1280 x 720 resolution, however this is depending on the degree of compression and the nature of the incoming MPEG-4 video. It is concluded in this Master thesis that it has been designed, tested and verified an MPEG transcoder that transcodes MPEG-4 video to MPEG-2 video. The MPEG transcoder is capable of handling at least DVD quality video, which should be sufficient for most cases in AHEAD. There has not been focused on incorporating the transcoded video in a transport stream at run-time in this project. However it is recommended to do so in a future transcoder system and the interface of the MPEG transcoder in this project has been described to make this easier. Also, an article explaining a method for doing resolution scaling in the frequency domain has been proposed. It has further been concluded that the MPEG transcoder designed in this project is a huge step toward having an MPEG transcoding system that can operate in the future AHEAD system. Additionally, it has been experienced that reusing other designers modules sometimes can be less convenient since the increased amount of time spent on debugging can exceed the extra time spent on designing it from scratch. This is because the self designed modules tend to be easier to debug.