UltraHDR

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 na true . 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

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 .