具有错误处理的光盘数据读取方法

文档序号:6737430阅读:278来源:国知局
专利名称:具有错误处理的光盘数据读取方法
技术领域
本发明是用于解码储存于大量存储介质(譬如,以DVD-ROM格式储存数据的光盘)的具有错误处理功能的光盘数据读取方法。本申请案主张美国申请案号09/778,628的优先权,该申请案的申请日为公元2001年2月7日。
背景技术
数字激光视盘只读存储器(Digital Versatile Disk ROM,以下简称DVD-ROM)是CD-ROM格式的后继产品,普遍用来记录与传播数据。单面单层的DVD-ROM光盘可储存高达4.7GB(千兆比特组)的数据,大约是一般CD-ROM容量的7倍。与CD-ROM光盘的储存方式比较而言,DVD-ROM的高储存容量是由于将数据记录于较狭窄轨道上的较小凹洞,并使用更有效率的区段数据编码技术而达成的。因为DVD-ROM光盘的数据格式与数据编码技术与CD-ROM光盘所使用的不同且更复杂,所以DVD-ROM需要不同于CD-ROM的数据处理与错误解码功能。
多年来,随着CD-ROM装置的发展,其数据处理与解码技术也不断精进。CD-ROM数据的最佳化数据处理与解码的例子公开于美国第6,003,151号专利中。该专利说明了一种可应用于CD-ROM数据的平行化实时错误检测与Reed-Solomon错误校正方式,该方式可以渐进而有效地改善光盘数据处理的速率。此外,其它若干最佳化的数据处理方法,也提高了CD-ROM光盘数据的读取与处理速度。在DVD-ROM存储介质推出之初,其读取性能不如CD-ROM,原因是CD-ROM的数据处理与解码技术,相对较为精良和完备。这种性能差异,减缓了DVD-ROM储存格式的普及。因此,DVD-ROM数据处理与解码技术的不断改善是有必要的。虽然DVD-ROM光盘的错误解码(error decoding)机制不同于CD-ROM光盘,且更为复杂,但公开于美国第6,003,151号专利的实时错误检测与错误校正机制,仍可用来改善DVD-ROM光驱的区段(sector)处理速度与能力。
欲解码DVD-ROM光盘,需对光盘上的数据编码有所认识。因此,以下说明DVD-ROM的区段编码流程,作为理解本发明的背景。首先说明数字音乐光盘CD-DA(compact disk-digital audio)与CD-ROM(compact disk-read onlymemory)光盘的数据编码与解码方式,以便与DVD-ROM光盘比较。
最早的光盘标准用来传播数字化音乐(digitized audio)。其所制订的规格称为红皮书(Red Book,IEC 908),而其数据存储介质称为数字音乐光盘CD-DA(compact disk-digital audio)。而后衍生的CD-ROM格式,其规格称为黄皮书(Yellow Book,ISO/IEC 10149)。在IEC 908与ISO/IEC 10149中称为C1与C2的双层错误校正码,是以CD-DA上的音频数据来编码的。在播放这种光盘时,光盘表面上的凹洞经由激光读取头所感应,转换成串行比特流(serial bit stream)。然后,该比特流被解调(demodulate)与分割成为32字节的数据帧(frame),并由C1错误校正器(error corrector)加以处理。C1错误校正码(error correction code)是在高氏场(Galois field)GF(28)中的(32,28)Reed-Solomon码,可在每个数据帧中校正两个错误。在C1校正后,将数据帧中四个C1同位(parity)字节舍弃,然后把其余28个字节作第一次解交错(de-interleave)后送至C2错误校正器。该第一次解交错动作会将来自两个相邻C1校正数据帧的数据字节混合,以形成输入至C2错误校正器的28个字节。C2错误校正码是在GF(28)中的(28,24)Reed-Solomon码,并可在每个数据帧中校正两个错误。经过C2错误校正后,再舍弃四个C2同位字节,然后对剩下的24个字节作第二次解交错。第二次解交错将来自24个不同C2数据帧的数据字节混合,进而产生24个字节的音频数据,组织成6对16位的左信道与16位的右信道数字音频数据。
C1与C2错误校正减少了从光盘读取数字音频数据时的错误率。再者,在第一次与第二次解交错处理中所进行的数据位交换,增加了播放不良光盘的可能性。例如,当光盘表面上的刮痕产生一段错误时,该错误数据会经由解交错分散至多个错误更正数据帧,从而降低各数据帧的错误量,增加错误校正成功的机率。但是,为了包含双层错误校正码的同位字节,可储存于光盘上的数据量被大幅减少。
当CD被用作数字数据(digital data)存储介质时,其数据通常是以CD-ROM格式储存。为确保从光盘读取数据时的正确性,CD-ROM添加第三层的Reed-Solomon错误校正码至CD-DA数据格式之上。此种第三层的错误校正码(有时称为C3),被应用于经C1与C2校正,及两次解交错后的数据流所取出的2352字节数据帧(即区段)。请注意此2352字节数据帧,与C1与C2层的错误校正码所应用的32字节与28字节数据帧是不同的。在包括ISO/IEC-10149的若干文献中,C1或C2数据帧也称小数据帧(small frame)。
C3是Reed-Solomon似乘积码(Reed-Solomon product-like code,RSPC),其说明可见于ISO/IEC-10149与美国第6,003,151号专利公报。在CD-ROM区段中,又编有32位的错误检测码(Error detection code,EDC)—通常是循环冗余码(cyclic redundancy code,CRC)的型式,作为进一步的数据查核之用。C3与EDC编码的运用,更进一步地限制了可储存于CD-ROM上的数字数据量。实际上,要以CD-ROM格式来记录2048个字节(16384位)的使用者数据(User Data),必须在CD-ROM表面上储存57624个信道比特(channel bits)。
DVD-ROM是一通用型的数据存储介质。不像CD-ROM可用不同的区段格式(如模式1与模式2格式1)来储存数据,DVD-ROM仅以单一区段格式来储存数据。每个DVD-ROM数据区段包含2048字节的主数据(main data,类似于CD-ROM区段的使用者数据)、12字节的识别数据(identification data,ID)与其它标头数据(header data)、以及4字节的错误检测码(EDC)数据。图1显示DVD-ROM光盘的数据区段结构。
4字节的识别数据(ID)包含了DVD-ROM区段的属性与物理地址(physicaladdress)。识别数据与ID错误检测码(ID error detection,IED)字节共同形成(6,4)Reed-Solomon码,可用来对重要的ID数据,进行错误检测与校正。6字节的版权管理信息(copyright management informtion,CPR-MAI)提供版权保护与区域管理的数据。错误检测码(EDC)则是在扰频(scramble)前,附加于2060个字节的ID、IED、CPR-MAI与主数据的4字节循环冗余检查码。每2060字节字码的EDC的计算是公知方式,其说明如下。
假设ID的第一个字节的MSB为b16511,而EDC的最终字节的LSB为b0,则EDC字符码(EDC codeword)可表示为多项式I(x)=b16511x16511+b16510x16510+...+b2x2+b1x+b0(1)此多项式须可被检查多项式g(x)=x32+x31+x4+1整除。因此,在选定4字节的EDC值时,须令式(1)的多项式可被检查多项式g(x)整除。请注意供DVD-ROM格式使用的检查多项式g(x),与CD-ROM规格所指定的EDC检查多项式是不同的。
在EDC计算之后,依据该区段的ID选择一扰频字节串(string ofbytes),并将主数据与之作异或(exclusive OR)运算,以将主数据予以扰频。扰频字节串共有16种,对应于16种不同ID地址,且每16个区段共享一种扰频字节。每16个扰频后的数据区段,即组成一个ECC区块(ECC block),并采用Reed-Solomon乘积码加以编码。图2显示ECC区块的结构。
为了建构ECC区块,16个扰频数据区段(每个都可排成172字节×12列的矩阵)合并而成一172字节×192列的矩阵,如图2的左上部分所示。然后,将192列的主数据,各附加10个内码(inner code)同位字节(PI),以产生(182,172)Reed-Solomon码。最后,对矩阵的182行,各附加16个外码(outer code)同位字节(PO),以产生(208,192)Reed-Solomon码。由此产生的ECC区块为208列×182字节的矩阵,其列为(182,172)Reed-Solomon码,又称为“内码”。其行为(208,192)Reed-Solomon码,又称“外码”。
当将图2的ECC区块记录于光盘上时,16列的外码同位字节PO被安插至每12列的区段数据与内码同位字节之后,如图3所示。在列插入后ECC区块内由13列×182字节所组成的数据块,通称为记录区段(recordingsector)。最后由于8/16调制(8/16 modulation)与插入同步码(SYNC),将记录区段转换为一序列的信道位。信道位再以反射率变化的形式,记录于DVD-ROM光盘表面。
表I提供CD-ROM与DVD-ROM光盘的数据格式、数据处理与错误保护方式的比较。
表I

