一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法

文档序号:6759517阅读:197来源:国知局
专利名称:一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法
技术领域
本发明属于光盘存储技术领域,具体涉及光盘数据格式的设计,可以在高密度光存储设备中应用。
背景技术
目前光存储中的调制编码都是采用游程长度受限码(Run-length limited code),通常表示为RLL(d,k)。RLL(d,k)编码器产生的序列具有如下特点在两个连续‘1’之间‘0’的个数至少有d个,最多有k个。参数d控制了最高传输频率,参数k则确保了读出时钟同步信号的稳定。
RLL(d,k,m,n)把m位周期为T0的数据序列转换成n位周期为T纪录序列。
数据传输频率f0=1/T0,纪录序列的时钟频率f=(n/m)f0最小翻转间隔Tmin=(m/n)(d+1)T0最大翻转间隔Tmax=(m/n)(k+1)T0针对每种RLL(d,k,m,n)都可以设计出相应的编码器和解码器,由于性能,效率和实现难易程度上的限制,很多的RLL(d,k,m,n)调制编码都没有实用价值。
目前投入商业使用的几种光盘调制编码为CD采用EFM(Eight to Fourteen Modulation)码,RLL(2,10),把8位长的数据变成14位长的纪录序列,然后两个14位纪录序列之间加上3位的连接位,来控制直流分量。
DVD采用的是EFM+(Eight to Fourteen Modulation plus)码,RLL(2,10),采用与CD的EFM码相同的游程长度限制,不过把3位的连接位减少至2位,同时把这2位加入到编码码字,即为8位数据直接变成16位纪录序列。
蓝光光盘(Blu-ray Disc)可写光盘采用17PP码,RLL(1,7)。对CD-ROM和DVD-ROM系统而言,由于受母盘制作和模压精度的影响,调制码方案选择和优化需要考虑的主要因素是系统光学分辨率的限制(λ/2NA)和最小信息符长度。而对采用相变材料作为记录层的高密度可写存储,还存在另外一个影响因素在旧的信息斑点上直接重写时,原来的结晶区域与非结晶区域之间不同的光学吸收率和热力特性的不同,将对新的信息斑点造成畸变。这实际是增大了系统的抖晃(Jitter)值。对于CD和DVD的可写格式来说,由于系统裕度较大,还可以忽略;对高密度的Blue-ray系统的设计可写格式,就必须考虑这种影响了。因此提出了17PP码。只读光盘采用EFMCC(EFCombi-Codes),组合码是指每一个源码字对应着两套码字C1和C2,编码时根据DC控制的需要按照一定的规则在连续若干个C1后选择一个C2;由控制码字流的极性变化而控制DSV的变化,从而达到直流平衡和降低低频分量的目的。
HD-DVD采用ETM码,RLL(1,10),把8位数据转换为12位记录序列。
上述几种调制编码的主要性能参数如表1所示。

发明内容
本发明的目的是改进EFM,EFM-PLUS等码的容量上的不足,提供一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法,该调制编码具有高的编码效率,以使光盘具有较大的有效存储容量。
本发明的技术方案是一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法,其特征在于从符合游程长度(2,12)的限制的15位长的400个码字中,选取最低有效位为0的码字,共273种,去除级联处理较复杂的8种,得到265种级联处理较容易的码字构成码表,当产生级联冲突时,对前面码字的最低有效位做变换(0变为1),同时根据冲突的不同种类变换附近的比特位;解码时首先根据冲突标志位确定是否修改最高有效位部分,然后通过判断最低有效位是否为1可以确定是否有冲突产生——d冲突或者k冲突,区分这两种冲突需要前视下一个码字,然后根据冲突的具体情况对当前码字的低有效位部分作变换,并设置冲突标志位;对变换后的码字在码表中查询,得到其在码表中地址,取地址的低8个有效位作为解码的数据。
本发明的原理是符合RLL(2,12)限制的15位长的码字总共有400种,这些码字本身是符合游程长度限制的,但是两个码字连接的时候可能会有冲突(d的冲突和k的冲突)。d,k冲突的解决编码时直接改变连接时出现冲突的码字,修改码字的特定的比特位,解码时检测这个特定比特位,还原成原始的码字,然后查询码表解码。
解决冲突采用了这样的方法在400种候选码字中选取最低有效位为0的码字,共273种,去除级联处理较复杂的8种,得到265种级联处理较容易的码字构成码表,当产生级联冲突时,对前面码字的最低有效位做变换(0变为1),同时根据冲突的不同种类变换附近的比特位。
解码时首先根据冲突标志位确定是否修改最高有效位部分,然后通过判断最低有效位是否为1可以确定是否有冲突产生(d冲突或者k冲突),区分这两种冲突需要前视下一个码字,然后根据冲突的具体情况对当前码字的低有效位部分作变换,并设置冲突标志位。对变换后的码字在码表中查询,得到其在码表中地址,取地址的低8个有效位作为解码的数据。
对于RLL(2,12)的序列,其理论最大码率为0.5472,则对于8/15的调制码率为0.5333,小于0.5472,是可以实现的,而且其编码效率DR为8/15*(2+1)=1.6,要比CD,DVD,HD-DVD等的编码效率要高。与DVD相比,容量要提高6.67%。其自同步能力p=(12+1)/(2+1)=4.33,在可接受范围内。
本发明的有益效果是本发明的码字符合游程长度(2,12)的限制,编码过程中采用前视一个码字,采用较高的码率8/15,有效提高容量;8/15调制码使用单一码表,码字仅265种,有效的减小了码表的大小。具有比DVD高的编码效率1.6,提高存储容量,满足高清视频节目(分辨率1920×1080i)的要求。同时,自同步能力,直流分量的控制都在可接受的范围内。


