libcimbar:打破网络束缚的超酷数据传输神器

275 阅读3分钟

引言

在当今数字化的时代,数据传输的方式多种多样,但有时候我们可能会面临没有网络连接的情况。这时,libcimbar 就成为了一个非常实用的工具。它是一种用于数据传输的工具,通过将文件编码为彩色图标二维码,能够在没有互联网等连接的情况下,仅通过计算机显示器和手机摄像头进行高速数据传输。

原理介绍

cimbar是一种高密度二维条形码格式。数据存储在彩色图块网格中——根据选择的图块以及选择哪种颜色来绘制图块来对位进行编码。 Reed Solomon 纠错应用于数据,以解决视频 -> 数字解码的数据损伤。预计错误率将低于 1%。

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

优点

  1. 高效传输:能够以 850kb/s 的速度进行数据传输,提供了快速的数据交换方式。
  2. 无需网络:不依赖互联网等其他连接方式,仅通过计算机显示器和智能手机摄像头即可工作,适用于一些特殊的安全环境或网络受限的场景。
  3. 跨平台性:用 C++ 编写,可在多种平台上运行,包括 amd64+linux、arm64+android(仅解码器)和 emscripten+WASM(仅编码器)。而且编码器可编译为 asmjs 和 wasm,能在任何有现代浏览器的设备上运行,甚至可以离线使用。
  4. 纠错能力强:采用 Reed Solomon 纠错,能够有效应对视频到数字解码过程中的有损情况,确保数据的准确性和完整性。

使用方法

编码

最简单的编码方法就是使用官方提供的网页cimbar.org/, 也可以直接下载网页的源文件在本地使用:github.com/sz3/libcimb…

只需要在网页中选中文件,就可以将文件编码成二维码。

image.png

解码

  • 在安卓手机上安装 libcimbar 的解码器应用。github.com/sz3/cfc
  • 将手机摄像头对准计算机显示器上的二维码动画。
  • 解码器应用会自动识别并解码数据。

总结

libcimbar 是一个非常实用的数据传输工具,它的高效性、无需网络的特性以及强大的纠错能力,使其在很多场景下都能发挥重要作用。无论是在安全要求高的环境中,还是在网络受限的情况下,libcimbar 都能为你提供可靠的数据传输解决方案。