हार्डवेयर बनावट संपीड़न कैसे काम करता है?


13

यह पिक्सेल सरणी की तुलना में डेटा को संपीड़ित करता है यह स्पष्ट है।

लेकिन क्या यह सामान्य संपीड़न (जैसे पीएनजी, जेपीईजी) से अलग बनाता है?


"सामान्य संपीड़न" क्या है - जेपीईजी और पीएनजी जैसी चीजें? क्या आप उन और हार्डवेयर समर्थित स्वरूपों जैसे कि DXT और ASTC के बीच अंतर के बारे में पूछ रहे हैं?
नाथन रीड

6
(अंत में, एक विषय जिसके बारे में मुझे कुछ पता है!) जो इसे पीएनजी / जेपीईजी से अलग बनाता है वह है यादृच्छिक अभिगम। यह देखते हुए कि आप टेक्सल (एक्सवाई) का उपयोग करना चाहते हैं, आप उस टेक्सल का उत्पादन करने के लिए आवश्यक डेटा के छोटे पदचिह्न को जल्दी से निर्धारित कर सकते हैं। JPG या PNG को सभी डेटा तक अपघटन की आवश्यकता हो सकती है! विकिपीडिया लेख के अनुभाग 1 और 2 एक अच्छा सारांश हैं।
शमौन एफ

जैसा कि साइमनएफ ने लिखा है। यह एक बहुत व्यापक प्रश्न है, और यह उत्तर इस बात पर निर्भर करता है कि आप किस प्रकार में रुचि रखते हैं। क्या आपने उदाहरण के लिए डीएक्सटी के विनिर्देश को देखा?
16

जवाबों:


25

जैसा कि साइमन की टिप्पणी के अनुसार, हार्डवेयर बनावट संपीड़न और अन्य आमतौर पर इस्तेमाल की जाने वाली छवि संपीड़न के बीच एक बड़ा अंतर यह है कि पूर्व एन्ट्रापी कोडिंग का उपयोग नहीं करता है। एंट्रॉपी कोडिंग स्रोत डेटा में आमतौर पर होने वाली या दोहराए जाने वाले पैटर्न का प्रतिनिधित्व करने के लिए छोटे बिट-स्ट्रिंग्स का उपयोग होता है - जैसे कि ज़िप जैसे कंटेनर प्रारूपों में देखा जाता है, GIF, JPEG और PNG जैसे कई सामान्य छवि प्रारूप और कई सामान्य ऑडियो में भी और वीडियो प्रारूप।

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

इसलिए, एन्ट्रापी कोडिंग के बजाय, हार्डवेयर कम्प्रेशन निश्चित अनुपात, ब्लॉक-आधारित योजनाओं का उपयोग करता है। उदाहरण के लिए, डीएक्सटी / बीसीएन संपीड़न में , बनावट 4 × 4 पिक्सेल ब्लॉकों में कटा हुआ है, जिनमें से प्रत्येक 64 या 128 बिट्स में एन्कोडेड है (जिस पर प्रारूप उठाया गया है); में ASTC , विभिन्न स्वरूपों 12 × 12 तक 4 × 4 से ब्लॉक आकार का उपयोग करें और सभी ब्लॉक 128 बिट में इनकोड। बिट्स छवि डेटा का प्रतिनिधित्व कैसे करते हैं इसका विवरण प्रारूपों के बीच भिन्न होता है (और एक ही छवि के भीतर एक ब्लॉक से दूसरे ब्लॉक में भी भिन्न हो सकता है), लेकिन क्योंकि अनुपात तय हो गया है, हार्डवेयर के लिए यह गणना करना आसान है कि ब्लॉक को खोजने के लिए स्मृति कहां है एक दिया ( x , y ) पिक्सेल, और प्रत्येक ब्लॉक स्व-निहित है, इसलिए इसे किसी अन्य ब्लॉक के स्वतंत्र रूप से डिकोड किया जा सकता है।

Another consideration in hardware texture compression is that the decoding should be efficiently implementable in hardware. This means that heavy math operations and complex dataflow are strongly disfavored. The BCn formats, for instance, can be decoded by doing a handful of 8-bit integer math operations per block to populate a small lookup table, then just looking up the appropriate table entry per pixel. This requires very little area on-chip, which is important because you probably want to decode several blocks in parallel, and thus need several copies of the decode hardware.

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


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

