รูปแบบ 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 คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.