Questa pagina fornisce un elenco completo dei test effettuati nella Camera Image Test Suite (ITS), che fa parte dello strumento Android Compatibility Test Suite (CTS). I test ITS sono test funzionali, ovvero non misurano la qualità delle immagini, ma che tutte le funzioni della fotocamera pubblicizzate funzionano come previsto. Questo documento consente a sviluppatori e tester di capire cosa fanno i singoli test e come eseguirne il debug.
L'ITS della videocamera effettua i test in base a proprietà della videocamera, livello API e
classe di prestazioni multimediali (MPC) obbligatori. A livello di API, ITS utilizza
ro.product.first_api_level
per limitare i test aggiunti in uno specifico livello API che
testano esperienze utente negative per la funzionalità nei livelli API inferiori. ITS
utilizza ro.vendor.api_level
per limitare i test per le funzionalità aggiunte in uno specifico livello
API che richiedono nuove funzionalità hardware. Se
ro.odm.build.media_performance_class
è definito per un dispositivo, ITS richiede l'esecuzione di test specifici in base al livello di MPC.
I test vengono raggruppati per scena nel seguente modo:
- scene0: acquisizione metadati, tremolio, giroscopio, vibrazione
- scena 1: esposizione, sensibilità, compensazione EV, YUV rispetto a JPEG/RAW
- scene2: rilevamento facciale, test che richiedono scene a colori o oscurità completa
- scene3: miglioramento dei bordi, movimento dell'obiettivo
- scene4: proporzioni, ritaglio, campo visivo
- scene5: Ombreggiamento obiettivo
- scene6: Zoom
- scene_extensions: estensioni per la fotocamera
- sensor_fusion: offset di sincronizzazione fotocamera/giroscopio
Visualizza le singole sezioni per una descrizione di ciascuna scena.
scena0
I test Scene0 non richiedono informazioni specifiche sulla scena. Tuttavia, lo smartphone deve essere fermo per eseguire il test del giroscopio e della vibrazione.
acquisizione_burst_test
Verifica che l'intera pipeline di acquisizione sia in grado di stare al passo con la velocità dell'acquisizione a grandezza originale e del tempo di CPU.
API testate:
Superato: acquisisce una serie di immagini a grandezza originale e la fotocamera è abbastanza veloce da evitare il timeout.
test_capture_result_dump
Verifica che un risultato dell'acquisizione venga restituito da un'acquisizione manuale e poi ne esegue il dump.
API testate:
Superata: completa l'acquisizione ed esegue il dump dei risultati dell'acquisizione.
test_gyro_bias
Verifica se il giroscopio ha un output stabile quando il dispositivo è fermo. I dati vengono tracciati come una media di 20 punti dati.
API testate:
Superata: il delta della lettura del giroscopio è inferiore a 0,01 nel tempo.
test_gyro_bias_plot.png
tremolio_di_prova
Misura il jitter nei timestamp della videocamera.
API testate:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Superata: c'è un delta di almeno 30 ms tra i frame.
test_jitter_plot.png (nota l'intervallo piccolo dell'asse Y. Il tremolio in realtà è minimo in questo grafico.)
metadati_test
Verifica la validità delle voci dei metadati. Guarda i risultati delle riprese e gli oggetti
delle caratteristiche della fotocamera. Questo test utilizza un'esposizione pari a auto_capture_request
e 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
Superata: sono presenti livello hardware, rollingShutterSkew
, tag frameDuration
,
timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, FoV,
distanza iperfocale.
Parametro_test_sensitivity_burst
Verifica che il parametro android.sensor.sensitivity
venga applicato correttamente durante il burst. Controlla 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%.
lettura_test_scrittura
Verifica che il dispositivo scriva l'esposizione e i valori 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
Superato: i valori vengono letti e scritti in modo da corrispondere a tutti gli scatti.
eventi_sensore_test
Testa le query del dispositivo e stampa gli eventi dei sensori per i dispositivi che pubblicizzano il supporto di Sensor Fusion. I sensori previsti sono l'accelerometro, il giroscopio e il magnetometro. Questo test funziona solo se lo schermo è acceso, il che significa che il dispositivo non è in modalità standby.
API testate:
Superato: vengono ricevuti gli eventi per ciascun sensore.
test_color_solid_test_pattern
Verifica che i pattern di test a tinta unita vengano generati correttamente per la disattivazione dell'audio della videocamera. Se la disattivazione dell'audio della videocamera è supportata, devono essere supportati i motivi di test dei colori a tinta unita. Se la disattivazione dell'audio della videocamera non è supportata, i pattern di test dei colori solidi vengono testati solo se la funzionalità è pubblicizzata.
Se sono supportate le immagini RAW, viene verificata 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 pattern di test solidi supportati sono del colore corretto e presentano una bassa varianza nell'immagine.
pattern_test_test
Testa il parametro android.sensor.testPatternMode
per acquisire i frame per ogni
pattern di test valido e controlla che i frame siano generati correttamente per
colori in tinta unita e barre colorate. Questo test prevede i seguenti passaggi:
- Acquisisce le immagini per tutti i pattern di test supportati.
- Esegue un semplice controllo di correttezza per il pattern di test in tinta unita e per le barre colorate.
API testate:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Superato: i pattern di test supportati sono generati correttamente.
test_test_pattern_2.jpg
test_curva_tonomap
Verifica la conversione del pattern di test da RAW a YUV con una mappa tonale lineare. Questo test
richiede android.sensor.testPatternMode = 2
(COLOR_BARS) per generare un pattern di immagine
perfetto per la conversione delle mappe tonali. Garantisce che la pipeline abbia output colore appropriati
con una mappa tono lineare e un 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: i formati YUV e RAW sono simili tra loro.
test_tono_curva_raw_2.jpg
test_tono_curva_yuv_2.jpg
timestamp_test_unified
Verifica se gli eventi dei sensori 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
Superata: i timestamp del movimento sono compresi tra i due timestamp dell'immagine.
limitazione_vibrazione_di_prova
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 della fotocamera è disattivato dall'API Camera Audio Restrizione.
scena1
scene1 è un grafico grigio. Il grafico grigio deve coprire il 30% centrale del campo visivo della videocamera. Il grafico grigio dovrebbe presentare problemi di 3A (esposizione automatica, bilanciamento automatico del bianco, messa a fuoco automatica) in maniera moderata, poiché la regione centrale non ha funzionalità. Tuttavia, la richiesta di acquisizione specifica l'intera scena, che include funzionalità sufficienti per la convergenza di 3A.
Le videocamere RFoV possono essere testate nel banco di prova WFoV o RFoV. Se una videocamera RFoV viene testata nel banco di prova WFoV, il grafico viene scalato di 2⁄3 per garantire che alcuni limiti per il grafico grigio nel FoV favoriscano la convergenza di 3A. Per una descrizione più dettagliata dei supporti di test per le videocamere, consulta Videocamera ITS in una scatola.
scene1: grafico a grandezza originale (a sinistra). Grafico in scala di 2⁄3 (a destra).
prova_3a
Testa la convergenza di 3A con un target moderatamente difficile.
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.
prova_ae_af
Consente di testare 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: il valore 3A converge e i valori 3A restituiti sono legali.
test_ae_precapture_trigger
Testa la macchina a stato AE quando si utilizza l'attivatore di preacquisizione. Acquisisce cinque richieste manuali con AE disabilitato. L'ultima richiesta ha un attivatore di preacquisizione AE, che va ignorato perché questo attivatore è 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
Superato: l'AE converge.
test_automatico_o_manuale
I test che hanno acquisito gli scatti automatici e manuali hanno lo stesso aspetto.
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: l'aumento manuale del bilanciamento del bianco e la trasformazione riportati in ogni risultato di acquisizione corrispondono
al bilanciamento automatico del bianco estimate
dall'algoritmo 3A della fotocamera.
test_auto_vs_manuale_auto.jpg
test_auto_vs_manuale_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
bianco_di_prova
Verifica che il dispositivo produca immagini complete in bianco e nero. Acquisisce due acquisizioni: la prima con guadagno estremamente basso ed esposizione breve, che genera una foto in nero, la seconda con guadagno ed esposizione lunga estremamente alti, che genera 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 saturi di immagini bianche hanno valori RGB di [255, 255, 255] con un margine di errore inferiore all'1%.
prova_nero_bianco_nero.jpg | bianco_nero_di_prova.jpg |
traccia_means_nero_bianco_test.png
burst_test_stesso_manuale
Acquisisce 5 serie 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 con artefatti.
API testate:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Superata: le immagini sono visivamente identiche e nei valori RGB.
Errore: 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
media_manuale_stesso_test_burst.jpg
test_burst_sameness_manual_plot_means.png
risultato_acquisizione_test
Verifica che dati validi vengano restituiti in CaptureResult
oggetti. Consente l'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
Superata: i metadati sono validi per tutte le acquisizioni e le impostazioni manuali non influiscono nella seconda acquisizione automatica. Traccia la correzione dell'ombreggiatura dell'obiettivo per le acquisizioni.
test_capture_result_plot_lsc_auto_ch0.png
regione_crop_test_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 quelle RAW.
prova_crop_regione_raw_comp_raw_crop.jpg
prova_crop_region_raw_comp_raw_full.jpg
prova_crop_regione_raw_comp_yuv_crop.jpg
prova_crop_region_raw_yuv_full.jpg
regioni_crop_test
I test che consentono di ritagliare le regioni funzionano. Acquisisce un'immagine completa e crea patch di 5 regioni diverse (angolari e centro). Scatta immagini con il 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
Superata: l'immagine dell'area ritagliata corrisponde alla patch corrispondente all'immagine ritagliata.
Modello_dng_noise_prova
Verifica che i parametri del modello non elaborato DNG siano corretti. Il grafico mostra la varianza misurata di un'area centrale della scheda grigia in scatti non elaborati acquisiti in un intervallo di sensibilità e confronta questi valori con la varianza prevista a ogni sensibilità dal modello di rumore DNG nell'HAL della fotocamera (in base ai parametri O,S restituiti negli oggetti dei risultati dell'acquisizione). Per ulteriori dettagli sul modello di rumore DNG, scarica 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 non elaborato DNG sono corretti. I valori RGB previsti corrispondono a quelli effettivamente misurati.
test_dng_noise_model_plog.png
prova_compensazione_avanzata
Verifica che venga applicata la compensazione del valore di esposizione (EV). Il test aumenta l'esposizione in otto passaggi e verifica la luminosità misurata rispetto alla luminosità prevista. I valori previsti vengono calcolati in base alla luminosità dell'immagine dell'immagine senza alcuna compensazione EV applicata e il valore previsto si satura se i valori calcolati superano l'intervallo effettivo di valori dell'immagine. Il test ha esito negativo se i valori previsti e i valori misurati non corrispondono o se le immagini si sovraespongono in 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 aumento dell'esposizione senza sovraesposizione nel giro di cinque passaggi.
test_ev_compensation_advanced_plot_means.png
prova_compensazione_ev_base
Testa che la compensazione EV viene applicata utilizzando un'autonomia creata con
CONTROL_AE_COMPENSATION_STEP
. A ogni valore di compensazione vengono
acquisiti otto frame.
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 della luminanza con un'impostazione di compensazione EV maggiore e gli otto fotogrammi acquisiti per ciascuna impostazione di compensazione EV hanno valori di luminanza stabili.
test_compensazione_base.png
esposizione_test
Testa l'ottenimento di un'esposizione costante dal momento che l'ISO e il tempo di esposizione variano. Scatta una serie di scatti in cui ISO e tempo di esposizione sono stati scelti in modo bilanciato.
I risultati dovrebbero avere la stessa luminosità, ma nella sequenza l'immagine dovrebbe
diventare più rumorosa. Verifica che i valori medi dei pixel di esempio siano vicini tra loro. Garantisce
che le immagini non siano bloccate su 0 o 1 (che le renderebbero
simili a linee piatte). Il test può essere eseguito anche con le 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 sullo spazio di guadagno testato.
test_exposure_plot_means.png
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
test_jpeg
I test in cui le immagini YUV convertite e le immagini JPEG del dispositivo hanno lo stesso aspetto. Il test prende il 10% al centro dell'immagine, calcola il valore RGB e verifica che corrisponda.
API testate:
Superata: la differenza media di RGB tra le immagini è inferiore al 3%.
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
blocco_test
Verifica che le impostazioni (esposizione e guadagno) si blocchino sul frame corretto per le videocamere FULL
e
LEVEL_3
. Effettua una serie di scatti utilizzando richieste in sequenza, variando i parametri della richiesta di acquisizione tra le immagini. Controlla che le immagini abbiano le proprietà previste.
API testate:
Superata: le immagini [2, 3, 6, 8, 10, 12, 13] hanno un valore ISO o un'esposizione maggiore e vengono visualizzate con mezzi 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 |
cuscinetti_trama_test_latching.png
linearità_test
Verifica che l'elaborazione del dispositivo possa essere invertita in pixel lineari. Acquisisce una sequenza di scatti con il dispositivo rivolto verso 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 in modo lineare con una sensibilità maggiore.
test_linearity_plot_means.png
raffica_test_bloccata
Testa il blocco da 3 A e la funzione raffica YUV (utilizzando l'impostazione automatica). Questo test è progettato per essere superato anche su dispositivi limitati che non dispongono di MANUAL_SENSOR
o PER_FRAME_CONTROLS
.
Il test controlla la coerenza dell'immagine YUV mentre il controllo della frequenza fotogrammi è in CTS.
API testate:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Superata: le acquisizioni sembrano coerenti.
frame_burst_bloccato_test0.jpg
frame_burst_test_bloccato1.jpg
frame_burst_test_bloccato2.jpg
test_param_color_Correction
Verifica che i parametri android.colorCorrection.*
vengano applicati quando impostati.
Scatta foto con valori di trasformazione e guadagno diversi, quindi testa i valori corrispondenti. La trasformazione e i guadagni vengono scelti
per rendere l'output sempre più rosso o blu. Utilizza una mappa tono lineare. La mappatura dei toni è una tecnica utilizzata nell'elaborazione delle immagini per mappare un set di colori a un altro in modo da approssimare l'aspetto di 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 di R e B aumentano in base alla trasformazione.
test_param_color_Correction_plot_means.png
*Asse x sono le richieste di acquisizione: 0 = unità, 1=boost rosso, 2= boost blu
test_param_color_Correction_req=0.jpg
test_param_color_troubleshoot_req=1.jpg (incremento R)
test_param_color_troubleshoot_req=2.jpg (incremento B)
Parametro_test_exposure_time
Verifica che il parametro android.sensor.exposureTime
venga applicato.
API testate:
Superato: ogni scatto è più luminoso rispetto alla precedente.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
parametro_test_modalità_flash
Verifica che il parametro android.flash.mode
venga applicato. Imposta manualmente
l'esposizione in modo che sia sul lato oscuro, in modo che sia evidente se il flash sia stato attivato
o meno, e utilizza una mappa tonale lineare. Controlla il centro con l'immagine del riquadro per vedere
se è stato creato un gradiente di grandi dimensioni per verificare se il flash si è attivato.
API testate:
Superato: al centro dell'immagine del riquadro è presente un'ampia sfumatura che indica che il flash si è 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
param_test_riduzione_del_noise
Verifica che il parametro android.noiseReduction.mode
venga applicato correttamente
se impostato. Acquisisce le immagini con la fotocamera poco illuminata. Utilizza un guadagno analogico elevato per
garantire che l'immagine acquisita sia rumorosa. Acquisisce tre immagini, per NR disattivato, "rapido"
e "alta qualità". Acquisisci anche un'immagine con guadagno basso e NR disattivati e utilizza
la varianza come riferimento. Maggiore è il rapporto SNR (Segnale e rumore), migliore sarà la qualità dell'immagine.
API testate:
Superato: l'SNR varia con diverse modalità di riduzione del rumore e si comporta in modo simile al grafico seguente.
test_param_noise_reduct_plot_SNRs.png
0: OFF, 1: VELOCE, 2: HQ, 3: MIN , 4: ZSL
test_param_noise_reduct_high_gain_nr=0.jpg
test_param_noise_reduct_high_gain_nr=1.jpg
test_param_noise_reduct_high_gain_nr=2.jpg
test_param_noise_relation_high_gain_nr=3.jpg
test_param_riduzione_del_noise_low_gain.jpg
parametro_sensibilità_test
Verifica che il parametro android.sensor.sensitivity
venga applicato. Il test
aumenta la sensibilità di 5 passaggi con esposizione fissa per ogni scatto.
API testate:
Superato: la media RGB del 10% al centro 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
modalità_shading_param_test
Verifica che il parametro android.shading.mode
venga 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 venga applicato il parametro android.tonemap.mode. Applica curve della mappa tonale diverse a ciascun canale R, G e B e controlla che le immagini di output vengano modificate come previsto. Questo test prevede 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
Superamento:
- test1: entrambe le immagini hanno una mappa tonale lineare, ma n=1 ha un gradiente più ripido. Il canale G (verde) è più luminoso per l'immagine n=1.
- test2: stessa mappa tonali, ma di lunghezza diversa. Le immagini sono le stesse.
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
aumento_sensibilità_post_raw_test
Controlla dopo l'incremento della sensibilità RAW. Acquisisce un insieme 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 della richiesta.
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 man mano che aumenta il miglioramento, mentre le immagini YUV rimangono costanti in 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
post_raw_sensitivity_boost_yuv_plot_means.png
sensibilità_burst_test_raw
Acquisisce una serie di immagini RAW con guadagni crescenti e misura il rumore. Acquisisce solo dati non elaborati, a 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
Superato: ogni scatto è più rumoroso rispetto a quello precedente, in quanto il guadagno aumenta.
Utilizza la varianza della cella della griglia delle statistiche centrale.
test_raw_burst_sensitivity_variance.png
esposizione_grezzo_test
Acquisisce un insieme di immagini raw con tempo di esposizione crescente e misura i valori in pixel.
API testate:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Superata: l'aumento dell'ISO (guadagno) rende i pixel più sensibili alla luce, quindi il grafico si sposta verso sinistra.
test_raw_exposure_s=55.png
(100 è 1 ms, 101 è 10 ms, 10−1 è 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
sensibilità_raw_test
Acquisisce un insieme di immagini non elaborate con sensibilità crescenti e misura il rumore (varianza) al centro dell'immagine al 10%. Verifica che ogni ripresa sia più rumorosa di quella 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
Superato: la varianza aumenta a ogni colpo.
varietà_raw_sensitivity_variance.png
rielaborare_test_riduzione_del_rumore
Verifica che android.noiseReduction.mode
venga applicato per le richieste di rielaborazione.
Acquisisce immagini rielaborate con la fotocamera soffusa. Utilizza un guadagno analogico elevato
per garantire che l'immagine acquisita sia rumorosa. Acquisisce tre immagini rielaborate, per disattivare
NR, "rapido" e "alta qualità". Acquisisce un'immagine rielaborata con guadagno basso e NR disattivati e utilizza la varianza di questa impostazione come riferimento.
API testate:
Superato: VELOCE >= OFF, Alta qualità >= VELOCE, Alta qualità >> OFF
Grafico tipico tra SNR e NR_MODE
sequenza_mappa_tonale_prova
Testa una sequenza di scatti con diverse curve della mappa tonale. Acquisisce 3 scatti manuali con una mappa dei toni lineare. Acquisisce 3 scatti manuali con la mappa tono predefinita. Calcola il delta tra ogni coppia di frame consecutivi.
API testate:
Superato: ci sono 3 frame identici seguiti da un diverso set di 3 frame 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_tutto
Verifica che tutte le dimensioni e tutti i formati segnalati per l'acquisizione delle immagini funzionino. Utilizza una richiesta manuale con una mappa tono lineare in modo che i valori YUV e JPEG abbiano lo stesso aspetto quando vengono convertiti dal modulo image_processing_utils
. Le immagini non vengono salvate per
impostazione predefinita, ma possono essere salvate attivando debug_mode
.
API testate:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Superata: tutti i centri immagine hanno una differenza RMS massima (valore quadratico medio di un segnale) nelle immagini convertite in RGB con il 3% dell'immagine YUV con la massima risoluzione.
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
Testa l'acquisizione di un singolo frame come output YUV e JPEG. Utilizza una richiesta manuale con una mappa tono lineare in modo che i valori YUV e JPEG abbiano lo stesso aspetto quando vengono convertiti dal modulo image_processing_utils
.
API testate:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Superato: le immagini YUV e JPEG sono simili e hanno una differenza RMS inferiore all'1% (valore quadratico medio di un segnale).
prova_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
prova_yuv_plus_raw
Testa l'acquisizione di un singolo fotogramma in formato RAW/RAW10/RAW12 e YUV, se
supportata. Utilizza una richiesta
manuale con mappa tono lineare, in modo che non elaborati e YUV siano gli stessi. Confronta i valori RGB al 10% del centro delle immagini convertite in RGB. Logandroid.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
Superato: le immagini YUV e RAW sono simili e hanno una differenza RMS inferiore al 3,5% (valore quadratico medio di un segnale).
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
scena2_a
scena2_a ha tre volti con uno sfondo grigio e abiti neutri. I volti vengono scelti per avere un'ampia gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto affinché il rilevamento dei volti funzioni in modo ottimale.
scena2_a
test_automatico_flash
Verifica che il flash automatico si attivi in una scena buia. Verifica che il flash automatico venga attivato controllando che al centro dell'immagine del riquadro sia presente una sfumatura elevata. Per attivare il flash automatico, il tablet e le spie nell'attrezzatura 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 scura affinché il test funzioni correttamente. Di conseguenza, l'apertura posteriore del tablet deve essere completamente coperta dal tablet per la scena, mentre l'apertura anteriore deve essere coperta da un'apertura e lo smartphone DUT per impedire alla luce diffusa di entrare nel supporto.
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 grande gradiente che indica che si è attivato il flash automatico.
test_inquadratura automatica
Testa il comportamento dell'inquadratura automatica della videocamera. Esegue un ampio zoom in modo che nessuno dei volti della scena sia visibile, attiva la modalità di inquadratura automatica impostando AUTOFRAMING
in CaptureRequest
su True
e verifica se tutti i volti della 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.
prova_display_p3
Testa l'acquisizione
Display P3
in JPEG utilizzando l'API ColorSpaceProfiles
. Verifica che l'immagine JPEG acquisita 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 file JPEG contiene un profilo ICC Display P3 e colori al di fuori della gamma sRGB.
effetti_test
Acquisisce l'inquadratura per gli effetti della fotocamera supportati e controlla se sono stati generati
correttamente. Il test verifica 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: acquisisce l'immagine della scena con gli effetti OFF
e un'immagine monocromatica
con gli effetti impostati su MONO
.
effetti_test_MONO.jpg
combinazioni_formato_test
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()
Superato: tutte le combinazioni sono state acquisite correttamente.
test_qualità_jpeg
Verifica la qualità della compressione JPEG della fotocamera. Esegui il passaggio delle qualità JPEG di 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 della fotocamera posteriore di Pixel 4 e luminanza/crominanza rispetto alla qualità JPEG
Esempio di test non riuscito
Tieni presente che, per le immagini di qualità molto bassa (jpeg.quality < 50), non c'è aumento della compressione nella matrice di quantizzazione.
numero_di_volti_prova
Verifica il rilevamento dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
numero_di_test_modalità_fd_1.jpg
frequenza_frame_minima_anteprima_test
Verifica che la frequenza fotogrammi di anteprima diminuisce correttamente in una scena scura. 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
Superata: la frequenza fotogrammi di anteprima è al minimo dell'intervallo di frequenza fotogrammi richiesto e la variazione tra i frame è inferiore alla tolleranza assoluta impostata nel test.
rielaborazione_test_swap_uv
Testa che la rielaborazione YUV non scambia i piani U e V. Questo 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 dell'acquisizione rielaborata comporta un aumento del SAD, si presume 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
Superato: i piani U e V non vengono scambiati.
test_rielaborare_uv_swap.png
scena2_b
numero_di_volti_prova
Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
numero_di_test_modalità_fd_1.jpg
test_yuv_jpeg_catture_sameness
Acquisisce due immagini utilizzando i formati YUV e JPEG più grandi, con le stesse proporzioni del formato JPEG più grande, che non supera una risoluzione di 1920 x 1440.
Imposta jpeg.quality
su 100 e acquisisce una richiesta di doppia superficie. Converte entrambe le immagini in array RGB e calcola la differenza quadratica 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
Superato: le immagini YUV e JPEG sono simili e hanno una differenza RMS inferiore all'1% (valore quadratico medio di un segnale).
scena2_c
numero_di_volti_prova
Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
numero_di_test_modalità_fd_1.jpg
test_jpeg_capture_class_perf
Testa la latenza di acquisizione JPEG per la classe di prestazioni S, come specificato nella sezione 2.2.7.2 Videocamera nel CDD.
Superato: DEVE avere una latenza di acquisizione JPEG della fotocamera2 < 1000 ms per una risoluzione a 1080p, misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000K) per entrambe le fotocamere principali.
test_camera_lancio_perf_classe
Testa la latenza di avvio della videocamera per la classe di prestazioni S, come specificato nella sezione 2.2.7.2 Videocamera nel CDD.
Superato: DEVE avere una latenza di avvio della fotocamera2 (da aprire al primo fotogramma di anteprima) < 600 ms, misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000K) per entrambe le videocamere principali.
scena2_d
numero_di_volti_prova
Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
scena2_e
test_immagine_continua
Vengono acquisiti 50 frame di risoluzione VGA con l'impostazione Prima 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 a 3A si stabilizza entro la fine di un'acquisizione a 50 frame.
numero_di_volti_prova
Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
scena2_f
scene2_f ha tre volti con uno sfondo bianco e abiti bianchi. I volti hanno un'ampia gamma di tonalità di pelle e un elevato contrasto con lo sfondo.
scena2_f
numero_di_volti_prova
Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.
API testate:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Superato: trova tre volti.
numero_di_test_modalità_fd_1.jpg
scena3
Scene3 utilizza il grafico ISO12233 e la maggior parte dei test utilizza un metodo di estrazione dei grafici per trovare il grafico nella scena. Per questo motivo, la maggior parte delle immagini salvate non presenta bordi come le immagini delle scene 1, 2 o 4, ma solo il grafico. Affinché il Finder possa funzionare in modo ottimale, il grafico deve essere nell'orientamento corretto.
coerenza_test_3a
Testa la coerenza 3A.
API testate:
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
Superata: 3A converge per esposizione, guadagno, awb (bilanciamento automatico del bianco) e fd (distanza di messa a fuoco) tre volte entro la tolleranza.
miglioramento_edge_test
Verifica che il parametro android.edge.mode
sia applicato correttamente. Acquisisce
le immagini non rielaborate per ogni modalità perimetrale e restituisce la nitidezza dell'immagine
di output e dei metadati dei risultati dell'acquisizione. Elabora una richiesta di acquisizione con determinati
modalità Edge, sensibilità, tempo di esposizione, distanza di messa a fuoco e parametro della superficie di output.
Superato: modalità HQ
(2) più nitida della modalità OFF
(0). Modalità FAST
(1) più nitida
rispetto alla modalità OFF
. Modalità HQ
più nitida o uguale alla modalità FAST
.
API testate:
Parametri della videocamera interessati:
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=1.jpg (modalità veloce)
test_edge_enhancement_edge=2.jpg (modalità alta qualità)
test_flip_specchio
Verifica se l'immagine è orientata correttamente in base alla sezione 7.5.2 Fotocamera anteriore del CDD [C-1-5].
Le immagini speculari, capovolte o ruotate possono essere identificate dal rombo al centro.
Superata: l'immagine non è capovolta, speculare o ruotata.
test_flip_specchio_scena_patch.jpg
vista_orizzontale_di_test_in_verticale
Verifica se l'override da orizzontale a verticale funziona correttamente per i sensori orientati in orizzontale.
API testate:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
Superato: il test è in grado di individuare un grafico con la rotazione prevista (0 gradi se l'override da orizzontale a verticale è disattivato, 90 gradi se attivato).
test_landscape_to_portrait.png
report_sullo_spostamento_lente_test
Verifica se il segnale di movimento dell'obiettivo viene segnalato correttamente. Acquisisce una serie di 24 immagini con i primi 12 fotogrammi alla distanza di messa a fuoco ottimale (come da 3A) e gli ultimi 12 fotogrammi alla distanza minima di messa a fuoco. Intorno al frame 12, l'obiettivo si sposta causando una diminuzione della nitidezza. La nitidezza alla fine si stabilizza man mano che l'obiettivo si sposta nella posizione finale. Il flag di movimento dell'obiettivo deve essere dichiarato in tutti i fotogrammi in cui la nitidezza è da media a quella nei primi fotogrammi con l'obiettivo fermo alla distanza focale ottimale e nei pochi fotogrammi finali in cui l'obiettivo è fermo alla distanza focale minima. L'inquadratura esatta non è importante: si controlla che il flag di movimento venga dichiarato quando l'obiettivo è in movimento.
API testate:
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
Superato: il flag di movimento dell'obiettivo è True
nell'inquadratura con variazioni della nitidezza.
Meccanismi di errore:
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) intest_log.DEBUG
viene dichiarata solo nei fotogrammi in cui la nitidezza non cambia.- I fotogrammi con
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) intest_log.DEBUG
presentano una differenza di nitidezza rispetto ai primi fotogrammi alla distanza focale ottimale o agli ultimi fotogrammi alla distanza minima di messa a fuoco.
test_rielaborazione_ottimizzazione_edge
Verifica se i metodi di rielaborazione supportati per il miglioramento dei margini funzionano correttamente. Elabora una richiesta di acquisizione con una determinata modalità perimetrale di rielaborazione e confronta diverse modalità di acquisizione con le modalità di rielaborazione del perimetro disabilitate.
API testate:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Superato: la nitidezza delle diverse modalità dei bordi è corretta. HQ
(modalità 2) è
più nitida rispetto a OFF
(modalità 0) e i miglioramenti tra le diverse modalità sono simili.
test_reprocess_edge_enhancement_plot.png
scena4
La scena 4 è composta da un cerchio nero su sfondo bianco all'interno di un quadrato.
scena4
rapporto_aspetto_di_test_e_ritaglio
Verifica se le immagini sono distorte o ritagliate in modo imprevisto nella pipeline dell'immagine. Scatta foto di un cerchio in tutti i formati. Verifica che il cerchio non sia distorto, il cerchio non si sposti dal centro dell'immagine e il cerchio non cambia dimensioni in modo errato con proporzioni o risoluzioni diverse.
API testate:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Superato: le immagini non vengono allungate, il centro delle immagini non differisce di più del 3% e viene mantenuto il massimo campo visivo possibile.
Meccanismi di errore:
- La fotocamera non è allineata con il cerchio visualizzato sul tablet al centro della scena acquisita.
- Il cerchio nell'immagine acquisita è distorto dalla pipeline di elaborazione.
- L'immagine a risoluzione più bassa viene ritagliata due volte nella pipeline dell'immagine, creando un FoV diverso tra le immagini ad alta e a bassa risoluzione.
- Il cerchio nell'immagine acquisita è ritagliato a causa di una richiesta di acquisizione con proporzioni estreme che riduce l'altezza o la larghezza dell'immagine.
- Il cerchio nell'immagine acquisita ha un riflesso al centro e non appare completamente pieno.
test_allineamento_multi_camera
Consente di testare i parametri di calibrazione della fotocamera relativi al posizionamento della videocamera per i sistemi multicamera. Utilizzando le fotocamere secondarie fisiche multicamera, scatta una foto con una delle fotocamere fisiche. Trova il centro del cerchio. Proietta il centro del cerchio sulle coordinate del mondo per ciascuna videocamera. Confronta la differenza tra i centri dei cerchi delle fotocamere nelle coordinate dei mondi. Riproietta la coordinata mondiale tornando alle coordinate dei pixel e confrontala con gli originali come controllo di validità. Confronta le dimensioni dei cerchi controllando se le lunghezze focali delle fotocamere sono diverse.
API testate:
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
Superamento: i centri e le dimensioni dei cerchi sono quelli previsti nelle immagini proiettate rispetto alle immagini acquisite utilizzando i dati di calibrazione della fotocamera e le lunghezze focali.
Meccanismi di errore:
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
oLENS_POSE_ROTATION
sono valori di progettazione e non dati di calibrazione effettivi.- Il sistema di fotocamere non è appropriato per la configurazione di prova. Ad esempio, quando si testa un sistema di fotocamere grandangolare e ultrawide con il banco di prova RFoV. Per ulteriori informazioni, consulta le Domande frequenti sulla configurazione ITS in a-box della fotocamera1.
rapporto_aspetto_anteprima_test_e_ritaglio
Analogamente al test test_aspect_ratio_and_crop per le acquisizioni statiche, questo test controlla i formati di anteprima supportati per garantire che i fotogrammi di anteprima non vengano allungati o ritagliati in modo inappropriato. Verifica che le proporzioni del cerchio non cambino, le immagini ritagliate mantengono il cerchio al centro del frame e le dimensioni del cerchio non cambiano per un formato costante o con risoluzioni diverse (controllo del campo visivo).
API testate:
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
Superato: le immagini non vengono allungate, il centro delle immagini non differisce di oltre il 3% e viene mantenuto il massimo campo visivo possibile.
stabilizzazione_anteprima_test
Controlla le dimensioni di anteprima supportate per garantire che il FoV venga ritagliato in modo appropriato.
Il test acquisisce due video, uno con stabilizzazione dell'anteprima ON
e un altro
con stabilizzazione dell'anteprima OFF
. Da ogni video viene selezionato un fotogramma rappresentativo, che viene analizzato per garantire che le variazioni di FoV nei due video rientrino nelle specifiche.
API testate:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Superato: le proporzioni del cerchio rimangono pressoché costanti, la posizione centrale del cerchio rimane stabile e le dimensioni del cerchio non cambiano più del 20%.
rapporto_aspetto_video_di_test_e_ritaglio
Acquisisci video di un cerchio all'interno di un quadrato su tutti i formati video. Estrae i fotogrammi chiave e verifica che le proporzioni del cerchio non cambino, le immagini ritagliate mantengono il cerchio al centro e le dimensioni del cerchio non cambiano per un formato costante o con una risoluzione diversa (controllo del campo visivo).
API testate:
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
Superato: i fotogrammi video non vengono allungati, il centro dei fotogrammi non differisce di oltre il 3% e viene mantenuto il massimo campo visivo possibile.
scena5
La scena 5 richiede una scena di colore grigio uniformemente illuminata. Ciò avviene mediante un diffusore
posizionato sopra l'obiettivo della videocamera. Ti consigliamo il seguente diffusore:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
Per preparare la scena, collega un diffusore di fronte alla videocamera e punta la fotocamera verso una fonte di illuminazione di circa 2000 lux. Le immagini acquisite per la scena 5 richiedono illuminazione diffusa senza caratteristiche evidenti. Di seguito è riportato un'immagine di esempio:
acquisizione scena5
ombreggiatura_obiettivo_test_e_uniformità_colore
Verifica che la correzione dell'ombreggiatura dell'obiettivo sia applicata correttamente e che i colori di una scena uniforme monocromatica siano distribuiti uniformemente. Esegue questo test su un frame YUV con 3A automatico. L'ombreggiatura dell'obiettivo viene valutato in base al canale y. Misura il valore y medio per ciascun blocco campione specificato e determina il superamento o l'insuccesso confrontando il valore y centrale. Il test di uniformità del colore viene valutato nello spazio r/g e b/g.
API testate:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Superato: al raggio specificato dell'immagine, la varianza del valore r/g e b/g deve essere inferiore al 20% per superare il test.
scena6
Scene 6 è 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 intervallo.
scena6
test_zoom_sensore
Testa il comportamento della funzionalità di zoom nel sensore della fotocamera, che produce immagini RAW ritagliate.
Con il caso d'uso dello stream impostato su CROPPED_RAW
, il test esegue due acquisizioni nell'intervallo dello zoom: un'immagine RAW a campo visivo completo e un'immagine RAW ritagliata. Il test converte le immagini in array RGB, riduce la scalabilità dell'immagine RAW ritagliata a grandezza originale in base alle dimensioni riportate da SCALER_RAW_CROP_REGION
e calcola la differenza tra le due immagini (RMS, radice quadrata radice 3D).
API testate:
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
Superata: la differenza tra il quadrato medio della radice 3D (RMS) tra l'immagine RAW ritagliata ridimensionata e l'immagine RAW RAW completa è inferiore all'1%.
zoom_prova
Consente di verificare il comportamento dello zoom della fotocamera. Acquisisce l'intervallo dello zoom e controlla se i cerchi diventano più grandi con lo zoom della fotocamera.
API testate:
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
Superato: la dimensione relativa del cerchio acquisito è accurata rispetto al rapporto di zoom richiesto per garantire che la fotocamera esegua correttamente lo zoom.
test_zoom per trovare il contorno del cerchio più vicino al centro.
zoom_latenza_bassa_test
Testa il comportamento dello zoom a bassa latenza della videocamera. Acquisisci l'intervallo di zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM)
e controlla se i cerchi nelle immagini di output corrispondono ai rapporti di zoom nei metadati di acquisizione.
API testate:
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
Superato: la dimensione relativa del cerchio acquisito è accurata rispetto ai metadati del risultato del rapporto di zoom.
test_anteprima_video_zoom_match
Verifica che, durante la registrazione e lo zoom, l'anteprima video e l'output video mostrino e registrino lo stesso output. Calcola la dimensione del cerchio più vicino al centro con diversi rapporti di zoom e controlla se la dimensione del cerchio aumenta con l'aumento del rapporto di zoom.
API testate:
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
Superata: la dimensione relativa del cerchio acquisito è accurata rispetto alla percentuale di zoom richiesta nel video e nell'anteprima.
VGA_640x480_key_frame.png (prima dello zoom)
anteprima_640x480_key_frame.png (prima dello zoom)
VGA_640x480_key_frame.png (dopo lo zoom)
anteprima_640x480_key_frame.png (dopo lo zoom)
estensioni_scena
I test scene_extensions
si riferiscono alle estensioni della videocamera e devono utilizzare
Fotocamera ITS-in-a-Box,
poiché richiedono un controllo preciso dell'ambiente di test.
immagine_hdr
La scena scene_hdr
è composta da un ritratto a sinistra e da un codice QR
a basso contrasto sulla destra.
immagine_hdr
estensione_hdr di test
Testa l'estensione HDR. Acquisisce le acquisizioni con e senza l'estensione abilitata e controlla se l'estensione rende il codice QR più rilevabile.
API testate:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Superato: l'estensione HDR riduce il numero di modifiche del contrasto necessarie per rilevare il codice QR o riduce il gradiente nel codice QR.
scena_notte
La scena scene_night
è composta da un cerchio bianco con quattro cerchi più piccoli
all'interno, tutti su sfondo nero. Il cerchio più piccolo nell'angolo in alto a destra è più scuro degli altri per indicare l'orientamento.
scena_notte
estensione_notte_test
Testa l'estensione Notte. Acquisisce le acquisizioni con e senza l'estensione abilitata e verifica quanto segue:
- L'acquisizione con l'estensione Notte attivata richiede più tempo.
- L'acquisizione con l'estensione Notte attivata ha un colore più luminoso o include artefatti della scena con un aspetto migliorato.
API testate:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Passo: rispetto a un'acquisizione senza l'estensione Notte attivata, un'acquisizione con l'estensione Notte attiva richiede almeno 0,5 secondi in più. L'acquisizione deve essere più luminosa almeno del 10% oppure i punti grigi nella scena devono essere di 20 pixel più bassi del centro del cerchio circostante.
fusione_sensore
I test di fusione con sensori richiedono un movimento specifico del telefono davanti a un motivo a scacchiera. Per risultati ottimali, assicurati che il grafico di test sia montato in modo orizzontale. I grafici che non sono piatti influiscono sui calcoli della rotazione per molti test.
I test sensor_fusion
possono essere automatizzati con
Sensor Fusion Box.
Immagine di una scacchiera
test_sincronizzazione_fotogrammi_multi_camera
Verifica che i timestamp dei fotogrammi acquisiti dalla fotocamera logica siano entro 10 ms calcolando gli angoli dei quadrati all'interno della scacchiera per determinare il timestamp.
API testate:
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()
Passaggio: l'angolazione tra le immagini di ogni fotocamera non cambia in modo significativo quando il telefono viene ruotato.
stabilizzazione_anteprima_test
Test che verificano la rotazione del video di anteprima stabilizzata rispetto al giroscopio.
API testate:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Superato: la rotazione massima dell'angolo sui fotogrammi è 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
fusione_sensore_test
Verifica la differenza di timestamp tra fotocamera e giroscopio per le applicazioni AR e VR. Lo smartphone viene ruotato di 90 gradi 10 volte davanti al
motivo a scacchiera. Il movimento dura circa 2 secondi. Questo test viene ignorato se non è incluso alcun giroscopio o se il parametro REALTIME
source timestamp non è abilitato.
Il test test_sensor_fusion
genera una serie di grafici. I due grafici più importanti
per il debug sono:
test_sensor_fusion_gyro_events
: mostra gli eventi del giroscopio dello smartphone durante il test. Lo spostamento nella direzione x e y implica che lo smartphone non è fissato saldamente sulla piastra di montaggio, il che riduce la probabilità che il test superi il test. Il numero di cicli nel grafico dipende dalla velocità di scrittura per il salvataggio dei frame.eventi_gyro_sensor_fusion_test
test_sensor_fusion_plot_rotations
: mostra l'allineamento degli eventi del giroscopio e della videocamera. Questo grafico deve mostrare il movimento corrispondente tra fotocamera e giroscopio fino a +/-1 ms.rotazioni_plot_di_fusione_test_sensore
API testate:
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
Superata: l'offset dei timestamp della fotocamera e del giroscopio è inferiore a 1 ms secondo quanto indicato nella sezione 7.3.9 Sensori ad alta fedeltà [C-2-14].
Meccanismi di errore:
- Errore di offset: l'offset fotocamera-giroscopio non è calibrato correttamente entro +/-1 ms.
- Cadute di frame: la pipeline non è abbastanza veloce per acquisire 200 frame consecutivamente.
- Errori del socket:
adb
non può connettersi in modo affidabile al DUT per un tempo sufficiente a eseguire il test. - Il grafico non è montato in modo piatto. Il grafico
test_sensor_fusion_plot_rotations
presenta fotogrammi in cui il giroscopio e la rotazione della fotocamera variano notevolmente mentre la videocamera ruota attraverso le parti del grafico che non sono piatte. - La videocamera non è montata in posizione orizzontale. Il grafico
test_sensor_fusion_gyro_events
mostra il movimento nei piani X e Y. Questo errore è più comune nelle fotocamere anteriori, in quanto la fotocamera posteriore spesso presenta una protuberanza rialzata rispetto al resto del corpo dello smartphone, che crea un'inclinazione quando si monta la parte posteriore dello smartphone sulla piastra di montaggio.
prova_stabilizzazione_video
Test che determinano che il video stabilizzato ha una rotazione inferiore al giroscopio.
API testate:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Superato: la rotazione massima dell'angolo sui fotogrammi è 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
Snapshot_di_test
Verifica che le istantanee LED non saturano o sbiadiscano 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 esegue un'acquisizione con
la modalità AUTO_FLASH
impostata su ON
. Durante l'acquisizione, il test esegue una
sequenza di preacquisizione con il trigger aePrecapture
impostato su START
e l'intent di acquisizione su Preview
per eseguire l'acquisizione con il flash.
Poiché l'acquisizione ha un hotspot caratteristico a causa del flash, il test calcola la media dell'immagine Flash dell'intera acquisizione e verifica se il valore rientra nell'intervallo (68, 102). Per verificare se l'immagine è ragionevolmente bilanciata dal bianco, il test calcola i rapporti R/G e B/G e verifica se i rapporti sono compresi tra 0,95 e 1,05.
API testate:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Superata: i rapporti R/G e B/G sono compresi tra 0,95 e 1,05. La media delle immagini Flash è compresa nell'intervallo (68, 102).