האם פורמט PNG חסר אובדן מכיוון שיש לו פרמטר דחיסה?

פורמט PNG אמור להיות פורמט ללא הפסד, אך כאשר אתה שומר תמונה כקובץ PNG, אתה מתבקש לבחור רמת דחיסה. האם זה אומר שפורמט PNG הוא למעשה לא חסר הפסד בכל זאת? פוסט התשובות והתשובות של SuperUser של היום עוזר לנקות את הבלבול עבור קורא סקרן.

מושב השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה משנה של Stack Exchange, קיבוץ מונחה קהילה של אתרי שאלות ותשובות.

השאלה

קורא SuperUser pkout רוצה לדעת אם איכות תמונת PNG מושפעת מרמת הדחיסה שנבחרה:

להבנתי, קבצי PNG משתמשים בדחיסה ללא הפסד. עם זאת, כשאני משתמש בעורך תמונות כמו Gimp ומנסה לשמור תמונה כקובץ PNG, הוא מבקש רמת דחיסה שנעה בין 0 ל -9.

אם יש לו פרמטר דחיסה שמשפיע על הדיוק החזותי של התמונה הדחוסה, כיצד PNG אובדן אז? מישהו יכול בבקשה להסביר לי את זה? האם אני מקבל התנהגות חסרת אובדן רק כשאני מגדיר את רמת הדחיסה ל- 9?

האם יש הבדל באיכות התמונה בהתאם לרמת הדחיסה שתבחר?

התשובה

לתורמים של SuperUser, LordNeckbeard ו- jjlin יש את התשובה עבורנו. ראשית, לורדנקברד:

PNG דחוס, אך ללא הפסד

רמת הדחיסה היא פשרה בין גודל הקובץ למהירות הקידוד / פענוח. כדי להכליל יתר על המידה, גם לפורמטים שאינם תמונות כגון FLAC יש מושגים דומים.

רמות דחיסה שונות, פלט מפוענח זהה

למרות שגדלי הקבצים שונים בגלל רמות הדחיסה השונות, הפלט המפוענח בפועל יהיה זהה. אתה יכול להשוות את חשיפות ה- MD5 של הפלטים המפוענחים עם ffmpeg באמצעות ה- MD5 muxer. זה מוצג בצורה הטובה ביותר עם כמה דוגמאות.

צור קבצי PNG

  • כברירת מחדל, ffmpeg ישתמש ב- -compression_level 100 עבור פלט PNG.
  • בדיקה מרושלת ומהירה הראתה כי 100 (רמת הדחיסה הגבוהה ביותר) לקח זמן רב יותר פי שלוש לקודד ופעמיים יותר לפענח מ 0 (רמת הדחיסה הנמוכה ביותר) בדוגמה זו.

השווה את גודל הקובץ

פענח את קבצי ה- PNG והראה MD5 Hashes

מכיוון ששתי החשיפות זהות, אתה יכול להיות סמוך ובטוח שהפלטים המפוענחים (קבצי הגלם הלא דחוסים) זהים לחלוטין.

ואחריו התשובה מאת jjlin:

PNG הוא ללא הפסד. ככל הנראה GIMP אינו משתמש בבחירה הטובה ביותר של הניסוח במקרה זה.

תחשוב על זה כעל איכות דחיסה או רמת דחיסה . עם דחיסה נמוכה יותר, אתה מקבל קובץ גדול יותר, אך לוקח פחות זמן לייצר אותו, ואילו עם דחיסה גבוהה יותר, אתה מקבל קובץ קטן יותר שלוקח יותר זמן לייצר אותו.

בדרך כלל אתה מקבל תשואות הולכות ופוחתות, כלומר לא ירידה גדולה בגודל בהשוואה לגידול בזמן שלוקח לעלות לרמות הדחיסה הגבוהות ביותר, אך זה תלוי בך.

יש לך מה להוסיף להסבר? נשמע בתגובות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים של Stack Exchange המתמצאים בטכנולוגיה? עיין כאן בשרשור הדיון המלא.