Khi bạn gửi ảnh trên WeChat hoặc tải hình ảnh lên một trang web, một điều sẽ xảy ra sau hậu trường: tệp sẽ nhỏ hơn.

Nhưng "trở nên nhỏ hơn" thực sự xảy ra theo hai cách hoàn toàn khác nhau. Một người gọi là "vứt đồ đạc đi", người kia gọi là "đóng gói lại". Theo thuật ngữ ngành, đó là nén mất dữ liệu và nén không mất dữ liệu — hai cách cơ bản của nén hình ảnh. Hôm nay chúng ta sẽ chia nhỏ cả hai một cách rõ ràng, bằng ngôn ngữ đơn giản, không có biệt ngữ.

Định nghĩa một dòng: nén mất dữ liệu sẽ loại bỏ các chi tiết mà mắt khó có thể nhận thấy, thu nhỏ tệp xuống 80-90% nhưng quá trình này không thể đảo ngược và không thể khôi phục bản gốc; quá trình nén không mất dữ liệu không giảm một bit nào và giải nén từng byte giống hệt với bản gốc nhưng thường chỉ thu nhỏ tệp từ 20%–50%.

Nén hình ảnh thực sự làm gì

Nếu tách một bức ảnh ra thì nó chỉ là một đống chấm màu. Một bức ảnh trên điện thoại dễ dàng có hàng chục triệu điểm, mỗi điểm lưu trữ một giá trị màu. Tệp này lớn vì nó lưu trữ trung thực từng màu trong số hàng chục triệu màu đó.

Quá trình nén muốn thực hiện một điều: thể hiện hình ảnh với ít byte hơn. Làm thế nào để bạn làm cho nó nhỏ hơn nhưng vẫn trông giống nhau? Hai tuyến đường.

Mất mát: Vứt bỏ những gì bạn không thể nhìn thấy

Mất mát nghe có vẻ đáng sợ - "loại bỏ dữ liệu". Tuy nhiên, khả năng nén tổn hao tốt sẽ không xóa các pixel một cách ngẫu nhiên; nó sử dụng "mô hình thị giác con người" để tính toán thông tin nào bạn có thể sẽ không nhận thấy bị thiếu, loại bỏ thông tin đó và đóng gói phần còn lại thật chặt.

Hãy nghĩ về nó giống như viết một bản tóm tắt của một cuốn tiểu thuyết: một bản tóm tắt hay sẽ giữ nguyên cốt truyện và chỉ bỏ đi những tính từ mà không ai nhớ.

Hiệu ứng rất mạnh mẽ. Ảnh 5 MB được nén xuống 500 KB là chuyện bình thường — nhỏ hơn 80-90% và trông giống nhau trên màn hình.

Cái giá duy nhất: bạn không thể quay lại. Các byte bị loại bỏ thực sự đã biến mất và thời điểm bạn lưu, bạn chấp nhận phiên bản này - đường một chiều.

Không mất dữ liệu: Không thay đổi chút nào, chỉ được mã hóa lại

Lossless là lịch sự hơn. Tệp trở nên nhỏ hơn nhưng không mất một bit nào, giải nén trở lại từng byte giống hệt với bản gốc.

Nó thực hiện chính xác những gì ZIP thực hiện: tìm sự lặp lại và các mẫu trong dữ liệu rồi ghi lại chúng theo cách tiết kiệm không gian hơn.

Ví dụ: nếu một hàng pixel có 200 pixel màu xanh lam giống hệt nhau liên tiếp thì mã hóa không mất dữ liệu sẽ không lưu trữ "màu xanh" 200 lần — nó chỉ ghi "blue ×200" và tiếp tục. Đó là lý do tại sao nó nén ảnh chụp màn hình và giao diện người dùng — hình ảnh có nhiều màu đơn sắc lặp lại — một cách đẹp mắt.

Cái giá phải trả cũng ngang bằng: độ chính xác hoàn toàn nhưng mức tiết kiệm có hạn. Trên hình ảnh, lossless thường chỉ thu nhỏ tệp khoảng 20%–50%, đôi khi ít hơn. Một bức ảnh ồn ào, hỗn loạn hầu như không có mẫu nào để khai thác nên lossless hầu như không giúp ích được gì.

Các cấp lossless của PNG và WebP cũng như FLAC trong âm thanh, tất cả đều đi theo lộ trình này. Không có gì bị mất và nó nhỏ hơn - miễn là bạn có thể chịu đựng được thì nó vẫn khá lớn.

JPEG dám xóa màu của bạn như thế nào? Lỗ hổng trong tầm nhìn của con người

Trả lời trước: JPEG là định dạng nén mất dữ liệu. Có lẽ bạn đang thắc mắc: làm sao nó dám chạm vào dữ liệu màu của tôi?

