Casio QV4000, RAW-формат и Debian

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

Клад, зарытый в камерах Casio
Не секрет, что выдаваемое изображение в файл TIF или JPG камерами далеко от того, которое камера получает непосредственно с сенсора. И далеко не в лучшую сторону. Однако в профессиональных камерах есть возможность снимать в "чистый" формат RAW, не прошедший обработки программами фотокамеры. Это удел довольно дорогих цифровых камер, но как выяснилось, не только. В своё время были очень и очень хорошие камеры Casio серии QV, особенно 3000, 3500, 4000 и 5700 - одну из них, а именно Casio QV4000, я и купил 4-5 лет назад - и она до сих пор работает и радует меня замечательными снимками.
Так получилось, что для работы потребовалось снимать на своей камере и получать фотографии, которые не прошли обработку - очень нужно снимать в RAW. Поэтому потребовалось научиться работать в Linux с RAW-форматом (о чём я ещё напишу). И тут я вспомнил, что как-то мне попалась на глаза замечательная статья на iXBT о том, как заставить снимать эти камеры в RAW. Особенно согревало душу, что владельцы QV4000 оказались в самом выигрышном положении: RAW-файл, выдаваемой этой камерой, имеет 16 бит на отсчёт. В общем, это ещё не значит, что там стоит АЦП 16 бит, но сам факт сладок и приятен. Автор этой статьи, правда, всех запугал на тему "вот влезете туда своими кривыми ручонками и камеру поломаете". Всё оказалось не так страшно, как это малевали.

Берёмся за кирку и лопату
Конечно, смелых и отважных дебианщиков мало что останавливает на пути - и вот, вооружившись статьёй и фотокамерой, с криком "банзай!" начинаю врываться в инженерное меню. Камера выключена. Держа нажатыми кнопки DISP и MENU, включаю камеру в положение "Съёмка". Объектив не выдвигается, а на ЖК-экране камеры возникает чёрное меню с белым текстом - вот оно! Дальше быстро дважды нажимаю на кнопку ТАЙМЕР (которая откладывает съёмку на 2 и 10 секунд) и после этого сразу жму MENU. Есть контакт: попал в меню #3. Отлично, теперь джойстиком иду вниз к заветному пункту 20, который называется BAYER CAPTURE, то есть съёмка прямо с матрицы. Останавливаю подсветку на этом пункте и притапливаю спусковую клавишу наполовину. Меню тут же исчезло, объектив выехал, и появилось на ЖК-экране камеры привычное отображение того, что видит камера, параметры съёмки и всё остальное - как будто ничего и не случилось. Так, вздохнул глубже: камеру по крайней мере не угробил, и то ладно. Надо бы что-то снять. Снимаю: всё отлично, автофокус работает, экспокоррекция настраивается, и затвор пошёл. Дальше ЖК-экран погас и зелёная лампочка камеры начала мигать - дескать, идёт запись. Это заняло почти минуту, а точнее 46 секунд, при том что запись TIF занимает 30 секунд, а JPG 1-2 секунды. Записалось, камера вернулась в нормальный режим - только счётчик оставшихся кадров не изменился. Как будто ничего и не снималось. А теперь посмотрим, что получилось...

Вскрываем сундук с сокровищами при помощи Debian и GiMP
Вонзаем USB-штепсель в порт, ядро бодро рапортует, что нашло внешний SCSI-диск. Монтируем:

$ mount -t vfat /dev/sdc1 /mnt/flash/other
Всё, есть контакт, идём туда и в каталоге dcim (куда сваливаются JPG-файлы) видим файл kx821000.raw размером 7МБ. Ну да шут с ним, хорошо бы снимок посмотреть. Да вот незадача: GiMP не умеет читать RAW в стандартной комплектации. Однако на то оно и Debian, чтобы быстренько доставить недостающий винтик без головной боли для пользователя. Отточенное дебиановское движение:
# apt-cache search RAW | grep image
выдаёт неслабый список того, чем богат родной Демьян - и тут мы замечаем плагины к GiMP по имени gimp-ufraw и mrwtoppm-gimp. Для страховки ставим оба:
# apt-get install gimp-ufraw mrwtoppm-gimp
Попросит пакетов на 600Кб и быстро всё распихает куда надо. Запускаем GiMP и в списке поддерживаемых форматов видим искомое: поддержка RAW. Блеск! Пытаемся открыть наш заветный сундучок: вот оно, золото капитана Флинта! Появляется конвертор RAW и выказывает некоторое богатство настроек, попутно ругаясь на то, что из данного RAW-файла он не может выцедить баланс белого, с которым снималось изображение (баланс белого был поставлен на автомат, если указать баланс явно - проблем нет). Ну и ладно, пусть ставит автомат - это можно и поправить. Изображение открылось, и теперь можно с ним работать и сохранять в других форматах.

