Compressão de Áudio MPEG AAC PTC2547 Princípios de Televisão Digital Guido Stolfi EPUSP - 2016 EPUSP - Guido Stolfi 1 / 48
Tópicos Abordados MPEG-2 AAC Advanced Audio Coding Blocos Funcionais MPEG-4 AAC Ferramentas Adicionais SBR, CELP, HVXC, etc. Conceitos Chave Requisitos Computacionais Síntese Musical MIDI Musical Instruments Digital Interface EPUSP - Guido Stolfi 2 / 48
MPEG-2 AAC (Advanced Audio Coding) Derivado do MPEG-2 Nível III 1 a 48 canais de áudio 8 a 96 khz de amostragem Patentes: AT&T, Sony, Dolby, Fraunhofer Usado no sistema ISDB, XM Radio e DRM Low Complexity AAC (AAC-LC) High Efficiency (HE-AAC ou AACPlus Scalable Sample Rate (AAC-SSR) Bit Sliced Arithmetic Coding (BSAC) EPUSP - Guido Stolfi 3 / 48
Diferenças do AAC x MPEG-2 Banco de filtros implementado por DCT modificada, 1024 pontos (Processamento T / F) Não é compatível com MPEG-1 Utiliza preditor linear para pré-codificação Efetua Noise Shaping adaptativo Pode utilizar replicação espectral (SBR) Otimização da codificação estatística dos símbolos transmitidos Resultado: redução de 50% na taxa de bits EPUSP - Guido Stolfi 4 / 48
Diagrama de Blocos da Codificação AAC EPUSP - Guido Stolfi 5 / 48
Controle de Ganho (0-24 khz) LP HP LP HP LP HP (0-6 khz) (6-12 khz) (12-18 khz) (18-24 khz) Controle de Ganho (Coeficientes) EPUSP - Guido Stolfi 6 / 48
Banco de Filtros: DCT com Janela Temporal DCT 2048 256 (1024 / 128 Coeficientes) Janela Longa / Curta EPUSP - Guido Stolfi 7 / 48
Janelas Temporais Superpostas 1 Frame (1024 Amostras) Janelas Longas DCT Longa (2048 Amostras) Janelas Curtas DCT Transição (2048 Amostras) 8 DCTs Curtas (256 Amostras) DCT Transição (2048 Amostras) EPUSP - Guido Stolfi 8 / 48
Codificador com Preditor y(t) + e(t) y(t) Preditor S1 - y(t) ^ Canal y(t) ^ S2 Preditor Transmissor Receptor Eficácia do preditor reduz a energia do sinal transmitido e(t) Chaves S1 e S2 devem ser abertas em instantes apropriados EPUSP - Guido Stolfi 9 / 48
Preditor Espectral Filtro de 2 a Ordem Filtro de 2 a Ordem Espectro de Entrada Erro Espectral Coeficientes Espectrais P/ Quantizador Espectro Quantizado Do Frame Anterior Filtro de 2 a Ordem EPUSP - Guido Stolfi 10 / 48
Noise Shaping Quantizador Q Sinal Ruído de Quantização Quantizador Sinal F Q F -1 Ruído de Quantização Equalizador (Pré-ênfase) De-ênfase EPUSP - Guido Stolfi 11 / 48
TNS Temporal Noise Shaping Espectro do Sinal Envoltória Espectral Filtrada Equalização (Pré-ênfase) F 1/x Filtro no Domínio Da Frequência Quantizador Q Forma do Noise Shaping é Variável no Tempo Sinal com Noise Shaping EPUSP - Guido Stolfi 12 / 48
Quantizador Não Linear Coeficiente Espectral Coeficiente Quantizado X 0,75 Q X 1,333 (Restauração no Decodificador) Fator de Escala (Frame / Frequência) Quantizador (Frame / Frequência) EPUSP - Guido Stolfi 13 / 48
Quantizador Não Linear s(x) 0,75 s(x) EPUSP - Guido Stolfi 14 / 48
Compactação dos Coeficientes Fatores de Escala: Codificação Diferencial em relação ao Frame anterior Resolução de 1,5 db Quantizador: Selecionado com resolução de 1,5 db Fator de Escala + Quantizador: Codificado como um símbolo conjunto Vários dicionários (Huffmann) selecionáveis para codificação Coeficientes Quantizados: Agrupados (2 ou 4) e codificados com um de 11 dicionários, válidos por faixas de frequência. EPUSP - Guido Stolfi 15 / 48
MPEG-4 AAC Ferramentas Adicionais EPUSP - Guido Stolfi 16 / 48
MPEG-4 Ferramentas de Codificação Codificação de Áudio Natural: MPEG-2 AAC SBR: Spectral Band Replication CELP: Code Excited Linear Prediction Codificação paramétrica: HVXC: Harmonic Vector Excitation Coding HILN: Harmonic, Individual Line + Noise Áudio Sintético: M-TTS: MPEG Text To Speech SAOL: Structured Audio Orchestra Language SASL: Structured Audio Score Language SASBF: Structured Audio Sample Bank Format MIDI: Musical Instruments Digital Interface EPUSP - Guido Stolfi 17 / 48
Codificação MPEG-4 para TV Digital Brasileira Norma ABNT NBR 15602-2 Codificação MPEG-4 AAC (ISO/IEC 14496-3): LC (Perfil básico Low Complexity), níveis L2 e L4; HE (High Efficiency, LC + SBR), níveis L2 e L4; HE + PS (Parametric Stereo), nível L2. EPUSP - Guido Stolfi 18 / 48
SBR (Spectral Band Replication) EPUSP - Guido Stolfi 19 / 48
Decodificação SBR (Spectral Band Replication) EPUSP - Guido Stolfi 20 / 48
MPEG-4 AAC Decodificador Paramétrico HVXC Harmonic Vector Excitation Coding Codificação de Voz, 1.2 a 4 kb/s Amostragem: 8 khz Processamento: Frames de 20 ms (160 amostras) HILN Hamonic and Individual Line + Noise Voz e música, > 4 kb/s Usa PNS (Perceptual Noise Substitution) EPUSP - Guido Stolfi 21 / 48
MPEG-4 AAC Decodificador Paramétrico Modo de Codificação: PARAmode = 0 HVXC 1 HILN 2 Comutado HVXC / HILN (fading 20 ms) 3 Combinado HVXC / HILN EPUSP - Guido Stolfi 22 / 48
Decodificador HVXC Sinais Vocálicos: Quantização Vetorial da envoltória espectral dos resíduos da codificação LPC (VQ) Sinais Não Vocálicos: Codificação por Excitação Vetorial (VXC) EPUSP - Guido Stolfi 23 / 48
Conceitos Básicos Vocoder LPC (Linear Predictive Coding) Quantização Vetorial (VQ) Decodificação Excitada por Código Síntese harmônica PNS (Perceptual Noise Substitution) EPUSP - Guido Stolfi 24 / 48
Síntese Básica de Voz (Vocoder) frequência ruído vogais / ganho consoantes formantes EPUSP - Guido Stolfi 25 / 48
Síntese por LPC (Linear Predictive Coding) y(n) Transmissor + e(n) Receptor y(n) (Filtro Linear) Preditor - S1 y(n) ^ Canal y(n) ^ S2 Preditor LMS Coeficientes do Filtro Algoritmo de Ajuste do Filtro Preditor Exemplo de Filtro FIR: yˆ ( n) b1 y( n 1) b2 y( n 2)... bm y( n M) EPUSP - Guido Stolfi 26 / 48
Quantização Vetorial Conjunto N-dimensional de valores de entrada é quantizado como um vetor (de N dimensões), escolhido entre um conjunto de M vetores possíveis, de acordo com um critério de mínima distância ; A lista dos M vetores possíveis é o dicionário de vetores (codebook); O conjunto de valores de entrada é convertido em um número (índice) que identifica o vetor quantizado dentro da lista. EPUSP - Guido Stolfi 27 / 48
Quantização Vetorial Sinal de Entrada 2 x E Q (m) Índice m Ganho 1 2 3... M V Q (m) Vetor quantizado é dado pelo índice m para o qual foi obtido o menor erro de quantização E Q (m). EPUSP - Guido Stolfi 28 / 48
Decodificação Excitada por Código Coeficientes LPC Resíduo (erro de predição) Filtro LPC Saída Índice Ganho 1 2 3... M Vetor de Excitação EPUSP - Guido Stolfi 29 / 48
Síntese Harmônica Coeficientes LPC Resíduo Frequência Ganho Índice 1 2 3... Interpolador Envoltória Espectral Envoltória Espectral Interpolada Preditor LPC Espectro de Saída M EPUSP - Guido Stolfi 30 / 48
PNS (Perceptual Noise Substitution) Componentes harmônicas Ruído perceptual Ruído Branco Ganho Índice 1 2 3... M Interpolador Envoltória Espectral Envoltória Espectral Interpolada Espectro composto EPUSP - Guido Stolfi 31 / 48
Decodificador HVXC (Line Spectral Pairs) EPUSP - Guido Stolfi 32 / 48
Decodificador HVXC Excitação Vocálica do Decodificador HVXC EPUSP - Guido Stolfi 33 / 48
Codificador HVXC EPUSP - Guido Stolfi 34 / 48
Codificador HILN EPUSP - Guido Stolfi 35 / 48
Decodificador MPEG-4 CELP EPUSP - Guido Stolfi 36 / 48
Modos de Operação MPEG-4 CELP Taxa de Amostragem de 8 khz: Quantizador Vetorial Taxas de Bits de 3850 a 12200 bps Taxa de Amostragem de 16 khz: Quantizador Escalar Taxas de Bits continuamente variáveis de 13667 a 20133 bps e de 21800 a 24000 bps EPUSP - Guido Stolfi 37 / 48
Ferramentas Específicas do Decodificador CELP MPEG-4 EPUSP - Guido Stolfi 38 / 48
Requisitos Computacionais Típicos (MPEG-4) f A (khz) MOPS kwords AAC Principal 48 5 5 AAC-LC 48 3 3 AAC-SSR 48 4 3 LTP 48 4 4 AAC Escalável 48 5 4 VQ Duplo 24 2 3 CELP 8 1 1 CELP 16 2 1 CELP 8/16 3 1 HVXC 8 2 1 EPUSP - Guido Stolfi 39 / 48
Áudio Sintético Síntese Musical SAOL: Structured Audio Orchestra Language SASL: Structured Audio Score Language SASBF: Structured Audio Sample Bank Format MIDI: Musical Instruments Digital Interface Síntese de Fala TTS (Text To Speech) EPUSP - Guido Stolfi 40 / 48
Modelo de Síntese Musical EPUSP - Guido Stolfi 41 / 48
Elementos da Sintaxe SASBF Geradores de: Índice: apontam para outra estrutura de dados Range: indicam uma faixa de valores onde um parâmetro (nota, intensidade) é definido Substituição: atribuem um valor numérico a um evento Amostra: afetam as propriedades de um som amostrado Valor: afetam diretamente parâmetros do som sintetizado. EPUSP - Guido Stolfi 42 / 48
Gerador de Amostra SampleID Start StartLoop EndLoop End PITCH: Afeta frequência de amostragem, após modificado por Vibrato, Modulação etc. EPUSP - Guido Stolfi 43 / 48
Sintaxe MIDI (Musical Instruments Digital Interface) Canal MIDI: 1 a 16 identifica módulo que deve receber o comando. Note ON: identifica o Canal MIDI, a nota musical (0 a 127) e a velocidade de acionamento (1 a 127, associada geralmente à intensidade). Note OFF: idem, com velocidade de desacionamento. Controlador: CC 0 a 127: atribui valores contínuos (14 bits) a parâmetros pré-determinados (volume, pitch bend, filtro, etc.) Program Change: seleciona configuração pré-programada para conjunto de parâmetros de síntese (ex. General Midi estabelece lista de instrumentos padronizados). EPUSP - Guido Stolfi 44 / 48
Sintaxe MIDI (Musical instruments Digital Interface) Aftertouch: parâmetro que afeta uma nota de um dado canal, após o evento Note ON (p. ex, alterando a modulação ou intensidade). System Exclusive: Informação específica para um determinado equipamento (p. ex., programação de parâmetros). Standard Midi File (SMF): sequência de comandos MIDI com informaçoes de temporização relativa entre os comandos EPUSP - Guido Stolfi 45 / 48
Mensagem MIDI Comando / Dado 1 0 0 0 n n n n Note ON Canal = n+1 0 k k k k k k k Nota k (64 = Dó Central) 0 v v v v v v v Velocidade (0 = Note OFF) EPUSP - Guido Stolfi 46 / 48
Codificador MPEG-4 TTS (Text To Speech) EPUSP - Guido Stolfi 47 / 48
Aplicação do Codificador TTS Base de Dados (Histórias) Sintetizador Facial Controlador DMUX Sintetizador de Voz Contador de Histórias sob demanda EPUSP - Guido Stolfi 48 / 48