Mapping Stream Programs into the Compressed Domain


Due to the high data rates involved in audio, video, and signal processing applications, it is imperative to compress the data to decrease the amount of storage used. Unfortunately, this implies that any program operating on the data needs to be wrapped by a decompression and re-compression stage. Re-compression can incur significant computational overhead, while decompression swamps the application with the original volume of data. In this paper, we present a program transformation that greatly accelerates the processing of compressible data. Given a program that operates on uncompressed data, we output an equivalent program that operates directly on the compressed format. Our transformation applies to stream programs, a restricted but useful class of applications with regular communication and computation patterns. Our formulation is based on LZ77, a lossless compression algorithm that is utilized by ZIP and fully encapsulates common formats such as Apple Animation, Microsoft RLE, and Targa. We implemented a simple subset of our techniques in the StreamIt compiler, which emits executable plugins for two popular video editing tools: MEncoder and Blender. For common operations such as color adjustment and video compositing, mapping into the compressed domain offers a speedup roughly proportional to the overall compression ratio. For our benchmark suite of 12 videos in Apple Animation format, speedups range from 1.1x to 471x, with a median of 15x.

Extracted Key Phrases

14 Figures and Tables

Cite this paper

@inproceedings{Thies2007MappingSP, title={Mapping Stream Programs into the Compressed Domain}, author={William Thies and Steven Hall and Saman P. Amarasinghe}, year={2007} }