में decompressing मैं वर्तमान में एक जावा प्रोग्राम में निम्नलिखित सरणी,जावा में एक बाइट सरणी को संपीड़ित और सी
byte[] data = new byte[800];
है और मैं बॉड एक माइक्रोकंट्रोलर के लिए यह धारावाहिक से अधिक भेजने से पहले यह सेक करना चाहते हैं (115200)। मैं फिर सी में माइक्रोकंट्रोलर पर सरणी को डिक्रॉप करना चाहता हूं। हालांकि, मुझे पूरा यकीन नहीं है कि ऐसा करने का सबसे अच्छा तरीका क्या है। प्रदर्शन एक मुद्दा है क्योंकि माइक्रोकंट्रोलर सिर्फ एक आर्डिनो है इसलिए यह बहुत मेमोरी/सीपीयू गहन नहीं हो सकता है। डेटा और अधिक या कम यादृच्छिक है (संपादित मुझे लगता है कि यह वास्तव में है कि यादृच्छिक नहीं है, नीचे संपादन देखें) मैं कहना चाहता हूँ, क्योंकि यह हर 16 बिट के लिए एक आरजीबी रंग मूल्य का प्रतिनिधित्व करता।
क्या सबसे अच्छा तरीका यह डेटा संपीड़ित करने के लिए हो सकता है? कोई विचार है कि मैं संभवतः कितना संपीड़न प्राप्त कर सकता हूं?
संपादित
जानकारी की कमी के बारे में क्षमा करें। मुझे संपीड़न को लापरवाह होने की आवश्यकता है और मैं केवल एक समय में 800 बाइट भेजने का इरादा रखता हूं। मेरी समस्या यह है कि 800 बाइट्स 115200 बॉड की दर से पर्याप्त तेज़ी से स्थानांतरित नहीं होंगे जो मैं उपयोग कर रहा हूं। मैं उम्मीद कर रहा था कि मैं गति को बेहतर बनाने के लिए आकार को छोटा कर सकता हूं।
हर दो बाइट्स लगता है:
0RRRRRGGGGGBBBBB
जहां R जी और बी बिट्स, लाल, हरे और नीले रंग क्रमशः चैनलों के लिए मूल्यों का प्रतिनिधित्व। प्रत्येक दो बाइट तब 20x20 ग्रिड पर एक व्यक्तिगत एलईडी है। मैं कल्पना करता हूं कि दो बाइट्स के कई सेट समान होंगे क्योंकि मैं अक्सर कई एल ई डी में एक ही रंग कोड असाइन करता हूं। यह भी मामला हो सकता है कि आरजीबी मूल्य अक्सर> 15 होते हैं क्योंकि जब मैं कर सकता हूं तो आमतौर पर चमकदार रंगों का उपयोग करता हूं (हालांकि, यह एक महत्वपूर्ण बिंदु हो सकता है क्योंकि वे सभी आम तौर पर नहीं होते हैं> 15 एक बार में)।
800 बाइट्स डेटा का एक बहुत नहीं है ... वह यह है कि सिर्फ उदाहरण के लिए, या कि सभी आप कभी भी भेजने के लिए जा रहे है? – Rooke
अच्छा संपीड़न उस डेटा की विशेषताओं पर निर्भर करता है जो आप संपीड़ित करने के लिए कर रहे हैं।यदि आप डेटा के कुछ प्रतिनिधि नमूने से लिंक कर सकते हैं, तो आपको बहुत बेहतर उत्तर मिलेंगे। – caf
समझदारी से इस प्रश्न का उत्तर देने के लिए पर्याप्त जानकारी के पास कहीं भी नहीं है। यदि आपका डेटा वास्तव में यादृच्छिक है, तो यह असम्पीडित है। यदि आपका डेटा किसी प्रकार की छवियों का प्रतिनिधित्व करता है, तो आप भाग्य में हो सकते हैं। लेकिन आपने यह निर्दिष्ट नहीं किया है कि किस तरह की छवि, न ही आप हानि सहन करने के लिए तैयार हैं, आदि –