Provavelmente, não deve surpreender ninguém que as imagens que olhamos todos os dias – impressas ou em uma tela – são simplesmente ilusões. Essa foto do gato não é na verdade um gato, mas uma coleção de pontos que, quando olhados para longe o suficiente, trata nosso cérebro para pensar que estamos realmente olhando para um gato bidimensional e felizmente preenche os espaços em branco. Esses pontos podem usar o modelo completo de cores CMYK para impressões, RGB (A) para imagens digitais ou um espaço de cores limitado, incluindo a escala de escala.
Talvez mais interessante seja o uso do Dithering para enganar ainda mais a mente a ver coisas que não estão realmente lá adicionando ruído. Simplificando, o Dithering é o processo de adição de ruído para reduzir o erro de quantização, que nas imagens aparece como artefatos como a banda colorida. Dentro do campo do item digital de áudio também é usado, por razões semelhantes. Parte do processo de passar de um sinal analógico para um digital envolve jogar fora dados que ficam fora da taxa de amostragem e profundidade de quantização.
Ao adicionar ruído de item, esses erros de quantização são suavizados, com o efeito final, dependendo do algoritmo de item utilizado.
A era digital
Durante a maior parte da história, os métodos de gravação e reprodução visuais da humanidade foram analógicos, começando com métodos como desenho e pintura. Até que a reprodução de música bastante recentemente exigia que você montasse artistas qualificados, até a chegada das tecnologias de gravação e reprodução analógicas. Então, de repente, com o aumento da tecnologia de computadores na segunda metade do século XX, ganhamos a capacidade de não apenas executar a conversão analógica em digital, mas também armazenamos o formato digital resultante de uma maneira que prometia reprodução quase perfeita.
Discos e fitas ópticos digitais viram -se competindo com formatos analógicos, como a cassete compacta e os registros de vinil. Embora o vídeo e as fotos permanecessem analógicos por um longo tempo na forma de fitas e filmes do VHS, eventualmente, todos eles deram lugar ao mundo totalmente digital das câmeras digitais, JPEGs, PNGs, DVDs e MPEG. Apesar da reprodução teórica de pixels e notas perfeitas de formatos digitais, considerações como velocidade de amostragem (Frequência Nyquist) e os erros de quantização acima mencionados significam uma variedade de novas dores de cabeça para resolver.
Dito isto, o primeiro uso do Dithering foi na verdade no século XIX, quando jornais e outras mídias impressas procuravam imprimir photos sem o aborrecimento de ter uma xilogravura ou gravura feita. Isso levou à invenção de meio -tom impressão.
Bolinhas
Com os métodos precoces de impressão, as ilustrações foram limitadas a uma abordagem tudo ou nada com a cobertura da tinta. Obviamente, isso significava limitações sérias quando se tratava de ilustrações e fotografias mais detalhadas, até a chegada do método de impressão de meio -campo. Patente -se em 1852 por William Fox Talbot, sua abordagem usou uma tela especial para dividir uma imagem em pontos discretos em uma placa fotográfica. Depois de desenvolver isso em uma placa de impressão, essas placas imprimiriam esse padrão de pontos de tamanho diferente.
Embora os métodos exatos de impressão de meio -metalronas tenham sido refinados nas décadas seguintes, o princípio básico permanece o mesmo até hoje: variando o tamanho do ponto e o espaço vazio (branco) circundante, o brilho percebido muda. Quando esse método foi estendido a impressões coloridas com o modelo de cores CMYK, a impressão resultante dessas três cores, pois pontos adjacentes permitiram que as fotografias coloridas fossem impressas em jornais e revistas, apesar de terem apenas poucas cores de tinta disponíveis.
Embora também seja possível fazer a impressão CMYK com a mistura das tintas, como nas impressoras a jato de tinta, isso vem com algumas desvantagens, especialmente quando a impressão em papel fino e de baixa qualidade, como o usado para jornais, pois a saturação da tinta pode fazer com que o papel rasgue e distorça. Isso faz com que o Dithering CMYK e monocromático ainda seja uma técnica popular para jornais e aplicações semelhantes de baixa fidelidade.
Paletas de cores
Em um mundo ideal, toda imagem teria uma profundidade de cor ilimitada. Infelizmente, às vezes temos que nos adaptar a um espaço de cores mais estreito, como ao converter para o formato de intercâmbio de gráficos (Gif), que é limitado a 8 bits por pixel. Esse formato da era e ainda muito popular de 1987 fornece, portanto, uma surpresa de um desafio de 24 bits-o que representa um desafio ao usar um PNG de 24 bits ou formato semelhante à fonte. Simplesmente reduzir a profundidade do bit causa uma faixa de cores horríveis, o que significa que devemos usar o Dithering para facilitar essas transições nítidas, como o algoritmo de Dithering muito comum do Floyd-Steinberg:
O algoritmo de Dithering Floyd-Steinberg foi criado em 1976 por Robert W. Floyd e Louis Steinberg. Sua abordagem ao Dithering é baseada em Difusão de erroo que significa que leva o erro de quantização que causa a faixa nítida e a distribui pelos pixels vizinhos. Dessa forma, as transições são menos abruptas, mesmo que isso signifique que exista uma degradação de imagem perceptível (ou seja, ruído) em comparação com o original.
Esse algoritmo é bastante direto, descendo a imagem de um pixel de cada vez sem afetar os pixels processados anteriormente. Após obter o erro de quantização do pixel atual, isso é distribuído pelos pixels subsequentes seguintes e abaixo do atual, como no código pseudo abaixo:
for each y from top to bottom do for each x from left to right do oldpixel := pixels[x][y] newpixel := find_closest_palette_color(oldpixel) pixels[x][y] := newpixel quant_error := oldpixel - newpixel pixels[x + 1][y ] := pixels[x + 1][y ] + quant_error × 7 / 16 pixels[x - 1][y + 1] := pixels[x - 1][y + 1] + quant_error × 3 / 16 pixels[x ][y + 1] := pixels[x ][y + 1] + quant_error × 5 / 16 pixels[x + 1][y + 1] := pixels[x + 1][y + 1] + quant_error × 1 / 16
A implementação do find_closest_palette_color()
A função é a chave aqui, com uma imagem em escala de cinza um simples round(oldpixel / 255)
suficiente, ou trunc(oldpixel + 0.5)
como sugerido Neste material do curso CS 559 de 2000 pelo Universo de Wisconsin-Madison.
Por mais básico que seja Floyd-Steinberg, ainda é comumente usado hoje devido aos bons resultados que oferece com um esforço bastante mínimo. O que não quer dizer que não haja outros algoritmos de enditer por aí, com o Entrada da Wikipedia sobre Dithering apontando uma série de alternativas, tanto na mesma categoria de difusão de erro quanto em outras categorias como Dithering ordenado. No caso de Dithering ordenado, existe um padrão de hachura distinto que é muito reconhecível e potencialmente desanimador.
É claro que o Dithering é realizado aqui para compensar a falta de profundidade, o que significa que nunca parecerá tão bom quanto a imagem original, mas quanto menos desagradáveis os artefatos resultantes forem, melhor.
Dithering com áudio
Embora, à primeira vista, o Dithering com áudio digital pareça muito distante de derrotar o erro de quantização das imagens, os mesmos princípios se aplicam aqui. Quando, por exemplo, a gravação original deve ser reduzida para o áudio de qualidade de CD (ou seja, 16 bits), podemos arredondar ou truncar as amostras originais para obter o tamanho da amostra desejado, mas obteríamos distorção em ambos os casos. Essa distorção é altamente perceptível pelo ouvido humano, à medida que os erros de quantização criam novas frequências e harmônicos, isso é bastante perceptível nos exemplos de redução de redução de 16 a 6 bits fornecidos no Entrada da Wikipedia.
Na amostra com Dithering, há claramente o ruído audível, mas o sinal original (uma onda senoidal) agora soa bem perto do sinal original. Isso é feito através da adição de ruído aleatório a cada amostra, arredondando -se aleatoriamente e contando com média. Embora o ruído aleatório seja claramente audível no resultado final, é significativamente melhor do que a versão indistiosa.
A distribuição aleatória de ruído também é possível com as imagens, mas métodos mais refinados tendem a fornecer melhores resultados. Para o processamento de áudio, existem distribuições alternativas de ruído e abordagens de modelagem de ruído.
Independentemente de qual método Dither esteja sendo aplicado, ele continua fascinante como a humilde erro de impressão e erros de quantização levaram a tantas maneiras diferentes de enganar o olho e o ouvido humanos a aceitar o conteúdo de menor fidelidade. Como muitas das limitações técnicas que existiam durante o tempo de sua concepção – como armazenamento caro e baixa largura de banda – agora desapareceram, será interessante ver como o uso de que o uso evolui nos próximos anos e décadas.
Imagem em destaque: “JJN Dithering” de [Tanner Helland]’s Ótima redação de Dithering.