640x480 जेपीईजी का सबसे बड़ा आकार क्या है?


21

मैं एक डेटा स्टोरेज डिवाइस बना रहा हूं जो रात के आसमान की कुछ निश्चित तस्वीरों को एक-दो घंटे में लेता है, और तस्वीरें ठीक उसी समय डाउनलोड हो जाएंगी जब वे सब ले लेंगे। मेमोरी कार्ड एक बार में सभी चित्रों को स्टोर करने में सक्षम होना चाहिए।

जो जेपीईजी लिया जाएगा वे 640x480 पिक्सेल हैं, और यह आवश्यक है कि उनमें से सभी 100 के लिए मेमोरी कार्ड पर पर्याप्त जगह हो। तो 640x480 JPEG का सबसे बड़ा आकार क्या है?

मैंने इसका पता लगाने के लिए कुछ परीक्षण चित्र लिए हैं:

#1#2#3

  • "स्टैकओवरफ़्लो" छवि का फ़ाइल आकार 73,774 बाइट्स है।
  • सफेद छवि का फ़ाइल आकार केवल 36,607 बाइट्स है।
  • लेकिन 149,339 बाइट्स में चेक्ड फोटो घड़ियों के लिए फ़ाइल का आकार।

मैं यह मान रहा हूं कि जटिलता के साथ फ़ाइल का आकार बढ़ता है।

मैं 100 640x480 जेपीईजीएस फिट करने के लिए मेमोरी कार्ड पर पर्याप्त जगह कैसे बना सकता हूं, यह जानने के बिना कि वे कितने जटिल और किस आकार के होंगे? मैं अतिरिक्त स्थान को बर्बाद नहीं करना चाहता क्योंकि मैं इनमें से कई उपकरणों को बना सकता हूं।


यह छवि निर्माता पर निर्भर करता है। 100-गुणवत्ता वाले जेपीईजी आसानी से आकार में उड़ा सकते हैं। आपका कैमरा और कैमरा सेटिंग्स क्या है?
John Dvorak

परीक्षण कैमरा एक कैनन पॉवर्सशॉट A1100 IS है। अधिक जानकारी के लिए, आप मेटाडेटा की जांच कर सकते हैं, क्योंकि मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं।
Blue Ice

1
तुम रात के आकाश के किसी भी नमूना चित्रों को लिया है। क्यू सेटिंग्स? परीक्षण के रूप में?
Carl B

2
यह क्या है के लिये ? क्या आपको यकीन है कि jpeg प्रारूप का सही विकल्प है।
Jack Aidley

3
जैक Aidleys टिप्पणी में कुछ पृष्ठभूमि जोड़ें: JPEG संपीड़न तस्वीर बदलता है। यह छोटे फ़ाइल आकार प्राप्त करने के लिए मान्यताओं और सूचनाओं को बनाता है। (जब तक कि 100% गुणवत्ता के लिए सेट न हो, उस स्थिति में आप एक असम्पीडित प्रारूप का उपयोग कर सकते हैं। अक्सर एक डिजिटल कैमरा में एक झगड़ा होता है या एक कच्चा इसके लिए सेटिंग। यदि आप सभी छोटे डॉट्स जैसे सितारों को रखना चाहते हैं तो इनमें से एक का उपयोग करें)। यह एक छवि के आकार को भी पूरी तरह से अनुमानित कर देगा।
Hennes

जवाबों:


20

यहाँ मैं JPEG फ़ाइल आकार के लिए एक ऊपरी बाउंड का सुझाव देता हूं। देख इल्मरी करोनन का जवाब अधिक विशिष्ट jpeg आकारों की चर्चा के लिए।

640x480 32-बिट बिटमैप छवि के लिए पिक्सेल भंडारण स्थान की गणना इस तरह की जा सकती है (इसके आधार पर इस उत्तर, लेकिन इग्नासियो वाज़केज़-अब्राम्स की टिप्पणी के आधार पर सही किया गया और इस जवाब देने के):

यह मानते हुए कि फ़ाइल में कोई संपीड़न लागू नहीं किया गया है, वहाँ हैं   307,200 पिक्सेल, जो एक 0.3MP है। हैंडी टेबल देखो

यदि प्रत्येक पिक्सेल में 32 बिट्स की जानकारी हो,   फिर

  1. 307,200 * 32 = 9,830,400 बिट्स की जानकारी
  2. बाइट मान बनने के लिए 8 बिट्स से विभाजित करें
  3. 9,830,400 / 8 = 1228800 बाइट्स (या 1.17 एमबी)

यह एक असम्पीडित बिटमैप का आकार है, और जेपीईजी फ़ाइल आकार के लिए ऊपरी सीमा होनी चाहिए (वास्तविकता में, क्योंकि जेपीईजीईएन उपयोग करता है दबाव , आपकी छवियां बहुत छोटी होनी चाहिए, विशेष रूप से यह देखते हुए कि आप रात के आकाश की तस्वीरें ले रहे हैं, जिसकी मुझे कल्पना है कि इसमें बहुत काला है। ध्यान दें कि आपके प्रश्न में सबसे बड़ी उदाहरण छवि केवल 0.14 एमबी है)।