图1,是现有技术的几种RLL调制编码的主要性能参数表——表1。
图2,是本发明实施例的码表——表2。
图3,是本发明实施例的编码器框图。
图4,是本发明实施例的解码器框图。
图5,是本发明实施例的编码流程图。
图6,是本发明实施例的解码流程图。
具体的实施方式按照本发明的方法,符合RLL(2,12)限制的15位长的码字总共有400种,这些码字本身是符合游程长度限制的,但是两个码字连接的时候可能会有冲突(d的冲突和k的冲突)。d,k冲突的解决编码时直接改变连接时出现冲突的码字,修改码字的特定的比特位,解码时检测这个特定比特位,还原成原始的码字,然后查询码表解码。
解决冲突采用了这样的方法在400种候选码字中选取最低有效位为0的码字,共273种,去除级联处理较复杂的8种,得到265种级联处理较容易的码字构成码表,当产生级联冲突时,对前面码字的最低有效位做变换(0变为1),同时根据冲突的不同种类变换附近的比特位。
解码时首先根据冲突标志位确定是否修改最高有效位部分,然后通过判断最低有效位是否为1可以确定是否有冲突产生(d冲突或者k冲突),区分这两种冲突需要前视下一个码字,然后根据冲突的具体情况对当前码字的低有效位部分作变换,并设置冲突标志位。对变换后的码字在码表中查询,得到其在码表中地址,取地址的低8个有效位作为解码的数据。
从273种中去掉的8个码字为0x4002010000000000000100x0004000000000000001000x0008000000000000010000x0010000000000000100000x0012000000000000100100x1000001000000000000000x0800000100000000000000x480010010000000000000去掉的原因是不能用本发明的变换规则(0变为1)进行简单的变换例如a)对于第一个码字0x4002,如果与下一个码字有d的冲突,比如下一个码字为0x4804,100100000000100,按照本发明的变换规则需要把0100000000000010-100100000000100变换为0100000000000001-000100000000100,这样就出现了13个连续的0,不符合k的限制。
b)0x0004,0x0008,0x0010和0x0012为另一种情况。若前一个码字的结束部分为1000,0100,或者0010时,与这些码字连接时会产生k的冲突,若按照本发明的变换规则进行变换(即先把前一个码字最低位变为1,然后变换前一个码字的低第四位或者后一个码字的高第三位),这样就会出现错误。比如0x2048与0x0010,连接时为010000001001000-000000000010000,出现了13个0,需要按照规则进行变换,即变为010000001001001-000000000010000或者010000001001001-001000000010000,但是解码时按规则会把还原为010000001000000和000000000010000,即0x2040和0x0010,显然不正确c)0x1000,0x0800和0x4800为第三种情况。若下一个码字的开始部分为0010或者0100,这三个码字与它们连接时可能产生k的冲突,若按照本发明的规则变换,就可能产生错误。比如0x4800与0x1082,连接时为100100000000000-001000010000010,有k的冲突,需要按规则变换为100100000001001-001000010000010或者100100000000001-001000010000010,这两种情况解码时会还原为100100000000000和000000010000010,即0x4800与0x0082,显然不正确。
1.码表设计如表2所示,码表中每一项均为15比特长的串,总共为265个不同码字,从第256个码字开始到最后的9个码字为码字000到008的候选码字,调制时可以选择其一。而且第xxx个码字(000≤xxx≤008)与第256+xxx个码字的开始游程长度一样,即从最高起,连续0的个数是一样的。
2.编码过程编码过程有以下步骤(如图5所示)(1)获取当前输入字节和下一个字节,查询码表得到码字CodeNow和CodeNext(2)根据两个标志位D_FLAG和K_FLAG,判断是否修改CodeNow的高有效位部分,D_FLAG为1时,表示前一个码字与这个码字有d的冲突,把当前码字的最高位部分由10****设置为00****,当K_FLAG为1时,表示前一个码字与这个码字有d的冲突,把当前码字的最高位部分由0000****设置为0010****(3)计算CodeNow的结束游程长度L_rll(即从最低位开始的连续0的个数)和CodeNext的开始游程长度F_rll(即从最高位开始的连续0的个数)(4)根据(3)中的计算结果判断是否需要修改CodeNow和CodeNext相连接若干比特,处理流程如图5中所示,其中的几个需要比较DSV的情况的规则如下规则1如果结束游程长度为4或者5,开始游程长度大于5,则两个码字连接时会出现****10000-00000***或者****100000-00000****的情况,这时如果结束游程长度与开始游程长度之和大于12,则必须改变连接处比特为****10001-00100****,来解决k的冲突。若和小于等于12,这时就没有d,K的冲突,但是仍然可以对连接处比特位进行修改,而不会对解码产生影响。选择修改或者不修改连接位,依据为计算当前DSV值在加上这两种情况的码字后哪一个的绝对值比较小。若修改了则置K_FLAG为1。
规则2如果结束游程长度大于等于6,开始游程长度等于3或者4,且结束游程长度与开始游程长度之和小于等于12,则两个码字连接时会出现****000000-0001***或者****000000-00001****的情况,这时没有d,k的冲突,同样也可以选择对连接处比特进行修改为****001001-0001****或者****001001-00001****,来减小DSV值。选择修改或者不修改连接位的依据为计算当前DSV值在加上这两种情况的码字后哪一个的绝对值比较小。
规则3如果结束游程长度大于等于6,开始游程长度大于等于5,且结束游程长度与开始游程长度之和小于等于12,则可以把****000000-00000****修改为****001001-00000****或者****001001-00100****。修改或者不修改连接位的依据为计算当前DSV值加上这三种情况的码字之后的值,选择绝对值小的那种,如果需要对CodeNext做修改,则要把K_FLAG设置为1。
规则4如果结束游程长度大于等于6,开始游程长度大于等于5,且结束游程长度与开始游程长度之和大于12,则可以在有k的冲突,首先必须把****000000-00000****转换为****001001-00X00****,对于CodeNext的X比特位,可以把它设置为1或者0。设置为哪一种根据当前DSV加上这两种不同码字后的值,选取比较小的那种。如果需要把X设置为1,则把K_FLAG设置为1。
(5)输出15比特长的CodeNow作为当前输入字节的调制结果,然后读取下一字节和之后的一个字节,重复前面的步骤。如果读取到最后一个字节时,直接对这个字节查询码表得到输出码字。
3.解码过程参见图6。解码过程中同编码过程类似,需要前视一个码字,同时也需要两个标志位D_FLAG和K_FLAG来标识解码过程中码字间出现冲突的情况,对编码中的修改进行还原。
具体步骤如下(1)获取当前的15比特长的原始码字CodeNow和下一个15比特长的原始码字CodeNext。
(2)检查D_FLAG和K_FLAG的值,如果D_FLAG为1,则需要把CodeNow的最高位设置为1,如果K_FLAG为1,则需要把CodeNow的最高3位比特位设置为000。
(3)检查最低位是否为1,若为1则说明编码时对码字进行了修改,需要进行还原处理。判断是哪种修改方式(d冲突的修改或者k冲突时的修改)需要检测CodeNow的低有效位的第4位和CodeNext的高效位的第3,即CodeNow***********X**1的X比特位和CodeNext**Y************的Y比特位。如果X与Y都为0,则说明是d冲突,需要把CodeNow最低两个比特01变为00,同时设置D_FLAG为1。如果Y=0,X=1,则只需变换CodeNow的最低4位,即1001变为0000,如果Y=1,则先变换CodeNow的最低4位,即X001变为0000(X为1或者0),然后设置K_FLAG为1。
(4)在码表中查询CodeNow,得到9比特的地址,取低8比特作为解码的字节。转到下一个码字,重复(1)-(4)的步骤。
权利要求
1.一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法,其特征在于从符合游程长度(2,12)的限制的15位长的400个码字中,选取最低有效位为0的码字,共273种,去除级联处理较复杂的8种,得到265种级联处理较容易的码字构成码表,当产生级联冲突时,对前面码字的最低有效位做变换(0变为1),同时根据冲突的不同种类变换附近的比特位;解码时首先根据冲突标志位确定是否修改最高有效位部分,然后通过判断最低有效位是否为1可以确定是否有冲突产生一d冲突或者k冲突,区分这两种冲突需要前视下一个码字,然后根据冲突的具体情况对当前码字的低有效位部分作变换,并设置冲突标志位;对变换后的码字在码表中查询,得到其在码表中地址,取地址的低8个有效位作为解码的数据。
全文摘要
一种高密度光盘的游程长度(2,12)的8/15调制编码和解码方法,从符合游程长度(2,12)的限制的15位长的400个码字中,选取最低有效位为0的码字,共273种,再从中选出265种合适码字构成码表,当产生级联冲突时,对前面码字的最低有效位做变换(0变为1),同时根据冲突的不同种类变换附近的比特位;解码时首先根据冲突标志位确定是否修改最高有效位部分,然后通过判断最低有效位是否为1可以确定是否有冲突产生——d冲突或者k冲突,区分这两种冲突需要前视下一个码字,然后根据冲突的具体情况对当前码字的低有效位部分作变换,并设置冲突标志位;对变换后的码字在码表中查询,得到其在码表中地址,取地址的低8个有效位作为解码的数据。本方案采用单一码表,码表结构紧凑,简单。比现有的EFM-PLUS调制码的代码密度高出6.67%。
文档编号G11B20/14GK1909096SQ20061001962
公开日2007年2月7日 申请日期2006年7月13日 优先权日2006年7月13日
发明者胡迪青, 谢长生, 马斌武 申请人:华中科技大学, 查黎
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1