CN101536319B - 用于在通信网络中对数据进行编码的方法和装置 - Google Patents

用于在通信网络中对数据进行编码的方法和装置 Download PDF

Info

Publication number
CN101536319B
CN101536319B CN2007800419672A CN200780041967A CN101536319B CN 101536319 B CN101536319 B CN 101536319B CN 2007800419672 A CN2007800419672 A CN 2007800419672A CN 200780041967 A CN200780041967 A CN 200780041967A CN 101536319 B CN101536319 B CN 101536319B
Authority
CN
China
Prior art keywords
coding groups
data
module
packet
weight
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
Application number
CN2007800419672A
Other languages
English (en)
Other versions
CN101536319A (zh
Inventor
T·M·纳佳拉杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101536319A publication Critical patent/CN101536319A/zh
Application granted granted Critical
Publication of CN101536319B publication Critical patent/CN101536319B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1157Low-density generator matrices [LDGM]

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种用于在通信网络中对数据进行编码的方法和装置。在一个方案中,提供了一种用于对数据进行编码的方法。该方法包括:生成数据的一个或多个置换;确定与每个置换相关的权重;基于相关权重,从每个置换计算出一个或多个编码分组;并且将该数据和该一个或多个编码分组复用成编码分组流。在一个方案中,提供了一种用于对数据进行编码的装置。该装置包括:置换逻辑,其被配置为生成数据的一个或多个置换;权重逻辑,其被配置为确定与每个置换相关的权重。该装置还包括:处理逻辑,其被配置为基于相关权重,从每个置换计算出一个或多个编码分组;以及复用器,其被配置为将该数据和该一个或多个编码分组复用成编码分组流。

Description

用于在通信网络中对数据进行编码的方法和装置
基于35U.S.C.§.119要求优先权
本专利申请要求2006年11月17日提交的题为“APPARATUS ANDMETHODS FOR ERASURE RECOVERY USING A PARALLELCONCATENATED LOW DENSITY GENERATOR MATRIX CODE”的临时专利申请号No.60/865,626的优先权,前述申请被转让给本发明的受让人并且以参考的方式明确地并入本申请。
技术领域
本发明一般涉及数据网络的操作,并且更具体地,涉及用于在通信网络中对数据进行编码的方法和装置。
背景技术
在典型的无线传递系统中,在多播传输信道上将内容传递到便携式设备。该内容采用编码分组的形式,编码分组被编码以便克服随着在传输信道上传输该分组而发生的分组丢失。发射器处的编码器获得原始数据分组,并且产生将要传输到一个或多个设备的编码分组。因为噪声或者其它劣化传输的效应,在任意特定设备处接收该编码分组的子集。对接收的编码分组进行解码以恢复原始数据分组。
一般,分布服务器具有用于对数据分组执行消息编码的编码器。该编码器获得数据分组(d),并且产生编码分组(C)。在有损传输信道上传输该编码分组,并且由某个设备接收该编码分组(C)的一些子集(C’)。该设备处的解码器使用所接收的编码分组(C’)来恢复原始数据分组d。
消息编码的目的是为了有效并且可靠地在多播无线网络上向大量移动设备传递内容。然而,移动设备的CPU性能、可用存储器容量、电池容量和它们的文件系统的速度通常都是有限的。这些约束严重限制了适用于这种环境中的编码类型。
用于克服分组消抹的典型编码方案包括里德所罗门(Reed-Solomon)码和速龙(Raptor)码。由于为了恢复k个数据分组则解码器需要确切接收k个编码分组,所以Reed-Solomon码是最佳编码。然而,该解码操作的计算需求可能非常高。另外,解码器的存储器需求也非常高,使得其非常难以实现在移动设备上。
Raptor码被设计为克服网络中的分组消抹。该Raptor码由内LT码和外码组成,内LT码被设计为恢复超过99%的数据分组,外码被设计为恢复其余数据分组。Raptor解码器所要求的计算容量远小于Reed-Solomon解码器。然而,在恢复全部数据分组所需要的编码分组的数量方面,Raptor码不如Reed-Solomon码有效。例如,为了高概率地恢复k个数据分组,Raptor解码器需要接收大约1.1×k个数据分组。
Raptor码是无码率的编码。即,编码器可以生成大量(很可能无限的)编码分组并且接收长达1.1×k个数据分组;该解码器可以恢复全部数据分组。然而,在大多数系统中,没有必要(或者不可能)生成无限数量的编码分组。例如,典型的分布系统具有剪辑传递时限,并且分布服务器在它的时限过后必须停止传输与该剪辑相关的编码分组。
与Raptor编码相关的另一个问题是,它是串行级联码。首先必须对内码进行解码。然后将这些解码后的分组馈入外解码器。这两个步骤必须顺序地执行,并且这个执行花费时间。Raptor编码的另一个问题是需要比移动设备上一般可用的存储器更多的存储器来执行解码操作。
因此,希望具有一种用于在无线环境中提供具有低计算量、低存储器和低开销需求的编码方案的系统。
发明内容
在一个或多个方案中,提供了一种用于在通信系统中对数据进行编码的编码系统,其包括方法和装置。在一个方案中,该编码系统使用低密度生成器矩阵(LDGM)对数据进行编码,LDGM允许使用单解码阶来进行解码从而节省存储器并且将计算复杂度最小化。
在一个方案中,提供了一种用于对数据进行编码的方法。该方法包括:生成数据的一个或多个置换;确定与每个置换相关的权重;基于相关权重,从每个置换计算出一个或多个编码分组;并且将该数据和该一个或多个编码分组复用成编码分组流。
在一个方案中,提供了一种用于对数据进行编码的装置。该装置包括置换逻辑,其被配置为生成数据的一个或多个置换;以及权重逻辑,其被配置为确定与每个置换相关的权重。该装置还包括处理逻辑,其被配置为基于相关权重,从每个置换计算出一个或多个编码分组;以及复用器,其被配置为将该数据和该一个或多个编码分组复用成编码分组流。
在一个方案中,提供了一种用于对数据进行编码的装置。该装置包括:用于生成数据的一个或多个置换的模块;以及用于确定与每个置换相关的权重的模块。该装置还包括:用于基于相关权重从每个置换计算出一个或多个编码分组的模块;以及用于将该数据和该一个或多个编码分组复用成编码分组流的模块。
在一个方案中,提供了一种包括计算机可读介质的计算机程序产品。该计算机可读介质包括:用于致使计算机生成数据的一个或多个置换的第一代码集;用于致使计算机确定与每个置换相关的权重的第二代码集;用于致使计算机基于相关权重,从每个置换计算出一个或多个编码分组的第三代码集;以及用于致使计算机将该数据和该一个或多个编码分组复用成编码分组流的第四代码集。
在一个方案中,提供了至少一个处理器,其被配置为执行用于对数据进行编码的方法。该至少一个处理器包括:用于生成数据的一个或多个置换的第一模块;用于确定与每个置换相关的权重的第二模块;用于基于相关权重从每个置换计算出一个或多个编码分组的第三模块;以及用于将该数据和该一个或多个编码分组复用成编码分组流的第四模块。
在阅读以下附图说明、详细描述和权利要求后,其它方案将变得显而易见。
附图说明
当结合附图来参考以下描述时,本文所述的前述各个方案将变得更显而易见,其中:
图1显示了包括编码系统的方案的网络;
图2显示了在编码系统的方案中使用的编码逻辑;
图3显示了在编码系统的方案中使用的LDGM组件的结构的图形表示;
图4显示了在编码系统的方案中用于对数据进行编码的编码器的功能图;
图5显示了在编码系统的方案中使用的编码分组生成器;
图6显示了在编码系统的方案中使用的方法;以及
图7显示了在编码系统的方案中使用的编码逻辑。
具体实施方式
在一个或多个方案中,提供了一种用于在通信系统中对数据进行编码的编码系统。在一个方案中,该编码系统使用低密度生成器矩阵对数据进行编码,所述低密度生成器矩阵允许使用单解码阶来进行解码从而节省存储器并且将计算复杂度最小化。例如,该系统适用于对在无线通信网络上传输的数据进行编码。该系统尤其适用于无线通信环境,但是可以用于任意类型的网络环境,包括但是不限于:通信网络、诸如英特网的公共网络、诸如虚拟专用网(VPN)的专用网络、局域网、广域网、长途网或任意其它类型的数据网络。
图1显示了包括编码系统的方案的网络100。网络100包括服务器102,其经由数据网络106与设备104通信。在一个方案中,服务器102使用任意类型的通信链路108与网络106通信。网络106可以是任意类型的有线和/或无线网络。网络106使用任意合适类型的无线通信链路110与设备104通信。服务器102向设备104传输内容和/或服务。虽然仅显示了一个设备,但该系统适用于与任意数量或类型的设备一起使用。
在一个方案中,服务器102包括编码逻辑112,其接收用于在网络106上传输的数据并且对该数据进行编码以产生编码分组流114。在一个方案中,编码逻辑112使用并行LDGM编码来对数据进行编码,从而可以由接收设备有效地对生成的编码分组进行解码。例如,该解码过程不需要大量的存储器或者计算量。
在一个方案中,编码分组流114中的每个编码分组都包括分组头部和/或完整地描述用于对该分组进行编码的编码方案的其它参数。由于分组头部完整地描述了所使用的编码方案,所以该系统是可伸缩的,因为可以利用新的编码方案而无需更新接收设备以使接收设备能够处理接收的编码分组。
在编码逻辑112生成编码分组之后,如路径116所示,在网络106上向设备104传输编码分组流114。在设备104接收到编码分组流114后,使用它的解码器118来对该编码分组流进行解码以获得所传输的数据。在一个方案中,设备104不需要与所使用的编码方案有关的任何具体知识,因为分组头部提供了对接收的编码分组进行解码所必需的全部信息。在另一个方案中,设备104知道所利用的编码方案并且基于该知识来对接收的分组流进行解码。
因此,编码器的各个方案弹性地并且可伸缩地对在网络上传输的数据进行编码。应该注意到,网络100仅示出了编码系统的一个实现方式,而在本发明的各个方案的范围内可以具有其它实现方式。
图2显示了在编码系统的方案中使用的编码逻辑200。例如,编码逻辑200适合用作图1中所显示的编码逻辑112。编码逻辑200包括复用器(MUX)202、编码器204和控制逻辑206。
控制逻辑206包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或被配置为控制编码器204和MUX 202的操作以允许对数据分组(dK)进行编码从而形成包括“N”个编码分组的编码分组流(C)210的硬件和软件的任意组合。在一个方案中,控制逻辑206提供置换控制信号212,置换控制信号212确定用于形成N-x个编码分组208的输入数据分组dK的置换。例如,在一个方案中,x等于k,但是可以将x设置为任意其它选择值。因此,能够或多或少地生成用于输入MUX 202的编码分组,这意味着在编码分组流210中还能够包括或多或少的数据分组。控制逻辑206还提供权重控制信号214,权重控制信号214确定用于对数据分组的置换进行加权以产生N-x个编码分组208的权重。在本文的另一部分将更详细地讨论所述置换和权重。
在一个方案中,编码器204包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或硬件和软件的任意组合。在一个方案中,编码器204基于置换控制信号212和权重控制信号214对接收的数据分组dK进行编码,以产生N-x个编码分组208。将N-x个编码分组208输入MUX202。在一个方案中,MUX 202包括可用于对多个输入进行复用以产生复用后的输出的任意合适的硬件和/或软件。在一个方案中,MUX 202接收数据分组dK、N-x个编码分组208和MUX控制信号216。MUX控制信号216指示MUX 202如何将N-x个编码分组208与数据分组dK复用以产生编码分组流210。
在操作期间,控制逻辑206生成置换控制信号212、权重控制信号214以及MUX控制信号216。接收数据分组dK以进行编码。将数据分组dK输入MUX 202和编码器204。编码器204使用置换控制信号212和权重控制信号214,基于并行LDGM编码机制对数据分组进行编码,以产生将要输入到MUX 202中的N-x个编码分组208。MUX 202基于MUX控制信号216,将N-x个编码分组与数据分组dK复用,以产生编码分组流210。例如,MUX202可以均匀地分布N-x个编码分组与数据分组dK,以产生编码分组流210。因此,该系统提供了并行LDGM编码机制,其将数据编码成在网络上传输的编码分组流。然后可以在接收设备处使用单阶解码器快速并且有效地对编码分组流210进行解码,从而将存储器的使用和计算复杂度最小化。编码器操作
以下是编码系统的方案的操作的详细描述。
图3显示了在编码系统的方案中使用的LDGM编码300的编码结构的图形表示。例如,LDGM编码300适用于图2中显示的编码逻辑200。在图3中,将k个数据分组节点表示为在302处整体示出的圆形。LDGM编码300提供(L+1)个引脚(leg)的并行级联,其中将引脚表示为在304处整体示出的矩形。
现在参考引脚306,该引脚随机地置换k个数据分组302,并且该操作表示为π1。引脚306生成C1个编码分组,其中每个编码分组都具有权重W1。类似地,将引脚308的置换操作表示为πL,并且该引脚生成CL个编码分组,其中每个编码分组都具有权重WL。应该注意到,引脚π0基于W0=1和C0进行操作,并且C0等于数据分组的数量(即,等于编码逻辑200的x),从而该引脚的输出仅是所述数据分组。还要注意到,引脚1到L所生成的编码分组包括编码器208的(N-x)个编码分组。
考虑引脚J生成权重为WJ的CJ个编码分组的一般情况。引脚J如πJ所示随机地置换k个数据分组。引脚J所生成的第一编码分组使用来自数据分组的置换集合的前WJ个项。第二编码分组使用来自数据分组的置换集合的接下来的WJ个项,并依此类推。可以将引脚J所生成的编码分组以矩阵形式表示为:
G(CJ,WJ)PJD
其中D是表示k个数据符号的向量,并且PJ是(k×k)置换矩阵。矩阵G(CJ,WJ)是具有阶梯结构的(CJ×k)矩阵。G(CJ,WJ)的第一行的项1到WJ等于1,并且其余项等于0。G(CJ,WJ)的第二行的项WJ+1到2×WJ等于1并且其余项为0,并依此类推。
可以将整个编码的结果生成器矩阵表示为:
G = G ( C 0 , 1 ) P 0 G ( C 1 , W 1 ) P 1 . . . G ( C L , W L ) P L
并且编码符号C是G与数据符号D的乘积。
因此,在一个方案中,系统生成N个已编码的分组,其包括k个数据分组和(N-x)个编码分组的组合。这N个已编码的分组是由编号为0到L的(L+1)个引脚生成的。第一个引脚使用了置换矩阵P0和G(C0,W0)。在系统码的情况下,P0是单位矩阵,C0是k,并且W0是1。因此第0个引脚生成k个编码分组并且每个编码分组都具有权重1。
根据一个实例,考虑k=4并且N=8的系统码。假设引脚数量为3(L=3)并且(C,W)值如下表所示
  引脚   C   W
  1   2   2
  2   1   3
  3   1   4
G(C1,W1)矩阵如下所示。
1 1 0 0 0 0 1 1
G(C2,W2)矩阵如下所示。
[1 1 1 0]
编码的生成器矩阵G的实例如下所示。
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 1
一般,矩阵G是稀疏矩阵,并且因此编码是低密度生成器矩阵编码。
图4显示了用于在编码系统的方案中对数据进行编码的编码逻辑200的功能图。编码逻辑200包括(L+1)个引脚,整体显示在402,其中每个引脚包括用于接收数据分组404并且产生编码分组(C)406的编码分组生成器。每个生成器利用数据分组404的置换(P)和所选择的权重(W)来产生编码分组406。例如,生成器412使用数据分组406的第一置换(P1)和第一组权重(W1)来形成C1个编码分组。例如,数量C1的值的范围可以从1变化到编码分组的任意所选数量。类似地,其它生成器使用所选置换和相关权重形成编码分组。
在一个方案中,该生成器基于置换控制信号408,确定将要使用的置换。例如,由图2中所示的控制逻辑206提供置换控制信号408。置换控制信号408描述并且/或者选择数据分组的置换,每个生成器将要用该置换来产生编码分组。例如,在一个方案中,每个引脚包括随机数生成器,随机数生成器用不同的种子来初始化,并且因此随机地确定每个引脚的置换。在另一个方案中,选择数字p,其与k互质,并且还选择初始种子a0。然后a1=(a0+p)模k,并且a2=(a1+p)模k,并依此类推。在此情况下,每个引脚为p和a0选择不同的值。
此外,还通过控制逻辑206向生成器提供权重控制信号410,权重控制信号410描述并且/或者选择权重,每个生成器将要用该权重来对数据分组的相关置换进行加权以便产生希望数量的编码分组。例如,在一个方案中,预先固定权重。在另一个方案中,每当需要对一组数据分组进行编码时,确定权重。
在一个方案中,置换控制信号408和权重控制信号410选择预定义的置换和权重,并且/或者用于生成将要由每个引脚使用的置换和权重。因此,编码逻辑200的操作产生了用于表示由生成器402产生的全部编码分组的总和(即,C0+C1+C2+C3+...+CL)的编码分组。
在一个方案中,每个编码分组都包括与用于生成该编码分组的引脚相关的信息。例如,每个编码分组都包括与用于生成该编码分组的置换和权重相关的信息。在另一个方案中,可以预先知道引脚的整体结构,从而任意接收设备将能够处理接收的编码分组。
图5显示了在编码系统的方案中使用的编码分组生成器500。例如,生成器500适用于图4所示的每个引脚402中。生成器500包括处理逻辑502、权重逻辑504和置换逻辑506,它们都耦合到数据总线508。
置换逻辑506包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或硬件和软件的任意组合。置换逻辑506接收数据分组510并且基于置换控制信号512产生数据置换。例如,在一个方案中,数据置换包括从数据分组中选择的任意期望集合。
在一个方案中,权重逻辑504包括将要用于对数据置换进行加权以便形成编码分组的值阵列。例如,为了形成编码分组,将相关权重给予数据置换中的每个数据项。然后将加权后的数据组合,以形成编码分组。在一个方案中,权重控制信号514用于确定权重,该权重将与每个数据置换一起用于产生编码分组。
处理逻辑502包括CPU、处理器、门阵列、硬件逻辑、存储元件、虚拟机、软件和/或硬件和软件的任意组合。在一个方案中,处理逻辑502组合加权后的数据置换以生成数据分组516。例如,处理逻辑502使用异或函数(XOR)来组合加权后的数据值。
在一个方案中,编码系统包括存储在计算机可读介质上的一个或多个程序指令(“指令”)或“代码”集,所述指令和代码当由至少一个处理器(例如处理逻辑502处的处理器)执行时,提供本文所述的各个功能。例如,可以将代码集从与处理逻辑502交互的计算机可读介质,例如软盘、CDROM、存储卡、FLASH存储器、RAM、ROM或任意其它类型的存储器或者计算机可读介质,加载到处理逻辑502中。在另一个方案中,可以将代码集从外部设备或者网络资源下载到处理逻辑502中。当执行该代码集时,该代码集提供如本文所述的编码系统的各个方案。
图6显示了在编码系统的方案中使用的方法600。为了清楚起见,参考图2中所示的编码逻辑200和图5所示的生成器500来描述方法600。例如,在一个方案中,控制逻辑206执行一组或多组代码来控制编码逻辑200执行下述各个功能。
在方框602,确定编码器的每个引脚的权重。在一个方案中,对于编码器204的每个引脚,权重逻辑504基于权重控制信号514确定权重。例如,权重描述了如何对数据置换的数据元素进行组合来形成编码符号。
在方框604,确定编码器的每个引脚的数据置换。在一个方案中,对于编码器204的每个引脚,置换逻辑506基于置换控制信号512确定数据置换。例如,数据置换包括从接收的数据值510中选择的任意部分的数据项。
在方框606,接收数据值。在一个方案中,编码逻辑200接收用于编码的dk个数据值。
在方框608,生成N-x个编码分组。例如,编码器204对dk个数据值进行编码并且生成N-x个编码分组208。在一个方案中,根据上述编码来形成N-x个编码分组。例如,编码器204的每个引脚具有用相关权重来加权的相关数据置换,并且处理逻辑502对该结果进行组合以形成选定数量的编码分组。编码器204的引脚所产生的编码分组的总和形成N-x个编码分组。
在方框610,将数据分组和N-x个编码分组复用成编码分组流。例如,MUX 202接收数据分组和N-x个编码分组208,并且将它们一起复用成编码分组流210。
在方框612,向一个或多个接收设备传输该编码分组流。例如,如图1所示,将编码分组流210在网络106上传输到设备104。
在方框614,执行检测以确定是否需要对编码方案执行任意调整。在一个方案中,置换逻辑206确定是否需要执行任意调整。如果对当前编码方案没有调整,那么该方法前进到方框606,以继续对数据进行编码以便传输。如果具有对编码方案的调整,那么该方法前进到方框602,在方框602可以确定新的置换和/或权重。
因此,方法600提供了编码系统的方案。应该注意到,方法600仅代表一个实现方式,并且在本发明的方案的范围内可以具有其它实现方式。
编码设计
以下描述示出了用于编码系统中的LDGM编码的设计。应该注意到,以下所示的设计仅是一个实现方式,并且该编码系统的方案可以提供其它实现方式。
引脚L的数量和每个引脚的(Ci,Wi)的值决定了编码性能。在一个方案中,所选LDGM编码满足以下约束:
( N - x ) = Σ i = 1 L C i
其中对于从1到L的每个引脚Li
0<CiWi≤k
Wi>1
假设在特定编码中,具有权重w[w>1]的编码分组所占分数标记为Ωw。那么权重为w的编码分组的数量为[(N-x)×Ωw)]。可用于生成这些分组的引脚的数量为:
然后,将这[(N-x)×Ωw)]个编码分组均匀分布在这Lw个引脚上。因此,不用确定L和(Ci,Wi)的值,而改为确定编码的程度分布。该程度分布指定编码分组的权重以及对于每个特定权重的编码分组所占分数。
图7显示了在编码系统的方案中使用的编码逻辑700。例如,编码逻辑700适合用作图1中所示的编码逻辑112。在一个方案中,由至少一个处理器实现编码逻辑700,所述处理器包括一个或多个被配置为提供如本文所述的编码系统的各个方案的模块。例如,每个模块包括硬件、软件或它们的任意组合。
编码逻辑700包括第一模块,该第一模块包括用于生成一个或多个置换的模块(702),在一个方案中包括置换逻辑506。编码逻辑700还包括第二模块,该第二模块包括用于确定权重的模块(704),在一个方案中包括权重逻辑504。编码逻辑700还包括第三模块,该第三模块包括用于计算一个或多个编码分组的模块(706),在一个方案中包括处理逻辑502。编码逻辑700还包括第四模块,该第四模块包括用于将数据与一个或多个编码分组进行复用以形成编码分组流的模块(708),在一个方案中包括MUX 202。
可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或被设计为执行本文所述的功能的其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或其任意组合,来实现或执行结合本申请的实施例所描述的各种示例性的逻辑、逻辑块、模块和电路。通用处理器可以是微处理器,可替换地,通用处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。还包括用于执行各种功能的单元或模块。
结合本申请的各个方案所描述的方法或者算法的各个步骤可直接体现为硬件、由处理器执行的软件模块或二者的组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。可替换地,存储介质可以集成到处理器中。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。可替换地,处理器和存储介质也可以作为分立组件存在于用户终端中。
提供了对所公开的各个方案的以上描述,以使得本领域普通技术人员能够实施或使用本发明。本领域普通技术人员可以容易地想到对于这些方案的各种修改,并且在不脱离本发明的精神或范围的前提下,本文所定义的通用原理可以适用于其它方案,例如在即时消息服务或任意普通无线数据通信应用中。因此,本发明的范围并非意图限于本文所示的方案,而是要符合与此处公开的原理和新颖性特征相一致的最宽范围。在本文中所专门使用的词语“示例性”意味着“作为实例、例子、示例”。本文所述的任何“示例性”方案无需被认为是优选于或优于其它方案的。
因此,虽然本文示出并且描述了编码系统的各个方案,但是要理解,在不脱离这些方案的精神和本质特性的情况下,可以对这些方案做出许多改变。因此,本文的公开和描述是对本发明的范围的说明而不是限制性的,本发明的范围是在附带的权利要求书中阐述的。

