Prove ITS della fotocamera

Questa pagina fornisce un elenco completo dei test di Camera Image Test Suite (ITS), che fa parte di Android Compatibility Test Suite (CTS) Verifier. I test ITS sono test funzionali, nel senso che non misurano la qualità dell'immagine, ma controllano che tutte le funzioni pubblicizzate della fotocamera funzionino come previsto. Questo documento consente agli sviluppatori e ai tester di comprendere cosa fanno i singoli test e come eseguire il debug degli errori di test.

I controlli ITS della fotocamera eseguono test in base alle proprietà richieste della fotocamera, al livello API e al livello MPC (Media Performance Class). Per il livello API, ITS utilizza ro.product.first_api_level per controllare i test aggiunti in un livello API specifico che verificano esperienze utente negative per funzionalità nei livelli API inferiori. ITS utilizza ro.vendor.api_level per eseguire test per funzionalità aggiunte in un livello API specifico che richiedono nuove funzionalità hardware. Se per un dispositivo è definito ro.odm.build.media_performance_class , ITS richiede l'esecuzione di test specifici a seconda del livello MPC.

I test sono raggruppati per scena come segue:

  • scene0 : cattura metadati, jitter, giroscopio, vibrazione
  • scena1 : esposizione, sensibilità, compensazione EV, YUV vs JPEG/RAW
  • scene2 : rilevamento dei volti, test che richiedono scene a colori o oscurità completa
  • scena3 : miglioramento dei bordi, movimento dell'obiettivo
  • scena4 : proporzioni, ritaglio, campo visivo
  • scena5 : ombreggiatura della lente
  • scena6 : zoom
  • scene_extensions : estensioni della fotocamera
  • sensor_fusion : offset temporale della fotocamera/giroscopio

Vedere le singole sezioni per una descrizione di ciascuna scena.

scena0

I test Scene0 non richiedono informazioni specifiche sulla scena. Tuttavia, il telefono deve essere fermo per i test del giroscopio e delle vibrazioni.

test_burst_capture

Verifica che l'intera pipeline di acquisizione possa tenere il passo con la velocità dell'acquisizione a dimensione intera e con il tempo della CPU.

API testate:

Superato: cattura una raffica di immagini a grandezza naturale e la fotocamera è sufficientemente veloce da evitare il timeout.

test_capture_result_dump

Verifica che un risultato di acquisizione venga restituito da un'acquisizione manuale e quindi lo scarica.

API testate:

Superato: completa l'acquisizione e scarica i risultati dell'acquisizione.

test_gyro_bias

Verifica se il giroscopio ha un'uscita stabile quando il dispositivo è fermo. I dati vengono tracciati come una media di 20 punti dati.

API testate:

Superato: il delta della lettura del giroscopio è inferiore a 0,01 nel tempo.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

Misura il jitter nei timestamp della fotocamera.

API testate:

Passato: c'è almeno un delta di 30 ms tra i fotogrammi.

test_jitter_plot.png

