DaVinci框架组成和不同应用的组件使用情况

1 篇文章 0 订阅
1 篇文章 0 订阅

DaVinci框架组成和不同应用的组件使用情况



Author: ZZ
Time: 2015/5/18 10:22:27

DaVinci框架主要指DVSDK的开发框架



说明:该文档翻译整理自TMS320DM3730_Software_Developers_Guide

总体框架

整个框架包含的主要组件和依赖关系如下图:(蓝色框为TI开发,灰色框为开源项目支持)

图1.DVSDK框架

软件框架包括
  • TI开发软件:

    • DVSDK demos
    • Codec Engine(解码器引擎)
    • Multimedia Codecs(多媒体解码器)
    • Platform Support package(平台支持包)
    • Neon accelerated Qt(Neon技术加速的Qt)
    • Accelerated OpenGL
    • Framework Components
    • DSP/BIOS
    • DSPLINK
    • c6accel
  • 开源软件:

    • DaVinci Multimedia Application Interface(DMAI)
    • GStreamer
    • GStreamer plugin for accelerated multimedia
    • Qt/Embedded
    • RTSC(XDC)
    • Linux kernel

下面将分组件介绍进行相应开发的组件使用情况

1 开发基础的linux应用

基础的Linux开发

主要使用组件包括:

  • GCC工具链
  • Open Source Linux libraries
  • 平台支持包(PSP)
  • Linux内核

图2.基本Linux应用组件使用情况

2 DSPLink应用

DSPLink是跨GPP-DSP边界的核间通信(IPC)基础软件(foundation software)。它提供了对GPP和DSP间物理连接属性进行了抽象的通用API(generic API)。该软件可以消除用户相关连接的开发,进而专注于任务。

该软件可用于:

  • 含GPP和一个DSP的片上系统(SOC)
  • 分离(discrete)的GPP和DSP

DSPLink的特性:

  • 为应用程序提供了通用的API
  • 对应用程序隐藏了平台/硬件相关的细节
  • 对应用程序隐藏了GPP操作系统相关的细节
  • 应用于一个平台的DSPLink应用可以直接工作在另一个平台/操作系统的组合上而不进行或者是很小的代码修改
  • 允许应用程序弹性的使用最恰当的高/低层协议
  • 允许应用程序对DSPLink根据需要进行裁剪

主要使用组件包括:

  • DSP/BIOS
  • DSPLink
  • C6000 Code Generation Tools(cgt,TIdsp代码生产器)

图3.dsplink应用组件使用情况

3 C6Run应用

首先C6Run的命名中的C6指代C6000 DSP。c6Run软件的主要目的是为那些已经习惯使用ARM GCC交叉编译器为Linux开发软件的开发人员简化初始开发(initial development)和DSP的代码加载。

C6Run包括两个主要的组件:

  1. 一个用于从TI软件技术和C6Run工程本身代码编译出后台库的编译系统

  2. 前端脚本(Front-end scripts),用于包裹TI C6000 cgt使得其为类GCC的接口风格。同时该脚步也使用后台编译系统编译ARM侧的可执行文件或者使得DSP能更加简易使用的库文件。

C6Run工程有两种用法,通过两种不同的前端脚本实现:

  • C6RunLib

    • 顾名思意就是编译库成文件,将C代码编译成静态的库文件。这个可以使得用户可以将程序的部分放在ARM端,别的部分放到DSP端。
  • C6RunApp

    • 该工具表现的像一个DSP的交叉编译器,允许为多种TI异构处理器的C6000 DSP核编译可移植的C语言应用。
    • C6RunApp的前端包含一个叫c6runapp-cc脚本,它可以编译C代码到C6000工程并链接C6000工程到应用中。当表现为链接操作时,该工具使用数个步骤(包括C6000 cgt)从DSP工程中生成一个ARM侧的可执行文件。

主要使用组件:

  • LinuxUtils(支持框架组件的Linux相关功能,主要用于分配连续空间和在GPP和DSP间共享数据-CMEM module)
  • RTSC(XDC,用于配置和编译DSP/BIOS的工具)
  • Local Powe Manager(不是所以平台都需要)
  • DSP/BIOS
  • C6000 Code Generation Tools

图4.c6run应用组件使用情况

4 C6Accel应用

C6Accel包(package)将关键的DSP软件核(software Kernels)封装到了一个xDAIS算法中使得在ARM侧使用简单的API就可调用。C6Accel是内建在Codec engine中的,符合IUniversal框架,可用于只有DSP的设备,也可以用于ARM+DSP的设备。

C6Accel的目的:为ARM用户提供计算能力的加速,如色彩空间转换、滤波、图像/信号处理。C6Accel的库针对DSP就行了性能优化,允许用户将DSP当成一个加速器使用。

使用C6Accel的好处:

  1. Ready to use kernels(即用核):优化了并打包到一个包的DSP核(kernels)库文件,减少学习曲线和市场化时间。
  2. Easy to interface(接口简单):在ARM进行DSP功能的调用时,其ARM侧的API抽象了复杂的细节。
  3. Easy Portability(移植简单):在TI C6x设备间移植。
  4. Efficient multiple call execution(高效的多调用执行)
  5. Easy Evaluation of DSP performance(方便对DSP性能进行评估)
  6. Parallel processing(并行处理):异步调用使得可以在DSP和ARM上实现并行执行。
  7. Simple Template to add function on DSP:可以使用C6Accel算法作为模板定制自己的功能。

主要使用组件:

  • Codec Engine:为应用程序提供多媒体解码器和其他算法。
  • LinuxUtils:主要包括EDMA module 、CMEM module 、IRQ module。
  • RTSC(XDC)
  • XDAIS:TI算法接口标准(Algorithm Interface Standard),被Codec Engine和其他组件使用。
  • DSPLINK

图5.c6accel应用组件使用情况

5 DMAI应用

DaVinci Multimedia Application Interface(达芬奇多媒体应用接口),在Codec Engine和Linux kernel上的轻量级功能层。

使用DMAI的好处:

  1. Codec Engine是使codecs的调用更容易,但DMAI提供了语义(semantic)使得codecs即插即用(plug & play)。
  2. DMAI将Linux的设备驱动包裹进了一个专注多媒体功能的API中,避免开发者因为快速的Linux内核变化带来的移植任务。
  3. DVSDK示例软件和gst-ti插件写在DMAI上。如果你能使一个codec能和示例程序工作,那么它也可能和其他应用也能一起工作。

主要使用组件:

  • Codec Engine:为应用程序提供多媒体解码器和其他算法。
  • Framework Components
  • LinuxUtils:主要包括EDMA module 、CMEM module 、IRQ module。
  • DMAI
  • Multimedia Codecs
  • RTSC(XDC)

图6.DMAI应用组件使用情况

6 Qt应用

Qt/Embedded是一个对Linux帧缓存设备进行图形渲染的图形用户接口开发套件。而不同于嵌入式的QT,基础的QT是对X11图形用户接口进行渲染而不是对基础的帧缓存。

主要使用组件:

  • QT/Embedded:提供图形用户接口工具套件

![](./DaVinciImg/qtapp.JPG)<!--使用相对路径-->

图7.Qt应用组件使用情况

7 GStreamer应用

GStreamer是一个开源的多媒体框架(open source multimedia framework),允许为互联的插件构建管道来处理多媒体内容。其中有个插件通过使用DMAI和Codec Engine加速多媒体。在DMAI上进行开发可以获得A/V同步和使用很过开源插件的功能。

主要使用组件:

  • GStreamer:多媒体框架

图8.Gstreamer应用组件使用情况

END


2015/5/19 10:53:49

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值