Render.ru

Вопросик к знатокам устройства ФШ.

#1
К примеру, имееем файл РГБ24 бит, 256 градаций яркости на канал, и открываем окно коррекции левелс. Строится гистограмма, и по ней мы имеем график яркости пикселей для каналов. Выбираем канал Р. А потом мы сужаем диапазон яркостей, и отбрасываем допустим, значения 210-255, и 0-45. Соответственно, дальнейший график яркостей, который состит из 255 градаций строится из диапазона 45-210. То есть мы производим сужение динамического диапазона канала, и следовательно ухудшение качества. Вопрос состоит в том, может ли мне кто-то объяснить, каким образом работает фотошоп с математикой этих каналов, и не используется ли внутреннее 10 или 12 битное представление цвета, дабы не портить изображение?
 
#2
16-bit используется, но только если изображение 16-битное. А так происходит округление по обычным правилам: до 0.5 — в сторону меньшего целого, от .5 и до 0.9(9) — в большее целое.
 
#3
А разве значение яркости пикселя после деления может составлять дробное значение?
 
#4
Во внутреннем представлении — может. Преобразование с округлением к целому происходит уже при обновлении растра. Тем более, что Photoshop использует Lab координаты и все преобразования идут через соответствующие матрицы. Поэтому, кстати, даже на «ровной» картинке, если в Color Settings включена опция Use Dithering for 8-bit images возникают пикселы, отличные от заданной заливки на единичку — это как раз компенсация ошибки округления при преобразовании от Lab к, например, RGB.
Простой пример: рисуешь фон например (240;240;240) RGB и область в нем (241;241;241). Потом с помощью Levels сжимаешь диапазон до (0…191). Координаты фона и области должны быть преобразованы при этом в (179.8;179.8;179.8) и (180.51; 180.51; 180.51) соответственно. По правилам округления (дробная часть учитывается) получается 180 и 181, что и имеется на самом деле. При чисто целочисленном (без округления, т.е. без дробной части) должно было получиться 179 и 180.
При сжатии диапазона до (0…128) получается 120.47 и 120.97, округляемые до 121. Зато (0…127) дают уже 119.53 и 120.02, округляемые до 120 и 120.
То же будет и при работе с 16-bit глубиной цвета: они лишь приводятся к 8-bit делением на 256. В этом просто убедиться, проделав описанное выше преобразование для 8-bit и 16-bit image, а затем расширив с помощью Levels диапазон до исходного: 127 в 255. Для 8-bit получится (240;240;240) и для фона, и для области; для 16-bit — будут восстановлены исходные координаты 240 и 241 несмотря на то, что picker показывал 120 для фона и для области. Т.е. 120 для 16-bit — это было округленное значение, в самом деле хранились 30600 и 30727.
 
#5
Не согласен с предыдущим оратором, хотя математика выглядит убедительно.
Photoshop не использует Lab координаты, он использует значение яркости пространства редактирования RGB и диапазон этого пространства он делит на 256 отрезков, значения яркости каждого отрезка осредняются и используется в расчетах. Для СIE RGB отрезок будет раза в два больше чем в sRGB и у него эфект постеризации во время коррекции наступает раньше.
 
#6
ок теперь понятно. А все таки, внутренний формат данных - РГБ или ЛАБ? И еще, получается, что на входе картинки в фотошоп лучше всего иметь ее в 16 битном формате, как цифрованную кинопленку?
 
#8
Мой монитр не гарантия......как и ваш..суть...проверка по цвету это обязон
 
#9
Вот здесь коротко (выжимка) о цветовых пространствах и преобразованиях между ними:
http://www-imagis.imag.fr/~Brian.Wyvill/course/notes/color2.pdf
CIE RGB, sRGB и т.п. отличаются координатами цветности первичных цветов (primaries). Например, (255,0,0) sRGB по цвету соответствует (286,45,40) CIE RGB.
Для преобразований типа Levels, Curves лучше иметь 16-bit картинку — меньше потерь и искажений будет. Действительно,такие простые преобразования выполняются простым масштабированием и сдвигом native координат (RGB, CMYK) картинки. Все преобразования выполняются через соответствующие матрицы. Округление выполняется ПОСЛЕ вычисления.
Аналогично работают и другие преобразования, разница только в матрицах.
Из выжимки видно, что большой разницы между Lab и RGB и т.п. не видно.
 
Сверху