Os arquivos RAW armazenam 3 cores por pixel ou apenas uma?

16

Ken Rockwell diz que os fabricantes de câmeras consideram os sensores R / G / B individuais quando falam em megapixels. Portanto, a imagem abaixo seria uma câmera de 6x6 pixels, não 3x3, como você imagina.

insira a descrição da imagem aqui

Se isso for verdade, um arquivo RAW conteria apenas uma informação de cor por pixel (R, G ou B) como um número de 10, 12 ou 14 bits.

Minha confusão vem quando eu leio em alguns lugares coisas como:

  • Os arquivos RAW armazenam uma média dos dois sensores verdes por pixel.
  • Os arquivos RAW usam 12 bits por pixel, mas existem 3 cores, o que significa 36 bits por pixel.

O que obviamente seria falso, se a reivindicação de Ken estiver correta.

Então qual é a verdade?

ariel
fonte

Respostas:

16

Arquivos brutos realmente não armazenar quaisquer cores por pixel. Eles armazenam apenas um único valor de brilho por pixel.

É verdade que, com uma máscara Bayer sobre cada pixel, a luz é filtrada com um filtro vermelho, verde ou azul¹ sobre cada poço de pixel. Mas não há um corte rígido no qual apenas a luz verde chegue a um pixel filtrado verde ou apenas a luz vermelha chegue a um pixel filtrado vermelho. Há muita sobreposição. Muita luz vermelha e alguma luz azul passam pelo filtro verde. Muita luz verde e até um pouco de luz azul passam pelo filtro vermelho, e alguma luz vermelha e verde é registrada pelos pixels filtrados em azul.

resposta de cor

Como um arquivo bruto é um conjunto de valores de luminância únicos para cada pixel no sensor, não há informações reais de cores por pixel em um arquivo bruto. A cor é derivada comparando os pixels adjacentes que são filtrados por uma das três cores com uma máscara Bayer. Mas, assim como colocar um filtro vermelho na frente da lente ao fotografar em preto e branco, não resultou em uma foto monocromática em vermelho (ou em preto e branco, onde apenasobjetos vermelhos têm brilho algum), a máscara Bayer na frente de pixels monocromáticos também não cria cores. O que ele faz é alterar o valor da tonalidade (quão brilhante ou quão escuro é o valor da luminância de uma determinada cor é registrado) de várias cores em diferentes quantidades. Quando os valores tonais (intensidades de cinza) dos pixels adjacentes filtrados com as três cores diferentes usadas na máscara Bayer são comparados, as cores podem ser interpoladas a partir dessa informação. Este é o processo que chamamos de demosaicing .

Muita matemática é feita para atribuir um valor de R, G e B para cada pixel. Existem muitos modelos diferentes para fazer essa interpolação. O quanto de desvio é dado ao vermelho, verde e azul no processo de desmaterialização é o que define o equilíbrio de branco / cor . A correção gama e qualquer modelagem adicional das curvas de resposta à luz é o que define o contraste . Mas, no final, um valor de R, G e B é atribuído a cada pixel. No exemplo de 6 x 6 pixels da pergunta, o resultado do desmembramento seria uma imagem de 36 pixels com 36 pixels, cada um com um valor de vermelho, verde e azul.

Um pouco de resolução está perdido na tradução. Acontece que, em termos do número de linhas alternadas em preto e branco por polegada ou mm que podem ser resolvidas por um sensor com uma máscara RGGB Bayer e desmembramento bem feito, o limite de resolução absoluto de um sensor Bayer é de cerca de 1 / √2 em comparação com um sensor monocromático que não possui máscara Bayer e, portanto, não precisa de demosaicing (mas só pode ser visto em preto e branco).

Mesmo quando sua câmera está configurada para salvar arquivos brutos, a imagem que você vê na parte de trás da tela LCD da câmera logo após tirar a foto não é um dado bruto não processado. É uma imagem de visualização gerada pela câmera, aplicando as configurações da câmera aos dados brutos que resultam na imagem de visualização jpeg exibida no LCD. Essa imagem de visualização é anexada ao arquivo bruto, juntamente com os dados do sensor e as informações EXIF ​​que contêm as configurações da câmera no momento em que a foto foi tirada.

As configurações de desenvolvimento da câmera para itens como balanço de branco, contraste, sombra, realces etc. não afetam os dados reais do sensor que é gravado em um arquivo bruto. Em vez disso, todas essas configurações estão listadas em outra parte do arquivo bruto.

