Compresión y tamaño de archivos

Una vez segmentada en capas, DjVu aplica una serie de sofisticadas técnicas de compresión para estrujar las piezas de la imagen:

  • Para la capa bitonal aplica un poderoso método basado en reconocimiento de patrones: las formas (por ejemplo, los carácteres de texto) suficientemente similares son consideradas idénticas y todas ellas se representarán usando un único símbolo. La representación comprimida, denominada JB2, consiste básicamente en un "diccionario" que contiene las formas y sus posiciones en una página determinada.
    • Los factores de compresión a menudo son superiores a 100:1 En otras palabras, una página escaneada en blanco y negro queda reducida normalmente a 10KB o menos.
    • Además, dado que comprime los documentos en grupos de 20 páginas, la compresión mejora conforme los documentos tienen más páginas. Es habitual reducir un 66% los documentos de pocas páginas en formato CCITT-grupo 4 y llega a reducirlos en un 90% en grandes documentos multipágina (como por ejemplo, un libro).
    • Para texto en color pueden aplicarse dos métodos, dependiendo de la situación. El primer método es determinar y almacenar el color de cada carácter ("JB2 color"), con lo cual sólo necesitaremos dos capas. El segundo método consiste en guardar el coloreado del texto en una capa separada (la tercera capa), en baja resolución, como "máscara de color" y comprimirla con algoritmos IW44 (también usado para la capa de fondo).
  • Para la capa de fondo de un documento complejo o para una fotografía, DjVu usa la técnica de compresión wavelet conocida como IW44 (para los detalles técnicos, aconsejamos visitar el apartado "Documentos técnicos"). El resultado suele ser entre un 30% y un 90% más pequeño, comparado con un fichero JPEG de calidad parecida. Además, IW44 es un formato progresivo, que permite actualizaciones parciales durante su renderización: al consultar archivos DjVu con una conexión lenta, la capa de fondo y las imágenes se descomprimen progresivamente y la visualización mejora conforme van llegando nuevos datos al browser. IW44 es muy parecido a JPEG2000, pero tiene algunas ventajas importantes:
    • El formato IW44 y diversos programas de codificación/decodificación son "open source"
    • La decodificación de IW44 es normalmente un 3 veces más rápida que la decodificación de JPEG2000
    • IW44 permite la "decodificación parcial", que aumenta el rendimiento del plugin usando pocos recursos de memoria
    • El software IW44 de Lizardtech incorpora un mecanismo de máscara que garantiza al 100% la calidad de los elementos de la capa superior (sobretodo, textos), en base a rutinas que regulan la integridad de los píxeles superpuestos.

El resultado final es que todos los procesos (segmentación, JB2 y IW44) funcionan de forma conjunta y transparente para producir un documento DjVu sencillo de usar. Los factores de reducción más habituales suelen oscilar entre 300:1 y 1000:1, muy superiores a cualquier técnica de optimización/compresión de documentos color.

El gráfico siguiente ilustra las diferencias en calidad y tamaño de archivos entre JPEG, IW44 (por ej. DjVu sin segmentar) y DjVu (por ej. DjVu segmentado y comprimido con IW44 y JB2):