Test ITS della videocamera

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

I test ITS vengono aggiornati o aggiunti con ogni versione di Android, come descritto nelle note di rilascio di Camera ITS per la versione di Android in questione. Gli aggiornamenti sono basati sui bug segnalati dagli utenti o dagli sviluppatori. Le aggiunte sono guidate da bug segnalati dagli utenti o dagli sviluppatori e dalla convalida del comportamento corretto delle nuove funzionalità del framework della fotocamera.

In Android 17 e versioni successive, i test ITS della fotocamera sono suddivisi in due attività in CTS Verifier per consentire l'esecuzione parallela e ridurre il tempo di test: un'attività per i test feature_combination e sensor_fusion e un'altra per tutti gli altri test. Per saperne di più, consulta Riduzione del tempo di test.

Camera ITS filtra i test 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 bloccare i test aggiunti in un livello API specifico che verificano la presenza di esperienze utente negative per le funzionalità nei livelli API inferiori. ITS utilizza ro.vendor.api_level per controllare i test delle funzionalità aggiunte in 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 nelle seguenti sezioni:

Scene di test basate su tablet

  • scene0: acquisisci metadati, jitter, giroscopio, vibrazione
  • scene1: esposizione, sensibilità, compensazione del valore di esposizione (EV), YUV rispetto a JPEG e RAW
  • scene2: riconoscimento facciale, test che richiedono scene a colori
  • scene3: Rinforzo periferico, movimento dell'obiettivo
  • scene4: proporzioni, ritaglio, campo visivo
  • scene6: Zoom
  • scene7: Sensore videocamera multiplo
  • scene8:misurazione della regione di esposizione automatica (AE) e bilanciamento del bianco automatico (AWB)
  • scene9: compressione JPEG
  • scene_extensions: estensioni della fotocamera
  • scene_tele: Cambio del teleobiettivo
  • scene_video: cali di frame

Scene di test basate su rig Gen2 / sensor_fusion

Scena di test basata su diffusore

  • scene5: vignettatura dell'obiettivo

Scena di test basata su tablet con ampia gamma di colori

Consulta le singole sezioni per una descrizione di ogni scena.

Scene di test basate su tablet

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:esiste un delta di almeno 30 ms tra i frame.

Nella figura seguente, nota l'intervallo ridotto dell'asse Y. In realtà, il jitter è ridotto in questo grafico.

test_jitter plot

Figura 1. Grafico test_jitter.

test_metadata

Verifica la validità delle voci dei metadati, esaminando i risultati di acquisizione e gli oggetti delle caratteristiche della fotocamera. Questo test utilizza valori di esposizione e guadagno auto_capture_request perché i contenuti delle immagini non sono importanti. Si tratta di un test fast-FAIL, in quanto viene eseguito in breve tempo, richiede una configurazione minima e segnala un numero significativo di test non riusciti a valle. L'intera suite di test non deve essere eseguita finché test_metadata non viene superato.

API testate:

Esito positivo:il livello hardware, i tag rollingShutterSkew, frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, il campo visivo (FoV) e la distanza iper-focale sono presenti e hanno valori validi.

test_request_capture_match

Verifica che il dispositivo scriva i valori di esposizione e guadagno corretti leggendo i metadati di acquisizione. Questo è un test fast-FAIL, in quanto richiede una configurazione minima e segnala un numero significativo di test non riusciti a valle. L'intera suite di test non deve essere eseguita finché test_request_capture_match non viene superato.

API testate:

Superato: i valori dei metadati di richiesta e acquisizione corrispondono in tutte le inquadrature.

test_sensor_events

Per i dispositivi che annunciano 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 se il dispositivo non è in modalità standby. Si tratta di un test con esito negativo rapido, in quanto viene eseguito in breve tempo, richiede una configurazione minima e segnala l'esito negativo del test di fusione dei sensori a valle. I test della scena sensor_fusion non devono essere eseguiti, a meno che test_sensor_events non sia PASS o SKIP.

API testate:

Superato:vengono ricevuti gli eventi per ogni sensore.

test_solid_color_test_pattern

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

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

API testate:

Superato:i pattern di test a tinta unita supportati sono del colore corretto e la varianza nell'immagine è bassa.

test_test_pattern

Verifica il parametro android.sensor.testPatternMode per acquisire i frame per ogni pattern di test valido e controlla che i frame vengano generati correttamente per i colori a tinta unita e le barre di colore. 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 di colore.

API testate:

Superato:i pattern di test supportati vengono generati correttamente.

Esempio di test_test_patterns

Figura 2. Esempio di test_test_patterns.

test_tonemap_curve

Testa la conversione del pattern di test da RAW a YUV con mappatura dei toni lineare. Questo test richiede android.sensor.testPatternMode = 2 (COLOR_BARS) per generare un pattern di immagini 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 immagini ideale (si basa su test_test_patterns).

API testate:

Superato: YUV e RAW sono simili tra loro.

Esempio di test_tonemap_curve raw

Figura 3. Esempio di test_tonemap_curve non elaborato.

Esempio YUV test_tonemap_curve

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. Si tratta di un test con esito negativo rapido, in quanto viene eseguito in breve tempo, richiede una configurazione minima e segnala l'esito negativo del test di fusione dei sensori a valle. I test della scena sensor_fusion non devono essere eseguiti a meno che test_unified_timestamp non sia PASS o SKIP.

API testate:

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

test_vibration_restriction

Verifica se la vibrazione del dispositivo funziona come previsto.

API testate:

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

scene1_1

scene1 è 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à 3A (AE, AWB e AF), poiché la regione centrale non ha caratteristiche. Tuttavia, la richiesta di acquisizione specifica l'intera scena, che include caratteristiche sufficienti per la convergenza di 3A.

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

esempio scena 1

Figura 5. Grafico della scena 1 a grandezza originale (a sinistra), grafico ridimensionato di 2/3 (a destra).

test_ae_precapture_trigger

Testa la macchina a stati AE quando utilizzi l'attivatore di pre-acquisizione. Acquisisce cinque richieste manuali con l'AE disattivata. L'ultima richiesta ha un trigger di pre-acquisizione AE, che deve essere ignorato perché l'AE è disattivata.

API testate:

Pass: l'AE converge.

test_auto_vs_manual

Test che hanno dimostrato che gli 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.

Esempio di bilanciamento del bianco test_auto_vs_manual

Figura 7. Esempio di bilanciamento del bianco test_auto_vs_manual.

Esempio di trasformazione del bilanciamento del bianco manuale test_auto_vs_manual

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

test_black_white

Verifica che il dispositivo produca immagini completamente in bianco e nero. Acquisisce due immagini, la prima con un guadagno estremamente basso e un'esposizione breve, che genera una foto nera, e la seconda con un guadagno estremamente elevato e un'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% di differenza.

test_black_white, black example