发明内容本发明的目的是提供一种数据校正与检测错误方法,可适用于DVD格式光盘的数据读取及处理装置。其中数据的读取与处理包含对Reed-Solomon似乘积码的内码与外码进行错误校正,以及用于评估一数据区段的错误程度的错误检测处理(process)。在这种装置中,数据区段是由主要数据、多个内码以及经外码编码的多个区段的一部分所编码而成。此方法包含使区段通过CRC产生器以产生区段的初始错误检测值(initial error detectionvalue),以及比较初始错误检测值与目标错误检测值(target errordetection value)以决定区段是否存在错误。透过比较初始错误检测值与目标错误检测值的方式,决定是否针对区段的全部或局部数据进行一次或多次的错误校正运作。然后解扰频(de-scramble)区段内的数据并将其输出。
本发明的另一目的是提供一种数据校正与检测错误方法,可适用于DVD格式光盘的数据读取及处理装置。其中数据的读取与处理包含对Reed-Solomon似乘积码的内码与外码进行错误校正,以及用以评估一数据区段的错误程度的错误检测处理(process)。在这种装置中,数据区段是由多个内码以及经外码编码的多个区段的一部分所编码而成。此方法包含计算区段内的数据的初始错误检测值(该区段数据受到扰频,故在供主机(host)使用前须做解扰频。)针对该区段内的数据,进行错误校正动作,并产生对应于错误校正动作而更新的中间(intermediate)错误检测值。比较中间错误检测值与一目标错误检测值,以决定错误是否存在于该区段中。该目标错误检测值,对于该区段的扰频数据而言,具有其代表性。根据中间错误检测值与目标错误检测值的比较结果,决定是否针对区段的全部或局部数据进行一次或多次的错误校正动作。
本发明的再一目的是提供一种数据校正与检测错误方法,可适用于DVD格式光盘的数据读取及处理装置。其中数据的读取与处理包含对Reed-Solomon似乘积码的内码与外码进行错误校正,以及用于评估一数据区段的错误程度的错误检测处理(process)。在这种装置中,数据区段是由多个内码以及经外码编码的多个区段的一部分所编码而成。此方法包含计算一区段内数据的初始错误检测值,并针对区段内的数据执行一错误校正动作。对应于错误校正动作,产生更新后的中间错误检测值。将初始或中间错误检测值,与目标错误检测值比较,以决定错误是否存在于该区段中。根据比较结果,判定该区段不含错误。然后,处理一些外码,以提供一组错误模式(patterns)与错误位置(error location)。如果任何错误位置对应于该区段内的数据,则对应于错误位置的数据不会受到校正。


