एक JPEG छवि में YCbCr रंग स्थान का प्रतिनिधित्व कैसे किया जाता है?


9

मुझे पता है कि एक 24 बिट छवि आर, जी और बी के लिए प्रत्येक 8 बिट को समर्पित करती है। क्या यह सिर्फ आरजीबी कलर स्पेस के लिए है। 24 बिट JPEG छवि के लिए YCbCr रंग स्थान में, बिट्स कैसे वितरित किए जाते हैं?

जवाबों:


3

YCbCr के लिए कुछ प्रारूप हैं। आम तौर पर बोलते हुए आंख क्रोमा (सीबी, सीआर, रंग) में परिवर्तन की तुलना में ल्यूमिनेंस (वाई, चमक) में बदलाव के लिए अधिक संवेदनशील है। इस प्रकार, छवि गुणवत्ता को बनाए रखते हुए कुछ क्रोमा जानकारी को मिटाना संभव है।

इस प्रकार, सबसे "महंगा" प्रारूप 4: 4: 4 है, जहां प्रत्येक लूमा (वाई) घटक के लिए 1 लाल अंतर (सीआर) और एक नीला अंतर (सीबी) घटक होते हैं।

फिर, मैंने जिस सिद्धांत का उल्लेख किया है, उसे लागू करने के लिए 4: 2: 2 है जहां प्रत्येक 2 Y घटकों के लिए 1 Cb और 1 Cr हैं। और यह 4: 1: 1 और 4: 2: 0, आदि के लिए और भी अधिक जानकारी के लिए यहाँ जाता है


ये पैटर्न वीडियो के लिए फ़्रीक्वेंसी सैंपलिंग को संदर्भित करते हैं, JPEG एन्कोडिंग को नहीं।
व्हिबर

@ शुभंकर: वे अक्सर वीडियो कोडिंग पर चर्चा करने में उपयोग किए जाते हैं, लेकिन जेपीईजी क्रोमिनेंस के दोहरे संकल्प के साथ ल्यूमिनेंस का भी समर्थन करता है। JPEG के मामले में, यह वैकल्पिक है - क्रोमा या तो पूर्ण-रेस या आधा-रेस हो सकता है।
जेरी कॉफिन

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

@thomasrutter, फ़ोटोशॉप आपके द्वारा चुनी गई गुणवत्ता सेटिंग के आधार पर सबसैंपलिंग को चुनता है। यह एक स्वतंत्र विकल्प नहीं है।
मार्क रैनसम

वैसे, संख्याएँ, Y, Pr, और Pb के लिए प्रति 4 क्षैतिज पिक्सेल के नमूनों की संख्या को संदर्भित करती हैं। तो 4: 4: 4 का मतलब है कि सभी तीन चैनल हर पिक्सेल का नमूना लेते हैं; 4: 2: 2 का अर्थ है कि पीआर और पीबी चैनल केवल क्षैतिज रूप से हर दूसरे पिक्सेल का नमूना लेते हैं; 4: 1: 1 (मुझे नहीं लगता कि यह कभी फोटोग्राफी में उपयोग किया जाता है, केवल वीडियो में) इसका मतलब है कि पीआर और पीबी केवल हर चौथे पिक्सेल को क्षैतिज रूप से नमूना करते हैं। 4: 2: 0 इस नियम से एक विशेष विचलन है। इसका मतलब यह नहीं है कि कोई Pb चैनल नहीं है। इसका मतलब यह है कि Pr और Pb चैनल क्षैतिज और ऊर्ध्वाधर दोनों दिशाओं में आधे हैं , न कि केवल क्षैतिज।
23

24

एक जेपीईजी आर, जी और बी चैनल प्रति 8 बिट्स के साथ शुरू हो सकता है, लेकिन जेपीईजी में संग्रहीत होने पर इसे बहुत अलग तरीके से संग्रहीत किया जाता है, जहां कोई वास्तविक "बिट गहराई" नहीं है, बल्कि इसके बजाय मूल्यों को किसी दिए गए सटीक की आवृत्ति गुणांक के रूप में संग्रहीत किया जाता है।

JPEG में जो अधिक प्रासंगिक है, वह है परिमाणीकरण दर , जो प्रभावित करती है कि संपीड़न के परिमाणीकरण चरण के दौरान कितनी जानकारी फेंकी गई है और इस प्रकार प्रत्येक गुणांक कितना सटीक है। जब आप फ़ोटोशॉप में JPEG को सहेजते हैं तो यह मात्राकरण दर "गुणवत्ता" सेटिंग द्वारा निर्धारित की जाती है। यह एक रेखापुंज छवि में के रूप में बिट गहराई से संबंधित नहीं है, और आप यह भी कह सकते हैं कि JPEG प्रारूप में JPEG प्रारूप में थोड़ी गहराई नहीं है, हालांकि JPEG एनकोडर / डिकोडर 24-बिट के साथ / अंत के साथ शुरू होते हैं रेखापुंज छवि।

जेपीईजी को बचाने के लिए प्रासंगिक अन्य प्रमुख कारक क्रोमा सब-सैंपलिंग प्रकार है । JPEG में, आपके पास क्षैतिज, या क्षैतिज और ऊर्ध्वाधर दोनों को हल करने का विकल्प होता है, रंग (Pr और Pb) चैनल का रिज़ॉल्यूशन luminance (लाइटनेस) चैनल के सापेक्ष होता है। जब विघटित होता है, तो रंगीन चैनल प्रक्षेपित होते हैं और अधिकांश फोटोग्राफिक विषय में यह बहुत अधिक अंतर नहीं करता है।

यहाँ एक संक्षिप्त सारांश है कि कैसे एक छवि JPEG में बदल जाती है।

  1. RGB मानों को Y, Pb, Pr मानों में परिवर्तित किया जाता है। YPbPr रंग अंतरिक्ष कुशल संपीड़न के लिए बेहतर अनुकूल है, क्योंकि यह केवल एक चैनल में सबसे अधिक विस्तार करने वाली ल्यूमिनेन्स जानकारी रखता है। यह रूपांतरण एक साधारण अंकगणितीय ऑपरेशन है जो पूरी तरह से प्रतिवर्ती है, इसके अलावा यदि कोई गोल त्रुटि है।

  2. यदि किसी भी क्रोमा-सबमामलिंग (दूसरे शब्दों में, 4: 4: 4 मोड के अलावा किसी अन्य चीज का उपयोग करते हुए) का उपयोग किया जाता है, तो केवल Pb और Pr चैनल का ऊर्ध्वाधर और / या क्षैतिज रिज़ॉल्यूशन आधा हो जाता है। इस प्रकार इन चैनलों में ल्यूमिनेंस चैनल के विभिन्न पिक्सेल आयाम होंगे। यह रंग चैनलों में संकल्प के स्थायी नुकसान की ओर जाता है।

  3. प्रत्येक चैनल के लिए, छवि को 8 पिक्सेल द्वारा 8 पिक्सेल के ब्लॉक में विभाजित किया गया है, जो प्रत्येक चैनल में ऐसे प्रत्येक ब्लॉक के लिए 64 रैखिक मान देता है। यदि कोई चैनल या तो आयाम में 8 पिक्सेल से अधिक नहीं है, तो किनारे पिक्सेल को दोहराया जाता है (और डिकम्प्रेसिंग के समय बाहर फेंक दिया जाएगा - इस प्रकार जेपीईजी संपीड़न हमेशा आयामों के साथ अधिक कुशल होता है जो 8 पिक्सल के गुणक होते हैं, या 16 यदि आप कारक हैं क्रोमा में सबसम्प्लिंग)।

  4. प्रत्येक ब्लॉक में 64 मान अंतरिक्ष डोमेन से आवृत्ति डोमेन में परिवर्तन से गुजरते हैं, इस मामले में असतत कोसाइन रूपांतरण कहा जाता है। आप 64 गुणांक के साथ समाप्त होते हैं, प्रत्येक उस ब्लॉक द्वारा लिए गए क्षेत्र पर एक विशेष आवृत्ति मानचित्र के आयाम का प्रतिनिधित्व करते हैं। पहला मान सबसे कम आवृत्ति है जो प्रभावी रूप से सभी पिक्सेल का औसत मूल्य है, अंतिम मूल्यों तक सही है जो ब्लॉक के उच्चतम आवृत्ति घटक का वर्णन करता है। पहले के मान सभी बहुत अधिक विचलन करते हैं, और अंतिम छवि के लुक के लिए अधिक महत्वपूर्ण होते हैं जो एक ब्लॉक में बाद के मूल्यों से अधिक होता है। जब तक आप पर्याप्त परिशुद्धता का उपयोग करते हैं यह ऑपरेशन पूरी तरह से प्रतिवर्ती है।

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

  6. इस परिमाणीकरण के बाद यह बाद के कई के लिए विशिष्ट है, कम महत्वपूर्ण गुणांक शून्य होने के लिए, इसलिए इन्हें बाहर फेंक दिया जाता है। तब (दोषरहित) परिवर्तनशील-लंबाई वाली कोडिंग रूटीन सभी शेष गुणांकों को एक कुशल तरीके से कूटबद्ध करती है, भले ही प्रत्येक एक अलग संख्या में बिट्स का उपयोग कर सकता है।

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


2
मुझे लगता है कि मेरे दिमाग में सिर्फ विस्फोट हुआ।
निक बेडफोर्ड

Chroma-subsampling का परिणाम "नुकसान का समाधान" नहीं है। यह विशेष रूप से लाल चैनल में बहुत ध्यान देने योग्य कलाकृतियों का परिचय देता है।
मार्क रैनसम

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

5
मुझे नहीं लगता कि मैंने जेपीआर के स्पष्टीकरण को समझने के लिए कभी भी बेहतर, आसान देखा है - या वास्तव में हानिपूर्ण - छवि संपीड़न। निश्चित +1
jay.lee

क्षमा करें, मेरा तात्पर्य यह नहीं था कि कलाकृतियों का सबसे बड़ा कारण यह है। यह सिर्फ इतना है कि परिमाणीकरण से मौजूदा त्रुटियां 2X तक उड़ जाती हैं, जिससे वे बहुत अधिक दिखाई देते हैं। मुझे लगता है कि यह जानना महत्वपूर्ण है कि सबमामलिंग का दृश्य प्रभाव केवल थोड़े अतिरिक्त फ़िज़नेस से अधिक है।
मार्क रैनसम

1

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

दिन के अंत में यह अभी भी हानिपूर्ण संपीड़न है।


-1

प्रत्येक चैनल के लिए लगभग 8 बिट्स हैं, लेकिन इसे करने के कई अलग-अलग तरीके हैं। विवरण YCbCr पर विकिपीडिया लेख में दिया गया है ।


यह प्रश्न में कहा गया था। अधिक विस्तृत उत्तर दें।
निक बेडफोर्ड

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

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