Comprendre Smacker (.smk) : le format vidéo classique de l’ère d’or du jeu PC
Si vous avez joué à des jeux vidéo sur PC au milieu à la fin des années 1990 ou au début des années 2000 — comme Diablo, StarCraft, Baldur’s Gate ou Warcraft II — vous avez rencontré le format vidéo Smacker (.smk).
Avant que le décodage MPEG accéléré par le matériel et les CPU multi‑cœurs dédiés ne deviennent la norme dans les ordinateurs personnels, lire des vidéos fluides et synchronisées en full‑motion (FMV) avec de l’audio numérique multi‑pistes était un obstacle informatique majeur. Les lecteurs CD‑ROM standards transféraient les données à un débit modeste de 150 à 300 KB/s (vitesses 1× à 2×), et les processeurs 486 ou les premiers Pentium ne pouvaient pas gérer les codecs de transformation gourmands en calcul.
Pour résoudre ce problème, RAD Game Tools a développé Smacker, une architecture vidéo à haute efficacité optimisée spécifiquement pour la décompression purement logicielle. Les fichiers vidéo bruts ou encapsulés produits avec ce pipeline portent l’extension de fichier .smk.
1. Qu’est-ce qu’un fichier SMK ?
Un fichier .smk est un conteneur multimédia propriétaire et un flux vidéo créé par RAD Game Tools (maintenant partie d’Epic Games). Introduit vers 1994, Smacker permettait aux développeurs de diffuser des cinématiques en plein mouvement 256 couleurs directement depuis des CD-ROM à vitesse unique sans perdre de trames ni bloquer le système.
Contrairement aux codecs inter-trames modernes qui reposent fortement sur l’arithmétique en virgule flottante et les Transformées en Cosinus Discrètes (DCT), Smacker a été conçu pour s’exécuter presque entièrement à l’aide d’opérations entières, de tables de recherche et de routines d’assemblage x86 de bas niveau. Il a dominé les cinématiques de jeux dans les années 1990 jusqu’à ce que RAD Game Tools introduise son successeur en couleur vraie 24 bits, Bink Video (.bik), en 1999.
2. Principales caractéristiques du codec Smacker
L’héritage technique durable de Smacker provient de son équilibre sur mesure entre une faible complexité computationnelle et une fidélité visuelle sur le matériel à couleur indexée :
Quantification de palette indexée 8 bits
Au milieu des années 1990, la grande majorité des écrans PC fonctionnaient en modes VGA ou SVGA 256 couleurs (palette 8 bits). Smacker a adopté cette contrainte. Plutôt que de stocker des valeurs RVB 24 bits et d’obliger le système d’exploitation à effectuer un dithering lent en temps réel, Smacker compressait les images vidéo directement contre des palettes dynamiques de 256 couleurs.
Morphing et cyclage de palette image par image
Smacker prenait en charge les mises à jour de palette transparentes entre les images. Si une cinématique en jeu passait d’un décor en plein jour lumineux à une caverne sombre, le fichier .smk pouvait introduire des modifications de palette localisées ou des échanges de palette complets sur des images clés spécifiques, évitant le banding et la distorsion des couleurs.
Quantification vectorielle & décomposition de blocs
Les images d’un flux .smk sont décomposées en blocs de pixels de $4 \times 4$. Smacker utilise des techniques de quantification vectorielle combinées à un ensemble compact de modes opérationnels par bloc :
- Passer: Conserver les pixels de l’image précédente.
- Solide/Couleur unique: Remplir tout le bloc $4 \times 4$ avec un seul indice de palette.
- Deux couleurs / Masque de bits: Définir deux entrées de palette et utiliser un masque de 16 bits pour mapper chaque pixel.
- Données complètes: Stocker directement les séquences de pixels détaillées lorsqu’un mouvement complexe se produit.
Cette classification au niveau du bloc permettait aux scènes avec des arrière-plans statiques et des actions localisées (comme des têtes parlantes ou des menus défilants) d’être compressées à des débits négligeables.
Multiplexage audio multi-pistes natif
Smacker était parmi les premiers formats centrés sur les jeux à prendre en charge l’audio multi‑canal et multi‑piste intégré. Les développeurs pouvaient intercaler du son compressé mono ou stéréo directement à côté des blocs vidéo. Cette architecture prenait en charge :
- Audio PCM natif non compressé.
- La compression audio propriétaire adaptative basée sur le DPCM de RAD (compressant l’audio jusqu’à une représentation 4 bits avec une surcharge CPU minimale).
- Pistes linguistiques indépendantes pour les localisations de jeux internationales sans dupliquer la piste vidéo sous-jacente.
Conception asymétrique (décompression rapide plutôt qu’encodage rapide)
Les algorithmes de compression de Smacker étaient délibérément asymétriques : l’encodage demandait un temps considérable et une optimisation mathématique, mais la décompression ne nécessitait que le strict minimum de cycles CPU. Un ordinateur 486 modeste de 33 MHz pouvait décoder des vidéos Smacker de 15 à 30 FPS en temps réel tout en maintenant la synchronisation audio.
3. Résumé des caractéristiques clés
| Attribut | Spécification |
|---|---|
| Développeur | RAD Game Tools (Acquis par Epic Games en 2021) |
| Version initiale | 1994 |
| Extension de fichier | .smk |
| Successeur | Vidéo Bink (.bik, .bk2) |
| Profondeur de couleur | Indexé 8 bits (256 couleurs sélectionnables par image) |
| Méthode de transformation | Quantification vectorielle spatiale (partitionnement de blocs $4 \times 4$) |
| Compression temporelle | Correspondance de blocs inter-images avec suivi du cycle de palette |
| Format audio | PCM linéaire, Smacker DPCM 4 bits, canaux multi-pistes |
| Utilisation principale dans l’industrie | Cinématiques de jeux vidéo, cinématiques d’introduction, logos animés |
| Support du décodage | Intégré via FFmpeg, Libavcodec, RAD Video Tools |
4. Comment ouvrir et lire les fichiers vidéo .smk
Parce que les lecteurs multimédias modernes ne sont plus fournis avec un support natif pour les vidéos de jeux legacy 8 bits, les applications standard comme Windows Media Player ou QuickTime ne pourront pas ouvrir les fichiers .smk. Vous pouvez les lire de manière fiable en utilisant les outils suivants :
Méthode 1 : VLC Media Player (multiplateforme)
VLC inclut un support natif du décodage vidéo et audio Smacker via le libavcodec de FFmpeg :
- Téléchargez et lancez VLC Media Player.
- Glissez‑déposez le fichier
.smkdirectement dans la fenêtre VLC. - Note : Si les couleurs semblent trop saturées ou décalées, l’accélération vidéo matérielle de VLC peut être temporairement désactivée dans
Tools > Preferences > Input / Codecsafin de laisser le mappeur de couleurs logiciel rendre directement la palette 8 bits.
Méthode 2 : FFplay (ligne de commande)
Si vous avez la suite FFmpeg installée, l’utilitaire ffplay fourni est le moyen le plus rapide et le plus précis pour rendre les flux .smk :
ffplay cutscene.smk
Méthode 3 : Les outils vidéo RAD (Windows)
RAD Game Tools continue d’offrir la suite d’utilitaires The RAD Video Tools :
- Téléchargez et installez The RAD Video Tools depuis le site officiel d’Epic Games / RAD.
- Lancez l’utilitaire et parcourez votre système de fichiers pour sélectionner le fichier
.smkcible. - Cliquez sur le bouton Play pour visionner la cinématique avec son redimensionnement et ses timings de palette originaux et authentiques.
5. Comment créer et convertir une vidéo .smk
Pouvez‑vous encore créer des fichiers natifs .smk ?
Les développeurs modernes créent rarement des fichiers .smk originaux aujourd’hui, car le matériel actuel décode facilement le HEVC ou l’AV1 4K 10 bits. Cependant, si vous développez des logiciels homebrew, modifiez des jeux classiques ou créez des projets PC rétro :
- The RAD Video Tools contient le compresseur hérité « Smack ». Vous pouvez charger un
.avinon compressé ou une séquence d’images et l’encoder en.smk. - Note : FFmpeg inclut un décodeur Smacker natif, mais il ne contient pas d’encodeur Smacker natif en raison de la nature propriétaire et obsolète du format.
Conversion de .smk en MP4 moderne (H.264 / AAC)
Pour conserver les cinématiques vintage ou les télécharger sur des plateformes modernes (comme YouTube ou les navigateurs web), convertissez-les en MP4 à l’aide de FFmpeg :
# Convert classic Smacker video to modern universally compatible MP4
ffmpeg -i intro.smk -c:v libx264 -pix_fmt yuv420p -crf 18 -c:a aac -b:a 192k intro_restored.mp4
Astuce : Parce que .smk utilise des palettes de couleurs indexées, forcer -pix_fmt yuv420p garantit que les appareils mobiles modernes et les navigateurs web rendront la vidéo sans erreurs de lecture avec écran noir.
6. Questions fréquemment posées (FAQ)
**Q1: Quelle était la principale raison pour laquelle les développeurs de jeux utilisaient les fichiers SMK ? Smacker permettait une lecture vidéo fluide et synchronisée sur des lecteurs CD-ROM lents et des CPU à faible puissance sans nécessiter de décodeurs matériels.
**Q2: Quelle est la différence entre un fichier SMK et un fichier BIK ?
Smacker (.smk) est limité à 256 couleurs (8 bits), tandis que son successeur, Bink Video (.bik), prend en charge la couleur vraie 24 bits complète et des résolutions plus élevées.
**Q3: Les navigateurs web modernes peuvent-ils lire les fichiers .smk nativement ? Non, les navigateurs web modernes ne prennent pas en charge le codec Smacker et nécessitent que les fichiers soient d’abord convertis en MP4 ou WebM.
**Q4: Un fichier SMK prend‑il en charge plusieurs langues audio simultanément ? Oui, le conteneur Smacker permet plusieurs pistes audio indépendantes intercalées à côté de la vidéo pour les cinématiques localisées.
**Q5: Qui possède la technologie vidéo Smacker aujourd’hui ? Epic Games possède Smacker suite à son acquisition de RAD Game Tools en janvier 2021.
7. Références et ressources utiles
- Portail officiel de RAD Game Tools: Aperçu de RAD Game Tools (Epic Games)
- Spécification Smacker du Wiki Multimédia: Wiki Multimédia - Analyse technique de Smacker
- Documentation des codecs FFmpeg: Formats vidéo et décodeurs pris en charge par FFmpeg
- Référence FileInfo: Extension de fichier SMK expliquée