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

From Vigyanwiki
No edit summary
No edit summary
Line 31: Line 31:
|align="center"| [[Image:XBlit_final.png|none]]
|align="center"| [[Image:XBlit_final.png|none]]
|}
|}


=== तकनीक ===
=== तकनीक ===


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


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


{| class="wikitable"
{| class="wikitable"
Line 45: Line 44:
|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 52:
|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 22:05, 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
XBlit final.png

तकनीक

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

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

Result of the first blit
XBlit and.png

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

Final result
XBlit final.png

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

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

ब्लिटिंग हार्डवेयर-वेताल (कंप्यूटर ग्राफिक्स) ड्राइंग के समान है, जिसमें दोनों सिस्टम स्क्रीन पर अलग-अलग स्थानों पर पैटर्न, सामान्यतः वर्ग क्षेत्र को पुन: प्रस्तुत करते हैं।[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.


बाहरी संबंध