DM8168板子上连接了四个鱼眼相机 ,相机接收到的图像经过浮点运算处理之后,画面卡的不能动了,我把对画面处理的函数加在了/opt/DVRRDK_02.00.00.23/dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/algLink_priv.c函数中
帮忙分析一下,是什么原因导致相机的画面变卡?
Louis:
视乎是性能相关的问题,建议使用Vsys_printDetailedStatistics函数把运行的一些统计信息打印出来确认一下,可以参考RDK中的:DM81xx_DVR_RDK_Debug_Statistics.pdf。
hanchun:
回复 Louis:
我找了半天,也没找到这个pdf文档的位置。具体位置在哪?麻烦告知一下
brad white:
回复 hanchun:
你这个问题解决了吗?
brad white:
这个问题解决了吗?。。。怎么只是memcpy一下 不做其余动作都会消耗20ms?。。这里是不是需要使用dma?怎么用?。。。
Chris Meng:
回复 brad white:
Brad,
你是多大的图做memcpy? 能用EDMA的还是用EDMA,可以留DSP资源处理输出。DVR RDK里面有使用edma的函数接口,你可以参考使用。
brad white:
回复 Chris Meng:
图像大小是1080P的啊。memcpy到一个数组,然后再memcpy回去,每帧运行时长就到达了20-22ms,输出的视频画面掉帧很厉害。还有就是1080p的为什么在dsp里面处理的时候需要处理1080*2176的数据?开始按照1080*1920处理,处理结果不正常,最后改成2176才正常,这是为什么?。。。dma拷贝是类似SWOSD_TI_algDmaCopy这样的吗?谢谢回复
Chris Meng:
回复 brad white:
Brad,
是不是你们的算法有对齐的要求?
dma的函数请参考\mcfw\src_bios6\utils\src\utils_dma.c
brad white:
回复 Chris Meng:
好的 谢谢 就是在视频画面上画一个长方形框出来。按1920的话 横着是正确的,但是竖着就是一些无规律的点。按2176才正常
Chris Meng:
回复 brad white:
Brad,
你看看你申请的buffer的宽度是否就是2176?
brad white:
回复 Chris Meng:
你好 不是的,数据进来什么都没做,也没有memcpy,直接对pframe-addr[0][0]进行处理都需要2176.。很奇怪的问题