TI中文支持网
TI专业的中文技术问题搜集分享网站

XDAIS算法标准中的资源管理问题

在Codec Engine架构里,如果DSP Server中包含两个Codec,我个人的理解是,其调用过程大致如下(以encodedecode为例):

hEngine = Engine_open(envp->engineName, NULL, NULL);
hVe1 = Venc1_create(hEngine, envp->videoEncoder, encParams, encDynParams);
hVd2 = Vdec2_create(hEngine, envp->videoDecoder, decParams, decDynParams);
Venc1_process(hVe1, hVidBuf, hEncBuf);
Vdec2_process(hVd2, hEncBuf, hVidBuf);

因此我觉得,两个Codec还是串行执行的。

对于内存等公共资源来讲,XDAIS算法标准中强调算法自己不要管理资源,特别是不要使用malloc等函数。我的问题是,如果Codec是串行执行的,那么算法中使用malloc,除了不方便内存共享之外,会有什么问题?会造成内存冲突吗?

Chris Meng:

你好,

一般算法使用的都是连续的物理地址,TI使用CMEM来保留连续物理地址给算法。XDAIS是为了实现算法提供给不同用户都可以正常使用。如果你在算法里面使用了一些资源,对于其他用户使用就可能有问题。如果算法只给你自己使用,我认为没有太大关系。

comeback:

回复 Chris Meng:

谢谢!在我看来,如果在process过程中,使用了一些资源,但在process结束之前又释放了这些资源,应该没什么问题啊。如你所说,“如果你在算法里面使用了一些资源,对于其他用户使用就可能有问题”,我就想知道可能的问题是什么,能否举几个例子?

赞(0)
未经允许不得转载:TI中文支持网 » XDAIS算法标准中的资源管理问题
分享到: 更多 (0)