LZSS数据压缩是否支持嵌入式端的即时解压缩?

时间:2013-06-06 21:44:21

标签: memory-management embedded data-compression

场景:数据(fpga images- .bin文件)在主机上压缩,以62字节的数据包发送到fpga(嵌入端)并在那里解压缩。我的目标是最小化嵌入端的内存使用和CPU成本。

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

1 个答案:

答案 0 :(得分:0)

引用Wikipedia LZ77 and LZ78

  

要查找匹配项,编码器必须跟踪一些数量   最新数据,例如最后2 kB,4 kB或32 kB。结构   保存这些数据的人称为滑动窗口,这就是原因   LZ77有时被称为滑动窗口压缩。编码器需要   保持这些数据寻找匹配,解码器需要保持   此数据用于解释编码器所指的匹配项。更大   滑动窗口是编码器可以搜索的较长的后面   创建参考。

因此,您需要在压缩期间适当地配置滑动窗口的大小为< = 62字节。否则,您需要保留较旧的压缩包,以防它们被引用,这将使实现变得复杂。

在我看来,一次压缩62个字节更容易。这将导致压缩效率降低,但实施速度更快。