हालांकि आपके विशिष्ट मुद्दे के संबंध में, यहां तक ​​कि ऊपरी बाउंड का उपयोग करते हुए, 100 छवियां केवल 117 एमबी हैं, और यह एक लंबा समय है क्योंकि मैंने मेमोरी कार्ड को 128 एमबी जितना छोटा देखा है। मुझे संदेह है कि वर्तमान में उपलब्ध मेमोरी कार्ड में आपकी आवश्यकताओं को पूरा करने की पर्याप्त क्षमता होगी।

जाहिरा तौर पर अधिकतम jpeg फ़ाइल आकार का मुद्दा कुछ बहस के अधीन है। इस स्टैक ओवरफ्लो का उत्तर पिक्सेल के प्रति 20.25 बाइट्स का सैद्धांतिक अधिकतम आकार या आपके मामले में 5.9 एमबी का सुझाव देता है, लेकिन उस आकार की छवि का निर्माण करने के लिए जेपीईजी प्रारूप की संपीड़न योजना का जानबूझकर दुरुपयोग करने की आवश्यकता होती है, इसलिए यह बहुत संभावना नहीं है कि आप कभी भी इस तरह के हैं। एक कैमरे द्वारा निर्मित चीज।


1
दुर्भाग्य से भी असम्पीडित बिटमैप मूल्य बस थोड़ा कम है, क्योंकि यह पैकिंग मानता है। एक अनपैक्ड बिटमैप प्रति पिक्सेल 32 बिट्स का उपयोग करता है (के लिए) संरेखण कारण), फ़ाइल का आकार 33% बढ़ाना।
Ignacio Vazquez-Abrams

धन्यवाद @ इग्नासियोवेज़ज़-एब्राम्स। मुझे एक स्वीकृत उत्तर मानने के लिए जो मिलता है वह सही है।
ForeverWintr

1
@ इग्नेकियोवेज़ज़-एब्राम्स - "संरेखण" एक विशेषता है जो प्रोसेसर (भंडारण माध्यम नहीं) द्वारा निर्देशित है, और जब प्रसंस्करण के लिए रैम में डेटा होता है तो सुविधाजनक होता है। भंडारण उद्देश्यों के लिए, 32-बिट शब्द संरेखण एक आवश्यकता नहीं है और निश्चित रूप से एक अपव्यय है। पैकिंग डेटा स्टोरेज से लिखने से पहले एक आम ऑपरेशन है, खासकर 25% बचत के लिए। मैंने ऐसे डिजिटल कैमरे देखे हैं जो कच्चे प्रारूप के लिए प्रत्येक पिक्सेल को 3 बाइट्स में स्टोर करते हैं।
sawdust

1
"... निश्चित रूप से एक अपव्यय।" आजकल। कई चंद्रमा पहले यह एक चक्र-बचत सुविधा माना जाता था (लोड पर संरेखित करने की आवश्यकता नहीं है, यह देखते हुए कि इसे कितना समय लगेगा)।
Ignacio Vazquez-Abrams

3
व्यवहार में, जबकि कुछ सिस्टम RGB छवि डेटा को 4 पिक्सेल प्रति पिक्सेल के रूप में संग्रहीत कर सकते हैं याद में , बहुत सारी छवि फ़ाइल प्रारूप प्रति पिक्सेल 3 बाइट्स का उपयोग करते हैं (जब तक कि चौथे बाइट में संग्रहीत एक वास्तविक अल्फा चैनल न हो)। मेरा जवाब नीचे देखें।
Ilmari Karonen

33

बस जांच करने के लिए, मुझे परीक्षण करने दें फॉरएवरविंटर का विश्लेषण प्रयोगात्मक।

JPEG संपीड़न (या) के लिए सबसे खराब तरह की इनपुट छवि कोई भी संपीड़न, वास्तव में) समान रूप से यादृच्छिक आरजीबी शोर है, जो सैद्धांतिक रूप से अक्षम है। तो मुझे कुछ का उपयोग कर उत्पन्न करते हैं netpbm उपकरण:

$ rawtoppm < /dev/urandom 640 480 > rnd.ppm
$ pnmtopng < rnd.ppm > rnd.png
$ du -b rnd.*
923772  rnd.png
921615  rnd.ppm

