Os dados podem ser compactados para um tamanho menor que o limite de compactação de dados de Shannon?


17

Eu estava lendo sobre algoritmos de compactação de dados e o limite teórico para compactação de dados. Recentemente, encontrei um método de compressão chamado "Combinatorial Entropy Encoding", a idéia principal desse método é codificar o arquivo como os caracteres apresentados no arquivo, suas frequências e o índice de permutação de caracteres representado pelo arquivo.

Estes documentos podem ajudar a explicar este método:

https://arxiv.org/pdf/1703.08127

http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf

https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019

No entanto, no primeiro documento, eu li que, usando esse método, eles podiam compactar algum texto para menos do que o limite de Shannon (eles não consideravam o espaço necessário para salvar a frequência dos caracteres e o espaço necessário para salvar a meta dados do arquivo). Pensei nisso e descobri que esse método não seria muito eficiente para arquivos muito pequenos, mas, por outro lado, pode funcionar bem com arquivos grandes. Na verdade, eu não entendo muito bem esse algoritmo ou o limite de Shannon, apenas sei que é a soma da probabilidade de cada caractere multiplicada pelo do inverso da probabilidade.log2

Então, eu tenho algumas perguntas:

  1. Esse método de compactação realmente comprime os arquivos para menores que o limite de Shannon?

  2. Existe algum algoritmo de compactação que compacta arquivos para menos do que o limite de Shannon (a resposta a esta pergunta, até onde eu sei, não é)?

  3. Um método de compactação que comprime arquivos para um tamanho menor que o limite de Shannon já existe?

  4. Se a codificação combinatória realmente comprime arquivos além do limite de Shannon, não é possível comprimir o arquivo repetidamente até atingirmos o tamanho desejado?


26
Shannon provou que você não pode comprimir abaixo do limite de Shannon.
Yuval Filmus

11
Você pode ir abaixo do limite de Shannon com compactação com perdas . Shannon apenas mostrou que você não pode compactar abaixo do limite sem perder informações . @YuvalFilmus. Como em uma imagem RGB, você pode jogar fora os bits de baixa ordem dos componentes R, G, B.
smci 10/09/18


6
@smci Isso é amplamente irrelevante em qualquer discussão sobre a teoria da compressão. Obviamente, eu posso jogar fora cada pedaço e chamá-lo de compressão.
pipe

1
Digamos que eu tenho um arquivo grande como uma imagem. Agora no modelo I mapear toda a imagem para "1" ha..I tiver compactado abaixo do limite de Shannon como toda a imagem é compactada para "1" ......
Pieter B

Respostas:


34

Na verdade, eu não entendo muito bem esse algoritmo ou o limite de Shannon, apenas sei que é a soma da probabilidade de cada caractere multiplicada pelo log2 do inverso da probabilidade.

Aqui reside o ponto crucial. O limite de Shannon não é uma propriedade universal de uma sequência de texto. É a propriedade de uma sequência de texto mais um modelo que fornece probabilidades (possivelmente dependentes do contexto) de símbolos. Ele nos diz o quão bem esse modelo pode compactar o texto, assumindo que o modelo seja preciso .

Se você usar um modelo para calcular o limite de Shannon e, em seguida, um modelo diferente para compactar, se o segundo modelo for mais preciso, poderá superar o limite de Shannon original que você calculou, mas isso não é realmente relevante.


4
Para dar um exemplo prático, se você souber que seus dados consistem em uma única letra repetida N vezes, é possível obter taxas de compressão arbitrariamente grandes (ou seja, passar de 10 bilhões de 'a' para uma tupla ('a', 10000000))
Ant

12

É trivialmente simples mostrar que você pode compactar abaixo do limite de Shannon - use um compressor trapaceiro que possui vários arquivos comuns atribuídos aos tokens. Esses arquivos são armazenados como esses tokens. (Obviamente, o compressor deve ser muito grande ou usar uma biblioteca muito grande.)

No entanto, o compressor será menos eficiente ao lidar com qualquer arquivo que não esteja na sua biblioteca, pois deve, de alguma forma, distinguir um token de uma compactação normal.

O que você não pode fazer é ter um compressor que ultrapasse o limite de Shannon em todos os arquivos .


11

1/21/31/6peuog2(1/p)

Mas se você aplicar outro modelo, obterá outra sequência de probabilidades. Fe a letra "u" é bastante rara, então sua probabilidade sobre o texto inteiro pode ser de 3%, e é a probabilidade que você precisa atribuir a esta carta usando um modelo Markov de ordem 0 .

Porém, em textos em inglês, depois que "q" geralmente vem com "u", portanto, usando um modelo de ordem 1, é possível atribuir uma probabilidade muito maior a "u" após "q", melhorando assim a taxa de compactação.

Além disso, alguns modelos emitem menos símbolos do que os de entrada; o fe LZ77 substitui as repetições de texto por referências posteriores, de modo que "abababab" se transforma em "ab [2,8]".

Quando alguém fala sobre a entropia de Shannon de alguns dados em vez de dados compactados por um modelo específico, ela geralmente significa a entropia de Shannon produzida por um modelo de ordem 0, ou seja, atribuindo a cada símbolo sua probabilidade sobre o texto inteiro. Obviamente, você pode superar essa margem aplicando um modelo mais sofisticado aos dados.


3

Outra possível interpretação do texto: o algoritmo de compactação fornecido fornecerá melhor compactação de alguns textos e pior compactação em outros. No entanto, os usuários geralmente se preocupam com alguns tipos de arquivos (páginas HTML em inglês, código de máquina 80386) mais do que outros (tabelas de números verdadeiramente aleatórios, ruído sem sentido selecionado para minimizar a repetição). Qualquer esquema de compactação será melhor na compactação de dados do mundo real com pior do que inútil na compactação de outros tipos de strings.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.