Erasure Codes | 基本思想 | 优点 | 缺点 | |
Reed-Solomon (RS) | 通常称为RS码,是一种线性分组循环冗余码。RS码中编码后的数据通常包括数据信息和校正信息。而在RS码中信息并不是以bit位进行处理的,而是以数位bit组成一个码中的符号位进行处理。通常编码符号的长度的为8 bits或8 bits的倍数。这样设计是为了便于同计算机内的字长进行互相转换。假设一个长度为N的RS码数据包中包含I个信息符号,P个校正符号,那么通过RS码的解码处理可以纠正数据包内I个信息符号中的t=P/2个错误,如果知道错误位置,则可纠正P个错误。 | 比传统的阵列码相比,可在较小冗余的情况下能够恢复更多的数据 | 涉及到 Galois field, 运算强度大 码字N<=255,处理数据量小
| |
Vandermonde-based RS code | 1. RS码变形 2 基于范德蒙矩阵 |
| 1. 涉及Galois field上的运算 2. 解码时间 O(n3 ) 3. 编码与解码时,99%时间花在矩阵运算上(解码时有矩阵求逆等 4. 处理数据量有限制 | |
Cauchy-based RS code | 1,是一种基于异或的Erasure Codes,是一种Reed-Solomon实现的变形。 2. 基于柯西矩阵
| 比以上的算法处理速度要快 能够处理更大数据量
只有异或运算
解码时间O(n2) | 实现较为复杂,涉及到 Galois field上的数值到二进制的转化操作
编码与解码时,99%时间花在矩阵运算上(解码时有矩阵求逆等) | |
Tornado Codes (LDPC码) | 采用稀疏矩阵 只使用异或操作 用微小的解码失效率换得编解码时间的降低
| 处理任意数量大小
开销小,处理速度快
编码解码时间与数据包数量成线性关系,{ 和 (K+l)*ln(1/a)P成正比}
| 解码器需要接受多于K块数据包才能重组出源数据(k是源数据包个数)
优于码率固定,如果未收到足够的信息包,则恢复失败
| |
Digital Fountain 数字喷泉码
| LT code | LT码是第一类码率不受限码的实用实现, 即其码率不需要事先确定 (码率=数据包/ 编码后总的包数) 同时它具有简单的编译码方法以及较小的译码开销和编译码复杂度
| 成功译码需要的运算量是O(klogk)。 | 编译码复杂度非线性
|
Raptor
| Raptor码是LT码的改进版 两步编码的方式 (软化的LT码与LDPC结合) | Raptor码的编码和译码均需O (kln(1/ε))次包异或操作,其中ε是译码开销,优于LT码
|
|
Digital Fountain Code 特点:
喷泉码是指这种编码的发送端可以由k个原始分组生成任意数量的编码分组,接收端只要收到其中任意k(1+ε)个编码分组,即可通过译码以高概率成功恢复全部原始分组,精心设计的数字喷泉码不仅拥有很小的译码开销ε,而且具有简单的编译码方法和很小的编译码复杂度。数字喷泉码与LDPC码的最大区别在于其中不存在码长n的定义,或者说码长趋于无穷;相应地,码率R=k/n的定义也不存在,因此数字喷泉码也被称为无率码(Rateless Codes)。