Η PDF Association ανακοίνωσε την ενσωμάτωση του αλγορίθμου συμπίεσης Brotli ως νέου compression filter στο πρότυπο PDF 2.0.
Η βασική υπόσχεση: κατά μέσο όρο 20% μικρότερα PDF αρχεία χωρίς απώλεια ποιότητας. Παράλληλα, έχουν ήδη διατεθεί ενδεικτικά (sample) PDFs για developers.
Τι είναι το Brotli και τι αλλάζει στο PDF 2.0
Το Brotli είναι ένας δωρεάν αλγόριθμος συμπίεσης από τη Google, που αρχικά σχεδιάστηκε για στατικά web assets και έχει τυποποιηθεί στο RFC 7932.
Σε αντίθεση με τη μέθοδο Deflate (η οποία χρησιμοποιείται και σε ZIP/GZIP και μέχρι σήμερα είναι η “κλασική” επιλογή στα PDFs), το Brotli μπορεί να πετύχει μεγαλύτερη πυκνότητα δεδομένων όταν χρησιμοποιείται η μέγιστη συμπίεση.
Στο PDF 2.0, το νέο φίλτρο ονομάζεται:
- BrotliDecode
και έρχεται να συμπληρώσει τα ήδη γνωστά PDF filters, όπως:
- DCTDecode (JPEG)
- JPXDecode (JPEG 2000)
- FlateDecode (Deflate)
Δοκιμές συμπίεσης: τα αποτελέσματα διαφέρουν ανάλογα με το περιεχόμενο
Σε συζήτηση στο Hacker News, developers μοιράστηκαν αποτελέσματα από δοκιμές σε διαφορετικές συλλογές PDFs. Τα ευρήματα δεν είναι ίδια σε όλες τις περιπτώσεις:
- Σε 55 test αρχεία, το Brotli έδωσε συνολικό μέγεθος 37,06 MB, ενώ το Deflate 38,80 MB → κέρδος περίπου 4,5%
- Ένα αρχείο 15 MB μειώθηκε σε 4,5 MB
- Ένα τιμολόγιο 19 KB μειώθηκε σε 16,1 KB
Σημαντική διευκρίνιση: το πραγματικό κέρδος εξαρτάται έντονα από το περιεχόμενο, επειδή πολλά PDFs περιέχουν ήδη streams συμπιεσμένα με Deflate, περιορίζοντας το “περιθώριο” βελτίωσης.
Brotli vs Zstandard (Zstd): συμπίεση και ταχύτητα
Για σύγκριση, χρήστες δοκίμασαν και το Zstandard (Zstd), έναν αλγόριθμο συμπίεσης που αναπτύχθηκε από τη Facebook/Meta. Σε μέγιστες ρυθμίσεις (Brotli Level 11, Zstd Level 22) το Brotli έδειξε σε αρκετές περιπτώσεις ελάχιστα καλύτερο αποτέλεσμα.
Ωστόσο, το Zstd φαίνεται να είναι περίπου 2× ταχύτερο στην αποσυμπίεση, κάτι που έχει ιδιαίτερη σημασία για PDFs που ανοίγονται συχνά (π.χ. καθημερινή χρήση σε ομάδες ή portals).
Συμβατότητα (backward compatibility): ο κρίσιμος παράγοντας
Ένα κομμάτι της κοινότητας εκφράζει έντονες ανησυχίες για τη συμβατότητα προς τα πίσω.
Το PDF θεωρείται σε μεγάλο βαθμό αρχειακό format, που οφείλει να παραμένει αναγνώσιμο για δεκαετίες. Αν ένας παλαιότερος PDF reader δεν αναγνωρίζει το Brotli filter, δεν θα μπορεί να εμφανίσει το συμπιεσμένο περιεχόμενο.
Παρότι η PDF Association τονίζει ότι νέες δυνατότητες πρέπει να λειτουργούν «ομαλά με υπάρχοντες readers», η εισαγωγή ενός άγνωστου filter δημιουργεί πρακτική αντίφαση σε αυτή την αρχή.
Σημερινή κατάσταση υποστήριξης (ενδεικτικά):
- Adobe Acrobat Reader: προς το παρόν δεν υποστηρίζει Brotli-compressed PDFs
- Browser PDF viewers: μικτή εικόνα
- το Chrome μπορεί να έχει πλεονέκτημα λόγω ενσωματωμένης βιβλιοθήκης Brotli
- Firefox και Edge εξαρτώνται από ενημερώσεις
- Open-source έργα: MuPDF και Ghostscript δουλεύουν σε πειραματικές υλοποιήσεις (σύμφωνα με την PDF Association)
- iText: έχει ήδη ενσωματώσει το reference code του Brotli από τη Google
Γιατί αφορά εταιρείες και δημόσιους φορείς
Για οργανισμούς με μεγάλα αρχεία PDF, το όφελος μπορεί να είναι πολύ σημαντικό. Παράδειγμα:
- Σε όγκο δεδομένων 1 petabyte, κέρδος 20% σημαίνει περίπου 200 TB λιγότερος αποθηκευτικός χώρος.
Στη Γερμανία, αυτό συνδέεται άμεσα με ανάγκες GoBD-compliant αρχειοθέτησης και τιμολόγια ZUGFeRD, όπου τα ηλεκτρονικά έγγραφα πρέπει να διατηρούνται για μεγάλο χρονικό διάστημα.
Τυποποίηση και επόμενα βήματα (ISO 32000)
Το φίλτρο Brotli αναπτύχθηκε μέσω των Technical Working Groups της PDF Association. Στο Symposium on Advancing the PDF Imaging Model (Οκτώβριος 2023), ζητήθηκε feedback για βελτιώσεις, μεταξύ των οποίων και νέες μέθοδοι συμπίεσης.
Εκτός από Brotli, αξιολογήθηκαν επίσης:
- Zstandard (Zstd)
- XZ
Η τελική ενσωμάτωση στην προδιαγραφή ISO 32000 αναμένεται για 2026 ή 2027 (χωρίς συγκεκριμένη ημερομηνία μέχρι στιγμής).
Παράλληλα, συζητούνται και άλλες τεχνολογίες συμπίεσης, όπως το JPEG XL για δεδομένα εικόνας. Έτσι, ένα format άνω των 30 ετών επιχειρεί να προσαρμοστεί στις σύγχρονες απαιτήσεις, διατηρώντας ταυτόχρονα συμβατότητα με τα υπάρχοντα έγγραφα—μια ισορροπία που με το Brotli αποδεικνύεται ιδιαίτερα δύσκολη.
Πως να το αξιοποιήσετε χωρίς να “σπάσετε” τη συμβατότητα
Αν διαχειρίζεστε πολλά PDF (DMS/ECM, ERP, e-invoicing, δημόσια αρχεία), το Brotli μπορεί να είναι πραγματικό όφελος—αλλά χρειάζεται στρατηγική υιοθέτησης.
Πρώτα, έχει σημασία να καταλάβουμε που κερδίζει: το Brotli βελτιώνει κυρίως lossless συμπίεση σε streams όπως κείμενο, γραμματοσειρές, διανυσματικά αντικείμενα, δομές σελίδας και metadata.
Αν ένα PDF αποτελείται κυρίως από εικόνες ήδη συμπιεσμένες ως JPEG/JPEG2000, το κέρδος μπορεί να είναι μικρότερο, γιατί εκεί η συμπίεση γίνεται από DCTDecode/JPXDecode και όχι από Deflate/Brotli.
Το δεύτερο μεγάλο θέμα είναι η διανομή. Αν στέλνετε PDFs σε πελάτες/πολίτες/τρίτους, πρέπει να υποθέσετε ότι ένα ποσοστό θα ανοίξει το αρχείο σε περιβάλλον χωρίς υποστήριξη Brotli (ειδικά όσο το Acrobat παραμένει πίσω). Σε αυτό το σενάριο, μια ασφαλής προσέγγιση είναι:
- Brotli μόνο για εσωτερική αρχειοθέτηση (όπου ελέγχετε τους readers και μπορείτε να τους αναβαθμίσετε).
- Deflate/κλασικό PDF για εξωτερική διανομή (ένα “public” αντίγραφο).
- Σαφής σήμανση σε ροές εργασίας (workflow): ποια “έκδοση” είναι για ποιο κανάλι.
Τρίτο: μην υποτιμήσετε το performance. Η μέγιστη συμπίεση μειώνει το storage, αλλά μπορεί να αυξήσει CPU χρόνο στο export και, ανάλογα με την υλοποίηση reader, να επηρεάσει τον χρόνο ανοίγματος.
Για συστήματα με μαζική παραγωγή (π.χ. χιλιάδες τιμολόγια/ημέρα), αξίζει A/B δοκιμή με διαφορετικά επίπεδα συμπίεσης και πραγματικά δεδομένα.
Τέταρτο: προσθέστε ασφαλιστικές δικλίδες ασφαλείας. Κάθε compression format μπορεί να αξιοποιηθεί σε επιθέσεις τύπου “decompression bomb”. Ρυθμίστε όρια σε μέγεθος streams, χρόνο αποσυμπίεσης και χρήση μνήμης στους PDF parsers (ιδίως σε web viewers και backend services που κάνουν OCR/preview).
Τέλος, δημιουργήστε ένα μικρό pilot: επιλέξτε ένα υποσύνολο εγγράφων (π.χ. αναφορές PDF με πολύ κείμενο), μετρήστε κέρδος χώρου, χρόνος ανοίγματος, και ελέγξτε συμβατότητα σε Acrobat, Chrome, Firefox, κινητές συσκευές.
Έτσι θα ξέρετε πότε το Brotli είναι πραγματική αναβάθμιση και πότε απλώς προσθέτει ρίσκο.
