Zoals de naam al aangeeft, voert een codec twee taken uit: ten eerste comprimeert hij de grootte van het audio- of videobestand, en ten tweede decomprimeert hij het indien nodig. Alle codecs gebruiken een algoritme om de omvang van grote bestanden te verkleinen en de gegevens later terug te halen en weer te geven met dezelfde kwaliteit als oorspronkelijk opgenomen. Dit betekent echter niet dat er een "standaard" algoritme is voor het comprimeren van bestanden; elke codec gebruikt zijn eigen technologie voor het creëren van het ideale algoritme voor bepaalde toepassingen. Bovendien kan elke codec ervoor kiezen om bestanden op een van de volgende twee manieren te coderen: lossy of lossless compressie.
Compressie met verlies werkt door het verwijderen van vreemde stukjes informatie die de algemene kwaliteit van de inhoud niet beïnvloeden. Zo kan bijvoorbeeld een MP3-muziekbestand zeer effectief lossy compression toepassen door geluiden te verwijderen die voor het menselijk oor niet hoorbaar zijn en daardoor de kwaliteit van het totale geluid nauwelijks beïnvloeden. Een ander voorbeeld is een JPG-afbeeldingsbestand; ook dit verwijdert overtollige informatie of zet dergelijke informatie om in een smakelijke context; zo zal een echte foto met een volledig blauwe lucht veel blauwgradiënten genereren, maar kan dit gemakkelijk worden teruggebracht tot één of twee tinten blauw. Bij lossy compressie kan de gebruiker gewoonlijk de mate van bestandscompressie kiezen, maar een hogere compressie (die resulteert in kleinere bestanden) levert inhoud van mindere kwaliteit op; een gebruiker kan zijn toevlucht nemen tot trial and error om het beste compressiepercentage te bepalen met behoud van een aanvaardbare inhoudskwaliteit.
Compressie zonder verlies is meer gericht op behoud van inhoudelijke kwaliteit, wat betekent dat de bestandsgrootte niet zo klein zal zijn als bij compressie met verlies, maar er worden geen waardevolle gegevens weggegooid in het compressieproces; in plaats daarvan wordt compressie bereikt door het verwijderen van redundantie. Hoewel dit klinkt als het verwijderen van gegevens bij lossy compressie, worden de gegevens in feite omgezet in logische subeenheden. Hier wordt uitgelegd hoe verliesloze compressie kan werken.
Stel dat je inhoud hebt met de volgende tekenreeks: "aaaaaaabbbccccccddeeeeeeeee" (wat neerkomt op een reeks van 7 a's op een rij, gevolgd door 3 b's, dan 6 c's, 2 d's, en 9 e's). Compressie zonder verlies zou die informatie omzetten in "a7b3c6d2e9" door de tekenreeks van 27 tekens terug te brengen tot slechts 10 tekens (het beschrijft elke opeenvolgende groep tekens door het teken en het aantal identieke tekens dat erop volgt, dus "a7" is gelijk aan "aaaaaaa"). Het mooie van compressie zonder verlies is dat de oorspronkelijke gegevens altijd kunnen worden hersteld en gebruikt wanneer dat nodig is.
Waarom zou iemand de compressie van een groot bestand willen terugdraaien? Professionele fotografen, bijvoorbeeld, willen hun RAW-bestanden intact houden, misschien voor het professioneel afdrukken van een te grote foto, maar willen ook een kleinere afbeelding van lagere kwaliteit delen op hun sociale mediaplatforms voor marketingdoeleinden. Door lossless compressie toe te passen, kan het oorspronkelijke werk in een informele context worden gepresenteerd (bijvoorbeeld op Pinterest), terwijl het ook beschikbaar is voor gedetailleerde bewerking zonder dat er een pixel aan gegevens verloren gaat.