Впечатления от снимка в RAW
Ясное дело, что JPG там даже близко не лежал: никаких артефактов, кривой цветопередачи и потерянных деталей. GiMP не особенно удобен для редактирования цветопередачи, но всё-таки возможностями по работе с цветом он не обделён. И гораздо приятнее задавать гамму для RAW и видеть прекрасный результат, чем пытаться вытащить правдами и неправдами из TIF/JPG что-то приличное.
Вот пример: снят один и тот же объект, мой любимый калебас для пития матэ (это такой напиток из солнечной Бразилии, легально продающийся в продуктовых магазинах, не подумайте чего... ;-)) Вот его уменьшенное фото:

Теперь я приведу увеличенный фрагмент части калебаса справа - там, где глубины резкости объектива уже не хватает и снимок начинает терять детали. Фрагмент приведён в пятикратном увеличении (500кб):

Видны следы сглаживания и потери мелких деталей. Для любительской съёмки это может быть и не страшно, но когда захочется сделать распечатку на большой формат - там это выплывет непременно. А теперь RAW (600Кб):



Да, на JPG снимок выглядит сочнее, не спорю - но и из RAW его легко таким сделать, применив цветокоррекцию и поправив гамму. Это не вопрос. А вот потерянных деталей уже не вернуть. А в "чистом" формате они сохранены.
Конечно, теперь на пункт TIF в меню камеры я плюну окончательно: мало того, что RAW меньше занимает места, но главное, что на снимке больше мелких деталей и отсутствуют артефакты. Куча параметров и возможность коррекции изображения перед конвертацией делают использование инженерного меню привлекательной возможностью для извлечения дополнительных выгод из старенькой цифровой камеры. И самое главное: фирма Casio не стала изобретать велосипеды и выдумывать свои собственные проприетарные форматы, и RAW Casio легко и просто открываются свободными программами.

Как вернуть всё обратно?
Вот это был единственный вопрос, который автор статьи на iXBT не осветил - и очень зря. Снимаете вы и снимаете в RAW, вам всё нравится, а как вернуть камеру в первоначальное положение?

Я пошёл в меню, и с ясными глазами нажал на изменение формата съёмки - в JPG. И тут (по крайней мере первые два раза) меня ожидал сюрприз: измениться оно изменилось, но с ЖК-экрана исчезли все параметры съёмки и камера не реагировала ни на что, даже на попытку выключить её - только отображала то, что видит объектив. Выключил камеру вскрытием отсека с батарейками. Вот так жестоко... После этого включил - и всё нормально, никаких проблем. Снимает, как и прежде, в JPG и TIF. Всё отлично. Единственный неприятный момент: по крайней мере у меня при попытке изменить в пользовательской менюшке настройки, например, контрастности вызывали описанный выше эффект и переход камеры в автономный полёт :-) После того, как я (очередной раз "перезагрузив" камеру вскрытием батарейного отсека) в конце пользовательской менюшки нажал "reset", переход от RAW к JPG/TIF перестал сопровождаться такими спецэффектами. Это мелочь, но она может избавить вас от необходимости прикладываться к корвалолу лишний раз.

Сюрприз номер два, теперь уже от GiMP, во всяком случае v2.2.6. После установки плагинов для RAW он перестал нормально воспринимать TIF-ы с камеры, считая их тоже RAW-ами и запуская для них конвертор. Понятно, что ничего, кроме бессмысленных полос там не видно. Но GQview эти же самые TIF-ы камеры открывает и просматривает за милую душу. Опять-таки, не пугайтесь - с камерой всё отлично, никаких последствий влезания в инженерное меню.

Заключение

Ну, в общем эксперимент с камерой прошёл более чем успешно. Вход в инженерное меню и установка чтения в RAW на Casio QV4000 происходит быстро, просто и без последствий. Снятые кадры занимают меньше места, чем в бесполезном TIF (7Мб RAW против 11Мб TIF) при явно лучшем качестве и большем количестве мелких деталей. Выход из режима съёмки в RAW-формате может сопровождаться спецэффектами типа "зависания" камеры, но вынимание батареек возвращает её к нормальной жизни без потерь. Формат RAW, используемый в камерах Casio, без проблем читается конверторами в Linux, и в Debian есть плагины для GiMP, позволяющие работать с этим форматом легко и просто.