Bởi vì nó khai thác một lỗ hổng trong tầm nhìn của con người. Mắt có hai loại tế bào cảm quang: tế bào hình que xử lý độ sáng, tế bào hình nón xử lý màu sắc. Số lượng tế bào hình que nhiều gấp 20 lần số tế bào hình nón và độ phân giải của não về độ sáng cũng cao hơn nhiều so với về màu sắc. Nói một cách dễ hiểu: bạn cực kỳ nhạy cảm với ánh sáng và bóng tối, nhưng khá nhạy cảm với màu sắc.

JPEG biết điều này. Khi nén, nó sẽ chia hình ảnh thành các kênh độ sáng và màu sắc, cắt xén màu sắc một cách mạnh mẽ và duy trì độ sáng. Đây được gọi là lấy mẫu phụ sắc độ - xem phần giải thích Wikipedia - đó là cách nó có thể loại bỏ hơn một nửa màu trong khi mắt bạn không nhận thấy sự khác biệt.

Sau đó, nó tích hợp biến đổi cosine rời rạc (DCT), chia hình ảnh thành các tần số và cắt các kết cấu mịn và nhiễu tần số cao thậm chí còn khó hơn — những thứ mà mắt bạn không thể nhìn rõ, đặc biệt là ở các khu vực đầy màu sắc. Toàn bộ chiến lược là loại bỏ "những gì bạn sẽ không bỏ lỡ" và có rất nhiều điều như vậy.

Điểm ngọt ngào 85% đó

Đối với phần lớn ảnh, việc lưu JPEG ở chất lượng 80-85 không thể phân biệt được với ảnh gốc. Không "đủ gần" - đặt chúng cạnh nhau ở khoảng cách bình thường trên màn hình bình thường và hầu hết mọi người không thể phân biệt được cái nào với cái nào.

Tôi không phóng đại. Bản thân tôi đã trải qua một số thử nghiệm mù và kết luận đều nhất quán: ở tuổi 85, mọi người đơn giản là không thể nhìn thấy sự khác biệt đã bị loại bỏ. Để thực sự phát hiện ra nó, bạn phải phóng to lên 400% và nheo mắt ở vùng 20 pixel và thậm chí sau đó bạn chỉ có thể đoán đúng.

Nhưng sự khác biệt về kích thước giữa chất lượng 100 và 85 là rất lớn, thường nhỏ hơn 60%–75%. Đây không phải là làm tròn — đó là sự khác biệt giữa tải trang tức thì và thoát trang khó chịu, đồng thời là chiến thắng khó khăn nhất trong việc tối ưu hóa hình ảnh.

Giảm xuống dưới 70 và bạn sẽ bắt đầu thấy nó: các cạnh hình khối, tông màu da đục, văn bản mờ. Nhưng phạm vi rộng rãi 80-90 đó là giá trị tốt nhất — tiết kiệm lớn với chi phí hữu hình bằng 0.

Khi nào nên mất mát mà không cần lo lắng

Phần lớn hình ảnh trên web sẽ bị mất. Ảnh trên web, ảnh tải lên mạng xã hội và hình thu nhỏ đều phải đối mặt với một thực tế giống nhau: không ai đếm số pixel trên hình ảnh tiêu đề của bạn khi cuộn. JPEG/WebP ở chất lượng 80-85 trông đẹp và tải nhanh.

Dù sao thì Instagram và Facebook vẫn nén lại mọi thứ bạn tải lên, vì vậy việc tải lên TIFF gốc chẳng mang lại lợi ích gì cho bạn. Hình thu nhỏ có kích thước nhỏ và có hàng chục hình trên mỗi trang, vì vậy việc nén nhiều chỉ là điều hợp lý. Gửi ảnh cho dì của bạn — cô ấy sẽ xem ảnh đó trên điện thoại của mình và không cần ảnh gốc 24 megapixel.

Trong những trường hợp này, kích thước được lưu là thực trong khi chất lượng bị giảm chủ yếu là lý thuyết. Nhỏ hơn 90% mà không nhận thấy tổn thất nào — không phải là sự thỏa hiệp, chỉ là cảm nhận thông thường.

Khi bạn phải đi lossless