1
@ नाथन-रीड री-ट्रांसफ़ॉर्म-आधारित संपीड़न, वास्तव में, माइक्रोसॉफ़्ट की तालीसमन परियोजना ने TREC नामक एक संपीड़न योजना का उपयोग किया था (जो कि एक मोड के रूप में) DCT का उपयोग किया था, लेकिन जेपीईजी के विपरीत, ब्लॉकों तक यादृच्छिक पहुँच की अनुमति दी (मुझे संदेह है कि इसमें एक तालिका होनी चाहिए। पते)। यह तब विभिन्न ब्लॉकों के लिए परिवर्तनीय लंबाई डेटा की अनुमति देगा, लेकिन परोक्ष रूप से एचडब्ल्यू के लिए अप्रिय है - एक कारण वीक्यू टीसी फैशन से बाहर हो गया। FWIW मैंने लगभग एक दर्जन टीसी विचारों के साथ प्रयोग किया B4 PVRTC; कुछ फिक्स्ड-रेट, ट्रांसफ़ॉर्म-आधारित थे, लेकिन "गायब" coeffs अभी भी बिट्स का उपयोग करते हैं। BTC की तरह निश्चित कोएफ़ स्थान का अर्थ "मुक्त" जानकारी है।
साइमन एफ

2
@ नाथन-रीड। मैंने जो देखा है, उससे सभी HW डिकोडर्स को शुद्ध तर्क पथ (बिट डिकोड, कुछ लुकअप, डेटा पथ में कुछ गणित) के साथ लागू किया जा सकता है, लेकिन कोई लूप / रजिस्टर आवश्यकता नहीं है। क्या आप किसी भी योजना के बारे में जानते हैं जो बनावट देखने के लिए चक्र विलंबता जोड़ते हैं? (मैं एक वीएचडीएल ईटीसी 1 डिकोडर को लागू करने के लिए मज़ेदार हूं) मैं इस धारणा के तहत था कि प्रत्येक बनावट इकाई (टीयू) में डिकोडर एम्बेडेड थे।
रोमेन पिकाइस 14

31

"कैसे (हार्डवेयर) बनावट संपीड़न काम करता है" एक बड़ा विषय है। उम्मीद है कि मैं नाथन के जवाब की सामग्री की नकल किए बिना कुछ अंतर्दृष्टि प्रदान कर सकता हूं ।

आवश्यकताएँ

बनावट संपीड़न आमतौर पर 'मानक' छवि संपीड़न तकनीकों से भिन्न होता है जैसे कि JPEG / PNG चार मुख्य तरीकों से, जैसा कि कंप्रेस्ड टेक्सचर से बियर एट अल रेंडरिंग में उल्लिखित है :

  1. डिकोडिंग स्पीड : आप टेक्सचर कम्प्रेशन को असम्पीडित बनावट का उपयोग करने की तुलना में धीमी (कम से कम ध्यान देने योग्य नहीं) होना नहीं चाहते हैं। यह विघटित करने के लिए अपेक्षाकृत सरल होना चाहिए क्योंकि यह अत्यधिक हार्डवेयर और बिजली की लागत के बिना तेजी से विघटन को प्राप्त करने में मदद कर सकता है।

  2. रैंडम एक्सेस : आप आसानी से अनुमान नहीं लगा सकते हैं कि दिए गए रेंडर के दौरान कौन से टेक्सल्स की आवश्यकता होगी। यदि एक्सेस किए गए टेक्सल्स में से कुछ सबसेट, M , छवि के मध्य से, कहते हैं, तो यह आवश्यक है कि M को निर्धारित करने के लिए आपको बनावट की सभी 'पिछली' लाइनों को डीकोड नहीं करना होगा ; JPEG और PNG के साथ यह आवश्यक है क्योंकि पिक्सेल डिकोडिंग पहले से डिकोड किए गए डेटा पर निर्भर करता है।
    ध्यान दें, यह कहा जा रहा है, सिर्फ इसलिए कि आपके पास "यादृच्छिक" पहुंच है, इसका मतलब यह नहीं है कि आपको पूरी तरह से मनमाने ढंग से नमूना लेने की कोशिश करनी चाहिए

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

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

प्रारंभिक इतिहास और तकनीक

