Per i dispositivi che eseguono Android 13 e versioni successive, Android supporta l'output della videocamera a 10 bit tramite profili di intervallo dinamico che possono essere configurati dal client della videocamera nell'ambito della configurazione dello stream. I produttori di dispositivi possono aggiungere il supporto per i profili di intervallo dinamico a 10 bit, come HLG10, HDR 10, HDR 10+ e Dolby Vision.
Il supporto per l'output della videocamera a 10 bit consente ai client della videocamera di scoprire i profili di intervallo dinamico a 10 bit
supportati di un dispositivo chiamando
getSupportedProfiles.
Il framework restituisce quindi un'istanza di
DynamicRangeProfiles,
che include informazioni sui profili di intervallo dinamico supportati e, se
disponibili, vincoli della richiesta di acquisizione. Il
HLG10
profilo deve essere supportato. Il profilo di intervallo dinamico consigliato è elencato in
the
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
campo.
I client della fotocamera possono configurare le combinazioni di stream chiamando
setDynamicRangeProfile.
Per ulteriori informazioni sulle combinazioni di stream di output obbligatorie, consulta la
tabella Configurazioni garantite aggiuntive per l'output a 10 bit in
Acquisizione normale.
Requisiti
Per supportare l'output della videocamera a 10 bit, il dispositivo deve avere un sensore della videocamera a 10 bit o superiore con il rispettivo supporto ISP. Per dettagli sui requisiti di compatibilità correlati per il supporto a 10 bit, consulta la sezione 7.5. Videocamere nel CDD.
Implementazione
Per fornire il supporto per l'output della videocamera a 10 bit, i produttori di dispositivi devono eseguire le seguenti integrazioni AIDL HAL della videocamera:
- Includi
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BITnelle funzionalità della videocamera. - Compila
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAPcon tutti i profili di intervallo dinamico supportati e una bitmap dei relativi vincoli. IlHLG10profilo deve essere supportato. Devi anche includere un profilo di intervallo dinamico consigliato per informare i client della videocamera del formato supportato ottimale. - Assicurati che il valore del profilo di intervallo dinamico sia supportato durante la configurazione dello stream per gli stream che utilizzano il formato P010 o il supporto per un formato definito dall'implementazione (
ImageFormat.PRIVATE). - A seconda del profilo di intervallo dinamico, imposta il buffer dei metadati statici o dinamici dei buffer Gralloc 4 elaborati prima di inviare una notifica al servizio della videocamera.
Per ulteriori dettagli sull'output della videocamera a 10 bit in Camera HAL, consulta quanto segue in metadata_definitions.xml:
DYNAMIC_RANGE_TEN_BIT- Dettagli HAL per
availableDynamicRangeProfilesMap recommendedTenBitDynamicRangeProfile10BIT_OUTPUT
Per un'implementazione di riferimento di Camera HAL che supporta l'output della videocamera a 10 bit, consulta
/hardware/google/camera/devices/EmulatedCamera/hwl.
Convalida
Per convalidare l'implementazione dell'output della videocamera a 10 bit e assicurarti che le app di terze parti possano attivare la funzionalità, ti consigliamo di eseguire le seguenti tre fasi di convalida.
- Testare la correttezza funzionale dell'API
- Confrontare la videocamera nativa e l'app di terze parti
- Confrontare l'intervallo dinamico standard e l'intervallo dinamico elevato
Per la convalida visiva dell'output della videocamera a 10 bit, si presuppone che il dispositivo supporti la visualizzazione HDR (display con più di 1000 nit) e che l'app di visualizzazione video (ad es. Google Foto) supporti la riproduzione di video HDR.
Testare la correttezza funzionale dell'API
Per testare la correttezza funzionale dell'API dell'output della videocamera a 10 bit, esegui i seguenti test CTS, ITS della videocamera e VTS:
hardware/interfaces/camera/provider/aidl/vts/: test per la scoperta, la configurazione e lo streaming di base e controlli per la presenza di metadati HDR, se necessario.tests/camera/src/android/hardware/camera2/cts/: garantisce che la videocamera si comporti in base alle specifiche dell'API AOSP.cts/apps/CameraITS: conferma che il comportamento generale dei video è coerente quando vengono utilizzati i profili HDR. Il test specifico ètests/scene4/test_video_aspect_ratio_and_crop.py.
Confrontare la videocamera nativa e l'app di terze parti
Ti consigliamo vivamente di assicurarti che i risultati dell'acquisizione di video a 10 bit con un'app di terze parti siano simili, se non identici, a quelli dell'app della videocamera nativa. Ciò significa che le scelte di ottimizzazione, come l'esposizione, l'intervallo dinamico e il colore, devono essere trasferite dall'app nativa alle app di terze parti. Per verificare il comportamento di registrazione video di un'app di terze parti che supporta l'output della videocamera a 10 bit sul tuo dispositivo, utilizza l'app di esempio Camera2Video su GitHub. Le seguenti indicazioni servono a illustrare gli aspetti visibili dell'HDR senza numeri oggettivi, a causa della variabilità di sensori, pannelli, condizioni di visualizzazione e preferenze del fornitore.
Scene suggerite per il confronto
Per confrontare l'app della videocamera nativa e un'app di terze parti, acquisisci video utilizzando diverse scene con l'app della videocamera nativa e l'app di esempio Camera2Video. Di seguito sono riportate le scene suggerite da utilizzare per il confronto:
- Una scena con illuminazione media o scarsa con un oggetto luminoso, ad esempio una candela o una piccola luce intensa che crea un intervallo di luminosità significativo. In questo modo si conferma il comportamento di esposizione automatica e l'intervallo dinamico.
- Una scena all'aperto luminosa con colori vivaci e oggetti riflettenti, come i paraurti cromati di un'auto, che creano luci intense. In questo modo si conferma il rendering per le scene luminose con luci ancora più intense.
- Una scena con intervallo dinamico medio-basso, ad esempio una scena naturale al chiuso in una casa o in un ufficio. In questo modo si conferma che le condizioni di illuminazione meno estreme si comportano come previsto.
Per tutte le scene, ti consigliamo di includere persone e volti per verificare la gestione dell'esposizione, del colore e della tonalità della pelle. La riduzione della variazione tra uno scatto e l'altro semplifica i confronti consecutivi.
Confrontare l'intervallo dinamico standard e l'intervallo dinamico elevato
Per assicurarti che l'utilizzo di un profilo di intervallo dinamico a 10 bit offra un vantaggio percepito rispetto a un profilo di intervallo dinamico standard, confronta le acquisizioni video utilizzando SDR (nessun profilo HDR) con i video HDR per verificare che gli aspetti chiave dell'HDR vengano visualizzati nelle acquisizioni. Per confrontare SDR e HDR, utilizza l' app di esempio Camera2Video e le scene suggerite per confrontare l'app della videocamera nativa e le app di terze parti.
Di seguito sono riportati gli aspetti chiave da verificare nelle scene suggerite. I pannelli di visualizzazione in grado di supportare l'HDR variano in base ai livelli di luminosità (misurati in nit o lumen), pertanto i seguenti numeri sono solo esempi:
- Nella scena con illuminazione media o scarsa, le luci intense della candela o della piccola luce vengono visualizzate alla luminosità massima per il display (possibilmente fino a 1000 nit) nella clip HDR e alla luminosità massima per SDR (circa 100 nit) nella clip SDR. Nella clip HDR, le luci intense devono risaltare sul display, catturando la percezione dell'utente dell'intervallo dinamico reale della scena. Rispetto alla clip HDR, la clip SDR dovrebbe apparire più piatta e meno luminosa.
- Nella scena di output luminosa, a seconda dell'ottimizzazione del dispositivo, la clip HDR mostra una differenza evidente nella luminosità dello schermo rispetto alla clip SDR. Per la clip HDR, la luminosità dello schermo per la scena complessiva (a seconda dell'headroom) dovrebbe essere maggiore, ad esempio fino a 800 nit, e ancora di più per le luci intense, come i paraurti cromati, intorno alla luminosità massima.
- Nell'acquisizione al chiuso con intervallo dinamico medio-basso, le clip HDR e SDR sono simili per colore e tonalità, con l'acquisizione HDR potenzialmente più luminosa dell'SDR. L'HDR non deve essere più scuro dell'SDR. Se le scelte di ottimizzazione lo rendono impossibile, assicurati che il comportamento dell'app di terze parti corrisponda a quello dell'app della videocamera nativa.