Conceitos gerais da compressão

23
INTRODUÇÃO À MULTIMÉDIA Compressão: conceitos gerais

Transcript of Conceitos gerais da compressão

Page 1: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Compressão: conceitos gerais

Page 2: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Motivação

• Factores relativos ao armazenamento

• Factores relativos à transmissão

• …

Page 3: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Processo

• Função realizada sobre dados antes da operação:

– Codificador da Origem (Source Coder)

– Descodificador do Destino (Destination Decoder)

• Usada para reduzir o volume de informação

Page 4: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

A redundância • O objectivo da compressão é de reduzir ao máximo o

volume de armazenamento e de transferência de informação, mantendo no entanto a capacidade de restituir a integridade dessa informação. Pelo menos quando trabalhamos em compressão sem perdas.

• Como reduzir o volume de dados digitais sem degradar a informação ou, pelo menos, só a degradando de forma imperceptível e controlável?

• Constatando que a quase totalidade de dados que tratamos - imagem, texto, som - apresentam uma distribuição não uniforme de símbolos ou de sequencias de símbolos.

Page 5: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

A redundância• Texto:

– Os caracteres que utilizamos não apresentam a mesma probabilidade de aparecimento. Todo o texto apresenta uma estrutura interna forte, determinada pelas regras sintéticas, semânticas e gramaticais. Regras implicam regularidade e consequentemente formas repetitivas e redundância.

• Som: – Se analisarmos um trecho de musica, constatamos

rapidamente que a distribuição das probabilidades de aparecimento de sons não é mais uniforme que a das letras num texto. Também eles seguem regras ou leis de construção.

Page 6: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

A redundância• Imagem:

– Quando manipulamos imagens constatamos evidentemente que elas apresentam regularidades: longas séries de pixeis idênticos, ou quase idênticos: no céu azul, nas nuvens brancas, na relva verde; estruturas repetitivas; composição geral da imagem, etc. Tratam-se neste caso de redundância espaciais, i.e., motivos repetitivos no mesmo espaço.

• Vídeo: – Logo que utilizamos sequencias de imagens, as redundância

temporais vem juntar-se as redundância espaciais. De uma imagem à seguinte, e numa ordem de 25 imagens por segundo, muitos dos elementos mantém-se idênticos. Por exemplo, numa entrevista televisiva, uma grande parte da imagem (o fundo) mantém-se idêntica durante vários segundos.

Page 7: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

A redundância

• São estas redundância espaciais e temporais que permitem a compressão dos dados, isto e, a remoção de dados inúteis. Para tirar partido destas redundância podemos usar algoritmos mais ao menos complexos, fundados sobre técnicas matemáticas quase sempre sofisticadas (compressão JPEG, MPEG, Wavelets, fractais, etc.).

Page 8: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Os parâmetros da compressão • O parâmetro chave de um algoritmo de compressão é a

taxa de compressão, a qual define a sua performance.• Este é calculado como a relação entre o tamanho do

ficheiro original (Fo) e o tamanho do ficheiro comprimido (Fc) .

• Utilizamos geralmente para representar esta relação uma noção do tipo N : 1 que indica que o volume dos dados de origem foi dividido por N. Por exemplo 10 : 1 significa que o tamanho do ficheiro original foi dividido por 10.

• Outros parâmetros que caracterizam igualmente um algoritmos de compressão são a sua velocidade e a qualidade de restituição do documento original.

Page 9: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Simetria e assimetria• Um sistema de compressão supõe um algoritmo de compressão e um de

descompressão (codec) . • Estes algoritmos apresentam normalmente uma certa assimetria no que diz

respeito ao tempo e a qualidade de compressão.• A velocidade, que define o tempo necessário ao processo de compressão /

descompressão, pode ser simétrico quando o tempo necessário a compressão é equivalente ao tempo necessário a descompressão.

• Para a maior parte dos medias digitais, a velocidade é assimétrica: o tempo de compressão e mais longo do que o tempo de descompressão (para gravar em CDROM, aplicações de vídeo a pedido, etc) .

• Note-se igualmente que velocidades assimétricas autorizam em geral um melhor debito, ou taxa de compressão.

• No caso de aplicações multimédia em tempo real (vídeo-conferência, streaming de áudio e vídeo em tempo real, etc) temos necessidade de compressores rápidos. O tempo de compressão e nestes casos quase igual ao tempo de descompressão.

