Comme son nom l'indique, un codec effectue deux tâches : d'abord, il comprime la taille du fichier audio ou vidéo, puis il le décompresse si nécessaire. Tous les codecs emploient un algorithme pour accomplir cet exploit qui consiste à réduire la taille des fichiers tout en permettant de récupérer et d'afficher ultérieurement les données avec une qualité similaire à celle enregistrée à l'origine. Toutefois, cela ne signifie pas qu'il existe un algorithme "par défaut" pour effectuer la compression de la taille des fichiers ; chaque codec utilise sa propre technologie pour créer l'algorithme idéal pour des applications données. En outre, chaque codec peut choisir d'encoder les fichiers selon l'une des deux méthodes suivantes : compression avec ou sans perte.
La compression avec perte fonctionne en supprimant les bits d'information superflus qui n'ont pas d'incidence sur la qualité globale du contenu. Par exemple, un fichier musical MP3 peut utiliser la compression avec perte de manière très efficace en extrayant des sons qui ne peuvent pas être entendus par l'oreille humaine et qui, par conséquent, affectent à peine la qualité du son global. Un autre exemple est celui d'un fichier image JPG ; lui aussi supprime les informations superflues ou convertit ces informations dans un contexte acceptable ; par exemple, une véritable image avec un ciel entièrement bleu générera de nombreux gradients de bleu mais peut être facilement réduite à une ou deux nuances de bleu. Dans le cas de la compression avec perte, l'utilisateur peut généralement choisir l'étendue de la technique de compression du fichier, mais une compression plus élevée (qui se traduit par des tailles de fichier plus petites) produit un contenu de moindre qualité ; un utilisateur peut recourir à des essais et des erreurs pour déterminer le meilleur pourcentage de compression tout en conservant une qualité de contenu acceptable.
La compression sans perte est davantage axée sur la préservation de la qualité du contenu, ce qui signifie que la taille des fichiers ne sera pas aussi faible que dans le cas de la compression avec perte, mais aucune donnée précieuse n'est éliminée au cours du processus de compression ; au contraire, la compression est réalisée en supprimant la redondance. Bien que cela ressemble beaucoup à la suppression de données dans la compression avec perte, les données sont en fait converties en sous-unités logiques. Voici une explication du fonctionnement de la compression sans perte.
Supposons que vous ayez un contenu contenant la chaîne de caractères suivante : "aaaaaaabbbccccccddeeeeeeeee" (ce qui correspond à une chaîne de 7 a d'affilée, suivis de 3 b, puis de 6 c, 2 d et 9 e). La compression sans perte convertirait cette information en "a7b3c6d2e9" en réduisant la chaîne de 27 caractères à seulement 10 caractères (elle décrit chaque groupe de caractères consécutifs par le caractère et le nombre de caractères identiques qui le suivent, de sorte que "a7" est égal à "aaaaaaa"). La beauté de la compression sans perte est que les données originales peuvent toujours être récupérées et utilisées en cas de besoin.
Pourquoi voudrait-on inverser la compression d'un fichier volumineux ? Les photographes professionnels, par exemple, veulent que leurs fichiers RAW soient intacts, peut-être pour l'impression professionnelle d'une image surdimensionnée, mais ils veulent aussi partager une image plus petite et de moindre qualité sur leurs plateformes de médias sociaux à des fins de marketing. En utilisant la compression sans perte, le travail original peut être présenté dans un contexte informel (par exemple, sur Pinterest) tout en étant disponible pour une édition détaillée sans perdre un seul pixel de données.