बस जांच करने के लिए, मुझे परीक्षण करने दें फॉरएवरविंटर का विश्लेषण प्रयोगात्मक।
JPEG संपीड़न (या) के लिए सबसे खराब तरह की इनपुट छवि कोई भी संपीड़न, वास्तव में) समान रूप से यादृच्छिक आरजीबी शोर है, जो सैद्धांतिक रूप से अक्षम है। तो मुझे कुछ का उपयोग कर उत्पन्न करते हैं netpbm उपकरण:
$ rawtoppm < /dev/urandom 640 480 > rnd.ppm
$ pnmtopng < rnd.ppm > rnd.png
$ du -b rnd.*
923772 rnd.png
921615 rnd.ppm
(समान रूप से यादृच्छिक RGB शोर, दोषरहित PNG प्रारूप, 903 kb)
नोट (मार्च 2017): मुझे यकीन है कि ऊपर की छवि है था पीएनजी प्रारूप में जब मैंने पहली बार यह उत्तर लिखा था और इसे 2013 में वापस अपलोड किया था। (नीचे दिए गए रंग प्रबंधन के बारे में एक टिप्पणी भी इसका तात्पर्य है।) दुर्भाग्य से, ऐसा लगता है कि इसे चुपचाप किसी बिंदु पर JPEG में परिवर्तित कर दिया गया है। दृश्य तुलना यहाँ बेकार है।
मैंने एक नई PNG परीक्षण छवि को फिर से लोड करने का प्रयास किया है, लेकिन जाहिर है कि यह imgur पर किसी प्रकार की मनमानी PNG फ़ाइल आकार सीमा को हिट करता है और JPEG में स्वतः परिवर्तित हो जाता है। मुझे यकीन नहीं है कि इस मुद्दे के आसपास कोई रास्ता है, लेकिन कम से कम अगर आपके पास लिनक्स बॉक्स तक पहुंच है, तो आप हमेशा दिए गए आदेशों को फिर से चला सकते हैं ताकि आपकी खुद की परीक्षण छवियां उत्पन्न हो सकें। किसी भी मामले में, संपीड़न गुणवत्ता की प्रत्यक्ष दृश्य तुलना को रोकने के अलावा, यह किसी भी तरह से नीचे के विश्लेषण को अमान्य नहीं करता है।
ठीक है, इसलिए असम्पीडित PPM फ़ाइल 640 × 480 × 3 = 921,600 बाइट्स लंबी है, साथ ही न्यूनतम PPM हैडर के लिए 15 बाइट्स, जैसा कि अपेक्षित था। पीएनजी प्रारूप का उपयोग करके इसे दोषरहित रूप से संपीड़ित करने की कोशिश करने से आकार केवल 2157 बाइट्स से बढ़ जाता है, संभवतः पीएनजी हेडर और मेटाडेटा द्वारा लिया जाता है और संभवत: असंगत डेटा को संपीड़ित करने की कोशिश में संपीड़न एल्गोरिथ्म में कुछ मामूली अक्षमता है।
(हाँ, यह पिक्सेल प्रति 3 बाइट्स है, 4 नहीं; यहां तक कि पीपीएम प्रारूप भी, जो ग्राफिक्स फ़ाइल प्रारूप के रूप में सरल है, डिस्क पर प्रति पिक्सेल एक बेकार चौथी बाइट स्टोर करने के लिए पर्याप्त गूंगा नहीं है।) हो सकता है संरेखण कारणों के लिए स्मृति में ऐसा करने के लिए कुछ लाभ हो, ख़ास तौर पर यदि आपको एक अल्फा चैनल को स्टोर करने की आवश्यकता है, लेकिन उन कारणों को लागू नहीं किया जाता है जब छवि को किसी फ़ाइल में लिखते हैं।)
ठीक है, तो जेपीईजी के बारे में क्या? आइए पहले संपीड़न के नुकसान को कम करने की कोशिश करें (गुणवत्ता = 100, कोई क्रोमा सबसम्पलिंग, फ्लोटिंग-पॉइंट डीसीटी)। दुर्भाग्य से pnmtojpeg
गाइड स्पष्ट रूप से समझा नहीं है कि सभी प्रासंगिक विकल्पों को कैसे सेट किया जाए (विशेष रूप से, -sample
विकल्प "विजार्ड्स के लिए विकल्प" खंड में सूचीबद्ध है, जो कि बस लिबजप्रेस प्रलेखन में एक फ़ाइल का संदर्भ देता है), इसलिए मैं इसके बजाय इसे जीआईएमपी में बदल दूंगा। परिणामी फ़ाइल इस तरह दिखती है:
897249 rnd.jpg
(जेपीईजी संकुचित आरजीबी शोर, गुणवत्ता = 100, कोई क्रोमा सबसम्पलिंग, 876 केबी)
क्या, यह कैसे छोटा हो सकता है? क्या मैंने यह नहीं कहा कि शुद्ध शोर असंगत था? खैर, बात यह है कि अधिकतम गुणवत्ता पर भी, सामान्य JPEG संपीड़न नहीं है काफी दोषरहित। जीआईएमपी में छवि को फिर से खोलना और मूल के साथ तुलना करना, कोई यह देख सकता है कि कुछ पिक्सेल उनके रंग मानों को एक या दो चरणों (256 में से) द्वारा स्थानांतरित कर चुके हैं। वे पिक्सेल हैं जहाँ JPEG संपीड़न एल्गोरिथ्म "धोखा" दिया गया था और यहाँ एक और दूर फेंक दिया गया था, जहाँ यह अनुमान था कि परिवर्तन ध्यान देने योग्य नहीं होगा। वास्तव में, मानव रहित आंख के लिए परिणाम मूल से काफी अप्रभेद्य है, लेकिन उन परित्यक्त बिट्स हेडर और एन्कोडिंग के लिए लेखांकन के बाद भी फ़ाइल आकार में एक औसत दर्जे की कमी तक जोड़ते हैं।
ताकि अधिकतम गुणवत्ता थी; अधिक विशिष्ट सेटिंग्स के बारे में क्या, जैसे pnmtojpeg
चूक (गुणवत्ता = 75, सबसमलिंग सक्षम)? चलो यह कोशिश करते हैं:
$ pnmtojpeg < rnd.ppm > rnd2.jpg
$ du -b rnd2.jpg
185128 rnd2.jpg
(जेपीईजी संकुचित आरजीबी शोर, गुणवत्ता = 75, क्रोमा सबसम्पलिंग, 184 केबी)
वाह, 901 से 184 kb तक! हालांकि, यह बहुत आक्रामक संपीड़न है, और आप निश्चित रूप से छवियों की तुलना करते समय अंतर बता सकते हैं। क्रोमा सबसम्पलिंग के कारण इसका अधिकांश भाग, जो मूल रूप से केवल 75% रंग (ह्यू / संतृप्ति) डेटा फेंक देता है। विकलांगों के साथ जीआईएमपी में इसे आज़माने से 350,618 बाइट फाइल मिलती है जो अभी भी (मानव आँख के लिए, कम से कम) बहुत ही मूल के करीब दिखाई देती है, जब यह बढ़ाया जाता है।
वैसे भी, इस सब का मतलब यह है कि कोई फर्क नहीं पड़ता कि आपकी रात की आकाश तस्वीरें कितनी भी शोर क्यों न हों, और चाहे आप कितनी भी उच्च गुणवत्ता का चयन करें, बस बिल्कुल नहीं 640 × 480 जेपीईजी फ़ाइल 900 केबी से काफी बड़ी हो सकती है। (ठीक है, जब तक कि आपके कैमरे ने एक बहु-मेगाबाइट Exif रंग प्रोफ़ाइल को इसे या कुछ समान रूप से बेवकूफ नहीं बनाया है, तब तक।) और यदि आप अधिक विशिष्ट JPEG संपीड़न सेटिंग्स का उपयोग कर रहे हैं, तो अधिकतम प्रशंसनीय फ़ाइल का आकार लगभग 200 kb या इससे कम हो जाता है। ।