24-बिट कोलेर्डेप्थ पर्याप्त नहीं है?


30

मैंने देखा कि बहुत नरम ग्रेडिएंट्स में, 24-बिट कोलोराडिप पर्याप्त नहीं है क्योंकि आप रंग के बदलाव देख सकते हैं। यह अंधेरे दृश्यों या रात के आसमान में सबसे अधिक पॉप करता है।

कोई भी व्यक्ति प्रति चैनल में दो बाइट्स के लिए कोऑर्डिफ़ को क्यों नहीं बदलता है? मुझे पता है कि काम का एक बहुत कुछ होगा और बहुत सारे हार्डवेयर को फिर से भरना होगा, लेकिन मुझे यह थोड़ा कष्टप्रद लगता है। मैं वास्तव में नहीं सोचता कि हार्डवेयर की तकनीक पर्याप्त परिपक्व नहीं है।

तो कोई ऐसा क्यों कर रहा है?

यहाँ "द वार जेड" की एक तस्वीर है जहाँ आप देख सकते हैं कि मेरा क्या मतलब है:

युद्ध जेड रंग संक्रमण


12
आपकी छवि JPEG प्रारूप में है, वह भी कलाकृतियों का उत्पादन कर सकती है। क्या आप दोषरहित प्रारूप में एक उदाहरण प्रस्तुत कर सकते हैं?
सम्राट ओरियोनी

क्या आप मेरे साथ मजाक कर रहे हैं? आप थोड़ी गहराई के बारे में शिकायत करते हैं लेकिन आप एक JPEG फ़ाइल अपलोड करते हैं?
तारा

1
ठीक ठीक। दोषरहित प्रारूप की कोई आवश्यकता नहीं है जब जेपीजी बहुत अधिक प्रदर्शन करता है कि मेरा क्या मतलब है। BTW: यह संपीड़न नहीं है जो इस प्रभाव का कारण बना। अपने संसाधनों को बचाओ आदमी ...
Liess Jemai

जवाबों:


19

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

संक्षेप में, यह अभी भी बहुत काम है कि ज्यादातर लोग अभी तक बहुत कम लाभ के लिए क्या सोचते हैं। यह अच्छी तरह से 'थोड़ा परेशान' हो सकता है, लेकिन यह झुंझलाहट का स्तर इतना पतला है कि छवि गुणवत्ता में अन्य सुधार प्राथमिकता ले रहे हैं।


1
हालांकि अंत उपयोगकर्ताओं के लिए सीधे सुलभ नहीं है कुछ उच्च अंत 27/30 "छवि / वीडियो पेशेवरों पर लक्षित मॉनिटर आंतरिक रूप से / 10 बाहरी रूप से 10 बिट हैं और प्रदर्शन पर रंगों को कैलिब्रेट करने में सहायता करने के लिए अतिरिक्त 4 बिट्स का उपयोग करने के लिए एक टेबल देखो।
दान नीली

@DanNeely: किसी भी "एंड यूज़र" के पास एक दो हज़ार अमेरिकी डॉलर हो सकते हैं। उन्हें क्वाडरो की तरह प्रो लेवल ग्राफिक्स कार्ड की भी आवश्यकता होती है। यह देखते हुए कि कुछ लोग अपने टीवी और साउंड सिस्टम के लिए क्या भुगतान करते हैं, यह बुरा नहीं है।
ज़ैन लिंक्स

@ZanLynx मैंने अभियुक्तों पर लक्षित वाक्यांश का उपयोग केवल जानबूझकर मुकदमा चलाने के लिए किया था। कोई भी पूर्ण स्टैक खरीद सकता है; लेकिन कीमतें बहुत अधिक हैं और लाभ इतने दुर्लभ हैं कि बहुत कम लोग करते हैं। केवल 1.17% स्टीम उपयोगकर्ताओं के पास 2560 डिस्प्ले हैं। और मॉनीटर आवश्यक स्टैक का एकमात्र हिस्सा है जो एक बिजली उपयोगकर्ता को आकस्मिक रूप से समाप्त होने की संभावना है क्योंकि 2011 के मॉडल वर्ष के ब्रांड नाम के कुछ (सभी!) मुख्यधारा के विक्रेताओं के 2560 डिस्प्ले में 10/14 बिट रंग शामिल हैं; और सस्ता कोरियाई आयात थोड़ी देर के लिए व्यापक रूप से उपलब्ध नहीं थे। क्वाड्रो / आदि कार्ड गेमर्स के लिए मानक बनाम कुछ भी नहीं प्रदान करते हैं।
डैन नीली

