Compressão de á musica/aulas/compressao_audio.pdf · 2 tipos de compressão ... O padrão de codificação…

Embed Size (px)

Text of Compressão de á musica/aulas/compressao_audio.pdf · 2 tipos de compressão ... O padrão de...

  • Compresso de udio

    Marcio Dahia e Geber Ramalho

  • O que compresso de dados?Processo de codificar uma mensagem a fim de reduzir o nmero de bits necessrios para represent-la 2 tipos de compresso

    Sem perdasNo h eliminao de informao na mensagem.Compresso codificao eficiente

    Com perdas Informaes so descartadas

    Redundantes, pouco importantes ou irrelevantes sob algum critrio

    No descarta a codificao eficienteGrau de compresso x Distoro na mensagem

  • O que compresso de dados?

    Por que uma codificao especfica pra udio?

    Teoria da Informao: Quanto maior o conhecimento sobre a mensagem, emissor e receptor, melhor a compresso

    Mp3 usa a modelagem psicoacstica para remover informaes da irrelevantesFLAC usa a correlao entre os canais (E/D) para aumentar a compresso

  • Tabela

    90,943,19Mp3 128kbps (lame)

    90,683,28Mp3 128kbps (iTunes)

    90,633,3AAC 128kbps (iTunes)

    89,663,64Ogg Vorbis (nvel 5)

    86,394,79Mp3 192kbps (lame)

    86,024,92Mp3 192kbps (iTunes)

    35,8022,6FLAC

    29,8324,7RAR

    -35,2WAV

    TC(%)*Tamanho (em MB)Formato

    *Taxa de Compresso(TC) = tamanho da arq. comp./tamanho da arq. original *100

  • Codificao de udio: Histrico

    1988 : Criao Motion Pictures Expert Group(MPEG)

    Padronizao da codificao para transmisso e gravao de filmes

    Imagem, seqncia de imagens (vdeo) e udio

    Surgimento de novos conceitos e vocabulrioFrame, Codec, Bitrate

    Padronizao apenas do processo de decodificao

    Apenas sugesto de compresso

  • Codificao de udio: Histrico

    1992: MPEG-1. O padro de codificao de udio consistia em 3 modos de operao de acordo com o taxa de compresso (complexidade do processo de codificao)

    As principais idias foram sugeridas pela Fraunhofer Institut fr Integrierte Schaltungen (IS 11172-3 e IS 13818-3).

    1:10 .. 1:12Layer III (MP3)

    1:6 .. 1:8Layer II

    1:4Layer I

    TC

  • Codificao de udio: Histrico1994: Surge Xiph.org

    Definiu padro totalmente aberto para transmisso e armazenamento de udio (vorbis e flac) e vdeo(theora).

    1996: Surge o ID3Padro de fato para insero de metadados no mp3

    1997: MPEG-2Advanced Audio Coding (AAC)

    Estado da arte em compresso de udio (melhorado em Mpeg-4)1:16

    2003: Surge FLAC

  • Conceitos importantesCodec (COderDECoder)Frames

    Forma de dividir um arquivo de udio Uma unidade de codificaoMp3 -> 1152 amostras PCM

    Bitrate (taxa de bits)Numero de bits usados para codificar um frame

    Medida em kbpsCBR (constant bitrate) - A mesma quantidade de bits para representar qualquer frame (WAV)ABR (average bitrate) - Frames menos complexos deixam bits para os prximos (MP3)VBR (variable bitrate) - O nmero de bits para cada frame deve garantir a qualidade definida no inicio da codificao (AAC, VORBIS)

  • Processo de Compresso MP3

  • Modelo PerceptualObjetivo

    Analisar o que pode ser considerado redundncia

    CritriosLimiar de audibilidadeMascaramento de sons

  • Limiar de audibilidadeUm codificador perceptual compara o sinal de entrada com o limiar de audio e descartaos sinais que esto abaixo ou acima

  • Mascaramento

    Dois tipos de mascaramentoSimultneoTemporal

    Mascaramento SimultneoQuando dois sons ocorrem simultaneamente, o de maiorvolume podem ocultar o de menor volume.

    A curva de mascaramento assimtrica mais fcil um tom mais baixo (na freqncia) mascararum mais alto do que o contrrio.

  • Mascaramento Simultneo

  • Mascaramento Temporal

    Ocorre quanto sons so tocadosprximos no tempo, mas no ao mesmotempo.Um som de maior volume que ocorreantes ou depois de um som mais baixopode mascar-lo

  • Mascaramento Temporal (cont.)

  • Mascaramento Temporal e Simultaneo

  • Processo de Compresso MP3

  • Analisys Filterbank

    Objetivo: transformar o sinal para o domnio da freqncia para evidenciar as redundncias e preparar o sinal para retirada

    Composto por 2 fasesFiltragem em sub-bandasTransformada Cosseno Discreta Modificada (MDCT)

  • Filtragem de sub-bandaBaseado no conceito de banda-critica

    regies da membrana basilar que estabelecem limites na percepo de freqncias32 subbandas de mesma largura

    Pouca justificativa psicoacustivaMotivo: eficincia

    1 subbanda selecionada para cada 32 amostras

    36 amostras em cada subbanda

  • Filtragem em Sub-bandas

  • Transformada CossenoDiscreta Modificada (MDCT)

    Cada banda passa transformada do domnio do tempo pra domnio da freqncia (50% overlap)

  • Processo de Compresso MP3

  • Quantizao e codificao

    QuantizaoAs informaes irrelevantes (detectadas na fase de modelagem perceptual) so efetivamente retiradaO nmero de bits para cada banda determinado

    CodificaoDissociao inter-canais (caso estreo)

    Os Canais E e D so transformados em mdia (E+D/2) e side (E-D/2)Codificao de Huffman

  • Codificao de HuffmanMensagem

    aaaaaabbbcdee104 bits

    Mensagem comprimida00000010101011101111110110 26 bits. TC = 75%

    13

    7

    4

    2

    a

    b

    c d

    e

    0 1

    0 1

    1

    1

    0

    0

    1102e

    11111d

    11101c

    103b

    06a

    cdigoocorrnciasmbolo

  • Processo de Compresso MP3

  • Encoding

    http://www.mp3-tech.org/programmer/frame_header.html

  • Metadados ID3

    Padro no prev metadadosSoluo: Usar 128 bits antes do primeiro frame (v1.0)

    Tamanho Descrio

    33030

    30

    304

    1

    TAGTtuloArtista

    lbumAno

    ComentrioGnero

  • Curiosidade: AAC

    Evoluo do mp3Fim da retro-compatibilidade com Layer I e IICodificao para at 48 canaisDe 576 para 1024 amostras por canal por frameVBRUso de codebooks

    Ao invs de codificar huffman para cada subbandaseparadamente, codificar seqncias de subbandas

    Dissociao inter-framesPredio

  • Curiosidade: AAC

    Diversos modos com complexidade varivelMPEG-2 AAC LC / Low ComplexityMPEG-2 AAC MainMPEG-2 AAC SSR / Scalable Sampling RateMPEG-4 AAC LC / Low ComplexityMPEG-4 AAC MainMPEG-4 AAC SSR / Scalable Sampling RateMPEG-4 AAC LTP / Long Term PredictionMPEG-4 AAC HE / High EfficiencyMPEG-4 AAC LD / Low Delay

  • Compresso sem perdas

    Os compressores em geral possuem os seguem os seguintes passos

    Exemplo prtico FLAC

  • Compresso sem perdas (FLAC)

    BlockingSeparao do contedo em uma srie de blocos contguosTamanho do bloco pode variar de 16 a 64k amostras

    Na verso atual, o tamanho do bloco fixo, Depende da freqncia de amostragem e nmero de canais

    Blocos possuem Sub-blocoInformaes sobre um canal especfico

    Blocos so codificados em FramesCabealho

    taxa de amostragem, resoluo, CRC do frame etc. Os frames so independente entre si.Sub-frame: contm o dado codificado e um header que indica a predio usada na compresso

  • Compresso sem perdas (FLAC)

    Dissociao inter-canaisRemoo redundncia de informao causada pela correlao entre os canais (estreo)Executa 4 transformaes, usa a melhor delas.

    Canais independentes: codificados independementeMdia-Lado(mid-side): Os Canais so transformados em mdia (mdia dos 2 canais) e side (canal esquerdo menos direito)Esquerda-Lado/Direita-Lado: Codifica um canal (esquerda ou direita) e a diferena entre este e o canal no codificado. Geralmente, do melhores resultado.

  • Compresso sem perdas (FLAC)

    PredioFuno matemtica para tentar descrever o sinal4 funes existentes

    Zero: prediz sempre zero. Resduo = EntradaConstante: Usado quando todas as amostras de uma canal possuem o mesmo valor, e.g., silncio.Preditor Linear Fixo: funo linear com coeficientes fixos que prediz no mximo 4 amostras subseqentesPredio FIR Linear: Utiliza um filtro de at 32 estgios.Os coeficientes do filtro so achados a partir a da recurso de Levinson-Durbin.

    Acha a soluo para o sistema de equaes referentes a uma matriz constante diagonal Algoritmo O(n2)

  • Compresso sem perdas (FLAC)

    Codificao ResidualCodificao da diferena (resduo) entre o que foi predito e a entrada FLAC utiliza o cdigo Rice para codificar os resduos de predio (passo anterior)

    Dado um nmero N (de k bits) a ser codificado e m um nmero de bits que divide N, a codificao Rice (R) representada por

    Ex.: N=23 (10111) , m=32 R= 11111110110

  • Compresso sem perdas (FLAC)

    Por que Rice? timo para distribuies geomtricas

    Pr[x] = (1 p)x1pHuffman timo nessa distribuio tambm

    Mas no tem uma forma simples de decodificar (encontrar onde comea e termina cada cdigo)

    Para a escolher m, FLAC utiliza 2 mtodos Mtodo 1: m escolhido baseado na varincia do sinal residual. O bloco inteiro codificado com esse m. Mtodo 2: um bloco particionada em varias partes de tamanhos distintos. m escolhido pra cada partio e baseado na mdia do resduo daquela partio especifica