CN1701515A - 解码方法、解码装置和程序 - Google Patents
解码方法、解码装置和程序 Download PDFInfo
- Publication number
- CN1701515A CN1701515A CNA2004800007382A CN200480000738A CN1701515A CN 1701515 A CN1701515 A CN 1701515A CN A2004800007382 A CNA2004800007382 A CN A2004800007382A CN 200480000738 A CN200480000738 A CN 200480000738A CN 1701515 A CN1701515 A CN 1701515A
- Authority
- CN
- China
- Prior art keywords
- matrix
- decoding
- sign indicating
- check
- indicating number
- 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
- 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
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- 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/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
-
- 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
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
-
- 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
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- 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
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
-
- 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种能将操作频率抑制在足以实现的范围内、并在抑制电路大小的同时容易地执行存储器存取控制的解码方法、解码装置和程序。利用对LDPC(低密度奇偶校验)码的校验矩阵元素执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码LDPC码。在这种情况下,变换校验矩阵可以表示为多个构成矩阵的组合,例如,该构成矩阵是P×P单位矩阵、其中单位矩阵的一个或多个元素1变成0的准单位矩阵、其中单位矩阵或准单位矩阵被循环移位的移位矩阵、作为至少两个单位矩阵、准单位矩阵和移位矩阵的和的和矩阵、以及P×P的0矩阵。校验节点计算部件(302)同时执行p个校验节点计算。可变节点计算部件(304)同时执行p个可变节点计算。
Description
技术领域
本发明涉及一种解码方法、解码装置以及程序。具体地说,本发明涉及用于对利用低密度奇偶校验码执行编码的码进行解码的解码方法和解码装置,及其程序。
背景技术
近年来,在诸如移动通信和外层空间通信等通信领域,以及在诸如陆地波或卫星数字广播等广播领域的研究已经取得了显著进步。随着这种进展,积极地进行了对使纠错编码和解码更为有效的编码理论的研究。
作为代码性能的理论极限,公知由所谓香农(C.E.Shannon)信道编码理论表示的香农极限。为了开发能显示出该香农极限附近性能的码,已经进行了对编码理论的研究。近年来,作为能显示香农极限附近性能的编码方法,例如,已经开发了通常称为“turbo编码”的技术,例如并行级联卷积码(PCCC)和串行级联卷积码(SCCC)。此外,随着该turbo编码的开发,已公知较长时间的编码方法——低密度奇偶校验码(此后称为“LDPC码”)也引起了关注。
LDPC码在R.G.Gallager的“Low Density Parity Check Codes”,Cambridge,Massachusetts:M.I.T Press,1963中首次提出。此后,在D.J.C.Mackay的“Gooderror correcting codes based on very sparse matrices”,IEEE Trans.Inf.Theory,IT-45,pp.399-431,1999中,以及在M.G.Luby,M.Mitzenmacher、M.A.Shokrollahi和D.A.Spielman的“Analysis of low density codes and improved designs usingirregular graphs”,Proceeding of ACM Symposium on Theory of Computing,pp.249-258,1998中,LDPC码重新引起关注。
从目前的这些研究中开始知道,对于LDPC码,随着码长增加,可以类似于turbo编码那样获得香农极限附近的性能。此外,由于LDPC码具有最小长度与码长成比例的性能,因此LDPC码具有块出错概率特性很好的优点,并且几乎不出现在turbo编码的解码特性中观察到的所谓误差平底(error floor)现象。
下面详细描述这种LDPC码。LDPC码是线性码,并且不需要总是二维的,但在此,假定LDPC码是二维的来进行以下描述。
LDPC码的最大特性是定义LDPC码的奇偶校验矩阵是稀疏矩阵。在此,稀疏矩阵按照矩阵元素中的1的个数很小的方式形成。如果将该稀疏校验矩阵标记为H,则其例子包括如图1所示的校验矩阵,其中每一列的汉明权重(Hamming weight)(1的个数;权重)是“3”,而每一行的汉明权重是“6”。
如上所述,由其中每一行和每一列的汉明权重都固定的校验矩阵H所定义的LDPC码,称为“规则LDPC码”。另一方面,由其中每一行和每一列的汉明权重都不固定的校验矩阵H定义的LDPC码,称为“不规则LDPC码”。
通过基于校验矩阵H产生世代矩阵G和将该世代矩阵G乘以二维信息消息来产生码字,可以实现用该LDPC码进行的编码。具体地说,用于以LDPC码执行编码的编码装置计算其中等式GHT=0始终成立的世代矩阵G,其中HT是校验矩阵H的转置矩阵。在此,当世代矩阵G是k×n矩阵时,该编码装置将该世代矩阵G乘以一个k位的信息矩阵(向量u),并产生一个n位的码字c(=uG)。发送由该编码装置产生的码字,其中值为“0”的码位映射为“+1”,而值为“1”的码位映射为“1”,并通过预定通信信道在接收方接收该码字。
另一方面,通过对所谓Tanner图的信任传播(belief propagation)的消息传送算法(message passing algorithm)来执行LDPC码的解码,其中Tanner图是由可变节点(也称为消息节点)和校验节点形成的;该消息传送算法由Gallager提出,并作为“概率解码”公知。下面,可变节点和校验节点也在合适的情况下简称为节点。
但是,在概率解码中,由于在节点间交换的消息是实数值,因此为了找到解析解,需要跟踪具有连续值的消息的概率分布。这使得解析具有很大难度。因此,Gallager提出将算法A或算法B作为解码LDPC码的算法。
通常,LDPC码的解码根据图2所示的过程来进行。在此,接收值(接收的码序列)标记为U0(u0i),从校验节点输出的消息标记为uj,从可变节点输出的消息标记为vi。在此,该消息是实数值,使得该值的“0”似然度由所谓的对数似然比表示。
在解码LDPC码时,首先,如图2所示,在步骤S11中接收到接收值U0(u0i),将消息uj初始化为0,将取整数作为迭代过程计数器的变量k初始化为0。该过程然后前进到步骤S12。在步骤S12中,基于所接收的值U0(u0i),通过执行等式(1)所示的计算(可变节点的计算)来确定消息vi。此外,根据该消息vi,通过执行等式(2)所示的计算(校验节点的计算)来确定消息uj。
在此,等式(1)和(2)中的dv和dc分别是表示校验矩阵H的垂直方向(列)和水平方向(行)的1的个数的参数,并且可以按照需要进行选择。例如,在(3,6)码的情况下,dv=3和dc=6。
在计算每一个等式(1)和(2)时,由于从输出消息的边缘(连接可变节点和校验节点的线)输入的消息不能用作和求或乘积计算的参数,因此求和或乘积计算的范围是从1到dv-1或从1到dc-1。实际上,通过事先创建如等式(3)所示的函数R(v1,v2)的表来执行等式(2)所示的计算,等式(3)由一个涉及两个输入v1和v2的输出定义,并且是连续(递归)地采用该表来定义的,如等式(4)所示。
x=2tanh-1{tanh(v1/2)tanh(v2/2)}=R(v1,v2) (3)
此外,在步骤S12,变量k增加1,该处理然后前进到步骤S13。在步骤S13,确定变量k是否大于迭代解码的预定次数N。如果在步骤S13中确定变量k不大于N,则该过程返回到步骤S12,并再次执行同样的处理。
当在步骤S13确定变量k大于N时,该过程前进到步骤S14,在此确定和输出作为解码结果的消息vi,该消息vi最后作为执行等式(5)所示计算的结果输出。这就完成了LDPC码的解码过程。
在此,与等式(1)的计算不同,采用来自连接到可变节点的所有边缘的输入消息来执行等式(5)的计算。
在这种LDPC码的解码中,例如在(3,6)码的情况下,如图3所示,在节点之间交换消息。在图3由“=”表示的节点(可变节点)中,执行等式(1)所示的计算。在由“+”表示的节点(校验节点)中,执行等式(2)所示的计算。具体地说,在算法A中,消息被形成为二维的;在由“+”表示的节点中,执行dc-1个输入消息的异或运算;在由“=”表示的节点中,对于所接收的值R,当所有的dv-1个输入消息都是不同的位值时,反向并输出该符号。
此外,近年来已经对解码LDPC码的实施方法进行了研究。在描述实施方法之前,用示意方式描述LDPC码的解码。
图4示出(3,6)LDPC码(编码率为1/2,码长为12)的奇偶校验矩阵示例。如图5所示,可以利用Tanner图写出LDPC码的奇偶校验矩阵。在图5中,由“+”表示的节点是校验节点,而由“=”表示的节点是可变节点。校验节点和可变节点分别对应于该奇偶校验矩阵的行和列。校验节点和可变节点的连接线是边缘,并对应于该校验矩阵的“1”。也就是说,当校验矩阵的第j行和第i列的元素是1时,在图5中,自顶部起第i个可变节点(“=”节点)和自顶部起第j个校验节点(“+”节点)通过边缘相互连接。该边缘表示对应于该可变节点的符号位具有对应于校验节点的约束条件。图5示出图4的校验矩阵的Tanner图。
在作为LDPC码的解码方法的和积算法(sum product algorithm)中,重复进行可变节点的计算和校验节点的计算。
在可变节点中,如图6所示,执行等式(1)的计算(可变节点计算)。也就是说,在图6中,对应于将被计算的边缘的消息vI是使用来自连接到可变节点的其余边缘的消息u1和u2以及所接收的信息u0I来计算所。类似地计算对应于其它边缘的消息。
接着,在描述校验节点计算之前,利用等式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)来重写等式(2),如等式(6)所示,其中,当x≥0时sign(x)为1,当x<0时sign(x)为-1。
此外,在x≥0的情况下,当做出(x)=ln(tanh(x/2))的定义式时,由于-1(x)=2tanh-1(e-x),因此等式(6)可以写成等式(7)。
在校验节点中,如图7所示,执行等式(7)的计算(校验节点计算)。也就是说,在图7中,对应于将被执行计算的边缘的消息uj是使用来自连接到该校验节点的其余边缘的消息v1、v2、v3、v4和v5来计算的。同样类似地计算对应于其它边缘的消息。
函数(x)也可以表示成(x)=ln((ex+1)/(ex-1)),并且当x>0时(x)=-1(x)。当将函数(x)和-1(x)作为硬件实施时,可以用LUT(查询表)来实施这些函数,并且这两者是相同的LUT。
当将和积算法作为硬件实施时,需要利用合适的电路规模并以合适的运算频率,来重复执行由等式(1)表示的可变节点计算和由等式(7)表示的校验节点计算。
作为实施解码装置的例子,首先描述在简单地通过逐个顺序地进行每个节点的计算来执行解码(全串行解码)的情况下的实施方法。
例如,假定对图8的30(行)×90(列)校验矩阵表示的码(编码率为2/3,码长为90)进行解码。图8的校验矩阵的1的个数是269;因此在Tanner图中,边缘个数变成269。在此,在图8的校验矩阵中(对图15到17(后面描述)同样如此),0由“.”表示。
图9示出用于对LDPC码解码一次的解码装置的配置示例。
在图9的解码装置中,对于解码装置运行的每一个时钟,计算对应于一个边缘的消息。
具体地说,图9的解码装置包括一个接收存储器104、两个边缘存储器100和102、一个校验节点计算器101和一个可变节点计算器103。
在图9的解码装置中,从边缘存储器100或102中逐个读取消息数据,并利用该消息数据计算对应于期望边缘的消息数据。然后,在下一个阶段中将由该计算确定的消息数据逐个存储在边缘存储器100或102中。在执行迭代解码时,通过串行级联多个图9的用于对LDPC码解码一次的解码装置,或通过重复使用图9的解码装置,来实现迭代解码。在此,例如,假定连接多个图9的解码装置。
边缘存储器100在前一阶段存储从解码装置(未示出)的可变节点计算器103提供的输出消息D100,存储是按照校验节点计算器101在随后的阶段读取这些输出消息的顺序进行的。然后,在校验节点计算的阶段,边缘存储器100按照存储的顺序、向校验节点计算器101提供消息D100作为消息输出D101。利用从边缘存储器100提供的消息D101,校验节点计算器101根据等式(7)执行计算,并在随后的阶段向边缘存储器102提供由该计算确定的消息D102。
图10示出图9的用于逐个地执行校验节点计算的校验节点计算器101的配置示例。
在图10的校验节点计算器101中,逐个读取由边缘存储器100提供的、来自对应于校验矩阵每一列的可变节点的消息vi,并利用LUT计算等式(7)中的(|vi|)。此外,在校验矩阵的一行上,对根来自对应于每一列的可变节点的消息vi所确定的(|vi|)进行积分。结果,确定了根据来自所有边缘的消息vi所确定的(|vi|)的积分值。此后,从该积分值中减去由期望为其确定消息uj的边缘所确定的、并在FIFO(FIFO存储器)中延迟的(|vi|)。结果,对于期望为其确定消息uj的边缘来说,确定了等式(7)中的∑(|vi|)。也就是说,通过从来自连接到校验节点的所有边缘的消息总和中,减去来自期望为其确定消息uj的边缘的消息,就确定了发送到期望为其确定消息uj的边缘的消息。此外,根据LUT来计算等式(7)中的-1(∑(|vi|))。同时,消息uj的符号位,也就是等式(7)中的∏sign(vi),也同样利用异或(EXOR)电路计算。按照上述方式计算等式(7),并确定消息uj。
在图10中,通过假定每个消息和符号位一起被量化为总共6位,来示出校验节点计算器101。由于图8中待处理的校验矩阵的最大行权重是9,也就是说,由于提供给校验节点的消息的最大个数是9,因此校验节点计算器101具有用于延迟9个消息((|vi|))的FIFO(先进先出)。
再参照图9,边缘存储器10在前一阶段存储从校验节点计算器101提供的消息D102,存储是按照由可变节点计算器103在随后阶段读出它们的顺序进行的。然后,在可变节点计算阶段,边缘存储器10按照存储的顺序将消息输出D102作为消息输出D103提供给可变节点计算器103。
可变节点计算器103利用由边缘存储器10提供的消息输出D103和由接收存储器104提供的接收数据D104(LDPC码的接收值),按照等式(1)来执行计算,并在随后阶段向解码装置(未示出)的边缘存储器100提供作为该计算结果所获得的消息D105。
图11示出图9的用于逐个执行可变节点计算的可变节点计算器103的配置示例。
在图11的可变节点计算器103中,逐个读取由边缘存储器102提供的、来自对应于校验矩阵每一行的校验节点的消息uj,并在校验矩阵的一列上,对来自对应于每一行的校验节点的消息进行积分,以确定积分值。此后,从该积分值中减去由期望为其确定消息vi的边缘提供的、并在FIFO中延迟的消息。此外,基于由此获得的相减值,加上接收值u0i,来执行等式(1)的计算。结果,确定了消息vi。也就是说,通过从来自连接到可变节点的所有边缘的消息总和中,减去来自期望为其确定消息vi的边缘的消息,就确定了发送到期望为其确定消息vi的边缘的消息。
同样,在图11中,与图10的情况类似,通过假定每个消息和符号位一起被量化为总共6位,来示出可变节点计算器103。此外,在图8的待处理的校验矩阵中,由于列权重的最大值是5,因此可变节点计算器103具有5个用于延迟消息((|vi|))的FIFO。当计算权重小于5的列的消息时,在FIFO处的延迟量被减少到该列的权重值。
再次参照图9,根据校验矩阵的权重向解码装置提供控制信号(未示出)。根据图9的解码装置,如果只有边缘存储器100和102以及校验节点计算器101和可变节点计算器103的FIFO的容量足够,则只能通过更改该控制信号来解码各种码。
尽管未示出,在图9的解码装置中,在解码的最后阶段,不是执行等式(1)的可变节点计算,而是执行等式(5)的计算,并将计算结果作为最终解码结果输出。
当通过重复使用图9的解码装置来解码LDPC码时,交替执行校验节点计算和可变节点计算。因此,对于图8的利用具有269个边缘的校验矩阵进行的一次解码来说,需要269×2=538个时钟。因此,例如,为了执行50次迭代解码,需要538×50=26900次时钟操作,同时接收90个码信息(接收值),这是码长,因此需要约为接收频率300倍(≌26900/90)的高速运行。在这种情况下,如果假定接收频率为几十MHz,则需要以GHz或更高的速度运行,这种实施并不容易。
此外,在例如级联50个图9的解码装置来解码LDPC码的情况下,可以同时执行多个可变节点计算和校验节点计算。例如,当第一帧正在执行可变节点计算时,第二帧执行校验节点计算,第三帧执行前一阶段的可变节点计算。在这种情况下,当接收到90个码信息时,需要计算269个边缘,解码装置需要以约为接收频率3倍(≌269/90)的频率运行,由此才足以实现。但在这种情况下,简单地说,电路规模是图9的解码装置的50倍。
下面,描述在通过同时执行所有节点的计算来执行解码(全并行解码)的情况下的解码装置的实施方法。
例如,在C.Howland和A.Blanksby的“Parallel Decoding Architectures forLow Density Parity Check Codes”,Symposium on Circuits and Systems,2001中,描述了该实施方法。
图12A至12C示出用于解码由图8的校验矩阵表示的码(编码率为2/3,码长为90)的解码装置的示例配置。图12A示出解码装置的总体配置。图12B示出图12A的解码装置的、在由虚线B围绕的上半部分图中的详细配置。图12C示出图12A的解码装置的、在由虚线C围绕的下半部分图中的详细配置。
图12A至12C的解码装置包括一个接收存储器205、两个边缘交换装置200和203、两个边缘存储器202和206、由30个校验节点计算器2011至20130组成的校验节点计算器201和由90个可变节点计算器2041至20490组成的可变节点计算器204。
在图12A至12C的解码装置中,同时从边缘存储器202或206中读取对应于269个边缘的所有消息数据,并利用该消息数据,计算对应于该269个边缘的新消息数据。然后,在随后阶段中,将作为该计算结果所确定的所有新消息数据同时存储在边缘存储器206或202中。通过重复使用图12A至12C的解码装置,实现了迭代解码。下面详细描述每个部分。
边缘存储器206在前一阶段同时存储来自可变节点计算器2041至20490的全部输出消息D2061至D20690,在下个时钟(下个时钟的定时)读取D2061至D20690作为消息D2071至D20790,并在随后阶段将它们作为消息D200(D2001至D20090)提供给边缘交换装置200。边缘交换装置200按照图8的校验矩阵重新排列(交换)由边缘存储器206提供的消息D2001至D20090的顺序,并且分别将所需的消息D2011至D20130提供给校验节点计算器2011至20130。
校验节点计算器2011至20130利用由边缘交换装置200提供的消息D2011至D20130,按照等式(7)执行计算,并将作为该计算结果所获得的消息D2021至D20230提供给边缘存储器202。
图13示出用于同时执行校验节点计算的图12A至12C的校验节点计算器201m(m=1,2,…,30)的配置示例。
在图13的校验节点计算器201m中,类似于图10的校验节点计算器101,执行等式(7)的校验节点计算,并且对所有边缘同时执行校验节点计算。
具体地说,在图13的校验节点计算器201m中,同时读取由边缘交换装置200提供的、所有来自对应于图8的校验矩阵每一列的可变节点的全部消息,并利用LUT执行等式(7)中的(|vi|)计算。此外,在校验矩阵的一行上,对根据来自对应于每一列的可变节点的消息vi所确定的(|vi|)进行积分。这使得可以确定根据来自所有边缘的消息vi所确定的(|vi|)的积分值。此后,从该积分值中减去根据期望为其确定消息uj的边缘所确定的(|vi|)。结果,对于期望为其确定消息uj的边缘来说,确定了等式(7)中的∑(|vi|)。也就是说,通过从来自连接到校验节点的所有边缘的消息总和中,减去来自期望为其确定消息uj的边缘的消息,就确定了发送到期望为其确定消息uj的边缘的消息。此外,利用LUT计算等式(7)中的-1(∑(|vi|))计算。同时,消息uj的符号位,也就是,等式(7)中的∏sign(vi),也同样利用异或电路计算。按照上述方式执行等式(7)的计算,并确定消息uj。
在图13中,通过假定每个消息与符号位一起被量化为总共6位,来示出校验节点计算器201m。图13的电路对应于一个校验节点。对于图8中待处理的校验矩阵,由于存在30行校验节点,这是校验矩阵的行数,因此图12A至12C的解码装置具有30个图13所示的校验节点计算器201m。
在图13的校验节点计算器201m中,可以同时计算9个消息。对于图8中待处理的校验矩阵的行权重,第一行的权重是8,第二行的权重是9,也就是说,存在一种提供给校验节点的消息个数是8的情况,并且存在九种消息个数是9的情况。因此,校验节点计算器2011具有类似于图13电路的、可以同时计算8个消息的电路配置,并且校验节点计算器2012至20130被配置成与图13的电路配置相同。
再参考图12A至12C,边缘存储器202在前一阶段同时存储由校验节点计算器2011至20130提供的所有输出消息D2021至D20230,接着在下一阶段将全部消息D2021至D20230作为输出消息D2031至D20330提供给边缘交换装置203。
边缘交换装置203根据图8的校验矩阵重新排列由边缘存储器202提供的消息D2031至D20330的顺序,并将必要的消息D2041至D20490分别提供给可变节点计算器2041至20490。
可变节点计算器2041至20490利用由边缘交换装置203提供的消息D2041至D20490以及由接收存储器205提供的接收数据(接收值)D2051至D20590,按照等式(1)执行计算,并在随后的阶段将作为该计算结果所获得的消息D2061至D20690提供给边缘存储器206。
图14示出用于同时执行可变节点计算的图12A至12C的可变节点计算器204p(p=1,2,…,90)的配置示例。
在图14的可变节点计算器204p中,类似于图11的可变节点计算器103,执行等式(7)的可变节点计算,并同时对所有边缘执行可变节点计算。
具体地说,在图14的可变节点计算器204p中,同时读取由边缘交换装置203提供的、来自对应于校验矩阵每一行的校验节点的全部消息uj,在校验矩阵的一列上对来自对应于每一行的校验节点的消息进行积分,并确定积分值。此后,通过从该积分值中减去由期望为其确定消息vi的边缘提供的消息,并将接收值u0i加到由此获得的相减值上,来执行等式(1)的计算。结果,确定了消息vi。也就是说,通过从来自连接到可变节点的所有边缘的消息总和中,减去来自期望为其确定消息vi的边缘的消息,确定了发送到期望为其确定消息vi的边缘的消息。
在图14中,通过假定每个消息与符号位一起被量化为6位,来示出可变节点计算器204p。图14的电路对应于一个可变节点。对于图8中待处理的校验矩阵,由于存在90列可变节点,这是校验矩阵的列数,因此图12A至12C的解码装置具有90个图14所示的可变节点计算器204p。
在图14的可变节点计算器204p中,可以同时计算5个消息。图8中待处理的校验矩阵具有列权重分别是5、3、2和1的15、45、29和1个列。因此,可变节点计算器2041至20490中的15个可变节点计算器具有与图14的电路配置相同的电路配置。其余的45、29和1个可变节点计算器具有类似于图14电路的、能同时计算3、2和1个消息的电路配置。
尽管未示出,在图12A至12C的解码装置中,类似于图9的情况,在解码的最后阶段,不是执行等式(1)的可变节点计算,而是执行等式(5)的计算并将计算结果作为解码结果输出。
根据图12A至12C的解码装置,可以在一个时钟中同时计算对应于269个边缘的所有消息。
当通过重复使用图12A至12C的解码装置来解码时,交替执行校验节点计算和可变节点计算,并可以在两个时钟中执行一次解码。因此,例如,为了执行50次解码,当接收90个码信息时,解码装置需要在2×50=100个时钟中进行操作,由此可以使用大约与接收频率相同的操作频率。总之,由于LDPC码的码长约为几千到几万,因此如果采用图12A至12C的解码装置,可能大大增加解码次数,并可以预计会改善纠错性能。
但是,在图12A至12C的解码装置中,由于并行执行对应于Tanner图的所有边缘的消息的计算,因此电路规模与码长成比例地的增长。当图12A至12C的解码装置被配置为用于对具有特定码长和特定编码率的特定校验矩阵的LDPC码执行解码时,该解码装置很难对具有其它码长和其它编码率的其他校验矩阵的LDPC码进行解码。也就是说,与图9的解码装置不同,即使只改变控制信号图12A至12C的解码装置也不能解码各种码,并且码的相关性很高。
除了图9和图12A至12C的解码装置之外,例如,在E.Yeo,P.Pakzad,B.Nikolic和V.Anantharam的“VLSI Architectures for Iterative Decoders inMagnetic Recording Channels”,IEEE Transactions on Magnetics,Vo1.37,No.2,2001年3月中,描述了用于以4个消息而不是1个消息为单位同时计算消息或同时计算所有消息的实施方法。在这种情况下,通常存在不能轻易避免同时从存储器的不同地址读出或同时写入的问题,并且存储器的存取控制很困难。
此外,提出了一种利用近似和积算法的实施方法。但在这种方法中,会出现性能恶化。
图15示出码长为90以及编码率为2/3的LDPC码的校验矩阵示例。当考虑实施用于解码由该校验矩阵表示的LDPC码的解码装置时,用于逐个计算对应于边缘的消息的解码装置或用于同时计算对应于边缘的所有消息的解码装置的设计本身并不困难。
但是,从电路规模和运行速度方面来考虑,该解码装置的实现并不容易。
当利用同时计算特定p个边缘的解码装置来解码由图15的校验矩阵表示的码时,在存储边缘数据(对应于边缘的消息)的存储器中,需要对每一行或每一列的不同位置,进行读取或写入的存取。因此,需要对每一行或每一列使用不同的FIFO。此外,对于消息来说,存在交换该消息在校验节点计算中被计算的顺序和该消息在下个可变节点计算中被使用的顺序的情况,并由此不易简单地用FIFO来实现用于存储消息的存储器。
发明内容
考虑上述情况做出了本发明。本发明的目的是在抑制用于逻辑和存储的电路规模的同时,将操作频率抑制在足以实现的范围内,并能容易地控制存储器存取。
本发明的解码方法包括:解码步骤,利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码LDPC码。
本发明的解码装置包括:解码装置,用于利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码LDPC码。
本发明的程序包括:解码步骤,利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码LDPC码。
在本发明中,利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码LDPC码。
附图说明
图1示出LDPC码的校验矩阵H。
图2是表示用于解码LDPC码的过程的流程图。
图3示出消息流。
图4示出LDPC码的校验矩阵示例。
图5示出该校验矩阵的Tanner图。
图6示出可变节点。
图7示出校验节点。
图8示出LDPC码的校验矩阵示例。
图9是表示用于逐个地执行节点计算的LDPC码解码装置的配置示例的框图。
图10是表示用于逐个计算消息的校验节点计算器的配置示例的框图。
图11是表示用于逐个计算消息的可变节点计算器的配置示例的框图。
图12A是表示用于同时执行所有节点计算的LDPC码解码装置的配置示例的框图。
图12B是表示用于同时执行所有节点计算的LDPC码解码装置的配置示例的框图。
图12C是表示用于同时执行所有节点计算的LDPC码解码装置的配置示例的框图。
图13是表示用于同时计算消息的校验节点计算器的配置示例的框图。
图14是表示用于同时计算消息的可变节点计算器的配置示例的框图。
图15示出LDPC码的校验矩阵示例。
图16示出对校验矩阵执行行置换和列置换的矩阵。
图17示出被划分为5×5单位的矩阵。
图18A是示出应用本发明的解码装置实施例的配置示例的框图。
图18B是示出应用本发明的解码装置实施例的配置示例的框图。
图18C是示出应用本发明的解码装置实施例的配置示例的框图。
图19是示出应用本发明的计算机实施例的配置示例的框图。
具体实施方式
下面参考附图详细描述应用本发明的特定实施例。
图16示出对图15的校验矩阵进行等式(8)的行置换和等式(9)的列置换的矩阵。
行置换:第6x+y+1行→第5y+x+1行 (8)
列置换:第6s+t+61列→第5t+s+61列 (9)
在等式(8)和(9)中,x、y、s和t分别是在0≤x<5、0≤y<6、0≤s<5和0≤y<6范围内的整数。
根据等式(8)的行置换,按照以下方式执行置换,即将被6除余1的第1、第7、第13、第19、第25行置换到第1、第2、第3、第4、第5行,并且将被6除余2的第2、第8、第14、第20、第26行置换到第6、第7、第8、第9、第10行。
根据等式(9)的列置换,对于第61和后面的列,按照以下方式执行置换,即将被6除余1的第61、第67、第73、第79、第85列置换到第61、第62、第63、第64、第65列,并且将被6除余2的第62、第68、第74、第80、第86列置换到第66、第67、第68、第69、第70列。
按照这种方式对图15的校验矩阵进行行和列置换而获得的矩阵是图16的校验矩阵。
显然,如果将图16的校验矩阵(此后在适当的时候称为“置换校验矩阵”)、乘以对图15的校验矩阵(此后在适当的时候称为“初始校验矩阵”)所表示的码(没有错误的原码)的码字序列进行如等式(9)的相同置换后的序列,则输出0向量。也就是说,如果初始校验矩阵标记为矩阵H,置换校验矩阵标记为矩阵H′,原码的码字序列标记为行向量c,并且通过对行向量c进行等式(9)的列置换而获得行向量标记为c′,则由于校验矩阵的性质,HcT(上标T表示转置)就成为0向量。当然,H′c′T 也成为0向量。
基于此,图16的变换校验矩阵是码c′的校验矩阵,其中码字是对其执行等式(9)的列置换的原码的码字序列c。
因此,当接收并解码用原码编码的数据时,即使对所接收的码序列进行等式(9)的列置换,利用基于图16的变换校验矩阵的解码装置对列置换后的码序列进行解码,并且对解码结果序列执行等式(2)的列置换的反置换,也与使用基于原码的解码装置情况下获得的解码结果没有差异。结果,不会出现性能恶化。也就是说,可以利用基于图16的变换校验矩阵的解码装置,来实现基于图15的初始校验矩阵的解码装置。
图17示出图16的变换校验矩阵,其中以5×5矩阵为单位提供间隔。
在图17中,校验矩阵(变换校验矩阵)由以下矩阵的组合来表示,即5×5单位矩阵、将作为该单位矩阵元素的一个或多个1替换为0的矩阵(后面在适当时称为“准单位矩阵”)、将单位矩阵或准单位矩阵循环移位的矩阵(后面在适当时称为“移位矩阵”)、两个或更多单位矩阵、准单位矩阵、移位矩阵的和(此后合适时称为“和矩阵”)以及5×5的0矩阵。
可以说图17的校验矩阵由5×5单位矩阵、准单位矩阵、移位矩阵、和矩阵以及0矩阵组成。因此,这些形成该校验矩阵的5×5矩阵,此后合适时称为“构成矩阵”。
为了对由这种P×P构成矩阵表示的校验矩阵所表示的码进行解码,可以采用同时执行P个校验节点和可变节点计算的体系结构。
图18A至18C是表示这种解码装置实施例的配置示例的框图。也就是说,图18A至18C示出利用图17的变换校验矩阵执行LDPC码解码的解码装置示例,其中图17的变换校验矩阵是通过对图15的初始校验矩阵进行行或列置换而获得的。
图18A示出解码装置的总体配置。图18B示出图18A的解码装置的、由虚线B包围的左半部分图中的详细配置。图18C示出图18A的解码装置的、由虚线C包围的右半部分图中的详细配置。
该解码装置包括用于存储边缘数据、并由6个FIFO 3001至3006组成的存储器300、用于选择FIFO 3001至3006的选择器301、校验节点计算器302、两个循环移位电路303和308、用于存储边缘数据、并由18个FIFO 3041至30418组成的存储器304、用于选择FIFO 3041至30418的选择器305、用于存储接收信息的接收数据存储器306、可变节点计算器307、解码字计算部件309、接收数据重排列部件310、和解码数据重排列部件311。
在详细描述解码装置的每个部件之前,首先描述将数据存储在用于存储边缘数据的存储器300和304中的方法。
用于存储边缘数据的存储器300包括6个FIFO 3001至3006,这个数量是将图17的变换校验矩阵的行数30除以行数5得到的。FIFO 300y(y=1,2,…,6)是按照可以同时读取或写入对应于5个边缘的消息的方式来形成的,其中数量5是构成矩阵的行数和列数。其长度(阶段数)为9,这是在图17的变换校验矩阵的行方向上的1的个数(汉明权重)的最大值。
在FIFO 3001中,按照在每一行的水平方向上相邻填充1的方式(按照忽略0的方式),存储与图17的校验矩阵(变换校验矩阵)的第1行到第5行的1的位置相对应的数据。也就是说,如果第j行和第i列标记为(j,i),则在FIFO3001的第一个元素(第一阶段)中,存储与校验矩阵的(1,1)到(5,5)的5×5单位矩阵的1的位置相对应的数据。在第二元素中,存储与校验矩阵的(1,21)到(5,25)的移位矩阵(其中5×5单位矩阵向右循环移位3次的移位矩阵)的1的位置相对应的数据。同样,在第3到第8个元素中,按照对应于该校验矩阵的方式类似存储数据。在第9个元素中,存储与校验矩阵的(1,86)到(5,90)的移位矩阵(其中5×5单位矩阵内的第一行的1替换为0并被向左循环移位1次的移位矩阵)的1的位置相对应的数据。在此,在校验矩阵的(1,86)到(5,90)的移位矩阵中,由于在第一行没有1,因此仅仅对于FIFO 3001的第一行,元素个数变成8,而其余行的元素个数变成9。
在FIFO 3002中,存储与图17的校验矩阵的第6行到第10行的1的位置相对应的数据。也就是说,在FIFO 3002的第一个元素中,存储与形成校验矩阵的(6,1)到(10,5)的和矩阵(该和矩阵是其中5×5单位矩阵向右循环移位1次的第一移位矩阵与其中5×5单位矩阵向右循环移位2次的第二移位矩阵的和)的第一移位矩阵的1的位置相对应的数据。在第二元素中,存储与形成校验矩阵的(6,1)到(10,5)的和矩阵的第二移位矩阵的1的位置相对应的数据。
具体地说,对于权重为2或更大的构成矩阵,当构成矩阵由两个或更多的权重为1的P×P单位矩阵、其中作为单位矩阵的元素的一个或多个1被0代替的准单位矩阵、以及其中单位矩阵或准单位矩阵被循环移位的移位矩阵的和的形式表示时,与权重为1的单位矩阵、准单位矩阵或移位矩阵的1的位置相对应的数据(即对应于属于单位矩阵、和矩阵或移位矩阵的边缘的消息)被存储在同一地址(在FIFO 3001至3006中的同一FIFO)。
此后,对于第3到第9个元素,按照对应于该校验矩阵的方式存储数据。对所有行,FIFO 3002的元素个数都是9。
对于FIFO 3003至3006,同样,按照对应于校验矩阵的方式存储数据,并且FIFO 3003至3006的长度都是9。
用于存储边缘数据的存储器304由18个FIFO 3041至30418形成,这个数量是校验矩阵的行数90除以构成矩阵的行数5得到的。FIFO 304x(x=1,2,…,18)是按照可以同时读取或写入对应于5个边缘的消息的方式来形成的,其中数量5是构成矩阵的行数和列数。
在FIFO 3041中,按照在每一列的垂直方向上相邻填充的方式(忽略0的方式),存储与图17的校验矩阵的第1列到第5列的1的位置相对应的数据。也就是说,在FIFO 3041的第一个元素中(第一阶段),存储与校验矩阵的(1,1)到(5,5)的5×5单位矩阵的1的位置相对应的数据。在第二元素中,存储与形成校验矩阵的(6,1)到(10,5)的和矩阵(该和矩阵是其中5×5单位矩阵向右循环移位1次的第一移位矩阵与其中5×5单位矩阵向右循环移位2次的第二移位矩阵的和)的第一移位矩阵的1的位置相对应的数据。在第三元素中,存储与形成校验矩阵的(6,1)到(10,5)的和矩阵的第二移位矩阵的1的位置相对应的数据。
具体地说,对于权重为2或更大的构成矩阵,当构成矩阵由两个或更多的权重为1的P×P单位矩阵、其中作为单位矩阵的元素的一个或多个1被0代替的准单位矩阵、以及其中单位矩阵或准单位矩阵被循环移位的移位矩阵的和的形式表示时,与权重为1的单位矩阵、准单位矩阵或移位矩阵的1的位置相对应的数据(即对应于属于单位矩阵、准单位矩阵、和矩阵或移位矩阵的边缘的消息)被存储在同一地址(在FIFO 3041至30418中的同一FIFO)。
此后,对于第4到第5个元素,按照对应于该校验矩阵的方式存储数据。FIFO 3041的元素个数(阶数)是5,这是在校验矩阵的第1列到第5列的行方向上的1的个数(汉明权重)的最大值。
同样,对于FIFO 3042至3043,按照对应于校验矩阵的方式存储数据,并且每一个的长度(阶段的数量)是5。同样,对于FIFO 3044至30412,按照对应于校验矩阵的方式存储数据,并且每一个的长度是3。同样,对于FIFO 30413至30418,按照对应于校验矩阵的方式存储数据,并且每一个的长度是2。但是,由于FIFO 30418的第一元素对应于校验矩阵的(1,86)到(5,90),并且在第5列中(校验矩阵的(1,90)到(5,90))没有1,因此没有存储数据。
下面详细描述图18A到18C的解码装置的每个部件的详细操作。
用于存储边缘数据的存储器300包括6个FIFO 3001到3006。根据关于从循环移位电路308在前一阶段提供的5个消息数据属于校验矩阵的哪一行的信息,从FIFO 3001到3006中选择用于存储数据的FIFO。在所选择的FIFO中,一起顺序存储5个消息数据D311。在读取数据时,用于存储边缘数据的存储器300从FIFO 3001中顺序读取5个消息数据D3001,并在下一阶段将它们提供给选择器301。在完成从FIFO 3001中读取消息数据后,用于存储边缘数据的存储器300还从FIFO 3002至3006中顺序读取消息数据,并将其提供给选择器301。
选择器301根据选择信号D301,从FIFO 3001到3006中的当前读取数据的FIFO中选择5个消息数据,并将它们作为消息数据D302提供给校验节点计算器302。
校验节点计算器302包括5个校验节点计算器3021至3025。校验节点计算器302利用通过选择器301提供的消息D302(D3021至D3025),根据等式(7)执行计算,并将作为该计算结果所获得的5个消息D303(D3031至D3035)提供给循环移位电路303。
校验节点计算器3021至3025每一个都配置成与图10所示的校验节点计算器101相同。
循环移位电路303根据关于循环移位多少个单位矩阵的信息(矩阵数据)D305,来循环移位由校验节点计算器302计算的5个消息D3031至D3035,其中该单位矩阵中对应边缘是校验矩阵中的初始值,并且将该结果作为消息D304提供给用于存储边缘数据的存储器304。
用于存储边缘数据的存储器304包括18个FIFO 3041至30418。根据关于循环移位电路303在前一阶段提供的5个消息数据D304属于校验矩阵的哪一行的信息,从FIFO 3041到30418中选择用于存储数据的FIFO,并且将5个消息数据D304一起顺序存储在所选择的FIFO中。此外,在读取数据时,用于存储边缘数据的存储器304从FIFO 3041中顺序读取5个消息D3061,并在下一阶段将它们提供给选择器305。在完成从FIFO 3041中读取数据后,用于存储边缘数据的存储器304从FIFO 3041至30418中顺序读取消息数据,并将其提供给选择器305。
选择器305根据选择信号D307,从FIFO 3041到30418中当前读取数据的FIFO中选择5个消息数据,并将它们作为消息数据D308提供给可变节点计算器307和解码字计算部件309。
另一方面,接收数据重排列部件310通过执行等式(9)的列置换,重新排列通过通信信道接收的LDPC码的码序列(接收数据)D313,并将其作为码序列D314提供给接收数据存储器306。接收数据存储器306已经根据从接收数据重排列部件310提供的码序列D314计算出接收LLR(对数似然比),它将5个所计算的接收LLR作为数据D309提供给可变节点计算器307和解码字计算部件309。
可变节点计算器307包括5个可变节点计算器3071至3075。可变节点计算器307利用通过选择器305提供的消息D308(D3081至D3085)和从接收数据存储器306提供的5个接收LLR D309,根据等式(1)执行计算,并将作为该计算结果所获得的消息D310(D3101至D3105)提供给循环移位电路308。
在此,可变节点计算器3071至3075每一个都配置成与图11所示的可变节点计算器103相同。
循环移位电路308根据关于循环移位多少个其中对应边缘是校验矩阵的初始值的单位矩阵的信息,循环移位由可变节点计算器307计算的消息D3101至D3105,并将该结果作为消息D311提供给用于存储边缘数据的存储器300。
作为将上述操作循环一次的结果,可以执行一次对LDPC码的解码。在图18A至18C的解码装置对LDPC码解码预定次数之后,在解码字计算部件309和解码数据重排列部件311中,确定并输出最终解码结果。
具体地说,解码字计算部件309包括5个解码字计算部件3091至3095。在多次解码的最后阶段,利用从选择器305输出的5个消息D308(D3081至D3085)和从接收数据存储器306提供的5个接收LLR D309,解码字计算部件309根据等式(5)计算解码结果(解码字),并将由此获得的解码数据D315提供给解码数据重排列部件311。
解码数据重排列部件311通过对解码字计算部件309提供的解码数据D315进行等式(9)的列置换的反置换,重新排列价码数据D315的顺序,并将其作为最终解码结果D316输出。
在存储器的存储期间(当数据存储在用于存储边缘数据的存储器300和304中),对于缺少边缘数据(对应于边缘的消息)的部分,不存储消息。在节点计算期间(在校验节点计算器302的校验节点计算期间和可变节点计算器307的可变节点计算期间),不执行计算。
如果桶式移位器用于循环移位电路303和308,则可以在减小电路规模的同时实现期望的操作。
在上面的描述中,FIFO用于存储边缘数据(用于存储边缘数据的存储器300和304由FIFO形成),但是可以采用RAM来代替FIFO。在这种情况下,RAM需要可以同时读取p个边缘信息(对应于边缘的消息)的位宽和字数—边缘总数/p。对于写入RAM来说,确定在下次读取时在哪个位置读取被写入的数据,并将数据写入该位置。对于读取RAM来说,从地址起始处开始顺序读取数据。如果用RAM代替FIFO,则不再需要选择器301和305。
当FIFO和RAM的物理位宽不足时,通过利用多个RAM提供相同的控制信号,可以在逻辑上将这些RAM假定为一个RAM。
在上述情况下,为了简化描述,将其中p是5的情况,也就是形成校验矩阵的构成矩阵的行数和列数是5的情况作为示例。但是,构成矩阵的行数和列数p不必总是5,还可以根据校验矩阵取不同的值。例如,p可以是360或392。
在该实施例中,尽管采用码长为90、编码率为2/3的LDPC码,LDPC码的码长和编码率可以是任意值。例如,当构成矩阵的行数和列数p等于5时,如果边缘总数小于或等于5,则仅仅通过改变控制信号,就能利用图18A至18C的解码装置,来解码任意码长和编码率的LDPC码。
用于特定LDPC码的解码装置—该特定LDPC码满足构成矩阵的行数和列数p是预定值并且边缘总数小于或等于预定值的条件,可以解码满足该条件的任意码长、任意编码率的LDPC码。
如上所述,对校验矩阵(初始校验矩阵)执行行置换和列置换中的一种或两种,从而将该校验矩阵变换为可以由如下矩阵的组合表示的校验矩阵(变换校验矩阵),即P×P单位矩阵、其中作为单位矩阵元素的一个或多个1被0代替的准单位矩阵、其中单位矩阵或准单位矩阵被循环移位的移位矩阵、作为两个或多个单位矩阵、准单位矩阵和移位矩阵的和的和矩阵、以及P×P的0矩阵,也就是由构成矩阵的组合表示的校验矩阵(变换校验矩阵)。因此,为了解码LDPC码,可以采用同时执行P个校验节点计算和P个可变节点计算的体系结构。结果,通过同时执行P个结点计算,可以将操作频率抑制在可行范围内。由此,在执行大数量的迭代解码时,可以防止在写入和读取存储器(FIFO和RAM)期间同时存取不同地址的情况。
也就是说,通过执行校验矩阵的上述行置换和列置换中的一种或两种,可以同时执行P个校验节点计算和P个可变节点计算。此外,通过按照这种方式同时执行P个节点计算,可以将操作频率抑制在可行范围内。由此,在执行大数量的迭代解码时,可以防止在写入和读取存储器(FIFO和RAM)期间同时存取不同地址的情况。
在解码由图17的校验矩阵(变换校验矩阵)表示的LDPC码时,由于对于每个校验节点和每个可变节点,有可能以每5个边缘为单位对269个边缘进行计算,因此,对于一次解码来说,解码装置需要执行269/5×2≌108个时钟操作。因此,为了执行50次解码,在接收到90个码信息时,解码装置需要执行108×50=5400个时钟操作,并因此可以采用大约为接收频率60倍的操作频率。因此,根据图18A至18C的解码装置,当与逐个执行各节点计算的图9的解码装置比较时,只需要1/5的操作频率。从电路规模方面来看,由于存储器的大小相同,即使逻辑电路便得较大,对整体的影响还是很小。
总之,由于LDPC码的码长是几千到几万,因此采用具有值p为几百这样大小的矩阵。在这种情况下,本发明采用的解码装置具有更大的优势。
如上所述,在抑制了逻辑和存储两者的电路规模的同时,可以将操作频率抑制在可行范围内,并方便地执行存储器存取控制。
从LDPC码的特性来看,即使对校验矩阵执行行置换和列置换,也不会改变码的性能。因此,对于对应于校验矩阵的LDPC码,其中根据该校验矩阵通过行置换和列置换获得由构成矩阵的组合所表示的变换校验矩阵,即使该LDPC码具有任意码长和任意编码长度,也不会发生性能恶化,并且容易实施,解码的效率高。
此外,由于根据本发明的解码装置忠实地实施和积算法,因此不会出现消息量化以外的解码损失。
由上述观点,利用根据本发明的解码装置,可以实现高性能的解码。
当校验矩阵不是构成矩阵的行数和列数p的倍数时,还可以通过将全为0的元素分配给该校验矩阵以外的部分,从而将该校验矩阵假定为p的倍数来应用本发明。
接着,上述一系列过程可以由硬件实施,也可以由软件执行。在该系列过程由软件执行的情况下,形成该软件的程序安装在通用计算机等中。
因此,图19示出安装了执行上述一系列过程序的程序的计算机实施例的配置示例。
该程序可以被预先记录在用作计算机中包含的记录介质的硬盘405和ROM 403中。
或者,该程序可以临时和永久存储(记录)在可移动记录介质411中,例如软盘、CD-ROM(致密盘只读存储器)、MO(磁光)盘、DVD(数字多用盘)、磁盘或半导体存储器。这种可移动记录介质411可以作为所谓的软件包来提供。
除了从上述的可移动记录介质411安装到计算机中之外,还可以按照无线方式通过用于数字卫星广播的人造卫星,从下载站点传送程序,或者通过经诸如LAN(局域网)或因特网的网络连接到计算机的有线方式传送程序。在计算机中,可以在通信部件408中接收到按照这种方式传送的程序,该程序被按照到其中包含的硬盘405中。
计算机包含CPU(中央处理单元)402。输入/输出接口410通过总线401连接到CPU 402。当用户通过操作包括键盘、鼠标、麦克风等等的输入部件407,经输入/输出接口410输入指令时,CPU 402按照该指令执行存储在ROM(只读存储器)403中的程序。或者,CPU 402将以下程序装载到RAM(随机存取存储器)404中,并执行该程序,即存储在硬盘405中的程序,从卫星或网络传送的、由通信部件408接收并安装在硬盘405中的程序,或从装载在驱动器409中的可移动记录介质411读取并安装到硬盘405中的程序。结果,CPU 402执行根据上述流程的处理,或根据上述框图的处理。然后,例如,CPU 402通过输入/输出接口410,从包括LCD(液晶显示器)、扬声器等的输出部件406输出处理结果,或将其从通信部件408发送出去,并按照需要将其记录在硬盘405中。
在该说明书中,不需要按照流程图的书写顺序,来顺序执行用于写入使得计算机执行各种处理的程序的处理步骤。而且,这些步骤可以同时或分别执行(例如并行处理或基于对象的处理)。
程序可以由一个计算机处理,也可以由多个计算机按分布方式处理。此外,程序可以传送到远程计算机中,并由该计算机处理。
工业可利用性
如上所述,根据本发明,在抑制电路规模的同时,可将操作频率抑制在足够可行的范围内,还可以方便地执行存储器存取控制。
Claims (20)
1.一种解码LDPC(低密度奇偶校验)码的解码方法,所述解码方法包括:
解码步骤,利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码所述LDPC码。
2.根据权利要求1所述的解码方法,其中,利用P×P单位矩阵、其中作为单位矩阵元素的一个或多个1被0代替的准单位矩阵、其中所述单位矩阵或所述准单位矩阵被循环移位的移位矩阵、作为两个或多个所述单位矩阵、所述准单位矩阵和所述移位矩阵的和的和矩阵、以及P×P的0矩阵作为构成矩阵,所述变换校验矩阵由多个所述构成矩阵的组合表示。
3.根据权利要求1所述的解码方法,进一步包括:
码序列置换步骤,对所述接收的LDPC码的码序列执行与对所述初始校验矩阵执行的列置换相同的列置换,并输出置换的码序列,
其中,在所述解码步骤中,利用所述变换校验矩阵和所述置换的码序列来解码所述码序列。
4.一种用于解码LDPC(低密度奇偶校验)码的解码装置,所述解码装置包括:
解码装置,用于利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码所述LDPC码。
5.根据权利要求4所述的解码装置,其中,利用P×P单位矩阵、其中作为单位矩阵元素的一个或多个1被0代替的准单位矩阵、其中所述单位矩阵或所述准单位矩阵被循环移位的移位矩阵、作为两个或多个所述单位矩阵、所述准单位矩阵和所述移位矩阵的和的和矩阵、以及P×P的0矩阵作为构成矩阵,所述变换校验矩阵由多个所述构成矩阵的组合表示。
6.根据权利要求5所示的解码装置,其中,所述解码装置包括:
校验节点计算装置,用于同时执行p个校验节点计算以便解码所述LDPC码;以及
可变节点计算装置,用于同时执行p个可变节点计算以便解码所述LDPC码。
7.根据权利要求6所述的解码装置,其中,所述校验节点计算装置包括p个用于执行校验节点计算的校验节点计算器,以及
所述可变节点计算装置包括p个用于执行可变节点计算的可变节点计算器。
8.根据权利要求6所述的解码装置,其中,所述解码装置还包括消息存储装置,用于同时读取和写入作为p个校验节点或p个可变节点的所述计算结果的、对应于p个边缘的消息数据。
9.根据权利要求8所述的解码装置,其中,所述消息存储装置按照在行方向上相邻填充所述变换校验矩阵的1的方式,存储在校验节点计算期间读取的对应于边缘的消息数据。
10.根据权利要求8所述的解码装置,其中,所述消息存储装置按照在列方向上相邻填充所述变换校验矩阵的1的方式,存储在可变节点计算期间读取的对应于边缘的消息数据。
11.根据权利要求8所述的解码装置,其中,当表示所述变换校验矩阵的、权重为2或更多的构成矩阵被表示为权重为1的单位矩阵、准单位矩阵或移位矩阵的和的形式时,所述消息存储装置在同一地址存储对应于属于权重为1的单位矩阵、准单位矩阵或移位矩阵的p个边缘的消息。
12.根据权利要求8所述的解码装置,其中,所述消息存储装置包括行数/p个FIFO和列数/p个FIFO,并且
所述行数/p个FIFO和所述列数/p个FIFO各具有对应于所述校验矩阵的行和列的权重的字数。
13.根据权利要求8所述的解码装置,其中,所述消息存储装置包括RAM(随机存取存储器),并且
所述RAM按照以读出序列来相邻填充的方式存储所述消息数据,并以存储位置序列读取所述消息数据。
14.根据权利要求6所述的解码装置,其中,所述解码装置还包括接收信息存储装置,用于存储所接收的信息和同时读取p个接收信息。
15.根据权利要求14所述的解码装置,其中,所述接收信息存储装置按照能以所述可变节点计算所需的顺序读取所述接收信息的方式来存储所述接收信息。
16.根据权利要求6所述的解码装置,其中,所述解码装置还包括循环移位装置,用于循环移位作为所述P个校验节点计算或所述P个可变节点计算的结果所获得的消息。
17.根据权利要求16所述的解码装置,其中,所述循环移位装置包括桶式移位器。
18.根据权利要求4所述的解码装置,还包括码序列置换装置,用于对所述接收的LDPC码的码序列执行与对所述初始校验矩阵执行的列置换相同的列置换,并输出置换的码序列,
其中,所述解码装置利用所述变换校验矩阵和所述置换的码序列来解码所述码序列。
19.根据权利要求18所述的解码装置,还包括反置换装置,用于对所述解码装置的输出执行对所述初始校验矩阵执行的列置换的反置换,并输出最终的解码结果。
20.一种可以使计算机解码LDPC(低密度奇偶校验)码的程序,所述程序包括:
解码步骤,利用对初始校验矩阵执行行置换和列置换中的一种或两种所获得的变换校验矩阵来解码所述LDPC码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003133942A JP4224777B2 (ja) | 2003-05-13 | 2003-05-13 | 復号方法および復号装置、並びにプログラム |
JP133942/2003 | 2003-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1701515A true CN1701515A (zh) | 2005-11-23 |
CN100472971C CN100472971C (zh) | 2009-03-25 |
Family
ID=33447138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800007382A Expired - Fee Related CN100472971C (zh) | 2003-05-13 | 2004-04-19 | 解码方法与解码装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7318186B2 (zh) |
EP (1) | EP1521372A4 (zh) |
JP (1) | JP4224777B2 (zh) |
KR (1) | KR101158919B1 (zh) |
CN (1) | CN100472971C (zh) |
WO (1) | WO2004102810A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154948A (zh) * | 2006-07-31 | 2008-04-02 | 艾格瑞系统有限公司 | 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备 |
CN101414834B (zh) * | 2007-10-19 | 2011-10-19 | 索尼株式会社 | 解码设备和解码方法 |
CN101442317B (zh) * | 2007-10-19 | 2012-07-11 | 索尼株式会社 | 数据解码装置和方法、发送/接收系统、接收装置和方法 |
CN101689865B (zh) * | 2007-07-04 | 2012-10-24 | Nxp股份有限公司 | 置乱式ldpc解码 |
CN102904583A (zh) * | 2007-01-24 | 2013-01-30 | 高通股份有限公司 | 对可变大小分组进行ldpc编码和译码 |
CN101632230B (zh) * | 2007-03-09 | 2014-02-19 | 高通股份有限公司 | 低密度奇偶校验(ldpc)码的编码和解码 |
US9214960B2 (en) | 2011-01-18 | 2015-12-15 | Samsung Electronics Co., Ltd | Apparatus and method for transmitting and receiving data in communication/broadcasting system |
CN106464268A (zh) * | 2014-01-07 | 2017-02-22 | 南布列塔尼大学 | 非二进制ldpc码的解码 |
Families Citing this family (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7409628B2 (en) * | 2002-08-15 | 2008-08-05 | Broadcom Corporation | Efficient design to implement LDPC (Low Density Parity Check) decoder |
US7165205B2 (en) * | 2004-05-14 | 2007-01-16 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
EP1934824A4 (en) * | 2004-06-25 | 2010-01-06 | Runcom Technologies Ltd | MEHRRATEN-LDPC-CODESYSTEM UND -VERFAHREN |
US7760880B2 (en) * | 2004-10-13 | 2010-07-20 | Viasat, Inc. | Decoder architecture system and method |
KR100703271B1 (ko) | 2004-11-23 | 2007-04-03 | 삼성전자주식회사 | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 |
KR100641052B1 (ko) * | 2004-12-08 | 2006-11-02 | 한국전자통신연구원 | Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법 |
WO2006062351A1 (en) * | 2004-12-08 | 2006-06-15 | Electronics And Telecommunications Research Institute | Ldpc encoder and decoder and ldpc encoding and decoding methods |
US7343548B2 (en) * | 2004-12-15 | 2008-03-11 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US7441178B2 (en) | 2005-02-24 | 2008-10-21 | Keyeye Communications | Low complexity decoding of low density parity check codes |
US7634710B2 (en) * | 2005-03-25 | 2009-12-15 | Teranetics, Inc. | Efficient decoding |
JP4519694B2 (ja) * | 2005-03-29 | 2010-08-04 | 財団法人北九州産業学術推進機構 | Ldpc符号検出装置及びldpc符号検出方法 |
JP4595650B2 (ja) * | 2005-04-25 | 2010-12-08 | ソニー株式会社 | 復号装置および復号方法 |
JP4622654B2 (ja) * | 2005-04-25 | 2011-02-02 | ソニー株式会社 | 復号装置および復号方法 |
JP4617985B2 (ja) * | 2005-04-25 | 2011-01-26 | ソニー株式会社 | 符号装置および符号化方法 |
FR2890804B1 (fr) | 2005-09-12 | 2008-04-04 | St Microelectronics Sa | Traitement de blocs dans un dispositif de decodage par blocs |
JP4293172B2 (ja) * | 2005-09-13 | 2009-07-08 | ソニー株式会社 | 復号装置および復号方法 |
JP4320418B2 (ja) * | 2005-09-26 | 2009-08-26 | 日本電気株式会社 | 復号装置および受信装置 |
US20070089019A1 (en) * | 2005-10-18 | 2007-04-19 | Nokia Corporation | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages |
US20070089016A1 (en) * | 2005-10-18 | 2007-04-19 | Nokia Corporation | Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes |
KR101196917B1 (ko) | 2005-12-01 | 2012-11-05 | 톰슨 라이센싱 | 저밀도 패리티 체크 코딩된 신호를 디코딩하기 위한 장치및 방법 |
KR101187070B1 (ko) | 2006-04-21 | 2012-09-27 | 엘지전자 주식회사 | 패리티 검사 행렬을 이용하여 부호화하는 방법 |
JP4743156B2 (ja) | 2007-04-27 | 2011-08-10 | ソニー株式会社 | 復号装置 |
ES2398851T3 (es) | 2007-10-30 | 2013-03-22 | Sony Corporation | Aparato y método de procesamiento de datos |
TWI390856B (zh) | 2007-11-26 | 2013-03-21 | Sony Corp | Data processing device and data processing method |
TWI538415B (zh) | 2007-11-26 | 2016-06-11 | Sony Corp | Data processing device and data processing method |
TWI410055B (zh) | 2007-11-26 | 2013-09-21 | Sony Corp | Data processing device, data processing method and program product for performing data processing method on computer |
NZ585421A (en) | 2007-11-26 | 2013-03-28 | Sony Corp | An apparatus for encoding using a low-density parity check code |
TWI459724B (zh) | 2007-11-26 | 2014-11-01 | Sony Corp | Data processing device and data processing method |
TWI497920B (zh) | 2007-11-26 | 2015-08-21 | Sony Corp | Data processing device and data processing method |
TW200926612A (en) * | 2007-12-07 | 2009-06-16 | Univ Nat Chiao Tung | Multi-mode parallelism data exchange method and its device |
US8166364B2 (en) | 2008-08-04 | 2012-04-24 | Seagate Technology Llc | Low density parity check decoder using multiple variable node degree distribution codes |
US8261166B2 (en) * | 2008-09-17 | 2012-09-04 | Seagate Technology Llc | Node processor for use with low density parity check decoder using multiple variable node degree distribution codes |
JP5542140B2 (ja) * | 2008-09-26 | 2014-07-09 | エージェンシー フォー サイエンス,テクノロジー アンド リサーチ | 復号化回路及び符号化回路 |
JP5320964B2 (ja) * | 2008-10-08 | 2013-10-23 | ソニー株式会社 | サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム |
US8392789B2 (en) * | 2009-07-28 | 2013-03-05 | Texas Instruments Incorporated | Method and system for decoding low density parity check codes |
JP5500379B2 (ja) | 2010-09-03 | 2014-05-21 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
JP5505725B2 (ja) | 2010-09-16 | 2014-05-28 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
JP5601182B2 (ja) | 2010-12-07 | 2014-10-08 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
JP5630278B2 (ja) | 2010-12-28 | 2014-11-26 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
WO2012099398A2 (en) * | 2011-01-18 | 2012-07-26 | Samsung Electronics Co., Ltd. | Apparatus and method for transmittng and receiving data in communication/broadcasting system |
JP5630283B2 (ja) | 2011-01-19 | 2014-11-26 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5630282B2 (ja) | 2011-01-19 | 2014-11-26 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5672489B2 (ja) | 2011-02-08 | 2015-02-18 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5637393B2 (ja) | 2011-04-28 | 2014-12-10 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5648852B2 (ja) | 2011-05-27 | 2015-01-07 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5664919B2 (ja) * | 2011-06-15 | 2015-02-04 | ソニー株式会社 | データ処理装置、及び、データ処理方法 |
JP5536155B2 (ja) * | 2012-08-03 | 2014-07-02 | トムソン ライセンシング | 誤り訂正を実行する装置及び方法 |
RU2654132C2 (ru) | 2013-02-08 | 2018-05-16 | Сони Корпорейшн | Устройство обработки данных и способ обработки данных |
JPWO2014123014A1 (ja) | 2013-02-08 | 2017-02-02 | サターン ライセンシング エルエルシーSaturn Licensing LLC | データ処理装置、及びデータ処理方法 |
US20150046766A1 (en) | 2013-02-08 | 2015-02-12 | Sony Corporation | Data processing apparatus and data processing method |
US20150046765A1 (en) | 2013-02-08 | 2015-02-12 | Sony Corporation | Data processing apparatus and data processing method |
WO2014123016A1 (ja) | 2013-02-08 | 2014-08-14 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
KR102240220B1 (ko) | 2013-05-02 | 2021-04-13 | 소니 주식회사 | 데이터 처리 장치 및 데이터 처리 방법 |
RU2658791C2 (ru) | 2013-05-02 | 2018-06-22 | Сони Корпорейшн | Устройство обработки данных и способ обработки данных |
WO2014178299A1 (ja) | 2013-05-02 | 2014-11-06 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
BR112015027153B1 (pt) | 2013-05-02 | 2021-12-14 | Sony Corp | Dispositivo e método de processamento de dados |
BR112015027135B1 (pt) | 2013-05-02 | 2022-02-15 | Sony Corporation | Dispositivo e método de processamento de dados |
CN103297190B (zh) * | 2013-05-11 | 2016-05-25 | 哈尔滨工业大学深圳研究生院 | 面向深空通信的码辅助载波相位同步系统及方法 |
MX338477B (es) | 2013-06-12 | 2016-04-18 | Sony Corp | Aparato de procesamiento de datos y metodo de procesamiento de datos. |
KR101476051B1 (ko) * | 2013-09-06 | 2014-12-23 | 세종대학교산학협력단 | Ldpc 엔코더 및 그의 동작 방법 |
CN105556853A (zh) | 2013-09-20 | 2016-05-04 | 索尼公司 | 数据处理装置和数据处理方法 |
CN105531937A (zh) | 2013-09-20 | 2016-04-27 | 索尼公司 | 数据处理装置和数据处理方法 |
US20160204800A1 (en) | 2013-09-20 | 2016-07-14 | Sony Corporation | Data processing device and data processing method |
KR101752331B1 (ko) | 2013-09-20 | 2017-06-29 | 소니 주식회사 | 데이터 처리 장치 및 데이터 처리 방법 |
CA2924027A1 (en) | 2013-09-24 | 2015-04-02 | Sony Corporation | Data processing device and data processing method |
WO2015045900A1 (ja) | 2013-09-26 | 2015-04-02 | ソニー株式会社 | データ処理装置、及びデータ処理方法 |
EP3051705A4 (en) | 2013-09-26 | 2017-06-21 | Sony Corporation | Data processing device and data processing method |
MX2016003552A (es) | 2013-09-26 | 2016-07-21 | Sony Corp | Dispositivo de procesamiento de datos y metodo de procesamiento de datos. |
KR102178262B1 (ko) | 2014-07-08 | 2020-11-12 | 삼성전자주식회사 | 패리티 검사 행렬 생성 방법, 그를 이용한 부호화 장치, 부호화 방법, 복호화 장치 및 복호화 방법 |
JP6885028B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
JP6885026B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
JP6885029B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
JP6885027B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
JP6885030B2 (ja) | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
US10218384B2 (en) | 2016-12-01 | 2019-02-26 | Sandisk Technologies Llc | ECC decoder with multiple decoding modes |
US10565040B2 (en) | 2016-12-01 | 2020-02-18 | Western Digital Technologies, Inc. | ECC decoder with selective component disabling based on decoding message resolution |
US10530393B2 (en) | 2016-12-01 | 2020-01-07 | Western Digital Technologies, Inc. | Configurable ECC decoder |
JP6891519B2 (ja) | 2017-02-06 | 2021-06-18 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
JP6880792B2 (ja) | 2017-02-06 | 2021-06-02 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
JP6880791B2 (ja) | 2017-02-06 | 2021-06-02 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
JP6852427B2 (ja) | 2017-02-06 | 2021-03-31 | ソニー株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
JP6852428B2 (ja) | 2017-02-06 | 2021-03-31 | ソニー株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
WO2018150937A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
WO2018150939A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
WO2018150935A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
WO2018150936A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
WO2018150938A1 (ja) | 2017-02-20 | 2018-08-23 | ソニー株式会社 | 送信方法、及び、受信装置 |
JP6930375B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP6930377B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP6930376B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP6930372B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP6930373B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP6930374B2 (ja) | 2017-10-31 | 2021-09-01 | ソニーグループ株式会社 | 送信装置及び送信方法 |
JP7077629B2 (ja) | 2018-01-18 | 2022-05-31 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
WO2019142682A1 (ja) | 2018-01-18 | 2019-07-25 | ソニー株式会社 | 送信方法及び受信装置 |
JP7077630B2 (ja) | 2018-01-18 | 2022-05-31 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
TWI714248B (zh) * | 2019-09-09 | 2020-12-21 | 新唐科技股份有限公司 | 記憶體控制器與資料保護方法 |
EP4372994A1 (en) | 2021-07-12 | 2024-05-22 | Sony Group Corporation | Transmission device, transmission method, reception device, and reception method |
WO2023079986A1 (ja) | 2021-11-02 | 2023-05-11 | ソニーグループ株式会社 | 送信装置、送信方法、受信装置、及び、受信方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539367B1 (en) * | 2000-05-26 | 2003-03-25 | Agere Systems Inc. | Methods and apparatus for decoding of general codes on probability dependency graphs |
JP4389373B2 (ja) | 2000-10-11 | 2009-12-24 | ソニー株式会社 | 2元巡回符号を反復型復号するための復号器 |
TW567721B (en) * | 2001-04-05 | 2003-12-21 | Sanyo Electric Co | Image reproducing device |
US6567465B2 (en) * | 2001-05-21 | 2003-05-20 | Pc Tel Inc. | DSL modem utilizing low density parity check codes |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US6938196B2 (en) * | 2001-06-15 | 2005-08-30 | Flarion Technologies, Inc. | Node processors for use in parity check decoders |
US7246304B2 (en) * | 2001-09-01 | 2007-07-17 | Dsp Group Inc | Decoding architecture for low density parity check codes |
US7178080B2 (en) * | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US6961888B2 (en) * | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
US6785863B2 (en) * | 2002-09-18 | 2004-08-31 | Motorola, Inc. | Method and apparatus for generating parity-check bits from a symbol set |
KR20040036460A (ko) | 2002-10-26 | 2004-04-30 | 삼성전자주식회사 | Ldpc 복호화 장치 및 그 방법 |
US7058873B2 (en) * | 2002-11-07 | 2006-06-06 | Carnegie Mellon University | Encoding method using a low density parity check code with a column weight of two |
US6957375B2 (en) * | 2003-02-26 | 2005-10-18 | Flarion Technologies, Inc. | Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation |
KR100809619B1 (ko) * | 2003-08-26 | 2008-03-05 | 삼성전자주식회사 | 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법 |
JP4558638B2 (ja) * | 2005-12-15 | 2010-10-06 | 富士通株式会社 | 符号器および復号器 |
-
2003
- 2003-05-13 JP JP2003133942A patent/JP4224777B2/ja not_active Expired - Lifetime
-
2004
- 2004-04-19 KR KR1020057000592A patent/KR101158919B1/ko active IP Right Grant
- 2004-04-19 CN CNB2004800007382A patent/CN100472971C/zh not_active Expired - Fee Related
- 2004-04-19 EP EP04728245A patent/EP1521372A4/en not_active Ceased
- 2004-04-19 WO PCT/JP2004/005551 patent/WO2004102810A1/ja active Application Filing
- 2004-04-19 US US10/521,191 patent/US7318186B2/en not_active Expired - Lifetime
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154948A (zh) * | 2006-07-31 | 2008-04-02 | 艾格瑞系统有限公司 | 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备 |
CN101154948B (zh) * | 2006-07-31 | 2015-12-16 | 艾格瑞系统有限责任公司 | 解码代码的方法和解码器 |
CN102904583A (zh) * | 2007-01-24 | 2013-01-30 | 高通股份有限公司 | 对可变大小分组进行ldpc编码和译码 |
CN101601187B (zh) * | 2007-01-24 | 2014-08-20 | 高通股份有限公司 | 对可变大小分组进行ldpc编码和译码 |
CN101632230B (zh) * | 2007-03-09 | 2014-02-19 | 高通股份有限公司 | 低密度奇偶校验(ldpc)码的编码和解码 |
CN101689865B (zh) * | 2007-07-04 | 2012-10-24 | Nxp股份有限公司 | 置乱式ldpc解码 |
CN101414834B (zh) * | 2007-10-19 | 2011-10-19 | 索尼株式会社 | 解码设备和解码方法 |
CN101442317B (zh) * | 2007-10-19 | 2012-07-11 | 索尼株式会社 | 数据解码装置和方法、发送/接收系统、接收装置和方法 |
US9214960B2 (en) | 2011-01-18 | 2015-12-15 | Samsung Electronics Co., Ltd | Apparatus and method for transmitting and receiving data in communication/broadcasting system |
CN106464268A (zh) * | 2014-01-07 | 2017-02-22 | 南布列塔尼大学 | 非二进制ldpc码的解码 |
CN106464268B (zh) * | 2014-01-07 | 2020-03-10 | 南布列塔尼大学 | 用于管理校验节点计算装置的方法以及实施该方法的装置和软件 |
Also Published As
Publication number | Publication date |
---|---|
EP1521372A4 (en) | 2008-07-02 |
US20050278604A1 (en) | 2005-12-15 |
US7318186B2 (en) | 2008-01-08 |
KR20060007361A (ko) | 2006-01-24 |
CN100472971C (zh) | 2009-03-25 |
EP1521372A1 (en) | 2005-04-06 |
KR101158919B1 (ko) | 2012-06-21 |
JP4224777B2 (ja) | 2009-02-18 |
JP2004343170A (ja) | 2004-12-02 |
WO2004102810A1 (ja) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1701515A (zh) | 解码方法、解码装置和程序 | |
EP1624581B1 (en) | Decoding device, decoding method, and program | |
CN1547806A (zh) | 使用结构化奇偶校验矩阵的低密度奇偶校验码的编码 | |
JP4702632B2 (ja) | 符号化方法および符号化装置、並びにプログラム | |
CN101080874A (zh) | 纠错编码装置以及在其中使用的纠错编码方法 | |
JP4622654B2 (ja) | 復号装置および復号方法 | |
CN1830149A (zh) | 用于对低密度奇偶校验码编码的方法 | |
CN1838542A (zh) | 解码设备和方法以及程序 | |
CN1674446A (zh) | 根据低密度奇偶校验码系统实现的解码单元和预处理单元 | |
CN101032084A (zh) | 低密度奇偶校验(ldpc)解码器 | |
CN101079638A (zh) | 用于降低复杂度的低密度奇偶校验解码的系统和方法 | |
CN1993892A (zh) | 用于编码和解码块低密度奇偶校验码的装置和方法 | |
CN1836394A (zh) | 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法 | |
CN1608347A (zh) | 低密度奇偶校验码用检查矩阵生成方法 | |
CN1701516A (zh) | 校验矩阵生成方法和校验矩阵生成装置 | |
CN1941635A (zh) | 一种非正则低密度奇偶校验码的构造方法 | |
CN1639985A (zh) | Ldpc码用检查矩阵生成方法及检查矩阵生成装置 | |
CN1993917A (zh) | 编码/译码具有可变块长度的块低密奇偶校验码的装置和方法 | |
CN1666420A (zh) | 检查矩阵生成方法及检查矩阵生成装置 | |
CN1825770A (zh) | 解码ldpc编码信号的加速消息传递解码器和方法 | |
JP4285148B2 (ja) | 復号装置および復号方法、並びにプログラム | |
CN1731684A (zh) | 构造低密度奇偶校验矩阵的方法和装置 | |
CN100521553C (zh) | 解码设备和解码方法 | |
CN1303763C (zh) | 用于降低rs码编译码复杂度的方法 | |
CN1697330A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 |