OpenFec介绍
1.提供的编解码器
-
Reed-Solomon stable codec over GF(28) // GF(2 8 ) 上的Reed-Solomon(里德-所罗门码) 稳定编解码器,RS码
-
Reed-Solomon stable codec over GF(2m) // GF(2 m ) 上的Reed-Solomon(里德-所罗门码) 稳定编解码器
-
1D-2D parity check matrix stable codec // 一维-二维奇偶校验矩阵稳定编解码器
-
LDPC-staircase stable codec // LDPC-楼梯稳定编解码器
-
LDPC from file advanced codec // 来自文件高级编解码器的 LDPC
2.使用库及其API
以下头文件定义了 OpenFEC 库的 API(应用程序编程接口)。无论使用何种代码/编解码器,这是应用程序需要包含的唯一一个文件。
of_openfec_api.h(通用API头文件,例如提供,最新版本见分发)
此外,还有每个代码/编解码器 API 头文件,以补充具有特定定义的通用文件。例如,这些文件可以在 src/lib_stable/ldpc_staircase/of_ldpc_staircase_api.h(或类似的)中找到。
3.使用示例
分发版 (applis/howto_examples/simple_client_server/) 中提供了一个演示服务器/客户端应用程序,它解释了如何使用 OpenFEC 编解码器。这个演示应用程序打开一个 UDP 套接字,服务器执行 FEC 编码并发送(一部分)编码符号,而客户端接收它们并尝试对对象进行 FEC 解码。要使用的编解码器的选择基于对象大小。API 是通用的,无论代码/编解码器的性质如何,大部分代码都是相似的,这有利于 OpenFEC 库的使用。
4.使用绩效评估工具
性能评估工具是一组 Perl 脚本。它们允许您使用许多指标(例如低效率比、解码速度或解码失败概率)来测试不同的编解码器和代码。
第一个脚本用于运行代码并将结果记录到数据库中。您必须使用要运行的所有测试填充参数文件。
第二个脚本允许您使用 Gnuplot 自动绘制结果图。以下是您可以生成的曲线示例:
解码速度曲线
该曲线代表 Reed-Solomon 和 LDPC-Staircase 编解码器的解码速度。您可以自动生成这条曲线之王。性能评估工具会检测到许多编解码器的存在,以仅制作一张包含所有曲线的图表。
这里,代表了具有不同代码配置的 Reed_solomon 和 LDPC-Staircase 编解码器的解码速度。如您所见,您每秒可以解码数千兆位。
擦除恢复曲线
您还可以确定给定代码的无效率。您只需要运行足够多的迭代,并生成图形。
这是 LDPC QC 频带、LDPC QC 和 LDPC QC 恒定频带与编解码器的低效率比。
您可以轻松绘制损失百分比的解码失败概率(可能很长!)。在这里,您有 LDPC QC Band 编解码器、LDPC QC 恒定带宽编解码器和 LDPC QC 编解码器的解码失败概率,用于损失百分比(使用 de 2/3 码率)。
对于 LDPC 编解码器,您必须选择最大似然解码器(而不是迭代解码器),脚本会自动计算给定代码的最大损失百分比(使用二分法)。
解码复杂度曲线
您还可以比较不同编解码器对符号的操作数量。这里是 LDPC-QC 频带、LDPC-QC、LDPC-QC 恒定带宽和 LDPC 编解码器的符号操作数。
生成这种曲线是如此简单!您只需要选择正确的参数并启动脚本。您可以在下载页面的存档中找到更多信息。