Định dạng PNG có bị mất không vì nó có tham số nén?

Mục lục:

Định dạng PNG có bị mất không vì nó có tham số nén?
Định dạng PNG có bị mất không vì nó có tham số nén?

Video: Định dạng PNG có bị mất không vì nó có tham số nén?

Video: Định dạng PNG có bị mất không vì nó có tham số nén?
Video: Tổng Hợp FULL Thế Giới Bất Ổn Nhưng Tôi Bỗng Dưng Trở Thành Thiên Tài 🤣 - YouTube 2024, Tháng tư
Anonim
Định dạng PNG được cho là định dạng không mất dữ liệu, nhưng khi bạn lưu hình ảnh dưới dạng tệp PNG, bạn được yêu cầu chọn mức nén. Điều này có nghĩa là định dạng PNG thực sự không thua lỗ sau khi tất cả? Bài đăng Hỏi & Đáp của SuperUser hôm nay giúp xóa bỏ sự nhầm lẫn cho người đọc tò mò.
Định dạng PNG được cho là định dạng không mất dữ liệu, nhưng khi bạn lưu hình ảnh dưới dạng tệp PNG, bạn được yêu cầu chọn mức nén. Điều này có nghĩa là định dạng PNG thực sự không thua lỗ sau khi tất cả? Bài đăng Hỏi & Đáp của SuperUser hôm nay giúp xóa bỏ sự nhầm lẫn cho người đọc tò mò.

Phiên Hỏi & Đáp hôm nay đến với chúng tôi theo lịch sự của SuperUser - một phân khu của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều hành.

Câu hỏi

Trình đọc siêu người dùng muốn biết liệu chất lượng của hình ảnh PNG có bị ảnh hưởng bởi mức độ nén đã chọn hay không:

As I understand it, PNG files use lossless compression. However, when I am using an image editor such as Gimp and try to save an image as a PNG file, it asks for a compression level ranging between 0 and 9.

If it has a compression parameter that affects the visual precision of the compressed image, how is PNG lossless then? Can someone please explain this to me? Do I get lossless behavior only when I set the compression level to 9?

Có sự khác biệt về chất lượng của hình ảnh tùy thuộc vào mức độ nén bạn chọn không?

Câu trả lời

Những người đóng góp của SuperUser LordNeckbeard và jjlin có câu trả lời cho chúng tôi. Đầu tiên, LordNeckbeard:

PNG is Compressed, but Lossless

The compression level is a trade-off between file size and encoding/decoding speed. To overly generalize, even non-image formats such as FLAC have similar concepts.

Different Compression Levels, Same Decoded Output

Although the file sizes are different due the the different compression levels, the actual decoded output will be identical. You can compare the MD5 hashes of the decoded outputs with ffmpeg using the MD5 muxer. This is best shown with some examples.

Create PNG Files

Image
Image
  • By default, ffmpeg will use -compression_level 100 for PNG output.
  • A quick, sloppy test showed that 100 (the highest compression level) took roughly three times longer to encode and five times longer to decode than 0 (the lowest compression level) in this example.

Compare File Size

Image
Image

Decode the PNG Files and Show MD5 Hashes

Since both hashes are the same, you can be assured that the decoded outputs (the uncompressed raw files) are exactly the same.
Since both hashes are the same, you can be assured that the decoded outputs (the uncompressed raw files) are exactly the same.

Tiếp theo là câu trả lời từ jjlin:

PNG is lossless. GIMP is most likely not using the best choice of wording in this case.

Think of it as quality of compression or level of compression. With lower compression, you get a bigger file, but it takes less time to produce, whereas with higher compression, you get a smaller file that takes longer to produce.

Typically you get diminishing returns, i.e. not as much decrease in size compared to the increase in time it takes when going up to the highest compression levels, but it is up to you.

Có cái gì để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange có hiểu biết công nghệ khác? Xem toàn bộ chuỗi thảo luận tại đây.

Đề xuất: