2015-08-13 09:42 AM
Hi,
I'm trying to use an ov7675 0.3Mb with the STM32F4209.The main goal is to stream the data through WiFi, using the module AMW006 from ACK.What I'm wondering is to use a specific IC to do the compression to JPEG or try to do it on the SMT32F4. I will like to do streaming up to 30FPS, in my opinion it will not be able to do the compression the SMT32F4, is too much data (147Mb/s). The JPEG compression that I will like to do is 1:26. The resulting image if my numbers are not wrong is going to be VGA*FPS*JPEG*bits per pixel=(640*480)*30/26*16=6Mb.What are your feelings? Is it going to be possible to do the compression on board?If not, can anyone recommend me a video encoder able to do compression? Also, another option that it comes to my mind is to use a camera module with JPEG compression, like OV3640. The only think is that I don't know how much compression does. Really hard to find documentation! Anyone know?Also, not sure about the maximum pixel clock that can have the SMT32F4.Thanks,Roger #camera-streaming-smt32f4-jpeg2015-08-13 03:40 PM
There is a nice, relatively small and simple JPEG encoder here:
http://blog.frankvh.com/2009/06/09/blackfin-fast-jpeg-encoding/
I adapted it to run on STM32F429 (files attached) and was able to encode 24bit RGB at 600X400 pixels. So the only option I know that runs true is the
read_rgb24_format function.
Once I had it running I then used its method to code an FPGA so never got around to adding comments or tidying it up.
To use it call:
uint32_t encode_image (UINT8 *input_ptr,UINT8 *output_ptr, UINT8 quality_factor, UINT16 image_format, UINT16 image_width, UINT16 image_height)
image_format = 888 for 24bit RGB
Not sure if you’re going to get 30FPS though as I have never speed tested it.
________________ Attachments : jpeg.c : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I1L2&d=%2Fa%2F0X0000000blW%2FHeLk.pT_8k0Y9oVqInxRZd1Mqgf0oud09DNmrEXdqYA&asPdf=falsejpeg.h : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I1KA&d=%2Fa%2F0X0000000blU%2FUqcrzPSs0Ki9txGcdm9akevmzjVHN855YHOBHJEfTiE&asPdf=false2024-10-28 03:11 AM - edited 2024-11-02 01:17 AM
For streaming up to 30FPS, using an external JPEG compression IC would be ideal due to STM32F4’s limitations in handling high data rates. Alternatively, switching to a camera module with built-in JPEG compression, like the OV3640, could simplify the setup if it meets the desired compression level. I Found a JPEG Compressor tool for compressing image online without losing image quality.