Tên
cwebp
– Nén tệp hình ảnh thành một tệp WebP
Tóm tắt phim
cwebp [options] input_file -o output_file.webp
Nội dung mô tả
cwebp
nén hình ảnh bằng định dạng WebP. Định dạng đầu vào có thể là mẫu PNG, JPEG, TIFF, WebP hoặc Y'CbCr thô.
Lưu ý: Tệp PNG và WebP động không được hỗ trợ.
Tùy chọn
Có các tuỳ chọn cơ bản sau:
-o string
- Chỉ định tên của tệp WebP đầu ra. Nếu bỏ qua,
cwebp
sẽ thực hiện nén nhưng chỉ báo cáo số liệu thống kê. Việc sử dụng "-" làm tên đầu ra sẽ chuyển đầu ra tới "stdout". -- string
- Chỉ định rõ ràng tệp đầu vào. Tuỳ chọn này sẽ hữu ích nếu tệp đầu vào bắt đầu bằng "-". Lựa chọn này phải xuất hiện
last
. Sau đó, mọi tuỳ chọn khác sẽ bị bỏ qua. -h, -help
- Tóm tắt về mức sử dụng.
-H, -longhelp
- Bản tóm tắt tất cả các lựa chọn có thể áp dụng.
-version
- In số phiên bản (dưới dạng main.minor.revision) rồi thoát.
-lossless
- Mã hoá hình ảnh mà không bị mất. Đối với hình ảnh có vùng trong suốt hoàn toàn, các giá trị pixel không hiển thị (R/G/B hoặc Y/U/V) sẽ chỉ được giữ nguyên nếu sử dụng tuỳ chọn
-exact
. -near_lossless int
- Chỉ định mức độ xử lý trước hình ảnh gần như không mất dữ liệu. Tuỳ chọn này điều chỉnh các giá trị pixel để giúp nén nhưng có tác động tối thiểu đến chất lượng hình ảnh. Nó tự động kích hoạt chế độ nén không tổn hao.
Phạm vi từ
0
(xử lý trước tối đa) đến100
(không xử lý trước, mặc định). Giá trị thông thường là khoảng60
. Lưu ý rằng dữ liệu có tổn hao với-q 100
đôi khi có thể mang lại kết quả tốt hơn. -q float
Chỉ định hệ số nén cho các kênh RGB từ
0
đến100
. Giá trị mặc định là75
.Trong trường hợp nén có tổn hao (mặc định), một hệ số nhỏ sẽ tạo ra tệp nhỏ hơn với chất lượng thấp hơn. Để đạt được chất lượng tốt nhất, hãy sử dụng giá trị
100
.Trong trường hợp nén không tổn hao (được chỉ định theo tuỳ chọn
-lossless
), hệ số nhỏ sẽ cho phép tốc độ nén nhanh hơn, nhưng tạo ra tệp lớn hơn. Đạt được độ nén tối đa bằng cách sử dụng giá trị100
.-z int
Bật chế độ nén
lossless
với cấp được chỉ định từ 0 đến 9, trong đó cấp 0 là nhanh nhất, 9 là chậm nhất. Chế độ nhanh tạo ra kích thước tệp lớn hơn so với chế độ chậm hơn. Mặc định tốt là-z 6
. Tuỳ chọn này thực ra là lối tắt cho một số chế độ cài đặt được xác định trước về chất lượng và phương thức. Nếu các tuỳ chọn-q
hoặc-m
được sử dụng sau đó, chúng sẽ vô hiệu hoá hiệu quả của tuỳ chọn này.-alpha_q int
Chỉ định hệ số nén để nén alpha từ
0
đến100
. Nén alpha không tổn hao đạt được bằng cách sử dụng giá trị100
, trong khi các giá trị thấp hơn sẽ dẫn đến quá trình nén có tổn hao. Giá trị mặc định là100
.-preset string
Chỉ định một tập hợp các thông số được xác định trước cho phù hợp với một loại tài liệu nguồn cụ thể. Các giá trị có thể là:
default
,photo
,picture
,drawing
,icon
,text
.Vì
-preset
sẽ ghi đè giá trị của các tham số khác (ngoại trừ giá trị-q
), nên tuỳ chọn này nên xuất hiện đầu tiên theo thứ tự đối số.-m int
Chỉ định phương thức nén để sử dụng. Tham số này kiểm soát sự đánh đổi giữa tốc độ mã hoá và kích thước cũng như chất lượng của tệp nén. Các giá trị có thể nằm trong khoảng từ
0
đến6
. Giá trị mặc định là4
. Khi sử dụng các giá trị cao hơn, bộ mã hoá sẽ dành nhiều thời gian hơn để kiểm tra các khả năng mã hoá bổ sung và quyết định mức đạt được chất lượng. Giá trị thấp hơn có thể dẫn đến thời gian xử lý nhanh hơn, đồng thời kích thước tệp lớn hơn và chất lượng nén thấp hơn.-crop x_position y_position width height
Cắt nguồn thành một hình chữ nhật có góc trên cùng bên trái tại toạ độ (
x_position
,y_position
) và kích thướcwidth
xheight
. Vùng cắt này phải nằm hoàn toàn trong hình chữ nhật nguồn. Lưu ý: tính năng cắt được áp dụng trước khi điều chỉnh theo tỷ lệ.-resize width height
Đổi kích thước nguồn thành một hình chữ nhật có kích thước
width
xheight
. Nếu một trong hai (nhưng không phải cả hai) tham số chiều rộng hoặc chiều cao là0
, thì giá trị sẽ được tính toán và duy trì tỷ lệ khung hình. Lưu ý: việc điều chỉnh theo tỷ lệ sẽ được áp dụng sau khi cắt.-mt
Sử dụng đa luồng để mã hoá, nếu có thể.
-low_memory
Giảm mức sử dụng bộ nhớ của phương thức mã hoá có tổn hao bằng cách tiết kiệm gấp 4 lần kích thước nén (thường). Điều này sẽ làm cho quá trình mã hoá chậm hơn và kết quả đầu ra hơi khác nhau về kích thước cũng như độ méo hình. Cờ này chỉ có hiệu lực cho các phương thức 3 trở lên và bị tắt theo mặc định. Lưu ý rằng việc tắt cờ này sẽ gây ra một số tác dụng phụ đối với luồng bit: nó buộc một số tính năng luồng bit nhất định như số lượng phân vùng (bắt buộc phải là
1
). Lưu ý rằngcwebp
sẽ in báo cáo chi tiết hơn về kích thước luồng bit khi sử dụng tuỳ chọn này.
Lựa chọn tổn hao
Các tuỳ chọn này chỉ có hiệu quả khi thực hiện phương thức mã hoá có tổn hao (mặc định là có hoặc không có alpha).
-size int
- Chỉ định kích thước mục tiêu (tính bằng byte) để thử và đạt được kết quả nén. Bộ nén sẽ thực hiện nhiều lần mã hoá một phần để đến gần nhất có thể với mục tiêu này. Nếu bạn sử dụng cả
-size
và-psnr
, thì giá trị-size
sẽ được ưu tiên. -psnr float
- Chọn PSNR mục tiêu (tính bằng dB) để thử và đạt được tốc độ nén đầu ra.
Bộ nén sẽ thực hiện nhiều lần mã hoá một phần để đến gần nhất có thể với mục tiêu này. Nếu bạn sử dụng cả
-size
và-psnr
, thì giá trị-size
sẽ được ưu tiên. -pass int
- Đặt số lượt truyền tối đa cần sử dụng trong quá trình phân tách mà các tuỳ chọn
-size
hoặc-psnr
sử dụng. Giá trị tối đa là10
, giá trị mặc định là1
. Nếu bạn sử dụng các tuỳ chọn-size
hoặc-psnr
nhưng-pass
không được chỉ định, thì giá trị mặc định là "6" sẽ được sử dụng. Nếu bạn chỉ định-pass
, nhưng cả-size
và-psnr
đều không được chỉ định, thì PSNR mục tiêu là 40dB sẽ được sử dụng. -af
- Bật bộ lọc tự động. Thuật toán này sẽ dành thêm thời gian để tối ưu hoá độ mạnh của bộ lọc nhằm đạt được chất lượng cân bằng.
-jpeg_like
- Thay đổi mục ánh xạ tham số nội bộ để phù hợp hơn với kích thước dự kiến khi nén tệp JPEG. Cờ này thường sẽ tạo một tệp đầu ra có kích thước tương tự như tệp JPEG tương đương (cho cùng chế độ cài đặt
-q
), nhưng ít bị méo hình ảnh hơn.
Tuỳ chọn nâng cao:
-f int
- Chỉ định độ mạnh của bộ lọc chặn, giữa
0
(không lọc) và100
(lọc tối đa). Giá trị0
sẽ tắt mọi bộ lọc. Giá trị cao hơn sẽ làm tăng cường độ của quá trình lọc được áp dụng sau khi giải mã hình ảnh. Giá trị càng cao, hình ảnh sẽ xuất hiện càng mượt mà. Các giá trị thông thường thường nằm trong khoảng từ20
đến50
. -sharpness int
- Chỉ định độ sắc nét của bộ lọc (nếu sử dụng). Phạm vi từ
0
(sắc nét nhất) đến7
(ít sắc nhất). Mặc định là0
. -strong
- Sử dụng chế độ lọc mạnh (nếu bộ lọc đang được sử dụng nhờ lựa chọn
-f
). Chế độ lọc mức nghiêm ngặt được bật theo mặc định. -nostrong
- Tắt chế độ lọc mạnh (nếu bạn đang dùng chế độ lọc nhờ chế độ
-f
) và thay vào đó, hãy dùng tính năng lọc đơn giản. -sharp_yuv
- Sử dụng hệ thống RGB chính xác và sắc nét hơn –> chuyển đổi YUV nếu cần. Xin lưu ý rằng quá trình này chậm hơn so với chuyển đổi "nhanh" RGB->YUV mặc định.
-sns int
- Chỉ định biên độ của hình dạng nhiễu không gian. Định hình nhiễu không gian (gọi tắt là sns) là một tập hợp chung các thuật toán tích hợp được dùng để quyết định vùng nào trong ảnh nên sử dụng ít bit tương đối hơn và nơi nào khác để chuyển các bit này hiệu quả hơn. Phạm vi có thể có là từ
0
(thuật toán bị tắt) đến100
(hiệu ứng tối đa). Giá trị mặc định là50
. -segments int
- Thay đổi số lượng phân vùng cần sử dụng trong quá trình phân đoạn thuật toán sns. Các đoạn phải nằm trong phạm vi từ
1
đến4
. Giá trị mặc định là4
. Tuỳ chọn này không có hiệu lực với các phương thức 3 trở lên, trừ phi bạn sử dụng-low_memory
. -partition_limit int
- Giảm chất lượng bằng cách giới hạn số lượng bit mà một số khối macro sử dụng.
Phạm vi từ
0
(không giảm xuống, giá trị mặc định) là100
(giảm cấp hoàn toàn). Các giá trị hữu ích thường nằm trong khoảng30
–70
đối với những hình ảnh tương đối lớn. Ở định dạng VP8, phân vùng điều khiển được gọi là có giới hạn là 512k và được dùng để lưu trữ các thông tin sau: liệu macroblock có bị bỏ qua hay không, nó thuộc phân đoạn nào, được mã hoá là chế độ 4x4 nội bộ hay 16x16 và cuối cùng là chế độ dự đoán cần sử dụng cho mỗi khối phụ. Đối với hình ảnh rất lớn, 512k chỉ chừa chỗ cho một vài bit cho mỗi macroblock 16x16. Giá trị tối thiểu tuyệt đối là 4 bit cho mỗi macroblock. Thông tin bỏ qua, phân đoạn và chế độ có thể sử dụng gần như toàn bộ 4 bit này (mặc dù trường hợp này ít có khả năng xảy ra). Điều này gây ra vấn đề đối với những hình ảnh rất lớn. Hệ sốpartition_limit
kiểm soát tần suất sử dụng chế độ tốn kém nhất (intra 4x4). Điều này hữu ích trong trường hợp đạt đến giới hạn 512k và thông báo sau sẽ hiển thị: Mã lỗi: 6 (partITION0_OVERFLOW: Phân vùng #0 quá lớn để vừa với kích thước 512k). Nếu việc sử dụng-partition_limit
không đủ để đáp ứng quy tắc ràng buộc 512k, thì bạn nên sử dụng ít phân đoạn hơn để tiết kiệm thêm số bit tiêu đề cho mỗi macroblock. Xem tuỳ chọn-segments
. Xin lưu ý rằng các tuỳ chọn-m
và-q
cũng ảnh hưởng đến quyết định của bộ mã hoá và khả năng đạt đến giới hạn này.
Tuỳ chọn ghi nhật ký
Các tuỳ chọn này kiểm soát mức đầu ra:
-v
- In thông tin bổ sung (cụ thể là thời gian mã hoá).
-print_psnr
- Tính toán và báo cáo PSNR trung bình (tỷ lệ tín hiệu cao nhất trên độ nhiễu).
-print_ssim
- Tính toán và báo cáo SSIM trung bình (chỉ số tương tự về cấu trúc, xem https://en.wikipedia.org/wiki/SSIM để biết thêm chi tiết).
-print_lsim
- Tính toán và báo cáo chỉ số tương đồng cục bộ (tổng lỗi thấp nhất trong số các điểm ảnh lân cận đã sắp xếp).
-progress
- Tiến trình mã hoá báo cáo tính theo phần trăm.
-quiet
- Không in bất kỳ nội dung nào.
-short
- Chỉ in thông tin ngắn gọn (kích thước tệp đầu ra và PSNR) cho mục đích kiểm thử.
-map int
- Xuất ra bản đồ ASCII của thông tin mã hoá. Các giá trị ánh xạ có thể có phạm vi từ
1
đến6
. Thao tác này chỉ nhằm giúp gỡ lỗi.
Các tùy chọn khác
Các tuỳ chọn nâng cao khác là:
-s width height
- Chỉ định rằng tệp đầu vào thực sự chứa các mẫu Y'CbCr thô theo đề xuất ITU-R BT.601, ở định dạng tuyến tính 4:2:0. Mặt phẳng luma có kích thước
width
xheight
. -pre int
- Chỉ định một số bước trước khi xử lý. Việc sử dụng giá trị
2
sẽ kích hoạt việc phối màu giả ngẫu nhiên phụ thuộc vào chất lượng trong quá trình chuyển đổi RGBA->YUVA (chỉ nén mất dữ liệu). -alpha_filter string
- Chọn phương pháp lọc dự đoán cho mặt phẳng alpha. Một trong
none
,fast
hoặcbest
, theo thứ tự tăng dần độ phức tạp và tốc độ. Mặc định làfast
. Trong nội bộ, quá trình lọc alpha được thực hiện bằng cách sử dụng 4 dự đoán có thể có (không có, ngang, dọc, chuyển màu). Chế độbest
sẽ thử lần lượt từng chế độ và chọn chế độ có kích thước nhỏ hơn. Chế độfast
sẽ chỉ cố gắng tạo ra một dự đoán trước tiên mà không kiểm thử tất cả các chế độ. -alpha_method int
- Chỉ định thuật toán dùng để nén alpha:
0
hoặc1
. Thuật toán0
biểu thị việc không nén,1
sử dụng định dạng không tổn hao WebP để nén. Giá trị mặc định là1
. -exact
- Duy trì giá trị RGB trong vùng trong suốt. Tuỳ chọn mặc định là tắt, để giúp nén.
-blend_alpha int
- Lựa chọn này kết hợp kênh alpha (nếu có) với nguồn bằng cách sử dụng màu nền được chỉ định trong hệ thập lục phân dưới dạng 0xrrggbb. Sau đó, kênh alpha được đặt lại về giá trị mờ
255
. -noalpha
- Nếu bạn sử dụng tuỳ chọn này, kênh alpha sẽ bị loại bỏ.
-hint string
- Chỉ định gợi ý về loại ảnh đầu vào. Các giá trị có thể là:
photo
,picture
hoặcgraph
. -metadata string
Danh sách siêu dữ liệu được phân tách bằng dấu phẩy để sao chép từ dữ liệu đầu vào sang đầu ra nếu có. Giá trị hợp lệ:
all
,none
,exif
,icc
,xmp
. Giá trị mặc định lànone
.Xin lưu ý rằng mỗi định dạng đầu vào có thể không hỗ trợ tất cả các cách kết hợp.
-noasm
Tắt mọi tính năng tối ưu hoá tập hợp.
Lỗi
Vui lòng báo cáo tất cả lỗi cho công cụ theo dõi lỗi: https://bugs.chromium.org/p/webp
Chào mừng bạn đến với các bản vá! Hãy xem trang này để bắt đầu: https://www.webmproject.org/code/contribute/submitting-patches/
Ví dụ
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
Các tác giả
cwebp
là một phần của libwebp
và do nhóm WebP viết.
Cây nguồn mới nhất có tại https://chromium.googlesource.com/webm/libwebp/
Trang hướng dẫn này được viết cho dự án Debian (và có thể được những người khác dùng).