0
我需要將浮點數(4字節)壓縮到1字節(0到0xFF)才能發送到另一個設備。浮點數的範圍從-100000.0到100000.0。將4字節浮點數據壓縮爲1字節
其他設備將從1字節解碼回浮點數。它如何以最小的數據丟失來實現?
謝謝,JC
我需要將浮點數(4字節)壓縮到1字節(0到0xFF)才能發送到另一個設備。浮點數的範圍從-100000.0到100000.0。將4字節浮點數據壓縮爲1字節
其他設備將從1字節解碼回浮點數。它如何以最小的數據丟失來實現?
謝謝,JC
一個解決方案是使用量化。將100000分爲127個間隔。發送浮點數所屬的間隔號以及最低或最高位中的符號
在您的情況下,間隔= 787,4 例如,您有類似於100的輸入。發送1.輸入1000,147732。發送2 在設備上,您可以按照間隔時間恢復號碼。 最簡單的解決方法是將數字恢復爲間隔的中間值。例如,每一個屬於第一區間持股量將恢復爲393.7 如果您有數字分發一些統計數據和它的不統一,你可以圍繞它通過改變間隔長度玩和量化頻繁的彩車更精確地
轉換字節乘以127/100000,然後做相反的解壓縮?但爲什麼不只是傳輸四個字節而不是一個? – Timtech
感謝您的建議!傳輸一個字節的原因是由於通信帶寬。 –
好的,但要意識到你不能只將4個字節壓縮到1中。一個數據字節可以表示的最大唯一值是256(2^8)。 – Timtech