Поддержка метаданных
Для поддержки сохранения файлов необработанных изображений с помощью платформы Android требуются существенные метаданные о характеристиках датчика. Сюда входит такая информация, как цветовые пространства и функции затенения линз.
Большая часть этой информации является статическим свойством подсистемы камеры и поэтому может быть запрошена перед настройкой выходных конвейеров или отправкой каких-либо запросов. Новые API-интерфейсы камеры значительно расширяют информацию, предоставляемую методом getCameraInfo()
для предоставления этой информации приложению.
Кроме того, ручное управление подсистемой камеры требует обратной связи от различных устройств об их текущем состоянии и фактических параметрах, используемых при захвате данного кадра. Фактические значения элементов управления (время экспозиции, длительность кадра и чувствительность), фактически используемые оборудованием, должны быть включены в выходные метаданные. Это важно для того, чтобы приложения знали, когда произошло ограничение или округление, и чтобы приложение могло компенсировать реальные настройки, используемые для захвата изображения.
Например, если приложение устанавливает длительность кадра равной 0 в запросе, HAL должен ограничить длительность кадра до реальной минимальной длительности кадра для этого запроса и сообщить об этой фиксированной минимальной длительности в метаданных выходного результата.
Поэтому, если приложению необходимо реализовать специальную процедуру 3A (например, для правильного измерения HDR-всплеска), ему необходимо знать настройки, используемые для захвата последнего набора полученных результатов, чтобы обновить настройки для следующего запроса. Таким образом, новый API камеры добавляет значительный объем динамических метаданных к каждому захваченному кадру. Сюда входят запрошенные и фактические параметры, используемые для захвата, а также дополнительные метаданные для каждого кадра, такие как временные метки и выходные данные генератора статистики.
Индивидуальное управление
Ожидается, что большинство настроек можно будет изменять в каждом кадре, не вызывая значительных задержек или задержек в выходном потоке кадров. В идеале частота выходных кадров должна контролироваться исключительно полем длительности кадра запроса захвата и быть независимой от любых изменений в конфигурации блоков обработки. На самом деле известно, что некоторые конкретные меры контроля меняются медленно; к ним относятся выходное разрешение и выходной формат конвейера камеры, а также элементы управления, влияющие на физические устройства, такие как расстояние фокусировки объектива. Точные требования для каждого набора элементов управления подробно описаны ниже.
Поддержка необработанных данных датчиков
В дополнение к форматам пикселей, поддерживаемым старым API, новый API добавляет требование поддержки необработанных данных датчика (Bayer RAW) как для расширенных приложений камеры, так и для поддержки файлов необработанных изображений.