Pixel 3a

Android 12 (API 32)

Google · Qualcomm SDM670

CameraBench
Codec maxima
HEVCverified120 Mbps
AVCverified100 Mbps
HEVC and AVC both verified at 3840×2160 @ 30fps on Rear
Bit depth
10-bit sensor → 8-bit encoder 😒
the encoder does 10-bit, but this Android version exposes no public HDR capture API, so the file is 8-bit
Storage write
1.6 Gbps (raw)

Cameras

LensFacingFocal lengthSensor sizeMax resModesHW level
Rear #0BACK27mm (4.44mm)5.64 × 4.23 mm3840×216024FULL
Front #1FRONT24mm (2.51mm)3.67 × 2.76 mm2592×194422FULL

Focal lengths show the 35mm equivalent first; the sensor's native focal length is in parentheses. Only the equivalent is comparable between phones.

Max res is the largest frame this lens was proven to record: a real clip written to disk and read back with frames in it.

Encoder frame ceilings

CodecLargest frameMacroblocksAdvertised max
HEVC4096×216034,5604096 × 2160
AVC4096×216034,5604096 × 2160

One macroblock is 16×16 pixels. The macroblock count is the encoder's real ceiling — a budget every frame has to fit, landscape or portrait — and the largest frame beside it is simply the biggest shape that spends it.

Thermal Throttling Tests

The soak test records continuously from a cold start and tracks the frame rate as the device heats up — a phone that can't shed the heat starts dropping frames and throttling before the run is done.

Performance: HEVC 3840×2160

Sustained frame rate
30.1 fps
average across 60 clips · 100% of the 30fps target
Frames dropped
6 / 18037 total
against a steady 30fps
Peak temperature
29.8°C
battery sensor, during the run
Throttling reached
NONE
highest status the OS reported

Recorded for the full 10min — the time limit stopped it, nothing else — shedding only a handful of frames (under 1%) and holding rate throughout. This device has thermal headroom to spare.

Encoded with HEVC at this device's maximum hardware bitrate for it.

Frame rate 29.4 fps → 30.1 fps

30.1 fps

Clip 1: 29.4 fpsClip 2: 30.1 fpsClip 3: 30.1 fpsClip 4: 30 fpsClip 5: 30.1 fpsClip 6: 30.1 fpsClip 7: 30 fpsClip 8: 30.1 fpsClip 9: 30 fpsClip 10: 30.1 fpsClip 11: 30.1 fpsClip 12: 30 fpsClip 13: 30.1 fpsClip 14: 30 fpsClip 15: 30.1 fpsClip 16: 30.1 fpsClip 17: 30 fpsClip 18: 30.1 fpsClip 19: 30 fpsClip 20: 30.1 fpsClip 21: 30.1 fpsClip 22: 30 fpsClip 23: 30.1 fpsClip 24: 30.1 fpsClip 25: 30 fpsClip 26: 30.1 fpsClip 27: 30 fpsClip 28: 30.1 fpsClip 29: 30.1 fpsClip 30: 30 fpsClip 31: 30.1 fpsClip 32: 30 fpsClip 33: 30.1 fpsClip 34: 30.1 fpsClip 35: 30 fpsClip 36: 30.1 fpsClip 37: 30 fpsClip 38: 30.1 fpsClip 39: 30.1 fpsClip 40: 30 fpsClip 41: 30.1 fpsClip 42: 30.1 fpsClip 43: 30 fpsClip 44: 30.1 fpsClip 45: 30 fpsClip 46: 30.1 fpsClip 47: 30.1 fpsClip 48: 30 fpsClip 49: 30.1 fpsClip 50: 30 fpsClip 51: 30.1 fpsClip 52: 30.1 fpsClip 53: 30 fpsClip 54: 30.1 fpsClip 55: 30 fpsClip 56: 30.1 fpsClip 57: 30.1 fpsClip 58: 30 fpsClip 59: 30.1 fpsClip 60: 30.1 fps