Figura 9. test_black_white, esempio di nero.

Esempio di trasformazione del bilanciamento del bianco manuale test_auto_vs_manual

Figura 10. test_black_white, esempio di bianco.

Esempio di media del grafico test_black_white

Figura 11. test_black_white, esempio di medie dei grafici.

test_burst_capture

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

API testate:

Superato:acquisisce una sequenza di immagini a grandezza originale, verifica la presenza di frame drop e la luminosità dell'immagine.

test_burst_sameness_manual

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

API testate:

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

Non superato: mostra un picco o un calo del grafico della media RGB all'inizio di ogni sequenza

  • 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 test_burst_sameness_manual.

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:

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

test_crop_region_raw comp raw crop example

Figura 14. Esempio di ritaglio raw comp test_crop_region_raw.

Esempio completo di test_crop_region_raw comp raw

Figura 15. Esempio completo di test_crop_region_raw comp raw.

Esempio di ritaglio YUV comp test_crop_region_raw

Figura 16. Esempio di ritaglio YUV di test_crop_region_raw comp.

Esempio test_crop_region_raw_yuv_full

Figura 17. Esempio completo di test_crop_region_raw YUV.

test_crop_regions

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

API testate:

Superato:l'immagine dell'area ritagliata corrisponde alla patch che corrisponde all'immagine ritagliata.

test_ev_compensation

Verifica che venga applicata la compensazione del valore di esposizione (EV). 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 confronta la luminosità misurata con quella prevista. I valori previsti vengono calcolati in base alla luminosità dell'immagine senza compensazione EV applicata e il valore previsto si satura se i valori calcolati superano l'intervallo di valori effettivo dell'immagine. Il test non va a buon fine se i valori previsti e quelli misurati non corrispondono o se le immagini vengono sovraesposte entro cinque passaggi.

API testate:

Superamento della sezione di base:le immagini mostrano un'esposizione crescente senza sovraesposizione entro cinque passaggi.

test_ev_compensation_basic

Figura 18. test_ev_compensation_basic.

Superamento della sezione avanzata:acquisisce un aumento della luma man mano che l'impostazione della compensazione EV aumenta. 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

Verifica che venga ottenuta un'esposizione costante al variare dell'ISO e del tempo di esposizione. Scatta una serie di foto con ISO e tempo di esposizione scelti per 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 di esempio 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 un ISO più elevato. 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 deviare dai valori del moltiplicatore di guadagno basso.

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

Verifica che le impostazioni (esposizione e guadagno) si blocchino sul frame corretto per le fotocamere 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. Controlla che le immagini abbiano le proprietà previste.

API testate:

Superato: le immagini [2, 3, 6, 8, 10, 12, 13] hanno un ISO o un'esposizione aumentati e vengono visualizzate con medie RGB più elevate nel grafico della figura seguente.

Esempio di grafico test_latching plot

Figura 23. Esempio di 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

Verifica che l'elaborazione del dispositivo possa essere invertita in pixel lineari. Acquisisce una sequenza di scatti con il dispositivo puntato verso un target uniforme.

API testate:

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

Esempio di medie del grafico test_linearity

Figura 37. Esempio di medie del grafico test_linearity.

test_locked_burst

Testa il blocco 3A e la sequenza 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 verifica la coerenza delle immagini YUV, mentre il controllo della frequenza fotogrammi è in CTS.

API testate:

Superato:le acquisizioni hanno un aspetto coerente.

test_locked_burst frame0 example

Figura 38. Esempio di frame0 test_locked_burst.

test_locked_burst frame1 example

Figura 39. Esempio di frame 1 test_locked_burst.

test_locked_burst_frame2

Figura 40. Esempio di frame2 test_locked_burst.

scene1_2

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

test_param_color_correction

Verifica che i parametri android.colorCorrection.* vengano applicati quando vengono impostati. Acquisisce scatti con valori di trasformazione e guadagno diversi e verifica che l'aspetto sia corrispondentemente diverso. La trasformazione e i guadagni vengono scelti per rendere l'output sempre più rosso o blu. Utilizza una mappatura dei toni lineare.

La mappatura tonale è una tecnica utilizzata nell'elaborazione delle immagini per mappare un insieme di colori a un altro per approssimare l'aspetto delle immagini con un intervallo dinamico elevato in un mezzo con un intervallo dinamico più limitato.

API testate:

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

test_param_color_correction plot means example

Figura 41. Esempio di medie del grafico test_param_color_correction.

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

test_param_color_correction req=0 unity example

Figura 42. Esempio di unity test_param_color_correction req=0.

test_param_color_correctness req=1 red boost example

Figura 43. Esempio di test_param_color_correctness req=1 con aumento del rosso.

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 evidente se il flash è stato attivato o meno, e utilizza una mappatura dei toni lineare. Controlla il centro con l'immagine della sezione per verificare se è stato creato un gradiente di grandi dimensioni per verificare se il flash è stato attivato.

API testate:

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

test_param_flash_mode 1 esempio

Figura 45. Esempio di test_param_flash_mode 1.

Esempio di riquadro test_param_flash_mode 1

Figura 46. Esempio di un riquadro test_param_flash_mode.

Esempio test_param_flash_mode_2

Figura 47. Esempio di test_param_flash_mode 2.

Esempio di riquadro test_param_flash_mode 2

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 viene impostato. Acquisisce immagini con la fotocamera scarsamente illuminata. Utilizza un guadagno analogico elevato per garantire che l'immagine acquisita sia rumorosa. Acquisisce tre immagini, per NR disattivata, veloce e di alta qualità. Acquisisce anche un'immagine con un guadagno basso e la riduzione del rumore disattivata e utilizza la varianza di questa immagine come base di riferimento. Più alto è il rapporto segnale/rumore (SNR), migliore è la qualità dell'immagine.

API testate:

Superato:l'SNR varia in base alle diverse modalità di riduzione del rumore e si comporta in modo simile al grafico seguente:

Esempio di SNR del grafico test_param_noise_reduction

Figura 49. Esempio di SNR del grafico 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 high gain nr=3.

Esempio di test_param_noise_reduction con guadagno basso

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:

Superato: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. Esempio di mappa di ombreggiatura dell'obiettivo test_param_shading_mode, modalità 0, loop 0.

test_param_shading_mode lens shading map, mode 1 loop 0 example

Figura 56. Esempio di mappa di ombreggiatura dell'obiettivo test_param_shading_mode, modalità 1, loop 0.

test_param_shading_mode lens shading map, mode 2 loop 0 example

Figura 57. Esempio di mappa di ombreggiatura dell'obiettivo test_param_shading_mode, modalità 2, loop 0.

test_param_tonemap_mode

