scRGB — это цветовое пространство RGB с широкой цветовой гаммой , созданное Microsoft и HP , которое использует те же основные цвета и точки белого/черного, что и цветовое пространство sRGB , но допускает координаты ниже нуля и больше единицы. Полный диапазон составляет от -0,5 до чуть меньше +7,5.
Отрицательные числа позволяют scRGB охватить большую часть цветового пространства CIE 1931 , сохраняя при этом простоту и обратную совместимость с sRGB без усложнения управления цветом . Цена поддержания совместимости с sRGB заключается в том, что примерно 80% цветового пространства scRGB состоит из воображаемых цветов .
Большие положительные числа позволяют представлять изображения с расширенным динамическим диапазоном , хотя этот диапазон уступает таковому у некоторых других форматов с расширенным динамическим диапазоном, таких как OpenEXR . [2]
Для отдельных основных цветов определены две кодировки: линейная 16-битная кодировка на канал и нелинейная 12-битная кодировка на канал.
16-битное кодирование scRGB(16) представляет собой линейные каналы RGB, преобразованные в 8192 x + 4096 . По сравнению с 8-битным sRGB этот показатель колеблется почти в 2+От 1 ⁄ 2 -кратного цветового разрешения около 0,0 до более чем в 14 раз цветового разрешения около 1,0. Хранение в виде 16 бит ограничивает линейный диапазон до −0,5..7,4999 .
12-битное кодирование scRGB-nl представляет собой линейные каналы RGB, проходящие через ту же функцию оптоэлектрического преобразования, что и sRGB (для отрицательных чисел используйте -f(- x ) ), а затем преобразуемые в 1280 x + 1024 . Это ровно в 5 раз превышает цветовое разрешение 8-битного sRGB, а 8-битный sRGB можно преобразовать напрямую с помощью 5 x + 1024 . Линейный диапазон ограничен немного большим -0,6038..7,5913 .
12-битная кодировка, называемая scYCC-nl , представляет собой преобразование нелинейных уровней sRGB в JFIF-Y’CbCr с последующим преобразованием в 1280 Y ’ +1024 , 1280 Cb +2048 , 1280 Cr +2048 . Эта форма может обеспечить большее сжатие и прямое преобразование в/из файлов JPEG и видеооборудования.
С добавлением альфа-канала с тем же количеством бит 16-битную кодировку можно рассматривать как 64-битную, а 12-битную кодировку — как 48-битную. Однако альфа не кодируется, как указано выше. Вместо этого альфа представляет собой линейный диапазон 0–1, умноженный на 2 n - 1 , где n равно 12 или 16.
Первой реализацией scRGB стал API GDI+ в Windows Vista . На WinHEC 2008 Microsoft объявила, что Windows 7 будет поддерживать 48-битный scRGB (который для HDMI можно преобразовать и вывести как xvYCC ). Компонентами Windows 7, поддерживающими 48-битный scRGB, являются Direct3D , компонент Windows Imaging и система цвета Windows , и они поддерживают его как в полноэкранном эксклюзивном режиме, так и в наложениях видео. [3] [4]
Происхождение sc в scRGB окутано тайной. Официально это ничего не значит. По словам Майкла Стоукса (национального и международного руководителя группы Международной электротехнической комиссии (IEC), работающей над scRGB), это имя появилось, когда японский национальный комитет потребовал изменить название с более раннего XsRGB (избыточный RGB). Двумя ведущими кандидатами на значение являются «зеркальный RGB», поскольку scRGB поддерживает оттенки белого, превышающие значения диффузного 1.0, и «стандартный композитный RGB», поскольку линейность, поддержка чисел с плавающей запятой, поддержка HDR (расширенный динамический диапазон) и поддержка широкой гаммы идеально подходит для композитинга. Это значение также неявно подчеркивает, что scRGB не предназначен для прямой поддержки в устройствах или форматах, поскольку по определению scRGB охватывает значения, которые находятся за пределами как зрительной системы человека, так и (даже теоретически) реализуемых физических устройств. [5]