Nén cao nhất cho các tập tin (để chuyển web)?


14

Tôi đã thấy một số tệp được nén rất cao xung quanh, chẳng hạn như 700 MB dữ liệu được nén đến khoảng 30-50 MB.

Nhưng làm thế nào để bạn có được các tập tin nén như vậy? Tôi đã thử sử dụng phần mềm như WinRAR và 7Zip nhưng chưa bao giờ đạt được độ nén cao như vậy.

Các kỹ thuật / phần mềm cho phép bạn nén các tập tin tốt như vậy là gì?

(PS Tôi đang sử dụng Windows XP)


Ý tưởng hay ... nhưng bạn lấy những tập tin đó từ đâu vậy?
Robinicks

3
Tôi đã thấy các tệp nhật ký máy chủ nén 7zip (chủ yếu là văn bản) xuống khoảng 1% kích thước ban đầu của chúng.
Umber Ferrule

2
Mở Notepad. Loại 1 Tỷ lần "A". Lưu, sau đó nén. Ôi! Tạo một ứng dụng ghi các số ngẫu nhiên 1 tỷ (đúng) vào một tệp. Nén cái đó đi. HUH?
igrimpe

igrimpe: Nhiều mẫu chỉ số thuật toán nén. Một tỷ A là một tỷ lần. Bạn có thể nén nó thành [A] {1, 1000000000}. Nếu bạn có một tỷ số ngẫu nhiên, sẽ rất khó để thực hiện khớp mẫu vì mỗi số liên tiếp trong một tập hợp con đã cho sẽ giảm xác suất của một tập hợp con phù hợp theo cấp số nhân.
AaronF

Câu trả lời:


11

Nếu thời gian để nén dữ liệu không phải là vấn đề, thì bạn có thể tối ưu hóa kích thước nén bằng cách sử dụng một số công cụ khác nhau cùng nhau.

Nén dữ liệu nhiều lần bằng các công cụ khác nhau như 7zip, winrar (cho zip) và bjwflate.

(Lưu ý rằng điều này không có nghĩa là nén tệp zip nhiều lần, mà là tạo một số tệp zip thay thế bằng các công cụ khác nhau)

Tiếp theo, chạy deflopt trên mỗi kho lưu trữ để giảm mỗi kho lưu trữ thêm một chút.

Cuối cùng, chạy zipmix trên bộ sưu tập tài liệu lưu trữ. Do các công cụ zip khác nhau tốt hơn trên các tệp khác nhau, zipmix chọn phiên bản nén tốt nhất của từng tệp từ mỗi kho lưu trữ và tạo ra một đầu ra nhỏ hơn bất kỳ công cụ zip nào có thể tạo riêng lẻ.

Tuy nhiên, bạn cần lưu ý rằng điều này không được đảm bảo để thực hiện bất kỳ loại phép thuật nào trên các tệp của bạn. Một số loại dữ liệu đơn giản là không nén rất tốt, như JPEG và MP3. Những tập tin này đã được nén trong nội bộ.


4
JPEG và MP3 không được nén. Chúng được nén nhưng không được nén.
KovBal

Đây là lời khuyên cực kỳ nghèo nàn, cố gắng sử dụng nhiều thuật toán nén tuần tự là một ý tưởng rất tồi. Mỗi thuật toán tạo ra một tệp nén + trên cao, do đó, bằng cách sử dụng nhiều dữ liệu bạn thực sự thêm dữ liệu vào dữ liệu bạn đang cố gắng nén - giống như cố gắng đào một lỗ trên cát, bạn càng đi sâu vào cát. bạn. Bạn nên sử dụng một thuật toán tốt duy nhất ở các cài đặt nén tối đa.
Tacroy

Tôi nghĩ rằng bạn hiểu nhầm .. dữ liệu tương tự không được nén lại nhiều lần. Thay vào đó, bạn chỉ cần chọn thuật toán đơn tốt nhất trên cơ sở mỗi tệp chứ không phải trên mỗi tệp lưu trữ.
izb

6
Nén dữ liệu nhiều lần là khá sai lệch.
ta.speot.is

12

Điều này phụ thuộc hoàn toàn vào dữ liệu được nén.

Văn bản nén rất tốt, định dạng nhị phân không tốt và dữ liệu nén (mp3, jpg, mpeg) hoàn toàn không.

Đây là một bảng so sánh nén tốt từ wikipedia.


Tôi biết rằng việc nén phụ thuộc vào loại dữ liệu, nhưng có bất kỳ kỹ thuật cụ thể nào giúp bạn nén các tệp hơn nữa không?
rzlines

3
Một khi bạn đã nén một cái gì đó thường không thể có được nó nhỏ hơn đáng kể. Bạn chỉ cần chọn phương pháp nén phù hợp cho dữ liệu của bạn.
Nifle

Văn bản có thể dễ dàng được nén đến 90%.
Georg Schölly

@ GeorgSchölly: Thật tuyệt vời. Bởi vì tôi có thể chuyển đổi bất kỳ dữ liệu nào thành văn bản, ví dụ: chuyển đổi từng byte nhị phân thành hai chữ số thập lục phân được hiển thị thành văn bản. Điều đó sẽ tăng gấp đôi kích thước của tôi, nhưng sau đó tiết kiệm 90% kích thước nhân đôi dẫn đến tiết kiệm tổng thể là 80%. (Hoặc, tôi có thể sử dụng base64 để hiệu quả hơn một chút trong chuyển đổi nhị phân sang văn bản.) Đây là một tin tuyệt vời đáng kinh ngạc! :)
TUYỆT VỜI

8

Câu trả lời trước là sai bởi một thứ tự cường độ!

