2. Introdução
No mundo dos sistemas de informação não importa o
quão rápido sejam os computadores e redes actualmente,
os utilizadores irão sempre precisar de serviços rápidos
para o volume de dados com que trabalham.
Para reduzir o volume de dados armazenados, ou
transferidos é vantajoso comprimir os mesmos para
optimizar o seu tamanha..
É aqui que entram os algoritmos de compressão de dados,
iremos abordar o RLE (Run-Length-Encoding), o seu
funcionamento, vantagens e desvantagens.
3. Como funciona o algoritmo de dados sem perdas
chamado Run Length?
• Este método é normalmente utilizado quando existem
repetições numa string de dados.
Procedimento
a a a a a a a a b b b b b b c c
a 8 B 6 c 2
Run-length encoding
4. Visão Global
Este algoritmo consiste em substituir grandes sequências de
dados por apenas um caracter seguido de um contador
que mostra o número de vezes que o caracter é repetido.
Para clarificar isso, vejamos o exemplo seguinte:
Esta sequência tem comprimento de 24 caracteres e
como podemos visualizar existem muitas repetições
Usando o algoritmo run length, iremos transformar numa
string mais curta com o seu respectivo contador de
ocorrências.
aaaaaaaaaabbbaxxxxyyyzyx
a10b3a1x4y3z1y1x1
5. a10b3a1x4y3z1y1x1
Tamanho da String: 17
Aproximadamente 70% do tamanho original
30% de compressão
Não é das soluções mais eficientes, pelo que ainda é
possível melhorar.
a10b3ax4y3zyx
O comprimento da String é agora de 13 caracteres (54% do
comprimento inicial, ou seja, 46% de compressão)
Não é necessário usar o valor 1 para apenas um caracter
6. Até ao momento a compressãodescompressão da string
não apresenta qualquer problema.
Mas, e se alterar-mos a string de caracteres para uma string
de inteiros?
75|75|75|75|75|75|10|45|58|30|30|30|30|8|8|8|8|8|3
75|6|10|45|58|30|4|30|8|5|3
Caso os contadores não tivessem sublinhados, como
identificaríamos os valores dos contadores?
Resposta: Inserindo uma FLAG!
!|75|6|10|45|58|!|30|4|30|!|8|5|3
Assim sabemos que seguido da flag vem o valor da string
original seguido do seu número de repetições.
7. Desta forma conseguimos saber que, seguido da flag, vem a
informação a comprimir seguido do seu numero de
ocorrências. Sendo o numero de ocorrências inferior a 3, não
é vantajoso colocar flag+ dados+ ocorrências, pois não
iremos reduzir espaço, podendo no pior dos caso, aumentar
o espaço ocupado.
8. Eficiência
A eficiência depende:
Numero de ocorrências de caracteres
Média comprimento de repetições
caracter
Rácio compressão = tamanho dados não comprimidos
tamanho dados comprimidos