W przypadku urządzeń z systemem Android 13 lub nowszym system Android obsługuje 10-bitowy sygnał wyjściowy z kamery za pośrednictwem profili zakresu dynamicznego, które mogą być konfigurowane przez klienta kamery w ramach konfiguracji strumienia. Producenci urządzeń mogą dodać obsługę 10-bitowych profili zakresu dynamiki, takich jak HLG10, HDR 10, HDR 10+ i Dolby Vision.
Obsługa 10-bitowego wyjścia kamery umożliwia klientom kamer wykrywanie obsługiwanych 10-bitowych profili zakresu dynamiki urządzenia poprzez wywołanie getSupportedProfiles
. Następnie platforma zwraca instancję DynamicRangeProfiles
, która zawiera informacje o obsługiwanych profilach zakresu dynamicznego i, jeśli są dostępne, ograniczenia żądań przechwytywania. Profil HLG10
musi być obsługiwany. Zalecany profil zakresu dynamiki znajduje się w polu REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
Klienci kamer mogą konfigurować kombinacje strumieni, wywołując metodę setDynamicRangeProfile
. Aby uzyskać więcej informacji na temat obowiązkowych kombinacji strumieni wyjściowych, zobacz tabelę dodatkowych gwarantowanych konfiguracji 10-bitowego wyjścia w sekcji Regularne przechwytywanie .
Wymagania
Aby obsługiwać 10-bitowy sygnał wyjściowy kamery, urządzenie musi być wyposażone w czujnik kamery obsługujący 10-bitowy lub wyższy format i obsługujący odpowiedniego dostawcę usług internetowych. Aby uzyskać szczegółowe informacje na temat powiązanych wymagań zgodności dla obsługi 10-bitowej, zobacz sekcję 7.5. Kamery w CDD.
Realizacja
Aby zapewnić obsługę 10-bitowego sygnału wyjściowego kamery, producenci urządzeń muszą wykonać następujące integracje Camera AIDL HAL:
- Uwzględnij
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
w możliwościach aparatu. - Wypełnij
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
wszystkimi obsługiwanymi profilami zakresu dynamicznego i mapą bitową ich ograniczeń. ProfilHLG10
musi być obsługiwany. Należy także uwzględnić zalecany profil zakresu dynamicznego, aby poinformować klientów kamery o optymalnym obsługiwanym formacie. - Zapewnij obsługę wartości profilu zakresu dynamicznego podczas konfiguracji strumienia dla strumieni korzystających z formatu P010 lub obsługę formatu zdefiniowanego w implementacji (
ImageFormat.PRIVATE
). - W zależności od profilu zakresu dynamicznego ustaw statyczny lub dynamiczny bufor metadanych przetworzonych buforów Gralloc 4 przed powiadomieniem serwisu kamery.
Więcej szczegółów na temat 10-bitowego sygnału wyjściowego kamery w warstwie Camera HAL można znaleźć w pliku metadata_definitions.xml
:
-
DYNAMIC_RANGE_TEN_BIT
- Szczegóły HAL dla
availableDynamicRangeProfilesMap
-
recommendedTenBitDynamicRangeProfile
-
10BIT_OUTPUT
Aby zapoznać się z referencyjną implementacją Camera HAL obsługującą 10-bitowe wyjście kamery, zobacz /hardware/google/camera/devices/EmulatedCamera/hwl
.
Walidacja
Aby sprawdzić implementację 10-bitowego sygnału wyjściowego kamery i upewnić się, że aplikacje innych firm będą mogły włączyć tę funkcję, zalecamy wykonanie następujących trzech etapów sprawdzania.
- Przetestuj poprawność funkcjonalną API
- Porównaj natywną kamerę i aplikację innej firmy
- Porównaj standardowy zakres dynamiki i wysoki zakres dynamiki
W celu wizualnej weryfikacji 10-bitowego sygnału wyjściowego aparatu zakłada się, że urządzenie obsługuje wyświetlanie obrazu HDR (wyświetlacz o wartości ponad 1000 nitów), a aplikacja do oglądania wideo (na przykład Zdjęcia Google) obsługuje odtwarzanie wideo HDR.
Przetestuj poprawność funkcjonalną API
Aby przetestować poprawność funkcjonalną API 10-bitowego wyjścia kamery, wykonaj następujące testy CTS, ITS kamery i VTS:
-
hardware/interfaces/camera/provider/aidl/vts/
: Testuje podstawowe wykrywanie, konfigurację i przesyłanie strumieniowe oraz sprawdza obecność metadanych HDR, jeśli jest to wymagane. -
tests/camera/src/android/hardware/camera2/cts/
: Zapewnia, że kamera zachowuje się zgodnie ze specyfikacjami API AOSP. -
cts/apps/CameraITS
: potwierdza, że ogólne zachowanie wideo jest spójne, gdy używane są profile HDR. Konkretny test totests/scene4/test_video_aspect_ratio_and_crop.py
.
Porównaj natywną kamerę i aplikację innej firmy
Zdecydowanie zalecamy, aby wyniki przechwytywania 10-bitowych filmów za pomocą aplikacji innej firmy były podobne, jeśli nie identyczne, z natywną aplikacją aparatu. Oznacza to, że opcje dostrajania, takie jak ekspozycja, zakres dynamiczny i kolor, powinny zostać przeniesione z aplikacji natywnej do aplikacji innych firm. Aby sprawdzić działanie nagrywania wideo aplikacji innej firmy obsługującej 10-bitowe wyjście kamery na Twoim urządzeniu, użyj przykładowej aplikacji Camera2Video w serwisie GitHub. Poniższe wytyczne służą zilustrowaniu widocznych aspektów HDR bez liczb obiektywnych, ze względu na zmienność czujników, paneli, warunków oglądania i preferencji dostawców.
Sugerowane sceny do porównania
Aby porównać natywną aplikację aparatu z aplikacją innej firmy, przechwytuj filmy przy użyciu kilku różnych scen, zarówno za pomocą natywnej aplikacji aparatu, jak i przykładowej aplikacji Camera2Video. Poniżej znajdują się sugerowane sceny do wykorzystania w celach porównawczych:
- Scena od średniego do słabego oświetlenia z jasnym obiektem, takim jak świeca lub małe jasne światło, które tworzy znaczny zakres jasności. Potwierdza to zachowanie automatycznej ekspozycji i zakres dynamiczny.
- Jasna scena plenerowa z żywymi kolorami i odblaskowymi obiektami, takimi jak chromowane zderzaki w samochodzie, co tworzy jasne akcenty. Potwierdza to renderowanie jasnych scen z jeszcze jaśniejszymi światłami.
- Scena o średnim zakresie dynamiki i niskim zakresie dynamiki, taka jak naturalna scena w pomieszczeniu w domu lub biurze. Potwierdza to, że mniej ekstremalne warunki oświetleniowe zachowują się zgodnie z oczekiwaniami.
W przypadku wszystkich scen zalecamy sprawdzenie ekspozycji, koloru i odcienia skóry przez ludzi i twarze. Zmniejszenie zmienności między strzałami ułatwia bezpośrednie porównania.
Porównaj standardowy zakres dynamiki i wysoki zakres dynamiki
Aby upewnić się, że użycie 10-bitowego profilu zakresu dynamiki przynosi zauważalne korzyści w porównaniu ze standardowym profilem zakresu dynamiki, porównaj nagrania wideo przy użyciu SDR (bez profilu HDR) z filmami HDR, aby potwierdzić, że w przechwyconych nagraniach pojawiają się kluczowe aspekty HDR. Aby porównać SDR i HDR, użyj przykładowej aplikacji Camera2Video i sugerowanych scen , aby porównać natywną aplikację aparatu z aplikacjami innych firm.
Poniżej przedstawiono kluczowe aspekty do sprawdzenia w sugerowanych scenach. Panele wyświetlaczy obsługujące HDR różnią się poziomem jasności (mierzonym w nitach lub lumenach), dlatego podane poniżej liczby mają charakter przykładowy:
- W scenach od średniego do słabego oświetlenia jasne światła świecy lub małego światła są renderowane z maksymalną jasnością wyświetlacza (prawdopodobnie do 1000 nitów) w klipie HDR i renderowane z maksymalną jasnością dla SDR (około 100 nits) w klipie SDR. W klipie HDR jasne światła powinny wychodzić z wyświetlacza, oddając użytkownikowi postrzeganie prawdziwego zakresu dynamiki sceny. W porównaniu z klipem HDR klip SDR powinien wyglądać na bardziej płaski i mniej jasny.
- W jasnej scenie wyjściowej, w zależności od dostrojenia urządzenia, klip HDR wykazuje wyraźną różnicę w jasności ekranu w porównaniu z klipem SDR. W przypadku klipu HDR jasność ekranu dla całej sceny (w zależności od wysokości nadproża) powinna być wyższa, na przykład do 800 nitów, a w przypadku jasnych elementów, takich jak chromowane zderzaki, powinna być jeszcze większa, w okolicach maksymalnej jasności.
- W przypadku przechwytywania w pomieszczeniach w średnim zakresie i niskim zakresie dynamiki klipy HDR i SDR mają podobne kolory i odcienie, przy czym ujęcia HDR są potencjalnie jaśniejsze niż w przypadku SDR. HDR nie powinien być ciemniejszy niż SDR. Jeśli opcje dostrajania uniemożliwiają to, upewnij się, że zachowanie aplikacji innej firmy odpowiada zachowaniu natywnej aplikacji aparatu.