Per i dispositivi con Android 13 e versioni successive, Android supporta l'output della videocamera a 10 bit tramite profili di gamma dinamica che possono essere configurati dal client della videocamera nell'ambito della configurazione dello stream. I produttori di dispositivi possono aggiungere il supporto per profili di gamma dinamica a 10 bit come HLG10, HDR10, HDR10+ e Dolby Vision.
Il supporto dell'output della fotocamera a 10 bit consente ai client della fotocamera di rilevare i profili di gamma dinamica a 10 bit supportati di un dispositivo chiamando getSupportedProfiles
.
Il framework restituisce quindi un'istanza di
DynamicRangeProfiles
,
che include informazioni sui profili di gamma dinamica supportati e, se
disponibili, sui vincoli delle richieste di acquisizione. Il profilo
HLG10
deve essere supportato. Il profilo dell'intervallo dinamico consigliato è elencato nel campo
REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
I client della videocamera 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 informazioni dettagliate 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 fotocamera a 10 bit, i produttori di dispositivi devono eseguire le seguenti integrazioni HAL AIDL della fotocamera:
- Includi
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
nelle funzionalità della videocamera. - Compila
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
con tutti i profili di intervallo dinamico supportati e una bitmap dei relativi vincoli. Il profiloHLG10
deve essere supportato. Devi anche includere un profilo di gamma dinamica consigliato per informare i client della fotocamera 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 un formato definito dall'implementazione (
ImageFormat.PRIVATE
). - A seconda del profilo di intervallo dinamico, imposta il buffer dei metadati statici o dinamici di buffer Gralloc 4 elaborati prima di inviare una notifica al servizio della videocamera.
Per ulteriori dettagli sull'output della fotocamera a 10 bit in Camera HAL, consulta
quanto segue in metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- Dettagli HAL per
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
Per un'implementazione di riferimento di Camera HAL che supporta l'output della fotocamera a 10 bit, vedi
/hardware/google/camera/devices/EmulatedCamera/hwl
.
Convalida
Per convalidare l'implementazione dell'output della fotocamera 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 fotocamera nativa e l'app di terze parti
- Confrontare la gamma dinamica standard e l'alta gamma dinamica
Per la convalida visiva dell'output della fotocamera a 10 bit, si presuppone che il dispositivo supporti la visualizzazione HDR (display con luminosità superiore a 1000 nit) e che l'app di visualizzazione video (ad esempio Google Foto) supporti la riproduzione di video HDR.
Testa la correttezza funzionale dell'API
Per testare la correttezza funzionale dell'API dell'output della fotocamera a 10 bit, esegui i seguenti test CTS, ITS fotocamera e VTS:
hardware/interfaces/camera/provider/aidl/vts/
: Esegue test di base di rilevamento, configurazione e streaming e verifica la presenza di metadati HDR, se richiesti.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 fotocamera 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 Fotocamera nativa. Ciò significa che le scelte di regolazione, come esposizione, gamma dinamica e 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 fotocamera 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 fare un confronto tra l'app Fotocamera nativa e un'app di terze parti, acquisisci video utilizzando diverse scene con l'app Fotocamera nativa e l'app di esempio Camera2Video. Di seguito sono riportate le scene suggerite da utilizzare per il confronto:
- Una scena con luce media o scarsa con un oggetto luminoso, come una candela o una piccola luce intensa che crea una gamma di luminosità significativa. Ciò conferma il comportamento dell'esposizione automatica e della gamma dinamica.
- Una scena luminosa all'aperto con colori vivaci e oggetti riflettenti come i paraurti cromati di un'auto, che creano punti luce brillanti. In questo modo viene confermato il rendering per le scene luminose con luci ancora più brillanti.
- Una scena a gamma dinamica bassa di fascia media, ad esempio una scena naturale interna in una casa o un ufficio. Ciò conferma che le condizioni di illuminazione meno estreme si comportano come previsto.
Per tutte le scene, consigliamo di includere persone e volti per verificare l'esposizione, il colore e la gestione del tono della pelle. La riduzione della variazione tra uno scatto e l'altro semplifica i confronti consecutivi.
Confrontare la gamma dinamica standard e l'high dynamic range
Per assicurarti che l'utilizzo di un profilo con gamma dinamica a 10 bit offra un vantaggio percepibile rispetto a un profilo con gamma dinamica standard, confronta le acquisizioni video utilizzando SDR (nessun profilo HDR) con i video HDR per verificare che gli aspetti chiave dell'HDR siano presenti nelle acquisizioni. Per confrontare SDR e HDR, utilizza l'app di esempio Camera2Video e le scene suggerite per confrontare l'app fotocamera nativa e le app di terze parti.
Di seguito sono riportati gli aspetti chiave da verificare nelle scene suggerite. I pannelli del display compatibili con l'HDR variano in base ai livelli di luminosità (misurati in nit o lumen), pertanto i seguenti numeri forniti sono da intendersi come esempi:
- Nella scena con luce 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) nel clip HDR e alla luminosità massima per l'SDR (circa 100 nit) nel clip SDR. Nel clip HDR, le luci brillanti devono risaltare sul display, catturando la percezione dell'utente di quella che era la vera gamma dinamica della scena. Rispetto al clip HDR, il clip SDR dovrebbe apparire più piatto e meno luminoso.
- Nella scena di output luminoso, a seconda della regolazione del dispositivo, il clip HDR mostra una differenza evidente nella luminosità dello schermo rispetto al clip SDR. Per il 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 alte luci luminose come i paraurti cromati, intorno alla luminosità massima.
- Nelle riprese interne a bassa gamma dinamica di fascia media, i clip HDR e SDR sono simili per colore e tonalità, con la ripresa HDR potenzialmente più luminosa della 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 Fotocamera nativa.