ชื่อ
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
- พิมพ์หมายเลขเวอร์ชัน (เป็น main.minor.revision) แล้วออก
- -lossless
- เข้ารหัสรูปภาพโดยไม่สูญหาย สำหรับรูปภาพที่มีพื้นที่โปร่งใสทั้งหมด ระบบจะเก็บค่าพิกเซลที่มองไม่เห็น (R/G/B หรือ Y/U/V) ไว้เฉพาะในกรณีที่ใช้ตัวเลือก -exact
- -near_lossless int
- ระบุระดับการประมวลผลรูปภาพล่วงหน้าแบบไม่สูญเสียรายละเอียด ตัวเลือกนี้จะปรับค่าพิกเซลเพื่อช่วยในการบีบอัด แต่จะมีผลกระทบต่อคุณภาพของภาพน้อยมาก โดยจะเรียกใช้โหมดการบีบอัดแบบไม่สูญเสียรายละเอียดโดยอัตโนมัติ
ช่วงคือ 0(การประมวลผลข้อมูลล่วงหน้าสูงสุด) ถึง100(ไม่มีการประมวลผลข้อมูลล่วงหน้า ซึ่งเป็นค่าเริ่มต้น) ค่าทั่วไปอยู่ที่ประมาณ60โปรดทราบว่าบางครั้งการบีบอัดแบบสูญเสียข้อมูลด้วย-q 100อาจให้ผลลัพธ์ที่ดีกว่า
- -q float
- ระบุปัจจัยการบีบอัดสำหรับช่อง RGB ระหว่าง - 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) และขนาด- widthx- heightพื้นที่ครอบตัดนี้ต้องอยู่ภายในสี่เหลี่ยมผืนผ้าต้นทางโดยสมบูรณ์ หมายเหตุ: การครอบตัด จะใช้ก่อนการปรับขนาดใดๆ
- -resize width height
- ปรับขนาดแหล่งที่มาเป็นสี่เหลี่ยมผืนผ้าขนาด - widthx- heightหากพารามิเตอร์ความกว้างหรือความสูง (แต่ไม่ใช่ทั้ง 2 อย่าง) เป็น- 0ระบบจะคำนวณค่าโดยคงสัดส่วนภาพไว้ หมายเหตุ: การปรับขนาดจะมีผลหลังจาก การครอบตัด
- -mt
- ใช้การแยกหลายเธรดสำหรับการเข้ารหัส หากเป็นไปได้ 
- -low_memory
- ลดการใช้หน่วยความจำของการเข้ารหัสแบบสูญเสียข้อมูลโดยการบันทึกขนาดที่บีบอัดไว้ 4 เท่า (โดยปกติ) ซึ่งจะทำให้การเข้ารหัสช้าลงและเอาต์พุตมีขนาดใหญ่และบิดเบี้ยวแตกต่างกันเล็กน้อย Flag นี้จะมีผลกับวิธีการที่ 3 ขึ้นไปเท่านั้น และปิดอยู่โดยค่าเริ่มต้น โปรดทราบว่าการคงสถานะนี้ปิดไว้ จะมีผลข้างเคียงบางอย่างกับบิตสตรีม นั่นคือจะบังคับให้บิตสตรีมบางอย่าง ฟีเจอร์ เช่น จำนวนพาร์ติชัน (บังคับเป็น - 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ระบบจะใช้ PSNR เป้าหมายเป็น 40 dB
- -af
- เปิดตัวกรองอัตโนมัติ อัลกอริทึมนี้จะใช้เวลาในการเพิ่มประสิทธิภาพมากขึ้น ความแรงของการกรองเพื่อให้ได้คุณภาพที่สมดุลกัน
- -jpeg_like
- เปลี่ยนการแมปพารามิเตอร์ภายในเพื่อให้ตรงกับขนาดที่คาดไว้ของ
การบีบอัด JPEG โดยทั่วไปแล้ว Flag นี้จะสร้างไฟล์เอาต์พุตที่มีขนาดใกล้เคียงกับไฟล์ JPEG ที่เทียบเท่า (สำหรับการตั้งค่า -qเดียวกัน) แต่มีการบิดเบือนภาพน้อยกว่า
ตัวเลือกขั้นสูง:
- -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ตัวเลือกนี้ไม่มีผลกับเมธอด 3 ขึ้นไป ยกเว้น-low_memoryที่ใช้
- -partition_limit int
- ลดคุณภาพด้วยการจำกัดจำนวนบิตที่มาโครบล็อกบางรายการใช้
ช่วงคือ 0(ไม่มีการเสื่อมสภาพ ค่าเริ่มต้น) ถึง100(การเสื่อมสภาพทั้งหมด) ค่าที่เป็นประโยชน์มักอยู่ที่ประมาณ30-70สำหรับรูปภาพขนาดใหญ่ปานกลาง ในรูปแบบ VP8 พาร์ติชันควบคุมจะมีขีดจํากัด 512k และใช้เพื่อจัดเก็บข้อมูลต่อไปนี้ มีการข้ามมาโครบล็อกหรือไม่ บล็อกนั้นอยู่ในกลุ่มใด มีการเข้ารหัสเป็นโหมดอินทรา 4x4 หรืออินทรา 16x16 หรือไม่ และสุดท้ายคือโหมดการคาดการณ์ที่จะใช้กับแต่ละบล็อกย่อย สำหรับรูปภาพขนาดใหญ่มาก 5.12 K จะเหลือพื้นที่เพียงไม่กี่บิตต่อ มาโครบล็อกขนาด 16x16 ขั้นต่ำสุดคือ 4 บิตต่อมาโครบล็อก ข้าม, และข้อมูลโหมดจะใช้เกือบทั้ง 4 บิตนี้ (แม้ว่า กรณีนี้ไม่น่าจะเกิดขึ้น) ซึ่งเป็นปัญหาสำหรับภาพขนาดใหญ่มาก ปัจจัยpartition_limitที่ควบคุมความถี่ที่โหมดที่ใช้ต้นทุนต่ำที่สุด (intra 4x4) ซึ่งมีประโยชน์ในกรณีที่ถึงขีดจํากัด 512k และข้อความต่อไปนี้แสดงขึ้น: รหัสข้อผิดพลาด: 6 (PARTITION0_OVERFLOW: พาร์ติชัน #0 ใหญ่เกินกว่าที่จะใส่ 512k ได้) หากใช้-partition_limitไม่เพียงพอที่จะรองรับข้อจำกัด 512k ใช้กลุ่มน้อยลงเพื่อที่จะประหยัดบิตส่วนหัวต่อมาโครบล็อกได้มากขึ้น โปรดดู ตัวเลือก-segmentsโปรดทราบว่าตัวเลือก-mและ-qจะส่งผลต่อการตัดสินใจและความสามารถของโปรแกรมเปลี่ยนไฟล์ในการเข้าถึงขีดจำกัดนี้ด้วย
ตัวเลือกการบันทึก
ตัวเลือกเหล่านี้จะควบคุมระดับเอาต์พุต
- -v
- พิมพ์ข้อมูลเพิ่มเติม (โดยเฉพาะเวลาที่เข้ารหัส)
- -print_psnr
- คํานวณและรายงาน PSNR (อัตราส่วนสัญญาณต่อสัญญาณรบกวนสูงสุด) เฉลี่ย
- -print_ssim
- คำนวณและรายงาน SSIM โดยเฉลี่ย (เมตริกความคล้ายคลึงกันของโครงสร้าง ดู ดูรายละเอียดเพิ่มเติมได้ที่ https://en.wikipedia.org/wiki/SSIM)
- -print_lsim
- คำนวณและรายงานเมตริกความคล้ายคลึงกันในท้องถิ่น (ผลรวมของข้อผิดพลาดที่ต่ำที่สุดระหว่าง พิกเซลที่จัดเรียงไว้)
- -progress
- รายงานความคืบหน้าในการเข้ารหัสเป็นเปอร์เซ็นต์
- -quiet
- ไม่ต้องพิมพ์อะไรเลย
- -short
- พิมพ์เฉพาะข้อมูลสั้นๆ (ขนาดไฟล์เอาต์พุตและ PSNR) เพื่อวัตถุประสงค์ในการทดสอบ
- -map int
- แสดงผลแผนที่ ASCII เพิ่มเติมของข้อมูลการเข้ารหัส ค่าแผนที่ที่เป็นไปได้จะอยู่ระหว่าง 1ถึง6ข้อมูลนี้มีไว้เพื่อช่วยแก้ไขข้อบกพร่องเท่านั้น
ตัวเลือกเพิ่มเติม
ตัวเลือกขั้นสูงเพิ่มเติมมีดังนี้
- -s width height
- ระบุว่าไฟล์อินพุตประกอบด้วยตัวอย่าง Y'CbCr ดิบตามคำแนะนำ ITU-R BT.601 ในรูปแบบเชิงเส้น 4:2:0 
เครื่องบิน Luma มีขนาด widthxheight
- -pre int
- ระบุขั้นตอนก่อนการประมวลผล การใช้ค่า 2จะทริกเกอร์ การกระจายแบบสุ่มที่ไม่มีคุณภาพที่ขึ้นอยู่กับคุณภาพระหว่างการแปลง RGBA->YUVA (การบีบอัดแบบสูญเสียเท่านั้น)
- -alpha_filter string
- ระบุวิธีการกรองแบบคาดการณ์สำหรับระนาบอัลฟ่า รายการใดรายการหนึ่งต่อไปนี้ none,fastหรือbestโดยเรียงตามลำดับความซับซ้อนและความช้าที่เพิ่มขึ้น ค่าเริ่มต้นคือfastการกรองระดับอัลฟ่าสามารถทำได้โดยใช้ 4 การคาดคะเนที่เป็นไปได้ (ไม่มี แนวนอน แนวตั้ง การไล่ระดับสี)bestโหมดจะลองใช้แต่ละโหมดตามลำดับและเลือกโหมดที่ให้ไฟล์มีขนาดเล็กที่สุด โหมดfastจะพยายามสร้างการคาดเดาลำดับความสำคัญโดยไม่มี ทุกโหมด
- -alpha_method int
- ระบุอัลกอริทึมที่ใช้สำหรับการบีบอัดอัลฟ่า: 0หรือ1อัลกอริทึม0หมายถึงไม่มีการบีบอัด1ใช้รูปแบบ WebP แบบไม่สูญเสียข้อมูลในการบีบอัด โดยมีค่าเริ่มต้นเป็น1
- -exact
- เก็บค่า RGB ในพื้นที่โปร่งใส ค่าเริ่มต้นคือปิดอยู่เพื่อให้ความช่วยเหลือ ความสามารถในการบีบอัด
- -blend_alpha int
- ตัวเลือกนี้จะผสมผสานแชแนลอัลฟ่า (หากมี) กับแหล่งที่มาโดยใช้สีพื้นหลังที่ระบุเป็นเลขฐานสิบหกเป็น 0xrrggbb จากนั้นระบบจะรีเซ็ตแชแนลอัลฟาเป็นค่าทึบแสง 255
- -noalpha
- การใช้ตัวเลือกนี้จะทิ้งแชแนลอัลฟ่า
- -hint string
- ระบุคำแนะนำเกี่ยวกับประเภทรูปภาพอินพุต ค่าที่เป็นไปได้คือ photo,pictureหรือgraph
- -metadata string
- รายการข้อมูลเมตาที่คั่นด้วยคอมมาเพื่อคัดลอกจากอินพุตไปยังเอาต์พุต (หากมี) ค่าที่ใช้ได้: - all,- none,- exif,- icc,- xmpโดยมีค่าเริ่มต้นเป็น- none- โปรดทราบว่ารูปแบบอินพุตแต่ละรูปแบบอาจไม่รองรับชุดค่าผสมทั้งหมด 
- -noasm
- ปิดใช้การเพิ่มประสิทธิภาพการประกอบทั้งหมด 
ข้อบกพร่อง
- โปรดรายงานข้อบกพร่องทั้งหมดไปยังเครื่องมือติดตามปัญหาที่ https://issues.webmproject.org 
- ยินดีรับการแก้ไข ดูวิธีเริ่มต้นได้ที่หน้านี้ 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 (และอาจใช้โดยบุคคลอื่น)
