Test ITS della fotocamera

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

I controlli ITS della fotocamera gestiscono i test in base alle proprietà della fotocamera richieste, al livello API e al livello della classe di prestazioni media (MPC). Per il livello API, ITS utilizza ro.product.first_api_level per eseguire i test di blocco aggiunti in un livello API specifico che testano le esperienze negative degli utenti per le funzionalità nei livelli API inferiori. ITS utilizza ro.vendor.api_level per eseguire test di controllo per le funzionalità aggiunte in un livello dell'API specifico che richiedono nuove funzionalità hardware. Se ro.odm.build.media_performance_class è definito per un dispositivo, ITS richiede l'esecuzione di test specifici a seconda del livello MPC.

I test sono raggruppati per scena come segue:

  • scene0: acquisisci metadati, jitter, giroscopio, vibrazione
  • scene1: esposizione, sensibilità, compensazione EV, YUV rispetto a JPEG/RAW
  • scene2: rilevamento dei volti, test che richiedono scene a colori
  • scene3: miglioramento dei bordi, movimento dell'obiettivo
  • scene4: proporzioni, ritaglio, campo visivo
  • scene5: ombreggiatura dell'obiettivo
  • scene6: zoom
  • scene7: passaggio tra più videocamere
  • scene8: misurazione della regione AE e AWB
  • scene9: compressione JPEG
  • scene_extensions: estensioni della fotocamera
  • scene_flash: flash automatico, frequenza frame minima
  • scene_video: cadute di frame
  • sensor_fusion: offset dei tempi della fotocamera/del giroscopio
  • feature_combination: combinazioni di funzionalità

Consulta le singole sezioni per una descrizione di ogni scena.

scene0

I test Scene0 non richiedono informazioni specifiche sulla scena. Tuttavia, lo smartphone deve essere statico per i test del giroscopio e delle vibrazioni.

test_jitter

Misura il jitter nei timestamp della videocamera.

API testate:

Passa:tra un frame e l'altro deve esserci almeno un delta di 30 ms.

test_jitter_plot.png

test_jitter_plot.png (nota l'intervallo ridotto dell'asse Y. Il jitter è in realtà ridotto in questo grafico.)

test_metadata

Verifica la validità delle voci dei metadati. Esamina i risultati di acquisizione e gli oggetti delle caratteristiche della fotocamera. Questo test utilizza i valori di auto_capture_request esposizione e guadagno perché i contenuti delle immagini non sono importanti.

API testate:

Passaggio: a livello di hardware, i tag rollingShutterSkew, frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, FoV, la distanza iperfocale sono presenti e hanno valori validi.

test_request_capture_match

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

API testate:

Passa:i valori dei metadati richiesti e acquisiti corrispondono in tutti gli scatti.

test_sensor_events

Verifica che le query del dispositivo e stampi gli eventi del sensore per i dispositivi che dichiarano di supportare la fusione dei sensori. I sensori previsti sono accelerometro, giroscopio e magnetometro. Questo test funziona solo se lo schermo è acceso, ovvero se il dispositivo non è in modalità standby.

API testate:

Pass: vengono ricevuti gli eventi per ciascun sensore.

test_solid_color_test_pattern

Verifica che i pattern di prova a colori uniformi vengano generati correttamente per la disattivazione dell'audio della videocamera. Se la disattivazione dell'audio della videocamera è supportata, devono essere supportati i pattern di test a tinta unita. Se la disattivazione dell'audio della videocamera non è supportata, i pattern di test a colori uniformi vengono testati solo se la funzionalità è pubblicizzata.

Se le immagini RAW sono supportate, 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:

Passato:i pattern di test solidi supportati sono del colore corretto e l'immagine presenta una bassa variabilità.

test_test_pattern

Testa il parametro android.sensor.testPatternMode per acquisire frame per ogni schema di prova valido e controlla che i frame vengano generati correttamente per colori pieni e barre di colore. Questo test include i seguenti passaggi:

  1. Acquisisce immagini per tutti i pattern di test supportati.
  2. Esegue un semplice controllo di correttezza per il motivo di prova a tinta unita e le barre di colore.

API testate:

Passato: gli schemi di test supportati vengono generati correttamente.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Testa 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 pattern di immagine perfetto per la conversione della mappatura tonale. Garantisce che la pipeline abbia uscite di colore adeguate con mappatura tonale lineare e input di immagine ideale (si basa su test_test_patterns).

API testate:

Pass: i file YUV e RAW sono 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 dell'immagine e del sensore di movimento si trovano nello stesso dominio temporale.

API testate:

Passa:i timestamp dei movimenti sono compresi tra i due timestamp delle immagini.

test_vibration_restriction

Verifica se la vibrazione del dispositivo funziona come previsto.

API testate:

Pass: il dispositivo non vibra quando viene disattivato dall'API di limitazione audio della videocamera.

scene1

La scena 1 è un grafico grigio. Il grafico grigio deve coprire il 30% centrale del campo visivo della videocamera. Il grafico grigio dovrebbe mettere moderatamente alla prova le funzionalità di 3A (esposizione automatica, bilanciamento del bianco automatico, messa a fuoco automatica) poiché la regione centrale non presenta elementi. Tuttavia, la richiesta di acquisizione specifica l'intera scena, che include funzionalità sufficienti per la convergenza della tecnologia 3A.

Le videocamere RFoV possono essere testate nell'apparecchiatura di test WFoV o RFoV. Se una videocamera con campo visivo a raggio ridotto viene testata nell'apparecchiatura di test con campo visivo a tutto tondo, il grafico viene scalato per ⅔ per garantire alcuni limiti per il grafico grigio nel campo visivo in modo da favorire la convergenza della 3A. Per descrizioni più dettagliate delle piattaforme di test delle videocamere, consulta ITS-in-a-box per videocamere.

scene1

scene1: grafico a grandezza originale (a sinistra). Grafico con scala ⅔ (a destra).

test_ae_precapture_trigger

Testa la macchina a stati AE quando si utilizza l'attivatore di preacquisizione. Acquisisci cinque richieste manuali con l'AE disattivato. L'ultima richiesta ha un attivatore AE preacquisizione, che deve essere ignorato perché l'AE è disattivato.

API testate:

Passa: l'AE converge.

test_auto_vs_manual

I test che hanno acquisito foto automatiche e manuali sono uguali.

API testate:

Pass: i guadagni e la trasformazione del bilanciamento del bianco manuale registrati in ogni risultato di acquisizione corrispondeno al bilanciamento del bianco automatico estimate dell'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

test_black_white

Verifica che il dispositivo produca immagini completamente in bianco e nero. Scatta due foto: la prima con guadagno estremamente basso ed esposizione breve, che genera una foto nera, e la seconda con guadagno estremamente elevato ed esposizione lunga, che genera una foto bianca.

API testate:

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

test_black_white_black test_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_capture

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

API testate:

Passa:acquisisce una raffica di immagini a grandezza naturale, controlla la luminosità dell'immagine e gli eventuali cali di frame.

