Existe um utilitário de compressão fp8 (Fast PAQ) para o linux?

0

Estou tentando compactar um grande arquivo de imagens JPG semelhantes. O melhor algoritmo de compressão que encontrei até agora é o fp8 . Em esta pergunta , mostro meus testes e peço melhores opções. Mas o fp8 é o melhor que encontrei até agora. Reduz o meu conjunto de dados para 80% do seu tamanho, muito melhor do que qualquer outro utilitário de compressão tradicional (zip, z7, rar, tar, bz2, etc.), mesmo que ainda não seja o ideal (por favor visite essa pergunta se você tiver sugestões de melhores opções).

No entanto, o fp8 parece ser um utilitário abandonado que eu encontrei apenas para windows (eu fiz os testes rodando com o wine).

Existe alguma utilidade na implementação do algoritmo fp8 para linux?

Eu encontrei o zpaq nos repositórios do Ubuntu, que também oferecem uma implementação da compactação PAQ . No entanto, o desempenho é muito pior em imagens JPG semelhantes. É por isso que estou procurando especificamente o fp8 ou um que tenha um desempenho semelhante ou melhor com imagens JPG semelhantes.

    
por Camilo Rada 08.04.2018 / 17:45

2 respostas

2

O formato FP8 parece ter sido retirado por seu autor em favor do formato ZPAQ, e é por isso que você pode encontre novas versões:

ZPAQ is intended to replace PAQ and its variants (PAQ8, PAQ9A, LPAQ, LPQ1, etc) with similar or better compression in a portable, standard format. Current versions of PAQ break archive compatibility with each compression improvement. ZPAQ is intended to fix that. I no longer maintain the older PAQ code.

A distribuição do ZPAQ no Ubuntu parece estar muito desatualizada , então você provavelmente deseja atualizar usando a versão no site da ZPAQ: link . As versões mais recentes suportam muito mais opções sobre o comportamento de compactação (da documentação do ZPAQ ):

-mtype[Blocksize[.pre[.arg][comp[.arg]]…]]

-method type[Blocksize[.pre[.arg][comp[.arg]]…]]

With add, select a compression method. type may be 0, 1, 2, 3, 4, 5, x, or s. The optional Blocksize may be 0..11, written with no space after the type, like -m10 or -method 511. The remaining arguments, separated by periods or commas without spaces, are only allowed for types x or s, for example -mx4.3ci1.

If type is numeric, then higher numbers compress better but are slower. The default is -m1. It is recommended for backups. -m2 compresses slower but decompresses just as fast as 1. It is recommended for archives to be compressed once and decompressed many times, such as downloads. -m0 stores with deduplication but no further compression.

Blocksize says to pack fragments into blocks up to 2^Blocksize MiB. Using larger blocks can improve compression but require more memory and may be slower because each block is compressed or decompressed by a separate thread. The memory requirement is up to 8 times Blocksize per thread for levels up to 4 and 16 times block size per thread for level 5. The default Blocksize is 4 (16 MiB) for types 0 and 1, and 6 (64 MiB) otherwise.

[...]

Primeiro, tento usar -m2 a -m5 para ver se você pode obter uma compactação semelhante ( -m1 é o padrão e é projetado para um equilíbrio entre tamanho e velocidade: é equivalente a -1 em outros programas .)

Existem outros ajustes que você pode usar (verifique a documentação), mas a menos que você tenha uma configuração específica como -method x6.1.4.0.5.27.1 ("64 MiB blocos (6), comprimento variável LZ77 sem E8E9 (1), correspondência mínima comprimento 4, nenhuma pesquisa secundária (0), profundidade de pesquisa 2 ^ 5 = 32 em cada direção na matriz de sufixos (27 = 6 + 21) e 1 byte lookahead "[da documentação!]), não se preocupe isto; as configurações predefinidas provavelmente funcionam bem.

Se você absolutamente precisa ter o programa FP8 original, ele está disponível na forma de fonte no GitHub. Você precisará de git , nasm e o conjunto de ferramentas do GCC de 32 bits (os programas têm arquivos de montagem de 32 bits, o que impede que sejam criados como programas de 64 bits).

    
por 08.04.2018 / 19:03
0

Após algumas pesquisas extras, descobri que a última geração do algoritmo paq8 (do qual o fp8 era uma versão) está sendo desenvolvida no software paq8pxd. O repositório git é aqui e o histórico das versões anteriores é aqui . E testes de benchmark, binários e mais informações são frequentemente postados no tópico de ditado Paq8pxd em encode.ru.

O paq8 inclui um modelo JPG e, portanto, sua capacidade de compactar arquivos JPG de forma insana até 70-80% de seu tamanho original. No entanto, o zpaq, apesar de ser um pacote mais novo, não inclui esse modelo, explicando seu desempenho muito menor em imagens JPG.

Em relação ao zpaq, a versão nos repositórios do Ubuntu é muito desatualizada (v1.10). A versão mais recente (v7.14) pode ser encontrada aqui , e inclui um Makefile que facilita a compilação no Ubuntu . No entanto, ele ainda não inclui um modelo JPG, portanto, ele não é muito bom em arquivos jpg e é superado nesse aplicativo em particular por pacotes antigos baseados em paq8.

    
por 10.04.2018 / 03:46