aspose.info
TH

ไฟล์ SMK คืออะไร? วิธีเปิด เล่น และแปลงวิดีโอ Smacker

อัปเดตเมื่อ

ทำความเข้าใจ Smacker (.smk): รูปแบบวิดีโอคลาสสิกของยุคทองของการเล่นเกม PC

หากคุณเคยเล่นเกมวิดีโอบน PC ในช่วงกลางถึงปลายยุค 1990 หรือต้นยุค 2000—เช่น Diablo, StarCraft, Baldur’s Gate, หรือ Warcraft II—คุณคงเคยเจอ รูปแบบวิดีโอ Smacker (.smk).

ก่อนที่การถอดรหัส MPEG ที่เร่งด้วยฮาร์ดแวร์และ CPU แบบหลายคอร์จะกลายเป็นมาตรฐานในคอมพิวเตอร์ส่วนบุคคล การเล่นวิดีโอเต็มเคลื่อนไหว (FMV) ที่ราบรื่นและซิงโครไนซ์พร้อมเสียงดิจิทัลหลายแทร็กเป็นอุปสรรคด้านการคำนวณที่ใหญ่โต ไดรฟ์ CD-ROM มาตรฐานถ่ายโอนข้อมูลที่อัตรา 150 ถึง 300 KB/s (ความเร็ว 1x ถึง 2x) และโปรเซสเซอร์ 486 หรือ Pentium รุ่นแรก ๆ ไม่สามารถจัดการกับโคเดกที่ต้องการการแปลงคำนวณหนักได้.

เพื่อแก้ปัญหานี้ RAD Game Tools ได้พัฒนา Smacker ซึ่งเป็นสถาปัตยกรรมวิดีโอประสิทธิภาพสูงที่ออกแบบมาเฉพาะสำหรับการดีคอมเพรสซิงแบบซอฟต์แวร์เท่านั้น ไฟล์วิดีโอแบบดิบหรือที่ห่อหุ้มที่สร้างด้วยกระบวนการนี้จะมีส่วนขยายไฟล์เป็น .smk.

1. ไฟล์ SMK คืออะไร?

ไฟล์ .smk เป็นคอนเทนเนอร์มัลติมีเดียแบบเฉพาะและสตรีมวิดีโอที่สร้างโดย RAD Game Tools (ปัจจุบันเป็นส่วนหนึ่งของ Epic Games) แนะนำประมาณปี 1994 Smacker ทำให้ผู้พัฒนาสามารถสตรีมภาพยนตร์เคลื่อนไหวเต็มสี 256 สีโดยตรงจาก CD-ROM ความเร็วเดียวโดยไม่ทำให้เฟรมหลุดหรือระบบหยุดทำงาน

ต่างจากโคเดกสมัยใหม่ที่อาศัยการคำนวณแบบ floating-point และการแปลงโคไซน์แบบไม่ต่อเนื่อง (DCT) อย่างหนัก Smacker ถูกออกแบบให้ทำงานเกือบทั้งหมดผ่านการดำเนินการแบบจำนวนเต็ม ตารางค้นหา และรูทีนแอสเซมบลีระดับต่ำของ x86 มันครองตลาดภาพยนตร์เกมในยุค 1990 จนกระทั่ง RAD Game Tools เปิดตัวรุ่นสืบทอดสีจริง 24‑bit คือ Bink Video (.bik) ในปี 1999

2. คุณลักษณะหลักของโคเดก Smacker

มรดกทางเทคนิคที่คงอยู่ของ Smacker มาจากการปรับสมดุลที่เหมาะสมระหว่างความซับซ้อนการคำนวณต่ำและความคมชัดของภาพบนฮาร์ดแวร์สีที่ใช้ดัชนีสี:

การควอนไทเซชันพาเลตแบบดัชนี 8 บิต

