Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Kiểm tra ITS máy ảnh

Trang này cung cấp danh sách đầy đủ các thử nghiệm trong Bộ kiểm tra hình ảnh máy ảnh (ITS), là một phần của Trình xác minh Bộ kiểm tra khả năng tương thích Android (CTS). Các thử nghiệm ITS là các thử nghiệm chức năng, nghĩa là chúng không đo chất lượng hình ảnh mà đo lường tất cả các chức năng của máy ảnh được quảng cáo đều hoạt động như mong đợi. Tài liệu này cho phép các nhà phát triển và người thử nghiệm hiểu những gì các thử nghiệm riêng lẻ thực hiện và cách gỡ lỗi các lỗi thử nghiệm.

Các thử nghiệm được nhóm theo cảnh như sau:

  • cảnh0 : Chụp siêu dữ liệu, jitter, con quay hồi chuyển, độ rung
  • cảnh1 : Phơi sáng, độ nhạy, bù EV, YUV so với JPEG/RAW
  • cảnh2 : Nhận diện khuôn mặt
  • cảnh3 : Tăng cường cạnh, chuyển động của ống kính
  • cảnh4 : Tỷ lệ khung hình, cắt xén, trường nhìn
  • cảnh5 : Bóng ống kính
  • cảnh6 : Thu phóng
  • sensor_fusion : Độ lệch thời gian của máy ảnh/con quay hồi chuyển

Xem các phần riêng lẻ để biết mô tả về từng cảnh.

cảnh0

Kiểm tra Scene0 không yêu cầu thông tin cảnh cụ thể. Tuy nhiên, điện thoại phải đứng yên để kiểm tra con quay hồi chuyển và độ rung.

test_burst_capture

Xác minh rằng toàn bộ quy trình chụp có thể theo kịp tốc độ chụp ở kích thước đầy đủ và thời gian CPU.

Các API đã thử nghiệm:

Đạt: Chụp một loạt ảnh có kích thước đầy đủ và máy ảnh đủ nhanh để tránh hết thời gian chờ.

test_capture_result_dump

Kiểm tra xem kết quả chụp có được trả về từ quá trình chụp thủ công hay không và sau đó loại bỏ nó.

Các API đã thử nghiệm:

Đạt: Hoàn thành chụp và hủy kết quả chụp.

test_gyro_bias

Kiểm tra xem con quay hồi chuyển có đầu ra ổn định khi thiết bị đứng yên không. Dữ liệu được vẽ dưới dạng trung bình của 20 điểm dữ liệu.

Các API đã thử nghiệm:

Đạt: Đồng bằng của số đọc con quay hồi chuyển nhỏ hơn 0,01 theo thời gian.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

Đo jitter trong dấu thời gian của máy ảnh.

Các API đã thử nghiệm:

Vượt qua: Có ít nhất 30 ms delta giữa các khung hình.

test_jitter_plot.png

test_jitter_plot.png (Lưu ý phạm vi trục y nhỏ. Jitter thực sự nhỏ trong biểu đồ này.)

test_metadata

Kiểm tra tính hợp lệ của các mục nhập siêu dữ liệu. Nhìn vào kết quả chụp và các đối tượng đặc điểm của máy ảnh. Thử nghiệm này sử dụng auto_capture_request phơi sáng và giá trị tăng vì nội dung hình ảnh không quan trọng.

Các API đã thử nghiệm:

Vượt qua: Cấp độ phần cứng, rollingShutterSkew , thẻ frameDuration , timestampSource , croppingType , blackLevelPattern , pixel_pitch , FOV, khoảng cách siêu tiêu cự có mặt và có các giá trị hợp lệ.

test_param_sensitive_burst

Kiểm tra để đảm bảo rằng thông số android.sensor.sensitivity được áp dụng đúng cách trong loạt. Chỉ kiểm tra siêu dữ liệu đầu ra.

Các API đã thử nghiệm:

Đạt: Dữ liệu đầu ra có sai số nhỏ hơn 0,2%.

test_read_write

Kiểm tra xem thiết bị ghi giá trị phơi sáng và thu được chính xác bằng cách đọc lại siêu dữ liệu chụp.

Các API đã thử nghiệm:

Đạt: Các giá trị đọc và ghi khớp với tất cả các lần chụp.

test_sensor_events

Kiểm tra truy vấn thiết bị đó và in ra các sự kiện cảm biến cho các thiết bị quảng cáo hỗ trợ kết hợp cảm biến. Các cảm biến dự kiến ​​là gia tốc kế, con quay hồi chuyển và từ kế. Kiểm tra này chỉ hoạt động nếu màn hình đang bật, nghĩa là thiết bị không ở chế độ chờ.

Các API đã thử nghiệm:

Pass: Các sự kiện cho mỗi cảm biến được nhận.

test_solid_color_test_pattern

Kiểm tra xem các mẫu kiểm tra màu đồng nhất có được tạo đúng cách để tắt tiếng máy ảnh hay không. Nếu hỗ trợ tắt tiếng máy ảnh, các mẫu kiểm tra màu đồng nhất phải được hỗ trợ. Nếu tính năng tắt tiếng máy ảnh không được hỗ trợ, các mẫu kiểm tra màu đồng nhất chỉ được kiểm tra nếu khả năng này được quảng cáo.

Nếu ảnh RAW được hỗ trợ, tính năng đồng nhất màu cũng sẽ được kiểm tra. Các màu được thử nghiệm là đen, trắng, đỏ, xanh lam và xanh lục. Đối với máy ảnh không hỗ trợ ảnh RAW, chỉ có màu đen được thử nghiệm.

Các API đã thử nghiệm:

Đạt: Các mẫu kiểm tra đồng nhất được hỗ trợ có màu chính xác và hình ảnh có độ chênh lệch thấp.

test_test_potype

Kiểm tra tham số android.sensor.testPatternMode để chụp các khung cho từng mẫu thử hợp lệ và kiểm tra xem các khung có được tạo chính xác cho các thanh màu và màu đồng nhất hay không. Thử nghiệm này bao gồm các bước sau:

  1. Chụp ảnh cho tất cả các mẫu kiểm tra được hỗ trợ.
  2. Thực hiện kiểm tra tính chính xác đơn giản cho mẫu kiểm tra màu đồng nhất và thanh màu.

Các API đã thử nghiệm:

Đạt: Các mẫu kiểm tra được hỗ trợ được tạo chính xác.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Thử nghiệm chuyển đổi mẫu thử nghiệm từ RAW sang YUV với sơ đồ giai điệu tuyến tính. Thử nghiệm này yêu cầu android.sensor.testPatternMode = 2 (COLOR_BARS) để tạo mẫu hình ảnh hoàn hảo cho chuyển đổi sơ đồ giai điệu. Đảm bảo đường ống có đầu ra màu phù hợp với sơ đồ tông màu tuyến tính và đầu vào hình ảnh lý tưởng (dựa trên test_test_patterns ).

Các API đã thử nghiệm:

Vượt qua: YUV và RAW trông giống nhau.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

Kiểm tra xem các sự kiện của cảm biến hình ảnh và chuyển động có nằm trong cùng một miền thời gian hay không.

Các API đã thử nghiệm:

Vượt qua: Dấu thời gian chuyển động nằm giữa hai dấu thời gian hình ảnh.

test_vibration_restriction

Kiểm tra xem độ rung của thiết bị có hoạt động như mong đợi không.

Các API đã thử nghiệm:

Đạt: Thiết bị không rung khi bị tắt tiếng bởi API hạn chế âm thanh của máy ảnh.

cảnh 1

cảnh1 là một biểu đồ màu xám. Biểu đồ màu xám phải bao phủ trung tâm 30% trường nhìn của camera. Biểu đồ màu xám dự kiến ​​sẽ thách thức 3A (phơi sáng tự động, cân bằng trắng tự động, lấy nét tự động) ở mức vừa phải vì vùng trung tâm không có tính năng nào. Tuy nhiên, yêu cầu chụp chỉ định toàn bộ cảnh bao gồm đủ các tính năng để 3A hội tụ.

Máy ảnh RFoV có thể được thử nghiệm trong WFoV hoặc giàn thử nghiệm RFoV. Nếu máy ảnh RFoV được thử nghiệm trong giàn thử nghiệm WFoV, thì biểu đồ được chia tỷ lệ theo tỷ lệ ⅔ để đảm bảo một số ranh giới cho biểu đồ màu xám trong foV nhằm giúp 3A hội tụ.

cảnh 1

cảnh1: Biểu đồ kích thước đầy đủ (trái). ⅔ biểu đồ tỷ lệ (phải).

kiểm tra_3a

Kiểm tra sự hội tụ của 3A với mục tiêu thách thức vừa phải.

Các API đã thử nghiệm:

Vượt qua: 3A hội tụ và các giá trị 3A được trả về là hợp lệ.

test_ae_af

Kiểm tra riêng từng thuật toán phơi sáng tự động (AE) và lấy nét tự động (AF) 3A.

Các API đã thử nghiệm:

Vượt qua: 3A hội tụ và các giá trị 3A được trả về là hợp lệ.

test_ae_precapture_trigger

Kiểm tra máy trạng thái AE khi sử dụng trình kích hoạt chụp trước. Ghi lại năm yêu cầu thủ công khi tắt AE. Yêu cầu cuối cùng có trình kích hoạt chụp trước AE, yêu cầu này sẽ bị bỏ qua vì AE bị tắt.

Các API đã thử nghiệm:

Vượt qua: AE hội tụ.

test_auto_vs_manual

Các thử nghiệm chụp ảnh tự động và thủ công trông giống nhau.

Các API đã thử nghiệm:

Đạt: Mức tăng và chuyển đổi cân bằng trắng thủ công được báo cáo trong mỗi kết quả chụp khớp với estimate cân bằng trắng tự động từ thuật toán 3A của máy ảnh.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

Các bài kiểm tra cho thấy thiết bị tạo ra hình ảnh đen trắng đầy đủ. Thực hiện hai lần chụp, lần đầu tiên có mức tăng cực thấp và phơi sáng ngắn, dẫn đến ảnh đen và lần thứ hai có mức tăng cực cao và phơi sáng lâu, dẫn đến ảnh trắng.

Các API đã thử nghiệm:

Pass: Tạo ảnh đen trắng. Các kênh bão hòa của hình ảnh màu trắng có giá trị RGB là [255, 255, 255] với biên độ sai số nhỏ hơn 1%.

test_black_white_blacktest_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

Chụp 5 loạt 50 ảnh với cài đặt chụp thủ công và kiểm tra xem chúng có giống nhau không. Thử nghiệm này có thể được sử dụng để xác định xem có các khung rời rạc được xử lý theo cách khác hoặc có tạo tác hay không.

Các API đã thử nghiệm:

Đạt: Hình ảnh giống hệt nhau về mặt trực quan và ở các giá trị RGB.

Không đạt: Hiển thị mức tăng hoặc giảm của biểu đồ trung bình RGB khi bắt đầu mỗi đợt

  • Dung sai là 3% cho first_API_level < 30
  • Dung sai là 2% cho first_API_level >= 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

Kiểm tra xem dữ liệu hợp lệ có trở lại trong các đối tượng CaptureResult . Chụp tự động, thủ công và tự động.

Các API đã thử nghiệm:

Vượt qua: Siêu dữ liệu hợp lệ cho tất cả các lần chụp và cài đặt thủ công không bị rò rỉ vào lần chụp tự động thứ hai. Vẽ sơ đồ hiệu chỉnh độ bóng của ống kính cho ảnh chụp.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

Kiểm tra xem các luồng RAW không thể cắt xén được.

Các API đã thử nghiệm:

Vượt qua: Hình ảnh YUV được cắt ở giữa chứ không phải hình ảnh RAW.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

Kiểm tra xem các vùng cây trồng có hoạt động không. Chụp ảnh đầy đủ và tạo các mảng gồm 5 vùng khác nhau (góc và tâm.) Chụp ảnh với bộ cắt xén cho 5 vùng. So sánh các bản vá và các giá trị hình ảnh cắt.

Các API đã thử nghiệm:

Vượt qua: Hình ảnh của vùng bị cắt khớp với bản vá tương ứng với hình ảnh bị cắt.

test_dng_noise_model

Xác minh rằng các tham số mô hình thô DNG là chính xác. Đồ thị mô tả phương sai đo được của một mảng trung tâm của thẻ xám trong ảnh thô được chụp trên một loạt độ nhạy và so sánh các giá trị này với phương sai dự kiến ​​ở mỗi độ nhạy bởi mô hình nhiễu DNG trong HAL của máy ảnh (dựa trên Các tham số O,S được trả về trong các đối tượng kết quả chụp). Để biết thêm chi tiết về mô hình tiếng ồn DNG, hãy tải xuống tài liệu sau về Mô hình tiếng ồn DNG .

Các API đã thử nghiệm:

Vượt qua: Thông số mô hình thô DNG là chính xác. Giá trị RGB dự kiến ​​khớp với giá trị RGB thực tế được đo.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Kiểm tra xem giá trị phơi sáng (EV) có được áp dụng hay không. Thử nghiệm tăng độ phơi sáng theo tám bước và kiểm tra độ sáng đo được so với độ sáng dự kiến. Giá trị dự kiến ​​được tính toán từ độ sáng hình ảnh của hình ảnh không áp dụng bù EV và giá trị dự kiến ​​sẽ bão hòa nếu giá trị tính toán vượt quá phạm vi giá trị hình ảnh thực tế. Thử nghiệm không thành công nếu giá trị dự kiến ​​và giá trị đo được không khớp hoặc hình ảnh bị phơi sáng quá mức trong năm bước.

Các API đã thử nghiệm:

Đạt: Hình ảnh hiển thị độ phơi sáng tăng dần mà không bị phơi sáng quá mức trong vòng năm bước.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

Kiểm tra xem bù EV có được áp dụng hay không bằng cách sử dụng phạm vi được tạo bằng CONTROL_AE_COMPENSATION_STEP . Tám khung hình được chụp ở mỗi giá trị bù.

Các API đã thử nghiệm:

Đạt: Ảnh chụp tăng độ sáng với cài đặt bù EV tăng và tám khung hình được chụp cho mỗi cài đặt bù EV có giá trị độ sáng ổn định.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure

Thử nghiệm để đạt được độ phơi sáng liên tục khi ISO và thời gian phơi sáng thay đổi. Chụp một loạt ảnh có ISO và thời gian phơi sáng được chọn để cân bằng lẫn nhau. Kết quả sẽ có cùng độ sáng, nhưng trong chuỗi ảnh sẽ nhiễu hơn. Xác minh các giá trị trung bình của pixel mẫu gần nhau. Đảm bảo rằng hình ảnh không bị kẹp thành 0 hoặc 1 (điều này sẽ khiến chúng trông giống như các đường thẳng). Bạn cũng có thể chạy thử nghiệm với ảnh RAW bằng cách đặt cờ debug trong tệp cấu hình của mình.

Các API đã thử nghiệm:

Đạt: Hình ảnh có cùng độ sáng, nhưng nhiễu hơn với ISO cao hơn. Các mặt phẳng RGB phẳng khi giá trị độ phơi sáng ISO* không đổi trên không gian khuếch đại đã kiểm tra.

test_exposure_plot_means

test_exposure_plot_means.png

test_exposure_mult=1,00test_exposure_mult=64,00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

Các thử nghiệm đã chuyển đổi hình ảnh YUV và hình ảnh JPEG của thiết bị trông giống nhau. Kiểm tra lấy 10% trung tâm của hình ảnh và tính toán giá trị RGB, đồng thời xác minh rằng chúng khớp nhau.

Các API đã thử nghiệm:

Đạt: Chênh lệch RGB trung bình giữa mỗi hình ảnh nhỏ hơn 3%.

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

Kiểm tra xem các cài đặt (độ phơi sáng và mức tăng) bám vào khung bên phải cho máy ảnh FULLLEVEL_3 . Chụp một loạt ảnh bằng cách sử dụng các yêu cầu liên tiếp, thay đổi các tham số yêu cầu chụp giữa các lần chụp. Kiểm tra xem hình ảnh có các thuộc tính mong muốn không.

Các API đã thử nghiệm:

Đạt: Hình ảnh [2, 3, 6, 8, 10, 12, 13] đã tăng ISO hoặc độ phơi sáng và hiển thị với phương tiện RGB cao hơn trên test_latching_plot_means.png .

test_latching_i=00.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_latching_i=11.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

test_linearity

Thử nghiệm rằng quá trình xử lý thiết bị có thể được đảo ngược thành pixel tuyến tính. Chụp một chuỗi ảnh với thiết bị hướng vào một mục tiêu đồng nhất.

