quinta-feira, 1 de fevereiro de 2024

Experimentos com Compressão de Textos

Inspirado num artigo no Hacker News, resolvi fazer uns experimentos com textos.

Baixei o livro Amor de Perdição (Camilo Castelo Branco) do Projeto Gutenberg. Dizem que minha avó lia escondida esta lasciva obra quando ainda andava de pés descalços pelos campos de Alquerubim.

O arquivo está codificado em UTF-8 e ocupa 310KB. Usarei números aproximados apenas.

O gzip reduz o arquivo a 121KB. Com minúsculas apenas, o gzip o reduz a 118KB. Miseros 3KB que representam uma pífia economia de 2,5%.

E se eu quiser guardar as maiúsculas para restaurar o arquivo? O problema é que só as maiúsculas ocupam quase 7KB.

Mesmo ante o fracasso iminente, prossegui com meu plano insensato e pouco elaborado: troquei todas as maiúsculas por traços baixos e coloquei todas as maísculas no início do arquivo. O plano era trocar um a um os traços baixos pelas letras do cabeçalho após a descompressão.

O resultado final comprimido ocupa 124KB. Logo, não há vantagem nenhuma nesse tipo de codificação.

Usar apenas uma caixa (alta ou baixa, tanto faz) realmente economiza espaço, embora não seja surpreendente. Encontrar uma maneira de restaurar o texto original é um pouco mais complicado.

Experimentei também colocar as maiúsculas no fim, mas como minúsculas; afinal, terei a certeza de que tudo o que estiver na última linha tem que ser caixa alta. O resultado supreendeu: 122KB compactados. O arquivo ficou apenas 1KB maior que o original compactado.

Talvez ainda haja algo a fazer com os espaços.

Nenhum comentário:

Postar um comentário