0 fps

Encoded per 10s clip 124 Mbps → 120 Mbps

124 Mbps

Clip 1: 124 MbpsClip 2: 121 MbpsClip 3: 120 MbpsClip 4: 120 MbpsClip 5: 120 MbpsClip 6: 120 MbpsClip 7: 120 MbpsClip 8: 119 MbpsClip 9: 120 MbpsClip 10: 120 MbpsClip 11: 121 MbpsClip 12: 120 MbpsClip 13: 120 MbpsClip 14: 120 MbpsClip 15: 119 MbpsClip 16: 121 MbpsClip 17: 120 MbpsClip 18: 121 MbpsClip 19: 119 MbpsClip 20: 120 MbpsClip 21: 120 MbpsClip 22: 120 MbpsClip 23: 120 MbpsClip 24: 121 MbpsClip 25: 119 MbpsClip 26: 120 MbpsClip 27: 120 MbpsClip 28: 120 MbpsClip 29: 120 MbpsClip 30: 120 MbpsClip 31: 120 MbpsClip 32: 120 MbpsClip 33: 120 MbpsClip 34: 120 MbpsClip 35: 120 MbpsClip 36: 120 MbpsClip 37: 120 MbpsClip 38: 120 MbpsClip 39: 120 MbpsClip 40: 119 MbpsClip 41: 120 MbpsClip 42: 120 MbpsClip 43: 119 MbpsClip 44: 120 MbpsClip 45: 120 MbpsClip 46: 120 MbpsClip 47: 120 MbpsClip 48: 120 MbpsClip 49: 120 MbpsClip 50: 120 MbpsClip 51: 120 MbpsClip 52: 120 MbpsClip 53: 120 MbpsClip 54: 120 MbpsClip 55: 120 MbpsClip 56: 120 MbpsClip 57: 120 MbpsClip 58: 119 MbpsClip 59: 119 MbpsClip 60: 120 Mbps

0.0 Mbps

Battery temperature Estimates: 45°C in ~455min 9s · 60°C in ~885min 14s (linear fit)

30.8°C

10s: 29°C 20s: 29°C 30s: 29°C 40s: 29°C 50s: 29°C 1min: 29°C 1min 10s: 29.3°C 1min 20s: 29.3°C 1min 30s: 29.3°C 1min 40s: 29.3°C 1min 50s: 29.3°C 2min: 29.3°C 2min 10s: 29.3°C 2min 20s: 29.3°C 2min 30s: 29.3°C 2min 40s: 29.3°C 2min 50s: 29.3°C 3min: 29.3°C 3min 10s: 29.3°C 3min 20s: 29.3°C 3min 30s: 29.3°C 3min 40s: 29.3°C 3min 50s: 29.3°C 4min: 29.3°C 4min 10s: 29.3°C 4min 20s: 29.3°C 4min 30s: 29.3°C 4min 40s: 29.3°C 4min 50s: 29.3°C 5min: 29.3°C 5min 10s: 29.3°C 5min 20s: 29.3°C 5min 30s: 29.3°C 5min 40s: 29.3°C 5min 50s: 29.3°C 6min: 29.3°C 6min 10s: 29.3°C 6min 20s: 29.3°C 6min 30s: 29.3°C 6min 40s: 29.3°C 6min 50s: 29.3°C 7min: 29.3°C 7min 10s: 29.3°C 7min 20s: 29.3°C 7min 30s: 29.3°C 7min 40s: 29.3°C 7min 50s: 29.3°C 8min: 29.3°C 8min 10s: 29.3°C 8min 20s: 29.3°C 8min 30s: 29.3°C 8min 40s: 29.3°C 8min 50s: 29.3°C 9min: 29.3°C 9min 10s: 29.3°C 9min 20s: 29.3°C 9min 30s: 29.8°C 9min 40s: 29.8°C 9min 50s: 29.8°C 10min: 29.8°C

28°C

010min recorded10min

Throttling status NONE → NONE