• Em geral, esta velocidade simétrica reduz a taxa de compressão.• Assim, simetria e assimetria podem influenciar a qualidade de compressão.

Page 10: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Adaptabilidade• A adaptabilidade refere-se à característica do

processo/algoritmo de se adaptar aos dados de entrada. É possível identificar segundo este aspecto as seguintes variações:– Não-adaptativos – em geral, baseiam-se em dicionários

estáticos definidos à priori em função de estatística de frequência de dados. Um dicionário de codificação/compressão é na essência uma tabela que associa símbolos a códigos de menor tamanho.

– Adaptativos - não se baseiam em dicionário predefinidos, construindo o dicionário em função dos dados de entrada.

– Semi-adaptativos –em geral é efectuado em dois passos. No primeiro é efectuada uma estatística da entrada, gerando um dicionário. Na segunda fase é efectuada a codificação/compressão propriamente dita.

Page 11: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Compressão com perdas e sem perdas

• Compressão sem perdas (lossless) busca reduzir a quantidade de dados, mas no destino uma cópia exacta dos dados originais são recuperados, a compressão é reversível.– O algoritmo de compressão é reversível (Fd = Fo) .– Transferência de texto, ficheiros binários, etc.

• Compressão com perdas (lossy) busca permitir a recuperação de uma versão dos dados originais que são percebidos pelo utilizador como sendo parecidos o suficiente com o original. PERDA DE DADOS!– Transferência de imagens digitais, áudio, vídeo, pois o olho e ouvido

humanos não são capazes de perceber pequena perda de qualidade no sinal.

– O algoritmo de compressão é irreversível, pois ele não permite a partir do ficheiro descomprimido (Fd), encontrar na integralidade o ficheiro original (Fo =~4 Fd).

Page 12: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão

• Codificação em sequência (Run-Length Coding - RLC)– Uma técnica de compressão sem perdas

– Usada quando o sinal a ser codificado contém uma longa sequência de bits repetidos.

– Sequência de bits substituída pelo bit e indicação de quantidade do mesmo. 000000011111111110000011 …0,7,1,10,0,5,1,2…

Page 13: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação Estatística

– Modelos de codificação utilizam o mesmo número de bits por valor. Alguns símbolos aparecem com maior frequência que outros. Símbolos que aparecem com maior frequência podem usar menos bits que aqueles que aparecem com menor frequência.

– Num texto a letra ‘A’ aparece com maior frequência (probabilidade) que a consoante ‘P’,que aparece com maior frequência que ‘Z’…

– Utiliza-se uma codificação com número de bits variável, de modo que na média se necessita menos bits para codificar o mesmo conteúdo.

Page 14: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação Estatística

– Método de Huffman• Codificar com o menor numero de bits os símbolos em que a

frequência de aparição e a maior.• Os primeiros elementos de uma palavra código (o prefix) não

pode constituir uma outra palavra de código (código prefixo) . Exemplo: ABRACADABRA -> 8bits x 11 símbolos = 88 bits A -> 5 -> 0 B -> 2 -> 10 R -> 2 -> 110 C -> 1 -> 1110 D -> 1 -> 1111

Resultado: 01011001110011110101100 -> 23 bits

Page 15: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação Estatística

– Método de Huffman• O algoritmo de Huffman consiste em partir de uma analise estatística do

conteúdo do ficheiro, atribuir aos símbolos mais frequentes os códigos binários o mais curto possível, reservando os códigos mais longos aos símbolos que aparecem menos vezes.

• Este tipo de codificação obriga a criação de tabelas de frequências que terão de ser transmitidas visto que são necessárias para a descodificação.

• Para aplicar a um ficheiro o algoritmos de Huffman temos de percorrer as seguintes etapas:

1. Leitura do ficheiro para calculo da frequência de ocorrência de cada símbolo.2. Classificação dos símbolos em função da sua frequência de ocorrência.3. Reagrupamento sequencial dos pares de símbolos de menor frequência, voltando

a executar a classificação, se necessário.4. Atribuição de um código a cada símbolo: atribui-se um 0 ou um 1 a cada

elemento antes de reagrupa-lo; O código de cada símbolo será constituído pela sequência (lida da direita para a esquerda) de 0 e 1 que se encontram no caminho de reagrupamento do símbolo.

5. Codificação final.

Page 16: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão

• Codificação Estatística

