Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Frame rate in Sipeed boards
#1
Hello to you

I don't remember how I ended up on this forum, however I assume you are the one who is mentioned in ESP32 github section for providing several fixes.

Can you let me know what is the frame rate that you are able to achieve with the Sipeed K210 board and the OV2640 camera. I am told by the developer that they are unable to get 30FPS in VGA mode. I read on ESP32 camera board fixes, that if the clock is properly configure OV2640 allows 30FPS in VGA.

Can you let me know whether you achieved 30FPS with OV2640 or any other camera module using Kendryte.
Reply
#2
I've got ~30 fps with both QVGA and VGA resolutions using OV2640 and OV5640 on K210 board (with displaying the camera frames and fps value on TFT display).
With higher DVP clock I've got 50 fps with QVGA and 30 fps with VGA resolution (probably because of time taken for scaling the image on the display).
Reply
#3
Many thanks for your reply, is this with stock firmware or your own code. Can you point me to a reliable source for OV5640 which works with the Sipeed boards. Did you find any improvement in KPU code performance i.e detection etc if the chip doesn't drive the display?
Reply
#4
(12-02-2019, 12:07 PM)lobo Wrote: I've got ~30 fps with both QVGA and VGA resolutions using OV2640 and OV5640 on K210 board (with displaying the camera frames and fps value on TFT display).
With higher DVP clock I've got 50 fps with QVGA and 30 fps with VGA resolution (probably because of time taken for scaling the image on the display).

I have been testing a sipeed maixdock with standalone C SDK.

I am using a timer interrupt to calculate the frame rate achieved on the Kendryte k210, the counter is reset in the timer after every 5 seconds.

The counter gets incremented in this is DVP interrupt. However the maximum FPS I can achieve is 22. I set the dvp_set_xclk_rate(22000000)
if I increase the clock rate beyond this, there are noisy grains and strobes appearing.

Can you let me know how you achieved 50fps, is it by increasing xclk_rate or is there any other method.

I have the OV7740 camera module, the data sheet claims that it can do 60fps.

I am believing the OpenMV code regarding the registers of this camera module, the code claims to be setting the default registers to enable 60fps. Where register 0x11 if set to 0x01 will be producing 30fps, when I do that I get 19 FPS.

The application isn't doing anything other than reading from the camera and displaying on the LCD.

The DVP interrupt itself is called only on an average of 22 times in a second, Can you throw some light or share your code which achieve 50fps. Thanks


case FRAMERATE_60FPS:
           ret |= cambus_writeb(sensor->slv_addr, 0x11, 0x00);
           ret |= cambus_writeb(sensor->slv_addr, 0x55, 0x40);
           ret |= cambus_writeb(sensor->slv_addr, 0x2b, 0xF0);
           ret |= cambus_writeb(sensor->slv_addr, 0x2c, 0x01);
           break;





static int sensor_irq(void *ctx)
{
   if (dvp_get_interrupt(DVP_STS_FRAME_FINISH))
   {
       // switch gram
       dvp_set_display_addr(g_ram_mux ? (uint32_t)g_lcd_gram0 : (uint32_t)g_lcd_gram1);
       dvp_clear_interrupt(DVP_STS_FRAME_FINISH);
       g_dvp_finish_flag = 1;
       fpscount++;
   }
   else
   {
       if (g_dvp_finish_flag == 0)
           dvp_start_convert();
       dvp_clear_interrupt(DVP_STS_FRAME_START);
   }

   return 0;
}
Reply
#5
I just reduced the clock to 11MHz based on the ESP forum discussion on OV2640. Now I am seeing 48FPS on QVGA. When I reduce it to 5MHz it drops to 24FPS.

However note that this is the number of times the DVP interrupt is called, not that all frames have been processed. That is still maximum 22. I think it is to do with the LCD slowing up
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)