Không tải lên, 100% cục bộ, không cần tài khoản

Bài viết

Tại sao ảnh mất chất lượng mỗi lần lưu

Một bức ảnh trông sắc nét trên cuộn phim máy ảnh ra thành từng khối sau khi được chuyển tiếp qua vài nhóm chat và đăng lại vài lần. Không ai cố ý chỉnh sửa nó; nó chỉ đi qua vài lần mã hóa lại, và mỗi lần vứt bỏ thêm một chút chi tiết. Đây là hiện tượng mất chất lượng qua từng thế hệ (generation loss), một tính chất cũ và đã được hiểu rõ của nén mất dữ liệu, và nó giải thích tại sao những ảnh được chia sẻ lại nhiều lần có xu hướng trông ngày càng tệ hơn. Đây là những gì một lần mã hóa lại mất dữ liệu thực sự vứt bỏ, tại sao nó dồn lại, và cách ngăn một tệp xuống cấp thêm.

'Mất dữ liệu' thực sự vứt bỏ những gì

JPEG, định dạng đứng sau hầu hết ảnh chia sẻ trực tuyến, được thiết kế mất dữ liệu: chuẩn đứng sau nó, ITU-T T.81, hoạt động bằng cách biến đổi các khối pixel thành dữ liệu tần số rồi làm tròn dữ liệu đó ít nhiều tùy theo thiết lập chất lượng, một bước gọi là lượng tử hóa. Làm tròn không thể hoàn tác chính xác; chi tiết bị vứt bỏ thực sự biến mất, không ẩn đâu đó trong tệp. Một thiết lập chất lượng cao làm tròn nhẹ nhàng và sự mất mát khó thấy, một thiết lập thấp làm tròn mạnh và tệp ra khối rõ rệt, nhưng ngay cả một lần lưu JPEG duy nhất cũng luôn vứt bỏ điều gì đó.

Mỗi lần mã hóa lại là một thế hệ mới

Lần đầu tiên một bức ảnh được lưu dưới dạng JPEG, dữ liệu pixel của máy ảnh được lượng tử hóa một lần. Mở lại JPEG đó và lưu lại lần nữa, dù không hề chỉnh sửa gì, giải mã các pixel đã được xấp xỉ và lượng tử hóa chúng lần thứ hai, chồng lên lần làm tròn đầu tiên, không phải thay thế nó. Mỗi lần lưu thêm là một thế hệ khác, và mỗi thế hệ dồn thêm vào sự khối hóa và dải màu mà thế hệ trước đã tạo ra. Một lượt duy nhất ở thiết lập chất lượng hợp lý gần như vô hình; cùng thiết lập đó áp dụng năm hay sáu lần liên tiếp trên cùng tệp làm ảnh xuống cấp rõ rệt, vì các lỗi từ mọi thế hệ trước đó vẫn còn đó khi lần tiếp theo làm tròn lại.

Một chuỗi năm thế hệ JPEG: mỗi lần mã hóa lại bắt đầu từ các pixel đã làm tròn của thế hệ trước, và ảnh ra khối rõ rệt ở thế hệ thứ năm

Tại sao ảnh được chia sẻ lại nhiều lần trông tệ hơn

Một bức ảnh đi qua nhiều cuộc trò chuyện, bảng tin và tải lên lại nhận thêm gần như một thế hệ mới ở mỗi bước: một ứng dụng nhắn tin mã hóa lại nó cho cuộc trò chuyện, một nền tảng mạng xã hội mã hóa lại nó lần nữa cho quy trình phân phối riêng của mình, ai đó chụp màn hình kết quả và tải lại ảnh chụp màn hình đó, đây lại là một lượt mã hóa lại đầy đủ khác của một ảnh đã xuống cấp sẵn. Không bước nào trong số này cần phải cẩu thả hay dùng thiết lập chất lượng thấp bất thường để hiệu ứng cộng dồn lại; nó dồn lại theo bản chất, đó chính xác là lý do một ảnh đã lưu hành rộng rãi trong thời gian dài thường trông khối và dải màu rõ rệt hơn nhiều so với một bản sao mới của cùng bức ảnh đó.

