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 编解码器的符号操作数。
生成这种曲线是如此简单!您只需要选择正确的参数并启动脚本。您可以在下载页面的存档中找到更多信息。

OpenFec介绍的更多相关文章

  1. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  2. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  3. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  4. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  5. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  6. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  7. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

  8. HTML5 介绍

    本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...

  9. ExtJS 4.2 介绍

    本篇介绍ExtJS相关知识,是以ExtJS4.2.1版本为基础进行说明,包括:ExtJS的特点.MVC模式.4.2.1GPL版本资源的下载和说明以及4种主题的演示. 目录 1. 介绍 1.1 说明 1 ...

  10. ExtJS 4.2 组件介绍

    目录 1. 介绍 1.1 说明 1.2 组件分类 1.3 组件名称 1.4 组件结构 2. 组件的创建方式 2.1 Ext.create()创建 2.2 xtype创建 1. 介绍 1.1 说明 Ex ...

随机推荐

  1. Delphi注解(不是注释)

    开发环境Delphi XE10 1 unit Unit1; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.SysUt ...

  2. 磊磊零基础打卡算法:day20 c++dfs树的深度优先遍历

    5.24 dfs深度优先搜索: 思想比较简单,就是一条路走到底,走到最深点处再回退一步,再看有没有路可以走,没有的话再回退一步,重复此步骤: 也是人们常讲的暴搜. 主要的用法: 通常需要一个状态数组来 ...

  3. jieba原理

    一.jieba介绍jieba库是一个简单实用的中文自然语言处理分词库. jieba分词属于概率语言模型分词.概率语言模型分词的任务是:在全切分所得的所有结果中求某个切分方案S,使得P(S)最大. ji ...

  4. 大数据组件对应Ranger插件的选择

    在都是开源组件的前提下,一般需要我们多关注到组件和插件的版本和类型选择. 参考 https://zhuanlan.zhihu.com/p/370263573 https://www.bookstack ...

  5. 我亲自整理的Tampermonkey(以下简称tm)v4.13.6136的编辑器按键映射(基于联想笔记本键盘+win10+火狐浏览器企业版)

    警告:你可以对该随笔内容进行转载,但必须写明其来源网址,以及其作者是博客园的zqdlly,否则后果自负!不要小看了我,我一定会让你付出你应得的成本. 0. 家喻户晓的 键 原生comment myMe ...

  6. useBean类属性[javaChuLi.LoginBean]的值无效

    今天遇到了一个错误,如图 参见:JSP 中给定的 useBean 标签的 class 属性的值无效_dkawskawx的博客-CSDN博客

  7. 禅道 docker 部署

    官方文档:https://hub.docker.com/r/idoop/zentao 1.创建本地目录:mkdir -p /data/zbox 2.启动容器: sudo docker run -itd ...

  8. c++实现类似python的map一样,批量操作一个vector的功能【python一样写c++、三】

    python里有一个东西,叫map. 它可以实现像这样,对list每个元素进行操作,并返回新的list(python3是迭代器) 像这样 a=list(map(int,input().split()) ...

  9. 使用Mathematica做序列的DTFT的几个例子

    ListFourierSequenceTransform[{-2, -1, 1, 3, 3, 1, -1, -2}, \[Omega]] ParametricPlot[{Re[%], Im[%]}, ...

  10. etcd详解

    etcd原理详解 etcd概述 etcd的特点 etcd是一个Go言编写的分布式.高可用的一致性键值存储系统,用于提供可靠的分布式键值存储.配置共享和服务发现等功能 etcd具有以下特点: 简单: 易 ...