当前位置:
文档之家› 达芬奇解码视频或音频或语音文件
达芬奇解码视频或音频或语音文件
2017/4/21
青岛理工大学
通信学院
3
main.c
main.c:只要算法实现了XDM(标准)接口,就需 要一个main.c的程序去初始化CE,然后用其他 配置脚本来创建一个服务器镜像*.x64P. 在 main.c里面除了调用CERuntime_init()初始化 CE外,就是对于trace相关函数的初始化和处理 。
2017/4/21
青岛理工大学
通信学院
4
XDC相关文件
package.xdc /*--------------声明包名-----------------*/ package server{}
package.bld 声明所必须包含的包,链接命令脚本,tcf文件和一些源文 件,定义编译属性、平台和对象等.
2017/4/21
青岛理工大学
通信学院
15
Decode.cfg
/* Load support for the Codec Engine */ var osalGlobal = eModule( 'ti.sdo.ce.osal.Global' ); /* Configure CE to use it's DSP Link Linux version */ osalGlobal.runtimeEnv = osalGlobal.DSPLINK_LINUX;
解码视频或音频或语音 文件
程雷雷
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";
驱动器上。解码后的信号被送到LCD显示器上和扬声器上。
2017/4/21
青岛理工大学
通信学院
12
解码
2017/4/21
青岛理工大学
通信学院
13
解码
程序支持的解码格式:H.264、MPEG4、MPEG2、AAC、MPEG1 Layer 2、 G.711 应用基于在DM6446的ARM部分运行的Linux操作系统,视频和语音信号通过 解码引擎 传递给DSP上的视频解码器,传递数据时使用共享内存。
2017/4/21
青岛理工大学
通信学院
14
解码
前步的启动操作通知程序:需要将文件test.mpeg4中编码的图象进行解 后显示(视频播放),采用循环播放和键盘输入控制。 -观察视频播放。用“hide”命令可开关OSD显示,用“stop”命令退出。 -播放视频和声音。在超级终端的提示符root@(none): /opt/dvevm#下 输入以下命令: ./decode -v data/videos/davincieffect_pal.264 -s data/sounds/davincieffect.g711 -l –k -停止演示退出。在超级终端中输入“stop”命令停止程序运行。
2017/4/21
青岛理工大学
通信学院
19
2017/4/21
青岛理工大学
通信学院
20
完
谢谢
2017/4/21
青岛理工大学
通信学院
21
基本的处理器控制 跨多个处理器的共享/同步存储器池 用户事件的验证 对共享数据结构互助的独占访问 基于数据流的连接清单 逻辑通道上的数据传输 基于DSP/BIOS的MSGQ模块的消息 基于数据流的环形缓存器
青岛理工大学 通信学院 9
2017/4/21
DSP/BIOS Link的软件架构图
2017/4/21
青岛理工大学
通信学院
5
server.cfg(cs配置的重点)
/*第一部分:声明运行环境和各种编解码模块, 与CE.cfg类似*/ /*--------------set up OSAL----------------*/ var osalGlobal = eModule('ti.sdo.ce.osal.Global'); osalGlobal.runtimeEnv = osalGlobal.DSPLINK_BIOS; 注:这两句是设置全局的模块使配置脚本生效,然后是设置引擎的运行环境,即 需要用的DSP/BIOS Link,与CE.cfg有点区别). /*---------------server Cofiguation---------------*/ var Server = eModule('tisdo.ce.Server'); Server.threadAttrs.stackSize = 16384; Server.threadAttrs.priority = Server.MINPRI;
/* Enable SoCrates tracing in the demo */ var TraceUtil = eModule('ti.sdo.ce.utils.trace.TraceUtil'); TraceUtil.attrs = TraceUtil.SOCRATES_TRACING;
2017/4/21
青岛理工大学
通信学院
10
解码
使用编解码器来解码来自文件和输出的数据使用外 围设备驱动程序的未压缩数据。视频,音频并支 持语音文件。所有文件必须由原始编码组成数据 帧(基本流)。
2017/4/21
青岛理工大学
通信学院
11
解码
解码程序
-启动程序。在超级终端中进行以下操作:
root@(none): /opt/dvevm# ./decode -v test.mpeg4 -l -k Decode demo started. Command [ 'help' for usage ] > -解码程序功能。 解码程序播放选择的音频、语音和视频文件,可以挑选视频源文件或音 频、语音源文件,这些文件存储在ICETEK-DM6446-EVM 系统的硬盘
2017/4/21 青岛理工大学 通信学院 18
/* Remote server image */ demoEngine.server = "./decodeCombo.x64P";
Program.main = Program.system = null; 一个DSP核只有一个DSP SERVER(就是编译出来的 cs.x64P)
2017/4/21
青岛理工大学
通信学院
16
/* Load support for the decoders */ var G711DEC = eModule('ti.sdo.codecs.g711dec.ce.G711DEC'); var AACDEC = eModule('ti.sdo.codecs.aachedec.ce.AACHEDEC'); var MP3DEC = eModule('ti.sdo.codecs.mp3dec.ce.MP3DEC'); var H264DEC = eModule('ti.sdo.codecs.h264dec.ce.H264DEC'); var MPEG2DEC = eModule('ti.sdo.codecs.mpeg2dec.ce.MPEG2DEC'); var MPEG4DEC = eModule('ti.sdo.codecs.mpeg4dec.ce.MPEG4DEC');
2017/4/21
青岛理工大学
通信学院
17
/*
* ======== Engine Configuration =======
*/
var Engine = eModule('ti.sdo.ce.Engine'); var demoEngine = Engine.create("decode", [ {name: "g711dec", mod: G711DEC, local: false}, {name: "aacdec", mod: AACDEC, local: false}, {name: "mp3dec", mod: MP3DEC, local: false}, {name: "h264dec", mod: H264DEC, local: false}, {name: "mpeg2dec", mod: MPEG2DEC, local: false}, {name: "mpeg4dec", mod: MPEG4DEC, local: false}, ]);
2017/4/21
青岛理工大学
通信学院
6
/*get codec modules;i.e.implementation of codecs*/ var H264DEC = eModule('codecs.h264dec.H264DEC'); //与CE.cfg同,注意H264DEC标识的使用. Server.algs = [ {name:"h264dec", mod:H264DEC,threadAttrs:{stackSize:4096,stackMemId:0,p riority:Server.MINPRI+1} }, {...if have..}, ];