Sony cRAW ETTR: сжатие с потерями, теория и практика.

Продолжим обсуждение ETTR на камерах Sony (первая часть тут) и разберемся с lossy-компрессией и ее возможным влиянием на ETTR.

Напомню устройство сжатия с потерями в этом формате:

  • Строка изображения разбивается на блоки по 32 пиксела, в каждом из блоков содержатся пиксели двух цветов, зеленого и какого-то еще из двух оставшихся, по 16 пикселов каждого цвета.
  • Для этих 16 пикселов записываются
    • Минимальное и максимальное значение в 16-пиксельном блоке с точностью 11 бит.
    • Координаты минимума-максимума (номер в блоке).
    • 14 остальных пикселов кодируются в виде дельт с 7-битной точностью.
    • Шаг дельт равен (максимум минимум) / 128 (округленное до ближайшей бОльшей степени двойки).
    • Соответственно, если (максимум минимум) в блоке больше 127, то шаг дельты - больше единцы, то есть дельта-кодирование записывает значение пиксела приближенно.
  • После раскодирования дельт, к раскодированным значениям применяется тоновая кривая, о которой подробно писалось в прошлой заметке
Приведем эту тоновую кривую еще раз:
Как мы видим, наклон кривой в области тени-полутона равен 2, в самых светах 32, в промежутке (ступенчато) меняется.

Посмотрим теперь, как тоновая кривая сочетается с дельта-кодированием. Представим себе относительно светлый фон, на котором расположена относительно темная деталь, так что и кусочек детали и фон попадают в один 32-пиксельный блок. Хороший пример - (светлое) небо и (темный) провод на нем.

Пусть яркость фона равна 1000 единиц (после применения кривой), яркость детали на 4 стопа меньше т.е. равна 62.

После кодирования по кривой, получим значения в RAW:

  • Фон: 756
  • Темная деталь: 287
Размах данных в блоке получается равным 469, ближайшая степень двойки 512. Таким образом, минимальный шаг дельты до применения тоновой кривой равен 4 (т.к. всего шагов 128, а диапазон, который нужно покрыть, - 512), после применения кривой (которая в диапазоне 0-1000 имеет наклон 2) 8 единиц.

Относительный шаг минимальная дельта / значение фона получается равен 8/1000 = 0.8%. Это, "минимальный шаг в градиенте" (внутри блока) и это - приемлемое значение сразу по двум причинам:

  • Минимальная "видимая глазом" ступенька, - порядка 1% изменения яркости, а камера записывает точнее этого предела.
  • Даже на минимальном ISO100 разброс значений за счет фотонного шума - больше, чем 8 единиц (сигма шума порядка 20), т.е. ступеньки на градиенте будут замазаны шумом, их не будет видно

Теперь ETTR

Представим теперь, что мы снимаем эту сцену в ETTR и увеличили экспозицию на 3.9 стопа (такое увеличение экспозиции переведет наши света с уровня 1000 в чуть ниже уровня насыщения , который составляет от 15360 /рекомендация Sony/ до 16116 /реальный максимум в файле/). Значения в RAW увеличатся в 14.92 раза и составят:

  • Значение фона: 14920
  • Темная деталь: 933
Закодируем теперь наши данные в RAW (применим обратную кривую)
  • Фон, после применения тоновой кривой: 1992
  • Деталь: 722
Посчитаем шаг дельты: размах данных: 1270, ближайшая степень двойки 2048. Таким образом, минимальный шаг дельты до применения кривой 2048/128 = 16. Однако, наклон кривой в районе 16000 равен 32, таким образом, после раскодирования RAW минимальный шаг дельты будет равен 512. Относительный шаг, соответственно, 512/14920 = 3.4%

В отличие от предыдущего случая, этот шаг уже слишком большой:

  • Втрое больше различимой глазом ступеньки в 1%
  • В ~6 раз больше фотонного шума на этом уровне на минимальных ISO, в ~4 раза больше фотонного шума при единичном усилении.
Таким образом, постеризация за счет слишком грубого дельта-кодирования должна возникать.

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

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

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

Однако на чужих снимках с голубым небом проблему удалось обнаружить.

Вот снимок из обзора A7R с сайта quesabesde.com:

Переключим RawDigger в режим показа ARW2: Delta relative to zero (вот тут подробнее про этот режим и изучим края башни, которая на заднем плане на фоне неба:
Ура, на правом краю башни дельты большие (все светлое), давайте проверим, видна ли эта проблема в RAW-конверторе (я взял ACR).

Даже с движками "по нулям" справа от выступа башни видно какое-то вялое "не то" (не должно быть такого неба):

Если же движки подвигать, "не то" начинает быть видно явно, и не только напротив выступа, но и в других участках справа от границы башни:

Ура, теоретически предсказанная и предварительно найденная RawDigger-ом проблема нашлась вживую.

Проблема небольшая (была бы большая - Sony бы от этого формата отказалась бы давно, либо от их камер отказались бы), она была бы еще острее, если бы снимок был бы экспонирован еще правее (на данном снимке значения на небе - порядка 8000, можно было бы на стоп еще открыться), но хардкорные ETTR-щики должны про этот эффект помнить.

Выводы

  1. Теория: использованное в камерах Sony дельта-кодирование может привести к видимой постеризации в светах, в плохом случае ступенька дельты порядка 3.5% по яркости.
  2. Теория: чтобы проблема возникла, достаточно контраста в 4EV в пределах 32-пиксельного блока, ничего безумно контрастного не надо.
  3. Теория: чем правее мы экспонируем света, тем больше может быть постеризация (при одном и том же контрасте внутри блока).
  4. Практика: эту постеризацию видно (но плохо), даже при движках конвертора по нулям и хорошо видно если увеличить контраст в светах. Видна она будет только на очень ровных поверхностях (цветовые шкалы без грязи; голубое небо; может быть - на очень ровной краске, вроде автомобильной), в остальных случаях естественные вариации все спрячут.
  5. Практика: проблемные места легко находятся RawDigger-ом (а найдя можно замазать их в фотошопе).

Приложение: постеризация в бликах

В процессе попыток найти эффект на снимках белой бумаги с напечатанным черным крестиком, был обнаружен другой эффект:

Очень ясно видимая постеризация RAW-значений может возникать на пересвеченных участках, если у них есть контрастная (темная) граница

Вот пример:

Это - зеленый канал в RAW, визуальный контраст немного поднят (путем увеличения уровня черного).

Этот эффект я уже упоминал в предыдущей заметке: базовые пикселы никогда не превышают значения 15860 (после кривой), тогда как дельта-пикселы доходят до 16116. Вот области с боле яркими дельта-пикселами отчетливо видны.

Этот эффект скажется в реальной жизни только если RAW-конвертор не обрезает данные, которые выше 15860, хочется надеяться, что на практике они таки режут (конверторы Adobe точно режут).

Comments

Похоже зрители иссякли, осталось ли хоть что-то неизученное у бедной Sony ?

Z / V

Вполне осталось. А тут сейчас еще a6000 подвалит с ее "improved RGB filter".

Народ уже весьма сильно возбудился на а6000, как бы не произошел облом ожиданий.

Реклама и заявления о возможностях камеры более чем оптимистичные.

> Реклама и заявления о возможностях камеры более чем оптимистичные.

"Sony a6000 promises world's fastest AF and 11 fps subject tracking"

+ сноска мелким шрифтом.

"Amongst interchangeable-lens digital cameras equipped with an ____APS-C___ image sensor as of February 12, 2014. Determined with internal measurement method with E PZ 16-50mm F3.5-5.6 OSS lens mounted, Pre-AF off and viewfinder in use."

= Nikon 1 & m43 как обычно впереди ...

Z / V

То-то, свадебные фотографы обрадуются. Теперь можно будет вообще палец с курка не снимать. Зеркало не хлопает, фокусироваться успевает, можно видео из кадров склеить

Главное, чтобы "improved" не оказалось, как обычно, "impaired".

Экспонометр, ISO, unity gain....

Вы прямо какие-то "микроскоп дрочеры", ну есть там мини артифакты иногда, и что с того, вы фото рассматриваете под лупой с увеличением 8 раз или в полный размер? Такие мелкие детали после перевода в 1920x1080 вообще уже перестают кого то волновать.

Размер блока - 32 пикселя. Перевод в 1920 - это уменьшение вчетверо для A7R-IV, вдвое для A7-n(20mpix), то есть борода будет 8/16 пикселей после уменьшения. Ну не так и мало.