← Về trang blog

Kéo thanh trượt chất lượng đến đâu? Công cụ nén tốt không nên để bạn phải trả lời câu hỏi này

Mở một công cụ nén hình ảnh ra, ngay giữa màn hình là một thanh trượt: Quality: 80 . Bạn nhìn vào nó suy nghĩ ba giây — 75 hay 85? Kéo xuống 60 có bị nhòe không? Cuối cùng bạn không di chuyển nó mà trực tiếp bấm "Nén". Nếu hầu hết mọi người cuối cùng đều dừng ở giá trị mặc định, thì thanh trượt này thực sự có giúp ích gì cho bạn hay đang đẩy trách nhiệm ra ngoài cho người dùng? Số trên thanh trượt thực chất không có ý nghĩa thống nhất "Chất lượng 80" nghe có vẻ giống như "Giữ lại 80% chất lượng hình ảnh", nhưng thực ra không phải vậy. Nó không phải là tỷ lệ phần trăm. Hệ số chất lượng JPEG chỉ là một hệ số dùng để điều chỉnh bảng độ phân giải (quantization table), sự khác biệt về chất lượng giữa chất lượng 80 và 40 chắc chắn không phải là "một nửa". Số giống nhau của các trình mã hóa khác nhau không thể so sánh được. Cùng ghi là 80, libjpeg, MozJPEG, Photoshop, các trình mã hóa trên điện thoại di động đều tạo ra chất lượng và kích thước tệp khác nhau. Chất lượng 8 của Photoshop và số 80 của một công cụ trực tuyến lại là hai thang đo khác nhau. Đặc biệt là giữa các định dạng khác nhau thì càng không thể so sánh được. Chất lượng 80 của WebP, AVIF, HEIC đều dựa trên các nguyên lý mã hóa hoàn toàn khác nhau. AVIF còn có tốc độ (speed), WebP còn có phương thức (method), các tham số này cũng ảnh hưởng đến kết quả nhưng thường bị ẩn trong "Tùy chọn nâng cao" hoặc đơn giản là không cung cấp cho bạn. Vì vậy khi một công cụ đặt một thanh trượt 0–100 trước mặt bạn, nó thực chất đang hỏi: "Bạn hãy chọn một hệ số độ phân giải phù hợp cho trình mã hóa, định dạng và bức ảnh này cho tôi". Câu hỏi này, đại đa số người dùng không thể trả lời và cũng không nên do họ trả lời. Dù bạn hiểu, một thanh trượt cũng không thể điều chỉnh tốt cho một lô hình ảnh. Giả sử bạn là người dùng chuyên nghiệp, hiểu rõ ý nghĩa của từng tham số. Vấn đề vẫn tồn tại: **Tham số tối ưu cho mỗi bức ảnh là khác nhau.** Một bức trời xanh, một bức tường trắng, có nhiều sự chuyển màu mượt mà, chất lượng thấp một chút sẽ xuất hiện vệt chói và giả mịn (artifacts); Một bức rừng, một bãi cỏ, chi tiết dày đặc, cùng một tham số thì hầu như không thấy mất mát; Một bức ảnh chụp màn hình, viền chữ sắc nét, nếu dùng JPEG nén sẽ dễ xuất hiện viền nhợt nhạt — nó vốn更适合 PNG. Kéo vào 300 bức ảnh, thanh trượt chỉ có một. Bạn hoặc là đặt theo bức ảnh khó tính nhất, 299 bức ảnh còn lại lãng phí không gian; Hoặc là đặt theo mức trung bình,总有几张 bị làm hỏng. Một thanh trượt toàn cục, bản chất lại xung đột với xử lý hàng loạt. Điều thực sự thanh trượt làm: Chuyển trách nhiệm cho bạn. Đây là điểm ít được nói tới nhất. Khi kết quả nén không như ý — bị nhòe hoặc không giảm được kích thước — phản ứng đầu tiên của người dùng sẽ là "Tôi đặt tham số chưa đúng" thay vì "Công cụ này không tốt". Thanh trượt khiến công cụ không bao giờ sai trong mọi tình huống: Sai mãi là người đang kéo thanh trượt. Từ đó người dùng bắt đầu thử nghiệm liên tục: Nén một lần, mở so sánh, điều chỉnh lại, nén tiếp. Một hành động ban đầu là "Kéo vào xong xuôi" trở thành một thí nghiệm điều chỉnh tham số không có câu trả lời chuẩn. Với những người chỉ muốn thư mục hình ảnh nhỏ lại một chút, đây là một gánh nặng hoàn toàn. Một công cụ tốt nên chịu trách nhiệm đưa ra quyết định, thay vì đóng gói quyết định thành "tự do" đưa cho bạn. Loại bỏ thanh trượt không phải là lười biếng — ngược lại, công cụ phải làm thay những công việc mà trước đây nó đẩy ra ngoài cho người dùng. Đây chính là con đường chúng tôi chọn khi làm ImgZilla: **Tham số cố định, không có thanh trượt chất lượng trên giao diện.** Nhưng "cố định" không có nghĩa là "cắt một đao": Mỗi định dạng được điều chỉnh riêng. JPEG, WebP, AVIF, HEIC, GIF đều có một bộ tham số riêng, được chọn trong vùng chất lượng không bị mất mát về mặt thị giác; PNG và SVG đi theo nén thực sự không mất mát, một pixel nào cũng không thay đổi. Xử lý theo định dạng thực. Đọc đầu tệp để xác định định dạng thực tế, các tệp có phần mở rộng sai cũng được xử lý theo định dạng thực, không dùng tham số sai. Không nén nếu không thể nén. Các tệp có tỷ lệ nén dưới 0,4% sẽ được đánh dấu là "Đã tối thiểu", giữ nguyên như cũ, cũng không trừ số lượng miễn phí. Các hình ảnh đã được tối ưu hóa nghiêm túc sẽ không bị mã hóa lại liên tục. Kết quả có thể kiểm tra, có thể hoàn tác. Cửa sổ so sánh tích hợp sẵn (⌘D) chia đôi màn hình, phóng to đến từng pixel để đối chiếu từng bức ảnh; Hình ảnh gốc mặc định vào thùng rác, không vừa lòng thì "đưa lại vị trí cũ". Bạn chỉ cần đưa ra một quyết định duy nhất: **Nhìn một cái, nếu hài lòng thì giữ lại, nếu không thì khôi phục lại.** Điều này dễ trả lời hơn nhiều so với "75 hay 85". Hiệu quả cũng có số liệu thực nghiệm: 32.188 tệp JPEG chụp trực tiếp từ máy ảnh tiết kiệm trung bình 76,8%, một lô hình ảnh JPG đã nén một lần trên các trang web nếu nén tiếp vẫn tiết kiệm được 46,8% (chi tiết trong loạt bài "Thực nghiệm ImgZilla"). Điều này chứng tỏ tham số cố định không có nghĩa là bảo thủ; Đa số hình ảnh ban đầu có tham số cao hơn nhiều so với thực tế cần thiết. Khi nào bạn thực sự cần thanh trượt Nói "không nên đưa thanh trượt" không có nghĩa là thanh trượt không có giá trị. Một số người thực sự cần nó: Để lưu nguyên tệp cho hậu kỳ. Chất lượng hiệu quả của ImgZilla đối với JPEG khoảng chất lượng 70 và sử dụng mẫu màu 4:2:0, sẽ loại bỏ các siêu dữ liệu như EXIF. Điều này đủ cho việc duyệt, chia sẻ và sử dụng trực tuyến, nhưng nếu hình ảnh này sau này cần chỉnh màu mạnh, xuất lại, bạn nên giữ nguyên tệp, hoặc sử dụng công cụ có thể chỉ định tham số chất lượng cao thủ công (chi tiết trong "Thực nghiệm ImgZilla (Ba): Góc nhìn của nhiếp ảnh gia"). Có chỉ số khối lượng cụ thể. Ví dụ: "Mỗi tệp phải nhỏ hơn 200 KB", cần suy ngược tham số theo mục tiêu. Cần chuyển đổi định dạng, thay đổi kích thước. ImgZilla không chuyển đổi định dạng, không thay đổi độ phân giải, các nhu cầu này hãy sử dụng Squoosh, Zipic hoặc các công cụ linh hoạt hơn. Vì vậy cách nói chính xác hơn là: **Đối với đại đa số "chỉ muốn hình ảnh nhỏ lại, không muốn bị xấu đi", thanh trượt là thừa.** Những người thực sự cần nó, trong lòng họ rất rõ mình cần gì. Một bảng tóm tắt Công cụ có thanh trượt chất lượng | ImgZilla (tham số cố định) | |---|---| | Quyết định cần đưa ra bởi người dùng | Chọn một tham số cho mỗi định dạng, mỗi lô hình ảnh | Nhìn kết quả, nếu hài lòng thì giữ lại | | Xử lý hàng loạt | Một tham số áp dụng cho tất cả hình ảnh | Mỗi định dạng được điều chỉnh riêng, tự động bỏ qua những tệp không thể nén thêm | | Nếu làm hỏng thì sao | Điều chỉnh tham số lại và nén tiếp | Đưa từ thùng rác trở lại vị trí cũ | | Phù hợp với ai | Người dùng chuyên nghiệp có nhu cầu tham số cụ thể | Những người muốn nén hình ảnh lại mà không muốn nghiên cứu về mã hóa | Công cụ tốt không nên đưa bài trắc nghiệm cho bạn. Nó nên đưa ra đáp án đúng thay bạn, sau đó cho bạn một cơ hội quay lại bất cứ lúc nào. ImgZilla hiện tại chỉ hỗ trợ macOS (từ 12.3 trở lên), có thể tải xuống từ Mac App Store. Phiên bản miễn phí có thể nén 10 tệp mỗi ngày, chỉ tính vào hạn mức khi nén thành công — kéo một thư mục vào, không cần điều chỉnh bất kỳ tham số nào, xem kết quả rồi mới quyết định.

Chia sẻ

Mở một công cụ nén hình ảnh ra, ngay giữa màn hình là một thanh trượt: Quality: 80. Bạn nhìn vào nó suy nghĩ ba giây — 75 hay 85? Kéo xuống 60 có bị nhòe không?
Cuối cùng bạn không di chuyển nó mà trực tiếp bấm "Nén".
Nếu hầu hết mọi người cuối cùng đều dừng ở giá trị mặc định, thì thanh trượt này thực sự có giúp ích gì cho bạn hay đang đẩy trách nhiệm ra ngoài cho người dùng?


Số trên thanh trượt thực chất không có ý nghĩa thống nhất

"Chất lượng 80" nghe có vẻ giống như "Giữ lại 80% chất lượng hình ảnh", nhưng thực ra không phải vậy.

  • Nó không phải là tỷ lệ phần trăm. Hệ số chất lượng JPEG chỉ là một hệ số dùng để điều chỉnh bảng độ phân giải (quantization table), sự khác biệt về chất lượng giữa chất lượng 80 và 40 chắc chắn không phải là "một nửa".
  • Số giống nhau của các trình mã hóa khác nhau không thể so sánh được. Cùng ghi là 80, libjpeg, MozJPEG, Photoshop, các trình mã hóa trên điện thoại di động đều tạo ra chất lượng và kích thước tệp khác nhau. Chất lượng 8 của Photoshop và số 80 của một công cụ trực tuyến lại là hai thang đo khác nhau.
  • Đặc biệt là giữa các định dạng khác nhau thì càng không thể so sánh được. Chất lượng 80 của WebP, AVIF, HEIC đều dựa trên các nguyên lý mã hóa hoàn toàn khác nhau. AVIF còn có tốc độ (speed), WebP còn có phương thức (method), các tham số này cũng ảnh hưởng đến kết quả nhưng thường bị ẩn trong "Tùy chọn nâng cao" hoặc đơn giản là không cung cấp cho bạn.