Claims (20)

1.一种用于对数据进行编码的方法,包括:
生成所述数据的一个或多个置换;
确定与每个置换相关的权重;
基于所述相关的权重,从每个置换计算出一个或多个编码分组;并且
将所述数据和所述一个或多个编码分组复用成编码分组流。
2.如权利要求1所述的方法,还包括:在网络上传输所述编码分组流。
3.如权利要求1所述的方法,其中,所述计算步骤包括:计算所述一个或多个编码分组,以总共产生(N-x)个编码分组;
其中所述编码分组流总共包括N个已编码的分组;
所述x为小于N的任何整数值。
4.如权利要求3所述的方法,其中,所述复用步骤包括:将所述(N-x)个编码分组与k个数据分组复用,以产生所述编码分组流,其中所述k为数据分组的个数。
5.如权利要求1所述的方法,其中,所述计算步骤包括:使用描述所述置换和所述权重的低密度生成器矩阵,来计算所述一个或多个编码分组。
6.如权利要求1所述的方法,其中,所述计算步骤包括:使用如下所示的低密度生成器矩阵,来计算所述一个或多个编码分组:
G = G ( C 0 , 1 ) P 0 G ( C 1 , W 1 ) P 1 · · · G ( G L , W L ) P L
其中,CJ表示第J个编码分组,J=0、1、…L;WJ表示编码分组CJ的权重;PJ表示编码分组CJ的(k×k)置换矩阵;矩阵G(CJ,WJ)是具有阶梯结构的(CJ×k)矩阵。
7.如权利要求1所述的方法,其中,所述生成步骤包括:随机地生成所述数据的所述一个或多个置换中的每一个。
8.一种用于对数据进行编码的装置,所述装置包括:
置换逻辑单元,其被配置为生成所述数据的一个或多个置换;
权重逻辑单元,其被配置为确定与每个置换相关的权重;
处理逻辑单元,其被配置为基于所述相关的权重,从每个置换计算出一个或多个编码分组;以及
复用器,其被配置为将所述数据和所述一个或多个编码分组复用成编码分组流。
9.如权利要求8所述的装置,其中,所述处理逻辑单元被配置为:计算所述一个或多个编码分组,以总共产生(N-x)个编码分组;
其中所述编码分组流总共包括N个已编码的分组;
所述x为小于N的任何整数值。
10.如权利要求9所述的装置,其中,所述复用器被配置为:将所述(N-x)个编码分组与k个数据分组复用,以产生所述编码分组流,其中所述k为数据分组的个数。
11.如权利要求8所述的装置,其中,所述处理逻辑单元被配置为:使用描述所述置换和所述权重的低密度生成器矩阵,来计算所述一个或多个编码分组。
12.如权利要求8所述的装置,其中,所述处理逻辑单元被配置为:使用如下所示的低密度生成器矩阵,来计算所述一个或多个编码分组:
G = G ( C 0 , 1 ) P 0 G ( C 1 , W 1 ) P 1 · · · G ( G L , W L ) P L ;
其中,CJ表示第J个编码分组,J=0、1、…L;WJ表示编码分组CJ的权重;PJ表示编码分组CJ的(k×k)置换矩阵;矩阵G(CJ,WJ)是具有阶梯结构的(CJ×k)矩阵。
13.如权利要求8所述的装置,其中,所述置换逻辑单元被配置为:随机地生成所述数据的所述一个或多个置换中的每一个。
14.一种用于对数据进行编码的装置,包括:
用于生成所述数据的一个或多个置换的模块;
用于确定与每个置换相关的权重的模块;
用于基于所述相关的权重,从每个置换计算出一个或多个编码分组的模块;以及
用于将所述数据和所述一个或多个编码分组复用成编码分组流的模块。
15.如权利要求14所述的装置,还包括:用于在网络上传输所述编码分组流的模块。
16.如权利要求14所述的装置,其中,所述用于计算的模块包括:用于计算所述一个或多个编码分组以总共产生(N-x)个编码分组的模块;
其中所述编码分组流总共包括N个已编码的分组;
所述x为小于N的任何整数值。
17.如权利要求16所述的装置,其中,所述用于复用的模块包括:用于将所述(N-x)个编码分组与k个数据分组复用以产生所述编码分组流的模块,其中所述k为数据分组的个数。
18.如权利要求14所述的装置,其中,所述用于计算的模块包括:用于使用描述所述置换和所述权重的低密度生成器矩阵来计算所述一个或多个编码分组的模块。
19.如权利要求14所述的装置,其中,所述用于计算的模块包括:用于使用如下所示的低密度生成器矩阵来计算所述一个或多个编码分组的模块:
G = G ( C 0 , 1 ) P 0 G ( C 1 , W 1 ) P 1 · · · G ( G L , W L ) P L ;
其中,CJ表示第J个编码分组,J=0、1、…L;WJ表示编码分组CJ的权重;PJ表示编码分组CJ的(k×k)置换矩阵;矩阵G(CJ,WJ)是具有阶梯结构的(CJ×k)矩阵。
20.如权利要求14所述的装置,其中,所述用于生成的模块包括:用于随机地生成所述数据的所述一个或多个置换中的每一个的模块。
CN2007800419672A 2006-11-13 2007-11-06 用于在通信网络中对数据进行编码的方法和装置 Active CN101536319B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86562606P 2006-11-13 2006-11-13
US60/865,626 2006-11-13
US11/691,146 2007-03-26
US11/691,146 US8117514B2 (en) 2006-11-13 2007-03-26 Methods and apparatus for encoding data in a communication network
PCT/US2007/083762 WO2008063873A2 (en) 2006-11-13 2007-11-06 Methods and apparatus for encoding data in a communication network

