Evolution and co-evolution of vector quantization codebooks for image compression using genetic programming
The optimization of lossy compression of images is inherently difficult due to the complexity of human visual perception. Existing optimization techniques perform adequately, but often stop at local optimal points in the search space of compression solutions. Evolutionary programming is an alternative to human-designed algorithms that has been applied successfully to overcome local optima in machine learning applications. Evolutionary programming borrows from nature the concepts of survival-of-the-fittest and the crossover of genetic material between individuals in a population to produce a new generation of individuals. The result is a guided search through the solution space for a problem. Genetic algorithms (GA) and genetic programming (GP) are two types of evolutionary programming. GA has been applied to many applications including vector quantization (VQ) compression codebook generation. GP is an extension of genetic algorithms in which the individuals in the evolving population are represented by hierarchically structured program trees instead of fixed length strings of characters. GP has been applied in various fields such as analog circuit design with results that rival human designed solutions to the same problems. No previous research has been found that applies GP to the problem of VQ codebook generation. Co-evolution is an extension of GP in which a population of problems to be solved evolves at the same time as the solution population evolves. Co-evolution has been shown to perform better than normal evolution at overcoming local optima for some applications. This research examines a novel use of genetic programming and coevolutionary genetic programming for the evolution and co-evolution of VQ codebooks for image compression. The results show that codebooks generated using traditional human-coded compression algorithms can be further optimized with the use of GP and co-evolutionary GP.