第15章 光盘存储器的格式
***************************************************************************
15.1 CD盘上的物理格式
15.1.1 激光唱盘标准——红皮书(Red Book)
15.1.2 CD-ROM标准——黄皮书(Yellow Book)
15.1.3 CD-ROM/XA
15.1.4 CD-I标准——绿皮书(Green Book)
15.1.5 CD-I Ready格式
15.1.6 CD-Bridge盘
15.1.7 可录CD盘标准——橙皮书(Orange Book)
15.2 CD-ROM的逻辑格式(ISO 9660)
15.2.1 ISO 9660的重要性
15.2.2 结构设计概要
15.2.3 逻辑扇区和逻辑块
15.2.4 文件
15.2.5 目录
15.2.6 路径表
15.2.7 卷
15.3 Video CD标准——白皮书(White Book)
15.3.1 VCD盘的组织
15.3.2 VCD的文件目录结构
15.3.3 MPEG-Audio/Video扇区的结构练习与思考题参考文献和站点
***************************************************************************
CD格式包含逻辑格式和物理格式。逻辑格式实际上是文件格式的同义词,它规定如何把文件组织到光盘上以及指定文件在光盘上的物理位置,包括文件的目录结构、文件大小以及所需盘片数目等事项; 物理格式则规定数据如何放在光盘上,这些数据包括物理扇区的地址、数据的类型、数据块的大小、错误检测和校正码等。
CD格式详细记载在标准文件中,如图15-01所示。这些标准文件包括红皮书、黄皮书、ISO 9660、绿皮书、橙皮书和白皮书等,而且还在不断推出。CD的标准文件是用彩色封面包装的,所以又称为彩书标准。理解CD格式对于设计和使用CD产品都有很大帮助。

图15-01 CD标准系列
15.1 CD盘上的物理格式
15.1.1 激光唱盘标准——红皮书(Red Book)
Red Book是Philips和Sony公司为CD-DA(Compact Disc Digital Audio)定义的标准,也就是我们常说的激光唱盘标准。这个标准是整个CD工业的最基本的标准,所有其他的CD标准都是在这个标准的基础上制定的。
1,CD盘上的音乐节目是如何组织的通常,激光唱盘上的有许多首歌曲,一首歌曲安排在一条光道上。一条光道由许多节(section)组成,一节由98帧(frame)组成。帧是激光唱盘上存放声音数据的基本单元,它的结构如图15-02所示。

