I had thought '2' was the answer, but today I tried running a third stream and it seemed to work just fine. Is there any way to know how far you can go? Is there a mechanism to monitor the load on the accelerator hardware?
I'm being asked to close this question. While I appreciate/respect @malik_cisse 's response, I would really like to verify the absolute maximum bit rate that the VPU can handle from NXP. Can someone from NXP point me to a document or state what the absolute maximum VPU bit rate is?
>>Can you point me to any NXP documentation that discusses this?
This is based on my 20 years experience with h264 encoders (I wrote one myself from scratch for an FPGA) and my imx8m experience so far.
IMHO you can run any numbers of encoder instances. The limit is fixed by the maximum resolution and framerate of the VPU (usually 1920x1080 at 30fps) depending on the imx8 model used.
Lets say your VPU limit is 1920x1080 at 30fps and you want to encode 2 streams at 1920x1080 at 30fps, what happens is that your encoder output will only deliver 15fps per stream.
However you will be able to encode 2 streams 1280x720 at 30 fps or 4 such streams at 15fps each.
This should scale linearly with a small offset.
VPU designers implement what is called "scalable designs" in the asic world.
I hope this helps
Very helpful, thanks for responding...
Can you point me to any NXP documentation that discusses this?