अल्फ़ा कंपोज़िटिंग

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

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

हालाँकि दो छवियों को संयोजित करने का सबसे बुनियादी ऑपरेशन एक को दूसरे के ऊपर रखना है, ऐसे कई ऑपरेशन या मिश्रण मोड हैं, जिनका उपयोग किया जाता है।

इतिहास
अल्फ़ा चैनल की अवधारणा एल्वी रे स्मिथ द्वारा प्रस्तुत की गई थी 1970 के दशक के अंत में न्यूयॉर्क इंस्टीट्यूट ऑफ टेक्नोलॉजी कंप्यूटर ग्राफिक्स लैब में। ब्रूस ए. वालेस ने 1981 में भौतिक परावर्तन/संचारण मॉडल के आधार पर उसी स्ट्रेट ओवर ऑपरेटर को प्राप्त किया। थॉमस पोर्टर (पिक्सर) और टॉम डफ के 1984 के एक पेपर में ज्यामितीय दृष्टिकोण का उपयोग करके पूर्वगुणित अल्फा की शुरुआत की गई। अल्फ़ा शब्द का उपयोग स्मिथ द्वारा इस प्रकार समझाया गया है: उत्तल संयोजन के कारण हमने इसे ऐसा कहा $$\alpha A + (1-\alpha)B$$ वह ग्रीक अक्षर का उपयोग करता है $$\alpha$$ (अल्फा) इस मामले में, दो छवियों ए और बी के बीच इंटरपोलेशन की मात्रा को नियंत्रित करने के लिए। अर्थात्, छवि A को छवि B के ऊपर संयोजित करते समय, का मान $$\alpha$$ सूत्र में सीधे ए के अल्फा चैनल से लिया गया है।

विवरण
2डी छवि में प्रत्येक चित्र तत्व (पिक्सेल) के लिए एक रंग संयोजन संग्रहीत किया जाता है, जो अक्सर लाल, हरे और नीले (आरजीबी रंग मॉडल) का संयोजन होता है। जब अल्फा कंपोजिटिंग उपयोग में होती है, तो प्रत्येक पिक्सेल के अल्फा चैनल में एक अतिरिक्त संख्यात्मक मान संग्रहीत होता है, जिसका मान 0 से 1 तक होता है। 0 के मान का मतलब है कि पिक्सेल पूरी तरह से पारदर्शिता और पारभासी है और पिक्सेल के नीचे का रंग बदल जाएगा। आर पार दिखाओ। 1 के मान का मतलब है कि पिक्सेल पूरी तरह से अपारदर्शी है।

अल्फा चैनल के अस्तित्व के साथ, कंपोजिटिंग बीजगणित का उपयोग करके कंपोजिटिंग छवि संचालन को व्यक्त करना संभव है। उदाहरण के लिए, दो छवियों ए और बी को देखते हुए, सबसे आम कंपोज़िटिंग ऑपरेशन छवियों को संयोजित करना है ताकि ए अग्रभूमि में दिखाई दे और बी पृष्ठभूमि में दिखाई दे। इसे बी के ऊपर ए के रूप में व्यक्त किया जा सकता है। ओवर के अलावा, पोर्टर और डफ कंपोजिटिंग ऑपरेटरों को परिभाषित किया गया है, जो विकल्पों पर विचार करने के बाद (यह वाक्यांश मैट (फिल्म निर्माण) #गारबेज_एंड_होल्डआउट_मैट्स को संदर्भित करता है और आमतौर पर इसे संक्षिप्त रूप में कहा जाता है), एटॉप, और एक्सओआर (और रिवर्स ऑपरेटर्स रोवर, रिन, राउट और रैटॉप) द्वारा परिभाषित किया गया है। दो पिक्सेल के रंगों को मिश्रित करने में, जब उनका कवरेज, वैचारिक रूप से, ऑर्थोगोनल रूप से मढ़ा जाता है:

उदाहरण के तौर पर, प्रत्येक पिक्सेल पर निम्नलिखित सूत्र लागू करके ओवर ऑपरेटर को पूरा किया जा सकता है: :$$\alpha_o = \alpha_a + \alpha_b(1 - \alpha_a)$$
 * $$C_o = \frac{ C_a \alpha_a + C_b \alpha_b (1 - \alpha_a) }{\alpha_o}$$

यहाँ $$C_o$$, $$C_a$$ और $$C_b$$ परिणाम में पिक्सेल के रंग घटकों, क्रमशः छवि ए और छवि बी, को प्रत्येक रंग चैनल (लाल/हरा/नीला) पर व्यक्तिगत रूप से लागू किया जाता है, जबकि $$\alpha_o$$, $$\alpha_a$$ और $$\alpha_b$$ संबंधित पिक्सेल के अल्फा मान हैं।

ओवर ऑपरेटर, वास्तव में, सामान्य पेंटिंग ऑपरेशन है (पेंटर का एल्गोरिदम देखें)। अंदर और बाहर ऑपरेटर क्लैपिंग पथ  के अल्फा कंपोजिटिंग समकक्ष हैं। दोनों दूसरी छवि के केवल अल्फा चैनल का उपयोग करते हैं और रंग घटकों को अनदेखा करते हैं। इसके अलावा, प्लस एडिटिव ब्लेंडिंग को परिभाषित करता है।

सीधा बनाम पूर्वगुणित
यदि किसी छवि में अल्फा चैनल का उपयोग किया जाता है, तो दो सामान्य प्रतिनिधित्व उपलब्ध हैं: सीधा (असंबद्ध) अल्फा और प्रीमल्टिप्लाइड (संबद्ध) अल्फा।
 * सीधे अल्फा के साथ, आरजीबी घटक इसकी अस्पष्टता की परवाह किए बिना, ऑब्जेक्ट या पिक्सेल के रंग का प्रतिनिधित्व करते हैं। यह पिछले अनुभाग में ओवर ऑपरेटर द्वारा बताई गई विधि है।
 * प्रीमल्टिप्लाइड अल्फा के साथ, आरजीबी घटक ऑब्जेक्ट या पिक्सेल के उत्सर्जन का प्रतिनिधित्व करते हैं, और अल्फा रोड़ा का प्रतिनिधित्व करता है। ओवर ऑपरेटर तब बन जाता है: *:$$C_o = C_a + C_b(1 - \alpha_a)$$
 * $$\alpha_o = \alpha_a + \alpha_b(1 - \alpha_a)$$

तुलना
प्रीमल्टिप्लाइड अल्फा का सबसे महत्वपूर्ण लाभ यह है कि यह सही सम्मिश्रण, प्रक्षेप और फ़िल्टर (सिग्नल प्रोसेसिंग) की अनुमति देता है। पूर्वगुणित अल्फ़ा के बिना सामान्य प्रक्षेप से RGB जानकारी पूरी तरह से पारदर्शी (A=0) क्षेत्रों से लीक हो जाती है, भले ही यह RGB जानकारी आदर्श रूप से अदृश्य हो। जब पारदर्शी और अपारदर्शी क्षेत्रों के बीच अचानक सीमाओं वाली छवियों को प्रक्षेपित या फ़िल्टर किया जाता है, तो इसके परिणामस्वरूप उन रंगों की सीमाएँ हो सकती हैं जो मूल छवि में दिखाई नहीं दे रही थीं। अर्धपारदर्शिता के क्षेत्रों में भी त्रुटियां होती हैं क्योंकि आरजीबी घटकों को सही ढंग से भारित नहीं किया जाता है, जिससे अधिक पारदर्शी (निचले अल्फा) पिक्सल के रंग को गलत तरीके से उच्च भार मिलता है। प्रीमल्टिप्लाइड अल्फा का उपयोग नियमित अल्फा सम्मिश्रण (जैसे धुआं) के क्षेत्रों और ब्लेंड मोड # एडिशन (जैसे लौ और चमक प्रभाव) वाले क्षेत्रों को एक ही छवि के भीतर एन्कोड करने की अनुमति देने के लिए भी किया जा सकता है। इसे एक RGBA ट्रिपलेट द्वारा दर्शाया जाता है जो बिना किसी अवरोध के उत्सर्जन को व्यक्त करता है, जैसे (0.4, 0.3, 0.2, 0.0)।

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

उदाहरण
यह मानते हुए कि पिक्सेल का रंग सीधे (गैर-प्रीमल्टीप्लाइड) RGBA टुपल्स का उपयोग करके व्यक्त किया जाता है, (0, 0.7, 0, 0.5) का पिक्सेल मान एक ऐसे पिक्सेल का तात्पर्य करता है जिसमें 70% अधिकतम हरे रंग की तीव्रता और 50% अस्पष्टता होती है। यदि रंग पूरी तरह हरा होता, तो इसका RGBA (0, 1, 0, 0.5) होता। हालाँकि, यदि यह पिक्सेल पूर्वगुणित अल्फा का उपयोग करता है, तो सभी RGB मान (0, 0.7, 0) को अल्फा मान 0.5 से गुणा किया जाता है, या रोड़ा बनाने के लिए स्केल किया जाता है, जिसे उपज (0, 0.35, 0, 0.5) के साथ जोड़ा जाता है। इस मामले में, जी चैनल के लिए 0.35 मान वास्तव में 70% हरित उत्सर्जन तीव्रता (50% रोड़ा के साथ) को इंगित करता है। शुद्ध हरित उत्सर्जन को (0, 0.5, 0, 0.5) के रूप में एन्कोड किया जाएगा। यह जानना कि क्या कोई फ़ाइल सीधे या पूर्वगुणित अल्फा का उपयोग करती है, इसे सही ढंग से संसाधित करने या संयोजित करने के लिए आवश्यक है, क्योंकि एक अलग गणना की आवश्यकता होती है।

बिना किसी अवरोध के उत्सर्जन को सीधे अल्फा में प्रदर्शित नहीं किया जा सकता है। इस मामले में कोई रूपांतरण उपलब्ध नहीं है.

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

फ़ाइल स्वरूप विंडोज़ बिटमैप आम तौर पर इस चैनल का समर्थन नहीं करता है; हालाँकि, 32-बिट (888-8) या 16-बिट (444-4) जैसे विभिन्न प्रारूपों में अल्फा चैनल को सहेजना संभव है, हालाँकि सभी सिस्टम या प्रोग्राम इसे पढ़ने में सक्षम नहीं हैं: इसका उपयोग मुख्य रूप से किया जाता है कुछ वीडियो गेम या विशेष अनुप्रयोग; इन बीएमपी के निर्माण के लिए विशिष्ट कार्यक्रम भी बनाए गए हैं।

गामा सुधार


विशिष्ट डिजिटल छवियों के आरजीबी मान सीधे भौतिक प्रकाश तीव्रता से मेल नहीं खाते हैं, बल्कि गामा सुधार फ़ंक्शन द्वारा संपीड़ित होते हैं:


 * $$C_\text{encoded} = C_\text{linear}^{1/\gamma}$$

यह परिवर्तन एन्कोडेड छवि में सीमित संख्या में बिट्स का चयन करके बेहतर उपयोग करता है $$\gamma$$ जो चमक की गैर-रैखिक मानवीय धारणा से बेहतर मेल खाता है।

तदनुसार, कंप्यूटर प्रोग्राम जो ऐसी छवियों से निपटते हैं, उन्हें आरजीबी मानों को एक रैखिक स्थान में डीकोड करना होगा (गामा-संपीड़न को पूर्ववत करके), रैखिक प्रकाश तीव्रता को मिश्रित करना होगा, और परिणाम पर गामा संपीड़न को फिर से लागू करना होगा:


 * $$C_o = \left(\frac{ C_a^\gamma \alpha_a + C_b^\gamma \alpha_b (1 - \alpha_a)  }{\alpha_o}\right)^{1/\gamma}$$

जब पूर्वगुणित अल्फा के साथ जोड़ा जाता है, तो गामा संपीड़न से पहले, पूर्वगुणन रैखिक स्थान में किया जाता है। इसका परिणाम निम्न सूत्र है:


 * $$C_o = \left( C_a^\gamma + C_b^\gamma (1 - \alpha_a) \right)^{1/\gamma}$$

ध्यान दें कि केवल रंग घटक ही गामा-सुधार से गुजरते हैं; अल्फ़ा चैनल हमेशा रैखिक होता है.

अन्य पारदर्शिता विधियाँ
यद्यपि समान प्रयोजनों के लिए उपयोग किया जाता है, पैलेट (कंप्यूटिंग)#पैलेट्स और मास्क (कंप्यूटिंग)#इमेज मास्क में पारदर्शी रंग पृष्ठभूमि के साथ सुपरइम्पोज़्ड छवि पिक्सेल के सुचारू मिश्रण की अनुमति नहीं देते हैं (केवल संपूर्ण छवि पिक्सेल या संपूर्ण पृष्ठभूमि पिक्सेल की अनुमति है).

एक समान प्रभाव 1-बिट अल्फा चैनल के साथ प्राप्त किया जा सकता है, जैसा कि ट्रूविज़न टीजीए  छवि फ़ाइल प्रारूप के 16-बिट आरजीबीए उच्च रंग मोड और संबंधित टार्गा और एटी-विस्टा/एनयू-विस्टा डिस्प्ले एडाप्टर के उच्च रंग ग्राफिक मोड में पाया जाता है।. यह मोड प्रत्येक प्राथमिक आरजीबी रंग (मोनोक्रोम और आरजीबी रंग प्रारूपों की सूची # 15-बिट आरजीबी | 15-बिट आरजीबी) के लिए 5 बिट्स और अल्फा चैनल के रूप में शेष बिट समर्पित करता है।

तड़पना का उपयोग आंशिक रोड़ा अनुकरण करने के लिए किया जा सकता है जहां केवल 1-बिट अल्फा उपलब्ध है।

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

कुछ ऑर्डर-स्वतंत्र पारदर्शिता विधियाँ ओवर ऑपरेटर को क्रमविनिमेय सन्निकटन से प्रतिस्थापित करती हैं।

बाहरी संबंध

 * Compositing Digital Images - Thomas Porter and Tom Duff (Original Paper)
 * Image Compositing Fundamentals
 * Understand Compositing and Color extensions in SVG 1.2 in 30 minutes!
 * Alpha Matting and Premultiplication