这篇文章主要介绍了 30 年前的视频格式 VQA,包括其在游戏中的应用、压缩技术、帧更新等方面的内容:
- 起源与应用:20 世纪 90 年代 CD-ROM 光盘出现后,许多游戏开发者梦想在电脑上播放电影,Westwood Studios 就是其中之一,他们的游戏如《命令与征服》以精心制作但无意的俗气间奏动画娱乐玩家,文中主要关注其内部的“VQA”视频格式。
- 高层概述:每个帧根据游戏被分割成 4x2 或 4x4 像素的块,常见块被共享并收集到称为码本的小集合中,帧可以用这些常见块表示,VQA 视频使用有损和无损压缩,有损技术包括向量量化、调色板和增量编码,无损技术包括滑动窗口压缩、数据重新排序和行程编码,且没有熵编码以保持解码器简单。
- “VQ”名称的含义:VQA 是一种向量量化编解码器,将许多相似部分用单个代表替换,码本中的块称为向量,索引称为代码,与颜色量化相关,将高数量颜色压缩到小调色板也是向量量化。
- 帧更新:新帧是 16 位代码的 2D 数组,代表码本中的块索引,码本和帧更新都用滑动窗口压缩,数据重新排序有时能使数据更易压缩,15 位 Hi-Color VQAs 用行程编码,帧更新还可通过增量编码跳过一些块。
- 有效性:8 位视频比特率约为 1 Mbit/s,15 位约为 2.5 Mbit/s,8 位和 15 位视频的压缩比分别约为 5.9 倍和 25 倍,但因无法获取原始视频无法测量图像失真。不同视频的码本、索引等细节有所不同。
- 回顾:在《红色警戒 2》中视频用行业标准的 Bink Video 编码,最后一款使用 VQA 的游戏是 2000 年的《NoX》动作 RPG,据传其意外携带了原始码本构造代码。
- 资源:提供了关于 VQA 格式细节的链接、不同的编码器、ffmpeg 的相关代码和测试数据等资源。
- 一些未分类的细节:VQA 容器格式为 RIFF 风格的块,《银翼杀手》1997 年的视频中也有 Z 缓冲区,VQA 至少有三个版本,帧速率除《传奇的 Kyrandia III》外为 15 帧/秒,所有码本默认包含纯色块,《命令与征服》重制版需 upscale 压缩视频。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。