MODERATE

Clip 1: NONEClip 2: NONEClip 3: NONEClip 4: NONEClip 5: NONEClip 6: NONEClip 7: NONEClip 8: NONEClip 9: NONEClip 10: NONEClip 11: NONEClip 12: NONEClip 13: NONEClip 14: NONEClip 15: NONEClip 16: NONEClip 17: NONEClip 18: NONEClip 19: NONEClip 20: NONEClip 21: NONEClip 22: NONEClip 23: NONEClip 24: NONEClip 25: NONEClip 26: NONEClip 27: NONEClip 28: NONEClip 29: NONEClip 30: NONEClip 31: NONEClip 32: NONEClip 33: NONEClip 34: NONEClip 35: NONEClip 36: NONEClip 37: NONEClip 38: NONEClip 39: NONEClip 40: NONEClip 41: NONEClip 42: NONEClip 43: NONEClip 44: NONEClip 45: NONEClip 46: NONEClip 47: NONEClip 48: NONEClip 49: NONEClip 50: NONEClip 51: NONEClip 52: NONEClip 53: NONEClip 54: NONEClip 55: NONEClip 56: NONEClip 57: NONEClip 58: NONEClip 59: NONEClip 60: NONE

NONE

clip 110min 2sclip 60

Each point is one 10-second recording, in order, sampled as it began. Nothing was written to storage: the video was encoded and measured, never saved.

Diagnostics

93 checks — 41 supported · 3 partial · 9 unsupported · 40 informational

Camera 0 (BACK) — Rear 29 checks

Hardware

Hardware LevelFULLGood — manual control + RAW likely available

Capabilities

Manual Sensor ControlYesRequired for manual ISO/exposure in log shooting
RAW CaptureYesEnables access to raw Bayer sensor data
Burst CaptureYesSustained high-framerate capture
Read Sensor SettingsYesPer-frame sensor metadata readback
Dynamic Range ProfilesNoNot available — may need API 33+ or device support

Sensor

Bit Depth10-bit (white level = 1023)Good — standard for mobile sensors
Sensitivity RangeISO 55 – 7111Max analog ISO: 444 (digital gain above this)
Exposure Range54.4µs – 3.9sFastest: ~1/18367
Bayer PatternBGGR
Physical Size5.64 × 4.23 mm (diag 7.06 mm)Larger sensor = more light = better DR for log
Pixel Array4032 × 3024 (12.2 MP)

RAW Formats

RAW_SENSOR4032×3024 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.
RAW104032×3024 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.
RAW12Not supported
RAW_PRIVATE4032×3024 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.

Streams

Max Simultaneous OutputsRAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously
YUV_420_888 Modes4032×3024 @ 30 fps 4000×3000 @ 30 fps 3840×2160 @ 30 fps 4000×2000 @ 30 fps 3264×2448 @ 30 fps … and 22 more

HDR / 10-Bit

Dynamic Range ProfilesRequires API 33+ (Android 13)Device is on API 32
10-Bit YUV (P010)Not supportedEncoder may only receive 8-bit data even if Main10 is available

Tonemap / ISP

Tonemap ModesCONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max)
Max Curve Points64Plenty for smooth log curve
Noise ReductionOFF, FAST, HIGH_QUALITY, MINIMALOFF available — can disable NR for clean log
Edge / SharpeningFAST, HIGH_QUALITY, OFFOFF available — can disable sharpening
Hot Pixel ModesOFF, FAST, HIGH_QUALITY
Lens Shading CorrectionOFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction
Chromatic Aberration CorrectionOFF, FAST, HIGH_QUALITY

Vendor Tags

Count1 vendor tags foundOEM-specific extensions available
com.google (1)com.google.nexus.experimental2018.faceLandmark.availableIds = [1, 2, 3, 4, 5, 6]
Camera 1 (FRONT) — Front 29 checks

Hardware

Hardware LevelFULLGood — manual control + RAW likely available

Capabilities

