Test ITS della fotocamera

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

test_gyro_bias_plot.png

tremolio_di_prova

Misura il jitter nei timestamp della videocamera.

API testate:

Superata: c'è un delta di almeno 30 ms tra i frame.

Traccia_jitter_test.png

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:

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:

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:

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:

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:

  1. Acquisisce le immagini per tutti i pattern di test supportati.
  2. Esegue un semplice controllo di correttezza per il pattern di test in tinta unita e per le barre colorate.

API testate:

Superato: i pattern di test supportati sono generati correttamente.

pattern_test_2

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:

Superato: i formati YUV e RAW sono simili tra loro.

test_tono_curva_grezzo_2

test_tono_curva_raw_2.jpg

test_tono_curva_yuv_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:

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:

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.

scena1

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:

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:

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:

Superato: l'AE converge.

test_automatico_o_manuale

I test che hanno acquisito gli scatti automatici e manuali hanno lo stesso aspetto.

API testate:

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_automatico_o_manuale_automatico

test_auto_vs_manuale_auto.jpg

test_auto_vs_manuale_wb

test_auto_vs_manuale_wb.jpg

test_auto_vs_manual_manual_wb_tm

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:

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 prova_nero_bianco_nero
prova_nero_bianco_nero.jpg bianco_nero_di_prova.jpg

significa_grafico_bianco_nero_di_prova

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:

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

media_manuale_stesso_test_burst.jpg

modalità_plot_manuale_stessa_test_per_burst

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:

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

test_capture_result_plot_lsc_auto_ch0.png

regione_crop_test_raw

Verifica che i flussi RAW non siano ritagliabili.

API testate:

Superato: le immagini YUV vengono ritagliate al centro, ma non quelle RAW.

test_crop_regione_raw_comp_raw_crop

prova_crop_regione_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

prova_crop_region_raw_comp_raw_full.jpg

prova_crop_regione_raw_comp_yuv_crop

prova_crop_regione_raw_comp_yuv_crop.jpg

prova_crop_region_raw_yuv_full

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:

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:

Superato: i parametri del modello non elaborato DNG sono corretti. I valori RGB previsti corrispondono a quelli effettivamente misurati.

test_plog_modello_noise_di_prova

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:

Superato: le immagini mostrano un aumento dell'esposizione senza sovraesposizione nel giro di cinque passaggi.

test_ev_compensation_advanced_plot_means

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:

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.

prova_compensazione_ev_base

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:

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.

significa_plot_esposizione_test

test_exposure_plot_means.png

test_exposure_mult=1.00 test_exposure_mult=64.00
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
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=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=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=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=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

metodi_grafico_di_latching_test

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:

Superato: i valori R, G, B devono aumentare in modo lineare con una sensibilità maggiore.

valori_grafico_lineare_test

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:

Superata: le acquisizioni sembrano coerenti.

frame_burst_test_bloccato0

frame_burst_bloccato_test0.jpg

frame_burst_test_bloccato1

frame_burst_test_bloccato1.jpg

frame_burst_test_bloccato2

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:

Superato: i valori di R e B aumentano in base alla trasformazione.

test_param_colore_correzione_trama_means

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_fixion_req=0

test_param_color_Correction_req=0.jpg

test_param_color_Correctness_req=1

test_param_color_troubleshoot_req=1.jpg (incremento R)

test_param_color_Correction_req=2

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

test_param_exposure_time_frame0.jpg

grafico_tempo_param_test_exposure_time

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

test_param_flash_mode_1.jpg

parametro_test_modalità_flash_1_tile

test_param_flash_mode_1_tile.jpg

parametro_test_modalità_flash_2

test_param_flash_mode_2.jpg

parametro_test_modalità_flash_2_tile

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_SNR

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

test_param_noise_reduct_high_gain_nr=0.jpg

test_param_noise_reduct_high_gain_nr=1

test_param_noise_reduct_high_gain_nr=1.jpg

test_param_noise_reduct_high_gain_nr=2

test_param_noise_reduct_high_gain_nr=2.jpg

test_param_noise_reduct_high_gain_nr=3

