Integracja filmu Eclipsa

Odtwarzanie filmów HDR na urządzeniach mobilnych często ma poważną wadę: niespójność obrazu na różnych ekranach. Podczas przeglądania plików danych z treściami mieszanymi, w których występują elementy o standardowym zakresie dynamiki (SDR) i HDR, potoki renderowania mają problem z ich wyważeniem. Powoduje to nieregularne, nieprzyjemne przejścia i nieprzewidywalne skoki jasności.

W przypadku twórców treści brak jednolitości narusza zamierzenia artystyczne. Film HDR starannie skalibrowany na profesjonalnym monitorze może być wyświetlany na urządzeniu konsumenckim z obciętymi jasnymi partiami, wyblakłymi odcieniami lub przyciemnionymi cieniami.

Eclipsa video to nowoczesny standard wideo HDR, który został opracowany, aby rozwiązać te problemy z ekosystemem urządzeń. Opiera się on na specyfikacji SMPTE ST 2094-50 i umożliwia dynamiczne dostosowywanie mapowania treści na wyświetlaczach na podstawie możliwości sprzętowych i warunków oświetlenia otoczenia w czasie rzeczywistym. Dzięki wbudowanej integracji bez konfiguracji w Jetpack Media3 ExoPlayer i standardowych potokach przechwytywania Camera2 Eclipsa video oferuje zespołom inżynierów mobilnych bezpłatną i łatwą ścieżkę do wdrożenia strumieniowania wideo nowej generacji, które dostosowuje się do sprzętu i zachowuje zamierzenia artystyczne na każdym ekranie.

Architektura techniczna SMPTE ST 2094-50

Wyświetlacze mobilne znacznie różnią się pod względem zakresu jasności, czyli ilości jasności dostępnej powyżej referencyjnego punktu bieli wyświetlacza. Gdy ograniczenia sprzętowe wyświetlacza nie są zgodne z wymaganiami dotyczącymi masteringu filmu HDR, jasne obszary mogą być przycięte lub wyglądać na przyciemnione. Rzeczywisty zakres dynamiczny i punkt bieli ekranu zmieniają się dynamicznie, ponieważ czujniki jasności otoczenia dostosowują panel do otoczenia.

Standard SMPTE ST 2094-50 rozwiązuje ten problem, wprowadzając dwuwarstwowe metadane, które zapewniają spójność wizualną dzięki 2 głównym filarom:

Punkt odniesienia bieli

Ustanawia to ścisłą wartość bazową, która mapuje szczytową jasność elementów SDR bezpośrednio na referencyjny punkt bieli wyświetlacza. Wszystkie wartości luminancji przekraczające ten punkt odniesienia są zarezerwowane wyłącznie dla najjaśniejszych obszarów HDR. Ten przewidywalny mechanizm kotwiczenia zapewnia, że gdy warstwy SDR i HDR są łączone na ekranie, zachowują zamierzoną relację wizualną bez wzajemnego wypłukiwania.

Krzywe wzmocnienia dostosowane do zakresu dynamiki (AGTM)

Zamiast wymuszać statyczną krzywą mapowania tonów, twórcy osadzają parametryczne metadane, które dokładnie instruują potok wyświetlania, jak skalować obraz, gdy dostępny jest ograniczony zakres dynamiczny. Standard daje twórcom szczegółową elastyczność w wyborze, czy docelowy panel ma delikatnie przycinać najjaśniejsze obszary, przycinać je na stałe, czy kompresować tony pośrednie i cienie, aby aktywnie zachowywać najdrobniejsze szczegóły w jasnych obszarach.

Obsługa platformy

Obsługa odtwarzania i nagrywania wideo w Eclipsie na poziomie platformy została wprowadzona w Androidzie 17 (poziom interfejsu API 37).

Wdrażanie odtwarzania

W przypadku standardowego tworzenia aplikacji Media3 ExoPlayer zapewnia gotową obsługę filmów Eclipsa. Podczas analizowania plików z osadzonymi metadanymi SMPTE 2094-50 ExoPlayer wyodrębnia i stosuje metadane bezproblemowo, bez konieczności konfigurowania odtwarzacza.

Zalecamy przeniesienie potoków odtwarzania do Jetpack Media3. ExoPlayer natywnie obsługuje wyodrębnianie kontenerów niskiego poziomu, co całkowicie omija znane artefakty dekodowania na poziomie platformy, które występują w starszych warstwach renderowania w Androidzie 16 (poziom interfejsu API 36) i starszych.

Implementowanie przechwytywania wideo

Aby nagrać film w Eclipsie na urządzeniu, musisz skonfigurować potok kamery tak, aby generował metadane AGTM przez przypisanie zgodnego profilu zakresu dynamicznego.

Po sprawdzeniu, czy urządzenie jest obsługiwane za pomocą CameraCharacteristics, przekieruj strumień do interfejsu kodera za pomocą profilu DynamicRangeProfiles.HLG10_SMPTE_2094_50. Instrukcje dotyczące wysyłania zapytań o profile zakresu dynamicznego i konfigurowania ich w sesjach aparatu znajdziesz w artykule Nagrywanie filmów HDR.

W przypadku metadanych AGTM nie jest wymagana żadna jawna konfiguracja kodeka. Platforma multimedialna Androida automatycznie dołącza i przekazuje metadane, jeśli znajdują się one w aktywnym profilu dynamicznym.

Uwagi dotyczące zgodności i wydajności

Aby monitorować wydajność, pobierz aktywny obiekt Display i sprawdź, czy w jego przypadku występuje LutProperties, aby określić dostępność ścieżek akcelerowanych sprzętowo.overlayProperties

W przypadku urządzeń, które nie mają możliwości akceleracji sprzętowej, pracujemy nad obsługą rezygnacji z renderowania wideo Eclipsa w Exoplayerze.

Dodatkowe materiały