Académique Documents
Professionnel Documents
Culture Documents
2. Tipos de Compresso
No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v nculo seala al archiv o y ubicaciones correctos.
caracteres repetidos:
1. um deles indica o caracter (ou conjunto de caracteres) repetido atravs da
substituio por um caracter especial;
2. outras tcnicas indicam a freqncia de repetio de caracteres e
representam isto atravs de seqncias de bits.
No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v nculo seala al archiv o y ubicaciones correctos.
pode ser armazenado um valor de 0 a 255, ou seja, pode-se indicar, como apenas
um byte at 256 ocorrncias de caracter. Caso ocorra mais do que isso, deve-se
utilizar outra representao mais eficiente.
b) Mapeamento de Bit
Quando sabida a existncia de mltiplas ocorrncias no consecutivas de
determinado caracter no arquivo a comprimir, utiliza-se a compresso por
mapeamento de bit. Esta tcnica utiliza-se de um byte no arquivo comprimido para
indicar, atravs dos bits, a ocorrncia do caractere repetido.
Desta forma, caso desejarmos comprimir todos os caracteres a de um texto,
devemos indic-lo no mapa de bits. Cada mapa descreve 8 bytes, um por bit do
arquivo manipulado. Portanto, para letra encontrada a cada trecho de 8 bytes, ser
assinalada no mapa de bits. Por exemplo:
No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v nculo seala al archiv o y ubicaciones correctos.
c) Comprimento de Fileira
Esta tcnica aplica a indicao semelhante run-length de compresso. O formato
permite a determinao do caracter repetido:
Ce C N
onde Ce o caracter especial, C o caracter repetido e N o nmero (binrio) de
repeties. Como podemos perceber, esta tcnica tambm permite apenas a
compresso de um caracter por vez.
O algoritmo da tcnica comprimento de fileira simples como os anteriormente
analisados. Consiste no seguinte:
1. inicializa-se um contador de caracteres, destinado ao controle de cada
caracter, buscando a verificao de existncia de repetio;
2. inicializa-se um contador de repeties do caracter procurado;
3. faz-se a leitura do caracter no arquivo a comprimir;
4. incrementa-se o contador de caracteres;
caracteres.
Mas ento surge a pergunta: no h como estender este formato para permitir a
compactao de uma seqncia maior de caracteres? A resposta sim, existe a
compactao de byte inteiro , onde o nmero N ocupa 1 byte, ao invs de meio.
Neste formato estendido, o restante dos caracteres indicadores permanecem os
mesmos, sendo alterado apenas a representao do nmero de caracteres. Com a
representao de byte inteiro, a capacidade de compresso aumenta para 256
caracteres, o que permite um ganho expressivo em se tratando de longas
seqncias de caracteres.
O algoritmo para implementao da compactao de meio byte o seguinte:
1. inicializa-se um contador de caracteres;
2. procede-se a leitura do caracter;
3. verifica-se se o caracter possui a seqncia de bits a comprimir;
4. caso esteja dentro do grupo a comprimir, incrementa-se o contador e volta-se
ao passo 2;
5. verifica-se se o contador maior que 4;
6. se no for, gravam-se os caracteres lidos no arquivo comprimido e volta-se
ao passo 1, reiniciando o processo;
7. colocam-se os caracteres indicadores no arquivo comprimido e volta-se ao
passo 1.
O fluxograma para a representao do algoritmo apresentado a seguir.
No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v nculo seala al archiv o y ubicaciones correctos.
e) Codificao Diatmica
Esta tcnica de compresso permite a representao de um par de caracteres em
apenas um caracter especial. Normalmente utilizam-se tabelas com pares de
caracteres e sua freqncia de ocorrncia em determinado tipo de arquivo.
Obviamente procura-se substituir os caracteres de maior freqncia, associando a
cada dupla um caracter especial.
Em texto da lngua portuguesa, por exemplo, duplas de ocorrncia freqente so a
letra a acentuada com til seguido da letra o (o) e a letra e com acento agudo
seguido de um espao em branco ( ). A cada uma dessas seqncia deve-se
atribuir um caracter especial para nos permitir a compactao atravs da
codificao diatmica. Obviamente, estes so apenas dois exemplos de duplas de
caracteres, numa tabela normal para compactao utilizam-se mais de 20 duplas
para que seja obtida uma compresso razovel.
Para a implementao da codificao diatmica segue-se o seguinte algoritmo:
1. l-se um par de caracteres;
2. verifica-se sua existncia na tabela de pares;
3. se existente, coloca-se o caracter especial correspondente no arquivo
comprimido e volta-se ao passo 1;
4. coloca-se apenas o primeiro caracter no arquivo comprimido;
5. desloca-se o segundo caracter para a primeira posio;
6. l-se o prximo caracter e volta-se ao passo 2.
No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v nculo seala al archiv o y ubicaciones correctos.
f) Substituio de Padres
A substituio de padres semelhante codificao diatmica, pois tambm
ocorre a substituio de um conjunto de caracteres por um caracter especial.
PALAVRA => Ce
O processamento desta tcnica semelhante ao da substituio de padres, com a
diferena de que so avaliados um nmero maior de caracteres. Desta forma, so
estabelecidas tabelas de palavras de maior freqncia de ocorrncia para
substituio com o caracter especial.
A utilizao mais comum para este tipo de compresso a de arquivos de
programas de linguagens de programao. Uma vez que as linguagens contm
diversas palavras que se repetem freqentemente em programas, utiliza-se esta
caracterstica para a sua compresso.
Uma variante da substituio de padres para permitir a codificao de um maior
nmero de palavras a utilizao de dois caracteres para indicao da ocorrncia
de determinada palavra:
CN
onde C um caracter escolhido para indicar a compresso e N o nmero (binrio)
da palavra a substituir. Isso permite a codificao de at 256 palavras reservadas, o
que anteriormente era limitado ao nmero de caracteres especiais que poderamos
utilizar.
Por exemplo, as palavras reservadas begin e end da linguagem Pascal poderiam
ser, por exemplo, substitudas pelos cdigos $1 e $2 . As demais palavras
reservadas da linguagem tambm poderiam ser codificadas desta maneira,
permitindo uma compresso considervel de um arquivo de programa.
Como esta tcnica assemelha-se muito da codificao diatmica, deve tomar
como base para a programao o algoritmo e o fluxograma apresentados para
aquela tcnica. Desta forma no sero apresentados formas distintas de
programao.
g) Codificao Relativa
Valores Binrios
Como afirmado anteriormente, o fax utiliza-se desta forma de compresso,
portanto a comparao existente no ser mais entre um valor e outro, mas entre
uma linha e a seguinte. Cada linha um vetor de valores binrios, que representam
o mapa de bits do desenho da pgina. O que ser quer transmitir apenas a variao
de uma linha para outra, evitando-se a transmisso de toda a linha.
Ento, um trecho de linha binria poderia ser:
... 01001011100010101...
e a sua seguinte:
... 01001011111100001...
a diferena seria em 5 bits:
... _________MMMM_M__...
A representao da transmisso dessa diferena entre linhas pode ser feita de duas
formas: indicando a posio da mudana a partir do incio ou a posio a partir da
mudana anterior. Alm da posio da mudana, normalmente indica-se a
quantidade de mudanas de ocorreram.
Para o trecho de linha apresentado anteriormente, pode-se representar como ponto
fixo da mudana seguido da quantidade de bits alterados:
529 4 534 1
caso se fosse esta a nica alterao na linha, que normalmente possui 1728 bits,
seria uma compresso expressiva.
Comprimindo-se a partir do clculo do deslocamento, o nmero de bits a transmitir
se reduz ainda mais:
529 4 5 1
supondo que no h nenhuma alterao anterior a que est apresentada, a posio
inicial fixa e as demais relativas umas s outras, contabilizando-se apenas o
nmero de bits de distncia de uma a outra.
4. Compresso Estatstica
A probabilidade do ramo a soma das probabilidades das folhas (0,3 = 0,2 + 0,1).
Os valores binrios sero membros do cdigo formado. Para a codificao dos
prximos caracteres, basta continuarmos a construo da rvore. O prximo
caracter ser adicionado rvore:
Mais uma vez, o ramo a soma das probabilidades anteriores (0,5 = 0,2 + 0,3), e a
codificao da diviso recebeu 0 para uma derivao e 1 para outra. O objetivo
desta numerao a construo do cdigo binrio dos caracteres.
Por fim, o ltimo caracter adicionado rvore:
A probabilidade final da rvore sempre 1,0, uma vez que necessariamente devese atingir 100% das ocorrncias de caracteres, permitindo uma codificao total.
Uma vez terminada a rvore, basta a formalizao da codificao, que feita com a
leitura dos valores binrios, da raiz para as folhas. Os valores binrios lidos sero o
cdigo do percurso da raiz at a folha correspondente ao caracter que se deseja o
cdigo. A tabela de cdigos fica a seguinte:
ocorrncia:
Uma vez feito isso, divide-se a tabela em dois grupos cuja soma de probabilidades
seja igual ou semelhante. No caso da tabela acima, sero obtidos dois grupos, um
composto pelo caracter C1 e outro pelos demais. O primeiro grupo recebe como
primeiro valor de cdigo o binrio 0 e o segundo recebe 1:
O
T
tamanho
=
0,3.2
mdio
+
0,3.2
para
+
0,3.2
esta
+
codificao
0,1.2
2,0
foi:
bits
E
T
o
=
0,3.1
tamanho
+
0,3.2
obtido
+
0,3.3
foi
0,1.3
de:
2,1
bits
Para melhor ou para pior, no exemplo acima ambos poderiam ter dado 2,1 ou 2,0.
De qualquer forma, interessante tentarmos a codificao com um ou outro antes
de optarmos por uma delas. Quando comparamos as duas tcnicas, geralmente h
uma
diferena
na
codificao
que
nos
permite
aperfeio-la.
4.5.
Compresso
Fixa
Compresso
Auto-adaptvel
4.6.
Codificao
Lempel-Ziv
CCITT
V.42
bis
Assim, se C1 tiver probabilidade 0,8 e C2 tiver 0,2, sua entropia ser 0,72, e assim
sucessivamente, conforme a tabela a seguir:
dividirmos por 2, teremos 0.905 bit por caracter, menor que 1 bit por caracter no
caso de codificarmos o bit 0 para C1 e bit 1 para C2. Seguindo este raciocnio,
podemos ampliar a idia para um nmero maior de caracteres e chegaremos
concluso de que, quanto maior a cadeia, mais caracteres sero passveis de
compresso.
Desta forma, a codificao Lempel-Ziv utiliza um conjunto de regras para analisar
as cadeias de um conjunto de caracteres pr-definido. As cadeias so montadas e
codificadas medida em que so lidos os caracteres a codificar. A forma de
composio destas cadeias est descrita na tcnica V. 42 bis descrita a seguir.
A codificao Lempel-Ziv foi melhorada e utilizada como uma tcnica padro
para transmisso atravs de modems. Esta tcnica possui um tamanho mximo de
cadeia que pode variar de 6 a 250 caracteres para formao de cadeia. Existe um
dicionrio com 512 cadeias bsicas codificadas, mas este no restrito a elas.
O dicionrio de cadeias dinmico e pode ter cadeias acrescentadas e retiradas em
tempo de compresso. A formao de novas cadeias baseada na comparao das
cadeias lidas com as existentes no dicionrio. Se a cadeia lida no existe, ela
acrescentada e recebe um cdigo que a representa como cadeia comprimida.
Como o modem transmissor o que faz a compresso e o dicionrio dinmico,
como o modem receptor ir decifrar os cdigos para descomprimi-los? Simples, a
cada nova cadeia formada no transmissor so enviados os caracteres ou a primeira
subcadeia que a compe e o cdigo correspondente nova cadeia, para que exista
uma
rplica
do
dicionrio
no
receptor.
utilizada uma estrutura de dados em rvore para implementao do dicionrio de
cadeias. A partir de uma cadeia pr-definida formada uma rvore para
processamento das cadeias. Seja a cadeia pr-definida DA , a partir da qual
derivam-se as cadeias DATA e DADO. Para esta seqncia a estrutura seria: