背景技术
调制码在数据存储系统中用来消除记录数据中所不希望的位序列、例如在重现过程中引起误差的位序列。所不希望的位序列的一个例子是相同值的一长串位。另一例子是相同值在位流中交替位置的一长串位,即位流的奇数(O)或者偶数(E)交织...EOEOEO...。例如,一般不会希望形式为0a0b0c0d0...的长序列,其中a、b、c等可以是0或者1。调制码对所不希望的位序列在编码的位流中的出现施加某一形式的约束。例如,一些调制码施加所谓的j约束,由此一串连续1在编码的位流中的最大长度限于预定值j。其它调制码对连续0的最大串长度施加约束。这称为k约束或者G约束,由此连续0的最大串长度分别限制于值k或者G。后一码类型的一个例子由在基于PRML(部分响应最大似然度)的记录系统如带驱动和光学存储系统中使用的PRML(G,I)码提供。除了“全局”或者G约束之外,这些码施加“交织”或者I约束。这将0在各偶数和奇数交织中的最大串长度限制于值I。就G=2I而言,受I约束的位流当然必然受G约束。
调制编码系统理想地利用接近所选约束的容量来操作的高速率编码器和编码器。然而为了有用武之地,这些系统需要具有基于高效编码和解码算法的实际实施。
在美国专利第5,760,718号中公开了一种用于在编码的位流中施加k约束的实际编码器。这实施一种基于广义菲波纳契(Fibonacci)码类的枚举编码技术。在IEEE Trans.Inform.Theory1973年1月第19卷第73-77页、T.M.Cover的“Enumerative Source Encoding”中讨论了枚举编码。在IEEE Trans.Inform.Theory1965年4月第11卷第284-292页、W.H.Kautz的“Fibonacci Codes for SynchronisationControl”中讨论了菲波纳契码。在参考前述论文的具体讨论之时,给出对这些技术的简短说明以帮助理解将要描述的本发明在这里是有用的。
简而言之,枚举编码是一种基于码字的词典排序将输入字映射成输出码字的过程。也就是说,如果根据二进制值对X个二进制码字的集排序,则可以根据各码字在排序集中的位置向它分配从1到X的编号。如果这些分配的编号1到X各自然后限定二进制输入字的值,则这X个二进制输入字中的每一个与对应码字关联。枚举编码是根据这一类方案将输入字映射成输出码字的过程。尽管根本的编码原理足够简单,但是在实践中的问题在于设计用于根据二进制输入字来生成码字的高效编码器。如果例如有2100个码字,则显然需要一种高效编码器设计。
菲波纳契码的特征在于也称为基数的权重的集合,这些权重限定了在二进制码字表示中的相应位置处二进制1的值。也就是说,在二进制码字中的给定位置处的1代表用于该位置的菲波纳契权重的值而不是通常为二的幂。作为一个简单例子,考虑通过由{Wu:n=1,2,...,7}={1,2,3,5,8,13,21}给定的N=7个权重的集合来限定的菲波纳契码。可见基数满足以下线性递归:
wn+1=wn+wn-1 对于n=2,3,...,6
(N=7)位菲波纳契码字的完整集合可以代表wN+1=13+21=34个可能值。由于34≥25,所以这一简单的菲波纳契码可以通过枚举编码过程将5位输入编码成长度为N=7的码字。这一编码过程限定如下:
u=∑xiwN-i+1 对于i-1到7
其中u是输入字值而(x1,x2,...,x7)是输出码字。如附图的图1中所示通过从输入字值相继减去菲波纳契权重来执行编码过程。具体而言,数字u无论被相继地减少以递减值的顺序获得的无论哪个权重wn都不会给出负的结果。如果从接连的差值中实际地减去所给定的权重WN-i+1,则xi=1。否则xi=0。
考虑图1表明了这一简单的菲波纳契码施加j=1约束,即在码字中不能出现多于一个连续1。具有j约束的纯菲波纳契码由满足以下线性递归的权重wn(n=1,2,...,N)限定:
wn+1=wn+wn-1+...+wn-j 对于n=j+1,j+2,...,N-1(1)
而j+1个初始权重给定如下:
wn=2n-1 n=1,2,...,j+1
其中指定的正整数j限定码的j约束。利用广义菲波纳契码,方程(1)中的等式为以下不等式所取代:
wn+1≤wn+wn-1+...+wn-j 对于n=j+1,j+2,...,N-1,(2)
这样的广义菲波纳契码中码字的最大数目给定如下:
WN+1=WN+WN-1+...+wN-j,
与图1的简单码一样,通过用权重{wn}代表输入u(0≤u<wN+1)来获得广义菲波纳契码中的二进制码字(x1,x2,...,xN),即:
u=∑xiwN-i+1.
为了实施,如在上文引用的美国5,760,718中所述,选择权重以具有有限跨度L,即:
wn=Bn2n-1 (3)
其中B
n的范围为2
-L≤B
n≤1中并且B
n具有L位的表示。利用跨度为L的权重,可以使用从
的最高有效位延伸到最低有效位的(L+1)位宽的窗口在滑动窗口方式下执行编码。
美国专利第7,126,502号、第7,064,687号和第7,071,851号公开了为基于与上述美国5,760,718的枚举编码思想相似枚举编码思想的PRML(G,I)码而设计的编码器和解码器。这些源自于广义菲波纳契码。具体而言,输入的位流划分成它的奇数和偶数交织,而两个交织位流然后由分离的菲波纳契编码器编码。由于菲波纳契码对1串施加j约束,所以编码器输出的位取反获得各自对0串具有约束的两个编码位流。多路器然后交织所编码的位流以给出G=2I的单个受(G,I)约束的位流,其中I等于用于原菲波纳契码的j值。在美国7,126,502中,整个编码器的输入划分级由去多路器实施。这将长度位2(N-1)的输入数据字简单地交织成长度位N-1的奇数和偶数交织序列。一般而言,如果编码器的输入序列具有的位数为偶数如2(N-Q),则可以将输入容易地划分成长度各为N-Q的两个序列。然后可以获得块长度(即输出码字长度)为2N而速率为(N-Q)/N的编码器。为了针对同一块长度实现更高速率、如对于长度2N而言速率为(2N-1)/2N,希望将输入位划分成以下两个位流,这些位流满足某些约束以成为用于后续枚举编码器的有效输入序列。在US7,064,687的调制编码器中,输入划分级利用短块编码器来施加这样的(非调制)约束。通过短块编码器的操作,输入划分级将输入拆分成满足范围约束的技术和偶数位序列。也就是说,这些N位序列的可能值的范围受限制,从而并非所有可能N位序列都可以出现。以这一方式限制了对两个菲波纳契编码器的可能输入,从而在这些编码器中允许N位到N位的编码。对偶数和奇数位序列的必要二进制约束是针对这些约束在偶数和奇数交织中相同的情况来指定的,并且利用速率3/4、9/10和13/14给出短块编码器的实施。这些短块编码器用于输入划分级的构造是基于选通(gated)划分技术的。这一技术没有针对输入划分问题提供系统性的方式并且具体而言变得越来越难以适用于较长和速率较高的短块编码器。
发明内容
鉴于上文,将希望提供用以在调制编码系统中划分输入数据的改进技术。
本发明第一方面提供一种用于将二进制输入数据流划分成两个二进制输出流以供应到相应调制编码器的方法。该方法包括:
对于输入位流中一连串输入字的各输入字,将4进制枚举编码算法应用于输入字以产生一连串4进制输出符号,该4进制算法操作用以在输入字的奇数和偶数交织中同时编码相应的j=∞菲波纳契码,使得一连串输出符号的相应对应位所形成的两个位序列是范围受限码字;以及
通过分离根据各相继输入字产生的两个范围受限码字来产生两个二进制输出流。
本发明的输入划分技术因此涉及到将4进制枚举编码算法应用于输入位流中的一连串字。4进制算法对各二进制输入字操作以将奇数和偶数交织同时菲波纳契编码为具有4进制输出符号的单个枚举码。这单个码在这里将称为“交织(的)菲波纳契码”。在申请人的案号CH9-2007-0022之下同时提交的共同未决欧洲专利申请中公开了利用4进制枚举编码算法以向输入数据施加调制约束的交织菲波纳契码。与该系统对照,本发明的输入划分系统的4进制算法在奇数和偶数交织中编码具有j=∞的菲波纳契码。由于j=∞,所以根本的菲波纳契码在这里没有施加调制约束。然而,交织的j=∞菲波纳契码用以对奇数和偶数交织施加范围约束。根据上文讨论的枚举编码原理,交织的j=∞菲波纳契码的4进制算法根据值将输入位流中的字映射到具有4进制符号的输出码字有序集。4进制符号各用两个并行位表示,而对于各输入字,由所得一连串输出符号的相应对应位形成的两个位序列是范围受限码字。因此,如果根据各输入字产生一连串N’个输出符号并且认为各4进制符号包括奇数位和偶数位,则N个奇数位的序列和N’个偶数位的序列均为范围受限码字。也就是说,针对各码字限制所允许的N’位值的范围,使得并非所有的可能N’位值在各情况下都可以出现。然后通过分离从各相继输入字获得的两个范围受限码字来产生两个二进制输出流。
前述技术赋予一种系统性的输入划分系统,由此可以在用于向后续调制编码器供应的划分位流中施加范围限制。该输入划分技术极为灵活是因为在划分的位流中施加的范围约束可以容易地适应于对去往后续调制编码器的输入序列的特定要求。如果需要,范围约束甚至可以在两个划分的位流中不同。这一灵活性允许对后续调制编码器的最佳利用,从而使得能够针对给定的调制编码器对实现最高速率。总而言之,本发明的实施例提供了用于调制编码器的高效输入划分系统,从而允许设计复杂度高效的调制编码系统以及比上文讨论的现有系统可获得的PRML(G,I)码更高效的PRML(G,I)码。
各输出流中的允许编码字值的范围通常(虽然并非必然)是连续值的范围并且如上所言可以针对各输出流而不同。因此,如果希望则可以在输入字的奇数和偶数交织中应用对输出流的范围具有不同限制的不同j=∞菲波纳契码。然而,在简单实施例中,4进制编码算法操作用以在奇数和偶数交织中编码相同的j=∞菲波纳契码。下文将说明应用施加范围限制的两个j=∞码的4进制编码算法的操作。然而简言之,如果4进制编码算法根据各输入字产生一连串N’个4进制输出符号,则所需范围限制确定两个j=∞菲波纳契码的第(N’+1)个权重的上界。如果第(N’+1)个权重具有最大跨度L’,则可以将4进制编码算法实施为窗口宽度为2L’+2的滑动窗口算法。
一般而言,4进制算法所应用到的输入字可以包括将要划分的二进制输入流中的所有或者仅部分用户数据字。如果二进制输入流包括一连串邻接M位用户数据字并且对4进制编码算法的各输入字是M位数据字,则可以产生各二进制输出流作为根据相应M位数据字产生的一连串邻接范围受限码字。取而代之,对4进制算法的各输入字可以包括相应M位数据字的Q位部分,其中Q<M。在这一情况下,如果4进制算法根据各Q位输入字产生一连串L’个4进制输出符号,则可以通过将各M位数据字的未编码M-Q位划分成两组(M-Q)/2位并且将各组附加到用于各相继M位数据字的相应L’位范围受限码字来产生两个二进制输出流。各输出流然后在效果上包括借助由4进制算法施加的范围限制来限制范围的一连串邻接(L’+(M-Q)/2)位码字。这等效于将本发明的输入划分奇数的4进制算法应用于全部M位输入字以产生长度为N’=(L’+(M-Q)/2)的两个范围受限码字,其中根本的j=∞菲波纳契码的第(N’+1)个权重具有最大跨度L’。换言之,可以将这样的速率为M/2N’的4进制编码算法简化为以下算法,该算法应用具有仅L’个权重的菲波纳契码并且仅对输入M-位值的Q位部分操作。下文将进一步说明这一点。
本发明的第二方面提供一种用于对二进制输入数据流调制编码的方法。该方法包括:
通过根据第一方面所述的划分方法将输入位流划分成两个二进制输出流;
在相应调制编码器中对两个二进制输出流进行调制编码,以产生两个编码输出流;以及
对所编码的输出流进行交织,以产生受调制约束的输出。
各调制编码器优选地将最优选为广义菲波纳契码的枚举编码算法应用于相应二进制输出流。然后对所编码的输出流进行交织以产生具有菲波纳契编码的奇数和偶数交织的输出。前文说明的菲波纳契码的固有性质因此提供具有全局和交织串长约束的输出位流。尽管可以设想对1的最大串长要求约束这样的应用,但是位取反得到适合于上文讨论的PRML码的受(G,I)约束的输出。
本发明的第三方面提供一种用于对通过根据本发明第二方面所述的方法产生的受调制约束的位流调制解码的方法。该方法包括:
对受调制约束的位流的位进行去交织,以产生两个编码输出流;
在相应调制解码器中对两个编码输出流调制解码以恢复所述两个二进制输出流;
根据在与各所述输入字对应的相应二进制输出流中的范围受限码字产生一连串4进制输出符号;以及
将4进制枚举解码算法应用于4进制符号以对所述4进制编码算法向所述奇数和偶数交织应用的所述j=∞菲波纳契码同时解码、由此恢复所述一连串输入字。
本发明的第四方面提供一种用于将二进制输入数据流划分成用于供应到相应调制编码器的两个二进制输出流的装置。该装置包括:
4进制编码器,用于将4进制枚举编码算法应用于输入位流中一连串输入字的各输入字以根据各输入字产生一连串4进制输出符号,该4进制算法操作用以在输入字的奇数和偶数交织中同时编码相应的j=∞菲波纳契码,使得一连串输出符号的相应对应位所形成的两个位序列是范围受限码字;以及
二进制输出生成器,用于通过分离根据各相继输入字产生的两个范围受限码字来产生两个二进制输出流。
本发明的第五方面提供一种用于对二进制输入数据流调制编码的装置。该装置包括:
根据本发明第四方面所述的划分装置,用于将输入位流划分成两个二进制输出流;
相应调制编码器,用于对两个二进制输出流进行调制编码以产生两个编码输出流;以及
多路器,用于对所编码的输出流进行交织以产生受调制约束的输出。
本发明的第六方面提供一种用于对通过根据本发明第五方面所述的调制编码装置产生的受调制约束的位流调制解码的装置。该调制解码装置包括:
去多路器,用于对受调制约束的位流的位进行去交织以产生两个编码输出流;
相应调制解码器,用于对两个编码输出流调制解码以恢复所述两个二进制输出流;
4进制符号生成器,用于根据在与各所述输入字对应的相应二进制输出流中的范围受限码字产生一连串4进制输出符号;以及
4进制解码器,用于将4进制枚举解码算法应用于4进制符号以对所述4进制编码算法向所述奇数和偶数交织应用的所述j=∞菲波纳契码同时解码、由此恢复二进制输入数据中的所述一连串输入字。
本发明的第七方面提供一种数据存储系统,该数据存储系统包括:
根据本发明第五方面所述的调制编码装置,用于根据二进制输入数据流产生受调制约束的输出;
记录通道,包括用于在存储介质上记录和重现受调制约束的输出的记录/重现机制;以及
根据本发明第六方面所述的调制解码装置,用于对从存储介质重现的受调制约束的输出调制解码以由此恢复二进制输入数据中的所述一连串输入字。
一般而言,在这里参照本发明一个方面的实施例描述特征时,可以在本发明另一方面的实施例中提供对应特征。
具体实施方式
图2是示出了在本发明实施例的操作中涉及到的主要部件的数据存储系统简化示意图。在本例中,数据存储系统是大体地表示为1的带驱动并且因此具有记录通道2,该记录通道具有用于读取和写入到磁带4的读/写头3。在记录面上,调制编码装置5接收包括一连串M位数据字的输入位流。这一实施例的装置5实施一种下文详述的调制编码过程,该过程用以产生包括一连串2N位PRML(G,I)码字的受调制约束的输出。然后,受调制约束的位流通常在预编码级和纠错编码级(未示出)之后供应到记录信道2,在该信道处位流在通常信道信号处理之后记录于带4上。在重现时,在包括检测和纠错编码之后的通常再现重现信号处理之后,所得位流供应到调制解码装置6。装置6如下文具体所述执行对重现信号中的2N位码字的调制解码,由此恢复于原输入数据对应的一连串M位字。
调制编码装置5执行两级编码过程。在第一级中,输入位流经由4进制枚举编码过程划分成两个二进制输出流。在第二级中,在相应调制编码器中对两个二进制输出流独立地编码,并且组合所得编码输出流以产生最终受调制约束的输出。调制解码装置6类似地执行两级解码过程。在第一级中,相应调制解码器对分离的编码输出流解码。在第二级中,经由4进制枚举解码过程组合所得解码位流以恢复原输入数据流。下文参照图3至图10描述调制编码和解码装置的各级。尽管在原理上可以用软件或者硬件和软件的组合来实施这些部件,但是在实践中为了简化和操作速度而优选硬接线逻辑实施。适当的实施根据这里的描述对于本领域技术人员而言将是清楚的。
图3是用于在调制编码装置5的第一级中使用的输入划分装置的框图。在这一实施例中,输入划分装置10包括4进制枚举编码器11和二进制输出生成器12。4进制编码器11应用4进制枚举编码算法来实施交织的j=∞菲波纳契码。在描述4进制编码算法之前,将简短地说明j=∞菲波纳契码的概念。
如上述方程(1)中说明的那样,具有j约束的纯菲波纳契码由满足以下关系的权重集wn(n=1,2,...,N)限定:
wn+1=wn+wn-1+...+wn-j n=j+1,j+2,...,N-1
其中初始j+1个权重由wn=2n-1(n=1,2,...,j+1)给定。然而对于j=∞的限制情况而言具有:
w’n=2n-1 n=1,2,...,N’
而所得码无需满足约束(省略号在这里和在下文中简单地用来将j=∞码区别于在系统中别处使用的具有j约束的菲波纳契码)。用于这一j=∞码的码字的最大数目为w’N’+1=2N’。然而可以选择考虑数目较小的码字如w’N’+1,其中2N’-1<w’N’+1≤2N’。
通过权重{w’n}代表输入u(0≤u<w’N’+1)来获得j=∞菲波纳契码中的二进制码字[x’1,x’2,...,x’N’],即:
u=∑x’iw’N’-i+1=∑x’i2N’-i
这是u的二进制表示。因此,长度为N’的这一j=∞菲波纳契码包括代表范围为0≤u<w’N’+1的数字u的长度为N’的所有二进制序列。
图3的4进制编码器11将4进制枚举编码算法应用于各M位输入字以实施如前文限定的交织j=∞菲波纳契码。也就是说,编码器11操作以在各输入字的奇数和偶数交织中将相应j=∞菲波纳契码同时编码为具有4进制输出符号的单个枚举码。尽管两个根本的菲波纳契码在简单实施中相同,但是这两个码可以相同或者不同。在任一方式下,对于输入的位流中值为uIF=∑uk2k(k=0to M-1)的各M位字(uM-1,uM-2...,u0),编码器11生成一连串N’个4进制输出符号,因此,编码器11实施长度为N’的交织j=∞菲波纳契码。N’个4进制符号zi(i=1至N’)各自用奇数位x’o i和偶数位bit x’e i这两个位表示。由N’个输出符号的相应对应位形成的奇数和偶数位序列[x’o 1,x’o 2,...,x’o N’]和[x’e 1,x’e 2,...,x’e N’]在字典顺序上分别小于w’o N’+1和w’e N’+1(的二进制表示),其中w’o n’+1和w’e N’+1是用于奇数和偶数交织的根本j=∞菲波纳契码中码字的数目。因此,编码器11将范围为0≤uIF<w’o N’+1w’e N’1的1维输入字值uIF映射成4进制输出序列[z1,z2,...,zN’],其中zi=(x’o i,x’e i)为输出zi(i=1至N’)。这包括分别小于w’o N’+1和w’e N’+1并且没有调制约束的奇数和偶数N’位二进制序列(由于j=∞,所以交织的菲波纳契码对1的串长度没有施加限制并且因此对输出码字没有施加调制约束)。奇数和偶数N’位二进制序列均为如上所述范围有限的码字。根据在整个调制编码过程的第二级中利用的后续枚举调制码来选择奇数和偶数交织中的范围限制。具体而言满足以下要求:在各交织中,允许的码字值的范围约束于用于该交织的后续枚举调制编码器的输入范围中。这一要求指定了两个j=∞菲波纳契码的第(N’+1)个权重w’e N’+1和w’o N’+1的上界。除了具有某一最大有限跨度L’的第(N’+1)个权重之外,这两个码的所有权重w’n=2n-1具有跨度1(参见上述方程(3))(w’e N’+1和w’o N’+1的跨度可以不同,但是两个跨度的最大跨度为L’,其中L’<N’)。L’的值通常选择为小、例如约为10。具体而言,由于对第(N’+1)个权重的选择有某一自由度,所以可以通过将第(N’+1)个权重选择为具有较小跨度在复杂度与最大范围之间进行折衷,其代价是略微减少最大可能范围。继而可以将以跨度至多为L’的第(N’+1)个权重为基础的4进制编码算法实施为窗口宽度为2L’+2的滑动窗口算法。
如上文提到的,可以通过适当地选择第(N’+1)个权重w’o N’+1和w’e N’+1来施加任何所需范围限制,关键点在于该范围限制允许使输出限制于用于下文描述的后续调制编码过程的有效输入。通常,M=2N’-1而乘积w’o N′+1w’e N′+1超过22N′-1,即c=w’o N’+1w’e N’+1-22N’-1>0。在这一情况下,可以消除少数所不希望的码字而如果需要则对整个PRML(G,I)调制码施加附加的弱调制约束。作为一个简单例子,对于表示整数u的每个(2N’-1)位输入向量,可以添加偏移c=w’o N’+1w’e N’+1-22N’-1。然后,uIF=u+c的范围为c≤uIF<w’o N’+1w’e N’+1,由此消除全零输出。由于后续调制编码器通常将全零输入映射成全零序列,所以所得PRML(G,I)调制码不会包含全一序列(在位取反之后)并且因此将具有有限j约束。
回到图3,对于各M位输入字,编码器11将所得一连串N’个4进制输出符号zi=(x’o i,x’e i)供应到二进制输出生成器12。这将N’个输出符号中的两个范围受限码字[x’o 1,x’o 2,...,x’o N’]和[x’e 1,x’e 2,...,x’e N’]简单地分离成由奇数位x’o i和偶数位x’e i组成的两个二进制输出流。因此,装置10工作用以将相继M位数据字所形成的输入数据流划分成奇数和偶数二进制输出流,其中各输出流适当地由一连串邻接的范围受限码字[x’o 1,x’o 2,...,x’o N’]或者[x’e 1,x’e 2,...,x’e N’]组成。
如上所言,4进制算法可以在编码器11中实施为窗口宽度为2L’+2的滑动窗口算法。在编码器11中应用这一实施例的4进制算法作为针对各迭代步骤i产生一个4进制符号zi的迭代过程。具体而言,为了交织的j=∞菲波纳契码IF对上文限定的各自具有N’个基数{w’n}的两个根本j=∞菲波纳契码同时编码,该算法根据uIF将值为uIF=∑uk2k(k=0至M-1)的输入字(uM-1,uM-2...,uo)映射成4进制码字((x’o 1,x’e 1),(x’o 2,x’e 2),...,(x’o N’,x’e N’))。具体而言,给定一个范围如下的输入uIF:
0≤uIF<w’o N’+1w’e N’+1
该算法如下。
初始化:Uo=w’o N’+1,Ue=w’e N’+1,u=uIF.
对于i=1到N’,执行{
计算部分词典索引vo,ve和划分索引N00,N01,N10:
vo=min{2N’-i,Uo},ve=min{2N’-i,Ue}
N00=vove,N01=voUo,N10=N01+(Uo-vo)ve
计算时间i的输出(x’o i,x’e i)并且更新输入u:
如果u<N00, 则x’o i=0,x’e i=0
否则,如果N00≤u<N01 则x’o i=0,x’e i=1,u=u-N00
否则,如果N01≤u<N10, 则x’o i=1,x’e i=0,u=u-N01
否则x’o i=1,x’e i=1,u=u-N10
更新上界:
Uo=min{2N’-i,Uo-x’o i2N’-i},Ue=min{2N’-i,Ue-x’e i2N’-i}
}
考虑上文表明该算法实质上涉及到:将输入值u初始化为输入字值uIF,继而对于i=1到N’的各迭代,计算变量N00,N01,N10的值,并且通过将输入值u与N00,N01,N10做比较来生成输出符号(x’o i,x’e i)。变量N00,N01,N10在这里称为“划分索引”,因为它们用以将用于各迭代的可能输入值u的范围划分成四个子范围:
u<N00;
N00≤u<N01;
N01≤u<N10;;以及
u≥N10.
对于各迭代,可能输入值u的范围为0≤u<UoUe,其中Uo和Ue是在更新之前迭代i的奇数和偶数上界。由于初始输入值uIF在这里为M位的字值,所以用于第一迭代i=1的划分索引将可能M位值的范围一分为四。具体而言,输出符号(x’o i,x’e i)的生成涉及到以下步骤:
(a)计算划分索引N00,N01,N10;
(b)比较当前输入值u与划分索引一确定上文限定的四个子范围中的哪个子范围包含该输入值;
(c)根据哪个具体子范围包含输入值来设置(x’o i,x’e i)这两个位;以及然后
(d)通过从u的当前值中减去包含该u值的子范围的下界值来更新输入值(这里,如果u落在最小的子范围中,则由于下界值于是为零,所以更新的输入值将不变)。
根据第一对和第二对“部分词典索引”vo,ve和Uo,Ue来计算划分索引N00,N01,N10。索引vo,ve在下文中称为部分词典下索引,而上界Uo,Ue在下文中称为部分词典上索引。这两对值称为部分索引是因为一对值中的各值与输入字的奇数和偶数交织中的相应交织关联、因此在效果上与交织的j=∞菲波纳契码中根本的j=∞菲波纳契码中的一个码或者另一个码关联。如在上述算法中所示,各对vo,ve和Uo,Ue这些部分词典索引依赖于根据迭代编号i来选择的相应菲波纳契权重(也就是这里均等于2N’-i的w’o N’-i+1和w’e N’-i+1)。
在编码器11中,编码算法的最复杂部分包括用以计算划分索引N00,N01,N10的乘法。然而,多数的部分词典下索引vo,ve为2的幂,在该情况下可以通过移位操作来实施乘法并且实质性地减少复杂度。
在图4中图示了输入划分装置的替代优选实施例。这一实施例的输入划分装置15包括大体地表示为16的4进制编码装置和大体地表示为17的二进制输出生成器。4进制编码装置16包括去多路器18和4进制枚举编码器19。二进制输出生成器17包括如图中所示连接的二进制分离器20、去多路器21和两个多路器22、23。输入划分装置15简化了图3的装置10的实施。具体而言,给定跨度不大于L’的第(N’+1)个菲波纳契权重w’e N’i-1和w’o N’-i+1,出于以下原因而简化了来自输入uIF的输入位到奇数和偶数输出位流的映射:
(i)在L’个编码步骤中使输入M位字的最高Q位经过4进制编码器19从而生成被分离成奇数和偶数输出位流的两个范围受限码字[x’e 1,x’o 2,...,x’e L']和[x’o 1,x’o 2,...,x’o L’];以及
(ii)将最低(M-Q)个输入位直接去多路成奇数和偶数输出位流。
因此在这一实施例中,去多路器18仅将M位数据字的Q位部分供应到4进制编码器19,从而对4进制算法的各输入字包括仅Q位。编码器19根据各Q位输入字来生成一连串L’个4进制输出符号。二进制分离器20继而从L’个4进制符号中分离奇数和偶数范围受限码字。L’个奇数位x’o i输出到多路器,而L’个偶数位x’e i输出到多路器23。去多路器18将各M位数据字的未编码M-Q位供应到去交织奇数和偶数位的多路器21。(M-Q)/2个奇数位输出到多路器22并且附加到偶数L’位码字以产生N’位码字。类似地,(M-Q)/2个奇数位输出到多路器23并且附加到偶数L’位码字以产生另一N’位码字。各输出流继而在效果上包括范围借助由4进制编码器19施加的范围限制来限制的一连串邻接(L’+(M-Q)/2)位码字。在这一优选实施例中,Q=2L’-1使得输入的最高2L’-1位经过编码器19并且将最低2(N’-L’)个输入位直接去多路成偶数和奇数位流。
将看出在划分装置15中,整个编码器的复杂度密集部分限于前L’个步骤,即它可以简化成具有仅L’个权重w”n=2n-1(n=1,2,...,L’)以及上界w”e L’+1=w’e N’+1/2(N’-L’)和w”o L+1=w’o N’+1/2(N’-L’)的交织j=∞菲波纳契码的枚举编码算法。
编码算法因此简化如下。
给定: 范围为0≤uIF<w”e L’+1w”o L’+1的输入uIF
初始化: Uo=w”’o L’+1,Ue=w”e L’+1,u=uIF.
对于i=1到N’,执行{
计算部分词典索引vo,ve和划分索引N00,N01,N10
vo=min{2L’-i,Uo},vo=min{2L’-1,Ue}
N00=vove,N01=voUe,N10=N01+(Uo-vo)ve
计算时间i的输出(x’oi,x’e i)并且更新输入u:
如果u<N00, 则x’o i=0,x’e i==0
否则,如果N00≤u<N01 则x’o i=0,x’e i=1,u=u-N00
否则,如果N01≤u<N10, 则x’o i=1,x’e i=0,u=u-N01
否则 x’o i=1,x’e i=1,u=u-N10
更新上界:
Uo=min{2L’-i,Uo-x’o i2L’-i},Ue=min(2L’-i,Ue-x’e i2L’-i}
}
如通过下例展示的那样可以通过预先计算划分索引N00,N01,N10来进一步简化上述算法。考虑L’=9和w”o L’+1=363=w”e L’+1的情况。这里,由于2log2(363)>17,所以获得速率为17/18的编码器。如在图5的表中所示,部分词典下索引和上索引vo,ve和Uo,Ue可以在每个步骤i取得至多两个不同值。另外,多数值是2的幂。从该表中可见划分索引N00,N01,N10可以在各迭代步骤i取得至多四个值。可以在4进制编码器中预先计算所有这些值,由此避免对实施复杂乘法运算的需要。在各步骤i,可以根据部分词典索引上索引Uo,Ue的实际值来解决预先计算的值N00,N01,N10。为此,引入两个二进制指示符函数:
o=I{Uo=210-I}和e=I{Ue=210-i}
如果在大括号中的方程成立,则这些函数取值1、否则取值0。图6的表示出了用于所有i值的划分索引的可能值。在各步骤i(i≠1),如在表中说明的那样根据部分词典索引上索引Uo,Ue来确定预先计算的索引N00,N01,N10。注意二进制值o=I{Uo=210-i}和e=I{Ue=210-i}在步骤i分别依赖于Uo和Ue的实际值。
图7具体图示了图2的调制编码装置5。调制编码装置包括如图中所示连接的输入划分装置25、两个调制编码器26和27、多路器28以及反相器29。输入划分装置25可以通过上述图3和图4的划分装置10或者15来实施。划分装置25因此将输入位流中的一连串M位字划分成奇数和偶数输出位流。如上所述,这些位流各由一连串N位范围受限码字组成。继而在相应调制编码器26、27中对两个输出位流分别调制编码。在这一实施例中,各调制编码器是用于将广义菲波纳契码应用于输入N’位字的二进制枚举编码器。为了简化,在本例中在编码器26、27中应用同一广义菲波纳契码F({wn})。各菲波纳契编码器26、27产生包括满足j约束的一连串N位字的调制编码输出位流xo i,xe i。奇数和偶数调制编码位流继而由多路器28交织并且位值在反相器29中取反。编码器5的所得受调制约束输出因此是包括一连串2N位字的受(G,I)约束位流,其中对于广义菲波纳契码F({wn})而言G=2I并且I=j。
对于具有权重wn(n=1,...,N)的广义菲波纳契码F({wn}),按照u=∑xiwN-i+1来确定编码。因此通过以下算法来限定菲波纳契编码器26、27的操作。
输入:代表一些整数u=∑x’i2N’-i的二进制向量[x’1,x’2,...,x’N’],其中u<wN+1。
输出:二进制向量[x1,x2,...,xN],其中N’≤N。
编码规则:对于i=1到N{
如果u≥wN-i+1 则xi=1
u=u-wN-i+1(从输入中相继减去权重)
否则xi=0
}
在菲波纳契权重{wn}具有有限跨度L的优选情况下,编码器26、27在窗口长度位L+1的滑动窗口方式下操作。
划分装置25对划分的输出流x’o i和x’e i中的N’位码字施加的范围限制将可能输入的范围限制于菲波纳契编码器26、27。具体而言,该范围限制被设计用以将N’位码字值限制于用于高效、高速率菲波纳契码的菲波纳契编码器的有效输入。在这一优选实施例中,广义菲波纳契码F({wn})将输入字映射成相同长度的输出值,即N=N’。在划分装置25中的4进制编码因此在奇数和偶数输出码字中施加(相同)范围限制以允许这一N位到N位的调制编码。一般而言,调制编码装置5可以将M=(2N-P)位字(P≥1)映射成受2N位(G,I)约束的输出字。然而,在M=2N’-1和N=N’的这一优选实施例中,整个调制编码过程可以将输入的(2N-1)位数据字映射成受2N位(G,I)约束的码字。
从上文可见,通过按照调制编码器5的第二级来选择用于输入位的恰当范围0≤uIF<(wN+1)2,两级编码器可以生成可根据偶数/奇数交织菲波纳契码F({wn})来获得的所有受(wN+1)2(G,I)约束的码字。因此,两级编码方式可以例如适用于如在上文引用的同时提交申请中公开的那样可以通过单级4进制枚举编码器来编码的任何偶数/奇数菲波纳契码F({wn})。下文给出了在编码器26、27中采用的广义菲波纳契码F({wn})的三个特定例子。
第一码F({wn})是j=7的码,其跨度为L=9的权重wn=Bn2n-1(n=1,2,N=118)定义为:
Bn29=512 对于n=1,2,...,5
Bn29=496 对于n=6,7,...,9
Bn29=505-n 对于n=10,11,...,118。
由两级调制编码器5实施的所得PRML(G,I)码是在码字内并且跨越级联码字的码字边界、满足约束I=7和G=14的速率为235/236=0.9958的码。
第二码F({wn})是由在图8的表中示出的权重和j分布完全限定的N=100且j=5码。所得PRML(G,I)码具有G=10、I=5和速率为197/200=0.985的码。
第三码是具有如在图9的表中示出的权重的N=200码。对于该码,j约束分布在码字内为j(n)=6,即针对n=6,7,...,199。在边界处适用以下j约束:
在左边界:j(1)=1,j(2)=2,j(3)=3,j(4)=3,j(5)=4,j(6)=5;
在右边界:j(200)=3.
因此,j=6约束在码字内并且跨越码字边界适用。所得PRML(G,I)码具有397/400=0.9925的码速率并且在码字内并且跨越码字边界满足G=12和I=6。
对于上述三个码,上界wN+1具有跨度L≤9。因此,在第一输入划分级中为交织的j=∞菲波纳契码实施编码器时,可以应用图4的简化并且通过预先计算来避免乘法。因此第一级具有低复杂度,这实质上来自于在该算法的前L’=L个步骤中2(L’+1)位数字的比较和加法/减法。在第二级中两个二进制枚举菲波纳契编码器在各步骤简单地执行(L+1)位数字的比较和加法/减法。
图10示出了图2的系统的调制解码装置6。这实施一种实质上位编码装置5中调制编码过程的逆过程的两级解码过程。因此,解码装置6包括反相器35、去多路器36、两个菲波纳契解码器37、38和4进制解码装置39。反相器35接收从重现信号中检测的一连串2N位字并且将这些位取反以将二进制输出流提供到取多路器26。这使接收的位流的奇数和偶数位去交织以产生两个N位码字流。这些继而根据以下解码算法由菲波纳契解码器37、38解码。对于具有权重wn(n=1,...,N)的广义菲波纳契码F({wn}),解码器实质上合计由码字分量指定的权重:
输入: [x1,x2,...,xN]
输出的初始化:udee=0
解码规则:对于i=1到N{
udee=udee+xiWN-i+1
}
与对应编码器一样,解码器37、38在窗口长度为L+1的滑动窗口方式下操作,其中L是菲波纳契权重{wn}的跨度。
来自各解码器37、38的所得一连串N’位输出字将两个二进制输出流提供到4进制解码装置39。这执行在编码侧由输入划分装置实施的过程的逆过程。因此,图11示出了与图3的划分装置对应的4进制解码装置45。4进制符号生成器46组合两个输入N’位字的对应位以将一连串N’个4进制输出符号供应到4进制解码器47。解码器47实施由4进制编码器11应用的编码算法的逆算法、因此应用4进制枚举解码算法以同时对编码器11所应用的交织j=∞菲波纳契码的根本j=∞菲波纳契码解码。在相继迭代步骤中,该算法处理相继4进制符号的位对(x’o i,x’e i)。具体而言,给定奇数和偶数交织中根本菲波纳契码的码字x’o 1,x’o 2,...,x’o N’和x’e 1,x’e 2,...,x’e N,算法如下:
初始化: Uo N’=w’N’+1,Ue N’=w’N’+1,u=0
预处理(预先计算并且存储所有的部分词典上索引):
对于i=1到N’ 执行{
Uo i=min{2N’-i,Uo i-x’o i2N’-i},Ue i=min{2N’-i,Ue i-x’e i2N’-1}
}
对于i=N’倒数到1执行{
计算部分词典下索引和划分索引:
vo=min{2N’-i,Uo i},ve=min{2N’-i,Ue i}
N00=vove,N01=voUe i,N10=N01+(Uo i-vo)ve
更新枚举索引(=解码器输出)u:
如果(x’o i=0,x’e i=0) 则u=u
否则如果(x’o i=0,x’e i=1) 则u=u+N00
否则如果(x’o i=1,x’e i=0) 则u=u+N01
否则 u=u+N10
}
解码器47作为宽度为2L’+2的滑动窗口解码器来操作,而适用于解码器11的关于乘法的简化同样适用于解码器47。
图12示出了与图4的编码装置15对应的简化4进制解码装置。4进制解码装置50包括两个去多路器51、52、4进制符号生成器53和多路器54。这些部件一起将图4中二进制输出生成器17的操作取反。因此,对于分别供应到去多路器51、52的各对N’位字,4进制符号生成器43将一连串L’个4进制输出符号供应到4进制解码器55。这一解码器55执行由图3中的4进制编码器19应用的编码算法的逆算法。因此,该算法基于4进制符号集并且在各步骤处理位对(x’o i,x’e i)。
给定: 奇数/偶数交织的码字x’o 1,x’o 2,...,x’o L和x’e 1,x’ e 2,...,x’e L
初始化: Uo=w”L’+1,Ue=w”’L’+1,u=0.
预处理(预先计算并且存储所有的部分词典上索引):
对于i=1到L’执行{
Uo i=min{2L’-i,Uo i-x’o i2L’-i},Ue i=min{2L’-i,Ue i-x’e i2L’-i}
}
对于i=N’倒数到1执行{
计算部分词典下索引和划分索引:
vo=min{2L’-i,Uo i},ve=min{2L’-i,Ue i}
N00=vove,N01=voUe i,N10=N01+(Uo i-vo)ve
更新枚举索引(=输出)u:
如果 (x’o i=0,x’e i=0) 则u=u
否则 如果(x’o i=0,x’e i=1) 则u=u+N00
否则 如果(x’o i=1,x’e i=0) u=u+N01
否则 u=u+N10
}
同样,解码器在窗口宽度为2L’+2的滑动窗口方式下操作,而适用于解码器19的关于乘法的简化也适用于解码器55。
4进制解码器55将所得一连串Q位字供应到多路器56的一个输入。向装置50输出的各N位字的最低(M-Q)/2位由多路器54交织以在多路器56的另一输入端产生(M-Q)位。这些然后由多路器56附加到来自4进制解码器55的Q位值以恢复与原输入数据字对应的M位字。
可见上述系统性的、灵活的和高效的输入划分技术允许利用特别高效的编码器/解码器实施来设计高速率调制码。即时与上文引用的同时提交申请的4进制调制编码器相比,本发明的实施例在复杂度上更高效,因为可以在编码器的第一划分级中避免乘法、在第二调制编码级中无需乘法而在解码器中应用对应简化。
尽管上文已经描述本发明的优选实施例,可以做出进行改变和修改而不脱离本发明的范围。举例而言,可以在编码器26、27中应用不同的广义菲波纳契码,或者这里可以可行地使用除菲波纳契编码器之外的调制编码器。在图7中,当然可以在多路器28的交织之前执行菲波纳契编码输出流的位取反。另外,尽管上文通过交织的j=∞菲波纳契码在奇数和偶数输出码字中施加相同的范围限制,但是一般而言范围限制对于奇数和偶数码字而言并非必然相同,而可以在各情况下有数目不同的允许码字值。