3 pontos por GN⁺ 2025-02-03 | 1 comentários | Compartilhar no WhatsApp
  • BZip3 é o sucessor do BZip2 e oferece taxa de compressão e desempenho superiores.
  • Usa um codificador entrópico de mistura de contexto Order-0, código rápido de transformação Burrows-Wheeler, além de RLE e passagens de Lempel Ziv+Prediction baseadas em correspondência de strings no estilo LZ77 e modelagem de contexto no estilo PPM.
  • É excelente para compressão de texto ou código.
  • Benchmark com código-fonte em Perl
    • Após baixar e descompactar todas as versões do Perl5, foi feito um teste de compressão dos arquivos .tar usando vários compactadores.
    • O BZip3 mostrou melhor desempenho de compressão em comparação com outros compactadores em várias configurações.
    • No tempo de descompressão, o BZip3 também apresentou ótimo desempenho por meio de processamento paralelo.
  • Aviso legal
    • Não se responsabiliza por perda de dados causada pelo uso do BZip3.
    • O desempenho do BZip3 depende bastante do compilador, e a build x64 Linux clang13 pode atingir até 17MiB/s de compressão por thread e 23MiB/s de descompressão.
    • Testado em várias arquiteturas: x86, x86_64, armv6, armv7, aarch64, mips, sparc etc.
  • Licença
    • O BZip3 é licenciado sob LGPLv3.
    • O código de transformação Burrows-Wheeler e LZP usa licença Apache 2.0.
    • Outros componentes de compilação e de tempo de execução seguem suas respectivas licenças.

1 comentários

 
GN⁺ 2025-02-03
Comentários do Hacker News
  • Já implementei a Burrows-Wheeler Transform várias vezes, mas ainda é difícil ter uma intuição clara de por que ela funciona
    • Esse algoritmo continua sendo sempre impressionante
  • Compartilha resultados de benchmark de compressão com código-fonte em Perl
    • Compara tempo de compressão e descompressão, além do uso de memória, de xz, bzip2, bzip3 e zstd
    • A diferença no uso de memória chama atenção: 8M contra 18301M
  • O autor que escreveu um programa em Malbolge, uma linguagem de programação difícil, é realmente impressionante
  • No passado, recomprimi dados com bzip, mas depois percebi que esse formato ficou obsoleto e se tornou difícil descompactar
    • Agora uso formatos ineficientes que devem durar por muito tempo
  • As melhorias no BWT são excelentes
    • Acho que há grande potencial para melhorias de compressão de "longo alcance"
    • É necessário encontrar similaridades de forma eficiente em conjuntos de dados de vários GB
  • Há um pequeno pedido para que seja gravado um bloco de cabeçalho ou de cauda registrando a eficiência da compressão
    • O bzip2 não faz isso, mas o gzip faz
  • É estranho que o bzip3 ainda não esteja listado em grandes benchmarks de compressão de texto
  • Há uma pergunta sobre comparação com compressores baseados em BWT
  • Foi proposta a ideia de comprimir primeiro repetições longas da entrada e passar apenas os blocos literais pelo BWT
    • Esse método pode ser pior do que a modelagem de contexto padrão do PPM ou do Brotli
  • Algoritmos de alta compressão são uma área muito especializada
    • Usar zstd ou brotli em configurações baixas pode reduzir transferências de rede ou armazenamento e aumentar a velocidade
    • Com a quantidade de RAM moderna, zstd e brotli conseguem aproveitar correspondências de longo alcance com eficiência