Notas de lançamento do Android 13 Camera Image Test Suite

A versão do Android 13 inclui uma série de alterações no Camera ITS . Além de mudanças incrementais, como versões atualizadas do Python e de pacotes e atualizações de hardware de teste, o Android 13 oferece suporte a testes de vídeo.

Esta página resume as alterações do Camera ITS para Android 13. As alterações se enquadram em sete categorias amplas:

Versões do Python e do pacote

O Android 13 oferece suporte às seguintes versões do Python, além das versões e bibliotecas do Python compatíveis com o Android 12:

Adições de arquivo de configuração

Devido à adição do controle de iluminação para o teste test_auto_flash.py , o arquivo config.yml precisa de dois parâmetros adicionais para o controlador e o canal de iluminação. Para identificar se o dispositivo em teste (DUT) é dobrável ou não, o arquivo config.yml requer um terceiro parâmetro adicional que deve ser adicionado às seções baseada em tablet e de fusão de sensores.

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

Alterações de teste

cena1_1/test_black_white.py

O teste test_black_white possui verificação de saturação de canal consistente com versões anteriores do Android, o que significa que o primeiro nível de API necessário para a verificação de saturação de canal é Android 10.

cena1_2/test_yuv_plus_raw.py

O teste test_yuv_plus_raw lida com sensores não 16:9 ou 4:3 para fornecer melhor suporte para RAW. Se o teste não conseguir encontrar um formato comum entre o formato RAW do sensor e os formatos de captura YUV, o teste comparará a captura RAW com a maior captura YUV, mesmo que as proporções sejam diferentes.

cena2_a/test_faces.py

O test_faces é refatorado em test_num_faces .

cena2_a/test_num_faces.py

O teste test_num_faces lida com o corte do sensor e coloca os retângulos faciais corretamente nas capturas de câmera UW que são cortadas.

cena3/test_lens_position.py

O teste test_lens_position está obsoleto no Android 13.

cena6/test_zoom.py

O teste test_zoom foi refatorado para permitir testes mais fáceis de sistemas de três e quatro câmeras. Se a câmera testar corretamente em uma faixa de proporção de 10x no zoom, o teste será encerrado corretamente. Isso permite que testes de zoom sejam realizados em uma única distância do gráfico.

cena_change/test_scene_change.py

O teste test_scene_change está obsoleto no Android 13.

Novos testes baseados em tablets

O Android 13 inclui dois novos testes baseados em tablets. Ambos os testes são obrigatórios para dispositivos lançados com Android 13, mas são ignorados para dispositivos atualizados para Android 13.

Cena Nome de teste Primeiro nível de API Descrição
2_a test_auto_flash 33 Confirma que cenas escuras acionam o flash automático.
2_b test_yuv_jpg_capture_sameness 33 Confirma que as capturas estáticas YUV e JPEG são idênticas em termos de bits.

cena2_a/test_auto_flash.py

O Android 13 adiciona o teste test_auto_flash .

Parâmetros

  • flash : Ignora o teste se o flash não estiver disponível.

Método

O teste configura a solicitação de captura para flash automático e apresenta uma cena que requer um evento de flash. A iluminação do equipamento de teste e do tablet é desligada para apresentar uma cena escura para o algoritmo de exposição automática. O teste configura uma sequência de NUM_FRAMES capturas com flash automático habilitado. Se a configuração AE_STATE retornar FLASH_REQUIRED o teste verifica se um flash é disparado nas capturas.

A iluminação pode ser controlada manualmente quando solicitado ou automaticamente com um controlador Arduino com controle de iluminação adicionado para testes automatizados. Uma nova pasta de utilitários lighting_control_utils centraliza o código para controlar a iluminação em testes.

cena2_a/test_yuv_jpeg_capture_sameness.py

O Android 13 adiciona o teste test_yuv_jpeg_capture_sameness .

Parâmetros

  • streamUseCase : determina se a câmera oferece suporte ao caso de uso de stream.
  • android.jpeg.quality : Define a qualidade JPEG como 100.

Método

Este teste captura duas imagens usando os maiores formatos comuns YUV e JPEG com a mesma proporção do maior formato JPEG, não excedendo a resolução de 1920x1440. O teste define jpeg.quality como 100 e captura uma solicitação de superfície dupla. Em seguida, ele converte ambas as imagens em matrizes RGB e calcula a diferença quadrática média (RMS) 3D entre as duas imagens. A tolerância de diferença é definida como 1%.

Teste de vídeo

Camera ITS adiciona suporte para testes de vídeo no Android 13.

O Android 13 adiciona os seguintes testes:

Cena Nome de teste Primeiro nível de API Descrição
4 test_preview_estabilization_fov 33 Confirma que a visualização do vídeo não corta muito com a estabilização ativada.
4 test_video_aspect_ratio_and_crop 33 Confirma formatos de vídeo FoV, proporção e corte.
sensor_fusão test_preview_stabilition 33 Confirma que a estabilização da visualização funciona.
sensor_fusão test_video_stabilition 33 Confirma que a estabilização de vídeo funciona.

