La technologie ne cesse de progresser. Depuis que j’écris ce blog, les ordinateurs sont toujours plus performants et ont toujours plus de mémoire. Les réseaux informatiques sont toujours plus rapides. Et l’informatique est toujours plus présente. Pourtant les arbres ne montent pas jusqu’au ciel.
Cette débauche de moyens n’empêche pas une branche particulière de prospérer : les optimiseurs. Faire toujours mieux avec moins. La démarche peut paraître paradoxale. Cet été, je m’intéresserai donc à ceux qui cherchent à réduire toujours plus la taille des fichiers et des flux d’information.
Seules des séries de ‘0’ et de ‘1’ transitent sur nos ordinateurs et téléphones portables. Suivant comment elles sont interprétées, elles permettent :
- de lire ou d’écrire des documents, des messages, des informations,
- de regarder ou de créer des image ou des vidéos,
- d’écouter ou d’enregistrer des musiques ou des podcasts.
Il existe bien d’autres applications mais les médias utilisés restent les mêmes : texte, image et son. Ce qui va déterminer que l’on utilise une application plutôt qu’une autre est sa popularité. Ce qui rend un service populaire, c’est sa simplicité et sa rapidité d’accès. Les gens ne supportent pas d’attendre.
Alors la chasse aux kilos superflus et aux secondes est ouverte. Et le principal point de blocage aujourd’hui est le réseau. Il faut donc optimiser la quantité de données transportées pour un même service. Depuis la démocratisation d’internet dans les années 2000, les grands acteurs n’ont cessé de faire travailler leurs équipes sur ces sujets.
Il y a des pionniers que j’ai déjà évoqué sur les algorithmes de compression standards. Et un article supplémentaire me semble bien venu car les stratégies qu’ils ont proposé sont à la base des outils modernes.
Derrière chaque compression, il faut comprendre le service que l’on cherche à optimiser. Pour une image, une vidéo et une musique, je vulgariserai leurs concepts avant de présenter les mécanismes sur lesquels jouent les optimiseurs pour gagner de la place.
Je reviendrai à notre époque pour constater l’état de l’art et je prendrai des paris sur le futur. J’évoquerai aussi l’éternel compromis entre latence et qualité qui offre un pari supplémentaire.
Mais avant cela, posons quelques concepts. Premier concept, comment mesurer une compression. Le calcul est simple. Vous prenez la taille d’un fichier en octet (ou en kilo/méga/giga/… octets). La performance de compression est : 1 – (taille finale/taille initiale).
Si une photo pèse 500 ko avant compression et 100 ko après, alors le taux de compression est de (1 – (100/500)) 0,8 ou 80 %. Ce taux permet de comparer l’efficacité des stratégies. Dans une compétition, cela permet de connaître le meilleur.
Ce concept en entraîne un second : la vitesse de compression/décompression des algorithmes. Compresser beaucoup et lentement peut s’avérer inefficace dans certaines situations. Même si les microprocesseurs sont devenus extrêmement performants, ce point n’est pas à négliger.
Dernier concept, la notion de ‘perte’ et de ‘sans perte’ ou lossless en anglais. Suivant l’application, certaines informations peuvent être perdues, cela ne gênera pas l’utilisation du média. Si vous regardez une vidéo, qu’une image ne soit pas parfaite ne vous empêchera pas de! comprendre l’histoire.
Un codage avec perte qui a un meilleur taux de compression pourra être utilisé. Par contre, pour lire le Seigneur des Anneaux ou pour suivre le dossier médical d’un patient, il vaut mieux que le fichier que vous récupérez ne présente pas de défauts.
Cela fait un bon matériel pour ma série de l’été. L’idée m’est venue il y a quelques mois et je ne voulais pas étaler mes articles sur des années. Alors voyons comment des informaticiens et des mathématiciens de génie changent notre rapport à l’information.