💾 Archived View for lord.re › ideas › 004-quompression › index.gmi captured on 2024-05-12 at 15:39:28. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
➡️ Next capture (2024-08-18)
-=-=-=-=-=-=-
-------------------------------------------------
[12/11/2018] - ~3mins - #humour #algo
-------------------------------------------------
J'ai l'algorithme ultime de compression de données.
Vous allez pouvoir compresser plusieurs Go voir To de données et faire rentrer ça dans quelques dizaines d'octets.
L'algo en lui-même est assez flexible et permet de compresser sans aucune perte n'importe quel type de données.
Le temps de compression est très rapide et s'appuie sur des technologies éprouvées.
Le système se base sur les data-hints afin d'améliorer la vitesse de décompression.
Plus vous rajoutez de data-hints plus votre fichier compressé va gagner en taille.
C'est donc tout un compromis qu'il va falloir faire : *Préferez-vous un fichier rapide à décompresser ou la taille finale est vraiment le critère le plus important pour vous ?*
Avec cette technique un jpeg de 2Mo est compressé dans moins d'1Ko sans data-hints.
L'algo de compression repose en grande partie sur les algos de hachage tels que md5, sha1 …
Utilisez ces algorithmes sur votre fichier, notez les résultats dans un fichier et … voilà .
Bha là je vous cache pas que c'est là que le bât blesse.
Va falloir bruteforcer.
Vous balancez des données aléatoires et vous hachez ces données et regarder voir si ça correspond aux hash que vous avez.
Si c'est le cas, c'est bon vous avez vos données, si c'est pas le cas, vous jetez les données et vous recommencez.
Ouai ça peut être un poil long voire impossible.
Mais toute l'astuce est dans les data-hints :
Dans votre fichier compressé vous pouvez rajouter des données supplémentaires pour aider à la reconstruction des données.
Le plus répandu est size qui permet tout simplement d'indiquer la taille du fichier d'origine.
Ça permettra à la décompression de créer déjà des données à la bonne dimension.
Ensuite un pratique est le fb qui rajoute comme information quel est le premier bit de données (est-ce un 1 ou un 0 ?).
Ça va permettre à l'algo d'être deux fois plus rapide.
Un autre permettant encore de doubler est lb qui indique quel est le dernier bit de données (encore un 1 ou un 0 ?).
Comme expliqué plus haut, le format est très flexible, car vous pouvez ajouter autant de data-hints que vous le souhaitez et même en créer de nouveaux si ça peut aider.
Par exemple mime qui indique tout simplement le type de fichier compressé.
Ou alors pic-sub qui indique sur une photo quel est le sujet (un peu de machine learning peut aider à accélérer la décompression).
J'ai jamais réussi à décompresser un fichier, mais je suis pas d'un naturel très chanceux.
Le format n'impose pas le type de hash ni leur nombre, mais il est préferable d'en indiquer au moins deux différents (surtout si vous n'ajoutez pas de data-hints) afin d'éviter les erreurs de décompression.
------------------------------------
------------------------------------
[12/11/2018] [humour algo]
------------------------------------
[>> Suivant >>] ⏠Updater le cache des méta-données lorsque Portage utilise git