ЦВЕТ И КОМПЬЮТЕР

О НЕЛИНЕЙНОСТИ КВАНТОВАНИЯ ЯРКОСТИ

1. Что мы имеем

В идеализированном случае яркость экрана монитора связана с ее дискретным численным кодом следующим соотношением:
I=AD^gamma

(*)

где I - яркость данного пиксела, A - коэффициент пропорциональности (равный максимальной яркости экрана), D - нормированное значение кода яркости пиксела (меняющееся от 0 до 1), gamma - знаменитая "гамма", мера нелинейности кривой передачи монитора (по умолчанию в Windows равна 2.2). Это - степеннАя функция. Вот так выглядит ее график (рис.1):

график функции квантования яркости
Рис.1   График функции квантования яркости. По оси Х - код яркости от 0 до 100% (от 0 до 255 при 8 битах на канал). По оси Y - яркость пикселов. Для стандартных значений =2,2 (принято по умолчанию в Windows) и =1,8 (принято по умолчанию в Mac OS). Для сравнения показан график линейной зависимости между яркостью и ее кодом, которая имела бы место при =1

Из формулы (*) легко можно увидеть, что кривая начинается от нулевых значений яркости. Однако в реальности ни один монитор не воспроизводит яркость от нуля (кроме всего прочего, поверхность экрана не является абсолютно черным телом). Более адекватно зависимость физической яркости экрана от значений пикселов выражает следующая формула:
I=A(k1D+k2)^gamma

(**)

где все обозначения те же, что и в (*), k1 и k2 - коэффициенты пропорциональности, величины которых отражают конкретные настройки монитора и потому могут различаться. Вот график этой функции (для наглядности контраст монитора (т.е. отношение яркости белого к яркости черного при данных настройках) сильно занижен и равен для данного графика 33 (в то время как типичные значения сотставляют 250-400 для ЖК-мониторов и 1000-3000 для ЭЛТ-мониторов):
график функции квантования яркости
Рис.2   График функции квантования яркости. Значения осей те же, что в рис. 1. Построены идеальная кривая, начинающаяся в точке I=0 (контраст равен бесконечности) и кривая для монитора с контрастом 1:33 (значение преуменьшено для наглядности). Для обеих кривых =2,2.

У любого телевизора, как и у любого компьютерного монитора, изготовленных по ЭЛТ-технологии, имеются ручки "Яркость" и "Контраст". В суровой реальности ручки могут быть кнопками :) или вообще виртуальным понятием, но это ничего не меняет. Так вот, кручение ручки "Яркость" эквивалентно изменению коэффициента k1, а кручение ручки "Контраст" - изменению коэффициента k2 в формуле (**). Обратите внимание на то, что ОБА регулятора меняют И ЯРКОСТЬ, И КОНТРАСТ! Поэтому общепринятые их названия неадекватны. Намного правильнее было бы ручку "Яркость" обозвать "Уровень черного" (по-английски "black level" - и такой пункт имеется в меню профессиональных видеокамер и видеомагнитофонов), а ручку "Контраст" - "уровень белого". Наверное, кто-то когда-то посчитал, что простой народ не поймет таких сложняков. Однако, существующие названия вводят в заблуждение. Они неинтуитивны! Если вы осознаете, что один регулятор меняет физическую яркость максимально черного цвета, технически доступного монитору/телевизору, а второй - физическую яркость максимально белого, все же остальные тона распределяются между ними как им положено - настроить телик/монитор для комфортного восприятия будет для вас парой пустяков. Поднимая уровень черного регулятором "яркости", вы уменьшаете контраст изображения, но улучшаете различимость деталей в самых темных участках изображения. Опуская уровень черного, вы увеличиваете контраст (который может стать чрезмерным и раздражать глаза), и, начиная с некоторого положения регулятора, теряете детали в тенях, которые все начинают воспроизводиться одинаковым черным тоном (то есть происходит срезание тонального диапазона видеосигнала в тенях). Оптимальное положение регулятора - то, при котором вы не тратите чрезмерных усилий на рассматривание черных участков изображения, но картинка не выглядит блеклой. Настройка же уровня белого регулятором "Контраст" сводится к подбору такого значения, при котором самые яркие детали избражения не ослепляют, но в целом оно не кажется слишком темным.

2. Почему мы это имеем?

Все современные стандарты цифровых изображений наследуют техническим параметрам аналогового телевидения, а более конкретно - американской системы NTSC (которая была оформлена в виде стандарта в 1953 году). Историческая логика этого процесса проста. В начале был Телевизор :). Все без исключения телевизоры раньше основывались на электронно-лучевых трубках, а зависимость яркости экрана ЭЛТ от напряжения на электродах электронной пушки носит именно степенной характер. Монитор стандарта VGA - по сути, близкий родственник телевизора NTSC. Например, откуда берется разрешение 640X480? 480 - число видимых на экране строк в системе NTSC (полное число строк, включая межкадровый промежуток - 525). 640 - результат умножения 480 на 4/3 (отношение сторон в кадре). (Разумеется, в самой системе NTSC, как аналоговой, никаких пикселов нет, а есть только строки). Когда формировались технические стандарты персональных компьютеров, американские инженеры поступили наиболее простым способом и линейно оцифровали шкалу электрических напряжений аналогового видеосигнала. Довольно долго персональный компьютер не рассматривался как инструмент для работы с графикой, и разработчики решали "всего лишь" задачу вывода изображения на экран. Затем на этой основе появились стандарты графических файлов. Позже пришли настольные издательские системы, и компьютерная графика стала частью производственного цикла полиграфической продукции. Что было еще позже, мы все знаем. Разумеется, степенная функция передачи не присуща как некая "природная" характеристика ни ЖК-мониторам, ни цифровым камерам.

Таким образом, современный мировой стандарт хранения визуальной информации основан на физических свойствах электронно-лучевых мониторов. Которые в наши дни активно заменяются жидкокристаллическими. Вполне возможно, что лет через пять ЭЛТ-монитор будет восприинматься как анахронизм.

Видна в этом некая абсурдность. Если основные свойства цветовых моделей отражают либо физические свойства света, либо психофизиологические особенности цветового восприятия человека - это вполне закономерно. Человек с присущими ему качествами сам для себя - одна из важнейших мировых констант. Но ЭЛТ-монитор (при всем нашем уважении и к самому прибору, и к инженерам, сотворившим это чудо техники) - вещь все же преходящая и, не побоимся этого слова, случайная. Как, скажем, паровая машина. Однако, такова логика исторического процесса.

3. Что мы могли бы иметь?

Попробуем отвлечься от реальной ситуации и поставить вопрос абстрактно. Каков оптимальный вид функции квантования яркости? Очевидно, что при наличии достаточного числа уровней яркости вопрос становится несущественным. Мы могли бы, скажем, пользоваться линейной зависимостью (пунктирная линия на рис.1) как наиболее простой 1. Важно лишь, чтобы прямое и обратное преобразования (яркость-код и код-яркость) были в точности дополнительны 2. Однако вопрос можно поставить иначе. Какова оптимальная функция квантования яркости, если мы хотим обойтись минимальным числом уровней яркости, при котором тем не менее не будет заметна дискретность тональной шкалы? Это вопрос, который мы здесь рассматривать не будем, хотя, возможно, в дальнейшем он найдет освещение на других страницах сайта.

Есть еще один, не менее интересный для тех, кому вообще все это интересно, вопрос. Но сначала введем понятие конверсии тонального диапазона. Речь вот о чем. Контраст типичного ЭЛТ-монитора - около 1:1000. Для бумажного отпечатка типичные значения контраста 1:40-1:100. Каким образом "засунуть" один диапазон в другой (с сохранением оптимального качества изображения)? Вопрос может показаться очевидным только тому, кто им не задавался. Если немного подумать, можно предложить 4-5 формул преобразования (такое преобразование мы и называем конверсией тонального диапазона). Не так уж очевидно для ума, что именно покажется наиболее логичным для глаза :) . Кстати, цифровые камеры записывают картинку в файл, а для чего этот файл предназначен? Для разглядывания на мониторе или для печати на принтере? Ведь не факт, что генерируемое камерой изображение оптимизаровано сразу под оба варианта. Этот вопрос мы тоже здесь не рассматриваем, хотя, возможно, обратимся к нему в дальнейшем.



1    -  В стандарте Audio CD для квантования звукового давления используется линейная шкала, при этом число уровней квантования равно 216=65536; подавляющее большинство слушателей вполне удовлетворено качеством формата. Между прочим, ухо намного более чувствительно ко всякого рода неправильностям, чем глаз.  Назад к тексту

2    -  256 уровней яркости (8-битного представления цвета) для этого недостаточно. Воспользовавшись линейной функцией квантования при таком числе уровней, мы получили бы в области теней слишком большой шаг шкалы, грубые "ступеньки" яркости, прекрасно видимые визуально. При типичном значении яркости монитора 100 кд/м2 каждая следующая ступень яркости была бы больше предыдущей примерно на 0,39 кд/м2, однако разница между 0 и 0,39 кд/м2 очень хорошо видна глазом, как и разница между 0,39 и 0,78 кд/м2 (т.е. в 2 раза).  Назад к тексту

пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