webp

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

-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 đế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ă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ước width x height. 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 x height. 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ằ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.

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-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) đến 100 (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 đến 50.
-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) đến 7 (í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) đế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. Phân đoạn phải nằm trong dải ô từ 1 đến 4. 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) đến 100 (xuống cấp hoàn toàn). Các giá trị hữu ích thường dao động trong khoảng 30-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-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 đến 6. 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 x height.
-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ặc best, 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ặc 1. Thuật toán 0 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ặ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 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

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