icon Altzin,钱辰飞

Altzin,钱辰飞

三维码

用连续刷新的二维码在屏幕与摄像头之间传输文件:一边发射循环播包,一边解码收包拼装。

RGB 三通道复用:同一显示帧用红 / 绿 / 蓝各叠一张不同的二维码,连续三包并行;解码端分通道再分别识别,理论速度约 ×3。

解码端:摄像头低分辨率采集;主线程只 createImageBitmap 入队,Worker 内拆 RGB,用 zxing-wasm(ZXing-C++)解码;RS 在独立 Worker;每秒重设快门。

发射端按每片可配置的数据/冗余做 Reed-Solomon(默认 200 数据 + 55 校验,满片 n=255);片内任意丢失不超过该片校验数仍可还原。

收不全时可导出极小的缺包列表 .bin,再用三维码传回发射端,只循环重发未解片里丢掉的包。

包格式: 3DQR2|<名B64>|<全局包号>|<全局总包>|<片号>|<总片数>|<片内包号>|<片内数据k>|<满片数据个数>|<文件字节>|<分片B64>
满片 n=255;数据包个数可配(默认 200,冗余 55);末片校验按比例 ceil(k×冗余/数据)。片内收齐任意 k 包即可解该片。
同帧 RGB:连续三包分别写入 R / G / B(模块亮=该通道 255,暗=0);解码按通道原始值分别识别。
缺包列表: 3DQM 二进制(文件名、大小、chunk、总包数 + 位图:未解片中尚未收到的全局包号)。
工作模式:

发码

拖放文件到这里或点击选择

缺包列表: 未加载(完整循环)

先选原文件,再选解码端导出的缺包列表,开始后只循环显示丢掉的包。

大包号: 空=全部片

填写从 1 起的大包(片)号可只循环该片;若同时加载了缺包列表,则只播该片内的缺包。

帧率: 15 fps
二维码边长: 360 px
每包数据: 432 B
大包内数据包: 200 数据 / 55 冗余

「大包内数据包」决定每片 255 包中多少为有效数据(默认 200),其余为纠删冗余。

请选择要发射的文件

尚未开始