Cwebp

नाम

cwebp -- किसी इमेज फ़ाइल को WebP फ़ाइल में कंप्रेस करें

सारांश

cwebp [options] input_file -o output_file.webp

ब्यौरा

cwebp WebP फ़ॉर्मैट का इस्तेमाल करके, किसी इमेज को कंप्रेस करता है. इनपुट फ़ॉर्मैट या तो PNG, JPEG, TIFF, WebP या रॉ Y'CbCr नमूने हो सकते हैं. ध्यान दें: ऐनिमेशन वाली PNG और WebP फ़ाइलें काम नहीं करती हैं.

विकल्प

बुनियादी विकल्प ये हैं:

-o string
आउटपुट WebP फ़ाइल का नाम बताएं. अगर इसे शामिल नहीं किया जाता है, तो cwebp कंप्रेशन करेगा, लेकिन सिर्फ़ आंकड़ों की रिपोर्ट देगा. आउटपुट नाम के तौर पर "-" का इस्तेमाल करने से, आउटपुट 'stdout' पर रीडायरेक्ट हो जाएगा.
-- string
इनपुट फ़ाइल को साफ़ तौर पर बताएं. यह विकल्प तब काम आता है, जब इनपुट फ़ाइल '-' से शुरू होती है. यह विकल्प last में दिखना चाहिए. इसके बाद के किसी भी विकल्प को अनदेखा कर दिया जाएगा.
-h, -help
कम शब्दों में इस्तेमाल के बारे में खास जानकारी.
-H, -longhelp
सभी संभावित विकल्पों की खास जानकारी.
-version
वर्शन नंबर प्रिंट करें (जैसे किMajor.minor.revision) और बाहर निकलें.
-lossless
बिना किसी नुकसान के इमेज को कोड में बदलें. पूरी तरह से पारदर्शी जगह वाली इमेज के लिए, नहीं दिखने वाली पिक्सल वैल्यू (R/G/B या Y/U/V) को सिर्फ़ तब सुरक्षित रखा जाएगा, जब -exact विकल्प का इस्तेमाल किया गया हो.
-near_lossless int
करीब-लॉसलेस इमेज की प्री-प्रोसेसिंग का लेवल तय करें. इस विकल्प की मदद से, पिक्सल वैल्यू में बदलाव किया जाता है, ताकि कंप्रेस किया जा सके. हालांकि, इससे विज़ुअल क्वालिटी पर बहुत कम असर पड़ता है. यह अपने-आप लॉसलेस कंप्रेशन मोड को ट्रिगर करता है. इसकी सीमा 0 (ज़्यादा से ज़्यादा प्री-प्रोसेसिंग) से लेकर 100 तक है. इसमें कोई प्री-प्रोसेसिंग नहीं होगी. यह डिफ़ॉल्ट रूप से सेट होगी. आम तौर पर, यह वैल्यू 60 के आस-पास होती है. ध्यान दें कि -q 100 के साथ नुकसान पहुंचाने से कभी-कभी बेहतर नतीजे मिल सकते हैं.
-q float

आरजीबी चैनलों के लिए, 0 और 100 के बीच का कंप्रेशन फ़ैक्टर बताएं. डिफ़ॉल्ट वैल्यू 75 है.

अगर फ़ाइल को कंप्रेशन (डिफ़ॉल्ट तौर पर) खराब है, तो एक छोटा सा फ़ैक्टर, कम क्वालिटी वाली छोटी फ़ाइल बना देता है. सबसे अच्छी क्वालिटी 100 वैल्यू का इस्तेमाल करके हासिल की जाती है.

लॉसलेस कंप्रेशन (-lossless के ज़रिए बताए गए) के मामले में, एक छोटा फ़ैक्टर, तेज़ कंप्रेस करने की स्पीड को चालू करता है. हालांकि, इससे बड़ी फ़ाइल बनती है. ज़्यादा से ज़्यादा कंप्रेस करने के लिए, 100 वैल्यू इस्तेमाल की जाती है.

-z int

lossless कंप्रेशन मोड पर स्विच करें, जिसका तय लेवल 0 और 9 के बीच है. इसमें लेवल 0 सबसे तेज़ और 9 का मतलब सबसे धीमा है. तेज़ मोड में, धीमे लोड होने वाले फ़ाइल साइज़ की तुलना में फ़ाइल का साइज़ बड़ा होता है. एक अच्छा डिफ़ॉल्ट -z 6 है. यह विकल्प असल में क्वालिटी और तरीके के लिए पहले से तय की गई कुछ सेटिंग का शॉर्टकट है. अगर बाद में -q या -m विकल्प इस्तेमाल किए जाते हैं, तो वे इस विकल्प का असर अमान्य कर देंगे.

