2. Redundância estatística
Na teoria da informação , a redundância mede a diferença fracionária
entre a entropia H(X) de um conjunto X e seu valor máximo possível
log(|Ax|). Informalmente, é a quantidade de "espaço" desperdiçado
usado para transmitir certos dados.
A compactação de Texto é uma forma de reduzir ou eliminar
redundâncias indesejadas, enquanto as somas de verificação são uma
forma de adicionar a redundância desejada para fins de detecção de
erros .
3. Funcão densidade de probabilidade e entropia
A entropia de Shannon, é uma função matemática que corresponde intuitivamente à quantidade de
informação contida ou fornecida por uma fonte de informação. Esta fonte pode ser um texto escrito
em um determinado idioma, um sinal elétrico ou mesmo qualquer arquivo de computador (coleção
de bytes).
Do ponto de vista do receptor, quanto mais informações diferentes a fonte emite, maior a entropia
(ou incerteza sobre o que a fonte emite). Portanto, se uma fonte sempre envia o mesmo símbolo,
por exemplo a letra 'a', então sua entropia é zero , ou seja, mínima.
Na verdade, um receptor que conhece apenas as estatísticas de transmissão da fonte tem a garantia
de que o próximo símbolo será um 'a'. Por outro lado, se a fonte envia um 'a' na metade das vezes e
um 'b' na outra metade, o destinatário não tem certeza da próxima letra a receber. A entropia da
fonte, neste caso, é portanto diferente de zero (positiva) e representa quantitativamente a incerteza
que reina sobre a informação proveniente da fonte.
4. Teorema de Shannon para codificação de fonte sem ruido
O teorema da codificação da fonte (ou primeiro teorema de Shannon, ou mesmo teorema da
codificação sem ruído) é um teorema da teoria da informação , afirmado por Claude
Shannon em 1948, que estabelece o limite teórico para a compressão de uma fonte.
O teorema mostra que não se pode comprimir uma cadeia de variáveis aleatórias , quando o
comprimento desta tende para o infinito, de forma que o comprimento médio dos códigos
das variáveis é menor que l -entropia da variável fonte. No entanto, podemos ter uma
compressão com um comprimento de código médio arbitrariamente próximo à entropia
quando o comprimento da cadeia tende ao infinito.
5. Teorema da codificação da fonte
Seja uma variável aleatória , vamos definir a sequência de variáveis aleatórias i.id com
distribuição e observando o comprimento mínimo de um código para no máximo erro de
probabilidade :
Ou seja, como tende ao infinito, significa que não pode ser comprimido em menos bits
sem quase certa perda de informação. Por outro lado, podemos encontrar um código com
probabilidade de erro desprezível se aproximando desse limite arbitrariamente:
Consideramos uma sequência de símbolos provenientes de uma fonte estacionária
(sequência de variáveis i.id ), o teorema é simplificado em comprimento de um código
ótimo para:
6. Codificação de Huffman
A codificação de Huffman é um método de compressão que usa as probabilidades de ocorrência
dos símbolos no conjunto de dados a ser comprimido para determinar códigos de tamanho
variável para cada símbolo.
Uma árvore binária completa, chamada de árvore de Huffman é construída recursivamente a partir
da junção dos dois símbolos de menor probabilidade, que são então somados em símbolos
auxiliares e estes símbolos auxiliares são recolocados no conjunto de símbolos.
O processo termina quando todos os símbolos forem unidos em símbolos auxiliares, formando
uma árvore binária. A árvore é então percorrida, atribuindo-se valores binários de 1 ou 0 para cada
aresta, e os códigos são gerados a partir desse percurso.
7. Codificação de Huffman
Compressão
Para ilustrar o funcionamento do método, vamos comprimir a sequência de caracteres
AAAAAABBBBBCCCCDDDEEF. Se usarmos a forma padrão onde o tamanho da representação de
cada caractere é fixo, a menor codificação que podemos utilizar para representá-la em binário é de
três bits por caractere. Assim temos a seguinte codificação:
Gerando assim os bits:
000000000000000000001001001001001010010010010011011011100100101 para representar nossa
sequência original. Isso dá 63 bits de comprimento.
8. Para usar o código Huffman e comprimir esta sequência precisamos primeiro montar uma árvore
de Huffman seguindo os passos descritos acima. O primeiro passo é contar as ocorrências de
cada símbolo na cadeia a ser comprimida. Com isso temos:
Agora vamos montar a nossa árvore de Huffman. No diagrama abaixo marcamos em vermelho os
dois nós que serão unidos no primeiro passo. No caso os nós E e F:
9. Vemos nessa segunda imagem, em preto, os nós E e F unidos num nó que chamamos de
E+F, e que tem o peso igual à soma dos nós E e F. Este novo nó é inserido no conjunto de
nós dos quais escolheremos os próximos nós a serem unidos. Coincidentemente, neste
exemplo, os próximos nós são este novo nó E+F e o nó D, como vemos na próxima figura:
10. Continuando o processo unimos agora os nós B e C:
O nó A finalmente será unido com o nó D+E+F:
11. e a última junção dos nós A+D+E+F com o nó B+C:
Gerando nossa árvore de Huffman que agora é uma árvore estritamente binária:
12. Na árvore obtida podemos agora identificar os códigos para cada símbolo. Para isto basta
percorrer a árvore até o símbolo e "anotar" o bit correspondente às arestas que percorremos.
Por exemplo, para chegar a letra D percorremos os bits 0 até o nó A+D+E+F, depois o bit 1
para chegar em D+E+F e depois o bit 0 novamente, chegando a letra D. Assim o código
Huffman para a letra D será 010. Abaixo listamos os códigos Huffman para cada um dos
símbolos que usamos:
Agora, ao codificarmos a nossa sequência original temos:
000000000000101010101011111111010010010011001100111 totalizando apenas 51 bits. A
nossa compressão foi de 12 bits, ou cerca de 20%.
13. Codificação de Huffman
Descompressão
Generalizando, o processo de descompressão é simplesmente uma questão de se traduzir a
palavra-código de volta para os caracteres. Isso é geralmente realizado percorrendo a árvore
do código de nó em nó, conforme a orientação dada por cada bit lido da palavra-código, até
encontrar-se uma folha. Ou seja, o processo resume-se a voltar, por meio do caminho na
árvore, para a folha associada ao símbolo original.
Aplicação
A codificação de Huffman é amplamente utilizada em aplicações de compressão, que vão de
GZIP, PKZIP, BZIP2 a formatos de imagens como JPEG e PNG. Isso ocorre pela codificação ser
simples, rápida e, principalmente, não ter patente.
14. Codificação aritmética
A codificação aritmética é uma forma de codificação de entropia usada na compactação de
dados sem perdas .
-Algoritmo para compressão de dados, não-baseado em tabelas de símbolos, o codificador
aritmético elimina a associação entre símbolos individuais e palavras-códigos de comprimento
inteiro e, com isto, é capaz de praticamente igualar a entropia da fonte em todos os casos.
A partir de um modelo estatístico, constrói-se uma tabela onde são listadas as probabilidades de
o próximo símbolo lido ser cada um dos possíveis símbolos. Em geral esta probabilidade é
simplesmente a contagem de todas as ocorrências do símbolo no arquivo dividida pelo tamanho
do arquivo:
15. Codificação aritmética
Descriçao do algoritmo
A codificação aritmética pode ser descrita como se segue:
1.Cria-se um intervalo corrente iniciado com [0,1)
2.Para cada elemento da mensagem:
1. Particiona-se o intervalo corrente em sub-intervalos, um para cada símbolo do alfabeto. O tamanho
do sub-intervalo associado a uma dada letra é proporcional à probabilidade de que esta letra seja o
próximo elemento da mensagem, de acordo com o modelo assumido.
2. O sub-intervalo correspondente à letra que é realmente o próximo elemento é selecionado como
novo intervalo corrente.
3. Codifica-se a mensagem com o menor número de bits necessário para distinguir o intervalo
corrente final de todos os outros possíveis intervalos correntes finais.
16. Compressão de Áudio Digital
Compressão de Áudio ou Compressão sonora é o artefato utilizado para diminuir as
exigências intrínsecas à transmissão (largura de banda) ou armazenamento (espaço físico) do
som.
Algoritmos de compressão de áudio são usados para se obter representações digitais
compactas de sinais de áudio para efeitos de transmissão eficiente ou de armazenamento.
O objetivo central é codificar o áudio e representá-lo com um número mínimo de bits,
gerando um sinal de saída de áudio fiel ao original, que quando reproduzido não possa ser
distinguido da entrada original.
17. Compressão de Áudio Digital
Principios de compressão de Áudio:
Redundância Estatística: Mais bits para valores de amostra mais comuns, ou seja, as
amostras de áudio não têm igual probabilidade de ocorrência o que resulta numa
redundância estatística. Se se atribuir maior número de bits a valores menos frequentes
compacta-se a informação.
Redundância Temporal: Existe uma Correlação entre valores de amostras vizinhas. O sinal
áudio varia no tempo. Contudo há muitas vezes uma correlação forte entre valores de
amostras vizinhos que é removida tipicamente com técnicas como codificação preditiva ou
codificação de transformada.
18. Compressão de Áudio Digital
Normas de compressão de Áudio:
Codificadores de áudio genérico: MPEG-1; MPEG-2; MPEG-4; e AC.
Normas de compressão de áudio MPEG-1: Projetado para compactar vídeo digital bruto com qualidade de
VHS e áudio de CD sem perda excessiva de qualidade, tornando possíveis CDs de vídeo, TV a cabo / satélite
digital e transmissão de áudio digital (DAB). Inclui o popular formato de compressão de áudio MPEG-1 Audio
Layer III (MP3).
O padrão MPEG-1 consiste nas seguintes partes:
• Sistemas (armazenamento e sincronização de vídeo, áudio e outros dados juntos);
• Vídeo (conteúdo de vídeo compactado);
• Áudio (conteúdo de áudio compactado);
• Teste de conformidade (testando a exatidão das implementações do padrão);
• Software de referência (exemplo de software que mostra como codificar e decodificar de acordo com o
padrão).
19. Compressão de Áudio Digital
Alguns dos formatos de arquivo mais populares em MPEG-1 incluem .mpg, .mpeg, .mp3, etc.
Codificador de audio MPEG-1:
21. Compressão de Áudio Digital
Normas de compressão de áudio MPEG-2: O MPEG-2 inclui codificação genérica de imagens em
movimento (video) e informações de áudio associadas. Ele melhora o fator de compactação e
aprimora as capacidades do MPEG-1, de modo que o MPEG-2 é usado principalmente para vídeos
em DVD, bem como para a transmissão de televisão digital, incluindo terrestre, cabo e satélite.
O MPEG-2 também é uma compactação com perdas, no entanto, o MPEG-2 permite uma melhor
resolução.
Norma MPEG-2:
Define duas normas MPEG-2: MPEG-2 BC e MPEG-2 AAC
23. Compressão de Áudio Digital
Normas de Compressão de Áudio AC:
O codificador AC3 é largamente utilizado para transportar Áudio multi-canal em aplicações como:
• Vídeo DVD;
• TV Digital;
• TV de alta definição (HDTV);
• Aplicações de éstudio.
O codificador AC3 foi precedido por AC1 e AC2.
AC1: Utiliza modulação delta adaptativa combinada com companding analógica. Não é um codificador perceptual.
AC2: Um codificador perceptual que usa uma transformada de baixa Complexidade TDAC (Time domain alias cancellation)
transform.
Usa MDCT, MDST. Àudio de alta qualidade a um débito de 256 kbps por canal.
AC-3: Superior ao AC-2. Alta qualidade a 384 kbps/seis-canais.
27. conclusão
Após terminado o trabalho vimos que existem métodos para compressão de texto tais como
método estatistico e o método de dicionário, e para o método de dicionário concluimos que
ela Substitui uma sequência de símbolos por um ponteiro que aponta para uma ocorrência
anterior da sequência, ele usa a representação de ponteiros para codificar referências para
entradas no dicionário.
concluimos também que este método é amplamente conhecido como método Ziv-Lambel.
Indo a fundo concluimos também que Algoritmos de compressão de áudio são usados para
se obter representações digitais compactas de sinais de áudio para efeitos de transmissão
eficiente ou de armazenamento.