webp

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) đến 100 (không xử lý trước, mặc định). Giá trị thông thường là khoảng 60. 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 đến 100. 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 đến 100. 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.

-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 đến 6. 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ước width x height. 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 x height. 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ằng cwebp 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-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-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-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 đến 50.
-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) đến 7 (í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) đến 100 (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 đến 4. 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ảng 3070 đố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-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 đến 6. 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 x height.
-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ặc best, 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ặc 1. Thuật toán 0 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ặc graph.
-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

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).