Entendo que os métodos de compactação podem ser divididos em dois conjuntos principais:
- global
- local
O primeiro conjunto funciona independentemente dos dados que estão sendo processados, ou seja, eles não dependem de nenhuma característica dos dados e, portanto, não precisam executar nenhum pré-processamento em nenhuma parte do conjunto de dados (antes da compactação em si). Por outro lado, métodos locais analisam os dados, extraindo informações que geralmente melhoram a taxa de compactação.
Ao ler sobre alguns desses métodos, notei que o método unário não é universal , o que me surpreendeu, pois pensei que "globalidade" e "universalidade" se referiam à mesma coisa. O método unário não depende das características dos dados para produzir sua codificação (isto é, é um método global) e, portanto, deve ser global / universal, não é?
Minhas principais perguntas:
- Qual é a diferença entre métodos universais e globais?
- Essas classificações não são sinônimos?
fonte
Respostas:
Considere o seguinte pedaço de dados:
1010010110100101
Universal - esses são algoritmos de compactação genéricos que não agregam dados. Uma versão bruta da codificação de comprimento de execução se enquadra nessa categoria. A vantagem é que é muito rápido compactar e descomprimir. A desvantagem é que pode ser extremamente ineficaz com base nos dados a serem compactados.
1111111111111111 -> 16 1 (caso de sorte)
1010010110100101 -> 1010010110100101 (caso de azar)
Local - esse método consideraria segmentos menores de comprimento fixo, digamos 4, procure padrões e os comprima. Por exemplo. Esses dados contêm apenas esses dois tipos de padrões - 1010 e 0101. Esses padrões podem ser representados como 0s e 1s e os dados gerais serão uma tabela representando os mapeamentos e algo como 0101. Isso pode resultar em um tamanho muito menor. tamanho comprimido.
1010010110100101 -> 1010 0101 1010 0101 -> 0101 (0 = 1010,1 = 0101)
Global - esse método examinaria todos os dados e encontraria os padrões ótimos / muito melhores para compactar os dados. Os dados de exemplo contêm apenas um padrão 10100101 e representam-no como 00 junto com a tabela de mapeamento. Isso tem o potencial de obter o menor tamanho compactado possível, mas também é computacionalmente o mais pesado.
1010010110100101 -> 10100101 10100101 -> 00 (0 = 10100101)
fonte