Як виглядає необроблений файл RAW?


84

Я знаю, що люди використовують модне програмне забезпечення, наприклад Lightroom або Darktable, для обробки своїх файлів RAW. Але що робити, якщо я цього не роблю? Як виглядає файл, просто, знаєте, RAW ?


21
Матриця. Це схоже на матрицю.
Hueco

2
Споріднені; Файли RAW зберігають 3 кольори на піксель або лише один? і Чому Червоний, Зелений та Синій є основними кольорами світла? що пояснює, як датчики цифрової камери мінімізують спосіб чи очі / мізки сприймають колір, який у певному сенсі насправді не існує так, як ми часто вважаємо, що це робиться.
Майкл С

3
@Hueco, матриця Байєра, можливо.
Марк

Я перемістив дискусію про те, як найкраще вирішити це як канонічне питання для чату . Давайте, будь ласка, продовжуйте її там, щоб у нас не було шуму в коментарях, як би не було рішення.
AJ Henderson

1
Як це не схоже, це "прямо-поза-вихідне зображення", яке багато людей, здається, думають, що вони мають, коли відкривають файл необробленого зображення в додатку для необробленої обробки. Це основа для цього питання.
Майкл C

Відповіді:


183

Існує інструмент під назвою dcraw, який читає різні типи файлів RAW і витягує з них піксельні дані - це насправді оригінальний код в самому низу безлічі відкритого коду і навіть комерційного програмного забезпечення для перетворення RAW.

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

dcraw -E -4

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

Ось кольоровий JPEG поза камерою, виведений із того самого файлу RAW:

JPEG поза камерою

(Кредит на фото: до речі моя дочка використовує мою камеру.)

Зрештою, не зовсім темно. Детальніше про те, де саме ховаються всі дані, найкраще висвітлюється глибоким питанням , але коротше кажучи, нам потрібна крива, яка розширює дані на діапазон темряв і вогнів, доступних у 8-бітовому JPEG на типовому екрані .

На щастя, програма dcraw має інший режим, який перетворюється на "корисніший", але все ще ледве оброблений образ. Це налаштовує рівень найтемнішого чорного та найяскравішого білого кольору та перераховує дані належним чином. Він також може встановити баланс білого автоматично або з налаштування камери, записаного у файлі RAW, але в цьому випадку я сказав це не робити, оскільки ми хочемо вивчити найменшу можливу обробку.

Все ще існує відповідність один на один між фотосайтами на датчику та пікселями на виході (хоча я знову зменшив це для завантаження). Це виглядає приблизно так:

dcraw -d -r 1 1 1 1

Тепер це, очевидно, більше впізнається як зображення - але якщо ми збільшуємо масштаб цього (тут кожен піксель насправді збільшується на 10 ×), ми бачимо, що це все ... dotty:

10 × збільшення та обрізка

Це тому, що датчик покритий масивом кольорових фільтрів - крихітними маленькими кольоровими фільтрами розмірами кожного фотосайту. Оскільки моя камера - це камера Fujifilm, для цього використовується візерунок Fujifilm, який називає "X-Trans", який виглядає приблизно так:

10 × xtrans

Є деякі деталі щодо конкретного шаблону, які є цікавими, але в цілому це не дуже важливо. Більшість камер сьогодні використовують щось, що називається схемою Байєра (який повторюється кожні 2 × 2, а не 6 × 6). Обидва візерунки мають більше сайтів із зеленим фільтром, ніж червоні або сині. Людське око в цьому діапазоні більш чутливе до світла, і тому використання більшої кількості пікселів дозволяє отримати більше деталей із меншим рівнем шуму.

У наведеному вище прикладі центральний розділ - це ділянка неба, який є відтінком блакитного - у RGB, це багато синього та зеленого кольорів без особливого червоного. Отже, темні точки - це сайти з червоним фільтром - вони темні, оскільки в цій області немає стільки світла на довжинах хвиль, які проходять через цей фільтр. Діагональна смуга в правому верхньому куті - темно-зелений лист, тому, хоча все трохи темно, ви можете побачити зелений - великі блоки розміром 2 × 2 з даним малюнком датчиків - відносно найяскравіші в цій області.

Отож, у будь-якому випадку, ось розділ 1: 1 (коли ви натискаєте, щоб отримати повну версію, один піксель на зображенні буде один піксель на екрані) JPEG поза камерою:

1: 1 перегляд обрізання зображення поза камерою

