नाम
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
xheight
पर सबसे ऊपर बाएं कोने में से काटें. काटने की यह जगह, सोर्स रेक्टैंगल में पूरी तरह से शामिल होनी चाहिए. ध्यान दें: क्रॉपिंग किसी भी स्केलिंग से पहले लागू की जाती है.-resize width height
सोर्स का साइज़
width
xheight
साइज़ वाले रेक्टैंगल में बदलें. अगर चौड़ाई या ऊंचाई पैरामीटर में से, (लेकिन दोनों नहीं)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
xheight
है. -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
सभी असेंबली ऑप्टिमाइज़ेशन बंद करें.
बग
कृपया सभी गड़बड़ियों की शिकायत, समस्या के ट्रैकर पर करें: https://bugs.chromium.org/p/webp
पैच का स्वागत है! शुरू करने के लिए इस पेज को देखें: https://www.webmproject.org/code/contribute/submitting-patches/
उदाहरण
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 प्रोजेक्ट के लिए लिखा गया था (और इसका इस्तेमाल दूसरे लोग भी कर सकते हैं).