Note di rilascio della suite di test per le immagini della fotocamera Android 13

La release Android 13 include una serie di modifiche a Fotocamera ITS. Oltre alle modifiche incrementali, come le versioni aggiornate di Python e dei pacchetti e gli aggiornamenti hardware per i test, Android 13 supporta i test video.

Questa pagina riassume le modifiche all'ITS della fotocamera per Android 13. Le modifiche rientrano in sette ampie categorie:

Versioni di Python e dei pacchetti

Android 13 supporta le seguenti versioni Python oltre alle versioni e alle librerie Python supportate in Android 12:

Aggiunte al file di configurazione

A causa dell'aggiunta del controllo dell'illuminazione per il test test_auto_flash.py, il file config.yml richiede due parametri aggiuntivi per il controller e per il canale di illuminazione. Per identificare se il dispositivo in test (DUT) è pieghevole o meno, il file config.yml richiede un terzo parametro aggiuntivo che deve essere aggiunto sia alle sezioni basate su tablet che a quelle di fusione dei sensori.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      foldable_device: "False". # set "True" if testing foldable
      scene: <scene-name>  # if <scene-name> runs all scenes

Testa modifiche

scene1_1/test_black_white.py

Il test test_black_white prevede un controllo della saturazione del canale coerente con le versioni precedenti di Android, il che significa che il primo livello API richiesto per il controllo della saturazione del canale è Android 10.

scene1_2/test_yuv_plus_raw.py

Il test test_yuv_plus_raw gestisce i sensori diversi da 16:9 o 4:3 per offrire un supporto migliore per i file RAW. Se il test non riesce a trovare un formato comune tra il formato RAW del sensore e i formati di acquisizione YUV, viene confrontata l'acquisizione RAW con l'acquisizione YUV più grande anche se i rapporti di aspetto sono diversi.

scene2_a/test_faces.py

test_faces viene sottoposto a refactoring in test_num_faces.

scene2_a/test_num_faces.py

Il test test_num_faces gestisce il ritaglio del sensore e posiziona correttamente i rettangoli dei volti nelle acquisizioni con fotocamera UW ritagliate.

scene3/test_lens_position.py

Il test test_lens_position è deprecato in Android 13.

scene6/test_zoom.py

Il test test_zoom è stato sottoposto a refactoring per semplificare i test dei sistemi con tre e quattro camere. Se la videocamera supera correttamente un intervallo di rapporto 10x nello zoom, il test esce correttamente. In questo modo è possibile eseguire i test di zoom a una singola distanza del grafico.

scene_change/test_scene_change.py

Il test test_scene_change è deprecato in Android 13.

Nuovi test basati su tablet

Android 13 include due nuovi test basati su tablet. Entrambi i test sono obbligatori per i dispositivi che vengono lanciati con Android 13, ma vengono ignorati per i dispositivi che eseguono l'upgrade ad Android 13.

Scena Nome del test Primo livello API Descrizione
2_a test_automatico_flash 33 Conferma l'attivazione del flash automatico nelle scene buie.
2_b test_yuv_jpg_capture_sameness 33 Conferma che le acquisizioni YUV e JPEG sono ancora identiche a livello di bit.

scene2_a/test_auto_flash.py

Android 13 aggiunge il test test_auto_flash.

Parametri

  • flash: salta il test se Flash non è disponibile.

Metodo

Il test configura la richiesta di acquisizione per il flash automatico e presenta una scena che richiede un evento flash. L'illuminazione dell'attrezzatura di prova e del tablet è disattivata per presentare una scena buia per l'algoritmo di esposizione automatica. Il test configura una sequenza di NUM_FRAMES acquisizioni con il flash automatico abilitato. Se l'impostazione AE_STATE restituisce FLASH_REQUIRED, il test verifica che venga attivato un flash nelle acquisizioni.

L'illuminazione può essere controllata manualmente quando richiesto o automaticamente con un controller Arduino con controllo dell'illuminazione aggiunto per i test automatici. Una nuova cartella di utilità lighting_control_utils centralizza il codice per controllare l'illuminazione nei test.

scena2_a/test_yuv_jpeg_capture_sameness.py

Android 13 aggiunge il test_yuv_jpeg_capture_sameness test.

Parametri

  • streamUseCase: determina se la videocamera supporta il caso d'uso di streaming.
  • android.jpeg.quality: imposta la qualità JPEG su 100.

Metodo

Questo test acquisisce due immagini utilizzando i formati YUV e JPEG più comuni con le stesse proporzioni del formato JPEG più grande e una risoluzione non superiore a 1920 x 1440. Il test imposta jpeg.quality su 100 e acquisisce una richiesta di doppia superficie. Inoltre, converte entrambe le immagini in array RGB e calcola la differenza quadrata media della radice 3D (RMS) tra le due immagini. La tolleranza della differenza è impostata su 1%.

Test video

Camera ITS aggiunge il supporto per i test video in Android 13.

Android 13 aggiunge i seguenti test:

Scena Nome del test Primo livello API Descrizione
4 stabilizzazione_anteprima_test 33 Verifica che l'anteprima del video non venga ritagliata troppo con la stabilizzazione abilitata.
4 test_video_aspect_ratio_and_crop 33 Conferma i formati video, il FOV, le proporzioni e il ritaglio.
sensor_fusion test_preview_stabilition 33 Verifica che la stabilizzazione dell'anteprima funzioni.
sensor_fusion test_video_stabilition 33 Conferma che la stabilizzazione video funziona.

