android / android/camera-samples

fps reduces when image analysis usecase is applied

Open
#394 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
5.5k
Forks
2.4k
PR merge metrics
No merged PRs in 30d

Description

I'm testing on

TECNO POP 2F (b1f)
CPU Core-Count = 4
RAM = 1.00G
Internal Storage = 16GB
Screen Resolution = 960 X 480

I'm using the CameraXBasic Example

The camera preview gets laggy only when the ImageAnalysis use case is applied.

I observed that without the imageAnalysis usecase the frame per seconds is approximately 10 on this device even tho the device will support up to 30fps (Range(lower=30, upper=30)

*Below are the supported fps Range*
Lower => 20, Upper => 20
Lower => 24, Upper => 24
Lower => 5, Upper => 30
Lower => 30, Upper => 30

When ImageAnalsis usecase is applied the fps drops to approximately 3fps

I/BufferQueueProducer: [ImageReader-864x480f23m4-18676-0](this:0x98965000,id:0,api:4,p:18676,c:18676) queueBuffer: fps=2.50 dur=1199.65 max=416.04 min=384.55

And i think this makes the CameraPreview Lag.

Are there any optimization techniques that can be applied to avoid making the preview lag?

I've attempted setting the fps myself but i don't think that has any effect

e.g

```kotlin
val builder = ImageAnalysis.Builder()
// We request aspect ratio but no resolution
.setTargetAspectRatio(screenAspectRatio)
// Set initial target rotation, we will have to call this again if rotation changes
// during the lifecycle of this use case
.setTargetRotation(rotation)
// The analyzer can then be assigned to the instance

val camera2Interop = Camera2Interop.Extender(builder)
// camera2Interop.setCaptureRequestOption(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF)
camera2Interop.setCaptureRequestOption(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, Range(30, 30))

```

Contributor guide

Open the contributing guide

Research direction

Start with the CameraXBasic Example and its ImageAnalysis use case, reproducing the preview on the listed TECNO POP 2F with and without analysis. Inspect the ImageAnalysis.Builder configuration and compare the reported frame rates; done requires identifying a confirmed cause and documenting or testing a change that prevents the preview from dropping to about 3 fps.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.