Сколько остановок между средней серой и белой точкой?

Я пытаюсь понять взаимосвязь между экспозицией, динамическим диапазоном, стопами света и средним серым цветом. Я собираюсь задать несколько вопросов по этой теме. Некоторые из них могут быть глупыми или неправильно поставленными. Пожалуйста, потерпите меня, я действительно потерян и мне не хватает некоторых важных знаний. И я понятия не имею, с чего начать.

  • Сколько стопов света находится между черной точкой RGB(0, 0, 0) и белой точкой RGB(255, 255, 255)? Это то же самое, что и динамический диапазон камеры, измеренный DxOMark?
  • Сколько ступеней находится между средним серым, то есть RGB (119, 119, 119), и точкой белого?
  • Зависит ли расстояние в стопах между средней серой и белой точкой от модели моей камеры?
  • Как я могу измерить фактическое расстояние в стопах между средней серой и белой точкой в ​​домашних условиях?
  • Как я могу рассчитать теоретическое расстояние между средней серой и белой точкой на основе характеристик камеры и чужих измерений?
  • В общем, как рассчитать расстояние в стопах между серым цветом RGB(n,n,n) и серым цветом RGB(m,m,m)?
  • Как добавить или вычесть определенное количество ступеней для серого цвета RGB (n, n, n) без Lightroom?
  • Где я могу научиться всему этому самостоятельно? Любая книга или онлайн-курс рекомендации?

Обычно я снимаю в Adobe RGB, а затем конвертирую в sRGB для веба. Зависит ли ответ на любой из вышеперечисленных вопросов от целевого цветового пространства фотографии?

Эта статья также полезна: cambridgeincolour.com/tutorials/dynamic-range.htm
Это зависит не только от камеры (иначе все они имели бы одинаковый динамический диапазон), но и от настроек (контрастность, тон и т. д.). Поэтому я собираюсь сказать, что невозможно ответить .
@PhilipKendall Я стеснялся, потому что это частичный ответ ... Но ты, наверное, прав.
@Fumidu Не стесняйтесь :-) Частичный ответ лучше, чем никакого ответа.

Ответы (3)

Введение
На основании ваших вопросов у меня сложилось впечатление, что вы упускаете один важный момент, а именно разницу между:

  • восприятие света в реальном мире,
  • восприятие света в мире так, как его воспринимают люди,
  • восприятие света, которое записывает датчик вашей камеры,
  • воспринимает свет как формат изображения, и ваш компьютер воспринимает (или обрабатывает) его.

В реальном мире существует огромное количество остановок между точкой черного и точкой белого. Далекие звезды излучают в нас всего несколько фотонов в секунду, в то время как Солнце излучает около 10^17 фото в секунду. Это примерно 57 остановок(!). Человеческие глаза могут видеть от 10 до 14 ступеней динамического диапазона в любой момент ( источник ) и около 24 ступеней, когда у нас есть время настроить глаза ( источник ). Датчики DSLR чуть ниже этого (8-11 стопов). Меньшие датчики часто имеют меньший динамический диапазон. Цифровая обработка изображений с разрядностью 8 бит имеет ровно 8 ступеней динамического диапазона.

Пытаясь ответить на ваши вопросы
, я постараюсь ответить на ваши вопросы настолько хорошо, насколько смогу. Моя цель состоит в том, чтобы дать вам понимание, а не просто дать вам прямой ответ, потому что я думаю, что это лучше всего соответствует цели вашего вопроса (вопросов).

  • Сколько стопов света находится между черной точкой RGB(0, 0, 0) и белой точкой RGB(255, 255, 255)? Это то же самое, что и динамический диапазон камеры, измеренный DxOMark?

Между RGB 0 и RGB 255 есть 8 ступеней , если ваша гамма равна 1. Например, если я использую Photoshop, чтобы сделать цвет RGB (119, 119, 119) ярче с помощью функции экспозиции до RGB 255, мне нужно добавить +2,42 останавливается. Но мне нужно недоэкспонировать -11,48, прежде чем я доберусь до RGB (0,0,0). Если у вас открыта панель «Информация» и палитра цветов находится на участке цвета при перемещении экспонометра, вы увидите, что значения RGB изменяются быстрее при добавлении экспозиции и медленнее при сдвигании экспозиции вниз. Как упоминалось в ответе @Fumidu, это связано с тем, что значение гаммы по умолчанию равно 2,2.

  • Сколько ступеней находится между средним серым, то есть RGB (119, 119, 119), и точкой белого?

Поскольку вы говорите о значениях RGB, вы находитесь в мире компьютерной обработки. Остановки — это переводы из реального мира (в два раза больше света) в цифровые изображения. Суть в том, что это зависит от того, как ваш компьютер (и ваше программное обеспечение для обработки изображений) обрабатывает «экспозицию». Другими словами: это зависит от гаммы. Мой эксперимент в Photoshop дал +2,42 стопа. Но именно так Photoshop обрабатывает гамму и экспозицию. Основываясь на идее, одна ступенька в два раза больше света , и если вы принимаете гамму 1 (двойной свет означает двойное значение RGB), это (ln(255)-ln(119)) / ln(2) = 1,1 остановок (округляется до 2 цифр). Вы можете просто умножить на гамму, если это не 1. Исходя из гаммы 2.2, это 2,2 * (ln(255)-ln(119)) / ln(2) = 2,42 ступени, что соответствует моему экспериментальному результату. в фотошопе.

  • Зависит ли расстояние в стопах между средней серой и белой точкой от модели моей камеры?

Да. Это зависит от двух вещей:

  • Динамический диапазон вашей камеры
  • То, как ваша камера обрабатывает ISO по отношению к динамическому диапазону

Если ваш динамический диапазон равен 10, у вас есть 5 ступеней ниже середины серого и 5 ступеней выше. Но в зависимости от значения ISO ваша камера может отдавать больший приоритет теням и смещать середину серого, поэтому, например, при ISO 800 у вас будет 6 ступеней ниже середины серого и 4 ступени выше (чтобы захватить больше деталей в тенях на за счет риска обрезки светлых участков). Вот статья, объясняющая это для видеокамеры, но цифровые фотокамеры делают то же самое.

  • Как я могу измерить фактическое расстояние в стопах между средней серой и белой точкой в ​​домашних условиях?

Установите камеру на штатив или устойчивую поверхность. Положите лист белой бумаги перед камерой. Убедитесь, что лист бумаги равномерно освещен, а источник света постоянный и желательно белый (или отрегулируйте баланс белого). Переведите камеру в ручной режим, установите фиксированное значение ISO на 100 единиц ISO, установите диафрагму на разумное значение (5,6 или 8 было бы отлично) и начните делать снимки с разными значениями выдержки. Измерьте яркость пикселей (значение RGB) и обратите внимание, сколько ступеней находится между (почти) черными экспозициями (<10 значений RGB) и (почти) яркими экспозициями (>250 значений RGB). Вот вам и динамический диапазон вашей камеры.

В этой статье это объясняется немного подробнее.

  • Как я могу рассчитать теоретическое расстояние между средней серой и белой точкой на основе характеристик камеры и чужих измерений?

Эмпирическое правило: 5 или 6 ступеней было бы хорошим выбором для DSLR (4 или 5 для компактных камер). Если вы знаете динамический диапазон, это половина динамического диапазона. Вычтите один стоп для высокого значения ISO (800-6400) и 2 шага для очень высокого значения ISO (6400 и выше).

Проблема в том, что динамический диапазон часто не входит в спецификации камеры. Кроме того, то, как камера справляется с высокими значениями ISO, является частью магии обработки камеры и часто недоступно для широкой публики. Короче говоря: общее обоснованное предположение подходит довольно близко. Рассчитать его (из-за отсутствия спецификаций) практически невозможно.

  • В общем, как рассчитать расстояние в стопах между серым цветом RGB(n,n,n) и серым цветом RGB(m,m,m)?

стопы = гамма * (ln(n) - ln(m)) / ln(2)
ln — натуральный логарифм; но если вы предпочитаете, вы также можете использовать журнал, который даст вам те же результаты.
Итак, от 119 до 255 n = 119, m 255, гамма = 2,2, стопы = 2,42.

  • Как добавить или вычесть определенное количество ступеней для серого цвета RGB (n, n, n) без Lightroom?

Используя приведенную выше формулу, вы можете использовать для этого любое программное обеспечение или инструмент программирования. Не уверен, что вы ищете.

  • Где я могу научиться всему этому самостоятельно? Любая книга или онлайн-курс рекомендации?

Это очень личное, но некоторые из моих любимых:

Большое спасибо! Это дает большую часть необходимой мне информации. Под «теоретическим расстоянием» я имел в виду, как предсказать результат домашнего эксперимента на основе предыдущего вопроса на бумаге, не проводя эксперимент на самом деле.
Ах. Я понимаю. Я отредактировал ответ соответственно.

Я предполагаю, что серая карта составляет 18%. Затем по сравнению с максимальным коэффициентом отражения 100 % линейные стопы равны половине или с шагом 100 %, 50 %, 25 %, 12,5 %, 6,25 % и т. д. Таким образом, 18 % будет примерно на 2,5 ступени ниже.

Но это НЕ будет выглядеть так на вашей гистограмме, потому что все данные RGB на гистограммах камеры закодированы в гамма-кодировании, а это совсем другая история. В гамма-гистограмме одна ступень вниз ближе к шкале 3/4, чем к шкале 1/2 (73%, но она будет немного меняться в зависимости от поправок камеры, таких как баланс белого, контрастность и т. д.).

По нормализованной шкале 0..1 18% с гаммой будет (0,18 ^ 1/2,2) = 0,46. И 46% x 255 = 117, чуть меньше масштаба 1/2. Там не линейно, но все же примерно на 2,5 ступени вниз.

Люди, как правило, не понимают, что гистограммы представляют собой гамма-код, а не идеализированную линейную шкалу. Но мы никогда не видим линейной шкалы, все наши данные RGB закодированы в гамма-коде, и гистограмма показывает это.

Одна ступень соответствует коэффициенту 2 света (-1 ступень => половина света, +1 ступень => вдвое больше света). Таким образом, байт (8 бит) имеет динамический диапазон 8 ступеней. Это меньше, чем хорошая камера, которая может иметь до 13 или 14 ступеней динамического диапазона.

Итак, как нам справиться с этой проблемой? Невозможно поместить 13 бит необработанного файла в 8 бит файла jpeg без потери некоторой информации. Гамма-сжатие используется для сохранения наиболее релевантной информации о том, как работает человеческий глаз.

en.wikipedia.org/wiki/Гамма_коррекция

Ответ WayneF является хорошим примером расчета среднего серого цвета.

Кроме того, вы должны понимать, что датчик камеры линейно реагирует на свет, а глаз реагирует нелинейно, и это еще одна причина, по которой используется гамма-сжатие.

