1. CONCEITO
A compressão de dados é o ato de reduzir o espaço ocupado por dados num determinado dispositivo. Essa operação é realizada através de diversos algoritmos de compressão, reduzindo a quantidade de Bytes para representar um dado, sendo esse dado uma imagem, um texto, ou um arquivo (ficheiro) qualquer.
Comprimir dados destina-se também a retirar a redundância, baseando-se que muitos dados contêm informações redundantes que podem ou precisam ser eliminadas de alguma forma. Essa forma é através de uma regra, chamada de código ou protocolo, que, quando seguida, elimina os bits redundantes de informações, de modo a diminuir seu tamanho nos ficheiros. Por exemplo, a sequência "AAAAAA" que ocupa 6 bytes, poderia ser representada pela sequência "6A", que ocupa 2 bytes, economizando 67% de espaço.
Além da eliminação da redundância, os dados são comprimidos pelos mais diversos motivos. Entre os mais conhecidos estão economizar espaço em dispositivos de armazenamento, como discos rígidos, ou ganhar desempenho (diminuir tempo) em transmissões.
Embora possam parecer sinônimos, compressão e compactação de dados são processos distintos. A compressão, como visto, reduz a quantidade de bits para representar algum dado, enquanto a compactação tem a função de unir dados que não estejam unidos. Um exemplo clássico de compactação de dados é a desfragmentação de discos.
2. VANTAGENS
A vantagem dos métodos de compressão com perda de dados sobre os sem perda de dados
é que normalmente consegue-se um ficheiro comprimido de menor dimensão,
mantendo, no entanto, uma qualidade mínima em relação ao original,
conforme o objectivo que se pretende.
A compressão com perda de dados é normalmente usada em som, imagens e vídeo/animação. A razão de compressão (ou seja, a dimensão do ficheiro comprimido comparado com o original, ou por comprimir) dos
codecs
de vídeo é quase sempre superior às obtidas em som e imagens fixas. O
som pode ser comprimido a uma razão de 10:1 (o ficheiro comprimido ocupa
1 décimo do original), sem perda muito notável de qualidade, como
ocorre com o formato de som em MP3 ou WMA (windows media audio), com
taxas de até 320 Kbps de áudio (um CD contém dados de áudio a 1411,2
Kbps). Já o vídeo pode ser comprimido a uma razão 300:1. As imagens
fixas são normalmente comprimidas a uma razão de 10:1, tal como no som,
mas neste caso a qualidade é bastante afetada, optando-se normalmente
por uma razão menor, 2:1, por exemplo.
Quando um utilizador recebe um ficheiro comprimido com perda de dados, (por exemplo, para reduzir o tempo de
download), esse ficheiro posteriormente descomprimido pode ser bem diferente do original ao nível do bit
e, no entanto, ser quase idêntico numa observação normal para o olho ou
ouvido humano. Muitos métodos /algoritmos de compressão recorrem a
limitações da anatomia humana tomando em conta, por exemplo, que o olho humano apenas pode visionar certas freqüências da luz. O modelo psicoacústico
descreve como o som pode ser muito comprimido sem que se perceba a
degradação da qualidade do sinal sonoro. Os erros/falhas, causados pela
compressão com perda de dados, que sejam perceptíveis para o olho ou
ouvido humano são conhecidos por artefactos de compressão.
3. TIPOS DE COMPRESSÃO
Compressão com perdas:
- Definido como operação que admite alguma perda de qualidade dos dados
- A informação é comprimida por algum algoritmo e, ao descomprimir, a informação é diferente da original, mas suficientemente parecida para que seja útil
- Exemplo típico: a maioria das imagens .jpg na internet em que se percebe uma diminuição da qualidade próximo às bordas ou trocas de cor na imagem
- Dependendo do algoritmo aplicado, essa compressão sofre de perda constante
- Perdem-se dados sucessivamente, à medida em que se aplica o algoritmo várias vezes, ao comprimir e descomprimir. Isso resulta numa maior perda de dados do que a aplicação do algoritmo de uma só vez
- Existem dois esquemas básicos de compressão:
- Métodos de Transformação
- Métodos Preditivos
- Em alguns sistemas, as duas técnicas são combinadas.
Compressão sem perdas:
- Definido como uma operação sem perdas de nenhum dado
- A informação é comprimida por algum algoritmo e, ao descomprimir, todas as informações são recuperadas
- Exemplo típico: ficheiros bzip, gzip, .gz
- Os mais conhecidos são o .zip ou .rar.
-
Ele é usado quando é importante que a informação original e a descompactada sejam idênticas
- Ex.: executáveis e documentos texto
- E com relação às imagens?
- Alguns formatos usam apenas esse tipo. Ex. PNG e GIF*
- Outros formatos usam ambos. Ex.: TIFF e MNG
- Outros formatos usam algoritmos com perdas. Ex.: .bmp, .jpeg
Técnicas de Compressão de dados sem perdas:
- Antes de se utilizar a técnicas de compressão, é necessário saber qual o tipo de informação que será compactada.
- Texto
- Imagens
- Sons
- Algoritmos de compactação de textos não são eficientes na compactação de sons.
- Existem basicamente dois tipos de algoritmos de de compressão sem perda de dados :
- Algoritmos de Modelos Estatísticos:
- Transformação de Burrows-Wheeler
- LZ77
- LZW
- Algoritmos codificados que produzem seqüência de bits:
- Codificação Aritmética ou Freqüência de Caracteres
- Codificação de Huffman
- Existem algoritmos que são mesclas dos dois tipos de algoritmos. Ex.: o algoritmo DEFLATE utiliza uma combinação do algoritmo LZ77 e de Huffman.
4. SOFTWARES
5. ESTUDO DO CASO: .ZIP
ZIP é um formato de compactação de arquivos muito difundido pela Internet.
Atualmente o formato já tem compatibilidade nativa com vários sistemas
operacionais, como o Windows da Microsoft, que já permite compactar e descompactar arquivos no formato ZIP sem o uso de softwares adicionais (externos) instalados.
6. ESTUDO DO CASO DE COMPRESSÃO DE IMAGENS: .JPG
O formato
JPEG, cuja sigla significa
Joint Pictures Expert
Group, teve sua primeira especificação disponibilizada em 1983
por um grupo que leva o mesmo nome. É um dos padrões mais populares
da internet por aliar duas características
importantes: oferece níveis razoáveis de qualidade de
imagem e gera arquivos de tamanho pequeno quando comparado a outros
formatos, facilitando o seu armazenamento e a sua
distribuição.
O JPEG possibilita isso porque é um formato que utiliza
compressão de imagens. Mas, o que é isso? Em poucas
palavras, compressão consiste na eliminação de
dados redundantes nos arquivos. No caso de imagens, é
possível fazer a compressão de forma que a retirada de
informações não prejudique a qualidade (
lossless -
sem perda), assim como é possível utilizar níveis
maiores de compressão que causam perdas visíveis (
lossy -
com perda).
Este último é o que acontece no JPEG: neste formato,
quanto maior o nível de compressão, menor será o
tamanho do arquivo, porém pior será a qualidade da
imagem. O nível de compressão pode ser determinado em
programas de tratamentos de imagens. Cada vez que uma mesma imagem JPEG
é salva, costuma-se perder qualidade, já que,
geralmente, o software utilizado para tratá-la aplica
compressão, mesmo que mínima, toda vez que esta
ação é realizada.
JPEG com menor taxa de compressão
A mesma imagem, mas com maior compressão
O JPEG é capaz de trabalhar com quase 16,8 milhões de
cores (24 bits). Essa característica, aliada à capacidade
de compressão que reduz o tamanho dos arquivos, faz do formato
uma excelente opção para a distribuição de
imagens fotográficas, tanto que o formato é muito
utilizado para a geração de imagens em câmeras
digitais. Isso porque, mesmo havendo perda de qualidade, esta ocorre de
maneira pouco ou nada perceptiva, desde que, é claro, não
haja "abuso" do uso de compressão nem salvamentos frequentes. No caso de atividades
profissionais, é recomendável o uso de formatos que
preservam a qualidade.
Arquivos em JPEG geralmente são utilizados com as
extensões .jpg (mais frequente) e .jpeg, podendo haver outras de
acordo com os algoritmos utilizados.