Pular para o conteúdo
Bancada
Sobre
Vídeo / Fundamentos

Profundidade de bits

A segunda operação da digitalização: como a profundidade de bits define a precisão de cada amostra, por que gradientes geram banding, como o dithering resolve e por que capturar em 10/12 bits preserva margem de pós-produção.

Alfredo Neto4 min de leitura
Sumário (8)

A profundidade de bits abre o tema da quantização na série e, com ele, a segunda das duas operações que tornam qualquer imagem digital possível. Os três artigos anteriores trataram, sob ângulos diferentes, de amostragem: a Resolução amostra o espaço, a Taxa de quadros amostra o tempo. A profundidade de bits trata do que sobra — com quanta precisão o valor medido em cada amostra é registrado. É também o análogo direto da profundidade de bits do áudio, e boa parte do que vale lá vale aqui.

Amostragem e quantização

Digitalizar qualquer sinal contínuo envolve duas operações independentes. A primeira é a amostragem: decidir onde e quando medir. A segunda é a quantização: decidir com que precisão registrar o valor de cada medida. Uma cuida dos pontos; a outra, da escala em que cada ponto é lido.

Em vídeo, a amostragem já foi coberta: a resolução determina quantos pontos no espaço, a taxa de quadros quantos no tempo. Falta a escala de valores. A intensidade de luz que chega a cada amostra é, na origem, uma quantidade contínua — pode assumir qualquer valor. Para ser armazenada, essa quantidade precisa ser arredondada a um entre um conjunto finito de níveis discretos. A profundidade de bits é o que define quantos níveis existem nesse conjunto.

As duas operações são ortogonais: pode-se amostrar densamente e quantizar de forma grosseira, ou o inverso. São perguntas distintas — "quantos pontos?" e "quantos níveis por ponto?".

O que é profundidade de bits

A profundidade de bits é o número de bits usados para registrar a intensidade de cada canal de cor em cada pixel. Com n bits, há 2ⁿ níveis disponíveis:

ProfundidadeNíveis por canalCálculo
8 bits2562⁸
10 bits1.0242¹⁰
12 bits4.0962¹²
16 bits65.5362¹⁶

Há uma distinção terminológica que causa confusão constante: bits por canal não é o mesmo que bits por pixel. Uma imagem colorida típica tem três canais (vermelho, verde e azul), de modo que 8 bits por canal equivalem a 24 bits por pixel — daí o termo "cor de 24 bits". O número de cores possíveis é o produto dos níveis dos três canais:

  • 8 bits por canal: 256³ ≈ 16,7 milhões de cores ("24 bits")
  • 10 bits por canal: 1.024³ ≈ 1,07 bilhão de cores ("30 bits")

Quando alguém diz "vídeo de 10 bits", refere-se quase sempre a bits por canal. A profundidade por pixel é esse valor multiplicado pelo número de canais.

Erro de quantização e banding

Como cada valor contínuo é arredondado ao nível discreto mais próximo, sempre há uma diferença entre o valor real e o registrado: o erro de quantização. Com níveis suficientes, esse erro é pequeno demais para ser notado. Quando os níveis são poucos para a transição em causa, ele se torna visível.

O sintoma característico é o banding (ou posterização): em regiões de transição tonal suave — um céu ao entardecer, uma sombra que se dissolve, um fundo em gradiente — os degraus entre níveis adjacentes deixam de ser imperceptíveis e aparecem como faixas de cor sólida separadas por contornos nítidos. A imagem que deveria variar continuamente passa a variar em saltos visíveis.

É por isso que 8 bits, suficientes para a maioria das imagens, falham justamente nos gradientes amplos e suaves: 256 níveis distribuídos por uma transição longa podem não ser densos o bastante para que os degraus desapareçam. Aumentar a profundidade de bits aproxima os níveis e dissolve as faixas — o banding é, antes de tudo, um problema de quantização grosseira demais para o conteúdo.

Dithering

Existe uma alternativa a simplesmente adicionar bits: o dithering. A ideia, idêntica à do dithering em áudio, é adicionar uma pequena quantidade de ruído ao sinal antes de quantizar. Esse ruído faz com que pixels vizinhos, que de outro modo cairiam todos no mesmo nível, se distribuam entre níveis adjacentes. O sistema visual, ao integrar a região, percebe uma média intermediária — uma tonalidade que os níveis disponíveis, sozinhos, não conseguiriam representar.

A troca é a mesma de sempre: o dithering não cria níveis novos, ele substitui o erro estruturado por erro não estruturado. Os contornos nítidos do banding, que o olho detecta com facilidade por serem organizados, dão lugar a uma textura de ruído fino, à qual a visão é muito mais tolerante. Troca-se um artefato evidente por outro, menos incômodo.

Profundidade de bits e margem de pós-produção

Uma das razões para capturar e trabalhar com mais bits do que a entrega final exige é a margem de manobra. As profundidades de captação, de trabalho e de exibição podem ser diferentes ao longo da cadeia, e não por acaso.

Operações de pós-produção — ajustes de exposição, curvas, color grading — esticam e comprimem faixas tonais. Esticar uma faixa equivale a afastar os níveis que a compõem: se havia poucos níveis ali, abrem-se lacunas entre eles, e o banding que não existia na imagem original surge depois da edição. Trabalhar com 10 ou 12 bits oferece níveis sobrando, de modo que essas operações possam ser aplicadas sem que os degraus se tornem visíveis, mesmo que o resultado seja por fim reduzido a 8 bits para entrega. As cadeias profissionais mais exigentes vão além e usam representação em ponto flutuante, assunto que pertence aos artigos Sensor de imagem e Color grading.

O que a profundidade de bits não é

Não é o espaço de cor

Esta é a confusão mais comum: imaginar que mais bits significam "mais cores" no sentido de cores novas. A profundidade de bits controla quão finos são os degraus dentro de uma faixa de cores; o espaço de cor (o gamut) controla qual é a extensão dessa faixa — onde estão suas fronteiras. Acrescentar bits subdivide mais finamente o mesmo intervalo, sem deslocar suas bordas; não torna as cores mais saturadas nem alcança matizes antes impossíveis. As duas coisas são independentes e a extensão fica para o artigo Modelo e espaço de cor.

Não é a faixa dinâmica

De modo análogo, a profundidade de bits não é a faixa dinâmica. A faixa dinâmica é a razão entre o ponto mais claro e o mais escuro que a imagem distingue; a profundidade de bits é em quantos degraus essa razão — qualquer que seja seu tamanho — é subdividida. Pode-se ter muitos níveis sobre uma faixa pequena, ou poucos níveis sobre uma faixa grande. Quão suficiente uma dada profundidade parece depende ainda de como os níveis são distribuídos ao longo da faixa, já que a percepção humana de brilho não é linear — uma questão de função de transferência tratada em Faixa dinâmica.