Wird durch das Einbetten eines ICC-Profils in ein Bild tatsächlich das gesamte Profil in ein Bild eingebettet?

9

Dies ist eine sehr bildgebende Frage, aber Fotografie schien die beste Seite zu sein.

Ich habe Informationen über ICC, Farbräume, JPEG-Metadaten und dergleichen gelesen, um dies zu verstehen.

Wenn eine Anwendung ein Farb- / ICC-Profil wie ein JPEG in ein Bild einbettet, wird dann tatsächlich das gesamte ICC-Profil eingebettet? Wenn ich ein Foto mit eingebetteten sRGB- oder Adobe RGB-Farbprofilen gespeichert habe, bedeutet dies, dass farbbewusste Anwendungen:

  1. Öffnen Sie das Bild
  2. Extrahieren Sie die Profildaten (dh das Bild ist AdobeRGB)
  3. Wenden Sie mithilfe der Informationen aus dem Profil Transformationen auf die Farbe an
  4. Zeigen Sie das Bild an

Meine Verwirrung kommt von der Inspektion einiger Fotos, die ich habe - ich habe ihre Metadaten mit exiftool angesehen , und dieser Ausschnitt von Informationen kam heraus:

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

Dieses Foto hat also ein sRGB-Profil, das ist in Ordnung. Aber wozu dient das Feld CMM-Flags und wird es von jemandem verwendet?

Der ICC-Standard in Abschnitt 7.2.11 besagt, dass die CMM-Felddaten dies anzeigen:

Das Feld Profilflags muss Flags enthalten, um verschiedene Hinweise für das KMG anzuzeigen, z. B. verteilte Verarbeitungs- und Caching-Optionen

Position 0 - Embedded profile (0 if not embedded, 1 if embedded in file)

Position 1 - Profile cannot be used independently of the embedded color data


So zusammengefasst auf ein paar verwandte Fragen:

  1. Wird durch das Einbetten eines ICC-Profils in ein Bild tatsächlich das gesamte Profil in ein Bild eingebettet? Oder dient es nur dazu, farbbewussten Anwendungen anzuweisen, nach diesem Profil im System zu suchen (dh im ICC-Verzeichnis von Windows)?

  2. Bin ich nur verwirrt und die CMM-Flags sind unabhängig von der Idee, ein ICC-Profil einzubetten?

Danke, ich hoffe meine Frage ist klar genug.

wkl
quelle
Über die Frage "Aber wozu dient das Feld CMM-Flags und wird es von jemandem verwendet?" : du antwortest es selbst. Je nachdem, was Sie zeigen, gibt es im Fall dieses Bildes: Position 0: "0 (nicht eingebettet)" und Position 1: "unabhängig". Daher sagt exiftools "Nicht eingebettet, unabhängig". Bei den Fragen 1. und 2. bin ich auch an der Antwort interessiert.
Olivier Dulac

Antworten:

7

Das CMM FlagsFeld bezieht sich auf Flags des Farbmanagementmoduls . In diesem Fall ist das ICC-Profil, mit dem das JPEG-Bild gekennzeichnet ist, nicht eingebettet. Es ist möglich, obwohl nicht erforderlich, ICC-Profile in Bilder, einschließlich JPEG-Bilder, einzubetten (entsprechend dem Dokument, das Sie verlinkt haben :)

B.4 Einbetten von ICC-Profilen in JPEG-Dateien

Der JPEG-Standard (ISO / IEC 10918-1 [2]) unterstützt anwendungsspezifische Datensegmente. Diese Segmente können zum Kennzeichnen von Bildern mit ICC-Profilen verwendet werden. Der APP2-Marker wird verwendet, um das ICC-Profil-Tag einzuführen. Da es nur 15 unterstützte APP-Marker gibt, besteht die Möglichkeit, dass viele Anwendungen denselben Marker verwenden. ICC-Tags werden somit identifiziert, indem die Daten mit einer speziellen nullterminierten Bytesequenz "ICC_PROFILE" beginnen.

Das Längenfeld eines JPEG-Markers ist nur zwei Bytes lang. Die Länge des Längenfeldes ist in der Summe enthalten. Daher sind die Werte 0 und 1 keine zulässigen Längen. Dies würde die maximale Datenlänge auf 65 533 begrenzen. Die Identifikationssequenz würde dies noch weiter senken. Da es durchaus möglich ist, dass ein ICC-Profil länger ist, ist ein Mechanismus erforderlich, um das Profil in Blöcke zu zerlegen und jeden Block in einem separaten Marker zu platzieren. Ein Mechanismus zum Identifizieren jedes Blocks in der Reihenfolge seiner Reihenfolge ist daher erforderlich.

Auf die Identifizierungssequenz folgt ein Byte, das die Sequenznummer des Chunks angibt (die Zählung beginnt bei 1), und ein Byte, das die Gesamtzahl der Chunks angibt. Alle Chunks in der Sequenz sollten die gleiche Gesamtzahl an Chunks angeben. Die 1-Byte-Blockanzahl begrenzt die Größe einbettbarer Profile auf 16 707 345 Byte.

Generell denke ich Bilder sind in der Regel nur getaggt mit ICC - Profilen, anstatt sie zu haben eingebettet , wenn im Zusammenhang mit sRGB, AdobeRGB, oder einer der anderen sehr häufig Farbräumen. Es kann erforderlich sein, ein Profil einzubetten, wenn es sich um ein benutzerdefiniertes Profil handelt, von dem Sie nicht erwarten, dass es auf den Computern vorhanden ist, auf denen das Image im Allgemeinen angezeigt wird.

jrista
quelle
Danke für die Antwort. Ich habe noch mehr mit Photoshop und einem anderen Bildprozessor experimentiert und Windows überwacht, um festzustellen, welche Dateien beide beim Öffnen eines Bildes mit eingebetteten Farbprofilen verwendeten. Sie haben definitiv nicht auf die Festplatte geschlagen, um Farbprofile vom System zu erhalten, sondern hatten ein korrektes Farbmanagement für die Bilder (im Vergleich zur nicht verwalteten Version des Bildes). Ich kann immer noch keine Schlussfolgerungen ziehen, um zu sagen, ob die Bilder selbst eingebettete Profile haben oder nur markiert sind und alles andere klug ist. Ich werde es mit obskuren Profilen / nicht existierenden Tag-Namen versuchen.
wkl
1
Nun, ich würde mir nicht vorstellen, dass es einen Festplattenzugriff geben würde ... Windows lädt beim Booten eine Reihe von ICC-Profilen für eine Reihe von Geräten in den Speicher. Ich würde annehmen, dass das sRGB-Profil so gut wie immer im Speicher ist.
jrista
Das ist sehr gut zu wissen, ich werde das überprüfen, wenn ich wieder im Büro bin, um zu sehen, ob dies bei allen der Fall ist, mit denen ich getestet habe (ProPhoto, Adobe RGB, Nikon RGB, iPhotos seltsames kleines CameraRGB).
wkl
Es lohnt sich wahrscheinlich einen Blick darauf zu werfen: bbot.org/blog/archives/2011/11/05/…
Ja, das Einbetten nimmt Platz ein. Wenn Sie jedoch überall dort, wo ein Bild angezeigt werden muss, eine genaue Wiedergabe gewährleisten müssen, ist dies häufig die einzige Option.
jrista