Các API đã thử nghiệm:

Vượt qua: Các giá trị R, G, B phải tăng tuyến tính với độ nhạy tăng.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

Kiểm tra khóa 3A và bùng nổ YUV (sử dụng cài đặt tự động). Thử nghiệm này được thiết kế để vượt qua ngay cả trên các thiết bị hạn chế không có MANUAL_SENSOR hoặc PER_FRAME_CONTROLS . Thử nghiệm kiểm tra tính nhất quán của hình ảnh YUV trong khi kiểm tra tốc độ khung hình trong CTS.

Các API đã thử nghiệm:

Vượt qua: Ảnh chụp có vẻ nhất quán.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_multi_camera_match

Thử nghiệm để xem liệu nhiều camera trên thiết bị có cung cấp các giá trị RGB tương tự cho mảng màu xám hay không.

Các API đã thử nghiệm:

Đạt: Các máy ảnh khác nhau tạo ra các giá trị RGB tương tự cho cùng một mảng màu xám.

test_multi_camera+match_yuv_fl=4.38

test_multi_camera+match_yuv_fl=4.38.jpg

kiểm tra_param_color_chỉnh sửa

Kiểm tra xem các thông số android.colorCorrection.* có được áp dụng khi thiết lập hay không. Chụp ảnh với các giá trị biến đổi và khuếch đại khác nhau, đồng thời kiểm tra xem chúng trông khác nhau tương ứng. Biến đổi và mức tăng được chọn để làm cho đầu ra ngày càng có màu đỏ hoặc xanh lam. Sử dụng một sơ đồ giai điệu tuyến tính. Ánh xạ tông màu là một kỹ thuật được sử dụng trong xử lý hình ảnh để ánh xạ một tập hợp màu này sang một tập hợp màu khác nhằm tạo ra gần đúng diện mạo của các hình ảnh có dải động cao trong một phương tiện có dải động hạn chế hơn.

Các API đã thử nghiệm:

Vượt qua: Giá trị R và B tăng theo chuyển đổi.

test_param_color_chỉnh_plot_means

test_param_color_chỉnh_plot_means.png

*Trục x là các yêu cầu chụp: 0 = unity, 1=red boost, 2= blue boost

test_param_color_chỉnh_req=0

test_param_color_chỉnh_req=0.jpg

test_param_color_trueness_req=1

test_param_color_correctness_req=1.jpg (tăng R)

test_param_color_chỉnh_req=2

test_param_color_chỉnh_req=2.jpg (Tăng B)

test_param_exposure_time

Kiểm tra xem thông số android.sensor.exposureTime có được áp dụng hay không.

Các API đã thử nghiệm:

Vượt qua: Mỗi bức ảnh sáng hơn bức ảnh trước.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

Kiểm tra xem thông số android.flash.mode có được áp dụng hay không. Đặt độ phơi sáng ở phía tối theo cách thủ công để có thể thấy rõ đèn flash có đánh sáng hay không và sử dụng sơ đồ tông màu tuyến tính. Kiểm tra tâm của hình xếp để xem liệu có một dải màu lớn được tạo ra hay không để xác minh xem đèn flash có đánh sáng hay không.

Các API đã thử nghiệm:

Vượt qua: Trung tâm của hình ảnh ô xếp có độ dốc lớn nghĩa là đèn flash đã kích hoạt.

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

Kiểm tra để đảm bảo rằng thông số android.noiseReduction.mode được áp dụng chính xác khi được đặt. Chụp ảnh với máy ảnh thiếu sáng. Sử dụng mức tăng tương tự cao để đảm bảo hình ảnh được chụp không bị nhiễu. Chụp ba ảnh, để tắt NR, "nhanh" và "chất lượng cao". Đồng thời chụp ảnh có mức tăng thấp và tắt NR, đồng thời sử dụng phương sai của ảnh này làm đường cơ sở. SNR (Tỷ lệ tín hiệu trên tạp âm) càng cao thì chất lượng hình ảnh càng tốt.

Các API đã thử nghiệm:

Đạt: SNR thay đổi theo các chế độ giảm tiếng ồn khác nhau và hoạt động tương tự như biểu đồ bên dưới.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: TẮT, 1: NHANH, 2: HQ, 3: TỐI THIỂU , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitive

Kiểm tra xem thông số android.sensor.sensitivity có được áp dụng hay không. Thử nghiệm tăng độ nhạy theo 5 bước với độ phơi sáng cố định cho mỗi lần chụp.

Các API đã thử nghiệm:

Vượt qua: Phương tiện RGB của trung tâm 10% trở nên sáng hơn với độ nhạy tăng lên.

test_param_sensitive_iso=0055

test_param_sensitive_iso=0055.jpg

test_param_sensitive_iso=1819

test_param_sensitive_iso=1819.jpg

test_param_sensitive_iso=3583

test_param_sensitive_iso=3583.jpg

test_param_sensitive_iso=5347

test_param_sensitive_iso=5347.jpg

test_param_sensitive_iso=7111

test_param_sensitive_iso=7111.jpg

test_param_sensitive_plot

test_param_sensitive_plot.png

test_param_shading_mode

Kiểm tra xem thông số android.shading.mode có được áp dụng hay không.

Các API đã thử nghiệm:

Đạt: Các chế độ che bóng được chuyển đổi và bản đồ che bóng ống kính được sửa đổi như mong đợi.

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

Kiểm tra xem thông số android.tonemap.mode có được áp dụng hay không. Áp dụng các đường cong sơ đồ giai điệu khác nhau cho từng kênh R, G, B và kiểm tra xem hình ảnh đầu ra có được sửa đổi như mong đợi hay không. Bài kiểm tra này bao gồm hai bài kiểm tra, test1 và test2.

