मैं एकाधिक जेपीईजी छवियों को एक बड़ी छवि के रूप में संग्रहीत करते समय स्टोरेज स्पेस को कम करने की समस्या को देख रहा हूं। बुनियादी अंतर्ज्ञान यह है कि छवियों में कुछ समानताएं होती हैं (जैसे कि एक ही स्थान पर या उसी समय के आसपास की गई) और क्या हम अंतरिक्ष को बचाने के लिए इस समानता का फायदा उठा सकते हैं?जेपीईजी छवि संपीड़न
कुल प्रवाह है: इनपुट JPG
छवियाँ -> प्रत्येक छवि RGB
छवि टाइलें में बदल दिया -> समान RGB
टाइल्स एक साथ पुनर्संगठित -> फिर JPG
प्रारूप करने के लिए बदलना। स्वाभाविक रूप से, छवियों को पुनर्प्राप्त करते समय, हमें रिवर्स प्रक्रिया की आवश्यकता होगी।
टाइल पुनर्गठन के समानता माप के रूप में वाई घटक के डीसी गुणांक का उपयोग करके, मैंने 10 छवियों के लिए ~ 8% अंतरिक्ष बचत प्राप्त की। जब मैं 100 छवियों के लिए ऐसा करता हूं, तो बचत कम हो जाती है ~ 3%।
मैं कैसे बचत टाइल पुनर्गठन के बाद मिलता है - जो कि JPEG एन्कोडिंग प्रक्रिया का कौन सा हिस्सा इस छवि टाइल पुनर्गठन का लाभ लेता है?
वहाँ कुछ अन्य है:
- वाई घटक के डीसी गुणांक के बजाय
, वहाँ कुछ अन्य मैट्रिक्स आपको लगता है कि के बारे में सोच सकता है बेहतर JPEG एन्कोडिंग द्वारा शोषण किया जाएगा
संशोधित कर रहे हैं जेपीजी के अलावा छवि प्रारूप जो इस तरह के समानता का उपयोग कर सकते हैं एकाधिक छवियों को एकत्र करते समय बेहतर? उदाहरण के लिए पीएनजी की तरह?
धन्यवाद, यह बहुत समझ में आता है! मैं एन्कोडिंग और डिकोडिंग करने के लिए libjpeg का उपयोग करता हूं। चूंकि जेपीईजी 8x8 मैक्रोबॉक्स के भीतर डीसीटी करता है, टाइल्स (मैक्रोबॉक्स से बड़ा) के बीच समानता शायद अधिक मदद नहीं करती है। लेकिन, मुझे लगता है कि पड़ोसी मैक्रोबॉक्स के डीसीटी गुणांक अपेक्षाकृत एन्कोड किए गए हैं, और कुछ हद तक इस टाइल पुनर्गठन द्वारा इसे बेहतर किया जा सकता है। मैंने अपना प्रश्न संशोधित किया है - कृपया एक नज़र डालें। – user655617
खुशी है कि मैं चीजों को स्पष्ट करने में मदद कर सकता हूं। हां, libjpeg जेपीईजी मानक के आईजेजी का संदर्भ जेएफआईएफ कार्यान्वयन है। मुझे डेल्टा एन्कोडिंग (पड़ोसी macroblocks के बीच) का उपयोग कर डीसीटी गुणांक याद नहीं है। AFAIR, प्रत्येक मैक्रोबॉक गुणांक का एक 8x8 मैट्रिक्स बन जाता है, जिसे तब क्षीणित किया जाता है (उन्हें स्टोर करने के लिए आवश्यक बिट्स की संख्या को कम करने के लिए विभाजित किया जाता है - और यह वह जगह है जहां हानिकारक संपीड़न में "हानि" आती है), और ज़िग में पढ़ा जाता है -जैग फैशन। यह ऑर्डरिंग 0s के लंबे रन बनाता है, जो रन-लम्बाई एन्कोडिंग के माध्यम से कुशलता से संपीड़ित होते हैं (17 शून्य संग्रहीत करने के बजाय, हम 17, 0 स्टोर करते हैं)। –