# Rendering Multiple NES Tetris thingos

Thread in 'Discussion' started by XaeL, 18 Mar 2020.

1. ### XaeL

Yikes! Do you have a pi3 or similar for testing? it's not an ezcap but my understanding was that rasppi 3 could decode and display 30fps on certain capture cards.

This $70usd card runs 30fps on rasppi 2 Obvs you can't use that card due to budget but just looking at uvc stream performance it looks feasible on pi3 ($50+10)/setup. Though of course testing is paramount

Last edited: 21 Apr 2020
2. ### Muf

Yeah Pi3 is fine, he's talking about the Pi Zero (which is a minified Pi1).

3. ### XaeL

Ahh, so yikes but not too yikes.

What are you using to get the image in? OpenCV?
You might want to try using threading (i know its only got one core, but read on)
OpenCV.read blocks until the capture card is ready, then gets the image.
I.e. OpenCV.read = (block up to 33ms) (copy image) = 72ms
The blocking could be up to 1/30 of a second, so i'm guessing the grabbing of image based on your report is 40-72ms

*I don't think threading will be good enough to get you to 30fps*, but a few more tests could be done to see if threading at least helps (or maybe it just works, but i super heavily doubt it)
https://github.com/alex-ong/NESTrisOCR/issues/24
or
http://blog.blitzblit.com/2017/12/24/asynchronous-video-capture-in-python-with-opencv/

I'm guessing it could improve performance from 13~fps to say 20. That might be borderline "good enough" for CTEC. Maybe worth a short try before giving up?

4. ### K

to be honest, i'm just bored about digging in that shit. I'll just try to optimize the program for rasp3 or 4 and try to connect mutiple UVC to it. And that's it. i have other project for myself related to TGM i would prefer to explore.

5. ### XaeL

Ahh ok.

That's a good idea!