Source coding involves encoding data using fewer bits than the original representation through lossy or lossless compression. Lossless compression reduces bits by eliminating statistical redundancy without losing information, while lossy compression removes unnecessary or less important information. Channel coding is a technique used for controlling errors in data transmission over noisy channels by encoding messages in a redundant way using an error-correcting code. Huffman encoding assigns binary codes to symbols based on their probability, with less common symbols getting longer codes, by splitting symbols into new symbols combined with 0s and 1s until only two symbols remain.