Atari STで『Command & Conquer』のムービーを再生するSTVコーデックを自作した話
STV: A full-motion video codec for the Atari ST

1985年発売のAtari STで『Command & Conquer』の移植に挑む開発者が、FMV(フルモーションビデオ)を16色で再生するためのコーデック「STV」を自作しました。VQA形式はそのままでは使えないため、8x8ピクセルのタイルとコードブック方式を採用し、68000 CPUのmovep命令を活用。エンコードはPC側で行い、プレイヤーは単純な処理に徹することで、8MHzのCPUでもスムーズに再生できます。動的コードブックやYUV色空間、周波数領域での比較など、エンコーダ側の工夫も紹介されています。
賢いアルゴリズムは、ハードウェアにうまく適応した愚直なアセンブリコードに負けることがある。
HNでの議論
13- gblargg
サンプルクリップがどれだけのサイズにエンコードされるのか見てみたかった。それとも、これは単に再生能力を試す技術テストであって、動画サイズを最適化しようというものではないのか?
- ColdStream
これのタイルマップが動作しているのを見ると、このアイデアがどれほど天才的でシンプルなのかがわかる。1フレームで更新できるタイルは32枚だけだが、動きが十分に少なく、割り当てる余裕のあるスペースがあれば、表示される前にタイルを事前にロードできる。
これをAmiga、メガドライブ、ネオジオなどの類似システムに移植するのを見てみたい。すべて68Kで、すべてタイルベースだ。
また、最後のゲームプレイを見ると、本当に素晴らしい。そんなシステムでそれが可能だとは到底思えなかっただろうが、実際に動いている。
- esafak
> 各8×8ブロックは短いDCT(離散コサイン変換)特徴ベクトルに変換され、距離は生のピクセルではなくそこで測定される。
これはあなたのアイデアですか、それともエージェントのアイデアですか?エントロピー符号化を除けば、本質的にJPEGを説明しているのに、その名前を挙げていないのは奇妙に感じるからです。JPEGは1992年にリリースされました——C&Cより前です。それで、なぜWestwoodもJPEGを使わなかったのか疑問に思います...
余談ですが、DCTの発明者:https://en.wikipedia.org/wiki/Nasir_Ahmed_(engineer)