Functional Specification of the JPEG algorithm


Jeroen Fokker, Functional Specification of the JPEG algorithm, and an Implementation for Free.
In: Programming Paradigms in Graphics, Proceedings of the Eurographics workshop in Maastricht, the Netherlands, september 1995. (R.C. Veltkamp and E.H.Blake, eds). Wien, Springer 1995, pp. 102-120.


A decoder for images compressed by the JPEG algorithm is stated in the pure functional programming language Gofer. The program can be regarded as a mathematical specification of the decompression algorithm; the concise description (which is included in full) is very suitable for learning about the algorithm. At the same time the `specification' is an executable program, which shows the usefulness of a functional programming language as a prototyping tool for graphics algorithms. All functions are defined as much as possible at the function level, i.e. as compositions of other functions. A tutorial on the important concept of a `State Monad', which plays an important role in the program, is included. From a functional programming theoretical point of view, the new technique of currying a state monad, which is introduced, and its application in the program, are interesting.

Article text

Article Program source (Gofer) (15k)

Other relevant links