कम से कम JPG-compressible पैटर्न क्या है? (कैमरा शूटिंग टुकड़ा कपड़े, पैमाने / कोण / प्रकाश भिन्न हो सकते हैं)


46

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

यहां तक ​​कि यह काम करना चाहिए भले ही कपड़ा कैमरे से दूर हो, या घुमाया जाए (मान लीजिए कि स्केल 1x से 10x तक भिन्न हो सकता है)।

शोर काफी अच्छा है (सेक करने में कठिन), लेकिन यह दूर से देखने पर ग्रे हो जाता है, सेक करना आसान हो जाता है। एक अच्छा पैटर्न एक प्रकार का फ्रैक्टल होगा , जो सभी पैमानों पर समान होगा।
पत्ते बेहतर है (पत्तियां, छोटी शाखाएं, छोटी शाखाएं, बड़ी शाखाएं), लेकिन यह बहुत कम रंगों का उपयोग करता है।

यहाँ एक पहली कोशिश है: सबसे ज्यादा असंगत

मुझे यकीन है कि अधिक इष्टतम पैटर्न हैं।
हो सकता है कि षट्भुज या त्रिकोण tessellations बेहतर प्रदर्शन करेंगे।

JPG Y b Cb Cr रंग स्थान का उपयोग करता है , मुझे लगता है कि Cb Cr को एक समान तरीके से उत्पन्न किया जा सकता है, लेकिन मुझे लगता है कि यह समान रूप से Y '(चमक) के पूर्ण दायरे का उपयोग नहीं करना बेहतर है क्योंकि कैमरा उज्ज्वल या अंधेरे क्षेत्रों को संतृप्त करेगा ( प्रकाश कभी सही नहीं होता है)।

प्रश्न: इस समस्या के लिए इष्टतम कपड़ा पैटर्न क्या है?


1
मुझे इस प्रश्न पर नज़र रखनी होगी .... अगर एक दिलचस्प जवाब हासिल किया जाता है, तो मैं www.spoonflower.com (या इसी तरह की सेवा) पर एक कपड़े के ऑर्डर का अनुमान लगा सकता हूं और जोड़ने के लिए शर्ट को देखने के लिए वास्तव में कठिन है। मेरे संग्रह ;-)
RBerteig

एक दिलचस्प पैटर्न प्रतियोगिता परियोजना हो सकती है: 1) इस तरह के पैटर्न 2 की एक उच्च-परिभाषा छवि लें) इसे घुमाएं, इसका एक यादृच्छिक हिस्सा लें (यादृच्छिक पैमाने पर), थोड़ा धुंधला करें, थोड़ा सा शोर और छोटे यादृच्छिक रंग जोड़ें विचलन 3) इसे JPG 4 के साथ संपीड़ित करें) फ़ाइल आकार देखें, गुणवत्ता हानि के बारे में मीट्रिक की गणना करें और अपने मैट्रिक्स का उपयोग करके "स्कोर" की गणना करें। 5) इस पैटर्न के औसत स्कोर में बदलने के लिए कई बार दोहराएं 6) अन्य पैटर्न के साथ दोहराएं और स्कोर की तुलना करें
निकोलस राउल

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

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

@ निकोलस राउल राइट, मुझे लगता है कि, मैं सिर्फ इतना कह रहा हूं कि अगर आप पर्याप्त जानकारी फेंक देते हैं, तो मैं कुछ भी नहीं कह सकता। क्या आप सिर्फ एक ऐसा पैटर्न चाहते हैं, जिसमें "हार्ड कंप्रेस" (यानी मौज-मस्ती के लिए) होने का गौरव हो, या आप लोगों को पैटर्न वाली छवियों को संपीड़ित करने के प्रयास से सक्रिय रूप से हतोत्साहित करने की कोशिश कर रहे हैं?
datageist

जवाबों:


15

शोर काफी अच्छा (सेक करने में कठिन) है, लेकिन यह दूर से देखने पर ग्रे हो जाता है, सेक करना आसान हो जाता है। एक अच्छा पैटर्न एक प्रकार का फ्रैक्टल होगा, जो सभी पैमानों पर समान होगा।

खैर, भग्न शोर है । मुझे लगता है कि ब्राउनियन का शोर भग्न है, जैसा कि आप इसे ज़ूम करते हैं। विकिपीडिया ने भिन्न-भिन्न पैमानों पर खुद को पर्लिन शोर जोड़ने के बारे में बात की , जो कि संभवतः समान है, मुझे यकीन नहीं है:

पर्लिन फ्रैक्टल शोर

मुझे नहीं लगता कि यह सेक करना कठिन होगा, हालांकि। शोर है दोषरहित संपीड़न के लिए मुश्किल है, लेकिन जेपीईजी, हानिपूर्ण है, इसलिए यह बस इसे के साथ संघर्ष कर विस्तार फेंक करने के लिए जा बजाय है। मुझे यकीन नहीं है कि अगर जेपीईजी को सेक करने के लिए "कुछ कठिन करना संभव है" क्योंकि यह सिर्फ उस गुणवत्ता स्तर पर संपीड़ित करने के लिए बहुत मुश्किल है, तो कुछ भी अनदेखा कर देगा।

किसी भी पैमाने पर कठोर किनारों के साथ कुछ शायद बेहतर होगा, अनंत चेकरबोर्ड विमान की तरह:

अनंत चेकरबोर्ड विमान

बहुत सारे रंगों के साथ भी। शायद भग्न शोर के बजाय वास्तविक भग्न को देखो। शायद एक मोंड्रियन भग्न ? :)

मोंड्रियन फ्रैक्टल


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

@ निकोलस रॉयल: हम्म .. हो सकता है कि रंगों के साथ Sierpinski कालीन ? यह पहले से ही एक सामान्य रजाई पैटर्न है
एंडोलिथ

Sierpinski त्रिकोण या वर्गों का एक tessellation वास्तव में महान हो सकता है!
निकोलस राउल

14

अगर हम कंप्यूटर द्वारा बनाई गई छवियों के बारे में बात कर रहे हैं, तो शोर सही दृष्टिकोण होगा। लेकिन यहां, कैमरा कैप्चर कदम है।

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

मुझे लगता है कि जेपीईजी एनकोडर को ट्रिक करने का सबसे अच्छा तरीका बहुत उच्च-आवृत्ति वाले गुणांक वाले ब्लॉक होंगे जो कि परिमाणीकरण से बचेंगे = बहुत अधिक विवरण और तेज किनारों; इसलिए पूरे गुणांक अनुक्रम को स्पष्ट रूप से लिखा जाना चाहिए (15 वें गुणांक पर एक ईओबी के बजाय) या तो। चेकरबोर्ड पैटर्न इसे प्राप्त करने का एक अच्छा तरीका है। केवल नकारात्मक पक्ष यह है कि लेंस का कम रिज़ॉल्यूशन + कैमरा एंटीलियासिंग फिल्टर को धुंधला होने का एक अच्छा मौका है! सब कुछ 8x8 ब्लॉकों (या 16x16 ब्लॉकों क्रोमा-वार) के भीतर होना चाहिए क्योंकि जेपीईजी मैक्रो पैमाने पर बहुत कुछ नहीं करता है। आपको अपने 8x8 ब्लॉकों को जितना संभव हो सके उतना गन्दा बनाना होगा, चाहे लेंस कितना भी धुँधला क्यों न हो उन्हें बनाने के लिए।

यहाँ एक सुझाव है:

स्केल-इनवेरिएंट, जेपीईजी-कम्प्रेस पैटर्न के लिए कठिन

आपको आश्चर्य हो सकता है कि कम विषम ब्लॉक यहां क्या कर रहे हैं, लेकिन जब बात को ज़ूम आउट किया जाता है, तो वे कंट्रास्टेड ज़ोन को रखने में मदद कर रहे हैं। यहाँ चुनौती एक विपरीत पैटर्न के साथ कुछ है, कोई फर्क नहीं पड़ता देखने का पैमाना है।

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


आपका बहुत बहुत धन्यवाद! प्रश्न में चित्र की अवधारणा, वास्तव में, लेकिन बहुत अच्छे लग रहे हैं। कारक 4 द्वारा "फ्रैक्चरलिटी" का कोई विशेष कारण? क्या यह कारक 2 से बेहतर है?
निकोलस राउल

कोई कारण नहीं, मैंने इसे अधिक रंगीन रंगों के साथ सुंदर दिखाने की कोशिश की है, इसलिए मैंने 4x4 वर्ग के साथ शुरुआत की।
pichenettes

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

वर्गों को कोड करना सबसे आसान काम था। मुझे यकीन नहीं है कि अन्य आकृतियों में वर्गों की तुलना में बेहतर "बढ़त घनत्व" है।
pichenettes

11

जेपीईजी शोषक और ट्रांसफॉर्म कंप्रेसिबल के बीच अंतर है।

उदाहरण के लिए टीवी सेट के सफेद दानेदार शोर को लें।

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

हालाँकि, फिर भी कोई भी आपको परिमाणीकरण से आक्रामक होने से नहीं रोकता है। इस तरह, आप अभी भी उच्च आवृत्ति क्षेत्रों से भारी राशि का त्याग कर सकते हैं। परिणाम में भारी मीन-स्क्वायर-त्रुटि होगी। हालांकि, अवधारणात्मक रूप से यह अभी भी शोर होगा। यह हालांकि भारी धुंधला हो सकता है।

दूसरी ओर, अब उन छवियों को लें जहां तेज धारें हैं।

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

किसी भी हानिपूर्ण संपीड़न के लिए, कठिन और सरल इस बात पर निर्भर करता है कि कितना और किस प्रकार का विरूपण सहन किया जाता है।


मान लीजिए कि मेरा कपड़ा यादृच्छिक ब्लैक / व्हाइट पिक्सल का 10 ^ 8x10 ^ 8 टेबल है। कैमरा कपड़े के 10x10pixels चित्र लेता है। सांख्यिकीय रूप से, इस 10x10 छवि में सभी पिक्सेल एक समान ग्रे नहीं होंगे, इस प्रकार कम समान छवि की तुलना में कम विरूपण (किसी भी प्रकार का) के साथ संपीड़ित करना आसान है?
निकोलस राउल

10

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

स्केलिंग व्यवहार

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

4 परत संयोजन


5

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

I=inNiGi

INiiGiiσ

हो सकता है कि इस तरह की छवि बनाने का एक बेहतर तरीका सीधे आवृत्ति डोमेन में काम करना होगा, इस प्रकार:

  1. सफेद शोर से भरी छवि बनाएं।
  2. छवि पर 8x8 ब्लॉक IDCT (उलटा असतत कोसाइन ट्रांसफॉर्म) करें।

नतीजा JPEG के लिए सबसे खराब कम्प्रेसिबल पैटर्न होगा, क्योंकि इसमें DCT डोमेन में सबसे अधिक एन्ट्रापी है। लेकिन मुझे यकीन नहीं है कि यह अलग-अलग प्रस्तावों के तहत कैसे व्यवहार करेगा।


5

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

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

जो शायद अलग-अलग और उच्च आवृत्ति वाले पिकेट्स के साथ-साथ ग्रे और रंग तराजू के अलग-अलग होते हैं जो कुछ दिए गए सेटिंग में दिए गए कंप्रेसर के संभावित मात्राकरण स्तरों के बीच होते हैं।

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

मैं अत्यधिक रंगीन तराजू पर अत्यधिक रंगीन Moire पैटर्न के एक झुंड के साथ शुरू होगा, जो उपरिशायी और / या एक साथ आंशिक रूप से पैच किया गया था।


2

मुझे उस पैटर्न को साझा करने दें जिसमें बहुत सपाट स्पेक्ट्रम है (जैसे सफेद शोर)। इसलिए जेपीजी के साथ कंप्रेस करने के लिए यह पैटर्न बहुत कठिन है। नीचे दी गई नमूना छवि 4 बार बढ़ाई गई है।

पैटर्न ही नियमित है, लेकिन गैर-आवधिक है, और नियतात्मक एल्गोरिथ्म द्वारा आसानी से उत्पन्न किया जा सकता है। इसमें एक भग्न संपत्ति भी है।

गैर-आवधिक पैटर्न अर्ध श्वेत शोर स्पेक्ट्रम के साथ

दूर से देखा: मूल दूर


2

रैंडम शोर वास्तव में बहुत खराब तरीके से संपीड़ित करता है। आप इसे स्वतंत्र आर, जी, बी मान उत्पन्न करके रंग में बना सकते हैं।

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

छवियों को जोड़ते समय, आप मानों की श्रेणी की समस्या का सामना करते हैं, जो कि छवियों की संख्या के रूप में बढ़ता है, N. यदि आप उन्हें औसत करते हैं, तो शोर का आयाम 1 / N के रूप में घट जाएगा।

यदि आप असंबद्ध समान शोर का चयन करते हैं, तो सुपरपोज़िशन का परिणाम GN मानक विचलन के साथ अर्ध-गौसियन वितरण में होगा, इसलिए एन द्वारा विभाजित करने के बजाय, आप आयाम घटने को सीमित करने के लिए (N (उपयुक्त पुन: केंद्र के साथ) से विभाजित कर सकते हैं।

अन्त में, मेरा अनुमान है कि मूल्यों को संतृप्त करने के बजाय उन्हें लपेटने देना बेहतर है, क्योंकि संतृप्त मूल्य एक समान क्षेत्र बनाएंगे।


2

यहां आरजीबी ब्राउनियन शोर (4096x4096 जीआईएफ) प्राप्त करने का एक और तरीका है। RGB ब्राउनियन शोर


0

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

सौभाग्य! , और अगर आपको awser मिलता है तो कृपया इसे पोस्ट करें !!!।


"आपको एक कपड़ा मिलना चाहिए जो फोटो में काला दिखता है" <- उस मामले में, क्या यह आसानी से संकुचित नहीं होगा?
निकोलस राउल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.