Image save is too slow

Hi, we are using openmv H7 plus board. We try to save 1600*1200 image into flash with BMP format since we don’t want to compress it. The image save process is too slow (about 40 seconds). But as the spec mentioned, the flash has a 100MB/s bandwidth, so it should be very fast for this kind of the image save.

import sensor, image, time,pyb

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.UXGA)
sensor.skip_frames(time = 2000)

clock = time.clock()
delay = pyb.millis()
print(delay)
img = sensor.snapshot() #sensorctl.sensorCapture()
img.save(‘r1.bmp’)
delay = pyb.millis() - delay
print(delay)

Please use an SD card. The internal flash on the camera is very slow for writing data to it. The read speed is very fast but the write speed is very, very slow. This is standard for flash parts as they are primarily for storing firmware images.

(Note, it’s not the write speed but the erase time per sector on the flash. If you look at the datasheet it’s quite high).

OK, thanks for you quick response. And how about JPG file? I try to save QVGA image with high JPG quality. But if I set the compress quality to more than 60, then always get the system crash and reboot.

There should be space on the disk… so, it shouldn’t crash if you just save one image. How many images are you saving though?

I try to save 6 images with 1600*1200 and high jpg quality (> 60) then send them to a network space. Is there any way to implement that?

You can use the ImageIO module to save images in RAM. Or, use an SD card and save them to that disk. The QSPI flash is really for read only things.