We cut the size of full-page PDF captures by 52 to 78 % against the previous version. The searchable text layer stayed word for word the same, OCR recognised as much as before, and four PDF readers rendered every file identically. What worked was treating text and photographs differently. Two obvious methods made files larger or gained nothing.
Update, 29 September 2026 (version 2.54.0, live on addons.mozilla.org since 29 September 2026): the limit described at the end is fixed. A second feature now separates photographs from charts, diagrams and text on gradients, which stay lossless; the palette holds 64 colours and photographs keep their full resolution. In the simulation, edge sharpness in charts rose from 39–66 % to 97–100 %. The table below shows 2.52.0: with 2.54.0 files are 12 to 28 % larger, so the reduction against 2.49.0 is 72 % on Untersberg and 65 % on Salzburg.
| Page | Before (2.49.0) | Compact colour (2.52.0) | Change |
|---|---|---|---|
| Wikipedia “Untersberg” | 4.68 MB | 1.04 MB | −78 % |
| Wikipedia “Salzburg” | 17.65 MB | 5.54 MB | −69 % |
MDN, CSS columns | 1.46 MB | 0.70 MB | −52 % |
| Frontiers article | 7.28 MB* | 3.34 MB | −54 % |
* Frontiers was not captured with 2.49.0; the baseline is 2.50.0 in “Colour — as on screen”, which already stores text losslessly and photos as JPEG 92.
Captured in a real Firefox ESR (driven through Marionette, window 1816 × 1244 CSS pixels, device pixel ratio 1, 144 dpi in the PDF). The text layer of Salzburg carries 25,970 words and 2,120 links in both versions. Tesseract 5 recognised 71.9 % of the words of the first 1,500 pt of Untersberg from the compact file and 71.5 % from the lossless one — the ceiling there is Tesseract, not the compression.
Until 2.49.0 the extension decided per tile of up to 4,000 pixels: store it losslessly (Deflate) or as JPEG, whichever was smaller. A tile with one photograph and a lot of text therefore ended up either large (the photo stored losslessly) or soft (the text stored as JPEG). On Untersberg 30.6 % of the page area went out as JPEG, text included.
The fix separates the two. The page is cut into 32 × 32 cells; a cell with more than 48 distinct colours counts as photograph. Text cells have a median of 9 colours and a 95th percentile of 46, photographs well over a hundred. Photo cells are merged row by row into rectangles and stored as JPEG on top of a lossless base. The JPEG share of Untersberg fell from 30.6 % to 7.8 % — more of the text is now sharp, not less.
Measured on the first 4,000-pixel section of Untersberg:
| Variant | Size | OCR |
|---|---|---|
| Text lossless, photos JPEG 92 | 1,202 KB | 71.1 % |
| Photos JPEG 75 | 870 KB | 71.7 % |
| Photos JPEG 60 at half resolution | 493 KB | 71.5 % |
| Text 64 colours, photos JPEG 75 | 754 KB | 71.7 % |
| Text 32 colours, photos JPEG 60 half resolution | 372 KB | 71.7 % |
| Text 16 colours, photos JPEG 60 half resolution | 312 KB | 70.0 % |
| Whole page JPEG 60 (for comparison) | 575 KB | 71.1 % |
| Whole page JPEG 40 (for comparison) | 472 KB | 70.4 % |
Screen text has few colours: the ink, the link blue, the background and the anti-aliasing steps in between. A palette of 32 keeps all of them; at 16 OCR starts to lose words. The palette is built from the most frequent colours with a minimum distance, so that 32 shades of white do not take all the slots. One more lossless step came for free: the text layer sits in the page content word by word, and that content was stored uncompressed — 1.73 MB on Salzburg, 0.28 MB with Deflate.
Text on a gradient background — coloured buttons, boxes with a colour fade — exceeds 48 colours per cell and is treated as photograph, so in compact mode it is stored at half resolution and looks soft. A second feature separates it in simulation: photographs are restless everywhere, text on a gradient is smooth with a few hard edges (share of neighbouring pixels differing by 3 to 40: text median 0.04, photographs far higher). It is not shipped yet. Pages built mainly from such elements should use “Colour — as on screen” until then.
All numbers of this page: 2026-09-29-compact-pdf-size.json.
Wir haben die Größe von Ganzseiten-PDF-Aufnahmen um 52 bis 78 % gegenüber der Vorversion reduziert. Die durchsuchbare Textebene blieb wortgleich erhalten, OCR erkannte genauso viel wie zuvor, und vier PDF-Reader stellten jede Datei identisch dar. Der Schlüssel war, Text und Fotografien unterschiedlich zu behandeln. Zwei naheliegende Methoden machten die Dateien größer oder brachten nichts.
Nachtrag, 29. September 2026 (Version 2.54.0, seit 29. September 2026 auf addons.mozilla.org): Die am Ende beschriebene Grenze ist behoben. Ein zweites Merkmal trennt jetzt Fotos von Diagrammen, Grafiken und Text auf Farbverläufen, die verlustfrei bleiben; die Palette fasst 64 Farben, Fotos behalten ihre volle Auflösung. In der Simulation stieg die Kantenschärfe in Diagrammen von 39–66 % auf 97–100 %. Die Tabelle unten zeigt 2.52.0: Mit 2.54.0 sind die Dateien 12 bis 28 % größer, die Ersparnis gegenüber 2.49.0 beträgt damit 72 % bei Untersberg und 65 % bei Salzburg.
| Seite | Vorher (2.49.0) | Kompaktfarbe (2.52.0) | Änderung |
|---|---|---|---|
| Wikipedia „Untersberg“ | 4,68 MB | 1,04 MB | −78 % |
| Wikipedia „Salzburg“ | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Frontiers-Artikel | 7,28 MB* | 3,34 MB | −54 % |
* Frontiers wurde nicht mit 2.49.0 erfasst; die Ausgangsbasis ist 2.50.0 in „Farbe — wie am Bildschirm“, das Text bereits verlustfrei speichert und Fotos als JPEG 92.
Aufgenommen in einem echten Firefox ESR (gesteuert über Marionette, Fenster 1816 × 1244 CSS-Pixel, Device-Pixel-Ratio 1, 144 dpi im PDF). Die Textebene von Salzburg enthält 25.970 Wörter und 2.120 Links in beiden Versionen. Tesseract 5 erkannte 71,9 % der Wörter der ersten 1.500 pt von Untersberg aus der kompakten Datei und 71,5 % aus der verlustfreien — die Obergrenze liegt dort bei Tesseract, nicht bei der Kompression.
Bis 2.49.0 entschied die Erweiterung pro Kachel von bis zu 4.000 Pixeln: verlustfrei speichern (Deflate) oder als JPEG, je nachdem, was kleiner war. Eine Kachel mit einem Foto und viel Text endete daher entweder groß (das Foto verlustfrei gespeichert) oder weich (der Text als JPEG gespeichert). Bei Untersberg gingen 30,6 % der Seitenfläche als JPEG hinaus, Text eingeschlossen.
Die Lösung trennt die beiden. Die Seite wird in 32 × 32-Zellen zerlegt; eine Zelle mit mehr als 48 unterschiedlichen Farben zählt als Foto. Textzellen haben einen Median von 9 Farben und ein 95.-Perzentil von 46, Fotos weit über hundert. Fotozellen werden zeilenweise zu Rechtecken zusammengeführt und als JPEG über einer verlustfreien Basis gespeichert. Der JPEG-Anteil von Untersberg sank von 30,6 % auf 7,8 % — mehr vom Text ist jetzt scharf, nicht weniger.
Gemessen am ersten 4.000-Pixel-Abschnitt von Untersberg:
| Variante | Größe | OCR |
|---|---|---|
| Text verlustfrei, Fotos JPEG 92 | 1.202 KB | 71,1 % |
| Fotos JPEG 75 | 870 KB | 71,7 % |
| Fotos JPEG 60 bei halber Auflösung | 493 KB | 71,5 % |
| Text 64 Farben, Fotos JPEG 75 | 754 KB | 71,7 % |
| Text 32 Farben, Fotos JPEG 60 halbe Auflösung | 372 KB | 71,7 % |
| Text 16 Farben, Fotos JPEG 60 halbe Auflösung | 312 KB | 70,0 % |
| Ganze Seite JPEG 60 (zum Vergleich) | 575 KB | 71,1 % |
| Ganze Seite JPEG 40 (zum Vergleich) | 472 KB | 70,4 % |
Bildschirmtext hat wenige Farben: die Tinte, das Link-Blau, den Hintergrund und die Zwischenstufen der Kantenglättung. Eine Palette von 32 behält sie alle; bei 16 beginnt OCR, Wörter zu verlieren. Die Palette wird aus den häufigsten Farben mit einem Mindestabstand gebildet, damit nicht 32 Weißschattierungen alle Plätze belegen. Ein weiterer verlustfreier Schritt kam kostenlos dazu: Die Textebene liegt Wort für Wort im Seiteninhalt, und dieser Inhalt wurde unkomprimiert gespeichert — 1,73 MB bei Salzburg, 0,28 MB mit Deflate.
Text auf einem Farbverlaufshintergrund — farbige Schaltflächen, Boxen mit Farbverlauf — überschreitet 48 Farben pro Zelle und wird als Foto behandelt, im Kompaktmodus also in halber Auflösung gespeichert und wirkt weich. Ein zweites Merkmal trennt das in der Simulation: Fotos sind überall unruhig, Text auf einem Farbverlauf ist glatt mit wenigen harten Kanten (Anteil benachbarter Pixel, die sich um 3 bis 40 unterscheiden: Text-Median 0,04, Fotos weit höher). Es ist noch nicht ausgeliefert. Seiten, die überwiegend aus solchen Elementen bestehen, sollten bis dahin „Farbe — wie am Bildschirm“ verwenden.
Alle Zahlen dieser Seite: 2026-09-29-compact-pdf-size.json.
Redujimos el tamaño de las capturas de PDF de página completa entre un 52 y un 78 % respecto a la versión anterior. La capa de texto buscable permaneció palabra por palabra igual, el OCR reconoció tanto como antes, y cuatro lectores de PDF representaron cada archivo de forma idéntica. Lo que funcionó fue tratar el texto y las fotografías de forma diferente. Dos métodos obvios hicieron los archivos más grandes o no aportaron nada.
Actualización, 29 de septiembre de 2026 (versión 2.54.0, publicada en addons.mozilla.org desde el 29 de septiembre de 2026): el límite descrito al final está resuelto. Un segundo criterio separa ahora las fotografías de los gráficos, diagramas y textos sobre degradados, que se conservan sin pérdida; la paleta tiene 64 colores y las fotografías conservan su resolución completa. En la simulación, la nitidez de bordes en los gráficos pasó del 39–66 % al 97–100 %. La tabla de abajo muestra 2.52.0: con 2.54.0 los archivos son entre un 12 y un 28 % más grandes, de modo que la reducción frente a 2.49.0 es del 72 % en Untersberg y del 65 % en Salzburg.
| Página | Antes (2.49.0) | Color compacto (2.52.0) | Cambio |
|---|---|---|---|
| Wikipedia “Untersberg” | 4,68 MB | 1,04 MB | −78 % |
| Wikipedia “Salzburg” | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Artículo de Frontiers | 7,28 MB* | 3,34 MB | −54 % |
* Frontiers no se capturó con 2.49.0; la línea base es 2.50.0 en “Color — como en pantalla”, que ya almacena el texto sin pérdida y las fotos como JPEG 92.
Capturado en un Firefox ESR real (controlado mediante Marionette, ventana de 1816 × 1244 píxeles CSS, relación de píxeles del dispositivo 1, 144 ppp en el PDF). La capa de texto de Salzburg contiene 25.970 palabras y 2.120 enlaces en ambas versiones. Tesseract 5 reconoció el 71,9 % de las palabras de los primeros 1.500 pt de Untersberg en el archivo compacto y el 71,5 % en el sin pérdida — el techo ahí lo pone Tesseract, no la compresión.
Hasta 2.49.0 la extensión decidía por mosaico de hasta 4.000 píxeles: almacenarlo sin pérdida (Deflate) o como JPEG, lo que resultara más pequeño. Un mosaico con una fotografía y mucho texto acababa por tanto o bien grande (la foto almacenada sin pérdida) o bien borroso (el texto almacenado como JPEG). En Untersberg, el 30,6 % del área de la página salió como JPEG, texto incluido.
La corrección separa ambas cosas. La página se corta en celdas de 32 × 32; una celda con más de 48 colores distintos cuenta como fotografía. Las celdas de texto tienen una mediana de 9 colores y un percentil 95 de 46, las fotografías muy por encima de cien. Las celdas de foto se fusionan fila por fila en rectángulos y se almacenan como JPEG sobre una base sin pérdida. La proporción de JPEG en Untersberg bajó del 30,6 % al 7,8 % — ahora hay más texto nítido, no menos.
Medido en la primera sección de 4.000 píxeles de Untersberg:
| Variante | Tamaño | OCR |
|---|---|---|
| Texto sin pérdida, fotos JPEG 92 | 1.202 KB | 71,1 % |
| Fotos JPEG 75 | 870 KB | 71,7 % |
| Fotos JPEG 60 a media resolución | 493 KB | 71,5 % |
| Texto 64 colores, fotos JPEG 75 | 754 KB | 71,7 % |
| Texto 32 colores, fotos JPEG 60 media resolución | 372 KB | 71,7 % |
| Texto 16 colores, fotos JPEG 60 media resolución | 312 KB | 70,0 % |
| Página completa JPEG 60 (para comparar) | 575 KB | 71,1 % |
| Página completa JPEG 40 (para comparar) | 472 KB | 70,4 % |
El texto en pantalla tiene pocos colores: la tinta, el azul del enlace, el fondo y los pasos de suavizado de bordes intermedios. Una paleta de 32 los conserva todos; con 16, el OCR empieza a perder palabras. La paleta se construye con los colores más frecuentes con una distancia mínima, para que 32 tonos de blanco no ocupen todas las plazas. Se ganó gratis un paso sin pérdida más: la capa de texto está en el contenido de la página palabra por palabra, y ese contenido se almacenaba sin comprimir — 1,73 MB en Salzburg, 0,28 MB con Deflate.
El texto sobre un fondo degradado — botones de color, cajas con degradado de color — supera los 48 colores por celda y se trata como fotografía, así que en modo compacto se almacena a media resolución y se ve borroso. Una segunda característica lo separa en simulación: las fotografías son inquietas en todas partes, el texto sobre un degradado es suave con pocos bordes duros (proporción de píxeles vecinos que difieren entre 3 y 40: mediana del texto 0,04, fotografías mucho más alta). Aún no se ha implementado. Las páginas construidas principalmente con esos elementos deberían usar “Color — como en pantalla” hasta entonces.
Todas las cifras de esta página: 2026-09-29-compact-pdf-size.json.
Nous avons réduit la taille des captures PDF pleine page de 52 à 78 % par rapport à la version précédente. La couche de texte consultable est restée identique mot pour mot, l'OCR a reconnu autant de mots qu'avant, et quatre lecteurs PDF ont rendu chaque fichier de façon identique. Ce qui a fonctionné, c'est de traiter le texte et les photographies différemment. Deux méthodes évidentes ont rendu les fichiers plus volumineux ou n'ont rien apporté.
Mise à jour, 29 septembre 2026 (version 2.54.0, en ligne sur addons.mozilla.org depuis le 29 septembre 2026) : la limite décrite à la fin est corrigée. Un second critère sépare désormais les photographies des graphiques, diagrammes et textes sur dégradé, qui restent sans perte ; la palette compte 64 couleurs et les photographies gardent leur pleine résolution. Dans la simulation, la netteté des contours dans les graphiques est passée de 39–66 % à 97–100 %. Le tableau ci-dessous montre 2.52.0 : avec 2.54.0, les fichiers sont 12 à 28 % plus gros, la réduction par rapport à 2.49.0 est donc de 72 % pour Untersberg et de 65 % pour Salzburg.
| Page | Avant (2.49.0) | Couleur compacte (2.52.0) | Changement |
|---|---|---|---|
| Wikipédia « Untersberg » | 4,68 MB | 1,04 MB | −78 % |
| Wikipédia « Salzburg » | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Article Frontiers | 7,28 MB* | 3,34 MB | −54 % |
* Frontiers n'a pas été capturé avec 2.49.0 ; la référence est 2.50.0 en « Couleur — comme à l'écran », qui stocke déjà le texte sans perte et les photos en JPEG 92.
Capturé dans un vrai Firefox ESR (piloté via Marionette, fenêtre de 1816 × 1244 pixels CSS, rapport de pixels de l'appareil 1, 144 dpi dans le PDF). La couche de texte de Salzburg comporte 25 970 mots et 2 120 liens dans les deux versions. Tesseract 5 a reconnu 71,9 % des mots des premiers 1 500 pt d'Untersberg à partir du fichier compact et 71,5 % à partir du fichier sans perte — le plafond vient ici de Tesseract, pas de la compression.
Jusqu'à la version 2.49.0, l'extension décidait par tuile allant jusqu'à 4 000 pixels : la stocker sans perte (Deflate) ou en JPEG, selon ce qui était le plus petit. Une tuile contenant une photo et beaucoup de texte finissait donc soit volumineuse (la photo stockée sans perte), soit floue (le texte stocké en JPEG). Sur Untersberg, 30,6 % de la surface de la page est sortie en JPEG, texte compris.
Le correctif sépare les deux. La page est découpée en cellules de 32 × 32 ; une cellule avec plus de 48 couleurs distinctes compte comme photo. Les cellules de texte ont une médiane de 9 couleurs et un 95e centile de 46, les photos bien plus d'une centaine. Les cellules de photo sont fusionnées ligne par ligne en rectangles et stockées en JPEG sur une base sans perte. La part de JPEG sur Untersberg est tombée de 30,6 % à 7,8 % — il y a désormais plus de texte net, pas moins.
Mesuré sur la première section de 4 000 pixels d'Untersberg :
| Variante | Taille | OCR |
|---|---|---|
| Texte sans perte, photos JPEG 92 | 1 202 KB | 71,1 % |
| Photos JPEG 75 | 870 KB | 71,7 % |
| Photos JPEG 60 à demi-résolution | 493 KB | 71,5 % |
| Texte 64 couleurs, photos JPEG 75 | 754 KB | 71,7 % |
| Texte 32 couleurs, photos JPEG 60 demi-résolution | 372 KB | 71,7 % |
| Texte 16 couleurs, photos JPEG 60 demi-résolution | 312 KB | 70,0 % |
| Page entière JPEG 60 (pour comparaison) | 575 KB | 71,1 % |
| Page entière JPEG 40 (pour comparaison) | 472 KB | 70,4 % |
Le texte à l'écran a peu de couleurs : l'encre, le bleu des liens, le fond et les étapes de lissage intermédiaires. Une palette de 32 les conserve toutes ; à 16, l'OCR commence à perdre des mots. La palette est construite à partir des couleurs les plus fréquentes avec une distance minimale, afin que 32 nuances de blanc n'occupent pas toutes les places. Une étape sans perte supplémentaire est venue gratuitement : la couche de texte se trouve mot par mot dans le contenu de la page, et ce contenu était stocké non compressé — 1,73 MB sur Salzburg, 0,28 MB avec Deflate.
Le texte sur un fond dégradé — boutons colorés, encadrés avec un dégradé de couleur — dépasse 48 couleurs par cellule et est traité comme une photo ; en mode compact, il est donc stocké à demi-résolution et paraît flou. Une seconde fonctionnalité le sépare en simulation : les photos sont agitées partout, le texte sur un dégradé est lisse avec peu de bords nets (part des pixels voisins différant de 3 à 40 : médiane du texte 0,04, photos bien plus élevée). Ce n'est pas encore déployé. Les pages construites principalement à partir de tels éléments devraient utiliser « Couleur — comme à l'écran » d'ici là.
Tous les chiffres de cette page : 2026-09-29-compact-pdf-size.json.
Abbiamo ridotto la dimensione delle acquisizioni PDF a pagina intera del 52-78 % rispetto alla versione precedente. Il livello di testo ricercabile è rimasto identico parola per parola, l'OCR ha riconosciuto tanto quanto prima, e quattro lettori PDF hanno reso ogni file in modo identico. Ciò che ha funzionato è stato trattare testo e fotografie in modo diverso. Due metodi ovvi hanno reso i file più grandi o non hanno portato nulla.
Aggiornamento, 29 settembre 2026 (versione 2.54.0, pubblicata su addons.mozilla.org dal 29 settembre 2026): il limite descritto alla fine è risolto. Un secondo criterio separa ora le fotografie da grafici, diagrammi e testo su sfumature, che restano senza perdita; la tavolozza ha 64 colori e le fotografie mantengono la risoluzione piena. Nella simulazione, la nitidezza dei bordi nei grafici è salita dal 39–66 % al 97–100 %. La tabella qui sotto mostra 2.52.0: con 2.54.0 i file sono più grandi del 12–28 %, quindi la riduzione rispetto a 2.49.0 è del 72 % su Untersberg e del 65 % su Salzburg.
| Pagina | Prima (2.49.0) | Colore compatto (2.52.0) | Variazione |
|---|---|---|---|
| Wikipedia “Untersberg” | 4,68 MB | 1,04 MB | −78 % |
| Wikipedia “Salzburg” | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Articolo Frontiers | 7,28 MB* | 3,34 MB | −54 % |
* Frontiers non è stato acquisito con la 2.49.0; il riferimento è la 2.50.0 in “Colore — come sullo schermo”, che già memorizza il testo senza perdita e le foto come JPEG 92.
Acquisito con un vero Firefox ESR (pilotato tramite Marionette, finestra di 1816 × 1244 pixel CSS, device pixel ratio 1, 144 dpi nel PDF). Il livello di testo di Salzburg contiene 25.970 parole e 2.120 link in entrambe le versioni. Tesseract 5 ha riconosciuto il 71,9 % delle parole dei primi 1.500 pt di Untersberg dal file compatto e il 71,5 % da quello senza perdita — il tetto lì è dato da Tesseract, non dalla compressione.
Fino alla 2.49.0 l'estensione decideva per riquadro fino a 4.000 pixel: memorizzarlo senza perdita (Deflate) oppure come JPEG, a seconda di quale fosse più piccolo. Un riquadro con una fotografia e molto testo finiva quindi per essere o grande (la foto memorizzata senza perdita) o sfocato (il testo memorizzato come JPEG). Su Untersberg il 30,6 % dell'area della pagina è uscito come JPEG, testo compreso.
La correzione separa i due elementi. La pagina è divisa in celle di 32 × 32; una cella con più di 48 colori distinti conta come fotografia. Le celle di testo hanno una mediana di 9 colori e un 95° percentile di 46, le fotografie ben oltre cento. Le celle fotografiche vengono unite riga per riga in rettangoli e memorizzate come JPEG sopra una base senza perdita. La quota JPEG di Untersberg è scesa dal 30,6 % al 7,8 % — ora più testo è nitido, non meno.
Misurato sulla prima sezione da 4.000 pixel di Untersberg:
| Variante | Dimensione | OCR |
|---|---|---|
| Testo senza perdita, foto JPEG 92 | 1.202 KB | 71,1 % |
| Foto JPEG 75 | 870 KB | 71,7 % |
| Foto JPEG 60 a metà risoluzione | 493 KB | 71,5 % |
| Testo 64 colori, foto JPEG 75 | 754 KB | 71,7 % |
| Testo 32 colori, foto JPEG 60 metà risoluzione | 372 KB | 71,7 % |
| Testo 16 colori, foto JPEG 60 metà risoluzione | 312 KB | 70,0 % |
| Pagina intera JPEG 60 (per confronto) | 575 KB | 71,1 % |
| Pagina intera JPEG 40 (per confronto) | 472 KB | 70,4 % |
Il testo a schermo ha pochi colori: l'inchiostro, il blu dei link, lo sfondo e i passaggi di anti-aliasing intermedi. Una palette di 32 li conserva tutti; a 16 l'OCR comincia a perdere parole. La palette è costruita a partire dai colori più frequenti con una distanza minima, così che 32 sfumature di bianco non occupino tutti i posti. Un ulteriore passaggio senza perdita è arrivato gratis: il livello di testo si trova parola per parola nel contenuto della pagina, e quel contenuto era memorizzato non compresso — 1,73 MB su Salzburg, 0,28 MB con Deflate.
Il testo su uno sfondo sfumato — pulsanti colorati, riquadri con una sfumatura di colore — supera i 48 colori per cella e viene trattato come fotografia, quindi in modalità compatta viene memorizzato a metà risoluzione e appare sfocato. Una seconda funzionalità lo separa in simulazione: le fotografie sono irrequiete ovunque, il testo su uno sfondo sfumato è liscio con pochi bordi netti (quota di pixel vicini che differiscono da 3 a 40: mediana del testo 0,04, fotografie molto più alta). Non è ancora stato rilasciato. Le pagine costruite principalmente con tali elementi dovrebbero usare “Colore — come sullo schermo” fino ad allora.
Tutti i numeri di questa pagina: 2026-09-29-compact-pdf-size.json.
私たちは全ページPDFキャプチャのサイズを、前バージョンに対して52~78 %削減した。 検索可能なテキスト層は一字一句変わらず保たれ、OCRは以前と同じだけ認識し、 4種類のPDFリーダーはすべてのファイルを同一に描画した。効果があったのは、テキストと写真を 別々に扱うことだった。一見もっともらしい2つの手法は、ファイルを大きくするか、効果がなかった。
追記(2026年9月29日、バージョン 2.54.0:2026年9月29日より addons.mozilla.org で公開):末尾に記した制限は解消しました。第二の特徴量により、写真とグラフ・図・グラデーション上の文字を区別し、後者は可逆のまま保存します。パレットは 64 色、写真はフル解像度を保ちます。シミュレーションでは、グラフのエッジの鮮明さは 39–66 % から 97–100 % に向上しました。下の表は 2.52.0 の値です。2.54.0 ではファイルが 12〜28 % 大きく、2.49.0 比の削減率は Untersberg で 72 %、Salzburg で 65 % です。
| ページ | 変更前 (2.49.0) | コンパクトカラー (2.52.0) | 変化 |
|---|---|---|---|
| Wikipedia「Untersberg」 | 4.68 MB | 1.04 MB | −78 % |
| Wikipedia「Salzburg」 | 17.65 MB | 5.54 MB | −69 % |
MDN、CSS columns | 1.46 MB | 0.70 MB | −52 % |
| Frontiersの記事 | 7.28 MB* | 3.34 MB | −54 % |
* Frontiersは2.49.0ではキャプチャされていない。基準は「カラー — 画面のまま」の2.50.0で、これはすでにテキストをロスレスで、写真をJPEG 92で保存している。
実際のFirefox ESRでキャプチャ(Marionette経由で操作、ウィンドウ1816 × 1244 CSSピクセル、 デバイスピクセル比 1、PDF内144 dpi)。Salzburgのテキスト層には両バージョンとも25,970語と 2,120個のリンクが含まれる。Tesseract 5は、コンパクト版のUntersbergの最初の 1,500 ptの単語の71.9 %を認識し、ロスレス版では71.5 %を認識した — ここでの 上限はTesseractによるものであり、圧縮によるものではない。
2.49.0までは、拡張機能は最大4,000ピクセルのタイルごとに判断していた。ロスレス(Deflate)で保存するか、 JPEGで保存するか、どちらか小さい方を選んでいた。そのため、1枚の写真と多くのテキストを含むタイルは、 大きくなる(写真がロスレスで保存される)か、ぼやける(テキストがJPEGで保存される)かのどちらかになっていた。Untersbergでは、ページ面積の30.6 %が テキストを含んだままJPEGとして出力されていた。
この修正は両者を分離する。ページは32 × 32のセルに分割され、 48色を超える異なる色を持つセルは写真とみなされる。テキストセルの色数の中央値は9色、95パーセンタイルは 46色だが、写真は優に100色を超える。写真セルは行ごとに矩形へ統合され、 ロスレスの土台の上にJPEGとして保存される。UntersbergのJPEGの割合は30.6 %から7.8 %に下がった — 今ではより多くのテキストが鮮明になっており、少なくなってはいない。
Untersbergの最初の4,000ピクセル区間で測定:
| バリエーション | サイズ | OCR |
|---|---|---|
| テキストはロスレス、写真はJPEG 92 | 1,202 KB | 71.1 % |
| 写真はJPEG 75 | 870 KB | 71.7 % |
| 写真はJPEG 60、解像度半分 | 493 KB | 71.5 % |
| テキスト64色、写真はJPEG 75 | 754 KB | 71.7 % |
| テキスト32色、写真はJPEG 60・解像度半分 | 372 KB | 71.7 % |
| テキスト16色、写真はJPEG 60・解像度半分 | 312 KB | 70.0 % |
| ページ全体をJPEG 60(比較用) | 575 KB | 71.1 % |
| ページ全体をJPEG 40(比較用) | 472 KB | 70.4 % |
画面上のテキストは色数が少ない: インク、リンクの青、背景、そしてその間のアンチエイリアシングの段階だけだ。 32色のパレットならそのすべてを保持できるが、16色になるとOCRは単語を取りこぼし始める。パレットは 最小距離を保ちながら最も頻出する色から構築されるため、32段階の白が全ての枠を占有することはない。 もう一つのロスレスの改善が無償で得られた: テキスト層は単語ごとにページのコンテンツ内に置かれているが、その コンテンツは無圧縮で保存されていた — Salzburgで1.73 MB、Deflateを使えば0.28 MBになる。
グラデーション背景の上のテキスト — 色付きボタンや、色のグラデーションを持つボックス — は1セルあたり48色を 超えてしまうため写真として扱われ、コンパクトモードでは解像度半分で保存されてぼやけて見える。 2つ目の特徴によってシミュレーション上ではこれを分離できる: 写真はどこでも落ち着きがないのに対し、グラデーション上のテキストは 滑らかで硬いエッジが少ない(隣接ピクセルの差が3~40である割合: テキストの中央値は0.04、 写真ははるかに高い)。まだ実装・配信はされていない。主にこうした要素で構成されたページは、それまでは 「カラー — 画面のまま」を使うべきである。
このページのすべての数値: 2026-09-29-compact-pdf-size.json。
Reduzimos o tamanho das capturas de PDF de página inteira em 52 a 78 % em relação à versão anterior. A camada de texto pesquisável permaneceu exatamente a mesma, palavra por palavra, o OCR reconheceu tanto quanto antes, e quatro leitores de PDF renderizaram cada arquivo de forma idêntica. O que funcionou foi tratar texto e fotografias de maneira diferente. Dois métodos aparentemente óbvios deixaram os arquivos maiores ou não trouxeram ganho.
Atualização, 29 de setembro de 2026 (versão 2.54.0, publicada no addons.mozilla.org desde 29 de setembro de 2026): o limite descrito no final foi resolvido. Um segundo critério agora separa fotografias de gráficos, diagramas e texto sobre degradês, que permanecem sem perdas; a paleta tem 64 cores e as fotografias mantêm a resolução total. Na simulação, a nitidez das bordas nos gráficos subiu de 39–66 % para 97–100 %. A tabela abaixo mostra a 2.52.0: com a 2.54.0 os arquivos ficam de 12 a 28 % maiores, então a redução em relação à 2.49.0 é de 72 % no Untersberg e de 65 % em Salzburg.
| Página | Antes (2.49.0) | Cor compacta (2.52.0) | Mudança |
|---|---|---|---|
| Wikipédia “Untersberg” | 4,68 MB | 1,04 MB | −78 % |
| Wikipédia “Salzburg” | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Artigo da Frontiers | 7,28 MB* | 3,34 MB | −54 % |
* A Frontiers não foi capturada com a 2.49.0; a linha de base é a 2.50.0 em “Cor — como na tela”, que já armazena o texto sem perdas e as fotos como JPEG 92.
Capturado em um Firefox ESR real (controlado via Marionette, janela de 1816 × 1244 pixels CSS, proporção de pixels do dispositivo 1, 144 dpi no PDF). A camada de texto de Salzburg contém 25.970 palavras e 2.120 links em ambas as versões. O Tesseract 5 reconheceu 71,9 % das palavras dos primeiros 1.500 pt de Untersberg a partir do arquivo compacto e 71,5 % a partir do arquivo sem perdas — o teto ali é do Tesseract, não da compressão.
Até a 2.49.0, a extensão decidia por bloco de até 4.000 pixels: armazená-lo sem perdas (Deflate) ou como JPEG, o que fosse menor. Um bloco com uma fotografia e muito texto acabava, portanto, grande demais (a foto armazenada sem perdas) ou borrado (o texto armazenado como JPEG). Em Untersberg, 30,6 % da área da página saiu como JPEG, texto incluído.
A correção separa os dois. A página é dividida em células de 32 × 32; uma célula com mais de 48 cores distintas conta como fotografia. As células de texto têm mediana de 9 cores e percentil 95 de 46, as fotografias, bem mais de cem. As células de foto são mescladas linha a linha em retângulos e armazenadas como JPEG sobre uma base sem perdas. A fração de JPEG em Untersberg caiu de 30,6 % para 7,8 % — agora há mais texto nítido, não menos.
Medido na primeira seção de 4.000 pixels de Untersberg:
| Variante | Tamanho | OCR |
|---|---|---|
| Texto sem perdas, fotos JPEG 92 | 1.202 KB | 71,1 % |
| Fotos JPEG 75 | 870 KB | 71,7 % |
| Fotos JPEG 60 em meia resolução | 493 KB | 71,5 % |
| Texto 64 cores, fotos JPEG 75 | 754 KB | 71,7 % |
| Texto 32 cores, fotos JPEG 60 meia resolução | 372 KB | 71,7 % |
| Texto 16 cores, fotos JPEG 60 meia resolução | 312 KB | 70,0 % |
| Página inteira JPEG 60 (para comparação) | 575 KB | 71,1 % |
| Página inteira JPEG 40 (para comparação) | 472 KB | 70,4 % |
O texto na tela tem poucas cores: a tinta, o azul dos links, o fundo e os degradês intermediários da suavização de bordas. Uma paleta de 32 preserva todas elas; com 16, o OCR começa a perder palavras. A paleta é construída a partir das cores mais frequentes com uma distância mínima, para que 32 tons de branco não ocupem todos os espaços. Mais uma etapa sem perdas veio de graça: a camada de texto está palavra por palavra no conteúdo da página, e esse conteúdo era armazenado sem compressão — 1,73 MB em Salzburg, 0,28 MB com Deflate.
Texto sobre um fundo em gradiente — botões coloridos, caixas com um degradê de cor — ultrapassa 48 cores por célula e é tratado como fotografia, então, no modo compacto, é armazenado em meia resolução e parece borrado. Um segundo recurso o separa em simulação: fotografias são inquietas por toda parte, o texto sobre um gradiente é suave, com poucas bordas duras (fração de pixels vizinhos que diferem de 3 a 40: mediana do texto 0,04, fotografias bem mais alta). Ainda não foi lançado. Páginas construídas principalmente com esses elementos devem usar “Cor — como na tela” até lá.
Todos os números desta página: 2026-09-29-compact-pdf-size.json.
Мы уменьшили размер PDF-снимков целой страницы на 52–78 % по сравнению с предыдущей версией. Слой текста, доступный для поиска, остался слово в слово прежним, OCR распознавал столько же, сколько раньше, а четыре PDF-читалки отображали каждый файл одинаково. Сработало то, что текст и фотографии стали обрабатываться по-разному. Два очевидных на первый взгляд метода увеличивали файлы или ничего не давали.
Дополнение, 29 сентября 2026 (версия 2.54.0, опубликована на addons.mozilla.org с 29 сентября 2026): ограничение, описанное в конце, устранено. Второй признак теперь отделяет фотографии от графиков, диаграмм и текста на градиентах, которые сохраняются без потерь; палитра содержит 64 цвета, фотографии сохраняют полное разрешение. В моделировании резкость краёв на графиках выросла с 39–66 % до 97–100 %. Таблица ниже относится к 2.52.0: в 2.54.0 файлы на 12–28 % больше, поэтому сокращение относительно 2.49.0 составляет 72 % для Untersberg и 65 % для Salzburg.
| Страница | До (2.49.0) | Компактный цвет (2.52.0) | Изменение |
|---|---|---|---|
| Wikipedia «Untersberg» | 4,68 MB | 1,04 MB | −78 % |
| Wikipedia «Salzburg» | 17,65 MB | 5,54 MB | −69 % |
MDN, CSS columns | 1,46 MB | 0,70 MB | −52 % |
| Статья Frontiers | 7,28 MB* | 3,34 MB | −54 % |
* Frontiers не снималась в версии 2.49.0; за базовую версию принята 2.50.0 в режиме «Цвет — как на экране», которая уже хранит текст без потерь, а фото — как JPEG 92.
Снято в настоящем Firefox ESR (управление через Marionette, окно 1816 × 1244 CSS-пикселей, соотношение пикселей устройства 1, 144 dpi в PDF). Слой текста страницы Salzburg содержит 25 970 слов и 2 120 ссылок в обеих версиях. Tesseract 5 распознал 71,9 % слов первых 1 500 pt страницы Untersberg из компактного файла и 71,5 % из файла без потерь — потолок здесь задаёт Tesseract, а не сжатие.
До версии 2.49.0 расширение принимало решение для каждой плитки размером до 4000 пикселей: хранить без потерь (Deflate) или как JPEG — в зависимости от того, что получалось меньше. Поэтому плитка с одной фотографией и большим количеством текста оказывалась либо большой (фото хранилось без потерь), либо размытой (текст хранился как JPEG). На странице Untersberg 30,6 % площади страницы выходило как JPEG, включая текст.
Исправление разделяет эти два случая. Страница разбивается на ячейки 32 × 32; ячейка с более чем 48 различными цветами считается фотографией. Медиана числа цветов в текстовых ячейках — 9, а 95-й процентиль — 46, у фотографий — намного больше сотни. Ячейки с фото объединяются построчно в прямоугольники и хранятся как JPEG поверх основы без потерь. Доля JPEG на странице Untersberg снизилась с 30,6 % до 7,8 % — теперь больше текста стало чётким, а не меньше.
Измерено на первом участке в 4000 пикселей страницы Untersberg:
| Вариант | Размер | OCR |
|---|---|---|
| Текст без потерь, фото JPEG 92 | 1202 KB | 71,1 % |
| Фото JPEG 75 | 870 KB | 71,7 % |
| Фото JPEG 60 при половинном разрешении | 493 KB | 71,5 % |
| Текст 64 цвета, фото JPEG 75 | 754 KB | 71,7 % |
| Текст 32 цвета, фото JPEG 60, половинное разрешение | 372 KB | 71,7 % |
| Текст 16 цветов, фото JPEG 60, половинное разрешение | 312 KB | 70,0 % |
| Вся страница JPEG 60 (для сравнения) | 575 KB | 71,1 % |
| Вся страница JPEG 40 (для сравнения) | 472 KB | 70,4 % |
У текста на экране мало цветов: чернила, синий цвет ссылок, фон и промежуточные ступени сглаживания краёв. Палитра из 32 цветов сохраняет их все; при 16 OCR начинает терять слова. Палитра строится из самых частых цветов с минимальным расстоянием между ними, чтобы 32 оттенка белого не заняли все места. Ещё один шаг без потерь достался бесплатно: слой текста находится слово в слово в содержимом страницы, а это содержимое хранилось несжатым — 1,73 MB на странице Salzburg, 0,28 MB при сжатии Deflate.
Текст на градиентном фоне — цветные кнопки, блоки с цветовым переходом — превышает 48 цветов на ячейку и распознаётся как фотография, поэтому в компактном режиме сохраняется с половинным разрешением и выглядит размытым. Вторая функция разделяет их в симуляции: фотографии везде «беспокойны», а текст на градиенте гладкий, с немногочисленными резкими краями (доля соседних пикселей, различающихся на 3–40: медиана для текста 0,04, для фотографий — намного выше). Пока это не реализовано. Страницам, построенным в основном из таких элементов, до тех пор стоит использовать «Цвет — как на экране».
Все цифры этой страницы: 2026-09-29-compact-pdf-size.json.
与上一版本相比,我们将整页 PDF 截图的体积削减了 52 至 78 %。 可搜索的文本层逐字保持不变,OCR 识别率与之前相同, 四款 PDF 阅读器渲染出的每个文件都完全一致。真正有效的做法是把文字和照片 区别对待。两种看似显而易见的方法反而让文件变大,或毫无收益。
补充(2026年9月29日,版本 2.54.0:自 2026年9月29日起在 addons.mozilla.org 上线):文末所述的限制已解决。第二项特征现在把照片与图表、示意图及渐变背景上的文字区分开,后者保持无损;调色板为 64 色,照片保留完整分辨率。在模拟中,图表边缘清晰度从 39–66 % 提升到 97–100 %。下表为 2.52.0 的数据:2.54.0 的文件大 12% 至 28%,相对 2.49.0 的缩减在 Untersberg 为 72%,在 Salzburg 为 65%。
| 页面 | 之前 (2.49.0) | 紧凑彩色 (2.52.0) | 变化 |
|---|---|---|---|
| 维基百科"Untersberg" | 4.68 MB | 1.04 MB | −78 % |
| 维基百科"Salzburg" | 17.65 MB | 5.54 MB | −69 % |
MDN,CSS columns | 1.46 MB | 0.70 MB | −52 % |
| Frontiers 文章 | 7.28 MB* | 3.34 MB | −54 % |
* Frontiers 页面并非用 2.49.0 截取;基准版本是 2.50.0 的"彩色 — 与屏幕一致"模式,该模式已经以无损方式保存文字,并以 JPEG 92 保存照片。
截图使用真实的 Firefox ESR(通过 Marionette 驱动,窗口为 1816 × 1244 个 CSS 像素, 设备像素比为 1,PDF 内分辨率为 144 dpi)。两个版本中,Salzburg 页面的文本层都含有 25,970 个单词和 2,120 个链接。对于紧凑文件,Tesseract 5 识别出了 Untersberg 页面前 1,500 pt 中 71.9 % 的单词;对于无损文件则识别出 71.5 % — 这里的 上限来自 Tesseract 本身,而不是压缩。
在 2.49.0 之前,扩展程序会对每个最大 4,000 像素的图块单独做决定:以无损方式(Deflate)存储, 或以 JPEG 存储,取两者中较小的一个。因此,一个既含照片又含大量文字的图块, 最终要么体积大(照片以无损方式存储),要么变模糊(文字以 JPEG 存储)。在 Untersberg 页面上,30.6 % 的页面区域是以 JPEG 形式输出的,其中包含文字。
这项修复把两者分开处理。页面被切分为 32 × 32 的单元格;拥有超过 48 种不同颜色的单元格被视为照片。文字单元格颜色数的中位数为 9,第 95 百分位为 46,而照片则远超一百种颜色。照片单元格按行合并成矩形, 并在无损底图之上以 JPEG 存储。Untersberg 页面中 JPEG 所占比例从 30.6 % 降至 7.8 % — 如今清晰的文字更多了,而不是更少。
在 Untersberg 页面前 4,000 像素的区段上测得:
| 方案 | 体积 | OCR |
|---|---|---|
| 文字无损,照片 JPEG 92 | 1,202 KB | 71.1 % |
| 照片 JPEG 75 | 870 KB | 71.7 % |
| 照片 JPEG 60、半分辨率 | 493 KB | 71.5 % |
| 文字 64 色,照片 JPEG 75 | 754 KB | 71.7 % |
| 文字 32 色,照片 JPEG 60、半分辨率 | 372 KB | 71.7 % |
| 文字 16 色,照片 JPEG 60、半分辨率 | 312 KB | 70.0 % |
| 整页 JPEG 60(用于对比) | 575 KB | 71.1 % |
| 整页 JPEG 40(用于对比) | 472 KB | 70.4 % |
屏幕上的文字颜色很少:墨色、链接的蓝色、背景色,以及两者之间的抗锯齿过渡色阶。 32 色的调色板足以保留全部这些颜色;而在 16 色时,OCR 就开始丢失单词。调色板由 最常见的颜色按最小间距挑选而成,这样 32 种白色深浅就不会占满所有名额。 还免费获得了另一个无损优化:文本层逐字存在于页面内容中,而这部分 内容此前是未压缩存储的 — Salzburg 页面为 1.73 MB,使用 Deflate 后为 0.28 MB。
渐变背景上的文字 — 彩色按钮、带有颜色渐变的方框 — 每个单元格的颜色数会超过 48 种, 因而被当作照片处理,在紧凑模式下以半分辨率存储,看起来比较模糊。 第二个特征在模拟中可以将两者区分开:照片在各处都显得"躁动",而渐变背景上的文字则 平滑,只有少数硬边(相邻像素差值在 3 到 40 之间的比例:文字的中位数为 0.04, 照片则高得多)。这项功能尚未上线。在此之前,主要由这类元素构成的页面应当使用 "彩色 — 与屏幕一致"模式。
本页所有数据:2026-09-29-compact-pdf-size.json。