ในช่วงกลางทศวรรษ 1990 ส่วนใหญ่ของจอแสดงผล PC ทำงานในโหมด VGA หรือ SVGA 256 สี (พาเล็ตต์ 8‑บิต) Smacker ยอมรับข้อจำกัดนี้ แทนที่จะเก็บค่า RGB 24‑บิตและบังคับระบบปฏิบัติการให้ทำ dithering ช้าแบบเรียลไทม์ Smacker บีบอัดเฟรมวิดีโอโดยตรงกับพาเล็ตต์ 256‑สีที่เปลี่ยนแปลงได้

การเปลี่ยนแปลงและหมุนพาเลตแบบเฟรมต่อเฟรม

Smacker รองรับการอัปเดตพาเลตอย่างต่อเนื่องระหว่างเฟรม หากฉากตัดในเกมเปลี่ยนจากสภาพแสงกลางวันที่สว่างไปยังถ้ำมืด ไฟล์ .smk สามารถแนะนำการเปลี่ยนแปลงพาเลตแบบเฉพาะจุดหรือการสลับพาเลตทั้งหมดในคีย์เฟรมที่กำหนด เพื่อหลีกเลี่ยงการเกิดแถบสีและการบิดเบือนสี

การควอนติฟายเวกเตอร์และการแยกบล็อก

เฟรมภายในสตรีม .smk จะถูกแบ่งเป็นบล็อกพิกเซลขนาด $4 \times 4$ Smacker ใช้เทคนิคการควอนไทเซชันแบบเวกเตอร์ร่วมกับชุดโหมดการทำงานที่กะทัดรัดต่อบล็อก:

  • Skip: เก็บพิกเซลจากเฟรมก่อนหน้าไว้
  • Solid/Single Color: เติมบล็อก $4 \times 4$ ทั้งหมดด้วยดัชนีพาเลตเดียว
  • Two-Color / Bitmask: กำหนดรายการพาเลตสองรายการและใช้มาสก์ 16 บิตเพื่อแมปแต่ละพิกเซล
  • Full Data: เก็บลำดับพิกเซลละเอียดโดยตรงเมื่อเกิดการเคลื่อนไหวที่ซับซ้อน

การจำแนกระดับบล็อกนี้ทำให้ฉากที่มีพื้นหลังคงที่และการกระทำเฉพาะจุด (เช่น หัวหน้าพูดหรือเมนูเลื่อน) สามารถบีบอัดลงไปจนถึงอัตราข้อมูลที่แทบไม่มี

การทำมัลติแทร็กเสียงแบบเนทีฟหลายช่องสัญญาณ

Smacker เป็นหนึ่งในรูปแบบที่มุ่งเน้นเกมแรก ๆ ที่รองรับเสียงหลายช่องหลายแทร็กแบบบูรณาการ นักพัฒนาสามารถแทรกเสียงโมโนหรือสเตอริโอที่บีบอัดไว้ข้าง ๆ ชunks วิดีโอโดยตรง สถาปัตยกรรมนี้รองรับ:

  • เสียง PCM ดิบที่ไม่ได้บีบอัด.
  • การบีบอัดเสียงแบบ DPCM ที่ปรับตัวได้ของ RAD (บีบอัดเสียงลงเป็นการแสดงผล 4 บิตโดยใช้ทรัพยากร CPU ขั้นต่ำ).
  • แทร็กภาษาอิสระสำหรับการแปลเกมระดับสากลโดยไม่ต้องทำสำเนาแทร็กวิดีโอพื้นฐาน.

การออกแบบแบบไม่สมมาตร (การแตกข้อมูลเร็วกว่า การเข้ารหัสเร็ว)

อัลกอริธึมการบีบอัดของ Smacker ถูกออกแบบให้ไม่สมดุลโดยเจตนา: การเข้ารหัสใช้เวลามากและต้องการการปรับแต่งทางคณิตศาสตร์อย่างมาก แต่การถอดรหัสต้องใช้เพียงรอบ CPU ขั้นต่ำเท่านั้น คอมพิวเตอร์ 486 ที่มีความเร็ว 33 MHz สามารถถอดรหัสวิดีโอ Smacker ที่ 15‑ถึง‑30 FPS ได้แบบเรียลไทม์พร้อมการซิงโครไนซ์เสียง.

3. สรุปคุณลักษณะสำคัญ

แอตทริบิวต์ข้อกำหนด
ผู้พัฒนาRAD Game Tools (เข้าซื้อโดย Epic Games ในปี 2021)
การปล่อยครั้งแรก1994
นามสกุลไฟล์.smk
ผู้สืบทอดวิดีโอ Bink (.bik, .bk2)
ความลึกสีดัชนี 8-bit (256 สีที่เลือกได้ต่อเฟรม)
วิธีการแปลงการควอนไทเซชันเวกเตอร์เชิงพื้นที่ ($4 \times 4$ การแบ่งบล็อก)
การบีบอัดเชิงเวลาการจับคู่บล็อกระหว่างเฟรมพร้อมการติดตามรอบพาเลต
รูปแบบเสียงLinear PCM, Smacker 4-bit DPCM, ช่องหลายแทร็ก
การใช้งานอุตสาหกรรมหลักฉากตัดของเกมวิดีโอ, ฉากเปิดต้นเรื่อง, โลโก้แอนิเมชัน
การสนับสนุนการถอดรหัสรวมอยู่ในตัวผ่าน FFmpeg, Libavcodec, RAD Video Tools

4. วิธีเปิดและเล่นไฟล์วิดีโอ .smk

เนื่องจากโปรแกรมเล่นสื่อสมัยใหม่ไม่รองรับวิดีโอเกม 8‑bit แบบดั้งเดิมโดยอัตโนมัติ แอปพลิเคชันมาตรฐานเช่น Windows Media Player หรือ QuickTime จะไม่สามารถเปิดไฟล์ .smk ได้ คุณสามารถเล่นไฟล์เหล่านี้ได้อย่างมั่นใจโดยใช้เครื่องมือต่อไปนี้:

วิธีที่ 1: VLC Media Player (ข้ามแพลตฟอร์ม)

VLC มีการสนับสนุนการถอดรหัสแบบเนทีฟสำหรับวิดีโอและเสียง Smacker ผ่าน libavcodec ของ FFmpeg:

  1. ดาวน์โหลดและเปิด VLC Media Player.
  2. ลากและวางไฟล์ .smk ลงในหน้าต่าง VLC โดยตรง.
  3. หมายเหตุ: หากสีดูอิ่มตัวเกินไปหรือเปลี่ยนสี VLC สามารถปิดการเร่งความเร็ววิดีโอด้วยฮาร์ดแวร์ชั่วคราวได้ใน Tools > Preferences > Input / Codecs เพื่อให้ซอฟต์แวร์ color mapper ทำการเรนเดอร์พาเลต 8‑bit โดยตรง.

วิธีที่ 2: FFplay (บรรทัดคำสั่ง)

หากคุณได้ติดตั้งชุด FFmpeg ไว้แล้ว ยูทิลิตี้ ffplay ที่รวมมาด้วยเป็นวิธีที่เร็วที่สุดและแม่นยำที่สุดในการเรนเดอร์สตรีม .smk:

ffplay cutscene.smk

วิธีที่ 3: The RAD Video Tools (Windows)

RAD Game Tools ยังคงให้บริการชุดยูทิลิตี้ The RAD Video Tools:

  1. ดาวน์โหลดและติดตั้ง The RAD Video Tools จากเว็บไซต์อย่างเป็นทางการของ Epic Games / RAD.
  2. เปิดยูทิลิตี้และเรียกดูระบบไฟล์ของคุณเพื่อเลือกไฟล์ .smk เป้าหมาย.
  3. คลิกปุ่ม Play เพื่อดูภาพยนตร์พร้อมการสเกลและการจัดเวลา palette ดั้งเดิมที่แท้จริง.