Verifica che il parametro android.tonemap.mode sia applicato. Applica curve di mappatura dei toni diverse a ciascun canale R, G, B e verifica 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 dei toni lineare, ma n=1 ha un gradiente più ripido. 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à non elaborata dei post. Acquisisce un insieme di immagini RAW e YUV con sensibilità diverse, pubblica la combinazione di aumento della sensibilità RAW e controlla se la media dei pixel di output corrisponde alle impostazioni della richiesta.

API testate:

Superato:le immagini RAW diventano più scure man mano che l'amplificazione aumenta, mentre la luminosità delle immagini YUV rimane costante.

test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

Figura 60. Esempio di test_post_raw_sensitivity_boost raw s=3583 boost=0100.

Esempio di test_post_raw_sensitivity_boost raw s=1792 boost=0200

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.

Esempio di medie del grafico non elaborato test_post_raw_sensitivity_boost

Figura 66. Esempio di media del grafico non elaborato test_post_raw_sensitivity_boost.

Esempio di test_post_raw_sensitivity_boost YUV s=0112 boost=3199

Figura 67. Esempio di test_post_raw_sensitivity_boost YUV s=0112 boost=3199.

test_post_raw_sensitivity_boost YUV s=0448 boost=0800 example

Figura 68. Esempio di test_post_raw_sensitivity_boost YUV s=0448 boost=0800.

Esempio test_post_raw_sensitivity_boost YUV s=0896 boost=0400

Figura 69. Esempio di test_post_raw_sensitivity_boost YUV s=0896 boost=0400.

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.

Esempio test_post_raw_sensitivity_boost YUV s=3585 boost=0100

Figura 71. Esempio di test_post_raw_sensitivity_boost YUV s=3585 boost=0100.

test_post_raw_sensitivity_boost_yuv_plot_means

Figura 72. Esempio di test_post_raw_sensitivity_boost_yuv_plot_means.

test_raw_exposure

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

API testate:

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

Esempio di test_raw_exposure ISO=55

Figura 73. Esempio di test_raw_exposure ISO=55.

10⁰ corrisponde a 1 ms, 10¹ corrisponde a 10 ms e 10⁻¹ corrisponde a 0, 1 ms.

Esempio di test_raw_exposure ISO=132

Figura 74. Esempio di test_raw_exposure ISO=132.

Esempio di test_raw_exposure ISO=209

Figura 75. Esempio di test_raw_exposure ISO=209.

Esempio di test_raw_exposure ISO=286

Figura 76. Esempio di test_raw_exposure ISO=286.

Esempio di test_raw_exposure ISO=363

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

Verifica che android.noiseReduction.mode venga applicato per le richieste di ritrattamento. Acquisisce immagini rielaborate con la fotocamera in condizioni di scarsa illuminazione. Utilizza un guadagno analogico elevato per verificare che l'immagine acquisita sia rumorosa. Acquisisce tre immagini rielaborate, per NR disattivata, veloce e di alta qualità. Acquisisce un'immagine rielaborata con un guadagno basso e la riduzione del rumore disattivata e utilizza la varianza di questa immagine come riferimento.

API testate:

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

Grafico tipico di SNR rispetto alla modalità NR

Figura 79. Esempio di grafico tipico del rapporto segnale/rumore rispetto alla modalità NR.

test_tonemap_sequence

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

API testate:

Esito positivo:sono presenti tre frame identici seguiti da un altro set di tre frame identici.

Esempio test_tonemap_sequence i=0

Figura 80. Esempio di test_tonemap_sequence i=0.

Esempio test_tonemap_sequence i=1

Figura 81. Esempio di test_tonemap_sequence i=1.

Esempio test_tonemap_sequence i=2

Figura 82. Esempio di test_tonemap_sequence i=2.

Esempio di test_tonemap_sequence i=3

Figura 83. Esempio di test_tonemap_sequence i=3.

Esempio test_tonemap_sequence_i=4

Figura 84. Esempio di test_tonemap_sequence i=4.

Esempio test_tonemap_sequence i=5

Figura 85. Esempio di test_tonemap_sequence i=5.

test_yuv_jpeg_all

Verifica che tutte le dimensioni e i formati segnalati per l'acquisizione di immagini funzionino. Utilizza una richiesta manuale con una mappatura dei toni 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 delle immagini hanno una differenza massima del valore quadratico medio (RMS) (valore di un segnale) nelle immagini convertite in RGB con il 3% dell'immagine YUV con la risoluzione più alta.

Esempio test_yuv_jpeg_all

Figura 86. Esempio di test_yuv_jpeg_all.

test_yuv_plus_dng

Verifica che le dimensioni e i formati segnalati per l'acquisizione di immagini funzionino.

API testate:

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

Esempio test_yuv_plus_dng

Figura 87. Esempio di test_yuv_plus_dng.

scene1_3

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

test_capture_result

