it-swarm-pt.tech

Maior compactação de arquivos (para transferência na web)?

Eu já vi alguns arquivos altamente compactados, como 700 MB de dados compactados para cerca de 30 a 50 MB.

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

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

(P.S. estou usando o Windows XP)

16
rzlines

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

Comprima os dados várias vezes usando ferramentas diferentes como 7Zip, winrar (for Zip) e bjwflate.

(Observe que isso não significa compactar o arquivo Zip repetidamente, mas 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 seleciona a melhor versão compactada de cada arquivo de cada um dos arquivos e produz uma saída menor do que qualquer outra que as ferramentas Zip poderiam ter produzido individualmente.

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

11
izb

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

O texto comprime muito bem, os formatos binários não tão bem e os dados compactados (mp3, jpg, mpeg) não.

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

12
Nifle

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

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

Dica: o comando para compactar files_or_folders seria como:

paq8o10t -5 archive files_or_folders

Archive size vs. time to compress and extract 10 GB (79,431 files) to an external USB hard drive at default and maximum settings on a Dell Latitude E6510 laptop (Core i7 M620, 2+2 hyperthreads, 2.66 GHz, 4 GB, Ubuntu Linux, Wine 1.6). Data from 10 GB Benchmark (system 4).

Fonte: tilitário de backup e arquivador de registro em diário incremental

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


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


Pois realmente arquivos grandes lrzip podem atingir taxas de compactação que são simplesmente cômicas.

Um exemplo de README.benchmarks:


Vamos separar seis árvores de kernel com uma versão separada como tarball, linux-2.6.31 a linux-2.6.36. Eles mostrarão muitas informações redundantes, mas com centenas de megabytes de distância, que lrzip será muito bom em compactação. Por uma questão de simplicidade, apenas 7z será comparado, pois esse é de longe o melhor compressor de uso geral no momento:

Estes são benchmarks realizados em um Intel Core2 dual core de 2,53 Ghz com 4 GB de RAM usando o lrzip v0.5.1. Observe que ele estava sendo executado com um espaço de usuário de 32 bits; portanto, apenas o endereçamento de 2 GB era possível. No entanto, o benchmark foi executado com a opção -U, permitindo que o arquivo inteiro seja tratado como uma grande janela de compactação.

Tarball de 6 árvores de kernel consecutivas.

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
9
Alexander Riccio

Squeezechart.com contém comparações de várias taxas de compactação. Embora, conforme declarado pela resposta de Nifle - é improvável que você obtenha taxas de compactação tão altas para formatos binários.

3
idan315

Basta verificar o Resumo dos testes de benchmark de compactação de arquivos múltiplos que possui o melhor lista de compactação que consiste no benchmark de compactação completo.

30 principais

enter image description here

Os melhores desempenhos (com base na compactação) neste teste são PAQ8 e WinRK (PWCM). Eles são capazes de compactar o conjunto de teste de mais de 300 Mb para menos de 62 Mb (redução de 80% no tamanho), mas levam um mínimo de 8,5 horas para concluir o teste. O programa número um (PAQ8P) leva quase 12 horas e o número quatro (PAQAR) até 17 horas para concluir o teste. WinRK, o programa com a segunda melhor compressão (79,7%) leva cerca de 8,5 horas. Não é de surpreender que todos os programas mencionados usem um mecanismo PAQ (semelhante a) para compactação. Se você tiver arquivos com imagens incorporadas (por exemplo, Word DOC)), usa o PAQ8, ele os reconhecerá e os compactará separadamente, aumentando significativamente a compactação.Todos os programas mencionados (exceto o WinRK) são gratuitos.

3
LifeH2O

A maioria das ferramentas de compactação possui configurações que permitem obter 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, procure "Caixa de diálogo Adicionar ao arquivo morto" na ajuda interna para obter mais detalhes.

2
Tom Robinson

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

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

Nanozip parece ter a maior compactação junto com o FreeArc. Mas ainda não está na versão final. Existe quão boa é a compressão do Nanozip . Possui compactação muito alta e não leva muito tempo, verifique o Resumo dos testes de benchmark de compactação de arquivos múltiplos , mas o FreeArc é mais rápido.

1
user712092

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 no seu site. Felizmente, os computadores fazem esse tipo de coisa rapidamente e não se aborrecem. Você pode escrever um script simples para automatizar o processo para que seja "relativamente indolor".

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

1
hotei