1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de...
Transcript of 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de...
![Page 1: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/1.jpg)
1
Compressão de Dados
![Page 2: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/2.jpg)
2
Introdução
• Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor, da qual o original pode ser reconstituído posteriormente
• Se a informação pode sempre ser reconstituída exatamente sem qualquer distorção ou perda de informação, o processo é denominado “sem perda”
![Page 3: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/3.jpg)
3
Compressão de Imagens
• Para a codificação de imagens a ISO e o CCITT criaram dois comitês:– Joint Photograph Expert Group (JPEG) que
trata de imagens estáticas– Motion Picture Expert Group (MPEG) que trata
de imagens em movimento
![Page 4: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/4.jpg)
4
Compressão de Imagens
• Os algoritmos JPEG, MPEG, JBIG, MHEG utilizam a Transformada Direta de Cosseno (DCT)
• JPEG obtém taxas de compressão de 90 a 95 % com pouca ou nenhuma degradação
• Caso se aceite uma degradação pouco maior pode-se atingir taxas de compressão de 98 %.
![Page 5: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/5.jpg)
5
Compressão de Imagens Binárias
• O algoritmo JBIG (Joint Bi-level Image Experts Group) trata de imagens binárias, tipo FAX
![Page 6: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/6.jpg)
6
Benefícios
• Os dois principais benefícios trazidos pela compressão de dados são :– Capacidade de armazenamento de informações
crescente: o uso de compressão de dados pode aumentar significativamente a capacidade de armazenamento do sistema
– Transmissão de dados crescente: informações digitais podem ser comprimidas antes de serem transmitidas de um módulo para outro
![Page 7: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/7.jpg)
7
Finalidades
• As razões para que se comprimam dados são:– manutenção de mais dados “on line”;– redução de tempo necessário à transferência de
dados;– retardo na aquisição de mais discos;– redução do número de fitas “back-up”
![Page 8: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/8.jpg)
8
Compressão de Dados com Perdas e sem Perdas
• A compressão de Dados pode ser com perdas e sem perdas• Na Compressão com Perdas o arquivo reconstruído não
coincide com o arquivo original podendo ser utilizada quando o arquivo for para uso de seres humanos (som e imagem por exemplo)
• Na Compressão sem Perdas o arquivo reconstruído coincide com o arquivo original podendo ser utilizado por computadores
• As taxas de compressão obtidas por Compressão com Perdas são muito maiores do que aquelas obtidas por Compressão sem Perdas
![Page 9: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/9.jpg)
9
Técnicas de compressão de dados sem Perdas
• Técnicas pontuais– Supressão de “brancos”– Supressão de Repetições(“Run Lenght”)
• Codificação Estatística– Código de Huffman– Codificação Aritmética
• Codificação por dicionário– Códigos de Lempel-Ziv
![Page 10: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/10.jpg)
10
Supressão de Repetições(“Run Lenght”)
<seqüência de “escape”> <N> <K>
Exemplo :
GOOOOOOOL G~7OL
![Page 11: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/11.jpg)
11
Código de Huffman
• Criação da árvore de Huffman
• Codificação
• Decodificação
![Page 12: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/12.jpg)
12
Criação da Árvore de Huffman
1. Determinação da freqüência de ocorrência de cada símbolo;2. Criação de uma Fila de Prioridades por freqüência de ocorrência de
cada símbolo, na qual cada nó será uma raiz de árvore binária contendo um símbolo e a freqüência de ocorrência correspondente;
3. Retirada da Lista de Prioridades os dois primeiros nós e sua inclusão como filhos esquerdo e direito de um nó de agregação que não tenha símbolo mas cuja freqüência de ocorrência seja igual à soma das freqüências de ocorrência dos símbolos contidos em seus filhos;
4. Inclusão na Lista de Prioridades do nó de agregação assim criado;5. Repetição dos passos 4 e 5 até que a Fila de Prioridades contenha
um só nó, que é a raiz da árvore de Huffman;6. Atribuição do código correspondente a cada símbolo identificado
pela trajetória obtida da raiz até a folha da árvore de Huffman que contém o símbolo.
![Page 13: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/13.jpg)
13
Codificação de Huffman
• 1. Identificação na tabela de códigos de Huffman do código correspondente ao símbolo a codificar;
• 2. Substituição do símbolo a codificar pelo código correspondente.
![Page 14: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/14.jpg)
14
Decodificação de Huffman
• 1. Escolha do primeiro bit do código como bit corrente;• 2. Descida um nível na árvore de Huffman de acordo
com o valor do bit corrente (passar ao filho mais velho se o bit for 0 ou passar ao filho mais novo se o bit for 1) e atribuição ao bit corrente do próximo bit do “string” de bits do código a decodificar;
• 3. No caso de ser atingida uma folha da árvore de Huffman deve-se fazer a substituição dos bits correspondentes à trajetória até a folha pelo caractere contido nessa folha;
• 4. Repetição dos passos 2 e 3 até que termine o “string” de bits do código a decodificar.
![Page 15: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/15.jpg)
15
Exemplo de Codificação por Huffman
O exemplo que se segue mostra uma situação hipotética na qual os símbolos a considerar e respectivas freqüências são:
Símbolos $ # @ / * - + Freqüência 3 10 12 15 18 20 22
Nesse exemplo para codificar a seqüência
-@/+* se obteve como resultado 00100110011
![Page 16: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/16.jpg)
16
Símbolos $ # @ / * - + Níveis
1 3 10 12 15 18 20 22
1 13 12 15 18 20 22
2 3 10
1 25 15 18 20 22
2 12 13
3 3 10
1 25 33 20 22
2 12 13 15 18
3 3 10
1 25 33 42
2 12 13 15 18 20 22
3 3 10
1 58 42
2 25 33 20 22
3 12 13 15 18
4 3 10
1 100
2 42 58
3 20 22 25 33
4 12 13 15 18
![Page 17: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/17.jpg)
17
Codificação Aritmética
• Processo de dois passos sobre os dados
• Considera-se a existência de n caracteres, cada qual com probabilidade pi , 1< = i < = n.
• O espaço de mapeamento do código é o espaço probabilidade que vai de 0 a 1 (0% a 100%)
0 1 pi pj pn
![Page 18: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/18.jpg)
18
Codificação Aritmética
![Page 19: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/19.jpg)
19
Codificação Aritmética1 - Determina-se a probabilidade Pi1 de ocorrência do primeiro símbolo
da seqüência 2 - Escolhe-se como novo espaço de probabilidades o intervalo
compreendido entre
pjj
i
1
11
e pjj
i
1
1
3 - Determina-se a probabilidade Pi2 de ocorrência do segundo símbolo
da seqüência 4 - Escolhe-se como novo espaço de probabilidades o intervalo
compreendido entre i1-1
pjj
i
1
12
e pjj
i
1
2
5 - E assim sucessivamente 6 - A representação da seqüência é feita por dois valores: - m ou tamanho da seqüência; - identificador do intervalo;
![Page 20: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/20.jpg)
20
Passos para a preparação do emprego da codificação aritmética
– 1. Determinação da freqüência de ocorrência de cada símbolo;
– 2. Criação de uma tabela de faixas de freqüências de símbolos classificada em ordem crescente de freqüência de ocorrência de cada símbolo.
![Page 21: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/21.jpg)
21
Passos para a codificação aritmética
1. Identificação do espaço de freqüências 2. Faixa de freqüências do primeiro símbolo 3. Coordenada ou código correspondente ao primeiro
símbolo - limite inferior da faixa de freqüências 4. Nova faixa de freqüências - produto da faixa
anterior pelo limite inferior da faixa de freqüências 5. Coordenada ou código correspondente ao próximo
símbolo que é o limite inferior da faixa de freqüências desse símbolo;
![Page 22: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/22.jpg)
22
Passos para a codificação aritmética
6. Coordenada ou código correspondente a seqüência de todos os caracteres que já foram codificados que é obtida da soma do código anterior com o produto da amplitude da faixa de freqüências corrente pelo limite inferior dessa mesma faixa;
7. Repetição dos passos 4, 5 e 6 até encontrar o final da palavra a codificar(ou equivalente);
8. Substituição da palavra a codificar pelo código correspondente acompanhado do número de símbolos da palavra.
![Page 23: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/23.jpg)
23
Passos para a decodificação aritmética
1. Enquadramento do código a decodificar dentro de uma das faixas de freqüências;
2. Enquanto o número de símbolos da palavra a decodificar (ou equivalente) não for igual a zero proceder a identificação o símbolo correspondente ao limite inferior da faixa de freqüências, o decremento do número de símbolos por decodificar, a subtração do código corrente do limite inferior da faixa de freqüências e a divisão do valor obtido pela largura da faixa de freqüências do caractere recém decodificado.
![Page 24: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/24.jpg)
24
Exemplo de Codificação Aritmética
• Situação hipotética na qual os símbolos a considerar e respectivas freqüências são:
• Nesse exemplo para codificar a seqüência cace se obteve como resultado 0,257800
![Page 25: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/25.jpg)
25
Exemplo de Codificação Aritmética
![Page 26: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/26.jpg)
26
Exemplo de Decodificação Aritmética
![Page 27: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/27.jpg)
27
Codificação aritmética
• Um algoritmo simplificado para a codificação aritmética poderia ser como o que se segue, no qual a estrutura s possui três atributos relativos a faixa de freqüências de cada caractere– limite inferior – limite superior – escala ou largura da faixa
![Page 28: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/28.jpg)
28
Codificação aritmética
• Iníciobaixo 0.0alto 1.0Ler de (arquivo=entrada) cEnquanto ( c EOF )
• Converter_caractere_em_símbolo(c,s)faixa alto - baixoalto baixo + faixa * s.superior/s.escalabaixo baixo + faixa * s.inferior/s.escalaLer de (arquivo=entrada) c
Fim do Enquanto
Fim do Procedimento
![Page 29: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/29.jpg)
29
Decodificação aritmética
InícioLer de (arquivo=entrada) códigoEnquanto ( c EOF )
• Converter_código_em_símbolo(código,s)faixa s.superior - s.inferiorcódigo (código - s.inferior)/faixa
• Gravar em (arquivo=saída) sLer de (arquivo=entrada) c
Fim do Enquanto
Fim do Procedimento
![Page 30: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/30.jpg)
30
Compressão por Dicionário
![Page 31: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/31.jpg)
31
Compressão por Dicionário
• Ocorre quando, toda vez que uma frase é repetida , ela é substituída por uma referência à ocorrência original da frase
• A compactação resultante pode ser significante dependendo da redundância de informações
• Esse tipo de compressão é feita pelos códigos de Lempel & Ziv
![Page 32: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/32.jpg)
32
Códigos de Lempel-Ziv
• Os algoritmos de Lempel-Ziv utilizam duas áreas de trabalho: 1. dicionário, ou "buffer" histórico, aonde
ficam armazenadas informações codificadas, em caráter permanente.2. área da pesquisa, aonde fica o "string" a comprimir ou descomprimir.
![Page 33: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/33.jpg)
33
Códigos de Lempel-Ziv
• O método consiste em identificar, na seqüência de entrada, na área de pesquisa, a maior seqüência de símbolos armazenada no dicionário e substituí-la, na compressão, por um código. Na descompressão os códigos da área de pesquisa devem ser substituídos pelas seqüências de símbolos correspondentes do dicionário.
• Existem dois algoritmos básicos, o LZ1 e o LZ2 que diferem na estrutura do dicionário.
![Page 34: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/34.jpg)
34
Códigos de Lempel Ziv
• Lz1 ou LZ77 com variante LZSS
• LZ2 ou LZ78 com variante LZW
![Page 35: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/35.jpg)
35
Esquema de LZ1 ou LZ77
![Page 36: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/36.jpg)
36
LZ77 e LZSS
• Uma variante do LZ77 é a chamada LZSS
• O dicionário, no processo LZSS, armazena as frases na janela de texto como simples blocos contíguos de texto
• Este processo cria uma estrutura adicional na árvore de busca
![Page 37: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/37.jpg)
37
Esquema de LZ2 ou LZ78
![Page 38: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/38.jpg)
38
LZ78 e LZW• O dicionário passa a ser um "array" bidimensional• As linhas do "array" têm comprimento (número de
colunas ) variável• As primeiras linhas contêm cada qual apenas um
símbolo do alfabeto• As linhas subseqüentes contem dígrafos, trígrafos, etc.• À medida que as seqüências vão aparecendo no texto
de entrada vão sendo dicionarizadas, ou seja transformadas em linhas do "array“
• A palavra código é a maior linha do "array" dicionário cujo conteúdo coincide com a seqüência a ser comprimida
![Page 39: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/39.jpg)
39
Codificação LZW Início
velho_string ¬ b /* caractere "branco" */Ler de (arquivo=entrada) cEnquanto ( c <> EOF )
novo_string ¬ velho_string + c /* concatenação de velho_string e c */ Se (novo_string Î dicionário)
então velho_string ¬ novo_string senão código ¬ dicionário (velho_string) Gravar em (arquivo=saída) código Adicionar-ao_dicionário(novo_string) velho_string ¬ c
Fim do Se Ler de (arquivo=entrada) c
Fim do Enquantocódigo ¬ dicionário (velho_string)Gravar em (arquivo=saída) códigoFim do Procedimento
![Page 40: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/40.jpg)
40
Decodificação LZWInícioLer de (arquivo=entrada) velho_stringGravar em (arquivo=saída) velho_stringLer de (arquivo=entrada) novo_códigoEnquanto ( novo_código <> EOF )
novo_string ¬ dicionário (novo_código) Gravar em (arquivo=saída) novo_string Adicionar_caractere_a_string
(velho_string, novo_string[0]) Adicionar_ao_dicionário(velho_string) velho_string ¬ novo_string Ler de (arquivo=entrada) novo_código
Fim do EnquantoFim do Procedimento
![Page 41: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/41.jpg)
41
Exemplo de LZW
• Como exemplo do processo de codificação LZW será codificado o texto "errei erro errado" e a seguir o resultado será submetido ao processo de decodificação
![Page 42: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/42.jpg)
42
Codificação
![Page 43: 1 Compressão de Dados. 2 Introdução Compressão de dados é o processo de codificar um corpo de informações digitais dentro de uma representação menor,](https://reader035.fdocument.pub/reader035/viewer/2022062623/552fc10b497959413d8c1768/html5/thumbnails/43.jpg)
43
Decodificação