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

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

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

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

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

अल्फा शब्द का उपयोग स्मिथ द्वारा इस प्रकार समझाया गया है: "हमने इसे क्लासिक रैखिक इंटरपोलेशन सूत्र $$\alpha A + (1-\alpha)B$$ के कारण कहा है जो इस स्थिति में इंटरपोलेशन की मात्रा को नियंत्रित करने के लिए ग्रीक अक्षर अल्फा $$\alpha$$ का उपयोग करता है, दो छवियाँ A और B " अर्थात्, छवि A को छवि B के ऊपर संयोजित करते समय, सूत्र में $$\alpha$$ का मान सीधे A के अल्फ़ा चैनल से लिया जाता है।

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

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

उदाहरण के रूप पर, प्रत्येक पिक्सेल पर निम्नलिखित सूत्र प्रयुक्त करके ओवर ऑपरेटर को पूरा किया जा सकता है: :$$\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$$ परिणाम में पिक्सेल के रंग घटकों, क्रमशः छवि a और छवि 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)$$

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

पूर्वगुणित अल्फा का उपयोग नियमित अल्फा सम्मिश्रण (जैसे धुआं) के क्षेत्रों और ब्लेंड मोड या एडिशन (जैसे लौ और चमक प्रभाव) वाले क्षेत्रों को एक ही छवि के अंदर एन्कोड करने की अनुमति देने के लिए भी किया जा सकता है। इसे एक आरजीबीए ट्रिपलेट द्वारा दर्शाया जाता है जो बिना किसी अवरोध के उत्सर्जन को व्यक्त करता है, जैसे (0.4, 0.3, 0.2, 0.0)।

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

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

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

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

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

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

बाहरी संबंध

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