本软件包是RFC6330的一个实现。 这是高通提出的一个高效的喷泉码FEC算法,之前在一个无线通信项目里用到而实现了它。放在硬盘好久了,共享出来避免浪费。 大致组织如下: Symbol.h/Symbol.cpp 实现对RFC文档中symbol的抽象,初始化、异或、赋值等 Helper.h/Helper.cpp 实现计算RFC6330的参数、分区等;可以不用,直接人工指定K、T等 Generators.h/Generators.cpp 核心算法,根据K、T等参数初始化编解码器,生成矩阵,生成中间符号和修复符号等;提供了高斯消元和RFC6330推荐两种解码算法; 也包括对矩阵离散表示的一个实现,希望减少内存需求提高效率,但实践发现计算量反而变大,因此没有真正使用。代码有一定的注释。 encoder.*/decoder.* 对核心的一个包装。RFC6330有趣的一点是其编解码基本是同一个计算,编码时要先解码。 Main.cpp 测试程序。调用编码器、模拟发送和丢包、接受和解码以及校验。