Alta compactação para arquivos (para transferência via web)?

14

Eu vi alguns arquivos altamente compactados, como 700 MB de dados compactados em torno de 30 a 50 MB.

Mas como você obtém esses arquivos compactados? Eu tentei usar software como WinRAR e 7Zip, mas nunca consegui uma compressão tão alta.

Quais são as técnicas / software que permitem compactar arquivos tão bem?

(P.S estou usando o Windows XP)

    
por rzlines 17.07.2009 / 12:28

9 respostas

11

Se o tempo gasto para compactar os dados não for um problema, você poderá otimizar o tamanho compactado usando várias ferramentas diferentes.

Compacte os dados várias vezes usando ferramentas diferentes como 7zip, winrar (para zip) e bjwflate.

(Observe que isso não significa compactar o arquivo zip repetidamente, mas sim criar vários arquivos zip alternativos usando ferramentas diferentes)

Em seguida, execute deflopt em cada arquivo para reduzir um pouco mais cada arquivo.

Por fim, execute zipmix na coleção de arquivos. Como diferentes ferramentas zip são melhores em arquivos diferentes, o zipmix escolhe a melhor versão compactada de cada arquivo de cada um dos arquivos e produz uma saída menor do que qualquer uma que as ferramentas zip poderiam ter produzido individualmente.

Você deve observar, no entanto, que não é garantido que isso funcione com qualquer tipo de mágica em seus arquivos. Certos tipos de dados simplesmente não são muito compactados, como JPEGs e MP3s. Esses arquivos já estão compactados internamente.

    
por 17.07.2009 / 12:42
12

Isso depende inteiramente dos dados que estão sendo compactados.

O texto é compactado muito bem, os formatos binários não são tão bons e os dados compactados (mp3, jpg, mpeg) não funcionam.

Aqui está uma boa tabela de comparação de compactação da wikipedia.

    
por 17.07.2009 / 12:32
7

As respostas anteriores estão erradas por uma ordem de grandeza!

O melhor algoritmo de compactação com o qual tenho experiência pessoal é paq8o10t (consulte zpaq e PDF ).

Dica: o comando para compactar arquivos_ou_pastas seria como:

paq8o10t -5 archive files_or_folders

Fonte: Utilitário de Backup e Arquivamento de Diário Incremental

Você pode encontrar um espelho do código-fonte em GitHub .

Um algoritmo de compressão um pouco melhor, e vencedor do Prémio Hütter , é decomp8 (ver link na página do prêmio). No entanto, não há nenhum programa compressor que você possa realmente usar.

Para arquivos realmente grandes lrzip pode atingir taxas de compactação que são simplesmente cômico .

Um exemplo de README.benchmarks:

Let's take six kernel trees one version apart as a tarball, linux-2.6.31 to linux-2.6.36. These will show lots of redundant information, but hundreds of megabytes apart, which lrzip will be very good at compressing. For simplicity, only 7z will be compared since that's by far the best general purpose compressor at the moment:

These are benchmarks performed on a 2.53Ghz dual core Intel Core2 with 4GB ram using lrzip v0.5.1. Note that it was running with a 32 bit userspace so only 2GB addressing was posible. However the benchmark was run with the -U option allowing the whole file to be treated as one large compression window.

Tarball of 6 consecutive kernel trees.

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
    
por 28.12.2012 / 09:38
3

O Squeezechart.com contém comparações de várias taxas de compressão. Embora, como afirma a resposta da Nifle, é improvável que você obtenha taxas de compactação tão altas para os formatos binários.

    
por 17.07.2009 / 12:38
2

A maioria das ferramentas de compactação possui configurações para permitir que você atinja uma taxa de compactação mais alta, comprometendo tempos de compactação / descompactação mais lentos e mais uso de RAM.

Para o 7-Zip, pesquise por "Adicionar à caixa de diálogo Arquivo" na ajuda integrada para obter mais detalhes.

    
por 17.07.2009 / 12:39
2

Você pode tentar o 7zip com as seguintes configurações:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql
    
por 05.04.2014 / 13:33
2

Basta verificar o Resumo dos vários testes de benchmark de compactação de arquivos que tem a melhor lista de compactação que consiste no benchmark completo de compressão.

Top 30

Top performers (based on compression) in this test are PAQ8 and WinRK (PWCM). They are able to compress the 300+ Mb testset to under 62 Mb (80% reduction in size) but take a minimum of 8,5 hour to complete the test. The number one program (PAQ8P) takes almost 12 hours and number four (PAQAR) even 17 hours to complete the test. WinRK, the program with the 2nd best compression (79.7%) takes about 8,5 hours. Not surprisingly all mentioned programs make use of a PAQ(-like) engine for compression. If you have files with embedded images (e.g. Word DOC files) use PAQ8, it will recognize them and separately compress them, boosting compression significantly. All mentioned programs (except WinRK) are free of charge.

    
por 14.01.2011 / 13:34
1

Sua melhor aposta aqui parece ser tentativa e erro. Experimente todas as suas técnicas de compactação disponíveis em cada arquivo e escolha o melhor para colocar em seu site. Felizmente, os computadores fazem esse tipo de coisa bem rápido e não ficam entediados. Você poderia escrever um script simples para automatizar o processo para que ele fosse "relativamente indolor".

Só não espere milagres - 700 mb até 30 mb não acontecem com frequência. Arquivos de log como mencionado acima - sim. "Seu arquivo médio" - de jeito nenhum.

    
por 13.06.2010 / 05:17
0
O

Nanozip parece ter a maior compactação junto com o FreeArc. Mas ainda não está na versão final. Há como a boa compactação do Nanozip atinge . Ele tem uma compactação muito alta e não leva muito tempo, verifique o Resumo dos testes de benchmark de compactação de vários arquivos , mas o FreeArc é mais rápido.

    
por 14.06.2011 / 16:30