auretyyla03b-compressao

4
1 Organização de arquivos para desempenho técnicas de compressão como organizar arquivos de modo que fiquem menores. técnicas de compactação como recuperar espaço não utilizado em arquivos. ordenação como reorganizar arquivos para suportar pesquisa binária. como criar uma estrutura externa para acessar o arquivo. 2 Compressão de dados A compressão de dados envolve a codificação da informação de modo que o arquivo tome menos espaço. Algumas técnicas de compressão são gerais, e outras específicas para certos tipos de dados, tais como voz, imagem ou texto. A variedade de técnicas é enorme, de forma que veremos apenas alguns exemplos. 3 Compressão de dados Porque desejamos tornar os arquivos menores? ocupam menos espaço, ficando mais baratos; podem ser transmitidos mais rapidamente (menor tempo de acesso), ou transmitidos no mesmo intervalo de tempo com taxas menores de transmissão ; podem ser processados seqüencialmente de modo mais rápido; 4 Técnicas de Compressão de dados Redução de Redundância A técnica denominada redução de redundância, busca uma forma mais compacta de armazenar o dado. Campos de tamanho fixo, tais como CEP, número de telefone e estado são bons candidatos à compressão através dessa técnica Exemplo: No Brasil são 26 estados e 1 distrito federal. Quantos bits são necessário para armazenar esse campo? Resposta: apenas 4 bits (o no. 27 é=1111) Custos da técnica de redução de redundância: usando uma codificação binária pura o arquivo não mais é legível (por humanos) existe o tempo de codificação/decodificação associado (mais lento) existe o software de codificação/decodificação associado (mais complexo) 5 Técnicas de Compressão de dados Redução de Redundância Considerados os custos, vale a pena? É preciso analisar no contexto de cada aplicação. se o arquivo é pequeno, acessado freqüentemente por software variados, ou parte dos software não puder utilizar dados binários (por exemplo, um editor), esta forma de compressão não é uma boa idéia. se o arquivo tem vários milhões de registros, acessados normalmente por um único programa, provavelmente é uma excelente idéia. os algoritmos relacionados são geralmente muito simples e consomem pouco tempo. 6 Técnicas de Compressão de dados Omissão de seqüências repetidas Bom para arquivo no qual a seqüência do mesmo byte pode ser freqüente. Considere uma imagem do céu que foi processada de forma que apenas os objetos com um brilho acima de um certo valor são identificados e mantidos, e todos os demais foram setados para uma cor de fundo representada por um valor de pixel igual a 0 (digamos, preto). 1 pixel é representado por 8 bits O fundo é representado pelo pixel de valor 0 A idéia é evitar repetição A técnica de compressão run-length encoding (RLE) é utilizada para omissão de seqüências repetidas

Upload: luis-david

Post on 10-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

dfgh