test_burst_sameness_manual

Scatta 5 foto simili con l'impostazione di acquisizione manuale e controlla che siano tutte uguali. Questo test può essere utilizzato per identificare se sono presenti frame sporadici che vengono elaborati in modo diverso o contengono artefatti.

API testate:

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

Non riuscito: mostra un picco o un calo del grafico medio RGB all'inizio di ogni scoppio

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

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

API testate:

Pass: i metadati sono validi per tutte le acquisizioni e le impostazioni manuali non vengono trasferite alla seconda acquisizione automatica. Grafica 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 gli stream RAW non siano ritagliabili.

API testate:

Passa: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 che le regioni di ritaglio funzionino. Acquisisce un'immagine completa e crea patch di 5 regioni diverse (angoli e centro). Scatta foto con il ritaglio impostato per le 5 regioni. Confronta i valori dell'immagine patch e dell'immagine ritagliata.

API testate:

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

test_dng_noise_model

Verifica che i parametri del modello RAW DNG siano corretti. Il grafico mostra la variazione misurata di una patch centrale della scheda grigia negli scatti RAW acquisiti su un intervallo di sensibilità e confronta questi valori con la variazione prevista per ogni sensibilità dal modello di rumore DNG nell'HAL della fotocamera (in base ai parametri O,S. restituiti negli oggetti del risultato di acquisizione). Per ulteriori dettagli sul modello di rumore DNG, scarica il seguente documento sul modello di rumore DNG.

API testate:

Pass: i parametri del modello RAW DNG sono corretti. I valori RGB previsti corrispondono a quelli RGB effettivi misurati.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Verifica che la compensazione del valore di esposizione (EV) sia applicata. Il test aumenta l'esposizione in otto passaggi e controlla la luminosità misurata rispetto alla luminosità preveduta. I valori previsti vengono calcolati dalla luminosità dell'immagine senza compensazione EV applicata e il valore previsto viene saturato se i valori calcolati superano l'intervallo di valori dell'immagine effettiva. Il test non va a buon fine se i valori previsti e quelli misurati non corrispondono o se le immagini sono sovraesposte entro cinque passaggi.

API testate:

Passa:le immagini mostrano un'esposizione crescente senza sovraesposizione in 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 acquisiti otto frame per ogni valore di compensazione.

API testate:

Pass: l'aumento della luminosità viene acquisito con l'aumento dell'impostazione di compensazione dell'EV e gli otto frame acquisiti per ogni impostazione di compensazione dell'EV hanno valori di luminosità stabili.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure_x_iso

Verifica che venga raggiunta un'esposizione costante man mano che ISO e tempo di esposizione variano. Scatta una serie di foto con ISO e tempo di esposizione scelti in modo da bilanciarsi a vicenda. I risultati dovrebbero avere la stessa luminosità, ma nel corso della sequenza l'immagine dovrebbe diventare più rumorosa. Verifica che i valori medi dei pixel del campione siano vicini tra loro. Garantisce che le immagini non siano limitate 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:

Passa:le immagini hanno la stessa luminosità, ma sono più rumorose con un ISO più elevato. I piani RGB sono piatti quando il valore di ISO*esposizione è costante nell'intervallo di guadagno testato.

Meccanismo di errore:

  • In test_exposure_plot_means.png, con l'aumento dei valori del moltiplicatore di guadagno (asse x), i valori medi del piano RGB normalizzato (asse y) iniziano a discostarsi dai valori del moltiplicatore di guadagno basso.

test_exposure_plot_means

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 hanno dimostrato che le immagini YUV convertite e le immagini JPEG del dispositivo hanno lo stesso aspetto. Il test prende il 10% centrale dell'immagine, ne calcola il valore RGB e verifica che corrispondano.

API testate:

Passaggio: la differenza RGB media tra ogni immagine è inferiore al 3%.

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

test_latching

Verifica che le impostazioni (esposizione e guadagno) si aggancino al frame corretto per le videocamere FULL e LEVEL_3. Scatta una serie di foto utilizzando richieste consecutive, variando i parametri di richiesta di acquisizione tra una foto e l'altra. Verifica che le immagini abbiano le proprietà previste.

API testate:

Passaggio: le immagini [2, 3, 6, 8, 10, 12, 13] hanno un'ISO o un'esposizione aumentate e appaiono con medie RGB più elevate 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

test_latching_plot_means

test_latching_plot_means.png

test_linearity

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

API testate:

Pass: i valori R, G, B devono aumentare in modo lineare con l'aumento della sensibilità.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

Testa il blocco 3A e l'esplosione YUV (utilizzando l'impostazione automatica). Questo test è progettato per essere superato anche su dispositivi con limitazioni che non dispongono di MANUAL_SENSOR o PER_FRAME_CONTROLS. Il test controlla la coerenza delle immagini YUV, mentre il controllo della frequenza frame è in CTS.

API testate:

Passa: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. Scatta foto 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 mappatura tonale lineare. La mappatura tonale è una tecnica impiegata nell'elaborazione delle immagini per mappare un insieme di colori a un altro in modo da approssimare l'aspetto delle immagini ad alta gamma dinamica in un mezzo con una gamma dinamica più limitata.

API testate:

Passa:i valori R e B vengono aumentati in base alla trasformazione.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*L'asse x indica le richieste di acquisizione: 0 = unità, 1=boost rosso, 2= boost 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 (R boost)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (B boost)

test_param_flash_mode

Verifica che il parametro android.flash.mode venga applicato. Imposta manualmente l'esposizione sul lato scuro, in modo che sia evidente se il flash è stato attivato o meno, e utilizza una mappatura tonale lineare. Controlla il centro con l'immagine a riquadri per vedere se viene creato un gradiente ampio per verificare se il flash è stato attivato.

API testate:

Pass: il centro dell'immagine del riquadro presenta un ampio gradiente, 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. Scatta foto con la fotocamera poco illuminata. Utilizza un guadagno analogico elevato per assicurarsi che l'immagine acquisita sia rumorosa. Acquisisce tre immagini con riduzione del rumore disattivata, "veloce" e "alta qualità". Acquisisce anche un'immagine con guadagno basso e NR disattivato e utilizza la varianza di questa come linea di base. Maggiore è il rapporto SNR (segnale/disturbo), migliore è la qualità dell'immagine.

API testate:

Passa: il rapporto SNR varia in base alle diverse modalità di riduzione del rumore e si comporta in modo simile al grafico riportato di seguito.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: OFF, 1: FAST, 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_shading_mode

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

API testate:

Passaggio: 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 curve di mappatura tonale diverse a ciascun canale R, G, B e controlla che le immagini di output siano modificate come previsto. Questo test è composto da due test, test1 e test2.

API testate:

Pass:

  • test1: entrambe le immagini hanno una mappatura tonale lineare, ma n=1 ha un gradiente più accentuato. Il canale G (verde) è più luminoso per l'immagine n=1.
  • test2: stessa mappatura tonale, ma durata diversa. Le immagini sono uguali.
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

