Existem bibliotecas que determinam se um arquivo vale a pena ser compactado antes de ser transferido?

0

Eu li que às vezes arquivos como o .mp3 ou imagens compactadas não valem a pena serem compactados (com o zlib por exemplo) porque eles já estão compactados e desperdiçam mais recursos da CPU do que economizam espaço. Existem bibliotecas recomendadas que possam determinar se vale a pena compactar um arquivo antes de ser transferido?

    
por Chris 16.02.2013 / 19:49

2 respostas

1

A compactação em geral funciona removendo construções redundantes do fluxo de dados de maneira reversível.

Uma das medidas que você pode usar para descobrir quanto da data pode ser considerada redundante é a autocorrelação , em que a menor é o menos que o sinal será compressível (exceções existem dependendo do algoritmo usado).

No entanto, o algoritmo de ordem mais baixa para encontrar a autocorrelação é da ordem de O(n*log(n)) . Eu acredito que a maioria dos algoritmos de compressão são da ordem O(n) , o que faz com que seja um desperdício executá-lo em arquivos muito longos. (seria mais eficiente apenas tentar compactar e verificar o tamanho dos arquivos)

    
por 16.02.2013 / 20:22
0

No StoreBackup, você pode definir regras. Uma regra pode ser uma combinação de diferentes verificações, por exemplo. dependendo do sufixo do arquivo. Mas também há uma função especial, COMPRESSION_CHECK, que decide dependendo do conteúdo de um arquivo. Não faz muito sentido verificar todos os arquivos com COMPRESSION_CHECK, portanto, você pode definir, por exemplo. o seguinte:

  1. todos os arquivos que terminam .jpg e .mp3 não são compactados sem verificações adicionais
  2. todos os arquivos que terminam .doc e .pdf são compactados em todos os casos, sem verificações adicionais
  3. todos os arquivos menores que 1k não são compactados sem verificações adicionais
  4. todos os outros arquivos são verificados com a função COMPRESSION_CHECK

Esse é um comportamento descrito no documento mencionado.

(Você pode, por exemplo, definir regras que, além disso, nunca compactam arquivos de uma pessoa ou grupo especial para facilitar a restauração com um navegador de arquivos, mas isso não está relacionado a suas perguntas)

    
por 16.02.2013 / 20:03