一种计算CD标识的算法2010-01-28王亚军北京市167信箱(100036) 王亚军----本文介绍了关于音乐CD的红皮书格式。文章从如何根据数据格式,调用WindowsMCI接口函数,利用一定算法计算CD之ID号,用来唯一标识CD等方面阐述和说明,具有一定的应用价值。一、红皮书格式----在光盘格式家族中,大家较熟悉的有红皮书、黄皮书、白皮书以及桔皮书等多种标准。这些格式有个共同的特点,就是光盘最小分配单位是长度为2352个字节的扇区;当然,并不是所有的2352个字节都可为用户所用,这要看具体是哪个标准。例如,黄皮书格式中2352个字节要扣除一些检错和纠错的开销,只有2048个字节是真正存放用户数据的。----红皮书格式是1980年PHILIP和SONY联合颁布的,又称CD-DA格式,是为控制音频CD建立的标准。它是国际标准ISO10149。红皮书标准规范了光盘尺寸、塑料的光参数、录放环境、信号测量、保真度以及音乐波形数字文件结构。红皮书音频的数字化方式用44.1kHz的采样频率、16级量化电平而且是双通道记录和线形格式。现已成为音乐工业中的事实标准。主要有以下内容:最多99首歌曲(track,即音轨);每扇区2352字节均用来存放声音数据;声音数据为采样率44.1K、16比特量化的PCM信号;立体声;无目录和文件结构,连续存放PCM信号;播放时按每秒75扇区的速度;每张光盘最多74分钟。----音频数据不像其他计算机数据(如程序文件)那样对错误具有极大的敏感性(一般对误码具敏感性的数据不能容忍1比特的错误),因此每扇区的2352个字节无需额外的检错纠错的开销,均可用来存放音频数据。这样,每个扇区能存放的音乐时间为2352/(16/8×2×44100)=1/75秒,因此播放速度为75扇区/秒。扇区地址与播放时间具有一一对应的关系;在CD-DA格式中,用时间MSF格式表示,标记为00:00:00格式:----M:分钟数,以一个字节表示;----S:秒数,范围0~59,以一个字节表示;----F:扇区数,范围0~74,以一个字节表示,代表有多少个1/75秒。----在ISO 9660标准下,单张的CD-ROM被定义为一个"卷",前150个扇区用于保存各个音轨的起始时间以及光盘本身的卷标、版权等信息。所以,从MSF到绝对扇区地址的转换关系为:----Address=M*60*75+S*75+F+150;----本人在开发一个个人CD收藏数据库时发现,各个CD出版公司都有自己的CD编号规范,无法统一,如:DG 437667-2。因此,有必要采用一种算法唯一标识单张CD。基于以上分析,采用如下算法,事实证明是可行的。