1
क्या यह संभव है कि इस तरह की बैंडिंग वास्तव में आकाश को प्रदान करने वाले काम की मात्रा को कम करने के लिए एक पाठीय अनुकूलन है? जब मैं GIMP में 24bit का ग्रेडिएंट बनाता हूं तो ऐसा नहीं लगता है। 24. ग्रेडिएंट के लिए static.inky.ws/image/4306/gradient.png देखें ।
ldrumm

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

44

हां, आप यह नोटिस करने वाले पहले व्यक्ति नहीं हैं । :) आज के उच्च कंट्रास्ट अनुपात के साथ, प्रति दृश्य 8 बैंडिंग के बिना एक चिकनी ढाल बनाने के लिए प्रति घटक 8 बिट्स पर्याप्त नहीं है - जब तक कि डाइथरिंग का उपयोग नहीं किया जाता है।

डिस्प्ले पर प्रति चैनल 8 से अधिक बिट्स का उपयोग करना " गहरा रंग " कहलाता है प्रदर्शन निर्माताओं द्वारा " । चिकन और अंडे की समस्या के कारण यह बहुत व्यापक नहीं है। एक गहरे रंग का प्रदर्शन एक वीडियो कार्ड के बिना बेकार है जो गहरे रंग का उत्पादन कर सकता है, और एक गेम इंजन जो गहरे रंग को प्रदान करने का समर्थन करता है। इसी तरह, गेम इंजन या वीडियो कार्ड का कोई मतलब नहीं है जो प्रदर्शन के बिना गहरे रंग का समर्थन करता है। इसलिए हार्डवेयर निर्माताओं और गेम डेवलपर्स के लिए इस तकनीक के लिए समर्थन जोड़ने के लिए बहुत अधिक प्रोत्साहन नहीं है, क्योंकि दोनों ओर से, विकास की लागत का औचित्य साबित करने के लिए कोई बाजार नहीं है।


इसके अलावा, सीमित 8-बिट परिशुद्धता के कारण बैंडिंग को ठीक करने के अन्य तरीके भी हैं। जैसा कि मैंने पहले उल्लेख किया है, खेल इंजन बैंडिंग को छिपाने के लिए डाइटिंग का उपयोग कर सकते हैं ।


(बिल्ली के चित्र को 256 रंगों वाली पैलेट के साथ, बिना और बिना डिटेरिंग के साथ बनाया गया। विकिपीडिया उपयोगकर्ता WAPcaplet द्वारा निर्मित , CC-by-SA 3.0 के तहत उपयोग किया गया। लाइसेंस के ।)

फ़्रेमबफ़र के लिए पिक्सेल मान लिखने से पहले / 0.5 / 255 की थोड़ी सी भीख को जोड़ना, सहज ग्रेडिएंट्स पर बैंडिंग को छिपाने में बेहद प्रभावी है, और अनिवार्य रूप से ध्यान देने योग्य नहीं है। यदि आप एक एचडीआर इंजन में हैं, तो आप इसे टोनमैपिंग चरण के दौरान करते हैं।


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


+1 - एक उत्कृष्ट उत्तर, और मैं पूरी तरह से इस संभावना से चूक गया कि बैंडिंग के अन्य कारण थे।
स्टीवन स्टडनिक

1
+1 यह ध्यान देने के लिए कि फ़ाइल एक jpeg है। ओपी द्वारा एक दोषरहित उदाहरण डेटा में शोर के कारण खराब निर्णय को रोक देगा।
ldrumm

@ldrumm एक ऐसा खेल / इंजन जो भयानक नहीं है ...
ब्रायन ऑर्टिज़

मैंने चित्रों को जोड़ने पर जोर दिया, जिससे डिटरिंग बना सकते हैं। यदि आप इसे पसंद नहीं करते हैं, तो उल्टा महसूस करें :)
BlueRaja - Danny Pflughoeft

13

यह भी ध्यान देने योग्य है कि कई एलसीडी पैनल प्रति चैनल 8 बिट भी नहीं हैं। सस्ता वाले कम बिट्स का उपयोग करते हैं और इसे छिपाने की कोशिश करने के लिए विभिन्न चाल का उपयोग करते हैं। उदाहरण के लिए वे बीच में एक का प्रतिनिधित्व करने के लिए दो आसन्न रंगों के बीच तेजी से स्विच कर सकते हैं। http://www.anandtech.com/show/1557/3

