使用消息传递解码技术用于对代码字(902)解码的方法和设备,该技术特别适用于低密度奇偶校验(LDPC)代码,并描述了长代码字。所描述的方法允许解码图形结构,其主要由多个相同的小得多的图形(1000)拷贝组成的。较小的图形的拷贝经受被控制的置换操作(904)以生成较大的图形结构。相同的被控制的置换被直接实现,以支持在小图形的复制拷贝之间的消息传递。对应于各图形拷贝的消息存储在存储器中,并使用SIMD读或写指令按组访问,来自每一图形拷贝一个。图形置换操作可通过在来自消息存储器的每一组消息反应简单记录消息来实现,例如使用循环置换操作,使得消息传递到对应于小图形的不同拷贝的处理电路。(*该技术在2022年保护过期,可自由使用*)
【技术实现步骤摘要】
相关的申请本申请要求2001年6月15日提交的美国临时申请S.N.60/298,480的权益。本专利技术的领域本专利技术旨在用于检测和/或校正二进制数据中的差错的方法和设备,例如通过使用奇偶校验码,诸如低密度奇偶校验(LDPC)码。背景在现代信息时代,二进制值,例如一和零,用来表示并传送各类信息,例如视频,音频,统计信息等。遗憾的是,在二进制数据的存储,传送,和/或处理期间,可能有差错无意地引入,例如一可能变为零或相反。一般来说,在数据传送的情形下,接收器观察噪声或失真的存在中每一接收的位,并只获得位值的指示。在这些情形下,解释观察值为“软”位源。软位与该估计的可靠性的某种指示一同指示位值即一或零的最好的估计。虽然差错数可能相对低,但即使小数目的差错或失真电平也能够造成数据不能使用,或在传送差错的情形下,可能必须进行数据的重新传送。为了提供一种机制以便校验差错,并在某些情形下,为校正差错,二进制数据能够被编码以便引入仔细设计的冗余性。数据单元的编码产生通常称为代码字的概念。因为这一冗余性,代码字将常常包含比代码字从其产生的的数据输入单元多的位。当接收或处理来自传送代码字引起的信号时,在信号中观察到的包含在代码字中的冗余信息可用来识别和/或校正在接收的信号中的差错或从其去除失真,以便恢复原来的信号单元。这种差错校验和/或校正能够作为解码过程的一部分实现。在没有差错时,或在可校正差错或失真的情形下,解码可用来从被处理的源数据恢复已被编码的原来数据单元。在不能恢复的差错的情形下,解码过程可产生某种指示原来的数据不能完全恢复。这种解码失败的指示可用来启动数据的重新传送。虽然数据冗余能够增加被存储或传送的数据的可靠性,但这是以存储空间和/或使用宝贵的通信带宽为代价的。因而,希望以一种有效的方式增加冗余性,使对数据引入的给定的冗余量赢得的差错校正/检测容量最大化。随着对于数据通信光纤线路增加的使用及数据能够从存储装置例如磁盘、磁带等读取和向其存储的速率的增加,不仅对有效使用数据存储和传送量,而且对以高速率编码和解码数据的能力增加了需要。虽然编码效率和高数据速率对于在范围广泛的装置,例如消费者装置,编码和/或解码系统是重要的,但重要的是编码器和/或解码器要能够以合理的成本实现。于是,例如就硬件的成本来说,有效实现用于差错校正和/或检测目的的编码/解码方案的可能性,可能是重要的。多年来为了差错校正的目的已使用各种类型的编码方案。最近专利技术了一般称为“涡轮代码”的一类代码(1993)。涡轮代码比较老的技术诸如卷积码提供了明显的好处,并发现了许多应用。与涡轮代码的出现相结合,对另一类相关的明显更简单一般称为低密度奇偶校验(LDPC)码的代码增加了兴趣。LDPC代码实际上由Gallager在大约40年前(1961)专利技术,但只是现在才引起注意。涡轮代码和LDPC代码是在所谓迭代编码系统的场合使用的编码方案,就是说它们使用迭代解码器被解码。近来,已经证明LDPC代码能够提供非常好的差错检测和校正性能,涡轮代码对于大代码字例如大小超过大约1000位是优越的和匹配的,给出了LDPC编码参数的适当选择。此外,LDPC代码能够潜在地以比涡轮代码更高的速度解码。在许多编码方案中,由于编码在较大数目位上的交互作用,较大的代码字常常对差错的检测和校正更有弹性。这样,使用长代码字就增加检测和校正差错能力来说是有益的。这对于涡轮代码和LDPC代码是特别实际的。这样,在许多应用中,希望使用长代码字,例如长度超过一千位的代码字。在长代码字的场合,其中这种代码的使用提供了最大的希望,采用LDPC编码和涡轮编码中所遇到的主要困难,是实现这些编码系统的复杂性。在实际的情形下,复杂性直接转换为实现的成本。这两种编码系统都比传统使用的编码系统,诸如传统的代码和Reed-Solomon代码更复杂。信号处理算法的复杂性分析通常集中在操作计数。当试图在迭代代码系统中采用硬件并行性,特别是在LDPC代码的情形下时,明显的复杂性不仅从计算需要引起,而且更从路由需要引起。问题的根源在于代码本身的结构。LDPC代码和涡轮代码依赖于迭代过程内的交错消息。为了使代码性能良好,交错必须有良好的混合性质。这必须实现复杂的交错过程。LDPC代码由通常称为Tanner图的二部图很好表示,其中一组结点,即可变结点对应于代码字的位,而另一组结点,即约束结点有时称为校验结点,对应于定义该代码的奇偶校验约束组。图中的边缘把可变结点连接到约束结点。可变结点和约束结点被称为邻近,如果它们由图中的一边连接。为了简化,我们一般假设一对结点由至多一条边连接。与每一可变结点相关的是代码字的一位。在某些情形下,某些这些位困难是被穿孔的已知的,如以下进一步讨论。当且仅当对每一约束结点相邻约束(通过它们与可变结点相关)和为模二为零即将它们包括偶数个位时,与可变结点顺序一对一相关的位顺序才是代码的代码字。用来对LDPC代码字解码的解码器和解码算法,通过在图内沿边交换消息,并基于输入的消息通过在结点处进行计算而操作。这种算法将一般称为消息传递算法。图中的每一可变结点起初使用软位提供,称为接收值,其指示通过从例如通信通路观察所确定的相关位值的估计。理想上,对分开的位的估计在是统计独立的。这一理想困难并常常在实际上是违背的。接收的值的收集构成接收的字。为了这一应用的目的,我们可能例如通过通信系统中的接收器使用接收的字识别观察的信号。附加到一结点,即可变结点或约束结点的边的数目被称为该结点的度。正则图或代码是这样的图,对其所有可变结点有相同度例如j,并且所有约束结点有相同度例如k。这种情形下,我们说代码是(j,k)正则代码。这些是最初由Gallager(1961)所考虑的代码。与“正则”代码相对照,非正则代码具有约束代码和/或不同度的可变结点。例如,某些可变结点可能为度4,其它为度3并另外其它度为2。虽然发正则代码为了表示和/或实现更为复杂,但已经证明,当与正则LDPC代码比较时,非正则LDPC代码能够提供极佳的差错校正/检测性能。为了更精确地描述解码过程,我们在描述LDPC图中引入套接字的概念。套接字可看作为图中的一边与图中的一结点的相关联。每一结点对附加到它的每一边有一个套接字,且边“塞入”套接字。这样,度d的结点有附加到它的d个套接字。如果图有L个边,则在图的可变结点侧有L个称为可变套接字的套接字,并在图的约束结点侧有L个称为约束套接字的套接字。为了标识和排序的目的,可变套接字可被计数1,...,L,使得附加到一可变结点的所有可变套接字连续出现。这种情形下,如果头三个可变结点的度分别为d1,d2,d3,则可变套接1,...,d1,附加到第一可变结点,可变套接字d1+1,...,d1+d2附加到第二可变结点,且可变套接字d1+d2+1,...,d1+d2+d3附加到第三可变结点。约束结点可类似地被计数1,...,L,所有约束套接字附加到连续出现的一个约束结点。一个边可被看作是套接字的配对,其每一对的一个来自图的每一边。这样,图的边表示套接字从图的一边例如可变结点边,向另一边例如约束结点边的交错或置换。与这些系统相关的置换常常是复杂的,反映了如上所述交错的复杂性,为它们的实现需要消息传递复杂的路由。在图上实现的本文档来自技高网...
【技术保护点】
一种用于进行消息传递解码操作的设备,该设备包括: 存储器,包括存储单元的一个集合,用于存储Z个K-位消息的L个集合,其中Z是大于一的正整数,而K和L是非零正整数; 一个结点处理器,包括多个结点处理单元,每一结点处理单元用于进行约束结点处理操作和可变结点处理操作的至少之一;以及 一个开关装置,连接到存储器并连接到结点处理单元,该开关装置用于在所述存储器和所述结点处理器之间传递Z个K-位消息的集合,并响应开关控制信息用于以所述信息集合至少之一对消息重新排序。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:汤姆理查森,瓦拉迪莫诺维齐科夫,
申请(专利权)人:弗拉里奥恩技术公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。