Como posso especificar que os arquivos de pedidos devem ser compactados em 7zip?

5

Eu tenho um conjunto de arquivos que eu gostaria de compactar que eu sei ser repetitivo e compressível, mas 7zip escolhe uma ordem não-ideal para compactar os arquivos e não consegue tirar proveito de sua compressibilidade. Como posso obter o 7zip para compactar os arquivos em outro pedido?

Os arquivos que eu quero compactar são os seguintes:

  • Um PDF de 200 MB contendo um grande número de JPGs incorporados
  • 190 MB de JPGs, todos eles incorporados separadamente no PDF
  • Cerca de 500MB de outros diversos moderadamente compressíveis arquivos

Eu sei que é possível que o 7zip aproveite a repetição entre o PDF e os JPGs nus porque quando eu arquico apenas o PDF e os JPGs juntos, obtenho uma taxa de compressão de 47%. Mas quando eu tento incluir os 500MB de outros arquivos, o 7zip comprime os JPGs primeiro, depois os diversos outros dados, e quando chega ao PDF, o algoritmo de compressão deve ter 'esquecido' os JPGs porque o PDF dificilmente comprimido em tudo.

Com 7-zip 9,32 alpha, usando o formato de arquivo 7z, nível de ultra compactação, algoritmo LZMA2, tamanho do dicionário de 256MB, tamanho de 128 palavras, tamanho de bloco sólido de 4GB e 2 threads de CPU, obtém as seguintes taxas de compactação:

  • apenas PDF: 93%
  • Apenas JPGs: 95%
  • PDF e JPG juntos: 47%
  • Misc. somente arquivos: 44%
  • Misc. arquivos e PDF: 55%
  • Misc. arquivos e PDF e JPGs: 63%

Desde o misc. os arquivos são compactáveis a 44% do seu tamanho original, e os PDFs e JPGs juntos são compactáveis para 47%, eu esperaria que tudo junto fosse compressível em algum lugar na extremidade inferior de 44-47%, mas devido à má ordenação de arquivos por 7zip, eu recebo um resultado significativamente pior.

Eu tentei alterar a ordem 7zip comprime arquivos jogando com a criação de arquivos, modificação e datas de acesso. Eu tentei mover os arquivos para outra pasta e copiá-los de volta para que eles sejam reescritos no disco consecutivamente. Eu até tentei arquivar todos os JPGs em um arquivo zip com compactação no nível da loja, para que o tamanho do arquivo correspondesse aproximadamente ao PDF. Não importa o que eu faça, não consigo fazer o 7zip compactar o PDF e os JPGs sem o misc. arquivos entre.

Alguma ideia? Não consigo aumentar o tamanho do dicionário devido a restrições de memória.

    
por Sam Page 04.02.2014 / 05:25

2 respostas

2

Consegui resolver esse problema. A solução foi criar um arquivo contendo apenas os arquivos diversos, e depois disso selecione "adicionar ao arquivo" no menu de contexto do explorador enquanto seleciona o PDF e JPGs. Na caixa de diálogo "Adicionar ao arquivo" de 7zip, escolhi as mesmas configurações de compactação e nome de arquivo de antes.

Isso compactou o PDF e os JPGs juntos - aproveitando ao máximo sua redundância - e os adicionou ao arquivo existente. Isso resultou em uma taxa de compressão geral de 45%, exatamente o que eu estava procurando.

    
por 05.02.2014 / 04:25
0

PDFs e JPGs são compactados. É muito mais difícil compactar um arquivo já compactado do que um não compactado. Então, não, o algoritmo de compressão não está sendo "esquecido" - é mais semelhante a jogar um arquivo zip em outro arquivo zip (muito pouco acontece na compressão).

    
por 04.02.2014 / 06:18