बिट ब्लिट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 3: Line 3:
प्रचालन में कम से कम दो बिटमैप सम्मलित होते हैं, स्रोत (या अग्रभूमि) और गंतव्य (या पृष्ठभूमि) और संभवतः तीसरा जिसे [[मुक्त]] [[स्टैंसिल]] कहा जाता है। इसके परिणाम स्वरुप इसे चौथे बिटमैप पर लिखा जा सकता है, चूंकि अधिकांशतः यह गंतव्य को परिवर्तित कर देता है। जिसके माध्यम से निर्दिष्ट रेखापुंज प्रचालन (आरओपी) के अनुसार प्रत्येक पिक्सल को बिटवाइज़ संयोजित किया जाता है और फिर परिणाम को गंतव्य पर लिखा जाता है। निर्दिष्ट रेखापुंज प्रचालन (आरओपी) अनिवार्य रूप से [[बूलियन तर्क]] का सूत्र है। सबसे स्पष्ट निर्दिष्ट रेखापुंज प्रचालन (आरओपी) स्रोत के साथ गंतव्य को अधिलेखित कर देता है। अन्य निर्दिष्ट रेखापुंज प्रचालन (आरओपी) में [[तार्किक संयोजन]], एक्सओआर, और [[नकार|नकारात्मक]] संचालन सम्मलित हो जाता हैं।<ref name="Sanchez">{{cite book|last=Sanchez|first=Julio |author2=Maria P. Canton|title=Software solutions for engineers and scientists |publisher=CRC Press|date=2007|pages=690|chapter=Displaying Bit-Mapped images|chapter-url=https://books.google.com/books?id=jtKc0k5BWA8C&pg=PA690}}</ref> कमोडोर [[अमिगा]] के ग्राफिक्स विस्तार और अन्य तीन इनपुट के साथ 256 संभावित बूलियन कार्यों में से किसी का उपयोग करके तीन स्रोत बिटमैप्स को जोड़ सकते हैं।
प्रचालन में कम से कम दो बिटमैप सम्मलित होते हैं, स्रोत (या अग्रभूमि) और गंतव्य (या पृष्ठभूमि) और संभवतः तीसरा जिसे [[मुक्त]] [[स्टैंसिल]] कहा जाता है। इसके परिणाम स्वरुप इसे चौथे बिटमैप पर लिखा जा सकता है, चूंकि अधिकांशतः यह गंतव्य को परिवर्तित कर देता है। जिसके माध्यम से निर्दिष्ट रेखापुंज प्रचालन (आरओपी) के अनुसार प्रत्येक पिक्सल को बिटवाइज़ संयोजित किया जाता है और फिर परिणाम को गंतव्य पर लिखा जाता है। निर्दिष्ट रेखापुंज प्रचालन (आरओपी) अनिवार्य रूप से [[बूलियन तर्क]] का सूत्र है। सबसे स्पष्ट निर्दिष्ट रेखापुंज प्रचालन (आरओपी) स्रोत के साथ गंतव्य को अधिलेखित कर देता है। अन्य निर्दिष्ट रेखापुंज प्रचालन (आरओपी) में [[तार्किक संयोजन]], एक्सओआर, और [[नकार|नकारात्मक]] संचालन सम्मलित हो जाता हैं।<ref name="Sanchez">{{cite book|last=Sanchez|first=Julio |author2=Maria P. Canton|title=Software solutions for engineers and scientists |publisher=CRC Press|date=2007|pages=690|chapter=Displaying Bit-Mapped images|chapter-url=https://books.google.com/books?id=jtKc0k5BWA8C&pg=PA690}}</ref> कमोडोर [[अमिगा]] के ग्राफिक्स विस्तार और अन्य तीन इनपुट के साथ 256 संभावित बूलियन कार्यों में से किसी का उपयोग करके तीन स्रोत बिटमैप्स को जोड़ सकते हैं।


आधुनिक ग्राफ़िक्स सॉफ़्टवेयर ने लगभग पूर्ण प्रकार से बिटवाइज़ प्रचालन को [[अल्फा रचना]] जैसे प्रभावों के लिए उपयोग किए जाने वाले अधिक सामान्य गणितीय प्रचालन के साथ परिवर्तित किया जाता है। सामान्यतः ऐसा इसलिए है क्योंकि रंग दृश्य पर बिटवाइज़ प्रचालन सामान्यतः ऐसे परिणाम नहीं देते हैं जो प्रकाशीय या स्याही के भौतिक संयोजन के समान होते हैं। चूँकि कुछ सॉफ़्टवेयर अभी भी परस्पर संवादात्मक हाइलाइट आयतों या क्षेत्र की सीमाओं को आकर्षित करने के लिए एक्सओआर का उपयोग करते हैं, जब यह छवियों को रंगने के लिए किया जाता है, तो असामान्य परिणामी रंग आसानी से देखे जा सकते हैं।
आधुनिक ग्राफ़िक्स सॉफ़्टवेयर ने लगभग पूर्ण प्रकार से बिटवाइज़ प्रचालन को [[अल्फा रचना]] जैसे प्रभावों के लिए उपयोग किए जाने वाले अधिक सामान्य गणितीय प्रचालन के साथ परिवर्तित किया जाता है। सामान्यतः ऐसा इसलिए है क्योंकि रंग दृश्य पर बिटवाइज़ प्रचालन सामान्यतः ऐसे परिणाम नहीं देते हैं जो प्रकाशीय या स्याही के भौतिक संयोजन के समान होते हैं। चूँकि कुछ सॉफ़्टवेयर अभी भी परस्पर संवादात्मक हाइलाइट आयतों या क्षेत्र की सीमाओं को आकर्षित करने के लिए एक्सओआर का उपयोग करते हैं, जब यह प्रतिबिम्बों को रंगने के लिए किया जाता है, इस प्रकार असामान्य परिणामी रंग सरलता से देखे जा सकते हैं।


== उत्पत्ति ==
== उत्पत्ति ==
बिट-बाउंड्री ब्लॉक ट्रांसफर के लिए खड़े [[ज़ेरॉक्स ऑल्टो]] [[कंप्यूटर]] के लिए नाम BitBLT रूटीन से निकला है। [[डैन इंगल्स]], [[लैरी टेस्लर]], [[बॉब स्प्राउल]] और [[डायना मीरा]] ने स्मॉलटाक -72 सिस्टम के लिए नवंबर 1975 में [[ज़ेरॉक्स PARC]] में इस प्रचालन को प्रोग्राम किया। डैन इंगल्स ने बाद में [[माइक्रोकोड]] में नया डिज़ाइन किया गया संस्करण लागू किया।
बिट-सीमा ब्लॉक स्थानांतरण के लिए खड़े [[ज़ेरॉक्स ऑल्टो]] [[कंप्यूटर]] के लिए नाम BITBLT प्रतिक्रिया से निकला है। [[डैन इंगल्स]], [[लैरी टेस्लर]], [[बॉब स्प्राउल]] और [[डायना मीरा]] ने स्मॉलटाक -72 प्रणाली के लिए नवंबर,1975 में [[ज़ेरॉक्स PARC]] में इस प्रचालन को प्रोग्राम किया। डैन इंगल्स ने पश्चात् [[माइक्रोकोड|सूक्ष्म कूट]] में नया डिज़ाइन किया गया संस्करण प्रयुक्त किया।


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


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


लूप जो मास्क में प्रत्येक बिट की जांच करता है और मास्क सेट होने पर ही [[पिक्सेल]] को स्प्राइट से कॉपी करता है, हार्डवेयर की तुलना में बहुत धीमा होगा जो प्रत्येक पिक्सेल पर ठीक उसी प्रचालन को लागू कर सकता है। इसके अतिरिक्त नकाबपोश ब्लिट को AND और OR रास्टर संचालन का उपयोग करके दो नियमित BitBlit संचालन के साथ लागू किया जा सकता है।
लूप जो आवरण में प्रत्येक बिट की जांच करता है और आवरण चयन होने पर ही [[पिक्सेल]] को वेताल से प्रतिलिपि करता है, जो सामान्यता हार्डवेयर की तुलना में बहुत धीमा होगा जो प्रत्येक पिक्सेल पर यथार्थ उसी प्रचालन को प्रयुक्त कर सकता है। इसके अतिरिक्त अप्रत्यक्ष टिल को AND और OR रेखापुंज संचालन का उपयोग करके दो नियमित BITBIT संचालन के साथ प्रयुक्त किया जा सकता है।


{| class="wikitable"
{| class="wikitable"
Line 23: Line 23:
|align="center"| [[Image:XBlit_dot.png]]
|align="center"| [[Image:XBlit_dot.png]]
|}
|}
इसे उत्पन्न करने के लिए छवि पर स्प्राइट को विभिन्न स्थितियों में खींचा जाता है:
इसे उत्पन्न करने के लिए प्रतिबिम्ब पर वेताल को विभिन्न स्थितियों में खींचा जाता है।


{| class="wikitable"
{| class="wikitable"
Line 35: Line 35:
=== तकनीक ===
=== तकनीक ===


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


पहले ब्लिट में, रास्टर ऑपरेटर बिटवाइज़ प्रचालन#AND का उपयोग करके मास्क को बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान ANDed 0 के बराबर है, और 1 के साथ कोई भी मान अपरिवर्तित है, काले क्षेत्र बनाए जाते हैं जहां वास्तविक स्प्राइट दिखाई देंगे, जबकि शेष पृष्ठभूमि को अकेला छोड़ देंगे।
पहले ब्लिट में, रेखापुंज ऑपरेटर बिटवाइज़ प्रचालन#AND का उपयोग करके आवरण को बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान ANDed 0 के बराबर है, और 1 के साथ कोई भी मान अपरिवर्तित है, काले क्षेत्र बनाए जाते हैं जहां वास्तविक स्प्राइट दिखाई देंगे, जबकि शेष पृष्ठभूमि को अकेला छोड़ देंगे।


{| class="wikitable"
{| class="wikitable"
Line 45: Line 45:
|align="center"| [[Image:XBlit_and.png|none]]
|align="center"| [[Image:XBlit_and.png|none]]
|}
|}
दूसरे ब्लिट में, स्प्राइट को बिटवाइज़ प्रचालन #OR के रास्टर ऑपरेटर का उपयोग करके नए परिवर्तित बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान अपरिवर्तित है, पृष्ठभूमि अप्रभावित है और काले क्षेत्र वास्तविक स्प्राइट छवि से भरे हुए हैं।
दूसरे ब्लिट में, स्प्राइट को बिटवाइज़ प्रचालन #OR के रेखापुंज ऑपरेटर का उपयोग करके नए परिवर्तित बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान अपरिवर्तित है, पृष्ठभूमि अप्रभावित है और काले क्षेत्र वास्तविक स्प्राइट प्रतिबिम्ब से भरे हुए हैं।


{| class="wikitable"
{| class="wikitable"
Line 53: Line 53:
|align="center"| [[Image:XBlit_final.png|none]]
|align="center"| [[Image:XBlit_final.png|none]]
|}
|}
सफेद पृष्ठभूमि और सफेद-पर-काले मास्क के साथ स्प्राइट का उपयोग करके समान प्रभाव प्राप्त करना भी संभव है। इस स्थिति में, मास्क पहले ओरेड होगा, और स्प्राइट एंडेड होगा।
सफेद पृष्ठभूमि और सफेद-पर-काले आवरण के साथ स्प्राइट का उपयोग करके समान प्रभाव प्राप्त करना भी संभव है। इस स्थिति में, आवरण पहले ओरेड होगा, और स्प्राइट एंडेड होगा।


== ब्लिटिंग बनाम हार्डवेयर स्प्राइट्स ==
== ब्लिटिंग बनाम हार्डवेयर स्प्राइट्स ==
{{See also|Sprite (computer graphics)}}
{{See also|Sprite (computer graphics)}}
ब्लिटिंग हार्डवेयर-स्प्राइट (कंप्यूटर ग्राफिक्स) ड्राइंग के समान है, जिसमें दोनों सिस्टम स्क्रीन पर अलग-अलग स्थानों पर पैटर्न, सामान्यतः वर्ग क्षेत्र को पुन: प्रस्तुत करते हैं।<ref>{{cite web |title=Framebuffer - OpenGL Wiki |url=https://www.khronos.org/opengl/wiki/Framebuffer#Blitting |website=www.khronos.org |accessdate=23 June 2020 |quote=A blit operation is a special form of copy operation; it copies a rectangular area of pixels from one framebuffer to another. This function also has some very specific properties with regard to multisampling.}}</ref> हार्डवेयर स्प्राइट्स को अलग मेमोरी में संग्रहीत होने का लाभ मिलता है, और इसलिए मुख्य डिस्प्ले मेमोरी को परेशान नहीं करता है। इससे उन्हें बिना किसी प्रभाव के, पृष्ठभूमि को कवर करते हुए प्रदर्शन के चारों ओर ले जाने की अनुमति मिलती है।
ब्लिटिंग हार्डवेयर-स्प्राइट (कंप्यूटर ग्राफिक्स) ड्राइंग के समान है, जिसमें दोनों सिस्टम स्क्रीन पर अलग-अलग स्थानों पर पैटर्न, सामान्यतः वर्ग क्षेत्र को पुन: प्रस्तुत करते हैं।<ref>{{cite web |title=Framebuffer - OpenGL Wiki |url=https://www.khronos.org/opengl/wiki/Framebuffer#Blitting |website=www.khronos.org |accessdate=23 June 2020 |quote=A blit operation is a special form of copy operation; it copies a rectangular area of pixels from one framebuffer to another. This function also has some very specific properties with regard to multisampling.}}</ref> हार्डवेयर स्प्राइट्स को अलग मेमोरी में संग्रहीत होने का लाभ मिलता है, और इसलिए मुख्य दृश्य मेमोरी को परेशान नहीं करता है। इससे उन्हें बिना किसी प्रभाव के, पृष्ठभूमि को कवर करते हुए प्रदर्शन के चारों ओर ले जाने की अनुमति मिलती है।


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


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


== यह भी देखें ==
== यह भी देखें ==


* अल्फा रचना
* अल्फा रचना
* [[मास्क (कंप्यूटिंग)]], यहां स्टैंसिल के रूप में उपयोग किया जाता है
* [[मास्क (कंप्यूटिंग)|आवरण (कंप्यूटिंग)]], यहां स्टैंसिल के रूप में उपयोग किया जाता है
* ब्लिटर
* ब्लिटर



Revision as of 21:00, 20 February 2023

टिल तिल (जिसे BITBLT, BIT BLT, BITBLT, Bit BLT, Bit BIT आदि के रूप में भी लिखा जाता है, जो टिल खण्ड स्थानातरण के लिए संयोगित किया जाता है) आँकड़ा प्रचालन है जो सामान्यतः कंप्यूटर चित्रलेख में उपयोग किया जाता है जिसमें अनेक बिटमैप का उपयोग करके निश्चित टेबल बाइनरी प्रचालन में जोड़ा जाता है।.[1]

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

आधुनिक ग्राफ़िक्स सॉफ़्टवेयर ने लगभग पूर्ण प्रकार से बिटवाइज़ प्रचालन को अल्फा रचना जैसे प्रभावों के लिए उपयोग किए जाने वाले अधिक सामान्य गणितीय प्रचालन के साथ परिवर्तित किया जाता है। सामान्यतः ऐसा इसलिए है क्योंकि रंग दृश्य पर बिटवाइज़ प्रचालन सामान्यतः ऐसे परिणाम नहीं देते हैं जो प्रकाशीय या स्याही के भौतिक संयोजन के समान होते हैं। चूँकि कुछ सॉफ़्टवेयर अभी भी परस्पर संवादात्मक हाइलाइट आयतों या क्षेत्र की सीमाओं को आकर्षित करने के लिए एक्सओआर का उपयोग करते हैं, जब यह प्रतिबिम्बों को रंगने के लिए किया जाता है, इस प्रकार असामान्य परिणामी रंग सरलता से देखे जा सकते हैं।

उत्पत्ति

बिट-सीमा ब्लॉक स्थानांतरण के लिए खड़े ज़ेरॉक्स ऑल्टो कंप्यूटर के लिए नाम BITBLT प्रतिक्रिया से निकला है। डैन इंगल्स, लैरी टेस्लर, बॉब स्प्राउल और डायना मीरा ने स्मॉलटाक -72 प्रणाली के लिए नवंबर,1975 में ज़ेरॉक्स PARC में इस प्रचालन को प्रोग्राम किया। डैन इंगल्स ने पश्चात् सूक्ष्म कूट में नया डिज़ाइन किया गया संस्करण प्रयुक्त किया।

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

अप्रत्यक्ष तिल कार्यान्वयन का उदाहरण

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

लूप जो आवरण में प्रत्येक बिट की जांच करता है और आवरण चयन होने पर ही पिक्सेल को वेताल से प्रतिलिपि करता है, जो सामान्यता हार्डवेयर की तुलना में बहुत धीमा होगा जो प्रत्येक पिक्सेल पर यथार्थ उसी प्रचालन को प्रयुक्त कर सकता है। इसके अतिरिक्त अप्रत्यक्ष टिल को AND और OR रेखापुंज संचालन का उपयोग करके दो नियमित BITBIT संचालन के साथ प्रयुक्त किया जा सकता है।

Background image Sprite (left) and mask (right)
Blit back.png XBlit dot.png

इसे उत्पन्न करने के लिए प्रतिबिम्ब पर वेताल को विभिन्न स्थितियों में खींचा जाता है।

Intended Result


तकनीक

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

पहले ब्लिट में, रेखापुंज ऑपरेटर बिटवाइज़ प्रचालन#AND का उपयोग करके आवरण को बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान ANDed 0 के बराबर है, और 1 के साथ कोई भी मान अपरिवर्तित है, काले क्षेत्र बनाए जाते हैं जहां वास्तविक स्प्राइट दिखाई देंगे, जबकि शेष पृष्ठभूमि को अकेला छोड़ देंगे।

Result of the first blit

दूसरे ब्लिट में, स्प्राइट को बिटवाइज़ प्रचालन #OR के रेखापुंज ऑपरेटर का उपयोग करके नए परिवर्तित बैकग्राउंड पर ब्लिट किया जाता है। क्योंकि 0 के साथ कोई भी मान अपरिवर्तित है, पृष्ठभूमि अप्रभावित है और काले क्षेत्र वास्तविक स्प्राइट प्रतिबिम्ब से भरे हुए हैं।

Final result

सफेद पृष्ठभूमि और सफेद-पर-काले आवरण के साथ स्प्राइट का उपयोग करके समान प्रभाव प्राप्त करना भी संभव है। इस स्थिति में, आवरण पहले ओरेड होगा, और स्प्राइट एंडेड होगा।

ब्लिटिंग बनाम हार्डवेयर स्प्राइट्स

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

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

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

यह भी देखें

संदर्भ

  1. 1.0 1.1 Sanchez, Julio; Maria P. Canton (2007). "Displaying Bit-Mapped images". Software solutions for engineers and scientists. CRC Press. p. 690.
  2. "Framebuffer - OpenGL Wiki". www.khronos.org. Retrieved 23 June 2020. A blit operation is a special form of copy operation; it copies a rectangular area of pixels from one framebuffer to another. This function also has some very specific properties with regard to multisampling.


बाहरी संबंध