Vì vậy khi một công cụ đặt một thanh trượt 0–100 trước mặt bạn, nó thực chất đang hỏi: "Bạn hãy chọn một hệ số độ phân giải phù hợp cho trình mã hóa, định dạng và bức ảnh này cho tôi". Câu hỏi này, đại đa số người dùng không thể trả lời và cũng không nên do họ trả lời.

Dù bạn hiểu, một thanh trượt cũng không thể điều chỉnh tốt cho một lô hình ảnh

Giả sử bạn là người dùng chuyên nghiệp, hiểu rõ ý nghĩa của từng tham số. Vấn đề vẫn tồn tại: Tham số tối ưu cho mỗi bức ảnh là khác nhau.

  • Một bức trời xanh, một bức tường trắng, có nhiều sự chuyển màu mượt mà, chất lượng thấp một chút sẽ xuất hiện vệt chói và giả mịn (artifacts);
  • Một bức rừng, một bãi cỏ, chi tiết dày đặc, cùng một tham số thì hầu như không thấy mất mát;
  • Một bức ảnh chụp màn hình, viền chữ sắc nét, nếu dùng JPEG nén sẽ dễ xuất hiện viền nhợt nhạt — nó vốn更适合 PNG.

Kéo vào 300 bức ảnh, thanh trượt chỉ có một. Bạn hoặc là đặt theo bức ảnh khó tính nhất, 299 bức ảnh còn lại lãng phí không gian;
Hoặc là đặt theo mức trung bình,总有几张 bị làm hỏng. Một thanh trượt toàn cục, bản chất lại xung đột với xử lý hàng loạt.