test_param_noise_relation_high_gain_nr=3.jpg

param_test_riduzione_del_noise_guadagno_basso

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

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

param_test_sensibilità_grafico

test_param_sensitivity_plot.png

modalità_shading_param_test

Verifica che il parametro android.shading.mode venga applicato.

API testate:

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

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

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:

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
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:

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

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

significa_plot_grezzo_post_test_raw_sensitivity_boost_raw

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

significa_trama_con_sensibilità_post_raw_test_boost_yuv

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:

Superato: ogni scatto è più rumoroso rispetto a quello precedente, in quanto il guadagno aumenta.

Utilizza la varianza della cella della griglia delle statistiche centrale.

varianza_sensibilità_burst_raw_raw

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:

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

test_raw_exposure_s=55.png

(100 è 1 ms, 101 è 10 ms, 10−1 è 0,1 ms)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

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:

Superato: la varianza aumenta a ogni colpo.

varianza_sensibilità_raw_test

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

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

test_tonemap_Sequence_i=0.jpg

test_tonemap_Sequence_i=1

test_tonemap_Sequence_i=1.jpg

test_tonemap_Sequence_i=2

test_tonemap_Sequence_i=2.jpg

test_tonemap_Sequence_i=3

test_tonemap_Sequence_i=3.jpg

test_tonemap_Sequence_i=4

test_tonemap_Sequence_i=4.jpg

test_tonemap_Sequence_i=5

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:

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_tutto

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

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:

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_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:

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
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

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:

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:

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:

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:

Superato: acquisisce l'immagine della scena con gli effetti OFF e un'immagine monocromatica con gli effetti impostati su MONO.

effetti_test_MONO

effetti_test_MONO.jpg

combinazioni_formato_test

Testa diverse combinazioni di formati di output.

API testate:

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.)

test_qualità_jpeg

Medie della matrice DQT della fotocamera posteriore di Pixel 4 e luminanza/crominanza rispetto alla qualità JPEG

test_jpeg_quality non riuscito

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:

Superato: trova tre volti.

test_num_faces_fd_mode_1

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:

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:

Superato: i piani U e V non vengono scambiati.

rielaborazione_test_swap_uv

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:

Superato: trova tre volti.

test_num_faces_fd_mode_1

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:

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:

Superato: trova tre volti.

test_num_faces_fd_mode_1

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:

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:

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:

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.png

scena2_f

numero_di_volti_prova

Testa il rilevamento facciale con una maggiore diversità dei toni della pelle nelle scene dei volti.

API testate:

Superato: trova tre volti.

test_num_faces_fd_mode_1

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:

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

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (modalità veloce)

test_edge_enhancement_edge=2

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.

patch_scena_speculare_test_flip

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:

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).

vista_orizzontale_di_test_in_verticale

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:

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) in test_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) in test_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:

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.

grafico_ottimizzazione_rielaborazione_test

test_reprocess_edge_enhancement_plot.png

scena4

La scena 4 è composta da un cerchio nero su sfondo bianco all'interno di un quadrato.

scena4

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:

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:

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 o LENS_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:

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:

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:

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:

scena5

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:

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

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:

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:

Superato: la dimensione relativa del cerchio acquisito è accurata rispetto al rapporto di zoom richiesto per garantire che la fotocamera esegua correttamente lo zoom.

zoom_prova

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:

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:

Superata: la dimensione relativa del cerchio acquisito è accurata rispetto alla percentuale di zoom richiesta nel video e nell'anteprima.

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (prima dello zoom)

anteprima_640x480_frame_frame.png

anteprima_640x480_key_frame.png (prima dello zoom)

VGA_640x480_key_frame_zoomed.png

VGA_640x480_key_frame.png (dopo lo zoom)

anteprima_640x480_key_frame_zoomed.png

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

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:

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

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:

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.

scacchiera

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:

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:

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.

    test_sensor_fusion_gyro_events.png

    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.

    test_sensor_fusion_plot_rotations.png

    rotazioni_plot_di_fusione_test_sensore

API testate:

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:

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:

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).