Quem sou eu e o que este blog.

Minha foto

Sou viciado em computação, Internet e Fotografia. Morei por quase 6 anos, e ainda frequento, Paraty. Sou usuário de softwares Open Source, tendo dado algumas contribuições em diversas ocasiões.

segunda-feira, 14 de julho de 2014

HDR: Alguns mitos e fatos

Eu vejo muita gente falando sobre HDR, fazendo, tentado fazer etc. Alguns fazendo coisas lindas, e outros fazendo coisas muito cafonas, horrorosas. Mas também vejo muita confusão sobre o assunto. Tem muita gente cometendo erros, e até falando bobagens (Existe o risco de eu falar alguma aqui, e mudar de ideia depois.) etc, e muito disto é por que não entendeu o que é HDR. Então resolvi esclarecer algumas coisas.

Um pequeno desafio  para começar. Qual(is) das três imagens abaixo é(são) um HDR de verdade?

Imagem 1

Imagem 2

Imagem 3

HDR é uma técnica de fotografia digital?

Não. HDR não é uma técnica de fotografia digital, e sim, uma técnica de processamento digital de imagens. Tanto é que o HDR da igreja que Paul Debevec apresentou na SIGGRAPH 97, quando ele apresentou a técnica, foi todo fotografado com filme. Ele fez 16 fotos com diversas exposições diferentes usando filme, que foi revelado, digitalizado e depois processou montando o HDR.

O PDF com a apresentação citada acima pode ser obtido aqui (em inglês).

Eu faço HDR com uma foto.

Realmente não faz mesmo. Você faz Pseudo-HDR, mas não HDR. Especialmente se usar uma foto JPEG. Você está confundindo a coisa, mesmo que os resultados sejam bonitos. Existe uma grande diferença.

Mas peço para o Photoshop gerar duas imagens diferentes do JPG, uma com +2 EV e outra com -2 EV, e aí faço o HDR (Já vi isto, por incrível que pareça.). Dá na mesma, pois só tem uma única exposição da cena, portanto não acrescentou nenhuma informação real de luminosidade.

HDR é uma técnica que permite lidar com a grande gama de luminosidade que existe em uma cena, maior do que a câmera consegue captar em uma única exposição, uma simples foto. Portanto, se usar uma única exposição não é HDR. Isto será melhor explicado adiante.

Nada contra fazer Pseudo-HDR, eu mesmo já fiz muitos, mas tenha em mente que não é HDR.

Ansel Adams

Ansel Adams (1902-1984) (Insisto que leia a página sobre ele na Wikipedia apontado pelo link no nome dele.) foi um fotógrafo muito meticuloso e é considerado um dos pais da fotometria. Ele fez fotografias de paisagens com uma riqueza de detalhes tão grande que muitos fotógrafos atuais, mesmo usando HDR, tem dificuldade de alcançar. Ele tinha uma grande compreensão de como se comportava o negativo e de como processá-lo, e entendia a luminosidade da cena. Acredito que não seja muito exagero falar que, quando ele olhava a cena que queria fotografar, ele já planejava todo o processo, da medição de luz, onde iria medir, como iria medir, até a ampliação, passando pela revelação do negativo etc.

Eu fortemente recomendo estudar o Sistema de Zonas de Ansel Adams antes de estudar HDR. Ele lhe dará uma boa compreensão da luz de uma cena e o que é latitude. Pena que o artigo da Wikipédia em português seja só uma descrição vaga. O artigo em inglês está bom.

Repito: Recomendo fortemente estudar o Sistema de Zonas e sobre Ansel Adams antes de estudar HDR.

HDRI x LDRI

HDRI é a imagem com muitos tons, com uma gama de luminosidade muito alta, maior do que é possível representar com um LDRI.

Um típico formato LDRI é o JPEG. Ele representa no máximo 256 tons para cada uma das três cores primárias (quando usa 8 bits por cor), limitado em 16777216 cores (24 bits no total). Esta gama de cores também chamada de True Color. Tem este nome por que antigamente nenhum, depois quase nenhum, posteriormente muitos, até que finalmente, com o avanço da tecnologia, a grande maioria dos hardwares passaram a poder representar tantos bits de cor. Tem praticamente todos (em teoria), os tons de cor distinguíveis pelo ser humano. Mesmo assim é incapaz de representar toda a luminosidade possível em uma cena.