-alpha_q int

0 और 100 के बीच ऐल्फ़ा कंप्रेशन के लिए, कंप्रेशन फ़ैक्टर बताएं. ऐल्फ़ा वैल्यू को लॉसलेस कंप्रेस करने के लिए, 100 वैल्यू का इस्तेमाल किया जाता है, जबकि कम वैल्यू की वजह से कंप्रेस करने का कोई नुकसान नहीं होता है. डिफ़ॉल्ट 100 है.

-preset string

खास तरह की सोर्स मटीरियल के हिसाब से, पहले से तय किए गए पैरामीटर का कोई सेट बताएं. संभावित वैल्यू हैं: default, photo, picture, drawing, icon, text.

-preset, अन्य पैरामीटर की वैल्यू को ओवरराइट कर देता है (-q को छोड़कर), इसलिए यह विकल्प, आर्ग्युमेंट के क्रम में सबसे पहले दिखना चाहिए.

-m int

कंप्रेस करने का तरीका बताएं. यह पैरामीटर, एन्कोडिंग की स्पीड और कंप्रेस की गई फ़ाइल के साइज़ और क्वालिटी के बीच तालमेल को कंट्रोल करता है. वैल्यू की वैल्यू 0 से 6 के बीच हो सकती है. डिफ़ॉल्ट वैल्यू 4 है. ज़्यादा वैल्यू इस्तेमाल करने पर एन्कोडर, कोडिंग की दूसरी संभावनाओं की जांच करने में ज़्यादा समय लगाता है और क्वालिटी बेहतर बनाने के बारे में फ़ैसला लेता है. वैल्यू कम होने पर, फ़ाइल का साइज़ कम होने और कंप्रेस की क्वालिटी कम होने की वजह से, प्रोसेस होने में कम समय लग सकता है.

-crop x_position y_position width height

सोर्स को निर्देशांक (x_position, y_position) और साइज़ width x height पर सबसे ऊपर बाएं कोने में से काटें. काटने की यह जगह, सोर्स रेक्टैंगल में पूरी तरह से शामिल होनी चाहिए. ध्यान दें: क्रॉपिंग किसी भी स्केलिंग से पहले लागू की जाती है.

-resize width height

सोर्स का साइज़ width x height साइज़ वाले रेक्टैंगल में बदलें. अगर चौड़ाई या ऊंचाई पैरामीटर में से, (लेकिन दोनों नहीं) 0 है, तो वैल्यू का हिसाब, आसपेक्ट रेशियो को बनाए रखते हुए किया जाएगा. ध्यान दें: स्केलिंग, काटने के बाद लागू की जाती है.

-mt

अगर हो सके, तो कोड में बदलने के लिए मल्टी-थ्रेडिंग का इस्तेमाल करें.

-low_memory

आम तौर पर, कंप्रेस किए गए साइज़ को चार गुना सेव करके, मेमोरी में डेटा के इस्तेमाल को कम करें. इससे एन्कोडिंग धीमा हो जाएगा और आउटपुट साइज़ और डिस्टॉर्शन में थोड़ा अलग होगा. यह फ़्लैग सिर्फ़ तीसरे तरीके और उसके बाद के तरीकों के लिए काम करता है. यह डिफ़ॉल्ट रूप से बंद रहता है. ध्यान दें कि इस फ़्लैग को बंद करने पर बिटस्ट्रीम पर कुछ खराब असर पड़ेगा: यह कुछ बिट स्ट्रीम सुविधाओं को लागू करता है, जैसे पार्टीशन की संख्या (1 के लिए लागू की गई). ध्यान दें कि इस विकल्प का इस्तेमाल करने पर cwebp, बिटस्ट्रीम साइज़ की ज़्यादा ज़्यादा जानकारी वाली रिपोर्ट को प्रिंट करता है.

खराब विकल्प

ये विकल्प सिर्फ़ तब असरदार होते हैं, जब डेटा को गलत तरीके से कोड में बदलने का तरीका (डिफ़ॉल्ट तौर पर, ऐल्फ़ा के साथ या उसके बिना) किया जाता है.

