




已阅读5页,还剩70页未读, 继续免费阅读
(信号与信息处理专业论文)基于tms320dm365平台的智能多媒体系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学硕士研究生学位论文 摘 要 i 摘摘 要要 随着近年来 3g 技术的成熟以及物联网时代的到来,智能化、嵌入式的多媒体应用越来 越受到人们的青睐,在安防监控、电视机顶盒、家庭多媒体服务器、数字电视、视频电话、 视频会议、个人媒体播放器、电子成像等领域有广泛的应用。本文根据实际需求,设计并实 现基于 tms320dm365 平台的智能多媒体系统,该系统具备多媒体嵌入式应用的多种功能, 并具有良好的用户使用界面。 本文首先描述智能多媒体系统的研究状况,并介绍达芬奇技术的主要特点以及达芬奇技 术平台的发展状况,在此基础上阐述本文所采用的达芬奇平台 tms320dm365 的硬件结构, 以及达芬奇平台软件开发的相关知识背景。 其次,针对智能多媒体系统的应用需求,本文设计并实现系统应用程序框架,描述各个 软件模块在整个系统中的功能。在描述完整体框架之后,对几个关键软件模块的实现进行详 细的分析,分别是支持标清和高清视频信号的视频采集模块、对物体入侵进行报警的运动检 测模块、多媒体处理过程中的音视频同步机制以及基于网页的远程控制模块。 再次,针对多媒体播放需求,本文移植并实现基于 gstreamer 软件框架的多媒体播放子 系统。 首先详细介绍 gstreamer 软件框架的基础知识, 包括基于 gstreamer 的应用程序编写以 及管道插件编写。然后开发 tms320dm365 平台上的插件并设计实现能够播放 avi 文件的功 能完善的多媒体播放子系统。 最后对整个系统进行测试和总结,并探讨了亟待完善和改进的地方。 关键词关键词:tms320dm365,多媒体系统,达芬奇技术,嵌入式系统 南京邮电大学硕士研究生学位论文 abstract ii abstract with the maturing of 3g technology and the coming of the era of iot (internet of things), intelligent, embedded multimedia applications have got more and more favour of people in recent years, and there is a wide range of applications in many areas, such as security monitoring, tv set-top boxes, family multimedia servers, digital tv, video phone, video conference, personal media players, electronic imaging and so on. according to actual demands, we design and implement a intelligent multimedia system based on tms320dm365 platform, and this system has a variety of functions of multimedia embedded applications, and has a good user interface. this thesis firstly describes the research status of intelligent multimedia system, and introduces the main characteristics of davinci technology and the development situations of davinci technology platform. based on this, this thesis has expounded the hardware structure of davinci platform tms320dm365 and the related knowledge background of software development on davinci platform. then, according to the application requirements of intelligent multimedia system, this thesis designs and implements the application framework of the system, and describes the functions of various software modules in the whole system. after describing the overall framework, several key software modules of the system are analyzed in details, they are video acquisition module supporting sd (standard definition) and hd (high definition) video signals, motion detection module to give alarms when object invasion is found, audio and video synchronization mechanism in the course of multimedia processing, and web-based remote control module. for multimedia playback demand, this thesis transplants and implements a multimedia playback subsystem based on gstreamer software framework. first introduces the basic knowledge of gstreamer software framework, including writting the application programming code and composing the pipeline plugin based on gstreamer. then develops the plugin of tms320dm365 platform and designs a fully functional multimedia player which is able to play avi format files. finally the whole system is tested and summarized, and this thesis discusses the urgent needs to perfect and improve the related aspects. key words: tms320dm365, multimedia system, davinci technology, embedded system 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。 论文的公布(包括刊登)授权南京邮电大学研究生部办理。 研究生签名:_ 日期:_ 研究生签名:_ 导师签名:_ 日期:_ 南京邮电大学硕士研究生学位论文 第一章 绪 论 1 第一章第一章 绪绪 论论 1.1 课课题题背景背景与研究现状与研究现状 当前,多媒体技术发展日新月异,在不断丰富人们精神文化生活的同时,也逐渐随着需 求的增加而不断地向前推进。尤其是近年来 3g 技术的成熟以及物联网时代的到来,智能化、 嵌入式的多媒体应用越来越受到人们的青睐,安防监控、电视机顶盒、家庭多媒体服务器、 数字电视、视频电话、视频会议、个人媒体播放器、电子成像等领域的嵌入式多媒体技术的 应用越来越广泛。不久的将来,嵌入式多媒体技术的应用将会融入人们的生活,嵌入式多媒 体系统的发展也将呈现更加小型化、智能化、普遍化,和不可避免的差异化、复杂化趋势。 传统的多媒体技术平台方案主要有两类:一类是为了满足人们高品质的语音、视频需求 而产生的多媒体嵌入式平台,这类平台往往在硬件上的多媒体处理性能非常强劲,缺点在于 其功能通常比较单一,不能够满足日益复杂的应用需求;另一类是将多种嵌入式应用综合起 来形成一个复杂的智能化应用系统,可是它的多媒体处理性能常常满足不了高品质的音视频 需求。 智能视频分析是计算机视觉应用领域一个新的研究方向,近年来成为非常热门的话题, 可以应用到计算机科学、图像处理、模式识别、人工智能等学科。当前,智能视频分析的研 究与应用发展非常迅速,国内外已经出现大量视频分析系统。然而,多数系统产品使用单核 处理器做视频处理算法的同时还要完成系统控制工作,导致处理器只能做有限的操作,并且 在视频帧率和通道的数量上受到限制。 近几年来,德州仪器(ti,texas instruments)公司推出了基于达芬奇技术的嵌入式多媒体 应用方案,综合了传统的嵌入式多媒体技术方案的优点,为了能够以最快的速度抢占市场, 该方案设计之初在系统完整性和可移植性方面做了极大的创新。基于达芬奇技术的处理器通 常是片上系统(soc,system on chip) ,同时集成了 arm 核与 dsp 核。arm 核利于任务调 度,而 dsp 核则利于视频处理算法,这一特点使达芬奇技术平台的处理器非常适合用来开发 智能多媒体系统。 1.2 智能智能多媒体系统的发展状况多媒体系统的发展状况 从应用角度来看,智能多媒体系统可以分为三个部分:硬件平台、软件平台以及多媒体 标准。其中硬件平台是应用的基础,它是应用能够实现的载体;软件平台则具体指导整个系 南京邮电大学硕士研究生学位论文 第一章 绪 论 2 统的行为,由它指挥硬件平台的运行;多媒体标准则具体是指采用的多媒体技术的规范。这 三者之间相互依赖、相互配合,共同组建成一个功能完善的多媒体应用系统。 硬件平台的性能主要取决于采用的核心处理器芯片。在 dsp(数字信号处理器)出现之前, 实时信号处理一般是用通用 cpu(8086、80286 等)完成的。由于集成电路制造工艺不断提高, 20 世纪 80 年代初出现了集成在单个芯片上的数字信号处理器,简称 dsp1。随着 ti 公司将 通用处理器的许多特点引入 dsp,并为其开发了汇编语言、c 语言代码产生工具以及各种软 硬件调试工具,dsp 的开发难度大大降低。当前,多数系统采用单核处理器,既完成系统管 理任务,又做一些视频处理算法2。ti 公司近年推出的达芬奇系列 dsp 就是采用 arm 处理 器加一个或多个 dsp 协处理器的架构,其中 arm 处理器作为通用处理器做任务调度工作, dsp 协处理器则做多媒体相关的处理工作。 智能多媒体系统软件平台,当前主流的软件架构是采用开源或商业版的 os(操作系统), 如嵌入式 linux、wince,以及最近流行的 android、windows phone7,外加一些多媒体处理 框架程序,如 gstreamer、directshow 等。ti 公司的达芬奇平台不仅提供了硬件平台的处理 器,而且还提供了一系列软件开发套件,而且,可以将达芬奇的软件系统与众多开源的应用 软件配合使用,加速智能多媒体系统应用的开发进度。 多媒体音视频编码标准在智能多媒体系统中的地位至关重要,它直接决定了该多媒体系 统的性能与质量。多媒体音视频编码标准的实现,需要耗费大量的计算资源,一般处理器常 满足不了需求。 但是, ti 公司已经在达芬奇平台上开发出了 mpeg-4、 h.264 视频压缩、 jpeg 图像压缩、g.711 音频压缩等算法的协处理器,这极大地促进了智能多媒体技术的普及。 总之,随着时代的发展以及不断增加的社会需求,智能多媒体技术平台会不断地朝着高 性能、可定制、小型化、智能化、移植性好的方向发展,并且会在3g以及物联网时代占据举 足轻重的位置。 1.3 研究内容与主要成果研究内容与主要成果 本文的设计目标是能够采集到麦克风输入的音频信号以及摄像头输入的视频信号,包括 标清和高清视频信号,对分块的目标区域进行运动检测,并发出警报以触发存储功能,或按 照任务调度进行视频录制,对存储介质中的多媒体文件进行回放,并通过红外遥控器对播放 状态进行控制,还能够通过网络进行视频监控和系统参数设置,可以支持的网络包括有线网 络、无线 wlan 网络、3g 移动网络,并能够通过 osd 进行界面显示和参数设置。 本论文涉及到的工作主要有以下几个方面: 南京邮电大学硕士研究生学位论文 第一章 绪 论 3 (1) 分析本系统所采用的 tms320dm365 平台的硬件系统方案; (2) 研究达芬奇平台软件开发过程中涉及到的关键技术以及用到的开发工具; (3) 设计本系统采用的软件系统方案,详细描述软件系统的架构以及各软件模块的功能; (4) 设计并实现本软件系统的几个关键软件模块,分别是视频采集模块、运动检测模块、 音视频同步机制和基于网页的远程控制模块。其中,视频采集模块能够支持多种视频源的输 入,运动检测功能是为后继的多媒体文件存储提供触发器作用,音视频同步机制探讨了本系 统中遇到的音视频同步问题,而基于网页的远程控制模块则通过移植 boa 实现了对系统的远 程控制; (5) 设计并实现基于 gstreamer 软件框架的多媒体播放子系统,能够读取本地磁盘(sd 卡) 的多媒体文件,对 g.711 编码音频和 h.264 编码视频进行解码播放,并能够通过红外遥控器 对其进行暂停、播放、快进、快退等功能操作。 1.4 论文结构论文结构 全文共分六个章节,其结构具体安排如下: 第一章 绪论。本章介绍课题的研究背景以及当前智能多媒体系统的发展状况,并对本文 的主要研究内容及成果做了简要介绍。 第二章 达芬奇平台 dsp 简介。首先介绍达芬奇技术,阐明了达芬奇技术的发展是智能 多媒体系统的应用领域发展的一种趋势,并详细介绍了达芬奇技术平台的发展状况以及该技 术的主要特点。 并在此基础上, 分析了本项目采用的达芬奇平台 tms320dm365 的硬件结构。 最后,介绍了达芬奇平台软件开发的关键技术和开发工具。 第三章 智能多媒体系统的软件设计。描述了软件开发环境的搭建过程,随后详细阐述了 本系统的软件设计,包括系统软件架构和各功能软件模块。 第四章 智能多媒体系统的关键软件模块。设计实现了本系统的关键软件模块,包括支持 多种视频源的视频采集模块、运动检测模块、音视频同步机制和基于网页的远程控制模块, 并详细阐述了模块实现过程及融合到系统的关键技术。 第五章 多媒体播放子系统的设计。设计并实现了基于 gstreamer 软件框架的多媒体播放 子系统。在介绍了 gstreamer 软件框架的基础上开发了 tms320dm365 平台的插件以及播放 系统程序,最终完成了一个功能完善的多媒体播放子系统。 第六章 实验结果与总结。对本系统进行完整的功能测试,并对本论文完成的工作内容进 行总结,并且对下一步亟待完善的工作进行展望。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 4 第二章第二章 达芬奇平台简介达芬奇平台简介 2.1 达芬奇达芬奇技术技术 2.1.1 多媒体的智能化应用 目前,多媒体技术迅速发展,极大地丰富了人们的精神文化生活。随着嵌入式技术的不 断演进,多媒体技术的发展更多地朝着嵌入式、智能化方向前进。人们需求极大地扩展,随 时随地的多媒体需求,反过来也进一步刺激了智能多媒体技术的发展。 多媒体技术的智能化应用,需要满足多方面的要求。首先,要满足稳定性和视频清晰度 的要求。从当今数码电子消费市场的演进规律和视频图像分辨率从标清到高清可以充分看到 这一点。其次,受到嵌入式存储容量以及网络带宽的限制,需要使用高效率的压缩编码算法, 诸如 mpeg-4、h.264 等。最后,数码电子消费市场的瞬息万变要求能够快速推出满足需求的 多媒体嵌入式产品3。 从上面几点要求可以看到,多媒体的智能化应用非常复杂,其实现难度与进度往往超出 了人们的预期。开发过程中,视频和音频处理本身就有极大的复杂性,视频和音频都具有多 种不同的格式,采用的编解码算法也多种多样。嵌入式平台的应用,也需要更多地关注底层 硬件设备的配置和操作系统的选择,诸如设备驱动的开发、操作系统的调度等4。嵌入式应 用往往是一个复杂的应用系统,将多媒体应用融合进系统也并不容易。 当前,很多多媒体智能化应用方案不能够同时满足上述要求。有的产品能够处理多项管 理任务,将各式各样的额外应用添加进来,但是,多媒体应用本身的性能却大大地降低,不 能满足消费者的品质需求。还有的产品聚焦于多媒体应用,稳定性、分辨率等性能很高,但 是,应用领域单一,不能够增加额外的扩展。 从上面的分析可以知道,多媒体智能化应用的开发包括下面几个方面:其一是高度集成 的高性能嵌入式处理平台;其二是集成了高效灵活多样的多媒体处理算法;其三在于功能完 善易于使用的开发工具。总而言之,要能够针对多媒体嵌入式应用提供一站式多媒体解决方 案,只有开放融合的平台才能同时满足上述要求。ti(texas instruments,德州仪器)推出的达 芬奇(davinci)多媒体开发平台就是一种开放式平台,能够满足多媒体智能化应用的需求5。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 5 2.1.2 达芬奇技术 达芬奇技术是集成了处理器、软件和开发工具的嵌入式平台的多媒体应用技术,能够提 供全面技术解决方案,满足各种数字视频产品开发的需要。达芬奇技术使用可定制和可编程 的基于 dsp 的媒体处理器, 包括 arm 和 dsp 为核心的带有加速器和外围设备的片上系统6。 它能够适合各种视频应用,并集成了优化的现成软件,强大的开发工具能够加速产品上市进 程。达芬奇技术在各个行业都有广泛的应用,诸如医疗影像、视频监控、视频电话、汽车视 觉与车载信息娱乐系统、相机、ip 机顶盒、便携式视频等领域。 ti 公司针对不同的应用领域,推出了一系列基于达芬奇技术的平台。从早期的 dm6443、 dm6446 到随后的 dm6431、dm6433、dm6435、dm6437、dm6441,再到近期的 dm647、 dm648、dm6467 以及 dm355、dm365、dm368 等。ti 公司为满足市场快速变化的需求, 始终不断地推出新品,这些平台分别满足五大类需求: 高清 dvr/dvs 和 ip 网络摄像机,可扩展智能识别,高清转码功能。支持 h.264 高清或 多路 d1 视频编码,典型平台是 dm6467。 高端多路 dvr/dvs,可扩展智能视频识别。高性能,支持 h.264,多路 d1 视频编码, 高速千兆以太网口,典型平台是 dm64x。 中低端 dvr/dvs,高端智能 ip netcam。高集成,支持 h.264 单路 d1 视频编码,可运行 实时嵌入 os,典型平台是 dm644x。 低端 ip netcam,智能识别监控设备。高性价比,支持 h.264 单路 d1 视频编码,典型平 台是 dm643x。 ip 网络摄像机,低成本 dvr,ip 可视门铃。低功耗,低成本,支持高清 720p 和实时嵌 入 os,典型平台是 dm3xx。 在信号处理领域,效率和灵活性是多媒体应用的追求目标。一方面,为了能对数字信号 进行高效的处理,不断地将专用集成电路(asic)大规模集成化,集成度越来越高,信号处理 的效能越来越强,功耗也越来越低。另一方面,为了满足各种不同的信号处理的需求,需要 信号处理平台能够提供足够的创新灵活性,也就是需要越来越多 dsp 算法的支持。达芬奇平 台通常采用 arm 和 dsp 结合的双核架构,该架构保证了达芬奇平台能够集灵活性与完整性 于一体。如图 2-1 所示。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 6 assp asic fpga dsp cpu davinci 提高效率的完整性 易 于 创 新 的 灵 活 性 图 2-1 达芬奇平台的灵活性与完整性 arm 核通常用来做任务调度,而 dsp 核做各种信号处理功能。达芬奇平台的关键就在 于其 dsp 核,该 dsp 核不同于一般的 dsp 处理器,它通常是为满足某个或某几个算法而定 制的专用处理器,因此它具有普通 dsp 所不具有的高效性。同时,为了满足多种算法的灵活 应用,可以在达芬奇平台中添加多个 dsp 核,例如添加 mpeg4 核与 h.264 核的 dm365 平 台,就是具备 arm 处理器与两个 dsp 协处理器的架构。 达芬奇技术能够简化嵌入式多媒体应用的创新工作,它集成了嵌入式多媒体开发的大部 分要素,包括软硬件开发工具、硬件组件、多媒体编解码器、操作系统、设备驱动及 api, 厂商可以在此基础上实现增值产品的差异化,诸如用户体验、gui、应用、gps、语音识别等 方面7。 2.2 tms320dm365 平台的硬件结构平台的硬件结构 2.2.1 硬件总体结构 本系统采用 ti 公司推出的基于达芬奇技术的 tms320dm365 芯片(简称 dm365) ,它集 成了 isp(image signal processing)功能及一系列板载外设,可使开发人员将系统成本降低 25%。tms320dm365 增加了视频和影像方面的特别功能,即集成了数字前端的 isp。dm365 内部集成的 isp 可支持面部检测、噪声过滤、视频的稳定、边缘增强。另外,dm365 支持多 格式、 多数据、 多通道, 还可以捆绑软件。 dm365 是 arm+dsp 架构的 soc (system on chip) 系统,集成了高性能的 arm9 处理器和 mpeg-4 及 h.264 协处理器,对外围设备拥有非常强 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 7 大的管理能力的同时又具有对视频的高性能编解码能力8,9。tms320dm365 主要特点如下: 高性能数字媒体片上系统 amr926ej-s 高达 300mhz 时钟频率 支持两个视频图像协处理器引擎(hdvicp, mjcp) 支持一系列编解码器和视频算法 拥有视频处理子系统 支持 720p、30fps 的 h.264 实时视频处理 支持 emac、usb2.0 otg、ddr2/nand、5 spi、2 uart、2mmc/sd/sdio 等 根据需求,系统的硬件设计框图如图 2-2 所示: tms320dm365 ccdc jtag i2c总线 接口 ddr控制 器 sdio接 口 uart tv输出 aemif sdramsd卡 电视机 nand flash 摄像头 电源模块 红外遥控 器 红外接收 器 msp430 以太网 控制器 usb接口 u盘移动硬盘wifi3g网卡 视频解码 芯片 tvp5146 tvp7002 mic音频 接口 麦克风 图 2-2 tms320dm365 硬件设计框图 2.2.2 关键硬件模块 下面介绍各个模块的功能: (1) 电源模块 该模块的功能是为系统的各个部分提供电源,根据各芯片的具体情况,系统要求提供三 种直流电压,分别是 1.3v、1.8v 和 3.3v。 (2) dm365 主系统 该模块是系统的核心,结合外围电路,可以完成诸多功能,例如视频采集、编码、传输、 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 8 电视显示、存储等10。下面介绍各部分功能。 视频解码芯片的功能是将摄像头输入的模拟视频信号进行模数转换,变成数字信号后, 传递给 ccd 控制器, 其中 tvp5146 芯片可以将复合模拟视频信号转换成标清视频数字信号, 而 tvp7002 可以将分量模式视频信号转换成高清视频数字信号。 mic 音频接口可以接收内置麦克风输入的音频信号,将模拟音频信号数字化为数字音频 信号,以作后继处理。 nand flash 用于存储数据,包括 uboot、linux 操作系统、文件系统以及系统运行时产 生的一些配置文件11。 sdram 能够为 linux 系统的运行提供内存,并能为 dsp 的正常运行提供连续内存缓冲 区。 以太网控制器用于网络传输,从而实现实时视频的网络传输功能。 jtag 接口用于 uboot 下载,以及一些硬件的测试。 uart 用于开发时的调试控制终端,能够为开发人员打印信息。 tv 输出接口能够将视频输出到电视机上,方便用户进行本地视频浏览。 sdio 接口用于外接 sd 卡存储器,用于保存 mpeg4 编码或 h.264 编码的 avi 多媒体视 频文件,供用户浏览回放。 usb 接口用于外接 u 盘、移动硬盘等存储设备,以及 wifi 无线网卡和 3g 网卡。 (3) 红外模块 红外模块主要采用 msp430 芯片,接收红外遥控器发送的红外信号并对其进行解码,之 后得到某一个数字即为按键的键值,dm365 主系统是通过 i2c 总线与 msp430 交互的,包括 向其发送控制命令和接收键值。 2.3 达芬奇平台软件开发达芬奇平台软件开发 2.3.1 软件开发工具 达芬奇平台 tms320dm365 具有如下软件开发工具12: 达芬奇处理器的 ccs 集成开发环境; xdc 组件(express dsp component); 数字视频软件开发套件 dvsdk(ditital video software development kit)。 ccs 是运行在 windows 环境下针对达芬奇平台的集成开发环境, 主要功能涉及底层硬件 调试,具有图形用户界面,功能非常强大。在本系统中,只用它来为硬件系统做初始化工作 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 9 并烧写 uboot,在此不详细介绍。 xdc 组件为软件复用提供便利, 它可以将一些软件包经优化配置, 用于实时嵌入式系统。 dvsdk 套件,是 ti 提供给开发者的集成了数字视频处理相关模块的套件包,它为开发 者提供了多媒体应用开发的基础软件环境。dvsdk 包拥有如下模块: ti 提供的视频、图像、语音和音频的编解码器; ti 提供的编解码引擎框架; 达芬奇多媒体应用程序接口 dmai(davinci multimedia application interface); 多媒体应用的演示实例。 2.3.2 实时软件组件 实时软件组件rtsc(real time software component)技术, 是一个基于c语言的编程模型, 它方便了嵌入式平台软件开发过程中的代码共享、传播、使用。而 xdc 工具则是能够让实时 组件技术运作的工具。下面详细介绍 rtsc 技术13。 (1) 嵌入式平台引入组件技术 1)生产者/使用者困境 当作为 c 语言程序员开发嵌入式应用程序时,我们通常扮演了两个角色,分别是目标软 件内容的生产者和使用者: 我们会制作可调用函数的库,着眼于在下一个应用程序中重用; 同时,我们使用这类的库,通过调用它们的函数,也会制作出其他的库,而最终会形成 某个特定硬件平台的可执行程序。 当嵌入式系统和软件变得越来越复杂时,这两个角色间存在的自然的冲突也越发明显。 作为生产者(总是通过不断地重用减少工程费用) ,我们喜欢将软件做的更具可移植性、更灵 活、更通用。作为使用者,我们的挑战在于将基于多个指令集、多个工具链、多个程序设置 的代码整合到一个代码平台下。 当扮演内容使用者的角色时,我们的观点迅速发生了逆转。为了减少设备成本,如何使 用更少的指令、内存和更低的功耗,我们将会放弃软件可移植性、灵活性这个准则,以寻求 优化的裁剪的代码,专用于某个特定的应用。毫无疑问,这一取向明显与软件重用背道而驰。 然而,软件重用是如此的重要,尤其是工程方案和资源相当大的程度满足下一代终端设 备不断增加的软件特性时。当前的软件生产者在时间和空间上都是分开的,通常彼此分布于 世界的不同角落,而内容使用者的传统角色则是进一步地扩展软件,将原有作者的代码重新 改写,并添加自己的代码,编译、汇编成新的软件,从而在这个新的软件中就几乎看不到原 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 10 有生产者的印记了。 使用者需要了解来自不同生产者软件包大量的工具、格式、技术,这已经构成非常大的 挑战。缺乏对所重用代码的背景知识的了解,诸如移植类型、函数名、目录结构和版本兼容 性等,将会让代码使用者耗费大量的精力。 2)软件组件的前景 组件化已经成为现代软件工程实践的一个支柱。开始于 1990 年代的 com 和 corba, 到当前的 java 和 c#等编程语言,它们都支持设计、交付和使用软件组件。借助于这些语言 赋予的组件框架,当今的应用程序比以前更加模块化、更有扩展性、更加灵活;软件组件也 促进了一个又一个程序的更高层级的重用。更为重要的是,基于生产者/使用者模型的组件技 术的繁荣,已经让当前的编程语言能够创建一些公共的基础环境,这能够成功地克服前面提 到代码重用产生的挑战。 使用 rtsc,我们可以最终解决嵌入式 c 编程中出现的生产者和使用者困境。仅仅需要 一个 ansi 标准的 c 编译器,rtsc 引入了补充工具和现代的编程实践,将 c 语言提升到一 个新的高度,以应对嵌入式软件编程中生产者和使用者的独特的挑战。rtsc 能够更好地利 用 c 语言,是一种更高层次的编程形式,它能使编程更加模块化、更具扩展性和灵活性,而 且,可以不增加系统运行时额外的负担。 (2) 从生产者到使用者的 rtsc rtsc 引入了一些工具来制作嵌入式实时软件组件,从生产者到使用者一共要经过 5 个 阶段,分别是定义、实现、打包、配置、分析,如图 2-3 所示。 1)定义(specification) rtsc 通常开始于已定义好的组件,这是使下游使用者能够正确地混合匹配来自不同生 产者组件的必要步骤。rtsc 引入了一种类 c 语言作为定义语言,这一语言下有三个非常重 要的概念: 模块(module)。 模块是一组常数、类型以及拥有公有定义和私有实现的函数。 接口(interface)。 接口是一个抽象模块,用于其他接口的继承或由模块来最终实现。 包(package) 是高一层次的包含模块和接口的命名空间。 2)实现(implementation) 作为生产者,要使 c 语言以非常简洁、可移植的编程风格来将定义好的模块实现出来。 然而,rtsc 模块通常会有两种实现: 目标板的实现。这是基于 c 语言的实现,能够在使用者的嵌入式硬件平台运行的目标程 序。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 11 1 2 2 33 45 .h .libc compiler script target platform .out hardware target compil er linker c implementationspecificationpackagingconfigurationanalysis 图 2-3 rtsc 的五个阶段 元实现。这是更高一层次的元内容的实现,它能够指导下游的配置,并可以分析这些目 标程序。 目标板的实现是以典型的 c 语言实现的在资源有限的硬件平台上运行的程序,而元内容 实现则是在资源丰富的宿主机上执行的。良好的区分开这两种实现可以促使 rtsc 成为更高 层次的编程模型的同时保持高效的性能。考虑到 c 语言的局限性,rtsc 也引入了基于工业 标准的 javascript 语言作为元语言,来完成元实现。 3)打包(packaging) rtsc 包可以同时作为逻辑上和物理上的容器。 除了提供一个命名空间包含 rtsc 的模块 和接口之外,每个 rtsc 包有一个具体的文件系统目录,而且,rtsc 包几乎可以容纳任何软 件组件生产者相关的文件,例如头文件、库、脚本、文档,甚至其他包。为了维护包的内部 整体性,每个 rtsc 包在制作、发布、使用过程中都是作为独立的组件,也就是说在组件的 整个生命周期,它的所有内容都放在一个同样的位置。 4)配置(configuration) 从使用者的角度,rtsc 的配置是组件集成的重点,它将编译和汇编形成规范的与目标 板相关的组件,这些组件分别由多个生产者发布,并最终会应用到某个特定硬件平台上执行 的应用程序中。在这里,规范化成为常用的词,它是我们努力打通从生产者到使用者这条通 道的关键。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 12 这个过程开始于一个专门的配置脚本,它源于 rtsc 的元语言,能够标识一个目标板应 用程序所需的相关软件组件。配置过程可以产生额外的目标板构件,会作为最终程序生成过 程中的编译和链接步骤的输入。为了协调这些步骤,内容使用者需要设置 rtsc 的目标板和 平台,以作为额外的配置输入,能够指导目标板相关的编译和链接,使配置的输出达到要求。 在配置脚本(可以看做应用程序的元程序)中,内容使用者可以识别在目标程序中使用 到的定义好的模块。尽管是由目标板程序最终调用公有函数接口来使用模块,但是元程序可 以通过修改公共配置参数来改变模块运行时的行为。一旦配置完毕,所有的 rtsc 包都能够 被目标板程序使用。 5)分析(analysis) 除了能够将 rtsc 模块集成进目标板的可执行程序,生产者提供的元内容还可以帮助分 析程序运行时的模块行为。鉴于可以通过主机的调试器读取程序的内存空间,rtsc 分析工 具可以获取到模块运行时的状态信息。 2.3.3 达芬奇多媒体应用接口 (1) dmai 简介 达芬奇多媒体应用接口 dmai(davinci multimedia application interface), 是操作系统和编 解码引擎之上的应用层接口, 它能方便快速编写达芬奇平台上的移植性强的应用程序。 dmai 已经被 dvsdk 包中的演示实例使用,它让编写演示实例比之前的 dvsdk 版本快许多14。 不同的 dmai 模块通过一个抽象的 buffer 对象相互交流,它不仅能够携带实际的数据, 例如视频、声音、音频等,还可以携带描述 buffer 的元数据,能够指导编解码引擎或 linux 驱动对数据进行的操作。 dmai 并没有完全包括操作系统和编解码引擎,而是如图 2-4 所示的情况,应用程序可 以选择使用 dmai,或是直接使用操作系统接口或编解码引擎。 dmai 是以功能实现为目标的设计,即所有的模块通常描述了某个特定的操作,例如拷 贝用 framecopy 模块、调整大小用 resize 模块等,但是模块的实现通常随着设备和操作系统 的不同而改变,这取决于外围设备驱动和其他本地可用的应用程序接口 api。 也就是说,dmai 并不是抽象了外围设备本身,它抽象了类似于帧拷贝这样的实际的操 作,然后 dmai 使用外围设备和各种资源在某个特定的平台上实现帧拷贝操作,例如, framecopy模块在dm6446上就是使用resizer 设备实现的, 而在dm365平台上就是通过dma 设备实现的。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 13 application linux or dsp/bios dmai codec engine xdm 图 2-4 dmai 框图 dmai 是所有模块的集合,应用程序可以挑选并使用某个或某些模块。由于 dmai 也提 供了源码, 因此, 也可以参考 dmai 来了解如何使用某个具体的设备驱动来完成特定的任务。 (2) 使用 dmai dmai 依赖于编解码引擎(ce,codec engine)这一操作系统上的抽象层(osal,operating system abstraction layer)。为了使用 dmai,应用程序需要在.cfg 文件里包含以 下 javascript 代码(以 dm365 的 osal 配置为例): var osalglobal = xdc.usemodule(ti.sdo.ce.osal.global); osalglobal.runtimeenv = osalglobal.linux; var dmai = xdc.loadpackage(ti.sdo.dmai); 第一句加载了 ce 模块, 第二句对 ce 模块进行配置, 指出其运行环境是 linux 操作系统, 而第三句则加载了 dmai 模块。做以上配置之后,正确的库就可以自动地链接了。每个模块 可以由一个头文件来代表, 这些模块接口函数的头文件应当在程序中被包含, 例如使用 buffer 模块,就应当在应用程序的 c 源码文件中包含: #include 源码文件中只需要包含所用到模块的头文件;如果模块会依赖于其他 dmai 模块、设备 驱动或编解码引擎的头文件,它会自动包含它们。 在程序中使用 dmai 模块之前都要先调用 dmai_init()函数来做初始化工作,这是在调用 其他任何 dmai 模块 api 函数之前必须做的。 当一个程序中同时使用编解码引擎和 dmai 时, 需要在调用 ceruntime_init()函数之后,紧接着调用 dmai_init()函数。 所有拥有实例对象的模块都有一个_create()的构造函数,用于创建实例对象, 同时它们也拥有一个_delete()的析构函数来销毁_create()分配的资源。 模块 对象的构造函数会返回一个句柄(handle), 该模块的其他 api 函数都是通过该句柄来访问这个 实例对象的。在对象创建之前是不能使用其他 api 函数的,并且,在对象销毁后,也不能继 续使用其他 api 函数。 南京邮电大学硕士研究生学位论文 第二章 达芬奇平台 dsp 简介 14 所有拥有实例对象的模块也都拥有一个_attrs 数据结构体,用来传递给 _create()函数。这个属性结构体包含了创建模块实例时使用的配置参数。所有的 _attrs 结构体也都拥有至少一个默认值,例如 capture_attrs_dm365_default。而 编解码引擎处理模块则不同, 例如venc、 adec等, 它们仅将xdm的参数作为_create() 函数的输入。 通常是将一个默认值赋给一个声明的属性结构体变量,之后开发者可以在此基础上添加 更多的配置选项而不用中断程序。典型的例子如下: display_handle hdisplay; display_attrs dattrs = display_attrs_dm365_vid_default; dattrs.numbufs = 2; hdisplay = display_create(null, 上面的例子将会正常运行即便更多的属性设置进 display_attrs,因为在某个值 (display_attrs.numbufs)被修改之前,其他所有的值已经赋予默认值了。在添加新的配置参数 时,只要保证原有的默认行为不变,升级带来的不便将会降低到最小程度。 (3) 模块概览 dmai 包含几大类模块,用户可以相互独立的使用它们,但是,不同的模块通常可以相 互协作。比如将采集模块、显示模块、帧拷贝模块等等相互组织起来,就可以成为一个实时 采集显示程序。下面是 dmai 模块的六大类: 起源(source)模块和汇入(sink)模块,例如 display、capture、sound 和 loader 模块,它们 能将数据通过采集驱动或某个文件输入或输出系统。 处理(process)模块,例如 framecopy、ccv、blend、smooth 等模块,通常用于在系统中处 理数据。 编解码引擎(codec engine)处理模块,例如 venc、venc1、vdec、vdec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年客户服务热线代表面试指南与题库
- 2025年军事文职应聘笔试模拟试题及答案
- 2025年宠物电商项目合作计划书
- 2025年地震专用仪器项目建议书
- 2025年新型催化重整催化剂项目合作计划书
- 抗肿瘤药物防护课件
- 抗美援朝纪念课件
- 2025年制动气室项目发展计划
- 检验三基考试及答案
- 高考全国卷3理综试题及答案
- 文明施工、环境保护费用统计表
- 新编剑桥商务英语(初级)学生用书-答案
- 中级会计《经济法》最新精编必刷550题(后附答案解析)
- 新计算国民经济评价
- 三年级上册信息技术教学计划(电子工业出版社)
- 旅行管家实务全套ppt课件最全电子教案完整版教学教程整套全书课件ppt
- 煤矿物料装车、捆绑管理规定
- 【汽车】上海大众汽车有限公司——产品工程部
- 无机化学电子教案配习题和答案下载地址
- 日语N3听力词汇
- 1000以内的竖式加减法(共21页)
评论
0/150
提交评论