Ссылки:
Вот та самая статья на iXBT, в которой процедура входа в инженерное меню камер Casio описывается в подробностях: iXBT: Клад, зарытый Casio или RAW формат и камеры Casio. Кроме того, здесь есть замечательная статья про то, почему не надо снимать в TIF и почему стоит играть в игры, описанные выше, для получения снимков в RAW.

8 комментариев: |высказаться!| RSS-лента дискуссии.|
Анонимный комментирует...

Никакого zip-сжатия в вашем raw нет. Меньший размер raw объясняется простой арифметикой:
tif: 8bit/канал => 24bit/pixel
raw: 16bit/pixel
Вот вам и разница на треть (24 vs 16). А если бы raw был 12-битный, как у большинства камер, разница была бы соответственно в 2 раза.

virens комментирует...

Никакого zip-сжатия в вашем raw нет.
Спасибо - что-то я наврал :-) Поправил пост, теперь всё вроде нормально.
Ещё раз мерси за коммент.

Анонимный комментирует...

Некоторые уточнения:

1. Если открытый инструмент умеет работать с raw-форматом, это не значит, что этот формат открыт.

2. Совсем не обязательно конвертировать raw при помощи gimp. Это можно сделать и без него, и даже в пакетном режиме (см. пакеты ufraw и dcraw, причем лучше использовать не debian-пакеты, а ubuntu)

3. Приведенный фрагмент raw может быть ярче из-за настроек ufraw (напр. автоматическая коррекция экспозиции). Для оценки что же реально получается, лучше воспользоваться оригинальным dcraw, на коде которого и основывается ufraw.

4. У меня опыт с ufraw позитивный, но результат особо не радует (аппарат - Olympus E-500). Файлы, полученные при конвертации raw->jpeg внутри фотоаппарата ярче и четче, чем полученные при конвертации raw->jpeg с использованием dcraw/ufraw. Примеры: в фотоаппарате, dcraw, ufraw. Все примеры сделаны с одного raw-файла.

virens комментирует...

j2a - спасибо за такой развёрнутый комментарий!

1. Если открытый инструмент умеет работать с raw-форматом, это не значит, что этот формат открыт.
Согласен. Через некоторое время подготовлю ещё несколько статей по RAW, поправлю и эту. Если у вас есть ссылки на полезные статьи - буду очень признателен. Можно прямо на почту, которая указана в профиле.


2. Совсем не обязательно конвертировать raw при помощи gimp.
Я в курсе. Просто в Sarge есть только гимповый плагин.

3. Приведенный фрагмент raw может быть ярче из-за настроек ufraw
Согласен, но там акцентировано внимание на деталях. Так как я занимаюсь технической съёмкой, то на цветопередачу мне плевать, а нужны только детали и гамма=1.

4. У меня опыт с ufraw позитивный, но результат особо не радует
Есть подозрения, что внутри камеры могут быть зашиты адаптивыне алгоритмы коррекции кривых. Для нормальных людей это хорошо, для технических изврашенцев типа меня - плохо :-)

Анонимный комментирует...

Есть подозрения, что внутри камеры могут быть зашиты адаптивные алгоритмы коррекции кривых.
Подозрения вполне обоснованы. У него (фотоаппарата, ФА) даже настройки есть, Vivid, Natural, Muted. Меня же в первую очередь смущала детализация. Но развив мысль, попробовал - в действительности кажущаяся бОльшая четкость достигается применением фильтра sharpening (тоже в ФА есть настройка). Т.е. применив этот фильтр и скорректировав кривые, из dcraw/ufraw получаю картинку, аналогичную "из фотоаппарата"

За подкинутю мысль большое спасибо.

virens комментирует...

За подкинутю мысль большое спасибо.
Не за что - эту мысль нашёл на сайте замечательного фотографа Нормана Корена www.normankoren.com
Там, где он про цифровые камеры и конвертацию в RAW рассказывает.

Анонимный комментирует...

j2a
Во-первых, UFRaw умеет загружать родные кривые тонкоррекции для вашей камеры (см. вкладку "Base").

Во-вторых, UFRaw умеет загружать сторонние кривые тонкоррекции (см. вкладку "Corrections").

В-третьих, немало зависит от того, используете ли Вы правильные ICC-профили, и каково значение параметров Gamma и Linearity.

Анонимный комментирует...

Недавно купил фотик, Ваша статья какраз в тему, спасибо.

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.