DAVINCI开发原理之四----达芬奇编解码服务器(Codec Server)

编解码服务器(CS)就是一个二进制文件,它集成了编解码器,框架组件和一些系统代码,当CS运行在DSP上时,它使用了DSP/BIOS作为其内核。CS同时包括了对客户请求的相关DSP/BIOS线程。CS可以代表实际的DSP硬件、导入到DSP上的镜像文件以及正在运行的任务,其配置需要两个步骤:
   >通过TCF脚本语言配置DSP/BIOS;
   >通过XDC配置剩下的组件,比如:FC组件、DSP/BIOS Link、Codec Engine等。
   配置完成的服务器镜像文件是在引擎配置文件(ceapp.cfg)中使用的,如前所述的demoEngine.server = "./encodeCombo.x64P";

a. 编译一个编解码服务器
       CS镜像文件的创建过程是通过前面介绍的XDC工具来完成的,所不同的是,CS在创建时需要一个main.c和相关的BIOS配置脚本.tcf文件.
>tcf: 脚本文件主要是对DSP/BIOS内核进行配置,如: 定义DSP的内存映射,设置DSP的中断向量表,创建和初始化其他DSP/BIOS数据对象等,具体可参见video_copy.tcf,注意我在里面添了一个关于trace的参数配置是原来没有的。

>main.c: 只要你的算法实现了XDM接口,就需要一个main.c的程序去初始化CE,然后用其他配置脚本来创建一个服务器镜像*.x64P. 在main.c里面除了调用CERuntime_init()初始化CE外,就是对于trace相关函数的初始化和处理,这部分暂时没有细究。另有一点值得注意,在这里可以实现对cache的重新配置,因为在tcf文件里面对cache的配置可能会不起作用,这是可以在这里以函数代码的方式来配,这点以前没有注意过。这里有点不明白的是,在ceapp_init()中已经做了一次CERuntime_init(),为何在CS处还要做一次?(我觉得是因为先编译CS,生成*.x64P,然后才编译app端,这样就可以理解成: 只要你的算法实现了XDM接口,就需要对CE做初始化CERuntime_init(),而CS的编译是调用了经XDM封装后的codec生成的*.a64P的)

>XDC相关文件:
>>>package.xdc
    /*--------------声明包名-----------------*/
    package server{}  
    (我们目前的.xdc是: package server.video.copy, 此即/server/video_copy/..xdc,应该无需改动)

>>>package.bld: 声明所必须包含的包,链接命令脚本,tcf文件和一些源文件,定义编译属性、平台和对象等。

>>>server.cfg: 这是CS配置的重点,说明如下。
/*第一部分: 声明运行环境和各种编解码模块, 与CE.cfg类似*/
/*--------------set up OSAL----------------*/
var osalGlobal = xdc.useModule('ti.sdo.ce.osal.Global');
osalGlobal.runtimeEnv = osalGlobal.DSPLINK_BIOS;
注:这两句是设置全局的模块使配置脚本生效,然后是设置引擎的运行环境,即需要用的DSP/BIOS Link,与CE.cfg有点区别).

/*---------------server Cofiguation---------------*/
var Server = xdc.useModule('tisdo.ce.Server');
Server.threadAttrs.stackSize = 16384;
Server.threadAttrs.priority = Server.MINPRI;

/*--------------get codec modules;i.e.implementation of codecs-------*/
var H264DEC = xdc.useModule('codecs.h264dec.H264DEC'); //与CE.cfg同,注意H264DEC标识的使用。

Server.algs = [
{name:"h264dec", mod:H264DEC,threadAttrs:{stackSize:4096,stackMemId:0,priority:Server.MINPRI+1} }, {...if have..},
   ];

/*第二部分: DSKT2 and DMAN3的配置:XDAIS算法内存和DMA的分配,参考配置文件*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值