โฮมเพจ » ทำอย่างไร » รูปแบบ PNG นั้นไม่สูญหายเนื่องจากมีพารามิเตอร์การบีบอัดหรือไม่?

    รูปแบบ PNG นั้นไม่สูญหายเนื่องจากมีพารามิเตอร์การบีบอัดหรือไม่?

    รูปแบบ PNG ควรเป็นรูปแบบที่ไม่มีการสูญเสีย แต่เมื่อคุณบันทึกรูปภาพเป็นไฟล์ PNG ระบบจะขอให้คุณเลือกระดับการบีบอัด นี่หมายความว่ารูปแบบ PNG นั้นไม่ได้สูญเสียไปหรือเปล่า? โพสต์ SuperUser คำถาม & คำตอบช่วยล้างความสับสนสำหรับผู้อ่านอยากรู้อยากเห็น.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้อ่าน SuperUser pkout ต้องการทราบว่าคุณภาพของภาพ PNG ได้รับผลกระทบจากระดับการบีบอัดข้อมูลที่เลือกหรือไม่:

    ตามที่ฉันเข้าใจแล้วไฟล์ PNG ใช้การบีบอัดแบบไม่สูญเสียข้อมูล อย่างไรก็ตามเมื่อฉันใช้โปรแกรมแก้ไขภาพเช่น Gimp และพยายามบันทึกภาพเป็นไฟล์ PNG มันจะถามระดับการบีบอัดตั้งแต่ 0 ถึง 9.

    หากมีพารามิเตอร์การบีบอัดที่มีผลต่อความแม่นยำในการมองเห็นของภาพที่บีบอัด PNG จะสูญเสียอย่างไร? ใครช่วยอธิบายสิ่งนี้ให้ฉันได้ไหม ฉันจะได้รับพฤติกรรมแบบไม่สูญเสียเมื่อฉันตั้งระดับการบีบอัดเป็น 9 เท่านั้น?

    คุณภาพของภาพแตกต่างกันไปตามระดับการบีบอัดที่คุณเลือกหรือไม่?

    คำตอบ

    ผู้สนับสนุน SuperUser LordNeckbeard และ jjlin มีคำตอบสำหรับเรา ก่อนอื่น LordNeckbeard:

    PNG ถูกบีบอัด แต่ไม่มีการสูญเสีย

    ระดับการบีบอัดเป็นการแลกเปลี่ยนระหว่างขนาดไฟล์และความเร็วในการเข้ารหัส / ถอดรหัส ในการพูดคุยทั่วไปมากเกินไปแม้รูปแบบที่ไม่ใช่ภาพเช่น FLAC มีแนวคิดที่คล้ายกัน.

    ระดับการบีบอัดที่แตกต่างกันเอาท์พุทถอดรหัสเดียวกัน

    แม้ว่าขนาดไฟล์จะแตกต่างกันเนื่องจากระดับการบีบอัดที่แตกต่างกันเอาท์พุทถอดรหัสจริงจะเหมือนกัน คุณสามารถเปรียบเทียบ MD5 hash ของเอาต์พุตที่ถอดรหัสด้วย ffmpeg โดยใช้ MD5 muxer นี่คือตัวอย่างที่ดีที่สุดที่แสดงให้เห็น.

    สร้างไฟล์ PNG

    • โดยค่าเริ่มต้น ffmpeg จะใช้ -compression_level 100 สำหรับเอาต์พุต PNG.
    • การทดสอบที่รวดเร็วและเลอะเทอะแสดงให้เห็นว่า 100 (ระดับการบีบอัดสูงสุด) ใช้เวลาในการเข้ารหัสนานกว่าสามเท่าและอีกห้าเท่าในการถอดรหัสกว่า 0 (ระดับการบีบอัดต่ำสุด) ในตัวอย่างนี้.

    เปรียบเทียบขนาดไฟล์

    ถอดรหัสไฟล์ PNG และแสดง Hash MD5

    เนื่องจากแฮชทั้งคู่เหมือนกันคุณจึงมั่นใจได้ว่าเอาต์พุตที่ถอดรหัส (ไฟล์ดิบที่ไม่มีการบีบอัด) จะเหมือนกันทุกประการ.

    ตามด้วยคำตอบจาก jjlin:

    PNG ไม่มีความสูญเสีย คนพิการน่าจะไม่ได้ใช้ตัวเลือกที่ดีที่สุดในกรณีนี้.

    คิดว่ามันเป็น คุณภาพของการบีบอัด หรือ ระดับการบีบอัด. ด้วยการบีบอัดที่ต่ำกว่าคุณจะได้ไฟล์ที่ใหญ่กว่า แต่ใช้เวลาน้อยลงในการสร้าง แต่ในขณะที่การบีบอัดที่สูงกว่าคุณจะได้รับไฟล์ที่เล็กกว่าซึ่งใช้เวลาในการสร้างนานกว่า.

    โดยทั่วไปคุณจะได้รับผลตอบแทนลดลงเช่นไม่ลดลงมากเมื่อเทียบกับการเพิ่มขึ้นของเวลาที่ใช้เมื่อขึ้นไปถึงระดับการบีบอัดสูงสุด แต่ขึ้นอยู่กับคุณ.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.