Verifica che vengano restituiti 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 applicate 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 RAW DNG siano corretti. Il grafico mostra la varianza misurata di un'area centrale della scheda grigia in scatti non elaborati acquisiti in un intervallo di sensibilità e confronta questi valori con la varianza prevista per ogni sensibilità dal modello di rumore DNG nell'HAL della fotocamera (in base ai parametri O,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 non elaborato DNG sono corretti. I valori RGB previsti corrispondono ai valori RGB 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 corrisponda.

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 un insieme di immagini RAW con guadagni crescenti e misura il rumore. Acquisisce solo immagini RAW, in sequenza.

API testate:

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

Utilizza la varianza della cella della griglia delle statistiche centrale.

test_raw_burst_sensitivity_variance

Figura 92. test_raw_burst_sensitivity_variance.

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:

Pass: la varianza aumenta con ogni scatto.

test_raw_sensitivity_variance

Figura 93. test_raw_sensitivity_variance.

test_yuv_plus_jpeg

Testa l'acquisizione di un singolo frame come output YUV e JPEG. Utilizza una richiesta manuale con una mappatura dei toni 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

Testa l'acquisizione di un singolo frame come output non elaborato (raw a 10 bit e 12 bit) e YUV, se supportati. Utilizza una richiesta manuale con mappatura dei toni lineare, quindi i formati RAW e YUV dovrebbero essere uguali. Confronta i valori RGB del 10% centrale delle immagini convertite in RGB. Logandroid.shading.mode.

API testate:

Superato:le immagini YUV e RAW 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 un ISO più elevato e livelli di rumore maggiori.

API testate:

Superato:un valore ISO più elevato comporta livelli di rumore maggiori.

Criteri di esclusione dei test

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

test_exposure_time_priority

Testa CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY su vari tempi di esposizione, verificando la stabilità della luminosità nell'intervallo in cui l'ISO può compensare.

API testate:

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

Criteri di esclusione dei test

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

scene2_a

scene2_a ha tre volti con uno sfondo grigio e abiti neutri. I volti vengono scelti in modo da avere un'ampia gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto affinché il riconoscimento facciale funzioni in modo ottimale.

Esempio di scene2_a

Figura 98. Esempio di scene2_a.

test_autoframing

Testa il comportamento di inquadratura automatica della videocamera. Esegue uno zoom ampio in modo che nessuno dei volti 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:vengono rilevati tutti e tre i volti.

test_display_p3

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

API testate:

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

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

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

test_effects_MONO

Figura 99. test_effects_MONO.

test_exposure_keys_consistent

Questo test confronta la luma 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 in CaptureResult dell'acquisizione con AE attivata.

API testate:

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

test_format_combos

Testa diverse combinazioni di formati di output.

API testate:

Superato: tutte le combinazioni vengono acquisite correttamente.

test_num_faces

Testa il riconoscimento facciale.

API testate:

Superato:trova tre volti.

test_num_faces face detection mode 1 example

Figura 100. Esempio di modalità di riconoscimento facciale test_num_faces 1.

test_reprocess_uv_swap

Verifica che l'elaborazione YUV non scambi i piani U e V. Questo viene rilevato calcolando la somma delle differenze assolute (SAD) tra l'immagine rielaborata e un'acquisizione non rielaborata. Se lo scambio dei piani U e V di output dei risultati di acquisizione rielaborati comporta un aumento del SAD, si presume che l'output abbia i piani U e V corretti.

API testate:

Superato:i piani U e V non vengono scambiati.

test_reprocess_uv_swap

Figura 101. Esempio di test_reprocess_uv_swap.

scene2_b

scene2_b ha tre volti con uno sfondo grigio e abiti neutri. I volti vengono scelti in modo da avere un'ampia gamma di tonalità della pelle. Il grafico deve avere l'orientamento corretto affinché il riconoscimento facciale funzioni in modo ottimale.

test_preview_num_faces

Verifica il riconoscimento facciale in anteprima con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

Superato: trova tre volti con punti di riferimento nei riquadri di delimitazione dei volti.

test_num_faces_fd_mode_1

Figura 102. Esempio di modalità di riconoscimento facciale 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, senza superare una risoluzione di 1920 x 1440. Imposta jpeg.quality su 100 e acquisisce una richiesta di doppia superficie. Converte entrambe le immagini in array RGB e calcola la differenza della radice quadrata media (RMS) 3D tra le due immagini.

Inoltre, questo test verifica che gli output YUV per tutti i casi d'uso degli stream supportati siano ragionevolmente simili a quelli YUV con il caso d'uso STILL_CAPTURE.

API testate:

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

scene2_c

test_num_faces

Testa il riconoscimento facciale con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

Superato:trova tre volti.

test_num_faces_fd_mode_1

Figura 103. Esempio di modalità di riconoscimento facciale test_num_faces.

test_jpeg_capture_perf_class

Testa la latenza di acquisizione JPEG per la classe di prestazioni S, come specificato nella sezione 2.2.7.2 Fotocamera del CDD.

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

test_camera_launch_perf_class

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

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

test_default_camera_hdr

Verifica 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 fotocamera predefinito DEVE essere Ultra HDR per un dispositivo di classe di prestazioni 15.

scene2_d

test_preview_num_faces

Verifica il riconoscimento facciale in anteprima con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

Superato: trova tre volti con punti di riferimento nei riquadri di delimitazione dei volti.

scene2_e

test_continuous_picture

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

API testate:

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

test_num_faces

Testa il riconoscimento facciale con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

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

Esempio scene2_f

Figura 104. Esempio di scene2_f.

test_preview_num_faces

Testa il riconoscimento facciale con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

Superato: trova tre volti con punti di riferimento nei riquadri di delimitazione dei volti.

test_num_faces_fd_mode_1

Figura 105. Esempio di test_num_faces_fd_mode_1.

scene2_g

scene2_g ha tre volti di profilo 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_g.png

Figura 106. Esempio di scene2_g.

test_preview_num_faces

Testa il riconoscimento facciale con una maggiore diversità di tonalità della pelle nelle scene con volti.

API testate:

Superato: trova tre volti con punti di riferimento nei riquadri di delimitazione dei volti.

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 ha 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. In Android 17 e versioni successive, scene3 utilizza i marker ArUco per il rilevamento dei grafici.

scene3_aruco_chart

Figura 108. Grafico scene3.

test_edge_enhancement

Verifica che il parametro android.edge.mode venga applicato correttamente. Acquisisce immagini non rielaborate per ogni modalità di bordo e restituisce la nitidezza dell'immagine di output e i metadati dei risultati dell'acquisizione. Elabora una richiesta di acquisizione con una determinata modalità di bordo, sensibilità, tempo di esposizione, distanza di messa a fuoco e parametro della superficie di output. In Android 17 e versioni successive, utilizza i marker ArUco per definire l'area del grafico che contiene i bordi nitidi necessari.

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

API testate:

Parametri della videocamera interessati:

  • EDGE_MODE

test_edge_enhancement_edge=0

Figura 109. Esempio di test_edge_enhancement edge=0.

test_edge_enhancement edge=1 example

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

Esempio test_edge_enhancement edge=2

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

test_flip_mirror

Verifica se l'immagine è orientata correttamente in base alla sezione 7.5.2 Fotocamera anteriore del CDD. In Android 17 e versioni successive, utilizza i marker ArUco per convalidare sia la presenza che l'orientamento del grafico. Le immagini speculari, capovolte o ruotate possono essere identificate dalla caratteristica a forma di rombo vicino al centro.

Superato: tutti i marker vengono rilevati e allineati correttamente. L'immagine non è capovolta, specchiata o ruotata.

Esempio di patch della scena test_flip_mirror

Figura 112. 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 deviazione del giroscopio è inferiore a 0,01 rad nel tempo di test.
  • La varianza della lettura del giroscopio è inferiore a 1E-7 rad2/s2/Hz per tutta la durata del test.
  • La deviazione del vettore di rotazione è inferiore a 0,01 rad durante il tempo di test.
  • (Non ancora obbligatorio) La deviazione del giroscopio è inferiore a 1 grado al secondo.

Esempio di deviazione del giroscopio test_imu_drift

Figura 113. Esempio di deviazione del giroscopio test_imu_drift.

Esempio di deviazione del vettore di rotazione test_imu_drift

Figura 114. Esempio di deviazione del vettore di rotazione test_imu_drift.

test_landscape_to_portrait

Verifica se l'override da orizzontale a verticale funziona correttamente per i sensori con orientamento orizzontale.

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 115. Esempio di test_landscape_to_portrait.

test_lens_movement_reporting

Verifica se il flag di movimento dell'obiettivo viene segnalato correttamente. Acquisisce una sequenza 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 muove, causando una riduzione della nitidezza. La nitidezza si stabilizza quando l'obiettivo si sposta nella posizione finale.

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

In Android 17 e versioni successive, questo test utilizza i marker ArUco per definire l'area del grafico che contiene i bordi nitidi necessari. Questo metodo fornisce un rilevamento stabile per le fotocamere, dalle applicazioni ultra-grandangolari (UW) a quelle con teleobiettivo.

API testate:

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

Meccanismi di errore:

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) in test_log.DEBUG viene dichiarato 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 bordi funzionano correttamente. Elabora una richiesta di acquisizione con una determinata modalità di rielaborazione dei bordi e confronta diverse modalità di acquisizione con le modalità di rielaborazione dei bordi 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 116. 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.

Esempio di scene4

Figura 117. Esempio di scene4.

test_30_60fps_preview_fov_match

Verifica che i video di anteprima a 30 FPS e 60 FPS abbiano 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 frame rappresentativo, che viene analizzato per verificare che le modifiche del 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 f/s ha dimensioni notevolmente diverse rispetto a quello del video a 60 f/s.
  • Il cerchio nell'immagine acquisita è distorta dalla pipeline di elaborazione.
  • Il cerchio nell'immagine acquisita viene ritagliato a causa di una richiesta di acquisizione con proporzioni estreme che riduce l'altezza o la larghezza dell'immagine.
  • Il cerchio nell'immagine acquisita ha un riflesso al centro e non appare completamente pieno.

test_aspect_ratio_and_crop

Verifica se le immagini sono distorte o ritagliate in modo imprevisto nella pipeline 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 sono allungate, il centro delle immagini non differisce di oltre il 3% e viene preservato il campo visivo massimo possibile.

Meccanismi di errore:

  • La fotocamera 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 bassa risoluzione viene ritagliata due volte nella pipeline di 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 riduce l'altezza o la larghezza dell'immagine.
  • Il cerchio nell'immagine acquisita ha un riflesso al centro e non appare completamente pieno.

test_multi_camera_alignment

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

API testate:

Superato:i centri e le dimensioni dei cerchi sono quelli previsti nelle immagini proiettate rispetto alle immagini acquisite utilizzando i dati di calibrazione della fotocamera e le lunghezze focali.

Meccanismi di errore:

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION 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 test di un sistema di fotocamere grandangolare e ultrawide con il banco di prova RFoV. Per ulteriori informazioni, consulta la domanda 1 delle domande frequenti su Camera ITS-in-a-box.

test_preview_aspect_ratio_and_crop

Analogamente al test test_aspect_ratio_and_crop per le acquisizioni di immagini fisse, controlla i formati di anteprima supportati per verificare 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 FoV).

API testate:

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

test_preview_stabilization_fov

Controlla le dimensioni di anteprima supportate per assicurarti che il campo visivo 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, che viene analizzato per verificare che le modifiche del campo visivo nei due video rientrino nelle specifiche.

API testate:

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

test_video_aspect_ratio_and_crop

Acquisisce 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 una risoluzione diversa (controllo FoV).

API testate:

Superato: i fotogrammi del video non sono allungati, il centro dei fotogrammi non differisce di oltre il 3% e viene conservato il campo visivo massimo possibile.

scene6

scene6 è una griglia di marker ArUco identificabili in modo univoco. 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 dell'allineamento del DUT e del grafico.

scene6

Figura 118. Esempio di scene6.

test_in_sensor_zoom

Testa il comportamento della funzionalità di zoom nel sensore della fotocamera, che produce immagini RAW ritagliate.

Con il caso d'uso dello stream impostato su CROPPED_RAW, il test esegue due acquisizioni nell'intervallo di zoom, un'immagine RAW con FoV completo e un'immagine RAW ritagliata. Il test converte le immagini in array RGB, riduce l'immagine RAW ritagliata a grandezza naturale alle dimensioni indicate 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 raw ritagliata e ridotta e l'immagine raw con FoV completo è inferiore alla soglia impostata nel test.

test_zoom

Testa il comportamento dello zoom della fotocamera dall'obiettivo ultrawide all'obiettivo grandangolare. Acquisisce immagini nell'intervallo di zoom e controlla se i marker ArUco diventano più grandi quando la fotocamera aumenta lo zoom. Il test verifica anche se la posizione dell'indicatore centrale cambia in modo prevedibile in ogni acquisizione. La distanza dal centro dell'indicatore centrale al centro dell'immagine può cambiare a una velocità costante rispetto al rapporto di zoom fino a un cambio di fotocamera fisica oppure può cambiare in modo monotono verso la posizione dello stesso indicatore dopo un cambio di fotocamera fisica. L'app Jetpack Camera (JCA) deve essere installata sul dispositivo prima del test.

API testate:

Superato:le dimensioni relative del marker ArUco acquisito sono accurate rispetto alle proporzioni di zoom richieste per verificare che lo zoom della fotocamera funzioni correttamente e la distanza del marker dal centro dell'immagine cambia in base ai criteri indicati nella descrizione del test.

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

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

test_low_latency_zoom

Testa il comportamento dello zoom a bassa latenza della fotocamera. Acquisisce immagini nell'intervallo di zoom con android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) e verifica se gli indicatori nelle immagini di output corrispondono ai rapporti di zoom nei metadati di acquisizione. La stessa sessione di acquisizione della fotocamera viene utilizzata per la convergenza 3A e per l'acquisizione.

API testate:

Superato:le dimensioni relative dell'indicatore acquisito sono accurate rispetto ai metadati dei risultati del rapporto di zoom.

test_preview_video_zoom_match

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

API testate:

Superato:le dimensioni relative del marker 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

Verifica che il rapporto di zoom di ogni frame di anteprima corrisponda ai metadati di acquisizione corrispondenti dall'obiettivo ultrawide all'obiettivo wide. Il test acquisisce i frame di anteprima nell'intervallo di zoom e trova l'indicatore ArUco più vicino al centro. Il test verifica quindi se la posizione dell'indicatore centrale cambia in modo prevedibile in ogni acquisizione. La distanza dal centro dell'indicatore centrale al centro dell'immagine può cambiare a una velocità costante rispetto al rapporto di zoom fino a un cambio di fotocamera fisica oppure può cambiare in modo monotono verso la posizione dello stesso indicatore dopo un cambio di fotocamera fisica.

API testate:

Superato:le dimensioni relative del marker ArUco selezionato sono accurate per il rapporto di zoom riportato del risultato di acquisizione corrispondente per tutti i frame di anteprima. La distanza relativa dell'indicatore selezionato dal centro dell'immagine è accurata per il rapporto di zoom riportato del risultato di acquisizione corrispondente di tutti i frame di anteprima.

Immagini test_preview_zoom che mostrano l'indicatore selezionato più vicino al centro

test_session_characteristics_zoom

Testa l'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 l'intervallo del rapporto di zoom restituito in CameraDeviceSetup#getSessionCharacteristics possa essere raggiunto.

API testate:

Superato: è possibile raggiungere i rapporti di zoom minimo e 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 è presente un grafico con bordi inclinati per i controlli della nitidezza. Quattro indicatori ArUco sono allineati ai quattro angoli esterni del rettangolo per facilitare l'ottenimento di coordinate precise della cornice del rettangolo principale con diversi rapporti di zoom.

