¿Incrustar un perfil ICC en una imagen realmente incrusta la totalidad de ese perfil en una imagen?

9

Esta es una pregunta de imágenes, pero la fotografía parecía el mejor sitio para preguntar.

He estado leyendo información sobre ICC, espacios de color, metadatos JPEG y similares tratando de entender esto.

Cuando una aplicación 'incrusta' un perfil de color / ICC en una imagen, como un JPEG, ¿incrusta realmente todo el perfil ICC? Si guardé una foto con los perfiles de color sRGB o Adobe RGB integrados, ¿eso significa que las aplicaciones con reconocimiento de color:

  1. Abre la imagen
  2. Extraiga los datos del perfil (es decir, ve que la imagen es AdobeRGB)
  3. Aplique transformaciones en el color utilizando la información del perfil.
  4. Mostrar la imagen

Mi confusión proviene de la inspección de un montón de fotos que tengo: vi sus metadatos con exiftool y salió este fragmento de información:

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

Entonces esta foto tiene un perfil sRGB, está bien. Pero, ¿para qué es el campo CMM Flags y alguien lo usa?

El estándar ICC , en la sección 7.2.11, dice que los datos del campo CMM indican esto:

El campo de banderas de perfil contendrá banderas para indicar varias sugerencias para el CMM, como opciones de procesamiento distribuido y almacenamiento en caché

Posición 0 - Embedded profile (0 if not embedded, 1 if embedded in file)

Posición 1 - Profile cannot be used independently of the embedded color data


Tan condensado a un par de preguntas relacionadas:

  1. ¿Incrustar un perfil ICC en una imagen realmente incrusta la totalidad de ese perfil en una imagen? ¿O solo sirve para decirle a las aplicaciones con color que busquen ese perfil en el sistema (es decir, el directorio ICC de Windows)

  2. ¿Estoy confundido y las banderas CMM son independientes de la noción de incrustar un perfil ICC?

Gracias, espero que mi pregunta sea lo suficientemente clara.

wkl
fuente
Acerca de la pregunta "¿Pero para qué sirve el campo CMM Flags y alguien lo usa?" : lo respondes tú mismo. De acuerdo con lo que muestra, en el caso de esa imagen, hay: posición 0: "0 (no incrustado)" y posición 1: "independiente". Por lo tanto, exiftools dice "No incrustado, independiente". Para las preguntas 1. y 2., también estoy interesado en la respuesta.
Olivier Dulac

Respuestas:

7

El CMM Flagscampo se refiere a las banderas del Módulo de gestión del color . En este caso, dice que el perfil ICC con el que está etiquetada la imagen JPEG no está incrustado. Es posible, aunque no es obligatorio, incrustar perfiles ICC en las imágenes, incluidas las imágenes JPEG (según el mismo documento que vinculó :)

B.4 Incrustar perfiles ICC en archivos JPEG

El estándar JPEG (ISO / IEC 10918-1 [2]) admite segmentos de datos específicos de la aplicación. Estos segmentos pueden usarse para etiquetar imágenes con perfiles ICC. El marcador APP2 se usa para introducir la etiqueta de perfil ICC. Dado que solo hay 15 marcadores de APP compatibles, existe la posibilidad de que muchas aplicaciones utilicen el mismo marcador. Las etiquetas ICC se identifican así comenzando los datos con una secuencia especial de bytes terminada en nulo, "ICC_PROFILE".

El campo de longitud de un marcador JPEG tiene solo dos bytes de longitud; La longitud del campo de longitud se incluye en el total. Por lo tanto, los valores 0 y 1 no son longitudes legales. Esto limitaría la longitud máxima de datos a 65 533. La secuencia de identificación reduciría esto aún más. Como es bastante posible que un perfil ICC sea más largo que esto, se requiere un mecanismo para dividir el perfil en trozos y colocar cada trozo en un marcador separado. Por lo tanto, es necesario un mecanismo para identificar cada fragmento en orden de secuencia.

La secuencia del identificador es seguida por un byte que indica el número de secuencia del fragmento (el recuento comienza en 1) y un byte que indica el número total de fragmentos. Todos los fragmentos de la secuencia deben indicar el mismo número total de fragmentos. El recuento de fragmentos de 1 byte limita el tamaño de los perfiles integrables a 16 707 345 bytes.

En términos generales, creo que las imágenes generalmente solo se etiquetan con perfiles ICC, en lugar de tenerlas incrustadas , cuando se asocian con sRGB, AdobeRGB o uno de los otros espacios de color muy comunes. Puede ser necesario incrustar un perfil si es un perfil personalizado, uno que no espera que exista en las máquinas en las que generalmente se verá la imagen.

jrista
fuente
Gracias por la respuesta. Experimenté un poco más usando Photoshop y un procesador de imágenes diferente, y monitoreé Windows para ver qué archivos estaban usando cuando abrieron una imagen con perfiles de color incrustados. Definitivamente no estaban golpeando el disco para obtener perfiles de color del sistema, sino que tenían una gestión de color correcta para las imágenes (en comparación con la versión no administrada de la imagen). Todavía no puedo sacar conclusiones para decir si las imágenes en sí tienen perfiles incrustados o simplemente están etiquetadas y todo lo demás es inteligente. Intentaré con perfiles oscuros / nombres de etiquetas inexistentes.
wkl
1
Bueno, no me imagino que habría acceso al disco ... Windows carga un montón de perfiles ICC en la memoria durante el arranque, para un montón de dispositivos. Supongo que el perfil sRGB está prácticamente garantizado de estar en la memoria todo el tiempo.
jrista
Es muy bueno saberlo, lo comprobaré cuando vuelva a la oficina, veré si ese es el caso con todos los que estaba probando (ProPhoto, Adobe RGB, Nikon RGB, la pequeña CameraRGB de iPhoto).
wkl
Probablemente vale la pena echarle un vistazo a esto: bbot.org/blog/archives/2011/11/05/…
Sí, la incrustación ocupa espacio. Sin embargo, si necesita garantizar una reproducción precisa en todas partes, es necesario ver una imagen, a menudo es la única opción.
jrista