TRANSCRIPT

  • 1Organizao de arquivos para desempenho

    tcnicas de compresso como organizar arquivos de modo que fiquem menores.

    tcnicas de compactao como recuperar espao no utilizado em arquivos.

    ordenao como reorganizar arquivos para suportar pesquisa binria.

    como criar uma estrutura externa para acessar o arquivo.

    2

    Compresso de dados

    A compresso de dados envolve a codificao da informao de modo que o arquivo tome menos espao.

    Algumas tcnicas de compresso so gerais, e outras especficas para certos tipos de dados, tais como voz, imagem ou texto.

    A variedade de tcnicas enorme, de forma que veremos apenas alguns exemplos.

    3

    Compresso de dados

    Porque desejamos tornar os arquivos menores?

    ocupam menos espao, ficando mais baratos;

    podem ser transmitidos mais rapidamente (menor tempo de

    acesso), ou transmitidos no mesmo intervalo de tempo com

    taxas menores de transmisso ;

    podem ser processados seqencialmente de modo mais

    rpido;

    4

    Tcnicas de Compresso de dados

    Reduo de Redundncia A tcnica denominada reduo de redundncia, busca uma

    forma mais compacta de armazenar o dado. Campos de tamanho fixo, tais como CEP, nmero de telefone

    e estado so bons candidatos compresso atravs dessa tcnicaExemplo: No Brasil so 26 estados e 1 distrito federal. Quantos bits so necessrio para armazenar esse campo?Resposta: apenas 4 bits (o no. 27 =1111)

    Custos da tcnica de reduo de redundncia: usando uma codificao binria pura o arquivo no mais legvel (por humanos)

    existe o tempo de codificao/decodificao associado (mais lento)

    existe o software de codificao/decodificao associado (mais complexo)

    5

    Tcnicas de Compresso de dados

    Reduo de RedundnciaConsiderados os custos, vale a pena? preciso analisar no contexto de cada aplicao.

    se o arquivo pequeno, acessado freqentemente por software variados, ou parte dos software no puder utilizar dados binrios (por exemplo, um editor), esta forma de compresso no uma boa idia.

    se o arquivo tem vrios milhes de registros, acessados normalmente por um nico programa, provavelmente uma excelente idia.

    os algoritmos relacionados so geralmente muito simples e consomem pouco tempo.

    6

    Tcnicas de Compresso de dados

    Omisso de seqncias repetidas

    Bom para arquivo no qual a seqncia do mesmo byte pode ser freqente.

    Considere uma imagem do cu que foi processada de forma que apenas os objetos com um brilho acima de um certo valor so identificados e mantidos, e todos os demais foram setados para uma cor de fundo representada por um valor de pixel igual a 0 (digamos, preto). 1 pixel representado por 8 bits O fundo representado pelo pixel de valor 0 A idia evitar repetio

    A tcnica de compresso run-length encoding (RLE) utilizada para omisso de seqncias repetidas

  • 7Tcnicas de Compresso de dados

    Omisso de seqncias repetidas

    tcnica de compresso run-length encoding (RLE)Aplicaes que envolvem matriz esparsa so boas candidatas ao uso dessa tcnica, que funciona da seguinte maneira:

    Inicialmente, escolhe-se um valor de byte especial, que no ocorre no arquivo. Esse byte ser usado para indicar que, a seguir, vem um cdigo RLE.

    A seguir, executa-se o algoritmo RLE, como segue: leia a seqncia, copiando seqencialmente os valores para

    um arquivo destino, exceto quando o mesmo valor ocorre mais de uma vez sucessivamente.

    quando dois ou mais valores iguais ocorrem em seqncia, substitua-os pelos seguintes 3 bytes:

    1. o byte especial que indica RLE2. o valor que se repete3. o nmero de vezes que o valor repete

    8

    Tcnicas de Compresso de dados

    Omisso de seqncias repetidas

    Exemplo da tcnica de compresso RLE

    Como ficaria a seqncia abaixo, se o byte especial ff ? 22 23 24 24 24 24 24 24 24 25 26 26 26 26 26 26 25

    Resposta: 22 23 ff 24 07 25 ff 26 06 25

    9

    Tcnicas de Compresso de dados - Huffman

    Modelo estatstico de distribuio de smbolos do texto a

    codificar

    Utiliza uma estrutura de rvore binria gera cdigo binrio

    A codificao depende da freqncia com que um caracter

    ocorre num conjunto de dados

    Propriedades da rvore de Huffman:

    Todo n interno tem 2 filhos

    A menores frequncias esto mais distantes da raiz

    As duas menores freqncias so irms

    Exemplo: Considere um arquivo contendo: SANDRA DE SA

    Letra S A N D R E /b

    Freqncia 2 3 1 2 1 1 2

    Cdigo10

    Tcnicas de Compresso de dados - Huffman

    Exemplo: SANDRA DE SA

    Tabela de prioridades

    Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    Caractere R D /b S A

    Freq 1 2 2 2 2 3

    Caractere /b S A

    Freq 2 2 2 3 3

    R:1 D:2 /b:2 S:2 A:3

    E:1 N:1

    2

    1

    /b:2 S:2 A:3

    E:1 N:1

    2

    D:2R:1

    32

    /b:2 S:2

    4A:33

    D:2R:1

    3

    E:1 N:1

    2 Caractere A

    Freq 2 3 3 4

    11

    Compresso de Dados- Huffman (cont) Caractere AFreq 2 3 3 4

    Caractere

    Freq 3 4 5

    Caractere

    Freq 5 7

    Caractere

    Freq 12

    4

    A:3

    E:1 N:1

    2

    5

    /b:2 S:2

    4

    D:2R:1

    3

    6 12

    A:3

    E:1 N:1

    2

    5

    /b:2 S:2

    4

    D:2R:1

    3

    7

    5

    A:3

    E:1 N:1

    2

    5

    /b:2 S:2

    4

    D:2R:1

    3

    7

    12

    Compresso de Dados- Cdigo de Huffman

    Para obteno do cdigo atribuir rtulo 0 (zero) para cada aresta que conduz ao filho esquerdo de um n interno esquerdo de cada filho e 1 (um) para cada aresta que conduz ao filho direito

    Percorrer as arestas para obter o cdigo correspondente a cada caracter.

    Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    cdigo 000 001 100 101 110 111 01

    0

    0 0

    00 0

    1

    1

    1

    1

    1 1

    12

    A:3

    E:1 N:1

    2

    5

    /b:2 S:2

    4

    D:2R:1

    3

    7

  • 13

    Compresso de Dados- Cdigo de Huffman

    Propriedade:O nmero de bits requerido para codificar o arquivo

    minimizado dado por B(T).

    Calcular B(T) = f(c) . dt (c) onde B(T) o n. de bits necessrios para codif. o arquivo correspondente rvore T

    f(c) a freqncia do caractere e

    dt(c) o tamanho do cdigo do caractere

    A rvore de Huffman construda para garantir que B(T) seja mnimo.

    B(T)= 1x3 + 1x3 + 1x3 + 2x3 + 2x3 + 2x3 +3x2=33bits

    No lugar de 12 caracteres x 8(bits) = 96 bits

    n.o. mdio de bits por caractere = B(T) / total de caracteres=33/12=2,7

    Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    cdigo 000 001 100 101 110 111 01

    No nosso exemplo:

    14

    Compresso de Dados- Huffman

    Algortmo para codificao

    1- determinar da freqncia de cada caractere

    2- criar uma lista de prioridades pela ordem crescente de freqncia. Cada n ser

    uma raiz de rvore binria com um smbolo e freqncia correspondente.

    3- Retire da lista de prioridades os dois primeiros ns e inclua como filhos direito e

    esquerdo de um n de agregao, que no corresponde a nenhum caractere,

    mas cuja freqncia de ocorrncia seja igual soma das freqncias de seus

    filhos.

    4- Inclua na lista de prioridades o n de agregao (mantendo a ordem)

    5-Repita os passos 3 e 4 at que a lista de prioridades contenha um s n, que a

    raiz da rvore de Huffman.

    6- Atribua rtulo 0 aresta que conduz ao filho esquerdo e 1 para a aresta que

    conduz ao filho direito.

    7- O cdigo de cada caractere obtido pela trajetria da raiz at a folha da rvore.

    Gere a tabela de cdigo de cada smbolo.

    15

    Compresso de Dados- Huffman

    Algortmo para decodificao

    1-escolha o primeiro bit do cdigo como o bit corrente

    2-desa um nvel da rvore de Huffman, as partir da raiz, de acordo com o

    valor do bit corrente (0 filho esquerdo ou 1 filho direito) e faa o

    bit corrente igual ao prximo bit a decodificar.

    3-Quando for atingida uma folha da rvore de Huffman, substituir os bits

    correspondentes trajetria, pelo caractere contido nessa folha.

    4- Repetir os passos 2 e 3 at que que o string de bits termine.

    16

    Compresso de Dados- Cdigo de Huffman

    usam cdigo de Huffman

    pack e unpack do Unix

    Na construo da rvore de Huffman no especificamos como proceder com os empates envolvendo uma folha e um n interno.

    se em todo empate a folha escolhida para participar da combinao, ento a rvore de Huffman tem altura mnima.

    Se por outro lado, sempre um n interno for escolhido, a rvore deHuffman tem altura mxima.

    Na verdade, qualquer que seja a escolha levar a construo de uma rvore de Huffman tima.

    17

    Compresso de Dados- Cdigo de Huffman

    Exerccio: codificar o exemplo anterior alterando a estratgia de empate.

    Desenhe uma rvore de Huffman para a seguinte cadeia: PATO PATETA

    Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    18

    Huffman - Exerccio 1Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    R:1 D:2 /b:2 S:2 A:3

    E:1 N:1

    2

    S:2 A:3

    R:1

    E:1 N:1

    2

    3

    D:2 /b:2

    4

    D:2 /b:2 S:2 A:3

    R:1

    E:1 N:1

    2

    3

    S:2

    R:1

    E:1 N:1

    2

    3

    5A:3

    D:2 /b:2

    4

    S:2

    R:1

    E:1 N:1

    2

    3

    5

    A:3

    D:2 /b:2

    4

    7

    12

    Caractere E N R D /b S A

    Freq 1 1 1 2 2 2 3

    cdigo 0110 0111 010 110 111 00 10

  • 19

    Compresso de dados

    Bibliografia:

    Introduction to Data Compression, Khalid Sayood, ed Morgan

    Kaufmann, Feb/ 2000.

    http://www.data-compression.com/lossless (09/2002)

    Lossless Compression Handbook, Khalid Sayood - ed Elsevier-

    Science, 2003.