Test ITS della videocamera

Questa pagina fornisce un elenco completo dei test della suite di test delle immagini della fotocamera (ITS), che fa parte di Android Compatibility Test Suite (CTS) Verifier. I test ITS sono test funzionali, il che significa che non misurano la qualità dell'immagine, ma che tutte le funzioni della videocamera pubblicizzate funzionano come previsto. Questo documento consente a sviluppatori e tester di comprendere la funzione dei singoli test e come eseguire il debug degli errori di test.

Test ITS della fotocamera in base alle proprietà della fotocamera richieste, al livello API e al livello della classe di prestazioni multimediali (MPC). Per il livello API, ITS utilizza ro.product.first_api_level per controllare i test aggiunti a un livello API specifico che testano le esperienze utente negative per le funzionalità nei livelli API inferiori. ITS utilizza ro.vendor.api_level per controllare i test delle funzionalità aggiunte a un livello 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 nel seguente modo:

  • scene0: acquisisci metadati, jitter, giroscopio, vibrazione
  • scene1: esposizione, sensibilità, compensazione del valore di esposizione (EV), YUV rispetto a JPEG e 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: sensore multicamera
  • scene8: misurazione dell'esposizione automatica (AE) e del bilanciamento del bianco automatico (AWB) della regione
  • scene9: compressione JPEG
  • scene_extensions: estensioni della videocamera
  • scene_tele: passaggio al teleobiettivo
  • scene_flash: flash automatico, frame rate minimo
  • scene_video: cali di frame
  • sensor_fusion: offset di sincronizzazione della videocamera e del giroscopio
  • feature_combination: combinazioni di funzionalità
  • scene_ip: parità di immagini tra l'app fotocamera predefinita e l'app fotocamera Jetpack (JCA)

Consulta le singole sezioni per una descrizione di ogni scena.

scene0

I test non richiedono informazioni specifiche sulla scena. Tuttavia, lo smartphone deve essere fermo per i test del giroscopio e della vibrazione.

test_jitter

Misura il jitter nei timestamp della videocamera.

API testate:

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

Nella figura seguente, nota il piccolo intervallo dell'asse Y. Il jitter è in realtà piccolo in questo grafico.

test_jitter plot

Figura 1. Grafico test_jitter.

test_metadata

Verifica la validità delle voci di metadati esaminando i risultati dell'acquisizione e gli oggetti delle caratteristiche della videocamera. Questo test utilizza valori di esposizione e guadagno auto_capture_request perché i contenuti dell'immagine non sono importanti.

API testate:

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

test_request_capture_match

Test che verifica che il dispositivo scriva i valori di esposizione e guadagno corretti leggendo i metadati di acquisizione.

API testate:

Superato:i valori dei metadati della richiesta e dell'acquisizione corrispondono in tutte le inquadrature.

test_sensor_events

Per i dispositivi che pubblicizzano il supporto della fusione dei sensori, questo test verifica se il dispositivo esegue query e stampa gli eventi 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 ogni sensore.

test_solid_color_test_pattern

Test che verificano che i pattern di test a tinta unita vengano generati correttamente per la disattivazione 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 tinta unita vengono testati solo se la funzionalità è pubblicizzata.

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

API testate:

Superato:i pattern di test solidi supportati hanno il colore corretto e la varianza nell'immagine è bassa.

test_test_pattern

Esegue il test del parametro android.sensor.testPatternMode per acquisire i fotogrammi per ogni pattern di test valido e verifica che i fotogrammi vengano generati correttamente per i colori pieni e le barre dei colori. Questo test include i seguenti passaggi:

  1. Acquisisce immagini per tutti i pattern di test supportati.
  2. Esegue un controllo di correttezza per il pattern di test a tinta unita e le barre dei colori.

API testate:

Superato:i pattern di test supportati vengono generati correttamente.

test_test_patterns example

Figura 2. Esempio di test_test_patterns.

test_tonemap_curve

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

API testate:

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

test_tonemap_curve raw example

Figura 3. Esempio non elaborato di test_tonemap_curve.

test_tonemap_curve YUV example

Figura 4. Esempio di test_tonemap_curve YUV.

test_unified_timestamp

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

API testate:

Passaggio:i timestamp del movimento si trovano tra i timestamp delle due immagini.

test_vibration_restriction

Verifica se la vibrazione del dispositivo funziona come previsto.

API testate:

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

scene1_1

scene1 è un grafico grigio. Il grafico grigio deve coprire il 30% centrale del campo visivo della videocamera. Il grafico grigio dovrebbe mettere alla prova moderatamente 3A (AE, AWB e AF), poiché la regione centrale non ha funzionalità. Tuttavia, la richiesta di acquisizione specifica l'intera scena, che include funzionalità sufficienti per la convergenza 3A.

Le videocamere RFoV possono essere testate nel banco di prova WFoV o RFoV. Se una videocamera RFoV viene testata nel banco di prova WFoV, il grafico viene scalato di 2/3 per specificare alcuni limiti per il grafico grigio nel FoV per facilitare la convergenza 3A. Per descrizioni più dettagliate dei banchi di prova della videocamera, vedi Camera ITS-in-a-box.

scene1 example

Figura 5. Grafico della scena 1 a grandezza naturale (a sinistra), grafico in scala 2/3 (a destra).

test_ae_precapture_trigger

Esegue il test della macchina a stati AE quando si utilizza il trigger di preacquisizione. Acquisisce cinque richieste manuali con AE disattivato. L'ultima richiesta ha un trigger di acquisizione preliminare AE, che deve essere ignorato perché AE è disattivato.

API testate:

Passaggio:AE converge.

test_auto_vs_manual

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

API testate:

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

test_auto_vs_manual auto example

Figura 6. Esempio di test_auto_vs_manual automatico.

test_auto_vs_manual white balance example

Figura 7. Esempio di bilanciamento del bianco test_auto_vs_manual.

test_auto_vs_manual manual white balance transform example

Figura 8. Esempio di trasformazione del bilanciamento del bianco manuale test_auto_vs_manual.

test_black_white

Test che verificano che il dispositivo produca immagini in bianco e nero complete. Acquisisce due scatti, il primo con un guadagno estremamente basso e un'esposizione breve, che produce una foto nera, e il secondo con un guadagno estremamente elevato e un'esposizione lunga, che produce una foto bianca.

API testate:

Passaggio: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% di differenza.

test_black_white, black example

Figura 9. test_black_white, esempio di nero.

test_auto_vs_manual manual white balance transform example

Figura 10. test_black_white, esempio bianco.

test_black_white plot means example

Figura 11. test_black_white, esempio di grafico delle medie.

test_burst_capture

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

API testate:

Passaggio:acquisisce una sequenza di immagini a grandezza naturale, verifica la presenza di frame persi e la luminosità dell'immagine.

test_burst_sameness_manual

Scatta 5 raffiche di 50 immagini con l'impostazione di acquisizione manuale e verifica che siano tutte identiche. Utilizza questo test per identificare se ci sono frame sporadici che vengono elaborati in modo diverso o presentano artefatti.

API testate:

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

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

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

test_burst_sameness_manual_mean

Figura 12. Esempio di media manuale di test_burst_sameness.

test_burst_sameness_manual_plot_means

Figura 13. test_burst_sameness_manual_plot_means

test_crop_region_raw

Verifica che gli stream RAW non siano ritagliabili.

API testate:

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

test_crop_region_raw comp raw crop example

Figura 14. test_crop_region_raw comp raw crop example.

test_crop_region_raw comp raw full example

Figura 15. test_crop_region_raw comp raw full example.

test_crop_region_raw comp YUV crop example

Figura 16. Esempio di ritaglio YUV test_crop_region_raw.

test_crop_region_raw_yuv_full example

Figura 17. Esempio completo di test_crop_region_raw YUV.

test_crop_regions

Verifica che le regioni di ritaglio funzionino. Prende un'immagine completa e crea patch di cinque regioni diverse (angoli e centro). Scatta foto con il ritaglio impostato per le cinque regioni. Confronta i valori dell'immagine patch e ritagliata.

API testate:

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

test_ev_compensation

Verifica che la compensazione del valore di esposizione (EV) sia applicata. Il test è composto da una sezione di base e una sezione avanzata.

La sezione di base verifica che la compensazione EV venga applicata utilizzando un intervallo creato con CONTROL_AE_COMPENSATION_STEP. Vengono acquisiti otto fotogrammi per ogni valore di compensazione.

La sezione avanzata aumenta l'esposizione in otto passaggi e controlla la luminosità misurata rispetto a quella prevista. I valori previsti vengono calcolati a partire dalla luminosità dell'immagine senza compensazione dell'esposizione applicata e il valore previsto si satura se i valori calcolati superano l'intervallo di valori dell'immagine effettiva. Il test non riesce se i valori previsti e i valori misurati non corrispondono o se le immagini sono sovraesposte entro cinque passaggi.

