O formato Canon * .CR2 / CRW contém dados "verdadeiramente RAW"?


11

No meu trabalho, estou lidando com imagens em bruto * .CR2 tiradas por uma DSLR da Canon no modo bruto. Quando li sobre o formato aqui , fiquei surpreso ao descobrir que ele possui 4 IFDs TIFF que contêm: a) Imagem JPEG de tamanho original b) Imagem JPEG em miniatura c) Dados RGB não compactados d) Imagem JPEG sem perdas.

Minha impressão até agora era que qualquer arquivo de imagem RAW capturado por câmera teria dados brutos da Bayer, como dados R, Gr, B, Gb, e alguns dados EXIF ​​sobre configurações de captura de câmera etc.

Mas, depois de ler esta especificação CR2, estou um pouco confuso sobre como ele pode ter dados RGB ou mesmo dados surpreendentemente JPEG. Estes parecem ser os dados após a desmosaicing (obtenção dos dados de pixel R / G / B ausentes para o padrão Bayer do sensor original). Se for esse o caso, eu não consideraria *. CR2 como dados "realmente brutos". Ele fez a remoção de dados antes de descarregar o chamado arquivo bruto.

Estou esquecendo de algo?

Algum outro formato de Camera Raw (por exemplo, Nikon - * .NEF, Kodac - * .kdc, Pentax - * .ptx / pef, ...) possui dados reais de camada bruta sem que seja processado?


2
A página para a qual você vincula diz que ele contém o padrão Bayer; portanto, sim, ele possui o padrão Bayer.

O link sobre o formato está quebrado
Pedro77 26/07/19

Respostas:


11

Eu acho que você definitivamente está perdendo alguma coisa. Considere: JPG é usado para armazenar (e geralmente comprimir, com perdas) imagens. Qualquer imagem. O que é uma imagem? É um grande pacote de pixels, quando tudo estiver dito e feito.

A saída do sensor da câmera também é um grande pacote de pixels. Por acaso não são pixels RGB em cores, são pixels monocromáticos - se qualquer pixel individual representa RG ou B depende da sua localização no sensor de imagem, que é conhecido. Mas sua natureza monocromática, dada pela cor pela posição, não significa que eles não possam ser armazenados de maneira útil da maneira JPG. Um pacote de pixels é um pacote de pixels e por que reinventar a roda?

Olhe mais de perto o documento. "Assim, com uma grade BAYER de RG / GB, as linhas pares intercalaram dados HuffCode / Diff para ... RGRGRG ..., enquanto as linhas ímpares são ... GBGBGB ...". Portanto, a saída bruta da Bayer é armazenada em um formato JPG. Sem perdas, é declarado (caso contrário, teríamos um problema!) E, presumivelmente, com mais de 8 bits de profundidade. Você também cozinha muito isso para obter uma foto útil.

As outras imagens JPG são usadas para visualização na câmera, histograma e outros. Faz sentido cozinhá-los de uma vez por todas à medida que a imagem é tirada, em vez de ter que fazê-lo rapidamente sempre que você quiser vê-los. Isso também significa que o computador pode capturá-los para fins de miniatura quando você descarrega a câmera no PC.

*** Não posso adicionar um comentário por algum motivo, então isso é o seguinte: Goldenmean, o que faz você pensar que há um problema em que você não tem informações RGB completas para cada pixel? Supondo que você esteja criando um formato RAW e tenha uma medida de 128 a partir de uma célula sensora "vermelha"; você pode optar por armazenar isso como 128,0,0 ou 128,128,128 ou, se sentir inteligente, 128, "dados da próxima célula", "dados da célula depois disso" para economizar espaço. Realmente não importa. O trabalho do conversor RAW é acompanhar isso (embora eu tenha certeza que os programadores apreciariam se você documentasse como você escolheu armazenar os dados do sensor) e faça uma imagem real a partir dele.


2
O formato JPG com perdas com o qual todos conhecemos é aparentemente bem diferente do esquema confuso de "JPEG sem perdas" usado nesses arquivos brutos.
Lyman Enders Knowles

2
@ Lyman: Sim, é. Também é usado em DNG por exemplo, se mais: en.wikipedia.org/wiki/Lossless_JPEG
Guffa

Eu entendo - 'tudo sendo coisa dos pixels' e o 'codec JPEG sem perdas também', mas ainda restam dúvidas: como ele pode ter três componentes para cada pixel armazenado no formato bruto? O sensor não fornece um trigêmeo para cada pixel físico, mas fornece apenas um dos 3 (R, G ou B), nem todos os 3 que os formatos parecem armazenar para o pixel eack. Esse é o qn.
goldenmean

2

O DNG contém JPG em escala de cinza sem perdas com resolução 4 vezes maior que o arquivo jpg colorido " normal ". Está mais claro agora?

Qual é o problema em colocar 3 tipos de bolas pretas em uma festa que serve para segurar 3 bolas coloridas ?

No arquivo JPG, não há cores, apenas números, como em qualquer outro formato de arquivo. E eles usam JPG porque é mais fácil codificá-lo dessa maneira, porque o processador da câmera já foi feito para criar esses arquivos.

Eles provavelmente gravariam os dados da matriz em zip, rar, flac ou qualquer outro formato sem perdas da mesma maneira. Mas isso exigiria um monte de algoritmos adicionados ao software da câmera, que não são necessários.


Estou confuso com a sua explicação. o link não está mais funcionando, mas o OP indica que existem arquivos TIFF. Se a câmera pode produzir arquivos TIFF, por que ela precisa codificar dados brutos em JPG? JPG sem perda significa que não há dados perdidos na compactação, mas isso não significa necessariamente que a conversão de dados brutos da matriz em JPG não transforme ou perca informações de alguma forma, não é?
MikeW
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.