test_post_raw_sensitivity_boost

Controlla l'aumento 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:

Passa:le immagini RAW diventano più scure man mano che l'aumento aumenta, 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

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_sensitivity

Acquisisce un insieme di immagini RAW con guadagni crescenti e misura il rumore. Acquisisce solo in formato RAW, in una raffica.

API testate:

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

Utilizza la varianza della cella della griglia delle statistiche centrali.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

Acquisisce un insieme di immagini RAW con un tempo di esposizione crescente e misura i valori dei pixel.

API testate:

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

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

Acquisisce un insieme di immagini RAW con sensibilità crescenti 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 con ogni scatto.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

Test che verificano che android.noiseReduction.mode venga applicato per le richieste di rielaborazioni. Acquisisce immagini riprocessate con la fotocamera poco illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine acquisita sia rumorosa. Acquisisce tre immagini riprocessate, per NR off, "veloce" e "alta qualità". Acquisisce un'immagine elaborata di nuovo con guadagno basso e NR disattivato e utilizza la varianza come base di riferimento.

API testate:

Passa:FAST >= OFF, HQ >= FAST, HQ >> OFF

Grafico SNR vs NR_MODE tipico

Grafico SNR vs NR_MODE tipico

test_tonemap_sequence

Testa una sequenza di scatti con curve di mappatura tonale diverse. Acquisisce 3 scatti manuali con una mappatura tonale lineare. Scatta 3 foto manuali con la mappatura tonale predefinita. Calcola il delta tra ogni coppia di frame consecutivi.

API testate:

Pass: sono presenti 3 frame identici seguiti da un altro insieme 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_all

Verifica che tutte le dimensioni e i formati segnalati per l'acquisizione delle immagini funzionino. Utilizza una richiesta manuale con una mappatura tonale lineare in modo che 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:

Passaggio: tutti i centri delle immagini hanno una differenza massima RMS (valore quadratico medio di un segnale) nelle immagini RGB convertite 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:

Passato:il test viene completato 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 mappatura tonale lineare in modo che YUV e JPEG abbiano lo stesso aspetto quando vengono convertiti dal modulo image_processing_utils.

API testate:

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

test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Verifica la cattura di un singolo frame sia come output RAW/RAW10/RAW12 sia come YUV, se supportato. Utilizza una richiesta manualmente con mappatura tonale lineare, quindi i formati RAW e YUV dovrebbero essere uguali. Confronta i valori RGB del 10% del centro delle immagini convertite in RGB. Logandroid.shading.mode.

API testate:

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

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

scene2_a

scene2_a ha tre volti con uno sfondo grigio e abbigliamento neutro. I volti vengono scelti per avere un'ampia gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto per il funzionamento ottimale del rilevamento dei volti.

scene2_a

scene2_a

test_autoframing

Testa il comportamento del ritaglio automatico della videocamera. Esegue uno zoom elevato in modo che nessuno dei volti nella scena sia visibile, attiva la modalità di inquadratura automatica impostandoAUTOFRAMING in CaptureRequest suTrue e verifica se tutti i volti nella scena originale possono essere rilevati quando lo stato converrebbe (ovvero quando AUTOFRAMING_STATE in CaptureResult è impostato su AUTOFRAMING_STATE_CONVERGED).

API testate:

Passa:sono stati rilevati tutti e tre i volti.

test_display_p3

Testa la cattura in JPEG del Display P3 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:

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

test_effects

Acquisisce il frame 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:

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

test_effects_MONO

test_effects_MONO.jpg

test_format_combos

Testa diverse combinazioni di formati di output.

API testate:

Pass: tutte le combinazioni sono state acquisite correttamente.

test_num_faces

Testa il rilevamento dei volti.

API testate:

Passa:trova tre volti.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_reprocess_uv_swap

Verifica che il ricalcolo YUV non scambi i piani U e V. Questo viene rilevato calcolando la somma delle differenze assolute (SAD) tra l'immagine elaborata nuovamente e un'acquisizione non elaborata nuovamente. Se lo scambio dei piani U e V dell'acquisizione elaborata nuovamente comporta un aumento dell'SAD, si presume che l'output abbia i piani U e V corretti.

API testate:

Pass: i piani U e V non sono scambiati.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

scene2_b

test_num_faces

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

API testate:

Passa:vengono trovati 3 volti.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

Acquisisce due immagini utilizzando i formati YUV e JPEG più comuni con le stesse proporzioni del formato JPEG più grande e una risoluzione non superiore a 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.

Inoltre, questo test verifica che le uscite YUV per tutti i casi d'uso dello stream supportati siano ragionevolmente simili a quelle YUV con il caso d'uso STILL_CAPTURE.

API testate:

Passaggio: le immagini YUV e JPEG per il caso d'uso STILL_CAPTURE presentano una differenza RMS (valore quadratico medio di un segnale) inferiore al 3%; le immagini YUV per tutti i casi d'uso supportati presentano una differenza RMS inferiore al 10% rispetto alle immagini YUV con il caso d'uso STILL_CAPTURE.

scene2_c

test_num_faces

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

API testate:

Passa:vengono trovati 3 volti.

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.

Passaggio: la latenza di acquisizione JPEG della fotocamera 2 DEVE essere inferiore a 1000 ms per la risoluzione 1080p, misurata dal test di prestazioni della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

test_camera_launch_perf_class

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

Passaggio: la latenza di avvio della fotocamera 2 (apertura della fotocamera al primo frame di anteprima) DEVE essere inferiore a 600 ms, misurata dal test di prestazioni della fotocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

test_default_camera_hdr

Verifica che l'acquisizione della fotocamera predefinita sia Ultra HDR per la classe di prestazioni 15 come specificato nella sezione 2.2.7.2 Fotocamera del CDD.

Pass: l'acquisizione dei pacchetti della videocamera predefinita DEVE essere Ultra HDR per un dispositivo di classe di prestazioni 15.

scene2_d

test_num_faces

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

API testate:

Passa:vengono trovati 3 volti.

scene2_e

test_continuous_picture

Vengono acquisiti 50 frame con risoluzione VGA con l'impostazione di richiesta di acquisizione come prima android.control.afMode = 4 (CONTINUOUS_PICTURE).

API testate:

Pass: il sistema 3A si stabilizza al termine di un'acquisizione di 50 fotogrammi.

test_num_faces

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

API testate:

Passa:vengono trovati 3 volti.

scene2_f

scene2_f ha tre volti con sfondo e abbigliamento bianchi. I volti hanno un'ampia gamma di tonalità della pelle e un alto contrasto con lo sfondo.

scene2_f.png

scene2_f

test_num_faces

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

API testate:

Passa:vengono trovati 3 volti.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scene3

Scene3 utilizza il grafico ISO12233 e la maggior parte dei test utilizza un metodo di estrazione del grafico per trovarlo 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 per il corretto funzionamento del Ricerca grafici.

test_edge_enhancement