cena4/test_preview_stabilization_fov.py

O Android 13 adiciona o teste test_preview_stabilization_fov . Este teste verifica os tamanhos de visualização suportados para garantir que o FoV não seja cortado inadequadamente.

Método

O teste captura dois vídeos, um com estabilização de visualização ativada e outro com estabilização de visualização desativada. Um quadro representativo é selecionado de cada vídeo e analisado para garantir que as alterações de FoV nos dois vídeos estejam dentro das especificações.

Especificamente, o teste verifica os seguintes parâmetros com e sem estabilização de visualização:

  • A redondeza do círculo permanece constante.
  • O centro do círculo permanece estável.
  • O tamanho do círculo não muda mais que 20%, o que significa que o FoV muda no máximo 20%.

cena4/test_video_aspect_ratio_and_crop.py

O Android 13 adiciona o teste test_video_aspect_ratio_and_crop . Semelhante ao teste test_aspect_ratio_and_crop para capturas estáticas, este teste verifica os formatos de vídeo suportados para garantir que os quadros de vídeo não sejam esticados ou cortados inadequadamente. Todas as qualidades de vídeo auto-relatadas são testadas. Além disso, se a câmera suportar vídeo HLG10 , o vídeo de 10 bits será testado.

O Android 13 adiciona o método get_available_video_qualities a its_session_utils . Para compartilhar código comum com testes existentes, o Android 13 também inclui duas novas funções utilitárias, image_fov_utils e video_processing_utils .

Método

O teste captura uma imagem de referência com o formato RAW ou o formato JPEG de resolução mais alta se RAW não for compatível. A partir da imagem de referência, o tamanho e a localização do círculo são determinados. Vídeos curtos são então gravados com todas as qualidades de vídeo suportadas. O quadro de referência final é extraído de cada qualidade de vídeo. A partir do quadro de referência, o campo de visão (FoV), a centralização (corte) e a proporção são calculados para cada qualidade de vídeo.

Para o cálculo do FoV, o teste compara o tamanho do círculo do quadro de vídeo com o tamanho do círculo calculado a partir da imagem de referência e dos tamanhos do formato de vídeo. Para a verificação de corte, o teste compara a centralização do quadro de vídeo com a centralização da imagem de referência. Para a verificação da proporção, usando a cena, que é um grande círculo preto sobre fundo branco, o teste determina a proporção do círculo e verifica se o quadro não está distorcido.

sensor_fusion/test_preview_estabilization.py

O Android 13 adiciona o teste test_preview_stabilization , que testa todas as qualidades de visualização suportadas até 1920x1080. O teste usa o equipamento de teste de fusão de sensores e requer o novo controlador de fusão de sensores revisão 2 ou uma atualização de firmware de versões anteriores do controlador Arduino. Para obter mais detalhes sobre o novo controlador, consulte Atualizações e adições de hardware .

Método

O telefone é movido lentamente em um ângulo de aproximadamente 15 graus com a estabilização de visualização ativada. A rotação das imagens é então comparada com a rotação do giroscópio.

sensor_fusion/test_video_estabilization.py

O Android 13 adiciona o teste test_video_stabilization , que testa qualidades de vídeo suportadas de até 1920x1080. A qualidade de vídeo de baixa resolução QCIF é excluída. O teste usa o equipamento de teste de fusão de sensores e requer o novo controlador de fusão de sensores revisão 2 ou uma atualização de firmware de versões anteriores do controlador Arduino. Para obter mais detalhes sobre o novo controlador, consulte Atualizações e adições de hardware .

Método

O equipamento de teste move o telefone lentamente em um ângulo de aproximadamente 15 graus com a estabilização de visualização ativada. A rotação das imagens é então comparada com a rotação do giroscópio.

Atualizações e adições de hardware

O Android 13 inclui uma atualização para o controlador de fusão de sensores de revisão 2 baseado em Arduino. Esta atualização inclui alterações de hardware e firmware. A atualização permite que o controlador defina a velocidade de rotação e o controle de raios. A atualização também inclui um novo escudo (mostrado na Figura 1), que oferece três canais de rotação e três canais de controle de iluminação.

Escudo Arduino rev2.0

Figura 1. Arduino Shield rev2.0 com controle de rotação e iluminação

Além disso, para 13, o firmware dos controladores existentes deve ser atualizado para permitir o controle da velocidade de rotação. Este firmware pode ser baixado em:

Para obter mais informações sobre o novo controlador, consulte Controlador de fusão de sensores do Android 13 .

Suporte de teste dobrável

O Android 13 inclui suporte de teste para dispositivos dobráveis. Para ativar a API multicâmera para dispositivos dobráveis, o estado do telefone ( Folded ou Unfolded ) é necessário durante o teste. Para ativar a pesquisa do estado do telefone para todos os DUTs, incluindo telefones não dobráveis, execute o seguinte comando adb depois que o DUT estiver conectado ao host.

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