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)