Quando você abre um arquivo "bruto" no seu computador, vê uma das duas coisas diferentes:

  • A imagem jpeg de visualização criada pela câmera no momento em que você tirou a foto. A câmera usou as configurações em vigor quando você tirou a foto e as anexou aos dados brutos no arquivo .cr2. Se você estiver olhando para a imagem na parte traseira da câmera, é a visualização em jpeg que está vendo.

  • Uma conversão dos dados brutos pelo aplicativo que você usou para abrir o arquivo "bruto". Quando você abre um arquivo 'bruto' de 12 ou 14 bits em seu aplicativo de foto no computador, o que você vê na tela é uma renderização de 8 bits do arquivo bruto desmembrado que é muito parecido com um jpeg, não o arquivo monocromático de 14 bits filtrado pela Bayer. À medida que você altera as configurações e os controles deslizantes, os dados "brutos" são remapeados e renderizados novamente em 8 bits por canal de cor.

O que você vê dependerá das configurações que você selecionou para o aplicativo com o qual você abre o arquivo bruto.

Se você estiver salvando suas fotos no formato bruto quando as tirar, ao pós-processamento, terá exatamente as mesmas informações para trabalhar, independentemente das configurações de desenvolvimento selecionadas na câmera no momento em que você fotografar. Alguns aplicativos podem abrir o arquivo inicialmente usando a visualização jpeg ou aplicando as configurações da câmera ativas no momento em que a imagem foi gravada nos dados brutos, mas você pode alterar essas configurações, sem perda de dados destrutiva, para o que quer que seja você quer no correio.

O Digital Photo Professional da Canon abrirá um arquivo bruto .cr2 no mesmo estilo de imagem que foi selecionado na câmera ao fotografar. Tudo o que você precisa fazer para alterá-lo é usar o menu suspenso e selecionar outro Estilo Imagem . Você pode até criar uma "receita" para uma imagem e aplicá-la em lote a todas as imagens antes de começar a trabalhar com elas. O software de processamento bruto de outro fabricante é semelhante e geralmente há uma opção para que o aplicativo abra uma imagem com as configurações de desenvolvimento da câmera aplicadas.

Com aplicativos de processamento bruto de terceiros, como o Lightroom da Adobe ou o Camera Raw , o Aperture ou o Photos da Apple , o Capture One Pro da PhaseOne e o DxO Lab da PhaseOne , OpticsPro , etc. obter imagens para exibir de acordo com as configurações da câmera pode ser um pouco mais complicado. Os produtos da Adobe, por exemplo, ignoram a maioria das seções de notas dos criadores dos dados EXIF ​​de um arquivo bruto, onde muitos fabricantes incluem pelo menos algumas informações sobre as configurações da câmera.

¹ As cores reais da máscara Bayer na frente dos sensores da maioria das câmeras digitais coloridas são: Azul - uma versão levemente violeta do azul centrado em 450 nanômetros, Verde - uma versão levemente azulada do verde centrado em cerca de 540 nanômetros e Vermelho - uma versão ligeiramente laranja de amarelo. O que chamamos de "vermelho" é a cor que percebemos para a luz a cerca de 640 nanômetros de comprimento de onda. Os filtros "vermelhos" na maioria das matrizes Bayer permitem a passagem de mais luz em algo entre 590 e 600 nanômetros. A sobreposição entre os cones "verde" e "vermelho" na retina humana é ainda mais próxima do que isso, com o "vermelho" centrado em cerca de 565 nanômetros, que é o que percebemos como verde-amarelo.

Michael C
fonte
11
Isso é fundamentalmente incorreto. Você diz (ou pelo menos implica fortemente) que isso funciona porque as informações coloridas vazam para os vizinhos. Isso não é necessário. O Raw funcionaria bem se os filtros fossem absolutamente perfeitos. Diferentes algoritmos de demosaicing "envolvem muita matemática", mas o mais simples é apenas calcular a média dos pixels próximos e isso funciona surpreendentemente bem. Eu acho que isso foi feito vários milhões de vezes em uma imagem de vários megapixels que é tecnicamente "muita" matemática, mas não é matemática complicada - é uma coisa de terceira série.
mattdm
2
A Bayer funciona porque geralmente é um bom palpite de que o pixel, por exemplo, em um local filtrado em azul, tenha a mesma quantidade de verde que os pixels verdes ao lado (e o mesmo no vermelho). Quando esse palpite está desativado, você obtém artefatos, e é isso que os algoritmos mais complicados tentam resolver. Eles não funcionam assumindo conhecimentos especiais sobre a resposta de frequência dos filtros.
mattdm
11
Talvez eu tenha entendido mal o que você tem dito o tempo todo, desde que você traz isso à tona com frequência. :) Especialmente desde que você abre a resposta, você pode editar para explicar de uma maneira que torne isso mais claro? Particularmente, você quer dizer que os filtros sobrepostos significam que o resultado é fundamentalmente impreciso, independentemente do processamento realizado e apenas convivemos com isso, ou que pode ser feito com precisão por alguma transformação na demosiação, ou que pode ser feito com mais precisão outro passo que a renderização de arquivos RAW requer (mas que não faz parte da demonstração)?
mattdm
11
Quero dizer apenas que muitas pessoas descrevem a máscara Bayer incorretamente, permitindo apenas a luz verde através do filtro verde, permitindo apenas a luz vermelha através do filtro vermelho e permitindo apenas a luz azul através do filtro azul. Não é mais esse o caso do que dizer que o uso de um filtro verde com filme em preto e branco só permitiria capturar a luz verde na cena. O uso de um filtro verde significa apenas que a luz verde é permitida a uma taxa transmissiva mais alta do que a luz vermelha ou azul, mas algumas das três passam. É somente através da comparação das diferenças entre a luz ...
Michael C
11
A média de @mattdm dos pixels próximos produz uma foto muito embaçada, e não há nenhuma câmera no mercado que faça dessa maneira. Os algoritmos de des-dimensionamento aproveitam a correlação entre os pixels RGB para melhorar significativamente a resolução, ao custo de artefatos ocasionais. E há definitivamente matemática pesada envolvida.
Mark Ransom
2

É tudo verdade, mas a interpretação pode ser ampliada.

Esse padrão específico de cores brutas é chamado de padrão Bayer.

Sim, bruto é uma cor por pixel e esse pixel é (normalmente) 12 bits. Portanto, existem três cores de pixels brutos, alguns são azuis, outros são vermelhos e duas vezes essas contagens são verdes.

Posteriormente, o software de processamento bruto (para criar JPG RGB, pode estar imediatamente na câmera ou ser externo muito mais tarde) converte os dados brutos em uma imagem RGB para que possamos usá-lo. Isso é interpolação, pixels vizinhos das outras duas cores são combinados em cada um desses pixels RGB, mas todos se tornam pixels RGB. Nesse ponto, são pixels RGB de 36 bits, no entanto, a resolução espacial é levemente comprometida, com os vários dados de pixel sendo compartilhados com os vizinhos. Podemos acabar com (por exemplo) 6000 pixels RGB de largura do sensor, mas foram provenientes de 2000 sensores azuis e 2000 vermelhos etc. (e os dados também são compartilhados verticalmente, vêm de mais de três pixels). Isso é chamado demosaicing ... que pode ser encontrado online.

WayneF
fonte
IMHO normalmente são 14 bits. Somente câmeras antigas (Canon S120 por exemplo) armazenar 12 bits por pixel
Romeo Ninov
@RomeoNinov, não é tão simples quanto o antigo e o novo. Por exemplo, algumas Nikons permitem escolher 12 bits ou 14 bits, para que você possa fazer uma troca entre a profundidade da imagem e a taxa de disparo contínuo e o tamanho da imagem.
Peter Taylor
@ Peter Taylor, nunca sei disso, eu sou o atirador da Canon. Mas isso deve ser para mim uma exceção, não uma regra (12 bits). E, tanto quanto eu me lembro algumas câmeras armazenar em 16 bits por pixel
Romeo Ninov
Seria um argumento muito mais forte se você fornecesse alguma evidência da maioria das câmeras Canon com 14 bits. Aqui está Canon dizendo o contrário: cpn.canon-europe.com/content/education/infobank/... "A maioria EOS câmeras digitais capturam imagens em modo de 12 bits"
WayneF
@WayneF Com base na câmera mencionada como a melhor da Canon na época (1D Mark II), esse artigo foi escrito em algum momento entre abril de 2004 (quando o 1D II substituiu o 1D) e junho de 2005 (quando o 1D Mark IIN substituiu o 1D II) .
Michael C
2