Необработанное двоичное число является абстрактной величиной, оно не имеет отношения к фотографическим «стопам», 8-битное число может передавать 1 стоп, 8 стопов или 80 стопов, в зависимости от интерпретации.
Вы правы, это зависит от многих вещей, и в основном от значения Гаммы. Однако 8-бит не может хранить более 8 «порядков» чего-либо без потери некоторой информации. Как мы должны называть это понятие «порядки величины»?
Говорить, что 8-битное число хранит 8 ступеней без потери информации, тоже бессмысленно, потому что мы хотели бы знать, при каком разрешении (см.: цветовая полоса) сохраняется данное количество ступеней (нет «естественного» разрешения, и всегда можно увеличить или уменьшить). И на самом деле, «естественная» интерпретация нашего необработанного 8-битного числа имеет бесконечное количество ступеней, а не 8 ступеней, потому что у нас есть 0-255, и любое число выше нуля бесконечно ярче, чем нулевая яркость... конечно, цвет разрешение сильно различается ;-)
Гамма НЕ относится к человеческому глазу, и гамма НЕ увеличивает динамический диапазон. Гамма-данные ВСЕГДА расшифровываются до того, как их увидит человеческий глаз. Гамма была сделана для коррекции ЭЛТ-мониторов, которые автоматически декодируют потери, без остаточного кодирования гаммы. ЖК-мониторы являются линейными и не нуждаются в гамме, но все данные RGB уже закодированы, поэтому ЖК-мониторы просто декодируют их перед отображением.
И гамма - это экспоненциальная функция, нормализованная до 0..1, и 0 в любом показателе равен 0, а 1 в любом показателе равен 1, поэтому конечные точки НЕ МОГУТ измениться, поэтому динамический диапазон НЕ МОЖЕТ увеличиваться. Кроме того, он все равно декодируется обратно в 8 бит, прежде чем мы его увидим.
Первая строка Википедии — Gamma_Correction — Объяснение: «Гамма-кодирование изображений используется для оптимизации использования битов при кодировании изображения или полосы пропускания, используемой для передачи изображения, за счет использования преимущества нелинейного способа, которым люди воспринимают свет и цвет." Верно и то, что он необходим для коррекции ЭЛТ-мониторов, но он также окончательно связан с человеческим глазом.
Извините, Википедия явно ошибается в этом вопросе. Некоторые так говорят, но это всегда неправильно. Человеческий глаз абсолютно НИКОГДА не видит гамма-данные. Потери CRT декодируют его, единственная цель состоит в том, чтобы глаз видел исходные уровни изображения до потерь CRT. ЖК-мониторы линейны и не нуждаются в гамме, но для совместимости изображений микросхема ЖК-дисплея просто декодирует и отбрасывает гамму. Они должны это сделать, поскольку все изображения RGB всегда были гамма-кодированы для ЭЛТ, и это ДОЛЖНО быть устранено до того, как глаз увидит это. Если бы глаз видел гамма-данные, низкие значения были бы слишком яркими.
Ok. Есть ли у вас источники о чувствительности человеческого глаза к свету? В большинстве ссылок говорится о цветовой чувствительности, но не об интенсивности. Единственная ссылка, которую я нашел, это: telescope-optics.net/eye_intensity_response.htm , и в ней есть следующие уравнения: S=2,3klog10I+C и S=kI^a с S для ощущения и I для интенсивности света. Оба уравнения являются аппроксимацией довольно сложной реакции глаза. Что вы думаете?
А также: cambridgeincolour.com/tutorials/gamma-correction.htm Это очень хорошее объяснение, лучше, чем в википедии.
И это тоже неправильно. Слишком много, которые не знают, что объяснить в любом случае. У глаза действительно есть обратный отклик, похожий на гамму, но это чисто случайно. Глаз НИКОГДА не может видеть гамма-данные. Мозг обрабатывает глаза, а ЭЛТ обрабатывает гамма-данные. Гамма НЕ участвует, когда глаз видит исходную сцену, а гамма просто корректирует потери ЭЛТ, чтобы воспроизвести ее снова тем же исходным способом (без гаммы). Глаз ожидает линейных данных, а глаз НИКОГДА не видит гамма-данных. Гамма делается для ЭЛТ, а НЕ для глаза. Подумайте об этом больше, это очевидно.
Думаю, мы оба согласны с этим. Очевидно, что глаз не видит гамма-данных и всегда ожидает линейной информации. НО, если у вас только 8 бит, лучше кодировать данные с помощью гаммы. Изображения с гамма-кодированием сохраняют тона более эффективно. Поскольку гамма-кодирование перераспределяет уровни тонов ближе к тому, как их воспринимают наши глаза, для описания данного тонального диапазона требуется меньше битов. В противном случае избыток бит будет отведен для описания более ярких тонов (где камера более чувствительна), а нехватка битов останется для описания более темных тонов (где камера менее чувствительна).
@Fumidu: Гамма не важна для 8 бит, потому что мы надеемся, что мониторы декодируют ее до тех же исходных линейных значений, прежде чем наш глаз увидит ее. Более дешевые ЖК-мониторы декодируют его в 6 бит исходных линейных значений, а затем показывают. Декодирование CRT является аналоговым, но все же неважным (кроме исправления потерь CRT), потому что единственный план состоит в том, чтобы глаз, надеюсь, увидел декодированные линейные исходные данные. Если вывод на монитор не соответствует исходной линейной сцене, это ошибка воспроизведения.
Надоедливые ограничения на короткий текст. :) Гамма также не может увеличить динамический диапазон, потому что оба конца (нормализованные 0..1) в любой степени равны 0 и 1 (гамма не может вызвать отсечение). Гамма делается только для коррекции потерь ЭЛТ, в чистом виде, правда и в 1940 году тоже. Но по-прежнему поддерживается сегодня как no-op, только для совместимости данных.
Пожалуйста, перечитайте эту страницу: cambridgeincolour.com/tutorials/gamma-correction.htm , особенно часть с изображениями полос на линейном градиенте. Действительно, гамма не увеличивает динамический диапазон. Но это позволяет хранить линейную информацию датчика таким образом, который лучше подходит для глаз: Гамма = меньше полос в темных областях. Во-первых, вы правы, гамма нужна была для коррекции ЭЛТ. Из-за странной инженерной удачи родная гамма ЭЛТ составляет 2,5 — почти противоположно нашим глазам.