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

La release di Android 13 include una serie di modifiche all'ITS della fotocamera. Oltre alle modifiche incrementali, come le versioni aggiornate di Python e dei pacchetti e gli aggiornamenti dell'hardware di test, Android 13 supporta i test video.

Questa pagina riassume le modifiche di Camera ITS per Android 13. Le modifiche rientrano in sette grandi categorie:

Versioni di Python e dei pacchetti

Android 13 supporta le seguenti versioni di Python oltre a quelle e alle librerie 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 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 sul tablet sia 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 esegue il controllo della saturazione del canale in modo coerente con le versioni precedenti di Android, il che significa che il 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 sensori non 16:9 o 4:3 per fornire un supporto migliore per RAW. Se il test non riesce a trovare un formato comune tra il formato RAW del sensore e i formati di acquisizione YUV, il test confronta l'acquisizione RAW con l'acquisizione YUV più grande anche se le proporzioni sono diverse.

scene2_a/test_faces.py

test_faces è stato rifattorizzato 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 del volto sulle acquisizioni della videocamera 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 consentire test più semplici di sistemi con tre e quattro telecamere. Se i test della videocamera vengono eseguiti correttamente in un intervallo di rapporto di 10x nello zoom, il test viene chiuso correttamente. In questo modo, il test dello zoom può essere eseguito 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 test Primo livello API Descrizione
2_a test_auto_flash 33 Conferma che le scene scure attivano il flash automatico.
2_b test_yuv_jpg_capture_sameness 33 Conferma che gli scatti YUV e JPEG sono identici 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 nel banco di prova e nel tablet è spenta per presentare una scena scura per l'algoritmo di esposizione automatica. Il test configura una sequenza di acquisizioni NUM_FRAMES 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 automatizzati. Una nuova cartella utilità lighting_control_utils centralizza il codice per controllare l'illuminazione nei test.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 aggiunge il test_yuv_jpeg_capture_sameness test.

Parametri

  • streamUseCase: determina se la videocamera supporta lo scenario d'uso dello stream.
  • android.jpeg.quality: imposta la qualità JPEG su 100.

Metodo

Questo test acquisisce due immagini utilizzando i formati YUV e JPEG comuni più grandi con lo stesso aspect ratio del formato JPEG più grande che non superi una risoluzione di 1920x1440. Il test imposta jpeg.quality su 100 e acquisisce una richiesta a doppia superficie. Poi converte entrambe le immagini in array RGB e calcola la differenza quadratica media (RMS) tridimensionale tra le due immagini. La tolleranza della differenza è impostata all'1%.

Test video

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

Android 13 aggiunge i seguenti test:

Scena Nome test Primo livello API Descrizione
4 test_preview_stabilization_fov 33 Conferma che l'anteprima video non viene ritagliata troppo con la stabilizzazione attivata.
4 test_video_aspect_ratio_and_crop 33 Conferma il campo visivo, le proporzioni e il ritaglio dei formati video.
sensor_fusion test_preview_stabilition 33 Conferma che la stabilizzazione dell'anteprima funziona.
sensor_fusion test_video_stabilition 33 Conferma che la stabilizzazione video funzioni.

scene4/test_preview_stabilization_fov.py

Android 13 aggiunge il test test_preview_stabilization_fov. Questo test controlla le dimensioni di anteprima supportate per assicurarsi che il campo visivo non venga ritagliato in modo inappropriato.

Metodo

Il test acquisisce due video, uno con la stabilizzazione dell'anteprima attiva e uno con la stabilizzazione dell'anteprima disattivata. Da ogni video viene selezionato un frame rappresentativo, che viene analizzato per verificare che le modifiche al campo visivo nei due video rientrino nelle specifiche.

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

  • La rotondità del cerchio rimane costante.
  • Il centro del cerchio rimane stabile.
  • Le dimensioni del cerchio cambiano di non più del 20%, il che significa che il campo visivo cambia al massimo del 20%.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 aggiunge il test test_video_aspect_ratio_and_crop. Analogamente al test_aspect_ratio_and_crop test per le acquisizioni statiche, questo test controlla i formati video supportati per assicurarsi che i fotogrammi video non siano allungati o ritagliati in modo inappropriato. Vengono testate tutte le qualità video auto-dichiarate. Inoltre, se la videocamera supporta 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 in formato RAW o nel formato 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 realizzati con tutte le qualità video supportate. L'ultimo frame di riferimento viene estratto da ogni qualità video. Dal frame di riferimento, il campo visivo, il centraggio (ritaglio) e le proporzioni vengono calcolati per ogni qualità video.

Per il calcolo del campo visivo, il test confronta le dimensioni del cerchio del frame video con le dimensioni del cerchio calcolate dalle dimensioni del formato video e dell'immagine di riferimento. Per il controllo del ritaglio, il test confronta il centraggio del frame video con il centraggio dell'immagine di riferimento. Per il controllo delle proporzioni, utilizzando la scena, che è un grande cerchio nero su uno sfondo bianco, il test determina le proporzioni del cerchio e verifica che il frame non sia distorto.

sensor_fusion/test_preview_stabilization.py

Android 13 aggiunge il test test_preview_stabilization, che testa tutte le qualità di anteprima supportate fino a 1920 x 1080. Il test utilizza il banco di prova per la 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, vedi Aggiornamenti e aggiunte hardware.

Metodo

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

sensor_fusion/test_video_stabilization.py

Android 13 aggiunge il test test_video_stabilization, che testa le qualità video supportate fino a 1920x1080. La qualità video a bassa risoluzione QCIF è esclusa. Il test utilizza il banco di prova sensor fusion e richiede il nuovo controller sensor fusion revisione 2 o un upgrade del firmware delle versioni precedenti del controller Arduino. Per maggiori dettagli sul nuovo controller, vedi Aggiornamenti e aggiunte hardware.

Metodo

Il banco di prova muove lentamente lo smartphone con un angolo di circa 15 gradi con la stabilizzazione dell'anteprima attivata. La rotazione delle immagini viene quindi confrontata con la rotazione del giroscopio.

Aggiornamenti e aggiunte hardware

Android 13 include un aggiornamento del controller di fusione dei sensori di revisione 2 basato su Arduino. Questo upgrade include modifiche hardware e 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. Shield Arduino rev2.0 con controllo di rotazione e illuminazione

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

Per saperne di più sul nuovo controller, consulta Controller di fusione dei sensori di Android 13.

Supporto per i test sui dispositivi pieghevoli

Android 13 include il supporto per i test per i dispositivi pieghevoli. Per abilitare l'API multi-camera per i pieghevoli, è necessario lo stato del telefono (Folded o Unfolded) durante il test. Per attivare il polling dello stato del telefono per tutti i DUT, inclusi gli smartphone non pieghevoli, esegui il seguente comando ADB dopo aver collegato il DUT all'host.

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