बिट ब्लिट

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

 * Performance demonstration coded in Flash/AS3
 * Xerox Inter-Office Memorandum 19 November 1975