Atari STで『Command & Conquer』のムービーを再生するSTVコーデックを自作した話

STV: A full-motion video codec for the Atari ST

Atari STで『Command & Conquer』のムービーを再生するSTVコーデックを自作した話

1985年発売のAtari STで『Command & Conquer』の移植に挑む開発者が、FMV(フルモーションビデオ)を16色で再生するためのコーデック「STV」を自作しました。VQA形式はそのままでは使えないため、8x8ピクセルのタイルとコードブック方式を採用し、68000 CPUのmovep命令を活用。エンコードはPC側で行い、プレイヤーは単純な処理に徹することで、8MHzのCPUでもスムーズに再生できます。動的コードブックやYUV色空間、周波数領域での比較など、エンコーダ側の工夫も紹介されています。

賢いアルゴリズムは、ハードウェアにうまく適応した愚直なアセンブリコードに負けることがある。
  1. gblargg

    サンプルクリップがどれだけのサイズにエンコードされるのか見てみたかった。それとも、これは単に再生能力を試す技術テストであって、動画サイズを最適化しようというものではないのか?

  2. ColdStream

    これのタイルマップが動作しているのを見ると、このアイデアがどれほど天才的でシンプルなのかがわかる。1フレームで更新できるタイルは32枚だけだが、動きが十分に少なく、割り当てる余裕のあるスペースがあれば、表示される前にタイルを事前にロードできる。

    これをAmiga、メガドライブ、ネオジオなどの類似システムに移植するのを見てみたい。すべて68Kで、すべてタイルベースだ。

    また、最後のゲームプレイを見ると、本当に素晴らしい。そんなシステムでそれが可能だとは到底思えなかっただろうが、実際に動いている。

  3. esafak

    > 各8×8ブロックは短いDCT(離散コサイン変換)特徴ベクトルに変換され、距離は生のピクセルではなくそこで測定される。

    これはあなたのアイデアですか、それともエージェントのアイデアですか?エントロピー符号化を除けば、本質的にJPEGを説明しているのに、その名前を挙げていないのは奇妙に感じるからです。JPEGは1992年にリリースされました——C&Cより前です。それで、なぜWestwoodもJPEGを使わなかったのか疑問に思います...

    余談ですが、DCTの発明者:https://en.wikipedia.org/wiki/Nasir_Ahmed_(engineer)

この日のほかの記事

2026-08-07