Publications (2)

Publication Number Publication Date
CN101536319A CN101536319A (zh) 2009-09-16
CN101536319B true CN101536319B (zh) 2013-07-10

Family

ID=39370382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800419672A Active CN101536319B (zh) 2006-11-13 2007-11-06 用于在通信网络中对数据进行编码的方法和装置

Country Status (10)

Country Link
US (2) US8117514B2 (zh)
EP (1) EP2100380A2 (zh)
JP (1) JP5474558B2 (zh)
KR (1) KR101314301B1 (zh)
CN (1) CN101536319B (zh)
BR (1) BRPI0718617A2 (zh)
CA (1) CA2667773A1 (zh)
RU (1) RU2009122474A (zh)
TW (1) TWI378650B (zh)
WO (1) WO2008063873A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US8250441B2 (en) 2007-12-11 2012-08-21 Wi-Lan Inc. Outer coding framework for application packet error rate minimization
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
US8699417B2 (en) * 2011-04-29 2014-04-15 T-Mobile Usa, Inc. Microwave backhaul arrangements
TWI519143B (zh) 2013-12-30 2016-01-21 財團法人工業技術研究院 通訊系統、其方法與其接收端
CN113541863B (zh) * 2021-06-02 2024-01-09 香港中文大学(深圳) 数据编码方法、数据译码方法、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701516A (zh) * 2003-02-28 2005-11-23 三菱电机株式会社 校验矩阵生成方法和校验矩阵生成装置
CN1770675A (zh) * 2001-12-21 2006-05-10 三星电子株式会社 通信系统中发送和接收数据的设备和方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5054066A (en) * 1988-11-16 1991-10-01 Grumman Corporation Error correcting public key cryptographic method and program
US5524256A (en) * 1993-05-07 1996-06-04 Apple Computer, Inc. Method and system for reordering bytes in a data stream
US6278783B1 (en) * 1998-06-03 2001-08-21 Cryptography Research, Inc. Des and other cryptographic, processes with leak minimization for smartcards and other cryptosystems
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6704354B1 (en) * 1998-10-16 2004-03-09 Samsung Electronics Co., Ltd. Method and apparatus of providing adaptive equalization using sign permutation filtering
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
US6441601B1 (en) * 1999-11-12 2002-08-27 Itt Manufacturing Enterprises, Inc. Phase meter using a permuter
US6854077B2 (en) * 2000-08-05 2005-02-08 Motorola, Inc. Apparatus and method for providing turbo code interleaving in a communications system
WO2002078196A1 (en) * 2001-03-22 2002-10-03 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
WO2004068715A2 (en) * 2003-01-29 2004-08-12 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100918763B1 (ko) * 2003-11-14 2009-09-24 삼성전자주식회사 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법
KR100744343B1 (ko) * 2003-12-19 2007-07-30 삼성전자주식회사 이동 통신 시스템에서 불균일 오류 확률을 갖는 부호화에따른 데이터 송수신 방법 및 장치
WO2005091585A1 (en) * 2004-03-22 2005-09-29 Codemate Aps Distribution method, preferably applied in a streaming system
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
WO2006038054A1 (en) * 2004-10-06 2006-04-13 Nokia Corporation Packet transmission using error correction of data packets
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
US7418649B2 (en) * 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
WO2006106841A1 (ja) * 2005-03-31 2006-10-12 Mitsubishi Denki Kabushiki Kaisha 誤り訂正符号化装置
GB2434946B (en) * 2006-02-01 2008-07-23 Toshiba Res Europ Ltd Wireless communications apparatus
US8117514B2 (en) 2006-11-13 2012-02-14 Qualcomm Incorporated Methods and apparatus for encoding data in a communication network
US7752531B2 (en) * 2007-09-12 2010-07-06 Seagate Technology Llc Defect sensing Viterbi based detector

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770675A (zh) * 2001-12-21 2006-05-10 三星电子株式会社 通信系统中发送和接收数据的设备和方法
CN1701516A (zh) * 2003-02-28 2005-11-23 三菱电机株式会社 校验矩阵生成方法和校验矩阵生成装置