इस पर कुछ विवरण हैं कि कैसे DXGI 10-बिट प्रति चैनल और चमकीले रंगों की तुलना में http://msdn.microsoft.com/en-us/library/windows/desktop/jj635732%28v=vs.85229.aspx पर समर्थन करता है

डी 3 डी ने भी वर्षों से प्रति चैनल 8-बिट से अधिक का समर्थन किया है। अगर वे सोचते हैं कि यह एक अच्छा विचार है तो एक डेवलपर को 16-बिट प्रति चैनल से 8-बिट तक नीचे कुछ करने से रोक नहीं रहा है।

निश्चित रूप से अगर स्रोत डेटा (बनावट, आदि) केवल 8-बिट (या अधिक संभावना DXT1, जो प्रभावी रूप से प्रति चैनल 5-6-5 बिट्स) है, तो यह बहुत मदद नहीं करेगा। मेरा मानना ​​है कि उस स्क्रीनशॉट में आकाश के साथ क्या हो रहा है (8-bpp gaussian blur यह मेरे लिए बहुत आसान बनाता है) लेकिन यह निश्चित होना कठिन है।


10

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

Homeworld इस समस्या को हल करता है आकाश की छवि को वर्टेक्स ग्रेडिएंट के रूप में एन्कोडिंग करता है । यह तकनीक बड़े, कम-आवृत्ति वाले चित्रों (यानी, चिकनी ग्रेडिएंट) के लिए बहुत अच्छा काम करती है - जैसे आसमान - जहाँ बनावट बड़ी संख्या में इन-गेम पिक्सेल को कवर करती है।

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

  • 16-बिट प्रारूप में मूल बनावट को लेखक करें, जैसे कि 16-बिट TIFF।
  • जब आप गेम इंजन के लिए अपने बनावट तैयार करते हैं, तो छवि में मौजूद सबसे गहरे पिक्सेल को ढूंढें और इसे ऑफ़सेट के रूप में ट्रैक करें। मान लीजिए कि यह पिक्सेल मान 0-1 की संभावित सीमा में 0.1 है।
  • अगला, सबसे चमकीले पिक्सेल को ढूंढें और छवि में मूल्यों की श्रेणी प्राप्त करने के लिए सबसे गहरे पिक्सेल को घटाएं। इसलिए, अगर सबसे चमकदार पिक्सेल अभी भी बहुत गहरा है - 0.35 कहें - सीमा केवल 0.35 - 0.1 = 0.25 है। मान श्रेणी का केवल 25% छवि में मौजूद है।
  • अपने DXT / BC- इन-गेम बनावट को उत्पन्न करें । हर पिक्सेल से सबसे गहरे मूल्य को घटाएं, और पूरे रंग रेंज का उपयोग करने के लिए गुणा करें। उदाहरण गणना में हम अपने 0.1 के अंधेरे मूल्य को घटाते हैं और, क्योंकि उपलब्ध मूल्य सीमा का केवल 25% मौजूद है, हम इन-गेम बनावट बनाने के लिए प्रत्येक पिक्सेल मूल्य को 4x से गुणा करते हैं। यह सब करने से पहले यह सुनिश्चित कर लें कि आप अपनी 16-बिट स्रोत छवि को डीएक्सटी कंप्रेसर के 8bpp इनपुट तक डाउन कर दें। आउटपुट छवि अब इन-गेम फॉर्मेट द्वारा समर्थित मानों की पूरी रेंज का उपयोग करेगी। हम अपने सभी बिट्स को छवि में मौजूद मूल्यों का प्रतिनिधित्व करने के लिए आवंटित कर रहे हैं।
  • कहीं-कहीं मेटाडेटा में डार्क वैल्यू ऑफ़सेट (0.1) और रेंज (0.25) स्टोर करें। अपने पिक्सेल shader के इनपुट के रूप में इन्हें पास करें।
  • पिक्सेल shader कोड में, अपनी स्थानांतरित, विस्तारित बनावट का नमूना लें, इसे एक फ्लोट मान में कनवर्ट करें और फिर मूल रंग मान को पुनर्स्थापित करने के लिए एक गुणा / जोड़ें। दूसरे शब्दों में, स्रोत छवि में संग्रहीत मान को पुनर्स्थापित करने के लिए 0.25 से गुणा करें और 0.1 जोड़ें।

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


1

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.