Mất mát là mặc định, nhưng trong những trường hợp này, mất dù chỉ một chút cũng là sai:

  • Hình ảnh y tế. Bác sĩ đọc kết quả quét khối u không nên để bạn quyết định "chi tiết nào có thể không được chú ý." Việc nén hình ảnh chẩn đoán bị mất dữ liệu được quản lý chặt chẽ bởi các cơ quan như FDA và ACR.
  • Bản gốc lưu trữ. Bản sao chính của ảnh, tác phẩm nghệ thuật và kho lưu trữ phải không bị mất. Bạn không thể thấy sự khác biệt ngày hôm nay, nhưng bạn không biết ngày mai sẽ cần những công cụ nào. Lossy là đường một chiều.
  • Tác phẩm được chỉnh sửa nhiều lần. Mỗi khi bạn mở JPEG, chỉnh sửa và lưu, nó sẽ nén lại và thêm một lớp hiện vật khác. Điều này được gọi là mất mát thế hệ, đó là lý do tại sao các chuyên gia chụp RAW và chỉnh sửa ở định dạng TIFF/PSD. Nén tệp có thể phân phối, không bao giờ nén tệp đang hoạt động.
  • Hình ảnh có văn bản và các cạnh cứng. Ảnh chụp màn hình, logo và mô hình giao diện người dùng là những đường nét cứng và khối màu đồng nhất — lossy không thể xử lý chúng. JPEG được sinh ra để dành cho ảnh; PNG mạnh hơn nhiều đối với những thứ này. Không nén bảng tính có định dạng ảnh.

Sơ lược: Lossy và Lossless

Kích thướcMất dữ liệuKhông mất dữ liệu
Thu nhập- Không, chỉ một chiều.Có (byte-for-byte)
Tỷ số nénCao, thường nhỏ hơn 60%–90%Giới hạn, ~20%–50%
Chất lượng Sự mất mát về cơ bản không nhìn thấy (chất lượng 80-85)100% độ trung thực
Các định dạng phổ biếnJPEG, lossy WebP, AVIF, MP3PNG, lossless WebP, TIFF, FLAC, ZIP
Phù hợp vớiẢnh web, mạng xã hội, hình thu nhỏY tế, thạc sĩ, chỉnh sửa lại, ảnh chụp màn hình/logo

Câu hỏi thường gặp

Sự khác biệt giữa nén lossy và lossless là gì?

Tính năng nén tổn hao sẽ loại bỏ các chi tiết mà mắt người khó có thể nhận thấy để giảm đáng kể kích thước và quá trình này không thể đảo ngược được; nén không mất dữ liệu không làm mất dữ liệu và giải nén từng byte giống hệt với bản gốc, nhưng tỷ lệ nén của nó bị giới hạn, thường chỉ nhỏ hơn 20%–50%.

JPEG bị mất hay không bị mất?

JPEG là một định dạng nén bị mất. Nó loại bỏ màu sắc và các chi tiết tần số cao mà mắt người không nhạy cảm thông qua lấy mẫu con sắc độ và biến đổi cosine rời rạc (DCT), làm thu nhỏ hình ảnh một cách đáng kể. JPEG cũng có chế độ không mất dữ liệu, nhưng web và phần lớn các trường hợp sử dụng mức mất dữ liệu.

Tôi nên đặt chất lượng nén ảnh là 80 hay 100?

Đối với phần lớn ảnh, việc lưu ở chất lượng 80-85 trông không thể phân biệt được với ảnh gốc ở khoảng cách xem bình thường và trên màn hình, tuy nhiên, tệp nhỏ hơn 60%–75% so với ở chất lượng 100. Các hiện tượng giả có thể nhìn thấy như khối và tông màu da đục chỉ xuất hiện dưới 70, đó là lý do tại sao 80-85 là điểm hấp dẫn có giá trị tốt nhất.

Khi nào bạn phải sử dụng nén không mất dữ liệu?

Hình ảnh y tế, bản gốc lưu trữ, tệp chỉnh sửa được mở và sửa đổi nhiều lần cũng như ảnh chụp màn hình/Biểu trưng/Giao diện người dùng có văn bản và các cạnh cứng đều yêu cầu không bị mất dữ liệu. Mất mát là đường một chiều - dữ liệu bị loại bỏ không thể phục hồi được và việc lưu nhiều lần sẽ gây ra mất mát thế hệ.

Một Lời Cuối Cùng

Lossy là mặc định trên web: 80-85 tiết kiệm rất nhiều cho ảnh với mức độ mất mát gần như bằng không. Lossless chuyển đến các bản gốc lưu trữ, hình ảnh y tế và quy trình chỉnh sửa được lưu lại nhiều lần. Cách chơi an toàn nhất là một câu: giữ một chủ không mất mát, và xuất mất mát để giao hàng.

Bạn đã sẵn sàng áp dụng điều này vào thực tế chưa? Sử dụng máy nén ảnh miễn phí của chúng tôi để thu nhỏ ảnh bị mất hoặc không mất dữ liệu hoặc chuyển sang resize, crop và chuyển đổi JPG sang WebP để áp dụng những gì bạn vừa học.