test_jitter_plot.png (Nota il piccolo intervallo dell'asse y. Il jitter è in realtà piccolo in questo grafico.)

test_metadati

Verifica la validità delle voci di metadati. Osserva i risultati dell'acquisizione e le caratteristiche degli oggetti della fotocamera. Questo test utilizza l'esposizione auto_capture_request e i valori di guadagno perché il contenuto dell'immagine non è importante.

API testate:

Superato: livello hardware, rollingShutterSkew , tag frameDuration , timestampSource , croppingType , blackLevelPattern , pixel_pitch , FoV, distanza iperfocale sono presenti e hanno valori validi.

test_param_sensitivity_burst

Verifica che il parametro android.sensor.sensitivity sia applicato correttamente nel burst. Esamina solo i metadati di output.

API testate:

Superato: i dati di output hanno una tolleranza di errore inferiore allo 0,2%.

prova_leggi_scrivi

Verifica che il dispositivo scriva i valori di esposizione e guadagno corretti rileggendo i metadati di acquisizione.

API testate:

Passaggio: i valori di lettura e scrittura corrispondono in tutti i colpi.

test_sensore_eventi

Verifica che il dispositivo esegua query e stampi gli eventi dei sensori per i dispositivi che pubblicizzano il supporto della fusione dei sensori. I sensori previsti sono accelerometro, giroscopio e magnetometro. Questo test funziona solo se lo schermo è acceso, ovvero il dispositivo non è in modalità standby.

API testate:

Superato: vengono ricevuti gli eventi per ciascun sensore.

test_solid_color_test_pattern

Verifica che i modelli di test a colori solidi vengano generati correttamente per la disattivazione dell'audio della fotocamera. Se è supportata la disattivazione dell'audio della fotocamera, devono essere supportati i modelli di prova a colori solidi. Se la disattivazione dell'audio della fotocamera non è supportata, i modelli di prova a colori solidi vengono testati solo se la funzionalità viene pubblicizzata.

Se sono supportate le immagini RAW, viene testata anche l'assegnazione dei colori. I colori testati sono nero, bianco, rosso, blu e verde. Per le fotocamere che non supportano le immagini RAW, viene testato solo il nero.

API testate:

Superato: i modelli di prova solidi supportati sono del colore corretto e la varianza nell'immagine è bassa.

test_modello_test

Testa il parametro android.sensor.testPatternMode per acquisire fotogrammi per ogni modello di test valido e controlla che i fotogrammi siano generati correttamente per i colori solidi e le barre dei colori. Questo test include i seguenti passaggi:

  1. Cattura immagini per tutti i modelli di test supportati.
  2. Esegue un semplice controllo di correttezza per il modello di prova del colore solido e le barre di colore.

API testate:

Superato: i modelli di test supportati vengono generati correttamente.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Verifica la conversione del pattern di prova da RAW a YUV con mappatura tonale lineare. Questo test richiede android.sensor.testPatternMode = 2 (COLOR_BARS) per generare un modello di immagine perfetto per la conversione della mappa tonale. Garantisce che la pipeline abbia output di colore adeguati con mappatura dei toni lineare e input di immagine ideale (si basa su test_test_patterns ).

API testate:

Superato: YUV e RAW sembrano simili tra loro.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

Verifica se gli eventi del sensore di immagine e di movimento si trovano nello stesso dominio temporale.

API testate:

Superato: i timestamp del movimento sono compresi tra i due timestamp dell'immagine.

test_vibrazione_restrizione

Verifica se la vibrazione del dispositivo funziona come previsto.

API testate:

Superato: il dispositivo non vibra quando l'audio viene disattivato dall'API di limitazione dell'audio della fotocamera.

scena 1

scene1 è un grafico grigio. Il grafico grigio deve coprire il 30% centrale del campo visivo della telecamera. Si prevede che il grafico grigio sfiderà moderatamente 3A (esposizione automatica, bilanciamento automatico del bianco, messa a fuoco automatica) poiché la regione centrale non ha caratteristiche. Tuttavia, la richiesta di acquisizione specifica l'intera scena che include funzionalità sufficienti per la convergenza di 3A.

Le telecamere RFoV possono essere testate nel WFoV o nel banco di prova RFoV. Se una telecamera RFoV viene testata nel banco di prova WFoV, il grafico viene ridimensionato di ⅔ per garantire alcuni limiti per il grafico grigio nel FoV per aiutare 3A a convergere. Per descrizioni più dettagliate dei banchi di prova delle fotocamere, vedere Camera ITS-in-a-box .

scena 1

scena1: grafico a grandezza naturale (a sinistra). ⅔ grafico in scala (a destra).

prova_3a

Verifica la convergenza di 3A con un obiettivo moderatamente impegnativo.

API testate:

Superato: 3A converge e i valori 3A restituiti sono validi.

test_ae_af

Testa singolarmente gli algoritmi di esposizione automatica (AE) e messa a fuoco automatica (AF) 3A.

API testate:

Superato: 3A converge e i valori 3A restituiti sono legali.

test_ae_precapture_trigger

Verifica la macchina a stati AE quando si utilizza il trigger di preacquisizione. Cattura cinque richieste manuali con AE disabilitato. L'ultima richiesta ha un trigger di preacquisizione AE, che deve essere ignorato perché AE è disabilitato.

API testate:

Passato: AE converge.

test_auto_vs_manual

I test che hanno effettuato scatti automatici e manuali sembrano uguali.

API testate:

Superato: i guadagni e la trasformazione del bilanciamento del bianco manuale riportati in ogni risultato di acquisizione corrispondono alla estimate del bilanciamento del bianco automatico dall'algoritmo 3A della fotocamera.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

prova_nero_bianco

Verifica che il dispositivo produca immagini completamente in bianco e nero. Effettua due scatti, il primo con guadagno estremamente basso e esposizione breve, che dà come risultato una foto nera, e il secondo con guadagno estremamente alto e esposizione lunga, che dà come risultato una foto bianca.

API testate:

Superato: produce immagini in bianco e nero. I canali saturati delle immagini bianche hanno valori RGB di [255, 255, 255] con un margine di errore inferiore all'1% di differenza.

prova_nero_bianco_neroprova_nero_bianco_nero
prova_nero_bianco_nero.jpg prova_nero_bianco_bianco.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

Scatta 5 raffiche di 50 immagini con impostazione di acquisizione manuale e controlla che siano tutte identiche. Questo test può essere utilizzato per identificare se sono presenti frame sporadici elaborati in modo diverso o che presentano artefatti.

API testate:

Superato: le immagini sono identiche visivamente e nei valori RGB.

Fallito: mostra un picco o un calo del grafico della media RGB all'inizio di ogni burst

  • La tolleranza è del 3% per first_API_level < 30
  • La tolleranza è del 2% per first_API_level >= 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_cattura_risultato

Verifica che i dati validi ritornino negli oggetti CaptureResult . Esegue un'acquisizione automatica, manuale e automatica.

API testate:

Superato: i metadati sono validi per tutte le acquisizioni e le impostazioni manuali non vengono diffuse nella seconda acquisizione automatica. Traccia la correzione dell'ombreggiatura dell'obiettivo per le acquisizioni.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

Verifica che i flussi RAW non siano ritagliabili.

API testate:

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

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

Verifica il funzionamento delle regioni coltivate. Scatta un'immagine completa e crea patch di 5 regioni diverse (angoli e centro). Scatta immagini con ritaglio impostato per le 5 regioni. Confronta i valori della patch e dell'immagine ritagliata.

API testate:

Superato: l'immagine della regione ritagliata corrisponde alla patch che corrisponde all'immagine ritagliata.

test_dng_noise_model

Verifica che i parametri del modello non elaborato DNG siano corretti. Il grafico illustra la varianza misurata di una zona centrale del cartoncino grigio negli scatti grezzi catturati in un intervallo di sensibilità e confronta questi valori con la varianza prevista per ciascuna sensibilità dal modello di rumore DNG nell'HAL della fotocamera (basato sul Parametri O,S restituiti negli oggetti risultato dell'acquisizione). Per maggiori dettagli sul modello di rumore DNG, scaricare il seguente documento sul modello di rumore DNG .

API testate:

Superato: i parametri del modello grezzo DNG sono corretti. I valori RGB previsti corrispondono a quelli dei valori RGB effettivi misurati.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Verifica che venga applicata la compensazione del valore di esposizione (EV). Il test aumenta l'esposizione in otto passaggi e controlla la luminosità misurata rispetto alla luminosità prevista. I valori attesi vengono calcolati dalla luminosità dell'immagine senza compensazione EV applicata e il valore atteso si saturerà se i valori calcolati superano l'intervallo di valori dell'immagine effettiva. Il test fallisce se i valori attesi e quelli misurati non corrispondono o se le immagini sono sovraesposte entro cinque passaggi.

