Tên
cwebp
– Nén tệp hình ảnh thành tệp WebP
Tóm tắt phim
cwebp [options] input_file -o output_file.webp
Mô tả
cwebp
nén hình ảnh bằng định dạng WebP. Định dạng mục nhập có thể là
Mẫu PNG, JPEG, TIFF, WebP hoặc mẫu Y'CbCr thô.
Lưu ý: Không hỗ trợ tệp PNG và WebP động.
Tùy chọn
Các tuỳ chọn cơ bản là:
-o string
- Chỉ định tên của tệp WebP đầu ra. Nếu bạn bỏ qua,
cwebp
sẽ thực hiện quá trình 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 hướng đầu ra đến "stdout". -- string
- Chỉ định rõ tệp đầu vào. Tuỳ chọn này hữu ích nếu tệp đầu vào bắt đầu bằng dấu "-". Lựa chọn này phải xuất hiện
last
. Mọi tuỳ chọn khác sau đó sẽ bị bỏ qua. -h, -help
- Tóm tắt ngắn về cách sử dụng.
-H, -longhelp
- Bản tóm tắt tất cả phương án có thể áp dụng.
-version
- In số phiên bản (dưới dạng đại.minor.revision) rồi thoát.
-lossless
- Mã hoá hình ảnh mà không bị mất dữ liệu. Đối với hình ảnh có vùng hoàn toàn trong suốt, giá trị pixel không hiển thị (R/G/B hoặc Y/U/V) sẽ chỉ được giữ nguyên nếu bạn 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 suy hao. Tùy chọn này điều chỉnh
để tăng khả năng nén, nhưng ảnh hưởng rất ít đến hình ảnh
chất lượng. Phương thức này tự động kích hoạt chế độ nén không tổn hao.
Phạm vi là
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à vào khoảng60
. Xin lưu ý rằng đôi khi, việc mất dữ liệu với-q 100
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), hệ số nhỏ sẽ tạo ra một tệp nhỏ hơn với chất lượng thấp hơn. Chất lượng tốt nhất đạt được bằng cách sử dụng giá trị của
100
.Trong trường hợp nén không tổn hao (được chỉ định theo tuỳ chọn
-lossless
), yếu tố nhỏ cho phép tốc độ nén nhanh hơn nhưng tạo ra tệp lớn hơn. Bạn có thể đạt được mứ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 và 9 là chậm nhất. Chế độ nhanh tạo ra kích thước tệp lớn hơn so với các chế độ chậm hơn. Giá trị mặc định phù hợp là-z 6
. Tuỳ chọn này thực sự là một 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 sau đó bạn sử dụng các tuỳ chọn-q
hoặc-m
, chúng sẽ vô hiệu hoá tác động của tuỳ chọn này.-alpha_q int
Chỉ định hệ số nén để nén alpha từ
0
đến100
. Bạn có thể nén alpha không suy hao bằng cách sử dụng giá trị100
, trong khi các giá trị thấp hơn sẽ dẫn đến việc nén có suy hao. Giá trị mặc định là100
.-preset string
Chỉ định một tập hợp các tham 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
ghi đè các tham số khác các giá trị (ngoại trừ-q
một), tuỳ chọn này nên xuất hiện đầu tiên theo thứ tự của đối số.-m int
Chỉ định phương thức nén cầ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ăng chất lượng. Giá trị thấp hơn có thể dẫn đến thời gian xử lý nhanh hơn nhưng đổi lạ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
. Kiểu cắt này phải được chứa hoàn toàn trong hình chữ nhật nguồn. Lưu ý: thao tác 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 hình chữ nhật có kích thước
width
xheight
. Nếu một trong hai tham số chiều rộng hoặc chiều cao (nhưng không phải cả hai) là0
, thì giá trị sẽ được tính toán để giữ nguyên tỷ lệ khung hình. Lưu ý: việc điều chỉnh theo tỷ lệ được áp dụng sau khi cắt.-mt
Sử dụng phương thức đa luồng để mã hoá (nếu có thể).
-low_memory
Giảm mức sử dụng bộ nhớ của quá trình mã hoá có tổn hao bằng cách tiết kiệm gấp bốn lần kích thước đã nén (thông thường). Việc này sẽ làm cho quá trình mã hoá chậm hơn và kết quả hơi khác nhau về kích thước và độ méo hình. Cờ này chỉ có hiệu lực đối với các phương thức từ 3 trở lên và bị tắt theo mặc định. Xin lưu ý rằng việc tắt cờ này sẽ có một số hiệu ứng phụ đối với luồng bit: cờ này buộc một số tính năng luồng bit nhất định như số lượng phân vùng (buộc phải là
1
). Xin 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.
Tuỳ chọn có tổn hao
Các tuỳ chọn này chỉ có hiệu quả khi mã hoá có tổn hao (mặc định, với 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à tiếp cận cho tệp nén
đầu ra. Trình nén sẽ thực hiện một số lượt mã hoá một phần để đạt được mục tiêu này gần nhất có thể. Nếu cả
-size
và Bạn đang sử dụng-psnr
, giá trị-size
sẽ được ưu tiên áp dụng. -psnr float
- Chọn PSNR mục tiêu (tính bằng dB) để thử và tiếp cận cho đầu ra nén.
Trình nén sẽ thực hiện một số lượt mã hoá một phần để đạt được mục tiêu này gần nhất có thể. 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ượng lượt truy cập tối đa để sử dụng trong quá trình phân chia dùng các tuỳ chọn
-size
hoặc-psnr
. Giá trị tối đa là10
, mặc định là1
. Nếu tùy chọn-size
hoặc-psnr
đã được sử dụng, nhưng-pass
chưa được chỉ định, làm giá trị mặc định trong số '6' thẻ và vé sẽ được sử dụng. Nếu bạn chỉ định-pass
nhưng không chỉ định-size
hoặc-psnr
, thì PSNR mục tiêu là 40dB sẽ được sử dụng. -af
- Bật tính năng tự động lọc. Thuật toán này sẽ dành thêm thời gian để tối ưu hoá cường độ lọc để đạt được chất lượng cân bằng.
-jpeg_like
- Thay đổi ánh xạ tham số nội bộ để phù hợp hơn với kích thước dự kiến của quá trình nén JPEG. Cờ này thường sẽ tạo ra một tệp đầu ra
kích thước tương tự như ảnh JPEG tương đương (cho cùng chế độ cài đặt
-q
), nhưng có giảm hiện tượng méo hình.
Tuỳ chọn nâng cao:
-f int
- Chỉ định độ mạnh của bộ lọc loại bỏ hiện tượng chặn, trong khoảng từ
0
(không lọc) đến100
(lọc tối đa). Giá trị0
sẽ tắt mọi hoạt động lọc. Giá trị cao hơn sẽ làm tăng cường độ của quy trình lọc được áp dụng sau khi giải mã hình ảnh. Giá trị càng cao thì ảnh càng mượt sẽ xuất hiện. Các giá trị điển hình thường nằm trong khoảng từ20
đến50
. -sharpness int
- Chọn độ sắc nét của bộ lọc (nếu sử dụng). Phạm vi là
0
(sắc nét nhất) đến7
(ít sắc nét nhất). Mặc định là0
. -strong
- Sử dụng chế độ lọc mạnh (nếu đang sử dụng chế độ lọc nhờ có
-f
). Chế độ lọc mạnh được bật theo mặc định. -nostrong
- Tắt tính năng lọc mạnh (nếu đang sử dụng tính năng lọc nhờ tuỳ chọn
-f
) và sử dụng tính năng lọc đơn giản. -sharp_yuv
- Sử dụng tính năng chuyển đổi RGB->YUV chính xác và sắc nét hơn. Xin lưu ý rằng quá trình này chậm hơn mặc định "nhanh" Chuyển đổi RGB->YUV.
-sns int
- Chỉ định biên độ của việc định hình nhiễu không gian. Định hình nhiễu không gian (viết tắt là sns) là một tập hợp chung các thuật toán tích hợp dùng để quyết định khu vực nào của hình ảnh nên sử dụng ít bit hơn tương đối và nơi khác để chuyển các bit này hiệu quả hơn. Phạm vi có thể có giá trị từ
0
(thuật toán 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. Phân đoạn phải nằm trong dải ô từ
1
đến4
. Giá trị mặc định là4
. Tuỳ chọn này không có hiệu lực đối với các phương thức từ 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ố bit mà một số macroblock sử dụng.
Phạm vi là
0
(không suy giảm, mặc định) đến100
(xuống cấp hoàn toàn). Các giá trị hữu ích thường dao động trong khoảng30
-70
đối với hình ảnh có kích thước vừa phải. Ngang bằng còn được gọi là phân vùng điều khiển, được gọi là phân vùng điều khiển có giới hạn là 512k và được dùng để lưu trữ các thông tin sau: liệu khối macro bị bỏ qua, nó thuộc về phân đoạn nào, cho dù nó được mã hoá là intra 4x4 hay trong chế độ 16x16 và cuối cùng là các chế độ dự đoán để sử dụng cho mỗi chế độ các khối phụ. Đối với một hình ảnh rất lớn, 512k chỉ để lại một vài bit cho mỗi khối lớn 16x16. Tối thiểu tuyệt đối là 4 bit cho mỗi khối macro. Thông tin về việc bỏ qua, phân đoạn và chế độ có thể sử dụng gần như tất cả 4 bit này (mặc dù trường hợp này khó xảy ra), gây ra vấn đề cho các hình ảnh rất lớn. Chiến lược phát hành đĩa đơn Yếu tốpartition_limit
kiểm soát tần suất của chế độ chi phí bit cao nhất (intra 4x4) sẽ được sử dụng. Điều này hữu ích trong trường hợp bạn đạt đến giới hạn 512k và thông báo sau đây xuất hiện: Mã lỗi: 6 (PARTITION0_OVERFLOW: Partition #0 is too big to fit 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 nhiều bit tiêu đề hơn trên mỗi khối lớn. 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 và khả năng của bộ mã hoá đạ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êm thông tin (đặc biệt là thời gian mã hoá).
-print_psnr
- Tính toán và báo cáo PSNR trung bình (Tỷ lệ cao nhất-tín hiệu- nhiễu).
-print_ssim
- Tính toán và báo cáo SSIM trung bình (chỉ số tương đồng về cấu trúc, hãy xem https://en.wikipedia.org/wiki/SSIM để biết thêm thông tin).
-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 pixel lân cận được đặt cùng vị trí).
-progress
- Báo cáo tiến trình mã hoá theo tỷ lệ 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
- Đưa ra bản đồ ASCII bổ sung về thông tin mã hoá. Các giá trị bản đồ có thể có dao động từ
1
đến6
. Thao tác này chỉ nhằm mục đích hỗ trợ gỡ lỗi.
Tùy chọn bổ sung
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ự bao gồm các mẫu Y'CbCr thô
theo khuyến nghị ITU-R BT.601, ở định dạng tuyến tính 4:2:0. Chiến lược phát hành đĩa đơn
mặt phẳng luma có kích thước
width
xheight
. -pre int
- Chỉ định một số bước xử lý trước. Việc sử dụng giá trị
2
sẽ kích hoạt tính năng làm mờ ngẫu nhiên giả phụ thuộc vào chất lượng trong quá trình chuyển đổi RGBA->YUVA (chỉ áp dụng cho phương thức nén có tổn hao). -alpha_filter string
- Chỉ định phương thức lọc dự đoán cho mặt phẳng alpha. Một trong các giá trị
none
,fast
hoặcbest
, theo thứ tự tăng dần về độ phức tạp và tốc độ chậm. Giá trị mặc định làfast
. Trong nội bộ, việc 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).best
sẽ thử lần lượt từng chế độ và chọn chế độ đưa ra kích thước. Chế độfast
sẽ chỉ cố gắng tạo một dự đoán trước mà không cần 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ị không nén,1
sử dụng định dạng WebP không tổn hao để nén. Giá trị mặc định là1
. -exact
- Giữ lại giá trị RGB trong vùng trong suốt. Tuỳ chọn mặc định là tắt, để trợ giúp độ nén.
-blend_alpha int
- Tùy chọn này kết hợp kênh alpha (nếu có) với nguồn sử dụng
màu nền được chỉ định bằng hệ thập lục phân là 0xrrggbb. Sau đó, kênh alpha sẽ được đặt lại thành giá trị mờ
255
. -noalpha
- Việc sử dụng tuỳ chọn này sẽ loại bỏ kênh alpha.
-hint string
- Chỉ định gợi ý về loại hình ảnh đầu vào. Các giá trị có thể sử dụng 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 hiện tại. Các giá trị hợp lệ:
all
,none
,exif
,icc
,xmp
. 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 tổ hợp.
-noasm
Tắt tất cả tính năng tối ưu hoá cấu thành.
Lỗi
Vui lòng báo cáo mọi lỗi cho công cụ theo dõi lỗi: https://issues.webmproject.org
Chào mừng bạn đến với bản vá! 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
Tác giả
cwebp
là một phần của libwebp
và do nhóm WebP viết.
Bạn có thể xem cây nguồn mới nhất 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 các dự án khác sử dụng).