UnQuantum : le « décompresseur moderne » qui sauve un format perdu de MS-DOS

UnQuantum : le « décompresseur moderne » qui sauve un format perdu de MS-DOS

Depuis des années, des milliers de fichiers compressés avec l’extension .Q sont restés piégés dans un véritable « no man’s land » technologique : présents dans des collections historiques, sur d’anciens CDs ou dans des archives stockées, mais leur accès réel nécessitait de reconstituer un écosystème qui n’existe plus aujourd’hui. Le format, connu sous le nom de Quantum, fut créé par David Stafford chez Cinematronics (Austin, Texas) entre 1993 et 1995. Il fut considéré comme une solution de compression avancée pour son époque, grâce à une approche technique différente de celle des utilitaires de compression populaires dans les années 90.

Le problème ne résidait pas uniquement dans la vieille date, mais aussi dans une barrière pratique : les fichiers .Q se décompressaient via des outils comme UNPAQ.EXE, un exécutable DOS 32 bits nécessitant un extension DPMI de Borland. En pratique, cela obligeait à utiliser DOSBox ou un autre émulateur pour récupérer les données, ce qui était envisageable pour un passionné, mais peu réaliste dans un flux de travail moderne, pour la préservation ou la recherche numérique.

C’est cette étape qui cherchait à être franchie par UnQuantum, un projet proposant un décompresseur natif et moderne pour le format Quantum (.Q) en mode autonome. Reécrit en Rust, il est conçu pour fonctionner directement sous Linux, macOS et Windows.

Un format en avance sur son temps… puis oublié

Quantum n’était pas « un ZIP comme un autre ». Alors qu’une majorité des utilitaires de compression de l’époque utilisaient des schémas comme Huffman, Quantum opta pour une combinaison de LZ77 et codage arithmétique. Cette décision, à l’époque, en fit une solution compétitive en termes de ratios de compression.

Son importance dépassa le simple statut d’obscurité : l’algorithme fut licencié par Microsoft et intégré dans l’écosystème Cabinet (.CAB). Il fut aussi adopté ou intéressé par d’autres acteurs tels que Borland ou Novell, selon la documentation du projet.

Cependant, le format .Q en fichier autonome fut rapidement relégué avec le temps. Cela fut en partie dû à l’arrêt du développement à la version 0.97, mais aussi parce que le monde du logiciel s’orienta vers d’autres standards, réduisant Quantum à une capsule technologique de son époque.

Le détail qui compliquait l’extraction… et l’ingénierie inverse qui l’a dévoilé

Pour reconstruire un format ancien, le plus souvent le vrai défi ne réside pas dans la compréhension théorique, mais dans la maîtrise de ses subtilités. Dans le cas de UnQuantum, la première difficulté fut révélatrice : les fichiers en un seul fichier se décomposaient correctement, mais ceux multi-fichiers finissaient par être corrompus dès le second fichier.

UnQuantum : le « décompresseur moderne » qui sauve un format perdu de MS-DOS 1

Le diagnostic initial pointait vers le décodeur arithmétique, mais après tests, cette hypothèse fut écartée : le comportement était comparable à celui d’implementations connues dans d’autres contextes. La véritable clé du problème résidait dans la façon dont le format autonome délimitait les fichiers dans le flux compressé.

La trouvaille essentielle fut un détail non clairement indiqué dans la documentation standard : entre chaque fichier, le format insère 16 bits (un checksum) directement dans le flux binaire brut, sans passer par le décodeur arithmétique. En d’autres termes, si ces 16 bits ne sont pas consommés en temps voulu, toute la suite de la lecture se désynchronise.

Ce détail fut plus encore renforcé par une autre particularité fondamentale : l’état du codeur et les modèles adaptatifs étaient conservés entre fichiers. Il ne s’agissait pas d’un « redémarrage par fichier », mais d’un flux continu avec des frontières subtiles.

Ce que propose UnQuantum pour la préservation (et au-delà)

Ce que vise UnQuantum n’est pas simplement « ouvrir un vieux fichier », mais réduire le coût opérationnel de sa récupération. Concrètement, le projet souhaite que l’on puisse traiter un fichier .Q comme n’importe quel format compressé moderne : en en listant le contenu, en vérifiant l’intégrité et en extrayant, sans nécessiter un environnement DOS complet.

De même, une attention particulière est portée à la portabilité : le projet se présente comme multiplateforme et avec l’ambition d’être opérationnel nativement sur les systèmes actuels.

Sur le plan technique, le README sur GitHub précise en détail l’algorithme (LZ77 + codage arithmétique avec plusieurs modèles adaptatifs) ainsi que la structuration du fichier, notamment la signature (« DS »), la taille des fenêtres configurables et le rôle crucial du checksum entre fichiers.

Et sur le plan « humain », le projet s’inscrit dans une vision stratégique : préserver les données ne consiste pas seulement à stocker des disques en bibliothèque, mais à garantir leur lisibilité dans 10, 20 ou 30 ans, sans dépendre d’outils fragiles ou d’environnements d’émulation qui pourront devenir obsolètes ou impraticables.


Questions fréquentes (FAQ)

Qu’est-ce que le format .Q (Quantum) et pourquoi a-t-il été important ?

C’est un format de compression pour MS-DOS des années 90, combinant LZ77 et codage arithmétique. Sa pertinence l’a conduit à être licencié par Microsoft et intégré dans leur écosystème de compression, notamment dans les fichiers CAB.

Pourquoi est-il si difficile de décompresser aujourd’hui des fichiers .Q ?

Parce qu’ils dépendaient d’outils anciens comme UNPAQ.EXE, un exécutable DOS nécessitant une extension DPMI, obligeant à utiliser des émulateurs comme DOSBox pour en extraire le contenu.

Qu’est-ce qui cause la corruption des fichiers .Q multi-fichiers dans les implémentations modernes ?

Une particularité cruciale : entre chaque fichier, un checksum de 16 bits est inséré dans le flux brut, en dehors du décodeur arithmétique. Si cette étape n’est pas correctement respectée, le flux se désynchronise, empêchant une extraction fiable.

À qui s’adresse UnQuantum aujourd’hui ?

Aux personnes œuvrant dans la préservation d’archives historiques (anciens CDs, BBS, dépôts classiques) ou souhaitant extraire des données du format .Q sur des systèmes modernes, sans recourir à l’émulation DOS.

le dernier