Porozumění Smackeru (.smk): Klasický video formát zlaté éry PC her
Pokud jste hráli počítačové videohry v polovině až konci 90. let nebo na počátku 2000. let — například Diablo, StarCraft, Baldur’s Gate nebo Warcraft II — narazili jste na formát videa Smacker (.smk).
Než se v osobních počítačích stalo standardem hardwarově akcelerované dekódování MPEG a dedikované vícejádrové procesory, bylo přehrávání plynulého, synchronizovaného full‑motion videa (FMV) s vícekanálovým digitálním zvukem obrovskou výpočetní překážkou. Standardní CD‑ROM mechaniky přenášely data s mírnou rychlostí 150 až 300 KB/s (1‑2× rychlosti) a typické procesory 486 nebo rané Pentium nedokázaly zvládnout výpočetně náročné transformovací kodeky.
Aby to vyřešili, RAD Game Tools vyvinuli Smacker, vysoce efektivní video architekturu optimalizovanou speciálně pro dekompresi pouze pomocí softwaru. Surové nebo zapouzdřené video soubory vytvořené tímto pipeline nesou příponu .smk.
1. Co je soubor SMK?
Soubor .smk je proprietární multimediální kontejner a video stream vytvořený společností RAD Game Tools (nyní součástí Epic Games). Představený kolem roku 1994, Smacker umožnil vývojářům streamovat 256‑barevné full‑motion cinematics přímo z jednosměrných CD‑ROM bez ztráty snímků nebo zpomalení systému.
Na rozdíl od moderních inter‑frame kodeků, které se silně spoléhají na operace s plovoucí desetinnou čárkou a diskrétní kosinové transformace (DCT), byl Smacker navržen tak, aby běžel téměř výhradně pomocí celočíselných operací, vyhledávacích tabulek a nízkoúrovňových x86 assemblerových rutin. Dominoval ve filmových sekvencích her 90. let, dokud RAD Game Tools v roce 1999 nepředstavil svého 24‑bitového true‑color nástupce, Bink Video (.bik).
2. Hlavní funkce kodeku Smacker
Trvalé technické dědictví Smackeru vychází z jeho přizpůsobené rovnováhy mezi nízkou výpočetní složitostí a vizuální věrností na hardware s indexovanými barvami:
8bitová indexovaná kvantizace palety
V polovině 90. let většina PC monitorů pracovala v 256‑barevném režimu VGA nebo SVGA (8‑bitová paleta). Smacker tuto omezenost využil. Místo ukládání 24‑bitových RGB hodnot a nutnosti operačního systému provádět pomalé dithrování za běhu, Smacker komprimoval video snímky přímo proti dynamickým 256‑barevným paletám.
Morfování a cyklování palety snímek po snímku
Smacker podporoval plynulé aktualizace palety mezi snímky. Pokud se ve hře cutscene přesunula z jasného denního prostředí do temné jeskyně, soubor .smk mohl zavést lokální úpravy palety nebo úplné výměny palety na konkrétních klíčových snímcích, čímž se předešlo páskování a barevnému zkreslení.
Vektorová kvantizace a bloková dekompozice
Snímky uvnitř proudu .smk jsou rozděleny na bloky o velikosti $4 \times 4$ pixelů. Smacker používá techniky vektorové kvantizace v kombinaci s kompaktním souborem provozních režimů pro každý blok:
- Skip: Zachovat pixely z předchozího snímku.
- Solid/Single Color: Vyplnit celý blok $4 \times 4$ jedním indexem palety.
- Two-Color / Bitmask: Definovat dva položky palety a použít 16‑bitovou masku k mapování každého pixelu.
- Full Data: Přímo uložit podrobné sekvence pixelů při výskytu složitého pohybu.
Tato klasifikace na úrovni bloků umožnila scénám se statickým pozadím a lokalizovanou akcí (například mluvící hlavy nebo posouvající se menu) komprimovat na zanedbatelné datové rychlosti.
Nativní multiplexování více stop audio
Smacker byl jedním z prvních herně zaměřených formátů, který podporoval integrovaný vícekanálový, více stopový zvuk. Vývojáři mohli prokládat komprimovaný mono nebo stereo zvuk přímo vedle video bloků. Tato architektura podporovala:
- Nativní nekomprimovaný PCM audio.
- Proprietární adaptivní DPCM‑založená audio komprese společnosti RAD (komprimuje audio na 4‑bitovou reprezentaci s minimální zátěží CPU).
- Nezávislé jazykové stopy pro mezinárodní lokalizace her bez duplikování podkladové video stopy.
Asymetrický design (rychlé dekomprimování před rychlým kódováním)
Komprimační algoritmy Smacker byly úmyslně asymetrické: kódování vyžadovalo značný čas a matematickou optimalizaci, ale dekomprese potřebovala jen minimální počet cyklů CPU. Skromný počítač s 33 MHz 486 dokázal v reálném čase dekódovat Smacker video při 15‑30 FPS a zachovat synchronizaci zvuku.
3. Shrnutí klíčových charakteristik
| Atribut | Specifikace |
|---|---|
| Vývojář | RAD Game Tools (zakoupeno společností Epic Games v roce 2021) |
| Počáteční vydání | 1994 |
| Přípona souboru | .smk |
| Nástupce | Bink Video (.bik, .bk2) |
| Hloubka barev | 8‑bitový indexovaný (256 volitelných barev na snímek) |
| Metoda transformace | Prostorová vektorová kvantizace ($4 \times 4$ rozdělení bloků) |
| Časová komprese | Mezirisové porovnávání bloků s sledováním cyklu palety |
| Formát zvuku | Lineární PCM, Smacker 4‑bit DPCM, vícekanálové stopy |
| Primární průmyslové využití | Cutscény videoher, úvodní cinematiky, animovaná loga |
| Podpora dekódování | Zabudováno přes FFmpeg, Libavcodec, RAD Video Tools |
4. Jak otevřít a přehrát video soubory .smk
Protože moderní přehrávače médií již neobsahují vestavěnou podporu pro starší 8‑bitová herní videa, standardní aplikace jako Windows Media Player nebo QuickTime selžou při otevírání souborů .smk. Můžete je spolehlivě přehrávat pomocí následujících nástrojů:
Metoda 1: VLC Media Player (víceplatforemní)
VLC obsahuje nativní podporu dekódování pro Smacker video a audio prostřednictvím libavcodec FFmpeg:
- Stáhněte a spusťte VLC Media Player.
- Přetáhněte soubor
.smkpřímo do okna VLC. - Poznámka: Pokud se barvy jeví příliš nasycené nebo posunuté, můžete dočasně vypnout hardwarovou akceleraci videa ve VLC v
Tools > Preferences > Input / Codecs, aby softwarový mapovač barev přímo vykreslil 8‑bitovou paletu.
Metoda 2: FFplay (příkazová řádka)
Pokud máte nainstalovaný balík FFmpeg, přiložený nástroj ffplay je nejrychlejší a nejpřesnější způsob, jak vykreslovat streamy .smk:
ffplay cutscene.smk
Metoda 3: The RAD Video Tools (Windows)
Společnost RAD Game Tools nadále nabízí sadu nástrojů The RAD Video Tools:
- Stáhněte a nainstalujte The RAD Video Tools z oficiálního webu Epic Games / RAD.
- Spusťte nástroj a v souborovém systému najděte a zvýrazněte cílový soubor
.smk. - Klikněte na tlačítko Play, abyste si prohlédli film s jeho původním, autentickým škálováním a časováním palety.
5. Jak vytvořit a převést video .smk
Můžete stále vytvářet nativní soubory .smk?
Moderní vývojáři dnes zřídka vytvářejí originální soubory .smk, protože moderní hardware snadno dekóduje 4K 10‑bitové HEVC nebo AV1. Přesto, pokud vyvíjíte domácí software, modifikujete klasické hry nebo stavíte retro PC projekty:
- The RAD Video Tools obsahuje starý kompresor “Smack”. Můžete načíst nekomprimovaný
.avinebo sekvenci obrázků a zakódovat ji do formátu.smk. - Poznámka: FFmpeg obsahuje nativní Smacker dekodér, ale neobsahuje nativní Smacker enkodér kvůli proprietární a zastaralé povaze formátu.
Převod .smk na moderní MP4 (H.264 / AAC)
Chcete‑li zachovat staré cutscény nebo je nahrát na moderní platformy (jako YouTube nebo webové prohlížeče), převedete je do MP4 pomocí 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
Tip: Protože .smk používá indexované barevné palety, vynucení -pix_fmt yuv420p zaručuje, že moderní mobilní zařízení a webové prohlížeče video přehrají bez chyb černé obrazovky.
6. Často kladené otázky (FAQ)
**Q1: Jaký byl hlavní důvod, proč vývojáři her používali soubory SMK? Smacker umožňoval plynulé, synchronizované přehrávání videa na pomalých CD‑ROM discích a nízkovýkonných procesorech bez nutnosti hardwarových dekodérů.
**Q2: Jaký je rozdíl mezi souborem SMK a souborem BIK?
Smacker (.smk) je omezen na 256 barev (8‑bit), zatímco jeho nástupce, Bink Video (.bik), podporuje plnou 24‑bitovou pravou barvu a vyšší rozlišení.
**Q3: Mohou moderní webové prohlížeče přehrávat soubory .smk nativně? Ne, moderní webové prohlížeče nepodporují kodek Smacker a vyžadují, aby byly soubory nejprve převedeny na MP4 nebo WebM.
**Q4: Podporuje soubor SMK současně více audio jazyků? Ano, kontejner Smacker umožňuje mít více nezávislých audio stop, které jsou prokládány vedle videa pro lokalizované sekvence.
**Q5: Kdo dnes vlastní technologii videa Smacker? Epic Games vlastní Smacker po akvizici společnosti RAD Game Tools v lednu 2021.
7. Odkazy a užitečné zdroje
- Oficiální portál RAD Game Tools: Přehled RAD Game Tools (Epic Games)
- Specifikace Smacker na Multimedia Wiki: Multimedia Wiki – Technická analýza Smacker
- Dokumentace kodeků FFmpeg: Podporované video formáty a dekodéry FFmpeg
- Reference FileInfo: Vysvětlení přípony souboru SMK