Các API đã thử nghiệm:

Vượt qua:

  • test1: Cả hai hình ảnh đều có sơ đồ tông màu tuyến tính, nhưng n=1 có độ dốc dốc hơn. Kênh G (xanh lục) sáng hơn đối với hình ảnh n=1.
  • test2: Cùng một sơ đồ giai điệu, nhưng độ dài khác nhau. Hình ảnh giống nhau.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitive_boost

Kiểm tra tăng cường độ nhạy sau RAW. Chụp một bộ ảnh RAW và YUV với độ nhạy khác nhau, đăng kết hợp tăng cường độ nhạy RAW và kiểm tra xem giá trị trung bình của pixel đầu ra có khớp với cài đặt yêu cầu hay không.

Các API đã thử nghiệm:

Vượt qua: Hình ảnh RAW trở nên tối hơn khi mức tăng cường tăng lên trong khi hình ảnh YUV không đổi về độ sáng

test_post_raw_sensitive_boost_raw_s=3583_boost=0100

test_post_raw_sensitive_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitive_boost_raw_s=1792_boost=0200

test_post_raw_sensitive_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitive_boost_raw_s=0896_boost=0400

test_post_raw_sensitive_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitive_boost_raw_s=0448_boost=0800

test_post_raw_sensitive_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitive_boost_raw_s=0224_boost=1600

test_post_raw_sensitive_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitive_boost_raw_s=0112_boost=3199

test_post_raw_sensitive_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivevity_boost_raw_plot_means

test_post_raw_sensitivevity_boost_raw_plot_means.png

test_post_raw_sensitive_boost_yuv_s=0112_boost=3199

test_post_raw_sensitive_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitive_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivevity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitive_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivevity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitive_boost_yuv_s=1792_boost=0200

test_post_raw_sensitive_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitive_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivevity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivevity_boost_yuv_plot_means

test_post_raw_sensitivevity_boost_yuv_plot_means.png

test_raw_burst_sensitive

Chụp một tập hợp các hình ảnh thô với mức tăng dần và đo độ nhiễu. Chỉ chụp ảnh thô, trong một loạt ảnh.

Các API đã thử nghiệm:

Vượt qua: Mỗi lần bắn ồn ào hơn lần bắn trước, vì mức tăng đang tăng lên.

Sử dụng phương sai của ô lưới thống kê trung tâm.

test_raw_burst_sensitive_variance

test_raw_burst_sensitivevity_variance.png

test_raw_exposure

Chụp một tập hợp ảnh thô với thời gian phơi sáng tăng dần và đo giá trị pixel.

Các API đã thử nghiệm:

Vượt qua: Tăng ISO (tăng) làm cho các pixel nhạy cảm hơn với ánh sáng, do đó, biểu đồ di chuyển về phía bên trái.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ là 1 mili giây, 10¹ là 10 mili giây, 10⁻¹ là 0,1 mili giây)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitive

Chụp một bộ ảnh thô với độ nhạy tăng dần và đo độ nhiễu (phương sai) ở 10% trung tâm của ảnh. Các bài kiểm tra mà mỗi lần chụp đều ồn hơn lần trước.

Các API đã thử nghiệm:

Vượt qua: Phương sai tăng với mỗi lần bắn.

test_raw_sensitive_variance

test_raw_sensitive_variance.png

test_re process_noise_reduction

Các thử nghiệm mà android.noiseReduction.mode được áp dụng cho các yêu cầu xử lý lại. Chụp ảnh được xử lý lại với máy ảnh thiếu sáng. Sử dụng mức tăng tương tự cao để đảm bảo hình ảnh chụp không bị nhiễu. Chụp ba ảnh được xử lý lại, để tắt NR, "nhanh" và "chất lượng cao". Chụp ảnh được xử lý lại với mức tăng thấp và tắt NR, đồng thời sử dụng phương sai của ảnh này làm đường cơ sở.

Các API đã thử nghiệm:

Vượt qua: NHANH >= TẮT, HQ >= NHANH, HQ >> TẮT

Biểu đồ SNR so với NR_MODE điển hình

Biểu đồ SNR so với NR_MODE điển hình

test_tonemap_sequence

Kiểm tra một chuỗi các bức ảnh với các đường cong sơ đồ tông màu khác nhau. Chụp 3 ảnh thủ công với sơ đồ tông màu tuyến tính. Chụp 3 ảnh thủ công với tonemap mặc định. Tính toán delta giữa mỗi cặp khung hình liên tiếp.

Các API đã thử nghiệm:

Vượt qua: Có 3 khung giống hệt nhau theo sau bởi một bộ 3 khung giống nhau khác.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

Kiểm tra để đảm bảo rằng tất cả các kích thước và định dạng được báo cáo để chụp ảnh đều hoạt động. Sử dụng yêu cầu thủ công với sơ đồ tông màu tuyến tính để YUV và JPEG trông giống nhau khi được mô-đun image_processing_utils chuyển đổi. Hình ảnh không được lưu theo mặc định nhưng có thể được lưu bằng cách bật debug_mode .

Các API đã thử nghiệm:

Đạt: Tất cả các trung tâm hình ảnh đều có chênh lệch RMS (giá trị trung bình bình phương gốc của tín hiệu) tối đa trong các hình ảnh được chuyển đổi RGB với 3% hình ảnh YUV có độ phân giải cao nhất.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

Kiểm tra xem các kích thước và định dạng được báo cáo để chụp ảnh có hoạt động không.

Các API đã thử nghiệm:

Vượt qua: Kiểm tra hoàn thành và trả về các hình ảnh được yêu cầu.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Thử nghiệm chụp một khung hình dưới dạng cả hai đầu ra YUV và JPEG. Sử dụng yêu cầu thủ công với sơ đồ tông màu tuyến tính để YUV và JPEG trông giống nhau khi được mô-đun image_processing_utils chuyển đổi.

Các API đã thử nghiệm:

Đạt: Hình ảnh YUV và JPEG tương tự nhau và có sự khác biệt nhỏ hơn 1% RMS (giá trị trung bình bình phương gốc của tín hiệu).

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Thử nghiệm chụp một khung hình ở cả đầu ra RAW và YUV. Sử dụng yêu cầu thủ công với sơ đồ giai điệu tuyến tính nên RAW và YUV dự kiến ​​sẽ giống nhau. So sánh các giá trị RGB 10% trung tâm của hình ảnh được chuyển đổi RGB. Nhật ký android.shading.mode .

Các API đã thử nghiệm:

Đạt: Hình ảnh YUV và JPEG tương tự nhau và có sự khác biệt nhỏ hơn 3,5% RMS (giá trị trung bình bình phương gốc của tín hiệu).

test_yuv_plus_raw_shading=1_raw.jpgtest_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

test_yuv_plus_raw10

Thử nghiệm chụp một khung hình ở cả đầu ra RAW10 và YUV. Sử dụng yêu cầu thủ công với sơ đồ giai điệu tuyến tính nên RAW và YUV dự kiến ​​sẽ giống nhau. So sánh các giá trị RGB 10% trung tâm của hình ảnh được chuyển đổi RGB. Nhật ký android.shading.mode .

Các API đã thử nghiệm:

Đạt: Hình ảnh RAW10 và YUV tương tự nhau và có chênh lệch RMS (giá trị trung bình bình phương gốc của tín hiệu) dưới 3,5%.

test_yuv_plus_raw10_shading=1_rawtest_yuv_plus_raw10_shading=1_yuv
test_yuv_plus_raw10_shading=1_raw.jpg test_yuv_plus_raw10_shading=1_yuv.jpg

test_yuv_plus_raw12

Thử nghiệm chụp một khung hình ở cả đầu ra RAW12 và YUV. Sử dụng yêu cầu thủ công với sơ đồ giai điệu tuyến tính nên RAW và YUV dự kiến ​​sẽ giống nhau. So sánh các giá trị RGB 10% trung tâm của hình ảnh được chuyển đổi RGB. Nhật ký android.shading.mode .

Các API đã thử nghiệm:

Đạt: Hình ảnh RAW12 và YUV tương tự nhau và có chênh lệch RMS (giá trị trung bình bình phương gốc của tín hiệu) dưới 3,5%.

test_yuv_plus_raw12_shading=1_raw.jpgtest_yuv_plus_raw12_shading=1_yuv.jpg
test_yuv_plus_raw12_shading=1_raw.jpg test_yuv_plus_raw12_shading=1_yuv.jpg

cảnh2_a

scene2_a có ba khuôn mặt với nền màu xám và quần áo màu trung tính. Các khuôn mặt được chọn để có nhiều tông màu da.

cảnh2_a

cảnh2_a

test_auto_flash

Kiểm tra kích hoạt flash tự động trong cảnh tối. Xác minh rằng flash tự động được kích hoạt bằng cách kiểm tra xem tâm của hình xếp có độ dốc lớn hay không. Để kích hoạt đèn nháy tự động, phải tắt máy tính bảng và đèn trong thiết bị kiểm tra. Thử nghiệm tắt máy tính bảng và đèn có thể tự động tắt bằng bộ điều khiển Arduino. Cảnh phải hoàn toàn tối để thử nghiệm hoạt động chính xác. Do đó, phần mở phía sau của máy tính bảng phải được che hoàn toàn bởi máy tính bảng cảnh và phần mở phía trước phải được che bởi khẩu độ và điện thoại DUT để chặn ánh sáng đi lạc vào giàn khoan.

Các API đã thử nghiệm:

Đạt: Trung tâm của hình xếp có độ dốc lớn nghĩa là đèn flash tự động đã kích hoạt.

test_effects

Chụp khung cho các hiệu ứng máy ảnh được hỗ trợ và kiểm tra xem chúng có được tạo chính xác không. Thử nghiệm chỉ kiểm tra các hiệu ứng OFFMONO nhưng lưu hình ảnh cho tất cả các hiệu ứng được hỗ trợ.

Các API đã thử nghiệm:

Đạt: Chụp ảnh cảnh với hiệu ứng OFF và ảnh đơn sắc với hiệu ứng được đặt thành MONO .

test_effects_MONO

test_effects_MONO.jpg

test_format_combos

Kiểm tra các kết hợp khác nhau của các định dạng đầu ra.

Các API đã thử nghiệm:

Vượt qua: Tất cả các kết hợp được chụp thành công.

kiểm tra_jpeg_chất lượng

Kiểm tra chất lượng nén JPEG của máy ảnh. Chuyển chất lượng JPEG qua android.jpeg.quality và đảm bảo Bảng lượng tử hóa thay đổi chính xác.

Các API đã thử nghiệm:

Đạt: Ma trận lượng tử hóa giảm khi chất lượng tăng. (Ma trận đại diện cho hệ số chia.)

kiểm tra_jpeg_chất lượng

Mức trung bình ma trận độ sáng/sắc độ DQT của máy ảnh sau Pixel 4 so với chất lượng JPEG

test_jpeg_quality không thành công

Ví dụ thử nghiệm thất bại