... і ось та сама область, що була описана вище у швидкій конверсії сірого. Ви можете бачити задиркування за схемою X-Trans:

1: 1 урожай dcraw -d -r 1 1 1 1 версія

Ми насправді можемо взяти це і розфарбувати пікселі, щоб ті, що відповідають зеленому в масиві, відображалися на рівні зеленого, а не сірого, червоного на червоне та синього на синє. Це дає нам:

1: 1 із забарвленням xtrans

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

повне зображення від dcraw -d -r 1 1 1 1 із забарвленням xtrans

Зелений акторський склад є дуже очевидним, що не дивно, адже на 2½ × більше пікселів зеленого кольору, ніж червоного або синього. Кожен блок 3 × 3 має два червоних пікселя, два синіх пікселя та п’ять зелених пікселів. Щоб протидіяти цьому, я зробив дуже просту програму масштабування, яка перетворює кожен із цих 3 × 3 блоків у один піксель. У цьому пікселі зелений канал - це середнє значення п’яти зелених пікселів, а червоний та синій канали - середнє значення відповідних двох червоних та синіх пікселів. Це дає нам:

xtrans забарвлений, наївний блок демозаїки

... що насправді не наполовину погано. Баланс білого вимкнено, але оскільки я навмисно вирішив не коригуватися на це, це не дивно. Якщо натиснути "автоматичний баланс білого" в програмі візуалізації, це компенсує це (як би це дозволило встановити Dcraw, що в першу чергу):

пофарбований xtrans, наївний блок демозахисту + автоматичний рівень

Деталізація не є великою порівняно з більш досконалими алгоритмами, які використовуються в камерах та програмах обробки RAW, але, очевидно, основи є. Кращі підходи створюють повнокольорові зображення, зважуючи різні значення навколо кожного пікселя, а не збираючись великими блоками. Оскільки на фотографіях колір зазвичай змінюється поступово, це працює досить добре і створює зображення, де зображення є повнокольоровим без зменшення розмірів пікселів. Існують також розумні хитрощі, щоб зменшити крайові артефакти, шум та інші проблеми. Цей процес називається «демозаїкацією», оскільки візерунок кольорових фільтрів виглядає як мозаїка плитки.

Я вважаю, що цей погляд (де я не приймав жодних рішень і програма не робила нічого розумного автоматично) можна було б визначити як "стандартний вигляд за замовчуванням" файлу RAW, таким чином закінчуючи багато аргументів в Інтернеті. Але, такого стандарту немає - немає такого правила, що ця "наївна" інтерпретація є особливою.

І це не єдина можлива відправна точка. У всіх реальних програмах обробки RAW є власні уявлення про базовий стан за замовчуванням, який слід застосувати до нового файлу RAW під час завантаження. Вони повинні щось робити (інакше у нас буде ця темна, непотрібна річ у верхній частині цієї посади), і зазвичай вони роблять щось розумніше, ніж моє просте ручне перетворення, яке має сенс, адже це все одно дає кращі результати.


4
Прекрасна картина. І чудова відповідь.
Марк.2377,


7

Я знаю, що mattdm вже досить добре відповів, але я просто подумав, що ця стаття може бути цікавою:

Генетика даних: як працюють цифрові камери

Якщо посилання не працює, ось короткий опис:

Людське око найбільш чутливе до кольорів у зеленій області довжини хвилі (збігається з тим, що наше сонце найбільш інтенсивно випромінює в зеленій області).

Камерне око (пристрій, пов'язаний із зарядом (CCD) або безкоштовний напівпровідник оксиду металу (CMOS)) чутливе лише до інтенсивності світла, а не до кольору.

Оптичні фільтри використовуються для фільтрації різних довжин хвиль світла. Наприклад, зелений фільтр пропускає лише зелене світло.

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

Повернення до початкового запитання: як виглядає необроблений файл RAW?

Це схоже на чорну білу картату решітку оригінального зображення.

Фантастичне програмне забезпечення для післяобробки RAW-файлів спочатку застосовує фільтр Bayer. Це більше схоже на фактичне зображення після цього, з кольором у правильній інтенсивності та місцях. Однак досі є артефакти сітки RGB від фільтра Bayer, оскільки кожен піксель має лише один колір.

Існує безліч методів вирівнювання кольорового файлу RAW. Згладжування пікселів схоже на розмивання, тому занадто велике згладжування може бути поганою справою.

Деякі методи демозаспостереження коротко описані тут:

Найближчий сусід: значення пікселя (одного кольору) застосовується до інших кольорових сусідів і кольори поєднуються. У цьому процесі не створюються "нові" кольори, лише ті кольори, які спочатку сприймалися датчиком камери.

Лінійна інтерполяція: наприклад, усереднює два сусідніх блакитних значення та застосовує середнє синє значення до зеленого пікселя між сусідніми синіми пікселями. Це може розмити гострі краї.

Квадратична та кубічна інтерполяція: подібна до лінійної інтерполяції, наближення вищого порядку для кольору між ними. Вони використовують більше точок даних для отримання кращих пригод. лінійний дивиться лише на два, квадратичний на три, а кубічний на чотири, щоб створити колір між ними.

Catmull-Rom Splines: схожий на кубічний, але враховує градієнт кожної точки, щоб генерувати міжряддя.

Половина косинусу: використовується як приклад інтерполяційного методу, він створює половину косинусів між кожною парою однотипних кольорів і має гладку перегнуту криву між ними. Однак, як зазначається у статті, це не пропонує жодної переваги для масивів Bayer через розташування кольорів. Це еквівалентно лінійній інтерполяції, але при більш високих обчислювальних витратах.

Програмне забезпечення після вищої кінцевої обробки має кращі методи демонізації та розумні алгоритми. Наприклад, вони можуть ідентифікувати різкі краї або зміни контрасту та зберігати їх різкість при поєднанні кольорових каналів.


-6

Думаю, багато людей уявляють, що необроблені файли - це просто масив значень пікселів прямо з датчика камери. Там є випадки, що це дійсно так, і вам потрібно надати певну інформацію про датчик, щоб програма могла інтерпретувати зображення. Але, як правило, багато камер споживачів дають "необроблені файли", які фактично більш-менш відповідають специфікаціям файлу TIFF (у деяких випадках кольори можуть бути вимкненими). Можна спробувати просто змінити розширення файлу на ".tif" і подивитися, що відбувається під час відкриття файлу. Я думаю, що деякі з вас побачать хорошу картину, але не всі, тому що існують відмінності між тим, як різні камери вирішують це.

Файл TIFF замість "справжнього необробленого файлу" - хороше рішення. Файл TIFF може мати 16 біт на колір. Цього достатньо для всіх камер, яких я знаю.

Ред: Цікаво, чому ця відповідь була оскаржена. Відповідь по суті правильна (із застереженням щодо того, що виробникам камер не потрібно використовувати структури TIFF, але багато хто з них це робить).

Щодо частини про масив пікселів прямо з датчика, не смішно сподіватися на щось подібне. Тому що так працює безліч датчиків за межами ринку камер споживачів. У цих випадках вам потрібно надати окремий файл, який описує датчик.

До речі, слово "RAW" використовується, оскільки воно повинно означати, що ми отримуємо неперероблені дані датчика. Але розумно, що виробники камер використовують структурований формат замість необроблених файлів для реальних. Таким чином фотограф не повинен знати точні дані датчика.


2
У мене були програми для відновлення файлів, які "відновили" файли .cr2 як TIFF. Ці файли не відкриваються за допомогою будь-якої програми, яка може працювати з TIFF. Зміна розширень файлів назад до .cr2 зробила їх ідеально зручними .cr2 файлами.
Майкл С

5
Це не означає, що файли RAW насправді не використовують контейнери формату TIFF - це абсолютно правильно. Просто те, що ви бачите, ймовірно, не є "RAW" даними в тому сенсі, який я шукаю.
mattdm

2
Для уточнення, файл використовує структури у форматі файлу TIFF. Але оскільки це не вдається точно так, як каже специфікація TIFF, це не суворий файл TIFF. Але справа в тому, що бібліотека TIFF може бути використана для читання файлу. Щоб прочитати цей файл, не потрібно робити все з нуля.
Ульф Теннфорс

5
Ніхто з жодним сенсом не очікує, що у файлі RAW з'являться дані безпосередньо з датчика без будь-яких метаданих, таких як час, інформація про камеру тощо. Те, що формати, подібні до TIFF, корисні для структурування даних, насправді не важливо, також не зменшує концептуальний принцип того, що ці дані "прямо" вимикаються з датчика без подальшої обробки.
whatsisname

3
TIFF - це контейнер, а не власне формат зображення. ви можете зберігати дані в TIFF і все ж мати це необроблені дані датчика замість зображення, який може використовувати кожен, хто не має спеціальних знань для камери.
тис
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.