दोषरहित समान छवियों को संपीड़ित करना?


9

मुझे अपनी फोटो लाइब्रेरी के आकार को कम करने की आवश्यकता है इसलिए मैं स्वाभाविक रूप से उन्हें संपीड़ित करना चाहता हूं। उनमें से कई काफी समान नहीं हैं, लेकिन अभी भी बहुत समान हैं (उसी दृश्य के बाद के शॉट्स)। क्या कोई संपीड़न एल्गोरिथ्म है जो इस तथ्य का लाभ उठाकर इन छवियों को प्रभावी ढंग से संपीड़ित करता है? 7zip (LZMA) बेकार है।

जवाबों:


11

आप Paq 8 (fp8_v2.zip) आज़मा सकते हैं। मैंने सिर्फ 1440 समान पीएनजी छवियों पर और फिर 111 समान जेपीजी छवियों पर खुद को आजमाया। यहाँ परिणाम हैं।

  • 1440 पीएनजी फाइलें, 28,631,615 बाइट्स => 2,058,653 बाइट्स संपीड़ित
  • 111 JPG फ़ाइलें, 15,003,820 बाइट्स => 489,096 बाइट्स संपीड़ित

उपयोग करते समय PNG फ़ाइलों के संपीड़न में लगभग 8 मिनट और 550 MB मेमोरी लगी:

fp8_v2.exe -7 images *.png

उपयोग करते समय JPG फ़ाइलों के संपीड़न में लगभग 5 मिनट और 125 एमबी मेमोरी लगी:

fp8_v2.exe -5 images image12*.jpg

इसे भी देखें: jpg लॉसलेस इमेज कम्प्रेशन टेस्ट


जेपीजी के लिए 97% संपीड़न अवास्तविक लगता है। तुलनात्मक परीक्षा में आप कहते हैं कि कंप्रेशन की संख्या 20% है
OneSolitaryNoob

@OneSolitaryNoob क्या आप भूल गए कि जेपीईजी समान हैं? 110/111 = 99.1% अपेक्षित संपीड़न। तुलनात्मक परीक्षण जो उसने जोड़ा वह एक एकल JPEG को संपीड़ित करने के बारे में है।
नविन

@ नवीन यह वास्तव में संभावना नहीं है। यहां तक ​​कि अगर वे लगभग समान दिखते हैं तो अधिकांश पिक्सेल थोड़ा अलग होंगे।
OneSolitaryNoob

@OneSolitaryNoob तो क्या? वीडियो के 1 सेकंड (30 फ्रेम) को एकल फ्रेम के समान आकार के बारे में संकुचित किया जा सकता है। जब तक मामूली अंतर डेटा का एक छोटा सा हिस्सा बनाता है, आप सभी अच्छे हैं।
नवीन

@Navin हानिपूर्ण संपीड़न thats, कई विवरण चले गए हैं, लेकिन ज्यादातर लोग नोटिस नहीं करेंगे। Paq * दोषरहित संपीड़न है
OneSolitaryNoob

1

मैं कल्पना करूंगा कि एक अंकगणित कोडर के साथ बर्स-व्हीलर ट्रांसफॉर्मर इस पर्याप्त बड़ी खिड़की के लिए आदर्श होगा। यदि आप फ़ोटो के एक छोटे से रन के बराबर ब्लॉक आकार का उपयोग करने के लिए BZIP2 को कॉन्फ़िगर करते हैं तो क्या होता है? यह धीमा होगा और अधिक मेमोरी लेगा लेकिन कम्प्रेशन रेशियो आसमान छूता है। और क्या आपने अभी तक बड़े ब्लॉक आकारों के साथ LZMA की कोशिश की है?


1

यहाँ एक सरल समाधान है जो तस्वीरों के लिए काम नहीं करता है लेकिन काम कर सकता है अगर किसी के पास बड़े पिक्सेल-बाय-पिक्सेल समान क्षेत्रों के साथ कई चित्र हैं: छवियों को एक बिना प्रारूप वाले प्रारूप में सहेजें जैसे कि BMP (PNG या GIF नहीं) और फिर उन्हें TAR और कंप्रेस करें XZ जैसे एक सभ्य कंप्रेसर के साथ, जैसे लिनक्स पर कुछ के साथ

tar -c myDirectory | xz -9 >myDirectory.tar.xz

TAR और XZ के बजाय, कोई भी समान प्रदर्शन पाने के लिए "सॉलिड आर्काइव" विकल्प के साथ 7-ज़िप का उपयोग कर सकता है। इस तरह मैं 16 समान स्क्रीनशॉट को संपीड़ित कर सकता था, जो प्रत्येक PN एमबी फ़ाइलों को 2 एमबी संग्रह में सहेजने पर लगभग 900 KB लेता था। इस समाधान का लाभ यह है कि यह सामान्य फ़ाइल स्वरूपों का उपयोग करता है, इसलिए यह नए सॉफ़्टवेयर को स्थापित किए बिना काम करता है। (दुर्भाग्य से पुराने और भी अधिक सामान्य कार्यक्रमों GZIP और BZIP2 ने मेरे लिए अच्छा काम नहीं किया - शायद इसलिए कि BZIP2 का ब्लॉक आकार 900 KB से बड़ा नहीं हो सकता है।)


0

ऐसा नहीं कि मैंने देखा है। संभवत: निकटतम चीज कई समान जेपीईजी ले रही होगी और उन्हें एमजेपीईजी फिल्म में डाल देगी। आप समान उद्देश्य के लिए APNG या एनिमेटेड GIF का भी उपयोग कर सकते हैं।

मुझे यकीन नहीं है कि यह कितनी अच्छी तरह से काम करेगा, और ऐसा लगता है कि आप पहले से ही मूवी स्क्रैन्सैप्स के बारे में बात कर रहे हैं, इसलिए उन्हें एक फिल्म फ़ाइल ध्वनियों में बदल दिया जा रहा है ... उल्टा।

शायद एक बेहतर तरीका है, अगर आपके पास अभी भी क्लिप है जो स्क्रीन से आया है, तो बस एक कमांड लाइन टूल मिलेगा जो आपके लिए सटीक फ्रेम निकाल सकता है, उस अद्वितीय पहचानकर्ता को एक पाठ फ़ाइल में कहीं कॉपी कर सकता है, और फिर आप हमेशा कर सकते हैं जरूरत पड़ने पर आसानी से फ्रेम को दोबारा निकालें।


जीआईएफ तस्वीरों को संपीड़ित करने के लिए उपयुक्त नहीं है, और एनिमेटेड जीआईएफ और भी कम है। यहां तक ​​कि एक MJPEG वीडियो के लिए फ़ोटो को संपीड़ित करना मेरी दृष्टि में उपयोगी नहीं लगता है, क्योंकि एकल छवियों को पुनर्स्थापित करना मुश्किल होगा।
मार्टिन अप

मैंने यह नहीं कहा कि यह एक अच्छा विचार था ... :-) अंतिम विचार था कि फ़ोटो को उनके मूल स्वरूप के एक एनिमेटेड संस्करण में डाला जाए।
एप्रेज़ियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.