cómo funciona la compresión de un pdf
Cómo comprime de verdad un PDF
"Comprimir PDF" ejecuta varias operaciones sin relación entre sí detrás de un único botón. Una es sin pérdidas y normalmente ya está hecha. Otra es de donde sale todo el tamaño, y no es gratis.
01
Capa uno: compresión de flujos, sin pérdidas y ya activada
Todo flujo de un PDF — flujos de contenido, tipografías incrustadas, datos de imagen — puede llevar un filtro que dice cómo está codificado. El habitual es `FlateDecode`, que es deflate, el mismo algoritmo que ZIP. Las instrucciones de dibujo de texto son muy repetitivas, así que deflate se luce con ellas: una página de comandos de dibujo se comprime rutinariamente a la quinta parte.
Lo importante es que casi todos los programas que escriben PDF aplican esto en el momento de guardar. Cuando el archivo llega a tus manos, esta capa ya se ha ejecutado. Por eso comprimir un PDF en ZIP no te gana casi nada, y por eso comprimir un PDF de texto que ya era pequeño te devuelve un archivo del mismo tamaño. No quedaba nada que quitar.
El PDF 1.5 añadió dos refinamientos que todavía ayudan en archivos anteriores. Los flujos de objetos empaquetan muchos diccionarios pequeños dentro de un solo flujo comprimible en lugar de dejarlos sueltos como texto sin comprimir. Los flujos de referencias cruzadas hacen lo mismo con el índice. En un documento grande con decenas de miles de objetos, eso solo puede ser una reducción apreciable, y no cuesta absolutamente nada.
02
Capa dos: recodificar imágenes, que es donde vive el tamaño
Deflate no sirve de nada con fotografías. Un escaneo no tiene repetición exacta que explotar — cada píxel se diferencia un poco de su vecino —, así que la compresión sin pérdidas sobre datos de imagen no devuelve casi nada. Los datos de imagen se guardan en su lugar con `DCTDecode` (JPEG) o, para escaneos de dos niveles, con `CCITTFaxDecode` o `JBIG2Decode`.
Así que comprimir un PDF cargado de imágenes significa una sola cosa: descodificar cada imagen, cambiarla y volver a codificarla. Hay tres palancas, y las tres implican una renuncia real.
- Remuestreo
- Reducir las dimensiones en píxeles. Un escaneo a 300 PPP guarda cuatro veces más datos que uno a 150, y una pantalla no puede mostrar la diferencia. Es la mayor victoria individual en documentos escaneados.
- Calidad de recodificación
- Subir la cuantización JPEG. Pasar de calidad 95 a 80 suele reducir los datos a la mitad y cuesta verlo; bajar de 60 empieza a mostrar halos alrededor del texto.
- Reducción de color
- Convertir el color a escala de grises, o un escaneo en grises de texto limpio a dos niveles. La tipografía negra sobre papel blanco no lleva ningún color que merezca la pena conservar.
- Lo que cuesta
- Las tres son de un solo sentido. Los píxeles descartados se han ido, y comprimir el resultado otra vez recodifica datos ya degradados.
03
Capa tres: tirar cosas que no estabas mirando
Una parte sorprendente de un PDF suele ser sobrecarga que nadie quiere. Las tipografías son el caso clásico: una tipografía incrustada entera puede irse a varios cientos de kilobytes, y un documento que usa once caracteres de ella en un titular carga con la familia completa. Hacer un subconjunto reescribe la tipografía para que contenga solo los glifos realmente dibujados.
Luego está la duplicación. Un logotipo colocado en la cabecera de todas las páginas se incrusta con frecuencia una vez por página en lugar de guardarse una vez y referenciarse ochenta. Deduplicar objetos idénticos en un informe largo puede quitarle un tercio al archivo sin ningún cambio visual.
El resto es más pequeño pero suma: miniaturas de página cacheadas por el programa que escribió el archivo, bloques de metadatos XMP, objetos huérfanos que dejaron ediciones anteriores, JavaScript y el historial completo de ediciones que dejan atrás los guardados incrementales. Nada de eso se dibuja. Todo eso viaja.
04
Por qué el mismo ajuste da resultados tan dispares
Porque el resultado depende por completo de qué capa tenga algo que hacer. Pasa un compresor por un escaneo de 40 MB y recodificará 200 imágenes y te devolverá 4 MB. Pasa los mismos ajustes exactos por un informe de texto de 400 KB y no encontrará imágenes, ni tipografías sin subconjunto, ni objetos duplicados, y te devolverá 390 KB.
Ninguno de los dos resultados es la herramienta funcionando bien o mal. Es la misma operación encontrándose con dos archivos completamente distintos, y por eso la primera pregunta útil es siempre de qué está hecho el archivo y no cuánto apretarlo.
05
Pérdida por generación, y por qué dos veces no es el doble de bueno
La cuantización JPEG no es idempotente. Recodificar una imagen que ya fue cuantizada vuelve a cuantizar coeficientes que ya estaban redondeados, así que el error se acumula mientras el tamaño apenas se mueve. La segunda pasada suele quitar un pequeño porcentaje y añadir artefactos visibles alrededor de cada borde duro.
Si una pasada no ha llegado a tu objetivo, el movimiento productivo es cambiar algo estructural — remuestrear más, bajar a escala de grises, quitar páginas — y no volver a ejecutar la misma compresión.