
达芬奇软件架构与开发流程(For_).ppt
59页目录目录 达芬奇(DaVinci)软件开发 目录目录 一、达芬奇软件架构 及开发流程 二、 Codec创建DSP Server 三、 Codec Engine概述 目录目录 达芬奇(DaVinci)软件开发 --------------------------------------------------------------------------------------------------------------- 什么是达芬奇技术? TI 的 DaVinci™ 技术是一组专门为高效和引人注目的数字视频而设计的基于 DSP 的系统解决方案-----------------适用于数码摄像机、视频安全设备、高级医疗成像 设备、便携式视频播放器或任何其它您能想象得到的视频应用 成功实现数字视频需要四大要素的最新进步,即:处理器、开发工具、软件以及 系统专业技术由于能够在集成这四种要素的平台中实现数字视频、音频、语音与话 音技术,因此达芬奇技术可以为数字视频的当前变革打下基础 达芬奇技术充分利用了 TI 25 年的数字信号处理与集成电路专业技术来提供系统 级芯片(SoC),这种系统针对灵活的数字视频实施而进行了精心优化,拥有业界领先 的性能并集成了可编程数字信号处理器(DSP)内核、ARM处理器以及视频加速协处理 器。
凭借高效的处理能力、存储器、I/O带宽、平衡的内部互连以及专用外设组合, 基于达芬奇技术的SoC能够以最低的成本为视频应用提供理想的核心动力 处理器自身只能用作数字视频解决方案的基础管理数字视频系统的所有组件是 极其复杂的工程难题对于许多应用来说,数字视频只是更为庞杂的系统的众多组件 之一工程师随意地在自视为基础技术方面投入大把时间和资金的好日子已经一去不 复返了 目录目录 达芬奇(DaVinci)软件开发 --------------------------------------------------------------------------------------------------------------- 为了真正意义上地让开发人员克服最初的障碍并且加快产品上市进程,仅仅开发 实施数字视频的基础芯片和软件已经远远不够开发人员不仅需要处理器,他们还需 要 能够直接投入生产的理想代码换句话说,为了满足其应用的特定需求,开发人 员还需要已经集成到可配置或轻松编程的数字视频子系统的硬件和软件 正像汇编语言向 C 语言的过渡使开发人员能够全力开发更高级功能性那样,达芬 奇技术使开发人员能够摆脱数字视频的具体技术细节。
现在,开发人员不再需要了 解其视频应用中实施具体 CODEC 引擎(如:MPEG-2、H.263、WMA9)的细节利用 允许开发人员无需修改上层应用代码即可以使用理 想 CODEC 的 API,我们可以显著 简化视频 CODEC 处理的具体低层次细节 摆 脱 CODEC 的困扰是数字视频广泛普及的重要一步当开发人员可以立足于以 前开发的功能性,创新就已经来到他们眼前例如,在过去开发电子器件时,即使是 最基本的功能,工程师们也需要进行栅极布局许多年来,TI 等公司始终致力于在硅 芯片中集成功能,为超越自身功能期望的器件打下了基础,同时也降低了实现预期目 标所需要的工程量例如,由于提供了显著加快信号处理任务的计算引擎,DSP 的问 世已经推动了数十载的技术创新 利用达芬奇技术,TI 可以再度实现全新的创新水平正是 DSP 的问世带来了计 算加速,因此达芬奇技术会以 TI 的 DSP 为基础来提供应用加速开发人员不再需要 了解各种音频、视频、影像以及语音 CODEC 背后的机制 目录目录 一、达芬奇软件架构 及开发流程 目录目录 Davinci 软件平台概述 用户软件 用户程序,框架,GUI 设备 驱动 Codec APIs ARM/DSP 通信 Linux操作系统 ARM RISC VideoImage SpeechAudio Socket Nodes DSPLinkDSP/BIOS DSP 外设 目录目录 Codec Engine 2.30 Engine Algorithm API Algorithm API A-Node Task S-Node Task DSKT2 DMAN3 ACPY3 RMAN Codec Engine Remote Server Framework Components 2.30 xDM API Codec/ 算法 xDM API Codec/ 算法 OMAP-L137 Software Architecture ARM 子系统DSP 子系统 Linux 用户空间 Linux 内核空间 Transport I/O I/O I/O USB 2.0 Driver CMEM Driver McASP Driver EMAC Driver MMC/SD Driver SPI Driver Linux APIs Link Driver UART Driver DSP/BIOS Link v1.6x DSP/BIOS 5.3x 应用程序 OSAL Server CCS 3.3/CGTMontaVista Pro 5.0 Toolchain LCD Driver I2C Driver GPIO Driver PSL 目录目录 Codec Engine 2.30 Engine Algorithm API DMAN3 Framework Components 2.30 C6747 Software Architecture DSP 系统 USB 2.0 Driver McASP I2C Driver CMEM Driver EDMA Driver GPIO Driver EMAC Driver MMC/SD Driver SPI Driver UART Driver 应用程序 ACPY3 DSK2DMAN DSP/BIOS 5.32 LCD Driver NAND Driver ERTFS Driver CCS 3.3/CGT xDM API Codec/ 算法 xDM API Codec/ 算法 功耗管理 Power Manager (PWRM) PSL 目录目录 达芬奇DMSoC软件概述 --------------------------------------------------------------------------------------------------------------- 达芬奇DMSoC软件概述 一般来讲,软件系统分为应用层、信号处理层和I/O层三部分,TI提供的达芬奇参 考软件框架就是基于这样的结构,如下图所示。
图1 目录目录 达芬奇DMSoC软件概述 --------------------------------------------------------------------------------------------------------------- 应用层:工程师可以在系统的用户空间在系统功能性上添加和发挥自己的特色 信号处理层:通常都运行在DSP一侧负责信号处理,包括Video/Audio编解码算法、 Codec Engine、DSP的实时操作系统DSP/BIOS及和ARM通信的模块 信号处 理层(SPL)一方面通过VISA API接口与应用层(APL)连接,另一方面则通过DSP/BIOS与底层内核沟通 I/O层:就是我们通常所说的驱动,是针对Davinci外设模块的驱动程序 其中应用层通过Codec Engine的VISA API来调用DSP侧的算法,通过EPSI(Easy Peripheral Software Interface)API来 访问和操作Davinci的外设 这三个部分通常对应三个Davinci软件开发小组当然还需要一个系统集成工程师把这三个部分集成起来,不过 VISA API和EPSI API的存在已经大大简化了集成工作的复杂程度。
目录目录 Codec Engine概述 --------------------------------------------------------------------------------------------------------------- 下图给出了这种框架的结构示意图 共享DDR2存储器----ARM与DSP之间共享内存,进行物理数据交换 DSPLink---------------双核通信的基础软 件,为开发人员提供通用的API,用于描述ARM 与 DSP之间通信的物理链路的特征 引擎功能层------------用于管理算法对象的实例,例如创建一个对象的具体过程等 VISA层-----------------面向引擎功能层的一个接口,用于定义创 建、删除和使用一个特定符合 XDM标准的算法的进程由于Codec Engine的主要任务是为从ARM发起的VISA命令控制远程 的XDM算法起到一个管道的作用,因此VISA层实际 上就代表了XDM接口层 目录目录 达芬奇软件架构 及开发流程 --------------------------------------------------------------------------------------------------------------- 下面就是一个完整的应用程序开发步骤: xDMNon-xDM 可发布使用的Codec包 VISAStub DSP算法工程师 运行在DSP上的可执行程序 :.cfg, .tcf, main() Codec Server集成工程师 可执行应用程序 ARM应用工程师 各种引擎配置 Codec Engine集成工程师 *.cfg DSP/BIOS,FrameWork Component, DSPLink, xDC Server 名称,Codec列表 各种不同的Codec包: *.x64P , *.cfg *.a64P 即*.lib *.x64P 即*.out 目录目录 达芬奇软件架构 及开发流程 --------------------------------------------------------------------------------------------------------------- 一个完整的应用程序开发步骤: xDMNon-xDM 可发布使用的Codec包 VISAStub DSP算法工程师 *.a64P 第一步: 需要基于DSP利用CCS开发自己的音 视频编解码算法,编译生成一个编 解码算法的库文件*.lib(等同于Linux 环境下的*.a64P,直接在Linux环 境下修改文件后缀名即可)。
由于需 要确保算法可被Codec Engine使用和 配置,所以要确保这些算法 实现需要符合xDM(xDAIS(eXpress DSP Algorithm Interface Standard) for Digital Media)标准 Codec主要完成音视频的核心算法, 应用程序运行时被调用,并不参与 其他功能 如果算法与XDM标准兼容,则可不 经修改而直接被Codec Engine的 VISA API远程执行;如不兼容, 则需为其提供Codec Engine的框架和 终端接口(具体请参考spraae7.pdf) 目录目录 达芬奇软件架构 及开发流程 --------------------------------------------------------------------------------------------------------------- 一个完整的应用程序开发步骤: 第二步: 将Codec集成到CodecEngine中将第一 步开发完成的Codec或已有的符合xDM的 C。












