数据调制和校正方法 技术领域
本发明涉及数据调制和校正方法,并且更具体地,涉及一种用于调制数据、使得对信道失真具有抵抗能力的代码调制方法和一种用于校正在检测由该调制方法所调制的数据中的错误的方法。
背景技术
随着光存储介质的记录密度的增加,数字通用盘随机存取存储器(DVD-RAM)、可记录DVD(DVD-R)或可写入DVD(DVD-RW)的轨道间距变得狭窄。因此,来自相邻轨道的串扰或噪声的引入和来自相邻凹坑的符号间干扰量正在增加。这种干扰增加了射频(RF)信号的抖动,特别是当访问按照凹坑记录了其物理地址的光存储介质时。
具有受限的最大和最小限制地行程长度受限(RLL)码是光存储介质的常用数据调制代码。最小行程长度,用参数“d”表示,极大地影响了在光盘中检测凹坑(或非凹坑)的准确度和该代码的记录密度。最大行程长度,用参数“k”表示,与代码效率和代码策略有关。通常的RIL代码包括在最小和最大行程之间的连续行程长度。例如,与具有d=2和k=10、4T、5T、...和10T(T为再现块)代码的DVD家庭记录介质兼容的八-至-十四调制加(EFM+)代码,不包括同步代码,存在于最小凹坑长度为3T以及最大凹坑长度为10T之间。图1是EFM+代码的行程长度分布的柱状图。但是,当在再现的RF信号中出现抖动时,由于信道的任何失真,图1的1T间隔码(spacecode)使在偏差为±0.5T时出现误差的可能性增加了。
图2是在通用DVD-RAM的标头字段中的物理地址格式表。对于通用的DVD-RAM,相同的地址数据在标头上写入两次以确保高检测水平。标头字段包括用于锁相环的可变频率晶振(VFO1)的数据、地址标记(AM)数据、物理识别数据(PID1)、ID错误检测数据(IED1)和用于IED1解调的后同步信号数据(PA1)。具有与上述相同结构的VFO2、AM、PID2、IED2和PA2也写入在标头字段。但是即使改进了检测水平,基于该RLL调制代码的物理地址数据的写入也会产生冗余问题。
发明内容
为解决上述问题,本发明的目的在于提供一种能够调制数据使得对干扰有抵抗能力的数据调制方法,以及一种用于校正在读取该调制方法写入的数据中出现的错误的方法。
为了实现上述目的,提供一种使用行程长度受限(RLL)调制代码的数据调制方法,该行程长度受限(RLL)调制代码应用于将数据写入到光存储介质中,该RLL调制代码由RLL(d,k,m,n,s)表示,其中S=2或更大,d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。
最好在RLL调制代码中,行程长度是2、5、8和11之一,代码字的前导0的数目是1、4和7之一,以及代码字的结束0的数目是1和4之一。
最好使用RLL调制代码应用于将地址数据写入到光存储介质的物理扇区,该地址数据是数据存取所需的。
最好预先执行RLL调制代码作为光存储介质中的凹坑,以便写入和存取包括版权的重要信息。
最好数据调制方法包括从使用RLL调制代码调制的代码字中丢弃具有最大行程长度的代码字,以便产生读取时钟信号和同步时钟信号。
最好数据调制方法包括从使用RLL调制代码调制的代码字中丢弃具有代码字数字和(CDS)的代码字,该代码字数字和的绝对值是相当大的。
为实现本发明的目的,提供一种使用行程长度受限(RLL)调制代码的数据调制方法,该行程长度受限(RLL)调制代码应用于将数据写入到光存储介质中,该RLL调制代码由RLL(d,k,m,n,s)表示,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。该数据调制方法包括:产生满足RLL(2,11,8,27,3)的代码字;以及将具有12T的行程长度的代码字从所产生的代码字中移去,并产生保留代码字的代码表,其中T是再现时钟信号。
最好数据调制方法还包括,从代码字表中丢弃具有绝对值相当大的代码字数字和的代码字;以及按照CDS绝对值的升序排列保留代码字以减小代码字的直流(DC)分量。
在根据本发明的数据校正方法的另一个实施例中,提供一种用于对在使用行程长度受限(RLL)调制代码将数据写入到光存储介质之后从光存储介质中读出的数据进行校正的方法,其中该RLL调制代码由RLL(d,k,m,n,s)表示,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。该方法包括:(a)通过检测代码序列中行程长度的比特转变,计算从光存储介质中读出的代码序列的行程长度,并且如果检测第N个凹坑不符合所述RLL编码规则,则检查随后M个凹坑的行程长度;以及(b)如果随后的M个凹坑的任何一个的行程长度不符合所述的RLL编码规则,则根据RLL编码规则校正第N个凹坑的行程长度。
最好步骤(b)包括:如果第N个凹坑的行程长度比RLL代码的行程长度小s/2,则通过将s/2加到第N个凹坑的行程长度来校正第N个凹坑;以及通过从第(N+1)凹坑的行程长度减去s/2来校正第(N+1)个凹坑。
最好步骤(b)包括:如果第N个凹坑的行程长度比RLL代码的行程长度大s/2,则通过从第N凹坑的行程长度减去s/2来校正第N凹坑;通过将s/2加到第(N+1)个凹坑的行程长度来校正第(N+1)个凹坑。
在上述数据校正方法中,当s=3时,步骤(b)包括:如果第N个凹坑的行程长度比RLL代码的行程长度小1,则通过将1加到第N个凹坑的行程长度来校正第N个凹坑;以及通过从第(N+1)个凹坑的行程长度中减去1来校正第(N+1)个凹坑。
当s=3时,最好步骤(b)包括:如果第N个凹坑的行程长度比RLL代码的行程长度大1,则通过从第N个凹坑的行程长度中减去1来校正第N个凹坑;以及通过将1加到第(N+1)个凹坑的行程长度来校正第(N+1)个凹坑。
在根据本发明的数据校正方法的另一个实施例中,提供一种用于对在使用行程长度受限(RLL)调制代码将数据写入到光存储介质之后从光存储介质中读出的数据进行校正的方法,其中该RLL调制代码由RLL(d,k,m,n,s)表示,其中d=1和s=3,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。该方法包括:(a)通过检测比特转变,计算从光存储介质中读出的代码序列的行程长度,确定所计算的行程长度是否符合所述的RLL调制规则,其中行程长度表示为:in+1=in+3(n=1,2...),初始行程长度i1=2,并且。如果检测到不等于行程长度in的任一个的第N个凹坑,则检测随后的M个凹坑的行程长度;以及(b)如果M个凹坑中至少一个的行程长度不等于行程长度in,则根据所述的RLL调制规则校正第N个凹坑的行程长度。
最好步骤(b)包括:(b1)通过从第N个凹坑的行程长度中减去或加上一个值来校正第N个凹坑的行程长度,以使第N个凹坑的行程长度等于其绝对值最接近第N个凹坑的行程长度的行程长度in;以及(b2)通过从第N个凹坑的行程长度中减去或加上在步骤(b1)中加上或减去的值来校正第(N+1)个行程长度。
在根据本发明的数据校正方法的另一个实施例中,提供一种用于对在使用行程长度受限(RLL)调制代码将数据写入到光存储介质之后从光存储介质中读出的数据进行校正的方法,其中该RLL调制代码由RLL(d,k,m,n,s)表示,其中d=1和s=3,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。该方法包括:(a)通过检测比特转变,计算从光存储介质中读出的代码序列的行程长度,确定所计算的行程长度是否符合所述的RLL调制规则,其中行程长度表示为:in+1=in+3(n=1,2...),初始行程长度i1=1,并且,如果检测到不等于行程长度in的任一个的第N个凹坑,则检测随后的M个凹坑的行程长度;以及(b)如果M个凹坑中至少一个的行程长度不等于行程长度in,则校正第N个凹坑的行程长度以符合根据RLL调制规则。
最好步骤(b)包括:(b1)通过从第N个凹坑的行程长度中减去或加上一个值来校正第N个行程长度,以使第N个凹坑的行程长度等于其绝对值最接近第N个凹坑的行程长度的行程长度in;以及(b2)通过从第N个凹坑的行程长度中减去或加上在步骤(b1)中加上或减去的值来校正第(N+1)个行程长度。
附图说明
通过下面结合附图对实施例进行的详细描述,本发明的上述目的和优点将会变得更加清楚,其中:
图1是EFM+代码的行程长度分布的柱状图;
图2是在一般的通用数字盘随机存取存储器(DVD-RAM)的标头字段中的物理地址格式表;
图3是根据本发明的数据调制方法调制的代码流的分布柱状图;
图4是根据所述规则产生的、并由代码字数字和(CDS)分类的代码字的表;
图5A和5B是从中丢弃具有最大凹坑长度12T的代码字的扩展的间隔行程长度受限(ES RLL)(2,11,8,27,3)调制代码字的表;
图6A和6B是具有更小的CDS的ES RLL(2,11,8,27,3)调制代码字的表;
图7是说明当读取根据本发明的ES RLL调制代码写入到光存储介质中的数据时,校正由抖动造成的错误的方法的流程图;
图8是说明在检测RLL(2,11,8,27,3)调制的代码字中的错误校正方法的流程图;
图9示出了使用常规的RLL代码(a)和根据本发明ES RLL代码(b)的写入到光存储介质中物理地址数据的结构;
图10是使用根据本发明的ES RLL代码的光存储介质的物理地址扇区的数据格式的表;
图11A是使用常规电平分离器(level slicer)数字化的根据本发明的ESRLL代码流的柱状图;
图11B是使用SRC检测器数字化的根据本发明的ES RLL代码流的柱状图;
图12是显示常规方法和本发明的与电路噪声有关的代码流检测水平的图;
图13是显示常规方法和本发明的与不对称有关的代码流检测水平的图;以及
图14是显示常规方法和本发明的与光存储介质的切线倾斜有关的代码流检测水平的图。
具体实施方式
根据本发明的数据调制方法使用凹坑间间隔2T或更大的调制代码将数据写入到光存储介质中,以减少检测错误。图3是根据本发明的数据调制方法产生的代码流的分布的示意柱状图。对于相同的抖动量来说,与1T间隔代码相比,凹坑间隔2T或3T的代码的使用还改进了数据检测水平。尽管就记录密度而言,2T或3T间隔代码增加了代码长度,是不利的,但是就减少抖动出现中的错误和改进检测水平而言,这些代码对于诸如写入到光盘的物理地址数据之类的重要信息来说是有效的。
根据本发明的调制方法涉及用于改进检测水平的具有s=2或更大的RLL(d,k,m,n,s)调制代码的生成,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度。这里行程长度就是在二进制代码序列中相邻逻辑‘1’之间的连续‘0’的数目。
图3的柱状图中所示的RLL(2,11,8,27,3)代码字,其中使用s=3生成,可根据下面规则获得:
(1)行程长度∈{2,5,8,11}
(2)代码字的前导0∈{1,4,7},以及
(3)代码字的结束0∈{1,4}
根据规则(1),凹坑的长度是3T、6T、9T或12T之一。建立规则(2)和规则(3)使得当连接代码字时,规则(1)得到满足。例如,如果代码字的尾部具有一个0,并且随后的代码字在其前端具有一个0,则两个代码字的行程长度变成2,满足规则(1)定义的最小行程长度。如果代码字的尾部具有四个0,后面的代码字在其前端具有四个0,则两个代码字的行程长度变成11,满足规则(1)的最大行程长度。根据该调制,在本实施例中凹坑间的间隔延伸成3T,所以该调制代码称为“扩展间隔调制(ES RLL)代码”。满足规则(1)至(3)的代码字的数目总计是298,并且具有最大凹坑长度12T的代码字的数目是63。
图4是由代码字数字和(CDS)分类的、符合规则(1)至(3)产生的代码字的表。CDS是指在每一代码字中二进制比特“1”和“0”的和,其中在加法运算中,比特“0”由“-1”代替。
图5A和5B是从中丢弃具有最大凹坑长度12T的63个代码字以避免时钟信号或同步失配的再现中的问题的ES RLL(2,11,8,27,3)调制代码字的表,其中所丢弃的63个代码字可以包括具有最大长度12T的两个凹坑。
图6A和6B是具有较小CDS的ES RLL(2,11,8,27,3)调制代码字的表。换言之,具有相当大的CDS的代码字被从图6A和6B的调制代码字中移去以便减少对代码字进行直流抑制控制的行程数字和(RDS)(runningdigital sum)。
ES RLL调制代码是在光存储介质的物理地址扇区(标头字段)中作为凹坑预先形成的,以写入指示数据地址或与例如版权有关的其他重要信息。
现在将描述在检测由上述方法调制的代码字中应用的错误校正方法。
图7是说明当读取使用上述ES RLL调制代码写入到光存储介质中的数据时,校正由于抖动造成的错误的方法的流程图。在校正使用RLL(d,k,m,n,s)写入的数据和从光存储介质中读取的数据中的错误时,首先,通过检测其中的比特转变计算从光存储介质中读取的代码序列的行程长度。如果检测到不符合RLL编码规则的第N个凹坑(或标记),则检查下面M个凹坑的行程长度(步骤700)。如果下面的M个凹坑的任意一个的行程长度都不符合RLL编码规则,则根据RLL编码规则校正第N个凹坑的行程长度(步骤710)。
在图7的步骤710中,如果第N个凹坑的行程长度比行程长度小s/2,则通过将s/2加到第N个凹坑的行程长度来校正第N个凹坑;以及通过从第(N+1)凹坑的行程长度减去s/2来校正第(N+1)凹坑。如果第N个凹坑的行程长度比RLL代码的行程长度大s/2,则通过从第N凹坑的行程长度减去s/2来校正第N凹坑;以及通过将s/2加到第(N+1)个凹坑的行程长度来校正第N+1个凹坑。
在图7的步骤710中,对于一个s=3的RLL(d,k,s)代码,如果第N个凹坑的行程长度比RLL代码的行程长度小1,则通过将1加到第N个凹坑的行程长度来校正第N个凹坑;以及通过从第(N+1)个凹坑的行程长度中减去1来校正第(N+1)个凹坑。如果第N个凹坑的行程长度比RLL代码的行程长度大1,则通过从第N个凹坑的行程长度中减去1来校正第N个凹坑;以及通过将1加到第(N+1)个凹坑的行程长度来校正第(N+1)个凹坑。
在对写入在RLL(d,k,m,n,s)代码中之后从光存储介质中读出的数据进行的校正中,其中d=1和s=3,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度,通过检测其中的比特转变来计算从光存储介质中读取的代码序列的行程长度。下面决定所计算的行程长度是否符合RLL调制规则,其中行程长度表示为:in+1=in+3(n=1,2...),初始行程长度i1=2。如果检测到不等于行程长度in的任一个的第N个凹坑,则检查随后的M个凹坑的行程长度;如果M个凹坑中至少一个的行程长度不等于行程长度in,则根据RLL调制规则的规定校正第N个凹坑的行程长度。
具体地,通过从第N个凹坑的行程长度中减去或加上一个值来校正第N个行程长度,以使第N个凹坑的行程长度等于其绝对值最接近第N个凹坑的行程长度的行程长度in;并且接着校正第(N+1)个凹坑的行程长度。如果从第N个凹坑的行程长度中减去或加上一个值,则通过减去所加的相同的值或者加上所减去的相同的值来校正第(N+1)个凹坑的行程长度。
至于另一个实施例,在对从其中写入在RLL(d,k,m,n,s)代码中的光存储介质中读出的数据进行的校正中,其中d=1和s=3,其中d是最小行程长度,k是最大行程长度,m是调制前的数据比特长度,n是调制后的代码字比特长度,以及s是代码字间的间隔长度,通过检测其中的比特转变来计算从光存储介质中读取的代码序列的行程长度。下面决定所计算的行程长度是否符合RLL调制规则,其中行程长度表示为:in+1=in+3(n=1,2...),初始行程长度i1=1。如果检测到不等于行程长度in的第N个凹坑,则检查随后的M个凹坑的行程长度。如果M个凹坑中至少一个的行程长度不等于行程长度in,则根据RLL调制规则的规定校正第N个凹坑的行程长度。
具体地,通过从第N个凹坑的行程长度中减去或加上一个值来校正第N个行程长度,以使第N个凹坑的行程长度等于其绝对值最接近第N个凹坑的行程长度的行程长度in,并且接着校正第(N+1)个凹坑的行程长度。如果从第N个凹坑的行程长度中减去或加上一个值,则通过减去其中所加的值或者加上其中所减去的值来校正第(N+1)个凹坑的行程长度。
在上述数据校正方法中,如果M个凹坑的行程长度符合RLL编码规则,即使在第N个凹坑中检测到错误,则不校正第N个凹坑的行程长度以防止错误蔓延。
图8是说明检测RLL(2,11,8,27,3)调制的代码中的错误校正方法的流程图。当输入一个代码流T(n)时,初始化行程长度计算参数(步骤800)。接着确定在输入的代码流中的当前比特中是否出现转变在(步骤802)。如果在当前比特中没有出现转变,则比特计数参数增加以读取下一个比特(步骤804),并再次执行步骤802。如果在步骤802中检测到转变,则存贮输入代码流T(n)的比特转变位置和行程长度(步骤806)。对于代码流T(n)后面的M个代码流T(n+1)、T(n+2)、T(n+3)和T(n+4),本实施例中M=4,重复上述步骤。接着,检查M个代码流的每一个的行程长度是否属于{2,5,8,11}(步骤808)。换言之,确定M个代码流是否具有3T、6T、9T或12T信号。如果所有的代码流T(n+1)、T(n+2)、T(n+3)和T(n+4)都属于{2,5,8,11},则初始化行程长度计算参数(步骤810)。接着确定是否有要读取的代码流(步骤812)。如果没有要读取的代码流,则处理停止。如果有要读取的代码流,则处理前进到步骤802。如果在步骤808确定M个代码流T(n+1)、T(n+2)、T(n+3)和T(n+4)的至少一个不属于{2,5,8,11},则确定在步骤806存储的代码流T(n)的行程长度是否属于{1,4,7,10}(步骤814)。如果在步骤806存储的代码流T(n)的行程长度属于{1,4,7,10},即代码流T(n)具有比2T、5T、8T或11T的凹坑信号的行程长度短1T的行程长度。通过增加代码流T(n)的行程长度,凹坑信号2T、5T、8T或11T分别被校正成3T、6T、9T或12T。接着,通过从代码流T(n+1)的行程长度中减去1T来校正代码流T(n)后面的代码流T(n+1)(步骤816)。如果在步骤814确定代码流T(n)的行程长度不属于{1,4,7,10},则确定代码流T(n)的行程长度是否属于{3,6,9,12}(步骤818)。如果代码流T(n)的行程长度属于{3,6,9,12},即代码流T(n)具有比4T、7T、10T或13T的凹坑信号的行程长度长1T的行程长度。通过减小代码流T(n)的行程长度,凹坑信号4T、7T、10T或13T分别被校正成3T、6T、9T或12T。接着,通过从代码流T(n+1)的行程长度中增加1T来校正代码流T(n)后面的代码流T(n+1)(步骤820)。
根据本发明的数据校正被称为‘SRC检测(前瞻凹坑的滑动行程长度补偿Slide Run Compensation looking forward pits),因为该校正是通过检查与所施加的编码规则兼容的凹坑来执行的。图9显示了常规RLL代码(a)和根据本发明的ES RLL代码(b)的写入到光存储介质的物理地址数据的格式。图10是显示其中应用了根据本发明的ES RLL代码的光存储介质的物理扇区的数据格式的表。如图10所示,物理地址数据包括用于锁相环的可变频率晶振(VFO)数据、地址标记(AM)数据、物理识别数据(PID)和ID错误检测数据(IED)。不象总计有1004比特的常规物理地址数据格式,具有783的减少的比特总数的组成数据被一次写入。结果,在物理地址扇区中有22%的冗余减少的效果。
图11A是使用常规电平分离器数字化的根据本发明的ES RLL代码流的柱状图。如图11A所示,代码流的凹坑在从2T至12T的范围以间隔1T长度变化。检测2T的192个凹坑、3T的10135个凹坑、3T的343个凹坑、5T的141个凹坑、6T的5621个凹坑、7T的3个凹坑、8T的18个凹坑、9T的2892个凹坑、10T的7个凹坑、11T的8个凹坑和12T的589个凹坑。除3T、6T、9T和12T凹坑外的凹坑相应于错误。
图11B是使用SRC检测器数字化的根据本发明的ES RLL代码流的柱状图。如图11B所示,检测到3T的10671个凹坑、6T的5763个凹坑、9T的1917个凹坑、12T的595个凹坑。图11A所示的错误消失了。
图12至14显示了在不同编码方法间的检测效率的不同。图12是显示常规方法和本发明的与电路噪声有关的代码流检测水平的图。如图12所示,与将电平分离器应用到RLL代码流中的常规方法相比,当将SRC检测方法应用到根据本发明的ES RLL代码流中时,检测水平改进了5db或更大。
图13是显示常规方法和本发明的与不对称有关的代码流检测水平的图,如同13所示,当使用SRC检测器检测根据本发明的ES RLL代码流时,不对称余量大约比常规方法大5%。
图14是显示常规方法和本发明的与光存储介质的切线倾斜有关的代码流检测水平的图。如图14所示,当使用SRC检测器检测根据本发明的ES RLL代码流时,在误差率为10-4上的倾斜余量比常规方法大0.5度。
如上所述,根据本发明的数据调制和校正方法在改进对干扰的检测水平容限的同时,可以减小写入到光存储介质中的物理地址数据的冗余。
尽管已经参考优选实施例具体描述和显示了本发明,本领域普通技术人员应该理解在不背离由所附权利要求定义的本发明的精神和范围下,可以从中产生形式和细节上的各种变化。