手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

TXQR,通过动画二维码传输数据

[日期:2019-01-04] 来源:Linux公社  作者:醉落红尘 [字体: ]

TXQR是一个通过动画二维码码传输数据的项目。它用Go编写并使用喷泉擦除码( fountain erasure codes)。 它的创建者和软件工程师Ivan Daniluk分享了他构建TXDR的经验以及使用动画二维码作为数据传输方法的结果。

二维码是一种视觉编码,它允许不同的错误恢复级别,最高的错误恢复级别几乎有30%的冗余。QR Version 40允许最多编码4296个字母数字或2953个二进制符号。但这就产生了两个主要问题,首先是3-4KB可能不够,其次二维码中的数据越多,质量和图像分辨率就越好。但是,如果我们需要在一般的消费设备上传输大约15KB的数据呢?使用带有动态FPS和大小变化的动态QR码可能会起作用。

TXQR的基本设计

客户端选择要发送的数据,生成一个动画二维码,并在循环中显示,直到所有的帧都被阅读器接收。编码的设计是正确的,它允许帧的任何特定顺序,以及FPS中的动态变化。如果阅读器速度较慢,则会显示“请减少发送方的FPS”的消息。

说到协议,它只是一个前缀“NUM/TOTAL|”(NUM和TOTAL分别是当前帧和总的帧的整数值),而rest是文件内容。原始数据使用Base64进行编码,因此实际上只有字母数字数据用QR编码。

Gomobile

要将.framework或.aar文件包含在iOS或Android项目中,可以编写标准Go代码,然后运行gomobile bind。用户可以将其称为任何常规库,并获得自动完成和类型信息。 Ivan在Swift中构建了一个简单的iOS QR扫描器并对其进行了修改以读取动画QR码,将解码后的块提供给txqr解码器并显示在预览窗口中接收到的文件。

喷泉代码

TXQR用于使用二维码的动画序列进行单向数据传输。 TXQR涉及的方法包括反复重复编码序列,直到接收器获得完整数据。如果接收器错过至少一帧,这导致长时间的延迟。

TXQR用于使用动态二维码序列进行单向数据传输。TXQR所涉及的方法包括一遍又一遍地重复编码序列,直到接收方获得完整的数据。如果接收器错过了至少一帧,这导致了长时间的延迟。

根据Bojtos Kiskutya的文章,LT(Luby Transform)代码可以为TXQR产生更好的结果。 LT代码是称为喷泉代码的代码族的实现之一。它是一类擦除代码,可以很容易地从源消息块(K)产生可能无限量的块。接收器可以以任何顺序从任何点接收块,具有任何擦除概率。一旦收到K +个不同的块,就会启动喷泉代码。它被命名为喷泉代码,因为编码的块代表喷泉的水滴。喷泉代码很容易,它们可以解决关键问题,因为它们利用随机性,数学逻辑和概率分布调整的特性来实现其目标。

在本文中,我们介绍了TXQR的基本设计,动画二维码基础知识,喷泉代码,Gomobile等。要详细了解实验,请查看Ivan的Github

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-01/156178.htm 

linux
相关资讯       TXQR  动画二维码码 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款