This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM81xx RDK Link概述

首先理解什么是Link

要理解什么是Link,首先让我们看看M3System_LinkObj的结构
typedef struct System_LinkObj {
    Utils_TskHndl *pTsk;
    System_LinkGetOutputFramesCb linkGetFullFrames;
    System_LinkPutEmptyFramesCb linkPutEmptyFrames;
    System_LinkGetOutputBitBufsCb linkGetFullBitBufs;
    System_LinkPutEmptyBitBufsCb linkPutEmptyBitBufs;
    System_GetLinkInfoCb getLinkInfo;
} System_LinkObj;
从中我们首先看到的是Utils_TskHndl指针,说明Link首先要有一个task的实体,这个实体做什么呢?就是完成数据处理.处理什么数据呢?可以看到定义了四个函数指针,framebitbuf,
这样相应的数据就出来了,主要是处理frame或者bitbuf,frame一般就是我们说的图像frame;bitbuf则是bit,可以是码流或者其他流.
    System_LinkGetOutputFramesCb linkGetFullFrames;
    System_LinkPutEmptyFramesCb linkPutEmptyFrames;
    System_LinkGetOutputBitBufsCb linkGetFullBitBufs;
    System_LinkPutEmptyBitBufsCb linkPutEmptyBitBufs;
这四个函数主要实现的功能就是从link中获得相应的数据以及将相应的数据归还给link
getLinkInfo则是获得link输出数据的详细信息的方法.
从而看出要实现link主要是
1. 创建一个任务实体
2. 根据要处理的数据填写相应的函数指针

  • 您好:

            我现在正在使用8168产品,但是现在遇到一些问题,希望您能给与一些建议,首先就是MCFW架构,在Ti给的demo中没有找到关于ARM和DSP通信的例程,我们想做的就是在ARM端调用DSP的算法,不知道这个里面有没有类似与之前的CodecEngine的东西,使二者能够结合工作,还有他们说在运动检测的demo中有关于M3和DSP的通信 但是我没有找到相关的例程,所以想知道他们之间是怎样实现通信的,谢谢您!!!

  • 这部分是syslink相关的内容,可以参考syslink的文档.

  • 您好:

           我想给予mcfw的采集和显示的框架下,做一下视频图像处理,在上面加一些自己的视频图像处理的算法,(使用的是DVRRDK_02.00.00.23)但是编译执行之后看不到有什么变化! 请问一下如果是自己的算法,应该放在什么位置?我现在将自己的算法加在demo_vcap_venc_vdec_vdis_bits_rdwr.c的VcapVencVdecVdis_ipcBitsProcessFullBufs这个函数,在他的后面加了自己的处理算法,但是变异通过之后没有效果,请问一下他的数据传输过来之后是在哪个地方存储,使用的什么方式传递?谢谢您!!!

  • 你希望做什么样的图像处理?能否介绍一下,我们可以根据你的需求提供一些建议的数据流和方案。

  • 你好:初期的话做一下简单的增强,边缘提取,灰度处理,等;后期的主要是一些大型的图像匹配的算法(主要是想用DSP执行)!但是现在不知道这些算法怎么样往DSP上添加?

  • 在RDK demo里,multich_progressive_vcap_venc_vdec_vdis.c中有将图像采集下来、送入DSP处理的数据通路。

    处理的是YUV数据,你需要用自己的代码替换掉demo中的算法,在这个demo中,DSP用来添加OSD,算法部分都在函数AlgLink_OsdalgProcessFrame中

    你可以把你的算法写在这个函数里,就可以实现用DSP处理YUV数据的功能。

  • 您好,郭老师:

        我现在也在OSD上做一些修改,用于处理图像,做一些边缘检测。

        我是在/opt/DVRRDK_02.00.00.23/dvr_rdk/mcfw/src_bios6/links_c6xdsp/alg_link/swosd这个目录下的osdLink_alg.c中的AlgLink_OsdalgProcessFrame(AlgLink_OsdObj * pObj, FVID2_Frame *pFrame)这个函数进行修改,思路是想从接受的码流中提取一副图像的信息,存到一个数组中然后再对数组进行算法处理,但是从输入的码流(YUV 数据)中不知道如何提取?而且处理完了之后不是还要送到编码吗?怎样能将处理的结果直接送到显示呢?谢谢!!!