Alocação Ótima de Bits Alan Dantas de Medeiros Endalécio Diego Berg Brum Nilson Carvalho Silva Junior Victor Pereira da Costa Vitor Borges Coutinho da Silva Processamento Digital de Áudio Introdução  Ganho de Codificação  Espectro Colorido  Sinais Quase Estacionários  Modelo Psicoacústico de Mascaramento  Alocação Ótima  Minimização do Erro Médio Quadrático Introdução  Quantização uniforme  < Ɛ𝟐 > = 𝟏 𝟑∗𝟐𝟐𝑹  Realocação de Bits  𝟏 + 𝟑∗𝟐𝟐(𝑹+𝜹) 𝟏 𝟑∗𝟐𝟐(𝑹−𝜹) ≥ 𝟐 𝟑∗𝟐𝟐𝑹  Erro Constante nas Amostras  Ponto Flutuante  𝒒𝟐 𝒃𝒍𝒐𝒄𝒌 = 𝟏 𝑲 𝑲−𝟏 𝒌=𝟎 𝟐 < Ɛ𝒌 > = 𝟏 𝑲 𝟐 𝑲−𝟏 𝒙𝒌 𝒌=𝟎 𝟑∗𝟐𝟐𝑹𝒌 Introdução 𝟐  Como 𝒙𝒌 = 𝟐 𝒍𝒐𝒈𝟐 (𝒙𝒌 𝟐 ) , 𝒒 𝟐 𝒃𝒍𝒐𝒄𝒌 = 𝟏 𝟏 𝑲 𝟐 𝑲−𝟏 𝒙𝒌 𝒌=𝟎 𝟑∗𝟐𝟐𝑹𝒌  𝑹𝒌 = (𝑪 + 𝒍𝒐𝒈𝟐 𝒙𝒌 𝟐 ) 𝟐  Maior escala requer mais bits  Substituindo C em função do número total de bits e fazendo a média  𝑪= 𝑷 𝟐 𝑲𝒑 𝒐𝒑𝒕  𝑹𝒌 = − 𝑷 𝑲𝒑 𝟏 𝑲𝒑 + 𝒑𝒂𝒔𝒔𝒆𝒅 𝒌 𝒍𝒐𝒈𝟐 𝟐 𝒙𝒌 = 𝑷 𝟐 𝑲𝒑 𝟏 𝟏 𝒍𝒐𝒈𝟐 𝒙𝒌 𝟐 − < 𝒍𝒐𝒈𝟐 𝒙𝒌 𝟐 𝟐 𝟐 − 𝒍𝒐𝒈𝟐 𝒑𝒂𝒔𝒔𝒆𝒅 𝒌 𝒙𝒌 𝟐 𝟏 𝑲𝒑 >𝒑𝒂𝒔𝒔𝒆𝒅 𝒌  𝑲𝒑 -> número de frequências com, pelo menos, 1 bit de mantissa alocado  𝑷 -> total de bits de mantissa Ganho de Codificação e Planitude Espectral 𝒐𝒑𝒕 𝒐𝒑𝒕 𝒃𝒍𝒐𝒄𝒌 e 𝒖𝒏𝒊𝒇𝒐𝒓𝒎 𝒒𝟐 𝒃𝒍𝒐𝒄𝒌  Substituindo 𝑹𝒌 em 𝒒𝟐 em consideração em   𝒐𝒑𝒕 𝒒𝟐 𝒃𝒍𝒐𝒄𝒌 = 𝒖𝒏𝒊𝒇𝒐𝒓𝒎 𝒒𝟐 𝒃𝒍𝒐𝒄𝒌 levando a potência 𝟏 𝑲 = 𝑲−𝟏 𝟐 𝟐𝑹 𝒙 (𝟑 ∗ 𝟐 ) 𝒌 𝒌=𝟎 𝟏 𝑲−𝟏 𝒙𝒌 𝟐 (𝟑 ∗ 𝟐𝟐𝑹 ) 𝒌=𝟎 𝑲  Quando 𝒔𝒇𝒎 = 𝑲−𝟏 𝟐 𝒌=𝟎 𝒙𝒌 𝟏 𝑲 ( 𝟏 𝑲 𝑲−𝟏 𝟐 𝒌=𝟎 𝒙𝒌 ) alocação com ponto flutuante é melhor < 𝟏, a Ganho de Codificação e Planitude Espectral  𝒔𝒇𝒎 = 𝑲−𝟏 𝟐 𝒙 𝒌 𝒌=𝟎 𝟏 𝑲 ( 𝟏 𝑲 𝑲−𝟏 𝟐) 𝒙 𝒌 𝒌=𝟎 ≤ 𝟏 (Média Geométrica/Média Aritmética)  Igual a 1 para ruído branco  Quanto menor, maior ganho de codificação Quantização em Ponto Flutuante por Blocos  Número de bandas de frequência pequeno  Alocação ótima de bits  Quantização amostra por amostra  Número de bandas de frequência grande  Agrupamento de amostras em sub-bandas  Quantização das sub-bandas em FP por Blocos Quantização em Ponto Flutuante por Blocos  Equação de alocação de bits para sub-banda “b”: 𝒐𝒑𝒕  𝑹𝒃 = 𝑷 𝑲𝒑 + 𝟏 𝒍𝒐𝒈𝟐 𝟐 𝒙𝒎𝒂𝒙 𝒃 𝟐 − 𝟏 𝑲𝒑 𝒑𝒂𝒔𝒔𝒆𝒅 𝒃 𝑵𝒃 ∗ 𝟏 𝒍𝒐𝒈𝟐 𝟐  b -> índice de sub-banda  Nb -> Número de amostras na sub-banda “b”  𝑥 2 𝑚𝑎𝑥𝑏 -> Valor máximo de 𝑥 2 𝑘 na sub-banda “b” 𝒙𝒎𝒂𝒙 𝒃 𝟐 Quantização em Ponto Flutuante por Blocos  Informações necessárias para descrever alocação:  Se bandas são passadas e quantos bits por banda  Alocação ótima de bits:  Garantir resultados coerentes  Número de bits alocados positivo  Pelo menos 2 bits de mantissa para quantizações midtread Quantização em Ponto Flutuante por Blocos  Informações necessárias para descrever alocação  Problema:  Overhead  Número grande de alocações diferentes por sub-banda  Solução:  Valores pré-definidos no decodificador  MPEG II – máximo de bits alocados para certas bandas Quantização em Ponto Flutuante por Blocos  Equação de alocação de bits  Problemas:  Número de bits alocados > máximo permitido  Número de bits alocados < 2 por sub-banda Quantização em Ponto Flutuante por Blocos  Soluções:  Ajustar limites superior e inferior do sinal  Alocação “water-filling” Quantização em Ponto Flutuante por Blocos  Escolha de limites de sinal para alocação de bits:  2 1 Se 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 ) > 2 𝑏 limite máximo => máximo de alocação de bits(Saturação)   2 1 Se 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 ) < limite mínimo => nenhum bit é alocado 2 𝑏 2 1 Se limite mínimo < 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 ) < limite máximo: 2 𝑏  Fórmula ótima de alocação de bits para sub-banda  Se resultados da fórmula incluirem alocações superiores ao limite máximo de bits ou inferiores a 2 bits  limites de sinal inválidos  Aumenta limite inferior e diminui superior. Quantização em Ponto Flutuante por Blocos  Alocação “water-filling”: Condição inicial (0 bits) Ordenar sub-bandas Limite = 2 1 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 ) 2 𝑏 2 1 Max( 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 )) 2 𝑏 1 Limite-- Se (2 𝑙𝑜𝑔2 (𝑥𝑚𝑎𝑥 2 𝑏 )) >= Limite Se numBits𝑏 < MaxBits numBits𝑏 ++  Até que P=0  Se existirem sub-bandas com numBits𝑏 = 1, agrupar em pares na mesma situação ou distribuir bits para outras amostras.