5. วิธีสร้างและแปลงวิดีโอ .smk

คุณยังสามารถสร้างไฟล์ .smk แบบดั้งเดิมได้หรือไม่?

นักพัฒนาสมัยใหม่แทบไม่สร้างไฟล์ .smk ดั้งเดิมในปัจจุบัน เนื่องจากฮาร์ดแวร์สมัยใหม่สามารถถอดรหัส 4K 10-bit HEVC หรือ AV1 ได้อย่างง่ายดาย อย่างไรก็ตาม หากคุณกำลังพัฒนาซอฟต์แวร์ homebrew, ปรับแต่งเกมคลาสสิก, หรือสร้างโครงการคอมพิวเตอร์ย้อนยุค:

  • The RAD Video Tools มีคอมเพรสเซอร์ “Smack” รุ่นเก่า คุณสามารถโหลดไฟล์ .avi ที่ไม่ได้บีบอัดหรือชุดภาพและเข้ารหัสเป็น .smk ได้.
  • หมายเหตุ: FFmpeg มี decoder Smacker แบบเนทีฟอยู่แล้ว แต่ไม่มี encoder Smacker แบบเนทีฟเนื่องจากรูปแบบนี้เป็นของเจ้าของลิขสิทธิ์และล้าสมัย.

การแปลง .smk เป็น MP4 สมัยใหม่ (H.264 / AAC)

เพื่อรักษาฉากตัดแบบวินเทจหรืออัปโหลดไปยังแพลตฟอร์มสมัยใหม่ (เช่น YouTube หรือเว็บเบราว์เซอร์) ให้แปลงเป็น MP4 ด้วย 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: เนื่องจาก .smk ใช้พาเลตสีแบบจัดดัชนี การบังคับ -pix_fmt yuv420p จะรับประกันว่าอุปกรณ์มือถือสมัยใหม่และเว็บเบราว์เซอร์จะเรนเดอร์วิดีโอโดยไม่มีข้อผิดพลาดการเล่นหน้าจอสีดำ.

6. คำถามที่พบบ่อย (FAQ)

**Q1: เหตุผลหลักที่นักพัฒนาเกมใช้ไฟล์ SMK คืออะไร? Smacker ทำให้การเล่นวิดีโอที่ราบรื่นและซิงโครไนซ์บนไดรฟ์ CD-ROM ช้าและ CPU ที่ใช้พลังงานต่ำได้โดยไม่ต้องใช้ตัวถอดรหัสฮาร์ดแวร์.

**Q2: ความแตกต่างระหว่างไฟล์ SMK กับไฟล์ BIK คืออะไร? Smacker (.smk) จำกัดที่ 256 สี (8-bit) ในขณะที่ทายาทของมัน Bink Video (.bik) รองรับสีจริง 24-bit เต็มรูปแบบและความละเอียดที่สูงกว่า.

**Q3: เว็บเบราว์เซอร์สมัยใหม่สามารถเล่นไฟล์ .smk ได้โดยตรงหรือไม่? ไม่, เว็บเบราว์เซอร์สมัยใหม่ไม่รองรับโค้ดเค็ท Smacker และต้องแปลงไฟล์เป็น MP4 หรือ WebM ก่อน.

**Q4: ไฟล์ SMK รองรับหลายภาษาสำหรับเสียงพร้อมกันหรือไม่? ใช่, คอนเทนเนอร์ Smacker อนุญาตให้มีหลายแทร็กเสียงอิสระที่แทรกซ้อนอยู่ข้างวิดีโอสำหรับฉากตัดที่แปลเป็นภาษาท้องถิ่น

**Q5: ใครเป็นเจ้าของเทคโนโลยีวิดีโอ Smacker ในปัจจุบัน? Epic Games เป็นเจ้าของ Smacker หลังจากที่ได้เข้าซื้อ RAD Game Tools ในเดือนมกราคม 2021

7. แหล่งอ้างอิงและทรัพยากรที่เป็นประโยชน์