यह जानने के लिए कुछ आश्चर्य हो सकता है कि बनावट संपीड़न लगभग तीन दशकों से अधिक समय से है। 70 और 80 के दशक के फ्लाइट सिमुलेटरों को अपेक्षाकृत बड़ी मात्रा में बनावट डेटा तक पहुंच की आवश्यकता थी और यह देखते हुए कि 1980 में 1 एमबी रैम> $ 6000 था , बनावट के पदचिह्न को कम करना आवश्यक था। एक अन्य उदाहरण के रूप में, 70 के दशक के मध्य में, यहां तक ​​कि उच्च गति मेमोरी और तर्क की एक छोटी राशि, जैसे कि मामूली 512x512 आरजीबी फ्रेम बफर के लिए पर्याप्त ) आपको छोटे घर की कीमत वापस सेट कर सकता है।

हालांकि, AFAIK को स्पष्ट रूप से बनावट संपीड़न के रूप में संदर्भित नहीं किया गया है, साहित्य और पेटेंट में आप सहित तकनीकों के संदर्भ पा सकते हैं:
ए। गणितीय / प्रक्रियात्मक बनावट संश्लेषण के सरल रूप,
बी। एकल चैनल बनावट (जैसे 4bpp) का उपयोग तब प्रति-बनावट RGB मान से गुणा किया जाता है,
c। YUV, और
d। पट्टियाँ ( संपीड़न करने के लिए हेकबर्ट के दृष्टिकोण का उपयोग करने का सुझाव देने वाला साहित्य )

मॉडलिंग छवि डेटा

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

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

डेटा को कम्प्रेशन के लिए एक बहुत ही उपयोगी गणितीय उपकरण - टीसी की आगे की समझ के साथ मदद करने के लिए आगे बढ़ने से पहले, यह प्रिंसिपल कंपोनेंट एनालिसिस (पीसीए) पर एक नज़र डालने लायक है ।

उदाहरण बनावट

विभिन्न तरीकों की तुलना करने के लिए, हम निम्नलिखित छवि का उपयोग करेंगे:

छोटा लॉरिकेट + पाठ
ध्यान दें कि यह एक काफी कठिन छवि है, विशेष रूप से पैलेट और वीक्यूटीसी विधियों के लिए क्योंकि यह आरजीबी रंग घन के बहुत अधिक फैला हुआ है और केवल 15% टेक्सल्स दोहराया रंगों का उपयोग करते हैं।

पीसी और (मध्य 90 के दशक के बाद) कंसोल बनावट संपीड़न

डेटा लागत को कम करने के लिए, कुछ पीसी गेम्स और शुरुआती गेम कंसोल ने पैलेट छवियों का उपयोग भी किया, जो कि वेक्टर क्वांटिसैशन (VQ) का एक रूप है। पैलेट-आधारित दृष्टिकोण यह धारणा बनाते हैं कि एक दी गई छवि केवल RGB (A) कलर क्यूब के अपेक्षाकृत छोटे हिस्से का उपयोग करती है। पैलेट बनावट के साथ एक समस्या यह है कि प्राप्त गुणवत्ता के लिए संपीड़न दर आमतौर पर मामूली होती है। "4bpp" (GIMP का उपयोग करके) के लिए संकुचित उदाहरण बनावट ने फिर से नोट किया कि यह VQ योजनाओं के लिए अपेक्षाकृत कठिन छवि है।
यहाँ छवि विवरण दर्ज करें

बड़े वैक्टर के साथ VQ (जैसे 2bpp ARGB)

बीयर्स एट अल से प्रेरित होकर, ड्रीमकास्ट कंसोल ने एकल बाइट्स के साथ 2x2 या यहां तक ​​कि 2x4 पिक्सेल ब्लॉकों को एन्कोड करने के लिए वीक्यू का उपयोग किया। जबकि पैलेट बनावट में "वैक्टर" 3 या 4 आयामी हैं, 2x2 पिक्सेल ब्लॉक को 16 आयामी माना जा सकता है। संपीड़न योजना मानती है कि इन वैक्टरों की पर्याप्त, अनुमानित पुनरावृत्ति है।

भले ही वीक्यू ~ 2 बीपीपी के साथ संतोषजनक गुणवत्ता प्राप्त कर सकता है, इन योजनाओं के साथ समस्या यह है कि इसके लिए निर्भर मेमोरी रीड की आवश्यकता होती है: पिक्सेल के लिए कोड निर्धारित करने के लिए इंडेक्स मैप से एक प्रारंभिक पढ़ने के बाद एक दूसरे से वास्तव में पिक्सेल डेटा जुड़ा हुआ है। उस कोड के साथ। अतिरिक्त कैश कुछ अव्यक्त विलंब को कम करने में मदद कर सकता है, लेकिन हार्डवेयर में जटिलता जोड़ता है।

