Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Advanced Color adalah istilah teknologi OS payung untuk tampilan dengan keakuratan warna yang jauh lebih tinggi daripada tampilan standar. Untuk informasi selengkapnya, lihat Menggunakan DirectX dengan Warna Tingkat Lanjut pada tampilan rentang dinamis tinggi/standar. Manajemen Warna Tingkat Lanjut dan warna otomatis memastikan warna tampilan yang konsisten dan akurat secara klormatis untuk semua aplikasi: baik warisan maupun modern. Namun, aplikasi Anda mungkin sudah melakukan manajemen warna eksplisit sendiri menggunakan profil warna International Color Consortium (ICC).
Ketika Warna Lanjutan diaktifkan pada tampilan SDR atau HDR, perilaku profil ICC tampilan berubah dengan cara yang tidak kompatibel secara mundur. Jika aplikasi Anda berfungsi dengan profil ICC tampilan, maka Windows menawarkan fitur kompatibilitas untuk memastikan bahwa aplikasi Anda terus mendapatkan perilaku yang benar. Aplikasi sadar Warna Canggih harus beralih dari berinteraksi langsung dengan profil ICC tampilan karena Windows menyediakan API pengganti yang digunakan oleh aplikasi yang mengabstraksi penggunaan profil; panduan lengkap tersedia di Gunakan DirectX dengan Warna Tingkat Lanjut pada tampilan rentang dinamis tinggi/standar.
Topik ini menjelaskan perubahan perilaku profil ICC. Selain itu, jika aplikasi yang dikelola warna Anda perlu terus menggunakan profil ICC layar, topik ini akan menunjukkan cara menyesuaikan aplikasi Anda untuk secara bertahap memanfaatkan keunggulan Warna Canggih.
Perilaku manajemen warna Windows versi lama
Saat Warna Tingkat Lanjut tidak aktif, Windows tidak melakukan manajemen warna apa pun pada output konten visual aplikasi Anda (misalnya, GDI hDC, rantai pertukaran DirectX, atau visual komposisi); dalam praktiknya, ini mengasumsikan bahwa konten aplikasi Anda berada di ruang warna sRGB standar. Jika Anda ingin reproduksi warna yang akurat pada tampilan aktif, aplikasi Anda harus melakukan manajemen warnanya sendiri, paling sering menggunakan profil warna International Color Consortium (ICC). Langkah konseptual utama adalah:
- Dapatkan karakteristik warna tampilan.
- Lakukan konversi ruang warna ke ruang warna tampilan.
- Lakukan pemetaan gamut untuk membatasi gamut tampilan.
Berikut adalah detail selengkapnya tentang masing-masing dari tiga langkah tersebut.
Mendapatkan karakteristik warna tampilan
Aplikasi Win32 menggunakan fungsi manajemen profil Sistem Warna Windows untuk mendapatkan profil ICC default, yang memberi tahu Anda karakteristik warna tampilan, termasuk gamut warna yang tersedia.
Aplikasi Universal Windows Platform menggunakan Metode DisplayInformation.GetColorProfileAsync sebagai gantinya.
Melakukan konversi ruang warna ke ruang warna tampilan
Jika ruang warna tampilan tidak cocok dengan ruang warna konten Anda, maka Anda harus melakukan konversi ruang warna. Misalnya, konten digital sering dikodekan sebagai sRGB, tetapi tampilan Anda mungkin gamut lebar DCI-P3. Anda biasanya akan menggunakan pustaka manajemen warna ICC yang membaca profil ICC, dan mengubah nilai warna konten Anda agar cocok. Windows menyediakan beberapa mesin manajemen warna ICC; misalnya, efek manajemen warna Direct2D.
Penting untuk dicatat bahwa manajemen warna berbasis profil ICC berorientasi tampilan atau berorientasi output. Itu berarti bahwa nilai warna tidak disimpan sebagai warna absolut (yang dirujuk adegan), tetapi sebaliknya dikodekan relatif terhadap ruang warna tampilan (perangkat output). Misalnya, jika aplikasi Anda merender sRGB merah, maka itu direpresentasikan seperti RGB(1, 0, 0)
dalam output yang Anda render. Tetapi jika Anda merender konten tersebut pada tampilan Adobe RGB, maka RGB(1, 0, 0)
hanya ditafsirkan oleh tampilan sebagai merah yang paling jenuh (Adobe RGB merah), yang salah. Ketika Anda menerapkan transformasi warna ICC, itu akan mengodekan ulang warna sebagai RGB(0.858659, 0, 0)
, dan ketika itu dirender oleh layar Adobe RGB, itu akan direproduksi dengan benar sebagai sRGB merah.
Lakukan pemetaan gamut untuk membatasi gamut tampilan
Selain menginterpretasikan kembali nilai warna agar sesuai dengan ruang warna tampilan, Anda perlu menangani kasus di mana tampilan tidak dapat mereproduksi semua warna dalam konten Anda secara fisik; jika gamut warna konten Anda lebih besar dari tampilan. Proses itu disebut pemetaan gamut.
Pemetaan gamut bersifat lossy karena Anda harus membuat kompromi tentang bagaimana memperkirakan gamut konten yang lebih besar. Metode yang paling mudah adalah colorimetric, di mana warna yang berada dalam gamut tampilan dipertahankan, dan warna yang berada di luar gamut dipotong ke nilai gamut terdekat.
Dalam alur kerja berbasis profil ICC, pemetaan gamut biasanya ditangani secara otomatis di pustaka manajemen warna. Anda memiliki kontrol atas perilaku pemetaan dengan memilih niat penyajian (lihat Mode niat penyajian).
Nota
Saat Anda berada dalam alur kerja warna tingkat lanjut, kami umumnya tidak merekomendasikan penggunaan niat penyajian persepsi, baik untuk sumber atau tujuan, karena dirancang untuk sumber dan tujuan SDR yang memiliki gamut warna lebih kecil daripada yang digunakan untuk HDR dan beberapa tampilan WCG; sehingga menggunakannya dapat mengakibatkan perilaku yang tidak terduga.
Manajemen warna sistem otomatis Windows
Saat Warna Tingkat Lanjut aktif, Windows melakukan manajemen warna sistem otomatis—ini memastikan bahwa konten warna aplikasi Anda direproduksi secara akurat pada layar. Itu secara dramatis menyederhanakan tindakan yang diperlukan pada aplikasi Anda, meskipun aplikasi tingkat lanjut mungkin terus melakukan pemrosesan tambahan untuk warna maksimum dan akurasi persepsi. Untuk informasi selengkapnya, lihat Menggunakan DirectX dengan Warna Tingkat Lanjut pada tampilan rentang dinamis tinggi/standar.
Mendapatkan karakteristik warna tampilan
Aplikasi sadar warna tingkat lanjut tidak boleh berinteraksi langsung dengan profil ICC tampilan. Sebagai gantinya, Anda dapat memperoleh properti warna tampilan menggunakan DisplayInformation::GetAdvancedColorInfo atau IDXGIOutput6.
Melakukan konversi ruang warna ke ruang warna tampilan
Windows akan melakukan konversi ruang warna ke ruang warna tampilan yang ditentukan oleh profil warna default saat ini. Jika tidak ada profil, data colorimetry EDID akan digunakan. Aplikasi Anda secara otomatis mendapatkan perilaku warna scene-referred—misalnya, jika Anda merender merah sRGB yang dikodekan sebagai RGB(1, 0, 0)
dan menampilkannya ke monitor Adobe RGB, maka Windows akan mereproduksi dengan benar sebagai merah sRGB. Aplikasi sadar warna tingkat lanjut harus menandai kontennya dengan ruang warna yang benar untuk menginformasikan Windows menggunakan IDXGISwapChain3::SetColorSpace1. Untuk semua aplikasi yang tidak sadar akan Warna Tingkat Lanjut yang merender ke format piksel bilangan bulat standar (misalnya, RGBA 8-bit), Windows akan memperlakukan aplikasi tersebut sebagai sRGB secara jelas. Jika Anda ingin merender AdobeRGB merah dalam skenario Warna Tingkat Lanjut, maka Anda harus merender RGB(1.158157,0,0)
di permukaan bertag scRGB (dibatasi oleh gamut tampilan).
Lakukan pemetaan gamut untuk membatasi gamut tampilan
Jalur tampilan GPU akan melakukan pemangkasan numerik pada warna di luar batas gamut. Jika aplikasi Anda ingin menggunakan pemetaan yang lebih canggih, Maka Anda perlu melakukannya sendiri.
Perilaku default profil ICC dengan Warna Lanjutan
Manajemen warna sistem otomatis selalu berdampak pada cara aplikasi berbasis profil ICC yang ada berperilaku, karena mereka melakukan banyak tindakan sendiri yang sekarang ditangani oleh sistem operasi (OS.) Windows menerapkan perilaku default (dijelaskan di bawah) ke aplikasi berbasis profil ICC. Itu memastikan bahwa aplikasi tersebut tidak memiliki perilaku yang salah. Namun, tanpa upaya lebih lanjut, mereka tidak akan mendapatkan akses ke tidak satu pun dari fitur warna yang diperluas.
Secara khusus, secara default, aplikasi Anda yang berbasis profil ICC dibatasi pada gamut sRGB, bahkan jika monitor sebenarnya memiliki gamut yang lebih luas. Windows juga menyediakan pembantu kompatibilitas ICC yang dapat memberi aplikasi ICC Anda akses ke seluruh gamut tampilan. Untuk informasi selengkapnya, lihat bagian Tampilkan pembantu kompatibilitas profil ICC dalam topik ini.
Mendapatkan karakteristik warna tampilan
Ketika Warna Canggih aktif, setiap pemanggilan ke API manajemen profil warna untuk mendapatkan profil default dari tampilan akan mengembalikan hasil "tanpa profil", tanpa mempedulikan profil yang sebenarnya terpasang. Menurut konvensi "tidak ada profil" harus ditafsirkan sebagai sRGB.
Profil ICC tampilan masih valid dan digunakan dengan Warna Tingkat Lanjut, tetapi hanya digunakan di tingkat sistem, dan sebagian besar aplikasi tidak boleh berinteraksi langsung dengannya. Informasi di bawah ini umumnya diperlukan hanya jika aplikasi Anda adalah utilitas yang menghitung semua profil tampilan, atau menulis/menginstal profil.
Untuk menerapkannya, Windows menambahkan konsep STANDARD
subjenis profil warna dan EXTENDED
. Itu berlaku untuk API manajemen profil warna apa pun yang menggunakan COLORPROFILESUBTYPE:
CPST_STANDARD_DISPLAY_COLOR_MODE
CPST_EXTENDED_DISPLAY_COLOR_MODE
Nota
STANDARD
dan EXTENDED
subjenis bukan properti yang disimpan dalam profil itu sendiri; melainkan, mereka berlaku untuk asosiasi profil ke tampilan (yaitu, ketika profil ditambahkan ke daftar asosiasi profil tampilan). Satu profil dapat dikaitkan dengan kedua subtipe STANDARD
dan EXTENDED
untuk tampilan, yang berarti bahwa profil tersebut akan tersedia untuk skenario warna Standar maupun Tingkat Lanjut.
Tampilkan asosiasi profil yang dimaksudkan untuk digunakan dalam SDR—baik SDR reguler atau SDR Warna Lanjutan—memiliki subjenis STANDARD
(itu adalah default jika tidak ada nilai yang ditentukan). Tampilkan asosiasi profil untuk digunakan dalam mode HDR sebagai subjenis EXTENDED
. Jika aplikasi Anda tidak menentukan subjenis, maka itu ditafsirkan sebagai STANDARD
.
SETIAP API getter yang menggunakan COLORPROFILESUBTYPE hanya akan mengembalikan profil dengan subjenis yang sesuai STANDARD
atau EXTENDED
. Misalnya, jika HDR aktif, satu-satunya profil tampilan dengan EXTENDED
subjenis valid untuk digunakan, dan STANDARD
profil subjenis tidak digunakan.
Setter API dapat menentukan subjenis (STANDARD
adalah default).
Melakukan konversi ruang warna ke ruang warna tampilan
Karena API manajemen profil ICC mengembalikan sRGB saat Warna Lanjutan aktif, aplikasi berbasis profil ICC Anda akan mengelola warna ke sRGB, dan Windows akan mereproduksinya dengan benar sebagai sRGB pada tampilan.
Lakukan pemetaan gamut untuk membatasi gamut tampilan
Perilaku pemetaan gamut yang ada dipertahankan.
Menampilkan alat bantu kompatibilitas profil ICC
Ketika Warna Tingkat Lanjut aktif, Windows menyediakan pembantu kompatibilitas untuk menampilkan profil ICC yang menyediakan akses ke seluruh gamut tampilan. Dengan begitu aplikasi Anda terus mendapatkan warna gamut yang akurat dan lebar hingga kemampuan tampilan yang dilaporkan—fungsionalitas yang sama yang tersedia pada monitor gamut lebar yang dikalibrasi dalam mode Warna non-Tingkat Lanjut warisan saat ini. Tanpa pembantu itu, aplikasi Anda akan terbatas pada perilaku default, yaitu sRGB (lihat perilaku default profil ICC dengan Warna Lanjutan).
Pembantu tersebut tersedia dimulai dengan Windows 11. Ini tidak memberikan manfaat lain dari Warna Tingkat Lanjut termasuk akses ke presisi/kedalaman bit yang lebih tinggi atau rentang dinamis tinggi—Anda harus memodifikasi aplikasi Anda agar sadar Warna Tingkat Lanjut.
Mengaktifkan pembantu kompatibilitas tampilan ICC
Pembantu kompatibilitas ICC untuk tampilan diaktifkan secara individual untuk setiap aplikasi. Ini tidak diaktifkan secara default.
Pengguna dapat mengaktifkannya untuk aplikasi dengan masuk ke tab Kompatibilitas properti yang dapat dieksekusi, dan memilih Gunakan manajemen warna ICC tampilan warisan. Pembantu kompatibilitas diterapkan ke seluruh proses, dan hanya aktif saat Warna Tingkat Lanjut diaktifkan untuk tampilan—tidak berpengaruh pada tampilan SDR standar.
Windows secara otomatis mengaktifkan pembantu untuk beberapa aplikasi populer yang diketahui menggunakan manajemen profil warna ICC.
Tidak ada cara terprogram untuk mengaktifkan pembantu kompatibilitas tersebut untuk aplikasi Anda.
Mendapatkan karakteristik warna tampilan
Jika pembantu kompatibilitas aktif, maka saat aplikasi Anda meminta profil warna default STANDARD
menggunakan fungsi manajemen profil Sistem Warna Windows, Windows membuat profil ICC sintetis menggunakan data yang sama yang mengisi API kemampuan tampilan Warna Tingkat Lanjut. Data profil sintetis dapat berasal dari kombinasi profil warna saat ini, data dari EDID atau DisplayID, atau dari sumber lain.
Jika aplikasi Anda mengkueri profil warna default EXTENDED
, maka itu menunjukkan bahwa aplikasi Anda sadar Warna Tingkat Lanjut, dan akan menerima profil aktual EXTENDED
.
Melakukan konversi ruang warna ke ruang warna tampilan
Jika pembantu kompatibilitas aktif, aplikasi Anda diharapkan menggunakan manajemen warna ICC untuk menargetkan profil tampilan sintetis. Windows mengasumsikan bahwa aplikasi Anda menargetkan ruang warna tersebut, dan akan melakukan konversi ruang warna yang benar untuk memastikannya dirender secara akurat pada layar.
Konversi ruang warna berlaku untuk seluruh proses aplikasi, sehingga semua konten visual aplikasi Anda diperlakukan sebagai menargetkan ruang warna tampilan, bahkan jika beberapa di antaranya tidak dikelola warna dan secara nominal menargetkan sRGB (misalnya, UI). Konversi ruang warna juga diterapkan terlepas dari API grafis (GDI, DirectX, XAML, dan sebagainya), format piksel, atau karakteristik lain dari konten yang Anda render.
Lakukan pemetaan gamut untuk membatasi gamut tampilan
Perilaku pemetaan gamut yang ada dipertahankan.
Perubahan perilaku yang terlihat pengguna
Pengguna dapat memverifikasi apakah pembantu kompatibilitas ICC tampilan aktif untuk berkas yang dapat dieksekusi dengan memeriksa tab Properti kompatibilitasnya. Jika aplikasi Anda menampilkan info tentang profil ICC tampilan default, maka pengguna akan melihat bahwa itu adalah profil buatan. Konten deskriptif profil (termasuk nama) adalah detail implementasi.
Perilaku warna aktual harus identik dengan ketika Warna Tingkat Lanjut dinonaktifkan. Dalam kedua kasus, aplikasi Anda akan merender warna akurat yang dapat mengakses gamut lengkap layar, seperti yang dijelaskan oleh profil ICC.