Mi 10
Android 11 (API 30)
Xiaomi · Qualcomm kona
Cameras
| Lens | Facing | Focal length | Sensor size | Max res | Modes | HW level |
|---|---|---|---|---|---|---|
| Main #0 | BACK | 24mm (6.72mm) | 9.63 × 7.22 mm | 6016×4512 | 25 | LEVEL_3 |
| 1.9mm #2 | BACK | 24mm (1.94mm) | 2.8 × 2.1 mm | 1600×1200 | 13 | LEVEL_3 |
| Ultrawide #3 | BACK | 16mm (2.13mm) | 4.71 × 3.49 mm | 3840×2160 | 21 | LEVEL_3 |
| Front #1 | FRONT | 26mm (3.12mm) | 4.15 × 3.1 mm | 1940×1940 | 19 | LEVEL_3 |
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
| Codec | Largest frame | Macroblocks | Advertised max |
|---|---|---|---|
| HEVC | 8192×4320 | 138,240 | |
| AVC | 8192×4320 | 138,240 |
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. The advertised maximum width and height are struck through where their product exceeds that budget. They are independent limits that cannot be used together, so the figure they imply is not a resolution this encoder will accept: design against the macroblock count, not the advertised pair.
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.
Each run below was soaked on its own, with a cooldown between runs, so their heat curves compare fairly — the one that climbs fastest and throttles soonest is working the silicon hardest.
Performance: HEVC 6016×3384
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.
30.1 fps
0 fps
172 Mbps
0.0 Mbps
45°C
26.5°C
010min recorded27min 4s
MODERATE
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.
Performance: HEVC 3840×2160
Recorded for the full 10min without dropping frames or overheating — the time limit stopped it, nothing else. This device has thermal headroom to spare.
Encoded with HEVC at this device's maximum hardware bitrate for it.
30.1 fps
0 fps
164 Mbps
0.0 Mbps
39.8°C
33.7°C
010min recorded25min 41s
MODERATE
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.
Performance: AVC 6016×3384
Recorded for the full 10min without dropping frames or overheating — the time limit stopped it, nothing else. This device has thermal headroom to spare.
Encoded with AVC at this device's maximum hardware bitrate for it.
30.1 fps
0 fps
232 Mbps
0.0 Mbps
42.6°C
36.5°C
010min recorded30min 41s
MODERATE
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.
Performance: AVC 3840×2160
Recorded for the full 10min without dropping frames or overheating — the time limit stopped it, nothing else. This device has thermal headroom to spare.
Encoded with AVC at this device's maximum hardware bitrate for it.
30.1 fps
0 fps
241 Mbps
0.0 Mbps
39.3°C
33.7°C
010min recorded20min 3s
MODERATE
NONE
clip 110min 1sclip 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
145 checks — 67 supported · 3 partial · 17 unsupported · 58 informational
Camera 0 (BACK) — Main 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | YesEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 50 – 1600Max analog ISO: 1600 (digital gain above this) |
| Exposure Range | 84.1µs – 32.1sFastest: ~1/11888 |
| Bayer Pattern | GRBG |
| Physical Size | 9.63 × 7.22 mm (diag 12.03 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 6016 × 4512 (27.1 MP) |
RAW Formats
| RAW_SENSOR | 6016×4512 @ 30.1 fpsVideo-rate RAW achievable! |
| RAW10 | 6016×4512 @ 30.1 fpsVideo-rate RAW achievable! |
| RAW12 | Not supported |
| RAW_PRIVATE | 6016×4512 @ 30.1 fpsVideo-rate RAW achievable! |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 4208×3120 @ 25 fps 4096×2160 @ 30 fps 3840×2160 @ 30 fps 3008×2256 @ 30 fps 2592×1940 @ 30 fps … and 19 more |
HDR / 10-Bit
| Dynamic Range Profiles | Requires API 33+ (Android 13)Device is on API 30 |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Camera 2 (BACK) — 1.9mm 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | YesEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 50 – 1620Max analog ISO: 600 (digital gain above this) |
| Exposure Range | 0.0µs – 25.0sFastest: ~1/Infinity |
| Bayer Pattern | RGGB |
| Physical Size | 2.80 × 2.10 mm (diag 3.50 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 1600 × 1200 (1.9 MP) |
RAW Formats
| RAW_SENSOR | 1600×1200 @ 30.2 fpsVideo-rate RAW achievable! |
| RAW10 | 1600×1200 @ 30.2 fpsVideo-rate RAW achievable! |
| RAW12 | Not supported |
| RAW_PRIVATE | 1600×1200 @ 30.2 fpsVideo-rate RAW achievable! |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 1600×1200 @ 30 fps 1440×1080 @ 30 fps 1280×960 @ 30 fps 1560×720 @ 30 fps 1440×720 @ 30 fps … and 8 more |
HDR / 10-Bit
| Dynamic Range Profiles | Requires API 33+ (Android 13)Device is on API 30 |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Camera 3 (BACK) — Ultrawide 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | YesEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 50 – 4030Max analog ISO: 775 (digital gain above this) |
| Exposure Range | 42.0µs – 30.0sFastest: ~1/23821 |
| Bayer Pattern | BGGR |
| Physical Size | 4.71 × 3.49 mm (diag 5.87 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 4224 × 3136 (13.2 MP) |
RAW Formats
| RAW_SENSOR | 4208×3120 @ 30.0 fpsVideo-rate RAW achievable! |
| RAW10 | 4208×3120 @ 30.0 fpsVideo-rate RAW achievable! |
| RAW12 | Not supported |
| RAW_PRIVATE | 4208×3120 @ 30.0 fpsVideo-rate RAW achievable! |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 4208×3120 @ 25 fps 4096×2160 @ 30 fps 3840×2160 @ 30 fps 3008×2256 @ 30 fps 2592×1940 @ 30 fps … and 19 more |
HDR / 10-Bit
| Dynamic Range Profiles | Requires API 33+ (Android 13)Device is on API 30 |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Camera 1 (FRONT) — Front 28 checks
Hardware
| Hardware Level | LEVEL_3Best tier — RAW + YUV + reprocessing guaranteed |
Capabilities
| Manual Sensor Control | YesRequired for manual ISO/exposure in log shooting |
| RAW Capture | YesEnables access to raw Bayer sensor data |
| Burst Capture | YesSustained high-framerate capture |
| Read Sensor Settings | YesPer-frame sensor metadata readback |
| Dynamic Range Profiles | NoNot available — may need API 33+ or device support |
Sensor
| Bit Depth | 10-bit (white level = 1023)Good — standard for mobile sensors |
| Sensitivity Range | ISO 50 – 800Max analog ISO: 800 (digital gain above this) |
| Exposure Range | 16.1µs – 1.1sFastest: ~1/62189 |
| Bayer Pattern | GRBG |
| Physical Size | 4.15 × 3.10 mm (diag 5.18 mm)Larger sensor = more light = better DR for log |
| Pixel Array | 2592 × 1940 (5.0 MP) |
RAW Formats
| RAW_SENSOR | 2592×1940 @ 30.1 fpsVideo-rate RAW achievable! |
| RAW10 | 2592×1940 @ 30.1 fpsVideo-rate RAW achievable! |
| RAW12 | Not supported |
| RAW_PRIVATE | 2592×1940 @ 30.1 fpsVideo-rate RAW achievable! |
Streams
| Max Simultaneous Outputs | RAW:1 Processed:3 Stalling:2Can capture RAW + encoded video simultaneously |
| YUV_420_888 Modes | 2592×1940 @ 30 fps 1940×1940 @ 30 fps 2560×1440 @ 30 fps 1920×1440 @ 30 fps 2340×1080 @ 30 fps … and 15 more |
HDR / 10-Bit
| Dynamic Range Profiles | Requires API 33+ (Android 13)Device is on API 30 |
| 10-Bit YUV (P010) | Not supportedEncoder may only receive 8-bit data even if Main10 is available |
Tonemap / ISP
| Tonemap Modes | CONTRAST_CURVE, FAST, HIGH_QUALITYCONTRAST_CURVE available — can define custom log curve (64 points max) |
| Max Curve Points | 64Plenty for smooth log curve |
| Noise Reduction | OFF, FAST, HIGH_QUALITY, MINIMAL, ZSLOFF available — can disable NR for clean log |
| Edge / Sharpening | FAST, HIGH_QUALITY, OFF, ZSLOFF available — can disable sharpening |
| Hot Pixel Modes | OFF, FAST, HIGH_QUALITY |
| Lens Shading Correction | OFF, FAST, HIGH_QUALITYOFF available — raw vignetting preserved for manual correction |
| Chromatic Aberration Correction | OFF, FAST, HIGH_QUALITY |
Vendor Tags
| Vendor-Specific Keys | None foundNo OEM-specific camera extensions detected |
Concurrent Cameras 1 checks
Concurrent Cameras
| Concurrent Camera Sets | NoneDevice advertises no camera combination that can stream concurrently |
Startup Ramp 2 checks
Startup Ramp
| First Frame Latency | 112 msCamera start → first encoded frame, at 3840×2160 HEVC — the dead time between pressing record and the first frame of video existing. 3 runs: 112 / 113 / 112 ms |
| Frames Dropped at Startup | 6 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: 6 / 6 / 6 |
Video Encoders 26 checks
Encoders
| HEVC (H.265) — OMX.qcom.video.encoder.hevc | Max bitrate: 160 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 8192 × 8192 |
| HEVC (H.265) Max Macroblocks/Frame | 138,240 MB — largest frame 8192×4320Max width × max height (262,144 MB) exceeds this — those two cannot be combined |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:Yes VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| HEVC (H.265) Color Formats | 0x7fa30c06 QCOM YUV420SemiPlanar32mCompressed (UBWC NV12 — lossless tile) 0x7fa30c04 QCOM YUV420SemiPlanar32m (NV12 32-macroblock-aligned stride) 0x7fa30c00 (vendor-specific / unknown) 0x7fa30c09 (vendor-specific / unknown) 0x7fa30c0a (vendor-specific / unknown) 0x7fa30c08 QCOM YVU420SemiPlanar32mCompressed (UBWC NV21 tile) 0x7fa30c07 QCOM YUV420SemiPlanar32m10bitCompressed (UBWC NV12 10-bit) 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000015 YUV420SemiPlanar (NV12) |
| HEVC (H.265) — OMX.qcom.video.encoder.hevc.cq | Max bitrate: 240 MbpsExcellent — high enough for quality log |
| HEVC (H.265) Max Resolution | 512 × 512 |
| HEVC (H.265) Max Macroblocks/Frame | 1,024 MB — largest frame 512×512Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| HEVC (H.265) Dimension Alignment | width ×2 height ×2Any even size accepted |
| HEVC (H.265) 10-Bit Profiles | Main10, Main10HDR10, Main10HDR10Plus10-bit encoding supported |
| HEVC (H.265) Bitrate Modes | CBR:No VBR:Yes CQ:YesCQ (constant quality) available — ideal for log footage |
| HEVC (H.265) Color Formats | 0x7fa30c06 QCOM YUV420SemiPlanar32mCompressed (UBWC NV12 — lossless tile) 0x7fa30c04 QCOM YUV420SemiPlanar32m (NV12 32-macroblock-aligned stride) 0x7fa30c00 (vendor-specific / unknown) 0x7fa30c09 (vendor-specific / unknown) 0x7fa30c0a (vendor-specific / unknown) 0x7fa30c08 QCOM YVU420SemiPlanar32mCompressed (UBWC NV21 tile) 0x7fa30c07 QCOM YUV420SemiPlanar32m10bitCompressed (UBWC NV12 10-bit) 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000015 YUV420SemiPlanar (NV12) |
| AVC (H.264) — OMX.qcom.video.encoder.avc | Max bitrate: 220 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 8192 × 8192 |
| AVC (H.264) Max Macroblocks/Frame | 138,240 MB — largest frame 8192×4320Max width × max height (262,144 MB) exceeds this — those two cannot be combined |
| AVC (H.264) Dimension Alignment | width ×2 height ×2Any even size accepted |
| AVC (H.264) Bitrate Modes | CBR:No VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| AVC (H.264) Color Formats | 0x7fa30c06 QCOM YUV420SemiPlanar32mCompressed (UBWC NV12 — lossless tile) 0x7fa30c04 QCOM YUV420SemiPlanar32m (NV12 32-macroblock-aligned stride) 0x7fa30c00 (vendor-specific / unknown) 0x7fa30c09 (vendor-specific / unknown) 0x7fa30c0a (vendor-specific / unknown) 0x7fa30c08 QCOM YVU420SemiPlanar32mCompressed (UBWC NV21 tile) 0x7fa30c07 QCOM YUV420SemiPlanar32m10bitCompressed (UBWC NV12 10-bit) 0x7f000789 AndroidOpaque (opaque buffer — OMX_COLOR_FormatAndroidOpaque) 0x7f420888 YUV420Flexible (COLOR_FormatYUV420Flexible — framework maps to NV12) 0x00000015 YUV420SemiPlanar (NV12) |
| AVC (H.264) — c2.qti.avc.encoder | Max bitrate: 120 MbpsExcellent — high enough for quality log |
| AVC (H.264) Max Resolution | 4096 × 2304 |
| AVC (H.264) Max Macroblocks/Frame | 36,864 MB — largest frame 4096×2304Frame-area budget at 16×16 macroblocks; any shape must fit inside it |
| AVC (H.264) Dimension Alignment | width ×2 height ×2Any even size accepted |
| AVC (H.264) Bitrate Modes | CBR:No VBR:Yes CQ:NoCQ not available — use VBR with high target bitrate |
| AVC (H.264) Color Formats | 0x7f000789 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) |
Native Camera Libraries 4 checks
Native Libs
| Camera HAL (/vendor/lib64/hw/) | com.qti.chi.override.so camera.qcom.so android.hardware.camera.provider@2.4-impl.soCamera-related native libraries found |
| Camera plugins (/vendor/lib64/camera/) | com.qti.sensor.imx563.soCamera-related native libraries found |
| Vendor libs (/vendor/lib64/) | android.hardware.camera.provider@2.4-external.so android.hardware.camera.provider@2.4-legacy.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 libTouchInputVM.so libbatching.so libcamera2ndk_vendor.so libcamera_dirty.so libcamera_nn_stub.so libcamera_scene.so libcamerapostproc.so libcamxexternalformatutils.so libcamxfacialfeatures.so libcamxfdalgo.so libcamxfdengine.so libcamxifestriping.so libcamximageformatutils.so libcamxncs.so libcamxstatscore.so libcamxswprocessalgo.so libcamxtintlessalgo.so libchilog.so libcom.qti.chinodeutils.so libminziparchive.so libmmcamera_faceproc.so libmmcamera_faceproc2.so vendor.qti.hardware.camera.device@1.0.so vendor.qti.hardware.camera.device@3.5.so vendor.qti.hardware.camera.postproc@1.0-service-impl.so vendor.qti.hardware.camera.postproc@1.0.soCamera-related native libraries found |
| Detected Platform | Qualcomm konaCamX/Chi HAL likely available |