Uniformly random RGB noise, lossless PNG format
(समान रूप से यादृच्छिक 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

JPEG compressed RGB noise, quality = 100, no chroma subsampling
(जेपीईजी संकुचित आरजीबी शोर, गुणवत्ता = 100, कोई क्रोमा सबसम्पलिंग, 876 केबी)

क्या, यह कैसे छोटा हो सकता है? क्या मैंने यह नहीं कहा कि शुद्ध शोर असंगत था? खैर, बात यह है कि अधिकतम गुणवत्ता पर भी, सामान्य JPEG संपीड़न नहीं है काफी दोषरहित। जीआईएमपी में छवि को फिर से खोलना और मूल के साथ तुलना करना, कोई यह देख सकता है कि कुछ पिक्सेल उनके रंग मानों को एक या दो चरणों (256 में से) द्वारा स्थानांतरित कर चुके हैं। वे पिक्सेल हैं जहाँ JPEG संपीड़न एल्गोरिथ्म "धोखा" दिया गया था और यहाँ एक और दूर फेंक दिया गया था, जहाँ यह अनुमान था कि परिवर्तन ध्यान देने योग्य नहीं होगा। वास्तव में, मानव रहित आंख के लिए परिणाम मूल से काफी अप्रभेद्य है, लेकिन उन परित्यक्त बिट्स हेडर और एन्कोडिंग के लिए लेखांकन के बाद भी फ़ाइल आकार में एक औसत दर्जे की कमी तक जोड़ते हैं।

ताकि अधिकतम गुणवत्ता थी; अधिक विशिष्ट सेटिंग्स के बारे में क्या, जैसे pnmtojpeg चूक (गुणवत्ता = 75, सबसमलिंग सक्षम)? चलो यह कोशिश करते हैं:

$ pnmtojpeg < rnd.ppm > rnd2.jpg
$ du -b rnd2.jpg
185128  rnd2.jpg

JPEG compressed RGB noise, quality = 75, chroma subsampling
(जेपीईजी संकुचित आरजीबी शोर, गुणवत्ता = 75, क्रोमा सबसम्पलिंग, 184 केबी)

वाह, 901 से 184 kb तक! हालांकि, यह बहुत आक्रामक संपीड़न है, और आप निश्चित रूप से छवियों की तुलना करते समय अंतर बता सकते हैं। क्रोमा सबसम्पलिंग के कारण इसका अधिकांश भाग, जो मूल रूप से केवल 75% रंग (ह्यू / संतृप्ति) डेटा फेंक देता है। विकलांगों के साथ जीआईएमपी में इसे आज़माने से 350,618 बाइट फाइल मिलती है जो अभी भी (मानव आँख के लिए, कम से कम) बहुत ही मूल के करीब दिखाई देती है, जब यह बढ़ाया जाता है।

वैसे भी, इस सब का मतलब यह है कि कोई फर्क नहीं पड़ता कि आपकी रात की आकाश तस्वीरें कितनी भी शोर क्यों न हों, और चाहे आप कितनी भी उच्च गुणवत्ता का चयन करें, बस बिल्कुल नहीं 640 × 480 जेपीईजी फ़ाइल 900 केबी से काफी बड़ी हो सकती है। (ठीक है, जब तक कि आपके कैमरे ने एक बहु-मेगाबाइट Exif रंग प्रोफ़ाइल को इसे या कुछ समान रूप से बेवकूफ नहीं बनाया है, तब तक।) और यदि आप अधिक विशिष्ट JPEG संपीड़न सेटिंग्स का उपयोग कर रहे हैं, तो अधिकतम प्रशंसनीय फ़ाइल का आकार लगभग 200 kb या इससे कम हो जाता है। ।


4
सैद्धांतिक रूप से अक्षम केवल दोषरहित संपीड़न के लिए हालांकि, है ना?
Daniel Beck

1
@ डैनियलबेक: राइट। जाहिर है, आप किसी भी डेटा को जितना चाहें उतना कम कर सकते हैं यदि आप इसके कुछ हिस्सों को फेंकना चाहते हैं। (यह मूल रूप से जेपीईजी संपीड़न क्या करता है, यह सिर्फ इस तरह से करने की कोशिश करता है कि खोए हुए हिस्से मानव आंख के लिए ध्यान देने योग्य नहीं हैं, और यह कि क्या अवशेष कॉम्पैक्ट रूप से एन्कोड किए जा सकते हैं। शोर अभी भी इसके लिए एक कठिन मामला है, क्योंकि। केवल यहां तक ​​कि एक हानिकारक संपीड़न एल्गोरिदम शोर के साथ कर सकता है, इसके कुछ हिस्सों को फेंक दिया जाता है।)
Ilmari Karonen

हो सकता है कि सिर्फ मैं ही हूं, लेकिन दूसरी छवि पहले की तुलना में शानदार दिख रही है।
Bogdacutu

@Bogdacutu: यह नहीं होना चाहिए, हालांकि यह हमेशा संभव है कि आपका ब्राउज़र रंग प्रबंधन आदि के साथ कुछ अजीब कर रहा हो। उन दोनों को ग्राफिक्स एडिटर में लोड करने और रंग मानों की तुलना करने की कोशिश करें।
Ilmari Karonen

नाइस राइटअप @ इल्मरी।
ForeverWintr
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.