我有一个嵌入式应用程序,其中图像扫描仪发出一个 16 位像素流,这些像素随后被组装成灰度图像。由于我需要在本地保存这些数据并将其转发到网络接口,我想压缩数据流以减少所需的存储空间和网络带宽。
有没有一种简单的算法可以用来无损压缩像素数据?
我首先想到计算两个连续像素之间的差异,然后用霍夫曼代码编码这个差异。不幸的是,像素是无符号的 16 位数量,因此差异可能在 -65535 .. +65535 范围内的任何地方,这会导致潜在的巨大码字长度。如果连续出现几个非常长的代码字,我会遇到缓冲区溢出问题。
更新:我的平台是 FPGA