This document discusses various data compression techniques. It begins with an introduction to compression and its goals of reducing storage space and transmission time. Then it discusses lossless techniques like Huffman coding, Lempel-Ziv coding, run-length encoding and pattern substitution. The document also briefly covers lossy compression and entropy encoding algorithms like Shannon-Fano coding and arithmetic coding. Key compression methods and their applications are summarized throughout.