Thuật toán nén tốt nhất mà tôi có kinh nghiệm cá nhân là paq8o10t (xem trang zpaqPDF ).

Gợi ý: lệnh nén files_or_ Folders sẽ như sau:

paq8o10t -5 archive files_or_folders

Lưu trữ kích thước theo thời gian để nén và trích xuất 10 GB (79.431 tệp) vào ổ cứng USB ngoài theo mặc định và cài đặt tối đa trên máy tính xách tay Dell Latitude E6510 (Core i7 M620, siêu phân luồng 2 + 2, 2,66 GHz, 4 GB, Ubuntu Linux , Rượu 1.6).  Dữ liệu từ 10 GB Điểm chuẩn (hệ thống 4).

Nguồn: Tiện ích sao lưu và lưu trữ nhật ký gia tăng

Bạn có thể tìm thấy một bản sao của mã nguồn trên GitHub .


Một thuật toán nén tốt hơn một chút và người chiến thắng Giải thưởng Hutter , là decomp8 (xem liên kết trên trang giải thưởng). Tuy nhiên, không có chương trình nén mà bạn thực sự có thể sử dụng.


Đối với các tệp thực sự lớn, lrzip có thể đạt được tỷ lệ nén đơn giản là hài hước .

Một ví dụ từ README.benchmark:


Chúng ta hãy tách sáu cây nhân một phiên bản thành một tarball, linux-2.6.31 đến linux-2.6.36. Chúng sẽ hiển thị rất nhiều thông tin dư thừa, nhưng cách nhau hàng trăm megabyte, lrzip sẽ rất tốt trong việc nén. Để đơn giản, chỉ có 7z sẽ được so sánh vì đó là máy nén đa năng tốt nhất vào lúc này:

Đây là các điểm chuẩn được thực hiện trên Intel Core2 lõi kép 2,53Ghz với ram 4GB sử dụng lrzip v0.5.1. Lưu ý rằng nó đang chạy với không gian người dùng 32 bit nên chỉ có địa chỉ 2GB. Tuy nhiên, điểm chuẩn được chạy với tùy chọn -U cho phép toàn bộ tệp được coi là một cửa sổ nén lớn.

Tarball của 6 cây nhân liên tiếp.

Compression    Size                 Percentage      Compress    Decompress
None           2373713920           100             [n/a]       [n/a]
7z             344088002            14.5            17m26s      1m22s
lrzip          104874109            4.4             11m37s      56s
lrzip -l       223130711            9.4             05m21s      1m01s
lrzip -U       73356070             3.1             08m53s      43s
lrzip -Ul      158851141            6.7             04m31s      35s
lrzip -Uz      62614573             2.6             24m42s      25m30s

Nó được tối ưu hóa để cung cấp tỷ lệ nén tối đa, nhưng chậm hơn rất nhiều so với các ứng cử viên gần.
Eric J.

2
@Eric J. có, nhưng câu hỏi không chỉ định tốc độ nén / giải nén;)
Alexander Riccio

3

Squee817art.com chứa các so sánh về tỷ lệ nén khác nhau. Mặc dù, như đã nêu trong câu trả lời của Nifle - bạn không thể có được tỷ lệ nén cao như vậy đối với các định dạng nhị phân.


2

Hầu hết các công cụ nén đều có cài đặt để cho phép bạn đạt được tốc độ nén cao hơn với thời gian nén / giải nén chậm hơn và sử dụng nhiều RAM hơn.

Đối với 7-Zip, tìm kiếm "Hộp thoại Thêm vào Lưu trữ" trong phần trợ giúp tích hợp để biết thêm chi tiết.


2

Bạn có thể thử 7zip với các cài đặt cực sau:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql

2

Chỉ cần kiểm tra Tóm tắt các bài kiểm tra điểm chuẩn nén nhiều tệpdanh sách nén tốt nhất bao gồm điểm chuẩn nén hoàn chỉnh.

Top 30

nhập mô tả hình ảnh ở đây

Những người thực hiện hàng đầu (dựa trên nén) trong thử nghiệm này là PAQ8 và WinRK (PWCM). Họ có thể nén thử nghiệm hơn 300 Mb xuống dưới 62 Mb (giảm 80% kích thước) nhưng mất tối thiểu 8,5 giờ để hoàn thành thử nghiệm. Chương trình số một (PAQ8P) mất gần 12 giờ và số bốn (PAQAR) thậm chí 17 giờ để hoàn thành bài kiểm tra. WinRK, chương trình có độ nén tốt thứ 2 (79,7%) mất khoảng 8,5 giờ. Không ngạc nhiên khi tất cả các chương trình được đề cập sử dụng một công cụ PAQ (giống như) để nén. Nếu bạn có các tệp có hình ảnh nhúng (ví dụ: tệp Word DOC) sử dụng PAQ8, nó sẽ nhận ra chúng và nén riêng chúng, tăng cường nén đáng kể. Tất cả các chương trình được đề cập (trừ WinRK) đều miễn phí.


1

Đặt cược tốt nhất của bạn ở đây dường như là thử nghiệm và lỗi. Hãy thử tất cả các kỹ thuật nén có sẵn của bạn trên mỗi tệp và chọn cách tốt nhất để đưa vào trang web của bạn. May mắn thay, máy tính làm điều này khá nhanh và không bị nhàm chán. Bạn có thể viết một tập lệnh đơn giản để tự động hóa quá trình để nó "tương đối không đau".

Chỉ không mong đợi phép màu - 700 mb xuống đến 30 mb chỉ không xảy ra thường xuyên. Đăng nhập tập tin như đã đề cập ở trên - có. "Tập tin trung bình của bạn" - không có cách nào.


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.