Questa pagina fornisce un elenco completo dei test di Camera Image Test Suite (ITS), che fa parte di Android Compatibility Test Suite (CTS) Verifier. I test ITS sono test funzionali, nel senso che non misurano la qualità dell'immagine, ma controllano che tutte le funzioni pubblicizzate della fotocamera funzionino come previsto. Questo documento consente agli sviluppatori e ai tester di comprendere cosa fanno i singoli test e come eseguire il debug degli errori di test.
I controlli ITS della fotocamera eseguono test in base alle proprietà richieste della fotocamera, al livello API e al livello MPC (Media Performance Class). Per il livello API, ITS utilizza ro.product.first_api_level
per controllare i test aggiunti in un livello API specifico che verificano esperienze utente negative per funzionalità nei livelli API inferiori. ITS utilizza ro.vendor.api_level
per eseguire test per funzionalità aggiunte in un livello API specifico che richiedono nuove funzionalità hardware. Se per un dispositivo è definito ro.odm.build.media_performance_class
, ITS richiede l'esecuzione di test specifici a seconda del livello MPC.
I test sono raggruppati per scena come segue:
- scene0 : cattura metadati, jitter, giroscopio, vibrazione
- scena1 : esposizione, sensibilità, compensazione EV, YUV vs JPEG/RAW
- scene2 : rilevamento dei volti, test che richiedono scene a colori o oscurità completa
- scena3 : miglioramento dei bordi, movimento dell'obiettivo
- scena4 : proporzioni, ritaglio, campo visivo
- scena5 : ombreggiatura della lente
- scena6 : zoom
- scene_extensions : estensioni della fotocamera
- sensor_fusion : offset temporale della fotocamera/giroscopio
Vedere le singole sezioni per una descrizione di ciascuna scena.
scena0
I test Scene0 non richiedono informazioni specifiche sulla scena. Tuttavia, il telefono deve essere fermo per i test del giroscopio e delle vibrazioni.
test_burst_capture
Verifica che l'intera pipeline di acquisizione possa tenere il passo con la velocità dell'acquisizione a dimensione intera e con il tempo della CPU.
API testate:
Superato: cattura una raffica di immagini a grandezza naturale e la fotocamera è sufficientemente veloce da evitare il timeout.
test_capture_result_dump
Verifica che un risultato di acquisizione venga restituito da un'acquisizione manuale e quindi lo scarica.
API testate:
Superato: completa l'acquisizione e scarica i risultati dell'acquisizione.
test_gyro_bias
Verifica se il giroscopio ha un'uscita stabile quando il dispositivo è fermo. I dati vengono tracciati come una media di 20 punti dati.
API testate:
Superato: il delta della lettura del giroscopio è inferiore a 0,01 nel tempo.
test_gyro_bias_plot.png
test_jitter
Misura il jitter nei timestamp della fotocamera.
API testate:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Passato: c'è almeno un delta di 30 ms tra i fotogrammi.
test_jitter_plot.png (Nota il piccolo intervallo dell'asse y. Il jitter è in realtà piccolo in questo grafico.)
test_metadati
Verifica la validità delle voci di metadati. Osserva i risultati dell'acquisizione e le caratteristiche degli oggetti della fotocamera. Questo test utilizza l'esposizione auto_capture_request
e i valori di guadagno perché il contenuto dell'immagine non è importante.
API testate:
-
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Superato: livello hardware, rollingShutterSkew
, tag frameDuration
, timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, FoV, distanza iperfocale sono presenti e hanno valori validi.
test_param_sensitivity_burst
Verifica che il parametro android.sensor.sensitivity
sia applicato correttamente nel burst. Esamina solo i metadati di output.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Superato: i dati di output hanno una tolleranza di errore inferiore allo 0,2%.
prova_leggi_scrivi
Verifica che il dispositivo scriva i valori di esposizione e guadagno corretti rileggendo i metadati di acquisizione.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Passaggio: i valori di lettura e scrittura corrispondono in tutti i colpi.
test_sensore_eventi
Verifica che il dispositivo esegua query e stampi gli eventi dei sensori per i dispositivi che pubblicizzano il supporto della fusione dei sensori. I sensori previsti sono accelerometro, giroscopio e magnetometro. Questo test funziona solo se lo schermo è acceso, ovvero il dispositivo non è in modalità standby.
API testate:
Superato: vengono ricevuti gli eventi per ciascun sensore.
test_solid_color_test_pattern
Verifica che i modelli di test a colori solidi vengano generati correttamente per la disattivazione dell'audio della fotocamera. Se è supportata la disattivazione dell'audio della fotocamera, devono essere supportati i modelli di prova a colori solidi. Se la disattivazione dell'audio della fotocamera non è supportata, i modelli di prova a colori solidi vengono testati solo se la funzionalità viene pubblicizzata.
Se sono supportate le immagini RAW, viene testata anche l'assegnazione dei colori. I colori testati sono nero, bianco, rosso, blu e verde. Per le fotocamere che non supportano le immagini RAW, viene testato solo il nero.
API testate:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Superato: i modelli di prova solidi supportati sono del colore corretto e la varianza nell'immagine è bassa.
test_modello_test
Testa il parametro android.sensor.testPatternMode
per acquisire fotogrammi per ogni modello di test valido e controlla che i fotogrammi siano generati correttamente per i colori solidi e le barre dei colori. Questo test include i seguenti passaggi:
- Cattura immagini per tutti i modelli di test supportati.
- Esegue un semplice controllo di correttezza per il modello di prova del colore solido e le barre di colore.
API testate:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Superato: i modelli di test supportati vengono generati correttamente.
test_test_patterns_2.jpg
test_tonemap_curve
Verifica la conversione del pattern di prova da RAW a YUV con mappatura tonale lineare. Questo test richiede android.sensor.testPatternMode = 2
(COLOR_BARS) per generare un modello di immagine perfetto per la conversione della mappa tonale. Garantisce che la pipeline abbia output di colore adeguati con mappatura dei toni lineare e input di immagine ideale (si basa su test_test_patterns
).
API testate:
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Superato: YUV e RAW sembrano simili tra loro.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
Verifica se gli eventi del sensore di immagine e di movimento si trovano nello stesso dominio temporale.
API testate:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.hardware.Sensor#TYPE_GYROSCOPE
Superato: i timestamp del movimento sono compresi tra i due timestamp dell'immagine.
test_vibrazione_restrizione
Verifica se la vibrazione del dispositivo funziona come previsto.
API testate:
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.os.Vibrator
-
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
Superato: il dispositivo non vibra quando l'audio viene disattivato dall'API di limitazione dell'audio della fotocamera.
scena 1
scene1 è un grafico grigio. Il grafico grigio deve coprire il 30% centrale del campo visivo della telecamera. Si prevede che il grafico grigio sfiderà moderatamente 3A (esposizione automatica, bilanciamento automatico del bianco, messa a fuoco automatica) poiché la regione centrale non ha caratteristiche. Tuttavia, la richiesta di acquisizione specifica l'intera scena che include funzionalità sufficienti per la convergenza di 3A.
Le telecamere RFoV possono essere testate nel WFoV o nel banco di prova RFoV. Se una telecamera RFoV viene testata nel banco di prova WFoV, il grafico viene ridimensionato di ⅔ per garantire alcuni limiti per il grafico grigio nel FoV per aiutare 3A a convergere. Per descrizioni più dettagliate dei banchi di prova delle fotocamere, vedere Camera ITS-in-a-box .
scena1: grafico a grandezza naturale (a sinistra). ⅔ grafico in scala (a destra).
prova_3a
Verifica la convergenza di 3A con un obiettivo moderatamente impegnativo.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Superato: 3A converge e i valori 3A restituiti sono validi.
test_ae_af
Testa singolarmente gli algoritmi di esposizione automatica (AE) e messa a fuoco automatica (AF) 3A.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Superato: 3A converge e i valori 3A restituiti sono legali.
test_ae_precapture_trigger
Verifica la macchina a stati AE quando si utilizza il trigger di preacquisizione. Cattura cinque richieste manuali con AE disabilitato. L'ultima richiesta ha un trigger di preacquisizione AE, che deve essere ignorato perché AE è disabilitato.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Passato: AE converge.
test_auto_vs_manual
I test che hanno effettuato scatti automatici e manuali sembrano uguali.
API testate:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Superato: i guadagni e la trasformazione del bilanciamento del bianco manuale riportati in ogni risultato di acquisizione corrispondono alla estimate
del bilanciamento del bianco automatico dall'algoritmo 3A della fotocamera.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
prova_nero_bianco
Verifica che il dispositivo produca immagini completamente in bianco e nero. Effettua due scatti, il primo con guadagno estremamente basso e esposizione breve, che dà come risultato una foto nera, e il secondo con guadagno estremamente alto e esposizione lunga, che dà come risultato una foto bianca.
API testate:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Superato: produce immagini in bianco e nero. I canali saturati delle immagini bianche hanno valori RGB di [255, 255, 255] con un margine di errore inferiore all'1% di differenza.
prova_nero_bianco_nero.jpg | prova_nero_bianco_bianco.jpg |
test_black_white_plot_means.png
test_burst_sameness_manual
Scatta 5 raffiche di 50 immagini con impostazione di acquisizione manuale e controlla che siano tutte identiche. Questo test può essere utilizzato per identificare se sono presenti frame sporadici elaborati in modo diverso o che presentano artefatti.
API testate:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Superato: le immagini sono identiche visivamente e nei valori RGB.
Fallito: mostra un picco o un calo del grafico della media RGB all'inizio di ogni burst
- La tolleranza è del 3% per
first_API_level
< 30 - La tolleranza è del 2% per
first_API_level
>= 30
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_cattura_risultato
Verifica che i dati validi ritornino negli oggetti CaptureResult
. Esegue un'acquisizione automatica, manuale e automatica.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Superato: i metadati sono validi per tutte le acquisizioni e le impostazioni manuali non vengono diffuse nella seconda acquisizione automatica. Traccia la correzione dell'ombreggiatura dell'obiettivo per le acquisizioni.
test_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
Verifica che i flussi RAW non siano ritagliabili.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Superato: le immagini YUV vengono ritagliate al centro ma non le immagini RAW.
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
Verifica il funzionamento delle regioni coltivate. Scatta un'immagine completa e crea patch di 5 regioni diverse (angoli e centro). Scatta immagini con ritaglio impostato per le 5 regioni. Confronta i valori della patch e dell'immagine ritagliata.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Superato: l'immagine della regione ritagliata corrisponde alla patch che corrisponde all'immagine ritagliata.
test_dng_noise_model
Verifica che i parametri del modello non elaborato DNG siano corretti. Il grafico illustra la varianza misurata di una zona centrale del cartoncino grigio negli scatti grezzi catturati in un intervallo di sensibilità e confronta questi valori con la varianza prevista per ciascuna sensibilità dal modello di rumore DNG nell'HAL della fotocamera (basato sul Parametri O,S restituiti negli oggetti risultato dell'acquisizione). Per maggiori dettagli sul modello di rumore DNG, scaricare il seguente documento sul modello di rumore DNG .
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Superato: i parametri del modello grezzo DNG sono corretti. I valori RGB previsti corrispondono a quelli dei valori RGB effettivi misurati.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
Verifica che venga applicata la compensazione del valore di esposizione (EV). Il test aumenta l'esposizione in otto passaggi e controlla la luminosità misurata rispetto alla luminosità prevista. I valori attesi vengono calcolati dalla luminosità dell'immagine senza compensazione EV applicata e il valore atteso si saturerà se i valori calcolati superano l'intervallo di valori dell'immagine effettiva. Il test fallisce se i valori attesi e quelli misurati non corrispondono o se le immagini sono sovraesposte entro cinque passaggi.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Superato: le immagini mostrano un'esposizione crescente senza sovraesporre entro cinque passaggi.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
Verifica che la compensazione EV venga applicata utilizzando un intervallo creato con CONTROL_AE_COMPENSATION_STEP
. Vengono catturati otto fotogrammi per ciascun valore di compensazione.
API testate:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Superato: acquisisce l'aumento di luminanza con un'impostazione di compensazione EV aumentata e gli otto fotogrammi catturati per ciascuna impostazione di compensazione EV hanno valori di luminanza stabili.
test_ev_compensation_basic.png
prova_esposizione
Verifica che venga ottenuta un'esposizione costante al variare dell'ISO e del tempo di esposizione. Effettua una serie di scatti con ISO e tempo di esposizione scelti per bilanciarsi a vicenda. I risultati dovrebbero avere la stessa luminosità, ma durante la sequenza l'immagine dovrebbe diventare più rumorosa. Verifica che i valori medi dei pixel campione siano vicini tra loro. Garantisce che le immagini non siano fissate a 0 o 1 (il che le farebbe apparire come linee piatte). Il test può essere eseguito anche con immagini RAW impostando il flag debug
nel file di configurazione.
API testate:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Superato: le immagini hanno la stessa luminosità, ma diventano più rumorose con ISO più elevati. I piani RGB sono piatti quando il valore dell'esposizione ISO* è costante nello spazio di guadagno testato.
test_exposure_plot_means.png
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
prova_jpeg
I test che hanno convertito le immagini YUV e le immagini JPEG del dispositivo sembrano uguali. Il test prende il 10% centrale dell'immagine, calcola il valore RGB e verifica che corrispondano.
API testate:
Superato: la differenza RGB media tra ciascuna immagine è inferiore al 3%.
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_latching
Verifica che le impostazioni (esposizione e guadagno) si blocchino sul fotogramma destro per le fotocamere FULL
e LEVEL_3
. Esegue una serie di scatti utilizzando richieste consecutive, variando i parametri della richiesta di acquisizione tra uno scatto e l'altro. Verifica che le immagini abbiano le proprietà previste.
API testate:
Superato: le immagini [2, 3, 6, 8, 10, 12, 13] hanno ISO o esposizione aumentati e vengono visualizzate con valori RGB più elevati su test_latching_plot_means.png
.
test_latching_i=00.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=10.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
prova_linearità
Verifica che l'elaborazione del dispositivo possa essere invertita in pixel lineari. Cattura una sequenza di scatti con il dispositivo puntato su un bersaglio uniforme.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Superato: i valori R, G, B devono aumentare linearmente con l'aumentare della sensibilità.
test_linearity_plot_means.png
test_locked_burst
Verifica il blocco 3A e il burst YUV (utilizzando l'impostazione automatica). Questo test è progettato per superare anche su dispositivi limitati che non dispongono MANUAL_SENSOR
o PER_FRAME_CONTROLS
. Il test verifica la coerenza dell'immagine YUV mentre il controllo del frame rate è in CTS.
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Superato: le acquisizioni sembrano coerenti.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_param_color_correction
Verifica che i parametri android.colorCorrection.*
vengano applicati quando impostati. Effettua riprese con valori di trasformazione e guadagno diversi e verifica che abbiano un aspetto corrispondentemente diverso. La trasformazione e i guadagni vengono scelti per rendere l'output sempre più rosso o blu. Utilizza una mappa tonale lineare. La mappatura dei toni è una tecnica utilizzata nell'elaborazione delle immagini per mappare un set di colori su un altro per approssimare l'aspetto delle immagini ad alta gamma dinamica in un mezzo che ha una gamma dinamica più limitata.
API testate:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Superato: i valori R e B aumentano in base alla trasformazione.
test_param_color_correction_plot_means.png
*L'asse x rappresenta le richieste di acquisizione: 0 = unità, 1=potenziamento rosso, 2=potenziamento blu
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (aumento R)
test_param_color_correction_req=2.jpg (aumento B)
test_param_exposure_time
Verifica che il parametro android.sensor.exposureTime
sia applicato.
API testate:
Superato: ogni scatto è più luminoso del precedente.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
test_param_flash_mode
Verifica che il parametro android.flash.mode
sia applicato. Imposta manualmente l'esposizione sul lato scuro, in modo che sia ovvio se il flash si è attivato o meno e utilizza una mappa tonale lineare. Controlla il centro con l'immagine del riquadro per vedere se è stato creato un gradiente ampio per verificare se il flash è stato attivato.
API testate:
Superato: il centro dell'immagine del riquadro ha un gradiente ampio, il che significa che il flash è stato attivato.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.jpg
test_param_flash_mode_2.jpg
test_param_flash_mode_2_tile.jpg
test_param_noise_reduction
Verifica che il parametro android.noiseReduction.mode
venga applicato correttamente quando impostato. Cattura immagini con la fotocamera scarsamente illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine catturata sia rumorosa. Cattura tre immagini, per NR disattivato, "veloce" e "alta qualità". Cattura anche un'immagine con guadagno basso e NR disattivato e utilizza la varianza di questa come linea di base. Maggiore è l'SNR (rapporto segnale/rumore), migliore è la qualità dell'immagine.
API testate:
Superato: l'SNR varia a seconda delle diverse modalità di riduzione del rumore e si comporta in modo simile al grafico seguente.
test_param_noise_reduction_plot_SNRs.png
0: SPENTO, 1: VELOCE, 2: HQ, 3: MIN, 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_sensibilità
Verifica che il parametro android.sensor.sensitivity
sia applicato. Il test aumenta la sensibilità in 5 step con esposizione fissa per ogni scatto.
API testate:
Superato: la media RGB del 10% centrale diventa più luminosa con una maggiore sensibilità.
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
test_param_shading_mode
Verifica che il parametro android.shading.mode
sia applicato.
API testate:
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Superato: le modalità di ombreggiatura vengono cambiate e le mappe di ombreggiatura dell'obiettivo vengono modificate come previsto.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
Verifica che il parametro android.tonemap.mode sia applicato. Applica diverse curve di mappatura dei toni a ciascun canale R, G, B e controlla che le immagini di output vengano modificate come previsto. Questo test è composto da due test, test1 e test2.
API testate:
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Passaggio:
- test1: entrambe le immagini hanno una mappa tonale lineare, ma n=1 ha una pendenza più ripida. Il canale G (verde) è più luminoso per l'immagine n=1.
- test2: stessa mappa tonale, ma lunghezza diversa. Le immagini sono le stesse.
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
Controlla l'aumento della sensibilità RAW successiva. Cattura una serie di immagini RAW e YUV con sensibilità diversa, pubblica la combinazione di aumento della sensibilità RAW e controlla se la media dei pixel di output corrisponde alle impostazioni richieste.
API testate:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Superato: le immagini RAW diventano più scure all'aumentare dell'aumento mentre le immagini YUV rimangono costanti in termini di luminosità
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensibilità
Cattura una serie di immagini grezze con guadagni crescenti e misura il rumore. Cattura solo raw, in una raffica.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Passaggio: ogni tiro è più rumoroso del tiro precedente, poiché il guadagno aumenta.
Utilizza la varianza della cella della griglia delle statistiche centrali.
test_raw_burst_sensitivity_variance.png
prova_esposizione_raw
Cattura una serie di immagini grezze con tempo di esposizione crescente e misura i valori dei pixel.
API testate:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Superato: aumentando l'ISO (guadagno) i pixel diventano più sensibili alla luce, quindi la trama si sposta verso sinistra.
test_raw_exposure_s=55.png
(10⁰ è 1 ms, 10¹ è 10 ms, 10⁻¹ è 0,1 ms)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensibilità
Cattura una serie di immagini grezze con sensibilità crescente e misura il rumore (varianza) nel 10% centrale dell'immagine. Verifica che ogni scatto sia più rumoroso del precedente.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Passaggio: la varianza aumenta ad ogni tiro.
test_raw_sensitivity_variance.png
test_rielaborazione_riduzione_rumore
Verifica che android.noiseReduction.mode
venga applicato per la rielaborazione delle richieste. Cattura le immagini rielaborate con la fotocamera scarsamente illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine acquisita sia rumorosa. Cattura tre immagini rielaborate, per NR disattivato, "veloce" e "alta qualità". Cattura un'immagine rielaborata con guadagno basso e NR disattivato e utilizza la varianza di questa come linea di base.
API testate:
Superato: VELOCE >= SPENTO, HQ >= VELOCE, HQ >> SPENTO
Grafico tipico SNR vs NR_MODE
test_tonemap_sequence
Testa una sequenza di riprese con diverse curve della mappatura dei toni. Cattura 3 scatti manuali con una mappa tonale lineare. Cattura 3 scatti manuali con tonemap predefinita. Calcola il delta tra ciascuna coppia di frame consecutivi.
API testate:
Superato: ci sono 3 fotogrammi identici seguiti da un set diverso di 3 fotogrammi identici.
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=1.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
Verifica che tutte le dimensioni e i formati segnalati per l'acquisizione di immagini funzionino. Utilizza una richiesta manuale con una mappa tonale lineare in modo che YUV e JPEG abbiano lo stesso aspetto quando convertiti dal modulo image_processing_utils
. Le immagini non vengono salvate per impostazione predefinita, ma possono essere salvate abilitando debug_mode
.
API testate:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Superato: tutti i centri dell'immagine hanno una differenza massima RMS (valore quadratico medio di un segnale) nelle immagini convertite RGB con il 3% dell'immagine YUV con la risoluzione più alta.
test_yuv_jpeg_all.png
test_yuv_plus_dng
Verifica che le dimensioni e i formati segnalati per l'acquisizione delle immagini funzionino.
API testate:
Superato: il test completa e restituisce le immagini richieste.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
Verifica l'acquisizione di un singolo fotogramma sia come output YUV che JPEG. Utilizza una richiesta manuale con una mappa tonale lineare in modo che YUV e JPEG abbiano lo stesso aspetto quando convertiti dal modulo image_processing_utils
.
API testate:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Passato: le immagini YUV e JPEG sono simili e presentano una differenza inferiore all'1% RMS (valore quadratico medio di un segnale).
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
Verifica l'acquisizione di un singolo fotogramma sia come output RAW/RAW10/RAW12 che YUV, se supportato. Utilizza una richiesta manuale con mappatura dei toni lineare, quindi si prevede che raw e YUV siano gli stessi. Confronta i valori RGB centrali del 10% delle immagini convertite RGB. Registra android.shading.mode
.
API testate:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW10
-
android.hardware.graphics.ImageFormat#RAW12
Passato: le immagini YUV e grezze sono simili e presentano una differenza inferiore al 3,5% RMS (valore quadratico medio di un segnale).
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
scena2_a
scene2_a ha tre volti con sfondo grigio e abiti neutri. I volti vengono scelti per avere una vasta gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto affinché il rilevamento dei volti funzioni in modo ottimale.
scena2_a
test_auto_flash
Verifica che il flash automatico venga attivato in una scena buia. Verifica che il flash automatico sia attivato controllando che il centro dell'immagine del riquadro abbia un gradiente ampio. Per attivare il flash automatico, il tablet e le luci nel banco di prova devono essere spenti. Il tablet viene spento dal test e le luci possono essere spente automaticamente con il controller Arduino. La scena deve essere completamente buia affinché il test funzioni correttamente. Pertanto, l'apertura posteriore del tablet deve essere completamente coperta dal tablet della scena, mentre l'apertura anteriore deve essere coperta da un'apertura e dal telefono DUT per impedire alla luce diffusa di entrare nell'attrezzatura.
API testate:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
Superato: il centro dell'immagine del riquadro ha un gradiente ampio, il che significa che è stato attivato il flash automatico.
test_autoframing
Verifica il comportamento dell'inquadratura automatica del dispositivo fotocamera. Esegue un ampio zoom in modo tale che nessuno dei volti nella scena sia visibile, abilita la modalità di inquadratura automatica impostando AUTOFRAMING
in CaptureRequest
su True
e verifica se tutti i volti nella scena originale possono essere rilevati quando lo stato converge (ovvero quando AUTOFRAMING_STATE
in CaptureResult
è impostato su AUTOFRAMING_STATE_CONVERGED
).
API testate:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
Superato: vengono rilevati tutti e tre i volti.
test_display_p3
Test Visualizza l'acquisizione P3 in JPEG utilizzando l'API ColorSpaceProfiles
. Verifica che il JPEG acquisito abbia un profilo ICC appropriato nell'intestazione e che l'immagine contenga colori al di fuori della gamma sRGB.
API testate:
-
android.hardware.camera2.params.ColorSpaceProfiles
-
android.hardware.camera2.params.SessionConfiguration#setColorSpace
Superato: il JPEG contiene un profilo ICC Display P3 e colori al di fuori della gamma sRGB.
test_effetti
Cattura i fotogrammi per gli effetti della fotocamera supportati e controlla se vengono generati correttamente. Il test controlla solo gli effetti OFF
e MONO
, ma salva le immagini per tutti gli effetti supportati.
API testate:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Superato: cattura l'immagine della scena con gli effetti OFF
e un'immagine monocromatica con gli effetti impostati su MONO
.
test_effects_MONO.jpg
test_format_combo
Testa diverse combinazioni di formati di output.
API testate:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
Passa: tutte le combinazioni vengono catturate con successo.
test_jpeg_qualità
Verifica la qualità di compressione JPEG della fotocamera. Passa le qualità JPEG tramite android.jpeg.quality
e garantisce che le tabelle di quantizzazione cambino correttamente.
API testate:
Superato: la matrice di quantizzazione diminuisce con l'aumento della qualità. (La matrice rappresenta il fattore di divisione.)
Medie della matrice DQT luma/chroma della fotocamera posteriore Pixel 4 rispetto alla qualità JPEG
Esempio di test fallito
Si noti che per immagini di qualità molto bassa (jpeg.quality < 50), non vi è alcun aumento della compressione nella matrice di quantizzazione.
test_num_facce
Verifica il rilevamento dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: Trova tre facce.
test_num_faces_fd_mode_1.jpg
test_preview_min_frame_rate
Verifica che la frequenza dei fotogrammi dell'anteprima diminuisca correttamente in una scena buia. Affinché questo test funzioni correttamente, le luci del banco di prova devono essere spente dal controller o manualmente dall'operatore del test.
API testate:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
-
android.media.CamcorderProfile
-
android.media.MediaRecorder
Superato: la frequenza fotogrammi dell'anteprima è al minimo dell'intervallo di frequenza fotogrammi richiesto e la variazione tra i fotogrammi è inferiore alla tolleranza assoluta impostata nel test.
test_reprocess_uv_swap
Verifica che il ritrattamento YUV non inverta i piani U e V. Ciò viene rilevato calcolando la somma delle differenze assolute (SAD) tra l'immagine rielaborata e un'acquisizione non rielaborata. Se lo scambio dei piani U e V di output della cattura rielaborata determina un aumento del SAD, si presuppone che l'output abbia i piani U e V corretti.
API testate:
-
android.hardware.camera2.CameraDevice#createCaptureSession
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Superamento: gli aerei U e V non vengono scambiati.
test_reprocess_uv_swap.png
scena2_b
test_num_facce
Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Supera: trova 3 facce.
test_num_faces_fd_mode_1.jpg
test_yuv_jpeg_capture_sameness
Cattura due immagini utilizzando i formati YUV e JPEG comuni più grandi con le stesse proporzioni del formato JPEG più grande che non supera la risoluzione di 1920x1440. Imposta jpeg.quality
su 100 e acquisisce una richiesta di doppia superficie. Converte entrambe le immagini in array RGB e calcola la differenza radice quadrata media (RMS) 3D tra le due immagini.
API testate:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
-
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
-
android.graphics.ImageFormat#JPEG
Passato: le immagini YUV e JPEG sono simili e presentano una differenza inferiore all'1% RMS (valore quadratico medio di un segnale).
scena2_c
test_num_facce
Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Supera: trova 3 facce.
test_num_faces_fd_mode_1.jpg
test_jpeg_capture_perf_class
Verifica la latenza di acquisizione JPEG per la classe di prestazioni S come specificato nella sezione 2.2.7.2 Fotocamera nel CDD.
Superato: DEVE avere una latenza di acquisizione JPEG della fotocamera2 < 1000 ms per la risoluzione 1080p misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.
test_camera_launch_perf_class
Testa la latenza di avvio della fotocamera per la classe di prestazioni S come specificato nella sezione 2.2.7.2 Fotocamera nel CDD.
Superato: DEVE avere una latenza di avvio della fotocamera 2 (fotocamera aperta al primo fotogramma di anteprima) < 600 ms, misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.
scena2_d
test_num_facce
Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Supera: trova 3 facce.
scena2_e
prova_immagine_continua
Vengono acquisiti 50 fotogrammi con risoluzione VGA impostando prima la richiesta di acquisizione android.control.afMode = 4 (CONTINUOUS_PICTURE).
API testate:
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Superato: il sistema 3A si stabilizza entro la fine di un'acquisizione di 50 fotogrammi.
test_num_facce
Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Supera: trova 3 facce.
scena2_f
scene2_f ha tre volti con uno sfondo bianco e abiti bianchi. I volti hanno un'ampia gamma di tonalità della pelle e un contrasto elevato con lo sfondo.
scena2_f
test_num_facce
Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.
API testate:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Supera: Trova 3 facce.
test_num_faces_fd_mode_1.jpg
scena3
Scene3 utilizza il grafico ISO12233 e la maggior parte dei test utilizza un metodo di estrattore grafico per trovare il grafico nella scena. Per questo motivo, la maggior parte delle immagini salvate non ha bordi come le immagini per le scene 1, 2 o 4, ma solo il grafico. Il grafico deve essere nell'orientamento corretto affinché il Finder del grafico funzioni in modo ottimale.
test_3a_consistency
Test per coerenza 3A.
API Test:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Pass: 3A converge per esposizione, guadagno, AWB (bilanciamento del bianco) e FD (distanza di messa a fuoco) tre volte all'interno della tolleranza.
test_edge_enhancement
Prova che il parametro android.edge.mode
viene applicato correttamente. Cattura le immagini non di riferimento per ciascuna modalità Edge e restituisce la nitidezza dell'immagine di output e dei metadati del risultato di acquisizione. Elabora una richiesta di acquisizione con una determinata modalità Edge, sensibilità, tempo di esposizione, distanza di messa a fuoco e parametro di superficie di uscita.
Pass: Modalità HQ
(2) più nitido della modalità OFF
(0). Modalità FAST
(1) più nitida della modalità OFF
. Modalità HQ
più nitido o uguale alla modalità FAST
.
API Test:
Parametri della fotocamera impattiti:
-
EDGE_MODE
test_edge_enhancement_edge = 0.jpg
test_edge_enhancement_edge = 1.jpg (modalità veloce)
test_edge_enhancement_edge = 2.jpg (modalità di alta qualità)
test_flip_mirror
Test se l'immagine è correttamente orientata secondo la sezione CDD 7.5.2 Camera frontale [C-1-5] .
Le immagini specchiemate, capovolte o ruotate possono essere identificate dalla caratteristica del diamante vicino al centro.
Pass: l'immagine non viene capovolta, speculata o ruotata.
test_flip_mirror_scene_patch.jpg
test_landscape_to_portrait
Prova se il paesaggio per il ritratto di sovraccarico funziona correttamente per i sensori orientati al paesaggio.
API Test:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
-
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
-
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
Pass: il test è in grado di individuare un grafico con la rotazione prevista (0 gradi quando il paesaggio per il ritratto di sovraccarico è disabilitato, 90 gradi quando abilitato).
test_landscape_to_portrait.png
test_lens_movement_reporting
Test se la bandiera del movimento dell'obiettivo è correttamente riportata. Cattura uno scoppio di 24 immagini con i primi 12 fotogrammi alla distanza ottimale di messa a fuoco (come trovato da 3A) e gli ultimi 12 frame alla distanza di messa a fuoco minima. Intorno al frame 12, l'obiettivo si muove causando la caduta della nitidezza. La nitidezza alla fine si stabilizza mentre l'obiettivo si sposta nella posizione finale. La bandiera del movimento delle lenti dovrebbe essere affermata in tutti i fotogrammi in cui la nitidezza è intermedia alla nitidezza nei primi frame con l'obiettivo stazionario a distanza focale ottimale e gli ultimi frame in cui l'obiettivo è fermo nella distanza focale minima. La cornice esatta che le mosse dell'obiettivo non è importante: ciò che viene verificato è che la bandiera del movimento viene affermata quando l'obiettivo si muove.
API Test:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Pass: la bandiera del movimento delle lenti è True
nella cornice con la nitidezza cambia.
Meccanismi di fallimento:
-
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) intest_log.DEBUG
viene affermato solo in frame in cui la nitidezza non cambia. - Frame con
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) intest_log.DEBUG
ha una differenza di nitidezza rispetto ai primi frame a distanza focale ottimale o agli ultimi frame alla distanza minima di messa a fuoco.
test_reprocess_edge_enhancement
Test se i metodi di ritrattamento supportati per il miglioramento dei bordi funzionano correttamente. Elabora una richiesta di acquisizione con una determinata modalità di ritrattamento e confronta le diverse modalità da acquisire con le modalità Edge di ritrattamento disabilitate.
API Test:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Pass: la nitidezza per le diverse modalità del bordo è corretta. HQ
(Modalità 2) è più nitido di OFF
(Modalità 0) e il miglioramento tra le diverse modalità è simile.
test_reprocess_edge_enhancement_plot.png
scena4
La scena4 è costituita da un cerchio nero su uno sfondo bianco all'interno di un quadrato.
scena4
test_aspect_ratio_and_crop
Test Se le immagini sono distorte o ritagliate inaspettatamente nella pipeline dell'immagine. Scatta foto di un cerchio su tutti i formati. Verifica che il cerchio non sia distorto, il cerchio non si sposta dal centro dell'immagine e il cerchio non cambia dimensioni in modo errato con rapporti o risoluzioni di aspetti diversi.
API Test:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Pass: le immagini non sono allungate, il centro delle immagini non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.
Meccanismi di fallimento:
- Il cerchio nell'immagine catturata è distorto dalla pipeline di elaborazione.
- L'immagine di risoluzione inferiore viene ritagliata doppia nella pipeline dell'immagine creando diverse immagini tra le immagini ad alta e bassa risoluzione.
- Il cerchio nell'immagine catturata viene ritagliato a causa di una richiesta di acquisizione di proporzioni estrema che riduce l'altezza o la larghezza dell'immagine.
- Il cerchio nell'immagine catturata ha un riflesso al centro e non sembra completamente riempito.
test_multi_camera_alignment
Prova i parametri di calibrazione della fotocamera relativi al posizionamento della fotocamera per i sistemi multi-fotocamera. Usando le sub-cameras fisiche multi-fotocamera, scatta una foto con una delle telecamere fisiche. Trova il Circle Center. Proietta il Circle Center al mondo coordinate per ogni fotocamera. Confronta la differenza tra i centri circolari delle telecamere nelle coordinate mondiali. Riproietta la coordinata mondiale alle coordinate dei pixel e si confronta con gli originali come controllo di validità. Confronta il controllo delle dimensioni del cerchio se le lunghezze focali delle telecamere sono diverse.
API Test:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Pass: i centri e le dimensioni del circolo sono come previsto nelle immagini proiettate rispetto alle immagini acquisite utilizzando i dati di calibrazione della fotocamera e le lunghezze focali.
Meccanismi di fallimento:
-
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
oLENS_POSE_ROTATION
sono valori di progettazione e non dati di calibrazione effettivi. - Il sistema della fotocamera non è appropriato per l'impostazione del test. Ad esempio, testare un sistema di telecamere ampio e ultra largo con il rig RFOV. Per ulteriori informazioni, consultare la fotocamera ITS-in-a-box FAQ1 .
test_preview_aspect_ratio_and_crop
Simile al test test_aspect_ratio_and_crop per le catture ancora Verifica che le proporzioni del cerchio non cambiano, le immagini ritagliate mantengono il cerchio al centro del telaio e la dimensione del cerchio non cambia per un formato costante o con risoluzioni diverse (controllo del campo di vista).
API Test:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
Pass: le immagini non sono allungate, il centro delle immagini non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.
test_preview_stabilization_fov
Controlla le dimensioni di anteprima supportate per garantire che il FOV venga ritagliato in modo appropriato. Il test cattura due video, uno con la stabilizzazione ON
anteprima e un altro con la stabilizzazione OFF
anteprima. Un frame rappresentativo viene selezionato da ciascun video e analizzato per garantire che il FOV cambia nei due video sia all'interno delle specifiche.
API Test:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
Pass: il rapporto del cerchio rimane quasi costante, la posizione centrale del cerchio rimane stabile e la dimensione del cerchio non cambia più quel 20%.
test_video_aspect_ratio_and_crop
Prende video di un cerchio all'interno di un quadrato su tutti i formati video. Estrai i fotogrammi chiave e verifica che le proporzioni del cerchio non cambiano, le immagini ritagliate mantengono il cerchio al centro e la dimensione del cerchio non cambia per un formato costante o con una risoluzione diversa (controllo del campo di vista).
API Test:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
Pass: i fotogrammi video non sono allungati, il centro delle cornici non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.
scena5
La scena5 richiede una scena grigia uniformemente illuminata. Ciò è realizzato da un diffusore posizionato sopra l'obiettivo della fotocamera. Raccomandiamo il seguente diffusore: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
Per preparare la scena, attaccare un diffusore davanti alla fotocamera e puntare la fotocamera a una fonte di illuminazione di circa 2000 Lux. Le immagini catturate per scene5 richiedono un'illuminazione diffusa senza caratteristiche evidenti. Quella che segue è un'immagine di esempio:
Scene5 Capture
test_lens_shading_and_color_uniformity
Prove che la correzione dell'ombreggiatura dell'obiettivo viene applicata in modo appropriato e il colore di una scena uniforme monocromatica è distribuito uniformemente. Esegue questo test su una cornice YUV con Auto 3A. L'ombreggiatura delle lenti viene valutata in base al canale Y. Misura il valore Y medio per ciascun blocco campione specificato e determina il passaggio o il fallimento confrontando con il valore centrale Y. Il test dell'uniformità del colore viene valutato nello spazio R/G e B/G.
API Test:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Pass: al raggio specificato dell'immagine, la varianza del valore R/G e B/G deve essere inferiore al 20% per superare il test.
Scene6
Scene6 è una griglia di piccoli cerchi con un quadrato in un angolo per indicare l'orientamento. I piccoli cerchi sono necessari per testare la funzione di zoom su una vasta gamma.
Scene6
test_in_sensor_zoom
Prova il comportamento della funzione di zoom in sensore della fotocamera, che produce immagini grezze ritagliate.
Con il caso di utilizzo del flusso impostato su CROPPED_RAW
, il test prende due catture sulla gamma di zoom, un'immagine grezza Full Field of View (FOV) e un'immagine grezza ritagliata. Il test converte le immagini in array RGB, riduce l'immagine grezza di dimensioni standard alle dimensioni riportate da SCALER_RAW_CROP_REGION
e calcola la differenza quadrata media della radice 3D (RMS) tra le due immagini.
API Test:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
Pass: la differenza quadrata media della radice 3D (RMS) tra l'immagine grezza a corto abbattuta e l'immagine RAW FOV completa è inferiore all'1%.
test_zoom
Prova il comportamento dello zoom della fotocamera. Prende le catture sulla gamma di zoom e controlla se i cerchi diventano più grandi man mano che la fotocamera si ingrandisce.
API Test:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Pass: la dimensione relativa del cerchio catturato è accurata rispetto al rapporto zoom richiesto per garantire che la fotocamera stia zooming correttamente.
test_zoom per trovare il contorno del cerchio più vicino al centro.
test_low_latency_zoom
Prova il comportamento dello zoom della latenza a bassa latenza della fotocamera. Prende le catture sull'intervallo di zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
e controlla se i cerchi nelle immagini di output corrispondono ai rapporti zoom nei metadati di acquisizione.
API Test:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
Pass: la dimensione relativa del cerchio catturato è accurata rispetto ai metadati del risultato del rapporto zoom.
test_preview_video_zoom_match
Prova che durante la registrazione e lo zoom, l'anteprima video e la visualizzazione dell'output video e registra lo stesso output. Calcola la dimensione del cerchio più vicino al centro a diversi rapporti di zoom e controlla se la dimensione del cerchio aumenta all'aumentare del rapporto zoom.
API Test:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Pass: la dimensione relativa del cerchio catturato è accurata rispetto al rapporto zoom richiesto in video e anteprima.
VGA_640X480_KEY_FRAME.PNG (prima di zoom)
Anteprima_640x480_key_frame.png (prima di zoom)
VGA_640X480_KEY_FRAME.PNG (dopo lo zoom)
Anteprima_640x480_key_frame.png (dopo zoom)
scene_extensions
I test scene_extensions
sono per le estensioni della fotocamera e devono utilizzare la fotocamera in una scatola , poiché richiedono un controllo preciso dell'ambiente di test.
scene_hdr
La scena scene_hdr
è costituita da un ritratto a sinistra e un codice QR a basso contrasto sulla destra.
scene_hdr
test_hdr_extension
Prova l' estensione HDR . Prende le catture con e senza l'estensione abilitata e controlla se l'estensione rende il codice QR più rilevabile.
API Test:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
Pass: l'estensione HDR riduce il numero di modifiche al contrasto necessarie per rilevare il codice QR o ridurre il gradiente attraverso il codice QR.
scene_night
La scena scene_night
è costituita da un cerchio bianco con quattro cerchi più piccoli al suo interno, il tutto su uno sfondo nero. Il cerchio più piccolo nell'angolo in alto a destra è più scuro degli altri per indicare l'orientamento.
scene_night
test_night_extension
Prova l' estensione notturna . Prende le catture con e senza l'estensione abilitata e controlla quanto segue:
- La cattura con l'estensione notturna abilitata richiede più tempo.
- La cattura con l'estensione notturna abilitata è più luminosa o ha artefatti di scena con un aspetto migliorato.
API Test:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
Pass: rispetto a una cattura senza l'estensione notturna abilitata, una cattura con l'estensione notturna abilitata richiede almeno 0,5 secondi in più. La cattura deve essere almeno al 10% più luminosa, oppure i punti grigi nella scena devono essere di 20 valori di pixel inferiori al centro del cerchio circostante.
sensor_fusion
I test di fusione del sensore richiedono un movimento del telefono specifico davanti a uno schema a scacchiera. Per risultati ottimali, assicurarsi che il grafico di prova sia montato in piano. I grafici che non sono piatti influenzano i calcoli di rotazione per molti test. I test sensor_fusion
possono essere automatizzati con la casella di fusione del sensore .
Immagine della scacchiera
test_multi_camera_frame_sync
Test che i timestamp del frame catturati dalla telecamera logica sono entro 10 ms calcolando gli angoli di quadrati all'interno della scacchiera per determinare il timestamp.
API Test:
-
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Pass: l'angolo tra le immagini di ciascuna fotocamera non cambia in modo sensibile poiché il telefono viene ruotato.
test_preview_stabilization
Test che si stabilizzano il video di anteprima ruota inferiore al giroscopio.
API Test:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
Pass: la rotazione dell'angolo massimo sui frame è inferiore al 70% della rotazione del giroscopio.
Di seguito sono riportati video di esempio con e senza stabilizzazione.
Video di esempio con stabilizzazione
Video di esempio senza stabilizzazione
test_sensor_fusion
Vesta la differenza di timestamp tra la fotocamera e il giroscopio per le applicazioni AR e VR. Il telefono viene ruotato di 90 gradi 10 volte davanti al motivo a scacchiera. Il movimento è di circa 2 s di andata e ritorno. Questo test viene saltato se non è incluso nessun giroscopio o se il parametro REALTIME
della sorgente timestamp non è abilitato.
Il test test_sensor_fusion
genera un numero di grafici. Le due trame più importanti per il debug sono:
test_sensor_fusion_gyro_events
: mostra gli eventi del giroscopio per il telefono durante il test. Il movimento nella direzione X e Y implica che il telefono non è montato in modo sicuro sulla piastra di montaggio, riducendo la probabilità del passaggio del test. Il numero di cicli nella trama dipende dalla velocità di scrittura per salvare i frame.test_sensor_fusion_gyro_events
test_sensor_fusion_plot_rotations
: mostra l'allineamento degli eventi del giroscopio e della fotocamera. Questo diagramma deve mostrare il movimento di abbinamento tra fotocamera e giroscopio a +/- 1 ms.test_sensor_fusion_plot_rotations
API Test:
-
android.hardware.camera2.CameraCharacteristics#LENS_FACING
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Pass: l'offset dei timestamp della telecamera e del giroscopio è inferiore a 1 ms secondo i sensori di alta fedeltà CDD 7.3.9 [C-2-14] .
Meccanismi di fallimento:
- Errore di offset: l'offset della fotocamera-gyroscopio non è correttamente calibrato in +/- 1 ms.
- Dropili: la pipeline non è abbastanza veloce da catturare 200 frame consecutivamente.
- Errori della presa:
adb
non può connettersi in modo affidabile al DUT abbastanza a lungo da eseguire il test. - Il grafico non è montato in piano. Il trama
test_sensor_fusion_plot_rotations
ha frame in cui il giroscopio e la rotazione della telecamera variano considerevolmente quando la fotocamera ruota attraverso le parti del grafico che non sono piatte. - La fotocamera non è montata in piano. Il trama
test_sensor_fusion_gyro_events
mostra il movimento nei piani X e Y. Questo fallimento è più comune nelle telecamere frontali poiché la fotocamera posteriore ha spesso un bump sollevato sul resto del corpo del telefono, creando un'inclinazione durante il montaggio della parte posteriore del telefono sulla piastra di montaggio.
test_video_stabilization
Test che si stabilizzano video ruota meno del giroscopio.
API Test:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
Pass: la rotazione dell'angolo massimo sui frame è inferiore al 60% della rotazione del giroscopio.
Di seguito sono riportati video di esempio con e senza stabilizzazione.
Video di esempio con stabilizzazione
Video di esempio senza stabilizzazione
test_led_snapshot
Prova che le snapshot a LED non saturi o tint l'immagine.
Questo test aggiunge un controller di illuminazione alla scatola di fusione del sensore per controllare le luci. Con le luci impostate su OFF
, il test accetta una cattura con la modalità AUTO_FLASH
impostata su ON
. Durante questa acquisizione, il test esegue una sequenza di precapt con il trigger aePrecapture
set per START
e imposta l'intenzione di acquisizione per Preview
per prendere l'acquisizione con Flash.
Poiché l'acquisizione ha un hotspot distintivo dovuto al flash, il test calcola la media dell'immagine flash dell'intera cattura e verifica se il valore è all'interno dell'intervallo (68, 102). Per verificare se l'immagine è ragionevolmente bilanciata, il test calcola i rapporti R/G e B/G e verifica se i rapporti sono entro 0,95 e 1,05.
API Test:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
Pass: i rapporti R/G e B/G sono entro 0,95 e 1,05. La media dell'immagine flash rientra nell'intervallo (68, 102).