Laboratório de quantização

como a quantização transforma tons suaves em degraus

A carregar a simulação interativa...

a compressão muitas vezes começa com a dor da quantização 🖖

A quantização é onde valores contínuos ou de alta precisão são arredondados para um codebook finito. O erro costuma ser pequeno por amostra, mas gradientes suaves o expõem como bandas de contorno, porque pixels vizinhos arredondam para os mesmos poucos valores de saída. O dither adiciona ruído deliberadamente antes do arredondamento: ele aumenta o ruído local, mas quebra bandas coerentes, o que muitas vezes parece melhor para a visão humana e é comprimido de forma diferente nos codecs. • Gradiente de origem vs. saída: a faixa superior mostra o gradiente de entrada matematicamente suave. A faixa inferior mostra a saída quantizada, arredondada para os níveis selecionados. Em profundidades de bits baixas, esse arredondamento cria bandas de contorno visíveis. • Gráfico de erro de quantização: isso plota a diferença (saída − entrada) em cada posição ao longo do gradiente. A linha amarela é o erro, e a linha verde representa erro zero. Grandes ondas de erro periódicas indicam banding, enquanto adicionar dither randomiza esse erro em ruído de alta frequência.

Bits são só quantos degraus você tem 🖖

Um degradê no mundo real é contínuo, mas um computador precisa escolher de uma lista fixa de valores. A profundidade de bits define o tamanho dessa lista: cada bit a mais dobra a quantidade, então 8 bits dão 2⁸ = 256 tons e 10 bits dão 1024. Menos degraus significam arredondamento mais grosseiro; por isso, ao cair para 6 bits (64 tons), um céu suave se quebra em faixas visíveis.

Cada bit a mais rende cerca de 6 dB 🖖

Há uma regra limpa escondida no valor de SNR: na quantização uniforme, cada bit adicional melhora a relação sinal-ruído em cerca de 6.02 dB, segundo SNR ≈ 6.02·N + 1.76 dB para uma senoide de plena escala. A mesma fórmula rege conversores de áudio e codificadores de imagem, de modo que uma faixa de áudio de 16 bits e uma imagem de 16 bits compartilham o mesmo piso de ruído de quantização teórico. Um bit a mais, 6 dB de ganho — não importa o meio.

UMA ETAPA DE UMA CADEIA — O QUE ENTRA, O QUE SAI E O QUE QUEBRA DEPOIS

Onde isto fica no pipeline de codificação

Um codificador de vídeo não é um algoritmo, mas oito etapas numa ordem fixa, e a ordem não é arbitrária: cada etapa existe porque a anterior tornou o seu trabalho possível. Esta ferramenta modela uma delas. A cadeia abaixo liga às outras sete.

Laboratório de quantização — divide coeficientes por um passo e arredonda — o único passo deliberadamente com perda

O que entra
Coeficientes de transformada do resíduo, em precisão plena.
O que sai
Inteiros mais grosseiros, com a maioria dos pequenos coeficientes de alta frequência arredondados para zero.
O que a etapa seguinte pressupõe
A codificação entrópica pressupõe longas sequências de zeros para explorar. É esta etapa que as fabrica.
O que dá errado aqui
É a única etapa que descarta informação de propósito, então é aqui que a qualidade é realmente decidida. Um passo grosseiro demais faz um gradiente suave desabar em faixas visíveis, porque tons vizinhos arredondam para o mesmo inteiro.

Problema resolvido na íntegra

  1. Reconciliar 56,18 dB de quantização de 8 bits com a regra dos manuais 6 passos

    A quantização de 8-bit dá 56,18 dB aqui, mas a regra dos manuais diz 6,02 × 8 + 1,76 = 49,92 dB. Ambas estão certas. Concilie-as.

    1. O tamanho do passo é a gama dividida pelos intervalos entre níveis, e não pelos níveis — 256 níveis deixam 255 intervalos, e o erro por um vale 0,017 dB que ninguém notaria e uma fórmula errada que todos herdariam.

    2. O arredondamento para o nível mais próximo deixa um erro distribuído uniformemente ao longo de um passo. O seu valor RMS é o passo a dividir por √12, que é o único elemento de estatística em toda a dedução.

    3. Compare essa previsão com o que a ferramenta mediu ao longo das 900 amostras. A concordância até 1% mostra o valor da hipótese de erro uniforme numa rampa real.

    4. A SNR é o rácio dos dois valores RMS em decibéis. Ambos os números estão impressos, pelo que este passo é uma verificação e não uma dedução.

    5. Agora a regra dos manuais, com o seu pressuposto tornado explícito. É deduzida para uma sinusoidal que preenche exatamente a gama de entrada.

    6. Calcule o rácio dos dois valores RMS e converta. A correção reduz a diferença para menos de quatro centésimos de decibel.

    Resposta

    A diferença de 6,2 dB é o fator de crista, e nada mais. 6,02N + 1,76 não é uma lei sobre conversores, é uma lei sobre ondas sinusoidais a toda a escala — uma sinusoidal que preencha a gama tem um valor RMS de 1/(2√2) = 0,354 dessa escala. Esta rampa de imagem tem um valor RMS de 0,724, ligeiramente mais do dobro, e 20 log₁₀(2,05) é 6,22 dB. Somando este valor obtém-se 56,14 contra os 56,18 do painel, sendo os 0,04 dB restantes o erro medido a ficar 0,7% abaixo do Δ/√12 teórico. Assim, a SNR indicada de qualquer sistema real é uma afirmação tanto sobre o sinal como sobre o hardware, razão pela qual os engenheiros de áudio indicam o headroom separadamente e por que uma passagem silenciosa num disco de 16-bit não obtém 96 dB de nada.

Referências (1)

Problemas de exemplo

  • cinema 10 bits - Configuração de 10 bits estilo grading, com transições tonais suaves
  • web 8 bits - Pipeline padrão de 8 bits com passos de quantização moderados
  • baixo 6 bits - Baixa precisão mostra bandas de contorno visíveis
  • 6 bits com dither - O dither troca ruído suave por menos banding