1

场景:数据(fpga 图像-.bin 文件)在主机被压缩,以 62 字节的数据包发送到 fpga(嵌入式端)并在那里解压缩。我的目标是最大限度地减少嵌入式端的内存使用和 CPU 成本。

问题-使用具有大块大小的 LZSS 数据压缩技术:在嵌入式方面-我假设块大小是压缩前的一大块数据。如果我们选择一个 2048 块大小,并且压缩到 1000 字节......我们是否需要同时在嵌入式端拥有所有 1000 字节才能解压缩它?或者我们可以在一次流式传输 62 个字节时获取 1000 个字节并即时解压缩它?

4

1 回答 1

0

引用维基百科 LZ77 和 LZ78

为了发现匹配,编码器必须跟踪一些最新数据,例如最后的 2 kB、4 kB 或 32 kB。保存这些数据的结构称为滑动窗口,这就是为什么 LZ77 有时被称为滑动窗口压缩。编码器需要保存这些数据来寻找匹配,而解码器需要保存这些数据来解释编码器引用的匹配。滑动窗口越大,编码器搜索创建参考的时间越长。

所以你需要在压缩过程中适当地配置滑动窗口的大小为 <= 62 字节。否则,您需要保留旧的压缩包以防被引用,这将使实现变得复杂。

在我看来,一次只压缩 62 个字节更容易。这将导致较低的压缩效率但更快的实现。

于 2013-06-10T09:31:56.583 回答