Verifica che il parametro android.edge.mode venga applicato correttamente. Acquisisce immagini non sottoposte a elaborazione per ogni modalità di bordo e restituisce la nitidezza dell'immagine di output e i metadati del risultato di acquisizione. Elabora una richiesta di acquisizione con un determinato parametro di modalità di sfocatura, sensibilità, tempo di esposizione, distanza di messa a fuoco e superficie di output.

Passa: la modalità HQ (2) è più nitida della modalità OFF (0). La modalità FAST (1) è più nitida della modalità OFF. La modalità HQ sia più nitida o uguale alla modalità FAST.

API testate:

Parametri della fotocamera 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à rapida)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (modalità alta qualità)

test_flip_mirror

Verifica se l'immagine è orientata correttamente come indicato nella sezione 7.5.2 della CDD Fotocamera anteriore [C-1-5].

Le immagini speculari, capovolte o ruotate possono essere identificate dalla forma a diamante nei pressi del centro.

Pass: l'immagine non è capovolta, speculare o ruotata.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_imu_drift

Verifica se l'unità di misura inerziale (IMU) ha un'uscita stabile per 30 secondi mentre il dispositivo è fermo e acquisisce un'anteprima ad alta definizione.

API testate:

Pass:

  • La deriva del giroscopio è inferiore a 0,01 rad durante il tempo di test.
  • La varianza della lettura del giroscopio è inferiore a 1E-7 rad2/s2/Hz durante il tempo del test.
  • La deriva del vettore di rotazione è inferiore a 0,01 rad durante il tempo di test.
  • (Non ancora obbligatorio) la deriva del giroscopio è inferiore a 1 grado al secondo.

test_imu_drift_gyro_drift.png

test_imu_drift_gyro_drift.png

test_imu_drift_rotation_vector_drift.png

test_imu_drift_rotation_vector_drift.png

test_landscape_to_portrait

Verifica se l'override da orizzontale a verticale funziona correttamente per i sensori orientati orizzontalmente.

API testate:

Passaggio: il test è in grado di individuare un grafico con la rotazione prevista (0 gradi se l'override da orizzontale a verticale è disattivato, 90 gradi se attivato).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Verifica se l'indicatore del movimento dell'obiettivo viene segnalato correttamente. Acquisisce una raffica di 24 immagini con i primi 12 fotogrammi alla distanza di messa a fuoco ottimale (rilevata da 3A) e gli ultimi 12 fotogrammi alla distanza di messa a fuoco minima. Intorno al fotogramma 12, l'obiettivo si muove causando un calo della nitidezza. La nitidezza si stabilizza quando l'obiettivo si sposta nella posizione finale. L'indicatore del movimento dell'obiettivo deve essere attivato in tutti i fotogrammi in cui la nitidezza è intermedia rispetto alla nitidezza nei primi fotogrammi con l'obiettivo fermo alla distanza focale ottimale e negli ultimi fotogrammi in cui l'obiettivo è fermo alla distanza focale minima. Il fotogramma esatto in cui si muove l'obiettivo non è importante: viene controllato che il flag di movimento sia attivato quando l'obiettivo si muove.

API testate:

Pass: l'indicatore del movimento dell'obiettivo è True nell'inquadratura con variazione di nitidezza.

Meccanismi di errore:

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

test_reprocess_edge_enhancement

Verifica se i metodi di elaborazione supportati per il miglioramento dei bordi funzionano correttamente. Elabora una richiesta di acquisizione con una determinata modalità di elaborazione di sbordo e confronta diverse modalità di acquisizione con le modalità di elaborazione di sbordo disattivate.

API testate:

Passaggio: la nitidezza per le diverse modalità di 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

scene4

La scena 4 è costituita da un cerchio nero su sfondo bianco all'interno di un quadrato. I test in scene4 possono essere sensibili all'allineamento, quindi a partire dalla versione 15 puoi utilizzare check_alignment.py nella directory degli strumenti per attivare un controllo del DUT e dell'allineamento del grafico.

scene4

scene4

test_30_60fps_preview_fov_match

Verifica che i video di anteprima a 30 FPS e 60 FPS abbiano lo stesso FOV. Il test acquisisce due video, uno a 30 f/s e l'altro a 60 f/s. Da ogni video viene selezionato un frame rappresentativo e analizzato per verificare che le variazioni dell'angolo di campo nei due video rientrino nelle specifiche. Verifica che le proporzioni del cerchio rimangano costanti, che il centro del cerchio rimanga stabile e che il raggio del cerchio rimanga costante.

API testate:

Passaggio: le immagini non sono allungate, il centro delle immagini non differisce per più del 3% e la variazione massima delle proporzioni tra i video a 30 FPS e a 60 FPS non supera il 7,5%

Meccanismi di errore:

  • Il cerchio del video a 30 f/s è molto più grande rispetto a quello del video a 60 f/s.
  • Il cerchio nell'immagine acquisita è distorto dalla pipeline di elaborazione.
  • Il cerchio nell'immagine acquisita è stato 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 presenta un riflesso al centro e non sembra completamente pieno.

test_aspect_ratio_and_crop

Verifica se le immagini sono distorte o ritagliate in modo imprevisto nella pipeline di immagini. Scatta foto di un cerchio in tutti i formati. Verifica che il cerchio non sia distorto, che non si sposti dal centro dell'immagine e che non cambi dimensione in modo errato con proporzioni o risoluzioni diverse.

API testate:

Passaggio: le immagini non sono allungate, il centro delle immagini non differisce per più del 3% e il campo visivo (FoV) massimo possibile viene mantenuto.

Meccanismi di errore:

  • La fotocamera non è allineata al cerchio visualizzato sul centro del tablet nella scena acquisita.
  • Il cerchio nell'immagine acquisita è distorto dalla pipeline di elaborazione.
  • L'immagine a bassa risoluzione viene ritagliata due volte nella pipeline di immagini, creando un FOV diverso tra le immagini ad alta e bassa risoluzione.
  • Il cerchio nell'immagine acquisita è stato 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 presenta un riflesso al centro e non sembra completamente pieno.

test_multi_camera_alignment

Testa i parametri di calibrazione della videocamera relativi al posizionamento della videocamera per i sistemi con più videocamere. Utilizzando le fotocamere secondarie fisiche con più fotocamere, scatta una foto con una delle fotocamere fisiche. Trova il centro del cerchio. Proietta il centro del cerchio sulle coordinate mondiali per ogni videocamera. Confronta la differenza tra i centri dei cerchi delle videocamere in coordinate mondiali. Riproduce le coordinate mondiali in coordinate pixel e le confronta con quelle originali come controllo di validità. Confronta le dimensioni dei cerchi per verificare se le lunghezze focali delle videocamere sono diverse.

API testate:

Passaggio: i centri e le dimensioni dei cerchi sono come 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 videocamere non è appropriato per la configurazione del test. Ad esempio, il test di un sistema di fotocamere wide e ultrawide con il banco di prova RFoV. Per ulteriori informazioni, consulta la Domande frequenti 1 sull'ITS-in-a-box per le videocamere.

test_preview_aspect_ratio_and_crop

Analogamente al test test_aspect_ratio_and_crop per le acquisizioni di immagini, questo test controlla i formati di anteprima supportati per assicurarsi che i frame di anteprima non siano allungati o ritagliati in modo inappropriato. Verifica che le proporzioni del cerchio non cambino, che le immagini ritagliate mantengano il cerchio al centro dell'inquadratura e che le dimensioni del cerchio non cambino per un formato costante o con risoluzioni diverse (controllo del campo visivo).

API testate:

Passaggio: le immagini non sono allungate, il centro delle immagini non differisce di più del 3% e il campo visivo (FoV) massimo possibile viene mantenuto.

test_preview_stabilization_fov

Controlla le dimensioni di anteprima supportate per assicurarti che il FOV sia ritagliato correttamente. Il test acquisisce due video, uno con la stabilizzazione dell'anteprima ON e un altro con la stabilizzazione dell'anteprima OFF. Da ogni video viene selezionato un frame rappresentativo e analizzato per verificare che le variazioni dell'angolo di campo nei due video rientrino nelle specifiche.

API testate:

Passaggio: il rapporto di aspetto del cerchio rimane approssimativamente costante, la posizione del centro del cerchio rimane stabile e le dimensioni del cerchio non cambiano più del 20%.

test_video_aspect_ratio_and_crop

Scatta video di un cerchio all'interno di un quadrato in tutti i formati video. Estrae i fotogrammi chiave e verifica che le proporzioni del cerchio non cambino, le immagini ritagliate mantengano il cerchio al centro e le dimensioni del cerchio non variino per un formato costante o con una risoluzione diversa (controllo del campo visivo).

API testate:

Passaggio: i fotogrammi video non sono allungati, il centro dei fotogrammi non differisce di più del 3% e il FOV (campo visivo) massimo possibile viene mantenuto.

scene5

La scena 5 richiede una scena grigia illuminata in modo uniforme. Questo viene ottenuto con un diffusore collocato sopra l'obiettivo della fotocamera. Ti consigliamo il seguente diffusore: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Per preparare la scena, attacca un diffusore davanti alla fotocamera e puntala verso una fonte di illuminazione di circa 2000 lux. Le immagini acquisite per la scena 5 richiedono un'illuminazione diffusa senza elementi evidenti. Di seguito è riportata un'immagine di esempio:

scene5

acquisizione scena5

test_lens_shading_and_color_uniformity

Verifica che la correzione dell'ombreggiatura dell'obiettivo venga applicata in modo appropriato e che il colore di una scena monocromatica uniforme sia distribuito in modo uniforme. Esegui questo test su un frame YUV con 3A automatico. L'ombreggiatura dell'obiettivo viene valutata in base al canale Y. Misura il valore medio di y per ogni blocco di campioni specificato e determina se il test è superato o meno confrontandolo con il valore di y del centro. Il test di uniformità del colore viene valutato nello spazio r/g e b/g.

API testate:

Passaggio: al raggio specificato dell'immagine, la varianza del valore di r/g e b/g deve essere inferiore al 20% per superare il test.

scene6

La scena 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 un ampio intervallo. I test in scene6 possono essere sensibili all'allineamento, quindi a partire dalla versione 15 puoi utilizzare check_alignment.py nella directory degli strumenti per attivare un controllo del DUT e dell'allineamento del grafico.

scene6

scene6

test_in_sensor_zoom

Testa il comportamento della funzionalità di zoom in-sensor della fotocamera, che produce immagini RAW ritagliate.

Con il caso d'uso dello stream impostato su CROPPED_RAW, il test acquisisce due foto nell'intervallo di zoom, un'immagine RAW con campo visivo (FoV) completo e un'immagine RAW ritagliata. Il test converte le immagini in array RGB, riduce le dimensioni dell'immagine RAW ritagliata a quelle riportate da SCALER_RAW_CROP_REGION e calcola la differenza quadratica media (RMS) 3D tra le due immagini.

API testate:

Passato: la differenza quadratica media (RMS) 3D tra l'immagine RAW ritagliata e ridimensionata e l'immagine RAW completa del campo visivo è inferiore alla soglia impostata nel test.

test_zoom

Testa il comportamento dello zoom della fotocamera. Acquisisce foto nell'intervallo di zoom e controlla se i cerchi si ingrandiscono man mano che la fotocamera aumenta lo zoom. Per ogni formato (YUV, JPEG), viene utilizzata la stessa sessione di acquisizione della fotocamera per convergere la 3A e acquisire le foto.

API testate:

Pass: le dimensioni relative del cerchio acquisito sono accurate rispetto al rapporto di zoom richiesto per garantire che lo zoom della fotocamera sia corretto.

test_zoom

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

test_low_latency_zoom

Testa il comportamento dello zoom a bassa latenza della fotocamera. Acquisisce le immagini nell'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 delle acquisizioni. La stessa sessione di acquisizione della fotocamera viene utilizzata per convergere 3A e acquisire le foto.

API testate:

Pass: le dimensioni relative del cerchio acquisito sono accurate rispetto ai metadati del risultato del rapporto di zoom.

test_preview_video_zoom_match

Verifica che durante la registrazione e lo zoom, l'anteprima e l'uscita video mostrino e registrino lo stesso output. Calcola le dimensioni del cerchio più vicino al centro con diversi rapporti di zoom e controlla se le dimensioni del cerchio aumentano con l'aumentare del rapporto di zoom.

API testate:

Passa:le dimensioni relative del cerchio acquisito sono accurate rispetto al rapporto di zoom richiesto nel video e nell'anteprima.

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (prima dello zoom)

preview_640x480_key_frame.png

preview_640x480_key_frame.png (prima dello zoom)

VGA_640x480_key_frame_zoomed.png

VGA_640x480_key_frame.png (dopo lo zoom)

preview_640x480_key_frame_zoomed.png

preview_640x480_key_frame.png (dopo lo zoom)

test_preview_zoom

Verifica che il rapporto di zoom di ogni frame di anteprima corrisponda ai metadati di acquisizione corrispondenti. Il test acquisisce i frame di anteprima nell'intervallo di zoom e trova il contorno del cerchio più vicino al centro. Il test verifica quindi che il cerchio selezionato aumenti di dimensioni e che il centro del cerchio si allontani dal centro dell'immagine man mano che la fotocamera aumenta lo zoom.

API testate:

Pass: le dimensioni relative del cerchio selezionato sono precise per il rapporto di zoom registrato del risultato di acquisizione corrispondente per tutti i frame di anteprima. La distanza relativa del cerchio selezionato dal centro dell'immagine è accurata per il rapporto di zoom registrato del risultato di acquisizione corrispondente di tutti i frame di anteprima.

test_zoom

Immagini di test_preview_zoom che mostrano il cerchio selezionato più vicino al centro

test_session_characteristics_zoom

Testa l'intervallo del rapporto di zoom per tutte le configurazioni delle sessioni supportate elencate in CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION. Per ciascuna di queste configurazioni, se CameraDeviceSetup#isSessionConfigurationSupported restituisce true, il test verifica che l'intervallo di rapporti di zoom restituito in CameraDeviceSetup#getSessionCharacteristics possa essere raggiunto.

API testate:

Passa:è possibile raggiungere sia i rapporti di zoom minimi che massimi per ogni SessionConfiguration supportato elencato in CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION.

scene7

La scena 7 è un riquadro rettangolare diviso in quattro quadranti uguali, ciascuno riempito con un colore diverso. Al centro del rettangolo è presente un grafico con bordi inclinati per i controlli della nitidezza. Quattro indicatori ArUco sono allineati ai quattro angoli esterni del rettangolo per contribuire a ottenere coordinate precise del riquadro del rettangolo principale con rapporti di zoom diversi.

scene7

scene7

test_multi_camera_switch

Questo test verifica che durante la registrazione dell'anteprima con rapporti di zoom diversi, il passaggio dall'obiettivo ultrawide (UW) a quello grandangolare (W) generi valori RGB simili.

Il test utilizza diversi rapporti di zoom nell'intervallo predefinito per eseguire una registrazione dell'anteprima dinamica e identificare il punto in cui cambia la fotocamera fisica. Questo punto segna il passaggio dall'obiettivo UW a quello W.

I fotogrammi acquisiti al punto di crossover e prima vengono analizzati per quanto riguarda l'esposizione automatica (AE), il bilanciamento del bianco automatico (AWB) e l'autofocus (AF).

Il controllo AE garantisce che la variazione di luminosità rientri nell'intervallo previsto sia per le immagini con obiettivi UW che per quelle con obiettivi W. Il controllo AWB verifica che i rapporti R/G e B/G rientrino nei valori di soglia sia per le immagini con obiettivi UW sia per quelle con obiettivi W. Il controllo dell'AF valuta il valore della stima della nitidezza in base all'intensità media del gradiente tra le immagini dell'obiettivo UW e W.

API testate:

Passato:per superare il test, i controlli AE, AWB e AF devono essere tutti superati. Di seguito sono riportati i criteri per ogni controllo:

  • Controllo AE: la variazione di luminosità tra le immagini dell'obiettivo UW e W deve essere inferiore al 0,5%.
  • Controllo AWB: la differenza tra i valori R/G e B/G per le immagini dell'obiettivo UW e W deve essere inferiore allo 0,5%.
  • Controllo AF: la variazione di nitidezza delle immagini tra l'obiettivo UW e l'obiettivo W deve essere inferiore al 2%.

scene8

La scena 8 è un'inquadratura rettangolare divisa in quattro regioni uguali, ciascuna contenente un ritratto scattato con un'esposizione diversa o sovrapposto a una tonalità di colore diversa (tinta blu, esposizione aumentata, esposizione diminuita, tinta gialla). Quattro indicatori ArUco sono allineati ai quattro angoli esterni del rettangolo per ottenere coordinate precise del frame del rettangolo principale.

scene8

scene8

test_ae_awb_regions

Verifica che i valori RGB e luma siano diversi durante la registrazione dell'anteprima in regioni di esposizione automatica (AE) e bilanciamento del bianco automatico (AWB) diverse.

Il test registra un'anteprima di otto secondi, eseguendo la misurazione AE e AWB su ogni quadrante per due secondi ciascuno. Il test estrae quindi un frame dalla registrazione di anteprima di ogni regione e utilizza i frame estratti per eseguire i seguenti controlli AE e AWB:

  • Controllo AE: verifica che il fotogramma che misura la regione con esposizione ridotta abbia un valore di luminosità aumentato di più dell'1% rispetto al fotogramma che misura la regione con esposizione aumentata. In questo modo viene verificato che le immagini vengano illuminate quando viene misurata una regione scura.
  • Controllo AWB: verifica che il rapporto tra rosso e blu (dei valori RGB medi dell'immagine) nell'inquadratura con la regione di misurazione blu sia superiore al 2% rispetto all'inquadratura con la regione di misurazione gialla. In questo modo viene verificato che le immagini abbiano un valore RGB bilanciato quando viene misurata una regione gialla (calda) o blu (fredda).

API testate:

Superato:i controlli AE e AWB superano entrambi.

Meccanismi di errore:

  • Per questo test è essenziale il rilevamento accurato di tutti e quattro gli indicatori ArUco. Se il rilevamento iniziale non va a buon fine, il sistema tenta un secondo passaggio di rilevamento utilizzando una versione in bianco e nero dell'immagine. La seguente immagine in scala di grigi rappresenta il passaggio di elaborazione secondario.

    Mancata allineamento degli indicatori ArUco

scene9

Scene9 è composta da migliaia di cerchi di dimensioni e colori casuali per creare una scena con una ripetibilità molto bassa al fine di sottoporre a stress gli algoritmi di compressione JPEG.

scene9

scene9

test_jpeg_high_entropy

Verifica che la compressione JPEG della fotocamera funzioni su scene9 con elevata entropia e il fattore di qualità JPEG impostato su 100%. Il fattore di zoom viene aumentato per garantire che la scena visualizzata sul tablet riempia il campo visivo della videocamera.

API testate:

Pass: il file JPEG viene compresso correttamente, scritto e letto di nuovo dal disco.

test_jpeg_quality

Testa la qualità della compressione JPEG della fotocamera. Passa le qualità JPEG android.jpeg.quality e assicurati che le tabelle di quantizzazione vengano modificate correttamente.

API testate:

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

test_jpeg_quality

Medie della matrice DQT luma/chroma della fotocamera posteriore di Pixel 4 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 viene registrato alcun aumento della compressione nella matrice di quantizzazione.

scene_video

La scena scene_video è una scena video. È costituito da quattro cerchi di colori diversi che si muovono avanti e indietro a frequenze diverse su sfondo bianco.

scene_video

test_preview_frame_drop

Verifica che la frequenza dei fotogrammi dell'anteprima richiesta venga mantenuta con una scena dinamica. Questo test viene eseguito su tutte le videocamere esposte ad app di terze parti.

API testate:

Passato: la frequenza frame dell'anteprima è al massimo dell'intervallo richiesto e la variazione media tra i frame consecutivi è inferiore alla tolleranza relativa impostata nel test.

scene_extensions

I test scene_extensions sono destinati alle estensioni della videocamera e richiedono l'uso di ITS-in-a-Box per la videocamera, poiché richiedono un controllo preciso dell'ambiente di test. Inoltre, deve essere controllata tutta la fuoriuscita di luce. Potrebbe essere necessario coprire il banco di prova, il DUT e il tablet con un telo e eliminare la fuoriuscita di luce dallo schermo anteriore del DUT.

scene_hdr

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

scene_hdr

scene_hdr

test_hdr_extension

Esegue il test dell'estensione HDR. Acquisisce foto con e senza l'estensione abilitata e controlla se l'estensione rende il codice QR più rilevabile.

API testate:

Pass: l'estensione HDR riduce il numero di modifiche del contrasto necessarie per rilevare il codice QR o riduce il gradiente all'interno del codice QR.

scene_low_light

La scena scene_low_light è costituita da una griglia di quadrati di varie tonalità di grigio su uno sfondo nero e la griglia di quadrati è delimitata da un contorne rosso. I quadrati sono disposti in un orientamento della curva di Hilbert.

scene_low_light

scene_low_light

test_night_extension

Testa l'estensione Notte. Acquisisce le acquisizioni con l'estensione abilitata ed esegue quanto segue:

  • Rileva la presenza di 20 quadrati
  • Calcola la luminanza delimitata da ogni quadrato
  • Calcola il valore di luma medio dei primi 6 quadrati in base all'orientamento della griglia della curva di Hilbert
  • Calcola la differenza del valore di luma dei quadrati consecutivi (ad esempio, quadrato2 - quadrato1) fino ai quadrati 5 e 6 (quadrato6 - quadrato5) e trova la media delle cinque differenze calcolate.

API testate:

Passa:il valore di luma medio dei primi 6 riquadri deve essere almeno 85 e la differenza media del valore di luma dei riquadri consecutivi fino ai riquadri 5 e 6 deve essere almeno 17.

Il seguente grafico di luminanza mostra l'aspetto di un risultato del test positivo.

scene_low_light_night_pass

test_low_light_boost_extension

Testa la modalità AE con aumento luce. Se Camera2 supporta la modalità AE con aumento della luminosità, questo test viene eseguito per Camera2. Se l'estensione della fotocamera con modalità notturna è supportata e supporta la modalità AE con potenziamento in condizioni di scarsa illuminazione, questo test viene eseguito anche per l'estensione della fotocamera con modalità notturna. Questo test imposta la modalità AE su Boost in condizioni di scarsa illuminazione, acquisisce un fotogramma dall'anteprima ed esegue le seguenti operazioni:

  • Rileva la presenza di 20 scatole
  • Calcola la luminanza delimitata da ogni casella
  • Calcola il valore di luma medio dei primi 6 quadrati in base all'orientamento della griglia della curva di Hilbert
  • Calcola la differenza del valore di luma dei quadrati consecutivi (ad esempio, quadrato2 - quadrato1) fino ai quadrati 5 e 6 (quadrato6 - quadrato5) e trova la media delle cinque differenze calcolate.

API testate:

Passa:il valore di luma medio dei primi 6 riquadri deve essere almeno 70 e la differenza media del valore di luma dei riquadri consecutivi fino ai riquadri 5 e 6 deve essere almeno 17.

scene_flash

I test scene_flash richiedono una scena buia nella casella di fusione dei sensori.

test_auto_flash

Verifica che il flash automatico venga attivato in una scena buia per le fotocamere anteriori e posteriori. Per le fotocamere anteriori, il flash automatico utilizza lo schermo per illuminare la scena, non un'unità flash fisica. Il test verifica che il flash automatico venga attivato controllando che il centro dell'immagine del riquadro sia più luminoso con il flash automatico abilitato. Per attivare il flash automatico, le luci del banco di prova devono essere spente. Le luci possono essere spente automaticamente con il controller Arduino. Affinché il test funzioni correttamente, la scena deve essere completamente buia. L'app Jetpack Camera (JCA) deve essere installata sul dispositivo prima del test. Il flash automatico per le fotocamere rivolte all'indietro si basa sullo stato AE per essere attivato, ma il flash automatico per le fotocamere rivolte in avanti non si basa su AE e viene sempre attivato.

API testate:

Passaggio: il centro dell'immagine del riquadro con il flash automatico abilitato è più luminoso rispetto all'immagine della scena originale per tutte le videocamere.

test_flash_strength

Verifica che il controllo dell'intensità del flash in modalità SINGLE sia implementato correttamente.

Verifica che se il dispositivo supporta il controllo dell'intensità del flash durante l'uso della fotocamera in modalità SINGLE, l'intensità del flash cambi con diversi livelli di intensità richiesti. Verifica che il controllo dell'intensità del flash funzioni con diversi AE_MODES. Ad esempio, se la modalità di esposizione automatica è ON o OFF, il livello di intensità del flash influisce sulla luminosità e, se la modalità è ON_AUTO_FLASH, il livello di intensità del flash non influisce sulla luminosità. Per eseguire il test, le spie nel banco di prova devono essere spente. Le spie possono essere spente automaticamente con il controller Arduino. Affinché il test funzioni correttamente, la scena deve essere completamente buia.

API testate:

Pass:

Quando la modalità di esposizione automatica è ON o OFF, la luminosità delle patch dell'immagine aumenta man mano che il livello di intensità del flash aumenta da nessun flash a FLASH_SINGLE_STRENGTH_MAX_LEVEL. Quando la modalità di esposizione automatica è ON_AUTO_FLASH, la differenza di luminosità delle patch dell'immagine è entro i limiti di tolleranza man mano che l'intensità del flash aumenta da nessun flash a FLASH_SINGLE_STRENGTH_MAX_LEVEL.

test_led_snapshot

Verifica che gli istantanei LED non saturino o colorino l'immagine.

Questo test aggiunge un controller di illuminazione alla cassetta di derivazione della fusione dei sensori per controllare le luci. Con le luci impostate su OFF, il test acquisisce un'immagine con la modalità AUTO_FLASH impostata su ON. Durante questa acquisizione, il test esegue una sequenza di preacquisizione con l'attivatore aePrecapture impostato su START e imposta l'intenzione di acquisizione su Preview per acquisire l'immagine con il flash.

Poiché l'acquisizione ha un hotspot distintivo dovuto al 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 in bianco, il test calcola i rapporti R/G e B/G e verifica se rientrano tra 0,95 e 1,05.

API testate:

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

test_preview_min_frame_rate

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

API testate:

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

test_torch_strength

Verifica che il controllo dell'intensità del flash in modalità TORCH sia implementato correttamente.

Verifica che se il dispositivo supporta il controllo dell'intensità del flash durante l'uso della fotocamera in modalità TORCH, l'intensità della torcia cambi con diversi livelli di intensità richiesti. Verifica che il controllo dell'intensità del flash funzioni con diversi AE_MODES. Ad esempio, se la modalità di esposizione automatica è ON o OFF, il livello di intensità del flash influisce sulla luminosità e, se la modalità è ON_AUTO_FLASH, il livello di intensità del flash non influisce sulla luminosità. Verifica che l'intensità della torcia rimanga invariata per tutta la durata di un'esplosione, simulando una sessione di acquisizione video. Per eseguire il test, le luci del banco di prova devono essere spente. Le luci possono essere spente automaticamente con il controller Arduino. Affinché il test funzioni correttamente, la scena deve essere completamente buia.

API testate:

Pass:

Quando la modalità di esposizione automatica è ON o OFF, la luminosità delle patch di sfolgorazione dell'immagine aumenta man mano che l'intensità del flash aumenta da nessuna illuminazione a FLASH_TORCH_STRENGTH_MAX_LEVEL. Quando la modalità di esposizione automatica è ON_AUTO_FLASH, la differenza di luminosità delle patch di raffica di immagini rientra nei limiti di tolleranza man mano che l'intensità del flash aumenta da nessuna a FLASH_TORCH_STRENGTH_MAX_LEVEL.

sensor_fusion

I test di fusione dei sensori richiedono movimenti specifici dello smartphone davanti a un motivo a scacchi e a indicatori ArUco. Per risultati ottimali, assicurati che la tabella di prova sia montata in piano. I grafici non piatti influiscono sui calcoli di rotazione per molti dei test. Il grafico deve riempire il retro della cassetta di fusione dei sensori stampando su un formato di 43 x 43 cm. I test sensor_fusion possono essere automatizzati con la Sensor Fusion Box.

Grafico di fusione dei sensori

Grafico di fusione dei sensori

Grafico di fusione dei sensori in Rig

Grafico di fusione dei sensori che riempie il retro della casella di fusione dei sensori

test_lens_intrinsic_calibration

Verifica che il centro ottico dell'obiettivo cambi in modo intrinseco quando l'obiettivo si sposta a causa della stabilizzazione ottica dell'immagine (OIS). Se i campioni intrinseci dell'obiettivo sono supportati, verifica che il centro ottico dei campioni intrinseci dell'obiettivo cambi quando l'obiettivo si sposta a causa della stabilizzazione ottica dell'immagine (OIS).

API testate:

Passa: il centro ottico dell'obiettivo cambia in modo intrinseco di uno o più pixel. Se i campioni intrinseci dell'obiettivo sono supportati, i centri ottici dei campioni intrinseci dell'obiettivo cambiano di uno o più pixel.

test_lens_intrinsic_calibration_example.png

Esempio di grafico test_lens_intrinsic_calibration che mostra le variazioni dei punti principali in pixel per ogni frame

test_multi_camera_frame_sync

Verifica che i timestamp dei frame acquisiti dalla videocamera logica rientrino in un intervallo di 10 ms calcolando gli angoli dei quadrati all'interno della scacchiera per determinare il timestamp.

API testate:

Passaggio: l'angolo tra le immagini di ogni fotocamera non cambia in modo significativo quando lo smartphone viene ruotato.

test_preview_distortion

Verifica che la distorsione venga corretta in ogni frame di anteprima acquisito a vari livelli di zoom. Per ogni frame di anteprima, il test calcola i punti ideali in base ai dati intrinseci ed estrinseci della videocamera. Nell'immagine di esempio, i punti ideali sono visualizzati in verde, mentre i punti effettivi sono visualizzati in rosso. L'errore di distorsione viene calcolato in base alla distanza quadratica media (RMS) dei pixel tra i punti effettivi e quelli ideali. Gli evidenziatori verdi e rossi sull'immagine vengono utilizzati per rilevare visivamente l'area dell'errore di distorsione.

test_preview_distortion_example.jpg

Immagine di una scacchiera con i punti ideali in verde e i punti effettivi in rosso

API testate:

Passato: l'errore di distorsione normalizzato di ogni frame di anteprima è inferiore alla soglia impostata nel test.

test_preview_stabilization

Verifica che il video di anteprima stabilizzato ruoti meno del giroscopio.

API testate:

Passaggio: la rotazione angolare massima nei 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

test_sensor_fusion

Verifica la differenza del timestamp tra la fotocamera e il giroscopio per le applicazioni AR e VR. Lo smartphone viene ruotato di 90 gradi 10 volte davanti al motivo a scacchi. Il movimento è di circa 2 secondi andata e ritorno. Questo test viene ignorato se non è incluso alcun giroscopio o se il parametro REALTIME della fonte del timestamp non è attivato.

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. Il movimento nelle direzioni x e y implica che lo smartphone non è montato saldamente sulla piastra di montaggio, riducendo la probabilità di superare il test. Il numero di cicli nel grafico dipende dalla velocità di scrittura per il salvataggio dei frame.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations: mostra l'allineamento del giroscopio e gli eventi della videocamera. Questo grafico deve mostrare un movimento corrispondente tra la fotocamera e il giroscopio con una precisione di +/-1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API testate:

Pass: l'offset dei timestamp della fotocamera e del giroscopio è inferiore a 1 ms, come indicato nella sezione 7.3.9 del CDD relativa ai sensori ad alta fedeltà [C-2-14].

Meccanismi di errore:

  • Errore di offset: l'offset della fotocamera e del giroscopio non è calibrato correttamente entro +/-1 ms.
  • Cadute di frame: la pipeline non è abbastanza veloce per acquisire 200 frame consecutivamente.
  • Errori di socket: adb non riesce a connettersi in modo affidabile al DUT per un tempo sufficiente per eseguire il test.
  • Il grafico non è montato in piano. Il grafico test_sensor_fusion_plot_rotations contiene frame in cui la rotazione del giroscopio e della fotocamera varia notevolmente man mano che la fotocamera ruota nelle parti del grafico non piane.
  • La videocamera non è montata in piano. Il grafico test_sensor_fusion_gyro_events mostra il movimento nei piani X e Y. Questo guasto è più comune nelle fotocamere anteriori perché la fotocamera posteriore spesso ha un rilievo rispetto al resto del corpo dello smartphone, creando un'inclinazione quando si monta la parte posteriore dello smartphone sulla piastra di montaggio.

test_video_stabilization

Verifica che il video stabilizzato ruoti meno del giroscopio.

API testate:

Passaggio: la rotazione angolare massima nei 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

feature_combination

I test feature_combination verificano che le funzionalità funzionino correttamente quando sono attivate contemporaneamente più funzionalità della fotocamera. Questi test utilizzano la stessa immagine a scacchiera utilizzata nella scena di fusione dei sensori.

test_feature_combination

Testa tutte le combinazioni di diverse combinazioni di stream, stabilizzazione della preview, intervallo FPS target, video HDR a 10 bit e Ultra HDR supportate dal dispositivo della fotocamera. Questo test richiede molta memoria, quindi consigliamo di utilizzare un host con almeno 128 GB di RAM.

Per Android 15 e versioni successive, il file di configurazione include un campo log_feature_combo_support, il cui valore predefinito è False. Quando il campo log_feature_combo_support è impostato su True, il test esegue tutte le combinazioni di funzionalità supportate e registra i risultati in un file proto senza che il test non vada a buon fine. Per i test di conformità, il log_feature_combo_support campo deve essere impostato su False.

API testate:

Pass: per ogni combinazione di funzionalità supportata:

  • Lo stream di anteprima viene stabilizzato se la stabilizzazione dell'anteprima è attiva.
  • La frequenza fotogrammi dell'anteprima rientra nel valore AE_TARGET_FPS_RANGE configurato.
  • Lo spazio colore dello stream di anteprima registrato corrisponde a quello impostato.
  • L'acquisizione Ultra HDR ha una mappa di guadagno valida.