VOE memory - Our board reports VOE MEM Size = 20,518 KB, Used = 18,717 KB, Free = 1,801 KB. That is 1080p30 H.264 on ch0 plus a 320×180 RGB tap on ch4 for motion detection. Is the 20 MB pool fixed, or configurable? What is the supported budget for main stream + substream + NN inference concurrently?
Thanks for posting!
For documentation, SDK resources, FAQs, and community guidelines, please visit: here
For commercial users, if you would like to have dedicated technical support or to connect with us, please fill in the Private User Form
Happy building with Ameba!
感謝您的分享!
如需查閱技術文件、SDK 資源、常見問題及社群指南,請參考: 這裡
若您是商業用戶,希望獲得專屬技術支援或與我們聯繫,請填寫 Private User Form (商業用戶表單)
祝您使用 Ameba 開發順利!
The VOE heap size is not fixed at 20 MB. It is calculated based on the configured video channels and allocated through video_set_voe_heap().
The two relevant APIs are:
-
video_buf_calc() -
video_buf_heap_calc()— the newer buffer-sizing estimator used byvideo_voe_presetting_by_params().
Therefore, the reported 20,518 KB VOE pool reflects the memory allocated for the current video configuration, including 1080p30 H.264 on ch0 and the 320×180 RGB channel on ch4. If the resolution, bitrate, or channel configuration changes, the required VOE heap size can be recalculated accordingly. Depending on the implementation, the video pipeline may need to be reinitialized for the new allocation to take effect.
Adding a second video channel (e.g., ch1 at 640×360 H.264) will increase the VOE memory requirement due to additional ISP buffers, encoder reference buffers, encoder output buffers, and ISP/ENC common buffers. The required pool size can be recalculated using video_buf_heap_calc() or video_voe_presetting_by_params() with the additional channel enabled.
NN inference (ch4 / DDR NN region): The NN model memory is allocated from a separate DDR region, not from the VOE pool. The linker script defines distinct regions:
VOE (rwx) : ORIGIN = 0x70000000, LENGTH = 0x70100000 - 0x70000000 /\* 1MB \*/
DDR (rwx) : ORIGIN = 0x70100000, LENGTH = 0x73000000 - 0x70100000 /\* 49MB \*/
NN (rwx) : ORIGIN = 0x73000000, LENGTH = 0x74000000 - 0x73000000 /\* 16MB \*/
References:
Thank you for resolving this query, will implement this.