3 language-agnostic compression run-length-encoding
我编写了一个程序来执行行程编码.在典型情况下,如果文本是
AAAAAABBCDEEEEGGHJ
Run Code Online (Sandbox Code Playgroud)
运行长度编码将成为它
A6B2C1D1E4G2H1J1
Run Code Online (Sandbox Code Playgroud)
但它为每个非重复字符添加了额外的1.由于我用它压缩BMP文件,我想到放置一个标记"$"来表示重复字符的出现,(假设图像文件有大量的重复文本).
所以它看起来像
$A6$B2CD$E4$G2HJ
Run Code Online (Sandbox Code Playgroud)
对于当前示例,它的长度是相同的,但BMP文件有明显的区别.现在我的问题在于解码.它发生了一些BMP文件具有模式,$<char><num>即$I9在原始文件中,所以在压缩文件中我也包含相同的文本.$I9但是,在解码时,它会将其视为重复的I,重复9次!所以它会产生错误的输出.我想知道的是我可以使用哪个符号来标记重复字符(运行)的开头,以便它不会与原始源冲突.
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |