![]() | |
| ファイル名拡張子 |
.smk |
|---|---|
| インターネットメディアの種類 | ビデオ/vnd.radgamettools.smacker |
| タイプコード | スム2 |
| 開発者 | エピックゲームズツール |
| フォーマットの種類 | ビデオコーデック |
| コンテナ用 | スマッカー |
Smackerビデオは、 Epic Games Toolsによって開発されたビデオファイル形式(.SMK ファイル拡張子)であり、主にビデオゲームのフルモーションビデオに使用されます。[1] Smackerは、適応型8ビットRGBパレットを使用します。RADのより高い色深度のビデオ形式は、Bink Videoです。Smacker形式では、コンテナ形式、ビデオ圧縮形式、およびオーディオ圧縮形式が指定されています。[2] 1994年のリリース以来、Smackerは2300を超えるゲームで使用されています。[1] Blizzardは、 Warcraft II、StarCraft、およびDiablo Iのゲームで見られる映画のようなビデオにこの形式を使用しました。[3]
このフォーマットはリバースエンジニアリングされ、libavcodecに実装されている。[4] [5] [6]非営利のSourceForgeプロジェクトlibsmackerは2013年にオープンソースのデコーダーをリリースした。[7]
技術的な詳細
ファイル形式(コンテナ)
Smacker は独自のコンテナ形式を定義します。[2] Smacker ファイルには、Smacker ビデオ トラックと最大 7 つのオーディオ トラックを含めることができます。各オーディオ トラックには、1 つのチャネル (モノラル) または 2 つのチャネル (ステレオ) があり、ビット深度は 8 ビットまたは 16 ビットです。オーディオは、非圧縮PCM、Smacker オーディオ形式で圧縮、または Smacker の新しいバージョンでは Bink オーディオ形式で圧縮できます。[2]
ビデオ
Smacker ビデオは 256 色をサポートしていますが、透明度はサポートしていません。[2]パレットベースの形式であるため、フレームごとに 256 色を超える色を使用することはできませんが、Smacker ビデオには、フレームごとにパレットが更新される「パレット ローテーション」により、合計でより多くの色が含まれる場合があります。[2]これにより、通常、ソース ビデオに 256 色以上が含まれている場合、SMK ファイルの見栄えが良くなります。圧縮率はコンテンツによって異なります。静止またはほとんど動かないフレームで構成されるビデオのエンコードは、最初のフレーム以降は実質的に無料です。[2]ランダムな色のフレームは、生のサイズが 2 倍以上になる可能性があります。[要出典]
Smackerビデオでは、フレームはラスタースキャン順に4×4のブロックに分割されます。[2]各ブロックは、スキップ、フィル、モノ、および3つのフルモードの6つのコーディングモードのいずれかでコーディングできます。各モードは、ランレングス符号化方式で複数のブロックに通知できます。スキップモードでは、現在のブロックは条件付き補充方式で前のフレームからコピーされます。フィルモードでは、現在のブロックが単色で塗りつぶされます。モノモードでは、パレットは256色から2色にローカルに削減されます。両方の色がビットストリームに書き込まれ、ピクセルごとに1ビットを使用して、ピクセルが2色のどちらであるかを示します。[2]モノモードはベクトル量子化として解釈でき、赤、緑、青のコンポーネントを持つ3次元ベクトルが、 2つのエントリを持つ適応型コードブックを使用して量子化されます。フルモードは3つあり、1つはSmacker形式のバージョン2で指定され、他の2つはバージョン4で追加されました。 [2]オリジナルのフルモードでは、1ピクセルにつき1色、合計16色が送信され、未圧縮の生のPCMに相当します。バージョン4で追加された2つのフルモードでは、それぞれブロックで4色と8色を使用します。[2] 4色モードでは、4×4ブロックが4つの2×2ブロックに分割され、各ブロックは単色で塗りつぶされます。8色モードでは、4×4ブロックが8つの1×2ブロックに分割され、各ブロックは単色で塗りつぶされます。[2]
さらなる圧縮は、上記のプロセスから得られるさまざまなビットストリーム要素のハフマン符号化を使用したエントロピー符号化によって実現されます。 [2] 4 つの独立したハフマン テーブルがあり、それぞれ 16 ビットのエントリがあります。1 つは塗りつぶしカラー モードのモード決定、ランレングス、塗りつぶしカラー用、1 つはモノラル モードのカラー インデックス用、1 つはモノラル モードのビットマップ用、1 つはフル モードのすべてのデータ用です。各テーブルは適応型で、ヘッダーでファイルごとに 1 回送信されます。ヘッダー内のハフマン テーブル自体は圧縮されています。コード ツリーの葉の 16 ビット値は、上位バイトと下位バイトに分割されます。各バイトは、ヘッダーにも含まれるハフマン テーブルを使用して圧縮されます。[2]
オーディオ
Smackerオーディオは、Smackerコンテナで使用できるオーディオ形式の1つです。圧縮には、差分パルスコード変調(DPCM)が使用されます。2つの連続するサンプル間の差は、ハフマンコーディングを使用して圧縮されます。ハフマンテーブルは、オーディオフレームごとに1回適応されます。[2]
参照
- インデックスカラー
- 色の量子化
- Bink Video、高色深度のビデオ用の RAD 形式
- Apple Video、同様の設計に基づいたコーデック
- Microsoft Video 1、同様の設計に基づくコーデック
- QuickTime Graphics、同様の設計に基づくコーデック
- S3テクスチャ圧縮、同様の設計に基づくテクスチャ圧縮形式
参考文献
- ^ ab 「Smacker video Technology」。RAD Game Tools 。 2013年5月4日閲覧。
- ^ abcdefghijklmn 「Smacker」。マルチメディアウィキ。2007年4月11日。 2013年4月4日閲覧。
- ^ Ladislav Zezula (2010). 「MPQアーカイブ - 概要」2013年5月4日閲覧。
- ^ 「FFmpeg ドキュメント」。FFmpeg。2013年4 月 4 日閲覧。
- ^ FFmpeg: Smacker ビデオおよび Smacker オーディオ デコーダー
- ^ FFmpeg: Smacker コンテナ デマルチプレクサ
- ^ SourceForgeプロジェクト libsmacker
外部リンク
- 公式Smackerビデオページ

