Android 14 zapewnia obsługę przechwytywania skompresowanych obrazów Ultra HDR przy użyciu formatu obrazu JPEG_R
. Ten format jest wstecznie kompatybilny z obrazami SDR JPEG i obsługuje renderowanie treści HDR. Aby uzyskać szczegółowe informacje na temat specyfikacji formatu Ultra HDR, zobacz Ultra HDR Image Format v1.0 .
Realizacja
W tej sekcji opisano sposób implementacji funkcji Ultra HDR.
Implementacja referencyjna
Struktura kamery i usługa kamery AOSP obejmują referencyjną implementację Ultra HDR.
Oprócz funkcji referencyjnych w środowisku kamery, można zaimplementować Ultra HDR w warstwie HAL kamery i reklamować obsługę wyjścia JPEG_R
w taki sam sposób, jak strumienie wyjściowe HAL innych kamer. W tym scenariuszu warstwa HAL kamery musi wygenerować niezbędną mapę odzyskiwania i końcowy obraz JPEG_R
zgodnie ze specyfikacją Ultra HDR . Możesz zoptymalizować i dostroić końcowy wynik w zależności od możliwości sprzętu i oprogramowania urządzenia.
Opcje wdrożenia
Producenci urządzeń mogą zdecydować o następujących poziomach obsługi Ultra HDR dla swoich urządzeń:
- Minimalne: w tej konfiguracji wyjście Ultra HDR za pośrednictwem funkcji strumienia złożonego usługi kamery jest domyślnie wyłączone. Aby włączyć implementację referencyjną
JpegRCompositeStream
, ustaw właściwość systemowąro.camera.enableCompositeAPI0JpegR
natrue
. Ponieważ wszystkie procesy i kodowanie są wykonywane w oprogramowaniu, opcja ta może powodować zwiększenie opóźnień i zmniejszenie wydajności. - Umiarkowane: Dzięki tej opcji implementacja
JpegRCompositeStream
używa pliku SDR JPEG dostarczonego przez HAL jako obrazu podstawowego i ramki P010 do obliczenia mapy odzyskiwania. Ta opcja obejmuje przetwarzanie oprogramowania na ścieżce danych, ale jest stosunkowo niewielka w porównaniu z opcją minimalną. - Rozbudowany: kamera HAL reklamuje i bezpośrednio obsługuje strumień wyjściowy
JPEG_R
. Ta opcja umożliwia producentom urządzeń wdrażanie optymalizacji specyficznych dla urządzeń i może zapewnić znaczną poprawę jakości obrazu.
Aby wyłączyć implementację JpegRCompositeStream
, ustaw właściwość kompilacji ro.camera.disableJpegR
na true
. Jeśli ta właściwość kompilacji nie jest ustawiona lub ma wartość false
, Ultra HDR jest domyślnie włączony za pośrednictwem JpegRCompositeStream
na urządzeniach obsługujących 10-bitowe wyjście i jednoczesne przechwytywanie 10- i 8-bitowe .
Walidacja
Aby sprawdzić funkcję Ultra HDR na swoim urządzeniu, przeprowadź następujące testy.
Testy CTS
-
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR
-
ImageReaderTest.java#testJpegR
-
ImageReaderTest.java#testJpegRDisplayP3
-
PerformanceTest.java#testSingleCapture
-
StillCaptureTest.java# testJpegRCapture
ITS-testy
Testy ręczne
Aby przeprowadzić testy ręczne, użyj przykładowej implementacji przechwytywania obrazu Ultra HDR , która obejmuje obsługę konfiguracji i przechwytywania Ultra HDR przy użyciu formatu obrazu JPEG_R
.