图15-02 激光唱盘声音数据的基本结构
(1) 同步(SYNC)
每帧的开头都有24位同步位。这24位同步位不经EFM调制,本身就是通道码。具体的码字是
1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0
任何数据经EFM调制后都不会出现与同步码字相同的码。
(2) 子码(Subcode)
每帧都有这样的一字节。在CD-DA中称为子码/控制和显示(subcode/control and display);在CD-ROM中称为控制字节(Control Bytes)。这字节的内容主要提供盘地址信息。
(3) 声音数据(Audio Data)
在CD-DA中,立体声有两个通道,每次采样有2个16位的样本,左右通道的每个16位数据分别组成2个8位字节,6次采样共24字节组成一帧。
CD盘上的98帧组成一个扇区(sector)。光道(track)上1个扇区有3234字节,即
2352个声音数据 +2 ( 392个EDC/ECC字节 +98个控制字节=3234字节它的结构如下:
3234字节
用户数据
2352=98 ( (2 ( 12)字节
第二层EDC/ECC
392个字
第一层EDC/ECC
392个字
控制字节
98字节
前面已经介绍,激光唱盘上声音数据的采样频率为44.1 kHz,每次对左右声音通道各取一个16位的样本,因此1秒钟的声音数据率就为
44.1×1 000×2×(16÷8) = 176 400字节/秒由于1帧存放24字节的声音数据,所以1秒钟所需要的帧数为
176 400÷24=7 350帧/秒
98帧构成1节,也可以说成1个扇区,所以1秒钟所需要的扇区数为
7 350÷98=75扇区/秒记住这些最基本的参数,对理解整个CD系列和DVD系列的数据结构是非常有帮助的。
(4) P,Q错误校验码由于CD-DA盘的原始误码率较高(约10-4),须要采用纠错能力很强的交叉交插里德/索洛蒙码(Cross-Interleaved Read-Solomon Code,CIRC)进行纠错。因此,每帧有2×4字节的错误校正码分别放在中间和末端,称为Q校验码和P校验码,P校验是由(32,28)RS码生成的校验码;Q校验是由(28,24)RS码生成的校验码。有关错误校正的介绍,请看[8]。
(5) 一帧数据的通道位数见表1501。
表15-01 一帧数据的通道位数编号
字段名称
通道位数
合计
(1)
同步位(SYNC)
24+3
27
(2)
子码(Subcode)
1×(14+3)
17
(3)
数据(Data)
12×(14+3)
204
(4)
Q校验码
4×(14+3)
68
(5)
数据(Data)
12×(14+3)
204
(6)
P校验码
4×(14+3)
68
合计
588
(6) 激光唱盘的光道在CD-DA中的物理光道是螺旋形,因此可以说一片CD-DA盘只有一条物理光道。而这里所指的CD-DA光道应该理解成逻辑光道比较合适。一条CD-DA光道有多个扇区组成,扇区的数目可多可少,而光道的长度可长可短,通常一首歌就组织成一条光道。
2,CD-DA的通道:P-W
CD-DA中定义了一个控制字节(Control Bytes),或者叫做子码(Subcode)。如前所述,一帧有一个8位的控制字节,98帧组成8个子通道,分别命名为P、Q、R、S、T、U、V和W子通道。一条光道上所有扇区的子通道组成CD-DA的P、Q、…, W通道。98个控制字节(98 ( 8位)组成8个子通道的结构如下:
8位
P子通道(b8)
Q子通道(b7)
R子通道(b6)
S子通道(b5)
T子通道(b4)
U子通道(b3)
V子通道(b2)
W子通道(b1)
98字节的b8组成P子通道,98字节的b7组成Q子通道,依此类推。通道P含有一个标志,它用来告诉CD播放机光道上的声音数据从什么地方开始;通道Q包含有运行时间信息,CD播放机使用这个通道中的时间信息来显示播放音乐节目的时间。Q通道的98位的数据排列成如下的形式:
98位
2位
4位
4位
72位
16位
其中,
2位:
控制字节的部分同步位
4位:
控制标志,定义这条光道上的数据类型
4位:
说明后面72位数据的标志
72位:
Q通道的数据。在盘的导入区(Lead In),含有盘的内容表TOC(Table Of Contents);在其余的盘区,含有当前的播放时间
16位:
CRC (Cyclic Redundancy Code)用于错误检测,CRC没有错误校正功能
3,CD-G(CD+Graphics)是什么
Red Book不仅定义了如何把声音数据放到CD盘上,而且还定义了一种把静态图像数据放到CD盘上的方法。如果把图像数据放到通道R~W,这种盘通常就称为CD+G盘,简称为CD-G盘。在目前的国内市场上,使用R~W通道的CD节目不多,能播放这种盘的CD播放机也不多。CD-G节目在普通的CD播放机上播放时,音乐节目可以照常欣赏,仅仅是没有图像而已。如果使用能播放CD-G节目的VCD播放机,在播放CD-G盘时要和电视机连接才能同时有音乐和图像。
15.1.2 CD-ROM标准——黄皮书(Yellow Book)
Yellow Book是Philips和Sony公司为CD-ROM(Compact Disc-Read Only Memory)定义的标准,CD工业从此进入了第二个阶段。Yellow Book在Red Book的基础上增加了两种类型的光道,加上Red Book的CD-DA光道之后,CD-ROM共有三种类型的光道:
CD-DA光道,用于存储声音数据。
CD-ROM Mode 1,用于存储计算机数据。
CD-ROM Mode 2,用于存储声音数据、静态图像或电视图像数据。
Yellow Book和Red Book相比,它们的主要差别是Red Book中2352字节的用户数据作了重新定义,解决了把CD用作计算机存储器中的两个问题,一个是计算机的寻址问题,另一个是误码率的问题,CD-ROM标准使用了一部分用户数据当作错误校正码,也就是增加了一层错误检测和错误校正,使CD盘的误码率下降到10-12以下。
1,CD-ROM Mode 1
CD-ROM Mode 1把Red Book中的2352字节的用户数据重新定义为:
2352字节
同步字节
12字节
扇区地址
4字节
用户数据
2048字节
EDC
4字节
未用
8字节
ECC
276字节
其中,
同步字节:
12字节,用于同步。
扇区地址 (Header):
4字节,定义该扇区的地址。
用户数据:
2048字节,用于存放用户数据。
EDC:
4字节,用于错误检测。如果检测结果无差错,就不执行这一层的错误校正。
未用:
8字节。
ECC:
276字节,错误检测和校正码。
CD-ROM的扇区地址与磁盘的扇区地址不同。磁盘的扇区地址是用C-H-S (柱面号-磁头号-扇区号)地址系统来表示,而CD-ROM是用计时系统中的分、秒,以及特地为CD-ROM规定的分秒(1/75秒)来表示。CD-ROM用户数据区的地址结构如下:
4字节的扇区地址称为HEADER
分(MIN)
1字节
0~74
秒(SEC)
1字节
0~59
分秒(FRAC)
1字节
0~74
方式(Mode)
1字节
01
2,CD-ROM Mode 2
CD-ROM Mode 2把Red Book中的2352字节的用户数据重新定义为:
2352字节
同步字节
12字节
扇区地址
4字节
用户数据
2336字节
CD-ROM Mode 2与CD-ROM Mode 1相比,存储的用户数据多14%,但是由于没有错误检测和错误校正码,因此在这种方式中,用户数据的误码率比Mode 1中的误码率要高。在Mode 2的扇区地址中,方式(Mode)字节域中的值设置成02。
3,混合方式(Mixed Mode)
当CD既含有CD-ROM光道又含有CD-DA光道时,这种方式称为混合方式,使用这种方式的盘叫做混合方式盘(Mixed Mode Disc)。通常,这种盘的第一条光道是CD-ROM Mode 1光道,其余的光道是CD-DA光道。这种盘上的CD-DA光道可以在普通的CD播放机上播放。
15.1.3 CD-ROM/XA
CD的第三个标准叫做CD-ROM/XA(CD-ROM Extended Architecture)标准,这是由Philips、Microsoft和Sony公司发布的。CD-ROM/XA标准是Yellow Book标准的扩充,这个标准定义了一种新型光道:CD-ROM/XA光道。连同前面Red Book标准和Yellow Book标准定义的光道,共有4种光道:
CD-DA,用于存储声音数据。
CD-ROM Mode 1,用于存储计算机数据。
CD-ROM Mode 2,用于存储压缩的声音数据、静态图像或电视图像数据。
CD-ROM Mode 2,XA格式,用于存放计算机数据、压缩的声音数据、静态图像或电视图像数据。
CD-ROM/XA在Red book和Yellow Book标准的基础上,对CD-ROM Mode 2作了扩充,定义了两种新的扇区方式。:
CD-ROM Mode 2,XA Format,Form 1:用于存储计算机数据。
CD-ROM Mode 2,XA Format,Form 2:用于存储压缩的声音、静态图像或电视图像数据。
定义了这两种扇区方式之后,CD-ROM/XA就允许把计算机数据、声音、静态图像或电视图像数据放在同一条光道上,计算机数据按Form 1的格式存放,而声音、静态图像或电视图像数据按Form 2的格式存放。这样一来,就可以根据多媒体的信息把计算机数据、声音数据、图像数据或电视图像数据交错存放在同一条光道上。
1,CD-ROM/XA Mode 2 Form 1
CD-ROM/XA Mode 2 Form 1把Red Book中的2352个用户数据字节重新定义为:
CD-ROM/XA Mode 2 Form 1:2352字节
同步字节
12字节
扇区地址
4字节
Form 1
8字节
用户数据
2048字节
EDC
4字节
ECC
276字节
在2352字节中,
同步字节:
12字节。
扇区地址 (Header):
4字节,用于计算机寻找盘上的数据。
类型 1 (Form 1,Sub-Header):
8字节,用于指示Form 1。
用户数据:
2048字节。
EDC:
4字节,用于错误检测。
ECC:
276字节,用于错误校正。
2,CD-ROM/XA Mode 2 Form 2
CD-ROM/XA Mode 2 Form 2把Red Book中的2352个用户数据字节重新定义为:
CD-ROM/XA Mode 2 Form 2:2352字节
同步字节
12字节
扇区地址
4字节
Form 2
8字节
用户数据
2324字节
EDC
4字节
2324字节中,
同步字节:
12字节。
扇区地址 (Header):
4字节,用于计算机寻找盘上的数据。
数据类型 2
(Form 2,Sub-Header):
8字节,用于指示Form 2。
用户数据:
2324字节。
3,CD-ROM/XA中的声音
CD-ROM/XA中的声音质量不是CD-DA的质量,放在CD-ROM/XA Mode 2 Form 2中的声音数据必需进行压缩,这样才能腾出空间来存放同步、扇区地址和数据类型信息。CD-ROM/XA的声音采用ADPCM(adaptive differential/delta pulse code modulation)算法进行压缩,它定义的声音有Level B和Level C两个等级。与CD-DA的声音相比,如果用一片存放74分钟的CD盘来存放CD-ROM/XA的声音,那么这两种声音最长的播放时间如表15-02所示。
表1502 CD-ROM/XA中的声音播放时间声音等级
播放时(小时)
样本大小(位)
采样速率(kHz)
CD-DA
1.25
16
44.1
Level B
5 (立体声)
10(单道声)
4
4
37.8
37.8
Level C
10(立体声)
20(单道声)
4
4
18.9
18.9
15.1.4 CD-I标准——绿皮书(Green Book)
Green Book是Philips和Sony公司为CD-I(Compact Disc Interactive)定义的标准,它的扇区格式和CD-ROM/XA的扇区格式相同。
CD-I Mode 2 Form 1:2352字节
同步字节
12字节
扇区地址
4字节
Form 1
8字节
用户数据
2048字节
EDC
4字节
ECC
276字节
CD-I Mode 2 Form 2:2352字节
同步字节
12字节
扇区地址
4字节
Form 2
8字节
用户数据
2324字节
EDC
4字节
Green Book标准允许计算机数据、压缩的声音数据和图像数据交错放在同一条CD-I光道上。CD-I光道没有在TOC中显示,目的是不要用激光唱盘播放机去播放CD-I盘。Green Book标准规定使用专用的操作系统,称为光盘实时操作系统CD-RTOS(Compact Disc-Real-Time Operating System)。 它是一个多任务实时响应的操作系统,支持各种算术和I/O协处理器,是设备独立且由中断驱动的系统,具有支持多级树形结构的文件目录等功能。
15.1.5 CD-I Ready格式使用CD-I Ready格式的CD盘称为CD-I Ready盘,它是一种有附加特性的标准激光唱盘。这种盘既可以在标准的激光唱盘播放机上播放,又可以在CD-I播放机上播放。当CD-I Ready盘在CD-I播放机上播放时,这种附加特性就可以显示出来。
Red Book标准允许把索引点(index points)放在光道上,这就允许用户跳转到光道上的指定点。激光唱盘通常只使用两个索引点:#0和#1,前者用来标识一条光道的起点,后者用来标识声音在这条光道上的起点,这两个索引点在盘上第一条光道(第一首歌)的前面,它们之间通常有2(3秒的间隔。CD-I Ready盘把这两个索引点之间的间隔增加到182秒,这样就可以存放诸如歌曲名、解说词、作者、演员等图文信息。普通的激光唱机播放CD-I Ready盘时不管这个地方的信息,而只播放音乐节目。用CD-I播放机播放CD-I Ready盘时,首先把这间隔中的CD-I信息读到CD-I播放机的RAM中,并显示在电视机屏幕上,然后播放音乐。
15.1.6 CD-Bridge盘
CD-Bridge规格定义了一种把附加信息加到CD-ROM/XA光道上的一种方法,目的是让这种光盘能够在CD-I播放机上播放。这样一来,CD-Bridge光盘就既可以在CD-I播放机上播放,又可以在计算机上播放,而且还可以在Kodak公司的Photo CD播放机上播放。CD-Bridge盘上的光道都采用Mode 2的扇区结构,不使用Mode 1的扇区结构。声音光道则要跟在数据光道的后面。
CD-Bridge盘的扇区结构与CD-ROM/XA和CD-I的扇区结构一致。
CD-Bridge Mode 2 Form 1:2352字节
同步字节
12字节
扇区地址
4字节
Form 1
8字节
用户数据
2048字节
EDC
4字节
ECC
276字节
CD-Bridge Mode 2 Form 2:2352字节
同步字节
12字节
扇区地址
4字节
Form 2
8字节
用户数据
2324字节
EDC
4字节
15.1.7 可录CD盘标准——橙皮书(Orange Book)
Orange Book是另一种CD光盘的标准,这种CD盘叫做可录CDR(compact disk recordable) 盘,它允许用户把自己创作的影视节目或者多媒体文件写到盘上。可录CD盘分为以下两类:
① CD-MO (compact disk-magneto optical )盘,这是一种采用磁记录原理利用激光读写数据的盘,称为磁光盘。用户可以把数据写到MO盘上,盘上的数据可以抹掉,抹掉后又可以重写。
② CD-WO(compact disk-write once)盘,这种盘又写成CD-R盘,用户可以把数据写到盘上,但是数据一旦写入,就不能把写入的数据抹掉。
因此,Orange Book标准分成两个部分:Orange Book Part 1和Orange Book Part 2。 Part 1描述CD-MO,Part 2描述CD-WO。整个结构如图15-03所示。

图15-03 橙皮书(Orange Book Standard)概貌 (引自Jim Fricks盘片制造公司)
1,Orange Book Part 1 (CD-MO盘)
Orange Book Part 1标准描述CD-MO盘上的两个区:
① Optional Pre-Mastered Area(可选预刻录区),这个区域的信息是按照Red Book、Yellow Book或Green Book标准预先刻制在盘上的,是一个只读区域。
② Recordable User Area(用户可重写的记录区),普通的CD播放机或者VCD播放机不能读这个区域的数据,这是因为CD唱片和VCD盘与磁光盘采用的记录原理不同。
2,Orange Book Part 2 (CD-WO盘)
Orange Book Part 2标准定义可写一次的CD-WO盘。这种盘在出厂时就已经在盘上刻录有槽,称为预刻槽,也就是物理光道的位置已经确定,是一片空白盘。用户把多媒体文件写到盘上之后,就把内容表(Table Of Contents,TOC)写到盘上。在写入TOC之前,这种盘只能在专用的播放机上读;在TOC写入之后,这种盘就可以在普通的播放机上播放。
Orange Book Part 2标准还定义了另一种CD-WO盘,叫做Hybrid Disc(混合盘)。这种盘含有两种类型的记录区域:
① Pre-recorded Area(预记录区),这个区域的信息是按照Red Book、Yellow Book或Green Book标准预先记录在盘上的,是一个只读区域。
② Recordable Area(可记录区)。这个区可以把物理光道分成好几个记录段(multi-session)。每段由3个区域组成:导入区(Lead In),信息区(Information)和导出区(Lead Out),每一段要在导入区写入TOC。
Hybrid Disc(混合盘)的结构如下表所示:
第 1段
第 n 段
导入区
(Lead In)
信息区
(Information)
导出区
(Lead Out)
……
导入区
(Lead In)
信息区
(Information)
导出区
(Lead Out)
CD标准的整个概貌可以用图15-04来表示。

图15-04 CD标准之间的关系
15.2 CD-ROM的逻辑格式(ISO 9660)
15.2.1 ISO 9660的重要性
CD-ROM物理格式的标准化意味着所有CD-ROM生产厂家都应遵循这种标准化格式,这也就意味着,CD-ROM上的信息可以在不同的信息处理系统之间交换,但只能在这个物理层上实现交换。由于CD-ROM面对用户的是文件,如文本文件、图像文件、声音文件、执行文件等等,这就需要一个文件系统来管理,这样就可使用户把CD-ROM当成一个文件集来看待,而不是让用户从物理层上去看待CD-ROM盘。因此,仅有物理格式标准化还不够,还需要有一个如何把文件和文件目录放到CD-ROM盘上的逻辑格式标准,也就是文件格式。
由于CD-ROM标准(Yellow Book)没有制定文件标准,所以计算机厂家不得不开发自己的CD-ROM逻辑格式。这些不统一的CDROM逻辑格式严重地影响了CD-ROM的推广应用。为了解决这个问题,计算机工业界的代表聚集在美国内华达州的Del Webb’s High Sierra Hotel & Casino,起草了一个CD-ROM文件结构的提案,叫做High Sierra文件结构,并把这个提案提交给了国际标准化组织(International Standards Organization,ISO),ISO作了少量修改后命名为ISO 9660。通过许多软硬件公司的共同的艰苦努力,尤其是John Einberger、Bill Zoellick等人作出的贡献,历时5年,终于在1988年正式公布了这个标准,命名为“Information Processing——Volume and File Structure of CD-ROM for Information Interchange”,可译为“信息处理:用于信息交换的CD-ROM的卷和文件结构”。
IBM PC及其兼容机的文件结构叫做MS-DOS文件结构,而Apple Macintosh计算机的文件结构叫做分层结构文件系统(Hierarchical File System,HFS)。由于这两种文件结构不相同,因此MS-DOS文件不能在Macintosh计算机上运行,而HFS文件不能在IBM PC机上运行。ISO 9660标准既不是MS-DOS的文件结构标准,也不是HFS的文件结构标准,而只是一个描述计算机用的CD-ROM文件结构标准。因此,计算机要能够读ISO 9660文件结构的盘,它的操作系统就必需要有支持软件,这个软件通常是在现有操作系统上进行扩展(Extension)。Microsoft公司为读CD-ROM盘上的ISO 9660文件而开发的程序叫做MSCDEX(Microsoft CD-ROM Extension),它需要和CD-ROM驱动器带的设备驱动程序相联合,MS-DOS操作系统才能读CD-ROM盘上的ISO 9660 文件。MSCDEX.EXE程序的主要功能就是把ISO 9660文件结构转变成MS-DOS能识别的文件结构。
在MS-DOS和MS-Windows环境下,IBM PC及IBM兼容机计算机必需安装MSCDEX.EXE和CD-ROM驱动器带的设备驱动程序软件才能读CD-ROM盘上的文件。在MSWindows 3.x环境下,设备驱动程序要安装在CONFIG.SYS文件中,而MSCDEX.EXE文件要安装在AUTOEXEC.BAT文件中。同样,其他的操作系统也需要开发类似于MSCDEX.EXE的软件,并且同样要与CD-ROM驱动器带的设备驱动程序联合工作,这样才能读ISO 9660盘上的文件。
在Windows 95/98环境下不需要另外配置CONFIG.SYS和AUTOEXEC.BAT文件,它本身带有MSCDEX.EXE和设备驱动程序,在安装过程中会自动安装,因此用户自己也就不需要另外安装MSCDEX.EXE和CD-ROM设备驱动程序。
15.2.2 逻辑结构的设计概要文件系统是在应用软件和控制器之间的软件,它是操作系统的一部分。文件系统实际上是组织数据的一种方法,使应用程序访问CD-ROM时不需要关心物理地址或数据结构。一个完整的CD-ROM文件系统有三个主要部分组成:
(1) 逻辑格式(logical format),它是文件格式的同义词。逻辑格式是确定盘上的数据应该如何组织,以及存放在什么地方。说得具体一点就是基本的识别信息放在何处,文件目录应该如何构造,到何处去找盘上的目录,一个应用软件存放在几张光盘上等等。由此也可以看到,逻辑格式与物理格式是不同的。
(2) 源软件(origination software),它是把数据写到逻辑格式的软件,按逻辑格式把要存到盘上的文件进行装配,所以源软件又称“写”软件。
(3) 目的软件(destination software),它是把数据从逻辑格式读出来,并且把数据转换成文件,因此目的软件又称为“读”软件。它在终端用户的机器上能够理解逻辑格式,并且使用逻辑格式来访问盘上的文件。
在上述三部分中,逻辑格式是文件系统的核心。逻辑格式标准统一后,盘上的信息就有可能在不同的信息处理系统之间进行交换。
定义CD-ROM的逻辑格式与定义磁盘的逻辑格式有差别,这是由于这两种存储器的特性不同。定义CD-ROM逻辑格式首先要考虑CD-ROM本身的特性。对定义CD-ROM逻辑格式产生较大影响的因素有:
CD-ROM是只读存储器,而磁盘是可读/写存储器,这就不需要添加、删除目录等功能。
CD-ROM的写入和读出是不对称的。
寻找数据的时间相对于20 ms左右的磁盘大得多,长到950 ms,平均也得几百毫秒。
存储容量大(650 MB/盘)。
这些因素关系到文件系统的性能。
CD-ROM的逻辑格式可归纳为两个部分:
(1) 定义一套结构用来提供整片CD-ROM盘所含的信息,称卷结构。单片CD-ROM称一卷。一个应用软件可有大、中、小之分,一个应用软件也可能有多个文件组成。对于小的应用软件,一卷可能容纳好几个文件,而一卷中的文件数目也可能相当惊人;对于中等大小的应用软件,一卷可能只容纳一个;对于一个大的应用软件,如百科全书,可能有好几卷才能容纳得下;把存放单个应用软件的多片CD-ROM称为一个卷集,这与出版的书很相似。在卷集中,一个文件可能要跨越好几卷,或者相反,一卷中有好多文件。因此,必须要有一套规则和数据结构来表达这些错综复杂的关系,以便使用户有足够多的信息来了解盘上的内容。这些关系是属于卷一级的逻辑格式。
(2) 定义一套结构用来描述和配置放到盘上的文件,称为文件结构。文件结构的核心是目录结构。这个结构是文件一级的逻辑格式,采用什么样的逻辑格式对文件系统的性能有很大的影响。一般来说,目录结构采用分层目录结构,并且有显式说明和隐式说明之分。为CD-ROM提议的目录结构大体有五类:
① 多文件显式分层结构(multiple-file explicit hierarchies)。它的特点是把子目录当作文件来处理,打开一个有长路径的文件需要较多的寻找次数。
② 单文件显式分层结构(single-file explicit hierarchies)。它的特点是把整个目录结构放在单个文件中,根目录和子目录都作为文件中的记录而不是作为文件来处理。
③ 散列路径名目录(hashed path name directories)。它的特点是把整个路径名和文件名拼凑成一个地址放在目录中,这是隐式目录结构。
④ 索引路径名目录(indexed path name directories)。它的基本思想是把子目录的全路径名转换成一个整数。这也是隐式目录结构。
⑤ 组合前面4种结构中的2种或2种以上的混合结构。
由于CD-ROM有它自己的固有特性,因此围绕CD-ROM定义的卷和文件结构也有它自己的特性。这些特性充分体现在ISO 9660标准文件中。为便于理解它们的结构,下面采用由底层到顶层的思路来介绍。
15.2.3 逻辑扇区和逻辑块
CD-ROM的一个物理扇区除了扇区头信息之外还有2336字节。在2336字节中,有288字节可以用来作错误检测和校正用,剩下的2048字节作为用户数据域。2048字节(2 KB)的数据域定义为一个逻辑扇区(logical sector)。每个逻辑扇区都有一个唯一的逻辑扇区号(logical sector number,LSN)。CD-ROM的第一个逻辑扇区是从物理地址00∶02∶00开始,逻辑扇区号为LSN0。
逻辑扇区的大小也允许自定义,但要等于2n,n是一个正整数。
每个逻辑扇区可以分成一个或多个逻辑块。这样做对于在盘上存放大量的小文件是很有用的。在一个由2048字节组成的逻辑扇区中,一个逻辑块的大小可以是512、1024或2048字节。但一个逻辑块的大小不超过逻辑扇区的大小。每个逻辑块有一个逻辑块号(logical block number,LBN)。第一个逻辑块号(LBN 0)是第一个逻辑扇区(LSN 0)中的第一块,依次为LBN1、2、3等等。在CD-ROM上,所有文件和其他重要的数据都按LBN寻址。
此外,还有一个记录的概念。一个记录由一系列连续字节组成,它作为信息单元。一个记录的字节可多可少,少则几个,多则几十、几百个,视要表达的信息而定。记录有固定字节长度和可变字节长度之分,分别称为固定长度记录和可变长度记录。
物理扇区、逻辑扇区、逻辑块之间的关系如图15-05所示。

图15-05 物理扇区与逻辑扇区、逻辑块的概念
15.2.4 文件放到CD-ROM上的文件类型没有限制,可以是ASCII文本文件、索引结构文件、可执行文件(如.COM文件,.EXE文件),压缩的或未压缩的图像文件、声音文件等,只要你想存的文件都可以。
每个文件可分为一节或多个文件节(file section)。一个文件节放在由许多个逻辑块组成的文件空间里。这些逻辑块是顺序编号的逻辑块,由它们组成的文件空间又称为文件范围(extent)或文件域。一个大的文件可以分成多个文件节,存放在多片CD-ROM盘上的文件域中;一个中等大小的文件也可以分成若干个文件节,存放在同一片CD-ROM盘上的多个文件域中,这些文件域也不要求是连续的文件域; 小的文件可以不分域,存放在单个文件域中。
文件的标识符(file identifier)可由三部分组成:文件名、文件扩展名和文件版本号组成。但文件标识符必须要包含一个文件名,或者包含一个扩展名,其他可作为选择。文件标识符中的字符通常采用ASCII字符,并且限定用其中的一部分:
数字0~9
大写英文字母A~Z
下划线(_)
文件名和文件扩展名之间用句点(.)
文件名或文件扩展名与文件版本号之间用分号(;)下面给出了一些合法文件标识符和不合法文件标识符的例子。
************************************************
合法文件标识符:
FILE.DAT
FILE.DAT;1
DATA_FILE_FOR_INTERCHANG.DAT
FILENAME_WITHOUT_AN_EXTENSION
.NO_FILENAME_JUST_AN_EXTENSION
--------------------------------------------------------------------------
不合法文件标识符:
file.dat;不允许小写字母
ONLY.ONE.PERIOD.ALLOWED;只允许一个句点
NO-HYPHENS-OR--SIGNS;没有规定用连字符(-)和
THIS_FILENAME_IS_LONGER_THAN_31_CHARACTERS;多于31个字符
************************************************
在MS-DOS环境下,文件名的长度不超过8个字符,文件扩展名的长度不超过3个字符;在其他环境下,文件标识符的总长度限制为不超过31个字符。
15.2.5 目录大多数支持磁盘的文件系统都时兴用分层目录结构,CD-ROM也采用这种目录结构,并且限定目录层次的深度为8级。用这种目录结构可以组织大数量的文件。大多数磁盘文件系统把子目录作为一种特殊的文件进行显式处理,一层一层地打开子目录文件,以找到最终的文件。这样做的好处是为增加或删除目录提供了很大的灵活性。但CD-ROM是只读,无需这种灵活性,而且采用这种方法来找一个带有长路径名的文件,一次一次打开子目录文件势必要化费很长的时间。因此,CD-ROM没有采用这种显式分层目录结构,而是采用隐式分层目录结构,但也把目录当作文件看待,并且把整个目录包含在1个或少数几个文件中。包含目录的文件称为目录文件。
目录文件与普通的用户文件相类似,但对CD-ROM采用的目录文件结构作了具体的规定。目录文件由一系列可变长度的目录记录组成。每个目录记录的格式如表15-03所示。由表15-03可以看到,一个目录记录包含有许多记录域。这些域中记录有文件标识符,以字节计算的文件长度、文件域中的第一个逻辑块号(LBN),以及打开和使用这个文件所需要的其他信息。当一个文件放在多个文件域中时,需要设置多个目录记录,每个目录记录中给出相应文件域的地址,并由文件标志记录域来指明该文件域是不是最后一个。目录文件、目录记录、记录域等之间的关系如图15-06所示。
表15-03 目录记录的格式字节位置
记录域的名称
1
目录记录长度(LEN_DR)
2
扩展属性记录(XAR)长度
3~10
文件域地址
11~18
数据长度
19~25
日期和时间
26
文件标志
27
文件单元大小
28
交叉间隔大小
29~32
卷顺序号
33
文件标识符长度(LEN_FI)
34-(33+LEN_FI)
文件标识符
34+LEN_FI
填充域
(34+LEN_FI+1)-LEN_DR
系统使用(保留)

图15-06 目录文件结构
文件的附加信息可以记录在一个命名为扩展属性记录(extended attribute record,XAR)的记录上,它放在文件的前面而不是放在目录记录上,这样做可以使目录记录变得较小。附加信息包括文件作者、文件修改日期、访问文件的许可权等信息。凡是不常使用的信息都放到扩展属性记录上。这也是CD-ROM目录结构的一个特点。
如果一个文件有多个文件域(如图15-06中的文件B),每个文件域都有XAR记录,在这些XAR记录上的信息可能会不相同,文件系统应认为最后一个XAR记录上的信息是有效的。这个特性在卷集制作过程中很有用。
由于每个目录记录的长度不确定,因此在一个逻辑扇区中的目录记录的个数也不确定,但必须要保证目录记录数的数目为整数。当一个目录在这个逻辑扇区中放不下的时候,应移到后面的一个逻辑扇区。这样可以保证读到计算机内存中的目录不会出现支离破碎的现象。
15.2.6 路径表前面已经谈到,由于CD-ROM寻找时间很长,若采用磁盘的方式来处理目录,要打开一个目录嵌套层次很深的文件,势必要化费很长的寻找时间。为解决这个问题,在1985年,J.D.Barnette、B.Zoellick和S.Stegner开发了一种名叫路径索引(path index)的一种隐式分层目标结构,后来改名为路径表(path table)。这种结构的特点是利用索引值来访问所有的目录,它的基本思想示于图15-07。

图15-07 目录结构与路径表
路径表由许多称为路径表记录组成,它对应于根目录和每个子目录,如图15-07中的ROOT(根)、A、B,…,等路径表记录。每个路径表记录具有如表15-04的格式。路径表中包含有每一个子目录所在的开始地址,即逻辑块号LBN,这样就可以通过路径表直接访问任何一个子目录。因此,如果一张完整的路径表能保存在计算机的RAM中,那末一次寻找就可以访问盘上的任何一个子目录。
表15-04 路径表记录字节位置
记录域的名称
1
目录标识符的长度(LEN_DI)
2
扩展属性记录(XAR)的长度
3~6
存放目录的地址
7~8
父目录号
9~(8+LEN_DI)
目标标识符(不超过31个字符)
(9+LEN_DI)
填充域
路径表只能保证访问目录的第一个物理扇区。如果有由成千个文件组成的大目录,那末整个目录可能跨越盘上的好几个扇区。这么多的文件最好分散在各个子目录下,每个子目录下分配约40个左右的文件。按每个目录记录的平均长度为50字节计算,差不多占据单个物理扇区。如果在一个子目录下分配太多的文件数时,那末要找这个目录下的文件时,需要顺序读和检查好几个物理扇区才能找到这个文件,这样就多花时间。
15.2.7 卷
CD-ROM盘上可以存放信息的区域称为卷空间(volume space)。卷空间分成两个区:从LSN 0到LSN 16称为系统区,它的具体内容没有规定。从LSN 16开始到最后一个逻辑扇区称为数据区,它用来记录卷描述符(volume descriptors)、文件目录、路径表、文件数据等内容。
每卷数据区的开头(LSN 16)是卷描述符。卷描述符实际上是一种数据结构,或者说是一种描述表。其中的内容用来说明整个CD-ROM盘的结构、提供许多非常重要的信息,如盘上的逻辑组织、根目录地址、路径表的地址和大小、逻辑块的大小等等。卷描述符的结构如表15-05所示,它是一个由2048字节组成的固定长度记录。
表15-05 卷描述符的格式字节位置
录域的名称
1
卷描述符的类型
2~6
标准卷标识符(用CD001表示)
7
卷描述符的版本号
8~2048
(取决于卷描述符的类型)
卷描述符有五种类型:
主卷描述符(primary volume descriptor)
辅助卷描述符(supplementary volume descriptor)
卷分割描述符(volume partition descriptor)
引导记录(boot record)
卷描述符系列终止符(volume descriptor set terminator)
上述五种描述符的结构分别示于表15-06~表15-09。
表15-06 主卷和辅助卷描述符字节位置
主卷描述符记录域的名称
辅助卷描述符记录域的名称
1
卷描述符的类型
同左
2~6
标准卷标识符(CD001)
同左
7
卷描述符版本号
同左
8
未使用(00)
卷标志
9~40
系统标识符
同左
41~72
卷标识符
同左
73~80
未使用(00)
同左
81~88
卷空间大小
同左
89~120
未使用(00)
换码顺序
121~124
卷系列大小
同左
125~128
卷顺序号
同左
129~132
逻辑块大小
同左
133~140
路径表大小
同左
141~144L
型路径表值位置*
同左
145~148L
型路径表任选值位置
同左
149~152M
型路径表值位置**
同左
153~156M
型路径表任选值位置
同左
157~190
根目录的目录记录
同左
191~318
卷集标识符
同左
319~446
出版商标识符
同左
447~574
数据准备者标识符
同左
575~702
应用软件标识符(如CD-I)
同左
703~739
版权文件标识符
同左
740~776
文摘标识符
同左
777~813
文献目录文件标识符
同左
814~830
卷创作日期和时间
同左
831~847
卷修改日期和时间
同左
848~864
卷到期日期和时间
同左
865~881
卷有效日期和时间
同左
882
文件结构版本号
同左
883
(保留)
同左
884~1395
应用程序使用
同左
1396~2048
(保留)
同左
* L型,最低有效字节在先,**最高有效字节在先
表15-07 卷分割描述符字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8
未使用(00)
9~40
系统标识符
41~72
卷分割标识符
73~80
卷分割位置
81~88
卷分块大小
89~2048
系统使用
表15-08 引导记录字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8~39
引导系统标识符
40~71
引导标识符
72~2048
引导系统使用
表15-09 卷描述符系列终止符
字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8~2048
保留(00)
五种描述符的前四种可以任意组合,组成卷描述符系列。这四个描述符可以在描述符系列中出现不只一次。描述符系列有两个限制:主卷描述符至少要出现一次,卷描述符系列终止符只能出现一次,而且只能出现在最后。卷描述符系列记录在从LSN 16开始的连续逻辑扇区上。
以上简要介绍了CD-ROM的卷和文件结构的基本概念,没有对它的细节作一一解释,这对一般读者就已经足够了。对想进一步深入理解CD-ROM逻辑格式的读者,以及想编写自己的CD-ROM文件系统的读者,请参看ISO 9660标准文件。
ISO 9660标准的出现,对CD-ROM的推广应用产生了很大的推动作用。理论上说,CD-ROM上的文件应该在哪种型号的机器上都可以读出。然而,事实并不完全是这样。它们各自包含有自己的文件系统,有自己的专用格式及应用软件,同一片CD-ROM上的文件不一定都能在不同的信息系统中读出。
15.3 VCD标准——白皮书(White Book)
CD-DA是20世纪80年代初的产品,盘上的音乐节目是以数字形式记录的;LaserVision是70年代末的产品,盘上的电视图像和声音都是以模拟信号形式记录的,电视图像是调频制记录(FM),声音是调幅记录,它叠加到图像信号上。CD-Video(CD-V)是1987年定义的标准,它是CD-DA和LV(LaserVision)相结合的产物,盘上的声音是数字的,而电视图像仍然是模拟的。CD-V和LaserVision常被人们称为激光视盘或激光影碟。
Video CD(VCD)是由JVC、Philips、Matsushita和Sony联合定义的数字电视视盘技术规格,它于1993年问世,盘上的声音和电视图像都是以数字的形式表示的。1994年7月发布了“Video CD Specification Version 2.0”,并命名为White Book(白皮书)。该标准描述的是一个使用CD格式和MPEG-1标准的数字电视存储格式。Video CD标准在CD-Bridge规格和ISO 9660文件结构基础上定义了完整的文件系统,这样就使VCD节目能够在CDROM、CD-I和VCD播放机上播放。
15.3.1 VCD盘的组织
VCD盘由引导区(导入区和导出区)和节目区两部分组成,VCD盘的组织如图15-08所示。盘上的数据按光道来组织,光道数最多为99条。VCD盘的导入区和导出区按CD-ROM XA数据光道的Mode 2 Form 2进行编码,是不含数据的空扇区。
在节目区中的第一条光道(Track 1)是一条专用VCD数据光道(Special Video CD Track),其余的是MPEG Audio/Video光道。Video CD 2.0规格只定义了MPEG Audio/Video光道和CD-DA光道这两种光道,而每一条MPEG Audio/Video光道只包含一个有MPEG Video和MPEG Audio数据的播放序列。
Lead-in Area (导入区)
Track 1 (光道1)
Track 1:专用VCD数据光道
Track 2 (光道2)
Track 2~99(Max.)
Track 3 (光道3)
Program Area
…
① Track 2 ~ K:MPEG-Audio/Video Track
(节目区)
Track K (光道K)
Track K+1 (光道K+1)
…
② Track K+1 ~ N:CD-DA Track
Track N (光道N)
Lead-out area (导出区)
图15-08 VCD盘的组织结构
1,专用数据光道专用VCD数据光道(Special Video CD Track)用来描述VCD盘上的信息,它的结构如图15-09所示。它的几个区域说明如下:
(1) 扇区号为00:02:16的扇区是基本卷号描述符PVD(Primary Volume Descriptor)扇区,用来描述VCD盘的卷号。
(2) 从扇区00:03:00开始到00:03:74的区域是一个选择性的卡拉OK基本信息区(Karaoke Basic Information Area)。该区域中的数据用来产生卡拉OK音乐节目的快速参照表,它由基本信息头BIH (Basic Information Header)文件(KARINFO.BIH)和最多63个卡拉OK文本文件(KARINFO.CC)组成。
(3) 从扇区00:04:00开始的区域是VCD信息区(Video CD Information Area),它包含有强制性的VCD盘信息文件INFO.VCD(扇区00:04:00)和入口表(Entry table)文件ENTRIES.VCD(扇区00:04:01),以及可选的清单偏移量表(List ID Offset Table)文件LOT.VCD(扇区00:04:02)和播放顺序描述符(Play Sequence Descriptor)文件PSD.VCD(扇区00:04:34)文件。
(4) 分段播放项目区(Segment Play Item Area)是一个选择性的区域,它可包含许多分段播放项目(Segment Play Item)。一个分段播放项目可以是MPEG电视、MPEG声音和以MPEG算法编码的静态图像,这些项目通过播放顺序描述符PSD(Play Sequence Descriptor)的解释进行播放。这个区域的开始地址由INFO.VCD文件给出。
分段播放项目区被分成连续的段(Segment),并从#1开始连续编号直到#1980,每一段由150个扇区组成。这个区域的长度可以是1—1980之间的任意整数。一个分段播放项目可以占据一个或者多个段。
(5) 其他文件(Other files)区可包含强制性的CDI应用节目(CDI application program)和选择性的扩展目录(EXT directory)信息。

图15-09 专用VCD数据光道的结构
2,MPEG-Audio/Video光道
Track 2 (光道2)开始是MPEG-Audio/Video光道,用来存放MPEG编码的电视图像和声音数据。MPEG编码的数据受到由大于15个扇区组成的前保护区FM(Front Margin)和后保护区(Rear Margin,RM)的保护,如图15-10所示。FM的推荐长度是30扇区,RM的推荐长度是45个扇区。

图15-10 MPEG-Audio/Video光道的布局
3,CDDA光道
VCD盘可包含CDDA光道,但必须在MPEG-Audio/Video光道之后。如果VCD盘包含CDDA光道,Video CD规范要求在最后一条MPEG-Audio/Video光道的RM之后设置至少150个扇区的后间隔。
15.3.2 VCD的文件目录结构
VCD盘的文件系统是在ISO 9660文件结构标准基础上开发。VCD盘需要的目录有:Root directory 0 (根目录0),CDI,VCD和MPEGAV。VCD盘的目录结构如图15-11所示。Video CD规范规定对文件目录作了如下规定:
① 如果VCD盘包含卡拉OK基本信息区(Karaoke Basic Information Area),这个区域中的文件必须存放在KARAOKE目录下。
② 如果VCD盘包含分段播放项目区(Segment Play Item Area),这个区域中的文件必须存放在SEGMENT目录下。
③ 如果有扩展的播放顺序描述符(Play Sequence Descriptor,PSD)文件,这个文件必须存放在EXT目录下。
④ VCD信息区(Video CD Information Area)中的文件必须存放在VCD目录下。
⑤ 所有表示MPEG Audio/Video光道的文件都必须存放在MPEGAV目录下。
⑥ 所有表示CDDA光道的文件都必须存放在CDDA目录下。

图15-11 VCD盘的目录结构
15.3.3 MPEG-Audio/Video扇区的结构
Video CD定义了MPEG光道的结构,它由MPEG-Video扇区和MPEG-Audio扇区组成。光道上的Video(电视图像)和Audio(声音)是按照MPEG标准ISO 11172的规定进行编码。MPEG-1 Video扇区和MPEG-1 Audio扇区是交错存放在光道上的,如下图所示:

V
V
V
V
A
V
V
V
V
V
A
V
V
V
V
V
A
V
…
MPEG-Video扇区的一般结构如下图所示:
一个信息包:2324字节
信息包开始码
4字节
SCR(系统参考时钟)
5字节
MUX速率
3字节
信息包数据
2312字节
MPEG-Audio扇区的一般结构如下图所示:
一个信息包:2304字节
信息包开始码
4字节
SCR(系统参考时钟)
5字节
MUX速率
3字节
信息包数据
2292字节
00
20字节
练习与思考题试论CD标准的重要性。
什么叫做CD盘的物理格式?
CDROM的扇区地址“00:10:65”表示什么含义?
CD-ROM Mode 1和CD-ROM Mode 2有什么差别?
CD-ROM/XA Mode 2 Form 1和CD-ROM/XA Mode 2 Form 2有什么差别?
CD-Bridge Mode 2 Form 1和CD-Bridge Mode 2 Form 2有什么差别?
计算单速CDROM的用户数据传输率是多少KB/s(1 KB = 1024 bytes)。
CDROM文件系统的主要组成部分是什么?
CDROM的逻辑格式是什么意思?
CDROM的物理扇区、逻辑扇区和逻辑块之间有什么关系?
MS-DOS和MS-Windows环境下都要有MSCDEX.EXE文件,请问它的功能是什么?
试论CDROM的文件目录结构与磁盘的文件结构有何差别?
用计算机查看VCD盘上根目录和子目录下有什么文件?这些文件的含义是什么?
参考文献和站点
CEI/IEC 908,Compact Disc Digital Audio System,1987
ISO 9660,Volume and File structure of CD-ROM for Information Interchange,1988
ISO/IEC 10149,Data Interchange on Read Only 120 mm Optical Data Disks(CD-ROM),1989
Philips and Sony,System Description CD-ROM XA Compact Disk Read Only Memory extended Architecture,May,1991
Philips and Sony Corporation,CD-I Full Functional Specification,1993
Mark Fritz,How & When Will CD-ROM Get Biger?,CD-ROM Professional,Sept./Oct,1994,pp21~35
JVC,Matsushita,Philips & Sony,Video CD Specification Version 2.0,July 1994
林福宗,陆 达,多媒体与CD-ROM,北京:清华大学出版社,1995.3
Philips,Desktop Video Data Handbook,1995