store 400hz images on sd card with QQQVGA

Hi,

I am working on a project which we would like to record QQQVGA images (60 by 80) on SD card with OpenMV4 H7 Cam. However, when I use the image.ImageWriter, the function seems to cost some time and I couldn’t get 400 frame rate in the end. Is there anyway that can make it faster to record images on sd card?

Thanks a lot!

Hi, currently it’s not possible to get higher speeds, the images are not buffered in memory they get written to the SD card one by one, which is much slower than writing multiple sectors to the SD (with buffering on I can write up to 4MB/s).

Hi, currently it’s not possible to get higher speeds, the images are not buffered in memory they get written to the SD card one by one, which is much slower than writing multiple sectors to the SD (with buffering on I can write up to 4MB/s).

This is really unfortunate. Is there a (way to) benchmark or better understand what we can achieve from WRT total frames throughput to help make a desicion about what approach to invest building a workflow around?

context: experimenting with a surprisingly good tele setup with the global shutter imager. at the moment we just want QQVGA off the device as fast as possible to send it along for analysis.

Custom M12 Hood

with fixed position

(further away for scale)

it seems between VCP and imagewriter it’s not clear how fast we can send/lay down frames. in the IDE i can get ~120hz with QQVGA but haven’t been able to get SD bin files with acceptable quality (look much worse than the IDE output). Struggling to get a VCP solution working (consistently). with vcp difficulties, changed direction a few time and tried taking the ‘downgrade’ to use image writer) but it sounds like that’s even slower.

I can work with RAW images on the host, but looking for advice on what the best choice would be, as i understand right now the choices are:

  • uncompressed via imagewriter


  • uncompressed via VCP


  • compressed via VCP


  • compressed via debug output + implementing derivative of the cpp listed in other related threads.

are there other options?

The fastest way off of the STM32 right now is via USB with jpeg compression.

As for the SD card speed being slow. I have plans to fix this. However, it’s not going to be tackled until next year as it requires a really large RAM buffer. However, I’m going through the firmware and improving things a lot now using RAM buffers with triple buffering. I’ll have a triple buffer support for the camera ready by Christmas to max out your camera FPS under application load.