La release di 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 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 ampie categorie:
- Versioni di Python e dei pacchetti
- Aggiunte al file di configurazione
- Testare le modifiche
- Nuovi test basati su tablet
- Test video
- Aggiornamenti e aggiunte hardware
- Supporto per i test sui dispositivi pieghevoli
Versioni di Python e dei pacchetti
Android 13 supporta le seguenti versioni di Python oltre a quelle e alle librerie supportate in Android 12:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
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 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 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 refactorizzato per consentire test più semplici di sistemi con tre e quattro
videocamere. Se i test della videocamera vengono eseguiti correttamente in un intervallo di rapporto 10x nello zoom,
il test viene chiuso correttamente. In questo modo è possibile eseguire il test dello 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 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 le acquisizioni YUV e JPEG sono identiche a livello di bit. |
scene2_a/test_auto_flash.py
Android 13 aggiunge il test test_auto_flash
.
Parametri
flash
: ignora 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
è disattivata per presentare una scena scura per l'algoritmo di esposizione automatica. Il test
configura una sequenza di acquisizioni NUM_FRAMES
con il flash automatico attivato. 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 di 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 test_yuv_jpeg_capture_sameness
.
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
le stesse proporzioni 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 su 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 venga 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 fotogramma 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 al massimo 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 immagini statiche, questo test controlla i formati video supportati
per assicurarsi che i fotogrammi video non siano allungati o ritagliati in modo inappropriato.
Tutte le qualità video auto-dichiarate vengono testate. 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 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, il centraggio (ritaglio) e le proporzioni 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 a partire dalle dimensioni dell'immagine di riferimento e del formato video. 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 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 1920 x 1080. Il test utilizza
il banco di prova per la fusione dei sensori e
richiede il nuovo controller di fusione dei sensori 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 verifica 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 upgrade del controller di fusione dei sensori di revisione 2 basato su Arduino. Questo upgrade include modifiche sia all'hardware che al 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.
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 attivare il controllo della velocità di rotazione. Questo firmware può essere scaricato da:
Per ulteriori informazioni sul nuovo controller, vedi 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 multicamera per i pieghevoli, lo stato dello smartphone (Folded
o Unfolded
) è necessario 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 aver collegato il DUT all'host.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier