Note sulla versione di Android 13 Camera Image Test Suite

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

Questa pagina riepiloga le modifiche ITS della fotocamera per Android 13. Le modifiche rientrano in sette grandi categorie:

Versioni Python e pacchetti

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

Aggiunte ai file di configurazione

A causa dell'aggiunta del controllo dell'illuminazione per il test test_auto_flash.py , il file config.yml necessita di due parametri aggiuntivi per il controller e il canale di illuminazione. Per identificare se il dispositivo sotto test (DUT) è pieghevole o meno, il file config.yml richiede un terzo parametro aggiuntivo che deve essere aggiunto sia alla sezione basata su tablet che a quella 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

Testare le 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 sensori non 16:9 o 4:3 per fornire un migliore supporto 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

Il 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 sulle acquisizioni della 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 consentire un test più semplice di sistemi a tre e quattro fotocamere. Se la fotocamera esegue correttamente il test su un intervallo di rapporti 10x in zoom, il test termina correttamente. Ciò consente di eseguire il test dello zoom a una singola distanza sulla carta.

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 avviati con Android 13, ma vengono saltati per i dispositivi che eseguono l'aggiornamento ad Android 13.

Scena Nome della prova 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 le acquisizioni fisse YUV e JPEG sono identiche in termini di bit.

scene2_a/test_auto_flash.py

Android 13 aggiunge il test test_auto_flash .

Parametri

  • flash : salta il test se il 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 del banco di prova e del tablet vengono spente 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 nelle acquisizioni venga attivato un flash.

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

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 aggiunge il test test_yuv_jpeg_capture_sameness .

Parametri

  • streamUseCase : determina se la fotocamera supporta il caso d'uso del flusso.
  • android.jpeg.quality : imposta la qualità JPEG su 100.

Metodo

Questo test cattura due immagini utilizzando i più grandi formati comuni YUV e JPEG con le stesse proporzioni del formato JPEG più grande che non superano la risoluzione di 1920x1440. Il test imposta jpeg.quality su 100 e cattura una richiesta di doppia superficie. Quindi converte entrambe le immagini in array RGB e calcola la differenza radice quadrata media (RMS) 3D tra le due immagini. La tolleranza della differenza è fissata all'1%.

Test video

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

Android 13 aggiunge i seguenti test:

Scena Nome della prova Primo livello API Descrizione
4 test_preview_stabilization_fov 33 Conferma che l'anteprima del video non viene ritagliata troppo con la stabilizzazione abilitata.
4 test_video_rapporto_di_aspetto_e_ritaglio 33 Conferma i formati video FoV, proporzioni e ritaglio.
sensor_fusion test_preview_stabilition 33 Conferma il funzionamento della stabilizzazione dell'anteprima.
sensor_fusion prova_video_stabilità 33 Conferma che la stabilizzazione video funziona.

scene4/test_preview_stabilization_fov.py

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

Metodo

Il test cattura due video, uno con la stabilizzazione dell'anteprima attivata e uno con la stabilizzazione dell'anteprima disattivata. Da ciascun video viene selezionato un fotogramma rappresentativo e analizzato per garantire che le modifiche del FoV 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.
  • La dimensione del cerchio non cambia più del 20%, il che significa che il FoV cambia al massimo del 20%.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 aggiunge il test test_video_aspect_ratio_and_crop . Similmente al test test_aspect_ratio_and_crop per le acquisizioni fisse, 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 auto-riferite vengono testate. Inoltre, se la fotocamera 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 con il formato RAW o il formato JPEG con la risoluzione più alta se RAW non è supportato. Dall'immagine di riferimento, vengono determinate la dimensione e la posizione del cerchio. Vengono quindi realizzati brevi video con tutte le qualità video supportate. Il fotogramma di riferimento finale viene estratto da ciascuna qualità video. Dal fotogramma di riferimento, vengono calcolati il ​​campo visivo (FoV), la centratura (ritaglio) e le proporzioni per ciascuna qualità video.

Per il calcolo del FoV, il test confronta la dimensione del cerchio del fotogramma video con la dimensione del cerchio calcolata dalle dimensioni dell'immagine di riferimento e del formato video. Per il controllo del ritaglio, il test confronta la centratura del fotogramma video con la centratura dell'immagine di riferimento. Per il controllo delle proporzioni, utilizzando la scena, che è un grande cerchio nero su sfondo bianco, il test determina le proporzioni del cerchio e verifica che il fotogramma 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 1920x1080. Il test utilizza il banco prova di fusione dei sensori e richiede il nuovo controller di fusione dei sensori di revisione 2 o un aggiornamento del firmware delle versioni precedenti del controller Arduino. Per ulteriori dettagli sul nuovo controller, vedere Aggiornamenti e aggiunte hardware .

Metodo

Il telefono viene spostato lentamente 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.

sensor_fusion/test_video_stabilization.py

Android 13 aggiunge il test test_video_stabilization , che verifica la qualità video supportata fino a 1920×1080. La qualità video QCIF a bassa risoluzione è esclusa. Il test utilizza il banco prova di fusione dei sensori e richiede il nuovo controller di fusione dei sensori di revisione 2 o un aggiornamento del firmware delle versioni precedenti del controller Arduino. Per ulteriori dettagli sul nuovo controller, vedere Aggiornamenti e aggiunte hardware .

Metodo

Il banco di prova sposta lentamente il telefono 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 integrazioni hardware

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

Scudo Arduino rev2.0

Figura 1. Shield Arduino rev2.0 con controllo della rotazione e dell'illuminazione

Inoltre, per 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 Android 13 Sensor Fusion .

Supporto per test pieghevole

Android 13 include il supporto per testare i dispositivi pieghevoli. Per abilitare l' API multi-camera per i dispositivi pieghevoli, durante il test è richiesto lo stato del telefono ( Folded o Unfolded ). Per abilitare il polling dello stato del telefono per tutti i DUT, inclusi i telefoni non pieghevoli, eseguire il seguente comando adb dopo che il DUT è stato connesso all'host.

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