Điều thực sự thanh trượt làm: Chuyển trách nhiệm cho bạn

Đây là điểm ít được nói tới nhất.

Khi kết quả nén không như ý — bị nhòe hoặc không giảm được kích thước — phản ứng đầu tiên của người dùng sẽ là "Tôi đặt tham số chưa đúng" thay vì "Công cụ này không tốt". Thanh trượt khiến công cụ không bao giờ sai trong mọi tình huống: Sai mãi là người đang kéo thanh trượt.

Từ đó người dùng bắt đầu thử nghiệm liên tục: Nén một lần, mở so sánh, điều chỉnh lại, nén tiếp. Một hành động ban đầu là "Kéo vào xong xuôi" trở thành một thí nghiệm điều chỉnh tham số không có câu trả lời chuẩn. Với những người chỉ muốn thư mục hình ảnh nhỏ lại một chút, đây là một gánh nặng hoàn toàn.

Một công cụ tốt nên chịu trách nhiệm đưa ra quyết định, thay vì đóng gói quyết định thành "tự do" đưa cho bạn.

Loại bỏ thanh trượt không phải là lười biếng — công cụ phải làm thay những công việc mà trước đây nó đẩy ra ngoài cho người dùng

Đây chính là con đường chúng tôi chọn khi làm ImgZilla: Tham số cố định, không có thanh trượt chất lượng trên giao diện.

Nhưng "cố định" không có nghĩa là "cắt một đao":

  • Mỗi định dạng được điều chỉnh riêng. JPEG, WebP, AVIF, HEIC, GIF đều có một bộ tham số riêng, được chọn trong vùng chất lượng không bị mất mát về mặt thị giác;
  • Xử lý theo định dạng thực. Đọc đầu tệp để xác định định dạng thực tế, các tệp có phần mở rộng sai cũng được xử lý theo định dạng thực, không dùng tham số sai;
  • Không nén nếu không thể nén. Các tệp có tỷ lệ nén dưới 0,4% sẽ được đánh dấu là "Đã tối thiểu", giữ nguyên như cũ, cũng không trừ số lượng miễn phí. Các hình ảnh đã được tối ưu hóa nghiêm túc sẽ không bị mã hóa lại liên tục;
  • Kết quả có thể kiểm tra, có thể hoàn tác. Cửa sổ so sánh tích hợp sẵn (⌘D) chia đôi màn hình, phóng to đến từng pixel để đối chiếu từng bức ảnh; Hình ảnh gốc mặc định vào thùng rác, không vừa lòng thì "đưa lại vị trí cũ".

Bạn chỉ cần đưa ra một quyết định duy nhất: Nhìn một cái, nếu hài lòng thì giữ lại, nếu không thì khôi phục lại. Điều này dễ trả lời hơn nhiều so với "75 hay 85".

Hiệu quả cũng có số liệu thực nghiệm: 32.188 tệp JPEG chụp trực tiếp từ máy ảnh tiết kiệm trung bình 76,8%, một lô hình ảnh JPG đã nén một lần trên các trang web nếu nén tiếp vẫn tiết kiệm được 46,8% (chi tiết trong loạt bài 《ImgZilla 实测》). Điều này chứng tỏ tham số cố định không có nghĩa là bảo thủ; Đa số hình ảnh ban đầu có tham số cao hơn nhiều so với thực tế cần thiết.

Khi nào bạn thực sự cần thanh trượt

Nói "không nên đưa thanh trượt" không có nghĩa là thanh trượt không có giá trị. Một số người thực sự cần nó:

  • Để lưu nguyên tệp cho hậu kỳ. ImgZilla đối với JPEG có chất lượng hiệu quả khoảng chất lượng 70 và sử dụng mẫu màu 4:2:0, sẽ loại bỏ các siêu dữ liệu như EXIF. Điều này đủ cho việc duyệt, chia sẻ và sử dụng trực tuyến, nhưng nếu hình ảnh này sau này cần chỉnh màu mạnh, xuất lại, bạn nên giữ nguyên tệp, hoặc sử dụng công cụ có thể chỉ định tham số chất lượng cao thủ công (chi tiết trong 《ImgZilla 实测(三):摄影师视角》);
  • Có chỉ số khối lượng cụ thể. Ví dụ: "Mỗi tệp phải nhỏ hơn 200 KB", cần suy ngược tham số theo mục tiêu;
  • Cần chuyển đổi định dạng, thay đổi kích thước. ImgZilla không chuyển đổi định dạng, không thay đổi độ phân giải, các nhu cầu này hãy sử dụng Squoosh, Zipic hoặc các công cụ linh hoạt hơn.

Vì vậy cách nói chính xác hơn là: Đối với đại đa số "chỉ muốn hình ảnh nhỏ lại, không muốn bị xấu đi", thanh trượt là thừa. Những người thực sự cần nó, trong lòng họ rất rõ mình cần gì.


Một bảng tóm tắt

Công cụ có thanh trượt chất lượng ImgZilla (tham số cố định)
Quyết định cần đưa ra bởi người dùng Chọn một tham số cho mỗi định dạng, mỗi lô hình ảnh Nhìn kết quả, nếu hài lòng thì giữ lại
Xử lý hàng loạt Một tham số áp dụng cho tất cả hình ảnh Mỗi định dạng được điều chỉnh riêng, tự động bỏ qua những tệp không thể nén thêm
Nếu làm hỏng thì sao Điều chỉnh tham số lại và nén tiếp Đưa từ thùng rác trở lại vị trí cũ
Phù hợp với ai Người dùng chuyên nghiệp có nhu cầu tham số cụ thể Những người muốn nén hình ảnh lại mà không muốn nghiên cứu về mã hóa

Công cụ tốt không nên đưa bài trắc nghiệm cho bạn. Nó nên đưa ra đáp án đúng thay bạn, sau đó cho bạn một cơ hội quay lại bất cứ lúc nào.

ImgZilla hiện tại chỉ hỗ trợ macOS (từ 12.3 trở lên), có thể tải xuống từ Mac App Store. Phiên bản miễn phí có thể nén 10 tệp mỗi ngày, chỉ tính vào hạn mức khi nén thành công — kéo một thư mục vào, không cần điều chỉnh bất kỳ tham số nào, xem kết quả rồi mới quyết định.

Muốn ảnh nhẹ hơn và nhanh hơn?

Tải ImgZilla và nén ngay trên máy — ảnh của bạn không bao giờ rời khỏi Mac.