¿Qué le pasó a bzip1?

40

bzip2 había sido un estándar de facto para una compresión bastante fuerte durante muchos años. Yo mismo había escrito el bzip2comando miles de veces hasta ahora, lo que me hace preguntarme: ¿qué pasó con bzip o bzip1? Google no parece decirme mucho al respecto y parece que podría ser una interesante lección de historia.

d33tah
fuente

Respuestas:

32

Parece que el original bzipfue retirado alrededor de 1998 debido a problemas de patentes con la compresión aritmética utilizada. Un poco de excavación (en realidad solo leyendo Wikipedia) muestra un enlace archivado al bzip2sitio web de esta época .

Aquí está la sección relevante que detalla esta y otras diferencias:

¿Cómo se relaciona con su oferta anterior (bzip-0.21)?

bzip2 es una versión reescrita y rediseñada de 0.21. Parece superficialmente bastante similar, pero se ha reescrito casi por completo (varias veces :-). Las diferencias importantes son:

  • ¡Sin patentes! (Espero; ver la declaración anterior). bzip-0.21 usó codificación aritmética; bzip2 utiliza la codificación Huffman, que generalmente se considera no problemática desde el punto de vista de la patente. Ambos programas se basan en la transformación Burrows-Wheeler, pero, que yo sepa, eso tampoco está patentado.

  • Más rápido, particularmente en la descompresión. bzip2 descomprime más del 50% más rápido que 0.21, principalmente debido al uso de la codificación Huffman. También he mejorado la velocidad de compresión, aunque no tanto, tal vez se comprime un 30% más rápido que 0.21.

  • Recuperación de errores de medios. Ambos programas comprimen datos en bloques, por defecto, 900k de largo. Con bzip2, cada bloque se maneja de manera completamente independiente, lleva su propia suma de verificación y está delimitado por una secuencia de 48 bits. Por lo tanto, si tiene un archivo comprimido dañado, bzip2 puede extraer los bloques comprimidos, detectar cuáles no están dañados y descomprimirlos.

  • Modo de prueba. Puede probar la integridad de los archivos comprimidos sin tener que descomprimirlos. Debería haber puesto esto en 0.21, de verdad, pero era demasiado vago (+ quemado con pirateo cuando lo lancé).

  • Maneja archivos muy repetitivos mucho mejor. Tales archivos son el peor de los casos para cualquier compresor de clasificación de bloques. bzip2 se ejecuta aproximadamente diez veces más rápido que 0.21 para dichos archivos.

  • Soporte para máquinas más pequeñas. bzip2 puede descomprimir cualquier archivo que cree en 2300k, lo que significa que puede descomprimir archivos en máquinas de 4 megas. El uso máximo de memoria durante la compresión también se reduce en aproximadamente 900k en comparación con 0.21, a alrededor de 6400k.

  • Mejor manejo de la bandera. En particular, se admiten banderas largas (como esta), lo que facilita su uso.

  • El mensaje de inicio de una línea que imprimió 0.21 desapareció. Esta fue la característica más criticada de 0.21. Incluso me molesta hoy en día.

Ya no estoy distribuyendo 0.21, porque hacerlo perpetúa los problemas con las patentes, lo que garantiza que el programa nunca será ampliamente utilizado. Es una pena, porque es un programa útil, y parece que a mucha gente le gusta. Si ya usa 0.21, actualice a bzip2. Desafortunadamente, no puedo hacer que bzip2 pueda descomprimir los archivos .bz de 0.21, ya que eso haría que el ejercicio para evitar patentes no tuviera sentido. Sé que cambiar los formatos de archivo es doloroso; a partir de ahora, intentaré hacer más cambios de una manera compatible con versiones anteriores.

También es un enlace a una versión de descompresión del bzipcódigo fuente para cualquiera que quiera jugar con él.

Graeme
fuente
55
Probablemente tenga bzip original en algunos archivos de respaldo en alguna parte. Solía ​​usarlo ampliamente, y el cambio a bzip2 me pareció molesto. En la mayoría de los archivos, bzip obtuvo una mejor relación de compresión.
Jules