API testate:

Superato: le immagini mostrano un'esposizione crescente senza sovraesporre entro cinque passaggi.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

Verifica che la compensazione EV venga applicata utilizzando un intervallo creato con CONTROL_AE_COMPENSATION_STEP . Vengono catturati otto fotogrammi per ciascun valore di compensazione.

API testate:

Superato: acquisisce l'aumento di luminanza con un'impostazione di compensazione EV aumentata e gli otto fotogrammi catturati per ciascuna impostazione di compensazione EV hanno valori di luminanza stabili.

test_ev_compensation_basic

test_ev_compensation_basic.png

prova_esposizione

Verifica che venga ottenuta un'esposizione costante al variare dell'ISO e del tempo di esposizione. Effettua una serie di scatti con ISO e tempo di esposizione scelti per bilanciarsi a vicenda. I risultati dovrebbero avere la stessa luminosità, ma durante la sequenza l'immagine dovrebbe diventare più rumorosa. Verifica che i valori medi dei pixel campione siano vicini tra loro. Garantisce che le immagini non siano fissate a 0 o 1 (il che le farebbe apparire come linee piatte). Il test può essere eseguito anche con immagini RAW impostando il flag debug nel file di configurazione.

API testate:

Superato: le immagini hanno la stessa luminosità, ma diventano più rumorose con ISO più elevati. I piani RGB sono piatti quando il valore dell'esposizione ISO* è costante nello spazio di guadagno testato.

test_esposizione_trama_mezzi

test_exposure_plot_means.png

test_esposizione_mult=1.00test_esposizione_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

prova_jpeg

I test che hanno convertito le immagini YUV e le immagini JPEG del dispositivo sembrano uguali. Il test prende il 10% centrale dell'immagine, calcola il valore RGB e verifica che corrispondano.

API testate:

Superato: la differenza RGB media tra ciascuna immagine è inferiore al 3%.

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

Verifica che le impostazioni (esposizione e guadagno) si blocchino sul fotogramma destro per le fotocamere FULL e LEVEL_3 . Esegue una serie di scatti utilizzando richieste consecutive, variando i parametri della richiesta di acquisizione tra uno scatto e l'altro. Verifica che le immagini abbiano le proprietà previste.

API testate:

Superato: le immagini [2, 3, 6, 8, 10, 12, 13] hanno ISO o esposizione aumentati e vengono visualizzate con valori RGB più elevati su test_latching_plot_means.png .

test_latching_i=00.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_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

test_latching_plot_means

test_latching_plot_means.png

prova_linearità

Verifica che l'elaborazione del dispositivo possa essere invertita in pixel lineari. Cattura una sequenza di scatti con il dispositivo puntato su un bersaglio uniforme.

API testate:

Superato: i valori R, G, B devono aumentare linearmente con l'aumentare della sensibilità.

test_linearità_trama_mezzi

test_linearity_plot_means.png

test_locked_burst

