各位好!
现在试着在DSP端添加自己的算法,我们要做车牌识别,所以要高清的图像。
目前任务有两个:(1)将1080高清图像传给DSP,DSP进行处理。(2)DSP处理的图像能够返回M3,这样我们能在PC上看见我们处理的结果。
不知实现的思路是什么?
综合各种资料,我现在已有的一些进展。
在rdk3.5已有的框架上,可以再两处添加DSP算法,Scdlink_alg.c中的函数AlgLink_ScdalgProcessData(),
或者Valink_alg.c中VaLink_algProcessFrames()。模式选择smart_anylist但是遇到的问题是:
(1)在SCD算法中,在AlgLink_ScdalgProcess之前,我添加如下打印信息:
Vps_printf("AlgLink_ScdalgProcess Infomation\n");
Vps_printf("pOutBuf->addr=0x%x\n",pOutBuf->addr);
Vps_printf("pOutBuf->frameWidth =%d,pOutBuf->frameHeight\n",pOutBuf->frameWidth,pOutBuf->frameHeight);
curTime = Utils_getCurTimeInMsec();
AlgLink_ScdalgProcess(pObj, chIdx, (AlgLink_ScdResult *) pOutBuf->addr);
可是最后并没有打印任何信息,难道SCD算法没有执行,还是其他原因?
(2)在VA算法中,打印相信。有返回结果,但是视频帧太小了320X192,并不满足我们的要求。于是想更改视频帧的大小
在Multich_tristream_fullfeature.c中修改:
sclrPrm.outScaleFactor.absoluteResolution.outWidth = 720;
sclrPrm.outScaleFactor.absoluteResolution.outHeight = 480;
编译通过,但是程序运行出错,提示DSP端的内存分配没有成功,于是修改缓冲区的帧数,由8改为3,还是不行。
请问如何修改,才可以传大图像到DSP端?
(3)DSP中也有OSD算法,但是至少在3.5版本中,DSP没有执行,只是调用M3端的OSD算法,是不是这样的?也就是说,网上之前有人说可以再DSP的OSD部分添加自己开发的算法,并不正确。
望不吝赐教!
changquan wang:
更改帧大小后(由320X162改为720X480),dsp端的出错信息为:
[c6xdsp ] IPC_FRAMES_IN:HEAPID:0 USED:304 [c6xdsp ] 12679: IPC_FRAMES_IN : Create Done !!! [m3vpss ] 14058: IPC_FRAMES_OUT : Create Done !!! [c6xdsp ] 12699: VA : Create Done !!! [c6xdsp ] 12699: VA : ALG Init Done !!! [c6xdsp ] 12701: Assertion @ Line: 2213 in links_common/va/vaLink_alg.c: libStatus == DMVAL_NO_ERROR : failed !!! [m3vpss ] 14098: Assertion @ Line: 143 in links_m3vpss/fd/fdLink_tsk.c: pObj->algHndl.fdWidth <= FD_LINK_MAX_WIDTH : failed !!!ApproDrvInit: 7queue id:131076TimeOut occure in boot_proc.Program exit.TimeOut occure in boot_proc.Program exit
dsp代码为:
libStatus = DMVAL_getMemReq(pDmvaHndl,&pAlgObj->params); UTILS_assert(libStatus == DMVAL_NO_ERROR);
函数定义:
XDAS_Int32 DMVAL_getMemReq(DMVALhandle *handle,DMVALparams *createParams) { handle->memTab[0].size = 1024; return DMVAL_NO_ERROR;}
changquan wang:
回复 changquan wang:
UP!
simon blak:
回复 changquan wang:
同样的问题,兄弟我搬凳子在论坛坐等很久了,呵呵
也咨询过fae,几乎没人回答。。。
simon blak:
回复 simon blak:
hello
changquan wang :
请问你的问题解决了吗?
192*320,尝试修改为打尺寸的图像,为何原来它只传这么一点?包含了所有的Y信息吗?
该尺寸和1280*720,1920*1080等分辨率有什么关系,没有明白。能否共享一下?多谢
changquan wang:
回复 simon blak:
没有,这个问题现在搁置了。在弄另外一个东西。
VA算法前有一个SClink,对720X480的图像进行下采样为192*320。
这样做的好处是,在进行DSP某些算法处理的时候,可以减少运算量,提高速度。例如镜头遮挡算法,用1080P与192的图像,做出来的效果是一样的。但是用小图快很多。
小图当然不会包括所有Y分量,因为进行了下采样。
simon blak:
回复 changquan wang:
谢谢了。
你其他帖子里边的问题:
请问你在什么地方看到加入scd.ae674的?或者你知道怎么在DVRRDK包中加入scd.ae674
我正好知道。呵呵 rules_c674.mk 中 $(MCFW_ROOT_PATH)/mcfw/src_bios6/alg/scd/lib/scd.ae674 \
scd处理算法不被调用的原因是没有把该link连接进links chain中去,但是奇怪为什么他还能通过scd检测摄像机篡改?
TI的技术支持不给力啊,希望多交流。
changquan wang:
回复 simon blak:
是啊,怪怪的!
PKF:
回复 changquan wang:
额 你的问题解决了吗?
dx c:
回复 PKF:
我现在也要加DSP算法,有新的消息吗?
ziwen pan:
加在alg_link中的打印没有出来,那是因为这个Link没有跑起来,你要修改usacases。另外要实现你的方案,要修改alg_link,因为原本的Alg_link是不能往下传的。