Implement MPEG-1 using feldspar

Potential supervisors: 
Description: 

Feldspar is an domain-specific language for digital signal processing and high-performance computations. The language is embedded as a library in Haskell. The front end supports common functional programming idioms such as map and fold, and the back end produces high-performance C code.

* The original Feldspar paper: <http://www.cse.chalmers.se/~emax/documents/axelsson2010feldspar.pdf>
* Front end package:           <http://hackage.haskell.org/package/feldspar-language>
* C code back end:             <http://hackage.haskell.org/package/feldspar-compiler>

Feldspar is an important part of the current research in the FP group, and MSc projects about Feldspar will directly contribute to our research.

Embedded devices require efficient implementations of video encoding and decoding due to power constraints. For that reason, video encoding and decoding is often implemented in hardware. However, hardware implementations does not allow adding support for new features once the device has been produced. The aim of the project is to develop an implementation of the MPEG-1 video codec in Feldspar and evaluate its performance. The project will also involve evaluation of the suitability of Feldspar for implementing video codecs, and ideas for its improvement. MPEG-1 is an obsolete video codec, however serves as a good model for modern codecs, as it is much simpler than the modern alternatives while containing all the same fundamental building blocks.