Metadane i ustawienia

Na tej stronie opisujemy obsługę metadanych, sterowanie poszczególnymi ustawieniami i obsługę nieprzetworzonych danych z czujników.

Obsługa metadanych

Aby umożliwić zapisywanie nieprzetworzonych plików obrazów przez platformę Android, wymagane są obszerne metadane dotyczące charakterystyki czujnika. Obejmują one informacje takie jak przestrzenie kolorów i funkcje cieniowania obiektywu.

Większość tych informacji to statyczna właściwość podsystemu aparatu, dlatego można je sprawdzić przed skonfigurowaniem potoków wyjściowych lub przesłaniem jakichkolwiek żądań. Nowe interfejsy API aparatu znacznie rozszerzają informacje dostarczane przez metodę getCameraInfo , aby udostępniać te informacje aplikacji.

Dodatkowo ręczne sterowanie podsystemem aparatu wymaga informacji zwrotnych z różnych urządzeń o ich bieżącym stanie oraz rzeczywistych parametrach używanych do przechwytywania danej klatki. Rzeczywiste wartości elementów sterujących (czas ekspozycji, czas trwania klatki i czułość) używane przez sprzęt muszą być uwzględnione w metadanych wyjściowych. Jest to niezbędne, aby aplikacje wiedziały, kiedy nastąpiło przycięcie lub zaokrąglenie, i aby mogły skompensować rzeczywiste ustawienia używane do przechwytywania obrazu.

Jeśli na przykład aplikacja ustawi czas trwania klatki na 0 w żądaniu, HAL musi ograniczyć zakres czasu 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ą procedurę 3A (np. aby prawidłowo zmierzyć ekspozycję dla serii zdjęć HDR), musi znać ustawienia użyte do przechwycenia najnowszego zestawu otrzymanych wyników, aby zaktualizować ustawienia na potrzeby następnego żądania. Dlatego nowy interfejs API aparatu dodaje do każdej przechwyconej klatki znaczną ilość dynamicznych metadanych. Obejmują one żądane i rzeczywiste parametry użyte do przechwycenia, a także dodatkowe metadane dotyczące każdej klatki, takie jak sygnatury czasowe i dane wyjściowe generatora statystyk.

Sterowanie poszczególnymi ustawieniami

W przypadku większości ustawień oczekuje się, że można je zmieniać co klatkę, bez wprowadzania znaczących zacięć lub opóźnień w strumieniu klatek wyjściowych. Idealnie byłoby, gdyby liczba klatek wyjściowych była kontrolowana wyłącznie przez pole czasu trwania klatki w żądaniu przechwytywania i była niezależna od wszelkich zmian w konfiguracji bloków przetwarzania. W rzeczywistości wiadomo, że niektóre elementy sterujące zmieniają się powoli . Należą do nich rozdzielczość wyjściowa i format wyjściowy potoku aparatu , a także elementy sterujące, które wpływają na urządzenia fizyczne, takie jak odległość ogniskowania obiektywu . Dokładne wymagania dotyczące każdego zestawu elementów sterujących są opisane poniżej.

Obsługa nieprzetworzonych danych z czujników

Oprócz formatów pikseli obsługiwanych przez stary interfejs API nowy interfejs API dodaje wymaganie obsługi nieprzetworzonych danych z czujników (Bayer RAW) zarówno w przypadku zaawansowanych aplikacji aparatu, jak i obsługi nieprzetworzonych plików obrazów.