鲁比变换喷泉码编解码器的一种实现。对于在非常有损耗的信道上传输数据非常有用,因为基于重试的传输协议很难实现。

lt-code的Python项目详细描述


lt code
==


这是python中luby转换代码的实现,由两个可执行文件组成,每个可执行文件对应一个编码和解码文件。这些都是围绕核心流/文件api的薄包装。

剑桥大学出版社,2003年。

不过,也做了一些优化。首先,度分布的cdf m(d)是为所有度d=1,…,k预先计算的。该cdf表示为数组映射索引d=>;m(d),因此从度分布mu(d)中进行的采样成为通过cdf数组进行的线性搜索,以查找我们的随机数在\[0,1)上落下的桶。这个随机数是根据指定的使用线性同余生成器生成的。BR/> BR/>第二,所有块的整数表示被保存在RAM中,用于块样本生成的最高速度。这是对大多数计算机上实际编码的文件大小的限制,但这个决定并没有深入到设计的其他部分,如果需要更好的内存可伸缩性,可以很容易地解决这个问题。

``python
from sys import stdout
from lt import encode

块大小:
stdout.buffer.write(block)
````

这是使用在线算法完成的,该算法以增量方式计算适当的消息,并在解析源节点的值时急切地传递它们。因此,一旦解码器只读取了流中解码文件所需的多个块,解码器就将完成解码,而且它的规模似乎与文件大小一样大,块大小增加。

``python
from sys import stdin
from lt import decode

decoder.consume_block(block)
如果decoder.is_done():
break

从shell中调用以下命令
$./bin/encoder<;file>;<;blocksize>;<;seed>;[c][delta]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从tester类访问/更改ArrayList?   java如何在Android中以编程方式更改菜单标题   spring boot在Kafka Java中为同一主题创建多个消费者组   java JVM字节码表示法,注释语法。调用动力学   java活动在旋转后泄漏了窗口PopupWindow   java允许Nashorn运行用户代码   Java Joda Time实现一个日期范围迭代器   当字符串长度为奇数时使用递归打印字符串的java基本情况   java无法从JSONArray获取JSONObject   java有没有一种方法可以使用单个示例文件进行所有测试?   java My bufferedReader读取整个文件,而不仅仅是一行。为什么?   当已有用户输入时,java变量为null   java如何将正则表达式与阿拉伯语文本一起使用   java Selenium WebDriver“单击”和JavascriptExecutor单击之间有什么区别   java在运行代码时,排序方法会在第二个数组应该按升序或降序排序时打印相同的精确数组号   java如何在HashMap中添加多个具有相同键的相同类型的对象   java有人知道为什么菜单栏在使用系统gtk主题时会显示白色文本吗?   在tomcat中用java方法访问JavaScript文件