Manual Sensor ControlYesRequired for manual ISO/exposure in log shooting
RAW CaptureYesEnables access to raw Bayer sensor data
Burst CaptureYesSustained high-framerate capture
Read Sensor SettingsYesPer-frame sensor metadata readback
Dynamic Range ProfilesNoNot available — may need API 33+ or device support

Sensor

Bit Depth10-bit (white level = 1023)Good — standard for mobile sensors
Sensitivity RangeISO 43 – 11130Max analog ISO: 695 (digital gain above this)
Exposure Range17.7µs – 0.8sFastest: ~1/56644
Bayer PatternBGGR
Physical Size3.67 × 2.76 mm (diag 4.59 mm)Larger sensor = more light = better DR for log
Pixel Array3280 × 2464 (8.1 MP)

RAW Formats

RAW_SENSOR3280×2464 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.
RAW103280×2464 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.
RAW12Not supported
RAW_PRIVATE3280×2464 @ 30.0 fpsVideo-rate RAW achievable! The HAL reports no stall, so the readout rate is the streaming rate.

Streams

Max Simultaneous OutputsRAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously
YUV_420_888 Modes3264×2448 @ 30 fps 2592×1944 @ 30 fps 2688×1512 @ 30 fps 2688×1344 @ 30 fps 2048×1536 @ 30 fps … and 18 more

HDR / 10-Bit

Dynamic Range ProfilesRequires API 33+ (Android 13)Device is on API 32
10-Bit YUV (P010)Not supportedEncoder may only receive 8-bit data even if Main10 is available

Tonemap / ISP

Tonemap ModesCONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max)
Max Curve Points64Plenty for smooth log curve
Noise ReductionOFF, FAST, HIGH_QUALITY, MINIMALOFF available — can disable NR for clean log
Edge / SharpeningFAST, HIGH_QUALITY, OFFOFF available — can disable sharpening
Hot Pixel ModesOFF, FAST, HIGH_QUALITY
Lens Shading CorrectionOFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction
Chromatic Aberration CorrectionOFF, FAST, HIGH_QUALITY

Vendor Tags

Count1 vendor tags foundOEM-specific extensions available
com.google (1)com.google.nexus.experimental2018.faceLandmark.availableIds = [1, 2, 3, 4, 5, 6]
Concurrent Cameras 1 checks

Concurrent Cameras

Concurrent Camera SetsNoneDevice advertises no camera combination that can stream concurrently
Startup Ramp 2 checks

Startup Ramp

First Frame Latency215 msCamera start → first encoded frame, at 3840×2160 HEVC — the dead time between pressing record and the first frame of video existing. 3 runs: 272 / 203 / 215 ms
Frames Dropped at Startup24 framesFrames the camera produced but the encoder dropped while warming up (rate control and 3A settling) — the cost of starting a recording, not throttling. 3 runs: 24 / 24 / 24
Video Encoders 28 checks

Encoders

