Если 24-битное изображение RGB с диапазоном 0-255 на канал отображается на телевизоре, который отображает диапазон прибл. 16-235 на канал, цветовые детали будут потеряны, правильно?
Если да, следует ли предварительно обрабатывать изображения для сохранения только допустимого диапазона? Я хотел бы сделать это с кодом, а не в приложении для редактирования изображений. Я смутно помню, что читал, что линейное отображение не лучший способ сделать это, но, к сожалению, я не могу найти статью, которую я читал! Как называется этот процесс? Какие еще детали мне нужно знать?
Линейное отображение, вероятно, не лучшее решение (которое, я считаю, включает в себя преобразование вашего RGB в цветовое пространство CIE , его масштабирование и обратное преобразование), но его очень легко реализовать, а разница в диапазоне достаточно мала, и, вероятно, это не будет иметь значения ,
Если вы используете SOIL , он может автоматически сделать это при загрузке изображения, передав SOIL_FLAG_NTSC_SAFE_RGB в функции загрузки.
Документация Microsoft гласит «зажимать» и рекомендует делать это в пиксельных шейдерах. (Линейное масштабирование также должно быть простым в одном.) В нем также упоминается сканирование цвета, что, по моему опыту, является гораздо более раздражающим явлением при работе на телевизионных дисплеях.
источник