CD-ROM格式数据的软解码模块设计
发布时间:2008/5/26 0:00:00 访问次数:877
来源:单片机及嵌入式系统应用 作者:李建兵 牛忠霞 周东方
摘要:介绍应用于嵌入式系统的cd-rom格式数据软解码模块的设计方法;分析cd-rom格式的数据结构,给出edc及ecc解码算法的软件实现方法以及该模块的软件流程图。
关键词:cd-rom格式 软解码 edc检错 ecc纠错
引言cd-rom是目前应用非常广泛的大容量、低成本的存储设备。为了减小误码率,原始数据经过格式化编码和信道编码后,才写入cd-rom盘片中;在读取时,则需经过信道解码和格式化解码后才能得到所需的原始数据。cd-rom数据的读写过程如图1所示。
在一般的音像设备(如vcd机)和个人电脑中,cd-rom数据的解码过程是由专用解码芯片来完成的;而cd-rom不但可以应用在音像设备和个人电脑中,还可以应用到需要读取大量数据的嵌入式系统中。比如在车辆导般系统中,就可使用cd-rom存放地理信息数据。嵌入式系统中的cd-rom数据的解码方法比较灵活,可以使用专用解码芯片(暂称硬解码),也可以通过处理器的解码程序来完成(软解码)。相对于硬解码来说,软解码有其独特的优点所在。因为它只需增加一个解码程序模块,就省掉了专用解码芯片电路,简化了系统的硬件电路,降低了系统的成本。如图1所示,cd-rom数据经过信道解码后,得到的是以扇区结构组织的cd-rom格式数据,还需进行cd-rom格式化解码才能得到最终的用户数据。本文介绍的就是嵌入式系统中cd-rom格式数据软解码模块的设计。
1 cd-rom格式数据的扇区结构cd-rom数据是以扇区为基本单元进行编码处理的。经过信道解码处理后得到的扇区对于不同的数据来源,其结构是不同的。对于cd-da(双声道的cd音频)数据,由于没有经过格式化编码,可以直接得到用户数据;而cd-rom数据和vcd数据都经过cd-rom格式化编码成扇区结构,必须经cd-rom格式化解码才能得到用户数据。
cd-rom扇区有两种模式:模式1和模式2。其扇区结构如图2所示。
由图2可知,一个扇区的cd-rom格式数据总共有2352字节。其中,两种扇区模式都有12字节的同步信息和4字节的时间信息(头信息)。如果是模式1,还有4字节的循环冗检错码,8字节空字节,276字节的纠错码,其中包含172字节的p校验字和104字节的q校验字,用户数据只有2048字节。如果是模式2,除了同步信息和头信息外,余下的2336字节全部都是用户数据。
实际中,由于盘的制作材料的性能、盘制造生产技术水平的限制、驱动器的性能以及使用不当等诸多原因,从盘上读出的数据不可能完全正确。据统计,一片未使用过的只读光盘,原始误码率约为3×10 -4,沾有指纹的盘约为6×10 -4,有伤痕的盘约为5×10 -3。针对这种情况,光盘存储系统采用了功能强大的错误检测和纠正措施:circ、edc、ecc。数据经信道解码后,由于采用circ纠错处理,误码率由10 -4~10 -5降到10 -9以下。对于音频和图像数据来说,这样的误码率已经足够。但要用到计算机文件数据,必须要求误码率为10 -12以下,因此必须采用二次纠错处理。通过edc和ecc校验,可以达到这个要求。
所以,模式1主要用于存储对错误非常敏感的数据,如计算机程序代码等数据;而模式2则主要用于存储对错误不敏感的数据,如图像、音响等类型的数据。
在模式2的基础上,cd-rom/xa格式又分为两种形式(form):形式1和形式2。其扇区结构如图3所示。我们常用的vcd就是采用cd-rom/xa的形式2格式。
由上可知,除了扇区模式2可以直接得到2336字节的用户数据外,cd-rom格式解码还必须进行edc检错和ecc纠错处理。下面分别介绍edc检错和ecc纠错的原理和解码算法。
2 cd-rom扇区中的edc检错原理及算法
cd-rom扇区采用32位crc(循环冗余校验码)检错码,其生成多项式为
p(x)=(x 16+x 15+x 2+1)×(x 16+x 2+x+1)
对应的码字是0x18001801b。计算crc码时用的数据块是从扇区的开头到用户数据区结束为止的数据字节。即将字节0~2063共2064字节的数据所对应的长多项式整除p(x),得到32位的余式,放在2064~2067字节位置。这2068字节的数据对应的多项式是能够被生成多项式p(x)整除的。如果不能整除,则表明数据有错。所以,我们的解码过程就将2068字节的数据组成的多项式来整除生成多项式,如果余式为0,则表明数据正确,否则数据有错。
但我们不可能直接进行长除法操作,因为计算机不可能将一个2068×8位的极其长的二进制数直接拿来做长除法。根据长除法的规律,以字节(8比特)为单位进
来源:单片机及嵌入式系统应用 作者:李建兵 牛忠霞 周东方
摘要:介绍应用于嵌入式系统的cd-rom格式数据软解码模块的设计方法;分析cd-rom格式的数据结构,给出edc及ecc解码算法的软件实现方法以及该模块的软件流程图。
关键词:cd-rom格式 软解码 edc检错 ecc纠错
引言cd-rom是目前应用非常广泛的大容量、低成本的存储设备。为了减小误码率,原始数据经过格式化编码和信道编码后,才写入cd-rom盘片中;在读取时,则需经过信道解码和格式化解码后才能得到所需的原始数据。cd-rom数据的读写过程如图1所示。
在一般的音像设备(如vcd机)和个人电脑中,cd-rom数据的解码过程是由专用解码芯片来完成的;而cd-rom不但可以应用在音像设备和个人电脑中,还可以应用到需要读取大量数据的嵌入式系统中。比如在车辆导般系统中,就可使用cd-rom存放地理信息数据。嵌入式系统中的cd-rom数据的解码方法比较灵活,可以使用专用解码芯片(暂称硬解码),也可以通过处理器的解码程序来完成(软解码)。相对于硬解码来说,软解码有其独特的优点所在。因为它只需增加一个解码程序模块,就省掉了专用解码芯片电路,简化了系统的硬件电路,降低了系统的成本。如图1所示,cd-rom数据经过信道解码后,得到的是以扇区结构组织的cd-rom格式数据,还需进行cd-rom格式化解码才能得到最终的用户数据。本文介绍的就是嵌入式系统中cd-rom格式数据软解码模块的设计。
1 cd-rom格式数据的扇区结构cd-rom数据是以扇区为基本单元进行编码处理的。经过信道解码处理后得到的扇区对于不同的数据来源,其结构是不同的。对于cd-da(双声道的cd音频)数据,由于没有经过格式化编码,可以直接得到用户数据;而cd-rom数据和vcd数据都经过cd-rom格式化编码成扇区结构,必须经cd-rom格式化解码才能得到用户数据。
cd-rom扇区有两种模式:模式1和模式2。其扇区结构如图2所示。
由图2可知,一个扇区的cd-rom格式数据总共有2352字节。其中,两种扇区模式都有12字节的同步信息和4字节的时间信息(头信息)。如果是模式1,还有4字节的循环冗检错码,8字节空字节,276字节的纠错码,其中包含172字节的p校验字和104字节的q校验字,用户数据只有2048字节。如果是模式2,除了同步信息和头信息外,余下的2336字节全部都是用户数据。
实际中,由于盘的制作材料的性能、盘制造生产技术水平的限制、驱动器的性能以及使用不当等诸多原因,从盘上读出的数据不可能完全正确。据统计,一片未使用过的只读光盘,原始误码率约为3×10 -4,沾有指纹的盘约为6×10 -4,有伤痕的盘约为5×10 -3。针对这种情况,光盘存储系统采用了功能强大的错误检测和纠正措施:circ、edc、ecc。数据经信道解码后,由于采用circ纠错处理,误码率由10 -4~10 -5降到10 -9以下。对于音频和图像数据来说,这样的误码率已经足够。但要用到计算机文件数据,必须要求误码率为10 -12以下,因此必须采用二次纠错处理。通过edc和ecc校验,可以达到这个要求。
所以,模式1主要用于存储对错误非常敏感的数据,如计算机程序代码等数据;而模式2则主要用于存储对错误不敏感的数据,如图像、音响等类型的数据。
在模式2的基础上,cd-rom/xa格式又分为两种形式(form):形式1和形式2。其扇区结构如图3所示。我们常用的vcd就是采用cd-rom/xa的形式2格式。
由上可知,除了扇区模式2可以直接得到2336字节的用户数据外,cd-rom格式解码还必须进行edc检错和ecc纠错处理。下面分别介绍edc检错和ecc纠错的原理和解码算法。
2 cd-rom扇区中的edc检错原理及算法
cd-rom扇区采用32位crc(循环冗余校验码)检错码,其生成多项式为
p(x)=(x 16+x 15+x 2+1)×(x 16+x 2+x+1)
对应的码字是0x18001801b。计算crc码时用的数据块是从扇区的开头到用户数据区结束为止的数据字节。即将字节0~2063共2064字节的数据所对应的长多项式整除p(x),得到32位的余式,放在2064~2067字节位置。这2068字节的数据对应的多项式是能够被生成多项式p(x)整除的。如果不能整除,则表明数据有错。所以,我们的解码过程就将2068字节的数据组成的多项式来整除生成多项式,如果余式为0,则表明数据正确,否则数据有错。
但我们不可能直接进行长除法操作,因为计算机不可能将一个2068×8位的极其长的二进制数直接拿来做长除法。根据长除法的规律,以字节(8比特)为单位进
上一篇:MPEG的发展动态及其未来预测