HEVC (H.265) — c2.qti.hevc.encoderMax bitrate: 120 MbpsExcellent — high enough for quality log
HEVC (H.265) Max Resolution4096 × 2160
HEVC (H.265) Max Macroblocks/Frame34,560 MB — largest frame 4096×2160Frame-area budget at 16×16 macroblocks; any shape must fit inside it
HEVC (H.265) Dimension Alignmentwidth ×2 height ×2Any even size accepted
HEVC (H.265) 10-Bit ProfilesMain1010-bit encoding supported
HEVC (H.265) Bitrate ModesCBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage
HEVC (H.265) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
HEVC (H.265) — OMX.qcom.video.encoder.hevcMax bitrate: 120 MbpsExcellent — high enough for quality log
HEVC (H.265) Max Resolution4096 × 2160
HEVC (H.265) Max Macroblocks/Frame34,560 MB — largest frame 4096×2160Frame-area budget at 16×16 macroblocks; any shape must fit inside it
HEVC (H.265) Dimension Alignmentwidth ×2 height ×2Any even size accepted
HEVC (H.265) 10-Bit ProfilesMain1010-bit encoding supported
HEVC (H.265) Bitrate ModesCBR:Yes VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage
HEVC (H.265) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
AVC (H.264) — c2.qti.avc.encoderMax bitrate: 100 MbpsExcellent — high enough for quality log
AVC (H.264) Max Resolution4096 × 2160
AVC (H.264) Max Macroblocks/Frame34,560 MB — largest frame 4096×2160Frame-area budget at 16×16 macroblocks; any shape must fit inside it
AVC (H.264) Dimension Alignmentwidth ×2 height ×2Any even size accepted
AVC (H.264) Bitrate ModesCBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate
AVC (H.264) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)
AVC (H.264) — OMX.qcom.video.encoder.avcMax bitrate: 100 MbpsExcellent — high enough for quality log
AVC (H.264) Max Resolution4096 × 2160
AVC (H.264) Max Macroblocks/Frame34,560 MB — largest frame 4096×2160Frame-area budget at 16×16 macroblocks; any shape must fit inside it
AVC (H.264) Dimension Alignmentwidth ×2 height ×2Any even size accepted
AVC (H.264) Bitrate ModesCBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate
AVC (H.264) Color Formats0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000013 YUV420Planar (I420) 0x00000015 YUV420SemiPlanar (NV12) 0x00000014 YUV420PackedPlanar 0x00000027 (vendor-specific / unknown)

HDR / 10-Bit

10-Bit Encode (measured)No — advertised onlyAn encoder advertises Main 10 but accepts no 10-bit input by any route — it can only emit a Main10 bitstream from 8-bit pixels, gaining no precision
10-Bit Display (measured)Yes — verified on screenA 10-bit (RGBA_1010102) surface rendered and read back correctly; display reports HDR10, HLG
Native Camera Libraries 4 checks

Native Libs

Camera HAL (/vendor/lib64/hw/)android.hardware.camera.provider@2.4-impl.so com.qti.chi.override.so camera.sdm710.soCamera-related native libraries found
Camera plugins (/vendor/lib64/camera/)com.qti.sensormodule.primax_imx355_s.bin com.qti.sensor.imx355.so com.qti.sensor.imx355_s.so com.qti.sensor.imx363.so com.google.tuned.b4s4_imx363.bin com.qti.sensormodule.metric_imx363.bin com.google.tuned.b4s4_imx355.bin com.qti.sensormodule.primax_imx355.bin com.google.tuned.b4s4_imx355_s.binCamera-related native libraries found
Vendor libs (/vendor/lib64/)android.hardware.camera.common@1.0.so android.hardware.camera.device@1.0.so android.hardware.camera.device@3.2.so android.hardware.camera.device@3.3.so android.hardware.camera.device@3.4.so android.hardware.camera.device@3.5.so android.hardware.camera.device@3.6.so android.hardware.camera.provider@2.4-external.so android.hardware.camera.provider@2.4-legacy.so android.hardware.camera.provider@2.4.so camera camera.device@1.0-impl.so camera.device@3.2-impl.so camera.device@3.3-impl.so camera.device@3.4-external-impl.so camera.device@3.4-impl.so camera.device@3.5-external-impl.so camera.device@3.5-impl.so camera.device@3.6-external-impl.so libOpenCL-pixel.so lib_camera_sensors.so libcamxfdalgov7.so libcamxfdengine.so libcamxstatscore.so libcamxtintlessalgo.so libcom.qti.chinodeutils.so libdisppower-pixel.so libgcam.so libgcam_ae.so libgcam_frsdk.so libgoog_pdaf_core_imx363.so libpixelhealth.so libpixelstats.so pixel-power-ext-V1-ndk_platform.so pixelatoms-cpp.so pixelpowerstats_provider_aidl_interface-cpp.soCamera-related native libraries found
Detected PlatformQualcomm SDM670 (sdm710)CamX/Chi HAL likely available