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
बिना किसी डेटा के नुकसान के इमेज को एन्कोड करें. पूरी तरह से पारदर्शी हिस्से वाली इमेज के लिए, -exact विकल्प का इस्तेमाल करने पर ही, न दिखने वाली पिक्सल वैल्यू (R/G/B या Y/U/V) को सेव किया जाएगा.
-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 के टारगेट पीएसएनआर का इस्तेमाल किया जाएगा.
-af
अपने-आप फ़िल्टर होने की सुविधा चालू करता है. इस एल्गोरिदम को ऑप्टिमाइज़ करने में अतिरिक्त समय लगेगा फ़िल्टर करने की ताकत का इस्तेमाल किया जाता है, ताकि अच्छी क्वालिटी वाली क्वालिटी मिल सके.
-jpeg_like
आंतरिक पैरामीटर मैपिंग को बदलकर, इसके अनुमानित साइज़ से बेहतर मैच करें JPEG कंप्रेशन. आम तौर पर, यह फ़्लैग JPEG फ़ॉर्मैट में मौजूद इमेज के बराबर साइज़ वाली आउटपुट फ़ाइल जनरेट करेगा. हालांकि, इसमें विज़ुअल में कम विरूपता होगी.

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

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

लॉग करने के विकल्प

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

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

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

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

-s width height
यह बताएं कि इनपुट फ़ाइल में असल में रॉ Y'CbCr के सैंपल हैं 4:2:0 लीनियर फ़ॉर्मैट में, ITU-R BT.601 सुझाव के मुताबिक. लुमा प्लेन का साइज़ 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 प्रोजेक्ट के लिए लिखा गया था (और इसका उपयोग करके अन्य).