Trang chủ » làm thế nào để » Định dạng PNG có bị mất vì nó có tham số nén không?

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

    Định dạng PNG được coi là định dạng lossless, 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 phải là lossless? Bài đăng Hỏi & Đáp của SuperUser hôm nay giúp xóa tan sự nhầm lẫn cho người đọc tò mò.

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

    Câu hỏi

    Người đọc của SuperUser 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 được chọn hay không:

    Theo tôi hiểu, các tệp PNG sử dụng nén không mất dữ liệu. Tuy nhiên, khi tôi đang sử dụng trình chỉnh sửa hình ảnh như Gimp và cố gắng lưu hình ảnh dưới dạng tệp PNG, nó sẽ yêu cầu mức nén trong khoảng từ 0 đến 9.

    Nếu nó có một tham số nén ảnh hưởng đến độ chính xác hình ảnh của hình ảnh nén thì PNG mất như thế nào? Có ai đó giải thích điều này cho tôi biết không? Tôi có nhận được hành vi lossless chỉ khi tôi đặt mức nén thành 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?

    Câu trả lời

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

    PNG được nén, nhưng lossless

    Mức nén là sự đánh đổi giữa kích thước tệp và tốc độ mã hóa / giải mã. Để khái quát quá mức, ngay cả các định dạng không phải hình ảnh như FLAC cũng có các khái niệm tương tự.

    Mức nén khác nhau, đầu ra được giải mã giống nhau

    Mặc dù kích thước tệp khác nhau do các mức nén khác nhau, đầu ra được giải mã thực tế sẽ giống hệt nhau. Bạn có thể so sánh các giá trị băm MD5 của các đầu ra được giải mã với ffmpeg bằng muxer MD5. Điều này được thể hiện tốt nhất với một số ví dụ.

    Tạo tập tin PNG

    • Theo mặc định, ffmpeg sẽ sử dụng -compression_level 100 cho đầu ra PNG.
    • Một thử nghiệm nhanh, cẩu thả cho thấy 100 (mức nén cao nhất) mất khoảng ba lần để mã hóa và dài hơn năm lần để giải mã hơn 0 (mức nén thấp nhất) trong ví dụ này.

    So sánh kích thước tệp

    Giải mã các tệp PNG và hiển thị băm MD5

    Vì cả hai giá trị băm đều giống nhau, bạn có thể yên tâm rằng các đầu ra được giải mã (các tệp thô không nén) hoàn toàn giống nhau.

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

    PNG là lossless. GIMP rất có thể không sử dụng lựa chọn từ ngữ tốt nhất trong trường hợp này.

    Hãy nghĩ về nó như là chất lượng nén hoặc là mức độ nén. Với độ nén thấp hơn, bạn có được một tệp lớn hơn, nhưng sẽ mất ít thời gian hơn để tạo ra, trong khi với độ nén cao hơn, bạn sẽ có được một tệp nhỏ hơn mất nhiều thời gian hơn để sản xuất.

    Thông thường, bạn nhận được lợi nhuận giảm dần, tức là không giảm nhiều kích thước so với mức tăng thời gian cần thiết khi đi lên mức nén cao nhất, nhưng tùy thuộc vào bạn.


    Có một 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 am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.