JPEG बनाते समय, मैं कलाकृतियों की घटना को कैसे कम कर सकता हूं?


10

जेपीईजी चित्र बनाते समय 2 मुख्य कारक हैं जो डिजिटल कलाकृतियों का नेतृत्व करते हैं: अलियासिंग और संपीड़न।

उदाहरण:

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

क्या यह सही काम है जिसे करना चाहिए? यानी चूंकि दोषरहित संपीड़न एक अत्यधिक विस्तृत छवि बनाता है, इसलिए अलियासिंग से उत्पन्न कलाकृतियां अधिक ध्यान देने योग्य होंगी, इसलिए सही संपीड़न का उपयोग करके एक संतुलन पाया जा सकता है, हालांकि छवि गुणवत्ता से समझौता करना।

संपादित करें

मैंने अभी इस JPEG को mspaint (3.46KB) में सहेजा है:

दोषरहित

यहाँ अधिकतम संपीड़न (न्यूनतम गुणवत्ता, 0.5 केबी) के साथ एक ही जेपीईजी है:

हानिपूर्ण

यहां अभी भी 50% संपीड़न के साथ एक ही जेपीईजी है (आकार में अंतर पर ध्यान दें, 1.29KB):

आधा कोई विकल्प

वही 50% संपीड़न लेकिन "प्रगतिशील JPG" के रूप में सहेजा गया, मूल EXIF ​​और XMP डेटा रखा, और "मूल JPG गुणवत्ता के साथ सहेजने का प्रयास किया" (आप देख सकते हैं कि कोई ग्रे पिक्सल नहीं हैं, 2.96KB):

आधा विकल्प

और अंत में क्रोमा सबमामलिंग अक्षम (समान फ़ाइल आकार, 2.96KB) के साथ पहले की तरह ही :

आधा कोई क्रोमा


1
बस जिज्ञासु, आपके पास jpg चाहने का कारण क्या है, क्या यह छोटे फ़ाइल आकार का है? यदि यह आपकी विशिष्ट स्थिति में मदद करता है, तो क्या आप डेक्स कम्प्रेशन या डिस्टेंस फील्ड टेक्सचर के बारे में जानते हैं?
एलन वोल्फ

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

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

@ मोशोका धन्यवाद, यह आपके अंतिम प्रश्न से अधिक संबंधित है: जेपीईजी छवियों में कलाकृतियों द्वारा लाए गए "दृश्य प्रभाव" को कैसे कम किया जाए?
आर्मफूट

ध्यान रखें कि mozjpegकंप्रेसर के पास इस तरह की छवियों पर कम विरूपण पैदा करने के लिए एक विशेष चाल है। (और यह सामान्य jpeg लेखकों की तुलना में सामान्य रूप से अधिक कुशल है।) क्या आपने इसे आज़माया है?
नाम

जवाबों:


9

JPEG संपीड़न में तीन मुख्य चरण शामिल हैं:

  1. क्रोमा सबसम्पलिंग । छवि को RGB से YCbCr रंग स्थान में परिवर्तित किया जाता है, जिसमें luma या चमक (Y) को क्रोमा या रंग घटकों, Cb और Cr से अलग संग्रहीत किया जाता है । Y कंपोनेंट को पूर्ण रिज़ॉल्यूशन पर रखा जाता है, लेकिन Cb और Cr को अपसाइड किया जाता है, आमतौर पर प्रत्येक एक्सिस पर आधा रिज़ॉल्यूशन। यह इस तथ्य का शोषण करता है कि मानव दृश्य प्रणाली रंग की तुलना में चमक के बारीक विवरण के प्रति अधिक संवेदनशील है।

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

  3. एन्ट्रापी कोडिंग । क्वांटाइज़्ड DCT मान एक एन्ट्रापी कोडर के माध्यम से पारित किया जाता है, जो अधिक सामान्य मूल्यों का प्रतिनिधित्व करने के लिए कम बिट्स का उपयोग करके बिट स्ट्रीम को एक ज़िप फ़ाइल की तरह सॉर्ट करता है।

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

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


आपके विस्तृत विवरण नाथन +1 के लिए आपका बहुत-बहुत धन्यवाद। मैं समझता हूं कि संपीड़न एल्गोरिदम की जेपीईजी के लिए अपनी सीमाएं हैं, लेकिन मैं सिर्फ यह पता लगाना चाहता था कि क्या अन्य विकल्पों के साथ मिलकर संपीड़न की मात्रा का सही संतुलन है (जब इसे बचाते हैं) जो कलाकृतियों को कम ध्यान देने योग्य बना सकते हैं। मैंने अपने प्रश्न को नमूनों के साथ संपादित किया।
आर्मफूट 10
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.