Как выглядит необработанный файл RAW? - Фотопедия
83 голосов
/ 21 февраля 2019

Я знаю, что люди используют модные программы, такие как Lightroom или Darktable, для пост-обработки своих файлов RAW. Но что если я не сделаю? Как выглядит файл, просто, знаете, RAW ?

Ответы [ 4 ]

179 голосов
/ 21 февраля 2019

Существует инструмент под названием dcraw , который считывает файлы различных типов RAW и извлекает из них данные пикселей - это фактически исходный код в самом низу многих открытых и даже коммерческих программ преобразования RAW.

У меня есть файл RAW с моей камеры, и я использовал dcraw в режиме, который говорит ему, чтобы создать изображение, используя буквальные немасштабированные 16-битные значения из файла. Я преобразовал это в 8-битный JPEG для обмена, используя воспринимаемую гамму (и уменьшил для загрузки). Это выглядит так:

dcraw -E -4

Очевидно, что результат очень темный, хотя если щелкнуть, чтобы развернуть, и если ваш монитор приличный, вы можете увидеть какой-то намек на что-то .

Вот цвет JPEG вне камеры, отображаемый из того же файла RAW:

out-of-camera JPEG

(Фото: моя дочь, кстати, пользуется моей камерой.)

В конце концов, не совсем темно. Детали того, где именно скрываются все данные, лучше всего охватить подробным вопросом , но вкратце, нам нужна кривая, которая расширяет данные в диапазоне темных и световых сигналов, доступных в 8- бит JPEG на типичном экране.

К счастью, программа dcraw имеет другой режим, который преобразует в более «полезное», но все еще едва обработанное изображение. Это регулирует уровень самого темного черного и самого яркого белого и соответственно изменяет размеры данных. Он также может установить баланс белого автоматически или из настроек камеры, записанных в файле RAW, но в этом случае я сказал , а не , поскольку мы хотим изучить наименьшую обработку возможно.

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

dcraw -d -r 1 1 1 1

Теперь, это, очевидно, более узнаваемо как изображение - но если мы увеличим его (здесь, так что каждый пиксель фактически увеличен в 10 раз), мы увидим, что это все ... dotty:

10× zoom and crop

Это потому, что датчик покрыт массивом цветных фильтров - крошечными маленькими цветными фильтрами размером каждого фотосайта. Поскольку моя камера - камера Fujifilm, она использует шаблон, который Fujifilm называет «X-Trans», который выглядит следующим образом:

10× xtrans

Есть некоторые подробности о конкретном паттерне, которые довольно интересны, но в целом это не супер важно. Большинство камер сегодня используют так называемый шаблон Байера (который повторяется каждые 2 × 2, а не 6 × 6). Оба шаблона имеют больше зеленых фильтров, чем красные или синие. Человеческий глаз более чувствителен к свету в этом диапазоне, поэтому использование большего количества пикселей позволяет получить больше деталей с меньшим шумом.

Так что, в любом случае, вот здесь 1: 1 (когда вы нажмете, чтобы получить полную версию, один пиксель в изображении будет одним пикселем на экране) JPEG вне камеры:

1:1 view crop of out-of-camera image

... и здесь та же самая область из быстрого преобразования в оттенках серого выше. Вы можете увидеть зернистость из шаблона X-Trans:

1:1 crop of the dcraw -d -r 1 1 1 1 version

Мы можем фактически взять это и раскрасить пиксели так, чтобы те, которые соответствуют зеленому в массиве, отображались на уровни зеленого вместо серого, красного на красный и синего на синий. Это дает нам:

1:1 with xtrans colorization

... или, для полного изображения:

full image from dcraw -d -r 1 1 1 1 with xtrans colorization

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

xtrans colorized, naïve block demosaicking

... что на самом деле не так уж и плохо. Баланс белого отключен, но, поскольку я намеренно решил не приспосабливаться к этому, это не удивительно. Нажатие на «автоматический баланс белого» в программе обработки изображений компенсирует это (как если бы dcraw установил это в первую очередь):

xtrans colorized, naïve block demosaicking + auto-levels

Детализация невелика по сравнению с более сложными алгоритмами, используемыми в камерах и программах обработки RAW, но очевидно, что здесь есть основы. Лучшие подходы создают полноцветные изображения, взвешивая различные значения вокруг каждого пикселя, а не проходя большими блоками. Так как цвет обычно постепенно изменяется на фотографиях, это работает довольно хорошо и создает изображения с полноцветным изображением без уменьшения размеров в пикселях. Есть также хитрые приемы для уменьшения краевых артефактов, шума и других проблем. Этот процесс называется «демозапись», потому что рисунок цветных фильтров выглядит как мозаичная плитка.

Полагаю, это представление (где я действительно не принимал никаких решений, а программа не делала ничего умного автоматически) могло бы быть определено как "стандартный внешний вид" файла RAW, таким образом заканчивая много интернет-аргументов. Но нет такого стандарта - нет такого правила, что это особое «наивное» толкование является особенным.

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

10 голосов
/ 21 февраля 2019

Это действительно очень большая сетка чисел. Все остальное обрабатывается.

7 голосов
/ 21 февраля 2019

Я знаю, что mattdm уже достаточно хорошо на него ответил, но я просто подумал, что вы можете найти эту статью интересной:

Генетика данных: как работают цифровые камеры

Если ссылка не работает, вот сводка:

Человеческий глаз наиболее чувствителен к цветам в зеленой области длин волн (совпадает с тем, что наше солнце наиболее интенсивно излучает в зеленой области).

Глаз камеры (прибор с зарядовой связью (CCD) или дополнительный металлооксидный полупроводник (CMOS)) чувствителен только к интенсивности света, а не к цвету.

Оптические фильтры используются для фильтрации световых волн различной длины. Например, зеленый проходной фильтр пропускает только зеленый свет.

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

Возвращаясь к исходному вопросу: как выглядит необработанный файл RAW?

выглядит как черно-белая клетчатая решетка исходного изображения.

Причудливое программное обеспечение для последующей обработки файлов RAW сначала применяет фильтр Байера. После этого он больше похож на реальное изображение с цветом в правильной интенсивности и местах. Тем не менее, по-прежнему существуют артефакты сетки RGB из фильтра Байера, поскольку каждый пиксель имеет только один цвет.

Существует множество способов сглаживания файла RAW с цветовой кодировкой. Сглаживание пикселей похоже на размытие, поэтому слишком большое сглаживание может быть плохой вещью.

Некоторые методы демозаики кратко описаны здесь:

Ближайший сосед: значение пикселя (одного цвета) применяется к другим цветным соседям, и цвета объединяются. В этом процессе не создаются «новые» цвета, а только те цвета, которые изначально были восприняты датчиком камеры.

Линейная интерполяция: например, усредняет два смежных синих значения и применяет среднее синее значение к зеленому пикселю между смежными синими пикселями. Это может размыть острые края.

Квадратичная и кубическая интерполяция: аналогично линейной интерполяции, аппроксимации высшего порядка для промежуточного цвета. Они используют больше точек данных для создания лучшего соответствия. linear смотрит только на два, квадратичный на три и кубический на четыре, чтобы создать промежуточный цвет.

Сплайны Катмулла-Рома: похожи на кубические, но учитывают градиент каждой точки для генерации промежуточного цвета.

Половинный косинус: используется в качестве примера метода интерполяции, он создает половинный косинус между каждой парой одинаковых цветов и имеет плавную изогнутую кривую между ними. Однако, как отмечено в статье, она не дает никаких преимуществ для массивов Байера из-за расположения цветов. Это эквивалентно линейной интерполяции, но с более высокими вычислительными затратами.

Более качественное программное обеспечение для постобработки имеет лучшие методы демозаики и умные алгоритмы. Например, они могут определять острые края или изменения высокой контрастности и сохранять их резкость при объединении цветовых каналов.

0 голосов
/ 21 февраля 2019

Я думаю, что многие люди воображают, что необработанные файлы - это просто массив значений пикселей прямо из датчика камеры. В некоторых случаях это действительно так, и вы должны предоставить некоторую информацию о датчике, чтобы программное обеспечение могло интерпретировать изображение. Но многие потребительские камеры обычно выдают «сырые файлы», которые на самом деле более или менее соответствуют спецификации файла TIFF (в некоторых случаях цвета могут быть отключены). Можно попробовать просто изменить расширение файла на «.tif» и посмотреть, что происходит при открытии файла. Я думаю, что некоторые из вас увидят хорошую картину, но не все, потому что существуют различия между тем, как разные камеры решают эту проблему.

Хорошим решением является файл TIFF вместо «реального необработанного файла». Файл TIFF может иметь 16 бит на цвет. Этого достаточно для всех камер, которые я знаю.

Эд: Интересно, почему этот ответ получил отрицательный голос. Ответ по существу правильный (с оговоркой за то, что производители камер не должны использовать структуры TIFF, но многие из них используют).

Что касается массива пикселей прямо из сенсора, ожидать чего-то подобного не смешно. Потому что так работает множество датчиков вне рынка потребительских камер. В этих случаях Вам необходимо предоставить отдельный файл с описанием датчика.

Кстати, слово «RAW» используется, потому что оно должно означать, что мы получаем необработанные данные датчика. Но вполне разумно, что производители фотоаппаратов используют структурированный формат вместо сырых файлов по-настоящему. Таким образом, фотограф не должен знать точные данные датчика.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...