采用有限游程长度调制的数据编码和解码方法 【技术领域】
本发明涉及一种能够用于记录高密度光盘数据的编码和解码方法,属于光盘存储领域。背景技术
光盘作为一种存储媒介已经得到日益广泛的应用,自从1982年推出CD以来,光盘已经从只读发展到可擦写,从CD发展到DVD,下一代蓝光DVD的标准也正在制定当中。光盘存储技术除了自身原有的若干优点,如容量大、寿命长、盘片更换性、复制速度快等以外,光盘机的品种及功能也已相当完善,因此除了作为各种计算机的外围设备,在国民经济各领域均有重要用途,而且光盘可同时用于记录声音、文字、图形以及动、静态图像,是多媒体技术不可缺少的工具,也在家用电器和国民教育中占有重要位置。
目前,光盘中的绝大多数关键技术掌握在国外厂商和研究机构手中,拥有自主产权的核心技术对我国光盘产业化具有重大意义。在光盘存储系统中,调制技术扮演着重要的角色,它对于克服符号间干扰,提高光盘存储容量具有重要作用。在光盘存储中数据是以信息坑的方式存在盘片上的,信息坑通过激光器烧刻而成。利用信息坑和岸对读出光斑反射率的不同,读出时可恢复出‘0’和‘1’表示的数字信号。经过纠错编码的信源数据记录在盘片上之前往往要经过调制过程改变码字的结构,从而使调制后码字的特性适合系统地要求。
光盘系统中聚焦光斑的大小由激光器波长和聚焦物镜的数字孔径NA决定,在光斑大小一定的情况下可知,最短信息坑/岸的宽度越窄则信道的质量越差,当光斑直径大于最短信息坑/岸的宽度时系统表现为低通特性,读出信号会产生失真,造成码间串扰,因此设计光盘系统时要求最短信息坑/岸的宽度取和光斑直径成比例的某个定值。显然,相同长度的信息坑/岸代表的调制前的数据越多,则光盘的存储密度越高。读出系统电路要求读出数据能够提供稳定的时钟信息,即不允许出现长时间的连续‘0’或‘1’,未调制的数据不满足此要求,需要进行调制使其满足提取时钟的要求。另外,光盘读出信号的低频成分会对伺服系统造成影响,降低伺服的精度,因此要求调制后的信号具有低的低频成分。
为了达到上述对调制的要求,在光盘系统中采用有限游程长度调制技术,也称为RLL(d,k)调制。RLL(d,k)调制的基本参数为:d和k,其中Tmin=d+1为最小游程长度,Tmax=k+1为最大游程长度。RLL(d,k)码就是指调制后的码流中两个连续‘1’之间至少有d个‘0’,最多有k个‘0’。RLL(d,k)调制后对码流进行NRZI变换,得到最后的记录数据。NRZI变换是指当码流中出现‘1’时进行电平转换,当出现‘0’时不进行转换。
对于不同的参数d和k,RLL调制有不同的结构,即使对于相同的d和k,RLL(d,k)调制也有不同的实现方法。在CD光盘系统中,调制方式为EFM调制,它是RLL(2,10)调制的一种;在DVD光盘系统中,调制方式为EFMPlus调制,它也是RLL(2,10)调制的一种实现。对于不同调制方法,使用调制效率R和密度率DR来评价。调制效率R是指调制前码字位数与调制后码字位数的比,R越大调制效率越高。密度率DR=(d+1)×R,它是评价调制方式的综合指标,调制效率R的因素已被包括在密度率DR中,DR表示了调制方式提高存储容量的能力,DR越大,同样尺寸的光盘的存储容量越大。未调制时d=0,R=1,DR=1。发明内容
为了有效的提高光盘的存储容量,解决现有在光盘系统中采用的有限游程长度调制技术的不足,本发明提供了一种采用有限游程长度调制的数据编码方法,其特征在于该方法是利用编码器对数据进行RLL(d,k)调制编码,其中参数d=4,k=18;所述的RLL(4,18)调制编码采用块编码方式,原始的串行二进制序列数据经过串并转换后,每4位数据为一组码字进入编码器,作为输入数据,编码后产生12位为一组的码字,作为输出数据;
该方法包括如下步骤:
1)向编码器中输入4位码字和其下一4位码字;
2)根据RLL(4,18)调制的基本编码表对当前4位输入码字和下一码字进行码型变换,得到两个12位的码字P和S;
3)判断码字P和S是否出现违背d=4限制的情况,若是,则按照针对d=4限制的补充编码表分别对码字P和S进行变换,然后进入步骤4);若否,则直接进入步骤5);
4)在当前时钟输出码字P,进行等待,在下一时钟输出码字S,然后回到步骤1)循环上述步骤,直到编码完毕;
5)在当前时钟输出码字P,然后把S赋给新的当前输入码字的对应码字P,并获取新的4位码字输入作为下一输入码字,并根据RLL(4,18)调制的基本编码表进行码型变换得到新的S,然后回到步骤3)循环上述步骤,直到编码完毕。
上述步骤2)和步骤5)中所述的基本编码表由16种4位输入码字及其对应的16个12位码字构成;所述的16个12位码字从至少倒数后4位为‘0’的所有码字和倒数后3位为‘0’且倒数第4位为‘1’的部分码字组成的码字集合B中选取,全零码字除外;所述的选取出来的16个码字和16种4位输入码字之间的对应关系是任意的。
上述步骤3)中所述的针对d=4限制的补充编码表中对当前码字P和下一码字S的变换方式为:选取两个没有被所述基本编码表中用到的12位码字作为特殊码字,将当前码字P和下一码字S变换成能够唯一译码的特殊码字。
上述步骤2)和3)中,不管是采用基本编码表还是采用针对d=4限制的补充编码表,编码后的数据都会自动满足k=18限制的要求。
采用有限游程长度调制编码的数据的解码方法,其特征在于该方法是利用解码器对数据进行RLL(d,k)调制解码,将12位码字转换成4位码字,得到最终用户数据,其中参数d=4,k=18;
该方法包括如下步骤:
1)向解码器中输入12位码字P和其下一12位码字S;
2)判断当前码字P是否是为了消除违背d=4限制而产生的特殊码字,若是,根据下一码字S,按照编码时采用的针对d=4限制的补充编码表对码字P和S进行变换,然后进入步骤3);若否,则直接进入步骤4)。
3)由当前码字P查找编码时采用的RLL(4,18)调制的基本编码表中对应的4位码字,作为当前时钟的输出,进行等待,由当前码字S查找所述基本编码表中对应的4位码字,作为下一时钟的输出。然后回到步骤1)循环上述步骤,直到解码完毕。
4)由当前码字P查找编码时采用的RLL(4,18)调制的基本编码表中对应的4位码字,作为当前时钟的输出,把S赋给新的当前码字P,并获取新的下一码字S,然后回到步骤2)循环上述步骤,直到解码完毕。
本发明提出的RLL(4,18)调制的调制效率R=1/3,密度率DR=(d+1)×R=1.67。现有技术中,CD采用的EFM调制的密度率DR=1.41,DVD采用的EFMPlus调制的密度率DR=1.5。可见,若光盘系统的其他条件不变,单纯改变调制方式,则从EFM到EFMPlus,光盘存储容量可增加6%,这是调制技术在从CD到DVD演变过程中所增加的贡献。而若调制技术采用本发明提出的RLL(4,18)调制,相比DVD的EFMPlus调制可以再提高11%的光盘容量。另外,相比EFMPlus具有8输入、16输出,RLL(4,18)调制只需要4输入、12输出,所需要的硬件资源大大减少,编码和译码的复杂度有很大降低。由此可见,本发明公开的RLL(4,18)调制技术对于光盘产业的发展具有重要作用,可以进一步提高光盘的存储容量。附图说明
图1是按照本发明的优选实施例的编码方法流程图。
图2是按照本发明的优选实施例的解码方法流程图。
图3是实现本发明所述编码方法的一种编码器硬件结构框图。
图4是实现本发明所述解码方法的一种解码器硬件结构框图。具体实施方式
RLL(4,18)编码采用块编码方式。原始数据为串行二进制序列,经过串并转换后,每4位数据为一组进入编码器,作为输入数据,编码后产生12位为一组的码字,作为输出数据,然后再经过并串转换得到可用于刻录在光盘上的串行数据流。对于4位并行输入数据,共有16种可能,以Ij,0≤j≤15,表示,输入数据Ij的出现是随机的。每一种输入对应一个12位输出,以Cj,0≤j≤15,表示。12位输出对应212=4096种可能码字,因此,要从中选取部分码字以符合RLL(4,18)编码的要求。RLL(4,18)要求在多个码字形成的连续码流中,相邻两个‘1’之间‘0’的个数至少为4个,最多为18个。为了满足上述要求,下文分析了选取码字的原则和方法。
由d=4的限制可知,一个码字当中‘1’出现的次数最多为2次,否则码字本身或两个同样码字连续出现时就会违背规则。另外,在同一码字当中,两个‘1’之间至少需要有4个‘0’。由k=18的限制可知,全零码字不符合规则。满足以上要求的码字构成一个集合A,满足要求的码字必须处于A中。然而,对于基本编码规则:4位输入直接对应16种输出码字,在A中找不到16个码字可以直接满足RLL(4,18)的要求。因此,在A中寻找一子集B,同时设立编码补充规则,二者配合以满足RLL(4,18)的要求。子集B中的码字除了满足A的要求外,还需满足:至少码字的后3位全为0。因此,可把B分为两个正交子集D1和D2,两个子集之和为B,其中D1由至少倒数后四位全为零的码字组成,D2由倒数第4位为1,后三位全为零的码字组成。可知,D1中只包括14个码字。去除D2中的码字‘000000001000’和‘100000001000’,构成新的子集D3。由D1和D3中任意两个码字可组成基本编码表的输出码字,即Cj,0≤j≤15,其中Cj与16个码字的对应顺序任意。在以下说明中,把当前码字称为P,把下一码字称为S。
可以发现,当Cj中两个码字相连时会存在违背d=4的情况,其规律为:若当前码字P来自D3,而下一码字S是最高位为‘1’的码字,则会出现‘10001’的情况,此时则必须使用针对d=4限制的编码补充规则:当出现‘10001’时,当前码字P变为一个特殊码字,并对下一码字S进行变换,使其满足RLL(4,18)的要求,并且要具有唯一可译码性。特殊码字不能选择已被Cj包含的码字。显然,只使用基本编码表码字不会违背k=18限制的要求,选择特殊码字时也要保证P和S不违背k=18限制的要求。通过上述方法,可以选择RLL(4,18)调制所需要的码字,并确定了编码方法。
需要特别强调的是,与16种输入码字相对应的码字组Cj不是唯一的,其中部分码字如上述方法所示可以用其他码字代替,如选择D3中的其他码字。另外,Cj中码字与16种输入数据之间的对应关系是任意的。由于每个码字由最低位到最高位首尾互相置换可以得到新的码字,可知上述方法中子集B、D1、D2、D3、Cj均具有一个对应的子集,其中每个元素与原子集中的元素具有镜像关系。对应子集具有与原子集相同的性质,对RLL(4,18)的违背和满足情况完全相同,因此,采用对应子集形成的新的Cj,也应属于保护的范围。
码字选择和编码方法的确定也就确定了编码和译码的步骤。在优选实施例当中会对此进行详细描述,同时通过实施例的辅助说明可以对码字选择和编码方法有更清楚的了解。
本发明的优选实施例选定了一组码字作为Cj,并选定了特殊码字,同时给出了基本编码表和补充编码表。针对此实施例详细描述了编码过程和译码过程,此过程采用的方法具有通用性,可适用于RLL(4,18)调制,而不仅限于此实施例。最后,给出了针对此实施例所实现的编码器和译码器硬件结构以及采用的具体器件。
为了清楚的表示选择的码字,采用表1来辅助说明。表1为RLL(4,18)调制的基本编码表,编码前信息数据每4位形成一个码字,分别以I0、I1...I15表示,编码后的数据每12位形成一个码字,分别以C0、C1...C15表示。
表1 RLL(4,18)调制的基本编码表 调制前信息数据 调制后码字 0000 I0 001000001000 C0 0001 I1 000001000000 C1 0010 I2 000100000000 C2 0011 I3 000100001000 C3 0100 I4 001000000000 C4 0101 I5 100001000000 C5 0110 I6 100000100000 C6 0111 I7 010000000000 C7 1000 I8 100000000000 C8 1001 I9 100000010000 C9 1010 I10 010000100000 C10 1011 I11 000000010000 C11 1100 I12 001000010000 C12 1101 I13 000010000000 C13 1110 I14 000000100000 C14 1111 I15 010000010000 C15
显然,单纯使用表1当两个码字连续时会出现违背d=4规则的情况,因此需要采用补充规则处理,使得最终输出的码字满足RLL(4,18)的要求。在此把当前码字称为P,把下一码字称为S。存在违背RLL(4,18)中d=4规则的情况,会出现‘10001’的图案,具体来说若当前码字为C0或C3,而下一码字为C5、C6、C8或C9中的任何一个,就会产生上述图案。为此需要采用针对d=4限制的补充编码规则,消除‘10001’,使其符合RLL(4,18)的要求。采用两个特殊码字‘010000000100’和‘010000001000’,此两个码字不是基本编码表中的码字,出现时就意味着采用的是针对d=4限制的补充规则。对于此实施例两个特殊码字分别对应于C0和C3。当P=C0/C3,S=C5/C6/C8/C9时,应用此补充规则,把P分别变为对应的特殊码字,并且对S进行变换,变换后消除了‘10001’的情况,同时由于S根据C5、C6、C8和C9的不同变换后分别形成不同码字,因此具有唯一性,可保证译码时的正确。表2给出了此补充规则的具体变换形式,左列为变换前的码字,右列为变换后的码字P和S,可见,P变为特殊码字,S变换后满足了d=4的要求,且对于相同的P,S具有唯一性。
表2针对d=4限制的补充编码表 变换前 变换后 P S P S C0 C5 010000000100 000000010000 C0 C6 010000000100 000000100000 C0 C8 010000000100 000001000000 C0 C9 010000000100 001000010000 C3 C5 010000001000 000000010000 C3 C6 010000001000 000000100000 C3 C8 010000001000 000001000000 C3 C9 010000001000 001000010000
根据基本编码表和补充编码表,按照上述的方法进行变换,可得到最终的符合RLL(4,18)要求的输出码字。而译码是编码的逆过程,它依据的是相同的编码规则,根据此规则,可得到唯一确定的原始数据。
参照图1描述本发明优选实施例的编码方法。RLL(4,18)编码系统读取输入位流中4位输入数据并存在寄存器R0中,随后读取下一个4位输入数据并存在寄存器R1中(步骤10)。然后根据基本编码表对存在R0和R1中的当前输入码字以及下一输入码字进行码型变换,分别得到12位的码字P和S,并存在寄存器R2和R3中(步骤11)。然后,编码器判断P和S是否违背d=4编码规则的要求(步骤12)。如果是,则根据针对d=4限制的补充编码表对P和S分别进行变换,使其满足d=4的要求(步骤13)。然后,在当前时钟输出码字P,并等待到下一时钟输出码字S,最后回到步骤10进行循环,直到编码结束(步骤14)。如果否,则在当前时钟输出码字P,然后把S赋给P,存在寄存器R0中,并获取新的4位输入码字并按照基本编码表进行转换得到新的码字S,并存在寄存器R1中,最后回到步骤12进行循环,直到编码结束(步骤15)。
参照图2描述本发明优选实施例的解码方法。首先,RLL(4,18)解码系统读取输入位流中12位输入数据P存入寄存器R4中,随后读取下一个12位输入数据S存入寄存器R5中(步骤20)。然后,判断P是否是针对d=4限制的补充编码表中所示的特殊码字(步骤21)。如果是,则根据针对d=4限制的补充编码表对P和S分别进行变换(步骤22)。然后,在基本编码表中查找P对应的4位码字,作为当前时钟的输出,查找S对应的4位码字,在下一时钟输出,最后回到步骤20循环译码,直到译码结束(步骤23)。如果否,则在基本编码表中查找P对应的4位码字,作为当前时钟的输出,然后把S赋给P,存在寄存器R4中,然后获取新的12位输入数据S,存在寄存器R5中,最后回到步骤21循环译码,直到译码结束(步骤24)。
根据上述RLL(4,18)调制编码和解码的描述,研制了一种实现RLL(4,18)调制的编码器和解码器,但是本发明所述方法并限于用此种硬件电路实现。在图3和图4中分别给出了实现本发明实施例的硬件电路中编码器和解码器的结构框图。编码器和解码器分别由输入缓存电路、ROM查找表、逻辑判断电路、控制电路和输出缓存电路五大模块组成。硬件电路和逻辑功能的实现采用的是Altera公司的可编程逻辑器件EPF1K50,通过利用此芯片进行逻辑设计,编写实现逻辑功能的程序,可在一片芯片上同时实现编码器和解码器。实现逻辑功能的程序是采用Altera公司提出的硬件描述语言AHDL编写的。
光盘驱动器由光学系统、精密机械系统、电控系统和数据处理系统组成,它的正常运转是上述四个系统协调工作的结果。光学系统是实现光盘读写的基础,精密机械系统是驱动器正常运作的保证,电控系统是保证读写以及数据可靠性的关键,而数据处理和信息传输系统则是进一步降低误码率和提高系统工作效率不可缺少的组成部分。通过数据处理系统,用户数据经历了写入和读出两个过程。在写入过程中,用户数据经过纠错编码后,利用编码器进行RLL(4,18)调制编码,然后刻录到光盘上。在读出过程中,光电探测器检测读出的刻录在光盘上的数据,经过放大、均衡和判决后,利用解码器进行RLL(4,18)调制解码,最后进行纠错解码,得到最终用户数据。
特别声明,本文所述实施例只是本发明的一个具体实现,本发明权利要求如权利要求书所述,并在说明书中加以详细描述,并不仅局限于上述实施例。