This document summarizes several source coding techniques: Arithmetic coding encodes a message into a single floating point number between 0 and 1. Lempel-Ziv coding builds a dictionary to encode repeated patterns. Run length encoding replaces repeated characters with a code indicating the character and number of repeats. Rate distortion theory calculates the minimum bit rate needed for a given source and distortion. The entropy rate measures how entropy grows with the length of a stochastic process. JPEG uses lossy compression including discrete cosine transform and quantization to discard high frequency data imperceptible to humans.