Como o nome indica, um codec executa dois trabalhos: primeiro, comprime o tamanho do ficheiro de áudio ou vídeo, e segundo, descomprime-o conforme necessário. Todos os codecs empregam um algoritmo para realizar esta proeza de diminuir o tamanho de grandes ficheiros com a capacidade de mais tarde recuperar e exibir os dados com qualidade semelhante à originalmente gravada. Contudo, isto não significa que exista um algoritmo "padrão" para realizar a compressão de tamanhos de ficheiro; cada codec utiliza a sua própria tecnologia para criar o algoritmo ideal para determinadas aplicações. Além disso, cada codec pode optar por codificar ficheiros num de dois métodos: compressão com ou sem perdas.
A compressão com perdas funciona através da remoção de pedaços de informação estranhos que não têm impacto na qualidade geral do conteúdo. Por exemplo, um ficheiro de música MP3 pode utilizar a compressão com perdas de forma bastante eficaz, extraindo sons que não podem ser ouvidos pelo ouvido humano e que, consequentemente, mal afectam a qualidade global do som. Outro exemplo é um ficheiro de imagem JPG; também elimina informação em excesso ou converte tal informação num contexto palatável; por exemplo, uma imagem verdadeira com um céu azul completo gerará muitos gradientes de azul mas pode ser facilmente reduzida a um ou dois tons de azul. Em compressão com perdas, o utilizador pode normalmente seleccionar a extensão da técnica de compressão de ficheiros, mas uma compressão mais elevada (resultando em ficheiros de menor tamanho) produz conteúdos de menor qualidade; um utilizador pode recorrer a tentativas e erros para determinar a melhor percentagem de compressão, mantendo uma qualidade aceitável do conteúdo.
A compressão sem perdas está mais orientada para a preservação da qualidade do conteúdo, o que significa que os tamanhos dos ficheiros não serão tão pequenos como sob compressão com perdas, mas nenhum dado valioso é deitado fora no processo de compressão; em vez disso, a compressão é realizada através da remoção da redundância. Embora isto soe muito como a remoção de dados em compressão com perdas, na realidade converte os dados em subunidades lógicas. Aqui está uma explicação de como a compressão sem perdas pode funcionar.
Assumir que tem o conteúdo com a seguinte sequência de caracteres incluída: "aaaaaaaabbbccccccddeeeeeeeeeee" (que funciona com uma sequência de 7 a's seguidos de 3 b's, depois 6 c's, 2 d's, e 9 e's). A compressão sem perdas converteria essa informação para "a7b3c6d2e9", reduzindo a cadeia de 27 caracteres para apenas 10 caracteres (descreve cada grupo consecutivo de caracteres pelo caracter e número de caracteres idênticos a seguir, portanto "a7" é igual a "aaaaaaaa"). A beleza da compressão sem perdas é que os dados originais podem sempre ser recuperados e utilizados quando necessário.
Porque é que alguém iria querer inverter a compressão de um ficheiro grande? Os fotógrafos profissionais, por exemplo, querem os seus ficheiros RAW intactos, talvez para a impressão profissional de uma imagem de tamanho exagerado, mas também querem partilhar uma imagem mais pequena e de menor qualidade nas suas plataformas de redes sociais para fins de marketing. Ao utilizar compressão sem perdas, o trabalho original pode ser apresentado num contexto informal (ou seja, no Pinterest), ao mesmo tempo que está disponível para edição detalhada sem perder um pixel de dados.