2bpp ड्रीमकास्ट योजना के साथ संकुचित उदाहरण छवि है 2bpp VQ परिणाम। सूचकांक नक्शा है:2bpp VQ इंडेक्स मैप

VQ डेटा का संपीड़न विभिन्न तरीकों से किया जा सकता है, हालांकि, IIRC , उपरोक्त पीसीए का उपयोग करके व्युत्पन्न किया गया था और फिर 16D वैक्टर को प्रिंसिपल वेक्टर के साथ 2 सेटों में विभाजित किया गया, जैसे कि दो प्रतिनिधि वैक्टर ने औसत चुकता त्रुटि को कम किया। 256 उम्मीदवार वैक्टर का उत्पादन होने तक यह प्रक्रिया फिर से शुरू हो गई। एक वैश्विक k- साधन / लॉयड का एल्गोरिथ्म दृष्टिकोण तब प्रतिनिधियों को बेहतर बनाने के लिए लागू किया गया था।

रंग अंतरिक्ष परिवर्तन

रंग अंतरिक्ष परिवर्तन भी पीसीए का उपयोग करते हुए ध्यान देते हैं कि रंग का वैश्विक वितरण अक्सर एक प्रमुख अक्ष के साथ दूसरे अक्षों के साथ कम फैलता है। YUV अभ्यावेदन के लिए, धारणाएँ हैं कि a) प्रमुख धुरी अक्सर luma दिशा में होती है और b) इस दिशा में परिवर्तन के लिए आँख अधिक संवेदनशील होती है।

3dfx वूडू प्रणाली ने "YAB" , एक 8bpp, "नैरो चैनल" संपीड़न प्रणाली प्रदान की, जो प्रत्येक 8 बिट टेक्सल को 322 प्रारूप में विभाजित करती है, और उस डेटा में एक उपयोगकर्ता चयनित रंग परिवर्तन को आरजीबी में मैप करने के लिए लागू किया। मुख्य अक्ष में इस प्रकार 8 स्तर थे और छोटे अक्ष, 4 प्रत्येक।

S3 विराज चिप में थोड़ा सरल, 4bpp, स्कीम थी जो उपयोगकर्ता को संपूर्ण बनावट , दो अंत रंगों के लिए निर्दिष्ट करने की अनुमति देती थी , जो कि 4bpp मोनोक्रोम बनावट के साथ प्रमुख अक्ष पर झूठ होना चाहिए। तब प्रति पिक्सेल मूल्य आरजीबी परिणाम का उत्पादन करने के लिए उचित वजन के साथ अंतिम रंगों को मिश्रित करता था।

बीटीसी आधारित योजनाएं

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

इस योजना में, छवियों को आम तौर पर 4x4 पिक्सेल ब्लॉक में तोड़ दिया जाता है, जिसे स्वतंत्र रूप से, स्थानीयकृत VQ एल्गोरिथ्म के साथ संकुचित किया जा सकता है। प्रत्येक ब्लॉक को दो "मूल्यों", और बी , और इंडेक्स बिट्स के 4x4 सेट द्वारा दर्शाया जाता है , जो प्रत्येक पिक्सेल के लिए उपयोग किए जाने वाले दो मानों की पहचान करता है।

S3TC : 4bpp RGB (+ 1bit अल्फा)
हालांकि छवि संपीड़न के लिए BTC के कई रंग-प्रकार प्रस्तावित किए गए थे, हमारे लिए ब्याज की Iourcha et al's S3TC है , जिनमें से कुछ हॉफर्ट एट अल के कुछ भूल गए काम का पुनर्निर्धारण प्रतीत होता है। Apple के क्विकटाइम में इस्तेमाल किया गया था।

DirectX वेरिएंट के बिना मूल S3TC, RGB या RGB + 1bit अल्फा के ब्लॉक को 4bpp तक संकुचित करता है। बनावट में प्रत्येक 4x4 ब्लॉक को दो अंत रंगों, और बी से बदल दिया जाता है , जिसमें से दो अन्य रंगों को निश्चित-वजन, रैखिक मिश्रणों द्वारा प्राप्त किया जाता है। इसके अलावा, ब्लॉक के प्रत्येक टेक्सल में 2-बिट इंडेक्स होता है जो निर्धारित करता है कि इन चार रंगों में से किसी एक का चयन कैसे किया जाए।

उदाहरण के लिए निम्नलिखित एएमडी / एटीआई कंप्रेशिनेटर टूल के साथ संपीडित छवि का 4x4 पिक्सेल अनुभाग है। ( तकनीकी रूप से यह परीक्षण छवि के 512x512 संस्करण से लिया गया है, लेकिन उदाहरणों को अपडेट करने के लिए मेरे समय की कमी को क्षमा करें )। यह संपीड़न प्रक्रिया को दिखाता है: रंगों के औसत और प्रमुख अक्ष की गणना की जाती है। एक सबसे अच्छा फिट तब दो अंत बिंदुओं को खोजने के लिए किया जाता है, जो 'अक्ष पर झूठ' है, जो दो व्युत्पन्न 1: 2 और 2: 1 मिश्रणों के साथ (या कुछ मामलों में 50:50 मिश्रण) उन अंत बिंदुओं से प्राप्त होता है, त्रुटि को कम करता है। प्रत्येक मूल पिक्सेल को परिणाम उत्पन्न करने के लिए उन रंगों में से एक में मैप किया जाता है।
यहाँ छवि विवरण दर्ज करें

यदि, इस मामले में, रंग प्रमुख धुरी द्वारा अनुमानित हैं, तो त्रुटि अपेक्षाकृत कम होगी। हालांकि, अगर नीचे दिखाए गए पड़ोसी 4x4 ब्लॉक की तरह, रंग अधिक विविध हैं, तो त्रुटि अधिक होगी।
यहाँ छवि विवरण दर्ज करें

उदाहरण छवि, साथ संकुचित एएमडी Compressonator पैदा करता है:
यहाँ छवि विवरण दर्ज करें

चूंकि रंग स्वतंत्र रूप से प्रति-ब्लॉक निर्धारित किए जाते हैं, इसलिए ब्लॉक की सीमाओं पर असंतोष हो सकता है लेकिन, जब तक संकल्प पर्याप्त रूप से उच्च रखा जाता है, तब तक ये ब्लॉक कलाकृतियों पर किसी का ध्यान नहीं जा सकता है:
यहाँ छवि विवरण दर्ज करें

ETC1 : 4bpp RGB
एरिक्सन टेक्सचर कंप्रेशन भी टेक्सल्स के 4x4 ब्लॉक्स के साथ काम करता है लेकिन यह धारणा बनाता है कि, YUV की तरह, टेक्सल्स के एक स्थानीय सेट का प्रमुख अक्ष अक्सर "लुमा" के साथ बहुत दृढ़ता से सहसंबद्ध होता है। तब टेक्सल्स के सेट को उस औसतन अक्ष पर टेक्सल्स के प्रक्षेपण के एक औसत रंग और अत्यधिक मात्रा में, स्केलर 'लंबाई' द्वारा दर्शाया जा सकता है।

चूंकि यह कहना है कि S3TC के सापेक्ष डेटा स्टोरेज लागत को कम करता है, यह ETC को एक विभाजन योजना शुरू करने की अनुमति देता है, जिससे 4x4 ब्लॉक को क्षैतिज 4x2 या ऊर्ध्वाधर 2x4 उप-ब्लॉक की एक जोड़ी में विभाजित किया जाता है। इनमें से प्रत्येक का अपना औसत रंग है। उदाहरण छवि उत्पन्न करती है: चोंच के आसपास का क्षेत्र 4x4 ब्लॉकों के क्षैतिज और ऊर्ध्वाधर विभाजन को भी दिखाता है।
यहाँ छवि विवरण दर्ज करें
यहाँ छवि विवरण दर्ज करें

वैश्विक + स्थानीय

कुछ बनावट संपीड़न प्रणालियां हैं जो वैश्विक और स्थानीय योजनाओं के बीच एक क्रॉस हैं, जैसे कि इवानोव और कुज़मिन के वितरित पैलेट या पीवीआरटीसी की विधि ।

