Σημειώσεις από την ομάδα για την τέχνη, τις μορφές και τις μικρές αποφάσεις πίσω από ένα καλό αποτέλεσμα.
Γιατί το WebP δεν υποστηρίζεται καθολικά στις εφαρμογές υπολογιστή
Το WebP κυκλοφόρησε από την Google το 2010, αλλά η υιοθέτηση από τα προγράμματα υπολογιστή έμεινε πολύ πίσω από την υποστήριξη των browsers. Οι browsers υιοθέτησαν το WebP νωρίς επειδή ελέγχουν τις δικές τους μηχανές απόδοσης και η Google βελτιστοποίησε ενεργά την υποστήριξη WebP του Chrome ως ανταγωνιστικό πλεονέκτημα. Οι εφαρμογές υπολογιστή αργούν περισσότερο να υιοθετήσουν μια νέα μορφή εικόνας επειδή κάθε εφαρμογή συντηρεί τη δική της στοίβα αποκωδικοποίησης και η υποστήριξη νέας μορφής απαιτεί έλεγχο απέναντι σε μια μεγάλη ουρά ακραίων περιπτώσεων. Το Adobe Photoshop, που χρησιμοποιεί η πλειονότητα των επαγγελματιών φωτογράφων και σχεδιαστών, πρόσθεσε εγγενή υποστήριξη WebP μόλις στην έκδοση 23.2 στα τέλη του 2022. Οι εφαρμογές του Microsoft Office χειρίζονται ακόμη το WebP ασυνεπώς σε διάφορες πλατφόρμες από το 2026. Το λογισμικό RIP εκτύπωσης και τα περισσότερα παλιά εργαλεία αρχειοθέτησης δεν υιοθέτησαν ποτέ το WebP. Η πρακτική συνέπεια είναι ότι ένα αρχείο που εμφανίζεται τέλεια σε έναν browser μπορεί να απορριφθεί εντελώς από το λογισμικό που χρειάζεται ο χρήστης, και η μετατροπή σε PNG είναι η αξιόπιστη λύση.
Πώς το WebP πετυχαίνει το πλεονέκτημα συμπίεσης έναντι του PNG
Το PNG χρησιμοποιεί συμπίεση DEFLATE, έναν γενικό αλγόριθμο χωρίς απώλειες από το 1996. Εφαρμόζει ένα σύνολο αναστρέψιμων φίλτρων ανά γραμμή σάρωσης πριν τη συμπίεση και κωδικοποιεί το αποτέλεσμα με μια ροή zlib. Αυτό είναι αποτελεσματικό αλλά σχεδιάστηκε πριν η έρευνα στη μηχανική μάθηση και στην κωδικοποίηση βίντεο παραγάγει καλύτερες τεχνικές. Η λειτουργία με απώλειες του WebP χρησιμοποιεί έναν μετασχηματισμό βασισμένο σε μπλοκ που προέρχεται από τη συμπίεση βίντεο VP8, εφαρμόζοντας ενδοκαρέ πρόβλεψη και έναν διακριτό μετασχηματισμό συνημιτόνου σε μονάδες μακρομπλόκ 16x16. Η λειτουργία χωρίς απώλειες του WebP χρησιμοποιεί χωρική πρόβλεψη, μετασχηματισμό χρώματος και ένα στάδιο κωδικοποίησης LZ77 που είναι δομικά πιο αποδοτικό από το DEFLATE για τυπικό περιεχόμενο εικόνας. Οι δημοσιευμένες μετρήσεις της Google δείχνουν το WebP χωρίς απώλειες περίπου 26 τοις εκατό μικρότερο από το PNG σε ένα σύνολο τυπικών εικόνων δοκιμής, και το WebP με απώλειες με άλφα περίπου τρεις φορές μικρότερο από το PNG σε συγκρίσιμη οπτική ποιότητα. Η κατεύθυνση από PNG σε WebP εκμεταλλεύεται αυτά τα κέρδη, η κατεύθυνση από WebP σε PNG τα αντιστρέφει, εξ ου και το μεγαλύτερο αποτέλεσμα.
Μετρημένα παραδείγματα αύξησης μεγέθους αρχείου
Μετρήθηκαν σε Chrome 148, σε επιτραπέζιο Linux, με τη διαδρομή εγγραφής PNG του συστήματος πάνω σε αποκωδικοποιημένα WebP. Ένα μικρό γραφικό τύπου διανύσματος στα 400x300 εικονοστοιχεία, αποθηκευμένο ως WebP σε ποιότητα 80, αποκωδικοποιείται και ξαναγράφεται ως PNG σε περίπου 15 έως 25 ms με τυπική αύξηση μεγέθους 20 έως 30 τοις εκατό. Ένα φωτογραφικό WebP στα 1024x768, περίπου μικρό μέγεθος, αποκωδικοποιείται και ξαναγράφεται σε PNG σε λιγότερο από 100 ms με τυπική αύξηση 3 έως 5 φορές. Ένα μεγάλο φωτογραφικό WebP στα 3840x2160, περίπου μεγαλύτερο μέγεθος, γράφεται σε PNG σε περίπου 1,2 δευτερόλεπτα με αύξηση 5 έως 10 φορές ανάλογα με την πολυπλοκότητα της σκηνής. Το πρακτικό ανώτατο όριο είναι περίπου μια μεγάλη φωτογραφία WebP που γίνεται PNG πολλαπλάσιου μεγέθους. Αυτοί οι αριθμοί αντανακλούν τη διαφορά στην αποδοτικότητα συμπίεσης μεταξύ των δύο μορφών και κλιμακώνονται γραμμικά με το πλήθος των εικονοστοιχείων.
Διαφάνεια άλφα στο πέρασμα μπρος πίσω
Το κανάλι άλφα 8 bit στο WebP και στο PNG χρησιμοποιεί το ίδιο εύρος τιμών, όπου το 0 είναι εντελώς διαφανές και το 255 εντελώς αδιαφανές. Όταν ο browser αποκωδικοποιεί ένα WebP με άλφα, παράγει μια ενδιάμεση μνήμη εικονοστοιχείων με τιμές RGBA όπου η συνιστώσα A αντανακλά τα αρχικά δεδομένα άλφα. Όταν εκείνη η μνήμη ξαναγράφεται ως PNG, η εγγραφή PNG γράφει τις τιμές A απευθείας στο κανάλι άλφα του PNG. Δεν συμβαίνει κανένα βήμα σύνθεσης, δεν εφαρμόζεται κανένα χρώμα φόντου και καμία παρενέργεια προπολλαπλασιασμού δεν αλλάζει τις τιμές των εικονοστοιχείων. Το αποτέλεσμα είναι μια μεταφορά του καναλιού άλφα χωρίς απώλειες, όπου η τιμή αδιαφάνειας κάθε εικονοστοιχείου στο PNG ταιριάζει με αυτή που αποθήκευσε το WebP. Για εικόνες με λεπτή εξομάλυνση στις άκρες, κάθε ενδιάμεση τιμή άλφα, για παράδειγμα ένα εικονοστοιχείο στο 40 τοις εκατό αδιαφάνεια σε μια άκρη κειμένου, επιβιώνει το πέρασμα ακέραιο. Αυτή η πιστότητα είναι που κάνει το PNG τη σωστή επιλογή έναντι του JPG όταν η εφαρμογή προορισμού χρειάζεται να δείξει την εικόνα σε πολλά φόντα.
Συμπεριφορά EXIF και μεταδεδομένων
Η διαδικασία επανεγγραφής αφαιρεί τα μεταδεδομένα EXIF, IPTC και XMP από το PNG που προκύπτει. Τα αρχεία WebP μπορούν να φέρουν δεδομένα EXIF ενσωματωμένα στο κομμάτι μεταδεδομένων τους, και αυτά τα δεδομένα χάνονται όταν ο browser αποκωδικοποιεί και ξαναγράφει την εικόνα. Τα προφίλ χρώματος ICC ακολουθούν διαφορετική διαδρομή, όπου το Chrome και ο Safari διατηρούν την ετικέτα προφίλ sRGB ICC στο PNG μετά την αποκωδικοποίηση του WebP, ενώ ο Firefox αφαιρεί όλα τα μεταδεδομένα μαζί με το προφίλ ICC. Η πρακτική συνέπεια είναι έξοδος ασφαλής για sRGB σε όλους τους browsers, αλλά οποιοδήποτε προφίλ ευρέος φάσματος ενσωματωμένο στο αρχικό WebP δεν επιβιώνει στον Firefox. Για επαγγελματικές φωτογραφικές ροές που βασίζονται σε περάσματα με ετικέτα ICC, χρησιμοποιήστε ένα εργαλείο μετατροπής που λαμβάνει υπόψη τα μεταδεδομένα. Για τυπικό χειρισμό εικόνων ιστού, η αφαίρεση μεταδεδομένων είναι συνήθως αποδεκτή και έχει το μικρό όφελος να μειώνει λίγο το μέγεθος του αρχείου εξόδου.
Επαλήθευση απορρήτου στην πράξη
Ο ισχυρισμός ότι κανένα δεδομένο αρχείου δεν φεύγει από τον browser μπορεί να ελεγχθεί χωρίς κανένα ειδικό εργαλείο. Ανοίξτε τον browser σας, μεταβείτε στη σελίδα webp-to-png και έπειτα ανοίξτε τα τα εργαλεία προγραμματιστή με το F12 ή το μενού δεξιού κλικ. Πηγαίνετε στην καρτέλα Δικτύου, καθαρίστε τα υπάρχοντα αιτήματα και τρέξτε μια μετατροπή ρίχνοντας ένα αρχείο WebP. Φιλτράρετε τη λίστα αιτημάτων με Fetch, XHR ή All. Η λίστα δείχνει μηδέν εξερχόμενα αιτήματα που να περιέχουν δεδομένα εικόνας κατά την εγγραφή. Τα μόνα αιτήματα δικτύου που υπάρχουν είναι οι πόροι της αρχικής φόρτωσης σελίδας και τα τυπικά αναλυτικά σήματα, που καταγράφουν μόνο προβολές σελίδας και δεδομένα απόδοσης Core Web Vitals, χωρίς κανένα περιεχόμενο εικόνας. Κάθε σημαντικός απομακρυσμένος μετατροπέας WebP σε PNG παράγει τουλάχιστον ένα POST μεταφόρτωσης και ένα GET λήψης ανά μετατροπή, και τα δύο καταγεγραμμένα στον διακομιστή. Η αρχιτεκτονική στη συσκευή σημαίνει ότι εκείνες οι εγγραφές καταγραφής δεν υπάρχουν, που είναι η ουσιαστική διαφορά για τους χρήστες που μετατρέπουν αρχεία με ευαίσθητο περιεχόμενο.