वर्ण परिमाणीकरण

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

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

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

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

यदि पैलेट निश्चित है, जैसा कि अक्सर ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले वास्तविक समय के रंग परिमाणीकरण सिस्टम में होता है, तो रंग परिमाणीकरण आमतौर पर सीधी-रेखा दूरी या निकटतम रंग एल्गोरिदम का उपयोग करके किया जाता है, जो मूल छवि में प्रत्येक रंग को लेता है और निकटतम पैलेट प्रविष्टि पाता है, जहां दूरी त्रि-आयामी अंतरिक्ष में दो संबंधित बिंदुओं के बीच की दूरी से निर्धारित होती है। दूसरे शब्दों में, यदि रंग हैं $$(r_1, g_1, b_1)$$ और $$(r_2, g_2, b_2)$$, हम यूक्लिडियन दूरी को कम करना चाहते हैं:


 * $$\sqrt{(r_1-r_2)^2 + (g_1-g_2)^2 + (b_1-b_2)^2}.$$

यह प्रभावी रूप से कलर क्यूब को वोरोनोई आरेख में विघटित करता है, जहां पैलेट प्रविष्टियां बिंदु होती हैं और एक सेल में एकल पैलेट प्रविष्टि में सभी रंगों की मैपिंग होती है। वोरोनोई आरेखों की गणना करने और यह निर्धारित करने के लिए कि कोई दिया गया बिंदु किस क्षेत्र में आता है, कम्प्यूटेशनल ज्यामिति से कुशल एल्गोरिदम हैं; व्यवहार में, अनुक्रमित पैलेट इतने छोटे होते हैं कि ये आम तौर पर ज़रूरत से ज़्यादा होते हैं।

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

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

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

 File:Ada lovelace.png|मूल File:Ada lovelace 02k 31i.png| रंग की File:Ada lovelace 05k 24i.png| रंग की File:Ada lovelace 10k 31i.png|10 रंग File:Ada k15 i48.png|15 रंग File:Ada lovelace k100 i295.png|100 रंग 

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

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

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

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

कैमरे के लेंस के माध्यम से उपलब्ध रंगों की अनंत संख्या को कंप्यूटर स्क्रीन पर प्रदर्शित करना असंभव है; इस प्रकार किसी भी तस्वीर को डिजिटल प्रतिनिधित्व में परिवर्तित करने में आवश्यक रूप से कुछ परिमाणीकरण शामिल होता है। व्यावहारिक रूप से कहें तो, 24-बिट रंग इतनी समृद्ध है कि उपलब्ध रंग स्थान के भीतर, पर्याप्त रूप से छोटी त्रुटि के साथ मनुष्यों द्वारा समझे जाने योग्य लगभग सभी रंगों को दृश्य रूप से समान (यदि ईमानदारी से प्रस्तुत किया जाए) प्रदर्शित किया जा सके। हालाँकि, रंग का डिजिटलीकरण, या तो कैमरा डिटेक्टर में या स्क्रीन पर, आवश्यक रूप से उपलब्ध रंग स्थान को सीमित करता है। नतीजतन, ऐसे कई रंग हैं जिनका पुनरुत्पादन असंभव हो सकता है, भले ही रंग का प्रतिनिधित्व करने के लिए कितने बिट्स का उपयोग किया जाता है। उदाहरण के लिए, विशिष्ट आरजीबी रंग स्थानों (कंप्यूटर मॉनीटर पर आम) में हरे रंगों की पूरी श्रृंखला को पुन: उत्पन्न करना असंभव है जिसे मानव आंख समझने में सक्षम है।

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

छवि संपीड़न के लिए परिमाणीकरण
कई अनुक्रमित रंग#छवि फ़ाइल स्वरूप अनुक्रमित रंग का समर्थन करते हैं।

एक संपूर्ण-छवि पैलेट आम तौर पर संपूर्ण छवि के लिए 256 प्रतिनिधि रंगों का चयन करता है, जहां प्रत्येक पिक्सेल पैलेट में किसी एक रंग को संदर्भित करता है, जैसा कि GIF और PNG फ़ाइल स्वरूपों में होता है।

एक ब्लॉक पैलेट आम तौर पर 4x4 पिक्सेल के प्रत्येक ब्लॉक के लिए 2 या 4 रंगों का चयन करता है, जिसका उपयोग ब्लॉक ट्रंकेशन कोडिंग, कलर सेल कंप्रेशन, S2TC और एस3 टेक्सचर कंप्रेशन में किया जाता है।

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


 * फ़ोटोशॉप का मोड→अनुक्रमित रंग फ़ंक्शन किसी विशेष छवि या छवियों के अनुकूल पैलेट उत्पन्न करने के लिए निश्चित विंडोज सिस्टम और वेब पैलेट से लेकर मालिकाना स्थानीय और वैश्विक एल्गोरिदम तक कई परिमाणीकरण एल्गोरिदम प्रदान करता है।
 * पेंट शॉप प्रो, अपने कलर्स→डिक्रीज़ कलर डेप्थ डायलॉग में, तीन मानक रंग परिमाणीकरण एल्गोरिदम प्रदान करता है: मीडियन कट, ऑक्ट्री, और निश्चित मानक वेब सुरक्षित पैलेट।
 * जीआईएमपी 2.8 में, छवि को अनुक्रमित रंगों में कनवर्ट करें विकल्प (छवि → मोड → अनुक्रमित ..) 2 से 256 तक रंगों की संख्या में एक विकल्प के साथ एक इष्टतम पैलेट बनाने की अनुमति देता है, एक वेब-अनुकूलित पैलेट का उपयोग करने का विकल्प, एक काले और सफेद पैलेट (1 बिट) का उपयोग करना या एक कस्टम पैलेट का उपयोग करना। यह अप्रयुक्त रंगों को पैलेट से हटाने की अनुमति देता है और यह विभिन्न प्रकार के डिथरिंग विकल्प प्रदान करता है: कोई नहीं, फ्लोयड-स्टाइनबर्ग (सामान्य), फ्लोयड-स्टाइनबर्ग (कम रंग रक्तस्राव) और पोजिशन के साथ-साथ पारदर्शिता को सक्षम करने की क्षमता।

रंग परिमाणीकरण का उपयोग posterization  प्रभाव बनाने के लिए भी किया जाता है, हालांकि पोस्टराइजेशन में एक ही रंग स्थान के भीतर उपयोग किए जाने वाले रंगों की संख्या को कम करने का थोड़ा अलग लक्ष्य होता है, और आम तौर पर एक निश्चित पैलेट का उपयोग किया जाता है।

कुछ वेक्टर ग्राफ़िक्स संपादक रंग परिमाणीकरण का भी उपयोग करते हैं, विशेष रूप से रेखापुंज करने वाली वेक्टर तकनीकों के लिए जो किनारे का पता लगाने की मदद से बिटमैप छवियों की ट्रेसिंग बनाते हैं।


 * इंकस्केप का पथ→ट्रेस बिटमैप: एकाधिक स्कैन: रंग फ़ंक्शन रंग निशान बनाने के लिए ऑक्ट्री परिमाणीकरण का उपयोग करता है।

यह भी देखें

 * अनुक्रमित रंग
 * पैलेट (कंप्यूटिंग)
 * सॉफ़्टवेयर पैलेटों की सूची - सॉफ्टवेयर पैलेट्स की सूची#अनुकूली पैलेट्स अनुभाग।
 * डिथरिंग
 * परिमाणीकरण (छवि प्रसंस्करण)
 * छवि विभाजन

अग्रिम पठन

 * Paul S. Heckbert. Color Image Quantization for Frame Buffer Display. ACM SIGGRAPH '82 Proceedings. First publication of the median cut algorithm.
 * Dan Bloomberg. Color quantization using octrees. Leptonica.
 * Oleg Verevka. Color Image Quantization in Windows Systems with Local K-means Algorithm. Proceedings of the Western Computer Graphics Symposium '95.
 * J. Puzicha, M. Held, J. Ketterer, J. M. Buhmann, and D. Fellner. On Spatial Quantization of Color Images. (full text .ps.gz) Technical Report IAI-TR-98-1, University of Bonn. 1998.