Android 14 obsługuje zapisywanie skompresowanych zdjęć w formacie ultra HDR za pomocą formatu obrazu JPEG_R. Ten format jest wstecznie zgodny z obrazami JPEG w formacie SDR i obsługuje renderowanie treści w formacie HDR.
Szczegółowe informacje o specyfikacji formatu Ultra HDR znajdziesz w tym dokumencie.
Implementacja
W tej sekcji opisujemy, jak wdrożyć funkcję Ultra HDR.
Implementacja referencyjna
Platforma kamery AOSP i usługa kamery obejmują referencyjną implementację Ultra HDR.
Oprócz funkcji referencyjnych w ramach aparatu możesz zaimplementować ultra HDR w komponencie HAL aparatu i ogłosić obsługę JPEG_R
w taki sam sposób jak inne strumienie wyjściowe komponentu HAL aparatu. W tym scenariuszu HAL aparatu musi wygenerować niezbędną mapę odzyskiwania i końcowy obraz JPEG_R
zgodnie ze specyfikacją ultra HDR.
Możesz zoptymalizować i dostosować ostateczny wynik w zależności od możliwości sprzętowych i programowych urządzenia.
Opcje implementacji
Producenci urządzeń mogą zdecydować o tych poziomach obsługi Ultra HDR na swoich urządzeniach:
- Minimalna: w tej konfiguracji renderowanie w ultra HDR za pomocą funkcji strumienia złożonego usługi aparatu jest domyślnie wyłączone. Aby włączyć implementację referencyjną
JpegRCompositeStream, ustaw właściwość systemowąro.camera.enableCompositeAPI0JpegRnatrue. Ponieważ wszystkie procesy i kodowanie są wykonywane w oprogramowaniu, ta opcja może powodować zwiększenie opóźnień i spadek wydajności. - Umiarkowane: w tym przypadku
JpegRCompositeStreamimplementacja używa dostarczonego przez HAL pliku JPEG SDR jako obrazu podstawowego i klatki P010 do obliczenia mapy odzyskiwania. Ta opcja obejmuje przetwarzanie oprogramowania na ścieżce danych, ale jest stosunkowo niewielkie w porównaniu z opcją minimalną. - Rozszerzona: komponent HAL aparatu reklamuje i obsługuje
JPEG_Rstrumień wyjściowy bezpośrednio. Ta opcja umożliwia producentom urządzeń wdrażanie optymalizacji specyficznych dla danego urządzenia i może znacznie poprawić jakość 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 przez JpegRCompositeStream na urządzeniach obsługujących 10-bitowe wyjście i jednoczesne przechwytywanie 10- i 8-bitowe.
Weryfikacja
Aby sprawdzić, czy funkcja Ultra HDR działa na urządzeniu, przeprowadź te testy.
Testy CTS
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegRImageReaderTest.java#testJpegRImageReaderTest.java#testJpegRDisplayP3PerformanceTest.java#testSingleCaptureStillCaptureTest.java# testJpegRCapture
Testy ITS
Testy ręczne
Aby przeprowadzić testy ręczne, użyj przykładowej implementacji przechwytywania obrazów w formacie ultra HDR, która obejmuje obsługę konfiguracji i przechwytywania obrazów w formacie ultra HDR za pomocą JPEG_R.