scene7

Figura 125. scene7.

test_multi_camera_switch

Questo test verifica che durante la registrazione dell'anteprima con rapporti di zoom variabili, il passaggio tra gli obiettivi ultrawide (UW) e wide (W) generi 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 della luminanza rientri nell'intervallo previsto per le immagini degli obiettivi UW e W. Il controllo AWB verifica che i rapporti rosso-verde e blu-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 grandezza media del gradiente tra le immagini degli obiettivi UW e W.

Se durante l'esecuzione di questo test l'effetto moiré interferisce con i risultati, utilizza un tablet con una risoluzione più elevata dall'elenco dei tablet approvati per Camera ITS.

API testate:

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

  • Controllo AE: la variazione della luminanza (valore Y) tra le immagini degli obiettivi 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 degli obiettivi 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 sia awb_regions.
  • Controllo AF: la nitidezza dell'immagine per l'acquisizione con l'obiettivo W deve essere superiore alla nitidezza con l'acquisizione con l'obiettivo UW.

test_multi_camera_switch_gray_uw_y

Figura 126. Macchia grigia scattata con obiettivo ultrawide.

test_multi_camera_switch_gray_w_y

Figura 127. Riquadro grigio acquisito con l'obiettivo W.

scene8

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

scene8 example

Figura 128. Esempio di scene8.

test_ae_awb_regions

Verifica che i valori RGB e luma siano diversi quando si registra l'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 luma aumentato di oltre l'1% rispetto al frame che misura la regione con esposizione aumentata. In questo modo, si verifica che le immagini vengano illuminate quando si misura 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 quando si misura una regione gialla (calda) o blu (fredda).

API testate:

Superato:i controlli AE e AWB vengono superati.

test_ae_awb_regions_dark_region

Figura 129. Misurazione dell'inquadratura della regione scura con esposizione aumentata.

test_ae_awb_regions_light_region

Figura 130. Regione più chiara della misurazione dell'inquadratura 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 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:

    Disallineamento dei marcatori ArUco

    Figura 131. Disallineamento dei marker ArUco.

test_color_correction_mode_cct

Esegue test COLOR_CORRECTION_MODE con diverse temperature di colore e tinte, 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 in relazione alle temperature di colore e alle tonalità selezionate.

Criteri di esclusione dei test

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

scene9

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

scene9 example

Figura 132. Esempio di scene9.

test_jpeg_high_entropy

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

API testate:

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

test_jpeg_quality

Testa la qualità della compressione JPEG della fotocamera. Passa attraverso le qualità JPEG android.jpeg.quality e verifica che le tabelle di quantizzazione cambino correttamente.

API testate:

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

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

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

Esempio di test non superato test_jpeg_quality

Figura 134. Esempio di test non riuscito.

scene_extensions

I test scene_extensions sono per le estensioni della fotocamera e devono utilizzare Camera ITS-in-a-Box, poiché 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 DUT e il tablet con un telo, nonché eliminare le infiltrazioni 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

Figura 135. Esempio di scene_hdr.

test_hdr_extension

Testa l'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 variazioni di 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 di una curva di Hilbert.

Esempio di scene_low_light

Figura 136. Esempio di scene_low_light.

test_night_extension

Testa l'estensione Notte. Esegue acquisizioni con l'estensione abilitata e svolge le seguenti operazioni:

  • Rileva la presenza di 20 quadrati
  • Calcola la luma 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 nel 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.

Per i dispositivi con Android 16 o versioni successive, la richiesta di acquisizione include una regione di misurazione 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 luma medio dei primi 6 quadrati deve essere almeno 80 e la differenza media nel valore di luma 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 luma dei primi 6 quadrati deve essere almeno 85 e la differenza media nel valore di luma 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 positivo.

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

Figura 137. Esempio di test superato per una scena notturna con scarsa illuminazione.

test_low_light_boost_extension

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

  • Rileva la presenza di 20 scatole
  • Calcola la luma delimitata da ogni riquadro
  • Calcola il valore di luma medio dei primi 6 quadrati in base all'orientamento della griglia della curva di Hilbert
  • Calcola la differenza nel 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.

Per i dispositivi con Android 16 o versioni successive, la richiesta di acquisizione include una regione di misurazione 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 luma medio dei primi 6 quadrati deve essere almeno 54 e la differenza media nel valore di luma dei quadrati consecutivi fino ai quadrati 5 e 6 deve essere almeno 17.

  • Per i dispositivi con Android 15 e versioni precedenti, il valore di luma medio dei primi 6 quadrati deve essere almeno 70 e la differenza media del valore di luma 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 pari alla distanza minima di messa a fuoco del teleobiettivo. Poiché questa distanza minima di messa a fuoco può variare da un dispositivo all'altro, devi configurare la tua configurazione in base alla fotocamera con teleobiettivo specifica.

Configurazione scene_tele basata sulla distanza di messa a fuoco della fotocamera con grandangolo e teleobiettivo

Figura 138. Configurazione di scene_tele basata sulla distanza di messa a fuoco della fotocamera con grandangolo e teleobiettivo.

Per saperne di più 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 indicatori ArUco su uno sfondo bianco.

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

Scollega la piattaforma di test WFoV dalla prolunga e rimuovi il supporto per lo smartphone.

Scollega la piattaforma di test WFoV dalla prolunga e rimuovi il supporto per lo smartphone

Figura 139. Scollega la piattaforma di test WFoV dalla prolunga e rimuovi il supporto per lo smartphone.

remove_front_plate

Figura 140. Rimuovi la piastra anteriore.

test_zoom_tele

Testa il comportamento dello zoom della fotocamera dall'obiettivo grandangolare al teleobiettivo. Il test è identico a test_zoom, ma testa 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 fotocamera 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

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

API testate:

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

scene7_tele

scene7_tele è identico a scene7, ma è configurato per i test del teleobiettivo. Si tratta di una cornice rettangolare divisa 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 facilitare l'ottenimento di coordinate precise della cornice del rettangolo principale con diversi rapporti di zoom.

test_multi_camera_switch_tele

Questo test verifica che durante la registrazione dell'anteprima con diversi rapporti di zoom, il passaggio tra gli obiettivi grandangolare (W) e teleobiettivo (tele) generi 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 luma rientri nell'intervallo previsto per le immagini degli obiettivi W e teleobiettivo. Il controllo AWB verifica che i rapporti rosso-verde e blu-verde rientrino nei valori di soglia per le immagini degli obiettivi W e teleobiettivo. Il controllo AF valuta il valore di stima della nitidezza in base alla grandezza del gradiente medio tra le immagini degli obiettivi W e teleobiettivo.

