Giter Site home page Giter Site logo

`cam_hal: EV_VSYNC_OVF` when trying to capture in RGB565 or YUV422, in 1024x768 or 1600x1200, while capturing in 1280x1024 is okay about esp32-camera HOT 6 OPEN

SYPark0795 avatar SYPark0795 commented on August 26, 2024
`cam_hal: EV_VSYNC_OVF` when trying to capture in RGB565 or YUV422, in 1024x768 or 1600x1200, while capturing in 1280x1024 is okay

from esp32-camera.

Comments (6)

SYPark0795 avatar SYPark0795 commented on August 26, 2024 1

I still would like to hear the answer...

from esp32-camera.

macksal avatar macksal commented on August 26, 2024

EV-VSYNC-OVF is output when a VSYNC event can't be posted to the internal event queue. Events are posted by DMA and VSYNC interrupts and consumed by the camera task. The camera task is ultimately responsible for initiating DMA. The event overflow means that the CPU can't keep up with the events coming from the queue.

What's your XCLK/framerate? Remember RGB565 in particular is 2 bytes per pixel.

On the ESP32-S3, you can enable "psram mode", I think by setting xclk=16mhz. This removes the extra copy from "bounce buffers" during the frame, so the bottleneck usually becomes the memory bus rather than the CPU. Keep in mind the memory bus has a hard write limit of 80MB/s, but you're still competing with the same SPI bus used by the cpu to access psram/flash and the practical limit is much lower in non-ideal scenarios.

I haven't used RGB565 or YUV formats myself, and it is possible there's a bug. Since you're only seeing the issue at higher resolutions though, I think you are likely maxing out the bandwidth of either the CPU or memory bus.

from esp32-camera.

SYPark0795 avatar SYPark0795 commented on August 26, 2024

I think I experimented with config.xclk_freq_hz both on 20mhz and 16mhz.
EDIT: For the framerate, I'm not doing anything fast. I'm just experimenting if high quality / RAW capturing is possible at all. I do have config.grab_mode = CAMERA_GRAB_WHEN_EMPTY; in the code, if this matters. What I'm interested in is high quality photo, and high framerate is not needed whatsoever - 1 shot / 10 min at best.

The issue is not only at higher resolutions. Why does it have the same issue on 1024x768, but not on 1280x1024? Why is YUV422, having half the size, behaving the same regarding the resolutions if the bandwidth is the problem?

(Just in case, I have not transferred the image to confirm if the image looks okay. Is it possible that 1280x1024 is being "captured" but actually garbled?)

from esp32-camera.

SYPark0795 avatar SYPark0795 commented on August 26, 2024

I have just tried config.xclk_freq_hz at 16MHz, and it makes the MCU fail to detect the camera

Initializing the camera...
Heap: 368271/423603, 270336 max block
PSRAM: 8385720/8388608, 8257536 max block
I (6891) s3 ll_cam: DMA Channel=0
I (6891) cam_hal: cam init ok
I (6901) sccb: pin_sda 40 pin_scl 39
I (6901) sccb: sccb_i2c_port=1
E (6921) camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND)
E (6921) gdma: gdma_disconnect(305): no peripheral is connected to the channel
Camera initialization failed

With xclk at 20MHz, both RGB565 and YUV422 are still failing on 1024x768, succeeding on 1280x1024, failing on 1600x1200.
I remember experimenting on 16MHz as well, so this is odd... I'll be experimenting a bit more with the menuconfig options, and update if anything different happens.

from esp32-camera.

github-actions avatar github-actions commented on August 26, 2024

This issue appears to be stale. Please close it if its no longer valid.

from esp32-camera.

github-actions avatar github-actions commented on August 26, 2024

This issue appears to be stale. Please close it if its no longer valid.

from esp32-camera.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.