Điều gì đã xảy ra với bzip1?


40

bzip2 đã là một tiêu chuẩn thực tế để nén khá mạnh trong nhiều năm. Bản thân tôi đã gõ bzip2lệnh hàng ngàn lần cho đến nay, điều này khiến tôi tự hỏi - điều gì đã xảy ra với bzip, hay bzip1? Google dường như không cho tôi biết nhiều về nó và có vẻ như đó có thể là một bài học lịch sử thú vị.

Câu trả lời:


32

Có vẻ như bản gốc bzipđã bị kéo vào khoảng năm 1998 do vấn đề bằng sáng chế với nén số học được sử dụng. Một chút đào (thực sự chỉ đọc Wikipedia) xuất hiện một liên kết lưu trữ đến bzip2trang web từ khoảng thời gian này .

Đây là phần có liên quan chi tiết này và sự khác biệt khác:

Làm thế nào nó liên quan đến cung cấp trước đó của bạn (bzip-0.21)?

bzip2 là phiên bản viết lại và thiết kế lại của 0,21. Nó trông khá giống bề ngoài, nhưng gần như được viết lại hoàn toàn (nhiều lần :-). Sự khác biệt quan trọng là:

  • Không có bằng sáng chế! (Tôi hy vọng; xem tuyên bố ở trên). bzip-0.21 được sử dụng mã hóa số học; bzip2 sử dụng mã hóa Huffman, thường được coi là không có vấn đề từ quan điểm bằng sáng chế. Cả hai chương trình đều dựa trên biến đổi Burrows-Wheeler, nhưng, theo hiểu biết tốt nhất của tôi, điều đó cũng không được cấp bằng sáng chế.

  • Nhanh hơn, đặc biệt là lúc giải nén. bzip2 giải nén nhanh hơn 50% so với 0,21, chủ yếu là do sử dụng mã hóa Huffman. Tôi cũng đã cải thiện tốc độ nén, mặc dù không nhiều - có lẽ nó nén nhanh hơn 30% so với 0,21.

  • Phục hồi từ lỗi phương tiện truyền thông. Cả hai chương trình đều nén dữ liệu theo khối, theo mặc định, dài 900k. Với bzip2, mỗi khối được xử lý hoàn toàn độc lập, mang tổng kiểm tra riêng và được phân tách bằng chuỗi 48 bit. Vì vậy, nếu bạn có một tệp nén bị hỏng, bzip2 có thể trích xuất các khối được nén, phát hiện những khối nào không bị hư hại và giải nén chúng.

  • Chê độ kiểm tra. Bạn có thể kiểm tra tính toàn vẹn của các tệp nén mà không phải giải nén chúng. Tôi đáng lẽ nên đặt cái này vào 0,21, thật vậy, nhưng quá lười biếng (+ cháy hết mình với việc hack khi tôi phát hành nó).

  • Xử lý các tập tin rất lặp đi lặp lại tốt hơn nhiều. Các tệp như vậy là trường hợp xấu nhất đối với bất kỳ máy nén sắp xếp khối nào. bzip2 chạy nhanh hơn khoảng mười lần so với 0,21 cho các tệp như vậy.

  • Hỗ trợ cho các máy nhỏ hơn. bzip2 có thể giải nén bất kỳ tệp nào nó tạo trong 2300k, điều đó có nghĩa là bạn có thể giải nén các tệp trên các máy 4 meg. Sử dụng bộ nhớ tối đa trong quá trình nén cũng giảm khoảng 900k so với 0,21, còn khoảng 6400k.

  • Xử lý cờ tốt hơn. Đặc biệt, các cờ dài (- like --this) được hỗ trợ, giúp sử dụng dễ dàng hơn.

  • Thông báo khởi động một dòng được in 0,21 đã biến mất. Đây là tính năng bị phàn nàn nhiều nhất của 0,21. Nó thậm chí còn làm phiền tôi ngày nay.

Tôi không còn phân phối 0,21 nữa, vì làm như vậy sẽ khắc phục được các vấn đề với bằng sáng chế, điều này đảm bảo rằng chương trình sẽ không bao giờ được sử dụng rộng rãi. Đó là một sự xấu hổ, bởi vì đó là một chương trình hữu ích, và nhiều người dường như thích nó. Nếu bạn đã sử dụng 0,21 rồi, vui lòng nâng cấp lên bzip2. Thật không may, tôi không thể làm cho bzip2 có thể giải nén các tệp .bz của 0.21, vì điều đó sẽ khiến bài tập tránh bằng sáng chế trở nên vô nghĩa. Tôi biết thay đổi định dạng tập tin là đau đớn; từ giờ trở đi, tôi sẽ thử và thực hiện thêm bất kỳ thay đổi nào theo cách tương thích ngược.

Đây cũng là một liên kết đến một phiên bản chỉ giải bzipmã của mã nguồn cho bất kỳ ai muốn chơi với nó.


5
Tôi có thể có bzip gốc trên một số tài liệu lưu trữ dự phòng ở đâu đó. Tôi đã từng sử dụng nó một cách rộng rãi và thấy việc chuyển sang bzip2 gây khó chịu. Trên hầu hết các tệp, bzip thu được tỷ lệ nén tốt hơn.
Jules

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.