-size int
कंप्रेस किए गए आउटपुट को आज़माने और उस तक पहुंचने के लिए, टारगेट का साइज़ (बाइट में) तय करें. कंप्रेसर, इस टारगेट के ज़्यादा से ज़्यादा पास तक पहुंचने के लिए, पार्शियल एन्कोडिंग के कई पास बनाएगा. -size और -psnr, दोनों का इस्तेमाल करने पर -size वैल्यू लागू होगी.
-psnr float
कंप्रेस किए गए आउटपुट तक पहुंचने और उस तक पहुंचने के लिए, टारगेट PSNR (dB में) तय करें. कंप्रेसर, इस टारगेट के ज़्यादा से ज़्यादा करीब लाने के लिए, पार्शियल एन्कोडिंग के कई पास बनाएगा. अगर -size और -psnr, दोनों का इस्तेमाल किया गया है, तो -size वैल्यू लागू होगी.
-pass int
विकल्पों में इस्तेमाल होने वाले -size या -psnr विकल्पों में से किसी एक समस्या के दौरान, ज़्यादा से ज़्यादा पास इस्तेमाल करने के लिए पास की संख्या तय करें. वैल्यू ज़्यादा से ज़्यादा 10 और डिफ़ॉल्ट वैल्यू 1 है. अगर -size या -psnr विकल्पों का इस्तेमाल किया गया था, लेकिन -pass की जानकारी नहीं दी गई है, तो '6' पास की डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाएगा. अगर -pass बताया गया है, लेकिन -size या -psnr में से कोई भी वैल्यू नहीं दी गई है, तो 40dB के टारगेट PSNR का इस्तेमाल किया जाएगा.
-af
अपने-आप फ़िल्टर होने की सुविधा चालू करें. यह एल्गोरिदम, फ़िल्टर करने की क्षमता को ऑप्टिमाइज़ करने में ज़्यादा समय लगाएगा, ताकि बेहतर क्वालिटी मिल सके.
-jpeg_like
इंटरनल पैरामीटर मैपिंग को बदलें, ताकि वह JPEG कंप्रेशन के साइज़ से बेहतर मैच कर सके. यह फ़्लैग, आम तौर पर अपने JPEG बराबर साइज़ की (इसी -q सेटिंग के लिए) की आउटपुट फ़ाइल जनरेट करेगा. हालांकि, इसमें विज़ुअल डिस्टॉर्शन नहीं होगा.

बेहतर विकल्प:

-f int
ब्लॉक करने वाले फ़िल्टर की क्षमता, 0 (कोई फ़िल्टर नहीं) और 100 (ज़्यादा से ज़्यादा फ़िल्टर) के बीच तय करें. 0 की वैल्यू से सभी फ़िल्टर बंद हो जाएंगे. ज़्यादा वैल्यू से, तस्वीर को डिकोड करने के बाद, फ़िल्टर करने की प्रोसेस बेहतर होगी. वैल्यू जितनी ज़्यादा होगी, तस्वीर उतनी ही बेहतर दिखेगी. सामान्य वैल्यू आम तौर पर, 20 से 50 की रेंज में होती हैं.
-sharpness int
फ़िल्टरिंग का गहरापन बताएं (अगर इसका इस्तेमाल किया जा रहा हो). रेंज 0 (सबसे तेज़) से 7 (सबसे कम शार्प) के बीच है. डिफ़ॉल्ट वैल्यू 0 है.
-strong
बेहतर फ़िल्टर का इस्तेमाल करें (अगर -f विकल्प की मदद से, फ़िल्टर का इस्तेमाल किया जा रहा है). बेहतर फ़िल्टर करने की सुविधा डिफ़ॉल्ट रूप से चालू रहती है.
-nostrong
बेहतर फ़िल्टर की सुविधा बंद करें (अगर -f विकल्प की मदद से, फ़िल्टर करने की सुविधा इस्तेमाल की जा रही है) और इसके बजाय, फ़िल्टर करने का आसान तरीका इस्तेमाल करें.
-sharp_yuv
अगर ज़रूरी हो, तो ज़्यादा सटीक और बेहतर आरजीबी->YUV कन्वर्ज़न का इस्तेमाल करें. ध्यान दें कि यह प्रोसेस, डिफ़ॉल्ट 'तेज़' आरजीबी->YUV कन्वर्ज़न से ज़्यादा धीमी है.
-sns int
जगह के हिसाब से शोर को आकार देने के आयाम के बारे में बताएं. स्पेशल नॉइज़ शेपिंग (या कम शब्दों में एसएन) का मतलब, बिल्ट-इन एल्गोरिदम के सामान्य कलेक्शन से है. इसका इस्तेमाल यह तय करने के लिए किया जाता है कि तस्वीर में किस हिस्से में कम बिट का इस्तेमाल करना चाहिए और इन बिट को कहां ट्रांसफ़र करना चाहिए. यह रेंज 0 (एल्गोरिदम बंद होने पर) से लेकर 100 तक (सबसे ज़्यादा असर) तक हो सकती है. डिफ़ॉल्ट वैल्यू 50 है.
-segments int
एसएन एल्गोरिदम के सेगमेंटेशन के दौरान इस्तेमाल किए जाने वाले पार्टीशन की संख्या बदलें. सेगमेंट, 1 से 4 की रेंज में होने चाहिए. डिफ़ॉल्ट वैल्यू 4 है. इस विकल्प का तीन और बाद के तरीकों पर तब तक कोई असर नहीं पड़ता, जब तक कि -low_memory का इस्तेमाल न किया जाए.
-partition_limit int
कुछ मैक्रोब्लॉक के लिए इस्तेमाल होने वाले बिट की संख्या को सीमित करके, क्वालिटी को खराब करें. रेंज 0 है. इसमें कोई गिरावट नहीं होगी और यह डिफ़ॉल्ट रूप से 100 के बीच होगी. यह पूरी तरह से डीग्रेडेशन है. थोड़े बड़े साइज़ की इमेज के लिए, काम की वैल्यू आम तौर पर 30 से 70 के आस-पास होती हैं. VP8 फ़ॉर्मैट में, कथित नियंत्रण विभाजन की सीमा 512k है और इसका इस्तेमाल नीचे दी गई जानकारी को सेव करने के लिए किया जाता है: क्या मैक्रोब्लॉक को स्किप किया गया है, वह किस सेगमेंट से जुड़ा है, क्या उसे इंट्रा 4x4 या इंट्रा 16x16 मोड से कोड किया गया है, और आखिर में हर सब-ब्लॉक के लिए इस्तेमाल किए जाने वाले अनुमान मोड. बहुत बड़ी इमेज के लिए, 512k में सिर्फ़ कुछ बिट प्रति 16x16 मैक्रोब्लॉक के लिए जगह बची है. हर मैक्रोब्लॉक के लिए, कम से कम चार बिट होना चाहिए. स्किप करें, सेगमेंट और मोड की जानकारी इन चार बिट का इस्तेमाल कर सकती है (हालांकि, ऐसा होने की संभावना नहीं है). इससे बहुत बड़ी इमेज के लिए समस्या होती है. partition_limit फ़ैक्टर से यह कंट्रोल किया जाता है कि सबसे ज़्यादा बिट-लागत वाला मोड (इंट्रा 4x4) कितनी बार इस्तेमाल किया जाएगा. यह उस स्थिति में काम का होता है जब 512k की सीमा पूरी हो जाए और यह मैसेज दिखे: गड़बड़ी का कोड: 6 (partITION0_OVERFLOW: विभाजन #0 512k में फ़िट होने के लिए बहुत बड़ा है). अगर -partition_limit का इस्तेमाल करना, 512K कंस्ट्रेंट को पूरा करने के लिए काफ़ी नहीं है, तो हर मैक्रोब्लॉक के लिए ज़्यादा हेडर बिट सेव करने के लिए कम सेगमेंट का इस्तेमाल करना चाहिए. -segments विकल्प देखें. ध्यान दें कि -m और -q विकल्प भी एन्कोडर के फ़ैसलों और इस सीमा को पूरा करने की क्षमता पर असर डालते हैं.

डेटा इकट्ठा करने के विकल्प

ये विकल्प, आउटपुट के लेवल को कंट्रोल करते हैं:

-v
अतिरिक्त जानकारी प्रिंट करें (खास तौर पर, कोड में बदलने में लगने वाला समय).
-print_psnr
औसत पीएसएनआर (सबसे ज़्यादा सिग्नल और शोर का अनुपात) का हिसाब लगाएं और उसकी रिपोर्ट करें.
-print_ssim
औसत SSIM (स्ट्रक्चर की समानता वाली मेट्रिक, ज़्यादा जानकारी के लिए https://en.wikipedia.org/wiki/SSIM देखें) की गिनती करें और इसकी रिपोर्ट करें.
-print_lsim
लोकल मिलती-जुलती मेट्रिक की गिनती करना और उसकी रिपोर्ट करना (कोलकेटेड पिक्सल आस-पास की कुल गड़बड़ियों में से सबसे कम गड़बड़ी).
-progress
कोड में बदलने के प्रतिशत में हो रही प्रोग्रेस की रिपोर्ट करें.
-quiet
कोई भी प्रिंट न करें.
-short
जांच के लिए, कम शब्दों में दी गई जानकारी (आउटपुट फ़ाइल का साइज़ और पीएसएनआर) को ही प्रिंट करें.
-map int
कोड में बदलने की जानकारी का अतिरिक्त ASCII-मैप आउटपुट करें. मैप की संभावित वैल्यू 1 से 6 तक हैं. इसका मकसद सिर्फ़ डीबग करने में मदद करना है.

ज़्यादा विकल्प

ज़्यादा बेहतर विकल्प ये हैं:

-s width height
यह बताती है कि इनपुट फ़ाइल में वाकई रॉ Y'CbCr नमूने हैं. ITU-R BT.601 सुझाव के मुताबिक ये नमूने 4:2:0 लीनियर फ़ॉर्मैट में हैं. लुमा प्लेन का साइज़ width x height है.
-pre int
प्रोसेसिंग से पहले के कुछ चरण तय करें. 2 की वैल्यू का इस्तेमाल करने से, RGBA->YUVA कन्वर्ज़न (सिर्फ़ लॉसी कंप्रेशन) के दौरान क्वालिटी पर निर्भर छोडो-रैंडम डिथरिंग ट्रिगर हो जाएगा.
-alpha_filter string
ऐल्फ़ा प्लेन के लिए, फ़िल्टर करने का अनुमानित तरीका तय करें. जटिलता और धीमी रफ़्तार के क्रम को बढ़ाने में, none, fast या best में से कोई एक. डिफ़ॉल्ट वैल्यू fast है. अंदरूनी रूप से, ऐल्फ़ा फ़िल्टर चार संभावित अनुमानों (कोई नहीं, हॉरिज़ॉन्टल, वर्टिकल, और ग्रेडिएंट) का इस्तेमाल करके किए जाते हैं. best मोड, हर मोड को एक साथ आज़माएगा और कम साइज़ वाला मोड चुनेगा. fast मोड, सभी मोड की जांच किए बिना ही प्राथमिकता अनुमान लगाने की कोशिश करेगा.
-alpha_method int
ऐल्फ़ा कंप्रेशन के लिए इस्तेमाल किया गया एल्गोरिदम तय करें: 0 या 1. एल्गोरिदम 0 का मतलब है कि कोई कंप्रेस नहीं किया गया है. 1 कंप्रेस करने के लिए, WebP लॉसलेस फ़ॉर्मैट का इस्तेमाल करता है. डिफ़ॉल्ट वैल्यू 1 है.
-exact
पारदर्शी जगह में आरजीबी वैल्यू सेव करें. कंप्रेस करने में मदद करने के लिए, डिफ़ॉल्ट रूप से बंद होता है.
-blend_alpha int
यह विकल्प, ऐल्फ़ा चैनल (अगर मौजूद है) को सोर्स से ब्लेंड करता है. इसके लिए, हेक्ज़ाडेसिमल में बताए गए बैकग्राउंड कलर का इस्तेमाल 0xrrggbb किया जाता है. इसके बाद, ऐल्फ़ा चैनल को ओपेक वैल्यू 255 पर रीसेट कर दिया जाता है.
-noalpha
इस विकल्प का इस्तेमाल करने से ऐल्फ़ा चैनल खारिज हो जाएगा.
-hint string
इनपुट इमेज के टाइप के बारे में संकेत दें. संभावित वैल्यू ये हैं: photo, picture या graph.
-metadata string

मौजूद होने पर, इनपुट से आउटपुट में कॉपी करने के लिए मेटाडेटा की कॉमा-सेपरेटेड लिस्ट. मान्य वैल्यू: all, none, exif, icc, xmp. डिफ़ॉल्ट none है.

ध्यान दें, हो सकता है कि हर इनपुट फ़ॉर्मैट, सभी कॉम्बिनेशन के साथ काम न करे.

-noasm

सभी असेंबली ऑप्टिमाइज़ेशन बंद करें.

बग

उदाहरण

cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png

लेखक

cwebp, libwebp का हिस्सा है और इसे WebP टीम ने लिखा है. नया सोर्स ट्री https://chromium.googlesource.com/webm/libwebp/ पर उपलब्ध है

यह मैन्युअल पेज Debian प्रोजेक्ट के लिए लिखा गया था (और इसका इस्तेमाल दूसरे लोग भी कर सकते हैं).