我已经阅读了许多关于 GIF LZW 解压缩的文章,但我仍然对它的工作原理或如何解决编码方面的问题感到困惑,更繁琐的编码位。
据我了解,当我获取 LZW 压缩数据的 GIF 字节流时,流告诉我:
最小代码大小,也就是第一个字节开始的位数。
现在,据我了解,我必须为此添加一个用于明确代码,或者为明确代码和 EOI 代码添加两个。但我很困惑它是哪一个?
所以说我有 3 个颜色代码(01、10、11),假设 EOI 代码(如 00)将遵循最小代码大小(2)的字节为 2 位,或者它将是 3 位以明确代码?还是明文代码/EOI 代码都已计入最小尺寸?
第二个问题是,从文件中读取动态大小的位的最简单方法是什么?因为从偶数字节 (8) 读取奇数位(3 位、12 位等)听起来可能很混乱和错误?