VCD 技术规范与标准演进(三):中国市场中的 VCD 3.0 与一张 ESS/EnReach 演示盘
VCD 2.0 的 PBC 能做菜单、数字选择和分支播放,但它仍是为客厅影碟机设计的。菜单由 MPEG 静止画或短视频组成,输入来自遥控器,状态转移由 PSD 数据表限定。把它用于英语学习、儿童百科或互动课件时,制作方很快会遇到几个限制:页面布局不自由,鼠标热区无处安放,脚本也无法驱动连续的小动画。
当时,中国市场出现过标作 “VCD 3.0” 或 “Interactive VCD 3.0” 的光盘。这个称呼不像 VCD 2.0 那样对应一份公开、统一的国际规范。它更像一组建立在标准 VCD 兼容层之上的商业扩展:普通影碟机仍可播放视频轨,Windows 电脑或专用平台则可启动一套互动课件运行环境。
本文以一张 ESS / EnReach Interactive VCD 3.0 演示盘为例,介绍其双轨兼容结构与专有互动资源体系。
1. 从 PBC 到课件页面
PBC 的菜单系统很适合点歌和影视选集。它的主要部件是静止画、播放项目和由数字键驱动的跳转表:
遥控器数字键
│
▼
Selection List ──► Play List ──► MPEG Track / Segment
│ │
└──────────────────┘
PSD offset 跳转
互动课件需要的却是另一类对象:在一张背景图上放置多个按钮,根据鼠标位置决定点击目标;在用户点击后切换局部图层、播放发音、等待输入,或者按条件跳到另一页。VCD 2.0 的扩展 PSD 虽然可以为计算机系统定义矩形选择区,却没有提供通用页面资源和脚本语言。
因此,VCD 3.0 类型的光盘并没有替换 VCD 2.0。它通常保留 VCD/、MPEGAV/、SEGMENT/ 这些标准层,把丰富互动资源放在附加目录中。标准层保证旧设备至少能播放节目轨;扩展层服务于带有宿主程序的电脑环境。
2. 这张样本盘是什么
该盘是 1997 至 1998 年间 EnReach Technology 与 ESS 合作推出的 Interactive VCD 3.0 演示盘,对应 ESS ES4118 等芯片方案的扩展生态。盘内附带的 Windows 端播放器为 EnReach I-Reader 1.0.0.1(AUTORUN.EXE)[OBS]:
FileDescription: I-Reader Application
InternalName: I-Reader
OriginalFilename: IREADER.EXE
FileVersion: 1, 0, 0, 1
Copyright: 1997-1998 EnReach Technology, Inc.
盘内将标准 VCD 媒体轨与一套独立的课件资源放在一起。需要说明的是,“VCD 3.0”在当时并非强制统一的国际标准,不同厂商的扩展实现可能存在差异;本文仅以该样本盘的具体格式为准。
3. 一张盘上的两套世界
目录结构解释了它如何同时照顾普通 VCD 播放器与课件宿主:
根目录
├── AUTORUN.INF
├── AUTORUN/
│ ├── AUTORUN.EXE # EnReach I-Reader 宿主程序
│ └── AUTORUN.ICO
├── PROGRAM/JAVA/
│ ├── AUTORUN.CLS # 启动配置所在的 ClassFile
│ └── COVER.YBM
├── DATA/VCD_DATA/
│ ├── *.CHM # 页面容器
│ ├── *.YBM # 图像资源
│ └── *.WAV # 音频资源
├── MPEGAV/
│ └── MUSIC01.DAT ... MUSIC19.DAT
├── SEGMENT/
│ └── ITEM0001.DAT ... ITEM0003.DAT
└── VCD/
├── INFO.VCD
├── ENTRIES.VCD
├── LOT.VCD
└── PSD.VCD
右侧的 VCD/、MPEGAV/ 和 SEGMENT/ 仍然是标准 Video CD 的语言:PBC、轨道和静止画都可以按前两篇的方式解释。PROGRAM/JAVA/、DATA/VCD_DATA/ 以及自动启动程序则属于互动扩展层。它们给课件增加了封面、页面、音效和行为逻辑。
这种并置结构也解释了一个常见现象:通用视频播放器可以处理 .DAT,却不会主动打开课件首页。它们只看到了标准媒体轨,没有执行盘内的启动程序,也不了解额外目录中的页面格式。
4. 关键文件与资源结构
4.1 AUTORUN.EXE:I-Reader 宿主程序
AUTORUN.EXE 为 1998 年构建的 x86 Windows GUI 程序(831,488 字节),内部名称为 IREADER.EXE,版权归属于 EnReach Technology [OBS]。它是随盘发行的课件运行时,负责窗口调度、页面呈现与媒体调用。其内部包含了 /PROGRAM/JAVA/AUTORUN.CLS、/DATA/VCD_DATA/、MCI 与 MPEGVideo 相关路径和调用接口。
4.2 AUTORUN.CLS:ClassFile 格式的启动配置
AUTORUN.CLS 采用标准 Java ClassFile 格式(魔数 CA FE BA BE,版本 45.3,对应 JDK 1.1)[OBS]。常量池中包含了 AutoRun、main、VCD30Kernel、COVER.YBM、HOMEPAGE.CHM 和 PlayMpeg 等符号。
这种设计利用了现成的编译工具链,将封面图像、首页文件和开场媒体文件名统一编码为带强类型的常量池元数据,并预留了底层调用符号。宿主程序未导入外部 Java 虚拟机运行时,而是直接在内部解析该文件的常量池以读取启动配置。
4.3 *.CHM:离线预排版的页面容器
DATA/VCD_DATA/ 中的 .CHM 文件以 <COMPHTML> 开头,包含了页面尺寸、BT.601 YUV 调色板以及若干由 12 字节头部引导的 Chunk [OBS]。
由于当时消费级终端算力有限,COMPHTML 采用了**离线预排版(Ahead-of-Time Binary Layout)**策略:将视口尺寸(352×288)、字体式样、调色板和绝对像素热区直接预编译为定长 Chunk 流,避免了在运行时解析复杂的文本 HTML 标签。
4.4 *.YBM 与 VCDSCRIPT:图像与行为脚本
.YBM 文件以 <YUVBMP> 开头,包含大端 BMP 风格头、256 项 YUV 调色板和索引像素 [OBS],作为 352×288 背景图和局部精灵图使用。
CHM 内部的 VCDSCRIPT Chunk 存放了明文交互脚本,采用带行号的结构化语法,支持图像绘制、按键等待、音视频调用与分支跳转:
10 REM 课件按键互动与局部发音示例
20 DRAWIMAGE "BG_PAGE.YBM", 0, 0, 0
30 DRAWIMAGE "BTN_PLAY.YBM", 140, 200, 0
40 CALL IRKEY(K)
50 IF K = 1 THEN GOTO 100
60 IF K = 2 THEN GOTO 200
70 GOTO 40
100 PLAYSOUND "CORRECT.WAV"
110 DRAWIMAGE "BTN_PRESS.YBM", 140, 200, 0
120 GOTO 40
200 PLAYVIDEO "LESSON01.DAT", 0, 1500, "NEXTPAGE.CHM"
5. VCD 3.0 与 SVCD 的定位差异
SVCD 与该类 VCD 3.0 光盘同处 CD 视频介质的后期,但演进方向完全不同:
- SVCD:着重提升音视频画质,改用 MPEG-2 变码率编码,支持更高分辨率(PAL 480×576 / NTSC 480×480)、多音轨和字幕叠加,面向传统客厅影音播放;
- VCD 3.0:重点扩展交互能力,在标准 VCD 2.0 兼容层之上引入专有页面排版、图像合成和脚本运行时,主要面向教育课件与互动应用。