What Is Camera Test On Android
This page provides a comprehensive list of the tests under the Photographic camera Image Examination Suite (ITS), which is part of the Android Compatibility Test Suite (CTS) Verifier. ITS tests are functional tests, meaning that they exercise non mensurate prototype quality, merely that all of the advertised camera functions are working as expected. This document lets developers and testers understand what the individual tests practise and how to debug exam failures.
Tests are grouped past scene every bit follows:
- scene0: Capture metadata, jitter, gyroscope, vibration
- scene1: Exposure, sensitivity, EV bounty, YUV vs JPEG/RAW
- scene2: Face detection
- scene3: Edge enhancement, lens movement
- scene4: Aspect ratio, cropping, field-of-view
- scene5: Lens shading
- scene6: Zoom
- sensor_fusion: Camera/gyroscope timing offset
See individual sections for a description of each scene.
scene0
Scene0 tests require no specific scene information. Even so, the phone must be stationary for gyroscope and vibration testing.
test_burst_capture
Verifies that the entire capture pipeline can keep upwardly with the speed of fullsize capture and CPU time.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE
Pass: Captures a burst of full size images and the camera is fast enough to avoid timeout.
test_capture_result_dump
Tests that a capture result is returned from a manual capture so dumps it.
APIs tested:
-
android.hardware.camera2.CaptureResult
Pass: Completes capture and dumps the capture results.
test_gyro_bias
Tests if the gyro has stable output when the device is stationary. Information is plotted equally an average of twenty information points.
APIs tested:
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_GYROSCOPE
Laissez passer: The gyro reading's delta is less than 0.01 over fourth dimension.
test_gyro_bias_plot.png
test_jitter
Measures jitter in camera timestamps.
APIs tested:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Pass: There'southward at to the lowest degree a xxx ms delta between frames.
test_jitter_plot.png (Note the small y-axis range. Jitter is really small in this plot.)
test_metadata
Tests the validity of metadata entries. Looks at capture results and at the camera characteristics objects. This test uses auto_capture_request
exposure and proceeds values considering image content isn't of import.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Laissez passer: Hardware level, rollingShutterSkew
, frameDuration
tags, timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, FOV, hyperfocal distance are nowadays and have valid values.
test_param_sensitivity_burst
Tests that the android.sensor.sensitivity
parameter is applied properly in outburst. Inspects the output metadata but.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Pass: Output data has an error tolerance of less than 0.2%.
test_read_write
Tests that the device writes the correct exposure and proceeds values by reading back the capture metadata.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Pass: Read and write values match across all shots.
test_sensor_events
Tests that device queries and prints out sensor events for devices that annunciate sensor fusion back up. The sensors expected are accelerometer, gyroscope, and magnetometer. This examination only works if the screen is on, meaning the device isn't in standby mode.
APIs tested:
-
android.hardware.SensorEventListener
-
android.hardware.SensorEvent
Pass: Events for each sensor are received.
test_solid_color_test_pattern
Tests that solid colour test patterns are generated properly for camera muting. If photographic camera muting is supported, solid color test patterns must be supported. If camera muting is not supported, solid color examination patterns are only tested if the capability is advertised.
If RAW images are supported, colour assigment is tested also. The colors tested are black, white, red, blueish, and green. For cameras that do not back up RAW images, merely black is tested.
APIs tested:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Laissez passer: Solid test patterns supported are the correct colour and there is low variance in the image.
test_test_pattern
Tests the android.sensor.testPatternMode
parameter to capture frames for each valid test pattern and checks that the frames are generated correctly for solid colors and color confined. This exam includes the following steps:
- Captures images for all supported test patterns.
- Performs a uncomplicated correctness check for solid color test design and color bars.
APIs tested:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Pass: Supported test patterns are generated correctly.
test_test_patterns_2.jpg
test_tonemap_curve
Tests conversion of test blueprint from RAW to YUV with linear tonemap. This test requires android.sensor.testPatternMode = 2
(COLOR_BARS) to generate a perfect prototype pattern for tonemap conversion. Ensures pipeline has proper color outputs with linear tonemap and ideal image input (relies on test_test_patterns
).
APIs tested:
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass: The YUV and the RAW look similar to each other.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
Tests if epitome and motion sensor events are in the same time domain.
APIs tested:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.hardware.Sensor#TYPE_GYROSCOPE
Pass: Move timestamps are between the two paradigm timestamps.
test_vibration_restriction
Tests if the device'south vibration is functioning every bit expected.
APIs tested:
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.os.Vibrator
-
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
Pass: The device doesn't vibrate when muted by the camera audio restriction API.
scene1
scene1 is a gray chart. The grayness chart must cover the center xxx% of the photographic camera field of view. The gray nautical chart is expected to challenge 3A (machine exposure, auto white balance, machine focus) moderately as the center region has no features. However, the capture asking specifies the entire scene which includes sufficient features for 3A to converge.
RFoV cameras tin can be tested in the WFoV or the RFoV test rig. If a RFoV photographic camera is tested in the WFoV test rig, the chart is scaled by ⅔ to ensure some boundaries for the gray chart in the FoV to assistance 3A converge.
scene1: Full size chart (left). ⅔ scaled chart (right).
test_3a
Tests the convergence of 3A with a moderately challenging target.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Laissez passer: 3A converges and the returned 3A values are valid.
test_ae_af
Tests the 3A auto exposure (AE) and car focus (AF) algorithms individually.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Pass: 3A converges and the returned 3A values are legal.
test_ae_precapture_trigger
Tests the AE state motorcar when using the precapture trigger. Captures v manual requests with AE disabled. The last request has an AE precapture trigger, which should be ignored because AE is disabled.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Pass: AE converges.
test_auto_vs_manual
Tests that captured automobile and transmission shots expect the same.
APIs tested:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Laissez passer: Manual white residuum gains and transform reported in each capture result match with the auto white balance guess
from camera's 3A algorithm.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
test_black_white
Tests that the device produces full black and white images. Takes two captures, the first with extremely low gain and curt exposure, which results in a black photo, and the second with extremely loftier proceeds and long exposure, which results in a white photo.
APIs tested:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Laissez passer: Produces blackness and white images.
test_black_white_plot_means.png
test_burst_sameness_manual
Takes 5 bursts of l images with manual capture setting and checks that they're all identical. This test tin exist used to identify if there are sporadic frames that are processed differently or have artifacts.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Pass: Images are identical visually and in RGB values.
Fail: Shows a spike or drib of the RGB average nautical chart at the beginning of each outburst
- Tolerance is three% for
first_API_level
< 30 - Tolerance is 2% for
first_API_level
>= xxx
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
Tests that valid data comes back in CaptureResult
objects. Does an auto, manual, and machine capture.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass: Metadata is valid for all captures and the manual settings don't leak into the second auto capture. Plots out the lens shading correction for the captures.
test_capture_result_plot_lsc_auto_ch0.png
test_channel_saturation
Tests that RGB channels saturate evenly to eliminate tinting in saturated regions of prototype.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Laissez passer: Saturated channels accept RGB values of [255, 255, 255] with a margin of error of less than one% deviation.
test_channel_saturation.jpg
test_crop_region_raw
Tests that the RAW streams aren't croppable.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Pass: YUV images become center-cropped but not RAW images.
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
Tests that ingather regions work. Takes a full image and creates patches of 5 different regions (corners and eye.) Takes images with ingather fix for the 5 regions. Compares the patch and the crop image values.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Pass: Epitome of the cropped region matches the patch that corresponds to the crop image.
test_dng_noise_model
Verifies that the DNG raw model parameters are correct. The plot depicts the measured variance of a center patch of the grey carte du jour in raw shots captured over a range of sensitivities, and compares these values with the variance that is expected at each sensitivity by the DNG noise model in the camera HAL (based on the O,S parameters returned in the capture outcome objects). For a more details on the DNG noise model, download the following certificate on the DNG Noise Model.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Laissez passer: DNG raw model parameters are correct. Expected RGB values match that of the actual RGB values measured.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
Tests that the exposure value (EV) compensation is applied. The test increases exposure in 8 steps, and checks measured brightness versus expected brightness. Expected values are calculated from image effulgence of image with no EV compensation applied and the expected value will saturate if the calculated values exceed the actual image value range. Exam fails if the expected values and measured values don't match or images overexpose inside v steps.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Laissez passer: Images show increasing exposure without overexposing within five steps.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
Tests that the EV compensation is applied by increasing exposure gradually. Images increase exposure gradually, but doesn't overexpose every bit in the test_ev_compensation_advanced
examination.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Pass: Captures increment in luma.
test_ev_compensation_basic.png
test_exposure
Tests that a constant exposure is achieved as ISO and exposure fourth dimension vary. Takes a serial of shots that have ISO and exposure time called to balance each other. Results should have the aforementioned brightness, simply over the sequence the image should get noisier. Verifies sample pixel mean values are close to each other. Ensures that the images aren't clamped to 0 or i (which would make them look like flat lines).
APIs tested:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Pass: Images have the aforementioned brightness, but get noisier with college ISO. RGB planes are flat with constant ISO exposure.
test_exposure_plot_means.png
test_jpeg
Tests that converted YUV images and device JPEG images look the same. Test takes the middle 10% of the image and calculates the RGB value, and verifies that they match.
APIs tested:
-
android.graphics.ImageFormat#JPEG
Pass: The boilerplate RGB departure between each paradigm is less than iii%.
test_latching
Tests that settings (exposure and gain) latch on the right frame for FULL
and LEVEL_3
cameras. Takes a series of shots using back-to-back requests, varying the capture request parameters between shots. Checks that the images have the expected backdrop.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
Pass: Images [2, three, 6, eight, x, 12, 13] accept increased ISO or exposure and show up with college RGB ways on test_latching_plot_means.png
.
test_latching_i=00.jpg | test_latching_i=01.jpg | test_latching_i=02.jpg | |
test_latching_i=03.jpg | test_latching_i=04.jpg | test_latching_i=05.jpg | |
test_latching_i=06.jpg | test_latching_i=07.jpg | test_latching_i=08.jpg | |
test_latching_i=09.jpg | test_latching_i=x.jpg | test_latching_i=11.jpg | |
test_latching_i=12.jpg |
test_latching_plot_means.png
test_linearity
Tests that device processing can be inverted to linear pixels. Captures a sequence of shots with the device pointed at a uniform target.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass: R, One thousand, B values must increase linearly with increased sensitivity.
test_linearity_plot_means.png
test_locked_burst
Tests 3A lock and YUV burst (using auto setting). This test is designed to laissez passer fifty-fifty on limited devices that don't have MANUAL_SENSOR
or PER_FRAME_CONTROLS
. The test checks YUV paradigm consistency while the frame rate check is in CTS.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Pass: Captures wait consistent.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_multi_camera_match
Tests to see if multi cameras on devices give similar RGB values for a grey patch.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#LENS_FOCAL_LENGTH
Pass: Dissimilar cameras produce similar RGB values for the same gray patch.
test_multi_camera+match_yuv_fl=four.38.jpg
test_param_color_correction
Tests that the android.colorCorrection.*
parameters are applied when set. Takes shots with different transform and gain values, and tests that they look correspondingly unlike. The transform and gains are chosen to make the output increasingly red or blue. Uses a linear tonemap. Tone mapping is a technique used in image processing to map one set of colors to another to guess the appearance of high-dynamic-range images in a medium that has a more than limited dynamic range.
APIs tested:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Pass: R and B values boost co-ordinate to transformation.
test_param_color_correction_plot_means.png
*The 10-centrality is the capture requests: 0 = unity, i=red heave, ii= blue boost
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (R heave)
test_param_color_correction_req=two.jpg (B boost)
test_param_exposure_time
Tests that the android.sensor.exposureTime
parameter is applied.
APIs tested:
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
Pass: Each shot is brighter than the previous shot.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
test_param_flash_mode
Tests that the android.flash.way
parameter is practical. Manually sets the exposure to be on the dark side, and then that it is obvious whether the flash fired or not, and uses a linear tonemap. Checks the centre with the tile paradigm to see if there's a large gradient that'due south created to verify whether the flash fired.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
-
android.hardware.camera2.CaptureResult#FLASH_MODE
-
android.hardware.camera2.CaptureResult#FLASH_STATE
Pass: The middle of the tile prototype has a large gradient pregnant that the flash fired.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.jpg
test_param_flash_mode_2.jpg
test_param_flash_mode_2_tile.jpg
test_param_noise_reduction
Tests that the android.noiseReduction.fashion
parameter is applied correctly when set. Captures images with the camera dimly lit. Uses a high analog gain to ensure the captured paradigm is noisy. Captures three images, for NR off, "fast", and "high quality". Too captures an image with low gain and NR off, and uses the variance of this as the baseline. The college the SNR (Signal to Noise Ratio), the improve the epitome quality.
APIs tested:
-
android.hardware.camera2.CaptureRequest#NOISE_REDUCTION_MODE
Laissez passer: SNR varies with dissimilar noise reduction modes and behaves similarly as the graph below.
test_param_noise_reduction_plot_SNRs.png
0: OFF, 1: FAST, two: HQ, iii: MIN , 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_sensitivity
Tests that the android.sensor.sensitivity
parameter is applied. The test increases the sensitivity in five steps with stock-still exposure for each shot.
APIs tested:
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Laissez passer: RGB means of center x% gets brighter with increased sensitivity.
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
test_param_shading_mode
Tests that the android.shading.mode
parameter is applied.
APIs tested:
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Pass: Shading modes are switched and the lens shading maps are modified as expected.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
Tests that the android.tonemap.manner parameter is applied. Applies different tonemap curves to each R, Yard, B channel, and checks that the output images are modified as expected. This examination consists of two tests, test1 and test2.
APIs tested:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Laissez passer:
- test1: Both images have a linear tonemap, simply n=one has a steeper gradient. The G (green) channel is brighter for the north=one prototype.
- test2: Same tonemap, merely different length. Images are the same.
test_post_raw_sensitivity_boost
Checks mail RAW sensitivity boost. Captures a set of RAW and YUV images with dissimilar sensitivity, posts RAW sensitivity boost combination and checks if the output pixel mean matches asking settings.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Pass: RAW images get darker as boost increases while YUV images stay constant in brightness
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensitivity
Captures a set of raw images with increasing gains and measures the noise. Captures raw-only, in a burst.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Pass: Each shot is noisier than the previous shot, as the gain is increasing.
Uses the variance of the center stats grid jail cell.
test_raw_burst_sensitivity_variance.png
test_raw_exposure
Captures a gear up of raw images with increasing exposure fourth dimension and measures the pixel values.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Laissez passer: Increasing the ISO (proceeds) makes the pixels more sensitive to lite, and then the plot moves towards the left.
test_raw_exposure_s=55.png
(x⁰ is 1 ms, x¹ is 10 ms, 10⁻¹ is 0.1 ms)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensitivity
Captures a set of raw images with increasing sensitivities and measures the noise (variance) in the heart 10% of image. Tests that each shot is noisier than the previous 1.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Pass: Variance increases with each shot.
test_raw_sensitivity_variance.png
test_reprocess_noise_reduction
Tests that android.noiseReduction.manner
is applied for reprocessing requests. Captures reprocessed images with the camera dimly lit. Uses a high analog gain to ensure the capture image is noisy. Captures 3 reprocessed images, for NR off, "fast", and "high quality". Captures a reprocessed image with low gain and NR off, and uses the variance of this as the baseline.
APIs tested:
-
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Pass: FAST >= OFF, HQ >= FAST, HQ >> OFF
Typical SNR vs NR_MODE plot
test_tonemap_sequence
Tests a sequence of shots with different tonemap curves. Captures 3 manual shots with a linear tonemap. Captures 3 manual shots with default tonemap. Computes the delta between each consecutive frame pair.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#TONEMAP_AVAILABLE_TONE_MAP_MODES
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_GAMMA
Pass: There are iii identical frames followed by a different set of 3 identical frames.
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=ane.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
Tests that all reported sizes and formats for prototype capture work. Uses a manual request with a linear tonemap so that the YUV and JPEG look the aforementioned when converted by the its.paradigm module.
APIs tested:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Pass: All image centers have a max RMS (root-hateful-square value of a point) difference in RGB converted images with 3% of highest resolution YUV image.
test_yuv_jpeg_all.png
test_yuv_plus_dng
Tests that the reported sizes and formats for prototype capture work.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Pass: Exam completes and returns the images requested.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
Tests capturing a single frame equally both YUV and JPEG outputs. Uses a transmission request with a linear tonemap so that the YUV and JPEG look the same (when converted by the its.image
module.)
APIs tested:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Pass: YUV and JPEG images are similar and accept less than i% RMS (root-mean-square value of a signal) difference.
test_yuv_plus_raw
Tests capturing a single frame as both RAW and YUV outputs. Uses a manual asking with linear tonemap so RAW and YUV are expected to be the same. Compares RGB converted images' centre 10% RGB values. Logsandroid.shading.mode
.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass: YUV and JPEG images are similar and have less than 3.5% RMS (root-mean-foursquare value of a betoken) difference.
test_yuv_plus_raw10
Tests capturing a single frame as both RAW10 and YUV outputs. Uses a manual request with linear tonemap and so RAW and YUV are expected to be the aforementioned. Compares RGB converted images' middle 10% RGB values. Logsandroid.shading.style
.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW10
Pass: RAW10 and YUV images are similar and have less than 3.5% RMS (root-mean-foursquare value of a point) difference.
test_yuv_plus_raw12
Tests capturing a single frame as both RAW12 and YUV outputs. Uses a transmission asking with linear tonemap so RAW and YUV are expected to be the same. Compares RGB converted images' center 10% RGB values. Logs android.shading.mode
.
APIs tested:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW12
Pass: RAW12 and YUV images are similar and accept less than iii.5% RMS (root-mean-foursquare value of a bespeak) difference.
scene2_a
scene2_a has iii faces with a grayness groundwork and neutral clothing. The faces are chosen to have a broad range of pare tones.
scene2_a
test_effects
Captures frame for supported camera effects and checks if they are generated correctly. The test but checks effects OFF
and MONO
, only saves images for all supported furnishings.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Pass: Captures the scene epitome with furnishings OFF
and a monochrome image with effects set to MONO
.
test_effects_MONO.jpg
test_faces
Tests face detection. Epitome is saved, but box and landmark information is tabulated in test_faces_stdout.txt
.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Laissez passer: Detects at to the lowest degree one face from the image.
test_format_combos
Tests different combinations of output formats.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
-
android.hardware.camera2.CameraCaptureSession#captureBurst()
Pass: All the combinations are successfully captured.
test_jpeg_quality
Tests the camera JPEG compression quality. Step JPEG qualities through android.jpeg.quality
and ensures Quantization Tables change correctly.
APIs tested:
-
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
-
android.graphics.ImageFormat#JPEG
Laissez passer: Quantization matrix decreases with quality increase. (Matrix represents the division factor.)
Pixel 4 rear camera luma/blush DQT matrix averages vs JPEG quality
Failed examination example
Notation that for very depression quality images (jpeg.quality < 50), there is no increment in compression in the quantization matrix.
test_num_faces
Tests face up detection.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Laissez passer: Finds three faces.
test_num_faces_fd_mode_1.jpg
scene2_b
test_auto_per_frame_control
Tests PER_FRAME_CONTROL
properties for auto capture requests.
APIs tested:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Pass: All of the PER_FRAME_CONTROL
properties are present.
test_auto_per_frame_control_frame_1.jpg
test_auto_per_frame_control_frame_10.jpg
test_auto_per_frame_control_frame_29.jpg
test_auto_per_frame_control_plot.png
test_num_faces
Tests face detection with increased skin tone diversity in face scenes.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Pass: Finds 3 faces.
test_num_faces_fd_mode_1.jpg
scene2_c
test_num_faces
Tests face up detection with increased skin tone diversity in face scenes.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Laissez passer: Finds 3 faces.
test_num_faces_fd_mode_1.jpg
test_jpeg_capture_perf_class
Tests JPEG capture latency for the S functioning course as specified in department ii.ii.7.2 Camera in the CDD.
Pass: MUST have camera2 JPEG capture latency < 1000ms for 1080p resolution as measured by the CTS camera PerformanceTest under ITS lighting conditions (3000K) for both main cameras.
test_camera_launch_perf_class
Tests photographic camera launch latency for the South performance class as specified section 2.2.7.2 Camera in the CDD.
Laissez passer: MUST have camera2 startup latency (open up photographic camera to first preview frame) < 600ms as measured by the CTS camera PerformanceTest under ITS lighting weather condition (3000K) for both primary cameras.
scene2_d
test_num_faces
Tests face detection with increased skin tone variety in face scenes.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Laissez passer: Finds 3 faces.
scene2_e
test_continuous_picture
50 VGA resolution frames are captured with the capture request first setting android.control.afMode = 4 (CONTINUOUS_PICTURE).
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_CAPTURE_INTENT
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Pass: 3A system settles at the terminate of a 50-frame capture.
test_num_faces
Tests face detection with increased peel tone diverseness in face scenes.
APIs tested:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Pass: Finds 3 faces.
scene3
Scene3 uses the ISO12233 chart, and most tests use a chart extractor method to find the chart in the scene. For this reason, most of the saved images don't accept borders like the images for scenes 1, 2 or 4, simply merely the nautical chart.
test_3a_consistency
Tests for 3A consistency.
APIs tested:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Pass: 3A converges for exposure, gain, awb (automobile white balance), and fd (focus altitude) three times inside tolerance.
test_edge_enhancement
Tests that the android.edge.mode
parameter is applied correctly. Captures non-reprocess images for each edge mode and returns sharpness of the output paradigm and the capture issue metadata. Processes a capture request with a given edge fashion, sensitivity, exposure fourth dimension, focus distance, and output surface parameter.
Laissez passer: Fast mode isn't sharper than HQ (high quality) manner.
APIs tested:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
Impacted camera parameters:
-
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=i.jpg (fast mode)
test_edge_enhancement_edge=2.jpg (high quality mode)
test_flip_mirror
Tests if image is properly oriented as per CDD section 7.5.ii Front end-Facing Camera [C-1-5].
Mirrored, flipped, or rotated images tin can be identified by the diamond feature near the heart.
Pass: Epitome isn't flipped, mirrored or rotated.
test_flip_mirror_scene_patch.jpg
test_lens_movement_reporting
Tests if the lens move flag is properly reported. Captures a burst of 24 images with the outset 12 frames at the optimum focus distance (as found by 3A) and the final 12 frames at the minimum focus altitude. Around frame 12, the lens moves causing the sharpness to drop. The sharpness somewhen stabilize as the lens moves to the final position. The lens move flag should be asserted in all frames where the sharpness is intermediate to sharpness in the outset 10 frames with the lens stationary at optimum focal altitude, 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 motility flag is asserted when the lens is moving.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Laissez passer: Lens motility flag is True
in the frame with sharpness change.
test_lens_position
Tests if the focus position is properly reported for moving lenses.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_HYPERFOCAL_DISTANCE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
Pass: Right focus positions are reported.
test_reprocess_edge_enhancement
Returns sharpness of the output images and the capture event metadata. Processes a capture request with a given border mode, sensitivity, exposure time, focus distance, output surface parameter, and reprocess format.
APIs tested:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Pass: Sharpness for the different border modes is correct.
scene4
Scene4 consists of a black circumvolve on a white background within a square.
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 go on the circumvolve in center, and the circle size doesn't change for a constant format or with unlike resolution (field of view check).
APIs tested:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Pass: Images aren't stretched, the center of images don't differ past more iii%, and the maximum possible FOV (field of view) is preserved.
test_multi_camera_alignment
Tests the multi camera system parameters related to photographic camera spacing. Using the multi-camera physical sub-cameras, takes a moving-picture show with one of the physical cameras. Finds the circle center. Projects the circle middle to the globe coordinates for each photographic camera. Compares the difference betwixt the cameras' circle centers in world coordinates. Reprojects the world coordinate dorsum to pixel coordinates and compares confronting originals every bit a validity check. Compares the circle sizes checking if the focal lengths of the cameras are unlike.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
-
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Pass: Focal lengths and circles sizes are consistent.
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 neglect past comparing with the center y value. The color uniformity test is evaluated in r/g and b/m space.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Pass: At the specified radius of the image, the variance of r/g and b/g value must exist less than 20% to pass the test.
scene6
Scene6 is a grid of pocket-size circles with a square in one corner to indicate orientation. The small circles are needed to test zoom function over a big range.
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Pass: Relative size of captured circle is accurate confronting requested zoom ratio to ensure camera is zooming correctly.
test_zoom to detect the contour of the circle closest to the center.
scene_change
test_scene_change
The scene alter makes use of the tablet displaying a face scene and so turns the tablet on and off to create a scene change. The scene reuses scene2_e, but is in a divide scene because of the required tablet command. Additionally, for transmission testing, the scene change can exist accomplished by waving your hand in front of the photographic camera.
APIs tested:
-
android.hardware.camera2.CaptureResult#CONTROL_AF_SCENE_CHANGE
Pass: Theandroid.command.afSceneChange
flag is asserted with a scene modify.
sensor_fusion
Sensor fusion tests crave specific telephone movement in front of a checkerboard design. The sensor_fusion
tests tin be automated with the Sensor Fusion Box.
Image of checkerboard
test_multi_camera_frame_sync
Tests that frame timestamps captured by logical camera are within 10 ms past computing angles of squares within the checkerboard to determine the timestamp.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Pass: Angle between images from each photographic camera doesn't change appreciably as phone is rotated.
test_sensor_fusion
Tests the timestamp deviation between the photographic camera and the gyroscope for AR and VR applications. Telephone is rotated xc degrees 10 times in front of the checkerboard pattern. Motion is about 2 south circular trip. This test is skipped if no gyroscope is included or if the REALTIME
parameter is not enabled.
The test_sensor_fusion
exam generates a number of plots. The ii most important plots for debugging are:
-
test_sensor_fusion_gyro_events
: Shows the gyroscope events for the phone during the test. Motility in the x and y management implies the phone isn't securely mounted on the mounting plate, reducing the probability of the exam passing. The number of cycles in the plot depends on the write speed for saving frames.test_sensor_fusion_gyro_events
-
test_sensor_fusion_plot_rotations
: Shows the alignment of the gyroscope and camera events. This plot must show matching motility between camera and gyroscope to +/-one ms.test_sensor_fusion_plot_rotations
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LENS_FACING
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Pass: Photographic camera and gyroscope timestamps' starting time is less than i ms as per CDD section 7.iii.9 High Fidelity Sensors [C-2-14].
Source: https://source.android.com/compatibility/cts/camera-its-tests
Posted by: friersonjustitingich1966.blogspot.com
0 Response to "What Is Camera Test On Android"
Post a Comment