छवियाँ और तस्वीरें · छवि कन्वर्टर और कंप्रेसर
क्रोमा सबसैंपलिंग: क्यों JPEG लाल पाठ और पतली रंगीन रेखाओं को धुंधला कर देता है
· यह काम किस प्रकार करता है
छवि-प्रारूप JPEG छवि के गुणवत्ता
JPEG और हानिपूर्ण WebP रंग को चमक से कम रिज़ॉल्यूशन पर संग्रहीत करते हैं, जो फ़ोटो में अदृश्य होता है और लाल टेक्स्ट पर स्पष्ट होता है। यह पोस्ट बताती है 4:2:0 सबसैंपलिंग, एनकोडर ऐसा क्यों करते हैं, और जब रंग किनारों का महत्व होता है तो प्रारूप कैसे चुनें।
लाल लेबल अस्पष्ट निकला जबकि काला पाठ तेज रहा - यह लक्षण सीधे क्रोमा सबसैंपलिंग की ओर इशारा करता है
एक लाल लेबल पड़ोसी गहरे पाठ की तुलना में नरम उभर सकता है, भले ही दोनों स्क्रीनशॉट में स्पष्ट वैक्टर के रूप में शुरू हुए हों। यह लक्षण जांच के लायक है, लेकिन यह अपने आप में सटीक क्रोमा-सबसैंपलिंग मोड की पहचान नहीं करता है। ToolAcre स्रोत को डीकोड करता है, कैनवास पर पिक्सेल खींचता है और ब्राउज़र से JPEG या WebP बाइट्स मांगता है; परिणामी किनारा साक्ष्य है, जबकि एनकोडर के निजी निर्णय नहीं हैं।
एक पेजभूमि पर संकीर्ण लाल, नीले, भूरे और काले स्ट्रोक वाली नियंत्रित छवि से प्रारंभ करें। इसके आयामों को अपरिवर्तित रखें, प्रत्येक लक्ष्य को एक बार निर्यात करें और मूल पिक्सेल आकार पर डाउनलोड का निरीक्षण करें। यदि केवल हानिपूर्ण आउटपुट संतृप्त सीमाओं को धूमिल करते हैं, तो प्रारूप का चुनाव निहित होता है। यदि प्रत्येक आउटपुट नरम है, तो पहले जांचें कि क्या आकार बदला गया है, क्योंकि योजना किसी भी बदले हुए आयाम को पुन: नमूनाकरण के रूप में वर्गीकृत करती है।
लूमा और क्रोमा: एक पिक्सेल को चमक और रंग में विभाजित करना - YCbCr परिवर्तन और एनकोडर दोनों को अलग क्यों करते हैं
रूपरेखा लूमा और क्रोमा परिवर्तनों का वर्णन करती है, फिर भी इस भंडार में कोई परिवर्तन कोड दिखाई नहीं देता है। एप्लिकेशन ब्राउज़र एन्कोडर को डिकोड किए गए RGBA पिक्सेल की आपूर्ति करता है और कभी भी अलग चमक या रंग विमान प्राप्त नहीं करता है। इसलिए यह एक व्यावहारिक अंतर का दस्तावेजीकरण कर सकता है - हानिपूर्ण आउटपुट दृश्य विवरण को त्याग सकता है - ब्राउज़र के गुणांक गणना या आंतरिक रंग प्रतिनिधित्व को प्रकट करने का नाटक किए बिना।
वह सीमा बदल देती है कि दोष रिपोर्ट कैसे लिखी जानी चाहिए। स्रोत MIME प्रकार, लक्ष्य MIME प्रकार, गुणवत्ता, मूल और आउटपुट आयाम, ब्राउज़र और प्रभावित किनारे को दिखाने वाली फसल रिकॉर्ड करें। यह न बताएं कि किसी विशेष चैनल को आधा कर दिया गया था जब तक कि एनकोडर निरीक्षण से यह साबित न हो जाए। एक सटीक अवलोकन पुन: प्रस्तुत किया जा सकता है; छिपी हुई कार्यान्वयन सेटिंग्स के बारे में उधार लिया गया स्पष्टीकरण अनुरक्षकों को उस नियंत्रण की ओर भेज सकता है जो उनके पास नहीं है।
रंग-विस्तार हानि देखने योग्य है, लेकिन यह भंडार YCbCr परिवर्तन को लागू या उजागर नहीं करता है
परिचित 4:4:4, 4:2:2 और 4:2:0 लेबल इस इंटरफ़ेस में नियंत्रण नहीं हैं। `encodeCanvas` केवल MIME प्रकार को पास करता है और, JPEG या WebP के लिए, एक सामान्यीकृत गुणवत्ता मान। न तो पैनल और न ही रूपांतरण योजना में कोई सबसैंपलिंग फ़ील्ड है। एक अनुभाग जो उन तरीकों को चयन योग्य के रूप में प्रस्तुत करता है, वह भेजे गए उत्पाद का खंडन करेगा, इसलिए उपयोगी सबक उस विकल्प की अनुपस्थिति है।
जब रंग-किनारे की निष्ठा एक आवश्यकता है, तो स्लाइडर से एक मोड मानने के बजाय एक पथ चुनें जिसके परिणाम का आप निरीक्षण कर सकते हैं। PNG उपलब्ध दोषरहित एनकोडर है और आयाम स्थिर रहने पर अल्फा बनाए रखता है। JPEG और ToolAcre के WebP आउटपुट को स्पष्ट रूप से हर गुणवत्ता में हानिपूर्ण बताया गया है। स्रोत-समर्थित भेद एक असमर्थित समर्थन मैट्रिक्स को प्रकाशित किए बिना आरेख के लिए एक सुरक्षित उम्मीदवार चुनने के लिए पर्याप्त है।
ब्राउज़र एन्कोडर कोई 4:4:4, 4:2:2 या 4:2:0 चयनकर्ता नहीं दिखाता है
तस्वीरें बनावट, प्रकाश व्यवस्था और अनियमित सीमाओं में विवरण वितरित करती हैं, इसलिए एक-पिक्सेल इंटरफ़ेस नियम की तुलना में रंग-किनारे में एक छोटा सा परिवर्तन कम स्पष्ट हो सकता है। यह एक निरीक्षण अनुमान है, यह दावा नहीं है कि मानव दृष्टि ToolAcre में एन्कोड किए गए अनुपात का पालन करती है। एप्लिकेशन अवधारणात्मक समानता की गणना नहीं करता है, सामग्री को वर्गीकृत नहीं करता है या प्रमाणित नहीं करता है कि क्षति दर्शक के लिए अदृश्य होगी।
प्रतिनिधि सामग्री का प्रयोग करें. अकेले एक पोर्ट्रेट रंगीन प्रकार से भरे डिज़ाइन सिस्टम के लिए एक खराब परीक्षण है, और एक सिंथेटिक चार्ट अकेले एक फोटो लाइब्रेरी के लिए एक खराब प्रॉक्सी है। कन्वर्टर बाइट आकार को मापता है और पहले परिणाम के लिए पहले और बाद का पूर्वावलोकन प्रदान करता है, लेकिन स्वीकृति में फ़ाइल को वास्तविक लेआउट में खोलना शामिल होना चाहिए। पूर्वावलोकन स्केलिंग समीक्षाधीन सीमा क्षति को बिल्कुल छिपा सकती है।
तस्वीरें ग्राफ़िक्स की तुलना में रंग-किनारे के नुकसान को बेहतर ढंग से छिपा सकती हैं; यहां किसी विज़न मॉडल का दावा नहीं किया गया है
ग्राफ़िक्स कठिन परिवर्तनों में अर्थ केंद्रित करते हैं: एक लाल चेतावनी रेखांकित, चार्ट में एक नीली श्रृंखला या सफेद पर रंगीन पाठ। जब हानिपूर्ण एनकोड के दौरान पड़ोसी नमूनों को मिश्रित या गोल किया जाता है, तो किनारे से खून बहता हुआ दिखाई दे सकता है, भले ही उसका स्थान अपरिवर्तित हो। आकार बदलने से एक और तंत्र जुड़ जाता है क्योंकि `drawImage` एन्कोडिंग से पहले उच्च स्मूथिंग के साथ स्रोत को फिर से बनाता है।
पहली तुलना के लिए आयामों को स्थिर रखकर उन तंत्रों को अलग करें। यदि PNG कुरकुरा रहता है जबकि JPEG और WebP नरम हो जाते हैं, तो हानिपूर्ण एन्कोडिंग चरण विभेदक है। यह जानने के लिए कि पुन: नमूनाकरण क्या जोड़ता है, एक जानबूझकर किए गए आकार के साथ अगला दोहराएँ। यह दो-चरणीय प्रयोग गुणवत्ता, आयाम और प्रारूप को एक साथ बदलने से अधिक मजबूत है, क्योंकि प्रत्येक दौर में केवल एक ही निर्णय चलता है।
ब्राउज़र एनकोडर आपको क्या नियंत्रित करने देता है - एक गुणवत्ता संख्या लेकिन कोई सबसैंपलिंग स्विच नहीं, और क्यों हानिपूर्ण WebP हमेशा 4:2:0 होता है
ToolAcre ब्राउज़र को 0.01 से 1 तक JPEG और WebP के लिए एक गुणवत्ता संख्या देता है। यह रंग नमूनाकरण, ट्रांसफॉर्म टेबल या एनकोडर प्रयास के लिए कोई स्विच प्रदान नहीं करता है। कार्यपुस्तिका का दावा है कि हानिपूर्ण WebP हमेशा एक नामित सबसैंपलिंग मोड होता है, जो निरीक्षण किए गए कार्यान्वयन से बाहर है, इसलिए यह लेख जानबूझकर इसे उत्पाद गारंटी के रूप में नहीं दोहराता है।
किसी छिपे हुए एनकोडर विकल्प के लिए व्यावहारिक प्रतिक्रिया एक अनिर्दिष्ट चेकबॉक्स की तलाश करना नहीं है। वास्तविक आउटपुट की तुलना करें, स्रोत को संरक्षित करें, और PNG का चयन करें जब सटीक रंगीन किनारे एक छोटी फ़ाइल से अधिक मायने रखते हैं। यदि किसी उत्पादन पाइपलाइन को एक निर्दिष्ट नमूना मोड की आवश्यकता होती है, तो एक एनकोडर का उपयोग करें जिसका दस्तावेज़ API इसे उजागर करता है; एक कैनवास सुविधा API उस अनुबंध को पूरा नहीं कर सकती जिसे वह कभी स्वीकार नहीं करती।
टूल केवल गुणवत्ता पर खरा उतरता है; एनकोडर की सबसैंपलिंग नीति छिपी रहती है
पतले लाल और नीले विकर्णों, गहरे लेबल, एक चिकनी तटस्थ ढाल और एक पारदर्शी कोने के साथ 1200-by-800 परीक्षण चार्ट बनाएं। इसे PNG, JPEG और WebP में आकार बदले बिना निर्यात करें। रिपॉजिटरी बाइट योग या सटीक कलाकृतियों की भविष्यवाणी नहीं कर सकता है, इसलिए परीक्षण योजना में वादा किए गए प्रतिशत डालने के बजाय पैनल द्वारा दिखाए गए मापा परिणाम लिखें।
100 प्रतिशत पर, रंगीन स्ट्रोक की तुलना अंधेरे नियंत्रणों से करें और जांचें कि क्या पारदर्शी कोना बचा हुआ है। PNG को समर्थित दोषरहित एनकोडर के माध्यम से अल्फा बनाए रखना चाहिए; JPEG को चयनित मैट प्राप्त होता है क्योंकि यह अल्फ़ा संग्रहीत नहीं कर सकता; WebP अल्फा बरकरार रखता है लेकिन फिर भी हानिपूर्ण के रूप में चिह्नित है। ये तीन दृश्यमान परिणाम अलग-अलग गुणों का परीक्षण करते हैं और "छोटे" को "बेहतर" के पर्याय के रूप में मानने से बचते हैं।
टेकअवे: सामग्री के आधार पर प्रारूप चुनें - कैसे छवि कन्वर्टर और कंप्रेसर आपको उसी छवि को PNG के रूप में निर्यात करने देता है जब रंग किनारों को स्पष्ट रहना चाहिए
प्रारूप का चुनाव इस बात की गारंटी नहीं दे सकता कि प्रत्येक डाउनस्ट्रीम एप्लिकेशन रंग कैसे प्रस्तुत करेगा, छवि को ज़ूम करेगा या प्रदर्शन के लिए इसे स्केल करेगा। ToolAcre अपने आउटपुट से सबसैंपलिंग मेटाडेटा को उजागर नहीं करता है या पिक्सेल-अंतर मीट्रिक प्रदान नहीं करता है। उन चूकों का मतलब है कि अंतिम जांच केवल रूपांतरण पैनल के बजाय लक्ष्य पेज, दस्तावेज़ या एप्लिकेशन में होती है।
संतृप्त पाठ और संकीर्ण रंगीन नियमों के लिए, दोषरहित उम्मीदवार से शुरू करें और सीधे निरीक्षण के साथ किसी भी हानिपूर्ण प्रतिस्थापन को उचित ठहराएँ। इमेज कन्वर्टर और कंप्रेसर उस तुलना को एक डिवाइस पर दोहराने योग्य बनाता है: समान स्रोत, निश्चित आयाम, तीन आउटपुट प्रारूप और मापा बाइट्स। परिणाम - कोई साझा स्लाइडर संख्या या अनुमानित सबसैंपलिंग मोड नहीं - यह तय करना चाहिए कि क्या भेजा जाए।