Metacompression

Compresser le temps pour compresser les logs

Ce matin, je me suis amusé à compresser le temps.

Mais avant que vous m’imaginiez en génie de la physique théorique ou en hurluberlu ayant besoin d’une camisole de force, laissez-moi vous expliquer.

Je travaille actuellement sur Metarc, un outil de metacompression (comprendre : appliquer des transformations intelligentes à certaines structures avant de passer le relais à un compresseur classique comme zstd). Si vous n’avez jamais entendu ce terme, vous allez comprendre en 5 minutes. Si vous êtes expert en compression, accrochez-vous, vous trouverez peut-être matière à débat.

Metacompression : comprimer la structure avant les octets

Et si le vrai gain n’était pas au niveau des octets ?

J’ai toujours été fasciné par les algorithmes de compression, j’avais 15 ans quand j’ai “inventé” le Run Length Encoding (avant d’apprendre qu’il avait été découvert plus de 20 ans avant ma naissance).
Je me suis extasié sur la simplicité “visuelle” du codage de Huffman, et sur l’astuce de Lempel-Ziv qui construit dynamiquement son dictionnaire.

Ces algorithmes sont puissants, et ce n’est pas un hasard s’ils sont sans cesse améliorés et encore combinés pour produire de nouveaux algorithmes encore plus puissants : Brotli, zstd.