DVD光盘的编码与纠错
赵效民 于 2005.02.03 23:36:06 | 源自:www.stor-age.com | 版权:转载 | 平均/总评分:10.00/60

DVD光盘于1995年设计定型,与CD相比,在设计之初就考虑得很周全,不会再出现不同的扇区结构设计,不同种类的DVD光盘的主要区别体现在逻辑架构的设计上,至于底层的扇区规格则是一样的。

  • 在DVD光盘中,寻址的单位也是一个数据块,而这个块由于包含了ECC数据,因此又被称为ECC块(ECCB,ECC Block)。DVD所采用的ECC编码与CD-ROM Mode 1、Mode 2-Form 1一样,都是RSPC编码,因此也称为RSPC数据块。

    从上图中可以发现,DVD的数据流程要比CD简单不少,但内部校验(PI,Parity of Inner-code)与外部校验码(PO,Parity of Outer-code)则是CD光盘中所没有的。同样,由于没有CIRC的校验数据,因此也就不存在C1、C2编码,因此如果哪天听人说什么DVD光盘的C1、C2错误,那就当个笑话听吧。

    DVD的一个ECCB包含16个扇区,在进行刻录时,首先要准备一个ECCB的数据(包括RSPC编码),然后将ECC数据与用户数据分割为16个扇区,再经过符合RLL(2,10)标准的EFMplus(8至16编码)调制,形成的信道脉冲进行刻录。

    RSPC数据块与扇区结构

    DVD的数据以一个RSPC数据块(ECCB)为存储单位,在上文中,我们大概知道了这个数据块由16个扇区的数据+PI/PO校验码组成,在下面这张图中我们能清楚的看到一个ECCB中的数据结构。

  • 从图中可以看出一个ECCB的实际容量为37856字节,而不是我们常说的32KB(32768字节),后者只是真正的用户数据量。那么,它们又是怎么分布到16个扇区中呢?

  • 首先,ECCB中的数据区为192行,每行172个字节(列),而每一行的172字节横向生成一10字节的PI校验码,每一列的192字节纵向则生成一个16字节的PO校验码,最后再给每一行的PO校验码生成10字节的PI校验码,从而构成完整的ECCB。此时的ECCB共有208行/182列,分成16个扇区,则每个扇区为13行/182列,那么是不是前15个扇区为数据+相应的PI校验码,最后一个扇区就是PO和相关的PI数据呢?当然不是,在生成刻录扇区时,16行PO和相应PI码分交错分布于16个扇区之中,具体构成如下图所示。

  • 从图中可以看出,16行的PO码和相应的PI码被依次分布在16个扇区中,也就是说ECCB的校验数据是分散在16个扇区中的。

    由于PI与PO校验码是DVD在读取时的主要纠错手段,因此在PI与PO校验中发现错误的次数与程度就可以被用来评价DVD的刻录质量,而业界也对此做出了相应的规定。

    DVD有关数据错误标准的业界规定

    与CD-ROM只规定了C1错误标准一样,DVD其实也只规定了PI错误标准,而没有PO错误标准,原因很简单,PO编码其实也在PI的保护之下,因此只要保证PI的错误率不超过一定的水平就可以了。

    另外,在DVD的相关规范中,也对不可修复的错误进行了明确的界定,并立下了相关的标准。

    在DVD-ROM规范中规定:ECCB中某一行如果有一个或更多的字节出现错误,则意味着出现一个PI错误(PIE,PI Error),连续8个ECCB的PI错误不能超过280个。我们可以计算一个,一个ECCB共有208行,8个ECCB则1664行,允许280个PI错误(也就是280行出现错误)则表示错误率为16.8%。

    DVD-R/RW的规定与DVD-ROM一样。

    在DVD+R/RW规范中则有了更为详细的规定:ECCB中某一行如果有一个或更多的字节出现错误,则意味着出现一个PI错误,当一行中的错误字节超过5个时,此时的PI错误则称为PI-uncorrectable(不可修复的PI错误);连续8个ECCB的PI错误不能超过280个(16.8%);一个ECCB中的PI-uncorrectable不能超过4个(1.92%)。

  • 现在不少相关测试软件中都以DVD+R/RW的规范来制定测试标准。虽然DVD-ROM与DVD-/RW没有定义PI-uncorrectable(在某些软件中定义为PI Failure,简称PIF),但由于它们都是相兼容的设计,所以DVD+R/RW的相关规定也基本适用于其他两个规范。那么,有没有可能出现PO-uncorrectable(POF)呢?在一些DVD测试设备的技术文档中笔者也发现了对POF的一些规定,由于DVD想先进行PI纠错,才进行PO纠错,因此PI被认为是第一层纠错,PO则是第二层纠错,如果出现PIF之后又出现POF,那么意味着该ECCB(注意,不是扇区)是不可修复的(理论上,PO能修复4个字节的错误,但即使有超过5行的PIF,也并不意味着错误的字节会在垂直方向上排成一列,因此PIF即使超出标准很多,仍有可能被PO纠正,不过为了保险起见,一个ECCB中的PIF行数不能超过4个),就像CD光盘上的E32错误一样,也就是说POF的数值应该是0,只要满足这个条件,PO错误(POE,PO Error)就无所谓了。因此,在一些测试软件中,只有PIE和PIF的测试,最多再加上POF的测试,而没有POE的测试。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    111.196.177.***
    111.196.177.***
    发表于2012.02.18 19:03:34
    7
    180.125.120.***
    180.125.120.***
    发表于2012.02.18 16:23:15
    6
    03
    发表于2010.05.04 11:22:12
    5
    222.020.***.***
    222.020.***.***
    发表于2005.04.17 18:45:40
    4
    03
    发表于2005.02.05 22:09:03
    3
    03
    发表于2005.02.05 13:54:51
    2
    发表于2005.02.04 11:02:54
    1
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    3208 为防止广告机贴垃圾,不得已而为之
    表情
    正文