Formatos de arquivo para armazenar Imagens HDR (HDRI) usam mais bits por cor (16 bits por cor, 32 bits por cor), quando não usam ponto flutuante (a forma de se representar números reais no computador). O formato mais comum é o OpenEXR (Aqui para ver na Wikipedia em inglês.) criado pela ILM.

Nada impede armazenar em um formato de arquivo para HDR uma LDRI (Imagem LDR), mas não trás nenhum benefício real. O contrário é impossível.

Imagens RAW e funcionamento das câmeras digitais

O sensor das câmeras digitais é analógico. Não tem como ser diferente. Depois de terminada a exposição um circuito varre todo o sensor, pixel por pixel, passando o sinal de cada pixel para um amplificador, cuja saída vai para um digitalizador. Por questões tecnológicas, de desempenho, imunidade a ruído etc, todas estas etapas estão no mesmo chip, do sensor ao digitalizador. Então o sinal já sai digitalizado do chip do sensor.

Este digitalizador geralmente tem 12 bits por cor (Na realidade é um pouco mais complicado, veja o Sensor Bayer.). De câmeras melhores tem 14 bits por cor, e já soube de alguns até 16 bits por cor.

Mesmo saindo do digitalizador mais bits por cor, isto não implica em ser um HDR, pois está limitado à faixa de luminância que o sensor é capaz de captar. Mas implica que, dentro desta faixa, se tem mais nuances de cores e tons (Isto ajuda a edição da imagem.).

Um software na câmera poderá tratar esta imagem, ajustando o equilíbrio de branco, fazendo redução de ruído, interpolação de cores, contraste, em alguns casos alterando o tamanho etc, e gerando o JPEG. Uma das consequências deste processamento é o descarte de informações, de detalhes, de nuances.

As câmeras boas dão a opção de salvar esta imagem como saiu do digitalizador, com mais bits e sem tratamento, dando a opção do fotógrafo, ou qualquer outra pessoa que for tratar/editar esta imagem, mais liberdade criativa.

Terei que voltar a este assunto adiante.

Múltiplas exposições

Como se obtém uma imagem com mais tons de luminosidade do que o sensor pode captar?

Imagine que você tem uma trena menor do que a distância que você precisa medir. O que você faz? Vamos piorar. É uma rua que você vai medir, e não precisa só do comprimento dela, mas também das distâncias entre as árvores, os postes, os hidrantes, os bueiros, as caixas de correio, lixeiras e tudo mais que está pelo caminho. E a sua trena ainda está com o seu início meio apagado, o que torna o início menos confiável (Problema comum em trenas.).

Então você começa a medição de um ponto da trena que é confiável, que não está apagado, que chamaremos de "novo zero", e estica até onde puder. Anota as medidas que encontrar. Se desloca para fazer a segunda medida, e coloca o "novo zero" da trena que onde tinha terminado a primeira medida. Faz as novas medidas. Você sabe que tem que somar uma certa distância nas medidas, que é o comprimento entre o ponto zero e o final da trena.

Mas se quiser ter mais precisão? Um dos modos de ter mais precisão em uma medida é fazê-la diversas vezes. Então, ao invés de avançar o "novo zero" por toda a distância que a trena mediu, pode avançar um pouco, digamos, 20% da distância. O inconveniente é que terá que fazer mais medidas para medir a rua inteira, e a vantagem será mais precisão em todas as medições de distâncias entre os objetos da rua. Poderá pegar várias das medidas distância entre os objetos e calcular a média.

Compliquei muito? Espero que não.

O HDR é assim. Cada medida da trena equivale uma exposição, uma foto. O deslocamento da trena pode ser traduzido como a alteração do nível de exposição (Se faz isto alterando o tempo de exposição.). E as distâncias como níveis de luminosidade.

Com os deslocamentos da trena se mede distâncias muito maiores do que o comprimento dela. Com as variações do tempo de exposição se mede uma faixa dinâmica (No filme se chamava de latitude.) maior, ou até muito maior, do que o sensor pode cobrir em uma fó foto. Assim se consegue capturar diferenças níveis de luminosidade que o sensor nunca conseguiria em uma foto só.

Daí que surge o nome HDR (High Dynamic Range), que pode-se traduzir mais ou menos como Grande Faixa Dinâmica.

