专利名称::一种二维非隔离位约束编解码方法及编解码器的制作方法
技术领域:
:本发明属于数据存储和数据通信领域,具体涉及一种二维非隔离位约束编解码方法及相应的编解码器。
背景技术:
:数据存储通道由于内在的物理特性,会对穿越通道的信号产生具有某种形式的约束限制,从而成为一个约束系统。例如在一个给定的时间内,磁记录系统中的数据"1"表示磁极的变化,"o"表示磁极没有变化。两个连续"1"被读作电压峰值紧跟着一个电压波谷。如果波峰和波谷靠的太近,会产生符号间串扰,即波峰和波谷的振幅会严重受损,它们产生的位置因此会失真。所以为了控制符号间的串扰,一般要求"1"不能靠的太近;或者说"0"的长度不能太短。另一方面,为了时序控制,也希望"0"的长度也不能太长,这是因为只有"1"才能被检测到。"0"的长度由于通过一个反馈环和时钟相连接,"0"的长度太长则可能引起时钟漂移超过一个时钟单元周期。这就形成了游程长度受限约束RLL(run-lengthlimited)。其中著名的(1,7)和(2,7)RLL就是这类约束编码的两个典型代表。在这两类系统中,"0"的最少个数为1(2),"0"的个数最多为7。此外香农(Shannon)容量是描述这种约束系统的一个重要参数。其含义是指系统在满足约束条件下,码字个数的渐进增长率。它反映了数据被调制映射成预先设定的约束条件,所能达到的理论上限。目前一维约束系统很多基本问题5已从理论上得到解决,香农容量可以用公式准确地计算出,相应的编解码理论也给出了如何构造码率尽可能接近容量极限的编解码器。对这类约束系统的深入研究,使得一维调制约束序列及其编解码方法在数据的存储和传输等领域中得到广泛应用。随着社会的发展,现有磁记录和光存储等技术由于内在的物理限制,对容量存储更大、数据寻址时间更短和数据传k率更高的要求,已逐渐显得力不从心,不能适应时代需求,因而促使了人们研究基于新型原理来同时满足上述条件的新型存储技术。近些年二维存储技术如全息存储和二维光盘存储技术的飞速发展和不断成熟,正是顺应这种需求应运而生,有望在可预期的时间内成为替代目前主流存储技术,成为下一代存储技术的首选解决方案。因此对二维信号编码和处理技术的研究和关注也日益增加。和一维约束系统相比,在二维情形下,信号受到的约束限制相对而言也更为复杂。目前市场广泛使用的磁存储和光存储技术,数据均是按"线"方式在存储介质上排列。数据所受的噪声及符号间串扰也仅仅是一维。而在二维新一代存储技术中,数据是按照"页面"的方式在存储介质上排列,符号间串扰以及噪声在两个方向都存在。因此传统的一维信号编码和信号检测、处理等技术已不适应这种二维数据存储记录形式的需求。寻找二维数据检测、数据处理及数据编码等技术就成为二维存储通道研究面临的主要问题。研究表明二维非隔离位约束对全息存储和二维光盘存储等数据通道具有重要价值,严重制约和影响着通道性能。所谓二维非隔离位约束是指在以"页面"为数据记录格式的二维存储系统中,数据"1"(O)的上下左右邻居数据不能全部是"0"(1)。即图2所示两种图案在二维数据阵列中应严禁出现,这两种图案的出现会产生严重的二维符号串扰,导致存储系统性能的严重失真。在平面边界情况下,这个要求可适当放宽。大块数据分解成由多个比特数据组成的比特组,每个比特组再按照预先规定约束编码成相应的二维子阵列,之后再将这些二维子阵列组合级联成满足预先约束条件的二维数据阵列。每个二维子阵列的编码即和对应组的比特有关系,还和其它相邻组的比特有关系,因此在译码阶段,如果其它组的比特数据产生译码错误时,会对当前组的比特译码造成影响,且这种影响会进一步影响到即将到来的下一个其它数据分组的解码,从而造成严重的解码错误传播,产生码字的灾难性译码错误。此外由于编码和译码阶段需要记录和当前比特组直接相邻比特组的编码状态,因此编码解码的设计与实现较为复杂。一般而言,在存储系统中,当码率相同或相近,通过减少编码器的状态个数可提高和改善存储系统性能,并减少解码出现的错误传播。
发明内容针对上述现有技术,本发明目的旨在提供一种具有独立状态的非隔离位约束编码方法,能直接采取查寻表来实现,结构简单,易于实现。本发明适用于以"页面"方式记录数据的数据存储系统如全息存储及二维光盘存储等环境。本发明的另一发明目的是提供一种隔离位约束编解码方法。本发明的另一发明目的是提供一种隔离位约束编码器。本发明的另一发明目的是提供一种隔离位约束解码器。为了达到上述发明目的,本发明采取的技术方案是,一种二维非隔离位约束编码方法,包括如下步骤(1)将输入的任意长度的数据流按照每组6bits划分成数据分组;(2)按照数据分组到二维约束子阵列的64个约束码字映射表将每个数据分组6bits转换成在64个约束码字映射表中与之相对应的2X4二维约束子阵列(8bits);(3)将从步骤(2)得到的二维约束子阵列以逐行级联的方式构造二维约束阵列;(4)判断步骤(3)中的二维约束阵列是否满足页面大小要求,如满足,则转步骤(5),否则转步骤(2);(5)将步骤(4)产生的二维约束阵列输出到二维记录装置。作为本发明的优选方案,上述编码方法中,所述二维约束阵列是根据码字元素类型和变迁指标转换的,且需满足如下设计原则1)二维约束子阵列的码字内点最大变迁指标不超过2;2)码字边界顶点变迁指标不超过l;3)按照左或右级联形成2X4的二维约束阵列;其中变迁指标表示当前元素和直接邻居节点(即当前元素上下左右四个元素)的相异数;将2X4子阵列的8个元素划分为内点和边界顶点两类,其中内点是指4个直接相邻的节点有3个元素和该元素同属于一个2X4阵列,边界顶点是指只有2个元素同属于一个2X4阵列;基于上述原则将2X2阵列划分成4类,按照2X2阵列类的性质,将2X2阵列按照左或右级联方式,构造出68个这样的2X4子阵列;这68个子阵列相互间任意组合,均可构造满足非隔离位约束的二维约束阵列。;本发明中64个约束码字是通过选取上述68个约束码字中具有高关联性的64个码字得到的。本发明还采取了一种二维非隔离位约束的解码方法,其步骤包括(1)将二维约束阵列按照逐行方式划分成若干2X4二维约束子阵列;(2)将上述划分后的2X4子阵列根据64个约束码字表转换成与之相应的6bits数据分组,进入步骤(3);(3)将得到的数据分组按照步骤(2)产生数据的先后顺序装配成数据流;(4)重复步骤(2)直至所有的2X4二维约束子阵列被解码。为了实现上述目的,本发明还提供了一种实现上述数据编码方法的编码器,包括数据缓冲模块,用于暂时存放一维数据流;一维数据分组模块,用于将连续的一维数据流分组成满足预先设定的一维数据分组;数据查寻模块,用于一维数据分组转化为满足约束条件的二维约束子阵列;二维子阵列组装模块,用于将满足约束条件的二维数据子阵列组装成指定大小的二维阵列;上述四个模块依次连接,最后通过其中的二维子阵列组装模块接入二维数据记录装置的数据输入端。所述预先设定的一维数据分组长度为每组6比特;所述二维子阵列为8位的2X4二维子阵列。本发明还提供了一种实现上述数据解码方法的解码器,其特征在于,包括:数据缓冲模块,用于暂时存放二维数据流;二维阵列数据划分模块,用于将一整页二维数据流分组划分成满足预先设定的二维子阵列数据;二维子阵列查寻模块,用于将二维子阵列数据转化为一维数据分组;一维数据流组装模块,用于将上述一维数据分组组装成一维用户数据流;上述四个模块依次连接,并通过其中的数据缓冲模块接入二维数据记录装置的数据输出端。由上述技术方案,本发明通过输入6位数据字,输出码字数等于8位的2X4二维子阵列,该二维子阵列能以任意直接级联的方式,构造满足非隔离位约束的二维阵列。本发明的技术效果如下所述-1)编码器的状态个数实现了最小化。在约束编码领域,编码器状态个数是评价编码器性能的一个重要指标。状态数越小的编码器,则解码出错的可能性就越小,当编码器只有一个状态时,数据分组之间的解码错误仅被限制在当前数据分组,不会产生灾难性的错误传播。2)约束码字映射表的构造比较简单。因本发明的所有约束码字即2X4约束阵列是用组合方法构造而来,因此码字之间的关联性比较高;其次由于只有64个约束码字,码表简单,这非常有利于编码器的电路设计和简化,对提高编码器的整体综合性能具有重要实用价值和意义。图l:数据存储基本原理示意图;图2:非隔离位约束限制的两种数据图示;图3:二维约束子阵列的元素分类示意图;图4:本发明所述编码器的原理框图;图5:本发明所述解码器的原理框图6:2X2二维子阵列的基本分类图表;图6(a)表示(0)类的2X2二维子阵列的图表;图6(b)表示(1)类的2X2二维子阵列的图表;图6(C)表示(2)类的2X2二维子阵列的图表;图6(d)表示(3)类的2X2二维子阵列的图表;图7:—维原始数据流组装成二维约束数据阵列实施例;图8:二维约束数据阵列还原成一维原始数据流的实施例。在附图中,1-码字边界点4-一维数据分组模块2-码字内点.5-数据査询模块7-二维子阵列组装模块8-—维数据流组装模块IO-二维阵列数据划分模块11-用户数据3-数据缓冲模块6-二维子阵列查询模块9-二维数据记录装置12-分组数据12112613-二维约束子阵列13113614-二维约束阵列具体的实施方式下面结合附图和实施例对本发明作进一步详细的说明如图3所示,本发明的设计原理是将2X4子阵列的8个元素划分为两类:一类是码字内点,图中编号2标注所示是指4个直接相邻的节点有3个元素和该元素同属于一个2X4阵列;另一类是码字边界点,图中编号l标注所示是指只有2个元素同属于一个2X4阵列。变迁指标表示当前元素和邻居节点的相异数。本发明根据上述码字元素类型和变迁指标构造满足设计原则的2X4二维子阵列,其中设计原则如下1)二维子阵列的码字内点2最大变迁指标不超过2;2)码字边界点1变迁指标不超过1;3)按照左或右级联形成2X4的二维约束阵列;基于上述原则可将2X2阵列划分成4类,如图6所示。按照2X2阵列类的性质,将2X2阵列按照左或右级联方式,可构造68个这样的2X4子阵列。这68个子阵列相互间任意组合,均可构造满足非隔离位约束的二维约束阵列。基于这68个约束码字具有较高的关联性,通过选取其中高关联性的64个码字,从而构造出本发明所选的64个约束码字映射表,如表6所述。如图4所示,二维约束编码器的编码过程如下首先原始的一维数据流先暂时存放在数据缓冲模块3,数据分组模块4将从数据缓冲模块3得到的数据,按照6比特为一组进行分组,若数据流位数不足,则在尾部添加部分0比特以达到要求。之后将6比特数据分组输入数据査寻模块5,按照二维约束码字查寻表编码成2X4二维约束子阵列,接着按照先后次序将产生的2X4约束子阵列输入到二维子阵列组装模块7,再逐行级联成页面尺寸已预先定义大小的二维约束阵列,最后将该二维约束阵列输入到二维数据记录装置9中,即可完成编码过程。其编码步骤包括(1)对输入的任意长度数据流按照每组6bits进行分组(块)划分;(2)按照数据分组(块)到二维约束阵列的64个约束码字映射表将每个数据分组6bit转换成在64个约束码字中与之相对应的2X4二维约束子阵列(8bits);(3)将从步骤(2)得到的二维约束子阵列以逐行逐行级联的方式构造二维约束阵列;(4)判断步骤(3)中的二维约束阵列是否满足页面大小要求,满足转步骤(5),否则转步骤(2);(5)将步骤(4)产生的二维约束阵列输出到二维数据记录装置。如图5所示,二维约束数据解码器的解码过程如下首先从二维数据记录装置9中读取二维数据阵列,并将其存放在数据缓冲模块3中,然后从数据缓冲模块3中逐页读取数据,并将该数据阵列输入到二维阵列数据划分模块10,按照2X4为一个子阵列进行分组,将分组后的二维子阵列输入到二维子阵列查寻模块6,按照编码规则査寻码表将每个2X4子阵列转化成6比特的一维数据分组,依次将得到的6比特一维数据分组通过一维数据流组装模块8按照先后次序组装成一维原始数据流,从而完成二维约束阵列到一维数据流的转化,实现解码过程。其解码步骤包括(1)将二维约束阵列按照逐行方式划分成若干2X4二维约束子阵列;(2)输入划分后的2X4二维约束子阵列,査寻64个码字组成的约束码字表,输出与之相应的6bits数据分组,进入步骤(3);(3)将得到的数据分组按照步骤(2)产生数据的先后顺序装配成数据流;(4)重复步骤(2)直至所有的2X4二维约束子阵列被解码。如图6所示,本发明所采用的2X4子阵列是基于2X2阵列构造得来,2X2阵列按照每个阵列的基本类型归为一类,总共4类,如图6(a)、图6(b)、图6(c)、图6(d)所示,本发明采取的2X2阵列选自图6(a)、图6(b)和图6(c)这三类。这三类分别用"0"类、"1"类和"2"类表示,2X4二维约束子阵列可以在类的内部或类之间进行构造,基于此方法可以构造出68个2X4二维约束子阵列,这68个二维约束子阵列相互之间可以任意级联成满足预先约定的二维约束阵列,这68个约束阵列是构造约束码字的基础。其中"0"类构造出的2X4二维约束子阵列如下表1:表l000100011100111类10;0011'0010;011100000000000010001101011001110110011100000001001100101110011011100101100111011001110000000000'001000111011100110mo00000001001100其中"1"类构造出的2X4二维约束子阵列如下表2:表211100011011000类io;ii11;00oi;io000111腿1111000111111001101100010011101110001111100111011000110011011111薩111100011011腿001100011110111110001101腿11001000其中"2"类构造出的2X4二维约束子阵列如下表3:14表3<table>tableseeoriginaldocumentpage15</column></row><table>上述表(l)、表(2)和表(3)中的68个约束子阵列分别表示基于0类、1类和2类构造的二维约束子阵列及其过程。数据字到二维子阵列约束码字的编设计和实现二维非隔离位约束编码和解码的硬件电路。表56位数据约束码字6位数据约束码字X3义4Z5^3A'4Z5X6AV^2义3义4义5=00111-o114001i61,2X3=101y=%4义5%6义6义4f5义6义6X^2义3^^5=00110y=Jf611i6100ZjX^=100y=义4A"j义6义4%51:1^X3X4X5=00101y=-00r-1X61i-xaxw=0111r=『5%5%6义6匸5X6X6^^2X3^4X5=00100y=陽000r;义61、早2;^4=0110y=^%6义6火5(5义6义6义6y=1000._11义6义6_早2^3^4义5=01011y=—0000_011义6早2%3%4%5=00010y=111—0001早2^3火4尤5=01010_001011z6^^3^^=00001r=j6c1r^r6001早2^¥4义5=01001y=_义6100—76110Z^2义3义4^5=00000—110z6]100a」y=—01140000根据上述编码规则方程得出64个数据到二维约束码字的映射规则表,如下表6所示。码规则方程如表5所示。用户输入数据用y:[X,义2X3义4义5X」表示,而二维约束阵列用y二表示。基于下述规则表5可直接___古p衣o6位数据二维约束码字6位数据—维约束码字6位数据二维约束码6位数据二维约束码字0000001100100001000001100000翻oo000011001100000000000000000111011001010001011100001000010001110111000100010001000010001100010100100100011010001000101110110010001000100000111011100101001111001110100011001111111100110011001100010001110001010100001001101001001100000011010001000100000101mi00010101010011011110010111010001110101010101010001101000110001011000000110薩IO1110001011011001100110ooom1000111101011100000111薩ll111100111101110111011100100000010011011000000101111010000000001111100010001000眼眼00011111011001om00001010010011000011画薩100100101010011011011010100011111010100100011111101010101010001011100111110110111110100010101101110100111011101110110011000110010001110000001111101100100010111111001100110000110111101100011101001111001011011011100011110111011101001110011000100111101100001110111011001111111110111011100011110111001101111111110000iom〗1111110011111111111111此64个码字是从68个约束子阵列中选取,去掉其中4个约束子阵列得来,这4个被删除的约束子阵列分别为00001110100111111110'0000'1101,1000以表6为基础,可实现编码步骤(2)和解码步骤(2)中数据到约束码字的映17^,jliA/x-、J^Kn弓了-闘J:^乂少A7J^Eti'j旦^T。为了说明编码规则的应用方法,图7和图8列举了本发明的一个具体编码实施例l和解码过程实施例2。实施例1:用户数据11首先被数据分组模块4划分为6组,对应的分组数据12的编号为121-126,对每组数据按照表6所示出的64个约束码映射表通过数据查询模块5分别查寻得到和原数据分组相对应的6组二维约束子阵列13,分别用13广136编号表示,然后将二维约束子阵列131~136按照先后次序输入到阵列组装模块7组装得到4X12的二维约束阵列14,再将该阵列传输给二维记录装置9,即可完成用户数据的二维编码工作。实施例2:图8给出本发明的具体解码过程,从二维记录装置9读取二维约束阵列14,将该阵列输入到二维阵列数据划分模块10,由此可得二维约束子阵列13广136,通过二维子阵列査询模块6查寻二维约束码字逆射表,如表6所示,获得每个二维约束子阵列的一维用户分组数据121126,将用户数据输入一维数据流组装模块8,组装得到一维连续的数据流信息11,从而完成数据的解码工作。尽管已经详细描述了本发明公开的实施例,但应理解在不脱离68个2X4约束子阵列构思和范围的情况下,本发明在具体实施例还有很多改变,替代和修改。权利要求1、一种二维非隔离位约束编码方法,其特征在于,包括如下步骤(1)将输入的任意长度的数据流按照每组6bits划分成数据分组;(2)按照数据分组到二维约束子阵列的64个约束码字映射表将每个数据分组6bits转换成在64个约束码字映射表中与之相对应的2×4二维约束子阵列8bits;(3)将从步骤(2)得到的2×4二维约束子阵列以逐行级联的方式构造二维约束阵列;(4)判断步骤(3)中的二维约束阵列是否满足页面大小要求,如满足,则转步骤(5),否则转步骤(2);(5)将步骤(4)产生的二维约束阵列输出到二维记录装置。2、根据权利要求1所述二维非隔离位约束编码方法,其特征在于,所述64个约束码字的形成步骤为首先根据码字元素类型和变迁指标组成二维约束阵列,使其满足如下原则1)二维约束子阵列的码字内点最大变迁指标不超过2;2)码字边界顶点变迁指标不超过l;3)按照左或右级联形成2X4的二维约束子阵列;其中变迁指标表示当前元素和直接邻居节点的相异数;将2X4二维约束子阵列的8个元素划分为内点和边界顶点两类,其中内点是指4个直接相邻的节点有3个元素和该元素同属于一个2X4二维约束子阵列,边界顶点是指只有2个元素同属于一个2X4二维约束子阵列;再基于上述原则将2X2阵列划分成4类,按照2X2阵列类的性质,将2X2阵列按照左或右级联方式,构造出68个2X4二维约束子阵列作为约束码字;这68个二维约束子阵列相互间任意组合,均可构造满足非隔离位约束的二维约束阵列;选取上述68个约束码字中的64个码字作为所述64个约束码字。3、一种二维非隔离位约束解码方法,其特征在于,包括如下步骤(1)将二维约束阵列按照逐行方式划分成若干2X4二维约束子阵列;(2)将上述划分后的2X4二维约束子阵列根据64个约束码字映射表转换成与之相应的6bits数据分组,进入步骤(3);(3)将得到的数据分组按照步骤(2)产生数据的先后顺序装配成数据流;(4)重复步骤(2)直至所有的2X4二维约束子阵列被解码。4、一种实现权利要求l、2所述编码方法的编码器,其特征在于,包括数据缓冲模块,用于暂时存放一维数据流;数据分组模块,用于将连续的一维数据流分组成每组6比特的一维数据分组;数据査寻模块,用于将一维数据分组通过64个约束码字映射表转化为对应的8比特2X4二维约束子阵列,-二维子阵列组装模块,用于将所述二维约束子阵列组装成指定大小的二维阵列;上述四个模块依次连接,最后通过二维子阵列组装模块接入二维数据记录装置的数据输入端。5、一种实现权利要求3所述解码方法糊科马器,其特征在于,包括数据缓冲模块,用于暂时存放二维数据流;二维阵列数据划分模块,用于将一整页二维数据流分组成满足8比特的2X4二维约束子阵列;二维子阵列査寻模块,用于将2X4二维约束子阵列通过64个约束码字映射表转化为一维数据分组;一维数据流组装模块,用于将上述一维数据分组组装成一维数据流;上述四个模块依次连接,并通过其中的数据缓冲模块接入二维数据记录装置的数据输出端。全文摘要本发明公开了一种二维非隔离位约束编解码方法及其装置,能在以“页”面方式的二维数据存储如全息存储和二维光盘存储等环境下,将数据流转化成满足非隔离位约束的二维数据阵列。所述二维非隔离位约束编码方法包括将输入数据进行分割成特定长度的子块;然后按照64个码字约束规则将子块转化成二维约束子阵列;最后将生成的二维约束子阵列级联成满足预先指定约束的二维约束阵列。本发明设计了码率等于6∶8的二维非隔离位约束编解码方法,和已有的状态相关编解码方法相比,本发明中的编码器由于只有唯一的一个状态,因此不会因译码错误而导致误码的灾难性传播,因具有较好的综合性能,编码器结构简单、易于硬件实现。文档编号G11B20/14GK101540610SQ200910042438公开日2009年9月23日申请日期2009年1月7日优先权日2009年1月7日发明者刘继斌申请人:湖南大学