A incorporação de um perfil ICC em uma imagem realmente incorpora a totalidade desse perfil em uma imagem?

9

Essa é uma questão de imagens, mas o Photography parecia o melhor site para perguntar.

Eu tenho lido informações sobre ICC, espaços de cores, metadados JPEG e coisas do gênero, tentando entender isso.

Quando um aplicativo 'incorpora' um perfil colorido / ICC a uma imagem, como um JPEG, ele realmente incorpora todo o perfil ICC? Se eu salvar uma foto com os perfis de cores sRGB ou Adobe RGB incorporados, isso significa que os aplicativos com reconhecimento de cores irão:

  1. Abra a imagem
  2. Extraia os dados do perfil (ou seja, vê que a imagem é AdobeRGB)
  3. Aplique transformações na cor usando as informações do perfil
  4. Exibir a imagem

Minha confusão vem da inspeção de um monte de fotos que eu tenho - eu vi os metadados deles com exiftool , e esse trecho de informação saiu:

Color Space                     : sRGB
Profile CMM Type                : Lino
Profile Version                 : 2.1.0
Profile Class                   : Display Device Profile
Color Space Data                : RGB
CMM Flags                       : Not Embedded, Independent <--- does anything use this?
Device Manufacturer             : IEC
Device Model                    : sRGB
Device Attributes               : Reflective, Glossy, Positive, Color
Rendering Intent                : Perceptual
Connection Space Illuminant     : 0.9642 1 0.82491
Profile Description             : sRGB IEC61966-2.1
Device Mfg Desc                 : IEC http://www.iec.ch
Device Model Desc               : IEC 61966-2.1 Default RGB colour space - sRGB

Portanto, esta foto tem um perfil sRGB, tudo bem. Mas para que serve o campo CMM Flags e alguém o usa?

O padrão ICC , na seção 7.2.11, diz que os dados do campo CMM indicam isso:

O campo sinalizadores de perfil deve conter sinalizadores para indicar várias dicas para o CMM, como opções de processamento e armazenamento em cache distribuídos

Posição 0 - Embedded profile (0 if not embedded, 1 if embedded in file)

Posição 1 - Profile cannot be used independently of the embedded color data


Então, condensado em algumas perguntas relacionadas:

  1. A incorporação de um perfil ICC em uma imagem realmente incorpora a totalidade desse perfil em uma imagem? Ou serve apenas para instruir os aplicativos com reconhecimento de cores a procurarem esse perfil no sistema (ou seja, o diretório ICC do Windows)

  2. Estou confuso e os sinalizadores do CMM são independentes da noção de incorporação de um perfil ICC?

Obrigado, espero que minha pergunta seja clara o suficiente.

wkl
fonte
Sobre a pergunta "Mas para que serve o campo CMM Flags e alguém o usa?" : você mesmo responde. De acordo com o que você mostra, no caso dessa imagem, existem: posição 0: "0 (não incorporado)" e posição 1: "independente". Portanto, o exiftools diz "Não incorporado, independente". Para as perguntas 1. e 2., também estou interessado na resposta.
Olivier Dulac

Respostas:

7

O CMM Flagscampo está se referindo aos sinalizadores do Módulo de gerenciamento de cores . Nesse caso, está dizendo que o perfil ICC com o qual a imagem JPEG está marcada não está incorporado. É possível, embora não seja necessário, incorporar perfis ICC nas imagens, incluindo imagens JPEG (conforme o mesmo documento que você vinculou :)

B.4 Incorporando perfis ICC em arquivos JPEG

O padrão JPEG (ISO / IEC 10918-1 [2]) suporta segmentos de dados específicos da aplicação. Esses segmentos podem ser usados ​​para marcar imagens com perfis ICC. O marcador APP2 é usado para introduzir a etiqueta de perfil ICC. Dado que existem apenas 15 marcadores de APP suportados, existe a chance de muitos aplicativos usarem o mesmo marcador. Assim, as tags ICC são identificadas ao iniciar os dados com uma sequência de bytes terminada em nulo especial, "ICC_PROFILE".

O campo de comprimento de um marcador JPEG tem apenas dois bytes; o comprimento do campo de comprimento é incluído no total. Portanto, os valores 0 e 1 não são comprimentos legais. Isso limitaria o comprimento máximo dos dados a 65 533. A sequência de identificação diminuiria ainda mais isso. Como é bem possível que um perfil ICC seja mais longo que isso, é necessário um mecanismo para dividir o perfil em partes e colocar cada parte em um marcador separado. Um mecanismo para identificar cada pedaço em ordem de sequência é, portanto, necessário.

A sequência identificadora é seguida por um byte indicando o número de sequência do bloco (a contagem começa em 1) e um byte indicando o número total de blocos. Todos os pedaços na sequência devem indicar o mesmo número total de pedaços. A contagem de pedaços de 1 byte limita o tamanho dos perfis incorporáveis ​​a 16 707 345 bytes.

De um modo geral, acho que as imagens geralmente são marcadas apenas com perfis ICC, em vez de incorporá- las , quando associadas a sRGB, AdobeRGB ou a um dos outros espaços de cores muito comuns. Pode ser necessário incorporar um perfil, se for um perfil personalizado, que você não espera que exista nas máquinas em que a imagem geralmente será visualizada.

jrista
fonte
Obrigado pela resposta. Fiz mais algumas experiências usando o Photoshop e um processador de imagem diferente, e monitorei o Windows para ver quais arquivos os dois estavam usando quando abriram uma imagem com perfis de cores incorporados. Eles definitivamente não estavam atingindo o disco para obter perfis de cores do sistema, mas tinham um gerenciamento de cores correto para as imagens (em comparação com a versão não gerenciada da imagem). Ainda não consigo tirar conclusões para dizer se as próprias imagens têm perfis incorporados ou estão meramente etiquetadas e tudo o resto é inteligente. Vou tentar com perfis obscuros / nomes de tags inexistentes.
Wkl
11
Bem, eu não imaginaria que haveria acesso ao disco ... o Windows carrega um monte de perfis ICC na memória na inicialização, para vários dispositivos. Eu diria que o perfil sRGB está praticamente garantido na memória o tempo todo.
jrista
É muito bom saber, vou verificar isso quando voltar ao escritório, para ver se é o caso de todos os que eu estava testando (ProPhoto, Adobe RGB, Nikon RGB, a estranha CameraRGB do iPhoto).
Wkl
Provavelmente vale a pena dar uma olhada no seguinte: bbot.org/blog/archives/2011/11/05/…
Sim, a incorporação ocupa espaço. No entanto, se você precisar garantir uma renderização precisa em qualquer lugar em que uma imagem precise ser visualizada, geralmente é a única opção.
jrista