图1概要地显示出在DVD-ROM区段中的数据型式与数据结构。
图2概要地显示在受到Reed-Solomon内码与外码防护的DVD-ROM区块内的数据型式与数据结构。
图3概要地显示将图2的ECC区块储存于DVD-ROM光盘上时所使用的列插入模式。
图4概要地显示一DVD-ROM数据读取系统。
图5显示一种DVD-ROM区段解码器的构造。
图6显示图5结构的变形例,其提供更强健(robust)的解码功能,以处理具有较高错误率的光盘数据。
图7概要地显示如何识别可靠的Reed-Solomon错误校正与不可靠的Reed-Solomon错误校正。
具体实施例方式
首先,对本申请说明书附图中的标号进行说明12-光学读取头;14-放大器与数字转换器;16-同步码检测器与8/16解调器;18-DVD-ROM区段解码器;20-缓冲存储器;22-主机接口总线;24-主机接口汇逻辑;30-数据组织器;32-CRC产生器;34-EDC文件;36-EDC处理器;38-解扰频器;40-内码错误校正逻辑;42-外码错误校正逻辑;50-第一内码错误校正逻辑;52-第二内码错误校正逻辑。
本发明的最佳实施例所提供的方法与装置,可以更有效地读取与处理以DVD格式储存在光盘上的数据。大体而言,数据的读取及处理包含了Reed-Solomon似乘积码的内外码错误校正,以及用于评估一个数据区段的错误程度的错误检测处理。在这种装置中,数据区段是由多个内码以及经外码编码的多个区段的一部分所编码而成。本发明的方法包括计算区段内数据的初始错误检测值和中间错误检测值,并与目标错误检测值比较。由于区段内的数据被扰频,其目标错误检测值为非零值。如果初始或中间错误检测值与目标错误检测值相符(match),则可推定该区段为正确无误(error free)。然后,基于一DVD-ROM区块内,某些或者所有区段没有错误的认定,决定是否要进行错误校正动作(operation),或是如何进行错误校正动作。
举例而言,内码逻辑可能在区段数据上执行错误校正,而产生更新的中间错误检测值。比较中间错误检测值与目标错误检测值后,可决定错误是否仍存在于区段中。如果没有错误存在于区段中,则本方法可全部跳过、局部跳过或中断错误校正动作。此种方法可大幅度改进处理DVD-ROM数据的速度。
以下说明数种方式,用以改善读取与处理DVD数据的速度与精度。在探讨本发明的某个最佳实施例时,其结构与运作可参考特定附图。
图4显示一种本发明的最佳实施法,应用于DVD-ROM装置上的数据流。数据是从DVD-ROM光盘读取而来,其方式是根据使用读取头12中的激光束,感测在盘片表面上的反射率变化,并由放大器与数字转换器14放大并转换为数字化(digitized)的波形,即通道比特流。然后,同步码检测器与8/16解调器16将通道比特流转换为具有DVD-ROM区段格式的数据。读出的区段数据被送出至DVD-ROM区段解码器18以供错误校正与错误检测。另设有缓冲存储器20以储存从8/16解调器16接收的区段以及正被解码的区段。如果在缓冲区内的区段,成功地通过错误校正与错误检测处理,则这些区段可经由主机接口逻辑24传送至主机接口总线22,如IDE总线。一般而言主机接口总线22是主计算机内的外围总线,但也可采用其它构造。本发明的方法着眼于在DVD-ROM区段解码器18内的错误校正码与错误检测码的处理,所以并不讨论公知的连接主计算机作法。
在DVD-ROM区段的错误校正与错误检测码与CD-ROM区段类似,也即,错误校正码用于有限度检测并校正出现于读出数据的错误。错误检测码则提供简单的方式以检查在读出数据区段内的数据位是否良好。但相比于CD-ROM光盘所使用的C3编码(相互交错的Reed-Solomon码),DVD-ROM光盘的内码与外码更为复杂。在CD-ROM与DVD-ROM错误处理之间的差异,可比较美国第6,003,151专利号公报与美国第5,991,911专利号公报。前者说明了CD-ROM纠错处理的实施方式,而后者说明了DVD-ROM纠错处理的实施方式。
DVD-ROM数据的解码与CD-ROM数据的解码有下述方面的不同1.DVD-ROM ECC区块中的内码是(182,172)Reed-Solomon码,通常每个字码可校正多达5个错误。而CD-ROM格式区段的P向量(垂直方向字码)通常仅可校正1个错误。
2.DVD-ROM的外码是(208,192)Reed-Solomon码,通常每字码可校正多达8个错误。而CD-ROM格式区段的Q向量(斜角方向字码)通常仅可校正1个错误。
3.DVD-ROM外码针对于组成ECC区块的16区段数据进行编码,因此外码的错误校正需在接收到ECC区块的所有16个区段后,才能开始进行。CD-ROM格式区段的P与Q向量为每个区段进行编码,因此可允许在接收到一个区段后,就马上开始校正错误。
4.每当DVD-ROM外码被解码时,每个字码可在多个区段找出多个错误,并予以校正。但对CD-ROM格式区段而言,错误的校正仅限于单一区段内。
申请人也可实际作出能校正多达10组内码错误,以及多达16组外码错误的Reed-Solomon解码器。然而,由于本发明可施行于校正能力不同的场合,以下的实施例讨论基于典型的作法,假设每外字码可改正8个错误。
内码校正、外码校正、与错误检测功能区块也可安排成数种配置方式。图5显示一种可用来说明本发明的实施例。该图为如图4的DVD-ROM区段解码器18的结构。该图也更详细地显示出图4的区段解码器18与缓冲存储器20间的交互作用。
显示于图5的电路功能包含1.数据组织器30一种用来将从8/16解调器16输入的串行比特流转换为并行(parallel)字符,并将所获得的字符传送至缓冲存储器的电路。
2.CRC产生器32一种循环式冗余码(cyclic redundancy code,CRC)产生器,其将输入比特流除以一检查多项式以产生余数。一般而言,CRC产生器32是一线性反馈移位缓存器(Linear Feedback Shift Register),或这种移位缓存器的变形。移位缓存器的反馈安排,使得CRC产生器32能将其输入的数据字符串,以模数2(modulo2)的除法运算,除以多项式g(x)=x32+x31+x4+1。通过CRC产生器32的数据,从光盘读取尚未经校正的DVD数据。当一DVD数据区段通过CRC产生器32时,CRC产生器32会产生32位数的输出值。此种32位值即为该区段的初始EDC值(initial EDC result),即前述的初始错误检测值。当整个ECC区块顺序通过CRC产生器32时,会为ECC区块内的16个区段产生16个32位初始EDC值。
3.EDC文件34包含16个32位缓存器,用以储存一ECC区块中,由CRC产生器32所产生的16区段的初始EDC值,或是由EDC处理器36所产生的中间EDC值(intermediate EDC result),即前述的中间错误检测值。每当图5的解码器将ECG区块读入时,ECC区块的各个区段会顺序通过CRC产生器32,以算出对应的初始EDC值,并储存于EDC文件中。随着ECC区块中错误校正处理(Reed-Solomon纠错)的进行,EDC处理器36会计算出中间EDC值,而这些中间EDC值也会被储存于EDC文件34内。另一种实施例中,EDC文件34可包含32个32位缓存器,其中16个缓存器用来保存初始或中间EDC值,而其余16个缓存器用来储存区段为正确无误时的目标(target)EDC值(即目标错误检测值)。
4.缓冲存储器20是一随机存取内存,用以储存输入的光盘数据区段,随后并供错误校正处理取用。此内存可储存待校正或校正中的数据区段,以及已校正可传送至主计算机的数据区段。当主计算机要求或以其它方式表示其准备接收数据时,数据会从缓冲存储器取出以供传送。传送时,区段数据从缓冲存储器20读出,再由解扰频器38进行解扰频后,将数据传送至主机接口总线24(图4)。
5.内码错误校正逻辑40从缓冲存储器20读取区段的内码,以执行其Reed-Solomon错误校正,进而产生错误校正信息。校正错误时,内码错误校正逻辑通常利用覆写(overwrite)的方式,更正缓冲存储器20中有错的字节。同时,将错误校正信息(错误模式与位置)传递至EDC处理器36。在接收到此种信息时,EDC处理器36将根据该错误所属的区段,更新EDC文件34中其所对应的EDC缓存器值。内码错误校正逻辑40的可能作法,可参考美国第5,991,911专利号公报的图4及其附属说明。该专利在此为本发明的参考文献,特别是其在本发明中提及的部分。
6.外码错误校正逻辑42从缓冲存储器20读出ECC区块的外码,以在外码上执行Reed-Solomon错误校正,并产生其错误校正信息。在校正错误时,外码错误校正逻辑通常是利用覆写的方式,更正缓冲存储器20中有错的字节。同时,将错误校正信息(错误模式与位置)传递至EDC处理器36。据此,EDC处理器36将根据该错误所属的区段,更新EDC文件34中其所对应的EDC缓存器值。外码错误校正逻辑42的一种可能作法,可参考美国第5,991,911专利号公报的图5及其附属说明。
7.EDC处理器36接收来自内码错误校正逻辑40与外码错误校正逻辑42的错误校正信息,以更新EDC文件中的EDC值。对于每个依据错误校正信息所修正的字节,其所对应的区段的EDC值,由EDC处理器加以重新计算,并更新EDC文件中对应的缓存器。
一种EDC处理器的简单作法,是在每次错误的字节被修正(覆写)后,从缓冲存储器读取整个数据区段,并将此区段数据字符串通过一CRC产生器,而产生一新的EDC值。然而,根据美国第6,003,151与5,991,911专利号公报的讨论,这种EDC计算方式是十分缓慢的。较佳方法是在对数据校正时,计算其对于先前的EDC值所产生的改变,也即计算错误模式(错误字节内需更正的位)与错误位置(错误字节在区段内的位置),造成EDC值的差值。一般用以计算此种差值的方法,公开于美国第6,003,151专利号公报的第12-15栏。在此,将美国第6,003,151与5,991,911专利列为参考文献,它们说明了如何使用线性反馈移位缓存器以及乘法电路,以计算出相对于前EDC值的CRC或EDC差值。
一般用以计算EDC差值的方法,公开于美国第6,003,151专利号公报的上述段落。申请人也可使用在数学上与上述专利的方法等效的其它技术。
8.解扰频器38将从缓冲存储器20读取的区段数据进行解扰频,并将解扰频后的区段数据提供至主机接口总线22(图4)。
现在探讨图5的DVD-ROM区段解码器的运作。在具备图5结构的解码器中,数据组织器30接收自光盘读出、含有DVD-ROM区段数据的比特流,并将其转换成可储存至缓冲存储器20的字符。在此同时,也将比特流送至CRC产生器32,以将输入的比特流除以DVD-ROM检查多项式g(x)=x32+x31+x4+1。当EDC字节的最终位输入的后,CRC产生器32会输出32位的初始EDC值。该值表现出刚才接收的DVD-ROM区段数据,所具有的初始错误特征(syndrome)。初始EDC值标示为EDCN0,其中N为0、1、2...15,代表其为ECC区块中的第一、第二、第三...及第十六个区段。下标0表示该EDC值是未经错误校正的原始值。
参见图1与图2,并以ECC区块的区段0为例,在CRC产生器32中被除以g(x)的多项式I0(x),包含图2的字节B0,0至B0,171、B1,0至B1,171...与B11,0至B11,171。EDC字码多项式I0(x)是区段内受到EDC保护的数据所组成的比特串。假设字节Bm,n的MSB为Bm,n,7,而Bm,n的LSB为Bm,n,0,则初始EDC值,也即EDC00可表示为EDC00=I0(x)modg(x) (2)其中mod为求余式运算,且
I0(x)=B0,0,7x16511+...+B0,171,0x15136+B1,0,7x15135+...+B1,171,0x13760+...+B11,0,7x1375+...+B11,171,0(3)请注意DVD-ROM区段的EDC字码,是针对ID、IED、CPR-MAI及扰频前(unscrambled)的主数据所编码。也即,在方程式(1)中的I(x),包含被扰频前的主数据。但在方程式(2)中,初始值EDC00是针对I0(x)作计算,而I0(x)包含了从光盘读出、已被扰频(scrambled)的主数据位。因此,如果接收到的区段没有错误,则EDC00将是某种非零的数值。此外,在DVD规格内,共订有16种不同的扰频用数据,因此可据以导出16种表示区段无错误的EDC值。
DVD-ROM的Reed-Solomon似乘积码(RSPC)(即内码与外码)是针对扰频后(scrambled)的数据进行编码的,因此,为利于后续错误校正处理的进行,在将DVD-ROM区段数据储存至缓冲存储器20时,DVD-ROM区段数据并未先解扰频(descramble)。此点与CD-ROM解码器(如美国第6,003,151专利号公报所公开的)所采用的处理方式不同。在该专利中,CD-ROM数据的解扰频,发生在其数据被储存至缓冲存储器,和其数据的错误被校正与检测之前。因此,若一CD-ROM区段是正确无误的,其错误检测值(EDC值)计算结果应为零(zero)。但对图5的DVD-ROM解码器而言,对应正确无误的区段所进行的EDC运算,其结果为非零(nonzero)值。
DVD-ROM区段的扰频方法,是将区段的主数据与特定的字节串进行异或(exclusive-OR)运算,以产生扰频后的主数据。在DVD-ROM标准中,共制订有16种扰频字节字符串(scrambling byte string),以使用在每16个相邻的ECC区块,且一ECC区块中所有的区段均使用相同的扰频字节串。因此,以ECC区块的第一区段为例,方程式(1)的I(x)与方程式(3)的I0(x)的关系,可表示为I0(x)=I(x)+S(x)(4)此处S(x)是表示该ECC区块的扰频字节串的多项式,而“+”相当于异或运算。将方程式(2)的I0(x)以方程式(4)代入可得EDC00={I(x)+S(x)}mod g(x)(5)=(I(x)mod g(x)}+(S(x)mod g(x)} (6)对于无错的DVD-ROM区段而言,(I(x)mod g(x)}必为零。因此,若一区段已没有错误,其初始EDC值或该区段经历错误校正时的中间EDC值,将等于{S(x)mod g(x)},即前述的目标EDC值。因为S(x)只有16种可能型式,可预先计算出(S(x)mod g(x)}的所有16种数值,并将这16个值内建于图5的EDC文件34中,以供快速错误检测之用。举例而言,可于EDC文件34中置入16个32位缓存器,以存放这16个数值。
基于上述错误检测规则,DVD-ROM区段解码器即可依据本发明的较佳实施例执行错误校正与检测。具体而言,在对每个由缓冲存储器20接收的数据区段进行错误校正时,内码错误校正逻辑40首先依下述方式一一对区段的内码进行解码1.对于每笔内码,计算10个症状(syndrome)字节。
2.若10个症状字节不全是零,则此内码中必有错误。内码错误校正逻辑40会根据这些症状字节导出一组方程式,并求出这组方程式的解,以决定错误的位置与模式。反之,若全部症状字节均为零,则判定此内码中并无错误,因此可以继续处理下一笔内码。
3.依据每笔错误位置数据,可找出缓冲存储器20中有错的字节,并依其错误模式将其校正后数值覆写于该字节。
4.与3.同时,将错误模式与错误位置送至EDC处理器36,以计算校正该错误所造成EDC值的差值。然后,EDC处理器36将EDC文件34内该区段所对应的EDC缓存器值予以更新。
当整个ECC区块被接收并储存于缓冲存储器20后,即开始进行外码错误校正。外码错误校正逻辑42按下述方式来处理外码1.对于每笔外码,计算出16个症状字节。
2.若16个症状字节不全是零,则此外码中必有错误存在。外码错误校正逻辑42会为这些症状组织出一组方程式,并求出这组方程式的解,以决定错误位置与模式。反之,若16个症状字节全都是零,则此外码中并无错误,因此可继续处理下一笔外码。
3.依据每笔错误位置数据,可找出缓冲存储器20中有错的字节,并依其错误模式将其校正后数值覆写于该字节。
4.与3.同时,将错误模式与错误位置送至EDC处理器36,以计算校正该错误所造成EDC值的差值。然后,EDC处理器36将EDC文件34内,该错误所属区段所对应的EDC缓存器值予以更新。
最后,当区段已校正完毕后,即可传输至主机接口总线22(图4)。由于在缓冲存储器20中的区段数据仍处于受扰频状态,在将它们送至主机接口逻辑24(图4)前,必须先由解扰频器38予以解扰频。如此,主机接口逻辑24即可提供校正过且解扰频过的数据至主机接口总线22。
依据本发明的较佳方式,可运用数种技巧以改善上述DVD-ROM数据纠错处理的效率。举例而言,1.如果一ECC区块内,所有区段的初始EDC值都等于{S(x)mod g(x)},即目标错误检测值(为一非零值)。则可判定该ECC区块应无错误,故可跳过该ECC区块的内码错误校正与外码错误校正处理。此种比较可由下述处理达成从EDC文件34中取得适当的EDC缓存器值,并与目标EDC值{S(x)mod g(x)}比较。目标余数值可预先算好,并内建于EDC处理器或EDC文件34中。
2.若某一区段的初始EDC值等于目标值{S(x)mod g(x)},可判定该区段应无错误,因此其内码错误校正处理可略过不做。
3.若进行某一区段的内码错误校正时,该区段的中间EDC值被更新而等于其目标值(S(x)mod g(x)},则该区段的内码校正处理可予以中止。换言之,在内码错误校正处理开始后,随着错误被一一校正,中间EDC值也同步被更新,且不断与目标值{S(x)mod g(x)}相比较。当这两个32位数值(中间EDC值与目标EDC值)相等时,根据编码理论可知该区段仍有错误的机率极低,因此没有必要继续进行内码校正处理。
4.如果一ECC区块中的所有区段,其中间EDC值在内码错误校正后均已变成{S(x)mod g(x)},则可判定该ECC区块中的区段已无错误,因此该ECC区块的外码错误校正可完全跳过。
5.若进行某一ECC区块的外码错误校正时,其所有区段的中间BDC值都已变成目标值{S(x)mod g(x)},则该ECC区块的外码错误校正可予以中止。换言之,在外码校正处理开始后,每外码校正逻辑42校正一笔储存于缓冲存储器20的数据,其也传送错误模式与错误位置数据至EDC处理器36。EDC处理器36据此计算并更新该错误所属区段的中间EDC值。然后,将所有16个中间EDC值与目标值相比。若所有16个值都等于目标值,则可停止外码错误校正处理。
上列1-5的任一种方法,均可同时、分别、或组合使用,以显著改善解码效率。
内码错误校正逻辑40与CRC产生器32也可有其它配置方式。图6显示一种DVD-ROM区段解码器的较佳替代结构。在图6中的区段解码器,其组成组件与图5的区段解码器的组件相同的,以相同的参考数字表示。
在显示于图6的结构中,输入的DVD-ROM区段的内码先由第一内码错误校正逻辑50校正。第一内码错误校正逻辑50的输出是经过一次内码校正后的字节数据流。该数据流被送至CRC产生器32,并同时被储存于缓冲存储器20中。所以,储存于EDC文件的初始EDC值EDCN0是经过一次内码校正后的DVD-ROM区段数据的错误检测值。在整个ECC区块被储存至缓冲存储器20后,即可启动外码错误校正逻辑42以处理外码(因内码已由第一内码错误校正逻辑50处理过了)。假若在外码错误校正处理的后,仍有错误残留在某些区段中,则可轮流启动第二内码错误校正逻辑52与外码错误校正逻辑42,来重复进行内码与外码错误校正,以校正更多的错误。或者可从光盘重新读取有错误的区段,并重复实施错误校正与检测处理,以获得正确的区段数据。
本发明的另一较佳实施例也可改善DVD-ROM区段解码器的外码错误校正方式,以读取来自有瑕疵光盘的数据。公知的Reed-Solomon解码以下述方式进行1.计算Reed-Solomon码的症状值。如果全部的症状值都是零,则表示没有可检测的错误存在于码中。故可跳过以下的步骤2与3。
2.如果一个或多个症状值是非零,则寻求错误位置与错误模式。其方法是从步骤1所产生的症状值数据,推导出一组方程式,然后从该组方程式解出错误位置与错误模式。错误位置通常可由公知的迭代(iterative)方法来搜寻。一旦找出错误位置,即可用方程式来解出错误模式。
3.将错误模式值,加()到错误位置所标示的错误字节,即可校正该Reed-Solomon码。
对于特定的Reed-Solomon码而言,其可校正错误的最大数目是固定的。若Reed-Solomon码中有太多错误,则在步骤2中可能出现两种情况。第一种可能性是无法成功解出错误位置。第二种可能性是虽然解出某些错误位置,但是这些错误位置是不正确的,也就是它们并未指示出码中真正的错误所在。很显然地,第二种状况是较差的,因为在步骤3中,会依步骤2的解,错误地校正Reed-Solomon码。其结果是码中的错误数目不减反增。
当从不好的DVD-ROM光盘读取数据时,外码错误过多有时是不可避免的。如果以公知的Reed-Solomon解码器处理这样的外码,则外码校正失误的情形便会常常发生。又外码所解出的错误位置可达8个之多,所以误解的外码可能导致ECC区块中,有多达八个区段出现新增的错误。更糟的是这些区段中,原本有些是没有错误的。因此,相较于公知的外码错误校正方法,本发明的较佳实施例提供了一种更严格的外码错误校正的查验方法。
在依据本发明实施例的DVD-ROM解码器结构中,可用中间EDC值确认已正确无误的区段。这时因为有错误的区段能通过EDC检查的机率极低。更重要的是,当错误校正处理进行时,中间EDC值会随着错误的校正而改变。因此,可参考EDC值,以避免错误校正处理改动正确无误区段内的数据。在其具体实施例中,可将解码器设计如下每当外码错误校正逻辑42解得一笔外码的错误位置与错误模式时,除非对于每个非零的错误模式,其对应的错误位置所标示的字节,不属于一EDC值为{S(x)mod g(x)}的区段,否则外码错误校正逻辑42就不会校正此码。换言之,如果错误位置与错误模式显示在被推定为正确无误的区段中(根据检验它们的EDC值)含有错误,则错误位置与错误模式将被认为是不正确的。因此,这种矛盾可疑的错误信息会被舍弃,而错误校正处理会继续处理下一笔外码。
图7显示本发明的此种作法如何用以改善外码错误校正的结果。首先,假设一ECC区块中,区段0至8与区段10至15是好的,而区段9因为某种缺陷(如刮痕)而含有许多错误。随后,在校正该区块时,发现区段0至8及10至15的(初始或中间)EDC值等于目标值,而区段9则否,故可推论除区段9外,其余区段都已是正确无误的。因为区块中仍有错误存在,所以需启用外码错误校正处理。于是,在某个时刻外码A被解码,并检测到(即解出)6个错误。因为这6个错误均处于区段9内,所以可使用其错误模式与错误位置校正它们。后来,外码B被解码,并检测到8个错误。但这8个错误出现在区段1、3、5、6、9、11、12与15中,显然与上述的区段正确性的认定不符。因此,本较佳实施例推论这些错误模式与错误位置信息是不正确的,所以不据以执行任何错误校正。结果,原本没有错误的区段仍然是正确无误的,而原已有错误的区段9仍然含有某些错误。为了获取区段9的数据,可重复对其施以内码与外码错误校正,或是从光盘重新读取区段9的内容。
显然,借助于敏锐的EDC值,可做出具有较佳错误校正速度与可靠度的DVD-ROM解码器。以上虽以实施例说明本发明,但并不因此限定本发明的范围,只要不脱离本发明的精神,本领域的技术人员可进行各种变形或变更。因此,本发明由后附的本申请的权利要求书所限定。
权利要求
1.一种具有错误处理的光盘数据读取方法,用来读取与处理储存于光盘上的区段数据,该区段数据包含错误检测码、多个内码,并经外码编码的多个区段的一部分所编码而成,且区段数据的读取与处理包含对里德-索罗门(Reed-Solomon)似乘积码的内码与外码错误校正,以及用于评估区段数据的错误程度的错误检测处理,该方法包含使该区段数据通过一循环式冗余码产生器,以产生该区段的初始错误检测值;比较该初始错误检测值与一目标错误检测值,以决定该区段中是否存在错误;根据比较该初始错误检测值与该目标错误检测值的结果,决定是否针对该区段内的全部或局部数据执行一次或多次的错误校正操作;以及将该区段内的数据进行解扰频后输出区段内的数据。
2.如权利要求1所述的具有错误处理的光盘数据读取方法,其中所述目标错误检测值是针对该区段的扰频数据所计算的一非零数值。
3.如权利要求2所述的具有错误处理的光盘数据读取方法,其中所述的目标错误检测值是被用于DVD-ROM格式的ECC区块数据的16个相异数值之一。
4.如权利要求1所述的具有错误处理的光盘数据读取方法,其所述错误校正操作包含内码与外码校正两者。
5.如权利要求1所述的具有错误处理的光盘数据读取方法,其中前述错误校正操作包含内码校正。
6.如权利要求1所述的具有错误处理的光盘数据读取方法,其中内码错误校正执行于该区段通过前述循环式冗余码产生器之前。
7.一种具有错误处理的光盘数据读取方法,用来读取与处理储存于光盘上的区段数据,该区段数据包含错误检测码、多个内码,并经外码编码的多个区段的一部分所编码而成,且区段数据的读取与处理包含对里德-索罗门(Reed-Solomon)似乘积码的内码与外码错误校正,以及用于评估区段数据的错误程度的错误检测处理,该方法包含计算区段内的数据的初始错误检测值,该区段内的数据未被解扰频;针对区段内的数据执行错误校正操作,并相应于该错误校正操作而决定一更新的中间错误检测值;比较中间错误检测值与一目标错误检测值,以决定错误是否存在于该区段中,该目标错误检测值是针对该区段的扰频数据所计算的一非零数值;以及根据中间错误检测值与目标错误检测值的比较情形,决定是否针对区段内的全部或局部数据执行一次或多次的错误校正操作。
8.如权利要求7所述的具有错误处理的光盘数据读取方法,其中终止内码校正的决定发生于处理一内码的症状值时。
9.如权利要求7所述的具有错误处理的光盘数据读取方法,其中一区块内的所有区段至少执行一次内码错误校正,且当每个区段的错误检测值等于其目标错误检测值时,不执行外码错误校正。
10.如权利要求7所述的具有错误处理的光盘数据读取方法,其中对区段的内码错误校正执行于计算前述初始错误检测值之前。
11.如权利要求7所述的具有错误处理的光盘数据读取方法,其中由一循环式冗余码产生器计算前述初始错误检测值。
12.如权利要求11所述的具有错误处理的光盘数据读取方法,其中由一线性反馈移位缓存器计算前述初始错误检测值。
13.如权利要求11所述的具有错误处理的光盘数据读取方法,其中前述初始错误检测值是根据将包含该区段内的数据位的一错误检测字码,除以多项式g(x)=x32+x31+x4+1计算出来的。
14.如权利要求13所述的具有错误处理的光盘数据读取方法,其中由一线性反馈移位缓存器计算前述初始错误检测值。
15.一种具有错误处理的光盘数据读取方法,用来读取与处理储存于光盘上的区段数据,该区段数据包含错误检测码、多个内码,并经外码编码的多个区段的一部分所编码而成,且区段数据的读取与处理包含对里德-索罗门(Reed-Solomon)似乘积码的内码与外码错误校正,以及用于评估区段数据的错误程度的错误检测处理,该方法包含计算区段内的数据的一初始错误检测值;针对区段内的数据执行错误校正操作,并根据该错误校正操作决定一更新的中间错误检测值;比较前述初始或中间错误检测值与一目标错误检测值,以决定该区段是否存在错误;根据上述比较初始或中间错误检测值与目标错误检测值的结果,判定此区段并未包含错误;处理一外码以产生一组错误模式与错误位置;以及决定该区段内是否有任何数据与上述错误位置所对应,且即使有任何数据与上述错误位置所对应,也不校正区段内对应于上述错误位置的数据。
16.如权利要求15所述的具有错误处理的光盘数据读取方法,其中该区段内的数据受到扰频,所以在供主机使用前需将该区段内的数据解扰频。
17.如权利要求15所述的具有错误处理的光盘数据读取方法,其中该目标错误检测值是针对该区段的扰频数据所计算的一非零数值。
18.如权利要求15所述的具有错误处理的光盘数据读取方法,其中对区段的内码错误校正执行于计算前述初始错误检测值之前。
19.如权利要求15所述的具有错误处理的光盘数据读取方法,其中由一循环式冗余码产生器计算前述初始错误检测值。
20.如权利要求19所述的具有错误处理的光盘数据读取方法,其中由一线性反馈移位缓存器计算前述初始错误检测值。
21.如权利要求19所述的具有错误处理的光盘数据读取方法,其中前述初始错误检测值是根据将包含该区段内的数据位的一错误检测字码,除以多项式g(x)=x32+x31+x4+1而算出的。
22.如权利要求21所述的具有错误处理的光盘数据读取方法,其中由一线性反馈移位缓存器计算前述初始错误检测值。
全文摘要
具有错误处理的光盘数据读取方法,用于更有效地读取与处理以DVD-ROM格式储存于光盘上的数据。一般光盘数据的读取与处理包含对Reed-Solomon似乘积码的内码与外码进行错误校正,和评估区段数据的错误程度的错误检测处理。本发明中,数据区段包含错误检测码、多个内码,并经外码编码的多个区段的一部分所编码而成。计算区段内数据的初始与中间错误检测值,并与目标错误检测值比较。由于区段内的数据被扰频,其目标错误检测值是非零值。若初始或中间错误检测值与目标错误检测值相符,则可认为该区段没有错误。基于在DVD-ROM区块内某些或所有区段没有错误的判定,作出是否执行错误校正处理或如何执行错误校正处理的决定。
文档编号G11B7/00GK1476013SQ0212975
公开日2004年2月18日 申请日期2002年8月13日 优先权日2002年8月13日
发明者庄承德, 黄维宏 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1