Lingua

RequestAvailableCapabilities Enumerazione

Definizione

Enumera i valori restituiti da diversi metodi di RequestAvailableCapabilities.

public enum RequestAvailableCapabilities
type RequestAvailableCapabilities = 
Ereditarietà
RequestAvailableCapabilities

Campi

Nome Valore Descrizione
BackwardCompatible 0

Set minimo di funzionalità supportate da ogni dispositivo fotocamera (indipendentemente da android.info.supportedHardwareLevel).

Questa funzionalità è elencata da tutti i dispositivi normali e indica che il dispositivo fotocamera ha un set di funzionalità paragonabile ai requisiti di base per l'API android.hardware.Camera meno recente.

I dispositivi con la funzionalità di DEPTH_OUTPUT potrebbero non elencare questa funzionalità, a indicare che supportano solo la misurazione della profondità, non l'output dei colori standard.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

ManualSensor 1

Il dispositivo fotocamera può essere controllato manualmente (algoritmi 3A come l'esposizione automatica e lo stato attivo automatico possono essere ignorati). Il dispositivo fotocamera supporta il controllo manuale di base delle fasi correlate all'acquisizione dell'immagine del sensore. Ciò significa che è garantito che siano supportati i controlli seguenti: controllo durata fotogrammi manuale; android.sensor.frameDuration; android.sensor.info.maxFrameDuration; Controllo manuale dell'esposizione; android.sensor.exposureTime; android.sensor.info.exposureTimeRange; Controllo di riservatezza manuale; android.sensor.sensitivity; android.sensor.info.sensitivityRange; Controllo manuale della lente (se l'obiettivo è regolabile); android.lens.*; Controllo flash manuale (se è presente un'unità flash); android.flash.*; Blocco manuale a livello nero; android.blackLevel.lock; Blocco di esposizione automatica; android.control.aeLock

Se uno degli algoritmi 3A precedenti è abilitato, il dispositivo fotocamera inserirà in modo accurato i valori applicati da 3A nel risultato.

Un determinato dispositivo fotocamera può anche supportare controlli manuali aggiuntivi del sensore, ma questa funzionalità copre solo l'elenco di controlli precedente.

Se questa opzione è supportata, android.scaler.streamConfigurationMap restituirà anche una durata minima del fotogramma maggiore di zero per ogni combinazione di formato di dimensione supportata.

Per i dispositivi fotocamera con funzionalità di LOGICAL_MULTI_CAMERA, quando le proprietà della fotocamera fisica attiva sottostante cambiano, exposureTime, sensibilità e lente anche se AE/AF è bloccato. Tuttavia, l'esposizione automatica complessiva e l'esperienza di messa a fuoco automatica per gli utenti saranno coerenti. Per informazioni dettagliate, vedere LOGICAL_MULTI_CAMERA funzionalità.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

ManualPostProcessing 2

Le fasi post-elaborazione del dispositivo fotocamera possono essere controllate manualmente. Il dispositivo fotocamera supporta il controllo manuale di base delle fasi di post-elaborazione dell'immagine. Ciò significa che è garantito che siano supportati i controlli seguenti: controllo tonemap manuale; android.tonemap.curve; android.tonemap.mode; android.tonemap.maxCurvePoints; android.tonemap.gamma; android.tonemap.presetCurve; Controllo manuale del bilanciamento del bianco; android.colorCorrection.transform; android.colorCorrection.gains; Controllo manuale della mappa con ombreggiatura delle lenti; android.shading.mode; android.statistics.lensShadingMapMode; android.statistics.lensShadingMap; android.lens.info.shadingMapSize; Controllo di correzione dell'aberrazione manuale (se è supportata la correzione dell'aberrazione); android.colorCorrection.aberrationMode; android.colorCorrection.availableAberrationModes; Blocco di bilanciamento del bianco automatico; android.control.awbLock

Se il bilanciamento del bianco automatico è abilitato, il dispositivo fotocamera inserirà in modo accurato i valori applicati da AWB nel risultato.

Un determinato dispositivo fotocamera può anche supportare controlli aggiuntivi di post-elaborazione, ma questa funzionalità copre solo l'elenco precedente di controlli.

Per i dispositivi fotocamera con funzionalità di LOGICAL_MULTI_CAMERA, quando la fotocamera fisica sottostante cambia, la mappa di tono, il bilanciamento del bianco e la mappa ombreggiatura possono cambiare anche se awb è bloccato. Tuttavia, l'esperienza complessiva di post-elaborazione per gli utenti sarà coerente. Per informazioni dettagliate, vedere LOGICAL_MULTI_CAMERA funzionalità.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Raw 3

Il dispositivo fotocamera supporta l'output di buffer RAW e metadati per interpretarli.

I dispositivi che supportano la funzionalità RAW consentono sia il salvataggio dei file DNG che l'elaborazione diretta delle immagini dei sensori non elaborati. RAW_SENSOR è supportato come formato di output; La risoluzione massima disponibile per i flussi RAW_SENSOR corrisponderà al valore in android.sensor.info.pixelArraySize o android.sensor.info.preCorrectionActiveArraySize; Tutte le voci di metadati facoltative correlate a DNG vengono fornite dal dispositivo fotocamera

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

PrivateReprocessing 4

Il dispositivo fotocamera supporta il caso d'uso Zero Shutter Lag di rielaborazione.; È supportato un flusso di input, ovvero android.request.maxNumInputStreams == 1; ImageFormat.PRIVATE è supportato come formato di output/input, ovvero ImageFormat.PRIVATE è incluso negli elenchi di formati restituiti da StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) restituisce int[] non vuoti per ogni formato di input supportato restituito da StreamConfigurationMap.getInputFormats(); Ogni dimensione restituita da getInputSizes(ImageFormat.PRIVATE) è inclusa anche in getOutputSizes(ImageFormat.PRIVATE); L'uso di ImageFormat.PRIVATE non causa un calo della frequenza dei fotogrammi rispetto alla frequenza di acquisizione massima del sensore (a tale risoluzione); ImageFormat.PRIVATE sarà riprocessabile sia nei formati ImageFormat.YUV_420_888 che in ImageFormat.JPEG; Per una fotocamera MONOCHROME che supporta il formato Y8, ImageFormat.PRIVATE sarà riprocessabile in ImageFormat.Y8; La risoluzione massima disponibile per i flussi PRIVATE (input/output) corrisponderà alla risoluzione massima disponibile dei flussi JPEG; Metadati statici android.reprocess.maxCaptureStall; Solo i controlli seguenti sono efficaci per la rielaborazione delle richieste e saranno presenti nei risultati dell'acquisizione, altri controlli nelle richieste di rielaborazione verranno ignorati dal dispositivo fotocamera; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.noiseReduction.availableNoiseReductionModes e android.edge.availableEdgeModes verranno entrambi elencati ZERO_SHUTTER_LAG come modalità supportata

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

ReadSensorSettings 5

Il dispositivo fotocamera supporta la segnalazione accurata delle impostazioni del sensore per molti dei controlli del sensore mentre è in esecuzione l'algoritmo 3A predefinito. In questo modo è possibile segnalare le impostazioni del sensore anche quando queste impostazioni non possono essere modificate manualmente.

I valori segnalati per i controlli seguenti sono garantiti per essere disponibili in CaptureResult, incluso quando 3A è abilitato: Controllo esposizione; android.sensor.exposureTime; Controllo di riservatezza; android.sensor.sensitivity; Controlli lente (se l'obiettivo è regolabile); android.lens.focusDistance; android.lens.aperture

Questa funzionalità è un subset della funzionalità di controllo MANUAL_SENSOR e verrà sempre inclusa se la funzionalità di MANUAL_SENSOR è disponibile.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

BurstCapture 6

Il dispositivo fotocamera supporta l'acquisizione di immagini ad alta risoluzione a >= 20 fotogrammi al secondo, in almeno il formato YUV non compresso, quando le impostazioni di post-elaborazione sono impostate su FAST. Inoltre, tutte le risoluzioni delle immagini inferiori a 24* possono essere acquisite in >= 10 fotogrammi al secondo. In questo caso, "alta risoluzione" significa almeno 8partizioni o la risoluzione massima del dispositivo, a meno che non sia più piccola.

In particolare, ciò significa che una dimensione corrispondente alle dimensioni della matrice attiva del dispositivo fotocamera è elencata come dimensione supportata per il formato ImageFormat.YUV_420_888 in StreamConfigurationMap.getOutputSizes(int) o StreamConfigurationMap.getHighResolutionOutputSizes(int), con una durata minima dei fotogrammi per tale formato e dimensione = <1/20 s o <= 1/10 s se le dimensioni dell'immagine sono minori di 24* rispettivamente; e la voce android.control.aeAvailableTargetFpsRanges elenca almeno un intervallo FPS in cui il fps minimo è >= 1 /minimumFrameDuration per il formato di YUV_420_888 dimensioni massime. Se tale dimensione massima è elencata in StreamConfigurationMap.getHighResolutionOutputSizes(int), l'elenco di risoluzioni per YUV_420_888 da StreamConfigurationMap.getOutputSizes(int) contiene almeno una risoluzione >= 8 YUV_420_888, con una durata minima di <fotogramma = 1/20 s.

Se il dispositivo supporta ImageFormat.RAW10, ImageFormat.RAW12, ImageFormat.RAW14, ImageFormat.Y8, questi possono essere acquisiti anche alla stessa velocità della risoluzione YUV_420_888 massima.

Se il dispositivo supporta la funzionalità di PRIVATE_REPROCESSING, le stesse garanzie del formato YUV_420_888 si applicano anche al formato ImageFormat.PRIVATE.

Inoltre, il campo android.sync.maxLatency ha un valore compreso tra 0 e 4, incluso. Android.control.aeLockAvailable e android.control.awbLockAvailable sono garantiti anche come true, in modo che l'acquisizione burst con questi due blocchi ON restituisca un output coerente dell'immagine.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

YuvReprocessing 7

Il dispositivo fotocamera supporta il caso d'uso di YUV_420_888 di rielaborazione, simile a PRIVATE_REPROCESSING, questa funzionalità richiede che il dispositivo fotocamera supporti quanto segue: è supportato un flusso di input, ovvero android.request.maxNumInputStreams == 1; ImageFormat.YUV_420_888 è supportato come formato di output/input, ovvero YUV_420_888 è incluso negli elenchi di formati restituiti da StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) restituisce int[] non vuoti per ogni formato di input supportato restituito da StreamConfigurationMap.getInputFormats(); Ogni dimensione restituita da getInputSizes(YUV_420_888) è inclusa anche in getOutputSizes(YUV_420_888); L'uso di ImageFormat.YUV_420_888 non causa un calo della frequenza dei fotogrammi rispetto alla frequenza di acquisizione massima del sensore (a tale risoluzione); ImageFormat.YUV_420_888 sarà rielaborabile sia in formati di ImageFormat.YUV_420_888 che di ImageFormat.JPEG; La risoluzione massima disponibile per i flussi ImageFormat.YUV_420_888 (input/output) corrisponderà alla risoluzione massima disponibile dei flussi ImageFormat.JPEG; Per una fotocamera MONOCHROME con supporto per il formato Y8, tutti i requisiti indicati in precedenza per YUV_420_888 si applicano anche per il formato Y8; Metadati statici android.reprocess.maxCaptureStall; Solo i controlli seguenti sono efficaci per rielaborare le richieste e saranno presenti nei risultati dell'acquisizione. Le richieste di rielaborazione provengono dai risultati di acquisizione originali associati ai buffer di output intermedi ImageFormat.YUV_420_888. Tutti gli altri controlli nelle richieste di rielaborazione verranno ignorati dal dispositivo fotocamera; android.jpeg.*; android.noiseReduction.mode; android.edge.mode; android.reprocess.effectiveExposureFactor; android.noiseReduction.availableNoiseReductionModes e android.edge.availableEdgeModes verranno entrambi elencati ZERO_SHUTTER_LAG come modalità supportata

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

DepthOutput 8

Il dispositivo fotocamera può produrre misurazioni di profondità dal suo campo di visualizzazione.

Questa funzionalità richiede che il dispositivo fotocamera supporti quanto segue: ImageFormat.DEPTH16 è supportato come formato di output; ImageFormat.DEPTH_POINT_CLOUD è facoltativamente supportato come formato di output; Questo dispositivo fotocamera e tutti i dispositivi fotocamera con lo stesso android.lens.facing elencano le voci di metadati di calibrazione seguenti in CameraCharacteristics e CaptureResult:; android.lens.poseTranslation; android.lens.poseRotation; android.lens.intrinsicCalibration; android.lens.distorto; La voce android.depth.depthIsExclusive è elencata da questo dispositivo; A partire da Android P, la voce android.lens.poseReference è elencata da questo dispositivo; Una fotocamera LIMITED con solo la funzionalità di DEPTH_OUTPUT non deve supportare i normali output di YUV_420_888, Y8, JPEG e PRIV. Deve supportare solo il formato DEPTH16

In genere, l'output di profondità opera a una frequenza dei fotogrammi più lenta rispetto all'acquisizione di colori standard, pertanto i formati DEPTH16 e DEPTH_POINT_CLOUD avranno in genere una durata di stallo che deve essere considerata (vedere StreamConfigurationMap.getOutputStallDuration(int, Size)). In un dispositivo che supporta sia la profondità che l'output basato sul colore, per abilitare l'anteprima uniforme, è consigliabile usare un burst ripetuto, in cui una destinazione di output di profondità viene inclusa solo una volta ogni N fotogrammi, dove N è il rapporto tra la frequenza di output di anteprima e la frequenza di output della profondità, incluso il tempo di stallo di profondità.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

ConstrainedHighSpeedVideo 9

Il dispositivo supporta la registrazione video ad alta velocità vincolata (frequenza >dei fotogrammi =120fps) caso d'uso. Il dispositivo fotocamera supporterà la sessione di acquisizione ad alta velocità creata da CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler), che accetta solo elenchi di richieste ad alta velocità creati da CameraConstrainedHighSpeedCaptureSession.createHighSpeedRequestList(CaptureRequest).

Un dispositivo fotocamera può comunque supportare lo streaming video ad alta velocità annunciando gli intervalli FPS ad alta velocità in android.control.aeAvailableTargetFpsRanges. In questo caso, tutte le normali richieste di acquisizione per ogni controllo frame e i requisiti di sincronizzazione si applicano agli intervalli fps ad alta velocità, uguali a tutti gli altri intervalli fps. Questa funzionalità descrive la funzionalità di una modalità operativa specializzata con molte limitazioni (vedere di seguito), destinata solo alla registrazione video ad alta velocità.

Le dimensioni video e gli intervalli fps supportati sono specificati in StreamConfigurationMap.getHighSpeedVideoFpsRanges(). Per ottenere le frequenze dei fotogrammi di output desiderate, l'applicazione può selezionare solo le combinazioni di dimensioni video e intervallo FPS fornite da StreamConfigurationMap.getHighSpeedVideoSizes(). L'intervallo fps può essere controllato tramite android.control.aeTargetFpsRange.

In questa funzionalità, il dispositivo fotocamera sostituirà rispettivamente aeMode, awbMode e afMode su ON, AUTO e CONTINUOUS_VIDEO. Tutti i controlli in modalità blocco post-elaborazione verranno sottoposti a override per essere FAST. Pertanto, non è possibile controllare manualmente i parametri di acquisizione e post-elaborazione. Tutti gli altri controlli funzionano come quando android.control.mode == AUTO. Ciò significa che tutti gli altri campi android.control.* continuano a funzionare, ad esempio; android.control.aeTargetFpsRange; android.control.aeExposureCompensation; android.control.aeLock; android.control.awbLock; android.control.effectMode; android.control.aeRegions; android.control.afRegions; android.control.awbRegions; android.control.afTrigger; android.control.aePrecaptureTrigger; android.control.zoomRatio

All'esterno di android.control.*, i controlli seguenti funzioneranno: android.flash.mode (solo modalità TORCH, flash automatico per l'acquisizione non funzionerà perché aeMode è ATTIVATO); android.lens.opticalStabilizationMode (se supportato); android.scaler.cropRegion; android.statistics.faceDetectMode (se supportato)

Per i casi d'uso di registrazione ad alta velocità, la frequenza massima massima supportata dei fotogrammi può essere inferiore a quella che la fotocamera può restituire, a seconda delle superfici di destinazione per i dati dell'immagine. Ad esempio, se la superficie di destinazione proviene dal codificatore video, l'applicazione deve verificare se il codificatore video è in grado di supportare la frequenza dei fotogrammi elevata per una determinata dimensione video o si verificherà una frequenza dei fotogrammi di registrazione inferiore. Se la superficie di destinazione proviene dalla finestra di anteprima, la frequenza effettiva dei fotogrammi di anteprima verrà limitata dalla frequenza di aggiornamento dello schermo.

Il dispositivo fotocamera supporterà solo fino a 2 superfici di output simultanee ad alta velocità (anteprima e superfici di registrazione) in questa modalità. I controlli precedenti saranno effettivi solo se tutte le condizioni seguenti sono vere: l'applicazione crea una sessione di acquisizione della fotocamera con non più di 2 superfici tramite CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler). Le superfici di destinazione devono essere superficie di anteprima (da SurfaceView o SurfaceTexture) o superficie di registrazione (da MediaRecorder.getSurface() o MediaCodec.createInputSurface()); Le dimensioni del flusso vengono selezionate dalle dimensioni segnalate da StreamConfigurationMap.getHighSpeedVideoSizes(); Gli intervalli FPS vengono selezionati da StreamConfigurationMap.getHighSpeedVideoFpsRanges()

Quando le condizioni precedenti non sono soddisfatte, CameraDevice.createConstrainedHighSpeedCaptureSession(List, StateCallback, Handler) avrà esito negativo.

Il passaggio a un intervallo FPS con un fps massimo diverso può attivare alcune riconfigurazioni del dispositivo fotocamera, che possono introdurre una latenza aggiuntiva. È consigliabile che l'applicazione eviti il maggior numero possibile di modifiche al fps di destinazione massimo non necessarie durante lo streaming ad alta velocità.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

MotionTracking 10

Il dispositivo fotocamera supporta il valore MOTION_TRACKING per android.control.captureIntent, che limita il tempo di esposizione massimo a 20 ms.

Questo limita la sfocatura del movimento delle immagini di acquisizione, ottenendo risultati di rilevamento delle immagini migliori per casi d'uso, ad esempio la stabilizzazione delle immagini o la realtà aumentata.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MOTION_TRACKING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

LogicalMultiCamera 11

Il dispositivo fotocamera è una fotocamera logica supportata da due o più fotocamere fisiche.

Nel livello API 28, anche le fotocamere fisiche devono essere esposte all'applicazione tramite CameraManager.getCameraIdList().

A partire dal livello API 29: alcune o tutte le fotocamere fisiche potrebbero non essere esposte in modo indipendente all'applicazione, nel qual caso gli ID della fotocamera fisica non saranno disponibili in CameraManager.getCameraIdList(). Tuttavia, l'applicazione può comunque eseguire query sulle caratteristiche delle fotocamere fisiche chiamando CameraManager.getCameraCharacteristics(String); Se una fotocamera fisica è nascosta dall'elenco di ID fotocamera, le combinazioni di flusso obbligatorie per la fotocamera fisica devono essere supportate tramite la fotocamera logica usando flussi fisici. Un'eccezione è che nel livello API 30 una fotocamera fisica potrebbe non essere disponibile tramite CameraManager.AvailabilityCallback.onPhysicalCameraUnavailable callback

Le combinazioni di flussi logici e fisici o flussi fisici provenienti da fotocamere fisiche diverse non sono garantite. Tuttavia, se il dispositivo fotocamera supporta CameraDevice.isSessionConfigurationSupported, l'applicazione deve essere in grado di eseguire una query se una combinazione di flusso che coinvolge flussi fisici è supportata chiamando CameraDevice.isSessionConfigurationSupported.

L'applicazione fotocamera non deve presupporre che ci siano al massimo 1 fotocamera posteriore e 1 fotocamera anteriore nel sistema. Per un'applicazione che passa da una fotocamera anteriore a quella posteriore, è consigliabile passare dalla prima fotocamera posteriore alla prima fotocamera anteriore nell'elenco dei dispositivi fotocamera supportati.

Questa funzionalità richiede che il dispositivo fotocamera supporti quanto segue: gli ID delle fotocamere fisiche sottostanti vengono restituiti tramite CameraCharacteristics.getPhysicalCameraIds(); Questo dispositivo fotocamera deve elencare metadati statici android.logicalMultiCamera.sensorSyncType in CameraCharacteristics; I metadati statici delle fotocamere fisiche sottostanti devono elencare le voci seguenti, in modo che l'applicazione possa correlare i pixel dai flussi fisici: android.lens.poseReference; android.lens.poseRotation; android.lens.poseTranslation; android.lens.intrinsicCalibration; android.lens.distorto; Il SENSOR_INFO_TIMESTAMP_SOURCE del dispositivo logico e dei dispositivi fisici deve essere lo stesso; La fotocamera logica deve essere LIMITATA o superiore

I metadati dinamici di un dispositivo fotocamera logico possono contenere android.logicalMultiCamera.activePhysicalId per notificare all'applicazione l'ID della fotocamera fisica attiva corrente. Una fotocamera fisica attiva è la fotocamera fisica da cui provengono i dati principali delle immagini della fotocamera logica (YUV o RAW) e i metadati. Inoltre, questo serve come indicazione quale fotocamera fisica viene usata per l'output in un flusso RAW o nel caso in cui solo le fotocamere fisiche supportino RAW, quale flusso RAW fisico deve richiedere l'applicazione.

I tag di metadati statici della fotocamera logica di seguito descrivono la fotocamera fisica attiva predefinita. Una fotocamera fisica attiva è predefinita se viene usata quando l'applicazione usa direttamente le richieste compilate da un modello. Per impostazione predefinita, tutti i modelli avranno la stessa fotocamera fisica attiva. android.sensor.info.sensitivityRange; android.sensor.info.colorFilterArrangement; android.sensor.info.exposureTimeRange; android.sensor.info.maxFrameDuration; android.sensor.info.physicalSize; android.sensor.info.whiteLevel; android.sensor.info.lensShadingApplied; android.sensor.referenceIlluminant1; android.sensor.referenceIlluminant2; android.sensor.calibrationTransform1; android.sensor.calibrationTransform2; android.sensor.colorTransform1; android.sensor.colorTransform2; android.sensor.forwardMatrix1; android.sensor.forwardMatrix2; android.sensor.blackLevelPattern; android.sensor.maxAnalogSensitivity; android.sensor.opticalBlackRegions; android.sensor.availableTestPatternModes; android.lens.info.hyperfocalDistance; android.lens.info.minimumFocusDistance; android.lens.info.focusDistanceCalibration; android.lens.poseRotation; android.lens.poseTranslation; android.lens.intrinsicCalibration; android.lens.poseReference; android.lens.distorto

Il campo di visualizzazione dei flussi fisici non RAW non deve essere inferiore a quello dei flussi logici non RAW o il campo massimo di visualizzazione della fotocamera fisica, a meno che sia più piccolo. L'applicazione deve controllare i metadati dei risultati dell'acquisizione fisica e le caratteristiche della fotocamera fisica per il modo in cui i flussi fisici vengono ritagliati o ingrandito. Vedere android.lens.focalLength su come viene calcolato il campo di visualizzazione.

In genere il flusso fisico della fotocamera fisica attiva ha lo stesso campo di visualizzazione dei flussi logici. Tuttavia, lo stesso potrebbe non essere vero per i flussi fisici da fotocamere fisiche non attive. Ad esempio, se la fotocamera logica ha una configurazione wide-ultrawide in cui l'obiettivo wide è l'impostazione predefinita, quando l'area di ritaglio è impostata sulle dimensioni della matrice attiva della fotocamera logica (e il rapporto di zoom impostato su 1,0 a partire da Android 11), un flusso fisico per la fotocamera ultrawide può preferire l'output di immagini con un campo di visualizzazione più grande rispetto a quello della fotocamera wide per ottenere un margine di corrispondenza stereo migliore o un tracciamento del movimento più affidabile. Allo stesso tempo, il campo fisico di visualizzazione dei flussi non RAW non deve essere inferiore all'area di ritaglio richiesta e al rapporto di zoom, purché si tratti della funzionalità dell'obiettivo fisico. Ad esempio, per una fotocamera logica con configurazione wide-tele lens in cui l'obiettivo wide è l'impostazione predefinita, se l'area di ritaglio della fotocamera logica è impostata su dimensioni massime e il rapporto di zoom impostato su 1,0, il flusso fisico per l'obiettivo di telemetria verrà configurato per l'area di ritaglio delle dimensioni massime (senza zoom).

Deprecato: prima di Android 11, il campo di visualizzazione di tutti i flussi fisici non RAW non può essere maggiore di quello dei flussi logici non RAW. Se la fotocamera logica dispone di una configurazione con obiettivo wide ultrawide in cui l'obiettivo wide è l'impostazione predefinita, quando l'area di ritaglio della fotocamera logica è impostata su dimensioni massime, il FOV dei flussi fisici per l'obiettivo ultrawide sarà lo stesso del flusso logico, rendendo l'area di ritaglio inferiore alla dimensione della matrice attiva per compensare la lunghezza focale più piccola.

Per una fotocamera logica, in genere le fotocamere fisiche sottostanti hanno diverse funzionalità RAW ,ad esempio risoluzione o modello CFA. Esistono due modi per l'applicazione per acquisire immagini RAW dalla fotocamera logica: se la fotocamera logica dispone di funzionalità RAW, l'applicazione può creare e usare flussi RAW nello stesso modo di prima. Nel caso in cui un flusso RAW sia configurato, per mantenere la compatibilità con le versioni precedenti, il dispositivo fotocamera assicura che la fotocamera fisica attiva predefinita rimanga attiva e non passi ad altre fotocamere fisiche. Un'eccezione è che, se la fotocamera logica è costituita da sensori di immagine identici e annuncia più focalLength a causa di lenti diverse, il dispositivo fotocamera può generare immagini RAW da fotocamere fisiche diverse in base al focalLength impostato dall'applicazione. Questo approccio compatibile con le versioni precedenti comporta in genere la perdita di zoom ottico, la telefotobiettivo o l'obiettivo ultrawide; In alternativa, se supportato dal dispositivo, è possibile usare MultiResolutionImageReader per acquisire immagini RAW da una delle fotocamere fisiche sottostanti ( a seconda del livello di zoom corrente). Poiché diverse fotocamere fisiche possono avere caratteristiche RAW diverse, l'applicazione deve usare le caratteristiche e i metadati dei risultati della fotocamera fisica attiva per i metadati RAW pertinenti

I tag di metadati delle richieste di acquisizione e dei risultati necessari per le funzionalità della fotocamera compatibili con le versioni precedenti saranno basati esclusivamente sulla funzionalità della fotocamera logica. D'altra parte, l'uso di controlli di acquisizione manuali (sensore o post-elaborazione) con una fotocamera logica può comportare un comportamento imprevisto quando l'HAL decide di passare tra fotocamere fisiche con caratteristiche diverse sotto il cappuccio. Ad esempio, quando l'applicazione imposta manualmente tempo di esposizione e sensibilità durante lo zoom avanti, la luminosità delle immagini della fotocamera può cambiare improvvisamente perché HAL passa da una fotocamera fisica all'altra.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Monochrome 12

Il dispositivo fotocamera è una fotocamera monocromatica che non contiene una matrice di filtri colori e per YUV_420_888 flusso, i valori dei pixel su di voi e I piani V sono tutti 128.

Una fotocamera MONOCHROME deve supportare le combinazioni di flusso garantite necessarie per il livello di dispositivo e le funzionalità. Inoltre, se il dispositivo fotocamera monocromatica supporta il formato Y8, tutti i requisiti di combinazione di flusso obbligatori correlati a YUV_420_888 si applicano anche a Y8. Non esistono requisiti obbligatori per la combinazione di flussi in relazione all'Y8 per i dispositivi di fotocamera Bayer.

A partire da Android Q, la SENSOR_INFO_COLOR_FILTER_ARRANGEMENT di una fotocamera MONOCHROME sarà MONO o NIR.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_MONOCHROME.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

SecureImageData 13

Il dispositivo fotocamera è in grado di scrivere dati di immagine in un'area di memoria inaccessibile allo spazio utente Android o al kernel Android e accessibile solo agli ambienti di esecuzione attendibili (TEE).

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

SystemCamera 14

Il dispositivo fotocamera è accessibile solo dai componenti di sistema e dalle applicazioni con privilegi di Android. I processi devono avere il android.permission.SYSTEM_CAMERA oltre a android.permission.CAMERA per connettersi a questo dispositivo fotocamera.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

OfflineProcessing 15

Il dispositivo fotocamera supporta il caso d'uso OFFLINE_PROCESSING.

Con OFFLINE_PROCESSING funzionalità, l'applicazione può passare da una sessione di acquisizione in corso alla modalità offline chiamando il metodo CameraCaptureSession#switchToOffline e specificando i flussi da mantenere in modalità offline. La fotocamera arresterà quindi le richieste ripetute attualmente attive, prepara alcune richieste per passare alla modalità offline e restituirà un oggetto sessione offline. Al termine della chiamata switchToOffline, la sessione di acquisizione originale è in stato chiuso come se fosse stato chiamato il metodo CameraCaptureSession#close. Nella modalità offline, tutte le richieste in volo continueranno a essere elaborate in background e l'applicazione può chiudere immediatamente la fotocamera o creare una nuova sessione di acquisizione senza perdere le immagini di output delle richieste e acquisire i risultati.

Sebbene il dispositivo fotocamera stia elaborando richieste offline, potrebbe non essere in grado di supportare tutte le configurazioni di flusso che può supportare senza richieste offline. In questo caso, la chiamata al metodo createCaptureSession avrà esito negativo. Le configurazioni di flusso seguenti sono garantite senza colpire l'eccezione della risorsa occupata: una sessione offline in corso: destinazione di una superficie di output di formato YUV o JPEG, qualsiasi risoluzione; Sessione di acquisizione della fotocamera attiva:; Una superficie di anteprima (SurfaceView o SurfaceTexture) fino a 1920 larghezza; Una superficie YUV ImageReader fino a 1920 larghezza; Uno Jpeg ImageReader, qualsiasi risoluzione: il dispositivo fotocamera è autorizzato a rallentare la velocità di output JPEG di 50% se è presente una sessione offline in corso; Se il dispositivo supporta PRIVATE_REPROCESSING, una coppia di superfici ImageWriter/ImageReader di formato privato, con la stessa risoluzione maggiore o uguale alla risoluzione JPEG ImageReader precedente; In alternativa, la sessione attiva della fotocamera precedente può essere sostituita da una fotocamera legacy con le impostazioni dei parametri seguenti:; Dimensioni di anteprima fino a 1920 larghezza; Dimensioni del callback di anteprima fino a 1920 larghezza; Dimensioni video fino a 1920 larghezza; Dimensioni dell'immagine, qualsiasi risoluzione: il dispositivo fotocamera può rallentare la velocità di output JPEG di 50% se è presente una sessione offline in corso

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

UltraHighResolutionSensor 16

Questo dispositivo fotocamera è in grado di produrre immagini ad alta risoluzione oltre alle dimensioni dell'immagine descritte in android.scaler.streamConfigurationMap. Può funzionare in modalità "default" e "max resolution". Questa operazione viene eseguita in genere tramite binning dei pixel in modalità "default" e non eseguendo il binning in modalità 'max resolution'. android.scaler.streamConfigurationMap descrive i flussi supportati in modalità 'default'. Le configurazioni del flusso supportate in modalità 'max resolution' sono descritte da android.scaler.streamConfigurationMapMaximumResolution. La dimensione massima della matrice di pixel della modalità di risoluzione di un dispositivo fotocamera (android.sensor.info.pixelArraySize) con questa funzionalità, sarà almeno 24 riceverai un valore pari a 24 pixel.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

RemosaicReprocessing 17

Il dispositivo supporta la rielaborazione dal formato RAW_SENSOR con un modello bayer fornito da android.sensor.info.binningFactor (m x n gruppo di pixel con lo stesso filtro di colore) a un modello bayer regolare rimosaico.

Questa funzionalità sarà presente solo per i dispositivi con funzionalità REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR. Quando REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR dispositivi non annunciano questa funzionalità, le immagini ImageFormat.RAW_SENSOR avranno già un modello di bayer regolare.

Se viene richiesto un flusso RAW_SENSOR insieme a un altro flusso non RAW in un oggetto CaptureRequest (se sono supportati più flussi quando android.sensor.pixelMode è impostato su SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION), il flusso RAW_SENSOR avrà un modello di bayer regolare.

Questa funzionalità richiede che il dispositivo fotocamera supporti quanto segue: StreamConfigurationMap indicato di seguito fa riferimento a quello descritto da android.scaler.streamConfigurationMapMaximumResolution; È supportato un flusso di input, ovvero android.request.maxNumInputStreams == 1; ImageFormat.RAW_SENSOR è supportato come formato di output/input, ovvero ImageFormat.RAW_SENSOR è incluso negli elenchi di formati restituiti da StreamConfigurationMap.getInputFormats() e StreamConfigurationMap.getOutputFormats(); StreamConfigurationMap.getValidOutputFormatsForInput(int) restituisce int[] non vuoti per ogni formato di input supportato restituito da StreamConfigurationMap.getInputFormats(); Ogni dimensione restituita da getInputSizes(ImageFormat.RAW_SENSOR) è inclusa anche in getOutputSizes(ImageFormat.RAW_SENSOR); L'uso di ImageFormat.RAW_SENSOR non causa un calo della frequenza dei fotogrammi rispetto alla frequenza di acquisizione massima del sensore (a tale risoluzione); Nessun controllo CaptureRequest sarà applicabile quando una richiesta ha una destinazione di input con formato ImageFormat.RAW_SENSOR

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

DynamicRangeTenBit 18

Il dispositivo supporta uno o più output della fotocamera a 10 bit in base ai profili di intervallo dinamici specificati in DynamicRangeProfiles.getSupportedProfiles(). Possono essere configurati come parte dell'inizializzazione della sessione di acquisizione tramite OutputConfiguration.setDynamicRangeProfile(long). Anche le fotocamere che abilitano questa funzionalità devono supportare quanto segue: Profile DynamicRangeProfiles.HLG10; Tutte le combinazioni di flussi obbligatorie per questa funzionalità specifica in base alla documentazione; Nel caso in cui il dispositivo non sia in grado di acquisire una combinazione di profili di intervallo dinamico standard a 8 bit e/o a 10 bit all'interno della stessa richiesta di acquisizione, tali vincoli devono essere elencati in DynamicRangeProfiles.getProfileCaptureRequestConstraints(long); Profilo di intervallo dinamico consigliato elencato in CameraCharacteristics.REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

StreamUseCase 19

Il dispositivo fotocamera supporta la selezione di un caso d'uso per flusso tramite OutputConfiguration.setStreamUseCase(long) in modo che il dispositivo possa ottimizzare i parametri della pipeline della fotocamera, ad esempio l'ottimizzazione, la modalità sensore o le impostazioni ISP per uno scenario utente specifico. Alcuni utilizzi di esempio di questa funzionalità sono: distinguere le acquisizioni YUV di alta qualità da un normale flusso YUV in cui la qualità dell'immagine potrebbe non essere ottimale come il flusso JPEG o ; Usa un flusso per servire più scopi: viewfinder, registrazione video e ancora acquisizione. Questa operazione è comune alle applicazioni che desiderano applicare le modifiche in modo uniforme all'anteprima, alle immagini salvate e ai video salvati

Questa funzionalità richiede che il dispositivo fotocamera supporti i casi d'uso del flusso seguenti: DEFAULT per la compatibilità con le versioni precedenti in cui l'applicazione non imposta un caso d'uso del flusso; ANTEPRIMA per l'analisi delle immagini in tempo reale e in-app; STILL_CAPTURE per l'acquisizione di foto ancora; VIDEO_RECORD per registrare clip video; PREVIEW_VIDEO_STILL per un singolo flusso usato per il mirino, la registrazione video e ancora l'acquisizione; VIDEO_CALL per videochiamate a esecuzione prolungata

CameraCharacteristics.SCALER_AVAILABLE_STREAM_USE_CASES elenca tutti i casi d'uso del flusso supportati.

Fare riferimento alle linee guida per le combinazioni di flussi obbligatorie che coinvolgono i casi d'uso del flusso, che possono anche essere sottoposte a query tramite MandatoryStreamCombination.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

ColorSpaceProfiles 20

Il dispositivo supporta l'esecuzione di query sulle possibili combinazioni di spazi di colore, formati di immagine e profili di intervallo dinamico supportati dalla fotocamera e richiede uno spazio colore specifico per una sessione tramite SessionConfiguration.setColorSpace(Named).

Le fotocamere che abilitano questa funzionalità possono o non possono implementare anche profili di intervallo dinamico. In caso contrario, ColorSpaceProfiles.getSupportedDynamicRangeProfiles(Named, int) restituirà solo DynamicRangeProfiles.STANDARD e ColorSpaceProfiles.getSupportedColorSpacesForDynamicRange(int, long) presupporrà il supporto del profilo DynamicRangeProfiles.STANDARD in tutte le combinazioni di spazi colore e formati di immagine.

Informazioni di riferimento su Android per android.hardware.camera2.CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_COLOR_SPACE_PROFILES.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Commenti

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a