加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

压缩Java中的字节数组并在C中解压缩

发布时间:2020-12-15 00:02:38 所属栏目:Java 来源:网络整理
导读:我目前在 Java程序中有以下数组, byte[] data = new byte[800]; 我想在通过串口(115200 Baud)将其发送到微控制器之前对其进行压缩.我想在C中用微控制器解压缩数组.但是,我不太确定最好的方法是什么.性能是一个问题,因为微控制器只是一个arduino所以它不能太
我目前在 Java程序中有以下数组,
byte[] data = new byte[800];

我想在通过串口(115200 Baud)将其发送到微控制器之前对其进行压缩.我想在C中用微控制器解压缩数组.但是,我不太确定最好的方法是什么.性能是一个问题,因为微控制器只是一个arduino所以它不能太存储器/ CPU密集型.数据或多或少是随机的(编辑我猜它不是那么随机,请看下面的编辑)我会说因为它代表每16位的rgb颜色值.

压缩这些数据的最佳方法是什么?知道我可以得到多少压缩?

编辑

对于缺乏信息感到抱歉.我需要压缩无损,我只打算一次发送800个字节.我的问题是800字节不能以我正在使用的115200波特率快速传输.我希望我能缩小一点尺寸以提高速度.

每两个字节看起来像:

0RRRRRGGGGGBBBBB

其中R G和B位分别代表红色,绿色和蓝色的颜色通道的值.然后,每两个字节就是20×20网格上的单个LED.我会想象很多两个字节都是相同的,因为我经常为多个LED分配相同的颜色代码.也可能是RGB值通常> 1的情况.因为我通常使用鲜艳的颜色(但是,这可能是一个没有实际意义的点,因为它们通常不是一次都是> 15).

解决方法

如果数据“或多或少随机”,那么压缩它就不会有太多运气,我担心.

UPDATE

鉴于新信息,我敢打赌你的LED显示屏上不需要32k色.我想象一个1024或256色的调色板可能就足够了.因此,你可以通过一个简单的压缩方案(简单地通过查找表映射每个单词,或者可能只丢弃每个组件的lsbs),这甚至可以用于完全不相关的像素值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读