Ken está certo na afirmação que você cita - mais ou menos. É correto que as câmeras digitais hoje (com exceção das que possuem sensores Foveon da Sigma) funcionem usando uma matriz Bayer, e a resolução do sensor seja citada como o tamanho da matriz. Sua imagem de exemplo representa um sensor de "36 pixels". No entanto, é importante reconhecer que as câmeras transformam isso em uma imagem colorida do tamanho especificado em pixels reais e que isso não é tão ruim quanto Ken faz parecer. .

Várias coisas que ele diz nesse artigo estão totalmente erradas, começando com:

A partir de 2006, esses algoritmos inteligentes permitem começar com um terço dos dados e torná-los tão bons quanto ter metade do número de pixels reivindicados.

Isso foi um absurdo em 2006 e hoje é um absurdo. O processo funciona em algumas suposições simples. Mais dos quais são apresentados aqui , mas o básico é que você pode prever o que as informações "ausentes" devem observar nos pixels vizinhos de cores diferentes. Isso acaba sendo uma boa suposição na maioria das vezes e muito errada outras vezes. Nos casos em que não há muita transição muito detalhada entre as cores, o resultado é tão bom quanto se cada sensor registrasse todas as cores. Nos casos em que a suposição está errada, é muito pior. No mundo real, o primeiro é realmente muito comum e funciona muito melhor do que "metade" - mas o importante é que depende do contexto.

O RAW não oferece vantagens aqui, exceto por uma aposta em potencial. A interpolação da Bayer ocorre no software que abre os dados brutos. Os futuros avanços nos algoritmos de interpolação da Bayer podem ser incorporados em futuros softwares brutos, se e somente se o fabricante da câmera continuar a suportar as câmeras de ontem no software de amanhã. Com a mesma probabilidade, o fabricante da câmera pode não suportar mais a câmera antiga no software bruto de amanhã!

Ele está certo em fotografar o RAW não muda os fundamentos, mas a idéia de que arquivos antigos parem de funcionar é basicamente um absurdo . Como as câmeras antigas usam o mesmo princípio básico e os formatos de arquivo fundamentalmente semelhantes, não custa muito oferecer suporte a modelos antigos indefinidamente, e os fornecedores têm muito incentivo para fazê-lo - e mesmo que isso aconteça, existem ótimos decodificadores de código aberto.

E, é claro, manter os arquivos RAW oferece outras vantagens não relacionadas ao desmosaicing.

Mas também é bobagem dizer que a possibilidade de futuras melhorias é a única vantagem. Como eu disse, existem diferentes suposições que podem ser feitas sobre o conteúdo da sua imagem, e algoritmos diferentes (ou ajustes nesses algoritmos) atenderão melhor a diferentes situações do mundo real; portanto, se você estiver em uma situação em que está obtendo moiré ou outros artefatos, você poderá lidar com isso. (Embora eu deva acrescentar que isso é muito exigente - raramente há uma situação em que espreitar isso de perto valha a pena.)

Há também um fator pelo qual Ken pode ser desculpado, porque o artigo tem uma década. Em 2006, a maioria das câmeras estava na faixa de 5 a 8 megapixels, com modelos DSLR de ponta a chegar a 12. Agora, DSLRs típicas de baixa / média faixa e câmeras sem espelho oferecem 16 e 24 megapixels, e vão daí. Nesse ponto, discutir sobre detalhes de cores no nível de visualização de pixels é realmente acadêmico, porque no mundo real é muito raro que iluminação, lentes, estabilidade e tudo o mais se alinhem tão bem que esse é o fator limitante.

Em geral, muitos dos sites de Ken Rockwell são assim. (Veja esta resposta para mais informações .) Isso é lamentável, pois ele realmente tem muitas coisas interessantes a dizer e alguns bons conselhos, mas há muitas bobagens também, e, em vez de admitir ou melhorar isso, ele tende a dobrar para baixo e afirma que todo o site é sátira.

Ah, e um fato interessante: as telas LCD traseiras da câmera e os EVFs também usam três subpixels coloridos para representar um pixel digital, e essas telas geralmente são comercializadas com a contagem dos subpixels - efetivamente 3 × o que você pode esperar da maneira como a resolução da tela do computador é fornecida.

mattdm
fonte