Por que o início da trena foi ignorado, por que foi considerado ruim? Por que as partes mais escuras em uma foto não tem boa definição. Se é uma foto digital, ela é ruidosa, pois tem uma relação sinal/ruído baixa. Se é com filme, ela não tem muitos detalhes. Este foi um dos motivos que mandei ler sobre o Sistema de Zonas.

Por que e quando fazer HDR?

O leitor aqui já tem uma ideia clara porque fazer HDR.

É necessário fazer um HDR quando se quer, ou necessita, capturar uma gama de tons e faixa de luminosidade acima da capacidade de captura de seu equipamento, e até mesmo, acima da capacidade de seu olho.

Voltando ao Pseudo-HDR

Então HDR com uma foto só, uma só exposição, não existe. Contraria o princípio básico do HDR, pois ainda está limitada a uma única captura. Não captura nada mais do que uma única captura é capaz de fazer.

Objetos em movimento

Para se fazer múltiplas capturas é necessário que nada mude, nem em luminância, nem se mova. Se alguma coisa se mover ela pode não se encaixar com ela mesma em outra exposição, gerando imagens borradas.

Folhas de árvores quando se tem vento, pessoas andando etc, são um problema sério. Então, neste caso, não é possível fazer um HDR, e somente é possível fazer um Pseudo-HDR. Não se tem escolha.

Talvez por isto que algumas pessoas valorizam HDRs com detalhes bem definidos.

Existe a opção de recortar algo das exposições, deixando somente em uma. Neste caso se escolhe a melhor exposição para a área que está borrada, com o objeto em movimento, e trata. O Enfuse permite fazer isto.

Fazer Pseudo-HDR não é ruim. Pode fazer como arte. Mas tem que ter consciência que não está estendendo realmente a faixa dinâmica, que não é HDR.

Neste ponto volte a olhar as três imagens que ilustram o artigo. Você já é capaz de descobrir uma coisa interessante.

HDR e os hardwares e softwares atuais

Quase não existem hardwares de computador capazes de mostrar uma imagem HDR com toda a gama que ela pode alcançar. Imprimir pode se tornar um problema maior ainda.

Os sistemas gráficos, tanto hardware quanto software, podem ter limitações em representar mais do que 24 bits por pixel (8bits/cor/pixel). Sei que o sistema gráfico X-Windows, usado em sistemas Unix Like, VMS etc, é capaz de usar 16 bits/cor, o que daria 48 bits/pixel. Vi isto na versão 11.3 a mais de 20 anos atrás, e duvido que tenham desfeito isto. Mas mesmo assim, poucas placas gráficas, e muito menos monitores, são capazes de lidar com tal gama de cor e luminosidade. E os que existem, são muito caros.

É como se você tivesse que desenhar a rua citada acima, e não tivesse um papel do tamanho da rua, e/ou ele fosse caro, e/ou complicado de usar, e nem todos poderiam ver algo daquele tamanho etc.

Qual é a solução?

HDR X Tone Mapping

Aqui tem uma área que muita gente confunde. Chegamos ao cerne da confusão.

Como representamos uma imagem com uma gama de tons, de luminância, muito grande? Acrescento: E como as câmeras convertem a informação bruta que sai do digitalizador do sensor para uma imagem LDR que possa ser usada normalmente.

Para isto se aplica o Tone Mapping (Mapeamento de Tons), que pode ser feito de muitas maneiras diferentes. Existem vários algoritmos, como o Reinhard 2002, o Reinhard 2005, o Mantiuk 2006 (um dos meus preferidos), o Mantiuk 2008, o Drago, o Fattal etc, e ainda pode-se fazer à mão, ajustando as curvas.

Alguns destes métodos são muito realistas, como o Reinhard 2002, tanto é que desconfio que este seja o método usado pela minha câmera Panasonic FZ28. Uma vez consegui fazer uma imagem muito parecida com o JPEG que saiu da minha câmera tratando por este método.

Toda câmera que grava JPEG usa algum mapeamento de tons para tratar a imagem crua que sai do sensor para gerar a imagem de saída.