Verifica il blocco 3A e il burst YUV (utilizzando l'impostazione automatica). Questo test è progettato per superare anche su dispositivi limitati che non dispongono MANUAL_SENSOR o PER_FRAME_CONTROLS . Il test verifica la coerenza dell'immagine YUV mentre il controllo del frame rate è in CTS.

API testate:

Superato: le acquisizioni sembrano coerenti.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

Verifica che i parametri android.colorCorrection.* vengano applicati quando impostati. Effettua riprese con valori di trasformazione e guadagno diversi e verifica che abbiano un aspetto corrispondentemente diverso. La trasformazione e i guadagni vengono scelti per rendere l'output sempre più rosso o blu. Utilizza una mappa tonale lineare. La mappatura dei toni è una tecnica utilizzata nell'elaborazione delle immagini per mappare un set di colori su un altro per approssimare l'aspetto delle immagini ad alta gamma dinamica in un mezzo che ha una gamma dinamica più limitata.

API testate:

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

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*L'asse x rappresenta le richieste di acquisizione: 0 = unità, 1=potenziamento rosso, 2=potenziamento blu

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (aumento R)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (aumento B)

test_param_exposure_time

Verifica che il parametro android.sensor.exposureTime sia applicato.

API testate:

Superato: ogni scatto è più luminoso del precedente.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

Verifica che il parametro android.flash.mode sia applicato. Imposta manualmente l'esposizione sul lato scuro, in modo che sia ovvio se il flash si è attivato o meno e utilizza una mappa tonale lineare. Controlla il centro con l'immagine del riquadro per vedere se è stato creato un gradiente ampio per verificare se il flash è stato attivato.

API testate:

Superato: il centro dell'immagine del riquadro ha un gradiente ampio, il che significa che il flash è stato attivato.

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

Verifica che il parametro android.noiseReduction.mode venga applicato correttamente quando impostato. Cattura immagini con la fotocamera scarsamente illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine catturata sia rumorosa. Cattura tre immagini, per NR disattivato, "veloce" e "alta qualità". Cattura anche un'immagine con guadagno basso e NR disattivato e utilizza la varianza di questa come linea di base. Maggiore è l'SNR (rapporto segnale/rumore), migliore è la qualità dell'immagine.

API testate:

Superato: l'SNR varia a seconda delle diverse modalità di riduzione del rumore e si comporta in modo simile al grafico seguente.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: SPENTO, 1: VELOCE, 2: HQ, 3: MIN, 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensibilità

Verifica che il parametro android.sensor.sensitivity sia applicato. Il test aumenta la sensibilità in 5 step con esposizione fissa per ogni scatto.

API testate:

Superato: la media RGB del 10% centrale diventa più luminosa con una maggiore sensibilità.

test_param_sensitivity_iso=0055

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

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

Verifica che il parametro android.shading.mode sia 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 il parametro android.tonemap.mode sia applicato. Applica diverse curve di mappatura dei toni a ciascun canale R, G, B e controlla che le immagini di output vengano modificate come previsto. Questo test è composto da due test, test1 e test2.

API testate:

Passaggio:

  • test1: entrambe le immagini hanno una mappa tonale lineare, ma n=1 ha una pendenza più ripida. Il canale G (verde) è più luminoso per l'immagine n=1.
  • test2: stessa mappa tonale, ma lunghezza diversa. Le immagini sono le stesse.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

Controlla l'aumento della sensibilità RAW successiva. Cattura una serie di immagini RAW e YUV con sensibilità diversa, pubblica la combinazione di aumento della sensibilità RAW e controlla se la media dei pixel di output corrisponde alle impostazioni richieste.

API testate:

Superato: le immagini RAW diventano più scure all'aumentare dell'aumento mentre le immagini YUV rimangono costanti in termini di luminosità

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

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

test_post_raw_sensitivity_boost_raw_plot_means

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

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensibilità

Cattura una serie di immagini grezze con guadagni crescenti e misura il rumore. Cattura solo raw, in una raffica.

API testate:

Passaggio: ogni tiro è più rumoroso del tiro precedente, poiché il guadagno aumenta.

Utilizza la varianza della cella della griglia delle statistiche centrali.

test_raw_burst_sensibilità_varianza

test_raw_burst_sensitivity_variance.png

prova_esposizione_raw

Cattura una serie di immagini grezze con tempo di esposizione crescente e misura i valori dei pixel.

API testate:

Superato: aumentando l'ISO (guadagno) i pixel diventano più sensibili alla luce, quindi la trama si sposta verso sinistra.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ è 1 ms, 10¹ è 10 ms, 10⁻¹ è 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

test_raw_sensibilità

Cattura una serie di immagini grezze con sensibilità crescente e misura il rumore (varianza) nel 10% centrale dell'immagine. Verifica che ogni scatto sia più rumoroso del precedente.

API testate:

Passaggio: la varianza aumenta ad ogni tiro.

test_raw_sensibilità_varianza

test_raw_sensitivity_variance.png

test_rielaborazione_riduzione_rumore

Verifica che android.noiseReduction.mode venga applicato per la rielaborazione delle richieste. Cattura le immagini rielaborate con la fotocamera scarsamente illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine acquisita sia rumorosa. Cattura tre immagini rielaborate, per NR disattivato, "veloce" e "alta qualità". Cattura un'immagine rielaborata con guadagno basso e NR disattivato e utilizza la varianza di questa come linea di base.

API testate:

Superato: VELOCE >= SPENTO, HQ >= VELOCE, HQ >> SPENTO

Grafico tipico SNR vs NR_MODE

Grafico tipico SNR vs NR_MODE

test_tonemap_sequence

Testa una sequenza di riprese con diverse curve della mappatura dei toni. Cattura 3 scatti manuali con una mappa tonale lineare. Cattura 3 scatti manuali con tonemap predefinita. Calcola il delta tra ciascuna coppia di frame consecutivi.

API testate:

Superato: ci sono 3 fotogrammi identici seguiti da un set diverso di 3 fotogrammi identici.

test_tonemap_sequence_i=0

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_all

Verifica che tutte le dimensioni e i formati segnalati per l'acquisizione di immagini funzionino. Utilizza una richiesta manuale con una mappa tonale lineare in modo che YUV e JPEG abbiano lo stesso aspetto quando convertiti dal modulo image_processing_utils . Le immagini non vengono salvate per impostazione predefinita, ma possono essere salvate abilitando debug_mode .

API testate:

Superato: tutti i centri dell'immagine hanno una differenza massima RMS (valore quadratico medio di un segnale) nelle immagini convertite RGB con il 3% dell'immagine YUV con la risoluzione più alta.

test_yuv_jpeg_all

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

Verifica l'acquisizione di un singolo fotogramma sia come output YUV che JPEG. Utilizza una richiesta manuale con una mappa tonale lineare in modo che YUV e JPEG abbiano lo stesso aspetto quando convertiti dal modulo image_processing_utils .

API testate:

Passato: le immagini YUV e JPEG sono simili e presentano una differenza inferiore all'1% RMS (valore quadratico medio di un segnale).

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Verifica l'acquisizione di un singolo fotogramma sia come output RAW/RAW10/RAW12 che YUV, se supportato. Utilizza una richiesta manuale con mappatura dei toni lineare, quindi si prevede che raw e YUV siano gli stessi. Confronta i valori RGB centrali del 10% delle immagini convertite RGB. Registra android.shading.mode .

API testate:

Passato: le immagini YUV e grezze sono simili e presentano una differenza inferiore al 3,5% RMS (valore quadratico medio di un segnale).

test_yuv_plus_raw_shading=1_raw.jpgtest_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

scene2_a ha tre volti con sfondo grigio e abiti neutri. I volti vengono scelti per avere una vasta gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto affinché il rilevamento dei volti funzioni in modo ottimale.

scena2_a

scena2_a

test_auto_flash

Verifica che il flash automatico venga attivato in una scena buia. Verifica che il flash automatico sia attivato controllando che il centro dell'immagine del riquadro abbia un gradiente ampio. Per attivare il flash automatico, il tablet e le luci nel banco di prova devono essere spenti. Il tablet viene spento dal test e le luci possono essere spente automaticamente con il controller Arduino. La scena deve essere completamente buia affinché il test funzioni correttamente. Pertanto, l'apertura posteriore del tablet deve essere completamente coperta dal tablet della scena, mentre l'apertura anteriore deve essere coperta da un'apertura e dal telefono DUT per impedire alla luce diffusa di entrare nell'attrezzatura.

API testate:

Superato: il centro dell'immagine del riquadro ha un gradiente ampio, il che significa che è stato attivato il flash automatico.

test_autoframing

Verifica il comportamento dell'inquadratura automatica del dispositivo fotocamera. Esegue un ampio zoom in modo tale che nessuno dei volti nella scena sia visibile, abilita la modalità di inquadratura automatica impostando AUTOFRAMING in CaptureRequest su True e verifica se tutti i volti nella scena originale possono essere rilevati quando lo stato converge (ovvero quando AUTOFRAMING_STATE in CaptureResult è impostato su AUTOFRAMING_STATE_CONVERGED ).

API testate:

Superato: vengono rilevati tutti e tre i volti.

test_display_p3

Test Visualizza l'acquisizione P3 in JPEG utilizzando l'API ColorSpaceProfiles . Verifica che il JPEG acquisito abbia un profilo ICC appropriato nell'intestazione e che l'immagine contenga colori al di fuori della gamma sRGB.

API testate:

Superato: il JPEG contiene un profilo ICC Display P3 e colori al di fuori della gamma sRGB.

test_effetti

Cattura i fotogrammi per gli effetti della fotocamera supportati e controlla se vengono generati correttamente. Il test controlla solo gli effetti OFF e MONO , ma salva le immagini per tutti gli effetti supportati.

API testate:

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

test_effetti_MONO

test_effects_MONO.jpg

test_format_combo

Testa diverse combinazioni di formati di output.

API testate:

Passa: tutte le combinazioni vengono catturate con successo.

test_jpeg_qualità

Verifica la qualità di compressione JPEG della fotocamera. Passa le qualità JPEG tramite android.jpeg.quality e garantisce che le tabelle di quantizzazione cambino correttamente.

API testate:

Superato: la matrice di quantizzazione diminuisce con l'aumento della qualità. (La matrice rappresenta il fattore di divisione.)

test_jpeg_qualità

Medie della matrice DQT luma/chroma della fotocamera posteriore Pixel 4 rispetto alla qualità JPEG

test_jpeg_quality non riuscito

Esempio di test fallito

Si noti che per immagini di qualità molto bassa (jpeg.quality < 50), non vi è alcun aumento della compressione nella matrice di quantizzazione.

test_num_facce

Verifica il rilevamento dei volti.

API testate:

Superato: Trova tre facce.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

Verifica che la frequenza dei fotogrammi dell'anteprima diminuisca correttamente in una scena buia. Affinché questo test funzioni correttamente, le luci del banco di prova devono essere spente dal controller o manualmente dall'operatore del test.

API testate:

Superato: la frequenza fotogrammi dell'anteprima è al minimo dell'intervallo di frequenza fotogrammi richiesto e la variazione tra i fotogrammi è inferiore alla tolleranza assoluta impostata nel test.

test_reprocess_uv_swap

Verifica che il ritrattamento YUV non inverta i piani U e V. Ciò viene rilevato calcolando la somma delle differenze assolute (SAD) tra l'immagine rielaborata e un'acquisizione non rielaborata. Se lo scambio dei piani U e V di output della cattura rielaborata determina un aumento del SAD, si presuppone che l'output abbia i piani U e V corretti.

API testate:

Superamento: gli aerei U e V non vengono scambiati.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

scena2_b

test_num_facce

Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.

API testate:

Supera: trova 3 facce.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

Cattura due immagini utilizzando i formati YUV e JPEG comuni più grandi con le stesse proporzioni del formato JPEG più grande che non supera la risoluzione di 1920x1440. Imposta jpeg.quality su 100 e acquisisce una richiesta di doppia superficie. Converte entrambe le immagini in array RGB e calcola la differenza radice quadrata media (RMS) 3D tra le due immagini.

API testate:

Passato: le immagini YUV e JPEG sono simili e presentano una differenza inferiore all'1% RMS (valore quadratico medio di un segnale).

scena2_c

test_num_facce

Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.

API testate:

Supera: trova 3 facce.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

Verifica la latenza di acquisizione JPEG per la classe di prestazioni S come specificato nella sezione 2.2.7.2 Fotocamera nel CDD.

Superato: DEVE avere una latenza di acquisizione JPEG della fotocamera2 < 1000 ms per la risoluzione 1080p misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

test_camera_launch_perf_class

Testa la latenza di avvio della fotocamera per la classe di prestazioni S come specificato nella sezione 2.2.7.2 Fotocamera nel CDD.

Superato: DEVE avere una latenza di avvio della fotocamera 2 (fotocamera aperta al primo fotogramma di anteprima) < 600 ms, misurata dal PerformanceTest della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

scena2_d

test_num_facce

Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.

API testate:

Supera: trova 3 facce.

scena2_e

prova_immagine_continua

Vengono acquisiti 50 fotogrammi con risoluzione VGA impostando prima la richiesta di acquisizione android.control.afMode = 4 (CONTINUOUS_PICTURE).

API testate:

Superato: il sistema 3A si stabilizza entro la fine di un'acquisizione di 50 fotogrammi.

test_num_facce

Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.

API testate:

Supera: trova 3 facce.

scena2_f

scene2_f ha tre volti con uno sfondo bianco e abiti bianchi. I volti hanno un'ampia gamma di tonalità della pelle e un contrasto elevato con lo sfondo.

scene2_f.png

scena2_f

test_num_facce

Testa il rilevamento dei volti con una maggiore diversità di tonalità della pelle nelle scene dei volti.

API testate:

Supera: Trova 3 facce.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scena3

Scene3 utilizza il grafico ISO12233 e la maggior parte dei test utilizza un metodo di estrattore grafico per trovare il grafico nella scena. Per questo motivo, la maggior parte delle immagini salvate non ha bordi come le immagini per le scene 1, 2 o 4, ma solo il grafico. Il grafico deve essere nell'orientamento corretto affinché il Finder del grafico funzioni in modo ottimale.

test_3a_consistency

Test per coerenza 3A.

API Test:

Pass: 3A converge per esposizione, guadagno, AWB (bilanciamento del bianco) e FD (distanza di messa a fuoco) tre volte all'interno della tolleranza.

test_edge_enhancement

Prova che il parametro android.edge.mode viene applicato correttamente. Cattura le immagini non di riferimento per ciascuna modalità Edge e restituisce la nitidezza dell'immagine di output e dei metadati del risultato di acquisizione. Elabora una richiesta di acquisizione con una determinata modalità Edge, sensibilità, tempo di esposizione, distanza di messa a fuoco e parametro di superficie di uscita.

Pass: Modalità HQ (2) più nitido della modalità OFF (0). Modalità FAST (1) più nitida della modalità OFF . Modalità HQ più nitido o uguale alla modalità FAST .

API Test:

Parametri della fotocamera impattiti:

  • EDGE_MODE

test_edge_enhancement_edge = 0

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à di alta qualità)

test_flip_mirror

Test se l'immagine è correttamente orientata secondo la sezione CDD 7.5.2 Camera frontale [C-1-5] .

Le immagini specchiemate, capovolte o ruotate possono essere identificate dalla caratteristica del diamante vicino al centro.

Pass: l'immagine non viene capovolta, speculata o ruotata.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

Prova se il paesaggio per il ritratto di sovraccarico funziona correttamente per i sensori orientati al paesaggio.

API Test:

Pass: il test è in grado di individuare un grafico con la rotazione prevista (0 gradi quando il paesaggio per il ritratto di sovraccarico è disabilitato, 90 gradi quando abilitato).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Test se la bandiera del movimento dell'obiettivo è correttamente riportata. Cattura uno scoppio di 24 immagini con i primi 12 fotogrammi alla distanza ottimale di messa a fuoco (come trovato da 3A) e gli ultimi 12 frame alla distanza di messa a fuoco minima. Intorno al frame 12, l'obiettivo si muove causando la caduta della nitidezza. La nitidezza alla fine si stabilizza mentre l'obiettivo si sposta nella posizione finale. La bandiera del movimento delle lenti dovrebbe essere affermata in tutti i fotogrammi in cui la nitidezza è intermedia alla nitidezza nei primi frame con l'obiettivo stazionario a distanza focale ottimale e gli ultimi frame in cui l'obiettivo è fermo nella distanza focale minima. La cornice esatta che le mosse dell'obiettivo non è importante: ciò che viene verificato è che la bandiera del movimento viene affermata quando l'obiettivo si muove.

