gpt4 book ai didi

language-agnostic - 实现游程编码

转载 作者:行者123 更新时间:2023-12-04 07:50:24 26 4
gpt4 key购买 nike

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

AAAAAABBCDEEEEGGHJ

运行长度编码会成功

A6B2C1D1E4G2H1J1

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

看起来像

$A6$B2CD$E4$G2HJ

对于当前示例,它的长度是相同的,但对于 BMP 文件有显着差异。现在我的问题在于解码。碰巧一些 BMP 文件具有模式 $<char><num>$I9在原始文件中,所以在压缩文件中我也会包含相同的文本。 $I9 ,但是在解码后它会将其视为重复的 I 重复 9 次!所以它会产生错误的输出。我想知道的是我可以使用哪个符号来标记重复字符(运行)的开始,这样它就不会与原始来源冲突。

最佳答案

为什么不把原文件中的每个$编码成压缩文件中的$$

和/或使用其他字符代替 $ - 在 bmp 文件中使用不多的字符。

另请注意,BMP 格式具有“内置”RLE 压缩 - 看 here ,靠近页面底部 - 在“图像数据和压缩”下。

我不知道你的程序是用来做什么的,或者只是为了学习,但是如果你使用“官方”的bmp方法,你的压缩图像在查看之前不需要解压缩。

关于language-agnostic - 实现游程编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/685070/

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