Compactação em Arquivos de Imagens |
| “Melhore o rendimento de seus trabalhos entendendo como funciona e qual a diferença entre sistemas de compactação com perda e sem perda.” |
| Não é difícil pensar em compactação de arquivos como sendo um arquivo que foi espremido por um programa. Afinal, os ícones dos compactadores de arquivos, como o winzip, são desenhos de morsas com pastinhas de arquivos dentro. Esses ícones nos dão a idéia de que um arquivo pode ficar menor do que ele é, facilitando seu transporte na net e ocupando menos espaço em disco.
Mas vamos com calma, nada no computador é “espremido”, pois estamos falando de informações expressas em forma de BIT, e não em alguma coisa física que possa ser espremida.
Então, você pergunta, porque o arquivo fica menor quando compactado? Vamos descobrir! |
| Compactação com perda e sem perda |
| Antes de começarmos a entender os processos, não vamos esquecer que compactação nada mais é que matemática aplicada. Aqui vou apresentar os diferentes tipos de compactação, usando de analogias e imagens gráficas, afinal, somos designers gráficos e não programadores.
Tendo isso em mente, vamos usar uma palavra - chave para entendermos como funciona a compactação. Essa palavra - chave será Informação, pois os BITs de um arquivo nada mais são do que as informações de processamento que um arquivo tem.
Quando um arquivo é compactado, significa que ele fica com um número menor de informações do que o arquivo original. Para isso, são usadas duas formas de diminuir sua informação: a compactação sem perda e a com perda.
Na compactação sem perda, o arquivo permanece com suas informações originais depois de descompactado, enquanto a compactação com perdas causa falhas, deixando o arquivo final com qualidade inferior ao original. |
Entendendo a Compactação sem perda |
| Tudo em uma imagem é informação. Temos informações de cor, de quantidade de pixel, de uso de pixeis em espaços de impressão e informação do nome do arquivo. Cada uma dessas informações é encontrada em partes distintas do arquivo de imagem e a função da compactação sem perdas é diminuir essa quantidade de informação sem que haja perda. |
![]() |
| Quando o computador lê um arquivo, ele o faz lendo suas informações de forma linear, ou seja, da esquerda para direita, identificando cada pixel como uma informação. No exemplo de leitura da imagem sem compactação, atribuímos a letra A para pixeis brancos e a letra B para pixeis pretos. Nesse exemplo didático, cada letra é uma informação, logo, nossa imagem tem 49 informações.
O que possibilita à compactação diminuir a quantidade de informação do arquivo sem que ele perca sua forma original é a leitura inteligente de informações. No exemplo, é usada a leitura por tabela e reconhecimento. O software de compactação faz uma leitura inteligente de todo o arquivo e organiza as coincidências de informação em uma tabela. A cada coincidência é atribuído um código e esse código é colocado na forma da leitura do arquivo.
Esse comportamento de leitura não está apenas em compactadores específicos. Cada extensão de arquivo diferente tem seu compactador e sua forma de leitura. A leitura por tabela é encontrada nos arquivos GIF e nas extensões que possibilitam o sistema LZW (como o TIF).
É por isso que o GIF fica cada vez menor, conforme diminuímos a quantidade de cores. Quanto menos cores houver num arquivo que irá ser compactado por tabela, maior probabilidade de coincidências de informações terá. A diminuição de cores, em alguns casos, também possibilita a alteração de BITs da imagem. |
Compactação de Cores por BITs |
| Quando falamos de cores de imagens, falamos de BITs. Os BITs são os responsáveis pela quantidade de cores que um arquivo suporta. A conta é simples: eleve o número de BITs de uma imagem a 2, e temos a quantidade de cores que uma imagem pode ter (ex: imagem de 8Bits = 28= 256 cores).
Cada pixel de uma imagem de 8 Bits equivale a 8 informações, ou seja, uma imagem com dois pixeis de 1BIT tem 2 informações, enquanto uma imagem com a mesma quantidade de pixel gravada em 8 BITs tem 16 informações. |
| Entendendo a compactação com perdas |
Quando uma imagem é uma foto ou um render 3d, é muito difícil de encontrar as coincidências de informações, pois essas imagens são dotadas de muitos degradês. Para essas imagens, a melhor forma de diminuir o arquivo é com a compactação com pedras. |
![]() |
O compressor com perdas mais usado em imagens, o sistema JPG, é tecnicamente complicado de explicar, pois ele utiliza técnicas matemáticas avançadas. No entanto, o exemplo nos dá uma pequena compreensão de como ele funciona.
Depois de fazer a leitura completa da imagem por pequenos blocos de 5 pixeis, o algoritimo descobre onde estão as áreas de degradê da imagem e exclui pontos de informação da imagem original. No exemplo acima, o compressor excluiu do degradê metade das informações da imagem, deixando-a com a metade do tamanho em arquivo.
Quando um software descompactar a imagem, ele inventará os pixeis que faltam, tendo como base a freqüência ótica dos pixeis em torno. No nosso exemplo, o primeiro pixel é branco, o terceiro tem 20% de preto. Ao abrir a imagem o descompressor colocará 10% de preto entre esses dois pixeis, e fará a mesma coisa nas lacunas restantes.
Em uma imagem com degradê perfeito como esse exemplo, o compressor funciona perfeitamente, mas nem todas as imagens são assim. Se o pixel 2 do meu degradê por algum motivo fosse vermelho, ele seria excluído e o descompressor colocaria o tom cinza 10%, desconfigurando minha imagem original.
Em fotos, essa falha fica pouco perceptível, mas conforme vamos aumentando o grau de compactação com perda do arquivo, mais os degradês da imagem começam a se confundir. Quanto mais comprimimos uma imagem, mais pixeis e informações do arquivo ele exclui e com menos qualidade fica a imagem final.
O JPG não é apenas uma extensão, mas sim um sistema de compactação, podendo ser usado em qualquer outra extensão de arquivo.
Sistemas de compactação com perdas não só excluem pontos e preenchem depois. Eles também podem funcionar como moduladores de freqüências. Por exemplo: a cor RGB (10,10,11) e a cor (10, 10, 10) são de tons visualmente imperceptíveis. Assim, o compactador transformará as duas cores em apenas um tom e aplicará a tabela de informações na imagem comprimida. Nesse caso, a compactação sem perda complementa a com perda. Em outros casos, mesmo quando um sistema exclui pontos, os pontos dos arquivos comprimidos são inspecionados por uma tabela, aumentando o grau de compactação do arquivo. |
Compactação de Vídeo |
Entendendo a definição de vídeo “várias imagens paradas que nos dão a sensação de movimento”, podemos concluir que a compactação de vídeo sem perda funciona da mesma maneira que da imagem. E, realmente, num primeiro momento, funciona. Num segundo momento, não podemos esquecer que um vídeo tem cenários, e que cenários podem ficar parados de um frame para o outro. Assim, o sistema de compactação não só faz a tabela de uma imagem individual, como faz uma tabela das tabelas encontrada em cada frame. Nos compressores de vídeo com perda existem várias técnicas. Algumas com quadros-chave (quadros com menor qualidade entre quadros com maior qualidade), outras com técnicas matemáticas que encontram cenários mesmo em movimento e diversos outros que ainda hoje estão sendo evoluídos devido à grande demanda de vídeos sendo passados pela Internet. O melhor a fazer, nesse caso, é ter as noções dadas nessa matéria e ler as especificações de cada fabricante de Codec, que podem ser encontradas em seus respectivos sites. |
Considerações sobre compactação |
1 – Utilize sempre LZW e GIF em desenhos e logotipos. (quando esses não puderem ser vetoriais) 2 – Limpe um desenho ou logotipo com Pixel-art antes de colocá-lo na net como GIF. Limpando o logotipo manualmente, você garantirá a uniformidade de algumas cores e ajudará o sistema de tabela do GIF a encontrar mais coincidências de cor. 3- Utilize as informações de BITs de sua imagem. Ex..:quando sua imagem tiver 17 cores, diminua-a para 16 com Pixel-art e grave-a em 4BITS, pois você além de ajudar na compactação da tabela de cor, usará inteligentemente os BITs de sua imagem, garantindo um arquivo menor. (Utilize esse processo em logotipos e desenhos) 4 – Sempre tenha uma imagem original para cada JPG gerado. Manipular imagens que já foram gravadas em JPG só diminuirá a qualidade da imagem, pois cada vez que um JPG é gravado, ele exclui outros pontos e não os mesmo da ultima gravação. A tendência é que a imagem sempre fique pior. 5 – Se você está criando algum game, mesmo que seja em 3d, lembre-se que quanto mais elementos iguais um cenário tiver, maior será a compactação final do arquivo. Utilize a mesma modelagem de portas, de chão, etc..; use criatividade para desenvolver pedaços de cenários reaproveitando blocos já existentes. 6- Lembre-se que Compactação por tabela é usado em TUDO que diz respeito à mídia digital. Criatividade e visão global de blocos e seções são sempre muito bem-vindas. |