API Test:

Pass: la bandiera del movimento delle lenti è True nella cornice con la nitidezza cambia.

Meccanismi di fallimento:

  • lens_moving: True ( android.hardware.camera2.CaptureResult#LENS_STATE = 1) in test_log.DEBUG viene affermato solo in frame in cui la nitidezza non cambia.
  • Frame con lens_moving: False ( android.hardware.camera2.CaptureResult#LENS_STATE = 0) in test_log.DEBUG ha una differenza di nitidezza rispetto ai primi frame a distanza focale ottimale o agli ultimi frame alla distanza minima di messa a fuoco.

test_reprocess_edge_enhancement

Test se i metodi di ritrattamento supportati per il miglioramento dei bordi funzionano correttamente. Elabora una richiesta di acquisizione con una determinata modalità di ritrattamento e confronta le diverse modalità da acquisire con le modalità Edge di ritrattamento disabilitate.

API Test:

Pass: la nitidezza per le diverse modalità del bordo è corretta. HQ (Modalità 2) è più nitido di OFF (Modalità 0) e il miglioramento tra le diverse modalità è simile.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

scena4

La scena4 è costituita da un cerchio nero su uno sfondo bianco all'interno di un quadrato.

scena4

scena4

test_aspect_ratio_and_crop

Test Se le immagini sono distorte o ritagliate inaspettatamente nella pipeline dell'immagine. Scatta foto di un cerchio su tutti i formati. Verifica che il cerchio non sia distorto, il cerchio non si sposta dal centro dell'immagine e il cerchio non cambia dimensioni in modo errato con rapporti o risoluzioni di aspetti diversi.

API Test:

Pass: le immagini non sono allungate, il centro delle immagini non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.

Meccanismi di fallimento:

  • Il cerchio nell'immagine catturata è distorto dalla pipeline di elaborazione.
  • L'immagine di risoluzione inferiore viene ritagliata doppia nella pipeline dell'immagine creando diverse immagini tra le immagini ad alta e bassa risoluzione.
  • Il cerchio nell'immagine catturata viene ritagliato a causa di una richiesta di acquisizione di proporzioni estrema che riduce l'altezza o la larghezza dell'immagine.
  • Il cerchio nell'immagine catturata ha un riflesso al centro e non sembra completamente riempito.

test_multi_camera_alignment

Prova i parametri di calibrazione della fotocamera relativi al posizionamento della fotocamera per i sistemi multi-fotocamera. Usando le sub-cameras fisiche multi-fotocamera, scatta una foto con una delle telecamere fisiche. Trova il Circle Center. Proietta il Circle Center al mondo coordinate per ogni fotocamera. Confronta la differenza tra i centri circolari delle telecamere nelle coordinate mondiali. Riproietta la coordinata mondiale alle coordinate dei pixel e si confronta con gli originali come controllo di validità. Confronta il controllo delle dimensioni del cerchio se le lunghezze focali delle telecamere sono diverse.

API Test:

Pass: i centri e le dimensioni del circolo sono come previsto nelle immagini proiettate rispetto alle immagini acquisite utilizzando i dati di calibrazione della fotocamera e le lunghezze focali.

Meccanismi di fallimento:

  • LENS_INTRINSIC_CALIBRATION , LENS_POSE_TRANSLATION o LENS_POSE_ROTATION sono valori di progettazione e non dati di calibrazione effettivi.
  • Il sistema della fotocamera non è appropriato per l'impostazione del test. Ad esempio, testare un sistema di telecamere ampio e ultra largo con il rig RFOV. Per ulteriori informazioni, consultare la fotocamera ITS-in-a-box FAQ1 .

test_preview_aspect_ratio_and_crop

Simile al test test_aspect_ratio_and_crop per le catture ancora Verifica che le proporzioni del cerchio non cambiano, le immagini ritagliate mantengono il cerchio al centro del telaio e la dimensione del cerchio non cambia per un formato costante o con risoluzioni diverse (controllo del campo di vista).

API Test:

Pass: le immagini non sono allungate, il centro delle immagini non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.

test_preview_stabilization_fov

Controlla le dimensioni di anteprima supportate per garantire che il FOV venga ritagliato in modo appropriato. Il test cattura due video, uno con la stabilizzazione ON anteprima e un altro con la stabilizzazione OFF anteprima. Un frame rappresentativo viene selezionato da ciascun video e analizzato per garantire che il FOV cambia nei due video sia all'interno delle specifiche.

API Test:

Pass: il rapporto del cerchio rimane quasi costante, la posizione centrale del cerchio rimane stabile e la dimensione del cerchio non cambia più quel 20%.

test_video_aspect_ratio_and_crop

Prende video di un cerchio all'interno di un quadrato su tutti i formati video. Estrai i fotogrammi chiave e verifica che le proporzioni del cerchio non cambiano, le immagini ritagliate mantengono il cerchio al centro e la dimensione del cerchio non cambia per un formato costante o con una risoluzione diversa (controllo del campo di vista).

API Test:

Pass: i fotogrammi video non sono allungati, il centro delle cornici non differisce di oltre il 3%e il massimo possibile FOV (campo visivo) viene preservato.

scena5

La scena5 richiede una scena grigia uniformemente illuminata. Ciò è realizzato da un diffusore posizionato sopra l'obiettivo della fotocamera. Raccomandiamo il seguente diffusore: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168 .

Per preparare la scena, attaccare un diffusore davanti alla fotocamera e puntare la fotocamera a una fonte di illuminazione di circa 2000 Lux. Le immagini catturate per scene5 richiedono un'illuminazione diffusa senza caratteristiche evidenti. Quella che segue è un'immagine di esempio:

scena5

Scene5 Capture

test_lens_shading_and_color_uniformity

Prove che la correzione dell'ombreggiatura dell'obiettivo viene applicata in modo appropriato e il colore di una scena uniforme monocromatica è distribuito uniformemente. Esegue questo test su una cornice YUV con Auto 3A. L'ombreggiatura delle lenti viene valutata in base al canale Y. Misura il valore Y medio per ciascun blocco campione specificato e determina il passaggio o il fallimento confrontando con il valore centrale Y. Il test dell'uniformità del colore viene valutato nello spazio R/G e B/G.

API Test:

Pass: al raggio specificato dell'immagine, la varianza del valore R/G e B/G deve essere inferiore al 20% per superare il test.

Scene6

Scene6 è una griglia di piccoli cerchi con un quadrato in un angolo per indicare l'orientamento. I piccoli cerchi sono necessari per testare la funzione di zoom su una vasta gamma.

Scene6

Scene6

test_in_sensor_zoom

Prova il comportamento della funzione di zoom in sensore della fotocamera, che produce immagini grezze ritagliate.

Con il caso di utilizzo del flusso impostato su CROPPED_RAW , il test prende due catture sulla gamma di zoom, un'immagine grezza Full Field of View (FOV) e un'immagine grezza ritagliata. Il test converte le immagini in array RGB, riduce l'immagine grezza di dimensioni standard alle dimensioni riportate da SCALER_RAW_CROP_REGION e calcola la differenza quadrata media della radice 3D (RMS) tra le due immagini.

API Test:

Pass: la differenza quadrata media della radice 3D (RMS) tra l'immagine grezza a corto abbattuta e l'immagine RAW FOV completa è inferiore all'1%.

test_zoom

Prova il comportamento dello zoom della fotocamera. Prende le catture sulla gamma di zoom e controlla se i cerchi diventano più grandi man mano che la fotocamera si ingrandisce.

API Test:

Pass: la dimensione relativa del cerchio catturato è accurata rispetto al rapporto zoom richiesto per garantire che la fotocamera stia zooming correttamente.

test_zoom

test_zoom per trovare il contorno del cerchio più vicino al centro.

test_low_latency_zoom

Prova il comportamento dello zoom della latenza a bassa latenza della fotocamera. Prende le catture sull'intervallo di zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) e controlla se i cerchi nelle immagini di output corrispondono ai rapporti zoom nei metadati di acquisizione.

API Test:

Pass: la dimensione relativa del cerchio catturato è accurata rispetto ai metadati del risultato del rapporto zoom.

test_preview_video_zoom_match

Prova che durante la registrazione e lo zoom, l'anteprima video e la visualizzazione dell'output video e registra lo stesso output. Calcola la dimensione del cerchio più vicino al centro a diversi rapporti di zoom e controlla se la dimensione del cerchio aumenta all'aumentare del rapporto zoom.

API Test:

Pass: la dimensione relativa del cerchio catturato è accurata rispetto al rapporto zoom richiesto in video e anteprima.

VGA_640X480_KEY_FRAME.png

VGA_640X480_KEY_FRAME.PNG (prima di zoom)

Anteprima_640x480_key_frame.png

Anteprima_640x480_key_frame.png (prima di 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 zoom)

scene_extensions

I test scene_extensions sono per le estensioni della fotocamera e devono utilizzare la fotocamera in una scatola , poiché richiedono un controllo preciso dell'ambiente di test.

scene_hdr

La scena scene_hdr è costituita da un ritratto a sinistra e un codice QR a basso contrasto sulla destra.

scene_hdr

scene_hdr

test_hdr_extension

Prova l' estensione HDR . Prende le catture con e senza l'estensione abilitata e controlla se l'estensione rende il codice QR più rilevabile.

API Test:

Pass: l'estensione HDR riduce il numero di modifiche al contrasto necessarie per rilevare il codice QR o ridurre il gradiente attraverso il codice QR.

scene_night

La scena scene_night è costituita da un cerchio bianco con quattro cerchi più piccoli al suo interno, il tutto su uno sfondo nero. Il cerchio più piccolo nell'angolo in alto a destra è più scuro degli altri per indicare l'orientamento.

scene_night

scene_night

test_night_extension

Prova l' estensione notturna . Prende le catture con e senza l'estensione abilitata e controlla quanto segue:

  • La cattura con l'estensione notturna abilitata richiede più tempo.
  • La cattura con l'estensione notturna abilitata è più luminosa o ha artefatti di scena con un aspetto migliorato.

API Test:

Pass: rispetto a una cattura senza l'estensione notturna abilitata, una cattura con l'estensione notturna abilitata richiede almeno 0,5 secondi in più. La cattura deve essere almeno al 10% più luminosa, oppure i punti grigi nella scena devono essere di 20 valori di pixel inferiori al centro del cerchio circostante.

sensor_fusion

I test di fusione del sensore richiedono un movimento del telefono specifico davanti a uno schema a scacchiera. Per risultati ottimali, assicurarsi che il grafico di prova sia montato in piano. I grafici che non sono piatti influenzano i calcoli di rotazione per molti test. I test sensor_fusion possono essere automatizzati con la casella di fusione del sensore .

scacchiera

Immagine della scacchiera

test_multi_camera_frame_sync

Test che i timestamp del frame catturati dalla telecamera logica sono entro 10 ms calcolando gli angoli di quadrati all'interno della scacchiera per determinare il timestamp.

API Test:

Pass: l'angolo tra le immagini di ciascuna fotocamera non cambia in modo sensibile poiché il telefono viene ruotato.

test_preview_stabilization

Test che si stabilizzano il video di anteprima ruota inferiore al giroscopio.

API Test:

Pass: la rotazione dell'angolo massimo sui frame è inferiore al 70% della rotazione del giroscopio.

Di seguito sono riportati video di esempio con e senza stabilizzazione.

  • Video di esempio con stabilizzazione

  • Video di esempio senza stabilizzazione

test_sensor_fusion

Vesta la differenza di timestamp tra la fotocamera e il giroscopio per le applicazioni AR e VR. Il telefono viene ruotato di 90 gradi 10 volte davanti al motivo a scacchiera. Il movimento è di circa 2 s di andata e ritorno. Questo test viene saltato se non è incluso nessun giroscopio o se il parametro REALTIME della sorgente timestamp non è abilitato.

Il test test_sensor_fusion genera un numero di grafici. Le due trame più importanti per il debug sono:

  • test_sensor_fusion_gyro_events : mostra gli eventi del giroscopio per il telefono durante il test. Il movimento nella direzione X e Y implica che il telefono non è montato in modo sicuro sulla piastra di montaggio, riducendo la probabilità del passaggio del test. Il numero di cicli nella trama dipende dalla velocità di scrittura per salvare i frame.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : mostra l'allineamento degli eventi del giroscopio e della fotocamera. Questo diagramma deve mostrare il movimento di abbinamento tra fotocamera e giroscopio a +/- 1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API Test:

Pass: l'offset dei timestamp della telecamera e del giroscopio è inferiore a 1 ms secondo i sensori di alta fedeltà CDD 7.3.9 [C-2-14] .

Meccanismi di fallimento:

  • Errore di offset: l'offset della fotocamera-gyroscopio non è correttamente calibrato in +/- 1 ms.
  • Dropili: la pipeline non è abbastanza veloce da catturare 200 frame consecutivamente.
  • Errori della presa: adb non può connettersi in modo affidabile al DUT abbastanza a lungo da eseguire il test.
  • Il grafico non è montato in piano. Il trama test_sensor_fusion_plot_rotations ha frame in cui il giroscopio e la rotazione della telecamera variano considerevolmente quando la fotocamera ruota attraverso le parti del grafico che non sono piatte.
  • La fotocamera non è montata in piano. Il trama test_sensor_fusion_gyro_events mostra il movimento nei piani X e Y. Questo fallimento è più comune nelle telecamere frontali poiché la fotocamera posteriore ha spesso un bump sollevato sul resto del corpo del telefono, creando un'inclinazione durante il montaggio della parte posteriore del telefono sulla piastra di montaggio.

test_video_stabilization

Test che si stabilizzano video ruota meno del giroscopio.

API Test:

Pass: la rotazione dell'angolo massimo sui frame è inferiore al 60% della rotazione del giroscopio.

Di seguito sono riportati video di esempio con e senza stabilizzazione.

  • Video di esempio con stabilizzazione

  • Video di esempio senza stabilizzazione

test_led_snapshot

Prova che le snapshot a LED non saturi o tint l'immagine.

Questo test aggiunge un controller di illuminazione alla scatola di fusione del sensore per controllare le luci. Con le luci impostate su OFF , il test accetta una cattura con la modalità AUTO_FLASH impostata su ON . Durante questa acquisizione, il test esegue una sequenza di precapt con il trigger aePrecapture set per START e imposta l'intenzione di acquisizione per Preview per prendere l'acquisizione con Flash.

Poiché l'acquisizione ha un hotspot distintivo dovuto al flash, il test calcola la media dell'immagine flash dell'intera cattura e verifica se il valore è all'interno dell'intervallo (68, 102). Per verificare se l'immagine è ragionevolmente bilanciata, il test calcola i rapporti R/G e B/G e verifica se i rapporti sono entro 0,95 e 1,05.

API Test:

Pass: i rapporti R/G e B/G sono entro 0,95 e 1,05. La media dell'immagine flash rientra nell'intervallo (68, 102).