CN102298953A - 带保护字的二维游程长度受限约束的编解码器及使用方法 - Google Patents
带保护字的二维游程长度受限约束的编解码器及使用方法 Download PDFInfo
- Publication number
- CN102298953A CN102298953A CN2011101488409A CN201110148840A CN102298953A CN 102298953 A CN102298953 A CN 102298953A CN 2011101488409 A CN2011101488409 A CN 2011101488409A CN 201110148840 A CN201110148840 A CN 201110148840A CN 102298953 A CN102298953 A CN 102298953A
- Authority
- CN
- China
- Prior art keywords
- word
- data
- module
- dimension
- dimensional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
- H03M5/145—Conversion to or from block codes or representations thereof
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供了一种带保护字的二维游程长度受限约束的编解码器及其使用方法,该编解码器包括编码器和解码器,所述编码器包括:数据缓冲及分组模块、二维码字生成模块、二维字单元页构造模块、二维码字写入阵列模块、保护字填充模块,上述五个模块依次连接,最后通过其中的保护字填充模块输出给二维数据记录装置;所述解码器包括:二维数据缓冲模块、二维字单元页构造模块、一维数据字译码模块、一维数据流组装模块,上述五个模块依次连接,最后通过其中的一维数据流组装模块输出。本发明的编解码方法和装置能解决由“0”和“1”构成的二维数据阵列在两个方向上均满足(1,3)RLL约束的二维(1,3)RLL的技术问题。
Description
技术领域
本发明属于数据存储领域和通信领域。具体涉及当将二进制数据存储在矩形格子组成的平面上,无论是在水平方向还是在垂直两个方向上,在连续数据”1”之间,数据“0”的游程长度最少等于1,最多不超过3的编解码器及使用方法。
背景技术
在现代存储技术和通信技术中,通道由于内在的物理特性,会对穿越通道的信号产生具有某种形式的约束限制。为降低通道对信号的影响,提高存储系统和通信系统可靠性,解决这一问题的办法之一就是用约束编码技术,约束编码又称调制编码。(d,k)游程长度受限约束(RLL)是这类约束的一个典型代表。这里d表示在连续数据“1”之间,“0”的游程长度最小值,k表示其最大值。著名的Miller码,即改进型调频码MFM(美国专利号3,108,261,公布日1963年10月22日),就是其中的一个代表。在MFM码中,相邻数据“1”之间,“0”的游程长度至少等于1,最多不超过3,因此MFM码有时候又称为一维(1,3)RLL码。
随着技术的发展,近些年出现了将数据以二维页面方式进行存储的新型存储器,比如全息存储器和二维光盘等。这类存储器和目前主流存储器的一个最大不同之处在于:数据每次按照二维页面的方式存储在记录介质上,在读取数据时,也是按照整页整页的方式进行。图1描述了在全息存储器中数据的这种二维布局示意。
在上述二维存储器中,以图1为例,若不考虑边界的影响,每位比特信息都有4个比特信息和它本身直接相邻(即通常所说的上、下、左和右)。比较而言,在一维情形下,数据的布局如图2所示。
从图1和图2可以看出,在二维存储中,二进制数据阵列在水平和垂直两个方向上都有约束限制要求。这样前面提到的改进型调频码(MFM),数据之间的内在约束条件会因空间尺度从一维转到二维而发生相应变化,原先在一维条件下满足的约束限制在二维情形下就不再有效。因此寻求新的二维约束编解码方法,保证数据在水平和垂直两个方向上能同时满足新型二维存储技术的发展和需求就显得非常有必要。
发明内容
本发明所要解决的技术问题是:提供一种带保护字的二维游程长度受限约束的编解码器及使用方法,本发明的编解码方法和装置能解决由“0”和“1”构成的二维数据阵列在两个方向上均满足(1,3)RLL约束的二维(1,3)RLL的技术问题。
本发明所采用的技术方案是:带保护字的二维游程长度受限约束的编解码器,包括编码器和解码器,所述编码器包括:
数据缓冲及分组模块,该模块在缓冲接收一维数据流的同时,根据二维数据页的大小,将数据划分成若干个长度相等的分组;
二维码字生成模块,该模块根据编解码规则表,将2比特的一维数据生成2×2的二维约束码字;
二维字单元页构造模块,该模块将二维数据页划分成若干个2×2的二维数据子阵列组成的二维字单元页;
二维码字写入阵列模块,该模块将2×2的二维约束码字,沿着二维字单元页斜线方向的奇数行逐行写入到二维数据阵列中;
保护字填充模块,该模块依据二维码字生成模块所选编解码规则表选取相应的二维保护字,并沿二维字单元页斜线方向的偶数行顺序,将二维保护字逐行填入到二维数据阵列;
上述五个模块依次连接,最后通过其中的保护字填充模块输出给二维数据记录装置;
所述解码器包括:
二维数据缓冲模块,该模块暂时存放从二维数据记录装置读取的二维数据阵列;
二维字单元页构造模块,该模块将二维数据阵列划分成由2×2的二维数据子阵列为最小读取单元的二维字单元页;
一维数据字译码模块,该模块将2×2的二维约束码字,根据相应的编解码规则表译码成大小等于2比特的一维数据字;
一维数据流组装模块,该模块将一维数据字按照产生的先后顺序组装成一维数据流;
上述五个模块依次连接,最后通过其中的一维数据流组装模块输出。
所述的带保护字的二维游程长度受限约束的编解码器的使用方法,是通过编码器实现编码过程,依次包括以下步骤:
S101)首先根据二维数据记录装置的存储大小,将大小为2N×2M的二维数据页以2×2的字单元为一组,划分成包含N×M个大小相同的二维数据字单元的数据页,然后判断该数据页中可编码的位数;
S102)数据缓冲及分组模块将输入的二进制一维数据流均匀地划分成若干一维数据字块,每个数据字块包含数目等于一个数据页中可编码位数的数据,然后对每块中的数据按2比特一组划分成若干一维数据字,并将数据字输入到数据缓冲区暂存;
S103)二维码字生成模块从数据缓冲区读取一个数据字块,选取编解码规则表将当前数据字块中的所有一维2比特数据字转化成相应的2×2二维约束码字;
S104)二维字单元页构造模块将二维数据页划分成若干个以2×2的二维数据子阵列为最小读取单元的二维字单元页,与步骤S101得到的数据页相对应;
S105)二维码字写入阵列模块将步骤S103)得到的2×2二维约束码字以步骤S104得到的二维字单元页的字单元行为基准,沿二维字单元页斜线方向的奇数行,从右上角到左下角依次将二维数据字写入大小等于2×2的字单元中,直至该行的字单元全部被写入为止;
S106)判断是否有下一个斜线方向的奇数行尚未写入,若有转至步骤S105;若二维字单元页奇数行的所有字单元被写满二维数据字,则进入下一步;
S107)保护字填充模块根据步骤S103)选取的编解码规则表,选取对应的二维保护字,沿二维字单元页斜线方向的偶数行,从右上角到左下角依次将该二维保护字填充到字单元中,直至该行的所有字单元全部被填满为止;
S108)判断是否有下一个斜线方向的偶数行尚未填满,若有转至步骤S107;若所有偶数行的二维字单元被填满二维保护字,进入下一步;
S109)判断是否还有未编码的一维数据字块,若有转至步骤S103;否则结束编码过程。
所述的带保护字的二维游程长度受限约束的编解码器的使用方法,是通过解码器实现解码过程,依次包括以下步骤:
S201)将从二维数据记录装置读取的二维数据阵列暂时存放在二维数据缓冲模块中;
S202)二维字单元页构造模块读取大小为2N×2M的二进制数据阵列,将该二维数据阵列以2×2为最小读取单元进行均匀划分,形成大小等于N×M的二维字单元页;
S203)一维数据字译码模块以该二维字单元页的字单元行为基准,沿字单元页斜线方向的奇数行,依据编码器编码顺序,从右上角到左下角依次读取字单元数据,根据编解码表译码出相应的一维2比特数据字;
S204)判断是否有下一个斜线方向的奇数行尚未译码,若有转至步骤S203;若二维字单元页的奇数行所有字单元被译码,进入下一步;
S205)一维数据流组装模块将得到的一维2比特数据字按照相应的译码先后次序进行组装,获取对应的一维二进制数据块;
S206)判断是否还有尚未解码的二维数据阵列,若有转至步骤S202;否则将上述步骤得到的一维二进制数据块按照先后顺序合并成一维数据流输出,译码结束。
本发明的技术效果如下所述:
1)编码器是状态无关的。编码器状态数是评价编码器性能的一个重要指标。状态无关的编码器是设计编码器的最佳选择。在本发明中,数据在编码和译码过程中,都是分块独立的,数据无论是在编码和译码过程中,都和相邻数据无关,即编码器是状态无关的。
2)二维码字编解码规则表构造简单。在本发明中,2×2的二维约束码字和一维2比特数据是一一对应的,通过简单的编解码规则方程,即可实现一维2比特数据到2×2的二维约束码字的编码过程,反之,通过查找2×2阵列的特定数据比特,即可实现一维2比特数据的译码。
3)二维保护字是和编解码规则一一对应的。在本发明中,所述二种编解码规则,分别对应于不同的二维保护字,即对指定的编解码规则表,其所需的二维保护字是唯一的,不同的编解码规则,对应不同的二维保护字,二者不可替代。
附图说明
图1是二维数据记录格式示意图(全息存储器)。
图2是一维数据光盘记录格式示意图。
图3是满足二维2D-(1,3)RLL约束的二维数据阵列示意图。
图4是4个方形格子构成的二维字单元。
图5是二维阵列(6×6)划分成二维字单元页(3×3)示意图。
图6是两种编码解码规则表;图6(a)表示第一种编码解码规则表;图6(b)表示第二种编码解码规则表。
图7是二维字单元行序编号示意图。
图8是编码器原理框图。
图9是解码器原理框图。
图10是基于图6(a)编解码规则的二维阵列构造造实施例。
图11是基于图6(a)编解码规则的二维阵列译码实施例。
具体实施方式
本发明适用于将数据按照二维阵列(即页面)形式记录的数据存储系统。系统典型代表有全息全息存储器及二维光盘等二维新型存储器。本发明的另一个发明目的是提供两种二维游程长度受限约束的编码方法。本发明的另一个目的是提供两种二维游程长度受限约束的解码方法。本发明的另一个目的是提供相应的编码和解码装置。
针对背景技术提出的问题,本发明给出了两种二维游程长度受限约束的编解码方法,即采取本发明给出的编码方法,能够保证二进制数据阵列,无论是在水平还是垂直方向上,在连续数据“1”之间,“0”的游程长度最少是1,最多不超过3的约束限制。我们将本发明给出的这种编解码方法二维(1,3)游程长度受限约束码,记为2D-(1,3)RLL码。
基于本发明给出的方法,因存在二维保护字,所述编码器的码率等于1/4,译码器在译码阶段不会产生错误传播,译码错误仅限于一个数据字即2bits数据,即当前数据的译码错误不会对后继数据的译码造成影响。
为了实现本发明的目的,本发明采取的技术方案是,二维(1,3)RLL约束编码方法,包括下述步骤:
第一步:首先将大小等于2N×2M的二维数据页以2×2为一组,划分成N×M个大小相同的二维字单元页,然后转步骤二;
第二步:将输入的二进制数据流均匀地划分成数目等于页面大小的若干块,然后对每块中的数据,按两两一组划分成大小等于2的若干一维数据字,每个字可以是如下4个值中的任意一个:00,01,10,11,并将这些一维数据字输入到数据缓冲区暂存,转步骤三;
第三步:从缓冲区读取一维数据字,按照图6所示编解码规则表对当前一维数据字进行编码并转化成2×2的二维约束码字,然后将该2×2的二维约束码字以字单元行为基准,沿二维字单元页斜线方向的奇数行,从右上角到左下角依次将该2×2的二维约束码字写入大小等于2×2的字单元中,转步骤四;
第四步:重复第三步,直至奇数行的所有字单元被写满2×2的二维约束码字为止;转步骤五;
第五步:顺序沿着二维字单元页斜线方向的偶数行,从右上角到左下角,依次将和第三步所选编解码规则表对应的二维保护字填充到字单元中,直至该行的字单元全部被填满为止;
第六步:重复第五步,直到编码结束。
解码步骤如下:
第一步:读取大小等于2N×2M的二进制数据阵列,将数据阵列按照2×2二维子阵列的方式进行均匀划分,形成以2×2为基本读取单位,大小等于N×M的二维字单元页;
第二步:沿着N×M的二维字单元页的斜线方向,从右上角到左下角,依次读取奇数行的二维字单元数据,根据编码过程所选的编解码规则表,译码出相应的2比特一维数据字;
第三步:重复第二步,直至二维阵列被译码完成;
第四步:将第二步得到的2比特一维数据字按照译码的先后次序进行组装,产生相应的一维二进制数据块,转步骤五;
第五步:判断是否输入下一个2N×2M的二维数据阵列,若是转步骤一;否则将上述步骤得到的一维二进制数据块按照先后顺序合并成一维数据流并输出,译码结束。
为了实现本发明的目的,本发明还提供了实现上述数据编码方法的编码器,包括:
数据缓冲及分组模块,该模块在缓冲一维数据流的同时,根据二维阵列的大小,将数据划分成若干个长度相等的一维数据分组;
二维码字生成模块,该模块根据图6描述的编解码规则表,生成相应的二维约束码字,并输入到二维字单元模块;
二维字单元页构造模块,该模块将二维数据页划分成若干个2×2的二维数据子阵列组成的二维字单元页;
二维码字写入阵列模块,该模块将2×2的二维约束码字,沿着二维字单元页斜线方向的奇数行逐行写入到二维数据阵列中;
保护字填充模块,该模块依据图6编解码规则表,依据上述二维码字生成模块所选编解码规则,选取相应的保护字,沿着二维字单元页斜线方向,如图7所示二维字单元页的偶数行顺序,从右上角到左下角,将二维保护字逐行填入到2N×2M的二维数据阵列。
为了实现本发明的目的,本发明还提供了实现上述数据解码方法的编码器,包括:
二维数据缓冲模块,该模块主要用于暂时存放从二维数据记录装置读取的二维数据阵列;
二维字单元页构造模块,该模块主要用于将2N×2M的二维数据阵列划分成由2×2为最小读取单元的N×M的二维字单元页;
一维数据字译码模块,该模块主要用于将2×2的二维字单元,根据相应的编解码规则表,译码成大小等于2比特的一维数据字;
一维数据流组装模块,该模块主要用于将大小等于2比特的一维数字按照产生的先后顺序组装成一维数据流。
总之,本发明能将一维数据流转化成满足参数指定的游程长度受限的二维数据阵列。所述二维游程长度受限约束编码方法包括将输入数据进行分割成特定大小的分组;然后按照对应的编码规则将2比特的一维数据字转化成2×2的二维约束码字;最后将生成的2×2的二维约束码字和相应的二维保护字根据预先指定方法进行写入,最终达到上述由数据“0”和“1”构成的二维数据阵列在水平和垂直两个方向上都满足约束条件,即数据“0”的游程长度无论是在水平还是在垂直方向上,都满足最小为1,最多等于3的要求。本发明设计了两种编解码规则及其对应的编解码器,两种编码器的码率均等于1/4。本发明给出的编解码器是状态无关的编码器,因此不会因译码错误而导致误码的灾难性传播,即当前数据译码错误不会对后继数据的译码造成任何负面影响,译码错误仅局限于当前2比特数据。
下面结合附图和实施例对本发明作进一步的详细说明:
如图3所示,描述本发明产生的二维数据阵列,该阵列无论是在水平方向还是在垂直方向上,在相邻数据“1”之间,数据“0”的游程长度都满足最小等于1,最多不超过3的约束条件。
如图4所示,由2×2个方形格子构造的二维字单元,是编解码二维阵列的基本单位数据。
如图5所示,将大小等于6×6的二维阵列,转化为大小等于3×3的二维字单元页,用这种方式可完成将一维数据流写入到满足2D-(1,3)RLL约束限制的二维数据阵列中。
如图6所示,图6(a)给出的是第一种编解码规则表以及相应的保护字,在该编解码规则中,00,01,10和11这四个数据分别用大小等于2×2的二维约束码字来代替,同时在编码过程中,为了满足相应的约束限制,需要一个特殊的二维阵列来保护这4个二维约束码字,该特殊的二维阵列称为二维保护字,在第一种编码规则中,这个二维保护字为如图6(a)所示,在该编解码规则表中,一维数据字用X=[X1 X2]表示,二维约束码字如下所示:基于该编解码规则表,其对应的二维约束码字编码方程如下所示:
其中X1~X2为一维数据字的各个比特位。Y11~Y22为二维约束码字的各比特位。基于此编解码规则表,可将一维2比特数据转换成2×2的二维约束码字。反之,在译码的过程中,根据该编解码规则表,一维2比特数据字的译码方程如下所示:X1=Y21;X2=Y12。
X1=Y11;X2=Y22
如图7所示,在二维约束阵列的构造中,字单元行编号是二维数据输入的先后顺序,即2×2的二维数据首先输入到字单元第一行,依次类推,直至2×2的二维数据输入到最后一行,这里二维数据字单元页的最后一行用字单元第N行来描述。
如图8所示,编码器编码过程如下:首先原始的一维数据流输入到数据缓冲及分组模块。该模块在缓冲一维数据流的同时,根据二维阵列的大小,将数据划分成若干个长度相等的分组,一维数据流经过分组模块后,首先将分组数据输入到二维码字生成模块,然后再根据图6描述的编码规则表,生成相应的二维约束码字,并输入到二维字单元模块。其中二维字单元构造模块根据二维约束码字的大小,将2N×2M的二维阵列划分成若干个由2×2阵列组成的N×M的二维字单元页。二维数据阵列的生成是由二维码字写入阵列模块来完成。二维码字写入模块阵列将由二维码字生成模块产生的二维约束码字按照图7所示二维字单元页斜线方向的奇数行从右上角到左下角顺序逐行将二维约束码字写入到二维阵列中。保护字填充模块依据编码过程选取的编解码规则表,选取对应的保护字,沿图7所示的二维字单元页斜线方向的偶数行顺序,将二维保护字逐行填入到的二维数据阵列,从而实现一维数据流到二维约束阵列的转化,上述将一维数据序列的二维阵列编码过程。其编码步骤包括:
(1)对输入的任意长度数据流根据二维阵列尺寸进行分组;
(2)以2个比特为一个字将步骤(1)中的一维数据分组划分成若干个一维数据字,然后根据图6所述的编解码规则表,将2比特的一维数据字编码成2×2的二维约束码字;
(3)以2×2为一个字单元,逐行对二维阵列进行划分以字单元为最小单位的二维字单元页;
(4)判断步骤(3)中的二维阵列是否划分完毕,满足转步骤(5),否则继续步骤(3);
(5)将步骤(2)得到的二维约束码字沿着二维字单元页斜线方向的奇数行逐行写入;同时将对应的二维保护字沿二维字单元页斜线方向的偶数行逐行填充;
(6)将步骤(5)得到的二维数据约束阵列输出到二维记录装置。
如图9所示,编码器解码过程如下:首先从二维记录装置读取二维数据阵列,然后从二维阵列缓冲模块逐页读取数据,输入到二维字单元页构造模块,按照2×2为一个字单元,将二维数据阵列划分成二维字单元页,然后将划分后的二维字单元页输入到二维字单元读取模块读取二维字数据,将二维数据字输入到一维数据字译码模块,得到相应的一维数据字,将一维数据字输入到一维数据流组装模块,按照数据字的先后次序组装成一维原始数据流,从而完成二维约束阵列到一维数据流的转化,实现解码过程。其解码步骤包括:
(1)将二维阵列按照2×2为基本单元划分成二维字单元页;
(2)沿着字单元页斜线方向的奇数行逐行读取二维数据;
(3)根据图6的编解码规则表,将步骤(2)得到的2×2二维数据译码成2比特一维数据字;
(4)将步骤(3)得到的一维数据字按照先后次序组装成一维数据流并输出,译码完成。
为了说明编码规则的应用方法,图10和图11列举了本发明的一个编码实施例1和解码过程的实施例2。实施例1和实施例2均依据图6(a)所描述的编解码规则表,二维阵列的大小等于8×8。若依据图6(b)所描述的编解码规则表,其实施类似。
实施例1:
图10给出了具体的编码过程。一维数据流首先划分成若干个长度相等的数据分组。数据分组的长度依据二维阵列大小来确定,在本实施例中,因二维阵列大小等于8×8,因此每组的数据包括16个比特,这16个比特数据按照两两一个字,划分成8个字,即每组数据包括8个2比特字。然后这8个一维数据字根据图6(a)的编码规则进行编码。这个编码规则如下: 上述8个一维数据字被编码成8个2×2的二维约束码字后,通过二维阵列写入模块,沿着二维字单元页奇数行逐行写入到二维阵列,写入后的二维阵列如下:
实施例2:
图11给出了具体的译码过程。首先从二维记录装置读取二维数据阵列。在本实施例中,这个8×8的二维数据阵列如下:
然后将该二维数据阵列以2×2为一个基本单元,水平逐行划分成大小等于4×4的二维字单元页,划分后的二维字单元页如下:
然后沿着二维字单元页斜线方向的奇数行逐行读取2×2的二维数据子阵列,在本实施例中,读取的2×2二维数据子阵列按照图6(a)的编解码规则译码,这个过程如下:
最后将“01 00 11 01 01 10 10 01”这些一维数据字组装成用户数据流0100110101101001并输出,即可完成用户数据的二维解码。
基于图6(b)的编解码规则,也可完成类似地编码解码工作。尽管已经详细描述了本发明公开的实施例,但应理解在不脱离基于图6的两种编解码规则表及相应二维数据保护字构思和范围的情况下,本发明在具体实施例还有很多变化、替代和修改。
Claims (5)
1.带保护字的二维游程长度受限约束的编解码器,其特征在于包括编码器和解码器,所述编码器包括:
数据缓冲及分组模块,该模块在缓冲接收一维数据流的同时,根据二维数据页的大小,将数据划分成若干个长度相等的分组;
二维码字生成模块,该模块根据编解码规则表,将2比特的一维数据生成2×2的二维约束码字;
二维字单元页构造模块,该模块将二维数据页划分成若干个2×2的二维数据子阵列组成的二维字单元页;
二维码字写入阵列模块,该模块将2×2的二维约束码字,沿着二维字单元页斜线方向的奇数行逐行写入到二维数据阵列中;
保护字填充模块,该模块依据二维码字生成模块所选编解码规则表选取相应的二维保护字,并沿二维字单元页斜线方向的偶数行顺序,将二维保护字逐行填入到二维数据阵列;
上述五个模块依次连接,最后通过其中的保护字填充模块输出给二维数据记录装置;
所述解码器包括:
二维数据缓冲模块,该模块暂时存放从二维数据记录装置读取的二维数据阵列;
二维字单元页构造模块,该模块将二维数据阵列划分成由2×2的二维数据子阵列为最小读取单元的二维字单元页;
一维数据字译码模块,该模块将2×2的二维约束码字,根据相应的编解码规则表译码成大小等于2比特的一维数据字;
一维数据流组装模块,该模块将一维数据字按照产生的先后顺序组装成一维数据流;
上述五个模块依次连接,最后通过其中的一维数据流组装模块输出。
2.根据权利要求1所述的带保护字的二维游程长度受限约束的编解码器的使用方法,其特征在于通过编码器实现编码过程,依次包括以下步骤:
S101)首先根据二维数据记录装置的存储大小,将大小为2N×2M的二维数据页以2×2的字单元为一组,划分成包含N×M个大小相同的二维数据字单元的数据页,然后判断该数据页中可编码的位数;
S102)数据缓冲及分组模块将输入的二进制一维数据流均匀地划分成若干一维数据字块,每个数据字块包含数目等于一个数据页中可编码位数的数据,然后对每块中的数据按2比特一组划分成若干一维数据字,并将数据字输入到数据缓冲区暂存;
S103)二维码字生成模块从数据缓冲区读取一个数据字块,选取编解码规则表将当前数据字块中的所有一维2比特数据字转化成相应的2×2二维约束码字;
S104)二维字单元页构造模块将二维数据页划分成若干个以2×2的二维数据子阵列为最小读取单元的二维字单元页,与步骤S101得到的数据页相对应;
S105)二维码字写入阵列模块将步骤S103)得到的2×2二维约束码字以步骤S104得到的二维字单元页的字单元行为基准,沿二维字单元页斜线方向的奇数行,从右上角到左下角依次将二维数据字写入大小等于2×2的字单元中,直至该行的字单元全部被写入为止;
S106)判断是否有下一个斜线方向的奇数行尚未写入,若有转至步骤S105;若二维字单元页奇数行的所有字单元被写满二维数据字,则进入下一步;
S107)保护字填充模块根据步骤S103)选取的编解码规则表,选取对应的二维保护字,沿二维字单元页斜线方向的偶数行,从右上角到左下角依次将该二维保护字填充到字单元中,直至该行的所有字单元全部被填满为止;
S108)判断是否有下一个斜线方向的偶数行尚未填满,若有转至步骤S107;若所有偶数行的二维字单元被填满二维保护字,进入下一步;
S109)判断是否还有未编码的一维数据字块,若有转至步骤S103;否则结束编码过程。
3.根据权利要求1所述的带保护字的二维游程长度受限约束的编解码器的使用方法,其特征在于通过解码器实现解码过程,依次包括以下步骤:
S201)将从二维数据记录装置读取的二维数据阵列暂时存放在二维数据缓冲模块中;
S202)二维字单元页构造模块读取大小为2N×2M的二进制数据阵列,将该二维数据阵列以2×2为最小读取单元进行均匀划分,形成大小等于N×M的二维字单元页;
S203)一维数据字译码模块以该二维字单元页的字单元行为基准,沿字单元页斜线方向的奇数行,依据编码器编码顺序,从右上角到左下角依次读取字单元数据,根据编解码表译码出相应的一维2比特数据字;
S204)判断是否有下一个斜线方向的奇数行尚未译码,若有转至步骤S203;若二维字单元页的奇数行所有字单元被译码,进入下一步;
S205)一维数据流组装模块将得到的一维2比特数据字按照相应的译码先后次序进行组装,获取对应的一维二进制数据块;
S206)判断是否还有尚未解码的二维数据阵列,若有转至步骤S202;否则将上述步骤得到的一维二进制数据块按照先后顺序合并成一维数据流输出,译码结束。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110148840.9A CN102298953B (zh) | 2011-06-03 | 2011-06-03 | 带保护字的二维游程长度受限约束的编解码器及使用方法 |
PCT/CN2011/084322 WO2012163070A1 (zh) | 2011-06-03 | 2011-12-21 | 带保护字的二维游程长度受限约束的编解码器及使用方法 |
US14/094,625 US8957792B2 (en) | 2011-06-03 | 2013-12-02 | Two-dimensional run-length limited codec with protection words and method for using same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110148840.9A CN102298953B (zh) | 2011-06-03 | 2011-06-03 | 带保护字的二维游程长度受限约束的编解码器及使用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102298953A true CN102298953A (zh) | 2011-12-28 |
CN102298953B CN102298953B (zh) | 2014-04-30 |
Family
ID=45359308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110148840.9A Expired - Fee Related CN102298953B (zh) | 2011-06-03 | 2011-06-03 | 带保护字的二维游程长度受限约束的编解码器及使用方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8957792B2 (zh) |
CN (1) | CN102298953B (zh) |
WO (1) | WO2012163070A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102903378A (zh) * | 2012-09-29 | 2013-01-30 | 武汉纺织大学 | 用于变长码率的二维游程长度受限约束编解码装置及方法 |
CN108259043A (zh) * | 2018-01-23 | 2018-07-06 | 程飞 | 基于间隔划分的测试数据压缩与解压缩方法 |
CN109587108A (zh) * | 2017-09-29 | 2019-04-05 | 硅工厂股份有限公司 | 数据通信系统及其数据发送装置和数据接收装置 |
CN110313169A (zh) * | 2017-04-18 | 2019-10-08 | 惠普发展公司,有限责任合伙企业 | 数据承载介质 |
WO2021046756A1 (zh) * | 2019-09-11 | 2021-03-18 | 武汉烽火技术服务有限公司 | 一种二维方形约束的编译码方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104517110B (zh) * | 2013-09-29 | 2018-01-05 | 北大方正集团有限公司 | 一种二维码图像的二值化方法及系统 |
US9654140B1 (en) * | 2016-08-27 | 2017-05-16 | Scured2 Corporation | Multi-dimensional run-length encoding |
CN109685187B (zh) * | 2018-12-28 | 2021-12-14 | 优城(宁波)地铁科技有限公司 | 一种批量发码模式功能的模块 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293868A (zh) * | 1999-02-05 | 2001-05-02 | 索尼公司 | 编码设备和方法、解码设备和方法以及译码系统和方法 |
CN1461006A (zh) * | 2003-06-27 | 2003-12-10 | 清华大学 | 采用有限游程长度调制的数据编码和解码方法 |
CN1560792A (zh) * | 2004-03-12 | 2005-01-05 | 上海龙贝信息科技有限公司 | 编码区域长宽比例连续可变的二维条形码系统 |
CN1571027A (zh) * | 2004-04-29 | 2005-01-26 | 清华大学 | 用于光致变色多波长光存储的多通道并行写入方法 |
EP0856995B1 (en) * | 1997-01-31 | 2006-09-13 | Victor Company Of Japan, Ltd. | Video coding and decoding apparatus with motion compensation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907581A (en) * | 1996-09-27 | 1999-05-25 | International Business Machines Corporation | Two-dimensional low-pass filtering code apparatus and method |
KR100412934B1 (ko) * | 2001-06-21 | 2003-12-31 | 김형석 | 아날로그 신호 처리 셀의 순환형 2차원 배열에 의한초고속 비터비 디코더 |
KR20040097386A (ko) * | 2002-04-26 | 2004-11-17 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 다차원적 인코딩 및 디코딩 방법 및 장치 |
JP2007066377A (ja) * | 2005-08-30 | 2007-03-15 | Sony Corp | 記録装置、記録方法、ホログラム記録媒体 |
US7227117B1 (en) * | 2006-05-30 | 2007-06-05 | Symbol Technologies, Inc. | High speed auto-exposure control |
CN101365131A (zh) * | 2008-08-19 | 2009-02-11 | 华亚微电子(上海)有限公司 | 适于vlsi实现的avs视频解码器变长解码的简化码表及实施方法 |
CN101540610B (zh) * | 2009-01-07 | 2011-12-28 | 湖南大学 | 一种二维非隔离位约束编解码方法及编解码器 |
-
2011
- 2011-06-03 CN CN201110148840.9A patent/CN102298953B/zh not_active Expired - Fee Related
- 2011-12-21 WO PCT/CN2011/084322 patent/WO2012163070A1/zh active Application Filing
-
2013
- 2013-12-02 US US14/094,625 patent/US8957792B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0856995B1 (en) * | 1997-01-31 | 2006-09-13 | Victor Company Of Japan, Ltd. | Video coding and decoding apparatus with motion compensation |
CN1293868A (zh) * | 1999-02-05 | 2001-05-02 | 索尼公司 | 编码设备和方法、解码设备和方法以及译码系统和方法 |
CN1461006A (zh) * | 2003-06-27 | 2003-12-10 | 清华大学 | 采用有限游程长度调制的数据编码和解码方法 |
CN1560792A (zh) * | 2004-03-12 | 2005-01-05 | 上海龙贝信息科技有限公司 | 编码区域长宽比例连续可变的二维条形码系统 |
CN1571027A (zh) * | 2004-04-29 | 2005-01-26 | 清华大学 | 用于光致变色多波长光存储的多通道并行写入方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102903378A (zh) * | 2012-09-29 | 2013-01-30 | 武汉纺织大学 | 用于变长码率的二维游程长度受限约束编解码装置及方法 |
CN102903378B (zh) * | 2012-09-29 | 2015-08-05 | 武汉纺织大学 | 用于变长码率的二维游程长度受限约束编解码装置及方法 |
CN110313169A (zh) * | 2017-04-18 | 2019-10-08 | 惠普发展公司,有限责任合伙企业 | 数据承载介质 |
US11113592B2 (en) | 2017-04-18 | 2021-09-07 | Hewlett-Packard Development Company, L.P. | Data-bearing medium |
CN110313169B (zh) * | 2017-04-18 | 2022-04-29 | 惠普发展公司,有限责任合伙企业 | 数据承载介质 |
CN109587108A (zh) * | 2017-09-29 | 2019-04-05 | 硅工厂股份有限公司 | 数据通信系统及其数据发送装置和数据接收装置 |
CN109587108B (zh) * | 2017-09-29 | 2022-03-04 | 硅工厂股份有限公司 | 数据通信系统及其数据发送装置和数据接收装置 |
CN108259043A (zh) * | 2018-01-23 | 2018-07-06 | 程飞 | 基于间隔划分的测试数据压缩与解压缩方法 |
CN108259043B (zh) * | 2018-01-23 | 2019-10-18 | 程一飞 | 基于间隔划分的测试数据压缩与解压缩方法 |
WO2021046756A1 (zh) * | 2019-09-11 | 2021-03-18 | 武汉烽火技术服务有限公司 | 一种二维方形约束的编译码方法及装置 |
CN113811947A (zh) * | 2019-09-11 | 2021-12-17 | 武汉烽火技术服务有限公司 | 一种二维方形约束的编译码方法及装置 |
CN113811947B (zh) * | 2019-09-11 | 2022-12-13 | 武汉烽火技术服务有限公司 | 一种二维方形约束的编译码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012163070A1 (zh) | 2012-12-06 |
US8957792B2 (en) | 2015-02-17 |
US20140104083A1 (en) | 2014-04-17 |
CN102298953B (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102298953B (zh) | 带保护字的二维游程长度受限约束的编解码器及使用方法 | |
CN1983432B (zh) | 用于部分响应信道的结构化集合划分和多层编码 | |
CN102823141B (zh) | 用于固态存储器件的两级bch码 | |
KR20060061261A (ko) | 주기적으로 변화하는 심볼 매핑들을 이용하여 데이터에변조 제약들을 적용하기 위한 기술들 | |
CN1937414A (zh) | 信号解码方法、信号解码装置和信号存储系统 | |
JP2013524609A5 (zh) | ||
US8566665B2 (en) | Systems and methods for error correction using low density parity check codes using multiple layer check equations | |
CN102129875B (zh) | 二维游程长度受限约束的块编解码装置及其使用方法 | |
CN101540610B (zh) | 一种二维非隔离位约束编解码方法及编解码器 | |
CN101572109A (zh) | 数据解码装置,磁盘装置以及数据解码方法 | |
CN101431335B (zh) | 用于调制编码和解码的方法、装置和系统 | |
Hareedy et al. | Efficient constrained codes that enable page separation in modern Flash memories | |
CN102903378B (zh) | 用于变长码率的二维游程长度受限约束编解码装置及方法 | |
CN1383659A (zh) | 用于把n比特源字编码或解码成为相应的m比特信道字或反之的设备 | |
CN113811947B (zh) | 一种二维方形约束的编译码方法及装置 | |
CN1305064C (zh) | 用于光致变色多阶光存储的游程长度受限编码式写入方法 | |
US20120089883A1 (en) | Systems and Methods for Error Correction Using Irregular Low Density Parity Check Codes | |
CN102647192B (zh) | 数据处理方法和装置 | |
CN1258758C (zh) | 用于光致变色多波长光存储的多通道并行写入方法 | |
WO2004059647A1 (en) | Coding system | |
JP2007514252A (ja) | 高密度光記憶のための2次元変調符号化 | |
JP2006277903A (ja) | 符号化装置、及び復号装置 | |
CN117931050A (zh) | Qlc nand的数据存储方法、装置、设备、介质 | |
CN106330204A (zh) | 一种数据处理方法及装置 | |
KR101433672B1 (ko) | 연접 비씨에이치 인코딩 회로, 이를 포함하는 스토리지 디바이스 및 스토리지 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140430 Termination date: 20160603 |