Huffmancodering is een methode om gegevens die bestaan uit een rij van symbolen, optimaal en verliesloos te comprimeren. De codering wordt onder andere toegepast bij datacommunicatie en voor digitale afbeeldingen. Huffmancodering is vernoemd naar David Huffman, die de codering in 1952 voor het eerst beschreef.
Elk symbool wordt gecodeerd als een bitstring, zodanig dat de code van een symbool nooit het eerste deel is van de code van een ander symbool. Dit maakt het mogelijk een rij symbolen te coderen door de codes van de afzonderlijke symbolen achter elkaar te plaatsen zonder scheidingsteken. Bij het decoderen van een bitstring volgt na iedere herkenbare code het begin van een volgende eenduidig herkenbare code. Dit wordt een prefixcodering of prefixvrije codering genoemd.
Het principe van huffmancodering is eenvoudig. Van een reeks symbolen worden de veel voorkomende symbolen weergegeven door een kortere code, dan de weinig voorkomende. Zo kan de hele reeks op een kortere manier gecodeerd worden.