【问题标题】:How can I transfer data efficiently via images?如何通过图像有效地传输数据?
【发布时间】:2020-10-11 06:48:54
【问题描述】:

对于客户项目,我可以通过远程桌面连接访问开发和构建服务器。我需要为本地测试下载一些构建工件,但由于客户的公司范围内的政策,我不会获得 ssh 访问权限或任何对文件传输有用的东西。通过共享剪贴板,我实际上可以复制数据(例如 base 64 编码),但不幸的是,这似乎并不可靠。手头有一个便宜的 HDMI 到 USB 视频捕获设备,我想我可以用它来传输数据。该设备最多只能捕获 1080p 原始 YUV 4:2:2 视频,可惜生成的静止图像有些模糊。

那么,我可以使用什么算法/技术对要传输的数据进行编码/解码?显然 QR 码可以工作,但数据速率会相当差(每个捕获的帧只有几 KB ——而且由于 RD 连接不太好,我只能每隔几秒使用一个帧)。

【问题讨论】:

    标签: qr-code vision


    【解决方案1】:

    经过一些试验,我发现捕捉设备的色彩保真度远没有用处。我尝试将数据编码为灰度像素,但即使多次重复每个像素值也不会产生捕获的图像,我可以从中可靠地提取原始 8 位值。也许只使用每个灰度值的高 4 位并多次重复该值会起作用,但最后我得到了简单的黑白图像,在两个后续像素中编码相同的位。在捕获的图像中,我还没有经历过翻转位(而不是每位使用一个像素)。

    所以,这毕竟离使用 QR 码不远(元素也必须是 2x1),但数据密度要高一些。我只有一个带有签名、图像尺寸和校验和的小标题,所以我可以很容易地找到验证编码数据。我还在左边留了几个像素,右边是空白。因此,每张 1080p 图像我可以编码大约 125 KiB。这比我希望的要少很多,但至少它允许我在合理的时间内传输无人看管的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 2014-11-22
      • 2020-04-16
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多