Lưu ý rằng đối với hình ảnh chất lượng rất thấp (jpeg.quality < 50), không có sự gia tăng nén trong ma trận lượng tử hóa.

test_num_faces

Thử nghiệm nhận diện khuôn mặt.

Các API đã thử nghiệm:

Vượt qua: Tìm ba khuôn mặt.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

cảnh2_b

test_auto_per_frame_control

Kiểm tra thuộc tính PER_FRAME_CONTROL cho các yêu cầu chụp tự động.

Các API đã thử nghiệm:

Vượt qua: Tất cả các thuộc tính PER_FRAME_CONTROL đều có mặt.

test_auto_per_frame_control_frame_1

test_auto_per_frame_control_frame_1.jpg

test_auto_per_frame_control_frame_10

test_auto_per_frame_control_frame_10.jpg

test_auto_per_frame_control_frame_29

test_auto_per_frame_control_frame_29.jpg

test_auto_per_frame_control_plot

test_auto_per_frame_control_plot.png

test_num_faces

Kiểm tra khả năng nhận diện khuôn mặt với sự đa dạng tông màu da tăng lên trong các cảnh khuôn mặt.

Các API đã thử nghiệm:

Vượt qua: Tìm 3 khuôn mặt.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpg_capture_sameness

Chụp hai ảnh bằng định dạng YUV và JPEG phổ biến lớn nhất với cùng tỷ lệ khung hình như định dạng JPEG lớn nhất không vượt quá độ phân giải 1920x1440. Đặt jpeg.quality thành 100 và nắm bắt yêu cầu bề mặt kép. Chuyển đổi cả hai hình ảnh thành mảng RGB và tính toán chênh lệch bình phương trung bình gốc 3D (RMS) giữa hai hình ảnh.

Các API đã thử nghiệm:

Đạt: Hình ảnh YUV và JPEG tương tự nhau và có sự khác biệt nhỏ hơn 1% RMS (giá trị trung bình bình phương gốc của tín hiệu).

cảnh2_c

test_num_faces

Kiểm tra khả năng nhận diện khuôn mặt với sự đa dạng tông màu da tăng lên trong các cảnh khuôn mặt.

Các API đã thử nghiệm:

Vượt qua: Tìm 3 khuôn mặt.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

Kiểm tra độ trễ chụp ảnh JPEG cho lớp hiệu suất S như được chỉ định trong phần 2.2.7.2 Máy ảnh trong CDD.

Đạt: PHẢI có độ trễ chụp ảnh JPEG của camera2 < 1000 mili giây đối với độ phân giải 1080p được đo bằng Kiểm tra hiệu suất máy ảnh CTS trong điều kiện ánh sáng ITS (3000K) cho cả hai máy ảnh chính.

test_camera_launch_perf_class

Kiểm tra độ trễ khởi chạy máy ảnh đối với lớp hiệu suất S như đã chỉ định trong phần 2.2.7.2 Máy ảnh trong CDD.

Đạt: PHẢI có độ trễ khởi động camera2 (mở camera cho khung hình xem trước đầu tiên) < 600 mili giây được đo bằng Kiểm tra hiệu suất camera CTS trong điều kiện ánh sáng ITS (3000K) cho cả hai camera chính.

cảnh2_d

test_num_faces

Kiểm tra khả năng nhận diện khuôn mặt với sự đa dạng tông màu da tăng lên trong các cảnh khuôn mặt.

Các API đã thử nghiệm:

Vượt qua: Tìm 3 khuôn mặt.

cảnh2_e

test_continuity_picture

50 khung hình có độ phân giải VGA được chụp với cài đặt yêu cầu chụp đầu tiên android.control.afMode = 4 (CONTINUOUS_PICTURE).

Các API đã thử nghiệm:

Đạt: Hệ thống 3A ổn định khi kết thúc quá trình chụp 50 khung hình.

test_num_faces

Kiểm tra khả năng nhận diện khuôn mặt với sự đa dạng tông màu da tăng lên trong các cảnh khuôn mặt.

Các API đã thử nghiệm:

Vượt qua: Tìm 3 khuôn mặt.

cảnh3

Scene3 sử dụng biểu đồ ISO12233 và hầu hết các thử nghiệm đều sử dụng phương pháp trích xuất biểu đồ để tìm biểu đồ trong cảnh. Vì lý do này, hầu hết các hình ảnh được lưu không có viền như hình ảnh cho cảnh 1, 2 hoặc 4, mà chỉ có biểu đồ.

kiểm tra_3a_consistency

Kiểm tra tính nhất quán 3A.

Các API đã thử nghiệm:

Đạt: 3A hội tụ cho độ phơi sáng, độ lợi, awb (cân bằng trắng tự động) và fd (khoảng cách lấy nét) ba lần trong phạm vi dung sai.

test_edge_enhancement

Kiểm tra xem thông số android.edge.mode có được áp dụng chính xác không. Chụp ảnh không xử lý lại cho từng chế độ cạnh và trả về độ sắc nét của hình ảnh đầu ra và siêu dữ liệu kết quả chụp. Xử lý yêu cầu chụp với chế độ cạnh, độ nhạy, thời gian phơi sáng, khoảng cách lấy nét và tham số bề mặt đầu ra nhất định.

Pass: Chế độ HQ (2) nét hơn chế độ OFF (0). Chế độ FAST (1) sắc nét hơn chế độ OFF . Chế độ HQ nét hơn hoặc bằng chế độ FAST .

Các API đã thử nghiệm:

Thông số camera bị ảnh hưởng:

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (chế độ nhanh)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (high quality mode)

test_flip_mirror

Tests if image is properly oriented as per CDD section 7.5.2 Front-Facing Camera [C-1-5] .

Mirrored, flipped, or rotated images can be identified by the diamond feature near the center.

Pass: Image isn't flipped, mirrored or rotated.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_lens_movement_reporting

Tests if the lens movement flag is properly reported. Captures a burst of 24 images with the first 12 frames at the optimum focus distance (as found by 3A) and the last 12 frames at the minimum focus distance. Around frame 12, the lens moves causing the sharpness to drop. The sharpness eventually stabilize as the lens moves to the final position. The lens movement flag should be asserted in all frames where the sharpness is intermediate to sharpness in the first 10 frames with the lens stationary at optimum focal distance, and the final 10 frames where the lens is stationary in the minimum focal distance. The exact frame the lens moves isn't important: what is checked is that the movement flag is asserted when the lens is moving.

APIs tested:

Pass: Lens movement flag is True in the frame with sharpness change.

test_reprocess_edge_enhancement

Tests if supported reprocess methods for edge enhancement work properly. Processes a capture request with a given reprocess edge mode and compares different modes to capture with reprocess edge modes disabled.

APIs tested:

Pass: Sharpness for the different edge modes is correct. HQ (mode 2) is sharper than OFF (mode 0), and improvement between different modes is similar.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

scene4

Scene4 consists of a black circle on a white background inside a square.

scene4

scene4

test_aspect_ratio_and_crop

Takes pictures of a circle inside of a square over all formats. Verifies that the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).

APIs tested:

Pass: Images aren't stretched, the center of images don't differ by more than 3%, and the maximum possible FOV (field of view) is preserved.

test_multi_camera_alignment

Tests the multi camera system parameters related to camera spacing. Using the multi-camera physical sub-cameras, takes a picture with one of the physical cameras. Finds the circle center. Projects the circle center to the world coordinates for each camera. Compares the difference between the cameras' circle centers in world coordinates. Reprojects the world coordinate back to pixel coordinates and compares against originals as a validity check. Compares the circle sizes checking if the focal lengths of the cameras are different.

APIs tested:

Pass: Focal lengths and circles sizes are consistent.

test_preview_stabilization_fov

Checks the supported preview sizes to ensure the FoV is cropped appropriately. The test captures two videos, one with preview stabilization ON , and another with preview stabilization OFF . A representative frame is selected from each video, and analyzed to ensure that the FoV changes in the two videos are within spec.

APIs tested:

Pass: The circle aspect ratio remains about constant, the center location of the circle remains stable, and the size of circle changes no more that 20%. ie the FOV changes at most 20%

test_video_aspect_ratio_and_crop

Takes videos of a circle inside of a square over all video formats. Extracts the key frames, and verifies the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).

APIs tested:

Pass: Video frames aren't stretched, the center of frames don't differ by more than 3%, and the maximum possible FoV (field of view) is preserved.

scene5/diffuser

test_lens_shading_and_color_uniformity

Tests that the lens shading correction is applied appropriately, and color of a monochrome uniform scene is evenly distributed. Performs this test on a YUV frame with auto 3A. Lens shading is evaluated based on the y channel. Measures the average y value for each sample block specified, and determines pass or fail by comparing with the center y value. The color uniformity test is evaluated in r/g and b/g space.

APIs tested:

Pass: At the specified radius of the image, the variance of r/g and b/g value must be less than 20% to pass the test.

scene6

Scene6 is a grid of small circles with a square in one corner to indicate orientation. The small circles are needed to test zoom function over a large range.

scene6

scene6

test_zoom

Tests the camera zoom behavior. Takes captures over the zoom range and checks if the circles get bigger as the camera zooms in.

APIs tested:

Pass: Relative size of captured circle is accurate against requested zoom ratio to ensure camera is zooming correctly.

test_zoom

test_zoom to find the contour of the circle closest to the center.

sensor_fusion

Sensor fusion tests require specific phone movement in front of a checkerboard pattern. The sensor_fusion tests can be automated with the Sensor Fusion Box .

checkerboard

Image of checkerboard

test_multi_camera_frame_sync

Tests that frame timestamps captured by logical camera are within 10 ms by computing angles of squares within the checkerboard to determine the timestamp.

APIs tested:

Pass: Angle between images from each camera doesn't change appreciably as phone is rotated.

test_preview_stabilization

Tests that stabilized preview video rotates less than gyroscope.

APIs tested:

Pass: Max angle rotation over frames is less than 70% of gyroscope rotation.

The following are sample videos with and without stabilization.

  • Sample video with stabilization

  • Sample video without stabilization

    test_sensor_fusion

Tests the timestamp difference between the camera and the gyroscope for AR and VR applications. Phone is rotated 90 degrees 10 times in front of the checkerboard pattern. Motion is about 2 s round trip. This test is skipped if no gyroscope is included or if the timestamp source REALTIME parameter is not enabled.

The test_sensor_fusion test generates a number of plots. The two most important plots for debugging are:

  • test_sensor_fusion_gyro_events : Shows the gyroscope events for the phone during the test. Movement in the x and y direction implies the phone isn't securely mounted on the mounting plate, reducing the probability of the test passing. The number of cycles in the plot depends on the write speed for saving frames.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : Shows the alignment of the gyroscope and camera events. This plot must show matching movement between camera and gyroscope to +/-1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

APIs tested:

Pass: Camera and gyroscope timestamps' offset is less than 1 ms as per CDD section 7.3.9 High Fidelity Sensors [C-2-14] .

test_video_stabilization

Tests that stabilized video rotates less than gyroscope.

APIs tested:

Pass: Max angle rotation over frames is less than 60% of gyroscope rotation.

The following are sample videos with and without stabilization.

  • Sample video with stabilization

  • Sample video without stabilization