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

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

विवरण
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]]
 * }
 * }

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

लेकिन यह इमेज पिक्सेल और उसके अनुकूली पैलेट के बीच भारी निर्भरता पैदा करता है। एक सीमित 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, लेकिन अन्य को चुना जा सकता है अगर सॉफ़्टवेयर  द्वारा ओवरले किया जाता है। डिज़ाइन समय पर, पारदर्शी रंग पैलेट प्रविष्टि को एक मनमाना (प्रायः विशिष्ट) रंग दिया जाता है। नीचे दिए गए उदाहरण में, एक  सूचक युक्ति  के लिए एक विशिष्ट तीर सूचक (कंप्यूटिंग WIMP) एक नारंगी पृष्ठभूमि पर डिज़ाइन किया गया है, इसलिए यहाँ नारंगी क्षेत्रों ने पारदर्शी क्षेत्रों (बाएं) को दर्शाया। रनटाइम (प्रोग्राम जीवनचक्र चरण) पर, ओवरलैप की गई इमेज को पृष्ठभूमि इमेज पर कहीं भी रखा जाता है, और इसे इस तरह मिश्रित किया जाता है कि यदि पिक्सेल रंग सूचकांक पारदर्शी रंग है, तो पृष्ठभूमि पिक्सेल रखा जाता है, अन्यथा इसे बदल दिया जाता है। इस तकनीक का उपयोग पॉइंटर्स के लिए किया जाता है, विशिष्ट 2-डी वीडियोगेम में वर्णों, गोलियों और इसी तरह (स्प्राइट (कंप्यूटर ग्राफिक्स)), वीडियो शीर्षक और अन्य इमेज मिश्रण अनुप्रयोगों के लिए।

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

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

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

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

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

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

सिस्टम पैलेट रंग प्रदर्शन के हार्डवेयर रजिस्टरों की रैंडम एक्सेस मेमोरी  में एक प्रति है, मुख्य रूप से एक भौतिक पैलेट है, और यह सिस्टम का एक अनूठा, साझा सामान्य संसाधन है। बूट पर, यह सॉफ़्टवेयर पैलेट की सूची # Microsoft Windows और IBM OS/2 डिफ़ॉल्ट 16-color_palette (मुख्य रूप से एक मास्टर पैलेट जो अधिकांश कार्यक्रमों के साथ अच्छी तरह से काम करता है) के साथ लोड किया गया है।

जब कोई दिया गया एप्लिकेशन रंगीन ग्राफिक्स और/या इमेजेस को आउटपुट करने का इरादा रखता है, तो यह अपना तार्किक पैलेट सेट कर सकता है, यानी रंगों का अपना निजी चयन (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)