无网络状态下利用libcimbar传输文件

   前言    

        无网络环境下传输文件又有了一个新的选择:使用二维码。无需互联网、蓝牙、WIFI、NFC等,所有数据都可通过相机镜头传输。

项目地址

https://github.com/sz3/libcimbaricon-default.png?t=O83Ahttps://github.com/sz3/libcimbar

实现方式

 简单来说就是将文件转化为图标矩阵码,用其他设备扫码进行传输。

libcimbar: 颜色图标矩阵条形码

Behold: 一种用于气隙数据传输的实验性条形码格式。

它只需使用计算机显示器和智能手机摄像头即可维持 106 KB/s的速度传输!

操作步骤

编码器将动画条形码输出到计算机或智能手机屏幕上:

  •  打开 https://cimbar.org/选择需要传输的文件 (网页端就是一个html文件,无网络环境下浏览器打开也能正常使用)

  • 解码器是一个使用手机摄像头读取动画条形码的手机应用程序:手机打开APP,对准屏幕,传输开始会出现进度条

原理

        cimbar 是一种高密度 2D 条形码格式。数据存储在彩色图块网格中 -- 根据选择的图块以及选择的颜色来绘制图块,对位进行编码。对数据应用 Reed Solomon 纠错,以解释视频 -> 数字解码的有损性质。预计错误率低于 1%,并得到纠正。

        网格上每个图块(位置)有 16 个可能的符号,每个图块编码 4 位。此外,网格上的每个位置可以编码 2-3 个颜色位,这意味着每个图块最多总共 7 个位。

        libcimbar 为优化实现,包括一个基于 fountain 代码 (wirehair) 和 zstd 压缩构建的文件编码的简单协议。最大 33MB 的文件(压缩后)被编码为一系列 cimbar 代码,这些代码可以输出为图像或实时视频源。一旦成功解码了足够多的不同图像帧,文件将成功重建和解压缩。即使图像的接收顺序不正确,或者某些图像已损坏或丢失,也是如此。

 备注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值