API testate:

Passaggio di sezione di base: le immagini mostrano un'esposizione crescente senza sovraesposizione in cinque passaggi.

test_ev_compensation_basic

Figura 18. test_ev_compensation_basic.

Passaggio della sezione avanzata:acquisisce un aumento della luminanza all'aumentare dell'impostazione di compensazione dell'esposizione. Gli otto fotogrammi acquisiti per ogni impostazione di compensazione EV hanno valori di luminanza stabili.

test_ev_compensation_advanced_plot_means

Figura 19. test_ev_compensation_advanced_plot_means.

test_exposure_x_iso

Test che garantiscono un'esposizione costante al variare di ISO e tempo di esposizione. Scatta una serie di scatti con ISO e tempo di esposizione scelti in modo che si bilancino 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 campione siano vicini tra loro. Verifica che le immagini non siano bloccate su 0 o 1 (il che le farebbe sembrare 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 di ISO*esposizione è costante nello spazio di guadagno testato.

Meccanismo di errore: nella figura seguente, man mano che i valori del moltiplicatore di guadagno (asse x) aumentano, i valori medi del piano RGB normalizzato (asse y) iniziano a discostarsi dai valori bassi del moltiplicatore di guadagno.

test_exposure_plot_means

Figura 20. test_exposure_plot_means.

test_exposure_mult=1.00.jpg

Figura 21. test_exposure_mult=1.00.

test_exposure_mult=64.00

Figura 22. test_exposure_mult=64.00.

test_latching

Test che impostano (esposizione e guadagno) il blocco sul frame destro per le videocamere FULL e LEVEL_3. Scatta una serie di foto 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 una sensibilità ISO o un'esposizione maggiori e mostrano valori RGB medi più elevati nel grafico della figura seguente.

test_latching plot means example

Figura 23.Esempio di media del grafico test_latching.

test_latching i=00

Figura 24. test_latching i=00.

test_latching i=01

Figura 25. test_latching i=01.

test_latching i=02

Figura 26. test_latching i=02.

test_latching i=03

Figura 27. test_latching i=03.

test_latching i=04

Figura 28. test_latching i=04.

test_latching i=05

Figura 29. test_latching i=05.

test_latching i=06

Figura 30. test_latching i=06.

test_latching i=07

Figura 31. test_latching i=07.

test_latching i=08

Figura 32. test_latching i=08.

test_latching i=09

Figura 33. test_latching i=09.

test_latching i=10

Figura 34. test_latching i=10.

test_latching i=11

Figura 35. test_latching i=11.

test_latching i=12

Figura 36. test_latching i=12.

test_linearity

Test che l'elaborazione del dispositivo può essere invertita in pixel lineari. Acquisisce una sequenza di scatti con il dispositivo puntato su un bersaglio uniforme.

API testate:

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

test_linearity plot means example

Figura 37.Esempio di grafico test_linearità.

test_locked_burst

