Ov5640 fps issue - 1080p@30fps

Hello Loic

May I ask another question here since it is kind of related.

I am trying to develop a driver for an MIPI camera, which outputs UYVY8_1x16 format. For ov5640 sensor the output is UYVY8_2x8. Could you please confirm that on Dragonboard 820 VFE_PIX accepts UYVY8_1x16 as well? Many thanks.

No the driver only supports 2X8 for yuv formats (two 8-bit bus samples).

Many thanks for the reply.

May I ask where I can find what formats are supported in Snapdragon VFE_PIX. In your document it only suggests that it supports UYVY422 packed.

Supported input formats:

YUYV/UYVY/YVYU/VYUY (packed YUV 4:2:2 - V4L2_PIX_FMT_YUYV / V4L2_PIX_FMT_UYVY / V4L2_PIX_FMT_YVYU / V4L2_PIX_FMT_VYUY).

But it does not say if it supports 8 bit or 16 bit?

You can look in what is defined by the driver for RDI and PIX interfaces: camss-vfe.c « camss « qcom « platform « media « drivers - working/qualcomm/kernel.git - Qualcomm Landing Team kernel

Thank you Loic. Is it possible to add support for UYVY8_1x16 in driver? Is it limited by hardware? I mean is it possible to add support in CSID to decode 1x16 and convert it to 2x8? Many thanks.

Unfortunately, I don’t know the CSID configuration register values for that.

Hello Loic,
I am trying to stream 5MP images at 15fps. I noticed that h265 or h264 encoder takes more than 66ms to encode one frame. Is it possible to increase the frequency in the frequency table further?

Current table after your patch is like this:

+ { 1944000, 520000000 }, /* 4k UHD @ 60 (decode only) */
+ { 972000, 520000000 }, /* 4k UHD @ 30 */
+ { 489600, 346666667 }, /* 1080p @ 60 */
+ { 244800, 150000000 }, /* 1080p @ 30 */
+ { 108000, 75000000 }, /* 720p @ 30 */

I wish to understand the meaning of these numbers. What does the first column refer to? (for example, 972000, 489600, 244800, 108000) I assume that the second column is frequency. What is the maximum frequency value I can set? If the image resolution is not 4k or 1080p and it is in the middle (5MP) what the frequency it will use? Many thanks in advance.

This is the load in mbps (cf load_per_instance function), so more you have encoding/decoding session and resolution, more the load is important. The driver track the load to adjust the frequency of the encoder/decoder on demand.

If you think there is a clock issue (e.g. calculation issue), you can for sure try to force it to the max frequency (520000000) regardless the load.

Hi Loic, Thank you for the reply. May I ask how I can force it to maximum frequency? Should I modify all frequencies in the table to 5200000000? Many thanks in advance.

Yes that should work, at least good enough to check if it fixes your problem