PVRTC : 4 & 2 bpp RGBA
PVRTC मानती है कि (व्यवहार में, बिलिनियरली) उथल-पुथल वाली छवि पूर्ण-संकल्प लक्ष्य के लिए एक अच्छा सन्निकटन है और यह कि सन्निकटन और लक्ष्य के बीच अंतर, यानी डेल्टा छवि, स्थानीय रूप से एकरूप है, यानी एक प्रमुख प्रमुख धुरी है। इसके अलावा, यह माना जाता है कि स्थानीय प्रमुख अक्ष को छवि के पार प्रक्षेपित किया जा सकता है।

(करने के लिए: ब्रेकडाउन दिखा चित्र जोड़ें)

PVRTC1 4bpp के साथ संकुचित उदाहरण बनावट: चोंच के आस-पास के क्षेत्र के साथ : BTC- योजनाओं की तुलना में, ब्लॉक आर्टिफैक्ट्स आमतौर पर समाप्त हो जाते हैं, लेकिन कभी-कभी "ओवरशूट" हो सकते हैं यदि स्रोत छवि में मजबूत असंतोष हैं, उदाहरण के लिए चारों ओर। लॉरिकेट के सिर का सिल्हूट।
यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

2bpp वैरिएंट में स्वाभाविक रूप से 4bpp (नीले, गर्दन के पास उच्च आवृत्ति वाले क्षेत्रों में सटीकता की हानि) की तुलना में उच्च त्रुटि है, लेकिन यकीनन यथोचित गुणवत्ता अभी भी है:
यहाँ छवि विवरण दर्ज करें

विघटन लागत पर एक नोट

यद्यपि ऊपर वर्णित योजनाओं के लिए संपीड़न एल्गोरिदम उच्च मूल्यांकन लागत के लिए एक मध्यम है, विशेष रूप से हार्डवेयर कार्यान्वयन के लिए विघटन एल्गोरिदम, अपेक्षाकृत सस्ती हैं। ETC1, उदाहरण के लिए, कुछ MUXes और कम-सटीक योजक की तुलना में थोड़ा अधिक की आवश्यकता होती है; S3TC प्रभावी रूप से सम्मिश्रण करने के लिए थोड़ा और अतिरिक्त इकाइयों; और PVRTC, थोड़ा और फिर से। सिद्धांत रूप में, ये सरल टीसी योजनाएं एक GPU आर्किटेक्चर को फ़िल्टरिंग चरण से पहले तक विघटन से बचने की अनुमति दे सकती हैं, इस प्रकार आंतरिक कैश की प्रभावशीलता को अधिकतम करती है।

अन्य योजनाएँ

अन्य सामान्य टीसी मोड जिनका उल्लेख किया जाना चाहिए वे हैं:

  • ईटीसी 2 - ईटीसी 1 का एक (4 बीपीपी) सुपरसेट है जो रंग वितरण वाले क्षेत्रों की हैंडलिंग में सुधार करता है जो 'लूमा' के साथ अच्छी तरह से संरेखित नहीं करते हैं। एक 4bpp वेरिएंट भी है जो 1 बिट अल्फा और RGBA के लिए 8bpp फॉर्मेट सपोर्ट करता है।

  • एटीसी - प्रभावी रूप से S3TC पर एक छोटा बदलाव है

  • FXT1 (3dfx) S3TC थीम का अधिक महत्वाकांक्षी संस्करण था ।

  • बीसी 6 और बीसी 7: एक 8 जीबीपी, एआरजीबी का समर्थन करने वाला ब्लॉक-आधारित सिस्टम। एचडीआर मोड के अलावा, ये ईटीसी की तुलना में अधिक जटिल विभाजन प्रणाली का उपयोग करते हैं जो बेहतर मॉडल छवि रंग वितरण का प्रयास करते हैं।

  • PVRTC2: 2 और 4bpp ARGB। यह छवियों में मजबूत सीमाओं के साथ सीमाओं को दूर करने के लिए एक सहित अतिरिक्त मोड का परिचय देता है।

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


1
वाह, यह एक ब्लॉग पोस्ट कहीं होना चाहिए! बहुत बढ़िया जवाब!
Glampert

2
खुशी है कि यह मदद की है। एक ब्लॉग के रूप में, मैंने इसे एक दशक पहले लिखा था लेकिन मेरे पास वास्तव में उन्हें करने के लिए समय नहीं है।
साइमन एफ

1
पुराने ब्लॉग को होस्ट करने वाली वेबसाइट मर चुकी है। यह नवीनतम संग्रहीत संस्करण है: web.archive.org/web/20160322090245/http://web.onetel.net.uk/…-
ahcox
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.