Esegue il test del blocco 3A e della raffica YUV (utilizzando l'impostazione automatica). Questo test è progettato per essere superato anche su dispositivi limitati che non dispongono di MANUAL_SENSOR o PER_FRAME_CONTROLS. Il test controlla la coerenza dell'immagine YUV mentre il controllo del frame rate è in CTS.

API testate:

Superato:le acquisizioni sembrano coerenti.

test_locked_burst frame0 example

Figura 38. Esempio di frame0 di test_locked_burst.

test_locked_burst frame1 example

Figura 39. Esempio di frame1 di test_locked_burst.

test_locked_burst_frame2

Figura 40. Esempio di frame2 di test_locked_burst.

scene1_2

scene 1_2 è una copia funzionalmente identica di scene 1_1, che implementa una struttura di sottoscene per alleviare la durata estesa di scene 1.

test_param_color_correction

Verifica che i parametri android.colorCorrection.* vengano applicati quando vengono 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 in modo che l'output diventi sempre più rosso o blu. Utilizza una mappatura dei toni lineare.

La mappatura della tonalità è una tecnica utilizzata nell'elaborazione delle immagini per mappare un insieme di colori a un altro per approssimare l'aspetto delle immagini ad alta gamma dinamica in un mezzo con una gamma dinamica più limitata.

API testate:

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

test_param_color_correction plot means example

Figura 41. Esempio di media del grafico test_param_color_correction.

Nelle figure seguenti, l'asse x rappresenta le richieste di acquisizione: 0 = unità, 1 = potenziamento del rosso e 2 = potenziamento del blu.

test_param_color_correction req=0 unity example

Figura 42. Esempio di test_param_color_correction req=0 unity.

test_param_color_correctness req=1 red boost example

Figura 43. Esempio di test_param_color_correctness req=1 red boost.

test_param_color_correction req=2 blue boost example

Figura 44. Esempio di test_param_color_correction req=2 blue boost.

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 è scattato o meno, e utilizza una mappatura tonale lineare. Controlla il centro con l'immagine del riquadro per vedere se è presente un gradiente ampio creato per verificare se il flash è stato attivato.

API testate:

Pass:il centro dell'immagine della tessera presenta un'ampia sfumatura, il che significa che il flash è stato attivato.

test_param_flash_mode 1 example

Figura 45. Esempio di test_param_flash_mode 1.

test_param_flash_mode 1 tile example

Figura 46. Esempio di un riquadro test_param_flash_mode.

test_param_flash_mode_2 example

Figura 47. Esempio di test_param_flash_mode 2.

test_param_flash_mode 2 tile example

Figura 48. Esempio di due riquadri test_param_flash_mode.

test_param_noise_reduction

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

API testate:

Pass: il rapporto segnale/rumore varia in base alle diverse modalità di riduzione del rumore e si comporta in modo simile al seguente grafico:

test_param_noise_reduction plot SNRs example

Figura 49. Grafico SNR di test_param_noise_reduction.

0: OFF, 1: FAST, 2: HQ, 3: MIN , 4: ZSL

test_param_noise_reduction high gain nr=0 example

Figura 50. Esempio di test_param_noise_reduction high gain nr=0.

test_param_noise_reduction high gain nr=1 example

Figura 51. Esempio di test_param_noise_reduction high gain nr=1.

test_param_noise_reduction high gain nr=2 example

Figura 52. Esempio di test_param_noise_reduction high gain nr=2.

test_param_noise_reduction high gain nr=3 example

Figura 53. Esempio di test_param_noise_reduction con guadagno elevato nr=3.

test_param_noise_reduction low gain example

Figura 54. Esempio di test_param_noise_reduction con guadagno basso.

test_param_shading_mode

Verifica che il parametro android.shading.mode sia 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 lens shading map, mode 0 loop 0 example

Figura 55. Mappa di ombreggiatura dell'obiettivo test_param_shading_mode, esempio di ciclo 0 della modalità 0.

test_param_shading_mode lens shading map, mode 1 loop 0 example

Figura 56: mappa dell'ombreggiatura dell'obiettivo test_param_shading_mode, esempio di ciclo 0 della modalità 1.

test_param_shading_mode lens shading map, mode 2 loop 0 example

Figura 57: mappa di ombreggiatura dell'obiettivo test_param_shading_mode, esempio di ciclo 0 della modalità 2.

test_param_tonemap_mode

Verifica che il parametro android.tonemap.mode sia applicato. Applica curve di mappatura dei toni diverse a ogni canale R, G, B e verifica che le immagini di output vengano 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 una pendenza maggiore. Il canale G (verde) è più luminoso per l'immagine n=1.
  • test2: stessa mappatura dei toni, ma durata diversa. Le immagini sono uguali.

test_param_tonemap_mode con n=0

Figura 58. test_param_tonemap_mode con n=0.

test_param_tonemap_mode con n=1

Figura 59. test_param_tonemap_mode con n=1.

test_post_raw_sensitivity_boost

Controlla l'aumento della sensibilità grezza del post. Acquisisce un insieme di immagini RAW e YUV con sensibilità diversa, pubblica la combinazione di aumento della sensibilità RAW e verifica se la media dei pixel di output corrisponde alle impostazioni della richiesta.

API testate:

Passaggio:le immagini non elaborate diventano più scure man mano che l'incremento aumenta, mentre la luminosità delle immagini YUV rimane costante.

test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

Figura 60. test_post_raw_sensitivity_boost raw s=3583 boost=0100 example.

test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

Figura 61. Esempio di test_post_raw_sensitivity_boost raw s=1792 boost=0200.

test_post_raw_sensitivity_boost raw s=0896 boost=0400 example

Figura 62. Esempio di test_post_raw_sensitivity_boost raw s=0896 boost=0400.

test_post_raw_sensitivity_boost raw s=0448 boost=0800 example

Figura 63. Esempio di test_post_raw_sensitivity_boost raw s=0448 boost=0800.

test_post_raw_sensitivity_boost raw s=0224 boost=1600 example

Figura 64. Esempio di test_post_raw_sensitivity_boost raw s=0224 boost=1600.

test_post_raw_sensitivity_boost raw s=0112 boost=3199 example

Figura 65. Esempio di test_post_raw_sensitivity_boost raw s=0112 boost=3199.

test_post_raw_sensitivity_boost raw plot means example

Il Figura 66 test_post_raw_sensitivity_boost raw plot significa esempio.

test_post_raw_sensitivity_boost YUV s=0112 boost=3199 example

Figura 67. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 example.

test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example

Figura 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example.

test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example

Figura 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 example.

test_post_raw_sensitivity_boost YUV s=1792 boost=0200 example

Figura 70. Esempio di test_post_raw_sensitivity_boost YUV s=1792 boost=0200.

test_post_raw_sensitivity_boost YUV s=3585 boost=0100 example

Figura 71. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 example.

test_post_raw_sensitivity_boost_yuv_plot_means

Figura 72. test_post_raw_sensitivity_boost_yuv_plot_means

test_raw_exposure

Acquisisce un insieme di immagini non elaborate con tempi di esposizione crescenti e misura i valori dei pixel.

API testate:

Superato: l'aumento dell'ISO (guadagno) rende i pixel più sensibili alla luce, quindi il grafico si sposta verso sinistra.

test_raw_exposure ISO=55 example

Figura 73. Esempio di test_raw_exposure ISO=55.

10⁰ è 1 ms, 10¹ è 10 ms e 10⁻¹ è 0, 1 ms.

test_raw_exposure ISO=132 example

Figura 74. Esempio di test_raw_exposure ISO=132.

test_raw_exposure ISO=209 example

Figura 75. Esempio di test_raw_exposure ISO=209.

test_raw_exposure ISO=286 example

Figura 76. Esempio di ISO test_raw_exposure=286.

test_raw_exposure ISO=363 example

Figura 77. Esempio di test_raw_exposure ISO=363.

test_raw_exposure_s=440

Figura 78. Esempio di test_raw_exposure ISO=440.

test_reprocess_noise_reduction

Test a cui viene applicato android.noiseReduction.mode per le richieste di rielaborazione. Acquisisce immagini rielaborate con la fotocamera poco illuminata. Utilizza un guadagno analogico elevato per verificare che l'immagine acquisita sia rumorosa. Acquisisce tre immagini rielaborate, per NR disattivato, veloce e di alta qualità. Acquisisce un'immagine rielaborata con guadagno basso e NR disattivato e utilizza la varianza di questa immagine come base di riferimento.

API testate:

Pass: FAST >= OFF, HQ >= FAST e HQ >> OFF.

Grafico SNR tipico rispetto alla modalità NR

Figura 79. Esempio tipico di grafico della modalità SNR rispetto alla modalità NR.

test_tonemap_sequence

Esegue il test di una sequenza di scatti con diverse curve di mappatura dei toni. Acquisisce tre scatti manuali con una mappatura dei toni lineare. Acquisisce tre scatti manuali con la mappatura dei toni predefinita. Calcola il delta tra ogni coppia di frame consecutivi.

API testate:

Superato:sono presenti tre fotogrammi identici seguiti da un diverso insieme di tre fotogrammi identici.

test_tonemap_sequence i=0 example

Figura 80. test_tonemap_sequence i=0 example.

test_tonemap_sequence i=1 example

Figura 81. Esempio di test_tonemap_sequence i=1.

test_tonemap_sequence i=2 example

Figura 82. Esempio di test_tonemap_sequence i=2.

test_tonemap_sequence i=3 example

Figura 83. test_tonemap_sequence i=3 example.

test_tonemap_sequence_i=4 example

Figura 84. test_tonemap_sequence i=4 example.

test_tonemap_sequence i=5 example

Figura 85. Esempio di test_tonemap_sequence i=5.

test_yuv_jpeg_all

Test che verificano il funzionamento di tutte le dimensioni e i formati segnalati per l'acquisizione delle immagini. 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:

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

test_yuv_jpeg_all example

Figura 86. Esempio test_yuv_jpeg_all.

test_yuv_plus_dng

Test che verificano il funzionamento delle dimensioni e dei formati segnalati per l'acquisizione delle immagini.

API testate:

Superato:il test viene completato e restituisce le immagini richieste.

test_yuv_plus_dng example

Figura 87. Esempio test_yuv_plus_dng.

scene1_3

scene 1_3 è una copia funzionalmente identica di scene 1_1, che implementa una struttura di sottoscene per alleviare la durata estesa di scene 1.

test_capture_result

Test che restituiscono dati validi negli oggetti CaptureResult. Il test consiste in un'acquisizione automatica, un'acquisizione manuale e una seconda acquisizione automatica.

API testate:

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

test_capture_result_plot_lsc_auto_ch0

Figura 88. test_capture_result_plot_lsc_auto_ch0.

test_dng_noise_model

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

API testate:

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

test_dng_noise_model_plog

Figura 89. test_dng_noise_model_plog.

test_jpeg

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

API testate:

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

test_jpeg_fmt=jpg.jpg

Figura 90.test_jpeg_fmt=jpg.jpg.

test_jpeg=fmt=yuv.jpg

Figura 91. test_jpeg=fmt=yuv.jpg.

test_raw_burst_sensitivity

Acquisisce una serie di immagini grezze con guadagni crescenti e misura il rumore. Acquisisce solo file 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 del centro.

test_raw_burst_sensitivity_variance

Figura 92. test_raw_burst_sensitivity_variance.

test_raw_sensitivity

Acquisisce una serie di immagini grezze con sensibilità crescenti e misura il rumore (varianza) nel 10% centrale dell'immagine. Test che dimostrano che ogni scatto è più rumoroso del precedente.

API testate:

Passaggio:la varianza aumenta a ogni tiro.

test_raw_sensitivity_variance

Figura 93. test_raw_sensitivity_variance.

test_yuv_plus_jpeg

Test che acquisiscono 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:

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

test_yuv_plus_jpeg con formato JPEG

Figura 94. test_yuv_plus_jpeg con formato JPEG.

test_yuv_plus_jpeg con formato YUV

Figura 95. test_yuv_plus_jpeg con formato YUV.

test_yuv_plus_raw

Esegue test di acquisizione di un singolo frame come output sia raw (raw a 10 bit e 12 bit) sia YUV, se supportato. Utilizza una richiesta manuale con mappatura tonale lineare, quindi i formati raw e YUV dovrebbero essere identici. Confronta i valori RGB centrali del 10% delle immagini convertite in RGB. Logandroid.shading.mode.

API testate:

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

test_yuv_plus_raw_shading=1_raw.jpg

Figura 96. test_yuv_plus_raw_shading=1_raw.jpg.

test_yuv_plus_raw_shading=1_yuv.jpg

Figura 97. test_yuv_plus_raw_shading=1_yuv.jpg.

test_sensitivity_priority

Test CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY con varie impostazioni ISO per confermare una correlazione tra ISO più elevata e livelli di rumore maggiori.

API testate:

Superato:un ISO più elevato comporta un aumento dei livelli di rumore.

Criteri di ignoramento dei test

Il test test_sensitivity_priority.py viene ignorato se viene soddisfatto uno dei seguenti criteri:

test_exposure_time_priority

Test CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY con vari tempi di esposizione, verificando la luminosità stabile nell'intervallo in cui la sensibilità ISO può compensare.

API testate:

Superato:la luminosità è stabile (entro la tolleranza) per tutti i tempi di esposizione se l'ISO rientra nel suo intervallo di compensazione.

Criteri di ignoramento dei test

Il test test_exposure_time_priority viene ignorato se viene soddisfatto uno dei seguenti criteri:

scene2_a

scene2_a ha tre volti con uno sfondo grigio e abiti neutri. I volti sono scelti in modo da avere un'ampia gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto per il funzionamento ottimale del rilevamento del volto.

Esempio di scene2_a

Figura 98. Esempio di scene2_a.

test_autoframing

Esegue il test del comportamento di inquadratura automatica del dispositivo videocamera. Esegue uno zoom elevato in modo che nessun volto nella scena sia visibile, attiva 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:tutti e tre i volti vengono rilevati.

test_display_p3

Test Display P3 Acquisizione in formato 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_effects

Acquisisce il frame per gli effetti della fotocamera supportati e verifica che vengano 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

Figura 99. test_effects_MONO.

test_exposure_keys_consistent

Questo test confronta la luminanza media di un'acquisizione con AE attivata con un'acquisizione con AE disattivata che applica manualmente i parametri di esposizione (sensibilità, tempo di esposizione, durata del frame, aumento della sensibilità post-raw) ricevuti nel CaptureResult dell'acquisizione con AE attivata.

API testate:

Superato:la differenza relativa di luminanza tra le due acquisizioni è inferiore al 4%.

test_format_combos

Testa diverse combinazioni di formati di output.

API testate:

Superata:tutte le combinazioni sono state acquisite correttamente.

test_num_faces

Testa il rilevamento facciale.

API testate:

Pass: trova tre volti.

test_num_faces modalità di rilevamento facciale 1 esempio

Figura 100. Esempio di modalità di rilevamento dei volti test_num_faces 1.

test_reprocess_uv_swap

Test che dimostrano che il rielaborazione YUV non scambia i piani U e V. Questo viene rilevato calcolando la somma delle differenze assolute (SAD) tra l'immagine rielaborata e un'acquisizione non rielaborata. Se lo scambio dei piani U e V dell'output della rielaborazione della cattura comporta un aumento della SAD, si presume che l'output abbia i piani U e V corretti.

API testate:

Pass:i piani U e V non vengono scambiati.

test_reprocess_uv_swap

Figura 101. Esempio di test_reprocess_uv_swap.

scene2_b

test_preview_num_faces

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

API testate:

Pass: trova tre volti con punti di riferimento del viso nei riquadri di selezione del viso.

test_num_faces_fd_mode_1

Figura 102. Esempio della modalità di rilevamento dei volti test_num_faces 1.

test_yuv_jpeg_capture_sameness

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

Inoltre, questo test verifica che gli output YUV per tutti i casi d'uso di streaming supportati siano ragionevolmente simili all'YUV con il caso d'uso STILL_CAPTURE.

API testate:

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

Pass: trova tre volti.

test_num_faces_fd_mode_1

Figura 103. Esempio di modalità di rilevamento dei volti test_num_faces.

test_jpeg_capture_perf_class

Esegue il test della 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 camera2 < 1000 ms per una risoluzione di 1080p misurata dal test delle prestazioni della videocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

test_camera_launch_perf_class

Esegue test sulla latenza di avvio della videocamera per la classe di prestazioni S come specificato nella sezione 2.2.7.2 Videocamera della CDD.

Superato:DEVE avere una latenza di avvio di camera2 (apertura della videocamera al primo frame di anteprima) < 600 ms misurata dal test delle prestazioni della videocamera CTS in condizioni di illuminazione ITS (3000 K) per entrambe le fotocamere principali.

test_default_camera_hdr

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

Superato:l'acquisizione del pacchetto della videocamera predefinito DEVE essere Ultra HDR per un dispositivo di classe di prestazioni 15.

scene2_d

test_preview_num_faces

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

API testate:

Pass: trova tre volti con punti di riferimento del viso nei riquadri di selezione del viso.

scene2_e

test_continuous_picture

50 frame con risoluzione VGA vengono acquisiti con la prima impostazione della richiesta di acquisizione android.control.afMode = 4 (CONTINUOUS_PICTURE).

API testate:

Passaggio:il sistema 3A si stabilizza entro la fine 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:

Superato:trova 3 volti.

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

Figura 104. Esempio di scene2_f.

test_preview_num_faces

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

API testate:

Pass: trova tre volti con punti di riferimento del viso nei riquadri di selezione del viso.

test_num_faces_fd_mode_1

Figura 105. Esempio di test_num_faces_fd_mode_1.

scene2_g

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

scene2_g.png

Figura 106. Esempio di scene2_g.

test_preview_num_faces

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

API testate:

Pass: trova tre volti con punti di riferimento del viso nei riquadri di selezione del viso.

test_preview_num_faces

Figura 107. Esempio di test_preview_num_faces.

scene3

scene3 utilizza il grafico ISO12233 e la maggior parte dei test utilizza un metodo di estrazione del grafico per trovare il grafico nella scena. Per questo motivo, la maggior parte delle immagini salvate non hanno bordi come le immagini delle scene 1, 2 o 4, ma solo il grafico. Il grafico deve essere orientato correttamente affinché lo strumento di ricerca dei grafici funzioni in modo ottimale.

test_edge_enhancement

Verifica che il parametro android.edge.mode sia applicato correttamente. Acquisisce immagini non rielaborate 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 una determinata modalità edge, sensibilità, tempo di esposizione, distanza di messa a fuoco e parametro della superficie di output.

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

API testate:

Parametri della videocamera interessati:

  • EDGE_MODE

test_edge_enhancement_edge=0

Figura 108. Esempio di test_edge_enhancement edge=0.

test_edge_enhancement edge=1 example

Figura 109. Esempio di test_edge_enhancement edge=1 (modalità veloce).

test_edge_enhancement edge=2 example

Figura 110.Esempio di test_edge_enhancement edge=2 (modalità di alta qualità).

test_flip_mirror

Verifica che l'immagine sia orientata correttamente in base alla sezione 7.5.2 Fotocamera anteriore del CDD.

Le immagini specchiate, capovolte o ruotate possono essere identificate dalla funzionalità a forma di rombo vicino al centro.

Superato:l'immagine non è capovolta, specchiata o ruotata.

test_flip_mirror scene patch example

Figura 111. Esempio di patch della scena test_flip_mirror.

test_imu_drift

Verifica se l'unità di misura inerziale (IMU) ha un output 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 di test.
  • La deriva del vettore di rotazione è inferiore a 0,01 rad durante il periodo di test.
  • (Non ancora obbligatorio) La deriva del giroscopio è inferiore a 1 grado al secondo.

test_imu_drift gyroscope drift example

Figura 112. Esempio di deriva del giroscopio test_imu_drift.

test_imu_drift rotation vector drift example

Figura 113. Esempio di deriva del vettore di rotazione test_imu_drift.

test_landscape_to_portrait

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

API testate:

Superato:il test individua un grafico con la rotazione prevista (0 gradi quando l'override da orizzontale a verticale è disattivato, 90 gradi quando è attivato).

Esempio di test_landscape_to_portrait

Figura 114. Esempio di test_landscape_to_portrait.

test_lens_movement_reporting

Verifica se il flag di movimento dell'obiettivo viene segnalato correttamente. Acquisisce una raffica di 24 immagini con i primi 12 fotogrammi alla distanza di messa a fuoco ottimale (come rilevato da 3A) e gli ultimi 12 fotogrammi alla distanza di messa a fuoco minima. Intorno al fotogramma 12, l'obiettivo si sposta, causando una diminuzione della nitidezza. La nitidezza si stabilizza quando l'obiettivo raggiunge la posizione finale.

Il flag di movimento dell'obiettivo deve essere impostato in tutti i frame in cui la nitidezza è intermedia rispetto alla nitidezza dei primi frame con l'obiettivo fermo alla distanza focale ottimale e degli ultimi frame in cui l'obiettivo è fermo alla distanza focale minima. Il frame esatto in cui si sposta l'obiettivo non è importante: ciò che conta è che il flag di movimento venga asserito quando l'obiettivo è in movimento.

API testate:

Superato:il flag di movimento dell'obiettivo è True nel frame con variazione di nitidezza.

Meccanismi di errore:

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) in test_log.DEBUG viene asserito 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 alla distanza focale ottimale o agli ultimi frame alla distanza di messa a fuoco minima.

test_reprocess_edge_enhancement

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

API testate:

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

Esempio di grafico test_reprocess_edge_enhancement

Figura 115. Esempio di grafico test_reprocess_edge_enhancement.

scene4

scene4 è costituito da un cerchio nero su sfondo bianco all'interno di un quadrato.

I test in scene4 possono essere sensibili all'allineamento, quindi a partire da Android 15, puoi utilizzare check_alignment.py nella directory degli strumenti per attivare un controllo dell'allineamento del DUT e del grafico.

scene4 example

Figura 116. Esempio di scene4.

test_30_60fps_preview_fov_match

Test che dimostrano che i video di anteprima a 30 FPS e 60 FPS hanno lo stesso campo visivo. Il test acquisisce due video, uno a 30 FPS e l'altro a 60 FPS. Da ogni video viene selezionato un fotogramma rappresentativo e analizzato per verificare che le modifiche al campo visivo 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:

Superato:le immagini non sono allungate, il centro delle immagini non differisce di oltre il 3% e la variazione massima delle proporzioni tra i video a 30 FPS e 60 FPS non supera il 7,5%.

Meccanismi di errore:

  • Il cerchio del video a 30 FPS ha dimensioni molto diverse rispetto a quello del video a 60 FPS.
  • Il cerchio nell'immagine acquisita è distorto dalla pipeline di elaborazione.
  • Il cerchio nell'immagine acquisita viene ritagliato a causa di una richiesta di acquisizione con proporzioni estreme che riducono l'altezza o la larghezza dell'immagine.
  • Il cerchio nell'immagine acquisita ha un riflesso al centro e non appare completamente riempito.

test_aspect_ratio_and_crop

Verifica se le immagini sono distorte o ritagliate in modo imprevisto nella pipeline di elaborazione delle 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 dimensioni in modo errato con proporzioni o risoluzioni diverse.

API testate:

Superato:le immagini non vengono allungate, il centro delle immagini non differisce di più del 3% e il campo visivo massimo possibile viene mantenuto.

Meccanismi di errore:

  • La videocamera non è allineata al cerchio visualizzato sul tablet al centro della scena acquisita.
  • Il cerchio nell'immagine acquisita è distorto dalla pipeline di elaborazione.
  • L'immagine a risoluzione inferiore viene ritagliata due volte nella pipeline di elaborazione delle immagini, creando un campo visivo diverso tra le immagini ad alta e bassa risoluzione.
  • Il cerchio nell'immagine acquisita viene ritagliato a causa di una richiesta di acquisizione con proporzioni estreme che riducono l'altezza o la larghezza dell'immagine.
  • Il cerchio nell'immagine acquisita ha un riflesso al centro e non appare completamente riempito.

test_multi_camera_alignment

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

API testate:

Superato:i centri e le dimensioni dei cerchi sono come previsto 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 e LENS_POSE_ROTATION sono valori di progettazione e non dati di calibrazione effettivi.
  • Il sistema di fotocamere non è appropriato per la configurazione del test, ad esempio, testare un sistema di fotocamere grandangolare e ultrawide con il banco di prova RFoV. Per ulteriori informazioni, consulta le Domande frequenti su ITS-in-a-box per le videocamere, domanda 1.

test_preview_aspect_ratio_and_crop

Analogamente al test test_aspect_ratio_and_crop per le acquisizioni statiche, controlla i formati di anteprima supportati per verificare che i fotogrammi 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 del frame e che le dimensioni del cerchio non cambino per un formato costante o con risoluzioni diverse (controllo del campo visivo).

API testate:

Superato:le immagini non vengono allungate, il centro delle immagini non differisce di più del 3% e il campo visivo massimo possibile viene mantenuto.

test_preview_stabilization_fov

Controlla le dimensioni dell'anteprima supportate per assicurarsi che il campo visivo venga ritagliato in modo appropriato. Il test acquisisce due video, uno con la stabilizzazione dell'anteprima ON e l'altro senza OFF. Un frame rappresentativo viene selezionato da ogni video e analizzato per verificare che le modifiche al campo visivo nei due video rientrino nelle specifiche.

API testate:

Superato:le proporzioni del cerchio rimangono pressoché costanti, la posizione del centro del cerchio rimane stabile e le dimensioni del cerchio non cambiano di oltre il 20%.

test_video_aspect_ratio_and_crop

Mostra 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, che le immagini ritagliate mantengano il cerchio al centro e che le dimensioni del cerchio non cambino per un formato costante o con risoluzioni diverse (controllo del campo visivo).

API testate:

Superato:i fotogrammi video non vengono allungati, il centro dei fotogrammi non differisce di più del 3% e il campo visivo massimo possibile viene mantenuto.

scene5

scene5 richiede una scena grigia illuminata in modo uniforme. Ciò si ottiene tramite un diffusore posizionato sopra l'obiettivo della videocamera. Ti consigliamo il seguente diffusore: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Per preparare la scena, collega un diffusore davanti alla videocamera e punta quest'ultima verso una fonte luminosa di circa 2000 lux. Le immagini acquisite per scene5 richiedono un'illuminazione diffusa senza caratteristiche evidenti. Di seguito è riportata un'immagine di esempio:

scene5 example

Figura 117. Esempio di acquisizione di scene5.

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 uniforme monocromatica sia distribuito in modo uniforme. Esegue 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 l'esito positivo o negativo del test confrontandolo con il valore di y centrale. Il test di uniformità del colore viene valutato nello spazio rosso-verde e blu-verde.

API testate:

Superato:al raggio specificato dell'immagine, la varianza del valore rosso-verde e blu-verde deve essere inferiore al 20% per superare il test.

scene6

scene6 è una griglia di marker ArUco identificabili in modo univoco. I test in scene6 possono essere sensibili all'allineamento, quindi a partire da 15, puoi utilizzare check_alignment.py nella directory degli strumenti per attivare un controllo dell'allineamento del DUT e del grafico.

scene6

Figura 118. Esempio di scene6.

test_in_sensor_zoom

Esegue il test del comportamento della funzionalità di zoom nel sensore della videocamera, che produce immagini raw ritagliate.

Con lo scenario d'uso dello stream impostato su CROPPED_RAW, il test esegue due acquisizioni nell'intervallo di zoom, un'immagine raw con campo visivo completo e un'immagine raw ritagliata. Il test converte le immagini in array RGB, ridimensiona l'immagine raw ritagliata a grandezza naturale alle dimensioni riportate da SCALER_RAW_CROP_REGION e calcola la differenza RMS 3D tra le due immagini.

API testate:

Superato:la differenza RMS 3D tra l'immagine grezza ritagliata ridimensionata e l'immagine grezza con campo visivo completo è inferiore alla soglia impostata nel test.

test_zoom

Esegue il test del comportamento dello zoom della fotocamera dall'obiettivo ultrawide all'obiettivo grandangolare. Acquisisce acquisizioni nell'intervallo di zoom e controlla se i marcatori ArUco diventano più grandi man mano che la fotocamera esegue lo zoom. Il test verifica anche se la posizione del marcatore centrale cambia in modo prevedibile a ogni acquisizione. La distanza dal centro del marcatore centrale al centro dell'immagine può variare a un tasso costante rispetto al rapporto di zoom fino a un cambio di videocamera fisica oppure può variare in modo monotono verso la posizione dello stesso marcatore dopo un cambio di videocamera fisica. L'app Jetpack Camera (JCA) deve essere installata sul dispositivo prima del test.

API testate:

Superato:le dimensioni relative del marcatore ArUco acquisito sono accurate rispetto al rapporto di zoom richiesto per verificare che la videocamera esegua lo zoom correttamente e la distanza del marcatore dal centro dell'immagine cambia in base ai criteri indicati nella descrizione del test.

test_zoom per trovare il contorno del marcatore ArUco più vicino al centro

Figura 119. test_zoom per trovare il contorno del marcatore ArUco più vicino al centro.

test_low_latency_zoom

Esegue il test del comportamento dello zoom a bassa latenza della videocamera. Acquisisce immagini nell'intervallo di zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) e verifica se i marcatori nelle immagini di output corrispondono ai rapporti di zoom nei metadati dell'acquisizione. La stessa sessione di acquisizione della videocamera viene utilizzata per la convergenza 3A e per scattare foto.

API testate:

Superato:la dimensione relativa del marcatore acquisito è accurata rispetto ai metadati dei risultati del rapporto di zoom.

test_preview_video_zoom_match

Test che durante la registrazione e lo zoom, l'anteprima video e l'output video visualizzano e registrano lo stesso output. Calcola le dimensioni del marcatore più vicino al centro a diversi rapporti di zoom e verifica se le dimensioni del marcatore aumentano all'aumentare del rapporto di zoom.

API testate:

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

HD_1280x720_key_frame.png

Figura 120. HD_1280x720_key_frame.png (prima dello zoom).

preview_1280x720_key_frame.png

Figura 121. preview_1280x720_key_frame.png (prima dello zoom).

HD_1280x720_key_frame_zoomed.png

Figura 122. HD_1280x720_key_frame.png (dopo lo zoom).

preview_1280x720_key_frame_zoomed.png

Figura 123. preview_1280x720_key_frame.png (dopo lo zoom).

test_preview_zoom

Test che verificano che il rapporto di zoom di ogni frame di anteprima corrisponda ai metadati di acquisizione corrispondenti dall'obiettivo ultrawide all'obiettivo grandangolare. Il test acquisisce i fotogrammi di anteprima nell'intervallo di zoom e trova il marcatore ArUco più vicino al centro. Il test verifica quindi se la posizione del marcatore centrale cambia in modo prevedibile a ogni acquisizione. La distanza dal centro del marcatore centrale al centro dell'immagine può variare a un tasso costante rispetto al rapporto di zoom fino a un cambio di videocamera fisica oppure può variare in modo monotono verso la posizione dello stesso marcatore dopo un cambio di videocamera fisica.

API testate:

Superato:la dimensione relativa del marcatore ArUco selezionato è precisa per il rapporto di zoom segnalato del risultato di acquisizione corrispondente per tutti i frame di anteprima. La distanza relativa del marcatore selezionato dal centro dell'immagine è precisa per il rapporto di zoom segnalato del risultato di acquisizione corrispondente di tutti i frame di anteprima.

test_preview_zoom images showing selected marker closest to the center

Figura 124. test_preview_zoom immagini che mostrano il marcatore selezionato più vicino al centro

test_session_characteristics_zoom

Esegue il test dell'intervallo del rapporto di zoom per tutte le configurazioni di sessione supportate elencate in CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION. Per ciascuna di queste configurazioni, se CameraDeviceSetup#isSessionConfigurationSupported restituisce true, il test verifica che sia possibile raggiungere l'intervallo del rapporto di zoom restituito in CameraDeviceSetup#getSessionCharacteristics.

API testate:

Superato:è possibile raggiungere sia il rapporto di zoom minimo che quello massimo per ogni SessionConfiguration supportato elencato in CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION.

scene7

scene7 è una cornice rettangolare divisa in quattro quadranti uguali, ciascuno riempito con un colore diverso. Al centro del rettangolo si trova un grafico con bordo inclinato per i controlli della nitidezza. Quattro marker ArUco sono allineati ai quattro angoli esterni del rettangolo per facilitare l'ottenimento di coordinate precise del frame rettangolare principale a diversi rapporti di zoom.

scene7

Figura 125. scene7.

test_multi_camera_switch

Questo test verifica che durante la registrazione dell'anteprima a rapporti di zoom variabili, il passaggio tra gli obiettivi ultra grandangolare (UW) e grandangolare (W) produca valori RGB simili.

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

I frame acquisiti in corrispondenza e prima del punto di crossover vengono analizzati per l'esposizione automatica (AE), il bilanciamento del bianco automatico (AWB) e la messa a fuoco automatica (AF).

Il controllo AE verifica che la variazione di luminanza rientri nell'intervallo previsto per le immagini degli obiettivi UW e W. Il controllo del bilanciamento del bianco verifica che i rapporti tra rosso e verde e tra blu e verde rientrino nei valori di soglia per le immagini degli obiettivi UW e W. Il controllo AF valuta il valore di stima della nitidezza in base alla magnitudo media del gradiente tra le immagini dell'obiettivo UW e W.

Durante l'esecuzione di questo test, se l'effetto moiré interferisce con i risultati, utilizza un tablet con risoluzione più elevata dall'elenco dei tablet approvati da ITS per la fotocamera.

API testate:

Superato:per superare il test, devono essere superati i controlli AE e AWB. I risultati del controllo AF vengono utilizzati solo a scopo di registrazione. Di seguito sono riportati i criteri per ogni controllo:

  • Controllo AE: la variazione di luminanza (valore Y) tra le immagini dell'obiettivo UW e W deve essere inferiore al 4% per tutte le patch di colore se il dispositivo supporta sia ae_regions sia awb_regions. Se è supportato solo ae_regions, solo i valori della patch di colore grigio devono soddisfare i criteri.
  • Controllo AWB: la differenza tra i valori rosso-verde e blu-verde per le immagini dell'obiettivo UW e W deve essere inferiore al 3% per la patch di colore grigio e inferiore al 10% per le altre patch di colore se il dispositivo supporta sia ae_regions che awb_regions.
  • Controllo AF: la nitidezza dell'immagine per l'acquisizione con l'obiettivo W deve essere superiore a quella con l'acquisizione UW.

test_multi_camera_switch_gray_uw_y

Figura 126. Patch grigia scattata con l'obiettivo ultrawide.

test_multi_camera_switch_gray_w_y

Figura 127. Patch grigia scattata con l'obiettivo W.

scene8

scene8 è una cornice rettangolare divisa in quattro regioni uguali, ognuna contenente un ritratto scattato con un'esposizione diversa o sovrapposto a una tonalità di colore diversa (tonalità blu, maggiore esposizione, minore esposizione, tonalità gialla). Quattro marker ArUco sono allineati ai quattro angoli esterni del rettangolo per ottenere coordinate precise del frame del rettangolo principale.

scene8 example

Figura 128. Esempio di scena8.

test_ae_awb_regions

Verifica che i valori RGB e di luminanza differiscano durante la registrazione dell'anteprima in diverse regioni AE e AWB.

Il test registra un'anteprima di 8 secondi, eseguendo la misurazione AE e AWB su ogni quadrante per 2 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 frame che misura la regione con esposizione ridotta abbia un valore di luminanza superiore di oltre l'1% rispetto al frame che misura la regione con esposizione aumentata. In questo modo viene verificato che le immagini vengano schiarite durante la misurazione di una regione scura.
  • Controllo AWB: verifica che il rapporto tra rosso e blu (dei valori RGB medi dell'immagine) nel frame con la regione di misurazione blu sia superiore di oltre il 2% rispetto al frame con la regione di misurazione gialla. In questo modo si verifica che le immagini abbiano un valore RGB bilanciato durante la misurazione di una regione gialla (calda) o blu (fredda).

API testate:

Superato:entrambi i controlli AE e AWB vengono superati.

test_ae_awb_regions_dark_region

Figura 129. Misurazione del frame della regione scura con maggiore esposizione.

test_ae_awb_regions_light_region

Figura 130. Regione più chiara della misurazione del frame con esposizione ridotta.

Meccanismi di errore:

  • Il rilevamento accurato di tutti e quattro i marker ArUco è essenziale per questo test. Se il rilevamento iniziale non riesce, 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 la fase di elaborazione secondaria:

    Disallineamento dei marker ArUco

    Figura 131. Disallineamento dei marker ArUco.

test_color_correction_mode_cct

Test COLOR_CORRECTION_MODE con diverse temperature e tonalità di colore, verificando le variazioni dei rapporti RGB rispetto alla scena di acquisizione, scene8.

API testate:

Superato:i rapporti RGB mostrano gli aumenti o le diminuzioni previsti rispetto alle temperature e alle tonalità di colore selezionate.

Criteri di ignoramento dei test

Il test test_color_correction_mode_cct viene ignorato se viene soddisfatto uno dei seguenti criteri:

scene9

scene9 è composto da migliaia di cerchi di dimensioni e colori casuali per creare una scena con una ripetibilità molto bassa per mettere alla prova gli algoritmi di compressione JPEG.

scene9 example

Figura 132. Esempio di scene9.

test_jpeg_high_entropy

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

API testate:

Superato:il file JPEG viene compresso, scritto e letto correttamente dal disco.

test_jpeg_quality

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

API testate:

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

Medie della matrice DQT di luma e croma della fotocamera posteriore di Pixel 4 rispetto alla qualità JPEG

Figura 133. Medie della matrice DQT di luma e chroma della fotocamera posteriore di Pixel 4 rispetto alla qualità JPEG.

test_jpeg_quality failed test example

Figura 134. Esempio di test non riuscito.

scene_video

scene_video è una scena video composta da quattro cerchi di colori diversi che si muovono avanti e indietro a frame rate diversi su uno sfondo bianco.

Figura 135. Esempio di scene_video.

test_preview_frame_drop

Test che verifica che il frame rate di anteprima richiesto venga mantenuto con una scena dinamica. Questo test viene eseguito su tutte le videocamere esposte ad app di terze parti.

API testate:

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

scene_extensions

I test scene_extensions sono per le estensioni della fotocamera e devono utilizzare Camera ITS-in-a-Box, in quanto richiedono un controllo preciso dell'ambiente di test. Inoltre, tutte le infiltrazioni di luce devono essere controllate. Potrebbe essere necessario coprire il banco di prova, il dispositivo in test e il tablet con un telo protettivo, nonché eliminare la fuoriuscita di luce dallo schermo anteriore del dispositivo in test.

scene_hdr

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

scene_hdr

Figura 136. Esempio di scene_hdr.

test_hdr_extension

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

API testate:

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

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 contorno rosso. I quadrati sono disposti secondo l'orientamento della curva di Hilbert.

scene_low_light example

Figura 137. Esempio di scene_low_light.

test_night_extension

Testa l'estensione Night. Acquisisce le acquisizioni con l'estensione abilitata ed esegue le seguenti operazioni:

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

Per i dispositivi con Android 16 o versioni successive, la richiesta di acquisizione include una regione misurata corrispondente al rettangolo che delimita la griglia di quadrati. Questa aggiunta modifica i criteri di superamento della soglia.

API testate:

Pass:

  • Per i dispositivi con Android 16 o versioni successive, il valore di luminanza medio dei primi 6 quadrati deve essere almeno 80 e la differenza media nel valore di luminanza dei quadrati consecutivi fino ai quadrati 5 e 6 deve essere almeno 18, 75.
  • Per i dispositivi con Android 15 e versioni precedenti, il valore medio di luminanza dei primi 6 quadrati deve essere almeno 85 e la differenza media nel valore di luminanza dei quadrati consecutivi fino ai quadrati 5 e 6 deve essere almeno 17.

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

Esempio di test superato per una scena notturna in condizioni di scarsa illuminazione

Figura 138. Esempio di test superato per una scena notturna in condizioni di scarsa illuminazione.

test_low_light_boost_extension

Esegue il test della modalità AE Aumento luce. Se Camera2 supporta la modalità AE Low Light Boost, questo test viene eseguito per Camera2. Se l'estensione della modalità notturna è supportata e supporta la modalità AE Low Light Boost, questo test viene eseguito anche per l'estensione della modalità notturna. Questo test imposta la modalità AE su miglioramento in condizioni di scarsa illuminazione, acquisisce un frame dall'anteprima ed esegue le seguenti operazioni:

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

Per i dispositivi con Android 16 o versioni successive, la richiesta di acquisizione include una regione misurata corrispondente al rettangolo che delimita la griglia di quadrati. Questa aggiunta modifica i criteri di superamento della soglia.

API testate:

Pass:

  • Per i dispositivi con Android 16 o versioni successive, il valore di luminanza medio dei primi 6 quadrati deve essere almeno 54 e la differenza media nel valore di luminanza dei quadrati consecutivi fino ai quadrati 5 e 6 deve essere almeno 17.

  • Per i dispositivi con Android 15 e versioni precedenti, il valore medio di luminanza dei primi 6 quadrati deve essere almeno 70 e la differenza media nel valore di luminanza dei quadrati consecutivi fino ai quadrati 5 e 6 deve essere almeno 18.

scene_tele

Un requisito fondamentale per i test scene_tele è che la distanza del grafico deve essere almeno la distanza minima di messa a fuoco del teleobiettivo. Poiché questa distanza minima di messa a fuoco può variare a seconda del dispositivo, devi configurare la configurazione in base alla telecamera teleobiettivo specifica.

Configurazione di scene_tele in base alla distanza di messa a fuoco della fotocamera grandangolare e tele

Figura 139. Configurazione di scene_tele in base alla distanza di messa a fuoco della videocamera grandangolare e tele.

Per maggiori informazioni sulla configurazione dell'hardware di test, consulta Configurazione del rig di estensione del teleobiettivo.

scene6_tele

La scena scene6_tele è costituita da una griglia di marcatori ArUco su uno sfondo bianco.

Se le acquisizioni di scene6_tele appaiono sovraesposte nel rig modulare, rimuovi la piastra anteriore del rig modulare.

Scollega il banco di prova WFoV dall'estensione e rimuovi il supporto per lo smartphone.

Scollega il banco di prova WFoV dalla prolunga e rimuovi il supporto per lo smartphone.

Figura 140. Scollega il banco di prova WFoV dall'estensione e rimuovi il supporto per lo smartphone.

remove_front_plate

Figura 141. Rimuovi la piastra anteriore.

test_zoom_tele

Esegue il test del comportamento dello zoom della fotocamera dall'obiettivo grandangolare al teleobiettivo. Il test è identico a test_zoom, ma verifica il comportamento dello zoom della fotocamera dall'obiettivo grandangolare al teleobiettivo.

API testate:

Superato:le dimensioni relative del marker ArUco acquisito sono accurate rispetto al rapporto di zoom richiesto per verificare che la videocamera esegua lo zoom correttamente e la distanza del marker dal centro dell'immagine cambia in base ai criteri elencati in test_zoom.

test_preview_zoom_tele

Esegue il test del comportamento dello zoom della videocamera per i frame di anteprima dall'obiettivo grandangolare al teleobiettivo. Il test è identico a test_preview_zoom, ma verifica il comportamento dello zoom della fotocamera per i frame di anteprima dall'obiettivo grandangolare al teleobiettivo.

API testate:

Superato:le dimensioni relative del marcatore ArUco acquisito sono accurate rispetto al rapporto di zoom richiesto per verificare che la fotocamera esegua lo zoom correttamente e la distanza del marcatore dal centro dell'immagine cambia in base ai criteri elencati in test_preview_zoom.

scene7_tele

scene7_tele è identico a scene7, ma configurato per il test del teleobiettivo. Si tratta di una cornice rettangolare divisa in quattro quadranti uguali, ciascuno riempito con un colore diverso. Al centro del rettangolo si trova un grafico con bordo inclinato per i controlli della nitidezza. Quattro marker ArUco sono allineati ai quattro angoli esterni del rettangolo per facilitare l'ottenimento di coordinate precise del frame rettangolare principale a diversi rapporti di zoom.

test_multi_camera_switch_tele

Questo test verifica che durante la registrazione dell'anteprima a diversi rapporti di zoom, il passaggio tra gli obiettivi grandangolare (W) e teleobiettivo (tele) produca valori RGB simili.

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

I frame acquisiti in corrispondenza e prima del punto di crossover vengono analizzati per AE, AWB e AF.

Il controllo AE verifica che la variazione di luminanza rientri nell'intervallo previsto per le immagini dell'obiettivo W e tele. Il controllo AWB verifica che i rapporti tra rosso-verde e blu-verde rientrino nei valori di soglia per le immagini dell'obiettivo W e tele. Il controllo AF valuta il valore di stima della nitidezza in base alla magnitudo media del gradiente tra le immagini dell'obiettivo grandangolare e di quello teleobiettivo.

API testate:

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

  • Controllo AE: la variazione di luminanza tra le immagini dell'obiettivo grandangolare e di quello tele deve essere inferiore al 4%.
  • Controllo AWB: nello spazio colore LAB, il delta C tra rosso-verde e blu-verde per grandangolo e teleobiettivo non può superare 10.
  • Controllo AF: la nitidezza dell'immagine del teleobiettivo deve essere superiore a quella dell'obiettivo grandangolare.

scene_flash

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

test_auto_flash

Test che verificano l'attivazione del flash automatico in una scena buia per le fotocamere posteriori e anteriori. Per le fotocamere frontali, il flash automatico utilizza lo schermo per illuminare la scena, non un flash fisico. Il test verifica che il flash automatico venga attivato controllando che il centro dell'immagine del riquadro sia più luminoso con il flash automatico attivato. Per attivare il flash automatico, le luci del banco di prova devono essere spente. Le luci possono essere spente automaticamente con il controller Arduino. Perché 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 videocamere posteriori si basa sull'attivazione dello stato AE, mentre il flash automatico per le videocamere anteriori non si basa sull'AE e viene sempre attivato.

API testate:

Superato:il centro dell'immagine della tessera con il flash automatico attivato è più luminoso dell'immagine della scena originale per tutte le videocamere.

test_flash_strength

Test che controllano 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'utilizzo della fotocamera in modalità SINGLE, l'intensità del flash cambi in base ai 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à, mentre se la modalità è ON_AUTO_FLASH, il livello di intensità del flash non influisce sulla luminosità.

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 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 rientra nella tolleranza man mano che il livello di intensità del flash aumenta da nessun flash a FLASH_SINGLE_STRENGTH_MAX_LEVEL.

test_led_snapshot

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

Questo test aggiunge un controller di illuminazione alla scatola di 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 il trigger aePrecapture impostato su START e imposta l'intento di acquisizione su Preview per acquisire con il flash.

Poiché l'acquisizione ha un hotspot distintivo dovuto al flash, il test calcola la media dell'immagine del flash dell'intera acquisizione e verifica se il valore rientra nell'intervallo (68, 102). Per verificare se il bilanciamento del bianco dell'immagine è ragionevole, il test calcola i rapporti rosso-verde e blu-verde e verifica se i rapporti sono compresi tra 0,95 e 1,05.

API testate:

Superato:i rapporti rosso-verde e blu-verde sono compresi tra 0,95 e 1,05. La media dell'immagine del flash rientra nell'intervallo (68, 102).

test_night_mode_indicator

Verifica la funzionalità dell'indicatore della modalità notturna, una funzionalità che indica se la videocamera funziona in condizioni di scarsa illuminazione e se trarrà vantaggio da un'acquisizione con l'estensione della modalità notturna. Questa funzionalità è disponibile solo sui dispositivi che supportano le estensioni della fotocamera in modalità Notte.

Questo test verifica che l'indicatore della modalità notturna rifletta correttamente le condizioni di illuminazione durante l'anteprima della videocamera. Il test esegue i seguenti passaggi:

  1. Inizializzazione:il test inizializza un ItsSession e recupera le proprietà della videocamera. Stabilisce anche una connessione con il controller dell'illuminazione.
  2. Condizioni di ignoramento:il test viene ignorato se il dispositivo non supporta il livello API richiesto o la funzionalità di indicatore della modalità notturna.
  3. Sessione Camera2:
    • Il test avvia una sessione di acquisizione dell'anteprima utilizzando una sessione Camera2.
    • La luce è accesa e viene acquisito un frame di anteprima.
    • Il test verifica che l'indicatore della modalità notturna sia nello stato OFF.
    • La luce viene spenta e viene acquisito un frame di anteprima.
    • Il test verifica che l'indicatore della modalità notturna sia nello stato ON.
  4. Sessione di estensione della videocamera:
    • Il test ripete la stessa procedura della sessione Camera2, ma utilizzando una sessione CameraExtension con l'estensione EXTENSION_NIGHT.
  5. Pulizia: il test si chiude ItsSession e rilascia il controller dell'illuminazione.

API testate:

Pass:

  • Quando la spia è accesa, l'indicatore della modalità notturna deve essere nello stato OFF.
  • Quando la spia è spenta, l'indicatore della modalità notturna deve essere nello stato ON.
  • Si applica sia alle sessioni Camera2 sia a quelle CameraExtension.

test_preview_min_frame_rate

Test che verificano che il frame rate 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_torch_strength

Test che controllano 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'utilizzo della videocamera in modalità TORCH, l'intensità della torcia cambi con i 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à, mentre 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 una raffica, simulando una sessione di acquisizione video. Per eseguire il test, le luci nel banco di prova devono essere spente. Le luci possono essere spente automaticamente con il controller Arduino. Perché 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 scatto a raffica dell'immagine aumenta man mano che il livello di intensità del flash aumenta da nessun flash a FLASH_TORCH_STRENGTH_MAX_LEVEL. Quando la modalità di esposizione automatica è ON_AUTO_FLASH, la differenza di luminosità delle patch di scatto a raffica dell'immagine rientra nella tolleranza man mano che il livello di intensità del flash aumenta da nessun flash a FLASH_TORCH_STRENGTH_MAX_LEVEL.

sensor_fusion

I test di fusione dei sensori richiedono movimenti specifici dello smartphone davanti a un motivo a scacchiera e a marcatori ArUco. Per risultati ottimali, verifica che la tabella di test sia montata in piano. I grafici non piatti influiscono sui calcoli della rotazione per molti dei test. Il grafico deve riempire il retro della scatola di fusione dei sensori stampando a 17 x 17 pollici. (43x43 cm). I test sensor_fusion possono essere automatizzati con la scatola di fusione dei sensori.

Grafico di fusione dei sensori

Figura 142. Grafico di fusione dei sensori.

Grafico della fusione dei sensori in Rig

Figura 143. Grafico di fusione dei sensori che riempie la parte posteriore della casella di fusione dei sensori.

test_lens_intrinsic_calibration

Test che verifica che il centro ottico delle modifiche intrinseche dell'obiettivo quando l'obiettivo si sposta a causa della stabilizzazione ottica dell'immagine (OIS). Se sono supportati campioni intrinseci dell'obiettivo, i test che il centro ottico dei campioni intrinseci dell'obiettivo cambia quando l'obiettivo si sposta a causa della stabilizzazione ottica dell'immagine.

API testate:

Passaggio:il centro ottico delle modifiche intrinseche dell'obiettivo di 1 pixel o più. Se sono supportati campioni intrinseci dell'obiettivo, i centri ottici dei campioni intrinseci dell'obiettivo cambiano di 1 pixel o più.

La figura seguente è un esempio di grafico test_lens_intrinsic_calibration che mostra le variazioni dei punti principali in pixel per ogni frame:

test_lens_intrinsic_calibration_example.png

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

test_multi_camera_frame_sync

Test che inquadrano i timestamp acquisiti dalla videocamera logica entro 10 ms calcolando gli angoli dei quadrati all'interno della scacchiera per determinare il timestamp.

API testate:

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

test_preview_distortion

Test che dimostrano che la distorsione viene 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 parametri intrinseci ed estrinseci della videocamera.

Nell'immagine di esempio, i punti ideali sono mostrati in verde, mentre i punti effettivi sono mostrati in rosso. L'errore di distorsione viene calcolato in base alla distanza RMS in pixel tra i punti effettivi e quelli ideali. I colori verde e rosso evidenziati nell'immagine vengono utilizzati per rilevare visivamente l'area dell'errore di distorsione.

test_preview_distortion_example.jpg

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

API testate:

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

test_preview_stabilization

Test in cui il video di anteprima stabilizzato ruota meno del giroscopio.

API testate:

Superato:la rotazione angolare massima sui frame è inferiore al 70% della rotazione del giroscopio.

Di seguito sono riportati alcuni video di esempio con e senza stabilizzazione:

Figura 146. Video di esempio con stabilizzazione.

Figura 147. Video di esempio senza stabilizzazione.

test_sensor_fusion

Verifica la differenza di timestamp tra la videocamera e il giroscopio per le applicazioni AR e VR. Lo smartphone viene ruotato di 90 gradi 10 volte davanti al motivo a scacchiera. Il movimento dura circa 2 secondi andata e ritorno. Questo test viene ignorato se non è incluso alcun giroscopio o se il parametro REALTIME di origine 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 per lo smartphone durante il test. Il movimento nelle direzioni x e y implica che lo smartphone non è montato in modo sicuro sulla piastra di montaggio, riducendo la probabilità che il test venga superato. Il numero di cicli nel grafico dipende dalla velocità di scrittura per il salvataggio dei frame.

    test_sensor_fusion gyroscope events example

    Figura 148. Esempio di eventi del giroscopio test_sensor_fusion.

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

    test_sensor_fusion plot rotations example

    Figura 149. Esempio di rotazioni del grafico test_sensor_fusion.

API testate:

Superato:l'offset dei timestamp della videocamera e del giroscopio è inferiore a 1 ms come indicato nella sezione 7.3.9 Sensori ad alta fedeltà del CDD.

Meccanismi di errore:

  • Errore di offset: l'offset giroscopio-videocamera non è calibrato correttamente entro +/-1 ms.
  • Frame persi: la pipeline non è abbastanza veloce per acquisire 200 frame consecutivi.
  • Errori di socket: adb non riesce a connettersi in modo affidabile al DUT per un periodo di tempo sufficiente a eseguire il test.
  • Il grafico non è montato in piano. Il grafico test_sensor_fusion_plot_rotations ha frame in cui la rotazione del giroscopio e della videocamera varia notevolmente man mano che la videocamera ruota attraverso le parti del grafico che non sono piatte.
  • 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, poiché la fotocamera posteriore spesso ha un rigonfiamento 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

Test in cui il video stabilizzato ruota meno del giroscopio.

API testate:

Superato:la rotazione angolare massima sui frame è inferiore al 60% della rotazione del giroscopio.

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

Figura 150. Video di esempio con stabilizzazione.

Figura 151. Video di esempio senza stabilizzazione.

test_video_stabilization_jca

I test che stabilizzano il video acquisito utilizzando l'JCA ruotano meno del giroscopio. Il JCA deve essere installato sul dispositivo prima del test.

API testate:

Superato: la rotazione angolare massima sui frame estratti dal video acquisito utilizzando la JCA è inferiore al 70% della rotazione del giroscopio.

feature_combination

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

test_feature_combination

Esegue test su tutte le combinazioni di diversi flussi, modalità di stabilizzazione video, intervallo di FPS target, video HDR a 10 bit e Ultra HDR supportati dal dispositivo della videocamera.

Per Android 16 e versioni successive, il test esegue tutte le combinazioni di funzionalità supportate e registra i risultati in un file proto. Le asserzioni di errore vengono chiamate solo per le combinazioni di funzionalità per le quali isSessionConfigurationSupported restituisce True.

API testate:

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

scene_ip

In Android 16 e versioni successive, lo scenario scene_ip consente di eseguire controlli di parità delle immagini tra l'app Fotocamera predefinita e l'app Fotocamera Jetpack (JCA) per identificare le principali differenze tra le immagini acquisite. La JCA replica le acquisizioni delle app di social media e fornisce un'immagine di base che le app di social media elaborano e perfezionano.

Requisiti di configurazione dell'hardware

Per i test scene_ip è necessaria la seguente configurazione hardware:

  • I test vengono eseguiti nella videocamera Gen2 ITS-in-a-box.
  • I controller di illuminazione e servo che fanno parte del rig Gen2 vengono utilizzati per controllare l'ambiente di test
  • All'interno del rig Gen2 è presente un grafico delle funzionalità di test.

test_chart_gen2

Figura 152. Esempio di Gen2chart_sample.

Criteri di ignoramento dei test

I test scene_ip vengono ignorati se viene soddisfatto uno dei seguenti criteri:

  • Il dispositivo ha un primo livello API (first_api_level) pari o inferiore a 35.
  • Il dispositivo non è uno smartphone con fotocamere principali anteriore e posteriore (ad esempio, un tablet o una TV).

test_default_jca_ip

Acquisisce immagini del grafico della funzionalità di test in condizioni di illuminazione controllata utilizzando l'app Fotocamera predefinita e JCA ed esegue i seguenti controlli:

  • FOV: verifica che l'app fotocamera predefinita e le acquisizioni JCA abbiano lo stesso FOV. Questo controllo utilizza la funzionalità del codice QR centrale estratta dall'immagine del grafico delle acquisizioni.

  • Luminosità:verifica che la differenza di luminosità misurata tra l'app fotocamera predefinita e JCA non superi 10. Questo controllo utilizza la patch della gamma dinamica per la misurazione della luminosità.

  • Bilanciamento del bianco:verifica che la differenza di bilanciamento del bianco tra l'app fotocamera predefinita e JCA non superi 4. Questo controllo utilizza la patch della gamma dinamica per la misurazione della luminosità.

Superamento della sezione di base: il test supera i controlli di campo visivo, luminosità e bilanciamento del bianco. In Android 16, questo test non è obbligatorio (NOT_YET_MANDATED).