– Método de Huffman

• Codificar a sequencia: AMORE MORE ORE RE

• O alfabeto será constituído por seis símbolos: A, E, M, O, R, Espaço. Para comprimir esta sequência de dados usando o algoritmo de Huffman segue-se cada uma das etapas acima descritas.

Page 17: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação Estatística

– Método de Huffman• Etapa 1: Estabelece a frequência de ocorrência de cada símbolo.

f (A) = 1; f (E) = 4; f (M) = 2; f (O) = 3; f (R) = 4; f (Espaço) = 3

• Etapa 2:Classificação dos símbolos por ordem decrescente de frequência. Símbolo i Frequência fi E 4 R 4 O 3 Espaço 3 M 2 A 1

Page 18: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão

• Codificação Estatística

– Método de Huffman

• Etapa 3: Agrupamento das duas frequências mais pequenas, voltando a executar a classificação anterior, se necessário.

Page 19: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão

• Codificação Estatística

– Método de Huffman

• Etapa 4: Atribuição do código. Para encontrar o código de cada símbolo, identificamos o seu caminho da direita para a esquerda, e recuperamos os 0 ou os 1 que se encontram pelo caminho.

Page 20: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação Estatística

– Método de Huffman• E 01

R 10 O 11 Espaço 000 M 0010 A 0011

• Etapa 5: Compressão da cadeia: AMORE MORE ORE RE 0011001011100100000101110010001110010001001

• Nota: Independentemente da atribuição de 0 ou 1, este método encontra sempre a compressão mínima. Ou seja, quando temos por exemplo 3 símbolos frequências iguais e mínimas numa dada fase, podemos agrupar os 2 símbolos que entendermos.

Page 21: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Algoritmos do tipo dicionário

– Os métodos de compressão baseados em dicionários são caracterizados principalmente por :

• Não necessitarem de conhecer a estatística dos dados a N comprimir.• Não usarem códigos de comprimento variável.• Utilizarem sequencias de símbolos de comprimento variável.• Muitos dos programas de compressão de dados mais conhecidos baseiam-

se nestas técnicas: pkzip, zoo, arj, compress, gzip, ... • A sua invenção deveu-se a Jacob Ziv e Abraham Lempel (J. Ziv and A.

Lempel, A universal algorithm for sequential data compression, IEEE Trans. on Information Theory, 1977, 23, pp. 337-343), em finais dos anos 70: LZ77 e LZ78. Desde então, muitas variantes foram propostas: LZH, LZSS,LZW (Lempel, Ziv, Welch). Este ultimo método deve-se a Terry Welch que em 1984 publicou um artigo onde alguns dos problemas associados a compressão LZ78 foram eliminados.

• Este e o algoritmo de compressão sem perdas mais utilizado. Pode ser usado para comprimir texto, codigo binario, codigo executavel, imagens (GIF, TIFF, PostScript).

Page 22: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação por Diferença

– Usado quando a amplitude de um sinal pode assumir valores numa gama larga, porém a diferença de amplitudes de valores sucessivos é relativamente pequena.

– Ao invés de usar um grande numero de bits para representara amplitude do sinal, apenas a diferença para o valor anterior é armazenado, com um número menor de bits.

– Pode acarretar compressão com perdas ou sem perdas, dependendo do número de bits escolhidos serem suficientes para armazenar a maior das diferenças entre amplitudes sucessivas.

– Um sinal que requer 12 bits para ser codificado pode ter diferenças com não mais de 3 bits, o que acarreta uma economia de 75% na quantidade de bits resultante da codificação das amostras.

Page 23: Conceitos gerais da compressão

INTRODUÇÃO À MULTIMÉDIA

Técnicas de Compressão• Codificação por Transformadas

– Envolve a transformação da informação original de um formato para outro mais apropriado para compressão.

– Não existe perda pela transformação em si.– Muito usado para compressão de imagens e vídeo.– A taxa de mudança na magnitude dos valores dos pixels na

matriz define o que denominamos frequência espacial, que pode ser horizontal e vertical.

– O olho humano é menos sensível às componentes espaciais de mais alta frequência. Seria vantajoso converter os valores espaciais originais em valores baseados em componentes de frequência espacial, já que pode-se eliminar mais facilmente as componentes que pouco contribuem para a inteligibilidade da imagem, diminuindo a quantidade de informação a ser processada.