Suprasti Smacker (.smk): klasikinis vaizdo formatas auksinės eros PC žaidimuose
Jei 1990‑ųjų viduryje–pabaigoje arba 2000‑ųjų pradžioje žaidėte PC vaizdo žaidimus – pavyzdžiui, Diablo, StarCraft, Baldur’s Gate arba Warcraft II – susidūrėte su Smacker vaizdo formatu (.smk).
Prieš tai, kai aparatinės įrangos spartinamas MPEG dekodavimas ir specialios daugiagijės procesoriaus branduoliai tapo standartu asmeniniuose kompiuteriuose, sklandaus, sinchronizuoto pilno judesio vaizdo (FMV) su daugiakanalėmis skaitmeninėmis garsų takeliais grojimas buvo milžiniškas skaičiavimo iššūkis. Standartiniai CD‑ROM įrenginiai perdavė duomenis vidutiniu 150–300 KB/s (1×–2× greičiai), o įprasti 486 ar ankstyvieji Pentium procesoriai negalėjo susidoroti su skaičiavimais reikalaujančiais transformacijos kodekais.
Norint tai išspręsti, RAD Game Tools sukūrė Smacker, aukštos efektyvumo vaizdo architektūrą, specialiai optimizuotą tik programinės įrangos dekompresijai. Neapdoroti arba įkapsuliuoti vaizdo failai, sukurti šiuo konvejeriu, turi .smk failo plėtinį.
1. Kas yra SMK failas?
„.smk“ failas yra nuosavybinis multimedijos konteineris ir vaizdo srautas, sukurtas „RAD Game Tools“ (dabar priklausantis „Epic Games“). Pirmą kartą pristatytas apie 1994 m., Smacker leido kūrėjams transliuoti 256 spalvų pilno judesio kinematiką tiesiai iš vienagubo greičio CD-ROMų, neišmetant kadrų ir nesustabdant sistemos.
Skirtingai nuo šiuolaikinių tarp‑kadrų kodekų, kurie stipriai priklauso nuo slankaus kablelio aritmetikos ir diskretinių kosinusų transformacijų (DCT), Smacker buvo sukurtas vykdyti beveik visiškai naudojant sveikųjų skaičių operacijas, paieškos lenteles ir žemo lygio x86 asemblių procedūras. Jis dominuodavo 1990‑ųjų žaidimų kinematiką, kol „RAD Game Tools“ 1999 m. pristatė jo 24‑bitų tikros spalvos pakopą – Bink Video (.bik).
2. Pagrindinės Smacker kodeko savybės
Smacker išliekanti techninė įtaka kyla iš jos pritaikytos pusiausvyros tarp mažos skaičiavimo sudėtingumo ir vaizdo tikslumo indeksuotų spalvų aparatinėje įrangoje:
8‑bitų indeksuota paletės kvantizacija
Viduryje 1990‑ųjų metų didžioji dalis PC ekranų veikia 256 spalvų VGA arba SVGA režimu (8‑bitų paletė). Smacker priėmė šį apribojimą. Vietoj 24‑bitų RGB reikšmių saugojimo ir operacinės sistemos priverstinai lėtai ditheringiui vykdyti realiu laiku, Smacker suspaudė vaizdo kadrus tiesiogiai prieš dinaminę 256 spalvų paletę.
Kadrų po kadrų paletės morfavimas ir ciklinimas
Smacker palaikė sklandžius paletės atnaujinimus tarp kadrų. Jei žaidimo scenarijus perėjo nuo ryškios dienos aplinkos iki tamsaus urvo, .smk failas galėjo įvesti lokalizuotus paletės pakeitimus arba visus paletės keitimus konkrečiuose raktiniuose kadruose, išvengiant juostų ir spalvų iškraipymų.
Vektorinė kvantizacija ir blokų dekompozicija
Kadrai .smk sraute suskaidomi į $4 \times 4$ pikselių blokelius. Smacker naudoja vektorinės kvantizacijos metodus, sujungtus su glaustu operacinių režimų rinkiniu kiekvienam blokui:
- Praleisti: Išlaikyti pikselius iš ankstesnio kadro.
- Vientisa/Viena spalva: Užpildyti visą $4 \times 4$ bloką vienu paletės indeksu.
- Dviejų spalvų / Bitkaukė: Apibrėžti du paletės įrašus ir naudoti 16‑bitų kaukę kiekvienam pikseliui susieti.
- Visi duomenys: Tiesiogiai saugoti išsamias pikselių sekas, kai vyksta sudėtingas judesys.
Ši blokų lygio klasifikacija leido scenoms su statiškais fonais ir lokalizuotu veiksniu (pvz., kalbančiais galvomis arba slinkančiais meniu) suspausti iki praktiškai neįžvalgų duomenų greičių.
Gimtoji daugiatrakčių garso multiplexavimas
Smacker buvo vienas iš pirmųjų žaidimams pritaikytų formatų, palaikančių integruotą daugiakanalį, daugiatrakčių garsą. Kūrėjai galėjo įterpti suspaustą mono arba stereo garsą tiesiai šalia vaizdo blokų. Ši architektūra palaikė:
- Natūralus nesuspaustas PCM garsas.
- RAD nuosavybinis adaptacinis DPCM pagrįstas garso suspaudimas (garso suspaudimas iki 4‑bitų atvaizdavimo su minimaliu CPU našumu).
- Nepriklausomi kalbos takeliai tarptautinėms žaidimų lokalizacijoms be pagrindinio vaizdo takelio dubliavimo.
Asimetrinis dizainas (greitas išskaidymas virš greito kodavimo)
Smacker suspaudimo algoritmai buvo tyčiai asymetriški: kodavimui reikėjo daug laiko ir matematinių optimizacijų, tačiau dekompresija reikalavo tik minimalaus CPU ciklų skaičiaus. Vidutinis 33 MHz 486 kompiuteris galėjo realiu laiku iškoduoti 15–30 FPS Smacker vaizdo įrašą, išlaikydamas garso sinchronizaciją.
3. Pagrindinių savybių santrauka
| Atributas | Specifikacija |
|---|---|
| Kūrėjas | RAD Game Tools (Įsigyta „Epic Games“ 2021 m.) |
| Pradinis leidimas | 1994 |
| Failo plėtinys | .smk |
| Paveldėtojas | Bink Video (.bik, .bk2) |
| Spalvų gylis | 8-bit indeksuotas (256 pasirenkamos spalvos per kadrą) |
| Transformacijos metodas | Erdvinė vektorinė kvantizacija ($4 \times 4$ blokų skaidymas) |
| Laikinas suspaudimas | Tarpkadrų blokų atitikimas su paletės ciklo sekimu |
| Garso formatas | Linijinis PCM, Smacker 4-bit DPCM, kelių takelių kanalai |
| Pagrindinis pramonės naudojimas | Vaizdo žaidimų scenos, įžanginiai kinematografiniai klipai, animuoti logotipai |
| Dekodavimo palaikymas | Įmontuota per FFmpeg, Libavcodec, RAD Video Tools |
4. Kaip atidaryti ir leisti .smk vaizdo failus
Kadangi šiuolaikiniai medijos leistuvai nebeįtraukia iš karto palaikymo senesniam 8-bitų žaidimų vaizdo formatui, standartinės programos, tokios kaip Windows Media Player arba QuickTime, nesugebės atidaryti .smk failų. Galite juos patikimai paleisti naudodami šiuos įrankius:
Metodas 1: VLC Media Player (kelių platformų)
VLC turi natūralų dekodavimo palaikymą Smacker vaizdo ir garso formatams per FFmpeg libavcodec:
- Atsisiųskite ir paleiskite VLC Media Player.
- Vilkite ir numeskite
.smkfailą tiesiai į VLC langą. - Pastaba: Jei spalvos atrodo per daug prisotintos arba pasikeitusios, VLC aparatūrinį vaizdo spartinimą galima laikinai išjungti per
Tools > Preferences > Input / Codecs, kad programinė spalvų žemėlapio funkcija tiesiogiai atvaizduotų 8-bitų paletę.
Metodas 2: FFplay (komandinė eilutė)
Jei turite įdiegtą FFmpeg paketą, įtrauktas ffplay įrankis yra greičiausias ir tiksliausias būdas atkurti .smk srautus:
ffplay cutscene.smk
Metodas 3: RAD Video Tools (Windows)
RAD Game Tools toliau siūlo The RAD Video Tools įrankių paketą:
- Atsisiųskite ir įdiekite The RAD Video Tools iš oficialios Epic Games / RAD svetainės.
- Paleiskite įrankį ir naršykite failų sistemą, kad pažymėtumėte tikslinį
.smkfailą. - Spustelėkite Play mygtuką, kad peržiūrėtumėte kinematiką su originaliu, autentišku masteliu ir paletės laiko žymėjimu.
5. Kaip sukurti ir konvertuoti .smk vaizdo įrašą
Ar vis dar galite kurti natūralius .smk failus?
Šiandien modernūs kūrėjai retai kuria originalius .smk failus, nes šiuolaikinė aparatinė įranga lengvai dekoduoja 4K 10-bit HEVC arba AV1. Tačiau jei kuriate namų gamybos programinę įrangą, modifikuojate klasikinius žaidimus arba kuriate retro PC projektus:
- The RAD Video Tools turi senovinį „Smack“ kompresorių. Galite įkelti nesuspaustą
.aviarba paveikslų seką ir ją konvertuoti į.smk. - Pastaba: FFmpeg turi natūralų Smacker dekoderį, tačiau neturi natūralaus Smacker enkoderio, nes formatas yra nuosavybinis ir pasenęs.
Konvertavimas iš .smk į modernų MP4 (H.264 / AAC)
Norint išsaugoti senovines iškarpas arba įkelti jas į šiuolaikines platformas (pvz., „YouTube“ ar internetines naršykles), konvertuokite jas į MP4 naudodami 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
Patariama: Kadangi .smk naudoja indeksuotas spalvų paletes, priverstinis -pix_fmt yuv420p užtikrina, kad šiuolaikiniai mobilieji įrenginiai ir internetinės naršyklės atvaizduos vaizdo įrašą be juodos ekrano atkūrimo klaidų.
6. Dažnai užduodami klausimai (DUK)
**Q1: Kokia buvo pagrindinė priežastis, dėl kurios žaidimų kūrėjai naudojo SMK failus? Smacker leido sklandų, sinchronizuotą vaizdo įrašų atkūrimą lėtų CD-ROM įrenginių ir mažos galios procesorių atžvilgiu, nereikalaujant aparatinių dekoderių.
**Q2: Kuo skiriasi SMK failas nuo BIK failo?
Smacker (.smk) ribojamas iki 256 spalvų (8 bitų), o jo pasekėjas, Bink Video (.bik), palaiko pilną 24‑bitų tikrą spalvą ir didesnę raišką.
**Q3: Ar šiuolaikinės internetinės naršyklės gali natūraliai leisti .smk failus? Ne, šiuolaikinės internetinės naršyklės nepalaiko Smacker kodeko ir reikalauja, kad failai pirmiausia būtų konvertuoti į MP4 arba WebM.
**Q4: Ar SMK failas palaiko kelias garso kalbas vienu metu? Taip, Smacker konteineris leidžia kelis nepriklausomus garso takelius, įterptus šalia vaizdo, lokalizuotoms scenoms.
**Q5: Kas šiandien valdo Smacker vaizdo technologiją? Epic Games valdo Smacker po to, kai 2021 m. sausį įsigijo RAD Game Tools.
7. Nuorodos ir naudingi ištekliai
- RAD Game Tools oficialus portalas: RAD Game Tools apžvalga (Epic Games)
- Multimedia Wiki Smacker specifikacija: Multimedia Wiki - Smacker techninė analizė
- FFmpeg kodekų dokumentacija: FFmpeg palaikomi vaizdo formatai ir dekoderiai
- FileInfo nuoroda: SMK failo plėtinys paaiškintas