API testate:

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

  • Controllo AE: la variazione di luma tra le immagini dell'obiettivo W e del teleobiettivo deve essere inferiore al 4%.
  • Controllo AWB: nello spazio dei colori 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 W.

scene_video

scene_video è una scena video composta da quattro cerchi di colori diversi che si muovono avanti e indietro con frequenze fotogrammi diverse su uno sfondo bianco.

Figura 141. Esempio di scene_video.

test_preview_frame_drop

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

API testate:

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

Scene di test basate su rig Gen2 / sensor_fusion

feature_combination

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

test_feature_combination

Testa tutte le combinazioni di flussi, modalità di stabilizzazione video, intervallo di FPS target, video HDR a 10 bit e Ultra HDR supportate dal dispositivo della fotocamera.

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 caratteristiche per le quali isSessionConfigurationSupported restituisce True.

API testate:

Pass: per ogni combinazione di funzionalità supportata:

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

scene_flash

I test scene_flash richiedono una scena scura nella scatola di fusione dei sensori. In Android 17 e versioni successive, i test scene_flash possono essere eseguiti utilizzando il rig Gen2.

test_auto_flash

Verifica che il flash automatico venga attivato in una scena buia per le fotocamere posteriori e anteriori. 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 della sezione sia più luminoso con il flash automatico attivato. Per attivare il flash automatico, le luci della piattaforma di test 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 fotocamere posteriori si basa sullo stato AE per l'attivazione, mentre il flash automatico per le fotocamere anteriori non si basa su AE e viene sempre attivato.

In Android 17 e versioni successive, testa i livelli di zoom diversi da 1x per verificare il corretto funzionamento in tutti gli intervalli di zoom supportati.

API testate:

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

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'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 nella piattaforma di test 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 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, poiché il livello di intensità del flash aumenta da nessun flash a FLASH_SINGLE_STRENGTH_MAX_LEVEL.

test_led_snapshot

Verifica che le istantanee LED non saturino o colorino l'immagine.

Questo test aggiunge un controller di illuminazione alla Sensor Fusion Box 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 pre-acquisizione con il trigger aePrecapture impostato su START e imposta l'intent di acquisizione su Preview per eseguire l'acquisizione 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 ha un bilanciamento del bianco 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 con flash rientra nell'intervallo (68, 102).

test_night_mode_indicator

Verifica la funzionalità dell'indicatore della modalità notturna, una funzionalità che indica se la fotocamera sta funzionando in condizioni di scarsa illuminazione e se trarrà vantaggio dall'acquisizione di immagini fisse dell'estensione della modalità notturna della fotocamera. Questa funzionalità è disponibile solo sui dispositivi che supportano le estensioni della fotocamera per la modalità notturna.

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

  1. Inizializzazione: il test inizializza un ItsSession e recupera le proprietà della videocamera. Inoltre, stabilisce una connessione con il controller dell'illuminazione.
  2. Condizioni di salto:il test viene saltato se il dispositivo non supporta il livello API richiesto o la funzionalità dell'indicatore della modalità notturna.
  3. Sessione Camera2:
    • Il test avvia una sessione di acquisizione dell'anteprima utilizzando una sessione Camera2.
    • La luce si accende 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 fotogramma 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 utilizza una sessione CameraExtension con l'estensione EXTENSION_NIGHT.
  5. Pulizia: il test chiude ItsSession e rilascia il controller dell'illuminazione.

API testate:

Pass:

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

test_preview_min_frame_rate

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

API testate:

Superato:la frequenza fotogrammi di 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

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'utilizzo della fotocamera in modalità TORCH, l'intensità della torcia 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à. 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 della sequenza di immagini 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 della sequenza di immagini rientra nella tolleranza man mano che il livello di intensità del flash aumenta da nessun flash a FLASH_TORCH_STRENGTH_MAX_LEVEL.

scene_gen2_chart

In Android 17 e versioni successive, scene_gen2_chart utilizza il grafico cartaceo Gen2.

Questo grafico di test è composto da campioni di volti, un codice QR, patch in scala di grigi, una stella di Siemens, un grafico dei colori e quadrati inclinati.

test_chart_gen2

Figura 142. Esempio di grafico Gen2.

test_tonemap_sequence

