Compression sans perte
La compression sans perte est l'endroit où aucune donnée n'est perdue. Tout ce qui est entré peut être parfaitement récupéré. Cela fonctionne bien pour les fichiers texte ou binaires où la plus petite erreur sera remarquée.
La compression de fichiers fonctionne en prenant le fichier et en recherchant des modèles, et en traduisant ces modèles en quelque chose d'autre qui prend moins de place.
Par exemple, "AAAAAAAA" pourrait être transformé en "8A".
Certes, ce n'est pas comme cela que ça fonctionne exactement, car alors vous avez le problème si "8A" était dans le texte en clair. Vous décompressez le fichier et ce serait faux. Un bon point de départ est Wikipedia ou l' algorithme de compression de données LZW .
Il y a simplement un code pseudo pour cela copié ci-dessous:
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
Toute compression utilise un dictionnaire de recherche qui est utilisé pour compresser et décompresser le fichier. Plus le dictionnaire est gros, plus vous pouvez le compresser, bien que vous tombiez sur la loi des rendements décroissants .
Il convient également de noter que la compression ne produit pas toujours un fichier plus petit. Dans certaines situations (avec de petits fichiers ou lors de la compression de données aléatoires ), vous n'obtiendrez pas un fichier plus petit après la compression. Il y a eu quelques défis amusants concernant la capacité de compresser des données aléatoires.
"La compression avec perte
Ce qui précède concerne principalement la compression sans perte . D'autres types de compression utilisés dans les applications vidéo / audio telles que MP3, JPG et h.264 sont des exemples de compression avec perte .
La compression avec perte fonctionne en supprimant les données les moins susceptibles d'être remarquées. En audio, cela représente environ 30 000 Hrz et moins de 100 Hrz, ainsi que diverses autres choses. Dans l'image (statique), il supprime diverses choses et fusionne les pixels, ainsi que la suppression des données.
La compression avec perte est une forme de codage par transformation . Il fait la moyenne des données pour réduire la taille globale. Par exemple, un bloc de 10 pixels dans une image, toutes les couleurs légèrement différentes peuvent être fusionnées en une seule couleur et ainsi compressées.
Dans la compression vidéo, des instructions seront souvent placées pour ne redessiner que les pixels qui ont changé depuis la dernière image ou image clé .