我目前正在爲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.生成代碼128B條碼
應用Base96編碼爲由Huffman算法生成的比特流以獲得可在Code 128B條形碼內使用的ASCII字符。根據需要將結果字符串拆分爲多個條形碼。
編碼這個步驟對我來說不會是一個問題,但我想對算法的效率和設計有一些反饋。
問題
- 難道我失去了一些潛在的更好的壓縮/短串的地方?
- 有沒有更好的方法來壓縮隨機的UTF8編碼數據?
- 我應該在編碼數據中嵌入一個動態霍夫曼表嗎?
- 如何考慮代碼128B的壓縮(
0
比&
需要更少的空間)?