scene4/test_preview_stabilization_fov.py

Android 13 aggiunge il test_preview_stabilization_fov test. Questo test controlla le dimensioni di anteprima supportate per assicurarsi che il FOV non sia tagliato in modo inappropriato.

Metodo

Il test acquisisce due video, uno con la stabilizzazione dell'anteprima attivata e uno con la stabilizzazione dell'anteprima disattivata. Da ogni video viene selezionato un fotogramma rappresentativo, che viene analizzato per verificare che le variazioni dell'angolo di campo nei due video rientrino nelle specifiche.

Nello specifico, il test controlla i seguenti parametri con e senza stabilizzazione dell'anteprima:

  • La rotondità del cerchio rimane costante.
  • Il centro del cerchio rimane stabile.
  • La dimensione del cerchio non cambia di più del 20%, il che significa che il FoV cambia al massimo del 20%.

scena4/test_video_aspect_ratio_and_crop.py

Android 13 aggiunge il test test_video_aspect_ratio_and_crop. Analogamente al test test_aspect_ratio_and_crop per le acquisizioni statiche, questo test controlla i formati video supportati per garantire che i fotogrammi video non vengano allungati o ritagliati in modo inappropriato. Tutte le qualità video autodichiarate vengono testate. Inoltre, se la videocamera supporta i video HLG10, viene testato il video a 10 bit.

Android 13 aggiunge il metodo get_available_video_qualities a its_session_utils. Per condividere codice comune con i test esistenti, Android 13 include anche due nuove funzioni di utilità, image_fov_utils e video_processing_utils.

Metodo

Il test acquisisce un'immagine di riferimento con il formato RAW o JPEG con la risoluzione più alta se il formato RAW non è supportato. Dall'immagine di riferimento vengono determinate le dimensioni e la posizione del cerchio. I video brevi vengono poi acquisiti con tutte le qualità video supportate. Il frame di riferimento finale viene estratto da ogni qualità video. Dal frame di riferimento, vengono calcolati il campo visivo (FoV), il centratura (ritaglio) e le proporzioni per ogni qualità video.

Per il calcolo del FOV, il test confronta le dimensioni del cerchio del frame video con quelle calcolate dall'immagine di riferimento e dalle dimensioni del formato video. Per il controllo del ritaglio, il test confronta il centratura dell'inquadratura video con il centratura dell'immagine di riferimento. Per il controllo delle proporzioni, utilizzando la scena, ovvero un grande cerchio nero su sfondo bianco, il test determina le proporzioni del cerchio e verifica che l'inquadratura non sia distorta.

sensor_fusion/test_preview_stabilization.py

Android 13 aggiunge il test test_preview_stabilization, che verifica tutte le qualità di anteprima supportate fino a 1920 x 1080. Il test utilizza la piattaforma di test di fusione dei sensori e richiede il nuovo controller di fusione dei sensori di revisione 2 o un upgrade del firmware delle versioni precedenti del controller Arduino. Per maggiori dettagli sul nuovo controller, consulta Aggiornamenti e aggiunte hardware.

Metodo

Lo smartphone viene spostato lentamente su un angolo di circa 15 gradi con la stabilizzazione dell'anteprima attivata. La rotazione delle immagini viene poi confrontata con la rotazione del giroscopio.

sensor_fusion/test_video_stabilization.py

Android 13 aggiunge il test test_video_stabilization, che verifica le qualità video supportate fino a 1920 x 1080. La qualità video a bassa risoluzione QCIF è esclusa. Il test utilizza la piattaforma di test della fusione di sensori e richiede il nuovo controller di fusione di sensori di revisione 2 o un upgrade del firmware delle versioni precedenti del controller Arduino. Per maggiori dettagli sul nuovo controller, consulta Aggiornamenti e aggiunte hardware.

Metodo

La piattaforma di test muove lentamente lo smartphone su un angolo di circa 15 gradi con la stabilizzazione dell'anteprima abilitata. La rotazione delle immagini viene poi confrontata con la rotazione del giroscopio.

Aggiornamenti e aggiunte di hardware

Android 13 include un upgrade al controller di fusione dei sensori di revisione 2 basato su Arduino. Questo upgrade include modifiche sia hardware che firmware. L'upgrade consente al controller di impostare la velocità di rotazione e il controllo dell'illuminazione. L'upgrade include anche un nuovo scudo (mostrato nella Figura 1), che fornisce tre canali di rotazione e tre canali di controllo dell'illuminazione.

Arduino shield rev2.0

Figura 1. Arduino shield rev2.0 con controllo di rotazione e illuminazione

Inoltre, per la versione 13, il firmware dei controller esistenti deve essere aggiornato per abilitare il controllo della velocità di rotazione. Questo firmware può essere scaricato da:

Per ulteriori informazioni sul nuovo controller, consulta Controller di fusione dei sensori di Android 13.

Assistenza per i test dei dispositivi pieghevoli

Android 13 include il supporto per i test dei dispositivi pieghevoli. Per attivare l'API multi-camera per i dispositivi pieghevoli, lo stato dello smartphone (Folded o Unfolded) è obbligatorio durante il test. Per attivare il polling dello stato dello smartphone per tutti i DUT, inclusi gli smartphone non pieghevoli, esegui il seguente comando adb dopo che il DUT è connesso all'host.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier