Windows-Hardwareanzeigefarbkalibrierungspipeline
In diesem Thema wird die Farbkalibrierung mit einer neuen GPU-Farbtransformationspipeline behandelt, die von Windows 10, Version 2004 (20H1) und höher unterstützt wird. Die Pipeline bietet eine deutlich verbesserte Farbgenauigkeit über vorhandene Pfade wie die GDI-Gammahierarchiepipeline und bietet Unterstützung für HDR-Displays.
Dieses Thema richtet sich an Display- und PC-Hersteller und Displaykalibrierungsanbieter, die die Displays ihrer Kunden besser kalibrieren möchten. Die meisten Windows-Apps müssen nichts tun, um von der Pipeline zu profitieren; wenn Sie jedoch farbverwaltete Apps entwickeln, sollten Sie sich bewusst sein, wie diese Technologie funktioniert.
Die neue Farbpipeline ist für jede Anzeige verfügbar, wenn die GPU die Systemanforderungen erfüllt. Wenn das Display HDR ist oder die automatische Farbverwaltung verwendet, gibt es zusätzliche Überlegungen und Anforderungen. die unter Verwendung von DirectX mit erweiterter Farbe auf Anzeigen mit hohem/standard dynamischem Bereich zu finden ist.
Einführung
Die Anzeigefarbkalibrierung ist der Prozess, bei dem sichergestellt wird, dass eine Anzeige exakt dem gemeldeten Farbraum entspricht; beispiel: sRGB oder DCI-P3 D65. Aufgrund von Variationen im Herstellungsprozess und anderen Quellen kann ein einzelnes Anzeigepanel von seiner Spezifikation abweichen. Nachdem eine Anzeige kalibriert wurde, können Ihre Apps und Inhalte sicher auf den Farbraum des Bildschirms abzielen, ohne sich Gedanken über diese Variabilität oder Ungenauigkeit machen zu müssen.
Auf hoher Ebene umfasst die Anzeigefarbkalibrierung die folgenden Schritte:
- Führen Sie optische Messungen der tatsächlichen Farbausgabe einer Anzeige durch, wenn sie einen Satz bekannter Farbwerte rendern.
- Generieren Sie basierend auf den Messdaten eine Farbtransformation, die für alle Ungenauigkeiten im Display korrigiert wird, und generieren Sie Metadaten, die das resultierende Farbvolumen der Anzeige beschreiben.
- Speichern Sie die Farbtransformationsdaten, und zeigen Sie Metadaten für die spätere Verwendung an.
- Laden Sie zur Laufzeit die Farbtransformation auf den Anzeigeframebuffer (an die Anzeige gesendete Farbwerte), und melden Sie die Anzeigemetadaten an Apps.
Windows 10, Version 2004, bietet erweiterte Funktionen für die Schritte 3 und 4, während Displayhersteller und Kalibrierungsanbieter für die Schritte 1 und 2 verantwortlich sind.
Systemanforderungen
Die neue Farbtransformationspipeline erfordert einen fähigen GPU- und Anzeigetreiber. Zu den unterstützten GPU-Architekturen gehören:
- AMD:
- AMD RX 500 400 Serie oder höher
- AMD Ryzen Prozessoren mit Radeon Graphics
- Intel:
- Integriert: Intel 10. Generation GPU (Ice Lake) oder höher
- Diskret: Intel DG1 oder höher
- NVIDIA GTX 10xx oder höher (Pascal+)
- Qualcomm 8CX Gen 3 oder höher; 7C Gen 3 oder höher
Hinweis
Intel-Codename Comet Lake (5-stelliger Modellcode) Chipsätze werden nicht unterstützt.
Ein Windows Display Driver Model (WDDM) 2.6 oder höherer Treiber ist erforderlich (veröffentlicht mit Windows 10, Version 1903). Einige GPU-Anbieter benötigen einen neueren Treiber, möglicherweise so neu wie WDDM 3.0 (veröffentlicht mit Windows 11, Version 21H2).
Informationen dazu, wie eine App bestimmen kann, ob die neue Farbtransformationspipeline in einem System verfügbar ist, finden Sie unter "Neue Anzeige-ICC-Profilverwaltungs-APIs ".
Neue GPU-Farbtransformationspipeline
Windows 10, Version 2004, macht eine GPU-beschleunigte Farbtransformationspipeline verfügbar, die aus einer linearen Gammafarbmatrix und 1DLUT besteht. Im Vergleich zur vorhandenen Gammahierarchiepipeline bietet sie eine überlegene Genauigkeit, Präzision und Unterstützung für breite Farbskalaanzeigen. Darüber hinaus wird Unterstützung für neue Technologien wie HDR-Displays hinzugefügt, die BT.2100-Signalisierung verwenden.
Die Pipeline kann nicht direkt von Apps programmiert werden und wird stattdessen nur über MHC-Profile verfügbar gemacht. weitere Details finden Sie weiter unten. Andere Betriebssystemfeatures wie Nachtlicht können diese Pipeline auch verwenden, und das Betriebssystem verwaltet, wie der Pipelinezugriff zwischen mehreren Szenarien freigegeben (verfassen) und/oder rationalisiert wird.
Beschreibung der Farbtransformationspipeline
Die Farbtransformationspipeline basiert auf dem standardkonzeptuellen Modell für Farbraumkonvertierungen:
Das Modell kann zwischen zwei RGB-Farbräumen (oder anderen 3-Kanal-Farbräumen) konvertiert werden, z. B. sRGB in P3 D65. Es kann auch die am häufigsten verwendeten Arten von Panelfarbvariationen korrigieren.
Die Windows-Farbtransformationspipeline verwendet das konzeptionelle Modell, erweitert die Stufen 2 (Farbmatrix) und 3 (Ziel-Regamma) in Unterstufen und macht eine Teilmenge der Phasen (2b und 3b) verfügbar, damit Apps programmieren können, während der Rest (weiß) vom Treiber gesteuert wird:
Durch diese Änderungen kann die Farbpipeline für den Farbraum des Quellinhalts agnostisch sein, was sich auf Frame-zu-Frame-Basis ändern kann. Außerdem verbessert es die Kompatibilität mit Anzeigefarbräumen wie BT.2100 ST.2084, die undurchsichtige Optimierungen erfordern, um Präzision zu erhalten.
Phase 0: Quelle (Grafikeingabe)
Die Eingabe ist der gerenderte Framebuffer vom Betriebssystem. Es kann sich in einem von mehreren Farbräumen befinden, je nach Szenario, einschließlich sRGB, sYCC, HDR10 oder scRGB, und kann auf Frame-zu-Frame-Basis geändert werden.
Phase 1: Source DeGamma
Der Anzeigetreiber konvertiert den Quellinhalt automatisch in lineares Gamma, und diese Phase kann von Apps nicht programmiert werden.
Phase 2: Farbraumkonvertierungsmatrix
Im Standardfarbraumkonvertierungsmodell kann die Matrixstufe in drei Matrizen unterteilt werden, die zusammen zusammengesetzt (multipliziert) werden:
2a: Konvertieren sie aus dem RGB-Farbraum (lineares Gamma) des Quellinhalts in einen absoluten Farbraum; in der Windows-Pipeline ist der absolute Farbraum CIEXYZ.
2b: Durchführen von Anpassungen im CIEXYZ-Raum, z. B. Kalibrierung.
2c: Konvertieren von CIEXYZ in den RGB-Zielfarbraum (lineares Gamma). Der RGB-Zielfarbraum wird als Codierung definiert, die beim Übertragen von Farben über den Anzeigedraht verwendet wird, in der Regel BT.709- oder BT.2020-Primarvorlagen. Es handelt sich nicht um die tatsächlichen, gemessenen Primarwerte des physischen Panels.
Matrix 2a wird durch den Quellinhalt bestimmt, und Matrix 2c wird durch den Signalmodus der Anzeige bestimmt; nur auf Matrix 2b kann für Apps zugegriffen werden. Der Treiber multipliziert die drei zusammen, um die tatsächliche Matrix zu generieren, die in der Hardware ausgeführt werden soll:
FinalMatrix = SourceRGBtoXYZ * XYZtoXYZAdjust * XYZtoTargetRGB
Hinweis
Da der Anzeigetreiber für die Rgb-Quelle für XYZ verantwortlich ist und XYZ auf RGB-Konvertierungen ausgerichtet ist, sollte die matrix, die Sie programmieren (Stufe 2b) nicht enthalten.
Beispiel 1: Wenn Sie keine Anpassungen an Farben (Pass-Through) vornehmen, sollte Die Matrix identitätsunabhängig sein, unabhängig vom Anzeigetyp, an den Sie ausgeben.
Beispiel 2: Wenn Sie eine SDR P3 D65-Anzeige ausgeben und ein SRGB-Korrekturprofil implementieren, das sRGB auf dem Panel emuliert, sollte Ihre Matrix aus einer Primärdrehung von sRGB in P3 D65 bestehen.
Phase 3: Ziel-ReGamma
Diese Phase kann in zwei RGB-1DLUTs unterteilt werden, die zusammen zusammengesetzt sind:
3a: Codieren Sie die linearen RGB-Daten von Stufe 2c in die Übertragungsfunktion/Gamma des Signals über dem Anzeigedraht.
3b: Durchführen von Anpassungen im Ziel-Gammaraum, z. B. Kalibrierung.
1DLUT 3a wird durch den Farbraum des Anzeigedrahtformats bestimmt; Am häufigsten ist es sRGB für SDR-Displays und ST.2084 für HDR-Displays. 3b ist von Apps programmierbar und tritt auf, nachdem die Übertragungsfunktion für das Drahtformat angewendet wurde. Der Treiber erstellt die beiden 1DLUTs, um den tatsächlichen 1DLUT zu generieren, der in der Hardware ausgeführt werden soll:
Final1DLUT = Adjustment1DLUT(TargetReGamma(input))
Hinweis
Da der Treiber für die Programmierung der Displaysignalübertragungsfunktion verantwortlich ist, sollte der von Ihnen programmierte 1DLUT (3b) diese Codierung nicht enthalten. Wenn Sie z. B. keine Anpassungen an Farben (Pass-Through) ausführen, sollte Ihr 1DLUT identitätsunabhängig sein, unabhängig vom Farbraum des Anzeigedrahtformats.
Phase 4: Ziel (Ausgabe für Scanout)
Dies ist der Framebuffer, der von der GPU über das Draht gescannt werden soll; im nativen Farbraum der Anzeige und nach den von Ihnen programmierten Anpassungen. Weitere Vorgänge wie die YCbCr-Codierung können danach auftreten.
Höhere Genauigkeit und Genauigkeit
Die lineare Gammamatrixstufe (XYZ- bis XYZ-Anpassung) wurde in Windows 10, Version 1709, eingeführt. Mit der Funktion können Sie Anpassungen an Farb primaries und weißer Punkt sowie beliebige RGB-Farbraumkonvertierungen vornehmen.
Die 1DLUT-Anpassungsphase ähnelt konzeptionell der vorhandenen Gammahierarchie 1DLUT, bietet jedoch eine verbesserte Genauigkeit mit bis zu 4096 LUT-Einträgen mit bis zu 16-Bit-Festpunktgenauigkeit.
Hinweis
Nicht alle Hardware unterstützt die vollständige Anzahl von Einträgen oder Genauigkeit, die von der Farbpipeline verfügbar gemacht werden.
Unterstützung für HDR-Displays (BT.2100)
Eine Einschränkung der vorhandenen Gammahierarchiepipeline besteht darin, dass sie ein nicht definiertes Verhalten aufweist, wenn das Display HDR -Signalisierung (BT.2100 ST.2084) verwendet. Die neue Farbtransformationspipeline unterstützt explizit SDR (BT.1886 oder sRGB) und HDR-Signalisierung und skaliert, um zukünftige Farbräume im Drahtformat zu unterstützen. Dies erfolgt über die Phasen "XYZ to Target RGB" und "Drahtübertragungsfunktion" (Blau) im Blockdiagramm:
Diese beiden Stufen, die automatisch vom Treiber gesteuert werden, sind für die Codierung von Farben in den Drahtformatfarbraum verantwortlich: z. B. sRGB oder BT.2020 ST.2084.
Wenn Sie die Farbtransformationspipeline programmieren, erhalten Sie daher ein gut definiertes Verhalten basierend auf dem aktiven Drahtformatfarbraum der Anzeige.
Neues "MHC2"-Tag für ICC-Profile
Windows stellt keine API zum direkten Steuern der neuen Farbtransformationspipeline zur Laufzeit bereit. Stattdessen greift Ihre App auf die Pipeline zu, indem Sie ein ordnungsgemäß formatiertes International Color Consortium (ICC)-Farbprofil mit zusätzlichen Daten schreiben, die in einem neuen privaten Tag "Microsoft Hardware Calibration" ("MHC2") gespeichert sind. Es ist ein ähnliches Modell wie die vorhandene Gammahierarchiepipeline , die private ICC-Tags "VCGT" verwendet. ICC-Profile mit gültigen MHC2-Tagdaten werden als "MHC ICC profile" oder "MHC profiles" bezeichnet.
Hinweis
MHC2 bezieht sich auf die zweite Version des privaten Tags, die für alle Windows 10- Version 2004-Geräte verfügbar ist; MHC1 wurde in einer früheren Version von Windows mit bestimmten OEM-PCs ausgeliefert.
Ergänzende STATISCHE METADATEN von ST.2086 HDR
Zusätzlich zur Programmierung der neuen Farbtransformationspipeline enthalten MHC ICC-Profile auch STATISCHE ST.2086 HDR-Metadaten. Dies sind Werte, die den dynamischen Bereich (Leuchtdichte) und die Farbskala einer Anzeige beschreiben. Sie sind mit HDR-Displays weit verbreitet, eignen sich jedoch für jedes Display. Die Werte sind:
- Spitzendichte (Nissen)
- Maximale Volle Frame-Leuchtdichte (Nissen)
- Min Luminance (Nits)
- RGB-Farb primaries (xy-Koordinaten)
- Weißer Punkt (XY-Koordinaten)
Der weiße Punkt, die maximale Volle Frame-Leuchtdichte und RGB-Farbprimierungen werden mithilfe standardmäßiger ICC-Tags beschrieben. Spitzen- und Minimale Leuchtdichte werden im MHC2-Tag beschrieben. Ein Profil muss alle diese Informationen enthalten, damit das Betriebssystem das Profil akzeptiert und für erweiterte Farbszenarien verwendet wird.
Windows rationalisiert ST.2086-Metadaten aus mehreren Quellen, einschließlich MHC ICC-Profil, Grafiktreiber und EDID- oder DisplayID-Firmware. MHC ICC-Profile werden als vertrauenswürdigste Quelle behandelt und überschreiben andere Quellen. Windows macht diese Informationen über die HDR-Funktions-APIs verfügbar, wie unter Verwendung von DirectX mit Erweiterter Farbe auf High/Standard Dynamic Range Displays beschrieben. Auf diese Weise erhalten HDR-Apps die besten verfügbaren HDR-Anzeigeinformationen.
Definition der ST.2086-Leuchtdichte für anpassbare Backlight-Displays
Ein Display kann eine anpassbare Hintergrundbeleuchtung aufweisen, z. B. vom Benutzer gesteuert oder automatisch durch einen Umgebungslichtsensor gesteuert werden. Dies führt zu Mehrdeutigkeiten bei der Interpretation der ST.2086-Leuchtdichtewerte.
Bei Displays, bei denen Windows die Kontrolle über die Hintergrundbeleuchtung hat (in der Regel für Laptops und integrierte Panelgeräte), müssen die Leuchtdichtewerte beschreiben, wenn diese vom Betriebssystem gesteuerte Hintergrundbeleuchtung die maximale oder hellste Einstellung aufweist.
Bei Displays, bei denen Windows keine Kontrolle über die Hintergrundbeleuchtung hat (in der Regel für externe Monitore), sind die Leuchtdichtewerte nur für den Anzeigezustand zum Zeitpunkt der Messung genau.
ICC-Profilanforderungen
Ein MHC ICC-Profil muss entweder ICC Spec Version 2 (ICC.1:2001-04) oder Version 4 (ICC.1:2010-12/ISO 15076-1:2010) verwenden. Ein MHC ICC-Profil muss ein Anzeigegerätprofil sein.
Ein MHC ICC-Profil kann Farbtransformationspipelinedaten enthalten. Die Teile der MHC2-Struktur, die die Farbtransformation definieren, können leer sein, was explizit eine Identitätstransformation angibt.
Ein MHC ICC-Profil muss ST.2086-Metadaten enthalten. Ein Profil, das nur ST.2086-Metadaten enthält und keine Transformationsdaten für HDR-Anzeigekalibrierungsszenarien verwendet werden– in diesem Fall bedeutet die HDR-Kalibrierung genauere Min/Max-Leuchtdichte und Farbskalainformationen für HDR-Apps und -Spiele.
Wiederverwenden vorhandener öffentlicher Tags
MHC ICC-Profile verwenden vorhandene öffentliche Tags, um einige der ST.2086-Metadatenwerte zu definieren. Alle diese Tags sind bereits für Anzeigegeräteprofile erforderlich. Tag- und Datentypdefinitionen finden Sie in den ICC-Spezifikationen.
Tagname | Datentyp | ST.2086-Wert | Von Windows gemeldete Einheit |
---|---|---|---|
redColorantTag | XYZNumber | Rote Primär | Farbigkeit (xy) |
greenColorantTag | XYZNumber | Grün primär | Farbigkeit (xy) |
blueColorantTag | XYZNumber | Blau primär | Farbigkeit (xy) |
mediaWhitePointTag | XYZNumber | Weißer Punkt | Farbigkeit (xy) |
LuminanceTag | XYZNumber | Maximale Volle Frame-Leuchtdichte | Leuchtdichte (Nissen) |
Definition privater Tags "MHC2"
Ein MHC ICC-Profil muss eine MHC2-Tagstruktur enthalten. Die Matrix- und 1DLUT-Farbtransformationselemente können auf 0 (NULL) festgelegt werden, die explizit eine Identitätstransformation für die jeweilige Phase angeben. Die ST.2086-Metadatenwerte müssen mit gültigen Daten ausgefüllt werden.
Byteposition | Feldlänge (Bytes) | Inhalt | Datentyp |
---|---|---|---|
0 bis 3 | 4 | 'MHC2' (4D484332h) Typsignatur | MHC2Type |
4 bis 7 | 4 | Offset zum Anfang des Tagdatenelements | uInt32Number |
8 bis 13 | 4 | Größe des Tagdatenelements | uInt32Number |
MHC2Type-Strukturdefinition
Byteposition | Feldlänge (Bytes) | Inhalt | Datentyp |
---|---|---|---|
0 bis 3 | 4 | 'MHC2' (4D484332h) Typsignatur | |
4 bis 7 | 4 | Reserviert, auf 0 festgelegt | |
8 bis 11 | 4 | Anzahl der 1DLUT-Einträge (4096 oder weniger) [1] OPTIONAL: 0 = Identitätstransformation |
uInt32Number |
12 bis 15 | 4 | ST.2086 Min. Leuchtdichte in Nissen | S15Fixed16Number |
16 bis 19 | 4 | ST.2086 Spitzendichte in Nissen | S15Fixed16Number |
20 bis 23 | 4 | Offset in Bytes in Matrix [2] OPTIONAL: 0 = Identitätstransformation |
uInt32Number |
24 bis 27 | 4 | Offset in Bytes in Rot 1DLUT [2] | uInt32Number |
28 bis 31 | 4 | Offset in Byte zu grünem 1DLUT [2] | uInt32Number |
32 bis 35 | 4 | Offset in Bytes in Blau 1DLUT [2] | uInt32Number |
[1] Das Betriebssystem interpoliert Daten zur Anzahl der hardwaregestützten Einträge.
[2] Offsets innerhalb der MHC2Type-Struktur sind relativ zum Anfang der Struktur, nicht zur Datei.
Matrixdefinition
Byteposition | Feldlänge (Bytes) | Inhalt | Datentyp |
---|---|---|---|
0 bis 47 | 48 | 3x4 XYZ bis XYZ Anpassungsmatrix In Der Hauptreihenfolge gespeichert, wird Spalte 4 ignoriert [1] |
s15Fixed16Number |
[1] Die Matrixstruktur wird so angepasst, dass sie 12 Elemente für eine 3x4-Matrix in der Hauptreihenfolge passt. Windows verwendet jedoch nur Daten aus den linken drei Spalten und definiert effektiv eine 3x3-Matrix. Speichern Sie beispielsweise diese 12 Werte in linearer Reihenfolge:
[a, b, c, 0, d, e, f, 0, g, h, i, 0]
erzeugt die folgende Matrix:
Erste Spalte | Zweite Spalte | Dritte Spalte |
---|---|---|
a | b | c |
d | e | f |
g | h | i |
Hinweis
Wie in der Farbraumkonvertierungsmatrix beschrieben, schließen Sie die RGB-Quelle nicht in XYZ oder XYZ ein, um RGB-Matrixtransformationen als Ziel zu verwenden, da sie vom Treiber automatisch behandelt werden. Target RGB wird als Codierung definiert, die beim Übertragen von Farben über das Anzeigedraht verwendet wird; in der Regel BT.709 oder BT.2020 Primar.
1DLUT-Definition
Byteposition | Feldlänge (Bytes) | Inhalt | Datentyp |
---|---|---|---|
0 bis 3 | 4 | 'sf32' (73663332h) Typsignatur | |
4 bis 7 | 4 | Reserviert, auf 0 festgelegt | |
8 bis Ende | Variable (0 bis 16384) | Kalibrierungs-LUT-Werte normalisiert auf [0,0, 1,0] | s15Fixed16Number |
Hinweis
Wie in Target ReGamma beschrieben, wird dieser LUT im Drahtformatfarbbereich ausgeführt, nachdem die Übertragungsfunktion codiert wurde.
Hinweis
Wenn Ihre Messungen oder Kalibrierungskurve weniger als 4096 LUT-Einträge benötigen, speichern Sie nur die Anzahl der Einträge, die Sie tatsächlich benötigen, und geben Sie die Anzahl in der MHC2Type-Struktur an. Die einfachste Identitätsverdünnung erfordert beispielsweise nur zwei Einträge, die auf 0,0 und 1.0 festgelegt sind. Das Betriebssystem interpoliert zur Anzahl der hardwaregestützten Einträge.
Neue ANZEIGE-ICC-Profilverwaltungs-APIs
Hinweis
Die Anleitungen in diesem Abschnitt gelten für alle Anzeige-ICC-Profile, unabhängig davon, ob sie MHC-Daten enthält.
Nachdem Sie ein MHC ICC-Profil generiert haben, stellen Sie es auf dem Windows-System für die gezielte Anzeige bereit. In früheren Versionen von Windows würden Sie dazu Die Profilverwaltungsfunktionen (Windows Color System, WCS) verwenden. Während Sie diese vorhandenen APIs weiterhin verwenden können, fügt Windows 10, Version 2004, eine Reihe neuer, modernisierter APIs zu WCS hinzu, die für die Verwaltung von Anzeige-ICC-Farbprofilen spezialisiert sind. Diese APIs sind alle mit dem Präfix "ColorProfile" versehen:
- ColorProfileAddDisplayAssociation
- ColorProfileRemoveDisplayAssociation
- ColorProfileSetDisplayDefaultAssociation
- ColorProfileGetDeviceCapabilities
Hinweis
Die oben genannte API bietet Funktionen, für die keine WCS-API-Entsprechung vorhanden ist.
- ColorProfileGetDisplayList
- ColorProfileGetDisplayDefault
- ColorProfileGetDisplayUserScope
Ein typischer Workflow, der die ColorProfile-APIs verwendet, um ein MHC ICC-Profil auf dem System bereitzustellen:
- Verwenden Sie ColorProfileGetDeviceCapabilities , um zu bestimmen, ob das System die neue Farbtransformationspipeline unterstützt. Auch wenn dies nicht der Derb ist, kann es dennoch von Vorteil sein, das Profil bereitzustellen, um zusätzliche ST.2086-Metadaten bereitzustellen.
- Verwenden Sie InstallColorProfile (eine vorhandene WCS-API), um das Farbprofil zu installieren. Dadurch wird das Profil der Liste der Profile hinzugefügt, die für die Verwendung auf dem System verfügbar sind.
- Verwenden Sie ColorProfileGetDisplayUserScope , um zu bestimmen, ob der Windows-Benutzer die Standardprofilzuordnungen des Systems überschrieben hat und seine eigenen Benutzerzuordnungslisten verwendet.
- Verwenden Sie ColorProfileAddDisplayAssociation , um das Farbprofil einer Anzeige zuzuordnen (ein installiertes Profil kann für diese Anzeige ausgewählt werden), und legen Sie das Profil optional als Standard (das derzeit aktive Profil) fest.
Erweitertes Windows-Anzeigekalibrierungsladeprogramm
Windows bietet seit Windows 7 ein Ladeprogramm für die Anzeigefarbkalibrierung an. Dieses Kalibrierungsladeprogramm unterstützt das Lesen von ICC-Profilen mit Gammahierarchiepipelinedaten , die entweder in VCGT- oder MS00 privaten ICC-Profiltags gespeichert sind. Das Gammahierarchieladeprogramm muss durch Aufrufen von WcsSetCalibrationManagementState explizit aktiviert werden.
Windows 10, Version 2004, verbessert das Kalibrierungsladeprogramm für den Posteingang, indem Unterstützung für MHC ICC-Profile und die neue Farbtransformationspipeline hinzugefügt wird. Das Schreiben und Bereitstellen eines MHC ICC-Profils und das Anwenden des Windows-Ladevorgangs ist die einzige Methode für Apps für den Zugriff auf die Farbtransformationspipeline: Es gibt keine APIs für den direkten Zugriff. Anders als bei den Gammahierarchieprofilen ist das Lesen von MHC ICC-Profilen immer aktiviert. Sobald ein MHC ICC-Profil auf einem fähigen System als Standard festgelegt ist, wird der Kalibrierungszustand automatisch geladen.
HDR- und Erweiterte Farbszenarien mit automatischer Systemfarbverwaltung
Neue erweiterte Farbtechnologien wie HDR und automatische Farbverwaltung bieten Windows neue Funktionen, einschließlich überlegener Farbgenauigkeit und Zugriff auf viel größere Farbskalan; weitere Informationen finden Sie unter Verwenden von DirectX mit erweiterter Farbe auf High/Standard Dynamic Range Displays.
Erweiterte Farb- und automatische Farbverwaltung sorgen für eine konsistente und farbmetrisch genaue Anzeigefarbe für alle Apps: sowohl legacy als auch modern. Einige Apps können jedoch ihre eigene explizite Farbverwaltung mithilfe von Farbprofilen des International Color Consortium (ICC) durchführen.
Wenn Advanced Color auf SDR- oder HDR-Bildschirmen aktiviert ist, ändert sich das Verhalten von ICC-Profilen auf dem Bildschirm auf nicht abwärtskompatible Weise. Wenn Ihre App mit ANZEIGE-ICC-Profilen arbeitet, bietet Windows Kompatibilitätsverhalten, um sicherzustellen, dass Ihre App weiterhin das richtige Verhalten erhält.
Informationen zu den Änderungen am ICC-Profilverhalten und dazu, wie Sie Ihre App anpassen können, um die Kompatibilität mit Advanced Color zu maximieren, finden Sie unter ICC-Profilverhalten mit Advanced Color.