Định dạng không mất dữ liệu không gặp vấn đề này

PNG và WebP không mất dữ liệu hoạt động khác đi: chúng nén bằng cách tìm mẫu trong chính dữ liệu pixel và đóng gói nó hiệu quả hơn, mà không làm tròn bỏ bất cứ gì, nên giải mã rồi mã hóa lại cùng tệp không mất dữ liệu, không chỉnh sửa gì, tái tạo chính xác các pixel, thế hệ này qua thế hệ khác. Sự đảm bảo đó là lý do ảnh chụp màn hình và đồ họa có cạnh sắc hay văn bản thường được lưu dưới dạng PNG thay vì JPEG. Nó đi kèm một cái giá: một tệp không mất dữ liệu của một bức ảnh thông thường lớn hơn nhiều so với một JPEG ở chất lượng hợp lý, vì không có việc làm tròn nào để thu nhỏ nó.

So sánh mười lần lưu lại: một JPEG cho thấy nhiễu khối rõ rệt tích tụ dần, một PNG không mất dữ liệu vẫn giống hệt pixel so với bản gốc

Giữ chất lượng của một tệp trong tầm kiểm soát

Chuỗi mất chất lượng qua từng thế hệ chỉ dồn lại khi mỗi lần lưu bắt đầu từ các pixel đã xuống cấp của lần lưu trước. Giữ một bản gốc không mất dữ liệu, tệp máy ảnh gốc hay một PNG, và xuất một JPEG mới từ bản gốc đó mỗi lần tránh chồng thêm việc làm tròn mới lên việc làm tròn cũ. Bộ nén ảnh của chúng tôi cho phép bạn chọn một thiết lập chất lượng và xem dung lượng tệp kết quả trước khi gửi bất cứ gì, và công cụ so sánh ảnh của chúng tôi đặt bản gốc và bản đã nén cạnh nhau với một thanh trượt, để bạn phát hiện một thiết lập tệ trước khi chuyển tiếp tệp và bắt đầu một thế hệ khác. Cả hai đều chạy hoàn toàn trong trình duyệt của bạn: bức ảnh không bao giờ rời khỏi thiết bị của bạn để được kiểm tra.

Công cụ trong bài viết này

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

Sao chép hay di chuyển một tệp JPEG có làm nó xuống cấp không?

Không. Sao chép một tệp, đính kèm nó vào email, hay di chuyển nó giữa các thư mục sao chép chính xác cùng byte; không gì được giải mã hay mã hóa lại, nên không gì bị lượng tử hóa lần nữa. Mất chất lượng qua từng thế hệ chỉ xảy ra khi các pixel thực sự được mở và lưu lại, không phải khi bản thân tệp được di chuyển.

Tôi có thể hoàn tác mất chất lượng qua từng thế hệ và khôi phục chi tiết đã mất không?

Không. Lượng tử hóa thực sự mất dữ liệu: dữ liệu tần số đã làm tròn mà một lần lưu trước đó vứt bỏ không được ghi lại ở đâu trong tệp, nên không bộ lọc hay thuật toán nào có thể tái tạo nó. Làm nét hay khử nhiễu một JPEG đã xuống cấp có thể làm các nhiễu ít rõ rệt hơn về mặt thị giác, nhưng không khôi phục chi tiết gốc.

Chuyển đổi một JPEG đã xuống cấp sang PNG có ngăn được vấn đề không?

Chuyển đổi sau khi đã xảy ra hư hại giữ nguyên bất cứ gì JPEG đã trông như vậy tại thời điểm đó, từng pixel một, mà không thêm bước làm tròn mới, nhưng nó không thể khôi phục chi tiết đã mất ở các lần lưu trước. Cách khắc phục là bắt đầu giữ một bản gốc không mất dữ liệu trước khi có thêm thế hệ nào xảy ra, không phải chuyển đổi một bức ảnh muộn trong chuỗi.

Nguồn