ชื่อ
cwebp
-- บีบอัดไฟล์ภาพเป็นไฟล์ WebP
เรื่องย่อ
cwebp [options] input_file -o output_file.webp
คำอธิบาย
cwebp
บีบอัดรูปภาพโดยใช้รูปแบบ WebP รูปแบบอินพุตอาจเป็น
PNG, JPEG, TIFF, WebP หรือตัวอย่าง Y'CbCr แบบ Raw
หมายเหตุ: ไม่รองรับไฟล์ 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
) และขนาดwidth
xheight
พื้นที่ครอบตัดนี้ต้องอยู่ในสี่เหลี่ยมผืนผ้าต้นฉบับทั้งหมด หมายเหตุ: การครอบตัดจะใช้ก่อนที่จะปรับสัดส่วน-resize width height
ปรับขนาดแหล่งข้อมูลเป็นสี่เหลี่ยมผืนผ้าขนาด
width
xheight
หากพารามิเตอร์ความกว้างหรือความสูงอย่างใดอย่างหนึ่งคือ0
ระบบจะคำนวณค่าโดยคงสัดส่วนภาพไว้ หมายเหตุ: การปรับขนาดจะมีผลหลังการครอบตัด-mt
หากเป็นไปได้ ให้ใช้การจัดชุดข้อความแบบหลายรายการในการเข้ารหัส
-low_memory
ลดการใช้หน่วยความจำของการเข้ารหัสแบบสูญเสียบางส่วนโดยประหยัดขนาดที่บีบอัดเป็น 4 เท่า (โดยทั่วไป) ซึ่งจะทำให้การเข้ารหัสช้าลงและเอาต์พุตขนาด มีการผิดเพี้ยนเล็กน้อย แฟล็กนี้มีผลเฉพาะกับวิธีที่ 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
- ใช้ Conversion สำหรับ 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 และสุดท้ายคือโหมดการคาดการณ์ที่ใช้สำหรับการบล็อกย่อยแต่ละรายการ สำหรับรูปภาพขนาดใหญ่มาก ขนาด 512K จะเหลือพื้นที่เพียงไม่กี่บิตต่อมาโครบล็อก 16x16 ค่าขั้นต่ำสัมบูรณ์คือ 4 บิตต่อมาโครบล็อก ข้อมูลการข้าม กลุ่ม และโหมดอาจใช้บิต 4 บิตนี้เกือบทั้งหมด (แต่มักไม่น่าจะเกิดขึ้นได้) ซึ่งเป็นปัญหาสำหรับรูปภาพขนาดใหญ่มาก ปัจจัยpartition_limit
จะควบคุมความถี่ในการใช้โหมดต้นทุนสูงสุด (ภายใน 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 มีขนาด
width
xheight
-pre int
- ระบุขั้นตอนก่อนการประมวลผล การใช้ค่า
2
จะทริกเกอร์การระบายสีแบบสุ่มโดยอิงตามคุณภาพในระหว่าง Conversion ที่เป็น 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
ปิดใช้การเพิ่มประสิทธิภาพ Assembly ทั้งหมด
ข้อบกพร่อง
โปรดรายงานข้อบกพร่องทั้งหมดไปยังเครื่องมือติดตามปัญหา: 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 (และอาจมีผู้อื่นใช้ด้วย)