Ryan Haines / Urząd ds. Androida
TL;DR
- Google aktualizuje bibliotekę Jetpack CameraX, aby obsługiwała przechwytywanie obrazów Ultra HDR.
- Ultra HDR to nowy format obrazu wprowadzony w systemie Android 14, który umożliwia zapisywanie wersji obrazu SDR i HDR w tym samym pliku.
- Obecnie tylko aplikacje aparatu korzystające z interfejsu API Android Camera2 mogą rejestrować obrazy Ultra HDR.
Jednym z najbardziej ekscytujących najnowszych osiągnięć w fotografii smartfonowej jest obsługa prawdziwego HDR. Przetwarzanie HDR w aparacie, które prawdopodobnie już znasz, zasadniczo wykorzystuje fotografię obliczeniową i układanie obrazów, aby uzyskać efekt podobny do HDR, ale wynikowy obraz nadal jest SDR. Jednak począwszy od Androida 14, kilka telefonów z Androidem może teraz rejestrować prawdziwe zdjęcia HDR w formacie o nazwie Ultra HDR. Jednak wiele aplikacji innych firm z wbudowaną funkcją aparatu nie może robić zdjęć w formacie Ultra HDR, ale wkrótce to się zmieni.
Jeśli nie wiesz, Ultra HDR to format obrazu stworzony przez Google, oparty na popularnym formacie JPEG. Ponieważ jest oparty na formacie JPEG, obrazy Ultra HDR można oglądać na prawie każdym urządzeniu, niezależnie od tego, czy mają wyświetlacz HDR. Tym, co sprawia, że obrazy Ultra HDR są wyjątkowe, jest to, że podczas oglądania ich na urządzeniu z wyświetlaczem HDR wyświetlana jest wersja HDR obrazu, oferująca bardziej żywe i kontrastujące kolory.
Jest to możliwe, ponieważ obrazy Ultra HDR to pliki JPEG, które mają wbudowaną w metadane mapę wzmocnienia HDR, którą aplikacje mogą zastosować w stosunku do podstawowej wersji obrazu SDR, która również jest zawarta w pliku. Ponieważ mapa wzmocnienia HDR musi zostać utworzona i zapisana w metadanych pliku JPEG podczas pierwszego tworzenia obrazu, należy zaktualizować istniejące aplikacje aparatu, aby obsługiwały ten krok. Google stworzył interfejs API w systemie Android 14, aby aplikacje aparatu właśnie to robiły, ale ten interfejs API jest częścią Camera2, a nie CameraX, co ogranicza jego przyjęcie.
Camera2 to interfejs API dołączony do systemu operacyjnego Android i przeznaczony do użytku przez aplikacje, które chcą wdrożyć zaawansowane funkcje aparatu. Pomyśl o pełnoprawnych aplikacjach do aparatu innych firm z profesjonalną kontrolą wielu obiektywów. Z drugiej strony CameraX to interfejs API dołączony do biblioteki obsługi Jetpack i jest bardziej ukierunkowany na aplikacje, które potrzebują dostępu jedynie do kamery w celu wykonania sąsiadujących funkcji. Pomyśl o aplikacjach społecznościowych, które pozwalają szybko zrobić zdjęcie i udostępnić je znajomym. To programiści decydują, którego interfejsu API kamery użyją, ale ponieważ nowe funkcje aparatu są opracowywane najpierw dla Camera2, programiści korzystający z CameraX muszą poczekać, aż Google udostępni tę funkcjonalność. Niektóre funkcje Camera2 nigdy nie trafiają do CameraX ze względu na uproszczony zakres tego ostatniego, ale na szczęście obsługa przechwytywania Ultra HDR nie jest jedną z tych funkcji.
Na początku tego roku na konferencji programistów I/O 2024 firma Google ogłosiła, że zaktualizuje swoją bibliotekę CameraX, aby obsługiwała przechwytywanie obrazu Ultra HDR. Zaglądając do informacji o wydaniu biblioteki CameraX, możemy zobaczyć, że początkowa obsługa przechwytywania Ultra HDR została dodana do CameraX w wersji 1.4.0-alfa05 wydany w kwietniu. Wersja 1.4.0 CameraX wprowadzi nowe interfejsy API formatu wyjściowego do ImageCapture
I ImageCaptureCapabilities
zajęcia.
Mishaal Rahman / Władze Androida
Te interfejsy API obejmują: getSupportedOutputFormats
metoda w ImageCaptureCapabilities
zapytać, czy urządzenie jest w stanie przechwytywać obrazy Ultra HDR; powinno to być możliwe na każdym urządzeniu z Androidem 14 lub nowszym, ponieważ biblioteka kodera jest dołączona do tej wersji systemu operacyjnego, ale nie jestem w 100% pewien. Jeśli format wyjściowy jest ustawiony na OUTPUT_FORMAT_JPEG_ULTRA_HDR
na urządzeniu obsługującym przechwytywanie obrazu Ultra HDR, biblioteka CameraX przechwytuje obrazy Ultra HDR w formacie obrazu „JPEG/R”. („R” w „JPEG/R” oznacza „mapę odzyskiwania”, która odnosi się do mapy wzmocnienia HDR osadzanej w pliku JPEG.)
Jak wspomniano w opisie interfejsu API, te obrazy będą bezproblemowo wyświetlane jako zwykłe pliki JPEG w starszych aplikacjach lub urządzeniach z wyświetlaczami SDR, natomiast będą wyświetlane jako HDR w aplikacjach i urządzeniach, które zostały w pełni zaktualizowane do obsługi tego formatu. Niewiele aplikacji obsługuje obecnie technologię Ultra HDR. Obecnie w pełni obsługuje ją tylko przeglądarka Google Chrome na urządzeniach z Androidem i komputerach stacjonarnych. Urządzenia, które mogą prawidłowo wyświetlać obrazy Ultra HDR w pełnej okazałości, to seria Galaxy S24 firmy Samsung, seria Pixel 7 i Pixel 8 firmy Google, OnePlus 12 i Open oraz kilka innych. Niektóre nowsze komputery z systemem Windows i wyświetlaczami HDR, takie jak mój Lenovo Yoga Slim 7X, mogą również wyświetlać obrazy Ultra HDR.
Trudno opisać zalety obrazów Ultra HDR za pomocą tekstu, dlatego jeśli masz urządzenie, które umożliwia ich wyświetlanie, polecam samemu zobaczyć kilka z nich. Oto galeria zdjęć Ultra HDR, które zrobiłem w kampusie Qualcomm w San Diego za pomocą mojego OnePlus Open. Dzięki Ultra HDR obrazy te nie są dotknięte typowym „przetworzonym” wyglądem, na który cierpi obecne przetwarzanie HDR w aparatach. Standardowa aplikacja aparatu w moim OnePlus Open przechwyciła te obrazy Ultra HDR, chociaż dopiero niedawno uzyskała tę możliwość po aktualizacji OTA. Mamy nadzieję, że aplikacje innych firm korzystające z biblioteki Jetpack CameraX powinny wkrótce zacząć zapisywać obrazy w formacie Ultra HDR po wydaniu wersji 1.4.0 biblioteki.