byte[] data = new byte[800];
我想在通过串口(115200波特率)发送到微控制器之前压缩它。我想在C中在微控制器上解压缩数组。然而,我不太确定最佳的方法是什么。由于微控制器只是一个Arduino,因此性能是一个问题,不能占用太多内存/ CPU。数据更或多或少是随机的(编辑我想这不是真正的随机,见下面的编辑),因为它表示每16位的RGB颜色值。
您有什么好的方法来压缩这些数据吗?您认为我可能会获得多少压缩? 编辑 抱歉缺乏信息。我需要压缩是无损的,并且我确实打算一次发送800个字节。我的问题是800个字节不足以以我使用的115200波特率的速度传输。我希望我可以稍微缩小大小以提高速度。
每两个字节看起来像:
0RRRRRGGGGGBBBBB
其中R、G和B位分别表示颜色通道红色、绿色和蓝色的值。然后,每两个字节是20x20网格中的单个LED。我想许多组两个字节将是相同的,因为我经常将相同的颜色代码分配给多个LED。RGB值也可能经常> 15,因为我通常在可以使用明亮颜色时使用它们(但是,这可能是一个无关紧要的问题,因为它们通常不会全部> 15)。