gpt4 book ai didi

compression - 要从一维条形码中读取的键值对的有效压缩和表示

转载 作者:行者123 更新时间:2023-12-04 05:08:00 33 4
gpt4 key购买 nike

我目前正在为 Windows Mobile 编写一个应用程序,它需要能够从一维条形码(配置设置)中获取键值对。需要扫描的条码越少越好。样本输入:

------------------------------
| Key | Value |
------------------------------
| 12 | Söme UTF-8 Strîng |
| 9 | & another string |
------------------------------

我想到了以下算法:

1. 连接键值对并使用Base64 对值进行编码

所以我们会得到类似 12=U8O2bWUgVVRGLTggU3Ryw65uZw==&9=JiBhbm90aGVyIHN0cmluZw== 的信息

2、使用霍夫曼编码对数据进行压缩

为此,我将使用固定的霍夫曼树,并提供以下信息来帮助我压缩数据:
-------------------------------------------
| Enties | Priority |
-------------------------------------------
| =, & | High |
| 0-9 | Medium |
| 5-bit Base64 Words (w/o 0-9) | Low |
-------------------------------------------

3.从编码数据生成Code 128B条码

将 Base96 编码应用于 Huffman 算法生成的位流,以获得可在 Code 128B 条码中使用的 ASCII 字符。根据需要将结果字符串拆分为多个条形码。

编写这些步骤对我来说不是问题,但我想对算法的效率和设计有一些反馈。

问题
  • 我是否在某处失去了一些更好的压缩/更短字符串的潜力?
  • 有没有更好的方法来压缩随机的 UTF8 编码数据?
  • 我应该将动态霍夫曼表嵌入到编码数据中吗?
  • 我如何考虑代码 128B 的压缩(0 需要比 & 更少的空间)?
  • 最佳答案

    一种简单的方法是定义直接映射到 code128 的所有 64 个字符。这将留下 30-40 个可用的代码 128 插槽。在剩余的插槽中定义一些双字符。 == =& 0= 1= 2= 3= 4= 5= 6= 7= 8= 9= &0 &1 &2 &2 &5 &5 &6 &7 &8 &9(重复最后一个字符)= =(双下一个字符)&(双下一个字符字符)

    关于compression - 要从一维条形码中读取的键值对的有效压缩和表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15269408/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com