Pode-se pegar uma imagem que já tenha sido passada por um mapeamento de tons, como um JPEG que saiu de uma câmera, e fazer um novo mapeamento de tons, e ficar bonita, com algumas coisas realçadas, mas será no máximo um Pseudo-HDR bonito, e com partes mais visíveis. No processo você pegou uma imagem que já tinha perdido detalhes em um processamento e a modificou, que pode fazer perder mais detalhes ainda.

Para fazer Pseudo-HDRs é melhor a imagem RAW, que é a imagem crua que saiu do digitalizador, pois ela tem mais nuances.

Mais um pouco sobre o processamento

A fusão das imagens é o início do pós-processamento, e seria como a revelação dos negativos em um laboratório. É aí que um conjunto de imagens de faixa dinâmica limitada são unidas, uma por cima da outra, para formar uma imagem de maior gama de tons. As partes ruins, subexpostas e superexpostas, das imagens são descartadas e as boas passam por uma média ponderada, levando em conta o nível de exposição (Lembra o exemplo da trena limitada?). Neste ponto obtemos o HDR.

O programa que faz isto também pode ter dificuldade de mostrar toda a gama de tons alcançada, então pode usar algum método de mapeamento de tons para a exibição do resultado.

Então é feito o mapeamento de tons com algum método dos mencionados antes, ou algum outro, para fazer com que a imagem seja representável nas impressões, nas telas etc. Aqui talvez seja a parte mais "artística" do processamento, pois tem mais métodos e parâmetros para escolher, podendo dar resultados interessantes.

E sobre as imagens exemplo?

Se você leu atentamente o texto acima, pode olhar de novo as imagens e adivinhar por si mesmo qual das imagens é ou não HDR. Se quer tentar, olhe de novo as imagens antes de ler os parágrafos abaixo.

A primeira imagem NÃO é um HDR. Mas está muito colorida, linda etc, então como não pode ser? Sim, está colorida e linda, mas não é HDR, e nem tem como ser. O barco estava em movimento, tal como as ondas na água. Dá para ver o vagalhão atrás do barco. Esta é uma foto só tratada pelo método Fattal, que dá imagens não realistas, mas bonitas. Ela foi tratada usando a imagem RAW.

E a segunda? É um HDR? Saberia dizer? Sim ela é. Foram 9 exposições com níveis diferentes fundidas para formar uma só imagem HDR, usando os arquivos RAW. Chegou ao ponto de ter a lâmpada bem definida na imagem HDR. O método de mapeamento de tons usado foi Mantiuk 2006, mas os parâmetros foram alterados para dar o máximo de contraste e o mínimo de saturação, eliminando as cores e realçando os detalhes e o ruído da câmera.

E a terceira? É ou não um HDR? Ela não tem exageros. Ela é bem realista. Ela se parece muito com o que se vê no local. Então ela... É um HDR. Como assim? O olho humano tem uma faixa dinâmica muito superior às câmeras atuais, pelo menos 8 vezes maior do que as melhores. Esta imagem se parece muito com o que se vê no local, e até parece que tem mais coisas do que se consegue ver no local. As melhores câmeras não alcançam o nível de detalhes de luminosidade que é mostrado nesta imagem, e por isto que foi necessário fazer HDR.

Na terceira imagem foram combinadas 6 exposições, e na imagem HDR se tinham até as lâmpadas individualmente definidas dentro da luminária, mas o tratamento foi um pouco complicado. Os métodos de mapeamento de tons não me agradaram, então fiz à mão editando as curvas no programa de edição. Mesmo assim não consegui chegar ao ponto onde eu queria, no qual as lâmpadas ficariam bem definidas dentro das luminárias, mas cheguei perto.

E a água na terceira imagem? Ela estava parada, então não interferiu, e até contribuiu gerando um reflexo desejável.

Conclusões

HDR não é uma imagem de tons exagerados, de cores mais vivas, de detalhes mais bem definidos etc. Qualquer imagem pode ser tratada para ficar assim.

HDR é uma imagem com seus limites de luminosidade estendidos, que pode torná-la mais realista, mais fiel à realidade.

Mas não existem impedimentos de se usar métodos de mapeamento de tons desenvolvidos para HDR em imagens não HDR. Os resultados podem ser bons.

Mais para ler

Eu já escrevi antes sobre HDR, que pode ser interessante ler. No meu blog tem um artigo sobre Teoria Básica de HDR, e um de Making Of muito bons para ler.

Nenhum comentário:

Postar um comentário