पैलेट (कंप्यूटिंग)

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

विवरण
2019 तक, ग्राफिक्स कार्ड में सबसे सामान्य इमेज कलरस्पेस 8 बिट प्रति पिक्सेल रंग गहराई वाला आरजीबी रंग मॉडल है। इस तकनीक का उपयोग करते हुए, प्रत्येक आरजीबी चैनल में लुमिनेंस स्तर का वर्णन करने के लिए 8 बिट प्रति पिक्सेल का उपयोग किया जाता है, इसलिए 24 बिट प्रत्येक पिक्सेल के रंग का पूरी तरह से वर्णन करते हैं। इसलिए ऐसे हार्डवेयर के लिए पूर्ण सिस्टम पैलेट में 224 रंग होते हैं। सीएलयुटी के माध्यम से छोटे पैलेट के उपयोग का उद्देश्य संभावित रंगों के सेट को कम करके बिट्स प्रति पिक्सेल की संख्या को कम करना है जिन्हें एक बार में नियंत्रित किया जाना है (प्रायः अनुकूली विधियों का उपयोग करके)। प्रत्येक संभावित रंग को एक सूचकांक सौंपा गया है, जो रंग का पूरी तरह से वर्णन करने के लिए आवश्यकता से कम जानकारी का उपयोग करके प्रत्येक रंग को संदर्भित करने की अनुमति देता है। एक उदाहरण 256-रंग पैलेट है जो प्रायः जीआईएफ फ़ाइल प्रारूप में उपयोग किया जाता है, जिसमें इमेज को चित्रित करने के लिए उपयोग किए जाने वाले 256 रंगों को पूरे 24 बिट कलर स्पेस से चुना जाता है, प्रत्येक को 8 बिट इंडेक्स सौंपा जाता है। इस तरह, जबकि सिस्टम आरजीबी कलर स्पेस में संभावित रूप से किसी भी रंग को पुन: उत्पन्न कर सकता है (जब तक कि 256 रंग प्रतिबंध अनुमति देता है), प्रति पिक्सेल भंडारण आवश्यकता 24 से 8 बिट प्रति पिक्सेल से कम हो जाती है।

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

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

इस तरह से निर्मित एक मास्टर पैलेट को 8R×8G×4B = 256 रंगों तक से भरा जा सकता है, लेकिन यह आरक्षित रंगों, रंग सूचकांकों के लिए पैलेट में जगह नहीं छोड़ता है, जो प्रोग्राम विशेष उद्देश्यों के लिए उपयोग कर सकता है। यह केवल 6R×6G×6B = 216 (जैसा कि वेब रंगों के विषय में है), 6R×8G×5B = 240 या 6R×7G×6B = 252 का उपयोग करने के लिए अधिक सामान्य है, जो कुछ आरक्षित रंगों के लिए जगह छोड़ता है।

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


 * {| style="border-style:none" border="0" cellpadding="4"


 * [[File:IndexedColorSample (Mosaic).png]]
 * }
 * }

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

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


 * {| style="border-style:none" border="0" cellpadding="4"


 * [[File:IndexedColorSample (Strawberries picked).png]]
 * [[File:IndexedColorSample (Caerulea3 crop).png]]
 * [[File:IndexedColorSample (Lapis.elephant.800pix.060203).png]]
 * [[File:IndexedColorSample (Lemon).png]]
 * }
 * }

पैलेट में पारदर्शिता
एक साधारण वीडियो ओवरले करने के लिए अनुक्रमित रंग इमेज में एक एकल पैलेट प्रविष्टि को पारदर्शी रंग के रूप में नामित किया जा सकता है: किसी पृष्ठभूमि पर दी गई इमेज को इस तरह से अध्यारोपित करना कि ओवरलैप की गई इमेज का कुछ भाग पृष्ठभूमि को अस्पष्ट करता है और शेष भाग नहीं करता है। फ़िल्म/टीवी शीर्षक और क्रेडिट को अध्यारोपित करना वीडियो ओवरले का एक विशिष्ट अनुप्रयोग है।

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

इस तकनीक का उपयोग पॉइंटर्स के लिए, पात्रों, गोलियों आदि (स्प्राइट), वीडियो शीर्षक और अन्य इमेज मिश्रण अनुप्रयोगों के लिए विशिष्ट 2-डी वीडियो गेम में किया जाता है।

जैसे कुछ प्रारंभिक कंप्यूटर, जैसे कमोडोर 64, एमएसएक्स और अमिगा हार्डवेयर द्वारा स्प्राइट्स और/या पूर्ण स्क्रीन वीडियो ओवरले का समर्थन करते हैं। इन स्थितियों में, पारदर्शी पैलेट प्रविष्टि संख्या हार्डवेयर द्वारा परिभाषित की जाती है, और यह संख्या 0 हुआ करती थी।

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

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

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

हालांकि संबंधित (क्योंकि वे एक ही उद्देश्य के लिए उपयोग किए जाते हैं), इमेज बिट मास्क और अल्फा चैनल ऐसी तकनीकें हैं जिनमें पैलेट्स और न ही पारदर्शी रंग का उपयोग सम्मिलित होता है, लेकिन ऑफ-इमेज में अतिरिक्त बाइनरी डेटा परतें जोड़ी जाती हैं।

माइक्रोसॉफ़्ट विंडोज़
माइक्रोसॉफ़्ट विंडोज़ एप्लिकेशन Win32 API के विशेष फंक्शन्स के माध्यम से 4-बिट या 8-बिट अनुक्रमित रंग डिस्प्ले उपकरणों के पैलेट का प्रबंधन करते हैं। हाईकलर और ट्रूकलर डिस्प्ले मोड में पैलेट की प्रयोज्यता संदिग्ध हो जाती है। ये एपीआई तथाकथित "सिस्टम पैलेट" और कई "लॉजिकल पैलेट्स" से संबंधित हैं।

"सिस्टम पैलेट" रंग डिस्प्ले के हार्डवेयर रजिस्टरों की रैम में एक प्रति है, और यह सिस्टम का एक अद्वितीय, साझा सामान्य संसाधन है। बूट पर, इसे डिफ़ॉल्ट सिस्टम पैलेट (मुख्य रूप से एक "मास्टर पैलेट" जो अधिकांश प्रोग्रामों के साथ काफी अच्छी तरह से काम करता है) के साथ लोड किया जाता है।

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

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

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

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

यह भी देखें

 * कलर पैलेट्स की सूची

संदर्भ

 * Julio Sanchez and Maria P. Canton (2003). The PC Graphics Handbook. CRC Press. ISBN 0-8493-1678-2.
 * Color palettes at Microsoft Developer Network (MSDN)
 * The RGBQUAD color table entry in BITMAPINFO structure at Microsoft Developer Network (MSDN)