geeksville / TenDollarWebcam

A small example app for ESP32 + Micro-RTSP
MIT License
389 stars 59 forks source link

Idea for higher resolution on low-memory boards #9

Open WayneManion opened 5 years ago

WayneManion commented 5 years ago

I don't have the fancy board with 8 MB of PSRAM. I've tried increasing the resolution of the camera, but it runs out of memory. I don't know enough about camera modules or digital imaging to do this, but I'm wondering if maybe the camera could be put into a high-res mode and then capture only parts of a still image and then leave it to the client's web browser to put together.

If I remember correctly, the OV2640 can capture something like 1600x1200, but the ESP32 doesn't have the memory to keep the whole frame in memory. So instead, capture the 800x600 upper left-quadrant, send it to the client, capture the 800x600 upper-right quadrant, send it to the client, and repeat for the lower-left and lower-right quarters of the frame. The client browser then gets four individual JPGs and just displays them in a 2x2 table.

There would probably be a ton of screen-tearing type artifacts when the frame contains motion, but for low-motion scenes it would at least enable full use of the camera's capabilities.

Just an idea.