Внутренности Франкенкамеры представлены OMAP3530, упрощенной версией чипа, который стоит в Nokia N900. На этом OMAP3 запушен GNU/Linux, собранный Eino-Ville Talvala. Эдди (как он предпочитает себя называть на американский манер) также улучшил и поддерживает драйвера для работы с сигнальным процессором ISP внутри OMAP3 (внутри OMAP3 на самом деле четыре процессора -- ARMv7, Neon, DSP и ISP). Качество драйверов от TI довольно посредственное, так что любые улучшения в этой области только приветствуются, тем более, что версия от Эдди работает на 2.6.31, самом распоследнем ядре.
Сама по себе камера напоминает Лейку где-нибудь так 50-60 лет назад. Качество получаемой картинки приблизительно соответствует Nokia N95. С этой стороны весь проект можно было бы и закрыть, особенно для обывателя (подумаешь, изобрели велосипед). На самом деле, все только тут и начинается.
Все дело в вычислительной фотографии. С отдельными ее проявлениями (сжатие с потерями, основанное на восприимчивости человеческого глаза, широкий динамический диапазон, построение панорамы) знакомы практически все. Последние лет двадцать дали существенный толчок развитию и других направлений, например в теории светового поля появились многомерные (пять и выше) пленоптические функции, позволяющие более точно описать происходящее со светом на записаном кадре. Результат -- многие усовершенствования в расчетах искусственных изображений, а также возможность исправлять "недостатки" реальности. Например, устранять блики на линзах объективов или убирать нежелательные объекты с фотографий.
Многие из этих методов основаны не только на обработке уже полученных изображений. Напротив, некоторые требуют изменений в самом процессе съемки. Так, множественные микролинзы перед основным сенсором позволяют записать информацию о направленности лучей и использовать ее потом для перефокусировки уже снятого изображения. В результате получается, что исследователям надо изменять не только программное обеспечение камеры, но и ее физические характеристики.
Вот тут-то и поджидает самый большой "обломинго". Производители массовых камер не заинтересованы в проникновении в их "святая святых" обыкновенных фотографов. Получить доступ ко всем параметрам, которые выдает объектив через байонет, или к данным прямо с сенсора, без предварительной обработки, практически невозможно. Не говоря уже о том, что у всех производителей более-менее серьезных камер свое ПО запустить внутри камеры невозможно. Для Canon есть CHDK, хак, который позволяет переписать определенные действия после съемки кадра. Добраться же до начальных этапов (измерение и фокусировка) или до обработки данных (демозаика, устранение шума, баланс белого), увы нельзя.
Марк Левой провел несколько лет, пытаясь убедить азиатских производителей фотоаппаратов открыть доступ для исследователей. Бесполезно. В 2007 году Nokia поддержала его работу по вычислительной фотографии и в рамках этого проекта (Camera 1.0) было выполнено довольно много интересных работ. Некоторые из них даже попали в устройства -- N86 8MP в новой прошивке содержит алгоритм получения панорамы во время работы видоискателя, разработанный одним из талантливейших аспирантов из команды Левоя -- Эндрю Адамсом -- вместе с сотрудниками Nokia Research Center в Пало-Альто. По утверждению Левоя, мощности современных телефонов достаточно для выполнения многих задач вычислительной фотографии.
Впрочем, и этого мало. Франкенкамера -- это попытка создать действительно полностью адаптируемую к задачам пользователя камеру как на уровне программного обеспечения, так и на уровне аппаратной платформы. Нужно заменить сенсор? Поставить другую оптику? Изменить логику обработки данных из сенсора? Использовать другой механизм синхронизации затвора и вспышки? Все это должно быть возможно в Camera 2.0, прототипом которой и служит Франкенкамера.
Одной из нетривиальных задач стала разработка интерфейсов взаимодействия устройств, участвующих в съемке и обработке. Затвор, сенсор, вспышка, цифровой процессор, всем им надо посылать сигналы и данные, синхронизировать их между собой и желательно иметь возможность описать их взаимодействие на высокоуровневом языке, чтобы встроить этот алгоритм в алгоритм обработки получаемых с сенсора данных. Интерфейсы пока не определены, нам был продемонстрирован некий прототип, скорее направление работы, которая должна вылиться во что-то внятное к SIGGRAPH 2010.
Результатом должна стать свободная платформа управления фотографическим оборудованием и результатами съемки, которая будет опубликована на www.opensourcecamera.org. Ключевое слово здесь "будет", потому что сейчас на этом сайте блог, несвязанный с проектом, но о передаче домена договорились. Впрочем, было бы все так хорошо...
Пока что имеющийся объем кода позволяет делать некоторые обнадеживающие эксперименты. Например, видоискатель с широким динамическим диапазоном. На имеющейся франкенкамере с 5Мп камерой удается сделать видоискатель с частотой 15 кадров в секунду с автоматическим выравниванием динамического диапазона. Замечу -- не перетонировка после съемки, а прямо в живом видоискателе. Работает неплохо, хотя код совсем неоптимизирован под платформу -- голый C, никаких оптимизаций под использование возможностей Neon или DSP.
Следующий шаг, обещанный Марком Левоем -- поддержка N900 в качестве платформы для начинки Camera 2.0, чтобы можно было расширить круг исследователей и разработчиков хотя бы в трех из пяти областей вычислительной фотографии, которые профессор обозначает в качестве целевых. Две оставшиеся требуют модификации оптического или регистрирующего трактов. Надеюсь, к началу 2010 у нас будет о чем говорить.
И еще интересный момент. В Стенфорде 96 франкенкамер были объединены в многокамерный массив и использовались для съемки с последующей программной перефокусировкой получившегося многомегапиксельного изображения. Две главные проблемы, возникшие в рамках этого проекта -- как гарантировано быстро передавать данные между камерами для обработки, а также как добиться стабильности оптической системы. Даже объективы из одной партии обладали такой разбежкой в качестве сборки и оптики, что потребовалось разработать новые алгоритмы борьбы с бликами и прочими подобными артефактами. В результате, докторская диссертация Эдди Талвалы получилась вовсе не о Франкенкамере, а о борьбе с засветками.
На вопросы публики, что же реально влияет на качество картинки, профессор ответил просто: "Влияет всё. Но если у вас плохая оптика, то ничего не спасет." Так что первый вопрос, который был направлен профессором нам, звучал так: "Можно ли в N900 заменить оптику на внешнюю?" Конечно, какой-либо стандартный байонет из мира DSLR в N900 отсутствует, но умельцы профессора явно не остановятся перед препарированием пациента. Впрочем, у нашего пациента и штатный объектив не такой уж плохой -- он лучше N95. Весь вопрос в последующей обработке.