CN105703783B - 一种准并行结构的ldpc编码器 - Google Patents
一种准并行结构的ldpc编码器 Download PDFInfo
- Publication number
- CN105703783B CN105703783B CN201610192031.0A CN201610192031A CN105703783B CN 105703783 B CN105703783 B CN 105703783B CN 201610192031 A CN201610192031 A CN 201610192031A CN 105703783 B CN105703783 B CN 105703783B
- Authority
- CN
- China
- Prior art keywords
- arithmetic element
- arithmetic
- register
- encoded information
- successively
- 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.)
- Active
Links
- 230000008520 organization Effects 0.000 title claims abstract description 9
- 239000011159 matrix material Substances 0.000 claims abstract description 109
- 230000015654 memory Effects 0.000 claims abstract description 51
- 239000013598 vector Substances 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 11
- 235000013399 edible fruits Nutrition 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 108020004705 Codon Proteins 0.000 description 1
- 101001106432 Homo sapiens Rod outer segment membrane protein 1 Proteins 0.000 description 1
- 102100021424 Rod outer segment membrane protein 1 Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 102000030938 small GTPase Human genes 0.000 description 1
- 108060007624 small GTPase Proteins 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种准并行结构的LDPC编码器,涉及数字信息传输领域,旨在针对上述存在的问题,提供一种结构更加精简的LDPC编码器,有效降低生产成本。本发明技术要点:包括至少一个存储器、三个运算单元、控制单元及选通输出单元。所述存储器与三个运算单元均具有信号连接,存储器用于存储码率1、码率2、码率3及码率4情况时的生成矩阵。三个运算单元分别用于先并行计算p0、p1及p2;再并行计算p3、p4及p5;以此类推,直到并行计算pm‑2、pm‑1及pm。
Description
技术领域
本发明涉及数字信息传输领域,尤其涉及到CDR(中国数字音频广播)系统的发射端调制器的LDPC(低密度奇偶校验码)编码技术。
背景技术
在CDR系统的发射端调制中,需要对待发送数据进行LDPC编码。将待发送信息与其LDPC编码结果组合发送。
根据“中华人民共和国广播电影电视行业标准GY/T 268.1-2013”规定,LDPC码采用表一所示的四种不同码率:
表一LDPC编码规格表
编号 | 块长【比特】 | 信息【比特】 | 对应的编码效率 |
码率1 | 9216 | 2304 | 1/4 |
码率2 | 9216 | 3072 | 1/3 |
码率3 | 9216 | 4608 | 1/2 |
码率4 | 9216 | 6912 | 3/4 |
假设输入编码信息为m={m0,m1,...,mw-1},对编码信息进行LDPC编码得到校验位p={p0,p1,...,p9215-w},其中编码信息码率为码率1时w为2304,编码信息码率为码率2时w为3072,编码信息码率为码率3时w为4608,编码信息码率为码率4时w为6912。那么LDPC编码器的输出码字为c={c0,c1,...,c9215}={m0,m1,...,mw-1,p0,p1,...p9215-w}。
上述校验位p={p0,p1,...,p9215-w}由校验矩阵H求解如下方程得出:
H×cT=0 式1
式中:
0——(9216-w)行1列的全0列矢量;
H——LDPC奇偶校验矩阵。
LDPC码传统编码算法和一般的线性分组码十分类似,只需根据校验矩阵求出生成矩阵G,然后利用生成矩阵G对编码信息s进行编码。若已知长度为256×n的信息序列s,G为生成矩阵,则校验位码字
生成矩阵G中每个小G矩阵,如G(m n-1),为256×256的小矩阵。
也就是说,LDPC编码过程即计算G×s的过程。
现有技术中已经存在实现LDPC编码的硬件系统,但是十分浪费硬件资源,例如申请号为201410837627.2的专利提供了一种实现LDPC编码过程的全并行硬件结构,其具有M个运算单元,M的数量不小于m。这样的结构是同时完成
这样的好处的运算速度很快。但是同时存在以下不足,使得该技术的实施需要花费很大的成本。
本领域技术人员知晓,在码率1情况下m取值为26,码率2情况下m取值为23,码率3情况下m取值为17,码率4情况下m取值为8。这意味着申请号为201410837627.2的专利提供的实现方案中,至少需要8个运算单元,若要实现码率兼容则需要26个运算单元。运算单元数量太大,导致硬件成本居高不下。
另外,全并行结构中存在特殊矩阵系数读取与非特殊矩阵系数读取时间冲突的问题,为了克服这一问题,申请号为201410837627.2的专利中的存储器数量必须至少为两个。一个存储器存储非特殊矩阵,另一个存储器存储特殊矩阵。这使得在码率3或码率4情况下矩阵系数读取控制算法更为复杂,需要在两片存储器中切换读取数据。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种结构更加精简的准并行结构的LDPC编码器,有效降低生产成本。
本发明采用的技术方案如下:包括至少一个存储器、三个运算单元、控制单元及选通输出单元。
所述存储器与三个运算单元均具有信号连接,存储器用于存储码率1、码率2、码率3及码率4情况时的生成矩阵。
三个运算单元分别用于先并行计算
再并行计算
以此类推,直到并行计算
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接;
所述编码信息输出线及编码信息输出端均用于根据控制时钟逐位输出编码信息;
所述选通输出单元用于依次输出第一运算单元、第二运算单元及第三运算单元的运算结果;
所述控制单元用于根据控制时钟控制存储器向所述三个运算单元输出生成矩阵系数;
其中,生成矩阵为G(0 0)、…、G(0k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)分别为256×256的小矩阵;为256×n位的编码信息,s0、s1、…、sn-1分别为256维列向量;m、n均为正整数,且m+1能被3整除。
进一步,所述运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收存储器输出的256位生成矩阵系数;各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在的运算单元的编码信号输入端连接;各异或单元的第一输入端与各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。
进一步,存储器用于存储所述生成矩阵中所有非特殊小矩阵的第一列元素、生成矩阵中特殊小矩阵的第一列元素、该特殊小矩阵中特殊列的第一列元素以及特殊列后的第一列元素。
进一步,在码率1情况下,n为9,m为26或者在码率2下,n为12,m为23:控制单元控制运算的步骤为:
步骤1:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(00)的第一列元素、G(10)的第一列元素、G(20)的第一列元素;每个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;三个运算单元各自完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元各自将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、G(2 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、G(2 1)与s1的运算,…,G(0 n-1)、G(1 n-1)、G(2 n-1)与sn-1的运算;
最后,控制选通单元依次输出第一运算单元的运算结果p0、第二运算单元的运算结果p1及第三运算单元的运算结果p2;
重复上述步骤,依次计算出p3、p4及p5;…直到计算出pm-2、pm-1及pm。
进一步,在码率3情况下,n为18,m为17或者在码率4情况下,n为27,m为8:生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列为特殊列,0<k<n-1,0<j<255,a为大于或等于1的整数,且j+a<255;所述控制单元控制运算的步骤为:
步骤1:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(00)的第一列元素、G(1 0)的第一列元素、G(2 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;三个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、G(2 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、G(2 1)与s1的运算,…,G(0 j-1)、G(1 j-1)、G(2 j-1)与sj-1的运算;
步骤3:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0k)、G(1 k)、G(2 k)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第一个元素;三个运算单元完成一次运算;
步骤4:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
将步骤4循环j-1个控制时钟,运算结果存储在第二寄存器中;
步骤5:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0k)、G(1 k)、G(2 k)的第j列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤6:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中第j+1个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
以此类推,各个运算单元将步骤6循环a个控制时钟,运算结果存储在第二寄存器中;
步骤7:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0k)、G(1 k)、G(2 k)的第j+a+1列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j+a+1个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤8:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中第j+a+2个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
以此类推,各个运算单元将步骤8循环254-j-a个控制时钟,运算结果存储在第二寄存器中;
如此完成G(0k)、G(1k)、G(2k)与sk的运算;
再按照步骤1、步骤2及对步骤2的重复完成G(0 k+1)、G(1 k+1)、G(2 k+1)与sk+1的运算,…,G(0 n-1)、G(1 n-1)、G(2 n-1)与sn-1的运算;
最后,控制选通单元依次输出第一运算单元的运算结果p0、第二运算单元的运算结果p1及第三运算单元的运算结果p2;
重复上述步骤,依次计算出p3、p4及p5;…直到计算出pm-2、pm-1及pm。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.本发明中采用只需要3个运算单元的部分并行编码方案,节约了大量的逻辑运算资源,降低了对逻辑器件资源等级的要求。每个运算单元采用并行结构完成相关运算,保证了系统所需的运算速度。
2.本发明能完成4种码率的编码过程,具有良好的兼容性。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为非特殊小矩阵。
图2为特殊小矩阵。
图3为3/4码率下生成矩阵的结构。
图4为本发明中校验码生成单元的一个具体实施例。
图5为运算单元的一个具体实施例。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
背景技术中提到,在不同码率下生成矩阵G是不同的,但是均是行业已知的。其中,在码率1及码率2时,G矩阵分为若干256×256小矩阵(小矩阵为256行、256列的矩阵),且每个小矩阵都有规律可循,即是图1所示的非特殊小矩阵,每个非特殊小矩阵以第0行为高位,第1列为第0列循环左移1位得到,第2列为第1列循环左移1位得到,以此类推,第255列为第254列循环左移1位得到,第255列循环左移1位得第0列。对于这样的G矩阵,我们只需要将其每个小矩阵的第0列元素存储即可。
在码率3或码率4时,生成矩阵G同样分为若干256×256小矩阵(小矩阵为256行、256列的矩阵),但是有些小矩阵为非特殊小矩阵,而小矩阵G(0 k)、G(1 k)、…、G(m k)为特殊小矩阵,0<k<255。
以码率4为例,生成矩阵G为图3所示,其中G(0 13)、G(1 13)、…、G(8 13)为特殊小矩阵。
特殊小矩阵不同于非特殊小矩阵,该小矩阵有一段连续部分有新的循环系数,本发明中将其称为特殊列,如图2的特殊小矩阵,其第46~61列。所以我们将该小矩阵分为起始列分别为第0~45列、第46~61列、第62~255列的3个部分,并将这3个部分的起始列(及第0列、第46列及第62列)进行存储。
本发明以3列矩阵为单位,从左到右,从上到下依次存储循环矩阵的系数。按照前3列:G(0 0)、G(1 0)、G(2 0),、、、G(0 n-1)、G(1 n-1)、G(2 n-1)到最后3列:G(m-2 0)、G(m-10)、G(m 0)、、、G(m-2 n-1)、G(m-1 n-1)、G(m n-1)顺序存储。如存储到特殊小矩阵则按照前文所述存储其3列系数。
为了节约存储资源,在本发明一个具体实施例中,将码率1、2、3情况下的生成矩阵存储在第一存储器,码率4情况下的生成矩阵存储在第二存储器。
采用两个存储器存储矩阵系数是为了节约存储资源,因为在使用FPGA内部M4K,M9K存储资源时,采用两个存储器能最大化利用存储资源。
尽管本实施例也使用了两片存储器,但是在一种码率情况下使用的存储器数量只有1个,不存在两片存储器交叉读取的情况。控制算法相对现有的全并行结构要简单。
本领域技术人员知晓LDPC编码校验位p的由下式生成:
其中G矩阵为已知,且已经按照上述方式存储在第一存储器与第二存储器中,而s为编码信息或输入信息,将其分为n个256维列向量s0、s1、…、sn-1。
下面将详细介绍上述运算的电路实现。
如图4,校验位生成单元包括存储器ROM0、存储器ROM1、3个运算单元、控制单元及选通输出单元。
所述存储器ROM0与3个运算单元均具有信号连接,所述存储器ROM1与3个运算单元均具有信号连接。
三个运算单元分别用于先并行计算
(由运算单元0运算),
(由运算单元1运算),
(由运算单元2运算);
再并行计算(由运算单元0运算),(由运算单元1运算),
(由运算单元2运算);
以此类推,直到并行计算
(由运算单元0运算),(由运算单元1运算),
(由运算单元2运算)。
这3个运算单元是并行运行的。这样的部分并行结构很好的减少了对逻辑资源的消耗,同时满足了系统需求的运算速度。在不同的码率下,该3个运算单元的运算次数不一样,如在码率1时当m为26,此时运算单元参与运算的次数为9;码率2时m为23,此时运算单元参与运算的次数为8;码率3时m为17,此时运算单元参与运算的次数为6;码率4时,m为8,此时运算单元参与运算的次数为3。无论在何种码率下,3个运算单元完成一次编码将输出768比特的校验位。
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接。
所述编码信息输出线从编码信息缓存单元引出,编码信息输出线及编码信息输出端用于根据控制时钟逐位输出编码信息。
所述选通输出单元用于依次输出第一运算单元、第二运算单元、第三运算单元的运算结果。
所述控制单元用于根据控制时钟控制第一存储器或第二存储器同时向所述3个运算单元输出矩阵系数;
其中,生成矩阵为G(0 0)、…、G(0k)、…、G(0 n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)均为256×256的小矩阵;为256×n位编码信息,s0、s1、…、sn-1均为256维列向量。在任何一种码率情况下都只有3个运算单元参与运算。
3个运算单元内部结构完全一样。如图5,运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收第一存储器或第二存储器输出的256位矩阵系数或者说小矩阵的第某列。各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在运算单元的编码信息输入端连接;各异或单元的第一输入端和各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。采用这样的运算单元结构,实现了在一个时钟周期内并行处理256次异或运算。
下面分别详细说明四种码率下运算单元的工作原理:
1、码率1或码率2情况:
步骤1:控制第一存储器按照控制时钟依次向3个运算单元的第一寄存器对应输出G(0 0)、G(1 0)、G(2 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;3个运算单元完成一次运算;结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;结果存储在第二寄存器中(实际上是覆盖上次的运算结果);
步骤3:将步骤2循环255个控制时钟,结果存储在第二寄存器中。
步骤4:控制第一存储器按照控制时钟依次向3个运算单元的第一寄存器对应输出G(0 1)、G(1 1)、G(2 1)的第一列元素,做步骤1~步骤3;依次输出矩阵G(0 2)、G(1 2)、G(22)的第一列元素,做步骤1~步骤3;依此规律,一直控制第一存储器输出矩阵G(0 n-1)、G(1n-1)、G(2 n-1)的第一列元素,并做步骤1~步骤3;至此,便计算出了p0、p1及p2;
步骤5:控制选通输出单元依次输出运算单元0的运算结果p0、运算单元1的运算结果p1及运算单元2的运算结果p2,共输出768比特编码信息。
重复步骤1~6,依次计算出p3、p4及p5,p6、p7及p8;...;pm-2、pm-1及pm。此处的重复,矩阵系数有变化,矩阵系数为每次编码完成生成矩阵G中3行小矩阵的系数,完成一次重复将选取生成矩阵G中后3行小矩阵的系数,直至完成全部矩阵系数编码。每次重复编码将输入完整编码信息,即每次的编码信息输入是相同的。码率1下重复9次,共输出6912比特编码结果;码率2下重复8次,共输出6144比特编码结果。
2、码率3或码率4情况:
此时,生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列为特殊矩阵列,0<k<n-1,0<j<255,a为大于或等于1的整数,且j+a小于255。如码率4情况下,j为46,a为15,即这m+1个小矩阵的第46~61列具有新的循环系数。
在这种情况下,对非特殊矩阵,即G(0 k)、G(1 k)…G(m k)以外的矩阵的处理方式与前面描述的相同,遇到特殊矩阵G(0 k)、G(1 k)…G(m k)时,需要做特殊处理,以码率4为例:当运算到特殊矩阵G(0 13)、G(1 13)…G(8 13)时在矩阵系数进行第14次输入更新后,其在内部寄存器完成45次循环移位(46次异或运算)后,进行第15次矩阵系数输入更新,其在内部寄存器完成15次循环移位(16次异或运算)后由矩阵系数进行第16输入更新,完成193次循环移位(254-61=194次异或运算)。由此完成编码信息与特殊小矩阵的运算。码率3的运算步骤与此类似。不同的是,码率3情况下矩阵系数取自第一存储器,码率4情况下矩阵系数取自第二存储器。码率3下运算单元运算6次,共输出4608比特编码结果;码率4下运算单元运算3次,共输出2304比特编码结果。
实际产品中,各运算单元的运算动作依次延迟一个时钟周期。即运算单元0在其移位寄存器得到矩阵系数后开始运算,延迟一个时钟周期后运算单元1的移位寄存器得到矩阵系数并开始运算,再延迟一个时钟周期后运算单元2的移位寄存器得到矩阵系数并开始运算。这是由于在同一时刻存储器中的矩阵系数只能给一个运算单元的实际规律决定的。由于每个运算单元完成一次运算需要上千个时钟周期,因此延迟的1~2个时钟周期可以忽略不计,从实际运行情况来看,三个运算单元是并行工作的。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (4)
1.一种准并行结构的LDPC编码器,其特征在于,包括至少一个存储器、三个运算单元、控制单元及选通输出单元;
所述存储器与三个运算单元均具有信号连接,存储器用于存储码率1、码率2、码率3及码率4情况时的生成矩阵;
三个运算单元分别用于先并行计算
再并行计算
以此类推,直到并行计算
每个运算单元均具有编码信息输入端,除最后一个运算单元外的其余运算单元还具有编码信息输出端;第一个运算单元的编码信息输入端与编码信息输出线连接,除第一个运算单元外的其余运算单元的编码信息输入端与前一个运算单元的编码信息输出端连接;
所述编码信息输出线及编码信息输出端均用于根据控制时钟逐位输出编码信息;
所述选通输出单元用于依次输出第一运算单元、第二运算单元及第三运算单元的运算结果;
所述控制单元用于根据控制时钟控制存储器向所述三个运算单元输出生成矩阵系数;
其中,生成矩阵为G(0 0)、…、G(0 k)、…、G(0n-1)、G(1 0)、…、G(1 k)、…、G(1 n-1)、…、G(m 0)、…、G(m k)、…、G(m n-1)分别为256×256的小矩阵;为256×n位的编码信息,s0、s1、…、sn-1分别为256维列向量;m、n均为正整数,且m+1能被3整除;
在码率1情况下,n为9,m为26或者在码率2下,n为12,m为23:控制单元控制运算的步骤为:
步骤1:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0 0)的第一列元素、G(1 0)的第一列元素、G(2 0)的第一列元素;每个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;三个运算单元各自完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元各自将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、G(2 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、G(2 1)与s1的运算,…,G(0 n-1)、G(1 n-1)、G(2n-1)与sn-1的运算;
最后,控制选通单元依次输出第一运算单元的运算结果p0、第二运算单元的运算结果p1及第三运算单元的运算结果p2;
重复上述步骤,依次计算出p3、p4及p5;…直到计算出pm-2、pm-1及pm;
在码率3情况下,n为18,m为17或者在码率4情况下,n为27,m为8:生成矩阵中G(0 k)、G(1 k)…G(m k)这m+1个小矩阵中的第j列到第j+a列为特殊列,0<k<n-1,0<j<255,a为大于或等于1的整数,且j+a<255;所述控制单元控制运算的步骤为:
步骤1:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0 0)的第一列元素、G(1 0)的第一列元素、G(2 0)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现s0的第一个元素;三个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤2:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现s0中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
各个运算单元将步骤2循环255个控制时钟,运算结果存储在第二寄存器中;如此完成G(0 0)、G(1 0)、G(2 0)与s0的运算;
以此类推,依次完成G(0 1)、G(1 1)、G(2 1)与s1的运算,…,G(0 j-1)、G(1 j-1)、G(2j-1)与sj-1的运算;
步骤3:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、G(2 k)的第一列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第一个元素;三个运算单元完成一次运算;
步骤4:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
将步骤4循环j-1个控制时钟,运算结果存储在第二寄存器中;
步骤5:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、G(2 k)的第j列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤6:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中第j个元素的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
以此类推,各个运算单元将步骤6循环a个控制时钟,运算结果存储在第二寄存器中;
步骤7:控制存储器按照控制时钟依次向三个运算单元的第一寄存器对应输出G(0 k)、G(1 k)、G(2 k)的第j+a+1列元素;各个运算单元的编码信息输出线上按照控制时钟依次出现sk的第j+a+1个元素;各个运算单元完成一次运算;运算结果存储在第二寄存器中;
步骤8:各运算单元将其第一寄存器中的矩阵系数左移一位,各个运算单元的编码信息输出线上按照控制时钟依次出现sk中第j+a+1个元素的下一个元素,各运算单元完成一次运算;运算结果存储在第二寄存器中;
以此类推,各个运算单元将步骤8循环254-j-a个控制时钟,运算结果存储在第二寄存器中;
如此完成G(0 k)、G(1 k)、G(2 k)与sk的运算;
再按照步骤1、步骤2及对步骤2的重复完成G(0 k+1)、G(1 k+1)、G(2 k+1)与sk+1的运算,…,G(0 n-1)、G(1 n-1)、G(2 n-1)与sn-1的运算;
最后,控制选通单元依次输出第一运算单元的运算结果p0、第二运算单元的运算结果p1及第三运算单元的运算结果p2;
重复上述步骤,依次计算出p3、p4及p5;…直到计算出pm-2、pm-1及pm。
2.根据权利要求1所述的一种准并行结构的LDPC编码器,其特征在于,所述运算单元包括两个256位寄存器、256个与单元以及256个异或单元;其中,第一寄存器用于接收存储器输出的256位生成矩阵系数;各与单元的第一输入端分别对应与第一寄存器的256位具有信号连接,各与单元的第二输入端均与其所在的运算单元的编码信号输入端连接;各异或单元的第一输入端与各与单元的输出端对应连接,各异或单元的第二输出端与其各自的输出端连接,各异或单元的输出端还分别对应与第二寄存器的256位具有信号连接。
3.根据权利要求1所述的一种准并行结构的LDPC编码器,其特征在于,存储器用于存储所述生成矩阵中所有非特殊小矩阵的第一列元素、生成矩阵中特殊小矩阵的第一列元素、该特殊小矩阵中特殊列的第一列元素以及特殊列后的第一列元素。
4.根据权利要求1或3所述的一种准并行结构的LDPC编码器,其特征在于,包括第一存储器及第二存储器;第一存储器用于存储码率1情况下的生成矩阵、码率2情况下的生成矩阵及码率3情况下的生成矩阵;第二存储器用于存储码率4情况下的生成矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610192031.0A CN105703783B (zh) | 2016-03-30 | 2016-03-30 | 一种准并行结构的ldpc编码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610192031.0A CN105703783B (zh) | 2016-03-30 | 2016-03-30 | 一种准并行结构的ldpc编码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105703783A CN105703783A (zh) | 2016-06-22 |
CN105703783B true CN105703783B (zh) | 2019-10-18 |
Family
ID=56218766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610192031.0A Active CN105703783B (zh) | 2016-03-30 | 2016-03-30 | 一种准并行结构的ldpc编码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105703783B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108540138B (zh) * | 2018-04-16 | 2022-05-17 | 中国科学院微电子研究所 | 一种csraa编码电路及编码器 |
US10944429B1 (en) * | 2020-01-02 | 2021-03-09 | Silicon Motion, Inc. | Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114834A (zh) * | 2007-07-31 | 2008-01-30 | 北京航空航天大学 | 一种ldpc码的编码器装置及编码方法 |
US7831883B2 (en) * | 2004-04-02 | 2010-11-09 | Nortel Networks Limited | LDPC encoders, decoders, systems and methods |
CN103023515A (zh) * | 2013-01-01 | 2013-04-03 | 苏州威士达信息科技有限公司 | 基于块列循环的cmmb中ldpc编码器和编码方法 |
CN104410427A (zh) * | 2014-12-30 | 2015-03-11 | 成都凯腾四方数字广播电视设备有限公司 | 一种ldpc编码器及其校验位生成单元 |
-
2016
- 2016-03-30 CN CN201610192031.0A patent/CN105703783B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831883B2 (en) * | 2004-04-02 | 2010-11-09 | Nortel Networks Limited | LDPC encoders, decoders, systems and methods |
CN101114834A (zh) * | 2007-07-31 | 2008-01-30 | 北京航空航天大学 | 一种ldpc码的编码器装置及编码方法 |
CN103023515A (zh) * | 2013-01-01 | 2013-04-03 | 苏州威士达信息科技有限公司 | 基于块列循环的cmmb中ldpc编码器和编码方法 |
CN104410427A (zh) * | 2014-12-30 | 2015-03-11 | 成都凯腾四方数字广播电视设备有限公司 | 一种ldpc编码器及其校验位生成单元 |
Also Published As
Publication number | Publication date |
---|---|
CN105703783A (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379086B (zh) | 低复杂度的码率兼容的5g ldpc编码方法和编码器 | |
CN102638274B (zh) | 利用向量行分组的结构化ldpc设计操作发送器的设备及方法 | |
CN104850468B (zh) | 基于校验矩阵的纠删码解码方法 | |
CN102057578B (zh) | Turbo ldpc解码 | |
CN101924565B (zh) | Ldpc编码器、解码器、系统及方法 | |
CN107786211B (zh) | 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器 | |
CN100561878C (zh) | 基于优化搜索矩阵lu分解的ldpc码编码方法 | |
CN101273532A (zh) | 解码装置及接收装置 | |
CN105227259B (zh) | 一种m序列并行产生方法和装置 | |
CN105356968A (zh) | 基于循环置换矩阵的网络编码的方法及系统 | |
CN105703783B (zh) | 一种准并行结构的ldpc编码器 | |
CN107124251A (zh) | 一种基于任意内核的极化码编码方法 | |
CN105099467B (zh) | Qc-ldpc码的编码方法及编码装置 | |
GB2447427A (en) | Address calculation and select-and-insert instructions within data processing systems | |
Collins | The subtleties and intricacies of building a constraint length 15 convolutional decoder | |
CN109075804A (zh) | 使用极化码的通信设备和通信方法 | |
CN101114834A (zh) | 一种ldpc码的编码器装置及编码方法 | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN104410427B (zh) | 一种ldpc编码器及其校验位生成单元 | |
CN106603082A (zh) | 通用型高速ldpc码编码方法及编码器 | |
CN102263948B (zh) | 用于解码编码的视频流的视频处理系统和方法 | |
CN106506010A (zh) | 一种基于dvb‑s2标准多码率兼容的ldpc编码器 | |
CN102130694A (zh) | 一种准循环低密度奇偶校验码并行编码电路 | |
CN109347489A (zh) | 一种用于通信的基于图形处理器的bch码并行译码方法 | |
CN102006088A (zh) | 一种用于降低体全息存储系统误码率的交织及纠错方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20160622 Assignee: Chengdu Huaqian Technology Co.,Ltd. Assignor: Chengdu Weingarten Quartet Digital Radio and Television Equipment Co.,Ltd. Contract record no.: X2023980053885 Denomination of invention: A quasi parallel structure LDPC encoder Granted publication date: 20191018 License type: Common License Record date: 20231226 |