1 / 54

Módulo 6 – Compressão de Imagem e Som Sistema Multimédia Ana Tomé José Vieira

Módulo 6 – Compressão de Imagem e Som Sistema Multimédia Ana Tomé José Vieira. Departamento de Electrónica, Telecomunicações e Informática Universidade de Aveiro. Sumário. Codificação sem Perdas (continuação ) RLE - Run length encoder

benson
Download Presentation

Módulo 6 – Compressão de Imagem e Som Sistema Multimédia Ana Tomé José Vieira

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Módulo 6 – Compressão deImagem e Som Sistema MultimédiaAna ToméJosé Vieira Departamento de Electrónica, Telecomunicações e Informática Universidade de Aveiro

  2. Sumário • Codificação sem Perdas (continuação) • RLE- Runlengthencoder • Codificadores com dicionário (Lempel-Ziv-Welch) • Codificação com Perdas para Imagem • Estrutura geral do codificador • Exemplo do JPEG em imagem • Codificação com Perdas para Som • Redundância e Irrelevância • DPCM • MPEG áudio

  3. Codificadores sem perdas • Codificadores de símbolos • Probabilísticos • Exemplo: codificador de Huffman • Codificadores de sequências de símbolos • RLE- Run- lengthencoding • Com dicionários : códigos associados a sequências de símbolos de comprimento variável • Exemplos: LZ77 e Lempel-Ziv-Welch (LZW).

  4. Run-Length Encoding • Contar o número de ocorrências de um símbolo • Codificar: símbolo e número de ocorrências do símbolo Ex1: AAAAAAAAAAAAABBBBAAAAA Sequência Codificada: A13 B4 A5 Aplicações: em imagens binárias/bitonais (ex: digitalização de um fax)

  5. RLE- Run-length Encoding 000000000000000000000000000011111111111111000000000 000000000000000000000000001111111111111111110000000 000000000000000000000001111111111111111111111110000 000000000000000000000011111111111111111111111111000 000000000000000000001111111111111111111111111111110 000000000000000000011111110000000000000000001111111 000000000000000000011111000000000000000000000011111 000000000000000000011100000000000000000000000000111 000000000000000000011100000000000000000000000000111 000000000000000000011100000000000000000000000000111 000000000000000000011100000000000000000000000000111 000000000000000000001111000000000000000000000001110 28 14 9 26 18 7 23 24 4 22 26 3 20 30 1 19 7 18 7 19 5 22 5 19 3 26 3 19 3 26 3 19 3 26 3 19 3 26 3 20 4 23 3 1 RLE Digitalização de uma imagem preto-branco (um fax, por exemplo…)

  6. LZ77 • Em 1977, Lempel e Ziv criaram uma técnica de compressão de texto baseada na observação empírica de que num texto ocorrem com frequência repetições. • Utiliza uma janela deslizante com 2k caracteres e uma janela de observação de M carateres. • Algoritmo • Procura na janela de observação uma sequência contígua de carateres que exista na janela deslizante; • Caso encontre, transmite o índice na janela deslizante e o número de carateres; • Caso não encontre transmite o primeiro carater da janela de observação

  7. LZ77 – Exemplo Texto a codificar: abxyndooyndkasa 8 4 Janela de Observação Janela Deslizante abxyndoo yndk +4 Saída do codificador: abxyndoo(4,3)kasa • Problemas: • Se as repetições ocorrerem muito afastadas o algoritmo não as codifica; • Aumentar o tamanho da janela deslizante faz aumentar o número de bits necessário para representar os ponteiros.

  8. Codificadores Baseados em Dicionário • Supondo a existência de um dicionário adequado ao ficheiro a codificar. • Algoritmo • Procurar no ficheiro ocorrências no dicionário • Transmitir o índice da ocorrência no dicionário • Problema • Como criar o dicionário? • Como transmitir o dicionário?

  9. Codificador de LZW – Lempel-Ziv-Welch • Algoritmo • Construção do dicionário em simultâneo com a codificação (dicionário inicial rudimentar); • Procura sequências de símbolos no dicionário; • Devolve o índice “K” da sequência no dicionário; • Insere nova palavra no dicionário: concatenação da sequência com o símbolo seguinte da mensagem; • Problemas • O dicionário não pode ter um tamanho exagerado; • O dicionário pode esgotar-se antes incluir todas as sequências e limitar a compressão.

  10. LZW – exemplo • Algoritmo de codificação do LZW • Dicionário inicial: a, aa, ab, aba, abaa, abaab, abaaa, • Mensagem a codificar: ...abaababbb... • Qual é a sequência mais longa no dicionário?... abaaba… • No dicionário com indíce K=6. Saída do codificador ….6…. • E acrescentar dicionário com “abaaba”. • Dicionário: a, aa, ab, aba, abaa,abaab,abaaa, abaaba • Qual é a sequência mais longa no dicionário?... abbb… • K=3….. Saída codificador:…..63…. • Etc. • Demonstração com apllet Java http://www.cs.sfu.ca/CC/365/li/squeeze/LZW.html

  11. Exemplos de Codificadores sem Perdas para Imagem • JBIG: compressão de imagem binária sem perdas (aplicações de fax): RLE+Huffman. Norma de compressão de imagem sem perdas; • JPEG-LS: Utiliza predição linear entre pixéis adjacentes e codificação de Huffmansobre o erro; • GIF: Utiliza o algoritmo LZW para conseguir a compressão. Palete de cores restringida a um máximo de 256; • PNG: Utiliza predição linear e o algoritmo DEFLATE para comprimir o erro. O algoritmo DEFLATE é inspirado no LZ77 e no LZW e é de utilização livre. Admite true color.

  12. Codificação com Perdas para Imagem Estrutura geral do codificador Exemplo do JPEG em imagem

  13. Codificação entropia Transformação quantificação Compressão com Perdas Disco Canal Transm. Transformação inversa Descodificação entropia Reversão da quantificação Transformação: domínio da frequência Quantificação: alocação de número bits diferentes por bandas de frequência (áudio, por exemplo) Códigos entropia: Huffman ou aritmético.

  14. Exemplo: Imagem Tabela: passos de quantificação Codificador JPEG • Transformada : blocos 8×8 DCT • Quantização : aplicação de tabelas de valores de acordo com sensibilidade do sistema visual humano • Passos de valor baixo mais bits • Passos de valor elevado menos bits.

  15. Exemplo em Matlab: para um Bloco Espaço Frequência -24 -20 -21 -27 -34 -33 -30 -26 -32 -28 -25 -28 -32 -54 -53 -55 -51 -59 -58 -41 -44 -64 -64 -61 -57 -68 -76 -69 -64 -72 -74 -71 -70 -75 -77 -74 -76 -77 -76 -76 -75 -78 -75 -76 -76 -70 -77 -81 -80 -75 -75 -77 -75 -73 -77 -75 -81 -80 -80 -81 -73 -81 -77 -80 -495 20 -8 0 10 -1 -3 3 135 22 -3 -9 7 1 -3 0 59 1 -1 -10 -9 -3 -1 3 17 -3 9 -3 -14 1 6 -4 -5 -7 14 3 -2 0 -1 0 2 -10 7 3 0 -2 2 -4 -2 -9 -1 3 3 3 1 -2 1 -7 0 -4 2 2 -1 -2 Bloco após subtrair 128 blkf=round(dct2(bloco1));

  16. Exemplo: um Bloco Frequência Versão(na frequência) aproximada do original…. -31 2 -1 0 0 0 0 0 11 2 0 0 0 0 0 0 4 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -496 22 -10 0 0 0 0 0 132 24 0 0 0 0 0 0 56 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xq=round(blkf./tabela) xq.*tabela Codificador entropia Descodificador entropia

  17. Codificador de Entropia Codificador Huffman aplicado ao bloco com varrimento em zig-zag Sequência a codificar [ -31 2 11 4 2 -1 0 0 0 1 EOB ]

  18. JPEG em Imagens a Cores • Um codificador para cada plano de cor • RGB não é eficiente • Transformação para outro espaço de cor • YCbCr(recomendação da norma) • Uma imagem para a luminância (Y) e 2 imagens para a crominância (CbCr) . Sub-amostragem nas imagens de cor • Exemplo: Para uma imagem 512×512 Y com 512×512, Cb com 256×256 e Cr com 256×256 • Dados entrelaçados ou separados

  19. Imagens a cores

  20. Conversão de Espaço de Cor Red Green Blue Y Cb Cr Em Matlab: Iycbcr= rgb2ycbcr(Irgb)

  21. Sub-Amostragem da Crominância • A visão humana possui uma menor resolução para as cores. Por este motivo, a informação de cor é normalmente representada com uma menor amostragem espacial; • Para representar a forma como a amostragem da Crominância se relaciona com a amostragem da Luminância é utilizada a seguinte norma definida em conjuntos de 8 pixéis com o seguinte arranjo. J:a:b J: Número de pixéis na horizontal. Em geral 4; a: Número de pixéis de crominância na primeira linha; b: Número de pixéis de crominância adicionais na segunda linha. Pixel Y,Cr,Cb Pixel Cr,Cb Pixel Y

  22. Sub-Amostragem da Crominância 4:1:1 4:4:4 4:2:0 4:2:2 Para informação mais detalhada sobre a sub-amostragem da informação de crominância, pode consultar o seguinte documento.

  23. JPEG – Exemplo Original 600×400 pixéis 721KBytes

  24. JPEG – Exemplo JPEG Q=100% 177KBytes

  25. JPEG – Exemplo JPEG Q=50% 21KBytes

  26. JPEG – Exemplo JPEG Q=1% 5KBytes

  27. JPEG – Joint PhotographicExperts Group Este é o formato mais utilizado para armazenar imagens do tipo fotografias Realiza uma codificação com “perdas” ou sem perdas O factor de qualidade permite reduzir o espaço necessário para o armazenamento sacrificando a qualidade Modos de operação Baseline (sequencial): blocos codificados em sequência e armazenados em sequência Progressiva Hierárquica

  28. Modos de operação Sequencial Progressivo Hierárquico

  29. Outros Formatos com Perdas para Imagem • TIFF (taggedimage file format): vários tipos de imagem, com perdas e sem perdas; • JPEG (JointPhotographicExpertsGroup): Compressão com perdas; • JPEG2000: compressão com perdas e sem perdas.

  30. Codificação com Perdas para Som Redundância e Irrelevância DPCM MPEG áudio

  31. Redundância e Irrelevância • Possibilidades de compressão: • Diminuição da redundância do sinal gerado pela fonte (implica conhecimento sobre o sinal da fonte). • Diminuição da irrelevância do sinal para o receptor (implica conhecimento sobre o receptor).

  32. Redundância • Sinal de Voz • Limitado em banda • Harmónico: nas partes vocalizadas pode ser modelizado como uma soma de sinusóides. • Existem codificadores que tiram partido deste conhecimento para reduzir a redundância existente no sinal de voz.

  33. Irrelevância • O sistema de audição humana possui algumas limitações que podem ser exploradas • Limitação em frequência 20Hz - 20.000Hz. • Limiar de audição. • Mascaramento na frequência. • Mascaramento temporal. • Percepção harmónica. • Os sistemas de compressão de sinais de música mais eficientes como por exemplo o MPEG tiram partido deste conhecimento sobre as limitações do sistema auditivo.

  34. Codificadores de Voz • O sinal de voz possui uma grande redundância pelo que é possível tirar partido deste conhecimento prévio • Duas técnicas são usadas na compressão de voz • Redução da redundância usando predição • Redução da irrelevância usando quantização • Os codificadores de voz dividem-se em duas categorias • Diferencias (bitrates até 32kbps) • Vocoders (bitrates até 2kbps)

  35. Codificação por Predição Linear • A codificação por predição linear significa que é possível prever (com um erro pequeno) cada amostra de um sinal usando uma combinação linear das anteriores; • Exemplo de preditor linear de ordem zero; • A predição da amostra atual é obtida supondo que é igual à amostra anterior do sinal. • O erro é calculado como a diferença entre a prevista e a real. • Para muitos sinais (voz, música, imagem,etc) o sinal de erro apresenta um histograma mais concentrado em torno de zero tornando assim possível usar um codificador de entropia como o código de Huffman.

  36. Codificação por Predição Linear Em geral a saída do preditor linear é obtida como uma combinação linear das N anteriores amostras do sinal x(n).

  37. DPCM- Differencial Pulse CodeModulation • Neste tipo de codificadores para além do preditor linear que reduz a redundância do sinal introduz-se um quantizador do sinal de erro. • Esta técnica permite reduzir alguma da irrelevância no sinal uma vez que o ouvinte tolera algum ruído de quantização sem grande impacto perceptual. • Apenas o erro quantizado é transmitido e a codificação é realizada de modo a que o descodificador consiga obter o sinal de saída apenas a partir do sinal de erro quantizado.

  38. DPCM- Differencial Pulse CodeModulation

  39. Preditor Linear de 1ª Ordem – Aplicação em Som Preditor linear de 1ª ordem aplicado a um sinal de voz.

  40. Preditor Linear de 1ª Ordem – Aplicação em Imagem

  41. Vocoders • Codificadores específicos para sinais de Voz; • Não podem ser usados para codificar outros tipos de sinais; • São baseados num modelo matemático do trato vocal Vídeo das cordas vocais a vibrar

  42. Modelo Matemático para a Produção de Voz • Os telemóveis GSM utilizam a Regular-Pulse Excitation Long-TermPredictor; • A norma G.728 utiliza LowDelayCodeExcited Linear Prediction

  43. Codificadores de Voz Nos codificadores ADPCM (Adaptive DPCM), os coeficientes do preditor linear e o número de bits do quantizador, são adaptados ao longo do tempo às características do sinal de entrada.

  44. Codificadores de Áudio • Os codificadores para comprimir música com alta qualidade apenas tiram partido da irrelevância presente no sinal. Ou seja, removem do sinal as componentes tempo/frequência que o ouvinte não conseguirá notar; • Existentes três características / limitações do sistema auditivo humano que os codificadores como o MP3 tiram partido apra conseguir os ganhos de compressão: • Limiar auditivo; • Mascaramento na frequência • Mascaramento no tempo. • Devido à necessidade de realizar uma análise tempo/frequência do sinal estes codificadores realizam sempre uma variante do espectrograma.

  45. Limiar de Audição Não é necessário codificar esta componente

  46. Mascaramento na Frequência Não é necessário codificar esta componente

  47. Mascaramento no Tempo

  48. Codificadores de Áudio Em geral, o codificador AAC a 128kbps oferece a mesma qualidade perceptual que o codificador MP3 a 192kbps (estéreo).

  49. MPEG-I: áudio Três camadas (Layers) para compressão com níveis de complexidade diferente e taxas/rácios diferentes • Layer 1: • Modelo psico-acústico com mascaramento na frequência • 30 kbit/s (mono) a 448 kbit/s (stereo) • Qualidade semelhante com CD para 256–384kbit/s • Philips DCC (Digital CompactCassette) –192kbit/s

  50. MPEG-I: áudio • Layer 2: • Modelo psico-acústico acrescenta o mascaramento no tempo • 64 kbit/s a 256 kbit/s(stereo) • DVD • DAB (Digital áudio broadcast) • Qualidade semelhante ao CD para192 a 256 kbit/s • Layer 3: • Camada mais complexa. • Maiores taxas de compressão • 64 kbit/s (mono) • Qualidade semelhante ao CD para 128 a 192 kbit/s • Codificador com o maior atraso

More Related