मुझे पता है कि एक 24 बिट छवि आर, जी और बी के लिए प्रत्येक 8 बिट को समर्पित करती है। क्या यह सिर्फ आरजीबी कलर स्पेस के लिए है। 24 बिट JPEG छवि के लिए YCbCr रंग स्थान में, बिट्स कैसे वितरित किए जाते हैं?
मुझे पता है कि एक 24 बिट छवि आर, जी और बी के लिए प्रत्येक 8 बिट को समर्पित करती है। क्या यह सिर्फ आरजीबी कलर स्पेस के लिए है। 24 बिट JPEG छवि के लिए YCbCr रंग स्थान में, बिट्स कैसे वितरित किए जाते हैं?
जवाबों:
YCbCr के लिए कुछ प्रारूप हैं। आम तौर पर बोलते हुए आंख क्रोमा (सीबी, सीआर, रंग) में परिवर्तन की तुलना में ल्यूमिनेंस (वाई, चमक) में बदलाव के लिए अधिक संवेदनशील है। इस प्रकार, छवि गुणवत्ता को बनाए रखते हुए कुछ क्रोमा जानकारी को मिटाना संभव है।
इस प्रकार, सबसे "महंगा" प्रारूप 4: 4: 4 है, जहां प्रत्येक लूमा (वाई) घटक के लिए 1 लाल अंतर (सीआर) और एक नीला अंतर (सीबी) घटक होते हैं।
फिर, मैंने जिस सिद्धांत का उल्लेख किया है, उसे लागू करने के लिए 4: 2: 2 है जहां प्रत्येक 2 Y घटकों के लिए 1 Cb और 1 Cr हैं। और यह 4: 1: 1 और 4: 2: 0, आदि के लिए और भी अधिक जानकारी के लिए यहाँ जाता है ।
एक जेपीईजी आर, जी और बी चैनल प्रति 8 बिट्स के साथ शुरू हो सकता है, लेकिन जेपीईजी में संग्रहीत होने पर इसे बहुत अलग तरीके से संग्रहीत किया जाता है, जहां कोई वास्तविक "बिट गहराई" नहीं है, बल्कि इसके बजाय मूल्यों को किसी दिए गए सटीक की आवृत्ति गुणांक के रूप में संग्रहीत किया जाता है।
JPEG में जो अधिक प्रासंगिक है, वह है परिमाणीकरण दर , जो प्रभावित करती है कि संपीड़न के परिमाणीकरण चरण के दौरान कितनी जानकारी फेंकी गई है और इस प्रकार प्रत्येक गुणांक कितना सटीक है। जब आप फ़ोटोशॉप में JPEG को सहेजते हैं तो यह मात्राकरण दर "गुणवत्ता" सेटिंग द्वारा निर्धारित की जाती है। यह एक रेखापुंज छवि में के रूप में बिट गहराई से संबंधित नहीं है, और आप यह भी कह सकते हैं कि JPEG प्रारूप में JPEG प्रारूप में थोड़ी गहराई नहीं है, हालांकि JPEG एनकोडर / डिकोडर 24-बिट के साथ / अंत के साथ शुरू होते हैं रेखापुंज छवि।
जेपीईजी को बचाने के लिए प्रासंगिक अन्य प्रमुख कारक क्रोमा सब-सैंपलिंग प्रकार है । JPEG में, आपके पास क्षैतिज, या क्षैतिज और ऊर्ध्वाधर दोनों को हल करने का विकल्प होता है, रंग (Pr और Pb) चैनल का रिज़ॉल्यूशन luminance (लाइटनेस) चैनल के सापेक्ष होता है। जब विघटित होता है, तो रंगीन चैनल प्रक्षेपित होते हैं और अधिकांश फोटोग्राफिक विषय में यह बहुत अधिक अंतर नहीं करता है।
यहाँ एक संक्षिप्त सारांश है कि कैसे एक छवि JPEG में बदल जाती है।
RGB मानों को Y, Pb, Pr मानों में परिवर्तित किया जाता है। YPbPr रंग अंतरिक्ष कुशल संपीड़न के लिए बेहतर अनुकूल है, क्योंकि यह केवल एक चैनल में सबसे अधिक विस्तार करने वाली ल्यूमिनेन्स जानकारी रखता है। यह रूपांतरण एक साधारण अंकगणितीय ऑपरेशन है जो पूरी तरह से प्रतिवर्ती है, इसके अलावा यदि कोई गोल त्रुटि है।
यदि किसी भी क्रोमा-सबमामलिंग (दूसरे शब्दों में, 4: 4: 4 मोड के अलावा किसी अन्य चीज का उपयोग करते हुए) का उपयोग किया जाता है, तो केवल Pb और Pr चैनल का ऊर्ध्वाधर और / या क्षैतिज रिज़ॉल्यूशन आधा हो जाता है। इस प्रकार इन चैनलों में ल्यूमिनेंस चैनल के विभिन्न पिक्सेल आयाम होंगे। यह रंग चैनलों में संकल्प के स्थायी नुकसान की ओर जाता है।
प्रत्येक चैनल के लिए, छवि को 8 पिक्सेल द्वारा 8 पिक्सेल के ब्लॉक में विभाजित किया गया है, जो प्रत्येक चैनल में ऐसे प्रत्येक ब्लॉक के लिए 64 रैखिक मान देता है। यदि कोई चैनल या तो आयाम में 8 पिक्सेल से अधिक नहीं है, तो किनारे पिक्सेल को दोहराया जाता है (और डिकम्प्रेसिंग के समय बाहर फेंक दिया जाएगा - इस प्रकार जेपीईजी संपीड़न हमेशा आयामों के साथ अधिक कुशल होता है जो 8 पिक्सल के गुणक होते हैं, या 16 यदि आप कारक हैं क्रोमा में सबसम्प्लिंग)।
प्रत्येक ब्लॉक में 64 मान अंतरिक्ष डोमेन से आवृत्ति डोमेन में परिवर्तन से गुजरते हैं, इस मामले में असतत कोसाइन रूपांतरण कहा जाता है। आप 64 गुणांक के साथ समाप्त होते हैं, प्रत्येक उस ब्लॉक द्वारा लिए गए क्षेत्र पर एक विशेष आवृत्ति मानचित्र के आयाम का प्रतिनिधित्व करते हैं। पहला मान सबसे कम आवृत्ति है जो प्रभावी रूप से सभी पिक्सेल का औसत मूल्य है, अंतिम मूल्यों तक सही है जो ब्लॉक के उच्चतम आवृत्ति घटक का वर्णन करता है। पहले के मान सभी बहुत अधिक विचलन करते हैं, और अंतिम छवि के लुक के लिए अधिक महत्वपूर्ण होते हैं जो एक ब्लॉक में बाद के मूल्यों से अधिक होता है। जब तक आप पर्याप्त परिशुद्धता का उपयोग करते हैं यह ऑपरेशन पूरी तरह से प्रतिवर्ती है।
फिर परिमाणीकरण कदम है, जहां पिछले चरण में आपको मिले 64 गुणांक में से प्रत्येक को कुछ संख्या (जिसे परिमाणीकरण कारक कहा जाता है) से विभाजित किया जाता है, और शेष को फेंक दिया जाता है। यह वह जगह है जहाँ नमूनों की शुद्धता सबसे अधिक प्रभावित होती है, लेकिन यह वह जगह है जहाँ आपको जेपीईजी से हानिरहित संपीड़न की तुलना में भारी जगह की बचत होती है। चूँकि पिछले परिवर्तन के बाद से सब कुछ फ़्रीक्वेंसी डोमेन में है, सटीकता का यह नुकसान इस परिवर्तन से पहले पिक्सेल की बिट गहराई / सटीकता को कम करने की तुलना में अवधारणात्मक छवि गुणवत्ता को संरक्षित करने में अपना सबसे अच्छा काम करता है। इस प्रक्रिया का उलटा केवल गुणांक को उसी संख्या से गुणा करना है जिसके द्वारा आपने गुणांकों को विभाजित किया है, लेकिन निश्चित रूप से जब से आप अवशेषों को फेंकते हैं तब आप गुणांक के कम परिशुद्धता के साथ समाप्त हो जाते हैं। इससे गुणवत्ता का स्थायी नुकसान होता है,
इस परिमाणीकरण के बाद यह बाद के कई के लिए विशिष्ट है, कम महत्वपूर्ण गुणांक शून्य होने के लिए, इसलिए इन्हें बाहर फेंक दिया जाता है। तब (दोषरहित) परिवर्तनशील-लंबाई वाली कोडिंग रूटीन सभी शेष गुणांकों को एक कुशल तरीके से कूटबद्ध करती है, भले ही प्रत्येक एक अलग संख्या में बिट्स का उपयोग कर सकता है।
यह कहना असंभव है कि एक निश्चित परिमाणीकरण कारक एक निश्चित बिट गहराई के बराबर है क्योंकि परिमाणीकरण बैंडिंग नहीं देता है जब आप थोड़ी गहराई कम करते हैं, लेकिन इसके बजाय समग्र अवधारणात्मक नुकसान विस्तार से देते हैं, उन हिस्सों में शुरू करते हैं जहां आप इसे नोटिस करेंगे। कम है क्योंकि यह अपनी आवृत्ति के लिए इस तरह के कम आयाम है।
लूमा (वाई) से अलग चैनलों में क्रोमा (सीबी सीआर) का प्रतिनिधित्व करने से संपीड़न पर एक और सकारात्मक प्रभाव पड़ता है। दृश्यमान अधिकांश जानकारी लुमा चैनल में है। मानव आँखें क्रोमा चैनलों में कम स्थानिक रिज़ॉल्यूशन और अधिक आक्रामक मात्राकरण दोनों को सहन करती हैं। तो एक आक्रामक रूप से संकुचित छवि क्रोमा के लिए लगभग 10% फ़ाइल स्थान का उपभोग कर सकती है, और बाकी का लूम, और अभी भी सभ्य दिखती है।
दिन के अंत में यह अभी भी हानिपूर्ण संपीड़न है।
प्रत्येक चैनल के लिए लगभग 8 बिट्स हैं, लेकिन इसे करने के कई अलग-अलग तरीके हैं। विवरण YCbCr पर विकिपीडिया लेख में दिया गया है ।