Questo test valuta la curva di mappatura tonale predefinita di un dispositivo rispetto a una curva lineare e a due curve esponenziali (una con punti uniformi e l'altra con punti non uniformi). Per un risultato positivo, la luminosità della curva predefinita deve superare quella delle curve lineare ed esponenziale. Inoltre, la curva lineare deve essere più luminosa delle curve esponenziali e le due curve esponenziali devono avere livelli di luminosità simili.

Il test verifica anche l'accuratezza della curva predefinita del dispositivo. Per farlo, estrae la curva predefinita, la inserisce di nuovo e poi confronta la luminosità dell'immagine risultante con quella dell'immagine della curva predefinita originale.

Grafico della sequenza di mappatura dei toni di test

Figura 143. Traccia della sequenza di mappatura dei toni di test.

API testate:

Superato: la differenza di luminosità tra le curve predefinita e lineare è superiore al 15%, mentre la differenza tra le due curve esponenziali è inferiore all'8%.

test_multi_camera_switch

Questo test verifica la coerenza di colore ed esposizione durante le transizioni di zoom dinamico. Verifica che il passaggio tra gli obiettivi ultrawide (UW) e grandangolare (W) durante la registrazione dell'anteprima mantenga valori CIELAB quasi identici, evitando variazioni visibili nell'esperienza utente.

L'esecuzione del test esegue una registrazione di anteprima dinamica in un intervallo di zoom predefinito per attivare il punto di "crossover" della fotocamera fisica, in cui l'obiettivo ultrawide passa all'obiettivo grandangolare. Il test identifica il frame esatto in cui avviene il cambio di obiettivo. I frame immediatamente precedenti e successivi a questo punto di crossover vengono acquisiti e analizzati per verificare la stabilità dell'esposizione automatica (AE) e del bilanciamento del bianco automatico (AWB).

Il controllo AE conferma che le fluttuazioni di Luma rimangono entro un intervallo accettabile durante il passaggio dell'obiettivo. Il controllo AWB verifica che i rapporti rosso-verde e blu-verde rientrino nelle soglie definite di neutralità del colore.

API testate:

Superato:per superare il test, è necessario superare i seguenti controlli AE e AWB:

  • Controllo AE: la variazione della luminanza (valore Y) tra le immagini degli obiettivi 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 degli obiettivi 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 sia awb_regions.

uw_dynamic_range_patch_cell_8

Figura 144. Macchia grigia scattata con obiettivo ultrawide.

w_dynamic_range_patch_cell_7

Figura 145. Riquadro grigio acquisito con l'obiettivo W.

scene_ip

In Android 16 e versioni successive, la scena scene_ip consente di eseguire controlli di parità delle immagini tra l'app Fotocamera predefinita e l'app Jetpack Camera (JCA) per identificare le differenze principali 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 per la configurazione dell'hardware

Per i test scene_ip è necessaria la seguente configurazione hardware:

  • I test vengono eseguiti nella scatola ITS per fotocamera di 2ª generazione.
  • I controller di illuminazione e dei servomotori 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 146. Esempio di Gen2chart_sample.

Criteri di esclusione dei test

I test scene_ip vengono saltati 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 delle funzionalità di test in condizioni di illuminazione controllate utilizzando l'app Fotocamera predefinita e l'API Camera2 di Jetpack 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 acquisita.

  • 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à.

  • Rendering dei colori:verifica che la differenza di rendering dei colori tra l'app della fotocamera predefinita e JCA non superi 6.

Superato:il test supera i controlli di FoV, luminosità e bilanciamento del bianco. In Android 16, questo test non è obbligatorio (NOT_YET_MANDATED). Per Android 17 e versioni successive, i controlli di parità di FoV, luminosità e bilanciamento del bianco sono obbligatori. Il controllo del rendering dei colori non è obbligatorio (NOT_YET_MANDATED) in Android 17.

test_jca_jpegr_ip

Verifica che la differenza di bilanciamento del bianco tra l'istantanea di anteprima JCA JPEG_R e le immagini acquisite non superi 4.

API testate:

Superato:la differenza di bilanciamento del bianco tra l'istantanea di anteprima JCA e l'immagine JPEG_R acquisita rientra nella soglia (il valore predefinito è 4).

sensor_fusion

I test di fusione dei sensori richiedono un movimento specifico dello smartphone davanti a un pattern a scacchiera e a indicatori ArUco. Per risultati ottimali, verifica che il grafico di test sia montato 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 43,18 x 43,18 cm. (43x43 cm). I test sensor_fusion possono essere automatizzati con la Sensor Fusion Box.

Grafico di fusione dei sensori

Figura 147. Grafico di fusione dei sensori.

Grafico di fusione dei sensori in Rig

Figura 148. Grafico di fusione dei sensori che riempie il retro della scatola di fusione dei sensori.

test_lens_intrinsic_calibration

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

API testate:

Superato:il centro ottico dell'obiettivo intrinseco cambia di 1 pixel o più. Se sono supportati i campioni intrinseci dell'obiettivo, i centri ottici dei campioni intrinseci dell'obiettivo cambiano di almeno 1 pixel.

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

test_lens_intrinsic_calibration_example.png

Figura 149. 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 fotocamera logica siano 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 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 parametri intrinseci ed estrinseci della fotocamera.

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 in pixel RMS tra i punti effettivi e quelli ideali. Le aree verdi e rosse sull'immagine vengono utilizzate per rilevare visivamente l'area dell'errore di distorsione.

test_preview_distortion_example.jpg

Figura 150. 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

Verifica che il video di anteprima stabilizzato ruoti 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 151. Video di esempio con stabilizzazione.

Figura 152. Video di esempio senza stabilizzazione.

test_sensor_fusion

Verifica la differenza di 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 scacchiera. Il movimento dura circa 2 secondi per l'andata e il ritorno. Questo test viene ignorato se non è incluso un giroscopio o se il parametro REALTIME dell'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 nella direzione x e y indica che lo smartphone non è montato saldamente 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.

    Esempio di eventi del giroscopio test_sensor_fusion

    Figura 153. 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 fotocamera e il giroscopio con un margine di +/-1 ms.

    Esempio di rotazioni del grafico test_sensor_fusion

    Figura 154. Esempio di rotazioni del grafico test_sensor_fusion.

API testate:

Superato:l'offset dei timestamp della fotocamera 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 della fotocamera-giroscopio non è calibrato correttamente entro +/-1 ms.
  • Frame persi: la pipeline non è abbastanza veloce da 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 fotogrammi in cui la rotazione del giroscopio e della fotocamera varia notevolmente man mano che la fotocamera ruota nelle 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 errore è più comune nelle fotocamere anteriori, poiché la fotocamera posteriore spesso presenta una sporgenza 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

Deprecato: questo test è stato deprecato da Android 17. Per Android 17 e versioni successive, questo test viene sostituito da test_video_stabilization_jca.

Verifica che il video stabilizzato ruoti meno del giroscopio.

API testate:

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

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

Figura 155. Video di esempio con stabilizzazione.

Figura 156. Video di esempio senza stabilizzazione.

test_video_stabilization_jca

Verifica che il video stabilizzato acquisito utilizzando l'API JCA ruoti meno del giroscopio. Il JCA deve essere installato sul dispositivo prima del test.

API testate:

Superato:la rotazione massima dell'angolo sui frame estratti dal video acquisito utilizzando l'API JCA è inferiore al 70% delle rotazioni del giroscopio 4).

Scena di test basata su diffusore

scene5

scene5 richiede una scena grigia illuminata in modo uniforme. Questo risultato si ottiene grazie a un diffusore posizionato sopra l'obiettivo della fotocamera. Ti consigliamo il seguente diffusore: http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.

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

Esempio di scena 5

Figura 157. Esempio di acquisizione di scene5.

Poiché per questa scena non sono necessari tablet o controller, i test utilizzano il testbed TEST_BED_MANUAL. Per un esempio, consulta File config.yml per i test manuali. Il file config.yml predefinito non include TEST_BED_MANUAL, ma puoi modificarlo per includerne uno.

test_lens_shading_and_color_uniformity

Verifica che la correzione dell'ombreggiatura dell'obiettivo sia applicata correttamente 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 y medio per ogni blocco di campioni specificato e determina l'esito positivo o negativo confrontandolo con il valore 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.

Meccanismi di errore:

  • Vignettatura eccessiva nelle immagini
  • Artefatti con bordi neri nelle immagini

test_lens_shading_and_color_uniformity_y_plane

Figura 158. test_lens_shading_and_color_uniformity_y_plane.

test_lens_shading_and_color_uniformity_color_uniformity_result

Figura 159. test_lens_shading_and_color_uniformity_color_uniformity.

test_lens_shading_and_color_uniformity_lens_shading_result

Figura 160. test_lens_shading_and_color_uniformity_lens_shading_result.

Scena di test basata su tablet con ampia gamma cromatica

scene_wide_gamut

scene_wide_gamut è una cornice rettangolare divisa in quattro quadranti uguali, ciascuno di un colore diverso. Ciò richiede che il tablet visualizzi il grafico in un'ampia gamma e che il DUT acquisisca una fotografia dello schermo con un'ampia gamma.

Questi test verificano che l'immagine acquisita rispetti il profilo colore e la gamma di colori corretti.

test_display_p3

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

API testate:

Superato:il JPEG contiene un profilo ICC Display P3 e più dell'1% di colori al di fuori della gamma sRGB.

Esempio test_display_p3

Figura 161. Esempio di test_display_p3.