Also Published As

Publication number Publication date
BRPI0718617A2 (pt) 2014-02-25
WO2008063873A3 (en) 2008-07-31
US20080114711A1 (en) 2008-05-15
KR20090089424A (ko) 2009-08-21
CA2667773A1 (en) 2008-05-29
KR101314301B1 (ko) 2013-10-02
US8117514B2 (en) 2012-02-14
TW200832933A (en) 2008-08-01
EP2100380A2 (en) 2009-09-16
RU2009122474A (ru) 2010-12-20
WO2008063873A2 (en) 2008-05-29
JP5474558B2 (ja) 2014-04-16
US20120106414A1 (en) 2012-05-03
CN101536319A (zh) 2009-09-16
JP2010509891A (ja) 2010-03-25
TWI378650B (en) 2012-12-01
US8301968B2 (en) 2012-10-30

Similar Documents

Publication Publication Date Title
CN101536319B (zh) 用于在通信网络中对数据进行编码的方法和装置
CN102647193B (zh) 具有良好性能的不规则缩短的ldpc码的码构造
ES2673513T3 (es) Procedimientos que emplean códigos de FEC con inactivación permanente de símbolos para procesos de codificación y decodificación
JP5329239B2 (ja) 通信システムのための多体ベース符号の生成器および復号化器
CN101080872B (zh) 利用向量行分组的结构化ldpc设计操作发送器的方法及装置
RU2354045C2 (ru) Устройство и способ для кодирования и декодирования блочных кодов с низкой плотностью контроля по четности с переменной скоростью кодирования
CN101582698B (zh) 使用基于子码元的代码来保护数据不被删除
US8225173B2 (en) Multi-rate LDPC code system and method
CN101080874B (zh) 纠错编码装置以及在其中使用的纠错编码方法
CN102171935B (zh) 用于高速结构化的多速率低密度奇偶校验码的方法和装置
CN105991227B (zh) 数据编码方法及装置
TW200301623A (en) Multi-stage code generator and decoder for communication systems
US8640009B2 (en) Methods and apparatus for providing linear erasure codes
JP5542140B2 (ja) 復号化回路及び符号化回路
CN106209302B (zh) 数据传输处理方法及装置
US8015469B2 (en) Method for generating non-binary structured low density parity check code
CN111490797B (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
CI01 Correction of invention patent gazette

Correction item: International Day of publication

Correct: 20080529

False: 20080731

Number: 28

Volume: 29

CI03 Correction of invention patent

Correction item: International Day of publication

Correct: 20080529

False: 20080731

Number: 28

Page: The title page

Volume: 29

ERR Gazette correction

Free format text: CORRECT: INTERNATIONAL PROCLAMATION DATE; FROM: 2008.07.31 TO: 2008.05.29

RECT Rectification