2013-02-12 11 views
6

मुझे पता है कि जेपीईजी संपीड़न हानिकारक है। मैं 2 प्रश्न हैं:जेपीईजी छवियों को फिर से एन्कोडिंग एक बेवकूफ ऑपरेशन है?

को देखते हुए एक ऑपरेशन टी:
1. जेपीईजी-80 के रूप में


3. एनकोड दिया बाइट बफर एक बाइट बफर करने के लिए एक JPEG-80 छवि
2. डिकोड ले लो

क्या टी गुणवत्ता दृश्य के मामले में एक बेवकूफ ऑपरेशन है? या जब मैं टी दोहराता हूं तो छवि की गुणवत्ता घटती रहती है? क्या यह जेपीईजी-एक्सआर कोडेक के लिए भी सही है?

धन्यवाद!

संपादित करें: चूंकि विवादित उत्तर रहे हैं, तो यदि आप संदर्भ प्रदान कर सकते हैं तो यह बहुत अच्छा होगा!

+0

मुझे यकीन नहीं है लेकिन मैं इस पर भरोसा नहीं करता। विशेष रूप से विभिन्न इंजनों के बीच। यहां तक ​​कि एक इंजन के साथ होने वाले अनुमानों के परिणामस्वरूप दो बार लागू होने पर उसी क्षेत्र में परिणाम नहीं हो सकता है। –

+1

मैं नहीं कहूंगा। जेपीईजी के लिए प्रत्येक एन्कोडिंग के बाद, और अधिक 'नुकसान' होगा। – leppie

उत्तर

1

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

+0

मैं डब्ल्यूआईसी एपीआई का उपयोग कर रहा हूं: http://msdn.microsoft.com/en-us/library/windows/desktop/gg430027(v=vs.85).aspx – Sau

+0

मुझे लगता है कि डेव ने जेपीईजी छवि को फिर से कोड करने की कोशिश की इसे पहले बिटमैप में परिवर्तित करना, इसलिए यह सबूत बहुत ही विश्वसनीय नहीं है। मैं या तो एपीआई से परिचित नहीं हूं, लेकिन मुझे संदेह है कि जावा जेपीईजी एन्कोडर इम्प्लेमेनेशन डेव का इस्तेमाल शायद "स्मार्ट" है, जो * जेपीईजी छवि को फिर से कोड नहीं करता है, अगर इसे पहले एन्कोडिंग याद किया जाता है। आखिरकार, जेपीईजी को फिर से कोड करना आम तौर पर वांछनीय नहीं है, इसलिए एपीआई के लिए समारोह के संभावित आम दुरुपयोग के प्रति सहिष्णु होने का अर्थ होगा, हालांकि यह संभवतः चेतावनी फेंकना चाहिए कि हुड के नीचे क्या हो रहा है । " – StockB

2

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

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

यहाँ जेपीईजी पीढ़ी के नुकसान के कुछ उदाहरण हैं:

http://vimeo.com/3750507

http://en.wikipedia.org/wiki/File:JPEG_Generarion_Loss_rotating_90_(stitch_of_0,100,200,500,900,2000_times).png

+3

यह इतना आसान नहीं है। जेपीईजी हमेशा जानकारी फेंक नहीं देता है, यह इसे मापता है। यदि इनपुट डेटा पूरी तरह से मात्राबद्ध डेटा से मेल खाता है, तो यह बिल्कुल भी नहीं बदलेगा। यह छवि में रंगों की संख्या को कम करने के समान कुछ है - अगर इनपुट छवि में पहले से ही कुछ रंग हैं तो यह नहीं बदलेगा (सिवाय इसके कि जेपीईजी रंगों की बजाय डीसीटी आवृत्तियों पर काम करता है)। – Kornel

+0

यह समझाएगा कि विकिपीडिया के उदाहरण ने 90º तक छवि को घुमाया क्यों आपको इसे उत्तर में रखना चाहिए, या मेरा संपादन करना चाहिए। – StockB

1

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

JPEG एन्कोडिंग कई चरणों में किया जाता है:

  1. आरजीबी YUV रूपांतरण
  2. डीसीटी (आवृत्ति डोमेन में परिवर्तन)
  3. परिमाणीकरण (डीसीटी के दूर फेंक बिट्स)
  4. दोषरहित संपीड़न
  5. को

और डीकोडिंग एक ही प्रक्रिया पीछे की ओर है।

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

चरण 3, जो कि प्रमुख हानिकारक कदम है, वास्तव में बेवकूफ है। यदि आपके डीकोडेड पिक्सल समान-पर्याप्त डीसीटी में परिवर्तित हो जाते हैं तो यह उसी डेटा को फिर से माप देगा!

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

संबंधित मुद्दे