Um cliente estava tentando me enviar 250 GB de arquivos. Depois de tentar várias maneiras de compartilhar os dados, ele me enviou uma pasta compactada com apenas 4 GB de tamanho. Parece muita compressão para mim - não acho que, quando fechei as coisas, reduzi mais de 20% do tamanho.
Quais são algumas taxas típicas de compressão sem perdas que se poderia ver na prática? (Ou, alternativamente, um intervalo.)
ATUALIZAÇÃO: Eu sei que é impossível dizer sem ser capaz de adivinhar o conteúdo real das informações, então talvez essa seja uma pergunta incorreta. Não consigo compartilhar os dados do cliente. Mas olhando para os XML
arquivos, há muitas frases repetidas, por exemplo
<thing>
<property="1" value="2" />
<property="3" value="4" />
<property="5" value="6" />
<property="7" value="8" />
<property="9" value="10" />
<property="11" value="12" />
<property="13" value="14" />
</thing>
o que parece bastante compressível.
compression
information-theory
isomorfismos
fonte
fonte
1000000000 null bytes
seria uma taxa de compactação de 50.000.000: 1.) #Respostas:
Meu trabalho de pesquisa sobre compactação, "Uma pesquisa sobre abordagens arquitetônicas para compactação de dados em sistemas de cache e memória principal" , mostra que a maioria das técnicas práticas em benchmarks gerais alcançam taxa de compactação ~ 2X e algumas até 4X, embora um potencial mais alto (por exemplo, ~ 16X em alguns casos) (consulte a Seção 2.2). A razão para não atingir todo o potencial é que as técnicas com maior taxa de compactação também têm maior sobrecarga (por exemplo, hardware extra que consome energia, muito processamento extra etc.) ou podem não ser suficientemente genéricas (por exemplo, compactar arquivos com todos os zeros).
fonte
Realmente depende da quantidade de redundância existente nos dados. Se todos os 250 GB fossem apenas '0', você poderia obter níveis fabulosos de compactação.
Esta página mostra alguns resultados para compactação de texto em inglês. Ele comprime 2.988.578 bytes de texto usando várias técnicas. Os três principais são: 330.571 (88,94%), 333.759 (88,83%) e 352.722 (88,20%).
Relacionando isso de volta ao seu caso: isso significa que 250 GB seriam compactados (na melhor das hipóteses) para 27,65 GB.
Então, talvez haja muitos patches repetitivos em branco nos dados?
ATUALIZAR:
Com base na sua edição, aqui está outro artigo que analisa as taxas de compactação XML . O resultado (Figura 8; captura de tela abaixo) é que eles parecem ver taxas de compressão variando de 1 (nenhuma) a cerca de 50 no máximo. Isso sugere que você está certo em suspeitar da taxa de compactação de 62,5 a 1 (250 a 4) do seu cliente.
fonte