CS 6604, Project - Due April 28, 2008

Data Compression Projects

Your project report will be completed in two stages as described below and should consist of the particulars of your design in enough detail that others could reconstruct your work. It should include your code and performance evaluation such as timings, space requirements. The projects may be done individually or jointly by agreement in advance. Proposals for interesting projects not listed below are also invited.

Possible Projects:

Implemenation Notes

All code is expected to be original code, except where an arithmetic coder is required, in which case existing code can be used. In order to maximize performance, c or c++ is recommended so that pointers and storage issues can be explicitly managed.

The compression algorithms should be implemented as functions so that they can be reused. These should be called by a short main program that handles data input and output and performance evaluation. Be very careful not to make function calls in the innermost loops, since these would seriously degrade performance.

Code should be documented, especially at the conceptual level. Variables should be explicitly declared LONG, SHORT, or BYTE, according to whether their length is intended to be 32, 16, or 8 bits.

CPU timings are easy to make with the clock function. Include <time.h> and declare a couple of variables, like start and finish, to be of type clock_t. At the beginning of the timing interval call start = clock ( ), and at the end call finish = clock ( ). Then the time in seconds is (finish - start) / CLOCKS_PER_SEC.

Submission