Obsługa metadanych
Aby umożliwić zapisywanie przez platformę Android plików obrazów w formacie RAW, wymagane są obszerne metadane dotyczące właściwości czujnika. Dotyczy to informacji takich jak przestrzenie barw i funkcje cieniowania obiektywu.
Większość tych informacji jest właściwością stałą podsystemu kamery, dlatego można je zapytać przed skonfigurowaniem dowolnych ścieżek wyjściowych lub przesłaniem żądań. Nowe interfejsy API aparatu znacznie rozszerzają informacje udostępniane przez metodę getCameraInfo()
, aby przekazywać te informacje do aplikacji.
Dodatkowo ręczne sterowanie podsystemem kamery wymaga informacji zwrotnych z różnych urządzeń dotyczących ich bieżącego stanu oraz rzeczywistych parametrów użytych do przechwycenia danej klatki. W metadanych wyjściowych należy uwzględnić rzeczywiste wartości ustawień (czas naświetlania, czas trwania klatki i czułość), które są faktycznie używane przez sprzęt. Jest to niezbędne, aby aplikacje wiedziały, kiedy nastąpiło zaokrąglenie lub ograniczenie, oraz aby mogły uwzględnić rzeczywiste ustawienia użyte do zrobienia zdjęcia.
Jeśli na przykład aplikacja ustawia w żądaniu czas trwania klatki na 0, HAL musi ograniczyć czas trwania klatki do rzeczywistego minimalnego czasu trwania klatki dla tego żądania i zgłosić ten ograniczony minimalny czas trwania w metadanych wyniku wyjściowego.
Jeśli więc aplikacja musi zaimplementować niestandardową rutynę 3A (np. aby prawidłowo zmierzyć ekspozycję dla serii HDR), musi znać ustawienia użyte do przechwycenia ostatniego zestawu otrzymanych wyników, aby zaktualizować ustawienia na potrzeby następnego żądania. Dlatego nowy interfejs API aparatu dodaje do każdego uchwyconego obrazu dużą ilość dynamicznych metadanych. Obejmuje to żądane i rzeczywiste parametry użyte do przechwycenia, a także dodatkowe metadane dotyczące poszczególnych klatek, takie jak sygnatury czasowe i wyjścia generatora statystyk.
Kontrola ustawień
Większość ustawień można zmieniać w każdej klatce bez wprowadzania znaczących przerw lub opóźnień w strumieniu wyjściowym. W idealnej sytuacji częstotliwość klatek wyjściowych powinna być kontrolowana wyłącznie przez pole Duration (Czas trwania) żądania rejestracji i niezależna od zmian w konfiguracji bloków przetwarzania. W praktyce niektóre ustawienia są trudne do zmiany. Dotyczy to m.in. rozdzielczości i formatu wyjściowego w obrębie łańcucha przetwarzania kamery, a także ustawień wpływających na urządzenia fizyczne, takich jak odległość ostrości obiektywu. Szczegółowe wymagania dotyczące poszczególnych zestawów elementów sterujących znajdziesz w dalszej części.
Obsługa nieprzetworzonych danych z czujników
Oprócz formatów pikseli obsługiwanych przez stary interfejs API nowy interfejs API wymaga obsługi danych nieprzetworzonych z czujnika (Bayer RAW) zarówno w przypadku zaawansowanych aplikacji do obsługi aparatu, jak i w celu obsługi plików obrazów w formacie RAW.