当前位置:  开发笔记 > 编程语言 > 正文

实现行程编码

如何解决《实现行程编码》经验,为你挑选了1个好方法。

我编写了一个程序来执行行程编码.在典型情况下,如果文本是

AAAAAABBCDEEEEGGHJ

运行长度编码将成为它

A6B2C1D1E4G2H1J1

但它为每个非重复字符添加了额外的1.由于我用它压缩BMP文件,我想到放置一个标记"$"来表示重复字符的出现,(假设图像文件有大量的重复文本).

所以它看起来像

$A6$B2CD$E4$G2HJ

对于当前示例,它的长度是相同的,但BMP文件有明显的区别.现在我的问题在于解码.它发生了一些BMP文件具有模式,$$I9在原始文件中,所以在压缩文件中我也包含相同的文本.$I9但是,在解码时,它会将其视为重复的I,重复9次!所以它会产生错误的输出.我想知道的是我可以使用哪个符号来标记重复字符(运行)的开头,以便它不会与原始源冲突.



1> Blorgbeard..:

为什么不在压缩文件$中对原始文件$$中的每个进行编码?

和/或使用其他一些字符而不是$- 在bmp文件中使用不多的字符.

另请注意,BMP格式具有"内置"RLE压缩 - 在此处,在页面底部附近 - 在"图像数据和压缩"下.

我不知道你正在使用你的程序,或者它只是用于学习,但如果你使用"官方"bmp方法,你的压缩图像在查看之前不需要解压缩.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有